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
@@ -62,6 +62,7 @@ const {
62
62
  /** @typedef {import("./util/identifier").AssociatedObjectForCache} AssociatedObjectForCache */
63
63
 
64
64
  /**
65
+ * Defines the callback type used by this module.
65
66
  * @template T
66
67
  * @typedef {import("./Compiler").Callback<T>} Callback
67
68
  */
@@ -70,6 +71,7 @@ const {
70
71
  /** @typedef {Partial<NormalModuleCreateData & { settings: ModuleSettings }>} CreateData */
71
72
 
72
73
  /**
74
+ * Defines the resolve data type used by this module.
73
75
  * @typedef {object} ResolveData
74
76
  * @property {ModuleFactoryCreateData["contextInfo"]} contextInfo
75
77
  * @property {ModuleFactoryCreateData["resolveOptions"]} resolveOptions
@@ -88,6 +90,7 @@ const {
88
90
  */
89
91
 
90
92
  /**
93
+ * Defines the resource data type used by this module.
91
94
  * @typedef {object} ResourceData
92
95
  * @property {string} resource
93
96
  * @property {string=} path
@@ -97,6 +100,7 @@ const {
97
100
  */
98
101
 
99
102
  /**
103
+ * Defines the resource scheme data type used by this module.
100
104
  * @typedef {object} ResourceSchemeData
101
105
  * @property {string=} mimetype mime type of the resource
102
106
  * @property {string=} parameters additional parameters for the resource
@@ -107,6 +111,7 @@ const {
107
111
  /** @typedef {ResourceData & { data: ResourceSchemeData & Partial<ResolveRequest> }} ResourceDataWithData */
108
112
 
109
113
  /**
114
+ * Defines the parsed loader request type used by this module.
110
115
  * @typedef {object} ParsedLoaderRequest
111
116
  * @property {string} loader loader
112
117
  * @property {string | undefined} options options
@@ -143,6 +148,7 @@ const MATCH_RESOURCE_REGEX = /^([^!]+)!=!/;
143
148
  const LEADING_DOT_EXTENSION_REGEX = /^[^.]/;
144
149
 
145
150
  /**
151
+ * Returns ident.
146
152
  * @param {LoaderItem} data data
147
153
  * @returns {string} ident
148
154
  */
@@ -163,6 +169,7 @@ const loaderToIdent = (data) => {
163
169
  };
164
170
 
165
171
  /**
172
+ * Stringify loaders and resource.
166
173
  * @param {LoaderItem[]} loaders loaders
167
174
  * @param {string} resource resource
168
175
  * @returns {string} stringified loaders and resource
@@ -176,6 +183,7 @@ const stringifyLoadersAndResource = (loaders, resource) => {
176
183
  };
177
184
 
178
185
  /**
186
+ * Checks whether it needs calls.
179
187
  * @param {number} times times
180
188
  * @param {(err?: null | Error) => void} callback callback
181
189
  * @returns {(err?: null | Error) => void} callback
@@ -191,6 +199,7 @@ const needCalls = (times, callback) => (err) => {
191
199
  };
192
200
 
193
201
  /**
202
+ * Merges global options.
194
203
  * @template T
195
204
  * @template O
196
205
  * @param {T} globalOptions global options
@@ -221,6 +230,7 @@ const mergeGlobalOptions = (globalOptions, type, localOptions) => {
221
230
 
222
231
  // TODO webpack 6 remove
223
232
  /**
233
+ * Deprecation changed hook message.
224
234
  * @template {import("tapable").Hook<EXPECTED_ANY, EXPECTED_ANY>} T
225
235
  * @param {string} name name
226
236
  * @param {T} hook hook
@@ -311,6 +321,7 @@ const ruleSetCompiler = new RuleSetCompiler([
311
321
 
312
322
  /* eslint-disable jsdoc/type-formatting */
313
323
  /**
324
+ * Defines the shared type used by this module.
314
325
  * @typedef {[
315
326
  * [JAVASCRIPT_MODULE_TYPE_AUTO, JavascriptParser, JavascriptParserOptions, JavascriptGenerator, EmptyGeneratorOptions],
316
327
  * [JAVASCRIPT_MODULE_TYPE_DYNAMIC, JavascriptParser, JavascriptParserOptions, JavascriptGenerator, EmptyGeneratorOptions],
@@ -333,12 +344,14 @@ const ruleSetCompiler = new RuleSetCompiler([
333
344
  /* eslint-enable jsdoc/type-formatting */
334
345
 
335
346
  /**
347
+ * Defines the extract tuple elements type used by this module.
336
348
  * @template {unknown[]} T
337
349
  * @template {number[]} I
338
350
  * @typedef {{ [K in keyof I]: K extends keyof I ? I[K] extends keyof T ? T[I[K]] : never : never }} ExtractTupleElements
339
351
  */
340
352
 
341
353
  /**
354
+ * Represents the normal module factory runtime component.
342
355
  * @template {unknown[]} T
343
356
  * @template {number[]} A
344
357
  * @template [R=void]
@@ -347,6 +360,7 @@ const ruleSetCompiler = new RuleSetCompiler([
347
360
 
348
361
  class NormalModuleFactory extends ModuleFactory {
349
362
  /**
363
+ * Creates an instance of NormalModuleFactory.
350
364
  * @param {object} param params
351
365
  * @param {string=} param.context context
352
366
  * @param {InputFileSystem} param.fs file system
@@ -868,6 +882,7 @@ class NormalModuleFactory extends ModuleFactory {
868
882
  );
869
883
 
870
884
  /**
885
+ * Processes the provided string.
871
886
  * @param {string} context context
872
887
  */
873
888
  const defaultResolve = (context) => {
@@ -972,6 +987,7 @@ class NormalModuleFactory extends ModuleFactory {
972
987
  }
973
988
 
974
989
  /**
990
+ * Processes the provided data.
975
991
  * @param {ModuleFactoryCreateData} data data object
976
992
  * @param {ModuleFactoryCallback} callback callback
977
993
  * @returns {void}
@@ -1080,6 +1096,7 @@ class NormalModuleFactory extends ModuleFactory {
1080
1096
  }
1081
1097
 
1082
1098
  /**
1099
+ * Processes the provided context info.
1083
1100
  * @param {ModuleFactoryCreateDataContextInfo} contextInfo context info
1084
1101
  * @param {string} context context
1085
1102
  * @param {string} unresolvedResource unresolved resource
@@ -1152,6 +1169,7 @@ ${hints.join("\n\n")}`;
1152
1169
  }
1153
1170
 
1154
1171
  /**
1172
+ * Resolve resource error hints.
1155
1173
  * @param {Error} error error
1156
1174
  * @param {ModuleFactoryCreateDataContextInfo} contextInfo context info
1157
1175
  * @param {string} context context
@@ -1277,6 +1295,7 @@ If changing the source code is not an option there is also a resolve options cal
1277
1295
  }
1278
1296
 
1279
1297
  /**
1298
+ * Resolves request array.
1280
1299
  * @param {ModuleFactoryCreateDataContextInfo} contextInfo context info
1281
1300
  * @param {string} context context
1282
1301
  * @param {LoaderItem[]} array array
@@ -1298,6 +1317,7 @@ If changing the source code is not an option there is also a resolve options cal
1298
1317
  asyncLib.map(
1299
1318
  array,
1300
1319
  /**
1320
+ * Handles the callback logic for this hook.
1301
1321
  * @param {LoaderItem} item item
1302
1322
  * @param {Callback<LoaderItem>} callback callback
1303
1323
  */
@@ -1376,6 +1396,7 @@ If changing the source code is not an option there is also a resolve options cal
1376
1396
  }
1377
1397
 
1378
1398
  /**
1399
+ * Returns parser.
1379
1400
  * @param {string} type type
1380
1401
  * @param {ParserOptions} parserOptions parser options
1381
1402
  * @returns {Parser} parser
@@ -1399,6 +1420,7 @@ If changing the source code is not an option there is also a resolve options cal
1399
1420
  }
1400
1421
 
1401
1422
  /**
1423
+ * Creates a parser from the provided type.
1402
1424
  * @param {string} type type
1403
1425
  * @param {ParserOptions} parserOptions parser options
1404
1426
  * @returns {Parser} parser
@@ -1418,6 +1440,7 @@ If changing the source code is not an option there is also a resolve options cal
1418
1440
  }
1419
1441
 
1420
1442
  /**
1443
+ * Returns generator.
1421
1444
  * @param {string} type type of generator
1422
1445
  * @param {GeneratorOptions} generatorOptions generator options
1423
1446
  * @returns {Generator} generator
@@ -1441,6 +1464,7 @@ If changing the source code is not an option there is also a resolve options cal
1441
1464
  }
1442
1465
 
1443
1466
  /**
1467
+ * Creates a generator.
1444
1468
  * @param {string} type type of generator
1445
1469
  * @param {GeneratorOptions} generatorOptions generator options
1446
1470
  * @returns {Generator} generator
@@ -1462,6 +1486,7 @@ If changing the source code is not an option there is also a resolve options cal
1462
1486
  }
1463
1487
 
1464
1488
  /**
1489
+ * Returns the resolver.
1465
1490
  * @param {Parameters<ResolverFactory["get"]>[0]} type type of resolver
1466
1491
  * @param {Parameters<ResolverFactory["get"]>[1]=} resolveOptions options
1467
1492
  * @returns {ReturnType<ResolverFactory["get"]>} the resolver
@@ -27,7 +27,7 @@ class NormalModuleReplacementPlugin {
27
27
  }
28
28
 
29
29
  /**
30
- * Apply the plugin
30
+ * Applies the plugin by registering its hooks on the compiler.
31
31
  * @param {Compiler} compiler the compiler instance
32
32
  * @returns {void}
33
33
  */
@@ -12,6 +12,7 @@ const ModuleFactory = require("./ModuleFactory");
12
12
 
13
13
  class NullFactory extends ModuleFactory {
14
14
  /**
15
+ * Processes the provided data.
15
16
  * @param {ModuleFactoryCreateData} data data object
16
17
  * @param {ModuleFactoryCallback} callback callback
17
18
  * @returns {void}
@@ -11,6 +11,7 @@
11
11
 
12
12
  class OptionsApply {
13
13
  /**
14
+ * Returns options object.
14
15
  * @param {WebpackOptions} options options object
15
16
  * @param {Compiler} compiler compiler object
16
17
  * @param {WebpackOptionsInterception=} interception intercepted options
package/lib/Parser.js CHANGED
@@ -12,6 +12,7 @@
12
12
  /** @typedef {Record<string, EXPECTED_ANY>} PreparsedAst */
13
13
 
14
14
  /**
15
+ * Defines the parser state base type used by this module.
15
16
  * @typedef {object} ParserStateBase
16
17
  * @property {string | Buffer} source
17
18
  * @property {NormalModule} current
@@ -25,6 +26,7 @@
25
26
  class Parser {
26
27
  /* istanbul ignore next */
27
28
  /**
29
+ * Parses the provided source and updates the parser state.
28
30
  * @abstract
29
31
  * @param {string | Buffer | PreparsedAst} source the source to parse
30
32
  * @param {ParserState} state the parser state
@@ -16,6 +16,7 @@ const PLUGIN_NAME = "PlatformPlugin";
16
16
  */
17
17
  class PlatformPlugin {
18
18
  /**
19
+ * Creates an instance of PlatformPlugin.
19
20
  * @param {Partial<PlatformTargetProperties>} platform target properties
20
21
  */
21
22
  constructor(platform) {
@@ -24,7 +25,7 @@ class PlatformPlugin {
24
25
  }
25
26
 
26
27
  /**
27
- * Apply the plugin
28
+ * Applies the plugin by registering its hooks on the compiler.
28
29
  * @param {Compiler} compiler the compiler instance
29
30
  * @returns {void}
30
31
  */
@@ -13,6 +13,7 @@ const PLUGIN_NAME = "PrefetchPlugin";
13
13
 
14
14
  class PrefetchPlugin {
15
15
  /**
16
+ * Creates an instance of PrefetchPlugin.
16
17
  * @param {string} context context or request if context is not set
17
18
  * @param {string=} request request
18
19
  */
@@ -27,7 +28,7 @@ class PrefetchPlugin {
27
28
  }
28
29
 
29
30
  /**
30
- * Apply the plugin
31
+ * Applies the plugin by registering its hooks on the compiler.
31
32
  * @param {Compiler} compiler the compiler instance
32
33
  * @returns {void}
33
34
  */
@@ -12,6 +12,7 @@ const { contextify } = require("./util/identifier");
12
12
 
13
13
  /** @typedef {import("tapable").Tap} Tap */
14
14
  /**
15
+ * Defines the hook type used by this module.
15
16
  * @template T, R, AdditionalOptions
16
17
  * @typedef {import("tapable").Hook<T, R, AdditionalOptions>} Hook
17
18
  */
@@ -25,17 +26,20 @@ const { contextify } = require("./util/identifier");
25
26
  /** @typedef {import("./logging/Logger").Logger} Logger */
26
27
 
27
28
  /**
29
+ * Defines the async queue type used by this module.
28
30
  * @template T, K, R
29
31
  * @typedef {import("./util/AsyncQueue")<T, K, R>} AsyncQueue
30
32
  */
31
33
 
32
34
  /**
35
+ * Defines the counts data type used by this module.
33
36
  * @typedef {object} CountsData
34
37
  * @property {number} modulesCount modules count
35
38
  * @property {number} dependenciesCount dependencies count
36
39
  */
37
40
 
38
41
  /**
42
+ * Returns median.
39
43
  * @param {number} a a
40
44
  * @param {number} b b
41
45
  * @param {number} c c
@@ -46,6 +50,7 @@ const median3 = (a, b, c) => a + b + c - Math.max(a, b, c) - Math.min(a, b, c);
46
50
  /** @typedef {(percentage: number, msg: string, ...args: string[]) => void} HandlerFn */
47
51
 
48
52
  /**
53
+ * Creates a default handler.
49
54
  * @param {boolean | null | undefined} profile need profile
50
55
  * @param {Logger} logger logger
51
56
  * @returns {HandlerFn} default handler
@@ -122,6 +127,7 @@ const createDefaultHandler = (profile, logger) => {
122
127
  const SKIPPED_QUEUE_CONTEXTS = ["import-module", "load-module"];
123
128
 
124
129
  /**
130
+ * Defines the report progress callback.
125
131
  * @callback ReportProgress
126
132
  * @param {number} p percentage
127
133
  * @param {...string} args additional arguments
@@ -147,6 +153,7 @@ const DEFAULT_OPTIONS = {
147
153
 
148
154
  class ProgressPlugin {
149
155
  /**
156
+ * Returns a progress reporter, if any.
150
157
  * @param {Compiler} compiler the current compiler
151
158
  * @returns {ReportProgress | undefined} a progress reporter, if any
152
159
  */
@@ -155,6 +162,7 @@ class ProgressPlugin {
155
162
  }
156
163
 
157
164
  /**
165
+ * Creates an instance of ProgressPlugin.
158
166
  * @param {ProgressPluginArgument} options options
159
167
  */
160
168
  constructor(options = {}) {
@@ -167,21 +175,20 @@ class ProgressPlugin {
167
175
  /** @type {ProgressPluginOptions} */
168
176
  this.options = options;
169
177
 
170
- this.profile = options.profile || DEFAULT_OPTIONS.profile;
171
- this.handler = options.handler;
172
- this.modulesCount = options.modulesCount || DEFAULT_OPTIONS.modulesCount;
173
- this.dependenciesCount =
174
- options.dependenciesCount || DEFAULT_OPTIONS.dependenciesCount;
175
- this.showEntries = options.entries || DEFAULT_OPTIONS.entries;
176
- this.showModules = options.modules || DEFAULT_OPTIONS.modules;
177
- this.showDependencies =
178
- options.dependencies || DEFAULT_OPTIONS.dependencies;
179
- this.showActiveModules =
180
- options.activeModules || DEFAULT_OPTIONS.activeModules;
181
- this.percentBy = options.percentBy || DEFAULT_OPTIONS.percentBy;
178
+ const merged = { ...DEFAULT_OPTIONS, ...options };
179
+ this.profile = merged.profile;
180
+ this.handler = merged.handler;
181
+ this.modulesCount = merged.modulesCount;
182
+ this.dependenciesCount = merged.dependenciesCount;
183
+ this.showEntries = merged.entries;
184
+ this.showModules = merged.modules;
185
+ this.showDependencies = merged.dependencies;
186
+ this.showActiveModules = merged.activeModules;
187
+ this.percentBy = merged.percentBy;
182
188
  }
183
189
 
184
190
  /**
191
+ * Applies the plugin by registering its hooks on the compiler.
185
192
  * @param {Compiler | MultiCompiler} compiler webpack compiler
186
193
  * @returns {void}
187
194
  */
@@ -200,6 +207,7 @@ class ProgressPlugin {
200
207
  }
201
208
 
202
209
  /**
210
+ * Apply on multi compiler.
203
211
  * @param {MultiCompiler} compiler webpack multi-compiler
204
212
  * @param {HandlerFn} handler function that executes for every progress step
205
213
  * @returns {void}
@@ -219,6 +227,7 @@ class ProgressPlugin {
219
227
  }
220
228
 
221
229
  /**
230
+ * Processes the provided compiler.
222
231
  * @param {Compiler} compiler webpack compiler
223
232
  * @param {HandlerFn} handler function that executes for every progress step
224
233
  * @returns {void}
@@ -333,6 +342,7 @@ class ProgressPlugin {
333
342
  };
334
343
 
335
344
  /**
345
+ * Processes the provided factorize queue.
336
346
  * @template T
337
347
  * @param {AsyncQueue<FactorizeModuleOptions, string, Module | ModuleFactoryResult>} factorizeQueue async queue
338
348
  * @param {T} _item item
@@ -355,6 +365,7 @@ class ProgressPlugin {
355
365
  };
356
366
 
357
367
  /**
368
+ * Processes the provided add module queue.
358
369
  * @template T
359
370
  * @param {AsyncQueue<Module, string, Module>} addModuleQueue async queue
360
371
  * @param {T} _item item
@@ -369,6 +380,7 @@ class ProgressPlugin {
369
380
 
370
381
  // only used when showActiveModules is set
371
382
  /**
383
+ * Processes the provided module.
372
384
  * @param {Module} module the module
373
385
  */
374
386
  const moduleBuild = (module) => {
@@ -381,6 +393,7 @@ class ProgressPlugin {
381
393
  };
382
394
 
383
395
  /**
396
+ * Processes the provided entry.
384
397
  * @param {Dependency} entry entry dependency
385
398
  * @param {EntryOptions} options options object
386
399
  */
@@ -390,6 +403,7 @@ class ProgressPlugin {
390
403
  };
391
404
 
392
405
  /**
406
+ * Processes the provided module.
393
407
  * @param {Module} module the module
394
408
  */
395
409
  const moduleDone = (module) => {
@@ -412,6 +426,7 @@ class ProgressPlugin {
412
426
  };
413
427
 
414
428
  /**
429
+ * Processes the provided entry.
415
430
  * @param {Dependency} entry entry dependency
416
431
  * @param {EntryOptions} options options object
417
432
  */
@@ -606,6 +621,7 @@ class ProgressPlugin {
606
621
  }
607
622
  });
608
623
  /**
624
+ * Processes the provided hook.
609
625
  * @template {Hook<EXPECTED_ANY, EXPECTED_ANY, EXPECTED_ANY>} T
610
626
  * @param {T} hook hook
611
627
  * @param {number} progress progress from 0 to 1
@@ -629,6 +645,7 @@ class ProgressPlugin {
629
645
  handler(progress, category, name);
630
646
  },
631
647
  /**
648
+ * Processes the provided tap.
632
649
  * @param {Tap} tap tap
633
650
  */
634
651
  tap(tap) {
@@ -24,6 +24,7 @@ const PLUGIN_NAME = "ProvidePlugin";
24
24
 
25
25
  class ProvidePlugin {
26
26
  /**
27
+ * Creates an instance of ProvidePlugin.
27
28
  * @param {Record<string, string | string[]>} definitions the provided identifiers
28
29
  */
29
30
  constructor(definitions) {
@@ -31,7 +32,7 @@ class ProvidePlugin {
31
32
  }
32
33
 
33
34
  /**
34
- * Apply the plugin
35
+ * Applies the plugin by registering its hooks on the compiler.
35
36
  * @param {Compiler} compiler the compiler instance
36
37
  * @returns {void}
37
38
  */
@@ -53,6 +54,7 @@ class ProvidePlugin {
53
54
  new ProvidedDependency.Template()
54
55
  );
55
56
  /**
57
+ * Handles the hook callback for this code path.
56
58
  * @param {JavascriptParser} parser the parser
57
59
  * @param {JavascriptParserOptions} parserOptions options
58
60
  * @returns {void}
package/lib/RawModule.js CHANGED
@@ -36,6 +36,7 @@ const makeSerializable = require("./util/makeSerializable");
36
36
 
37
37
  class RawModule extends Module {
38
38
  /**
39
+ * Creates an instance of RawModule.
39
40
  * @param {string} source source code
40
41
  * @param {string} identifier unique identifier
41
42
  * @param {string=} readableIdentifier readable identifier
@@ -50,6 +51,7 @@ class RawModule extends Module {
50
51
  }
51
52
 
52
53
  /**
54
+ * Returns the source types this module can generate.
53
55
  * @returns {SourceTypes} types available (do not mutate)
54
56
  */
55
57
  getSourceTypes() {
@@ -57,6 +59,7 @@ class RawModule extends Module {
57
59
  }
58
60
 
59
61
  /**
62
+ * Returns the unique identifier used to reference this module.
60
63
  * @returns {string} a unique identifier of the module
61
64
  */
62
65
  identifier() {
@@ -64,6 +67,7 @@ class RawModule extends Module {
64
67
  }
65
68
 
66
69
  /**
70
+ * Returns the estimated size for the requested source type.
67
71
  * @param {string=} type the source type for which the size should be estimated
68
72
  * @returns {number} the estimated size of the module (must be non-zero)
69
73
  */
@@ -72,6 +76,7 @@ class RawModule extends Module {
72
76
  }
73
77
 
74
78
  /**
79
+ * Returns a human-readable identifier for this module.
75
80
  * @param {RequestShortener} requestShortener the request shortener
76
81
  * @returns {string} a user readable identifier of the module
77
82
  */
@@ -82,6 +87,7 @@ class RawModule extends Module {
82
87
  }
83
88
 
84
89
  /**
90
+ * Checks whether the module needs to be rebuilt for the current build state.
85
91
  * @param {NeedBuildContext} context context info
86
92
  * @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
87
93
  * @returns {void}
@@ -91,6 +97,7 @@ class RawModule extends Module {
91
97
  }
92
98
 
93
99
  /**
100
+ * Builds the module using the provided compilation context.
94
101
  * @param {WebpackOptions} options webpack options
95
102
  * @param {Compilation} compilation the compilation
96
103
  * @param {ResolverWithOptions} resolver the resolver
@@ -107,6 +114,7 @@ class RawModule extends Module {
107
114
  }
108
115
 
109
116
  /**
117
+ * Gets side effects connection state.
110
118
  * @param {ModuleGraph} moduleGraph the module graph
111
119
  * @returns {ConnectionState} how this module should be connected to referencing modules when consumed for side-effects only
112
120
  */
@@ -119,6 +127,7 @@ class RawModule extends Module {
119
127
  }
120
128
 
121
129
  /**
130
+ * Generates code and runtime requirements for this module.
122
131
  * @param {CodeGenerationContext} context context for code generation
123
132
  * @returns {CodeGenerationResult} result
124
133
  */
@@ -137,6 +146,7 @@ class RawModule extends Module {
137
146
  }
138
147
 
139
148
  /**
149
+ * Updates the hash with the data contributed by this instance.
140
150
  * @param {Hash} hash the hash used to track dependencies
141
151
  * @param {UpdateHashContext} context context
142
152
  * @returns {void}
@@ -147,6 +157,7 @@ class RawModule extends Module {
147
157
  }
148
158
 
149
159
  /**
160
+ * Serializes this instance into the provided serializer context.
150
161
  * @param {ObjectSerializerContext} context context
151
162
  */
152
163
  serialize(context) {
@@ -161,6 +172,7 @@ class RawModule extends Module {
161
172
  }
162
173
 
163
174
  /**
175
+ * Restores this instance from the provided deserializer context.
164
176
  * @param {ObjectDeserializerContext} context context
165
177
  */
166
178
  deserialize(context) {
@@ -13,6 +13,7 @@ const identifierUtils = require("./util/identifier");
13
13
  /** @typedef {import("./Module")} Module */
14
14
 
15
15
  /**
16
+ * Defines the records chunks type used by this module.
16
17
  * @typedef {object} RecordsChunks
17
18
  * @property {Record<string, number>=} byName
18
19
  * @property {Record<string, number>=} bySource
@@ -20,18 +21,21 @@ const identifierUtils = require("./util/identifier");
20
21
  */
21
22
 
22
23
  /**
24
+ * Defines the records modules type used by this module.
23
25
  * @typedef {object} RecordsModules
24
26
  * @property {Record<string, number>=} byIdentifier
25
27
  * @property {number[]=} usedIds
26
28
  */
27
29
 
28
30
  /**
31
+ * Defines the records type used by this module.
29
32
  * @typedef {object} Records
30
33
  * @property {RecordsChunks=} chunks
31
34
  * @property {RecordsModules=} modules
32
35
  */
33
36
 
34
37
  /**
38
+ * Defines the record ids plugin options type used by this module.
35
39
  * @typedef {object} RecordIdsPluginOptions
36
40
  * @property {boolean=} portableIds true, when ids need to be portable
37
41
  */
@@ -42,6 +46,7 @@ const PLUGIN_NAME = "RecordIdsPlugin";
42
46
 
43
47
  class RecordIdsPlugin {
44
48
  /**
49
+ * Creates an instance of RecordIdsPlugin.
45
50
  * @param {RecordIdsPluginOptions=} options object
46
51
  */
47
52
  constructor(options) {
@@ -49,6 +54,7 @@ class RecordIdsPlugin {
49
54
  }
50
55
 
51
56
  /**
57
+ * Applies the plugin by registering its hooks on the compiler.
52
58
  * @param {Compiler} compiler the Compiler
53
59
  * @returns {void}
54
60
  */
@@ -62,6 +68,7 @@ class RecordIdsPlugin {
62
68
  );
63
69
 
64
70
  /**
71
+ * Gets module identifier.
65
72
  * @param {Module} module the module
66
73
  * @returns {string} the (portable) identifier
67
74
  */
@@ -113,6 +120,7 @@ class RecordIdsPlugin {
113
120
  /** @typedef {string[]} ChunkSources */
114
121
 
115
122
  /**
123
+ * Gets chunk sources.
116
124
  * @param {Chunk} chunk the chunk
117
125
  * @returns {ChunkSources} sources of the chunk
118
126
  */
@@ -9,8 +9,14 @@ const { contextify } = require("./util/identifier");
9
9
 
10
10
  /** @typedef {import("./util/identifier").AssociatedObjectForCache} AssociatedObjectForCache */
11
11
 
12
+ /**
13
+ * Shortens absolute or verbose request strings so diagnostics and stats output
14
+ * can be rendered relative to a chosen base directory.
15
+ */
12
16
  class RequestShortener {
13
17
  /**
18
+ * Binds a context-aware shortening function to the provided directory and
19
+ * optional cache owner.
14
20
  * @param {string} dir the directory
15
21
  * @param {AssociatedObjectForCache=} associatedObjectForCache an object to which the cache will be attached
16
22
  */
@@ -22,6 +28,8 @@ class RequestShortener {
22
28
  }
23
29
 
24
30
  /**
31
+ * Returns a request string rewritten relative to the configured directory
32
+ * when one is provided.
25
33
  * @param {string | undefined | null} request the request to shorten
26
34
  * @returns {string | undefined | null} the shortened request
27
35
  */
@@ -23,7 +23,7 @@ const PLUGIN_NAME = "RequireJsStuffPlugin";
23
23
 
24
24
  module.exports = class RequireJsStuffPlugin {
25
25
  /**
26
- * Apply the plugin
26
+ * Applies the plugin by registering its hooks on the compiler.
27
27
  * @param {Compiler} compiler the compiler instance
28
28
  * @returns {void}
29
29
  */
@@ -36,6 +36,7 @@ module.exports = class RequireJsStuffPlugin {
36
36
  new ConstDependency.Template()
37
37
  );
38
38
  /**
39
+ * Handles the hook callback for this code path.
39
40
  * @param {JavascriptParser} parser the parser
40
41
  * @param {JavascriptParserOptions} parserOptions options
41
42
  * @returns {void}