webpack 5.106.1 → 5.106.2

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 (553) hide show
  1. package/lib/APIPlugin.js +3 -1
  2. package/lib/AbstractMethodError.js +10 -1
  3. package/lib/AsyncDependenciesBlock.js +3 -0
  4. package/lib/AsyncDependencyToInitialChunkError.js +6 -1
  5. package/lib/AutomaticPrefetchPlugin.js +6 -1
  6. package/lib/BannerPlugin.js +10 -1
  7. package/lib/Cache.js +26 -1
  8. package/lib/CacheFacade.js +26 -0
  9. package/lib/CaseSensitiveModulesWarning.js +9 -1
  10. package/lib/Chunk.js +46 -0
  11. package/lib/ChunkGraph.js +111 -0
  12. package/lib/ChunkGroup.js +57 -13
  13. package/lib/ChunkTemplate.js +9 -0
  14. package/lib/CleanPlugin.js +14 -1
  15. package/lib/CodeGenerationResults.js +19 -0
  16. package/lib/CommentCompilationWarning.js +6 -0
  17. package/lib/CompatibilityPlugin.js +15 -1
  18. package/lib/Compilation.js +127 -1
  19. package/lib/Compiler.js +37 -4
  20. package/lib/ConcatenationScope.js +24 -1
  21. package/lib/ConditionalInitFragment.js +6 -0
  22. package/lib/ConstPlugin.js +4 -1
  23. package/lib/ContextExclusionPlugin.js +2 -1
  24. package/lib/ContextModule.js +12 -0
  25. package/lib/ContextModuleFactory.js +10 -0
  26. package/lib/ContextReplacementPlugin.js +4 -1
  27. package/lib/CssModule.js +6 -0
  28. package/lib/DefinePlugin.js +20 -7
  29. package/lib/DelegatedModule.js +13 -0
  30. package/lib/DelegatedModuleFactoryPlugin.js +3 -0
  31. package/lib/DelegatedPlugin.js +2 -1
  32. package/lib/DependenciesBlock.js +6 -1
  33. package/lib/Dependency.js +26 -3
  34. package/lib/DependencyTemplate.js +5 -0
  35. package/lib/DependencyTemplates.js +4 -0
  36. package/lib/DllEntryPlugin.js +2 -1
  37. package/lib/DllModule.js +11 -0
  38. package/lib/DllModuleFactory.js +1 -0
  39. package/lib/DllPlugin.js +2 -1
  40. package/lib/DllReferencePlugin.js +11 -6
  41. package/lib/DotenvPlugin.js +3 -0
  42. package/lib/DynamicEntryPlugin.js +3 -1
  43. package/lib/EntryOptionPlugin.js +3 -0
  44. package/lib/EntryPlugin.js +2 -1
  45. package/lib/Entrypoint.js +4 -0
  46. package/lib/EnvironmentPlugin.js +2 -1
  47. package/lib/ErrorHelpers.js +7 -0
  48. package/lib/EvalDevToolModulePlugin.js +3 -1
  49. package/lib/EvalSourceMapDevToolPlugin.js +3 -1
  50. package/lib/ExportsInfo.js +56 -2
  51. package/lib/ExportsInfoApiPlugin.js +2 -1
  52. package/lib/ExternalModule.js +38 -0
  53. package/lib/ExternalModuleFactoryPlugin.js +10 -0
  54. package/lib/ExternalsPlugin.js +2 -1
  55. package/lib/FileSystemInfo.js +105 -0
  56. package/lib/FlagAllModulesAsUsedPlugin.js +2 -1
  57. package/lib/FlagDependencyExportsPlugin.js +4 -1
  58. package/lib/FlagDependencyUsagePlugin.js +5 -1
  59. package/lib/FlagEntryExportAsUsedPlugin.js +2 -1
  60. package/lib/Generator.js +13 -0
  61. package/lib/GraphHelpers.js +3 -0
  62. package/lib/HookWebpackError.js +6 -0
  63. package/lib/HotModuleReplacementPlugin.js +9 -1
  64. package/lib/IgnoreErrorModuleFactory.js +2 -0
  65. package/lib/IgnorePlugin.js +2 -1
  66. package/lib/IgnoreWarningsPlugin.js +2 -1
  67. package/lib/InitFragment.js +10 -0
  68. package/lib/InvalidDependenciesModuleWarning.js +1 -0
  69. package/lib/JavascriptMetaInfoPlugin.js +2 -1
  70. package/lib/LibManifestPlugin.js +4 -1
  71. package/lib/LibraryTemplatePlugin.js +2 -1
  72. package/lib/LoaderOptionsPlugin.js +3 -1
  73. package/lib/LoaderTargetPlugin.js +2 -1
  74. package/lib/MainTemplate.js +15 -0
  75. package/lib/ManifestPlugin.js +9 -2
  76. package/lib/Module.js +82 -1
  77. package/lib/ModuleBuildError.js +3 -0
  78. package/lib/ModuleDependencyWarning.js +1 -0
  79. package/lib/ModuleError.js +2 -0
  80. package/lib/ModuleFactory.js +5 -0
  81. package/lib/ModuleFilenameHelpers.js +3 -0
  82. package/lib/ModuleGraph.js +66 -0
  83. package/lib/ModuleGraphConnection.js +9 -0
  84. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  85. package/lib/ModuleNotFoundError.js +1 -0
  86. package/lib/ModuleParseError.js +3 -0
  87. package/lib/ModuleRestoreError.js +1 -0
  88. package/lib/ModuleSourceTypeConstants.js +1 -0
  89. package/lib/ModuleStoreError.js +1 -0
  90. package/lib/ModuleTemplate.js +8 -0
  91. package/lib/ModuleWarning.js +3 -0
  92. package/lib/MultiCompiler.js +28 -0
  93. package/lib/MultiStats.js +8 -0
  94. package/lib/MultiWatching.js +3 -0
  95. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  96. package/lib/NodeStuffInWebError.js +1 -0
  97. package/lib/NodeStuffPlugin.js +10 -1
  98. package/lib/NormalModule.js +30 -2
  99. package/lib/NormalModuleFactory.js +25 -0
  100. package/lib/NormalModuleReplacementPlugin.js +1 -1
  101. package/lib/NullFactory.js +1 -0
  102. package/lib/OptionsApply.js +1 -0
  103. package/lib/Parser.js +2 -0
  104. package/lib/PlatformPlugin.js +2 -1
  105. package/lib/PrefetchPlugin.js +2 -1
  106. package/lib/ProgressPlugin.js +29 -12
  107. package/lib/ProvidePlugin.js +3 -1
  108. package/lib/RawModule.js +12 -0
  109. package/lib/RecordIdsPlugin.js +8 -0
  110. package/lib/RequestShortener.js +8 -0
  111. package/lib/RequireJsStuffPlugin.js +2 -1
  112. package/lib/ResolverFactory.js +5 -0
  113. package/lib/RuntimeGlobals.js +1 -0
  114. package/lib/RuntimeModule.js +13 -0
  115. package/lib/RuntimePlugin.js +2 -0
  116. package/lib/RuntimeTemplate.js +35 -1
  117. package/lib/SelfModuleFactory.js +2 -0
  118. package/lib/SizeFormatHelpers.js +1 -0
  119. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  120. package/lib/SourceMapDevToolPlugin.js +3 -1
  121. package/lib/Stats.js +5 -0
  122. package/lib/Template.js +20 -0
  123. package/lib/TemplatedPathPlugin.js +10 -3
  124. package/lib/UnhandledSchemeError.js +6 -0
  125. package/lib/UnsupportedFeatureWarning.js +1 -0
  126. package/lib/UseStrictPlugin.js +2 -1
  127. package/lib/WarnCaseSensitiveModulesPlugin.js +1 -1
  128. package/lib/WarnDeprecatedOptionPlugin.js +1 -1
  129. package/lib/WarnNoModeSetPlugin.js +1 -1
  130. package/lib/WatchIgnorePlugin.js +4 -1
  131. package/lib/Watching.js +14 -0
  132. package/lib/WebpackError.js +3 -0
  133. package/lib/WebpackIsIncludedPlugin.js +2 -0
  134. package/lib/WebpackOptionsApply.js +1 -0
  135. package/lib/WebpackOptionsDefaulter.js +1 -0
  136. package/lib/asset/AssetBytesGenerator.js +6 -0
  137. package/lib/asset/AssetBytesParser.js +1 -0
  138. package/lib/asset/AssetGenerator.js +20 -2
  139. package/lib/asset/AssetModulesPlugin.js +4 -1
  140. package/lib/asset/AssetParser.js +2 -0
  141. package/lib/asset/AssetSourceGenerator.js +6 -0
  142. package/lib/asset/AssetSourceParser.js +1 -0
  143. package/lib/asset/RawDataUrlModule.js +11 -0
  144. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  145. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
  146. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  147. package/lib/buildChunkGraph.js +15 -0
  148. package/lib/cache/AddBuildDependenciesPlugin.js +2 -1
  149. package/lib/cache/AddManagedPathsPlugin.js +2 -1
  150. package/lib/cache/IdleFileCachePlugin.js +2 -1
  151. package/lib/cache/MemoryCachePlugin.js +1 -1
  152. package/lib/cache/MemoryWithGcCachePlugin.js +3 -1
  153. package/lib/cache/PackFileCacheStrategy.js +29 -0
  154. package/lib/cache/ResolverCachePlugin.js +10 -1
  155. package/lib/cache/getLazyHashedEtag.js +4 -0
  156. package/lib/cache/mergeEtags.js +2 -0
  157. package/lib/cli.js +30 -0
  158. package/lib/config/browserslistTargetHandler.js +2 -0
  159. package/lib/config/defaults.js +35 -2
  160. package/lib/config/normalization.js +12 -0
  161. package/lib/config/target.js +11 -0
  162. package/lib/container/ContainerEntryDependency.js +2 -0
  163. package/lib/container/ContainerEntryModule.js +12 -0
  164. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  165. package/lib/container/ContainerExposedDependency.js +4 -0
  166. package/lib/container/ContainerPlugin.js +2 -1
  167. package/lib/container/ContainerReferencePlugin.js +2 -1
  168. package/lib/container/FallbackDependency.js +4 -0
  169. package/lib/container/FallbackItemDependency.js +1 -0
  170. package/lib/container/FallbackModule.js +12 -0
  171. package/lib/container/FallbackModuleFactory.js +1 -0
  172. package/lib/container/ModuleFederationPlugin.js +3 -1
  173. package/lib/container/RemoteModule.js +13 -0
  174. package/lib/container/RemoteRuntimeModule.js +1 -0
  175. package/lib/container/RemoteToExternalDependency.js +1 -0
  176. package/lib/container/options.js +7 -0
  177. package/lib/css/CssGenerator.js +35 -14
  178. package/lib/css/CssInjectStyleRuntimeModule.js +1 -0
  179. package/lib/css/CssLoadingRuntimeModule.js +1 -0
  180. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +1 -0
  181. package/lib/css/CssModulesPlugin.js +69 -3
  182. package/lib/css/CssParser.js +59 -1
  183. package/lib/css/walkCssTokens.js +31 -0
  184. package/lib/debug/ProfilingPlugin.js +19 -1
  185. package/lib/dependencies/AMDDefineDependency.js +7 -0
  186. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +12 -0
  187. package/lib/dependencies/AMDPlugin.js +4 -1
  188. package/lib/dependencies/AMDRequireArrayDependency.js +6 -0
  189. package/lib/dependencies/AMDRequireContextDependency.js +3 -0
  190. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  191. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +13 -0
  192. package/lib/dependencies/AMDRequireDependency.js +4 -0
  193. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  194. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  195. package/lib/dependencies/CachedConstDependency.js +6 -1
  196. package/lib/dependencies/CommonJsDependencyHelpers.js +1 -0
  197. package/lib/dependencies/CommonJsExportRequireDependency.js +8 -0
  198. package/lib/dependencies/CommonJsExportsDependency.js +4 -0
  199. package/lib/dependencies/CommonJsExportsParserPlugin.js +8 -0
  200. package/lib/dependencies/CommonJsFullRequireDependency.js +4 -0
  201. package/lib/dependencies/CommonJsImportsParserPlugin.js +20 -0
  202. package/lib/dependencies/CommonJsPlugin.js +4 -1
  203. package/lib/dependencies/CommonJsRequireContextDependency.js +3 -0
  204. package/lib/dependencies/CommonJsRequireDependency.js +3 -0
  205. package/lib/dependencies/CommonJsSelfReferenceDependency.js +5 -0
  206. package/lib/dependencies/ConstDependency.js +6 -1
  207. package/lib/dependencies/ContextDependency.js +8 -1
  208. package/lib/dependencies/ContextDependencyHelpers.js +3 -0
  209. package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
  210. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  211. package/lib/dependencies/ContextElementDependency.js +4 -0
  212. package/lib/dependencies/CreateRequireParserPlugin.js +6 -0
  213. package/lib/dependencies/CreateScriptUrlDependency.js +4 -0
  214. package/lib/dependencies/CriticalDependencyWarning.js +1 -0
  215. package/lib/dependencies/CssIcssExportDependency.js +10 -2
  216. package/lib/dependencies/CssIcssImportDependency.js +4 -1
  217. package/lib/dependencies/CssIcssSymbolDependency.js +5 -1
  218. package/lib/dependencies/CssImportDependency.js +4 -0
  219. package/lib/dependencies/CssUrlDependency.js +7 -0
  220. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  221. package/lib/dependencies/DllEntryDependency.js +3 -0
  222. package/lib/dependencies/DynamicExports.js +5 -0
  223. package/lib/dependencies/EntryDependency.js +1 -0
  224. package/lib/dependencies/ExportsInfoDependency.js +6 -0
  225. package/lib/dependencies/ExternalModuleDependency.js +5 -0
  226. package/lib/dependencies/ExternalModuleInitFragment.js +3 -0
  227. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +4 -0
  228. package/lib/dependencies/HarmonyAcceptDependency.js +6 -0
  229. package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
  230. package/lib/dependencies/HarmonyCompatibilityDependency.js +1 -0
  231. package/lib/dependencies/HarmonyDetectionParserPlugin.js +3 -0
  232. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -0
  233. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +2 -0
  234. package/lib/dependencies/HarmonyExportExpressionDependency.js +5 -0
  235. package/lib/dependencies/HarmonyExportHeaderDependency.js +4 -0
  236. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +33 -2
  237. package/lib/dependencies/HarmonyExportInitFragment.js +6 -0
  238. package/lib/dependencies/HarmonyExportSpecifierDependency.js +5 -0
  239. package/lib/dependencies/HarmonyExports.js +2 -0
  240. package/lib/dependencies/HarmonyImportDependency.js +11 -0
  241. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +9 -0
  242. package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -0
  243. package/lib/dependencies/HarmonyImportSpecifierDependency.js +17 -2
  244. package/lib/dependencies/HarmonyModulesPlugin.js +4 -1
  245. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -0
  246. package/lib/dependencies/ImportContextDependency.js +4 -0
  247. package/lib/dependencies/ImportDependency.js +5 -0
  248. package/lib/dependencies/ImportEagerDependency.js +2 -0
  249. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  250. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +3 -0
  251. package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
  252. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
  253. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
  254. package/lib/dependencies/ImportMetaPlugin.js +6 -0
  255. package/lib/dependencies/ImportParserPlugin.js +7 -0
  256. package/lib/dependencies/ImportPhase.js +6 -2
  257. package/lib/dependencies/ImportPlugin.js +2 -1
  258. package/lib/dependencies/ImportWeakDependency.js +2 -0
  259. package/lib/dependencies/JsonExportsDependency.js +6 -1
  260. package/lib/dependencies/LoaderDependency.js +2 -0
  261. package/lib/dependencies/LoaderImportDependency.js +2 -0
  262. package/lib/dependencies/LoaderPlugin.js +4 -1
  263. package/lib/dependencies/LocalModule.js +4 -0
  264. package/lib/dependencies/LocalModuleDependency.js +4 -0
  265. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  266. package/lib/dependencies/ModuleDecoratorDependency.js +7 -1
  267. package/lib/dependencies/ModuleDependency.js +7 -0
  268. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  269. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  270. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
  271. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
  272. package/lib/dependencies/ModuleInitFragmentDependency.js +4 -0
  273. package/lib/dependencies/NullDependency.js +2 -0
  274. package/lib/dependencies/PrefetchDependency.js +1 -0
  275. package/lib/dependencies/ProvidedDependency.js +6 -1
  276. package/lib/dependencies/PureExpressionDependency.js +7 -1
  277. package/lib/dependencies/RequireContextDependency.js +1 -0
  278. package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -0
  279. package/lib/dependencies/RequireContextPlugin.js +2 -1
  280. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  281. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -0
  282. package/lib/dependencies/RequireEnsureDependency.js +4 -0
  283. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  284. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  285. package/lib/dependencies/RequireHeaderDependency.js +4 -0
  286. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  287. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +3 -0
  288. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  289. package/lib/dependencies/RequireResolveContextDependency.js +3 -0
  290. package/lib/dependencies/RequireResolveDependency.js +1 -0
  291. package/lib/dependencies/RequireResolveHeaderDependency.js +5 -0
  292. package/lib/dependencies/RuntimeRequirementsDependency.js +5 -1
  293. package/lib/dependencies/StaticExportsDependency.js +3 -0
  294. package/lib/dependencies/SystemPlugin.js +4 -1
  295. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  296. package/lib/dependencies/URLContextDependency.js +3 -0
  297. package/lib/dependencies/URLDependency.js +6 -0
  298. package/lib/dependencies/URLPlugin.js +2 -0
  299. package/lib/dependencies/UnsupportedDependency.js +4 -0
  300. package/lib/dependencies/WebAssemblyExportImportedDependency.js +4 -0
  301. package/lib/dependencies/WebAssemblyImportDependency.js +4 -1
  302. package/lib/dependencies/WebpackIsIncludedDependency.js +2 -0
  303. package/lib/dependencies/WorkerDependency.js +6 -1
  304. package/lib/dependencies/WorkerPlugin.js +9 -1
  305. package/lib/dependencies/getFunctionExpression.js +1 -0
  306. package/lib/dependencies/processExportInfo.js +1 -0
  307. package/lib/electron/ElectronTargetPlugin.js +2 -1
  308. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  309. package/lib/esm/ModuleChunkFormatPlugin.js +5 -1
  310. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -1
  311. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +5 -0
  312. package/lib/formatLocation.js +2 -0
  313. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
  314. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  315. package/lib/hmr/LazyCompilationPlugin.js +20 -1
  316. package/lib/hmr/lazyCompilationBackend.js +2 -0
  317. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  318. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  319. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  320. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  321. package/lib/ids/IdHelpers.js +20 -0
  322. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  323. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  324. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  325. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  326. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  327. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  328. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  329. package/lib/index.js +5 -0
  330. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +1 -1
  331. package/lib/javascript/BasicEvaluatedExpression.js +4 -2
  332. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  333. package/lib/javascript/ChunkHelpers.js +1 -0
  334. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  335. package/lib/javascript/EnableChunkLoadingPlugin.js +5 -1
  336. package/lib/javascript/JavascriptGenerator.js +10 -0
  337. package/lib/javascript/JavascriptModulesPlugin.js +23 -1
  338. package/lib/javascript/JavascriptParser.js +163 -0
  339. package/lib/javascript/JavascriptParserHelpers.js +6 -0
  340. package/lib/javascript/StartupHelpers.js +5 -0
  341. package/lib/json/JsonData.js +5 -0
  342. package/lib/json/JsonGenerator.js +21 -0
  343. package/lib/json/JsonModulesPlugin.js +1 -1
  344. package/lib/json/JsonParser.js +8 -10
  345. package/lib/library/AbstractLibraryPlugin.js +16 -1
  346. package/lib/library/AmdLibraryPlugin.js +8 -0
  347. package/lib/library/AssignLibraryPlugin.js +16 -0
  348. package/lib/library/EnableLibraryPlugin.js +7 -1
  349. package/lib/library/ExportPropertyLibraryPlugin.js +9 -0
  350. package/lib/library/JsonpLibraryPlugin.js +8 -0
  351. package/lib/library/ModuleLibraryPlugin.js +12 -1
  352. package/lib/library/SystemLibraryPlugin.js +8 -0
  353. package/lib/library/UmdLibraryPlugin.js +16 -0
  354. package/lib/logging/Logger.js +17 -0
  355. package/lib/logging/createConsoleLogger.js +7 -0
  356. package/lib/logging/runtime.js +2 -0
  357. package/lib/logging/truncateArgs.js +2 -0
  358. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  359. package/lib/node/NodeEnvironmentPlugin.js +3 -1
  360. package/lib/node/NodeSourcePlugin.js +1 -1
  361. package/lib/node/NodeTargetPlugin.js +2 -1
  362. package/lib/node/NodeTemplatePlugin.js +3 -1
  363. package/lib/node/NodeWatchFileSystem.js +2 -0
  364. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +3 -0
  365. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +4 -1
  366. package/lib/node/ReadFileCompileWasmPlugin.js +4 -1
  367. package/lib/node/RequireChunkLoadingRuntimeModule.js +3 -0
  368. package/lib/node/nodeConsole.js +3 -0
  369. package/lib/optimize/AggressiveMergingPlugin.js +3 -1
  370. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  371. package/lib/optimize/ConcatenatedModule.js +11 -0
  372. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  373. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -1
  374. package/lib/optimize/InnerGraph.js +15 -0
  375. package/lib/optimize/InnerGraphPlugin.js +3 -1
  376. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  377. package/lib/optimize/MangleExportsPlugin.js +5 -1
  378. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  379. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  380. package/lib/optimize/MinMaxSizeWarning.js +1 -0
  381. package/lib/optimize/ModuleConcatenationPlugin.js +21 -1
  382. package/lib/optimize/RealContentHashPlugin.js +16 -1
  383. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  384. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  385. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  386. package/lib/optimize/SideEffectsFlagPlugin.js +7 -1
  387. package/lib/optimize/SplitChunksPlugin.js +49 -1
  388. package/lib/performance/AssetsOverSizeLimitWarning.js +1 -0
  389. package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -0
  390. package/lib/performance/SizeLimitsPlugin.js +7 -1
  391. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  392. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +6 -0
  393. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  394. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +1 -0
  395. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -0
  396. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  397. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  398. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  399. package/lib/rules/RuleSetCompiler.js +18 -0
  400. package/lib/rules/UseEffectRulePlugin.js +6 -0
  401. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -0
  402. package/lib/runtime/AutoPublicPathRuntimeModule.js +1 -0
  403. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  404. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  405. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -0
  406. package/lib/runtime/CompatRuntimeModule.js +2 -0
  407. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -0
  408. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  409. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  410. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -0
  411. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  412. package/lib/runtime/GetChunkFilenameRuntimeModule.js +1 -0
  413. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  414. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  415. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -0
  416. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  417. package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -0
  418. package/lib/runtime/HelperRuntimeModule.js +5 -0
  419. package/lib/runtime/LoadScriptRuntimeModule.js +1 -0
  420. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +2 -0
  421. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -0
  422. package/lib/runtime/NonceRuntimeModule.js +1 -0
  423. package/lib/runtime/OnChunksLoadedRuntimeModule.js +1 -0
  424. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  425. package/lib/runtime/RelativeUrlRuntimeModule.js +1 -0
  426. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  427. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  428. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -0
  429. package/lib/runtime/StartupEntrypointRuntimeModule.js +1 -0
  430. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  431. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  432. package/lib/schemes/DataUriPlugin.js +1 -1
  433. package/lib/schemes/FileUriPlugin.js +1 -1
  434. package/lib/schemes/HttpUriPlugin.js +43 -1
  435. package/lib/schemes/VirtualUrlPlugin.js +6 -1
  436. package/lib/serialization/AggregateErrorSerializer.js +2 -0
  437. package/lib/serialization/ArraySerializer.js +2 -0
  438. package/lib/serialization/BinaryMiddleware.js +20 -1
  439. package/lib/serialization/DateObjectSerializer.js +2 -0
  440. package/lib/serialization/ErrorObjectSerializer.js +3 -0
  441. package/lib/serialization/FileMiddleware.js +21 -0
  442. package/lib/serialization/MapObjectSerializer.js +2 -0
  443. package/lib/serialization/NullPrototypeObjectSerializer.js +2 -0
  444. package/lib/serialization/ObjectMiddleware.js +23 -0
  445. package/lib/serialization/PlainObjectSerializer.js +7 -0
  446. package/lib/serialization/RegExpObjectSerializer.js +2 -0
  447. package/lib/serialization/Serializer.js +5 -0
  448. package/lib/serialization/SerializerMiddleware.js +12 -0
  449. package/lib/serialization/SetObjectSerializer.js +2 -0
  450. package/lib/serialization/SingleItemMiddleware.js +3 -0
  451. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  452. package/lib/sharing/ConsumeSharedModule.js +15 -0
  453. package/lib/sharing/ConsumeSharedPlugin.js +6 -1
  454. package/lib/sharing/ConsumeSharedRuntimeModule.js +1 -0
  455. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  456. package/lib/sharing/ProvideSharedDependency.js +4 -0
  457. package/lib/sharing/ProvideSharedModule.js +11 -0
  458. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  459. package/lib/sharing/ProvideSharedPlugin.js +4 -1
  460. package/lib/sharing/SharePlugin.js +2 -1
  461. package/lib/sharing/ShareRuntimeModule.js +1 -0
  462. package/lib/sharing/resolveMatchedConfigs.js +3 -0
  463. package/lib/sharing/utils.js +8 -0
  464. package/lib/stats/DefaultStatsFactoryPlugin.js +56 -1
  465. package/lib/stats/DefaultStatsPresetPlugin.js +11 -1
  466. package/lib/stats/DefaultStatsPrinterPlugin.js +37 -1
  467. package/lib/stats/StatsFactory.js +12 -0
  468. package/lib/stats/StatsPrinter.js +7 -0
  469. package/lib/url/URLParserPlugin.js +6 -0
  470. package/lib/util/AppendOnlyStackedSet.js +15 -0
  471. package/lib/util/ArrayHelpers.js +1 -0
  472. package/lib/util/ArrayQueue.js +10 -5
  473. package/lib/util/AsyncQueue.js +20 -0
  474. package/lib/util/IterableHelpers.js +3 -0
  475. package/lib/util/LazyBucketSortedSet.js +21 -0
  476. package/lib/util/LazySet.js +39 -0
  477. package/lib/util/ParallelismFactorCalculator.js +1 -0
  478. package/lib/util/Queue.js +6 -3
  479. package/lib/util/Semaphore.js +14 -1
  480. package/lib/util/SetHelpers.js +3 -0
  481. package/lib/util/SortableSet.js +6 -0
  482. package/lib/util/StackedCacheMap.js +20 -3
  483. package/lib/util/StackedMap.js +45 -0
  484. package/lib/util/StringXor.js +1 -1
  485. package/lib/util/TupleQueue.js +7 -3
  486. package/lib/util/TupleSet.js +13 -0
  487. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  488. package/lib/util/WeakTupleMap.js +33 -0
  489. package/lib/util/binarySearchBounds.js +1 -0
  490. package/lib/util/cleverMerge.js +17 -0
  491. package/lib/util/comparators.js +31 -0
  492. package/lib/util/compileBooleanMatcher.js +9 -0
  493. package/lib/util/concatenate.js +6 -0
  494. package/lib/util/conventions.js +4 -0
  495. package/lib/util/dataURL.js +1 -0
  496. package/lib/util/deprecation.js +19 -0
  497. package/lib/util/deterministicGrouping.js +20 -0
  498. package/lib/util/extractSourceMap.js +1 -0
  499. package/lib/util/extractUrlAndGlobal.js +1 -0
  500. package/lib/util/findGraphRoots.js +5 -0
  501. package/lib/util/fs.js +63 -0
  502. package/lib/util/generateDebugId.js +1 -0
  503. package/lib/util/hash/BatchedHash.js +1 -0
  504. package/lib/util/hash/BulkUpdateHash.js +1 -0
  505. package/lib/util/hash/hash-digest.js +8 -0
  506. package/lib/util/hash/wasm-hash.js +5 -0
  507. package/lib/util/identifier.js +19 -0
  508. package/lib/util/magicComment.js +1 -0
  509. package/lib/util/makeSerializable.js +6 -0
  510. package/lib/util/memoize.js +2 -0
  511. package/lib/util/mimeTypes.js +176 -0
  512. package/lib/util/nonNumericOnlyHash.js +1 -0
  513. package/lib/util/parseJson.js +112 -0
  514. package/lib/util/processAsyncTree.js +8 -0
  515. package/lib/util/property.js +1 -0
  516. package/lib/util/registerExternalSerializer.js +20 -0
  517. package/lib/util/removeBOM.js +1 -0
  518. package/lib/util/runtime.js +32 -0
  519. package/lib/util/semver.js +15 -0
  520. package/lib/util/serialization.js +2 -0
  521. package/lib/util/smartGrouping.js +8 -0
  522. package/lib/util/source.js +2 -0
  523. package/lib/validateSchema.js +1 -0
  524. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  525. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +1 -0
  526. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -0
  527. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  528. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -0
  529. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +10 -1
  530. package/lib/wasm-async/AsyncWebAssemblyParser.js +1 -0
  531. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +12 -1
  532. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +1 -0
  533. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +1 -0
  534. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +1 -1
  535. package/lib/wasm-sync/WebAssemblyGenerator.js +26 -1
  536. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +2 -0
  537. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  538. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -1
  539. package/lib/wasm-sync/WebAssemblyParser.js +2 -0
  540. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  541. package/lib/web/FetchCompileAsyncWasmPlugin.js +10 -1
  542. package/lib/web/FetchCompileWasmPlugin.js +13 -1
  543. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  544. package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -0
  545. package/lib/web/JsonpTemplatePlugin.js +2 -1
  546. package/lib/webpack.js +10 -0
  547. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  548. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -0
  549. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  550. package/package.json +12 -14
  551. package/schemas/WebpackOptions.check.js +1 -1
  552. package/schemas/WebpackOptions.json +44 -55
  553. package/types.d.ts +4594 -331
package/lib/ChunkGroup.js CHANGED
@@ -24,6 +24,9 @@ const {
24
24
  /** @typedef {{ module: Module | null, loc: DependencyLocation, request: string }} OriginRecord */
25
25
 
26
26
  /**
27
+ * Describes the scheduling hints that can be attached to a chunk group.
28
+ * These values influence how child groups are ordered for preload/prefetch
29
+ * and how their fetch priority is exposed to runtime code.
27
30
  * @typedef {object} RawChunkGroupOptions
28
31
  * @property {number=} preloadOrder
29
32
  * @property {number=} prefetchOrder
@@ -35,6 +38,8 @@ const {
35
38
  let debugId = 5000;
36
39
 
37
40
  /**
41
+ * Materializes a sortable set as an array without changing its current order.
42
+ * Used with `SortableSet` caches that expect a stable array result.
38
43
  * @template T
39
44
  * @param {SortableSet<T>} set set to convert to array.
40
45
  * @returns {T[]} the array format of existing set
@@ -54,6 +59,8 @@ const sortById = (a, b) => {
54
59
  };
55
60
 
56
61
  /**
62
+ * Orders origin records by referencing module and then by source location.
63
+ * This keeps origin metadata deterministic for hashing and diagnostics.
57
64
  * @param {OriginRecord} a the first comparator in sort
58
65
  * @param {OriginRecord} b the second comparator in sort
59
66
  * @returns {1 | -1 | 0} returns sorting order as index
@@ -66,9 +73,14 @@ const sortOrigin = (a, b) => {
66
73
  return compareLocations(a.loc, b.loc);
67
74
  };
68
75
 
76
+ /**
77
+ * Represents a connected group of chunks along with the parent/child
78
+ * relationships, async blocks, and traversal metadata webpack tracks for it.
79
+ */
69
80
  class ChunkGroup {
70
81
  /**
71
- * Creates an instance of ChunkGroup.
82
+ * Creates a chunk group and initializes the relationship sets and ordering
83
+ * metadata used while building and optimizing the chunk graph.
72
84
  * @param {string | ChunkGroupOptions=} options chunk group options passed to chunkGroup
73
85
  */
74
86
  constructor(options) {
@@ -113,7 +125,9 @@ class ChunkGroup {
113
125
  }
114
126
 
115
127
  /**
116
- * when a new chunk is added to a chunkGroup, addingOptions will occur.
128
+ * Merges additional options into the chunk group.
129
+ * Order-based options are combined by taking the higher priority, while
130
+ * unsupported conflicts surface as an explicit error.
117
131
  * @param {ChunkGroupOptions} options the chunkGroup options passed to addOptions
118
132
  * @returns {void}
119
133
  */
@@ -146,7 +160,7 @@ class ChunkGroup {
146
160
  }
147
161
 
148
162
  /**
149
- * returns the name of current ChunkGroup
163
+ * Returns the configured name of the chunk group, if one was assigned.
150
164
  * @returns {ChunkGroupOptions["name"]} returns the ChunkGroup name
151
165
  */
152
166
  get name() {
@@ -154,7 +168,7 @@ class ChunkGroup {
154
168
  }
155
169
 
156
170
  /**
157
- * sets a new name for current ChunkGroup
171
+ * Updates the configured name of the chunk group.
158
172
  * @param {string | undefined} value the new name for ChunkGroup
159
173
  * @returns {void}
160
174
  */
@@ -164,7 +178,8 @@ class ChunkGroup {
164
178
 
165
179
  /* istanbul ignore next */
166
180
  /**
167
- * get a uniqueId for ChunkGroup, made up of its member Chunk debugId's
181
+ * Returns a debug-only identifier derived from the group's member chunk
182
+ * debug ids. This is primarily useful in diagnostics and assertions.
168
183
  * @returns {string} a unique concatenation of chunk debugId's
169
184
  */
170
185
  get debugId() {
@@ -172,7 +187,8 @@ class ChunkGroup {
172
187
  }
173
188
 
174
189
  /**
175
- * get a unique id for ChunkGroup, made up of its member Chunk id's
190
+ * Returns an identifier derived from the ids of the chunks currently in
191
+ * the group.
176
192
  * @returns {string} a unique concatenation of chunk ids
177
193
  */
178
194
  get id() {
@@ -180,7 +196,8 @@ class ChunkGroup {
180
196
  }
181
197
 
182
198
  /**
183
- * Performs an unshift of a specific chunk
199
+ * Moves a chunk to the front of the group or inserts it when it is not
200
+ * already present.
184
201
  * @param {Chunk} chunk chunk being unshifted
185
202
  * @returns {boolean} returns true if attempted chunk shift is accepted
186
203
  */
@@ -197,7 +214,8 @@ class ChunkGroup {
197
214
  }
198
215
 
199
216
  /**
200
- * inserts a chunk before another existing chunk in group
217
+ * Inserts a chunk directly before another chunk that already belongs to the
218
+ * group, preserving the rest of the ordering.
201
219
  * @param {Chunk} chunk Chunk being inserted
202
220
  * @param {Chunk} before Placeholder/target chunk marking new chunk insertion point
203
221
  * @returns {boolean} return true if insertion was successful
@@ -219,7 +237,7 @@ class ChunkGroup {
219
237
  }
220
238
 
221
239
  /**
222
- * add a chunk into ChunkGroup. Is pushed on or prepended
240
+ * Appends a chunk to the group when it is not already a member.
223
241
  * @param {Chunk} chunk chunk being pushed into ChunkGroupS
224
242
  * @returns {boolean} returns true if chunk addition was successful.
225
243
  */
@@ -233,6 +251,8 @@ class ChunkGroup {
233
251
  }
234
252
 
235
253
  /**
254
+ * Replaces one member chunk with another while preserving the group's
255
+ * ordering and avoiding duplicates.
236
256
  * @param {Chunk} oldChunk chunk to be replaced
237
257
  * @param {Chunk} newChunk New chunk that will be replaced with
238
258
  * @returns {boolean | undefined} returns true if the replacement was successful
@@ -256,6 +276,7 @@ class ChunkGroup {
256
276
  }
257
277
 
258
278
  /**
279
+ * Removes a chunk from this group.
259
280
  * @param {Chunk} chunk chunk to remove
260
281
  * @returns {boolean} returns true if chunk was removed
261
282
  */
@@ -269,6 +290,8 @@ class ChunkGroup {
269
290
  }
270
291
 
271
292
  /**
293
+ * Indicates whether this chunk group is loaded as part of the initial page
294
+ * load instead of being created lazily.
272
295
  * @returns {boolean} true, when this chunk group will be loaded on initial page load
273
296
  */
274
297
  isInitial() {
@@ -276,6 +299,7 @@ class ChunkGroup {
276
299
  }
277
300
 
278
301
  /**
302
+ * Adds a child chunk group to the current group.
279
303
  * @param {ChunkGroup} group chunk group to add
280
304
  * @returns {boolean} returns true if chunk group was added
281
305
  */
@@ -286,6 +310,7 @@ class ChunkGroup {
286
310
  }
287
311
 
288
312
  /**
313
+ * Returns the child chunk groups reachable from this group.
289
314
  * @returns {ChunkGroup[]} returns the children of this group
290
315
  */
291
316
  getChildren() {
@@ -301,6 +326,8 @@ class ChunkGroup {
301
326
  }
302
327
 
303
328
  /**
329
+ * Removes a child chunk group and clears the corresponding parent link on
330
+ * the removed child.
304
331
  * @param {ChunkGroup} group the chunk group to remove
305
332
  * @returns {boolean} returns true if the chunk group was removed
306
333
  */
@@ -315,6 +342,7 @@ class ChunkGroup {
315
342
  }
316
343
 
317
344
  /**
345
+ * Records a parent chunk group relationship.
318
346
  * @param {ChunkGroup} parentChunk the parent group to be added into
319
347
  * @returns {boolean} returns true if this chunk group was added to the parent group
320
348
  */
@@ -327,6 +355,7 @@ class ChunkGroup {
327
355
  }
328
356
 
329
357
  /**
358
+ * Returns the parent chunk groups that can lead to this group.
330
359
  * @returns {ChunkGroup[]} returns the parents of this group
331
360
  */
332
361
  getParents() {
@@ -338,6 +367,7 @@ class ChunkGroup {
338
367
  }
339
368
 
340
369
  /**
370
+ * Checks whether the provided group is registered as a parent.
341
371
  * @param {ChunkGroup} parent the parent group
342
372
  * @returns {boolean} returns true if the parent group contains this group
343
373
  */
@@ -350,6 +380,7 @@ class ChunkGroup {
350
380
  }
351
381
 
352
382
  /**
383
+ * Removes a parent chunk group and clears the reverse child relationship.
353
384
  * @param {ChunkGroup} chunkGroup the parent group
354
385
  * @returns {boolean} returns true if this group has been removed from the parent
355
386
  */
@@ -362,6 +393,7 @@ class ChunkGroup {
362
393
  }
363
394
 
364
395
  /**
396
+ * Registers an async entrypoint that is rooted in this chunk group.
365
397
  * @param {Entrypoint} entrypoint entrypoint to add
366
398
  * @returns {boolean} returns true if entrypoint was added
367
399
  */
@@ -376,6 +408,7 @@ class ChunkGroup {
376
408
  }
377
409
 
378
410
  /**
411
+ * Returns the async dependency blocks that create or reference this group.
379
412
  * @returns {AsyncDependenciesBlock[]} an array containing the blocks
380
413
  */
381
414
  getBlocks() {
@@ -387,6 +420,7 @@ class ChunkGroup {
387
420
  }
388
421
 
389
422
  /**
423
+ * Checks whether an async dependency block is associated with this group.
390
424
  * @param {AsyncDependenciesBlock} block block
391
425
  * @returns {boolean} true, if block exists
392
426
  */
@@ -395,6 +429,7 @@ class ChunkGroup {
395
429
  }
396
430
 
397
431
  /**
432
+ * Exposes the group's async dependency blocks as an iterable.
398
433
  * @returns {Iterable<AsyncDependenciesBlock>} blocks
399
434
  */
400
435
  get blocksIterable() {
@@ -402,6 +437,7 @@ class ChunkGroup {
402
437
  }
403
438
 
404
439
  /**
440
+ * Associates an async dependency block with this chunk group.
405
441
  * @param {AsyncDependenciesBlock} block a block
406
442
  * @returns {boolean} false, if block was already added
407
443
  */
@@ -414,6 +450,8 @@ class ChunkGroup {
414
450
  }
415
451
 
416
452
  /**
453
+ * Records where this chunk group originated from in user code.
454
+ * The origin is used for diagnostics, ordering, and reporting.
417
455
  * @param {Module | null} module origin module
418
456
  * @param {DependencyLocation} loc location of the reference in the origin module
419
457
  * @param {string} request request name of the reference
@@ -428,6 +466,7 @@ class ChunkGroup {
428
466
  }
429
467
 
430
468
  /**
469
+ * Collects the emitted files produced by every chunk in the group.
431
470
  * @returns {string[]} the files contained this chunk group
432
471
  */
433
472
  getFiles() {
@@ -444,6 +483,9 @@ class ChunkGroup {
444
483
  }
445
484
 
446
485
  /**
486
+ * Disconnects this group from its parents, children, and chunks.
487
+ * Child groups are reconnected to this group's parents so the surrounding
488
+ * graph remains intact after removal.
447
489
  * @returns {void}
448
490
  */
449
491
  remove() {
@@ -503,6 +545,8 @@ class ChunkGroup {
503
545
  }
504
546
 
505
547
  /**
548
+ * Groups child chunk groups by their `*Order` options and sorts each group
549
+ * by descending order and deterministic chunk-group comparison.
506
550
  * @param {ModuleGraph} moduleGraph the module graph
507
551
  * @param {ChunkGraph} chunkGraph the chunk graph
508
552
  * @returns {Record<string, ChunkGroup[]>} mapping from children type to ordered list of ChunkGroups
@@ -543,7 +587,7 @@ class ChunkGroup {
543
587
  }
544
588
 
545
589
  /**
546
- * Sets the top-down index of a module in this ChunkGroup
590
+ * Stores the module's top-down traversal index within this group.
547
591
  * @param {Module} module module for which the index should be set
548
592
  * @param {number} index the index of the module
549
593
  * @returns {void}
@@ -553,7 +597,7 @@ class ChunkGroup {
553
597
  }
554
598
 
555
599
  /**
556
- * Gets the top-down index of a module in this ChunkGroup
600
+ * Returns the module's top-down traversal index within this group.
557
601
  * @param {Module} module the module
558
602
  * @returns {number | undefined} index
559
603
  */
@@ -562,7 +606,7 @@ class ChunkGroup {
562
606
  }
563
607
 
564
608
  /**
565
- * Sets the bottom-up index of a module in this ChunkGroup
609
+ * Stores the module's bottom-up traversal index within this group.
566
610
  * @param {Module} module module for which the index should be set
567
611
  * @param {number} index the index of the module
568
612
  * @returns {void}
@@ -572,7 +616,7 @@ class ChunkGroup {
572
616
  }
573
617
 
574
618
  /**
575
- * Gets the bottom-up index of a module in this ChunkGroup
619
+ * Returns the module's bottom-up traversal index within this group.
576
620
  * @param {Module} module the module
577
621
  * @returns {number | undefined} index
578
622
  */
@@ -20,6 +20,7 @@ const memoize = require("./util/memoize");
20
20
  /** @typedef {import("./ModuleTemplate")} ModuleTemplate */
21
21
  /** @typedef {import("./javascript/JavascriptModulesPlugin").RenderContext} RenderContext */
22
22
  /**
23
+ * Defines the if set type used by this module.
23
24
  * @template T
24
25
  * @typedef {import("tapable").IfSet<T>} IfSet
25
26
  */
@@ -31,6 +32,7 @@ const getJavascriptModulesPlugin = memoize(() =>
31
32
  // TODO webpack 6 remove this class
32
33
  class ChunkTemplate {
33
34
  /**
35
+ * Creates an instance of ChunkTemplate.
34
36
  * @param {OutputOptions} outputOptions output options
35
37
  * @param {Compilation} compilation the compilation
36
38
  */
@@ -40,6 +42,7 @@ class ChunkTemplate {
40
42
  renderManifest: {
41
43
  tap: util.deprecate(
42
44
  /**
45
+ * Handles the callback logic for this hook.
43
46
  * @template AdditionalOptions
44
47
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
45
48
  * @param {(renderManifestEntries: RenderManifestEntry[], renderManifestOptions: RenderManifestOptions) => RenderManifestEntry[]} fn function
@@ -60,6 +63,7 @@ class ChunkTemplate {
60
63
  modules: {
61
64
  tap: util.deprecate(
62
65
  /**
66
+ * Handles the callback logic for this hook.
63
67
  * @template AdditionalOptions
64
68
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
65
69
  * @param {(source: Source, moduleTemplate: ModuleTemplate, renderContext: RenderContext) => Source} fn function
@@ -82,6 +86,7 @@ class ChunkTemplate {
82
86
  render: {
83
87
  tap: util.deprecate(
84
88
  /**
89
+ * Handles the callback logic for this hook.
85
90
  * @template AdditionalOptions
86
91
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
87
92
  * @param {(source: Source, moduleTemplate: ModuleTemplate, renderContext: RenderContext) => Source} fn function
@@ -104,6 +109,7 @@ class ChunkTemplate {
104
109
  renderWithEntry: {
105
110
  tap: util.deprecate(
106
111
  /**
112
+ * Handles the callback logic for this hook.
107
113
  * @template AdditionalOptions
108
114
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
109
115
  * @param {(source: Source, chunk: Chunk) => Source} fn function
@@ -130,6 +136,7 @@ class ChunkTemplate {
130
136
  hash: {
131
137
  tap: util.deprecate(
132
138
  /**
139
+ * Handles the callback logic for this hook.
133
140
  * @template AdditionalOptions
134
141
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
135
142
  * @param {(hash: Hash) => void} fn function
@@ -144,6 +151,7 @@ class ChunkTemplate {
144
151
  hashForChunk: {
145
152
  tap: util.deprecate(
146
153
  /**
154
+ * Handles the callback logic for this hook.
147
155
  * @template AdditionalOptions
148
156
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
149
157
  * @param {(hash: Hash, chunk: Chunk, chunkHashContext: ChunkHashContext) => void} fn function
@@ -167,6 +175,7 @@ class ChunkTemplate {
167
175
  Object.defineProperty(ChunkTemplate.prototype, "outputOptions", {
168
176
  get: util.deprecate(
169
177
  /**
178
+ * Returns output options.
170
179
  * @this {ChunkTemplate}
171
180
  * @returns {OutputOptions} output options
172
181
  */
@@ -22,11 +22,13 @@ const processAsyncTree = require("./util/processAsyncTree");
22
22
  /** @typedef {Map<string, number>} Assets */
23
23
 
24
24
  /**
25
+ * Defines the clean plugin compilation hooks type used by this module.
25
26
  * @typedef {object} CleanPluginCompilationHooks
26
27
  * @property {SyncBailHook<[string], boolean | void>} keep when returning true the file/directory will be kept during cleaning, returning false will clean it and ignore the following plugins and config
27
28
  */
28
29
 
29
30
  /**
31
+ * Defines the keep fn callback.
30
32
  * @callback KeepFn
31
33
  * @param {string} path path
32
34
  * @returns {boolean | undefined} true, if the path should be kept
@@ -50,6 +52,7 @@ const mergeAssets = (as1, as2) => {
50
52
  /** @typedef {Map<string, number>} CurrentAssets */
51
53
 
52
54
  /**
55
+ * Returns set of directory paths.
53
56
  * @param {CurrentAssets} assets current assets
54
57
  * @returns {Set<string>} Set of directory paths
55
58
  */
@@ -57,6 +60,7 @@ function getDirectories(assets) {
57
60
  /** @type {Set<string>} */
58
61
  const directories = new Set();
59
62
  /**
63
+ * Adds the provided filename to this object.
60
64
  * @param {string} filename asset filename
61
65
  */
62
66
  const addDirectory = (filename) => {
@@ -77,6 +81,7 @@ function getDirectories(assets) {
77
81
  /** @typedef {Set<string>} Diff */
78
82
 
79
83
  /**
84
+ * Returns diff to fs.
80
85
  * @param {OutputFileSystem} fs filesystem
81
86
  * @param {string} outputPath output path
82
87
  * @param {CurrentAssets} currentAssets filename of the current assets (must not start with .. or ., must only use / as path separator)
@@ -123,6 +128,7 @@ const getDiffToFs = (fs, outputPath, currentAssets, callback) => {
123
128
  };
124
129
 
125
130
  /**
131
+ * Gets diff to old assets.
126
132
  * @param {Assets} currentAssets assets list
127
133
  * @param {Assets} oldAssets old assets list
128
134
  * @returns {Diff} diff
@@ -139,6 +145,7 @@ const getDiffToOldAssets = (currentAssets, oldAssets) => {
139
145
  };
140
146
 
141
147
  /**
148
+ * Processes the provided f.
142
149
  * @param {OutputFileSystem} fs filesystem
143
150
  * @param {string} filename path to file
144
151
  * @param {StatsCallback} callback callback for provided filename
@@ -154,6 +161,7 @@ const doStat = (fs, filename, callback) => {
154
161
  };
155
162
 
156
163
  /**
164
+ * Processes the provided f.
157
165
  * @param {OutputFileSystem} fs filesystem
158
166
  * @param {string} outputPath output path
159
167
  * @param {boolean} dry only log instead of fs modification
@@ -165,6 +173,7 @@ const doStat = (fs, filename, callback) => {
165
173
  */
166
174
  const applyDiff = (fs, outputPath, dry, logger, diff, isKept, callback) => {
167
175
  /**
176
+ * Processes the provided msg.
168
177
  * @param {string} msg message
169
178
  */
170
179
  const log = (msg) => {
@@ -189,6 +198,7 @@ const applyDiff = (fs, outputPath, dry, logger, diff, isKept, callback) => {
189
198
  ({ type, filename, parent }, push, callback) => {
190
199
  const path = join(fs, outputPath, filename);
191
200
  /**
201
+ * Describes how this handle error operation behaves.
192
202
  * @param {Error & { code?: string }} err error
193
203
  * @returns {void}
194
204
  */
@@ -331,6 +341,7 @@ const PLUGIN_NAME = "CleanPlugin";
331
341
 
332
342
  class CleanPlugin {
333
343
  /**
344
+ * Returns the attached hooks.
334
345
  * @param {Compilation} compilation the compilation
335
346
  * @returns {CleanPluginCompilationHooks} the attached hooks
336
347
  */
@@ -357,7 +368,7 @@ class CleanPlugin {
357
368
  }
358
369
 
359
370
  /**
360
- * Apply the plugin
371
+ * Applies the plugin by registering its hooks on the compiler.
361
372
  * @param {Compiler} compiler the compiler instance
362
373
  * @returns {void}
363
374
  */
@@ -445,6 +456,7 @@ class CleanPlugin {
445
456
  const outputPath = compilation.getPath(compiler.outputPath, {});
446
457
 
447
458
  /**
459
+ * Checks whether this clean plugin is kept.
448
460
  * @param {string} path path
449
461
  * @returns {boolean | undefined} true, if needs to be kept
450
462
  */
@@ -455,6 +467,7 @@ class CleanPlugin {
455
467
  };
456
468
 
457
469
  /**
470
+ * Processes the provided err.
458
471
  * @param {(Error | null)=} err err
459
472
  * @param {Diff=} diff diff
460
473
  */
@@ -20,8 +20,14 @@ const { RuntimeSpecMap, runtimeToString } = require("./util/runtime");
20
20
  /** @typedef {import("./util/Hash").HashFunction} HashFunction */
21
21
  /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
22
22
 
23
+ /**
24
+ * Stores code generation results keyed by module and runtime so later stages
25
+ * can retrieve emitted sources, metadata, and derived hashes.
26
+ */
23
27
  class CodeGenerationResults {
24
28
  /**
29
+ * Initializes an empty result store and remembers which hash function should
30
+ * be used when a result hash needs to be derived lazily.
25
31
  * @param {HashFunction} hashFunction the hash function to use
26
32
  */
27
33
  constructor(hashFunction = DEFAULTS.HASH_FUNCTION) {
@@ -32,6 +38,8 @@ class CodeGenerationResults {
32
38
  }
33
39
 
34
40
  /**
41
+ * Returns the code generation result for a module/runtime pair, rejecting
42
+ * ambiguous lookups where no unique runtime-independent result exists.
35
43
  * @param {Module} module the module
36
44
  * @param {RuntimeSpec} runtime runtime(s)
37
45
  * @returns {CodeGenerationResult} the CodeGenerationResult
@@ -77,6 +85,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
77
85
  }
78
86
 
79
87
  /**
88
+ * Reports whether a module has a stored result for the requested runtime, or
89
+ * a single unambiguous result when no runtime is specified.
80
90
  * @param {Module} module the module
81
91
  * @param {RuntimeSpec} runtime runtime(s)
82
92
  * @returns {boolean} true, when we have data for this
@@ -96,6 +106,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
96
106
  }
97
107
 
98
108
  /**
109
+ * Returns a generated source of the requested source type from a stored code
110
+ * generation result.
99
111
  * @param {Module} module the module
100
112
  * @param {RuntimeSpec} runtime runtime(s)
101
113
  * @param {SourceType} sourceType the source type
@@ -108,6 +120,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
108
120
  }
109
121
 
110
122
  /**
123
+ * Returns the runtime requirements captured during code generation for the
124
+ * requested module/runtime pair.
111
125
  * @param {Module} module the module
112
126
  * @param {RuntimeSpec} runtime runtime(s)
113
127
  * @returns {ReadOnlyRuntimeRequirements | null} runtime requirements
@@ -117,6 +131,7 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
117
131
  }
118
132
 
119
133
  /**
134
+ * Returns an arbitrary metadata entry recorded during code generation.
120
135
  * @param {Module} module the module
121
136
  * @param {RuntimeSpec} runtime runtime(s)
122
137
  * @param {string} key data key
@@ -128,6 +143,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
128
143
  }
129
144
 
130
145
  /**
146
+ * Returns a stable hash for the generated sources and runtime requirements,
147
+ * computing and caching it on first access.
131
148
  * @param {Module} module the module
132
149
  * @param {RuntimeSpec} runtime runtime(s)
133
150
  * @returns {string} hash of the code generation
@@ -147,6 +164,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
147
164
  }
148
165
 
149
166
  /**
167
+ * Stores a code generation result for a module/runtime pair, creating the
168
+ * per-module runtime map when needed.
150
169
  * @param {Module} module the module
151
170
  * @param {RuntimeSpec} runtime runtime(s)
152
171
  * @param {CodeGenerationResult} result result from module
@@ -10,8 +10,14 @@ const makeSerializable = require("./util/makeSerializable");
10
10
 
11
11
  /** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
12
12
 
13
+ /**
14
+ * Warning used for comment-related compilation issues, such as malformed magic
15
+ * comments that webpack can parse but wants to report.
16
+ */
13
17
  class CommentCompilationWarning extends WebpackError {
14
18
  /**
19
+ * Captures a warning message together with the dependency location that
20
+ * triggered it.
15
21
  * @param {string} message warning message
16
22
  * @param {DependencyLocation} loc affected lines of code
17
23
  */
@@ -21,6 +21,8 @@ const ConstDependency = require("./dependencies/ConstDependency");
21
21
  /** @typedef {import("./javascript/JavascriptParser").Range} Range */
22
22
 
23
23
  /**
24
+ * Captures the source range of a renamed compatibility binding so it can be
25
+ * rewritten exactly once.
24
26
  * @typedef {object} CompatibilitySettingsDeclaration
25
27
  * @property {boolean} updated
26
28
  * @property {DependencyLocation} loc
@@ -28,6 +30,8 @@ const ConstDependency = require("./dependencies/ConstDependency");
28
30
  */
29
31
 
30
32
  /**
33
+ * Stores the replacement variable name and the declaration metadata tracked
34
+ * for a compatibility rewrite.
31
35
  * @typedef {object} CompatibilitySettings
32
36
  * @property {string} name
33
37
  * @property {CompatibilitySettingsDeclaration} declaration
@@ -36,9 +40,14 @@ const ConstDependency = require("./dependencies/ConstDependency");
36
40
  const nestedWebpackIdentifierTag = Symbol("nested webpack identifier");
37
41
  const PLUGIN_NAME = "CompatibilityPlugin";
38
42
 
43
+ /**
44
+ * Adds parser-time compatibility rewrites for legacy runtime patterns that
45
+ * webpack still needs to recognize in user and generated code.
46
+ */
39
47
  class CompatibilityPlugin {
40
48
  /**
41
- * Apply the plugin
49
+ * Installs parser hooks that preserve compatibility with legacy patterns
50
+ * such as nested `__webpack_require__` bindings and hashbang handling.
42
51
  * @param {Compiler} compiler the compiler instance
43
52
  * @returns {void}
44
53
  */
@@ -64,6 +73,9 @@ class CompatibilityPlugin {
64
73
  parser.hooks.call.for("require").tap(
65
74
  PLUGIN_NAME,
66
75
  /**
76
+ * Rewrites browserify-style delegated `require` calls into a
77
+ * plain webpack require reference and removes the synthetic
78
+ * context dependency created for the delegator pattern.
67
79
  * @param {CallExpression} expr call expression
68
80
  * @returns {boolean | void} true when need to handle
69
81
  */
@@ -103,6 +115,8 @@ class CompatibilityPlugin {
103
115
  });
104
116
 
105
117
  /**
118
+ * Attaches the compatibility rewrites for a JavaScript parser
119
+ * instance.
106
120
  * @param {JavascriptParser} parser the parser
107
121
  * @returns {void}
108
122
  */