@depup/webpack 5.110.3-depup.0 → 5.111.1-depup.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 (283) hide show
  1. package/README.md +7 -8
  2. package/changes.json +7 -11
  3. package/lib/APIPlugin.js +26 -11
  4. package/lib/AutomaticPrefetchPlugin.js +1 -1
  5. package/lib/Cache.js +8 -3
  6. package/lib/CacheFacade.js +1 -1
  7. package/lib/CircularModulesPlugin.js +157 -55
  8. package/lib/CleanPlugin.js +2 -2
  9. package/lib/CompatibilityPlugin.js +3 -4
  10. package/lib/Compilation.js +336 -337
  11. package/lib/Compiler.js +213 -51
  12. package/lib/ConstPlugin.js +16 -132
  13. package/lib/CopyPlugin.js +1054 -0
  14. package/lib/DefinePlugin.js +24 -8
  15. package/lib/DependencyTemplate.js +2 -1
  16. package/lib/DotenvPlugin.js +24 -28
  17. package/lib/ErrorHelpers.js +113 -0
  18. package/lib/ExportsInfo.js +20 -16
  19. package/lib/ExternalModule.js +47 -22
  20. package/lib/FileSystemInfo.js +17 -14
  21. package/lib/FlagDependencyExportsPlugin.js +53 -34
  22. package/lib/FlagDependencyUsagePlugin.js +9 -13
  23. package/lib/Generator.js +24 -2
  24. package/lib/HotModuleReplacementPlugin.js +55 -7
  25. package/lib/IgnorePlugin.js +1 -1
  26. package/lib/JavascriptMetaInfoPlugin.js +5 -3
  27. package/lib/LoaderOptionsPlugin.js +1 -1
  28. package/lib/MainTemplate.js +5 -1
  29. package/lib/Module.js +19 -10
  30. package/lib/ModuleGraph.js +6 -9
  31. package/lib/MultiCompiler.js +7 -17
  32. package/lib/MultiWatching.js +1 -1
  33. package/lib/NormalModule.js +135 -50
  34. package/lib/NormalModuleFactory.js +1 -1
  35. package/lib/RuntimeGlobals.js +21 -7
  36. package/lib/RuntimeModule.js +28 -12
  37. package/lib/RuntimePlugin.js +30 -3
  38. package/lib/RuntimeTemplate.js +813 -518
  39. package/lib/SourceMapDevToolPlugin.js +54 -104
  40. package/lib/TemplatedPathPlugin.js +16 -59
  41. package/lib/Watching.js +9 -0
  42. package/lib/WebpackOptionsApply.js +84 -91
  43. package/lib/asset/AssetBytesGenerator.js +7 -1
  44. package/lib/asset/AssetGenerator.js +50 -24
  45. package/lib/asset/AssetModule.js +3 -0
  46. package/lib/asset/AssetSourceGenerator.js +7 -1
  47. package/lib/asset/WebManifestParser.js +7 -5
  48. package/lib/buildChunkGraph.js +11 -15
  49. package/lib/cache/AddBuildDependenciesPlugin.js +33 -4
  50. package/lib/cache/IdleFileCachePlugin.js +2 -2
  51. package/lib/cache/MemoryCachePlugin.js +4 -4
  52. package/lib/cache/MemoryWithGcCachePlugin.js +7 -8
  53. package/lib/cache/PackFileCacheStrategy.js +17 -19
  54. package/lib/cache/getLazyHashedEtag.js +3 -5
  55. package/lib/config/browserslistTargetHandler.js +17 -4
  56. package/lib/config/defaults.js +138 -128
  57. package/lib/config/getClaimedAssetTypes.js +10 -11
  58. package/lib/config/normalization.js +82 -12
  59. package/lib/config/target.js +13 -4
  60. package/lib/container/ContainerReferencePlugin.js +6 -0
  61. package/lib/container/RemoteRuntimeModule.js +9 -0
  62. package/lib/container/declaredRemotes.js +39 -0
  63. package/lib/{ContextExclusionPlugin.js → context/ContextExclusionPlugin.js} +1 -1
  64. package/lib/{ContextModule.js → context/ContextModule.js} +54 -115
  65. package/lib/{ContextModuleFactory.js → context/ContextModuleFactory.js} +19 -21
  66. package/lib/{ContextReplacementPlugin.js → context/ContextReplacementPlugin.js} +4 -4
  67. package/lib/css/CssGenerator.js +27 -11
  68. package/lib/css/CssInjectStyleRuntimeModule.js +9 -0
  69. package/lib/css/CssLoadingRuntimeModule.js +94 -36
  70. package/lib/css/CssModule.js +1 -1
  71. package/lib/css/CssModulesPlugin.js +7 -6
  72. package/lib/css/CssParser.js +162 -31
  73. package/lib/css/CssServerStylesRuntimeModule.js +9 -0
  74. package/lib/css/cssMinify.js +43 -32
  75. package/lib/css/data.js +3514 -869
  76. package/lib/css/syntax.js +6370 -1220
  77. package/lib/debug/ProfilingPlugin.js +7 -4
  78. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +6 -3
  79. package/lib/dependencies/AMDRuntimeModules.js +18 -0
  80. package/lib/dependencies/CommonJsExportRequireDependency.js +13 -12
  81. package/lib/dependencies/CommonJsExportsParserPlugin.js +12 -13
  82. package/lib/dependencies/CommonJsImportsParserPlugin.js +5 -5
  83. package/lib/dependencies/CommonJsPlugin.js +19 -3
  84. package/lib/dependencies/CommonJsRequireDependency.js +14 -5
  85. package/lib/dependencies/CommonJsSelfReferenceDependency.js +2 -4
  86. package/lib/dependencies/ContextDependency.js +1 -1
  87. package/lib/dependencies/ContextDependencyHelpers.js +3 -9
  88. package/lib/dependencies/ContextElementDependency.js +1 -1
  89. package/lib/dependencies/CssIcssExportDependency.js +13 -9
  90. package/lib/dependencies/CssIcssImportDependency.js +3 -6
  91. package/lib/dependencies/CssUrlDependency.js +3 -5
  92. package/lib/dependencies/HarmonyCompatibilityDependency.js +67 -22
  93. package/lib/dependencies/HarmonyDetectionParserPlugin.js +3 -4
  94. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +10 -7
  95. package/lib/dependencies/HarmonyExportExpressionDependency.js +47 -33
  96. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +74 -17
  97. package/lib/dependencies/HarmonyExportInitFragment.js +110 -23
  98. package/lib/dependencies/HarmonyExportSpecifierDependency.js +25 -58
  99. package/lib/dependencies/HarmonyImportBareSideEffectDependency.js +59 -0
  100. package/lib/dependencies/HarmonyImportDependency.js +6 -1
  101. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +111 -17
  102. package/lib/dependencies/HarmonyImportSideEffectDependency.js +3 -4
  103. package/lib/dependencies/HarmonyImportSpecifierDependency.js +40 -3
  104. package/lib/dependencies/HarmonyModulesPlugin.js +20 -0
  105. package/lib/dependencies/HtmlEntryDependency.js +124 -102
  106. package/lib/dependencies/HtmlInlineScriptDependency.js +3 -4
  107. package/lib/dependencies/HtmlInlineStyleDependency.js +3 -4
  108. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +1 -1
  109. package/lib/dependencies/ImportMetaGlobHelpers.js +1 -1
  110. package/lib/dependencies/ImportMetaMainDependency.js +104 -0
  111. package/lib/dependencies/ImportMetaPlugin.js +67 -25
  112. package/lib/dependencies/ImportParserPlugin.js +1 -1
  113. package/lib/dependencies/LoaderPlugin.js +26 -1
  114. package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -1
  115. package/lib/dependencies/SystemRuntimeModule.js +9 -0
  116. package/lib/dependencies/URLContextDependency.js +1 -1
  117. package/lib/dependencies/URLDependency.js +6 -5
  118. package/lib/dependencies/WorkerAndWorkletPlugin.js +15 -21
  119. package/lib/dependencies/WorkerDependency.js +7 -7
  120. package/lib/dependencies/WorkletDependency.js +7 -11
  121. package/lib/dll/DelegatedModule.js +18 -1
  122. package/lib/dll/DllReferencePlugin.js +11 -8
  123. package/lib/dll/LibManifestPlugin.js +1 -1
  124. package/lib/errors/AnalyzableBailoutsWarning.js +41 -0
  125. package/lib/errors/DuplicateModulesWarning.js +12 -7
  126. package/lib/errors/EmptyCopyPatternWarning.js +26 -0
  127. package/lib/errors/ExternalStarReexportError.js +44 -0
  128. package/lib/errors/HookWebpackError.js +3 -2
  129. package/lib/errors/MissingSourceMapsWarning.js +36 -0
  130. package/lib/errors/ModuleParseError.js +2 -1
  131. package/lib/errors/UnusedAssetsWarning.js +36 -0
  132. package/lib/errors/UnusedFederationWarning.js +35 -0
  133. package/lib/errors/UnusedModulesWarning.js +38 -0
  134. package/lib/esm/ExportWebpackRequireRuntimeModule.js +9 -0
  135. package/lib/esm/ModuleChunkFormatPlugin.js +28 -3
  136. package/lib/esm/ModuleChunkLoadingPlugin.js +30 -11
  137. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +92 -60
  138. package/lib/hmr/HotModuleReplacement.runtime.js +8 -2
  139. package/lib/hmr/HotModuleReplacementRuntimeModule.js +9 -0
  140. package/lib/hmr/LazyCompilationPlugin.js +3 -5
  141. package/lib/html/HtmlGenerator.js +72 -87
  142. package/lib/html/HtmlModulesPlugin.js +418 -200
  143. package/lib/html/HtmlParser.js +110 -147
  144. package/lib/html/builtinEmbeddedRenderer.js +107 -0
  145. package/lib/html/data.js +142 -7
  146. package/lib/html/htmlMinify.js +92 -122
  147. package/lib/html/syntax.js +1618 -1391
  148. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  149. package/lib/index.js +49 -3
  150. package/lib/javascript/ChunkFormatHelpers.js +4 -3
  151. package/lib/javascript/JavascriptGenerator.js +8 -1
  152. package/lib/javascript/JavascriptModule.js +1 -0
  153. package/lib/javascript/JavascriptModulesPlugin.js +73 -72
  154. package/lib/javascript/JavascriptParser.js +1970 -900
  155. package/lib/javascript/StartupHelpers.js +27 -3
  156. package/lib/javascript/data.js +172 -0
  157. package/lib/javascript/grammar.js +5546 -0
  158. package/lib/javascript/parser.js +1500 -0
  159. package/lib/javascript/regexp.js +1762 -0
  160. package/lib/javascript/regexpData.js +51 -0
  161. package/lib/javascript/syntax.js +9061 -5262
  162. package/lib/json/JsonGenerator.js +7 -1
  163. package/lib/library/ModuleLibraryPlugin.js +171 -132
  164. package/lib/loaders/LoaderRunner.js +137 -9
  165. package/lib/node/NodeWatchFileSystem.js +3 -9
  166. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +22 -0
  167. package/lib/node/RequireChunkLoadingRuntimeModule.js +22 -0
  168. package/lib/optimize/AggressiveMergingPlugin.js +3 -5
  169. package/lib/optimize/ConcatenatedModule.js +178 -120
  170. package/lib/optimize/ConstExportsPlugin.js +50 -39
  171. package/lib/optimize/FlagIncludedChunksPlugin.js +3 -11
  172. package/lib/optimize/InlineExports.js +20 -123
  173. package/lib/optimize/InnerGraphPlugin.js +7 -13
  174. package/lib/optimize/LimitChunkCountPlugin.js +5 -8
  175. package/lib/optimize/MangleExportsPlugin.js +13 -4
  176. package/lib/optimize/ModuleConcatenationPlugin.js +27 -5
  177. package/lib/optimize/RealContentHashPlugin.js +68 -9
  178. package/lib/optimize/SideEffectsFlagPlugin.js +24 -28
  179. package/lib/optimize/SplitChunksPlugin.js +2 -4
  180. package/lib/performance/AnalyzableBailoutsPlugin.js +115 -0
  181. package/lib/performance/BroadContextsPlugin.js +1 -1
  182. package/lib/performance/CacheEffectivenessPlugin.js +7 -7
  183. package/lib/performance/DuplicateModulesPlugin.js +57 -13
  184. package/lib/performance/EvalUsagePlugin.js +5 -2
  185. package/lib/performance/MissingSourceMapsPlugin.js +115 -0
  186. package/lib/performance/PureAnnotationsPlugin.js +6 -3
  187. package/lib/performance/SizeLimitsPlugin.js +2 -4
  188. package/lib/performance/TopLevelThisPlugin.js +5 -4
  189. package/lib/performance/UnusedAssetsPlugin.js +109 -0
  190. package/lib/performance/UnusedFederationPlugin.js +147 -0
  191. package/lib/performance/UnusedModulesPlugin.js +141 -0
  192. package/lib/performance/UnusedReexportsPlugin.js +1 -55
  193. package/lib/performance/isOnlyReexported.js +65 -0
  194. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +25 -5
  195. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +8 -8
  196. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +9 -0
  197. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +9 -0
  198. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +9 -0
  199. package/lib/prefetch/ResourceHintPlugin.js +18 -23
  200. package/lib/prefetch/ResourceHintRuntimeModule.js +9 -0
  201. package/lib/prefetch/StartupAssetHintRuntimeModule.js +16 -10
  202. package/lib/rules/RuleSetCompiler.js +211 -4
  203. package/lib/runtime/AsyncModuleRuntimeModule.js +98 -66
  204. package/lib/runtime/AutoPublicPathRuntimeModule.js +9 -0
  205. package/lib/runtime/BaseUriRuntimeModule.js +9 -0
  206. package/lib/runtime/ChunkNameRuntimeModule.js +9 -0
  207. package/lib/runtime/EnsureChunkRuntimeModule.js +35 -16
  208. package/lib/runtime/GetChunkFilenameRuntimeModule.js +12 -4
  209. package/lib/runtime/GetFullHashRuntimeModule.js +9 -0
  210. package/lib/runtime/GetMainFilenameRuntimeModule.js +9 -0
  211. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +9 -0
  212. package/lib/runtime/GlobalRuntimeModule.js +11 -4
  213. package/lib/runtime/HasOwnPropertyRuntimeModule.js +9 -0
  214. package/lib/runtime/HelperRuntimeModule.js +10 -0
  215. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +305 -224
  216. package/lib/runtime/NonceRuntimeModule.js +9 -0
  217. package/lib/runtime/OnChunksLoadedRuntimeModule.js +67 -20
  218. package/lib/runtime/PublicPathRuntimeModule.js +9 -0
  219. package/lib/runtime/RuntimeIdRuntimeModule.js +9 -0
  220. package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +90 -0
  221. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +9 -0
  222. package/lib/runtime/StartupEntrypointRuntimeModule.js +9 -0
  223. package/lib/runtime/SystemContextRuntimeModule.js +9 -0
  224. package/lib/runtime/ToBinaryRuntimeModule.js +9 -0
  225. package/lib/schemes/DataUriPlugin.js +3 -6
  226. package/lib/schemes/VirtualUrlPlugin.js +1 -1
  227. package/lib/serialization/BinaryMiddleware.js +9 -9
  228. package/lib/serialization/FileMiddleware.js +16 -16
  229. package/lib/serialization/ObjectMiddleware.js +168 -139
  230. package/lib/sharing/ConsumeSharedPlugin.js +12 -0
  231. package/lib/sharing/ConsumeSharedRuntimeModule.js +11 -0
  232. package/lib/sharing/ShareRuntimeModule.js +9 -0
  233. package/lib/sharing/declaredShared.js +47 -0
  234. package/lib/stats/DefaultStatsFactoryPlugin.js +6 -5
  235. package/lib/stats/DefaultStatsPrinterPlugin.js +3 -0
  236. package/lib/typescript/TypeScriptPlugin.js +2 -3
  237. package/lib/url/URLParserPlugin.js +6 -8
  238. package/lib/util/LocConverter.js +4 -7
  239. package/lib/util/SourceProcessor.js +91 -91
  240. package/lib/util/async.js +292 -0
  241. package/lib/util/buildDiagnostics.js +69 -0
  242. package/lib/util/chainedImports.js +3 -4
  243. package/lib/util/concatenate.js +4 -4
  244. package/lib/util/createHooksRegistry.js +1 -2
  245. package/lib/util/dataURL.js +2 -3
  246. package/lib/util/deterministicGrouping.js +8 -13
  247. package/lib/util/findGraphRoots.js +6 -13
  248. package/lib/util/fs.js +27 -1
  249. package/lib/util/globUtils.js +1 -1
  250. package/lib/util/handlerKeys.js +40 -0
  251. package/lib/util/hash/wasm-hash.js +3 -4
  252. package/lib/util/identifier.js +20 -0
  253. package/lib/util/internalSerializables.js +5 -1
  254. package/lib/util/registerExternalSerializer.js +6 -45
  255. package/lib/util/semver.js +5 -3
  256. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +9 -0
  257. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +9 -0
  258. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -1
  259. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -1
  260. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +12 -4
  261. package/lib/wasm-sync/WebAssemblyGenerator.js +6 -1
  262. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +5 -1
  263. package/lib/wasm-sync/WebAssemblyUtils.js +2 -4
  264. package/lib/web/JsonpChunkLoadingRuntimeModule.js +36 -0
  265. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +19 -0
  266. package/package.json +55 -46
  267. package/schemas/WebpackOptions.check.js +1 -1
  268. package/schemas/WebpackOptions.json +379 -66
  269. package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -1
  270. package/schemas/plugins/ManifestPlugin.check.js +1 -1
  271. package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
  272. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
  273. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
  274. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  275. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  276. package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -1
  277. package/schemas/plugins/dll/DllReferencePlugin.check.js +1 -1
  278. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -1
  279. package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
  280. package/types.d.ts +1723 -604
  281. package/lib/dependencies/ExportBindingInitFragment.js +0 -191
  282. package/lib/errors/EntrypointOverlapWarning.js +0 -45
  283. package/lib/performance/EntrypointOverlapPlugin.js +0 -122
@@ -7,6 +7,8 @@
7
7
  const RuntimeGlobals = require("../RuntimeGlobals");
8
8
  const RuntimeModule = require("../RuntimeModule");
9
9
  const Template = require("../Template");
10
+ const { getOnlyHandlerKey } = require("../util/handlerKeys");
11
+ const { propertyAccess } = require("../util/property");
10
12
 
11
13
  /** @import Compilation from "../Compilation" */
12
14
  /** @import { ReadOnlyRuntimeRequirements } from "../Module" */
@@ -31,6 +33,17 @@ class EnsureChunkRuntimeModule extends RuntimeModule {
31
33
  this.runtimeRequirements = runtimeRequirements;
32
34
  }
33
35
 
36
+ /**
37
+ * The `[handlerMap, key]` pairs this module installs onto a chunk handler map
38
+ * such as `__webpack_require__.f`, or `null` where it cannot name them.
39
+ * @returns {[string, string][] | null} installed chunk handlers (do not mutate)
40
+ */
41
+ getInstalledChunkHandlers() {
42
+ // Reads a map rather than installing onto one, so reading its code back would
43
+ // render it in a cycle.
44
+ return RuntimeModule.NO_CHUNK_HANDLERS;
45
+ }
46
+
34
47
  /**
35
48
  * Generates runtime code for this runtime module.
36
49
  * @returns {string | null} runtime code
@@ -38,8 +51,8 @@ class EnsureChunkRuntimeModule extends RuntimeModule {
38
51
  generate() {
39
52
  const compilation = /** @type {Compilation} */ (this.compilation);
40
53
  const { runtimeTemplate } = compilation;
41
- // An analyzable `import()` dispatches the handlers itself, so a build can need the
42
- // map without the function around it.
54
+ // HMR force-loads through the handler map by bare chunk id, so a build can need
55
+ // the map without the function around it.
43
56
  const withEnsureChunk = this.runtimeRequirements.has(
44
57
  RuntimeGlobals.ensureChunk
45
58
  );
@@ -50,24 +63,30 @@ class EnsureChunkRuntimeModule extends RuntimeModule {
50
63
  );
51
64
  const handlers = RuntimeGlobals.ensureChunkHandlers;
52
65
  if (!withEnsureChunk) return `${handlers} = {};`;
66
+ const args = `chunkId${withFetchPriority ? ", fetchPriority" : ""}`;
67
+ const forwarded = `chunkId, promises${
68
+ withFetchPriority ? ", fetchPriority" : ""
69
+ }`;
70
+ const only = getOnlyHandlerKey(this, handlers);
71
+ // One handler needs no walk over the others, and most chunks carry one.
72
+ const body =
73
+ only === null
74
+ ? `return Promise.all(Object.keys(${handlers}).reduce(${runtimeTemplate.basicFunction(
75
+ "promises, key",
76
+ [`${handlers}[key](${forwarded});`, "return promises;"]
77
+ )}, []));`
78
+ : Template.asString([
79
+ `${runtimeTemplate.renderConst()} promises = [];`,
80
+ `${handlers}${propertyAccess([only])}(${forwarded});`,
81
+ "return Promise.all(promises);"
82
+ ]);
53
83
  return Template.asString([
54
84
  `${handlers} = {};`,
55
85
  "// This file contains only the entry chunk.",
56
86
  "// The chunk loading function for additional chunks",
57
- `${RuntimeGlobals.ensureChunk} = ${runtimeTemplate.basicFunction(
58
- `chunkId${withFetchPriority ? ", fetchPriority" : ""}`,
59
- [
60
- `return Promise.all(Object.keys(${handlers}).reduce(${runtimeTemplate.basicFunction(
61
- "promises, key",
62
- [
63
- `${handlers}[key](chunkId, promises${
64
- withFetchPriority ? ", fetchPriority" : ""
65
- });`,
66
- "return promises;"
67
- ]
68
- )}, []));`
69
- ]
70
- )};`
87
+ `${RuntimeGlobals.ensureChunk} = ${runtimeTemplate.basicFunction(args, [
88
+ body
89
+ ])};`
71
90
  ]);
72
91
  }
73
92
  // There ensureChunk is used somewhere in the tree, so we need an empty requireEnsure
@@ -67,6 +67,15 @@ class GetChunkFilenameRuntimeModule extends RuntimeModule {
67
67
  }
68
68
  }
69
69
 
70
+ /**
71
+ * The `[handlerMap, key]` pairs this module installs onto a chunk handler map
72
+ * such as `__webpack_require__.f`, or `null` where it cannot name them.
73
+ * @returns {[string, string][] | null} installed chunk handlers (do not mutate)
74
+ */
75
+ getInstalledChunkHandlers() {
76
+ return RuntimeModule.NO_CHUNK_HANDLERS;
77
+ }
78
+
70
79
  /**
71
80
  * Generates runtime code for this runtime module.
72
81
  * @returns {string | null} runtime code
@@ -96,10 +105,9 @@ class GetChunkFilenameRuntimeModule extends RuntimeModule {
96
105
  return length ? hash.slice(0, length) : hash;
97
106
  };
98
107
 
99
- // `[fullhash:<digest>]`/`[hash:<digest>]` would resolve to a runtime
100
- // `getFullHash()` expression that can't be re-encoded; instead this module is
101
- // flagged `fullHash` and re-rendered after hashing, so we inline the
102
- // re-encoded full hash here — byte-identical to the statically emitted file.
108
+ // A digest cannot be re-encoded from the runtime `getFullHash()` expression,
109
+ // so this module is flagged `fullHash` and re-rendered after hashing: the
110
+ // inlined value is byte-identical to the statically emitted file.
103
111
  /** @type {HashWithDigestFunction} */
104
112
  const fullHashWithDigest = (digest, length) => {
105
113
  const fullHash = compilation.fullHash;
@@ -26,6 +26,15 @@ class GetFullHashRuntimeModule extends RuntimeModule {
26
26
  return false;
27
27
  }
28
28
 
29
+ /**
30
+ * The `[handlerMap, key]` pairs this module installs onto a chunk handler map
31
+ * such as `__webpack_require__.f`, or `null` where it cannot name them.
32
+ * @returns {[string, string][] | null} installed chunk handlers (do not mutate)
33
+ */
34
+ getInstalledChunkHandlers() {
35
+ return RuntimeModule.NO_CHUNK_HANDLERS;
36
+ }
37
+
29
38
  /**
30
39
  * Generates runtime code for this runtime module.
31
40
  * @returns {string | null} runtime code
@@ -35,6 +35,15 @@ class GetMainFilenameRuntimeModule extends RuntimeModule {
35
35
  this.filename = filename;
36
36
  }
37
37
 
38
+ /**
39
+ * The `[handlerMap, key]` pairs this module installs onto a chunk handler map
40
+ * such as `__webpack_require__.f`, or `null` where it cannot name them.
41
+ * @returns {[string, string][] | null} installed chunk handlers (do not mutate)
42
+ */
43
+ getInstalledChunkHandlers() {
44
+ return RuntimeModule.NO_CHUNK_HANDLERS;
45
+ }
46
+
38
47
  /**
39
48
  * Generates runtime code for this runtime module.
40
49
  * @returns {string | null} runtime code
@@ -33,6 +33,15 @@ class GetWorkletBootstrapRuntimeModule extends RuntimeModule {
33
33
  return false;
34
34
  }
35
35
 
36
+ /**
37
+ * The `[handlerMap, key]` pairs this module installs onto a chunk handler map
38
+ * such as `__webpack_require__.f`, or `null` where it cannot name them.
39
+ * @returns {[string, string][] | null} installed chunk handlers (do not mutate)
40
+ */
41
+ getInstalledChunkHandlers() {
42
+ return RuntimeModule.NO_CHUNK_HANDLERS;
43
+ }
44
+
36
45
  /**
37
46
  * Generates runtime code for this runtime module.
38
47
  * @returns {string | null} runtime code
@@ -25,6 +25,15 @@ class GlobalRuntimeModule extends RuntimeModule {
25
25
  return false;
26
26
  }
27
27
 
28
+ /**
29
+ * The `[handlerMap, key]` pairs this module installs onto a chunk handler map
30
+ * such as `__webpack_require__.f`, or `null` where it cannot name them.
31
+ * @returns {[string, string][] | null} installed chunk handlers (do not mutate)
32
+ */
33
+ getInstalledChunkHandlers() {
34
+ return RuntimeModule.NO_CHUNK_HANDLERS;
35
+ }
36
+
28
37
  /**
29
38
  * Generates runtime code for this runtime module.
30
39
  * @returns {string | null} runtime code
@@ -53,10 +62,8 @@ class GlobalRuntimeModule extends RuntimeModule {
53
62
  "if (typeof window === 'object') return window;"
54
63
  ),
55
64
  "}"
56
- // It can still be `undefined`, but nothing to do about it...
57
- // We return `undefined`, instead of nothing here, so it's
58
- // easier to handle this case:
59
- // if (!global) { … }
65
+ // It can still be `undefined`, and nothing here can help that. Returning
66
+ // `undefined` rather than nothing keeps `if (!global)` working.
60
67
  ]),
61
68
  "})();"
62
69
  ]);
@@ -26,6 +26,15 @@ class HasOwnPropertyRuntimeModule extends RuntimeModule {
26
26
  return false;
27
27
  }
28
28
 
29
+ /**
30
+ * The `[handlerMap, key]` pairs this module installs onto a chunk handler map
31
+ * such as `__webpack_require__.f`, or `null` where it cannot name them.
32
+ * @returns {[string, string][] | null} installed chunk handlers (do not mutate)
33
+ */
34
+ getInstalledChunkHandlers() {
35
+ return RuntimeModule.NO_CHUNK_HANDLERS;
36
+ }
37
+
29
38
  /**
30
39
  * Generates runtime code for this runtime module.
31
40
  * @returns {string | null} runtime code
@@ -18,6 +18,16 @@ class HelperRuntimeModule extends RuntimeModule {
18
18
  constructor(name) {
19
19
  super(name);
20
20
  }
21
+
22
+ /**
23
+ * The `[handlerMap, key]` pairs this module installs onto a chunk handler map
24
+ * such as `__webpack_require__.f`, or `null` where it cannot name them.
25
+ * @returns {[string, string][] | null} installed chunk handlers (do not mutate)
26
+ */
27
+ getInstalledChunkHandlers() {
28
+ // A helper defines a function on the require global and nothing else.
29
+ return RuntimeModule.NO_CHUNK_HANDLERS;
30
+ }
21
31
  }
22
32
 
23
33
  module.exports = HelperRuntimeModule;