@depup/webpack 5.106.0-depup.0 → 5.109.0-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (667) hide show
  1. package/README.md +9 -11
  2. package/changes.json +16 -24
  3. package/hot/dev-server.js +2 -0
  4. package/lib/APIPlugin.js +60 -35
  5. package/lib/AsyncDependenciesBlock.js +3 -0
  6. package/lib/AutomaticPrefetchPlugin.js +6 -1
  7. package/lib/BannerPlugin.js +13 -5
  8. package/lib/Cache.js +27 -5
  9. package/lib/CacheFacade.js +41 -0
  10. package/lib/Chunk.js +71 -25
  11. package/lib/ChunkGraph.js +141 -9
  12. package/lib/ChunkGroup.js +115 -28
  13. package/lib/ChunkTemplate.js +9 -0
  14. package/lib/CircularModulesPlugin.js +190 -0
  15. package/lib/CleanPlugin.js +23 -26
  16. package/lib/CodeGenerationResults.js +19 -0
  17. package/lib/CompatibilityPlugin.js +54 -37
  18. package/lib/Compilation.js +635 -107
  19. package/lib/Compiler.js +93 -31
  20. package/lib/ConcatenationScope.js +34 -4
  21. package/lib/ConditionalInitFragment.js +6 -0
  22. package/lib/ConstPlugin.js +15 -12
  23. package/lib/ContextExclusionPlugin.js +3 -1
  24. package/lib/ContextModule.js +345 -55
  25. package/lib/ContextModuleFactory.js +193 -51
  26. package/lib/ContextReplacementPlugin.js +8 -1
  27. package/lib/DefinePlugin.js +498 -127
  28. package/lib/DependenciesBlock.js +6 -1
  29. package/lib/Dependency.js +159 -11
  30. package/lib/DependencyTemplate.js +7 -1
  31. package/lib/DependencyTemplates.js +4 -0
  32. package/lib/DotenvPlugin.js +3 -0
  33. package/lib/DynamicEntryPlugin.js +3 -1
  34. package/lib/EntryOptionPlugin.js +42 -2
  35. package/lib/EntryPlugin.js +4 -1
  36. package/lib/Entrypoint.js +5 -1
  37. package/lib/EnvironmentPlugin.js +3 -2
  38. package/lib/ErrorHelpers.js +7 -0
  39. package/lib/EvalDevToolModulePlugin.js +3 -1
  40. package/lib/EvalSourceMapDevToolPlugin.js +11 -11
  41. package/lib/ExportsInfo.js +399 -108
  42. package/lib/ExportsInfoApiPlugin.js +4 -3
  43. package/lib/ExternalModule.js +376 -78
  44. package/lib/ExternalModuleFactoryPlugin.js +75 -3
  45. package/lib/ExternalsPlugin.js +3 -1
  46. package/lib/FileSystemInfo.js +575 -149
  47. package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
  48. package/lib/FlagDependencyExportsPlugin.js +82 -9
  49. package/lib/FlagDependencyUsagePlugin.js +92 -6
  50. package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
  51. package/lib/Generator.js +24 -3
  52. package/lib/HotModuleReplacementPlugin.js +110 -44
  53. package/lib/IgnorePlugin.js +5 -2
  54. package/lib/IgnoreWarningsPlugin.js +2 -1
  55. package/lib/InitFragment.js +15 -0
  56. package/lib/JavascriptMetaInfoPlugin.js +9 -6
  57. package/lib/LazyBarrel.js +389 -0
  58. package/lib/LibraryTemplatePlugin.js +2 -1
  59. package/lib/LoaderOptionsPlugin.js +3 -1
  60. package/lib/LoaderTargetPlugin.js +3 -1
  61. package/lib/MainTemplate.js +15 -0
  62. package/lib/ManifestPlugin.js +9 -2
  63. package/lib/Module.js +121 -60
  64. package/lib/ModuleFactory.js +6 -1
  65. package/lib/ModuleFilenameHelpers.js +5 -2
  66. package/lib/ModuleGraph.js +69 -2
  67. package/lib/ModuleGraphConnection.js +9 -0
  68. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  69. package/lib/ModuleNotFoundError.js +3 -83
  70. package/lib/ModuleProfile.js +27 -1
  71. package/lib/ModuleSourceTypeConstants.js +52 -19
  72. package/lib/ModuleTemplate.js +10 -0
  73. package/lib/ModuleTypeConstants.js +20 -4
  74. package/lib/MultiCompiler.js +59 -4
  75. package/lib/MultiStats.js +9 -0
  76. package/lib/MultiWatching.js +6 -0
  77. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  78. package/lib/NodeStuffPlugin.js +78 -46
  79. package/lib/NormalModule.js +485 -181
  80. package/lib/NormalModuleFactory.js +148 -29
  81. package/lib/NormalModuleReplacementPlugin.js +3 -1
  82. package/lib/NullFactory.js +1 -0
  83. package/lib/OptionsApply.js +1 -0
  84. package/lib/Parser.js +3 -1
  85. package/lib/PlatformPlugin.js +2 -1
  86. package/lib/PrefetchPlugin.js +4 -1
  87. package/lib/ProgressPlugin.js +351 -161
  88. package/lib/ProvidePlugin.js +6 -3
  89. package/lib/RawModule.js +32 -16
  90. package/lib/RecordIdsPlugin.js +9 -0
  91. package/lib/RequestShortener.js +8 -0
  92. package/lib/ResolverFactory.js +5 -0
  93. package/lib/RuntimeGlobals.js +58 -5
  94. package/lib/RuntimeModule.js +22 -7
  95. package/lib/RuntimePlugin.js +104 -26
  96. package/lib/RuntimeTemplate.js +616 -37
  97. package/lib/SelfModuleFactory.js +3 -0
  98. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  99. package/lib/SourceMapDevToolPlugin.js +341 -63
  100. package/lib/Stats.js +6 -0
  101. package/lib/Template.js +29 -3
  102. package/lib/TemplatedPathPlugin.js +505 -138
  103. package/lib/UseStrictPlugin.js +3 -2
  104. package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
  105. package/lib/WarnDeprecatedOptionPlugin.js +6 -2
  106. package/lib/WarnNoModeSetPlugin.js +18 -2
  107. package/lib/WatchIgnorePlugin.js +5 -1
  108. package/lib/Watching.js +25 -3
  109. package/lib/WebpackError.js +3 -74
  110. package/lib/WebpackIsIncludedPlugin.js +4 -2
  111. package/lib/WebpackOptionsApply.js +88 -25
  112. package/lib/WebpackOptionsDefaulter.js +1 -0
  113. package/lib/asset/AssetBytesGenerator.js +28 -10
  114. package/lib/asset/AssetBytesParser.js +1 -0
  115. package/lib/asset/AssetGenerator.js +199 -60
  116. package/lib/asset/AssetModule.js +47 -0
  117. package/lib/asset/AssetModulesPlugin.js +115 -24
  118. package/lib/asset/AssetParser.js +4 -2
  119. package/lib/asset/AssetSourceGenerator.js +26 -8
  120. package/lib/asset/AssetSourceParser.js +1 -0
  121. package/lib/asset/RawDataUrlModule.js +23 -13
  122. package/lib/asset/WebManifestGenerator.js +164 -0
  123. package/lib/asset/WebManifestParser.js +130 -0
  124. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  125. package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
  126. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  127. package/lib/async-modules/isGeneratorLowered.js +26 -0
  128. package/lib/buildChunkGraph.js +107 -15
  129. package/lib/bun/BunTargetPlugin.js +42 -0
  130. package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
  131. package/lib/cache/AddManagedPathsPlugin.js +5 -1
  132. package/lib/cache/IdleFileCachePlugin.js +6 -1
  133. package/lib/cache/MemoryCachePlugin.js +1 -1
  134. package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
  135. package/lib/cache/PackFileCacheStrategy.js +43 -7
  136. package/lib/cache/ResolverCachePlugin.js +12 -1
  137. package/lib/cache/getLazyHashedEtag.js +13 -2
  138. package/lib/cache/mergeEtags.js +4 -0
  139. package/lib/cli.js +142 -20
  140. package/lib/config/browserslistTargetHandler.js +141 -0
  141. package/lib/config/defaults.js +591 -41
  142. package/lib/config/defineConfig.js +31 -0
  143. package/lib/config/normalization.js +46 -1
  144. package/lib/config/target.js +200 -2
  145. package/lib/container/ContainerEntryDependency.js +2 -0
  146. package/lib/container/ContainerEntryModule.js +27 -14
  147. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  148. package/lib/container/ContainerExposedDependency.js +6 -2
  149. package/lib/container/ContainerPlugin.js +2 -1
  150. package/lib/container/ContainerReferencePlugin.js +3 -2
  151. package/lib/container/FallbackDependency.js +9 -7
  152. package/lib/container/FallbackItemDependency.js +1 -0
  153. package/lib/container/FallbackModule.js +22 -9
  154. package/lib/container/FallbackModuleFactory.js +1 -0
  155. package/lib/container/ModuleFederationPlugin.js +12 -26
  156. package/lib/container/RemoteModule.js +33 -10
  157. package/lib/container/RemoteRuntimeModule.js +15 -12
  158. package/lib/container/RemoteToExternalDependency.js +1 -0
  159. package/lib/container/options.js +7 -0
  160. package/lib/css/CssGenerator.js +534 -272
  161. package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
  162. package/lib/css/CssLoadingRuntimeModule.js +156 -77
  163. package/lib/{CssModule.js → css/CssModule.js} +72 -37
  164. package/lib/css/CssModulesPlugin.js +356 -204
  165. package/lib/css/CssParser.js +3452 -1950
  166. package/lib/css/syntax.js +4058 -0
  167. package/lib/debug/ProfilingPlugin.js +33 -2
  168. package/lib/deno/DenoTargetPlugin.js +41 -0
  169. package/lib/dependencies/AMDDefineDependency.js +29 -17
  170. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
  171. package/lib/dependencies/AMDPlugin.js +6 -3
  172. package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
  173. package/lib/dependencies/AMDRequireContextDependency.js +10 -11
  174. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  175. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
  176. package/lib/dependencies/AMDRequireDependency.js +28 -20
  177. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  178. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  179. package/lib/dependencies/CachedConstDependency.js +9 -1
  180. package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
  181. package/lib/dependencies/CommonJsExportRequireDependency.js +138 -38
  182. package/lib/dependencies/CommonJsExportsDependency.js +74 -20
  183. package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
  184. package/lib/dependencies/CommonJsFullRequireDependency.js +62 -27
  185. package/lib/dependencies/CommonJsImportsParserPlugin.js +187 -24
  186. package/lib/dependencies/CommonJsPlugin.js +7 -4
  187. package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
  188. package/lib/dependencies/CommonJsRequireDependency.js +135 -13
  189. package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
  190. package/lib/dependencies/ConstDependency.js +22 -12
  191. package/lib/dependencies/ContextDependency.js +13 -2
  192. package/lib/dependencies/ContextDependencyHelpers.js +7 -4
  193. package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
  194. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  195. package/lib/dependencies/ContextElementDependency.js +27 -14
  196. package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
  197. package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
  198. package/lib/dependencies/CriticalDependencyWarning.js +3 -1
  199. package/lib/dependencies/CssIcssExportDependency.js +682 -368
  200. package/lib/dependencies/CssIcssImportDependency.js +62 -17
  201. package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
  202. package/lib/dependencies/CssImportDependency.js +37 -1
  203. package/lib/dependencies/CssUrlDependency.js +87 -14
  204. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  205. package/lib/dependencies/DllEntryDependency.js +12 -13
  206. package/lib/dependencies/DynamicExports.js +5 -0
  207. package/lib/dependencies/EntryDependency.js +1 -0
  208. package/lib/dependencies/ExportBindingInitFragment.js +164 -0
  209. package/lib/dependencies/ExportsInfoDependency.js +18 -12
  210. package/lib/dependencies/ExternalModuleDependency.js +13 -5
  211. package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
  212. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
  213. package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
  214. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
  215. package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
  216. package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
  217. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +32 -2
  218. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
  219. package/lib/dependencies/HarmonyExportExpressionDependency.js +140 -46
  220. package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
  221. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +253 -37
  222. package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
  223. package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
  224. package/lib/dependencies/HarmonyExports.js +6 -1
  225. package/lib/dependencies/HarmonyImportDependency.js +59 -3
  226. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
  227. package/lib/dependencies/HarmonyImportGuard.js +426 -0
  228. package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
  229. package/lib/dependencies/HarmonyImportSpecifierDependency.js +136 -17
  230. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
  231. package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
  232. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
  233. package/lib/dependencies/HtmlEntryDependency.js +1295 -0
  234. package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
  235. package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
  236. package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
  237. package/lib/dependencies/HtmlSourceDependency.js +172 -0
  238. package/lib/dependencies/ImportContextDependency.js +9 -9
  239. package/lib/dependencies/ImportDependency.js +92 -3
  240. package/lib/dependencies/ImportEagerDependency.js +2 -0
  241. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  242. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
  243. package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
  244. package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
  245. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
  246. package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
  247. package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
  248. package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
  249. package/lib/dependencies/ImportMetaPlugin.js +595 -209
  250. package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
  251. package/lib/dependencies/ImportParserPlugin.js +114 -27
  252. package/lib/dependencies/ImportPhase.js +17 -11
  253. package/lib/dependencies/ImportPlugin.js +2 -1
  254. package/lib/dependencies/ImportWeakDependency.js +3 -0
  255. package/lib/dependencies/JsonExportsDependency.js +15 -10
  256. package/lib/dependencies/LoaderDependency.js +2 -0
  257. package/lib/dependencies/LoaderImportDependency.js +3 -0
  258. package/lib/dependencies/LoaderPlugin.js +9 -2
  259. package/lib/dependencies/LocalModule.js +15 -12
  260. package/lib/dependencies/LocalModuleDependency.js +15 -13
  261. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  262. package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
  263. package/lib/dependencies/ModuleDependency.js +14 -0
  264. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  265. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  266. package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
  267. package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
  268. package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
  269. package/lib/dependencies/NullDependency.js +2 -0
  270. package/lib/dependencies/PrefetchDependency.js +1 -0
  271. package/lib/dependencies/ProvidedDependency.js +36 -27
  272. package/lib/dependencies/PureExpressionDependency.js +14 -10
  273. package/lib/dependencies/RequireContextDependency.js +1 -0
  274. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
  275. package/lib/dependencies/RequireContextPlugin.js +2 -1
  276. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  277. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
  278. package/lib/dependencies/RequireEnsureDependency.js +16 -13
  279. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  280. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  281. package/lib/dependencies/RequireHeaderDependency.js +7 -4
  282. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  283. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
  284. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  285. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
  286. package/lib/dependencies/RequireResolveContextDependency.js +10 -11
  287. package/lib/dependencies/RequireResolveDependency.js +2 -0
  288. package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
  289. package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
  290. package/lib/dependencies/StaticExportsDependency.js +13 -10
  291. package/lib/dependencies/SystemPlugin.js +9 -6
  292. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  293. package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
  294. package/lib/dependencies/URLContextDependency.js +8 -7
  295. package/lib/dependencies/URLDependency.js +157 -33
  296. package/lib/dependencies/URLPlugin.js +2 -0
  297. package/lib/dependencies/UnsupportedDependency.js +12 -13
  298. package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
  299. package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
  300. package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
  301. package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
  302. package/lib/dependencies/WorkerDependency.js +111 -27
  303. package/lib/dependencies/WorkletDependency.js +278 -0
  304. package/lib/dependencies/getFunctionExpression.js +1 -0
  305. package/lib/dependencies/processExportInfo.js +14 -11
  306. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
  307. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
  308. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
  309. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
  310. package/lib/{DllModule.js → dll/DllModule.js} +36 -24
  311. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
  312. package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
  313. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
  314. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
  315. package/lib/electron/ElectronTargetPlugin.js +24 -5
  316. package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
  317. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
  318. package/lib/errors/BuildCycleError.js +1 -1
  319. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  320. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  321. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
  322. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
  323. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
  324. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
  325. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
  326. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
  327. package/lib/errors/JSONParseError.js +115 -0
  328. package/lib/errors/LoaderLoadingError.js +20 -0
  329. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
  330. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
  331. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
  332. package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
  333. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
  334. package/lib/errors/ModuleNotFoundError.js +94 -0
  335. package/lib/errors/ModuleParseError.js +141 -0
  336. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
  337. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
  338. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
  339. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
  340. package/lib/errors/NonErrorEmittedError.js +30 -0
  341. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
  342. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
  343. package/lib/errors/WebpackError.js +84 -0
  344. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  345. package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
  346. package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
  347. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +71 -49
  348. package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
  349. package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
  350. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
  351. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  352. package/lib/hmr/LazyCompilationPlugin.js +154 -7
  353. package/lib/hmr/lazyCompilationBackend.js +34 -8
  354. package/lib/html/HtmlGenerator.js +1470 -0
  355. package/lib/html/HtmlModule.js +41 -0
  356. package/lib/html/HtmlModulesPlugin.js +1111 -0
  357. package/lib/html/HtmlParser.js +1970 -0
  358. package/lib/html/favicon.svg +1 -0
  359. package/lib/html/syntax.js +9020 -0
  360. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  361. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  362. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  363. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  364. package/lib/ids/IdHelpers.js +25 -2
  365. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  366. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  367. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  368. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  369. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  370. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  371. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  372. package/lib/index.js +66 -15
  373. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
  374. package/lib/javascript/BasicEvaluatedExpression.js +370 -49
  375. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  376. package/lib/javascript/ChunkHelpers.js +1 -0
  377. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  378. package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
  379. package/lib/javascript/JavascriptGenerator.js +213 -51
  380. package/lib/javascript/JavascriptModule.js +54 -0
  381. package/lib/javascript/JavascriptModulesPlugin.js +579 -183
  382. package/lib/javascript/JavascriptParser.js +1289 -462
  383. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  384. package/lib/javascript/StartupHelpers.js +5 -0
  385. package/lib/javascript/syntax.js +4380 -0
  386. package/lib/json/JsonData.js +5 -0
  387. package/lib/json/JsonGenerator.js +21 -0
  388. package/lib/json/JsonModule.js +40 -0
  389. package/lib/json/JsonModulesPlugin.js +8 -1
  390. package/lib/json/JsonParser.js +18 -27
  391. package/lib/library/AbstractLibraryPlugin.js +17 -2
  392. package/lib/library/AmdLibraryPlugin.js +8 -0
  393. package/lib/library/AssignLibraryPlugin.js +21 -3
  394. package/lib/library/EnableLibraryPlugin.js +8 -2
  395. package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
  396. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
  397. package/lib/library/JsonpLibraryPlugin.js +8 -0
  398. package/lib/library/ModuleLibraryPlugin.js +154 -7
  399. package/lib/library/SystemLibraryPlugin.js +11 -3
  400. package/lib/library/UmdLibraryPlugin.js +16 -0
  401. package/lib/loaders/LoaderRunner.js +714 -0
  402. package/lib/loaders/loadLoader.js +100 -0
  403. package/lib/logging/Logger.js +17 -0
  404. package/lib/logging/createConsoleLogger.js +7 -0
  405. package/lib/logging/runtime.js +2 -0
  406. package/lib/logging/truncateArgs.js +2 -0
  407. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  408. package/lib/node/NodeEnvironmentPlugin.js +7 -3
  409. package/lib/node/NodeSourcePlugin.js +1 -1
  410. package/lib/node/NodeTargetPlugin.js +4 -63
  411. package/lib/node/NodeTemplatePlugin.js +3 -1
  412. package/lib/node/NodeWatchFileSystem.js +40 -22
  413. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
  414. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +23 -1
  415. package/lib/node/ReadFileCompileWasmPlugin.js +18 -1
  416. package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
  417. package/lib/node/nodeBuiltins.js +80 -0
  418. package/lib/node/nodeConsole.js +116 -64
  419. package/lib/optimize/AggressiveMergingPlugin.js +3 -1
  420. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  421. package/lib/optimize/ConcatenatedModule.js +585 -116
  422. package/lib/optimize/ConstExportsPlugin.js +211 -0
  423. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  424. package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
  425. package/lib/optimize/InlineExports.js +178 -0
  426. package/lib/optimize/InnerGraph.js +374 -262
  427. package/lib/optimize/InnerGraphPlugin.js +246 -117
  428. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  429. package/lib/optimize/MangleExportsPlugin.js +5 -1
  430. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  431. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  432. package/lib/optimize/MinMaxSizeWarning.js +5 -4
  433. package/lib/optimize/ModuleConcatenationPlugin.js +159 -34
  434. package/lib/optimize/RealContentHashPlugin.js +125 -50
  435. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  436. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  437. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  438. package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
  439. package/lib/optimize/SplitChunksPlugin.js +54 -6
  440. package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
  441. package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
  442. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  443. package/lib/performance/SizeLimitsPlugin.js +8 -2
  444. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  445. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
  446. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  447. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
  448. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
  449. package/lib/prefetch/ResourceHintPlugin.js +663 -0
  450. package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
  451. package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
  452. package/lib/prefetch/parseResourceHintOptions.js +103 -0
  453. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  454. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  455. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  456. package/lib/rules/RuleSetCompiler.js +132 -0
  457. package/lib/rules/UseEffectRulePlugin.js +10 -3
  458. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
  459. package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
  460. package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
  461. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  462. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  463. package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
  464. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
  465. package/lib/runtime/CompatRuntimeModule.js +2 -0
  466. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
  467. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  468. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  469. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
  470. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  471. package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
  472. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  473. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  474. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
  475. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
  476. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  477. package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
  478. package/lib/runtime/HelperRuntimeModule.js +5 -0
  479. package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
  480. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
  481. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
  482. package/lib/runtime/NonceRuntimeModule.js +1 -0
  483. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
  484. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  485. package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
  486. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  487. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
  488. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  489. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
  490. package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
  491. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  492. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  493. package/lib/runtime/WorkerRuntimeModule.js +33 -0
  494. package/lib/schemes/DataUriPlugin.js +14 -2
  495. package/lib/schemes/FileUriPlugin.js +1 -1
  496. package/lib/schemes/HttpUriPlugin.js +86 -4
  497. package/lib/schemes/VirtualUrlPlugin.js +8 -4
  498. package/lib/serialization/AggregateErrorSerializer.js +9 -6
  499. package/lib/serialization/ArraySerializer.js +6 -8
  500. package/lib/serialization/BinaryMiddleware.js +552 -463
  501. package/lib/serialization/DateObjectSerializer.js +4 -2
  502. package/lib/serialization/ErrorObjectSerializer.js +10 -6
  503. package/lib/serialization/FileMiddleware.js +50 -3
  504. package/lib/serialization/MapObjectSerializer.js +7 -9
  505. package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
  506. package/lib/serialization/ObjectMiddleware.js +73 -13
  507. package/lib/serialization/PlainObjectSerializer.js +16 -8
  508. package/lib/serialization/RegExpObjectSerializer.js +4 -2
  509. package/lib/serialization/Serializer.js +6 -0
  510. package/lib/serialization/SerializerMiddleware.js +14 -2
  511. package/lib/serialization/SetObjectSerializer.js +6 -8
  512. package/lib/serialization/SingleItemMiddleware.js +3 -0
  513. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  514. package/lib/sharing/ConsumeSharedModule.js +21 -7
  515. package/lib/sharing/ConsumeSharedPlugin.js +11 -11
  516. package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
  517. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  518. package/lib/sharing/ProvideSharedDependency.js +34 -15
  519. package/lib/sharing/ProvideSharedModule.js +42 -12
  520. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  521. package/lib/sharing/ProvideSharedPlugin.js +13 -8
  522. package/lib/sharing/SharePlugin.js +5 -1
  523. package/lib/sharing/ShareRuntimeModule.js +19 -16
  524. package/lib/sharing/resolveMatchedConfigs.js +6 -2
  525. package/lib/sharing/utils.js +9 -1
  526. package/lib/stats/DefaultStatsFactoryPlugin.js +94 -12
  527. package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
  528. package/lib/stats/DefaultStatsPrinterPlugin.js +64 -18
  529. package/lib/stats/StatsFactory.js +39 -18
  530. package/lib/stats/StatsPrinter.js +16 -2
  531. package/lib/typescript/TypeScriptPlugin.js +210 -0
  532. package/lib/url/URLParserPlugin.js +111 -23
  533. package/lib/util/ArrayHelpers.js +1 -0
  534. package/lib/util/ArrayQueue.js +10 -5
  535. package/lib/util/AsyncQueue.js +154 -74
  536. package/lib/util/Hash.js +2 -2
  537. package/lib/util/IterableHelpers.js +3 -0
  538. package/lib/util/LazyBucketSortedSet.js +26 -0
  539. package/lib/util/LazySet.js +45 -4
  540. package/lib/util/LocConverter.js +64 -0
  541. package/lib/util/ParallelismFactorCalculator.js +1 -0
  542. package/lib/util/Queue.js +6 -3
  543. package/lib/util/Semaphore.js +15 -1
  544. package/lib/util/SetHelpers.js +4 -1
  545. package/lib/util/SortableSet.js +7 -1
  546. package/lib/util/SourceProcessor.js +119 -0
  547. package/lib/util/StackedCacheMap.js +20 -3
  548. package/lib/util/StackedMap.js +162 -43
  549. package/lib/util/StringXor.js +1 -1
  550. package/lib/util/TupleQueue.js +7 -3
  551. package/lib/util/TupleSet.js +14 -0
  552. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  553. package/lib/util/WeakTupleMap.js +60 -1
  554. package/lib/util/binarySearchBounds.js +3 -2
  555. package/lib/util/chainedImports.js +3 -3
  556. package/lib/util/cleverMerge.js +19 -2
  557. package/lib/util/comparators.js +35 -4
  558. package/lib/util/compileBooleanMatcher.js +9 -0
  559. package/lib/util/concatenate.js +80 -24
  560. package/lib/util/conventions.js +46 -1
  561. package/lib/util/createHash.js +0 -1
  562. package/lib/util/createHooksRegistry.js +43 -0
  563. package/lib/util/createMappings.js +118 -0
  564. package/lib/util/dataURL.js +3 -2
  565. package/lib/util/deprecation.js +19 -0
  566. package/lib/util/deterministicGrouping.js +46 -17
  567. package/lib/util/extractSourceMap.js +2 -1
  568. package/lib/util/extractUrlAndGlobal.js +1 -0
  569. package/lib/util/findGraphRoots.js +7 -0
  570. package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
  571. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
  572. package/lib/util/fs.js +87 -14
  573. package/lib/util/generateDebugId.js +1 -0
  574. package/lib/util/globUtils.js +710 -0
  575. package/lib/util/hash/BatchedHash.js +1 -0
  576. package/lib/util/hash/BulkUpdateHash.js +1 -0
  577. package/lib/util/hash/DebugHash.js +1 -0
  578. package/lib/util/hash/hash-digest.js +32 -15
  579. package/lib/util/hash/md4.js +1 -1
  580. package/lib/util/hash/wasm-hash.js +5 -0
  581. package/lib/util/hash/xxhash64.js +1 -1
  582. package/lib/util/identifier.js +97 -6
  583. package/lib/util/implicitTypeLoaderFallback.js +62 -0
  584. package/lib/util/internalSerializables.js +102 -60
  585. package/lib/util/magicComment.js +149 -7
  586. package/lib/util/makeSerializable.js +7 -0
  587. package/lib/util/memoize.js +2 -0
  588. package/lib/util/mimeTypes.js +176 -0
  589. package/lib/util/nonNumericOnlyHash.js +31 -1
  590. package/lib/util/numberHash.js +2 -2
  591. package/lib/util/parseJson.js +41 -0
  592. package/lib/util/processAsyncTree.js +8 -0
  593. package/lib/util/property.js +9 -2
  594. package/lib/util/publicPathPlaceholder.js +64 -0
  595. package/lib/util/registerExternalSerializer.js +24 -4
  596. package/lib/util/removeBOM.js +1 -0
  597. package/lib/util/runtime.js +32 -0
  598. package/lib/util/semver.js +15 -0
  599. package/lib/util/serialization.js +2 -0
  600. package/lib/util/smartGrouping.js +8 -0
  601. package/lib/util/source.js +23 -0
  602. package/lib/util/topologicalSort.js +69 -0
  603. package/lib/validateSchema.js +1 -0
  604. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  605. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
  606. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
  607. package/lib/wasm-async/AsyncWasmModule.js +77 -0
  608. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  609. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
  610. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
  611. package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
  612. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
  613. package/lib/wasm-sync/SyncWasmModule.js +39 -0
  614. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
  615. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
  616. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
  617. package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
  618. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
  619. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  620. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
  621. package/lib/wasm-sync/WebAssemblyParser.js +9 -3
  622. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  623. package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
  624. package/lib/web/FetchCompileWasmPlugin.js +27 -1
  625. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  626. package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
  627. package/lib/web/JsonpTemplatePlugin.js +2 -1
  628. package/lib/webpack.js +78 -1
  629. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  630. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
  631. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  632. package/module.d.ts +21 -0
  633. package/package.json +79 -77
  634. package/schemas/WebpackOptions.check.js +1 -1
  635. package/schemas/WebpackOptions.json +1117 -79
  636. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  637. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  638. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  639. package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
  640. package/schemas/plugins/HtmlParserOptions.check.js +6 -0
  641. package/schemas/plugins/HtmlParserOptions.json +3 -0
  642. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  643. package/schemas/plugins/ProgressPlugin.json +38 -0
  644. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  645. package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
  646. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  647. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  648. package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
  649. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
  650. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  651. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  652. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  653. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  654. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  655. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  656. package/types.d.ts +8608 -1159
  657. package/lib/CaseSensitiveModulesWarning.js +0 -72
  658. package/lib/GraphHelpers.js +0 -46
  659. package/lib/ModuleParseError.js +0 -125
  660. package/lib/NoModeWarning.js +0 -23
  661. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
  662. package/lib/css/walkCssTokens.js +0 -1843
  663. package/lib/util/AppendOnlyStackedSet.js +0 -78
  664. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  665. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  666. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  667. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
@@ -6,9 +6,9 @@
6
6
  "use strict";
7
7
 
8
8
  const util = require("util");
9
+ const { version: WEBPACK_VERSION } = require("../../package.json");
9
10
  const { WEBPACK_MODULE_TYPE_RUNTIME } = require("../ModuleTypeConstants");
10
11
  const ModuleDependency = require("../dependencies/ModuleDependency");
11
- const formatLocation = require("../formatLocation");
12
12
  const { LogType } = require("../logging/Logger");
13
13
  const AggressiveSplittingPlugin = require("../optimize/AggressiveSplittingPlugin");
14
14
  const SizeLimitsPlugin = require("../performance/SizeLimitsPlugin");
@@ -22,6 +22,7 @@ const {
22
22
  compareSelect,
23
23
  concatComparators
24
24
  } = require("../util/comparators");
25
+ const formatLocation = require("../util/formatLocation");
25
26
  const { makePathsRelative, parseResource } = require("../util/identifier");
26
27
 
27
28
  /** @typedef {import("webpack-sources").Source} Source */
@@ -48,23 +49,26 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
48
49
  /** @typedef {import("../Module").BuildInfo} BuildInfo */
49
50
  /** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
50
51
  /** @typedef {import("../ModuleProfile")} ModuleProfile */
51
- /** @typedef {import("../WebpackError")} WebpackError */
52
+ /** @typedef {import("../errors/WebpackError")} WebpackError */
52
53
  /** @typedef {import("../serialization/AggregateErrorSerializer").AggregateError} AggregateError */
53
54
  /** @typedef {import("../serialization/ErrorObjectSerializer").ErrorWithCause} ErrorWithCause */
54
55
  /** @typedef {import("../ExportsInfo").ExportInfoName} ExportInfoName */
55
56
 
56
57
  /**
58
+ * Defines the shared type used by this module.
57
59
  * @template T
58
60
  * @typedef {import("../util/comparators").Comparator<T>} Comparator<T>
59
61
  */
60
62
 
61
63
  /**
64
+ * Defines the group config type used by this module.
62
65
  * @template I, G
63
66
  * @typedef {import("../util/smartGrouping").GroupConfig<I, G>} GroupConfig
64
67
  */
65
68
 
66
69
  /** @typedef {KnownStatsCompilation & Record<string, EXPECTED_ANY>} StatsCompilation */
67
70
  /**
71
+ * Defines the known stats compilation type used by this module.
68
72
  * @typedef {object} KnownStatsCompilation
69
73
  * @property {EXPECTED_ANY=} env
70
74
  * @property {string=} name
@@ -95,6 +99,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
95
99
 
96
100
  /** @typedef {KnownStatsLogging & Record<string, EXPECTED_ANY>} StatsLogging */
97
101
  /**
102
+ * Defines the known stats logging type used by this module.
98
103
  * @typedef {object} KnownStatsLogging
99
104
  * @property {StatsLoggingEntry[]} entries
100
105
  * @property {number} filteredEntries
@@ -103,6 +108,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
103
108
 
104
109
  /** @typedef {KnownStatsLoggingEntry & Record<string, EXPECTED_ANY>} StatsLoggingEntry */
105
110
  /**
111
+ * Defines the known stats logging entry type used by this module.
106
112
  * @typedef {object} KnownStatsLoggingEntry
107
113
  * @property {string} type
108
114
  * @property {string=} message
@@ -115,6 +121,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
115
121
  /** @typedef {KnownStatsAsset & Record<string, EXPECTED_ANY>} StatsAsset */
116
122
  /** @typedef {string[]} ChunkIdHints */
117
123
  /**
124
+ * Defines the known stats asset type used by this module.
118
125
  * @typedef {object} KnownStatsAsset
119
126
  * @property {string} type
120
127
  * @property {string} name
@@ -136,6 +143,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
136
143
 
137
144
  /** @typedef {KnownStatsChunkGroup & Record<string, EXPECTED_ANY>} StatsChunkGroup */
138
145
  /**
146
+ * Defines the known stats chunk group type used by this module.
139
147
  * @typedef {object} KnownStatsChunkGroup
140
148
  * @property {ChunkName=} name
141
149
  * @property {ChunkId[]=} chunks
@@ -153,6 +161,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
153
161
  /** @typedef {Module[]} ModuleIssuerPath */
154
162
  /** @typedef {KnownStatsModule & Record<string, EXPECTED_ANY>} StatsModule */
155
163
  /**
164
+ * Defines the known stats module type used by this module.
156
165
  * @typedef {object} KnownStatsModule
157
166
  * @property {string=} type
158
167
  * @property {string=} moduleType
@@ -167,6 +176,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
167
176
  * @property {number=} size
168
177
  * @property {Record<string, number>=} sizes
169
178
  * @property {boolean=} cacheable
179
+ * @property {string[]=} notCacheableReasons
170
180
  * @property {boolean=} built
171
181
  * @property {boolean=} codeGenerated
172
182
  * @property {boolean=} buildTimeExecuted
@@ -197,6 +207,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
197
207
 
198
208
  /** @typedef {KnownStatsProfile & Record<string, EXPECTED_ANY>} StatsProfile */
199
209
  /**
210
+ * Defines the known stats profile type used by this module.
200
211
  * @typedef {object} KnownStatsProfile
201
212
  * @property {number} total
202
213
  * @property {number} resolving
@@ -212,6 +223,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
212
223
 
213
224
  /** @typedef {KnownStatsModuleIssuer & Record<string, EXPECTED_ANY>} StatsModuleIssuer */
214
225
  /**
226
+ * Defines the known stats module issuer type used by this module.
215
227
  * @typedef {object} KnownStatsModuleIssuer
216
228
  * @property {string} identifier
217
229
  * @property {string} name
@@ -221,6 +233,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
221
233
 
222
234
  /** @typedef {KnownStatsModuleReason & Record<string, EXPECTED_ANY>} StatsModuleReason */
223
235
  /**
236
+ * Defines the known stats module reason type used by this module.
224
237
  * @typedef {object} KnownStatsModuleReason
225
238
  * @property {string | null} moduleIdentifier
226
239
  * @property {string | null} module
@@ -238,6 +251,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
238
251
 
239
252
  /** @typedef {KnownStatsChunk & Record<string, EXPECTED_ANY>} StatsChunk */
240
253
  /**
254
+ * Defines the known stats chunk type used by this module.
241
255
  * @typedef {object} KnownStatsChunk
242
256
  * @property {boolean} rendered
243
257
  * @property {boolean} initial
@@ -264,6 +278,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
264
278
 
265
279
  /** @typedef {KnownStatsChunkOrigin & Record<string, EXPECTED_ANY>} StatsChunkOrigin */
266
280
  /**
281
+ * Defines the known stats chunk origin type used by this module.
267
282
  * @typedef {object} KnownStatsChunkOrigin
268
283
  * @property {string} module
269
284
  * @property {string} moduleIdentifier
@@ -275,6 +290,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
275
290
 
276
291
  /** @typedef {KnownStatsModuleTraceItem & Record<string, EXPECTED_ANY>} StatsModuleTraceItem */
277
292
  /**
293
+ * Defines the known stats module trace item type used by this module.
278
294
  * @typedef {object} KnownStatsModuleTraceItem
279
295
  * @property {string=} originIdentifier
280
296
  * @property {string=} originName
@@ -287,12 +303,14 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
287
303
 
288
304
  /** @typedef {KnownStatsModuleTraceDependency & Record<string, EXPECTED_ANY>} StatsModuleTraceDependency */
289
305
  /**
306
+ * Defines the known stats module trace dependency type used by this module.
290
307
  * @typedef {object} KnownStatsModuleTraceDependency
291
308
  * @property {string=} loc
292
309
  */
293
310
 
294
311
  /** @typedef {KnownStatsError & Record<string, EXPECTED_ANY>} StatsError */
295
312
  /**
313
+ * Defines the known stats error type used by this module.
296
314
  * @typedef {object} KnownStatsError
297
315
  * @property {string} message
298
316
  * @property {string=} chunkName
@@ -315,6 +333,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
315
333
  /** @typedef {Asset & { type: string, related: PreprocessedAsset[] | undefined }} PreprocessedAsset */
316
334
 
317
335
  /**
336
+ * Defines the extractors by option type used by this module.
318
337
  * @template T
319
338
  * @template O
320
339
  * @typedef {Record<string, (object: O, data: T, context: StatsFactoryContext, options: NormalizedStatsOptions, factory: StatsFactory) => void>} ExtractorsByOption
@@ -324,6 +343,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
324
343
  /** @typedef {{ origin: Module, module: Module }} ModuleTrace */
325
344
 
326
345
  /**
346
+ * Defines the simple extractors type used by this module.
327
347
  * @typedef {object} SimpleExtractors
328
348
  * @property {ExtractorsByOption<Compilation, StatsCompilation>} compilation
329
349
  * @property {ExtractorsByOption<PreprocessedAsset, StatsAsset>} asset
@@ -344,6 +364,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
344
364
  */
345
365
 
346
366
  /**
367
+ * Returns array of values.
347
368
  * @template T
348
369
  * @template I
349
370
  * @param {Iterable<T>} items items to select from
@@ -362,6 +383,7 @@ const uniqueArray = (items, selector) => {
362
383
  };
363
384
 
364
385
  /**
386
+ * Unique ordered array.
365
387
  * @template T
366
388
  * @template I
367
389
  * @param {Iterable<T>} items items to select from
@@ -373,12 +395,14 @@ const uniqueOrderedArray = (items, selector, comparator) =>
373
395
  uniqueArray(items, selector).sort(comparator);
374
396
 
375
397
  /**
398
+ * Defines the shared type used by this module.
376
399
  * @template T
377
400
  * @template R
378
401
  * @typedef {{ [P in keyof T]: R }} MappedValues<T, R>
379
402
  */
380
403
 
381
404
  /**
405
+ * Returns mapped object.
382
406
  * @template {object} T
383
407
  * @template {object} R
384
408
  * @param {T} obj object to be mapped
@@ -395,9 +419,9 @@ const mapObject = (obj, fn) => {
395
419
  };
396
420
 
397
421
  /**
398
- * @template T
422
+ * Count with children.
399
423
  * @param {Compilation} compilation the compilation
400
- * @param {(compilation: Compilation, name: string) => T[]} getItems get items
424
+ * @param {(compilation: Compilation, name: string) => { length: number }} getItems get items
401
425
  * @returns {number} total number
402
426
  */
403
427
  const countWithChildren = (compilation, getItems) => {
@@ -730,7 +754,7 @@ const SIMPLE_EXTRACTORS = {
730
754
  object.hash = compilation.hash;
731
755
  },
732
756
  version: (object) => {
733
- object.version = require("../../package.json").version;
757
+ object.version = WEBPACK_VERSION;
734
758
  },
735
759
  env: (object, compilation, context, { _env }) => {
736
760
  object.env = _env;
@@ -987,17 +1011,16 @@ const SIMPLE_EXTRACTORS = {
987
1011
  const { type, cachedGetWarnings } = context;
988
1012
  object.warningsCount = countWithChildren(compilation, (c, childType) => {
989
1013
  if (
990
- !warningsFilter &&
991
1014
  /** @type {KnownNormalizedStatsOptions["warningsFilter"]} */
992
1015
  (warningsFilter).length === 0
993
1016
  ) {
994
- // Type is wrong, because we don't need the real value for counting
995
- return /** @type {EXPECTED_ANY[]} */ (cachedGetWarnings(c));
1017
+ return cachedGetWarnings(c);
996
1018
  }
997
1019
  return factory
998
1020
  .create(`${type}${childType}.warnings`, cachedGetWarnings(c), context)
999
1021
  .filter(
1000
1022
  /**
1023
+ * Handles the warnings count callback for this hook.
1001
1024
  * @param {StatsError} warning warning
1002
1025
  * @returns {boolean} result
1003
1026
  */
@@ -1122,6 +1145,7 @@ const SIMPLE_EXTRACTORS = {
1122
1145
  chunkGroupChildren &&
1123
1146
  chunkGroup.getChildrenByOrders(moduleGraph, chunkGraph);
1124
1147
  /**
1148
+ * Returns } Asset object.
1125
1149
  * @param {string} name Name
1126
1150
  * @returns {{ name: string, size: number }} Asset object
1127
1151
  */
@@ -1221,6 +1245,25 @@ const SIMPLE_EXTRACTORS = {
1221
1245
  },
1222
1246
  performance: (object, { chunkGroup }) => {
1223
1247
  object.isOverSizeLimit = SizeLimitsPlugin.isOverSizeLimit(chunkGroup);
1248
+ },
1249
+ chunkGroupResourceHints: (
1250
+ object,
1251
+ { name, chunkGroup },
1252
+ { compilation }
1253
+ ) => {
1254
+ // SSR frameworks consume this to inject the initial-chunk +
1255
+ // URL-asset `<link>` tags into their server-rendered HTML without
1256
+ // having to walk the chunk graph themselves. Only entrypoints
1257
+ // carry hints; split-chunk / async chunk groups are skipped.
1258
+ if (!compilation.entrypoints.get(name)) return;
1259
+
1260
+ const ResourceHintPlugin = require("../prefetch/ResourceHintPlugin");
1261
+
1262
+ const hints =
1263
+ ResourceHintPlugin.getCompilationResolver(
1264
+ compilation
1265
+ ).getEntrypointHints(name);
1266
+ if (hints.length > 0) object.resourceHints = hints;
1224
1267
  }
1225
1268
  },
1226
1269
  module: {
@@ -1277,6 +1320,9 @@ const SIMPLE_EXTRACTORS = {
1277
1320
  const warnings = module.getWarnings();
1278
1321
  const warningsCount =
1279
1322
  warnings !== undefined ? countIterable(warnings) : 0;
1323
+ const { cacheable, notCacheableReasons } = /** @type {BuildInfo} */ (
1324
+ module.buildInfo
1325
+ );
1280
1326
  /** @type {KnownStatsModule} */
1281
1327
  const statsModule = {
1282
1328
  identifier: module.identifier(),
@@ -1290,7 +1336,13 @@ const SIMPLE_EXTRACTORS = {
1290
1336
  postOrderIndex: /** @type {number} */ (
1291
1337
  moduleGraph.getPostOrderIndex(module)
1292
1338
  ),
1293
- cacheable: /** @type {BuildInfo} */ (module.buildInfo).cacheable,
1339
+ cacheable,
1340
+ notCacheableReasons:
1341
+ notCacheableReasons &&
1342
+ notCacheableReasons.map(
1343
+ (request) =>
1344
+ /** @type {string} */ (requestShortener.shorten(request))
1345
+ ),
1294
1346
  optional: module.isOptional(moduleGraph),
1295
1347
  orphan:
1296
1348
  !type.endsWith("module.modules[].module$visible") &&
@@ -1743,6 +1795,7 @@ const SORTERS = {
1743
1795
  concatComparators(
1744
1796
  compareSelect(
1745
1797
  /**
1798
+ * Handles the callback for this hook.
1746
1799
  * @param {Dependency} x dependency
1747
1800
  * @returns {DependencyLocation} location
1748
1801
  */
@@ -1771,11 +1824,13 @@ const SORTERS = {
1771
1824
  };
1772
1825
 
1773
1826
  /**
1827
+ * Defines the children type used by this module.
1774
1828
  * @template T
1775
1829
  * @typedef {T & { children?: Children<T>[] | undefined, filteredChildren?: number }} Children
1776
1830
  */
1777
1831
 
1778
1832
  /**
1833
+ * Returns item size.
1779
1834
  * @template T
1780
1835
  * @param {Children<T>} item item
1781
1836
  * @returns {number} item size
@@ -1791,6 +1846,7 @@ const getItemSize = (item) =>
1791
1846
  : 1 + getTotalSize(item.children);
1792
1847
 
1793
1848
  /**
1849
+ * Returns total size.
1794
1850
  * @template T
1795
1851
  * @param {Children<T>[]} children children
1796
1852
  * @returns {number} total size
@@ -1804,6 +1860,7 @@ const getTotalSize = (children) => {
1804
1860
  };
1805
1861
 
1806
1862
  /**
1863
+ * Returns total items.
1807
1864
  * @template T
1808
1865
  * @param {Children<T>[]} children children
1809
1866
  * @returns {number} total items
@@ -1822,6 +1879,7 @@ const getTotalItems = (children) => {
1822
1879
  };
1823
1880
 
1824
1881
  /**
1882
+ * Returns collapsed children.
1825
1883
  * @template T
1826
1884
  * @param {Children<T>[]} children children
1827
1885
  * @returns {Children<T>[]} collapsed children
@@ -1847,6 +1905,7 @@ const collapse = (children) => {
1847
1905
  };
1848
1906
 
1849
1907
  /**
1908
+ * Returns result.
1850
1909
  * @template T
1851
1910
  * @param {Children<T>[]} itemsAndGroups item and groups
1852
1911
  * @param {number} max max
@@ -1976,6 +2035,7 @@ const spaceLimited = (
1976
2035
  };
1977
2036
 
1978
2037
  /**
2038
+ * Errors space limit.
1979
2039
  * @param {StatsError[]} errors errors
1980
2040
  * @param {number} max max
1981
2041
  * @returns {[StatsError[], number]} error space limit
@@ -2019,7 +2079,7 @@ const errorsSpaceLimit = (errors, max) => {
2019
2079
  for (; i < errors.length; i++) {
2020
2080
  const error = errors[i];
2021
2081
  if (typeof error === "string" || !error.details) result.push(error);
2022
- result.push({ ...error, details: "" });
2082
+ else result.push({ ...error, details: "" });
2023
2083
  }
2024
2084
  break;
2025
2085
  } else if (fullLength === max) {
@@ -2028,7 +2088,7 @@ const errorsSpaceLimit = (errors, max) => {
2028
2088
  for (; i < errors.length; i++) {
2029
2089
  const error = errors[i];
2030
2090
  if (typeof error === "string" || !error.details) result.push(error);
2031
- result.push({ ...error, details: "" });
2091
+ else result.push({ ...error, details: "" });
2032
2092
  }
2033
2093
  break;
2034
2094
  }
@@ -2039,6 +2099,7 @@ const errorsSpaceLimit = (errors, max) => {
2039
2099
  };
2040
2100
 
2041
2101
  /**
2102
+ * Returns } asset size.
2042
2103
  * @template {{ size: number }} T
2043
2104
  * @param {T[]} children children
2044
2105
  * @param {T[]} assets assets
@@ -2055,6 +2116,7 @@ const assetGroup = (children, assets) => {
2055
2116
  /** @typedef {{ size: number, sizes: Record<string, number> }} ModuleGroupBySizeResult */
2056
2117
 
2057
2118
  /**
2119
+ * Returns size and sizes.
2058
2120
  * @template {ModuleGroupBySizeResult} T
2059
2121
  * @param {Children<T>[]} children children
2060
2122
  * @param {KnownStatsModule[]} modules modules
@@ -2077,6 +2139,7 @@ const moduleGroup = (children, modules) => {
2077
2139
  };
2078
2140
 
2079
2141
  /**
2142
+ * Returns } reason group.
2080
2143
  * @template {{ active: boolean }} T
2081
2144
  * @param {Children<T>[]} children children
2082
2145
  * @param {KnownStatsModuleReason[]} reasons reasons
@@ -2098,6 +2161,7 @@ const GROUP_PATH_REGEXP = /(.+)[/\\][^/\\]+?(?:\?|(?: \+ \d+ modules?)?$)/;
2098
2161
  /** @typedef {{ type: string }} BaseGroup */
2099
2162
 
2100
2163
  /**
2164
+ * Defines the base group with children type used by this module.
2101
2165
  * @template T
2102
2166
  * @typedef {BaseGroup & { children: T[], size: number }} BaseGroupWithChildren
2103
2167
  */
@@ -2105,6 +2169,7 @@ const GROUP_PATH_REGEXP = /(.+)[/\\][^/\\]+?(?:\?|(?: \+ \d+ modules?)?$)/;
2105
2169
  /** @typedef {(name: string, asset: StatsAsset) => boolean} AssetFilterItemFn */
2106
2170
 
2107
2171
  /**
2172
+ * Describes the assets groupers shape.
2108
2173
  * @typedef {{
2109
2174
  * _: (groupConfigs: GroupConfig<KnownStatsAsset, BaseGroup & { filteredChildren: number, size: number } | BaseGroupWithChildren<KnownStatsAsset>>[], context: StatsFactoryContext, options: NormalizedStatsOptions) => void,
2110
2175
  * groupAssetsByInfo: (groupConfigs: GroupConfig<KnownStatsAsset, BaseGroupWithChildren<KnownStatsAsset>>[], context: StatsFactoryContext, options: NormalizedStatsOptions) => void,
@@ -2117,6 +2182,7 @@ const GROUP_PATH_REGEXP = /(.+)[/\\][^/\\]+?(?:\?|(?: \+ \d+ modules?)?$)/;
2117
2182
  const ASSETS_GROUPERS = {
2118
2183
  _: (groupConfigs, context, options) => {
2119
2184
  /**
2185
+ * Processes the provided name.
2120
2186
  * @param {keyof KnownStatsAsset} name name
2121
2187
  * @param {boolean=} exclude need exclude?
2122
2188
  */
@@ -2196,6 +2262,7 @@ const ASSETS_GROUPERS = {
2196
2262
  },
2197
2263
  groupAssetsByInfo: (groupConfigs, _context, _options) => {
2198
2264
  /**
2265
+ * Group by asset info flag.
2199
2266
  * @param {string} name name
2200
2267
  */
2201
2268
  const groupByAssetInfoFlag = (name) => {
@@ -2218,6 +2285,7 @@ const ASSETS_GROUPERS = {
2218
2285
  },
2219
2286
  groupAssetsByChunk: (groupConfigs, _context, _options) => {
2220
2287
  /**
2288
+ * Processes the provided name.
2221
2289
  * @param {keyof KnownStatsAsset} name name
2222
2290
  */
2223
2291
  const groupByNames = (name) => {
@@ -2257,6 +2325,7 @@ const ASSETS_GROUPERS = {
2257
2325
  };
2258
2326
 
2259
2327
  /**
2328
+ * Describes the modules groupers shape.
2260
2329
  * @typedef {{
2261
2330
  * _: (groupConfigs: GroupConfig<KnownStatsModule, BaseGroup & { filteredChildren?: number, children?: KnownStatsModule[], size: number, sizes: Record<string, number> }>[], context: StatsFactoryContext, options: NormalizedStatsOptions) => void,
2262
2331
  * excludeModules: (groupConfigs: GroupConfig<KnownStatsModule, BaseGroup & { filteredChildren: number, size: number, sizes: Record<string, number> }>[], context: StatsFactoryContext, options: NormalizedStatsOptions) => void,
@@ -2271,6 +2340,7 @@ const ASSETS_GROUPERS = {
2271
2340
  const MODULES_GROUPERS = (type) => ({
2272
2341
  _: (groupConfigs, context, options) => {
2273
2342
  /**
2343
+ * Processes the provided name.
2274
2344
  * @param {keyof KnownStatsModule} name name
2275
2345
  * @param {string} type type
2276
2346
  * @param {boolean=} exclude need exclude?
@@ -2452,6 +2522,7 @@ const MODULES_GROUPERS = (type) => ({
2452
2522
  });
2453
2523
 
2454
2524
  /**
2525
+ * Defines the module reasons groupers type used by this module.
2455
2526
  * @typedef {{ groupReasonsByOrigin: (groupConfigs: GroupConfig<KnownStatsModuleReason, BaseGroup & { module: string, children: KnownStatsModuleReason[], active: boolean }>[], context: StatsFactoryContext, options: NormalizedStatsOptions) => void }} ModuleReasonsGroupers
2456
2527
  */
2457
2528
 
@@ -2493,6 +2564,7 @@ const RESULT_GROUPERS = {
2493
2564
 
2494
2565
  // remove a prefixed "!" that can be specified to reverse sort order
2495
2566
  /**
2567
+ * Normalizes field key.
2496
2568
  * @param {string} field a field name
2497
2569
  * @returns {field} normalized field
2498
2570
  */
@@ -2505,6 +2577,7 @@ const normalizeFieldKey = (field) => {
2505
2577
 
2506
2578
  // if a field is prefixed by a "!" reverse sort order
2507
2579
  /**
2580
+ * Sorts order regular.
2508
2581
  * @param {string} field a field name
2509
2582
  * @returns {boolean} result
2510
2583
  */
@@ -2516,6 +2589,7 @@ const sortOrderRegular = (field) => {
2516
2589
  };
2517
2590
 
2518
2591
  /**
2592
+ * Returns comparators.
2519
2593
  * @template T
2520
2594
  * @param {string | false} field field name
2521
2595
  * @returns {(a: T, b: T) => 0 | 1 | -1} comparators
@@ -2523,6 +2597,7 @@ const sortOrderRegular = (field) => {
2523
2597
  const sortByField = (field) => {
2524
2598
  if (!field) {
2525
2599
  /**
2600
+ * Returns zero.
2526
2601
  * @param {T} a first
2527
2602
  * @param {T} b second
2528
2603
  * @returns {-1 | 0 | 1} zero
@@ -2547,6 +2622,7 @@ const sortByField = (field) => {
2547
2622
  };
2548
2623
 
2549
2624
  /**
2625
+ * Describes the asset sorters shape.
2550
2626
  * @typedef {{
2551
2627
  * assetsSort: (comparators: Comparator<Asset>[], context: StatsFactoryContext, options: NormalizedStatsOptions) => void,
2552
2628
  * _: (comparators: Comparator<Asset>[], context: StatsFactoryContext, options: NormalizedStatsOptions) => void,
@@ -2599,11 +2675,13 @@ const RESULT_SORTERS = {
2599
2675
  };
2600
2676
 
2601
2677
  /**
2678
+ * Defines the extract function type used by this module.
2602
2679
  * @template T
2603
2680
  * @typedef {T extends Record<string, Record<string, infer F>> ? F : never} ExtractFunction
2604
2681
  */
2605
2682
 
2606
2683
  /**
2684
+ * Processes the provided config.
2607
2685
  * @template {Record<string, Record<string, EXPECTED_ANY>>} T
2608
2686
  * @param {T} config the config see above
2609
2687
  * @param {NormalizedStatsOptions} options stats options
@@ -2658,11 +2736,13 @@ const ITEM_NAMES = {
2658
2736
  };
2659
2737
 
2660
2738
  /**
2739
+ * Defines the named object type used by this module.
2661
2740
  * @template T
2662
2741
  * @typedef {{ name: T }} NamedObject
2663
2742
  */
2664
2743
 
2665
2744
  /**
2745
+ * Merges the provided values into a single result.
2666
2746
  * @template {{ name: string }} T
2667
2747
  * @param {T[]} items items to be merged
2668
2748
  * @returns {NamedObject<T>} an object
@@ -2688,7 +2768,7 @@ const PLUGIN_NAME = "DefaultStatsFactoryPlugin";
2688
2768
 
2689
2769
  class DefaultStatsFactoryPlugin {
2690
2770
  /**
2691
- * Apply the plugin
2771
+ * Applies the plugin by registering its hooks on the compiler.
2692
2772
  * @param {Compiler} compiler the compiler instance
2693
2773
  * @returns {void}
2694
2774
  */
@@ -2697,6 +2777,7 @@ class DefaultStatsFactoryPlugin {
2697
2777
  compilation.hooks.statsFactory.tap(
2698
2778
  PLUGIN_NAME,
2699
2779
  /**
2780
+ * Handles the callback logic for this hook.
2700
2781
  * @param {StatsFactory} stats stats factory
2701
2782
  * @param {NormalizedStatsOptions} options stats options
2702
2783
  */
@@ -2758,6 +2839,7 @@ class DefaultStatsFactoryPlugin {
2758
2839
  .tap(
2759
2840
  PLUGIN_NAME,
2760
2841
  /**
2842
+ * Handles the callback logic for this hook.
2761
2843
  * @param {Compilation} comp compilation
2762
2844
  * @param {StatsFactoryContext} options options
2763
2845
  * @returns {StatsFactory | undefined} stats factory
@@ -17,6 +17,7 @@ const RequestShortener = require("../RequestShortener");
17
17
  /** @typedef {import("./DefaultStatsFactoryPlugin").StatsError} StatsError */
18
18
 
19
19
  /**
20
+ * Processes the provided normalized stats option.
20
21
  * @param {Partial<NormalizedStatsOptions>} options options
21
22
  * @param {StatsOptions} defaults default options
22
23
  */
@@ -30,7 +31,7 @@ const applyDefaults = (options, defaults) => {
30
31
  }
31
32
  };
32
33
 
33
- /** @typedef {{ [Key in Exclude<StatsValue, boolean | EXPECTED_OBJECT | "normal">]: StatsOptions }} NamedPresets */
34
+ /** @typedef {{ [Key in Exclude<StatsValue, boolean | StatsOptions | "normal">]: StatsOptions }} NamedPresets */
34
35
 
35
36
  /** @type {NamedPresets} */
36
37
  const NAMED_PRESETS = {
@@ -40,6 +41,7 @@ const NAMED_PRESETS = {
40
41
  relatedAssets: true,
41
42
  entrypoints: true,
42
43
  chunkGroups: true,
44
+ chunkGroupResourceHints: true,
43
45
  ids: true,
44
46
  modules: false,
45
47
  chunks: true,
@@ -144,16 +146,19 @@ const NAMED_PRESETS = {
144
146
  };
145
147
 
146
148
  /**
149
+ * Returns true when enabled, otherwise false.
147
150
  * @param {Partial<NormalizedStatsOptions>} all stats options
148
151
  * @returns {boolean} true when enabled, otherwise false
149
152
  */
150
153
  const NORMAL_ON = ({ all }) => all !== false;
151
154
  /**
155
+ * Returns true when enabled, otherwise false.
152
156
  * @param {Partial<NormalizedStatsOptions>} all stats options
153
157
  * @returns {boolean} true when enabled, otherwise false
154
158
  */
155
159
  const NORMAL_OFF = ({ all }) => all === true;
156
160
  /**
161
+ * Returns true when enabled, otherwise false.
157
162
  * @param {Partial<NormalizedStatsOptions>} all stats options
158
163
  * @param {CreateStatsOptionsContext} forToString stats options context
159
164
  * @returns {boolean} true when enabled, otherwise false
@@ -161,6 +166,7 @@ const NORMAL_OFF = ({ all }) => all === true;
161
166
  const ON_FOR_TO_STRING = ({ all }, { forToString }) =>
162
167
  forToString ? all !== false : all === true;
163
168
  /**
169
+ * Returns true when enabled, otherwise false.
164
170
  * @param {Partial<NormalizedStatsOptions>} all stats options
165
171
  * @param {CreateStatsOptionsContext} forToString stats options context
166
172
  * @returns {boolean} true when enabled, otherwise false
@@ -168,6 +174,7 @@ const ON_FOR_TO_STRING = ({ all }, { forToString }) =>
168
174
  const OFF_FOR_TO_STRING = ({ all }, { forToString }) =>
169
175
  forToString ? all === true : all !== false;
170
176
  /**
177
+ * Auto for to string.
171
178
  * @param {Partial<NormalizedStatsOptions>} all stats options
172
179
  * @param {CreateStatsOptionsContext} forToString stats options context
173
180
  * @returns {boolean | "auto"} true when enabled, otherwise false
@@ -204,6 +211,7 @@ const DEFAULTS = {
204
211
  chunkGroups: OFF_FOR_TO_STRING,
205
212
  chunkGroupAuxiliary: OFF_FOR_TO_STRING,
206
213
  chunkGroupChildren: OFF_FOR_TO_STRING,
214
+ chunkGroupResourceHints: OFF_FOR_TO_STRING,
207
215
  chunkGroupMaxAssets: (o, { forToString }) => (forToString ? 5 : Infinity),
208
216
  chunks: OFF_FOR_TO_STRING,
209
217
  chunkRelations: OFF_FOR_TO_STRING,
@@ -285,11 +293,13 @@ const DEFAULTS = {
285
293
  };
286
294
 
287
295
  /**
296
+ * Defines the normalize function type used by this module.
288
297
  * @template T
289
298
  * @typedef {(value: T, ...args: EXPECTED_ANY[]) => boolean} NormalizeFunction
290
299
  */
291
300
 
292
301
  /**
302
+ * Returns normalize fn.
293
303
  * @template {string} T
294
304
  * @param {string | ({ test: (value: T) => boolean }) | NormalizeFunction<T> | boolean} item item to normalize
295
305
  * @returns {NormalizeFunction<T>} normalize fn
@@ -315,6 +325,7 @@ const normalizeFilter = (item) => {
315
325
  /** @typedef {{ [Key in NormalizerKeys]?: (value: StatsOptions[Key]) => KnownNormalizedStatsOptions[Key] }} Normalizers */
316
326
 
317
327
  /**
328
+ * Defines the warning filter fn callback.
318
329
  * @callback WarningFilterFn
319
330
  * @param {StatsError} warning warning
320
331
  * @param {string} warningString warning string
@@ -343,6 +354,7 @@ const NORMALIZER = {
343
354
  }
344
355
  return value.map(
345
356
  /**
357
+ * Handles the warnings filter callback for this hook.
346
358
  * @param {StatsOptions["warningsFilter"]} filter a warning filter
347
359
  * @returns {WarningFilterFn} result
348
360
  */
@@ -380,7 +392,7 @@ const PLUGIN_NAME = "DefaultStatsPresetPlugin";
380
392
 
381
393
  class DefaultStatsPresetPlugin {
382
394
  /**
383
- * Apply the plugin
395
+ * Applies the plugin by registering its hooks on the compiler.
384
396
  * @param {Compiler} compiler the compiler instance
385
397
  * @returns {void}
386
398
  */