webpack 5.111.1 → 5.112.1

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 (793) hide show
  1. package/README.md +1 -1
  2. package/bin/webpack.js +13 -7
  3. package/lib/Chunk.js +3 -966
  4. package/lib/Compilation.js +373 -163
  5. package/lib/Compiler.js +31 -44
  6. package/lib/Dependency.js +3 -551
  7. package/lib/DependencyTemplate.js +3 -70
  8. package/lib/EntryPlugin.js +3 -68
  9. package/lib/Entrypoint.js +3 -121
  10. package/lib/ExternalsPlugin.js +3 -92
  11. package/lib/FileSystemInfo.js +3 -4629
  12. package/lib/InitFragment.js +3 -204
  13. package/lib/LibraryTemplatePlugin.js +3 -46
  14. package/lib/ModuleFilenameHelpers.js +3 -400
  15. package/lib/ModuleNotFoundError.js +2 -2
  16. package/lib/MultiCompiler.js +37 -8
  17. package/lib/NormalModule.js +3 -2242
  18. package/lib/NullFactory.js +3 -22
  19. package/lib/ProgressPlugin.js +3 -908
  20. package/lib/RawModule.js +3 -197
  21. package/lib/RequestShortener.js +3 -37
  22. package/lib/SingleEntryPlugin.js +1 -1
  23. package/lib/WebpackError.js +2 -2
  24. package/lib/asset/AssetBytesGenerator.js +21 -13
  25. package/lib/asset/AssetBytesParser.js +12 -10
  26. package/lib/asset/AssetGenerator.js +71 -69
  27. package/lib/asset/AssetModule.js +13 -2
  28. package/lib/asset/AssetModulesPlugin.js +10 -12
  29. package/lib/asset/AssetParser.js +10 -10
  30. package/lib/asset/AssetSourceGenerator.js +23 -15
  31. package/lib/asset/AssetSourceParser.js +12 -10
  32. package/lib/asset/RawDataUrlModule.js +17 -10
  33. package/lib/asset/WebManifestGenerator.js +17 -12
  34. package/lib/asset/WebManifestParser.js +8 -8
  35. package/lib/async-modules/AsyncModuleHelpers.js +12 -5
  36. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
  37. package/lib/async-modules/InferAsyncModulesPlugin.js +9 -3
  38. package/lib/async-modules/isGeneratorLowered.js +3 -3
  39. package/lib/bun/BunTargetPlugin.js +1 -1
  40. package/lib/cache/AddBuildDependenciesPlugin.js +2 -19
  41. package/lib/{Cache.js → cache/Cache.js} +1 -1
  42. package/lib/{CacheFacade.js → cache/CacheFacade.js} +6 -6
  43. package/lib/cache/IdleFileCachePlugin.js +2 -2
  44. package/lib/cache/MemoryCachePlugin.js +2 -2
  45. package/lib/cache/MemoryWithGcCachePlugin.js +2 -2
  46. package/lib/cache/PackFileCacheStrategy.js +13 -19
  47. package/lib/cache/ResolverCachePlugin.js +65 -11
  48. package/lib/cache/mergeEtags.js +1 -1
  49. package/lib/{OptionsApply.js → config/OptionsApply.js} +3 -3
  50. package/lib/{PlatformPlugin.js → config/PlatformPlugin.js} +2 -2
  51. package/lib/{WebpackOptionsApply.js → config/WebpackOptionsApply.js} +209 -212
  52. package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
  53. package/lib/config/browserslistTargetHandler.js +1 -1
  54. package/lib/{cli.js → config/cli.js} +14 -164
  55. package/lib/config/defaults.js +166 -59
  56. package/lib/config/getClaimedAssetTypes.js +22 -14
  57. package/lib/config/normalization.js +18 -7
  58. package/lib/config/target.js +11 -1
  59. package/lib/container/ContainerEntryDependency.js +1 -1
  60. package/lib/container/ContainerEntryModule.js +13 -11
  61. package/lib/container/ContainerEntryModuleFactory.js +2 -2
  62. package/lib/container/ContainerExposedDependency.js +1 -1
  63. package/lib/container/ContainerPlugin.js +178 -5
  64. package/lib/container/ContainerReferencePlugin.js +75 -14
  65. package/lib/container/FallbackDependency.js +1 -1
  66. package/lib/container/FallbackItemDependency.js +1 -1
  67. package/lib/container/FallbackModule.js +12 -10
  68. package/lib/container/FallbackModuleFactory.js +2 -2
  69. package/lib/container/HoistContainerReferencesPlugin.js +10 -11
  70. package/lib/container/ModuleFederationPlugin.js +306 -7
  71. package/lib/container/RemoteModule.js +14 -10
  72. package/lib/container/RemoteRuntimeModule.js +5 -5
  73. package/lib/container/RemoteToExternalDependency.js +1 -1
  74. package/lib/container/moduleFederationHooks.js +1 -1
  75. package/lib/context/ContextModule.js +37 -26
  76. package/lib/context/ContextModuleFactory.js +14 -11
  77. package/lib/context/ContextReplacementPlugin.js +6 -12
  78. package/lib/css/CssGenerator.js +78 -68
  79. package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
  80. package/lib/css/CssLoadingRuntimeModule.js +77 -44
  81. package/lib/css/CssModule.js +37 -29
  82. package/lib/css/CssModulesPlugin.js +129 -45
  83. package/lib/css/CssParser.js +714 -322
  84. package/lib/css/CssServerStylesRuntimeModule.js +3 -3
  85. package/lib/{util → css}/conventions.js +1 -1
  86. package/lib/css/cssMinify.js +110 -37
  87. package/lib/css/data.js +6990 -5125
  88. package/lib/css/syntax-parser.js +20734 -0
  89. package/lib/css/syntax-printer.js +6092 -0
  90. package/lib/css/syntax.js +37 -18686
  91. package/lib/debug/ProfilingPlugin.js +106 -51
  92. package/lib/{DefinePlugin.js → define/DefinePlugin.js} +416 -55
  93. package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +19 -15
  94. package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +6 -4
  95. package/lib/deno/DenoTargetPlugin.js +1 -1
  96. package/lib/dependencies/ConstDependency.js +3 -120
  97. package/lib/dependencies/ContextElementDependency.js +5 -172
  98. package/lib/dependencies/NullDependency.js +3 -37
  99. package/lib/dependencies/{AMDDefineDependency.js → amd/AMDDefineDependency.js} +12 -11
  100. package/lib/dependencies/{AMDDefineDependencyParserPlugin.js → amd/AMDDefineDependencyParserPlugin.js} +10 -11
  101. package/lib/dependencies/{AMDPlugin.js → amd/AMDPlugin.js} +11 -11
  102. package/lib/dependencies/{AMDRequireArrayDependency.js → amd/AMDRequireArrayDependency.js} +15 -13
  103. package/lib/dependencies/{AMDRequireContextDependency.js → amd/AMDRequireContextDependency.js} +11 -10
  104. package/lib/dependencies/{AMDRequireDependenciesBlock.js → amd/AMDRequireDependenciesBlock.js} +7 -6
  105. package/lib/dependencies/{AMDRequireDependenciesBlockParserPlugin.js → amd/AMDRequireDependenciesBlockParserPlugin.js} +14 -11
  106. package/lib/dependencies/{AMDRequireDependency.js → amd/AMDRequireDependency.js} +13 -12
  107. package/lib/dependencies/{AMDRequireItemDependency.js → amd/AMDRequireItemDependency.js} +8 -7
  108. package/lib/dependencies/{AMDRuntimeModules.js → amd/AMDRuntimeModules.js} +3 -3
  109. package/lib/dependencies/{LocalModule.js → amd/LocalModule.js} +8 -4
  110. package/lib/dependencies/{LocalModuleDependency.js → amd/LocalModuleDependency.js} +17 -10
  111. package/lib/dependencies/{LocalModulesHelpers.js → amd/LocalModulesHelpers.js} +1 -1
  112. package/lib/dependencies/{RequireJsStuffPlugin.js → amd/RequireJsStuffPlugin.js} +9 -9
  113. package/lib/dependencies/{UnsupportedDependency.js → amd/UnsupportedDependency.js} +11 -10
  114. package/lib/dependencies/{CommonJsDependencyHelpers.js → commonjs/CommonJsDependencyHelpers.js} +8 -9
  115. package/lib/dependencies/{CommonJsExportRequireDependency.js → commonjs/CommonJsExportRequireDependency.js} +166 -36
  116. package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
  117. package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +154 -92
  118. package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
  119. package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +36 -33
  120. package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +17 -16
  121. package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +48 -39
  122. package/lib/dependencies/{CommonJsRequireContextDependency.js → commonjs/CommonJsRequireContextDependency.js} +15 -14
  123. package/lib/dependencies/{CommonJsRequireDependency.js → commonjs/CommonJsRequireDependency.js} +33 -25
  124. package/lib/dependencies/{CommonJsSelfReferenceDependency.js → commonjs/CommonJsSelfReferenceDependency.js} +17 -16
  125. package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
  126. package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
  127. package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +9 -6
  128. package/lib/dependencies/{RequireEnsureDependency.js → commonjs/RequireEnsureDependency.js} +13 -12
  129. package/lib/dependencies/{RequireEnsureItemDependency.js → commonjs/RequireEnsureItemDependency.js} +7 -6
  130. package/lib/dependencies/{RequireEnsurePlugin.js → commonjs/RequireEnsurePlugin.js} +8 -8
  131. package/lib/dependencies/{RequireHeaderDependency.js → commonjs/RequireHeaderDependency.js} +14 -13
  132. package/lib/dependencies/{RequireIncludeDependency.js → commonjs/RequireIncludeDependency.js} +13 -12
  133. package/lib/dependencies/{RequireIncludeDependencyParserPlugin.js → commonjs/RequireIncludeDependencyParserPlugin.js} +3 -27
  134. package/lib/dependencies/{RequireIncludePlugin.js → commonjs/RequireIncludePlugin.js} +4 -4
  135. package/lib/dependencies/{RequireResolveContextDependency.js → commonjs/RequireResolveContextDependency.js} +11 -10
  136. package/lib/dependencies/{RequireResolveDependency.js → commonjs/RequireResolveDependency.js} +12 -11
  137. package/lib/dependencies/{RequireResolveHeaderDependency.js → commonjs/RequireResolveHeaderDependency.js} +13 -12
  138. package/lib/dependencies/commonjs/TopLevelThisParserPlugin.js +59 -0
  139. package/lib/dependencies/{ContextDependency.js → context/ContextDependency.js} +15 -14
  140. package/lib/dependencies/{ContextDependencyHelpers.js → context/ContextDependencyHelpers.js} +31 -9
  141. package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
  142. package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
  143. package/lib/dependencies/context/ContextElementDependency.js +198 -0
  144. package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
  145. package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +10 -11
  146. package/lib/dependencies/{ImportMetaContextPlugin.js → context/ImportMetaContextPlugin.js} +5 -5
  147. package/lib/dependencies/{ImportMetaGlobDependency.js → context/ImportMetaGlobDependency.js} +7 -6
  148. package/lib/dependencies/{ImportMetaGlobDependencyParserPlugin.js → context/ImportMetaGlobDependencyParserPlugin.js} +7 -10
  149. package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +17 -19
  150. package/lib/dependencies/{RequireContextDependency.js → context/RequireContextDependency.js} +7 -6
  151. package/lib/dependencies/{RequireContextDependencyParserPlugin.js → context/RequireContextDependencyParserPlugin.js} +2 -2
  152. package/lib/dependencies/{RequireContextPlugin.js → context/RequireContextPlugin.js} +5 -5
  153. package/lib/dependencies/{CachedConstDependency.js → core/CachedConstDependency.js} +21 -17
  154. package/lib/dependencies/core/ConstDependency.js +131 -0
  155. package/lib/dependencies/{ImportPhase.js → core/ImportPhase.js} +5 -4
  156. package/lib/dependencies/{ModuleDependency.js → core/ModuleDependency.js} +10 -7
  157. package/lib/dependencies/{ModuleDependencyTemplateAsId.js → core/ModuleDependencyTemplateAsId.js} +3 -3
  158. package/lib/dependencies/{ModuleDependencyTemplateAsRequireId.js → core/ModuleDependencyTemplateAsRequireId.js} +2 -2
  159. package/lib/dependencies/{ModuleInitFragmentDependency.js → core/ModuleInitFragmentDependency.js} +10 -9
  160. package/lib/dependencies/core/NullDependency.js +44 -0
  161. package/lib/dependencies/{RuntimeRequirementsDependency.js → core/RuntimeRequirementsDependency.js} +10 -9
  162. package/lib/dependencies/{StaticExportsDependency.js → core/StaticExportsDependency.js} +15 -8
  163. package/lib/dependencies/{CssIcssExportDependency.js → css/CssIcssExportDependency.js} +375 -99
  164. package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +24 -19
  165. package/lib/dependencies/{CssIcssSymbolDependency.js → css/CssIcssSymbolDependency.js} +13 -12
  166. package/lib/dependencies/{CssImportDependency.js → css/CssImportDependency.js} +15 -11
  167. package/lib/dependencies/{CssUrlDependency.js → css/CssUrlDependency.js} +25 -22
  168. package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
  169. package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
  170. package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
  171. package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +29 -21
  172. package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +20 -20
  173. package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
  174. package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +60 -89
  175. package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +80 -45
  176. package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
  177. package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
  178. package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +146 -133
  179. package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
  180. package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +78 -37
  181. package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -12
  182. package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
  183. package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +86 -68
  184. package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +104 -100
  185. package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +36 -51
  186. package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
  187. package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +98 -60
  188. package/lib/dependencies/esm/ESMLiveExportDependency.js +311 -0
  189. package/lib/dependencies/esm/ESMLiveExportParserPlugin.js +862 -0
  190. package/lib/dependencies/esm/ESMModulesPlugin.js +205 -0
  191. package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
  192. package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -18
  193. package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +5 -7
  194. package/lib/{util → dependencies/helpers}/chainedImports.js +5 -5
  195. package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
  196. package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
  197. package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
  198. package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
  199. package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
  200. package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
  201. package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +52 -151
  202. package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -15
  203. package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -23
  204. package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -18
  205. package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
  206. package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
  207. package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
  208. package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
  209. package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +22 -25
  210. package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
  211. package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
  212. package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
  213. package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
  214. package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
  215. package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +122 -103
  216. package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
  217. package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
  218. package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
  219. package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
  220. package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +28 -20
  221. package/lib/{url → dependencies/url}/URLParserPlugin.js +17 -19
  222. package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
  223. package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
  224. package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
  225. package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
  226. package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +82 -53
  227. package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +22 -15
  228. package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +19 -18
  229. package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
  230. package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
  231. package/lib/devtool/ModuleFilenameHelpers.js +413 -0
  232. package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
  233. package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +155 -27
  234. package/lib/{util → devtool}/generateDebugId.js +1 -1
  235. package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
  236. package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
  237. package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
  238. package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
  239. package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
  240. package/lib/dll/DelegatedModule.js +23 -21
  241. package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
  242. package/lib/dll/DelegatedPlugin.js +1 -1
  243. package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
  244. package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
  245. package/lib/dll/DllEntryPlugin.js +3 -3
  246. package/lib/dll/DllModule.js +14 -10
  247. package/lib/dll/DllModuleFactory.js +3 -3
  248. package/lib/dll/DllPlugin.js +18 -6
  249. package/lib/dll/DllReferencePlugin.js +103 -30
  250. package/lib/dll/LibManifestPlugin.js +9 -7
  251. package/lib/electron/ElectronTargetPlugin.js +2 -2
  252. package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
  253. package/lib/{dependencies → entry}/EntryDependency.js +11 -2
  254. package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
  255. package/lib/entry/EntryPlugin.js +75 -0
  256. package/lib/errors/AbstractMethodError.js +1 -1
  257. package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
  258. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  259. package/lib/errors/BuildCycleError.js +1 -1
  260. package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
  261. package/lib/errors/ChunkRenderError.js +1 -1
  262. package/lib/errors/CodeGenerationError.js +1 -1
  263. package/lib/errors/CommentCompilationWarning.js +1 -1
  264. package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
  265. package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
  266. package/lib/errors/DeprecatedOptionWarning.js +30 -0
  267. package/lib/errors/DllManifestError.js +26 -0
  268. package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
  269. package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
  270. package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
  271. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  272. package/lib/{ErrorHelpers.js → errors/ErrorHelpers.js} +9 -6
  273. package/lib/errors/ExternalStarReexportError.js +2 -2
  274. package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
  275. package/lib/errors/HookWebpackError.js +6 -5
  276. package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
  277. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  278. package/lib/errors/JSONParseError.js +4 -4
  279. package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
  280. package/lib/errors/ModuleBuildError.js +1 -1
  281. package/lib/errors/ModuleDependencyError.js +2 -2
  282. package/lib/errors/ModuleDependencyWarning.js +2 -2
  283. package/lib/errors/ModuleError.js +1 -1
  284. package/lib/errors/ModuleHashingError.js +1 -1
  285. package/lib/errors/ModuleNotFoundError.js +3 -3
  286. package/lib/errors/ModuleParseError.js +1 -1
  287. package/lib/errors/ModuleRestoreError.js +1 -1
  288. package/lib/errors/ModuleStoreError.js +1 -1
  289. package/lib/errors/ModuleWarning.js +1 -1
  290. package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
  291. package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
  292. package/lib/errors/NodeStuffInWebError.js +7 -2
  293. package/lib/errors/PathVariableError.js +31 -0
  294. package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
  295. package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
  296. package/lib/errors/RuntimeModuleGenerationError.js +51 -0
  297. package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
  298. package/lib/errors/SystemImportDeprecationWarning.js +43 -0
  299. package/lib/errors/UnmergeableEntryExportsError.js +34 -0
  300. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  301. package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
  302. package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
  303. package/lib/errors/WebpackError.js +13 -3
  304. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
  305. package/lib/esm/ModuleChunkFormatPlugin.js +55 -20
  306. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
  307. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
  308. package/lib/{ExternalModule.js → externals/ExternalModule.js} +90 -63
  309. package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +42 -41
  310. package/lib/externals/ExternalsPlugin.js +99 -0
  311. package/lib/fs/FileSystemInfo.js +4642 -0
  312. package/lib/{util → fs}/fs.js +22 -9
  313. package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
  314. package/lib/graph/Chunk.js +985 -0
  315. package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +192 -80
  316. package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
  317. package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
  318. package/lib/graph/Dependency.js +634 -0
  319. package/lib/graph/Entrypoint.js +136 -0
  320. package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +131 -83
  321. package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
  322. package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +44 -33
  323. package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
  324. package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +169 -76
  325. package/lib/{util → graph}/findGraphRoots.js +15 -9
  326. package/lib/graph/isDependencyKind.js +23 -0
  327. package/lib/hmr/HotModuleReplacement.runtime.js +12 -11
  328. package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +51 -57
  329. package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
  330. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +25 -26
  331. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
  332. package/lib/hmr/LazyCompilationPlugin.js +32 -28
  333. package/lib/html/HtmlGenerator.js +132 -60
  334. package/lib/html/HtmlModule.js +16 -2
  335. package/lib/html/HtmlModulesPlugin.js +184 -87
  336. package/lib/html/HtmlParser.js +511 -160
  337. package/lib/html/builtinEmbeddedRenderer.js +70 -25
  338. package/lib/html/data.js +44 -22
  339. package/lib/html/htmlMinify.js +114 -41
  340. package/lib/html/syntax-parser.js +15795 -0
  341. package/lib/html/syntax-printer.js +1033 -0
  342. package/lib/html/syntax.js +37 -13952
  343. package/lib/html/xmlMinify.js +70 -0
  344. package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
  345. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  346. package/lib/ids/HashedModuleIdsPlugin.js +32 -5
  347. package/lib/ids/IdHelpers.js +4 -4
  348. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  349. package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
  350. package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
  351. package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
  352. package/lib/ids/SyncModuleIdsPlugin.js +3 -3
  353. package/lib/{util → ids}/numberHash.js +1 -1
  354. package/lib/index.js +312 -105
  355. package/lib/{APIPlugin.js → javascript/APIPlugin.js} +31 -37
  356. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
  357. package/lib/javascript/BasicEvaluatedExpression.js +9 -9
  358. package/lib/javascript/ChunkHelpers.js +64 -4
  359. package/lib/javascript/CommonJsChunkFormatPlugin.js +5 -13
  360. package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +7 -7
  361. package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +75 -8
  362. package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
  363. package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
  364. package/lib/javascript/JavascriptGenerator.js +32 -27
  365. package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +8 -20
  366. package/lib/javascript/JavascriptModule.js +14 -3
  367. package/lib/javascript/JavascriptModulesPlugin.js +441 -214
  368. package/lib/javascript/JavascriptParser.js +318 -144
  369. package/lib/javascript/JavascriptParserHelpers.js +1 -1
  370. package/lib/javascript/MergedEntryExports.js +196 -0
  371. package/lib/javascript/ScopeAnalyzer.js +3924 -13
  372. package/lib/javascript/StartupHelpers.js +6 -6
  373. package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +13 -19
  374. package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
  375. package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
  376. package/lib/javascript/data.js +533 -122
  377. package/lib/javascript/jsMinify.js +272 -0
  378. package/lib/javascript/regexp.js +67 -32
  379. package/lib/javascript/syntax-parser.js +19169 -0
  380. package/lib/javascript/syntax-printer-data.js +1099 -0
  381. package/lib/javascript/syntax-printer.js +53878 -0
  382. package/lib/javascript/syntax.js +20 -11274
  383. package/lib/json/JsonData.js +1 -1
  384. package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
  385. package/lib/json/JsonGenerator.js +24 -16
  386. package/lib/json/JsonModule.js +13 -2
  387. package/lib/json/JsonModulesPlugin.js +1 -1
  388. package/lib/json/JsonParser.js +11 -10
  389. package/lib/json/jsonMinify.js +69 -0
  390. package/lib/library/AbstractLibraryPlugin.js +28 -15
  391. package/lib/library/AmdLibraryPlugin.js +4 -4
  392. package/lib/library/AssignLibraryPlugin.js +28 -12
  393. package/lib/library/EnableLibraryPlugin.js +1 -1
  394. package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
  395. package/lib/library/JsonpLibraryPlugin.js +2 -2
  396. package/lib/library/LibraryTemplatePlugin.js +53 -0
  397. package/lib/library/ModuleLibraryPlugin.js +557 -187
  398. package/lib/library/SystemLibraryPlugin.js +6 -8
  399. package/lib/library/UmdLibraryPlugin.js +3 -4
  400. package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
  401. package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
  402. package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
  403. package/lib/{dependencies → loaders}/LoaderPlugin.js +2 -2
  404. package/lib/loaders/LoaderRunner.js +94 -46
  405. package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
  406. package/lib/loaders/loadLoader.js +16 -10
  407. package/lib/logging/Logger.js +7 -9
  408. package/lib/logging/ProgressPlugin.js +957 -0
  409. package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
  410. package/lib/{Generator.js → module/Generator.js} +33 -23
  411. package/lib/{Module.js → module/Module.js} +121 -53
  412. package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
  413. package/lib/module/NormalModule.js +2350 -0
  414. package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +64 -71
  415. package/lib/module/NullFactory.js +29 -0
  416. package/lib/{Parser.js → module/Parser.js} +12 -5
  417. package/lib/module/RawModule.js +208 -0
  418. package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
  419. package/lib/{util → module}/extractSourceMap.js +71 -20
  420. package/lib/{util → module}/findCaseMismatch.js +4 -4
  421. package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
  422. package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
  423. package/lib/{dependencies → node}/ExternalModuleInitFragment.js +7 -6
  424. package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
  425. package/lib/node/NodeEnvironmentPlugin.js +11 -1
  426. package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
  427. package/lib/node/NodeTargetPlugin.js +1 -1
  428. package/lib/node/NodeWatchFileSystem.js +58 -6
  429. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
  430. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +13 -19
  431. package/lib/node/ReadFileCompileWasmPlugin.js +9 -11
  432. package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
  433. package/lib/node/nodeConsole.js +6 -7
  434. package/lib/optimize/AggressiveMergingPlugin.js +2 -2
  435. package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
  436. package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +14 -14
  437. package/lib/optimize/ConcatenatedModule.js +231 -220
  438. package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
  439. package/lib/optimize/ConstExportsPlugin.js +7 -7
  440. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  441. package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
  442. package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +23 -28
  443. package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +44 -19
  444. package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
  445. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
  446. package/lib/optimize/InlineExports.js +12 -7
  447. package/lib/optimize/InnerGraph.js +5 -13
  448. package/lib/optimize/InnerGraphPlugin.js +10 -10
  449. package/lib/optimize/LazyBarrels.js +620 -0
  450. package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
  451. package/lib/optimize/LimitChunkCountPlugin.js +16 -7
  452. package/lib/optimize/MangleExportsPlugin.js +5 -5
  453. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
  454. package/lib/optimize/MinChunkSizePlugin.js +9 -6
  455. package/lib/optimize/ModuleConcatenationPlugin.js +28 -22
  456. package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
  457. package/lib/optimize/RealContentHashPlugin.js +18 -13
  458. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  459. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  460. package/lib/optimize/SideEffectsFlagPlugin.js +24 -38
  461. package/lib/optimize/SplitChunksPlugin.js +719 -174
  462. package/lib/{util → optimize}/TupleQueue.js +9 -9
  463. package/lib/optimize/chunkSetIntersections.js +437 -0
  464. package/lib/{util → optimize}/deterministicGrouping.js +17 -17
  465. package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
  466. package/lib/{CleanPlugin.js → output/CleanPlugin.js} +69 -25
  467. package/lib/{CopyPlugin.js → output/CopyPlugin.js} +144 -70
  468. package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
  469. package/lib/output/SSRManifestPlugin.js +349 -0
  470. package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
  471. package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
  472. package/lib/performance/BroadContextsPlugin.js +4 -4
  473. package/lib/performance/CacheEffectivenessPlugin.js +2 -3
  474. package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
  475. package/lib/performance/DuplicateModulesPlugin.js +3 -4
  476. package/lib/performance/DuplicatePackagesPlugin.js +3 -3
  477. package/lib/performance/DynamicExportsPlugin.js +2 -2
  478. package/lib/performance/EvalUsagePlugin.js +4 -6
  479. package/lib/performance/HotspotsPlugin.js +39 -14
  480. package/lib/performance/LargeModulesPlugin.js +2 -3
  481. package/lib/performance/LegacyJavascriptPlugin.js +1 -2
  482. package/lib/performance/MissingSideEffectsPlugin.js +2 -3
  483. package/lib/performance/MissingSourceMapsPlugin.js +5 -6
  484. package/lib/performance/PureAnnotationsPlugin.js +19 -13
  485. package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
  486. package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
  487. package/lib/performance/SizeLimitsPlugin.js +11 -12
  488. package/lib/performance/TopLevelThisPlugin.js +22 -13
  489. package/lib/performance/UnsplitVendorsPlugin.js +1 -2
  490. package/lib/performance/UnusedAliasesPlugin.js +6 -7
  491. package/lib/performance/UnusedAssetsPlugin.js +5 -5
  492. package/lib/performance/UnusedDefinesPlugin.js +2 -2
  493. package/lib/performance/UnusedExternalsPlugin.js +3 -4
  494. package/lib/performance/UnusedFederationPlugin.js +2 -4
  495. package/lib/performance/UnusedModulesPlugin.js +5 -4
  496. package/lib/performance/getModuleSize.js +1 -1
  497. package/lib/performance/hasOnlyUnusedExports.js +4 -4
  498. package/lib/performance/isOnlyReexported.js +7 -6
  499. package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
  500. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
  501. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -1
  502. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
  503. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
  504. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
  505. package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
  506. package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
  507. package/lib/prefetch/ResourceHintPlugin.js +66 -45
  508. package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
  509. package/lib/prefetch/StartupAssetHintRuntimeModule.js +3 -3
  510. package/lib/prefetch/parseResourceHintOptions.js +4 -3
  511. package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
  512. package/lib/{dependencies → provide}/ProvidedDependency.js +50 -17
  513. package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
  514. package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
  515. package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
  516. package/lib/resolve/getResolveOptionsKey.js +59 -0
  517. package/lib/rules/BasicEffectRulePlugin.js +1 -1
  518. package/lib/rules/RuleSetCompiler.js +42 -51
  519. package/lib/rules/UseEffectRulePlugin.js +1 -3
  520. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
  521. package/lib/runtime/AsyncModuleRuntimeModule.js +14 -5
  522. package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
  523. package/lib/runtime/BaseUriRuntimeModule.js +3 -3
  524. package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
  525. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
  526. package/lib/runtime/CompatRuntimeModule.js +4 -4
  527. package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
  528. package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
  529. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
  530. package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
  531. package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
  532. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
  533. package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
  534. package/lib/runtime/GetChunkFilenameRuntimeModule.js +7 -11
  535. package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
  536. package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
  537. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
  538. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
  539. package/lib/runtime/GlobalRuntimeModule.js +3 -3
  540. package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
  541. package/lib/runtime/HelperRuntimeModule.js +16 -1
  542. package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
  543. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +80 -17
  544. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
  545. package/lib/runtime/NonceRuntimeModule.js +2 -2
  546. package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
  547. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  548. package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
  549. package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +24 -1
  550. package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
  551. package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
  552. package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +50 -50
  553. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
  554. package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
  555. package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
  556. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
  557. package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
  558. package/lib/runtime/SystemContextRuntimeModule.js +2 -2
  559. package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
  560. package/lib/runtime/WorkerRuntimeModule.js +1 -1
  561. package/lib/runtime/baseUri.js +1 -1
  562. package/lib/schemes/DataUriPlugin.js +1 -1
  563. package/lib/schemes/HttpUriPlugin.js +68 -13
  564. package/lib/schemes/VirtualUrlPlugin.js +52 -16
  565. package/lib/serialization/AggregateErrorSerializer.js +4 -4
  566. package/lib/serialization/BinaryMiddleware.js +4 -1
  567. package/lib/serialization/ErrorObjectSerializer.js +2 -5
  568. package/lib/serialization/FileMiddleware.js +3 -3
  569. package/lib/serialization/ObjectMiddleware.js +62 -29
  570. package/lib/serialization/PlainObjectSerializer.js +3 -7
  571. package/lib/serialization/Serializer.js +21 -11
  572. package/lib/serialization/SerializerMiddleware.js +10 -8
  573. package/lib/serialization/SingleItemMiddleware.js +4 -2
  574. package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
  575. package/lib/sharing/ConsumeSharedModule.js +18 -14
  576. package/lib/sharing/ConsumeSharedPlugin.js +148 -42
  577. package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
  578. package/lib/sharing/ProvideForSharedDependency.js +9 -1
  579. package/lib/sharing/ProvideSharedDependency.js +1 -1
  580. package/lib/sharing/ProvideSharedModule.js +11 -9
  581. package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
  582. package/lib/sharing/ProvideSharedPlugin.js +111 -20
  583. package/lib/sharing/SharePlugin.js +102 -9
  584. package/lib/sharing/ShareRuntimeModule.js +6 -6
  585. package/lib/sharing/resolveMatchedConfigs.js +1 -1
  586. package/lib/{util → sharing}/semver.js +14 -16
  587. package/lib/sharing/utils.js +59 -2
  588. package/lib/stats/DefaultStatsFactoryPlugin.js +57 -54
  589. package/lib/stats/DefaultStatsPresetPlugin.js +3 -7
  590. package/lib/stats/DefaultStatsPrinterPlugin.js +15 -14
  591. package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
  592. package/lib/{Stats.js → stats/Stats.js} +4 -4
  593. package/lib/stats/StatsFactory.js +208 -37
  594. package/lib/stats/StatsPrinter.js +126 -13
  595. package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
  596. package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
  597. package/lib/template/DependencyTemplate.js +77 -0
  598. package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
  599. package/lib/template/InitFragment.js +223 -0
  600. package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
  601. package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
  602. package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
  603. package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +158 -95
  604. package/lib/{Template.js → template/Template.js} +14 -12
  605. package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +19 -23
  606. package/lib/typescript/TypeScriptPlugin.js +3 -3
  607. package/lib/util/RequestShortener.js +44 -0
  608. package/lib/util/SortableSet.js +87 -22
  609. package/lib/util/SourceProcessor.js +439 -51
  610. package/lib/util/TupleSet.js +27 -27
  611. package/lib/util/WeakTupleMap.js +20 -16
  612. package/lib/util/buildDiagnostics.js +2 -2
  613. package/lib/util/cleverMerge.js +61 -33
  614. package/lib/util/comparators.js +19 -15
  615. package/lib/util/concatenate.js +28 -147
  616. package/lib/util/createMappings.js +111 -0
  617. package/lib/util/dataURL.js +96 -15
  618. package/lib/util/deprecation.js +5 -4
  619. package/lib/util/extractComments.js +118 -0
  620. package/lib/util/formatLocation.js +1 -1
  621. package/lib/util/globUtils.js +198 -20
  622. package/lib/util/haltVisitors.js +51 -0
  623. package/lib/util/handlerKeys.js +2 -2
  624. package/lib/util/identifier.js +117 -1
  625. package/lib/util/implicitTypeLoaderFallback.js +6 -4
  626. package/lib/util/internalSerializables.js +296 -102
  627. package/lib/util/magicComment.js +12 -7
  628. package/lib/util/makeSerializable.js +28 -7
  629. package/lib/util/memoize.js +1 -1
  630. package/lib/util/parseJson.js +2 -2
  631. package/lib/util/preloadModuleType.js +5 -2
  632. package/lib/util/registerExternalSerializer.js +2 -2
  633. package/lib/util/removeBOM.js +1 -1
  634. package/lib/util/runtime.js +1 -1
  635. package/lib/util/serialization.js +35 -28
  636. package/lib/util/source.js +2 -2
  637. package/lib/util/terminalColors.js +161 -0
  638. package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
  639. package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
  640. package/lib/{wasm-async → wasm}/AsyncWasmModule.js +19 -5
  641. package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +17 -9
  642. package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +24 -15
  643. package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
  644. package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +14 -12
  645. package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
  646. package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +11 -13
  647. package/lib/wasm/wasmModuleFilename.js +2 -2
  648. package/lib/wasm-sync/SyncWasmModule.js +18 -3
  649. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +8 -8
  650. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
  651. package/lib/wasm-sync/WebAssemblyGenerator.js +22 -16
  652. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +28 -21
  653. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
  654. package/lib/wasm-sync/WebAssemblyParser.js +15 -17
  655. package/lib/wasm-sync/WebAssemblyUtils.js +6 -5
  656. package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
  657. package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
  658. package/lib/{Watching.js → watch/Watching.js} +8 -8
  659. package/lib/web/FetchCompileAsyncWasmPlugin.js +12 -18
  660. package/lib/web/FetchCompileWasmPlugin.js +8 -10
  661. package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
  662. package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
  663. package/lib/web/JsonpTemplatePlugin.js +1 -1
  664. package/lib/webpack.js +27 -17
  665. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
  666. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
  667. package/package.json +57 -36
  668. package/schemas/WebpackOptions.check.js +4 -3
  669. package/schemas/WebpackOptions.d.json.ts +2 -0
  670. package/schemas/WebpackOptions.json +295 -75
  671. package/schemas/plugins/BannerPlugin.check.js +4 -3
  672. package/schemas/plugins/BannerPlugin.json +29 -2
  673. package/schemas/plugins/HtmlGeneratorOptions.check.js +4 -3
  674. package/schemas/plugins/HtmlParserOptions.check.js +4 -3
  675. package/schemas/plugins/IgnorePlugin.check.js +4 -3
  676. package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
  677. package/schemas/plugins/IgnorePlugin.json +1 -1
  678. package/schemas/plugins/LoaderOptionsPlugin.check.js +4 -3
  679. package/schemas/plugins/ManifestPlugin.check.js +4 -3
  680. package/schemas/plugins/ManifestPlugin.json +3 -3
  681. package/schemas/plugins/ProgressPlugin.check.js +4 -3
  682. package/schemas/plugins/ProgressPlugin.json +2 -7
  683. package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
  684. package/schemas/plugins/SSRManifestPlugin.json +20 -0
  685. package/schemas/plugins/SourceMapDevToolPlugin.check.js +4 -3
  686. package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
  687. package/schemas/plugins/WatchIgnorePlugin.check.js +4 -3
  688. package/schemas/plugins/WatchIgnorePlugin.json +12 -3
  689. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +4 -3
  690. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +4 -3
  691. package/schemas/plugins/asset/AssetParserOptions.check.js +4 -3
  692. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +4 -3
  693. package/schemas/plugins/container/ContainerPlugin.check.js +4 -3
  694. package/schemas/plugins/container/ContainerPlugin.json +8 -0
  695. package/schemas/plugins/container/ContainerReferencePlugin.check.js +4 -3
  696. package/schemas/plugins/container/ExternalsType.check.js +4 -3
  697. package/schemas/plugins/container/ModuleFederationPlugin.check.js +4 -3
  698. package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
  699. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +4 -3
  700. package/schemas/plugins/css/CssGeneratorOptions.check.js +4 -3
  701. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +4 -3
  702. package/schemas/plugins/css/CssModuleParserOptions.check.js +4 -3
  703. package/schemas/plugins/css/CssParserOptions.check.js +4 -3
  704. package/schemas/plugins/debug/ProfilingPlugin.check.js +4 -3
  705. package/schemas/plugins/define/DotenvPluginOptions.check.js +7 -0
  706. package/schemas/plugins/define/DotenvPluginOptions.json +3 -0
  707. package/schemas/plugins/dll/DllPlugin.check.js +4 -3
  708. package/schemas/plugins/dll/DllReferencePlugin.check.js +4 -3
  709. package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
  710. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +4 -3
  711. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +4 -3
  712. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +4 -3
  713. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +4 -3
  714. package/schemas/plugins/json/JsonModulesPluginParser.check.js +4 -3
  715. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +4 -3
  716. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +4 -3
  717. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +4 -3
  718. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +4 -3
  719. package/schemas/plugins/output/CleanOptions.check.js +7 -0
  720. package/schemas/plugins/output/CleanOptions.json +3 -0
  721. package/schemas/plugins/schemes/HttpUriPlugin.check.js +4 -3
  722. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +4 -3
  723. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +4 -3
  724. package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
  725. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +4 -3
  726. package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
  727. package/schemas/plugins/sharing/SharePlugin.check.js +4 -3
  728. package/schemas/plugins/sharing/SharePlugin.json +32 -0
  729. package/types.d.ts +20780 -14174
  730. package/lib/LazyBarrel.js +0 -388
  731. package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
  732. package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
  733. package/lib/javascript/ChunkFormatHelpers.js +0 -72
  734. package/lib/javascript/grammar.js +0 -5546
  735. package/lib/javascript/parser.js +0 -1500
  736. package/lib/javascript/regexpData.js +0 -51
  737. package/lib/performance/getSourceModules.js +0 -22
  738. package/lib/util/Semaphore.js +0 -65
  739. package/lib/util/objectToMap.js +0 -15
  740. package/schemas/WebpackOptions.check.d.ts +0 -7
  741. package/schemas/_container.json +0 -155
  742. package/schemas/_sharing.json +0 -118
  743. package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
  744. package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
  745. package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
  746. package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
  747. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
  748. package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
  749. package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
  750. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
  751. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
  752. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
  753. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
  754. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
  755. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
  756. package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
  757. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
  758. package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
  759. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
  760. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
  761. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
  762. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
  763. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
  764. package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
  765. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
  766. package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
  767. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
  768. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
  769. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
  770. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
  771. package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
  772. package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
  773. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
  774. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
  775. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
  776. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
  777. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
  778. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
  779. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
  780. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
  781. package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
  782. /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
  783. /package/lib/{util → css}/topologicalSort.js +0 -0
  784. /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
  785. /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
  786. /package/lib/{util → fs}/StackedCacheMap.js +0 -0
  787. /package/lib/{util → javascript}/StackedMap.js +0 -0
  788. /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
  789. /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
  790. /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
  791. /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
  792. /package/lib/{util → optimize}/Queue.js +0 -0
  793. /package/lib/{util → stats}/smartGrouping.js +0 -0
@@ -17,39 +17,35 @@ const {
17
17
  SyncWaterfallHook
18
18
  } = require("tapable");
19
19
  const { CachedSource } = require("webpack-sources");
20
- const { MultiItemCache } = require("./CacheFacade");
21
- const Chunk = require("./Chunk");
22
- const ChunkGraph = require("./ChunkGraph");
23
- const ChunkGroup = require("./ChunkGroup");
24
- const ChunkTemplate = require("./ChunkTemplate");
25
- const CodeGenerationResults = require("./CodeGenerationResults");
26
- const Dependency = require("./Dependency");
27
- const DependencyTemplates = require("./DependencyTemplates");
28
- const Entrypoint = require("./Entrypoint");
29
- const ErrorHelpers = require("./ErrorHelpers");
30
-
31
- const { toError } = ErrorHelpers;
32
-
33
- const FileSystemInfo = require("./FileSystemInfo");
34
- const LazyBarrelController = require("./LazyBarrel");
35
- const MainTemplate = require("./MainTemplate");
36
- const Module = require("./Module");
37
- const ModuleGraph = require("./ModuleGraph");
38
- const ModuleProfile = require("./ModuleProfile");
39
- const ModuleTemplate = require("./ModuleTemplate");
40
- const { WEBPACK_MODULE_TYPE_RUNTIME } = require("./ModuleTypeConstants");
41
- const RuntimeGlobals = require("./RuntimeGlobals");
42
- const RuntimeTemplate = require("./RuntimeTemplate");
43
- const Stats = require("./Stats");
44
- const buildChunkGraph = require("./buildChunkGraph");
20
+ const { MultiItemCache } = require("./cache/CacheFacade");
21
+ const ErrorHelpers = require("./errors/ErrorHelpers");
45
22
  const {
46
23
  makeWebpackError,
47
24
  tryRunOrWebpackError
48
25
  } = require("./errors/HookWebpackError");
49
26
  const WebpackError = require("./errors/WebpackError");
27
+ const FileSystemInfo = require("./fs/FileSystemInfo");
28
+ const Chunk = require("./graph/Chunk");
29
+ const ChunkGraph = require("./graph/ChunkGraph");
30
+ const ChunkGroup = require("./graph/ChunkGroup");
31
+ const Dependency = require("./graph/Dependency");
32
+ const Entrypoint = require("./graph/Entrypoint");
33
+ const ModuleGraph = require("./graph/ModuleGraph");
34
+ const buildChunkGraph = require("./graph/buildChunkGraph");
50
35
  const { LogType, Logger } = require("./logging/Logger");
36
+ const CodeGenerationResults = require("./module/CodeGenerationResults");
37
+ const Module = require("./module/Module");
38
+ const ModuleProfile = require("./module/ModuleProfile");
39
+ const LazyBarrels = require("./optimize/LazyBarrels");
40
+ const RuntimeGlobals = require("./runtime/RuntimeGlobals");
41
+ const Stats = require("./stats/Stats");
51
42
  const StatsFactory = require("./stats/StatsFactory");
52
43
  const StatsPrinter = require("./stats/StatsPrinter");
44
+ const ChunkTemplate = require("./template/ChunkTemplate");
45
+ const DependencyTemplates = require("./template/DependencyTemplates");
46
+ const MainTemplate = require("./template/MainTemplate");
47
+ const ModuleTemplate = require("./template/ModuleTemplate");
48
+ const RuntimeTemplate = require("./template/RuntimeTemplate");
53
49
  const { equals: arrayEquals } = require("./util/ArrayHelpers");
54
50
  const AsyncQueue = require("./util/AsyncQueue");
55
51
  const LazySet = require("./util/LazySet");
@@ -106,6 +102,8 @@ const getChunkRenderError = memoize(() => require("./errors/ChunkRenderError"));
106
102
 
107
103
  const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
108
104
 
105
+ const { toError } = ErrorHelpers;
106
+
109
107
  /** @import { Source } from "webpack-sources" */
110
108
  /**
111
109
  * @import {
@@ -124,11 +122,11 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
124
122
  * OutputNormalizedWithDefaults as OutputOptionsWithDefaults
125
123
  * } from "./config/defaults"
126
124
  */
127
- /** @import AsyncDependenciesBlock from "./AsyncDependenciesBlock" */
128
- /** @import Cache from "./Cache" */
129
- /** @import CacheFacade from "./CacheFacade" */
130
- /** @import { ChunkName, ChunkId } from "./Chunk" */
131
- /** @import { ChunkGroupOptions } from "./ChunkGroup" */
125
+ /** @import AsyncDependenciesBlock from "./graph/AsyncDependenciesBlock" */
126
+ /** @import Cache from "./cache/Cache" */
127
+ /** @import CacheFacade from "./cache/CacheFacade" */
128
+ /** @import { ChunkName, ChunkId } from "./graph/Chunk" */
129
+ /** @import { ChunkGroupOptions } from "./graph/ChunkGroup" */
132
130
  /**
133
131
  * @import Compiler, {
134
132
  * CompilationParams,
@@ -138,9 +136,9 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
138
136
  * Records
139
137
  * } from "./Compiler"
140
138
  */
141
- /** @import DependenciesBlock from "./DependenciesBlock" */
142
- /** @import { DependencyLocation, ReferencedExports } from "./Dependency" */
143
- /** @typedef {import("./Entrypoint").EntryOptions} EntryOptions */
139
+ /** @import DependenciesBlock from "./graph/DependenciesBlock" */
140
+ /** @import { DependencyLocation, ReferencedExports } from "./graph/Dependency" */
141
+ /** @typedef {import("./graph/Entrypoint").EntryOptions} EntryOptions */
144
142
  /**
145
143
  * @import {
146
144
  * NameForCondition,
@@ -151,7 +149,7 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
151
149
  * SourceType,
152
150
  * FactoryMeta,
153
151
  * CodeGenerationResult
154
- * } from "./Module"
152
+ * } from "./module/Module"
155
153
  */
156
154
  /**
157
155
  * @import NormalModule, {
@@ -159,19 +157,25 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
159
157
  * AnyLoaderContext,
160
158
  * ParserOptions,
161
159
  * GeneratorOptions
162
- * } from "./NormalModule"
160
+ * } from "./module/NormalModule"
163
161
  */
164
162
  /**
165
163
  * @import ModuleFactory, {
166
164
  * ModuleFactoryCreateDataContextInfo,
167
165
  * ModuleFactoryResult
168
- * } from "./ModuleFactory"
166
+ * } from "./module/ModuleFactory"
167
+ */
168
+ /** @import { ModuleId } from "./graph/ChunkGraph" */
169
+ /** @import ModuleGraphConnection from "./graph/ModuleGraphConnection" */
170
+ /** @import RequestShortener from "./util/RequestShortener" */
171
+ /** @import RuntimeModule from "./runtime/RuntimeModule" */
172
+ /**
173
+ * @import {
174
+ * RenderManifestEntry,
175
+ * RenderManifestEntryTemplated,
176
+ * RenderManifestOptions
177
+ * } from "./template/Template"
169
178
  */
170
- /** @import { ModuleId } from "./ChunkGraph" */
171
- /** @import ModuleGraphConnection from "./ModuleGraphConnection" */
172
- /** @import RequestShortener from "./RequestShortener" */
173
- /** @import RuntimeModule from "./RuntimeModule" */
174
- /** @import { RenderManifestEntry, RenderManifestOptions } from "./Template" */
175
179
 
176
180
  /**
177
181
  * One language's source embedded in another's output.
@@ -185,6 +189,7 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
185
189
  * @import {
186
190
  * StatsAsset,
187
191
  * StatsError,
192
+ * StatsJsonValue,
188
193
  * StatsModule
189
194
  * } from "./stats/DefaultStatsFactoryPlugin"
190
195
  */
@@ -202,7 +207,7 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
202
207
  * @typedef {import("./util/deprecation").FakeHook<T>} FakeHook<T>
203
208
  */
204
209
  /** @import { RuntimeSpec } from "./util/runtime" */
205
- /** @import { InputFileSystem } from "./util/fs" */
210
+ /** @import { InputFileSystem } from "./fs/fs" */
206
211
 
207
212
  /**
208
213
  * Defines the callback callback.
@@ -243,7 +248,7 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
243
248
  * @returns {void}
244
249
  */
245
250
 
246
- /** @typedef {new (...args: EXPECTED_ANY[]) => Dependency} DependencyConstructor */
251
+ /** @typedef {abstract new (...args: never[]) => Dependency} DependencyConstructor */
247
252
 
248
253
  /** @typedef {Record<string, Source>} CompilationAssets */
249
254
 
@@ -523,7 +528,7 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
523
528
  * @property {false | "none" | "error" | "warn" | "info" | "log" | "verbose"} logging
524
529
  * @property {((value: string) => boolean)[]} loggingDebug
525
530
  * @property {boolean} loggingTrace
526
- * @property {EXPECTED_ANY} _env
531
+ * @property {StatsJsonValue} _env
527
532
  */
528
533
 
529
534
  /** @typedef {KnownNormalizedStatsOptions & Omit<StatsOptions, keyof KnownNormalizedStatsOptions> & Record<string, EXPECTED_ANY>} NormalizedStatsOptions */
@@ -547,9 +552,7 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
547
552
  /** @type {AssetInfo} */
548
553
  const EMPTY_ASSET_INFO = Object.freeze({});
549
554
 
550
- const esmDependencyCategory = "esm";
551
-
552
- // TODO webpack 6: remove
555
+ // TODO in the next major release: remove
553
556
  const deprecatedNormalModuleLoaderHook = util.deprecate(
554
557
  /**
555
558
  * Handles the callback logic for this hook.
@@ -557,12 +560,12 @@ const deprecatedNormalModuleLoaderHook = util.deprecate(
557
560
  * @returns {NormalModuleCompilationHooks["loader"]} hooks
558
561
  */
559
562
  (compilation) =>
560
- require("./NormalModule").getCompilationHooks(compilation).loader,
563
+ require("./module/NormalModule").getCompilationHooks(compilation).loader,
561
564
  "Compilation.hooks.normalModuleLoader was moved to NormalModule.getCompilationHooks(compilation).loader",
562
565
  "DEP_WEBPACK_COMPILATION_NORMAL_MODULE_LOADER_HOOK"
563
566
  );
564
567
 
565
- // TODO webpack 6: remove
568
+ // TODO in the next major release: remove
566
569
  /**
567
570
  * Define removed module templates.
568
571
  * @param {ModuleTemplates | undefined} moduleTemplates module templates
@@ -631,11 +634,19 @@ const unsafeCacheData = new WeakMap();
631
634
  const dependencyReportCacheTokens = new WeakMap();
632
635
 
633
636
  /**
634
- * Modules known to have no dependency errors/warnings, per cache token.
635
- * @type {WeakMap<DependencyReportCacheToken, WeakSet<Module>>}
637
+ * Modules known to have no dependency errors/warnings, per cache token, with
638
+ * the deferred requests they were checked with (`true` for none).
639
+ * @type {WeakMap<DependencyReportCacheToken, WeakMap<Module, string | true>>}
636
640
  */
637
641
  const modulesWithoutProblems = new WeakMap();
638
642
 
643
+ /**
644
+ * How many connections each stored reference map holds, so a module whose
645
+ * connection is gone or new, not only one pointing elsewhere, counts as affected.
646
+ * @type {WeakMap<WeakReferences, number>}
647
+ */
648
+ const referenceCounts = new WeakMap();
649
+
639
650
  /**
640
651
  * Reduce affect type.
641
652
  * @param {Readonly<ModuleGraphConnection[]>} connections connections
@@ -653,9 +664,13 @@ const reduceAffectType = (connections) => {
653
664
  return affected;
654
665
  };
655
666
 
656
- /** @typedef {{ id: ModuleId, modules?: Map<Module, ModuleId>, blocks?: (ChunkId | null)[], sourceTypes?: SourceTypes }} References */
667
+ /** @typedef {{ id: ModuleId, modules?: Map<Module, string>, blocks?: (ChunkId | null)[], sourceTypes?: SourceTypes, chunkSourceTypes?: string }} References */
657
668
  /** @typedef {Map<Module, WeakTupleMap<EXPECTED_ANY[], EXPECTED_ANY>>} ModuleMemCaches */
658
- /** @typedef {{ chunk: Chunk, load: () => Promise<EXPECTED_ANY>, create: (loaded: EXPECTED_ANY) => RuntimeModule, chunkGraph: ChunkGraph }} PendingRuntimeModule */
669
+ /**
670
+ * A queued lazy runtime module; `create` takes exactly what its own `load`
671
+ * resolves, which differs per entry.
672
+ * @typedef {{ chunk: Chunk, load: () => Promise<EXPECTED_OBJECT>, create: (loaded: never) => RuntimeModule, chunkGraph: ChunkGraph }} PendingRuntimeModule
673
+ */
659
674
 
660
675
  class Compilation {
661
676
  /**
@@ -906,7 +921,11 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
906
921
  processAssetsHook.tapAsync(
907
922
  getOptions(options),
908
923
  (assets, callback) =>
909
- /** @type {EXPECTED_ANY} */ (fn)(...getArgs(), callback)
924
+ /** @type {(...args: [...AsArray<T>, typeof callback]) => void} */ (
925
+ /** @type {typeof fn | ((...args: [...AsArray<T>, typeof callback]) => void)} */ (
926
+ fn
927
+ )
928
+ )(...getArgs(), callback)
910
929
  );
911
930
  },
912
931
  /** @type {AsyncSeriesHook<T>["tapPromise"]} */
@@ -1101,7 +1120,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1101
1120
  shouldGenerateChunkAssets: new SyncBailHook([]),
1102
1121
  /** @type {SyncHook<[]>} */
1103
1122
  beforeChunkAssets: new SyncHook([]),
1104
- // TODO webpack 6 remove
1123
+ // TODO in the next major release: remove
1105
1124
  /** @deprecated */
1106
1125
  additionalChunkAssets:
1107
1126
  /** @type {FakeHook<Pick<AsyncSeriesHook<[Chunks]>, "tap" | "tapAsync" | "tapPromise" | "name">>} */
@@ -1114,7 +1133,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1114
1133
  )
1115
1134
  ),
1116
1135
 
1117
- // TODO webpack 6 deprecate
1136
+ // TODO in the next major release: deprecate
1118
1137
  /** @deprecated */
1119
1138
  additionalAssets:
1120
1139
  /** @type {FakeHook<Pick<AsyncSeriesHook<[]>, "tap" | "tapAsync" | "tapPromise" | "name">>} */
@@ -1125,7 +1144,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1125
1144
  () => []
1126
1145
  )
1127
1146
  ),
1128
- // TODO webpack 6 remove
1147
+ // TODO in the next major release: remove
1129
1148
  /** @deprecated */
1130
1149
  optimizeChunkAssets:
1131
1150
  /** @type {FakeHook<Pick<AsyncSeriesHook<[Chunks]>, "tap" | "tapAsync" | "tapPromise" | "name">>} */
@@ -1137,7 +1156,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1137
1156
  "DEP_WEBPACK_COMPILATION_OPTIMIZE_CHUNK_ASSETS"
1138
1157
  )
1139
1158
  ),
1140
- // TODO webpack 6 remove
1159
+ // TODO in the next major release: remove
1141
1160
  /** @deprecated */
1142
1161
  afterOptimizeChunkAssets:
1143
1162
  /** @type {FakeHook<Pick<AsyncSeriesHook<[Chunks]>, "tap" | "tapAsync" | "tapPromise" | "name">>} */
@@ -1149,10 +1168,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1149
1168
  "DEP_WEBPACK_COMPILATION_AFTER_OPTIMIZE_CHUNK_ASSETS"
1150
1169
  )
1151
1170
  ),
1152
- // TODO webpack 6 deprecate
1171
+ // TODO in the next major release: deprecate
1153
1172
  /** @deprecated */
1154
1173
  optimizeAssets: processAssetsHook,
1155
- // TODO webpack 6 deprecate
1174
+ // TODO in the next major release: deprecate
1156
1175
  /** @deprecated */
1157
1176
  afterOptimizeAssets: afterProcessAssetsHook,
1158
1177
 
@@ -1464,6 +1483,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1464
1483
  this._restoredUnsafeCacheEntries = new Map();
1465
1484
  /** @type {WeakSet<Module>} */
1466
1485
  this.builtModules = new WeakSet();
1486
+ // a module whose dependency failed to resolve reports nothing for it now,
1487
+ // but will once the target exists, which needs no module to be rebuilt
1488
+ /** @type {Set<Module>} */
1489
+ this._modulesWithUnresolvedDependencies = new Set();
1467
1490
  /** @type {WeakSet<Module>} */
1468
1491
  this.codeGeneratedModules = new WeakSet();
1469
1492
  /** @type {WeakSet<Module>} */
@@ -1482,7 +1505,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1482
1505
  this.buildDependencies = new LazySet();
1483
1506
  /** @type {FileSystemDependencies} */
1484
1507
  this.optionalBuildDependencies = new LazySet();
1485
- // TODO webpack 6 remove
1508
+ // TODO in the next major release: remove
1486
1509
  /**
1487
1510
  * @deprecated
1488
1511
  * @type {{ add: (item: string) => FileSystemDependencies }}
@@ -1516,8 +1539,8 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1516
1539
  this._unsafeCachePredicate =
1517
1540
  typeof unsafeCache === "function" ? unsafeCache : () => true;
1518
1541
 
1519
- /** @type {LazyBarrelController} */
1520
- this._lazyBarrelController = new LazyBarrelController(this);
1542
+ /** @type {LazyBarrels} */
1543
+ this._lazyBarrels = new LazyBarrels(this);
1521
1544
  }
1522
1545
 
1523
1546
  getStats() {
@@ -1841,8 +1864,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1841
1864
  this.options,
1842
1865
  this,
1843
1866
  this.resolverFactory.get("normal", module.resolveOptions),
1844
- /** @type {InputFileSystem} */
1845
- (this.inputFileSystem),
1867
+ this.inputFileSystem,
1846
1868
  (err) => {
1847
1869
  if (currentProfile !== undefined) {
1848
1870
  currentProfile.markBuildingEnd();
@@ -1930,7 +1952,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1930
1952
  );
1931
1953
 
1932
1954
  // lazy barrel: defer re-export targets of side-effect-free modules
1933
- const hasLazyBarrel = this._lazyBarrelController.classify(module);
1955
+ const hasLazyBarrel = this._lazyBarrels.classify(module);
1934
1956
 
1935
1957
  /** @type {DependenciesBlock} */
1936
1958
  let currentBlock;
@@ -2011,15 +2033,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2011
2033
  */
2012
2034
  const processDependency = (dep, index) => {
2013
2035
  this.moduleGraph.setParents(dep, currentBlock, module, index);
2014
- if (
2015
- hasLazyBarrel &&
2016
- // TODO remove in webpack 6
2017
- // It may be missing on custom dependency types not extending the base Dependency
2018
- "isLazy" in dep &&
2019
- dep.isLazy()
2020
- ) {
2021
- return;
2022
- }
2036
+ if (hasLazyBarrel && this._lazyBarrels.isLazy(dep)) return;
2023
2037
 
2024
2038
  if (this._unsafeCache) {
2025
2039
  try {
@@ -2034,7 +2048,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2034
2048
  dep,
2035
2049
  unsafeCachedModule
2036
2050
  );
2037
- this._lazyBarrelController.unlazyForDependency(
2051
+ this._lazyBarrels.unlazyForDependency(
2038
2052
  unsafeCachedModule,
2039
2053
  dep,
2040
2054
  sortedDependencies
@@ -2052,7 +2066,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2052
2066
  dep,
2053
2067
  cachedModule
2054
2068
  );
2055
- this._lazyBarrelController.unlazyForDependency(
2069
+ this._lazyBarrels.unlazyForDependency(
2056
2070
  cachedModule,
2057
2071
  dep,
2058
2072
  sortedDependencies
@@ -2117,7 +2131,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2117
2131
  dep,
2118
2132
  cachedModule
2119
2133
  ); // a3
2120
- this._lazyBarrelController.unlazyForDependency(
2134
+ this._lazyBarrels.unlazyForDependency(
2121
2135
  cachedModule,
2122
2136
  dep,
2123
2137
  sortedDependencies
@@ -2198,7 +2212,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2198
2212
  // mostly esm dependencies would be used
2199
2213
  // so we don't allocate extra string for them
2200
2214
  const cacheKey =
2201
- category === esmDependencyCategory
2215
+ category === Dependency.ESM_CATEGORY
2202
2216
  ? resourceIdent
2203
2217
  : `${category}${resourceIdent}`;
2204
2218
  let list = /** @type {FactoryCacheValue} */ (factoryCacheValue).get(
@@ -2347,7 +2361,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2347
2361
  },
2348
2362
  (err, result) => {
2349
2363
  if (result) {
2350
- // TODO webpack 6: remove
2364
+ // TODO in the next major release: remove
2351
2365
  // For backward-compat
2352
2366
  if (result.module === undefined && result instanceof Module) {
2353
2367
  result = {
@@ -2467,6 +2481,30 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2467
2481
  context
2468
2482
  },
2469
2483
  (err, factoryResult) => {
2484
+ // Loader-created modules have no origin connection to resolve again.
2485
+ // Preserve their resolution dependencies in the caller's build snapshot.
2486
+ if (
2487
+ factoryResult &&
2488
+ !connectOrigin &&
2489
+ originModule &&
2490
+ originModule.buildInfo &&
2491
+ this.buildQueue.isProcessing(originModule)
2492
+ ) {
2493
+ for (const key of /** @type {const} */ ([
2494
+ "fileDependencies",
2495
+ "contextDependencies",
2496
+ "missingDependencies"
2497
+ ])) {
2498
+ const dependencies = factoryResult[key];
2499
+ if (dependencies) {
2500
+ let target = originModule.buildInfo[key];
2501
+ if (target === undefined) {
2502
+ originModule.buildInfo[key] = target = new LazySet();
2503
+ }
2504
+ target.addAll(dependencies);
2505
+ }
2506
+ }
2507
+ }
2470
2508
  const applyFactoryResultDependencies = () => {
2471
2509
  const { fileDependencies, contextDependencies, missingDependencies } =
2472
2510
  /** @type {ModuleFactoryResult} */ (factoryResult);
@@ -2482,6 +2520,9 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2482
2520
  };
2483
2521
  if (err) {
2484
2522
  if (factoryResult) applyFactoryResultDependencies();
2523
+ if (originModule) {
2524
+ this._modulesWithUnresolvedDependencies.add(originModule);
2525
+ }
2485
2526
  if (dependencies.every((d) => d.optional)) {
2486
2527
  this.warnings.push(err);
2487
2528
  return callback();
@@ -2524,9 +2565,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2524
2565
  module.restoreFromUnsafeCache &&
2525
2566
  this._unsafeCachePredicate(module)
2526
2567
  ) {
2527
- const unsafeCacheableModule =
2528
- /** @type {ModuleWithRestoreFromUnsafeCache} */
2529
- (module);
2568
+ const unsafeCacheableModule = module;
2530
2569
  for (const dependency of dependencies) {
2531
2570
  moduleGraph.setResolvedModule(
2532
2571
  connectOrigin ? originModule : null,
@@ -2662,10 +2701,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2662
2701
  // lazy barrel: on the first call the module is unclassified, so this only
2663
2702
  // records the ids and `processModuleDependencies` replays them. Later the
2664
2703
  // module is built and never re-walked, so the targets are built here.
2665
- const unlazyItems = this._lazyBarrelController.request(
2666
- module,
2667
- dependencies
2668
- );
2704
+ const unlazyItems = this._lazyBarrels.request(module, dependencies);
2669
2705
 
2670
2706
  if (unlazyItems !== undefined) {
2671
2707
  let inProgress = unlazyItems.length + 1; // +1 = the module's own dep processing
@@ -2783,7 +2819,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2783
2819
  * @returns {void} returns
2784
2820
  */
2785
2821
  addEntry(context, entry, optionsOrName, callback) {
2786
- // TODO webpack 6 remove
2822
+ // TODO in the next major release: remove
2787
2823
  const options =
2788
2824
  typeof optionsOrName === "object"
2789
2825
  ? optionsOrName
@@ -2947,6 +2983,18 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2947
2983
  });
2948
2984
  }
2949
2985
 
2986
+ /**
2987
+ * Returns the requests a lazy barrel still defers, which neither render nor
2988
+ * report what they would once requested, though no connection changes.
2989
+ * @private
2990
+ * @param {Module} module the module
2991
+ * @returns {string | undefined} the deferred requests as one key, if any
2992
+ */
2993
+ _getLazyRequests(module) {
2994
+ const lazyRequests = this._lazyBarrels.getLazyRequests(module);
2995
+ return lazyRequests && JSON.stringify([...lazyRequests]);
2996
+ }
2997
+
2950
2998
  /**
2951
2999
  * Compute affected modules.
2952
3000
  * @private
@@ -2978,13 +3026,16 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2978
3026
  const computeReferences = (module) => {
2979
3027
  /** @type {WeakReferences | undefined} */
2980
3028
  let references;
3029
+ let count = 0;
2981
3030
  for (const connection of moduleGraph.getOutgoingConnections(module)) {
2982
3031
  const d = connection.dependency;
2983
3032
  const m = connection.module;
2984
3033
  if (!d || !m || unsafeCacheDependencies.has(d)) continue;
2985
3034
  if (references === undefined) references = new WeakMap();
2986
3035
  references.set(d, m);
3036
+ count++;
2987
3037
  }
3038
+ if (references !== undefined) referenceCounts.set(references, count);
2988
3039
  return references;
2989
3040
  };
2990
3041
 
@@ -2995,15 +3046,21 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2995
3046
  * @returns {boolean} true, when the references differ
2996
3047
  */
2997
3048
  const compareReferences = (module, references) => {
2998
- if (references === undefined) return true;
3049
+ let count = 0;
2999
3050
  for (const connection of moduleGraph.getOutgoingConnections(module)) {
3000
3051
  const d = connection.dependency;
3001
3052
  if (!d) continue;
3002
- const entry = references.get(d);
3003
- if (entry === undefined) continue;
3004
- if (entry !== connection.module) return false;
3053
+ const entry = references === undefined ? undefined : references.get(d);
3054
+ if (entry === connection.module) {
3055
+ count++;
3056
+ } else if (entry !== undefined || !unsafeCacheDependencies.has(d)) {
3057
+ return false;
3058
+ }
3005
3059
  }
3006
- return true;
3060
+ return (
3061
+ count ===
3062
+ (references === undefined ? 0 : referenceCounts.get(references))
3063
+ );
3007
3064
  };
3008
3065
 
3009
3066
  const modulesWithoutCache = new Set(modules);
@@ -3011,6 +3068,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3011
3068
  if (modulesWithoutCache.has(module)) {
3012
3069
  const buildInfo = module.buildInfo;
3013
3070
  if (buildInfo) {
3071
+ const lazyRequests = this._getLazyRequests(module);
3014
3072
  if (cachedMemCache.buildInfo !== buildInfo) {
3015
3073
  // use a new one
3016
3074
  /** @type {MemCache} */
@@ -3019,15 +3077,20 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3019
3077
  affectedModules.add(module);
3020
3078
  cachedMemCache.buildInfo = buildInfo;
3021
3079
  cachedMemCache.references = computeReferences(module);
3080
+ cachedMemCache.lazyRequests = lazyRequests;
3022
3081
  cachedMemCache.memCache = memCache;
3023
3082
  statChanged++;
3024
- } else if (!compareReferences(module, cachedMemCache.references)) {
3083
+ } else if (
3084
+ !compareReferences(module, cachedMemCache.references) ||
3085
+ cachedMemCache.lazyRequests !== lazyRequests
3086
+ ) {
3025
3087
  // use a new one
3026
3088
  /** @type {MemCache} */
3027
3089
  const memCache = new WeakTupleMap();
3028
3090
  moduleMemCaches.set(module, memCache);
3029
3091
  affectedModules.add(module);
3030
3092
  cachedMemCache.references = computeReferences(module);
3093
+ cachedMemCache.lazyRequests = lazyRequests;
3031
3094
  cachedMemCache.memCache = memCache;
3032
3095
  statReferencesChanged++;
3033
3096
  } else {
@@ -3054,6 +3117,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3054
3117
  moduleMemCacheCache.set(module, {
3055
3118
  buildInfo,
3056
3119
  references: computeReferences(module),
3120
+ lazyRequests: this._getLazyRequests(module),
3057
3121
  memCache
3058
3122
  });
3059
3123
  moduleMemCaches.set(module, memCache);
@@ -3132,6 +3196,31 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3132
3196
  let statUnchanged = 0;
3133
3197
  let statChanged = 0;
3134
3198
  let statNew = 0;
3199
+ /**
3200
+ * Include async state and connection activity, which can change without changing module ids.
3201
+ * @param {Module} module connected module
3202
+ * @param {readonly ModuleGraphConnection[]} connections connections to it
3203
+ * @returns {string} reference key
3204
+ */
3205
+ const referenceKey = (module, connections) => {
3206
+ let key = `${chunkGraph.getModuleId(module)}${moduleGraph.isAsync(module)}`;
3207
+ for (const connection of connections) {
3208
+ const state = connection.getActiveState(undefined);
3209
+ key += state === true ? "T" : state === false ? "F" : "O";
3210
+ }
3211
+ return key;
3212
+ };
3213
+ /**
3214
+ * Key the source types the chunk graph overrides for the module, which module concatenation narrows for an inner module that keeps other source types.
3215
+ * @param {Module} module module
3216
+ * @returns {string | undefined} key, undefined when the module's own source types stand
3217
+ */
3218
+ const chunkSourceTypesKey = (module) => {
3219
+ const sourceTypes = chunkGraph.getModuleSourceTypes(module);
3220
+ return sourceTypes === module.getSourceTypes()
3221
+ ? undefined
3222
+ : [...sourceTypes].join();
3223
+ };
3135
3224
  /**
3136
3225
  * Compute references.
3137
3226
  * @param {Module} module module
@@ -3139,16 +3228,19 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3139
3228
  */
3140
3229
  const computeReferences = (module) => {
3141
3230
  const id = /** @type {ModuleId} */ (chunkGraph.getModuleId(module));
3142
- /** @type {Map<Module, ModuleId> | undefined} */
3231
+ /** @type {Map<Module, string> | undefined} */
3143
3232
  let modules;
3144
3233
  /** @type {(ChunkId | null)[] | undefined} */
3145
3234
  let blocks;
3146
3235
  const outgoing = moduleGraph.getOutgoingConnectionsByModule(module);
3147
3236
  if (outgoing !== undefined) {
3148
- for (const m of outgoing.keys()) {
3149
- if (!m) continue;
3237
+ for (const [referencedModule, connections] of outgoing) {
3238
+ if (!referencedModule) continue;
3150
3239
  if (modules === undefined) modules = new Map();
3151
- modules.set(m, /** @type {ModuleId} */ (chunkGraph.getModuleId(m)));
3240
+ modules.set(
3241
+ referencedModule,
3242
+ referenceKey(referencedModule, connections)
3243
+ );
3152
3244
  }
3153
3245
  }
3154
3246
  if (module.blocks.length > 0) {
@@ -3171,7 +3263,8 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3171
3263
  id,
3172
3264
  modules,
3173
3265
  blocks,
3174
- sourceTypes: module.getReferencedSourceTypes()
3266
+ sourceTypes: module.getReferencedSourceTypes(),
3267
+ chunkSourceTypes: chunkSourceTypesKey(module)
3175
3268
  };
3176
3269
  };
3177
3270
  /**
@@ -3179,19 +3272,27 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3179
3272
  * @param {Module} module module
3180
3273
  * @param {object} references references
3181
3274
  * @param {string | number} references.id id
3182
- * @param {Map<Module, string | number | undefined>=} references.modules modules
3275
+ * @param {Map<Module, string>=} references.modules modules
3183
3276
  * @param {(string | number | null)[]=} references.blocks blocks
3184
3277
  * @param {SourceTypes=} references.sourceTypes connection-dependent source types
3278
+ * @param {string=} references.chunkSourceTypes key of the source types the chunk graph overrides
3185
3279
  * @returns {boolean} ok?
3186
3280
  */
3187
3281
  const compareReferences = (
3188
3282
  module,
3189
- { id, modules, blocks, sourceTypes }
3283
+ { id, modules, blocks, sourceTypes, chunkSourceTypes }
3190
3284
  ) => {
3191
3285
  if (id !== chunkGraph.getModuleId(module)) return false;
3192
3286
  if (modules !== undefined) {
3193
- for (const [module, id] of modules) {
3194
- if (chunkGraph.getModuleId(module) !== id) return false;
3287
+ const outgoing = moduleGraph.getOutgoingConnectionsByModule(module);
3288
+ for (const [referencedModule, key] of modules) {
3289
+ const connections = outgoing && outgoing.get(referencedModule);
3290
+ if (
3291
+ connections === undefined ||
3292
+ referenceKey(referencedModule, connections) !== key
3293
+ ) {
3294
+ return false;
3295
+ }
3195
3296
  }
3196
3297
  }
3197
3298
  if (blocks !== undefined) {
@@ -3218,6 +3319,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3218
3319
  ) {
3219
3320
  return false;
3220
3321
  }
3322
+ if (chunkSourceTypesKey(module) !== chunkSourceTypes) return false;
3221
3323
  return true;
3222
3324
  };
3223
3325
 
@@ -3253,6 +3355,35 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3253
3355
  );
3254
3356
  }
3255
3357
 
3358
+ /**
3359
+ * Returns the modules whose dependency report depends on a dependency that
3360
+ * failed to resolve: they must not be remembered as clean, as the target can
3361
+ * appear without any of them being rebuilt.
3362
+ * @private
3363
+ * @returns {Set<Module>} the modules with such a dependency and their parents
3364
+ */
3365
+ _modulesReportingUnresolved() {
3366
+ const result = new Set(this._modulesWithUnresolvedDependencies);
3367
+ if (result.size === 0) return result;
3368
+ const { moduleGraph } = this;
3369
+ // as the token walk does, only a transitive connection reaches further up;
3370
+ // a parent first reached directly may still be reached transitively later
3371
+ const queued = new Set(result);
3372
+ for (const module of queued) {
3373
+ for (const [
3374
+ referencingModule,
3375
+ connections
3376
+ ] of moduleGraph.getIncomingConnectionsByOriginModule(module)) {
3377
+ if (!referencingModule) continue;
3378
+ result.add(referencingModule);
3379
+ if (reduceAffectType(connections) === Dependency.TRANSITIVE) {
3380
+ queued.add(referencingModule);
3381
+ }
3382
+ }
3383
+ }
3384
+ return result;
3385
+ }
3386
+
3256
3387
  /**
3257
3388
  * Assigns a fresh dependency report cache token to every module whose
3258
3389
  * dependency errors/warnings could have changed since the previous
@@ -3398,20 +3529,24 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3398
3529
  if (d === 0 || p === 0) continue;
3399
3530
  const t = d / p;
3400
3531
  sum += t;
3401
- if (t <= 10) continue;
3532
+ /* istanbul ignore next -- @preserve: only slow (>10ms) modules are logged, timing-dependent */
3533
+ if (t > 10) {
3534
+ logByValue(
3535
+ t,
3536
+ ` | ${Math.round(t)} ms${
3537
+ p >= 1.1 ? ` (parallelism ${Math.round(p * 10) / 10})` : ""
3538
+ } ${category} > ${module.readableIdentifier(this.requestShortener)}`
3539
+ );
3540
+ max = Math.max(max, t);
3541
+ }
3542
+ }
3543
+ /* istanbul ignore next -- @preserve: only slow (>10ms) categories are logged, timing-dependent */
3544
+ if (sum > 10) {
3402
3545
  logByValue(
3403
- t,
3404
- ` | ${Math.round(t)} ms${
3405
- p >= 1.1 ? ` (parallelism ${Math.round(p * 10) / 10})` : ""
3406
- } ${category} > ${module.readableIdentifier(this.requestShortener)}`
3546
+ Math.max(sum / 10, max),
3547
+ `${Math.round(sum)} ms ${category}`
3407
3548
  );
3408
- max = Math.max(max, t);
3409
3549
  }
3410
- if (sum <= 10) return;
3411
- logByValue(
3412
- Math.max(sum / 10, max),
3413
- `${Math.round(sum)} ms ${category}`
3414
- );
3415
3550
  };
3416
3551
  /**
3417
3552
  * Log by loaders summary.
@@ -3456,30 +3591,34 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3456
3591
  }
3457
3592
  }
3458
3593
  sum += innerSum;
3459
- if (innerSum <= 10) continue;
3460
- const idx = key.indexOf("!");
3461
- const loaders = key.slice(idx + 1);
3462
- const moduleType = key.slice(0, idx);
3463
- const t = Math.max(innerSum / 10, innerMax);
3594
+ /* istanbul ignore next -- @preserve: only slow (>10ms) loader groups are logged, timing-dependent */
3595
+ if (innerSum > 10) {
3596
+ const idx = key.indexOf("!");
3597
+ const loaders = key.slice(idx + 1);
3598
+ const moduleType = key.slice(0, idx);
3599
+ const t = Math.max(innerSum / 10, innerMax);
3600
+ logByValue(
3601
+ t,
3602
+ ` | ${Math.round(innerSum)} ms ${category} > ${
3603
+ loaders
3604
+ ? `${
3605
+ modules.length
3606
+ } x ${moduleType} with ${this.requestShortener.shorten(
3607
+ loaders
3608
+ )}`
3609
+ : `${modules.length} x ${moduleType}`
3610
+ }`
3611
+ );
3612
+ max = Math.max(max, t);
3613
+ }
3614
+ }
3615
+ /* istanbul ignore next -- @preserve: only slow (>10ms) categories are logged, timing-dependent */
3616
+ if (sum > 10) {
3464
3617
  logByValue(
3465
- t,
3466
- ` | ${Math.round(innerSum)} ms ${category} > ${
3467
- loaders
3468
- ? `${
3469
- modules.length
3470
- } x ${moduleType} with ${this.requestShortener.shorten(
3471
- loaders
3472
- )}`
3473
- : `${modules.length} x ${moduleType}`
3474
- }`
3618
+ Math.max(sum / 10, max),
3619
+ `${Math.round(sum)} ms ${category}`
3475
3620
  );
3476
- max = Math.max(max, t);
3477
3621
  }
3478
- if (sum <= 10) return;
3479
- logByValue(
3480
- Math.max(sum / 10, max),
3481
- `${Math.round(sum)} ms ${category}`
3482
- );
3483
3622
  };
3484
3623
  logNormalSummary(
3485
3624
  "resolve to new modules",
@@ -3531,16 +3670,31 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3531
3670
  if (useReportCacheTokens) {
3532
3671
  this._flagModulesForDependencyReporting(modules);
3533
3672
  }
3673
+ const reportsUnresolved = this._modulesReportingUnresolved();
3534
3674
  for (const module of modules) {
3675
+ const unresolved = reportsUnresolved.has(module);
3535
3676
  const memCache = moduleMemCaches && moduleMemCaches.get(module);
3536
- if (memCache && memCache.get("noWarningsOrErrors")) continue;
3677
+ if (!unresolved && memCache && memCache.get("noWarningsOrErrors")) {
3678
+ continue;
3679
+ }
3537
3680
  let token;
3681
+ /** @type {string | true} */
3682
+ let clean = true;
3538
3683
  if (useReportCacheTokens) {
3684
+ // a request leaving a lazy barrel reports without any rebuild
3685
+ const lazyRequests = this._getLazyRequests(module);
3686
+ if (lazyRequests !== undefined) clean = lazyRequests;
3539
3687
  token = dependencyReportCacheTokens.get(module);
3540
3688
  const cleanModules = modulesWithoutProblems.get(
3541
3689
  /** @type {DependencyReportCacheToken} */ (token)
3542
3690
  );
3543
- if (cleanModules !== undefined && cleanModules.has(module)) continue;
3691
+ if (
3692
+ !unresolved &&
3693
+ cleanModules !== undefined &&
3694
+ cleanModules.get(module) === clean
3695
+ ) {
3696
+ continue;
3697
+ }
3544
3698
  }
3545
3699
  let hasProblems = this.reportDependencyErrorsAndWarnings(module, [
3546
3700
  module
@@ -3565,7 +3719,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3565
3719
  hasProblems = true;
3566
3720
  }
3567
3721
  }
3568
- if (!hasProblems) {
3722
+ if (!hasProblems && !unresolved) {
3569
3723
  if (memCache) memCache.set("noWarningsOrErrors", true);
3570
3724
  if (useReportCacheTokens) {
3571
3725
  let cleanModules = modulesWithoutProblems.get(
@@ -3574,10 +3728,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3574
3728
  if (cleanModules === undefined) {
3575
3729
  modulesWithoutProblems.set(
3576
3730
  /** @type {DependencyReportCacheToken} */ (token),
3577
- (cleanModules = new WeakSet())
3731
+ (cleanModules = new WeakMap())
3578
3732
  );
3579
3733
  }
3580
- cleanModules.add(module);
3734
+ cleanModules.set(module, clean);
3581
3735
  }
3582
3736
  }
3583
3737
  }
@@ -3623,7 +3777,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3623
3777
  this.processDependenciesQueue.clear();
3624
3778
  this.addModuleQueue.clear();
3625
3779
  // lazy barrel only acts during make; release its bookkeeping now
3626
- this._lazyBarrelController.clear();
3780
+ this._lazyBarrels.clear();
3627
3781
  // unsafe-cache restore tables are only read during make; release them
3628
3782
  // so they stop pinning restored modules for the rest of the compilation
3629
3783
  this._restoredUnsafeCacheModuleEntries.clear();
@@ -4026,7 +4180,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
4026
4180
  const warning = new (getModuleDependencyWarning())(
4027
4181
  module,
4028
4182
  w,
4029
- /** @type {EXPECTED_ANY} */ (w).loc || d.loc
4183
+ w.loc || d.loc
4030
4184
  );
4031
4185
  this.warnings.push(warning);
4032
4186
  hasProblems = true;
@@ -4038,7 +4192,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
4038
4192
  const error = new (getModuleDependencyError())(
4039
4193
  module,
4040
4194
  e,
4041
- /** @type {EXPECTED_ANY} */ (e).loc || d.loc
4195
+ e.loc || d.loc
4042
4196
  );
4043
4197
  this.errors.push(error);
4044
4198
  hasProblems = true;
@@ -4162,7 +4316,35 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
4162
4316
  (err) => {
4163
4317
  if (err) return callback(/** @type {WebpackError} */ (err));
4164
4318
  const affected = new Set(pending.map(({ jobModule }) => jobModule));
4165
- const redo = jobs.filter(({ module }) => affected.has(module));
4319
+ // A module referencing one of these may have copied what it generated
4320
+ // into its own code (an analyzable `new URL`), so it goes again after.
4321
+ /** @type {Set<Module>} */
4322
+ const referencing = new Set();
4323
+ for (const { info } of pending) {
4324
+ for (const connection of this.moduleGraph.getIncomingConnections(
4325
+ info.module
4326
+ )) {
4327
+ const { originModule } = connection;
4328
+ if (originModule !== null && !affected.has(originModule)) {
4329
+ referencing.add(originModule);
4330
+ }
4331
+ }
4332
+ }
4333
+
4334
+ const redo = [
4335
+ ...jobs.filter(({ module }) => affected.has(module)),
4336
+ // A referencing module concatenated into another is generated as
4337
+ // part of it, so the job to redo is the concatenated module's.
4338
+ ...jobs.filter(({ module }) => {
4339
+ if (affected.has(module)) return false;
4340
+ if (referencing.has(module)) return true;
4341
+ if (module.getRootModule() === module) return false;
4342
+ for (const inner of module.getSourceModules()) {
4343
+ if (referencing.has(inner)) return true;
4344
+ }
4345
+ return false;
4346
+ })
4347
+ ];
4166
4348
  // Generated directly rather than through the codegen cache: the module
4167
4349
  // hash is unchanged, so the cache would hand back the first pass again.
4168
4350
  const results =
@@ -4251,8 +4433,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
4251
4433
  if (!referencedModule) return false;
4252
4434
  return (
4253
4435
  notCodeGeneratedModules === undefined ||
4254
- /** @type {NotCodeGeneratedModules} */
4255
- (notCodeGeneratedModules).has(referencedModule)
4436
+ notCodeGeneratedModules.has(referencedModule)
4256
4437
  );
4257
4438
  })
4258
4439
  ) {
@@ -4621,9 +4802,10 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
4621
4802
  * is over. `runtimeRequirementInTree` is a sync hook, so a tap cannot await
4622
4803
  * the load itself; anything the tap reads off the requirement set must be
4623
4804
  * captured before queueing, since `create` runs later.
4805
+ * @template {object} T
4624
4806
  * @param {Chunk} chunk target chunk
4625
- * @param {() => Promise<EXPECTED_ANY>} load resolves the runtime module implementation
4626
- * @param {(loaded: EXPECTED_ANY) => RuntimeModule} create builds the runtime module from it
4807
+ * @param {() => Promise<T>} load resolves the runtime module implementation
4808
+ * @param {(loaded: T) => RuntimeModule} create builds the runtime module from it
4627
4809
  * @param {ChunkGraph} chunkGraph the chunk graph
4628
4810
  * @returns {void}
4629
4811
  */
@@ -4648,14 +4830,18 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
4648
4830
  .then((loaded) => {
4649
4831
  for (let i = 0; i < pending.length; i++) {
4650
4832
  const { chunk, create, chunkGraph } = pending[i];
4651
- this.addRuntimeModule(chunk, create(loaded[i]), chunkGraph);
4833
+ this.addRuntimeModule(
4834
+ chunk,
4835
+ create(/** @type {never} */ (loaded[i])),
4836
+ chunkGraph
4837
+ );
4652
4838
  }
4653
4839
  })
4654
4840
  // a `runtimeModule` tap may have queued more
4655
4841
  .then(() => this._attachPendingRuntimeModules(callback), callback);
4656
4842
  }
4657
4843
 
4658
- // TODO webpack 6 make chunkGraph argument non-optional
4844
+ // TODO in the next major release: make chunkGraph argument non-optional
4659
4845
  /**
4660
4846
  * Adds runtime module.
4661
4847
  * @param {Chunk} chunk target chunk
@@ -4773,7 +4959,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
4773
4959
  const name = options.name;
4774
4960
  if (name) {
4775
4961
  const entrypoint = this.namedChunkGroups.get(name);
4776
- if (entrypoint instanceof Entrypoint) {
4962
+ if (entrypoint !== undefined && entrypoint.isEntrypoint()) {
4777
4963
  if (module) {
4778
4964
  entrypoint.addOrigin(module, loc, request);
4779
4965
  }
@@ -5154,8 +5340,12 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
5154
5340
  });
5155
5341
  moduleHashDigest = moduleHash.digest(hashDigest);
5156
5342
  } catch (err) {
5343
+ // A diagnostic that already names its module says more than this wrapper
5344
+ // would, e.g. which runtime module's `generate()` threw.
5157
5345
  errors.push(
5158
- new (getModuleHashingError())(module, /** @type {Error} */ (err))
5346
+ WebpackError.isWebpackError(err) && err.module
5347
+ ? err
5348
+ : new (getModuleHashingError())(module, /** @type {Error} */ (err))
5159
5349
  );
5160
5350
  moduleHashDigest = "XXXXXX";
5161
5351
  }
@@ -5170,7 +5360,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
5170
5360
 
5171
5361
  createHash() {
5172
5362
  this.logger.time("hashing: initialize hash");
5173
- const chunkGraph = /** @type {ChunkGraph} */ (this.chunkGraph);
5363
+ const chunkGraph = this.chunkGraph;
5174
5364
  const runtimeTemplate = this.runtimeTemplate;
5175
5365
  const outputOptions = this.outputOptions;
5176
5366
  const hashFunction = outputOptions.hashFunction;
@@ -5313,6 +5503,26 @@ This prevents using hashes of each other and should be avoided.`);
5313
5503
  this.warnings.push(err);
5314
5504
  for (const i of circularRuntimeChunkInfo) runtimeChunks.push(i.chunk);
5315
5505
  }
5506
+ // An ESM entry chunk imports the chunks of the entrypoints it depends on
5507
+ // (`dependOn`) by hashed filename, so their entry chunks are hashed first.
5508
+ /** @type {Set<Chunk>} */
5509
+ const unorderedEntryChunks = new Set(entryChunks);
5510
+ entryChunks.length = 0;
5511
+ /**
5512
+ * Adds an entry chunk after the entry chunks of its parent entrypoints.
5513
+ * @param {Chunk} chunk the entry chunk
5514
+ * @returns {void}
5515
+ */
5516
+ const addEntryChunk = (chunk) => {
5517
+ if (!unorderedEntryChunks.delete(chunk)) return;
5518
+ for (const group of chunk.groupsIterable) {
5519
+ for (const parent of group.parentsIterable) {
5520
+ for (const c of parent.chunks) addEntryChunk(c);
5521
+ }
5522
+ }
5523
+ entryChunks.push(chunk);
5524
+ };
5525
+ for (const chunk of unorderedEntryChunks) addEntryChunk(chunk);
5316
5526
  this.logger.timeEnd("hashing: sort chunks");
5317
5527
 
5318
5528
  /** @type {Set<Chunk>} */
@@ -5923,7 +6133,7 @@ This prevents using hashes of each other and should be avoided.`);
5923
6133
  );
5924
6134
 
5925
6135
  assetCacheItem.get((err, sourceFromCache) => {
5926
- /** @type {string | import("./TemplatedPathPlugin").TemplatePathFn<EXPECTED_ANY>} */
6136
+ /** @type {RenderManifestEntryTemplated["filenameTemplate"]} */
5927
6137
  let filenameTemplate;
5928
6138
  /** @type {string} */
5929
6139
  let file;
@@ -6044,7 +6254,7 @@ This prevents using hashes of each other and should be avoided.`);
6044
6254
  /**
6045
6255
  * Returns interpolated path.
6046
6256
  * @template {PathData} [T=PathData]
6047
- * @param {string | import("./TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
6257
+ * @param {string | import("./template/TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
6048
6258
  * @param {T=} data context data
6049
6259
  * @returns {string} interpolated path
6050
6260
  */
@@ -6061,7 +6271,7 @@ This prevents using hashes of each other and should be avoided.`);
6061
6271
  /**
6062
6272
  * Gets path with info.
6063
6273
  * @template {PathData} [T=PathData]
6064
- * @param {string | import("./TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
6274
+ * @param {string | import("./template/TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
6065
6275
  * @param {T=} data context data
6066
6276
  * @returns {InterpolatedPathAndAssetInfo} interpolated path and asset info
6067
6277
  */
@@ -6078,7 +6288,7 @@ This prevents using hashes of each other and should be avoided.`);
6078
6288
  /**
6079
6289
  * Returns interpolated path.
6080
6290
  * @template {PathData} [T=PathData]
6081
- * @param {string | import("./TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
6291
+ * @param {string | import("./template/TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
6082
6292
  * @param {T} data context data
6083
6293
  * @returns {string} interpolated path
6084
6294
  */
@@ -6093,7 +6303,7 @@ This prevents using hashes of each other and should be avoided.`);
6093
6303
  /**
6094
6304
  * Gets asset path with info.
6095
6305
  * @template {PathData} [T=PathData]
6096
- * @param {string | import("./TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
6306
+ * @param {string | import("./template/TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
6097
6307
  * @param {T} data context data
6098
6308
  * @returns {InterpolatedPathAndAssetInfo} interpolated path and asset info
6099
6309
  */
@@ -6267,7 +6477,7 @@ This prevents using hashes of each other and should be avoided.`);
6267
6477
  reportErrors();
6268
6478
 
6269
6479
  // for backward-compat temporary set the chunk graph
6270
- // TODO webpack 6
6480
+ // TODO in the next major release: drop it
6271
6481
  const old = this.chunkGraph;
6272
6482
  this.chunkGraph = chunkGraph;
6273
6483
  this.processRuntimeRequirements({
@@ -6542,7 +6752,7 @@ This prevents using hashes of each other and should be avoided.`);
6542
6752
  const usedIds = new Set();
6543
6753
 
6544
6754
  for (const module of this.modules) {
6545
- if (module.type === WEBPACK_MODULE_TYPE_RUNTIME) continue;
6755
+ if (module.is("runtime")) continue;
6546
6756
  const moduleId = chunkGraph.getModuleId(module);
6547
6757
  if (moduleId === null) continue;
6548
6758
  if (usedIds.has(moduleId)) {
@@ -6598,7 +6808,7 @@ This prevents using hashes of each other and should be avoided.`);
6598
6808
  // Hide from typescript
6599
6809
  const compilationPrototype = Compilation.prototype;
6600
6810
 
6601
- // TODO webpack 6 remove
6811
+ // TODO in the next major release: remove
6602
6812
  Object.defineProperty(compilationPrototype, "modifyHash", {
6603
6813
  writable: false,
6604
6814
  enumerable: false,
@@ -6610,7 +6820,7 @@ Object.defineProperty(compilationPrototype, "modifyHash", {
6610
6820
  }
6611
6821
  });
6612
6822
 
6613
- // TODO webpack 6 remove
6823
+ // TODO in the next major release: remove
6614
6824
  Object.defineProperty(compilationPrototype, "cache", {
6615
6825
  enumerable: false,
6616
6826
  configurable: false,
@@ -6629,7 +6839,7 @@ Object.defineProperty(compilationPrototype, "cache", {
6629
6839
  set: util.deprecate(
6630
6840
  /**
6631
6841
  * Handles the value callback for this hook.
6632
- * @param {EXPECTED_ANY} _v value
6842
+ * @param {Cache} _v value
6633
6843
  */
6634
6844
  (_v) => {},
6635
6845
  "Compilation.cache was removed in favor of Compilation.getCache()",