@depup/webpack 5.106.1-depup.0 → 5.109.2-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 (669) hide show
  1. package/README.md +9 -11
  2. package/bin/webpack.js +12 -0
  3. package/changes.json +16 -24
  4. package/hot/dev-server.js +2 -0
  5. package/lib/APIPlugin.js +60 -35
  6. package/lib/AsyncDependenciesBlock.js +3 -0
  7. package/lib/AutomaticPrefetchPlugin.js +6 -1
  8. package/lib/BannerPlugin.js +13 -5
  9. package/lib/Cache.js +27 -5
  10. package/lib/CacheFacade.js +41 -0
  11. package/lib/Chunk.js +71 -25
  12. package/lib/ChunkGraph.js +153 -19
  13. package/lib/ChunkGroup.js +115 -28
  14. package/lib/ChunkTemplate.js +9 -0
  15. package/lib/CircularModulesPlugin.js +190 -0
  16. package/lib/CleanPlugin.js +27 -28
  17. package/lib/CodeGenerationResults.js +19 -0
  18. package/lib/CompatibilityPlugin.js +85 -37
  19. package/lib/Compilation.js +656 -112
  20. package/lib/Compiler.js +109 -35
  21. package/lib/ConcatenationScope.js +34 -4
  22. package/lib/ConditionalInitFragment.js +6 -0
  23. package/lib/ConstPlugin.js +15 -12
  24. package/lib/ContextExclusionPlugin.js +3 -1
  25. package/lib/ContextModule.js +345 -55
  26. package/lib/ContextModuleFactory.js +193 -51
  27. package/lib/ContextReplacementPlugin.js +8 -1
  28. package/lib/DefinePlugin.js +537 -139
  29. package/lib/DependenciesBlock.js +6 -1
  30. package/lib/Dependency.js +159 -11
  31. package/lib/DependencyTemplate.js +7 -1
  32. package/lib/DependencyTemplates.js +4 -0
  33. package/lib/DotenvPlugin.js +3 -0
  34. package/lib/DynamicEntryPlugin.js +3 -1
  35. package/lib/EntryOptionPlugin.js +42 -2
  36. package/lib/EntryPlugin.js +4 -1
  37. package/lib/Entrypoint.js +5 -1
  38. package/lib/EnvironmentPlugin.js +3 -2
  39. package/lib/ErrorHelpers.js +7 -0
  40. package/lib/EvalDevToolModulePlugin.js +3 -1
  41. package/lib/EvalSourceMapDevToolPlugin.js +11 -11
  42. package/lib/ExportsInfo.js +421 -113
  43. package/lib/ExportsInfoApiPlugin.js +4 -3
  44. package/lib/ExternalModule.js +381 -80
  45. package/lib/ExternalModuleFactoryPlugin.js +75 -3
  46. package/lib/ExternalsPlugin.js +3 -1
  47. package/lib/FileSystemInfo.js +701 -175
  48. package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
  49. package/lib/FlagDependencyExportsPlugin.js +82 -9
  50. package/lib/FlagDependencyUsagePlugin.js +115 -8
  51. package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
  52. package/lib/Generator.js +24 -3
  53. package/lib/HotModuleReplacementPlugin.js +110 -44
  54. package/lib/IgnorePlugin.js +5 -2
  55. package/lib/IgnoreWarningsPlugin.js +2 -1
  56. package/lib/InitFragment.js +33 -30
  57. package/lib/JavascriptMetaInfoPlugin.js +9 -6
  58. package/lib/LazyBarrel.js +389 -0
  59. package/lib/LibraryTemplatePlugin.js +2 -1
  60. package/lib/LoaderOptionsPlugin.js +3 -1
  61. package/lib/LoaderTargetPlugin.js +3 -1
  62. package/lib/MainTemplate.js +15 -0
  63. package/lib/ManifestPlugin.js +9 -2
  64. package/lib/Module.js +121 -57
  65. package/lib/ModuleFactory.js +6 -1
  66. package/lib/ModuleFilenameHelpers.js +18 -4
  67. package/lib/ModuleGraph.js +69 -2
  68. package/lib/ModuleGraphConnection.js +9 -0
  69. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  70. package/lib/ModuleNotFoundError.js +3 -83
  71. package/lib/ModuleProfile.js +27 -1
  72. package/lib/ModuleSourceTypeConstants.js +52 -19
  73. package/lib/ModuleTemplate.js +10 -0
  74. package/lib/ModuleTypeConstants.js +20 -4
  75. package/lib/MultiCompiler.js +59 -4
  76. package/lib/MultiStats.js +9 -0
  77. package/lib/MultiWatching.js +6 -0
  78. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  79. package/lib/NodeStuffPlugin.js +78 -46
  80. package/lib/NormalModule.js +519 -206
  81. package/lib/NormalModuleFactory.js +156 -31
  82. package/lib/NormalModuleReplacementPlugin.js +3 -1
  83. package/lib/NullFactory.js +1 -0
  84. package/lib/OptionsApply.js +1 -0
  85. package/lib/Parser.js +3 -1
  86. package/lib/PlatformPlugin.js +2 -1
  87. package/lib/PrefetchPlugin.js +4 -1
  88. package/lib/ProgressPlugin.js +351 -161
  89. package/lib/ProvidePlugin.js +6 -3
  90. package/lib/RawModule.js +32 -16
  91. package/lib/RecordIdsPlugin.js +9 -0
  92. package/lib/RequestShortener.js +8 -0
  93. package/lib/ResolverFactory.js +5 -0
  94. package/lib/RuntimeGlobals.js +58 -5
  95. package/lib/RuntimeModule.js +22 -7
  96. package/lib/RuntimePlugin.js +123 -118
  97. package/lib/RuntimeTemplate.js +616 -37
  98. package/lib/SelfModuleFactory.js +3 -0
  99. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  100. package/lib/SourceMapDevToolPlugin.js +341 -63
  101. package/lib/Stats.js +6 -0
  102. package/lib/Template.js +52 -6
  103. package/lib/TemplatedPathPlugin.js +505 -138
  104. package/lib/UseStrictPlugin.js +3 -2
  105. package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
  106. package/lib/WarnDeprecatedOptionPlugin.js +6 -2
  107. package/lib/WarnNoModeSetPlugin.js +18 -2
  108. package/lib/WatchIgnorePlugin.js +5 -1
  109. package/lib/Watching.js +25 -3
  110. package/lib/WebpackError.js +3 -74
  111. package/lib/WebpackIsIncludedPlugin.js +4 -2
  112. package/lib/WebpackOptionsApply.js +88 -25
  113. package/lib/WebpackOptionsDefaulter.js +1 -0
  114. package/lib/asset/AssetBytesGenerator.js +28 -10
  115. package/lib/asset/AssetBytesParser.js +1 -0
  116. package/lib/asset/AssetGenerator.js +199 -60
  117. package/lib/asset/AssetModule.js +47 -0
  118. package/lib/asset/AssetModulesPlugin.js +115 -24
  119. package/lib/asset/AssetParser.js +4 -2
  120. package/lib/asset/AssetSourceGenerator.js +26 -8
  121. package/lib/asset/AssetSourceParser.js +1 -0
  122. package/lib/asset/RawDataUrlModule.js +23 -13
  123. package/lib/asset/WebManifestGenerator.js +164 -0
  124. package/lib/asset/WebManifestParser.js +130 -0
  125. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  126. package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
  127. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  128. package/lib/async-modules/isGeneratorLowered.js +26 -0
  129. package/lib/buildChunkGraph.js +107 -15
  130. package/lib/bun/BunTargetPlugin.js +42 -0
  131. package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
  132. package/lib/cache/AddManagedPathsPlugin.js +5 -1
  133. package/lib/cache/IdleFileCachePlugin.js +6 -1
  134. package/lib/cache/MemoryCachePlugin.js +1 -1
  135. package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
  136. package/lib/cache/PackFileCacheStrategy.js +302 -12
  137. package/lib/cache/ResolverCachePlugin.js +12 -1
  138. package/lib/cache/getLazyHashedEtag.js +13 -2
  139. package/lib/cache/mergeEtags.js +4 -0
  140. package/lib/cli.js +142 -20
  141. package/lib/config/browserslistTargetHandler.js +141 -0
  142. package/lib/config/defaults.js +612 -43
  143. package/lib/config/defineConfig.js +31 -0
  144. package/lib/config/normalization.js +46 -1
  145. package/lib/config/target.js +200 -2
  146. package/lib/container/ContainerEntryDependency.js +2 -0
  147. package/lib/container/ContainerEntryModule.js +27 -14
  148. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  149. package/lib/container/ContainerExposedDependency.js +6 -2
  150. package/lib/container/ContainerPlugin.js +2 -1
  151. package/lib/container/ContainerReferencePlugin.js +3 -2
  152. package/lib/container/FallbackDependency.js +9 -7
  153. package/lib/container/FallbackItemDependency.js +1 -0
  154. package/lib/container/FallbackModule.js +22 -9
  155. package/lib/container/FallbackModuleFactory.js +1 -0
  156. package/lib/container/HoistContainerReferencesPlugin.js +47 -55
  157. package/lib/container/ModuleFederationPlugin.js +21 -29
  158. package/lib/container/RemoteModule.js +33 -10
  159. package/lib/container/RemoteRuntimeModule.js +15 -12
  160. package/lib/container/RemoteToExternalDependency.js +1 -0
  161. package/lib/container/options.js +7 -0
  162. package/lib/css/CssGenerator.js +540 -272
  163. package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
  164. package/lib/css/CssLoadingRuntimeModule.js +173 -81
  165. package/lib/{CssModule.js → css/CssModule.js} +72 -37
  166. package/lib/css/CssModulesPlugin.js +371 -208
  167. package/lib/css/CssParser.js +3538 -1963
  168. package/lib/css/syntax.js +4155 -0
  169. package/lib/debug/ProfilingPlugin.js +33 -2
  170. package/lib/deno/DenoTargetPlugin.js +41 -0
  171. package/lib/dependencies/AMDDefineDependency.js +29 -17
  172. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
  173. package/lib/dependencies/AMDPlugin.js +6 -3
  174. package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
  175. package/lib/dependencies/AMDRequireContextDependency.js +10 -11
  176. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  177. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
  178. package/lib/dependencies/AMDRequireDependency.js +28 -20
  179. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  180. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  181. package/lib/dependencies/CachedConstDependency.js +9 -1
  182. package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
  183. package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
  184. package/lib/dependencies/CommonJsExportsDependency.js +74 -20
  185. package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
  186. package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
  187. package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
  188. package/lib/dependencies/CommonJsPlugin.js +7 -4
  189. package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
  190. package/lib/dependencies/CommonJsRequireDependency.js +135 -13
  191. package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
  192. package/lib/dependencies/ConstDependency.js +22 -12
  193. package/lib/dependencies/ContextDependency.js +13 -2
  194. package/lib/dependencies/ContextDependencyHelpers.js +7 -4
  195. package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
  196. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  197. package/lib/dependencies/ContextElementDependency.js +27 -14
  198. package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
  199. package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
  200. package/lib/dependencies/CriticalDependencyWarning.js +3 -1
  201. package/lib/dependencies/CssIcssExportDependency.js +681 -367
  202. package/lib/dependencies/CssIcssImportDependency.js +62 -17
  203. package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
  204. package/lib/dependencies/CssImportDependency.js +37 -1
  205. package/lib/dependencies/CssUrlDependency.js +87 -14
  206. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  207. package/lib/dependencies/DllEntryDependency.js +12 -13
  208. package/lib/dependencies/DynamicExports.js +5 -0
  209. package/lib/dependencies/EntryDependency.js +1 -0
  210. package/lib/dependencies/ExportBindingInitFragment.js +164 -0
  211. package/lib/dependencies/ExportsInfoDependency.js +18 -12
  212. package/lib/dependencies/ExternalModuleDependency.js +13 -5
  213. package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
  214. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
  215. package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
  216. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
  217. package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
  218. package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
  219. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
  220. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
  221. package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
  222. package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
  223. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
  224. package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
  225. package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
  226. package/lib/dependencies/HarmonyExports.js +6 -1
  227. package/lib/dependencies/HarmonyImportDependency.js +60 -4
  228. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
  229. package/lib/dependencies/HarmonyImportGuard.js +427 -0
  230. package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
  231. package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
  232. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
  233. package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
  234. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
  235. package/lib/dependencies/HtmlEntryDependency.js +1295 -0
  236. package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
  237. package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
  238. package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
  239. package/lib/dependencies/HtmlSourceDependency.js +172 -0
  240. package/lib/dependencies/ImportContextDependency.js +9 -9
  241. package/lib/dependencies/ImportDependency.js +92 -3
  242. package/lib/dependencies/ImportEagerDependency.js +2 -0
  243. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  244. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
  245. package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
  246. package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
  247. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
  248. package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
  249. package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
  250. package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
  251. package/lib/dependencies/ImportMetaPlugin.js +595 -209
  252. package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
  253. package/lib/dependencies/ImportParserPlugin.js +114 -27
  254. package/lib/dependencies/ImportPhase.js +17 -11
  255. package/lib/dependencies/ImportPlugin.js +2 -1
  256. package/lib/dependencies/ImportWeakDependency.js +3 -0
  257. package/lib/dependencies/JsonExportsDependency.js +15 -10
  258. package/lib/dependencies/LoaderDependency.js +2 -0
  259. package/lib/dependencies/LoaderImportDependency.js +3 -0
  260. package/lib/dependencies/LoaderPlugin.js +9 -2
  261. package/lib/dependencies/LocalModule.js +15 -12
  262. package/lib/dependencies/LocalModuleDependency.js +15 -13
  263. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  264. package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
  265. package/lib/dependencies/ModuleDependency.js +14 -0
  266. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  267. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  268. package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
  269. package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
  270. package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
  271. package/lib/dependencies/NullDependency.js +2 -0
  272. package/lib/dependencies/PrefetchDependency.js +1 -0
  273. package/lib/dependencies/ProvidedDependency.js +36 -27
  274. package/lib/dependencies/PureExpressionDependency.js +14 -10
  275. package/lib/dependencies/RequireContextDependency.js +1 -0
  276. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
  277. package/lib/dependencies/RequireContextPlugin.js +2 -1
  278. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  279. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
  280. package/lib/dependencies/RequireEnsureDependency.js +16 -13
  281. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  282. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  283. package/lib/dependencies/RequireHeaderDependency.js +7 -4
  284. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  285. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
  286. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  287. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
  288. package/lib/dependencies/RequireResolveContextDependency.js +10 -11
  289. package/lib/dependencies/RequireResolveDependency.js +2 -0
  290. package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
  291. package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
  292. package/lib/dependencies/StaticExportsDependency.js +13 -10
  293. package/lib/dependencies/SystemPlugin.js +9 -6
  294. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  295. package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
  296. package/lib/dependencies/URLContextDependency.js +8 -7
  297. package/lib/dependencies/URLDependency.js +157 -33
  298. package/lib/dependencies/URLPlugin.js +2 -0
  299. package/lib/dependencies/UnsupportedDependency.js +12 -13
  300. package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
  301. package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
  302. package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
  303. package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
  304. package/lib/dependencies/WorkerDependency.js +111 -27
  305. package/lib/dependencies/WorkletDependency.js +278 -0
  306. package/lib/dependencies/getFunctionExpression.js +1 -0
  307. package/lib/dependencies/processExportInfo.js +14 -11
  308. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
  309. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
  310. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
  311. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
  312. package/lib/{DllModule.js → dll/DllModule.js} +36 -24
  313. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
  314. package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
  315. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
  316. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
  317. package/lib/electron/ElectronTargetPlugin.js +24 -5
  318. package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
  319. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
  320. package/lib/errors/BuildCycleError.js +1 -1
  321. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  322. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  323. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
  324. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
  325. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
  326. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
  327. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
  328. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
  329. package/lib/errors/JSONParseError.js +115 -0
  330. package/lib/errors/LoaderLoadingError.js +20 -0
  331. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
  332. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
  333. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
  334. package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
  335. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
  336. package/lib/errors/ModuleNotFoundError.js +94 -0
  337. package/lib/errors/ModuleParseError.js +141 -0
  338. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
  339. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
  340. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
  341. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
  342. package/lib/errors/NonErrorEmittedError.js +30 -0
  343. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
  344. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
  345. package/lib/errors/WebpackError.js +84 -0
  346. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  347. package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
  348. package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
  349. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
  350. package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
  351. package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
  352. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
  353. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  354. package/lib/hmr/LazyCompilationPlugin.js +154 -7
  355. package/lib/hmr/lazyCompilationBackend.js +53 -12
  356. package/lib/html/HtmlGenerator.js +1490 -0
  357. package/lib/html/HtmlModule.js +41 -0
  358. package/lib/html/HtmlModulesPlugin.js +1129 -0
  359. package/lib/html/HtmlParser.js +1970 -0
  360. package/lib/html/favicon.svg +1 -0
  361. package/lib/html/syntax.js +9106 -0
  362. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  363. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  364. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  365. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  366. package/lib/ids/IdHelpers.js +49 -12
  367. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  368. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  369. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  370. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  371. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  372. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  373. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  374. package/lib/index.js +66 -15
  375. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
  376. package/lib/javascript/BasicEvaluatedExpression.js +370 -49
  377. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  378. package/lib/javascript/ChunkHelpers.js +1 -0
  379. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  380. package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
  381. package/lib/javascript/JavascriptGenerator.js +213 -51
  382. package/lib/javascript/JavascriptModule.js +54 -0
  383. package/lib/javascript/JavascriptModulesPlugin.js +628 -198
  384. package/lib/javascript/JavascriptParser.js +1334 -471
  385. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  386. package/lib/javascript/StartupHelpers.js +5 -0
  387. package/lib/javascript/syntax.js +5037 -0
  388. package/lib/json/JsonData.js +5 -0
  389. package/lib/json/JsonGenerator.js +21 -0
  390. package/lib/json/JsonModule.js +40 -0
  391. package/lib/json/JsonModulesPlugin.js +8 -1
  392. package/lib/json/JsonParser.js +18 -27
  393. package/lib/library/AbstractLibraryPlugin.js +17 -2
  394. package/lib/library/AmdLibraryPlugin.js +8 -0
  395. package/lib/library/AssignLibraryPlugin.js +21 -3
  396. package/lib/library/EnableLibraryPlugin.js +8 -2
  397. package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
  398. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
  399. package/lib/library/JsonpLibraryPlugin.js +8 -0
  400. package/lib/library/ModuleLibraryPlugin.js +154 -7
  401. package/lib/library/SystemLibraryPlugin.js +11 -3
  402. package/lib/library/UmdLibraryPlugin.js +16 -0
  403. package/lib/loaders/LoaderRunner.js +714 -0
  404. package/lib/loaders/loadLoader.js +100 -0
  405. package/lib/logging/Logger.js +17 -0
  406. package/lib/logging/createConsoleLogger.js +7 -0
  407. package/lib/logging/runtime.js +2 -0
  408. package/lib/logging/truncateArgs.js +2 -0
  409. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  410. package/lib/node/NodeEnvironmentPlugin.js +7 -3
  411. package/lib/node/NodeSourcePlugin.js +1 -1
  412. package/lib/node/NodeTargetPlugin.js +4 -63
  413. package/lib/node/NodeTemplatePlugin.js +3 -1
  414. package/lib/node/NodeWatchFileSystem.js +40 -22
  415. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
  416. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
  417. package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
  418. package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
  419. package/lib/node/nodeBuiltins.js +80 -0
  420. package/lib/node/nodeConsole.js +116 -64
  421. package/lib/optimize/AggressiveMergingPlugin.js +22 -16
  422. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  423. package/lib/optimize/ConcatenatedModule.js +603 -130
  424. package/lib/optimize/ConstExportsPlugin.js +211 -0
  425. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  426. package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
  427. package/lib/optimize/InlineExports.js +178 -0
  428. package/lib/optimize/InnerGraph.js +374 -262
  429. package/lib/optimize/InnerGraphPlugin.js +246 -117
  430. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  431. package/lib/optimize/MangleExportsPlugin.js +5 -1
  432. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  433. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  434. package/lib/optimize/MinMaxSizeWarning.js +5 -4
  435. package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
  436. package/lib/optimize/RealContentHashPlugin.js +130 -52
  437. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  438. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  439. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  440. package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
  441. package/lib/optimize/SplitChunksPlugin.js +200 -50
  442. package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
  443. package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
  444. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  445. package/lib/performance/SizeLimitsPlugin.js +8 -2
  446. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  447. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
  448. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  449. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
  450. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
  451. package/lib/prefetch/ResourceHintPlugin.js +687 -0
  452. package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
  453. package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
  454. package/lib/prefetch/parseResourceHintOptions.js +103 -0
  455. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  456. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  457. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  458. package/lib/rules/RuleSetCompiler.js +132 -0
  459. package/lib/rules/UseEffectRulePlugin.js +10 -3
  460. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
  461. package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
  462. package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
  463. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  464. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  465. package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
  466. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
  467. package/lib/runtime/CompatRuntimeModule.js +2 -0
  468. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
  469. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  470. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  471. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
  472. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  473. package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
  474. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  475. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  476. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
  477. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
  478. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  479. package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
  480. package/lib/runtime/HelperRuntimeModule.js +5 -0
  481. package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
  482. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
  483. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
  484. package/lib/runtime/NonceRuntimeModule.js +1 -0
  485. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
  486. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  487. package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
  488. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  489. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
  490. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  491. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
  492. package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
  493. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  494. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  495. package/lib/runtime/WorkerRuntimeModule.js +33 -0
  496. package/lib/schemes/DataUriPlugin.js +14 -2
  497. package/lib/schemes/FileUriPlugin.js +1 -1
  498. package/lib/schemes/HttpUriPlugin.js +86 -4
  499. package/lib/schemes/VirtualUrlPlugin.js +8 -4
  500. package/lib/serialization/AggregateErrorSerializer.js +9 -6
  501. package/lib/serialization/ArraySerializer.js +6 -8
  502. package/lib/serialization/BinaryMiddleware.js +427 -1006
  503. package/lib/serialization/DateObjectSerializer.js +4 -2
  504. package/lib/serialization/ErrorObjectSerializer.js +10 -6
  505. package/lib/serialization/FileMiddleware.js +345 -59
  506. package/lib/serialization/MapObjectSerializer.js +7 -9
  507. package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
  508. package/lib/serialization/ObjectMiddleware.js +73 -13
  509. package/lib/serialization/PlainObjectSerializer.js +16 -8
  510. package/lib/serialization/RegExpObjectSerializer.js +4 -2
  511. package/lib/serialization/Serializer.js +6 -0
  512. package/lib/serialization/SerializerMiddleware.js +14 -2
  513. package/lib/serialization/SetObjectSerializer.js +6 -8
  514. package/lib/serialization/SingleItemMiddleware.js +3 -0
  515. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  516. package/lib/sharing/ConsumeSharedModule.js +21 -7
  517. package/lib/sharing/ConsumeSharedPlugin.js +11 -11
  518. package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
  519. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  520. package/lib/sharing/ProvideSharedDependency.js +34 -15
  521. package/lib/sharing/ProvideSharedModule.js +42 -12
  522. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  523. package/lib/sharing/ProvideSharedPlugin.js +13 -8
  524. package/lib/sharing/SharePlugin.js +5 -1
  525. package/lib/sharing/ShareRuntimeModule.js +19 -16
  526. package/lib/sharing/resolveMatchedConfigs.js +6 -2
  527. package/lib/sharing/utils.js +9 -1
  528. package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
  529. package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
  530. package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
  531. package/lib/stats/StatsFactory.js +70 -27
  532. package/lib/stats/StatsPrinter.js +16 -2
  533. package/lib/typescript/TypeScriptPlugin.js +210 -0
  534. package/lib/url/URLParserPlugin.js +111 -23
  535. package/lib/util/ArrayHelpers.js +1 -0
  536. package/lib/util/ArrayQueue.js +10 -5
  537. package/lib/util/AsyncQueue.js +154 -74
  538. package/lib/util/Hash.js +2 -2
  539. package/lib/util/IterableHelpers.js +3 -0
  540. package/lib/util/LazyBucketSortedSet.js +26 -0
  541. package/lib/util/LazySet.js +45 -4
  542. package/lib/util/LocConverter.js +64 -0
  543. package/lib/util/ParallelismFactorCalculator.js +1 -0
  544. package/lib/util/Queue.js +6 -3
  545. package/lib/util/Semaphore.js +15 -1
  546. package/lib/util/SetHelpers.js +4 -1
  547. package/lib/util/SortableSet.js +7 -1
  548. package/lib/util/SourceProcessor.js +119 -0
  549. package/lib/util/StackedCacheMap.js +20 -3
  550. package/lib/util/StackedMap.js +162 -43
  551. package/lib/util/StringXor.js +1 -1
  552. package/lib/util/TupleQueue.js +7 -3
  553. package/lib/util/TupleSet.js +14 -0
  554. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  555. package/lib/util/WeakTupleMap.js +60 -1
  556. package/lib/util/binarySearchBounds.js +3 -2
  557. package/lib/util/chainedImports.js +3 -3
  558. package/lib/util/cleverMerge.js +19 -2
  559. package/lib/util/comparators.js +35 -4
  560. package/lib/util/compileBooleanMatcher.js +9 -0
  561. package/lib/util/concatenate.js +80 -24
  562. package/lib/util/conventions.js +46 -1
  563. package/lib/util/createHash.js +0 -1
  564. package/lib/util/createHooksRegistry.js +43 -0
  565. package/lib/util/createMappings.js +118 -0
  566. package/lib/util/dataURL.js +3 -2
  567. package/lib/util/deprecation.js +19 -0
  568. package/lib/util/deterministicGrouping.js +46 -17
  569. package/lib/util/extractSourceMap.js +2 -1
  570. package/lib/util/extractUrlAndGlobal.js +1 -0
  571. package/lib/util/findGraphRoots.js +7 -0
  572. package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
  573. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
  574. package/lib/util/fs.js +87 -14
  575. package/lib/util/generateDebugId.js +1 -0
  576. package/lib/util/globUtils.js +710 -0
  577. package/lib/util/hash/BatchedHash.js +1 -0
  578. package/lib/util/hash/BulkUpdateHash.js +1 -0
  579. package/lib/util/hash/DebugHash.js +1 -0
  580. package/lib/util/hash/hash-digest.js +32 -15
  581. package/lib/util/hash/md4.js +1 -1
  582. package/lib/util/hash/wasm-hash.js +5 -0
  583. package/lib/util/hash/xxhash64.js +1 -1
  584. package/lib/util/identifier.js +118 -7
  585. package/lib/util/implicitTypeLoaderFallback.js +62 -0
  586. package/lib/util/internalSerializables.js +102 -60
  587. package/lib/util/magicComment.js +149 -7
  588. package/lib/util/makeSerializable.js +7 -0
  589. package/lib/util/memoize.js +2 -0
  590. package/lib/util/mimeTypes.js +176 -0
  591. package/lib/util/nonNumericOnlyHash.js +31 -1
  592. package/lib/util/numberHash.js +2 -2
  593. package/lib/util/parseJson.js +41 -0
  594. package/lib/util/processAsyncTree.js +8 -0
  595. package/lib/util/property.js +9 -2
  596. package/lib/util/publicPathPlaceholder.js +64 -0
  597. package/lib/util/registerExternalSerializer.js +24 -4
  598. package/lib/util/removeBOM.js +1 -0
  599. package/lib/util/runtime.js +32 -0
  600. package/lib/util/semver.js +15 -0
  601. package/lib/util/serialization.js +2 -0
  602. package/lib/util/smartGrouping.js +8 -0
  603. package/lib/util/source.js +23 -0
  604. package/lib/util/topologicalSort.js +69 -0
  605. package/lib/validateSchema.js +1 -0
  606. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  607. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
  608. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
  609. package/lib/wasm-async/AsyncWasmModule.js +77 -0
  610. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  611. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
  612. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
  613. package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
  614. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
  615. package/lib/wasm-sync/SyncWasmModule.js +39 -0
  616. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
  617. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
  618. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
  619. package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
  620. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
  621. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  622. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
  623. package/lib/wasm-sync/WebAssemblyParser.js +9 -3
  624. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  625. package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
  626. package/lib/web/FetchCompileWasmPlugin.js +27 -1
  627. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  628. package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
  629. package/lib/web/JsonpTemplatePlugin.js +2 -1
  630. package/lib/webpack.js +78 -1
  631. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  632. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
  633. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  634. package/module.d.ts +21 -0
  635. package/package.json +79 -77
  636. package/schemas/WebpackOptions.check.js +1 -1
  637. package/schemas/WebpackOptions.json +1173 -80
  638. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  639. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  640. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  641. package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
  642. package/schemas/plugins/HtmlParserOptions.check.js +6 -0
  643. package/schemas/plugins/HtmlParserOptions.json +3 -0
  644. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  645. package/schemas/plugins/ProgressPlugin.json +38 -0
  646. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  647. package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
  648. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  649. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  650. package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
  651. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
  652. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  653. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  654. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  655. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  656. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  657. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  658. package/types.d.ts +11053 -3019
  659. package/lib/CaseSensitiveModulesWarning.js +0 -72
  660. package/lib/GraphHelpers.js +0 -46
  661. package/lib/ModuleParseError.js +0 -125
  662. package/lib/NoModeWarning.js +0 -23
  663. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
  664. package/lib/css/walkCssTokens.js +0 -1843
  665. package/lib/util/AppendOnlyStackedSet.js +0 -78
  666. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  667. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  668. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  669. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
@@ -16,6 +16,7 @@ const {
16
16
  /** @typedef {import("../ChunkGraph").ModuleComparator} ModuleComparator */
17
17
 
18
18
  /**
19
+ * Defines the chunk module id range plugin options type used by this module.
19
20
  * @typedef {object} ChunkModuleIdRangePluginOptions
20
21
  * @property {string} name the chunk name
21
22
  * @property {("index" | "index2" | "preOrderIndex" | "postOrderIndex")=} order order
@@ -27,6 +28,7 @@ const PLUGIN_NAME = "ChunkModuleIdRangePlugin";
27
28
 
28
29
  class ChunkModuleIdRangePlugin {
29
30
  /**
31
+ * Creates an instance of ChunkModuleIdRangePlugin.
30
32
  * @param {ChunkModuleIdRangePluginOptions} options options object
31
33
  */
32
34
  constructor(options) {
@@ -35,7 +37,7 @@ class ChunkModuleIdRangePlugin {
35
37
  }
36
38
 
37
39
  /**
38
- * Apply the plugin
40
+ * Applies the plugin by registering its hooks on the compiler.
39
41
  * @param {Compiler} compiler the compiler instance
40
42
  * @returns {void}
41
43
  */
@@ -15,6 +15,7 @@ const {
15
15
  /** @typedef {import("../Compiler")} Compiler */
16
16
 
17
17
  /**
18
+ * Defines the deterministic chunk ids plugin options type used by this module.
18
19
  * @typedef {object} DeterministicChunkIdsPluginOptions
19
20
  * @property {string=} context context for ids
20
21
  * @property {number=} maxLength maximum length of ids
@@ -24,6 +25,7 @@ const PLUGIN_NAME = "DeterministicChunkIdsPlugin";
24
25
 
25
26
  class DeterministicChunkIdsPlugin {
26
27
  /**
28
+ * Creates an instance of DeterministicChunkIdsPlugin.
27
29
  * @param {DeterministicChunkIdsPluginOptions=} options options
28
30
  */
29
31
  constructor(options = {}) {
@@ -32,7 +34,7 @@ class DeterministicChunkIdsPlugin {
32
34
  }
33
35
 
34
36
  /**
35
- * Apply the plugin
37
+ * Applies the plugin by registering its hooks on the compiler.
36
38
  * @param {Compiler} compiler the compiler instance
37
39
  * @returns {void}
38
40
  */
@@ -18,6 +18,7 @@ const {
18
18
  /** @typedef {import("../Module")} Module */
19
19
 
20
20
  /**
21
+ * Defines the deterministic module ids plugin options type used by this module.
21
22
  * @typedef {object} DeterministicModuleIdsPluginOptions
22
23
  * @property {string=} context context relative to which module identifiers are computed
23
24
  * @property {((module: Module) => boolean)=} test selector function for modules
@@ -31,6 +32,7 @@ const PLUGIN_NAME = "DeterministicModuleIdsPlugin";
31
32
 
32
33
  class DeterministicModuleIdsPlugin {
33
34
  /**
35
+ * Creates an instance of DeterministicModuleIdsPlugin.
34
36
  * @param {DeterministicModuleIdsPluginOptions=} options options
35
37
  */
36
38
  constructor(options = {}) {
@@ -39,7 +41,7 @@ class DeterministicModuleIdsPlugin {
39
41
  }
40
42
 
41
43
  /**
42
- * Apply the plugin
44
+ * Applies the plugin by registering its hooks on the compiler.
43
45
  * @param {Compiler} compiler the compiler instance
44
46
  * @returns {void}
45
47
  */
@@ -22,6 +22,7 @@ const PLUGIN_NAME = "HashedModuleIdsPlugin";
22
22
 
23
23
  class HashedModuleIdsPlugin {
24
24
  /**
25
+ * Creates an instance of HashedModuleIdsPlugin.
25
26
  * @param {HashedModuleIdsPluginOptions=} options options object
26
27
  */
27
28
  constructor(options = {}) {
@@ -30,7 +31,7 @@ class HashedModuleIdsPlugin {
30
31
  }
31
32
 
32
33
  /**
33
- * Apply the plugin
34
+ * Applies the plugin by registering its hooks on the compiler.
34
35
  * @param {Compiler} compiler the compiler instance
35
36
  * @returns {void}
36
37
  */
@@ -16,8 +16,21 @@ const numberHash = require("../util/numberHash");
16
16
  /** @typedef {import("../util/Hash").HashFunction} HashFunction */
17
17
  /** @typedef {import("../util/identifier").AssociatedObjectForCache} AssociatedObjectForCache */
18
18
  /** @typedef {import("../Module").BuildMeta} BuildMeta */
19
+ /** @typedef {import("../css/CssModule").CssModuleBuildMeta} CssModuleBuildMeta */
20
+
21
+ // Numbers longer than this are written in exponential form ("...e+xx"), so a
22
+ // longer string can't be a plain integer id.
23
+ const MAX_NUMERIC_STRING_LENGTH = 21;
24
+ // Char codes bounding the "looks like a plain number" fast check in `avoidNumber`.
25
+ const CC_HYPHEN_MINUS = 45;
26
+ const CC_DIGIT_ONE = 49;
27
+ const CC_DIGIT_NINE = 57;
28
+ // Long ids are truncated to this length and disambiguated with a short hash.
29
+ const MAX_SHORTENED_STRING_LENGTH = 100;
30
+ const SHORTENED_STRING_HASH_LENGTH = 6;
19
31
 
20
32
  /**
33
+ * Returns hash.
21
34
  * @param {string} str string to hash
22
35
  * @param {number} len max length of the hash
23
36
  * @param {HashFunction} hashFunction hash function to use
@@ -31,18 +44,17 @@ const getHash = (str, len, hashFunction) => {
31
44
  };
32
45
 
33
46
  /**
47
+ * Returns string prefixed by an underscore if it is a number.
34
48
  * @param {string} str the string
35
49
  * @returns {string} string prefixed by an underscore if it is a number
36
50
  */
37
51
  const avoidNumber = (str) => {
38
- // max length of a number is 21 chars, bigger numbers a written as "...e+xx"
39
- if (str.length > 21) return str;
52
+ if (str.length > MAX_NUMERIC_STRING_LENGTH) return str;
40
53
  const firstChar = str.charCodeAt(0);
41
- // skip everything that doesn't look like a number
42
- // charCodes: "-": 45, "1": 49, "9": 57
43
- if (firstChar < 49) {
44
- if (firstChar !== 45) return str;
45
- } else if (firstChar > 57) {
54
+ // Skip everything that doesn't start like a number ("-" or a digit).
55
+ if (firstChar < CC_DIGIT_ONE) {
56
+ if (firstChar !== CC_HYPHEN_MINUS) return str;
57
+ } else if (firstChar > CC_DIGIT_NINE) {
46
58
  return str;
47
59
  }
48
60
  if (str === String(Number(str))) {
@@ -52,6 +64,7 @@ const avoidNumber = (str) => {
52
64
  };
53
65
 
54
66
  /**
67
+ * Returns id representation.
55
68
  * @param {string} request the request
56
69
  * @returns {string} id representation
57
70
  */
@@ -59,21 +72,28 @@ const requestToId = (request) =>
59
72
  request.replace(/^(\.\.?\/)+/, "").replace(/(^[.-]|[^a-z0-9_-])+/gi, "_");
60
73
 
61
74
  /**
75
+ * Shorten long string.
62
76
  * @param {string} string the string
63
77
  * @param {string} delimiter separator for string and hash
64
78
  * @param {HashFunction} hashFunction hash function to use
65
79
  * @returns {string} string with limited max length to 100 chars
66
80
  */
67
81
  const shortenLongString = (string, delimiter, hashFunction) => {
68
- if (string.length < 100) return string;
82
+ if (string.length < MAX_SHORTENED_STRING_LENGTH) return string;
69
83
  return (
70
- string.slice(0, 100 - 6 - delimiter.length) +
84
+ string.slice(
85
+ 0,
86
+ MAX_SHORTENED_STRING_LENGTH -
87
+ SHORTENED_STRING_HASH_LENGTH -
88
+ delimiter.length
89
+ ) +
71
90
  delimiter +
72
- getHash(string, 6, hashFunction)
91
+ getHash(string, SHORTENED_STRING_HASH_LENGTH, hashFunction)
73
92
  );
74
93
  };
75
94
 
76
95
  /**
96
+ * Gets short module name.
77
97
  * @param {Module} module the module
78
98
  * @param {string} context context directory
79
99
  * @param {AssociatedObjectForCache=} associatedObjectForCache an object to which the cache will be attached
@@ -92,6 +112,7 @@ const getShortModuleName = (module, context, associatedObjectForCache) => {
92
112
  };
93
113
 
94
114
  /**
115
+ * Gets long module name.
95
116
  * @param {string} shortName the short name
96
117
  * @param {Module} module the module
97
118
  * @param {string} context context directory
@@ -111,6 +132,7 @@ const getLongModuleName = (
111
132
  };
112
133
 
113
134
  /**
135
+ * Gets full module name.
114
136
  * @param {Module} module the module
115
137
  * @param {string} context context directory
116
138
  * @param {AssociatedObjectForCache=} associatedObjectForCache an object to which the cache will be attached
@@ -120,6 +142,7 @@ const getFullModuleName = (module, context, associatedObjectForCache) =>
120
142
  makePathsRelative(context, module.identifier(), associatedObjectForCache);
121
143
 
122
144
  /**
145
+ * Gets short chunk name.
123
146
  * @param {Chunk} chunk the chunk
124
147
  * @param {ChunkGraph} chunkGraph the chunk graph
125
148
  * @param {string} context context directory
@@ -148,6 +171,7 @@ const getShortChunkName = (
148
171
  };
149
172
 
150
173
  /**
174
+ * Gets long chunk name.
151
175
  * @param {Chunk} chunk the chunk
152
176
  * @param {ChunkGraph} chunkGraph the chunk graph
153
177
  * @param {string} context context directory
@@ -185,6 +209,7 @@ const getLongChunkName = (
185
209
  };
186
210
 
187
211
  /**
212
+ * Gets full chunk name.
188
213
  * @param {Chunk} chunk the chunk
189
214
  * @param {ChunkGraph} chunkGraph the chunk graph
190
215
  * @param {string} context context directory
@@ -206,6 +231,7 @@ const getFullChunkName = (
206
231
  };
207
232
 
208
233
  /**
234
+ * Adds to map of items.
209
235
  * @template K
210
236
  * @template V
211
237
  * @param {Map<K, V[]>} map a map from key to values
@@ -225,6 +251,7 @@ const addToMapOfItems = (map, key, value) => {
225
251
  /** @typedef {Set<string>} UsedModuleIds */
226
252
 
227
253
  /**
254
+ * Gets used module ids and modules.
228
255
  * @param {Compilation} compilation the compilation
229
256
  * @param {((module: Module) => boolean)=} filter filter modules
230
257
  * @returns {[UsedModuleIds, Module[]]} used module ids as strings and modules without id matching the filter
@@ -251,7 +278,9 @@ const getUsedModuleIdsAndModules = (compilation, filter) => {
251
278
  (!filter || filter(module)) &&
252
279
  (chunkGraph.getNumberOfModuleChunks(module) !== 0 ||
253
280
  // CSS modules need IDs even when not in chunks, for generating CSS class names(i.e. [id]-[local])
254
- /** @type {BuildMeta} */ (module.buildMeta).isCSSModule)
281
+ /** @type {CssModuleBuildMeta} */ (module.buildMeta).isCssModule ||
282
+ /** @type {CssModuleBuildMeta} */ (module.buildMeta)
283
+ .needIdInConcatenation)
255
284
  ) {
256
285
  modules.push(module);
257
286
  }
@@ -263,6 +292,7 @@ const getUsedModuleIdsAndModules = (compilation, filter) => {
263
292
  /** @typedef {Set<string>} UsedChunkIds */
264
293
 
265
294
  /**
295
+ * Gets used chunk ids.
266
296
  * @param {Compilation} compilation the compilation
267
297
  * @returns {UsedChunkIds} used chunk ids as strings
268
298
  */
@@ -286,6 +316,7 @@ const getUsedChunkIds = (compilation) => {
286
316
  };
287
317
 
288
318
  /**
319
+ * Returns list of items without a name.
289
320
  * @template T
290
321
  * @param {Iterable<T>} items list of items to be named
291
322
  * @param {(item: T) => string} getShortName get a short name for an item
@@ -304,6 +335,7 @@ const assignNames = (
304
335
  assignName
305
336
  ) => {
306
337
  /**
338
+ * Defines the map to item type used by this module.
307
339
  * @template T
308
340
  * @typedef {Map<string, T[]>} MapToItem
309
341
  */
@@ -345,7 +377,7 @@ const assignNames = (
345
377
  items.sort(comparator);
346
378
  let i = 0;
347
379
  for (const item of items) {
348
- while (nameToItems2.has(name + i) && usedIds.has(name + i)) i++;
380
+ while (usedIds.has(name + i)) i++;
349
381
  assignName(item, name + i);
350
382
  usedIds.add(name + i);
351
383
  i++;
@@ -358,6 +390,7 @@ const assignNames = (
358
390
  };
359
391
 
360
392
  /**
393
+ * Assign deterministic ids.
361
394
  * @template T
362
395
  * @param {T[]} items list of items to be named
363
396
  * @param {(item: T) => string} getName get a name for an item
@@ -412,6 +445,7 @@ const assignDeterministicIds = (
412
445
  };
413
446
 
414
447
  /**
448
+ * Assign ascending module ids.
415
449
  * @param {UsedModuleIds} usedIds used ids
416
450
  * @param {Iterable<Module>} modules the modules
417
451
  * @param {Compilation} compilation the compilation
@@ -425,6 +459,7 @@ const assignAscendingModuleIds = (usedIds, modules, compilation) => {
425
459
  let assignId;
426
460
  if (usedIds.size > 0) {
427
461
  /**
462
+ * Processes the provided module.
428
463
  * @param {Module} module the module
429
464
  */
430
465
  assignId = (module) => {
@@ -435,6 +470,7 @@ const assignAscendingModuleIds = (usedIds, modules, compilation) => {
435
470
  };
436
471
  } else {
437
472
  /**
473
+ * Processes the provided module.
438
474
  * @param {Module} module the module
439
475
  */
440
476
  assignId = (module) => {
@@ -449,6 +485,7 @@ const assignAscendingModuleIds = (usedIds, modules, compilation) => {
449
485
  };
450
486
 
451
487
  /**
488
+ * Assign ascending chunk ids.
452
489
  * @param {Iterable<Chunk>} chunks the chunks
453
490
  * @param {Compilation} compilation the compilation
454
491
  * @returns {void}
@@ -17,6 +17,7 @@ const {
17
17
  /** @typedef {import("../Compiler")} Compiler */
18
18
 
19
19
  /**
20
+ * Defines the named chunk ids plugin options type used by this module.
20
21
  * @typedef {object} NamedChunkIdsPluginOptions
21
22
  * @property {string=} context context
22
23
  * @property {string=} delimiter delimiter
@@ -26,6 +27,7 @@ const PLUGIN_NAME = "NamedChunkIdsPlugin";
26
27
 
27
28
  class NamedChunkIdsPlugin {
28
29
  /**
30
+ * Creates an instance of NamedChunkIdsPlugin.
29
31
  * @param {NamedChunkIdsPluginOptions=} options options
30
32
  */
31
33
  constructor(options = {}) {
@@ -34,7 +36,7 @@ class NamedChunkIdsPlugin {
34
36
  }
35
37
 
36
38
  /**
37
- * Apply the plugin
39
+ * Applies the plugin by registering its hooks on the compiler.
38
40
  * @param {Compiler} compiler the compiler instance
39
41
  * @returns {void}
40
42
  */
@@ -17,6 +17,7 @@ const {
17
17
  /** @typedef {import("../Compiler")} Compiler */
18
18
 
19
19
  /**
20
+ * Defines the named module ids plugin options type used by this module.
20
21
  * @typedef {object} NamedModuleIdsPluginOptions
21
22
  * @property {string=} context context
22
23
  */
@@ -25,6 +26,7 @@ const PLUGIN_NAME = "NamedModuleIdsPlugin";
25
26
 
26
27
  class NamedModuleIdsPlugin {
27
28
  /**
29
+ * Creates an instance of NamedModuleIdsPlugin.
28
30
  * @param {NamedModuleIdsPluginOptions=} options options
29
31
  */
30
32
  constructor(options = {}) {
@@ -33,7 +35,7 @@ class NamedModuleIdsPlugin {
33
35
  }
34
36
 
35
37
  /**
36
- * Apply the plugin
38
+ * Applies the plugin by registering its hooks on the compiler.
37
39
  * @param {Compiler} compiler the compiler instance
38
40
  * @returns {void}
39
41
  */
@@ -15,7 +15,7 @@ const PLUGIN_NAME = "NaturalChunkIdsPlugin";
15
15
 
16
16
  class NaturalChunkIdsPlugin {
17
17
  /**
18
- * Apply the plugin
18
+ * Applies the plugin by registering its hooks on the compiler.
19
19
  * @param {Compiler} compiler the compiler instance
20
20
  * @returns {void}
21
21
  */
@@ -19,7 +19,7 @@ const PLUGIN_NAME = "NaturalModuleIdsPlugin";
19
19
 
20
20
  class NaturalModuleIdsPlugin {
21
21
  /**
22
- * Apply the plugin
22
+ * Applies the plugin by registering its hooks on the compiler.
23
23
  * @param {Compiler} compiler the compiler instance
24
24
  * @returns {void}
25
25
  */
@@ -16,6 +16,7 @@ const PLUGIN_NAME = "OccurrenceChunkIdsPlugin";
16
16
 
17
17
  class OccurrenceChunkIdsPlugin {
18
18
  /**
19
+ * Creates an instance of OccurrenceChunkIdsPlugin.
19
20
  * @param {OccurrenceChunkIdsPluginOptions=} options options object
20
21
  */
21
22
  constructor(options = {}) {
@@ -24,7 +25,7 @@ class OccurrenceChunkIdsPlugin {
24
25
  }
25
26
 
26
27
  /**
27
- * Apply the plugin
28
+ * Applies the plugin by registering its hooks on the compiler.
28
29
  * @param {Compiler} compiler the compiler instance
29
30
  * @returns {void}
30
31
  */
@@ -21,6 +21,7 @@ const PLUGIN_NAME = "OccurrenceModuleIdsPlugin";
21
21
 
22
22
  class OccurrenceModuleIdsPlugin {
23
23
  /**
24
+ * Creates an instance of OccurrenceModuleIdsPlugin.
24
25
  * @param {OccurrenceModuleIdsPluginOptions=} options options object
25
26
  */
26
27
  constructor(options = {}) {
@@ -29,7 +30,7 @@ class OccurrenceModuleIdsPlugin {
29
30
  }
30
31
 
31
32
  /**
32
- * Apply the plugin
33
+ * Applies the plugin by registering its hooks on the compiler.
33
34
  * @param {Compiler} compiler the compiler instance
34
35
  * @returns {void}
35
36
  */
@@ -79,6 +80,7 @@ class OccurrenceModuleIdsPlugin {
79
80
  }
80
81
 
81
82
  /**
83
+ * Count occurs in entry.
82
84
  * @param {Module} module module
83
85
  * @returns {number} count of occurs
84
86
  */
@@ -96,6 +98,7 @@ class OccurrenceModuleIdsPlugin {
96
98
  };
97
99
 
98
100
  /**
101
+ * Returns count of occurs.
99
102
  * @param {Module} module module
100
103
  * @returns {number} count of occurs
101
104
  */
@@ -18,6 +18,7 @@ const { getUsedModuleIdsAndModules } = require("./IdHelpers");
18
18
  const plugin = "SyncModuleIdsPlugin";
19
19
 
20
20
  /**
21
+ * Represents the sync module ids plugin runtime component.
21
22
  * @typedef {object} SyncModuleIdsPluginOptions
22
23
  * @property {string} path path to file
23
24
  * @property {string=} context context for module names
@@ -27,6 +28,7 @@ const plugin = "SyncModuleIdsPlugin";
27
28
 
28
29
  class SyncModuleIdsPlugin {
29
30
  /**
31
+ * Creates an instance of SyncModuleIdsPlugin.
30
32
  * @param {SyncModuleIdsPluginOptions} options options
31
33
  */
32
34
  constructor(options) {
@@ -35,7 +37,7 @@ class SyncModuleIdsPlugin {
35
37
  }
36
38
 
37
39
  /**
38
- * Apply the plugin
40
+ * Applies the plugin by registering its hooks on the compiler.
39
41
  * @param {Compiler} compiler the compiler instance
40
42
  * @returns {void}
41
43
  */
package/lib/index.js CHANGED
@@ -35,12 +35,28 @@ const memoize = require("./util/memoize");
35
35
  /** @typedef {import("../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptionsNormalized */
36
36
  /** @typedef {import("../declarations/WebpackOptions").WebpackPluginFunction} WebpackPluginFunction */
37
37
  /** @typedef {import("../declarations/WebpackOptions").WebpackPluginInstance} WebpackPluginInstance */
38
+ /** @typedef {import("./asset/AssetModule").AssetModuleBuildInfo} AssetModuleBuildInfo */
38
39
  /** @typedef {import("./ChunkGroup")} ChunkGroup */
39
40
  /** @typedef {import("./Compiler").AssetEmittedInfo} AssetEmittedInfo */
41
+ /** @typedef {import("./ContextModule").ContextModuleBuildInfo} ContextModuleBuildInfo */
42
+ /** @typedef {import("./css/CssModule").CssModuleBuildInfo} CssModuleBuildInfo */
43
+ /** @typedef {import("./css/CssModule").CssModuleBuildMeta} CssModuleBuildMeta */
44
+ /** @typedef {import("./ExternalModule").ExternalModuleBuildInfo} ExternalModuleBuildInfo */
45
+ /** @typedef {import("./html/HtmlModule").HtmlModuleBuildInfo} HtmlModuleBuildInfo */
46
+ /** @typedef {import("./javascript/JavascriptModule").JavascriptModuleBuildInfo} JavascriptModuleBuildInfo */
47
+ /** @typedef {import("./javascript/JavascriptModule").JavascriptModuleBuildMeta} JavascriptModuleBuildMeta */
48
+ /** @typedef {import("./json/JsonModule").JsonModuleBuildInfo} JsonModuleBuildInfo */
49
+ /** @typedef {import("./Module").BuildInfo} BuildInfo */
50
+ /** @typedef {import("./Module").BuildMeta} BuildMeta */
51
+ /** @typedef {import("./NormalModule").NormalModuleBuildInfo} NormalModuleBuildInfo */
52
+ /** @typedef {import("./optimize/ConcatenatedModule").ConcatenatedModuleBuildInfo} ConcatenatedModuleBuildInfo */
53
+ /** @typedef {import("./wasm-sync/SyncWasmModule").SyncWasmModuleBuildMeta} SyncWasmModuleBuildMeta */
40
54
  /** @typedef {import("./Compilation").Asset} Asset */
41
55
  /** @typedef {import("./Compilation").AssetInfo} AssetInfo */
42
56
  /** @typedef {import("./Compilation").EntryOptions} EntryOptions */
43
57
  /** @typedef {import("./Compilation").PathData} PathData */
58
+ /** @typedef {import("./Compilation").PathDataChunk} PathDataChunk */
59
+ /** @typedef {import("./Compilation").PathDataModule} PathDataModule */
44
60
  /** @typedef {import("./CodeGenerationResults")} CodeGenerationResults */
45
61
  /** @typedef {import("./Entrypoint")} Entrypoint */
46
62
  /** @typedef {import("./ExternalModuleFactoryPlugin").ExternalItemFunctionCallback} ExternalItemFunctionCallback */
@@ -65,6 +81,8 @@ const memoize = require("./util/memoize");
65
81
  /** @typedef {import("./cli").Problem} Problem */
66
82
  /** @typedef {import("./cli").Colors} Colors */
67
83
  /** @typedef {import("./cli").ColorsOptions} ColorsOptions */
84
+ /** @typedef {import("./config/defineConfig").ConfigurationFactory} ConfigurationFactory */
85
+ /** @typedef {import("./config/defineConfig").DefineConfigInput} DefineConfigInput */
68
86
  /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsAsset} StatsAsset */
69
87
  /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsChunk} StatsChunk */
70
88
  /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsChunkGroup} StatsChunkGroup */
@@ -85,6 +103,7 @@ const memoize = require("./util/memoize");
85
103
  /** @typedef {import("./util/fs").OutputFileSystem} OutputFileSystem */
86
104
 
87
105
  /**
106
+ * Returns function.
88
107
  * @template {EXPECTED_FUNCTION} T
89
108
  * @param {() => T} factory factory function
90
109
  * @returns {T} function
@@ -93,6 +112,7 @@ const lazyFunction = (factory) => {
93
112
  const fac = memoize(factory);
94
113
  const f = /** @type {unknown} */ (
95
114
  /**
115
+ * Handles the callback logic for this hook.
96
116
  * @param {...EXPECTED_ANY} args args
97
117
  * @returns {T} result
98
118
  */
@@ -102,6 +122,7 @@ const lazyFunction = (factory) => {
102
122
  };
103
123
 
104
124
  /**
125
+ * Merges the provided values into a single result.
105
126
  * @template A
106
127
  * @template B
107
128
  * @param {A} obj input a
@@ -141,7 +162,11 @@ module.exports = mergeExports(fn, {
141
162
  get webpack() {
142
163
  return require("./webpack");
143
164
  },
165
+ get defineConfig() {
166
+ return require("./config/defineConfig");
167
+ },
144
168
  /**
169
+ * Returns validate fn.
145
170
  * @returns {(configuration: Configuration | MultiConfiguration) => void} validate fn
146
171
  */
147
172
  get validate() {
@@ -151,11 +176,14 @@ module.exports = mergeExports(fn, {
151
176
 
152
177
  const getRealValidate = memoize(
153
178
  /**
179
+ * Handles the callback logic for this hook.
154
180
  * @returns {(configuration: Configuration | MultiConfiguration) => void} validate fn
155
181
  */
156
182
  () => {
157
183
  const validateSchema = require("./validateSchema");
158
- const webpackOptionsSchema = require("../schemas/WebpackOptions.json");
184
+ const webpackOptionsSchema =
185
+ /** @type {EXPECTED_ANY} */
186
+ (require("../schemas/WebpackOptions.json"));
159
187
 
160
188
  return (options) => validateSchema(webpackOptionsSchema, options);
161
189
  }
@@ -217,18 +245,9 @@ module.exports = mergeExports(fn, {
217
245
  get DefinePlugin() {
218
246
  return require("./DefinePlugin");
219
247
  },
220
- get DelegatedPlugin() {
221
- return require("./DelegatedPlugin");
222
- },
223
248
  get Dependency() {
224
249
  return require("./Dependency");
225
250
  },
226
- get DllPlugin() {
227
- return require("./DllPlugin");
228
- },
229
- get DllReferencePlugin() {
230
- return require("./DllReferencePlugin");
231
- },
232
251
  get DynamicEntryPlugin() {
233
252
  return require("./DynamicEntryPlugin");
234
253
  },
@@ -278,9 +297,6 @@ module.exports = mergeExports(fn, {
278
297
  "DEP_WEBPACK_JAVASCRIPT_MODULES_PLUGIN"
279
298
  )();
280
299
  },
281
- get LibManifestPlugin() {
282
- return require("./LibManifestPlugin");
283
- },
284
300
  get LibraryTemplatePlugin() {
285
301
  return util.deprecate(
286
302
  () => require("./LibraryTemplatePlugin"),
@@ -371,7 +387,7 @@ module.exports = mergeExports(fn, {
371
387
  return require("./WatchIgnorePlugin");
372
388
  },
373
389
  get WebpackError() {
374
- return require("./WebpackError");
390
+ return require("./errors/WebpackError");
375
391
  },
376
392
  get WebpackOptionsApply() {
377
393
  return require("./WebpackOptionsApply");
@@ -383,7 +399,7 @@ module.exports = mergeExports(fn, {
383
399
  "DEP_WEBPACK_OPTIONS_DEFAULTER"
384
400
  )();
385
401
  },
386
- // TODO webpack 6 deprecate
402
+ // TODO webpack 6 remove
387
403
  get WebpackOptionsValidationError() {
388
404
  return require("schema-utils").ValidationError;
389
405
  },
@@ -590,6 +606,12 @@ module.exports = mergeExports(fn, {
590
606
  }
591
607
  },
592
608
 
609
+ html: {
610
+ get HtmlModulesPlugin() {
611
+ return require("./html/HtmlModulesPlugin");
612
+ }
613
+ },
614
+
593
615
  library: {
594
616
  get AbstractLibraryPlugin() {
595
617
  return require("./library/AbstractLibraryPlugin");
@@ -599,6 +621,35 @@ module.exports = mergeExports(fn, {
599
621
  }
600
622
  },
601
623
 
624
+ // TODO remove in webpack 6 in favor of `dll` scope
625
+ get DelegatedPlugin() {
626
+ return require("./dll/DelegatedPlugin");
627
+ },
628
+ get DllPlugin() {
629
+ return require("./dll/DllPlugin");
630
+ },
631
+ get DllReferencePlugin() {
632
+ return require("./dll/DllReferencePlugin");
633
+ },
634
+ get LibManifestPlugin() {
635
+ return require("./dll/LibManifestPlugin");
636
+ },
637
+
638
+ dll: {
639
+ get DelegatedPlugin() {
640
+ return require("./dll/DelegatedPlugin");
641
+ },
642
+ get DllPlugin() {
643
+ return require("./dll/DllPlugin");
644
+ },
645
+ get DllReferencePlugin() {
646
+ return require("./dll/DllReferencePlugin");
647
+ },
648
+ get LibManifestPlugin() {
649
+ return require("./dll/LibManifestPlugin");
650
+ }
651
+ },
652
+
602
653
  container: {
603
654
  get ContainerPlugin() {
604
655
  return require("./container/ContainerPlugin");
@@ -23,7 +23,7 @@ const PLUGIN_NAME = "ArrayPushCallbackChunkFormatPlugin";
23
23
 
24
24
  class ArrayPushCallbackChunkFormatPlugin {
25
25
  /**
26
- * Apply the plugin
26
+ * Applies the plugin by registering its hooks on the compiler.
27
27
  * @param {Compiler} compiler the compiler instance
28
28
  * @returns {void}
29
29
  */
@@ -65,12 +65,11 @@ class ArrayPushCallbackChunkFormatPlugin {
65
65
  } else {
66
66
  const chunkLoadingGlobal =
67
67
  runtimeTemplate.outputOptions.chunkLoadingGlobal;
68
+ const chunkLoadingGlobalExpr = `${globalObject}[${JSON.stringify(
69
+ chunkLoadingGlobal
70
+ )}]`;
68
71
  source.add(
69
- `(${globalObject}[${JSON.stringify(
70
- chunkLoadingGlobal
71
- )}] = ${globalObject}[${JSON.stringify(
72
- chunkLoadingGlobal
73
- )}] || []).push([`
72
+ `(${runtimeTemplate.assignOr(chunkLoadingGlobalExpr, "[]")}).push([`
74
73
  );
75
74
  source.add(`${JSON.stringify(chunk.ids)},`);
76
75
  source.add(modules);