webpack 5.89.0 → 5.90.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.

Potentially problematic release.


This version of webpack might be problematic. Click here for more details.

Files changed (148) hide show
  1. package/README.md +3 -0
  2. package/bin/webpack.js +1 -3
  3. package/hot/log.js +0 -2
  4. package/lib/APIPlugin.js +1 -1
  5. package/lib/ChunkGraph.js +1 -1
  6. package/lib/CleanPlugin.js +12 -12
  7. package/lib/Compilation.js +25 -16
  8. package/lib/Compiler.js +13 -0
  9. package/lib/ConcatenationScope.js +2 -2
  10. package/lib/ContextModule.js +4 -4
  11. package/lib/ContextModuleFactory.js +1 -1
  12. package/lib/DependencyTemplate.js +3 -1
  13. package/lib/EnvironmentNotSupportAsyncWarning.js +52 -0
  14. package/lib/EvalDevToolModulePlugin.js +1 -1
  15. package/lib/EvalSourceMapDevToolPlugin.js +1 -1
  16. package/lib/ExportsInfoApiPlugin.js +2 -2
  17. package/lib/ExternalModule.js +47 -12
  18. package/lib/ExternalModuleFactoryPlugin.js +1 -1
  19. package/lib/FileSystemInfo.js +20 -3
  20. package/lib/FlagDependencyExportsPlugin.js +1 -1
  21. package/lib/Generator.js +1 -0
  22. package/lib/HotModuleReplacementPlugin.js +3 -3
  23. package/lib/LibManifestPlugin.js +4 -1
  24. package/lib/Module.js +2 -1
  25. package/lib/ModuleFilenameHelpers.js +1 -1
  26. package/lib/ModuleInfoHeaderPlugin.js +1 -1
  27. package/lib/MultiStats.js +2 -2
  28. package/lib/NodeStuffPlugin.js +48 -0
  29. package/lib/NormalModule.js +13 -11
  30. package/lib/NormalModuleFactory.js +7 -7
  31. package/lib/RuntimeTemplate.js +15 -11
  32. package/lib/SourceMapDevToolPlugin.js +2 -2
  33. package/lib/WebpackOptionsApply.js +4 -3
  34. package/lib/asset/AssetModulesPlugin.js +2 -3
  35. package/lib/cache/AddManagedPathsPlugin.js +6 -1
  36. package/lib/cache/IdleFileCachePlugin.js +12 -5
  37. package/lib/cache/PackFileCacheStrategy.js +3 -3
  38. package/lib/cache/ResolverCachePlugin.js +2 -2
  39. package/lib/config/browserslistTargetHandler.js +24 -5
  40. package/lib/config/defaults.js +87 -52
  41. package/lib/config/normalization.js +17 -18
  42. package/lib/config/target.js +5 -0
  43. package/lib/container/ContainerReferencePlugin.js +1 -1
  44. package/lib/css/CssExportsGenerator.js +14 -1
  45. package/lib/css/CssGenerator.js +14 -1
  46. package/lib/css/CssLoadingRuntimeModule.js +23 -23
  47. package/lib/css/CssModulesPlugin.js +68 -32
  48. package/lib/css/CssParser.js +8 -3
  49. package/lib/debug/ProfilingPlugin.js +2 -2
  50. package/lib/dependencies/CachedConstDependency.js +8 -1
  51. package/lib/dependencies/CommonJsImportsParserPlugin.js +1 -1
  52. package/lib/dependencies/ContextElementDependency.js +1 -1
  53. package/lib/dependencies/ExternalModuleDependency.js +98 -0
  54. package/lib/dependencies/ExternalModuleInitFragment.js +124 -0
  55. package/lib/dependencies/HarmonyAcceptDependency.js +1 -1
  56. package/lib/dependencies/HarmonyDetectionParserPlugin.js +7 -1
  57. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +18 -18
  58. package/lib/dependencies/HarmonyExportInitFragment.js +4 -4
  59. package/lib/dependencies/HarmonyImportDependency.js +4 -4
  60. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +6 -6
  61. package/lib/dependencies/ImportDependency.js +26 -6
  62. package/lib/dependencies/JsonExportsDependency.js +1 -1
  63. package/lib/dependencies/LoaderPlugin.js +2 -1
  64. package/lib/dependencies/PureExpressionDependency.js +12 -4
  65. package/lib/dependencies/RequireIncludeDependency.js +1 -1
  66. package/lib/dependencies/WebpackIsIncludedDependency.js +1 -1
  67. package/lib/dependencies/WorkerPlugin.js +7 -1
  68. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +6 -6
  69. package/lib/hmr/HotModuleReplacement.runtime.js +3 -5
  70. package/lib/hmr/lazyCompilationBackend.js +4 -4
  71. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  72. package/lib/index.js +4 -0
  73. package/lib/javascript/JavascriptGenerator.js +16 -1
  74. package/lib/javascript/JavascriptModulesPlugin.js +33 -33
  75. package/lib/javascript/JavascriptParser.js +8 -0
  76. package/lib/json/JsonGenerator.js +1 -1
  77. package/lib/library/AmdLibraryPlugin.js +5 -1
  78. package/lib/library/AssignLibraryPlugin.js +1 -1
  79. package/lib/library/SystemLibraryPlugin.js +1 -1
  80. package/lib/library/UmdLibraryPlugin.js +39 -39
  81. package/lib/logging/createConsoleLogger.js +1 -19
  82. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +8 -8
  83. package/lib/node/RequireChunkLoadingRuntimeModule.js +8 -8
  84. package/lib/node/nodeConsole.js +1 -5
  85. package/lib/optimize/ConcatenatedModule.js +7 -7
  86. package/lib/optimize/InnerGraphPlugin.js +9 -1
  87. package/lib/optimize/ModuleConcatenationPlugin.js +2 -2
  88. package/lib/optimize/RemoveParentModulesPlugin.js +123 -47
  89. package/lib/optimize/SideEffectsFlagPlugin.js +15 -3
  90. package/lib/optimize/SplitChunksPlugin.js +16 -16
  91. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -2
  92. package/lib/rules/RuleSetCompiler.js +1 -1
  93. package/lib/runtime/AutoPublicPathRuntimeModule.js +2 -2
  94. package/lib/runtime/GetChunkFilenameRuntimeModule.js +4 -4
  95. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +4 -4
  96. package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
  97. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +23 -22
  98. package/lib/runtime/StartupEntrypointRuntimeModule.js +2 -2
  99. package/lib/schemes/HttpUriPlugin.js +1 -1
  100. package/lib/serialization/FileMiddleware.js +4 -4
  101. package/lib/serialization/ObjectMiddleware.js +4 -4
  102. package/lib/sharing/ConsumeSharedPlugin.js +5 -5
  103. package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -4
  104. package/lib/sharing/ProvideSharedModule.js +2 -2
  105. package/lib/sharing/SharePlugin.js +2 -2
  106. package/lib/sharing/ShareRuntimeModule.js +1 -1
  107. package/lib/sharing/utils.js +24 -28
  108. package/lib/stats/DefaultStatsFactoryPlugin.js +10 -10
  109. package/lib/stats/DefaultStatsPresetPlugin.js +3 -7
  110. package/lib/stats/DefaultStatsPrinterPlugin.js +34 -31
  111. package/lib/util/cleverMerge.js +4 -4
  112. package/lib/util/hash/xxhash64.js +2 -2
  113. package/lib/util/identifier.js +2 -2
  114. package/lib/util/internalSerializables.js +6 -0
  115. package/lib/util/runtime.js +18 -1
  116. package/lib/util/semver.js +19 -24
  117. package/lib/util/smartGrouping.js +1 -1
  118. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -1
  119. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +2 -2
  120. package/lib/wasm-async/AsyncWebAssemblyParser.js +6 -0
  121. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +2 -2
  122. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +2 -2
  123. package/lib/web/JsonpChunkLoadingRuntimeModule.js +13 -13
  124. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
  125. package/package.json +23 -23
  126. package/schemas/WebpackOptions.check.js +1 -1
  127. package/schemas/WebpackOptions.json +140 -32
  128. package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +7 -0
  129. package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +6 -0
  130. package/schemas/plugins/css/CssAutoGeneratorOptions.json +3 -0
  131. package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +7 -0
  132. package/schemas/plugins/css/CssAutoParserOptions.check.js +6 -0
  133. package/schemas/plugins/css/CssAutoParserOptions.json +3 -0
  134. package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -1
  135. package/schemas/plugins/css/CssGlobalGeneratorOptions.check.d.ts +7 -0
  136. package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +6 -0
  137. package/schemas/plugins/css/CssGlobalGeneratorOptions.json +3 -0
  138. package/schemas/plugins/css/CssGlobalParserOptions.check.d.ts +7 -0
  139. package/schemas/plugins/css/CssGlobalParserOptions.check.js +6 -0
  140. package/schemas/plugins/css/CssGlobalParserOptions.json +3 -0
  141. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +7 -0
  142. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +6 -0
  143. package/schemas/plugins/css/CssModuleGeneratorOptions.json +3 -0
  144. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +7 -0
  145. package/schemas/plugins/css/CssModuleParserOptions.check.js +6 -0
  146. package/schemas/plugins/css/CssModuleParserOptions.json +3 -0
  147. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  148. package/types.d.ts +172 -20
@@ -10,8 +10,8 @@ const create = require("./wasm-hash");
10
10
  //#region wasm code: xxhash64 (../../../assembly/hash/xxhash64.asm.ts) --initialMemory 1
11
11
  const xxhash64 = new WebAssembly.Module(
12
12
  Buffer.from(
13
- // 1170 bytes
14
- "AGFzbQEAAAABCAJgAX8AYAAAAwQDAQAABQMBAAEGGgV+AUIAC34BQgALfgFCAAt+AUIAC34BQgALByIEBGluaXQAAAZ1cGRhdGUAAQVmaW5hbAACBm1lbW9yeQIACrIIAzAAQtbrgu7q/Yn14AAkAELP1tO+0ser2UIkAUIAJAJC+erQ0OfJoeThACQDQgAkBAvUAQIBfwR+IABFBEAPCyMEIACtfCQEIwAhAiMBIQMjAiEEIwMhBQNAIAIgASkDAELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiECIAMgASkDCELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEDIAQgASkDEELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEEIAUgASkDGELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEFIAFBIGoiASAASQ0ACyACJAAgAyQBIAQkAiAFJAMLqAYCAX8EfiMEQgBSBH4jACICQgGJIwEiA0IHiXwjAiIEQgyJfCMDIgVCEol8IAJCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35CnaO16oOxjYr6AH0gA0LP1tO+0ser2UJ+Qh+JQoeVr6+Ytt6bnn9+hUKHla+vmLbem55/fkKdo7Xqg7GNivoAfSAEQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef36FQoeVr6+Ytt6bnn9+Qp2jteqDsY2K+gB9IAVCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35CnaO16oOxjYr6AH0FQsXP2bLx5brqJwsjBCAArXx8IQIDQCABQQhqIABNBEAgAiABKQMAQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef36FQhuJQoeVr6+Ytt6bnn9+Qp2jteqDsY2K+gB9IQIgAUEIaiEBDAELCyABQQRqIABNBEAgAiABNQIAQoeVr6+Ytt6bnn9+hUIXiULP1tO+0ser2UJ+Qvnz3fGZ9pmrFnwhAiABQQRqIQELA0AgACABRwRAIAIgATEAAELFz9my8eW66id+hUILiUKHla+vmLbem55/fiECIAFBAWohAQwBCwtBACACIAJCIYiFQs/W077Sx6vZQn4iAkIdiCAChUL5893xmfaZqxZ+IgJCIIggAoUiAkIgiCIDQv//A4NCIIYgA0KAgPz/D4NCEIiEIgNC/4GAgPAfg0IQhiADQoD+g4CA4D+DQgiIhCIDQo+AvIDwgcAHg0IIhiADQvCBwIeAnoD4AINCBIiEIgNChoyYsODAgYMGfEIEiEKBgoSIkKDAgAGDQid+IANCsODAgYOGjJgwhHw3AwBBCCACQv////8PgyICQv//A4NCIIYgAkKAgPz/D4NCEIiEIgJC/4GAgPAfg0IQhiACQoD+g4CA4D+DQgiIhCICQo+AvIDwgcAHg0IIhiACQvCBwIeAnoD4AINCBIiEIgJChoyYsODAgYMGfEIEiEKBgoSIkKDAgAGDQid+IAJCsODAgYOGjJgwhHw3AwAL",
13
+ // 1168 bytes
14
+ "AGFzbQEAAAABCAJgAX8AYAAAAwQDAQAABQMBAAEGGgV+AUIAC34BQgALfgFCAAt+AUIAC34BQgALByIEBGluaXQAAAZ1cGRhdGUAAQVmaW5hbAACBm1lbW9yeQIACrAIAzAAQtbrgu7q/Yn14AAkAELP1tO+0ser2UIkAUIAJAJC+erQ0OfJoeThACQDQgAkBAvUAQIBfwR+IABFBEAPCyMEIACtfCQEIwAhAiMBIQMjAiEEIwMhBQNAIAIgASkDAELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiECIAMgASkDCELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEDIAQgASkDEELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEEIAUgASkDGELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEFIAFBIGoiASAASQ0ACyACJAAgAyQBIAQkAiAFJAMLpgYCAn8EfiMEQgBSBH4jACIDQgGJIwEiBEIHiXwjAiIFQgyJfCMDIgZCEol8IANCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35CnaO16oOxjYr6AH0gBELP1tO+0ser2UJ+Qh+JQoeVr6+Ytt6bnn9+hUKHla+vmLbem55/fkKdo7Xqg7GNivoAfSAFQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef36FQoeVr6+Ytt6bnn9+Qp2jteqDsY2K+gB9IAZCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35CnaO16oOxjYr6AH0FQsXP2bLx5brqJwsjBCAArXx8IQMDQCABQQhqIgIgAE0EQCADIAEpAwBCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCG4lCh5Wvr5i23puef35CnaO16oOxjYr6AH0hAyACIQEMAQsLIAFBBGoiAiAATQRAIAMgATUCAEKHla+vmLbem55/foVCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQMgAiEBCwNAIAAgAUcEQCADIAExAABCxc/ZsvHluuonfoVCC4lCh5Wvr5i23puef34hAyABQQFqIQEMAQsLQQAgAyADQiGIhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFIgNCIIgiBEL//wODQiCGIARCgID8/w+DQhCIhCIEQv+BgIDwH4NCEIYgBEKA/oOAgOA/g0IIiIQiBEKPgLyA8IHAB4NCCIYgBELwgcCHgJ6A+ACDQgSIhCIEQoaMmLDgwIGDBnxCBIhCgYKEiJCgwIABg0InfiAEQrDgwIGDhoyYMIR8NwMAQQggA0L/////D4MiA0L//wODQiCGIANCgID8/w+DQhCIhCIDQv+BgIDwH4NCEIYgA0KA/oOAgOA/g0IIiIQiA0KPgLyA8IHAB4NCCIYgA0LwgcCHgJ6A+ACDQgSIhCIDQoaMmLDgwIGDBnxCBIhCgYKEiJCgwIABg0InfiADQrDgwIGDhoyYMIR8NwMACw==",
15
15
  "base64"
16
16
  )
17
17
  );
@@ -376,6 +376,6 @@ exports.getUndoPath = (filename, outputPath, enforceRelative) => {
376
376
  return depth > 0
377
377
  ? `${"../".repeat(depth)}${append}`
378
378
  : enforceRelative
379
- ? `./${append}`
380
- : append;
379
+ ? `./${append}`
380
+ : append;
381
381
  };
@@ -45,6 +45,10 @@ module.exports = {
45
45
  require("../dependencies/AMDRequireItemDependency"),
46
46
  "dependencies/CachedConstDependency": () =>
47
47
  require("../dependencies/CachedConstDependency"),
48
+ "dependencies/ExternalModuleDependency": () =>
49
+ require("../dependencies/ExternalModuleDependency"),
50
+ "dependencies/ExternalModuleInitFragment": () =>
51
+ require("../dependencies/ExternalModuleInitFragment"),
48
52
  "dependencies/CreateScriptUrlDependency": () =>
49
53
  require("../dependencies/CreateScriptUrlDependency"),
50
54
  "dependencies/CommonJsRequireContextDependency": () =>
@@ -206,6 +210,8 @@ module.exports = {
206
210
  "util/LazySet": () => require("../util/LazySet"),
207
211
  UnhandledSchemeError: () => require("../UnhandledSchemeError"),
208
212
  NodeStuffInWebError: () => require("../NodeStuffInWebError"),
213
+ EnvironmentNotSupportAsyncWarning: () =>
214
+ require("../EnvironmentNotSupportAsyncWarning"),
209
215
  WebpackError: () => require("../WebpackError"),
210
216
 
211
217
  "util/registerExternalSerializer": () => {
@@ -57,7 +57,7 @@ exports.getEntryRuntime = (compilation, name, options) => {
57
57
  * @param {boolean} deterministicOrder enforce a deterministic order
58
58
  * @returns {void}
59
59
  */
60
- exports.forEachRuntime = (runtime, fn, deterministicOrder = false) => {
60
+ const forEachRuntime = (runtime, fn, deterministicOrder = false) => {
61
61
  if (runtime === undefined) {
62
62
  fn(undefined);
63
63
  } else if (typeof runtime === "string") {
@@ -69,6 +69,7 @@ exports.forEachRuntime = (runtime, fn, deterministicOrder = false) => {
69
69
  }
70
70
  }
71
71
  };
72
+ exports.forEachRuntime = forEachRuntime;
72
73
 
73
74
  /**
74
75
  * @template T
@@ -228,6 +229,22 @@ const mergeRuntime = (a, b) => {
228
229
  };
229
230
  exports.mergeRuntime = mergeRuntime;
230
231
 
232
+ /**
233
+ * @param {RuntimeSpec[]} runtimes first
234
+ * @param {RuntimeSpec} runtime second
235
+ * @returns {RuntimeSpec} merged
236
+ */
237
+ exports.deepMergeRuntime = (runtimes, runtime) => {
238
+ if (!Array.isArray(runtimes)) {
239
+ return runtime;
240
+ }
241
+ let merged = runtime;
242
+ for (const r of runtimes) {
243
+ merged = mergeRuntime(runtime, r);
244
+ }
245
+ return merged;
246
+ };
247
+
231
248
  /**
232
249
  * @param {RuntimeCondition} a first
233
250
  * @param {RuntimeCondition} b second
@@ -232,16 +232,15 @@ const rangeToString = range => {
232
232
  fixCount == 0
233
233
  ? ">="
234
234
  : fixCount == -1
235
- ? "<"
236
- : fixCount == 1
237
- ? "^"
238
- : fixCount == 2
239
- ? "~"
240
- : fixCount > 0
241
- ? "="
242
- : "!=";
235
+ ? "<"
236
+ : fixCount == 1
237
+ ? "^"
238
+ : fixCount == 2
239
+ ? "~"
240
+ : fixCount > 0
241
+ ? "="
242
+ : "!=";
243
243
  var needDot = 1;
244
- // eslint-disable-next-line no-redeclare
245
244
  for (var i = 1; i < range.length; i++) {
246
245
  var item = range[i];
247
246
  var t = (typeof item)[0];
@@ -249,9 +248,9 @@ const rangeToString = range => {
249
248
  str +=
250
249
  t == "u"
251
250
  ? // undefined: prerelease marker, add an "-"
252
- "-"
251
+ "-"
253
252
  : // number or string: add the item, set flag to add an "." between two of them
254
- (needDot > 0 ? "." : "") + ((needDot = 2), item);
253
+ (needDot > 0 ? "." : "") + ((needDot = 2), item);
255
254
  }
256
255
  return str;
257
256
  } else {
@@ -264,10 +263,10 @@ const rangeToString = range => {
264
263
  item === 0
265
264
  ? "not(" + pop() + ")"
266
265
  : item === 1
267
- ? "(" + pop() + " || " + pop() + ")"
268
- : item === 2
269
- ? stack.pop() + " " + stack.pop()
270
- : rangeToString(item)
266
+ ? "(" + pop() + " || " + pop() + ")"
267
+ : item === 2
268
+ ? stack.pop() + " " + stack.pop()
269
+ : rangeToString(item)
271
270
  );
272
271
  }
273
272
  return pop();
@@ -416,10 +415,10 @@ const satisfy = (range, version) => {
416
415
  item == 1
417
416
  ? p() | p()
418
417
  : item == 2
419
- ? p() & p()
420
- : item
421
- ? satisfy(item, version)
422
- : !p()
418
+ ? p() & p()
419
+ : item
420
+ ? satisfy(item, version)
421
+ : !p()
423
422
  );
424
423
  }
425
424
  return !!p();
@@ -452,11 +451,7 @@ exports.stringifyHoley = json => {
452
451
  exports.parseVersionRuntimeCode = runtimeTemplate =>
453
452
  `var parseVersion = ${runtimeTemplate.basicFunction("str", [
454
453
  "// see webpack/lib/util/semver.js for original code",
455
- `var p=${
456
- runtimeTemplate.supportsArrowFunction() ? "p=>" : "function(p)"
457
- }{return p.split(".").map((${
458
- runtimeTemplate.supportsArrowFunction() ? "p=>" : "function(p)"
459
- }{return+p==p?+p:p}))},n=/^([^-+]+)?(?:-([^+]+))?(?:\\+(.+))?$/.exec(str),r=n[1]?p(n[1]):[];return n[2]&&(r.length++,r.push.apply(r,p(n[2]))),n[3]&&(r.push([]),r.push.apply(r,p(n[3]))),r;`
454
+ `var p=${runtimeTemplate.supportsArrowFunction() ? "p=>" : "function(p)"}{return p.split(".").map((${runtimeTemplate.supportsArrowFunction() ? "p=>" : "function(p)"}{return+p==p?+p:p}))},n=/^([^-+]+)?(?:-([^+]+))?(?:\\+(.+))?$/.exec(str),r=n[1]?p(n[1]):[];return n[2]&&(r.length++,r.push.apply(r,p(n[2]))),n[3]&&(r.push([]),r.push.apply(r,p(n[3]))),r;`
460
455
  ])}`;
461
456
  //#endregion
462
457
 
@@ -145,7 +145,7 @@ const smartGrouping = (items, groupConfigs) => {
145
145
  (totalSize * 2) / targetGroupCount +
146
146
  itemsWithGroups.size -
147
147
  items.size
148
- );
148
+ );
149
149
  if (
150
150
  sizeValue > bestGroupSize ||
151
151
  (force && (!bestGroupOptions || !bestGroupOptions.force))
@@ -69,7 +69,7 @@ class AsyncWasmLoadingRuntimeModule extends RuntimeModule {
69
69
  ])
70
70
  ]),
71
71
  "}"
72
- ])
72
+ ])
73
73
  : "// no support for streaming compilation",
74
74
  "return req",
75
75
  Template.indent([
@@ -156,7 +156,7 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
156
156
  "{",
157
157
  Template.indent(importObjRequestItems.join(",\n")),
158
158
  "}"
159
- ])
159
+ ])
160
160
  : undefined;
161
161
 
162
162
  const instantiateCall =
@@ -194,7 +194,7 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
194
194
  "} catch(e) { __webpack_async_result__(e); }"
195
195
  ]
196
196
  )}, 1);`
197
- ])
197
+ ])
198
198
  : `${importsCode}${importsCompatCode}module.exports = ${instantiateCall};`
199
199
  );
200
200
 
@@ -7,6 +7,7 @@
7
7
 
8
8
  const t = require("@webassemblyjs/ast");
9
9
  const { decode } = require("@webassemblyjs/wasm-parser");
10
+ const EnvironmentNotSupportAsyncWarning = require("../EnvironmentNotSupportAsyncWarning");
10
11
  const Parser = require("../Parser");
11
12
  const StaticExportsDependency = require("../dependencies/StaticExportsDependency");
12
13
  const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDependency");
@@ -50,6 +51,11 @@ class WebAssemblyParser extends Parser {
50
51
  const BuildMeta = /** @type {BuildMeta} */ (state.module.buildMeta);
51
52
  BuildMeta.exportsType = "namespace";
52
53
  BuildMeta.async = true;
54
+ EnvironmentNotSupportAsyncWarning.check(
55
+ state.module,
56
+ state.compilation.runtimeTemplate,
57
+ "asyncWebAssembly"
58
+ );
53
59
 
54
60
  // parse it
55
61
  const program = decode(source, decoderOpts);
@@ -354,7 +354,7 @@ class WasmChunkLoadingRuntimeModule extends RuntimeModule {
354
354
  "importObject"
355
355
  )});`
356
356
  ])
357
- ])
357
+ ])
358
358
  : Template.asString([
359
359
  "if(importObject && typeof importObject.then === 'function') {",
360
360
  Template.indent([
@@ -372,7 +372,7 @@ class WasmChunkLoadingRuntimeModule extends RuntimeModule {
372
372
  ]),
373
373
  "});"
374
374
  ])
375
- ]),
375
+ ]),
376
376
  "} else {",
377
377
  Template.indent([
378
378
  "var bytesPromise = req.then(function(x) { return x.arrayBuffer(); });",
@@ -200,8 +200,8 @@ class WebAssemblyJavascriptGenerator extends Generator {
200
200
  copyAllExports
201
201
  ? `${module.moduleArgument}.exports = wasmExports;`
202
202
  : "for(var name in wasmExports) " +
203
- `if(name) ` +
204
- `${module.exportsArgument}[name] = wasmExports[name];`,
203
+ `if(name) ` +
204
+ `${module.exportsArgument}[name] = wasmExports[name];`,
205
205
  "// exec imports from WebAssembly module (for esm order)",
206
206
  importsCode,
207
207
  "",
@@ -209,16 +209,16 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule {
209
209
  "}"
210
210
  ]),
211
211
  "}"
212
- ])
212
+ ])
213
213
  : Template.indent(["installedChunks[chunkId] = 0;"])
214
214
  )};`
215
- ])
215
+ ])
216
216
  : "// no chunk on demand loading",
217
217
  "",
218
218
  withPrefetch && hasJsMatcher !== false
219
219
  ? `${
220
220
  RuntimeGlobals.prefetchChunkHandlers
221
- }.j = ${runtimeTemplate.basicFunction("chunkId", [
221
+ }.j = ${runtimeTemplate.basicFunction("chunkId", [
222
222
  `if((!${
223
223
  RuntimeGlobals.hasOwnProperty
224
224
  }(installedChunks, chunkId) || installedChunks[chunkId] === undefined) && ${
@@ -232,7 +232,7 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule {
232
232
  crossOriginLoading
233
233
  ? `link.crossOrigin = ${JSON.stringify(
234
234
  crossOriginLoading
235
- )};`
235
+ )};`
236
236
  : "",
237
237
  `if (${RuntimeGlobals.scriptNonce}) {`,
238
238
  Template.indent(
@@ -248,13 +248,13 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule {
248
248
  "document.head.appendChild(link);"
249
249
  ]),
250
250
  "}"
251
- ])};`
251
+ ])};`
252
252
  : "// no prefetching",
253
253
  "",
254
254
  withPreload && hasJsMatcher !== false
255
255
  ? `${
256
256
  RuntimeGlobals.preloadChunkHandlers
257
- }.j = ${runtimeTemplate.basicFunction("chunkId", [
257
+ }.j = ${runtimeTemplate.basicFunction("chunkId", [
258
258
  `if((!${
259
259
  RuntimeGlobals.hasOwnProperty
260
260
  }(installedChunks, chunkId) || installedChunks[chunkId] === undefined) && ${
@@ -290,7 +290,7 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule {
290
290
  )};`
291
291
  ),
292
292
  "}"
293
- ])
293
+ ])
294
294
  : ""
295
295
  ]),
296
296
  chunk
@@ -298,7 +298,7 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule {
298
298
  "document.head.appendChild(link);"
299
299
  ]),
300
300
  "}"
301
- ])};`
301
+ ])};`
302
302
  : "// no preloaded",
303
303
  "",
304
304
  withHmr
@@ -383,7 +383,7 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule {
383
383
  /\$hmrInvalidateModuleHandlers\$/g,
384
384
  RuntimeGlobals.hmrInvalidateModuleHandlers
385
385
  )
386
- ])
386
+ ])
387
387
  : "// no HMR",
388
388
  "",
389
389
  withHmrManifest
@@ -400,16 +400,16 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule {
400
400
  "return response.json();"
401
401
  ])});`
402
402
  ])};`
403
- ])
403
+ ])
404
404
  : "// no HMR manifest",
405
405
  "",
406
406
  withOnChunkLoad
407
407
  ? `${
408
408
  RuntimeGlobals.onChunksLoaded
409
- }.j = ${runtimeTemplate.returningFunction(
409
+ }.j = ${runtimeTemplate.returningFunction(
410
410
  "installedChunks[chunkId] === 0",
411
411
  "chunkId"
412
- )};`
412
+ )};`
413
413
  : "// no on chunks loaded",
414
414
  "",
415
415
  withCallback || withLoading
@@ -461,7 +461,7 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule {
461
461
  `var chunkLoadingGlobal = ${chunkLoadingGlobalExpr} = ${chunkLoadingGlobalExpr} || [];`,
462
462
  "chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));",
463
463
  "chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));"
464
- ])
464
+ ])
465
465
  : "// no jsonp function"
466
466
  ]);
467
467
  }
@@ -128,7 +128,7 @@ class ImportScriptsChunkLoadingRuntimeModule extends RuntimeModule {
128
128
  Template.indent("installedChunks[chunkIds.pop()] = 1;"),
129
129
  "parentChunkLoadingFunction(data);"
130
130
  ])};`
131
- ])
131
+ ])
132
132
  : "// no chunk install function needed",
133
133
  withLoading
134
134
  ? Template.asString([
@@ -152,14 +152,14 @@ class ImportScriptsChunkLoadingRuntimeModule extends RuntimeModule {
152
152
  "}"
153
153
  ]),
154
154
  "}"
155
- ]
155
+ ]
156
156
  : "installedChunks[chunkId] = 1;"
157
157
  )};`,
158
158
  "",
159
159
  `var chunkLoadingGlobal = ${chunkLoadingGlobalExpr} = ${chunkLoadingGlobalExpr} || [];`,
160
160
  "var parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);",
161
161
  "chunkLoadingGlobal.push = installChunk;"
162
- ])
162
+ ])
163
163
  : "// no chunk loading",
164
164
  "",
165
165
  withHmr
@@ -196,7 +196,7 @@ class ImportScriptsChunkLoadingRuntimeModule extends RuntimeModule {
196
196
  Template.getFunctionContent(
197
197
  require("../hmr/JavascriptHotModuleReplacement.runtime.js")
198
198
  )
199
- .replace(/\$key\$/g, "importScrips")
199
+ .replace(/\$key\$/g, "importScripts")
200
200
  .replace(/\$installedChunks\$/g, "installedChunks")
201
201
  .replace(/\$loadUpdateChunk\$/g, "loadUpdateChunk")
202
202
  .replace(/\$moduleCache\$/g, RuntimeGlobals.moduleCache)
@@ -215,7 +215,7 @@ class ImportScriptsChunkLoadingRuntimeModule extends RuntimeModule {
215
215
  /\$hmrInvalidateModuleHandlers\$/g,
216
216
  RuntimeGlobals.hmrInvalidateModuleHandlers
217
217
  )
218
- ])
218
+ ])
219
219
  : "// no HMR",
220
220
  "",
221
221
  withHmrManifest
@@ -232,7 +232,7 @@ class ImportScriptsChunkLoadingRuntimeModule extends RuntimeModule {
232
232
  "return response.json();"
233
233
  ])});`
234
234
  ])};`
235
- ])
235
+ ])
236
236
  : "// no HMR manifest"
237
237
  ]);
238
238
  }
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "webpack",
3
- "version": "5.89.0",
3
+ "version": "5.90.0",
4
4
  "author": "Tobias Koppers @sokra",
5
5
  "description": "Packs ECMAScript/CommonJs/AMD modules for the browser. Allows you to split your codebase into multiple bundles, which can be loaded on demand. Supports loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.",
6
6
  "license": "MIT",
7
7
  "dependencies": {
8
8
  "@types/eslint-scope": "^3.7.3",
9
- "@types/estree": "^1.0.0",
9
+ "@types/estree": "^1.0.5",
10
10
  "@webassemblyjs/ast": "^1.11.5",
11
11
  "@webassemblyjs/wasm-edit": "^1.11.5",
12
12
  "@webassemblyjs/wasm-parser": "^1.11.5",
13
13
  "acorn": "^8.7.1",
14
14
  "acorn-import-assertions": "^1.9.0",
15
- "browserslist": "^4.14.5",
15
+ "browserslist": "^4.21.10",
16
16
  "chrome-trace-event": "^1.0.2",
17
17
  "enhanced-resolve": "^5.15.0",
18
18
  "es-module-lexer": "^1.2.1",
@@ -26,7 +26,7 @@
26
26
  "neo-async": "^2.6.2",
27
27
  "schema-utils": "^3.2.0",
28
28
  "tapable": "^2.1.1",
29
- "terser-webpack-plugin": "^5.3.7",
29
+ "terser-webpack-plugin": "^5.3.10",
30
30
  "watchpack": "^2.4.0",
31
31
  "webpack-sources": "^3.2.3"
32
32
  },
@@ -36,12 +36,12 @@
36
36
  }
37
37
  },
38
38
  "devDependencies": {
39
- "@babel/core": "^7.21.4",
40
- "@babel/preset-react": "^7.18.6",
41
- "@types/jest": "^29.5.0",
42
- "@types/mime-types": "^2.1.1",
39
+ "@babel/core": "^7.23.7",
40
+ "@babel/preset-react": "^7.23.3",
41
+ "@types/jest": "^29.5.11",
42
+ "@types/mime-types": "^2.1.4",
43
43
  "@types/node": "^20.1.7",
44
- "assemblyscript": "^0.27.2",
44
+ "assemblyscript": "^0.27.22",
45
45
  "babel-loader": "^8.1.0",
46
46
  "benchmark": "^2.1.4",
47
47
  "bundle-loader": "^0.5.6",
@@ -51,26 +51,26 @@
51
51
  "coveralls": "^3.1.0",
52
52
  "cspell": "^6.31.1",
53
53
  "css-loader": "^5.0.1",
54
- "date-fns": "^2.15.0",
54
+ "date-fns": "^3.2.0",
55
55
  "es5-ext": "^0.10.53",
56
56
  "es6-promise-polyfill": "^1.2.0",
57
- "eslint": "^8.38.0",
58
- "eslint-config-prettier": "^8.1.0",
59
- "eslint-plugin-jest": "^27.2.1",
57
+ "eslint": "^8.48.0",
58
+ "eslint-config-prettier": "^9.1.0",
59
+ "eslint-plugin-jest": "^27.6.3",
60
60
  "eslint-plugin-jsdoc": "^43.0.5",
61
- "eslint-plugin-node": "^11.0.0",
62
- "eslint-plugin-prettier": "^4.2.1",
61
+ "eslint-plugin-n": "^16.6.2",
62
+ "eslint-plugin-prettier": "^5.1.3",
63
63
  "file-loader": "^6.0.0",
64
64
  "fork-ts-checker-webpack-plugin": "^8.0.0",
65
65
  "hash-wasm": "^4.9.0",
66
66
  "husky": "^8.0.3",
67
67
  "is-ci": "^3.0.0",
68
68
  "istanbul": "^0.4.5",
69
- "jest": "^29.5.0",
70
- "jest-circus": "^29.5.0",
71
- "jest-cli": "^29.5.0",
72
- "jest-diff": "^29.5.0",
73
- "jest-environment-node": "^29.5.0",
69
+ "jest": "^29.7.0",
70
+ "jest-circus": "^29.7.0",
71
+ "jest-cli": "^29.7.0",
72
+ "jest-diff": "^29.7.0",
73
+ "jest-environment-node": "^29.7.0",
74
74
  "jest-junit": "^16.0.0",
75
75
  "json-loader": "^0.5.7",
76
76
  "json5": "^2.1.3",
@@ -84,7 +84,7 @@
84
84
  "mini-svg-data-uri": "^1.2.3",
85
85
  "nyc": "^15.1.0",
86
86
  "open-cli": "^7.2.0",
87
- "prettier": "^2.7.1",
87
+ "prettier": "^3.2.1",
88
88
  "pretty-format": "^29.5.0",
89
89
  "pug": "^3.0.0",
90
90
  "pug-loader": "^2.4.0",
@@ -96,9 +96,9 @@
96
96
  "simple-git": "^3.17.0",
97
97
  "strip-ansi": "^6.0.0",
98
98
  "style-loader": "^2.0.0",
99
- "terser": "^5.17.0",
99
+ "terser": "^5.26.0",
100
100
  "toml": "^3.0.0",
101
- "tooling": "webpack/tooling#v1.23.0",
101
+ "tooling": "webpack/tooling#v1.23.1",
102
102
  "ts-loader": "^9.4.2",
103
103
  "typescript": "^5.0.4",
104
104
  "url-loader": "^4.1.0",