webpack 5.106.1 → 5.107.0

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 (600) hide show
  1. package/README.md +2 -2
  2. package/lib/APIPlugin.js +4 -2
  3. package/lib/AsyncDependenciesBlock.js +3 -0
  4. package/lib/AutomaticPrefetchPlugin.js +6 -1
  5. package/lib/BannerPlugin.js +10 -1
  6. package/lib/Cache.js +27 -5
  7. package/lib/CacheFacade.js +26 -0
  8. package/lib/Chunk.js +46 -0
  9. package/lib/ChunkGraph.js +111 -0
  10. package/lib/ChunkGroup.js +57 -13
  11. package/lib/ChunkTemplate.js +9 -0
  12. package/lib/CleanPlugin.js +14 -1
  13. package/lib/CodeGenerationResults.js +19 -0
  14. package/lib/CompatibilityPlugin.js +23 -8
  15. package/lib/Compilation.js +161 -27
  16. package/lib/Compiler.js +41 -17
  17. package/lib/ConcatenationScope.js +24 -1
  18. package/lib/ConditionalInitFragment.js +6 -0
  19. package/lib/ConstPlugin.js +4 -1
  20. package/lib/ContextExclusionPlugin.js +2 -1
  21. package/lib/ContextModule.js +14 -2
  22. package/lib/ContextModuleFactory.js +10 -0
  23. package/lib/ContextReplacementPlugin.js +4 -1
  24. package/lib/DefinePlugin.js +22 -9
  25. package/lib/DependenciesBlock.js +6 -1
  26. package/lib/Dependency.js +48 -4
  27. package/lib/DependencyTemplate.js +7 -1
  28. package/lib/DependencyTemplates.js +4 -0
  29. package/lib/DotenvPlugin.js +3 -0
  30. package/lib/DynamicEntryPlugin.js +3 -1
  31. package/lib/EntryOptionPlugin.js +3 -0
  32. package/lib/EntryPlugin.js +2 -1
  33. package/lib/Entrypoint.js +4 -0
  34. package/lib/EnvironmentPlugin.js +3 -2
  35. package/lib/ErrorHelpers.js +7 -0
  36. package/lib/EvalDevToolModulePlugin.js +3 -1
  37. package/lib/EvalSourceMapDevToolPlugin.js +11 -10
  38. package/lib/ExportsInfo.js +56 -2
  39. package/lib/ExportsInfoApiPlugin.js +2 -1
  40. package/lib/ExternalModule.js +114 -15
  41. package/lib/ExternalModuleFactoryPlugin.js +15 -0
  42. package/lib/ExternalsPlugin.js +2 -1
  43. package/lib/FileSystemInfo.js +291 -71
  44. package/lib/FlagAllModulesAsUsedPlugin.js +2 -1
  45. package/lib/FlagDependencyExportsPlugin.js +4 -1
  46. package/lib/FlagDependencyUsagePlugin.js +5 -1
  47. package/lib/FlagEntryExportAsUsedPlugin.js +2 -1
  48. package/lib/Generator.js +16 -3
  49. package/lib/HotModuleReplacementPlugin.js +35 -9
  50. package/lib/IgnorePlugin.js +4 -2
  51. package/lib/IgnoreWarningsPlugin.js +2 -1
  52. package/lib/InitFragment.js +10 -0
  53. package/lib/JavascriptMetaInfoPlugin.js +2 -1
  54. package/lib/LibraryTemplatePlugin.js +2 -1
  55. package/lib/LoaderOptionsPlugin.js +3 -1
  56. package/lib/LoaderTargetPlugin.js +2 -1
  57. package/lib/MainTemplate.js +15 -0
  58. package/lib/ManifestPlugin.js +9 -2
  59. package/lib/Module.js +101 -19
  60. package/lib/ModuleFactory.js +6 -1
  61. package/lib/ModuleFilenameHelpers.js +3 -0
  62. package/lib/ModuleGraph.js +66 -0
  63. package/lib/ModuleGraphConnection.js +9 -0
  64. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  65. package/lib/ModuleSourceTypeConstants.js +32 -1
  66. package/lib/ModuleTemplate.js +8 -0
  67. package/lib/ModuleTypeConstants.js +12 -3
  68. package/lib/MultiCompiler.js +30 -2
  69. package/lib/MultiStats.js +8 -0
  70. package/lib/MultiWatching.js +3 -0
  71. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  72. package/lib/NodeStuffPlugin.js +11 -2
  73. package/lib/NormalModule.js +43 -33
  74. package/lib/NormalModuleFactory.js +35 -2
  75. package/lib/NormalModuleReplacementPlugin.js +1 -1
  76. package/lib/NullFactory.js +1 -0
  77. package/lib/OptionsApply.js +1 -0
  78. package/lib/Parser.js +3 -1
  79. package/lib/PlatformPlugin.js +2 -1
  80. package/lib/PrefetchPlugin.js +2 -1
  81. package/lib/ProgressPlugin.js +158 -68
  82. package/lib/ProvidePlugin.js +3 -1
  83. package/lib/RawModule.js +12 -0
  84. package/lib/RecordIdsPlugin.js +8 -0
  85. package/lib/RequestShortener.js +8 -0
  86. package/lib/ResolverFactory.js +5 -0
  87. package/lib/RuntimeGlobals.js +6 -5
  88. package/lib/RuntimeModule.js +22 -7
  89. package/lib/RuntimePlugin.js +13 -0
  90. package/lib/RuntimeTemplate.js +35 -1
  91. package/lib/SelfModuleFactory.js +2 -0
  92. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  93. package/lib/SourceMapDevToolPlugin.js +3 -1
  94. package/lib/Stats.js +5 -0
  95. package/lib/Template.js +20 -0
  96. package/lib/TemplatedPathPlugin.js +10 -3
  97. package/lib/UseStrictPlugin.js +2 -1
  98. package/lib/WarnCaseSensitiveModulesPlugin.js +71 -3
  99. package/lib/WarnDeprecatedOptionPlugin.js +2 -2
  100. package/lib/WarnNoModeSetPlugin.js +17 -2
  101. package/lib/WatchIgnorePlugin.js +4 -1
  102. package/lib/Watching.js +16 -3
  103. package/lib/WebpackError.js +3 -74
  104. package/lib/WebpackIsIncludedPlugin.js +3 -1
  105. package/lib/WebpackOptionsApply.js +14 -1
  106. package/lib/WebpackOptionsDefaulter.js +1 -0
  107. package/lib/asset/AssetBytesGenerator.js +12 -2
  108. package/lib/asset/AssetBytesParser.js +1 -0
  109. package/lib/asset/AssetGenerator.js +42 -10
  110. package/lib/asset/AssetModulesPlugin.js +7 -2
  111. package/lib/asset/AssetParser.js +2 -0
  112. package/lib/asset/AssetSourceGenerator.js +12 -2
  113. package/lib/asset/AssetSourceParser.js +1 -0
  114. package/lib/asset/RawDataUrlModule.js +11 -0
  115. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  116. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
  117. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  118. package/lib/buildChunkGraph.js +19 -6
  119. package/lib/cache/AddBuildDependenciesPlugin.js +2 -1
  120. package/lib/cache/AddManagedPathsPlugin.js +2 -1
  121. package/lib/cache/IdleFileCachePlugin.js +2 -1
  122. package/lib/cache/MemoryCachePlugin.js +1 -1
  123. package/lib/cache/MemoryWithGcCachePlugin.js +3 -1
  124. package/lib/cache/PackFileCacheStrategy.js +33 -4
  125. package/lib/cache/ResolverCachePlugin.js +10 -1
  126. package/lib/cache/getLazyHashedEtag.js +4 -0
  127. package/lib/cache/mergeEtags.js +2 -0
  128. package/lib/cli.js +33 -1
  129. package/lib/config/browserslistTargetHandler.js +2 -0
  130. package/lib/config/defaults.js +232 -12
  131. package/lib/config/normalization.js +15 -1
  132. package/lib/config/target.js +11 -0
  133. package/lib/container/ContainerEntryDependency.js +2 -0
  134. package/lib/container/ContainerEntryModule.js +12 -0
  135. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  136. package/lib/container/ContainerExposedDependency.js +4 -0
  137. package/lib/container/ContainerPlugin.js +2 -1
  138. package/lib/container/ContainerReferencePlugin.js +2 -1
  139. package/lib/container/FallbackDependency.js +4 -0
  140. package/lib/container/FallbackItemDependency.js +1 -0
  141. package/lib/container/FallbackModule.js +12 -0
  142. package/lib/container/FallbackModuleFactory.js +1 -0
  143. package/lib/container/ModuleFederationPlugin.js +3 -1
  144. package/lib/container/RemoteModule.js +13 -0
  145. package/lib/container/RemoteRuntimeModule.js +1 -0
  146. package/lib/container/RemoteToExternalDependency.js +1 -0
  147. package/lib/container/options.js +7 -0
  148. package/lib/css/CssGenerator.js +336 -100
  149. package/lib/css/CssInjectStyleRuntimeModule.js +45 -42
  150. package/lib/css/CssLoadingRuntimeModule.js +23 -4
  151. package/lib/{CssModule.js → css/CssModule.js} +21 -15
  152. package/lib/css/CssModulesPlugin.js +235 -89
  153. package/lib/css/CssParser.js +616 -261
  154. package/lib/css/walkCssTokens.js +179 -2
  155. package/lib/debug/ProfilingPlugin.js +19 -1
  156. package/lib/dependencies/AMDDefineDependency.js +7 -0
  157. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +12 -0
  158. package/lib/dependencies/AMDPlugin.js +4 -1
  159. package/lib/dependencies/AMDRequireArrayDependency.js +6 -0
  160. package/lib/dependencies/AMDRequireContextDependency.js +3 -0
  161. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  162. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +14 -1
  163. package/lib/dependencies/AMDRequireDependency.js +4 -0
  164. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  165. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  166. package/lib/dependencies/CachedConstDependency.js +6 -1
  167. package/lib/dependencies/CommonJsDependencyHelpers.js +64 -0
  168. package/lib/dependencies/CommonJsExportRequireDependency.js +62 -10
  169. package/lib/dependencies/CommonJsExportsDependency.js +4 -0
  170. package/lib/dependencies/CommonJsExportsParserPlugin.js +9 -1
  171. package/lib/dependencies/CommonJsFullRequireDependency.js +36 -9
  172. package/lib/dependencies/CommonJsImportsParserPlugin.js +24 -3
  173. package/lib/dependencies/CommonJsPlugin.js +4 -1
  174. package/lib/dependencies/CommonJsRequireContextDependency.js +3 -0
  175. package/lib/dependencies/CommonJsRequireDependency.js +70 -4
  176. package/lib/dependencies/CommonJsSelfReferenceDependency.js +5 -0
  177. package/lib/dependencies/ConstDependency.js +6 -1
  178. package/lib/dependencies/ContextDependency.js +9 -2
  179. package/lib/dependencies/ContextDependencyHelpers.js +4 -1
  180. package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
  181. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  182. package/lib/dependencies/ContextElementDependency.js +4 -0
  183. package/lib/dependencies/CreateRequireParserPlugin.js +7 -1
  184. package/lib/dependencies/CreateScriptUrlDependency.js +4 -0
  185. package/lib/dependencies/CriticalDependencyWarning.js +2 -1
  186. package/lib/dependencies/CssIcssExportDependency.js +339 -66
  187. package/lib/dependencies/CssIcssImportDependency.js +53 -8
  188. package/lib/dependencies/CssIcssSymbolDependency.js +16 -4
  189. package/lib/dependencies/CssImportDependency.js +12 -0
  190. package/lib/dependencies/CssUrlDependency.js +32 -0
  191. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  192. package/lib/dependencies/DllEntryDependency.js +3 -0
  193. package/lib/dependencies/DynamicExports.js +5 -0
  194. package/lib/dependencies/EntryDependency.js +1 -0
  195. package/lib/dependencies/ExportsInfoDependency.js +6 -0
  196. package/lib/dependencies/ExternalModuleDependency.js +5 -0
  197. package/lib/dependencies/ExternalModuleInitFragment.js +3 -0
  198. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +4 -0
  199. package/lib/dependencies/HarmonyAcceptDependency.js +6 -0
  200. package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
  201. package/lib/dependencies/HarmonyCompatibilityDependency.js +1 -0
  202. package/lib/dependencies/HarmonyDetectionParserPlugin.js +4 -1
  203. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -0
  204. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +10 -7
  205. package/lib/dependencies/HarmonyExportExpressionDependency.js +27 -14
  206. package/lib/dependencies/HarmonyExportHeaderDependency.js +4 -0
  207. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -5
  208. package/lib/dependencies/HarmonyExportInitFragment.js +6 -0
  209. package/lib/dependencies/HarmonyExportSpecifierDependency.js +5 -0
  210. package/lib/dependencies/HarmonyExports.js +2 -0
  211. package/lib/dependencies/HarmonyImportDependency.js +21 -2
  212. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -1
  213. package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -0
  214. package/lib/dependencies/HarmonyImportSpecifierDependency.js +18 -3
  215. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +5 -3
  216. package/lib/dependencies/HarmonyModulesPlugin.js +4 -1
  217. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -0
  218. package/lib/dependencies/HtmlInlineScriptDependency.js +133 -0
  219. package/lib/dependencies/HtmlInlineStyleDependency.js +101 -0
  220. package/lib/dependencies/HtmlScriptSrcDependency.js +318 -0
  221. package/lib/dependencies/HtmlSourceDependency.js +127 -0
  222. package/lib/dependencies/ImportContextDependency.js +4 -0
  223. package/lib/dependencies/ImportDependency.js +5 -0
  224. package/lib/dependencies/ImportEagerDependency.js +2 -0
  225. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  226. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +4 -1
  227. package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
  228. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
  229. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
  230. package/lib/dependencies/ImportMetaPlugin.js +6 -0
  231. package/lib/dependencies/ImportParserPlugin.js +9 -2
  232. package/lib/dependencies/ImportPhase.js +7 -3
  233. package/lib/dependencies/ImportPlugin.js +2 -1
  234. package/lib/dependencies/ImportWeakDependency.js +2 -0
  235. package/lib/dependencies/JsonExportsDependency.js +6 -1
  236. package/lib/dependencies/LoaderDependency.js +2 -0
  237. package/lib/dependencies/LoaderImportDependency.js +2 -0
  238. package/lib/dependencies/LoaderPlugin.js +4 -1
  239. package/lib/dependencies/LocalModule.js +4 -0
  240. package/lib/dependencies/LocalModuleDependency.js +4 -0
  241. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  242. package/lib/dependencies/ModuleDecoratorDependency.js +7 -1
  243. package/lib/dependencies/ModuleDependency.js +7 -0
  244. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  245. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  246. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
  247. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
  248. package/lib/dependencies/ModuleInitFragmentDependency.js +4 -0
  249. package/lib/dependencies/NullDependency.js +2 -0
  250. package/lib/dependencies/PrefetchDependency.js +1 -0
  251. package/lib/dependencies/ProvidedDependency.js +6 -1
  252. package/lib/dependencies/PureExpressionDependency.js +7 -1
  253. package/lib/dependencies/RequireContextDependency.js +1 -0
  254. package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -0
  255. package/lib/dependencies/RequireContextPlugin.js +2 -1
  256. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  257. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -0
  258. package/lib/dependencies/RequireEnsureDependency.js +4 -0
  259. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  260. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  261. package/lib/dependencies/RequireHeaderDependency.js +4 -0
  262. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  263. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +4 -1
  264. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  265. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
  266. package/lib/dependencies/RequireResolveContextDependency.js +3 -0
  267. package/lib/dependencies/RequireResolveDependency.js +1 -0
  268. package/lib/dependencies/RequireResolveHeaderDependency.js +5 -0
  269. package/lib/dependencies/RuntimeRequirementsDependency.js +5 -1
  270. package/lib/dependencies/StaticExportsDependency.js +3 -0
  271. package/lib/dependencies/SystemPlugin.js +5 -2
  272. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  273. package/lib/dependencies/URLContextDependency.js +3 -0
  274. package/lib/dependencies/URLDependency.js +6 -0
  275. package/lib/dependencies/URLPlugin.js +2 -0
  276. package/lib/dependencies/UnsupportedDependency.js +4 -0
  277. package/lib/dependencies/WebAssemblyExportImportedDependency.js +4 -0
  278. package/lib/dependencies/WebAssemblyImportDependency.js +5 -2
  279. package/lib/dependencies/WebpackIsIncludedDependency.js +2 -0
  280. package/lib/dependencies/WorkerDependency.js +6 -1
  281. package/lib/dependencies/WorkerPlugin.js +11 -3
  282. package/lib/dependencies/getFunctionExpression.js +1 -0
  283. package/lib/dependencies/processExportInfo.js +1 -0
  284. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +44 -31
  285. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +7 -4
  286. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +4 -3
  287. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +6 -5
  288. package/lib/{DllModule.js → dll/DllModule.js} +35 -24
  289. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
  290. package/lib/{DllPlugin.js → dll/DllPlugin.js} +8 -6
  291. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +23 -18
  292. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +13 -10
  293. package/lib/electron/ElectronTargetPlugin.js +2 -1
  294. package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
  295. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
  296. package/lib/errors/BuildCycleError.js +1 -1
  297. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  298. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  299. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
  300. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +4 -2
  301. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +4 -4
  302. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +11 -5
  303. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +6 -4
  304. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +4 -3
  305. package/lib/errors/JSONParseError.js +114 -0
  306. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +8 -5
  307. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +2 -2
  308. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +5 -4
  309. package/lib/{ModuleError.js → errors/ModuleError.js} +7 -5
  310. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +1 -1
  311. package/lib/{ModuleNotFoundError.js → errors/ModuleNotFoundError.js} +3 -2
  312. package/lib/{ModuleParseError.js → errors/ModuleParseError.js} +11 -6
  313. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +2 -1
  314. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +2 -1
  315. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +8 -5
  316. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +5 -4
  317. package/lib/errors/NonErrorEmittedError.js +28 -0
  318. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +8 -2
  319. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
  320. package/lib/errors/WebpackError.js +84 -0
  321. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  322. package/lib/esm/ModuleChunkFormatPlugin.js +5 -1
  323. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -1
  324. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +5 -0
  325. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
  326. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  327. package/lib/hmr/LazyCompilationPlugin.js +20 -1
  328. package/lib/hmr/lazyCompilationBackend.js +2 -0
  329. package/lib/html/HtmlGenerator.js +379 -0
  330. package/lib/html/HtmlModulesPlugin.js +433 -0
  331. package/lib/html/HtmlParser.js +1489 -0
  332. package/lib/html/walkHtmlTokens.js +2733 -0
  333. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  334. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  335. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  336. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  337. package/lib/ids/IdHelpers.js +22 -1
  338. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  339. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  340. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  341. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  342. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  343. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  344. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  345. package/lib/index.js +39 -15
  346. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +1 -1
  347. package/lib/javascript/BasicEvaluatedExpression.js +4 -2
  348. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  349. package/lib/javascript/ChunkHelpers.js +1 -0
  350. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  351. package/lib/javascript/EnableChunkLoadingPlugin.js +5 -1
  352. package/lib/javascript/JavascriptGenerator.js +10 -0
  353. package/lib/javascript/JavascriptModulesPlugin.js +112 -9
  354. package/lib/javascript/JavascriptParser.js +360 -16
  355. package/lib/javascript/JavascriptParserHelpers.js +7 -1
  356. package/lib/javascript/StartupHelpers.js +5 -0
  357. package/lib/json/JsonData.js +5 -0
  358. package/lib/json/JsonGenerator.js +21 -0
  359. package/lib/json/JsonModulesPlugin.js +1 -1
  360. package/lib/json/JsonParser.js +14 -25
  361. package/lib/library/AbstractLibraryPlugin.js +17 -2
  362. package/lib/library/AmdLibraryPlugin.js +8 -0
  363. package/lib/library/AssignLibraryPlugin.js +16 -0
  364. package/lib/library/EnableLibraryPlugin.js +8 -2
  365. package/lib/library/ExportPropertyLibraryPlugin.js +9 -0
  366. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +1 -1
  367. package/lib/library/JsonpLibraryPlugin.js +8 -0
  368. package/lib/library/ModuleLibraryPlugin.js +86 -1
  369. package/lib/library/SystemLibraryPlugin.js +8 -0
  370. package/lib/library/UmdLibraryPlugin.js +16 -0
  371. package/lib/logging/Logger.js +17 -0
  372. package/lib/logging/createConsoleLogger.js +7 -0
  373. package/lib/logging/runtime.js +2 -0
  374. package/lib/logging/truncateArgs.js +2 -0
  375. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  376. package/lib/node/NodeEnvironmentPlugin.js +7 -3
  377. package/lib/node/NodeSourcePlugin.js +1 -1
  378. package/lib/node/NodeTargetPlugin.js +2 -1
  379. package/lib/node/NodeTemplatePlugin.js +3 -1
  380. package/lib/node/NodeWatchFileSystem.js +2 -0
  381. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +3 -0
  382. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +4 -1
  383. package/lib/node/ReadFileCompileWasmPlugin.js +4 -1
  384. package/lib/node/RequireChunkLoadingRuntimeModule.js +3 -0
  385. package/lib/node/nodeConsole.js +116 -64
  386. package/lib/optimize/AggressiveMergingPlugin.js +3 -1
  387. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  388. package/lib/optimize/ConcatenatedModule.js +62 -6
  389. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  390. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -1
  391. package/lib/optimize/InnerGraph.js +16 -1
  392. package/lib/optimize/InnerGraphPlugin.js +14 -2
  393. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  394. package/lib/optimize/MangleExportsPlugin.js +5 -1
  395. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  396. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  397. package/lib/optimize/MinMaxSizeWarning.js +5 -4
  398. package/lib/optimize/ModuleConcatenationPlugin.js +36 -8
  399. package/lib/optimize/RealContentHashPlugin.js +104 -26
  400. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  401. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  402. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  403. package/lib/optimize/SideEffectsFlagPlugin.js +118 -4
  404. package/lib/optimize/SplitChunksPlugin.js +50 -2
  405. package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
  406. package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
  407. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  408. package/lib/performance/SizeLimitsPlugin.js +8 -2
  409. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  410. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +6 -0
  411. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  412. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
  413. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -0
  414. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  415. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  416. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  417. package/lib/rules/RuleSetCompiler.js +18 -0
  418. package/lib/rules/UseEffectRulePlugin.js +10 -3
  419. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -0
  420. package/lib/runtime/AutoPublicPathRuntimeModule.js +1 -0
  421. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  422. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  423. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -0
  424. package/lib/runtime/CompatRuntimeModule.js +2 -0
  425. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -0
  426. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  427. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  428. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -0
  429. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  430. package/lib/runtime/GetChunkFilenameRuntimeModule.js +1 -0
  431. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  432. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  433. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -0
  434. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  435. package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -0
  436. package/lib/runtime/HelperRuntimeModule.js +5 -0
  437. package/lib/runtime/LoadScriptRuntimeModule.js +1 -0
  438. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +121 -13
  439. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -0
  440. package/lib/runtime/NonceRuntimeModule.js +1 -0
  441. package/lib/runtime/OnChunksLoadedRuntimeModule.js +1 -0
  442. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  443. package/lib/runtime/RelativeUrlRuntimeModule.js +1 -0
  444. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  445. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +35 -0
  446. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  447. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -0
  448. package/lib/runtime/StartupEntrypointRuntimeModule.js +1 -0
  449. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  450. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  451. package/lib/schemes/DataUriPlugin.js +14 -2
  452. package/lib/schemes/FileUriPlugin.js +1 -1
  453. package/lib/schemes/HttpUriPlugin.js +43 -1
  454. package/lib/schemes/VirtualUrlPlugin.js +7 -2
  455. package/lib/serialization/AggregateErrorSerializer.js +2 -0
  456. package/lib/serialization/ArraySerializer.js +2 -0
  457. package/lib/serialization/BinaryMiddleware.js +20 -1
  458. package/lib/serialization/DateObjectSerializer.js +2 -0
  459. package/lib/serialization/ErrorObjectSerializer.js +3 -0
  460. package/lib/serialization/FileMiddleware.js +21 -0
  461. package/lib/serialization/MapObjectSerializer.js +2 -0
  462. package/lib/serialization/NullPrototypeObjectSerializer.js +2 -0
  463. package/lib/serialization/ObjectMiddleware.js +23 -0
  464. package/lib/serialization/PlainObjectSerializer.js +7 -0
  465. package/lib/serialization/RegExpObjectSerializer.js +2 -0
  466. package/lib/serialization/Serializer.js +5 -0
  467. package/lib/serialization/SerializerMiddleware.js +14 -2
  468. package/lib/serialization/SetObjectSerializer.js +2 -0
  469. package/lib/serialization/SingleItemMiddleware.js +3 -0
  470. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  471. package/lib/sharing/ConsumeSharedModule.js +15 -0
  472. package/lib/sharing/ConsumeSharedPlugin.js +8 -3
  473. package/lib/sharing/ConsumeSharedRuntimeModule.js +9 -4
  474. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  475. package/lib/sharing/ProvideSharedDependency.js +4 -0
  476. package/lib/sharing/ProvideSharedModule.js +12 -1
  477. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  478. package/lib/sharing/ProvideSharedPlugin.js +5 -2
  479. package/lib/sharing/SharePlugin.js +2 -1
  480. package/lib/sharing/ShareRuntimeModule.js +1 -0
  481. package/lib/sharing/resolveMatchedConfigs.js +4 -1
  482. package/lib/sharing/utils.js +8 -0
  483. package/lib/stats/DefaultStatsFactoryPlugin.js +58 -3
  484. package/lib/stats/DefaultStatsPresetPlugin.js +12 -2
  485. package/lib/stats/DefaultStatsPrinterPlugin.js +38 -2
  486. package/lib/stats/StatsFactory.js +13 -1
  487. package/lib/stats/StatsPrinter.js +7 -0
  488. package/lib/typescript/TypeScriptPlugin.js +210 -0
  489. package/lib/url/URLParserPlugin.js +8 -2
  490. package/lib/util/AppendOnlyStackedSet.js +15 -0
  491. package/lib/util/ArrayHelpers.js +1 -0
  492. package/lib/util/ArrayQueue.js +10 -5
  493. package/lib/util/AsyncQueue.js +22 -2
  494. package/lib/util/Hash.js +2 -2
  495. package/lib/util/IterableHelpers.js +3 -0
  496. package/lib/util/LazyBucketSortedSet.js +21 -0
  497. package/lib/util/LazySet.js +39 -0
  498. package/lib/util/LocConverter.js +53 -0
  499. package/lib/util/ParallelismFactorCalculator.js +1 -0
  500. package/lib/util/Queue.js +6 -3
  501. package/lib/util/Semaphore.js +14 -1
  502. package/lib/util/SetHelpers.js +3 -0
  503. package/lib/util/SortableSet.js +7 -1
  504. package/lib/util/StackedCacheMap.js +20 -3
  505. package/lib/util/StackedMap.js +45 -0
  506. package/lib/util/StringXor.js +1 -1
  507. package/lib/util/TupleQueue.js +7 -3
  508. package/lib/util/TupleSet.js +13 -0
  509. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  510. package/lib/util/WeakTupleMap.js +33 -0
  511. package/lib/util/binarySearchBounds.js +1 -0
  512. package/lib/util/cleverMerge.js +19 -2
  513. package/lib/util/comparators.js +34 -3
  514. package/lib/util/compileBooleanMatcher.js +9 -0
  515. package/lib/util/concatenate.js +9 -3
  516. package/lib/util/conventions.js +46 -1
  517. package/lib/util/createMappings.js +118 -0
  518. package/lib/util/dataURL.js +1 -0
  519. package/lib/util/deprecation.js +19 -0
  520. package/lib/util/deterministicGrouping.js +20 -0
  521. package/lib/util/extractSourceMap.js +1 -0
  522. package/lib/util/extractUrlAndGlobal.js +1 -0
  523. package/lib/util/findGraphRoots.js +5 -0
  524. package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
  525. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +4 -1
  526. package/lib/util/fs.js +71 -8
  527. package/lib/util/generateDebugId.js +1 -0
  528. package/lib/util/hash/BatchedHash.js +1 -0
  529. package/lib/util/hash/BulkUpdateHash.js +1 -0
  530. package/lib/util/hash/hash-digest.js +8 -0
  531. package/lib/util/hash/md4.js +1 -1
  532. package/lib/util/hash/wasm-hash.js +5 -0
  533. package/lib/util/hash/xxhash64.js +1 -1
  534. package/lib/util/identifier.js +67 -0
  535. package/lib/util/internalSerializables.js +35 -19
  536. package/lib/util/magicComment.js +10 -6
  537. package/lib/util/makeSerializable.js +6 -0
  538. package/lib/util/memoize.js +2 -0
  539. package/lib/util/mimeTypes.js +176 -0
  540. package/lib/util/nonNumericOnlyHash.js +1 -0
  541. package/lib/util/parseJson.js +41 -0
  542. package/lib/util/processAsyncTree.js +8 -0
  543. package/lib/util/property.js +1 -0
  544. package/lib/util/registerExternalSerializer.js +20 -0
  545. package/lib/util/removeBOM.js +1 -0
  546. package/lib/util/runtime.js +32 -0
  547. package/lib/util/semver.js +15 -0
  548. package/lib/util/serialization.js +2 -0
  549. package/lib/util/smartGrouping.js +8 -0
  550. package/lib/util/source.js +23 -0
  551. package/lib/util/topologicalSort.js +69 -0
  552. package/lib/validateSchema.js +1 -0
  553. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  554. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +1 -0
  555. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -0
  556. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  557. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -0
  558. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +12 -3
  559. package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -1
  560. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +12 -1
  561. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +6 -3
  562. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +1 -0
  563. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +2 -2
  564. package/lib/wasm-sync/WebAssemblyGenerator.js +26 -1
  565. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +7 -3
  566. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  567. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -1
  568. package/lib/wasm-sync/WebAssemblyParser.js +2 -0
  569. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  570. package/lib/web/FetchCompileAsyncWasmPlugin.js +10 -1
  571. package/lib/web/FetchCompileWasmPlugin.js +13 -1
  572. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  573. package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -0
  574. package/lib/web/JsonpTemplatePlugin.js +2 -1
  575. package/lib/webpack.js +13 -1
  576. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  577. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -0
  578. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  579. package/package.json +31 -31
  580. package/schemas/WebpackOptions.check.js +1 -1
  581. package/schemas/WebpackOptions.json +161 -57
  582. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  583. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  584. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  585. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  586. package/schemas/plugins/ProgressPlugin.json +22 -0
  587. package/schemas/plugins/{DllReferencePlugin.check.d.ts → css/CssAutoOrModuleParserOptions.check.d.ts} +1 -1
  588. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  589. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  590. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  591. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  592. package/types.d.ts +5325 -353
  593. package/lib/CaseSensitiveModulesWarning.js +0 -72
  594. package/lib/GraphHelpers.js +0 -46
  595. package/lib/NoModeWarning.js +0 -23
  596. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
  597. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  598. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  599. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  600. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
@@ -33,6 +33,7 @@ register(
33
33
  "webpack-sources/CachedSource",
34
34
  new (class CachedSourceSerializer {
35
35
  /**
36
+ * Serializes this instance into the provided serializer context.
36
37
  * @param {CachedSource} source the cached source to be serialized
37
38
  * @param {ObjectSerializerContext} context context
38
39
  * @returns {void}
@@ -47,6 +48,7 @@ register(
47
48
  }
48
49
 
49
50
  /**
51
+ * Restores this instance from the provided deserializer context.
50
52
  * @param {ObjectDeserializerContext} context context
51
53
  * @returns {CachedSource} cached source
52
54
  */
@@ -64,6 +66,7 @@ register(
64
66
  "webpack-sources/RawSource",
65
67
  new (class RawSourceSerializer {
66
68
  /**
69
+ * Serializes this instance into the provided serializer context.
67
70
  * @param {RawSource} source the raw source to be serialized
68
71
  * @param {ObjectSerializerContext} context context
69
72
  * @returns {void}
@@ -74,6 +77,7 @@ register(
74
77
  }
75
78
 
76
79
  /**
80
+ * Restores this instance from the provided deserializer context.
77
81
  * @param {ObjectDeserializerContext} context context
78
82
  * @returns {RawSource} raw source
79
83
  */
@@ -91,6 +95,7 @@ register(
91
95
  "webpack-sources/ConcatSource",
92
96
  new (class ConcatSourceSerializer {
93
97
  /**
98
+ * Serializes this instance into the provided serializer context.
94
99
  * @param {ConcatSource} source the concat source to be serialized
95
100
  * @param {ObjectSerializerContext} context context
96
101
  * @returns {void}
@@ -100,6 +105,7 @@ register(
100
105
  }
101
106
 
102
107
  /**
108
+ * Restores this instance from the provided deserializer context.
103
109
  * @param {ObjectDeserializerContext} context context
104
110
  * @returns {ConcatSource} concat source
105
111
  */
@@ -117,6 +123,7 @@ register(
117
123
  "webpack-sources/PrefixSource",
118
124
  new (class PrefixSourceSerializer {
119
125
  /**
126
+ * Serializes this instance into the provided serializer context.
120
127
  * @param {PrefixSource} source the prefix source to be serialized
121
128
  * @param {ObjectSerializerContext} context context
122
129
  * @returns {void}
@@ -127,6 +134,7 @@ register(
127
134
  }
128
135
 
129
136
  /**
137
+ * Restores this instance from the provided deserializer context.
130
138
  * @param {ObjectDeserializerContext} context context
131
139
  * @returns {PrefixSource} prefix source
132
140
  */
@@ -142,6 +150,7 @@ register(
142
150
  "webpack-sources/ReplaceSource",
143
151
  new (class ReplaceSourceSerializer {
144
152
  /**
153
+ * Serializes this instance into the provided serializer context.
145
154
  * @param {ReplaceSource} source the replace source to be serialized
146
155
  * @param {ObjectSerializerContext} context context
147
156
  * @returns {void}
@@ -162,6 +171,7 @@ register(
162
171
  }
163
172
 
164
173
  /**
174
+ * Restores this instance from the provided deserializer context.
165
175
  * @param {ObjectDeserializerContext} context context
166
176
  * @returns {ReplaceSource} replace source
167
177
  */
@@ -193,6 +203,7 @@ register(
193
203
  "webpack-sources/OriginalSource",
194
204
  new (class OriginalSourceSerializer {
195
205
  /**
206
+ * Serializes this instance into the provided serializer context.
196
207
  * @param {OriginalSource} source the original source to be serialized
197
208
  * @param {ObjectSerializerContext} context context
198
209
  * @returns {void}
@@ -203,6 +214,7 @@ register(
203
214
  }
204
215
 
205
216
  /**
217
+ * Restores this instance from the provided deserializer context.
206
218
  * @param {ObjectDeserializerContext} context context
207
219
  * @returns {OriginalSource} original source
208
220
  */
@@ -220,6 +232,7 @@ register(
220
232
  "acorn/SourceLocation",
221
233
  new (class SourceLocationSerializer {
222
234
  /**
235
+ * Serializes this instance into the provided serializer context.
223
236
  * @param {SourceLocation} loc the location to be serialized
224
237
  * @param {ObjectSerializerContext} context context
225
238
  * @returns {void}
@@ -232,6 +245,7 @@ register(
232
245
  }
233
246
 
234
247
  /**
248
+ * Restores this instance from the provided deserializer context.
235
249
  * @param {ObjectDeserializerContext} context context
236
250
  * @returns {RealDependencyLocation} location
237
251
  */
@@ -256,6 +270,7 @@ register(
256
270
  "acorn/Position",
257
271
  new (class PositionSerializer {
258
272
  /**
273
+ * Serializes this instance into the provided serializer context.
259
274
  * @param {Position} pos the position to be serialized
260
275
  * @param {ObjectSerializerContext} context context
261
276
  * @returns {void}
@@ -266,6 +281,7 @@ register(
266
281
  }
267
282
 
268
283
  /**
284
+ * Restores this instance from the provided deserializer context.
269
285
  * @param {ObjectDeserializerContext} context context
270
286
  * @returns {SourcePosition} position
271
287
  */
@@ -284,6 +300,7 @@ register(
284
300
  "webpack-sources/SourceMapSource",
285
301
  new (class SourceMapSourceSerializer {
286
302
  /**
303
+ * Serializes this instance into the provided serializer context.
287
304
  * @param {SourceMapSource} source the source map source to be serialized
288
305
  * @param {ObjectSerializerContext} context context
289
306
  * @returns {void}
@@ -293,6 +310,7 @@ register(
293
310
  }
294
311
 
295
312
  /**
313
+ * Restores this instance from the provided deserializer context.
296
314
  * @param {ObjectDeserializerContext} context context
297
315
  * @returns {SourceMapSource} source source map source
298
316
  */
@@ -309,6 +327,7 @@ register(
309
327
  "schema-utils/ValidationError",
310
328
  new (class ValidationErrorSerializer {
311
329
  /**
330
+ * Serializes this instance into the provided serializer context.
312
331
  * @param {ValidationError} error the source map source to be serialized
313
332
  * @param {ObjectSerializerContext} context context
314
333
  * @returns {void}
@@ -324,6 +343,7 @@ register(
324
343
  }
325
344
 
326
345
  /**
346
+ * Restores this instance from the provided deserializer context.
327
347
  * @param {ObjectDeserializerContext} context context
328
348
  * @returns {ValidationError} error
329
349
  */
@@ -6,6 +6,7 @@
6
6
  "use strict";
7
7
 
8
8
  /**
9
+ * Returns result without BOM.
9
10
  * @param {string | Buffer} strOrBuffer string or buffer
10
11
  * @returns {string | Buffer} result without BOM
11
12
  */
@@ -15,6 +15,7 @@ const SortableSet = require("./SortableSet");
15
15
  /** @typedef {RuntimeSpec | boolean} RuntimeCondition */
16
16
 
17
17
  /**
18
+ * Gets entry runtime.
18
19
  * @param {Compilation} compilation the compilation
19
20
  * @param {string} name name of the entry
20
21
  * @param {EntryOptions=} options optionally already received entry options
@@ -54,6 +55,7 @@ const getEntryRuntime = (compilation, name, options) => {
54
55
  };
55
56
 
56
57
  /**
58
+ * Processes the provided runtime.
57
59
  * @param {RuntimeSpec} runtime runtime
58
60
  * @param {(runtime: string | undefined) => void} fn functor
59
61
  * @param {boolean} deterministicOrder enforce a deterministic order
@@ -73,6 +75,7 @@ const forEachRuntime = (runtime, fn, deterministicOrder = false) => {
73
75
  };
74
76
 
75
77
  /**
78
+ * Returns runtime key.
76
79
  * @template T
77
80
  * @param {Exclude<RuntimeSpec, undefined | string>} set set
78
81
  * @returns {string} runtime key
@@ -83,6 +86,7 @@ const getRuntimesKey = (set) => {
83
86
  };
84
87
 
85
88
  /**
89
+ * Returns key of runtimes.
86
90
  * @param {RuntimeSpec} runtime runtime(s)
87
91
  * @returns {string} key of runtimes
88
92
  */
@@ -93,6 +97,7 @@ const getRuntimeKey = (runtime) => {
93
97
  };
94
98
 
95
99
  /**
100
+ * Returns runtime(s).
96
101
  * @param {string} key key of runtimes
97
102
  * @returns {RuntimeSpec} runtime(s)
98
103
  */
@@ -104,6 +109,7 @@ const keyToRuntime = (key) => {
104
109
  };
105
110
 
106
111
  /**
112
+ * Gets runtimes string.
107
113
  * @template T
108
114
  * @param {Exclude<RuntimeSpec, undefined | string>} set set
109
115
  * @returns {string} runtime string
@@ -114,6 +120,7 @@ const getRuntimesString = (set) => {
114
120
  };
115
121
 
116
122
  /**
123
+ * Returns readable version.
117
124
  * @param {RuntimeSpec} runtime runtime(s)
118
125
  * @returns {string} readable version
119
126
  */
@@ -124,6 +131,7 @@ const runtimeToString = (runtime) => {
124
131
  };
125
132
 
126
133
  /**
134
+ * Runtime condition to string.
127
135
  * @param {RuntimeCondition} runtimeCondition runtime condition
128
136
  * @returns {string} readable version
129
137
  */
@@ -134,6 +142,7 @@ const runtimeConditionToString = (runtimeCondition) => {
134
142
  };
135
143
 
136
144
  /**
145
+ * Returns true, when they are equal.
137
146
  * @param {RuntimeSpec} a first
138
147
  * @param {RuntimeSpec} b second
139
148
  * @returns {boolean} true, when they are equal
@@ -164,6 +173,7 @@ const runtimeEqual = (a, b) => {
164
173
  };
165
174
 
166
175
  /**
176
+ * Compares the provided values and returns their ordering.
167
177
  * @param {RuntimeSpec} a first
168
178
  * @param {RuntimeSpec} b second
169
179
  * @returns {-1 | 0 | 1} compare
@@ -184,6 +194,7 @@ const compareRuntime = (a, b) => {
184
194
  };
185
195
 
186
196
  /**
197
+ * Merges the provided values into a single result.
187
198
  * @param {RuntimeSpec} a first
188
199
  * @param {RuntimeSpec} b second
189
200
  * @returns {RuntimeSpec} merged
@@ -225,6 +236,7 @@ const mergeRuntime = (a, b) => {
225
236
  };
226
237
 
227
238
  /**
239
+ * Merges runtime condition.
228
240
  * @param {RuntimeCondition} a first
229
241
  * @param {RuntimeCondition} b second
230
242
  * @param {RuntimeSpec} runtime full runtime
@@ -246,6 +258,7 @@ const mergeRuntimeCondition = (a, b, runtime) => {
246
258
  };
247
259
 
248
260
  /**
261
+ * Merges runtime condition non false.
249
262
  * @param {RuntimeSpec | true} a first
250
263
  * @param {RuntimeSpec | true} b second
251
264
  * @param {RuntimeSpec} runtime full runtime
@@ -265,6 +278,7 @@ const mergeRuntimeConditionNonFalse = (a, b, runtime) => {
265
278
  };
266
279
 
267
280
  /**
281
+ * Merges runtime owned.
268
282
  * @param {RuntimeSpec} a first (may be modified)
269
283
  * @param {RuntimeSpec} b second
270
284
  * @returns {RuntimeSpec} merged
@@ -302,6 +316,7 @@ const mergeRuntimeOwned = (a, b) => {
302
316
  };
303
317
 
304
318
  /**
319
+ * Returns merged.
305
320
  * @param {RuntimeSpec} a first
306
321
  * @param {RuntimeSpec} b second
307
322
  * @returns {RuntimeSpec} merged
@@ -339,6 +354,7 @@ const intersectRuntime = (a, b) => {
339
354
  };
340
355
 
341
356
  /**
357
+ * Returns result.
342
358
  * @param {RuntimeSpec} a first
343
359
  * @param {RuntimeSpec} b second
344
360
  * @returns {RuntimeSpec} result
@@ -384,6 +400,7 @@ const subtractRuntime = (a, b) => {
384
400
  };
385
401
 
386
402
  /**
403
+ * Subtract runtime condition.
387
404
  * @param {RuntimeCondition} a first
388
405
  * @param {RuntimeCondition} b second
389
406
  * @param {RuntimeSpec} runtime runtime
@@ -398,6 +415,7 @@ const subtractRuntimeCondition = (a, b, runtime) => {
398
415
  };
399
416
 
400
417
  /**
418
+ * Returns true/false if filter is constant for all runtimes, otherwise runtimes that are active.
401
419
  * @param {RuntimeSpec} runtime runtime
402
420
  * @param {(runtime?: RuntimeSpec) => boolean} filter filter function
403
421
  * @returns {boolean | RuntimeSpec} true/false if filter is constant for all runtimes, otherwise runtimes that are active
@@ -424,16 +442,19 @@ const filterRuntime = (runtime, filter) => {
424
442
  };
425
443
 
426
444
  /**
445
+ * Defines the runtime spec map inner map type used by this module.
427
446
  * @template T
428
447
  * @typedef {Map<string, T>} RuntimeSpecMapInnerMap
429
448
  */
430
449
 
431
450
  /**
451
+ * Represents RuntimeSpecMap.
432
452
  * @template T
433
453
  * @template [R=T]
434
454
  */
435
455
  class RuntimeSpecMap {
436
456
  /**
457
+ * Creates an instance of RuntimeSpecMap.
437
458
  * @param {RuntimeSpecMap<T, R>=} clone copy form this
438
459
  */
439
460
  constructor(clone) {
@@ -448,6 +469,7 @@ class RuntimeSpecMap {
448
469
  }
449
470
 
450
471
  /**
472
+ * Returns value.
451
473
  * @param {RuntimeSpec} runtime the runtimes
452
474
  * @returns {R | undefined} value
453
475
  */
@@ -467,6 +489,7 @@ class RuntimeSpecMap {
467
489
  }
468
490
 
469
491
  /**
492
+ * Returns true, when the runtime is stored.
470
493
  * @param {RuntimeSpec} runtime the runtimes
471
494
  * @returns {boolean} true, when the runtime is stored
472
495
  */
@@ -484,6 +507,7 @@ class RuntimeSpecMap {
484
507
  }
485
508
 
486
509
  /**
510
+ * Updates default using the provided runtime.
487
511
  * @param {RuntimeSpec} runtime the runtimes
488
512
  * @param {R} value the value
489
513
  */
@@ -515,6 +539,7 @@ class RuntimeSpecMap {
515
539
  }
516
540
 
517
541
  /**
542
+ * Returns the new value.
518
543
  * @param {RuntimeSpec} runtime the runtimes
519
544
  * @param {() => R} computer function to compute the value
520
545
  * @returns {R} the new value
@@ -557,6 +582,7 @@ class RuntimeSpecMap {
557
582
  }
558
583
 
559
584
  /**
585
+ * Processes the provided runtime.
560
586
  * @param {RuntimeSpec} runtime the runtimes
561
587
  */
562
588
  delete(runtime) {
@@ -577,6 +603,7 @@ class RuntimeSpecMap {
577
603
  }
578
604
 
579
605
  /**
606
+ * Processes the provided runtime.
580
607
  * @param {RuntimeSpec} runtime the runtimes
581
608
  * @param {(value: R | undefined) => R} fn function to update the value
582
609
  */
@@ -634,6 +661,7 @@ class RuntimeSpecMap {
634
661
  }
635
662
 
636
663
  /**
664
+ * Returns values.
637
665
  * @returns {IterableIterator<R>} values
638
666
  */
639
667
  values() {
@@ -658,6 +686,7 @@ class RuntimeSpecMap {
658
686
 
659
687
  class RuntimeSpecSet {
660
688
  /**
689
+ * Creates an instance of RuntimeSpecSet.
661
690
  * @param {Iterable<RuntimeSpec>=} iterable iterable
662
691
  */
663
692
  constructor(iterable) {
@@ -671,6 +700,7 @@ class RuntimeSpecSet {
671
700
  }
672
701
 
673
702
  /**
703
+ * Processes the provided runtime.
674
704
  * @param {RuntimeSpec} runtime runtime
675
705
  */
676
706
  add(runtime) {
@@ -678,6 +708,7 @@ class RuntimeSpecSet {
678
708
  }
679
709
 
680
710
  /**
711
+ * Returns true, when the runtime exists.
681
712
  * @param {RuntimeSpec} runtime runtime
682
713
  * @returns {boolean} true, when the runtime exists
683
714
  */
@@ -686,6 +717,7 @@ class RuntimeSpecSet {
686
717
  }
687
718
 
688
719
  /**
720
+ * Returns iterable iterator.
689
721
  * @returns {IterableIterator<RuntimeSpec>} iterable iterator
690
722
  */
691
723
  [Symbol.iterator]() {
@@ -11,11 +11,13 @@
11
11
  /** @typedef {(SemVerRangeItem | SemVerRangeItem[])[]} SemVerRange */
12
12
 
13
13
  /**
14
+ * Returns parsed version.
14
15
  * @param {string} str version string
15
16
  * @returns {SemVerRange} parsed version
16
17
  */
17
18
  const parseVersion = (str) => {
18
19
  /**
20
+ * Returns result.
19
21
  * @param {str} str str
20
22
  * @returns {VersionValue[]} result
21
23
  */
@@ -49,6 +51,7 @@ module.exports.parseVersion = parseVersion;
49
51
 
50
52
  /* eslint-disable eqeqeq */
51
53
  /**
54
+ * Returns true, iff a < b.
52
55
  * @param {string} a version
53
56
  * @param {string} b version
54
57
  * @returns {boolean} true, iff a < b
@@ -98,11 +101,13 @@ const versionLt = (a, b) => {
98
101
  module.exports.versionLt = versionLt;
99
102
 
100
103
  /**
104
+ * Returns parsed range.
101
105
  * @param {string} str range string
102
106
  * @returns {SemVerRange} parsed range
103
107
  */
104
108
  module.exports.parseRange = (str) => {
105
109
  /**
110
+ * Returns result.
106
111
  * @param {string} str str
107
112
  * @returns {VersionValue[]} result
108
113
  */
@@ -114,6 +119,7 @@ module.exports.parseRange = (str) => {
114
119
 
115
120
  // see https://docs.npmjs.com/misc/semver#range-grammar for grammar
116
121
  /**
122
+ * Returns the sem ver range item.
117
123
  * @param {string} str str
118
124
  * @returns {SemVerRangeItem[]}
119
125
  */
@@ -143,6 +149,7 @@ module.exports.parseRange = (str) => {
143
149
  };
144
150
 
145
151
  /**
152
+ * Returns the sem ver range item.
146
153
  *
147
154
  * @param {SemVerRangeItem[]} range range
148
155
  * @returns {SemVerRangeItem[]}
@@ -163,6 +170,7 @@ module.exports.parseRange = (str) => {
163
170
  };
164
171
 
165
172
  /**
173
+ * Returns result.
166
174
  *
167
175
  * @param {SemVerRangeItem[]} range
168
176
  * @returns {SemVerRangeItem[]} result
@@ -172,6 +180,7 @@ module.exports.parseRange = (str) => {
172
180
  };
173
181
 
174
182
  /**
183
+ * Returns the sem ver range.
175
184
  * @param {string} str str
176
185
  * @returns {SemVerRange}
177
186
  */
@@ -230,6 +239,7 @@ module.exports.parseRange = (str) => {
230
239
  };
231
240
 
232
241
  /**
242
+ * Returns result.
233
243
  *
234
244
  * @param {SemVerRangeItem[][]} items items
235
245
  * @param {number} fn fn
@@ -251,6 +261,7 @@ module.exports.parseRange = (str) => {
251
261
  };
252
262
 
253
263
  /**
264
+ * Returns the sem ver range.
254
265
  * @param {string} str str
255
266
  * @returns {SemVerRange}
256
267
  */
@@ -291,6 +302,7 @@ module.exports.parseRange = (str) => {
291
302
  };
292
303
 
293
304
  /**
305
+ * Returns the sem ver range.
294
306
  * @param {string} str str
295
307
  * @returns {SemVerRange}
296
308
  */
@@ -309,6 +321,7 @@ module.exports.parseRange = (str) => {
309
321
 
310
322
  /* eslint-disable eqeqeq */
311
323
  /**
324
+ * Returns the string.
312
325
  * @param {SemVerRange} range
313
326
  * @returns {string}
314
327
  */
@@ -370,6 +383,7 @@ const rangeToString = (range) => {
370
383
  module.exports.rangeToString = rangeToString;
371
384
 
372
385
  /**
386
+ * Returns if version satisfy the range.
373
387
  * @param {SemVerRange} range version range
374
388
  * @param {string} version the version
375
389
  * @returns {boolean} if version satisfy the range
@@ -531,6 +545,7 @@ const satisfy = (range, version) => {
531
545
  module.exports.satisfy = satisfy;
532
546
 
533
547
  /**
548
+ * Returns the string.
534
549
  * @param {SemVerRange | string | number | false | undefined} json
535
550
  * @returns {string}
536
551
  */
@@ -13,6 +13,7 @@ const memoize = require("./memoize");
13
13
  /** @typedef {import("../util/fs").IntermediateFileSystem} IntermediateFileSystem */
14
14
 
15
15
  /**
16
+ * Defines the serializer type used by this module.
16
17
  * @template D, S, C
17
18
  * @typedef {import("../serialization/Serializer")<D, S, C>} Serializer
18
19
  */
@@ -109,6 +110,7 @@ module.exports = {
109
110
  );
110
111
  },
111
112
  /**
113
+ * Creates a file serializer.
112
114
  * @template D, S, C
113
115
  * @param {IntermediateFileSystem} fs filesystem
114
116
  * @param {HashFunction} hashFunction hash function to use
@@ -6,6 +6,7 @@
6
6
  "use strict";
7
7
 
8
8
  /**
9
+ * Defines the group options type used by this module.
9
10
  * @typedef {object} GroupOptions
10
11
  * @property {boolean=} groupChildren
11
12
  * @property {boolean=} force
@@ -13,6 +14,7 @@
13
14
  */
14
15
 
15
16
  /**
17
+ * Defines the group config type used by this module.
16
18
  * @template I
17
19
  * @template G
18
20
  * @typedef {object} GroupConfig
@@ -22,17 +24,20 @@
22
24
  */
23
25
 
24
26
  /**
27
+ * Defines the group type used by this module.
25
28
  * @template I
26
29
  * @template G
27
30
  * @typedef {{ config: GroupConfig<I, G>, name: string, alreadyGrouped: boolean, items: Items<I, G> | undefined }} Group
28
31
  */
29
32
 
30
33
  /**
34
+ * Defines the groups type used by this module.
31
35
  * @template I, G
32
36
  * @typedef {Set<Group<I, G>>} Groups
33
37
  */
34
38
 
35
39
  /**
40
+ * Defines the item with groups type used by this module.
36
41
  * @template I
37
42
  * @template G
38
43
  * @typedef {object} ItemWithGroups
@@ -41,11 +46,13 @@
41
46
  */
42
47
 
43
48
  /**
49
+ * Defines the items type used by this module.
44
50
  * @template T, G
45
51
  * @typedef {Set<ItemWithGroups<T, G>>} Items
46
52
  */
47
53
 
48
54
  /**
55
+ * Returns grouped items.
49
56
  * @template I
50
57
  * @template G
51
58
  * @template R
@@ -90,6 +97,7 @@ const smartGrouping = (items, groupConfigs) => {
90
97
  }
91
98
 
92
99
  /**
100
+ * Returns groups items.
93
101
  * @param {Items<I, G>} itemsWithGroups input items with groups
94
102
  * @returns {(I | G)[]} groups items
95
103
  */
@@ -6,11 +6,13 @@
6
6
  "use strict";
7
7
 
8
8
  /** @typedef {import("webpack-sources").Source} Source */
9
+ /** @typedef {import("./Hash")} Hash */
9
10
 
10
11
  /** @type {WeakMap<Source, WeakMap<Source, boolean>>} */
11
12
  const equalityCache = new WeakMap();
12
13
 
13
14
  /**
15
+ * Checks whether source equal true, when both sources are equal.
14
16
  * @param {Source} a a source
15
17
  * @param {Source} b another source
16
18
  * @returns {boolean} true, when both sources are equal
@@ -29,6 +31,7 @@ const _isSourceEqual = (a, b) => {
29
31
  };
30
32
 
31
33
  /**
34
+ * Checks whether this object is source equal.
32
35
  * @param {Source} a a source
33
36
  * @param {Source} b another source
34
37
  * @returns {boolean} true, when both sources are equal
@@ -59,4 +62,24 @@ const isSourceEqual = (a, b) => {
59
62
  return result;
60
63
  };
61
64
 
65
+ // TODO remove in webpack 6, this is protection against authors who directly use `webpack-sources` outdated version
66
+ /**
67
+ * Feeds the Source's content into a Hash without forcing a single
68
+ * concatenated Buffer. Uses webpack-sources >= 3.4.0 `buffers()` when
69
+ * available so `ConcatSource` can stream its children directly.
70
+ * @param {Hash} hash hash to update
71
+ * @param {Source} source source whose bytes are appended
72
+ * @returns {void}
73
+ */
74
+ const updateHashFromSource = (hash, source) => {
75
+ // TODO webpack 6: drop the `buffers` check, require webpack-sources >= 3.4
76
+ // and call `source.buffers()` unconditionally.
77
+ if (typeof source.buffers === "function") {
78
+ for (const buf of source.buffers()) hash.update(buf);
79
+ } else {
80
+ hash.update(source.buffer());
81
+ }
82
+ };
83
+
62
84
  module.exports.isSourceEqual = isSourceEqual;
85
+ module.exports.updateHashFromSource = updateHashFromSource;
@@ -0,0 +1,69 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ */
4
+
5
+ "use strict";
6
+
7
+ /**
8
+ * Topologically sort `nodes` using Kahn's algorithm with source-order
9
+ * tie-breaking. Nodes that participate in a cycle remain unvisited —
10
+ * `visit` is never called for them — so the caller can naturally keep
11
+ * them in their original position by treating "no visit" as "keep
12
+ * source order".
13
+ *
14
+ * Precondition: every node appearing in `graph` (as a key OR inside any
15
+ * successor set) must also appear in `nodes`. The caller owns this
16
+ * invariant; the function does not validate it.
17
+ *
18
+ * Complexity: O(V·(V + E)). Each outer iteration scans the ready set
19
+ * linearly to find the smallest source-index node. CSS composes graphs
20
+ * are small (a handful of files per module) so this is fine; if a much
21
+ * larger graph ever needs sorting here, swap in a min-heap.
22
+ * @template T
23
+ * @param {Map<T, Set<T>>} graph adjacency list (`a -> b` means `a` must come before `b`)
24
+ * @param {T[]} nodes nodes in source first-appearance order
25
+ * @param {(node: T, index: number) => void} visit called once per non-cyclic node in topological order
26
+ * @returns {void}
27
+ */
28
+ module.exports = (graph, nodes, visit) => {
29
+ /** @type {Map<T, number>} */
30
+ const inDegree = new Map();
31
+ /** @type {Map<T, number>} */
32
+ const sourceIndex = new Map();
33
+ for (let i = 0; i < nodes.length; i++) {
34
+ inDegree.set(nodes[i], 0);
35
+ sourceIndex.set(nodes[i], i);
36
+ }
37
+ for (const successors of graph.values()) {
38
+ for (const to of successors) {
39
+ inDegree.set(to, /** @type {number} */ (inDegree.get(to)) + 1);
40
+ }
41
+ }
42
+
43
+ const ready = nodes.filter((n) => inDegree.get(n) === 0);
44
+ let index = 0;
45
+ while (ready.length > 0) {
46
+ // Smallest-source-index wins ties. Linear scan + swap-with-last
47
+ // + pop avoids re-sorting the ready set on every iteration.
48
+ let minIdx = 0;
49
+ for (let i = 1; i < ready.length; i++) {
50
+ if (
51
+ /** @type {number} */ (sourceIndex.get(ready[i])) <
52
+ /** @type {number} */ (sourceIndex.get(ready[minIdx]))
53
+ ) {
54
+ minIdx = i;
55
+ }
56
+ }
57
+ const node = ready[minIdx];
58
+ ready[minIdx] = ready[ready.length - 1];
59
+ ready.pop();
60
+ visit(node, index++);
61
+ const successors = graph.get(node);
62
+ if (!successors) continue;
63
+ for (const to of successors) {
64
+ const newDeg = /** @type {number} */ (inDegree.get(to)) - 1;
65
+ inDegree.set(to, newDeg);
66
+ if (newDeg === 0) ready.push(to);
67
+ }
68
+ }
69
+ };