webpack 5.111.0 → 5.112.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 (781) hide show
  1. package/README.md +1 -1
  2. package/lib/Chunk.js +3 -966
  3. package/lib/Compilation.js +237 -138
  4. package/lib/Compiler.js +23 -24
  5. package/lib/Dependency.js +3 -551
  6. package/lib/DependencyTemplate.js +3 -69
  7. package/lib/EntryPlugin.js +3 -68
  8. package/lib/Entrypoint.js +3 -121
  9. package/lib/ExternalsPlugin.js +3 -92
  10. package/lib/FileSystemInfo.js +3 -4629
  11. package/lib/InitFragment.js +3 -204
  12. package/lib/LibraryTemplatePlugin.js +3 -46
  13. package/lib/ModuleFilenameHelpers.js +3 -400
  14. package/lib/ModuleNotFoundError.js +2 -2
  15. package/lib/MultiCompiler.js +43 -24
  16. package/lib/NormalModule.js +3 -2190
  17. package/lib/NullFactory.js +3 -22
  18. package/lib/ProgressPlugin.js +3 -908
  19. package/lib/RawModule.js +3 -197
  20. package/lib/RequestShortener.js +3 -37
  21. package/lib/SingleEntryPlugin.js +1 -1
  22. package/lib/WebpackError.js +2 -2
  23. package/lib/asset/AssetBytesGenerator.js +15 -9
  24. package/lib/asset/AssetBytesParser.js +3 -3
  25. package/lib/asset/AssetGenerator.js +61 -38
  26. package/lib/asset/AssetModule.js +2 -2
  27. package/lib/asset/AssetModulesPlugin.js +6 -9
  28. package/lib/asset/AssetParser.js +3 -3
  29. package/lib/asset/AssetSourceGenerator.js +15 -9
  30. package/lib/asset/AssetSourceParser.js +3 -3
  31. package/lib/asset/RawDataUrlModule.js +17 -10
  32. package/lib/asset/WebManifestGenerator.js +7 -7
  33. package/lib/asset/WebManifestParser.js +5 -5
  34. package/lib/async-modules/AsyncModuleHelpers.js +6 -5
  35. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
  36. package/lib/async-modules/InferAsyncModulesPlugin.js +4 -3
  37. package/lib/async-modules/isGeneratorLowered.js +3 -3
  38. package/lib/bun/BunTargetPlugin.js +1 -1
  39. package/lib/cache/AddBuildDependenciesPlugin.js +2 -19
  40. package/lib/{Cache.js → cache/Cache.js} +1 -1
  41. package/lib/{CacheFacade.js → cache/CacheFacade.js} +5 -5
  42. package/lib/cache/IdleFileCachePlugin.js +2 -2
  43. package/lib/cache/MemoryCachePlugin.js +6 -6
  44. package/lib/cache/MemoryWithGcCachePlugin.js +9 -10
  45. package/lib/cache/PackFileCacheStrategy.js +11 -28
  46. package/lib/cache/ResolverCachePlugin.js +8 -4
  47. package/lib/cache/getLazyHashedEtag.js +3 -5
  48. package/lib/cache/mergeEtags.js +1 -1
  49. package/lib/{OptionsApply.js → config/OptionsApply.js} +3 -3
  50. package/lib/{PlatformPlugin.js → config/PlatformPlugin.js} +2 -2
  51. package/lib/{WebpackOptionsApply.js → config/WebpackOptionsApply.js} +217 -200
  52. package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
  53. package/lib/config/browserslistTargetHandler.js +3 -9
  54. package/lib/{cli.js → config/cli.js} +5 -158
  55. package/lib/config/defaults.js +192 -122
  56. package/lib/config/getClaimedAssetTypes.js +28 -21
  57. package/lib/config/normalization.js +18 -7
  58. package/lib/config/target.js +13 -4
  59. package/lib/container/ContainerEntryDependency.js +1 -1
  60. package/lib/container/ContainerEntryModule.js +13 -11
  61. package/lib/container/ContainerEntryModuleFactory.js +2 -2
  62. package/lib/container/ContainerExposedDependency.js +1 -1
  63. package/lib/container/ContainerPlugin.js +178 -5
  64. package/lib/container/ContainerReferencePlugin.js +75 -14
  65. package/lib/container/FallbackDependency.js +1 -1
  66. package/lib/container/FallbackItemDependency.js +1 -1
  67. package/lib/container/FallbackModule.js +12 -10
  68. package/lib/container/FallbackModuleFactory.js +2 -2
  69. package/lib/container/HoistContainerReferencesPlugin.js +10 -11
  70. package/lib/container/ModuleFederationPlugin.js +306 -7
  71. package/lib/container/RemoteModule.js +14 -10
  72. package/lib/container/RemoteRuntimeModule.js +5 -5
  73. package/lib/container/RemoteToExternalDependency.js +1 -1
  74. package/lib/container/moduleFederationHooks.js +1 -1
  75. package/lib/{ContextExclusionPlugin.js → context/ContextExclusionPlugin.js} +1 -1
  76. package/lib/{ContextModule.js → context/ContextModule.js} +50 -36
  77. package/lib/{ContextModuleFactory.js → context/ContextModuleFactory.js} +25 -24
  78. package/lib/{ContextReplacementPlugin.js → context/ContextReplacementPlugin.js} +4 -4
  79. package/lib/css/CssGenerator.js +57 -42
  80. package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
  81. package/lib/css/CssLoadingRuntimeModule.js +77 -44
  82. package/lib/css/CssModule.js +27 -29
  83. package/lib/css/CssModulesPlugin.js +128 -44
  84. package/lib/css/CssParser.js +700 -311
  85. package/lib/css/CssServerStylesRuntimeModule.js +3 -3
  86. package/lib/css/cssMinify.js +130 -54
  87. package/lib/css/data.js +7017 -4648
  88. package/lib/css/syntax-parser.js +19873 -0
  89. package/lib/css/syntax-printer.js +6037 -0
  90. package/lib/css/syntax.js +37 -17370
  91. package/lib/debug/ProfilingPlugin.js +55 -23
  92. package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
  93. package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +25 -29
  94. package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +2 -2
  95. package/lib/deno/DenoTargetPlugin.js +1 -1
  96. package/lib/dependencies/ConstDependency.js +3 -120
  97. package/lib/dependencies/ContextElementDependency.js +5 -172
  98. package/lib/dependencies/NullDependency.js +3 -37
  99. package/lib/dependencies/{AMDDefineDependency.js → amd/AMDDefineDependency.js} +12 -11
  100. package/lib/dependencies/{AMDDefineDependencyParserPlugin.js → amd/AMDDefineDependencyParserPlugin.js} +10 -10
  101. package/lib/dependencies/{AMDPlugin.js → amd/AMDPlugin.js} +11 -11
  102. package/lib/dependencies/{AMDRequireArrayDependency.js → amd/AMDRequireArrayDependency.js} +15 -13
  103. package/lib/dependencies/{AMDRequireContextDependency.js → amd/AMDRequireContextDependency.js} +11 -10
  104. package/lib/dependencies/{AMDRequireDependenciesBlock.js → amd/AMDRequireDependenciesBlock.js} +7 -6
  105. package/lib/dependencies/{AMDRequireDependenciesBlockParserPlugin.js → amd/AMDRequireDependenciesBlockParserPlugin.js} +10 -10
  106. package/lib/dependencies/{AMDRequireDependency.js → amd/AMDRequireDependency.js} +13 -12
  107. package/lib/dependencies/{AMDRequireItemDependency.js → amd/AMDRequireItemDependency.js} +8 -7
  108. package/lib/dependencies/{AMDRuntimeModules.js → amd/AMDRuntimeModules.js} +3 -3
  109. package/lib/dependencies/{LocalModule.js → amd/LocalModule.js} +8 -4
  110. package/lib/dependencies/{LocalModuleDependency.js → amd/LocalModuleDependency.js} +17 -10
  111. package/lib/dependencies/{LocalModulesHelpers.js → amd/LocalModulesHelpers.js} +1 -1
  112. package/lib/dependencies/{RequireJsStuffPlugin.js → amd/RequireJsStuffPlugin.js} +9 -9
  113. package/lib/dependencies/{UnsupportedDependency.js → amd/UnsupportedDependency.js} +11 -10
  114. package/lib/dependencies/{CommonJsDependencyHelpers.js → commonjs/CommonJsDependencyHelpers.js} +8 -9
  115. package/lib/dependencies/{CommonJsExportRequireDependency.js → commonjs/CommonJsExportRequireDependency.js} +176 -44
  116. package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
  117. package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +138 -61
  118. package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
  119. package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +39 -35
  120. package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +13 -12
  121. package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +47 -35
  122. package/lib/dependencies/{CommonJsRequireContextDependency.js → commonjs/CommonJsRequireContextDependency.js} +15 -14
  123. package/lib/dependencies/{CommonJsRequireDependency.js → commonjs/CommonJsRequireDependency.js} +33 -25
  124. package/lib/dependencies/{CommonJsSelfReferenceDependency.js → commonjs/CommonJsSelfReferenceDependency.js} +19 -20
  125. package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
  126. package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
  127. package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +5 -5
  128. package/lib/dependencies/{RequireEnsureDependency.js → commonjs/RequireEnsureDependency.js} +13 -12
  129. package/lib/dependencies/{RequireEnsureItemDependency.js → commonjs/RequireEnsureItemDependency.js} +7 -6
  130. package/lib/dependencies/{RequireEnsurePlugin.js → commonjs/RequireEnsurePlugin.js} +8 -8
  131. package/lib/dependencies/{RequireHeaderDependency.js → commonjs/RequireHeaderDependency.js} +14 -13
  132. package/lib/dependencies/{RequireIncludeDependency.js → commonjs/RequireIncludeDependency.js} +13 -12
  133. package/lib/dependencies/{RequireIncludeDependencyParserPlugin.js → commonjs/RequireIncludeDependencyParserPlugin.js} +3 -27
  134. package/lib/dependencies/{RequireIncludePlugin.js → commonjs/RequireIncludePlugin.js} +4 -4
  135. package/lib/dependencies/{RequireResolveContextDependency.js → commonjs/RequireResolveContextDependency.js} +11 -10
  136. package/lib/dependencies/{RequireResolveDependency.js → commonjs/RequireResolveDependency.js} +12 -11
  137. package/lib/dependencies/{RequireResolveHeaderDependency.js → commonjs/RequireResolveHeaderDependency.js} +13 -12
  138. package/lib/dependencies/commonjs/TopLevelThisParserPlugin.js +59 -0
  139. package/lib/dependencies/{ContextDependency.js → context/ContextDependency.js} +15 -14
  140. package/lib/dependencies/{ContextDependencyHelpers.js → context/ContextDependencyHelpers.js} +34 -18
  141. package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
  142. package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
  143. package/lib/dependencies/context/ContextElementDependency.js +198 -0
  144. package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
  145. package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +9 -9
  146. package/lib/dependencies/{ImportMetaContextPlugin.js → context/ImportMetaContextPlugin.js} +5 -5
  147. package/lib/dependencies/{ImportMetaGlobDependency.js → context/ImportMetaGlobDependency.js} +7 -6
  148. package/lib/dependencies/{ImportMetaGlobDependencyParserPlugin.js → context/ImportMetaGlobDependencyParserPlugin.js} +4 -4
  149. package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +9 -9
  150. package/lib/dependencies/{RequireContextDependency.js → context/RequireContextDependency.js} +7 -6
  151. package/lib/dependencies/{RequireContextDependencyParserPlugin.js → context/RequireContextDependencyParserPlugin.js} +2 -2
  152. package/lib/dependencies/{RequireContextPlugin.js → context/RequireContextPlugin.js} +5 -5
  153. package/lib/dependencies/{CachedConstDependency.js → core/CachedConstDependency.js} +12 -11
  154. package/lib/dependencies/core/ConstDependency.js +131 -0
  155. package/lib/dependencies/{ImportPhase.js → core/ImportPhase.js} +5 -4
  156. package/lib/dependencies/{ModuleDependency.js → core/ModuleDependency.js} +10 -7
  157. package/lib/dependencies/{ModuleDependencyTemplateAsId.js → core/ModuleDependencyTemplateAsId.js} +3 -3
  158. package/lib/dependencies/{ModuleDependencyTemplateAsRequireId.js → core/ModuleDependencyTemplateAsRequireId.js} +2 -2
  159. package/lib/dependencies/{ModuleInitFragmentDependency.js → core/ModuleInitFragmentDependency.js} +10 -9
  160. package/lib/dependencies/core/NullDependency.js +44 -0
  161. package/lib/dependencies/{RuntimeRequirementsDependency.js → core/RuntimeRequirementsDependency.js} +10 -9
  162. package/lib/dependencies/{StaticExportsDependency.js → core/StaticExportsDependency.js} +15 -8
  163. package/lib/dependencies/{CssIcssExportDependency.js → css/CssIcssExportDependency.js} +375 -100
  164. package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +26 -22
  165. package/lib/dependencies/{CssIcssSymbolDependency.js → css/CssIcssSymbolDependency.js} +13 -12
  166. package/lib/dependencies/{CssImportDependency.js → css/CssImportDependency.js} +15 -11
  167. package/lib/dependencies/{CssUrlDependency.js → css/CssUrlDependency.js} +26 -21
  168. package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
  169. package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
  170. package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
  171. package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +40 -41
  172. package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +22 -21
  173. package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
  174. package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +62 -93
  175. package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +83 -49
  176. package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
  177. package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
  178. package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +136 -122
  179. package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +68 -43
  180. package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +68 -65
  181. package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -4
  182. package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
  183. package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +74 -71
  184. package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +199 -97
  185. package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
  186. package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +86 -43
  187. package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +110 -61
  188. package/lib/dependencies/esm/ESMModulesPlugin.js +207 -0
  189. package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
  190. package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -11
  191. package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +2 -2
  192. package/lib/{util → dependencies/helpers}/chainedImports.js +8 -9
  193. package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
  194. package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
  195. package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
  196. package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
  197. package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
  198. package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
  199. package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +125 -243
  200. package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
  201. package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +72 -23
  202. package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +53 -19
  203. package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
  204. package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
  205. package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
  206. package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
  207. package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +20 -20
  208. package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
  209. package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
  210. package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
  211. package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
  212. package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
  213. package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +126 -107
  214. package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
  215. package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
  216. package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
  217. package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
  218. package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +34 -25
  219. package/lib/{url → dependencies/url}/URLParserPlugin.js +22 -26
  220. package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
  221. package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
  222. package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
  223. package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
  224. package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +46 -54
  225. package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +28 -20
  226. package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +25 -27
  227. package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
  228. package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
  229. package/lib/devtool/ModuleFilenameHelpers.js +413 -0
  230. package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
  231. package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +207 -129
  232. package/lib/{util → devtool}/generateDebugId.js +1 -1
  233. package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
  234. package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
  235. package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
  236. package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
  237. package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
  238. package/lib/dll/DelegatedModule.js +20 -18
  239. package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
  240. package/lib/dll/DelegatedPlugin.js +1 -1
  241. package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
  242. package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
  243. package/lib/dll/DllEntryPlugin.js +3 -3
  244. package/lib/dll/DllModule.js +11 -9
  245. package/lib/dll/DllModuleFactory.js +3 -3
  246. package/lib/dll/DllPlugin.js +18 -6
  247. package/lib/dll/DllReferencePlugin.js +102 -26
  248. package/lib/dll/LibManifestPlugin.js +9 -7
  249. package/lib/electron/ElectronTargetPlugin.js +2 -2
  250. package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
  251. package/lib/{dependencies → entry}/EntryDependency.js +11 -2
  252. package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
  253. package/lib/entry/EntryPlugin.js +75 -0
  254. package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
  255. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  256. package/lib/errors/BuildCycleError.js +1 -1
  257. package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
  258. package/lib/errors/ChunkRenderError.js +1 -1
  259. package/lib/errors/CodeGenerationError.js +1 -1
  260. package/lib/errors/CommentCompilationWarning.js +1 -1
  261. package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
  262. package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
  263. package/lib/errors/DeprecatedOptionWarning.js +30 -0
  264. package/lib/errors/DllManifestError.js +26 -0
  265. package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
  266. package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
  267. package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
  268. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  269. package/lib/errors/ErrorHelpers.js +222 -0
  270. package/lib/errors/ExternalStarReexportError.js +2 -2
  271. package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
  272. package/lib/errors/HookWebpackError.js +6 -5
  273. package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
  274. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  275. package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
  276. package/lib/errors/ModuleBuildError.js +1 -1
  277. package/lib/errors/ModuleDependencyError.js +2 -2
  278. package/lib/errors/ModuleDependencyWarning.js +2 -2
  279. package/lib/errors/ModuleError.js +1 -1
  280. package/lib/errors/ModuleHashingError.js +1 -1
  281. package/lib/errors/ModuleNotFoundError.js +3 -3
  282. package/lib/errors/ModuleParseError.js +1 -1
  283. package/lib/errors/ModuleRestoreError.js +1 -1
  284. package/lib/errors/ModuleStoreError.js +1 -1
  285. package/lib/errors/ModuleWarning.js +1 -1
  286. package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
  287. package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
  288. package/lib/errors/NodeStuffInWebError.js +7 -2
  289. package/lib/errors/PathVariableError.js +31 -0
  290. package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
  291. package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
  292. package/lib/errors/RuntimeModuleGenerationError.js +51 -0
  293. package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
  294. package/lib/errors/SystemImportDeprecationWarning.js +43 -0
  295. package/lib/errors/UnmergeableEntryExportsError.js +34 -0
  296. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  297. package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
  298. package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
  299. package/lib/errors/WebpackError.js +12 -3
  300. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
  301. package/lib/esm/ModuleChunkFormatPlugin.js +19 -19
  302. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
  303. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
  304. package/lib/{ExternalModule.js → externals/ExternalModule.js} +85 -63
  305. package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +41 -39
  306. package/lib/externals/ExternalsPlugin.js +99 -0
  307. package/lib/fs/FileSystemInfo.js +4642 -0
  308. package/lib/{util → fs}/fs.js +22 -9
  309. package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
  310. package/lib/graph/Chunk.js +985 -0
  311. package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +187 -80
  312. package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
  313. package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
  314. package/lib/graph/Dependency.js +628 -0
  315. package/lib/graph/Entrypoint.js +136 -0
  316. package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +151 -99
  317. package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
  318. package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +36 -39
  319. package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
  320. package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +163 -72
  321. package/lib/{util → graph}/findGraphRoots.js +20 -21
  322. package/lib/graph/isDependencyKind.js +23 -0
  323. package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
  324. package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +49 -47
  325. package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
  326. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +10 -8
  327. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
  328. package/lib/hmr/LazyCompilationPlugin.js +34 -26
  329. package/lib/html/HtmlGenerator.js +168 -125
  330. package/lib/html/HtmlModule.js +6 -2
  331. package/lib/html/HtmlModulesPlugin.js +260 -215
  332. package/lib/html/HtmlParser.js +598 -292
  333. package/lib/html/builtinEmbeddedRenderer.js +60 -13
  334. package/lib/html/data.js +23 -1
  335. package/lib/html/htmlMinify.js +120 -51
  336. package/lib/html/syntax-parser.js +15796 -0
  337. package/lib/html/syntax-printer.js +1034 -0
  338. package/lib/html/syntax.js +37 -14062
  339. package/lib/html/xmlMinify.js +67 -0
  340. package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
  341. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  342. package/lib/ids/HashedModuleIdsPlugin.js +31 -4
  343. package/lib/ids/IdHelpers.js +4 -4
  344. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  345. package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
  346. package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
  347. package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
  348. package/lib/ids/SyncModuleIdsPlugin.js +3 -3
  349. package/lib/{util → ids}/numberHash.js +1 -1
  350. package/lib/index.js +348 -99
  351. package/lib/{APIPlugin.js → javascript/APIPlugin.js} +29 -30
  352. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
  353. package/lib/javascript/BasicEvaluatedExpression.js +4 -4
  354. package/lib/javascript/ChunkHelpers.js +64 -4
  355. package/lib/javascript/CommonJsChunkFormatPlugin.js +4 -7
  356. package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +10 -11
  357. package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +90 -139
  358. package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
  359. package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
  360. package/lib/javascript/JavascriptGenerator.js +25 -18
  361. package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
  362. package/lib/javascript/JavascriptModule.js +4 -3
  363. package/lib/javascript/JavascriptModulesPlugin.js +458 -256
  364. package/lib/javascript/JavascriptParser.js +916 -287
  365. package/lib/javascript/JavascriptParserHelpers.js +1 -1
  366. package/lib/javascript/MergedEntryExports.js +196 -0
  367. package/lib/javascript/ScopeAnalyzer.js +3840 -5
  368. package/lib/javascript/StartupHelpers.js +6 -6
  369. package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +12 -15
  370. package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
  371. package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
  372. package/lib/javascript/data.js +533 -122
  373. package/lib/javascript/jsMinify.js +272 -0
  374. package/lib/javascript/regexp.js +67 -32
  375. package/lib/javascript/syntax-parser.js +18561 -0
  376. package/lib/javascript/syntax-printer-data.js +933 -0
  377. package/lib/javascript/syntax-printer.js +47106 -0
  378. package/lib/javascript/syntax.js +20 -10946
  379. package/lib/json/JsonData.js +1 -1
  380. package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
  381. package/lib/json/JsonGenerator.js +17 -11
  382. package/lib/json/JsonModule.js +2 -2
  383. package/lib/json/JsonModulesPlugin.js +1 -1
  384. package/lib/json/JsonParser.js +5 -5
  385. package/lib/json/jsonMinify.js +69 -0
  386. package/lib/library/AbstractLibraryPlugin.js +28 -15
  387. package/lib/library/AmdLibraryPlugin.js +4 -4
  388. package/lib/library/AssignLibraryPlugin.js +27 -11
  389. package/lib/library/EnableLibraryPlugin.js +1 -1
  390. package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
  391. package/lib/library/JsonpLibraryPlugin.js +1 -1
  392. package/lib/library/LibraryTemplatePlugin.js +53 -0
  393. package/lib/library/ModuleLibraryPlugin.js +207 -285
  394. package/lib/library/SystemLibraryPlugin.js +6 -8
  395. package/lib/library/UmdLibraryPlugin.js +3 -4
  396. package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
  397. package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
  398. package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
  399. package/lib/{dependencies → loaders}/LoaderPlugin.js +27 -2
  400. package/lib/loaders/LoaderRunner.js +160 -22
  401. package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
  402. package/lib/logging/Logger.js +7 -9
  403. package/lib/logging/ProgressPlugin.js +957 -0
  404. package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
  405. package/lib/{Generator.js → module/Generator.js} +38 -14
  406. package/lib/{Module.js → module/Module.js} +122 -54
  407. package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
  408. package/lib/module/NormalModule.js +2348 -0
  409. package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +53 -54
  410. package/lib/module/NullFactory.js +29 -0
  411. package/lib/{Parser.js → module/Parser.js} +3 -3
  412. package/lib/module/RawModule.js +208 -0
  413. package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
  414. package/lib/{util → module}/extractSourceMap.js +2 -2
  415. package/lib/{util → module}/findCaseMismatch.js +2 -2
  416. package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
  417. package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
  418. package/lib/{dependencies → node}/ExternalModuleInitFragment.js +6 -5
  419. package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
  420. package/lib/node/NodeEnvironmentPlugin.js +11 -1
  421. package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
  422. package/lib/node/NodeTargetPlugin.js +1 -1
  423. package/lib/node/NodeWatchFileSystem.js +61 -15
  424. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
  425. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +9 -7
  426. package/lib/node/ReadFileCompileWasmPlugin.js +7 -5
  427. package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
  428. package/lib/node/nodeConsole.js +2 -4
  429. package/lib/optimize/AggressiveMergingPlugin.js +5 -7
  430. package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
  431. package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
  432. package/lib/optimize/ConcatenatedModule.js +305 -309
  433. package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
  434. package/lib/optimize/ConstExportsPlugin.js +7 -7
  435. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  436. package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
  437. package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +25 -30
  438. package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +26 -30
  439. package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
  440. package/lib/optimize/FlagIncludedChunksPlugin.js +5 -13
  441. package/lib/optimize/InlineExports.js +11 -3
  442. package/lib/optimize/InnerGraph.js +5 -13
  443. package/lib/optimize/InnerGraphPlugin.js +17 -23
  444. package/lib/optimize/LazyBarrels.js +584 -0
  445. package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
  446. package/lib/optimize/LimitChunkCountPlugin.js +21 -15
  447. package/lib/optimize/MangleExportsPlugin.js +8 -9
  448. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
  449. package/lib/optimize/MinChunkSizePlugin.js +9 -6
  450. package/lib/optimize/ModuleConcatenationPlugin.js +23 -16
  451. package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
  452. package/lib/optimize/RealContentHashPlugin.js +16 -7
  453. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  454. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  455. package/lib/optimize/SideEffectsFlagPlugin.js +25 -37
  456. package/lib/optimize/SplitChunksPlugin.js +715 -159
  457. package/lib/{util → optimize}/TupleQueue.js +9 -9
  458. package/lib/optimize/chunkSetIntersections.js +437 -0
  459. package/lib/{util → optimize}/deterministicGrouping.js +25 -30
  460. package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
  461. package/lib/{CleanPlugin.js → output/CleanPlugin.js} +66 -24
  462. package/lib/{CopyPlugin.js → output/CopyPlugin.js} +142 -67
  463. package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
  464. package/lib/output/SSRManifestPlugin.js +349 -0
  465. package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
  466. package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
  467. package/lib/performance/BroadContextsPlugin.js +4 -4
  468. package/lib/performance/CacheEffectivenessPlugin.js +5 -7
  469. package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
  470. package/lib/performance/DuplicateModulesPlugin.js +3 -4
  471. package/lib/performance/DuplicatePackagesPlugin.js +3 -3
  472. package/lib/performance/DynamicExportsPlugin.js +2 -2
  473. package/lib/performance/EvalUsagePlugin.js +3 -3
  474. package/lib/performance/HotspotsPlugin.js +11 -10
  475. package/lib/performance/LargeModulesPlugin.js +2 -3
  476. package/lib/performance/LegacyJavascriptPlugin.js +1 -2
  477. package/lib/performance/MissingSideEffectsPlugin.js +2 -3
  478. package/lib/performance/MissingSourceMapsPlugin.js +5 -6
  479. package/lib/performance/PureAnnotationsPlugin.js +3 -3
  480. package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
  481. package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
  482. package/lib/performance/SizeLimitsPlugin.js +13 -16
  483. package/lib/performance/TopLevelThisPlugin.js +8 -7
  484. package/lib/performance/UnsplitVendorsPlugin.js +1 -2
  485. package/lib/performance/UnusedAliasesPlugin.js +6 -7
  486. package/lib/performance/UnusedAssetsPlugin.js +5 -5
  487. package/lib/performance/UnusedDefinesPlugin.js +2 -2
  488. package/lib/performance/UnusedExternalsPlugin.js +3 -4
  489. package/lib/performance/UnusedFederationPlugin.js +2 -4
  490. package/lib/performance/UnusedModulesPlugin.js +5 -4
  491. package/lib/performance/getModuleSize.js +1 -1
  492. package/lib/performance/hasOnlyUnusedExports.js +4 -4
  493. package/lib/performance/isOnlyReexported.js +7 -6
  494. package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
  495. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
  496. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +7 -9
  497. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
  498. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
  499. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
  500. package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
  501. package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
  502. package/lib/prefetch/ResourceHintPlugin.js +82 -65
  503. package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
  504. package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -13
  505. package/lib/prefetch/parseResourceHintOptions.js +4 -3
  506. package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
  507. package/lib/{dependencies → provide}/ProvidedDependency.js +14 -13
  508. package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
  509. package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
  510. package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
  511. package/lib/resolve/getResolveOptionsKey.js +59 -0
  512. package/lib/rules/RuleSetCompiler.js +27 -46
  513. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
  514. package/lib/runtime/AsyncModuleRuntimeModule.js +10 -9
  515. package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
  516. package/lib/runtime/BaseUriRuntimeModule.js +3 -3
  517. package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
  518. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
  519. package/lib/runtime/CompatRuntimeModule.js +4 -4
  520. package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
  521. package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
  522. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
  523. package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
  524. package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
  525. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
  526. package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
  527. package/lib/runtime/GetChunkFilenameRuntimeModule.js +9 -10
  528. package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
  529. package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
  530. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
  531. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
  532. package/lib/runtime/GlobalRuntimeModule.js +5 -7
  533. package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
  534. package/lib/runtime/HelperRuntimeModule.js +16 -1
  535. package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
  536. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +135 -102
  537. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
  538. package/lib/runtime/NonceRuntimeModule.js +2 -2
  539. package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
  540. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  541. package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
  542. package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +18 -1
  543. package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
  544. package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
  545. package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +48 -50
  546. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
  547. package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
  548. package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
  549. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
  550. package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
  551. package/lib/runtime/SystemContextRuntimeModule.js +2 -2
  552. package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
  553. package/lib/runtime/WorkerRuntimeModule.js +1 -1
  554. package/lib/runtime/baseUri.js +1 -1
  555. package/lib/schemes/DataUriPlugin.js +4 -7
  556. package/lib/schemes/HttpUriPlugin.js +67 -11
  557. package/lib/schemes/VirtualUrlPlugin.js +50 -16
  558. package/lib/serialization/AggregateErrorSerializer.js +2 -2
  559. package/lib/serialization/BinaryMiddleware.js +9 -9
  560. package/lib/serialization/FileMiddleware.js +19 -19
  561. package/lib/serialization/ObjectMiddleware.js +77 -49
  562. package/lib/serialization/SerializerMiddleware.js +2 -2
  563. package/lib/serialization/SingleItemMiddleware.js +4 -2
  564. package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
  565. package/lib/sharing/ConsumeSharedModule.js +18 -14
  566. package/lib/sharing/ConsumeSharedPlugin.js +148 -42
  567. package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
  568. package/lib/sharing/ProvideForSharedDependency.js +9 -1
  569. package/lib/sharing/ProvideSharedDependency.js +1 -1
  570. package/lib/sharing/ProvideSharedModule.js +11 -9
  571. package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
  572. package/lib/sharing/ProvideSharedPlugin.js +111 -20
  573. package/lib/sharing/SharePlugin.js +102 -9
  574. package/lib/sharing/ShareRuntimeModule.js +6 -6
  575. package/lib/sharing/resolveMatchedConfigs.js +1 -1
  576. package/lib/{util → sharing}/semver.js +19 -19
  577. package/lib/sharing/utils.js +59 -2
  578. package/lib/stats/DefaultStatsFactoryPlugin.js +25 -23
  579. package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
  580. package/lib/stats/DefaultStatsPrinterPlugin.js +3 -3
  581. package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
  582. package/lib/{Stats.js → stats/Stats.js} +4 -4
  583. package/lib/stats/StatsFactory.js +14 -13
  584. package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
  585. package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
  586. package/lib/template/DependencyTemplate.js +77 -0
  587. package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
  588. package/lib/template/InitFragment.js +223 -0
  589. package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
  590. package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
  591. package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
  592. package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +178 -106
  593. package/lib/{Template.js → template/Template.js} +13 -11
  594. package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +35 -82
  595. package/lib/typescript/TypeScriptPlugin.js +5 -6
  596. package/lib/util/LocConverter.js +4 -7
  597. package/lib/util/RequestShortener.js +44 -0
  598. package/lib/util/SortableSet.js +87 -22
  599. package/lib/util/SourceProcessor.js +364 -66
  600. package/lib/util/TupleSet.js +27 -27
  601. package/lib/util/WeakTupleMap.js +10 -12
  602. package/lib/util/buildDiagnostics.js +2 -2
  603. package/lib/util/comparators.js +10 -10
  604. package/lib/util/concatenate.js +32 -151
  605. package/lib/util/createHooksRegistry.js +1 -2
  606. package/lib/util/createMappings.js +111 -0
  607. package/lib/util/dataURL.js +96 -18
  608. package/lib/util/deprecation.js +1 -1
  609. package/lib/util/extractComments.js +118 -0
  610. package/lib/util/formatLocation.js +1 -1
  611. package/lib/util/globUtils.js +197 -16
  612. package/lib/util/haltVisitors.js +51 -0
  613. package/lib/util/handlerKeys.js +2 -2
  614. package/lib/util/hash/wasm-hash.js +3 -4
  615. package/lib/util/identifier.js +117 -1
  616. package/lib/util/implicitTypeLoaderFallback.js +6 -4
  617. package/lib/util/internalSerializables.js +295 -103
  618. package/lib/util/magicComment.js +12 -7
  619. package/lib/util/makeSerializable.js +23 -4
  620. package/lib/util/parseJson.js +1 -1
  621. package/lib/util/preloadModuleType.js +5 -2
  622. package/lib/util/registerExternalSerializer.js +2 -2
  623. package/lib/util/removeBOM.js +1 -1
  624. package/lib/util/runtime.js +1 -1
  625. package/lib/util/serialization.js +4 -1
  626. package/lib/util/source.js +2 -2
  627. package/lib/util/terminalColors.js +161 -0
  628. package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
  629. package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
  630. package/lib/{wasm-async → wasm}/AsyncWasmModule.js +9 -5
  631. package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +11 -6
  632. package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +16 -11
  633. package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
  634. package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +8 -8
  635. package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
  636. package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +9 -7
  637. package/lib/wasm/wasmModuleFilename.js +2 -2
  638. package/lib/wasm-sync/SyncWasmModule.js +3 -3
  639. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +11 -12
  640. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
  641. package/lib/wasm-sync/WebAssemblyGenerator.js +15 -9
  642. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +19 -16
  643. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
  644. package/lib/wasm-sync/WebAssemblyParser.js +6 -6
  645. package/lib/wasm-sync/WebAssemblyUtils.js +8 -9
  646. package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
  647. package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
  648. package/lib/{Watching.js → watch/Watching.js} +8 -8
  649. package/lib/web/FetchCompileAsyncWasmPlugin.js +8 -6
  650. package/lib/web/FetchCompileWasmPlugin.js +6 -4
  651. package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
  652. package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
  653. package/lib/web/JsonpTemplatePlugin.js +1 -1
  654. package/lib/webpack.js +27 -17
  655. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
  656. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
  657. package/package.json +70 -40
  658. package/schemas/WebpackOptions.check.js +2 -1
  659. package/schemas/WebpackOptions.d.json.ts +2 -0
  660. package/schemas/WebpackOptions.json +294 -74
  661. package/schemas/plugins/BannerPlugin.check.js +2 -1
  662. package/schemas/plugins/BannerPlugin.json +29 -2
  663. package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -0
  664. package/schemas/plugins/HtmlParserOptions.check.js +2 -1
  665. package/schemas/plugins/IgnorePlugin.check.js +1 -0
  666. package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
  667. package/schemas/plugins/IgnorePlugin.json +1 -1
  668. package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -0
  669. package/schemas/plugins/ManifestPlugin.check.js +1 -0
  670. package/schemas/plugins/ManifestPlugin.json +3 -3
  671. package/schemas/plugins/ProgressPlugin.check.js +2 -1
  672. package/schemas/plugins/ProgressPlugin.json +2 -7
  673. package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
  674. package/schemas/plugins/SSRManifestPlugin.json +20 -0
  675. package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -1
  676. package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
  677. package/schemas/plugins/WatchIgnorePlugin.check.js +2 -1
  678. package/schemas/plugins/WatchIgnorePlugin.json +12 -3
  679. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -0
  680. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -0
  681. package/schemas/plugins/asset/AssetParserOptions.check.js +1 -0
  682. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -0
  683. package/schemas/plugins/container/ContainerPlugin.check.js +2 -1
  684. package/schemas/plugins/container/ContainerPlugin.json +8 -0
  685. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -0
  686. package/schemas/plugins/container/ExternalsType.check.js +1 -0
  687. package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -1
  688. package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
  689. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -0
  690. package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -0
  691. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -0
  692. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -0
  693. package/schemas/plugins/css/CssParserOptions.check.js +1 -0
  694. package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -0
  695. package/schemas/plugins/dll/DllPlugin.check.js +1 -0
  696. package/schemas/plugins/dll/DllReferencePlugin.check.js +2 -1
  697. package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
  698. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -0
  699. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -0
  700. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -0
  701. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +1 -0
  702. package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -0
  703. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -0
  704. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -0
  705. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -0
  706. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -0
  707. package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -0
  708. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +1 -0
  709. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +2 -1
  710. package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
  711. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +2 -1
  712. package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
  713. package/schemas/plugins/sharing/SharePlugin.check.js +2 -1
  714. package/schemas/plugins/sharing/SharePlugin.json +32 -0
  715. package/types.d.ts +13915 -8414
  716. package/lib/ErrorHelpers.js +0 -107
  717. package/lib/LazyBarrel.js +0 -388
  718. package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
  719. package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
  720. package/lib/javascript/ChunkFormatHelpers.js +0 -71
  721. package/lib/javascript/grammar.js +0 -5546
  722. package/lib/javascript/parser.js +0 -1494
  723. package/lib/javascript/regexpData.js +0 -51
  724. package/lib/performance/getSourceModules.js +0 -22
  725. package/lib/util/Semaphore.js +0 -65
  726. package/lib/util/objectToMap.js +0 -15
  727. package/schemas/WebpackOptions.check.d.ts +0 -7
  728. package/schemas/_container.json +0 -155
  729. package/schemas/_sharing.json +0 -118
  730. package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
  731. package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
  732. package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
  733. package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
  734. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
  735. package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
  736. package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
  737. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
  738. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
  739. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
  740. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
  741. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
  742. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
  743. package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
  744. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
  745. package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
  746. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
  747. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
  748. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
  749. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
  750. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
  751. package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
  752. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
  753. package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
  754. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
  755. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
  756. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
  757. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
  758. package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
  759. package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
  760. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
  761. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
  762. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
  763. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
  764. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
  765. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
  766. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
  767. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
  768. package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
  769. /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
  770. /package/lib/{util → css}/conventions.js +0 -0
  771. /package/lib/{util → css}/topologicalSort.js +0 -0
  772. /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
  773. /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
  774. /package/lib/{util → fs}/StackedCacheMap.js +0 -0
  775. /package/lib/{util → javascript}/StackedMap.js +0 -0
  776. /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
  777. /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
  778. /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
  779. /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
  780. /package/lib/{util → optimize}/Queue.js +0 -0
  781. /package/lib/{util → stats}/smartGrouping.js +0 -0
@@ -5,70 +5,96 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const { JAVASCRIPT_TYPE } = require("../ModuleSourceTypeConstants");
9
- const { interpolate } = require("../TemplatedPathPlugin");
10
- const WebpackError = require("../errors/WebpackError");
11
- const { cssExportConvention } = require("../util/conventions");
12
- const createHash = require("../util/createHash");
13
- const { makePathsRelative } = require("../util/identifier");
14
- const makeSerializable = require("../util/makeSerializable");
15
- const memoize = require("../util/memoize");
16
- const { digestNonNumericOnly } = require("../util/nonNumericOnlyHash");
17
- const { updateHashFromSource } = require("../util/source");
18
- const CssIcssImportDependency = require("./CssIcssImportDependency");
19
- const NullDependency = require("./NullDependency");
20
-
21
- const getCssTokens = memoize(() => require("../css/syntax"));
22
-
8
+ const { cssExportConvention } = require("../../css/conventions");
9
+ const WebpackError = require("../../errors/WebpackError");
10
+ const isDependencyKind = require("../../graph/isDependencyKind");
11
+ const { JAVASCRIPT_TYPE } = require("../../module/ModuleSourceTypeConstants");
12
+ const { interpolate } = require("../../template/TemplatedPathPlugin");
13
+ const createHash = require("../../util/createHash");
14
+ const { makePathsRelative } = require("../../util/identifier");
15
+ const makeSerializable = require("../../util/makeSerializable");
16
+ const memoize = require("../../util/memoize");
17
+ const { digestNonNumericOnly } = require("../../util/nonNumericOnlyHash");
18
+ const { updateHashFromSource } = require("../../util/source");
19
+ const NullDependency = require("../core/NullDependency");
20
+
21
+ const getCssTokens = memoize(() => require("../../css/syntax-parser"));
22
+ const getCssData = memoize(() => require("../../css/data"));
23
+
24
+ /** @import CssIcssImportDependency from "./CssIcssImportDependency" */
23
25
  /** @import { ReplaceSource } from "webpack-sources" */
24
26
  /**
25
27
  * @import {
26
28
  * CssGeneratorExportsConvention,
27
29
  * CssGeneratorLocalIdentName,
28
30
  * HashFunction
29
- * } from "../../declarations/WebpackOptions"
31
+ * } from "../../../declarations/WebpackOptions"
30
32
  */
31
- /** @import CssGenerator from "../css/CssGenerator" */
32
- /** @import CssModule from "../css/CssModule" */
33
- /** @import ChunkGraph from "../ChunkGraph" */
33
+ /** @import CssGenerator from "../../css/CssGenerator" */
34
+ /** @import CssModule from "../../css/CssModule" */
35
+ /** @import ChunkGraph from "../../graph/ChunkGraph" */
34
36
  /**
35
37
  * @import Dependency, {
36
38
  * ExportsSpec,
37
39
  * ReferencedExports,
38
40
  * UpdateHashContext,
39
- * DependencyLocation
40
- * } from "../Dependency"
41
+ * DependencyLocation,
42
+ * DependencyKinds
43
+ * } from "../../graph/Dependency"
41
44
  */
42
45
  /**
43
46
  * @import {
44
47
  * CssDependencyTemplateContext as DependencyTemplateContext
45
- * } from "../DependencyTemplate"
48
+ * } from "../../template/DependencyTemplate"
46
49
  */
47
- /** @import ModuleGraph from "../ModuleGraph" */
48
- /** @import RuntimeTemplate from "../RuntimeTemplate" */
49
- /** @import { Range } from "../css/CssParser" */
50
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<(number | string | Value | Range | boolean | ExportMode | ExportType | DependencyLocation | undefined)[]>} ObjectDeserializerContext */
51
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<(number | string | Value | Range | boolean | ExportMode | ExportType | DependencyLocation | undefined)[]>} ObjectSerializerContext */
52
- /** @import Hash from "../util/Hash" */
53
- /** @import { RuntimeSpec } from "../util/runtime" */
54
- /** @import WebpackErrorType from "../errors/WebpackError" */
55
-
56
- /** @typedef {string | [string, string] | [string, string, string]} Value */
50
+ /** @import ModuleGraph from "../../graph/ModuleGraph" */
51
+ /** @import RuntimeTemplate from "../../template/RuntimeTemplate" */
52
+ /** @import { Range } from "../../css/CssParser" */
53
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectDeserializerContext<(number | string | Value | Range | boolean | ExportMode | ExportType | DependencyLocation | undefined)[]>} ObjectDeserializerContext */
54
+ /** @typedef {import("../../serialization/ObjectMiddleware").ObjectSerializerContext<(number | string | Value | Range | boolean | ExportMode | ExportType | DependencyLocation | undefined)[]>} ObjectSerializerContext */
55
+ /** @import Hash from "../../util/Hash" */
56
+ /** @import { RuntimeSpec } from "../../util/runtime" */
57
+ /** @import WebpackErrorType from "../../errors/WebpackError" */
58
+
59
+ // A reference is `[localName, importName, request?]`; a `RESOLVED_REFERENCE`
60
+ // also names the declaration's property, whose keywords stay unscoped.
61
+ /** @typedef {string | [string, string] | [string, string, string] | [string, string, string | undefined, string]} Value */
57
62
  /** @typedef {(name: string) => string | string[]} ExportsConventionFn */
58
- // 0 - none, 1 - replace, 2 - append, 3 - once, 4 - self-reference
59
- /** @typedef {0 | 1 | 2 | 3 | 4} ExportMode */
63
+ // 0 - none, 1 - replace, 2 - append, 3 - once, 4 - self-reference, 5 - resolved
64
+ // name / 6 - resolved selector (once, keyed by what an imported `@value` names),
65
+ // 7 - resolved reference (a property value scoped once it resolves, not exported)
66
+ /** @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7} ExportMode */
60
67
  // 0 - normal, 1 - custom css variable, 2 - grid custom ident, 3 - composes
61
68
  /** @typedef {0 | 1 | 2 | 3} ExportType */
62
69
 
63
- /** @type {Record<"NONE" | "REPLACE" | "APPEND" | "ONCE" | "SELF_REFERENCE", ExportMode>} */
70
+ /** @type {Record<"NONE" | "REPLACE" | "APPEND" | "ONCE" | "SELF_REFERENCE" | "RESOLVED_NAME" | "RESOLVED_SELECTOR" | "RESOLVED_REFERENCE", ExportMode>} */
64
71
  const EXPORT_MODE = {
65
72
  NONE: 0,
66
73
  REPLACE: 1,
67
74
  APPEND: 2,
68
75
  ONCE: 3,
69
- SELF_REFERENCE: 4
76
+ SELF_REFERENCE: 4,
77
+ RESOLVED_NAME: 5,
78
+ RESOLVED_SELECTOR: 6,
79
+ RESOLVED_REFERENCE: 7
70
80
  };
71
81
 
82
+ /**
83
+ * Whether an entry is only resolved once its imported `@value` is, so its `name` is no export key.
84
+ * @param {ExportMode} exportMode export mode
85
+ * @returns {boolean} true for the `RESOLVED_*` modes, numbered last
86
+ */
87
+ const isResolvedMode = (exportMode) => exportMode >= EXPORT_MODE.RESOLVED_NAME;
88
+
89
+ /**
90
+ * The warning for a `@value` standing in for a declared name (an at-rule prelude, `local()`) whose value is not one identifier.
91
+ * @param {string} name `@value` name as written
92
+ * @param {string} value what it resolves to
93
+ * @returns {string} warning message
94
+ */
95
+ const notSimpleIdentifierMessage = (name, value) =>
96
+ `'@value' '${name}' resolves to '${value}', which is not a single identifier: it is scoped in the CSS but not exported to JavaScript`;
97
+
72
98
  /** @type {Record<"NORMAL" | "CUSTOM_VARIABLE" | "GRID_CUSTOM_IDENTIFIER" | "COMPOSES", ExportType>} */
73
99
  const EXPORT_TYPE = {
74
100
  NORMAL: 0,
@@ -347,20 +373,42 @@ class CssIcssExportDependency extends NullDependency {
347
373
 
348
374
  /** @type {{ name: string, canMangle: boolean }[]} */
349
375
  const exports = [];
376
+ /** @type {CssModule[] | undefined} */
377
+ let dependencies;
378
+ /** @type {ResolutionCache | undefined} */
379
+ let cache;
350
380
  for (const entry of this.entries) {
351
381
  if (
352
382
  entry.exportMode === EXPORT_MODE.NONE ||
353
- entry.exportMode === EXPORT_MODE.SELF_REFERENCE
383
+ entry.exportMode === EXPORT_MODE.SELF_REFERENCE ||
384
+ entry.exportMode === EXPORT_MODE.RESOLVED_REFERENCE
354
385
  ) {
355
386
  continue;
356
387
  }
388
+ if (isResolvedMode(entry.exportMode)) {
389
+ // The name lives in another module, so these exports follow its changes.
390
+ if (dependencies === undefined) dependencies = [];
391
+ if (cache === undefined) cache = createResolutionCache();
392
+ const declaration = resolveDeclaration(
393
+ moduleGraph,
394
+ module,
395
+ entry,
396
+ cache,
397
+ dependencies
398
+ );
399
+ if (declaration === undefined) continue;
400
+ for (const name of cssExportConvention(declaration.name, convention)) {
401
+ exports.push({ name, canMangle: true });
402
+ }
403
+ continue;
404
+ }
357
405
  for (const name of entryConventionNames(entry, convention)) {
358
406
  exports.push({ name, canMangle: true });
359
407
  }
360
408
  }
361
409
 
362
- if (exports.length === 0) return undefined;
363
- return { exports, dependencies: undefined };
410
+ if (exports.length === 0 && dependencies === undefined) return undefined;
411
+ return { exports, dependencies };
364
412
  }
365
413
 
366
414
  /**
@@ -370,10 +418,9 @@ class CssIcssExportDependency extends NullDependency {
370
418
  * @returns {ReferencedExports} referenced exports
371
419
  */
372
420
  getReferencedExports(moduleGraph, runtime) {
373
- // `composes: foo;` (SELF_REFERENCE) references the composed class
374
- // (`entry.value`), not the composing class. Every other entry mode
375
- // keeps the whole exports object referenced (legacy behaviour), so the
376
- // presence of any such entry subsumes the self-reference names.
421
+ // `composes: foo;` references the composed class, not the composing one.
422
+ // Every other entry mode references the whole exports object, so one such
423
+ // entry subsumes the self-reference names.
377
424
  let hasNonSelfReference = false;
378
425
  /** @type {ReferencedExports} */
379
426
  const referenced = [];
@@ -420,7 +467,36 @@ class CssIcssExportDependency extends NullDependency {
420
467
  let module;
421
468
  let exportsInfo;
422
469
  let convention;
470
+ /** @type {ResolutionCache | undefined} */
471
+ let cache;
423
472
  for (const entry of this.entries) {
473
+ if (entry.exportMode === EXPORT_MODE.RESOLVED_NAME) {
474
+ const parent =
475
+ /** @type {CssModule | undefined} */
476
+ (moduleGraph.getParentModule(this));
477
+ if (!parent) return warnings;
478
+ if (cache === undefined) cache = createResolutionCache();
479
+ const text = resolveImportedText(moduleGraph, parent, entry, cache);
480
+ if (text === undefined || getCssTokens().isSimpleIdentifier(text)) {
481
+ continue;
482
+ }
483
+ const error = new WebpackError(
484
+ notSimpleIdentifierMessage(
485
+ /** @type {string[]} */ (entry.value)[0],
486
+ text
487
+ )
488
+ );
489
+ error.module = parent;
490
+ if (entry.locStartLine > 0) {
491
+ error.loc = {
492
+ start: { line: entry.locStartLine, column: entry.locStartColumn },
493
+ end: { line: entry.locEndLine, column: entry.locEndColumn }
494
+ };
495
+ }
496
+ if (warnings === null) warnings = [];
497
+ warnings.push(error);
498
+ continue;
499
+ }
424
500
  if (
425
501
  entry.exportMode !== EXPORT_MODE.SELF_REFERENCE ||
426
502
  typeof entry.value !== "string"
@@ -612,7 +688,7 @@ const getExportIndex = (cache, module) => {
612
688
  if (map === undefined) {
613
689
  map = EMPTY_INDEX;
614
690
  for (const dep of module.dependencies) {
615
- if (dep instanceof CssIcssExportDependency) {
691
+ if (isDependencyKind(dep, "css-icss-export")) {
616
692
  map = dep.getEntriesByName();
617
693
  break;
618
694
  }
@@ -639,7 +715,7 @@ const getImportIndex = (module) => {
639
715
  /** @type {Map<string, CssIcssImportDependency[]>} */
640
716
  const index = new Map();
641
717
  for (const d of module.dependencies) {
642
- if (!(d instanceof CssIcssImportDependency)) continue;
718
+ if (!isDependencyKind(d, "css-icss-import")) continue;
643
719
  const list = index.get(d.localName);
644
720
  if (list) list.push(d);
645
721
  else index.set(d.localName, [d]);
@@ -668,6 +744,161 @@ const findImportDep = (module, localName, request) => {
668
744
  return list[0];
669
745
  };
670
746
 
747
+ /**
748
+ * Follows a `@value` import, through re-exports, to the entry defining it. Skips demoted (`NONE`) cross-kind entries so it picks the same winner as the JS export map, and `RESOLVED_*` ones, which aren't keyed by their own name.
749
+ * @param {ModuleGraph} moduleGraph module graph
750
+ * @param {CssModule} module module holding the import
751
+ * @param {string} localName local name
752
+ * @param {string} importName import name
753
+ * @param {string | undefined} request user request of the `@value` import
754
+ * @param {Set<CssExportEntry>} seen cycle guard
755
+ * @param {ResolutionCache} cache resolution cache
756
+ * @param {CssModule[]=} visited collects each module the chain passes through
757
+ * @param {boolean=} localized for a use that scopes a name: a plain value naming what its own module scoped (`@value a: b; @keyframes a {}`) resolves to that declaration
758
+ * @returns {{ entry: CssExportEntry, module: CssModule } | undefined} defining entry and its module
759
+ */
760
+ const resolveImportedEntry = (
761
+ moduleGraph,
762
+ module,
763
+ localName,
764
+ importName,
765
+ request,
766
+ seen,
767
+ cache,
768
+ visited,
769
+ localized
770
+ ) => {
771
+ for (;;) {
772
+ const importDep = findImportDep(module, localName, request);
773
+ if (!importDep) return undefined;
774
+ const target = getTargetModule(cache, moduleGraph, importDep);
775
+ if (!target) return undefined;
776
+ if (visited) visited.push(target);
777
+ const matches = getExportIndex(cache, target).get(importName);
778
+ let exportEntry;
779
+ if (matches) {
780
+ for (const m of matches) {
781
+ if (
782
+ m.exportMode !== EXPORT_MODE.NONE &&
783
+ !isResolvedMode(m.exportMode)
784
+ ) {
785
+ exportEntry = m;
786
+ break;
787
+ }
788
+ }
789
+ }
790
+ if (!exportEntry || seen.has(exportEntry)) return undefined;
791
+ seen.add(exportEntry);
792
+ if (!Array.isArray(exportEntry.value)) {
793
+ if (localized && !exportEntry.interpolate) {
794
+ const declarations = getExportIndex(cache, target).get(
795
+ exportEntry.value.trim()
796
+ );
797
+ if (declarations !== undefined) {
798
+ for (const d of declarations) {
799
+ if (
800
+ d.interpolate &&
801
+ d.exportType === EXPORT_TYPE.NORMAL &&
802
+ d.exportMode !== EXPORT_MODE.NONE &&
803
+ !isResolvedMode(d.exportMode) &&
804
+ typeof d.value === "string"
805
+ ) {
806
+ return { entry: d, module: target };
807
+ }
808
+ }
809
+ }
810
+ }
811
+ return { entry: exportEntry, module: target };
812
+ }
813
+ module = target;
814
+ localName = exportEntry.value[0];
815
+ importName = exportEntry.value[1];
816
+ request = exportEntry.value[2];
817
+ }
818
+ };
819
+
820
+ /**
821
+ * The text a `RESOLVED_NAME` entry's imported `@value` resolves to, when the defining module holds it as a plain value rather than a name it scoped itself.
822
+ * @param {ModuleGraph} moduleGraph module graph
823
+ * @param {CssModule} module module owning the entry
824
+ * @param {CssExportEntry} entry entry whose value is `[localName, importName, request?]`
825
+ * @param {ResolutionCache} cache resolution cache
826
+ * @param {CssModule[]=} visited collects each module the chain passes through
827
+ * @param {boolean=} localized resolve to what the defining module scoped under that name, when it did
828
+ * @returns {string | undefined} the trimmed plain value, if any
829
+ */
830
+ const resolveImportedText = (
831
+ moduleGraph,
832
+ module,
833
+ entry,
834
+ cache,
835
+ visited,
836
+ localized = true
837
+ ) => {
838
+ const value = /** @type {string[]} */ (entry.value);
839
+ const target = resolveImportedEntry(
840
+ moduleGraph,
841
+ module,
842
+ value[0],
843
+ value[1],
844
+ value[2],
845
+ new Set(),
846
+ cache,
847
+ visited,
848
+ localized
849
+ );
850
+ if (!target || target.entry.interpolate) return undefined;
851
+ return /** @type {string} */ (target.entry.value).trim();
852
+ };
853
+
854
+ /**
855
+ * What a `RESOLVED_*` entry scopes once its import resolves to a plain value, as a local `@value` would: one ident, or for a selector one `.class` / `#id`. Anything else is substituted verbatim.
856
+ * @param {ModuleGraph} moduleGraph module graph
857
+ * @param {CssModule} module module owning the entry
858
+ * @param {CssExportEntry} entry `RESOLVED_*` entry
859
+ * @param {ResolutionCache} cache resolution cache
860
+ * @param {CssModule[]=} visited collects each module the chain passes through
861
+ * @returns {{ prefix: string, name: string } | undefined} selector prefix (empty for a name) and the ident to scope
862
+ */
863
+ const resolveDeclaration = (moduleGraph, module, entry, cache, visited) => {
864
+ const text = resolveImportedText(moduleGraph, module, entry, cache, visited);
865
+ if (text === undefined) return undefined;
866
+ const { isSimpleIdentifier } = getCssTokens();
867
+ if (entry.exportMode === EXPORT_MODE.RESOLVED_SELECTOR) {
868
+ const prefix = text.charAt(0);
869
+ return (prefix === "." || prefix === "#") &&
870
+ isSimpleIdentifier(text.slice(1))
871
+ ? { prefix, name: text.slice(1) }
872
+ : undefined;
873
+ }
874
+ return isSimpleIdentifier(text) ? { prefix: "", name: text } : undefined;
875
+ };
876
+
877
+ /**
878
+ * Whether a `RESOLVED_REFERENCE` resolves to a keyword of its property (`linear` in `animation`), which stays text even where its defining module scoped that name.
879
+ * @param {ModuleGraph} moduleGraph module graph
880
+ * @param {CssModule} module module owning the entry
881
+ * @param {CssExportEntry} entry entry
882
+ * @param {ResolutionCache} cache resolution cache
883
+ * @returns {boolean} true for a keyword reference
884
+ */
885
+ const isReferenceKeyword = (moduleGraph, module, entry, cache) => {
886
+ if (entry.exportMode !== EXPORT_MODE.RESOLVED_REFERENCE) return false;
887
+ const keywords = getCssData()
888
+ .getCssModulesKeywords()
889
+ .get(/** @type {string[]} */ (entry.value)[3]);
890
+ if (keywords === undefined) return false;
891
+ const text = resolveImportedText(
892
+ moduleGraph,
893
+ module,
894
+ entry,
895
+ cache,
896
+ undefined,
897
+ false
898
+ );
899
+ return text !== undefined && keywords.has(text.toLowerCase());
900
+ };
901
+
671
902
  CssIcssExportDependency.Template = class CssIcssExportDependencyTemplate extends (
672
903
  NullDependency.Template
673
904
  ) {
@@ -681,6 +912,8 @@ CssIcssExportDependency.Template = class CssIcssExportDependencyTemplate extends
681
912
  * @param {string | undefined} request user request of the `@value` import
682
913
  * @param {Set<CssExportEntry>=} seen cycle guard
683
914
  * @param {ResolutionCache=} cache transient per-codegen index (shared with `resolveReferences` within one `apply`)
915
+ * @param {CssExportEntry=} scopeEntry entry to scope a plain imported value under, for a reference in a localized position
916
+ * @param {boolean=} localized whether the use scopes a name, so a value naming its own module's declaration resolves to it
684
917
  * @returns {string | undefined} found reference
685
918
  */
686
919
  static resolve(
@@ -689,54 +922,38 @@ CssIcssExportDependency.Template = class CssIcssExportDependencyTemplate extends
689
922
  templateContext,
690
923
  request,
691
924
  seen = new Set(),
692
- cache = createResolutionCache()
925
+ cache = createResolutionCache(),
926
+ scopeEntry = undefined,
927
+ localized = scopeEntry !== undefined
693
928
  ) {
694
- const { moduleGraph } = templateContext;
695
- const importDep = findImportDep(
929
+ const target = resolveImportedEntry(
930
+ templateContext.moduleGraph,
696
931
  /** @type {CssModule} */ (templateContext.module),
697
932
  localName,
698
- request
933
+ importName,
934
+ request,
935
+ seen,
936
+ cache,
937
+ undefined,
938
+ localized
699
939
  );
700
- if (!importDep) return undefined;
701
-
702
- const module = getTargetModule(cache, moduleGraph, importDep);
703
- if (!module) return undefined;
704
-
705
- const matches = getExportIndex(cache, module).get(importName);
706
- // Skip demoted (`NONE`) cross-kind entries so `@value name from` picks the same winner as the JS export map.
707
- let exportEntry;
708
- if (matches) {
709
- for (const m of matches) {
710
- if (m.exportMode !== EXPORT_MODE.NONE) {
711
- exportEntry = m;
712
- break;
713
- }
714
- }
715
- }
716
- if (!exportEntry) return undefined;
717
- if (seen.has(exportEntry)) return undefined;
718
- seen.add(exportEntry);
719
-
720
- const { value, interpolate } = exportEntry;
721
-
722
- if (Array.isArray(value)) {
723
- return CssIcssExportDependencyTemplate.resolve(
724
- value[0],
725
- value[1],
726
- { ...templateContext, module },
727
- value[2],
728
- seen,
729
- cache
730
- );
731
- }
732
-
733
- if (interpolate) {
940
+ if (!target) return undefined;
941
+ const { entry: exportEntry, module } = target;
942
+ const value = /** @type {string} */ (exportEntry.value);
943
+ if (exportEntry.interpolate) {
734
944
  return CssIcssExportDependencyTemplate.getIdentifier(value, exportEntry, {
735
945
  ...templateContext,
736
946
  module
737
947
  });
738
948
  }
739
-
949
+ // A plain value scopes in the importing module, as a local `@value` would.
950
+ if (scopeEntry !== undefined) {
951
+ return CssIcssExportDependencyTemplate.getIdentifier(
952
+ value,
953
+ scopeEntry,
954
+ templateContext
955
+ );
956
+ }
740
957
  return value;
741
958
  }
742
959
 
@@ -776,7 +993,12 @@ CssIcssExportDependency.Template = class CssIcssExportDependencyTemplate extends
776
993
  const matches = getExportIndex(cache, module).get(name);
777
994
  if (matches) {
778
995
  for (const d of matches) {
779
- if (d.exportMode === EXPORT_MODE.NONE) continue;
996
+ if (
997
+ d.exportMode === EXPORT_MODE.NONE ||
998
+ isResolvedMode(d.exportMode)
999
+ ) {
1000
+ continue;
1001
+ }
780
1002
  if (Array.isArray(d.value)) {
781
1003
  references.push(
782
1004
  ...CssIcssExportDependencyTemplate.resolveReferences(
@@ -850,10 +1072,9 @@ CssIcssExportDependency.Template = class CssIcssExportDependencyTemplate extends
850
1072
  if (!entry.interpolate) return value;
851
1073
  const { moduleGraph, module, chunkGraph, runtimeTemplate } =
852
1074
  templateContext;
853
- // Key order is by rising cardinality: `moduleGraph.cached` is a trie that
854
- // allocates a node per level per new prefix, so the per-export `value` goes
855
- // last — otherwise every export name forks the trie and re-allocates the
856
- // three elements below it, which are constant for the whole compilation.
1075
+ // Keys are ordered by rising cardinality, since `moduleGraph.cached` is a
1076
+ // trie allocating a node per level per prefix: the per-export `value` last,
1077
+ // or every name forks the trie above the parts constant for the build.
857
1078
  return moduleGraph.cached(
858
1079
  computeInterpolatedIdentifier,
859
1080
  /** @type {CssModule} */ (module),
@@ -886,10 +1107,14 @@ CssIcssExportDependency.Template = class CssIcssExportDependencyTemplate extends
886
1107
 
887
1108
  for (const entry of dep.entries) {
888
1109
  if (!entry.range && !isJs) continue;
1110
+ // Neither exported nor rewritten in JS, so not worth resolving there.
1111
+ if (isJs && entry.exportMode === EXPORT_MODE.RESOLVED_REFERENCE) continue;
889
1112
  const isReference = Array.isArray(entry.value);
890
1113
 
891
1114
  /** @type {string} */
892
1115
  let value;
1116
+ /** @type {{ prefix: string, name: string } | undefined} */
1117
+ let declaration;
893
1118
  if (entry.exportType === EXPORT_TYPE.COMPOSES && isJs) {
894
1119
  value = CssIcssExportDependencyTemplate.resolveReferences(
895
1120
  entry,
@@ -897,6 +1122,31 @@ CssIcssExportDependency.Template = class CssIcssExportDependencyTemplate extends
897
1122
  new Set(),
898
1123
  cache
899
1124
  ).join(" ");
1125
+ } else if (isResolvedMode(entry.exportMode)) {
1126
+ const keyword = isReferenceKeyword(moduleGraph, module, entry, cache);
1127
+ declaration = keyword
1128
+ ? undefined
1129
+ : resolveDeclaration(moduleGraph, module, entry, cache);
1130
+ value =
1131
+ declaration !== undefined
1132
+ ? CssIcssExportDependencyTemplate.getIdentifier(
1133
+ declaration.name,
1134
+ entry,
1135
+ templateContext
1136
+ )
1137
+ : CssIcssExportDependencyTemplate.resolve(
1138
+ /** @type {string[]} */ (entry.value)[0],
1139
+ /** @type {string[]} */ (entry.value)[1],
1140
+ templateContext,
1141
+ /** @type {string[]} */ (entry.value)[2],
1142
+ new Set(),
1143
+ cache,
1144
+ // A declared name is still scoped, as a local `@value` is.
1145
+ entry.exportMode === EXPORT_MODE.RESOLVED_NAME
1146
+ ? entry
1147
+ : undefined,
1148
+ !keyword
1149
+ ) || /** @type {string[]} */ (entry.value)[0];
900
1150
  } else if (isReference) {
901
1151
  const resolved = CssIcssExportDependencyTemplate.resolve(
902
1152
  /** @type {string[]} */ (entry.value)[0],
@@ -904,7 +1154,10 @@ CssIcssExportDependency.Template = class CssIcssExportDependencyTemplate extends
904
1154
  templateContext,
905
1155
  /** @type {string[]} */ (entry.value)[2],
906
1156
  new Set(),
907
- cache
1157
+ cache,
1158
+ entry.interpolate && entry.exportType === EXPORT_TYPE.NORMAL
1159
+ ? entry
1160
+ : undefined
908
1161
  );
909
1162
  value = resolved || /** @type {string[]} */ (entry.value)[0];
910
1163
  } else {
@@ -926,11 +1179,14 @@ CssIcssExportDependency.Template = class CssIcssExportDependencyTemplate extends
926
1179
  }
927
1180
 
928
1181
  if (isJs && entry.exportMode !== EXPORT_MODE.NONE) {
929
- const names = entryConventionNames(
930
- entry,
1182
+ const convention =
931
1183
  /** @type {CssGeneratorExportsConvention} */
932
- (generator.options.exportsConvention)
933
- );
1184
+ (generator.options.exportsConvention);
1185
+ const names = !isResolvedMode(entry.exportMode)
1186
+ ? entryConventionNames(entry, convention)
1187
+ : declaration !== undefined
1188
+ ? cssExportConvention(declaration.name, convention)
1189
+ : [];
934
1190
  /** @type {Set<string>} */
935
1191
  const allNames = new Set();
936
1192
  for (const name of names) {
@@ -950,7 +1206,10 @@ CssIcssExportDependency.Template = class CssIcssExportDependencyTemplate extends
950
1206
  const depLocLine = entry.locStartLine;
951
1207
  const depLocColumn = entry.locStartColumn;
952
1208
  for (const used of allNames) {
953
- if (entry.exportMode === EXPORT_MODE.ONCE) {
1209
+ if (
1210
+ entry.exportMode === EXPORT_MODE.ONCE ||
1211
+ isResolvedMode(entry.exportMode)
1212
+ ) {
954
1213
  if (cssData.exports.has(used)) continue;
955
1214
  cssData.exports.set(used, unescaped);
956
1215
  if (
@@ -990,21 +1249,37 @@ CssIcssExportDependency.Template = class CssIcssExportDependencyTemplate extends
990
1249
  entry.exportMode !== EXPORT_MODE.APPEND &&
991
1250
  entry.exportMode !== EXPORT_MODE.SELF_REFERENCE
992
1251
  ) {
993
- source.replace(entry.range[0], entry.range[1] - 1, value);
1252
+ // A resolved `.class` / `#id` keeps its prefix in the CSS only.
1253
+ source.replace(
1254
+ entry.range[0],
1255
+ entry.range[1] - 1,
1256
+ declaration !== undefined && declaration.prefix !== ""
1257
+ ? declaration.prefix + value
1258
+ : value
1259
+ );
994
1260
  }
995
1261
  }
996
1262
  }
997
1263
  };
998
1264
 
999
- /** @type {Record<"NONE" | "REPLACE" | "APPEND" | "ONCE" | "SELF_REFERENCE", ExportMode>} */
1265
+ /** @type {Record<"NONE" | "REPLACE" | "APPEND" | "ONCE" | "SELF_REFERENCE" | "RESOLVED_NAME" | "RESOLVED_SELECTOR" | "RESOLVED_REFERENCE", ExportMode>} */
1000
1266
  CssIcssExportDependency.EXPORT_MODE = EXPORT_MODE;
1001
1267
 
1268
+ CssIcssExportDependency.notSimpleIdentifierMessage = notSimpleIdentifierMessage;
1269
+
1002
1270
  /** @type {Record<"NORMAL" | "CUSTOM_VARIABLE" | "GRID_CUSTOM_IDENTIFIER" | "COMPOSES", ExportType>} */
1003
1271
  CssIcssExportDependency.EXPORT_TYPE = EXPORT_TYPE;
1004
1272
 
1005
- makeSerializable(
1006
- CssIcssExportDependency,
1273
+ makeSerializable(CssIcssExportDependency, [
1274
+ "webpack/lib/dependencies/css/CssIcssExportDependency",
1275
+ // TODO in the next major release: remove, they restore pre-move cache packs
1007
1276
  "webpack/lib/dependencies/CssIcssExportDependency"
1008
- );
1277
+ ]);
1278
+
1279
+ /** @type {Set<keyof DependencyKinds>} */
1280
+ CssIcssExportDependency.KINDS = new Set([
1281
+ ...NullDependency.KINDS,
1282
+ "css-icss-export"
1283
+ ]);
1009
1284
 
1010
1285
  module.exports = CssIcssExportDependency;