@depup/webpack 5.111.1-depup.2 → 5.112.0-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (775) hide show
  1. package/README.md +4 -8
  2. package/changes.json +3 -19
  3. package/lib/Chunk.js +3 -966
  4. package/lib/Compilation.js +224 -106
  5. package/lib/Compiler.js +19 -19
  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 +8 -8
  25. package/lib/asset/AssetBytesParser.js +3 -3
  26. package/lib/asset/AssetGenerator.js +36 -22
  27. package/lib/asset/AssetModule.js +2 -2
  28. package/lib/asset/AssetModulesPlugin.js +6 -9
  29. package/lib/asset/AssetParser.js +3 -3
  30. package/lib/asset/AssetSourceGenerator.js +8 -8
  31. package/lib/asset/AssetSourceParser.js +3 -3
  32. package/lib/asset/RawDataUrlModule.js +17 -10
  33. package/lib/asset/WebManifestGenerator.js +7 -7
  34. package/lib/asset/WebManifestParser.js +5 -5
  35. package/lib/async-modules/AsyncModuleHelpers.js +6 -5
  36. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
  37. package/lib/async-modules/InferAsyncModulesPlugin.js +4 -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} +5 -5
  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 +8 -10
  47. package/lib/cache/ResolverCachePlugin.js +8 -4
  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} +217 -200
  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} +5 -158
  55. package/lib/config/defaults.js +144 -48
  56. package/lib/config/getClaimedAssetTypes.js +21 -13
  57. package/lib/config/normalization.js +18 -7
  58. package/lib/config/target.js +10 -0
  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 +36 -25
  76. package/lib/context/ContextModuleFactory.js +13 -10
  77. package/lib/context/ContextReplacementPlugin.js +3 -3
  78. package/lib/css/CssGenerator.js +38 -31
  79. package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
  80. package/lib/css/CssLoadingRuntimeModule.js +77 -44
  81. package/lib/css/CssModule.js +27 -29
  82. package/lib/css/CssModulesPlugin.js +128 -44
  83. package/lib/css/CssParser.js +682 -291
  84. package/lib/css/CssServerStylesRuntimeModule.js +3 -3
  85. package/lib/css/cssMinify.js +110 -37
  86. package/lib/css/data.js +6985 -5125
  87. package/lib/css/syntax-parser.js +19873 -0
  88. package/lib/css/syntax-printer.js +6037 -0
  89. package/lib/css/syntax.js +37 -18686
  90. package/lib/debug/ProfilingPlugin.js +52 -19
  91. package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
  92. package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +9 -9
  93. package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +2 -2
  94. package/lib/deno/DenoTargetPlugin.js +1 -1
  95. package/lib/dependencies/ConstDependency.js +3 -120
  96. package/lib/dependencies/ContextElementDependency.js +5 -172
  97. package/lib/dependencies/NullDependency.js +3 -37
  98. package/lib/dependencies/{AMDDefineDependency.js → amd/AMDDefineDependency.js} +12 -11
  99. package/lib/dependencies/{AMDDefineDependencyParserPlugin.js → amd/AMDDefineDependencyParserPlugin.js} +10 -10
  100. package/lib/dependencies/{AMDPlugin.js → amd/AMDPlugin.js} +11 -11
  101. package/lib/dependencies/{AMDRequireArrayDependency.js → amd/AMDRequireArrayDependency.js} +15 -13
  102. package/lib/dependencies/{AMDRequireContextDependency.js → amd/AMDRequireContextDependency.js} +11 -10
  103. package/lib/dependencies/{AMDRequireDependenciesBlock.js → amd/AMDRequireDependenciesBlock.js} +7 -6
  104. package/lib/dependencies/{AMDRequireDependenciesBlockParserPlugin.js → amd/AMDRequireDependenciesBlockParserPlugin.js} +10 -10
  105. package/lib/dependencies/{AMDRequireDependency.js → amd/AMDRequireDependency.js} +13 -12
  106. package/lib/dependencies/{AMDRequireItemDependency.js → amd/AMDRequireItemDependency.js} +8 -7
  107. package/lib/dependencies/{AMDRuntimeModules.js → amd/AMDRuntimeModules.js} +3 -3
  108. package/lib/dependencies/{LocalModule.js → amd/LocalModule.js} +8 -4
  109. package/lib/dependencies/{LocalModuleDependency.js → amd/LocalModuleDependency.js} +17 -10
  110. package/lib/dependencies/{LocalModulesHelpers.js → amd/LocalModulesHelpers.js} +1 -1
  111. package/lib/dependencies/{RequireJsStuffPlugin.js → amd/RequireJsStuffPlugin.js} +9 -9
  112. package/lib/dependencies/{UnsupportedDependency.js → amd/UnsupportedDependency.js} +11 -10
  113. package/lib/dependencies/{CommonJsDependencyHelpers.js → commonjs/CommonJsDependencyHelpers.js} +8 -9
  114. package/lib/dependencies/{CommonJsExportRequireDependency.js → commonjs/CommonJsExportRequireDependency.js} +166 -33
  115. package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
  116. package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +138 -61
  117. package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
  118. package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +35 -30
  119. package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +13 -12
  120. package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +47 -35
  121. package/lib/dependencies/{CommonJsRequireContextDependency.js → commonjs/CommonJsRequireContextDependency.js} +15 -14
  122. package/lib/dependencies/{CommonJsRequireDependency.js → commonjs/CommonJsRequireDependency.js} +33 -25
  123. package/lib/dependencies/{CommonJsSelfReferenceDependency.js → commonjs/CommonJsSelfReferenceDependency.js} +17 -16
  124. package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
  125. package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
  126. package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +5 -5
  127. package/lib/dependencies/{RequireEnsureDependency.js → commonjs/RequireEnsureDependency.js} +13 -12
  128. package/lib/dependencies/{RequireEnsureItemDependency.js → commonjs/RequireEnsureItemDependency.js} +7 -6
  129. package/lib/dependencies/{RequireEnsurePlugin.js → commonjs/RequireEnsurePlugin.js} +8 -8
  130. package/lib/dependencies/{RequireHeaderDependency.js → commonjs/RequireHeaderDependency.js} +14 -13
  131. package/lib/dependencies/{RequireIncludeDependency.js → commonjs/RequireIncludeDependency.js} +13 -12
  132. package/lib/dependencies/{RequireIncludeDependencyParserPlugin.js → commonjs/RequireIncludeDependencyParserPlugin.js} +3 -27
  133. package/lib/dependencies/{RequireIncludePlugin.js → commonjs/RequireIncludePlugin.js} +4 -4
  134. package/lib/dependencies/{RequireResolveContextDependency.js → commonjs/RequireResolveContextDependency.js} +11 -10
  135. package/lib/dependencies/{RequireResolveDependency.js → commonjs/RequireResolveDependency.js} +12 -11
  136. package/lib/dependencies/{RequireResolveHeaderDependency.js → commonjs/RequireResolveHeaderDependency.js} +13 -12
  137. package/lib/dependencies/commonjs/TopLevelThisParserPlugin.js +59 -0
  138. package/lib/dependencies/{ContextDependency.js → context/ContextDependency.js} +15 -14
  139. package/lib/dependencies/{ContextDependencyHelpers.js → context/ContextDependencyHelpers.js} +31 -9
  140. package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
  141. package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
  142. package/lib/dependencies/context/ContextElementDependency.js +198 -0
  143. package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
  144. package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +9 -9
  145. package/lib/dependencies/{ImportMetaContextPlugin.js → context/ImportMetaContextPlugin.js} +5 -5
  146. package/lib/dependencies/{ImportMetaGlobDependency.js → context/ImportMetaGlobDependency.js} +7 -6
  147. package/lib/dependencies/{ImportMetaGlobDependencyParserPlugin.js → context/ImportMetaGlobDependencyParserPlugin.js} +4 -4
  148. package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +9 -9
  149. package/lib/dependencies/{RequireContextDependency.js → context/RequireContextDependency.js} +7 -6
  150. package/lib/dependencies/{RequireContextDependencyParserPlugin.js → context/RequireContextDependencyParserPlugin.js} +2 -2
  151. package/lib/dependencies/{RequireContextPlugin.js → context/RequireContextPlugin.js} +5 -5
  152. package/lib/dependencies/{CachedConstDependency.js → core/CachedConstDependency.js} +12 -11
  153. package/lib/dependencies/core/ConstDependency.js +131 -0
  154. package/lib/dependencies/{ImportPhase.js → core/ImportPhase.js} +5 -4
  155. package/lib/dependencies/{ModuleDependency.js → core/ModuleDependency.js} +10 -7
  156. package/lib/dependencies/{ModuleDependencyTemplateAsId.js → core/ModuleDependencyTemplateAsId.js} +3 -3
  157. package/lib/dependencies/{ModuleDependencyTemplateAsRequireId.js → core/ModuleDependencyTemplateAsRequireId.js} +2 -2
  158. package/lib/dependencies/{ModuleInitFragmentDependency.js → core/ModuleInitFragmentDependency.js} +10 -9
  159. package/lib/dependencies/core/NullDependency.js +44 -0
  160. package/lib/dependencies/{RuntimeRequirementsDependency.js → core/RuntimeRequirementsDependency.js} +10 -9
  161. package/lib/dependencies/{StaticExportsDependency.js → core/StaticExportsDependency.js} +15 -8
  162. package/lib/dependencies/{CssIcssExportDependency.js → css/CssIcssExportDependency.js} +369 -92
  163. package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +23 -16
  164. package/lib/dependencies/{CssIcssSymbolDependency.js → css/CssIcssSymbolDependency.js} +13 -12
  165. package/lib/dependencies/{CssImportDependency.js → css/CssImportDependency.js} +15 -11
  166. package/lib/dependencies/{CssUrlDependency.js → css/CssUrlDependency.js} +23 -16
  167. package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
  168. package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
  169. package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
  170. package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +29 -21
  171. package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +19 -17
  172. package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
  173. package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +60 -89
  174. package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +80 -45
  175. package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
  176. package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
  177. package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +133 -118
  178. package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
  179. package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +60 -36
  180. package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -4
  181. package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
  182. package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +74 -71
  183. package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +99 -84
  184. package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
  185. package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
  186. package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +94 -59
  187. package/lib/dependencies/esm/ESMModulesPlugin.js +207 -0
  188. package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
  189. package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -11
  190. package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +2 -2
  191. package/lib/{util → dependencies/helpers}/chainedImports.js +5 -5
  192. package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
  193. package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
  194. package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
  195. package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
  196. package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
  197. package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
  198. package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +51 -141
  199. package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
  200. package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -19
  201. package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -15
  202. package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
  203. package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
  204. package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
  205. package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
  206. package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +20 -20
  207. package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
  208. package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
  209. package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
  210. package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
  211. package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
  212. package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +119 -98
  213. package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
  214. package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
  215. package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
  216. package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
  217. package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +28 -20
  218. package/lib/{url → dependencies/url}/URLParserPlugin.js +16 -18
  219. package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
  220. package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
  221. package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
  222. package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
  223. package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +31 -33
  224. package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +22 -15
  225. package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +19 -18
  226. package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
  227. package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
  228. package/lib/devtool/ModuleFilenameHelpers.js +413 -0
  229. package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
  230. package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +154 -26
  231. package/lib/{util → devtool}/generateDebugId.js +1 -1
  232. package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
  233. package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
  234. package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
  235. package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
  236. package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
  237. package/lib/dll/DelegatedModule.js +20 -18
  238. package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
  239. package/lib/dll/DelegatedPlugin.js +1 -1
  240. package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
  241. package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
  242. package/lib/dll/DllEntryPlugin.js +3 -3
  243. package/lib/dll/DllModule.js +11 -9
  244. package/lib/dll/DllModuleFactory.js +3 -3
  245. package/lib/dll/DllPlugin.js +18 -6
  246. package/lib/dll/DllReferencePlugin.js +102 -26
  247. package/lib/dll/LibManifestPlugin.js +9 -7
  248. package/lib/electron/ElectronTargetPlugin.js +2 -2
  249. package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
  250. package/lib/{dependencies → entry}/EntryDependency.js +11 -2
  251. package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
  252. package/lib/entry/EntryPlugin.js +75 -0
  253. package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
  254. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  255. package/lib/errors/BuildCycleError.js +1 -1
  256. package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
  257. package/lib/errors/ChunkRenderError.js +1 -1
  258. package/lib/errors/CodeGenerationError.js +1 -1
  259. package/lib/errors/CommentCompilationWarning.js +1 -1
  260. package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
  261. package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
  262. package/lib/errors/DeprecatedOptionWarning.js +30 -0
  263. package/lib/errors/DllManifestError.js +26 -0
  264. package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
  265. package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
  266. package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
  267. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  268. package/lib/{ErrorHelpers.js → errors/ErrorHelpers.js} +7 -5
  269. package/lib/errors/ExternalStarReexportError.js +2 -2
  270. package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
  271. package/lib/errors/HookWebpackError.js +4 -4
  272. package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
  273. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  274. package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
  275. package/lib/errors/ModuleBuildError.js +1 -1
  276. package/lib/errors/ModuleDependencyError.js +2 -2
  277. package/lib/errors/ModuleDependencyWarning.js +2 -2
  278. package/lib/errors/ModuleError.js +1 -1
  279. package/lib/errors/ModuleHashingError.js +1 -1
  280. package/lib/errors/ModuleNotFoundError.js +3 -3
  281. package/lib/errors/ModuleParseError.js +1 -1
  282. package/lib/errors/ModuleRestoreError.js +1 -1
  283. package/lib/errors/ModuleStoreError.js +1 -1
  284. package/lib/errors/ModuleWarning.js +1 -1
  285. package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
  286. package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
  287. package/lib/errors/NodeStuffInWebError.js +7 -2
  288. package/lib/errors/PathVariableError.js +31 -0
  289. package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
  290. package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
  291. package/lib/errors/RuntimeModuleGenerationError.js +51 -0
  292. package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
  293. package/lib/errors/SystemImportDeprecationWarning.js +43 -0
  294. package/lib/errors/UnmergeableEntryExportsError.js +34 -0
  295. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  296. package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
  297. package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
  298. package/lib/errors/WebpackError.js +12 -3
  299. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
  300. package/lib/esm/ModuleChunkFormatPlugin.js +19 -19
  301. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
  302. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
  303. package/lib/{ExternalModule.js → externals/ExternalModule.js} +79 -55
  304. package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +41 -39
  305. package/lib/externals/ExternalsPlugin.js +99 -0
  306. package/lib/fs/FileSystemInfo.js +4642 -0
  307. package/lib/{util → fs}/fs.js +22 -9
  308. package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
  309. package/lib/graph/Chunk.js +985 -0
  310. package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +187 -80
  311. package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
  312. package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
  313. package/lib/graph/Dependency.js +628 -0
  314. package/lib/graph/Entrypoint.js +136 -0
  315. package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +130 -82
  316. package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
  317. package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +30 -30
  318. package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
  319. package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +152 -57
  320. package/lib/{util → graph}/findGraphRoots.js +14 -8
  321. package/lib/graph/isDependencyKind.js +23 -0
  322. package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
  323. package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +47 -47
  324. package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
  325. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +10 -8
  326. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
  327. package/lib/hmr/LazyCompilationPlugin.js +31 -21
  328. package/lib/html/HtmlGenerator.js +107 -43
  329. package/lib/html/HtmlModule.js +6 -2
  330. package/lib/html/HtmlModulesPlugin.js +172 -76
  331. package/lib/html/HtmlParser.js +503 -153
  332. package/lib/html/builtinEmbeddedRenderer.js +60 -13
  333. package/lib/html/data.js +2 -1
  334. package/lib/html/htmlMinify.js +111 -41
  335. package/lib/html/syntax-parser.js +15796 -0
  336. package/lib/html/syntax-printer.js +1034 -0
  337. package/lib/html/syntax.js +37 -13952
  338. package/lib/html/xmlMinify.js +67 -0
  339. package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
  340. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  341. package/lib/ids/HashedModuleIdsPlugin.js +31 -4
  342. package/lib/ids/IdHelpers.js +4 -4
  343. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  344. package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
  345. package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
  346. package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
  347. package/lib/ids/SyncModuleIdsPlugin.js +3 -3
  348. package/lib/{util → ids}/numberHash.js +1 -1
  349. package/lib/index.js +303 -97
  350. package/lib/{APIPlugin.js → javascript/APIPlugin.js} +25 -25
  351. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
  352. package/lib/javascript/BasicEvaluatedExpression.js +4 -4
  353. package/lib/javascript/ChunkHelpers.js +64 -4
  354. package/lib/javascript/CommonJsChunkFormatPlugin.js +4 -7
  355. package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +7 -7
  356. package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +74 -7
  357. package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
  358. package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
  359. package/lib/javascript/JavascriptGenerator.js +17 -17
  360. package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
  361. package/lib/javascript/JavascriptModule.js +4 -3
  362. package/lib/javascript/JavascriptModulesPlugin.js +440 -211
  363. package/lib/javascript/JavascriptParser.js +220 -134
  364. package/lib/javascript/JavascriptParserHelpers.js +1 -1
  365. package/lib/javascript/MergedEntryExports.js +196 -0
  366. package/lib/javascript/ScopeAnalyzer.js +3840 -5
  367. package/lib/javascript/StartupHelpers.js +6 -6
  368. package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +12 -15
  369. package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
  370. package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
  371. package/lib/javascript/data.js +533 -122
  372. package/lib/javascript/jsMinify.js +272 -0
  373. package/lib/javascript/regexp.js +67 -32
  374. package/lib/javascript/syntax-parser.js +18561 -0
  375. package/lib/javascript/syntax-printer-data.js +933 -0
  376. package/lib/javascript/syntax-printer.js +47106 -0
  377. package/lib/javascript/syntax.js +20 -11274
  378. package/lib/json/JsonData.js +1 -1
  379. package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
  380. package/lib/json/JsonGenerator.js +10 -10
  381. package/lib/json/JsonModule.js +2 -2
  382. package/lib/json/JsonModulesPlugin.js +1 -1
  383. package/lib/json/JsonParser.js +5 -5
  384. package/lib/json/jsonMinify.js +69 -0
  385. package/lib/library/AbstractLibraryPlugin.js +28 -15
  386. package/lib/library/AmdLibraryPlugin.js +4 -4
  387. package/lib/library/AssignLibraryPlugin.js +27 -11
  388. package/lib/library/EnableLibraryPlugin.js +1 -1
  389. package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
  390. package/lib/library/JsonpLibraryPlugin.js +1 -1
  391. package/lib/library/LibraryTemplatePlugin.js +53 -0
  392. package/lib/library/ModuleLibraryPlugin.js +160 -166
  393. package/lib/library/SystemLibraryPlugin.js +6 -8
  394. package/lib/library/UmdLibraryPlugin.js +3 -4
  395. package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
  396. package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
  397. package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
  398. package/lib/{dependencies → loaders}/LoaderPlugin.js +2 -2
  399. package/lib/loaders/LoaderRunner.js +31 -21
  400. package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
  401. package/lib/logging/Logger.js +7 -9
  402. package/lib/logging/ProgressPlugin.js +957 -0
  403. package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
  404. package/lib/{Generator.js → module/Generator.js} +16 -14
  405. package/lib/{Module.js → module/Module.js} +119 -51
  406. package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
  407. package/lib/module/NormalModule.js +2348 -0
  408. package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +53 -54
  409. package/lib/module/NullFactory.js +29 -0
  410. package/lib/{Parser.js → module/Parser.js} +3 -3
  411. package/lib/module/RawModule.js +208 -0
  412. package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
  413. package/lib/{util → module}/extractSourceMap.js +2 -2
  414. package/lib/{util → module}/findCaseMismatch.js +2 -2
  415. package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
  416. package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
  417. package/lib/{dependencies → node}/ExternalModuleInitFragment.js +6 -5
  418. package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
  419. package/lib/node/NodeEnvironmentPlugin.js +11 -1
  420. package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
  421. package/lib/node/NodeTargetPlugin.js +1 -1
  422. package/lib/node/NodeWatchFileSystem.js +58 -6
  423. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
  424. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +9 -7
  425. package/lib/node/ReadFileCompileWasmPlugin.js +7 -5
  426. package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
  427. package/lib/node/nodeConsole.js +2 -4
  428. package/lib/optimize/AggressiveMergingPlugin.js +2 -2
  429. package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
  430. package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
  431. package/lib/optimize/ConcatenatedModule.js +229 -214
  432. package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
  433. package/lib/optimize/ConstExportsPlugin.js +7 -7
  434. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  435. package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
  436. package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +17 -17
  437. package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +17 -17
  438. package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
  439. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
  440. package/lib/optimize/InlineExports.js +11 -3
  441. package/lib/optimize/InnerGraph.js +5 -13
  442. package/lib/optimize/InnerGraphPlugin.js +10 -10
  443. package/lib/optimize/LazyBarrels.js +584 -0
  444. package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
  445. package/lib/optimize/LimitChunkCountPlugin.js +16 -7
  446. package/lib/optimize/MangleExportsPlugin.js +5 -5
  447. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
  448. package/lib/optimize/MinChunkSizePlugin.js +9 -6
  449. package/lib/optimize/ModuleConcatenationPlugin.js +20 -12
  450. package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
  451. package/lib/optimize/RealContentHashPlugin.js +16 -7
  452. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  453. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  454. package/lib/optimize/SideEffectsFlagPlugin.js +18 -18
  455. package/lib/optimize/SplitChunksPlugin.js +713 -155
  456. package/lib/{util → optimize}/TupleQueue.js +9 -9
  457. package/lib/optimize/chunkSetIntersections.js +437 -0
  458. package/lib/{util → optimize}/deterministicGrouping.js +17 -17
  459. package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
  460. package/lib/{CleanPlugin.js → output/CleanPlugin.js} +66 -24
  461. package/lib/{CopyPlugin.js → output/CopyPlugin.js} +142 -67
  462. package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
  463. package/lib/output/SSRManifestPlugin.js +349 -0
  464. package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
  465. package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
  466. package/lib/performance/BroadContextsPlugin.js +4 -4
  467. package/lib/performance/CacheEffectivenessPlugin.js +2 -3
  468. package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
  469. package/lib/performance/DuplicateModulesPlugin.js +3 -4
  470. package/lib/performance/DuplicatePackagesPlugin.js +3 -3
  471. package/lib/performance/DynamicExportsPlugin.js +2 -2
  472. package/lib/performance/EvalUsagePlugin.js +3 -3
  473. package/lib/performance/HotspotsPlugin.js +11 -10
  474. package/lib/performance/LargeModulesPlugin.js +2 -3
  475. package/lib/performance/LegacyJavascriptPlugin.js +1 -2
  476. package/lib/performance/MissingSideEffectsPlugin.js +2 -3
  477. package/lib/performance/MissingSourceMapsPlugin.js +5 -6
  478. package/lib/performance/PureAnnotationsPlugin.js +3 -3
  479. package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
  480. package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
  481. package/lib/performance/SizeLimitsPlugin.js +11 -12
  482. package/lib/performance/TopLevelThisPlugin.js +8 -7
  483. package/lib/performance/UnsplitVendorsPlugin.js +1 -2
  484. package/lib/performance/UnusedAliasesPlugin.js +6 -7
  485. package/lib/performance/UnusedAssetsPlugin.js +5 -5
  486. package/lib/performance/UnusedDefinesPlugin.js +2 -2
  487. package/lib/performance/UnusedExternalsPlugin.js +3 -4
  488. package/lib/performance/UnusedFederationPlugin.js +2 -4
  489. package/lib/performance/UnusedModulesPlugin.js +5 -4
  490. package/lib/performance/getModuleSize.js +1 -1
  491. package/lib/performance/hasOnlyUnusedExports.js +4 -4
  492. package/lib/performance/isOnlyReexported.js +7 -6
  493. package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
  494. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
  495. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -1
  496. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
  497. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
  498. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
  499. package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
  500. package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
  501. package/lib/prefetch/ResourceHintPlugin.js +65 -44
  502. package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
  503. package/lib/prefetch/StartupAssetHintRuntimeModule.js +3 -3
  504. package/lib/prefetch/parseResourceHintOptions.js +4 -3
  505. package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
  506. package/lib/{dependencies → provide}/ProvidedDependency.js +14 -13
  507. package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
  508. package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
  509. package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
  510. package/lib/resolve/getResolveOptionsKey.js +59 -0
  511. package/lib/rules/RuleSetCompiler.js +27 -46
  512. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
  513. package/lib/runtime/AsyncModuleRuntimeModule.js +7 -4
  514. package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
  515. package/lib/runtime/BaseUriRuntimeModule.js +3 -3
  516. package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
  517. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
  518. package/lib/runtime/CompatRuntimeModule.js +4 -4
  519. package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
  520. package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
  521. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
  522. package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
  523. package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
  524. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
  525. package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
  526. package/lib/runtime/GetChunkFilenameRuntimeModule.js +6 -6
  527. package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
  528. package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
  529. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
  530. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
  531. package/lib/runtime/GlobalRuntimeModule.js +3 -3
  532. package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
  533. package/lib/runtime/HelperRuntimeModule.js +16 -1
  534. package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
  535. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +80 -17
  536. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
  537. package/lib/runtime/NonceRuntimeModule.js +2 -2
  538. package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
  539. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  540. package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
  541. package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +18 -1
  542. package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
  543. package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
  544. package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +48 -50
  545. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
  546. package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
  547. package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
  548. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
  549. package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
  550. package/lib/runtime/SystemContextRuntimeModule.js +2 -2
  551. package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
  552. package/lib/runtime/WorkerRuntimeModule.js +1 -1
  553. package/lib/runtime/baseUri.js +1 -1
  554. package/lib/schemes/DataUriPlugin.js +1 -1
  555. package/lib/schemes/HttpUriPlugin.js +67 -11
  556. package/lib/schemes/VirtualUrlPlugin.js +50 -16
  557. package/lib/serialization/AggregateErrorSerializer.js +2 -2
  558. package/lib/serialization/FileMiddleware.js +3 -3
  559. package/lib/serialization/ObjectMiddleware.js +47 -16
  560. package/lib/serialization/SerializerMiddleware.js +2 -2
  561. package/lib/serialization/SingleItemMiddleware.js +4 -2
  562. package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
  563. package/lib/sharing/ConsumeSharedModule.js +18 -14
  564. package/lib/sharing/ConsumeSharedPlugin.js +148 -42
  565. package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
  566. package/lib/sharing/ProvideForSharedDependency.js +9 -1
  567. package/lib/sharing/ProvideSharedDependency.js +1 -1
  568. package/lib/sharing/ProvideSharedModule.js +11 -9
  569. package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
  570. package/lib/sharing/ProvideSharedPlugin.js +111 -20
  571. package/lib/sharing/SharePlugin.js +102 -9
  572. package/lib/sharing/ShareRuntimeModule.js +6 -6
  573. package/lib/sharing/resolveMatchedConfigs.js +1 -1
  574. package/lib/{util → sharing}/semver.js +14 -16
  575. package/lib/sharing/utils.js +59 -2
  576. package/lib/stats/DefaultStatsFactoryPlugin.js +22 -19
  577. package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
  578. package/lib/stats/DefaultStatsPrinterPlugin.js +3 -3
  579. package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
  580. package/lib/{Stats.js → stats/Stats.js} +4 -4
  581. package/lib/stats/StatsFactory.js +14 -13
  582. package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
  583. package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
  584. package/lib/template/DependencyTemplate.js +77 -0
  585. package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
  586. package/lib/template/InitFragment.js +223 -0
  587. package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
  588. package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
  589. package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
  590. package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +145 -63
  591. package/lib/{Template.js → template/Template.js} +13 -11
  592. package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +19 -23
  593. package/lib/typescript/TypeScriptPlugin.js +3 -3
  594. package/lib/util/RequestShortener.js +44 -0
  595. package/lib/util/SortableSet.js +87 -22
  596. package/lib/util/SourceProcessor.js +349 -44
  597. package/lib/util/TupleSet.js +27 -27
  598. package/lib/util/WeakTupleMap.js +10 -12
  599. package/lib/util/buildDiagnostics.js +2 -2
  600. package/lib/util/comparators.js +10 -10
  601. package/lib/util/concatenate.js +28 -147
  602. package/lib/util/createMappings.js +111 -0
  603. package/lib/util/dataURL.js +94 -15
  604. package/lib/util/deprecation.js +1 -1
  605. package/lib/util/extractComments.js +118 -0
  606. package/lib/util/formatLocation.js +1 -1
  607. package/lib/util/globUtils.js +197 -16
  608. package/lib/util/haltVisitors.js +51 -0
  609. package/lib/util/handlerKeys.js +2 -2
  610. package/lib/util/identifier.js +117 -1
  611. package/lib/util/implicitTypeLoaderFallback.js +6 -4
  612. package/lib/util/internalSerializables.js +294 -102
  613. package/lib/util/magicComment.js +12 -7
  614. package/lib/util/makeSerializable.js +23 -4
  615. package/lib/util/parseJson.js +1 -1
  616. package/lib/util/preloadModuleType.js +5 -2
  617. package/lib/util/registerExternalSerializer.js +2 -2
  618. package/lib/util/removeBOM.js +1 -1
  619. package/lib/util/runtime.js +1 -1
  620. package/lib/util/serialization.js +4 -1
  621. package/lib/util/source.js +2 -2
  622. package/lib/util/terminalColors.js +161 -0
  623. package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
  624. package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
  625. package/lib/{wasm-async → wasm}/AsyncWasmModule.js +9 -5
  626. package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +5 -5
  627. package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +11 -10
  628. package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
  629. package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +8 -8
  630. package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
  631. package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +9 -7
  632. package/lib/wasm/wasmModuleFilename.js +2 -2
  633. package/lib/wasm-sync/SyncWasmModule.js +3 -3
  634. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +8 -8
  635. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
  636. package/lib/wasm-sync/WebAssemblyGenerator.js +9 -8
  637. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +14 -15
  638. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
  639. package/lib/wasm-sync/WebAssemblyParser.js +6 -6
  640. package/lib/wasm-sync/WebAssemblyUtils.js +6 -5
  641. package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
  642. package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
  643. package/lib/{Watching.js → watch/Watching.js} +8 -8
  644. package/lib/web/FetchCompileAsyncWasmPlugin.js +8 -6
  645. package/lib/web/FetchCompileWasmPlugin.js +6 -4
  646. package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
  647. package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
  648. package/lib/web/JsonpTemplatePlugin.js +1 -1
  649. package/lib/webpack.js +27 -17
  650. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
  651. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
  652. package/package.json +48 -41
  653. package/schemas/WebpackOptions.check.js +2 -1
  654. package/schemas/WebpackOptions.d.json.ts +2 -0
  655. package/schemas/WebpackOptions.json +294 -74
  656. package/schemas/plugins/BannerPlugin.check.js +2 -1
  657. package/schemas/plugins/BannerPlugin.json +29 -2
  658. package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -0
  659. package/schemas/plugins/HtmlParserOptions.check.js +2 -1
  660. package/schemas/plugins/IgnorePlugin.check.js +1 -0
  661. package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
  662. package/schemas/plugins/IgnorePlugin.json +1 -1
  663. package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -0
  664. package/schemas/plugins/ManifestPlugin.check.js +1 -0
  665. package/schemas/plugins/ManifestPlugin.json +3 -3
  666. package/schemas/plugins/ProgressPlugin.check.js +2 -1
  667. package/schemas/plugins/ProgressPlugin.json +2 -7
  668. package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
  669. package/schemas/plugins/SSRManifestPlugin.json +20 -0
  670. package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -1
  671. package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
  672. package/schemas/plugins/WatchIgnorePlugin.check.js +2 -1
  673. package/schemas/plugins/WatchIgnorePlugin.json +12 -3
  674. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -0
  675. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -0
  676. package/schemas/plugins/asset/AssetParserOptions.check.js +1 -0
  677. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -0
  678. package/schemas/plugins/container/ContainerPlugin.check.js +2 -1
  679. package/schemas/plugins/container/ContainerPlugin.json +8 -0
  680. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -0
  681. package/schemas/plugins/container/ExternalsType.check.js +1 -0
  682. package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -1
  683. package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
  684. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -0
  685. package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -0
  686. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -0
  687. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -0
  688. package/schemas/plugins/css/CssParserOptions.check.js +1 -0
  689. package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -0
  690. package/schemas/plugins/dll/DllPlugin.check.js +1 -0
  691. package/schemas/plugins/dll/DllReferencePlugin.check.js +2 -1
  692. package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
  693. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -0
  694. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -0
  695. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -0
  696. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +1 -0
  697. package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -0
  698. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -0
  699. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -0
  700. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -0
  701. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -0
  702. package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -0
  703. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +1 -0
  704. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +2 -1
  705. package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
  706. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +2 -1
  707. package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
  708. package/schemas/plugins/sharing/SharePlugin.check.js +2 -1
  709. package/schemas/plugins/sharing/SharePlugin.json +32 -0
  710. package/types.d.ts +19355 -13873
  711. package/lib/LazyBarrel.js +0 -388
  712. package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
  713. package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
  714. package/lib/javascript/ChunkFormatHelpers.js +0 -72
  715. package/lib/javascript/grammar.js +0 -5546
  716. package/lib/javascript/parser.js +0 -1500
  717. package/lib/javascript/regexpData.js +0 -51
  718. package/lib/performance/getSourceModules.js +0 -22
  719. package/lib/util/Semaphore.js +0 -65
  720. package/lib/util/objectToMap.js +0 -15
  721. package/schemas/WebpackOptions.check.d.ts +0 -7
  722. package/schemas/_container.json +0 -155
  723. package/schemas/_sharing.json +0 -118
  724. package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
  725. package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
  726. package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
  727. package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
  728. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
  729. package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
  730. package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
  731. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
  732. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
  733. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
  734. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
  735. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
  736. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
  737. package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
  738. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
  739. package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
  740. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
  741. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
  742. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
  743. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
  744. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
  745. package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
  746. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
  747. package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
  748. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
  749. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
  750. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
  751. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
  752. package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
  753. package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
  754. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
  755. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
  756. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
  757. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
  758. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
  759. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
  760. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
  761. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
  762. package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
  763. /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
  764. /package/lib/{util → css}/conventions.js +0 -0
  765. /package/lib/{util → css}/topologicalSort.js +0 -0
  766. /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
  767. /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
  768. /package/lib/{util → fs}/StackedCacheMap.js +0 -0
  769. /package/lib/{util → javascript}/StackedMap.js +0 -0
  770. /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
  771. /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
  772. /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
  773. /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
  774. /package/lib/{util → optimize}/Queue.js +0 -0
  775. /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.
@@ -202,7 +206,7 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
202
206
  * @typedef {import("./util/deprecation").FakeHook<T>} FakeHook<T>
203
207
  */
204
208
  /** @import { RuntimeSpec } from "./util/runtime" */
205
- /** @import { InputFileSystem } from "./util/fs" */
209
+ /** @import { InputFileSystem } from "./fs/fs" */
206
210
 
207
211
  /**
208
212
  * Defines the callback callback.
@@ -547,9 +551,7 @@ const getBuildCycleError = memoize(() => require("./errors/BuildCycleError"));
547
551
  /** @type {AssetInfo} */
548
552
  const EMPTY_ASSET_INFO = Object.freeze({});
549
553
 
550
- const esmDependencyCategory = "esm";
551
-
552
- // TODO webpack 6: remove
554
+ // TODO in the next major release: remove
553
555
  const deprecatedNormalModuleLoaderHook = util.deprecate(
554
556
  /**
555
557
  * Handles the callback logic for this hook.
@@ -557,12 +559,12 @@ const deprecatedNormalModuleLoaderHook = util.deprecate(
557
559
  * @returns {NormalModuleCompilationHooks["loader"]} hooks
558
560
  */
559
561
  (compilation) =>
560
- require("./NormalModule").getCompilationHooks(compilation).loader,
562
+ require("./module/NormalModule").getCompilationHooks(compilation).loader,
561
563
  "Compilation.hooks.normalModuleLoader was moved to NormalModule.getCompilationHooks(compilation).loader",
562
564
  "DEP_WEBPACK_COMPILATION_NORMAL_MODULE_LOADER_HOOK"
563
565
  );
564
566
 
565
- // TODO webpack 6: remove
567
+ // TODO in the next major release: remove
566
568
  /**
567
569
  * Define removed module templates.
568
570
  * @param {ModuleTemplates | undefined} moduleTemplates module templates
@@ -653,7 +655,7 @@ const reduceAffectType = (connections) => {
653
655
  return affected;
654
656
  };
655
657
 
656
- /** @typedef {{ id: ModuleId, modules?: Map<Module, ModuleId>, blocks?: (ChunkId | null)[], sourceTypes?: SourceTypes }} References */
658
+ /** @typedef {{ id: ModuleId, modules?: Map<Module, string>, blocks?: (ChunkId | null)[], sourceTypes?: SourceTypes }} References */
657
659
  /** @typedef {Map<Module, WeakTupleMap<EXPECTED_ANY[], EXPECTED_ANY>>} ModuleMemCaches */
658
660
  /** @typedef {{ chunk: Chunk, load: () => Promise<EXPECTED_ANY>, create: (loaded: EXPECTED_ANY) => RuntimeModule, chunkGraph: ChunkGraph }} PendingRuntimeModule */
659
661
 
@@ -1101,7 +1103,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1101
1103
  shouldGenerateChunkAssets: new SyncBailHook([]),
1102
1104
  /** @type {SyncHook<[]>} */
1103
1105
  beforeChunkAssets: new SyncHook([]),
1104
- // TODO webpack 6 remove
1106
+ // TODO in the next major release: remove
1105
1107
  /** @deprecated */
1106
1108
  additionalChunkAssets:
1107
1109
  /** @type {FakeHook<Pick<AsyncSeriesHook<[Chunks]>, "tap" | "tapAsync" | "tapPromise" | "name">>} */
@@ -1114,7 +1116,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1114
1116
  )
1115
1117
  ),
1116
1118
 
1117
- // TODO webpack 6 deprecate
1119
+ // TODO in the next major release: deprecate
1118
1120
  /** @deprecated */
1119
1121
  additionalAssets:
1120
1122
  /** @type {FakeHook<Pick<AsyncSeriesHook<[]>, "tap" | "tapAsync" | "tapPromise" | "name">>} */
@@ -1125,7 +1127,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1125
1127
  () => []
1126
1128
  )
1127
1129
  ),
1128
- // TODO webpack 6 remove
1130
+ // TODO in the next major release: remove
1129
1131
  /** @deprecated */
1130
1132
  optimizeChunkAssets:
1131
1133
  /** @type {FakeHook<Pick<AsyncSeriesHook<[Chunks]>, "tap" | "tapAsync" | "tapPromise" | "name">>} */
@@ -1137,7 +1139,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1137
1139
  "DEP_WEBPACK_COMPILATION_OPTIMIZE_CHUNK_ASSETS"
1138
1140
  )
1139
1141
  ),
1140
- // TODO webpack 6 remove
1142
+ // TODO in the next major release: remove
1141
1143
  /** @deprecated */
1142
1144
  afterOptimizeChunkAssets:
1143
1145
  /** @type {FakeHook<Pick<AsyncSeriesHook<[Chunks]>, "tap" | "tapAsync" | "tapPromise" | "name">>} */
@@ -1149,10 +1151,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1149
1151
  "DEP_WEBPACK_COMPILATION_AFTER_OPTIMIZE_CHUNK_ASSETS"
1150
1152
  )
1151
1153
  ),
1152
- // TODO webpack 6 deprecate
1154
+ // TODO in the next major release: deprecate
1153
1155
  /** @deprecated */
1154
1156
  optimizeAssets: processAssetsHook,
1155
- // TODO webpack 6 deprecate
1157
+ // TODO in the next major release: deprecate
1156
1158
  /** @deprecated */
1157
1159
  afterOptimizeAssets: afterProcessAssetsHook,
1158
1160
 
@@ -1464,6 +1466,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1464
1466
  this._restoredUnsafeCacheEntries = new Map();
1465
1467
  /** @type {WeakSet<Module>} */
1466
1468
  this.builtModules = new WeakSet();
1469
+ // a module whose dependency failed to resolve reports nothing for it now,
1470
+ // but will once the target exists, which needs no module to be rebuilt
1471
+ /** @type {Set<Module>} */
1472
+ this._modulesWithUnresolvedDependencies = new Set();
1467
1473
  /** @type {WeakSet<Module>} */
1468
1474
  this.codeGeneratedModules = new WeakSet();
1469
1475
  /** @type {WeakSet<Module>} */
@@ -1482,7 +1488,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1482
1488
  this.buildDependencies = new LazySet();
1483
1489
  /** @type {FileSystemDependencies} */
1484
1490
  this.optionalBuildDependencies = new LazySet();
1485
- // TODO webpack 6 remove
1491
+ // TODO in the next major release: remove
1486
1492
  /**
1487
1493
  * @deprecated
1488
1494
  * @type {{ add: (item: string) => FileSystemDependencies }}
@@ -1516,8 +1522,8 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1516
1522
  this._unsafeCachePredicate =
1517
1523
  typeof unsafeCache === "function" ? unsafeCache : () => true;
1518
1524
 
1519
- /** @type {LazyBarrelController} */
1520
- this._lazyBarrelController = new LazyBarrelController(this);
1525
+ /** @type {LazyBarrels} */
1526
+ this._lazyBarrels = new LazyBarrels(this);
1521
1527
  }
1522
1528
 
1523
1529
  getStats() {
@@ -1930,7 +1936,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
1930
1936
  );
1931
1937
 
1932
1938
  // lazy barrel: defer re-export targets of side-effect-free modules
1933
- const hasLazyBarrel = this._lazyBarrelController.classify(module);
1939
+ const hasLazyBarrel = this._lazyBarrels.classify(module);
1934
1940
 
1935
1941
  /** @type {DependenciesBlock} */
1936
1942
  let currentBlock;
@@ -2011,15 +2017,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2011
2017
  */
2012
2018
  const processDependency = (dep, index) => {
2013
2019
  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
- }
2020
+ if (hasLazyBarrel && this._lazyBarrels.isLazy(dep)) return;
2023
2021
 
2024
2022
  if (this._unsafeCache) {
2025
2023
  try {
@@ -2034,7 +2032,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2034
2032
  dep,
2035
2033
  unsafeCachedModule
2036
2034
  );
2037
- this._lazyBarrelController.unlazyForDependency(
2035
+ this._lazyBarrels.unlazyForDependency(
2038
2036
  unsafeCachedModule,
2039
2037
  dep,
2040
2038
  sortedDependencies
@@ -2052,7 +2050,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2052
2050
  dep,
2053
2051
  cachedModule
2054
2052
  );
2055
- this._lazyBarrelController.unlazyForDependency(
2053
+ this._lazyBarrels.unlazyForDependency(
2056
2054
  cachedModule,
2057
2055
  dep,
2058
2056
  sortedDependencies
@@ -2117,7 +2115,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2117
2115
  dep,
2118
2116
  cachedModule
2119
2117
  ); // a3
2120
- this._lazyBarrelController.unlazyForDependency(
2118
+ this._lazyBarrels.unlazyForDependency(
2121
2119
  cachedModule,
2122
2120
  dep,
2123
2121
  sortedDependencies
@@ -2198,7 +2196,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2198
2196
  // mostly esm dependencies would be used
2199
2197
  // so we don't allocate extra string for them
2200
2198
  const cacheKey =
2201
- category === esmDependencyCategory
2199
+ category === Dependency.ESM_CATEGORY
2202
2200
  ? resourceIdent
2203
2201
  : `${category}${resourceIdent}`;
2204
2202
  let list = /** @type {FactoryCacheValue} */ (factoryCacheValue).get(
@@ -2347,7 +2345,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2347
2345
  },
2348
2346
  (err, result) => {
2349
2347
  if (result) {
2350
- // TODO webpack 6: remove
2348
+ // TODO in the next major release: remove
2351
2349
  // For backward-compat
2352
2350
  if (result.module === undefined && result instanceof Module) {
2353
2351
  result = {
@@ -2467,6 +2465,30 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2467
2465
  context
2468
2466
  },
2469
2467
  (err, factoryResult) => {
2468
+ // Loader-created modules have no origin connection to resolve again.
2469
+ // Preserve their resolution dependencies in the caller's build snapshot.
2470
+ if (
2471
+ factoryResult &&
2472
+ !connectOrigin &&
2473
+ originModule &&
2474
+ originModule.buildInfo &&
2475
+ this.buildQueue.isProcessing(originModule)
2476
+ ) {
2477
+ for (const key of /** @type {const} */ ([
2478
+ "fileDependencies",
2479
+ "contextDependencies",
2480
+ "missingDependencies"
2481
+ ])) {
2482
+ const dependencies = factoryResult[key];
2483
+ if (dependencies) {
2484
+ let target = originModule.buildInfo[key];
2485
+ if (target === undefined) {
2486
+ originModule.buildInfo[key] = target = new LazySet();
2487
+ }
2488
+ target.addAll(dependencies);
2489
+ }
2490
+ }
2491
+ }
2470
2492
  const applyFactoryResultDependencies = () => {
2471
2493
  const { fileDependencies, contextDependencies, missingDependencies } =
2472
2494
  /** @type {ModuleFactoryResult} */ (factoryResult);
@@ -2482,6 +2504,9 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2482
2504
  };
2483
2505
  if (err) {
2484
2506
  if (factoryResult) applyFactoryResultDependencies();
2507
+ if (originModule) {
2508
+ this._modulesWithUnresolvedDependencies.add(originModule);
2509
+ }
2485
2510
  if (dependencies.every((d) => d.optional)) {
2486
2511
  this.warnings.push(err);
2487
2512
  return callback();
@@ -2662,10 +2687,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2662
2687
  // lazy barrel: on the first call the module is unclassified, so this only
2663
2688
  // records the ids and `processModuleDependencies` replays them. Later the
2664
2689
  // module is built and never re-walked, so the targets are built here.
2665
- const unlazyItems = this._lazyBarrelController.request(
2666
- module,
2667
- dependencies
2668
- );
2690
+ const unlazyItems = this._lazyBarrels.request(module, dependencies);
2669
2691
 
2670
2692
  if (unlazyItems !== undefined) {
2671
2693
  let inProgress = unlazyItems.length + 1; // +1 = the module's own dep processing
@@ -2783,7 +2805,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
2783
2805
  * @returns {void} returns
2784
2806
  */
2785
2807
  addEntry(context, entry, optionsOrName, callback) {
2786
- // TODO webpack 6 remove
2808
+ // TODO in the next major release: remove
2787
2809
  const options =
2788
2810
  typeof optionsOrName === "object"
2789
2811
  ? optionsOrName
@@ -3132,6 +3154,20 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3132
3154
  let statUnchanged = 0;
3133
3155
  let statChanged = 0;
3134
3156
  let statNew = 0;
3157
+ /**
3158
+ * Include async state and connection activity, which can change without changing module ids.
3159
+ * @param {Module} module connected module
3160
+ * @param {readonly ModuleGraphConnection[]} connections connections to it
3161
+ * @returns {string} reference key
3162
+ */
3163
+ const referenceKey = (module, connections) => {
3164
+ let key = `${chunkGraph.getModuleId(module)}${moduleGraph.isAsync(module)}`;
3165
+ for (const connection of connections) {
3166
+ const state = connection.getActiveState(undefined);
3167
+ key += state === true ? "T" : state === false ? "F" : "O";
3168
+ }
3169
+ return key;
3170
+ };
3135
3171
  /**
3136
3172
  * Compute references.
3137
3173
  * @param {Module} module module
@@ -3139,16 +3175,19 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3139
3175
  */
3140
3176
  const computeReferences = (module) => {
3141
3177
  const id = /** @type {ModuleId} */ (chunkGraph.getModuleId(module));
3142
- /** @type {Map<Module, ModuleId> | undefined} */
3178
+ /** @type {Map<Module, string> | undefined} */
3143
3179
  let modules;
3144
3180
  /** @type {(ChunkId | null)[] | undefined} */
3145
3181
  let blocks;
3146
3182
  const outgoing = moduleGraph.getOutgoingConnectionsByModule(module);
3147
3183
  if (outgoing !== undefined) {
3148
- for (const m of outgoing.keys()) {
3149
- if (!m) continue;
3184
+ for (const [referencedModule, connections] of outgoing) {
3185
+ if (!referencedModule) continue;
3150
3186
  if (modules === undefined) modules = new Map();
3151
- modules.set(m, /** @type {ModuleId} */ (chunkGraph.getModuleId(m)));
3187
+ modules.set(
3188
+ referencedModule,
3189
+ referenceKey(referencedModule, connections)
3190
+ );
3152
3191
  }
3153
3192
  }
3154
3193
  if (module.blocks.length > 0) {
@@ -3179,7 +3218,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3179
3218
  * @param {Module} module module
3180
3219
  * @param {object} references references
3181
3220
  * @param {string | number} references.id id
3182
- * @param {Map<Module, string | number | undefined>=} references.modules modules
3221
+ * @param {Map<Module, string>=} references.modules modules
3183
3222
  * @param {(string | number | null)[]=} references.blocks blocks
3184
3223
  * @param {SourceTypes=} references.sourceTypes connection-dependent source types
3185
3224
  * @returns {boolean} ok?
@@ -3190,8 +3229,15 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3190
3229
  ) => {
3191
3230
  if (id !== chunkGraph.getModuleId(module)) return false;
3192
3231
  if (modules !== undefined) {
3193
- for (const [module, id] of modules) {
3194
- if (chunkGraph.getModuleId(module) !== id) return false;
3232
+ const outgoing = moduleGraph.getOutgoingConnectionsByModule(module);
3233
+ for (const [referencedModule, key] of modules) {
3234
+ const connections = outgoing && outgoing.get(referencedModule);
3235
+ if (
3236
+ connections === undefined ||
3237
+ referenceKey(referencedModule, connections) !== key
3238
+ ) {
3239
+ return false;
3240
+ }
3195
3241
  }
3196
3242
  }
3197
3243
  if (blocks !== undefined) {
@@ -3253,6 +3299,35 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3253
3299
  );
3254
3300
  }
3255
3301
 
3302
+ /**
3303
+ * Returns the modules whose dependency report depends on a dependency that
3304
+ * failed to resolve: they must not be remembered as clean, as the target can
3305
+ * appear without any of them being rebuilt.
3306
+ * @private
3307
+ * @returns {Set<Module>} the modules with such a dependency and their parents
3308
+ */
3309
+ _modulesReportingUnresolved() {
3310
+ const result = new Set(this._modulesWithUnresolvedDependencies);
3311
+ if (result.size === 0) return result;
3312
+ const { moduleGraph } = this;
3313
+ // as the token walk does, only a transitive connection reaches further up;
3314
+ // a parent first reached directly may still be reached transitively later
3315
+ const queued = new Set(result);
3316
+ for (const module of queued) {
3317
+ for (const [
3318
+ referencingModule,
3319
+ connections
3320
+ ] of moduleGraph.getIncomingConnectionsByOriginModule(module)) {
3321
+ if (!referencingModule) continue;
3322
+ result.add(referencingModule);
3323
+ if (reduceAffectType(connections) === Dependency.TRANSITIVE) {
3324
+ queued.add(referencingModule);
3325
+ }
3326
+ }
3327
+ }
3328
+ return result;
3329
+ }
3330
+
3256
3331
  /**
3257
3332
  * Assigns a fresh dependency report cache token to every module whose
3258
3333
  * dependency errors/warnings could have changed since the previous
@@ -3531,16 +3606,26 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3531
3606
  if (useReportCacheTokens) {
3532
3607
  this._flagModulesForDependencyReporting(modules);
3533
3608
  }
3609
+ const reportsUnresolved = this._modulesReportingUnresolved();
3534
3610
  for (const module of modules) {
3611
+ const unresolved = reportsUnresolved.has(module);
3535
3612
  const memCache = moduleMemCaches && moduleMemCaches.get(module);
3536
- if (memCache && memCache.get("noWarningsOrErrors")) continue;
3613
+ if (!unresolved && memCache && memCache.get("noWarningsOrErrors")) {
3614
+ continue;
3615
+ }
3537
3616
  let token;
3538
3617
  if (useReportCacheTokens) {
3539
3618
  token = dependencyReportCacheTokens.get(module);
3540
3619
  const cleanModules = modulesWithoutProblems.get(
3541
3620
  /** @type {DependencyReportCacheToken} */ (token)
3542
3621
  );
3543
- if (cleanModules !== undefined && cleanModules.has(module)) continue;
3622
+ if (
3623
+ !unresolved &&
3624
+ cleanModules !== undefined &&
3625
+ cleanModules.has(module)
3626
+ ) {
3627
+ continue;
3628
+ }
3544
3629
  }
3545
3630
  let hasProblems = this.reportDependencyErrorsAndWarnings(module, [
3546
3631
  module
@@ -3565,7 +3650,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3565
3650
  hasProblems = true;
3566
3651
  }
3567
3652
  }
3568
- if (!hasProblems) {
3653
+ if (!hasProblems && !unresolved) {
3569
3654
  if (memCache) memCache.set("noWarningsOrErrors", true);
3570
3655
  if (useReportCacheTokens) {
3571
3656
  let cleanModules = modulesWithoutProblems.get(
@@ -3623,7 +3708,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si
3623
3708
  this.processDependenciesQueue.clear();
3624
3709
  this.addModuleQueue.clear();
3625
3710
  // lazy barrel only acts during make; release its bookkeeping now
3626
- this._lazyBarrelController.clear();
3711
+ this._lazyBarrels.clear();
3627
3712
  // unsafe-cache restore tables are only read during make; release them
3628
3713
  // so they stop pinning restored modules for the rest of the compilation
3629
3714
  this._restoredUnsafeCacheModuleEntries.clear();
@@ -4026,7 +4111,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
4026
4111
  const warning = new (getModuleDependencyWarning())(
4027
4112
  module,
4028
4113
  w,
4029
- /** @type {EXPECTED_ANY} */ (w).loc || d.loc
4114
+ w.loc || d.loc
4030
4115
  );
4031
4116
  this.warnings.push(warning);
4032
4117
  hasProblems = true;
@@ -4038,7 +4123,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
4038
4123
  const error = new (getModuleDependencyError())(
4039
4124
  module,
4040
4125
  e,
4041
- /** @type {EXPECTED_ANY} */ (e).loc || d.loc
4126
+ e.loc || d.loc
4042
4127
  );
4043
4128
  this.errors.push(error);
4044
4129
  hasProblems = true;
@@ -4162,7 +4247,35 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
4162
4247
  (err) => {
4163
4248
  if (err) return callback(/** @type {WebpackError} */ (err));
4164
4249
  const affected = new Set(pending.map(({ jobModule }) => jobModule));
4165
- const redo = jobs.filter(({ module }) => affected.has(module));
4250
+ // A module referencing one of these may have copied what it generated
4251
+ // into its own code (an analyzable `new URL`), so it goes again after.
4252
+ /** @type {Set<Module>} */
4253
+ const referencing = new Set();
4254
+ for (const { info } of pending) {
4255
+ for (const connection of this.moduleGraph.getIncomingConnections(
4256
+ info.module
4257
+ )) {
4258
+ const { originModule } = connection;
4259
+ if (originModule !== null && !affected.has(originModule)) {
4260
+ referencing.add(originModule);
4261
+ }
4262
+ }
4263
+ }
4264
+
4265
+ const redo = [
4266
+ ...jobs.filter(({ module }) => affected.has(module)),
4267
+ // A referencing module concatenated into another is generated as
4268
+ // part of it, so the job to redo is the concatenated module's.
4269
+ ...jobs.filter(({ module }) => {
4270
+ if (affected.has(module)) return false;
4271
+ if (referencing.has(module)) return true;
4272
+ if (module.getRootModule() === module) return false;
4273
+ for (const inner of module.getSourceModules()) {
4274
+ if (referencing.has(inner)) return true;
4275
+ }
4276
+ return false;
4277
+ })
4278
+ ];
4166
4279
  // Generated directly rather than through the codegen cache: the module
4167
4280
  // hash is unchanged, so the cache would hand back the first pass again.
4168
4281
  const results =
@@ -4621,9 +4734,10 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
4621
4734
  * is over. `runtimeRequirementInTree` is a sync hook, so a tap cannot await
4622
4735
  * the load itself; anything the tap reads off the requirement set must be
4623
4736
  * captured before queueing, since `create` runs later.
4737
+ * @template T
4624
4738
  * @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
4739
+ * @param {() => Promise<T>} load resolves the runtime module implementation
4740
+ * @param {(loaded: T) => RuntimeModule} create builds the runtime module from it
4627
4741
  * @param {ChunkGraph} chunkGraph the chunk graph
4628
4742
  * @returns {void}
4629
4743
  */
@@ -4655,7 +4769,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
4655
4769
  .then(() => this._attachPendingRuntimeModules(callback), callback);
4656
4770
  }
4657
4771
 
4658
- // TODO webpack 6 make chunkGraph argument non-optional
4772
+ // TODO in the next major release: make chunkGraph argument non-optional
4659
4773
  /**
4660
4774
  * Adds runtime module.
4661
4775
  * @param {Chunk} chunk target chunk
@@ -4773,7 +4887,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
4773
4887
  const name = options.name;
4774
4888
  if (name) {
4775
4889
  const entrypoint = this.namedChunkGroups.get(name);
4776
- if (entrypoint instanceof Entrypoint) {
4890
+ if (entrypoint !== undefined && entrypoint.isEntrypoint()) {
4777
4891
  if (module) {
4778
4892
  entrypoint.addOrigin(module, loc, request);
4779
4893
  }
@@ -5154,8 +5268,12 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o
5154
5268
  });
5155
5269
  moduleHashDigest = moduleHash.digest(hashDigest);
5156
5270
  } catch (err) {
5271
+ // A diagnostic that already names its module says more than this wrapper
5272
+ // would, e.g. which runtime module's `generate()` threw.
5157
5273
  errors.push(
5158
- new (getModuleHashingError())(module, /** @type {Error} */ (err))
5274
+ WebpackError.isWebpackError(err) && err.module
5275
+ ? err
5276
+ : new (getModuleHashingError())(module, /** @type {Error} */ (err))
5159
5277
  );
5160
5278
  moduleHashDigest = "XXXXXX";
5161
5279
  }
@@ -5923,7 +6041,7 @@ This prevents using hashes of each other and should be avoided.`);
5923
6041
  );
5924
6042
 
5925
6043
  assetCacheItem.get((err, sourceFromCache) => {
5926
- /** @type {string | import("./TemplatedPathPlugin").TemplatePathFn<EXPECTED_ANY>} */
6044
+ /** @type {RenderManifestEntryTemplated["filenameTemplate"]} */
5927
6045
  let filenameTemplate;
5928
6046
  /** @type {string} */
5929
6047
  let file;
@@ -6044,7 +6162,7 @@ This prevents using hashes of each other and should be avoided.`);
6044
6162
  /**
6045
6163
  * Returns interpolated path.
6046
6164
  * @template {PathData} [T=PathData]
6047
- * @param {string | import("./TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
6165
+ * @param {string | import("./template/TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
6048
6166
  * @param {T=} data context data
6049
6167
  * @returns {string} interpolated path
6050
6168
  */
@@ -6061,7 +6179,7 @@ This prevents using hashes of each other and should be avoided.`);
6061
6179
  /**
6062
6180
  * Gets path with info.
6063
6181
  * @template {PathData} [T=PathData]
6064
- * @param {string | import("./TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
6182
+ * @param {string | import("./template/TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
6065
6183
  * @param {T=} data context data
6066
6184
  * @returns {InterpolatedPathAndAssetInfo} interpolated path and asset info
6067
6185
  */
@@ -6078,7 +6196,7 @@ This prevents using hashes of each other and should be avoided.`);
6078
6196
  /**
6079
6197
  * Returns interpolated path.
6080
6198
  * @template {PathData} [T=PathData]
6081
- * @param {string | import("./TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
6199
+ * @param {string | import("./template/TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
6082
6200
  * @param {T} data context data
6083
6201
  * @returns {string} interpolated path
6084
6202
  */
@@ -6093,7 +6211,7 @@ This prevents using hashes of each other and should be avoided.`);
6093
6211
  /**
6094
6212
  * Gets asset path with info.
6095
6213
  * @template {PathData} [T=PathData]
6096
- * @param {string | import("./TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
6214
+ * @param {string | import("./template/TemplatedPathPlugin").TemplatePathFn<T>} filename used to get asset path with hash
6097
6215
  * @param {T} data context data
6098
6216
  * @returns {InterpolatedPathAndAssetInfo} interpolated path and asset info
6099
6217
  */
@@ -6267,7 +6385,7 @@ This prevents using hashes of each other and should be avoided.`);
6267
6385
  reportErrors();
6268
6386
 
6269
6387
  // for backward-compat temporary set the chunk graph
6270
- // TODO webpack 6
6388
+ // TODO in the next major release: drop it
6271
6389
  const old = this.chunkGraph;
6272
6390
  this.chunkGraph = chunkGraph;
6273
6391
  this.processRuntimeRequirements({
@@ -6542,7 +6660,7 @@ This prevents using hashes of each other and should be avoided.`);
6542
6660
  const usedIds = new Set();
6543
6661
 
6544
6662
  for (const module of this.modules) {
6545
- if (module.type === WEBPACK_MODULE_TYPE_RUNTIME) continue;
6663
+ if (module.is("runtime")) continue;
6546
6664
  const moduleId = chunkGraph.getModuleId(module);
6547
6665
  if (moduleId === null) continue;
6548
6666
  if (usedIds.has(moduleId)) {
@@ -6598,7 +6716,7 @@ This prevents using hashes of each other and should be avoided.`);
6598
6716
  // Hide from typescript
6599
6717
  const compilationPrototype = Compilation.prototype;
6600
6718
 
6601
- // TODO webpack 6 remove
6719
+ // TODO in the next major release: remove
6602
6720
  Object.defineProperty(compilationPrototype, "modifyHash", {
6603
6721
  writable: false,
6604
6722
  enumerable: false,
@@ -6610,7 +6728,7 @@ Object.defineProperty(compilationPrototype, "modifyHash", {
6610
6728
  }
6611
6729
  });
6612
6730
 
6613
- // TODO webpack 6 remove
6731
+ // TODO in the next major release: remove
6614
6732
  Object.defineProperty(compilationPrototype, "cache", {
6615
6733
  enumerable: false,
6616
6734
  configurable: false,
@@ -6629,7 +6747,7 @@ Object.defineProperty(compilationPrototype, "cache", {
6629
6747
  set: util.deprecate(
6630
6748
  /**
6631
6749
  * Handles the value callback for this hook.
6632
- * @param {EXPECTED_ANY} _v value
6750
+ * @param {Cache} _v value
6633
6751
  */
6634
6752
  (_v) => {},
6635
6753
  "Compilation.cache was removed in favor of Compilation.getCache()",