webpack 5.97.1 → 5.104.1

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 (610) hide show
  1. package/README.md +368 -434
  2. package/bin/webpack.js +15 -9
  3. package/hot/dev-server.js +18 -3
  4. package/hot/emitter-event-target.js +7 -0
  5. package/hot/lazy-compilation-node.js +45 -29
  6. package/hot/lazy-compilation-universal.js +18 -0
  7. package/hot/lazy-compilation-web.js +15 -5
  8. package/hot/load-http.js +7 -0
  9. package/hot/log.js +15 -15
  10. package/hot/only-dev-server.js +19 -4
  11. package/hot/poll.js +1 -0
  12. package/lib/APIPlugin.js +48 -50
  13. package/lib/AbstractMethodError.js +1 -0
  14. package/lib/AsyncDependenciesBlock.js +4 -5
  15. package/lib/AutomaticPrefetchPlugin.js +22 -22
  16. package/lib/BannerPlugin.js +35 -40
  17. package/lib/Cache.js +12 -9
  18. package/lib/CacheFacade.js +13 -13
  19. package/lib/CaseSensitiveModulesWarning.js +6 -6
  20. package/lib/Chunk.js +68 -47
  21. package/lib/ChunkGraph.js +174 -95
  22. package/lib/ChunkGroup.js +32 -24
  23. package/lib/ChunkTemplate.js +8 -8
  24. package/lib/CleanPlugin.js +90 -42
  25. package/lib/CodeGenerationResults.js +12 -9
  26. package/lib/CompatibilityPlugin.js +70 -21
  27. package/lib/Compilation.js +827 -550
  28. package/lib/Compiler.js +137 -109
  29. package/lib/ConcatenationScope.js +45 -8
  30. package/lib/ConditionalInitFragment.js +1 -1
  31. package/lib/ConstPlugin.js +89 -59
  32. package/lib/ContextExclusionPlugin.js +5 -4
  33. package/lib/ContextModule.js +66 -51
  34. package/lib/ContextModuleFactory.js +51 -30
  35. package/lib/ContextReplacementPlugin.js +89 -34
  36. package/lib/CssModule.js +8 -4
  37. package/lib/DefinePlugin.js +209 -57
  38. package/lib/DelegatedModule.js +34 -23
  39. package/lib/DelegatedModuleFactoryPlugin.js +27 -24
  40. package/lib/DelegatedPlugin.js +4 -2
  41. package/lib/DependenciesBlock.js +0 -2
  42. package/lib/Dependency.js +37 -19
  43. package/lib/DependencyTemplate.js +2 -0
  44. package/lib/DependencyTemplates.js +5 -6
  45. package/lib/DllEntryPlugin.js +8 -4
  46. package/lib/DllModule.js +11 -12
  47. package/lib/DllModuleFactory.js +2 -2
  48. package/lib/DllPlugin.js +9 -6
  49. package/lib/DllReferencePlugin.js +60 -65
  50. package/lib/DotenvPlugin.js +462 -0
  51. package/lib/DynamicEntryPlugin.js +8 -8
  52. package/lib/EntryOptionPlugin.js +8 -6
  53. package/lib/EntryPlugin.js +5 -3
  54. package/lib/Entrypoint.js +19 -0
  55. package/lib/EnvironmentNotSupportAsyncWarning.js +0 -3
  56. package/lib/EnvironmentPlugin.js +26 -19
  57. package/lib/ErrorHelpers.js +6 -6
  58. package/lib/EvalDevToolModulePlugin.js +17 -14
  59. package/lib/EvalSourceMapDevToolPlugin.js +156 -142
  60. package/lib/ExportsInfo.js +180 -115
  61. package/lib/ExportsInfoApiPlugin.js +2 -2
  62. package/lib/ExternalModule.js +256 -102
  63. package/lib/ExternalModuleFactoryPlugin.js +66 -29
  64. package/lib/ExternalsPlugin.js +57 -2
  65. package/lib/FileSystemInfo.js +313 -247
  66. package/lib/FlagAllModulesAsUsedPlugin.js +2 -2
  67. package/lib/FlagDependencyExportsPlugin.js +29 -19
  68. package/lib/FlagDependencyUsagePlugin.js +9 -10
  69. package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
  70. package/lib/Generator.js +43 -10
  71. package/lib/GraphHelpers.js +11 -3
  72. package/lib/HookWebpackError.js +35 -7
  73. package/lib/HotModuleReplacementPlugin.js +149 -108
  74. package/lib/HotUpdateChunk.js +0 -3
  75. package/lib/IgnoreErrorModuleFactory.js +2 -2
  76. package/lib/IgnorePlugin.js +16 -13
  77. package/lib/IgnoreWarningsPlugin.js +6 -4
  78. package/lib/InitFragment.js +41 -23
  79. package/lib/InvalidDependenciesModuleWarning.js +2 -3
  80. package/lib/JavascriptMetaInfoPlugin.js +2 -4
  81. package/lib/LibManifestPlugin.js +12 -13
  82. package/lib/LoaderOptionsPlugin.js +12 -14
  83. package/lib/LoaderTargetPlugin.js +5 -3
  84. package/lib/MainTemplate.js +18 -29
  85. package/lib/ManifestPlugin.js +235 -0
  86. package/lib/Module.js +138 -60
  87. package/lib/ModuleBuildError.js +4 -2
  88. package/lib/ModuleDependencyError.js +4 -3
  89. package/lib/ModuleDependencyWarning.js +4 -3
  90. package/lib/ModuleError.js +1 -1
  91. package/lib/ModuleFactory.js +10 -3
  92. package/lib/ModuleFilenameHelpers.js +63 -60
  93. package/lib/ModuleGraph.js +195 -70
  94. package/lib/ModuleGraphConnection.js +14 -20
  95. package/lib/ModuleInfoHeaderPlugin.js +15 -16
  96. package/lib/ModuleNotFoundError.js +1 -1
  97. package/lib/ModuleParseError.js +8 -4
  98. package/lib/ModuleSourceTypeConstants.js +189 -0
  99. package/lib/ModuleTemplate.js +7 -8
  100. package/lib/ModuleTypeConstants.js +37 -15
  101. package/lib/ModuleWarning.js +1 -1
  102. package/lib/MultiCompiler.js +64 -49
  103. package/lib/MultiStats.js +19 -14
  104. package/lib/MultiWatching.js +7 -11
  105. package/lib/NoEmitOnErrorsPlugin.js +5 -3
  106. package/lib/NodeStuffPlugin.js +438 -126
  107. package/lib/NormalModule.js +322 -201
  108. package/lib/NormalModuleFactory.js +230 -117
  109. package/lib/NormalModuleReplacementPlugin.js +37 -39
  110. package/lib/NullFactory.js +3 -2
  111. package/lib/OptimizationStages.js +1 -1
  112. package/lib/OptionsApply.js +1 -1
  113. package/lib/Parser.js +5 -3
  114. package/lib/PlatformPlugin.js +3 -1
  115. package/lib/PrefetchPlugin.js +6 -4
  116. package/lib/ProgressPlugin.js +48 -49
  117. package/lib/ProvidePlugin.js +7 -5
  118. package/lib/RawModule.js +26 -12
  119. package/lib/RecordIdsPlugin.js +88 -110
  120. package/lib/RequestShortener.js +3 -1
  121. package/lib/ResolverFactory.js +15 -14
  122. package/lib/RuntimeGlobals.js +216 -153
  123. package/lib/RuntimeModule.js +7 -6
  124. package/lib/RuntimePlugin.js +115 -62
  125. package/lib/RuntimeTemplate.js +248 -76
  126. package/lib/SelfModuleFactory.js +2 -2
  127. package/lib/SizeFormatHelpers.js +2 -2
  128. package/lib/SourceMapDevToolModuleOptionsPlugin.js +17 -27
  129. package/lib/SourceMapDevToolPlugin.js +72 -59
  130. package/lib/Stats.js +2 -3
  131. package/lib/Template.js +31 -24
  132. package/lib/TemplatedPathPlugin.js +24 -21
  133. package/lib/UseStrictPlugin.js +1 -1
  134. package/lib/WarnCaseSensitiveModulesPlugin.js +36 -37
  135. package/lib/WarnDeprecatedOptionPlugin.js +7 -8
  136. package/lib/WarnNoModeSetPlugin.js +3 -1
  137. package/lib/WatchIgnorePlugin.js +11 -9
  138. package/lib/Watching.js +27 -29
  139. package/lib/WebpackError.js +10 -3
  140. package/lib/WebpackIsIncludedPlugin.js +4 -5
  141. package/lib/WebpackOptionsApply.js +263 -135
  142. package/lib/asset/AssetBytesGenerator.js +171 -0
  143. package/lib/asset/AssetBytesParser.js +37 -0
  144. package/lib/asset/AssetGenerator.js +285 -223
  145. package/lib/asset/AssetModulesPlugin.js +103 -41
  146. package/lib/asset/AssetParser.js +7 -3
  147. package/lib/asset/AssetSourceGenerator.js +41 -17
  148. package/lib/asset/RawDataUrlModule.js +17 -9
  149. package/lib/async-modules/AsyncModuleHelpers.js +52 -0
  150. package/lib/async-modules/AwaitDependenciesInitFragment.js +39 -24
  151. package/lib/async-modules/InferAsyncModulesPlugin.js +25 -26
  152. package/lib/buildChunkGraph.js +36 -17
  153. package/lib/cache/AddBuildDependenciesPlugin.js +5 -6
  154. package/lib/cache/IdleFileCachePlugin.js +22 -20
  155. package/lib/cache/MemoryCachePlugin.js +3 -3
  156. package/lib/cache/MemoryWithGcCachePlugin.js +17 -11
  157. package/lib/cache/PackFileCacheStrategy.js +198 -170
  158. package/lib/cache/ResolverCachePlugin.js +58 -48
  159. package/lib/cache/getLazyHashedEtag.js +5 -4
  160. package/lib/cli.js +197 -39
  161. package/lib/config/browserslistTargetHandler.js +110 -85
  162. package/lib/config/defaults.js +514 -113
  163. package/lib/config/normalization.js +91 -64
  164. package/lib/config/target.js +30 -18
  165. package/lib/container/ContainerEntryDependency.js +0 -1
  166. package/lib/container/ContainerEntryModule.js +16 -15
  167. package/lib/container/ContainerEntryModuleFactory.js +2 -2
  168. package/lib/container/ContainerPlugin.js +5 -6
  169. package/lib/container/ContainerReferencePlugin.js +27 -30
  170. package/lib/container/FallbackDependency.js +2 -1
  171. package/lib/container/FallbackModule.js +19 -14
  172. package/lib/container/FallbackModuleFactory.js +2 -2
  173. package/lib/container/HoistContainerReferencesPlugin.js +7 -7
  174. package/lib/container/ModuleFederationPlugin.js +4 -4
  175. package/lib/container/RemoteModule.js +14 -14
  176. package/lib/container/RemoteRuntimeModule.js +2 -2
  177. package/lib/container/options.js +9 -9
  178. package/lib/css/CssGenerator.js +366 -74
  179. package/lib/css/CssLoadingRuntimeModule.js +26 -16
  180. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +56 -0
  181. package/lib/css/CssModulesPlugin.js +191 -142
  182. package/lib/css/CssParser.js +1756 -740
  183. package/lib/css/walkCssTokens.js +180 -67
  184. package/lib/debug/ProfilingPlugin.js +135 -51
  185. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +29 -28
  186. package/lib/dependencies/AMDPlugin.js +18 -11
  187. package/lib/dependencies/AMDRequireArrayDependency.js +5 -4
  188. package/lib/dependencies/AMDRequireContextDependency.js +2 -1
  189. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +35 -26
  190. package/lib/dependencies/AMDRuntimeModules.js +3 -1
  191. package/lib/dependencies/CachedConstDependency.js +24 -18
  192. package/lib/dependencies/CommonJsExportRequireDependency.js +31 -24
  193. package/lib/dependencies/CommonJsExportsDependency.js +2 -1
  194. package/lib/dependencies/CommonJsExportsParserPlugin.js +50 -36
  195. package/lib/dependencies/CommonJsFullRequireDependency.js +7 -13
  196. package/lib/dependencies/CommonJsImportsParserPlugin.js +146 -127
  197. package/lib/dependencies/CommonJsPlugin.js +29 -18
  198. package/lib/dependencies/CommonJsRequireContextDependency.js +4 -3
  199. package/lib/dependencies/CommonJsSelfReferenceDependency.js +4 -4
  200. package/lib/dependencies/ConstDependency.js +2 -2
  201. package/lib/dependencies/ContextDependency.js +10 -5
  202. package/lib/dependencies/ContextDependencyHelpers.js +21 -13
  203. package/lib/dependencies/ContextDependencyTemplateAsId.js +10 -9
  204. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +13 -10
  205. package/lib/dependencies/ContextElementDependency.js +23 -12
  206. package/lib/dependencies/CssIcssExportDependency.js +402 -22
  207. package/lib/dependencies/CssIcssImportDependency.js +116 -51
  208. package/lib/dependencies/CssIcssSymbolDependency.js +33 -35
  209. package/lib/dependencies/CssImportDependency.js +17 -14
  210. package/lib/dependencies/CssUrlDependency.js +8 -13
  211. package/lib/dependencies/DynamicExports.js +19 -19
  212. package/lib/dependencies/ExportsInfoDependency.js +13 -10
  213. package/lib/dependencies/ExternalModuleDependency.js +7 -7
  214. package/lib/dependencies/ExternalModuleInitFragment.js +3 -2
  215. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +96 -0
  216. package/lib/dependencies/HarmonyAcceptDependency.js +96 -5
  217. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -5
  218. package/lib/dependencies/HarmonyCompatibilityDependency.js +0 -1
  219. package/lib/dependencies/HarmonyDetectionParserPlugin.js +10 -30
  220. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +19 -8
  221. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +136 -99
  222. package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
  223. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +152 -61
  224. package/lib/dependencies/HarmonyExportInitFragment.js +2 -2
  225. package/lib/dependencies/HarmonyExportSpecifierDependency.js +2 -2
  226. package/lib/dependencies/HarmonyExports.js +5 -5
  227. package/lib/dependencies/HarmonyImportDependency.js +92 -45
  228. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +201 -163
  229. package/lib/dependencies/HarmonyImportSideEffectDependency.js +5 -6
  230. package/lib/dependencies/HarmonyImportSpecifierDependency.js +69 -42
  231. package/lib/dependencies/HarmonyModulesPlugin.js +16 -11
  232. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -15
  233. package/lib/dependencies/ImportContextDependency.js +15 -1
  234. package/lib/dependencies/ImportDependency.js +25 -7
  235. package/lib/dependencies/ImportEagerDependency.js +7 -5
  236. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +23 -13
  237. package/lib/dependencies/ImportMetaContextPlugin.js +2 -2
  238. package/lib/dependencies/ImportMetaPlugin.js +172 -20
  239. package/lib/dependencies/ImportParserPlugin.js +327 -49
  240. package/lib/dependencies/ImportPhase.js +121 -0
  241. package/lib/dependencies/ImportPlugin.js +3 -1
  242. package/lib/dependencies/ImportWeakDependency.js +7 -5
  243. package/lib/dependencies/JsonExportsDependency.js +54 -28
  244. package/lib/dependencies/LoaderDependency.js +0 -3
  245. package/lib/dependencies/LoaderImportDependency.js +0 -3
  246. package/lib/dependencies/LoaderPlugin.js +24 -25
  247. package/lib/dependencies/LocalModulesHelpers.js +4 -4
  248. package/lib/dependencies/ModuleDecoratorDependency.js +2 -4
  249. package/lib/dependencies/ModuleDependency.js +14 -13
  250. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  251. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
  252. package/lib/dependencies/NullDependency.js +2 -0
  253. package/lib/dependencies/ProvidedDependency.js +8 -10
  254. package/lib/dependencies/PureExpressionDependency.js +1 -2
  255. package/lib/dependencies/RequireContextDependency.js +2 -1
  256. package/lib/dependencies/RequireContextDependencyParserPlugin.js +47 -44
  257. package/lib/dependencies/RequireContextPlugin.js +5 -2
  258. package/lib/dependencies/RequireEnsureDependenciesBlock.js +3 -3
  259. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +101 -99
  260. package/lib/dependencies/RequireEnsurePlugin.js +6 -6
  261. package/lib/dependencies/RequireIncludeDependency.js +2 -2
  262. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +33 -34
  263. package/lib/dependencies/RequireIncludePlugin.js +1 -0
  264. package/lib/dependencies/RequireResolveContextDependency.js +1 -1
  265. package/lib/dependencies/RequireResolveDependency.js +3 -3
  266. package/lib/dependencies/RuntimeRequirementsDependency.js +3 -4
  267. package/lib/dependencies/StaticExportsDependency.js +3 -5
  268. package/lib/dependencies/SystemPlugin.js +4 -4
  269. package/lib/dependencies/URLContextDependency.js +65 -0
  270. package/lib/dependencies/URLDependency.js +3 -8
  271. package/lib/dependencies/URLPlugin.js +18 -159
  272. package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -3
  273. package/lib/dependencies/WebAssemblyImportDependency.js +2 -2
  274. package/lib/dependencies/WebpackIsIncludedDependency.js +2 -3
  275. package/lib/dependencies/WorkerDependency.js +8 -6
  276. package/lib/dependencies/WorkerPlugin.js +131 -67
  277. package/lib/dependencies/getFunctionExpression.js +2 -2
  278. package/lib/dependencies/processExportInfo.js +4 -4
  279. package/lib/esm/ExportWebpackRequireRuntimeModule.js +1 -1
  280. package/lib/esm/ModuleChunkFormatPlugin.js +232 -179
  281. package/lib/esm/ModuleChunkLoadingPlugin.js +112 -57
  282. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +102 -28
  283. package/lib/formatLocation.js +2 -2
  284. package/lib/hmr/HotModuleReplacement.runtime.js +41 -29
  285. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
  286. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +43 -33
  287. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +37 -0
  288. package/lib/hmr/LazyCompilationPlugin.js +67 -54
  289. package/lib/hmr/lazyCompilationBackend.js +23 -18
  290. package/lib/ids/ChunkModuleIdRangePlugin.js +14 -11
  291. package/lib/ids/DeterministicChunkIdsPlugin.js +32 -37
  292. package/lib/ids/DeterministicModuleIdsPlugin.js +52 -52
  293. package/lib/ids/HashedModuleIdsPlugin.js +15 -13
  294. package/lib/ids/IdHelpers.js +66 -49
  295. package/lib/ids/NamedChunkIdsPlugin.js +14 -17
  296. package/lib/ids/NamedModuleIdsPlugin.js +12 -14
  297. package/lib/ids/NaturalChunkIdsPlugin.js +6 -4
  298. package/lib/ids/NaturalModuleIdsPlugin.js +4 -3
  299. package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -5
  300. package/lib/ids/OccurrenceModuleIdsPlugin.js +8 -7
  301. package/lib/ids/SyncModuleIdsPlugin.js +18 -13
  302. package/lib/index.js +54 -14
  303. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +116 -119
  304. package/lib/javascript/BasicEvaluatedExpression.js +26 -18
  305. package/lib/javascript/ChunkFormatHelpers.js +70 -0
  306. package/lib/javascript/ChunkHelpers.js +17 -5
  307. package/lib/javascript/CommonJsChunkFormatPlugin.js +114 -141
  308. package/lib/javascript/EnableChunkLoadingPlugin.js +7 -4
  309. package/lib/javascript/JavascriptGenerator.js +122 -100
  310. package/lib/javascript/JavascriptModulesPlugin.js +332 -152
  311. package/lib/javascript/JavascriptParser.js +1488 -1052
  312. package/lib/javascript/JavascriptParserHelpers.js +48 -47
  313. package/lib/javascript/StartupHelpers.js +23 -22
  314. package/lib/json/JsonData.js +4 -4
  315. package/lib/json/JsonGenerator.js +66 -32
  316. package/lib/json/JsonModulesPlugin.js +16 -6
  317. package/lib/json/JsonParser.js +23 -8
  318. package/lib/library/AbstractLibraryPlugin.js +45 -10
  319. package/lib/library/AmdLibraryPlugin.js +7 -5
  320. package/lib/library/AssignLibraryPlugin.js +71 -17
  321. package/lib/library/EnableLibraryPlugin.js +51 -25
  322. package/lib/library/ExportPropertyLibraryPlugin.js +12 -18
  323. package/lib/library/JsonpLibraryPlugin.js +5 -2
  324. package/lib/library/ModuleLibraryPlugin.js +230 -18
  325. package/lib/library/SystemLibraryPlugin.js +29 -11
  326. package/lib/library/UmdLibraryPlugin.js +35 -32
  327. package/lib/logging/Logger.js +18 -15
  328. package/lib/logging/createConsoleLogger.js +27 -27
  329. package/lib/logging/runtime.js +11 -11
  330. package/lib/logging/truncateArgs.js +5 -5
  331. package/lib/node/CommonJsChunkLoadingPlugin.js +72 -75
  332. package/lib/node/NodeEnvironmentPlugin.js +9 -3
  333. package/lib/node/NodeTargetPlugin.js +9 -1
  334. package/lib/node/NodeTemplatePlugin.js +2 -2
  335. package/lib/node/NodeWatchFileSystem.js +4 -4
  336. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +22 -38
  337. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +10 -11
  338. package/lib/node/ReadFileCompileWasmPlugin.js +11 -14
  339. package/lib/node/RequireChunkLoadingRuntimeModule.js +22 -30
  340. package/lib/node/nodeConsole.js +12 -7
  341. package/lib/optimize/AggressiveMergingPlugin.js +46 -47
  342. package/lib/optimize/AggressiveSplittingPlugin.js +233 -238
  343. package/lib/optimize/ConcatenatedModule.js +620 -251
  344. package/lib/optimize/EnsureChunkConditionsPlugin.js +58 -58
  345. package/lib/optimize/FlagIncludedChunksPlugin.js +93 -96
  346. package/lib/optimize/InnerGraph.js +139 -124
  347. package/lib/optimize/InnerGraphPlugin.js +29 -24
  348. package/lib/optimize/LimitChunkCountPlugin.js +32 -8
  349. package/lib/optimize/MangleExportsPlugin.js +22 -22
  350. package/lib/optimize/MergeDuplicateChunksPlugin.js +80 -81
  351. package/lib/optimize/MinChunkSizePlugin.js +12 -7
  352. package/lib/optimize/ModuleConcatenationPlugin.js +92 -71
  353. package/lib/optimize/RealContentHashPlugin.js +58 -44
  354. package/lib/optimize/RemoveEmptyChunksPlugin.js +8 -5
  355. package/lib/optimize/RemoveParentModulesPlugin.js +7 -4
  356. package/lib/optimize/RuntimeChunkPlugin.js +22 -25
  357. package/lib/optimize/SideEffectsFlagPlugin.js +44 -26
  358. package/lib/optimize/SplitChunksPlugin.js +209 -158
  359. package/lib/performance/AssetsOverSizeLimitWarning.js +1 -1
  360. package/lib/performance/EntrypointsOverSizeLimitWarning.js +2 -2
  361. package/lib/performance/SizeLimitsPlugin.js +8 -5
  362. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +5 -7
  363. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +61 -64
  364. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +3 -4
  365. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
  366. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
  367. package/lib/rules/BasicEffectRulePlugin.js +14 -5
  368. package/lib/rules/BasicMatcherRulePlugin.js +18 -7
  369. package/lib/rules/ObjectMatcherRulePlugin.js +17 -6
  370. package/lib/rules/RuleSetCompiler.js +73 -32
  371. package/lib/rules/UseEffectRulePlugin.js +61 -25
  372. package/lib/runtime/AsyncModuleRuntimeModule.js +74 -9
  373. package/lib/runtime/AutoPublicPathRuntimeModule.js +9 -4
  374. package/lib/runtime/BaseUriRuntimeModule.js +2 -2
  375. package/lib/runtime/CompatRuntimeModule.js +0 -1
  376. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -1
  377. package/lib/runtime/GetChunkFilenameRuntimeModule.js +34 -35
  378. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -1
  379. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -1
  380. package/lib/runtime/LoadScriptRuntimeModule.js +0 -2
  381. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +248 -0
  382. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  383. package/lib/runtime/RuntimeIdRuntimeModule.js +2 -1
  384. package/lib/runtime/StartupChunkDependenciesPlugin.js +39 -42
  385. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +10 -9
  386. package/lib/runtime/StartupEntrypointRuntimeModule.js +0 -1
  387. package/lib/runtime/SystemContextRuntimeModule.js +0 -2
  388. package/lib/runtime/ToBinaryRuntimeModule.js +64 -0
  389. package/lib/schemes/DataUriPlugin.js +9 -31
  390. package/lib/schemes/FileUriPlugin.js +11 -6
  391. package/lib/schemes/HttpUriPlugin.js +381 -261
  392. package/lib/schemes/VirtualUrlPlugin.js +222 -0
  393. package/lib/serialization/AggregateErrorSerializer.js +41 -0
  394. package/lib/serialization/BinaryMiddleware.js +51 -33
  395. package/lib/serialization/ErrorObjectSerializer.js +7 -2
  396. package/lib/serialization/FileMiddleware.js +101 -71
  397. package/lib/serialization/NullPrototypeObjectSerializer.js +5 -3
  398. package/lib/serialization/ObjectMiddleware.js +130 -54
  399. package/lib/serialization/PlainObjectSerializer.js +1 -1
  400. package/lib/serialization/Serializer.js +38 -20
  401. package/lib/serialization/SerializerMiddleware.js +121 -49
  402. package/lib/serialization/SingleItemMiddleware.js +9 -7
  403. package/lib/serialization/types.js +1 -1
  404. package/lib/sharing/ConsumeSharedModule.js +9 -9
  405. package/lib/sharing/ConsumeSharedPlugin.js +14 -14
  406. package/lib/sharing/ConsumeSharedRuntimeModule.js +11 -8
  407. package/lib/sharing/ProvideSharedModule.js +9 -11
  408. package/lib/sharing/ProvideSharedModuleFactory.js +5 -3
  409. package/lib/sharing/ProvideSharedPlugin.js +15 -10
  410. package/lib/sharing/SharePlugin.js +3 -4
  411. package/lib/sharing/ShareRuntimeModule.js +7 -6
  412. package/lib/sharing/resolveMatchedConfigs.js +27 -13
  413. package/lib/sharing/utils.js +37 -43
  414. package/lib/stats/DefaultStatsFactoryPlugin.js +455 -286
  415. package/lib/stats/DefaultStatsPresetPlugin.js +77 -46
  416. package/lib/stats/DefaultStatsPrinterPlugin.js +583 -419
  417. package/lib/stats/StatsFactory.js +75 -32
  418. package/lib/stats/StatsPrinter.js +71 -51
  419. package/lib/url/URLParserPlugin.js +264 -0
  420. package/lib/util/ArrayHelpers.js +6 -8
  421. package/lib/util/ArrayQueue.js +1 -1
  422. package/lib/util/AsyncQueue.js +11 -10
  423. package/lib/util/Hash.js +37 -5
  424. package/lib/util/IterableHelpers.js +4 -4
  425. package/lib/util/LazyBucketSortedSet.js +46 -27
  426. package/lib/util/LazySet.js +16 -10
  427. package/lib/util/MapHelpers.js +1 -1
  428. package/lib/util/ParallelismFactorCalculator.js +2 -2
  429. package/lib/util/Semaphore.js +3 -3
  430. package/lib/util/SetHelpers.js +6 -6
  431. package/lib/util/SortableSet.js +11 -9
  432. package/lib/util/StackedCacheMap.js +2 -2
  433. package/lib/util/StackedMap.js +3 -3
  434. package/lib/util/StringXor.js +2 -1
  435. package/lib/util/TupleQueue.js +11 -8
  436. package/lib/util/TupleSet.js +44 -19
  437. package/lib/util/URLAbsoluteSpecifier.js +3 -4
  438. package/lib/util/WeakTupleMap.js +56 -42
  439. package/lib/util/binarySearchBounds.js +4 -3
  440. package/lib/util/chainedImports.js +3 -1
  441. package/lib/util/cleverMerge.js +171 -107
  442. package/lib/util/comparators.js +265 -162
  443. package/lib/util/compileBooleanMatcher.js +120 -41
  444. package/lib/util/concatenate.js +20 -16
  445. package/lib/util/conventions.js +73 -74
  446. package/lib/util/create-schema-validation.js +8 -8
  447. package/lib/util/createHash.js +32 -135
  448. package/lib/util/dataURL.js +39 -0
  449. package/lib/util/deprecation.js +119 -116
  450. package/lib/util/deterministicGrouping.js +56 -47
  451. package/lib/util/extractSourceMap.js +319 -0
  452. package/lib/util/extractUrlAndGlobal.js +1 -1
  453. package/lib/util/findGraphRoots.js +19 -9
  454. package/lib/util/fs.js +169 -141
  455. package/lib/util/hash/BatchedHash.js +50 -10
  456. package/lib/util/hash/BulkUpdateHash.js +138 -0
  457. package/lib/util/hash/DebugHash.js +75 -0
  458. package/lib/util/hash/hash-digest.js +216 -0
  459. package/lib/util/hash/md4.js +2 -2
  460. package/lib/util/hash/wasm-hash.js +59 -17
  461. package/lib/util/identifier.js +124 -61
  462. package/lib/util/internalSerializables.js +4 -6
  463. package/lib/util/magicComment.js +9 -5
  464. package/lib/util/makeSerializable.js +2 -2
  465. package/lib/util/memoize.js +5 -2
  466. package/lib/util/objectToMap.js +3 -2
  467. package/lib/util/processAsyncTree.js +5 -5
  468. package/lib/util/propertyAccess.js +1 -1
  469. package/lib/util/propertyName.js +2 -3
  470. package/lib/util/registerExternalSerializer.js +16 -20
  471. package/lib/util/removeBOM.js +25 -0
  472. package/lib/util/runtime.js +72 -56
  473. package/lib/util/semver.js +44 -33
  474. package/lib/util/serialization.js +56 -56
  475. package/lib/util/smartGrouping.js +42 -27
  476. package/lib/util/source.js +5 -4
  477. package/lib/util/traverseDestructuringAssignmentProperties.js +45 -0
  478. package/lib/validateSchema.js +7 -9
  479. package/lib/wasm/EnableWasmLoadingPlugin.js +22 -12
  480. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +9 -5
  481. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +15 -3
  482. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +28 -22
  483. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +47 -57
  484. package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -10
  485. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +8 -4
  486. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +23 -17
  487. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +55 -57
  488. package/lib/wasm-sync/WebAssemblyGenerator.js +56 -41
  489. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +6 -3
  490. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +25 -10
  491. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +11 -12
  492. package/lib/wasm-sync/WebAssemblyParser.js +10 -17
  493. package/lib/wasm-sync/WebAssemblyUtils.js +1 -1
  494. package/lib/web/FetchCompileAsyncWasmPlugin.js +4 -4
  495. package/lib/web/FetchCompileWasmPlugin.js +6 -8
  496. package/lib/web/JsonpChunkLoadingPlugin.js +74 -74
  497. package/lib/web/JsonpChunkLoadingRuntimeModule.js +10 -26
  498. package/lib/web/JsonpTemplatePlugin.js +0 -1
  499. package/lib/webpack.js +107 -87
  500. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +79 -75
  501. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +38 -51
  502. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -0
  503. package/module.d.ts +5 -0
  504. package/package.json +149 -129
  505. package/schemas/WebpackOptions.check.d.ts +1 -1
  506. package/schemas/WebpackOptions.check.js +2 -2
  507. package/schemas/WebpackOptions.json +543 -190
  508. package/schemas/plugins/BannerPlugin.check.d.ts +1 -1
  509. package/schemas/plugins/BannerPlugin.check.js +2 -2
  510. package/schemas/plugins/BannerPlugin.json +4 -0
  511. package/schemas/plugins/DllPlugin.check.d.ts +1 -1
  512. package/schemas/plugins/DllPlugin.check.js +1 -1
  513. package/schemas/plugins/DllReferencePlugin.check.d.ts +1 -1
  514. package/schemas/plugins/DllReferencePlugin.check.js +1 -1
  515. package/schemas/plugins/IgnorePlugin.check.d.ts +1 -1
  516. package/schemas/plugins/IgnorePlugin.check.js +1 -1
  517. package/schemas/plugins/IgnorePlugin.json +1 -1
  518. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +1 -1
  519. package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -1
  520. package/schemas/plugins/{HashedModuleIdsPlugin.check.d.ts → ManifestPlugin.check.d.ts} +2 -2
  521. package/schemas/plugins/ManifestPlugin.check.js +6 -0
  522. package/schemas/plugins/ManifestPlugin.json +98 -0
  523. package/schemas/plugins/ProgressPlugin.check.d.ts +1 -1
  524. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  525. package/schemas/plugins/ProgressPlugin.json +1 -1
  526. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +1 -1
  527. package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -2
  528. package/schemas/plugins/SourceMapDevToolPlugin.json +23 -6
  529. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +1 -1
  530. package/schemas/plugins/WatchIgnorePlugin.check.js +1 -1
  531. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +1 -1
  532. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
  533. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +1 -1
  534. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
  535. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +1 -1
  536. package/schemas/plugins/asset/AssetParserOptions.check.js +1 -1
  537. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +1 -1
  538. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
  539. package/schemas/plugins/container/ContainerPlugin.check.d.ts +1 -1
  540. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  541. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +1 -1
  542. package/schemas/plugins/container/ContainerReferencePlugin.check.js +2 -2
  543. package/schemas/plugins/container/ContainerReferencePlugin.json +4 -1
  544. package/schemas/plugins/container/ExternalsType.check.d.ts +1 -1
  545. package/schemas/plugins/container/ExternalsType.check.js +2 -2
  546. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +1 -1
  547. package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -2
  548. package/schemas/plugins/container/ModuleFederationPlugin.json +4 -1
  549. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +1 -1
  550. package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -1
  551. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +1 -1
  552. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +2 -2
  553. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +1 -1
  554. package/schemas/plugins/css/CssModuleParserOptions.check.js +2 -2
  555. package/schemas/plugins/css/CssParserOptions.check.d.ts +1 -1
  556. package/schemas/plugins/css/CssParserOptions.check.js +2 -2
  557. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +1 -1
  558. package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -1
  559. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +7 -0
  560. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +6 -0
  561. package/schemas/plugins/{HashedModuleIdsPlugin.json → ids/HashedModuleIdsPlugin.json} +15 -2
  562. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +1 -1
  563. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -1
  564. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +1 -1
  565. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -1
  566. package/schemas/plugins/{css/CssGlobalParserOptions.check.d.ts → json/JsonModulesPluginGenerator.check.d.ts} +1 -1
  567. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +6 -0
  568. package/schemas/plugins/json/JsonModulesPluginGenerator.json +3 -0
  569. package/schemas/plugins/{css/CssGlobalGeneratorOptions.check.d.ts → json/JsonModulesPluginParser.check.d.ts} +1 -1
  570. package/schemas/plugins/json/JsonModulesPluginParser.check.js +6 -0
  571. package/schemas/plugins/json/JsonModulesPluginParser.json +3 -0
  572. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +1 -1
  573. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -1
  574. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +1 -1
  575. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -1
  576. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +1 -1
  577. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -1
  578. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +1 -1
  579. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -1
  580. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +1 -1
  581. package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
  582. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +7 -0
  583. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +6 -0
  584. package/schemas/plugins/schemes/VirtualUrlPlugin.json +77 -0
  585. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +1 -1
  586. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +1 -1
  587. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +1 -1
  588. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +1 -1
  589. package/schemas/plugins/sharing/SharePlugin.check.d.ts +1 -1
  590. package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
  591. package/types.d.ts +5115 -1863
  592. package/SECURITY.md +0 -9
  593. package/lib/ModuleSourceTypesConstants.js +0 -112
  594. package/lib/dependencies/CssLocalIdentifierDependency.js +0 -250
  595. package/lib/dependencies/CssSelfLocalIdentifierDependency.js +0 -111
  596. package/lib/library/ModernModuleLibraryPlugin.js +0 -144
  597. package/schemas/plugins/HashedModuleIdsPlugin.check.js +0 -6
  598. package/schemas/plugins/JsonModulesPluginParser.check.d.ts +0 -7
  599. package/schemas/plugins/JsonModulesPluginParser.check.js +0 -6
  600. package/schemas/plugins/JsonModulesPluginParser.json +0 -12
  601. package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +0 -7
  602. package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +0 -6
  603. package/schemas/plugins/css/CssAutoGeneratorOptions.json +0 -3
  604. package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +0 -7
  605. package/schemas/plugins/css/CssAutoParserOptions.check.js +0 -6
  606. package/schemas/plugins/css/CssAutoParserOptions.json +0 -3
  607. package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +0 -6
  608. package/schemas/plugins/css/CssGlobalGeneratorOptions.json +0 -3
  609. package/schemas/plugins/css/CssGlobalParserOptions.check.js +0 -6
  610. package/schemas/plugins/css/CssGlobalParserOptions.json +0 -3
@@ -5,60 +5,63 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const { SyncWaterfallHook, SyncHook } = require("tapable");
8
+ const { SyncHook, SyncWaterfallHook } = require("tapable");
9
9
  const {
10
+ CachedSource,
10
11
  ConcatSource,
11
12
  PrefixSource,
12
- ReplaceSource,
13
- CachedSource,
14
- RawSource
13
+ RawSource,
14
+ ReplaceSource
15
15
  } = require("webpack-sources");
16
16
  const Compilation = require("../Compilation");
17
17
  const CssModule = require("../CssModule");
18
18
  const { tryRunOrWebpackError } = require("../HookWebpackError");
19
19
  const HotUpdateChunk = require("../HotUpdateChunk");
20
+ const { CSS_IMPORT_TYPE, CSS_TYPE } = require("../ModuleSourceTypeConstants");
20
21
  const {
21
22
  CSS_MODULE_TYPE,
23
+ CSS_MODULE_TYPE_AUTO,
22
24
  CSS_MODULE_TYPE_GLOBAL,
23
- CSS_MODULE_TYPE_MODULE,
24
- CSS_MODULE_TYPE_AUTO
25
+ CSS_MODULE_TYPE_MODULE
25
26
  } = require("../ModuleTypeConstants");
27
+ const NormalModule = require("../NormalModule");
26
28
  const RuntimeGlobals = require("../RuntimeGlobals");
27
- const SelfModuleFactory = require("../SelfModuleFactory");
28
29
  const Template = require("../Template");
29
30
  const WebpackError = require("../WebpackError");
30
31
  const CssIcssExportDependency = require("../dependencies/CssIcssExportDependency");
31
32
  const CssIcssImportDependency = require("../dependencies/CssIcssImportDependency");
32
33
  const CssIcssSymbolDependency = require("../dependencies/CssIcssSymbolDependency");
33
34
  const CssImportDependency = require("../dependencies/CssImportDependency");
34
- const CssLocalIdentifierDependency = require("../dependencies/CssLocalIdentifierDependency");
35
- const CssSelfLocalIdentifierDependency = require("../dependencies/CssSelfLocalIdentifierDependency");
36
35
  const CssUrlDependency = require("../dependencies/CssUrlDependency");
37
36
  const StaticExportsDependency = require("../dependencies/StaticExportsDependency");
38
37
  const JavascriptModulesPlugin = require("../javascript/JavascriptModulesPlugin");
39
- const { compareModulesByIdentifier } = require("../util/comparators");
38
+ const { compareModulesByIdOrIdentifier } = require("../util/comparators");
40
39
  const createSchemaValidation = require("../util/create-schema-validation");
41
40
  const createHash = require("../util/createHash");
42
41
  const { getUndoPath } = require("../util/identifier");
43
42
  const memoize = require("../util/memoize");
44
43
  const nonNumericOnlyHash = require("../util/nonNumericOnlyHash");
44
+ const removeBOM = require("../util/removeBOM");
45
45
  const CssGenerator = require("./CssGenerator");
46
+ const CssMergeStyleSheetsRuntimeModule = require("./CssMergeStyleSheetsRuntimeModule");
46
47
  const CssParser = require("./CssParser");
47
48
 
48
49
  /** @typedef {import("webpack-sources").Source} Source */
49
- /** @typedef {import("../../declarations/WebpackOptions").OutputNormalized} OutputOptions */
50
+ /** @typedef {import("../config/defaults").OutputNormalizedWithDefaults} OutputOptions */
50
51
  /** @typedef {import("../Chunk")} Chunk */
51
52
  /** @typedef {import("../ChunkGraph")} ChunkGraph */
52
53
  /** @typedef {import("../CodeGenerationResults")} CodeGenerationResults */
53
54
  /** @typedef {import("../Compilation").ChunkHashContext} ChunkHashContext */
54
55
  /** @typedef {import("../Compiler")} Compiler */
55
56
  /** @typedef {import("../CssModule").Inheritance} Inheritance */
57
+ /** @typedef {import("../CssModule").CSSModuleCreateData} CSSModuleCreateData */
56
58
  /** @typedef {import("../Module")} Module */
59
+ /** @typedef {import("../Module").BuildInfo} BuildInfo */
60
+ /** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
57
61
  /** @typedef {import("../Template").RuntimeTemplate} RuntimeTemplate */
58
62
  /** @typedef {import("../TemplatedPathPlugin").TemplatePath} TemplatePath */
59
63
  /** @typedef {import("../util/Hash")} Hash */
60
- /** @typedef {import("../util/createHash").Algorithm} Algorithm */
61
- /** @typedef {import("../util/memoize")} Memoize */
64
+ /** @typedef {import("../Module").BuildMeta} BuildMeta */
62
65
 
63
66
  /**
64
67
  * @typedef {object} RenderContext
@@ -73,11 +76,13 @@ const CssParser = require("./CssParser");
73
76
 
74
77
  /**
75
78
  * @typedef {object} ChunkRenderContext
76
- * @property {Chunk} chunk the chunk
77
- * @property {ChunkGraph} chunkGraph the chunk graph
78
- * @property {CodeGenerationResults} codeGenerationResults results of code generation
79
+ * @property {Chunk=} chunk the chunk
80
+ * @property {ChunkGraph=} chunkGraph the chunk graph
81
+ * @property {CodeGenerationResults=} codeGenerationResults results of code generation
79
82
  * @property {RuntimeTemplate} runtimeTemplate the runtime template
80
83
  * @property {string} undoPath undo path to css file
84
+ * @property {WeakMap<Source, ModuleFactoryCacheEntry>} moduleFactoryCache moduleFactoryCache
85
+ * @property {Source} moduleSourceContent content
81
86
  */
82
87
 
83
88
  /**
@@ -86,16 +91,24 @@ const CssParser = require("./CssParser");
86
91
  * @property {SyncHook<[Chunk, Hash, ChunkHashContext]>} chunkHash
87
92
  */
88
93
 
94
+ /**
95
+ * @typedef {object} ModuleFactoryCacheEntry
96
+ * @property {string} undoPath - The undo path to the CSS file
97
+ * @property {Inheritance} inheritance - The inheritance chain
98
+ * @property {CachedSource} source - The cached source
99
+ */
100
+
89
101
  const getCssLoadingRuntimeModule = memoize(() =>
90
102
  require("./CssLoadingRuntimeModule")
91
103
  );
92
104
 
93
105
  /**
94
106
  * @param {string} name name
95
- * @returns {{oneOf: [{$ref: string}], definitions: *}} schema
107
+ * @returns {{ oneOf: [{ $ref: string }], definitions: import("../../schemas/WebpackOptions.json")["definitions"] }} schema
96
108
  */
97
- const getSchema = name => {
109
+ const getSchema = (name) => {
98
110
  const { definitions } = require("../../schemas/WebpackOptions.json");
111
+
99
112
  return {
100
113
  definitions,
101
114
  oneOf: [{ $ref: `#/definitions/${name}` }]
@@ -108,23 +121,23 @@ const generatorValidationOptions = {
108
121
  };
109
122
  const validateGeneratorOptions = {
110
123
  css: createSchemaValidation(
111
- require("../../schemas/plugins/css/CssGeneratorOptions.check.js"),
124
+ require("../../schemas/plugins/css/CssGeneratorOptions.check"),
112
125
  () => getSchema("CssGeneratorOptions"),
113
126
  generatorValidationOptions
114
127
  ),
115
128
  "css/auto": createSchemaValidation(
116
- require("../../schemas/plugins/css/CssAutoGeneratorOptions.check.js"),
117
- () => getSchema("CssAutoGeneratorOptions"),
129
+ require("../../schemas/plugins/css/CssModuleGeneratorOptions.check"),
130
+ () => getSchema("CssModuleGeneratorOptions"),
118
131
  generatorValidationOptions
119
132
  ),
120
133
  "css/module": createSchemaValidation(
121
- require("../../schemas/plugins/css/CssModuleGeneratorOptions.check.js"),
134
+ require("../../schemas/plugins/css/CssModuleGeneratorOptions.check"),
122
135
  () => getSchema("CssModuleGeneratorOptions"),
123
136
  generatorValidationOptions
124
137
  ),
125
138
  "css/global": createSchemaValidation(
126
- require("../../schemas/plugins/css/CssGlobalGeneratorOptions.check.js"),
127
- () => getSchema("CssGlobalGeneratorOptions"),
139
+ require("../../schemas/plugins/css/CssModuleGeneratorOptions.check"),
140
+ () => getSchema("CssModuleGeneratorOptions"),
128
141
  generatorValidationOptions
129
142
  )
130
143
  };
@@ -135,23 +148,23 @@ const parserValidationOptions = {
135
148
  };
136
149
  const validateParserOptions = {
137
150
  css: createSchemaValidation(
138
- require("../../schemas/plugins/css/CssParserOptions.check.js"),
151
+ require("../../schemas/plugins/css/CssParserOptions.check"),
139
152
  () => getSchema("CssParserOptions"),
140
153
  parserValidationOptions
141
154
  ),
142
155
  "css/auto": createSchemaValidation(
143
- require("../../schemas/plugins/css/CssAutoParserOptions.check.js"),
144
- () => getSchema("CssAutoParserOptions"),
156
+ require("../../schemas/plugins/css/CssModuleParserOptions.check"),
157
+ () => getSchema("CssModuleParserOptions"),
145
158
  parserValidationOptions
146
159
  ),
147
160
  "css/module": createSchemaValidation(
148
- require("../../schemas/plugins/css/CssModuleParserOptions.check.js"),
161
+ require("../../schemas/plugins/css/CssModuleParserOptions.check"),
149
162
  () => getSchema("CssModuleParserOptions"),
150
163
  parserValidationOptions
151
164
  ),
152
165
  "css/global": createSchemaValidation(
153
- require("../../schemas/plugins/css/CssGlobalParserOptions.check.js"),
154
- () => getSchema("CssGlobalParserOptions"),
166
+ require("../../schemas/plugins/css/CssModuleParserOptions.check"),
167
+ () => getSchema("CssModuleParserOptions"),
155
168
  parserValidationOptions
156
169
  )
157
170
  };
@@ -188,7 +201,7 @@ class CssModulesPlugin {
188
201
  }
189
202
 
190
203
  constructor() {
191
- /** @type {WeakMap<Source, { undoPath: string, inheritance: Inheritance, source: CachedSource }>} */
204
+ /** @type {WeakMap<Source, ModuleFactoryCacheEntry>} */
192
205
  this._moduleFactoryCache = new WeakMap();
193
206
  }
194
207
 
@@ -202,7 +215,6 @@ class CssModulesPlugin {
202
215
  PLUGIN_NAME,
203
216
  (compilation, { normalModuleFactory }) => {
204
217
  const hooks = CssModulesPlugin.getCompilationHooks(compilation);
205
- const selfFactory = new SelfModuleFactory(compilation.moduleGraph);
206
218
  compilation.dependencyFactories.set(
207
219
  CssImportDependency,
208
220
  normalModuleFactory
@@ -219,18 +231,6 @@ class CssModulesPlugin {
219
231
  CssUrlDependency,
220
232
  new CssUrlDependency.Template()
221
233
  );
222
- compilation.dependencyTemplates.set(
223
- CssLocalIdentifierDependency,
224
- new CssLocalIdentifierDependency.Template()
225
- );
226
- compilation.dependencyFactories.set(
227
- CssSelfLocalIdentifierDependency,
228
- selfFactory
229
- );
230
- compilation.dependencyTemplates.set(
231
- CssSelfLocalIdentifierDependency,
232
- new CssSelfLocalIdentifierDependency.Template()
233
- );
234
234
  compilation.dependencyFactories.set(
235
235
  CssIcssImportDependency,
236
236
  normalModuleFactory
@@ -259,46 +259,44 @@ class CssModulesPlugin {
259
259
  ]) {
260
260
  normalModuleFactory.hooks.createParser
261
261
  .for(type)
262
- .tap(PLUGIN_NAME, parserOptions => {
263
- validateParserOptions[type](parserOptions);
264
- const { url, import: importOption, namedExports } = parserOptions;
265
-
262
+ .tap(PLUGIN_NAME, (parserOptions) => {
266
263
  switch (type) {
267
264
  case CSS_MODULE_TYPE:
268
- return new CssParser({
269
- importOption,
270
- url,
271
- namedExports
272
- });
265
+ validateParserOptions[type](parserOptions);
266
+
267
+ return new CssParser(parserOptions);
273
268
  case CSS_MODULE_TYPE_GLOBAL:
269
+ validateParserOptions[type](parserOptions);
270
+
274
271
  return new CssParser({
275
272
  defaultMode: "global",
276
- importOption,
277
- url,
278
- namedExports
273
+ ...parserOptions
279
274
  });
280
275
  case CSS_MODULE_TYPE_MODULE:
276
+ validateParserOptions[type](parserOptions);
277
+
281
278
  return new CssParser({
282
279
  defaultMode: "local",
283
- importOption,
284
- url,
285
- namedExports
280
+ ...parserOptions
286
281
  });
287
282
  case CSS_MODULE_TYPE_AUTO:
283
+ validateParserOptions[type](parserOptions);
284
+
288
285
  return new CssParser({
289
286
  defaultMode: "auto",
290
- importOption,
291
- url,
292
- namedExports
287
+ ...parserOptions
293
288
  });
294
289
  }
295
290
  });
296
291
  normalModuleFactory.hooks.createGenerator
297
292
  .for(type)
298
- .tap(PLUGIN_NAME, generatorOptions => {
293
+ .tap(PLUGIN_NAME, (generatorOptions) => {
299
294
  validateGeneratorOptions[type](generatorOptions);
300
295
 
301
- return new CssGenerator(generatorOptions);
296
+ return new CssGenerator(
297
+ generatorOptions,
298
+ compilation.moduleGraph
299
+ );
302
300
  });
303
301
  normalModuleFactory.hooks.createModuleClass
304
302
  .for(type)
@@ -340,39 +338,65 @@ class CssModulesPlugin {
340
338
  inheritance.push(...parent.inheritance);
341
339
  }
342
340
 
343
- return new CssModule({
341
+ return new CssModule(
342
+ /** @type {CSSModuleCreateData} */
343
+ ({
344
+ ...createData,
345
+ cssLayer: dependency.layer,
346
+ supports: dependency.supports,
347
+ media: dependency.media,
348
+ inheritance
349
+ })
350
+ );
351
+ }
352
+
353
+ return new CssModule(
354
+ /** @type {CSSModuleCreateData} */
355
+ ({
344
356
  ...createData,
345
357
  cssLayer: dependency.layer,
346
358
  supports: dependency.supports,
347
- media: dependency.media,
348
- inheritance
349
- });
350
- }
351
-
352
- return new CssModule({
353
- ...createData,
354
- cssLayer: dependency.layer,
355
- supports: dependency.supports,
356
- media: dependency.media
357
- });
359
+ media: dependency.media
360
+ })
361
+ );
358
362
  }
359
363
  }
360
364
 
361
- return new CssModule(createData);
365
+ return new CssModule(
366
+ /** @type {CSSModuleCreateData} */
367
+ (createData)
368
+ );
362
369
  });
370
+
371
+ NormalModule.getCompilationHooks(compilation).processResult.tap(
372
+ PLUGIN_NAME,
373
+ (result, module) => {
374
+ if (module.type === type) {
375
+ const [source, ...rest] = result;
376
+
377
+ return [removeBOM(source), ...rest];
378
+ }
379
+
380
+ return result;
381
+ }
382
+ );
363
383
  }
364
384
 
365
385
  JavascriptModulesPlugin.getCompilationHooks(
366
386
  compilation
367
387
  ).renderModuleContent.tap(PLUGIN_NAME, (source, module) => {
368
388
  if (module instanceof CssModule && module.hot) {
369
- const exports = module.buildInfo.cssData.exports;
389
+ const cssData = /** @type {BuildInfo} */ (module.buildInfo).cssData;
390
+ if (!cssData) {
391
+ return source;
392
+ }
393
+ const exports = cssData.exports;
370
394
  const stringifiedExports = JSON.stringify(
371
395
  JSON.stringify(
372
- Array.from(exports).reduce((obj, [key, value]) => {
396
+ [...exports].reduce((obj, [key, value]) => {
373
397
  obj[key] = value;
374
398
  return obj;
375
- }, {})
399
+ }, /** @type {Record<string, string>} */ ({}))
376
400
  )
377
401
  );
378
402
 
@@ -390,6 +414,8 @@ class CssModulesPlugin {
390
414
 
391
415
  return new ConcatSource(source, "\n", new RawSource(hmrCode));
392
416
  }
417
+
418
+ return source;
393
419
  });
394
420
  const orderedCssModulesPerChunk = new WeakMap();
395
421
  compilation.hooks.afterCodeGeneration.tap(PLUGIN_NAME, () => {
@@ -406,10 +432,9 @@ class CssModulesPlugin {
406
432
  compilation.hooks.chunkHash.tap(PLUGIN_NAME, (chunk, hash, context) => {
407
433
  hooks.chunkHash.call(chunk, hash, context);
408
434
  });
409
- compilation.hooks.contentHash.tap(PLUGIN_NAME, chunk => {
435
+ compilation.hooks.contentHash.tap(PLUGIN_NAME, (chunk) => {
410
436
  const {
411
437
  chunkGraph,
412
- codeGenerationResults,
413
438
  moduleGraph,
414
439
  runtimeTemplate,
415
440
  outputOptions: {
@@ -419,8 +444,11 @@ class CssModulesPlugin {
419
444
  hashFunction
420
445
  }
421
446
  } = compilation;
422
- const hash = createHash(/** @type {Algorithm} */ (hashFunction));
447
+ const hash = createHash(hashFunction);
423
448
  if (hashSalt) hash.update(hashSalt);
449
+ const codeGenerationResults =
450
+ /** @type {CodeGenerationResults} */
451
+ (compilation.codeGenerationResults);
424
452
  hooks.chunkHash.call(chunk, hash, {
425
453
  chunkGraph,
426
454
  codeGenerationResults,
@@ -433,12 +461,8 @@ class CssModulesPlugin {
433
461
  hash.update(chunkGraph.getModuleHash(module, chunk.runtime));
434
462
  }
435
463
  }
436
- const digest = /** @type {string} */ (hash.digest(hashDigest));
437
- chunk.contentHash.css = nonNumericOnlyHash(
438
- digest,
439
- /** @type {number} */
440
- (hashDigestLength)
441
- );
464
+ const digest = hash.digest(hashDigest);
465
+ chunk.contentHash.css = nonNumericOnlyHash(digest, hashDigestLength);
442
466
  });
443
467
  compilation.hooks.renderManifest.tap(PLUGIN_NAME, (result, options) => {
444
468
  const { chunkGraph } = compilation;
@@ -464,8 +488,7 @@ class CssModulesPlugin {
464
488
  );
465
489
  const undoPath = getUndoPath(
466
490
  filename,
467
- /** @type {string} */
468
- (compilation.outputOptions.path),
491
+ compilation.outputOptions.path,
469
492
  false
470
493
  );
471
494
  result.push({
@@ -495,7 +518,7 @@ class CssModulesPlugin {
495
518
  * @param {Chunk} chunk the chunk
496
519
  * @returns {boolean} true, when enabled
497
520
  */
498
- const isEnabledForChunk = chunk => {
521
+ const isEnabledForChunk = (chunk) => {
499
522
  const options = chunk.getEntryOptions();
500
523
  const chunkLoading =
501
524
  options && options.chunkLoading !== undefined
@@ -506,15 +529,13 @@ class CssModulesPlugin {
506
529
  const onceForChunkSet = new WeakSet();
507
530
  /**
508
531
  * @param {Chunk} chunk chunk to check
509
- * @param {Set<string>} set runtime requirements
532
+ * @param {RuntimeRequirements} set runtime requirements
510
533
  */
511
534
  const handler = (chunk, set) => {
512
535
  if (onceForChunkSet.has(chunk)) return;
513
536
  onceForChunkSet.add(chunk);
514
537
  if (!isEnabledForChunk(chunk)) return;
515
538
 
516
- set.add(RuntimeGlobals.makeNamespaceObject);
517
-
518
539
  const CssLoadingRuntimeModule = getCssLoadingRuntimeModule();
519
540
  compilation.addRuntimeModule(chunk, new CssLoadingRuntimeModule(set));
520
541
  };
@@ -528,7 +549,7 @@ class CssModulesPlugin {
528
549
  if (
529
550
  !chunkGraph.hasModuleInGraph(
530
551
  chunk,
531
- m =>
552
+ (m) =>
532
553
  m.type === CSS_MODULE_TYPE ||
533
554
  m.type === CSS_MODULE_TYPE_GLOBAL ||
534
555
  m.type === CSS_MODULE_TYPE_MODULE ||
@@ -549,7 +570,7 @@ class CssModulesPlugin {
549
570
  if (
550
571
  !chunkGraph.hasModuleInGraph(
551
572
  chunk,
552
- m =>
573
+ (m) =>
553
574
  m.type === CSS_MODULE_TYPE ||
554
575
  m.type === CSS_MODULE_TYPE_GLOBAL ||
555
576
  m.type === CSS_MODULE_TYPE_MODULE ||
@@ -561,6 +582,15 @@ class CssModulesPlugin {
561
582
  set.add(RuntimeGlobals.publicPath);
562
583
  set.add(RuntimeGlobals.getChunkCssFilename);
563
584
  });
585
+
586
+ compilation.hooks.runtimeRequirementInTree
587
+ .for(RuntimeGlobals.cssMergeStyleSheets)
588
+ .tap(PLUGIN_NAME, (chunk) => {
589
+ compilation.addRuntimeModule(
590
+ chunk,
591
+ new CssMergeStyleSheetsRuntimeModule()
592
+ );
593
+ });
564
594
  }
565
595
  );
566
596
  }
@@ -579,24 +609,32 @@ class CssModulesPlugin {
579
609
 
580
610
  // Get ordered list of modules per chunk group
581
611
  // Lists are in reverse order to allow to use Array.pop()
582
- const modulesByChunkGroup = Array.from(chunk.groupsIterable, chunkGroup => {
583
- const sortedModules = modulesList
584
- .map(module => ({
585
- module,
586
- index: chunkGroup.getModulePostOrderIndex(module)
587
- }))
588
- .filter(item => item.index !== undefined)
589
- .sort(
590
- (a, b) =>
591
- /** @type {number} */ (b.index) - /** @type {number} */ (a.index)
592
- )
593
- .map(item => item.module);
594
-
595
- return { list: sortedModules, set: new Set(sortedModules) };
596
- });
597
-
598
- if (modulesByChunkGroup.length === 1)
612
+ const modulesByChunkGroup = Array.from(
613
+ chunk.groupsIterable,
614
+ (chunkGroup) => {
615
+ const sortedModules = modulesList
616
+ .map((module) => ({
617
+ module,
618
+ index: chunkGroup.getModulePostOrderIndex(module)
619
+ }))
620
+ .filter((item) => item.index !== undefined)
621
+ .sort(
622
+ (a, b) =>
623
+ /** @type {number} */ (b.index) - /** @type {number} */ (a.index)
624
+ )
625
+ .map((item) => item.module);
626
+
627
+ return { list: sortedModules, set: new Set(sortedModules) };
628
+ }
629
+ );
630
+
631
+ if (modulesByChunkGroup.length === 1) {
599
632
  return modulesByChunkGroup[0].list.reverse();
633
+ }
634
+
635
+ const boundCompareModulesByIdOrIdentifier = compareModulesByIdOrIdentifier(
636
+ compilation.chunkGraph
637
+ );
600
638
 
601
639
  /**
602
640
  * @param {{ list: Module[] }} a a
@@ -608,7 +646,10 @@ class CssModulesPlugin {
608
646
  return b.length === 0 ? 0 : 1;
609
647
  }
610
648
  if (b.length === 0) return -1;
611
- return compareModulesByIdentifier(a[a.length - 1], b[b.length - 1]);
649
+ return boundCompareModulesByIdOrIdentifier(
650
+ a[a.length - 1],
651
+ b[b.length - 1]
652
+ );
612
653
  };
613
654
 
614
655
  modulesByChunkGroup.sort(compareModuleLists);
@@ -664,8 +705,9 @@ class CssModulesPlugin {
664
705
  // Remove the selected module from all lists
665
706
  for (const { list, set } of modulesByChunkGroup) {
666
707
  const lastModule = list[list.length - 1];
667
- if (lastModule === selectedModule) list.pop();
668
- else if (hasFailed && set.has(selectedModule)) {
708
+ if (lastModule === selectedModule) {
709
+ list.pop();
710
+ } else if (hasFailed && set.has(selectedModule)) {
669
711
  const idx = list.indexOf(selectedModule);
670
712
  if (idx >= 0) list.splice(idx, 1);
671
713
  }
@@ -689,8 +731,8 @@ class CssModulesPlugin {
689
731
  (
690
732
  chunkGraph.getOrderedChunkModulesIterableBySourceType(
691
733
  chunk,
692
- "css-import",
693
- compareModulesByIdentifier
734
+ CSS_IMPORT_TYPE,
735
+ compareModulesByIdOrIdentifier(chunkGraph)
694
736
  )
695
737
  ),
696
738
  compilation
@@ -701,8 +743,8 @@ class CssModulesPlugin {
701
743
  (
702
744
  chunkGraph.getOrderedChunkModulesIterableBySourceType(
703
745
  chunk,
704
- "css",
705
- compareModulesByIdentifier
746
+ CSS_TYPE,
747
+ compareModulesByIdOrIdentifier(chunkGraph)
706
748
  )
707
749
  ),
708
750
  compilation
@@ -711,21 +753,14 @@ class CssModulesPlugin {
711
753
  }
712
754
 
713
755
  /**
714
- * @param {CssModule} module css module
756
+ * @param {CssModule} module css module
715
757
  * @param {ChunkRenderContext} renderContext options object
716
758
  * @param {CompilationHooks} hooks hooks
717
- * @returns {Source} css module source
759
+ * @returns {Source | null} css module source
718
760
  */
719
- renderModule(module, renderContext, hooks) {
720
- const { codeGenerationResults, chunk, undoPath } = renderContext;
721
- const codeGenResult = codeGenerationResults.get(module, chunk.runtime);
722
- const moduleSourceContent =
723
- /** @type {Source} */
724
- (
725
- codeGenResult.sources.get("css") ||
726
- codeGenResult.sources.get("css-import")
727
- );
728
- const cacheEntry = this._moduleFactoryCache.get(moduleSourceContent);
761
+ static renderModule(module, renderContext, hooks) {
762
+ const { undoPath, moduleFactoryCache, moduleSourceContent } = renderContext;
763
+ const cacheEntry = moduleFactoryCache.get(moduleSourceContent);
729
764
 
730
765
  /** @type {Inheritance} */
731
766
  const inheritance = [[module.cssLayer, module.supports, module.media]];
@@ -747,6 +782,7 @@ class CssModulesPlugin {
747
782
  ) {
748
783
  source = cacheEntry.source;
749
784
  } else {
785
+ if (!moduleSourceContent) return null;
750
786
  const moduleSourceCode =
751
787
  /** @type {string} */
752
788
  (moduleSourceContent.source());
@@ -801,7 +837,7 @@ class CssModulesPlugin {
801
837
  }
802
838
 
803
839
  source = new CachedSource(moduleSource);
804
- this._moduleFactoryCache.set(moduleSourceContent, {
840
+ moduleFactoryCache.set(moduleSourceContent, {
805
841
  inheritance,
806
842
  undoPath,
807
843
  source
@@ -823,28 +859,39 @@ class CssModulesPlugin {
823
859
  {
824
860
  undoPath,
825
861
  chunk,
826
- chunkGraph,
827
862
  codeGenerationResults,
828
863
  modules,
829
- runtimeTemplate
864
+ runtimeTemplate,
865
+ chunkGraph
830
866
  },
831
867
  hooks
832
868
  ) {
833
869
  const source = new ConcatSource();
834
870
  for (const module of modules) {
835
871
  try {
836
- const moduleSource = this.renderModule(
872
+ const codeGenResult = codeGenerationResults.get(module, chunk.runtime);
873
+ const moduleSourceContent =
874
+ /** @type {Source} */
875
+ (
876
+ codeGenResult.sources.get(CSS_TYPE) ||
877
+ codeGenResult.sources.get(CSS_IMPORT_TYPE)
878
+ );
879
+ const moduleSource = CssModulesPlugin.renderModule(
837
880
  module,
838
881
  {
839
882
  undoPath,
840
883
  chunk,
841
884
  chunkGraph,
842
885
  codeGenerationResults,
886
+ moduleSourceContent,
887
+ moduleFactoryCache: this._moduleFactoryCache,
843
888
  runtimeTemplate
844
889
  },
845
890
  hooks
846
891
  );
847
- source.add(moduleSource);
892
+ if (moduleSource) {
893
+ source.add(moduleSource);
894
+ }
848
895
  } catch (err) {
849
896
  /** @type {Error} */
850
897
  (err).message += `\nduring rendering of css ${module.identifier()}`;
@@ -864,9 +911,9 @@ class CssModulesPlugin {
864
911
  if (chunk.cssFilenameTemplate) {
865
912
  return chunk.cssFilenameTemplate;
866
913
  } else if (chunk.canBeInitial()) {
867
- return /** @type {TemplatePath} */ (outputOptions.cssFilename);
914
+ return outputOptions.cssFilename;
868
915
  }
869
- return /** @type {TemplatePath} */ (outputOptions.cssChunkFilename);
916
+ return outputOptions.cssChunkFilename;
870
917
  }
871
918
 
872
919
  /**
@@ -876,9 +923,11 @@ class CssModulesPlugin {
876
923
  */
877
924
  static chunkHasCss(chunk, chunkGraph) {
878
925
  return (
879
- Boolean(chunkGraph.getChunkModulesIterableBySourceType(chunk, "css")) ||
880
926
  Boolean(
881
- chunkGraph.getChunkModulesIterableBySourceType(chunk, "css-import")
927
+ chunkGraph.getChunkModulesIterableBySourceType(chunk, CSS_TYPE)
928
+ ) ||
929
+ Boolean(
930
+ chunkGraph.getChunkModulesIterableBySourceType(chunk, CSS_IMPORT_TYPE)
882
931
  )
883
932
  );
884
933
  }