webpack 5.111.0 → 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 (781) hide show
  1. package/README.md +1 -1
  2. package/lib/Chunk.js +3 -966
  3. package/lib/Compilation.js +237 -138
  4. package/lib/Compiler.js +23 -24
  5. package/lib/Dependency.js +3 -551
  6. package/lib/DependencyTemplate.js +3 -69
  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 +43 -24
  16. package/lib/NormalModule.js +3 -2190
  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 +15 -9
  24. package/lib/asset/AssetBytesParser.js +3 -3
  25. package/lib/asset/AssetGenerator.js +61 -38
  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 +15 -9
  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 +6 -6
  44. package/lib/cache/MemoryWithGcCachePlugin.js +9 -10
  45. package/lib/cache/PackFileCacheStrategy.js +11 -28
  46. package/lib/cache/ResolverCachePlugin.js +8 -4
  47. package/lib/cache/getLazyHashedEtag.js +3 -5
  48. package/lib/cache/mergeEtags.js +1 -1
  49. package/lib/{OptionsApply.js → config/OptionsApply.js} +3 -3
  50. package/lib/{PlatformPlugin.js → config/PlatformPlugin.js} +2 -2
  51. package/lib/{WebpackOptionsApply.js → config/WebpackOptionsApply.js} +217 -200
  52. package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
  53. package/lib/config/browserslistTargetHandler.js +3 -9
  54. package/lib/{cli.js → config/cli.js} +5 -158
  55. package/lib/config/defaults.js +192 -122
  56. package/lib/config/getClaimedAssetTypes.js +28 -21
  57. package/lib/config/normalization.js +18 -7
  58. package/lib/config/target.js +13 -4
  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/{ContextExclusionPlugin.js → context/ContextExclusionPlugin.js} +1 -1
  76. package/lib/{ContextModule.js → context/ContextModule.js} +50 -36
  77. package/lib/{ContextModuleFactory.js → context/ContextModuleFactory.js} +25 -24
  78. package/lib/{ContextReplacementPlugin.js → context/ContextReplacementPlugin.js} +4 -4
  79. package/lib/css/CssGenerator.js +57 -42
  80. package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
  81. package/lib/css/CssLoadingRuntimeModule.js +77 -44
  82. package/lib/css/CssModule.js +27 -29
  83. package/lib/css/CssModulesPlugin.js +128 -44
  84. package/lib/css/CssParser.js +700 -311
  85. package/lib/css/CssServerStylesRuntimeModule.js +3 -3
  86. package/lib/css/cssMinify.js +130 -54
  87. package/lib/css/data.js +7017 -4648
  88. package/lib/css/syntax-parser.js +19873 -0
  89. package/lib/css/syntax-printer.js +6037 -0
  90. package/lib/css/syntax.js +37 -17370
  91. package/lib/debug/ProfilingPlugin.js +55 -23
  92. package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
  93. package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +25 -29
  94. package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +2 -2
  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 -10
  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} +10 -10
  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} +176 -44
  116. package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
  117. package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +138 -61
  118. package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
  119. package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +39 -35
  120. package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +13 -12
  121. package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +47 -35
  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} +19 -20
  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} +5 -5
  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} +34 -18
  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} +9 -9
  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} +4 -4
  149. package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +9 -9
  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} +12 -11
  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 -100
  164. package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +26 -22
  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} +26 -21
  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} +40 -41
  172. package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +22 -21
  173. package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
  174. package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +62 -93
  175. package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +83 -49
  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} +136 -122
  179. package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +68 -43
  180. package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +68 -65
  181. package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -4
  182. package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
  183. package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +74 -71
  184. package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +199 -97
  185. package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
  186. package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +86 -43
  187. package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +110 -61
  188. package/lib/dependencies/esm/ESMModulesPlugin.js +207 -0
  189. package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
  190. package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -11
  191. package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +2 -2
  192. package/lib/{util → dependencies/helpers}/chainedImports.js +8 -9
  193. package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
  194. package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
  195. package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
  196. package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
  197. package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
  198. package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
  199. package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +125 -243
  200. package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
  201. package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +72 -23
  202. package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +53 -19
  203. package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
  204. package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
  205. package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
  206. package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
  207. package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +20 -20
  208. package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
  209. package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
  210. package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
  211. package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
  212. package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
  213. package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +126 -107
  214. package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
  215. package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
  216. package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
  217. package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
  218. package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +34 -25
  219. package/lib/{url → dependencies/url}/URLParserPlugin.js +22 -26
  220. package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
  221. package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
  222. package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
  223. package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
  224. package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +46 -54
  225. package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +28 -20
  226. package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +25 -27
  227. package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
  228. package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
  229. package/lib/devtool/ModuleFilenameHelpers.js +413 -0
  230. package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
  231. package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +207 -129
  232. package/lib/{util → devtool}/generateDebugId.js +1 -1
  233. package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
  234. package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
  235. package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
  236. package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
  237. package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
  238. package/lib/dll/DelegatedModule.js +20 -18
  239. package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
  240. package/lib/dll/DelegatedPlugin.js +1 -1
  241. package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
  242. package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
  243. package/lib/dll/DllEntryPlugin.js +3 -3
  244. package/lib/dll/DllModule.js +11 -9
  245. package/lib/dll/DllModuleFactory.js +3 -3
  246. package/lib/dll/DllPlugin.js +18 -6
  247. package/lib/dll/DllReferencePlugin.js +102 -26
  248. package/lib/dll/LibManifestPlugin.js +9 -7
  249. package/lib/electron/ElectronTargetPlugin.js +2 -2
  250. package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
  251. package/lib/{dependencies → entry}/EntryDependency.js +11 -2
  252. package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
  253. package/lib/entry/EntryPlugin.js +75 -0
  254. package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
  255. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  256. package/lib/errors/BuildCycleError.js +1 -1
  257. package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
  258. package/lib/errors/ChunkRenderError.js +1 -1
  259. package/lib/errors/CodeGenerationError.js +1 -1
  260. package/lib/errors/CommentCompilationWarning.js +1 -1
  261. package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
  262. package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
  263. package/lib/errors/DeprecatedOptionWarning.js +30 -0
  264. package/lib/errors/DllManifestError.js +26 -0
  265. package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
  266. package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
  267. package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
  268. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  269. package/lib/errors/ErrorHelpers.js +222 -0
  270. package/lib/errors/ExternalStarReexportError.js +2 -2
  271. package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
  272. package/lib/errors/HookWebpackError.js +6 -5
  273. package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
  274. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  275. package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
  276. package/lib/errors/ModuleBuildError.js +1 -1
  277. package/lib/errors/ModuleDependencyError.js +2 -2
  278. package/lib/errors/ModuleDependencyWarning.js +2 -2
  279. package/lib/errors/ModuleError.js +1 -1
  280. package/lib/errors/ModuleHashingError.js +1 -1
  281. package/lib/errors/ModuleNotFoundError.js +3 -3
  282. package/lib/errors/ModuleParseError.js +1 -1
  283. package/lib/errors/ModuleRestoreError.js +1 -1
  284. package/lib/errors/ModuleStoreError.js +1 -1
  285. package/lib/errors/ModuleWarning.js +1 -1
  286. package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
  287. package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
  288. package/lib/errors/NodeStuffInWebError.js +7 -2
  289. package/lib/errors/PathVariableError.js +31 -0
  290. package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
  291. package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
  292. package/lib/errors/RuntimeModuleGenerationError.js +51 -0
  293. package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
  294. package/lib/errors/SystemImportDeprecationWarning.js +43 -0
  295. package/lib/errors/UnmergeableEntryExportsError.js +34 -0
  296. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  297. package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
  298. package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
  299. package/lib/errors/WebpackError.js +12 -3
  300. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
  301. package/lib/esm/ModuleChunkFormatPlugin.js +19 -19
  302. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
  303. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
  304. package/lib/{ExternalModule.js → externals/ExternalModule.js} +85 -63
  305. package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +41 -39
  306. package/lib/externals/ExternalsPlugin.js +99 -0
  307. package/lib/fs/FileSystemInfo.js +4642 -0
  308. package/lib/{util → fs}/fs.js +22 -9
  309. package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
  310. package/lib/graph/Chunk.js +985 -0
  311. package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +187 -80
  312. package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
  313. package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
  314. package/lib/graph/Dependency.js +628 -0
  315. package/lib/graph/Entrypoint.js +136 -0
  316. package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +151 -99
  317. package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
  318. package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +36 -39
  319. package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
  320. package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +163 -72
  321. package/lib/{util → graph}/findGraphRoots.js +20 -21
  322. package/lib/graph/isDependencyKind.js +23 -0
  323. package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
  324. package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +49 -47
  325. package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
  326. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +10 -8
  327. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
  328. package/lib/hmr/LazyCompilationPlugin.js +34 -26
  329. package/lib/html/HtmlGenerator.js +168 -125
  330. package/lib/html/HtmlModule.js +6 -2
  331. package/lib/html/HtmlModulesPlugin.js +260 -215
  332. package/lib/html/HtmlParser.js +598 -292
  333. package/lib/html/builtinEmbeddedRenderer.js +60 -13
  334. package/lib/html/data.js +23 -1
  335. package/lib/html/htmlMinify.js +120 -51
  336. package/lib/html/syntax-parser.js +15796 -0
  337. package/lib/html/syntax-printer.js +1034 -0
  338. package/lib/html/syntax.js +37 -14062
  339. package/lib/html/xmlMinify.js +67 -0
  340. package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
  341. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  342. package/lib/ids/HashedModuleIdsPlugin.js +31 -4
  343. package/lib/ids/IdHelpers.js +4 -4
  344. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  345. package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
  346. package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
  347. package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
  348. package/lib/ids/SyncModuleIdsPlugin.js +3 -3
  349. package/lib/{util → ids}/numberHash.js +1 -1
  350. package/lib/index.js +348 -99
  351. package/lib/{APIPlugin.js → javascript/APIPlugin.js} +29 -30
  352. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
  353. package/lib/javascript/BasicEvaluatedExpression.js +4 -4
  354. package/lib/javascript/ChunkHelpers.js +64 -4
  355. package/lib/javascript/CommonJsChunkFormatPlugin.js +4 -7
  356. package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +10 -11
  357. package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +90 -139
  358. package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
  359. package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
  360. package/lib/javascript/JavascriptGenerator.js +25 -18
  361. package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
  362. package/lib/javascript/JavascriptModule.js +4 -3
  363. package/lib/javascript/JavascriptModulesPlugin.js +458 -256
  364. package/lib/javascript/JavascriptParser.js +916 -287
  365. package/lib/javascript/JavascriptParserHelpers.js +1 -1
  366. package/lib/javascript/MergedEntryExports.js +196 -0
  367. package/lib/javascript/ScopeAnalyzer.js +3840 -5
  368. package/lib/javascript/StartupHelpers.js +6 -6
  369. package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +12 -15
  370. package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
  371. package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
  372. package/lib/javascript/data.js +533 -122
  373. package/lib/javascript/jsMinify.js +272 -0
  374. package/lib/javascript/regexp.js +67 -32
  375. package/lib/javascript/syntax-parser.js +18561 -0
  376. package/lib/javascript/syntax-printer-data.js +933 -0
  377. package/lib/javascript/syntax-printer.js +47106 -0
  378. package/lib/javascript/syntax.js +20 -10946
  379. package/lib/json/JsonData.js +1 -1
  380. package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
  381. package/lib/json/JsonGenerator.js +17 -11
  382. package/lib/json/JsonModule.js +2 -2
  383. package/lib/json/JsonModulesPlugin.js +1 -1
  384. package/lib/json/JsonParser.js +5 -5
  385. package/lib/json/jsonMinify.js +69 -0
  386. package/lib/library/AbstractLibraryPlugin.js +28 -15
  387. package/lib/library/AmdLibraryPlugin.js +4 -4
  388. package/lib/library/AssignLibraryPlugin.js +27 -11
  389. package/lib/library/EnableLibraryPlugin.js +1 -1
  390. package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
  391. package/lib/library/JsonpLibraryPlugin.js +1 -1
  392. package/lib/library/LibraryTemplatePlugin.js +53 -0
  393. package/lib/library/ModuleLibraryPlugin.js +207 -285
  394. package/lib/library/SystemLibraryPlugin.js +6 -8
  395. package/lib/library/UmdLibraryPlugin.js +3 -4
  396. package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
  397. package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
  398. package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
  399. package/lib/{dependencies → loaders}/LoaderPlugin.js +27 -2
  400. package/lib/loaders/LoaderRunner.js +160 -22
  401. package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
  402. package/lib/logging/Logger.js +7 -9
  403. package/lib/logging/ProgressPlugin.js +957 -0
  404. package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
  405. package/lib/{Generator.js → module/Generator.js} +38 -14
  406. package/lib/{Module.js → module/Module.js} +122 -54
  407. package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
  408. package/lib/module/NormalModule.js +2348 -0
  409. package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +53 -54
  410. package/lib/module/NullFactory.js +29 -0
  411. package/lib/{Parser.js → module/Parser.js} +3 -3
  412. package/lib/module/RawModule.js +208 -0
  413. package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
  414. package/lib/{util → module}/extractSourceMap.js +2 -2
  415. package/lib/{util → module}/findCaseMismatch.js +2 -2
  416. package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
  417. package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
  418. package/lib/{dependencies → node}/ExternalModuleInitFragment.js +6 -5
  419. package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
  420. package/lib/node/NodeEnvironmentPlugin.js +11 -1
  421. package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
  422. package/lib/node/NodeTargetPlugin.js +1 -1
  423. package/lib/node/NodeWatchFileSystem.js +61 -15
  424. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
  425. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +9 -7
  426. package/lib/node/ReadFileCompileWasmPlugin.js +7 -5
  427. package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
  428. package/lib/node/nodeConsole.js +2 -4
  429. package/lib/optimize/AggressiveMergingPlugin.js +5 -7
  430. package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
  431. package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
  432. package/lib/optimize/ConcatenatedModule.js +305 -309
  433. package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
  434. package/lib/optimize/ConstExportsPlugin.js +7 -7
  435. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  436. package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
  437. package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +25 -30
  438. package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +26 -30
  439. package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
  440. package/lib/optimize/FlagIncludedChunksPlugin.js +5 -13
  441. package/lib/optimize/InlineExports.js +11 -3
  442. package/lib/optimize/InnerGraph.js +5 -13
  443. package/lib/optimize/InnerGraphPlugin.js +17 -23
  444. package/lib/optimize/LazyBarrels.js +584 -0
  445. package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
  446. package/lib/optimize/LimitChunkCountPlugin.js +21 -15
  447. package/lib/optimize/MangleExportsPlugin.js +8 -9
  448. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
  449. package/lib/optimize/MinChunkSizePlugin.js +9 -6
  450. package/lib/optimize/ModuleConcatenationPlugin.js +23 -16
  451. package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
  452. package/lib/optimize/RealContentHashPlugin.js +16 -7
  453. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  454. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  455. package/lib/optimize/SideEffectsFlagPlugin.js +25 -37
  456. package/lib/optimize/SplitChunksPlugin.js +715 -159
  457. package/lib/{util → optimize}/TupleQueue.js +9 -9
  458. package/lib/optimize/chunkSetIntersections.js +437 -0
  459. package/lib/{util → optimize}/deterministicGrouping.js +25 -30
  460. package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
  461. package/lib/{CleanPlugin.js → output/CleanPlugin.js} +66 -24
  462. package/lib/{CopyPlugin.js → output/CopyPlugin.js} +142 -67
  463. package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
  464. package/lib/output/SSRManifestPlugin.js +349 -0
  465. package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
  466. package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
  467. package/lib/performance/BroadContextsPlugin.js +4 -4
  468. package/lib/performance/CacheEffectivenessPlugin.js +5 -7
  469. package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
  470. package/lib/performance/DuplicateModulesPlugin.js +3 -4
  471. package/lib/performance/DuplicatePackagesPlugin.js +3 -3
  472. package/lib/performance/DynamicExportsPlugin.js +2 -2
  473. package/lib/performance/EvalUsagePlugin.js +3 -3
  474. package/lib/performance/HotspotsPlugin.js +11 -10
  475. package/lib/performance/LargeModulesPlugin.js +2 -3
  476. package/lib/performance/LegacyJavascriptPlugin.js +1 -2
  477. package/lib/performance/MissingSideEffectsPlugin.js +2 -3
  478. package/lib/performance/MissingSourceMapsPlugin.js +5 -6
  479. package/lib/performance/PureAnnotationsPlugin.js +3 -3
  480. package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
  481. package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
  482. package/lib/performance/SizeLimitsPlugin.js +13 -16
  483. package/lib/performance/TopLevelThisPlugin.js +8 -7
  484. package/lib/performance/UnsplitVendorsPlugin.js +1 -2
  485. package/lib/performance/UnusedAliasesPlugin.js +6 -7
  486. package/lib/performance/UnusedAssetsPlugin.js +5 -5
  487. package/lib/performance/UnusedDefinesPlugin.js +2 -2
  488. package/lib/performance/UnusedExternalsPlugin.js +3 -4
  489. package/lib/performance/UnusedFederationPlugin.js +2 -4
  490. package/lib/performance/UnusedModulesPlugin.js +5 -4
  491. package/lib/performance/getModuleSize.js +1 -1
  492. package/lib/performance/hasOnlyUnusedExports.js +4 -4
  493. package/lib/performance/isOnlyReexported.js +7 -6
  494. package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
  495. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
  496. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +7 -9
  497. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
  498. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
  499. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
  500. package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
  501. package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
  502. package/lib/prefetch/ResourceHintPlugin.js +82 -65
  503. package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
  504. package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -13
  505. package/lib/prefetch/parseResourceHintOptions.js +4 -3
  506. package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
  507. package/lib/{dependencies → provide}/ProvidedDependency.js +14 -13
  508. package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
  509. package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
  510. package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
  511. package/lib/resolve/getResolveOptionsKey.js +59 -0
  512. package/lib/rules/RuleSetCompiler.js +27 -46
  513. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
  514. package/lib/runtime/AsyncModuleRuntimeModule.js +10 -9
  515. package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
  516. package/lib/runtime/BaseUriRuntimeModule.js +3 -3
  517. package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
  518. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
  519. package/lib/runtime/CompatRuntimeModule.js +4 -4
  520. package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
  521. package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
  522. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
  523. package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
  524. package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
  525. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
  526. package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
  527. package/lib/runtime/GetChunkFilenameRuntimeModule.js +9 -10
  528. package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
  529. package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
  530. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
  531. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
  532. package/lib/runtime/GlobalRuntimeModule.js +5 -7
  533. package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
  534. package/lib/runtime/HelperRuntimeModule.js +16 -1
  535. package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
  536. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +135 -102
  537. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
  538. package/lib/runtime/NonceRuntimeModule.js +2 -2
  539. package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
  540. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  541. package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
  542. package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +18 -1
  543. package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
  544. package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
  545. package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +48 -50
  546. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
  547. package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
  548. package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
  549. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
  550. package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
  551. package/lib/runtime/SystemContextRuntimeModule.js +2 -2
  552. package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
  553. package/lib/runtime/WorkerRuntimeModule.js +1 -1
  554. package/lib/runtime/baseUri.js +1 -1
  555. package/lib/schemes/DataUriPlugin.js +4 -7
  556. package/lib/schemes/HttpUriPlugin.js +67 -11
  557. package/lib/schemes/VirtualUrlPlugin.js +50 -16
  558. package/lib/serialization/AggregateErrorSerializer.js +2 -2
  559. package/lib/serialization/BinaryMiddleware.js +9 -9
  560. package/lib/serialization/FileMiddleware.js +19 -19
  561. package/lib/serialization/ObjectMiddleware.js +77 -49
  562. package/lib/serialization/SerializerMiddleware.js +2 -2
  563. package/lib/serialization/SingleItemMiddleware.js +4 -2
  564. package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
  565. package/lib/sharing/ConsumeSharedModule.js +18 -14
  566. package/lib/sharing/ConsumeSharedPlugin.js +148 -42
  567. package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
  568. package/lib/sharing/ProvideForSharedDependency.js +9 -1
  569. package/lib/sharing/ProvideSharedDependency.js +1 -1
  570. package/lib/sharing/ProvideSharedModule.js +11 -9
  571. package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
  572. package/lib/sharing/ProvideSharedPlugin.js +111 -20
  573. package/lib/sharing/SharePlugin.js +102 -9
  574. package/lib/sharing/ShareRuntimeModule.js +6 -6
  575. package/lib/sharing/resolveMatchedConfigs.js +1 -1
  576. package/lib/{util → sharing}/semver.js +19 -19
  577. package/lib/sharing/utils.js +59 -2
  578. package/lib/stats/DefaultStatsFactoryPlugin.js +25 -23
  579. package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
  580. package/lib/stats/DefaultStatsPrinterPlugin.js +3 -3
  581. package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
  582. package/lib/{Stats.js → stats/Stats.js} +4 -4
  583. package/lib/stats/StatsFactory.js +14 -13
  584. package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
  585. package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
  586. package/lib/template/DependencyTemplate.js +77 -0
  587. package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
  588. package/lib/template/InitFragment.js +223 -0
  589. package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
  590. package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
  591. package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
  592. package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +178 -106
  593. package/lib/{Template.js → template/Template.js} +13 -11
  594. package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +35 -82
  595. package/lib/typescript/TypeScriptPlugin.js +5 -6
  596. package/lib/util/LocConverter.js +4 -7
  597. package/lib/util/RequestShortener.js +44 -0
  598. package/lib/util/SortableSet.js +87 -22
  599. package/lib/util/SourceProcessor.js +364 -66
  600. package/lib/util/TupleSet.js +27 -27
  601. package/lib/util/WeakTupleMap.js +10 -12
  602. package/lib/util/buildDiagnostics.js +2 -2
  603. package/lib/util/comparators.js +10 -10
  604. package/lib/util/concatenate.js +32 -151
  605. package/lib/util/createHooksRegistry.js +1 -2
  606. package/lib/util/createMappings.js +111 -0
  607. package/lib/util/dataURL.js +96 -18
  608. package/lib/util/deprecation.js +1 -1
  609. package/lib/util/extractComments.js +118 -0
  610. package/lib/util/formatLocation.js +1 -1
  611. package/lib/util/globUtils.js +197 -16
  612. package/lib/util/haltVisitors.js +51 -0
  613. package/lib/util/handlerKeys.js +2 -2
  614. package/lib/util/hash/wasm-hash.js +3 -4
  615. package/lib/util/identifier.js +117 -1
  616. package/lib/util/implicitTypeLoaderFallback.js +6 -4
  617. package/lib/util/internalSerializables.js +295 -103
  618. package/lib/util/magicComment.js +12 -7
  619. package/lib/util/makeSerializable.js +23 -4
  620. package/lib/util/parseJson.js +1 -1
  621. package/lib/util/preloadModuleType.js +5 -2
  622. package/lib/util/registerExternalSerializer.js +2 -2
  623. package/lib/util/removeBOM.js +1 -1
  624. package/lib/util/runtime.js +1 -1
  625. package/lib/util/serialization.js +4 -1
  626. package/lib/util/source.js +2 -2
  627. package/lib/util/terminalColors.js +161 -0
  628. package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
  629. package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
  630. package/lib/{wasm-async → wasm}/AsyncWasmModule.js +9 -5
  631. package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +11 -6
  632. package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +16 -11
  633. package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
  634. package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +8 -8
  635. package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
  636. package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +9 -7
  637. package/lib/wasm/wasmModuleFilename.js +2 -2
  638. package/lib/wasm-sync/SyncWasmModule.js +3 -3
  639. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +11 -12
  640. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
  641. package/lib/wasm-sync/WebAssemblyGenerator.js +15 -9
  642. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +19 -16
  643. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
  644. package/lib/wasm-sync/WebAssemblyParser.js +6 -6
  645. package/lib/wasm-sync/WebAssemblyUtils.js +8 -9
  646. package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
  647. package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
  648. package/lib/{Watching.js → watch/Watching.js} +8 -8
  649. package/lib/web/FetchCompileAsyncWasmPlugin.js +8 -6
  650. package/lib/web/FetchCompileWasmPlugin.js +6 -4
  651. package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
  652. package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
  653. package/lib/web/JsonpTemplatePlugin.js +1 -1
  654. package/lib/webpack.js +27 -17
  655. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
  656. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
  657. package/package.json +70 -40
  658. package/schemas/WebpackOptions.check.js +2 -1
  659. package/schemas/WebpackOptions.d.json.ts +2 -0
  660. package/schemas/WebpackOptions.json +294 -74
  661. package/schemas/plugins/BannerPlugin.check.js +2 -1
  662. package/schemas/plugins/BannerPlugin.json +29 -2
  663. package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -0
  664. package/schemas/plugins/HtmlParserOptions.check.js +2 -1
  665. package/schemas/plugins/IgnorePlugin.check.js +1 -0
  666. package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
  667. package/schemas/plugins/IgnorePlugin.json +1 -1
  668. package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -0
  669. package/schemas/plugins/ManifestPlugin.check.js +1 -0
  670. package/schemas/plugins/ManifestPlugin.json +3 -3
  671. package/schemas/plugins/ProgressPlugin.check.js +2 -1
  672. package/schemas/plugins/ProgressPlugin.json +2 -7
  673. package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
  674. package/schemas/plugins/SSRManifestPlugin.json +20 -0
  675. package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -1
  676. package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
  677. package/schemas/plugins/WatchIgnorePlugin.check.js +2 -1
  678. package/schemas/plugins/WatchIgnorePlugin.json +12 -3
  679. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -0
  680. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -0
  681. package/schemas/plugins/asset/AssetParserOptions.check.js +1 -0
  682. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -0
  683. package/schemas/plugins/container/ContainerPlugin.check.js +2 -1
  684. package/schemas/plugins/container/ContainerPlugin.json +8 -0
  685. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -0
  686. package/schemas/plugins/container/ExternalsType.check.js +1 -0
  687. package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -1
  688. package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
  689. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -0
  690. package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -0
  691. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -0
  692. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -0
  693. package/schemas/plugins/css/CssParserOptions.check.js +1 -0
  694. package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -0
  695. package/schemas/plugins/dll/DllPlugin.check.js +1 -0
  696. package/schemas/plugins/dll/DllReferencePlugin.check.js +2 -1
  697. package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
  698. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -0
  699. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -0
  700. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -0
  701. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +1 -0
  702. package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -0
  703. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -0
  704. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -0
  705. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -0
  706. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -0
  707. package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -0
  708. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +1 -0
  709. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +2 -1
  710. package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
  711. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +2 -1
  712. package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
  713. package/schemas/plugins/sharing/SharePlugin.check.js +2 -1
  714. package/schemas/plugins/sharing/SharePlugin.json +32 -0
  715. package/types.d.ts +13915 -8414
  716. package/lib/ErrorHelpers.js +0 -107
  717. package/lib/LazyBarrel.js +0 -388
  718. package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
  719. package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
  720. package/lib/javascript/ChunkFormatHelpers.js +0 -71
  721. package/lib/javascript/grammar.js +0 -5546
  722. package/lib/javascript/parser.js +0 -1494
  723. package/lib/javascript/regexpData.js +0 -51
  724. package/lib/performance/getSourceModules.js +0 -22
  725. package/lib/util/Semaphore.js +0 -65
  726. package/lib/util/objectToMap.js +0 -15
  727. package/schemas/WebpackOptions.check.d.ts +0 -7
  728. package/schemas/_container.json +0 -155
  729. package/schemas/_sharing.json +0 -118
  730. package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
  731. package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
  732. package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
  733. package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
  734. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
  735. package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
  736. package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
  737. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
  738. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
  739. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
  740. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
  741. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
  742. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
  743. package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
  744. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
  745. package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
  746. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
  747. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
  748. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
  749. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
  750. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
  751. package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
  752. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
  753. package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
  754. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
  755. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
  756. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
  757. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
  758. package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
  759. package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
  760. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
  761. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
  762. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
  763. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
  764. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
  765. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
  766. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
  767. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
  768. package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
  769. /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
  770. /package/lib/{util → css}/conventions.js +0 -0
  771. /package/lib/{util → css}/topologicalSort.js +0 -0
  772. /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
  773. /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
  774. /package/lib/{util → fs}/StackedCacheMap.js +0 -0
  775. /package/lib/{util → javascript}/StackedMap.js +0 -0
  776. /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
  777. /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
  778. /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
  779. /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
  780. /package/lib/{util → optimize}/Queue.js +0 -0
  781. /package/lib/{util → stats}/smartGrouping.js +0 -0
@@ -4,27 +4,28 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const makeSerializable = require("../util/makeSerializable");
8
- const memoize = require("../util/memoize");
9
- const ModuleDependency = require("./ModuleDependency");
7
+ const makeSerializable = require("../../util/makeSerializable");
8
+ const memoize = require("../../util/memoize");
9
+ const ModuleDependency = require("../core/ModuleDependency");
10
10
 
11
11
  // only the template needs it, and that runs only for a real html module
12
- const getHtmlGenerator = memoize(() => require("../html/HtmlGenerator"));
12
+ const getHtmlGenerator = memoize(() => require("../../html/HtmlGenerator"));
13
13
 
14
14
  /** @import { ReplaceSource } from "webpack-sources" */
15
- /** @import Chunk from "../Chunk" */
16
- /** @import Dependency from "../Dependency" */
17
- /** @import { DependencyTemplateContext } from "../DependencyTemplate" */
18
- /** @import Entrypoint from "../Entrypoint" */
19
- /** @import { Range } from "../javascript/JavascriptParser" */
20
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[number, Range, string, string]>} ObjectDeserializerContext */
21
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[number, Range, string, string]>} ObjectSerializerContext */
15
+ /** @import Chunk from "../../graph/Chunk" */
16
+ /** @import Dependency from "../../graph/Dependency" */
17
+ /** @import { DependencyTemplateContext } from "../../template/DependencyTemplate" */
18
+ /** @import Entrypoint from "../../graph/Entrypoint" */
19
+ /** @import { Range } from "../../javascript/JavascriptParser" */
20
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectDeserializerContext<[number, Range, string, string, Range | undefined, boolean]>} ObjectDeserializerContext */
21
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectSerializerContext<[number, Range, string, string, Range | undefined, boolean]>} ObjectSerializerContext */
22
22
 
23
23
  /**
24
24
  * Represents an inline `<script>...</script>` block in an HTML module. The
25
25
  * tag's body is bundled as its own entry chunk — the same pipeline that
26
26
  * processes `<script src>` — and the inline body is replaced with a
27
- * `src` attribute pointing at the emitted chunk URL.
27
+ * `src` attribute pointing at the emitted chunk URL. A tag sharing an
28
+ * earlier tag's entry carries a `removeRange` and is dropped instead.
28
29
  */
29
30
  class HtmlInlineScriptDependency extends ModuleDependency {
30
31
  /**
@@ -34,8 +35,18 @@ class HtmlInlineScriptDependency extends ModuleDependency {
34
35
  * @param {Range} contentRange range of the inline JS body (between `<script>` and `</script>`)
35
36
  * @param {string} entryName name of the entry the inline JS is bundled into
36
37
  * @param {string=} category dependency category used for resolving and grouping
38
+ * @param {Range=} removeRange range of the whole element, when the tag is dropped
39
+ * @param {boolean=} forceInline `<!-- webpackInline: true -->` was set before this tag
37
40
  */
38
- constructor(request, insertPos, contentRange, entryName, category) {
41
+ constructor(
42
+ request,
43
+ insertPos,
44
+ contentRange,
45
+ entryName,
46
+ category,
47
+ removeRange,
48
+ forceInline
49
+ ) {
39
50
  super(request);
40
51
  /** @type {number} */
41
52
  this.insertPos = insertPos;
@@ -45,6 +56,10 @@ class HtmlInlineScriptDependency extends ModuleDependency {
45
56
  this.entryName = entryName;
46
57
  /** @type {string} */
47
58
  this._category = category || "commonjs";
59
+ /** @type {Range | undefined} */
60
+ this.removeRange = removeRange;
61
+ /** @type {boolean} */
62
+ this.forceInline = forceInline === true;
48
63
  }
49
64
 
50
65
  get type() {
@@ -64,7 +79,9 @@ class HtmlInlineScriptDependency extends ModuleDependency {
64
79
  .write(this.insertPos)
65
80
  .write(this.contentRange)
66
81
  .write(this.entryName)
67
- .write(this._category);
82
+ .write(this._category)
83
+ .write(this.removeRange)
84
+ .write(this.forceInline);
68
85
  super.serialize(context);
69
86
  }
70
87
 
@@ -81,7 +98,11 @@ class HtmlInlineScriptDependency extends ModuleDependency {
81
98
  this.entryName = c2.read();
82
99
  const c3 = c2.rest;
83
100
  this._category = c3.read();
84
- super.deserialize(c3.rest);
101
+ const c4 = c3.rest;
102
+ this.removeRange = c4.read();
103
+ const c5 = c4.rest;
104
+ this.forceInline = c5.read();
105
+ super.deserialize(c5.rest);
85
106
  }
86
107
  }
87
108
 
@@ -96,8 +117,12 @@ HtmlInlineScriptDependency.Template = class HtmlInlineScriptDependencyTemplate e
96
117
  * @returns {void}
97
118
  */
98
119
  apply(dependency, source, templateContext) {
99
- const { runtimeTemplate } = templateContext;
120
+ const { runtimeTemplate, chunkGraph, module } = templateContext;
100
121
  const dep = /** @type {HtmlInlineScriptDependency} */ (dependency);
122
+ if (dep.removeRange) {
123
+ source.replace(dep.removeRange[0], dep.removeRange[1] - 1, "");
124
+ return;
125
+ }
101
126
  const compilation = runtimeTemplate.compilation;
102
127
  const entrypoint = /** @type {Entrypoint | undefined} */ (
103
128
  compilation.entrypoints.get(dep.entryName)
@@ -108,22 +133,46 @@ HtmlInlineScriptDependency.Template = class HtmlInlineScriptDependencyTemplate e
108
133
 
109
134
  if (entrypoint) {
110
135
  const chunk = /** @type {Chunk} */ (entrypoint.getEntrypointChunk());
136
+ // A sentinel only resolves in a page webpack emits; exported as a JS
137
+ // string it would ride along unresolved.
138
+ const isExtractedHtml = chunkGraph
139
+ .getModuleSourceTypes(module)
140
+ .has("html");
141
+ if (
142
+ isExtractedHtml &&
143
+ getHtmlGenerator().canInlineChunk(compilation, chunk) &&
144
+ (dep.forceInline ||
145
+ getHtmlGenerator().isChunkInlined(
146
+ compilation.outputOptions.html,
147
+ chunk,
148
+ "javascript"
149
+ ))
150
+ ) {
151
+ // The tag stays as written and its body becomes the chunk's code, so
152
+ // the run costs no request.
153
+ source.replace(
154
+ dep.contentRange[0],
155
+ dep.contentRange[1] - 1,
156
+ getHtmlGenerator().makeChunkInlineSentinel(chunk, "javascript")
157
+ );
158
+ return;
159
+ }
111
160
  // Defer chunk-URL substitution to renderManifest — chunk hashes aren't ready yet.
112
161
  url = getHtmlGenerator().makeChunkUrlSentinel(chunk, "javascript");
113
162
  }
114
163
 
115
- // Insert ` src="…"` right after `<script` so the inline body is
116
- // served from the emitted chunk instead. The browser ignores the
117
- // remaining inline body once `src` is present, but we still clear
118
- // it below so the unprocessed JS doesn't ride along.
164
+ // Insert ` src="…"` just after `<script`, serving the body from the emitted
165
+ // chunk. The browser ignores an inline body beside `src`, but it is cleared
166
+ // below so the unprocessed JS does not ride along.
119
167
  source.insert(dep.insertPos, ` src="${url}"`);
120
168
  source.replace(dep.contentRange[0], dep.contentRange[1] - 1, "");
121
169
  }
122
170
  };
123
171
 
124
- makeSerializable(
125
- HtmlInlineScriptDependency,
172
+ makeSerializable(HtmlInlineScriptDependency, [
173
+ "webpack/lib/dependencies/html/HtmlInlineScriptDependency",
174
+ // TODO in the next major release: remove, they restore pre-move cache packs
126
175
  "webpack/lib/dependencies/HtmlInlineScriptDependency"
127
- );
176
+ ]);
128
177
 
129
178
  module.exports = HtmlInlineScriptDependency;
@@ -4,19 +4,19 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const { CSS_TEXT_TYPE } = require("../ModuleSourceTypeConstants");
8
- const makeSerializable = require("../util/makeSerializable");
9
- const ModuleDependency = require("./ModuleDependency");
7
+ const { CSS_TEXT_TYPE } = require("../../module/ModuleSourceTypeConstants");
8
+ const makeSerializable = require("../../util/makeSerializable");
9
+ const ModuleDependency = require("../core/ModuleDependency");
10
10
 
11
11
  /** @import { ReplaceSource } from "webpack-sources" */
12
- /** @import CodeGenerationResults from "../CodeGenerationResults" */
13
- /** @import Dependency, { UpdateHashContext } from "../Dependency" */
14
- /** @import { DependencyTemplateContext } from "../DependencyTemplate" */
15
- /** @import Module from "../Module" */
16
- /** @import { Range } from "../javascript/JavascriptParser" */
17
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<boolean[]>} ObjectDeserializerContext */
18
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<boolean[]>} ObjectSerializerContext */
19
- /** @import Hash from "../util/Hash" */
12
+ /** @import CodeGenerationResults from "../../module/CodeGenerationResults" */
13
+ /** @import Dependency, { UpdateHashContext } from "../../graph/Dependency" */
14
+ /** @import { DependencyTemplateContext } from "../../template/DependencyTemplate" */
15
+ /** @import Module from "../../module/Module" */
16
+ /** @import { Range } from "../../javascript/JavascriptParser" */
17
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectDeserializerContext<boolean[]>} ObjectDeserializerContext */
18
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectSerializerContext<boolean[]>} ObjectSerializerContext */
19
+ /** @import Hash from "../../util/Hash" */
20
20
 
21
21
  const TRAILING_WHITESPACE_REGEXP = /\s+$/;
22
22
  // One pass over the source: each char is replaced once and replacements aren't
@@ -31,6 +31,18 @@ const ATTR_ESCAPES = { "&": "&amp;", '"': "&quot;", "'": "&#39;" };
31
31
  */
32
32
  const escapeAttrChar = (c) => ATTR_ESCAPES[c];
33
33
 
34
+ // Character data needs only the two that open markup: `&` starts a character
35
+ // reference and `<` a tag. A CR is written as a reference because §13.2.3.5
36
+ // rewrites a literal one to LF before the tokenizer reads it.
37
+ const TEXT_ESCAPE_REGEXP = /[&<\r]/g;
38
+ /** @type {Record<string, string>} */
39
+ const TEXT_ESCAPES = { "&": "&amp;", "<": "&lt;", "\r": "&#13;" };
40
+ /**
41
+ * @param {string} c matched character
42
+ * @returns {string} the HTML-text-escaped entity
43
+ */
44
+ const escapeTextChar = (c) => TEXT_ESCAPES[c];
45
+
34
46
  /**
35
47
  * Represents inline CSS in an HTML module — either a `<style>...</style>`
36
48
  * block (a stylesheet) or an element's `style="..."` attribute (a CSS
@@ -47,14 +59,23 @@ class HtmlInlineStyleDependency extends ModuleDependency {
47
59
  * @param {Range} range range of the inline CSS content (between `<style>` and `</style>`, or the `style` attribute value)
48
60
  * @param {boolean=} attribute true when the source is a `style="..."` attribute (a block's contents) rather than a `<style>` block (stylesheet)
49
61
  * @param {boolean=} inAttribute true when the range is an attribute value (decoded on parse, so the processed CSS must be re-escaped on write-back); defaults to `attribute` — differs only for attribute values parsed as full stylesheets
62
+ * @param {boolean=} characterData true when the range is a `<style>` body in a foreign (SVG/MathML) subtree, where the content model is character data rather than raw text, so the processed CSS is escaped as text on write-back
50
63
  */
51
- constructor(request, range, attribute = false, inAttribute = attribute) {
64
+ constructor(
65
+ request,
66
+ range,
67
+ attribute = false,
68
+ inAttribute = attribute,
69
+ characterData = false
70
+ ) {
52
71
  super(request);
53
72
  this.range = range;
54
73
  /** @type {boolean} */
55
74
  this.attribute = attribute;
56
75
  /** @type {boolean} */
57
76
  this.inAttribute = inAttribute;
77
+ /** @type {boolean} */
78
+ this.characterData = characterData;
58
79
  }
59
80
 
60
81
  get type() {
@@ -87,6 +108,7 @@ class HtmlInlineStyleDependency extends ModuleDependency {
87
108
  super.serialize(context);
88
109
  context.write(this.attribute);
89
110
  context.write(this.inAttribute);
111
+ context.write(this.characterData);
90
112
  }
91
113
 
92
114
  /**
@@ -97,6 +119,7 @@ class HtmlInlineStyleDependency extends ModuleDependency {
97
119
  super.deserialize(context);
98
120
  this.attribute = context.read();
99
121
  this.inAttribute = context.read();
122
+ this.characterData = context.read();
100
123
  }
101
124
  }
102
125
 
@@ -127,23 +150,34 @@ HtmlInlineStyleDependency.Template = class HtmlInlineStyleDependencyTemplate ext
127
150
  }
128
151
  }
129
152
 
130
- // An attribute value was entity-decoded before parsing, so re-escape
131
- // the processed CSS to keep the surrounding markup valid in any
132
- // quoting context, and drop the trailing newline the CSS generator
133
- // appends so the rewritten attribute stays on one line.
153
+ // An attribute value was entity-decoded before parsing, so the processed CSS
154
+ // is re-escaped to keep the markup valid in any quoting context, and the
155
+ // generator's trailing newline dropped to keep it on one line.
134
156
  if (dep.inAttribute) {
135
157
  cssText = cssText
136
158
  .replace(TRAILING_WHITESPACE_REGEXP, "")
137
159
  .replace(ATTR_ESCAPE_REGEXP, escapeAttrChar);
160
+ } else {
161
+ // A `<style>` body keeps the whitespace its source ends with: the newline
162
+ // the generator appends to hold a stylesheet's modules apart is no fixed
163
+ // point here, and a page built from an emitted one would gain one a pass.
164
+ if (cssText.endsWith("\n")) cssText = cssText.slice(0, -1);
165
+ if (dep.characterData) {
166
+ // A foreign `<style>` body was entity-decoded before parsing, so the
167
+ // processed CSS is escaped back as text — its newlines stay literal,
168
+ // which an attribute value could not afford.
169
+ cssText = cssText.replace(TEXT_ESCAPE_REGEXP, escapeTextChar);
170
+ }
138
171
  }
139
172
 
140
173
  source.replace(dep.range[0], dep.range[1] - 1, cssText);
141
174
  }
142
175
  };
143
176
 
144
- makeSerializable(
145
- HtmlInlineStyleDependency,
177
+ makeSerializable(HtmlInlineStyleDependency, [
178
+ "webpack/lib/dependencies/html/HtmlInlineStyleDependency",
179
+ // TODO in the next major release: remove, they restore pre-move cache packs
146
180
  "webpack/lib/dependencies/HtmlInlineStyleDependency"
147
- );
181
+ ]);
148
182
 
149
183
  module.exports = HtmlInlineStyleDependency;
@@ -5,30 +5,30 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const { ASSET_URL_TYPE } = require("../ModuleSourceTypeConstants");
9
- const RawDataUrlModule = require("../asset/RawDataUrlModule");
10
- const makeSerializable = require("../util/makeSerializable");
11
- const memoize = require("../util/memoize");
12
- const ModuleDependency = require("./ModuleDependency");
8
+ const RawDataUrlModule = require("../../asset/RawDataUrlModule");
9
+ const { ASSET_URL_TYPE } = require("../../module/ModuleSourceTypeConstants");
10
+ const makeSerializable = require("../../util/makeSerializable");
11
+ const memoize = require("../../util/memoize");
12
+ const ModuleDependency = require("../core/ModuleDependency");
13
13
 
14
14
  /** @import { ReplaceSource } from "webpack-sources" */
15
- /** @import CodeGenerationResults from "../CodeGenerationResults" */
16
- /** @import Dependency, { UpdateHashContext } from "../Dependency" */
15
+ /** @import CodeGenerationResults from "../../module/CodeGenerationResults" */
16
+ /** @import Dependency, { UpdateHashContext, DependencyKinds } from "../../graph/Dependency" */
17
17
  /**
18
18
  * @import {
19
19
  * CssDependencyTemplateContext as DependencyTemplateContext
20
- * } from "../DependencyTemplate"
20
+ * } from "../../template/DependencyTemplate"
21
21
  */
22
- /** @import Module, { BuildInfo } from "../Module" */
23
- /** @import { Range } from "../javascript/JavascriptParser" */
22
+ /** @import Module, { BuildInfo } from "../../module/Module" */
23
+ /** @import { Range } from "../../javascript/JavascriptParser" */
24
24
  /**
25
25
  * @import {
26
26
  * ObjectDeserializerContext,
27
27
  * ObjectSerializerContext
28
- * } from "../serialization/ObjectMiddleware"
28
+ * } from "../../serialization/ObjectMiddleware"
29
29
  */
30
- /** @import Hash from "../util/Hash" */
31
- /** @import { RuntimeSpec } from "../util/runtime" */
30
+ /** @import Hash from "../../util/Hash" */
31
+ /** @import { RuntimeSpec } from "../../util/runtime" */
32
32
 
33
33
  const getIgnoredRawDataUrlModule = memoize(
34
34
  () => new RawDataUrlModule("data:,", "ignored-asset", "(ignored asset)")
@@ -172,9 +172,16 @@ HtmlSourceDependency.Template = class HtmlSourceDependencyTemplate extends (
172
172
  }
173
173
  };
174
174
 
175
- makeSerializable(
176
- HtmlSourceDependency,
175
+ makeSerializable(HtmlSourceDependency, [
176
+ "webpack/lib/dependencies/html/HtmlSourceDependency",
177
+ // TODO in the next major release: remove, they restore pre-move cache packs
177
178
  "webpack/lib/dependencies/HtmlSourceDependency"
178
- );
179
+ ]);
180
+
181
+ /** @type {Set<keyof DependencyKinds>} */
182
+ HtmlSourceDependency.KINDS = new Set([
183
+ ...ModuleDependency.KINDS,
184
+ "html-source"
185
+ ]);
179
186
 
180
187
  module.exports = HtmlSourceDependency;
@@ -5,16 +5,17 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const makeSerializable = require("../util/makeSerializable");
9
- const ContextDependency = require("./ContextDependency");
10
- const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTemplateAsRequireCall");
8
+ const makeSerializable = require("../../util/makeSerializable");
9
+ const ContextDependency = require("../context/ContextDependency");
10
+ const ContextDependencyTemplateAsRequireCall = require("../context/ContextDependencyTemplateAsRequireCall");
11
+ const { ImportPhaseUtils } = require("../core/ImportPhase");
11
12
  const importOptionsCheck = require("./importOptionsCheck");
12
13
 
13
- /** @import { Range } from "../javascript/JavascriptParser" */
14
- /** @import { ObjectDeserializerContext, ObjectSerializerContext } from "../serialization/ObjectMiddleware" */
15
- /** @import { ContextDependencyOptions } from "./ContextDependency" */
14
+ /** @import { Range } from "../../javascript/JavascriptParser" */
15
+ /** @import { ObjectDeserializerContext, ObjectSerializerContext } from "../../serialization/ObjectMiddleware" */
16
+ /** @import { ContextDependencyOptions } from "../context/ContextDependency" */
16
17
  /** @import { ReplaceSource } from "webpack-sources" */
17
- /** @import { DependencyTemplateContext } from "../DependencyTemplate" */
18
+ /** @import { DependencyTemplateContext } from "../../template/DependencyTemplate" */
18
19
 
19
20
  class ImportContextDependency extends ContextDependency {
20
21
  /**
@@ -46,6 +47,9 @@ class ImportContextDependency extends ContextDependency {
46
47
  */
47
48
  getResourceIdentifier() {
48
49
  let str = super.getResourceIdentifier();
50
+ if (this.options.phase) {
51
+ str += `|phase${ImportPhaseUtils.stringify(this.options.phase)}`;
52
+ }
49
53
 
50
54
  if (this.options.attributes) {
51
55
  str += `|attributes${JSON.stringify(this.options.attributes)}`;
@@ -77,10 +81,11 @@ class ImportContextDependency extends ContextDependency {
77
81
  }
78
82
  }
79
83
 
80
- makeSerializable(
81
- ImportContextDependency,
84
+ makeSerializable(ImportContextDependency, [
85
+ "webpack/lib/dependencies/import/ImportContextDependency",
86
+ // TODO in the next major release: remove, they restore pre-move cache packs
82
87
  "webpack/lib/dependencies/ImportContextDependency"
83
- );
88
+ ]);
84
89
 
85
90
  ImportContextDependency.Template = class ImportContextDependencyTemplate extends (
86
91
  ContextDependencyTemplateAsRequireCall
@@ -95,6 +100,15 @@ ImportContextDependency.Template = class ImportContextDependencyTemplate extends
95
100
  * @returns {void}
96
101
  */
97
102
  replaceCall(dep, source, moduleExports, templateContext) {
103
+ if (ImportPhaseUtils.isSource(dep.options.phase)) {
104
+ source.insert(
105
+ /** @type {Range} */ (dep.range)[1],
106
+ `.then(${templateContext.runtimeTemplate.returningFunction(
107
+ 'm["default"]',
108
+ "m"
109
+ )})`
110
+ );
111
+ }
98
112
  const optionsRange = /** @type {ImportContextDependency} */ (dep)
99
113
  .optionsRange;
100
114
  if (optionsRange === undefined) {
@@ -5,35 +5,36 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const Dependency = require("../Dependency");
9
- const makeSerializable = require("../util/makeSerializable");
10
- const HarmonyImportGuard = require("./HarmonyImportGuard");
11
- const { ImportPhaseUtils } = require("./ImportPhase");
12
- const ModuleDependency = require("./ModuleDependency");
8
+ const Dependency = require("../../graph/Dependency");
9
+ const makeSerializable = require("../../util/makeSerializable");
10
+ const { ImportPhaseUtils } = require("../core/ImportPhase");
11
+ const ModuleDependency = require("../core/ModuleDependency");
12
+ const ESMImportGuard = require("../esm/ESMImportGuard");
13
13
  const importOptionsCheck = require("./importOptionsCheck");
14
14
 
15
15
  /** @import { ReplaceSource } from "webpack-sources" */
16
- /** @import AsyncDependenciesBlock from "../AsyncDependenciesBlock" */
16
+ /** @import AsyncDependenciesBlock from "../../graph/AsyncDependenciesBlock" */
17
17
  /**
18
18
  * @import {
19
19
  * GetConditionFn,
20
20
  * RawReferencedExports,
21
- * ReferencedExports
22
- * } from "../Dependency"
21
+ * ReferencedExports,
22
+ * DependencyKinds
23
+ * } from "../../graph/Dependency"
23
24
  */
24
- /** @import { DependencyTemplateContext } from "../DependencyTemplate" */
25
- /** @import Module, { BuildMeta } from "../Module" */
26
- /** @import ModuleGraph from "../ModuleGraph" */
27
- /** @import { ImportAttributes, Range } from "../javascript/JavascriptParser" */
25
+ /** @import { DependencyTemplateContext } from "../../template/DependencyTemplate" */
26
+ /** @import Module, { BuildMeta } from "../../module/Module" */
27
+ /** @import ModuleGraph from "../../graph/ModuleGraph" */
28
+ /** @import { ImportAttributes, Range } from "../../javascript/JavascriptParser" */
28
29
  /**
29
30
  * @import {
30
31
  * ObjectDeserializerContext,
31
32
  * ObjectSerializerContext
32
- * } from "../serialization/ObjectMiddleware"
33
+ * } from "../../serialization/ObjectMiddleware"
33
34
  */
34
- /** @import { RuntimeSpec } from "../util/runtime" */
35
- /** @import { DependencyGuard } from "./HarmonyImportGuard" */
36
- /** @import { ImportPhaseType } from "./ImportPhase" */
35
+ /** @import { RuntimeSpec } from "../../util/runtime" */
36
+ /** @import { DependencyGuard } from "../esm/ESMImportGuard" */
37
+ /** @import { ImportPhaseType } from "../core/ImportPhase" */
37
38
 
38
39
  class ImportDependency extends ModuleDependency {
39
40
  /**
@@ -79,7 +80,7 @@ class ImportDependency extends ModuleDependency {
79
80
  const guards = this.branchGuards;
80
81
  if (guards === undefined) return null;
81
82
  return (connection, runtime) =>
82
- !HarmonyImportGuard.isDeadByGuards(guards, moduleGraph, runtime);
83
+ !ESMImportGuard.isDeadByGuards(guards, moduleGraph, runtime);
83
84
  }
84
85
 
85
86
  /**
@@ -166,7 +167,11 @@ class ImportDependency extends ModuleDependency {
166
167
  }
167
168
  }
168
169
 
169
- makeSerializable(ImportDependency, "webpack/lib/dependencies/ImportDependency");
170
+ makeSerializable(ImportDependency, [
171
+ "webpack/lib/dependencies/import/ImportDependency",
172
+ // TODO in the next major release: remove, they restore pre-move cache packs
173
+ "webpack/lib/dependencies/ImportDependency"
174
+ ]);
170
175
 
171
176
  ImportDependency.Template = class ImportDependencyTemplate extends (
172
177
  ModuleDependency.Template
@@ -241,4 +246,7 @@ ImportDependency.Template = class ImportDependencyTemplate extends (
241
246
  }
242
247
  };
243
248
 
249
+ /** @type {Set<keyof DependencyKinds>} */
250
+ ImportDependency.KINDS = new Set([...ModuleDependency.KINDS, "dynamic-import"]);
251
+
244
252
  module.exports = ImportDependency;
@@ -5,15 +5,16 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const makeSerializable = require("../util/makeSerializable");
8
+ const makeSerializable = require("../../util/makeSerializable");
9
+ const { ImportPhaseUtils } = require("../core/ImportPhase");
9
10
  const ImportDependency = require("./ImportDependency");
10
11
 
11
12
  /** @import { ReplaceSource } from "webpack-sources" */
12
- /** @import Dependency, { RawReferencedExports } from "../Dependency" */
13
- /** @import { DependencyTemplateContext } from "../DependencyTemplate" */
14
- /** @import Module, { BuildMeta } from "../Module" */
15
- /** @import { ImportAttributes, Range } from "../javascript/JavascriptParser" */
16
- /** @import { ImportPhaseType } from "./ImportPhase" */
13
+ /** @import Dependency, { RawReferencedExports } from "../../graph/Dependency" */
14
+ /** @import { DependencyTemplateContext } from "../../template/DependencyTemplate" */
15
+ /** @import Module, { BuildMeta } from "../../module/Module" */
16
+ /** @import { ImportAttributes, Range } from "../../javascript/JavascriptParser" */
17
+ /** @import { ImportPhaseType } from "../core/ImportPhase" */
17
18
 
18
19
  class ImportEagerDependency extends ImportDependency {
19
20
  /**
@@ -37,10 +38,11 @@ class ImportEagerDependency extends ImportDependency {
37
38
  }
38
39
  }
39
40
 
40
- makeSerializable(
41
- ImportEagerDependency,
41
+ makeSerializable(ImportEagerDependency, [
42
+ "webpack/lib/dependencies/import/ImportEagerDependency",
43
+ // TODO in the next major release: remove, they restore pre-move cache packs
42
44
  "webpack/lib/dependencies/ImportEagerDependency"
43
- );
45
+ ]);
44
46
 
45
47
  ImportEagerDependency.Template = class ImportEagerDependencyTemplate extends (
46
48
  ImportDependency.Template
@@ -58,7 +60,7 @@ ImportEagerDependency.Template = class ImportEagerDependencyTemplate extends (
58
60
  { runtimeTemplate, module, moduleGraph, chunkGraph, runtimeRequirements }
59
61
  ) {
60
62
  const dep = /** @type {ImportEagerDependency} */ (dependency);
61
- const content = runtimeTemplate.moduleNamespacePromise({
63
+ let content = runtimeTemplate.moduleNamespacePromise({
62
64
  chunkGraph,
63
65
  module: /** @type {Module} */ (moduleGraph.getModule(dep)),
64
66
  request: dep.request,
@@ -67,6 +69,12 @@ ImportEagerDependency.Template = class ImportEagerDependencyTemplate extends (
67
69
  dependency: dep,
68
70
  runtimeRequirements
69
71
  });
72
+ if (ImportPhaseUtils.isSource(dep.phase)) {
73
+ content = `${content}.then(${runtimeTemplate.returningFunction(
74
+ 'm["default"]',
75
+ "m"
76
+ )})`;
77
+ }
70
78
 
71
79
  source.replace(dep.range[0], dep.range[1] - 1, content);
72
80
  }
@@ -5,29 +5,29 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
8
+ const AsyncDependenciesBlock = require("../../graph/AsyncDependenciesBlock");
9
9
 
10
10
  const {
11
- VariableInfo,
12
- getImportAttributes
13
- } = require("../javascript/JavascriptParser");
14
- const memoize = require("../util/memoize");
15
- const traverseDestructuringAssignmentProperties = require("../util/traverseDestructuringAssignmentProperties");
16
- const ContextDependencyHelpers = require("./ContextDependencyHelpers");
17
- const { getNonOptionalPart } = require("./HarmonyImportDependency");
18
- const HarmonyImportGuard = require("./HarmonyImportGuard");
11
+ getImportAttributes,
12
+ isVariableInfo
13
+ } = require("../../javascript/JavascriptParser");
14
+ const memoize = require("../../util/memoize");
15
+ const ContextDependencyHelpers = require("../context/ContextDependencyHelpers");
16
+ const { createGetImportPhase } = require("../core/ImportPhase");
17
+ const { getNonOptionalPart } = require("../esm/ESMImportDependency");
18
+ const ESMImportGuard = require("../esm/ESMImportGuard");
19
+ const traverseDestructuringAssignmentProperties = require("../helpers/traverseDestructuringAssignmentProperties");
19
20
  const ImportContextDependency = require("./ImportContextDependency");
20
21
  const ImportDependency = require("./ImportDependency");
21
22
  const ImportEagerDependency = require("./ImportEagerDependency");
22
- const { createGetImportPhase } = require("./ImportPhase");
23
23
  const ImportWeakDependency = require("./ImportWeakDependency");
24
24
 
25
25
  const getUnsupportedFeatureWarning = memoize(() =>
26
- require("../errors/UnsupportedFeatureWarning")
26
+ require("../../errors/UnsupportedFeatureWarning")
27
27
  );
28
28
 
29
29
  const getCommentCompilationWarning = memoize(() =>
30
- require("../errors/CommentCompilationWarning")
30
+ require("../../errors/CommentCompilationWarning")
31
31
  );
32
32
 
33
33
  /**
@@ -42,18 +42,18 @@ const getCommentCompilationWarning = memoize(() =>
42
42
  /**
43
43
  * @import {
44
44
  * JavascriptParserOptions
45
- * } from "../../declarations/WebpackOptions"
45
+ * } from "../../../declarations/WebpackOptions"
46
46
  */
47
- /** @import { RawChunkGroupOptions } from "../ChunkGroup" */
48
- /** @import { ContextMode } from "../ContextModule" */
49
- /** @import { RawReferencedExports } from "../Dependency" */
50
- /** @import { BuildMeta } from "../Module" */
47
+ /** @import { RawChunkGroupOptions } from "../../graph/ChunkGroup" */
48
+ /** @import { ContextMode } from "../../context/ContextModule" */
49
+ /** @import { RawReferencedExports } from "../../graph/Dependency" */
50
+ /** @import { BuildMeta } from "../../module/Module" */
51
51
  /**
52
52
  * @import JavascriptParser, {
53
53
  * ImportExpression,
54
54
  * Range,
55
55
  * JavascriptParserState
56
- * } from "../javascript/JavascriptParser"
56
+ * } from "../../javascript/JavascriptParser"
57
57
  */
58
58
 
59
59
  /** @typedef {{ references: RawReferencedExports, expression: ImportExpression }} ImportSettings */
@@ -250,7 +250,7 @@ class ImportParserPlugin {
250
250
  const nameInfo = parser.getNameForExpression(expr);
251
251
  if (
252
252
  nameInfo &&
253
- nameInfo.rootInfo instanceof VariableInfo &&
253
+ isVariableInfo(nameInfo.rootInfo) &&
254
254
  nameInfo.rootInfo.name &&
255
255
  parser.getTagData(nameInfo.rootInfo.name, dynamicImportTag)
256
256
  ) {
@@ -641,7 +641,7 @@ class ImportParserPlugin {
641
641
  dep.optional = Boolean(parser.scope.inTry);
642
642
  depBlock.addDependency(dep);
643
643
  parser.state.current.addBlock(depBlock);
644
- HarmonyImportGuard.attachDependencyGuards(parser, dep);
644
+ ESMImportGuard.attachDependencyGuards(parser, dep);
645
645
  }
646
646
  } else {
647
647
  if (mode === "weak") {