@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
@@ -115,7 +115,7 @@
115
115
  "type": "boolean"
116
116
  },
117
117
  "filename": {
118
- "$ref": "#/definitions/FilenameTemplate"
118
+ "$ref": "#/definitions/AssetModuleFilename"
119
119
  },
120
120
  "outputPath": {
121
121
  "$ref": "#/definitions/AssetModuleOutputPath"
@@ -144,11 +144,12 @@
144
144
  "anyOf": [
145
145
  {
146
146
  "type": "string",
147
- "absolutePath": false
147
+ "absolutePath": false,
148
+ "minLength": 1
148
149
  },
149
150
  {
150
151
  "instanceof": "Function",
151
- "tsType": "import(\"../lib/TemplatedPathPlugin\").TemplatePathFn"
152
+ "tsType": "import(\"../lib/TemplatedPathPlugin\").TemplatePathFn<import(\"../lib/Compilation\").PathDataModule>"
152
153
  }
153
154
  ]
154
155
  },
@@ -161,7 +162,7 @@
161
162
  },
162
163
  {
163
164
  "instanceof": "Function",
164
- "tsType": "import(\"../lib/TemplatedPathPlugin\").TemplatePathFn"
165
+ "tsType": "import(\"../lib/TemplatedPathPlugin\").TemplatePathFn<import(\"../lib/Compilation\").PathDataModule>"
165
166
  }
166
167
  ]
167
168
  },
@@ -213,7 +214,7 @@
213
214
  "type": "boolean"
214
215
  },
215
216
  "filename": {
216
- "$ref": "#/definitions/FilenameTemplate"
217
+ "$ref": "#/definitions/AssetModuleFilename"
217
218
  },
218
219
  "outputPath": {
219
220
  "$ref": "#/definitions/AssetModuleOutputPath"
@@ -362,6 +363,18 @@
362
363
  "description": "Check if to be emitted file already exists and have the same content before writing to output filesystem.",
363
364
  "type": "boolean"
364
365
  },
366
+ "ConcatenateModulesOptions": {
367
+ "description": "Advanced options for module concatenation.",
368
+ "type": "object",
369
+ "additionalProperties": false,
370
+ "properties": {
371
+ "commonjs": {
372
+ "description": "Also concatenate CommonJS modules with statically analyzable exports. Defaults to 'true'.",
373
+ "type": "boolean"
374
+ }
375
+ },
376
+ "added": "5.109.0"
377
+ },
365
378
  "Context": {
366
379
  "description": "The base directory (absolute path!) for resolving the `entry` option. If `output.pathinfo` is set, the included pathinfo is shortened to this directory.",
367
380
  "type": "string",
@@ -371,6 +384,61 @@
371
384
  "description": "This option enables cross-origin loading of chunks.",
372
385
  "enum": [false, "anonymous", "use-credentials"]
373
386
  },
387
+ "CssAutoOrModuleParserOptions": {
388
+ "description": "Parser options for css/auto and css/module modules.",
389
+ "type": "object",
390
+ "additionalProperties": false,
391
+ "properties": {
392
+ "animation": {
393
+ "$ref": "#/definitions/CssParserAnimation"
394
+ },
395
+ "as": {
396
+ "$ref": "#/definitions/CssParserAs"
397
+ },
398
+ "container": {
399
+ "$ref": "#/definitions/CssParserContainer"
400
+ },
401
+ "customIdents": {
402
+ "$ref": "#/definitions/CssParserCustomIdents"
403
+ },
404
+ "customMedia": {
405
+ "$ref": "#/definitions/CssParserCustomMedia"
406
+ },
407
+ "customSelectors": {
408
+ "$ref": "#/definitions/CssParserCustomSelectors"
409
+ },
410
+ "dashedIdents": {
411
+ "$ref": "#/definitions/CssParserDashedIdents"
412
+ },
413
+ "exportType": {
414
+ "$ref": "#/definitions/CssParserExportType"
415
+ },
416
+ "fontPreload": {
417
+ "$ref": "#/definitions/CssParserFontPreload"
418
+ },
419
+ "function": {
420
+ "$ref": "#/definitions/CssParserFunction"
421
+ },
422
+ "grid": {
423
+ "$ref": "#/definitions/CssParserGrid"
424
+ },
425
+ "import": {
426
+ "$ref": "#/definitions/CssParserImport"
427
+ },
428
+ "namedExports": {
429
+ "$ref": "#/definitions/CssParserNamedExports"
430
+ },
431
+ "pure": {
432
+ "$ref": "#/definitions/CssParserPure"
433
+ },
434
+ "url": {
435
+ "$ref": "#/definitions/CssParserUrl"
436
+ },
437
+ "urlHints": {
438
+ "$ref": "#/definitions/UrlHints"
439
+ }
440
+ }
441
+ },
374
442
  "CssChunkFilename": {
375
443
  "description": "Specifies the filename template of non-initial output css files on disk. You must **not** specify an absolute path here, but the path may contain folders separated by '/'! The specified path is joined with the value of the 'output.path' option to determine the location on disk.",
376
444
  "oneOf": [
@@ -421,7 +489,7 @@
421
489
  },
422
490
  {
423
491
  "instanceof": "Function",
424
- "tsType": "import(\"../lib/TemplatedPathPlugin\").TemplatePathFn"
492
+ "tsType": "import(\"../lib/TemplatedPathPlugin\").TemplatePathFn<import(\"../lib/Compilation\").PathDataModule>"
425
493
  }
426
494
  ]
427
495
  },
@@ -473,25 +541,37 @@
473
541
  }
474
542
  },
475
543
  "CssModuleParserOptions": {
476
- "description": "Parser options for css/module modules.",
544
+ "description": "Parser options for css/global modules.",
477
545
  "type": "object",
478
546
  "additionalProperties": false,
479
547
  "properties": {
480
548
  "animation": {
481
549
  "$ref": "#/definitions/CssParserAnimation"
482
550
  },
551
+ "as": {
552
+ "$ref": "#/definitions/CssParserAs"
553
+ },
483
554
  "container": {
484
555
  "$ref": "#/definitions/CssParserContainer"
485
556
  },
486
557
  "customIdents": {
487
558
  "$ref": "#/definitions/CssParserCustomIdents"
488
559
  },
560
+ "customMedia": {
561
+ "$ref": "#/definitions/CssParserCustomMedia"
562
+ },
563
+ "customSelectors": {
564
+ "$ref": "#/definitions/CssParserCustomSelectors"
565
+ },
489
566
  "dashedIdents": {
490
567
  "$ref": "#/definitions/CssParserDashedIdents"
491
568
  },
492
569
  "exportType": {
493
570
  "$ref": "#/definitions/CssParserExportType"
494
571
  },
572
+ "fontPreload": {
573
+ "$ref": "#/definitions/CssParserFontPreload"
574
+ },
495
575
  "function": {
496
576
  "$ref": "#/definitions/CssParserFunction"
497
577
  },
@@ -506,6 +586,9 @@
506
586
  },
507
587
  "url": {
508
588
  "$ref": "#/definitions/CssParserUrl"
589
+ },
590
+ "urlHints": {
591
+ "$ref": "#/definitions/UrlHints"
509
592
  }
510
593
  }
511
594
  },
@@ -513,6 +596,10 @@
513
596
  "description": "Enable/disable renaming of `@keyframes`.",
514
597
  "type": "boolean"
515
598
  },
599
+ "CssParserAs": {
600
+ "description": "Configure how the CSS source is parsed: as a full stylesheet (default) or as a block's contents (e.g. the content of an HTML `style` attribute).",
601
+ "enum": ["stylesheet", "block-contents"]
602
+ },
516
603
  "CssParserContainer": {
517
604
  "description": "Enable/disable renaming of `@container` names.",
518
605
  "type": "boolean"
@@ -521,6 +608,16 @@
521
608
  "description": "Enable/disable renaming of custom identifiers.",
522
609
  "type": "boolean"
523
610
  },
611
+ "CssParserCustomMedia": {
612
+ "description": "Enable/disable resolution of `@custom-media` at-rules (file-local build-time substitution).",
613
+ "type": "boolean",
614
+ "added": "5.109.0"
615
+ },
616
+ "CssParserCustomSelectors": {
617
+ "description": "Enable/disable resolution of `@custom-selector` at-rules (file-local build-time expansion to `:is(...)`).",
618
+ "type": "boolean",
619
+ "added": "5.109.0"
620
+ },
524
621
  "CssParserDashedIdents": {
525
622
  "description": "Enable/disable renaming of dashed identifiers, e. g. custom properties.",
526
623
  "type": "boolean"
@@ -529,6 +626,11 @@
529
626
  "description": "Configure how CSS content is exported as default.",
530
627
  "enum": ["link", "text", "css-style-sheet", "style"]
531
628
  },
629
+ "CssParserFontPreload": {
630
+ "description": "Auto-emit `<link rel=\"preload\" as=\"font\">` for the primary `src` URL of each `@font-face` reachable from an HTML entry's initial CSS. Only the first URL per `@font-face` is preloaded (preloading every format would double-download). Off by default; `parser.css.urlHints` rules and per-URL magic comments still override the seeded defaults. Set `output.crossOriginLoading` so the preload matches the font's CORS fetch.",
631
+ "type": "boolean",
632
+ "added": "5.109.0"
633
+ },
532
634
  "CssParserFunction": {
533
635
  "description": "Enable/disable renaming of `@function` names.",
534
636
  "type": "boolean"
@@ -550,9 +652,21 @@
550
652
  "type": "object",
551
653
  "additionalProperties": false,
552
654
  "properties": {
655
+ "as": {
656
+ "$ref": "#/definitions/CssParserAs"
657
+ },
658
+ "customMedia": {
659
+ "$ref": "#/definitions/CssParserCustomMedia"
660
+ },
661
+ "customSelectors": {
662
+ "$ref": "#/definitions/CssParserCustomSelectors"
663
+ },
553
664
  "exportType": {
554
665
  "$ref": "#/definitions/CssParserExportType"
555
666
  },
667
+ "fontPreload": {
668
+ "$ref": "#/definitions/CssParserFontPreload"
669
+ },
556
670
  "import": {
557
671
  "$ref": "#/definitions/CssParserImport"
558
672
  },
@@ -561,9 +675,16 @@
561
675
  },
562
676
  "url": {
563
677
  "$ref": "#/definitions/CssParserUrl"
678
+ },
679
+ "urlHints": {
680
+ "$ref": "#/definitions/UrlHints"
564
681
  }
565
682
  }
566
683
  },
684
+ "CssParserPure": {
685
+ "description": "Enable strict pure mode: every selector must contain at least one local class or id selector.",
686
+ "type": "boolean"
687
+ },
567
688
  "CssParserUrl": {
568
689
  "description": "Enable/disable `url()`/`image-set()`/`src()`/`image()` functions handling.",
569
690
  "type": "boolean"
@@ -787,6 +908,10 @@
787
908
  "filename": {
788
909
  "$ref": "#/definitions/EntryFilename"
789
910
  },
911
+ "html": {
912
+ "description": "Generate an HTML file for this entrypoint with its JS and CSS output chunks injected. Overrides `output.html` for this entry.",
913
+ "type": "boolean"
914
+ },
790
915
  "import": {
791
916
  "$ref": "#/definitions/EntryItem"
792
917
  },
@@ -804,6 +929,10 @@
804
929
  },
805
930
  "wasmLoading": {
806
931
  "$ref": "#/definitions/WasmLoading"
932
+ },
933
+ "worker": {
934
+ "description": "Mark this entry as a worker so its output file uses 'output.workerChunkFilename'.",
935
+ "type": "boolean"
807
936
  }
808
937
  },
809
938
  "required": ["import"]
@@ -838,6 +967,10 @@
838
967
  "filename": {
839
968
  "$ref": "#/definitions/Filename"
840
969
  },
970
+ "html": {
971
+ "description": "Generate an HTML file for this entrypoint with its JS and CSS output chunks injected. Overrides `output.html` for this entry.",
972
+ "type": "boolean"
973
+ },
841
974
  "import": {
842
975
  "description": "Module(s) that are loaded upon startup. The last one is exported.",
843
976
  "type": "array",
@@ -863,6 +996,10 @@
863
996
  },
864
997
  "wasmLoading": {
865
998
  "$ref": "#/definitions/WasmLoading"
999
+ },
1000
+ "worker": {
1001
+ "description": "Mark this entry as a worker so its output file uses 'output.workerChunkFilename'.",
1002
+ "type": "boolean"
866
1003
  }
867
1004
  }
868
1005
  },
@@ -1015,14 +1152,31 @@
1015
1152
  "description": "The environment supports 'for of' iteration ('for (const x of array) { ... }').",
1016
1153
  "type": "boolean"
1017
1154
  },
1155
+ "generator": {
1156
+ "description": "The environment supports generator functions and yield ('function* () { yield ... }').",
1157
+ "type": "boolean",
1158
+ "added": "5.109.0"
1159
+ },
1018
1160
  "globalThis": {
1019
1161
  "description": "The environment supports 'globalThis'.",
1020
1162
  "type": "boolean"
1021
1163
  },
1164
+ "hasOwn": {
1165
+ "description": "The environment supports 'Object.hasOwn'.",
1166
+ "type": "boolean"
1167
+ },
1022
1168
  "importMetaDirnameAndFilename": {
1023
1169
  "description": "The environment supports `import.meta.dirname` and `import.meta.filename`.",
1024
1170
  "type": "boolean"
1025
1171
  },
1172
+ "let": {
1173
+ "description": "The environment supports let for variable declarations.",
1174
+ "type": "boolean"
1175
+ },
1176
+ "logicalAssignment": {
1177
+ "description": "The environment supports logical assignment operators ('a ||= b', 'a &&= b', 'a ??= b').",
1178
+ "type": "boolean"
1179
+ },
1026
1180
  "methodShorthand": {
1027
1181
  "description": "The environment supports object method shorthand ('{ module() {} }').",
1028
1182
  "type": "boolean"
@@ -1031,6 +1185,15 @@
1031
1185
  "description": "The environment supports EcmaScript Module syntax to import EcmaScript modules (import ... from '...').",
1032
1186
  "type": "boolean"
1033
1187
  },
1188
+ "modulePreload": {
1189
+ "description": "The environment supports `<link rel=\"modulepreload\">` to preload EcmaScript modules.",
1190
+ "type": "boolean",
1191
+ "added": "5.109.0"
1192
+ },
1193
+ "nodeBuiltinModuleGetter": {
1194
+ "description": "The environment supports `process.getBuiltinModule()` to synchronously load Node.js core modules.",
1195
+ "type": "boolean"
1196
+ },
1034
1197
  "nodePrefixForCoreModules": {
1035
1198
  "description": "The environment supports `node:` prefix for Node.js core modules.",
1036
1199
  "type": "boolean"
@@ -1039,6 +1202,14 @@
1039
1202
  "description": "The environment supports optional chaining ('obj?.a' or 'obj?.()').",
1040
1203
  "type": "boolean"
1041
1204
  },
1205
+ "spread": {
1206
+ "description": "The environment supports spread and rest in array/object literals and calls ('{ ...obj }', 'fn(...args)').",
1207
+ "type": "boolean"
1208
+ },
1209
+ "symbol": {
1210
+ "description": "The environment supports 'Symbol' (and well-known symbols like 'Symbol.toStringTag').",
1211
+ "type": "boolean"
1212
+ },
1042
1213
  "templateLiteral": {
1043
1214
  "description": "The environment supports template literals.",
1044
1215
  "type": "boolean"
@@ -1048,16 +1219,28 @@
1048
1219
  "Experiments": {
1049
1220
  "description": "Enables/Disables experiments (experimental features with relax SemVer compatibility).",
1050
1221
  "type": "object",
1051
- "implements": ["#/definitions/ExperimentsCommon"],
1052
1222
  "additionalProperties": true,
1053
1223
  "properties": {
1054
1224
  "asyncWebAssembly": {
1055
- "description": "Support WebAssembly as asynchronous EcmaScript Module.",
1056
- "type": "boolean"
1225
+ "description": "Support WebAssembly as asynchronous EcmaScript Module. `\"auto\"` (the default) enables it unless a loader is registered for WebAssembly files.",
1226
+ "anyOf": [
1227
+ {
1228
+ "description": "Enable the built-in async WebAssembly support only when no loader is registered for WebAssembly files.",
1229
+ "enum": ["auto"]
1230
+ },
1231
+ {
1232
+ "description": "Enable/disable the built-in async WebAssembly support.",
1233
+ "type": "boolean"
1234
+ }
1235
+ ],
1236
+ "experimental": true,
1237
+ "added": "5.0.0"
1057
1238
  },
1058
1239
  "backCompat": {
1059
1240
  "description": "Enable backward-compat layer with deprecation warnings for many webpack 4 APIs.",
1060
- "type": "boolean"
1241
+ "type": "boolean",
1242
+ "experimental": true,
1243
+ "added": "5.62.0"
1061
1244
  },
1062
1245
  "buildHttp": {
1063
1246
  "description": "Build http(s): urls using a lockfile and resource content cache.",
@@ -1068,23 +1251,57 @@
1068
1251
  {
1069
1252
  "$ref": "#/definitions/HttpUriOptions"
1070
1253
  }
1071
- ]
1254
+ ],
1255
+ "experimental": true,
1256
+ "added": "5.49.0"
1072
1257
  },
1073
1258
  "cacheUnaffected": {
1074
1259
  "description": "Enable additional in memory caching of modules that are unchanged and reference only unchanged modules.",
1075
- "type": "boolean"
1260
+ "type": "boolean",
1261
+ "experimental": true,
1262
+ "added": "5.54.0"
1076
1263
  },
1077
1264
  "css": {
1078
- "description": "Enable css support.",
1079
- "type": "boolean"
1265
+ "description": "Enable css support. `\"auto\"` (the default) enables the built-in CSS support unless a loader is registered for CSS files.",
1266
+ "anyOf": [
1267
+ {
1268
+ "description": "Enable the built-in CSS support only when no loader is registered for CSS files.",
1269
+ "enum": ["auto"]
1270
+ },
1271
+ {
1272
+ "description": "Enable/disable the built-in CSS support.",
1273
+ "type": "boolean"
1274
+ }
1275
+ ],
1276
+ "experimental": true,
1277
+ "added": "5.66.0"
1080
1278
  },
1081
1279
  "deferImport": {
1082
1280
  "description": "Enable experimental tc39 proposal https://github.com/tc39/proposal-defer-import-eval. This allows to defer execution of a module until it's first use.",
1083
- "type": "boolean"
1281
+ "type": "boolean",
1282
+ "experimental": true,
1283
+ "added": "5.100.0"
1084
1284
  },
1085
1285
  "futureDefaults": {
1086
1286
  "description": "Apply defaults of next major version.",
1087
- "type": "boolean"
1287
+ "type": "boolean",
1288
+ "experimental": true,
1289
+ "added": "5.53.0"
1290
+ },
1291
+ "html": {
1292
+ "description": "Enable HTML entry support. Treats `.html` files as a first-class module type so they can be used directly as entry points. `\"auto\"` (the default) enables it unless a loader is registered for HTML files.",
1293
+ "anyOf": [
1294
+ {
1295
+ "description": "Enable the built-in HTML support only when no loader is registered for HTML files.",
1296
+ "enum": ["auto"]
1297
+ },
1298
+ {
1299
+ "description": "Enable/disable the built-in HTML support.",
1300
+ "type": "boolean"
1301
+ }
1302
+ ],
1303
+ "experimental": true,
1304
+ "added": "5.107.0"
1088
1305
  },
1089
1306
  "lazyCompilation": {
1090
1307
  "description": "Compile entrypoints and import()s only when they are accessed.",
@@ -1095,66 +1312,70 @@
1095
1312
  {
1096
1313
  "$ref": "#/definitions/LazyCompilationOptions"
1097
1314
  }
1098
- ]
1315
+ ],
1316
+ "experimental": true,
1317
+ "added": "5.17.0"
1099
1318
  },
1100
1319
  "outputModule": {
1101
1320
  "description": "Allow output javascript files as module source type.",
1102
- "type": "boolean"
1321
+ "type": "boolean",
1322
+ "experimental": true,
1323
+ "added": "5.0.0"
1103
1324
  },
1104
1325
  "sourceImport": {
1105
1326
  "description": "Enable experimental tc39 proposal https://github.com/tc39/proposal-source-phase-imports. This allows importing modules at source phase.",
1106
- "type": "boolean"
1327
+ "type": "boolean",
1328
+ "experimental": true,
1329
+ "added": "5.106.0"
1107
1330
  },
1108
1331
  "syncWebAssembly": {
1109
1332
  "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).",
1110
- "type": "boolean"
1111
- }
1112
- }
1113
- },
1114
- "ExperimentsCommon": {
1115
- "description": "Enables/Disables experiments (experimental features with relax SemVer compatibility).",
1116
- "type": "object",
1117
- "additionalProperties": false,
1118
- "properties": {
1119
- "asyncWebAssembly": {
1120
- "description": "Support WebAssembly as asynchronous EcmaScript Module.",
1121
- "type": "boolean"
1122
- },
1123
- "backCompat": {
1124
- "description": "Enable backward-compat layer with deprecation warnings for many webpack 4 APIs.",
1125
- "type": "boolean"
1126
- },
1127
- "cacheUnaffected": {
1128
- "description": "Enable additional in memory caching of modules that are unchanged and reference only unchanged modules.",
1129
- "type": "boolean"
1130
- },
1131
- "futureDefaults": {
1132
- "description": "Apply defaults of next major version.",
1133
- "type": "boolean"
1134
- },
1135
- "outputModule": {
1136
- "description": "Allow output javascript files as module source type.",
1137
- "type": "boolean"
1333
+ "type": "boolean",
1334
+ "experimental": true,
1335
+ "added": "5.0.0"
1138
1336
  },
1139
- "syncWebAssembly": {
1140
- "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).",
1141
- "type": "boolean"
1337
+ "typescript": {
1338
+ "description": "Enable typescript support. `\"auto\"` (the default) enables the built-in TypeScript support when Node.js supports it (>= 22.6) and no loader is registered for TypeScript files.",
1339
+ "anyOf": [
1340
+ {
1341
+ "description": "Enable the built-in TypeScript support only when Node.js supports it (>= 22.6) and no loader is registered for TypeScript files.",
1342
+ "enum": ["auto"]
1343
+ },
1344
+ {
1345
+ "description": "Enable/disable the built-in TypeScript support.",
1346
+ "type": "boolean"
1347
+ }
1348
+ ],
1349
+ "experimental": true,
1350
+ "added": "5.107.0"
1142
1351
  }
1143
1352
  }
1144
1353
  },
1145
1354
  "ExperimentsNormalized": {
1146
1355
  "description": "Enables/Disables experiments (experimental features with relax SemVer compatibility).",
1147
1356
  "type": "object",
1148
- "implements": ["#/definitions/ExperimentsCommon"],
1149
1357
  "additionalProperties": false,
1150
1358
  "properties": {
1151
1359
  "asyncWebAssembly": {
1152
- "description": "Support WebAssembly as asynchronous EcmaScript Module.",
1153
- "type": "boolean"
1360
+ "description": "Support WebAssembly as asynchronous EcmaScript Module. `\"auto\"` (the default) enables it unless a loader is registered for WebAssembly files.",
1361
+ "anyOf": [
1362
+ {
1363
+ "description": "Enable the built-in async WebAssembly support only when no loader is registered for WebAssembly files.",
1364
+ "enum": ["auto"]
1365
+ },
1366
+ {
1367
+ "description": "Enable/disable the built-in async WebAssembly support.",
1368
+ "type": "boolean"
1369
+ }
1370
+ ],
1371
+ "experimental": true,
1372
+ "added": "5.0.0"
1154
1373
  },
1155
1374
  "backCompat": {
1156
1375
  "description": "Enable backward-compat layer with deprecation warnings for many webpack 4 APIs.",
1157
- "type": "boolean"
1376
+ "type": "boolean",
1377
+ "experimental": true,
1378
+ "added": "5.62.0"
1158
1379
  },
1159
1380
  "buildHttp": {
1160
1381
  "description": "Build http(s): urls using a lockfile and resource content cache.",
@@ -1162,23 +1383,57 @@
1162
1383
  {
1163
1384
  "$ref": "#/definitions/HttpUriOptions"
1164
1385
  }
1165
- ]
1386
+ ],
1387
+ "experimental": true,
1388
+ "added": "5.49.0"
1166
1389
  },
1167
1390
  "cacheUnaffected": {
1168
1391
  "description": "Enable additional in memory caching of modules that are unchanged and reference only unchanged modules.",
1169
- "type": "boolean"
1392
+ "type": "boolean",
1393
+ "experimental": true,
1394
+ "added": "5.54.0"
1170
1395
  },
1171
1396
  "css": {
1172
- "description": "Enable css support.",
1173
- "type": "boolean"
1397
+ "description": "Enable css support. `\"auto\"` (the default) enables the built-in CSS support unless a loader is registered for CSS files.",
1398
+ "anyOf": [
1399
+ {
1400
+ "description": "Enable the built-in CSS support only when no loader is registered for CSS files.",
1401
+ "enum": ["auto"]
1402
+ },
1403
+ {
1404
+ "description": "Enable/disable the built-in CSS support.",
1405
+ "type": "boolean"
1406
+ }
1407
+ ],
1408
+ "experimental": true,
1409
+ "added": "5.66.0"
1174
1410
  },
1175
1411
  "deferImport": {
1176
1412
  "description": "Enable experimental tc39 proposal https://github.com/tc39/proposal-defer-import-eval. This allows to defer execution of a module until it's first use.",
1177
- "type": "boolean"
1413
+ "type": "boolean",
1414
+ "experimental": true,
1415
+ "added": "5.100.0"
1178
1416
  },
1179
1417
  "futureDefaults": {
1180
1418
  "description": "Apply defaults of next major version.",
1181
- "type": "boolean"
1419
+ "type": "boolean",
1420
+ "experimental": true,
1421
+ "added": "5.53.0"
1422
+ },
1423
+ "html": {
1424
+ "description": "Enable HTML entry support. Treats `.html` files as a first-class module type so they can be used directly as entry points. `\"auto\"` (the default) enables it unless a loader is registered for HTML files.",
1425
+ "anyOf": [
1426
+ {
1427
+ "description": "Enable the built-in HTML support only when no loader is registered for HTML files.",
1428
+ "enum": ["auto"]
1429
+ },
1430
+ {
1431
+ "description": "Enable/disable the built-in HTML support.",
1432
+ "type": "boolean"
1433
+ }
1434
+ ],
1435
+ "experimental": true,
1436
+ "added": "5.107.0"
1182
1437
  },
1183
1438
  "lazyCompilation": {
1184
1439
  "description": "Compile entrypoints and import()s only when they are accessed.",
@@ -1189,19 +1444,42 @@
1189
1444
  {
1190
1445
  "$ref": "#/definitions/LazyCompilationOptions"
1191
1446
  }
1192
- ]
1447
+ ],
1448
+ "experimental": true,
1449
+ "added": "5.17.0"
1193
1450
  },
1194
1451
  "outputModule": {
1195
1452
  "description": "Allow output javascript files as module source type.",
1196
- "type": "boolean"
1453
+ "type": "boolean",
1454
+ "experimental": true,
1455
+ "added": "5.0.0"
1197
1456
  },
1198
1457
  "sourceImport": {
1199
1458
  "description": "Enable experimental tc39 proposal https://github.com/tc39/proposal-source-phase-imports. This allows importing modules at source phase.",
1200
- "type": "boolean"
1459
+ "type": "boolean",
1460
+ "experimental": true,
1461
+ "added": "5.106.0"
1201
1462
  },
1202
1463
  "syncWebAssembly": {
1203
1464
  "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).",
1204
- "type": "boolean"
1465
+ "type": "boolean",
1466
+ "experimental": true,
1467
+ "added": "5.0.0"
1468
+ },
1469
+ "typescript": {
1470
+ "description": "Enable typescript support. `\"auto\"` (the default) enables the built-in TypeScript support when Node.js supports it (>= 22.6) and no loader is registered for TypeScript files.",
1471
+ "anyOf": [
1472
+ {
1473
+ "description": "Enable the built-in TypeScript support only when Node.js supports it (>= 22.6) and no loader is registered for TypeScript files.",
1474
+ "enum": ["auto"]
1475
+ },
1476
+ {
1477
+ "description": "Enable/disable the built-in TypeScript support.",
1478
+ "type": "boolean"
1479
+ }
1480
+ ],
1481
+ "experimental": true,
1482
+ "added": "5.107.0"
1205
1483
  }
1206
1484
  }
1207
1485
  },
@@ -1285,6 +1563,11 @@
1285
1563
  "instanceof": "Function",
1286
1564
  "tsType": "import(\"../lib/ExternalModuleFactoryPlugin\").ExternalItemFunctionPromise"
1287
1565
  },
1566
+ "ExternalItemInterop": {
1567
+ "description": "How an external's exports interoperate with ES module imports, independent of the importing module's strictness (similar to Rollup's `output.interop`). 'default': treat as CommonJS, the default import is the whole exports (Node.js semantics). 'esModule': treat as an ES module namespace, the default import is unboxed to `.default`.",
1568
+ "enum": ["default", "esModule"],
1569
+ "added": "5.109.0"
1570
+ },
1288
1571
  "ExternalItemValue": {
1289
1572
  "description": "The dependency used for the external.",
1290
1573
  "anyOf": [
@@ -1305,7 +1588,30 @@
1305
1588
  "type": "string"
1306
1589
  },
1307
1590
  {
1308
- "type": "object"
1591
+ "description": "The target of the external with a type, optionally with an 'interop' hint describing how its exports interoperate with ES module imports.",
1592
+ "type": "object",
1593
+ "additionalProperties": {
1594
+ "description": "The target of the external for a specific external type.",
1595
+ "anyOf": [
1596
+ {
1597
+ "type": "array",
1598
+ "items": {
1599
+ "description": "A part of the target of the external.",
1600
+ "type": "string",
1601
+ "minLength": 1
1602
+ }
1603
+ },
1604
+ {
1605
+ "description": "The target of the external.",
1606
+ "type": "string"
1607
+ }
1608
+ ]
1609
+ },
1610
+ "properties": {
1611
+ "interop": {
1612
+ "$ref": "#/definitions/ExternalItemInterop"
1613
+ }
1614
+ }
1309
1615
  }
1310
1616
  ]
1311
1617
  },
@@ -1328,6 +1634,14 @@
1328
1634
  "type": "object",
1329
1635
  "additionalProperties": false,
1330
1636
  "properties": {
1637
+ "bun": {
1638
+ "description": "Treat bun built-in modules like 'bun', 'bun:sqlite' or 'bun:ffi' and node.js built-in modules as external and load them via import when used (for the Bun runtime).",
1639
+ "type": "boolean"
1640
+ },
1641
+ "deno": {
1642
+ "description": "Treat node.js built-in modules like fs, path or vm as external and load them via the required 'node:' specifier when used (for the Deno runtime).",
1643
+ "type": "boolean"
1644
+ },
1331
1645
  "electron": {
1332
1646
  "description": "Treat common electron built-in modules in main and preload context like 'electron', 'ipc' or 'shell' as external and load them via require() when used.",
1333
1647
  "type": "boolean"
@@ -1378,6 +1692,7 @@
1378
1692
  "commonjs-static",
1379
1693
  "amd",
1380
1694
  "amd-require",
1695
+ "amd-async",
1381
1696
  "umd",
1382
1697
  "umd2",
1383
1698
  "jsonp",
@@ -1388,6 +1703,7 @@
1388
1703
  "script",
1389
1704
  "node-commonjs",
1390
1705
  "asset",
1706
+ "asset-url",
1391
1707
  "css-import",
1392
1708
  "css-url"
1393
1709
  ]
@@ -1435,7 +1751,7 @@
1435
1751
  },
1436
1752
  "compression": {
1437
1753
  "description": "Compression type used for the cache files.",
1438
- "enum": [false, "gzip", "brotli"]
1754
+ "enum": [false, "gzip", "brotli", "zstd"]
1439
1755
  },
1440
1756
  "hashAlgorithm": {
1441
1757
  "description": "Algorithm used for generation the hash (see node.js crypto package).",
@@ -1553,7 +1869,7 @@
1553
1869
  },
1554
1870
  {
1555
1871
  "instanceof": "Function",
1556
- "tsType": "import(\"../lib/TemplatedPathPlugin\").TemplatePathFn"
1872
+ "tsType": "import(\"../lib/TemplatedPathPlugin\").TemplatePathFn<import(\"../lib/Compilation\").PathDataChunk>"
1557
1873
  }
1558
1874
  ]
1559
1875
  },
@@ -1638,6 +1954,9 @@
1638
1954
  "css/module": {
1639
1955
  "$ref": "#/definitions/CssModuleGeneratorOptions"
1640
1956
  },
1957
+ "html": {
1958
+ "$ref": "#/definitions/HtmlGeneratorOptions"
1959
+ },
1641
1960
  "javascript": {
1642
1961
  "$ref": "#/definitions/EmptyGeneratorOptions"
1643
1962
  },
@@ -1701,6 +2020,244 @@
1701
2020
  "type": "string",
1702
2021
  "absolutePath": false
1703
2022
  },
2023
+ "HtmlChunkFilename": {
2024
+ "description": "Specifies the filename template of non-initial output html files on disk. You must **not** specify an absolute path here, but the path may contain folders separated by '/'! The specified path is joined with the value of the 'output.path' option to determine the location on disk.",
2025
+ "oneOf": [
2026
+ {
2027
+ "$ref": "#/definitions/FilenameTemplate"
2028
+ }
2029
+ ]
2030
+ },
2031
+ "HtmlFaviconIcon": {
2032
+ "description": "A single favicon `<link>`: either a path string (used as the icon `href`) or an object with the icon `href` plus extra link attributes (`sizes`, `media`, `color`, `type`, `crossorigin`).",
2033
+ "anyOf": [
2034
+ {
2035
+ "type": "string",
2036
+ "minLength": 1
2037
+ },
2038
+ {
2039
+ "type": "object",
2040
+ "additionalProperties": false,
2041
+ "properties": {
2042
+ "color": {
2043
+ "description": "Value for the `color` attribute (used by `rel=\"mask-icon\"`).",
2044
+ "type": "string",
2045
+ "minLength": 1
2046
+ },
2047
+ "crossorigin": {
2048
+ "description": "Value for the `crossorigin` attribute.",
2049
+ "enum": ["anonymous", "use-credentials"]
2050
+ },
2051
+ "href": {
2052
+ "description": "Path to the icon file, emitted as a hashed asset.",
2053
+ "type": "string",
2054
+ "minLength": 1
2055
+ },
2056
+ "media": {
2057
+ "description": "Value for the `media` attribute (e.g. `\"(prefers-color-scheme: dark)\"`).",
2058
+ "type": "string",
2059
+ "minLength": 1
2060
+ },
2061
+ "sizes": {
2062
+ "description": "Value for the `sizes` attribute (e.g. `\"180x180\"` or `\"any\"`).",
2063
+ "type": "string",
2064
+ "minLength": 1
2065
+ },
2066
+ "type": {
2067
+ "description": "Value for the `type` attribute; inferred from the file extension when omitted.",
2068
+ "type": "string",
2069
+ "minLength": 1
2070
+ }
2071
+ },
2072
+ "required": ["href"]
2073
+ }
2074
+ ]
2075
+ },
2076
+ "HtmlFilename": {
2077
+ "description": "Specifies the filename template of output html files on disk. You must **not** specify an absolute path here, but the path may contain folders separated by '/'! The specified path is joined with the value of the 'output.path' option to determine the location on disk.",
2078
+ "oneOf": [
2079
+ {
2080
+ "$ref": "#/definitions/FilenameTemplate"
2081
+ }
2082
+ ]
2083
+ },
2084
+ "HtmlGeneratorOptions": {
2085
+ "description": "Generator options for html modules.",
2086
+ "type": "object",
2087
+ "additionalProperties": false,
2088
+ "properties": {
2089
+ "extract": {
2090
+ "description": "Emit the parsed and URL-rewritten HTML as a standalone `.html` output file alongside the module's JavaScript export. `true` always emits the file; `false` never does; `\"inline\"` exposes the processed HTML for inline write-back (e.g. `<iframe srcdoc>`) without emitting a standalone file. When unset, extraction defaults to `true` for HTML modules used as compilation entries (HTML entry points) and `false` for HTML modules imported from JavaScript. Filenames follow `output.htmlFilename` / `output.htmlChunkFilename`.",
2091
+ "anyOf": [
2092
+ {
2093
+ "enum": ["inline"]
2094
+ },
2095
+ {
2096
+ "type": "boolean"
2097
+ }
2098
+ ]
2099
+ }
2100
+ }
2101
+ },
2102
+ "HtmlParserAs": {
2103
+ "description": "Configure how the HTML source is parsed: `\"document\"` (the default) parses a full page; any other value is the tag name of the context element to parse the source as that element's inner HTML (a fragment) — e.g. `\"template\"` for a neutral fragment, or `\"tbody\"` so context-sensitive tags like a bare `<tr>`/`<td>` are kept instead of dropped.",
2104
+ "anyOf": [
2105
+ {
2106
+ "enum": ["document"]
2107
+ },
2108
+ {
2109
+ "type": "string"
2110
+ }
2111
+ ],
2112
+ "added": "5.109.0"
2113
+ },
2114
+ "HtmlParserOptions": {
2115
+ "description": "Parser options for html modules.",
2116
+ "type": "object",
2117
+ "additionalProperties": false,
2118
+ "properties": {
2119
+ "as": {
2120
+ "$ref": "#/definitions/HtmlParserAs"
2121
+ },
2122
+ "sources": {
2123
+ "description": "Configure extraction of URL-like attribute values (e.g. `<img src>`, `<link href>`, `<script src>`) as webpack dependencies. `true` (default) uses the built-in source list; `false` disables extraction entirely so attributes are left untouched and `<script src>` / `<link rel=\"modulepreload\">` / `<link rel=\"stylesheet\">` no longer become compilation entries; an array lets you customize which `tag`/`attribute` pairs are treated as URLs and how they are bundled. Use the string `\"...\"` inside the array to inline the defaults. Inline `<script>` and `<style>` bodies are always processed. Use `webpackIgnore` comments or `IgnorePlugin` to skip individual URLs.",
2124
+ "anyOf": [
2125
+ {
2126
+ "description": "Sources to extract as webpack dependencies. Use `\"...\"` to inline the default source list.",
2127
+ "type": "array",
2128
+ "items": {
2129
+ "description": "A source entry: either the string `\"...\"` to inline the built-in default sources, or an object describing a `tag`/`attribute` pair to extract and how to bundle it.",
2130
+ "anyOf": [
2131
+ {
2132
+ "enum": ["..."]
2133
+ },
2134
+ {
2135
+ "type": "object",
2136
+ "additionalProperties": false,
2137
+ "properties": {
2138
+ "attribute": {
2139
+ "description": "Attribute name whose value is treated as a URL.",
2140
+ "type": "string",
2141
+ "minLength": 1
2142
+ },
2143
+ "filter": {
2144
+ "description": "Called with the element's decoded attribute map and the decoded attribute value; return false to skip this source entry for that element.",
2145
+ "instanceof": "Function",
2146
+ "tsType": "(attributes: Map<string, string>, value: string) => boolean"
2147
+ },
2148
+ "tag": {
2149
+ "description": "Tag name to match. Omit to match any tag.",
2150
+ "type": "string",
2151
+ "minLength": 1
2152
+ },
2153
+ "type": {
2154
+ "description": "How the attribute value should be parsed and bundled, or `false` to disable a built-in source for this `tag`/`attribute` (use together with `\"...\"` to drop a default, e.g. stop treating `<img src>` as a URL). `src` extracts a single URL as a plain asset; `srcset` parses a `srcset`-style list of candidate URLs as plain assets; `css-url` extracts `url(...)` references from a CSS value (like an SVG presentation attribute such as `fill`) as plain assets; `script` and `script-module` emit a classic / ES-module chunk entry like `<script src>` and `<script type=\"module\" src>`; `stylesheet` emits a CSS chunk entry like `<link rel=\"stylesheet\">`; `html` treats the URL as a link to another HTML file that is bundled as its own emitted page (its assets extracted) and rewrites the attribute to the page's output filename (like Parcel's `<a href=\"page.html\">`); `stylesheet-style` treats the attribute value as a full stylesheet (like a `<style>` body) and `stylesheet-style-attribute` as a CSS block's contents (a declaration list, like a `style` attribute) — both bundle it through the CSS pipeline and replace the attribute's content with the processed CSS at render time; `srcdoc` treats the attribute value as an entity-encoded HTML document (like `<iframe srcdoc>`), bundling it through the HTML pipeline and replacing the attribute's content with the processed HTML at render time.",
2155
+ "anyOf": [
2156
+ {
2157
+ "enum": [
2158
+ "src",
2159
+ "srcset",
2160
+ "css-url",
2161
+ "script",
2162
+ "script-module",
2163
+ "stylesheet",
2164
+ "html",
2165
+ "stylesheet-style",
2166
+ "stylesheet-style-attribute",
2167
+ "srcdoc"
2168
+ ]
2169
+ },
2170
+ {
2171
+ "enum": [false]
2172
+ }
2173
+ ]
2174
+ }
2175
+ },
2176
+ "required": ["attribute", "type"]
2177
+ }
2178
+ ]
2179
+ },
2180
+ "minItems": 1
2181
+ },
2182
+ {
2183
+ "type": "boolean"
2184
+ }
2185
+ ]
2186
+ },
2187
+ "template": {
2188
+ "description": "Transform the raw source before the html parser extracts dependencies. Receives the source string and a context (`{ module, resource }`) and must return the html string to parse. Useful for compiling a templating language (Handlebars, EJS, Eta, …) to html so that URLs the template emits are still picked up as webpack dependencies. Runs synchronously.",
2189
+ "instanceof": "Function",
2190
+ "tsType": "import('../lib/html/HtmlParser').HtmlTemplateFunction"
2191
+ },
2192
+ "urlHints": {
2193
+ "$ref": "#/definitions/UrlHints"
2194
+ }
2195
+ }
2196
+ },
2197
+ "HtmlResourceHint": {
2198
+ "description": "A custom resource-hint `<link>` for `output.html.resourceHints`. Exactly one of `href` / `chunk` / `entry` names the target.",
2199
+ "type": "object",
2200
+ "additionalProperties": false,
2201
+ "properties": {
2202
+ "as": {
2203
+ "description": "The `as` attribute (`script`, `style`, `font`, …); defaults to `script` for chunk/entry references.",
2204
+ "type": "string"
2205
+ },
2206
+ "chunk": {
2207
+ "description": "Name of a chunk to hint; its emitted URL is resolved automatically.",
2208
+ "type": "string",
2209
+ "minLength": 1
2210
+ },
2211
+ "crossorigin": {
2212
+ "description": "The CORS mode; `true` maps to `anonymous`.",
2213
+ "anyOf": [
2214
+ {
2215
+ "enum": ["anonymous", "use-credentials"]
2216
+ },
2217
+ {
2218
+ "type": "boolean"
2219
+ }
2220
+ ]
2221
+ },
2222
+ "entry": {
2223
+ "description": "Name of an entrypoint to hint; expands to one hint per initial chunk.",
2224
+ "type": "string",
2225
+ "minLength": 1
2226
+ },
2227
+ "fetchPriority": {
2228
+ "description": "The `fetchpriority` attribute. Emitted on `preload` / `modulepreload` and on `prefetch` (the spec now permits it there).",
2229
+ "enum": ["low", "high", "auto"]
2230
+ },
2231
+ "href": {
2232
+ "description": "A literal URL used verbatim (external resource, `preconnect` origin, or an already-hashed asset).",
2233
+ "type": "string"
2234
+ },
2235
+ "integrity": {
2236
+ "description": "Subresource Integrity for a chunk/entry reference. Follows `output.html.integrity` by default; set `false` to opt this hint out.",
2237
+ "type": "boolean"
2238
+ },
2239
+ "media": {
2240
+ "description": "The `media` attribute.",
2241
+ "type": "string"
2242
+ },
2243
+ "rel": {
2244
+ "description": "The `rel` of the resource hint.",
2245
+ "enum": [
2246
+ "preload",
2247
+ "prefetch",
2248
+ "modulepreload",
2249
+ "preconnect",
2250
+ "dns-prefetch"
2251
+ ]
2252
+ },
2253
+ "type": {
2254
+ "description": "The `type` attribute (MIME type).",
2255
+ "type": "string"
2256
+ }
2257
+ },
2258
+ "required": ["rel"],
2259
+ "added": "5.109.0"
2260
+ },
1704
2261
  "HttpUriAllowedUris": {
1705
2262
  "description": "List of allowed URIs for building http resources.",
1706
2263
  "cli": {
@@ -1837,6 +2394,53 @@
1837
2394
  "description": "The name of the native import.meta object (can be exchanged for a polyfill).",
1838
2395
  "type": "string"
1839
2396
  },
2397
+ "ImportMetaParserOptions": {
2398
+ "description": "Enable/disable evaluating import.meta fields. Omitted fields are enabled and unknown fields are preserved. Custom fields are allowed.",
2399
+ "type": "object",
2400
+ "additionalProperties": {
2401
+ "description": "Enable/disable evaluating a custom import.meta field.",
2402
+ "type": "boolean"
2403
+ },
2404
+ "properties": {
2405
+ "dirname": {
2406
+ "description": "Enable/disable evaluating import.meta.dirname.",
2407
+ "type": "boolean"
2408
+ },
2409
+ "env": {
2410
+ "description": "Enable/disable evaluating import.meta.env.",
2411
+ "type": "boolean"
2412
+ },
2413
+ "filename": {
2414
+ "description": "Enable/disable evaluating import.meta.filename.",
2415
+ "type": "boolean"
2416
+ },
2417
+ "main": {
2418
+ "description": "Enable/disable evaluating import.meta.main.",
2419
+ "type": "boolean"
2420
+ },
2421
+ "resolve": {
2422
+ "description": "Enable/disable evaluating import.meta.resolve.",
2423
+ "type": "boolean"
2424
+ },
2425
+ "url": {
2426
+ "description": "Enable/disable evaluating import.meta.url.",
2427
+ "type": "boolean"
2428
+ },
2429
+ "webpack": {
2430
+ "description": "Enable/disable evaluating import.meta.webpack.",
2431
+ "type": "boolean"
2432
+ },
2433
+ "webpackContext": {
2434
+ "description": "Enable/disable evaluating import.meta.webpackContext.",
2435
+ "type": "boolean"
2436
+ },
2437
+ "webpackHot": {
2438
+ "description": "Enable/disable evaluating import.meta.webpackHot.",
2439
+ "type": "boolean"
2440
+ }
2441
+ },
2442
+ "added": "5.109.0"
2443
+ },
1840
2444
  "InfrastructureLogging": {
1841
2445
  "description": "Options for infrastructure level logging.",
1842
2446
  "type": "object",
@@ -1870,6 +2474,18 @@
1870
2474
  "description": "Log level.",
1871
2475
  "enum": ["none", "error", "warn", "info", "log", "verbose"]
1872
2476
  },
2477
+ "progress": {
2478
+ "description": "Show build progress. `\"auto\"` shows it only for interactive terminals. This option is only used when no custom console is provided.",
2479
+ "anyOf": [
2480
+ {
2481
+ "enum": ["auto"]
2482
+ },
2483
+ {
2484
+ "type": "boolean"
2485
+ }
2486
+ ],
2487
+ "added": "5.109.0"
2488
+ },
1873
2489
  "stream": {
1874
2490
  "description": "Stream used for logging output. Defaults to process.stderr. This option is only used when no custom console is provided.",
1875
2491
  "tsType": "NodeJS.WritableStream & { isTTY?: boolean, columns?: number, rows?: number }"
@@ -1884,6 +2500,10 @@
1884
2500
  "amd": {
1885
2501
  "$ref": "#/definitions/Amd"
1886
2502
  },
2503
+ "anonymousDefaultExportName": {
2504
+ "description": "Set .name to \"default\" for anonymous default export functions and classes per ES spec. Disable to reduce output size when .name is not needed.",
2505
+ "type": "boolean"
2506
+ },
1887
2507
  "browserify": {
1888
2508
  "description": "Enable/disable special handling for browserify bundles.",
1889
2509
  "type": "boolean"
@@ -1909,7 +2529,20 @@
1909
2529
  },
1910
2530
  "deferImport": {
1911
2531
  "description": "Enable experimental tc39 proposal https://github.com/tc39/proposal-defer-import-eval. This allows to defer execution of a module until it's first use.",
1912
- "type": "boolean"
2532
+ "type": "boolean",
2533
+ "added": "5.100.0"
2534
+ },
2535
+ "dynamicImportCssPreload": {
2536
+ "description": "Auto-emit `<link rel=\"preload\" as=\"style\">` for the CSS of every dynamically imported (`import()`) chunk, so the stylesheet fetches in parallel with the chunk's JavaScript instead of after it parses. Unlike `dynamicImportPreload`, the JavaScript itself is not preloaded. `true` uses the default order; a number sets the preload order.",
2537
+ "anyOf": [
2538
+ {
2539
+ "type": "number"
2540
+ },
2541
+ {
2542
+ "type": "boolean"
2543
+ }
2544
+ ],
2545
+ "added": "5.109.0"
1913
2546
  },
1914
2547
  "dynamicImportFetchPriority": {
1915
2548
  "description": "Specifies global fetchPriority for dynamic import.",
@@ -1986,7 +2619,7 @@
1986
2619
  "enum": ["error", "warn", "auto", false]
1987
2620
  },
1988
2621
  "importMeta": {
1989
- "description": "Enable/disable evaluating import.meta. Set to 'preserve-unknown' to preserve unknown properties for runtime evaluation.",
2622
+ "description": "Enable/disable evaluating import.meta. Set to 'preserve-unknown' or an object to preserve unknown properties for runtime evaluation.",
1990
2623
  "anyOf": [
1991
2624
  {
1992
2625
  "type": "boolean"
@@ -1994,12 +2627,16 @@
1994
2627
  {
1995
2628
  "type": "string",
1996
2629
  "enum": ["preserve-unknown"]
2630
+ },
2631
+ {
2632
+ "$ref": "#/definitions/ImportMetaParserOptions"
1997
2633
  }
1998
2634
  ]
1999
2635
  },
2000
2636
  "importMetaContext": {
2001
- "description": "Enable/disable evaluating import.meta.webpackContext.",
2002
- "type": "boolean"
2637
+ "description": "Deprecated in favor of \"importMeta\" object option with a \"webpackContext\" field. Enable/disable evaluating import.meta.webpackContext.",
2638
+ "type": "boolean",
2639
+ "deprecated": true
2003
2640
  },
2004
2641
  "node": {
2005
2642
  "$ref": "#/definitions/Node"
@@ -2013,6 +2650,15 @@
2013
2650
  "instanceof": "Function",
2014
2651
  "tsType": "import('../lib/javascript/JavascriptParser').ParseFunction"
2015
2652
  },
2653
+ "pureFunctions": {
2654
+ "description": "Mark the listed top-level function names for pure-function-based tree shaking.",
2655
+ "type": "array",
2656
+ "items": {
2657
+ "description": "A top-level function name in the module to treat as side-effect-free when called.",
2658
+ "type": "string",
2659
+ "minLength": 1
2660
+ }
2661
+ },
2016
2662
  "reexportExportsPresence": {
2017
2663
  "description": "Specifies the behavior of invalid export names in \"export ... from ...\". This might be useful to disable during the migration from \"export ... from ...\" to \"export type ... from ...\" when reexporting types in TypeScript.",
2018
2664
  "enum": ["error", "warn", "auto", false]
@@ -2042,6 +2688,11 @@
2042
2688
  "type": "boolean",
2043
2689
  "deprecated": true
2044
2690
  },
2691
+ "strictModeViolations": {
2692
+ "description": "Specifies the behavior of constructs that break at runtime in strict mode (e.g. 'with', 'arguments.callee', assigning to read-only globals) when modules are emitted as ES module output.",
2693
+ "enum": ["error", "warn", false],
2694
+ "added": "5.109.0"
2695
+ },
2045
2696
  "strictThisContextOnImports": {
2046
2697
  "description": "Handle the this context correctly according to the spec for namespace objects.",
2047
2698
  "type": "boolean"
@@ -2050,6 +2701,11 @@
2050
2701
  "description": "Enable/disable parsing of System.js special syntax like System.import, System.get, System.set and System.register.",
2051
2702
  "type": "boolean"
2052
2703
  },
2704
+ "typescript": {
2705
+ "description": "Enable typescript support.",
2706
+ "type": "boolean",
2707
+ "experimental": true
2708
+ },
2053
2709
  "unknownContextCritical": {
2054
2710
  "description": "Enable warnings when using the require function in a not statically analyse-able way.",
2055
2711
  "type": "boolean"
@@ -2085,6 +2741,9 @@
2085
2741
  }
2086
2742
  ]
2087
2743
  },
2744
+ "urlHints": {
2745
+ "$ref": "#/definitions/UrlHints"
2746
+ },
2088
2747
  "worker": {
2089
2748
  "description": "Disable or configure parsing of WebWorker syntax like new Worker() or navigator.serviceWorker.register().",
2090
2749
  "anyOf": [
@@ -2101,6 +2760,23 @@
2101
2760
  }
2102
2761
  ]
2103
2762
  },
2763
+ "worklet": {
2764
+ "description": "Disable or configure parsing of Worklet syntax like context.audioWorklet.addModule() or CSS.paintWorklet.addModule().",
2765
+ "anyOf": [
2766
+ {
2767
+ "type": "array",
2768
+ "items": {
2769
+ "description": "Specify a syntax that should be parsed as Worklet reference. '*context.audioWorklet.addModule()' handles 'context.audioWorklet.addModule()', 'abc()' handles 'abc()', and combinations are also possible.",
2770
+ "type": "string",
2771
+ "minLength": 1
2772
+ }
2773
+ },
2774
+ {
2775
+ "type": "boolean"
2776
+ }
2777
+ ],
2778
+ "added": "5.109.0"
2779
+ },
2104
2780
  "wrappedContextCritical": {
2105
2781
  "description": "Enable warnings for partial dynamic dependencies.",
2106
2782
  "type": "boolean"
@@ -2779,8 +3455,15 @@
2779
3455
  ]
2780
3456
  },
2781
3457
  "concatenateModules": {
2782
- "description": "Concatenate modules when possible to generate less modules, more efficient code and enable more optimizations by the minimizer.",
2783
- "type": "boolean"
3458
+ "description": "Concatenate modules when possible to generate less modules, more efficient code and enable more optimizations by the minimizer. An options object implies 'true'.",
3459
+ "anyOf": [
3460
+ {
3461
+ "type": "boolean"
3462
+ },
3463
+ {
3464
+ "$ref": "#/definitions/ConcatenateModulesOptions"
3465
+ }
3466
+ ]
2784
3467
  },
2785
3468
  "emitOnErrors": {
2786
3469
  "description": "Emit assets even when errors occur. Critical errors are emitted into the generated code and will cause errors at runtime.",
@@ -2790,6 +3473,10 @@
2790
3473
  "description": "Also flag chunks as loaded which contain a subset of the modules.",
2791
3474
  "type": "boolean"
2792
3475
  },
3476
+ "inlineExports": {
3477
+ "description": "Inline ESM exports that bind to small primitive constants (≤6-byte null/undefined/boolean/number/string). Inlining makes the import dependency inactive so DCE can drop the export and possibly the module.",
3478
+ "type": "boolean"
3479
+ },
2793
3480
  "innerGraph": {
2794
3481
  "description": "Creates a module-internal dependency graph for top level symbols, exports and imports, to improve unused exports detection.",
2795
3482
  "type": "boolean"
@@ -2947,8 +3634,15 @@
2947
3634
  ]
2948
3635
  },
2949
3636
  "concatenateModules": {
2950
- "description": "Concatenate modules when possible to generate less modules, more efficient code and enable more optimizations by the minimizer.",
2951
- "type": "boolean"
3637
+ "description": "Concatenate modules when possible to generate less modules, more efficient code and enable more optimizations by the minimizer. An options object implies 'true'.",
3638
+ "anyOf": [
3639
+ {
3640
+ "type": "boolean"
3641
+ },
3642
+ {
3643
+ "$ref": "#/definitions/ConcatenateModulesOptions"
3644
+ }
3645
+ ]
2952
3646
  },
2953
3647
  "emitOnErrors": {
2954
3648
  "description": "Emit assets even when errors occur. Critical errors are emitted into the generated code and will cause errors at runtime.",
@@ -2958,6 +3652,10 @@
2958
3652
  "description": "Also flag chunks as loaded which contain a subset of the modules.",
2959
3653
  "type": "boolean"
2960
3654
  },
3655
+ "inlineExports": {
3656
+ "description": "Inline ESM exports that bind to small primitive constants (≤6-byte null/undefined/boolean/number/string). Inlining makes the import dependency inactive so DCE can drop the export and possibly the module.",
3657
+ "type": "boolean"
3658
+ },
2961
3659
  "innerGraph": {
2962
3660
  "description": "Creates a module-internal dependency graph for top level symbols, exports and imports, to improve unused exports detection.",
2963
3661
  "type": "boolean"
@@ -3183,7 +3881,7 @@
3183
3881
  },
3184
3882
  {
3185
3883
  "instanceof": "Function",
3186
- "tsType": "import(\"../lib/TemplatedPathPlugin\").TemplatePathFn"
3884
+ "tsType": "import(\"../lib/TemplatedPathPlugin\").TemplatePathFn<import(\"../lib/Compilation\").PathDataChunk>"
3187
3885
  }
3188
3886
  ]
3189
3887
  },
@@ -3506,7 +4204,7 @@
3506
4204
  },
3507
4205
  {
3508
4206
  "instanceof": "Function",
3509
- "tsType": "import(\"../lib/TemplatedPathPlugin\").TemplatePathFn"
4207
+ "tsType": "import(\"../lib/TemplatedPathPlugin\").TemplatePathFn<import(\"../lib/Compilation\").PathDataChunk>"
3510
4208
  }
3511
4209
  ]
3512
4210
  },
@@ -3729,6 +4427,15 @@
3729
4427
  "hotUpdateMainFilename": {
3730
4428
  "$ref": "#/definitions/HotUpdateMainFilename"
3731
4429
  },
4430
+ "html": {
4431
+ "$ref": "#/definitions/OutputHtml"
4432
+ },
4433
+ "htmlChunkFilename": {
4434
+ "$ref": "#/definitions/HtmlChunkFilename"
4435
+ },
4436
+ "htmlFilename": {
4437
+ "$ref": "#/definitions/HtmlFilename"
4438
+ },
3732
4439
  "ignoreBrowserWarnings": {
3733
4440
  "description": "Ignore warnings in the browser.",
3734
4441
  "type": "boolean"
@@ -3777,6 +4484,9 @@
3777
4484
  "publicPath": {
3778
4485
  "$ref": "#/definitions/PublicPath"
3779
4486
  },
4487
+ "resourceHints": {
4488
+ "$ref": "#/definitions/ResourceHints"
4489
+ },
3780
4490
  "scriptType": {
3781
4491
  "$ref": "#/definitions/ScriptType"
3782
4492
  },
@@ -3792,6 +4502,9 @@
3792
4502
  "strictModuleExceptionHandling": {
3793
4503
  "$ref": "#/definitions/StrictModuleExceptionHandling"
3794
4504
  },
4505
+ "strictModuleResolution": {
4506
+ "$ref": "#/definitions/StrictModuleResolution"
4507
+ },
3795
4508
  "trustedTypes": {
3796
4509
  "description": "Use a Trusted Types policy to create urls for chunks. 'output.uniqueName' is used a default policy name. Passing a string sets a custom policy name.",
3797
4510
  "anyOf": [
@@ -3824,9 +4537,15 @@
3824
4537
  "wasmLoading": {
3825
4538
  "$ref": "#/definitions/WasmLoading"
3826
4539
  },
4540
+ "wasmStreamingFallback": {
4541
+ "$ref": "#/definitions/WasmStreamingFallback"
4542
+ },
3827
4543
  "webassemblyModuleFilename": {
3828
4544
  "$ref": "#/definitions/WebassemblyModuleFilename"
3829
4545
  },
4546
+ "workerChunkFilename": {
4547
+ "$ref": "#/definitions/WorkerChunkFilename"
4548
+ },
3830
4549
  "workerChunkLoading": {
3831
4550
  "$ref": "#/definitions/ChunkLoading"
3832
4551
  },
@@ -3838,6 +4557,220 @@
3838
4557
  }
3839
4558
  }
3840
4559
  },
4560
+ "OutputHtml": {
4561
+ "description": "Generate an HTML file for each non-HTML entrypoint with its JS and CSS output chunks injected. Can be overridden per entry via the entry descriptor `html` option.",
4562
+ "anyOf": [
4563
+ {
4564
+ "type": "boolean"
4565
+ },
4566
+ {
4567
+ "$ref": "#/definitions/OutputHtmlOptions"
4568
+ }
4569
+ ]
4570
+ },
4571
+ "OutputHtmlOptions": {
4572
+ "description": "Options for the generated HTML files.",
4573
+ "type": "object",
4574
+ "additionalProperties": false,
4575
+ "properties": {
4576
+ "base": {
4577
+ "description": "Inject a `<base>` element into the page `<head>`. A string sets `href`; an object sets both `href` and optionally `target`. Skipped if the HTML already contains a `<base>` element.",
4578
+ "anyOf": [
4579
+ {
4580
+ "type": "string",
4581
+ "minLength": 1
4582
+ },
4583
+ {
4584
+ "type": "object",
4585
+ "additionalProperties": false,
4586
+ "properties": {
4587
+ "href": {
4588
+ "description": "Value for the `href` attribute of the `<base>` element.",
4589
+ "type": "string",
4590
+ "minLength": 1
4591
+ },
4592
+ "target": {
4593
+ "description": "Value for the `target` attribute of the `<base>` element (e.g. `\"_blank\"`).",
4594
+ "type": "string",
4595
+ "minLength": 1
4596
+ }
4597
+ },
4598
+ "required": ["href"]
4599
+ }
4600
+ ],
4601
+ "added": "5.109.0"
4602
+ },
4603
+ "csp": {
4604
+ "description": "Inject a `<meta http-equiv=\"Content-Security-Policy\">` into every webpack-emitted HTML page. `false` (default) does nothing; `true` uses a strict baseline (`script-src 'self'`, `style-src 'self'`, `object-src 'none'`, `base-uri 'self'`) and appends a `sha256` hash of every inline `<script>`/`<style>` to `script-src`/`style-src`. An object customizes it. Skipped when the page already declares a CSP.",
4605
+ "anyOf": [
4606
+ {
4607
+ "type": "boolean"
4608
+ },
4609
+ {
4610
+ "type": "object",
4611
+ "additionalProperties": false,
4612
+ "properties": {
4613
+ "hashFunction": {
4614
+ "description": "Hash algorithm used for inline `<script>`/`<style>` sources.",
4615
+ "enum": ["sha256", "sha384", "sha512"]
4616
+ },
4617
+ "nonce": {
4618
+ "description": "Placeholder nonce added to injected `<script>`/`<style>` tags and as a `'nonce-…'` source; rewrite it per request server-side.",
4619
+ "type": "string",
4620
+ "minLength": 1
4621
+ },
4622
+ "policy": {
4623
+ "description": "CSP directives merged over the baseline. Each key is a directive (e.g. `\"script-src\"`); the value is a source string or list. Inline hashes and any `nonce` are still appended to `script-src`/`style-src`.",
4624
+ "type": "object",
4625
+ "additionalProperties": {
4626
+ "description": "A CSP source expression, or a list of them, for this directive.",
4627
+ "anyOf": [
4628
+ {
4629
+ "type": "array",
4630
+ "items": {
4631
+ "description": "A CSP source expression (e.g. `\"'self'\"`, `\"https://cdn.example.com\"`).",
4632
+ "type": "string"
4633
+ }
4634
+ },
4635
+ {
4636
+ "type": "string"
4637
+ }
4638
+ ]
4639
+ }
4640
+ }
4641
+ }
4642
+ }
4643
+ ]
4644
+ },
4645
+ "favicon": {
4646
+ "description": "Favicon(s) for webpack-generated HTML (authored pages are left untouched). `false` (default) injects nothing; `true` injects the webpack logo; a string is a path to an icon; an object maps each `<link rel>` to an icon — a path string, an object with the icon `href` plus extra link attributes (`sizes`, `media`, `color`, `type`, `crossorigin`), or an array of these for multiple icons under the same `rel` (e.g. several `sizes`, or light/dark `media` variants); a function receives the page name and returns one of these. Every icon is emitted as a hashed asset.",
4647
+ "anyOf": [
4648
+ {
4649
+ "type": "boolean"
4650
+ },
4651
+ {
4652
+ "type": "string",
4653
+ "minLength": 1
4654
+ },
4655
+ {
4656
+ "type": "object",
4657
+ "additionalProperties": {
4658
+ "description": "Icon(s) for a single `<link rel>`: one icon or an array of icons.",
4659
+ "anyOf": [
4660
+ {
4661
+ "type": "array",
4662
+ "items": {
4663
+ "$ref": "#/definitions/HtmlFaviconIcon"
4664
+ },
4665
+ "minItems": 1
4666
+ },
4667
+ {
4668
+ "$ref": "#/definitions/HtmlFaviconIcon"
4669
+ }
4670
+ ]
4671
+ }
4672
+ },
4673
+ {
4674
+ "instanceof": "Function",
4675
+ "tsType": "((name: string) => boolean | string | { [rel: string]: HtmlFaviconIcon | HtmlFaviconIcon[] })"
4676
+ }
4677
+ ],
4678
+ "added": "5.109.0"
4679
+ },
4680
+ "inject": {
4681
+ "description": "Where to place injected chunk `<script>`/`<link>` tags. `\"body\"` (default; `\"head\"` with `output.module`) keeps them next to the entry tag — end of `<body>` on generated pages; `\"head\"` moves them into `<head>`; `false` suppresses sibling-chunk injection (entry tags and resource hints remain).",
4682
+ "anyOf": [
4683
+ {
4684
+ "enum": ["body", "head"]
4685
+ },
4686
+ {
4687
+ "type": "boolean",
4688
+ "enum": [false]
4689
+ }
4690
+ ],
4691
+ "added": "5.109.0"
4692
+ },
4693
+ "inline": {
4694
+ "description": "Inline the content of matching chunks directly into the HTML instead of emitting a separate `<script>`/`<link>` tag. `true` inlines every chunk; `\"script\"` inlines only JavaScript, `\"style\"` only CSS; an array of `RegExp` patterns matches against the chunk name.",
4695
+ "anyOf": [
4696
+ {
4697
+ "type": "array",
4698
+ "items": {
4699
+ "description": "A regular expression matched against the chunk name; matching chunks are inlined.",
4700
+ "instanceof": "RegExp",
4701
+ "tsType": "RegExp"
4702
+ }
4703
+ },
4704
+ {
4705
+ "enum": ["script", "style"]
4706
+ },
4707
+ {
4708
+ "type": "boolean"
4709
+ }
4710
+ ],
4711
+ "added": "5.109.0"
4712
+ },
4713
+ "integrity": {
4714
+ "description": "Add Subresource Integrity (SRI) `integrity` attributes to injected `<script>`/`<link>` tags. `true` uses `['sha384']`; an array sets the hash algorithms; a function receives each referenced asset and returns the algorithms to use or `false` to skip it.",
4715
+ "anyOf": [
4716
+ {
4717
+ "type": "array",
4718
+ "items": {
4719
+ "description": "A hash algorithm name passed to Node.js `crypto.createHash` (e.g. 'sha256', 'sha384', 'sha512').",
4720
+ "type": "string",
4721
+ "minLength": 1
4722
+ }
4723
+ },
4724
+ {
4725
+ "type": "boolean"
4726
+ },
4727
+ {
4728
+ "instanceof": "Function",
4729
+ "tsType": "((asset: { chunk: import('../lib/Chunk'), filename: string }) => string[] | false)"
4730
+ }
4731
+ ],
4732
+ "added": "5.109.0"
4733
+ },
4734
+ "manifest": {
4735
+ "description": "Web app manifest for webpack-generated HTML (authored pages are left untouched). `false` (default) injects nothing. A string is a path to an existing `.webmanifest` file to link. An object is the manifest contents — serialized, emitted as a hashed `.webmanifest` and linked with `<link rel=\"manifest\">`; its `icons`/`screenshots` `src` paths resolve like any request and are emitted as hashed assets. A function receives the page name and returns one of these.",
4736
+ "anyOf": [
4737
+ {
4738
+ "enum": [false]
4739
+ },
4740
+ {
4741
+ "type": "string",
4742
+ "minLength": 1
4743
+ },
4744
+ {
4745
+ "type": "object",
4746
+ "additionalProperties": true
4747
+ },
4748
+ {
4749
+ "instanceof": "Function",
4750
+ "tsType": "((name: string) => false | string | { [key: string]: EXPECTED_ANY })"
4751
+ }
4752
+ ]
4753
+ },
4754
+ "meta": {
4755
+ "description": "Inject `<meta>` tags into the page `<head>`. Each key is the `name` attribute (or `\"charset\"` for a charset declaration); the value is the `content` string. Keys beginning with `og:` use the `property` attribute instead of `name`. A tag is skipped if the HTML already contains a meta with the same name.",
4756
+ "type": "object",
4757
+ "additionalProperties": {
4758
+ "description": "Content string for the meta tag.",
4759
+ "type": "string"
4760
+ },
4761
+ "added": "5.109.0"
4762
+ },
4763
+ "scriptLoading": {
4764
+ "description": "How injected `<script>` tags load. `auto` (default) emits a module script for ES module output and `defer` otherwise; `defer` forces a deferred script; `blocking` emits a plain blocking script.",
4765
+ "enum": ["auto", "blocking", "defer"]
4766
+ },
4767
+ "title": {
4768
+ "description": "Sets the `<title>` of the generated HTML page. Skipped if the HTML already contains a `<title>` element.",
4769
+ "type": "string",
4770
+ "added": "5.109.0"
4771
+ }
4772
+ }
4773
+ },
3841
4774
  "OutputModule": {
3842
4775
  "description": "Output javascript files as module source type.",
3843
4776
  "type": "boolean"
@@ -3935,6 +4868,15 @@
3935
4868
  "hotUpdateMainFilename": {
3936
4869
  "$ref": "#/definitions/HotUpdateMainFilename"
3937
4870
  },
4871
+ "html": {
4872
+ "$ref": "#/definitions/OutputHtml"
4873
+ },
4874
+ "htmlChunkFilename": {
4875
+ "$ref": "#/definitions/HtmlChunkFilename"
4876
+ },
4877
+ "htmlFilename": {
4878
+ "$ref": "#/definitions/HtmlFilename"
4879
+ },
3938
4880
  "ignoreBrowserWarnings": {
3939
4881
  "description": "Ignore warnings in the browser.",
3940
4882
  "type": "boolean"
@@ -3963,6 +4905,9 @@
3963
4905
  "publicPath": {
3964
4906
  "$ref": "#/definitions/PublicPath"
3965
4907
  },
4908
+ "resourceHints": {
4909
+ "$ref": "#/definitions/ResourceHintsOptions"
4910
+ },
3966
4911
  "scriptType": {
3967
4912
  "$ref": "#/definitions/ScriptType"
3968
4913
  },
@@ -3978,6 +4923,9 @@
3978
4923
  "strictModuleExceptionHandling": {
3979
4924
  "$ref": "#/definitions/StrictModuleExceptionHandling"
3980
4925
  },
4926
+ "strictModuleResolution": {
4927
+ "$ref": "#/definitions/StrictModuleResolution"
4928
+ },
3981
4929
  "trustedTypes": {
3982
4930
  "$ref": "#/definitions/TrustedTypes"
3983
4931
  },
@@ -3987,9 +4935,15 @@
3987
4935
  "wasmLoading": {
3988
4936
  "$ref": "#/definitions/WasmLoading"
3989
4937
  },
4938
+ "wasmStreamingFallback": {
4939
+ "$ref": "#/definitions/WasmStreamingFallback"
4940
+ },
3990
4941
  "webassemblyModuleFilename": {
3991
4942
  "$ref": "#/definitions/WebassemblyModuleFilename"
3992
4943
  },
4944
+ "workerChunkFilename": {
4945
+ "$ref": "#/definitions/WorkerChunkFilename"
4946
+ },
3993
4947
  "workerChunkLoading": {
3994
4948
  "$ref": "#/definitions/ChunkLoading"
3995
4949
  },
@@ -4040,13 +4994,16 @@
4040
4994
  "$ref": "#/definitions/CssParserOptions"
4041
4995
  },
4042
4996
  "css/auto": {
4043
- "$ref": "#/definitions/CssModuleParserOptions"
4997
+ "$ref": "#/definitions/CssAutoOrModuleParserOptions"
4044
4998
  },
4045
4999
  "css/global": {
4046
5000
  "$ref": "#/definitions/CssModuleParserOptions"
4047
5001
  },
4048
5002
  "css/module": {
4049
- "$ref": "#/definitions/CssModuleParserOptions"
5003
+ "$ref": "#/definitions/CssAutoOrModuleParserOptions"
5004
+ },
5005
+ "html": {
5006
+ "$ref": "#/definitions/HtmlParserOptions"
4050
5007
  },
4051
5008
  "javascript": {
4052
5009
  "$ref": "#/definitions/JavascriptParserOptions"
@@ -4623,6 +5580,71 @@
4623
5580
  }
4624
5581
  ]
4625
5582
  },
5583
+ "ResourceHints": {
5584
+ "description": "Resource-hint (`<link rel=\"prefetch\">` / `<link rel=\"preload\">` / `<link rel=\"modulepreload\">` / `<link rel=\"preconnect\">`) emission for extracted HTML entries and URL-referenced assets. Accepts the initial-graph shorthand (boolean / `\"prefetch\"` / `\"preload\"` / `\"none\"` / `HtmlResourceHint[]` / function — equivalent to `{ initial: <value> }`) or the full object form `{ initial, urlHints, preconnect, modulePreloadPolyfill, manifest }`. `initial` defaults on for ESM output (`output.module`), where native `import()` would otherwise waterfall; classic output stays opt-in.",
5585
+ "anyOf": [
5586
+ {
5587
+ "$ref": "#/definitions/ResourceHintsInitial"
5588
+ },
5589
+ {
5590
+ "$ref": "#/definitions/ResourceHintsOptions"
5591
+ }
5592
+ ],
5593
+ "added": "5.109.0"
5594
+ },
5595
+ "ResourceHintsInitial": {
5596
+ "description": "Initial dependency-graph chunk hints. `true` auto-emits `<link rel=\"modulepreload\">` (ESM output) or `<link rel=\"preload\" as=\"script\">` (classic) for each of the entry's initial dependency chunks; `\"prefetch\"` uses `<link rel=\"prefetch\">`; `\"preload\"` is an alias of `true`; `false` disables chunk hints (URL-asset hints from magic comments / `urlHints` still fire); `\"none\"` is a hard off switch (no `<link>` anywhere, empty stats / manifest); an array of `HtmlResourceHint` descriptors replaces the auto set; a function receives the auto `defaultHints` plus context (`entryName`, `entrypoint`, `hostType: \"html\" | \"js\"`, `compilation`) and returns the final list (replaces the removed `resolveDependencies` hook).",
5597
+ "anyOf": [
5598
+ {
5599
+ "type": "array",
5600
+ "items": {
5601
+ "$ref": "#/definitions/HtmlResourceHint"
5602
+ }
5603
+ },
5604
+ {
5605
+ "enum": ["prefetch", "preload", "none"]
5606
+ },
5607
+ {
5608
+ "type": "boolean"
5609
+ },
5610
+ {
5611
+ "instanceof": "Function",
5612
+ "tsType": "((context: { entryName: string, entrypoint: import('../lib/Entrypoint'), hostType: 'html' | 'js', compilation: import('../lib/Compilation'), defaultHints: (import('../lib/dependencies/HtmlEntryDependency').HtmlResourceHint & { hostChunks: string[] })[] }) => import('../lib/dependencies/HtmlEntryDependency').HtmlResourceHint[])"
5613
+ }
5614
+ ],
5615
+ "added": "5.109.0"
5616
+ },
5617
+ "ResourceHintsOptions": {
5618
+ "description": "Full resource-hint configuration.",
5619
+ "type": "object",
5620
+ "additionalProperties": false,
5621
+ "properties": {
5622
+ "initial": {
5623
+ "$ref": "#/definitions/ResourceHintsInitial"
5624
+ },
5625
+ "manifest": {
5626
+ "description": "Emit a JSON manifest of the resolved resource hints for each entrypoint (the same descriptors as `stats.entrypoints[].resourceHints`) as an output asset at this path. Lets an SSR server inject the `<link>` tags itself without walking the chunk graph — webpack's analogue of Vite's `build.ssrManifest`. Empty when `initial` is `\"none\"`.",
5627
+ "type": "string",
5628
+ "minLength": 1
5629
+ },
5630
+ "modulePreloadPolyfill": {
5631
+ "description": "Inject a tiny inline `<script>` polyfill for `<link rel=\"modulepreload\">` into extracted HTML pages. Defaults from the target's modulepreload support (`output.environment.modulePreload`) — `true` when the environment lacks native support, `false` when it has it. Set `false` to never inject (the `<link>` tags are still emitted but do nothing on browsers without support — useful under a strict CSP that forbids inline scripts).",
5632
+ "type": "boolean"
5633
+ },
5634
+ "preconnect": {
5635
+ "description": "Auto-emit `<link rel=\"preconnect\">` for the origin of a cross-origin `output.publicPath` (the origin bundles and assets are served from) into extracted HTML entries and the resource-hint stats / manifest. Mirrors `output.crossOriginLoading`. No-op when `publicPath` is relative or `\"auto\"`.",
5636
+ "type": "boolean"
5637
+ },
5638
+ "urlHints": {
5639
+ "description": "Project-wide URL-referenced-asset hint rules, applied as the base `urlHints` of every parser (JavaScript `new URL(...)`, CSS `url(...)`, HTML `<img src>` / `<link href>`). Parser-scoped `module.parser.<type>.urlHints` rules and per-URL magic comments still override these.",
5640
+ "type": "array",
5641
+ "items": {
5642
+ "$ref": "#/definitions/UrlHintRule"
5643
+ }
5644
+ }
5645
+ },
5646
+ "added": "5.109.0"
5647
+ },
4626
5648
  "RuleSetCondition": {
4627
5649
  "description": "A condition matcher.",
4628
5650
  "cli": {
@@ -5350,6 +6372,11 @@
5350
6372
  "description": "Limit of assets displayed in chunk groups.",
5351
6373
  "type": "number"
5352
6374
  },
6375
+ "chunkGroupResourceHints": {
6376
+ "description": "Include the resolved `<link>` resource-hint descriptors for each entrypoint (`entrypoints[name].resourceHints`). Combines `output.resourceHints.chunks` (initial-graph modulepreload/preload/prefetch) with `output.resourceHints.assets` (URL-referenced fonts / images / …). Lets SSR frameworks inject the hints server-side without walking the chunk graph themselves; the analogue of Vite's `build.ssrManifest`.",
6377
+ "type": "boolean",
6378
+ "added": "5.109.0"
6379
+ },
5353
6380
  "chunkGroups": {
5354
6381
  "description": "Display all chunk groups with the corresponding bundles.",
5355
6382
  "type": "boolean"
@@ -5780,6 +6807,10 @@
5780
6807
  "type": "boolean",
5781
6808
  "deprecated": true
5782
6809
  },
6810
+ "StrictModuleResolution": {
6811
+ "description": "Emit a runtime check that throws a 'MODULE_NOT_FOUND' error when a required module id is missing from the bundle.",
6812
+ "type": "boolean"
6813
+ },
5783
6814
  "Target": {
5784
6815
  "description": "Environment to build for. An array of environments to build for all of them when possible.",
5785
6816
  "anyOf": [
@@ -5826,6 +6857,55 @@
5826
6857
  "type": "string",
5827
6858
  "minLength": 1
5828
6859
  },
6860
+ "UrlHintRule": {
6861
+ "description": "One default-hint rule for URL-referenced assets emitted by this parser (JS `new URL(...)`, CSS `url(...)`, HTML `<img src>` / `<link href>` / `<script src>`). `test` / `include` / `exclude` match against the asset's request; omit all three to apply to every asset. Matching rules set the same fields a `webpackPrefetch` / `webpackPreload` / `webpackAs` / `webpackType` / `webpackMedia` / `webpackFetchPriority` magic comment would; explicit magic comments on the same URL still win.",
6862
+ "type": "object",
6863
+ "additionalProperties": false,
6864
+ "properties": {
6865
+ "as": {
6866
+ "description": "Default `as` attribute (script / style / font / image / …).",
6867
+ "type": "string"
6868
+ },
6869
+ "exclude": {
6870
+ "$ref": "#/definitions/RuleSetCondition"
6871
+ },
6872
+ "fetchPriority": {
6873
+ "description": "Default fetchpriority for prefetch / preload links.",
6874
+ "enum": ["low", "high", "auto", false]
6875
+ },
6876
+ "include": {
6877
+ "$ref": "#/definitions/RuleSetCondition"
6878
+ },
6879
+ "media": {
6880
+ "description": "Default `media` attribute (e.g. `\"(min-width: 800px)\"`).",
6881
+ "type": "string"
6882
+ },
6883
+ "prefetch": {
6884
+ "description": "When true, emit `<link rel=\"prefetch\">` for matching assets without an explicit hint comment.",
6885
+ "type": "boolean"
6886
+ },
6887
+ "preload": {
6888
+ "description": "When true, emit `<link rel=\"preload\">` for matching assets without an explicit hint comment.",
6889
+ "type": "boolean"
6890
+ },
6891
+ "test": {
6892
+ "$ref": "#/definitions/RuleSetCondition"
6893
+ },
6894
+ "type": {
6895
+ "description": "Default `type` attribute (MIME).",
6896
+ "type": "string"
6897
+ }
6898
+ },
6899
+ "added": "5.109.0"
6900
+ },
6901
+ "UrlHints": {
6902
+ "description": "URL-referenced-asset default hint rules for this parser (JavaScript `new URL(...)`, CSS `url(...)`, HTML `<img src>` / `<link href>` / `<script src>`).",
6903
+ "type": "array",
6904
+ "items": {
6905
+ "$ref": "#/definitions/UrlHintRule"
6906
+ },
6907
+ "added": "5.109.0"
6908
+ },
5829
6909
  "Validate": {
5830
6910
  "description": "Enable validation of webpack configuration. Defaults to true in development mode. In production mode, defaults to true unless futureDefaults is enabled, then defaults to false.",
5831
6911
  "type": "boolean"
@@ -5897,6 +6977,11 @@
5897
6977
  }
5898
6978
  ]
5899
6979
  },
6980
+ "WasmStreamingFallback": {
6981
+ "description": "Fall back to non-streaming WebAssembly instantiation when streaming compilation fails because the server does not serve `.wasm` files with the `application/wasm` MIME type.",
6982
+ "type": "boolean",
6983
+ "added": "5.109.0"
6984
+ },
5900
6985
  "Watch": {
5901
6986
  "description": "Enter watch mode, which rebuilds on file change.",
5902
6987
  "type": "boolean"
@@ -6111,6 +7196,14 @@
6111
7196
  },
6112
7197
  "required": ["apply"]
6113
7198
  },
7199
+ "WorkerChunkFilename": {
7200
+ "description": "Specifies the filename template of non-initial output worker's files on disk. You must **not** specify an absolute path here, but the path may contain folders separated by '/'! The specified path is joined with the value of the 'output.path' option to determine the location on disk.",
7201
+ "oneOf": [
7202
+ {
7203
+ "$ref": "#/definitions/FilenameTemplate"
7204
+ }
7205
+ ]
7206
+ },
6114
7207
  "WorkerPublicPath": {
6115
7208
  "description": "Worker public path. Much like the public path, this sets the location where the worker script file is intended to be found. If not set, webpack will use the publicPath. Don't set this option unless your worker scripts are located at a different path from your other script files.",
6116
7209
  "type": "string"