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,69 +5,69 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const Dependency = require("../Dependency");
9
- const InitFragment = require("../InitFragment");
10
- const Template = require("../Template");
8
+ const Dependency = require("../../graph/Dependency");
11
9
  const {
12
- InlinedUsedName,
13
10
  isExportInlined,
14
11
  isInlineEnabled,
15
- isInlineExportsEnabled
16
- } = require("../optimize/InlineExports");
12
+ isInlineExportsEnabled,
13
+ isInlinedUsedName
14
+ } = require("../../optimize/InlineExports");
17
15
  const {
18
16
  getDependencyUsedByExportsCondition
19
- } = require("../optimize/InnerGraph");
20
- const { getTrimmedIdsAndRange } = require("../util/chainedImports");
21
- const makeSerializable = require("../util/makeSerializable");
22
- const { propertyAccess } = require("../util/property");
23
- const traverseDestructuringAssignmentProperties = require("../util/traverseDestructuringAssignmentProperties");
24
- const HarmonyImportDependency = require("./HarmonyImportDependency");
25
- const HarmonyImportGuard = require("./HarmonyImportGuard");
26
- const { ImportPhaseUtils } = require("./ImportPhase");
17
+ } = require("../../optimize/InnerGraph");
18
+ const InitFragment = require("../../template/InitFragment");
19
+ const Template = require("../../template/Template");
20
+ const makeSerializable = require("../../util/makeSerializable");
21
+ const { propertyAccess } = require("../../util/property");
22
+ const { ImportPhaseUtils } = require("../core/ImportPhase");
23
+ const { getTrimmedIdsAndRange } = require("../helpers/chainedImports");
24
+ const traverseDestructuringAssignmentProperties = require("../helpers/traverseDestructuringAssignmentProperties");
25
+ const ESMImportDependency = require("./ESMImportDependency");
26
+ const ESMImportGuard = require("./ESMImportGuard");
27
27
 
28
28
  /** @import { ReplaceSource } from "webpack-sources" */
29
- /** @import { GetConditionFn, ReferencedExports, UpdateHashContext } from "../Dependency" */
30
- /** @import { DependencyTemplateContext } from "../DependencyTemplate" */
31
- /** @import Module, { BuildMeta } from "../Module" */
32
- /** @import ModuleGraph from "../ModuleGraph" */
33
- /** @import Hash from "../util/Hash" */
29
+ /** @import { GetConditionFn, ReferencedExports, UpdateHashContext, DependencyKinds } from "../../graph/Dependency" */
30
+ /** @import { DependencyTemplateContext } from "../../template/DependencyTemplate" */
31
+ /** @import Module, { BuildMeta } from "../../module/Module" */
32
+ /** @import ModuleGraph from "../../graph/ModuleGraph" */
33
+ /** @import Hash from "../../util/Hash" */
34
34
  /**
35
35
  * @import ModuleGraphConnection, {
36
36
  * ConnectionState
37
- * } from "../ModuleGraphConnection"
37
+ * } from "../../graph/ModuleGraphConnection"
38
38
  */
39
- /** @import WebpackError from "../errors/WebpackError" */
39
+ /** @import WebpackError from "../../errors/WebpackError" */
40
40
  /**
41
41
  * @import {
42
42
  * DestructuringAssignmentProperties,
43
43
  * ImportAttributes,
44
44
  * Range
45
- * } from "../javascript/JavascriptParser"
45
+ * } from "../../javascript/JavascriptParser"
46
46
  */
47
- /** @import { UsedByExports } from "../optimize/InnerGraph" */
47
+ /** @import { UsedByExports } from "../../optimize/InnerGraph" */
48
48
  /**
49
49
  * @import {
50
50
  * ObjectDeserializerContext,
51
51
  * ObjectSerializerContext
52
- * } from "../serialization/ObjectMiddleware"
52
+ * } from "../../serialization/ObjectMiddleware"
53
53
  */
54
- /** @import { RuntimeSpec } from "../util/runtime" */
55
- /** @import { IdRanges } from "../util/chainedImports" */
56
- /** @import { ExportPresenceMode } from "./HarmonyImportDependency" */
57
- /** @typedef {HarmonyImportDependency.Ids} Ids */
58
- /** @import { ImportPhaseType } from "./ImportPhase" */
59
- /** @import { DependencyGuard } from "./HarmonyImportGuard" */
54
+ /** @import { RuntimeSpec } from "../../util/runtime" */
55
+ /** @import { IdRanges } from "../helpers/chainedImports" */
56
+ /** @import { ExportPresenceMode } from "./ESMImportDependency" */
57
+ /** @typedef {ESMImportDependency.Ids} Ids */
58
+ /** @import { ImportPhaseType } from "../core/ImportPhase" */
59
+ /** @import { DependencyGuard } from "./ESMImportGuard" */
60
60
  /**
61
61
  * @import {
62
62
  * JavascriptModuleBuildMeta
63
- * } from "../javascript/JavascriptModule"
63
+ * } from "../../javascript/JavascriptModule"
64
64
  */
65
65
 
66
66
  const idsSymbol = /** @type {symbol} */ (
67
- Symbol("HarmonyImportSpecifierDependency.ids")
67
+ Symbol("ESMImportSpecifierDependency.ids")
68
68
  );
69
69
 
70
- const { ExportPresenceModes } = HarmonyImportDependency;
70
+ const { ExportPresenceModes } = ESMImportDependency;
71
71
 
72
72
  /**
73
73
  * One condition closure per module graph and variant rather than per dependency.
@@ -79,14 +79,9 @@ const { ExportPresenceModes } = HarmonyImportDependency;
79
79
  */
80
80
  const conditionsByModuleGraph = new WeakMap();
81
81
 
82
- class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
83
- // read by `HarmonyImportGuard` in place of `instanceof`, which would cycle
84
- get isHarmonyImportSpecifier() {
85
- return true;
86
- }
87
-
82
+ class ESMImportSpecifierDependency extends ESMImportDependency {
88
83
  /**
89
- * Creates an instance of HarmonyImportSpecifierDependency.
84
+ * Creates an instance of ESMImportSpecifierDependency.
90
85
  * @param {string} request request
91
86
  * @param {number} sourceOrder source order
92
87
  * @param {Ids} ids ids
@@ -106,7 +101,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
106
101
  exportPresenceMode,
107
102
  phase,
108
103
  attributes,
109
- idRanges // TODO webpack 6 make this non-optional. It must always be set to properly trim ids.
104
+ idRanges // TODO in the next major release: make this non-optional. It must always be set to properly trim ids.
110
105
  ) {
111
106
  super(request, sourceOrder, phase, attributes);
112
107
  /** @type {Ids} */
@@ -134,9 +129,11 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
134
129
  this.referencedPropertiesInDestructuring = undefined;
135
130
  /** @type {DependencyGuard[] | undefined} */
136
131
  this.branchGuards = undefined;
132
+ /** @type {undefined | boolean} this reference is an assignment target */
133
+ this.assignment = undefined;
137
134
  }
138
135
 
139
- // TODO webpack 6 remove
136
+ // TODO in the next major release: remove
140
137
  /**
141
138
  * Returns id.
142
139
  * @deprecated
@@ -145,7 +142,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
145
142
  throw new Error("id was renamed to ids and type changed to string[]");
146
143
  }
147
144
 
148
- // TODO webpack 6 remove
145
+ // TODO in the next major release: remove
149
146
  /**
150
147
  * Returns id.
151
148
  * @deprecated
@@ -154,7 +151,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
154
151
  throw new Error("id was renamed to ids and type changed to string[]");
155
152
  }
156
153
 
157
- // TODO webpack 6 remove
154
+ // TODO in the next major release: remove
158
155
  /**
159
156
  * Updates id.
160
157
  * @deprecated
@@ -171,7 +168,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
171
168
  * Returns the export name this dependency requests from its target module (lazy barrel optimization).
172
169
  * @returns {string | true | null} export name, true for all exports, null for none
173
170
  */
174
- getForwardId() {
171
+ get forwardId() {
175
172
  return this.ids.length > 0 ? this.ids[0] : true;
176
173
  }
177
174
 
@@ -231,7 +228,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
231
228
  if (cached !== undefined) return cached;
232
229
  /** @type {GetConditionFn} */
233
230
  const condition = (connection, runtime) => {
234
- const dep = /** @type {HarmonyImportSpecifierDependency} */ (
231
+ const dep = /** @type {ESMImportSpecifierDependency} */ (
235
232
  connection.dependency
236
233
  );
237
234
  if (usedByExportsCondition !== null) {
@@ -253,7 +250,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
253
250
  const guards = dep.branchGuards;
254
251
  if (
255
252
  guards !== undefined &&
256
- HarmonyImportGuard.isDeadByGuards(guards, moduleGraph, runtime)
253
+ ESMImportGuard.isDeadByGuards(guards, moduleGraph, runtime)
257
254
  ) {
258
255
  return false;
259
256
  }
@@ -280,7 +277,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
280
277
  const exportsInfo = moduleGraph.getExportsInfo(module);
281
278
  if (!exportsInfo.hasInlinedUsedName(ids, runtime)) return;
282
279
  const usedName = exportsInfo.getUsedName(ids, runtime);
283
- if (usedName instanceof InlinedUsedName) {
280
+ if (isInlinedUsedName(usedName)) {
284
281
  usedName.updateHash(hash);
285
282
  }
286
283
  }
@@ -379,8 +376,9 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
379
376
  {
380
377
  name: ids,
381
378
  canMangle: true,
382
- // Need access the export value to trigger side effects for deferred module
383
- canInline: !ImportPhaseUtils.isDefer(this.phase)
379
+ // Need access the export value to trigger side effects for deferred module.
380
+ // An inlined literal cannot be an assignment target at all.
381
+ canInline: !this.assignment && !ImportPhaseUtils.isDefer(this.phase)
384
382
  }
385
383
  ]
386
384
  : Dependency.EXPORTS_OBJECT_REFERENCED;
@@ -473,6 +471,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
473
471
  write(this.usedByExports);
474
472
  write(this.referencedPropertiesInDestructuring);
475
473
  write(this.branchGuards);
474
+ write(this.assignment);
476
475
  super.serialize(context);
477
476
  }
478
477
 
@@ -495,17 +494,20 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
495
494
  this.usedByExports = read();
496
495
  this.referencedPropertiesInDestructuring = read();
497
496
  this.branchGuards = read();
497
+ this.assignment = read();
498
498
  super.deserialize(context);
499
499
  }
500
500
  }
501
501
 
502
- makeSerializable(
503
- HarmonyImportSpecifierDependency,
502
+ makeSerializable(ESMImportSpecifierDependency, [
503
+ "webpack/lib/dependencies/esm/ESMImportSpecifierDependency",
504
+ // TODO in the next major release: remove, it restores the packs written
505
+ // under the name the file had before the ESM rename
504
506
  "webpack/lib/dependencies/HarmonyImportSpecifierDependency"
505
- );
507
+ ]);
506
508
 
507
- HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependencyTemplate extends (
508
- HarmonyImportDependency.Template
509
+ ESMImportSpecifierDependency.Template = class ESMImportSpecifierDependencyTemplate extends (
510
+ ESMImportDependency.Template
509
511
  ) {
510
512
  /**
511
513
  * Applies the plugin by registering its hooks on the compiler.
@@ -515,7 +517,7 @@ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependen
515
517
  * @returns {void}
516
518
  */
517
519
  apply(dependency, source, templateContext) {
518
- const dep = /** @type {HarmonyImportSpecifierDependency} */ (dependency);
520
+ const dep = /** @type {ESMImportSpecifierDependency} */ (dependency);
519
521
  const { moduleGraph, runtime, initFragments } = templateContext;
520
522
  const connection = moduleGraph.getConnection(dep);
521
523
  const ids = dep.getIds(moduleGraph);
@@ -528,7 +530,7 @@ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependen
528
530
  initFragments.push(
529
531
  new InitFragment(
530
532
  `/* unused harmony import specifier */ var ${dep.name};\n`,
531
- InitFragment.STAGE_HARMONY_IMPORTS,
533
+ InitFragment.STAGE_ESM_IMPORTS,
532
534
  0,
533
535
  `unused import specifier ${dep.name}`
534
536
  )
@@ -603,7 +605,7 @@ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependen
603
605
  const used = destructuredExportsInfo.getUsedName(concatedIds, runtime);
604
606
  if (!used) {
605
607
  return;
606
- } else if (used instanceof InlinedUsedName) {
608
+ } else if (isInlinedUsedName(used)) {
607
609
  throw new Error(
608
610
  `Should not inline for destructuring name ${concatedIds.join(".")}`
609
611
  );
@@ -628,7 +630,7 @@ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependen
628
630
 
629
631
  /**
630
632
  * Returns generated code.
631
- * @param {HarmonyImportSpecifierDependency} dep dependency
633
+ * @param {ESMImportSpecifierDependency} dep dependency
632
634
  * @param {ReplaceSource} source source
633
635
  * @param {DependencyTemplateContext} templateContext context
634
636
  * @param {Ids} ids ids
@@ -677,6 +679,15 @@ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependen
677
679
  deferredImport: ImportPhaseUtils.isDefer(dep.phase)
678
680
  }
679
681
  );
682
+ // Concatenation merges the binding into a plain local a write would
683
+ // succeed against. Routing the write at a getter-only property of a
684
+ // throwaway object restores the TypeError the namespace gave it.
685
+ if (dep.assignment) {
686
+ // the local binding, the one name here an export is free not to
687
+ // spell as an identifier: `import { "a-b" as ab }`
688
+ const holder = `{ get ${dep.name}() { return ${exportExpr}; } }`;
689
+ exportExpr = `${dep.asiSafe ? "" : ";"}(${holder}).${dep.name}`;
690
+ }
680
691
  }
681
692
  } else {
682
693
  super.apply(dep, source, templateContext);
@@ -708,11 +719,49 @@ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependen
708
719
  !dep.referencedPropertiesInDestructuring &&
709
720
  !ImportPhaseUtils.isDefer(dep.phase)
710
721
  });
722
+
723
+ // Only a bare reference reads exactly what the binding names.
724
+ if (
725
+ dep.directImport === true &&
726
+ templateContext.dependencyTemplates.importBindingScopes
727
+ ) {
728
+ // A call site drops the `this` a member access would bind, which is
729
+ // a statement's concern rather than the binding's value.
730
+ const value = dep.call
731
+ ? runtimeTemplate.exportFromImport({
732
+ moduleGraph,
733
+ module: /** @type {Module} */ (moduleGraph.getModule(dep)),
734
+ chunkGraph: templateContext.chunkGraph,
735
+ request: dep.request,
736
+ exportName: ids,
737
+ originModule: module,
738
+ asiSafe: true,
739
+ isCall: false,
740
+ callContext: false,
741
+ defaultInterop: true,
742
+ importVar: dep.getImportVar(moduleGraph),
743
+ initFragments,
744
+ runtime,
745
+ runtimeRequirements,
746
+ dependency: dep,
747
+ mangleableNamespace: false
748
+ })
749
+ : exportExpr;
750
+ if (!value.startsWith(";")) {
751
+ this._recordImportBinding(templateContext, dep.name, value);
752
+ }
753
+ }
711
754
  }
712
755
  return exportExpr;
713
756
  }
714
757
  };
715
758
 
716
- HarmonyImportSpecifierDependency.idsSymbol = idsSymbol;
759
+ ESMImportSpecifierDependency.idsSymbol = idsSymbol;
760
+
761
+ /** @type {Set<keyof DependencyKinds>} */
762
+ ESMImportSpecifierDependency.KINDS = new Set([
763
+ ...ESMImportDependency.KINDS,
764
+ "esm-import-specifier"
765
+ ]);
717
766
 
718
- module.exports = HarmonyImportSpecifierDependency;
767
+ module.exports = ESMImportSpecifierDependency;
@@ -0,0 +1,207 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+
6
+ "use strict";
7
+
8
+ const {
9
+ JAVASCRIPT_MODULE_TYPE_AUTO,
10
+ JAVASCRIPT_MODULE_TYPE_ESM
11
+ } = require("../../module/ModuleTypeConstants");
12
+ const CreateRequireParserPlugin = require("./CreateRequireParserPlugin");
13
+ const ESMAcceptDependency = require("./ESMAcceptDependency");
14
+ const ESMAcceptImportDependency = require("./ESMAcceptImportDependency");
15
+ const ESMCompatibilityDependency = require("./ESMCompatibilityDependency");
16
+ const ESMDetectionParserPlugin = require("./ESMDetectionParserPlugin");
17
+ const ESMEvaluatedImportSpecifierDependency = require("./ESMEvaluatedImportSpecifierDependency");
18
+ const ESMExportDependencyParserPlugin = require("./ESMExportDependencyParserPlugin");
19
+ const ESMExportExpressionDependency = require("./ESMExportExpressionDependency");
20
+ const ESMExportHeaderDependency = require("./ESMExportHeaderDependency");
21
+ const ESMExportImportedSideEffectDependency = require("./ESMExportImportedSideEffectDependency");
22
+ const ESMExportImportedSpecifierDependency = require("./ESMExportImportedSpecifierDependency");
23
+ const ESMExportSpecifierDependency = require("./ESMExportSpecifierDependency");
24
+ const ESMImportBareSideEffectDependency = require("./ESMImportBareSideEffectDependency");
25
+ const ESMImportDependencyParserPlugin = require("./ESMImportDependencyParserPlugin");
26
+ const ESMImportSideEffectDependency = require("./ESMImportSideEffectDependency");
27
+ const ESMImportSpecifierDependency = require("./ESMImportSpecifierDependency");
28
+
29
+ const ESMTopLevelThisParserPlugin = require("./ESMTopLevelThisParserPlugin");
30
+ const TopLevelAwaitDependency = require("./TopLevelAwaitDependency");
31
+
32
+ /**
33
+ * @import {
34
+ * JavascriptParserOptions
35
+ * } from "../../../declarations/WebpackOptions"
36
+ */
37
+ /** @import Compiler from "../../Compiler" */
38
+ /** @import Parser from "../../javascript/JavascriptParser" */
39
+ /** @import { BuildInfo } from "../../module/Module" */
40
+
41
+ /**
42
+ * Defines the harmony modules plugin options type used by this module.
43
+ * @typedef {object} ESMModulesPluginOptions
44
+ * @property {boolean=} deferImport
45
+ */
46
+
47
+ const PLUGIN_NAME = "ESMModulesPlugin";
48
+
49
+ class ESMModulesPlugin {
50
+ /**
51
+ * Creates an instance of ESMModulesPlugin.
52
+ * @param {ESMModulesPluginOptions} options options
53
+ */
54
+ constructor(options) {
55
+ /** @type {ESMModulesPluginOptions} */
56
+ this.options = options;
57
+ }
58
+
59
+ /**
60
+ * Applies the plugin by registering its hooks on the compiler.
61
+ * @param {Compiler} compiler the compiler instance
62
+ * @returns {void}
63
+ */
64
+ apply(compiler) {
65
+ compiler.hooks.compilation.tap(
66
+ PLUGIN_NAME,
67
+ (compilation, { normalModuleFactory }) => {
68
+ compilation.dependencyTemplates.set(
69
+ ESMCompatibilityDependency,
70
+ new ESMCompatibilityDependency.Template()
71
+ );
72
+
73
+ compilation.dependencyTemplates.set(
74
+ TopLevelAwaitDependency,
75
+ new TopLevelAwaitDependency.Template()
76
+ );
77
+
78
+ compilation.dependencyFactories.set(
79
+ ESMImportSideEffectDependency,
80
+ normalModuleFactory
81
+ );
82
+ compilation.dependencyTemplates.set(
83
+ ESMImportSideEffectDependency,
84
+ new ESMImportSideEffectDependency.Template()
85
+ );
86
+
87
+ compilation.dependencyFactories.set(
88
+ ESMImportBareSideEffectDependency,
89
+ normalModuleFactory
90
+ );
91
+ compilation.dependencyTemplates.set(
92
+ ESMImportBareSideEffectDependency,
93
+ new ESMImportBareSideEffectDependency.Template()
94
+ );
95
+
96
+ compilation.dependencyFactories.set(
97
+ ESMExportImportedSideEffectDependency,
98
+ normalModuleFactory
99
+ );
100
+ compilation.dependencyTemplates.set(
101
+ ESMExportImportedSideEffectDependency,
102
+ new ESMExportImportedSideEffectDependency.Template()
103
+ );
104
+
105
+ compilation.dependencyFactories.set(
106
+ ESMImportSpecifierDependency,
107
+ normalModuleFactory
108
+ );
109
+ compilation.dependencyTemplates.set(
110
+ ESMImportSpecifierDependency,
111
+ new ESMImportSpecifierDependency.Template()
112
+ );
113
+
114
+ compilation.dependencyFactories.set(
115
+ ESMEvaluatedImportSpecifierDependency,
116
+ normalModuleFactory
117
+ );
118
+ compilation.dependencyTemplates.set(
119
+ ESMEvaluatedImportSpecifierDependency,
120
+ new ESMEvaluatedImportSpecifierDependency.Template()
121
+ );
122
+
123
+ compilation.dependencyTemplates.set(
124
+ ESMExportHeaderDependency,
125
+ new ESMExportHeaderDependency.Template()
126
+ );
127
+
128
+ compilation.dependencyTemplates.set(
129
+ ESMExportExpressionDependency,
130
+ new ESMExportExpressionDependency.Template()
131
+ );
132
+
133
+ compilation.dependencyTemplates.set(
134
+ ESMExportSpecifierDependency,
135
+ new ESMExportSpecifierDependency.Template()
136
+ );
137
+
138
+ compilation.dependencyFactories.set(
139
+ ESMExportImportedSpecifierDependency,
140
+ normalModuleFactory
141
+ );
142
+ compilation.dependencyTemplates.set(
143
+ ESMExportImportedSpecifierDependency,
144
+ new ESMExportImportedSpecifierDependency.Template()
145
+ );
146
+
147
+ compilation.dependencyTemplates.set(
148
+ ESMAcceptDependency,
149
+ new ESMAcceptDependency.Template()
150
+ );
151
+
152
+ compilation.dependencyFactories.set(
153
+ ESMAcceptImportDependency,
154
+ normalModuleFactory
155
+ );
156
+ compilation.dependencyTemplates.set(
157
+ ESMAcceptImportDependency,
158
+ new ESMAcceptImportDependency.Template()
159
+ );
160
+
161
+ /**
162
+ * Handles the hook callback for this code path.
163
+ * @param {Parser} parser parser parser
164
+ * @param {JavascriptParserOptions} parserOptions parserOptions
165
+ * @returns {void}
166
+ */
167
+ const handler = (parser, parserOptions) => {
168
+ // TODO in the next major release: remove the `harmony` half,
169
+ // `esm` is its new spelling
170
+ const esm =
171
+ parserOptions.esm !== undefined
172
+ ? parserOptions.esm
173
+ : parserOptions.harmony;
174
+ if (esm !== undefined && !esm) {
175
+ return;
176
+ }
177
+
178
+ if (parserOptions.specNamespaceObject) {
179
+ // Recorded on the module, because an importer asks the module it
180
+ // imports whether its namespace is a spec exotic object.
181
+ parser.hooks.program.tap(PLUGIN_NAME, () => {
182
+ /** @type {BuildInfo} */
183
+ (parser.state.module.buildInfo).specNamespaceObject = true;
184
+ });
185
+ }
186
+
187
+ new ESMDetectionParserPlugin().apply(parser);
188
+ new ESMImportDependencyParserPlugin(parserOptions).apply(parser);
189
+ new ESMExportDependencyParserPlugin(parserOptions).apply(parser);
190
+ new ESMTopLevelThisParserPlugin().apply(parser);
191
+ if (parserOptions.createRequire) {
192
+ new CreateRequireParserPlugin(parserOptions).apply(parser);
193
+ }
194
+ };
195
+
196
+ normalModuleFactory.hooks.parser
197
+ .for(JAVASCRIPT_MODULE_TYPE_AUTO)
198
+ .tap(PLUGIN_NAME, handler);
199
+ normalModuleFactory.hooks.parser
200
+ .for(JAVASCRIPT_MODULE_TYPE_ESM)
201
+ .tap(PLUGIN_NAME, handler);
202
+ }
203
+ );
204
+ }
205
+ }
206
+
207
+ module.exports = ESMModulesPlugin;
@@ -5,14 +5,14 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const ConstDependency = require("./ConstDependency");
9
- const HarmonyExports = require("./HarmonyExports");
8
+ const ConstDependency = require("../core/ConstDependency");
9
+ const ESMExports = require("./ESMExports");
10
10
 
11
- /** @import JavascriptParser, { Range } from "../javascript/JavascriptParser" */
11
+ /** @import JavascriptParser, { Range } from "../../javascript/JavascriptParser" */
12
12
 
13
- const PLUGIN_NAME = "HarmonyTopLevelThisParserPlugin";
13
+ const PLUGIN_NAME = "ESMTopLevelThisParserPlugin";
14
14
 
15
- class HarmonyTopLevelThisParserPlugin {
15
+ class ESMTopLevelThisParserPlugin {
16
16
  /**
17
17
  * Applies the plugin by registering its hooks on the compiler.
18
18
  * @param {JavascriptParser} parser the parser
@@ -21,7 +21,7 @@ class HarmonyTopLevelThisParserPlugin {
21
21
  apply(parser) {
22
22
  parser.hooks.expression.for("this").tap(PLUGIN_NAME, (node) => {
23
23
  if (!parser.scope.topLevelScope) return;
24
- if (HarmonyExports.isEnabled(parser.state)) {
24
+ if (ESMExports.isEnabled(parser.state)) {
25
25
  const dep = new ConstDependency(
26
26
  "undefined",
27
27
  /** @type {Range} */ (node.range),
@@ -35,4 +35,4 @@ class HarmonyTopLevelThisParserPlugin {
35
35
  }
36
36
  }
37
37
 
38
- module.exports = HarmonyTopLevelThisParserPlugin;
38
+ module.exports = ESMTopLevelThisParserPlugin;
@@ -4,20 +4,20 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const isGeneratorLowered = require("../async-modules/isGeneratorLowered");
8
- const makeSerializable = require("../util/makeSerializable");
9
- const NullDependency = require("./NullDependency");
7
+ const isGeneratorLowered = require("../../async-modules/isGeneratorLowered");
8
+ const makeSerializable = require("../../util/makeSerializable");
9
+ const NullDependency = require("../core/NullDependency");
10
10
 
11
11
  /** @import { ReplaceSource } from "webpack-sources" */
12
- /** @import Dependency from "../Dependency" */
13
- /** @import { DependencyTemplateContext } from "../DependencyTemplate" */
14
- /** @import Module from "../Module" */
15
- /** @import { Range } from "../javascript/JavascriptParser" */
12
+ /** @import Dependency from "../../graph/Dependency" */
13
+ /** @import { DependencyTemplateContext } from "../../template/DependencyTemplate" */
14
+ /** @import Module from "../../module/Module" */
15
+ /** @import { Range } from "../../javascript/JavascriptParser" */
16
16
  /**
17
17
  * @import {
18
18
  * ObjectDeserializerContext,
19
19
  * ObjectSerializerContext
20
- * } from "../serialization/ObjectMiddleware"
20
+ * } from "../../serialization/ObjectMiddleware"
21
21
  */
22
22
 
23
23
  /**
@@ -60,10 +60,11 @@ class TopLevelAwaitDependency extends NullDependency {
60
60
  }
61
61
  }
62
62
 
63
- makeSerializable(
64
- TopLevelAwaitDependency,
63
+ makeSerializable(TopLevelAwaitDependency, [
64
+ "webpack/lib/dependencies/esm/TopLevelAwaitDependency",
65
+ // TODO in the next major release: remove, they restore pre-move cache packs
65
66
  "webpack/lib/dependencies/TopLevelAwaitDependency"
66
- );
67
+ ]);
67
68
 
68
69
  TopLevelAwaitDependency.Template = class TopLevelAwaitDependencyTemplate extends (
69
70
  NullDependency.Template
@@ -5,8 +5,8 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- /** @import { BuildMeta } from "../Module" */
9
- /** @import { JavascriptParserState } from "../javascript/JavascriptParser" */
8
+ /** @import { BuildMeta } from "../../module/Module" */
9
+ /** @import { JavascriptParserState } from "../../javascript/JavascriptParser" */
10
10
 
11
11
  /** @type {WeakMap<JavascriptParserState, boolean>} */
12
12
  const parserStateExportsState = new WeakMap();
@@ -5,10 +5,10 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- /** @import Dependency from "../Dependency" */
9
- /** @import Module from "../Module" */
10
- /** @import ModuleGraph from "../ModuleGraph" */
11
- /** @import { Range } from "../javascript/JavascriptParser" */
8
+ /** @import Dependency from "../../graph/Dependency" */
9
+ /** @import Module from "../../module/Module" */
10
+ /** @import ModuleGraph from "../../graph/ModuleGraph" */
11
+ /** @import { Range } from "../../javascript/JavascriptParser" */
12
12
 
13
13
  /** @typedef {Range[]} IdRanges */
14
14
 
@@ -39,10 +39,9 @@ module.exports.getTrimmedIdsAndRange = (
39
39
  );
40
40
  let trimmedRange = untrimmedRange;
41
41
  if (trimmedIds.length !== untrimmedIds.length) {
42
- // The array returned from dep.idRanges is right-aligned with the array returned from dep.names.
43
- // Meaning, the two arrays may not always have the same number of elements, but the last element of
44
- // dep.idRanges corresponds to [the expression fragment to the left of] the last element of dep.names.
45
- // Use this to find the correct replacement range based on the number of ids that were trimmed.
42
+ // `dep.idRanges` is right-aligned with `dep.names`: the two may differ in
43
+ // length, but their last elements correspond, which is what turns the count
44
+ // of trimmed ids into the replacement range.
46
45
  const idx =
47
46
  ranges === undefined
48
47
  ? -1 /* trigger failure case below */
@@ -52,7 +51,7 @@ module.exports.getTrimmedIdsAndRange = (
52
51
  // Should not happen but we can't throw an error here because of backward compatibility with
53
52
  // external plugins in wp5. Instead, we just disable trimming for now. This may break some minifiers.
54
53
  trimmedIds = untrimmedIds;
55
- // TODO webpack 6 remove the "trimmedIds = ids" above and uncomment the following line instead.
54
+ // TODO in the next major release: remove the "trimmedIds = ids" above and uncomment the following line instead.
56
55
  // throw new Error("Missing range starts data for id replacement trimming.");
57
56
  } else {
58
57
  trimmedRange = /** @type {Range[]} */ (ranges)[idx];