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
@@ -17,6 +17,7 @@ const {
17
17
  CSS_TYPE,
18
18
  CSS_URL_TYPE,
19
19
  CSS_URL_TYPES,
20
+ HTML_TYPE,
20
21
  JAVASCRIPT_AND_CSS_URL_TYPES,
21
22
  JAVASCRIPT_TYPE,
22
23
  JAVASCRIPT_TYPES,
@@ -29,8 +30,9 @@ const createHash = require("../util/createHash");
29
30
  const { makePathsRelative } = require("../util/identifier");
30
31
  const memoize = require("../util/memoize");
31
32
  const nonNumericOnlyHash = require("../util/nonNumericOnlyHash");
33
+ const { updateHashFromSource } = require("../util/source");
32
34
 
33
- const getMimeTypes = memoize(() => require("mime-types"));
35
+ const getMimeTypes = memoize(() => require("../util/mimeTypes"));
34
36
 
35
37
  /** @typedef {import("webpack-sources").Source} Source */
36
38
  /** @typedef {import("../../declarations/WebpackOptions").AssetGeneratorDataUrlOptions} AssetGeneratorDataUrlOptions */
@@ -58,6 +60,7 @@ const getMimeTypes = memoize(() => require("mime-types"));
58
60
  /** @typedef {(source: string | Buffer, context: { filename: string, module: Module }) => string} DataUrlFunction */
59
61
 
60
62
  /**
63
+ * Merges maybe arrays.
61
64
  * @template T
62
65
  * @template U
63
66
  * @param {null | string | T[] | Set<T> | undefined} a a
@@ -75,6 +78,7 @@ const mergeMaybeArrays = (a, b) => {
75
78
  };
76
79
 
77
80
  /**
81
+ * Merges the provided values into a single result.
78
82
  * @param {AssetInfo} a a
79
83
  * @param {AssetInfo} b b
80
84
  * @returns {AssetInfo} object
@@ -115,6 +119,7 @@ const mergeAssetInfo = (a, b) => {
115
119
  };
116
120
 
117
121
  /**
122
+ * Merges related info.
118
123
  * @param {NonNullable<AssetInfo["related"]>} a a
119
124
  * @param {NonNullable<AssetInfo["related"]>} b b
120
125
  * @returns {NonNullable<AssetInfo["related"]>} object
@@ -131,6 +136,7 @@ const mergeRelatedInfo = (a, b) => {
131
136
  };
132
137
 
133
138
  /**
139
+ * Encodes the provided encoding.
134
140
  * @param {"base64" | false} encoding encoding
135
141
  * @param {Source} source source
136
142
  * @returns {string} encoded data
@@ -169,6 +175,7 @@ const encodeDataUri = (encoding, source) => {
169
175
  };
170
176
 
171
177
  /**
178
+ * Decodes data uri content.
172
179
  * @param {"base64" | false} encoding encoding
173
180
  * @param {string} content content
174
181
  * @returns {Buffer} decoded content
@@ -192,6 +199,7 @@ const DEFAULT_ENCODING = "base64";
192
199
 
193
200
  class AssetGenerator extends Generator {
194
201
  /**
202
+ * Creates an instance of AssetGenerator.
195
203
  * @param {ModuleGraph} moduleGraph the module graph
196
204
  * @param {AssetGeneratorOptions["dataUrl"]=} dataUrlOptions the options for the data url
197
205
  * @param {AssetModuleFilename=} filename override for output.assetModuleFilename
@@ -223,6 +231,7 @@ class AssetGenerator extends Generator {
223
231
  }
224
232
 
225
233
  /**
234
+ * Gets source file name.
226
235
  * @param {NormalModule} module module
227
236
  * @param {RuntimeTemplate} runtimeTemplate runtime template
228
237
  * @returns {string} source file name
@@ -237,6 +246,7 @@ class AssetGenerator extends Generator {
237
246
  }
238
247
 
239
248
  /**
249
+ * Gets full content hash.
240
250
  * @param {NormalModule} module module
241
251
  * @param {RuntimeTemplate} runtimeTemplate runtime template
242
252
  * @returns {[string, string]} return full hash and non-numeric full hash
@@ -251,7 +261,7 @@ class AssetGenerator extends Generator {
251
261
  const source = module.originalSource();
252
262
 
253
263
  if (source) {
254
- hash.update(source.buffer());
264
+ updateHashFromSource(hash, source);
255
265
  }
256
266
 
257
267
  if (module.error) {
@@ -271,6 +281,7 @@ class AssetGenerator extends Generator {
271
281
  }
272
282
 
273
283
  /**
284
+ * Gets filename with info.
274
285
  * @param {NormalModule} module module for which the code should be generated
275
286
  * @param {Pick<AssetResourceGeneratorOptions, "filename" | "outputPath">} generatorOptions generator options
276
287
  * @param {{ runtime: RuntimeSpec, runtimeTemplate: RuntimeTemplate, chunkGraph: ChunkGraph }} generateContext context for generate
@@ -322,6 +333,7 @@ class AssetGenerator extends Generator {
322
333
  }
323
334
 
324
335
  /**
336
+ * Gets asset path with info.
325
337
  * @param {NormalModule} module module for which the code should be generated
326
338
  * @param {Pick<AssetResourceGeneratorOptions, "publicPath">} generatorOptions generator options
327
339
  * @param {GenerateContext} generateContext context for generate
@@ -388,7 +400,13 @@ class AssetGenerator extends Generator {
388
400
  compilation.outputOptions.publicPath === "auto"
389
401
  ? CssUrlDependency.PUBLIC_PATH_AUTO
390
402
  : compilation.getAssetPath(compilation.outputOptions.publicPath, {
391
- hash: compilation.hash
403
+ hash:
404
+ compilation.hash ||
405
+ `${CssUrlDependency.PUBLIC_PATH_FULL_HASH}0__`,
406
+ hashWithLength: (length) =>
407
+ compilation.hash
408
+ ? compilation.hash.slice(0, length)
409
+ : `${CssUrlDependency.PUBLIC_PATH_FULL_HASH}${length}__`
392
410
  });
393
411
 
394
412
  assetPath = path + filename;
@@ -401,6 +419,7 @@ class AssetGenerator extends Generator {
401
419
  }
402
420
 
403
421
  /**
422
+ * Returns the reason this module cannot be concatenated, when one exists.
404
423
  * @param {NormalModule} module module for which the bailout reason should be determined
405
424
  * @param {ConcatenationBailoutReasonContext} context context
406
425
  * @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
@@ -410,6 +429,7 @@ class AssetGenerator extends Generator {
410
429
  }
411
430
 
412
431
  /**
432
+ * Returns mime type.
413
433
  * @param {NormalModule} module module
414
434
  * @returns {string} mime type
415
435
  */
@@ -420,7 +440,7 @@ class AssetGenerator extends Generator {
420
440
  );
421
441
  }
422
442
 
423
- /** @type {string | boolean | undefined} */
443
+ /** @type {string | undefined} */
424
444
  let mimeType =
425
445
  /** @type {AssetGeneratorDataUrlOptions} */
426
446
  (this.dataUrlOptions).mimetype;
@@ -462,6 +482,7 @@ class AssetGenerator extends Generator {
462
482
  }
463
483
 
464
484
  /**
485
+ * Generates data uri.
465
486
  * @param {NormalModule} module module for which the code should be generated
466
487
  * @returns {string} DataURI
467
488
  */
@@ -522,6 +543,7 @@ class AssetGenerator extends Generator {
522
543
  }
523
544
 
524
545
  /**
546
+ * Generates generated code for this runtime module.
525
547
  * @param {NormalModule} module module for which the code should be generated
526
548
  * @param {GenerateContext} generateContext context for generate
527
549
  * @returns {Source | null} generated code
@@ -553,7 +575,7 @@ class AssetGenerator extends Generator {
553
575
  : encodedSource;
554
576
 
555
577
  if (data) {
556
- data.set("url", { [type]: content, ...data.get("url") });
578
+ data.set("url", { ...data.get("url"), [type]: content });
557
579
  }
558
580
  } else {
559
581
  const [fullContentHash, contentHash] = AssetGenerator.getFullContentHash(
@@ -592,7 +614,7 @@ class AssetGenerator extends Generator {
592
614
  );
593
615
 
594
616
  if (data && (type === JAVASCRIPT_TYPE || type === CSS_URL_TYPE)) {
595
- data.set("url", { [type]: assetPath, ...data.get("url") });
617
+ data.set("url", { ...data.get("url"), [type]: assetPath });
596
618
  }
597
619
 
598
620
  if (data) {
@@ -643,6 +665,7 @@ class AssetGenerator extends Generator {
643
665
  }
644
666
 
645
667
  /**
668
+ * Generates fallback output for the provided error condition.
646
669
  * @param {Error} error the error
647
670
  * @param {NormalModule} module module for which the code should be generated
648
671
  * @param {GenerateContext} generateContext context for generate
@@ -664,6 +687,7 @@ class AssetGenerator extends Generator {
664
687
  }
665
688
 
666
689
  /**
690
+ * Returns the source types available for this module.
667
691
  * @param {NormalModule} module fresh module
668
692
  * @returns {SourceTypes} available types (do not mutate)
669
693
  */
@@ -682,9 +706,12 @@ class AssetGenerator extends Generator {
682
706
 
683
707
  if ((module.buildInfo && module.buildInfo.dataUrl) || this.emit === false) {
684
708
  if (sourceTypes.size > 0) {
685
- if (sourceTypes.has(JAVASCRIPT_TYPE) && sourceTypes.has(CSS_TYPE)) {
709
+ if (
710
+ sourceTypes.has(JAVASCRIPT_TYPE) &&
711
+ (sourceTypes.has(CSS_TYPE) || sourceTypes.has(HTML_TYPE))
712
+ ) {
686
713
  return JAVASCRIPT_AND_CSS_URL_TYPES;
687
- } else if (sourceTypes.has(CSS_TYPE)) {
714
+ } else if (sourceTypes.has(CSS_TYPE) || sourceTypes.has(HTML_TYPE)) {
688
715
  return CSS_URL_TYPES;
689
716
  }
690
717
  return JAVASCRIPT_TYPES;
@@ -694,9 +721,12 @@ class AssetGenerator extends Generator {
694
721
  }
695
722
 
696
723
  if (sourceTypes.size > 0) {
697
- if (sourceTypes.has(JAVASCRIPT_TYPE) && sourceTypes.has(CSS_TYPE)) {
724
+ if (
725
+ sourceTypes.has(JAVASCRIPT_TYPE) &&
726
+ (sourceTypes.has(CSS_TYPE) || sourceTypes.has(HTML_TYPE))
727
+ ) {
698
728
  return ASSET_AND_JAVASCRIPT_AND_CSS_URL_TYPES;
699
- } else if (sourceTypes.has(CSS_TYPE)) {
729
+ } else if (sourceTypes.has(CSS_TYPE) || sourceTypes.has(HTML_TYPE)) {
700
730
  return ASSET_AND_CSS_URL_TYPES;
701
731
  }
702
732
  return ASSET_AND_JAVASCRIPT_TYPES;
@@ -706,6 +736,7 @@ class AssetGenerator extends Generator {
706
736
  }
707
737
 
708
738
  /**
739
+ * Returns the estimated size for the requested source type.
709
740
  * @param {NormalModule} module the module
710
741
  * @param {SourceType=} type source type
711
742
  * @returns {number} estimate size of the module
@@ -742,6 +773,7 @@ class AssetGenerator extends Generator {
742
773
  }
743
774
 
744
775
  /**
776
+ * Updates the hash with the data contributed by this instance.
745
777
  * @param {Hash} hash hash that will be modified
746
778
  * @param {UpdateHashContext} updateHashContext context for updating hash
747
779
  */
@@ -29,11 +29,14 @@ const memoize = require("../util/memoize");
29
29
  /** @typedef {import("../NormalModule").NormalModuleCreateData} NormalModuleCreateData */
30
30
 
31
31
  /**
32
+ * Returns definition.
32
33
  * @param {string} name name of definitions
33
34
  * @returns {Schema} definition
34
35
  */
35
36
  const getSchema = (name) => {
36
- const { definitions } = require("../../schemas/WebpackOptions.json");
37
+ const { definitions } =
38
+ /** @type {EXPECTED_ANY} */
39
+ (require("../../schemas/WebpackOptions.json"));
37
40
 
38
41
  return {
39
42
  definitions,
@@ -60,12 +63,14 @@ const type = ASSET_MODULE_TYPE;
60
63
  const PLUGIN_NAME = "AssetModulesPlugin";
61
64
 
62
65
  /**
66
+ * Represents the asset modules plugin runtime component.
63
67
  * @typedef {object} AssetModulesPluginOptions
64
68
  * @property {boolean=} sideEffectFree
65
69
  */
66
70
 
67
71
  class AssetModulesPlugin {
68
72
  /**
73
+ * Creates an instance of AssetModulesPlugin.
69
74
  * @param {AssetModulesPluginOptions} options options
70
75
  */
71
76
  constructor(options) {
@@ -73,7 +78,7 @@ class AssetModulesPlugin {
73
78
  }
74
79
 
75
80
  /**
76
- * Apply the plugin
81
+ * Applies the plugin by registering its hooks on the compiler.
77
82
  * @param {Compiler} compiler the compiler instance
78
83
  * @returns {void}
79
84
  */
@@ -19,6 +19,7 @@ const Parser = require("../Parser");
19
19
 
20
20
  class AssetParser extends Parser {
21
21
  /**
22
+ * Creates an instance of AssetParser.
22
23
  * @param {AssetParserOptions["dataUrlCondition"] | boolean} dataUrlCondition condition for inlining as DataUrl
23
24
  */
24
25
  constructor(dataUrlCondition) {
@@ -28,6 +29,7 @@ class AssetParser extends Parser {
28
29
  }
29
30
 
30
31
  /**
32
+ * Parses the provided source and updates the parser state.
31
33
  * @param {string | Buffer | PreparsedAst} source the source to parse
32
34
  * @param {ParserState} state the parser state
33
35
  * @returns {ParserState} the parser state
@@ -12,6 +12,7 @@ const {
12
12
  CSS_TYPE,
13
13
  CSS_URL_TYPE,
14
14
  CSS_URL_TYPES,
15
+ HTML_TYPE,
15
16
  JAVASCRIPT_AND_CSS_URL_TYPES,
16
17
  JAVASCRIPT_TYPE,
17
18
  JAVASCRIPT_TYPES,
@@ -29,6 +30,7 @@ const RuntimeGlobals = require("../RuntimeGlobals");
29
30
 
30
31
  class AssetSourceGenerator extends Generator {
31
32
  /**
33
+ * Creates an instance of AssetSourceGenerator.
32
34
  * @param {ModuleGraph} moduleGraph the module graph
33
35
  */
34
36
  constructor(moduleGraph) {
@@ -38,6 +40,7 @@ class AssetSourceGenerator extends Generator {
38
40
  }
39
41
 
40
42
  /**
43
+ * Generates generated code for this runtime module.
41
44
  * @param {NormalModule} module module for which the code should be generated
42
45
  * @param {GenerateContext} generateContext context for generate
43
46
  * @returns {Source | null} generated code
@@ -96,6 +99,7 @@ class AssetSourceGenerator extends Generator {
96
99
  }
97
100
 
98
101
  /**
102
+ * Generates fallback output for the provided error condition.
99
103
  * @param {Error} error the error
100
104
  * @param {NormalModule} module module for which the code should be generated
101
105
  * @param {GenerateContext} generateContext context for generate
@@ -114,6 +118,7 @@ class AssetSourceGenerator extends Generator {
114
118
  }
115
119
 
116
120
  /**
121
+ * Returns the reason this module cannot be concatenated, when one exists.
117
122
  * @param {NormalModule} module module for which the bailout reason should be determined
118
123
  * @param {ConcatenationBailoutReasonContext} context context
119
124
  * @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
@@ -123,6 +128,7 @@ class AssetSourceGenerator extends Generator {
123
128
  }
124
129
 
125
130
  /**
131
+ * Returns the source types available for this module.
126
132
  * @param {NormalModule} module fresh module
127
133
  * @returns {SourceTypes} available types (do not mutate)
128
134
  */
@@ -140,9 +146,12 @@ class AssetSourceGenerator extends Generator {
140
146
  }
141
147
 
142
148
  if (sourceTypes.size > 0) {
143
- if (sourceTypes.has(JAVASCRIPT_TYPE) && sourceTypes.has(CSS_TYPE)) {
149
+ if (
150
+ sourceTypes.has(JAVASCRIPT_TYPE) &&
151
+ (sourceTypes.has(CSS_TYPE) || sourceTypes.has(HTML_TYPE))
152
+ ) {
144
153
  return JAVASCRIPT_AND_CSS_URL_TYPES;
145
- } else if (sourceTypes.has(CSS_TYPE)) {
154
+ } else if (sourceTypes.has(CSS_TYPE) || sourceTypes.has(HTML_TYPE)) {
146
155
  return CSS_URL_TYPES;
147
156
  }
148
157
  return JAVASCRIPT_TYPES;
@@ -152,6 +161,7 @@ class AssetSourceGenerator extends Generator {
152
161
  }
153
162
 
154
163
  /**
164
+ * Returns the estimated size for the requested source type.
155
165
  * @param {NormalModule} module the module
156
166
  * @param {SourceType=} type source type
157
167
  * @returns {number} estimate size of the module
@@ -14,6 +14,7 @@ const Parser = require("../Parser");
14
14
 
15
15
  class AssetSourceParser extends Parser {
16
16
  /**
17
+ * Parses the provided source and updates the parser state.
17
18
  * @param {string | Buffer | PreparsedAst} source the source to parse
18
19
  * @param {ParserState} state the parser state
19
20
  * @returns {ParserState} the parser state
@@ -36,6 +36,7 @@ const makeSerializable = require("../util/makeSerializable");
36
36
 
37
37
  class RawDataUrlModule extends Module {
38
38
  /**
39
+ * Creates an instance of RawDataUrlModule.
39
40
  * @param {string} url raw url
40
41
  * @param {string} identifier unique identifier
41
42
  * @param {string=} readableIdentifier readable identifier
@@ -53,6 +54,7 @@ class RawDataUrlModule extends Module {
53
54
  }
54
55
 
55
56
  /**
57
+ * Returns the source types this module can generate.
56
58
  * @returns {SourceTypes} types available (do not mutate)
57
59
  */
58
60
  getSourceTypes() {
@@ -60,6 +62,7 @@ class RawDataUrlModule extends Module {
60
62
  }
61
63
 
62
64
  /**
65
+ * Returns the unique identifier used to reference this module.
63
66
  * @returns {string} a unique identifier of the module
64
67
  */
65
68
  identifier() {
@@ -67,6 +70,7 @@ class RawDataUrlModule extends Module {
67
70
  }
68
71
 
69
72
  /**
73
+ * Returns the estimated size for the requested source type.
70
74
  * @param {string=} type the source type for which the size should be estimated
71
75
  * @returns {number} the estimated size of the module (must be non-zero)
72
76
  */
@@ -78,6 +82,7 @@ class RawDataUrlModule extends Module {
78
82
  }
79
83
 
80
84
  /**
85
+ * Returns a human-readable identifier for this module.
81
86
  * @param {RequestShortener} requestShortener the request shortener
82
87
  * @returns {string} a user readable identifier of the module
83
88
  */
@@ -88,6 +93,7 @@ class RawDataUrlModule extends Module {
88
93
  }
89
94
 
90
95
  /**
96
+ * Checks whether the module needs to be rebuilt for the current build state.
91
97
  * @param {NeedBuildContext} context context info
92
98
  * @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
93
99
  * @returns {void}
@@ -97,6 +103,7 @@ class RawDataUrlModule extends Module {
97
103
  }
98
104
 
99
105
  /**
106
+ * Builds the module using the provided compilation context.
100
107
  * @param {WebpackOptions} options webpack options
101
108
  * @param {Compilation} compilation the compilation
102
109
  * @param {ResolverWithOptions} resolver the resolver
@@ -113,6 +120,7 @@ class RawDataUrlModule extends Module {
113
120
  }
114
121
 
115
122
  /**
123
+ * Generates code and runtime requirements for this module.
116
124
  * @param {CodeGenerationContext} context context for code generation
117
125
  * @returns {CodeGenerationResult} result
118
126
  */
@@ -138,6 +146,7 @@ class RawDataUrlModule extends Module {
138
146
  }
139
147
 
140
148
  /**
149
+ * Updates the hash with the data contributed by this instance.
141
150
  * @param {Hash} hash the hash used to track dependencies
142
151
  * @param {UpdateHashContext} context context
143
152
  * @returns {void}
@@ -148,6 +157,7 @@ class RawDataUrlModule extends Module {
148
157
  }
149
158
 
150
159
  /**
160
+ * Serializes this instance into the provided serializer context.
151
161
  * @param {ObjectSerializerContext} context context
152
162
  */
153
163
  serialize(context) {
@@ -161,6 +171,7 @@ class RawDataUrlModule extends Module {
161
171
  }
162
172
 
163
173
  /**
174
+ * Restores this instance from the provided deserializer context.
164
175
  * @param {ObjectDeserializerContext} context context
165
176
  */
166
177
  deserialize(context) {
@@ -13,6 +13,7 @@ const HarmonyImportDependency = require("../dependencies/HarmonyImportDependency
13
13
  /** @typedef {Set<Module>} Modules */
14
14
 
15
15
  /**
16
+ * Gets outgoing async modules.
16
17
  * @param {ModuleGraph} moduleGraph module graph
17
18
  * @param {Module} module module
18
19
  * @returns {Modules} set of modules
@@ -15,10 +15,12 @@ const Template = require("../Template");
15
15
  /** @typedef {Map<string, string>} Dependencies */
16
16
 
17
17
  /**
18
+ * Represents AwaitDependenciesInitFragment.
18
19
  * @extends {InitFragment<GenerateContext>}
19
20
  */
20
21
  class AwaitDependenciesInitFragment extends InitFragment {
21
22
  /**
23
+ * Creates an instance of AwaitDependenciesInitFragment.
22
24
  * @param {Dependencies} dependencies maps an import var to an async module that needs to be awaited
23
25
  */
24
26
  constructor(dependencies) {
@@ -33,6 +35,7 @@ class AwaitDependenciesInitFragment extends InitFragment {
33
35
  }
34
36
 
35
37
  /**
38
+ * Merges another await-dependencies fragment into this fragment.
36
39
  * @param {AwaitDependenciesInitFragment} other other AwaitDependenciesInitFragment
37
40
  * @returns {AwaitDependenciesInitFragment} AwaitDependenciesInitFragment
38
41
  */
@@ -45,6 +48,7 @@ class AwaitDependenciesInitFragment extends InitFragment {
45
48
  }
46
49
 
47
50
  /**
51
+ * Returns the source code that will be included as initialization code.
48
52
  * @param {GenerateContext} context context
49
53
  * @returns {string | Source | undefined} the source code that will be included as initialization code
50
54
  */
@@ -14,7 +14,7 @@ const PLUGIN_NAME = "InferAsyncModulesPlugin";
14
14
 
15
15
  class InferAsyncModulesPlugin {
16
16
  /**
17
- * Apply the plugin
17
+ * Applies the plugin by registering its hooks on the compiler.
18
18
  * @param {Compiler} compiler the compiler instance
19
19
  * @returns {void}
20
20
  */
@@ -5,9 +5,8 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const AsyncDependencyToInitialChunkError = require("./AsyncDependencyToInitialChunkError");
9
- const { connectChunkGroupParentAndChild } = require("./GraphHelpers");
10
8
  const ModuleGraphConnection = require("./ModuleGraphConnection");
9
+ const AsyncDependencyToInitialChunkError = require("./errors/AsyncDependencyToInitialChunkError");
11
10
  const { getEntryRuntime, mergeRuntime } = require("./util/runtime");
12
11
 
13
12
  /** @typedef {import("./AsyncDependenciesBlock")} AsyncDependenciesBlock */
@@ -24,6 +23,7 @@ const { getEntryRuntime, mergeRuntime } = require("./util/runtime");
24
23
  /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
25
24
 
26
25
  /**
26
+ * Defines the queue item type used by this module.
27
27
  * @typedef {object} QueueItem
28
28
  * @property {number} action
29
29
  * @property {DependenciesBlock} block
@@ -34,6 +34,7 @@ const { getEntryRuntime, mergeRuntime } = require("./util/runtime");
34
34
  */
35
35
 
36
36
  /**
37
+ * Defines the chunk group info type used by this module.
37
38
  * @typedef {object} ChunkGroupInfo
38
39
  * @property {ChunkGroup} chunkGroup the chunk group
39
40
  * @property {RuntimeSpec} runtime the runtimes
@@ -55,6 +56,7 @@ const { getEntryRuntime, mergeRuntime } = require("./util/runtime");
55
56
  */
56
57
 
57
58
  /**
59
+ * Defines the block chunk group connection type used by this module.
58
60
  * @typedef {object} BlockChunkGroupConnection
59
61
  * @property {ChunkGroupInfo} originChunkGroupInfo origin chunk group
60
62
  * @property {ChunkGroup} chunkGroup referenced chunk group
@@ -74,6 +76,7 @@ const ZERO_BIGINT = BigInt(0);
74
76
  const ONE_BIGINT = BigInt(1);
75
77
 
76
78
  /**
79
+ * Checks whether this object is ordinal set in mask.
77
80
  * @param {bigint} mask The mask to test
78
81
  * @param {number} ordinal The ordinal of the bit to test
79
82
  * @returns {boolean} If the ordinal-th bit is set in the mask
@@ -82,6 +85,7 @@ const isOrdinalSetInMask = (mask, ordinal) =>
82
85
  BigInt.asUintN(1, mask >> BigInt(ordinal)) !== ZERO_BIGINT;
83
86
 
84
87
  /**
88
+ * Gets active state of connections.
85
89
  * @param {ModuleGraphConnection[]} connections list of connections
86
90
  * @param {RuntimeSpec} runtime for which runtime
87
91
  * @returns {ConnectionState} connection state
@@ -101,6 +105,7 @@ const getActiveStateOfConnections = (connections, runtime) => {
101
105
  };
102
106
 
103
107
  /**
108
+ * Extract block modules.
104
109
  * @param {Module} module module
105
110
  * @param {ModuleGraph} moduleGraph module graph
106
111
  * @param {RuntimeSpec} runtime runtime
@@ -237,6 +242,7 @@ const extractBlockModules = (module, moduleGraph, runtime, blockModulesMap) => {
237
242
  };
238
243
 
239
244
  /**
245
+ * Processes the provided logger.
240
246
  * @param {Logger} logger a logger
241
247
  * @param {Compilation} compilation the compilation
242
248
  * @param {InputEntrypointsAndModules} inputEntrypointsAndModules chunk groups which are processed with the modules
@@ -268,6 +274,7 @@ const visitModules = (
268
274
  const ordinalByModule = new Map();
269
275
 
270
276
  /**
277
+ * Gets module ordinal.
271
278
  * @param {Module} module The module to look up
272
279
  * @returns {number} The ordinal of the module in masks
273
280
  */
@@ -289,6 +296,7 @@ const visitModules = (
289
296
  }
290
297
 
291
298
  /**
299
+ * Gets block modules.
292
300
  * @param {DependenciesBlock} block block
293
301
  * @param {RuntimeSpec} runtime runtime
294
302
  * @returns {BlockModulesInFlattenTuples | undefined} block modules in flatten tuples
@@ -493,6 +501,7 @@ const visitModules = (
493
501
 
494
502
  // For each async Block in graph
495
503
  /**
504
+ * Processes the provided b.
496
505
  * @param {AsyncDependenciesBlock} b iterating over each Async DepBlock
497
506
  * @returns {void}
498
507
  */
@@ -699,6 +708,7 @@ const visitModules = (
699
708
  };
700
709
 
701
710
  /**
711
+ * Processes the provided block.
702
712
  * @param {DependenciesBlock} block the block
703
713
  * @returns {void}
704
714
  */
@@ -791,6 +801,7 @@ const visitModules = (
791
801
  };
792
802
 
793
803
  /**
804
+ * Process entry block.
794
805
  * @param {DependenciesBlock} block the block
795
806
  * @returns {void}
796
807
  */
@@ -918,6 +929,7 @@ const visitModules = (
918
929
  };
919
930
 
920
931
  /**
932
+ * Calculate resulting available modules.
921
933
  * @param {ChunkGroupInfo} chunkGroupInfo The info object for the chunk group
922
934
  * @returns {bigint} The mask of available modules after the chunk group
923
935
  */
@@ -1193,6 +1205,7 @@ const visitModules = (
1193
1205
  let preOrderIndex = 0;
1194
1206
  let postOrderIndex = 0;
1195
1207
  /**
1208
+ * Processes the provided current.
1196
1209
  * @param {DependenciesBlock} current current
1197
1210
  * @param {BlocksWithNestedBlocks} visited visited dependencies blocks
1198
1211
  */
@@ -1240,6 +1253,7 @@ const visitModules = (
1240
1253
  };
1241
1254
 
1242
1255
  /**
1256
+ * Connects chunk groups.
1243
1257
  * @param {Compilation} compilation the compilation
1244
1258
  * @param {BlocksWithNestedBlocks} blocksWithNestedBlocks flag for blocks that have nested blocks
1245
1259
  * @param {BlockConnections} blockConnections connection for blocks
@@ -1296,10 +1310,9 @@ const connectChunkGroups = (
1296
1310
  chunkGraph.connectBlockAndChunkGroup(block, chunkGroup);
1297
1311
 
1298
1312
  // 4. Connect chunk with parent
1299
- connectChunkGroupParentAndChild(
1300
- originChunkGroupInfo.chunkGroup,
1301
- chunkGroup
1302
- );
1313
+ if (originChunkGroupInfo.chunkGroup.addChild(chunkGroup)) {
1314
+ chunkGroup.addParent(originChunkGroupInfo.chunkGroup);
1315
+ }
1303
1316
  }
1304
1317
  }
1305
1318
  };
@@ -11,6 +11,7 @@ const PLUGIN_NAME = "AddBuildDependenciesPlugin";
11
11
 
12
12
  class AddBuildDependenciesPlugin {
13
13
  /**
14
+ * Creates an instance of AddBuildDependenciesPlugin.
14
15
  * @param {Iterable<string>} buildDependencies list of build dependencies
15
16
  */
16
17
  constructor(buildDependencies) {
@@ -18,7 +19,7 @@ class AddBuildDependenciesPlugin {
18
19
  }
19
20
 
20
21
  /**
21
- * Apply the plugin
22
+ * Applies the plugin by registering its hooks on the compiler.
22
23
  * @param {Compiler} compiler the compiler instance
23
24
  * @returns {void}
24
25
  */
@@ -9,6 +9,7 @@
9
9
 
10
10
  class AddManagedPathsPlugin {
11
11
  /**
12
+ * Creates an instance of AddManagedPathsPlugin.
12
13
  * @param {Iterable<string | RegExp>} managedPaths list of managed paths
13
14
  * @param {Iterable<string | RegExp>} immutablePaths list of immutable paths
14
15
  * @param {Iterable<string | RegExp>} unmanagedPaths list of unmanaged paths
@@ -20,7 +21,7 @@ class AddManagedPathsPlugin {
20
21
  }
21
22
 
22
23
  /**
23
- * Apply the plugin
24
+ * Applies the plugin by registering its hooks on the compiler.
24
25
  * @param {Compiler} compiler the compiler instance
25
26
  * @returns {void}
26
27
  */
@@ -16,6 +16,7 @@ const PLUGIN_NAME = "IdleFileCachePlugin";
16
16
 
17
17
  class IdleFileCachePlugin {
18
18
  /**
19
+ * Creates an instance of IdleFileCachePlugin.
19
20
  * @param {PackFileCacheStrategy} strategy cache strategy
20
21
  * @param {number} idleTimeout timeout
21
22
  * @param {number} idleTimeoutForInitialStore initial timeout
@@ -34,7 +35,7 @@ class IdleFileCachePlugin {
34
35
  }
35
36
 
36
37
  /**
37
- * Apply the plugin
38
+ * Applies the plugin by registering its hooks on the compiler.
38
39
  * @param {Compiler} compiler the compiler instance
39
40
  * @returns {void}
40
41
  */