webpack 5.106.1 → 5.107.0

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