From 9bce51f651aad297ef9eb6df832bfdaf1de05d84 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 22 四月 2026 14:27:54 +0800
Subject: [PATCH] 青岛推送

---
 node_modules/webpack/lib/ChunkGroup.js |   90 +++++++++++++++++++++++++++++++++++----------
 1 files changed, 70 insertions(+), 20 deletions(-)

diff --git a/node_modules/webpack/lib/ChunkGroup.js b/node_modules/webpack/lib/ChunkGroup.js
index 8cb66d7..6f326be 100644
--- a/node_modules/webpack/lib/ChunkGroup.js
+++ b/node_modules/webpack/lib/ChunkGroup.js
@@ -24,6 +24,9 @@
 /** @typedef {{ module: Module | null, loc: DependencyLocation, request: string }} OriginRecord */
 
 /**
+ * Describes the scheduling hints that can be attached to a chunk group.
+ * These values influence how child groups are ordered for preload/prefetch
+ * and how their fetch priority is exposed to runtime code.
  * @typedef {object} RawChunkGroupOptions
  * @property {number=} preloadOrder
  * @property {number=} prefetchOrder
@@ -35,6 +38,8 @@
 let debugId = 5000;
 
 /**
+ * Materializes a sortable set as an array without changing its current order.
+ * Used with `SortableSet` caches that expect a stable array result.
  * @template T
  * @param {SortableSet<T>} set set to convert to array.
  * @returns {T[]} the array format of existing set
@@ -45,7 +50,7 @@
  * A convenience method used to sort chunks based on their id's
  * @param {ChunkGroup} a first sorting comparator
  * @param {ChunkGroup} b second sorting comparator
- * @returns {1|0|-1} a sorting index to determine order
+ * @returns {1 | 0 | -1} a sorting index to determine order
  */
 const sortById = (a, b) => {
 	if (a.id < b.id) return -1;
@@ -54,9 +59,11 @@
 };
 
 /**
+ * Orders origin records by referencing module and then by source location.
+ * This keeps origin metadata deterministic for hashing and diagnostics.
  * @param {OriginRecord} a the first comparator in sort
  * @param {OriginRecord} b the second comparator in sort
- * @returns {1|-1|0} returns sorting order as index
+ * @returns {1 | -1 | 0} returns sorting order as index
  */
 const sortOrigin = (a, b) => {
 	const aIdent = a.module ? a.module.identifier() : "";
@@ -66,9 +73,14 @@
 	return compareLocations(a.loc, b.loc);
 };
 
+/**
+ * Represents a connected group of chunks along with the parent/child
+ * relationships, async blocks, and traversal metadata webpack tracks for it.
+ */
 class ChunkGroup {
 	/**
-	 * Creates an instance of ChunkGroup.
+	 * Creates a chunk group and initializes the relationship sets and ordering
+	 * metadata used while building and optimizing the chunk graph.
 	 * @param {string | ChunkGroupOptions=} options chunk group options passed to chunkGroup
 	 */
 	constructor(options) {
@@ -79,28 +91,33 @@
 		}
 		/** @type {number} */
 		this.groupDebugId = debugId++;
-		this.options = /** @type {ChunkGroupOptions} */ (options);
+		/** @type {ChunkGroupOptions} */
+		this.options = options;
 		/** @type {SortableSet<ChunkGroup>} */
 		this._children = new SortableSet(undefined, sortById);
 		/** @type {SortableSet<ChunkGroup>} */
 		this._parents = new SortableSet(undefined, sortById);
 		/** @type {SortableSet<ChunkGroup>} */
 		this._asyncEntrypoints = new SortableSet(undefined, sortById);
+		/** @type {SortableSet<AsyncDependenciesBlock>} */
 		this._blocks = new SortableSet();
 		/** @type {Chunk[]} */
 		this.chunks = [];
 		/** @type {OriginRecord[]} */
 		this.origins = [];
+
+		/** @typedef {Map<Module, number>} OrderIndices */
+
 		/** Indices in top-down order */
 		/**
 		 * @private
-		 * @type {Map<Module, number>}
+		 * @type {OrderIndices}
 		 */
 		this._modulePreOrderIndices = new Map();
 		/** Indices in bottom-up order */
 		/**
 		 * @private
-		 * @type {Map<Module, number>}
+		 * @type {OrderIndices}
 		 */
 		this._modulePostOrderIndices = new Map();
 		/** @type {number | undefined} */
@@ -108,7 +125,9 @@
 	}
 
 	/**
-	 * when a new chunk is added to a chunkGroup, addingOptions will occur.
+	 * Merges additional options into the chunk group.
+	 * Order-based options are combined by taking the higher priority, while
+	 * unsupported conflicts surface as an explicit error.
 	 * @param {ChunkGroupOptions} options the chunkGroup options passed to addOptions
 	 * @returns {void}
 	 */
@@ -141,7 +160,7 @@
 	}
 
 	/**
-	 * returns the name of current ChunkGroup
+	 * Returns the configured name of the chunk group, if one was assigned.
 	 * @returns {ChunkGroupOptions["name"]} returns the ChunkGroup name
 	 */
 	get name() {
@@ -149,7 +168,7 @@
 	}
 
 	/**
-	 * sets a new name for current ChunkGroup
+	 * Updates the configured name of the chunk group.
 	 * @param {string | undefined} value the new name for ChunkGroup
 	 * @returns {void}
 	 */
@@ -159,7 +178,8 @@
 
 	/* istanbul ignore next */
 	/**
-	 * get a uniqueId for ChunkGroup, made up of its member Chunk debugId's
+	 * Returns a debug-only identifier derived from the group's member chunk
+	 * debug ids. This is primarily useful in diagnostics and assertions.
 	 * @returns {string} a unique concatenation of chunk debugId's
 	 */
 	get debugId() {
@@ -167,7 +187,8 @@
 	}
 
 	/**
-	 * get a unique id for ChunkGroup, made up of its member Chunk id's
+	 * Returns an identifier derived from the ids of the chunks currently in
+	 * the group.
 	 * @returns {string} a unique concatenation of chunk ids
 	 */
 	get id() {
@@ -175,7 +196,8 @@
 	}
 
 	/**
-	 * Performs an unshift of a specific chunk
+	 * Moves a chunk to the front of the group or inserts it when it is not
+	 * already present.
 	 * @param {Chunk} chunk chunk being unshifted
 	 * @returns {boolean} returns true if attempted chunk shift is accepted
 	 */
@@ -192,7 +214,8 @@
 	}
 
 	/**
-	 * inserts a chunk before another existing chunk in group
+	 * Inserts a chunk directly before another chunk that already belongs to the
+	 * group, preserving the rest of the ordering.
 	 * @param {Chunk} chunk Chunk being inserted
 	 * @param {Chunk} before Placeholder/target chunk marking new chunk insertion point
 	 * @returns {boolean} return true if insertion was successful
@@ -214,7 +237,7 @@
 	}
 
 	/**
-	 * add a chunk into ChunkGroup. Is pushed on or prepended
+	 * Appends a chunk to the group when it is not already a member.
 	 * @param {Chunk} chunk chunk being pushed into ChunkGroupS
 	 * @returns {boolean} returns true if chunk addition was successful.
 	 */
@@ -228,6 +251,8 @@
 	}
 
 	/**
+	 * Replaces one member chunk with another while preserving the group's
+	 * ordering and avoiding duplicates.
 	 * @param {Chunk} oldChunk chunk to be replaced
 	 * @param {Chunk} newChunk New chunk that will be replaced with
 	 * @returns {boolean | undefined} returns true if the replacement was successful
@@ -251,6 +276,7 @@
 	}
 
 	/**
+	 * Removes a chunk from this group.
 	 * @param {Chunk} chunk chunk to remove
 	 * @returns {boolean} returns true if chunk was removed
 	 */
@@ -264,6 +290,8 @@
 	}
 
 	/**
+	 * Indicates whether this chunk group is loaded as part of the initial page
+	 * load instead of being created lazily.
 	 * @returns {boolean} true, when this chunk group will be loaded on initial page load
 	 */
 	isInitial() {
@@ -271,6 +299,7 @@
 	}
 
 	/**
+	 * Adds a child chunk group to the current group.
 	 * @param {ChunkGroup} group chunk group to add
 	 * @returns {boolean} returns true if chunk group was added
 	 */
@@ -281,6 +310,7 @@
 	}
 
 	/**
+	 * Returns the child chunk groups reachable from this group.
 	 * @returns {ChunkGroup[]} returns the children of this group
 	 */
 	getChildren() {
@@ -296,6 +326,8 @@
 	}
 
 	/**
+	 * Removes a child chunk group and clears the corresponding parent link on
+	 * the removed child.
 	 * @param {ChunkGroup} group the chunk group to remove
 	 * @returns {boolean} returns true if the chunk group was removed
 	 */
@@ -310,6 +342,7 @@
 	}
 
 	/**
+	 * Records a parent chunk group relationship.
 	 * @param {ChunkGroup} parentChunk the parent group to be added into
 	 * @returns {boolean} returns true if this chunk group was added to the parent group
 	 */
@@ -322,6 +355,7 @@
 	}
 
 	/**
+	 * Returns the parent chunk groups that can lead to this group.
 	 * @returns {ChunkGroup[]} returns the parents of this group
 	 */
 	getParents() {
@@ -333,6 +367,7 @@
 	}
 
 	/**
+	 * Checks whether the provided group is registered as a parent.
 	 * @param {ChunkGroup} parent the parent group
 	 * @returns {boolean} returns true if the parent group contains this group
 	 */
@@ -345,6 +380,7 @@
 	}
 
 	/**
+	 * Removes a parent chunk group and clears the reverse child relationship.
 	 * @param {ChunkGroup} chunkGroup the parent group
 	 * @returns {boolean} returns true if this group has been removed from the parent
 	 */
@@ -357,6 +393,7 @@
 	}
 
 	/**
+	 * Registers an async entrypoint that is rooted in this chunk group.
 	 * @param {Entrypoint} entrypoint entrypoint to add
 	 * @returns {boolean} returns true if entrypoint was added
 	 */
@@ -371,6 +408,7 @@
 	}
 
 	/**
+	 * Returns the async dependency blocks that create or reference this group.
 	 * @returns {AsyncDependenciesBlock[]} an array containing the blocks
 	 */
 	getBlocks() {
@@ -382,6 +420,7 @@
 	}
 
 	/**
+	 * Checks whether an async dependency block is associated with this group.
 	 * @param {AsyncDependenciesBlock} block block
 	 * @returns {boolean} true, if block exists
 	 */
@@ -390,6 +429,7 @@
 	}
 
 	/**
+	 * Exposes the group's async dependency blocks as an iterable.
 	 * @returns {Iterable<AsyncDependenciesBlock>} blocks
 	 */
 	get blocksIterable() {
@@ -397,6 +437,7 @@
 	}
 
 	/**
+	 * Associates an async dependency block with this chunk group.
 	 * @param {AsyncDependenciesBlock} block a block
 	 * @returns {boolean} false, if block was already added
 	 */
@@ -409,6 +450,8 @@
 	}
 
 	/**
+	 * Records where this chunk group originated from in user code.
+	 * The origin is used for diagnostics, ordering, and reporting.
 	 * @param {Module | null} module origin module
 	 * @param {DependencyLocation} loc location of the reference in the origin module
 	 * @param {string} request request name of the reference
@@ -423,9 +466,11 @@
 	}
 
 	/**
+	 * Collects the emitted files produced by every chunk in the group.
 	 * @returns {string[]} the files contained this chunk group
 	 */
 	getFiles() {
+		/** @type {Set<string>} */
 		const files = new Set();
 
 		for (const chunk of this.chunks) {
@@ -438,6 +483,9 @@
 	}
 
 	/**
+	 * Disconnects this group from its parents, children, and chunks.
+	 * Child groups are reconnected to this group's parents so the surrounding
+	 * graph remains intact after removal.
 	 * @returns {void}
 	 */
 	remove() {
@@ -485,7 +533,7 @@
 	 * Sorting values are based off of number of chunks in ChunkGroup.
 	 * @param {ChunkGraph} chunkGraph the chunk graph
 	 * @param {ChunkGroup} otherGroup the chunkGroup to compare this against
-	 * @returns {-1|0|1} sort position for comparison
+	 * @returns {-1 | 0 | 1} sort position for comparison
 	 */
 	compareTo(chunkGraph, otherGroup) {
 		if (this.chunks.length > otherGroup.chunks.length) return -1;
@@ -497,12 +545,14 @@
 	}
 
 	/**
+	 * Groups child chunk groups by their `*Order` options and sorts each group
+	 * by descending order and deterministic chunk-group comparison.
 	 * @param {ModuleGraph} moduleGraph the module graph
 	 * @param {ChunkGraph} chunkGraph the chunk graph
 	 * @returns {Record<string, ChunkGroup[]>} mapping from children type to ordered list of ChunkGroups
 	 */
 	getChildrenByOrders(moduleGraph, chunkGraph) {
-		/** @type {Map<string, {order: number, group: ChunkGroup}[]>} */
+		/** @type {Map<string, { order: number, group: ChunkGroup }[]>} */
 		const lists = new Map();
 		for (const childGroup of this._children) {
 			for (const key of Object.keys(childGroup.options)) {
@@ -537,7 +587,7 @@
 	}
 
 	/**
-	 * Sets the top-down index of a module in this ChunkGroup
+	 * Stores the module's top-down traversal index within this group.
 	 * @param {Module} module module for which the index should be set
 	 * @param {number} index the index of the module
 	 * @returns {void}
@@ -547,7 +597,7 @@
 	}
 
 	/**
-	 * Gets the top-down index of a module in this ChunkGroup
+	 * Returns the module's top-down traversal index within this group.
 	 * @param {Module} module the module
 	 * @returns {number | undefined} index
 	 */
@@ -556,7 +606,7 @@
 	}
 
 	/**
-	 * Sets the bottom-up index of a module in this ChunkGroup
+	 * Stores the module's bottom-up traversal index within this group.
 	 * @param {Module} module module for which the index should be set
 	 * @param {number} index the index of the module
 	 * @returns {void}
@@ -566,7 +616,7 @@
 	}
 
 	/**
-	 * Gets the bottom-up index of a module in this ChunkGroup
+	 * Returns the module's bottom-up traversal index within this group.
 	 * @param {Module} module the module
 	 * @returns {number | undefined} index
 	 */

--
Gitblit v1.9.3