webpack 5.111.1 → 5.112.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 (774) hide show
  1. package/README.md +1 -1
  2. package/lib/Chunk.js +3 -966
  3. package/lib/Compilation.js +224 -106
  4. package/lib/Compiler.js +19 -19
  5. package/lib/Dependency.js +3 -551
  6. package/lib/DependencyTemplate.js +3 -70
  7. package/lib/EntryPlugin.js +3 -68
  8. package/lib/Entrypoint.js +3 -121
  9. package/lib/ExternalsPlugin.js +3 -92
  10. package/lib/FileSystemInfo.js +3 -4629
  11. package/lib/InitFragment.js +3 -204
  12. package/lib/LibraryTemplatePlugin.js +3 -46
  13. package/lib/ModuleFilenameHelpers.js +3 -400
  14. package/lib/ModuleNotFoundError.js +2 -2
  15. package/lib/MultiCompiler.js +37 -8
  16. package/lib/NormalModule.js +3 -2242
  17. package/lib/NullFactory.js +3 -22
  18. package/lib/ProgressPlugin.js +3 -908
  19. package/lib/RawModule.js +3 -197
  20. package/lib/RequestShortener.js +3 -37
  21. package/lib/SingleEntryPlugin.js +1 -1
  22. package/lib/WebpackError.js +2 -2
  23. package/lib/asset/AssetBytesGenerator.js +8 -8
  24. package/lib/asset/AssetBytesParser.js +3 -3
  25. package/lib/asset/AssetGenerator.js +36 -22
  26. package/lib/asset/AssetModule.js +2 -2
  27. package/lib/asset/AssetModulesPlugin.js +6 -9
  28. package/lib/asset/AssetParser.js +3 -3
  29. package/lib/asset/AssetSourceGenerator.js +8 -8
  30. package/lib/asset/AssetSourceParser.js +3 -3
  31. package/lib/asset/RawDataUrlModule.js +17 -10
  32. package/lib/asset/WebManifestGenerator.js +7 -7
  33. package/lib/asset/WebManifestParser.js +5 -5
  34. package/lib/async-modules/AsyncModuleHelpers.js +6 -5
  35. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
  36. package/lib/async-modules/InferAsyncModulesPlugin.js +4 -3
  37. package/lib/async-modules/isGeneratorLowered.js +3 -3
  38. package/lib/bun/BunTargetPlugin.js +1 -1
  39. package/lib/cache/AddBuildDependenciesPlugin.js +2 -19
  40. package/lib/{Cache.js → cache/Cache.js} +1 -1
  41. package/lib/{CacheFacade.js → cache/CacheFacade.js} +5 -5
  42. package/lib/cache/IdleFileCachePlugin.js +2 -2
  43. package/lib/cache/MemoryCachePlugin.js +2 -2
  44. package/lib/cache/MemoryWithGcCachePlugin.js +2 -2
  45. package/lib/cache/PackFileCacheStrategy.js +8 -10
  46. package/lib/cache/ResolverCachePlugin.js +8 -4
  47. package/lib/cache/mergeEtags.js +1 -1
  48. package/lib/{OptionsApply.js → config/OptionsApply.js} +3 -3
  49. package/lib/{PlatformPlugin.js → config/PlatformPlugin.js} +2 -2
  50. package/lib/{WebpackOptionsApply.js → config/WebpackOptionsApply.js} +217 -200
  51. package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
  52. package/lib/config/browserslistTargetHandler.js +1 -1
  53. package/lib/{cli.js → config/cli.js} +5 -158
  54. package/lib/config/defaults.js +144 -48
  55. package/lib/config/getClaimedAssetTypes.js +21 -13
  56. package/lib/config/normalization.js +18 -7
  57. package/lib/config/target.js +10 -0
  58. package/lib/container/ContainerEntryDependency.js +1 -1
  59. package/lib/container/ContainerEntryModule.js +13 -11
  60. package/lib/container/ContainerEntryModuleFactory.js +2 -2
  61. package/lib/container/ContainerExposedDependency.js +1 -1
  62. package/lib/container/ContainerPlugin.js +178 -5
  63. package/lib/container/ContainerReferencePlugin.js +75 -14
  64. package/lib/container/FallbackDependency.js +1 -1
  65. package/lib/container/FallbackItemDependency.js +1 -1
  66. package/lib/container/FallbackModule.js +12 -10
  67. package/lib/container/FallbackModuleFactory.js +2 -2
  68. package/lib/container/HoistContainerReferencesPlugin.js +10 -11
  69. package/lib/container/ModuleFederationPlugin.js +306 -7
  70. package/lib/container/RemoteModule.js +14 -10
  71. package/lib/container/RemoteRuntimeModule.js +5 -5
  72. package/lib/container/RemoteToExternalDependency.js +1 -1
  73. package/lib/container/moduleFederationHooks.js +1 -1
  74. package/lib/context/ContextModule.js +36 -25
  75. package/lib/context/ContextModuleFactory.js +13 -10
  76. package/lib/context/ContextReplacementPlugin.js +3 -3
  77. package/lib/css/CssGenerator.js +38 -31
  78. package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
  79. package/lib/css/CssLoadingRuntimeModule.js +77 -44
  80. package/lib/css/CssModule.js +27 -29
  81. package/lib/css/CssModulesPlugin.js +128 -44
  82. package/lib/css/CssParser.js +682 -291
  83. package/lib/css/CssServerStylesRuntimeModule.js +3 -3
  84. package/lib/css/cssMinify.js +110 -37
  85. package/lib/css/data.js +6985 -5125
  86. package/lib/css/syntax-parser.js +19873 -0
  87. package/lib/css/syntax-printer.js +6037 -0
  88. package/lib/css/syntax.js +37 -18686
  89. package/lib/debug/ProfilingPlugin.js +52 -19
  90. package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
  91. package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +9 -9
  92. package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +2 -2
  93. package/lib/deno/DenoTargetPlugin.js +1 -1
  94. package/lib/dependencies/ConstDependency.js +3 -120
  95. package/lib/dependencies/ContextElementDependency.js +5 -172
  96. package/lib/dependencies/NullDependency.js +3 -37
  97. package/lib/dependencies/{AMDDefineDependency.js → amd/AMDDefineDependency.js} +12 -11
  98. package/lib/dependencies/{AMDDefineDependencyParserPlugin.js → amd/AMDDefineDependencyParserPlugin.js} +10 -10
  99. package/lib/dependencies/{AMDPlugin.js → amd/AMDPlugin.js} +11 -11
  100. package/lib/dependencies/{AMDRequireArrayDependency.js → amd/AMDRequireArrayDependency.js} +15 -13
  101. package/lib/dependencies/{AMDRequireContextDependency.js → amd/AMDRequireContextDependency.js} +11 -10
  102. package/lib/dependencies/{AMDRequireDependenciesBlock.js → amd/AMDRequireDependenciesBlock.js} +7 -6
  103. package/lib/dependencies/{AMDRequireDependenciesBlockParserPlugin.js → amd/AMDRequireDependenciesBlockParserPlugin.js} +10 -10
  104. package/lib/dependencies/{AMDRequireDependency.js → amd/AMDRequireDependency.js} +13 -12
  105. package/lib/dependencies/{AMDRequireItemDependency.js → amd/AMDRequireItemDependency.js} +8 -7
  106. package/lib/dependencies/{AMDRuntimeModules.js → amd/AMDRuntimeModules.js} +3 -3
  107. package/lib/dependencies/{LocalModule.js → amd/LocalModule.js} +8 -4
  108. package/lib/dependencies/{LocalModuleDependency.js → amd/LocalModuleDependency.js} +17 -10
  109. package/lib/dependencies/{LocalModulesHelpers.js → amd/LocalModulesHelpers.js} +1 -1
  110. package/lib/dependencies/{RequireJsStuffPlugin.js → amd/RequireJsStuffPlugin.js} +9 -9
  111. package/lib/dependencies/{UnsupportedDependency.js → amd/UnsupportedDependency.js} +11 -10
  112. package/lib/dependencies/{CommonJsDependencyHelpers.js → commonjs/CommonJsDependencyHelpers.js} +8 -9
  113. package/lib/dependencies/{CommonJsExportRequireDependency.js → commonjs/CommonJsExportRequireDependency.js} +166 -33
  114. package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
  115. package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +138 -61
  116. package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
  117. package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +35 -30
  118. package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +13 -12
  119. package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +47 -35
  120. package/lib/dependencies/{CommonJsRequireContextDependency.js → commonjs/CommonJsRequireContextDependency.js} +15 -14
  121. package/lib/dependencies/{CommonJsRequireDependency.js → commonjs/CommonJsRequireDependency.js} +33 -25
  122. package/lib/dependencies/{CommonJsSelfReferenceDependency.js → commonjs/CommonJsSelfReferenceDependency.js} +17 -16
  123. package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
  124. package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
  125. package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +5 -5
  126. package/lib/dependencies/{RequireEnsureDependency.js → commonjs/RequireEnsureDependency.js} +13 -12
  127. package/lib/dependencies/{RequireEnsureItemDependency.js → commonjs/RequireEnsureItemDependency.js} +7 -6
  128. package/lib/dependencies/{RequireEnsurePlugin.js → commonjs/RequireEnsurePlugin.js} +8 -8
  129. package/lib/dependencies/{RequireHeaderDependency.js → commonjs/RequireHeaderDependency.js} +14 -13
  130. package/lib/dependencies/{RequireIncludeDependency.js → commonjs/RequireIncludeDependency.js} +13 -12
  131. package/lib/dependencies/{RequireIncludeDependencyParserPlugin.js → commonjs/RequireIncludeDependencyParserPlugin.js} +3 -27
  132. package/lib/dependencies/{RequireIncludePlugin.js → commonjs/RequireIncludePlugin.js} +4 -4
  133. package/lib/dependencies/{RequireResolveContextDependency.js → commonjs/RequireResolveContextDependency.js} +11 -10
  134. package/lib/dependencies/{RequireResolveDependency.js → commonjs/RequireResolveDependency.js} +12 -11
  135. package/lib/dependencies/{RequireResolveHeaderDependency.js → commonjs/RequireResolveHeaderDependency.js} +13 -12
  136. package/lib/dependencies/commonjs/TopLevelThisParserPlugin.js +59 -0
  137. package/lib/dependencies/{ContextDependency.js → context/ContextDependency.js} +15 -14
  138. package/lib/dependencies/{ContextDependencyHelpers.js → context/ContextDependencyHelpers.js} +31 -9
  139. package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
  140. package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
  141. package/lib/dependencies/context/ContextElementDependency.js +198 -0
  142. package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
  143. package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +9 -9
  144. package/lib/dependencies/{ImportMetaContextPlugin.js → context/ImportMetaContextPlugin.js} +5 -5
  145. package/lib/dependencies/{ImportMetaGlobDependency.js → context/ImportMetaGlobDependency.js} +7 -6
  146. package/lib/dependencies/{ImportMetaGlobDependencyParserPlugin.js → context/ImportMetaGlobDependencyParserPlugin.js} +4 -4
  147. package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +9 -9
  148. package/lib/dependencies/{RequireContextDependency.js → context/RequireContextDependency.js} +7 -6
  149. package/lib/dependencies/{RequireContextDependencyParserPlugin.js → context/RequireContextDependencyParserPlugin.js} +2 -2
  150. package/lib/dependencies/{RequireContextPlugin.js → context/RequireContextPlugin.js} +5 -5
  151. package/lib/dependencies/{CachedConstDependency.js → core/CachedConstDependency.js} +12 -11
  152. package/lib/dependencies/core/ConstDependency.js +131 -0
  153. package/lib/dependencies/{ImportPhase.js → core/ImportPhase.js} +5 -4
  154. package/lib/dependencies/{ModuleDependency.js → core/ModuleDependency.js} +10 -7
  155. package/lib/dependencies/{ModuleDependencyTemplateAsId.js → core/ModuleDependencyTemplateAsId.js} +3 -3
  156. package/lib/dependencies/{ModuleDependencyTemplateAsRequireId.js → core/ModuleDependencyTemplateAsRequireId.js} +2 -2
  157. package/lib/dependencies/{ModuleInitFragmentDependency.js → core/ModuleInitFragmentDependency.js} +10 -9
  158. package/lib/dependencies/core/NullDependency.js +44 -0
  159. package/lib/dependencies/{RuntimeRequirementsDependency.js → core/RuntimeRequirementsDependency.js} +10 -9
  160. package/lib/dependencies/{StaticExportsDependency.js → core/StaticExportsDependency.js} +15 -8
  161. package/lib/dependencies/{CssIcssExportDependency.js → css/CssIcssExportDependency.js} +369 -92
  162. package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +23 -16
  163. package/lib/dependencies/{CssIcssSymbolDependency.js → css/CssIcssSymbolDependency.js} +13 -12
  164. package/lib/dependencies/{CssImportDependency.js → css/CssImportDependency.js} +15 -11
  165. package/lib/dependencies/{CssUrlDependency.js → css/CssUrlDependency.js} +23 -16
  166. package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
  167. package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
  168. package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
  169. package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +29 -21
  170. package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +19 -17
  171. package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
  172. package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +60 -89
  173. package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +80 -45
  174. package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
  175. package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
  176. package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +133 -118
  177. package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
  178. package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +60 -36
  179. package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -4
  180. package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
  181. package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +74 -71
  182. package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +99 -84
  183. package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
  184. package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
  185. package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +94 -59
  186. package/lib/dependencies/esm/ESMModulesPlugin.js +207 -0
  187. package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
  188. package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -11
  189. package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +2 -2
  190. package/lib/{util → dependencies/helpers}/chainedImports.js +5 -5
  191. package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
  192. package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
  193. package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
  194. package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
  195. package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
  196. package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
  197. package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +51 -141
  198. package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
  199. package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -19
  200. package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -15
  201. package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
  202. package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
  203. package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
  204. package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
  205. package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +20 -20
  206. package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
  207. package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
  208. package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
  209. package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
  210. package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
  211. package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +119 -98
  212. package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
  213. package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
  214. package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
  215. package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
  216. package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +28 -20
  217. package/lib/{url → dependencies/url}/URLParserPlugin.js +16 -18
  218. package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
  219. package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
  220. package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
  221. package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
  222. package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +31 -33
  223. package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +22 -15
  224. package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +19 -18
  225. package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
  226. package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
  227. package/lib/devtool/ModuleFilenameHelpers.js +413 -0
  228. package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
  229. package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +154 -26
  230. package/lib/{util → devtool}/generateDebugId.js +1 -1
  231. package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
  232. package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
  233. package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
  234. package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
  235. package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
  236. package/lib/dll/DelegatedModule.js +20 -18
  237. package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
  238. package/lib/dll/DelegatedPlugin.js +1 -1
  239. package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
  240. package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
  241. package/lib/dll/DllEntryPlugin.js +3 -3
  242. package/lib/dll/DllModule.js +11 -9
  243. package/lib/dll/DllModuleFactory.js +3 -3
  244. package/lib/dll/DllPlugin.js +18 -6
  245. package/lib/dll/DllReferencePlugin.js +102 -26
  246. package/lib/dll/LibManifestPlugin.js +9 -7
  247. package/lib/electron/ElectronTargetPlugin.js +2 -2
  248. package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
  249. package/lib/{dependencies → entry}/EntryDependency.js +11 -2
  250. package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
  251. package/lib/entry/EntryPlugin.js +75 -0
  252. package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
  253. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  254. package/lib/errors/BuildCycleError.js +1 -1
  255. package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
  256. package/lib/errors/ChunkRenderError.js +1 -1
  257. package/lib/errors/CodeGenerationError.js +1 -1
  258. package/lib/errors/CommentCompilationWarning.js +1 -1
  259. package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
  260. package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
  261. package/lib/errors/DeprecatedOptionWarning.js +30 -0
  262. package/lib/errors/DllManifestError.js +26 -0
  263. package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
  264. package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
  265. package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
  266. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  267. package/lib/{ErrorHelpers.js → errors/ErrorHelpers.js} +7 -5
  268. package/lib/errors/ExternalStarReexportError.js +2 -2
  269. package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
  270. package/lib/errors/HookWebpackError.js +4 -4
  271. package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
  272. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  273. package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
  274. package/lib/errors/ModuleBuildError.js +1 -1
  275. package/lib/errors/ModuleDependencyError.js +2 -2
  276. package/lib/errors/ModuleDependencyWarning.js +2 -2
  277. package/lib/errors/ModuleError.js +1 -1
  278. package/lib/errors/ModuleHashingError.js +1 -1
  279. package/lib/errors/ModuleNotFoundError.js +3 -3
  280. package/lib/errors/ModuleParseError.js +1 -1
  281. package/lib/errors/ModuleRestoreError.js +1 -1
  282. package/lib/errors/ModuleStoreError.js +1 -1
  283. package/lib/errors/ModuleWarning.js +1 -1
  284. package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
  285. package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
  286. package/lib/errors/NodeStuffInWebError.js +7 -2
  287. package/lib/errors/PathVariableError.js +31 -0
  288. package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
  289. package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
  290. package/lib/errors/RuntimeModuleGenerationError.js +51 -0
  291. package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
  292. package/lib/errors/SystemImportDeprecationWarning.js +43 -0
  293. package/lib/errors/UnmergeableEntryExportsError.js +34 -0
  294. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  295. package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
  296. package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
  297. package/lib/errors/WebpackError.js +12 -3
  298. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
  299. package/lib/esm/ModuleChunkFormatPlugin.js +19 -19
  300. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
  301. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
  302. package/lib/{ExternalModule.js → externals/ExternalModule.js} +79 -55
  303. package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +41 -39
  304. package/lib/externals/ExternalsPlugin.js +99 -0
  305. package/lib/fs/FileSystemInfo.js +4642 -0
  306. package/lib/{util → fs}/fs.js +22 -9
  307. package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
  308. package/lib/graph/Chunk.js +985 -0
  309. package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +187 -80
  310. package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
  311. package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
  312. package/lib/graph/Dependency.js +628 -0
  313. package/lib/graph/Entrypoint.js +136 -0
  314. package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +130 -82
  315. package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
  316. package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +30 -30
  317. package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
  318. package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +152 -57
  319. package/lib/{util → graph}/findGraphRoots.js +14 -8
  320. package/lib/graph/isDependencyKind.js +23 -0
  321. package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
  322. package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +47 -47
  323. package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
  324. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +10 -8
  325. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
  326. package/lib/hmr/LazyCompilationPlugin.js +31 -21
  327. package/lib/html/HtmlGenerator.js +107 -43
  328. package/lib/html/HtmlModule.js +6 -2
  329. package/lib/html/HtmlModulesPlugin.js +172 -76
  330. package/lib/html/HtmlParser.js +503 -153
  331. package/lib/html/builtinEmbeddedRenderer.js +60 -13
  332. package/lib/html/data.js +2 -1
  333. package/lib/html/htmlMinify.js +111 -41
  334. package/lib/html/syntax-parser.js +15796 -0
  335. package/lib/html/syntax-printer.js +1034 -0
  336. package/lib/html/syntax.js +37 -13952
  337. package/lib/html/xmlMinify.js +67 -0
  338. package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
  339. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  340. package/lib/ids/HashedModuleIdsPlugin.js +31 -4
  341. package/lib/ids/IdHelpers.js +4 -4
  342. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  343. package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
  344. package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
  345. package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
  346. package/lib/ids/SyncModuleIdsPlugin.js +3 -3
  347. package/lib/{util → ids}/numberHash.js +1 -1
  348. package/lib/index.js +303 -97
  349. package/lib/{APIPlugin.js → javascript/APIPlugin.js} +25 -25
  350. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
  351. package/lib/javascript/BasicEvaluatedExpression.js +4 -4
  352. package/lib/javascript/ChunkHelpers.js +64 -4
  353. package/lib/javascript/CommonJsChunkFormatPlugin.js +4 -7
  354. package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +7 -7
  355. package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +74 -7
  356. package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
  357. package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
  358. package/lib/javascript/JavascriptGenerator.js +17 -17
  359. package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
  360. package/lib/javascript/JavascriptModule.js +4 -3
  361. package/lib/javascript/JavascriptModulesPlugin.js +440 -211
  362. package/lib/javascript/JavascriptParser.js +220 -134
  363. package/lib/javascript/JavascriptParserHelpers.js +1 -1
  364. package/lib/javascript/MergedEntryExports.js +196 -0
  365. package/lib/javascript/ScopeAnalyzer.js +3840 -5
  366. package/lib/javascript/StartupHelpers.js +6 -6
  367. package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +12 -15
  368. package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
  369. package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
  370. package/lib/javascript/data.js +533 -122
  371. package/lib/javascript/jsMinify.js +272 -0
  372. package/lib/javascript/regexp.js +67 -32
  373. package/lib/javascript/syntax-parser.js +18561 -0
  374. package/lib/javascript/syntax-printer-data.js +933 -0
  375. package/lib/javascript/syntax-printer.js +47106 -0
  376. package/lib/javascript/syntax.js +20 -11274
  377. package/lib/json/JsonData.js +1 -1
  378. package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
  379. package/lib/json/JsonGenerator.js +10 -10
  380. package/lib/json/JsonModule.js +2 -2
  381. package/lib/json/JsonModulesPlugin.js +1 -1
  382. package/lib/json/JsonParser.js +5 -5
  383. package/lib/json/jsonMinify.js +69 -0
  384. package/lib/library/AbstractLibraryPlugin.js +28 -15
  385. package/lib/library/AmdLibraryPlugin.js +4 -4
  386. package/lib/library/AssignLibraryPlugin.js +27 -11
  387. package/lib/library/EnableLibraryPlugin.js +1 -1
  388. package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
  389. package/lib/library/JsonpLibraryPlugin.js +1 -1
  390. package/lib/library/LibraryTemplatePlugin.js +53 -0
  391. package/lib/library/ModuleLibraryPlugin.js +160 -166
  392. package/lib/library/SystemLibraryPlugin.js +6 -8
  393. package/lib/library/UmdLibraryPlugin.js +3 -4
  394. package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
  395. package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
  396. package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
  397. package/lib/{dependencies → loaders}/LoaderPlugin.js +2 -2
  398. package/lib/loaders/LoaderRunner.js +31 -21
  399. package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
  400. package/lib/logging/Logger.js +7 -9
  401. package/lib/logging/ProgressPlugin.js +957 -0
  402. package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
  403. package/lib/{Generator.js → module/Generator.js} +16 -14
  404. package/lib/{Module.js → module/Module.js} +119 -51
  405. package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
  406. package/lib/module/NormalModule.js +2348 -0
  407. package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +53 -54
  408. package/lib/module/NullFactory.js +29 -0
  409. package/lib/{Parser.js → module/Parser.js} +3 -3
  410. package/lib/module/RawModule.js +208 -0
  411. package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
  412. package/lib/{util → module}/extractSourceMap.js +2 -2
  413. package/lib/{util → module}/findCaseMismatch.js +2 -2
  414. package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
  415. package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
  416. package/lib/{dependencies → node}/ExternalModuleInitFragment.js +6 -5
  417. package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
  418. package/lib/node/NodeEnvironmentPlugin.js +11 -1
  419. package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
  420. package/lib/node/NodeTargetPlugin.js +1 -1
  421. package/lib/node/NodeWatchFileSystem.js +58 -6
  422. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
  423. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +9 -7
  424. package/lib/node/ReadFileCompileWasmPlugin.js +7 -5
  425. package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
  426. package/lib/node/nodeConsole.js +2 -4
  427. package/lib/optimize/AggressiveMergingPlugin.js +2 -2
  428. package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
  429. package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
  430. package/lib/optimize/ConcatenatedModule.js +229 -214
  431. package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
  432. package/lib/optimize/ConstExportsPlugin.js +7 -7
  433. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  434. package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
  435. package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +17 -17
  436. package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +17 -17
  437. package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
  438. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
  439. package/lib/optimize/InlineExports.js +11 -3
  440. package/lib/optimize/InnerGraph.js +5 -13
  441. package/lib/optimize/InnerGraphPlugin.js +10 -10
  442. package/lib/optimize/LazyBarrels.js +584 -0
  443. package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
  444. package/lib/optimize/LimitChunkCountPlugin.js +16 -7
  445. package/lib/optimize/MangleExportsPlugin.js +5 -5
  446. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
  447. package/lib/optimize/MinChunkSizePlugin.js +9 -6
  448. package/lib/optimize/ModuleConcatenationPlugin.js +20 -12
  449. package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
  450. package/lib/optimize/RealContentHashPlugin.js +16 -7
  451. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  452. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  453. package/lib/optimize/SideEffectsFlagPlugin.js +18 -18
  454. package/lib/optimize/SplitChunksPlugin.js +713 -155
  455. package/lib/{util → optimize}/TupleQueue.js +9 -9
  456. package/lib/optimize/chunkSetIntersections.js +437 -0
  457. package/lib/{util → optimize}/deterministicGrouping.js +17 -17
  458. package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
  459. package/lib/{CleanPlugin.js → output/CleanPlugin.js} +66 -24
  460. package/lib/{CopyPlugin.js → output/CopyPlugin.js} +142 -67
  461. package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
  462. package/lib/output/SSRManifestPlugin.js +349 -0
  463. package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
  464. package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
  465. package/lib/performance/BroadContextsPlugin.js +4 -4
  466. package/lib/performance/CacheEffectivenessPlugin.js +2 -3
  467. package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
  468. package/lib/performance/DuplicateModulesPlugin.js +3 -4
  469. package/lib/performance/DuplicatePackagesPlugin.js +3 -3
  470. package/lib/performance/DynamicExportsPlugin.js +2 -2
  471. package/lib/performance/EvalUsagePlugin.js +3 -3
  472. package/lib/performance/HotspotsPlugin.js +11 -10
  473. package/lib/performance/LargeModulesPlugin.js +2 -3
  474. package/lib/performance/LegacyJavascriptPlugin.js +1 -2
  475. package/lib/performance/MissingSideEffectsPlugin.js +2 -3
  476. package/lib/performance/MissingSourceMapsPlugin.js +5 -6
  477. package/lib/performance/PureAnnotationsPlugin.js +3 -3
  478. package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
  479. package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
  480. package/lib/performance/SizeLimitsPlugin.js +11 -12
  481. package/lib/performance/TopLevelThisPlugin.js +8 -7
  482. package/lib/performance/UnsplitVendorsPlugin.js +1 -2
  483. package/lib/performance/UnusedAliasesPlugin.js +6 -7
  484. package/lib/performance/UnusedAssetsPlugin.js +5 -5
  485. package/lib/performance/UnusedDefinesPlugin.js +2 -2
  486. package/lib/performance/UnusedExternalsPlugin.js +3 -4
  487. package/lib/performance/UnusedFederationPlugin.js +2 -4
  488. package/lib/performance/UnusedModulesPlugin.js +5 -4
  489. package/lib/performance/getModuleSize.js +1 -1
  490. package/lib/performance/hasOnlyUnusedExports.js +4 -4
  491. package/lib/performance/isOnlyReexported.js +7 -6
  492. package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
  493. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
  494. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -1
  495. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
  496. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
  497. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
  498. package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
  499. package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
  500. package/lib/prefetch/ResourceHintPlugin.js +65 -44
  501. package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
  502. package/lib/prefetch/StartupAssetHintRuntimeModule.js +3 -3
  503. package/lib/prefetch/parseResourceHintOptions.js +4 -3
  504. package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
  505. package/lib/{dependencies → provide}/ProvidedDependency.js +14 -13
  506. package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
  507. package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
  508. package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
  509. package/lib/resolve/getResolveOptionsKey.js +59 -0
  510. package/lib/rules/RuleSetCompiler.js +27 -46
  511. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
  512. package/lib/runtime/AsyncModuleRuntimeModule.js +7 -4
  513. package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
  514. package/lib/runtime/BaseUriRuntimeModule.js +3 -3
  515. package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
  516. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
  517. package/lib/runtime/CompatRuntimeModule.js +4 -4
  518. package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
  519. package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
  520. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
  521. package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
  522. package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
  523. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
  524. package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
  525. package/lib/runtime/GetChunkFilenameRuntimeModule.js +6 -6
  526. package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
  527. package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
  528. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
  529. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
  530. package/lib/runtime/GlobalRuntimeModule.js +3 -3
  531. package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
  532. package/lib/runtime/HelperRuntimeModule.js +16 -1
  533. package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
  534. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +80 -17
  535. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
  536. package/lib/runtime/NonceRuntimeModule.js +2 -2
  537. package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
  538. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  539. package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
  540. package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +18 -1
  541. package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
  542. package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
  543. package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +48 -50
  544. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
  545. package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
  546. package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
  547. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
  548. package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
  549. package/lib/runtime/SystemContextRuntimeModule.js +2 -2
  550. package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
  551. package/lib/runtime/WorkerRuntimeModule.js +1 -1
  552. package/lib/runtime/baseUri.js +1 -1
  553. package/lib/schemes/DataUriPlugin.js +1 -1
  554. package/lib/schemes/HttpUriPlugin.js +67 -11
  555. package/lib/schemes/VirtualUrlPlugin.js +50 -16
  556. package/lib/serialization/AggregateErrorSerializer.js +2 -2
  557. package/lib/serialization/FileMiddleware.js +3 -3
  558. package/lib/serialization/ObjectMiddleware.js +47 -16
  559. package/lib/serialization/SerializerMiddleware.js +2 -2
  560. package/lib/serialization/SingleItemMiddleware.js +4 -2
  561. package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
  562. package/lib/sharing/ConsumeSharedModule.js +18 -14
  563. package/lib/sharing/ConsumeSharedPlugin.js +148 -42
  564. package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
  565. package/lib/sharing/ProvideForSharedDependency.js +9 -1
  566. package/lib/sharing/ProvideSharedDependency.js +1 -1
  567. package/lib/sharing/ProvideSharedModule.js +11 -9
  568. package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
  569. package/lib/sharing/ProvideSharedPlugin.js +111 -20
  570. package/lib/sharing/SharePlugin.js +102 -9
  571. package/lib/sharing/ShareRuntimeModule.js +6 -6
  572. package/lib/sharing/resolveMatchedConfigs.js +1 -1
  573. package/lib/{util → sharing}/semver.js +14 -16
  574. package/lib/sharing/utils.js +59 -2
  575. package/lib/stats/DefaultStatsFactoryPlugin.js +22 -19
  576. package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
  577. package/lib/stats/DefaultStatsPrinterPlugin.js +3 -3
  578. package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
  579. package/lib/{Stats.js → stats/Stats.js} +4 -4
  580. package/lib/stats/StatsFactory.js +14 -13
  581. package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
  582. package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
  583. package/lib/template/DependencyTemplate.js +77 -0
  584. package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
  585. package/lib/template/InitFragment.js +223 -0
  586. package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
  587. package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
  588. package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
  589. package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +145 -63
  590. package/lib/{Template.js → template/Template.js} +13 -11
  591. package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +19 -23
  592. package/lib/typescript/TypeScriptPlugin.js +3 -3
  593. package/lib/util/RequestShortener.js +44 -0
  594. package/lib/util/SortableSet.js +87 -22
  595. package/lib/util/SourceProcessor.js +349 -44
  596. package/lib/util/TupleSet.js +27 -27
  597. package/lib/util/WeakTupleMap.js +10 -12
  598. package/lib/util/buildDiagnostics.js +2 -2
  599. package/lib/util/comparators.js +10 -10
  600. package/lib/util/concatenate.js +28 -147
  601. package/lib/util/createMappings.js +111 -0
  602. package/lib/util/dataURL.js +94 -15
  603. package/lib/util/deprecation.js +1 -1
  604. package/lib/util/extractComments.js +118 -0
  605. package/lib/util/formatLocation.js +1 -1
  606. package/lib/util/globUtils.js +197 -16
  607. package/lib/util/haltVisitors.js +51 -0
  608. package/lib/util/handlerKeys.js +2 -2
  609. package/lib/util/identifier.js +117 -1
  610. package/lib/util/implicitTypeLoaderFallback.js +6 -4
  611. package/lib/util/internalSerializables.js +294 -102
  612. package/lib/util/magicComment.js +12 -7
  613. package/lib/util/makeSerializable.js +23 -4
  614. package/lib/util/parseJson.js +1 -1
  615. package/lib/util/preloadModuleType.js +5 -2
  616. package/lib/util/registerExternalSerializer.js +2 -2
  617. package/lib/util/removeBOM.js +1 -1
  618. package/lib/util/runtime.js +1 -1
  619. package/lib/util/serialization.js +4 -1
  620. package/lib/util/source.js +2 -2
  621. package/lib/util/terminalColors.js +161 -0
  622. package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
  623. package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
  624. package/lib/{wasm-async → wasm}/AsyncWasmModule.js +9 -5
  625. package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +5 -5
  626. package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +11 -10
  627. package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
  628. package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +8 -8
  629. package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
  630. package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +9 -7
  631. package/lib/wasm/wasmModuleFilename.js +2 -2
  632. package/lib/wasm-sync/SyncWasmModule.js +3 -3
  633. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +8 -8
  634. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
  635. package/lib/wasm-sync/WebAssemblyGenerator.js +9 -8
  636. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +14 -15
  637. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
  638. package/lib/wasm-sync/WebAssemblyParser.js +6 -6
  639. package/lib/wasm-sync/WebAssemblyUtils.js +6 -5
  640. package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
  641. package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
  642. package/lib/{Watching.js → watch/Watching.js} +8 -8
  643. package/lib/web/FetchCompileAsyncWasmPlugin.js +8 -6
  644. package/lib/web/FetchCompileWasmPlugin.js +6 -4
  645. package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
  646. package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
  647. package/lib/web/JsonpTemplatePlugin.js +1 -1
  648. package/lib/webpack.js +27 -17
  649. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
  650. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
  651. package/package.json +47 -24
  652. package/schemas/WebpackOptions.check.js +2 -1
  653. package/schemas/WebpackOptions.d.json.ts +2 -0
  654. package/schemas/WebpackOptions.json +294 -74
  655. package/schemas/plugins/BannerPlugin.check.js +2 -1
  656. package/schemas/plugins/BannerPlugin.json +29 -2
  657. package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -0
  658. package/schemas/plugins/HtmlParserOptions.check.js +2 -1
  659. package/schemas/plugins/IgnorePlugin.check.js +1 -0
  660. package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
  661. package/schemas/plugins/IgnorePlugin.json +1 -1
  662. package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -0
  663. package/schemas/plugins/ManifestPlugin.check.js +1 -0
  664. package/schemas/plugins/ManifestPlugin.json +3 -3
  665. package/schemas/plugins/ProgressPlugin.check.js +2 -1
  666. package/schemas/plugins/ProgressPlugin.json +2 -7
  667. package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
  668. package/schemas/plugins/SSRManifestPlugin.json +20 -0
  669. package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -1
  670. package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
  671. package/schemas/plugins/WatchIgnorePlugin.check.js +2 -1
  672. package/schemas/plugins/WatchIgnorePlugin.json +12 -3
  673. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -0
  674. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -0
  675. package/schemas/plugins/asset/AssetParserOptions.check.js +1 -0
  676. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -0
  677. package/schemas/plugins/container/ContainerPlugin.check.js +2 -1
  678. package/schemas/plugins/container/ContainerPlugin.json +8 -0
  679. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -0
  680. package/schemas/plugins/container/ExternalsType.check.js +1 -0
  681. package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -1
  682. package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
  683. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -0
  684. package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -0
  685. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -0
  686. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -0
  687. package/schemas/plugins/css/CssParserOptions.check.js +1 -0
  688. package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -0
  689. package/schemas/plugins/dll/DllPlugin.check.js +1 -0
  690. package/schemas/plugins/dll/DllReferencePlugin.check.js +2 -1
  691. package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
  692. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -0
  693. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -0
  694. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -0
  695. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +1 -0
  696. package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -0
  697. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -0
  698. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -0
  699. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -0
  700. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -0
  701. package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -0
  702. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +1 -0
  703. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +2 -1
  704. package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
  705. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +2 -1
  706. package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
  707. package/schemas/plugins/sharing/SharePlugin.check.js +2 -1
  708. package/schemas/plugins/sharing/SharePlugin.json +32 -0
  709. package/types.d.ts +19355 -13873
  710. package/lib/LazyBarrel.js +0 -388
  711. package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
  712. package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
  713. package/lib/javascript/ChunkFormatHelpers.js +0 -72
  714. package/lib/javascript/grammar.js +0 -5546
  715. package/lib/javascript/parser.js +0 -1500
  716. package/lib/javascript/regexpData.js +0 -51
  717. package/lib/performance/getSourceModules.js +0 -22
  718. package/lib/util/Semaphore.js +0 -65
  719. package/lib/util/objectToMap.js +0 -15
  720. package/schemas/WebpackOptions.check.d.ts +0 -7
  721. package/schemas/_container.json +0 -155
  722. package/schemas/_sharing.json +0 -118
  723. package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
  724. package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
  725. package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
  726. package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
  727. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
  728. package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
  729. package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
  730. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
  731. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
  732. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
  733. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
  734. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
  735. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
  736. package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
  737. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
  738. package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
  739. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
  740. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
  741. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
  742. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
  743. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
  744. package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
  745. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
  746. package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
  747. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
  748. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
  749. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
  750. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
  751. package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
  752. package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
  753. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
  754. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
  755. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
  756. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
  757. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
  758. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
  759. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
  760. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
  761. package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
  762. /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
  763. /package/lib/{util → css}/conventions.js +0 -0
  764. /package/lib/{util → css}/topologicalSort.js +0 -0
  765. /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
  766. /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
  767. /package/lib/{util → fs}/StackedCacheMap.js +0 -0
  768. /package/lib/{util → javascript}/StackedMap.js +0 -0
  769. /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
  770. /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
  771. /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
  772. /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
  773. /package/lib/{util → optimize}/Queue.js +0 -0
  774. /package/lib/{util → stats}/smartGrouping.js +0 -0
@@ -6,8 +6,11 @@
6
6
  "use strict";
7
7
 
8
8
  const { SyncHook } = require("tapable");
9
- const { createPathGlobMatcher } = require("../util/globUtils");
10
- const { fileUrlToPath } = require("../util/identifier");
9
+ const { compileGlobList } = require("../util/globUtils");
10
+ const {
11
+ RELATIVE_PATH_PREFIX_REGEXP,
12
+ fileUrlToPath
13
+ } = require("../util/identifier");
11
14
 
12
15
  /** @import { ResolveRequest } from "enhanced-resolve" */
13
16
  /**
@@ -16,7 +19,9 @@ const { fileUrlToPath } = require("../util/identifier");
16
19
  * RuleSetUseItem,
17
20
  * RuleSetLoaderOptions,
18
21
  * RuleSetRule,
19
- * RuleSetConditionAbsolute
22
+ * RuleSetConditionAbsolute,
23
+ * RuleSetGlob,
24
+ * RuleSetGlobs
20
25
  * } from "../../declarations/WebpackOptions"
21
26
  */
22
27
 
@@ -110,34 +115,11 @@ const { fileUrlToPath } = require("../util/identifier");
110
115
 
111
116
  /** @typedef {Set<string>} UnhandledProperties */
112
117
 
113
- /** @typedef {(str: string) => boolean} GlobMatcher */
114
118
  /** @typedef {(data: EffectData) => (RuleSetUseItem | (Falsy | RuleSetUseItem)[])} RuleSetUseFn */
115
119
  /** @typedef {(value: string) => boolean} RuleSetConditionFn */
116
120
 
117
121
  /** @typedef {{ apply: (ruleSetCompiler: RuleSetCompiler) => void }} RuleSetPlugin */
118
122
 
119
- /**
120
- * @param {GlobMatcher[]} positive patterns that select
121
- * @param {GlobMatcher[]} negative patterns that subtract
122
- * @returns {GlobMatcher} matcher
123
- */
124
- const combineGlobMatchers = (positive, negative) => {
125
- /** @type {GlobMatcher} */
126
- const matchPositive =
127
- positive.length === 0
128
- ? () => true
129
- : positive.length === 1
130
- ? positive[0]
131
- : (str) => positive.some((match) => match(str));
132
- if (negative.length === 0) return matchPositive;
133
- /** @type {GlobMatcher} */
134
- const matchNegative =
135
- negative.length === 1
136
- ? negative[0]
137
- : (str) => negative.some((match) => match(str));
138
- return (str) => matchPositive(str) && !matchNegative(str);
139
- };
140
-
141
123
  class RuleSetCompiler {
142
124
  /**
143
125
  * Creates an instance of RuleSetCompiler.
@@ -475,31 +457,30 @@ class RuleSetCompiler {
475
457
  if (globs.length === 0) {
476
458
  throw this.error(path, glob, "Expected glob pattern, but got empty list");
477
459
  }
478
- /** @type {GlobMatcher[]} */
479
- const positive = [];
480
- /** @type {GlobMatcher[]} */
481
- const negative = [];
460
+ /**
461
+ * @param {number} i pattern index
462
+ * @returns {string} path of the pattern
463
+ */
464
+ const patternPath = (i) => (Array.isArray(glob) ? `${path}[${i}]` : path);
482
465
  for (let i = 0; i < globs.length; i++) {
483
- const pattern = globs[i];
484
- const patternPath = Array.isArray(glob) ? `${path}[${i}]` : path;
485
- if (typeof pattern !== "string") {
466
+ if (typeof globs[i] !== "string") {
486
467
  throw this.error(
487
- patternPath,
488
- pattern,
489
- `Unexpected ${typeof pattern} when glob pattern was expected`
468
+ patternPath(i),
469
+ globs[i],
470
+ `Unexpected ${typeof globs[i]} when glob pattern was expected`
490
471
  );
491
472
  }
492
- const negated = pattern.startsWith("!");
493
- const match = createPathGlobMatcher(negated ? pattern.slice(1) : pattern);
494
- if (match === null) {
495
- throw this.error(patternPath, pattern, "Invalid glob pattern");
496
- }
497
- (negated ? negative : positive).push(match);
498
473
  }
499
- const match = combineGlobMatchers(positive, negative);
474
+ const match = compileGlobList(globs, (pattern, i) => {
475
+ throw this.error(patternPath(i), pattern, "Invalid glob pattern");
476
+ });
500
477
  return {
501
478
  matchWhenEmpty: match(""),
502
- fn: (v) => typeof v === "string" && match(v)
479
+ // a relative value starts where its `./` and `../` end, as a relative
480
+ // pattern matches at any depth
481
+ fn: (v) =>
482
+ typeof v === "string" &&
483
+ match(v.replace(RELATIVE_PATH_PREFIX_REGEXP, ""))
503
484
  };
504
485
  }
505
486
 
@@ -837,7 +818,7 @@ const someSpellingContains = (pattern, probe, expandFirst) => {
837
818
  };
838
819
 
839
820
  /**
840
- * @param {EXPECTED_ANY} glob glob pattern(s)
821
+ * @param {RuleSetGlob | RuleSetGlobs | undefined} glob glob pattern(s)
841
822
  * @param {string} extension extension including the dot (e.g. `".css"`)
842
823
  * @returns {boolean} whether a pattern targets the extension
843
824
  */
@@ -861,7 +842,7 @@ const globReferencesExtension = (glob, extension) => {
861
842
  * generic sample path doesn't match its (possibly filename-scoped) pattern.
862
843
  * The extension may be spelled by an alternation (`\.(css|scss)$`) or a
863
844
  * character class (`\.[jt]sx?$`), so those are expanded before probing.
864
- * @param {EXPECTED_ANY} condition condition
845
+ * @param {RuleSetConditionAbsolute | undefined} condition condition
865
846
  * @param {string} extProbe escaped extension probe (e.g. `"\\.css"`)
866
847
  * @returns {boolean} whether a regexp in the condition targets the extension
867
848
  */
@@ -4,9 +4,9 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const Template = require("../Template");
7
+ const Template = require("../template/Template");
9
8
  const HelperRuntimeModule = require("./HelperRuntimeModule");
9
+ const RuntimeGlobals = require("./RuntimeGlobals");
10
10
 
11
11
  /** @import Compilation from "../Compilation" */
12
12
 
@@ -4,9 +4,9 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const Template = require("../Template");
7
+ const Template = require("../template/Template");
9
8
  const HelperRuntimeModule = require("./HelperRuntimeModule");
9
+ const RuntimeGlobals = require("./RuntimeGlobals");
10
10
 
11
11
  /** @import Compilation from "../Compilation" */
12
12
 
@@ -33,6 +33,9 @@ class AsyncModuleRuntimeModule extends HelperRuntimeModule {
33
33
  const fn = RuntimeGlobals.asyncModule;
34
34
  const defer = this._deferInterop;
35
35
  const strictErrors = this._strictModuleErrorHandling;
36
+ const moduleCache = this.receivesHotUpdates()
37
+ ? RuntimeGlobals.moduleCache
38
+ : "__webpack_module_cache__";
36
39
  const rejectCall = "reject(promise[webpackError] = err)";
37
40
  const rejectExpression = strictErrors
38
41
  ? `(markCycle(err), ${rejectCall})`
@@ -65,7 +68,7 @@ class AsyncModuleRuntimeModule extends HelperRuntimeModule {
65
68
  Template.indent([
66
69
  `${cst} hasUnresolvedAsyncSubgraph = asyncDeps.some((id) => {`,
67
70
  Template.indent([
68
- `${cst} cache = __webpack_module_cache__[id];`,
71
+ `${cst} cache = ${moduleCache}[id];`,
69
72
  "if (!cache) return true;",
70
73
  // A cached entry no longer means finished, and a rejected
71
74
  // one is done but its error must still reach the importer.
@@ -223,7 +226,7 @@ class AsyncModuleRuntimeModule extends HelperRuntimeModule {
223
226
  `group && group.forEach(${runtimeTemplate.basicFunction(
224
227
  "id",
225
228
  [
226
- `${cst} peer = __webpack_module_cache__[id];`,
229
+ `${cst} peer = ${moduleCache}[id];`,
227
230
  "if (peer && peer.error === undefined) peer.error = err;"
228
231
  ]
229
232
  )})`,
@@ -4,12 +4,12 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const RuntimeModule = require("../RuntimeModule");
9
- const Template = require("../Template");
7
+ const Template = require("../template/Template");
8
+ const RuntimeGlobals = require("./RuntimeGlobals");
9
+ const RuntimeModule = require("./RuntimeModule");
10
10
 
11
- /** @import Chunk from "../Chunk" */
12
- /** @import ChunkGraph from "../ChunkGraph" */
11
+ /** @import Chunk from "../graph/Chunk" */
12
+ /** @import ChunkGraph from "../graph/ChunkGraph" */
13
13
  /** @import Compilation from "../Compilation" */
14
14
 
15
15
  class AutoPublicPathRuntimeModule extends RuntimeModule {
@@ -5,8 +5,8 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const RuntimeGlobals = require("../RuntimeGlobals");
9
- const RuntimeModule = require("../RuntimeModule");
8
+ const RuntimeGlobals = require("./RuntimeGlobals");
9
+ const RuntimeModule = require("./RuntimeModule");
10
10
  const { renderBaseUri } = require("./baseUri");
11
11
 
12
12
  /**
@@ -14,7 +14,7 @@ const { renderBaseUri } = require("./baseUri");
14
14
  * EntryDescriptionNormalized as EntryDescription
15
15
  * } from "../../declarations/WebpackOptions"
16
16
  */
17
- /** @import Chunk from "../Chunk" */
17
+ /** @import Chunk from "../graph/Chunk" */
18
18
  /** @import Compilation from "../Compilation" */
19
19
 
20
20
  class BaseUriRuntimeModule extends RuntimeModule {
@@ -4,8 +4,8 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const RuntimeModule = require("../RuntimeModule");
7
+ const RuntimeGlobals = require("./RuntimeGlobals");
8
+ const RuntimeModule = require("./RuntimeModule");
9
9
 
10
10
  class ChunkNameRuntimeModule extends RuntimeModule {
11
11
  /**
@@ -4,9 +4,9 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const Template = require("../Template");
7
+ const Template = require("../template/Template");
9
8
  const HelperRuntimeModule = require("./HelperRuntimeModule");
9
+ const RuntimeGlobals = require("./RuntimeGlobals");
10
10
 
11
11
  /** @import Compilation from "../Compilation" */
12
12
 
@@ -4,11 +4,11 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const RuntimeModule = require("../RuntimeModule");
7
+ const RuntimeGlobals = require("./RuntimeGlobals");
8
+ const RuntimeModule = require("./RuntimeModule");
9
9
 
10
- /** @import Chunk from "../Chunk" */
11
- /** @import ChunkGraph from "../ChunkGraph" */
10
+ /** @import Chunk from "../graph/Chunk" */
11
+ /** @import ChunkGraph from "../graph/ChunkGraph" */
12
12
  /** @import Compilation from "../Compilation" */
13
13
 
14
14
  class CompatRuntimeModule extends RuntimeModule {
@@ -4,9 +4,9 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const Template = require("../Template");
7
+ const Template = require("../template/Template");
9
8
  const HelperRuntimeModule = require("./HelperRuntimeModule");
9
+ const RuntimeGlobals = require("./RuntimeGlobals");
10
10
 
11
11
  /** @import Compilation from "../Compilation" */
12
12
 
@@ -4,9 +4,9 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const Template = require("../Template");
7
+ const Template = require("../template/Template");
9
8
  const HelperRuntimeModule = require("./HelperRuntimeModule");
9
+ const RuntimeGlobals = require("./RuntimeGlobals");
10
10
 
11
11
  /** @import Compilation from "../Compilation" */
12
12
 
@@ -4,9 +4,9 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const Template = require("../Template");
7
+ const Template = require("../template/Template");
9
8
  const HelperRuntimeModule = require("./HelperRuntimeModule");
9
+ const RuntimeGlobals = require("./RuntimeGlobals");
10
10
 
11
11
  /** @import Compilation from "../Compilation" */
12
12
 
@@ -4,9 +4,9 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const Template = require("../Template");
7
+ const Template = require("../template/Template");
9
8
  const HelperRuntimeModule = require("./HelperRuntimeModule");
9
+ const RuntimeGlobals = require("./RuntimeGlobals");
10
10
 
11
11
  /** @import Compilation from "../Compilation" */
12
12
 
@@ -4,9 +4,9 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const Template = require("../Template");
7
+ const Template = require("../template/Template");
9
8
  const HelperRuntimeModule = require("./HelperRuntimeModule");
9
+ const RuntimeGlobals = require("./RuntimeGlobals");
10
10
 
11
11
  /** @import Compilation from "../Compilation" */
12
12
 
@@ -4,12 +4,12 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const Template = require("../Template");
7
+ const Template = require("../template/Template");
9
8
  const HelperRuntimeModule = require("./HelperRuntimeModule");
9
+ const RuntimeGlobals = require("./RuntimeGlobals");
10
10
 
11
11
  /** @import Compilation from "../Compilation" */
12
- /** @import { ReadOnlyRuntimeRequirements } from "../Module" */
12
+ /** @import { ReadOnlyRuntimeRequirements } from "../module/Module" */
13
13
 
14
14
  class DefinePropertyGettersRuntimeModule extends HelperRuntimeModule {
15
15
  /**
@@ -39,12 +39,12 @@ class DefinePropertyGettersRuntimeModule extends HelperRuntimeModule {
39
39
  const compilation = /** @type {Compilation} */ (this.compilation);
40
40
  const { runtimeTemplate } = compilation;
41
41
  const fn = RuntimeGlobals.definePropertyGetters;
42
- // Only webpack emits the array form, so a build emitting none cannot
43
- // receive one; the object form stays either way (see the note below).
42
+ // Only webpack emits the array form, so a build whose emitters all stayed
43
+ // silent cannot receive one; the object form stays either way.
44
44
  const withArray = this.runtimeRequirements.has(
45
45
  RuntimeGlobals.definePropertyGettersFromArray
46
46
  );
47
- // TODO webpack 6: remove object format support. Internal code (e.g. ConcatenatedModule)
47
+ // TODO in the next major release: remove object format support. Internal code (e.g. ConcatenatedModule)
48
48
  // and third-party libraries may still call __webpack_require__.d() with an object.
49
49
  const fromObject = [
50
50
  "for(var key in definition) {",
@@ -4,14 +4,14 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const RuntimeModule = require("../RuntimeModule");
9
- const Template = require("../Template");
7
+ const Template = require("../template/Template");
10
8
  const { getOnlyHandlerKey } = require("../util/handlerKeys");
11
9
  const { propertyAccess } = require("../util/property");
10
+ const RuntimeGlobals = require("./RuntimeGlobals");
11
+ const RuntimeModule = require("./RuntimeModule");
12
12
 
13
13
  /** @import Compilation from "../Compilation" */
14
- /** @import { ReadOnlyRuntimeRequirements } from "../Module" */
14
+ /** @import { ReadOnlyRuntimeRequirements } from "../module/Module" */
15
15
 
16
16
  class EnsureChunkRuntimeModule extends RuntimeModule {
17
17
  /**
@@ -4,14 +4,14 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const RuntimeModule = require("../RuntimeModule");
9
- const Template = require("../Template");
10
- const { reEncodeDigest } = require("../TemplatedPathPlugin");
7
+ const Template = require("../template/Template");
8
+ const { reEncodeDigest } = require("../template/TemplatedPathPlugin");
11
9
  const { first } = require("../util/SetHelpers");
10
+ const RuntimeGlobals = require("./RuntimeGlobals");
11
+ const RuntimeModule = require("./RuntimeModule");
12
12
 
13
- /** @import Chunk, { ChunkId, ChunkFilenameTemplate } from "../Chunk" */
14
- /** @import ChunkGraph from "../ChunkGraph" */
13
+ /** @import Chunk, { ChunkId, ChunkFilenameTemplate } from "../graph/Chunk" */
14
+ /** @import ChunkGraph from "../graph/ChunkGraph" */
15
15
  /**
16
16
  * @import Compilation, {
17
17
  * HashWithLengthFunction,
@@ -4,8 +4,8 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const RuntimeModule = require("../RuntimeModule");
7
+ const RuntimeGlobals = require("./RuntimeGlobals");
8
+ const RuntimeModule = require("./RuntimeModule");
9
9
 
10
10
  /** @import Compilation from "../Compilation" */
11
11
 
@@ -4,11 +4,11 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const RuntimeModule = require("../RuntimeModule");
9
- const Template = require("../Template");
7
+ const Template = require("../template/Template");
8
+ const RuntimeGlobals = require("./RuntimeGlobals");
9
+ const RuntimeModule = require("./RuntimeModule");
10
10
 
11
- /** @import Chunk from "../Chunk" */
11
+ /** @import Chunk from "../graph/Chunk" */
12
12
  /** @import Compilation from "../Compilation" */
13
13
 
14
14
  class GetMainFilenameRuntimeModule extends RuntimeModule {
@@ -4,12 +4,12 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const Template = require("../Template");
7
+ const Template = require("../template/Template");
9
8
  const HelperRuntimeModule = require("./HelperRuntimeModule");
9
+ const RuntimeGlobals = require("./RuntimeGlobals");
10
10
 
11
11
  /** @import Compilation from "../Compilation" */
12
- /** @import { ReadOnlyRuntimeRequirements } from "../Module" */
12
+ /** @import { ReadOnlyRuntimeRequirements } from "../module/Module" */
13
13
 
14
14
  class GetTrustedTypesPolicyRuntimeModule extends HelperRuntimeModule {
15
15
  /**
@@ -5,9 +5,9 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const RuntimeGlobals = require("../RuntimeGlobals");
9
- const RuntimeModule = require("../RuntimeModule");
10
- const Template = require("../Template");
8
+ const Template = require("../template/Template");
9
+ const RuntimeGlobals = require("./RuntimeGlobals");
10
+ const RuntimeModule = require("./RuntimeModule");
11
11
 
12
12
  /** @import Compilation from "../Compilation" */
13
13
 
@@ -4,9 +4,9 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeGlobals = require("../RuntimeGlobals");
8
- const RuntimeModule = require("../RuntimeModule");
9
- const Template = require("../Template");
7
+ const Template = require("../template/Template");
8
+ const RuntimeGlobals = require("./RuntimeGlobals");
9
+ const RuntimeModule = require("./RuntimeModule");
10
10
 
11
11
  /** @typedef {import("../Compilation")} Compilation */
12
12
 
@@ -5,9 +5,9 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const RuntimeGlobals = require("../RuntimeGlobals");
9
- const RuntimeModule = require("../RuntimeModule");
10
- const Template = require("../Template");
8
+ const Template = require("../template/Template");
9
+ const RuntimeGlobals = require("./RuntimeGlobals");
10
+ const RuntimeModule = require("./RuntimeModule");
11
11
 
12
12
  /** @import Compilation from "../Compilation" */
13
13
 
@@ -4,7 +4,11 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeModule = require("../RuntimeModule");
7
+ const RuntimeGlobals = require("./RuntimeGlobals");
8
+ const RuntimeModule = require("./RuntimeModule");
9
+
10
+ /** @import Chunk from "../graph/Chunk" */
11
+ /** @import ChunkGraph from "../graph/ChunkGraph" */
8
12
 
9
13
  /**
10
14
  * Base class for runtime modules that only emit helper functions and do not
@@ -28,6 +32,17 @@ class HelperRuntimeModule extends RuntimeModule {
28
32
  // A helper defines a function on the require global and nothing else.
29
33
  return RuntimeModule.NO_CHUNK_HANDLERS;
30
34
  }
35
+
36
+ /**
37
+ * Whether a hot update can deliver this helper, which then runs outside the
38
+ * bootstrap scope and reaches its state only through `__webpack_require__`.
39
+ * @returns {boolean} true, when the runtime accepts hot updates
40
+ */
41
+ receivesHotUpdates() {
42
+ return /** @type {ChunkGraph} */ (this.chunkGraph)
43
+ .getTreeRuntimeRequirements(/** @type {Chunk} */ (this.chunk))
44
+ .has(RuntimeGlobals.hmrDownloadManifest);
45
+ }
31
46
  }
32
47
 
33
48
  module.exports = HelperRuntimeModule;
@@ -6,12 +6,12 @@
6
6
 
7
7
  const { SyncWaterfallHook } = require("tapable");
8
8
  /** @import Compilation from "../Compilation" */
9
- const RuntimeGlobals = require("../RuntimeGlobals");
10
- const Template = require("../Template");
9
+ const Template = require("../template/Template");
11
10
  const createHooksRegistry = require("../util/createHooksRegistry");
12
11
  const HelperRuntimeModule = require("./HelperRuntimeModule");
12
+ const RuntimeGlobals = require("./RuntimeGlobals");
13
13
 
14
- /** @import Chunk from "../Chunk" */
14
+ /** @import Chunk from "../graph/Chunk" */
15
15
 
16
16
  /**
17
17
  * @typedef {object} LoadScriptCompilationHooks