@depup/webpack 5.111.1-depup.2 → 5.112.0-depup.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 (775) hide show
  1. package/README.md +4 -8
  2. package/changes.json +3 -19
  3. package/lib/Chunk.js +3 -966
  4. package/lib/Compilation.js +224 -106
  5. package/lib/Compiler.js +19 -19
  6. package/lib/Dependency.js +3 -551
  7. package/lib/DependencyTemplate.js +3 -70
  8. package/lib/EntryPlugin.js +3 -68
  9. package/lib/Entrypoint.js +3 -121
  10. package/lib/ExternalsPlugin.js +3 -92
  11. package/lib/FileSystemInfo.js +3 -4629
  12. package/lib/InitFragment.js +3 -204
  13. package/lib/LibraryTemplatePlugin.js +3 -46
  14. package/lib/ModuleFilenameHelpers.js +3 -400
  15. package/lib/ModuleNotFoundError.js +2 -2
  16. package/lib/MultiCompiler.js +37 -8
  17. package/lib/NormalModule.js +3 -2242
  18. package/lib/NullFactory.js +3 -22
  19. package/lib/ProgressPlugin.js +3 -908
  20. package/lib/RawModule.js +3 -197
  21. package/lib/RequestShortener.js +3 -37
  22. package/lib/SingleEntryPlugin.js +1 -1
  23. package/lib/WebpackError.js +2 -2
  24. package/lib/asset/AssetBytesGenerator.js +8 -8
  25. package/lib/asset/AssetBytesParser.js +3 -3
  26. package/lib/asset/AssetGenerator.js +36 -22
  27. package/lib/asset/AssetModule.js +2 -2
  28. package/lib/asset/AssetModulesPlugin.js +6 -9
  29. package/lib/asset/AssetParser.js +3 -3
  30. package/lib/asset/AssetSourceGenerator.js +8 -8
  31. package/lib/asset/AssetSourceParser.js +3 -3
  32. package/lib/asset/RawDataUrlModule.js +17 -10
  33. package/lib/asset/WebManifestGenerator.js +7 -7
  34. package/lib/asset/WebManifestParser.js +5 -5
  35. package/lib/async-modules/AsyncModuleHelpers.js +6 -5
  36. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
  37. package/lib/async-modules/InferAsyncModulesPlugin.js +4 -3
  38. package/lib/async-modules/isGeneratorLowered.js +3 -3
  39. package/lib/bun/BunTargetPlugin.js +1 -1
  40. package/lib/cache/AddBuildDependenciesPlugin.js +2 -19
  41. package/lib/{Cache.js → cache/Cache.js} +1 -1
  42. package/lib/{CacheFacade.js → cache/CacheFacade.js} +5 -5
  43. package/lib/cache/IdleFileCachePlugin.js +2 -2
  44. package/lib/cache/MemoryCachePlugin.js +2 -2
  45. package/lib/cache/MemoryWithGcCachePlugin.js +2 -2
  46. package/lib/cache/PackFileCacheStrategy.js +8 -10
  47. package/lib/cache/ResolverCachePlugin.js +8 -4
  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 +1 -1
  54. package/lib/{cli.js → config/cli.js} +5 -158
  55. package/lib/config/defaults.js +144 -48
  56. package/lib/config/getClaimedAssetTypes.js +21 -13
  57. package/lib/config/normalization.js +18 -7
  58. package/lib/config/target.js +10 -0
  59. package/lib/container/ContainerEntryDependency.js +1 -1
  60. package/lib/container/ContainerEntryModule.js +13 -11
  61. package/lib/container/ContainerEntryModuleFactory.js +2 -2
  62. package/lib/container/ContainerExposedDependency.js +1 -1
  63. package/lib/container/ContainerPlugin.js +178 -5
  64. package/lib/container/ContainerReferencePlugin.js +75 -14
  65. package/lib/container/FallbackDependency.js +1 -1
  66. package/lib/container/FallbackItemDependency.js +1 -1
  67. package/lib/container/FallbackModule.js +12 -10
  68. package/lib/container/FallbackModuleFactory.js +2 -2
  69. package/lib/container/HoistContainerReferencesPlugin.js +10 -11
  70. package/lib/container/ModuleFederationPlugin.js +306 -7
  71. package/lib/container/RemoteModule.js +14 -10
  72. package/lib/container/RemoteRuntimeModule.js +5 -5
  73. package/lib/container/RemoteToExternalDependency.js +1 -1
  74. package/lib/container/moduleFederationHooks.js +1 -1
  75. package/lib/context/ContextModule.js +36 -25
  76. package/lib/context/ContextModuleFactory.js +13 -10
  77. package/lib/context/ContextReplacementPlugin.js +3 -3
  78. package/lib/css/CssGenerator.js +38 -31
  79. package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
  80. package/lib/css/CssLoadingRuntimeModule.js +77 -44
  81. package/lib/css/CssModule.js +27 -29
  82. package/lib/css/CssModulesPlugin.js +128 -44
  83. package/lib/css/CssParser.js +682 -291
  84. package/lib/css/CssServerStylesRuntimeModule.js +3 -3
  85. package/lib/css/cssMinify.js +110 -37
  86. package/lib/css/data.js +6985 -5125
  87. package/lib/css/syntax-parser.js +19873 -0
  88. package/lib/css/syntax-printer.js +6037 -0
  89. package/lib/css/syntax.js +37 -18686
  90. package/lib/debug/ProfilingPlugin.js +52 -19
  91. package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
  92. package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +9 -9
  93. package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +2 -2
  94. package/lib/deno/DenoTargetPlugin.js +1 -1
  95. package/lib/dependencies/ConstDependency.js +3 -120
  96. package/lib/dependencies/ContextElementDependency.js +5 -172
  97. package/lib/dependencies/NullDependency.js +3 -37
  98. package/lib/dependencies/{AMDDefineDependency.js → amd/AMDDefineDependency.js} +12 -11
  99. package/lib/dependencies/{AMDDefineDependencyParserPlugin.js → amd/AMDDefineDependencyParserPlugin.js} +10 -10
  100. package/lib/dependencies/{AMDPlugin.js → amd/AMDPlugin.js} +11 -11
  101. package/lib/dependencies/{AMDRequireArrayDependency.js → amd/AMDRequireArrayDependency.js} +15 -13
  102. package/lib/dependencies/{AMDRequireContextDependency.js → amd/AMDRequireContextDependency.js} +11 -10
  103. package/lib/dependencies/{AMDRequireDependenciesBlock.js → amd/AMDRequireDependenciesBlock.js} +7 -6
  104. package/lib/dependencies/{AMDRequireDependenciesBlockParserPlugin.js → amd/AMDRequireDependenciesBlockParserPlugin.js} +10 -10
  105. package/lib/dependencies/{AMDRequireDependency.js → amd/AMDRequireDependency.js} +13 -12
  106. package/lib/dependencies/{AMDRequireItemDependency.js → amd/AMDRequireItemDependency.js} +8 -7
  107. package/lib/dependencies/{AMDRuntimeModules.js → amd/AMDRuntimeModules.js} +3 -3
  108. package/lib/dependencies/{LocalModule.js → amd/LocalModule.js} +8 -4
  109. package/lib/dependencies/{LocalModuleDependency.js → amd/LocalModuleDependency.js} +17 -10
  110. package/lib/dependencies/{LocalModulesHelpers.js → amd/LocalModulesHelpers.js} +1 -1
  111. package/lib/dependencies/{RequireJsStuffPlugin.js → amd/RequireJsStuffPlugin.js} +9 -9
  112. package/lib/dependencies/{UnsupportedDependency.js → amd/UnsupportedDependency.js} +11 -10
  113. package/lib/dependencies/{CommonJsDependencyHelpers.js → commonjs/CommonJsDependencyHelpers.js} +8 -9
  114. package/lib/dependencies/{CommonJsExportRequireDependency.js → commonjs/CommonJsExportRequireDependency.js} +166 -33
  115. package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
  116. package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +138 -61
  117. package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
  118. package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +35 -30
  119. package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +13 -12
  120. package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +47 -35
  121. package/lib/dependencies/{CommonJsRequireContextDependency.js → commonjs/CommonJsRequireContextDependency.js} +15 -14
  122. package/lib/dependencies/{CommonJsRequireDependency.js → commonjs/CommonJsRequireDependency.js} +33 -25
  123. package/lib/dependencies/{CommonJsSelfReferenceDependency.js → commonjs/CommonJsSelfReferenceDependency.js} +17 -16
  124. package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
  125. package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
  126. package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +5 -5
  127. package/lib/dependencies/{RequireEnsureDependency.js → commonjs/RequireEnsureDependency.js} +13 -12
  128. package/lib/dependencies/{RequireEnsureItemDependency.js → commonjs/RequireEnsureItemDependency.js} +7 -6
  129. package/lib/dependencies/{RequireEnsurePlugin.js → commonjs/RequireEnsurePlugin.js} +8 -8
  130. package/lib/dependencies/{RequireHeaderDependency.js → commonjs/RequireHeaderDependency.js} +14 -13
  131. package/lib/dependencies/{RequireIncludeDependency.js → commonjs/RequireIncludeDependency.js} +13 -12
  132. package/lib/dependencies/{RequireIncludeDependencyParserPlugin.js → commonjs/RequireIncludeDependencyParserPlugin.js} +3 -27
  133. package/lib/dependencies/{RequireIncludePlugin.js → commonjs/RequireIncludePlugin.js} +4 -4
  134. package/lib/dependencies/{RequireResolveContextDependency.js → commonjs/RequireResolveContextDependency.js} +11 -10
  135. package/lib/dependencies/{RequireResolveDependency.js → commonjs/RequireResolveDependency.js} +12 -11
  136. package/lib/dependencies/{RequireResolveHeaderDependency.js → commonjs/RequireResolveHeaderDependency.js} +13 -12
  137. package/lib/dependencies/commonjs/TopLevelThisParserPlugin.js +59 -0
  138. package/lib/dependencies/{ContextDependency.js → context/ContextDependency.js} +15 -14
  139. package/lib/dependencies/{ContextDependencyHelpers.js → context/ContextDependencyHelpers.js} +31 -9
  140. package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
  141. package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
  142. package/lib/dependencies/context/ContextElementDependency.js +198 -0
  143. package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
  144. package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +9 -9
  145. package/lib/dependencies/{ImportMetaContextPlugin.js → context/ImportMetaContextPlugin.js} +5 -5
  146. package/lib/dependencies/{ImportMetaGlobDependency.js → context/ImportMetaGlobDependency.js} +7 -6
  147. package/lib/dependencies/{ImportMetaGlobDependencyParserPlugin.js → context/ImportMetaGlobDependencyParserPlugin.js} +4 -4
  148. package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +9 -9
  149. package/lib/dependencies/{RequireContextDependency.js → context/RequireContextDependency.js} +7 -6
  150. package/lib/dependencies/{RequireContextDependencyParserPlugin.js → context/RequireContextDependencyParserPlugin.js} +2 -2
  151. package/lib/dependencies/{RequireContextPlugin.js → context/RequireContextPlugin.js} +5 -5
  152. package/lib/dependencies/{CachedConstDependency.js → core/CachedConstDependency.js} +12 -11
  153. package/lib/dependencies/core/ConstDependency.js +131 -0
  154. package/lib/dependencies/{ImportPhase.js → core/ImportPhase.js} +5 -4
  155. package/lib/dependencies/{ModuleDependency.js → core/ModuleDependency.js} +10 -7
  156. package/lib/dependencies/{ModuleDependencyTemplateAsId.js → core/ModuleDependencyTemplateAsId.js} +3 -3
  157. package/lib/dependencies/{ModuleDependencyTemplateAsRequireId.js → core/ModuleDependencyTemplateAsRequireId.js} +2 -2
  158. package/lib/dependencies/{ModuleInitFragmentDependency.js → core/ModuleInitFragmentDependency.js} +10 -9
  159. package/lib/dependencies/core/NullDependency.js +44 -0
  160. package/lib/dependencies/{RuntimeRequirementsDependency.js → core/RuntimeRequirementsDependency.js} +10 -9
  161. package/lib/dependencies/{StaticExportsDependency.js → core/StaticExportsDependency.js} +15 -8
  162. package/lib/dependencies/{CssIcssExportDependency.js → css/CssIcssExportDependency.js} +369 -92
  163. package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +23 -16
  164. package/lib/dependencies/{CssIcssSymbolDependency.js → css/CssIcssSymbolDependency.js} +13 -12
  165. package/lib/dependencies/{CssImportDependency.js → css/CssImportDependency.js} +15 -11
  166. package/lib/dependencies/{CssUrlDependency.js → css/CssUrlDependency.js} +23 -16
  167. package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
  168. package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
  169. package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
  170. package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +29 -21
  171. package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +19 -17
  172. package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
  173. package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +60 -89
  174. package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +80 -45
  175. package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
  176. package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
  177. package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +133 -118
  178. package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
  179. package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +60 -36
  180. package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -4
  181. package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
  182. package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +74 -71
  183. package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +99 -84
  184. package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
  185. package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
  186. package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +94 -59
  187. package/lib/dependencies/esm/ESMModulesPlugin.js +207 -0
  188. package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
  189. package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -11
  190. package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +2 -2
  191. package/lib/{util → dependencies/helpers}/chainedImports.js +5 -5
  192. package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
  193. package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
  194. package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
  195. package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
  196. package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
  197. package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
  198. package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +51 -141
  199. package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
  200. package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -19
  201. package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -15
  202. package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
  203. package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
  204. package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
  205. package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
  206. package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +20 -20
  207. package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
  208. package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
  209. package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
  210. package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
  211. package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
  212. package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +119 -98
  213. package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
  214. package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
  215. package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
  216. package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
  217. package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +28 -20
  218. package/lib/{url → dependencies/url}/URLParserPlugin.js +16 -18
  219. package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
  220. package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
  221. package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
  222. package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
  223. package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +31 -33
  224. package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +22 -15
  225. package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +19 -18
  226. package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
  227. package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
  228. package/lib/devtool/ModuleFilenameHelpers.js +413 -0
  229. package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
  230. package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +154 -26
  231. package/lib/{util → devtool}/generateDebugId.js +1 -1
  232. package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
  233. package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
  234. package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
  235. package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
  236. package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
  237. package/lib/dll/DelegatedModule.js +20 -18
  238. package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
  239. package/lib/dll/DelegatedPlugin.js +1 -1
  240. package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
  241. package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
  242. package/lib/dll/DllEntryPlugin.js +3 -3
  243. package/lib/dll/DllModule.js +11 -9
  244. package/lib/dll/DllModuleFactory.js +3 -3
  245. package/lib/dll/DllPlugin.js +18 -6
  246. package/lib/dll/DllReferencePlugin.js +102 -26
  247. package/lib/dll/LibManifestPlugin.js +9 -7
  248. package/lib/electron/ElectronTargetPlugin.js +2 -2
  249. package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
  250. package/lib/{dependencies → entry}/EntryDependency.js +11 -2
  251. package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
  252. package/lib/entry/EntryPlugin.js +75 -0
  253. package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
  254. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  255. package/lib/errors/BuildCycleError.js +1 -1
  256. package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
  257. package/lib/errors/ChunkRenderError.js +1 -1
  258. package/lib/errors/CodeGenerationError.js +1 -1
  259. package/lib/errors/CommentCompilationWarning.js +1 -1
  260. package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
  261. package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
  262. package/lib/errors/DeprecatedOptionWarning.js +30 -0
  263. package/lib/errors/DllManifestError.js +26 -0
  264. package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
  265. package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
  266. package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
  267. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  268. package/lib/{ErrorHelpers.js → errors/ErrorHelpers.js} +7 -5
  269. package/lib/errors/ExternalStarReexportError.js +2 -2
  270. package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
  271. package/lib/errors/HookWebpackError.js +4 -4
  272. package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
  273. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  274. package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
  275. package/lib/errors/ModuleBuildError.js +1 -1
  276. package/lib/errors/ModuleDependencyError.js +2 -2
  277. package/lib/errors/ModuleDependencyWarning.js +2 -2
  278. package/lib/errors/ModuleError.js +1 -1
  279. package/lib/errors/ModuleHashingError.js +1 -1
  280. package/lib/errors/ModuleNotFoundError.js +3 -3
  281. package/lib/errors/ModuleParseError.js +1 -1
  282. package/lib/errors/ModuleRestoreError.js +1 -1
  283. package/lib/errors/ModuleStoreError.js +1 -1
  284. package/lib/errors/ModuleWarning.js +1 -1
  285. package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
  286. package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
  287. package/lib/errors/NodeStuffInWebError.js +7 -2
  288. package/lib/errors/PathVariableError.js +31 -0
  289. package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
  290. package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
  291. package/lib/errors/RuntimeModuleGenerationError.js +51 -0
  292. package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
  293. package/lib/errors/SystemImportDeprecationWarning.js +43 -0
  294. package/lib/errors/UnmergeableEntryExportsError.js +34 -0
  295. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  296. package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
  297. package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
  298. package/lib/errors/WebpackError.js +12 -3
  299. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
  300. package/lib/esm/ModuleChunkFormatPlugin.js +19 -19
  301. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
  302. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
  303. package/lib/{ExternalModule.js → externals/ExternalModule.js} +79 -55
  304. package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +41 -39
  305. package/lib/externals/ExternalsPlugin.js +99 -0
  306. package/lib/fs/FileSystemInfo.js +4642 -0
  307. package/lib/{util → fs}/fs.js +22 -9
  308. package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
  309. package/lib/graph/Chunk.js +985 -0
  310. package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +187 -80
  311. package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
  312. package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
  313. package/lib/graph/Dependency.js +628 -0
  314. package/lib/graph/Entrypoint.js +136 -0
  315. package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +130 -82
  316. package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
  317. package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +30 -30
  318. package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
  319. package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +152 -57
  320. package/lib/{util → graph}/findGraphRoots.js +14 -8
  321. package/lib/graph/isDependencyKind.js +23 -0
  322. package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
  323. package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +47 -47
  324. package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
  325. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +10 -8
  326. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
  327. package/lib/hmr/LazyCompilationPlugin.js +31 -21
  328. package/lib/html/HtmlGenerator.js +107 -43
  329. package/lib/html/HtmlModule.js +6 -2
  330. package/lib/html/HtmlModulesPlugin.js +172 -76
  331. package/lib/html/HtmlParser.js +503 -153
  332. package/lib/html/builtinEmbeddedRenderer.js +60 -13
  333. package/lib/html/data.js +2 -1
  334. package/lib/html/htmlMinify.js +111 -41
  335. package/lib/html/syntax-parser.js +15796 -0
  336. package/lib/html/syntax-printer.js +1034 -0
  337. package/lib/html/syntax.js +37 -13952
  338. package/lib/html/xmlMinify.js +67 -0
  339. package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
  340. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  341. package/lib/ids/HashedModuleIdsPlugin.js +31 -4
  342. package/lib/ids/IdHelpers.js +4 -4
  343. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  344. package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
  345. package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
  346. package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
  347. package/lib/ids/SyncModuleIdsPlugin.js +3 -3
  348. package/lib/{util → ids}/numberHash.js +1 -1
  349. package/lib/index.js +303 -97
  350. package/lib/{APIPlugin.js → javascript/APIPlugin.js} +25 -25
  351. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
  352. package/lib/javascript/BasicEvaluatedExpression.js +4 -4
  353. package/lib/javascript/ChunkHelpers.js +64 -4
  354. package/lib/javascript/CommonJsChunkFormatPlugin.js +4 -7
  355. package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +7 -7
  356. package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +74 -7
  357. package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
  358. package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
  359. package/lib/javascript/JavascriptGenerator.js +17 -17
  360. package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
  361. package/lib/javascript/JavascriptModule.js +4 -3
  362. package/lib/javascript/JavascriptModulesPlugin.js +440 -211
  363. package/lib/javascript/JavascriptParser.js +220 -134
  364. package/lib/javascript/JavascriptParserHelpers.js +1 -1
  365. package/lib/javascript/MergedEntryExports.js +196 -0
  366. package/lib/javascript/ScopeAnalyzer.js +3840 -5
  367. package/lib/javascript/StartupHelpers.js +6 -6
  368. package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +12 -15
  369. package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
  370. package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
  371. package/lib/javascript/data.js +533 -122
  372. package/lib/javascript/jsMinify.js +272 -0
  373. package/lib/javascript/regexp.js +67 -32
  374. package/lib/javascript/syntax-parser.js +18561 -0
  375. package/lib/javascript/syntax-printer-data.js +933 -0
  376. package/lib/javascript/syntax-printer.js +47106 -0
  377. package/lib/javascript/syntax.js +20 -11274
  378. package/lib/json/JsonData.js +1 -1
  379. package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
  380. package/lib/json/JsonGenerator.js +10 -10
  381. package/lib/json/JsonModule.js +2 -2
  382. package/lib/json/JsonModulesPlugin.js +1 -1
  383. package/lib/json/JsonParser.js +5 -5
  384. package/lib/json/jsonMinify.js +69 -0
  385. package/lib/library/AbstractLibraryPlugin.js +28 -15
  386. package/lib/library/AmdLibraryPlugin.js +4 -4
  387. package/lib/library/AssignLibraryPlugin.js +27 -11
  388. package/lib/library/EnableLibraryPlugin.js +1 -1
  389. package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
  390. package/lib/library/JsonpLibraryPlugin.js +1 -1
  391. package/lib/library/LibraryTemplatePlugin.js +53 -0
  392. package/lib/library/ModuleLibraryPlugin.js +160 -166
  393. package/lib/library/SystemLibraryPlugin.js +6 -8
  394. package/lib/library/UmdLibraryPlugin.js +3 -4
  395. package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
  396. package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
  397. package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
  398. package/lib/{dependencies → loaders}/LoaderPlugin.js +2 -2
  399. package/lib/loaders/LoaderRunner.js +31 -21
  400. package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
  401. package/lib/logging/Logger.js +7 -9
  402. package/lib/logging/ProgressPlugin.js +957 -0
  403. package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
  404. package/lib/{Generator.js → module/Generator.js} +16 -14
  405. package/lib/{Module.js → module/Module.js} +119 -51
  406. package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
  407. package/lib/module/NormalModule.js +2348 -0
  408. package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +53 -54
  409. package/lib/module/NullFactory.js +29 -0
  410. package/lib/{Parser.js → module/Parser.js} +3 -3
  411. package/lib/module/RawModule.js +208 -0
  412. package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
  413. package/lib/{util → module}/extractSourceMap.js +2 -2
  414. package/lib/{util → module}/findCaseMismatch.js +2 -2
  415. package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
  416. package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
  417. package/lib/{dependencies → node}/ExternalModuleInitFragment.js +6 -5
  418. package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
  419. package/lib/node/NodeEnvironmentPlugin.js +11 -1
  420. package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
  421. package/lib/node/NodeTargetPlugin.js +1 -1
  422. package/lib/node/NodeWatchFileSystem.js +58 -6
  423. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
  424. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +9 -7
  425. package/lib/node/ReadFileCompileWasmPlugin.js +7 -5
  426. package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
  427. package/lib/node/nodeConsole.js +2 -4
  428. package/lib/optimize/AggressiveMergingPlugin.js +2 -2
  429. package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
  430. package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
  431. package/lib/optimize/ConcatenatedModule.js +229 -214
  432. package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
  433. package/lib/optimize/ConstExportsPlugin.js +7 -7
  434. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  435. package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
  436. package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +17 -17
  437. package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +17 -17
  438. package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
  439. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
  440. package/lib/optimize/InlineExports.js +11 -3
  441. package/lib/optimize/InnerGraph.js +5 -13
  442. package/lib/optimize/InnerGraphPlugin.js +10 -10
  443. package/lib/optimize/LazyBarrels.js +584 -0
  444. package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
  445. package/lib/optimize/LimitChunkCountPlugin.js +16 -7
  446. package/lib/optimize/MangleExportsPlugin.js +5 -5
  447. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
  448. package/lib/optimize/MinChunkSizePlugin.js +9 -6
  449. package/lib/optimize/ModuleConcatenationPlugin.js +20 -12
  450. package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
  451. package/lib/optimize/RealContentHashPlugin.js +16 -7
  452. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  453. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  454. package/lib/optimize/SideEffectsFlagPlugin.js +18 -18
  455. package/lib/optimize/SplitChunksPlugin.js +713 -155
  456. package/lib/{util → optimize}/TupleQueue.js +9 -9
  457. package/lib/optimize/chunkSetIntersections.js +437 -0
  458. package/lib/{util → optimize}/deterministicGrouping.js +17 -17
  459. package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
  460. package/lib/{CleanPlugin.js → output/CleanPlugin.js} +66 -24
  461. package/lib/{CopyPlugin.js → output/CopyPlugin.js} +142 -67
  462. package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
  463. package/lib/output/SSRManifestPlugin.js +349 -0
  464. package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
  465. package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
  466. package/lib/performance/BroadContextsPlugin.js +4 -4
  467. package/lib/performance/CacheEffectivenessPlugin.js +2 -3
  468. package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
  469. package/lib/performance/DuplicateModulesPlugin.js +3 -4
  470. package/lib/performance/DuplicatePackagesPlugin.js +3 -3
  471. package/lib/performance/DynamicExportsPlugin.js +2 -2
  472. package/lib/performance/EvalUsagePlugin.js +3 -3
  473. package/lib/performance/HotspotsPlugin.js +11 -10
  474. package/lib/performance/LargeModulesPlugin.js +2 -3
  475. package/lib/performance/LegacyJavascriptPlugin.js +1 -2
  476. package/lib/performance/MissingSideEffectsPlugin.js +2 -3
  477. package/lib/performance/MissingSourceMapsPlugin.js +5 -6
  478. package/lib/performance/PureAnnotationsPlugin.js +3 -3
  479. package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
  480. package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
  481. package/lib/performance/SizeLimitsPlugin.js +11 -12
  482. package/lib/performance/TopLevelThisPlugin.js +8 -7
  483. package/lib/performance/UnsplitVendorsPlugin.js +1 -2
  484. package/lib/performance/UnusedAliasesPlugin.js +6 -7
  485. package/lib/performance/UnusedAssetsPlugin.js +5 -5
  486. package/lib/performance/UnusedDefinesPlugin.js +2 -2
  487. package/lib/performance/UnusedExternalsPlugin.js +3 -4
  488. package/lib/performance/UnusedFederationPlugin.js +2 -4
  489. package/lib/performance/UnusedModulesPlugin.js +5 -4
  490. package/lib/performance/getModuleSize.js +1 -1
  491. package/lib/performance/hasOnlyUnusedExports.js +4 -4
  492. package/lib/performance/isOnlyReexported.js +7 -6
  493. package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
  494. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
  495. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -1
  496. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
  497. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
  498. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
  499. package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
  500. package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
  501. package/lib/prefetch/ResourceHintPlugin.js +65 -44
  502. package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
  503. package/lib/prefetch/StartupAssetHintRuntimeModule.js +3 -3
  504. package/lib/prefetch/parseResourceHintOptions.js +4 -3
  505. package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
  506. package/lib/{dependencies → provide}/ProvidedDependency.js +14 -13
  507. package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
  508. package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
  509. package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
  510. package/lib/resolve/getResolveOptionsKey.js +59 -0
  511. package/lib/rules/RuleSetCompiler.js +27 -46
  512. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
  513. package/lib/runtime/AsyncModuleRuntimeModule.js +7 -4
  514. package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
  515. package/lib/runtime/BaseUriRuntimeModule.js +3 -3
  516. package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
  517. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
  518. package/lib/runtime/CompatRuntimeModule.js +4 -4
  519. package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
  520. package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
  521. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
  522. package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
  523. package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
  524. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
  525. package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
  526. package/lib/runtime/GetChunkFilenameRuntimeModule.js +6 -6
  527. package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
  528. package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
  529. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
  530. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
  531. package/lib/runtime/GlobalRuntimeModule.js +3 -3
  532. package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
  533. package/lib/runtime/HelperRuntimeModule.js +16 -1
  534. package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
  535. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +80 -17
  536. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
  537. package/lib/runtime/NonceRuntimeModule.js +2 -2
  538. package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
  539. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  540. package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
  541. package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +18 -1
  542. package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
  543. package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
  544. package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +48 -50
  545. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
  546. package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
  547. package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
  548. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
  549. package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
  550. package/lib/runtime/SystemContextRuntimeModule.js +2 -2
  551. package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
  552. package/lib/runtime/WorkerRuntimeModule.js +1 -1
  553. package/lib/runtime/baseUri.js +1 -1
  554. package/lib/schemes/DataUriPlugin.js +1 -1
  555. package/lib/schemes/HttpUriPlugin.js +67 -11
  556. package/lib/schemes/VirtualUrlPlugin.js +50 -16
  557. package/lib/serialization/AggregateErrorSerializer.js +2 -2
  558. package/lib/serialization/FileMiddleware.js +3 -3
  559. package/lib/serialization/ObjectMiddleware.js +47 -16
  560. package/lib/serialization/SerializerMiddleware.js +2 -2
  561. package/lib/serialization/SingleItemMiddleware.js +4 -2
  562. package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
  563. package/lib/sharing/ConsumeSharedModule.js +18 -14
  564. package/lib/sharing/ConsumeSharedPlugin.js +148 -42
  565. package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
  566. package/lib/sharing/ProvideForSharedDependency.js +9 -1
  567. package/lib/sharing/ProvideSharedDependency.js +1 -1
  568. package/lib/sharing/ProvideSharedModule.js +11 -9
  569. package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
  570. package/lib/sharing/ProvideSharedPlugin.js +111 -20
  571. package/lib/sharing/SharePlugin.js +102 -9
  572. package/lib/sharing/ShareRuntimeModule.js +6 -6
  573. package/lib/sharing/resolveMatchedConfigs.js +1 -1
  574. package/lib/{util → sharing}/semver.js +14 -16
  575. package/lib/sharing/utils.js +59 -2
  576. package/lib/stats/DefaultStatsFactoryPlugin.js +22 -19
  577. package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
  578. package/lib/stats/DefaultStatsPrinterPlugin.js +3 -3
  579. package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
  580. package/lib/{Stats.js → stats/Stats.js} +4 -4
  581. package/lib/stats/StatsFactory.js +14 -13
  582. package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
  583. package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
  584. package/lib/template/DependencyTemplate.js +77 -0
  585. package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
  586. package/lib/template/InitFragment.js +223 -0
  587. package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
  588. package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
  589. package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
  590. package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +145 -63
  591. package/lib/{Template.js → template/Template.js} +13 -11
  592. package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +19 -23
  593. package/lib/typescript/TypeScriptPlugin.js +3 -3
  594. package/lib/util/RequestShortener.js +44 -0
  595. package/lib/util/SortableSet.js +87 -22
  596. package/lib/util/SourceProcessor.js +349 -44
  597. package/lib/util/TupleSet.js +27 -27
  598. package/lib/util/WeakTupleMap.js +10 -12
  599. package/lib/util/buildDiagnostics.js +2 -2
  600. package/lib/util/comparators.js +10 -10
  601. package/lib/util/concatenate.js +28 -147
  602. package/lib/util/createMappings.js +111 -0
  603. package/lib/util/dataURL.js +94 -15
  604. package/lib/util/deprecation.js +1 -1
  605. package/lib/util/extractComments.js +118 -0
  606. package/lib/util/formatLocation.js +1 -1
  607. package/lib/util/globUtils.js +197 -16
  608. package/lib/util/haltVisitors.js +51 -0
  609. package/lib/util/handlerKeys.js +2 -2
  610. package/lib/util/identifier.js +117 -1
  611. package/lib/util/implicitTypeLoaderFallback.js +6 -4
  612. package/lib/util/internalSerializables.js +294 -102
  613. package/lib/util/magicComment.js +12 -7
  614. package/lib/util/makeSerializable.js +23 -4
  615. package/lib/util/parseJson.js +1 -1
  616. package/lib/util/preloadModuleType.js +5 -2
  617. package/lib/util/registerExternalSerializer.js +2 -2
  618. package/lib/util/removeBOM.js +1 -1
  619. package/lib/util/runtime.js +1 -1
  620. package/lib/util/serialization.js +4 -1
  621. package/lib/util/source.js +2 -2
  622. package/lib/util/terminalColors.js +161 -0
  623. package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
  624. package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
  625. package/lib/{wasm-async → wasm}/AsyncWasmModule.js +9 -5
  626. package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +5 -5
  627. package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +11 -10
  628. package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
  629. package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +8 -8
  630. package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
  631. package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +9 -7
  632. package/lib/wasm/wasmModuleFilename.js +2 -2
  633. package/lib/wasm-sync/SyncWasmModule.js +3 -3
  634. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +8 -8
  635. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
  636. package/lib/wasm-sync/WebAssemblyGenerator.js +9 -8
  637. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +14 -15
  638. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
  639. package/lib/wasm-sync/WebAssemblyParser.js +6 -6
  640. package/lib/wasm-sync/WebAssemblyUtils.js +6 -5
  641. package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
  642. package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
  643. package/lib/{Watching.js → watch/Watching.js} +8 -8
  644. package/lib/web/FetchCompileAsyncWasmPlugin.js +8 -6
  645. package/lib/web/FetchCompileWasmPlugin.js +6 -4
  646. package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
  647. package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
  648. package/lib/web/JsonpTemplatePlugin.js +1 -1
  649. package/lib/webpack.js +27 -17
  650. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
  651. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
  652. package/package.json +48 -41
  653. package/schemas/WebpackOptions.check.js +2 -1
  654. package/schemas/WebpackOptions.d.json.ts +2 -0
  655. package/schemas/WebpackOptions.json +294 -74
  656. package/schemas/plugins/BannerPlugin.check.js +2 -1
  657. package/schemas/plugins/BannerPlugin.json +29 -2
  658. package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -0
  659. package/schemas/plugins/HtmlParserOptions.check.js +2 -1
  660. package/schemas/plugins/IgnorePlugin.check.js +1 -0
  661. package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
  662. package/schemas/plugins/IgnorePlugin.json +1 -1
  663. package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -0
  664. package/schemas/plugins/ManifestPlugin.check.js +1 -0
  665. package/schemas/plugins/ManifestPlugin.json +3 -3
  666. package/schemas/plugins/ProgressPlugin.check.js +2 -1
  667. package/schemas/plugins/ProgressPlugin.json +2 -7
  668. package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
  669. package/schemas/plugins/SSRManifestPlugin.json +20 -0
  670. package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -1
  671. package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
  672. package/schemas/plugins/WatchIgnorePlugin.check.js +2 -1
  673. package/schemas/plugins/WatchIgnorePlugin.json +12 -3
  674. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -0
  675. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -0
  676. package/schemas/plugins/asset/AssetParserOptions.check.js +1 -0
  677. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -0
  678. package/schemas/plugins/container/ContainerPlugin.check.js +2 -1
  679. package/schemas/plugins/container/ContainerPlugin.json +8 -0
  680. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -0
  681. package/schemas/plugins/container/ExternalsType.check.js +1 -0
  682. package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -1
  683. package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
  684. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -0
  685. package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -0
  686. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -0
  687. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -0
  688. package/schemas/plugins/css/CssParserOptions.check.js +1 -0
  689. package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -0
  690. package/schemas/plugins/dll/DllPlugin.check.js +1 -0
  691. package/schemas/plugins/dll/DllReferencePlugin.check.js +2 -1
  692. package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
  693. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -0
  694. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -0
  695. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -0
  696. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +1 -0
  697. package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -0
  698. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -0
  699. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -0
  700. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -0
  701. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -0
  702. package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -0
  703. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +1 -0
  704. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +2 -1
  705. package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
  706. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +2 -1
  707. package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
  708. package/schemas/plugins/sharing/SharePlugin.check.js +2 -1
  709. package/schemas/plugins/sharing/SharePlugin.json +32 -0
  710. package/types.d.ts +19355 -13873
  711. package/lib/LazyBarrel.js +0 -388
  712. package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
  713. package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
  714. package/lib/javascript/ChunkFormatHelpers.js +0 -72
  715. package/lib/javascript/grammar.js +0 -5546
  716. package/lib/javascript/parser.js +0 -1500
  717. package/lib/javascript/regexpData.js +0 -51
  718. package/lib/performance/getSourceModules.js +0 -22
  719. package/lib/util/Semaphore.js +0 -65
  720. package/lib/util/objectToMap.js +0 -15
  721. package/schemas/WebpackOptions.check.d.ts +0 -7
  722. package/schemas/_container.json +0 -155
  723. package/schemas/_sharing.json +0 -118
  724. package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
  725. package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
  726. package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
  727. package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
  728. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
  729. package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
  730. package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
  731. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
  732. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
  733. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
  734. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
  735. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
  736. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
  737. package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
  738. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
  739. package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
  740. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
  741. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
  742. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
  743. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
  744. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
  745. package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
  746. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
  747. package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
  748. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
  749. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
  750. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
  751. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
  752. package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
  753. package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
  754. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
  755. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
  756. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
  757. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
  758. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
  759. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
  760. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
  761. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
  762. package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
  763. /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
  764. /package/lib/{util → css}/conventions.js +0 -0
  765. /package/lib/{util → css}/topologicalSort.js +0 -0
  766. /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
  767. /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
  768. /package/lib/{util → fs}/StackedCacheMap.js +0 -0
  769. /package/lib/{util → javascript}/StackedMap.js +0 -0
  770. /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
  771. /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
  772. /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
  773. /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
  774. /package/lib/{util → optimize}/Queue.js +0 -0
  775. /package/lib/{util → stats}/smartGrouping.js +0 -0
@@ -5,207 +5,6 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const { ConcatSource } = require("webpack-sources");
9
- const makeSerializable = require("./util/makeSerializable");
10
-
11
- /** @import { Source } from "webpack-sources" */
12
- /** @import { GenerateContext } from "./Generator" */
13
- /**
14
- * @import {
15
- * ObjectDeserializerContext,
16
- * ObjectSerializerContext
17
- * } from "./serialization/ObjectMiddleware"
18
- */
19
-
20
- /** @typedef {string} InitFragmentKey */
21
-
22
- /**
23
- * Defines the maybe mergeable init fragment type used by this module.
24
- * @template GenerateContext
25
- * @typedef {object} MaybeMergeableInitFragment
26
- * @property {InitFragmentKey=} key
27
- * @property {number} stage
28
- * @property {number} position
29
- * @property {(context: GenerateContext) => string | Source | undefined} getContent
30
- * @property {(context: GenerateContext) => string | Source | undefined} getEndContent
31
- * @property {(fragments: MaybeMergeableInitFragment<GenerateContext>) => MaybeMergeableInitFragment<GenerateContext>=} merge
32
- * @property {(fragments: MaybeMergeableInitFragment<GenerateContext>[]) => MaybeMergeableInitFragment<GenerateContext>[]=} mergeAll
33
- */
34
-
35
- /**
36
- * Represents InitFragment.
37
- * @template GenerateContext
38
- * @implements {MaybeMergeableInitFragment<GenerateContext>}
39
- */
40
- class InitFragment {
41
- /**
42
- * Creates an instance of InitFragment.
43
- * @param {string | Source | undefined} content the source code that will be included as initialization code
44
- * @param {number} stage category of initialization code (contribute to order)
45
- * @param {number} position position in the category (contribute to order)
46
- * @param {InitFragmentKey=} key unique key to avoid emitting the same initialization code twice
47
- * @param {string | Source=} endContent the source code that will be included at the end of the module
48
- */
49
- constructor(content, stage, position, key, endContent) {
50
- /** @type {string | Source | undefined} */
51
- this.content = content;
52
- /** @type {number} */
53
- this.stage = stage;
54
- /** @type {number} */
55
- this.position = position;
56
- /** @type {string | undefined} */
57
- this.key = key;
58
- /** @type {string | Source | undefined} */
59
- this.endContent = endContent;
60
- }
61
-
62
- /**
63
- * Returns the source code that will be included as initialization code.
64
- * @param {GenerateContext} context context
65
- * @returns {string | Source | undefined} the source code that will be included as initialization code
66
- */
67
- getContent(context) {
68
- return this.content;
69
- }
70
-
71
- /**
72
- * Returns the source code that will be included at the end of the module.
73
- * @param {GenerateContext} context context
74
- * @returns {string | Source | undefined} the source code that will be included at the end of the module
75
- */
76
- getEndContent(context) {
77
- return this.endContent;
78
- }
79
-
80
- /**
81
- * Adds the provided source to the init fragment.
82
- * @template Context
83
- * @param {Source} source sources
84
- * @param {MaybeMergeableInitFragment<Context>[]} initFragments init fragments
85
- * @param {Context} context context
86
- * @returns {Source} source
87
- */
88
- static addToSource(source, initFragments, context) {
89
- if (initFragments.length > 0) {
90
- // Sort fragment indices by (stage, position), falling back to the
91
- // original index — one flat number array instead of N [fragment, index]
92
- // tuples for a stable-by-index order.
93
- const sortedIndices = initFragments.map((_, index) => index);
94
- sortedIndices.sort((a, b) => {
95
- const fragmentA = initFragments[a];
96
- const fragmentB = initFragments[b];
97
- const stageCmp = fragmentA.stage - fragmentB.stage;
98
- if (stageCmp !== 0) return stageCmp;
99
- const positionCmp = fragmentA.position - fragmentB.position;
100
- if (positionCmp !== 0) return positionCmp;
101
- return a - b;
102
- });
103
-
104
- // Deduplicate fragments. If a fragment has no key, it is always included.
105
- // Keyless fragments get a unique numeric key; number keys never collide
106
- // with the string `InitFragmentKey`s used for keyed fragments.
107
- /** @type {Map<InitFragmentKey | number, MaybeMergeableInitFragment<Context> | MaybeMergeableInitFragment<Context>[]>} */
108
- const keyedFragments = new Map();
109
- let keylessKey = 0;
110
- for (const index of sortedIndices) {
111
- const fragment = initFragments[index];
112
- if (typeof fragment.mergeAll === "function") {
113
- if (!fragment.key) {
114
- throw new Error(
115
- `InitFragment with mergeAll function must have a valid key: ${fragment.constructor.name}`
116
- );
117
- }
118
- const oldValue = keyedFragments.get(fragment.key);
119
- if (oldValue === undefined) {
120
- keyedFragments.set(fragment.key, fragment);
121
- } else if (Array.isArray(oldValue)) {
122
- oldValue.push(fragment);
123
- } else {
124
- keyedFragments.set(fragment.key, [oldValue, fragment]);
125
- }
126
- continue;
127
- } else if (typeof fragment.merge === "function") {
128
- const key = /** @type {InitFragmentKey} */ (fragment.key);
129
- const oldValue =
130
- /** @type {MaybeMergeableInitFragment<Context>} */
131
- (keyedFragments.get(key));
132
- if (oldValue !== undefined) {
133
- keyedFragments.set(key, fragment.merge(oldValue));
134
- continue;
135
- }
136
- }
137
- keyedFragments.set(fragment.key || keylessKey++, fragment);
138
- }
139
-
140
- const concatSource = new ConcatSource();
141
- /** @type {(string | Source)[]} */
142
- const endContents = [];
143
- for (let fragment of keyedFragments.values()) {
144
- if (Array.isArray(fragment)) {
145
- fragment =
146
- /** @type {[MaybeMergeableInitFragment<Context> & { mergeAll: (fragments: MaybeMergeableInitFragment<Context>[]) => MaybeMergeableInitFragment<Context>[] }, ...MaybeMergeableInitFragment<Context>[]]} */
147
- (fragment)[0].mergeAll(fragment);
148
- }
149
- const content =
150
- /** @type {MaybeMergeableInitFragment<Context>} */
151
- (fragment).getContent(context);
152
- if (content) {
153
- concatSource.add(content);
154
- }
155
- const endContent =
156
- /** @type {MaybeMergeableInitFragment<Context>} */
157
- (fragment).getEndContent(context);
158
- if (endContent) {
159
- endContents.push(endContent);
160
- }
161
- }
162
-
163
- concatSource.add(source);
164
- for (const content of endContents.reverse()) {
165
- concatSource.add(content);
166
- }
167
- return concatSource;
168
- }
169
- return source;
170
- }
171
-
172
- /**
173
- * Serializes this instance into the provided serializer context.
174
- * @param {ObjectSerializerContext} context context
175
- */
176
- serialize(context) {
177
- const { write } = context;
178
-
179
- write(this.content);
180
- write(this.stage);
181
- write(this.position);
182
- write(this.key);
183
- write(this.endContent);
184
- }
185
-
186
- /**
187
- * Restores this instance from the provided deserializer context.
188
- * @param {ObjectDeserializerContext} context context
189
- */
190
- deserialize(context) {
191
- const { read } = context;
192
-
193
- this.content = read();
194
- this.stage = read();
195
- this.position = read();
196
- this.key = read();
197
- this.endContent = read();
198
- }
199
- }
200
-
201
- makeSerializable(InitFragment, "webpack/lib/InitFragment");
202
-
203
- InitFragment.STAGE_CONSTANTS = 10;
204
- InitFragment.STAGE_ASYNC_BOUNDARY = 20;
205
- InitFragment.STAGE_HARMONY_EXPORTS = 30;
206
- InitFragment.STAGE_HARMONY_IMPORTS = 40;
207
- InitFragment.STAGE_PROVIDES = 50;
208
- InitFragment.STAGE_ASYNC_DEPENDENCIES = 60;
209
- InitFragment.STAGE_ASYNC_HARMONY_IMPORTS = 70;
210
-
211
- module.exports = InitFragment;
8
+ // TODO in the next major release: remove
9
+ // Some old plugins use `require("webpack/lib/InitFragment")`, in the next major release developer should migrate to `compiler.webpack.InitFragment`
10
+ module.exports = require("./template/InitFragment");
@@ -5,49 +5,6 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const EnableLibraryPlugin = require("./library/EnableLibraryPlugin");
9
-
10
- /**
11
- * @import {
12
- * AuxiliaryComment,
13
- * LibraryExport,
14
- * LibraryName,
15
- * LibraryType,
16
- * UmdNamedDefine
17
- * } from "../declarations/WebpackOptions"
18
- */
19
- /** @import Compiler from "./Compiler" */
20
-
21
- // TODO webpack 6 remove
22
- class LibraryTemplatePlugin {
23
- /**
24
- * Creates an instance of LibraryTemplatePlugin.
25
- * @param {LibraryName} name name of library
26
- * @param {LibraryType} target type of library
27
- * @param {UmdNamedDefine} umdNamedDefine setting this to true will name the UMD module
28
- * @param {AuxiliaryComment} auxiliaryComment comment in the UMD wrapper
29
- * @param {LibraryExport} exportProperty which export should be exposed as library
30
- */
31
- constructor(name, target, umdNamedDefine, auxiliaryComment, exportProperty) {
32
- this.library = {
33
- type: target || "var",
34
- name,
35
- umdNamedDefine,
36
- auxiliaryComment,
37
- export: exportProperty
38
- };
39
- }
40
-
41
- /**
42
- * Applies the plugin by registering its hooks on the compiler.
43
- * @param {Compiler} compiler the compiler instance
44
- * @returns {void}
45
- */
46
- apply(compiler) {
47
- const { output } = compiler.options;
48
- output.library = this.library;
49
- new EnableLibraryPlugin(this.library.type).apply(compiler);
50
- }
51
- }
52
-
53
- module.exports = LibraryTemplatePlugin;
8
+ // TODO in the next major release: remove
9
+ // Some old plugins use `require("webpack/lib/LibraryTemplatePlugin")`, in the next major release developer should migrate to `compiler.webpack.LibraryTemplatePlugin`
10
+ module.exports = require("./library/LibraryTemplatePlugin");
@@ -5,403 +5,6 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const NormalModule = require("./NormalModule");
9
- const { DEFAULTS } = require("./config/defaults");
10
- const createHash = require("./util/createHash");
11
- const memoize = require("./util/memoize");
12
-
13
- /** @import { HashFunction } from "../declarations/WebpackOptions" */
14
- /** @import ChunkGraph from "./ChunkGraph" */
15
- /** @import Module from "./Module" */
16
- /** @import RequestShortener from "./RequestShortener" */
17
-
18
- /** @typedef {(str: string) => boolean} MatcherFn */
19
- /** @typedef {string | RegExp | MatcherFn | (string | RegExp | MatcherFn)[]} Matcher */
20
- /** @typedef {{ test?: Matcher, include?: Matcher, exclude?: Matcher }} MatchObject */
21
-
22
- const ModuleFilenameHelpers = module.exports;
23
-
24
- ModuleFilenameHelpers.DEFAULT_MODULE_FILENAME_TEMPLATE =
25
- "webpack://[namespace]/[resourcePath]";
26
- ModuleFilenameHelpers.DEFAULT_FALLBACK_MODULE_FILENAME_TEMPLATE =
27
- "webpack://[namespace]/[resourcePath]?[hash]";
28
-
29
- // TODO webpack 6: consider removing these
30
- ModuleFilenameHelpers.ALL_LOADERS_RESOURCE = "[all-loaders][resource]";
31
- ModuleFilenameHelpers.REGEXP_ALL_LOADERS_RESOURCE =
32
- /\[all-?loaders\]\[resource\]/gi;
33
- ModuleFilenameHelpers.LOADERS_RESOURCE = "[loaders][resource]";
34
- ModuleFilenameHelpers.REGEXP_LOADERS_RESOURCE = /\[loaders\]\[resource\]/gi;
35
- ModuleFilenameHelpers.RESOURCE = "[resource]";
36
- ModuleFilenameHelpers.REGEXP_RESOURCE = /\[resource\]/gi;
37
- ModuleFilenameHelpers.ABSOLUTE_RESOURCE_PATH = "[absolute-resource-path]";
38
- // cSpell:words olute
39
- ModuleFilenameHelpers.REGEXP_ABSOLUTE_RESOURCE_PATH =
40
- /\[abs(olute)?-?resource-?path\]/gi;
41
- ModuleFilenameHelpers.RESOURCE_PATH = "[resource-path]";
42
- ModuleFilenameHelpers.REGEXP_RESOURCE_PATH = /\[resource-?path\]/gi;
43
- ModuleFilenameHelpers.ALL_LOADERS = "[all-loaders]";
44
- ModuleFilenameHelpers.REGEXP_ALL_LOADERS = /\[all-?loaders\]/gi;
45
- ModuleFilenameHelpers.LOADERS = "[loaders]";
46
- ModuleFilenameHelpers.REGEXP_LOADERS = /\[loaders\]/gi;
47
- ModuleFilenameHelpers.QUERY = "[query]";
48
- ModuleFilenameHelpers.REGEXP_QUERY = /\[query\]/gi;
49
- ModuleFilenameHelpers.ID = "[id]";
50
- ModuleFilenameHelpers.REGEXP_ID = /\[id\]/gi;
51
- ModuleFilenameHelpers.HASH = "[hash]";
52
- ModuleFilenameHelpers.REGEXP_HASH = /\[hash\]/gi;
53
- ModuleFilenameHelpers.NAMESPACE = "[namespace]";
54
- ModuleFilenameHelpers.REGEXP_NAMESPACE = /\[namespace\]/gi;
55
-
56
- /** @typedef {() => string} ReturnStringCallback */
57
-
58
- /**
59
- * Returns a function that returns the part of the string after the token
60
- * @param {ReturnStringCallback} strFn the function to get the string
61
- * @param {string} token the token to search for
62
- * @returns {ReturnStringCallback} a function that returns the part of the string after the token
63
- */
64
- const getAfter = (strFn, token) => () => {
65
- const str = strFn();
66
- const idx = str.indexOf(token);
67
- return idx < 0 ? "" : str.slice(idx);
68
- };
69
-
70
- /**
71
- * Returns a function that returns the part of the string before the token
72
- * @param {ReturnStringCallback} strFn the function to get the string
73
- * @param {string} token the token to search for
74
- * @returns {ReturnStringCallback} a function that returns the part of the string before the token
75
- */
76
- const getBefore = (strFn, token) => () => {
77
- const str = strFn();
78
- const idx = str.lastIndexOf(token);
79
- return idx < 0 ? "" : str.slice(0, idx);
80
- };
81
-
82
- /**
83
- * Returns a function that returns a hash of the string
84
- * @param {ReturnStringCallback} strFn the function to get the string
85
- * @param {HashFunction=} hashFunction the hash function to use
86
- * @returns {ReturnStringCallback} a function that returns the hash of the string
87
- */
88
- const getHash =
89
- (strFn, hashFunction = DEFAULTS.HASH_FUNCTION) =>
90
- () => {
91
- const hash = createHash(hashFunction);
92
- hash.update(strFn());
93
- const digest = hash.digest("hex");
94
- return digest.slice(0, 4);
95
- };
96
-
97
- /**
98
- * Returns the lazy access object.
99
- * @template T
100
- * Returns a lazy object. The object is lazy in the sense that the properties are
101
- * only evaluated when they are accessed. This is only obtained by setting a function as the value for each key.
102
- * @param {Record<string, () => T>} obj the object to convert to a lazy access object
103
- * @returns {Record<string, T>} the lazy access object
104
- */
105
- const lazyObject = (obj) => {
106
- const newObj = /** @type {Record<string, T>} */ ({});
107
- for (const key of Object.keys(obj)) {
108
- const fn = obj[key];
109
- Object.defineProperty(newObj, key, {
110
- get: () => fn(),
111
- set: (v) => {
112
- Object.defineProperty(newObj, key, {
113
- value: v,
114
- enumerable: true,
115
- writable: true
116
- });
117
- },
118
- enumerable: true,
119
- configurable: true
120
- });
121
- }
122
- return newObj;
123
- };
124
-
125
- const SQUARE_BRACKET_TAG_REGEXP = /\[\\*([\w-]+)\\*\]/g;
126
- /**
127
- * Defines the module filename template context type used by this module.
128
- * @typedef {object} ModuleFilenameTemplateContext
129
- * @property {string} identifier the identifier of the module
130
- * @property {string} shortIdentifier the shortened identifier of the module
131
- * @property {string} resource the resource of the module request
132
- * @property {string} resourcePath the resource path of the module request
133
- * @property {string} absoluteResourcePath the absolute resource path of the module request
134
- * @property {string} loaders the loaders of the module request
135
- * @property {string} allLoaders the all loaders of the module request
136
- * @property {string} query the query of the module identifier
137
- * @property {string} moduleId the module id of the module
138
- * @property {string} hash the hash of the module identifier
139
- * @property {string} namespace the module namespace
140
- */
141
- /** @typedef {((context: ModuleFilenameTemplateContext) => string)} ModuleFilenameTemplateFunction */
142
- /** @typedef {string | ModuleFilenameTemplateFunction} ModuleFilenameTemplate */
143
-
144
- /**
145
- * Returns the filename.
146
- * @param {Module | string} module the module
147
- * @param {{ namespace?: string, moduleFilenameTemplate?: ModuleFilenameTemplate }} options options
148
- * @param {{ requestShortener: RequestShortener, chunkGraph: ChunkGraph, hashFunction?: HashFunction }} contextInfo context info
149
- * @returns {string} the filename
150
- */
151
- ModuleFilenameHelpers.createFilename = (
152
- // eslint-disable-next-line default-param-last
153
- module = "",
154
- options,
155
- { requestShortener, chunkGraph, hashFunction = DEFAULTS.HASH_FUNCTION }
156
- ) => {
157
- const opts = {
158
- namespace: "",
159
- moduleFilenameTemplate: "",
160
- ...(typeof options === "object"
161
- ? options
162
- : {
163
- moduleFilenameTemplate: options
164
- })
165
- };
166
-
167
- /** @type {ReturnStringCallback} */
168
- let absoluteResourcePath;
169
- /** @type {ReturnStringCallback} */
170
- let hash;
171
- /** @type {ReturnStringCallback} */
172
- let identifier;
173
- /** @type {ReturnStringCallback} */
174
- let moduleId;
175
- /** @type {ReturnStringCallback} */
176
- let shortIdentifier;
177
- /** @type {ReturnStringCallback} */
178
- let resourceIdentifier;
179
- if (typeof module === "string") {
180
- shortIdentifier =
181
- /** @type {ReturnStringCallback} */
182
- (memoize(() => requestShortener.shorten(module)));
183
- identifier = shortIdentifier;
184
- resourceIdentifier = shortIdentifier;
185
- moduleId = () => "";
186
- absoluteResourcePath = () =>
187
- /** @type {string} */ (module.split("!").pop());
188
- hash = getHash(identifier, hashFunction);
189
- } else {
190
- shortIdentifier = memoize(() =>
191
- module.readableIdentifier(requestShortener)
192
- );
193
- // `[resource]` and `[loaders]` must stay request paths: a subclass's
194
- // readable identifier may carry display-only decorations (e.g. CssModule's
195
- // `css ` prefix)
196
- resourceIdentifier = memoize(() =>
197
- module instanceof NormalModule
198
- ? /** @type {string} */ (requestShortener.shorten(module.userRequest))
199
- : module.readableIdentifier(requestShortener)
200
- );
201
- identifier =
202
- /** @type {ReturnStringCallback} */
203
- (memoize(() => requestShortener.shorten(module.identifier())));
204
- moduleId =
205
- /** @type {ReturnStringCallback} */
206
- (() => chunkGraph.getModuleId(module));
207
- absoluteResourcePath = () =>
208
- module instanceof NormalModule
209
- ? module.resource
210
- : /** @type {string} */ (module.identifier().split("!").pop());
211
- hash = getHash(identifier, hashFunction);
212
- }
213
- const resource =
214
- /** @type {ReturnStringCallback} */
215
- (memoize(() => resourceIdentifier().split("!").pop()));
216
-
217
- const loaders = getBefore(resourceIdentifier, "!");
218
- const allLoaders = getBefore(identifier, "!");
219
- const query = getAfter(resource, "?");
220
- const resourcePath = () => {
221
- const q = query().length;
222
- return q === 0 ? resource() : resource().slice(0, -q);
223
- };
224
- if (typeof opts.moduleFilenameTemplate === "function") {
225
- return opts.moduleFilenameTemplate(
226
- /** @type {ModuleFilenameTemplateContext} */
227
- (
228
- lazyObject({
229
- identifier,
230
- shortIdentifier,
231
- resource,
232
- resourcePath: memoize(resourcePath),
233
- absoluteResourcePath: memoize(absoluteResourcePath),
234
- loaders: memoize(loaders),
235
- allLoaders: memoize(allLoaders),
236
- query: memoize(query),
237
- moduleId: memoize(moduleId),
238
- hash: memoize(hash),
239
- namespace: () => opts.namespace
240
- })
241
- )
242
- );
243
- }
244
-
245
- // TODO webpack 6: consider removing alternatives without dashes
246
- /** @type {Map<string, () => string>} */
247
- const replacements = new Map([
248
- ["identifier", identifier],
249
- ["short-identifier", shortIdentifier],
250
- ["resource", resource],
251
- ["resource-path", resourcePath],
252
- // cSpell:words resourcepath
253
- ["resourcepath", resourcePath],
254
- ["absolute-resource-path", absoluteResourcePath],
255
- ["abs-resource-path", absoluteResourcePath],
256
- // cSpell:words absoluteresource
257
- ["absoluteresource-path", absoluteResourcePath],
258
- // cSpell:words absresource
259
- ["absresource-path", absoluteResourcePath],
260
- // cSpell:words resourcepath
261
- ["absolute-resourcepath", absoluteResourcePath],
262
- // cSpell:words resourcepath
263
- ["abs-resourcepath", absoluteResourcePath],
264
- // cSpell:words absoluteresourcepath
265
- ["absoluteresourcepath", absoluteResourcePath],
266
- // cSpell:words absresourcepath
267
- ["absresourcepath", absoluteResourcePath],
268
- ["all-loaders", allLoaders],
269
- // cSpell:words allloaders
270
- ["allloaders", allLoaders],
271
- ["loaders", loaders],
272
- ["query", query],
273
- ["id", moduleId],
274
- ["hash", hash],
275
- ["namespace", () => opts.namespace]
276
- ]);
277
-
278
- // TODO webpack 6: consider removing weird double placeholders
279
- return /** @type {string} */ (opts.moduleFilenameTemplate)
280
- .replace(ModuleFilenameHelpers.REGEXP_ALL_LOADERS_RESOURCE, "[identifier]")
281
- .replace(
282
- ModuleFilenameHelpers.REGEXP_LOADERS_RESOURCE,
283
- "[short-identifier]"
284
- )
285
- .replace(SQUARE_BRACKET_TAG_REGEXP, (match, content) => {
286
- if (content.length + 2 === match.length) {
287
- const replacement = replacements.get(content.toLowerCase());
288
- if (replacement !== undefined) {
289
- return replacement();
290
- }
291
- } else if (match.startsWith("[\\") && match.endsWith("\\]")) {
292
- return `[${match.slice(2, -2)}]`;
293
- }
294
- return match;
295
- });
296
- };
297
-
298
- /**
299
- * Replaces duplicate items in an array with new values generated by a callback function.
300
- * The callback function is called with the duplicate item, the index of the duplicate item, and the number of times the item has been replaced.
301
- * The callback function should return the new value for the duplicate item.
302
- * @template T
303
- * @param {T[]} array the array with duplicates to be replaced
304
- * @param {(duplicateItem: T, duplicateItemIndex: number, numberOfTimesReplaced: number) => T} fn callback function to generate new values for the duplicate items
305
- * @param {(firstElement: T, nextElement: T) => -1 | 0 | 1=} comparator optional comparator function to sort the duplicate items
306
- * @returns {T[]} the array with duplicates replaced
307
- * @example
308
- * ```js
309
- * const array = ["a", "b", "c", "a", "b", "a"];
310
- * const result = ModuleFilenameHelpers.replaceDuplicates(array, (item, index, count) => `${item}-${count}`);
311
- * // result: ["a-1", "b-1", "c", "a-2", "b-2", "a-3"]
312
- * ```
313
- */
314
- ModuleFilenameHelpers.replaceDuplicates = (array, fn, comparator) => {
315
- const countMap = Object.create(null);
316
- const posMap = Object.create(null);
317
-
318
- for (const [idx, item] of array.entries()) {
319
- countMap[item] = countMap[item] || [];
320
- countMap[item].push(idx);
321
- posMap[item] = 0;
322
- }
323
- if (comparator) {
324
- for (const item of Object.keys(countMap)) {
325
- countMap[item].sort(comparator);
326
- }
327
- }
328
- return array.map((item, i) => {
329
- if (countMap[item].length > 1) {
330
- if (comparator && countMap[item][0] === i) return item;
331
- return fn(item, i, posMap[item]++);
332
- }
333
- return item;
334
- });
335
- };
336
-
337
- /**
338
- * Tests if a string matches a RegExp or an array of RegExp.
339
- * @param {string} str string to test
340
- * @param {Matcher} test value which will be used to match against the string
341
- * @returns {boolean} true, when the RegExp matches
342
- * @example
343
- * ```js
344
- * ModuleFilenameHelpers.matchPart("foo.js", "foo"); // true
345
- * ModuleFilenameHelpers.matchPart("foo.js", "foo.js"); // true
346
- * ModuleFilenameHelpers.matchPart("foo.js", "foo."); // true
347
- * ModuleFilenameHelpers.matchPart("foo.js", "foo*"); // false
348
- * ModuleFilenameHelpers.matchPart("foo.js", "foo.*"); // false
349
- * ModuleFilenameHelpers.matchPart("foo.js", /^foo/); // true
350
- * ModuleFilenameHelpers.matchPart("foo.js", [/^foo/, "bar"]); // true
351
- * ModuleFilenameHelpers.matchPart("foo.js", [/^foo/, "bar"]); // true
352
- * ModuleFilenameHelpers.matchPart("foo.js", [/^foo/, /^bar/]); // true
353
- * ModuleFilenameHelpers.matchPart("foo.js", [/^baz/, /^bar/]); // false
354
- * ```
355
- */
356
- const matchPart = (str, test) => {
357
- if (!test) return true;
358
- if (test instanceof RegExp) {
359
- return test.test(str);
360
- } else if (typeof test === "string") {
361
- return str.startsWith(test);
362
- } else if (typeof test === "function") {
363
- return test(str);
364
- }
365
-
366
- return test.some((test) => matchPart(str, test));
367
- };
368
-
369
- ModuleFilenameHelpers.matchPart = matchPart;
370
-
371
- /**
372
- * Tests if a string matches a match object. The match object can have the following properties:
373
- * - `test`: a RegExp or an array of RegExp
374
- * - `include`: a RegExp or an array of RegExp
375
- * - `exclude`: a RegExp or an array of RegExp
376
- *
377
- * The `test` property is tested first, then `include` and then `exclude`.
378
- * @param {MatchObject} obj a match object to test against the string
379
- * @param {string} str string to test against the matching object
380
- * @returns {boolean} true, when the object matches
381
- * @example
382
- * ```js
383
- * ModuleFilenameHelpers.matchObject({ test: "foo.js" }, "foo.js"); // true
384
- * ModuleFilenameHelpers.matchObject({ test: /^foo/ }, "foo.js"); // true
385
- * ModuleFilenameHelpers.matchObject({ test: [/^foo/, "bar"] }, "foo.js"); // true
386
- * ModuleFilenameHelpers.matchObject({ test: [/^foo/, "bar"] }, "baz.js"); // false
387
- * ModuleFilenameHelpers.matchObject({ include: "foo.js" }, "foo.js"); // true
388
- * ModuleFilenameHelpers.matchObject({ include: "foo.js" }, "bar.js"); // false
389
- * ModuleFilenameHelpers.matchObject({ include: /^foo/ }, "foo.js"); // true
390
- * ModuleFilenameHelpers.matchObject({ include: [/^foo/, "bar"] }, "foo.js"); // true
391
- * ModuleFilenameHelpers.matchObject({ include: [/^foo/, "bar"] }, "baz.js"); // false
392
- * ModuleFilenameHelpers.matchObject({ exclude: "foo.js" }, "foo.js"); // false
393
- * ModuleFilenameHelpers.matchObject({ exclude: [/^foo/, "bar"] }, "foo.js"); // false
394
- * ```
395
- */
396
- ModuleFilenameHelpers.matchObject = (obj, str) => {
397
- if (obj.test && !ModuleFilenameHelpers.matchPart(str, obj.test)) {
398
- return false;
399
- }
400
- if (obj.include && !ModuleFilenameHelpers.matchPart(str, obj.include)) {
401
- return false;
402
- }
403
- if (obj.exclude && ModuleFilenameHelpers.matchPart(str, obj.exclude)) {
404
- return false;
405
- }
406
- return true;
407
- };
8
+ // TODO in the next major release: remove
9
+ // Some old plugins use `require("webpack/lib/ModuleFilenameHelpers")`, in the next major release developer should migrate to `compiler.webpack.ModuleFilenameHelpers`
10
+ module.exports = require("./devtool/ModuleFilenameHelpers");
@@ -5,6 +5,6 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- // TODO remove in webpack 6
9
- // Some old plugins use `require("webpack/lib/ModuleNotFoundError")`, in webpack@6 developer should migrate to `compiler.webpack.ModuleNotFoundError`
8
+ // TODO in the next major release: remove
9
+ // Some old plugins use `require("webpack/lib/ModuleNotFoundError")`, in the next major release developer should migrate to `compiler.webpack.ModuleNotFoundError`
10
10
  module.exports = require("./errors/ModuleNotFoundError");