webpack 5.111.1 → 5.112.1

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 (793) hide show
  1. package/README.md +1 -1
  2. package/bin/webpack.js +13 -7
  3. package/lib/Chunk.js +3 -966
  4. package/lib/Compilation.js +373 -163
  5. package/lib/Compiler.js +31 -44
  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 +21 -13
  25. package/lib/asset/AssetBytesParser.js +12 -10
  26. package/lib/asset/AssetGenerator.js +71 -69
  27. package/lib/asset/AssetModule.js +13 -2
  28. package/lib/asset/AssetModulesPlugin.js +10 -12
  29. package/lib/asset/AssetParser.js +10 -10
  30. package/lib/asset/AssetSourceGenerator.js +23 -15
  31. package/lib/asset/AssetSourceParser.js +12 -10
  32. package/lib/asset/RawDataUrlModule.js +17 -10
  33. package/lib/asset/WebManifestGenerator.js +17 -12
  34. package/lib/asset/WebManifestParser.js +8 -8
  35. package/lib/async-modules/AsyncModuleHelpers.js +12 -5
  36. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
  37. package/lib/async-modules/InferAsyncModulesPlugin.js +9 -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} +6 -6
  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 +13 -19
  47. package/lib/cache/ResolverCachePlugin.js +65 -11
  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} +209 -212
  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} +14 -164
  55. package/lib/config/defaults.js +166 -59
  56. package/lib/config/getClaimedAssetTypes.js +22 -14
  57. package/lib/config/normalization.js +18 -7
  58. package/lib/config/target.js +11 -1
  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 +37 -26
  76. package/lib/context/ContextModuleFactory.js +14 -11
  77. package/lib/context/ContextReplacementPlugin.js +6 -12
  78. package/lib/css/CssGenerator.js +78 -68
  79. package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
  80. package/lib/css/CssLoadingRuntimeModule.js +77 -44
  81. package/lib/css/CssModule.js +37 -29
  82. package/lib/css/CssModulesPlugin.js +129 -45
  83. package/lib/css/CssParser.js +714 -322
  84. package/lib/css/CssServerStylesRuntimeModule.js +3 -3
  85. package/lib/{util → css}/conventions.js +1 -1
  86. package/lib/css/cssMinify.js +110 -37
  87. package/lib/css/data.js +6990 -5125
  88. package/lib/css/syntax-parser.js +20734 -0
  89. package/lib/css/syntax-printer.js +6092 -0
  90. package/lib/css/syntax.js +37 -18686
  91. package/lib/debug/ProfilingPlugin.js +106 -51
  92. package/lib/{DefinePlugin.js → define/DefinePlugin.js} +416 -55
  93. package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +19 -15
  94. package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +6 -4
  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 -11
  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} +14 -11
  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} +166 -36
  116. package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
  117. package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +154 -92
  118. package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
  119. package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +36 -33
  120. package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +17 -16
  121. package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +48 -39
  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} +17 -16
  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} +9 -6
  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} +31 -9
  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} +10 -11
  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} +7 -10
  149. package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +17 -19
  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} +21 -17
  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 -99
  164. package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +24 -19
  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} +25 -22
  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} +29 -21
  172. package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +20 -20
  173. package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
  174. package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +60 -89
  175. package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +80 -45
  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} +146 -133
  179. package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
  180. package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +78 -37
  181. package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -12
  182. package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
  183. package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +86 -68
  184. package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +104 -100
  185. package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +36 -51
  186. package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
  187. package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +98 -60
  188. package/lib/dependencies/esm/ESMLiveExportDependency.js +311 -0
  189. package/lib/dependencies/esm/ESMLiveExportParserPlugin.js +862 -0
  190. package/lib/dependencies/esm/ESMModulesPlugin.js +205 -0
  191. package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
  192. package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -18
  193. package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +5 -7
  194. package/lib/{util → dependencies/helpers}/chainedImports.js +5 -5
  195. package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
  196. package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
  197. package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
  198. package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
  199. package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
  200. package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
  201. package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +52 -151
  202. package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -15
  203. package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -23
  204. package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -18
  205. package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
  206. package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
  207. package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
  208. package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
  209. package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +22 -25
  210. package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
  211. package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
  212. package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
  213. package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
  214. package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
  215. package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +122 -103
  216. package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
  217. package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
  218. package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
  219. package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
  220. package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +28 -20
  221. package/lib/{url → dependencies/url}/URLParserPlugin.js +17 -19
  222. package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
  223. package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
  224. package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
  225. package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
  226. package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +82 -53
  227. package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +22 -15
  228. package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +19 -18
  229. package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
  230. package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
  231. package/lib/devtool/ModuleFilenameHelpers.js +413 -0
  232. package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
  233. package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +155 -27
  234. package/lib/{util → devtool}/generateDebugId.js +1 -1
  235. package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
  236. package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
  237. package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
  238. package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
  239. package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
  240. package/lib/dll/DelegatedModule.js +23 -21
  241. package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
  242. package/lib/dll/DelegatedPlugin.js +1 -1
  243. package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
  244. package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
  245. package/lib/dll/DllEntryPlugin.js +3 -3
  246. package/lib/dll/DllModule.js +14 -10
  247. package/lib/dll/DllModuleFactory.js +3 -3
  248. package/lib/dll/DllPlugin.js +18 -6
  249. package/lib/dll/DllReferencePlugin.js +103 -30
  250. package/lib/dll/LibManifestPlugin.js +9 -7
  251. package/lib/electron/ElectronTargetPlugin.js +2 -2
  252. package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
  253. package/lib/{dependencies → entry}/EntryDependency.js +11 -2
  254. package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
  255. package/lib/entry/EntryPlugin.js +75 -0
  256. package/lib/errors/AbstractMethodError.js +1 -1
  257. package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
  258. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  259. package/lib/errors/BuildCycleError.js +1 -1
  260. package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
  261. package/lib/errors/ChunkRenderError.js +1 -1
  262. package/lib/errors/CodeGenerationError.js +1 -1
  263. package/lib/errors/CommentCompilationWarning.js +1 -1
  264. package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
  265. package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
  266. package/lib/errors/DeprecatedOptionWarning.js +30 -0
  267. package/lib/errors/DllManifestError.js +26 -0
  268. package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
  269. package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
  270. package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
  271. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  272. package/lib/{ErrorHelpers.js → errors/ErrorHelpers.js} +9 -6
  273. package/lib/errors/ExternalStarReexportError.js +2 -2
  274. package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
  275. package/lib/errors/HookWebpackError.js +6 -5
  276. package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
  277. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  278. package/lib/errors/JSONParseError.js +4 -4
  279. package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
  280. package/lib/errors/ModuleBuildError.js +1 -1
  281. package/lib/errors/ModuleDependencyError.js +2 -2
  282. package/lib/errors/ModuleDependencyWarning.js +2 -2
  283. package/lib/errors/ModuleError.js +1 -1
  284. package/lib/errors/ModuleHashingError.js +1 -1
  285. package/lib/errors/ModuleNotFoundError.js +3 -3
  286. package/lib/errors/ModuleParseError.js +1 -1
  287. package/lib/errors/ModuleRestoreError.js +1 -1
  288. package/lib/errors/ModuleStoreError.js +1 -1
  289. package/lib/errors/ModuleWarning.js +1 -1
  290. package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
  291. package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
  292. package/lib/errors/NodeStuffInWebError.js +7 -2
  293. package/lib/errors/PathVariableError.js +31 -0
  294. package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
  295. package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
  296. package/lib/errors/RuntimeModuleGenerationError.js +51 -0
  297. package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
  298. package/lib/errors/SystemImportDeprecationWarning.js +43 -0
  299. package/lib/errors/UnmergeableEntryExportsError.js +34 -0
  300. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  301. package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
  302. package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
  303. package/lib/errors/WebpackError.js +13 -3
  304. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
  305. package/lib/esm/ModuleChunkFormatPlugin.js +55 -20
  306. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
  307. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
  308. package/lib/{ExternalModule.js → externals/ExternalModule.js} +90 -63
  309. package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +42 -41
  310. package/lib/externals/ExternalsPlugin.js +99 -0
  311. package/lib/fs/FileSystemInfo.js +4642 -0
  312. package/lib/{util → fs}/fs.js +22 -9
  313. package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
  314. package/lib/graph/Chunk.js +985 -0
  315. package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +192 -80
  316. package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
  317. package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
  318. package/lib/graph/Dependency.js +634 -0
  319. package/lib/graph/Entrypoint.js +136 -0
  320. package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +131 -83
  321. package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
  322. package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +44 -33
  323. package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
  324. package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +169 -76
  325. package/lib/{util → graph}/findGraphRoots.js +15 -9
  326. package/lib/graph/isDependencyKind.js +23 -0
  327. package/lib/hmr/HotModuleReplacement.runtime.js +12 -11
  328. package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +51 -57
  329. package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
  330. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +25 -26
  331. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
  332. package/lib/hmr/LazyCompilationPlugin.js +32 -28
  333. package/lib/html/HtmlGenerator.js +132 -60
  334. package/lib/html/HtmlModule.js +16 -2
  335. package/lib/html/HtmlModulesPlugin.js +184 -87
  336. package/lib/html/HtmlParser.js +511 -160
  337. package/lib/html/builtinEmbeddedRenderer.js +70 -25
  338. package/lib/html/data.js +44 -22
  339. package/lib/html/htmlMinify.js +114 -41
  340. package/lib/html/syntax-parser.js +15795 -0
  341. package/lib/html/syntax-printer.js +1033 -0
  342. package/lib/html/syntax.js +37 -13952
  343. package/lib/html/xmlMinify.js +70 -0
  344. package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
  345. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  346. package/lib/ids/HashedModuleIdsPlugin.js +32 -5
  347. package/lib/ids/IdHelpers.js +4 -4
  348. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  349. package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
  350. package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
  351. package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
  352. package/lib/ids/SyncModuleIdsPlugin.js +3 -3
  353. package/lib/{util → ids}/numberHash.js +1 -1
  354. package/lib/index.js +312 -105
  355. package/lib/{APIPlugin.js → javascript/APIPlugin.js} +31 -37
  356. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
  357. package/lib/javascript/BasicEvaluatedExpression.js +9 -9
  358. package/lib/javascript/ChunkHelpers.js +64 -4
  359. package/lib/javascript/CommonJsChunkFormatPlugin.js +5 -13
  360. package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +7 -7
  361. package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +75 -8
  362. package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
  363. package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
  364. package/lib/javascript/JavascriptGenerator.js +32 -27
  365. package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +8 -20
  366. package/lib/javascript/JavascriptModule.js +14 -3
  367. package/lib/javascript/JavascriptModulesPlugin.js +441 -214
  368. package/lib/javascript/JavascriptParser.js +318 -144
  369. package/lib/javascript/JavascriptParserHelpers.js +1 -1
  370. package/lib/javascript/MergedEntryExports.js +196 -0
  371. package/lib/javascript/ScopeAnalyzer.js +3924 -13
  372. package/lib/javascript/StartupHelpers.js +6 -6
  373. package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +13 -19
  374. package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
  375. package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
  376. package/lib/javascript/data.js +533 -122
  377. package/lib/javascript/jsMinify.js +272 -0
  378. package/lib/javascript/regexp.js +67 -32
  379. package/lib/javascript/syntax-parser.js +19169 -0
  380. package/lib/javascript/syntax-printer-data.js +1099 -0
  381. package/lib/javascript/syntax-printer.js +53878 -0
  382. package/lib/javascript/syntax.js +20 -11274
  383. package/lib/json/JsonData.js +1 -1
  384. package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
  385. package/lib/json/JsonGenerator.js +24 -16
  386. package/lib/json/JsonModule.js +13 -2
  387. package/lib/json/JsonModulesPlugin.js +1 -1
  388. package/lib/json/JsonParser.js +11 -10
  389. package/lib/json/jsonMinify.js +69 -0
  390. package/lib/library/AbstractLibraryPlugin.js +28 -15
  391. package/lib/library/AmdLibraryPlugin.js +4 -4
  392. package/lib/library/AssignLibraryPlugin.js +28 -12
  393. package/lib/library/EnableLibraryPlugin.js +1 -1
  394. package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
  395. package/lib/library/JsonpLibraryPlugin.js +2 -2
  396. package/lib/library/LibraryTemplatePlugin.js +53 -0
  397. package/lib/library/ModuleLibraryPlugin.js +557 -187
  398. package/lib/library/SystemLibraryPlugin.js +6 -8
  399. package/lib/library/UmdLibraryPlugin.js +3 -4
  400. package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
  401. package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
  402. package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
  403. package/lib/{dependencies → loaders}/LoaderPlugin.js +2 -2
  404. package/lib/loaders/LoaderRunner.js +94 -46
  405. package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
  406. package/lib/loaders/loadLoader.js +16 -10
  407. package/lib/logging/Logger.js +7 -9
  408. package/lib/logging/ProgressPlugin.js +957 -0
  409. package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
  410. package/lib/{Generator.js → module/Generator.js} +33 -23
  411. package/lib/{Module.js → module/Module.js} +121 -53
  412. package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
  413. package/lib/module/NormalModule.js +2350 -0
  414. package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +64 -71
  415. package/lib/module/NullFactory.js +29 -0
  416. package/lib/{Parser.js → module/Parser.js} +12 -5
  417. package/lib/module/RawModule.js +208 -0
  418. package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
  419. package/lib/{util → module}/extractSourceMap.js +71 -20
  420. package/lib/{util → module}/findCaseMismatch.js +4 -4
  421. package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
  422. package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
  423. package/lib/{dependencies → node}/ExternalModuleInitFragment.js +7 -6
  424. package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
  425. package/lib/node/NodeEnvironmentPlugin.js +11 -1
  426. package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
  427. package/lib/node/NodeTargetPlugin.js +1 -1
  428. package/lib/node/NodeWatchFileSystem.js +58 -6
  429. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
  430. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +13 -19
  431. package/lib/node/ReadFileCompileWasmPlugin.js +9 -11
  432. package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
  433. package/lib/node/nodeConsole.js +6 -7
  434. package/lib/optimize/AggressiveMergingPlugin.js +2 -2
  435. package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
  436. package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +14 -14
  437. package/lib/optimize/ConcatenatedModule.js +231 -220
  438. package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
  439. package/lib/optimize/ConstExportsPlugin.js +7 -7
  440. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  441. package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
  442. package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +23 -28
  443. package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +44 -19
  444. package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
  445. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
  446. package/lib/optimize/InlineExports.js +12 -7
  447. package/lib/optimize/InnerGraph.js +5 -13
  448. package/lib/optimize/InnerGraphPlugin.js +10 -10
  449. package/lib/optimize/LazyBarrels.js +620 -0
  450. package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
  451. package/lib/optimize/LimitChunkCountPlugin.js +16 -7
  452. package/lib/optimize/MangleExportsPlugin.js +5 -5
  453. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
  454. package/lib/optimize/MinChunkSizePlugin.js +9 -6
  455. package/lib/optimize/ModuleConcatenationPlugin.js +28 -22
  456. package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
  457. package/lib/optimize/RealContentHashPlugin.js +18 -13
  458. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  459. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  460. package/lib/optimize/SideEffectsFlagPlugin.js +24 -38
  461. package/lib/optimize/SplitChunksPlugin.js +719 -174
  462. package/lib/{util → optimize}/TupleQueue.js +9 -9
  463. package/lib/optimize/chunkSetIntersections.js +437 -0
  464. package/lib/{util → optimize}/deterministicGrouping.js +17 -17
  465. package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
  466. package/lib/{CleanPlugin.js → output/CleanPlugin.js} +69 -25
  467. package/lib/{CopyPlugin.js → output/CopyPlugin.js} +144 -70
  468. package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
  469. package/lib/output/SSRManifestPlugin.js +349 -0
  470. package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
  471. package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
  472. package/lib/performance/BroadContextsPlugin.js +4 -4
  473. package/lib/performance/CacheEffectivenessPlugin.js +2 -3
  474. package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
  475. package/lib/performance/DuplicateModulesPlugin.js +3 -4
  476. package/lib/performance/DuplicatePackagesPlugin.js +3 -3
  477. package/lib/performance/DynamicExportsPlugin.js +2 -2
  478. package/lib/performance/EvalUsagePlugin.js +4 -6
  479. package/lib/performance/HotspotsPlugin.js +39 -14
  480. package/lib/performance/LargeModulesPlugin.js +2 -3
  481. package/lib/performance/LegacyJavascriptPlugin.js +1 -2
  482. package/lib/performance/MissingSideEffectsPlugin.js +2 -3
  483. package/lib/performance/MissingSourceMapsPlugin.js +5 -6
  484. package/lib/performance/PureAnnotationsPlugin.js +19 -13
  485. package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
  486. package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
  487. package/lib/performance/SizeLimitsPlugin.js +11 -12
  488. package/lib/performance/TopLevelThisPlugin.js +22 -13
  489. package/lib/performance/UnsplitVendorsPlugin.js +1 -2
  490. package/lib/performance/UnusedAliasesPlugin.js +6 -7
  491. package/lib/performance/UnusedAssetsPlugin.js +5 -5
  492. package/lib/performance/UnusedDefinesPlugin.js +2 -2
  493. package/lib/performance/UnusedExternalsPlugin.js +3 -4
  494. package/lib/performance/UnusedFederationPlugin.js +2 -4
  495. package/lib/performance/UnusedModulesPlugin.js +5 -4
  496. package/lib/performance/getModuleSize.js +1 -1
  497. package/lib/performance/hasOnlyUnusedExports.js +4 -4
  498. package/lib/performance/isOnlyReexported.js +7 -6
  499. package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
  500. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
  501. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -1
  502. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
  503. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
  504. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
  505. package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
  506. package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
  507. package/lib/prefetch/ResourceHintPlugin.js +66 -45
  508. package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
  509. package/lib/prefetch/StartupAssetHintRuntimeModule.js +3 -3
  510. package/lib/prefetch/parseResourceHintOptions.js +4 -3
  511. package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
  512. package/lib/{dependencies → provide}/ProvidedDependency.js +50 -17
  513. package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
  514. package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
  515. package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
  516. package/lib/resolve/getResolveOptionsKey.js +59 -0
  517. package/lib/rules/BasicEffectRulePlugin.js +1 -1
  518. package/lib/rules/RuleSetCompiler.js +42 -51
  519. package/lib/rules/UseEffectRulePlugin.js +1 -3
  520. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
  521. package/lib/runtime/AsyncModuleRuntimeModule.js +14 -5
  522. package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
  523. package/lib/runtime/BaseUriRuntimeModule.js +3 -3
  524. package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
  525. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
  526. package/lib/runtime/CompatRuntimeModule.js +4 -4
  527. package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
  528. package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
  529. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
  530. package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
  531. package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
  532. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
  533. package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
  534. package/lib/runtime/GetChunkFilenameRuntimeModule.js +7 -11
  535. package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
  536. package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
  537. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
  538. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
  539. package/lib/runtime/GlobalRuntimeModule.js +3 -3
  540. package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
  541. package/lib/runtime/HelperRuntimeModule.js +16 -1
  542. package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
  543. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +80 -17
  544. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
  545. package/lib/runtime/NonceRuntimeModule.js +2 -2
  546. package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
  547. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  548. package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
  549. package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +24 -1
  550. package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
  551. package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
  552. package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +50 -50
  553. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
  554. package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
  555. package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
  556. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
  557. package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
  558. package/lib/runtime/SystemContextRuntimeModule.js +2 -2
  559. package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
  560. package/lib/runtime/WorkerRuntimeModule.js +1 -1
  561. package/lib/runtime/baseUri.js +1 -1
  562. package/lib/schemes/DataUriPlugin.js +1 -1
  563. package/lib/schemes/HttpUriPlugin.js +68 -13
  564. package/lib/schemes/VirtualUrlPlugin.js +52 -16
  565. package/lib/serialization/AggregateErrorSerializer.js +4 -4
  566. package/lib/serialization/BinaryMiddleware.js +4 -1
  567. package/lib/serialization/ErrorObjectSerializer.js +2 -5
  568. package/lib/serialization/FileMiddleware.js +3 -3
  569. package/lib/serialization/ObjectMiddleware.js +62 -29
  570. package/lib/serialization/PlainObjectSerializer.js +3 -7
  571. package/lib/serialization/Serializer.js +21 -11
  572. package/lib/serialization/SerializerMiddleware.js +10 -8
  573. package/lib/serialization/SingleItemMiddleware.js +4 -2
  574. package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
  575. package/lib/sharing/ConsumeSharedModule.js +18 -14
  576. package/lib/sharing/ConsumeSharedPlugin.js +148 -42
  577. package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
  578. package/lib/sharing/ProvideForSharedDependency.js +9 -1
  579. package/lib/sharing/ProvideSharedDependency.js +1 -1
  580. package/lib/sharing/ProvideSharedModule.js +11 -9
  581. package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
  582. package/lib/sharing/ProvideSharedPlugin.js +111 -20
  583. package/lib/sharing/SharePlugin.js +102 -9
  584. package/lib/sharing/ShareRuntimeModule.js +6 -6
  585. package/lib/sharing/resolveMatchedConfigs.js +1 -1
  586. package/lib/{util → sharing}/semver.js +14 -16
  587. package/lib/sharing/utils.js +59 -2
  588. package/lib/stats/DefaultStatsFactoryPlugin.js +57 -54
  589. package/lib/stats/DefaultStatsPresetPlugin.js +3 -7
  590. package/lib/stats/DefaultStatsPrinterPlugin.js +15 -14
  591. package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
  592. package/lib/{Stats.js → stats/Stats.js} +4 -4
  593. package/lib/stats/StatsFactory.js +208 -37
  594. package/lib/stats/StatsPrinter.js +126 -13
  595. package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
  596. package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
  597. package/lib/template/DependencyTemplate.js +77 -0
  598. package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
  599. package/lib/template/InitFragment.js +223 -0
  600. package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
  601. package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
  602. package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
  603. package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +158 -95
  604. package/lib/{Template.js → template/Template.js} +14 -12
  605. package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +19 -23
  606. package/lib/typescript/TypeScriptPlugin.js +3 -3
  607. package/lib/util/RequestShortener.js +44 -0
  608. package/lib/util/SortableSet.js +87 -22
  609. package/lib/util/SourceProcessor.js +439 -51
  610. package/lib/util/TupleSet.js +27 -27
  611. package/lib/util/WeakTupleMap.js +20 -16
  612. package/lib/util/buildDiagnostics.js +2 -2
  613. package/lib/util/cleverMerge.js +61 -33
  614. package/lib/util/comparators.js +19 -15
  615. package/lib/util/concatenate.js +28 -147
  616. package/lib/util/createMappings.js +111 -0
  617. package/lib/util/dataURL.js +96 -15
  618. package/lib/util/deprecation.js +5 -4
  619. package/lib/util/extractComments.js +118 -0
  620. package/lib/util/formatLocation.js +1 -1
  621. package/lib/util/globUtils.js +198 -20
  622. package/lib/util/haltVisitors.js +51 -0
  623. package/lib/util/handlerKeys.js +2 -2
  624. package/lib/util/identifier.js +117 -1
  625. package/lib/util/implicitTypeLoaderFallback.js +6 -4
  626. package/lib/util/internalSerializables.js +296 -102
  627. package/lib/util/magicComment.js +12 -7
  628. package/lib/util/makeSerializable.js +28 -7
  629. package/lib/util/memoize.js +1 -1
  630. package/lib/util/parseJson.js +2 -2
  631. package/lib/util/preloadModuleType.js +5 -2
  632. package/lib/util/registerExternalSerializer.js +2 -2
  633. package/lib/util/removeBOM.js +1 -1
  634. package/lib/util/runtime.js +1 -1
  635. package/lib/util/serialization.js +35 -28
  636. package/lib/util/source.js +2 -2
  637. package/lib/util/terminalColors.js +161 -0
  638. package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
  639. package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
  640. package/lib/{wasm-async → wasm}/AsyncWasmModule.js +19 -5
  641. package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +17 -9
  642. package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +24 -15
  643. package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
  644. package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +14 -12
  645. package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
  646. package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +11 -13
  647. package/lib/wasm/wasmModuleFilename.js +2 -2
  648. package/lib/wasm-sync/SyncWasmModule.js +18 -3
  649. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +8 -8
  650. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
  651. package/lib/wasm-sync/WebAssemblyGenerator.js +22 -16
  652. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +28 -21
  653. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
  654. package/lib/wasm-sync/WebAssemblyParser.js +15 -17
  655. package/lib/wasm-sync/WebAssemblyUtils.js +6 -5
  656. package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
  657. package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
  658. package/lib/{Watching.js → watch/Watching.js} +8 -8
  659. package/lib/web/FetchCompileAsyncWasmPlugin.js +12 -18
  660. package/lib/web/FetchCompileWasmPlugin.js +8 -10
  661. package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
  662. package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
  663. package/lib/web/JsonpTemplatePlugin.js +1 -1
  664. package/lib/webpack.js +27 -17
  665. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
  666. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
  667. package/package.json +57 -36
  668. package/schemas/WebpackOptions.check.js +4 -3
  669. package/schemas/WebpackOptions.d.json.ts +2 -0
  670. package/schemas/WebpackOptions.json +295 -75
  671. package/schemas/plugins/BannerPlugin.check.js +4 -3
  672. package/schemas/plugins/BannerPlugin.json +29 -2
  673. package/schemas/plugins/HtmlGeneratorOptions.check.js +4 -3
  674. package/schemas/plugins/HtmlParserOptions.check.js +4 -3
  675. package/schemas/plugins/IgnorePlugin.check.js +4 -3
  676. package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
  677. package/schemas/plugins/IgnorePlugin.json +1 -1
  678. package/schemas/plugins/LoaderOptionsPlugin.check.js +4 -3
  679. package/schemas/plugins/ManifestPlugin.check.js +4 -3
  680. package/schemas/plugins/ManifestPlugin.json +3 -3
  681. package/schemas/plugins/ProgressPlugin.check.js +4 -3
  682. package/schemas/plugins/ProgressPlugin.json +2 -7
  683. package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
  684. package/schemas/plugins/SSRManifestPlugin.json +20 -0
  685. package/schemas/plugins/SourceMapDevToolPlugin.check.js +4 -3
  686. package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
  687. package/schemas/plugins/WatchIgnorePlugin.check.js +4 -3
  688. package/schemas/plugins/WatchIgnorePlugin.json +12 -3
  689. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +4 -3
  690. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +4 -3
  691. package/schemas/plugins/asset/AssetParserOptions.check.js +4 -3
  692. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +4 -3
  693. package/schemas/plugins/container/ContainerPlugin.check.js +4 -3
  694. package/schemas/plugins/container/ContainerPlugin.json +8 -0
  695. package/schemas/plugins/container/ContainerReferencePlugin.check.js +4 -3
  696. package/schemas/plugins/container/ExternalsType.check.js +4 -3
  697. package/schemas/plugins/container/ModuleFederationPlugin.check.js +4 -3
  698. package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
  699. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +4 -3
  700. package/schemas/plugins/css/CssGeneratorOptions.check.js +4 -3
  701. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +4 -3
  702. package/schemas/plugins/css/CssModuleParserOptions.check.js +4 -3
  703. package/schemas/plugins/css/CssParserOptions.check.js +4 -3
  704. package/schemas/plugins/debug/ProfilingPlugin.check.js +4 -3
  705. package/schemas/plugins/define/DotenvPluginOptions.check.js +7 -0
  706. package/schemas/plugins/define/DotenvPluginOptions.json +3 -0
  707. package/schemas/plugins/dll/DllPlugin.check.js +4 -3
  708. package/schemas/plugins/dll/DllReferencePlugin.check.js +4 -3
  709. package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
  710. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +4 -3
  711. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +4 -3
  712. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +4 -3
  713. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +4 -3
  714. package/schemas/plugins/json/JsonModulesPluginParser.check.js +4 -3
  715. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +4 -3
  716. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +4 -3
  717. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +4 -3
  718. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +4 -3
  719. package/schemas/plugins/output/CleanOptions.check.js +7 -0
  720. package/schemas/plugins/output/CleanOptions.json +3 -0
  721. package/schemas/plugins/schemes/HttpUriPlugin.check.js +4 -3
  722. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +4 -3
  723. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +4 -3
  724. package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
  725. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +4 -3
  726. package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
  727. package/schemas/plugins/sharing/SharePlugin.check.js +4 -3
  728. package/schemas/plugins/sharing/SharePlugin.json +32 -0
  729. package/types.d.ts +20780 -14174
  730. package/lib/LazyBarrel.js +0 -388
  731. package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
  732. package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
  733. package/lib/javascript/ChunkFormatHelpers.js +0 -72
  734. package/lib/javascript/grammar.js +0 -5546
  735. package/lib/javascript/parser.js +0 -1500
  736. package/lib/javascript/regexpData.js +0 -51
  737. package/lib/performance/getSourceModules.js +0 -22
  738. package/lib/util/Semaphore.js +0 -65
  739. package/lib/util/objectToMap.js +0 -15
  740. package/schemas/WebpackOptions.check.d.ts +0 -7
  741. package/schemas/_container.json +0 -155
  742. package/schemas/_sharing.json +0 -118
  743. package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
  744. package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
  745. package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
  746. package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
  747. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
  748. package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
  749. package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
  750. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
  751. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
  752. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
  753. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
  754. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
  755. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
  756. package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
  757. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
  758. package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
  759. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
  760. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
  761. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
  762. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
  763. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
  764. package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
  765. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
  766. package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
  767. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
  768. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
  769. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
  770. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
  771. package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
  772. package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
  773. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
  774. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
  775. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
  776. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
  777. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
  778. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
  779. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
  780. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
  781. package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
  782. /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
  783. /package/lib/{util → css}/topologicalSort.js +0 -0
  784. /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
  785. /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
  786. /package/lib/{util → fs}/StackedCacheMap.js +0 -0
  787. /package/lib/{util → javascript}/StackedMap.js +0 -0
  788. /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
  789. /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
  790. /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
  791. /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
  792. /package/lib/{util → optimize}/Queue.js +0 -0
  793. /package/lib/{util → stats}/smartGrouping.js +0 -0
@@ -6,13 +6,15 @@
6
6
  "use strict";
7
7
 
8
8
  const { RawSource } = require("webpack-sources");
9
- const Module = require("../Module");
9
+ const Module = require("../module/Module");
10
10
  const {
11
11
  JAVASCRIPT_TYPE,
12
12
  JAVASCRIPT_TYPES
13
- } = require("../ModuleSourceTypeConstants");
14
- const { ASSET_MODULE_TYPE_RAW_DATA_URL } = require("../ModuleTypeConstants");
15
- const RuntimeGlobals = require("../RuntimeGlobals");
13
+ } = require("../module/ModuleSourceTypeConstants");
14
+ const {
15
+ ASSET_MODULE_TYPE_RAW_DATA_URL
16
+ } = require("../module/ModuleTypeConstants");
17
+ const RuntimeGlobals = require("../runtime/RuntimeGlobals");
16
18
  const makeSerializable = require("../util/makeSerializable");
17
19
 
18
20
  /**
@@ -21,7 +23,7 @@ const makeSerializable = require("../util/makeSerializable");
21
23
  * } from "../config/defaults"
22
24
  */
23
25
  /** @import Compilation from "../Compilation" */
24
- /** @import { UpdateHashContext } from "../Dependency" */
26
+ /** @import { UpdateHashContext } from "../graph/Dependency" */
25
27
  /**
26
28
  * @import {
27
29
  * BuildCallback,
@@ -33,14 +35,14 @@ const makeSerializable = require("../util/makeSerializable");
33
35
  * NeedBuildContext,
34
36
  * Sources,
35
37
  * SourceTypes
36
- * } from "../Module"
38
+ * } from "../module/Module"
37
39
  */
38
- /** @import RequestShortener from "../RequestShortener" */
39
- /** @import { ResolverWithOptions } from "../ResolverFactory" */
40
+ /** @import RequestShortener from "../util/RequestShortener" */
41
+ /** @import { ResolverWithOptions } from "../resolve/ResolverFactory" */
40
42
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[Buffer | undefined, string, string]>} ObjectDeserializerContext */
41
43
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[Buffer | undefined, string, string]>} ObjectSerializerContext */
42
44
  /** @import Hash from "../util/Hash" */
43
- /** @import { InputFileSystem } from "../util/fs" */
45
+ /** @import { InputFileSystem } from "../fs/fs" */
44
46
 
45
47
  class RawDataUrlModule extends Module {
46
48
  /**
@@ -192,6 +194,11 @@ class RawDataUrlModule extends Module {
192
194
  }
193
195
  }
194
196
 
195
- makeSerializable(RawDataUrlModule, "webpack/lib/asset/RawDataUrlModule");
197
+ makeSerializable(RawDataUrlModule, [
198
+ "webpack/lib/asset/RawDataUrlModule",
199
+ // TODO in the next major release: remove, it restores caches written
200
+ // before this moved into lib/asset/
201
+ "webpack/lib/RawDataUrlModule"
202
+ ]);
196
203
 
197
204
  module.exports = RawDataUrlModule;
@@ -6,20 +6,20 @@
6
6
  "use strict";
7
7
 
8
8
  const { RawSource, ReplaceSource } = require("webpack-sources");
9
- const { ASSET_URL_TYPE } = require("../ModuleSourceTypeConstants");
9
+ const { ASSET_URL_TYPE } = require("../module/ModuleSourceTypeConstants");
10
10
  const createHash = require("../util/createHash");
11
11
  const nonNumericOnlyHash = require("../util/nonNumericOnlyHash");
12
12
  const { PUBLIC_PATH_AUTO } = require("../util/publicPathPlaceholder");
13
13
  const AssetGenerator = require("./AssetGenerator");
14
14
 
15
15
  /** @import { Source } from "webpack-sources" */
16
- /** @import CodeGenerationResults from "../CodeGenerationResults" */
16
+ /** @import CodeGenerationResults from "../module/CodeGenerationResults" */
17
17
  /** @import { DependencyConstructor } from "../Compilation" */
18
- /** @import { DependencyTemplateContext } from "../DependencyTemplate" */
19
- /** @import { GenerateContext } from "../Generator" */
20
- /** @import { SourceType, SourceTypes } from "../Module" */
21
- /** @import ModuleGraph from "../ModuleGraph" */
22
- /** @import NormalModule from "../NormalModule" */
18
+ /** @import { DependencyTemplateContext } from "../template/DependencyTemplate" */
19
+ /** @import { GenerateContext } from "../module/Generator" */
20
+ /** @import { SourceType, SourceTypes } from "../module/Module" */
21
+ /** @import ModuleGraph from "../graph/ModuleGraph" */
22
+ /** @import { AssetNormalModule } from "./AssetModule" */
23
23
 
24
24
  const WEBMANIFEST_TYPE = "webmanifest";
25
25
  const WEBMANIFEST_TYPES = new Set([WEBMANIFEST_TYPE]);
@@ -28,6 +28,11 @@ const WEBMANIFEST_AND_ASSET_URL_TYPES = new Set([
28
28
  ASSET_URL_TYPE
29
29
  ]);
30
30
 
31
+ /**
32
+ * The module type the JSDoc inherited from `Generator` names.
33
+ * @typedef {AssetNormalModule} TModule
34
+ */
35
+
31
36
  /**
32
37
  * A Web App Manifest is a "typed asset": a variant of `AssetGenerator` (reusing
33
38
  * its filename/hash and `ASSET_URL_TYPE` machinery) whose emitted content is the
@@ -46,7 +51,7 @@ class WebManifestGenerator extends AssetGenerator {
46
51
 
47
52
  /**
48
53
  * Returns the source types available for this module.
49
- * @param {NormalModule} module fresh module
54
+ * @param {TModule} module fresh module
50
55
  * @returns {SourceTypes} available types (do not mutate)
51
56
  */
52
57
  getTypes(module) {
@@ -58,7 +63,7 @@ class WebManifestGenerator extends AssetGenerator {
58
63
 
59
64
  /**
60
65
  * Returns the estimated size for the requested source type.
61
- * @param {NormalModule} module the module
66
+ * @param {TModule} module the module
62
67
  * @param {SourceType=} type source type
63
68
  * @returns {number} estimate size of the module
64
69
  */
@@ -69,7 +74,7 @@ class WebManifestGenerator extends AssetGenerator {
69
74
 
70
75
  /**
71
76
  * Rewrites each icon `src` in the raw manifest to its emitted asset URL.
72
- * @param {NormalModule} module the manifest module
77
+ * @param {TModule} module the manifest module
73
78
  * @param {GenerateContext} generateContext context for generate
74
79
  * @returns {string} the rewritten manifest content
75
80
  */
@@ -111,7 +116,7 @@ class WebManifestGenerator extends AssetGenerator {
111
116
 
112
117
  /**
113
118
  * Generates generated code for this runtime module.
114
- * @param {NormalModule} module module for which the code should be generated
119
+ * @param {TModule} module module for which the code should be generated
115
120
  * @param {GenerateContext} generateContext context for generate
116
121
  * @returns {Source | null} generated code
117
122
  */
@@ -133,7 +138,7 @@ class WebManifestGenerator extends AssetGenerator {
133
138
  );
134
139
  const contentHash = nonNumericOnlyHash(
135
140
  fullContentHash,
136
- /** @type {number} */ (outputOptions.hashDigestLength)
141
+ outputOptions.hashDigestLength
137
142
  );
138
143
  const { filename, assetInfo } = AssetGenerator.getFilenameWithInfo(
139
144
  module,
@@ -5,13 +5,13 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const Parser = require("../Parser");
9
- const HtmlSourceDependency = require("../dependencies/HtmlSourceDependency");
10
- const { parse } = require("../javascript/syntax");
8
+ const HtmlSourceDependency = require("../dependencies/html/HtmlSourceDependency");
9
+ const { parse } = require("../javascript/syntax-parser");
10
+ const Parser = require("../module/Parser");
11
11
 
12
12
  /** @import { Expression, ObjectExpression, Program, Property } from "estree" */
13
- /** @import { BuildInfo } from "../Module" */
14
- /** @import { ParserState, PreparsedAst } from "../Parser" */
13
+ /** @import { BuildInfo } from "../module/Module" */
14
+ /** @import { ParserState, PreparsedAst } from "../module/Parser" */
15
15
 
16
16
  // the parser decorates every node with numeric source offsets (absent from the estree types).
17
17
  /** @typedef {{ start: number, end: number }} Positioned */
@@ -51,7 +51,7 @@ class WebManifestParser extends Parser {
51
51
  source = source.slice(1);
52
52
  leadingBytes = binary ? BOM_BYTE_LENGTH : 1;
53
53
  }
54
- const text = /** @type {string} */ (source);
54
+ const text = source;
55
55
  const asciiOnly = !binary || Buffer.byteLength(text) === text.length;
56
56
  /**
57
57
  * @param {number} offset offset in UTF-16 code units into `text`
@@ -121,8 +121,8 @@ class WebManifestParser extends Parser {
121
121
  if (!buildHttp && ABSOLUTE_URL_SCHEME_REGEXP.test(url)) continue;
122
122
  // acorn offsets are into `(${source})`; the leading `(` and the
123
123
  // opening quote cancel, so the inner span is [start, end - 2].
124
- const { start, end } = /** @type {Positioned} */ (
125
- /** @type {unknown} */ (value)
124
+ const { start, end } = /** @type {Expression & Positioned} */ (
125
+ value
126
126
  );
127
127
  const dep = new HtmlSourceDependency(url, [
128
128
  toSourceOffset(start),
@@ -5,10 +5,10 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const HarmonyImportDependency = require("../dependencies/HarmonyImportDependency");
8
+ const isDependencyKind = require("../graph/isDependencyKind");
9
9
 
10
- /** @import ModuleGraph from "../ModuleGraph" */
11
- /** @import Module from "../Module" */
10
+ /** @import ModuleGraph from "../graph/ModuleGraph" */
11
+ /** @import Module from "../module/Module" */
12
12
 
13
13
  /** @typedef {Set<Module>} Modules */
14
14
 
@@ -35,7 +35,12 @@ const getOutgoingAsyncModules = (moduleGraph, module) => {
35
35
  // Walk the imports in source order: the spec gathers these from
36
36
  // `[[RequestedModules]]`, and their evaluation order is observable.
37
37
  for (const dependency of module.dependencies) {
38
- if (!(dependency instanceof HarmonyImportDependency)) continue;
38
+ if (
39
+ !isDependencyKind(dependency, "esm-import") &&
40
+ !isDependencyKind(dependency, "provided")
41
+ ) {
42
+ continue;
43
+ }
39
44
  const referenced = moduleGraph.getModule(dependency);
40
45
  if (!referenced || seen.has(referenced)) continue;
41
46
  const connections = outgoingConnectionMap.get(referenced);
@@ -43,7 +48,9 @@ const getOutgoingAsyncModules = (moduleGraph, module) => {
43
48
  connections &&
44
49
  connections.some(
45
50
  (c) =>
46
- c.dependency instanceof HarmonyImportDependency &&
51
+ c.dependency !== null &&
52
+ (isDependencyKind(c.dependency, "esm-import") ||
53
+ isDependencyKind(c.dependency, "provided")) &&
47
54
  c.isTargetActive(undefined)
48
55
  )
49
56
  ) {
@@ -5,12 +5,12 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const InitFragment = require("../InitFragment");
9
- const RuntimeGlobals = require("../RuntimeGlobals");
10
- const Template = require("../Template");
8
+ const RuntimeGlobals = require("../runtime/RuntimeGlobals");
9
+ const InitFragment = require("../template/InitFragment");
10
+ const Template = require("../template/Template");
11
11
 
12
12
  /** @import { Source } from "webpack-sources" */
13
- /** @import { GenerateContext } from "../Generator" */
13
+ /** @import { GenerateContext } from "../module/Generator" */
14
14
 
15
15
  /** @typedef {Map<string, string>} Dependencies */
16
16
 
@@ -5,10 +5,10 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const HarmonyImportDependency = require("../dependencies/HarmonyImportDependency");
8
+ const isDependencyKind = require("../graph/isDependencyKind");
9
9
 
10
10
  /** @import Compiler from "../Compiler" */
11
- /** @import Module from "../Module" */
11
+ /** @import Module, { BuildMeta } from "../module/Module" */
12
12
 
13
13
  const PLUGIN_NAME = "InferAsyncModulesPlugin";
14
14
 
@@ -38,7 +38,13 @@ class InferAsyncModulesPlugin {
38
38
  if (
39
39
  connections.some(
40
40
  (c) =>
41
- c.dependency instanceof HarmonyImportDependency &&
41
+ c.dependency !== null &&
42
+ (isDependencyKind(c.dependency, "esm-import") ||
43
+ // only an ESM module has the async wrapper to await it in
44
+ (isDependencyKind(c.dependency, "provided") &&
45
+ /** @type {BuildMeta} */
46
+ (/** @type {Module} */ (originModule).buildMeta)
47
+ .exportsType === "namespace")) &&
42
48
  c.isTargetActive(undefined)
43
49
  )
44
50
  ) {
@@ -4,9 +4,9 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- /** @import Module from "../Module" */
8
- /** @import ModuleGraph from "../ModuleGraph" */
9
- /** @import RuntimeTemplate from "../RuntimeTemplate" */
7
+ /** @import Module from "../module/Module" */
8
+ /** @import ModuleGraph from "../graph/ModuleGraph" */
9
+ /** @import RuntimeTemplate from "../template/RuntimeTemplate" */
10
10
 
11
11
  /**
12
12
  * Whether an async module is lowered to a generator: the target has no
@@ -5,7 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const ExternalsPlugin = require("../ExternalsPlugin");
8
+ const ExternalsPlugin = require("../externals/ExternalsPlugin");
9
9
  const { coreModules } = require("../node/nodeBuiltins");
10
10
 
11
11
  /** @import Compiler from "../Compiler" */
@@ -15,30 +15,13 @@ const PLUGIN_NAME = "AddBuildDependenciesPlugin";
15
15
  * @property {boolean} optional when true the dependency may be missing
16
16
  */
17
17
 
18
- /**
19
- * @param {string | { dependency: string, optional?: boolean }} item build dependency
20
- * @returns {NormalizedBuildDependencyItem} normalized build dependency
21
- */
22
- const normalizeBuildDependencyItem = (item) => {
23
- if (typeof item === "string") {
24
- return { dependency: item, optional: false };
25
- }
26
- return {
27
- dependency: item.dependency,
28
- optional: Boolean(item.optional)
29
- };
30
- };
31
-
32
18
  class AddBuildDependenciesPlugin {
33
19
  /**
34
20
  * Creates an instance of AddBuildDependenciesPlugin.
35
- * @param {Iterable<string | { dependency: string, optional?: boolean }>} buildDependencies list of build dependencies
21
+ * @param {NormalizedBuildDependencyItem[]} buildDependencies normalized build dependencies
36
22
  */
37
23
  constructor(buildDependencies) {
38
- /** @type {NormalizedBuildDependencyItem[]} */
39
- this.buildDependencies = [...buildDependencies].map(
40
- normalizeBuildDependencyItem
41
- );
24
+ this.buildDependencies = [...buildDependencies];
42
25
  }
43
26
 
44
27
  /**
@@ -9,7 +9,7 @@ const { AsyncParallelHook, AsyncSeriesBailHook, SyncHook } = require("tapable");
9
9
  const {
10
10
  makeWebpackError,
11
11
  makeWebpackErrorCallback
12
- } = require("./errors/HookWebpackError");
12
+ } = require("../errors/HookWebpackError");
13
13
 
14
14
  /**
15
15
  * Cache validation token whose string representation identifies the build
@@ -6,13 +6,13 @@
6
6
  "use strict";
7
7
 
8
8
  const { forEachBail } = require("enhanced-resolve");
9
- const getLazyHashedEtag = require("./cache/getLazyHashedEtag");
10
- const mergeEtags = require("./cache/mergeEtags");
11
- const asyncLib = require("./util/async");
9
+ const asyncLib = require("../util/async");
10
+ const getLazyHashedEtag = require("./getLazyHashedEtag");
11
+ const mergeEtags = require("./mergeEtags");
12
12
 
13
13
  /** @import Cache, { Etag } from "./Cache" */
14
- /** @import { HashableObject } from "./cache/getLazyHashedEtag" */
15
- /** @import { HashFunction } from "./util/Hash" */
14
+ /** @import { HashableObject } from "./getLazyHashedEtag" */
15
+ /** @import { HashFunction } from "../util/Hash" */
16
16
 
17
17
  /**
18
18
  * Defines the callback cache callback.
@@ -42,7 +42,7 @@ class MultiItemCache {
42
42
  this._items = items;
43
43
  // @ts-expect-error expected - returns the single ItemCacheFacade when passed an array of length 1
44
44
  // eslint-disable-next-line no-constructor-return
45
- if (items.length === 1) return /** @type {ItemCacheFacade} */ (items[0]);
45
+ if (items.length === 1) return items[0];
46
46
  }
47
47
 
48
48
  /**
@@ -5,8 +5,8 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const Cache = require("../Cache");
9
- const ProgressPlugin = require("../ProgressPlugin");
8
+ const ProgressPlugin = require("../logging/ProgressPlugin");
9
+ const Cache = require("./Cache");
10
10
 
11
11
  /** @import Compiler from "../Compiler" */
12
12
  /** @import PackFileCacheStrategy from "./PackFileCacheStrategy" */
@@ -5,9 +5,9 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const Cache = require("../Cache");
8
+ const Cache = require("./Cache");
9
9
 
10
- /** @import { Data, Etag } from "../Cache" */
10
+ /** @import { Data, Etag } from "./Cache" */
11
11
  /** @import Compiler from "../Compiler" */
12
12
 
13
13
  class MemoryCachePlugin {
@@ -5,9 +5,9 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const Cache = require("../Cache");
8
+ const Cache = require("./Cache");
9
9
 
10
- /** @import { Data, Etag } from "../Cache" */
10
+ /** @import { Data, Etag } from "./Cache" */
11
11
  /** @import Compiler from "../Compiler" */
12
12
 
13
13
  /**
@@ -5,8 +5,8 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const FileSystemInfo = require("../FileSystemInfo");
9
- const ProgressPlugin = require("../ProgressPlugin");
8
+ const FileSystemInfo = require("../fs/FileSystemInfo");
9
+ const ProgressPlugin = require("../logging/ProgressPlugin");
10
10
  const { getReferencedFilenames } = require("../serialization/FileMiddleware");
11
11
  const SerializerMiddleware = require("../serialization/SerializerMiddleware");
12
12
  const LazySet = require("../util/LazySet");
@@ -20,14 +20,14 @@ const {
20
20
 
21
21
  /** @import { SnapshotOptions } from "../../declarations/WebpackOptions" */
22
22
  /** @import { FileSystemDependencies } from "../Compilation" */
23
- /** @import { Data, Etag } from "../Cache" */
23
+ /** @import { Data, Etag } from "./Cache" */
24
24
  /** @import Compiler from "../Compiler" */
25
25
  /**
26
26
  * @import {
27
27
  * ResolveBuildDependenciesResult,
28
28
  * ResolveResults,
29
29
  * Snapshot
30
- * } from "../FileSystemInfo"
30
+ * } from "../fs/FileSystemInfo"
31
31
  */
32
32
  /** @import { Logger } from "../logging/Logger" */
33
33
  /**
@@ -37,7 +37,7 @@ const {
37
37
  * } from "../serialization/ObjectMiddleware"
38
38
  */
39
39
  /** @import { HashFunction } from "../util/Hash" */
40
- /** @import { IntermediateFileSystem } from "../util/fs" */
40
+ /** @import { IntermediateFileSystem } from "../fs/fs" */
41
41
 
42
42
  /** @typedef {Set<string>} Items */
43
43
  /** @typedef {Set<string>} BuildDependencies */
@@ -215,7 +215,7 @@ class Pack {
215
215
  if (!this.content[loc]) {
216
216
  return;
217
217
  }
218
- return /** @type {PackContent} */ (this.content[loc]).get(identifier);
218
+ return this.content[loc].get(identifier);
219
219
  }
220
220
 
221
221
  /**
@@ -328,7 +328,9 @@ class Pack {
328
328
  let ignoreNextTimeTick = false;
329
329
  const createNextPack = () => {
330
330
  const loc = this._findLocation();
331
- this.content[loc] = /** @type {EXPECTED_ANY} */ (null); // reserve
331
+ this.content[loc] = /** @type {PackContent} */ (
332
+ /** @type {PackContent | null} */ (null)
333
+ ); // reserve
332
334
  /** @type {PackItem} */
333
335
  const pack = {
334
336
  items: new Set(),
@@ -1010,9 +1012,7 @@ class PackContent {
1010
1012
  );
1011
1013
  logger.time(timeMessage);
1012
1014
  }
1013
- const value =
1014
- /** @type {PackContentItems | Promise<PackContentItems>} */
1015
- (this.lazy());
1015
+ const value = this.lazy();
1016
1016
  if ("then" in value) {
1017
1017
  return value.then((data) => {
1018
1018
  if (timeMessage) {
@@ -1190,7 +1190,7 @@ class PackFileCacheStrategy {
1190
1190
  compression,
1191
1191
  readonly
1192
1192
  }) {
1193
- /** @type {import("../serialization/Serializer")<PackContainer, null, EXPECTED_OBJECT>} */
1193
+ /** @type {import("../serialization/Serializer")<PackContainer, null, import("../serialization/FileMiddleware").Context>} */
1194
1194
  this.fileSerializer = createFileSerializer(
1195
1195
  fs,
1196
1196
  /** @type {HashFunction} */
@@ -1789,11 +1789,7 @@ class PackFileCacheStrategy {
1789
1789
  const mtimeMs = await new Promise((resolve, reject) => {
1790
1790
  fs.stat(file, (err, stats) => {
1791
1791
  if (err) return reject(err);
1792
- resolve(
1793
- /** @type {number} */ (
1794
- /** @type {import("../util/fs").IStats} */ (stats).mtimeMs
1795
- )
1796
- );
1792
+ resolve(/** @type {import("../fs/fs").IStats} */ (stats).mtimeMs);
1797
1793
  });
1798
1794
  });
1799
1795
  const entry = referencedFilesCache.get(name);
@@ -1826,9 +1822,7 @@ class PackFileCacheStrategy {
1826
1822
  const stats = await new Promise((resolve) => {
1827
1823
  fs.stat(path, (err, stats) => {
1828
1824
  resolve(
1829
- err
1830
- ? undefined
1831
- : /** @type {import("../util/fs").IStats} */ (stats)
1825
+ err ? undefined : /** @type {import("../fs/fs").IStats} */ (stats)
1832
1826
  );
1833
1827
  });
1834
1828
  });
@@ -5,6 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const getResolveOptionsKey = require("../resolve/getResolveOptionsKey");
8
9
  const LazySet = require("../util/LazySet");
9
10
  const makeSerializable = require("../util/makeSerializable");
10
11
 
@@ -16,15 +17,14 @@ const makeSerializable = require("../util/makeSerializable");
16
17
  * Resolver
17
18
  * } from "enhanced-resolve"
18
19
  */
19
- /** @import { ItemCacheFacade } from "../CacheFacade" */
20
+ /** @import { ItemCacheFacade } from "./CacheFacade" */
20
21
  /** @import Compiler from "../Compiler" */
21
22
  /**
22
23
  * @import FileSystemInfo, {
23
24
  * Snapshot,
24
25
  * SnapshotOptions
25
- * } from "../FileSystemInfo"
26
+ * } from "../fs/FileSystemInfo"
26
27
  */
27
- /** @import { ResolveOptionsWithDependencyType } from "../ResolverFactory" */
28
28
  /**
29
29
  * @import {
30
30
  * ObjectDeserializerContext,
@@ -127,6 +127,10 @@ class ResolverCachePlugin {
127
127
  let fileSystemInfo;
128
128
  /** @type {SnapshotOptions | undefined} */
129
129
  let snapshotOptions;
130
+ // paths the watcher reported for this build; a snapshot can miss them when
131
+ // the resolve read a cached file system state, e.g. inside a managed path
132
+ /** @type {Set<string> | undefined} */
133
+ let changedPaths;
130
134
  let realResolves = 0;
131
135
  let cachedResolves = 0;
132
136
  let cacheInvalidResolves = 0;
@@ -136,10 +140,17 @@ class ResolverCachePlugin {
136
140
  compiler.hooks.shutdown.tap(PLUGIN_NAME, () => {
137
141
  fileSystemInfo = undefined;
138
142
  snapshotOptions = undefined;
143
+ changedPaths = undefined;
139
144
  });
140
145
  compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
141
146
  snapshotOptions = compilation.options.snapshot.resolve;
142
147
  fileSystemInfo = compilation.fileSystemInfo;
148
+ const { modifiedFiles, removedFiles } = compiler;
149
+ changedPaths =
150
+ (modifiedFiles && modifiedFiles.size > 0) ||
151
+ (removedFiles && removedFiles.size > 0)
152
+ ? new Set([...(modifiedFiles || []), ...(removedFiles || [])])
153
+ : undefined;
143
154
  compilation.hooks.finishModules.tap(PLUGIN_NAME, () => {
144
155
  if (realResolves + cachedResolves > 0) {
145
156
  const logger = compilation.getLogger(`webpack.${PLUGIN_NAME}`);
@@ -156,6 +167,24 @@ class ResolverCachePlugin {
156
167
  });
157
168
  });
158
169
 
170
+ /**
171
+ * @param {InstanceType<Snapshot>} snapshot snapshot of a cached resolve
172
+ * @returns {boolean} true, when the watcher reported one of its paths
173
+ */
174
+ const dependsOnChangedPath = (snapshot) => {
175
+ if (changedPaths === undefined) return false;
176
+ for (const iterable of [
177
+ snapshot.getMissingIterable(),
178
+ snapshot.getFileIterable(),
179
+ snapshot.getContextIterable()
180
+ ]) {
181
+ for (const item of iterable) {
182
+ if (changedPaths.has(item)) return true;
183
+ }
184
+ }
185
+ return false;
186
+ };
187
+
159
188
  /** @typedef {(err?: Error | null, resolveRequest?: ResolveRequest | null) => void} Callback */
160
189
  /** @typedef {ResolveRequest & { _ResolverCachePluginCacheMiss: true }} ResolveRequestWithCacheMiss */
161
190
 
@@ -226,9 +255,20 @@ class ResolverCachePlugin {
226
255
  const fileDependencies = newResolveContext.fileDependencies;
227
256
  const contextDependencies = newResolveContext.contextDependencies;
228
257
  const missingDependencies = newResolveContext.missingDependencies;
229
- // Only reachable past the `!fileSystemInfo` guard on the resolve tap.
230
- const fsInfo = /** @type {FileSystemInfo} */ (fileSystemInfo);
231
- fsInfo.createSnapshot(
258
+ const resolveResult = withYield ? yieldResult : result;
259
+ // the compiler was closed while resolving, e.g. after a bailed build
260
+ if (!fileSystemInfo) {
261
+ if (withYield && result) {
262
+ /** @type {ResolveRequest[]} */
263
+ (yieldResult).push(result);
264
+ }
265
+ return callback(
266
+ null,
267
+ /** @type {ResolveRequest} */
268
+ (resolveResult)
269
+ );
270
+ }
271
+ fileSystemInfo.createSnapshot(
232
272
  resolveTime,
233
273
  /** @type {Dependencies} */
234
274
  (fileDependencies),
@@ -239,7 +279,6 @@ class ResolverCachePlugin {
239
279
  snapshotOptions,
240
280
  (err, snapshot) => {
241
281
  if (err) return callback(err);
242
- const resolveResult = withYield ? yieldResult : result;
243
282
  // since we intercept resolve hook
244
283
  // we still can get result in callback
245
284
  if (withYield && result) {
@@ -286,9 +325,7 @@ class ResolverCachePlugin {
286
325
  const activeRequests = new Map();
287
326
  /** @type {Map<string, [ActiveRequest[], Yield[]]>} */
288
327
  const activeRequestsWithYield = new Map();
289
- const hook =
290
- /** @type {SyncHook<[Resolver, ResolveOptions, ResolveOptionsWithDependencyType]>} */
291
- (_hook);
328
+ const hook = _hook;
292
329
  hook.tap(PLUGIN_NAME, (resolver, options, userOptions) => {
293
330
  if (
294
331
  /** @type {ResolveOptions & { cache: boolean }} */
@@ -296,7 +333,10 @@ class ResolverCachePlugin {
296
333
  ) {
297
334
  return;
298
335
  }
299
- const optionsIdent = objectToString(userOptions, false);
336
+ const { key: optionsIdent, persistent } =
337
+ getResolveOptionsKey(userOptions);
338
+ // an identity key could name another plugin in the next process
339
+ if (!persistent) return;
300
340
  const cacheWithContext =
301
341
  options.cacheWithContext !== undefined
302
342
  ? options.cacheWithContext
@@ -412,6 +452,20 @@ class ResolverCachePlugin {
412
452
  const processCacheResult = (err, cacheEntry) => {
413
453
  if (err) return done(err);
414
454
 
455
+ // the compiler was closed while reading the cache
456
+ if (
457
+ cacheEntry &&
458
+ (!fileSystemInfo || dependsOnChangedPath(cacheEntry.snapshot))
459
+ ) {
460
+ cacheInvalidResolves++;
461
+ return doRealResolve(
462
+ itemCache,
463
+ resolver,
464
+ resolveContext,
465
+ request,
466
+ done
467
+ );
468
+ }
415
469
  if (cacheEntry) {
416
470
  const { snapshot, result } = cacheEntry;
417
471
  const fsInfo = /** @type {FileSystemInfo} */ (fileSystemInfo);
@@ -5,7 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- /** @import { Etag } from "../Cache" */
8
+ /** @import { Etag } from "./Cache" */
9
9
 
10
10
  class MergedEtag {
11
11
  /**