webpack 5.106.0 → 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 -4
  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 +71 -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 +11 -3
  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 +14 -5
  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
@@ -24,27 +24,32 @@ const { compareRuntime } = require("./runtime");
24
24
  /** @typedef {import("../dependencies/ModuleDependency")} ModuleDependency */
25
25
 
26
26
  /**
27
+ * Defines the dependency source order type used by this module.
27
28
  * @typedef {object} DependencySourceOrder
28
29
  * @property {number} main the main source order
29
30
  * @property {number} sub the sub source order
30
31
  */
31
32
 
32
33
  /**
34
+ * Defines the comparator type used by this module.
33
35
  * @template T
34
36
  * @typedef {(a: T, b: T) => -1 | 0 | 1} Comparator
35
37
  */
36
38
  /**
39
+ * Defines the raw parameterized comparator type used by this module.
37
40
  * @template {object} TArg
38
41
  * @template T
39
42
  * @typedef {(tArg: TArg, a: T, b: T) => -1 | 0 | 1} RawParameterizedComparator
40
43
  */
41
44
  /**
45
+ * Defines the parameterized comparator type used by this module.
42
46
  * @template {object} TArg
43
47
  * @template T
44
48
  * @typedef {(tArg: TArg) => Comparator<T>} ParameterizedComparator
45
49
  */
46
50
 
47
51
  /**
52
+ * Creates a cached parameterized comparator.
48
53
  * @template {object} TArg
49
54
  * @template {object} T
50
55
  * @param {RawParameterizedComparator<TArg, T>} fn comparator with argument
@@ -57,6 +62,7 @@ const createCachedParameterizedComparator = (fn) => {
57
62
  const cachedResult = map.get(/** @type {EXPECTED_OBJECT} */ (arg));
58
63
  if (cachedResult !== undefined) return cachedResult;
59
64
  /**
65
+ * Returns compare result.
60
66
  * @param {T} a first item
61
67
  * @param {T} b second item
62
68
  * @returns {-1 | 0 | 1} compare result
@@ -68,6 +74,7 @@ const createCachedParameterizedComparator = (fn) => {
68
74
  };
69
75
 
70
76
  /**
77
+ * Compares the provided values and returns their ordering.
71
78
  * @param {string | number} a first id
72
79
  * @param {string | number} b second id
73
80
  * @returns {-1 | 0 | 1} compare result
@@ -82,6 +89,7 @@ const compareIds = (a, b) => {
82
89
  };
83
90
 
84
91
  /**
92
+ * Compares iterables.
85
93
  * @template T
86
94
  * @param {Comparator<T>} elementComparator comparator for elements
87
95
  * @returns {Comparator<Iterable<T>>} comparator for iterables of elements
@@ -90,6 +98,7 @@ const compareIterables = (elementComparator) => {
90
98
  const cacheEntry = compareIteratorsCache.get(elementComparator);
91
99
  if (cacheEntry !== undefined) return cacheEntry;
92
100
  /**
101
+ * Returns compare result.
93
102
  * @param {Iterable<T>} a first value
94
103
  * @param {Iterable<T>} b second value
95
104
  * @returns {-1 | 0 | 1} compare result
@@ -177,6 +186,7 @@ const compareLocations = (a, b) => {
177
186
  };
178
187
 
179
188
  /**
189
+ * Compares modules by id.
180
190
  * @param {ChunkGraph} chunkGraph the chunk graph
181
191
  * @param {Module} a module
182
192
  * @param {Module} b module
@@ -189,6 +199,7 @@ const compareModulesById = (chunkGraph, a, b) =>
189
199
  );
190
200
 
191
201
  /**
202
+ * Compares the provided values and returns their ordering.
192
203
  * @param {number} a number
193
204
  * @param {number} b number
194
205
  * @returns {-1 | 0 | 1} compare result
@@ -203,6 +214,7 @@ const compareNumbers = (a, b) => {
203
214
  };
204
215
 
205
216
  /**
217
+ * Compares strings numeric.
206
218
  * @param {string} a string
207
219
  * @param {string} b string
208
220
  * @returns {-1 | 0 | 1} compare result
@@ -274,6 +286,7 @@ const compareStringsNumeric = (a, b) => {
274
286
  };
275
287
 
276
288
  /**
289
+ * Compares modules by post order index or identifier.
277
290
  * @param {ModuleGraph} moduleGraph the module graph
278
291
  * @param {Module} a module
279
292
  * @param {Module} b module
@@ -289,6 +302,7 @@ const compareModulesByPostOrderIndexOrIdentifier = (moduleGraph, a, b) => {
289
302
  };
290
303
 
291
304
  /**
305
+ * Compares modules by pre order index or identifier.
292
306
  * @param {ModuleGraph} moduleGraph the module graph
293
307
  * @param {Module} a module
294
308
  * @param {Module} b module
@@ -304,6 +318,7 @@ const compareModulesByPreOrderIndexOrIdentifier = (moduleGraph, a, b) => {
304
318
  };
305
319
 
306
320
  /**
321
+ * Compares modules by id or identifier.
307
322
  * @param {ChunkGraph} chunkGraph the chunk graph
308
323
  * @param {Module} a module
309
324
  * @param {Module} b module
@@ -332,6 +347,7 @@ const compareModulesByFullName = (compiler, a, b) => {
332
347
  };
333
348
 
334
349
  /**
350
+ * Compares the provided values and returns their ordering.
335
351
  * @param {ChunkGraph} chunkGraph the chunk graph
336
352
  * @param {Chunk} a chunk
337
353
  * @param {Chunk} b chunk
@@ -340,6 +356,7 @@ const compareModulesByFullName = (compiler, a, b) => {
340
356
  const compareChunks = (chunkGraph, a, b) => chunkGraph.compareChunks(a, b);
341
357
 
342
358
  /**
359
+ * Compares the provided values and returns their ordering.
343
360
  * @param {string} a first string
344
361
  * @param {string} b second string
345
362
  * @returns {-1 | 0 | 1} compare result
@@ -351,6 +368,7 @@ const compareStrings = (a, b) => {
351
368
  };
352
369
 
353
370
  /**
371
+ * Compares chunk groups by index.
354
372
  * @param {ChunkGroup} a first chunk group
355
373
  * @param {ChunkGroup} b second chunk group
356
374
  * @returns {-1 | 0 | 1} compare result
@@ -359,6 +377,7 @@ const compareChunkGroupsByIndex = (a, b) =>
359
377
  /** @type {number} */ (a.index) < /** @type {number} */ (b.index) ? -1 : 1;
360
378
 
361
379
  /**
380
+ * Represents TwoKeyWeakMap.
362
381
  * @template {EXPECTED_OBJECT} K1
363
382
  * @template {EXPECTED_OBJECT} K2
364
383
  * @template T
@@ -373,6 +392,7 @@ class TwoKeyWeakMap {
373
392
  }
374
393
 
375
394
  /**
395
+ * Returns value.
376
396
  * @param {K1} key1 first key
377
397
  * @param {K2} key2 second key
378
398
  * @returns {T | undefined} value
@@ -386,6 +406,7 @@ class TwoKeyWeakMap {
386
406
  }
387
407
 
388
408
  /**
409
+ * Updates value using the provided key1.
389
410
  * @param {K1} key1 first key
390
411
  * @param {K2} key2 second key
391
412
  * @param {T | undefined} value new value
@@ -405,6 +426,7 @@ class TwoKeyWeakMap {
405
426
  const concatComparatorsCache = new TwoKeyWeakMap();
406
427
 
407
428
  /**
429
+ * Concat comparators.
408
430
  * @template T
409
431
  * @param {Comparator<T>} c1 comparator
410
432
  * @param {Comparator<T>} c2 comparator
@@ -421,6 +443,7 @@ const concatComparators = (c1, c2, ...cRest) => {
421
443
  );
422
444
  if (cacheEntry !== undefined) return cacheEntry;
423
445
  /**
446
+ * Returns compare result.
424
447
  * @param {T} a first value
425
448
  * @param {T} b second value
426
449
  * @returns {-1 | 0 | 1} compare result
@@ -435,6 +458,7 @@ const concatComparators = (c1, c2, ...cRest) => {
435
458
  };
436
459
 
437
460
  /**
461
+ * Defines the selector type used by this module.
438
462
  * @template A, B
439
463
  * @typedef {(input: A) => B | undefined | null} Selector
440
464
  */
@@ -443,6 +467,7 @@ const concatComparators = (c1, c2, ...cRest) => {
443
467
  const compareSelectCache = new TwoKeyWeakMap();
444
468
 
445
469
  /**
470
+ * Compares the provided values and returns their ordering.
446
471
  * @template T
447
472
  * @template R
448
473
  * @param {Selector<T, R>} getter getter for value
@@ -453,6 +478,7 @@ const compareSelect = (getter, comparator) => {
453
478
  const cacheEntry = compareSelectCache.get(getter, comparator);
454
479
  if (cacheEntry !== undefined) return cacheEntry;
455
480
  /**
481
+ * Returns compare result.
456
482
  * @param {T} a first value
457
483
  * @param {T} b second value
458
484
  * @returns {-1 | 0 | 1} compare result
@@ -481,6 +507,7 @@ const compareIteratorsCache = new WeakMap();
481
507
  // TODO this is no longer needed when minimum node.js version is >= 12
482
508
  // since these versions ship with a stable sort function
483
509
  /**
510
+ * Keep original order.
484
511
  * @template T
485
512
  * @param {Iterable<T>} iterable original ordered list
486
513
  * @returns {Comparator<T>} comparator
@@ -500,6 +527,7 @@ const keepOriginalOrder = (iterable) => {
500
527
  };
501
528
 
502
529
  /**
530
+ * Compares chunks natural.
503
531
  * @param {ChunkGraph} chunkGraph the chunk graph
504
532
  * @returns {Comparator<Chunk>} comparator
505
533
  */
@@ -511,6 +539,7 @@ const compareChunksNatural = (chunkGraph) => {
511
539
  compareSelect((chunk) => chunk.runtime, compareRuntime),
512
540
  compareSelect(
513
541
  /**
542
+ * Handles the callback logic for this hook.
514
543
  * @param {Chunk} chunk a chunk
515
544
  * @returns {Iterable<Module>} modules
516
545
  */
@@ -591,6 +620,7 @@ module.exports.compareChunkGroupsByIndex = compareChunkGroupsByIndex;
591
620
  module.exports.compareChunks =
592
621
  createCachedParameterizedComparator(compareChunks);
593
622
  /**
623
+ * Returns compare result.
594
624
  * @param {Chunk} a chunk
595
625
  * @param {Chunk} b chunk
596
626
  * @returns {-1 | 0 | 1} compare result
@@ -617,6 +647,7 @@ module.exports.compareModulesById =
617
647
  module.exports.compareModulesByIdOrIdentifier =
618
648
  createCachedParameterizedComparator(compareModulesByIdOrIdentifier);
619
649
  /**
650
+ * Returns compare result.
620
651
  * @param {Module} a module
621
652
  * @param {Module} b module
622
653
  * @returns {-1 | 0 | 1} compare result
@@ -6,12 +6,14 @@
6
6
  "use strict";
7
7
 
8
8
  /**
9
+ * Returns quoted meta.
9
10
  * @param {string} str string
10
11
  * @returns {string} quoted meta
11
12
  */
12
13
  const quoteMeta = (str) => str.replace(/[-[\]\\/{}()*+?.^$|]/g, "\\$&");
13
14
 
14
15
  /**
16
+ * Quote meta in char class.
15
17
  * @param {string} char character to escape for use in character class
16
18
  * @returns {string} escaped character
17
19
  */
@@ -85,6 +87,7 @@ const formatRange = (start, end) => {
85
87
  };
86
88
 
87
89
  /**
90
+ * Returns string.
88
91
  * @param {string} str string
89
92
  * @returns {string} string
90
93
  */
@@ -96,6 +99,7 @@ const toSimpleString = (str) => {
96
99
  };
97
100
 
98
101
  /**
102
+ * Compile boolean matcher.
99
103
  * @param {Record<string | number, boolean>} map value map
100
104
  * @returns {boolean | ((value: string) => string)} true/false, when unconditionally true/false, or a template function to determine the value at runtime
101
105
  */
@@ -108,6 +112,7 @@ const compileBooleanMatcher = (map) => {
108
112
  };
109
113
 
110
114
  /**
115
+ * Compile boolean matcher from lists.
111
116
  * @param {string[]} positiveItems positive items
112
117
  * @param {string[]} negativeItems negative items
113
118
  * @returns {(value: string) => string} a template function to determine the value at runtime
@@ -132,6 +137,7 @@ const compileBooleanMatcherFromLists = (positiveItems, negativeItems) => {
132
137
  /** @typedef {string[][]} ListOfCommonItems */
133
138
 
134
139
  /**
140
+ * Returns list of common items.
135
141
  * @param {Set<string>} itemsSet items set
136
142
  * @param {(str: string) => string | false} getKey get key function
137
143
  * @param {(str: string[]) => boolean} condition condition
@@ -166,6 +172,7 @@ const popCommonItems = (itemsSet, getKey, condition) => {
166
172
  };
167
173
 
168
174
  /**
175
+ * Gets common prefix.
169
176
  * @param {string[]} items items
170
177
  * @returns {string} common prefix
171
178
  */
@@ -184,6 +191,7 @@ const getCommonPrefix = (items) => {
184
191
  };
185
192
 
186
193
  /**
194
+ * Gets common suffix.
187
195
  * @param {string[]} items items
188
196
  * @returns {string} common suffix
189
197
  */
@@ -202,6 +210,7 @@ const getCommonSuffix = (items) => {
202
210
  };
203
211
 
204
212
  /**
213
+ * Returns regexp.
205
214
  * @param {string[]} itemsArr array of items
206
215
  * @returns {string} regexp
207
216
  */
@@ -18,6 +18,7 @@ const DEFAULT_EXPORT = "__WEBPACK_DEFAULT_EXPORT__";
18
18
  const NAMESPACE_OBJECT_EXPORT = "__WEBPACK_NAMESPACE_OBJECT__";
19
19
 
20
20
  /**
21
+ * Gets all references.
21
22
  * @param {Variable} variable variable
22
23
  * @returns {Reference[]} references
23
24
  */
@@ -37,6 +38,7 @@ const getAllReferences = (variable) => {
37
38
  };
38
39
 
39
40
  /**
41
+ * Returns result.
40
42
  * @param {Node | Node[]} ast ast
41
43
  * @param {Node} node node
42
44
  * @returns {undefined | Node[]} result
@@ -49,6 +51,7 @@ const getPathInAst = (ast, node) => {
49
51
  const nr = /** @type {Range} */ (node.range);
50
52
 
51
53
  /**
54
+ * Returns result.
52
55
  * @param {Node} n node
53
56
  * @returns {Node[] | undefined} result
54
57
  */
@@ -92,6 +95,7 @@ const getPathInAst = (ast, node) => {
92
95
  };
93
96
 
94
97
  /**
98
+ * Returns found new name.
95
99
  * @param {string} oldName old name
96
100
  * @param {UsedNames} usedNamed1 used named 1
97
101
  * @param {UsedNames} usedNamed2 used named 2
@@ -142,6 +146,7 @@ function findNewName(oldName, usedNamed1, usedNamed2, extraInfo) {
142
146
  /** @typedef {Set<Scope>} ScopeSet */
143
147
 
144
148
  /**
149
+ * Adds scope symbols.
145
150
  * @param {Scope | null} s scope
146
151
  * @param {UsedNames} nameSet name set
147
152
  * @param {ScopeSet} scopeSet1 scope set 1
@@ -202,6 +207,7 @@ const RESERVED_NAMES = new Set(
202
207
  /** @typedef {Map<string, ScopeInfo>} UsedNamesInScopeInfo */
203
208
 
204
209
  /**
210
+ * Gets used names in scope info.
205
211
  * @param {UsedNamesInScopeInfo} usedNamesInScopeInfo used names in scope info
206
212
  * @param {string} module module identifier
207
213
  * @param {string} id export id
@@ -8,6 +8,7 @@
8
8
  /** @typedef {import("../../declarations/WebpackOptions").CssGeneratorExportsConvention} CssGeneratorExportsConvention */
9
9
  // Copy from css-loader
10
10
  /**
11
+ * Preserve camel case.
11
12
  * @param {string} string string
12
13
  * @returns {string} result
13
14
  */
@@ -51,6 +52,7 @@ const preserveCamelCase = (string) => {
51
52
 
52
53
  // Copy from css-loader
53
54
  /**
55
+ * Returns result.
54
56
  * @param {string} input input
55
57
  * @returns {string} result
56
58
  */
@@ -79,6 +81,7 @@ module.exports.camelCase = (input) => {
79
81
  };
80
82
 
81
83
  /**
84
+ * Returns results.
82
85
  * @param {string} input input
83
86
  * @param {CssGeneratorExportsConvention | undefined} convention convention
84
87
  * @returns {string[]} results
@@ -119,6 +122,7 @@ module.exports.cssExportConvention = (input, convention) => {
119
122
 
120
123
  // Copy from css-loader
121
124
  /**
125
+ * Returns result.
122
126
  * @param {string} input input
123
127
  * @returns {string} result
124
128
  */
@@ -10,6 +10,7 @@
10
10
  const URIRegEx = /^data:([^;,]+)?((?:;[^;,]+)*?)(?:;(base64)?)?,(.*)$/i;
11
11
 
12
12
  /**
13
+ * Decodes the provided uri.
13
14
  * @param {string} uri data URI
14
15
  * @returns {Buffer | null} decoded data
15
16
  */
@@ -11,16 +11,19 @@ const util = require("util");
11
11
  const deprecationCache = new Map();
12
12
 
13
13
  /**
14
+ * Defines the fake hook marker type used by this module.
14
15
  * @typedef {object} FakeHookMarker
15
16
  * @property {true} _fakeHook it's a fake hook
16
17
  */
17
18
 
18
19
  /**
20
+ * Defines the shared type used by this module.
19
21
  * @template T
20
22
  * @typedef {T & FakeHookMarker} FakeHook<T>
21
23
  */
22
24
 
23
25
  /**
26
+ * Creates a deprecation.
24
27
  * @param {string} message deprecation message
25
28
  * @param {string} code deprecation code
26
29
  * @returns {() => void} function to trigger deprecation
@@ -74,11 +77,13 @@ const DISABLED_METHODS = [
74
77
  ];
75
78
 
76
79
  /**
80
+ * Defines the set with deprecated array methods type used by this module.
77
81
  * @template T
78
82
  * @typedef {Set<T> & { [Symbol.isConcatSpreadable]: boolean } & { push: (...items: T[]) => void, length?: number } & { [P in DISABLED_METHODS_NAMES]: () => void } & { [P in COPY_METHODS_NAMES]: P extends keyof Array<T> ? () => Pick<Array<T>, P> : never }} SetWithDeprecatedArrayMethods
79
83
  */
80
84
 
81
85
  /**
86
+ * Processes the provided set.
82
87
  * @template T
83
88
  * @param {Set<T>} set new set
84
89
  * @param {string} name property name
@@ -139,11 +144,13 @@ module.exports.arrayToSetDeprecation = (set, name) => {
139
144
  };
140
145
  }
141
146
  /**
147
+ * Creates an index getter.
142
148
  * @param {number} index index
143
149
  * @returns {() => T | undefined} value
144
150
  */
145
151
  const createIndexGetter = (index) => {
146
152
  /**
153
+ * Returns the value at this location.
147
154
  * @this {Set<T>} a Set
148
155
  * @returns {T | undefined} the value at this location
149
156
  */
@@ -158,6 +165,7 @@ module.exports.arrayToSetDeprecation = (set, name) => {
158
165
  return fn;
159
166
  };
160
167
  /**
168
+ * Define index getter.
161
169
  * @param {number} index index
162
170
  */
163
171
  const defineIndexGetter = (index) => {
@@ -192,6 +200,7 @@ module.exports.arrayToSetDeprecation = (set, name) => {
192
200
  };
193
201
 
194
202
  /**
203
+ * Returns } SetDeprecatedArray.
195
204
  * @template T
196
205
  * @param {string} name name
197
206
  * @returns {{ new <T = EXPECTED_ANY>(values?: ReadonlyArray<T> | null): SetDeprecatedArray<T> }} SetDeprecatedArray
@@ -200,10 +209,12 @@ module.exports.createArrayToSetDeprecationSet = (name) => {
200
209
  let initialized = false;
201
210
 
202
211
  /**
212
+ * Represents SetDeprecatedArray.
203
213
  * @template T
204
214
  */
205
215
  class SetDeprecatedArray extends Set {
206
216
  /**
217
+ * Creates an instance of SetDeprecatedArray.
207
218
  * @param {ReadonlyArray<T> | null=} items items
208
219
  */
209
220
  constructor(items) {
@@ -222,6 +233,7 @@ module.exports.createArrayToSetDeprecationSet = (name) => {
222
233
  };
223
234
 
224
235
  /**
236
+ * Returns fake hook which redirects.
225
237
  * @template {object} T
226
238
  * @param {T} fakeHook fake hook implementation
227
239
  * @param {string=} message deprecation message (not deprecated when unset)
@@ -238,6 +250,7 @@ module.exports.createFakeHook = (fakeHook, message, code) => {
238
250
  };
239
251
 
240
252
  /**
253
+ * Deprecate all properties.
241
254
  * @template T
242
255
  * @param {T} obj object
243
256
  * @param {string} message deprecation message
@@ -269,6 +282,7 @@ const deprecateAllProperties = (obj, message, code) => {
269
282
  set: descriptor.writable
270
283
  ? util.deprecate(
271
284
  /**
285
+ * Handles the callback logic for this hook.
272
286
  * @template T
273
287
  * @param {T} v value
274
288
  * @returns {T} result
@@ -287,6 +301,7 @@ const deprecateAllProperties = (obj, message, code) => {
287
301
  module.exports.deprecateAllProperties = deprecateAllProperties;
288
302
 
289
303
  /**
304
+ * Returns frozen object with deprecation when modifying.
290
305
  * @template {object} T
291
306
  * @param {T} obj object
292
307
  * @param {string} name property name
@@ -302,6 +317,7 @@ module.exports.soonFrozenObjectDeprecation = (obj, name, code, note = "") => {
302
317
  new Proxy(obj, {
303
318
  set: util.deprecate(
304
319
  /**
320
+ * Handles the callback logic for this hook.
305
321
  * @param {object} target target
306
322
  * @param {string | symbol} property property
307
323
  * @param {EXPECTED_ANY} value value
@@ -315,6 +331,7 @@ module.exports.soonFrozenObjectDeprecation = (obj, name, code, note = "") => {
315
331
  ),
316
332
  defineProperty: util.deprecate(
317
333
  /**
334
+ * Handles the define property callback for this hook.
318
335
  * @param {object} target target
319
336
  * @param {string | symbol} property property
320
337
  * @param {PropertyDescriptor} descriptor descriptor
@@ -327,6 +344,7 @@ module.exports.soonFrozenObjectDeprecation = (obj, name, code, note = "") => {
327
344
  ),
328
345
  deleteProperty: util.deprecate(
329
346
  /**
347
+ * Handles the delete property callback for this hook.
330
348
  * @param {object} target target
331
349
  * @param {string | symbol} property property
332
350
  * @returns {boolean} result
@@ -337,6 +355,7 @@ module.exports.soonFrozenObjectDeprecation = (obj, name, code, note = "") => {
337
355
  ),
338
356
  setPrototypeOf: util.deprecate(
339
357
  /**
358
+ * Updates prototype of using the provided target.
340
359
  * @param {object} target target
341
360
  * @param {EXPECTED_OBJECT | null} proto proto
342
361
  * @returns {boolean} result
@@ -25,6 +25,7 @@
25
25
  // 3.2% that 5 or more groups are invalidated
26
26
 
27
27
  /**
28
+ * Returns the similarity as number.
28
29
  * @param {string} a key
29
30
  * @param {string} b key
30
31
  * @returns {number} the similarity as number
@@ -41,6 +42,7 @@ const similarity = (a, b) => {
41
42
  };
42
43
 
43
44
  /**
45
+ * Returns the common part and a single char for the difference.
44
46
  * @param {string} a key
45
47
  * @param {string} b key
46
48
  * @param {Set<string>} usedNames set of already used names
@@ -73,6 +75,7 @@ const getName = (a, b, usedNames) => {
73
75
  /** @typedef {Record<string, number>} Sizes */
74
76
 
75
77
  /**
78
+ * Adds the provided total to this object.
76
79
  * @param {Sizes} total total size
77
80
  * @param {Sizes} size single size
78
81
  * @returns {void}
@@ -84,6 +87,7 @@ const addSizeTo = (total, size) => {
84
87
  };
85
88
 
86
89
  /**
90
+ * Subtract size from.
87
91
  * @param {Sizes} total total size
88
92
  * @param {Sizes} size single size
89
93
  * @returns {void}
@@ -95,6 +99,7 @@ const subtractSizeFrom = (total, size) => {
95
99
  };
96
100
 
97
101
  /**
102
+ * Returns total size.
98
103
  * @template T
99
104
  * @param {Iterable<Node<T>>} nodes some nodes
100
105
  * @returns {Sizes} total size
@@ -109,6 +114,7 @@ const sumSize = (nodes) => {
109
114
  };
110
115
 
111
116
  /**
117
+ * Checks whether this object is too big.
112
118
  * @param {Sizes} size size
113
119
  * @param {Sizes} maxSize minimum size
114
120
  * @returns {boolean} true, when size is too big
@@ -124,6 +130,7 @@ const isTooBig = (size, maxSize) => {
124
130
  };
125
131
 
126
132
  /**
133
+ * Checks whether this object is too small.
127
134
  * @param {Sizes} size size
128
135
  * @param {Sizes} minSize minimum size
129
136
  * @returns {boolean} true, when size is too small
@@ -141,6 +148,7 @@ const isTooSmall = (size, minSize) => {
141
148
  /** @typedef {Set<string>} Types */
142
149
 
143
150
  /**
151
+ * Gets too small types.
144
152
  * @param {Sizes} size size
145
153
  * @param {Sizes} minSize minimum size
146
154
  * @returns {Types} set of types that are too small
@@ -158,6 +166,7 @@ const getTooSmallTypes = (size, minSize) => {
158
166
  };
159
167
 
160
168
  /**
169
+ * Gets number of matching size types.
161
170
  * @template {object} T
162
171
  * @param {T} size size
163
172
  * @param {Types} types types
@@ -172,6 +181,7 @@ const getNumberOfMatchingSizeTypes = (size, types) => {
172
181
  };
173
182
 
174
183
  /**
184
+ * Selective size sum.
175
185
  * @param {Sizes} size size
176
186
  * @param {Types} types types
177
187
  * @returns {number} selective size sum
@@ -185,10 +195,12 @@ const selectiveSizeSum = (size, types) => {
185
195
  };
186
196
 
187
197
  /**
198
+ * Represents the node runtime component.
188
199
  * @template T
189
200
  */
190
201
  class Node {
191
202
  /**
203
+ * Creates an instance of Node.
192
204
  * @param {T} item item
193
205
  * @param {string} key key
194
206
  * @param {Sizes} size size
@@ -203,10 +215,12 @@ class Node {
203
215
  /** @typedef {number[]} Similarities */
204
216
 
205
217
  /**
218
+ * Represents the group runtime component.
206
219
  * @template T
207
220
  */
208
221
  class Group {
209
222
  /**
223
+ * Creates an instance of Group.
210
224
  * @param {Node<T>[]} nodes nodes
211
225
  * @param {Similarities | null} similarities similarities between the nodes (length = nodes.length - 1)
212
226
  * @param {Sizes=} size size of the group
@@ -220,6 +234,7 @@ class Group {
220
234
  }
221
235
 
222
236
  /**
237
+ * Returns removed nodes.
223
238
  * @param {(node: Node<T>) => boolean} filter filter function
224
239
  * @returns {Node<T>[] | undefined} removed nodes
225
240
  */
@@ -257,6 +272,7 @@ class Group {
257
272
  }
258
273
 
259
274
  /**
275
+ * Returns similarities.
260
276
  * @template T
261
277
  * @param {Iterable<Node<T>>} nodes nodes
262
278
  * @returns {Similarities} similarities
@@ -277,6 +293,7 @@ const getSimilarities = (nodes) => {
277
293
  };
278
294
 
279
295
  /**
296
+ * Defines the shared type used by this module.
280
297
  * @template T
281
298
  * @typedef {object} GroupedItems<T>
282
299
  * @property {string} key
@@ -285,6 +302,7 @@ const getSimilarities = (nodes) => {
285
302
  */
286
303
 
287
304
  /**
305
+ * Defines the options type used by this module.
288
306
  * @template T
289
307
  * @typedef {object} Options
290
308
  * @property {Sizes} maxSize maximum size of a group
@@ -295,6 +313,7 @@ const getSimilarities = (nodes) => {
295
313
  */
296
314
 
297
315
  /**
316
+ * Returns grouped items.
298
317
  * @template T
299
318
  * @param {Options<T>} options options object
300
319
  * @returns {GroupedItems<T>[]} grouped items
@@ -332,6 +351,7 @@ module.exports = ({ maxSize, minSize, items, getSize, getKey }) => {
332
351
  const initialGroup = new Group(initialNodes, getSimilarities(initialNodes));
333
352
 
334
353
  /**
354
+ * Removes problematic nodes.
335
355
  * @param {Group<T>} group group
336
356
  * @param {Sizes} consideredSize size of the group to consider
337
357
  * @returns {boolean} true, if the group was modified
@@ -16,6 +16,7 @@ const { isAbsolute, join } = require("./fs");
16
16
  /** @typedef {(resourcePath: string) => Promise<StringOrBuffer>} ReadResource */
17
17
 
18
18
  /**
19
+ * Defines the source mapping url type used by this module.
19
20
  * @typedef {object} SourceMappingURL
20
21
  * @property {string} sourceMappingURL
21
22
  * @property {string} replacementString
@@ -6,6 +6,7 @@
6
6
  "use strict";
7
7
 
8
8
  /**
9
+ * Returns script url and its global variable.
9
10
  * @param {string} urlAndGlobal the script request
10
11
  * @returns {string[]} script url and its global variable
11
12
  */