@depup/webpack 5.109.2-depup.0 → 5.110.1-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. package/README.md +5 -5
  2. package/changes.json +7 -7
  3. package/lib/APIPlugin.js +123 -17
  4. package/lib/AsyncDependenciesBlock.js +10 -7
  5. package/lib/AutomaticPrefetchPlugin.js +1 -1
  6. package/lib/BannerPlugin.js +10 -6
  7. package/lib/CacheFacade.js +6 -6
  8. package/lib/Chunk.js +14 -11
  9. package/lib/ChunkGraph.js +26 -17
  10. package/lib/ChunkGroup.js +7 -7
  11. package/lib/ChunkTemplate.js +35 -44
  12. package/lib/CircularModulesPlugin.js +205 -28
  13. package/lib/CleanPlugin.js +4 -7
  14. package/lib/CodeGenerationResults.js +11 -8
  15. package/lib/CompatibilityPlugin.js +7 -7
  16. package/lib/Compilation.js +688 -409
  17. package/lib/Compiler.js +53 -38
  18. package/lib/ConcatenationScope.js +117 -8
  19. package/lib/ConditionalInitFragment.js +3 -3
  20. package/lib/ConstPlugin.js +13 -11
  21. package/lib/ContextExclusionPlugin.js +1 -1
  22. package/lib/ContextModule.js +146 -54
  23. package/lib/ContextModuleFactory.js +46 -14
  24. package/lib/ContextReplacementPlugin.js +12 -14
  25. package/lib/DefinePlugin.js +121 -37
  26. package/lib/DependenciesBlock.js +9 -6
  27. package/lib/Dependency.js +36 -16
  28. package/lib/DependencyTemplate.js +11 -12
  29. package/lib/DependencyTemplates.js +3 -3
  30. package/lib/DotenvPlugin.js +50 -13
  31. package/lib/DynamicEntryPlugin.js +8 -4
  32. package/lib/EntryOptionPlugin.js +8 -4
  33. package/lib/EntryPlugin.js +2 -2
  34. package/lib/Entrypoint.js +6 -2
  35. package/lib/EnvironmentPlugin.js +2 -2
  36. package/lib/EvalDevToolModulePlugin.js +8 -4
  37. package/lib/EvalSourceMapDevToolPlugin.js +15 -8
  38. package/lib/ExportsInfo.js +101 -14
  39. package/lib/ExportsInfoApiPlugin.js +2 -4
  40. package/lib/ExternalModule.js +232 -77
  41. package/lib/ExternalModuleFactoryPlugin.js +97 -38
  42. package/lib/ExternalsPlugin.js +10 -6
  43. package/lib/FileSystemInfo.js +44 -70
  44. package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
  45. package/lib/FlagDependencyExportsPlugin.js +76 -19
  46. package/lib/FlagDependencyUsagePlugin.js +32 -47
  47. package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
  48. package/lib/Generator.js +36 -15
  49. package/lib/HotModuleReplacementPlugin.js +16 -44
  50. package/lib/IgnorePlugin.js +8 -4
  51. package/lib/IgnoreWarningsPlugin.js +2 -2
  52. package/lib/InitFragment.js +8 -4
  53. package/lib/JavascriptMetaInfoPlugin.js +35 -4
  54. package/lib/LazyBarrel.js +3 -4
  55. package/lib/LibraryTemplatePlugin.js +10 -6
  56. package/lib/LoaderOptionsPlugin.js +7 -3
  57. package/lib/LoaderTargetPlugin.js +1 -1
  58. package/lib/MainTemplate.js +49 -42
  59. package/lib/ManifestPlugin.js +12 -11
  60. package/lib/Module.js +62 -33
  61. package/lib/ModuleFactory.js +3 -3
  62. package/lib/ModuleFilenameHelpers.js +9 -4
  63. package/lib/ModuleGraph.js +195 -21
  64. package/lib/ModuleGraphConnection.js +6 -13
  65. package/lib/ModuleInfoHeaderPlugin.js +8 -10
  66. package/lib/ModuleTemplate.js +62 -63
  67. package/lib/MultiCompiler.js +130 -64
  68. package/lib/MultiStats.js +40 -9
  69. package/lib/MultiWatching.js +3 -3
  70. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  71. package/lib/NodeStuffPlugin.js +29 -19
  72. package/lib/NormalModule.js +141 -85
  73. package/lib/NormalModuleFactory.js +555 -110
  74. package/lib/NormalModuleReplacementPlugin.js +5 -8
  75. package/lib/NullFactory.js +6 -2
  76. package/lib/OptionsApply.js +7 -3
  77. package/lib/Parser.js +7 -3
  78. package/lib/PlatformPlugin.js +2 -2
  79. package/lib/PrefetchPlugin.js +1 -1
  80. package/lib/ProgressPlugin.js +16 -13
  81. package/lib/ProvidePlugin.js +3 -5
  82. package/lib/RawModule.js +25 -17
  83. package/lib/RecordIdsPlugin.js +3 -3
  84. package/lib/RequestShortener.js +1 -1
  85. package/lib/ResolverFactory.js +2 -2
  86. package/lib/RuntimeGlobals.js +22 -10
  87. package/lib/RuntimeModule.js +29 -19
  88. package/lib/RuntimePlugin.js +332 -169
  89. package/lib/RuntimeTemplate.js +2792 -352
  90. package/lib/SelfModuleFactory.js +7 -3
  91. package/lib/SourceMapDevToolModuleOptionsPlugin.js +6 -2
  92. package/lib/SourceMapDevToolPlugin.js +30 -20
  93. package/lib/Stats.js +3 -4
  94. package/lib/Template.js +32 -22
  95. package/lib/TemplatedPathPlugin.js +96 -14
  96. package/lib/UseStrictPlugin.js +4 -6
  97. package/lib/WarnCaseSensitiveModulesPlugin.js +4 -4
  98. package/lib/WarnDeprecatedOptionPlugin.js +1 -1
  99. package/lib/WarnNoModeSetPlugin.js +1 -1
  100. package/lib/WatchIgnorePlugin.js +8 -6
  101. package/lib/Watching.js +8 -8
  102. package/lib/WebpackIsIncludedPlugin.js +2 -4
  103. package/lib/WebpackOptionsApply.js +308 -18
  104. package/lib/WebpackOptionsDefaulter.js +6 -2
  105. package/lib/asset/AssetBytesGenerator.js +12 -10
  106. package/lib/asset/AssetBytesParser.js +2 -4
  107. package/lib/asset/AssetGenerator.js +188 -95
  108. package/lib/asset/AssetModule.js +7 -3
  109. package/lib/asset/AssetModulesPlugin.js +110 -38
  110. package/lib/asset/AssetParser.js +9 -7
  111. package/lib/asset/AssetSourceGenerator.js +60 -13
  112. package/lib/asset/AssetSourceParser.js +2 -4
  113. package/lib/asset/RawDataUrlModule.js +24 -16
  114. package/lib/asset/WebManifestGenerator.js +8 -10
  115. package/lib/asset/WebManifestParser.js +24 -10
  116. package/lib/async-modules/AsyncModuleHelpers.js +2 -2
  117. package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
  118. package/lib/async-modules/InferAsyncModulesPlugin.js +2 -2
  119. package/lib/async-modules/isGeneratorLowered.js +4 -4
  120. package/lib/buildChunkGraph.js +36 -27
  121. package/lib/bun/BunTargetPlugin.js +1 -1
  122. package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
  123. package/lib/cache/AddManagedPathsPlugin.js +1 -1
  124. package/lib/cache/IdleFileCachePlugin.js +2 -2
  125. package/lib/cache/MemoryCachePlugin.js +18 -10
  126. package/lib/cache/MemoryWithGcCachePlugin.js +34 -22
  127. package/lib/cache/PackFileCacheStrategy.js +30 -23
  128. package/lib/cache/ResolverCachePlugin.js +38 -18
  129. package/lib/cache/getLazyHashedEtag.js +1 -2
  130. package/lib/cache/mergeEtags.js +1 -1
  131. package/lib/cli.js +1 -3
  132. package/lib/config/browserslistTargetHandler.js +41 -5
  133. package/lib/config/defaults.js +261 -79
  134. package/lib/config/defineConfig.js +10 -2
  135. package/lib/config/getClaimedAssetTypes.js +65 -0
  136. package/lib/config/normalization.js +36 -16
  137. package/lib/config/target.js +46 -3
  138. package/lib/container/ContainerEntryDependency.js +1 -1
  139. package/lib/container/ContainerEntryModule.js +24 -15
  140. package/lib/container/ContainerEntryModuleFactory.js +7 -3
  141. package/lib/container/ContainerPlugin.js +9 -10
  142. package/lib/container/ContainerReferencePlugin.js +6 -2
  143. package/lib/container/FallbackDependency.js +1 -1
  144. package/lib/container/FallbackModule.js +24 -17
  145. package/lib/container/FallbackModuleFactory.js +7 -3
  146. package/lib/container/HoistContainerReferencesPlugin.js +6 -11
  147. package/lib/container/ModuleFederationPlugin.js +7 -24
  148. package/lib/container/RemoteModule.js +27 -19
  149. package/lib/container/RemoteRuntimeModule.js +10 -8
  150. package/lib/container/moduleFederationHooks.js +32 -0
  151. package/lib/css/CssGenerator.js +171 -43
  152. package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
  153. package/lib/css/CssLoadingRuntimeModule.js +57 -24
  154. package/lib/css/CssModule.js +10 -7
  155. package/lib/css/CssModulesPlugin.js +168 -88
  156. package/lib/css/CssParser.js +1113 -568
  157. package/lib/css/CssServerStylesRuntimeModule.js +54 -0
  158. package/lib/css/cssMinify.js +168 -0
  159. package/lib/css/data.js +5324 -0
  160. package/lib/css/syntax.js +9579 -232
  161. package/lib/debug/ProfilingPlugin.js +14 -9
  162. package/lib/deno/DenoTargetPlugin.js +1 -1
  163. package/lib/dependencies/AMDDefineDependency.js +112 -87
  164. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +30 -17
  165. package/lib/dependencies/AMDPlugin.js +9 -7
  166. package/lib/dependencies/AMDRequireArrayDependency.js +5 -5
  167. package/lib/dependencies/AMDRequireContextDependency.js +2 -2
  168. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -1
  169. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +25 -14
  170. package/lib/dependencies/AMDRequireDependency.js +8 -7
  171. package/lib/dependencies/AMDRequireItemDependency.js +1 -1
  172. package/lib/dependencies/AMDRuntimeModules.js +21 -1
  173. package/lib/dependencies/BuildTimeConstDependency.js +102 -0
  174. package/lib/dependencies/CachedConstDependency.js +11 -8
  175. package/lib/dependencies/CommonJsDependencyHelpers.js +67 -46
  176. package/lib/dependencies/CommonJsExportRequireDependency.js +121 -45
  177. package/lib/dependencies/CommonJsExportsDependency.js +53 -49
  178. package/lib/dependencies/CommonJsExportsParserPlugin.js +207 -25
  179. package/lib/dependencies/CommonJsFullRequireDependency.js +119 -34
  180. package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -50
  181. package/lib/dependencies/CommonJsObjectExportDependency.js +188 -0
  182. package/lib/dependencies/CommonJsPlugin.js +35 -6
  183. package/lib/dependencies/CommonJsRequireContextDependency.js +5 -6
  184. package/lib/dependencies/CommonJsRequireDependency.js +156 -27
  185. package/lib/dependencies/CommonJsSelfReferenceDependency.js +63 -38
  186. package/lib/dependencies/ConstDependency.js +8 -9
  187. package/lib/dependencies/ContextDependency.js +12 -8
  188. package/lib/dependencies/ContextDependencyHelpers.js +14 -9
  189. package/lib/dependencies/ContextDependencyTemplateAsId.js +4 -4
  190. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -4
  191. package/lib/dependencies/ContextElementDependency.js +31 -12
  192. package/lib/dependencies/CreateRequireParserPlugin.js +12 -7
  193. package/lib/dependencies/CreateScriptUrlDependency.js +4 -4
  194. package/lib/dependencies/CssIcssExportDependency.js +56 -28
  195. package/lib/dependencies/CssIcssImportDependency.js +17 -13
  196. package/lib/dependencies/CssIcssSymbolDependency.js +9 -10
  197. package/lib/dependencies/CssImportDependency.js +18 -9
  198. package/lib/dependencies/CssUrlDependency.js +17 -13
  199. package/lib/dependencies/DllEntryDependency.js +1 -1
  200. package/lib/dependencies/DynamicExports.js +2 -2
  201. package/lib/dependencies/ExportBindingInitFragment.js +36 -9
  202. package/lib/dependencies/ExportsInfoDependency.js +7 -8
  203. package/lib/dependencies/ExternalModuleDependency.js +9 -5
  204. package/lib/dependencies/ExternalModuleInitFragment.js +2 -2
  205. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +8 -5
  206. package/lib/dependencies/HarmonyAcceptDependency.js +5 -5
  207. package/lib/dependencies/HarmonyCompatibilityDependency.js +52 -17
  208. package/lib/dependencies/HarmonyDetectionParserPlugin.js +11 -7
  209. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +13 -10
  210. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +78 -12
  211. package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
  212. package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
  213. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -63
  214. package/lib/dependencies/HarmonyExportInitFragment.js +18 -6
  215. package/lib/dependencies/HarmonyExportSpecifierDependency.js +51 -14
  216. package/lib/dependencies/HarmonyExports.js +7 -4
  217. package/lib/dependencies/HarmonyImportDependency.js +27 -19
  218. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -24
  219. package/lib/dependencies/HarmonyImportGuard.js +20 -30
  220. package/lib/dependencies/HarmonyImportSideEffectDependency.js +38 -9
  221. package/lib/dependencies/HarmonyImportSpecifierDependency.js +97 -49
  222. package/lib/dependencies/HarmonyModulesPlugin.js +7 -3
  223. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -3
  224. package/lib/dependencies/HtmlEntryDependency.js +37 -29
  225. package/lib/dependencies/HtmlInlineHtmlDependency.js +7 -8
  226. package/lib/dependencies/HtmlInlineScriptDependency.js +11 -8
  227. package/lib/dependencies/HtmlInlineStyleDependency.js +7 -10
  228. package/lib/dependencies/HtmlSourceDependency.js +22 -14
  229. package/lib/dependencies/ImportContextDependency.js +2 -2
  230. package/lib/dependencies/ImportDependency.js +24 -20
  231. package/lib/dependencies/ImportEagerDependency.js +6 -9
  232. package/lib/dependencies/ImportMetaContextDependency.js +2 -2
  233. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +14 -13
  234. package/lib/dependencies/ImportMetaContextPlugin.js +7 -3
  235. package/lib/dependencies/ImportMetaGlobDependency.js +2 -2
  236. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +2 -3
  237. package/lib/dependencies/ImportMetaGlobHelpers.js +19 -22
  238. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -1
  239. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -1
  240. package/lib/dependencies/ImportMetaPlugin.js +154 -71
  241. package/lib/dependencies/ImportMetaResolveDependency.js +3 -4
  242. package/lib/dependencies/ImportParserPlugin.js +49 -35
  243. package/lib/dependencies/ImportPhase.js +12 -5
  244. package/lib/dependencies/ImportPlugin.js +7 -3
  245. package/lib/dependencies/ImportWeakDependency.js +6 -9
  246. package/lib/dependencies/JsonExportsDependency.js +11 -7
  247. package/lib/dependencies/LoaderDependency.js +2 -2
  248. package/lib/dependencies/LoaderImportDependency.js +2 -2
  249. package/lib/dependencies/LoaderPlugin.js +11 -7
  250. package/lib/dependencies/LocalModuleDependency.js +5 -5
  251. package/lib/dependencies/LocalModulesHelpers.js +1 -1
  252. package/lib/dependencies/ModuleDecoratorDependency.js +6 -7
  253. package/lib/dependencies/ModuleDependency.js +9 -6
  254. package/lib/dependencies/ModuleDependencyTemplateAsId.js +4 -4
  255. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +3 -3
  256. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
  257. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -1
  258. package/lib/dependencies/ModuleInitFragmentDependency.js +24 -10
  259. package/lib/dependencies/NullDependency.js +3 -3
  260. package/lib/dependencies/ProvidedDependency.js +14 -10
  261. package/lib/dependencies/PureExpressionDependency.js +9 -10
  262. package/lib/dependencies/RequireContextDependency.js +2 -2
  263. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -4
  264. package/lib/dependencies/RequireContextPlugin.js +8 -4
  265. package/lib/dependencies/RequireEnsureDependenciesBlock.js +2 -2
  266. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +5 -8
  267. package/lib/dependencies/RequireEnsureDependency.js +8 -7
  268. package/lib/dependencies/RequireEnsurePlugin.js +7 -3
  269. package/lib/dependencies/RequireHeaderDependency.js +51 -12
  270. package/lib/dependencies/RequireIncludeDependency.js +6 -6
  271. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +2 -3
  272. package/lib/dependencies/RequireIncludePlugin.js +7 -3
  273. package/lib/dependencies/RequireJsStuffPlugin.js +7 -3
  274. package/lib/dependencies/RequireResolveContextDependency.js +2 -2
  275. package/lib/dependencies/RequireResolveDependency.js +4 -4
  276. package/lib/dependencies/RequireResolveHeaderDependency.js +4 -4
  277. package/lib/dependencies/RuntimeRequirementsDependency.js +5 -6
  278. package/lib/dependencies/StaticExportsDependency.js +2 -2
  279. package/lib/dependencies/SystemPlugin.js +10 -6
  280. package/lib/dependencies/SystemRuntimeModule.js +10 -0
  281. package/lib/dependencies/TopLevelAwaitDependency.js +11 -7
  282. package/lib/dependencies/URLContextDependency.js +2 -2
  283. package/lib/dependencies/URLDependency.js +110 -64
  284. package/lib/dependencies/URLPlugin.js +7 -3
  285. package/lib/dependencies/UnsupportedDependency.js +4 -4
  286. package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -4
  287. package/lib/dependencies/WebAssemblyImportDependency.js +5 -5
  288. package/lib/dependencies/WebpackIsIncludedDependency.js +6 -6
  289. package/lib/dependencies/WorkerAndWorkletPlugin.js +46 -28
  290. package/lib/dependencies/WorkerDependency.js +28 -22
  291. package/lib/dependencies/WorkletDependency.js +15 -14
  292. package/lib/dependencies/getFunctionExpression.js +8 -4
  293. package/lib/dependencies/processExportInfo.js +5 -5
  294. package/lib/dll/DelegatedModule.js +34 -22
  295. package/lib/dll/DelegatedModuleFactoryPlugin.js +15 -7
  296. package/lib/dll/DelegatedPlugin.js +2 -2
  297. package/lib/dll/DllEntryPlugin.js +2 -2
  298. package/lib/dll/DllModule.js +22 -15
  299. package/lib/dll/DllModuleFactory.js +7 -3
  300. package/lib/dll/DllPlugin.js +7 -5
  301. package/lib/dll/DllReferencePlugin.js +10 -7
  302. package/lib/dll/LibManifestPlugin.js +5 -5
  303. package/lib/electron/ElectronTargetPlugin.js +53 -49
  304. package/lib/errors/AsyncChunkWaterfallWarning.js +36 -0
  305. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  306. package/lib/errors/BroadContextsWarning.js +43 -0
  307. package/lib/errors/BuildCycleError.js +1 -1
  308. package/lib/errors/CacheEffectivenessWarning.js +55 -0
  309. package/lib/errors/ChunkRenderError.js +1 -1
  310. package/lib/errors/CircularDependenciesWarning.js +38 -0
  311. package/lib/errors/CodeGenerationError.js +1 -1
  312. package/lib/errors/CommentCompilationWarning.js +1 -1
  313. package/lib/errors/ConflictingResourceHintsWarning.js +35 -0
  314. package/lib/errors/DuplicateModulesWarning.js +45 -0
  315. package/lib/errors/DynamicExportsWarning.js +30 -0
  316. package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
  317. package/lib/errors/EntrypointOverlapWarning.js +45 -0
  318. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  319. package/lib/errors/EvalUsageWarning.js +28 -0
  320. package/lib/errors/HookWebpackError.js +5 -5
  321. package/lib/errors/HotspotsWarning.js +57 -0
  322. package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
  323. package/lib/errors/InlinedAssetsWarning.js +36 -0
  324. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  325. package/lib/errors/LargeModulesWarning.js +45 -0
  326. package/lib/errors/LegacyJavascriptWarning.js +48 -0
  327. package/lib/errors/MissingSideEffectsWarning.js +36 -0
  328. package/lib/errors/MixedExportsWarning.js +41 -0
  329. package/lib/errors/ModuleDependencyError.js +13 -16
  330. package/lib/errors/ModuleDependencyWarning.js +5 -15
  331. package/lib/errors/ModuleHashingError.js +1 -1
  332. package/lib/errors/ModuleNotFoundError.js +2 -2
  333. package/lib/errors/ModuleParseError.js +1 -2
  334. package/lib/errors/ModuleRestoreError.js +1 -1
  335. package/lib/errors/ModuleStoreError.js +1 -1
  336. package/lib/errors/NodeStuffInWebError.js +1 -1
  337. package/lib/errors/OsDependentRuleWarning.js +31 -0
  338. package/lib/errors/PureAnnotationsWarning.js +36 -0
  339. package/lib/errors/RedundantDynamicImportWarning.js +31 -0
  340. package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
  341. package/lib/errors/SplitChunksCappedWarning.js +41 -0
  342. package/lib/errors/TinyChunksWarning.js +40 -0
  343. package/lib/errors/TopLevelThisWarning.js +34 -0
  344. package/lib/errors/UnsplitVendorsWarning.js +42 -0
  345. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  346. package/lib/errors/UnusedAliasesWarning.js +29 -0
  347. package/lib/errors/UnusedDefinesWarning.js +29 -0
  348. package/lib/errors/UnusedExternalsWarning.js +29 -0
  349. package/lib/errors/UnusedReexportsWarning.js +42 -0
  350. package/lib/errors/UnusedRuleWarning.js +29 -0
  351. package/lib/errors/WebpackError.js +9 -5
  352. package/lib/errors/deriveStackFromNestedError.js +90 -0
  353. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  354. package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
  355. package/lib/esm/ModuleChunkLoadingPlugin.js +89 -51
  356. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +155 -62
  357. package/lib/hmr/HotModuleReplacement.runtime.js +24 -5
  358. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
  359. package/lib/hmr/LazyCompilationPlugin.js +45 -24
  360. package/lib/hmr/lazyCompilationBackend.js +9 -6
  361. package/lib/hmr/parserHooks.js +56 -0
  362. package/lib/html/HtmlGenerator.js +277 -77
  363. package/lib/html/HtmlModule.js +7 -3
  364. package/lib/html/HtmlModulesPlugin.js +282 -162
  365. package/lib/html/HtmlParser.js +31 -86
  366. package/lib/html/data.js +1928 -0
  367. package/lib/html/htmlMinify.js +288 -0
  368. package/lib/html/syntax.js +5557 -1155
  369. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -3
  370. package/lib/ids/DeterministicChunkIdsPlugin.js +1 -1
  371. package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
  372. package/lib/ids/HashedModuleIdsPlugin.js +6 -2
  373. package/lib/ids/IdHelpers.js +7 -8
  374. package/lib/ids/NamedChunkIdsPlugin.js +1 -1
  375. package/lib/ids/NamedModuleIdsPlugin.js +1 -1
  376. package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
  377. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  378. package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -3
  379. package/lib/ids/OccurrenceModuleIdsPlugin.js +7 -3
  380. package/lib/ids/SyncModuleIdsPlugin.js +4 -4
  381. package/lib/index.js +10 -0
  382. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
  383. package/lib/javascript/BasicEvaluatedExpression.js +18 -14
  384. package/lib/javascript/ChunkFormatHelpers.js +6 -6
  385. package/lib/javascript/ChunkHelpers.js +1 -1
  386. package/lib/javascript/CommonJsChunkFormatPlugin.js +11 -5
  387. package/lib/javascript/EnableChunkLoadingPlugin.js +2 -2
  388. package/lib/javascript/JavascriptGenerator.js +65 -165
  389. package/lib/javascript/JavascriptModule.js +9 -3
  390. package/lib/javascript/JavascriptModulesPlugin.js +98 -113
  391. package/lib/javascript/JavascriptParser.js +242 -99
  392. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  393. package/lib/javascript/ScopeAnalyzer.js +1094 -0
  394. package/lib/javascript/StartupHelpers.js +55 -9
  395. package/lib/javascript/syntax.js +2678 -232
  396. package/lib/json/JsonData.js +8 -4
  397. package/lib/json/JsonGenerator.js +38 -16
  398. package/lib/json/JsonModule.js +7 -3
  399. package/lib/json/JsonModulesPlugin.js +1 -1
  400. package/lib/json/JsonParser.js +5 -6
  401. package/lib/library/AbstractLibraryPlugin.js +20 -14
  402. package/lib/library/AmdLibraryPlugin.js +11 -7
  403. package/lib/library/AssignLibraryPlugin.js +19 -13
  404. package/lib/library/EnableLibraryPlugin.js +2 -2
  405. package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
  406. package/lib/library/JsonpLibraryPlugin.js +11 -7
  407. package/lib/library/ModuleLibraryPlugin.js +256 -64
  408. package/lib/library/SystemLibraryPlugin.js +12 -8
  409. package/lib/library/UmdLibraryPlugin.js +62 -25
  410. package/lib/loaders/LoaderRunner.js +14 -1
  411. package/lib/loaders/loadLoader.js +8 -4
  412. package/lib/logging/createConsoleLogger.js +7 -4
  413. package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
  414. package/lib/node/NodeEnvironmentPlugin.js +17 -3
  415. package/lib/node/NodeSourcePlugin.js +1 -1
  416. package/lib/node/NodeTargetPlugin.js +4 -3
  417. package/lib/node/NodeTemplatePlugin.js +1 -1
  418. package/lib/node/NodeWatchFileSystem.js +70 -9
  419. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
  420. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +72 -19
  421. package/lib/node/ReadFileCompileWasmPlugin.js +28 -16
  422. package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
  423. package/lib/node/nodeConsole.js +7 -3
  424. package/lib/optimize/AggressiveMergingPlugin.js +2 -2
  425. package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
  426. package/lib/optimize/ConcatenatedModule.js +985 -470
  427. package/lib/optimize/ConstExportsPlugin.js +11 -7
  428. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  429. package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
  430. package/lib/optimize/InlineExports.js +9 -5
  431. package/lib/optimize/InnerGraph.js +28 -12
  432. package/lib/optimize/InnerGraphPlugin.js +23 -18
  433. package/lib/optimize/LimitChunkCountPlugin.js +7 -3
  434. package/lib/optimize/MangleExportsPlugin.js +7 -8
  435. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
  436. package/lib/optimize/MinChunkSizePlugin.js +7 -3
  437. package/lib/optimize/ModuleConcatenationPlugin.js +51 -35
  438. package/lib/optimize/RealContentHashPlugin.js +10 -6
  439. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  440. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  441. package/lib/optimize/RuntimeChunkPlugin.js +2 -2
  442. package/lib/optimize/SideEffectsFlagPlugin.js +262 -39
  443. package/lib/optimize/SplitChunksPlugin.js +86 -24
  444. package/lib/performance/AssetsOverSizeLimitWarning.js +10 -2
  445. package/lib/performance/AsyncChunkWaterfallsPlugin.js +136 -0
  446. package/lib/performance/BroadContextsPlugin.js +142 -0
  447. package/lib/performance/CacheEffectivenessPlugin.js +125 -0
  448. package/lib/performance/ConflictingResourceHintsPlugin.js +99 -0
  449. package/lib/performance/DuplicateModulesPlugin.js +93 -0
  450. package/lib/performance/DuplicatePackagesPlugin.js +119 -0
  451. package/lib/performance/DuplicatePackagesWarning.js +84 -0
  452. package/lib/performance/DynamicExportsPlugin.js +120 -0
  453. package/lib/performance/EmbeddedSourceMapsPlugin.js +71 -0
  454. package/lib/performance/EntrypointOverlapPlugin.js +122 -0
  455. package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -1
  456. package/lib/performance/EvalUsagePlugin.js +115 -0
  457. package/lib/performance/HotspotsPlugin.js +296 -0
  458. package/lib/performance/InlinedAssetsPlugin.js +99 -0
  459. package/lib/performance/LargeModulesPlugin.js +126 -0
  460. package/lib/performance/LegacyJavascriptPlugin.js +139 -0
  461. package/lib/performance/MissingSideEffectsPlugin.js +138 -0
  462. package/lib/performance/MixedExportsPlugin.js +136 -0
  463. package/lib/performance/OsDependentRuleWarningPlugin.js +178 -0
  464. package/lib/performance/PureAnnotationsPlugin.js +219 -0
  465. package/lib/performance/RedundantDynamicImportsPlugin.js +225 -0
  466. package/lib/performance/RuntimeInLargeChunkWarning.js +27 -0
  467. package/lib/performance/ScopeHoistingBailoutsPlugin.js +164 -0
  468. package/lib/performance/SizeLimitsPlugin.js +139 -7
  469. package/lib/performance/SplitChunksCappedPlugin.js +99 -0
  470. package/lib/performance/TinyChunksPlugin.js +128 -0
  471. package/lib/performance/TopLevelThisPlugin.js +208 -0
  472. package/lib/performance/UnsplitVendorsPlugin.js +112 -0
  473. package/lib/performance/UnusedAliasesPlugin.js +253 -0
  474. package/lib/performance/UnusedDefinesPlugin.js +87 -0
  475. package/lib/performance/UnusedExternalsPlugin.js +110 -0
  476. package/lib/performance/UnusedReexportsPlugin.js +159 -0
  477. package/lib/performance/UnusedRuleWarningPlugin.js +105 -0
  478. package/lib/performance/getModuleSize.js +22 -0
  479. package/lib/performance/getSourceModules.js +22 -0
  480. package/lib/performance/hasOnlyUnusedExports.js +40 -0
  481. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +24 -10
  482. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +63 -46
  483. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -3
  484. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
  485. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
  486. package/lib/prefetch/ResourceHintPlugin.js +295 -78
  487. package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
  488. package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
  489. package/lib/prefetch/parseResourceHintOptions.js +31 -4
  490. package/lib/rules/BasicEffectRulePlugin.js +2 -2
  491. package/lib/rules/BasicMatcherRulePlugin.js +8 -4
  492. package/lib/rules/GlobMatcherRulePlugin.js +68 -0
  493. package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
  494. package/lib/rules/RuleSetCompiler.js +146 -12
  495. package/lib/rules/UseEffectRulePlugin.js +18 -11
  496. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
  497. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
  498. package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
  499. package/lib/runtime/BaseUriRuntimeModule.js +33 -7
  500. package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
  501. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
  502. package/lib/runtime/CompatRuntimeModule.js +5 -3
  503. package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
  504. package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
  505. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
  506. package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
  507. package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
  508. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
  509. package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
  510. package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
  511. package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
  512. package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
  513. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
  514. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
  515. package/lib/runtime/GlobalRuntimeModule.js +18 -0
  516. package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
  517. package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
  518. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +23 -6
  519. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
  520. package/lib/runtime/NonceRuntimeModule.js +10 -0
  521. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
  522. package/lib/runtime/PublicPathRuntimeModule.js +12 -2
  523. package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
  524. package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
  525. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
  526. package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
  527. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
  528. package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
  529. package/lib/runtime/SystemContextRuntimeModule.js +10 -0
  530. package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
  531. package/lib/runtime/WorkerRuntimeModule.js +11 -1
  532. package/lib/runtime/baseUri.js +63 -0
  533. package/lib/schemes/DataUriPlugin.js +1 -1
  534. package/lib/schemes/FileUriPlugin.js +1 -1
  535. package/lib/schemes/HttpUriPlugin.js +24 -15
  536. package/lib/schemes/VirtualUrlPlugin.js +13 -7
  537. package/lib/serialization/AggregateErrorSerializer.js +1 -1
  538. package/lib/serialization/BinaryMiddleware.js +4 -4
  539. package/lib/serialization/ErrorObjectSerializer.js +1 -1
  540. package/lib/serialization/FileMiddleware.js +7 -7
  541. package/lib/serialization/ObjectMiddleware.js +139 -114
  542. package/lib/serialization/PlainObjectSerializer.js +19 -16
  543. package/lib/sharing/ConsumeSharedModule.js +30 -21
  544. package/lib/sharing/ConsumeSharedPlugin.js +18 -10
  545. package/lib/sharing/ConsumeSharedRuntimeModule.js +6 -9
  546. package/lib/sharing/ProvideSharedModule.js +25 -16
  547. package/lib/sharing/ProvideSharedModuleFactory.js +7 -3
  548. package/lib/sharing/ProvideSharedPlugin.js +8 -4
  549. package/lib/sharing/SharePlugin.js +17 -5
  550. package/lib/sharing/ShareRuntimeModule.js +4 -4
  551. package/lib/sharing/resolveMatchedConfigs.js +9 -6
  552. package/lib/sharing/utils.js +1 -3
  553. package/lib/stats/DefaultStatsFactoryPlugin.js +50 -29
  554. package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
  555. package/lib/stats/DefaultStatsPrinterPlugin.js +36 -26
  556. package/lib/stats/StatsFactory.js +25 -26
  557. package/lib/stats/StatsPrinter.js +16 -12
  558. package/lib/typescript/TypeScriptPlugin.js +12 -14
  559. package/lib/url/URLParserPlugin.js +26 -13
  560. package/lib/util/AsyncQueue.js +4 -3
  561. package/lib/util/Hash.js +5 -1
  562. package/lib/util/LazySet.js +35 -22
  563. package/lib/util/LocConverter.js +36 -13
  564. package/lib/util/SourceProcessor.js +1050 -24
  565. package/lib/util/StringXor.js +1 -1
  566. package/lib/util/chainedImports.js +9 -5
  567. package/lib/util/cleverMerge.js +1 -1
  568. package/lib/util/comparators.js +45 -14
  569. package/lib/util/concatenate.js +203 -77
  570. package/lib/util/conventions.js +5 -1
  571. package/lib/util/createHash.js +2 -2
  572. package/lib/util/createHooksRegistry.js +8 -10
  573. package/lib/util/dataURL.js +225 -1
  574. package/lib/util/extractSourceMap.js +4 -3
  575. package/lib/util/findCaseMismatch.js +139 -0
  576. package/lib/util/formatLocation.js +1 -2
  577. package/lib/util/fs.js +22 -5
  578. package/lib/util/globUtils.js +298 -24
  579. package/lib/util/hash/BatchedHash.js +5 -1
  580. package/lib/util/hash/BulkUpdateHash.js +5 -1
  581. package/lib/util/hash/DebugHash.js +5 -1
  582. package/lib/util/hash/hash-digest.js +6 -2
  583. package/lib/util/identifier.js +4 -0
  584. package/lib/util/implicitTypeLoaderFallback.js +1 -1
  585. package/lib/util/internalSerializables.js +6 -0
  586. package/lib/util/lazyModule.js +56 -0
  587. package/lib/util/makeSerializable.js +7 -3
  588. package/lib/util/matchAlias.js +25 -0
  589. package/lib/util/mimeTypes.js +11 -5
  590. package/lib/util/nonNumericOnlyHash.js +4 -3
  591. package/lib/util/parseJson.js +5 -3
  592. package/lib/util/preloadModuleType.js +32 -0
  593. package/lib/util/registerExternalSerializer.js +7 -5
  594. package/lib/util/runtime.js +2 -2
  595. package/lib/util/semver.js +1 -1
  596. package/lib/util/serialization.js +28 -28
  597. package/lib/util/source.js +2 -2
  598. package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
  599. package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
  600. package/lib/wasm/wasmModuleFilename.js +54 -0
  601. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +41 -21
  602. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +43 -21
  603. package/lib/wasm-async/AsyncWasmModule.js +3 -3
  604. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
  605. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
  606. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
  607. package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
  608. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +34 -8
  609. package/lib/wasm-sync/SyncWasmModule.js +2 -2
  610. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
  611. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
  612. package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
  613. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
  614. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
  615. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
  616. package/lib/wasm-sync/WebAssemblyParser.js +4 -6
  617. package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
  618. package/lib/web/FetchCompileAsyncWasmPlugin.js +101 -19
  619. package/lib/web/FetchCompileWasmPlugin.js +46 -16
  620. package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
  621. package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
  622. package/lib/web/JsonpTemplatePlugin.js +2 -2
  623. package/lib/webpack.js +22 -11
  624. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
  625. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
  626. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  627. package/module.d.ts +1 -0
  628. package/package.json +32 -25
  629. package/schemas/WebpackOptions.check.js +1 -1
  630. package/schemas/WebpackOptions.json +670 -36
  631. package/schemas/plugins/HtmlParserOptions.check.js +1 -1
  632. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  633. package/schemas/plugins/container/ContainerPlugin.json +10 -0
  634. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  635. package/schemas/plugins/container/ModuleFederationPlugin.json +10 -0
  636. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
  637. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  638. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  639. package/types.d.ts +3144 -454
  640. package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
@@ -15,6 +15,7 @@ const {
15
15
  const { UsageState } = require("../ExportsInfo");
16
16
  const Generator = require("../Generator");
17
17
  const InitFragment = require("../InitFragment");
18
+ const ModuleFilenameHelpers = require("../ModuleFilenameHelpers");
18
19
  const {
19
20
  CSS_TEXT_TYPE,
20
21
  CSS_TEXT_TYPES,
@@ -33,50 +34,60 @@ const CssImportDependency = require("../dependencies/CssImportDependency");
33
34
  const HarmonyImportSideEffectDependency = require("../dependencies/HarmonyImportSideEffectDependency");
34
35
 
35
36
  const { encodeMappings } = require("../util/createMappings");
36
- const { contextifySourceUrl } = require("../util/identifier");
37
- const memoize = require("../util/memoize");
37
+ const {
38
+ contextifySourceUrl,
39
+ makePathsAbsolute
40
+ } = require("../util/identifier");
41
+ const PropertyName = require("../util/property");
38
42
  const {
39
43
  PUBLIC_PATH_FULL_HASH,
40
44
  walkFullHashPlaceholders
41
45
  } = require("../util/publicPathPlaceholder");
46
+ const CssModulesPlugin = require("./CssModulesPlugin");
42
47
 
43
48
  // Avoids `type.split("/")[0]` allocation on the `getTypes` hot path.
44
49
  const CSS_TYPE_PREFIX = `${CSS_TYPE}/`;
45
50
 
46
- /** @typedef {import("webpack-sources").Source} Source */
47
- /** @typedef {import("../../declarations/WebpackOptions").CssModuleGeneratorOptions} CssModuleGeneratorOptions */
48
- /** @typedef {import("../Compilation").DependencyConstructor} DependencyConstructor */
49
- /** @typedef {import("../CodeGenerationResults")} CodeGenerationResults */
50
- /** @typedef {import("../Dependency")} Dependency */
51
- /** @typedef {import("../DependencyTemplate").CssData} CssData */
52
- /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
53
- /** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} CssDependencyTemplateContext */
54
- /** @typedef {import("../Generator").GenerateContext} GenerateContext */
55
- /** @typedef {import("../Generator").UpdateHashContext} UpdateHashContext */
56
- /** @typedef {import("../Module").BuildInfo} BuildInfo */
57
- /** @typedef {import("../Module").BuildMeta} BuildMeta */
58
- /** @typedef {import("../Module").ConcatenationBailoutReasonContext} ConcatenationBailoutReasonContext */
59
- /** @typedef {import("../Module").SourceType} SourceType */
60
- /** @typedef {import("../Module").SourceTypes} SourceTypes */
61
- /** @typedef {import("../ModuleGraph")} ModuleGraph */
62
- /** @typedef {import("../NormalModule")} NormalModule */
63
- /** @typedef {import("../util/Hash")} Hash */
64
- /** @typedef {import("./CssModulesPlugin").ModuleFactoryCacheEntry} ModuleFactoryCacheEntry */
65
- /** @typedef {import("./CssModule")} CssModule */
66
- /** @typedef {import("./CssModule").CssModuleBuildInfo} CssModuleBuildInfo */
67
- /** @typedef {import("./CssModule").CssModuleBuildMeta} CssModuleBuildMeta */
68
- /** @typedef {import("../Compilation")} Compilation */
69
- /** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
70
- /** @typedef {import("../../declarations/WebpackOptions").CssParserExportType} CssParserExportType */
51
+ const URL_SCHEME_REGEXP = /^(?:data|https?):/;
52
+
53
+ /** @import { Source, RawSourceMap } from "webpack-sources" */
54
+ /**
55
+ * @import {
56
+ * CssModuleGeneratorOptions
57
+ * } from "../../declarations/WebpackOptions"
58
+ */
59
+ /** @import { DependencyConstructor } from "../Compilation" */
60
+ /** @import CodeGenerationResults from "../CodeGenerationResults" */
61
+ /** @import Dependency from "../Dependency" */
62
+ /**
63
+ * @import {
64
+ * CssData,
65
+ * DependencyTemplateContext,
66
+ * CssDependencyTemplateContext
67
+ * } from "../DependencyTemplate"
68
+ */
69
+ /** @import { GenerateContext, UpdateHashContext } from "../Generator" */
70
+ /**
71
+ * @import {
72
+ * ConcatenationBailoutReasonContext,
73
+ * SourceType,
74
+ * SourceTypes
75
+ * } from "../Module"
76
+ */
77
+ /** @import ModuleGraph from "../ModuleGraph" */
78
+ /** @import NormalModule from "../NormalModule" */
79
+ /** @import Hash from "../util/Hash" */
80
+ /** @import { ModuleFactoryCacheEntry } from "./CssModulesPlugin" */
81
+ /**
82
+ * @import CssModule, {
83
+ * CssModuleBuildInfo,
84
+ * CssModuleBuildMeta
85
+ * } from "./CssModule"
86
+ */
71
87
 
72
88
  /** @typedef {{ line: number, column: number }} SourcePosition */
73
89
  /** @typedef {Map<string, SourcePosition>} ExportLocsMap */
74
90
 
75
- const getPropertyName = memoize(() => require("../util/property"));
76
- const getCssModulesPlugin = memoize(() => require("./CssModulesPlugin"));
77
-
78
- /** @typedef {import("webpack-sources").RawSourceMap} RawSourceMap */
79
-
80
91
  /**
81
92
  * Build a v3 source map mapping CSS-class export lines back to their selector positions.
82
93
  * @param {string} generatedJs the generated JS string
@@ -304,8 +315,13 @@ class CssGenerator extends Generator {
304
315
  const generateContentCode = () => {
305
316
  switch (exportType) {
306
317
  case "style": {
307
- const cssSource = this._renderCss(module, generateContext);
308
- if (!cssSource) return "";
318
+ const rendered = this._renderCss(module, generateContext);
319
+ if (!rendered) return "";
320
+ const cssSource = this._renderEmbeddedSource(
321
+ rendered,
322
+ module,
323
+ generateContext
324
+ );
309
325
 
310
326
  generateContext.runtimeRequirements.add(
311
327
  RuntimeGlobals.cssInjectStyle
@@ -421,7 +437,7 @@ class CssGenerator extends Generator {
421
437
  const source = new ConcatSource();
422
438
  /** @type {Set<string>} */
423
439
  const usedIdentifiers = new Set();
424
- const { RESERVED_IDENTIFIER } = getPropertyName();
440
+ const { RESERVED_IDENTIFIER } = PropertyName;
425
441
 
426
442
  if (defaultExport) {
427
443
  const usedName = getUsedExportName("default");
@@ -601,9 +617,7 @@ class CssGenerator extends Generator {
601
617
  generateError(error, module, generateContext) {
602
618
  switch (generateContext.type) {
603
619
  case JAVASCRIPT_TYPE: {
604
- return new RawSource(
605
- `throw new Error(${JSON.stringify(error.message)});`
606
- );
620
+ return new RawSource(Generator.throwBuildErrorCode(error));
607
621
  }
608
622
  case CSS_TYPE: {
609
623
  return new RawSource(`/**\n ${error.message} \n**/`);
@@ -740,9 +754,27 @@ class CssGenerator extends Generator {
740
754
  * @param {Hash} hash hash that will be modified
741
755
  * @param {UpdateHashContext} updateHashContext context for updating hash
742
756
  */
743
- updateHash(hash, { module }) {
757
+ updateHash(hash, { module, runtimeTemplate }) {
744
758
  hash.update(/** @type {boolean} */ (this._esModule).toString());
745
759
  hash.update(/** @type {boolean} */ (this._exportsOnly).toString());
760
+ // Only a module embedded in JS gets an inlined map, which varies on devtool
761
+ // and its filename options without changing the source. `String`: templates
762
+ // may be functions.
763
+ const exportType = /** @type {CssModule} */ (module).exportType || "link";
764
+ if (runtimeTemplate && exportType !== "link") {
765
+ // What a tap varies on has to reach the key, or a changed option replays.
766
+ runtimeTemplate.compilation.hooks.embeddedSourceHash.call(module, hash);
767
+ const { compilation } = runtimeTemplate;
768
+ const devtool = compilation.options.devtool;
769
+ const outputOptions = compilation.outputOptions;
770
+ hash.update(
771
+ `|${typeof devtool === "string" ? devtool : ""}|${
772
+ outputOptions.devtoolNamespace || ""
773
+ }|${String(outputOptions.devtoolModuleFilenameTemplate || "")}|${String(
774
+ outputOptions.devtoolFallbackModuleFilenameTemplate || ""
775
+ )}`
776
+ );
777
+ }
746
778
  }
747
779
 
748
780
  /**
@@ -873,7 +905,6 @@ class CssGenerator extends Generator {
873
905
  const compilation = generateContext.runtimeTemplate.compilation;
874
906
  const undoPath = "";
875
907
 
876
- const CssModulesPlugin = getCssModulesPlugin();
877
908
  const hooks = CssModulesPlugin.getCompilationHooks(compilation);
878
909
  return CssModulesPlugin.renderModule(
879
910
  /** @type {CssModule} */ (module),
@@ -887,6 +918,88 @@ class CssGenerator extends Generator {
887
918
  );
888
919
  }
889
920
 
921
+ /**
922
+ * Applies the devtool filename template to the sources of a map that is inlined
923
+ * into the module's own output: `SourceMapDevToolPlugin` only rewrites maps of
924
+ * emitted assets, so this one would keep raw module identifiers.
925
+ * @param {RawSourceMap} map the map to rename the sources of
926
+ * @param {GenerateContext} generateContext the generate context
927
+ * @returns {RawSourceMap} the map with devtool source names
928
+ */
929
+ _nameMapSources(map, generateContext) {
930
+ const { chunkGraph, runtimeTemplate } = generateContext;
931
+ const { compilation } = runtimeTemplate;
932
+ const outputOptions = compilation.outputOptions;
933
+ const absolutify = makePathsAbsolute.bindContextCache(
934
+ /** @type {string} */ (compilation.options.context),
935
+ compilation.compiler.root
936
+ );
937
+ const options = {
938
+ moduleFilenameTemplate:
939
+ outputOptions.devtoolModuleFilenameTemplate ||
940
+ ModuleFilenameHelpers.DEFAULT_MODULE_FILENAME_TEMPLATE,
941
+ namespace: outputOptions.devtoolNamespace || ""
942
+ };
943
+ const contextInfo = {
944
+ requestShortener: compilation.requestShortener,
945
+ chunkGraph,
946
+ hashFunction: outputOptions.hashFunction
947
+ };
948
+ /** @type {Set<string>} */
949
+ const usedNames = new Set();
950
+ const sources = map.sources.map((source) => {
951
+ if (!source.startsWith("webpack://")) return source;
952
+ const absoluteSource = absolutify(source.slice(10));
953
+ // Sources a loader reported for files that are not modules (e.g. a less
954
+ // partial) are templated as a path, like `SourceMapDevToolPlugin` does
955
+ const module = compilation.findModule(absoluteSource) || absoluteSource;
956
+ if (typeof module === "string" && URL_SCHEME_REGEXP.test(module)) {
957
+ return module;
958
+ }
959
+ let name = ModuleFilenameHelpers.createFilename(
960
+ module,
961
+ options,
962
+ contextInfo
963
+ );
964
+ // Same disambiguation as `SourceMapDevToolPlugin`: modules sharing a
965
+ // resource path (e.g. one file imported under two layers) collide
966
+ if (usedNames.has(name)) {
967
+ name = ModuleFilenameHelpers.createFilename(
968
+ module,
969
+ {
970
+ moduleFilenameTemplate:
971
+ outputOptions.devtoolFallbackModuleFilenameTemplate ||
972
+ ModuleFilenameHelpers.DEFAULT_FALLBACK_MODULE_FILENAME_TEMPLATE,
973
+ namespace: options.namespace
974
+ },
975
+ contextInfo
976
+ );
977
+ while (usedNames.has(name)) name += "*";
978
+ }
979
+ usedNames.add(name);
980
+ return name;
981
+ });
982
+
983
+ return { ...map, sources };
984
+ }
985
+
986
+ /**
987
+ * Offer CSS bound for a JS string literal to `renderEmbeddedSource`. No `.css`
988
+ * asset carries this text, so an asset-level minimizer never sees it.
989
+ * @param {Source} cssSource the CSS source
990
+ * @param {NormalModule} module the module
991
+ * @param {GenerateContext} generateContext the generate context
992
+ * @returns {Source} the source a tap returned, or the original
993
+ */
994
+ _renderEmbeddedSource(cssSource, module, generateContext) {
995
+ const { compilation } = generateContext.runtimeTemplate;
996
+ return compilation._resolveEmbeddedSource(cssSource, {
997
+ type: CSS_TYPE,
998
+ hostType: JAVASCRIPT_TYPE,
999
+ module
1000
+ });
1001
+ }
1002
+
890
1003
  /**
891
1004
  * Convert a CSS Source into a JS string literal, splicing `__webpack_require__.h()` for `[fullhash]` placeholders.
892
1005
  * @param {Source} cssSource the CSS source
@@ -897,11 +1010,17 @@ class CssGenerator extends Generator {
897
1010
  _cssToJsLiteral(cssSource, devtool, generateContext) {
898
1011
  const { source, map } = cssSource.sourceAndMap();
899
1012
  let content = /** @type {string} */ (source);
900
- if (map) {
1013
+ // A `renderEmbeddedSource` tap may hand back a mapped source whatever
1014
+ // `devtool` says, so asking for no map at all is checked here too — this
1015
+ // data URI would ship the sources inside the bundle. `hidden` is the same
1016
+ // answer for the same reason.
1017
+ const wanted = typeof devtool === "string" && !devtool.includes("hidden");
1018
+ if (map && wanted) {
1019
+ const namedMap = this._nameMapSources(map, generateContext);
901
1020
  const inlineMap =
902
1021
  typeof devtool === "string" && devtool.includes("nosources")
903
- ? { ...map, sourcesContent: undefined }
904
- : map;
1022
+ ? { ...namedMap, sourcesContent: undefined }
1023
+ : namedMap;
905
1024
  const base64Map = Buffer.from(JSON.stringify(inlineMap), "utf8").toString(
906
1025
  "base64"
907
1026
  );
@@ -955,6 +1074,15 @@ class CssGenerator extends Generator {
955
1074
  result = cssSource;
956
1075
  }
957
1076
 
1077
+ // Only text bound for a JS literal. `CSS_TEXT_TYPE` is an HTML inline
1078
+ // `<style>` / `style=""`, and whether that is CSS at all depends on the
1079
+ // element's `type` — a call the HTML layer makes and `htmlMinify` honors,
1080
+ // which is not visible here. After the `@charset` prefix, so a tap sees a
1081
+ // whole stylesheet.
1082
+ if (result && asJsLiteral) {
1083
+ result = this._renderEmbeddedSource(result, module, generateContext);
1084
+ }
1085
+
958
1086
  if (asJsLiteral) {
959
1087
  const devtool =
960
1088
  generateContext.runtimeTemplate.compilation.options.devtool;
@@ -6,14 +6,14 @@
6
6
  "use strict";
7
7
 
8
8
  const { SyncWaterfallHook } = require("tapable");
9
- /** @typedef {import("../Compilation")} Compilation */
9
+ /** @import Compilation from "../Compilation" */
10
10
  const RuntimeGlobals = require("../RuntimeGlobals");
11
11
  const RuntimeModule = require("../RuntimeModule");
12
12
  const Template = require("../Template");
13
13
  const createHooksRegistry = require("../util/createHooksRegistry");
14
14
 
15
- /** @typedef {import("../Chunk")} Chunk */
16
- /** @typedef {import("../Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */
15
+ /** @import Chunk from "../Chunk" */
16
+ /** @import { ReadOnlyRuntimeRequirements } from "../Module" */
17
17
 
18
18
  /**
19
19
  * @typedef {object} CssInjectCompilationHooks
@@ -63,7 +63,9 @@ class CssInjectStyleRuntimeModule extends RuntimeModule {
63
63
  ? [
64
64
  "if (typeof document === 'undefined') {",
65
65
  Template.indent([
66
- `${runtimeTemplate.cssServerStyleRegistry()}[identifier] = css;`,
66
+ // "module-" keeps numeric module ids from enumerating in ascending
67
+ // order instead of the order the styles were applied in
68
+ `${runtimeTemplate.cssServerStyleRegistry()}["module-" + identifier] = css;`,
67
69
  "return;"
68
70
  ]),
69
71
  "}"
@@ -74,7 +76,7 @@ class CssInjectStyleRuntimeModule extends RuntimeModule {
74
76
  "if (typeof document === 'undefined') {",
75
77
  Template.indent([
76
78
  `${cst} styles = ${runtimeTemplate.cssServerStyleRegistry()};`,
77
- "for (var i = 0; i < identifiers.length; i++) delete styles[identifiers[i]];",
79
+ 'for (var i = 0; i < identifiers.length; i++) delete styles["module-" + identifiers[i]];',
78
80
  "return;"
79
81
  ]),
80
82
  "}"
@@ -6,8 +6,7 @@
6
6
  "use strict";
7
7
 
8
8
  const { SyncWaterfallHook } = require("tapable");
9
- /** @typedef {import("../Compilation")} Compilation */
10
- const { CSS_TYPE } = require("../ModuleSourceTypeConstants");
9
+ /** @import Compilation from "../Compilation" */
11
10
  const RuntimeGlobals = require("../RuntimeGlobals");
12
11
  const RuntimeModule = require("../RuntimeModule");
13
12
  const Template = require("../Template");
@@ -15,10 +14,8 @@ const compileBooleanMatcher = require("../util/compileBooleanMatcher");
15
14
  const createHooksRegistry = require("../util/createHooksRegistry");
16
15
  const { chunkHasCss } = require("./CssModulesPlugin");
17
16
 
18
- /** @typedef {import("../Chunk")} Chunk */
19
- /** @typedef {import("../Chunk").ChunkId} ChunkId */
20
- /** @typedef {import("../ChunkGraph")} ChunkGraph */
21
- /** @typedef {import("../Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */
17
+ /** @import Chunk, { ChunkId } from "../Chunk" */
18
+ /** @import { ReadOnlyRuntimeRequirements } from "../Module" */
22
19
 
23
20
  const createCompilationHooks = () => ({
24
21
  /**
@@ -74,20 +71,14 @@ class CssLoadingRuntimeModule extends RuntimeModule {
74
71
  uniqueName,
75
72
  chunkLoadTimeout: loadTimeout,
76
73
  charset,
77
- importMetaName
74
+ resourceHints
78
75
  }
79
76
  } = compilation;
77
+ const dedupePrefetch = Boolean(resourceHints && resourceHints.dedupe);
80
78
  const fn = RuntimeGlobals.ensureChunkHandlers;
81
- const conditionMap = chunkGraph.getChunkConditionMap(
82
- chunk,
83
- /**
84
- * @param {Chunk} chunk the chunk
85
- * @param {ChunkGraph} chunkGraph the chunk graph
86
- * @returns {boolean} true, if the chunk has css
87
- */
88
- (chunk, chunkGraph) =>
89
- Boolean(chunkGraph.getChunkModulesIterableBySourceType(chunk, CSS_TYPE))
90
- );
79
+ // The predicate the stylesheet is emitted from: an `@import` external gives a
80
+ // chunk a css asset without a `CSS_TYPE` module, and it still has to load.
81
+ const conditionMap = chunkGraph.getChunkConditionMap(chunk, chunkHasCss);
91
82
  const hasCssMatcher = compileBooleanMatcher(conditionMap);
92
83
 
93
84
  const withLoading =
@@ -122,6 +113,15 @@ class CssLoadingRuntimeModule extends RuntimeModule {
122
113
  // `parser.javascript.dynamicImportCssPreload` — CSS-only preload order.
123
114
  chunk.hasChildByOrder(chunkGraph, "cssPreload", true, chunkHasCss));
124
115
 
116
+ // Under module output each stylesheet is a known file, so the urls are written
117
+ // out and read by id rather than built from the chunk id at runtime.
118
+ const cssUrls = runtimeTemplate.analyzableCssChunkUrls(
119
+ chunk,
120
+ chunkGraph,
121
+ _runtimeRequirements,
122
+ this
123
+ );
124
+
125
125
  const { linkPreload, linkPrefetch, createStylesheet, linkInsert } =
126
126
  CssLoadingRuntimeModule.getCompilationHooks(compilation);
127
127
 
@@ -176,7 +176,28 @@ class CssLoadingRuntimeModule extends RuntimeModule {
176
176
  ",\n"
177
177
  )
178
178
  )}\n}`;
179
+ // The url is read through a thunk so a runtime carrying many stylesheets builds
180
+ // only the one it loads.
181
+ /**
182
+ * @param {string} id expression naming the chunk whose stylesheet is wanted
183
+ * @returns {string} expression evaluating to its url
184
+ */
185
+ const cssUrl = (id) =>
186
+ cssUrls === undefined || cssUrls === null
187
+ ? `${RuntimeGlobals.publicPath} + ${RuntimeGlobals.getChunkCssFilename}(${id})`
188
+ : `cssUrls[${id}]()`;
179
189
  return Template.asString([
190
+ ...(cssUrls
191
+ ? [
192
+ `${cst} cssUrls = {\n${Template.indent(
193
+ Array.from(
194
+ cssUrls,
195
+ ([id, url]) =>
196
+ `${JSON.stringify(String(id))}: ${runtimeTemplate.returningFunction(url)}`
197
+ ).join(",\n")
198
+ )}\n};`
199
+ ]
200
+ : []),
180
201
  "// object to store loaded and loading chunks",
181
202
  "// undefined = chunk not loaded, null = chunk preloaded/prefetched",
182
203
  "// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded",
@@ -296,7 +317,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
296
317
  "promises.push(installedChunkData[2] = promise);",
297
318
  "",
298
319
  "// start chunk loading",
299
- `${cst} url = ${RuntimeGlobals.publicPath} + ${RuntimeGlobals.getChunkCssFilename}(chunkId);`,
320
+ `${cst} url = ${cssUrl("chunkId")};`,
300
321
  "// create error before stack unwound to get useful stacktrace later",
301
322
  `${cst} error = new Error();`,
302
323
  `${cst} loadingEnded = ${runtimeTemplate.basicFunction(
@@ -347,7 +368,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
347
368
  `Promise.all([import('fs'), import('url')]).then(${runtimeTemplate.basicFunction(
348
369
  "[{ readFile }, { URL }]",
349
370
  [
350
- `readFile(new URL(url, ${importMetaName}.url), 'utf8', ${runtimeTemplate.basicFunction(
371
+ `readFile(${runtimeTemplate.importMetaUrl("url")}, 'utf8', ${runtimeTemplate.basicFunction(
351
372
  "err, content",
352
373
  [
353
374
  `if (!err) ${runtimeTemplate.cssServerStyleRegistry()}["chunk-" + chunkId] = content;`,
@@ -402,10 +423,23 @@ class CssLoadingRuntimeModule extends RuntimeModule {
402
423
  "}",
403
424
  'link.rel = "prefetch";',
404
425
  'link.as = "style";',
405
- `link.href = ${RuntimeGlobals.publicPath} + ${RuntimeGlobals.getChunkCssFilename}(chunkId);`
426
+ `link.href = ${cssUrl("chunkId")};`
406
427
  ]),
407
428
  chunk
408
429
  ),
430
+ dedupePrefetch
431
+ ? Template.asString([
432
+ // Chrome re-requests a resource when a prefetch link is added
433
+ // after it was already (pre)loaded via markup; skip in that case.
434
+ `${cst} links = document.getElementsByTagName("link");`,
435
+ `for(${lt} i = 0; i < links.length; i++) {`,
436
+ Template.indent([
437
+ `${cst} l = links[i];`,
438
+ 'if(l.href === link.href && (l.rel === "prefetch" || l.rel === "preload")) return;'
439
+ ]),
440
+ "}"
441
+ ])
442
+ : "",
409
443
  "document.head.appendChild(link);"
410
444
  ]),
411
445
  "}"
@@ -438,7 +472,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
438
472
  "}",
439
473
  'link.rel = "preload";',
440
474
  'link.as = "style";',
441
- `link.href = ${RuntimeGlobals.publicPath} + ${RuntimeGlobals.getChunkCssFilename}(chunkId);`,
475
+ `link.href = ${cssUrl("chunkId")};`,
442
476
  crossOriginLoading
443
477
  ? crossOriginLoading === "use-credentials"
444
478
  ? 'link.crossOrigin = "use-credentials";'
@@ -518,7 +552,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
518
552
  // best-effort: a non-file publicPath (e.g. a CDN) can't be read from disk, so skip
519
553
  "try {",
520
554
  Template.indent([
521
- `readFile(new URL(url, ${importMetaName}.url), 'utf8', ${runtimeTemplate.basicFunction(
555
+ `readFile(${runtimeTemplate.importMetaUrl("url")}, 'utf8', ${runtimeTemplate.basicFunction(
522
556
  "err, content",
523
557
  [
524
558
  "if (!err) registry[key] = content;",
@@ -542,8 +576,7 @@ class CssLoadingRuntimeModule extends RuntimeModule {
542
576
  "// Read CSS removed chunks from update manifest",
543
577
  `${cst} cssRemovedChunks = css && css.r;`,
544
578
  `chunkIds.forEach(${runtimeTemplate.basicFunction("chunkId", [
545
- `${cst} filename = ${RuntimeGlobals.getChunkCssFilename}(chunkId);`,
546
- `${cst} url = ${RuntimeGlobals.publicPath} + filename;`,
579
+ `${cst} url = ${RuntimeGlobals.publicPath} + ${RuntimeGlobals.getChunkCssFilename}(chunkId);`,
547
580
  `${cst} oldTag = loadStylesheet(chunkId, url);`,
548
581
  `if(!oldTag && !${withHmr} ) return;`,
549
582
  "// Skip if CSS was removed",
@@ -8,15 +8,18 @@
8
8
  const NormalModule = require("../NormalModule");
9
9
  const makeSerializable = require("../util/makeSerializable");
10
10
 
11
- /** @typedef {import("../DependencyTemplate").CssData} CssData */
12
- /** @typedef {import("../Module")} Module */
13
- /** @typedef {import("../Module").BuildMeta} BuildMeta */
14
- /** @typedef {import("../NormalModule").NormalModuleBuildInfo} NormalModuleBuildInfo */
15
- /** @typedef {import("../NormalModule").NormalModuleCreateData} NormalModuleCreateData */
16
- /** @typedef {import("../RequestShortener")} RequestShortener */
11
+ /** @import { CssData } from "../DependencyTemplate" */
12
+ /** @import Module, { BuildMeta } from "../Module" */
13
+ /**
14
+ * @import {
15
+ * NormalModuleBuildInfo,
16
+ * NormalModuleCreateData
17
+ * } from "../NormalModule"
18
+ */
19
+ /** @import RequestShortener from "../RequestShortener" */
17
20
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[CssLayer, Supports, Media, Inheritance | undefined, CssParserExportType | undefined]>} ObjectDeserializerContext */
18
21
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[CssLayer, Supports, Media, Inheritance | undefined, CssParserExportType | undefined]>} ObjectSerializerContext */
19
- /** @typedef {import("../../declarations/WebpackOptions").CssParserExportType} CssParserExportType */
22
+ /** @import { CssParserExportType } from "../../declarations/WebpackOptions" */
20
23
 
21
24
  /** @typedef {string | undefined} CssLayer */
22
25
  /** @typedef {string | undefined} Supports */