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
@@ -20,6 +20,7 @@ const memoize = require("./util/memoize");
20
20
  /** @typedef {import("./util/Hash")} Hash */
21
21
 
22
22
  /**
23
+ * Defines the if set type used by this module.
23
24
  * @template T
24
25
  * @typedef {import("tapable").IfSet<T>} IfSet
25
26
  */
@@ -31,6 +32,7 @@ const getJavascriptModulesPlugin = memoize(() =>
31
32
  // TODO webpack 6: remove this class
32
33
  class ModuleTemplate {
33
34
  /**
35
+ * Creates an instance of ModuleTemplate.
34
36
  * @param {RuntimeTemplate} runtimeTemplate the runtime template
35
37
  * @param {Compilation} compilation the compilation
36
38
  */
@@ -41,6 +43,7 @@ class ModuleTemplate {
41
43
  content: {
42
44
  tap: util.deprecate(
43
45
  /**
46
+ * Handles the callback logic for this hook.
44
47
  * @template AdditionalOptions
45
48
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
46
49
  * @param {(source: Source, module: Module, moduleRenderContext: ModuleRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
@@ -66,6 +69,7 @@ class ModuleTemplate {
66
69
  module: {
67
70
  tap: util.deprecate(
68
71
  /**
72
+ * Handles the callback logic for this hook.
69
73
  * @template AdditionalOptions
70
74
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
71
75
  * @param {(source: Source, module: Module, moduleRenderContext: ModuleRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
@@ -91,6 +95,7 @@ class ModuleTemplate {
91
95
  render: {
92
96
  tap: util.deprecate(
93
97
  /**
98
+ * Handles the callback logic for this hook.
94
99
  * @template AdditionalOptions
95
100
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
96
101
  * @param {(source: Source, module: Module, chunkRenderContext: ChunkRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
@@ -116,6 +121,7 @@ class ModuleTemplate {
116
121
  package: {
117
122
  tap: util.deprecate(
118
123
  /**
124
+ * Handles the callback logic for this hook.
119
125
  * @template AdditionalOptions
120
126
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
121
127
  * @param {(source: Source, module: Module, chunkRenderContext: ChunkRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
@@ -141,6 +147,7 @@ class ModuleTemplate {
141
147
  hash: {
142
148
  tap: util.deprecate(
143
149
  /**
150
+ * Handles the callback logic for this hook.
144
151
  * @template AdditionalOptions
145
152
  * @param {string | Tap & IfSet<AdditionalOptions>} options options
146
153
  * @param {(hash: Hash) => void} fn fn
@@ -159,6 +166,7 @@ class ModuleTemplate {
159
166
  Object.defineProperty(ModuleTemplate.prototype, "runtimeTemplate", {
160
167
  get: util.deprecate(
161
168
  /**
169
+ * Returns output options.
162
170
  * @this {ModuleTemplate}
163
171
  * @returns {RuntimeTemplate} output options
164
172
  */
@@ -14,6 +14,7 @@ const makeSerializable = require("./util/makeSerializable");
14
14
 
15
15
  class ModuleWarning extends WebpackError {
16
16
  /**
17
+ * Creates an instance of ModuleWarning.
17
18
  * @param {Error} warning error thrown
18
19
  * @param {{ from?: string | null }} info additional info
19
20
  */
@@ -40,6 +41,7 @@ class ModuleWarning extends WebpackError {
40
41
  }
41
42
 
42
43
  /**
44
+ * Serializes this instance into the provided serializer context.
43
45
  * @param {ObjectSerializerContext} context context
44
46
  */
45
47
  serialize(context) {
@@ -51,6 +53,7 @@ class ModuleWarning extends WebpackError {
51
53
  }
52
54
 
53
55
  /**
56
+ * Restores this instance from the provided deserializer context.
54
57
  * @param {ObjectDeserializerContext} context context
55
58
  */
56
59
  deserialize(context) {
@@ -15,10 +15,12 @@ const WebpackError = require("./WebpackError");
15
15
  const ArrayQueue = require("./util/ArrayQueue");
16
16
 
17
17
  /**
18
+ * Defines the shared type used by this module.
18
19
  * @template T
19
20
  * @typedef {import("tapable").AsyncSeriesHook<T>} AsyncSeriesHook<T>
20
21
  */
21
22
  /**
23
+ * Defines the shared type used by this module.
22
24
  * @template T
23
25
  * @template R
24
26
  * @typedef {import("tapable").SyncBailHook<T, R>} SyncBailHook<T, R>
@@ -27,6 +29,7 @@ const ArrayQueue = require("./util/ArrayQueue");
27
29
  /** @typedef {import("../declarations/WebpackOptions").WatchOptions} WatchOptions */
28
30
  /** @typedef {import("./Compiler")} Compiler */
29
31
  /**
32
+ * Defines the callback type used by this module.
30
33
  * @template T
31
34
  * @template [R=void]
32
35
  * @typedef {import("./webpack").Callback<T, R>} Callback
@@ -40,6 +43,7 @@ const ArrayQueue = require("./util/ArrayQueue");
40
43
  /** @typedef {import("./util/fs").WatchFileSystem} WatchFileSystem */
41
44
 
42
45
  /**
46
+ * Defines the run with dependencies handler callback.
43
47
  * @callback RunWithDependenciesHandler
44
48
  * @param {Compiler} compiler
45
49
  * @param {Callback<MultiStats>} callback
@@ -47,6 +51,7 @@ const ArrayQueue = require("./util/ArrayQueue");
47
51
  */
48
52
 
49
53
  /**
54
+ * Defines the multi compiler options type used by this module.
50
55
  * @typedef {object} MultiCompilerOptions
51
56
  * @property {number=} parallelism how many Compilers are allows to run at the same time in parallel
52
57
  */
@@ -57,6 +62,7 @@ const CLASS_NAME = "MultiCompiler";
57
62
 
58
63
  module.exports = class MultiCompiler {
59
64
  /**
65
+ * Creates an instance of MultiCompiler.
60
66
  * @param {Compiler[] | Record<string, Compiler>} compilers child compilers
61
67
  * @param {MultiCompilerOptions} options options
62
68
  */
@@ -129,6 +135,7 @@ module.exports = class MultiCompiler {
129
135
  _validateCompilersOptions() {
130
136
  if (this.compilers.length < 2) return;
131
137
  /**
138
+ * Adds the provided compiler to the multi compiler.
132
139
  * @param {Compiler} compiler compiler
133
140
  * @param {WebpackError} warning warning
134
141
  */
@@ -187,6 +194,7 @@ module.exports = class MultiCompiler {
187
194
  }
188
195
 
189
196
  /**
197
+ * Sets input file system.
190
198
  * @param {InputFileSystem} value the new input file system
191
199
  */
192
200
  set inputFileSystem(value) {
@@ -200,6 +208,7 @@ module.exports = class MultiCompiler {
200
208
  }
201
209
 
202
210
  /**
211
+ * Sets output file system.
203
212
  * @param {OutputFileSystem} value the new output file system
204
213
  */
205
214
  set outputFileSystem(value) {
@@ -213,6 +222,7 @@ module.exports = class MultiCompiler {
213
222
  }
214
223
 
215
224
  /**
225
+ * Sets watch file system.
216
226
  * @param {WatchFileSystem} value the new watch file system
217
227
  */
218
228
  set watchFileSystem(value) {
@@ -222,6 +232,7 @@ module.exports = class MultiCompiler {
222
232
  }
223
233
 
224
234
  /**
235
+ * Sets intermediate file system.
225
236
  * @param {IntermediateFileSystem} value the new intermediate file system
226
237
  */
227
238
  set intermediateFileSystem(value) {
@@ -235,6 +246,7 @@ module.exports = class MultiCompiler {
235
246
  }
236
247
 
237
248
  /**
249
+ * Gets infrastructure logger.
238
250
  * @param {string | (() => string)} name name of the logger, or function called once to get the logger name
239
251
  * @returns {Logger} a logger with that name
240
252
  */
@@ -243,6 +255,7 @@ module.exports = class MultiCompiler {
243
255
  }
244
256
 
245
257
  /**
258
+ * Updates dependencies using the provided compiler.
246
259
  * @param {Compiler} compiler the child compiler
247
260
  * @param {string[]} dependencies its dependencies
248
261
  * @returns {void}
@@ -252,6 +265,7 @@ module.exports = class MultiCompiler {
252
265
  }
253
266
 
254
267
  /**
268
+ * Validate dependencies.
255
269
  * @param {Callback<MultiStats>} callback signals when the validation is complete
256
270
  * @returns {boolean} true if the dependencies are valid
257
271
  */
@@ -261,6 +275,7 @@ module.exports = class MultiCompiler {
261
275
  /** @type {string[]} */
262
276
  const missing = [];
263
277
  /**
278
+ * Returns target was found.
264
279
  * @param {Compiler} compiler compiler
265
280
  * @returns {boolean} target was found
266
281
  */
@@ -273,6 +288,7 @@ module.exports = class MultiCompiler {
273
288
  return false;
274
289
  };
275
290
  /**
291
+ * Returns result.
276
292
  * @param {{ source: Compiler, target: Compiler }} e1 edge 1
277
293
  * @param {{ source: Compiler, target: Compiler }} e2 edge 2
278
294
  * @returns {number} result
@@ -333,6 +349,7 @@ module.exports = class MultiCompiler {
333
349
 
334
350
  // TODO webpack 6 remove
335
351
  /**
352
+ * Run with dependencies.
336
353
  * @deprecated This method should have been private
337
354
  * @param {Compiler[]} compilers the child compilers
338
355
  * @param {RunWithDependenciesHandler} fn a handler to run for each compiler
@@ -344,11 +361,13 @@ module.exports = class MultiCompiler {
344
361
  const fulfilledNames = new Set();
345
362
  let remainingCompilers = compilers;
346
363
  /**
364
+ * Checks whether this multi compiler is dependency fulfilled.
347
365
  * @param {string} d dependency
348
366
  * @returns {boolean} when dependency was fulfilled
349
367
  */
350
368
  const isDependencyFulfilled = (d) => fulfilledNames.has(d);
351
369
  /**
370
+ * Gets ready compilers.
352
371
  * @returns {Compiler[]} compilers
353
372
  */
354
373
  const getReadyCompilers = () => {
@@ -369,6 +388,7 @@ module.exports = class MultiCompiler {
369
388
  return readyCompilers;
370
389
  };
371
390
  /**
391
+ * Processes the provided stat.
372
392
  * @param {Callback<Stats[]>} callback callback
373
393
  * @returns {void}
374
394
  */
@@ -392,6 +412,7 @@ module.exports = class MultiCompiler {
392
412
  }
393
413
 
394
414
  /**
415
+ * Returns result of setup.
395
416
  * @template SetupResult
396
417
  * @param {(compiler: Compiler, index: number, doneCallback: Callback<Stats>, isBlocked: () => boolean, setChanged: () => void, setInvalid: () => void) => SetupResult} setup setup a single compiler
397
418
  * @param {(compiler: Compiler, setupResult: SetupResult, callback: Callback<Stats>) => void} run run/continue a single compiler
@@ -448,6 +469,7 @@ module.exports = class MultiCompiler {
448
469
  let running = 0;
449
470
  const parallelism = /** @type {number} */ (this._options.parallelism);
450
471
  /**
472
+ * Processes the provided node.
451
473
  * @param {Node} node node
452
474
  * @param {(Error | null)=} err error
453
475
  * @param {Stats=} stats result
@@ -483,6 +505,7 @@ module.exports = class MultiCompiler {
483
505
  processQueue();
484
506
  };
485
507
  /**
508
+ * Node invalid from parent.
486
509
  * @param {Node} node node
487
510
  * @returns {void}
488
511
  */
@@ -497,6 +520,7 @@ module.exports = class MultiCompiler {
497
520
  }
498
521
  };
499
522
  /**
523
+ * Processes the provided node.
500
524
  * @param {Node} node node
501
525
  * @returns {void}
502
526
  */
@@ -511,6 +535,7 @@ module.exports = class MultiCompiler {
511
535
  }
512
536
  };
513
537
  /**
538
+ * Processes the provided node.
514
539
  * @param {Node} node node
515
540
  * @returns {void}
516
541
  */
@@ -589,6 +614,7 @@ module.exports = class MultiCompiler {
589
614
  }
590
615
 
591
616
  /**
617
+ * Returns a compiler watcher.
592
618
  * @param {WatchOptions | WatchOptions[]} watchOptions the watcher's options
593
619
  * @param {Callback<MultiStats>} handler signals when the call finishes
594
620
  * @returns {MultiWatching | undefined} a compiler watcher
@@ -627,6 +653,7 @@ module.exports = class MultiCompiler {
627
653
  }
628
654
 
629
655
  /**
656
+ * Processes the provided multi stat.
630
657
  * @param {Callback<MultiStats>} callback signals when the call finishes
631
658
  * @returns {void}
632
659
  */
@@ -661,6 +688,7 @@ module.exports = class MultiCompiler {
661
688
  }
662
689
 
663
690
  /**
691
+ * Processes the provided error callback.
664
692
  * @param {ErrorCallback} callback signals when the compiler closes
665
693
  * @returns {void}
666
694
  */
package/lib/MultiStats.js CHANGED
@@ -17,6 +17,7 @@ const identifierUtils = require("./util/identifier");
17
17
  /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsError} StatsError */
18
18
 
19
19
  /**
20
+ * Returns indent.
20
21
  * @param {string} str string
21
22
  * @param {string} prefix pref
22
23
  * @returns {string} indent
@@ -31,6 +32,7 @@ const indent = (str, prefix) => {
31
32
 
32
33
  class MultiStats {
33
34
  /**
35
+ * Creates an instance of MultiStats.
34
36
  * @param {Stats[]} stats the child stats
35
37
  */
36
38
  constructor(stats) {
@@ -42,6 +44,7 @@ class MultiStats {
42
44
  }
43
45
 
44
46
  /**
47
+ * Checks whether this multi stats has errors.
45
48
  * @returns {boolean} true if a child compilation encountered an error
46
49
  */
47
50
  hasErrors() {
@@ -49,6 +52,7 @@ class MultiStats {
49
52
  }
50
53
 
51
54
  /**
55
+ * Checks whether this multi stats has warnings.
52
56
  * @returns {boolean} true if a child compilation had a warning
53
57
  */
54
58
  hasWarnings() {
@@ -56,6 +60,7 @@ class MultiStats {
56
60
  }
57
61
 
58
62
  /**
63
+ * Create child options.
59
64
  * @param {undefined | StatsValue} options stats options
60
65
  * @param {CreateStatsOptionsContext} context context
61
66
  * @returns {ChildOptions} context context
@@ -109,6 +114,7 @@ class MultiStats {
109
114
  }
110
115
 
111
116
  /**
117
+ * Returns json output.
112
118
  * @param {StatsValue=} options stats options
113
119
  * @returns {StatsCompilation} json output
114
120
  */
@@ -138,6 +144,7 @@ class MultiStats {
138
144
  obj.hash = obj.children.map((j) => j.hash).join("");
139
145
  }
140
146
  /**
147
+ * Returns result.
141
148
  * @param {StatsCompilation} j stats error
142
149
  * @param {StatsError} obj Stats error
143
150
  * @returns {StatsError} result
@@ -184,6 +191,7 @@ class MultiStats {
184
191
  }
185
192
 
186
193
  /**
194
+ * Returns a string representation.
187
195
  * @param {StatsValue=} options stats options
188
196
  * @returns {string} string output
189
197
  */
@@ -13,6 +13,7 @@ const asyncLib = require("neo-async");
13
13
 
14
14
  class MultiWatching {
15
15
  /**
16
+ * Creates an instance of MultiWatching.
16
17
  * @param {Watching[]} watchings child compilers' watchers
17
18
  * @param {MultiCompiler} compiler the compiler
18
19
  */
@@ -22,6 +23,7 @@ class MultiWatching {
22
23
  }
23
24
 
24
25
  /**
26
+ * Processes the provided error callback.
25
27
  * @param {ErrorCallback=} callback signals when the build has completed again
26
28
  * @returns {void}
27
29
  */
@@ -54,6 +56,7 @@ class MultiWatching {
54
56
  }
55
57
 
56
58
  /**
59
+ * Processes the provided error callback.
57
60
  * @param {ErrorCallback} callback signals when the watcher is closed
58
61
  * @returns {void}
59
62
  */
@@ -11,7 +11,7 @@ const PLUGIN_NAME = "NoEmitOnErrorsPlugin";
11
11
 
12
12
  class NoEmitOnErrorsPlugin {
13
13
  /**
14
- * Apply the plugin
14
+ * Applies the plugin by registering its hooks on the compiler.
15
15
  * @param {Compiler} compiler the compiler instance
16
16
  * @returns {void}
17
17
  */
@@ -12,6 +12,7 @@ const makeSerializable = require("./util/makeSerializable");
12
12
 
13
13
  class NodeStuffInWebError extends WebpackError {
14
14
  /**
15
+ * Creates an instance of NodeStuffInWebError.
15
16
  * @param {DependencyLocation} loc loc
16
17
  * @param {string} expression expression
17
18
  * @param {string} description description
@@ -36,6 +36,7 @@ const URL_MODULE_CONSTANT_FUNCTION_NAME = "__webpack_fileURLToPath__";
36
36
 
37
37
  class NodeStuffPlugin {
38
38
  /**
39
+ * Creates an instance of NodeStuffPlugin.
39
40
  * @param {NodeOptions} options options
40
41
  */
41
42
  constructor(options) {
@@ -43,7 +44,7 @@ class NodeStuffPlugin {
43
44
  }
44
45
 
45
46
  /**
46
- * Apply the plugin
47
+ * Applies the plugin by registering its hooks on the compiler.
47
48
  * @param {Compiler} compiler the compiler instance
48
49
  * @returns {void}
49
50
  */
@@ -63,12 +64,14 @@ class NodeStuffPlugin {
63
64
  );
64
65
 
65
66
  /**
67
+ * Processes the provided parser.
66
68
  * @param {JavascriptParser} parser the parser
67
69
  * @param {NodeOptions} nodeOptions options
68
70
  * @returns {void}
69
71
  */
70
72
  const globalHandler = (parser, nodeOptions) => {
71
73
  /**
74
+ * Returns const dependency.
72
75
  * @param {Expression} expr expression
73
76
  * @returns {ConstDependency} const dependency
74
77
  */
@@ -116,6 +119,7 @@ class NodeStuffPlugin {
116
119
  const hooks = ImportMetaPlugin.getCompilationHooks(compilation);
117
120
 
118
121
  /**
122
+ * Sets module constant.
119
123
  * @param {JavascriptParser} parser the parser
120
124
  * @param {"__filename" | "__dirname" | "import.meta.filename" | "import.meta.dirname"} expressionName expression name
121
125
  * @param {(module: NormalModule) => string} fn function
@@ -149,6 +153,7 @@ class NodeStuffPlugin {
149
153
  };
150
154
 
151
155
  /**
156
+ * Sets cached module constant.
152
157
  * @param {JavascriptParser} parser the parser
153
158
  * @param {"__filename" | "__dirname" | "import.meta.filename" | "import.meta.dirname"} expressionName expression name
154
159
  * @param {(module: NormalModule) => string} fn function
@@ -207,6 +212,7 @@ class NodeStuffPlugin {
207
212
  };
208
213
 
209
214
  /**
215
+ * Updates constant using the provided parser.
210
216
  * @param {JavascriptParser} parser the parser
211
217
  * @param {"__filename" | "__dirname" | "import.meta.filename" | "import.meta.dirname"} expressionName expression name
212
218
  * @param {string} value value
@@ -230,6 +236,7 @@ class NodeStuffPlugin {
230
236
  );
231
237
 
232
238
  /**
239
+ * Sets url module constant.
233
240
  * @param {JavascriptParser} parser the parser
234
241
  * @param {"__filename" | "__dirname" | "import.meta.filename" | "import.meta.dirname"} expressionName expression name
235
242
  * @param {"dirname" | "filename"} property property
@@ -344,6 +351,7 @@ class NodeStuffPlugin {
344
351
  };
345
352
 
346
353
  /**
354
+ * Dirname and filename handler.
347
355
  * @param {JavascriptParser} parser the parser
348
356
  * @param {NodeOptions} nodeOptions options
349
357
  * @param {{ dirname: "__dirname" | "import.meta.dirname", filename: "__filename" | "import.meta.filename" }} identifiers options
@@ -516,6 +524,7 @@ class NodeStuffPlugin {
516
524
  };
517
525
 
518
526
  /**
527
+ * Handles the hook callback for this code path.
519
528
  * @param {JavascriptParser} parser the parser
520
529
  * @param {JavascriptParserOptions} parserOptions the javascript parser options
521
530
  * @param {boolean} a true when we need to handle `__filename` and `__dirname`, otherwise false
@@ -6,7 +6,6 @@
6
6
  "use strict";
7
7
 
8
8
  const querystring = require("querystring");
9
- const parseJson = require("json-parse-even-better-errors");
10
9
  const { getContext, runLoaders } = require("loader-runner");
11
10
  const {
12
11
  AsyncSeriesBailHook,
@@ -53,6 +52,7 @@ const {
53
52
  } = require("./util/identifier");
54
53
  const makeSerializable = require("./util/makeSerializable");
55
54
  const memoize = require("./util/memoize");
55
+ const parseJson = require("./util/parseJson");
56
56
 
57
57
  /** @typedef {import("enhanced-resolve").ResolveContext} ResolveContext */
58
58
  /** @typedef {import("enhanced-resolve").ResolveRequest} ResolveRequest */
@@ -440,6 +440,7 @@ class NormalModule extends Module {
440
440
  }
441
441
 
442
442
  /**
443
+ * Returns the unique identifier used to reference this module.
443
444
  * @returns {string} a unique identifier of the module
444
445
  */
445
446
  identifier() {
@@ -453,6 +454,7 @@ class NormalModule extends Module {
453
454
  }
454
455
 
455
456
  /**
457
+ * Returns a human-readable identifier for this module.
456
458
  * @param {RequestShortener} requestShortener the request shortener
457
459
  * @returns {string} a user readable identifier of the module
458
460
  */
@@ -468,6 +470,7 @@ class NormalModule extends Module {
468
470
  }
469
471
 
470
472
  /**
473
+ * Gets the library identifier.
471
474
  * @param {LibIdentOptions} options options
472
475
  * @returns {LibIdent | null} an identifier for library inclusion
473
476
  */
@@ -482,6 +485,7 @@ class NormalModule extends Module {
482
485
  }
483
486
 
484
487
  /**
488
+ * Returns the path used when matching this module against rule conditions.
485
489
  * @returns {NameForCondition | null} absolute path which should be used for condition matching (usually the resource path)
486
490
  */
487
491
  nameForCondition() {
@@ -722,7 +726,9 @@ class NormalModule extends Module {
722
726
  if (typeof options === "string") {
723
727
  if (options.startsWith("{") && options.endsWith("}")) {
724
728
  try {
725
- options = parseJson(options);
729
+ options =
730
+ /** @type {LoaderItem["options"]} */
731
+ (parseJson(options));
726
732
  } catch (err) {
727
733
  throw new Error(
728
734
  `Cannot parse string options: ${/** @type {Error} */ (err).message}`,
@@ -1245,6 +1251,7 @@ class NormalModule extends Module {
1245
1251
  }
1246
1252
 
1247
1253
  /**
1254
+ * Builds the module using the provided compilation context.
1248
1255
  * @param {WebpackOptions} options webpack options
1249
1256
  * @param {Compilation} compilation the compilation
1250
1257
  * @param {ResolverWithOptions} resolver the resolver
@@ -1448,6 +1455,7 @@ class NormalModule extends Module {
1448
1455
  }
1449
1456
 
1450
1457
  /**
1458
+ * Returns the reason this module cannot be concatenated, when one exists.
1451
1459
  * @param {ConcatenationBailoutReasonContext} context context
1452
1460
  * @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
1453
1461
  */
@@ -1458,6 +1466,7 @@ class NormalModule extends Module {
1458
1466
  }
1459
1467
 
1460
1468
  /**
1469
+ * Gets side effects connection state.
1461
1470
  * @param {ModuleGraph} moduleGraph the module graph
1462
1471
  * @returns {ConnectionState} how this module should be connected to referencing modules when consumed for side-effects only
1463
1472
  */
@@ -1506,6 +1515,7 @@ class NormalModule extends Module {
1506
1515
  }
1507
1516
 
1508
1517
  /**
1518
+ * Returns the source types this module can generate.
1509
1519
  * @returns {SourceTypes} types available (do not mutate)
1510
1520
  */
1511
1521
  getSourceTypes() {
@@ -1518,6 +1528,7 @@ class NormalModule extends Module {
1518
1528
  }
1519
1529
 
1520
1530
  /**
1531
+ * Generates code and runtime requirements for this module.
1521
1532
  * @param {CodeGenerationContext} context context for code generation
1522
1533
  * @returns {CodeGenerationResult} result
1523
1534
  */
@@ -1596,6 +1607,7 @@ class NormalModule extends Module {
1596
1607
  }
1597
1608
 
1598
1609
  /**
1610
+ * Gets the original source.
1599
1611
  * @returns {Source | null} the original source for the module before webpack transformation
1600
1612
  */
1601
1613
  originalSource() {
@@ -1603,6 +1615,7 @@ class NormalModule extends Module {
1603
1615
  }
1604
1616
 
1605
1617
  /**
1618
+ * Invalidates the cached state associated with this value.
1606
1619
  * @returns {void}
1607
1620
  */
1608
1621
  invalidateBuild() {
@@ -1610,6 +1623,7 @@ class NormalModule extends Module {
1610
1623
  }
1611
1624
 
1612
1625
  /**
1626
+ * Checks whether the module needs to be rebuilt for the current build state.
1613
1627
  * @param {NeedBuildContext} context context info
1614
1628
  * @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
1615
1629
  * @returns {void}
@@ -1669,6 +1683,7 @@ class NormalModule extends Module {
1669
1683
  }
1670
1684
 
1671
1685
  /**
1686
+ * Returns the estimated size for the requested source type.
1672
1687
  * @param {string=} type the source type for which the size should be estimated
1673
1688
  * @returns {number} the estimated size of the module (must be non-zero)
1674
1689
  */
@@ -1690,6 +1705,7 @@ class NormalModule extends Module {
1690
1705
  }
1691
1706
 
1692
1707
  /**
1708
+ * Adds the provided file dependencies to the module.
1693
1709
  * @param {FileSystemDependencies} fileDependencies set where file dependencies are added to
1694
1710
  * @param {FileSystemDependencies} contextDependencies set where context dependencies are added to
1695
1711
  * @param {FileSystemDependencies} missingDependencies set where missing dependencies are added to
@@ -1723,6 +1739,7 @@ class NormalModule extends Module {
1723
1739
  }
1724
1740
 
1725
1741
  /**
1742
+ * Updates the hash with the data contributed by this instance.
1726
1743
  * @param {Hash} hash the hash used to track dependencies
1727
1744
  * @param {UpdateHashContext} context context
1728
1745
  * @returns {void}
@@ -1733,6 +1750,15 @@ class NormalModule extends Module {
1733
1750
  /** @type {string} */
1734
1751
  (buildInfo.hash)
1735
1752
  );
1753
+ // Clear cached source types and re-compute so that changes in incoming
1754
+ // connections (e.g. asset module newly referenced from JS via lazy
1755
+ // compilation) are reflected in the hash and trigger code generation
1756
+ // cache invalidation.
1757
+ // https://github.com/webpack/webpack/issues/20800
1758
+ this._sourceTypes = undefined;
1759
+ for (const type of this.getSourceTypes()) {
1760
+ hash.update(type);
1761
+ }
1736
1762
  /** @type {Generator} */
1737
1763
  (this.generator).updateHash(hash, {
1738
1764
  module: this,
@@ -1742,6 +1768,7 @@ class NormalModule extends Module {
1742
1768
  }
1743
1769
 
1744
1770
  /**
1771
+ * Serializes this instance into the provided serializer context.
1745
1772
  * @param {ObjectSerializerContext} context context
1746
1773
  */
1747
1774
  serialize(context) {
@@ -1784,6 +1811,7 @@ class NormalModule extends Module {
1784
1811
  }
1785
1812
 
1786
1813
  /**
1814
+ * Restores this instance from the provided deserializer context.
1787
1815
  * @param {ObjectDeserializerContext} context context
1788
1816
  */
1789
1817
  deserialize(context) {