webpack 5.106.1 → 5.106.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (553) hide show
  1. package/lib/APIPlugin.js +3 -1
  2. package/lib/AbstractMethodError.js +10 -1
  3. package/lib/AsyncDependenciesBlock.js +3 -0
  4. package/lib/AsyncDependencyToInitialChunkError.js +6 -1
  5. package/lib/AutomaticPrefetchPlugin.js +6 -1
  6. package/lib/BannerPlugin.js +10 -1
  7. package/lib/Cache.js +26 -1
  8. package/lib/CacheFacade.js +26 -0
  9. package/lib/CaseSensitiveModulesWarning.js +9 -1
  10. package/lib/Chunk.js +46 -0
  11. package/lib/ChunkGraph.js +111 -0
  12. package/lib/ChunkGroup.js +57 -13
  13. package/lib/ChunkTemplate.js +9 -0
  14. package/lib/CleanPlugin.js +14 -1
  15. package/lib/CodeGenerationResults.js +19 -0
  16. package/lib/CommentCompilationWarning.js +6 -0
  17. package/lib/CompatibilityPlugin.js +15 -1
  18. package/lib/Compilation.js +127 -1
  19. package/lib/Compiler.js +37 -4
  20. package/lib/ConcatenationScope.js +24 -1
  21. package/lib/ConditionalInitFragment.js +6 -0
  22. package/lib/ConstPlugin.js +4 -1
  23. package/lib/ContextExclusionPlugin.js +2 -1
  24. package/lib/ContextModule.js +12 -0
  25. package/lib/ContextModuleFactory.js +10 -0
  26. package/lib/ContextReplacementPlugin.js +4 -1
  27. package/lib/CssModule.js +6 -0
  28. package/lib/DefinePlugin.js +20 -7
  29. package/lib/DelegatedModule.js +13 -0
  30. package/lib/DelegatedModuleFactoryPlugin.js +3 -0
  31. package/lib/DelegatedPlugin.js +2 -1
  32. package/lib/DependenciesBlock.js +6 -1
  33. package/lib/Dependency.js +26 -3
  34. package/lib/DependencyTemplate.js +5 -0
  35. package/lib/DependencyTemplates.js +4 -0
  36. package/lib/DllEntryPlugin.js +2 -1
  37. package/lib/DllModule.js +11 -0
  38. package/lib/DllModuleFactory.js +1 -0
  39. package/lib/DllPlugin.js +2 -1
  40. package/lib/DllReferencePlugin.js +11 -6
  41. package/lib/DotenvPlugin.js +3 -0
  42. package/lib/DynamicEntryPlugin.js +3 -1
  43. package/lib/EntryOptionPlugin.js +3 -0
  44. package/lib/EntryPlugin.js +2 -1
  45. package/lib/Entrypoint.js +4 -0
  46. package/lib/EnvironmentPlugin.js +2 -1
  47. package/lib/ErrorHelpers.js +7 -0
  48. package/lib/EvalDevToolModulePlugin.js +3 -1
  49. package/lib/EvalSourceMapDevToolPlugin.js +3 -1
  50. package/lib/ExportsInfo.js +56 -2
  51. package/lib/ExportsInfoApiPlugin.js +2 -1
  52. package/lib/ExternalModule.js +38 -0
  53. package/lib/ExternalModuleFactoryPlugin.js +10 -0
  54. package/lib/ExternalsPlugin.js +2 -1
  55. package/lib/FileSystemInfo.js +105 -0
  56. package/lib/FlagAllModulesAsUsedPlugin.js +2 -1
  57. package/lib/FlagDependencyExportsPlugin.js +4 -1
  58. package/lib/FlagDependencyUsagePlugin.js +5 -1
  59. package/lib/FlagEntryExportAsUsedPlugin.js +2 -1
  60. package/lib/Generator.js +13 -0
  61. package/lib/GraphHelpers.js +3 -0
  62. package/lib/HookWebpackError.js +6 -0
  63. package/lib/HotModuleReplacementPlugin.js +9 -1
  64. package/lib/IgnoreErrorModuleFactory.js +2 -0
  65. package/lib/IgnorePlugin.js +2 -1
  66. package/lib/IgnoreWarningsPlugin.js +2 -1
  67. package/lib/InitFragment.js +10 -0
  68. package/lib/InvalidDependenciesModuleWarning.js +1 -0
  69. package/lib/JavascriptMetaInfoPlugin.js +2 -1
  70. package/lib/LibManifestPlugin.js +4 -1
  71. package/lib/LibraryTemplatePlugin.js +2 -1
  72. package/lib/LoaderOptionsPlugin.js +3 -1
  73. package/lib/LoaderTargetPlugin.js +2 -1
  74. package/lib/MainTemplate.js +15 -0
  75. package/lib/ManifestPlugin.js +9 -2
  76. package/lib/Module.js +82 -1
  77. package/lib/ModuleBuildError.js +3 -0
  78. package/lib/ModuleDependencyWarning.js +1 -0
  79. package/lib/ModuleError.js +2 -0
  80. package/lib/ModuleFactory.js +5 -0
  81. package/lib/ModuleFilenameHelpers.js +3 -0
  82. package/lib/ModuleGraph.js +66 -0
  83. package/lib/ModuleGraphConnection.js +9 -0
  84. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  85. package/lib/ModuleNotFoundError.js +1 -0
  86. package/lib/ModuleParseError.js +3 -0
  87. package/lib/ModuleRestoreError.js +1 -0
  88. package/lib/ModuleSourceTypeConstants.js +1 -0
  89. package/lib/ModuleStoreError.js +1 -0
  90. package/lib/ModuleTemplate.js +8 -0
  91. package/lib/ModuleWarning.js +3 -0
  92. package/lib/MultiCompiler.js +28 -0
  93. package/lib/MultiStats.js +8 -0
  94. package/lib/MultiWatching.js +3 -0
  95. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  96. package/lib/NodeStuffInWebError.js +1 -0
  97. package/lib/NodeStuffPlugin.js +10 -1
  98. package/lib/NormalModule.js +30 -2
  99. package/lib/NormalModuleFactory.js +25 -0
  100. package/lib/NormalModuleReplacementPlugin.js +1 -1
  101. package/lib/NullFactory.js +1 -0
  102. package/lib/OptionsApply.js +1 -0
  103. package/lib/Parser.js +2 -0
  104. package/lib/PlatformPlugin.js +2 -1
  105. package/lib/PrefetchPlugin.js +2 -1
  106. package/lib/ProgressPlugin.js +29 -12
  107. package/lib/ProvidePlugin.js +3 -1
  108. package/lib/RawModule.js +12 -0
  109. package/lib/RecordIdsPlugin.js +8 -0
  110. package/lib/RequestShortener.js +8 -0
  111. package/lib/RequireJsStuffPlugin.js +2 -1
  112. package/lib/ResolverFactory.js +5 -0
  113. package/lib/RuntimeGlobals.js +1 -0
  114. package/lib/RuntimeModule.js +13 -0
  115. package/lib/RuntimePlugin.js +2 -0
  116. package/lib/RuntimeTemplate.js +35 -1
  117. package/lib/SelfModuleFactory.js +2 -0
  118. package/lib/SizeFormatHelpers.js +1 -0
  119. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  120. package/lib/SourceMapDevToolPlugin.js +3 -1
  121. package/lib/Stats.js +5 -0
  122. package/lib/Template.js +20 -0
  123. package/lib/TemplatedPathPlugin.js +10 -3
  124. package/lib/UnhandledSchemeError.js +6 -0
  125. package/lib/UnsupportedFeatureWarning.js +1 -0
  126. package/lib/UseStrictPlugin.js +2 -1
  127. package/lib/WarnCaseSensitiveModulesPlugin.js +1 -1
  128. package/lib/WarnDeprecatedOptionPlugin.js +1 -1
  129. package/lib/WarnNoModeSetPlugin.js +1 -1
  130. package/lib/WatchIgnorePlugin.js +4 -1
  131. package/lib/Watching.js +14 -0
  132. package/lib/WebpackError.js +3 -0
  133. package/lib/WebpackIsIncludedPlugin.js +2 -0
  134. package/lib/WebpackOptionsApply.js +1 -0
  135. package/lib/WebpackOptionsDefaulter.js +1 -0
  136. package/lib/asset/AssetBytesGenerator.js +6 -0
  137. package/lib/asset/AssetBytesParser.js +1 -0
  138. package/lib/asset/AssetGenerator.js +20 -2
  139. package/lib/asset/AssetModulesPlugin.js +4 -1
  140. package/lib/asset/AssetParser.js +2 -0
  141. package/lib/asset/AssetSourceGenerator.js +6 -0
  142. package/lib/asset/AssetSourceParser.js +1 -0
  143. package/lib/asset/RawDataUrlModule.js +11 -0
  144. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  145. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
  146. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  147. package/lib/buildChunkGraph.js +15 -0
  148. package/lib/cache/AddBuildDependenciesPlugin.js +2 -1
  149. package/lib/cache/AddManagedPathsPlugin.js +2 -1
  150. package/lib/cache/IdleFileCachePlugin.js +2 -1
  151. package/lib/cache/MemoryCachePlugin.js +1 -1
  152. package/lib/cache/MemoryWithGcCachePlugin.js +3 -1
  153. package/lib/cache/PackFileCacheStrategy.js +29 -0
  154. package/lib/cache/ResolverCachePlugin.js +10 -1
  155. package/lib/cache/getLazyHashedEtag.js +4 -0
  156. package/lib/cache/mergeEtags.js +2 -0
  157. package/lib/cli.js +30 -0
  158. package/lib/config/browserslistTargetHandler.js +2 -0
  159. package/lib/config/defaults.js +35 -2
  160. package/lib/config/normalization.js +12 -0
  161. package/lib/config/target.js +11 -0
  162. package/lib/container/ContainerEntryDependency.js +2 -0
  163. package/lib/container/ContainerEntryModule.js +12 -0
  164. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  165. package/lib/container/ContainerExposedDependency.js +4 -0
  166. package/lib/container/ContainerPlugin.js +2 -1
  167. package/lib/container/ContainerReferencePlugin.js +2 -1
  168. package/lib/container/FallbackDependency.js +4 -0
  169. package/lib/container/FallbackItemDependency.js +1 -0
  170. package/lib/container/FallbackModule.js +12 -0
  171. package/lib/container/FallbackModuleFactory.js +1 -0
  172. package/lib/container/ModuleFederationPlugin.js +3 -1
  173. package/lib/container/RemoteModule.js +13 -0
  174. package/lib/container/RemoteRuntimeModule.js +1 -0
  175. package/lib/container/RemoteToExternalDependency.js +1 -0
  176. package/lib/container/options.js +7 -0
  177. package/lib/css/CssGenerator.js +35 -14
  178. package/lib/css/CssInjectStyleRuntimeModule.js +1 -0
  179. package/lib/css/CssLoadingRuntimeModule.js +1 -0
  180. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +1 -0
  181. package/lib/css/CssModulesPlugin.js +69 -3
  182. package/lib/css/CssParser.js +59 -1
  183. package/lib/css/walkCssTokens.js +31 -0
  184. package/lib/debug/ProfilingPlugin.js +19 -1
  185. package/lib/dependencies/AMDDefineDependency.js +7 -0
  186. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +12 -0
  187. package/lib/dependencies/AMDPlugin.js +4 -1
  188. package/lib/dependencies/AMDRequireArrayDependency.js +6 -0
  189. package/lib/dependencies/AMDRequireContextDependency.js +3 -0
  190. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  191. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +13 -0
  192. package/lib/dependencies/AMDRequireDependency.js +4 -0
  193. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  194. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  195. package/lib/dependencies/CachedConstDependency.js +6 -1
  196. package/lib/dependencies/CommonJsDependencyHelpers.js +1 -0
  197. package/lib/dependencies/CommonJsExportRequireDependency.js +8 -0
  198. package/lib/dependencies/CommonJsExportsDependency.js +4 -0
  199. package/lib/dependencies/CommonJsExportsParserPlugin.js +8 -0
  200. package/lib/dependencies/CommonJsFullRequireDependency.js +4 -0
  201. package/lib/dependencies/CommonJsImportsParserPlugin.js +20 -0
  202. package/lib/dependencies/CommonJsPlugin.js +4 -1
  203. package/lib/dependencies/CommonJsRequireContextDependency.js +3 -0
  204. package/lib/dependencies/CommonJsRequireDependency.js +3 -0
  205. package/lib/dependencies/CommonJsSelfReferenceDependency.js +5 -0
  206. package/lib/dependencies/ConstDependency.js +6 -1
  207. package/lib/dependencies/ContextDependency.js +8 -1
  208. package/lib/dependencies/ContextDependencyHelpers.js +3 -0
  209. package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
  210. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  211. package/lib/dependencies/ContextElementDependency.js +4 -0
  212. package/lib/dependencies/CreateRequireParserPlugin.js +6 -0
  213. package/lib/dependencies/CreateScriptUrlDependency.js +4 -0
  214. package/lib/dependencies/CriticalDependencyWarning.js +1 -0
  215. package/lib/dependencies/CssIcssExportDependency.js +10 -2
  216. package/lib/dependencies/CssIcssImportDependency.js +4 -1
  217. package/lib/dependencies/CssIcssSymbolDependency.js +5 -1
  218. package/lib/dependencies/CssImportDependency.js +4 -0
  219. package/lib/dependencies/CssUrlDependency.js +7 -0
  220. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  221. package/lib/dependencies/DllEntryDependency.js +3 -0
  222. package/lib/dependencies/DynamicExports.js +5 -0
  223. package/lib/dependencies/EntryDependency.js +1 -0
  224. package/lib/dependencies/ExportsInfoDependency.js +6 -0
  225. package/lib/dependencies/ExternalModuleDependency.js +5 -0
  226. package/lib/dependencies/ExternalModuleInitFragment.js +3 -0
  227. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +4 -0
  228. package/lib/dependencies/HarmonyAcceptDependency.js +6 -0
  229. package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
  230. package/lib/dependencies/HarmonyCompatibilityDependency.js +1 -0
  231. package/lib/dependencies/HarmonyDetectionParserPlugin.js +3 -0
  232. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -0
  233. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +2 -0
  234. package/lib/dependencies/HarmonyExportExpressionDependency.js +5 -0
  235. package/lib/dependencies/HarmonyExportHeaderDependency.js +4 -0
  236. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +33 -2
  237. package/lib/dependencies/HarmonyExportInitFragment.js +6 -0
  238. package/lib/dependencies/HarmonyExportSpecifierDependency.js +5 -0
  239. package/lib/dependencies/HarmonyExports.js +2 -0
  240. package/lib/dependencies/HarmonyImportDependency.js +11 -0
  241. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +9 -0
  242. package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -0
  243. package/lib/dependencies/HarmonyImportSpecifierDependency.js +17 -2
  244. package/lib/dependencies/HarmonyModulesPlugin.js +4 -1
  245. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -0
  246. package/lib/dependencies/ImportContextDependency.js +4 -0
  247. package/lib/dependencies/ImportDependency.js +5 -0
  248. package/lib/dependencies/ImportEagerDependency.js +2 -0
  249. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  250. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +3 -0
  251. package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
  252. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
  253. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
  254. package/lib/dependencies/ImportMetaPlugin.js +6 -0
  255. package/lib/dependencies/ImportParserPlugin.js +7 -0
  256. package/lib/dependencies/ImportPhase.js +6 -2
  257. package/lib/dependencies/ImportPlugin.js +2 -1
  258. package/lib/dependencies/ImportWeakDependency.js +2 -0
  259. package/lib/dependencies/JsonExportsDependency.js +6 -1
  260. package/lib/dependencies/LoaderDependency.js +2 -0
  261. package/lib/dependencies/LoaderImportDependency.js +2 -0
  262. package/lib/dependencies/LoaderPlugin.js +4 -1
  263. package/lib/dependencies/LocalModule.js +4 -0
  264. package/lib/dependencies/LocalModuleDependency.js +4 -0
  265. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  266. package/lib/dependencies/ModuleDecoratorDependency.js +7 -1
  267. package/lib/dependencies/ModuleDependency.js +7 -0
  268. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  269. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  270. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
  271. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
  272. package/lib/dependencies/ModuleInitFragmentDependency.js +4 -0
  273. package/lib/dependencies/NullDependency.js +2 -0
  274. package/lib/dependencies/PrefetchDependency.js +1 -0
  275. package/lib/dependencies/ProvidedDependency.js +6 -1
  276. package/lib/dependencies/PureExpressionDependency.js +7 -1
  277. package/lib/dependencies/RequireContextDependency.js +1 -0
  278. package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -0
  279. package/lib/dependencies/RequireContextPlugin.js +2 -1
  280. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  281. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -0
  282. package/lib/dependencies/RequireEnsureDependency.js +4 -0
  283. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  284. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  285. package/lib/dependencies/RequireHeaderDependency.js +4 -0
  286. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  287. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +3 -0
  288. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  289. package/lib/dependencies/RequireResolveContextDependency.js +3 -0
  290. package/lib/dependencies/RequireResolveDependency.js +1 -0
  291. package/lib/dependencies/RequireResolveHeaderDependency.js +5 -0
  292. package/lib/dependencies/RuntimeRequirementsDependency.js +5 -1
  293. package/lib/dependencies/StaticExportsDependency.js +3 -0
  294. package/lib/dependencies/SystemPlugin.js +4 -1
  295. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  296. package/lib/dependencies/URLContextDependency.js +3 -0
  297. package/lib/dependencies/URLDependency.js +6 -0
  298. package/lib/dependencies/URLPlugin.js +2 -0
  299. package/lib/dependencies/UnsupportedDependency.js +4 -0
  300. package/lib/dependencies/WebAssemblyExportImportedDependency.js +4 -0
  301. package/lib/dependencies/WebAssemblyImportDependency.js +4 -1
  302. package/lib/dependencies/WebpackIsIncludedDependency.js +2 -0
  303. package/lib/dependencies/WorkerDependency.js +6 -1
  304. package/lib/dependencies/WorkerPlugin.js +9 -1
  305. package/lib/dependencies/getFunctionExpression.js +1 -0
  306. package/lib/dependencies/processExportInfo.js +1 -0
  307. package/lib/electron/ElectronTargetPlugin.js +2 -1
  308. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  309. package/lib/esm/ModuleChunkFormatPlugin.js +5 -1
  310. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -1
  311. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +5 -0
  312. package/lib/formatLocation.js +2 -0
  313. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
  314. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  315. package/lib/hmr/LazyCompilationPlugin.js +20 -1
  316. package/lib/hmr/lazyCompilationBackend.js +2 -0
  317. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  318. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  319. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  320. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  321. package/lib/ids/IdHelpers.js +20 -0
  322. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  323. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  324. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  325. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  326. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  327. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  328. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  329. package/lib/index.js +5 -0
  330. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +1 -1
  331. package/lib/javascript/BasicEvaluatedExpression.js +4 -2
  332. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  333. package/lib/javascript/ChunkHelpers.js +1 -0
  334. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  335. package/lib/javascript/EnableChunkLoadingPlugin.js +5 -1
  336. package/lib/javascript/JavascriptGenerator.js +10 -0
  337. package/lib/javascript/JavascriptModulesPlugin.js +23 -1
  338. package/lib/javascript/JavascriptParser.js +163 -0
  339. package/lib/javascript/JavascriptParserHelpers.js +6 -0
  340. package/lib/javascript/StartupHelpers.js +5 -0
  341. package/lib/json/JsonData.js +5 -0
  342. package/lib/json/JsonGenerator.js +21 -0
  343. package/lib/json/JsonModulesPlugin.js +1 -1
  344. package/lib/json/JsonParser.js +8 -10
  345. package/lib/library/AbstractLibraryPlugin.js +16 -1
  346. package/lib/library/AmdLibraryPlugin.js +8 -0
  347. package/lib/library/AssignLibraryPlugin.js +16 -0
  348. package/lib/library/EnableLibraryPlugin.js +7 -1
  349. package/lib/library/ExportPropertyLibraryPlugin.js +9 -0
  350. package/lib/library/JsonpLibraryPlugin.js +8 -0
  351. package/lib/library/ModuleLibraryPlugin.js +12 -1
  352. package/lib/library/SystemLibraryPlugin.js +8 -0
  353. package/lib/library/UmdLibraryPlugin.js +16 -0
  354. package/lib/logging/Logger.js +17 -0
  355. package/lib/logging/createConsoleLogger.js +7 -0
  356. package/lib/logging/runtime.js +2 -0
  357. package/lib/logging/truncateArgs.js +2 -0
  358. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  359. package/lib/node/NodeEnvironmentPlugin.js +3 -1
  360. package/lib/node/NodeSourcePlugin.js +1 -1
  361. package/lib/node/NodeTargetPlugin.js +2 -1
  362. package/lib/node/NodeTemplatePlugin.js +3 -1
  363. package/lib/node/NodeWatchFileSystem.js +2 -0
  364. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +3 -0
  365. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +4 -1
  366. package/lib/node/ReadFileCompileWasmPlugin.js +4 -1
  367. package/lib/node/RequireChunkLoadingRuntimeModule.js +3 -0
  368. package/lib/node/nodeConsole.js +3 -0
  369. package/lib/optimize/AggressiveMergingPlugin.js +3 -1
  370. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  371. package/lib/optimize/ConcatenatedModule.js +11 -0
  372. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  373. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -1
  374. package/lib/optimize/InnerGraph.js +15 -0
  375. package/lib/optimize/InnerGraphPlugin.js +3 -1
  376. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  377. package/lib/optimize/MangleExportsPlugin.js +5 -1
  378. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  379. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  380. package/lib/optimize/MinMaxSizeWarning.js +1 -0
  381. package/lib/optimize/ModuleConcatenationPlugin.js +21 -1
  382. package/lib/optimize/RealContentHashPlugin.js +16 -1
  383. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  384. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  385. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  386. package/lib/optimize/SideEffectsFlagPlugin.js +7 -1
  387. package/lib/optimize/SplitChunksPlugin.js +49 -1
  388. package/lib/performance/AssetsOverSizeLimitWarning.js +1 -0
  389. package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -0
  390. package/lib/performance/SizeLimitsPlugin.js +7 -1
  391. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  392. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +6 -0
  393. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  394. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +1 -0
  395. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -0
  396. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  397. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  398. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  399. package/lib/rules/RuleSetCompiler.js +18 -0
  400. package/lib/rules/UseEffectRulePlugin.js +6 -0
  401. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -0
  402. package/lib/runtime/AutoPublicPathRuntimeModule.js +1 -0
  403. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  404. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  405. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -0
  406. package/lib/runtime/CompatRuntimeModule.js +2 -0
  407. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -0
  408. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  409. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  410. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -0
  411. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  412. package/lib/runtime/GetChunkFilenameRuntimeModule.js +1 -0
  413. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  414. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  415. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -0
  416. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  417. package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -0
  418. package/lib/runtime/HelperRuntimeModule.js +5 -0
  419. package/lib/runtime/LoadScriptRuntimeModule.js +1 -0
  420. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +2 -0
  421. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -0
  422. package/lib/runtime/NonceRuntimeModule.js +1 -0
  423. package/lib/runtime/OnChunksLoadedRuntimeModule.js +1 -0
  424. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  425. package/lib/runtime/RelativeUrlRuntimeModule.js +1 -0
  426. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  427. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  428. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -0
  429. package/lib/runtime/StartupEntrypointRuntimeModule.js +1 -0
  430. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  431. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  432. package/lib/schemes/DataUriPlugin.js +1 -1
  433. package/lib/schemes/FileUriPlugin.js +1 -1
  434. package/lib/schemes/HttpUriPlugin.js +43 -1
  435. package/lib/schemes/VirtualUrlPlugin.js +6 -1
  436. package/lib/serialization/AggregateErrorSerializer.js +2 -0
  437. package/lib/serialization/ArraySerializer.js +2 -0
  438. package/lib/serialization/BinaryMiddleware.js +20 -1
  439. package/lib/serialization/DateObjectSerializer.js +2 -0
  440. package/lib/serialization/ErrorObjectSerializer.js +3 -0
  441. package/lib/serialization/FileMiddleware.js +21 -0
  442. package/lib/serialization/MapObjectSerializer.js +2 -0
  443. package/lib/serialization/NullPrototypeObjectSerializer.js +2 -0
  444. package/lib/serialization/ObjectMiddleware.js +23 -0
  445. package/lib/serialization/PlainObjectSerializer.js +7 -0
  446. package/lib/serialization/RegExpObjectSerializer.js +2 -0
  447. package/lib/serialization/Serializer.js +5 -0
  448. package/lib/serialization/SerializerMiddleware.js +12 -0
  449. package/lib/serialization/SetObjectSerializer.js +2 -0
  450. package/lib/serialization/SingleItemMiddleware.js +3 -0
  451. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  452. package/lib/sharing/ConsumeSharedModule.js +15 -0
  453. package/lib/sharing/ConsumeSharedPlugin.js +6 -1
  454. package/lib/sharing/ConsumeSharedRuntimeModule.js +1 -0
  455. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  456. package/lib/sharing/ProvideSharedDependency.js +4 -0
  457. package/lib/sharing/ProvideSharedModule.js +11 -0
  458. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  459. package/lib/sharing/ProvideSharedPlugin.js +4 -1
  460. package/lib/sharing/SharePlugin.js +2 -1
  461. package/lib/sharing/ShareRuntimeModule.js +1 -0
  462. package/lib/sharing/resolveMatchedConfigs.js +3 -0
  463. package/lib/sharing/utils.js +8 -0
  464. package/lib/stats/DefaultStatsFactoryPlugin.js +56 -1
  465. package/lib/stats/DefaultStatsPresetPlugin.js +11 -1
  466. package/lib/stats/DefaultStatsPrinterPlugin.js +37 -1
  467. package/lib/stats/StatsFactory.js +12 -0
  468. package/lib/stats/StatsPrinter.js +7 -0
  469. package/lib/url/URLParserPlugin.js +6 -0
  470. package/lib/util/AppendOnlyStackedSet.js +15 -0
  471. package/lib/util/ArrayHelpers.js +1 -0
  472. package/lib/util/ArrayQueue.js +10 -5
  473. package/lib/util/AsyncQueue.js +20 -0
  474. package/lib/util/IterableHelpers.js +3 -0
  475. package/lib/util/LazyBucketSortedSet.js +21 -0
  476. package/lib/util/LazySet.js +39 -0
  477. package/lib/util/ParallelismFactorCalculator.js +1 -0
  478. package/lib/util/Queue.js +6 -3
  479. package/lib/util/Semaphore.js +14 -1
  480. package/lib/util/SetHelpers.js +3 -0
  481. package/lib/util/SortableSet.js +6 -0
  482. package/lib/util/StackedCacheMap.js +20 -3
  483. package/lib/util/StackedMap.js +45 -0
  484. package/lib/util/StringXor.js +1 -1
  485. package/lib/util/TupleQueue.js +7 -3
  486. package/lib/util/TupleSet.js +13 -0
  487. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  488. package/lib/util/WeakTupleMap.js +33 -0
  489. package/lib/util/binarySearchBounds.js +1 -0
  490. package/lib/util/cleverMerge.js +17 -0
  491. package/lib/util/comparators.js +31 -0
  492. package/lib/util/compileBooleanMatcher.js +9 -0
  493. package/lib/util/concatenate.js +6 -0
  494. package/lib/util/conventions.js +4 -0
  495. package/lib/util/dataURL.js +1 -0
  496. package/lib/util/deprecation.js +19 -0
  497. package/lib/util/deterministicGrouping.js +20 -0
  498. package/lib/util/extractSourceMap.js +1 -0
  499. package/lib/util/extractUrlAndGlobal.js +1 -0
  500. package/lib/util/findGraphRoots.js +5 -0
  501. package/lib/util/fs.js +63 -0
  502. package/lib/util/generateDebugId.js +1 -0
  503. package/lib/util/hash/BatchedHash.js +1 -0
  504. package/lib/util/hash/BulkUpdateHash.js +1 -0
  505. package/lib/util/hash/hash-digest.js +8 -0
  506. package/lib/util/hash/wasm-hash.js +5 -0
  507. package/lib/util/identifier.js +19 -0
  508. package/lib/util/magicComment.js +1 -0
  509. package/lib/util/makeSerializable.js +6 -0
  510. package/lib/util/memoize.js +2 -0
  511. package/lib/util/mimeTypes.js +176 -0
  512. package/lib/util/nonNumericOnlyHash.js +1 -0
  513. package/lib/util/parseJson.js +112 -0
  514. package/lib/util/processAsyncTree.js +8 -0
  515. package/lib/util/property.js +1 -0
  516. package/lib/util/registerExternalSerializer.js +20 -0
  517. package/lib/util/removeBOM.js +1 -0
  518. package/lib/util/runtime.js +32 -0
  519. package/lib/util/semver.js +15 -0
  520. package/lib/util/serialization.js +2 -0
  521. package/lib/util/smartGrouping.js +8 -0
  522. package/lib/util/source.js +2 -0
  523. package/lib/validateSchema.js +1 -0
  524. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  525. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +1 -0
  526. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -0
  527. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  528. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -0
  529. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +10 -1
  530. package/lib/wasm-async/AsyncWebAssemblyParser.js +1 -0
  531. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +12 -1
  532. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +1 -0
  533. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +1 -0
  534. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +1 -1
  535. package/lib/wasm-sync/WebAssemblyGenerator.js +26 -1
  536. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +2 -0
  537. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  538. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -1
  539. package/lib/wasm-sync/WebAssemblyParser.js +2 -0
  540. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  541. package/lib/web/FetchCompileAsyncWasmPlugin.js +10 -1
  542. package/lib/web/FetchCompileWasmPlugin.js +13 -1
  543. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  544. package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -0
  545. package/lib/web/JsonpTemplatePlugin.js +2 -1
  546. package/lib/webpack.js +10 -0
  547. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  548. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -0
  549. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  550. package/package.json +12 -14
  551. package/schemas/WebpackOptions.check.js +1 -1
  552. package/schemas/WebpackOptions.json +44 -55
  553. package/types.d.ts +4594 -331
@@ -16,9 +16,14 @@ const AsyncWasmLoadingRuntimeModule = require("../wasm-async/AsyncWasmLoadingRun
16
16
 
17
17
  const PLUGIN_NAME = "UniversalCompileAsyncWasmPlugin";
18
18
 
19
+ /**
20
+ * Enables async WebAssembly loading that works in both browser-like and Node.js
21
+ * environments by selecting the appropriate binary-loading strategy at runtime.
22
+ */
19
23
  class UniversalCompileAsyncWasmPlugin {
20
24
  /**
21
- * Apply the plugin
25
+ * Registers compilation hooks that attach the universal async wasm runtime
26
+ * to chunks using `wasmLoading: "universal"`.
22
27
  * @param {Compiler} compiler the compiler instance
23
28
  * @returns {void}
24
29
  */
@@ -26,6 +31,8 @@ class UniversalCompileAsyncWasmPlugin {
26
31
  compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
27
32
  const globalWasmLoading = compilation.outputOptions.wasmLoading;
28
33
  /**
34
+ * Determines whether the chunk should use the universal async wasm
35
+ * loading backend.
29
36
  * @param {Chunk} chunk chunk
30
37
  * @returns {boolean} true, if wasm loading is enabled for the chunk
31
38
  */
@@ -44,6 +51,8 @@ class UniversalCompileAsyncWasmPlugin {
44
51
  "}"
45
52
  ]);
46
53
  /**
54
+ * Generates setup code that decides whether the current environment can
55
+ * use `fetch` and captures the wasm module URL.
47
56
  * @param {string} path path
48
57
  * @returns {string} code
49
58
  */
@@ -53,6 +62,8 @@ class UniversalCompileAsyncWasmPlugin {
53
62
  `var wasmUrl = ${path};`
54
63
  ]);
55
64
  /**
65
+ * Generates the runtime expression that fetches the binary in browsers
66
+ * or reads it from the filesystem in Node.js.
56
67
  * @type {(path: string) => string}
57
68
  */
58
69
  const generateLoadBinaryCode = () =>
@@ -8,6 +8,7 @@ const WebpackError = require("../WebpackError");
8
8
 
9
9
  module.exports = class UnsupportedWebAssemblyFeatureError extends WebpackError {
10
10
  /**
11
+ * Creates an instance of UnsupportedWebAssemblyFeatureError.
11
12
  * @param {string} message Error message
12
13
  */
13
14
  constructor(message) {
@@ -245,6 +245,7 @@ class WasmChunkLoadingRuntimeModule extends RuntimeModule {
245
245
  }
246
246
 
247
247
  /**
248
+ * Generates runtime code for this runtime module.
248
249
  * @returns {string | null} runtime code
249
250
  */
250
251
  generate() {
@@ -17,7 +17,7 @@ const PLUGIN_NAME = "WasmFinalizeExportsPlugin";
17
17
 
18
18
  class WasmFinalizeExportsPlugin {
19
19
  /**
20
- * Apply the plugin
20
+ * Applies the plugin by registering its hooks on the compiler.
21
21
  * @param {Compiler} compiler the compiler instance
22
22
  * @returns {void}
23
23
  */
@@ -17,11 +17,13 @@ const WebAssemblyUtils = require("./WebAssemblyUtils");
17
17
 
18
18
  /** @typedef {import("webpack-sources").Source} Source */
19
19
  /** @typedef {import("../Generator").GenerateContext} GenerateContext */
20
+ /** @typedef {import("../Generator").UpdateHashContext} UpdateHashContext */
20
21
  /** @typedef {import("../Module")} Module */
21
22
  /** @typedef {import("../Module").SourceType} SourceType */
22
23
  /** @typedef {import("../Module").SourceTypes} SourceTypes */
23
24
  /** @typedef {import("../ModuleGraph")} ModuleGraph */
24
25
  /** @typedef {import("../NormalModule")} NormalModule */
26
+ /** @typedef {import("../util/Hash")} Hash */
25
27
  /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
26
28
  /** @typedef {import("./WebAssemblyUtils").UsedWasmDependency} UsedWasmDependency */
27
29
  /** @typedef {import("@webassemblyjs/ast").Instruction} Instruction */
@@ -31,15 +33,18 @@ const WebAssemblyUtils = require("./WebAssemblyUtils");
31
33
  /** @typedef {import("@webassemblyjs/ast").AST} AST */
32
34
  /** @typedef {import("@webassemblyjs/ast").GlobalType} GlobalType */
33
35
  /**
36
+ * Defines the node path type used by this module.
34
37
  * @template T
35
38
  * @typedef {import("@webassemblyjs/ast").NodePath<T>} NodePath
36
39
  */
37
40
 
38
41
  /**
42
+ * Defines the array buffer transform type used by this module.
39
43
  * @typedef {(buf: ArrayBuffer) => ArrayBuffer} ArrayBufferTransform
40
44
  */
41
45
 
42
46
  /**
47
+ * Returns composed transform.
43
48
  * @template T
44
49
  * @param {((prev: ArrayBuffer) => ArrayBuffer)[]} fns transforms
45
50
  * @returns {(buf: ArrayBuffer) => ArrayBuffer} composed transform
@@ -51,7 +56,7 @@ const compose = (...fns) =>
51
56
  );
52
57
 
53
58
  /**
54
- * Removes the start instruction
59
+ * Removes start func.
55
60
  * @param {object} state state
56
61
  * @param {AST} state.ast Module's ast
57
62
  * @returns {ArrayBufferTransform} transform
@@ -200,6 +205,7 @@ const rewriteImportedGlobals = (state) => (bin) => {
200
205
  // in order to preserve non-imported global's order we need to re-inject
201
206
  // those as well
202
207
  /**
208
+ * Processes the provided path.
203
209
  * @param {NodePath<Global>} path path
204
210
  */
205
211
  Global(path) {
@@ -252,6 +258,7 @@ const rewriteExportNames =
252
258
  (bin) =>
253
259
  editWithAST(ast, bin, {
254
260
  /**
261
+ * Processes the provided path.
255
262
  * @param {NodePath<ModuleExport>} path path
256
263
  */
257
264
  ModuleExport(path) {
@@ -285,6 +292,7 @@ const rewriteImports =
285
292
  (bin) =>
286
293
  editWithAST(ast, bin, {
287
294
  /**
295
+ * Processes the provided path.
288
296
  * @param {NodePath<ModuleImport>} path path
289
297
  */
290
298
  ModuleImport(path) {
@@ -406,12 +414,14 @@ const getUsedDependencyMap = (moduleGraph, module, mangle) => {
406
414
  };
407
415
 
408
416
  /**
417
+ * Represents the web assembly generator runtime component.
409
418
  * @typedef {object} WebAssemblyGeneratorOptions
410
419
  * @property {boolean=} mangleImports mangle imports
411
420
  */
412
421
 
413
422
  class WebAssemblyGenerator extends Generator {
414
423
  /**
424
+ * Creates an instance of WebAssemblyGenerator.
415
425
  * @param {WebAssemblyGeneratorOptions} options options
416
426
  */
417
427
  constructor(options) {
@@ -420,6 +430,7 @@ class WebAssemblyGenerator extends Generator {
420
430
  }
421
431
 
422
432
  /**
433
+ * Returns the source types available for this module.
423
434
  * @param {NormalModule} module fresh module
424
435
  * @returns {SourceTypes} available types (do not mutate)
425
436
  */
@@ -428,6 +439,7 @@ class WebAssemblyGenerator extends Generator {
428
439
  }
429
440
 
430
441
  /**
442
+ * Returns the estimated size for the requested source type.
431
443
  * @param {NormalModule} module the module
432
444
  * @param {SourceType=} type source type
433
445
  * @returns {number} estimate size of the module
@@ -441,6 +453,7 @@ class WebAssemblyGenerator extends Generator {
441
453
  }
442
454
 
443
455
  /**
456
+ * Generates generated code for this runtime module.
444
457
  * @param {NormalModule} module module for which the code should be generated
445
458
  * @param {GenerateContext} generateContext context for generate
446
459
  * @returns {Source | null} generated code
@@ -522,6 +535,7 @@ class WebAssemblyGenerator extends Generator {
522
535
  }
523
536
 
524
537
  /**
538
+ * Generates fallback output for the provided error condition.
525
539
  * @param {Error} error the error
526
540
  * @param {NormalModule} module module for which the code should be generated
527
541
  * @param {GenerateContext} generateContext context for generate
@@ -530,6 +544,17 @@ class WebAssemblyGenerator extends Generator {
530
544
  generateError(error, module, generateContext) {
531
545
  return new RawSource(error.message);
532
546
  }
547
+
548
+ /**
549
+ * Updates the hash with the data contributed by this instance.
550
+ * @param {Hash} hash hash that will be modified
551
+ * @param {UpdateHashContext} updateHashContext context for updating hash
552
+ */
553
+ updateHash(hash, updateHashContext) {
554
+ if (this.options.mangleImports) {
555
+ hash.update("mangle-imports");
556
+ }
557
+ }
533
558
  }
534
559
 
535
560
  module.exports = WebAssemblyGenerator;
@@ -12,6 +12,7 @@ const WebpackError = require("../WebpackError");
12
12
  /** @typedef {import("../RequestShortener")} RequestShortener */
13
13
 
14
14
  /**
15
+ * Gets initial module chains.
15
16
  * @param {Module} module module to get chains from
16
17
  * @param {ModuleGraph} moduleGraph the module graph
17
18
  * @param {ChunkGraph} chunkGraph the chunk graph
@@ -84,6 +85,7 @@ const getInitialModuleChains = (
84
85
 
85
86
  module.exports = class WebAssemblyInInitialChunkError extends WebpackError {
86
87
  /**
88
+ * Creates an instance of WebAssemblyInInitialChunkError.
87
89
  * @param {Module} module WASM module
88
90
  * @param {ModuleGraph} moduleGraph the module graph
89
91
  * @param {ChunkGraph} chunkGraph the chunk graph
@@ -25,6 +25,7 @@ const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDe
25
25
 
26
26
  class WebAssemblyJavascriptGenerator extends Generator {
27
27
  /**
28
+ * Returns the source types available for this module.
28
29
  * @param {NormalModule} module fresh module
29
30
  * @returns {SourceTypes} available types (do not mutate)
30
31
  */
@@ -33,6 +34,7 @@ class WebAssemblyJavascriptGenerator extends Generator {
33
34
  }
34
35
 
35
36
  /**
37
+ * Returns the estimated size for the requested source type.
36
38
  * @param {NormalModule} module the module
37
39
  * @param {SourceType=} type source type
38
40
  * @returns {number} estimate size of the module
@@ -42,6 +44,7 @@ class WebAssemblyJavascriptGenerator extends Generator {
42
44
  }
43
45
 
44
46
  /**
47
+ * Generates generated code for this runtime module.
45
48
  * @param {NormalModule} module module for which the code should be generated
46
49
  * @param {GenerateContext} generateContext context for generate
47
50
  * @returns {Source | null} generated code
@@ -223,6 +226,7 @@ class WebAssemblyJavascriptGenerator extends Generator {
223
226
  }
224
227
 
225
228
  /**
229
+ * Generates fallback output for the provided error condition.
226
230
  * @param {Error} error the error
227
231
  * @param {NormalModule} module module for which the code should be generated
228
232
  * @param {GenerateContext} generateContext context for generate
@@ -31,12 +31,19 @@ const getWebAssemblyParser = memoize(() => require("./WebAssemblyParser"));
31
31
  const PLUGIN_NAME = "WebAssemblyModulesPlugin";
32
32
 
33
33
  /**
34
+ * Options that influence how synchronous WebAssembly modules are transformed
35
+ * and emitted.
34
36
  * @typedef {object} WebAssemblyModulesPluginOptions
35
37
  * @property {boolean=} mangleImports mangle imports
36
38
  */
37
39
 
40
+ /**
41
+ * Adds parser, generator, manifest, and validation support for synchronous
42
+ * WebAssembly modules in the compilation pipeline.
43
+ */
38
44
  class WebAssemblyModulesPlugin {
39
45
  /**
46
+ * Stores options that affect generated synchronous WebAssembly output.
40
47
  * @param {WebAssemblyModulesPluginOptions} options options
41
48
  */
42
49
  constructor(options) {
@@ -44,7 +51,9 @@ class WebAssemblyModulesPlugin {
44
51
  }
45
52
 
46
53
  /**
47
- * Apply the plugin
54
+ * Registers compilation hooks that parse and generate sync WebAssembly
55
+ * modules, emit their binary assets, and report invalid placement in initial
56
+ * chunks.
48
57
  * @param {Compiler} compiler the compiler instance
49
58
  * @returns {void}
50
59
  */
@@ -22,6 +22,7 @@ const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDe
22
22
  const JS_COMPAT_TYPES = new Set(["i32", "i64", "f32", "f64", "externref"]);
23
23
 
24
24
  /**
25
+ * Gets js incompatible type.
25
26
  * @param {t.Signature} signature the func signature
26
27
  * @returns {null | string} the type incompatible with js types
27
28
  */
@@ -64,6 +65,7 @@ const decoderOpts = {
64
65
 
65
66
  class WebAssemblyParser extends Parser {
66
67
  /**
68
+ * Parses the provided source and updates the parser state.
67
69
  * @param {string | Buffer | PreparsedAst} source the source to parse
68
70
  * @param {ParserState} state the parser state
69
71
  * @returns {ParserState} the parser state
@@ -12,6 +12,7 @@ const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDe
12
12
  /** @typedef {import("../ModuleGraph")} ModuleGraph */
13
13
 
14
14
  /**
15
+ * Defines the used wasm dependency type used by this module.
15
16
  * @typedef {object} UsedWasmDependency
16
17
  * @property {WebAssemblyImportDependency} dependency the dependency
17
18
  * @property {string} name the export name
@@ -21,6 +22,7 @@ const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDe
21
22
  const MANGLED_MODULE = "a";
22
23
 
23
24
  /**
25
+ * Gets used dependencies.
24
26
  * @param {ModuleGraph} moduleGraph the module graph
25
27
  * @param {Module} module the module
26
28
  * @param {boolean | undefined} mangle mangle module and export names
@@ -15,9 +15,14 @@ const AsyncWasmLoadingRuntimeModule = require("../wasm-async/AsyncWasmLoadingRun
15
15
 
16
16
  const PLUGIN_NAME = "FetchCompileAsyncWasmPlugin";
17
17
 
18
+ /**
19
+ * Enables asynchronous WebAssembly loading through `fetch` for environments
20
+ * that can instantiate fetched binaries at runtime.
21
+ */
18
22
  class FetchCompileAsyncWasmPlugin {
19
23
  /**
20
- * Apply the plugin
24
+ * Registers compilation hooks that attach the async fetch-based wasm runtime
25
+ * to chunks containing async WebAssembly modules.
21
26
  * @param {Compiler} compiler the compiler instance
22
27
  * @returns {void}
23
28
  */
@@ -25,6 +30,8 @@ class FetchCompileAsyncWasmPlugin {
25
30
  compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
26
31
  const globalWasmLoading = compilation.outputOptions.wasmLoading;
27
32
  /**
33
+ * Determines whether the chunk should load async WebAssembly binaries
34
+ * through the `fetch` backend.
28
35
  * @param {Chunk} chunk chunk
29
36
  * @returns {boolean} true, if wasm loading is enabled for the chunk
30
37
  */
@@ -37,6 +44,8 @@ class FetchCompileAsyncWasmPlugin {
37
44
  return wasmLoading === "fetch";
38
45
  };
39
46
  /**
47
+ * Generates the runtime expression that downloads the emitted wasm
48
+ * binary for an async WebAssembly module.
40
49
  * @param {string} path path to the wasm file
41
50
  * @returns {string} code to load the wasm file
42
51
  */
@@ -13,14 +13,21 @@ const WasmChunkLoadingRuntimeModule = require("../wasm-sync/WasmChunkLoadingRunt
13
13
  /** @typedef {import("../Compiler")} Compiler */
14
14
 
15
15
  /**
16
+ * Options that influence how synchronous WebAssembly modules are emitted for
17
+ * the fetch-based wasm loading runtime.
16
18
  * @typedef {object} FetchCompileWasmPluginOptions
17
19
  * @property {boolean=} mangleImports mangle imports
18
20
  */
19
21
 
20
22
  const PLUGIN_NAME = "FetchCompileWasmPlugin";
21
23
 
24
+ /**
25
+ * Enables synchronous WebAssembly chunk loading that fetches `.wasm` files and
26
+ * compiles them in browser-like environments.
27
+ */
22
28
  class FetchCompileWasmPlugin {
23
29
  /**
30
+ * Stores options that affect generated synchronous WebAssembly runtime code.
24
31
  * @param {FetchCompileWasmPluginOptions=} options options
25
32
  */
26
33
  constructor(options = {}) {
@@ -29,7 +36,8 @@ class FetchCompileWasmPlugin {
29
36
  }
30
37
 
31
38
  /**
32
- * Apply the plugin
39
+ * Registers compilation hooks that attach the fetch-based synchronous wasm
40
+ * runtime module to chunks containing sync WebAssembly modules.
33
41
  * @param {Compiler} compiler the compiler instance
34
42
  * @returns {void}
35
43
  */
@@ -37,6 +45,8 @@ class FetchCompileWasmPlugin {
37
45
  compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
38
46
  const globalWasmLoading = compilation.outputOptions.wasmLoading;
39
47
  /**
48
+ * Determines whether the chunk should load synchronous WebAssembly
49
+ * binaries through the `fetch` backend.
40
50
  * @param {Chunk} chunk chunk
41
51
  * @returns {boolean} true, if wasm loading is enabled for the chunk
42
52
  */
@@ -49,6 +59,8 @@ class FetchCompileWasmPlugin {
49
59
  return wasmLoading === "fetch";
50
60
  };
51
61
  /**
62
+ * Generates the runtime expression that downloads the emitted wasm
63
+ * binary for a module.
52
64
  * @param {string} path path to the wasm file
53
65
  * @returns {string} code to load the wasm file
54
66
  */
@@ -14,9 +14,15 @@ const JsonpChunkLoadingRuntimeModule = require("./JsonpChunkLoadingRuntimeModule
14
14
 
15
15
  const PLUGIN_NAME = "JsonpChunkLoadingPlugin";
16
16
 
17
+ /**
18
+ * Enables browser-side JavaScript chunk loading through the JSONP runtime and
19
+ * adds the supporting runtime requirements for matching chunks.
20
+ */
17
21
  class JsonpChunkLoadingPlugin {
18
22
  /**
19
- * Apply the plugin
23
+ * Registers compilation hooks that attach the JSONP chunk-loading runtime
24
+ * module and its dependent runtime globals to chunks using `chunkLoading:
25
+ * "jsonp"`.
20
26
  * @param {Compiler} compiler the compiler instance
21
27
  * @returns {void}
22
28
  */
@@ -24,6 +30,8 @@ class JsonpChunkLoadingPlugin {
24
30
  compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
25
31
  const globalChunkLoading = compilation.outputOptions.chunkLoading;
26
32
  /**
33
+ * Determines whether the chunk resolves JavaScript chunks through the
34
+ * JSONP loading backend.
27
35
  * @param {Chunk} chunk chunk
28
36
  * @returns {boolean} true, if wasm loading is enabled for the chunk
29
37
  */
@@ -38,6 +46,8 @@ class JsonpChunkLoadingPlugin {
38
46
  /** @type {WeakSet<Chunk>} */
39
47
  const onceForChunkSet = new WeakSet();
40
48
  /**
49
+ * Adds the JSONP runtime module to a chunk once, along with the core
50
+ * runtime globals it relies on.
41
51
  * @param {Chunk} chunk chunk
42
52
  * @param {RuntimeRequirements} set runtime requirements
43
53
  */
@@ -74,6 +74,7 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule {
74
74
  }
75
75
 
76
76
  /**
77
+ * Generates runtime code for this runtime module.
77
78
  * @returns {string | null} runtime code
78
79
  */
79
80
  generate() {
@@ -15,6 +15,7 @@ const JsonpChunkLoadingRuntimeModule = require("./JsonpChunkLoadingRuntimeModule
15
15
  // TODO webpack 6 remove this class
16
16
  class JsonpTemplatePlugin {
17
17
  /**
18
+ * Returns hooks.
18
19
  * @deprecated use JsonpChunkLoadingRuntimeModule.getCompilationHooks instead
19
20
  * @param {Compilation} compilation the compilation
20
21
  * @returns {JsonpChunkLoadingRuntimeModule.JsonpCompilationPluginHooks} hooks
@@ -24,7 +25,7 @@ class JsonpTemplatePlugin {
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
  */
package/lib/webpack.js CHANGED
@@ -37,6 +37,7 @@ const memoize = require("./util/memoize");
37
37
  const getValidateSchema = memoize(() => require("./validateSchema"));
38
38
 
39
39
  /**
40
+ * Defines the callback callback.
40
41
  * @template T
41
42
  * @template [R=void]
42
43
  * @callback Callback
@@ -48,6 +49,7 @@ const getValidateSchema = memoize(() => require("./validateSchema"));
48
49
  /** @typedef {Callback<void>} ErrorCallback */
49
50
 
50
51
  /**
52
+ * Creates a multi compiler.
51
53
  * @param {ReadonlyArray<WebpackOptions>} childOptions options array
52
54
  * @param {MultiCompilerOptions} options options
53
55
  * @returns {MultiCompiler} a multi-compiler
@@ -69,6 +71,7 @@ const createMultiCompiler = (childOptions, options) => {
69
71
  };
70
72
 
71
73
  /**
74
+ * Creates a compiler.
72
75
  * @param {WebpackOptions} rawOptions options object
73
76
  * @param {number=} compilerIndex index of compiler
74
77
  * @returns {Compiler} a compiler
@@ -121,6 +124,7 @@ const createCompiler = (rawOptions, compilerIndex) => {
121
124
  };
122
125
 
123
126
  /**
127
+ * Returns array of options.
124
128
  * @template T
125
129
  * @param {T[] | T} options options
126
130
  * @returns {T[]} array of options
@@ -129,6 +133,7 @@ const asArray = (options) =>
129
133
  Array.isArray(options) ? [...options] : [options];
130
134
 
131
135
  /**
136
+ * Checks whether it needs validate.
132
137
  * @param {WebpackOptions | null | undefined} options options
133
138
  * @returns {boolean} true when need to validate, otherwise false
134
139
  */
@@ -147,28 +152,33 @@ const needValidate = (options) => {
147
152
  };
148
153
 
149
154
  /**
155
+ * Returns the compiler object.
150
156
  * @overload
151
157
  * @param {WebpackOptions} options options object
152
158
  * @param {Callback<Stats>} callback callback
153
159
  * @returns {Compiler | null} the compiler object
154
160
  */
155
161
  /**
162
+ * Returns the compiler object.
156
163
  * @overload
157
164
  * @param {WebpackOptions} options options object
158
165
  * @returns {Compiler} the compiler object
159
166
  */
160
167
  /**
168
+ * Returns the multi compiler object.
161
169
  * @overload
162
170
  * @param {MultiWebpackOptions} options options objects
163
171
  * @param {Callback<MultiStats>} callback callback
164
172
  * @returns {MultiCompiler | null} the multi compiler object
165
173
  */
166
174
  /**
175
+ * Returns the multi compiler object.
167
176
  * @overload
168
177
  * @param {MultiWebpackOptions} options options objects
169
178
  * @returns {MultiCompiler} the multi compiler object
170
179
  */
171
180
  /**
181
+ * Returns compiler or MultiCompiler.
172
182
  * @param {WebpackOptions | MultiWebpackOptions} options options
173
183
  * @param {Callback<Stats> & Callback<MultiStats>=} callback callback
174
184
  * @returns {Compiler | MultiCompiler | null} Compiler or MultiCompiler
@@ -15,9 +15,14 @@ const ImportScriptsChunkLoadingRuntimeModule = require("./ImportScriptsChunkLoad
15
15
 
16
16
  const PLUGIN_NAME = "ImportScriptsChunkLoadingPlugin";
17
17
 
18
+ /**
19
+ * Enables worker-side chunk loading via `importScripts` and wires in the
20
+ * runtime helpers needed for startup, loading, and hot updates.
21
+ */
18
22
  class ImportScriptsChunkLoadingPlugin {
19
23
  /**
20
- * Apply the plugin
24
+ * Registers compilation hooks that attach the `importScripts` chunk-loading
25
+ * runtime and its supporting globals to chunks using that backend.
21
26
  * @param {Compiler} compiler the compiler instance
22
27
  * @returns {void}
23
28
  */
@@ -29,6 +34,8 @@ class ImportScriptsChunkLoadingPlugin {
29
34
  compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
30
35
  const globalChunkLoading = compilation.outputOptions.chunkLoading;
31
36
  /**
37
+ * Determines whether the chunk resolves additional chunks through the
38
+ * worker-side `importScripts` backend.
32
39
  * @param {Chunk} chunk chunk
33
40
  * @returns {boolean} true, if wasm loading is enabled for the chunk
34
41
  */
@@ -43,6 +50,8 @@ class ImportScriptsChunkLoadingPlugin {
43
50
  /** @type {WeakSet<Chunk>} */
44
51
  const onceForChunkSet = new WeakSet();
45
52
  /**
53
+ * Adds the `importScripts` chunk-loading runtime module to a chunk once
54
+ * and records the globals it depends on.
46
55
  * @param {Chunk} chunk chunk
47
56
  * @param {RuntimeRequirements} set runtime requirements
48
57
  */
@@ -65,6 +65,7 @@ class ImportScriptsChunkLoadingRuntimeModule extends RuntimeModule {
65
65
  }
66
66
 
67
67
  /**
68
+ * Generates runtime code for this runtime module.
68
69
  * @returns {string | null} runtime code
69
70
  */
70
71
  generate() {
@@ -12,7 +12,7 @@ const EnableChunkLoadingPlugin = require("../javascript/EnableChunkLoadingPlugin
12
12
 
13
13
  class WebWorkerTemplatePlugin {
14
14
  /**
15
- * Apply the plugin
15
+ * Applies the plugin by registering its hooks on the compiler.
16
16
  * @param {Compiler} compiler the compiler instance
17
17
  * @returns {void}
18
18
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webpack",
3
- "version": "5.106.1",
3
+ "version": "5.106.2",
4
4
  "description": "Packs ECMAScript/CommonJs/AMD modules for the browser. Allows you to split your codebase into multiple bundles, which can be loaded on demand. Supports loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.",
5
5
  "homepage": "https://github.com/webpack/webpack",
6
6
  "bugs": "https://github.com/webpack/webpack/issues",
@@ -102,9 +102,8 @@
102
102
  "events": "^3.2.0",
103
103
  "glob-to-regexp": "^0.4.1",
104
104
  "graceful-fs": "^4.2.11",
105
- "json-parse-even-better-errors": "^2.3.1",
106
105
  "loader-runner": "^4.3.1",
107
- "mime-types": "^2.1.27",
106
+ "mime-db": "^1.54.0",
108
107
  "neo-async": "^2.6.2",
109
108
  "schema-utils": "^4.3.3",
110
109
  "tapable": "^2.3.0",
@@ -121,9 +120,9 @@
121
120
  "@types/glob-to-regexp": "^0.4.4",
122
121
  "@types/graceful-fs": "^4.1.9",
123
122
  "@types/jest": "^30.0.0",
124
- "@types/mime-types": "^2.1.4",
123
+ "@types/mime-db": "^1.43.6",
125
124
  "@types/neo-async": "^2.6.7",
126
- "@types/node": "^25.1.0",
125
+ "@types/node": "^25.6.0",
127
126
  "@types/xxhashjs": "^0.2.4",
128
127
  "@webdiscus/pug-loader": "^2.11.1",
129
128
  "assemblyscript": "^0.28.9",
@@ -132,7 +131,7 @@
132
131
  "coffee-loader": "^5.0.0",
133
132
  "coffeescript": "^2.5.1",
134
133
  "core-js": "^3.47.0",
135
- "cspell": "^9.4.0",
134
+ "cspell": "^10.0.0",
136
135
  "css-loader": "^7.1.2",
137
136
  "date-fns": "^4.0.0",
138
137
  "es5-ext": "^0.10.53",
@@ -166,16 +165,16 @@
166
165
  "mini-svg-data-uri": "^1.2.3",
167
166
  "node-gyp": "^12.1.0",
168
167
  "nyc": "^18.0.0",
169
- "open-cli": "^8.0.0",
170
- "oxc-parser": "^0.124.0",
168
+ "open-cli": "^9.0.0",
169
+ "oxc-parser": "^0.125.0",
171
170
  "pkg-pr-new": "^0.0.66",
172
- "prettier": "^3.7.4",
171
+ "prettier": "^3.8.2",
173
172
  "prettier-2": "npm:prettier@^2",
174
173
  "pretty-format": "^30.0.5",
175
174
  "pug": "^3.0.3",
176
175
  "raw-loader": "^4.0.1",
177
- "react": "^19.2.3",
178
- "react-dom": "^19.2.3",
176
+ "react": "^19.2.5",
177
+ "react-dom": "^19.2.5",
179
178
  "rehype-sanitize": "^6.0.0",
180
179
  "rehype-stringify": "^10.0.1",
181
180
  "remark-frontmatter": "^5.0.0",
@@ -185,14 +184,13 @@
185
184
  "rimraf": "^3.0.2",
186
185
  "script-loader": "^0.7.2",
187
186
  "simple-git": "^3.28.0",
188
- "strip-ansi": "^6.0.0",
189
187
  "style-loader": "^4.0.0",
190
188
  "terser": "^5.43.1",
191
189
  "three": "^0.183.1",
192
190
  "tinybench": "^6.0.0",
193
191
  "toml": "^4.1.1",
194
- "tooling": "webpack/tooling#v1.25.0",
195
- "ts-loader": "^9.5.4",
192
+ "tooling": "webpack/tooling#v1.26.1",
193
+ "ts-loader": "^9.5.7",
196
194
  "typescript": "^5.9.3",
197
195
  "unified": "^11.0.5",
198
196
  "url-loader": "^4.1.0",