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,15 +5,18 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const NormalModule = require("../NormalModule");
9
8
  const HotspotsWarning = require("../errors/HotspotsWarning");
10
9
  const { LOADER_TIMING } = require("../loaders/LoaderRunner");
10
+ const NormalModule = require("../module/NormalModule");
11
11
  const { compareStrings } = require("../util/comparators");
12
12
  const { contextify } = require("../util/identifier");
13
13
 
14
14
  /** @typedef {import("tapable").FullTap} FullTap */
15
15
  /** @typedef {import("../../declarations/WebpackOptions").PerformanceOptions} PerformanceOptions */
16
16
  /** @typedef {import("../Compiler")} Compiler */
17
+ /** @typedef {import("../Compilation")} Compilation */
18
+ /** @typedef {import("../module/NormalModuleFactory")} NormalModuleFactory */
19
+ /** @typedef {import("../context/ContextModuleFactory")} ContextModuleFactory */
17
20
  /** @typedef {import("../errors/HotspotsWarning").HookDetails} HookDetails */
18
21
  /** @typedef {import("../errors/HotspotsWarning").HotspotDetails} HotspotDetails */
19
22
 
@@ -159,7 +162,7 @@ class HotspotsPlugin {
159
162
  // The completion callback is the plugin's own code as well, so it
160
163
  // is charged to the plugin rather than to whoever resumed it.
161
164
  return measure(pluginTime, name, hookName, () =>
162
- /** @type {EXPECTED_FUNCTION} */ (fn)(...args, finish)
165
+ fn(...args, finish)
163
166
  );
164
167
  }
165
168
  };
@@ -171,15 +174,12 @@ class HotspotsPlugin {
171
174
  * @param {EXPECTED_ANY[]} args the tap's arguments
172
175
  * @returns {EXPECTED_ANY} whatever the tap returned
173
176
  */
174
- fn: (...args) =>
175
- measure(pluginTime, name, hookName, () =>
176
- /** @type {EXPECTED_FUNCTION} */ (fn)(...args)
177
- )
177
+ fn: (...args) => measure(pluginTime, name, hookName, () => fn(...args))
178
178
  };
179
179
  };
180
180
 
181
181
  /**
182
- * @param {EXPECTED_ANY} instance anything carrying tapable hooks
182
+ * @param {Compiler | Compilation | NormalModuleFactory | ContextModuleFactory} instance anything carrying tapable hooks
183
183
  * @returns {void}
184
184
  */
185
185
  const interceptAll = (instance) => {
@@ -224,12 +224,13 @@ class HotspotsPlugin {
224
224
  NormalModule.getCompilationHooks(compilation).loader.tap(
225
225
  PLUGIN_NAME,
226
226
  (loaderContext) => {
227
- /** @type {EXPECTED_ANY} */
227
+ /** @type {{ [LOADER_TIMING]?: <T>(loader: { path: string }, run: () => T) => T }} */
228
228
  (loaderContext)[LOADER_TIMING] =
229
229
  /**
230
+ * @template T
230
231
  * @param {{ path: string }} loader the loader about to run
231
- * @param {() => EXPECTED_ANY} run its own execution
232
- * @returns {EXPECTED_ANY} whatever it returned
232
+ * @param {() => T} run its own execution
233
+ * @returns {T} whatever it returned
233
234
  */
234
235
  (loader, run) =>
235
236
  measure(
@@ -8,11 +8,10 @@
8
8
  const LargeModulesWarning = require("../errors/LargeModulesWarning");
9
9
  const { compareStrings } = require("../util/comparators");
10
10
  const getModuleSize = require("./getModuleSize");
11
- const getSourceModules = require("./getSourceModules");
12
11
 
13
12
  /** @typedef {import("../../declarations/WebpackOptions").PerformanceOptions} PerformanceOptions */
14
13
  /** @typedef {import("../Compiler")} Compiler */
15
- /** @typedef {import("../Module")} Module */
14
+ /** @typedef {import("../module/Module")} Module */
16
15
  /** @typedef {import("../errors/LargeModulesWarning").LargeModuleDetails} LargeModuleDetails */
17
16
 
18
17
  const PLUGIN_NAME = "LargeModulesPlugin";
@@ -70,7 +69,7 @@ class LargeModulesPlugin {
70
69
  for (const module of chunkGraph.getChunkModulesIterable(chunk)) {
71
70
  // Through scope hoisting one module stands for the several it
72
71
  // absorbed, and it is those the report has to name.
73
- for (const inner of getSourceModules(module)) {
72
+ for (const inner of module.getSourceModules()) {
74
73
  const size = getModuleSize(inner);
75
74
 
76
75
  sizes.set(inner, (sizes.get(inner) || 0) + size);
@@ -9,7 +9,6 @@ const LegacyJavascriptWarning = require("../errors/LegacyJavascriptWarning");
9
9
  const { compareStrings } = require("../util/comparators");
10
10
  const { WINDOWS_PATH_SEPARATOR_REGEXP } = require("../util/identifier");
11
11
  const getModuleSize = require("./getModuleSize");
12
- const getSourceModules = require("./getSourceModules");
13
12
 
14
13
  /** @import { Environment, PerformanceOptions } from "../../declarations/WebpackOptions" */
15
14
  /** @import Compiler from "../Compiler" */
@@ -88,7 +87,7 @@ class LegacyJavascriptPlugin {
88
87
  let totalSize = 0;
89
88
 
90
89
  for (const module of compilation.modules) {
91
- for (const inner of getSourceModules(module)) {
90
+ for (const inner of module.getSourceModules()) {
92
91
  const resource = inner.nameForCondition();
93
92
 
94
93
  if (!resource) continue;
@@ -5,7 +5,6 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const NormalModule = require("../NormalModule");
9
8
  const MissingSideEffectsWarning = require("../errors/MissingSideEffectsWarning");
10
9
  const { compareStrings } = require("../util/comparators");
11
10
  const getModuleSize = require("./getModuleSize");
@@ -13,7 +12,7 @@ const hasOnlyUnusedExports = require("./hasOnlyUnusedExports");
13
12
 
14
13
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
15
14
  /** @import Compiler from "../Compiler" */
16
- /** @import Module from "../Module" */
15
+ /** @import Module from "../module/Module" */
17
16
  /**
18
17
  * @import {
19
18
  * MissingSideEffectsDetails
@@ -32,7 +31,7 @@ const MAX_REPORTED_PACKAGES = 5;
32
31
  * @returns {string | undefined} the package name, or undefined
33
32
  */
34
33
  const getUndeclaredPackage = (module) => {
35
- if (!(module instanceof NormalModule)) return undefined;
34
+ if (!module.is("normal")) return undefined;
36
35
 
37
36
  const resolveData = module.resourceResolveData;
38
37
  const description = resolveData && resolveData.descriptionFileData;
@@ -6,15 +6,14 @@
6
6
  "use strict";
7
7
 
8
8
  const { SourceMapSource } = require("webpack-sources");
9
- const NormalModule = require("../NormalModule");
10
9
  const MissingSourceMapsWarning = require("../errors/MissingSourceMapsWarning");
11
10
  const { compareStrings } = require("../util/comparators");
12
- const getSourceModules = require("./getSourceModules");
13
11
 
14
12
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
15
13
  /** @import Compiler from "../Compiler" */
16
- /** @import Module from "../Module" */
17
- /** @import RequestShortener from "../RequestShortener" */
14
+ /** @import Module from "../module/Module" */
15
+ /** @import NormalModule from "../module/NormalModule" */
16
+ /** @import RequestShortener from "../util/RequestShortener" */
18
17
  /** @import { MissingSourceMapDetails } from "../errors/MissingSourceMapsWarning" */
19
18
 
20
19
  const PLUGIN_NAME = "MissingSourceMapsPlugin";
@@ -67,12 +66,12 @@ class MissingSourceMapsPlugin {
67
66
  for (const parent of compilation.modules) {
68
67
  // Scope hoisting makes several modules into one, and each of them
69
68
  // kept the source its own loaders produced.
70
- for (const module of getSourceModules(parent)) {
69
+ for (const module of parent.getSourceModules()) {
71
70
  if (seen.has(module)) continue;
72
71
 
73
72
  seen.add(module);
74
73
 
75
- if (!(module instanceof NormalModule)) continue;
74
+ if (!module.is("normal")) continue;
76
75
 
77
76
  // Only where a real map was asked for: the cheap devtools map to
78
77
  // the loader output by design, so nothing is lost there.
@@ -5,12 +5,12 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const PureAnnotationsWarning = require("../errors/PureAnnotationsWarning");
8
9
  const {
9
10
  JAVASCRIPT_MODULE_TYPE_AUTO,
10
11
  JAVASCRIPT_MODULE_TYPE_DYNAMIC,
11
12
  JAVASCRIPT_MODULE_TYPE_ESM
12
- } = require("../ModuleTypeConstants");
13
- const PureAnnotationsWarning = require("../errors/PureAnnotationsWarning");
13
+ } = require("../module/ModuleTypeConstants");
14
14
  const { getBuildDiagnostics } = require("../util/buildDiagnostics");
15
15
  const { compareStrings } = require("../util/comparators");
16
16
  const { CompilerHintNotationRegExp } = require("../util/magicComment");
@@ -18,7 +18,7 @@ const { CompilerHintNotationRegExp } = require("../util/magicComment");
18
18
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
19
19
  /** @import Compiler from "../Compiler" */
20
20
  /** @import { Program } from "estree" */
21
- /** @import { BuildInfo } from "../Module" */
21
+ /** @import { BuildInfo } from "../module/Module" */
22
22
  /** @import JavascriptParser from "../javascript/JavascriptParser" */
23
23
  /** @import { PureAnnotationDetails } from "../errors/PureAnnotationsWarning" */
24
24
 
@@ -5,18 +5,16 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
9
- const Entrypoint = require("../Entrypoint");
10
8
  const RedundantDynamicImportWarning = require("../errors/RedundantDynamicImportWarning");
11
9
  const { compareStrings } = require("../util/comparators");
12
10
  const formatLocation = require("../util/formatLocation");
13
11
 
14
12
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
15
- /** @import Chunk from "../Chunk" */
16
- /** @import ChunkGroup from "../ChunkGroup" */
13
+ /** @import Chunk from "../graph/Chunk" */
14
+ /** @import ChunkGroup from "../graph/ChunkGroup" */
17
15
  /** @import Compiler from "../Compiler" */
18
- /** @import DependenciesBlock from "../DependenciesBlock" */
19
- /** @import Module from "../Module" */
16
+ /** @import DependenciesBlock from "../graph/DependenciesBlock" */
17
+ /** @import Module from "../module/Module" */
20
18
 
21
19
  const PLUGIN_NAME = "RedundantDynamicImportsPlugin";
22
20
 
@@ -70,7 +68,7 @@ class RedundantDynamicImportsPlugin {
70
68
  // An entrypoint is a load path in itself and carries nothing of
71
69
  // what reaches it: an async one — a worker — starts from its own
72
70
  // chunks, however much the module spawning it had loaded.
73
- if (group.isInitial() || group instanceof Entrypoint) {
71
+ if (group.isInitial() || group.isEntrypoint()) {
74
72
  entrypoints.add(group);
75
73
  continue;
76
74
  }
@@ -143,7 +141,7 @@ class RedundantDynamicImportsPlugin {
143
141
  */
144
142
  const walk = (block, importer, contexts) => {
145
143
  for (const nested of block.blocks) {
146
- if (nested instanceof AsyncDependenciesBlock) {
144
+ if (nested.isAsyncBlock()) {
147
145
  for (const dependency of nested.dependencies) {
148
146
  const target = moduleGraph.getModule(dependency);
149
147
 
@@ -15,8 +15,8 @@ const getModuleSize = require("./getModuleSize");
15
15
 
16
16
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
17
17
  /** @import Compiler from "../Compiler" */
18
- /** @import Module from "../Module" */
19
- /** @import RequestShortener from "../RequestShortener" */
18
+ /** @import Module from "../module/Module" */
19
+ /** @import RequestShortener from "../util/RequestShortener" */
20
20
  /**
21
21
  * @import {
22
22
  * ScopeHoistingBailoutGroup
@@ -5,25 +5,24 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const RuntimeGlobals = require("../RuntimeGlobals");
9
- const RuntimeModule = require("../RuntimeModule");
8
+ const AssetsOverSizeLimitWarning = require("../errors/AssetsOverSizeLimitWarning");
9
+ const EntrypointsOverSizeLimitWarning = require("../errors/EntrypointsOverSizeLimitWarning");
10
+ const NoAsyncChunksWarning = require("../errors/NoAsyncChunksWarning");
11
+ const RuntimeInLargeChunkWarning = require("../errors/RuntimeInLargeChunkWarning");
12
+ const RuntimeGlobals = require("../runtime/RuntimeGlobals");
10
13
  const { find } = require("../util/SetHelpers");
11
14
  const { compareStrings } = require("../util/comparators");
12
- const AssetsOverSizeLimitWarning = require("./AssetsOverSizeLimitWarning");
13
- const EntrypointsOverSizeLimitWarning = require("./EntrypointsOverSizeLimitWarning");
14
- const NoAsyncChunksWarning = require("./NoAsyncChunksWarning");
15
- const RuntimeInLargeChunkWarning = require("./RuntimeInLargeChunkWarning");
16
15
  const getModuleSize = require("./getModuleSize");
17
16
 
18
17
  /** @import { Source } from "webpack-sources" */
19
18
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
20
- /** @import Chunk from "../Chunk" */
21
- /** @import ChunkGraph from "../ChunkGraph" */
22
- /** @import ChunkGroup from "../ChunkGroup" */
19
+ /** @import Chunk from "../graph/Chunk" */
20
+ /** @import ChunkGraph from "../graph/ChunkGraph" */
21
+ /** @import ChunkGroup from "../graph/ChunkGroup" */
23
22
  /** @import Compilation, { Asset } from "../Compilation" */
24
23
  /** @import Compiler from "../Compiler" */
25
- /** @import Module from "../Module" */
26
- /** @import Entrypoint from "../Entrypoint" */
24
+ /** @import Module from "../module/Module" */
25
+ /** @import Entrypoint from "../graph/Entrypoint" */
27
26
  /** @import WebpackError from "../errors/WebpackError" */
28
27
 
29
28
  /**
@@ -82,7 +81,7 @@ const hasEmbeddedRuntime = (chunkGraph, entrypoint) => {
82
81
  // module beats counting, which depends on runtime modules being counted twice.
83
82
  let carriesCode = false;
84
83
  for (const module of chunkGraph.getChunkModulesIterable(runtimeChunk)) {
85
- if (!(module instanceof RuntimeModule)) {
84
+ if (!module.is("runtime")) {
86
85
  carriesCode = true;
87
86
  break;
88
87
  }
@@ -269,10 +268,8 @@ module.exports = class SizeLimitsPlugin {
269
268
  }
270
269
 
271
270
  if (hints) {
272
- // 1. Individual Chunk: Size < 250kb
273
- // 2. Collective Initial Chunks [entrypoint] (Each Set?): Size < 250kb
274
- // 3. No Async Chunks
275
- // if !1, then 2, if !2 return
271
+ // Each asset is checked against the limit first, then each entrypoint's
272
+ // initial chunks together; async chunks count towards neither.
276
273
  if (assetsOverSizeLimit.length > 0) {
277
274
  addLargestModules(compilation, assetsOverSizeLimit);
278
275
  warnings.push(
@@ -5,20 +5,19 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const TopLevelThisWarning = require("../errors/TopLevelThisWarning");
8
9
  const {
9
10
  JAVASCRIPT_MODULE_TYPE_AUTO,
10
11
  JAVASCRIPT_MODULE_TYPE_DYNAMIC,
11
12
  JAVASCRIPT_MODULE_TYPE_ESM
12
- } = require("../ModuleTypeConstants");
13
- const TopLevelThisWarning = require("../errors/TopLevelThisWarning");
13
+ } = require("../module/ModuleTypeConstants");
14
14
  const { getBuildDiagnostics } = require("../util/buildDiagnostics");
15
15
  const { compareStrings } = require("../util/comparators");
16
- const getSourceModules = require("./getSourceModules");
17
16
 
18
- /** @import { Program } from "estree" */
17
+ /** @import { Expression, PrivateIdentifier, Program } from "estree" */
19
18
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
20
19
  /** @import Compiler from "../Compiler" */
21
- /** @import Module, { BuildInfo } from "../Module" */
20
+ /** @import Module, { BuildInfo } from "../module/Module" */
22
21
  /** @import JavascriptParser from "../javascript/JavascriptParser" */
23
22
  /** @import { TopLevelThisDetails } from "../errors/TopLevelThisWarning" */
24
23
 
@@ -71,7 +70,9 @@ const countTopLevelThis = (ast) => {
71
70
  if (CLASS_TYPES.has(type)) {
72
71
  queue.push(fields.superClass);
73
72
 
74
- const body = /** @type {EXPECTED_ANY} */ (fields.body);
73
+ const body =
74
+ /** @type {{ body: { computed?: boolean, key?: Expression | PrivateIdentifier }[] } | null | undefined} */
75
+ (fields.body);
75
76
 
76
77
  for (const element of (body && body.body) || []) {
77
78
  if (element.computed) queue.push(element.key);
@@ -162,7 +163,7 @@ class TopLevelThisPlugin {
162
163
  for (const parent of compilation.modules) {
163
164
  // Scope hoisting makes several modules into one, and the evidence
164
165
  // sits on the ones that were parsed.
165
- for (const module of getSourceModules(parent)) {
166
+ for (const module of parent.getSourceModules()) {
166
167
  if (seen.has(module)) continue;
167
168
 
168
169
  seen.add(module);
@@ -9,7 +9,6 @@ const UnsplitVendorsWarning = require("../errors/UnsplitVendorsWarning");
9
9
  const { compareStrings } = require("../util/comparators");
10
10
  const { NODE_MODULES_REGEXP } = require("../util/identifier");
11
11
  const getModuleSize = require("./getModuleSize");
12
- const getSourceModules = require("./getSourceModules");
13
12
 
14
13
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
15
14
  /** @import Compiler from "../Compiler" */
@@ -60,7 +59,7 @@ class UnsplitVendorsPlugin {
60
59
  let applicationModules = 0;
61
60
 
62
61
  for (const module of chunkGraph.getChunkModulesIterable(chunk)) {
63
- for (const inner of getSourceModules(module)) {
62
+ for (const inner of module.getSourceModules()) {
64
63
  const resource = inner.nameForCondition();
65
64
 
66
65
  // A module with no resource is webpack's own (a runtime module),
@@ -6,20 +6,19 @@
6
6
  "use strict";
7
7
 
8
8
  const UnusedAliasesWarning = require("../errors/UnusedAliasesWarning");
9
- const { join } = require("../util/fs");
9
+ const { join } = require("../fs/fs");
10
10
  const {
11
11
  ABSOLUTE_PATH_REGEXP,
12
12
  WINDOWS_PATH_SEPARATOR_REGEXP
13
13
  } = require("../util/identifier");
14
14
  const matchAlias = require("../util/matchAlias");
15
- const getSourceModules = require("./getSourceModules");
16
15
 
17
16
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
18
17
  /** @import Compiler from "../Compiler" */
19
- /** @import Dependency from "../Dependency" */
20
- /** @import DependenciesBlock from "../DependenciesBlock" */
21
- /** @import { ContextDependencyOptions } from "../dependencies/ContextDependency" */
22
- /** @import Module from "../Module" */
18
+ /** @import Dependency from "../graph/Dependency" */
19
+ /** @import DependenciesBlock from "../graph/DependenciesBlock" */
20
+ /** @import { ContextDependencyOptions } from "../dependencies/context/ContextDependency" */
21
+ /** @import Module from "../module/Module" */
23
22
 
24
23
  /**
25
24
  * One `resolve.alias` entry, prepared for repeated matching.
@@ -159,7 +158,7 @@ class UnusedAliasesPlugin {
159
158
  for (const module of compilation.modules) {
160
159
  if (unused === 0) break;
161
160
 
162
- for (const sourceModule of getSourceModules(module)) {
161
+ for (const sourceModule of module.getSourceModules()) {
163
162
  const rawRequest =
164
163
  /** @type {Module & { rawRequest?: string }} */
165
164
  (sourceModule).rawRequest;
@@ -5,10 +5,9 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const { ASSET_TYPE } = require("../ModuleSourceTypeConstants");
9
- const HarmonyImportBareSideEffectDependency = require("../dependencies/HarmonyImportBareSideEffectDependency");
10
- const HarmonyImportSideEffectDependency = require("../dependencies/HarmonyImportSideEffectDependency");
11
8
  const UnusedAssetsWarning = require("../errors/UnusedAssetsWarning");
9
+ const isDependencyKind = require("../graph/isDependencyKind");
10
+ const { ASSET_TYPE } = require("../module/ModuleSourceTypeConstants");
12
11
  const { compareStrings } = require("../util/comparators");
13
12
  const getModuleSize = require("./getModuleSize");
14
13
 
@@ -63,8 +62,9 @@ class UnusedAssetsPlugin {
63
62
  // Anything else — a `url()`, a `new URL()`, an html `src` — reads
64
63
  // the file, and a bare import asks for it on purpose.
65
64
  if (
66
- !(dependency instanceof HarmonyImportSideEffectDependency) ||
67
- dependency instanceof HarmonyImportBareSideEffectDependency
65
+ dependency === null ||
66
+ !isDependencyKind(dependency, "esm-side-effect-import") ||
67
+ isDependencyKind(dependency, "esm-bare-side-effect-import")
68
68
  ) {
69
69
  onlyUnread = false;
70
70
  break;
@@ -5,12 +5,12 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const { VALUE_DEP_PREFIX, getDeclaredKeys } = require("../DefinePlugin");
8
+ const { VALUE_DEP_PREFIX, getDeclaredKeys } = require("../define/DefinePlugin");
9
9
  const UnusedDefinesWarning = require("../errors/UnusedDefinesWarning");
10
10
 
11
11
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
12
12
  /** @import Compiler from "../Compiler" */
13
- /** @import { NormalModuleBuildInfo } from "../NormalModule" */
13
+ /** @import { NormalModuleBuildInfo } from "../module/NormalModule" */
14
14
 
15
15
  const PLUGIN_NAME = "UnusedDefinesPlugin";
16
16
 
@@ -5,11 +5,10 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const ExternalModule = require("../ExternalModule");
8
+ const UnusedExternalsWarning = require("../errors/UnusedExternalsWarning");
9
9
  const {
10
10
  getAlternateCoreModuleRequest
11
- } = require("../ExternalModuleFactoryPlugin");
12
- const UnusedExternalsWarning = require("../errors/UnusedExternalsWarning");
11
+ } = require("../externals/ExternalModuleFactoryPlugin");
13
12
 
14
13
  /**
15
14
  * @import {
@@ -74,7 +73,7 @@ class UnusedExternalsPlugin {
74
73
  if (compilation.modules.size === 0) return;
75
74
 
76
75
  for (const module of compilation.modules) {
77
- if (module instanceof ExternalModule) {
76
+ if (module.is("external")) {
78
77
  // The request as written, not what it was rewritten to.
79
78
  declared.delete(module.userRequest);
80
79
 
@@ -5,10 +5,8 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const RemoteModule = require("../container/RemoteModule");
9
8
  const { getDeclaredRemotes } = require("../container/declaredRemotes");
10
9
  const UnusedFederationWarning = require("../errors/UnusedFederationWarning");
11
- const ConsumeSharedModule = require("../sharing/ConsumeSharedModule");
12
10
  const { getDeclaredShared } = require("../sharing/declaredShared");
13
11
  const { compareStrings } = require("../util/comparators");
14
12
 
@@ -80,9 +78,9 @@ class UnusedFederationPlugin {
80
78
  const remoteRequests = new Set();
81
79
 
82
80
  for (const module of compilation.modules) {
83
- if (module instanceof ConsumeSharedModule) {
81
+ if (module.is("consume-shared")) {
84
82
  usedShared.add(module.options.shareKey);
85
- } else if (module instanceof RemoteModule) {
83
+ } else if (module.is("remote")) {
86
84
  remoteRequests.add(module.request);
87
85
  }
88
86
  }
@@ -5,8 +5,8 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const HarmonyImportBareSideEffectDependency = require("../dependencies/HarmonyImportBareSideEffectDependency");
9
8
  const UnusedModulesWarning = require("../errors/UnusedModulesWarning");
9
+ const isDependencyKind = require("../graph/isDependencyKind");
10
10
  const { compareStrings } = require("../util/comparators");
11
11
  const getModuleSize = require("./getModuleSize");
12
12
  const hasOnlyUnusedExports = require("./hasOnlyUnusedExports");
@@ -14,8 +14,8 @@ const isOnlyReexported = require("./isOnlyReexported");
14
14
 
15
15
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
16
16
  /** @import Compiler from "../Compiler" */
17
- /** @import Module, { BuildInfo } from "../Module" */
18
- /** @import ModuleGraph from "../ModuleGraph" */
17
+ /** @import Module, { BuildInfo } from "../module/Module" */
18
+ /** @import ModuleGraph from "../graph/ModuleGraph" */
19
19
  /** @import { UnusedModuleDetails } from "../errors/UnusedModulesWarning" */
20
20
 
21
21
  const PLUGIN_NAME = "UnusedModulesPlugin";
@@ -34,7 +34,8 @@ const MAX_REPORTED_MODULES = 5;
34
34
  const everyImportBinds = (module, moduleGraph) => {
35
35
  for (const connection of moduleGraph.getIncomingConnections(module)) {
36
36
  if (
37
- connection.dependency instanceof HarmonyImportBareSideEffectDependency
37
+ connection.dependency !== null &&
38
+ isDependencyKind(connection.dependency, "esm-bare-side-effect-import")
38
39
  ) {
39
40
  return false;
40
41
  }
@@ -5,7 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- /** @import Module from "../Module" */
8
+ /** @import Module from "../module/Module" */
9
9
 
10
10
  /**
11
11
  * Asks the module for its own source types rather than assuming javascript, so
@@ -5,11 +5,11 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const { UsageState } = require("../ExportsInfo");
8
+ const { UsageState } = require("../graph/ExportsInfo");
9
9
 
10
- /** @import ChunkGraph from "../ChunkGraph" */
11
- /** @import Module from "../Module" */
12
- /** @import ModuleGraph from "../ModuleGraph" */
10
+ /** @import ChunkGraph from "../graph/ChunkGraph" */
11
+ /** @import Module from "../module/Module" */
12
+ /** @import ModuleGraph from "../graph/ModuleGraph" */
13
13
 
14
14
  /**
15
15
  * Tells whether a module provides exports and no runtime uses any of them.
@@ -5,11 +5,10 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const HarmonyExportImportedSpecifierDependency = require("../dependencies/HarmonyExportImportedSpecifierDependency");
9
- const HarmonyImportDependency = require("../dependencies/HarmonyImportDependency");
8
+ const isDependencyKind = require("../graph/isDependencyKind");
10
9
 
11
- /** @import Module from "../Module" */
12
- /** @import ModuleGraph from "../ModuleGraph" */
10
+ /** @import Module from "../module/Module" */
11
+ /** @import ModuleGraph from "../graph/ModuleGraph" */
13
12
 
14
13
  /**
15
14
  * Tells whether every module pulling this one in does so by re-exporting it.
@@ -36,9 +35,11 @@ const isOnlyReexported = (module, moduleGraph) => {
36
35
  const dependency = connection.dependency;
37
36
 
38
37
  // Only an ESM import statement can carry a re-export.
39
- if (!(dependency instanceof HarmonyImportDependency)) return false;
38
+ if (dependency === null || !isDependencyKind(dependency, "esm-import")) {
39
+ return false;
40
+ }
40
41
 
41
- if (dependency instanceof HarmonyExportImportedSpecifierDependency) {
42
+ if (isDependencyKind(dependency, "esm-reexport")) {
42
43
  const statements = reexportedStatements.get(origin);
43
44
 
44
45
  if (statements === undefined) {
@@ -5,11 +5,10 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const NormalModule = require("./NormalModule");
9
- const PrefetchDependency = require("./dependencies/PrefetchDependency");
10
- const asyncLib = require("./util/async");
8
+ const asyncLib = require("../util/async");
9
+ const PrefetchDependency = require("./PrefetchDependency");
11
10
 
12
- /** @import Compiler from "./Compiler" */
11
+ /** @import Compiler from "../Compiler" */
13
12
 
14
13
  const PLUGIN_NAME = "AutomaticPrefetchPlugin";
15
14
 
@@ -40,7 +39,7 @@ class AutomaticPrefetchPlugin {
40
39
  lastModules = [];
41
40
 
42
41
  for (const m of compilation.modules) {
43
- if (m instanceof NormalModule) {
42
+ if (m.is("normal")) {
44
43
  lastModules.push({
45
44
  context: m.context,
46
45
  request: m.request
@@ -4,8 +4,8 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const RuntimeModule = require("../RuntimeModule");
8
- const Template = require("../Template");
7
+ const RuntimeModule = require("../runtime/RuntimeModule");
8
+ const Template = require("../template/Template");
9
9
  const { getOnlyHandlerKey } = require("../util/handlerKeys");
10
10
  const { propertyAccess } = require("../util/property");
11
11