From 3bd962a6d7f61239c020e2dbbeb7341e5b842dd1 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期二, 21 四月 2026 11:46:41 +0800
Subject: [PATCH] 推送

---
 node_modules/webpack/lib/util/cleverMerge.js |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/node_modules/webpack/lib/util/cleverMerge.js b/node_modules/webpack/lib/util/cleverMerge.js
index 7de8c7c..72fd8d5 100644
--- a/node_modules/webpack/lib/util/cleverMerge.js
+++ b/node_modules/webpack/lib/util/cleverMerge.js
@@ -7,7 +7,8 @@
 
 /** @type {WeakMap<EXPECTED_OBJECT, WeakMap<EXPECTED_OBJECT, EXPECTED_OBJECT>>} */
 const mergeCache = new WeakMap();
-/** @type {WeakMap<EXPECTED_OBJECT, Map<string, Map<string | number | boolean, EXPECTED_OBJECT>>>} */
+/** @typedef {Map<string, Map<string | number | boolean, EXPECTED_OBJECT>>} InnerPropertyCache */
+/** @type {WeakMap<EXPECTED_OBJECT, InnerPropertyCache>} */
 const setPropertyCache = new WeakMap();
 const DELETE = Symbol("DELETE");
 const DYNAMIC_INFO = Symbol("cleverMerge dynamic info");
@@ -50,6 +51,7 @@
 };
 
 /**
+ * Caches d set property.
  * @template T
  * @param {Partial<T>} obj object
  * @param {string} property property
@@ -85,10 +87,12 @@
 };
 
 /**
+ * Defines the by values type used by this module.
  * @typedef {Map<string, EXPECTED_ANY>} ByValues
  */
 
 /**
+ * Defines the object parsed property entry type used by this module.
  * @template T
  * @typedef {object} ObjectParsedPropertyEntry
  * @property {T[keyof T] | undefined} base base value
@@ -99,16 +103,19 @@
 /** @typedef {(function(...EXPECTED_ANY): object) & { [DYNAMIC_INFO]: [DynamicFunction, object] }} DynamicFunction */
 
 /**
+ * Defines the parsed object static type used by this module.
  * @template {object} T
  * @typedef {Map<keyof T, ObjectParsedPropertyEntry<T>>} ParsedObjectStatic
  */
 
 /**
+ * Defines the parsed object dynamic type used by this module.
  * @template {object} T
  * @typedef {{ byProperty: `by${string}`, fn: DynamicFunction }} ParsedObjectDynamic
  */
 
 /**
+ * Defines the parsed object type used by this module.
  * @template {object} T
  * @typedef {object} ParsedObject
  * @property {ParsedObjectStatic<T>} static static properties (key is property name)
@@ -119,6 +126,7 @@
 const parseCache = new WeakMap();
 
 /**
+ * Caches d parse object.
  * @template {object} T
  * @param {T} obj the object
  * @returns {ParsedObject<T>} parsed object
@@ -134,6 +142,7 @@
 /** @typedef {{ [p: string]: { [p: string]: EXPECTED_ANY } } | DynamicFunction} ByObject */
 
 /**
+ * Returns parsed object.
  * @template {object} T
  * @param {T} obj the object
  * @returns {ParsedObject<T>} parsed object
@@ -144,6 +153,7 @@
 	/** @type {ParsedObjectDynamic<T> | undefined} */
 	let dynamicInfo;
 	/**
+	 * Returns object parsed property entry.
 	 * @param {keyof T} p path
 	 * @returns {Partial<ObjectParsedPropertyEntry<T>>} object parsed property entry
 	 */
@@ -220,6 +230,7 @@
 };
 
 /**
+ * Returns the object.
  * @template {object} T
  * @param {ParsedObjectStatic<T>} info static properties (key is property name)
  * @param {{ byProperty: `by${string}`, fn: DynamicFunction } | undefined} dynamicInfo dynamic part
@@ -268,6 +279,7 @@
 const VALUE_TYPE_DELETE = 4;
 
 /**
+ * Returns value type.
  * @template T
  * @param {T} value a single value
  * @returns {VALUE_TYPE_UNDEFINED | VALUE_TYPE_ATOM | VALUE_TYPE_ARRAY_EXTEND | VALUE_TYPE_OBJECT | VALUE_TYPE_DELETE} value type
@@ -310,6 +322,7 @@
 };
 
 /**
+ * Returns merged object of first and second object.
  * @template {object} T
  * @template {object} O
  * Merges two objects. Objects are deeply clever merged.
@@ -377,6 +390,7 @@
 };
 
 /**
+ * Merges the provided values into a single result.
  * @template T, O
  * @param {ObjectParsedPropertyEntry<T>} firstEntry a
  * @param {ObjectParsedPropertyEntry<O>} secondEntry b
@@ -406,6 +420,7 @@
 			} else {
 				// = first.base + (first.byProperty + second.byProperty)
 				// need to merge first and second byValues
+				/** @type {Map<string, T & O>} */
 				const newByValues = new Map(firstEntry.byValues);
 				for (const [key, value] of /** @type {ByValues} */ (
 					secondEntry.byValues
@@ -444,7 +459,9 @@
 					byValues: secondEntry.byValues
 				};
 			}
+			/** @type {O[keyof O] | T[keyof T] | (T[keyof T] & O[keyof O]) | (T[keyof T] | undefined)[] | (O[keyof O] | undefined)[] | (O[keyof O] | T[keyof T] | undefined)[] | undefined} */
 			let newBase;
+			/** @type {Map<string, (T & O) | O[keyof O] | (O[keyof O] | undefined)[] | ((T & O) | undefined)[] | (T & O & O[keyof O]) | ((T & O) | O[keyof O] | undefined)[] | undefined>} */
 			const intermediateByValues = new Map(firstEntry.byValues);
 			for (const [key, value] of intermediateByValues) {
 				intermediateByValues.set(
@@ -485,6 +502,7 @@
 					`${firstEntry.byProperty} and ${secondEntry.byProperty} for a single property is not supported`
 				);
 			}
+			/** @type {Map<string, (T & O) | O[keyof O] | (O[keyof O] | undefined)[] | (T & O & O[keyof O]) | ((T & O) | undefined)[] | ((T & O) | O[keyof O] | undefined)[] | undefined>} */
 			const newByValues = new Map(intermediateByValues);
 			for (const [key, value] of /** @type {ByValues} */ (
 				secondEntry.byValues
@@ -505,6 +523,7 @@
 };
 
 /**
+ * Gets from by values.
  * @template V
  * @param {ByValues} byValues all values
  * @param {string} key value of the selector
@@ -518,6 +537,7 @@
 };
 
 /**
+ * Merges single value.
  * @template A
  * @template B
  * @param {A | A[]} a value
@@ -580,6 +600,7 @@
 };
 
 /**
+ * Removes operations.
  * @template {object} T
  * @param {T} obj the object
  * @param {(keyof T)[]=} keysToKeepOriginalValue keys to keep original value
@@ -627,6 +648,7 @@
 };
 
 /**
+ * Resolves by property.
  * @template T
  * @template {keyof T} P
  * @template V

--
Gitblit v1.9.3