@depup/webpack 5.106.0-depup.0 → 5.109.0-depup.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 (667) hide show
  1. package/README.md +9 -11
  2. package/changes.json +16 -24
  3. package/hot/dev-server.js +2 -0
  4. package/lib/APIPlugin.js +60 -35
  5. package/lib/AsyncDependenciesBlock.js +3 -0
  6. package/lib/AutomaticPrefetchPlugin.js +6 -1
  7. package/lib/BannerPlugin.js +13 -5
  8. package/lib/Cache.js +27 -5
  9. package/lib/CacheFacade.js +41 -0
  10. package/lib/Chunk.js +71 -25
  11. package/lib/ChunkGraph.js +141 -9
  12. package/lib/ChunkGroup.js +115 -28
  13. package/lib/ChunkTemplate.js +9 -0
  14. package/lib/CircularModulesPlugin.js +190 -0
  15. package/lib/CleanPlugin.js +23 -26
  16. package/lib/CodeGenerationResults.js +19 -0
  17. package/lib/CompatibilityPlugin.js +54 -37
  18. package/lib/Compilation.js +635 -107
  19. package/lib/Compiler.js +93 -31
  20. package/lib/ConcatenationScope.js +34 -4
  21. package/lib/ConditionalInitFragment.js +6 -0
  22. package/lib/ConstPlugin.js +15 -12
  23. package/lib/ContextExclusionPlugin.js +3 -1
  24. package/lib/ContextModule.js +345 -55
  25. package/lib/ContextModuleFactory.js +193 -51
  26. package/lib/ContextReplacementPlugin.js +8 -1
  27. package/lib/DefinePlugin.js +498 -127
  28. package/lib/DependenciesBlock.js +6 -1
  29. package/lib/Dependency.js +159 -11
  30. package/lib/DependencyTemplate.js +7 -1
  31. package/lib/DependencyTemplates.js +4 -0
  32. package/lib/DotenvPlugin.js +3 -0
  33. package/lib/DynamicEntryPlugin.js +3 -1
  34. package/lib/EntryOptionPlugin.js +42 -2
  35. package/lib/EntryPlugin.js +4 -1
  36. package/lib/Entrypoint.js +5 -1
  37. package/lib/EnvironmentPlugin.js +3 -2
  38. package/lib/ErrorHelpers.js +7 -0
  39. package/lib/EvalDevToolModulePlugin.js +3 -1
  40. package/lib/EvalSourceMapDevToolPlugin.js +11 -11
  41. package/lib/ExportsInfo.js +399 -108
  42. package/lib/ExportsInfoApiPlugin.js +4 -3
  43. package/lib/ExternalModule.js +376 -78
  44. package/lib/ExternalModuleFactoryPlugin.js +75 -3
  45. package/lib/ExternalsPlugin.js +3 -1
  46. package/lib/FileSystemInfo.js +575 -149
  47. package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
  48. package/lib/FlagDependencyExportsPlugin.js +82 -9
  49. package/lib/FlagDependencyUsagePlugin.js +92 -6
  50. package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
  51. package/lib/Generator.js +24 -3
  52. package/lib/HotModuleReplacementPlugin.js +110 -44
  53. package/lib/IgnorePlugin.js +5 -2
  54. package/lib/IgnoreWarningsPlugin.js +2 -1
  55. package/lib/InitFragment.js +15 -0
  56. package/lib/JavascriptMetaInfoPlugin.js +9 -6
  57. package/lib/LazyBarrel.js +389 -0
  58. package/lib/LibraryTemplatePlugin.js +2 -1
  59. package/lib/LoaderOptionsPlugin.js +3 -1
  60. package/lib/LoaderTargetPlugin.js +3 -1
  61. package/lib/MainTemplate.js +15 -0
  62. package/lib/ManifestPlugin.js +9 -2
  63. package/lib/Module.js +121 -60
  64. package/lib/ModuleFactory.js +6 -1
  65. package/lib/ModuleFilenameHelpers.js +5 -2
  66. package/lib/ModuleGraph.js +69 -2
  67. package/lib/ModuleGraphConnection.js +9 -0
  68. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  69. package/lib/ModuleNotFoundError.js +3 -83
  70. package/lib/ModuleProfile.js +27 -1
  71. package/lib/ModuleSourceTypeConstants.js +52 -19
  72. package/lib/ModuleTemplate.js +10 -0
  73. package/lib/ModuleTypeConstants.js +20 -4
  74. package/lib/MultiCompiler.js +59 -4
  75. package/lib/MultiStats.js +9 -0
  76. package/lib/MultiWatching.js +6 -0
  77. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  78. package/lib/NodeStuffPlugin.js +78 -46
  79. package/lib/NormalModule.js +485 -181
  80. package/lib/NormalModuleFactory.js +148 -29
  81. package/lib/NormalModuleReplacementPlugin.js +3 -1
  82. package/lib/NullFactory.js +1 -0
  83. package/lib/OptionsApply.js +1 -0
  84. package/lib/Parser.js +3 -1
  85. package/lib/PlatformPlugin.js +2 -1
  86. package/lib/PrefetchPlugin.js +4 -1
  87. package/lib/ProgressPlugin.js +351 -161
  88. package/lib/ProvidePlugin.js +6 -3
  89. package/lib/RawModule.js +32 -16
  90. package/lib/RecordIdsPlugin.js +9 -0
  91. package/lib/RequestShortener.js +8 -0
  92. package/lib/ResolverFactory.js +5 -0
  93. package/lib/RuntimeGlobals.js +58 -5
  94. package/lib/RuntimeModule.js +22 -7
  95. package/lib/RuntimePlugin.js +104 -26
  96. package/lib/RuntimeTemplate.js +616 -37
  97. package/lib/SelfModuleFactory.js +3 -0
  98. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  99. package/lib/SourceMapDevToolPlugin.js +341 -63
  100. package/lib/Stats.js +6 -0
  101. package/lib/Template.js +29 -3
  102. package/lib/TemplatedPathPlugin.js +505 -138
  103. package/lib/UseStrictPlugin.js +3 -2
  104. package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
  105. package/lib/WarnDeprecatedOptionPlugin.js +6 -2
  106. package/lib/WarnNoModeSetPlugin.js +18 -2
  107. package/lib/WatchIgnorePlugin.js +5 -1
  108. package/lib/Watching.js +25 -3
  109. package/lib/WebpackError.js +3 -74
  110. package/lib/WebpackIsIncludedPlugin.js +4 -2
  111. package/lib/WebpackOptionsApply.js +88 -25
  112. package/lib/WebpackOptionsDefaulter.js +1 -0
  113. package/lib/asset/AssetBytesGenerator.js +28 -10
  114. package/lib/asset/AssetBytesParser.js +1 -0
  115. package/lib/asset/AssetGenerator.js +199 -60
  116. package/lib/asset/AssetModule.js +47 -0
  117. package/lib/asset/AssetModulesPlugin.js +115 -24
  118. package/lib/asset/AssetParser.js +4 -2
  119. package/lib/asset/AssetSourceGenerator.js +26 -8
  120. package/lib/asset/AssetSourceParser.js +1 -0
  121. package/lib/asset/RawDataUrlModule.js +23 -13
  122. package/lib/asset/WebManifestGenerator.js +164 -0
  123. package/lib/asset/WebManifestParser.js +130 -0
  124. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  125. package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
  126. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  127. package/lib/async-modules/isGeneratorLowered.js +26 -0
  128. package/lib/buildChunkGraph.js +107 -15
  129. package/lib/bun/BunTargetPlugin.js +42 -0
  130. package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
  131. package/lib/cache/AddManagedPathsPlugin.js +5 -1
  132. package/lib/cache/IdleFileCachePlugin.js +6 -1
  133. package/lib/cache/MemoryCachePlugin.js +1 -1
  134. package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
  135. package/lib/cache/PackFileCacheStrategy.js +43 -7
  136. package/lib/cache/ResolverCachePlugin.js +12 -1
  137. package/lib/cache/getLazyHashedEtag.js +13 -2
  138. package/lib/cache/mergeEtags.js +4 -0
  139. package/lib/cli.js +142 -20
  140. package/lib/config/browserslistTargetHandler.js +141 -0
  141. package/lib/config/defaults.js +591 -41
  142. package/lib/config/defineConfig.js +31 -0
  143. package/lib/config/normalization.js +46 -1
  144. package/lib/config/target.js +200 -2
  145. package/lib/container/ContainerEntryDependency.js +2 -0
  146. package/lib/container/ContainerEntryModule.js +27 -14
  147. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  148. package/lib/container/ContainerExposedDependency.js +6 -2
  149. package/lib/container/ContainerPlugin.js +2 -1
  150. package/lib/container/ContainerReferencePlugin.js +3 -2
  151. package/lib/container/FallbackDependency.js +9 -7
  152. package/lib/container/FallbackItemDependency.js +1 -0
  153. package/lib/container/FallbackModule.js +22 -9
  154. package/lib/container/FallbackModuleFactory.js +1 -0
  155. package/lib/container/ModuleFederationPlugin.js +12 -26
  156. package/lib/container/RemoteModule.js +33 -10
  157. package/lib/container/RemoteRuntimeModule.js +15 -12
  158. package/lib/container/RemoteToExternalDependency.js +1 -0
  159. package/lib/container/options.js +7 -0
  160. package/lib/css/CssGenerator.js +534 -272
  161. package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
  162. package/lib/css/CssLoadingRuntimeModule.js +156 -77
  163. package/lib/{CssModule.js → css/CssModule.js} +72 -37
  164. package/lib/css/CssModulesPlugin.js +356 -204
  165. package/lib/css/CssParser.js +3452 -1950
  166. package/lib/css/syntax.js +4058 -0
  167. package/lib/debug/ProfilingPlugin.js +33 -2
  168. package/lib/deno/DenoTargetPlugin.js +41 -0
  169. package/lib/dependencies/AMDDefineDependency.js +29 -17
  170. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
  171. package/lib/dependencies/AMDPlugin.js +6 -3
  172. package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
  173. package/lib/dependencies/AMDRequireContextDependency.js +10 -11
  174. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  175. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
  176. package/lib/dependencies/AMDRequireDependency.js +28 -20
  177. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  178. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  179. package/lib/dependencies/CachedConstDependency.js +9 -1
  180. package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
  181. package/lib/dependencies/CommonJsExportRequireDependency.js +138 -38
  182. package/lib/dependencies/CommonJsExportsDependency.js +74 -20
  183. package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
  184. package/lib/dependencies/CommonJsFullRequireDependency.js +62 -27
  185. package/lib/dependencies/CommonJsImportsParserPlugin.js +187 -24
  186. package/lib/dependencies/CommonJsPlugin.js +7 -4
  187. package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
  188. package/lib/dependencies/CommonJsRequireDependency.js +135 -13
  189. package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
  190. package/lib/dependencies/ConstDependency.js +22 -12
  191. package/lib/dependencies/ContextDependency.js +13 -2
  192. package/lib/dependencies/ContextDependencyHelpers.js +7 -4
  193. package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
  194. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  195. package/lib/dependencies/ContextElementDependency.js +27 -14
  196. package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
  197. package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
  198. package/lib/dependencies/CriticalDependencyWarning.js +3 -1
  199. package/lib/dependencies/CssIcssExportDependency.js +682 -368
  200. package/lib/dependencies/CssIcssImportDependency.js +62 -17
  201. package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
  202. package/lib/dependencies/CssImportDependency.js +37 -1
  203. package/lib/dependencies/CssUrlDependency.js +87 -14
  204. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  205. package/lib/dependencies/DllEntryDependency.js +12 -13
  206. package/lib/dependencies/DynamicExports.js +5 -0
  207. package/lib/dependencies/EntryDependency.js +1 -0
  208. package/lib/dependencies/ExportBindingInitFragment.js +164 -0
  209. package/lib/dependencies/ExportsInfoDependency.js +18 -12
  210. package/lib/dependencies/ExternalModuleDependency.js +13 -5
  211. package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
  212. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
  213. package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
  214. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
  215. package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
  216. package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
  217. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +32 -2
  218. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
  219. package/lib/dependencies/HarmonyExportExpressionDependency.js +140 -46
  220. package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
  221. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +253 -37
  222. package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
  223. package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
  224. package/lib/dependencies/HarmonyExports.js +6 -1
  225. package/lib/dependencies/HarmonyImportDependency.js +59 -3
  226. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
  227. package/lib/dependencies/HarmonyImportGuard.js +426 -0
  228. package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
  229. package/lib/dependencies/HarmonyImportSpecifierDependency.js +136 -17
  230. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
  231. package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
  232. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
  233. package/lib/dependencies/HtmlEntryDependency.js +1295 -0
  234. package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
  235. package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
  236. package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
  237. package/lib/dependencies/HtmlSourceDependency.js +172 -0
  238. package/lib/dependencies/ImportContextDependency.js +9 -9
  239. package/lib/dependencies/ImportDependency.js +92 -3
  240. package/lib/dependencies/ImportEagerDependency.js +2 -0
  241. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  242. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
  243. package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
  244. package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
  245. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
  246. package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
  247. package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
  248. package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
  249. package/lib/dependencies/ImportMetaPlugin.js +595 -209
  250. package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
  251. package/lib/dependencies/ImportParserPlugin.js +114 -27
  252. package/lib/dependencies/ImportPhase.js +17 -11
  253. package/lib/dependencies/ImportPlugin.js +2 -1
  254. package/lib/dependencies/ImportWeakDependency.js +3 -0
  255. package/lib/dependencies/JsonExportsDependency.js +15 -10
  256. package/lib/dependencies/LoaderDependency.js +2 -0
  257. package/lib/dependencies/LoaderImportDependency.js +3 -0
  258. package/lib/dependencies/LoaderPlugin.js +9 -2
  259. package/lib/dependencies/LocalModule.js +15 -12
  260. package/lib/dependencies/LocalModuleDependency.js +15 -13
  261. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  262. package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
  263. package/lib/dependencies/ModuleDependency.js +14 -0
  264. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  265. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  266. package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
  267. package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
  268. package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
  269. package/lib/dependencies/NullDependency.js +2 -0
  270. package/lib/dependencies/PrefetchDependency.js +1 -0
  271. package/lib/dependencies/ProvidedDependency.js +36 -27
  272. package/lib/dependencies/PureExpressionDependency.js +14 -10
  273. package/lib/dependencies/RequireContextDependency.js +1 -0
  274. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
  275. package/lib/dependencies/RequireContextPlugin.js +2 -1
  276. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  277. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
  278. package/lib/dependencies/RequireEnsureDependency.js +16 -13
  279. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  280. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  281. package/lib/dependencies/RequireHeaderDependency.js +7 -4
  282. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  283. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
  284. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  285. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
  286. package/lib/dependencies/RequireResolveContextDependency.js +10 -11
  287. package/lib/dependencies/RequireResolveDependency.js +2 -0
  288. package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
  289. package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
  290. package/lib/dependencies/StaticExportsDependency.js +13 -10
  291. package/lib/dependencies/SystemPlugin.js +9 -6
  292. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  293. package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
  294. package/lib/dependencies/URLContextDependency.js +8 -7
  295. package/lib/dependencies/URLDependency.js +157 -33
  296. package/lib/dependencies/URLPlugin.js +2 -0
  297. package/lib/dependencies/UnsupportedDependency.js +12 -13
  298. package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
  299. package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
  300. package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
  301. package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
  302. package/lib/dependencies/WorkerDependency.js +111 -27
  303. package/lib/dependencies/WorkletDependency.js +278 -0
  304. package/lib/dependencies/getFunctionExpression.js +1 -0
  305. package/lib/dependencies/processExportInfo.js +14 -11
  306. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
  307. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
  308. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
  309. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
  310. package/lib/{DllModule.js → dll/DllModule.js} +36 -24
  311. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
  312. package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
  313. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
  314. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
  315. package/lib/electron/ElectronTargetPlugin.js +24 -5
  316. package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
  317. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
  318. package/lib/errors/BuildCycleError.js +1 -1
  319. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  320. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  321. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
  322. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
  323. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
  324. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
  325. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
  326. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
  327. package/lib/errors/JSONParseError.js +115 -0
  328. package/lib/errors/LoaderLoadingError.js +20 -0
  329. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
  330. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
  331. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
  332. package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
  333. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
  334. package/lib/errors/ModuleNotFoundError.js +94 -0
  335. package/lib/errors/ModuleParseError.js +141 -0
  336. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
  337. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
  338. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
  339. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
  340. package/lib/errors/NonErrorEmittedError.js +30 -0
  341. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
  342. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
  343. package/lib/errors/WebpackError.js +84 -0
  344. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  345. package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
  346. package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
  347. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +71 -49
  348. package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
  349. package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
  350. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
  351. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  352. package/lib/hmr/LazyCompilationPlugin.js +154 -7
  353. package/lib/hmr/lazyCompilationBackend.js +34 -8
  354. package/lib/html/HtmlGenerator.js +1470 -0
  355. package/lib/html/HtmlModule.js +41 -0
  356. package/lib/html/HtmlModulesPlugin.js +1111 -0
  357. package/lib/html/HtmlParser.js +1970 -0
  358. package/lib/html/favicon.svg +1 -0
  359. package/lib/html/syntax.js +9020 -0
  360. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  361. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  362. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  363. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  364. package/lib/ids/IdHelpers.js +25 -2
  365. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  366. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  367. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  368. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  369. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  370. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  371. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  372. package/lib/index.js +66 -15
  373. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
  374. package/lib/javascript/BasicEvaluatedExpression.js +370 -49
  375. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  376. package/lib/javascript/ChunkHelpers.js +1 -0
  377. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  378. package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
  379. package/lib/javascript/JavascriptGenerator.js +213 -51
  380. package/lib/javascript/JavascriptModule.js +54 -0
  381. package/lib/javascript/JavascriptModulesPlugin.js +579 -183
  382. package/lib/javascript/JavascriptParser.js +1289 -462
  383. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  384. package/lib/javascript/StartupHelpers.js +5 -0
  385. package/lib/javascript/syntax.js +4380 -0
  386. package/lib/json/JsonData.js +5 -0
  387. package/lib/json/JsonGenerator.js +21 -0
  388. package/lib/json/JsonModule.js +40 -0
  389. package/lib/json/JsonModulesPlugin.js +8 -1
  390. package/lib/json/JsonParser.js +18 -27
  391. package/lib/library/AbstractLibraryPlugin.js +17 -2
  392. package/lib/library/AmdLibraryPlugin.js +8 -0
  393. package/lib/library/AssignLibraryPlugin.js +21 -3
  394. package/lib/library/EnableLibraryPlugin.js +8 -2
  395. package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
  396. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
  397. package/lib/library/JsonpLibraryPlugin.js +8 -0
  398. package/lib/library/ModuleLibraryPlugin.js +154 -7
  399. package/lib/library/SystemLibraryPlugin.js +11 -3
  400. package/lib/library/UmdLibraryPlugin.js +16 -0
  401. package/lib/loaders/LoaderRunner.js +714 -0
  402. package/lib/loaders/loadLoader.js +100 -0
  403. package/lib/logging/Logger.js +17 -0
  404. package/lib/logging/createConsoleLogger.js +7 -0
  405. package/lib/logging/runtime.js +2 -0
  406. package/lib/logging/truncateArgs.js +2 -0
  407. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  408. package/lib/node/NodeEnvironmentPlugin.js +7 -3
  409. package/lib/node/NodeSourcePlugin.js +1 -1
  410. package/lib/node/NodeTargetPlugin.js +4 -63
  411. package/lib/node/NodeTemplatePlugin.js +3 -1
  412. package/lib/node/NodeWatchFileSystem.js +40 -22
  413. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
  414. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +23 -1
  415. package/lib/node/ReadFileCompileWasmPlugin.js +18 -1
  416. package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
  417. package/lib/node/nodeBuiltins.js +80 -0
  418. package/lib/node/nodeConsole.js +116 -64
  419. package/lib/optimize/AggressiveMergingPlugin.js +3 -1
  420. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  421. package/lib/optimize/ConcatenatedModule.js +585 -116
  422. package/lib/optimize/ConstExportsPlugin.js +211 -0
  423. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  424. package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
  425. package/lib/optimize/InlineExports.js +178 -0
  426. package/lib/optimize/InnerGraph.js +374 -262
  427. package/lib/optimize/InnerGraphPlugin.js +246 -117
  428. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  429. package/lib/optimize/MangleExportsPlugin.js +5 -1
  430. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  431. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  432. package/lib/optimize/MinMaxSizeWarning.js +5 -4
  433. package/lib/optimize/ModuleConcatenationPlugin.js +159 -34
  434. package/lib/optimize/RealContentHashPlugin.js +125 -50
  435. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  436. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  437. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  438. package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
  439. package/lib/optimize/SplitChunksPlugin.js +54 -6
  440. package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
  441. package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
  442. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  443. package/lib/performance/SizeLimitsPlugin.js +8 -2
  444. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  445. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
  446. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  447. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
  448. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
  449. package/lib/prefetch/ResourceHintPlugin.js +663 -0
  450. package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
  451. package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
  452. package/lib/prefetch/parseResourceHintOptions.js +103 -0
  453. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  454. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  455. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  456. package/lib/rules/RuleSetCompiler.js +132 -0
  457. package/lib/rules/UseEffectRulePlugin.js +10 -3
  458. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
  459. package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
  460. package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
  461. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  462. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  463. package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
  464. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
  465. package/lib/runtime/CompatRuntimeModule.js +2 -0
  466. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
  467. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  468. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  469. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
  470. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  471. package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
  472. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  473. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  474. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
  475. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
  476. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  477. package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
  478. package/lib/runtime/HelperRuntimeModule.js +5 -0
  479. package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
  480. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
  481. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
  482. package/lib/runtime/NonceRuntimeModule.js +1 -0
  483. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
  484. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  485. package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
  486. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  487. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
  488. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  489. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
  490. package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
  491. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  492. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  493. package/lib/runtime/WorkerRuntimeModule.js +33 -0
  494. package/lib/schemes/DataUriPlugin.js +14 -2
  495. package/lib/schemes/FileUriPlugin.js +1 -1
  496. package/lib/schemes/HttpUriPlugin.js +86 -4
  497. package/lib/schemes/VirtualUrlPlugin.js +8 -4
  498. package/lib/serialization/AggregateErrorSerializer.js +9 -6
  499. package/lib/serialization/ArraySerializer.js +6 -8
  500. package/lib/serialization/BinaryMiddleware.js +552 -463
  501. package/lib/serialization/DateObjectSerializer.js +4 -2
  502. package/lib/serialization/ErrorObjectSerializer.js +10 -6
  503. package/lib/serialization/FileMiddleware.js +50 -3
  504. package/lib/serialization/MapObjectSerializer.js +7 -9
  505. package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
  506. package/lib/serialization/ObjectMiddleware.js +73 -13
  507. package/lib/serialization/PlainObjectSerializer.js +16 -8
  508. package/lib/serialization/RegExpObjectSerializer.js +4 -2
  509. package/lib/serialization/Serializer.js +6 -0
  510. package/lib/serialization/SerializerMiddleware.js +14 -2
  511. package/lib/serialization/SetObjectSerializer.js +6 -8
  512. package/lib/serialization/SingleItemMiddleware.js +3 -0
  513. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  514. package/lib/sharing/ConsumeSharedModule.js +21 -7
  515. package/lib/sharing/ConsumeSharedPlugin.js +11 -11
  516. package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
  517. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  518. package/lib/sharing/ProvideSharedDependency.js +34 -15
  519. package/lib/sharing/ProvideSharedModule.js +42 -12
  520. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  521. package/lib/sharing/ProvideSharedPlugin.js +13 -8
  522. package/lib/sharing/SharePlugin.js +5 -1
  523. package/lib/sharing/ShareRuntimeModule.js +19 -16
  524. package/lib/sharing/resolveMatchedConfigs.js +6 -2
  525. package/lib/sharing/utils.js +9 -1
  526. package/lib/stats/DefaultStatsFactoryPlugin.js +94 -12
  527. package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
  528. package/lib/stats/DefaultStatsPrinterPlugin.js +64 -18
  529. package/lib/stats/StatsFactory.js +39 -18
  530. package/lib/stats/StatsPrinter.js +16 -2
  531. package/lib/typescript/TypeScriptPlugin.js +210 -0
  532. package/lib/url/URLParserPlugin.js +111 -23
  533. package/lib/util/ArrayHelpers.js +1 -0
  534. package/lib/util/ArrayQueue.js +10 -5
  535. package/lib/util/AsyncQueue.js +154 -74
  536. package/lib/util/Hash.js +2 -2
  537. package/lib/util/IterableHelpers.js +3 -0
  538. package/lib/util/LazyBucketSortedSet.js +26 -0
  539. package/lib/util/LazySet.js +45 -4
  540. package/lib/util/LocConverter.js +64 -0
  541. package/lib/util/ParallelismFactorCalculator.js +1 -0
  542. package/lib/util/Queue.js +6 -3
  543. package/lib/util/Semaphore.js +15 -1
  544. package/lib/util/SetHelpers.js +4 -1
  545. package/lib/util/SortableSet.js +7 -1
  546. package/lib/util/SourceProcessor.js +119 -0
  547. package/lib/util/StackedCacheMap.js +20 -3
  548. package/lib/util/StackedMap.js +162 -43
  549. package/lib/util/StringXor.js +1 -1
  550. package/lib/util/TupleQueue.js +7 -3
  551. package/lib/util/TupleSet.js +14 -0
  552. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  553. package/lib/util/WeakTupleMap.js +60 -1
  554. package/lib/util/binarySearchBounds.js +3 -2
  555. package/lib/util/chainedImports.js +3 -3
  556. package/lib/util/cleverMerge.js +19 -2
  557. package/lib/util/comparators.js +35 -4
  558. package/lib/util/compileBooleanMatcher.js +9 -0
  559. package/lib/util/concatenate.js +80 -24
  560. package/lib/util/conventions.js +46 -1
  561. package/lib/util/createHash.js +0 -1
  562. package/lib/util/createHooksRegistry.js +43 -0
  563. package/lib/util/createMappings.js +118 -0
  564. package/lib/util/dataURL.js +3 -2
  565. package/lib/util/deprecation.js +19 -0
  566. package/lib/util/deterministicGrouping.js +46 -17
  567. package/lib/util/extractSourceMap.js +2 -1
  568. package/lib/util/extractUrlAndGlobal.js +1 -0
  569. package/lib/util/findGraphRoots.js +7 -0
  570. package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
  571. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
  572. package/lib/util/fs.js +87 -14
  573. package/lib/util/generateDebugId.js +1 -0
  574. package/lib/util/globUtils.js +710 -0
  575. package/lib/util/hash/BatchedHash.js +1 -0
  576. package/lib/util/hash/BulkUpdateHash.js +1 -0
  577. package/lib/util/hash/DebugHash.js +1 -0
  578. package/lib/util/hash/hash-digest.js +32 -15
  579. package/lib/util/hash/md4.js +1 -1
  580. package/lib/util/hash/wasm-hash.js +5 -0
  581. package/lib/util/hash/xxhash64.js +1 -1
  582. package/lib/util/identifier.js +97 -6
  583. package/lib/util/implicitTypeLoaderFallback.js +62 -0
  584. package/lib/util/internalSerializables.js +102 -60
  585. package/lib/util/magicComment.js +149 -7
  586. package/lib/util/makeSerializable.js +7 -0
  587. package/lib/util/memoize.js +2 -0
  588. package/lib/util/mimeTypes.js +176 -0
  589. package/lib/util/nonNumericOnlyHash.js +31 -1
  590. package/lib/util/numberHash.js +2 -2
  591. package/lib/util/parseJson.js +41 -0
  592. package/lib/util/processAsyncTree.js +8 -0
  593. package/lib/util/property.js +9 -2
  594. package/lib/util/publicPathPlaceholder.js +64 -0
  595. package/lib/util/registerExternalSerializer.js +24 -4
  596. package/lib/util/removeBOM.js +1 -0
  597. package/lib/util/runtime.js +32 -0
  598. package/lib/util/semver.js +15 -0
  599. package/lib/util/serialization.js +2 -0
  600. package/lib/util/smartGrouping.js +8 -0
  601. package/lib/util/source.js +23 -0
  602. package/lib/util/topologicalSort.js +69 -0
  603. package/lib/validateSchema.js +1 -0
  604. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  605. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
  606. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
  607. package/lib/wasm-async/AsyncWasmModule.js +77 -0
  608. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  609. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
  610. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
  611. package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
  612. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
  613. package/lib/wasm-sync/SyncWasmModule.js +39 -0
  614. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
  615. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
  616. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
  617. package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
  618. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
  619. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  620. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
  621. package/lib/wasm-sync/WebAssemblyParser.js +9 -3
  622. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  623. package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
  624. package/lib/web/FetchCompileWasmPlugin.js +27 -1
  625. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  626. package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
  627. package/lib/web/JsonpTemplatePlugin.js +2 -1
  628. package/lib/webpack.js +78 -1
  629. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  630. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
  631. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  632. package/module.d.ts +21 -0
  633. package/package.json +79 -77
  634. package/schemas/WebpackOptions.check.js +1 -1
  635. package/schemas/WebpackOptions.json +1117 -79
  636. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  637. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  638. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  639. package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
  640. package/schemas/plugins/HtmlParserOptions.check.js +6 -0
  641. package/schemas/plugins/HtmlParserOptions.json +3 -0
  642. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  643. package/schemas/plugins/ProgressPlugin.json +38 -0
  644. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  645. package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
  646. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  647. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  648. package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
  649. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
  650. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  651. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  652. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  653. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  654. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  655. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  656. package/types.d.ts +8608 -1159
  657. package/lib/CaseSensitiveModulesWarning.js +0 -72
  658. package/lib/GraphHelpers.js +0 -46
  659. package/lib/ModuleParseError.js +0 -125
  660. package/lib/NoModeWarning.js +0 -23
  661. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
  662. package/lib/css/walkCssTokens.js +0 -1843
  663. package/lib/util/AppendOnlyStackedSet.js +0 -78
  664. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  665. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  666. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  667. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
@@ -20,11 +20,13 @@ const { compareSelect, compareStringsNumeric } = require("../util/comparators");
20
20
  /** @typedef {import("../util/concatenate").UsedNames} UsedNames */
21
21
 
22
22
  /**
23
+ * Defines the comparator type used by this module.
23
24
  * @template T
24
25
  * @typedef {import("../util/comparators").Comparator<T>} Comparator
25
26
  */
26
27
 
27
28
  /**
29
+ * Checks whether it can mangle.
28
30
  * @param {ExportsInfo} exportsInfo exports info
29
31
  * @returns {boolean} mangle is possible
30
32
  */
@@ -45,6 +47,7 @@ const canMangle = (exportsInfo) => {
45
47
  /** @type {Comparator<ExportInfo>} */
46
48
  const comparator = compareSelect((e) => e.name, compareStringsNumeric);
47
49
  /**
50
+ * Mangle exports info.
48
51
  * @param {boolean} deterministic use deterministic names
49
52
  * @param {ExportsInfo} exportsInfo exports info
50
53
  * @param {boolean | undefined} isNamespace is namespace object
@@ -158,6 +161,7 @@ const PLUGIN_NAME = "MangleExportsPlugin";
158
161
 
159
162
  class MangleExportsPlugin {
160
163
  /**
164
+ * Creates an instance of MangleExportsPlugin.
161
165
  * @param {boolean} deterministic use deterministic names
162
166
  */
163
167
  constructor(deterministic) {
@@ -166,7 +170,7 @@ class MangleExportsPlugin {
166
170
  }
167
171
 
168
172
  /**
169
- * Apply the plugin
173
+ * Applies the plugin by registering its hooks on the compiler.
170
174
  * @param {Compiler} compiler the compiler instance
171
175
  * @returns {void}
172
176
  */
@@ -16,6 +16,7 @@ const PLUGIN_NAME = "MergeDuplicateChunksPlugin";
16
16
 
17
17
  class MergeDuplicateChunksPlugin {
18
18
  /**
19
+ * Creates an instance of MergeDuplicateChunksPlugin.
19
20
  * @param {MergeDuplicateChunksPluginOptions=} options options object
20
21
  */
21
22
  constructor(options = { stage: STAGE_BASIC }) {
@@ -24,6 +25,7 @@ class MergeDuplicateChunksPlugin {
24
25
  }
25
26
 
26
27
  /**
28
+ * Applies the plugin by registering its hooks on the compiler.
27
29
  * @param {Compiler} compiler the compiler
28
30
  * @returns {void}
29
31
  */
@@ -15,6 +15,7 @@ const PLUGIN_NAME = "MinChunkSizePlugin";
15
15
 
16
16
  class MinChunkSizePlugin {
17
17
  /**
18
+ * Creates an instance of MinChunkSizePlugin.
18
19
  * @param {MinChunkSizePluginOptions} options options object
19
20
  */
20
21
  constructor(options) {
@@ -23,7 +24,7 @@ class MinChunkSizePlugin {
23
24
  }
24
25
 
25
26
  /**
26
- * Apply the plugin
27
+ * Applies the plugin by registering its hooks on the compiler.
27
28
  * @param {Compiler} compiler the compiler instance
28
29
  * @returns {void}
29
30
  */
@@ -5,11 +5,12 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const SizeFormatHelpers = require("../SizeFormatHelpers");
9
- const WebpackError = require("../WebpackError");
8
+ const WebpackError = require("../errors/WebpackError");
9
+ const formatSize = require("../util/formatSize");
10
10
 
11
11
  class MinMaxSizeWarning extends WebpackError {
12
12
  /**
13
+ * Creates an instance of MinMaxSizeWarning.
13
14
  * @param {string[] | undefined} keys keys
14
15
  * @param {number} minSize minimum size
15
16
  * @param {number} maxSize maximum size
@@ -25,8 +26,8 @@ class MinMaxSizeWarning extends WebpackError {
25
26
  super(
26
27
  "SplitChunksPlugin\n" +
27
28
  `${keysMessage}\n` +
28
- `Configured minSize (${SizeFormatHelpers.formatSize(minSize)}) is ` +
29
- `bigger than maxSize (${SizeFormatHelpers.formatSize(maxSize)}).\n` +
29
+ `Configured minSize (${formatSize(minSize)}) is ` +
30
+ `bigger than maxSize (${formatSize(maxSize)}).\n` +
30
31
  "This seem to be a invalid optimization.splitChunks configuration."
31
32
  );
32
33
  }
@@ -7,10 +7,14 @@
7
7
 
8
8
  const asyncLib = require("neo-async");
9
9
  const ChunkGraph = require("../ChunkGraph");
10
+ const Dependency = require("../Dependency");
11
+ const Module = require("../Module");
10
12
  const ModuleGraph = require("../ModuleGraph");
11
13
  const { JAVASCRIPT_TYPE } = require("../ModuleSourceTypeConstants");
12
14
  const { STAGE_DEFAULT } = require("../OptimizationStages");
15
+ const CommonJsSelfReferenceDependency = require("../dependencies/CommonJsSelfReferenceDependency");
13
16
  const HarmonyImportDependency = require("../dependencies/HarmonyImportDependency");
17
+ const { ImportPhaseUtils } = require("../dependencies/ImportPhase");
14
18
  const { compareModulesByIdentifier } = require("../util/comparators");
15
19
  const {
16
20
  filterRuntime,
@@ -21,16 +25,38 @@ const {
21
25
  } = require("../util/runtime");
22
26
  const ConcatenatedModule = require("./ConcatenatedModule");
23
27
 
28
+ /** @typedef {import("../Chunk")} Chunk */
24
29
  /** @typedef {import("../Compilation")} Compilation */
25
30
  /** @typedef {import("../Compiler")} Compiler */
26
- /** @typedef {import("../Module")} Module */
27
31
  /** @typedef {import("../Module").BuildInfo} BuildInfo */
32
+ /** @typedef {import("../Module").BuildMeta} BuildMeta */
28
33
  /** @typedef {import("../RequestShortener")} RequestShortener */
29
34
  /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
30
35
 
31
36
  /** @typedef {Module | ((requestShortener: RequestShortener) => string)} Problem */
32
37
 
33
38
  /**
39
+ * Merged runtime of all chunks a module is in, memoized for the whole pass.
40
+ * Safe: the chunk graph is not mutated while configurations are built.
41
+ * @param {ChunkGraph} chunkGraph the chunk graph
42
+ * @param {Map<Module, RuntimeSpec>} cache memoization cache
43
+ * @param {Module} module the module
44
+ * @returns {RuntimeSpec} the merged runtime
45
+ */
46
+ const getMergedModuleRuntime = (chunkGraph, cache, module) => {
47
+ const cached = cache.get(module);
48
+ if (cached !== undefined || cache.has(module)) return cached;
49
+ /** @type {RuntimeSpec} */
50
+ let runtime;
51
+ for (const r of chunkGraph.getModuleRuntimes(module)) {
52
+ runtime = mergeRuntimeOwned(runtime, r);
53
+ }
54
+ cache.set(module, runtime);
55
+ return runtime;
56
+ };
57
+
58
+ /**
59
+ * Defines the statistics type used by this module.
34
60
  * @typedef {object} Statistics
35
61
  * @property {number} cached
36
62
  * @property {number} alreadyInConfig
@@ -45,6 +71,7 @@ const ConcatenatedModule = require("./ConcatenatedModule");
45
71
  */
46
72
 
47
73
  /**
74
+ * Format bailout reason.
48
75
  * @param {string} msg message
49
76
  * @returns {string} formatted message
50
77
  */
@@ -54,7 +81,7 @@ const PLUGIN_NAME = "ModuleConcatenationPlugin";
54
81
 
55
82
  class ModuleConcatenationPlugin {
56
83
  /**
57
- * Apply the plugin
84
+ * Applies the plugin by registering its hooks on the compiler.
58
85
  * @param {Compiler} compiler the compiler instance
59
86
  * @returns {void}
60
87
  */
@@ -71,6 +98,7 @@ class ModuleConcatenationPlugin {
71
98
  const bailoutReasonMap = new Map();
72
99
 
73
100
  /**
101
+ * Sets bailout reason.
74
102
  * @param {Module} module the module
75
103
  * @param {string | ((requestShortener: RequestShortener) => string)} reason the reason
76
104
  */
@@ -86,6 +114,7 @@ class ModuleConcatenationPlugin {
86
114
  };
87
115
 
88
116
  /**
117
+ * Sets inner bailout reason.
89
118
  * @param {Module} module the module
90
119
  * @param {string | ((requestShortener: RequestShortener) => string)} reason the reason
91
120
  */
@@ -94,6 +123,7 @@ class ModuleConcatenationPlugin {
94
123
  };
95
124
 
96
125
  /**
126
+ * Gets inner bailout reason.
97
127
  * @param {Module} module the module
98
128
  * @param {RequestShortener} requestShortener the request shortener
99
129
  * @returns {string | ((requestShortener: RequestShortener) => string) | undefined} the reason
@@ -105,6 +135,7 @@ class ModuleConcatenationPlugin {
105
135
  };
106
136
 
107
137
  /**
138
+ * Format bailout warning.
108
139
  * @param {Module} module the module
109
140
  * @param {Problem} problem the problem
110
141
  * @returns {(requestShortener: RequestShortener) => string} the reason
@@ -149,9 +180,16 @@ class ModuleConcatenationPlugin {
149
180
  const relevantModules = [];
150
181
  /** @type {Set<Module>} */
151
182
  const possibleInners = new Set();
183
+ const concatenateModules =
184
+ compilation.options.optimization.concatenateModules;
152
185
  const context = {
153
186
  chunkGraph,
154
- moduleGraph
187
+ moduleGraph,
188
+ // commonjs concatenation defaults to on; { commonjs: false } opts out
189
+ concatenateCommonJsModules:
190
+ typeof concatenateModules === "object"
191
+ ? concatenateModules.commonjs !== false
192
+ : concatenateModules === true
155
193
  };
156
194
  const deferEnabled = compilation.options.experiments.deferImport;
157
195
  logger.time("select relevant modules");
@@ -170,7 +208,6 @@ class ModuleConcatenationPlugin {
170
208
  setBailoutReason(module, "Module is async");
171
209
  continue;
172
210
  }
173
-
174
211
  // Must be in strict mode
175
212
  if (!(/** @type {BuildInfo} */ (module.buildInfo).strict)) {
176
213
  setBailoutReason(module, "Module is not in strict mode");
@@ -222,6 +259,22 @@ class ModuleConcatenationPlugin {
222
259
  canBeRoot = false;
223
260
  }
224
261
 
262
+ // TODO: ConcatenatedModule.getSourceTypes only javascript now
263
+ const basicTypes = Module.getSourceBasicTypes(module);
264
+ if (basicTypes.size !== 1 || !basicTypes.has(JAVASCRIPT_TYPE)) {
265
+ canBeRoot = false;
266
+ }
267
+
268
+ // A concatenated CommonJS module relies on the root's ESM export
269
+ // rendering, so it can only be an inner module
270
+ if (
271
+ module.type.startsWith("javascript/") &&
272
+ /** @type {BuildMeta} */
273
+ (module.buildMeta).exportsType !== "namespace"
274
+ ) {
275
+ canBeRoot = false;
276
+ }
277
+
225
278
  // Module must not be an entry point
226
279
  if (chunkGraph.isEntryModule(module)) {
227
280
  setInnerBailoutReason(module, "Module is an entry point");
@@ -273,17 +326,20 @@ class ModuleConcatenationPlugin {
273
326
  const concatConfigurations = [];
274
327
  /** @type {Set<Module>} */
275
328
  const usedAsInner = new Set();
329
+ // module -> merged runtime of its chunks, shared across all roots
330
+ /** @type {Map<Module, RuntimeSpec>} */
331
+ const moduleRuntimeCache = new Map();
276
332
  for (const currentRoot of relevantModules) {
277
333
  // when used by another configuration as inner:
278
334
  // the other configuration is better and we can skip this one
279
335
  // TODO reconsider that when it's only used in a different runtime
280
336
  if (usedAsInner.has(currentRoot)) continue;
281
337
 
282
- /** @type {RuntimeSpec} */
283
- let chunkRuntime;
284
- for (const r of chunkGraph.getModuleRuntimes(currentRoot)) {
285
- chunkRuntime = mergeRuntimeOwned(chunkRuntime, r);
286
- }
338
+ const chunkRuntime = getMergedModuleRuntime(
339
+ chunkGraph,
340
+ moduleRuntimeCache,
341
+ currentRoot
342
+ );
287
343
  const exportsInfo = moduleGraph.getExportsInfo(currentRoot);
288
344
  const filteredRuntime = filterRuntime(chunkRuntime, (r) =>
289
345
  exportsInfo.isModuleUsed(r)
@@ -295,10 +351,12 @@ class ModuleConcatenationPlugin {
295
351
  ? undefined
296
352
  : filteredRuntime;
297
353
 
298
- // create a configuration with the root
354
+ // create a configuration with the root; cache the root's chunks once
355
+ // so every candidate check reuses them instead of re-materializing
299
356
  const currentConfiguration = new ConcatConfiguration(
300
357
  currentRoot,
301
- activeRuntime
358
+ activeRuntime,
359
+ [...chunkGraph.getModuleChunksIterable(currentRoot)]
302
360
  );
303
361
 
304
362
  // cache failures to add modules
@@ -330,6 +388,7 @@ class ModuleConcatenationPlugin {
330
388
  possibleInners,
331
389
  impCandidates,
332
390
  failureCache,
391
+ moduleRuntimeCache,
333
392
  chunkGraph,
334
393
  true,
335
394
  stats
@@ -375,10 +434,10 @@ class ModuleConcatenationPlugin {
375
434
  logger.debug(
376
435
  `${statsCandidates} candidates were considered for adding (${stats.cached} cached failure, ${stats.alreadyInConfig} already in config, ${stats.invalidModule} invalid module, ${stats.incorrectChunks} incorrect chunks, ${stats.incorrectDependency} incorrect dependency, ${stats.incorrectChunksOfImporter} incorrect chunks of importer, ${stats.incorrectModuleDependency} incorrect module dependency, ${stats.incorrectRuntimeCondition} incorrect runtime condition, ${stats.importerFailed} importer failed, ${stats.added} added)`
377
436
  );
378
- // HACK: Sort configurations by length and start with the longest one
379
- // to get the biggest groups possible. Used modules are marked with usedModules
380
- // TODO: Allow to reuse existing configuration while trying to add dependencies.
381
- // This would improve performance. O(n^2) -> O(n)
437
+ // Create the largest configurations first: if a root also ended up inside
438
+ // a bigger configuration, the bigger one wins (smaller skipped below).
439
+ // Configurations can't be reused across roots: a module shared by several
440
+ // chunks is concatenated into each consumer (module duplication).
382
441
  logger.time("sort concat configurations");
383
442
  concatConfigurations.sort((a, b) => b.modules.size - a.modules.size);
384
443
  logger.timeEnd("sort concat configurations");
@@ -391,8 +450,8 @@ class ModuleConcatenationPlugin {
391
450
  (concatConfiguration, callback) => {
392
451
  const rootModule = concatConfiguration.rootModule;
393
452
 
394
- // Avoid overlapping configurations
395
- // TODO: remove this when todo above is fixed
453
+ // Root already concatenated into a larger configuration: skip.
454
+ // (Inner modules may still be shared, e.g. duplicated across entries.)
396
455
  if (usedModules.has(rootModule)) return callback();
397
456
  const modules = concatConfiguration.getModules();
398
457
  for (const m of modules) {
@@ -454,7 +513,8 @@ class ModuleConcatenationPlugin {
454
513
  (c) =>
455
514
  c.originModule === m &&
456
515
  !(
457
- c.dependency instanceof HarmonyImportDependency &&
516
+ c.dependency &&
517
+ Dependency.canConcatenate(c.dependency) &&
458
518
  modules.has(c.module)
459
519
  )
460
520
  );
@@ -497,7 +557,8 @@ class ModuleConcatenationPlugin {
497
557
  const otherModule =
498
558
  c.module === rootModule ? c.originModule : c.module;
499
559
  const innerConnection =
500
- c.dependency instanceof HarmonyImportDependency &&
560
+ c.dependency &&
561
+ Dependency.canConcatenate(c.dependency) &&
501
562
  modules.has(/** @type {Module} */ (otherModule));
502
563
  return !innerConnection;
503
564
  }
@@ -521,6 +582,27 @@ class ModuleConcatenationPlugin {
521
582
  }
522
583
 
523
584
  /**
585
+ * Checks whether the module `import defer`s a module already in the config.
586
+ * @param {ModuleGraph} moduleGraph the module graph
587
+ * @param {Module} module the candidate module
588
+ * @param {ConcatConfiguration} config the concat configuration
589
+ * @returns {boolean} true when a deferred import targets a module in the config
590
+ */
591
+ _defersModuleIn(moduleGraph, module, config) {
592
+ for (const dep of module.dependencies) {
593
+ if (
594
+ dep instanceof HarmonyImportDependency &&
595
+ ImportPhaseUtils.isDefer(dep.phase)
596
+ ) {
597
+ const target = moduleGraph.getModule(dep);
598
+ if (target && config.has(target)) return true;
599
+ }
600
+ }
601
+ return false;
602
+ }
603
+
604
+ /**
605
+ * Returns the imported modules.
524
606
  * @param {Compilation} compilation the compilation
525
607
  * @param {Module} module the module to be added
526
608
  * @param {RuntimeSpec} runtime the runtime scope
@@ -531,8 +613,8 @@ class ModuleConcatenationPlugin {
531
613
  /** @type {Set<Module>} */
532
614
  const set = new Set();
533
615
  for (const dep of module.dependencies) {
534
- // Get reference info only for harmony Dependencies
535
- if (!(dep instanceof HarmonyImportDependency)) continue;
616
+ // Get reference info only for dependencies that support concatenation
617
+ if (!Dependency.canConcatenate(dep)) continue;
536
618
 
537
619
  const connection = moduleGraph.getConnection(dep);
538
620
  // Reference is valid and has a module
@@ -562,6 +644,7 @@ class ModuleConcatenationPlugin {
562
644
  }
563
645
 
564
646
  /**
647
+ * Returns the problematic module.
565
648
  * @param {Compilation} compilation webpack compilation
566
649
  * @param {ConcatConfiguration} config concat configuration (will be modified when added)
567
650
  * @param {Module} module the module to be added
@@ -570,6 +653,7 @@ class ModuleConcatenationPlugin {
570
653
  * @param {Set<Module>} possibleModules modules that are candidates
571
654
  * @param {Set<Module>} candidates list of potential candidates (will be added to)
572
655
  * @param {Map<Module, Problem>} failureCache cache for problematic modules to be more performant
656
+ * @param {Map<Module, RuntimeSpec>} moduleRuntimeCache memoized merged runtime per module, shared across roots
573
657
  * @param {ChunkGraph} chunkGraph the chunk graph
574
658
  * @param {boolean} avoidMutateOnFailure avoid mutating the config when adding fails
575
659
  * @param {Statistics} statistics gathering metrics
@@ -584,6 +668,7 @@ class ModuleConcatenationPlugin {
584
668
  possibleModules,
585
669
  candidates,
586
670
  failureCache,
671
+ moduleRuntimeCache,
587
672
  chunkGraph,
588
673
  avoidMutateOnFailure,
589
674
  statistics
@@ -607,12 +692,33 @@ class ModuleConcatenationPlugin {
607
692
  return module;
608
693
  }
609
694
 
695
+ // A deferred import must stay a concatenation boundary: concatenating a
696
+ // module with a module it `import defer`s (a cycle) would erase the
697
+ // deferred namespace's lazy-evaluation and exotic-object semantics.
698
+ if (
699
+ compilation.options.experiments.deferImport &&
700
+ this._defersModuleIn(compilation.moduleGraph, module, config)
701
+ ) {
702
+ /**
703
+ * @param {RequestShortener} requestShortener request shortener
704
+ * @returns {string} problem description
705
+ */
706
+ const problem = (requestShortener) =>
707
+ `Module ${module.readableIdentifier(
708
+ requestShortener
709
+ )} imports a module in this configuration via import defer`;
710
+ statistics.incorrectDependency++;
711
+ failureCache.set(module, problem); // cache failures for performance
712
+ return problem;
713
+ }
714
+
610
715
  // Module must be in the correct chunks
611
- const missingChunks = [
612
- ...chunkGraph.getModuleChunksIterable(config.rootModule)
613
- ].filter((chunk) => !chunkGraph.isModuleInChunk(module, chunk));
716
+ const missingChunks = config.rootChunks.filter(
717
+ (chunk) => !chunkGraph.isModuleInChunk(module, chunk)
718
+ );
614
719
  if (missingChunks.length > 0) {
615
720
  /**
721
+ * Returns problem description.
616
722
  * @param {RequestShortener} requestShortener request shortener
617
723
  * @returns {string} problem description
618
724
  */
@@ -656,6 +762,7 @@ class ModuleConcatenationPlugin {
656
762
  );
657
763
  if (activeNonModulesConnections.length > 0) {
658
764
  /**
765
+ * Returns problem description.
659
766
  * @param {RequestShortener} requestShortener request shortener
660
767
  * @returns {string} problem description
661
768
  */
@@ -689,11 +796,11 @@ class ModuleConcatenationPlugin {
689
796
  if (chunkGraph.getNumberOfModuleChunks(originModule) === 0) continue;
690
797
 
691
798
  // We don't care for connections from other runtimes
692
- /** @type {RuntimeSpec} */
693
- let originRuntime;
694
- for (const r of chunkGraph.getModuleRuntimes(originModule)) {
695
- originRuntime = mergeRuntimeOwned(originRuntime, r);
696
- }
799
+ const originRuntime = getMergedModuleRuntime(
800
+ chunkGraph,
801
+ moduleRuntimeCache,
802
+ originModule
803
+ );
697
804
 
698
805
  if (!intersectRuntime(runtime, originRuntime)) continue;
699
806
 
@@ -711,9 +818,7 @@ class ModuleConcatenationPlugin {
711
818
 
712
819
  // Module must be in the same chunks like the referencing module
713
820
  const otherChunkModules = incomingModules.filter((originModule) => {
714
- for (const chunk of chunkGraph.getModuleChunksIterable(
715
- config.rootModule
716
- )) {
821
+ for (const chunk of config.rootChunks) {
717
822
  if (!chunkGraph.isModuleInChunk(originModule, chunk)) {
718
823
  return true;
719
824
  }
@@ -722,6 +827,7 @@ class ModuleConcatenationPlugin {
722
827
  });
723
828
  if (otherChunkModules.length > 0) {
724
829
  /**
830
+ * Returns problem description.
725
831
  * @param {RequestShortener} requestShortener request shortener
726
832
  * @returns {string} problem description
727
833
  */
@@ -746,7 +852,13 @@ class ModuleConcatenationPlugin {
746
852
  const selected = connections.filter(
747
853
  (connection) =>
748
854
  !connection.dependency ||
749
- !(connection.dependency instanceof HarmonyImportDependency)
855
+ (!Dependency.canConcatenate(connection.dependency) &&
856
+ // exports self-references of a concatenated CommonJS module
857
+ // are rewritten in place, so they don't block concatenation
858
+ !(
859
+ originModule === module &&
860
+ connection.dependency instanceof CommonJsSelfReferenceDependency
861
+ ))
750
862
  );
751
863
  if (selected.length > 0) {
752
864
  nonHarmonyConnections.set(originModule, connections);
@@ -754,6 +866,7 @@ class ModuleConcatenationPlugin {
754
866
  }
755
867
  if (nonHarmonyConnections.size > 0) {
756
868
  /**
869
+ * Returns problem description.
757
870
  * @param {RequestShortener} requestShortener request shortener
758
871
  * @returns {string} problem description
759
872
  */
@@ -815,6 +928,7 @@ class ModuleConcatenationPlugin {
815
928
  }
816
929
  if (otherRuntimeConnections.length > 0) {
817
930
  /**
931
+ * Returns problem description.
818
932
  * @param {RequestShortener} requestShortener request shortener
819
933
  * @returns {string} problem description
820
934
  */
@@ -860,6 +974,7 @@ class ModuleConcatenationPlugin {
860
974
  possibleModules,
861
975
  candidates,
862
976
  failureCache,
977
+ moduleRuntimeCache,
863
978
  chunkGraph,
864
979
  false,
865
980
  statistics
@@ -885,14 +1000,18 @@ class ModuleConcatenationPlugin {
885
1000
 
886
1001
  class ConcatConfiguration {
887
1002
  /**
1003
+ * Creates an instance of ConcatConfiguration.
888
1004
  * @param {Module} rootModule the root module
889
1005
  * @param {RuntimeSpec} runtime the runtime
1006
+ * @param {Chunk[]} rootChunks the chunks the root module is in
890
1007
  */
891
- constructor(rootModule, runtime) {
1008
+ constructor(rootModule, runtime, rootChunks) {
892
1009
  /** @type {Module} */
893
1010
  this.rootModule = rootModule;
894
1011
  /** @type {RuntimeSpec} */
895
1012
  this.runtime = runtime;
1013
+ /** @type {Chunk[]} the root's chunks, reused for every candidate's chunk check */
1014
+ this.rootChunks = rootChunks;
896
1015
  /** @type {Set<Module>} */
897
1016
  this.modules = new Set();
898
1017
  this.modules.add(rootModule);
@@ -901,6 +1020,7 @@ class ConcatConfiguration {
901
1020
  }
902
1021
 
903
1022
  /**
1023
+ * Processes the provided module.
904
1024
  * @param {Module} module the module
905
1025
  */
906
1026
  add(module) {
@@ -908,6 +1028,7 @@ class ConcatConfiguration {
908
1028
  }
909
1029
 
910
1030
  /**
1031
+ * Returns true, when the module is in the module set.
911
1032
  * @param {Module} module the module
912
1033
  * @returns {boolean} true, when the module is in the module set
913
1034
  */
@@ -920,6 +1041,7 @@ class ConcatConfiguration {
920
1041
  }
921
1042
 
922
1043
  /**
1044
+ * Adds the provided module to the concat configuration.
923
1045
  * @param {Module} module the module
924
1046
  * @param {Problem} problem the problem
925
1047
  */
@@ -928,6 +1050,7 @@ class ConcatConfiguration {
928
1050
  }
929
1051
 
930
1052
  /**
1053
+ * Gets warnings sorted.
931
1054
  * @returns {Warnings} warnings
932
1055
  */
933
1056
  getWarningsSorted() {
@@ -943,6 +1066,7 @@ class ConcatConfiguration {
943
1066
  }
944
1067
 
945
1068
  /**
1069
+ * Returns modules as set.
946
1070
  * @returns {Set<Module>} modules as set
947
1071
  */
948
1072
  getModules() {
@@ -954,6 +1078,7 @@ class ConcatConfiguration {
954
1078
  }
955
1079
 
956
1080
  /**
1081
+ * Processes the provided snapshot.
957
1082
  * @param {number} snapshot snapshot
958
1083
  */
959
1084
  rollback(snapshot) {