webpack 5.111.1 → 5.112.1

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