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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (669) hide show
  1. package/README.md +9 -11
  2. package/bin/webpack.js +12 -0
  3. package/changes.json +16 -24
  4. package/hot/dev-server.js +2 -0
  5. package/lib/APIPlugin.js +60 -35
  6. package/lib/AsyncDependenciesBlock.js +3 -0
  7. package/lib/AutomaticPrefetchPlugin.js +6 -1
  8. package/lib/BannerPlugin.js +13 -5
  9. package/lib/Cache.js +27 -5
  10. package/lib/CacheFacade.js +41 -0
  11. package/lib/Chunk.js +71 -25
  12. package/lib/ChunkGraph.js +153 -19
  13. package/lib/ChunkGroup.js +115 -28
  14. package/lib/ChunkTemplate.js +9 -0
  15. package/lib/CircularModulesPlugin.js +190 -0
  16. package/lib/CleanPlugin.js +27 -28
  17. package/lib/CodeGenerationResults.js +19 -0
  18. package/lib/CompatibilityPlugin.js +85 -37
  19. package/lib/Compilation.js +656 -112
  20. package/lib/Compiler.js +109 -35
  21. package/lib/ConcatenationScope.js +34 -4
  22. package/lib/ConditionalInitFragment.js +6 -0
  23. package/lib/ConstPlugin.js +15 -12
  24. package/lib/ContextExclusionPlugin.js +3 -1
  25. package/lib/ContextModule.js +345 -55
  26. package/lib/ContextModuleFactory.js +193 -51
  27. package/lib/ContextReplacementPlugin.js +8 -1
  28. package/lib/DefinePlugin.js +537 -139
  29. package/lib/DependenciesBlock.js +6 -1
  30. package/lib/Dependency.js +159 -11
  31. package/lib/DependencyTemplate.js +7 -1
  32. package/lib/DependencyTemplates.js +4 -0
  33. package/lib/DotenvPlugin.js +3 -0
  34. package/lib/DynamicEntryPlugin.js +3 -1
  35. package/lib/EntryOptionPlugin.js +42 -2
  36. package/lib/EntryPlugin.js +4 -1
  37. package/lib/Entrypoint.js +5 -1
  38. package/lib/EnvironmentPlugin.js +3 -2
  39. package/lib/ErrorHelpers.js +7 -0
  40. package/lib/EvalDevToolModulePlugin.js +3 -1
  41. package/lib/EvalSourceMapDevToolPlugin.js +11 -11
  42. package/lib/ExportsInfo.js +421 -113
  43. package/lib/ExportsInfoApiPlugin.js +4 -3
  44. package/lib/ExternalModule.js +381 -80
  45. package/lib/ExternalModuleFactoryPlugin.js +75 -3
  46. package/lib/ExternalsPlugin.js +3 -1
  47. package/lib/FileSystemInfo.js +701 -175
  48. package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
  49. package/lib/FlagDependencyExportsPlugin.js +82 -9
  50. package/lib/FlagDependencyUsagePlugin.js +115 -8
  51. package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
  52. package/lib/Generator.js +24 -3
  53. package/lib/HotModuleReplacementPlugin.js +110 -44
  54. package/lib/IgnorePlugin.js +5 -2
  55. package/lib/IgnoreWarningsPlugin.js +2 -1
  56. package/lib/InitFragment.js +33 -30
  57. package/lib/JavascriptMetaInfoPlugin.js +9 -6
  58. package/lib/LazyBarrel.js +389 -0
  59. package/lib/LibraryTemplatePlugin.js +2 -1
  60. package/lib/LoaderOptionsPlugin.js +3 -1
  61. package/lib/LoaderTargetPlugin.js +3 -1
  62. package/lib/MainTemplate.js +15 -0
  63. package/lib/ManifestPlugin.js +9 -2
  64. package/lib/Module.js +121 -57
  65. package/lib/ModuleFactory.js +6 -1
  66. package/lib/ModuleFilenameHelpers.js +18 -4
  67. package/lib/ModuleGraph.js +69 -2
  68. package/lib/ModuleGraphConnection.js +9 -0
  69. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  70. package/lib/ModuleNotFoundError.js +3 -83
  71. package/lib/ModuleProfile.js +27 -1
  72. package/lib/ModuleSourceTypeConstants.js +52 -19
  73. package/lib/ModuleTemplate.js +10 -0
  74. package/lib/ModuleTypeConstants.js +20 -4
  75. package/lib/MultiCompiler.js +59 -4
  76. package/lib/MultiStats.js +9 -0
  77. package/lib/MultiWatching.js +6 -0
  78. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  79. package/lib/NodeStuffPlugin.js +78 -46
  80. package/lib/NormalModule.js +519 -206
  81. package/lib/NormalModuleFactory.js +156 -31
  82. package/lib/NormalModuleReplacementPlugin.js +3 -1
  83. package/lib/NullFactory.js +1 -0
  84. package/lib/OptionsApply.js +1 -0
  85. package/lib/Parser.js +3 -1
  86. package/lib/PlatformPlugin.js +2 -1
  87. package/lib/PrefetchPlugin.js +4 -1
  88. package/lib/ProgressPlugin.js +351 -161
  89. package/lib/ProvidePlugin.js +6 -3
  90. package/lib/RawModule.js +32 -16
  91. package/lib/RecordIdsPlugin.js +9 -0
  92. package/lib/RequestShortener.js +8 -0
  93. package/lib/ResolverFactory.js +5 -0
  94. package/lib/RuntimeGlobals.js +58 -5
  95. package/lib/RuntimeModule.js +22 -7
  96. package/lib/RuntimePlugin.js +123 -118
  97. package/lib/RuntimeTemplate.js +616 -37
  98. package/lib/SelfModuleFactory.js +3 -0
  99. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  100. package/lib/SourceMapDevToolPlugin.js +341 -63
  101. package/lib/Stats.js +6 -0
  102. package/lib/Template.js +52 -6
  103. package/lib/TemplatedPathPlugin.js +505 -138
  104. package/lib/UseStrictPlugin.js +3 -2
  105. package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
  106. package/lib/WarnDeprecatedOptionPlugin.js +6 -2
  107. package/lib/WarnNoModeSetPlugin.js +18 -2
  108. package/lib/WatchIgnorePlugin.js +5 -1
  109. package/lib/Watching.js +25 -3
  110. package/lib/WebpackError.js +3 -74
  111. package/lib/WebpackIsIncludedPlugin.js +4 -2
  112. package/lib/WebpackOptionsApply.js +88 -25
  113. package/lib/WebpackOptionsDefaulter.js +1 -0
  114. package/lib/asset/AssetBytesGenerator.js +28 -10
  115. package/lib/asset/AssetBytesParser.js +1 -0
  116. package/lib/asset/AssetGenerator.js +199 -60
  117. package/lib/asset/AssetModule.js +47 -0
  118. package/lib/asset/AssetModulesPlugin.js +115 -24
  119. package/lib/asset/AssetParser.js +4 -2
  120. package/lib/asset/AssetSourceGenerator.js +26 -8
  121. package/lib/asset/AssetSourceParser.js +1 -0
  122. package/lib/asset/RawDataUrlModule.js +23 -13
  123. package/lib/asset/WebManifestGenerator.js +164 -0
  124. package/lib/asset/WebManifestParser.js +130 -0
  125. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  126. package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
  127. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  128. package/lib/async-modules/isGeneratorLowered.js +26 -0
  129. package/lib/buildChunkGraph.js +107 -15
  130. package/lib/bun/BunTargetPlugin.js +42 -0
  131. package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
  132. package/lib/cache/AddManagedPathsPlugin.js +5 -1
  133. package/lib/cache/IdleFileCachePlugin.js +6 -1
  134. package/lib/cache/MemoryCachePlugin.js +1 -1
  135. package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
  136. package/lib/cache/PackFileCacheStrategy.js +302 -12
  137. package/lib/cache/ResolverCachePlugin.js +12 -1
  138. package/lib/cache/getLazyHashedEtag.js +13 -2
  139. package/lib/cache/mergeEtags.js +4 -0
  140. package/lib/cli.js +142 -20
  141. package/lib/config/browserslistTargetHandler.js +141 -0
  142. package/lib/config/defaults.js +612 -43
  143. package/lib/config/defineConfig.js +31 -0
  144. package/lib/config/normalization.js +46 -1
  145. package/lib/config/target.js +200 -2
  146. package/lib/container/ContainerEntryDependency.js +2 -0
  147. package/lib/container/ContainerEntryModule.js +27 -14
  148. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  149. package/lib/container/ContainerExposedDependency.js +6 -2
  150. package/lib/container/ContainerPlugin.js +2 -1
  151. package/lib/container/ContainerReferencePlugin.js +3 -2
  152. package/lib/container/FallbackDependency.js +9 -7
  153. package/lib/container/FallbackItemDependency.js +1 -0
  154. package/lib/container/FallbackModule.js +22 -9
  155. package/lib/container/FallbackModuleFactory.js +1 -0
  156. package/lib/container/HoistContainerReferencesPlugin.js +47 -55
  157. package/lib/container/ModuleFederationPlugin.js +21 -29
  158. package/lib/container/RemoteModule.js +33 -10
  159. package/lib/container/RemoteRuntimeModule.js +15 -12
  160. package/lib/container/RemoteToExternalDependency.js +1 -0
  161. package/lib/container/options.js +7 -0
  162. package/lib/css/CssGenerator.js +540 -272
  163. package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
  164. package/lib/css/CssLoadingRuntimeModule.js +173 -81
  165. package/lib/{CssModule.js → css/CssModule.js} +72 -37
  166. package/lib/css/CssModulesPlugin.js +371 -208
  167. package/lib/css/CssParser.js +3538 -1963
  168. package/lib/css/syntax.js +4155 -0
  169. package/lib/debug/ProfilingPlugin.js +33 -2
  170. package/lib/deno/DenoTargetPlugin.js +41 -0
  171. package/lib/dependencies/AMDDefineDependency.js +29 -17
  172. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
  173. package/lib/dependencies/AMDPlugin.js +6 -3
  174. package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
  175. package/lib/dependencies/AMDRequireContextDependency.js +10 -11
  176. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  177. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
  178. package/lib/dependencies/AMDRequireDependency.js +28 -20
  179. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  180. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  181. package/lib/dependencies/CachedConstDependency.js +9 -1
  182. package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
  183. package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
  184. package/lib/dependencies/CommonJsExportsDependency.js +74 -20
  185. package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
  186. package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
  187. package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
  188. package/lib/dependencies/CommonJsPlugin.js +7 -4
  189. package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
  190. package/lib/dependencies/CommonJsRequireDependency.js +135 -13
  191. package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
  192. package/lib/dependencies/ConstDependency.js +22 -12
  193. package/lib/dependencies/ContextDependency.js +13 -2
  194. package/lib/dependencies/ContextDependencyHelpers.js +7 -4
  195. package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
  196. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  197. package/lib/dependencies/ContextElementDependency.js +27 -14
  198. package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
  199. package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
  200. package/lib/dependencies/CriticalDependencyWarning.js +3 -1
  201. package/lib/dependencies/CssIcssExportDependency.js +681 -367
  202. package/lib/dependencies/CssIcssImportDependency.js +62 -17
  203. package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
  204. package/lib/dependencies/CssImportDependency.js +37 -1
  205. package/lib/dependencies/CssUrlDependency.js +87 -14
  206. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  207. package/lib/dependencies/DllEntryDependency.js +12 -13
  208. package/lib/dependencies/DynamicExports.js +5 -0
  209. package/lib/dependencies/EntryDependency.js +1 -0
  210. package/lib/dependencies/ExportBindingInitFragment.js +164 -0
  211. package/lib/dependencies/ExportsInfoDependency.js +18 -12
  212. package/lib/dependencies/ExternalModuleDependency.js +13 -5
  213. package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
  214. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
  215. package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
  216. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
  217. package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
  218. package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
  219. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
  220. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
  221. package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
  222. package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
  223. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
  224. package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
  225. package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
  226. package/lib/dependencies/HarmonyExports.js +6 -1
  227. package/lib/dependencies/HarmonyImportDependency.js +60 -4
  228. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
  229. package/lib/dependencies/HarmonyImportGuard.js +427 -0
  230. package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
  231. package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
  232. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
  233. package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
  234. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
  235. package/lib/dependencies/HtmlEntryDependency.js +1295 -0
  236. package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
  237. package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
  238. package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
  239. package/lib/dependencies/HtmlSourceDependency.js +172 -0
  240. package/lib/dependencies/ImportContextDependency.js +9 -9
  241. package/lib/dependencies/ImportDependency.js +92 -3
  242. package/lib/dependencies/ImportEagerDependency.js +2 -0
  243. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  244. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
  245. package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
  246. package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
  247. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
  248. package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
  249. package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
  250. package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
  251. package/lib/dependencies/ImportMetaPlugin.js +595 -209
  252. package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
  253. package/lib/dependencies/ImportParserPlugin.js +114 -27
  254. package/lib/dependencies/ImportPhase.js +17 -11
  255. package/lib/dependencies/ImportPlugin.js +2 -1
  256. package/lib/dependencies/ImportWeakDependency.js +3 -0
  257. package/lib/dependencies/JsonExportsDependency.js +15 -10
  258. package/lib/dependencies/LoaderDependency.js +2 -0
  259. package/lib/dependencies/LoaderImportDependency.js +3 -0
  260. package/lib/dependencies/LoaderPlugin.js +9 -2
  261. package/lib/dependencies/LocalModule.js +15 -12
  262. package/lib/dependencies/LocalModuleDependency.js +15 -13
  263. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  264. package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
  265. package/lib/dependencies/ModuleDependency.js +14 -0
  266. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  267. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  268. package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
  269. package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
  270. package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
  271. package/lib/dependencies/NullDependency.js +2 -0
  272. package/lib/dependencies/PrefetchDependency.js +1 -0
  273. package/lib/dependencies/ProvidedDependency.js +36 -27
  274. package/lib/dependencies/PureExpressionDependency.js +14 -10
  275. package/lib/dependencies/RequireContextDependency.js +1 -0
  276. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
  277. package/lib/dependencies/RequireContextPlugin.js +2 -1
  278. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  279. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
  280. package/lib/dependencies/RequireEnsureDependency.js +16 -13
  281. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  282. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  283. package/lib/dependencies/RequireHeaderDependency.js +7 -4
  284. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  285. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
  286. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  287. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
  288. package/lib/dependencies/RequireResolveContextDependency.js +10 -11
  289. package/lib/dependencies/RequireResolveDependency.js +2 -0
  290. package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
  291. package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
  292. package/lib/dependencies/StaticExportsDependency.js +13 -10
  293. package/lib/dependencies/SystemPlugin.js +9 -6
  294. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  295. package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
  296. package/lib/dependencies/URLContextDependency.js +8 -7
  297. package/lib/dependencies/URLDependency.js +157 -33
  298. package/lib/dependencies/URLPlugin.js +2 -0
  299. package/lib/dependencies/UnsupportedDependency.js +12 -13
  300. package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
  301. package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
  302. package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
  303. package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
  304. package/lib/dependencies/WorkerDependency.js +111 -27
  305. package/lib/dependencies/WorkletDependency.js +278 -0
  306. package/lib/dependencies/getFunctionExpression.js +1 -0
  307. package/lib/dependencies/processExportInfo.js +14 -11
  308. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
  309. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
  310. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
  311. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
  312. package/lib/{DllModule.js → dll/DllModule.js} +36 -24
  313. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
  314. package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
  315. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
  316. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
  317. package/lib/electron/ElectronTargetPlugin.js +24 -5
  318. package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
  319. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
  320. package/lib/errors/BuildCycleError.js +1 -1
  321. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  322. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  323. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
  324. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
  325. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
  326. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
  327. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
  328. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
  329. package/lib/errors/JSONParseError.js +115 -0
  330. package/lib/errors/LoaderLoadingError.js +20 -0
  331. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
  332. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
  333. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
  334. package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
  335. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
  336. package/lib/errors/ModuleNotFoundError.js +94 -0
  337. package/lib/errors/ModuleParseError.js +141 -0
  338. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
  339. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
  340. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
  341. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
  342. package/lib/errors/NonErrorEmittedError.js +30 -0
  343. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
  344. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
  345. package/lib/errors/WebpackError.js +84 -0
  346. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  347. package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
  348. package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
  349. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
  350. package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
  351. package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
  352. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
  353. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  354. package/lib/hmr/LazyCompilationPlugin.js +154 -7
  355. package/lib/hmr/lazyCompilationBackend.js +53 -12
  356. package/lib/html/HtmlGenerator.js +1490 -0
  357. package/lib/html/HtmlModule.js +41 -0
  358. package/lib/html/HtmlModulesPlugin.js +1129 -0
  359. package/lib/html/HtmlParser.js +1970 -0
  360. package/lib/html/favicon.svg +1 -0
  361. package/lib/html/syntax.js +9106 -0
  362. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  363. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  364. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  365. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  366. package/lib/ids/IdHelpers.js +49 -12
  367. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  368. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  369. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  370. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  371. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  372. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  373. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  374. package/lib/index.js +66 -15
  375. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
  376. package/lib/javascript/BasicEvaluatedExpression.js +370 -49
  377. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  378. package/lib/javascript/ChunkHelpers.js +1 -0
  379. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  380. package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
  381. package/lib/javascript/JavascriptGenerator.js +213 -51
  382. package/lib/javascript/JavascriptModule.js +54 -0
  383. package/lib/javascript/JavascriptModulesPlugin.js +628 -198
  384. package/lib/javascript/JavascriptParser.js +1334 -471
  385. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  386. package/lib/javascript/StartupHelpers.js +5 -0
  387. package/lib/javascript/syntax.js +5037 -0
  388. package/lib/json/JsonData.js +5 -0
  389. package/lib/json/JsonGenerator.js +21 -0
  390. package/lib/json/JsonModule.js +40 -0
  391. package/lib/json/JsonModulesPlugin.js +8 -1
  392. package/lib/json/JsonParser.js +18 -27
  393. package/lib/library/AbstractLibraryPlugin.js +17 -2
  394. package/lib/library/AmdLibraryPlugin.js +8 -0
  395. package/lib/library/AssignLibraryPlugin.js +21 -3
  396. package/lib/library/EnableLibraryPlugin.js +8 -2
  397. package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
  398. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
  399. package/lib/library/JsonpLibraryPlugin.js +8 -0
  400. package/lib/library/ModuleLibraryPlugin.js +154 -7
  401. package/lib/library/SystemLibraryPlugin.js +11 -3
  402. package/lib/library/UmdLibraryPlugin.js +16 -0
  403. package/lib/loaders/LoaderRunner.js +714 -0
  404. package/lib/loaders/loadLoader.js +100 -0
  405. package/lib/logging/Logger.js +17 -0
  406. package/lib/logging/createConsoleLogger.js +7 -0
  407. package/lib/logging/runtime.js +2 -0
  408. package/lib/logging/truncateArgs.js +2 -0
  409. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  410. package/lib/node/NodeEnvironmentPlugin.js +7 -3
  411. package/lib/node/NodeSourcePlugin.js +1 -1
  412. package/lib/node/NodeTargetPlugin.js +4 -63
  413. package/lib/node/NodeTemplatePlugin.js +3 -1
  414. package/lib/node/NodeWatchFileSystem.js +40 -22
  415. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
  416. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
  417. package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
  418. package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
  419. package/lib/node/nodeBuiltins.js +80 -0
  420. package/lib/node/nodeConsole.js +116 -64
  421. package/lib/optimize/AggressiveMergingPlugin.js +22 -16
  422. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  423. package/lib/optimize/ConcatenatedModule.js +603 -130
  424. package/lib/optimize/ConstExportsPlugin.js +211 -0
  425. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  426. package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
  427. package/lib/optimize/InlineExports.js +178 -0
  428. package/lib/optimize/InnerGraph.js +374 -262
  429. package/lib/optimize/InnerGraphPlugin.js +246 -117
  430. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  431. package/lib/optimize/MangleExportsPlugin.js +5 -1
  432. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  433. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  434. package/lib/optimize/MinMaxSizeWarning.js +5 -4
  435. package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
  436. package/lib/optimize/RealContentHashPlugin.js +130 -52
  437. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  438. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  439. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  440. package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
  441. package/lib/optimize/SplitChunksPlugin.js +200 -50
  442. package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
  443. package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
  444. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  445. package/lib/performance/SizeLimitsPlugin.js +8 -2
  446. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  447. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
  448. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  449. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
  450. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
  451. package/lib/prefetch/ResourceHintPlugin.js +687 -0
  452. package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
  453. package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
  454. package/lib/prefetch/parseResourceHintOptions.js +103 -0
  455. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  456. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  457. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  458. package/lib/rules/RuleSetCompiler.js +132 -0
  459. package/lib/rules/UseEffectRulePlugin.js +10 -3
  460. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
  461. package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
  462. package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
  463. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  464. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  465. package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
  466. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
  467. package/lib/runtime/CompatRuntimeModule.js +2 -0
  468. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
  469. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  470. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  471. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
  472. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  473. package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
  474. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  475. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  476. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
  477. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
  478. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  479. package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
  480. package/lib/runtime/HelperRuntimeModule.js +5 -0
  481. package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
  482. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
  483. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
  484. package/lib/runtime/NonceRuntimeModule.js +1 -0
  485. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
  486. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  487. package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
  488. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  489. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
  490. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  491. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
  492. package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
  493. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  494. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  495. package/lib/runtime/WorkerRuntimeModule.js +33 -0
  496. package/lib/schemes/DataUriPlugin.js +14 -2
  497. package/lib/schemes/FileUriPlugin.js +1 -1
  498. package/lib/schemes/HttpUriPlugin.js +86 -4
  499. package/lib/schemes/VirtualUrlPlugin.js +8 -4
  500. package/lib/serialization/AggregateErrorSerializer.js +9 -6
  501. package/lib/serialization/ArraySerializer.js +6 -8
  502. package/lib/serialization/BinaryMiddleware.js +427 -1006
  503. package/lib/serialization/DateObjectSerializer.js +4 -2
  504. package/lib/serialization/ErrorObjectSerializer.js +10 -6
  505. package/lib/serialization/FileMiddleware.js +345 -59
  506. package/lib/serialization/MapObjectSerializer.js +7 -9
  507. package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
  508. package/lib/serialization/ObjectMiddleware.js +73 -13
  509. package/lib/serialization/PlainObjectSerializer.js +16 -8
  510. package/lib/serialization/RegExpObjectSerializer.js +4 -2
  511. package/lib/serialization/Serializer.js +6 -0
  512. package/lib/serialization/SerializerMiddleware.js +14 -2
  513. package/lib/serialization/SetObjectSerializer.js +6 -8
  514. package/lib/serialization/SingleItemMiddleware.js +3 -0
  515. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  516. package/lib/sharing/ConsumeSharedModule.js +21 -7
  517. package/lib/sharing/ConsumeSharedPlugin.js +11 -11
  518. package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
  519. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  520. package/lib/sharing/ProvideSharedDependency.js +34 -15
  521. package/lib/sharing/ProvideSharedModule.js +42 -12
  522. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  523. package/lib/sharing/ProvideSharedPlugin.js +13 -8
  524. package/lib/sharing/SharePlugin.js +5 -1
  525. package/lib/sharing/ShareRuntimeModule.js +19 -16
  526. package/lib/sharing/resolveMatchedConfigs.js +6 -2
  527. package/lib/sharing/utils.js +9 -1
  528. package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
  529. package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
  530. package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
  531. package/lib/stats/StatsFactory.js +70 -27
  532. package/lib/stats/StatsPrinter.js +16 -2
  533. package/lib/typescript/TypeScriptPlugin.js +210 -0
  534. package/lib/url/URLParserPlugin.js +111 -23
  535. package/lib/util/ArrayHelpers.js +1 -0
  536. package/lib/util/ArrayQueue.js +10 -5
  537. package/lib/util/AsyncQueue.js +154 -74
  538. package/lib/util/Hash.js +2 -2
  539. package/lib/util/IterableHelpers.js +3 -0
  540. package/lib/util/LazyBucketSortedSet.js +26 -0
  541. package/lib/util/LazySet.js +45 -4
  542. package/lib/util/LocConverter.js +64 -0
  543. package/lib/util/ParallelismFactorCalculator.js +1 -0
  544. package/lib/util/Queue.js +6 -3
  545. package/lib/util/Semaphore.js +15 -1
  546. package/lib/util/SetHelpers.js +4 -1
  547. package/lib/util/SortableSet.js +7 -1
  548. package/lib/util/SourceProcessor.js +119 -0
  549. package/lib/util/StackedCacheMap.js +20 -3
  550. package/lib/util/StackedMap.js +162 -43
  551. package/lib/util/StringXor.js +1 -1
  552. package/lib/util/TupleQueue.js +7 -3
  553. package/lib/util/TupleSet.js +14 -0
  554. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  555. package/lib/util/WeakTupleMap.js +60 -1
  556. package/lib/util/binarySearchBounds.js +3 -2
  557. package/lib/util/chainedImports.js +3 -3
  558. package/lib/util/cleverMerge.js +19 -2
  559. package/lib/util/comparators.js +35 -4
  560. package/lib/util/compileBooleanMatcher.js +9 -0
  561. package/lib/util/concatenate.js +80 -24
  562. package/lib/util/conventions.js +46 -1
  563. package/lib/util/createHash.js +0 -1
  564. package/lib/util/createHooksRegistry.js +43 -0
  565. package/lib/util/createMappings.js +118 -0
  566. package/lib/util/dataURL.js +3 -2
  567. package/lib/util/deprecation.js +19 -0
  568. package/lib/util/deterministicGrouping.js +46 -17
  569. package/lib/util/extractSourceMap.js +2 -1
  570. package/lib/util/extractUrlAndGlobal.js +1 -0
  571. package/lib/util/findGraphRoots.js +7 -0
  572. package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
  573. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
  574. package/lib/util/fs.js +87 -14
  575. package/lib/util/generateDebugId.js +1 -0
  576. package/lib/util/globUtils.js +710 -0
  577. package/lib/util/hash/BatchedHash.js +1 -0
  578. package/lib/util/hash/BulkUpdateHash.js +1 -0
  579. package/lib/util/hash/DebugHash.js +1 -0
  580. package/lib/util/hash/hash-digest.js +32 -15
  581. package/lib/util/hash/md4.js +1 -1
  582. package/lib/util/hash/wasm-hash.js +5 -0
  583. package/lib/util/hash/xxhash64.js +1 -1
  584. package/lib/util/identifier.js +118 -7
  585. package/lib/util/implicitTypeLoaderFallback.js +62 -0
  586. package/lib/util/internalSerializables.js +102 -60
  587. package/lib/util/magicComment.js +149 -7
  588. package/lib/util/makeSerializable.js +7 -0
  589. package/lib/util/memoize.js +2 -0
  590. package/lib/util/mimeTypes.js +176 -0
  591. package/lib/util/nonNumericOnlyHash.js +31 -1
  592. package/lib/util/numberHash.js +2 -2
  593. package/lib/util/parseJson.js +41 -0
  594. package/lib/util/processAsyncTree.js +8 -0
  595. package/lib/util/property.js +9 -2
  596. package/lib/util/publicPathPlaceholder.js +64 -0
  597. package/lib/util/registerExternalSerializer.js +24 -4
  598. package/lib/util/removeBOM.js +1 -0
  599. package/lib/util/runtime.js +32 -0
  600. package/lib/util/semver.js +15 -0
  601. package/lib/util/serialization.js +2 -0
  602. package/lib/util/smartGrouping.js +8 -0
  603. package/lib/util/source.js +23 -0
  604. package/lib/util/topologicalSort.js +69 -0
  605. package/lib/validateSchema.js +1 -0
  606. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  607. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
  608. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
  609. package/lib/wasm-async/AsyncWasmModule.js +77 -0
  610. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  611. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
  612. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
  613. package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
  614. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
  615. package/lib/wasm-sync/SyncWasmModule.js +39 -0
  616. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
  617. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
  618. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
  619. package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
  620. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
  621. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  622. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
  623. package/lib/wasm-sync/WebAssemblyParser.js +9 -3
  624. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  625. package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
  626. package/lib/web/FetchCompileWasmPlugin.js +27 -1
  627. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  628. package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
  629. package/lib/web/JsonpTemplatePlugin.js +2 -1
  630. package/lib/webpack.js +78 -1
  631. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  632. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
  633. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  634. package/module.d.ts +21 -0
  635. package/package.json +79 -77
  636. package/schemas/WebpackOptions.check.js +1 -1
  637. package/schemas/WebpackOptions.json +1173 -80
  638. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  639. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  640. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  641. package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
  642. package/schemas/plugins/HtmlParserOptions.check.js +6 -0
  643. package/schemas/plugins/HtmlParserOptions.json +3 -0
  644. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  645. package/schemas/plugins/ProgressPlugin.json +38 -0
  646. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  647. package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
  648. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  649. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  650. package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
  651. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
  652. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  653. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  654. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  655. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  656. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  657. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  658. package/types.d.ts +11053 -3019
  659. package/lib/CaseSensitiveModulesWarning.js +0 -72
  660. package/lib/GraphHelpers.js +0 -46
  661. package/lib/ModuleParseError.js +0 -125
  662. package/lib/NoModeWarning.js +0 -23
  663. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
  664. package/lib/css/walkCssTokens.js +0 -1843
  665. package/lib/util/AppendOnlyStackedSet.js +0 -78
  666. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  667. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  668. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  669. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
@@ -5,7 +5,8 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const WebpackError = require("../WebpackError");
8
+ const WebpackError = require("../errors/WebpackError");
9
+ const { cssExportConvention } = require("../util/conventions");
9
10
  const makeSerializable = require("../util/makeSerializable");
10
11
  const CssImportDependency = require("./CssImportDependency");
11
12
 
@@ -13,12 +14,13 @@ const CssImportDependency = require("./CssImportDependency");
13
14
  /** @typedef {import("../Dependency")} Dependency */
14
15
  /** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
15
16
  /** @typedef {import("../Module")} Module */
16
- /** @typedef {import("../CssModule")} CssModule */
17
+ /** @typedef {import("../css/CssGenerator")} CssGenerator */
18
+ /** @typedef {import("../css/CssModule")} CssModule */
17
19
  /** @typedef {import("../ModuleGraph")} ModuleGraph */
18
20
  /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
19
21
  /** @typedef {import("../javascript/JavascriptParser").Range} Range */
20
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
21
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
22
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, string]>} ObjectDeserializerContext */
23
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, string]>} ObjectSerializerContext */
22
24
  /** @typedef {import("../Dependency").ReferencedExports} ReferencedExports */
23
25
  /** @typedef {import("../../declarations/WebpackOptions").CssGeneratorExportsConvention} CssGeneratorExportsConvention */
24
26
  /** @typedef {import("./CssIcssExportDependency").ExportMode} ExportMode */
@@ -37,8 +39,30 @@ class CssIcssImportDependency extends CssImportDependency {
37
39
  */
38
40
  constructor(request, range, mode, importName, localName) {
39
41
  super(request, range, mode);
42
+ /** @type {string} */
40
43
  this.importName = importName;
44
+ /** @type {string} */
41
45
  this.localName = localName;
46
+ /** @type {undefined | string[]} */
47
+ this._importNameConventionNames = undefined;
48
+ }
49
+
50
+ /**
51
+ * Memoized `cssExportConvention(this.importName, convention)`. The target
52
+ * module is fixed for a given dep, so its `exportsConvention` is fixed,
53
+ * so the convention-derived aliases of `importName` can be cached on the dep.
54
+ * @param {CssGeneratorExportsConvention} convention convention from the target module's generator
55
+ * @returns {string[]} convention results
56
+ */
57
+ getImportNameConventionNames(convention) {
58
+ if (this._importNameConventionNames) {
59
+ return this._importNameConventionNames;
60
+ }
61
+ this._importNameConventionNames = cssExportConvention(
62
+ this.importName,
63
+ convention
64
+ );
65
+ return this._importNameConventionNames;
42
66
  }
43
67
 
44
68
  get type() {
@@ -61,17 +85,37 @@ class CssIcssImportDependency extends CssImportDependency {
61
85
  }
62
86
 
63
87
  /**
64
- * Returns warnings
88
+ * Returns warnings.
65
89
  * @param {ModuleGraph} moduleGraph module graph
66
90
  * @returns {WebpackError[] | null | undefined} warnings
67
91
  */
68
92
  getWarnings(moduleGraph) {
69
- const module = moduleGraph.getModule(this);
93
+ const module = /** @type {CssModule | undefined} */ (
94
+ moduleGraph.getModule(this)
95
+ );
96
+
97
+ if (!module) return null;
98
+
99
+ // The target module stores exports under the names produced by its
100
+ // `exportsConvention`, so a raw `isExportProvided(this.importName)`
101
+ // would false-positive against `camel-case-only` / `dashes-only` (and
102
+ // any custom function that drops the original spelling). Expand
103
+ // `importName` through the *target* module's convention and accept
104
+ // if any alias is provided.
105
+ const generator =
106
+ /** @type {CssGenerator | undefined} */
107
+ (module.generator);
108
+ const convention =
109
+ generator &&
110
+ /** @type {CssGeneratorExportsConvention | undefined} */
111
+ (generator.options && generator.options.exportsConvention);
112
+ const exportsInfo = moduleGraph.getExportsInfo(module);
113
+ const names = convention
114
+ ? this.getImportNameConventionNames(convention)
115
+ : [this.importName];
116
+ const isProvided = names.some((name) => exportsInfo.isExportProvided(name));
70
117
 
71
- if (
72
- module &&
73
- !moduleGraph.getExportsInfo(module).isExportProvided(this.importName)
74
- ) {
118
+ if (!isProvided) {
75
119
  const error = new WebpackError(
76
120
  `Referenced name "${this.importName}" in "${this.userRequest}" not found`
77
121
  );
@@ -84,23 +128,23 @@ class CssIcssImportDependency extends CssImportDependency {
84
128
  }
85
129
 
86
130
  /**
131
+ * Serializes this instance into the provided serializer context.
87
132
  * @param {ObjectSerializerContext} context context
88
133
  */
89
134
  serialize(context) {
90
- const { write } = context;
91
- write(this.importName);
92
- write(this.localName);
135
+ context.write(this.importName).write(this.localName);
93
136
  super.serialize(context);
94
137
  }
95
138
 
96
139
  /**
140
+ * Restores this instance from the provided deserializer context.
97
141
  * @param {ObjectDeserializerContext} context context
98
142
  */
99
143
  deserialize(context) {
100
- const { read } = context;
101
- this.importName = read();
102
- this.localName = read();
103
- super.deserialize(context);
144
+ this.importName = context.read();
145
+ const c1 = context.rest;
146
+ this.localName = c1.read();
147
+ super.deserialize(c1.rest);
104
148
  }
105
149
  }
106
150
 
@@ -108,6 +152,7 @@ CssIcssImportDependency.Template = class CssIcssImportDependencyTemplate extends
108
152
  CssImportDependency.Template
109
153
  ) {
110
154
  /**
155
+ * Applies the plugin by registering its hooks on the compiler.
111
156
  * @param {Dependency} dependency the dependency for which the template should be applied
112
157
  * @param {ReplaceSource} source the current replace source which can be modified
113
158
  * @param {DependencyTemplateContext} templateContext the context object
@@ -18,24 +18,31 @@ const NullDependency = require("./NullDependency");
18
18
  /** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
19
19
  /** @typedef {import("../ModuleGraph")} ModuleGraph */
20
20
  /** @typedef {import("../css/CssParser").Range} Range */
21
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
22
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
21
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, Range, string | undefined, string | undefined, string | undefined]>} ObjectDeserializerContext */
22
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, Range, string | undefined, string | undefined, string | undefined]>} ObjectSerializerContext */
23
23
  /** @typedef {import("../util/Hash")} Hash */
24
24
  /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
25
25
 
26
26
  class CssIcssSymbolDependency extends NullDependency {
27
27
  /**
28
+ * Creates an instance of CssIcssSymbolDependency.
28
29
  * @param {string} localName local name
29
30
  * @param {Range} range range
30
31
  * @param {string=} value value when it was defined in this module
31
32
  * @param {string=} importName import name when it was imported from other module
33
+ * @param {string=} request request of the `@value` import that was active when this reference was parsed — used to disambiguate when the same local name is imported from multiple modules
32
34
  */
33
- constructor(localName, range, value, importName) {
35
+ constructor(localName, range, value, importName, request) {
34
36
  super();
37
+ /** @type {string} */
35
38
  this.localName = localName;
36
39
  this.range = range;
40
+ /** @type {string | undefined} */
37
41
  this.value = value;
42
+ /** @type {string | undefined} */
38
43
  this.importName = importName;
44
+ /** @type {string | undefined} */
45
+ this.request = request;
39
46
  /** @type {undefined | string} */
40
47
  this._hashUpdate = undefined;
41
48
  }
@@ -45,40 +52,50 @@ class CssIcssSymbolDependency extends NullDependency {
45
52
  }
46
53
 
47
54
  /**
48
- * Update the hash
55
+ * Updates the hash with the data contributed by this instance.
49
56
  * @param {Hash} hash hash to be updated
50
57
  * @param {UpdateHashContext} context context
51
58
  * @returns {void}
52
59
  */
53
60
  updateHash(hash, context) {
54
61
  if (this._hashUpdate === undefined) {
55
- this._hashUpdate = `${this.range}${this.localName}${this.value || this.importName}`;
62
+ // Concatenate with explicit field separators so adjacent fields
63
+ // can't alias each other (e.g. range `[1,11]` + localName `"foo"`
64
+ // vs range `[1,1]` + localName `"1foo"`).
65
+ this._hashUpdate = `range|${JSON.stringify(this.range)}|localName|${this.localName}|value|${this.value || ""}|importName|${this.importName || ""}|request|${this.request || ""}`;
56
66
  }
57
67
  hash.update(this._hashUpdate);
58
68
  }
59
69
 
60
70
  /**
71
+ * Serializes this instance into the provided serializer context.
61
72
  * @param {ObjectSerializerContext} context context
62
73
  */
63
74
  serialize(context) {
64
- const { write } = context;
65
- write(this.localName);
66
- write(this.range);
67
- write(this.value);
68
- write(this.importName);
75
+ context
76
+ .write(this.localName)
77
+ .write(this.range)
78
+ .write(this.value)
79
+ .write(this.importName)
80
+ .write(this.request);
69
81
  super.serialize(context);
70
82
  }
71
83
 
72
84
  /**
85
+ * Restores this instance from the provided deserializer context.
73
86
  * @param {ObjectDeserializerContext} context context
74
87
  */
75
88
  deserialize(context) {
76
- const { read } = context;
77
- this.localName = read();
78
- this.range = read();
79
- this.value = read();
80
- this.importName = read();
81
- super.deserialize(context);
89
+ this.localName = context.read();
90
+ const c1 = context.rest;
91
+ this.range = c1.read();
92
+ const c2 = c1.rest;
93
+ this.value = c2.read();
94
+ const c3 = c2.rest;
95
+ this.importName = c3.read();
96
+ const c4 = c3.rest;
97
+ this.request = c4.read();
98
+ super.deserialize(c4.rest);
82
99
  }
83
100
  }
84
101
 
@@ -86,6 +103,7 @@ CssIcssSymbolDependency.Template = class CssIcssSymbolDependencyTemplate extends
86
103
  NullDependency.Template
87
104
  ) {
88
105
  /**
106
+ * Applies the plugin by registering its hooks on the compiler.
89
107
  * @param {Dependency} dependency the dependency for which the template should be applied
90
108
  * @param {ReplaceSource} source the current replace source which can be modified
91
109
  * @param {DependencyTemplateContext} templateContext the context object
@@ -99,7 +117,8 @@ CssIcssSymbolDependency.Template = class CssIcssSymbolDependencyTemplate extends
99
117
  ? CssIcssExportDependency.Template.resolve(
100
118
  dep.localName,
101
119
  dep.importName,
102
- templateContext
120
+ templateContext,
121
+ dep.request
103
122
  )
104
123
  : dep.value;
105
124
 
@@ -9,8 +9,10 @@ const makeSerializable = require("../util/makeSerializable");
9
9
  const ModuleDependency = require("./ModuleDependency");
10
10
 
11
11
  /** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
12
+ /** @typedef {import("../../declarations/WebpackOptions").CssParserExportType} CssParserExportType */
12
13
  /** @typedef {import("../Dependency")} Dependency */
13
14
  /** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
15
+ /** @typedef {import("../css/CssModule").Inheritance} Inheritance */
14
16
  /** @typedef {import("../css/CssParser").Range} Range */
15
17
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
16
18
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
@@ -25,14 +27,32 @@ class CssImportDependency extends ModuleDependency {
25
27
  * @param {string=} layer layer
26
28
  * @param {string=} supports list of supports conditions
27
29
  * @param {string=} media list of media conditions
30
+ * @param {Inheritance=} inheritance layer/supports/media chain inherited from the importing module
31
+ * @param {CssParserExportType=} exportType exportType inherited from the importing module
28
32
  */
29
- constructor(request, range, mode, layer, supports, media) {
33
+ constructor(
34
+ request,
35
+ range,
36
+ mode,
37
+ layer,
38
+ supports,
39
+ media,
40
+ inheritance,
41
+ exportType
42
+ ) {
30
43
  super(request);
31
44
  this.range = range;
32
45
  this.mode = mode;
46
+ /** @type {string | undefined} */
33
47
  this.layer = layer;
48
+ /** @type {string | undefined} */
34
49
  this.supports = supports;
50
+ /** @type {string | undefined} */
35
51
  this.media = media;
52
+ /** @type {Inheritance | undefined} */
53
+ this.inheritance = inheritance;
54
+ /** @type {CssParserExportType | undefined} */
55
+ this.exportType = exportType;
36
56
  }
37
57
 
38
58
  get type() {
@@ -44,6 +64,15 @@ class CssImportDependency extends ModuleDependency {
44
64
  }
45
65
 
46
66
  /**
67
+ * Returns true if this dependency can be concatenated
68
+ * @returns {boolean} true if this dependency can be concatenated
69
+ */
70
+ canConcatenate() {
71
+ return true;
72
+ }
73
+
74
+ /**
75
+ * Returns an identifier to merge equal requests.
47
76
  * @returns {string | null} an identifier to merge equal requests
48
77
  */
49
78
  getResourceIdentifier() {
@@ -69,6 +98,7 @@ class CssImportDependency extends ModuleDependency {
69
98
  }
70
99
 
71
100
  /**
101
+ * Serializes this instance into the provided serializer context.
72
102
  * @param {ObjectSerializerContext} context context
73
103
  */
74
104
  serialize(context) {
@@ -78,10 +108,13 @@ class CssImportDependency extends ModuleDependency {
78
108
  write(this.layer);
79
109
  write(this.supports);
80
110
  write(this.media);
111
+ write(this.inheritance);
112
+ write(this.exportType);
81
113
  super.serialize(context);
82
114
  }
83
115
 
84
116
  /**
117
+ * Restores this instance from the provided deserializer context.
85
118
  * @param {ObjectDeserializerContext} context context
86
119
  */
87
120
  deserialize(context) {
@@ -91,6 +124,8 @@ class CssImportDependency extends ModuleDependency {
91
124
  this.layer = read();
92
125
  this.supports = read();
93
126
  this.media = read();
127
+ this.inheritance = read();
128
+ this.exportType = read();
94
129
  super.deserialize(context);
95
130
  }
96
131
  }
@@ -99,6 +134,7 @@ CssImportDependency.Template = class CssImportDependencyTemplate extends (
99
134
  ModuleDependency.Template
100
135
  ) {
101
136
  /**
137
+ * Applies the plugin by registering its hooks on the compiler.
102
138
  * @param {Dependency} dependency the dependency for which the template should be applied
103
139
  * @param {ReplaceSource} source the current replace source which can be modified
104
140
  * @param {DependencyTemplateContext} templateContext the context object
@@ -5,6 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const { ASSET_URL_TYPE } = require("../ModuleSourceTypeConstants");
8
9
  const RawDataUrlModule = require("../asset/RawDataUrlModule");
9
10
  const makeSerializable = require("../util/makeSerializable");
10
11
  const memoize = require("../util/memoize");
@@ -12,15 +13,19 @@ const ModuleDependency = require("./ModuleDependency");
12
13
 
13
14
  /** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
14
15
  /** @typedef {import("../CodeGenerationResults")} CodeGenerationResults */
16
+ /** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
15
17
  /** @typedef {import("../Dependency")} Dependency */
16
18
  /** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
17
19
  /** @typedef {import("../Module")} Module */
20
+ /** @typedef {import("../Module").BuildInfo} BuildInfo */
18
21
  /** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
19
22
  /** @typedef {import("../Module").CodeGenerationResultData} CodeGenerationResultData */
20
23
  /** @typedef {import("../javascript/JavascriptParser").Range} Range */
21
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
22
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
24
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<["string" | "url" | "src", true | undefined, true | undefined, ("high" | "low" | "auto" | undefined), string | undefined, string | undefined, string | undefined]>} ObjectDeserializerContext */
25
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<["string" | "url" | "src", true | undefined, true | undefined, ("high" | "low" | "auto" | undefined), string | undefined, string | undefined, string | undefined]>} ObjectSerializerContext */
26
+ /** @typedef {import("../util/Hash")} Hash */
23
27
  /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
28
+ /** @typedef {import("../NormalModule").NormalModuleBuildInfo} NormalModuleBuildInfo */
24
29
 
25
30
  const getIgnoredRawDataUrlModule = memoize(
26
31
  () => new RawDataUrlModule("data:,", "ignored-asset", "(ignored asset)")
@@ -28,6 +33,7 @@ const getIgnoredRawDataUrlModule = memoize(
28
33
 
29
34
  class CssUrlDependency extends ModuleDependency {
30
35
  /**
36
+ * Creates an instance of CssUrlDependency.
31
37
  * @param {string} request request
32
38
  * @param {Range} range range of the argument
33
39
  * @param {"string" | "url" | "src"} urlType dependency type e.g. url() or string
@@ -36,6 +42,18 @@ class CssUrlDependency extends ModuleDependency {
36
42
  super(request);
37
43
  this.range = range;
38
44
  this.urlType = urlType;
45
+ /** @type {true | undefined} */
46
+ this.prefetch = undefined;
47
+ /** @type {true | undefined} */
48
+ this.preload = undefined;
49
+ /** @type {"low" | "high" | "auto" | undefined} */
50
+ this.fetchPriority = undefined;
51
+ /** @type {string | undefined} */
52
+ this.asAttribute = undefined;
53
+ /** @type {string | undefined} */
54
+ this.typeAttribute = undefined;
55
+ /** @type {string | undefined} */
56
+ this.mediaAttribute = undefined;
39
57
  }
40
58
 
41
59
  get type() {
@@ -47,6 +65,7 @@ class CssUrlDependency extends ModuleDependency {
47
65
  }
48
66
 
49
67
  /**
68
+ * Creates an ignored module.
50
69
  * @param {string} context context directory
51
70
  * @returns {Module} ignored module
52
71
  */
@@ -55,25 +74,79 @@ class CssUrlDependency extends ModuleDependency {
55
74
  }
56
75
 
57
76
  /**
77
+ * Updates the hash with the data contributed by this instance.
78
+ * @param {Hash} hash hash to be updated
79
+ * @param {UpdateHashContext} context context
80
+ * @returns {void}
81
+ */
82
+ updateHash(hash, context) {
83
+ // The dependency template substitutes the referenced asset's hashed
84
+ // filename into the rendered CSS at code-generation time. Folding the
85
+ // asset module's content hash into the dependency hash ensures the
86
+ // CSS module's hash invalidates — and the CSS chunk's contenthash
87
+ // updates — whenever the referenced asset's content changes.
88
+ const { chunkGraph } = context;
89
+ const module = chunkGraph.moduleGraph.getModule(this);
90
+ if (!module) return;
91
+ const buildInfo = /** @type {NormalModuleBuildInfo | undefined} */ (
92
+ module.buildInfo
93
+ );
94
+ if (buildInfo && buildInfo.hash) {
95
+ hash.update(/** @type {string} */ (buildInfo.hash));
96
+ }
97
+ }
98
+
99
+ /**
100
+ * Serializes this instance into the provided serializer context.
58
101
  * @param {ObjectSerializerContext} context context
59
102
  */
60
103
  serialize(context) {
61
- const { write } = context;
62
- write(this.urlType);
104
+ context
105
+ .write(this.urlType)
106
+ .write(this.prefetch)
107
+ .write(this.preload)
108
+ .write(this.fetchPriority)
109
+ .write(this.asAttribute)
110
+ .write(this.typeAttribute)
111
+ .write(this.mediaAttribute);
63
112
  super.serialize(context);
64
113
  }
65
114
 
66
115
  /**
116
+ * Restores this instance from the provided deserializer context.
67
117
  * @param {ObjectDeserializerContext} context context
68
118
  */
69
119
  deserialize(context) {
70
- const { read } = context;
71
- this.urlType = read();
72
- super.deserialize(context);
120
+ this.urlType = context.read();
121
+ const c1 = context.rest;
122
+ this.prefetch = c1.read();
123
+ const c2 = c1.rest;
124
+ this.preload = c2.read();
125
+ const c3 = c2.rest;
126
+ this.fetchPriority = c3.read();
127
+ const c4 = c3.rest;
128
+ this.asAttribute = c4.read();
129
+ const c5 = c4.rest;
130
+ this.typeAttribute = c5.read();
131
+ const c6 = c5.rest;
132
+ this.mediaAttribute = c6.read();
133
+ super.deserialize(c6.rest);
73
134
  }
74
135
  }
75
136
 
137
+ // Hoisted out of `cssEscapeString` so the patterns + replacer aren't
138
+ // recompiled/reallocated per `url()` / `src()` reference at code-gen.
139
+ const CSS_ESCAPE_UNQUOTED_REGEXP = /[\n\t ()'"\\]/g;
140
+ const CSS_ESCAPE_DOUBLE_REGEXP = /[\n"\\]/g;
141
+ const CSS_ESCAPE_SINGLE_REGEXP = /[\n'\\]/g;
76
142
  /**
143
+ * @param {string} m matched character
144
+ * @returns {string} the character backslash-escaped
145
+ */
146
+ const cssEscapeReplacer = (m) => `\\${m}`;
147
+
148
+ /**
149
+ * Returns string in quotes if needed.
77
150
  * @param {string} str string
78
151
  * @returns {string} string in quotes if needed
79
152
  */
@@ -100,17 +173,18 @@ const cssEscapeString = (str) => {
100
173
  }
101
174
  }
102
175
  if (countWhiteOrBracket < 2) {
103
- return str.replace(/[\n\t ()'"\\]/g, (m) => `\\${m}`);
176
+ return str.replace(CSS_ESCAPE_UNQUOTED_REGEXP, cssEscapeReplacer);
104
177
  } else if (countQuotation <= countApostrophe) {
105
- return `"${str.replace(/[\n"\\]/g, (m) => `\\${m}`)}"`;
178
+ return `"${str.replace(CSS_ESCAPE_DOUBLE_REGEXP, cssEscapeReplacer)}"`;
106
179
  }
107
- return `'${str.replace(/[\n'\\]/g, (m) => `\\${m}`)}'`;
180
+ return `'${str.replace(CSS_ESCAPE_SINGLE_REGEXP, cssEscapeReplacer)}'`;
108
181
  };
109
182
 
110
183
  CssUrlDependency.Template = class CssUrlDependencyTemplate extends (
111
184
  ModuleDependency.Template
112
185
  ) {
113
186
  /**
187
+ * Applies the plugin by registering its hooks on the compiler.
114
188
  * @param {Dependency} dependency the dependency for which the template should be applied
115
189
  * @param {ReplaceSource} source the current replace source which can be modified
116
190
  * @param {DependencyTemplateContext} templateContext the context object
@@ -163,6 +237,7 @@ CssUrlDependency.Template = class CssUrlDependencyTemplate extends (
163
237
  }
164
238
 
165
239
  /**
240
+ * Returns the url of the asset.
166
241
  * @param {object} options options object
167
242
  * @param {Module} options.module the module
168
243
  * @param {RuntimeSpec=} options.runtime runtime
@@ -177,13 +252,11 @@ CssUrlDependency.Template = class CssUrlDependencyTemplate extends (
177
252
  const data = codeGen.data;
178
253
  if (!data) return "data:,";
179
254
  const url = data.get("url");
180
- if (!url || !url["css-url"]) return "data:,";
181
- return url["css-url"];
255
+ if (!url || !url[ASSET_URL_TYPE]) return "data:,";
256
+ return url[ASSET_URL_TYPE];
182
257
  }
183
258
  };
184
259
 
185
260
  makeSerializable(CssUrlDependency, "webpack/lib/dependencies/CssUrlDependency");
186
261
 
187
- CssUrlDependency.PUBLIC_PATH_AUTO = "__WEBPACK_CSS_PUBLIC_PATH_AUTO__";
188
-
189
262
  module.exports = CssUrlDependency;
@@ -10,6 +10,7 @@ const ModuleDependency = require("./ModuleDependency");
10
10
 
11
11
  class DelegatedSourceDependency extends ModuleDependency {
12
12
  /**
13
+ * Creates an instance of DelegatedSourceDependency.
13
14
  * @param {string} request the request string
14
15
  */
15
16
  constructor(request) {
@@ -8,19 +8,22 @@
8
8
  const Dependency = require("../Dependency");
9
9
  const makeSerializable = require("../util/makeSerializable");
10
10
 
11
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
12
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
13
11
  /** @typedef {import("./EntryDependency")} EntryDependency */
12
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[EntryDependency[], string]>} ObjectDeserializerContext */
13
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[EntryDependency[], string]>} ObjectSerializerContext */
14
14
 
15
15
  class DllEntryDependency extends Dependency {
16
16
  /**
17
+ * Creates an instance of DllEntryDependency.
17
18
  * @param {EntryDependency[]} dependencies dependencies
18
19
  * @param {string} name name
19
20
  */
20
21
  constructor(dependencies, name) {
21
22
  super();
22
23
 
24
+ /** @type {EntryDependency[]} */
23
25
  this.dependencies = dependencies;
26
+ /** @type {string} */
24
27
  this.name = name;
25
28
  }
26
29
 
@@ -29,27 +32,23 @@ class DllEntryDependency extends Dependency {
29
32
  }
30
33
 
31
34
  /**
35
+ * Serializes this instance into the provided serializer context.
32
36
  * @param {ObjectSerializerContext} context context
33
37
  */
34
38
  serialize(context) {
35
- const { write } = context;
36
-
37
- write(this.dependencies);
38
- write(this.name);
39
-
39
+ context.write(this.dependencies).write(this.name);
40
40
  super.serialize(context);
41
41
  }
42
42
 
43
43
  /**
44
+ * Restores this instance from the provided deserializer context.
44
45
  * @param {ObjectDeserializerContext} context context
45
46
  */
46
47
  deserialize(context) {
47
- const { read } = context;
48
-
49
- this.dependencies = read();
50
- this.name = read();
51
-
52
- super.deserialize(context);
48
+ this.dependencies = context.read();
49
+ const c1 = context.rest;
50
+ this.name = c1.read();
51
+ super.deserialize(c1.rest);
53
52
  }
54
53
  }
55
54
 
@@ -12,6 +12,7 @@
12
12
  const parserStateExportsState = new WeakMap();
13
13
 
14
14
  /**
15
+ * Processes the provided parser state.
15
16
  * @param {JavascriptParserState} parserState parser state
16
17
  * @returns {void}
17
18
  */
@@ -26,6 +27,7 @@ module.exports.bailout = (parserState) => {
26
27
  };
27
28
 
28
29
  /**
30
+ * Processes the provided parser state.
29
31
  * @param {JavascriptParserState} parserState parser state
30
32
  * @returns {void}
31
33
  */
@@ -41,6 +43,7 @@ module.exports.enable = (parserState) => {
41
43
  };
42
44
 
43
45
  /**
46
+ * Returns true, when enabled.
44
47
  * @param {JavascriptParserState} parserState parser state
45
48
  * @returns {boolean} true, when enabled
46
49
  */
@@ -50,6 +53,7 @@ module.exports.isEnabled = (parserState) => {
50
53
  };
51
54
 
52
55
  /**
56
+ * Processes the provided parser state.
53
57
  * @param {JavascriptParserState} parserState parser state
54
58
  * @returns {void}
55
59
  */
@@ -61,6 +65,7 @@ module.exports.setDynamic = (parserState) => {
61
65
  };
62
66
 
63
67
  /**
68
+ * Processes the provided parser state.
64
69
  * @param {JavascriptParserState} parserState parser state
65
70
  * @returns {void}
66
71
  */
@@ -10,6 +10,7 @@ const ModuleDependency = require("./ModuleDependency");
10
10
 
11
11
  class EntryDependency extends ModuleDependency {
12
12
  /**
13
+ * Creates an instance of EntryDependency.
13
14
  * @param {string} request request path for entry
14
15
  */
15
16
  constructor(request) {