webpack 5.77.0 → 5.79.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 (82) hide show
  1. package/bin/webpack.js +0 -0
  2. package/lib/APIPlugin.js +25 -18
  3. package/lib/CompatibilityPlugin.js +80 -62
  4. package/lib/Compiler.js +7 -4
  5. package/lib/ConstPlugin.js +22 -15
  6. package/lib/ContextModule.js +3 -2
  7. package/lib/DefinePlugin.js +62 -42
  8. package/lib/DelegatedModule.js +2 -1
  9. package/lib/DllModule.js +2 -1
  10. package/lib/ErrorHelpers.js +61 -22
  11. package/lib/ExportsInfoApiPlugin.js +16 -9
  12. package/lib/ExternalModule.js +2 -1
  13. package/lib/FlagAllModulesAsUsedPlugin.js +22 -27
  14. package/lib/FlagDependencyExportsPlugin.js +336 -348
  15. package/lib/FlagDependencyUsagePlugin.js +6 -8
  16. package/lib/FlagEntryExportAsUsedPlugin.js +22 -23
  17. package/lib/HotModuleReplacementPlugin.js +50 -45
  18. package/lib/JavascriptMetaInfoPlugin.js +16 -9
  19. package/lib/LibManifestPlugin.js +2 -1
  20. package/lib/ModuleTypeConstants.js +50 -0
  21. package/lib/NodeStuffPlugin.js +35 -31
  22. package/lib/NormalModule.js +2 -1
  23. package/lib/NormalModuleFactory.js +7 -1
  24. package/lib/NormalModuleReplacementPlugin.js +1 -1
  25. package/lib/ProvidePlugin.js +17 -10
  26. package/lib/RawModule.js +2 -1
  27. package/lib/RequireJsStuffPlugin.js +15 -15
  28. package/lib/UseStrictPlugin.js +15 -8
  29. package/lib/WebpackIsIncludedPlugin.js +16 -9
  30. package/lib/config/defaults.js +16 -8
  31. package/lib/config/normalization.js +4 -0
  32. package/lib/container/ContainerEntryModule.js +2 -1
  33. package/lib/css/CssLoadingRuntimeModule.js +1 -1
  34. package/lib/css/CssParser.js +28 -8
  35. package/lib/css/walkCssTokens.js +6 -1
  36. package/lib/debug/ProfilingPlugin.js +20 -12
  37. package/lib/dependencies/AMDPlugin.js +26 -20
  38. package/lib/dependencies/CommonJsImportsParserPlugin.js +5 -4
  39. package/lib/dependencies/CommonJsPlugin.js +29 -25
  40. package/lib/dependencies/HarmonyDetectionParserPlugin.js +3 -1
  41. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +4 -0
  42. package/lib/dependencies/HarmonyImportSpecifierDependency.js +28 -3
  43. package/lib/dependencies/HarmonyModulesPlugin.js +11 -5
  44. package/lib/dependencies/ImportMetaContextPlugin.js +11 -5
  45. package/lib/dependencies/ImportMetaPlugin.js +26 -20
  46. package/lib/dependencies/ImportPlugin.js +14 -7
  47. package/lib/dependencies/RequireContextPlugin.js +12 -6
  48. package/lib/dependencies/RequireEnsurePlugin.js +13 -7
  49. package/lib/dependencies/RequireIncludePlugin.js +11 -5
  50. package/lib/dependencies/SystemPlugin.js +21 -15
  51. package/lib/dependencies/URLPlugin.js +15 -9
  52. package/lib/dependencies/WorkerPlugin.js +14 -8
  53. package/lib/index.js +5 -0
  54. package/lib/javascript/JavascriptModulesPlugin.js +157 -164
  55. package/lib/javascript/JavascriptParser.js +88 -0
  56. package/lib/json/JsonModulesPlugin.js +13 -5
  57. package/lib/library/AmdLibraryPlugin.js +22 -6
  58. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +2 -1
  59. package/lib/node/ReadFileCompileWasmPlugin.js +2 -1
  60. package/lib/optimize/ConcatenatedModule.js +2 -1
  61. package/lib/optimize/InnerGraphPlugin.js +47 -46
  62. package/lib/optimize/SideEffectsFlagPlugin.js +43 -43
  63. package/lib/sharing/ConsumeSharedPlugin.js +4 -0
  64. package/lib/stats/DefaultStatsPrinterPlugin.js +14 -0
  65. package/lib/util/hash/md4.js +2 -2
  66. package/lib/util/hash/xxhash64.js +1 -1
  67. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +9 -6
  68. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +42 -43
  69. package/lib/web/FetchCompileAsyncWasmPlugin.js +2 -1
  70. package/lib/web/FetchCompileWasmPlugin.js +40 -40
  71. package/lib/webpack.js +1 -1
  72. package/package.json +41 -36
  73. package/schemas/WebpackOptions.check.js +1 -1
  74. package/schemas/WebpackOptions.json +18 -0
  75. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  76. package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
  77. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  78. package/schemas/plugins/container/ContainerPlugin.json +8 -0
  79. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  80. package/schemas/plugins/container/ModuleFederationPlugin.json +8 -0
  81. package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
  82. package/types.d.ts +152 -122
@@ -15,6 +15,7 @@ const {
15
15
  const ConcatenationScope = require("../ConcatenationScope");
16
16
  const { UsageState } = require("../ExportsInfo");
17
17
  const Module = require("../Module");
18
+ const { JAVASCRIPT_MODULE_TYPE_ESM } = require("../ModuleTypeConstants");
18
19
  const RuntimeGlobals = require("../RuntimeGlobals");
19
20
  const Template = require("../Template");
20
21
  const HarmonyImportDependency = require("../dependencies/HarmonyImportDependency");
@@ -683,7 +684,7 @@ class ConcatenatedModule extends Module {
683
684
  * @param {Set<Module>=} options.modules all concatenated modules
684
685
  */
685
686
  constructor({ identifier, rootModule, modules, runtime }) {
686
- super("javascript/esm", null, rootModule && rootModule.layer);
687
+ super(JAVASCRIPT_MODULE_TYPE_ESM, null, rootModule && rootModule.layer);
687
688
 
688
689
  // Info from Factory
689
690
  /** @type {string} */
@@ -5,6 +5,10 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const {
9
+ JAVASCRIPT_MODULE_TYPE_AUTO,
10
+ JAVASCRIPT_MODULE_TYPE_ESM
11
+ } = require("../ModuleTypeConstants");
8
12
  const PureExpressionDependency = require("../dependencies/PureExpressionDependency");
9
13
  const InnerGraph = require("./InnerGraph");
10
14
 
@@ -21,6 +25,8 @@ const InnerGraph = require("./InnerGraph");
21
25
 
22
26
  const { topLevelSymbolTag } = InnerGraph;
23
27
 
28
+ const PLUGIN_NAME = "InnerGraphPlugin";
29
+
24
30
  class InnerGraphPlugin {
25
31
  /**
26
32
  * Apply the plugin
@@ -29,7 +35,7 @@ class InnerGraphPlugin {
29
35
  */
30
36
  apply(compiler) {
31
37
  compiler.hooks.compilation.tap(
32
- "InnerGraphPlugin",
38
+ PLUGIN_NAME,
33
39
  (compilation, { normalModuleFactory }) => {
34
40
  const logger = compilation.getLogger("webpack.InnerGraphPlugin");
35
41
 
@@ -61,11 +67,11 @@ class InnerGraphPlugin {
61
67
  });
62
68
  };
63
69
 
64
- parser.hooks.program.tap("InnerGraphPlugin", () => {
70
+ parser.hooks.program.tap(PLUGIN_NAME, () => {
65
71
  InnerGraph.enable(parser.state);
66
72
  });
67
73
 
68
- parser.hooks.finish.tap("InnerGraphPlugin", () => {
74
+ parser.hooks.finish.tap(PLUGIN_NAME, () => {
69
75
  if (!InnerGraph.isEnabled(parser.state)) return;
70
76
 
71
77
  logger.time("infer dependency usage");
@@ -97,7 +103,7 @@ class InnerGraphPlugin {
97
103
 
98
104
  // The following hooks are used during prewalking:
99
105
 
100
- parser.hooks.preStatement.tap("InnerGraphPlugin", statement => {
106
+ parser.hooks.preStatement.tap(PLUGIN_NAME, statement => {
101
107
  if (!InnerGraph.isEnabled(parser.state)) return;
102
108
 
103
109
  if (parser.scope.topLevelScope === true) {
@@ -110,7 +116,7 @@ class InnerGraphPlugin {
110
116
  }
111
117
  });
112
118
 
113
- parser.hooks.blockPreStatement.tap("InnerGraphPlugin", statement => {
119
+ parser.hooks.blockPreStatement.tap(PLUGIN_NAME, statement => {
114
120
  if (!InnerGraph.isEnabled(parser.state)) return;
115
121
 
116
122
  if (parser.scope.topLevelScope === true) {
@@ -143,33 +149,30 @@ class InnerGraphPlugin {
143
149
  }
144
150
  });
145
151
 
146
- parser.hooks.preDeclarator.tap(
147
- "InnerGraphPlugin",
148
- (decl, statement) => {
149
- if (!InnerGraph.isEnabled(parser.state)) return;
150
- if (
151
- parser.scope.topLevelScope === true &&
152
- decl.init &&
153
- decl.id.type === "Identifier"
154
- ) {
155
- const name = decl.id.name;
156
- if (decl.init.type === "ClassExpression") {
157
- const fn = InnerGraph.tagTopLevelSymbol(parser, name);
158
- classWithTopLevelSymbol.set(decl.init, fn);
159
- } else if (parser.isPure(decl.init, decl.id.range[1])) {
160
- const fn = InnerGraph.tagTopLevelSymbol(parser, name);
161
- declWithTopLevelSymbol.set(decl, fn);
162
- if (
163
- !decl.init.type.endsWith("FunctionExpression") &&
164
- decl.init.type !== "Literal"
165
- ) {
166
- pureDeclarators.add(decl);
167
- }
168
- return true;
152
+ parser.hooks.preDeclarator.tap(PLUGIN_NAME, (decl, statement) => {
153
+ if (!InnerGraph.isEnabled(parser.state)) return;
154
+ if (
155
+ parser.scope.topLevelScope === true &&
156
+ decl.init &&
157
+ decl.id.type === "Identifier"
158
+ ) {
159
+ const name = decl.id.name;
160
+ if (decl.init.type === "ClassExpression") {
161
+ const fn = InnerGraph.tagTopLevelSymbol(parser, name);
162
+ classWithTopLevelSymbol.set(decl.init, fn);
163
+ } else if (parser.isPure(decl.init, decl.id.range[1])) {
164
+ const fn = InnerGraph.tagTopLevelSymbol(parser, name);
165
+ declWithTopLevelSymbol.set(decl, fn);
166
+ if (
167
+ !decl.init.type.endsWith("FunctionExpression") &&
168
+ decl.init.type !== "Literal"
169
+ ) {
170
+ pureDeclarators.add(decl);
169
171
  }
172
+ return true;
170
173
  }
171
174
  }
172
- );
175
+ });
173
176
 
174
177
  // During real walking we set the TopLevelSymbol state to the assigned
175
178
  // TopLevelSymbol by using the fill datastructures.
@@ -187,7 +190,7 @@ class InnerGraphPlugin {
187
190
 
188
191
  // The following hooks are called during walking:
189
192
 
190
- parser.hooks.statement.tap("InnerGraphPlugin", statement => {
193
+ parser.hooks.statement.tap(PLUGIN_NAME, statement => {
191
194
  if (!InnerGraph.isEnabled(parser.state)) return;
192
195
  if (parser.scope.topLevelScope === true) {
193
196
  InnerGraph.setTopLevelSymbol(parser.state, undefined);
@@ -219,7 +222,7 @@ class InnerGraphPlugin {
219
222
  });
220
223
 
221
224
  parser.hooks.classExtendsExpression.tap(
222
- "InnerGraphPlugin",
225
+ PLUGIN_NAME,
223
226
  (expr, statement) => {
224
227
  if (!InnerGraph.isEnabled(parser.state)) return;
225
228
  if (parser.scope.topLevelScope === true) {
@@ -239,7 +242,7 @@ class InnerGraphPlugin {
239
242
  );
240
243
 
241
244
  parser.hooks.classBodyElement.tap(
242
- "InnerGraphPlugin",
245
+ PLUGIN_NAME,
243
246
  (element, classDefinition) => {
244
247
  if (!InnerGraph.isEnabled(parser.state)) return;
245
248
  if (parser.scope.topLevelScope === true) {
@@ -252,7 +255,7 @@ class InnerGraphPlugin {
252
255
  );
253
256
 
254
257
  parser.hooks.classBodyValue.tap(
255
- "InnerGraphPlugin",
258
+ PLUGIN_NAME,
256
259
  (expression, element, classDefinition) => {
257
260
  if (!InnerGraph.isEnabled(parser.state)) return;
258
261
  if (parser.scope.topLevelScope === true) {
@@ -292,7 +295,7 @@ class InnerGraphPlugin {
292
295
  }
293
296
  );
294
297
 
295
- parser.hooks.declarator.tap("InnerGraphPlugin", (decl, statement) => {
298
+ parser.hooks.declarator.tap(PLUGIN_NAME, (decl, statement) => {
296
299
  if (!InnerGraph.isEnabled(parser.state)) return;
297
300
  const fn = declWithTopLevelSymbol.get(decl);
298
301
 
@@ -330,7 +333,7 @@ class InnerGraphPlugin {
330
333
 
331
334
  parser.hooks.expression
332
335
  .for(topLevelSymbolTag)
333
- .tap("InnerGraphPlugin", () => {
336
+ .tap(PLUGIN_NAME, () => {
334
337
  const topLevelSymbol = /** @type {TopLevelSymbol} */ (
335
338
  parser.currentTagData
336
339
  );
@@ -343,21 +346,19 @@ class InnerGraphPlugin {
343
346
  currentTopLevelSymbol || true
344
347
  );
345
348
  });
346
- parser.hooks.assign
347
- .for(topLevelSymbolTag)
348
- .tap("InnerGraphPlugin", expr => {
349
- if (!InnerGraph.isEnabled(parser.state)) return;
350
- if (expr.operator === "=") return true;
351
- });
349
+ parser.hooks.assign.for(topLevelSymbolTag).tap(PLUGIN_NAME, expr => {
350
+ if (!InnerGraph.isEnabled(parser.state)) return;
351
+ if (expr.operator === "=") return true;
352
+ });
352
353
  };
353
354
  normalModuleFactory.hooks.parser
354
- .for("javascript/auto")
355
- .tap("InnerGraphPlugin", handler);
355
+ .for(JAVASCRIPT_MODULE_TYPE_AUTO)
356
+ .tap(PLUGIN_NAME, handler);
356
357
  normalModuleFactory.hooks.parser
357
- .for("javascript/esm")
358
- .tap("InnerGraphPlugin", handler);
358
+ .for(JAVASCRIPT_MODULE_TYPE_ESM)
359
+ .tap(PLUGIN_NAME, handler);
359
360
 
360
- compilation.hooks.finishModules.tap("InnerGraphPlugin", () => {
361
+ compilation.hooks.finishModules.tap(PLUGIN_NAME, () => {
361
362
  logger.timeAggregateEnd("infer dependency usage");
362
363
  });
363
364
  }
@@ -6,6 +6,11 @@
6
6
  "use strict";
7
7
 
8
8
  const glob2regexp = require("glob-to-regexp");
9
+ const {
10
+ JAVASCRIPT_MODULE_TYPE_AUTO,
11
+ JAVASCRIPT_MODULE_TYPE_ESM,
12
+ JAVASCRIPT_MODULE_TYPE_DYNAMIC
13
+ } = require("../ModuleTypeConstants");
9
14
  const { STAGE_DEFAULT } = require("../OptimizationStages");
10
15
  const HarmonyExportImportedSpecifierDependency = require("../dependencies/HarmonyExportImportedSpecifierDependency");
11
16
  const HarmonyImportSpecifierDependency = require("../dependencies/HarmonyImportSpecifierDependency");
@@ -50,6 +55,8 @@ const globToRegexp = (glob, cache) => {
50
55
  return regexp;
51
56
  };
52
57
 
58
+ const PLUGIN_NAME = "SideEffectsFlagPlugin";
59
+
53
60
  class SideEffectsFlagPlugin {
54
61
  /**
55
62
  * @param {boolean} analyseSource analyse source code for side effects
@@ -69,48 +76,41 @@ class SideEffectsFlagPlugin {
69
76
  globToRegexpCache.set(compiler.root, cache);
70
77
  }
71
78
  compiler.hooks.compilation.tap(
72
- "SideEffectsFlagPlugin",
79
+ PLUGIN_NAME,
73
80
  (compilation, { normalModuleFactory }) => {
74
81
  const moduleGraph = compilation.moduleGraph;
75
- normalModuleFactory.hooks.module.tap(
76
- "SideEffectsFlagPlugin",
77
- (module, data) => {
78
- const resolveData = data.resourceResolveData;
79
- if (
80
- resolveData &&
81
- resolveData.descriptionFileData &&
82
- resolveData.relativePath
83
- ) {
84
- const sideEffects = resolveData.descriptionFileData.sideEffects;
85
- if (sideEffects !== undefined) {
86
- if (module.factoryMeta === undefined) {
87
- module.factoryMeta = {};
88
- }
89
- const hasSideEffects =
90
- SideEffectsFlagPlugin.moduleHasSideEffects(
91
- resolveData.relativePath,
92
- sideEffects,
93
- cache
94
- );
95
- module.factoryMeta.sideEffectFree = !hasSideEffects;
96
- }
97
- }
98
-
99
- return module;
100
- }
101
- );
102
- normalModuleFactory.hooks.module.tap(
103
- "SideEffectsFlagPlugin",
104
- (module, data) => {
105
- if (typeof data.settings.sideEffects === "boolean") {
82
+ normalModuleFactory.hooks.module.tap(PLUGIN_NAME, (module, data) => {
83
+ const resolveData = data.resourceResolveData;
84
+ if (
85
+ resolveData &&
86
+ resolveData.descriptionFileData &&
87
+ resolveData.relativePath
88
+ ) {
89
+ const sideEffects = resolveData.descriptionFileData.sideEffects;
90
+ if (sideEffects !== undefined) {
106
91
  if (module.factoryMeta === undefined) {
107
92
  module.factoryMeta = {};
108
93
  }
109
- module.factoryMeta.sideEffectFree = !data.settings.sideEffects;
94
+ const hasSideEffects = SideEffectsFlagPlugin.moduleHasSideEffects(
95
+ resolveData.relativePath,
96
+ sideEffects,
97
+ cache
98
+ );
99
+ module.factoryMeta.sideEffectFree = !hasSideEffects;
110
100
  }
111
- return module;
112
101
  }
113
- );
102
+
103
+ return module;
104
+ });
105
+ normalModuleFactory.hooks.module.tap(PLUGIN_NAME, (module, data) => {
106
+ if (typeof data.settings.sideEffects === "boolean") {
107
+ if (module.factoryMeta === undefined) {
108
+ module.factoryMeta = {};
109
+ }
110
+ module.factoryMeta.sideEffectFree = !data.settings.sideEffects;
111
+ }
112
+ return module;
113
+ });
114
114
  if (this._analyseSource) {
115
115
  /**
116
116
  * @param {JavascriptParser} parser the parser
@@ -118,11 +118,11 @@ class SideEffectsFlagPlugin {
118
118
  */
119
119
  const parserHandler = parser => {
120
120
  let sideEffectsStatement;
121
- parser.hooks.program.tap("SideEffectsFlagPlugin", () => {
121
+ parser.hooks.program.tap(PLUGIN_NAME, () => {
122
122
  sideEffectsStatement = undefined;
123
123
  });
124
124
  parser.hooks.statement.tap(
125
- { name: "SideEffectsFlagPlugin", stage: -100 },
125
+ { name: PLUGIN_NAME, stage: -100 },
126
126
  statement => {
127
127
  if (sideEffectsStatement) return;
128
128
  if (parser.scope.topLevelScope !== true) return;
@@ -203,7 +203,7 @@ class SideEffectsFlagPlugin {
203
203
  }
204
204
  }
205
205
  );
206
- parser.hooks.finish.tap("SideEffectsFlagPlugin", () => {
206
+ parser.hooks.finish.tap(PLUGIN_NAME, () => {
207
207
  if (sideEffectsStatement === undefined) {
208
208
  parser.state.module.buildMeta.sideEffectFree = true;
209
209
  } else {
@@ -220,18 +220,18 @@ class SideEffectsFlagPlugin {
220
220
  });
221
221
  };
222
222
  for (const key of [
223
- "javascript/auto",
224
- "javascript/esm",
225
- "javascript/dynamic"
223
+ JAVASCRIPT_MODULE_TYPE_AUTO,
224
+ JAVASCRIPT_MODULE_TYPE_ESM,
225
+ JAVASCRIPT_MODULE_TYPE_DYNAMIC
226
226
  ]) {
227
227
  normalModuleFactory.hooks.parser
228
228
  .for(key)
229
- .tap("SideEffectsFlagPlugin", parserHandler);
229
+ .tap(PLUGIN_NAME, parserHandler);
230
230
  }
231
231
  }
232
232
  compilation.hooks.optimizeDependencies.tap(
233
233
  {
234
- name: "SideEffectsFlagPlugin",
234
+ name: PLUGIN_NAME,
235
235
  stage: STAGE_DEFAULT
236
236
  },
237
237
  modules => {
@@ -224,6 +224,10 @@ class ConsumeSharedPlugin {
224
224
  );
225
225
  return resolve();
226
226
  }
227
+ if (data.name === packageName) {
228
+ // Package self-referencing
229
+ return resolve();
230
+ }
227
231
  const requiredVersion = getRequiredVersionFromDescriptionFile(
228
232
  data,
229
233
  packageName
@@ -10,6 +10,7 @@
10
10
  /** @typedef {import("./StatsPrinter").StatsPrinterContext} StatsPrinterContext */
11
11
 
12
12
  const DATA_URI_CONTENT_LENGTH = 16;
13
+ const MAX_MODULE_IDENTIFIER_LENGTH = 80;
13
14
 
14
15
  const plural = (n, singular, plural) => (n === 1 ? singular : plural);
15
16
 
@@ -42,6 +43,19 @@ const getResourceName = resource => {
42
43
 
43
44
  const getModuleName = name => {
44
45
  const [, prefix, resource] = /^(.*!)?([^!]*)$/.exec(name);
46
+
47
+ if (resource.length > MAX_MODULE_IDENTIFIER_LENGTH) {
48
+ const truncatedResource = `${resource.slice(
49
+ 0,
50
+ Math.min(
51
+ resource.length - /* '...(truncated)'.length */ 14,
52
+ MAX_MODULE_IDENTIFIER_LENGTH
53
+ )
54
+ )}...(truncated)`;
55
+
56
+ return [prefix, getResourceName(truncatedResource)];
57
+ }
58
+
45
59
  return [prefix, getResourceName(resource)];
46
60
  };
47
61
 
@@ -10,8 +10,8 @@ const create = require("./wasm-hash");
10
10
  //#region wasm code: md4 (../../../assembly/hash/md4.asm.ts) --initialMemory 1
11
11
  const md4 = new WebAssembly.Module(
12
12
  Buffer.from(
13
- // 2156 bytes
14
- "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",
13
+ // 2154 bytes
14
+ "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",
15
15
  "base64"
16
16
  )
17
17
  );
@@ -11,7 +11,7 @@ const create = require("./wasm-hash");
11
11
  const xxhash64 = new WebAssembly.Module(
12
12
  Buffer.from(
13
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/fiEFIAAgAUEgaiIBSw0ACyACJAAgAyQBIAQkAiAFJAMLqAYCAX8EfiMEQgBSBH4jACICQgGJIwEiA0IHiXwjAiIEQgyJfCMDIgVCEol8IAJCz9bTvtLHq9lCfkIfiUKHla+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",
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",
15
15
  "base64"
16
16
  )
17
17
  );
@@ -9,6 +9,7 @@ const { SyncWaterfallHook } = require("tapable");
9
9
  const Compilation = require("../Compilation");
10
10
  const Generator = require("../Generator");
11
11
  const { tryRunOrWebpackError } = require("../HookWebpackError");
12
+ const { WEBASSEMBLY_MODULE_TYPE_ASYNC } = require("../ModuleTypeConstants");
12
13
  const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDependency");
13
14
  const { compareModulesByIdentifier } = require("../util/comparators");
14
15
  const memoize = require("../util/memoize");
@@ -53,6 +54,8 @@ const getAsyncWebAssemblyParser = memoize(() =>
53
54
  /** @type {WeakMap<Compilation, CompilationHooks>} */
54
55
  const compilationHooksMap = new WeakMap();
55
56
 
57
+ const PLUGIN_NAME = "AsyncWebAssemblyModulesPlugin";
58
+
56
59
  class AsyncWebAssemblyModulesPlugin {
57
60
  /**
58
61
  * @param {Compilation} compilation the compilation
@@ -89,7 +92,7 @@ class AsyncWebAssemblyModulesPlugin {
89
92
  */
90
93
  apply(compiler) {
91
94
  compiler.hooks.compilation.tap(
92
- "AsyncWebAssemblyModulesPlugin",
95
+ PLUGIN_NAME,
93
96
  (compilation, { normalModuleFactory }) => {
94
97
  const hooks =
95
98
  AsyncWebAssemblyModulesPlugin.getCompilationHooks(compilation);
@@ -99,15 +102,15 @@ class AsyncWebAssemblyModulesPlugin {
99
102
  );
100
103
 
101
104
  normalModuleFactory.hooks.createParser
102
- .for("webassembly/async")
103
- .tap("AsyncWebAssemblyModulesPlugin", () => {
105
+ .for(WEBASSEMBLY_MODULE_TYPE_ASYNC)
106
+ .tap(PLUGIN_NAME, () => {
104
107
  const AsyncWebAssemblyParser = getAsyncWebAssemblyParser();
105
108
 
106
109
  return new AsyncWebAssemblyParser();
107
110
  });
108
111
  normalModuleFactory.hooks.createGenerator
109
- .for("webassembly/async")
110
- .tap("AsyncWebAssemblyModulesPlugin", () => {
112
+ .for(WEBASSEMBLY_MODULE_TYPE_ASYNC)
113
+ .tap(PLUGIN_NAME, () => {
111
114
  const AsyncWebAssemblyJavascriptGenerator =
112
115
  getAsyncWebAssemblyJavascriptGenerator();
113
116
  const AsyncWebAssemblyGenerator = getAsyncWebAssemblyGenerator();
@@ -135,7 +138,7 @@ class AsyncWebAssemblyModulesPlugin {
135
138
  chunk,
136
139
  compareModulesByIdentifier
137
140
  )) {
138
- if (module.type === "webassembly/async") {
141
+ if (module.type === WEBASSEMBLY_MODULE_TYPE_ASYNC) {
139
142
  const filenameTemplate =
140
143
  outputOptions.webassemblyModuleFilename;
141
144
 
@@ -6,6 +6,7 @@
6
6
  "use strict";
7
7
 
8
8
  const Generator = require("../Generator");
9
+ const { WEBASSEMBLY_MODULE_TYPE_SYNC } = require("../ModuleTypeConstants");
9
10
  const WebAssemblyExportImportedDependency = require("../dependencies/WebAssemblyExportImportedDependency");
10
11
  const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDependency");
11
12
  const { compareModulesByIdentifier } = require("../util/comparators");
@@ -26,6 +27,8 @@ const getWebAssemblyJavascriptGenerator = memoize(() =>
26
27
  );
27
28
  const getWebAssemblyParser = memoize(() => require("./WebAssemblyParser"));
28
29
 
30
+ const PLUGIN_NAME = "WebAssemblyModulesPlugin";
31
+
29
32
  class WebAssemblyModulesPlugin {
30
33
  constructor(options) {
31
34
  this.options = options;
@@ -38,7 +41,7 @@ class WebAssemblyModulesPlugin {
38
41
  */
39
42
  apply(compiler) {
40
43
  compiler.hooks.compilation.tap(
41
- "WebAssemblyModulesPlugin",
44
+ PLUGIN_NAME,
42
45
  (compilation, { normalModuleFactory }) => {
43
46
  compilation.dependencyFactories.set(
44
47
  WebAssemblyImportDependency,
@@ -51,16 +54,16 @@ class WebAssemblyModulesPlugin {
51
54
  );
52
55
 
53
56
  normalModuleFactory.hooks.createParser
54
- .for("webassembly/sync")
55
- .tap("WebAssemblyModulesPlugin", () => {
57
+ .for(WEBASSEMBLY_MODULE_TYPE_SYNC)
58
+ .tap(PLUGIN_NAME, () => {
56
59
  const WebAssemblyParser = getWebAssemblyParser();
57
60
 
58
61
  return new WebAssemblyParser();
59
62
  });
60
63
 
61
64
  normalModuleFactory.hooks.createGenerator
62
- .for("webassembly/sync")
63
- .tap("WebAssemblyModulesPlugin", () => {
65
+ .for(WEBASSEMBLY_MODULE_TYPE_SYNC)
66
+ .tap(PLUGIN_NAME, () => {
64
67
  const WebAssemblyJavascriptGenerator =
65
68
  getWebAssemblyJavascriptGenerator();
66
69
  const WebAssemblyGenerator = getWebAssemblyGenerator();
@@ -71,53 +74,49 @@ class WebAssemblyModulesPlugin {
71
74
  });
72
75
  });
73
76
 
74
- compilation.hooks.renderManifest.tap(
75
- "WebAssemblyModulesPlugin",
76
- (result, options) => {
77
- const { chunkGraph } = compilation;
78
- const { chunk, outputOptions, codeGenerationResults } = options;
79
-
80
- for (const module of chunkGraph.getOrderedChunkModulesIterable(
81
- chunk,
82
- compareModulesByIdentifier
83
- )) {
84
- if (module.type === "webassembly/sync") {
85
- const filenameTemplate =
86
- outputOptions.webassemblyModuleFilename;
87
-
88
- result.push({
89
- render: () =>
90
- codeGenerationResults.getSource(
91
- module,
92
- chunk.runtime,
93
- "webassembly"
94
- ),
95
- filenameTemplate,
96
- pathOptions: {
77
+ compilation.hooks.renderManifest.tap(PLUGIN_NAME, (result, options) => {
78
+ const { chunkGraph } = compilation;
79
+ const { chunk, outputOptions, codeGenerationResults } = options;
80
+
81
+ for (const module of chunkGraph.getOrderedChunkModulesIterable(
82
+ chunk,
83
+ compareModulesByIdentifier
84
+ )) {
85
+ if (module.type === WEBASSEMBLY_MODULE_TYPE_SYNC) {
86
+ const filenameTemplate = outputOptions.webassemblyModuleFilename;
87
+
88
+ result.push({
89
+ render: () =>
90
+ codeGenerationResults.getSource(
97
91
  module,
98
- runtime: chunk.runtime,
99
- chunkGraph
100
- },
101
- auxiliary: true,
102
- identifier: `webassemblyModule${chunkGraph.getModuleId(
103
- module
104
- )}`,
105
- hash: chunkGraph.getModuleHash(module, chunk.runtime)
106
- });
107
- }
92
+ chunk.runtime,
93
+ "webassembly"
94
+ ),
95
+ filenameTemplate,
96
+ pathOptions: {
97
+ module,
98
+ runtime: chunk.runtime,
99
+ chunkGraph
100
+ },
101
+ auxiliary: true,
102
+ identifier: `webassemblyModule${chunkGraph.getModuleId(
103
+ module
104
+ )}`,
105
+ hash: chunkGraph.getModuleHash(module, chunk.runtime)
106
+ });
108
107
  }
109
-
110
- return result;
111
108
  }
112
- );
113
109
 
114
- compilation.hooks.afterChunks.tap("WebAssemblyModulesPlugin", () => {
110
+ return result;
111
+ });
112
+
113
+ compilation.hooks.afterChunks.tap(PLUGIN_NAME, () => {
115
114
  const chunkGraph = compilation.chunkGraph;
116
115
  const initialWasmModules = new Set();
117
116
  for (const chunk of compilation.chunks) {
118
117
  if (chunk.canBeInitial()) {
119
118
  for (const module of chunkGraph.getChunkModulesIterable(chunk)) {
120
- if (module.type === "webassembly/sync") {
119
+ if (module.type === WEBASSEMBLY_MODULE_TYPE_SYNC) {
121
120
  initialWasmModules.add(module);
122
121
  }
123
122
  }
@@ -5,6 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const { WEBASSEMBLY_MODULE_TYPE_ASYNC } = require("../ModuleTypeConstants");
8
9
  const RuntimeGlobals = require("../RuntimeGlobals");
9
10
  const AsyncWasmLoadingRuntimeModule = require("../wasm-async/AsyncWasmLoadingRuntimeModule");
10
11
 
@@ -40,7 +41,7 @@ class FetchCompileAsyncWasmPlugin {
40
41
  if (
41
42
  !chunkGraph.hasModuleInGraph(
42
43
  chunk,
43
- m => m.type === "webassembly/async"
44
+ m => m.type === WEBASSEMBLY_MODULE_TYPE_ASYNC
44
45
  )
45
46
  ) {
46
47
  return;