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
@@ -36,6 +36,7 @@ const DATA_URI_CONTENT_LENGTH = 16;
36
36
  const MAX_MODULE_IDENTIFIER_LENGTH = 80;
37
37
 
38
38
  /**
39
+ * Returns if n is 1, singular, else plural.
39
40
  * @param {number} n a number
40
41
  * @param {string} singular singular
41
42
  * @param {string} plural plural
@@ -44,6 +45,7 @@ const MAX_MODULE_IDENTIFIER_LENGTH = 80;
44
45
  const plural = (n, singular, plural) => (n === 1 ? singular : plural);
45
46
 
46
47
  /**
48
+ * Returns text.
47
49
  * @param {Record<string, number>} sizes sizes by source type
48
50
  * @param {StatsPrinterContext} options options
49
51
  * @returns {string | undefined} text
@@ -58,6 +60,7 @@ const printSizes = (sizes, { formatSize = (n) => `${n}` }) => {
58
60
  };
59
61
 
60
62
  /**
63
+ * Gets resource name.
61
64
  * @param {string | null} resource resource
62
65
  * @returns {string} resource name for display
63
66
  */
@@ -75,6 +78,7 @@ const getResourceName = (resource) => {
75
78
  };
76
79
 
77
80
  /**
81
+ * Returns prefix and module name.
78
82
  * @param {string} name module name
79
83
  * @returns {[string, string]} prefix and module name
80
84
  */
@@ -99,6 +103,7 @@ const getModuleName = (name) => {
99
103
  };
100
104
 
101
105
  /**
106
+ * Returns joined string.
102
107
  * @param {string} str string
103
108
  * @param {(item: string) => string} fn function to apply to each line
104
109
  * @returns {string} joined string
@@ -106,12 +111,14 @@ const getModuleName = (name) => {
106
111
  const mapLines = (str, fn) => str.split("\n").map(fn).join("\n");
107
112
 
108
113
  /**
114
+ * Returns number as two digit string, leading 0.
109
115
  * @param {number} n a number
110
116
  * @returns {string} number as two digit string, leading 0
111
117
  */
112
118
  const twoDigit = (n) => (n >= 10 ? `${n}` : `0${n}`);
113
119
 
114
120
  /**
121
+ * Checks whether this object is valid id.
115
122
  * @param {string | number | null} id an id
116
123
  * @returns {id is string | number} is i
117
124
  */
@@ -124,6 +131,7 @@ const isValidId = (id) => {
124
131
  };
125
132
 
126
133
  /**
134
+ * Returns string representation of list.
127
135
  * @template T
128
136
  * @param {T[] | undefined} list of items
129
137
  * @param {number} count number of items to show
@@ -133,28 +141,33 @@ const moreCount = (list, count) =>
133
141
  list && list.length > 0 ? `+ ${count}` : `${count}`;
134
142
 
135
143
  /**
144
+ * Defines the with required type used by this module.
136
145
  * @template T
137
146
  * @template {keyof T} K
138
147
  * @typedef {{ [P in K]-?: T[P] }} WithRequired
139
148
  */
140
149
 
141
150
  /**
151
+ * Defines the define stats printer context type used by this module.
142
152
  * @template {keyof StatsPrinterContext} RequiredStatsPrinterContextKeys
143
153
  * @typedef {StatsPrinterContextWithExtra & WithRequired<StatsPrinterContext, "compilation" | RequiredStatsPrinterContextKeys>} DefineStatsPrinterContext
144
154
  */
145
155
 
146
156
  /**
157
+ * Defines the simple printer type used by this module.
147
158
  * @template T
148
159
  * @template {keyof StatsPrinterContext} RequiredStatsPrinterContextKeys
149
160
  * @typedef {(thing: Exclude<T, undefined>, context: DefineStatsPrinterContext<RequiredStatsPrinterContextKeys>, printer: StatsPrinter) => string | undefined} SimplePrinter
150
161
  */
151
162
 
152
163
  /**
164
+ * Defines the unpacked type used by this module.
153
165
  * @template T
154
166
  * @typedef {T extends (infer U)[] ? U : T} Unpacked
155
167
  */
156
168
 
157
169
  /**
170
+ * Defines the property name type used by this module.
158
171
  * @template {object} O
159
172
  * @template {keyof O} K
160
173
  * @template {string} B
@@ -162,6 +175,7 @@ const moreCount = (list, count) =>
162
175
  */
163
176
 
164
177
  /**
178
+ * Defines the array property name type used by this module.
165
179
  * @template {object} O
166
180
  * @template {keyof O} K
167
181
  * @template {string} B
@@ -169,6 +183,7 @@ const moreCount = (list, count) =>
169
183
  */
170
184
 
171
185
  /**
186
+ * Defines the exclamation type used by this module.
172
187
  * @template {object} O
173
188
  * @template {string} K
174
189
  * @template {string} E
@@ -176,6 +191,7 @@ const moreCount = (list, count) =>
176
191
  */
177
192
 
178
193
  /**
194
+ * Defines the shared type used by this module.
179
195
  * @template {object} O
180
196
  * @template {string} B
181
197
  * @template {string} [R=B]
@@ -184,6 +200,7 @@ const moreCount = (list, count) =>
184
200
  */
185
201
 
186
202
  /**
203
+ * Defines the shared type used by this module.
187
204
  * @typedef {Printers<KnownStatsCompilation, "compilation"> &
188
205
  * { ["compilation.summary!"]?: SimplePrinter<KnownStatsCompilation, "compilation"> } &
189
206
  * { ["compilation.errorsInChildren!"]?: SimplePrinter<KnownStatsCompilation, "compilation"> } &
@@ -406,6 +423,7 @@ const COMPILATION_SIMPLE_PRINTERS = {
406
423
  };
407
424
 
408
425
  /**
426
+ * Defines the shared type used by this module.
409
427
  * @typedef {Printers<KnownStatsAsset, "asset"> &
410
428
  * Printers<KnownStatsAsset["info"], "asset.info"> &
411
429
  * Exclamation<KnownStatsAsset, "asset.separator", "asset"> &
@@ -467,6 +485,7 @@ const ASSET_SIMPLE_PRINTERS = {
467
485
  };
468
486
 
469
487
  /**
488
+ * Defines the shared type used by this module.
470
489
  * @typedef {Printers<KnownStatsModule, "module"> &
471
490
  * Exclamation<KnownStatsModule, "module.separator", "module"> &
472
491
  * { ["module.filteredChildren"]?: SimplePrinter<number, "module"> } &
@@ -588,6 +607,7 @@ const MODULE_SIMPLE_PRINTERS = {
588
607
  };
589
608
 
590
609
  /**
610
+ * Defines the module issuer printers type used by this module.
591
611
  * @typedef {Printers<KnownStatsModuleIssuer, "moduleIssuer"> & Printers<KnownStatsModuleIssuer["profile"], "moduleIssuer.profile", "moduleIssuer">} ModuleIssuerPrinters
592
612
  */
593
613
 
@@ -598,6 +618,7 @@ const MODULE_ISSUER_PRINTERS = {
598
618
  };
599
619
 
600
620
  /**
621
+ * Defines the module reasons printers type used by this module.
601
622
  * @typedef {Printers<KnownStatsModuleReason, "moduleReason"> & { ["moduleReason.filteredChildren"]?: SimplePrinter<number, "moduleReason"> }} ModuleReasonsPrinters
602
623
  */
603
624
 
@@ -652,6 +673,7 @@ const MODULE_PROFILE_PRINTERS = {
652
673
  };
653
674
 
654
675
  /**
676
+ * Defines the shared type used by this module.
655
677
  * @typedef {Exclamation<KnownStatsChunkGroup, "chunkGroup.kind", "chunkGroupKind"> &
656
678
  * Exclamation<KnownStatsChunkGroup, "chunkGroup.separator", "chunkGroup"> &
657
679
  * Printers<KnownStatsChunkGroup, "chunkGroup"> &
@@ -716,6 +738,7 @@ const CHUNK_GROUP_PRINTERS = {
716
738
  };
717
739
 
718
740
  /**
741
+ * Defines the shared type used by this module.
719
742
  * @typedef {Printers<KnownStatsChunk, "chunk"> &
720
743
  * { ["chunk.childrenByOrder[].type"]: SimplePrinter<string, "chunk"> } &
721
744
  * { ["chunk.childrenByOrder[].children[]"]: SimplePrinter<ChunkId, "chunk"> } &
@@ -778,6 +801,7 @@ const CHUNK_PRINTERS = {
778
801
  };
779
802
 
780
803
  /**
804
+ * Defines the shared type used by this module.
781
805
  * @typedef {Printers<KnownStatsError, "error"> &
782
806
  * { ["error.filteredDetails"]?: SimplePrinter<number, "error"> } &
783
807
  * Exclamation<KnownStatsError, "error.separator", "error">} ErrorPrinters
@@ -822,6 +846,7 @@ const ERROR_PRINTERS = {
822
846
  };
823
847
 
824
848
  /**
849
+ * Defines the shared type used by this module.
825
850
  * @typedef {Printers<KnownStatsLoggingEntry, `loggingEntry(${LogTypeEnum}).loggingEntry`> &
826
851
  * { ["loggingEntry(clear).loggingEntry"]?: SimplePrinter<KnownStatsLoggingEntry, "logging"> } &
827
852
  * { ["loggingEntry.trace[]"]?: SimplePrinter<Exclude<KnownStatsLoggingEntry["trace"], undefined>[number], "logging"> } &
@@ -1178,6 +1203,7 @@ const SIMPLE_ITEMS_JOINER = {
1178
1203
  };
1179
1204
 
1180
1205
  /**
1206
+ * Returns result.
1181
1207
  * @param {Item[]} items items
1182
1208
  * @returns {string} result
1183
1209
  */
@@ -1188,6 +1214,7 @@ const joinOneLine = (items) =>
1188
1214
  .join(" ");
1189
1215
 
1190
1216
  /**
1217
+ * Returns result.
1191
1218
  * @param {Item[]} items items
1192
1219
  * @returns {string} result
1193
1220
  */
@@ -1235,6 +1262,7 @@ const joinInBrackets = (items) => {
1235
1262
  };
1236
1263
 
1237
1264
  /**
1265
+ * Returns result.
1238
1266
  * @param {string} str a string
1239
1267
  * @param {string} prefix prefix
1240
1268
  * @param {boolean=} noPrefixInFirstLine need prefix in the first line?
@@ -1248,6 +1276,7 @@ const indent = (str, prefix, noPrefixInFirstLine) => {
1248
1276
  };
1249
1277
 
1250
1278
  /**
1279
+ * Join explicit new line.
1251
1280
  * @param {(false | Item)[]} items items
1252
1281
  * @param {string} indenter indenter
1253
1282
  * @returns {string} result
@@ -1274,12 +1303,14 @@ const joinExplicitNewLine = (items, indenter) => {
1274
1303
  };
1275
1304
 
1276
1305
  /**
1306
+ * Returns joiner.
1277
1307
  * @param {boolean} error is an error
1278
1308
  * @returns {SimpleElementJoiner} joiner
1279
1309
  */
1280
1310
  const joinError =
1281
1311
  (error) =>
1282
1312
  /**
1313
+ * Handles the callback logic for this hook.
1283
1314
  * @param {Item[]} items items
1284
1315
  * @param {StatsPrinterContextWithExtra} ctx context
1285
1316
  * @returns {string} result
@@ -1447,11 +1478,13 @@ const AVAILABLE_COLORS = {
1447
1478
  };
1448
1479
 
1449
1480
  /**
1481
+ * Defines the tail type used by this module.
1450
1482
  * @template T
1451
1483
  * @typedef {T extends [infer Head, ...infer Tail] ? Tail : undefined} Tail
1452
1484
  */
1453
1485
 
1454
1486
  /**
1487
+ * Defines the tail parameters type used by this module.
1455
1488
  * @template {(...args: EXPECTED_ANY[]) => EXPECTED_ANY} T
1456
1489
  * @typedef {T extends (firstArg: EXPECTED_ANY, ...rest: infer R) => EXPECTED_ANY ? R : never} TailParameters
1457
1490
  */
@@ -1538,6 +1571,7 @@ const AVAILABLE_FORMATS = {
1538
1571
  message = message.replace(
1539
1572
  regExp,
1540
1573
  /**
1574
+ * Handles the format callback for this hook.
1541
1575
  * @param {string} match match
1542
1576
  * @param {string} content content
1543
1577
  * @returns {string} result
@@ -1556,6 +1590,7 @@ const RESULT_MODIFIER = {
1556
1590
  };
1557
1591
 
1558
1592
  /**
1593
+ * Creates an order from the provided array.
1559
1594
  * @param {string[]} array array
1560
1595
  * @param {string[]} preferredOrder preferred order
1561
1596
  * @returns {string[]} result
@@ -1585,7 +1620,7 @@ const PLUGIN_NAME = "DefaultStatsPrinterPlugin";
1585
1620
 
1586
1621
  class DefaultStatsPrinterPlugin {
1587
1622
  /**
1588
- * Apply the plugin
1623
+ * Applies the plugin by registering its hooks on the compiler.
1589
1624
  * @param {Compiler} compiler the compiler instance
1590
1625
  * @returns {void}
1591
1626
  */
@@ -1626,6 +1661,7 @@ class DefaultStatsPrinterPlugin {
1626
1661
  }\u001B[39m\u001B[22m`;
1627
1662
  } else {
1628
1663
  /**
1664
+ * Returns str string.
1629
1665
  * @param {string} str string
1630
1666
  * @returns {string} str string
1631
1667
  */
@@ -22,6 +22,7 @@ const smartGrouping = require("../util/smartGrouping");
22
22
  /** @typedef {import("../util/comparators").Comparator<EXPECTED_ANY>} Comparator */
23
23
  /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
24
24
  /**
25
+ * Defines the group config type used by this module.
25
26
  * @template T, R
26
27
  * @typedef {import("../util/smartGrouping").GroupConfig<T, R>} GroupConfig
27
28
  */
@@ -42,6 +43,7 @@ const smartGrouping = require("../util/smartGrouping");
42
43
  /** @typedef {import("./DefaultStatsFactoryPlugin").StatsProfile} StatsProfile */
43
44
 
44
45
  /**
46
+ * Defines the known stats factory context type used by this module.
45
47
  * @typedef {object} KnownStatsFactoryContext
46
48
  * @property {string} type
47
49
  * @property {Compilation} compilation
@@ -59,12 +61,14 @@ const smartGrouping = require("../util/smartGrouping");
59
61
  // StatsLogging StatsLoggingEntry
60
62
 
61
63
  /**
64
+ * Defines the stats object type used by this module.
62
65
  * @template T
63
66
  * @template F
64
67
  * @typedef {T extends Compilation ? StatsCompilation : T extends ChunkGroupInfoWithName ? StatsChunkGroup : T extends Chunk ? StatsChunk : T extends OriginRecord ? StatsChunkOrigin : T extends Module ? StatsModule : T extends ModuleGraphConnection ? StatsModuleReason : T extends Asset ? StatsAsset : T extends ModuleTrace ? StatsModuleTraceItem : T extends Dependency ? StatsModuleTraceDependency : T extends Error ? StatsError : T extends ModuleProfile ? StatsProfile : F} StatsObject
65
68
  */
66
69
 
67
70
  /**
71
+ * Defines the created object type used by this module.
68
72
  * @template T
69
73
  * @template F
70
74
  * @typedef {T extends ChunkGroupInfoWithName[] ? Record<string, StatsObject<ChunkGroupInfoWithName, F>> : T extends (infer V)[] ? StatsObject<V, F>[] : StatsObject<T, F>} CreatedObject
@@ -76,6 +80,7 @@ const smartGrouping = require("../util/smartGrouping");
76
80
  /** @typedef {EXPECTED_ANY} Result */
77
81
 
78
82
  /**
83
+ * Defines the stats factory hooks type used by this module.
79
84
  * @typedef {object} StatsFactoryHooks
80
85
  * @property {HookMap<SyncBailHook<[ObjectForExtract, FactoryData, StatsFactoryContext], void>>} extract
81
86
  * @property {HookMap<SyncBailHook<[FactoryDataItem, StatsFactoryContext, number, number], boolean | void>>} filter
@@ -91,6 +96,7 @@ const smartGrouping = require("../util/smartGrouping");
91
96
  */
92
97
 
93
98
  /**
99
+ * Represents the stats factory runtime component.
94
100
  * @template T
95
101
  * @typedef {Map<string, T[]>} Caches
96
102
  */
@@ -133,6 +139,7 @@ class StatsFactory {
133
139
  }
134
140
 
135
141
  /**
142
+ * Get all level hooks.
136
143
  * @template {StatsFactoryHooks[keyof StatsFactoryHooks]} HM
137
144
  * @template {HM extends HookMap<infer H> ? H : never} H
138
145
  * @param {HM} hookMap hook map
@@ -159,6 +166,7 @@ class StatsFactory {
159
166
  }
160
167
 
161
168
  /**
169
+ * Returns hook.
162
170
  * @template {StatsFactoryHooks[keyof StatsFactoryHooks]} HM
163
171
  * @template {HM extends HookMap<infer H> ? H : never} H
164
172
  * @template {H extends import("tapable").Hook<EXPECTED_ANY, infer R> ? R : never} R
@@ -177,6 +185,7 @@ class StatsFactory {
177
185
  }
178
186
 
179
187
  /**
188
+ * For each level waterfall.
180
189
  * @template {StatsFactoryHooks[keyof StatsFactoryHooks]} HM
181
190
  * @template {HM extends HookMap<infer H> ? H : never} H
182
191
  * @param {HM} hookMap hook map
@@ -195,6 +204,7 @@ class StatsFactory {
195
204
  }
196
205
 
197
206
  /**
207
+ * For each level filter.
198
208
  * @template {StatsFactoryHooks[keyof StatsFactoryHooks]} T
199
209
  * @template {T extends HookMap<infer H> ? H : never} H
200
210
  * @template {H extends import("tapable").Hook<EXPECTED_ANY, infer R> ? R : never} R
@@ -225,6 +235,7 @@ class StatsFactory {
225
235
  }
226
236
 
227
237
  /**
238
+ * Returns created object.
228
239
  * @template FactoryData
229
240
  * @template FallbackCreatedObject
230
241
  * @param {string} type type
@@ -248,6 +259,7 @@ class StatsFactory {
248
259
  }
249
260
 
250
261
  /**
262
+ * Returns created object.
251
263
  * @private
252
264
  * @template FactoryData
253
265
  * @template FallbackCreatedObject
@@ -21,12 +21,14 @@ const { HookMap, SyncBailHook, SyncWaterfallHook } = require("tapable");
21
21
  /** @typedef {import("./DefaultStatsFactoryPlugin").StatsProfile} StatsProfile */
22
22
 
23
23
  /**
24
+ * Defines the printed element type used by this module.
24
25
  * @typedef {object} PrintedElement
25
26
  * @property {string} element
26
27
  * @property {string | undefined} content
27
28
  */
28
29
 
29
30
  /**
31
+ * Defines the known stats printer context type used by this module.
30
32
  * @typedef {object} KnownStatsPrinterContext
31
33
  * @property {string=} type
32
34
  * @property {StatsCompilation=} compilation
@@ -47,6 +49,7 @@ const { HookMap, SyncBailHook, SyncWaterfallHook } = require("tapable");
47
49
  /** @typedef {(value: string | number) => string} ColorFunction */
48
50
 
49
51
  /**
52
+ * Defines the known stats printer color functions type used by this module.
50
53
  * @typedef {object} KnownStatsPrinterColorFunctions
51
54
  * @property {ColorFunction=} bold
52
55
  * @property {ColorFunction=} yellow
@@ -57,6 +60,7 @@ const { HookMap, SyncBailHook, SyncWaterfallHook } = require("tapable");
57
60
  */
58
61
 
59
62
  /**
63
+ * Defines the known stats printer formatters type used by this module.
60
64
  * @typedef {object} KnownStatsPrinterFormatters
61
65
  * @property {(file: string, oversize?: boolean) => string=} formatFilename
62
66
  * @property {(id: string | number) => string=} formatModuleId
@@ -74,6 +78,7 @@ const { HookMap, SyncBailHook, SyncWaterfallHook } = require("tapable");
74
78
  /** @typedef {EXPECTED_ANY} PrintObject */
75
79
 
76
80
  /**
81
+ * Represents the stats printer runtime component.
77
82
  * @typedef {object} StatsPrintHooks
78
83
  * @property {HookMap<SyncBailHook<[string[], StatsPrinterContext], void>>} sortElements
79
84
  * @property {HookMap<SyncBailHook<[PrintedElement[], StatsPrinterContext], string | undefined | void>>} printElements
@@ -176,6 +181,7 @@ class StatsPrinter {
176
181
  }
177
182
 
178
183
  /**
184
+ * Returns printed result.
179
185
  * @param {string} type The type
180
186
  * @param {PrintObject} object Object to print
181
187
  * @param {StatsPrinterContext=} baseContext The base context
@@ -195,6 +201,7 @@ class StatsPrinter {
195
201
  }
196
202
 
197
203
  /**
204
+ * Returns printed result.
198
205
  * @private
199
206
  * @param {string} type type
200
207
  * @param {PrintObject} object object
@@ -28,12 +28,14 @@ const InnerGraph = require("../optimize/InnerGraph");
28
28
  const PLUGIN_NAME = "URLParserPlugin";
29
29
 
30
30
  /**
31
+ * Returns file url.
31
32
  * @param {NormalModule} module module
32
33
  * @returns {URL} file url
33
34
  */
34
35
  const getUrl = (module) => pathToFileURL(module.resource);
35
36
 
36
37
  /**
38
+ * Checks whether this object is meta url.
37
39
  * @param {JavascriptParser} parser parser parser
38
40
  * @param {MemberExpression} arg arg
39
41
  * @returns {boolean} true when it is `meta.url`, otherwise false
@@ -58,6 +60,7 @@ const isMetaUrl = (parser, arg) => {
58
60
  const getEvaluatedExprCache = new WeakMap();
59
61
 
60
62
  /**
63
+ * Gets evaluated expr.
61
64
  * @param {NewExpressionNode} expr expression
62
65
  * @param {JavascriptParser} parser parser parser
63
66
  * @returns {BasicEvaluatedExpression | undefined} basic evaluated expression
@@ -67,6 +70,7 @@ const getEvaluatedExpr = (expr, parser) => {
67
70
  if (result !== undefined) return result;
68
71
 
69
72
  /**
73
+ * Returns basic evaluated expression.
70
74
  * @returns {BasicEvaluatedExpression | undefined} basic evaluated expression
71
75
  */
72
76
  const evaluate = () => {
@@ -90,6 +94,7 @@ const getEvaluatedExpr = (expr, parser) => {
90
94
 
91
95
  class URLParserPlugin {
92
96
  /**
97
+ * Creates an instance of URLParserPlugin.
93
98
  * @param {JavascriptParserOptions} options options
94
99
  */
95
100
  constructor(options) {
@@ -98,6 +103,7 @@ class URLParserPlugin {
98
103
  }
99
104
 
100
105
  /**
106
+ * Applies the plugin by registering its hooks on the compiler.
101
107
  * @param {JavascriptParser} parser the parser
102
108
  * @returns {void}
103
109
  */
@@ -6,10 +6,14 @@
6
6
  "use strict";
7
7
 
8
8
  /**
9
+ * Tracks values across a stack of nested sets where child scopes can add new
10
+ * values without mutating the sets created by their parents.
9
11
  * @template T
10
12
  */
11
13
  class AppendOnlyStackedSet {
12
14
  /**
15
+ * Seeds the stacked set with an optional chain of previously created scope
16
+ * layers.
13
17
  * @param {Set<T>[]} sets an optional array of sets
14
18
  */
15
19
  constructor(sets = []) {
@@ -20,6 +24,8 @@ class AppendOnlyStackedSet {
20
24
  }
21
25
 
22
26
  /**
27
+ * Adds a value to the current scope layer, creating that layer lazily when
28
+ * the first write occurs.
23
29
  * @param {T} el element
24
30
  */
25
31
  add(el) {
@@ -31,6 +37,8 @@ class AppendOnlyStackedSet {
31
37
  }
32
38
 
33
39
  /**
40
+ * Checks whether a value is present in any scope layer currently visible to
41
+ * this stacked set.
34
42
  * @param {T} el element
35
43
  * @returns {boolean} result
36
44
  */
@@ -41,6 +49,9 @@ class AppendOnlyStackedSet {
41
49
  return false;
42
50
  }
43
51
 
52
+ /**
53
+ * Removes every scope layer and any values accumulated in them.
54
+ */
44
55
  clear() {
45
56
  this._sets = [];
46
57
  if (this._current) {
@@ -49,6 +60,8 @@ class AppendOnlyStackedSet {
49
60
  }
50
61
 
51
62
  /**
63
+ * Creates a child stacked set that shares the existing scope history while
64
+ * allowing subsequent additions to be recorded in its own new layer.
52
65
  * @returns {AppendOnlyStackedSet<T>} child
53
66
  */
54
67
  createChild() {
@@ -56,6 +69,8 @@ class AppendOnlyStackedSet {
56
69
  }
57
70
 
58
71
  /**
72
+ * Iterates over the stacked sets from newest to oldest so consumers can
73
+ * inspect recently added values first.
59
74
  * @returns {Iterator<T>} iterable iterator
60
75
  */
61
76
  [Symbol.iterator]() {
@@ -34,6 +34,7 @@ module.exports.groupBy = (
34
34
  ) =>
35
35
  arr.reduce(
36
36
  /**
37
+ * Handles the callback logic for this hook.
37
38
  * @param {[T[], T[]]} groups An accumulator storing already partitioned values returned from previous call.
38
39
  * @param {T} value The value of the current element
39
40
  * @returns {[T[], T[]]} returns an array of partitioned groups accumulator resulting from calling a predicate on the current value.
@@ -6,10 +6,13 @@
6
6
  "use strict";
7
7
 
8
8
  /**
9
+ * FIFO queue backed by arrays with a reversed dequeue buffer to avoid the cost
10
+ * of repeated `Array#shift` operations.
9
11
  * @template T
10
12
  */
11
13
  class ArrayQueue {
12
14
  /**
15
+ * Seeds the queue with an optional iterable of items in dequeue order.
13
16
  * @param {Iterable<T>=} items The initial elements.
14
17
  */
15
18
  constructor(items) {
@@ -26,7 +29,7 @@ class ArrayQueue {
26
29
  }
27
30
 
28
31
  /**
29
- * Returns the number of elements in this queue.
32
+ * Returns the current number of items waiting in either internal buffer.
30
33
  * @returns {number} The number of elements in this queue.
31
34
  */
32
35
  get length() {
@@ -34,7 +37,7 @@ class ArrayQueue {
34
37
  }
35
38
 
36
39
  /**
37
- * Empties the queue.
40
+ * Removes all pending items from both internal buffers.
38
41
  */
39
42
  clear() {
40
43
  this._list.length = 0;
@@ -42,7 +45,7 @@ class ArrayQueue {
42
45
  }
43
46
 
44
47
  /**
45
- * Appends the specified element to this queue.
48
+ * Appends an item to the tail of the queue.
46
49
  * @param {T} item The element to add.
47
50
  * @returns {void}
48
51
  */
@@ -51,7 +54,8 @@ class ArrayQueue {
51
54
  }
52
55
 
53
56
  /**
54
- * Retrieves and removes the head of this queue.
57
+ * Removes and returns the next item in FIFO order, switching to a reversed
58
+ * buffer when that is cheaper than shifting from the front of the array.
55
59
  * @returns {T | undefined} The head of the queue of `undefined` if this queue is empty.
56
60
  */
57
61
  dequeue() {
@@ -68,7 +72,8 @@ class ArrayQueue {
68
72
  }
69
73
 
70
74
  /**
71
- * Finds and removes an item
75
+ * Removes the first matching item from whichever internal buffer currently
76
+ * contains it.
72
77
  * @param {T} item the item
73
78
  * @returns {void}
74
79
  */