webpack 5.99.9 → 5.100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/bin/webpack.js +8 -2
  2. package/hot/log.js +15 -15
  3. package/hot/poll.js +1 -0
  4. package/lib/APIPlugin.js +3 -3
  5. package/lib/AbstractMethodError.js +1 -0
  6. package/lib/AutomaticPrefetchPlugin.js +1 -0
  7. package/lib/BannerPlugin.js +1 -1
  8. package/lib/CaseSensitiveModulesWarning.js +4 -4
  9. package/lib/Chunk.js +6 -6
  10. package/lib/ChunkGraph.js +37 -31
  11. package/lib/ChunkGroup.js +4 -4
  12. package/lib/ChunkTemplate.js +1 -1
  13. package/lib/CleanPlugin.js +94 -17
  14. package/lib/CodeGenerationResults.js +1 -1
  15. package/lib/CompatibilityPlugin.js +5 -2
  16. package/lib/Compilation.js +67 -45
  17. package/lib/Compiler.js +46 -16
  18. package/lib/ConcatenationScope.js +15 -6
  19. package/lib/ConstPlugin.js +5 -3
  20. package/lib/ContextModule.js +16 -12
  21. package/lib/ContextModuleFactory.js +4 -3
  22. package/lib/ContextReplacementPlugin.js +4 -2
  23. package/lib/CssModule.js +2 -2
  24. package/lib/DefinePlugin.js +111 -3
  25. package/lib/DelegatedModuleFactoryPlugin.js +18 -18
  26. package/lib/Dependency.js +6 -1
  27. package/lib/DependencyTemplate.js +1 -0
  28. package/lib/DllEntryPlugin.js +3 -1
  29. package/lib/DllPlugin.js +4 -3
  30. package/lib/DllReferencePlugin.js +2 -2
  31. package/lib/DynamicEntryPlugin.js +1 -1
  32. package/lib/EntryOptionPlugin.js +5 -0
  33. package/lib/ErrorHelpers.js +4 -4
  34. package/lib/EvalDevToolModulePlugin.js +3 -3
  35. package/lib/EvalSourceMapDevToolPlugin.js +7 -7
  36. package/lib/ExportsInfo.js +48 -39
  37. package/lib/ExternalModule.js +15 -11
  38. package/lib/ExternalModuleFactoryPlugin.js +5 -2
  39. package/lib/FileSystemInfo.js +51 -36
  40. package/lib/FlagDependencyExportsPlugin.js +14 -7
  41. package/lib/FlagDependencyUsagePlugin.js +1 -1
  42. package/lib/Generator.js +14 -1
  43. package/lib/HookWebpackError.js +1 -0
  44. package/lib/HotModuleReplacementPlugin.js +77 -50
  45. package/lib/IgnorePlugin.js +1 -1
  46. package/lib/InvalidDependenciesModuleWarning.js +1 -1
  47. package/lib/JavascriptMetaInfoPlugin.js +0 -1
  48. package/lib/LibManifestPlugin.js +4 -2
  49. package/lib/LoaderOptionsPlugin.js +6 -4
  50. package/lib/MainTemplate.js +2 -2
  51. package/lib/Module.js +21 -6
  52. package/lib/ModuleFactory.js +1 -0
  53. package/lib/ModuleGraph.js +24 -2
  54. package/lib/ModuleGraphConnection.js +5 -5
  55. package/lib/ModuleInfoHeaderPlugin.js +2 -1
  56. package/lib/ModuleParseError.js +1 -0
  57. package/lib/ModuleSourceTypesConstants.js +12 -12
  58. package/lib/ModuleTemplate.js +1 -1
  59. package/lib/ModuleTypeConstants.js +21 -21
  60. package/lib/MultiCompiler.js +6 -6
  61. package/lib/NormalModule.js +31 -44
  62. package/lib/NormalModuleFactory.js +29 -19
  63. package/lib/NormalModuleReplacementPlugin.js +1 -1
  64. package/lib/NullFactory.js +1 -0
  65. package/lib/OptimizationStages.js +1 -1
  66. package/lib/Parser.js +1 -0
  67. package/lib/ProgressPlugin.js +12 -5
  68. package/lib/ProvidePlugin.js +5 -1
  69. package/lib/RecordIdsPlugin.js +3 -3
  70. package/lib/RuntimeGlobals.js +175 -155
  71. package/lib/RuntimeModule.js +1 -0
  72. package/lib/RuntimePlugin.js +33 -7
  73. package/lib/RuntimeTemplate.js +111 -11
  74. package/lib/SourceMapDevToolModuleOptionsPlugin.js +15 -25
  75. package/lib/SourceMapDevToolPlugin.js +19 -17
  76. package/lib/Template.js +2 -2
  77. package/lib/TemplatedPathPlugin.js +1 -1
  78. package/lib/WarnDeprecatedOptionPlugin.js +7 -8
  79. package/lib/WatchIgnorePlugin.js +4 -3
  80. package/lib/WebpackIsIncludedPlugin.js +2 -1
  81. package/lib/WebpackOptionsApply.js +115 -27
  82. package/lib/asset/AssetGenerator.js +15 -11
  83. package/lib/asset/AssetModulesPlugin.js +19 -17
  84. package/lib/asset/AssetSourceGenerator.js +4 -4
  85. package/lib/asset/RawDataUrlModule.js +4 -2
  86. package/lib/async-modules/AwaitDependenciesInitFragment.js +1 -1
  87. package/lib/buildChunkGraph.js +6 -3
  88. package/lib/cache/AddBuildDependenciesPlugin.js +5 -6
  89. package/lib/cache/IdleFileCachePlugin.js +7 -4
  90. package/lib/cache/MemoryCachePlugin.js +1 -0
  91. package/lib/cache/MemoryWithGcCachePlugin.js +1 -0
  92. package/lib/cache/PackFileCacheStrategy.js +26 -20
  93. package/lib/cache/ResolverCachePlugin.js +16 -8
  94. package/lib/cli.js +15 -10
  95. package/lib/config/browserslistTargetHandler.js +3 -3
  96. package/lib/config/defaults.js +25 -17
  97. package/lib/config/normalization.js +2 -1
  98. package/lib/config/target.js +6 -5
  99. package/lib/container/ContainerPlugin.js +1 -1
  100. package/lib/container/ContainerReferencePlugin.js +1 -1
  101. package/lib/container/FallbackModule.js +2 -1
  102. package/lib/container/HoistContainerReferencesPlugin.js +1 -1
  103. package/lib/container/ModuleFederationPlugin.js +2 -2
  104. package/lib/container/RemoteModule.js +1 -1
  105. package/lib/css/CssGenerator.js +9 -6
  106. package/lib/css/CssModulesPlugin.js +44 -31
  107. package/lib/css/CssParser.js +6 -4
  108. package/lib/css/walkCssTokens.js +33 -37
  109. package/lib/debug/ProfilingPlugin.js +6 -6
  110. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +8 -8
  111. package/lib/dependencies/AMDPlugin.js +12 -8
  112. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -26
  113. package/lib/dependencies/CachedConstDependency.js +1 -5
  114. package/lib/dependencies/CommonJsExportRequireDependency.js +6 -4
  115. package/lib/dependencies/CommonJsExportsParserPlugin.js +22 -25
  116. package/lib/dependencies/CommonJsFullRequireDependency.js +1 -9
  117. package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -114
  118. package/lib/dependencies/CommonJsPlugin.js +15 -16
  119. package/lib/dependencies/ContextDependencyHelpers.js +2 -1
  120. package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
  121. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  122. package/lib/dependencies/CssIcssExportDependency.js +1 -1
  123. package/lib/dependencies/CssLocalIdentifierDependency.js +2 -2
  124. package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -1
  125. package/lib/dependencies/DynamicExports.js +9 -9
  126. package/lib/dependencies/ExportsInfoDependency.js +1 -1
  127. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +122 -101
  128. package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
  129. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +95 -19
  130. package/lib/dependencies/HarmonyExportInitFragment.js +1 -1
  131. package/lib/dependencies/HarmonyImportDependency.js +11 -5
  132. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +238 -162
  133. package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -1
  134. package/lib/dependencies/HarmonyImportSpecifierDependency.js +20 -9
  135. package/lib/dependencies/HarmonyModulesPlugin.js +23 -12
  136. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +1 -0
  137. package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
  138. package/lib/dependencies/ImportMetaPlugin.js +2 -2
  139. package/lib/dependencies/ImportParserPlugin.js +40 -9
  140. package/lib/dependencies/ImportPlugin.js +3 -1
  141. package/lib/dependencies/LoaderPlugin.js +1 -0
  142. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  143. package/lib/dependencies/RequireContextPlugin.js +3 -1
  144. package/lib/dependencies/RequireEnsurePlugin.js +6 -6
  145. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +33 -34
  146. package/lib/dependencies/RequireIncludePlugin.js +1 -0
  147. package/lib/dependencies/RuntimeRequirementsDependency.js +1 -1
  148. package/lib/dependencies/SystemPlugin.js +1 -1
  149. package/lib/dependencies/URLContextDependency.js +65 -0
  150. package/lib/dependencies/URLPlugin.js +17 -157
  151. package/lib/dependencies/WorkerPlugin.js +23 -10
  152. package/lib/dependencies/processExportInfo.js +2 -1
  153. package/lib/esm/ModuleChunkFormatPlugin.js +269 -185
  154. package/lib/esm/ModuleChunkLoadingPlugin.js +39 -1
  155. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +70 -3
  156. package/lib/hmr/HotModuleReplacement.runtime.js +0 -1
  157. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
  158. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +37 -0
  159. package/lib/hmr/LazyCompilationPlugin.js +4 -2
  160. package/lib/hmr/lazyCompilationBackend.js +4 -2
  161. package/lib/ids/ChunkModuleIdRangePlugin.js +6 -3
  162. package/lib/ids/DeterministicChunkIdsPlugin.js +30 -35
  163. package/lib/ids/DeterministicModuleIdsPlugin.js +4 -3
  164. package/lib/ids/HashedModuleIdsPlugin.js +5 -4
  165. package/lib/ids/IdHelpers.js +21 -17
  166. package/lib/ids/NamedChunkIdsPlugin.js +5 -5
  167. package/lib/ids/NamedModuleIdsPlugin.js +4 -4
  168. package/lib/ids/NaturalChunkIdsPlugin.js +2 -1
  169. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  170. package/lib/ids/OccurrenceChunkIdsPlugin.js +3 -2
  171. package/lib/ids/OccurrenceModuleIdsPlugin.js +1 -1
  172. package/lib/ids/SyncModuleIdsPlugin.js +1 -1
  173. package/lib/index.js +13 -3
  174. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +113 -119
  175. package/lib/javascript/BasicEvaluatedExpression.js +2 -1
  176. package/lib/javascript/ChunkHelpers.js +1 -0
  177. package/lib/javascript/CommonJsChunkFormatPlugin.js +121 -136
  178. package/lib/javascript/EnableChunkLoadingPlugin.js +6 -3
  179. package/lib/javascript/JavascriptGenerator.js +14 -2
  180. package/lib/javascript/JavascriptModulesPlugin.js +68 -27
  181. package/lib/javascript/JavascriptParser.js +117 -76
  182. package/lib/javascript/JavascriptParserHelpers.js +41 -41
  183. package/lib/javascript/StartupHelpers.js +17 -17
  184. package/lib/json/JsonGenerator.js +4 -2
  185. package/lib/json/JsonModulesPlugin.js +2 -2
  186. package/lib/json/JsonParser.js +1 -1
  187. package/lib/library/AbstractLibraryPlugin.js +6 -2
  188. package/lib/library/AssignLibraryPlugin.js +21 -6
  189. package/lib/library/EnableLibraryPlugin.js +23 -3
  190. package/lib/library/UmdLibraryPlugin.js +15 -6
  191. package/lib/logging/createConsoleLogger.js +3 -3
  192. package/lib/logging/runtime.js +9 -9
  193. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +4 -22
  194. package/lib/node/RequireChunkLoadingRuntimeModule.js +4 -22
  195. package/lib/node/nodeConsole.js +4 -2
  196. package/lib/optimize/AggressiveMergingPlugin.js +45 -46
  197. package/lib/optimize/AggressiveSplittingPlugin.js +13 -12
  198. package/lib/optimize/ConcatenatedModule.js +227 -57
  199. package/lib/optimize/EnsureChunkConditionsPlugin.js +58 -58
  200. package/lib/optimize/FlagIncludedChunksPlugin.js +3 -1
  201. package/lib/optimize/InnerGraph.js +115 -112
  202. package/lib/optimize/InnerGraphPlugin.js +2 -2
  203. package/lib/optimize/LimitChunkCountPlugin.js +4 -2
  204. package/lib/optimize/MangleExportsPlugin.js +4 -3
  205. package/lib/optimize/MergeDuplicateChunksPlugin.js +80 -81
  206. package/lib/optimize/MinChunkSizePlugin.js +6 -3
  207. package/lib/optimize/ModuleConcatenationPlugin.js +31 -22
  208. package/lib/optimize/RealContentHashPlugin.js +26 -20
  209. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  210. package/lib/optimize/RemoveParentModulesPlugin.js +1 -0
  211. package/lib/optimize/SideEffectsFlagPlugin.js +3 -2
  212. package/lib/optimize/SplitChunksPlugin.js +16 -13
  213. package/lib/rules/BasicEffectRulePlugin.js +4 -2
  214. package/lib/rules/BasicMatcherRulePlugin.js +3 -1
  215. package/lib/rules/ObjectMatcherRulePlugin.js +3 -1
  216. package/lib/rules/RuleSetCompiler.js +6 -3
  217. package/lib/rules/UseEffectRulePlugin.js +3 -1
  218. package/lib/runtime/AsyncModuleRuntimeModule.js +64 -9
  219. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -1
  220. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +214 -0
  221. package/lib/runtime/RuntimeIdRuntimeModule.js +2 -1
  222. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +8 -7
  223. package/lib/schemes/FileUriPlugin.js +1 -1
  224. package/lib/schemes/HttpUriPlugin.js +27 -19
  225. package/lib/schemes/VirtualUrlPlugin.js +222 -0
  226. package/lib/serialization/AggregateErrorSerializer.js +1 -1
  227. package/lib/serialization/BinaryMiddleware.js +5 -4
  228. package/lib/serialization/FileMiddleware.js +7 -4
  229. package/lib/serialization/ObjectMiddleware.js +14 -8
  230. package/lib/serialization/Serializer.js +5 -3
  231. package/lib/serialization/SerializerMiddleware.js +2 -0
  232. package/lib/sharing/ConsumeSharedModule.js +1 -1
  233. package/lib/sharing/ConsumeSharedPlugin.js +3 -3
  234. package/lib/sharing/ConsumeSharedRuntimeModule.js +2 -2
  235. package/lib/sharing/ProvideSharedModule.js +1 -1
  236. package/lib/sharing/ProvideSharedPlugin.js +3 -2
  237. package/lib/sharing/SharePlugin.js +2 -1
  238. package/lib/sharing/ShareRuntimeModule.js +3 -5
  239. package/lib/sharing/utils.js +34 -34
  240. package/lib/stats/DefaultStatsFactoryPlugin.js +49 -46
  241. package/lib/stats/DefaultStatsPresetPlugin.js +4 -2
  242. package/lib/stats/DefaultStatsPrinterPlugin.js +15 -9
  243. package/lib/stats/StatsFactory.js +4 -2
  244. package/lib/stats/StatsPrinter.js +3 -2
  245. package/lib/url/URLParserPlugin.js +266 -0
  246. package/lib/util/ArrayQueue.js +1 -1
  247. package/lib/util/AsyncQueue.js +1 -1
  248. package/lib/util/Hash.js +2 -0
  249. package/lib/util/IterableHelpers.js +1 -1
  250. package/lib/util/LazyBucketSortedSet.js +2 -1
  251. package/lib/util/LazySet.js +11 -6
  252. package/lib/util/ParallelismFactorCalculator.js +1 -1
  253. package/lib/util/SetHelpers.js +3 -3
  254. package/lib/util/SortableSet.js +2 -2
  255. package/lib/util/StackedCacheMap.js +3 -1
  256. package/lib/util/StackedMap.js +2 -2
  257. package/lib/util/StringXor.js +1 -0
  258. package/lib/util/TupleSet.js +1 -0
  259. package/lib/util/URLAbsoluteSpecifier.js +1 -1
  260. package/lib/util/cleverMerge.js +12 -8
  261. package/lib/util/comparators.js +154 -127
  262. package/lib/util/compileBooleanMatcher.js +8 -3
  263. package/lib/util/concatenate.js +8 -7
  264. package/lib/util/conventions.js +72 -73
  265. package/lib/util/create-schema-validation.js +2 -1
  266. package/lib/util/createHash.js +10 -4
  267. package/lib/util/deprecation.js +69 -66
  268. package/lib/util/deterministicGrouping.js +4 -2
  269. package/lib/util/extractUrlAndGlobal.js +1 -1
  270. package/lib/util/findGraphRoots.js +2 -2
  271. package/lib/util/fs.js +30 -23
  272. package/lib/util/hash/md4.js +2 -2
  273. package/lib/util/hash/wasm-hash.js +4 -2
  274. package/lib/util/identifier.js +13 -12
  275. package/lib/util/internalSerializables.js +2 -0
  276. package/lib/util/magicComment.js +5 -5
  277. package/lib/util/processAsyncTree.js +1 -1
  278. package/lib/util/propertyAccess.js +1 -1
  279. package/lib/util/propertyName.js +1 -1
  280. package/lib/util/registerExternalSerializer.js +1 -2
  281. package/lib/util/removeBOM.js +1 -1
  282. package/lib/util/runtime.js +29 -21
  283. package/lib/util/semver.js +1 -1
  284. package/lib/util/serialization.js +3 -0
  285. package/lib/util/source.js +3 -2
  286. package/lib/validateSchema.js +1 -0
  287. package/lib/wasm/EnableWasmLoadingPlugin.js +6 -3
  288. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +4 -1
  289. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +46 -49
  290. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +2 -2
  291. package/lib/wasm-sync/WebAssemblyGenerator.js +2 -3
  292. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +3 -2
  293. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +3 -0
  294. package/lib/wasm-sync/WebAssemblyUtils.js +1 -1
  295. package/lib/web/JsonpChunkLoadingRuntimeModule.js +4 -22
  296. package/lib/webpack.js +4 -5
  297. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +1 -0
  298. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -24
  299. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -0
  300. package/package.json +119 -113
  301. package/schemas/WebpackOptions.check.js +1 -1
  302. package/schemas/WebpackOptions.json +17 -0
  303. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +7 -0
  304. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +6 -0
  305. package/schemas/plugins/schemes/VirtualUrlPlugin.json +77 -0
  306. package/types.d.ts +1230 -360
@@ -7,11 +7,13 @@
7
7
  const { constants } = require("buffer");
8
8
  const { pipeline } = require("stream");
9
9
  const {
10
+ constants: zConstants,
11
+ // eslint-disable-next-line n/no-unsupported-features/node-builtins
10
12
  createBrotliCompress,
13
+ // eslint-disable-next-line n/no-unsupported-features/node-builtins
11
14
  createBrotliDecompress,
12
- createGzip,
13
15
  createGunzip,
14
- constants: zConstants
16
+ createGzip
15
17
  } = require("zlib");
16
18
  const { DEFAULTS } = require("../config/defaults");
17
19
  const createHash = require("../util/createHash");
@@ -117,8 +119,9 @@ const serialize = async (
117
119
  let lastBuffers;
118
120
  for (const item of await data) {
119
121
  if (typeof item === "function") {
120
- if (!SerializerMiddleware.isLazy(item))
122
+ if (!SerializerMiddleware.isLazy(item)) {
121
123
  throw new Error("Unexpected function");
124
+ }
122
125
  if (!SerializerMiddleware.isLazy(item, middleware)) {
123
126
  throw new Error(
124
127
  "Unexpected lazy value with non-this target (can't pass through lazy values)"
@@ -551,7 +554,7 @@ class FileMiddleware extends SerializerMiddleware {
551
554
  * @param {(value?: undefined) => void} resolve resolve
552
555
  */
553
556
  resolve => {
554
- this.fs.rename(filename, `${filename}.old`, err => {
557
+ this.fs.rename(filename, `${filename}.old`, _err => {
555
558
  resolve();
556
559
  });
557
560
  }
@@ -175,7 +175,7 @@ if (exports.constructor !== Object) {
175
175
  // eslint-disable-next-line n/exports-style
176
176
  const Obj = /** @type {ObjectConstructor} */ (exports.constructor);
177
177
  const Fn = /** @type {FunctionConstructor} */ (Obj.constructor);
178
- for (const [type, config] of Array.from(jsTypes)) {
178
+ for (const [type, config] of jsTypes) {
179
179
  if (type) {
180
180
  const Type = new Fn(`return ${type.name};`)();
181
181
  jsTypes.set(Type, config);
@@ -416,7 +416,7 @@ class ObjectMiddleware extends SerializerMiddleware {
416
416
  * @returns {string} stack
417
417
  */
418
418
  const stackToString = item => {
419
- const arr = Array.from(cycleStack);
419
+ const arr = [...cycleStack];
420
420
  arr.push(item);
421
421
  return arr
422
422
  .map(item => {
@@ -439,11 +439,13 @@ class ObjectMiddleware extends SerializerMiddleware {
439
439
  }
440
440
  if (typeof item === "object" && item !== null) {
441
441
  if (item.constructor) {
442
- if (item.constructor === Object)
442
+ if (item.constructor === Object) {
443
443
  return `Object { ${Object.keys(item).join(", ")} }`;
444
+ }
444
445
  if (item.constructor === Map) return `Map { ${item.size} items }`;
445
- if (item.constructor === Array)
446
+ if (item.constructor === Array) {
446
447
  return `Array { ${item.length} items }`;
448
+ }
447
449
  if (item.constructor === Set) return `Set { ${item.size} items }`;
448
450
  if (item.constructor === RegExp) return item.toString();
449
451
  return `${item.constructor.name}`;
@@ -472,8 +474,9 @@ class ObjectMiddleware extends SerializerMiddleware {
472
474
  process(value);
473
475
  } catch (err) {
474
476
  if (err !== NOT_SERIALIZABLE) {
475
- if (hasDebugInfoAttached === undefined)
477
+ if (hasDebugInfoAttached === undefined) {
476
478
  hasDebugInfoAttached = new WeakSet();
479
+ }
477
480
  if (!hasDebugInfoAttached.has(/** @type {Error} */ (err))) {
478
481
  /** @type {Error} */
479
482
  (err).message += `\nwhile serializing ${stackToString(value)}`;
@@ -596,8 +599,9 @@ class ObjectMiddleware extends SerializerMiddleware {
596
599
 
597
600
  result.push(item);
598
601
  } else if (typeof item === "function") {
599
- if (!SerializerMiddleware.isLazy(item))
602
+ if (!SerializerMiddleware.isLazy(item)) {
600
603
  throw new Error(`Unexpected function ${item}`);
604
+ }
601
605
 
602
606
  /** @type {SerializedType | undefined} */
603
607
  const serializedData =
@@ -658,14 +662,16 @@ class ObjectMiddleware extends SerializerMiddleware {
658
662
  deserialize(data, context) {
659
663
  let currentDataPos = 0;
660
664
  const read = () => {
661
- if (currentDataPos >= data.length)
665
+ if (currentDataPos >= data.length) {
662
666
  throw new Error("Unexpected end of stream");
667
+ }
663
668
 
664
669
  return data[currentDataPos++];
665
670
  };
666
671
 
667
- if (read() !== CURRENT_VERSION)
672
+ if (read() !== CURRENT_VERSION) {
668
673
  throw new Error("Version mismatch, serializer changed");
674
+ }
669
675
 
670
676
  let currentPos = 0;
671
677
  /** @type {ReferenceableItem[]} */
@@ -20,8 +20,8 @@ class Serializer {
20
20
  * @param {Context=} context context
21
21
  */
22
22
  constructor(middlewares, context) {
23
- this.serializeMiddlewares = middlewares.slice();
24
- this.deserializeMiddlewares = middlewares.slice().reverse();
23
+ this.serializeMiddlewares = [...middlewares];
24
+ this.deserializeMiddlewares = [...middlewares].reverse();
25
25
  this.context = context;
26
26
  }
27
27
 
@@ -49,7 +49,9 @@ class Serializer {
49
49
  } catch (err) {
50
50
  current = Promise.reject(err);
51
51
  }
52
- } else break;
52
+ } else {
53
+ break;
54
+ }
53
55
  }
54
56
  return /** @type {Promise<SerializedValue>} */ (current);
55
57
  }
@@ -35,6 +35,7 @@ class SerializerMiddleware {
35
35
  */
36
36
  serialize(data, context) {
37
37
  const AbstractMethodError = require("../AbstractMethodError");
38
+
38
39
  throw new AbstractMethodError();
39
40
  }
40
41
 
@@ -47,6 +48,7 @@ class SerializerMiddleware {
47
48
  */
48
49
  deserialize(data, context) {
49
50
  const AbstractMethodError = require("../AbstractMethodError");
51
+
50
52
  throw new AbstractMethodError();
51
53
  }
52
54
 
@@ -177,7 +177,7 @@ class ConsumeSharedModule extends Module {
177
177
  * @param {CodeGenerationContext} context context for code generation
178
178
  * @returns {CodeGenerationResult} result
179
179
  */
180
- codeGeneration({ chunkGraph, moduleGraph, runtimeTemplate }) {
180
+ codeGeneration({ chunkGraph, runtimeTemplate }) {
181
181
  const runtimeRequirements = new Set([RuntimeGlobals.shareScopeMap]);
182
182
  const {
183
183
  shareScope,
@@ -18,9 +18,9 @@ const ConsumeSharedRuntimeModule = require("./ConsumeSharedRuntimeModule");
18
18
  const ProvideForSharedDependency = require("./ProvideForSharedDependency");
19
19
  const { resolveMatchedConfigs } = require("./resolveMatchedConfigs");
20
20
  const {
21
- isRequiredVersion,
22
21
  getDescriptionFile,
23
- getRequiredVersionFromDescriptionFile
22
+ getRequiredVersionFromDescriptionFile,
23
+ isRequiredVersion
24
24
  } = require("./utils");
25
25
 
26
26
  /** @typedef {import("../../declarations/plugins/sharing/ConsumeSharedPlugin").ConsumeSharedPluginOptions} ConsumeSharedPluginOptions */
@@ -32,7 +32,7 @@ const {
32
32
  /** @typedef {import("./utils").DescriptionFile} DescriptionFile */
33
33
 
34
34
  const validate = createSchemaValidation(
35
- require("../../schemas/plugins/sharing/ConsumeSharedPlugin.check.js"),
35
+ require("../../schemas/plugins/sharing/ConsumeSharedPlugin.check"),
36
36
  () => require("../../schemas/plugins/sharing/ConsumeSharedPlugin.json"),
37
37
  {
38
38
  name: "Consume Shared Plugin",
@@ -10,9 +10,9 @@ const RuntimeModule = require("../RuntimeModule");
10
10
  const Template = require("../Template");
11
11
  const {
12
12
  parseVersionRuntimeCode,
13
- versionLtRuntimeCode,
14
13
  rangeToStringRuntimeCode,
15
- satisfyRuntimeCode
14
+ satisfyRuntimeCode,
15
+ versionLtRuntimeCode
16
16
  } = require("../util/semver");
17
17
 
18
18
  /** @typedef {import("webpack-sources").Source} Source */
@@ -132,7 +132,7 @@ class ProvideSharedModule extends Module {
132
132
  * @param {CodeGenerationContext} context context for code generation
133
133
  * @returns {CodeGenerationResult} result
134
134
  */
135
- codeGeneration({ runtimeTemplate, moduleGraph, chunkGraph }) {
135
+ codeGeneration({ runtimeTemplate, chunkGraph }) {
136
136
  const runtimeRequirements = new Set([RuntimeGlobals.initializeSharing]);
137
137
  const code = `register(${JSON.stringify(this._name)}, ${JSON.stringify(
138
138
  this._version || "0"
@@ -18,7 +18,7 @@ const ProvideSharedModuleFactory = require("./ProvideSharedModuleFactory");
18
18
  /** @typedef {import("../NormalModuleFactory").NormalModuleCreateData} NormalModuleCreateData */
19
19
 
20
20
  const validate = createSchemaValidation(
21
- require("../../schemas/plugins/sharing/ProvideSharedPlugin.check.js"),
21
+ require("../../schemas/plugins/sharing/ProvideSharedPlugin.check"),
22
22
  () => require("../../schemas/plugins/sharing/ProvideSharedPlugin.json"),
23
23
  {
24
24
  name: "Provide Shared Plugin",
@@ -49,8 +49,9 @@ class ProvideSharedPlugin {
49
49
  parseOptions(
50
50
  options.provides,
51
51
  item => {
52
- if (Array.isArray(item))
52
+ if (Array.isArray(item)) {
53
53
  throw new Error("Unexpected array of provides");
54
+ }
54
55
  /** @type {ProvideOptions} */
55
56
  const result = {
56
57
  shareKey: item,
@@ -27,8 +27,9 @@ class SharePlugin {
27
27
  const sharedOptions = parseOptions(
28
28
  options.shared,
29
29
  (item, key) => {
30
- if (typeof item !== "string")
30
+ if (typeof item !== "string") {
31
31
  throw new Error("Unexpected array in shared");
32
+ }
32
33
  /** @type {SharedConfig} */
33
34
  const config =
34
35
  item === key || !isRequiredVersion(item)
@@ -121,17 +121,15 @@ class ShareRuntimeModule extends RuntimeModule {
121
121
  ])}`,
122
122
  "var promises = [];",
123
123
  "switch(name) {",
124
- ...Array.from(initCodePerScope)
124
+ ...[...initCodePerScope]
125
125
  .sort(([a], [b]) => compareStrings(a, b))
126
126
  .map(([name, stages]) =>
127
127
  Template.indent([
128
128
  `case ${JSON.stringify(name)}: {`,
129
129
  Template.indent(
130
- Array.from(stages)
130
+ [...stages]
131
131
  .sort(([a], [b]) => a - b)
132
- .map(([, initCode]) =>
133
- Template.asString(Array.from(initCode))
134
- )
132
+ .map(([, initCode]) => Template.asString([...initCode]))
135
133
  ),
136
134
  "}",
137
135
  "break;"
@@ -5,7 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const { join, dirname, readJson } = require("../util/fs");
8
+ const { dirname, join, readJson } = require("../util/fs");
9
9
 
10
10
  /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
11
11
  /** @typedef {import("../util/fs").JsonObject} JsonObject */
@@ -292,34 +292,6 @@ function getGitUrlVersion(gitUrl) {
292
292
  return getVersionFromHash(gitUrl);
293
293
  }
294
294
 
295
- /**
296
- * @param {string} str maybe required version
297
- * @returns {boolean} true, if it looks like a version
298
- */
299
- function isRequiredVersion(str) {
300
- return VERSION_PATTERN_REGEXP.test(str);
301
- }
302
-
303
- module.exports.isRequiredVersion = isRequiredVersion;
304
-
305
- /**
306
- * @see https://docs.npmjs.com/cli/v7/configuring-npm/package-json#urls-as-dependencies
307
- * @param {string} versionDesc version to be normalized
308
- * @returns {string} normalized version
309
- */
310
- function normalizeVersion(versionDesc) {
311
- versionDesc = (versionDesc && versionDesc.trim()) || "";
312
-
313
- if (isRequiredVersion(versionDesc)) {
314
- return versionDesc;
315
- }
316
-
317
- // add handle for URL Dependencies
318
- return getGitUrlVersion(versionDesc.toLowerCase());
319
- }
320
-
321
- module.exports.normalizeVersion = normalizeVersion;
322
-
323
295
  /** @typedef {{ data: JsonObject, path: string }} DescriptionFile */
324
296
 
325
297
  /**
@@ -349,11 +321,9 @@ const getDescriptionFile = (
349
321
  if (i >= descriptionFiles.length) {
350
322
  const parentDirectory = dirname(fs, directory);
351
323
  if (!parentDirectory || parentDirectory === directory) {
352
- return callback(
353
- null,
354
- undefined,
355
- Array.from(satisfiesDescriptionFileDataInternal.checkedFilePaths)
356
- );
324
+ return callback(null, undefined, [
325
+ ...satisfiesDescriptionFileDataInternal.checkedFilePaths
326
+ ]);
357
327
  }
358
328
  return getDescriptionFile(
359
329
  fs,
@@ -391,6 +361,7 @@ const getDescriptionFile = (
391
361
  };
392
362
  tryLoadCurrent();
393
363
  };
364
+
394
365
  module.exports.getDescriptionFile = getDescriptionFile;
395
366
 
396
367
  /**
@@ -421,5 +392,34 @@ const getRequiredVersionFromDescriptionFile = (data, packageName) => {
421
392
  }
422
393
  }
423
394
  };
395
+
424
396
  module.exports.getRequiredVersionFromDescriptionFile =
425
397
  getRequiredVersionFromDescriptionFile;
398
+
399
+ /**
400
+ * @param {string} str maybe required version
401
+ * @returns {boolean} true, if it looks like a version
402
+ */
403
+ function isRequiredVersion(str) {
404
+ return VERSION_PATTERN_REGEXP.test(str);
405
+ }
406
+
407
+ module.exports.isRequiredVersion = isRequiredVersion;
408
+
409
+ /**
410
+ * @see https://docs.npmjs.com/cli/v7/configuring-npm/package-json#urls-as-dependencies
411
+ * @param {string} versionDesc version to be normalized
412
+ * @returns {string} normalized version
413
+ */
414
+ function normalizeVersion(versionDesc) {
415
+ versionDesc = (versionDesc && versionDesc.trim()) || "";
416
+
417
+ if (isRequiredVersion(versionDesc)) {
418
+ return versionDesc;
419
+ }
420
+
421
+ // add handle for URL Dependencies
422
+ return getGitUrlVersion(versionDesc.toLowerCase());
423
+ }
424
+
425
+ module.exports.normalizeVersion = normalizeVersion;
@@ -14,13 +14,13 @@ const AggressiveSplittingPlugin = require("../optimize/AggressiveSplittingPlugin
14
14
  const SizeLimitsPlugin = require("../performance/SizeLimitsPlugin");
15
15
  const { countIterable } = require("../util/IterableHelpers");
16
16
  const {
17
- compareLocations,
18
17
  compareChunksById,
19
- compareNumbers,
20
18
  compareIds,
21
- concatComparators,
19
+ compareLocations,
20
+ compareModulesByIdentifier,
21
+ compareNumbers,
22
22
  compareSelect,
23
- compareModulesByIdentifier
23
+ concatComparators
24
24
  } = require("../util/comparators");
25
25
  const { makePathsRelative, parseResource } = require("../util/identifier");
26
26
 
@@ -358,7 +358,7 @@ const uniqueArray = (items, selector) => {
358
358
  set.add(i);
359
359
  }
360
360
  }
361
- return Array.from(set);
361
+ return [...set];
362
362
  };
363
363
 
364
364
  /**
@@ -495,7 +495,7 @@ const EXTRACT_ERROR = {
495
495
  errorDetails: (
496
496
  object,
497
497
  error,
498
- { type, compilation, cachedGetErrors, cachedGetWarnings },
498
+ { type, compilation, cachedGetErrors },
499
499
  { errorDetails }
500
500
  ) => {
501
501
  if (
@@ -582,6 +582,7 @@ const SIMPLE_EXTRACTORS = {
582
582
  const { logging, loggingDebug, loggingTrace } = options;
583
583
  if (logging || (loggingDebug && loggingDebug.length > 0)) {
584
584
  const util = require("util");
585
+
585
586
  object.logging = {};
586
587
  let acceptedTypes;
587
588
  let collapsedGroups = false;
@@ -654,8 +655,9 @@ const SIMPLE_EXTRACTORS = {
654
655
  if (
655
656
  type === LogType.groupCollapsed &&
656
657
  (debugMode || collapsedGroups)
657
- )
658
+ ) {
658
659
  type = LogType.group;
660
+ }
659
661
 
660
662
  if (depthInCollapsedGroup === 0) {
661
663
  processedLogEntries++;
@@ -821,15 +823,11 @@ const SIMPLE_EXTRACTORS = {
821
823
  }
822
824
  }
823
825
 
824
- const groupedAssets = factory.create(
825
- `${type}.assets`,
826
- Array.from(assets),
827
- {
828
- ...context,
829
- compilationFileToChunks,
830
- compilationAuxiliaryFileToChunks
831
- }
832
- );
826
+ const groupedAssets = factory.create(`${type}.assets`, [...assets], {
827
+ ...context,
828
+ compilationFileToChunks,
829
+ compilationAuxiliaryFileToChunks
830
+ });
833
831
  const limited = spaceLimited(
834
832
  groupedAssets,
835
833
  /** @type {number} */ (options.assetsSpace)
@@ -841,13 +839,13 @@ const SIMPLE_EXTRACTORS = {
841
839
  const { type } = context;
842
840
  object.chunks = factory.create(
843
841
  `${type}.chunks`,
844
- Array.from(compilation.chunks),
842
+ [...compilation.chunks],
845
843
  context
846
844
  );
847
845
  },
848
846
  modules: (object, compilation, context, options, factory) => {
849
847
  const { type } = context;
850
- const array = Array.from(compilation.modules);
848
+ const array = [...compilation.modules];
851
849
  const groupedModules = factory.create(`${type}.modules`, array, context);
852
850
  const limited = spaceLimited(groupedModules, options.modulesSpace);
853
851
  object.modules = limited.children;
@@ -980,9 +978,10 @@ const SIMPLE_EXTRACTORS = {
980
978
  !warningsFilter &&
981
979
  /** @type {KnownNormalizedStatsOptions["warningsFilter"]} */
982
980
  (warningsFilter).length === 0
983
- )
981
+ ) {
984
982
  // Type is wrong, because we don't need the real value for counting
985
983
  return /** @type {EXPECTED_ANY[]} */ (cachedGetWarnings(c));
984
+ }
986
985
  return factory
987
986
  .create(`${type}${childType}.warnings`, cachedGetWarnings(c), context)
988
987
  .filter(
@@ -1038,7 +1037,7 @@ const SIMPLE_EXTRACTORS = {
1038
1037
  _: (
1039
1038
  object,
1040
1039
  asset,
1041
- { compilation, compilationFileToChunks, compilationAuxiliaryFileToChunks }
1040
+ { compilationFileToChunks, compilationAuxiliaryFileToChunks }
1042
1041
  ) => {
1043
1042
  const chunks = compilationFileToChunks.get(asset.name) || [];
1044
1043
  const auxiliaryChunks =
@@ -1050,7 +1049,7 @@ const SIMPLE_EXTRACTORS = {
1050
1049
  );
1051
1050
  object.chunkIdHints = uniqueOrderedArray(
1052
1051
  chunks,
1053
- c => Array.from(c.idNameHints),
1052
+ c => [...c.idNameHints],
1054
1053
  compareIds
1055
1054
  );
1056
1055
  object.auxiliaryChunkNames = uniqueOrderedArray(
@@ -1060,7 +1059,7 @@ const SIMPLE_EXTRACTORS = {
1060
1059
  );
1061
1060
  object.auxiliaryChunkIdHints = uniqueOrderedArray(
1062
1061
  auxiliaryChunks,
1063
- c => Array.from(c.idNameHints),
1062
+ c => [...c.idNameHints],
1064
1063
  compareIds
1065
1064
  );
1066
1065
  object.filteredRelated = asset.related ? asset.related.length : undefined;
@@ -1200,7 +1199,7 @@ const SIMPLE_EXTRACTORS = {
1200
1199
  }
1201
1200
  }
1202
1201
  }
1203
- return Array.from(set);
1202
+ return [...set];
1204
1203
  })
1205
1204
  : undefined
1206
1205
  };
@@ -1330,7 +1329,7 @@ const SIMPLE_EXTRACTORS = {
1330
1329
  } = context;
1331
1330
  const groupsReasons = factory.create(
1332
1331
  `${type.slice(0, -8)}.reasons`,
1333
- Array.from(moduleGraph.getIncomingConnections(module)),
1332
+ [...moduleGraph.getIncomingConnections(module)],
1334
1333
  context
1335
1334
  );
1336
1335
  const limited = spaceLimited(
@@ -1352,7 +1351,7 @@ const SIMPLE_EXTRACTORS = {
1352
1351
  } else if (typeof usedExports === "boolean") {
1353
1352
  object.usedExports = usedExports;
1354
1353
  } else {
1355
- object.usedExports = Array.from(usedExports);
1354
+ object.usedExports = [...usedExports];
1356
1355
  }
1357
1356
  },
1358
1357
  providedExports: (object, module, { compilation: { moduleGraph } }) => {
@@ -1506,15 +1505,15 @@ const SIMPLE_EXTRACTORS = {
1506
1505
  size: chunkGraph.getChunkModulesSize(chunk),
1507
1506
  sizes: chunkGraph.getChunkModulesSizes(chunk),
1508
1507
  names: chunk.name ? [chunk.name] : [],
1509
- idHints: Array.from(chunk.idNameHints),
1508
+ idHints: [...chunk.idNameHints],
1510
1509
  runtime:
1511
1510
  chunk.runtime === undefined
1512
1511
  ? undefined
1513
1512
  : typeof chunk.runtime === "string"
1514
1513
  ? [makePathsRelative(chunk.runtime)]
1515
1514
  : Array.from(chunk.runtime.sort(), makePathsRelative),
1516
- files: Array.from(chunk.files),
1517
- auxiliaryFiles: Array.from(chunk.auxiliaryFiles).sort(compareIds),
1515
+ files: [...chunk.files],
1516
+ auxiliaryFiles: [...chunk.auxiliaryFiles].sort(compareIds),
1518
1517
  hash: /** @type {string} */ (chunk.renderedHash),
1519
1518
  childrenByOrder: childIdByOrder
1520
1519
  };
@@ -1523,7 +1522,7 @@ const SIMPLE_EXTRACTORS = {
1523
1522
  ids: (object, chunk) => {
1524
1523
  object.id = /** @type {ChunkId} */ (chunk.id);
1525
1524
  },
1526
- chunkRelations: (object, chunk, { compilation: { chunkGraph } }) => {
1525
+ chunkRelations: (object, chunk, _context) => {
1527
1526
  /** @type {Set<string|number>} */
1528
1527
  const parents = new Set();
1529
1528
  /** @type {Set<string|number>} */
@@ -1543,13 +1542,14 @@ const SIMPLE_EXTRACTORS = {
1543
1542
  }
1544
1543
  }
1545
1544
  for (const sibling of chunkGroup.chunks) {
1546
- if (sibling !== chunk)
1545
+ if (sibling !== chunk) {
1547
1546
  siblings.add(/** @type {ChunkId} */ (sibling.id));
1547
+ }
1548
1548
  }
1549
1549
  }
1550
- object.siblings = Array.from(siblings).sort(compareIds);
1551
- object.parents = Array.from(parents).sort(compareIds);
1552
- object.children = Array.from(children).sort(compareIds);
1550
+ object.siblings = [...siblings].sort(compareIds);
1551
+ object.parents = [...parents].sort(compareIds);
1552
+ object.children = [...children].sort(compareIds);
1553
1553
  },
1554
1554
  chunkModules: (object, chunk, context, options, factory) => {
1555
1555
  const {
@@ -1624,15 +1624,13 @@ const SIMPLE_EXTRACTORS = {
1624
1624
  object.originName = origin.readableIdentifier(requestShortener);
1625
1625
  object.moduleIdentifier = module.identifier();
1626
1626
  object.moduleName = module.readableIdentifier(requestShortener);
1627
- const dependencies = Array.from(
1628
- moduleGraph.getIncomingConnections(module)
1629
- )
1627
+ const dependencies = [...moduleGraph.getIncomingConnections(module)]
1630
1628
  .filter(c => c.resolvedOriginModule === origin && c.dependency)
1631
1629
  .map(c => c.dependency);
1632
1630
  object.dependencies = factory.create(
1633
1631
  `${type}.dependencies`,
1634
1632
  /** @type {Dependency[]} */
1635
- (Array.from(new Set(dependencies))),
1633
+ ([...new Set(dependencies)]),
1636
1634
  context
1637
1635
  );
1638
1636
  },
@@ -1705,7 +1703,7 @@ const SORTERS = {
1705
1703
  "chunk.modules": MODULES_SORTER,
1706
1704
  "module.modules": MODULES_SORTER,
1707
1705
  "module.reasons": {
1708
- _: (comparators, { compilation: { chunkGraph } }) => {
1706
+ _: (comparators, _context) => {
1709
1707
  comparators.push(
1710
1708
  compareSelect(x => x.originModule, compareModulesByIdentifier)
1711
1709
  );
@@ -1868,7 +1866,7 @@ const spaceLimited = (
1868
1866
  if (groupsSize + items.length <= max) {
1869
1867
  // The total size in the current state fits into the max
1870
1868
  // keep all
1871
- children = groups.length > 0 ? groups.concat(items) : items;
1869
+ children = groups.length > 0 ? [...groups, ...items] : items;
1872
1870
  } else if (groups.length === 0) {
1873
1871
  // slice items to max
1874
1872
  // inner space marks that lines for filteredChildren already reserved
@@ -1931,7 +1929,7 @@ const spaceLimited = (
1931
1929
  }
1932
1930
  }
1933
1931
  }
1934
- children = groups.concat(items);
1932
+ children = [...groups, ...items];
1935
1933
  } else if (limit === max) {
1936
1934
  // If we have only enough space to show one line per group and one line for the filtered items
1937
1935
  // collapse all groups and items
@@ -1956,7 +1954,7 @@ const errorsSpaceLimit = (errors, max) => {
1956
1954
  let filtered = 0;
1957
1955
  // Can not fit into limit
1958
1956
  // print only messages
1959
- if (errors.length + 1 >= max)
1957
+ if (errors.length + 1 >= max) {
1960
1958
  return [
1961
1959
  errors.map(error => {
1962
1960
  if (typeof error === "string" || !error.details) return error;
@@ -1965,6 +1963,7 @@ const errorsSpaceLimit = (errors, max) => {
1965
1963
  }),
1966
1964
  filtered
1967
1965
  ];
1966
+ }
1968
1967
  let fullLength = errors.length;
1969
1968
  let result = errors;
1970
1969
 
@@ -2123,12 +2122,13 @@ const ASSETS_GROUPERS = {
2123
2122
  const keys = [];
2124
2123
  if (groupAssetsByPath) {
2125
2124
  keys.push(".");
2126
- if (extension)
2125
+ if (extension) {
2127
2126
  keys.push(
2128
2127
  path.length
2129
2128
  ? `${path.join("/")}/*${extension}`
2130
2129
  : `*${extension}`
2131
2130
  );
2131
+ }
2132
2132
  while (path.length > 0) {
2133
2133
  keys.push(`${path.join("/")}/`);
2134
2134
  path.pop();
@@ -2147,7 +2147,7 @@ const ASSETS_GROUPERS = {
2147
2147
  });
2148
2148
  }
2149
2149
  },
2150
- groupAssetsByInfo: (groupConfigs, context, options) => {
2150
+ groupAssetsByInfo: (groupConfigs, _context, _options) => {
2151
2151
  /**
2152
2152
  * @param {string} name name
2153
2153
  */
@@ -2168,7 +2168,7 @@ const ASSETS_GROUPERS = {
2168
2168
  groupByAssetInfoFlag("development");
2169
2169
  groupByAssetInfoFlag("hotModuleReplacement");
2170
2170
  },
2171
- groupAssetsByChunk: (groupConfigs, context, options) => {
2171
+ groupAssetsByChunk: (groupConfigs, _context, _options) => {
2172
2172
  /**
2173
2173
  * @param {keyof KnownStatsAsset} name name
2174
2174
  */
@@ -2319,12 +2319,13 @@ const MODULES_GROUPERS = type => ({
2319
2319
  const path = pathMatch ? pathMatch[1].split(/[/\\]/) : [];
2320
2320
  const keys = [];
2321
2321
  if (groupModulesByPath) {
2322
- if (extension)
2322
+ if (extension) {
2323
2323
  keys.push(
2324
2324
  path.length
2325
2325
  ? `${path.join("/")}/*${extension}`
2326
2326
  : `*${extension}`
2327
2327
  );
2328
+ }
2328
2329
  while (path.length > 0) {
2329
2330
  keys.push(`${path.join("/")}/`);
2330
2331
  path.pop();
@@ -2511,8 +2512,9 @@ const iterateConfig = (config, options, fn) => {
2511
2512
  value === false ||
2512
2513
  value === undefined ||
2513
2514
  (Array.isArray(value) && value.length === 0)
2514
- )
2515
+ ) {
2515
2516
  continue;
2517
+ }
2516
2518
  }
2517
2519
  }
2518
2520
  fn(hookFor, subConfig[option]);
@@ -2684,4 +2686,5 @@ class DefaultStatsFactoryPlugin {
2684
2686
  });
2685
2687
  }
2686
2688
  }
2689
+
2687
2690
  module.exports = DefaultStatsFactoryPlugin;