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
@@ -6,54 +6,57 @@
6
6
  "use strict";
7
7
 
8
8
  const { CachedSource, ReplaceSource } = require("webpack-sources");
9
- const APIPlugin = require("./APIPlugin");
10
9
 
11
- const InitFragment = require("./InitFragment");
12
- const { CSS_TYPE, JAVASCRIPT_TYPE } = require("./ModuleSourceTypeConstants");
13
- const { WEBASSEMBLY_MODULE_TYPE_ASYNC } = require("./ModuleTypeConstants");
14
- const RuntimeGlobals = require("./RuntimeGlobals");
15
- const Template = require("./Template");
16
10
  const {
17
11
  getOutgoingAsyncModules
18
- } = require("./async-modules/AsyncModuleHelpers");
19
- const HarmonyImportDependency = require("./dependencies/HarmonyImportDependency");
20
- const ImportDependency = require("./dependencies/ImportDependency");
21
- const { ImportPhaseUtils } = require("./dependencies/ImportPhase");
22
- const JavascriptModulesPlugin = require("./javascript/JavascriptModulesPlugin");
23
- const { InlinedUsedName } = require("./optimize/InlineExports");
12
+ } = require("../async-modules/AsyncModuleHelpers");
13
+ const { ImportPhaseUtils } = require("../dependencies/core/ImportPhase");
14
+ const isDependencyKind = require("../graph/isDependencyKind");
15
+ const APIPlugin = require("../javascript/APIPlugin");
16
+ const JavascriptModulesPlugin = require("../javascript/JavascriptModulesPlugin");
17
+ const {
18
+ CSS_TYPE,
19
+ JAVASCRIPT_TYPE
20
+ } = require("../module/ModuleSourceTypeConstants");
21
+ const {
22
+ WEBASSEMBLY_MODULE_TYPE_ASYNC
23
+ } = require("../module/ModuleTypeConstants");
24
+ const { isInlinedUsedName } = require("../optimize/InlineExports");
24
25
  const {
25
26
  getDeferredCycleModuleIds,
26
27
  getDeferredCycleModules,
27
28
  getKnownExportNames,
28
29
  getMakeDeferredNamespaceModeFromExportsType,
29
30
  getOptimizedDeferredModule
30
- } = require("./runtime/MakeDeferredNamespaceObjectRuntime");
31
+ } = require("../runtime/MakeDeferredNamespaceObjectRuntime");
32
+ const RuntimeGlobals = require("../runtime/RuntimeGlobals");
31
33
  const {
32
34
  isAbsoluteBaseUri,
33
35
  isChunkRelativeBaseUri
34
- } = require("./runtime/baseUri");
35
- const { equals } = require("./util/ArrayHelpers");
36
- const { getScheme } = require("./util/URLAbsoluteSpecifier");
37
- const { compareIds } = require("./util/comparators");
38
- const compileBooleanMatcher = require("./util/compileBooleanMatcher");
36
+ } = require("../runtime/baseUri");
37
+ const { equals } = require("../util/ArrayHelpers");
38
+ const { getScheme } = require("../util/URLAbsoluteSpecifier");
39
+ const { compareIds } = require("../util/comparators");
40
+ const compileBooleanMatcher = require("../util/compileBooleanMatcher");
39
41
  const {
40
42
  RESOLVABLE_SPECIFIER_REGEXP,
41
43
  getUndoPath,
42
44
  toJsStringLiteral
43
- } = require("./util/identifier");
44
- const memoize = require("./util/memoize");
45
- const { propertyAccess, propertyName } = require("./util/property");
45
+ } = require("../util/identifier");
46
+ const memoize = require("../util/memoize");
47
+ const { propertyAccess, propertyName } = require("../util/property");
46
48
  const {
47
49
  forEachRuntime,
48
50
  getRuntimeKey,
49
51
  intersectRuntime,
50
52
  subtractRuntime
51
- } = require("./util/runtime");
53
+ } = require("../util/runtime");
54
+ const InitFragment = require("./InitFragment");
55
+ const Template = require("./Template");
52
56
 
53
- const getCssModulesPlugin = memoize(() => require("./css/CssModulesPlugin"));
57
+ const getCssModulesPlugin = memoize(() => require("../css/CssModulesPlugin"));
54
58
  // `Compilation` requires this module, so its stage constants are read lazily.
55
- const getCompilation = memoize(() => require("./Compilation"));
56
- const getExternalModule = memoize(() => require("./ExternalModule"));
59
+ const getCompilation = memoize(() => require("../Compilation"));
57
60
 
58
61
  /**
59
62
  * @typedef {object} ChunkAssetNaming
@@ -88,10 +91,8 @@ const CHUNK_ASSET_NAMING = new Map([
88
91
  ]);
89
92
  const getTemplatedPathPlugin = memoize(() => require("./TemplatedPathPlugin"));
90
93
  const getConcatenatedModule = memoize(() =>
91
- require("./optimize/ConcatenatedModule")
94
+ require("../optimize/ConcatenatedModule")
92
95
  );
93
- const getNormalModule = memoize(() => require("./NormalModule"));
94
-
95
96
  /**
96
97
  * Whether a hot update can re-run the module a reference is emitted into: the HMR
97
98
  * plugin marks every normal module, and a concatenated one is read through its root.
@@ -100,9 +101,8 @@ const getNormalModule = memoize(() => require("./NormalModule"));
100
101
  */
101
102
  const isHotModule = (module) => {
102
103
  if (module === undefined) return false;
103
- const normal =
104
- module instanceof getConcatenatedModule() ? module.rootModule : module;
105
- return normal instanceof getNormalModule() && normal.hot;
104
+ const normal = module.getRootModule();
105
+ return normal.is("normal") && normal.hot;
106
106
  };
107
107
 
108
108
  // Any `[hash]`/`[fullhash]`/`[chunkhash]`/`[contenthash]` token, incl. a `:<length>`
@@ -220,16 +220,16 @@ const HOT_NAME_BAILOUT =
220
220
  /**
221
221
  * @import {
222
222
  * OutputNormalizedWithDefaults as OutputOptions
223
- * } from "./config/defaults"
223
+ * } from "../config/defaults"
224
224
  */
225
- /** @import { PublicPath, WasmLoading } from "../declarations/WebpackOptions" */
226
- /** @import ModuleDependency from "./dependencies/ModuleDependency" */
225
+ /** @import { PublicPath, WasmLoading } from "../../declarations/WebpackOptions.d.ts" */
226
+ /** @import ModuleDependency from "../dependencies/core/ModuleDependency" */
227
227
  /**
228
228
  * @import Module, {
229
229
  * ReadOnlyRuntimeRequirements,
230
230
  * BuildMeta,
231
231
  * RuntimeRequirements
232
- * } from "./Module"
232
+ * } from "../module/Module"
233
233
  */
234
234
  /** @typedef {"import" | "url" | "url-runtime" | "url-inline" | "wasm" | "wasm-relative"} AnalyzableForm */
235
235
  /**
@@ -304,18 +304,19 @@ const CHUNK_ASSET_NAMING_BY_STAND_IN = new Map(
304
304
 
305
305
  const PASS_NAME = "analyzableChunkNaming";
306
306
 
307
- /** @import AsyncDependenciesBlock from "./AsyncDependenciesBlock" */
307
+ /** @import AsyncDependenciesBlock from "../graph/AsyncDependenciesBlock" */
308
308
  /** @import { Source } from "webpack-sources" */
309
- /** @import Compiler from "./Compiler" */
310
- /** @import Chunk, { ChunkFilenameTemplate, ChunkId } from "./Chunk" */
311
- /** @import ChunkGraph, { ModuleId } from "./ChunkGraph" */
312
- /** @import Compilation from "./Compilation" */
313
- /** @import Dependency from "./Dependency" */
314
- /** @import ModuleGraph from "./ModuleGraph" */
315
- /** @import RequestShortener from "./RequestShortener" */
316
- /** @import Hash from "./util/Hash" */
317
- /** @import CodeGenerationResults from "./CodeGenerationResults" */
318
- /** @import { RuntimeSpec } from "./util/runtime" */
309
+ /** @import Compiler from "../Compiler" */
310
+ /** @import Chunk, { ChunkFilenameTemplate, ChunkId } from "../graph/Chunk" */
311
+ /** @import ChunkGraph, { ModuleId } from "../graph/ChunkGraph" */
312
+ /** @import Compilation from "../Compilation" */
313
+ /** @import Dependency from "../graph/Dependency" */
314
+ /** @import ModuleGraph from "../graph/ModuleGraph" */
315
+ /** @import RequestShortener from "../util/RequestShortener" */
316
+ /** @import Hash from "../util/Hash" */
317
+ /** @import CodeGenerationResults from "../module/CodeGenerationResults" */
318
+ /** @import { RuntimeSpec } from "../util/runtime" */
319
+ /** @import { JsonValue } from "../fs/fs" */
319
320
 
320
321
  /**
321
322
  * A stand-in whose every hash reads back as `hash`. Which content hashes a chunk
@@ -413,11 +414,11 @@ function getGlobalObject(definition) {
413
414
 
414
415
  if (
415
416
  // identifier, we do not need real identifier regarding ECMAScript/Unicode
416
- /^[_\p{L}][_0-9\p{L}]*$/iu.test(trimmed) ||
417
+ /^[_\p{L}][_0-9\p{L}]*$/u.test(trimmed) ||
417
418
  // iife
418
419
  // call expression
419
420
  // expression in parentheses
420
- /^(?:[_\p{L}][_0-9\p{L}]*)?\(.*\)$/iu.test(trimmed)
421
+ /^(?:[_\p{L}][_0-9\p{L}]*)?\(.*\)$/u.test(trimmed)
421
422
  ) {
422
423
  return trimmed;
423
424
  }
@@ -428,7 +429,7 @@ function getGlobalObject(definition) {
428
429
  // An async external is a promise, not a module record with an evaluating state.
429
430
  const isAsyncExternal = (/** @type {Module} */ module) =>
430
431
  Boolean(/** @type {BuildMeta} */ (module.buildMeta).async) &&
431
- module instanceof getExternalModule();
432
+ module.is("external");
432
433
 
433
434
  // `createFakeNamespaceObject`'s "merge all properties" bit, the only one that
434
435
  // changes which names the namespace it builds carries.
@@ -830,6 +831,16 @@ class RuntimeTemplate {
830
831
  return true;
831
832
  }
832
833
 
834
+ /**
835
+ * Reports an analyzable-ESM bailout from outside this class.
836
+ * @param {Module | undefined} module the module the reference is emitted into
837
+ * @param {string} reason why no literal could be baked
838
+ * @returns {void}
839
+ */
840
+ analyzableBailout(module, reason) {
841
+ this._analyzableBailout(module, reason, null);
842
+ }
843
+
833
844
  /**
834
845
  * Records why a reference kept the runtime form, on the module that wrote it —
835
846
  * the channel `ModuleConcatenationPlugin` already reports through, so it reaches
@@ -1375,7 +1386,7 @@ class RuntimeTemplate {
1375
1386
  const spellable =
1376
1387
  this._getAnalyzableFileSpecifier(
1377
1388
  module,
1378
- /** @type {ChunkGraph} */ (chunkGraph),
1389
+ chunkGraph,
1379
1390
  [["literal", "x"]],
1380
1391
  true
1381
1392
  ) !== null;
@@ -1850,6 +1861,28 @@ class RuntimeTemplate {
1850
1861
  return `${this.comment({ request })}${JSON.stringify(moduleId)}`;
1851
1862
  }
1852
1863
 
1864
+ /**
1865
+ * The side-effect annotation for output another build reads back, which is the
1866
+ * only output it can pay for — elsewhere it is bytes with no consumer.
1867
+ * @returns {string} the annotation, or an empty string
1868
+ */
1869
+ sideEffectsAnnotation() {
1870
+ return this.outputOptions.module ? "/*#__PURE__*/" : "";
1871
+ }
1872
+
1873
+ /**
1874
+ * A module instantiation's side-effect annotation. Write it only where the
1875
+ * statement ends the call: a minifier reads `f(id)(x)` as one and drops it.
1876
+ * @param {Module} module the instantiated module
1877
+ * @param {ModuleGraph} moduleGraph the module graph
1878
+ * @returns {string} the annotation, or an empty string when it may have side effects
1879
+ */
1880
+ moduleSideEffectsAnnotation(module, moduleGraph) {
1881
+ return module.getSideEffectsConnectionState(moduleGraph) === false
1882
+ ? this.sideEffectsAnnotation()
1883
+ : "";
1884
+ }
1885
+
1853
1886
  /**
1854
1887
  * Returns the expression.
1855
1888
  * @param {object} options options object
@@ -2077,8 +2110,8 @@ class RuntimeTemplate {
2077
2110
  const exportsType = module.getExportsType(chunkGraph.moduleGraph, strict);
2078
2111
 
2079
2112
  const isModuleDeferred =
2080
- (dependency instanceof HarmonyImportDependency ||
2081
- dependency instanceof ImportDependency) &&
2113
+ (isDependencyKind(dependency, "esm-import") ||
2114
+ isDependencyKind(dependency, "dynamic-import")) &&
2082
2115
  ImportPhaseUtils.isDefer(dependency.phase) &&
2083
2116
  !(/** @type {BuildMeta} */ (module.buildMeta).async);
2084
2117
 
@@ -2366,8 +2399,9 @@ class RuntimeTemplate {
2366
2399
  let importContent;
2367
2400
 
2368
2401
  const isModuleDeferred =
2369
- (dependency instanceof HarmonyImportDependency ||
2370
- dependency instanceof ImportDependency) &&
2402
+ dependency !== undefined &&
2403
+ (isDependencyKind(dependency, "esm-import") ||
2404
+ isDependencyKind(dependency, "dynamic-import")) &&
2371
2405
  ImportPhaseUtils.isDefer(dependency.phase) &&
2372
2406
  !isAsyncExternal(module);
2373
2407
 
@@ -2378,7 +2412,7 @@ class RuntimeTemplate {
2378
2412
  // would deadlock; forcing the namespace throws instead.
2379
2413
  outgoingAsyncModules.delete(originModule);
2380
2414
 
2381
- importContent = `/* deferred harmony import */ ${optDeclaration}${importVar} = ${getOptimizedDeferredModule(
2415
+ importContent = `/* deferred harmony import */ ${optDeclaration}${importVar} = ${this.sideEffectsAnnotation()}${getOptimizedDeferredModule(
2382
2416
  moduleId,
2383
2417
  exportsType,
2384
2418
  Array.from(outgoingAsyncModules, (mod) => chunkGraph.getModuleId(mod)),
@@ -2391,7 +2425,10 @@ class RuntimeTemplate {
2391
2425
 
2392
2426
  return [importContent, ""];
2393
2427
  }
2394
- importContent = `/* harmony import */ ${optDeclaration}${importVar} = ${RuntimeGlobals.require}(${moduleId});\n`;
2428
+ importContent = `/* harmony import */ ${optDeclaration}${importVar} = ${this.moduleSideEffectsAnnotation(
2429
+ module,
2430
+ moduleGraph
2431
+ )}${RuntimeGlobals.require}(${moduleId});\n`;
2395
2432
 
2396
2433
  if (exportsType === "dynamic") {
2397
2434
  runtimeRequirements.add(RuntimeGlobals.compatGetDefaultExport);
@@ -2458,8 +2495,8 @@ class RuntimeTemplate {
2458
2495
  );
2459
2496
 
2460
2497
  const isModuleDeferred =
2461
- (dependency instanceof HarmonyImportDependency ||
2462
- dependency instanceof ImportDependency) &&
2498
+ (isDependencyKind(dependency, "esm-import") ||
2499
+ isDependencyKind(dependency, "dynamic-import")) &&
2463
2500
  ImportPhaseUtils.isDefer(dependency.phase) &&
2464
2501
  !isAsyncExternal(module);
2465
2502
 
@@ -2476,7 +2513,7 @@ class RuntimeTemplate {
2476
2513
  );
2477
2514
  return `${comment} undefined`;
2478
2515
  }
2479
- if (used instanceof InlinedUsedName) {
2516
+ if (isInlinedUsedName(used)) {
2480
2517
  throw new Error(
2481
2518
  "Can't inline the exports of defer imported module"
2482
2519
  );
@@ -2585,7 +2622,7 @@ class RuntimeTemplate {
2585
2622
  );
2586
2623
  return `${comment} undefined`;
2587
2624
  }
2588
- if (used instanceof InlinedUsedName) {
2625
+ if (isInlinedUsedName(used)) {
2589
2626
  return used.render(
2590
2627
  Template.toNormalComment(
2591
2628
  `inlined export ${propertyAccess(exportName)}`
@@ -2702,7 +2739,7 @@ class RuntimeTemplate {
2702
2739
  if (exportInfo.provided === false) continue;
2703
2740
  const used = exportsInfo.getUsedName([exportInfo.name], runtime);
2704
2741
  if (!used) continue;
2705
- if (used instanceof InlinedUsedName) {
2742
+ if (isInlinedUsedName(used)) {
2706
2743
  // An inlined export isn't reachable by name on the raw exports object,
2707
2744
  // so the decoupled object must expose the inlined value directly.
2708
2745
  mangled = true;
@@ -2851,7 +2888,7 @@ class RuntimeTemplate {
2851
2888
  * @returns {boolean} true when the hash exists by the time the target is hashed
2852
2889
  */
2853
2890
  _hashRoundBefore(chunk, target) {
2854
- const chunkGraph = /** @type {ChunkGraph} */ (this.compilation.chunkGraph);
2891
+ const chunkGraph = this.compilation.chunkGraph;
2855
2892
  const round = hashRound(chunk, chunkGraph);
2856
2893
  const targetRound = hashRound(target, chunkGraph);
2857
2894
  if (round !== targetRound) return round < targetRound;
@@ -2919,8 +2956,7 @@ class RuntimeTemplate {
2919
2956
  */
2920
2957
  _settlesLate(chunk) {
2921
2958
  return (
2922
- /** @type {ChunkGraph} */
2923
- (this.compilation.chunkGraph).getChunkFullHashModulesIterable(chunk) !==
2959
+ this.compilation.chunkGraph.getChunkFullHashModulesIterable(chunk) !==
2924
2960
  undefined
2925
2961
  );
2926
2962
  }
@@ -2952,7 +2988,7 @@ class RuntimeTemplate {
2952
2988
  _markChunksSettlingLate() {
2953
2989
  this._chunksBakingFullHash = new Set();
2954
2990
  const { compilation } = this;
2955
- const chunkGraph = /** @type {ChunkGraph} */ (compilation.chunkGraph);
2991
+ const chunkGraph = compilation.chunkGraph;
2956
2992
  const results = compilation.codeGenerationResults;
2957
2993
  if (results === undefined) return;
2958
2994
  /** @type {Map<Chunk, Set<string>>} */
@@ -3197,11 +3233,7 @@ class RuntimeTemplate {
3197
3233
  const undo =
3198
3234
  shape === undefined
3199
3235
  ? null
3200
- : getUndoPath(
3201
- `${shape}x`,
3202
- /** @type {string} */ (this.outputOptions.path),
3203
- true
3204
- );
3236
+ : getUndoPath(`${shape}x`, this.outputOptions.path, true);
3205
3237
  this._publicPathClimbText = undo === "./" ? "" : undo;
3206
3238
  }
3207
3239
  return this._publicPathClimbText;
@@ -3236,11 +3268,7 @@ class RuntimeTemplate {
3236
3268
  undo:
3237
3269
  chunkName === null
3238
3270
  ? null
3239
- : getUndoPath(
3240
- chunkName,
3241
- /** @type {string} */ (outputOptions.path),
3242
- true
3243
- ),
3271
+ : getUndoPath(chunkName, outputOptions.path, true),
3244
3272
  // A chunk in an initial group and an async one both is served at two urls,
3245
3273
  // one public path apart, so no one literal in it is right for both.
3246
3274
  loaded: chunk.isOnlyInitial() ? false : chunk.canBeInitial() ? null : true
@@ -3301,11 +3329,7 @@ class RuntimeTemplate {
3301
3329
  : shape,
3302
3330
  { chunk, contentHashType: JAVASCRIPT_TYPE }
3303
3331
  );
3304
- return getUndoPath(
3305
- name,
3306
- /** @type {string} */ (this.outputOptions.path),
3307
- enforceRelative
3308
- );
3332
+ return getUndoPath(name, this.outputOptions.path, enforceRelative);
3309
3333
  }
3310
3334
 
3311
3335
  /**
@@ -3458,7 +3482,7 @@ class RuntimeTemplate {
3458
3482
  const filename =
3459
3483
  deferred && !settled
3460
3484
  ? ""
3461
- : compilation.getPath(/** @type {string} */ (template), {
3485
+ : compilation.getPath(template, {
3462
3486
  chunk,
3463
3487
  // Matches what names the asset, or a placeholder resolved here would
3464
3488
  // not be the one on disk.
@@ -3650,7 +3674,7 @@ class RuntimeTemplate {
3650
3674
  /**
3651
3675
  * A path built by a function, resolved to the value it will have — or `null` when
3652
3676
  * it moves with the compilation hash, which code generation does not know.
3653
- * @param {import("./TemplatedPathPlugin").TemplatePathFn<EXPECTED_ANY>} fn the function
3677
+ * @param {import("./TemplatedPathPlugin").TemplatePathFn} fn the function
3654
3678
  * @param {string | undefined} value its answer to the first probe, or `undefined`
3655
3679
  * when it answered nothing
3656
3680
  * @returns {string | null} the settled value, or `null` when it is hash-dependent
@@ -4076,7 +4100,7 @@ class RuntimeTemplate {
4076
4100
  }
4077
4101
  const undo = getUndoPath(
4078
4102
  this.compilation.getPath(this._hotUpdateShapeText, { chunk }),
4079
- /** @type {string} */ (outputOptions.path),
4103
+ outputOptions.path,
4080
4104
  true
4081
4105
  );
4082
4106
  this._hotUpdateUndoByChunk.set(chunk, undo);
@@ -4094,9 +4118,7 @@ class RuntimeTemplate {
4094
4118
  */
4095
4119
  getAnalyzableWasmUrl(module, chunkGraph, runtime, runtimeRequirements) {
4096
4120
  const { compilation } = this;
4097
- const template = /** @type {string} */ (
4098
- this.outputOptions.webassemblyModuleFilename
4099
- );
4121
+ const template = this.outputOptions.webassemblyModuleFilename;
4100
4122
  // The module's own hash and id are settled here, the compilation's is not — and
4101
4123
  // a placeholder nothing answers is left in the name, so what comes back is either
4102
4124
  // the final name or a template carrying only `[fullhash]`.
@@ -4264,6 +4286,49 @@ class RuntimeTemplate {
4264
4286
  return this.returningFunction(factory);
4265
4287
  }
4266
4288
 
4289
+ /**
4290
+ * @param {object} options options
4291
+ * @param {Module} options.module the module the body belongs to
4292
+ * @param {boolean} options.needModule whether the body reads `module`
4293
+ * @param {boolean} options.needExports whether the body reads `exports`
4294
+ * @param {boolean} options.needRequire whether the body reads `__webpack_require__`
4295
+ * @param {boolean} options.needThisAsExports whether the body reads `this` as exports
4296
+ * @param {boolean=} options.shorthand render as a method shorthand, without the `function` keyword
4297
+ * @returns {string} the header, ending with the opening brace
4298
+ */
4299
+ moduleFactoryFnHeader({
4300
+ module,
4301
+ needModule,
4302
+ needExports,
4303
+ needRequire,
4304
+ needThisAsExports,
4305
+ shorthand = false
4306
+ }) {
4307
+ /** @type {string[]} */
4308
+ const args = [];
4309
+ if (needExports || needRequire || needModule) {
4310
+ args.push(
4311
+ needModule
4312
+ ? module.moduleArgument
4313
+ : `__unused_webpack_${module.moduleArgument}`
4314
+ );
4315
+ }
4316
+ if (needExports || needRequire) {
4317
+ args.push(
4318
+ needExports
4319
+ ? module.exportsArgument
4320
+ : `__unused_webpack_${module.exportsArgument}`
4321
+ );
4322
+ }
4323
+ if (needRequire) args.push(RuntimeGlobals.require);
4324
+ const parameters = args.join(", ");
4325
+ if (shorthand) return `(${parameters}) {`;
4326
+ if (!needThisAsExports && this.supportsArrowFunction()) {
4327
+ return `(${parameters}) => {`;
4328
+ }
4329
+ return `function(${parameters}) {`;
4330
+ }
4331
+
4267
4332
  /**
4268
4333
  * Define es module flag statement.
4269
4334
  * @param {object} options options
@@ -4420,11 +4485,7 @@ class RuntimeTemplate {
4420
4485
  } else if (kind === "literal") {
4421
4486
  specifier += value;
4422
4487
  } else if (kind === "undo") {
4423
- specifier += getUndoPath(
4424
- assetName,
4425
- /** @type {string} */ (outputOptions.path),
4426
- true
4427
- );
4488
+ specifier += getUndoPath(assetName, outputOptions.path, true);
4428
4489
  } else if (kind === "template") {
4429
4490
  specifier += compilation.getPath(
4430
4491
  /** @type {string} */ (value),
@@ -4575,7 +4636,7 @@ class RuntimeTemplate {
4575
4636
  * @returns {SpecifierPart[] | null} what it resolves to, or `null` if unreadable
4576
4637
  */
4577
4638
  static _readAnalyzableSpecifier(payload) {
4578
- /** @type {EXPECTED_ANY} */
4639
+ /** @type {JsonValue} */
4579
4640
  let decoded;
4580
4641
  try {
4581
4642
  decoded = JSON.parse(
@@ -4590,17 +4651,19 @@ class RuntimeTemplate {
4590
4651
  if (!Array.isArray(decoded)) return null;
4591
4652
  for (const part of decoded) {
4592
4653
  if (!Array.isArray(part) || part.length !== 2) return null;
4593
- if (!SPECIFIER_PART_KINDS.has(part[0])) return null;
4654
+ if (!SPECIFIER_PART_KINDS.has(/** @type {string} */ (part[0]))) {
4655
+ return null;
4656
+ }
4594
4657
  // Only a chunk id may be a number; the rest are read as text.
4595
4658
  if (
4596
4659
  typeof part[1] !== "string" &&
4597
- (!CHUNK_SPECIFIER_PART_KINDS.has(part[0]) ||
4660
+ (!CHUNK_SPECIFIER_PART_KINDS.has(/** @type {string} */ (part[0])) ||
4598
4661
  typeof part[1] !== "number")
4599
4662
  ) {
4600
4663
  return null;
4601
4664
  }
4602
4665
  }
4603
- return decoded;
4666
+ return /** @type {SpecifierPart[]} */ (decoded);
4604
4667
  }
4605
4668
  }
4606
4669
 
@@ -6,30 +6,32 @@
6
6
  "use strict";
7
7
 
8
8
  const { ConcatSource, PrefixSource } = require("webpack-sources");
9
- const { WEBPACK_MODULE_TYPE_RUNTIME } = require("./ModuleTypeConstants");
10
- const RuntimeGlobals = require("./RuntimeGlobals");
9
+ const {
10
+ WEBPACK_MODULE_TYPE_RUNTIME
11
+ } = require("../module/ModuleTypeConstants");
12
+ const RuntimeGlobals = require("../runtime/RuntimeGlobals");
11
13
 
12
14
  /** @import { Source } from "webpack-sources" */
13
15
  /**
14
16
  * @import {
15
17
  * OutputNormalizedWithDefaults as OutputOptions
16
- * } from "./config/defaults"
18
+ * } from "../config/defaults"
17
19
  */
18
- /** @import Chunk from "./Chunk" */
19
- /** @import ChunkGraph, { ModuleId } from "./ChunkGraph" */
20
- /** @import CodeGenerationResults from "./CodeGenerationResults" */
21
- /** @import { AssetInfo, PathData } from "./Compilation" */
20
+ /** @import Chunk from "../graph/Chunk" */
21
+ /** @import ChunkGraph, { ModuleId } from "../graph/ChunkGraph" */
22
+ /** @import CodeGenerationResults from "../module/CodeGenerationResults" */
23
+ /** @import { AssetInfo, PathData } from "../Compilation" */
22
24
  /** @import DependencyTemplates from "./DependencyTemplates" */
23
- /** @import Module from "./Module" */
24
- /** @import ModuleGraph from "./ModuleGraph" */
25
+ /** @import Module from "../module/Module" */
26
+ /** @import ModuleGraph from "../graph/ModuleGraph" */
25
27
  /** @import ModuleTemplate from "./ModuleTemplate" */
26
- /** @import RuntimeModule from "./RuntimeModule" */
28
+ /** @import RuntimeModule from "../runtime/RuntimeModule" */
27
29
  /** @import RuntimeTemplate from "./RuntimeTemplate" */
28
30
  /**
29
31
  * @import {
30
32
  * ChunkRenderContext,
31
33
  * RenderContext
32
- * } from "./javascript/JavascriptModulesPlugin"
34
+ * } from "../javascript/JavascriptModulesPlugin"
33
35
  */
34
36
 
35
37
  const START_LOWERCASE_ALPHABET_CODE = "a".charCodeAt(0);
@@ -51,7 +53,7 @@ const LINE_SEPARATOR_REGEX = /\r?\n/g;
51
53
  const IDENTIFIER_NAME_REPLACE_REGEX = /^([^a-z$_])/i;
52
54
  const IDENTIFIER_ALPHA_NUMERIC_NAME_REPLACE_REGEX = /[^a-z0-9$]+/gi;
53
55
  const COMMENT_END_REGEX = /\*\//g;
54
- const PATH_NAME_NORMALIZE_REPLACE_REGEX = /[^a-z0-9_!§$()=\-^°]+/gi;
56
+ const PATH_NAME_NORMALIZE_REPLACE_REGEX = /[^a-zA-Z0-9_!§$()=\-^°]+/g;
55
57
  const MATCH_PADDED_HYPHENS_REPLACE_REGEX = /^-|-$/g;
56
58
 
57
59
  /**
@@ -7,23 +7,24 @@
7
7
 
8
8
  const { basename, extname, posix } = require("path");
9
9
  const util = require("util");
10
- const Chunk = require("./Chunk");
11
- const Module = require("./Module");
10
+ const PathVariableError = require("../errors/PathVariableError");
11
+ const Chunk = require("../graph/Chunk");
12
+ const Module = require("../module/Module");
12
13
  const {
13
14
  decode: decodeBase,
14
15
  encode: encodeBase
15
- } = require("./util/hash/hash-digest");
16
+ } = require("../util/hash/hash-digest");
16
17
  const {
17
18
  ABSOLUTE_PATH_REGEXP,
18
19
  WINDOWS_ABS_PATH_REGEXP,
19
20
  WINDOWS_PATH_SEPARATOR_REGEXP,
20
21
  parseResource
21
- } = require("./util/identifier");
22
- const memoize = require("./util/memoize");
22
+ } = require("../util/identifier");
23
+ const memoize = require("../util/memoize");
23
24
 
24
- const getMimeTypes = memoize(() => require("./util/mimeTypes"));
25
+ const getMimeTypes = memoize(() => require("../util/mimeTypes"));
25
26
 
26
- /** @import ChunkGraph, { ModuleId } from "./ChunkGraph" */
27
+ /** @import ChunkGraph, { ModuleId } from "../graph/ChunkGraph" */
27
28
  /**
28
29
  * @import Compilation, {
29
30
  * AssetInfo,
@@ -31,9 +32,9 @@ const getMimeTypes = memoize(() => require("./util/mimeTypes"));
31
32
  * PathData,
32
33
  * PathDataChunk,
33
34
  * PathDataModule
34
- * } from "./Compilation"
35
+ * } from "../Compilation"
35
36
  */
36
- /** @import Compiler from "./Compiler" */
37
+ /** @import Compiler from "../Compiler" */
37
38
 
38
39
  const REGEXP = /\[\\*([\w:]+)\\*\]/g;
39
40
 
@@ -121,7 +122,7 @@ const toContainedPath = (path) => {
121
122
  * @returns {string} source file name for the filename template
122
123
  */
123
124
  const toTemplateSourceFileName = (sourceFilename, compilation) =>
124
- // TODO webpack 6: remove the check, always contain
125
+ // TODO in the next major release: remove the check, always contain
125
126
  compilation.options.experiments.futureDefaults
126
127
  ? toContainedPath(sourceFilename)
127
128
  : sourceFilename;
@@ -330,9 +331,7 @@ const replacer = (value, allowEmpty) => {
330
331
  }
331
332
  if (value === null || value === undefined) {
332
333
  if (!allowEmpty) {
333
- throw new Error(
334
- `Path variable ${match} not implemented in this context: ${input}`
335
- );
334
+ throw new PathVariableError(match, input);
336
335
  }
337
336
 
338
337
  return "";
@@ -344,16 +343,15 @@ const replacer = (value, allowEmpty) => {
344
343
  return fn;
345
344
  };
346
345
 
347
- /** @type {Map<string, (...args: EXPECTED_ANY[]) => EXPECTED_ANY>} */
346
+ /** @type {Map<string, () => void>} */
348
347
  const deprecationCache = new Map();
349
348
  const deprecatedFunction = (() => () => {})();
350
349
  /**
351
350
  * Returns function with deprecation output.
352
- * @template {(...args: EXPECTED_ANY[]) => EXPECTED_ANY} T
353
- * @param {T} fn function
351
+ * @param {Replacer} fn function
354
352
  * @param {string} message message
355
353
  * @param {string} code code
356
- * @returns {T} function with deprecation output
354
+ * @returns {Replacer} function with deprecation output
357
355
  */
358
356
  const deprecated = (fn, message, code) => {
359
357
  let d = deprecationCache.get(message);
@@ -361,12 +359,10 @@ const deprecated = (fn, message, code) => {
361
359
  d = util.deprecate(deprecatedFunction, message, code);
362
360
  deprecationCache.set(message, d);
363
361
  }
364
- return /** @type {T} */ (
365
- (...args) => {
366
- d();
367
- return fn(...args);
368
- }
369
- );
362
+ return (...args) => {
363
+ d();
364
+ return fn(...args);
365
+ };
370
366
  };
371
367
 
372
368
  /**