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
@@ -5,53 +5,53 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const RuntimeGlobals = require("../RuntimeGlobals");
9
-
10
8
  const {
11
9
  evaluateToIdentifier,
12
10
  evaluateToString,
13
11
  expressionIsUnsupported,
14
12
  toConstantDependency
15
- } = require("../javascript/JavascriptParserHelpers");
16
- const memoize = require("../util/memoize");
17
- const traverseDestructuringAssignmentProperties = require("../util/traverseDestructuringAssignmentProperties");
13
+ } = require("../../javascript/JavascriptParserHelpers");
14
+ const RuntimeGlobals = require("../../runtime/RuntimeGlobals");
15
+
16
+ const memoize = require("../../util/memoize");
17
+ const LocalModuleDependency = require("../amd/LocalModuleDependency");
18
+ const { getLocalModule } = require("../amd/LocalModulesHelpers");
19
+ const ContextDependencyHelpers = require("../context/ContextDependencyHelpers");
20
+ const ConstDependency = require("../core/ConstDependency");
21
+ const ESMImportGuard = require("../esm/ESMImportGuard");
22
+ const traverseDestructuringAssignmentProperties = require("../helpers/traverseDestructuringAssignmentProperties");
18
23
  const CommonJsFullRequireDependency = require("./CommonJsFullRequireDependency");
19
24
  const CommonJsRequireContextDependency = require("./CommonJsRequireContextDependency");
20
25
  const CommonJsRequireDependency = require("./CommonJsRequireDependency");
21
- const ConstDependency = require("./ConstDependency");
22
- const ContextDependencyHelpers = require("./ContextDependencyHelpers");
23
- const HarmonyImportGuard = require("./HarmonyImportGuard");
24
- const LocalModuleDependency = require("./LocalModuleDependency");
25
- const { getLocalModule } = require("./LocalModulesHelpers");
26
26
  const RequireHeaderDependency = require("./RequireHeaderDependency");
27
27
  const RequireResolveContextDependency = require("./RequireResolveContextDependency");
28
28
  const RequireResolveDependency = require("./RequireResolveDependency");
29
29
  const RequireResolveHeaderDependency = require("./RequireResolveHeaderDependency");
30
30
 
31
31
  const getUnsupportedFeatureWarning = memoize(() =>
32
- require("../errors/UnsupportedFeatureWarning")
32
+ require("../../errors/UnsupportedFeatureWarning")
33
33
  );
34
34
 
35
35
  const getCommentCompilationWarning = memoize(() =>
36
- require("../errors/CommentCompilationWarning")
36
+ require("../../errors/CommentCompilationWarning")
37
37
  );
38
38
 
39
39
  /** @import { CallExpression, Expression, NewExpression } from "estree" */
40
40
  /**
41
41
  * @import {
42
42
  * JavascriptParserOptions
43
- * } from "../../declarations/WebpackOptions"
43
+ * } from "../../../declarations/WebpackOptions"
44
44
  */
45
- /** @import { RawReferencedExports } from "../Dependency" */
45
+ /** @import { RawReferencedExports } from "../../graph/Dependency" */
46
46
  /**
47
47
  * @import JavascriptParser, {
48
48
  * Range,
49
49
  * Members,
50
50
  * CalleeMembers
51
- * } from "../javascript/JavascriptParser"
51
+ * } from "../../javascript/JavascriptParser"
52
52
  */
53
- /** @import BasicEvaluatedExpression from "../javascript/BasicEvaluatedExpression" */
54
- /** @import LocalModule from "./LocalModule" */
53
+ /** @import BasicEvaluatedExpression from "../../javascript/BasicEvaluatedExpression" */
54
+ /** @import LocalModule from "../amd/LocalModule" */
55
55
 
56
56
  /**
57
57
  * Defines the common js import settings type used by this module.
@@ -65,6 +65,7 @@ const getCommentCompilationWarning = memoize(() =>
65
65
  * member-access references on `NAME` to the `CommonJsRequireDependency`
66
66
  * created for the `require()` call.
67
67
  * @typedef {object} RequireBindingData
68
+ * @property {string} request request passed to `require()`
68
69
  * @property {RawReferencedExports | null} referencedExports mutable list, pushed to as `NAME.x.y` accesses are walked; null means the whole namespace is used. Separate from `dep` so a deferred require (walked after accesses on `NAME`) still collects them; becomes the dep's shared list on creation.
69
70
  * @property {InstanceType<typeof import("./CommonJsRequireDependency")> | null} dep dependency for the `require()` call, null until the `require()` is walked; kept so a later whole-namespace use can null its list directly
70
71
  */
@@ -216,7 +217,7 @@ const createRequireCallHandler = (
216
217
  dep.loc = parser.getLocation(expr);
217
218
  dep.optional = Boolean(parser.scope.inTry);
218
219
  parser.state.current.addDependency(dep);
219
- HarmonyImportGuard.attachDependencyGuards(parser, dep);
220
+ ESMImportGuard.attachDependencyGuards(parser, dep);
220
221
  return dep;
221
222
  }
222
223
  };
@@ -433,6 +434,18 @@ const createProcessResolveHandler = (parser, options, getContext) => {
433
434
 
434
435
  if (expr.arguments.length !== 1) return;
435
436
  const param = parser.evaluateExpression(expr.arguments[0]);
437
+ const range = /** @type {Range} */ (expr.range);
438
+ const argumentRange = /** @type {Range} */ (expr.arguments[0].range);
439
+ const header = new RequireResolveHeaderDependency([
440
+ range[0],
441
+ argumentRange[0]
442
+ ]);
443
+ header.loc = parser.getLocation(expr);
444
+ parser.state.module.addPresentationalDependency(header);
445
+ // A parenthesized expression cannot retain the call's trailing comma.
446
+ const closing = new ConstDependency(")", [argumentRange[1], range[1]]);
447
+ closing.loc = parser.getLocation(expr);
448
+ parser.state.module.addPresentationalDependency(closing);
436
449
  if (param.isConditional()) {
437
450
  for (const option of /** @type {BasicEvaluatedExpression[]} */ (
438
451
  param.options
@@ -442,22 +455,12 @@ const createProcessResolveHandler = (parser, options, getContext) => {
442
455
  processResolveContext(expr, option, weak);
443
456
  }
444
457
  }
445
- const dep = new RequireResolveHeaderDependency(
446
- /** @type {Range} */ (expr.callee.range)
447
- );
448
- dep.loc = parser.getLocation(expr);
449
- parser.state.module.addPresentationalDependency(dep);
450
458
  return true;
451
459
  }
452
460
  const result = processResolveItem(expr, param, weak);
453
461
  if (result === undefined) {
454
462
  processResolveContext(expr, param, weak);
455
463
  }
456
- const dep = new RequireResolveHeaderDependency(
457
- /** @type {Range} */ (expr.callee.range)
458
- );
459
- dep.loc = parser.getLocation(expr);
460
- parser.state.module.addPresentationalDependency(dep);
461
464
  return true;
462
465
  };
463
466
  };
@@ -675,7 +678,7 @@ class CommonJsImportsParserPlugin {
675
678
  dep._canConcatenate = true;
676
679
  dep.loc = parser.getLocation(expr);
677
680
  parser.state.current.addDependency(dep);
678
- HarmonyImportGuard.attachDependencyGuards(parser, dep);
681
+ ESMImportGuard.attachDependencyGuards(parser, dep);
679
682
  return true;
680
683
  }
681
684
  };
@@ -718,7 +721,7 @@ class CommonJsImportsParserPlugin {
718
721
  dep._canConcatenate = true;
719
722
  dep.loc = parser.getLocation(expr.callee);
720
723
  parser.state.current.addDependency(dep);
721
- HarmonyImportGuard.attachDependencyGuards(parser, dep);
724
+ ESMImportGuard.attachDependencyGuards(parser, dep);
722
725
  parser.walkExpressions(expr.arguments);
723
726
  return true;
724
727
  }
@@ -738,11 +741,10 @@ class CommonJsImportsParserPlugin {
738
741
  // #endregion
739
742
 
740
743
  // #region Require bound to a const variable
741
- // Track `const NAME = require(LITERAL)` so that static member accesses on
742
- // `NAME` (e.g. `NAME.foo`, `NAME.foo()`) are forwarded to the same
743
- // `CommonJsRequireDependency` as referenced exports — enabling tree
744
- // shaking of CommonJS modules that are imported into a named binding
745
- // rather than destructured.
744
+
745
+ // Track `const NAME = require(LITERAL)`, so a static member access on `NAME`
746
+ // forwards to the same dependency as a referenced export and a CommonJS
747
+ // module bound to a name still tree-shakes.
746
748
  parser.hooks.preDeclarator.tap(PLUGIN_NAME, (declarator, statement) => {
747
749
  if (statement.kind !== "const") return;
748
750
  if (declarator.id.type !== "Identifier") return;
@@ -765,6 +767,7 @@ class CommonJsImportsParserPlugin {
765
767
  if (!requireInfo || requireInfo.name !== "require") return;
766
768
  /** @type {RequireBindingData} */
767
769
  const binding = {
770
+ request: arg.value,
768
771
  referencedExports: [],
769
772
  dep: null
770
773
  };
@@ -884,5 +887,6 @@ CommonJsImportsParserPlugin.createRequireAsExpressionHandler =
884
887
  CommonJsImportsParserPlugin.createRequireCacheDependency =
885
888
  createRequireCacheDependency;
886
889
  CommonJsImportsParserPlugin.createRequireHandler = createRequireCallHandler;
890
+ CommonJsImportsParserPlugin.REQUIRE_BINDING_TAG = REQUIRE_BINDING_TAG;
887
891
 
888
892
  module.exports = CommonJsImportsParserPlugin;
@@ -5,18 +5,18 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const makeSerializable = require("../util/makeSerializable");
9
- const { propertyName } = require("../util/property");
10
- const NullDependency = require("./NullDependency");
8
+ const makeSerializable = require("../../util/makeSerializable");
9
+ const { propertyName } = require("../../util/property");
10
+ const NullDependency = require("../core/NullDependency");
11
11
 
12
12
  /** @import { ReplaceSource } from "webpack-sources" */
13
- /** @import Dependency, { ExportsSpec, ExportInfoName } from "../Dependency" */
14
- /** @import { DependencyTemplateContext } from "../DependencyTemplate" */
15
- /** @import ModuleGraph from "../ModuleGraph" */
16
- /** @import { Range } from "../javascript/JavascriptParser" */
13
+ /** @import Dependency, { ExportsSpec, ExportInfoName } from "../../graph/Dependency" */
14
+ /** @import { DependencyTemplateContext } from "../../template/DependencyTemplate" */
15
+ /** @import ModuleGraph from "../../graph/ModuleGraph" */
16
+ /** @import { Range } from "../../javascript/JavascriptParser" */
17
17
  /** @typedef {"keyValue" | "shorthand" | "get" | "set" | "method" | "asyncMethod" | "generatorMethod" | "asyncGeneratorMethod"} CommonJsObjectExportKind */
18
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[Range, Range, Range, ExportInfoName, CommonJsObjectExportKind, boolean]>} ObjectDeserializerContext */
19
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[Range, Range, Range, ExportInfoName, CommonJsObjectExportKind, boolean]>} ObjectSerializerContext */
18
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectDeserializerContext<[Range, Range, Range, ExportInfoName, CommonJsObjectExportKind, boolean]>} ObjectDeserializerContext */
19
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectSerializerContext<[Range, Range, Range, ExportInfoName, CommonJsObjectExportKind, boolean]>} ObjectSerializerContext */
20
20
 
21
21
  const EMPTY_OBJECT = {};
22
22
 
@@ -110,10 +110,11 @@ class CommonJsObjectExportDependency extends NullDependency {
110
110
  }
111
111
  }
112
112
 
113
- makeSerializable(
114
- CommonJsObjectExportDependency,
113
+ makeSerializable(CommonJsObjectExportDependency, [
114
+ "webpack/lib/dependencies/commonjs/CommonJsObjectExportDependency",
115
+ // TODO in the next major release: remove, they restore pre-move cache packs
115
116
  "webpack/lib/dependencies/CommonJsObjectExportDependency"
116
- );
117
+ ]);
117
118
 
118
119
  CommonJsObjectExportDependency.Template = class CommonJsObjectExportDependencyTemplate extends (
119
120
  NullDependency.Template
@@ -5,19 +5,20 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const {
9
- JAVASCRIPT_MODULE_TYPE_AUTO,
10
- JAVASCRIPT_MODULE_TYPE_DYNAMIC
11
- } = require("../ModuleTypeConstants");
12
- const RuntimeGlobals = require("../RuntimeGlobals");
13
- const RuntimeModule = require("../RuntimeModule");
14
- const SelfModuleFactory = require("../SelfModuleFactory");
15
- const Template = require("../Template");
16
8
  const {
17
9
  evaluateToIdentifier,
18
10
  expressionIsUnsupported,
19
11
  toConstantDependency
20
- } = require("../javascript/JavascriptParserHelpers");
12
+ } = require("../../javascript/JavascriptParserHelpers");
13
+ const {
14
+ JAVASCRIPT_MODULE_TYPE_AUTO,
15
+ JAVASCRIPT_MODULE_TYPE_DYNAMIC
16
+ } = require("../../module/ModuleTypeConstants");
17
+ const SelfModuleFactory = require("../../module/SelfModuleFactory");
18
+ const RuntimeGlobals = require("../../runtime/RuntimeGlobals");
19
+ const RuntimeModule = require("../../runtime/RuntimeModule");
20
+ const Template = require("../../template/Template");
21
+ const RuntimeRequirementsDependency = require("../core/RuntimeRequirementsDependency");
21
22
  const CommonJsExportRequireDependency = require("./CommonJsExportRequireDependency");
22
23
  const CommonJsExportsDependency = require("./CommonJsExportsDependency");
23
24
  const CommonJsExportsParserPlugin = require("./CommonJsExportsParserPlugin");
@@ -32,17 +33,17 @@ const RequireHeaderDependency = require("./RequireHeaderDependency");
32
33
  const RequireResolveContextDependency = require("./RequireResolveContextDependency");
33
34
  const RequireResolveDependency = require("./RequireResolveDependency");
34
35
  const RequireResolveHeaderDependency = require("./RequireResolveHeaderDependency");
35
- const RuntimeRequirementsDependency = require("./RuntimeRequirementsDependency");
36
+ const TopLevelThisParserPlugin = require("./TopLevelThisParserPlugin");
36
37
 
37
38
  /**
38
39
  * @import {
39
40
  * JavascriptParserOptions
40
- * } from "../../declarations/WebpackOptions"
41
+ * } from "../../../declarations/WebpackOptions"
41
42
  */
42
- /** @import Compilation from "../Compilation" */
43
- /** @import Compiler from "../Compiler" */
44
- /** @import { BuildInfo } from "../Module" */
45
- /** @import Parser from "../javascript/JavascriptParser" */
43
+ /** @import Compilation from "../../Compilation" */
44
+ /** @import Compiler from "../../Compiler" */
45
+ /** @import { BuildInfo } from "../../module/Module" */
46
+ /** @import Parser from "../../javascript/JavascriptParser" */
46
47
 
47
48
  const PLUGIN_NAME = "CommonJsPlugin";
48
49
 
@@ -151,7 +152,7 @@ class CommonJsPlugin {
151
152
  );
152
153
 
153
154
  compilation.hooks.runtimeRequirementInModule
154
- .for(RuntimeGlobals.harmonyModuleDecorator)
155
+ .for(RuntimeGlobals.esmModuleDecorator)
155
156
  .tap(PLUGIN_NAME, (module, set) => {
156
157
  set.add(RuntimeGlobals.module);
157
158
  set.add(RuntimeGlobals.requireScope);
@@ -165,11 +166,11 @@ class CommonJsPlugin {
165
166
  });
166
167
 
167
168
  compilation.hooks.runtimeRequirementInTree
168
- .for(RuntimeGlobals.harmonyModuleDecorator)
169
+ .for(RuntimeGlobals.esmModuleDecorator)
169
170
  .tap(PLUGIN_NAME, (chunk, _set) => {
170
171
  compilation.addRuntimeModule(
171
172
  chunk,
172
- new HarmonyModuleDecoratorRuntimeModule()
173
+ new ESMModuleDecoratorRuntimeModule()
173
174
  );
174
175
  });
175
176
 
@@ -189,6 +190,14 @@ class CommonJsPlugin {
189
190
  * @returns {void}
190
191
  */
191
192
  const handler = (parser, parserOptions) => {
193
+ // what `this` means does not depend on CommonJS syntax being parsed,
194
+ // so this one is applied before the `commonjs` option is read
195
+ if (parserOptions.topLevelThis === "global") {
196
+ new TopLevelThisParserPlugin(
197
+ compilation.outputOptions.environment.globalThis
198
+ ).apply(parser);
199
+ }
200
+
192
201
  if (parserOptions.commonjs !== undefined && !parserOptions.commonjs) {
193
202
  return;
194
203
  }
@@ -254,7 +263,9 @@ class CommonJsPlugin {
254
263
  );
255
264
 
256
265
  new CommonJsImportsParserPlugin(parserOptions).apply(parser);
257
- new CommonJsExportsParserPlugin().apply(parser);
266
+ new CommonJsExportsParserPlugin(parserOptions.topLevelThis).apply(
267
+ parser
268
+ );
258
269
  };
259
270
 
260
271
  normalModuleFactory.hooks.parser
@@ -268,7 +279,7 @@ class CommonJsPlugin {
268
279
  }
269
280
  }
270
281
 
271
- class HarmonyModuleDecoratorRuntimeModule extends RuntimeModule {
282
+ class ESMModuleDecoratorRuntimeModule extends RuntimeModule {
272
283
  constructor() {
273
284
  super("harmony module decorator");
274
285
  }
@@ -299,21 +310,22 @@ class HarmonyModuleDecoratorRuntimeModule extends RuntimeModule {
299
310
  generate() {
300
311
  const { runtimeTemplate } = /** @type {Compilation} */ (this.compilation);
301
312
  return Template.asString([
302
- `${
303
- RuntimeGlobals.harmonyModuleDecorator
304
- } = ${runtimeTemplate.basicFunction("module", [
305
- "module = Object.create(module);",
306
- "if (!module.children) module.children = [];",
307
- "Object.defineProperty(module, 'exports', {",
308
- Template.indent([
309
- "enumerable: true,",
310
- `${runtimeTemplate.method("set", "", [
311
- "throw new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);"
312
- ])}`
313
- ]),
314
- "});",
315
- "return module;"
316
- ])};`
313
+ `${RuntimeGlobals.esmModuleDecorator} = ${runtimeTemplate.basicFunction(
314
+ "module",
315
+ [
316
+ "module = Object.create(module);",
317
+ "if (!module.children) module.children = [];",
318
+ "Object.defineProperty(module, 'exports', {",
319
+ Template.indent([
320
+ "enumerable: true,",
321
+ `${runtimeTemplate.method("set", "", [
322
+ "throw new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);"
323
+ ])}`
324
+ ]),
325
+ "});",
326
+ "return module;"
327
+ ]
328
+ )};`
317
329
  ]);
318
330
  }
319
331
  }
@@ -5,18 +5,18 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const Dependency = require("../Dependency");
9
- const makeSerializable = require("../util/makeSerializable");
10
- const ContextDependency = require("./ContextDependency");
11
- const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTemplateAsRequireCall");
8
+ const Dependency = require("../../graph/Dependency");
9
+ const makeSerializable = require("../../util/makeSerializable");
10
+ const ContextDependency = require("../context/ContextDependency");
11
+ const ContextDependencyTemplateAsRequireCall = require("../context/ContextDependencyTemplateAsRequireCall");
12
12
 
13
- /** @import { Range } from "../javascript/JavascriptParser" */
14
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[Range, Range | undefined, boolean | string | undefined]>} ObjectDeserializerContext */
15
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[Range, Range | undefined, boolean | string | undefined]>} ObjectSerializerContext */
16
- /** @import { ContextDependencyOptions } from "./ContextDependency" */
17
- /** @import { ReferencedExports } from "../Dependency" */
18
- /** @import ModuleGraph from "../ModuleGraph" */
19
- /** @import { RuntimeSpec } from "../util/runtime" */
13
+ /** @import { Range } from "../../javascript/JavascriptParser" */
14
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectDeserializerContext<[Range, Range | undefined, boolean | string | undefined]>} ObjectDeserializerContext */
15
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectSerializerContext<[Range, Range | undefined, boolean | string | undefined]>} ObjectSerializerContext */
16
+ /** @import { ContextDependencyOptions } from "../context/ContextDependency" */
17
+ /** @import { ReferencedExports } from "../../graph/Dependency" */
18
+ /** @import ModuleGraph from "../../graph/ModuleGraph" */
19
+ /** @import { RuntimeSpec } from "../../util/runtime" */
20
20
 
21
21
  class CommonJsRequireContextDependency extends ContextDependency {
22
22
  /**
@@ -82,10 +82,11 @@ class CommonJsRequireContextDependency extends ContextDependency {
82
82
  }
83
83
  }
84
84
 
85
- makeSerializable(
86
- CommonJsRequireContextDependency,
85
+ makeSerializable(CommonJsRequireContextDependency, [
86
+ "webpack/lib/dependencies/commonjs/CommonJsRequireContextDependency",
87
+ // TODO in the next major release: remove, they restore pre-move cache packs
87
88
  "webpack/lib/dependencies/CommonJsRequireContextDependency"
88
- );
89
+ ]);
89
90
 
90
91
  CommonJsRequireContextDependency.Template =
91
92
  ContextDependencyTemplateAsRequireCall;
@@ -5,39 +5,40 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const Dependency = require("../Dependency");
9
- const RuntimeGlobals = require("../RuntimeGlobals");
8
+ const Dependency = require("../../graph/Dependency");
10
9
  const {
11
10
  getDependencyUsedByExportsCondition
12
- } = require("../optimize/InnerGraph");
13
- const makeSerializable = require("../util/makeSerializable");
11
+ } = require("../../optimize/InnerGraph");
12
+ const RuntimeGlobals = require("../../runtime/RuntimeGlobals");
13
+ const makeSerializable = require("../../util/makeSerializable");
14
+ const ModuleDependency = require("../core/ModuleDependency");
15
+ const ESMImportGuard = require("../esm/ESMImportGuard");
14
16
  const {
15
17
  ESM_MODULE_EXPORTS_NAME,
16
18
  getRequireEsmModuleExportsAccess,
17
19
  isRequireEsmModuleExportsModule
18
20
  } = require("./CommonJsDependencyHelpers");
19
- const HarmonyImportGuard = require("./HarmonyImportGuard");
20
- const ModuleDependency = require("./ModuleDependency");
21
21
 
22
22
  /** @import { ReplaceSource } from "webpack-sources" */
23
- /** @import ConcatenationScope from "../ConcatenationScope" */
23
+ /** @import ConcatenationScope from "../../optimize/ConcatenationScope" */
24
24
  /**
25
25
  * @import {
26
26
  * GetConditionFn,
27
27
  * RawReferencedExports,
28
- * ReferencedExports
29
- * } from "../Dependency"
28
+ * ReferencedExports,
29
+ * DependencyKinds
30
+ * } from "../../graph/Dependency"
30
31
  */
31
- /** @import { DependencyTemplateContext } from "../DependencyTemplate" */
32
- /** @import Module from "../Module" */
33
- /** @import ModuleGraph from "../ModuleGraph" */
34
- /** @import ModuleGraphConnection from "../ModuleGraphConnection" */
35
- /** @import { Range } from "../javascript/JavascriptParser" */
36
- /** @import { UsedByExports } from "../optimize/InnerGraph" */
37
- /** @import { RuntimeSpec } from "../util/runtime" */
38
- /** @import { DependencyGuard } from "./HarmonyImportGuard" */
39
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[RawReferencedExports | null, Range | undefined, DependencyGuard[] | undefined, boolean, boolean, UsedByExports | undefined, boolean | undefined]>} ObjectDeserializerContext */
40
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[RawReferencedExports | null, Range | undefined, DependencyGuard[] | undefined, boolean, boolean, UsedByExports | undefined, boolean | undefined]>} ObjectSerializerContext */
32
+ /** @import { DependencyTemplateContext } from "../../template/DependencyTemplate" */
33
+ /** @import Module from "../../module/Module" */
34
+ /** @import ModuleGraph from "../../graph/ModuleGraph" */
35
+ /** @import ModuleGraphConnection from "../../graph/ModuleGraphConnection" */
36
+ /** @import { Range } from "../../javascript/JavascriptParser" */
37
+ /** @import { UsedByExports } from "../../optimize/InnerGraph" */
38
+ /** @import { RuntimeSpec } from "../../util/runtime" */
39
+ /** @import { DependencyGuard } from "../esm/ESMImportGuard" */
40
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectDeserializerContext<[RawReferencedExports | null, Range | undefined, DependencyGuard[] | undefined, boolean, boolean, UsedByExports | undefined, boolean | undefined]>} ObjectDeserializerContext */
41
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectSerializerContext<[RawReferencedExports | null, Range | undefined, DependencyGuard[] | undefined, boolean, boolean, UsedByExports | undefined, boolean | undefined]>} ObjectSerializerContext */
41
42
 
42
43
  /**
43
44
  * Trims a member-access path at the first segment that is definitively not a
@@ -45,7 +46,7 @@ const ModuleDependency = require("./ModuleDependency");
45
46
  * array/object prototype method like `arr.includes`), so only the value up to
46
47
  * that point is observed; referencing the whole value keeps its data intact
47
48
  * instead of tree-shaking it away. Real named exports (`utils.foo`) are kept.
48
- * @param {import("../ExportsInfo")} exportsInfo module exports info
49
+ * @param {import("../../graph/ExportsInfo")} exportsInfo module exports info
49
50
  * @param {string[]} name member-access path
50
51
  * @returns {string[]} the provided prefix of the path
51
52
  */
@@ -147,7 +148,7 @@ class CommonJsRequireDependency extends ModuleDependency {
147
148
  }
148
149
  if (
149
150
  guards !== undefined &&
150
- HarmonyImportGuard.isDeadByGuards(guards, moduleGraph, runtime)
151
+ ESMImportGuard.isDeadByGuards(guards, moduleGraph, runtime)
151
152
  ) {
152
153
  return false;
153
154
  }
@@ -282,7 +283,7 @@ CommonJsRequireDependency.Template = class CommonJsRequireDependencyTemplate ext
282
283
  const guards = dep.branchGuards;
283
284
  if (
284
285
  guards !== undefined &&
285
- HarmonyImportGuard.isDeadByGuards(guards, moduleGraph, runtime)
286
+ ESMImportGuard.isDeadByGuards(guards, moduleGraph, runtime)
286
287
  ) {
287
288
  // Dead branch: module is excluded and has no id; code is never executed.
288
289
  source.replace(
@@ -349,9 +350,16 @@ CommonJsRequireDependency.Template = class CommonJsRequireDependencyTemplate ext
349
350
  }
350
351
  };
351
352
 
352
- makeSerializable(
353
- CommonJsRequireDependency,
353
+ makeSerializable(CommonJsRequireDependency, [
354
+ "webpack/lib/dependencies/commonjs/CommonJsRequireDependency",
355
+ // TODO in the next major release: remove, they restore pre-move cache packs
354
356
  "webpack/lib/dependencies/CommonJsRequireDependency"
355
- );
357
+ ]);
358
+
359
+ /** @type {Set<keyof DependencyKinds>} */
360
+ CommonJsRequireDependency.KINDS = new Set([
361
+ ...ModuleDependency.KINDS,
362
+ "commonjs-require"
363
+ ]);
356
364
 
357
365
  module.exports = CommonJsRequireDependency;
@@ -5,12 +5,12 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const RuntimeGlobals = require("../RuntimeGlobals");
9
- const { equals } = require("../util/ArrayHelpers");
10
- const makeSerializable = require("../util/makeSerializable");
11
- const { propertyAccess } = require("../util/property");
8
+ const RuntimeGlobals = require("../../runtime/RuntimeGlobals");
9
+ const { equals } = require("../../util/ArrayHelpers");
10
+ const makeSerializable = require("../../util/makeSerializable");
11
+ const { propertyAccess } = require("../../util/property");
12
+ const NullDependency = require("../core/NullDependency");
12
13
  const { isWorkerEntryThis } = require("./CommonJsDependencyHelpers");
13
- const NullDependency = require("./NullDependency");
14
14
 
15
15
  /** @import { ReplaceSource } from "webpack-sources" */
16
16
  /**
@@ -18,20 +18,20 @@ const NullDependency = require("./NullDependency");
18
18
  * ReferencedExports,
19
19
  * UpdateHashContext,
20
20
  * ExportInfoName
21
- * } from "../Dependency"
21
+ * } from "../../graph/Dependency"
22
22
  */
23
- /** @import Hash from "../util/Hash" */
24
- /** @import { DependencyTemplateContext } from "../DependencyTemplate" */
25
- /** @import ModuleGraph from "../ModuleGraph" */
26
- /** @import { Range } from "../javascript/JavascriptParser" */
27
- /** @import { RuntimeSpec } from "../util/runtime" */
23
+ /** @import Hash from "../../util/Hash" */
24
+ /** @import { DependencyTemplateContext } from "../../template/DependencyTemplate" */
25
+ /** @import ModuleGraph from "../../graph/ModuleGraph" */
26
+ /** @import { Range } from "../../javascript/JavascriptParser" */
27
+ /** @import { RuntimeSpec } from "../../util/runtime" */
28
28
  /**
29
29
  * @import {
30
30
  * CommonJSDependencyBaseKeywords
31
31
  * } from "./CommonJsDependencyHelpers"
32
32
  */
33
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[Range, CommonJSDependencyBaseKeywords, ExportInfoName[], boolean]>} ObjectDeserializerContext */
34
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[Range, CommonJSDependencyBaseKeywords, ExportInfoName[], boolean]>} ObjectSerializerContext */
33
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectDeserializerContext<[Range, CommonJSDependencyBaseKeywords, ExportInfoName[], boolean]>} ObjectDeserializerContext */
34
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectSerializerContext<[Range, CommonJSDependencyBaseKeywords, ExportInfoName[], boolean]>} ObjectSerializerContext */
35
35
 
36
36
  class CommonJsSelfReferenceDependency extends NullDependency {
37
37
  /**
@@ -136,10 +136,11 @@ class CommonJsSelfReferenceDependency extends NullDependency {
136
136
  }
137
137
  }
138
138
 
139
- makeSerializable(
140
- CommonJsSelfReferenceDependency,
139
+ makeSerializable(CommonJsSelfReferenceDependency, [
140
+ "webpack/lib/dependencies/commonjs/CommonJsSelfReferenceDependency",
141
+ // TODO in the next major release: remove, they restore pre-move cache packs
141
142
  "webpack/lib/dependencies/CommonJsSelfReferenceDependency"
142
- );
143
+ ]);
143
144
 
144
145
  CommonJsSelfReferenceDependency.Template = class CommonJsSelfReferenceDependencyTemplate extends (
145
146
  NullDependency.Template
@@ -207,10 +208,8 @@ CommonJsSelfReferenceDependency.Template = class CommonJsSelfReferenceDependency
207
208
  }
208
209
 
209
210
  if (base === dep.base && equals(used, dep.names)) {
210
- // Nothing has to be changed
211
- // We don't use a replacement for compat reasons
212
- // for plugins that update `module._source` which they
213
- // shouldn't do!
211
+ // Nothing has to change, and no replacement is emitted: plugins that
212
+ // update `module._source`, which they should not, depend on that.
214
213
  return;
215
214
  }
216
215
 
@@ -5,20 +5,20 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const Dependency = require("../Dependency");
9
- const InitFragment = require("../InitFragment");
10
- const RuntimeGlobals = require("../RuntimeGlobals");
11
- const makeSerializable = require("../util/makeSerializable");
12
- const NullDependency = require("./NullDependency");
8
+ const Dependency = require("../../graph/Dependency");
9
+ const RuntimeGlobals = require("../../runtime/RuntimeGlobals");
10
+ const InitFragment = require("../../template/InitFragment");
11
+ const makeSerializable = require("../../util/makeSerializable");
12
+ const NullDependency = require("../core/NullDependency");
13
13
 
14
14
  /** @import { ReplaceSource } from "webpack-sources" */
15
- /** @import { ReferencedExports, UpdateHashContext } from "../Dependency" */
16
- /** @import { DependencyTemplateContext } from "../DependencyTemplate" */
17
- /** @import ModuleGraph from "../ModuleGraph" */
18
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, boolean]>} ObjectDeserializerContext */
19
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, boolean]>} ObjectSerializerContext */
20
- /** @import Hash from "../util/Hash" */
21
- /** @import { RuntimeSpec } from "../util/runtime" */
15
+ /** @import { ReferencedExports, UpdateHashContext } from "../../graph/Dependency" */
16
+ /** @import { DependencyTemplateContext } from "../../template/DependencyTemplate" */
17
+ /** @import ModuleGraph from "../../graph/ModuleGraph" */
18
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, boolean]>} ObjectDeserializerContext */
19
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectSerializerContext<[string, boolean]>} ObjectSerializerContext */
20
+ /** @import Hash from "../../util/Hash" */
21
+ /** @import { RuntimeSpec } from "../../util/runtime" */
22
22
 
23
23
  class ModuleDecoratorDependency extends NullDependency {
24
24
  /**
@@ -102,10 +102,11 @@ class ModuleDecoratorDependency extends NullDependency {
102
102
  }
103
103
  }
104
104
 
105
- makeSerializable(
106
- ModuleDecoratorDependency,
105
+ makeSerializable(ModuleDecoratorDependency, [
106
+ "webpack/lib/dependencies/commonjs/ModuleDecoratorDependency",
107
+ // TODO in the next major release: remove, they restore pre-move cache packs
107
108
  "webpack/lib/dependencies/ModuleDecoratorDependency"
108
- );
109
+ ]);
109
110
 
110
111
  ModuleDecoratorDependency.Template = class ModuleDecoratorDependencyTemplate extends (
111
112
  NullDependency.Template