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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. package/README.md +5 -5
  2. package/changes.json +7 -7
  3. package/lib/APIPlugin.js +123 -17
  4. package/lib/AsyncDependenciesBlock.js +10 -7
  5. package/lib/AutomaticPrefetchPlugin.js +1 -1
  6. package/lib/BannerPlugin.js +10 -6
  7. package/lib/CacheFacade.js +6 -6
  8. package/lib/Chunk.js +14 -11
  9. package/lib/ChunkGraph.js +26 -17
  10. package/lib/ChunkGroup.js +7 -7
  11. package/lib/ChunkTemplate.js +35 -44
  12. package/lib/CircularModulesPlugin.js +205 -28
  13. package/lib/CleanPlugin.js +4 -7
  14. package/lib/CodeGenerationResults.js +11 -8
  15. package/lib/CompatibilityPlugin.js +7 -7
  16. package/lib/Compilation.js +688 -409
  17. package/lib/Compiler.js +53 -38
  18. package/lib/ConcatenationScope.js +117 -8
  19. package/lib/ConditionalInitFragment.js +3 -3
  20. package/lib/ConstPlugin.js +13 -11
  21. package/lib/ContextExclusionPlugin.js +1 -1
  22. package/lib/ContextModule.js +146 -54
  23. package/lib/ContextModuleFactory.js +46 -14
  24. package/lib/ContextReplacementPlugin.js +12 -14
  25. package/lib/DefinePlugin.js +121 -37
  26. package/lib/DependenciesBlock.js +9 -6
  27. package/lib/Dependency.js +36 -16
  28. package/lib/DependencyTemplate.js +11 -12
  29. package/lib/DependencyTemplates.js +3 -3
  30. package/lib/DotenvPlugin.js +50 -13
  31. package/lib/DynamicEntryPlugin.js +8 -4
  32. package/lib/EntryOptionPlugin.js +8 -4
  33. package/lib/EntryPlugin.js +2 -2
  34. package/lib/Entrypoint.js +6 -2
  35. package/lib/EnvironmentPlugin.js +2 -2
  36. package/lib/EvalDevToolModulePlugin.js +8 -4
  37. package/lib/EvalSourceMapDevToolPlugin.js +15 -8
  38. package/lib/ExportsInfo.js +101 -14
  39. package/lib/ExportsInfoApiPlugin.js +2 -4
  40. package/lib/ExternalModule.js +232 -77
  41. package/lib/ExternalModuleFactoryPlugin.js +97 -38
  42. package/lib/ExternalsPlugin.js +10 -6
  43. package/lib/FileSystemInfo.js +44 -70
  44. package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
  45. package/lib/FlagDependencyExportsPlugin.js +76 -19
  46. package/lib/FlagDependencyUsagePlugin.js +32 -47
  47. package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
  48. package/lib/Generator.js +36 -15
  49. package/lib/HotModuleReplacementPlugin.js +16 -44
  50. package/lib/IgnorePlugin.js +8 -4
  51. package/lib/IgnoreWarningsPlugin.js +2 -2
  52. package/lib/InitFragment.js +8 -4
  53. package/lib/JavascriptMetaInfoPlugin.js +35 -4
  54. package/lib/LazyBarrel.js +3 -4
  55. package/lib/LibraryTemplatePlugin.js +10 -6
  56. package/lib/LoaderOptionsPlugin.js +7 -3
  57. package/lib/LoaderTargetPlugin.js +1 -1
  58. package/lib/MainTemplate.js +49 -42
  59. package/lib/ManifestPlugin.js +12 -11
  60. package/lib/Module.js +62 -33
  61. package/lib/ModuleFactory.js +3 -3
  62. package/lib/ModuleFilenameHelpers.js +9 -4
  63. package/lib/ModuleGraph.js +195 -21
  64. package/lib/ModuleGraphConnection.js +6 -13
  65. package/lib/ModuleInfoHeaderPlugin.js +8 -10
  66. package/lib/ModuleTemplate.js +62 -63
  67. package/lib/MultiCompiler.js +130 -64
  68. package/lib/MultiStats.js +40 -9
  69. package/lib/MultiWatching.js +3 -3
  70. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  71. package/lib/NodeStuffPlugin.js +29 -19
  72. package/lib/NormalModule.js +141 -85
  73. package/lib/NormalModuleFactory.js +555 -110
  74. package/lib/NormalModuleReplacementPlugin.js +5 -8
  75. package/lib/NullFactory.js +6 -2
  76. package/lib/OptionsApply.js +7 -3
  77. package/lib/Parser.js +7 -3
  78. package/lib/PlatformPlugin.js +2 -2
  79. package/lib/PrefetchPlugin.js +1 -1
  80. package/lib/ProgressPlugin.js +16 -13
  81. package/lib/ProvidePlugin.js +3 -5
  82. package/lib/RawModule.js +25 -17
  83. package/lib/RecordIdsPlugin.js +3 -3
  84. package/lib/RequestShortener.js +1 -1
  85. package/lib/ResolverFactory.js +2 -2
  86. package/lib/RuntimeGlobals.js +22 -10
  87. package/lib/RuntimeModule.js +29 -19
  88. package/lib/RuntimePlugin.js +332 -169
  89. package/lib/RuntimeTemplate.js +2792 -352
  90. package/lib/SelfModuleFactory.js +7 -3
  91. package/lib/SourceMapDevToolModuleOptionsPlugin.js +6 -2
  92. package/lib/SourceMapDevToolPlugin.js +30 -20
  93. package/lib/Stats.js +3 -4
  94. package/lib/Template.js +32 -22
  95. package/lib/TemplatedPathPlugin.js +96 -14
  96. package/lib/UseStrictPlugin.js +4 -6
  97. package/lib/WarnCaseSensitiveModulesPlugin.js +4 -4
  98. package/lib/WarnDeprecatedOptionPlugin.js +1 -1
  99. package/lib/WarnNoModeSetPlugin.js +1 -1
  100. package/lib/WatchIgnorePlugin.js +8 -6
  101. package/lib/Watching.js +8 -8
  102. package/lib/WebpackIsIncludedPlugin.js +2 -4
  103. package/lib/WebpackOptionsApply.js +308 -18
  104. package/lib/WebpackOptionsDefaulter.js +6 -2
  105. package/lib/asset/AssetBytesGenerator.js +12 -10
  106. package/lib/asset/AssetBytesParser.js +2 -4
  107. package/lib/asset/AssetGenerator.js +188 -95
  108. package/lib/asset/AssetModule.js +7 -3
  109. package/lib/asset/AssetModulesPlugin.js +110 -38
  110. package/lib/asset/AssetParser.js +9 -7
  111. package/lib/asset/AssetSourceGenerator.js +60 -13
  112. package/lib/asset/AssetSourceParser.js +2 -4
  113. package/lib/asset/RawDataUrlModule.js +24 -16
  114. package/lib/asset/WebManifestGenerator.js +8 -10
  115. package/lib/asset/WebManifestParser.js +24 -10
  116. package/lib/async-modules/AsyncModuleHelpers.js +2 -2
  117. package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
  118. package/lib/async-modules/InferAsyncModulesPlugin.js +2 -2
  119. package/lib/async-modules/isGeneratorLowered.js +4 -4
  120. package/lib/buildChunkGraph.js +36 -27
  121. package/lib/bun/BunTargetPlugin.js +1 -1
  122. package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
  123. package/lib/cache/AddManagedPathsPlugin.js +1 -1
  124. package/lib/cache/IdleFileCachePlugin.js +2 -2
  125. package/lib/cache/MemoryCachePlugin.js +18 -10
  126. package/lib/cache/MemoryWithGcCachePlugin.js +34 -22
  127. package/lib/cache/PackFileCacheStrategy.js +30 -23
  128. package/lib/cache/ResolverCachePlugin.js +38 -18
  129. package/lib/cache/getLazyHashedEtag.js +1 -2
  130. package/lib/cache/mergeEtags.js +1 -1
  131. package/lib/cli.js +1 -3
  132. package/lib/config/browserslistTargetHandler.js +41 -5
  133. package/lib/config/defaults.js +261 -79
  134. package/lib/config/defineConfig.js +10 -2
  135. package/lib/config/getClaimedAssetTypes.js +65 -0
  136. package/lib/config/normalization.js +36 -16
  137. package/lib/config/target.js +46 -3
  138. package/lib/container/ContainerEntryDependency.js +1 -1
  139. package/lib/container/ContainerEntryModule.js +24 -15
  140. package/lib/container/ContainerEntryModuleFactory.js +7 -3
  141. package/lib/container/ContainerPlugin.js +9 -10
  142. package/lib/container/ContainerReferencePlugin.js +6 -2
  143. package/lib/container/FallbackDependency.js +1 -1
  144. package/lib/container/FallbackModule.js +24 -17
  145. package/lib/container/FallbackModuleFactory.js +7 -3
  146. package/lib/container/HoistContainerReferencesPlugin.js +6 -11
  147. package/lib/container/ModuleFederationPlugin.js +7 -24
  148. package/lib/container/RemoteModule.js +27 -19
  149. package/lib/container/RemoteRuntimeModule.js +10 -8
  150. package/lib/container/moduleFederationHooks.js +32 -0
  151. package/lib/css/CssGenerator.js +171 -43
  152. package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
  153. package/lib/css/CssLoadingRuntimeModule.js +57 -24
  154. package/lib/css/CssModule.js +10 -7
  155. package/lib/css/CssModulesPlugin.js +168 -88
  156. package/lib/css/CssParser.js +1113 -568
  157. package/lib/css/CssServerStylesRuntimeModule.js +54 -0
  158. package/lib/css/cssMinify.js +168 -0
  159. package/lib/css/data.js +5324 -0
  160. package/lib/css/syntax.js +9579 -232
  161. package/lib/debug/ProfilingPlugin.js +14 -9
  162. package/lib/deno/DenoTargetPlugin.js +1 -1
  163. package/lib/dependencies/AMDDefineDependency.js +112 -87
  164. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +30 -17
  165. package/lib/dependencies/AMDPlugin.js +9 -7
  166. package/lib/dependencies/AMDRequireArrayDependency.js +5 -5
  167. package/lib/dependencies/AMDRequireContextDependency.js +2 -2
  168. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -1
  169. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +25 -14
  170. package/lib/dependencies/AMDRequireDependency.js +8 -7
  171. package/lib/dependencies/AMDRequireItemDependency.js +1 -1
  172. package/lib/dependencies/AMDRuntimeModules.js +21 -1
  173. package/lib/dependencies/BuildTimeConstDependency.js +102 -0
  174. package/lib/dependencies/CachedConstDependency.js +11 -8
  175. package/lib/dependencies/CommonJsDependencyHelpers.js +67 -46
  176. package/lib/dependencies/CommonJsExportRequireDependency.js +121 -45
  177. package/lib/dependencies/CommonJsExportsDependency.js +53 -49
  178. package/lib/dependencies/CommonJsExportsParserPlugin.js +207 -25
  179. package/lib/dependencies/CommonJsFullRequireDependency.js +119 -34
  180. package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -50
  181. package/lib/dependencies/CommonJsObjectExportDependency.js +188 -0
  182. package/lib/dependencies/CommonJsPlugin.js +35 -6
  183. package/lib/dependencies/CommonJsRequireContextDependency.js +5 -6
  184. package/lib/dependencies/CommonJsRequireDependency.js +156 -27
  185. package/lib/dependencies/CommonJsSelfReferenceDependency.js +63 -38
  186. package/lib/dependencies/ConstDependency.js +8 -9
  187. package/lib/dependencies/ContextDependency.js +12 -8
  188. package/lib/dependencies/ContextDependencyHelpers.js +14 -9
  189. package/lib/dependencies/ContextDependencyTemplateAsId.js +4 -4
  190. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -4
  191. package/lib/dependencies/ContextElementDependency.js +31 -12
  192. package/lib/dependencies/CreateRequireParserPlugin.js +12 -7
  193. package/lib/dependencies/CreateScriptUrlDependency.js +4 -4
  194. package/lib/dependencies/CssIcssExportDependency.js +56 -28
  195. package/lib/dependencies/CssIcssImportDependency.js +17 -13
  196. package/lib/dependencies/CssIcssSymbolDependency.js +9 -10
  197. package/lib/dependencies/CssImportDependency.js +18 -9
  198. package/lib/dependencies/CssUrlDependency.js +17 -13
  199. package/lib/dependencies/DllEntryDependency.js +1 -1
  200. package/lib/dependencies/DynamicExports.js +2 -2
  201. package/lib/dependencies/ExportBindingInitFragment.js +36 -9
  202. package/lib/dependencies/ExportsInfoDependency.js +7 -8
  203. package/lib/dependencies/ExternalModuleDependency.js +9 -5
  204. package/lib/dependencies/ExternalModuleInitFragment.js +2 -2
  205. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +8 -5
  206. package/lib/dependencies/HarmonyAcceptDependency.js +5 -5
  207. package/lib/dependencies/HarmonyCompatibilityDependency.js +52 -17
  208. package/lib/dependencies/HarmonyDetectionParserPlugin.js +11 -7
  209. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +13 -10
  210. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +78 -12
  211. package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
  212. package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
  213. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -63
  214. package/lib/dependencies/HarmonyExportInitFragment.js +18 -6
  215. package/lib/dependencies/HarmonyExportSpecifierDependency.js +51 -14
  216. package/lib/dependencies/HarmonyExports.js +7 -4
  217. package/lib/dependencies/HarmonyImportDependency.js +27 -19
  218. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -24
  219. package/lib/dependencies/HarmonyImportGuard.js +20 -30
  220. package/lib/dependencies/HarmonyImportSideEffectDependency.js +38 -9
  221. package/lib/dependencies/HarmonyImportSpecifierDependency.js +97 -49
  222. package/lib/dependencies/HarmonyModulesPlugin.js +7 -3
  223. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -3
  224. package/lib/dependencies/HtmlEntryDependency.js +37 -29
  225. package/lib/dependencies/HtmlInlineHtmlDependency.js +7 -8
  226. package/lib/dependencies/HtmlInlineScriptDependency.js +11 -8
  227. package/lib/dependencies/HtmlInlineStyleDependency.js +7 -10
  228. package/lib/dependencies/HtmlSourceDependency.js +22 -14
  229. package/lib/dependencies/ImportContextDependency.js +2 -2
  230. package/lib/dependencies/ImportDependency.js +24 -20
  231. package/lib/dependencies/ImportEagerDependency.js +6 -9
  232. package/lib/dependencies/ImportMetaContextDependency.js +2 -2
  233. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +14 -13
  234. package/lib/dependencies/ImportMetaContextPlugin.js +7 -3
  235. package/lib/dependencies/ImportMetaGlobDependency.js +2 -2
  236. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +2 -3
  237. package/lib/dependencies/ImportMetaGlobHelpers.js +19 -22
  238. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -1
  239. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -1
  240. package/lib/dependencies/ImportMetaPlugin.js +154 -71
  241. package/lib/dependencies/ImportMetaResolveDependency.js +3 -4
  242. package/lib/dependencies/ImportParserPlugin.js +49 -35
  243. package/lib/dependencies/ImportPhase.js +12 -5
  244. package/lib/dependencies/ImportPlugin.js +7 -3
  245. package/lib/dependencies/ImportWeakDependency.js +6 -9
  246. package/lib/dependencies/JsonExportsDependency.js +11 -7
  247. package/lib/dependencies/LoaderDependency.js +2 -2
  248. package/lib/dependencies/LoaderImportDependency.js +2 -2
  249. package/lib/dependencies/LoaderPlugin.js +11 -7
  250. package/lib/dependencies/LocalModuleDependency.js +5 -5
  251. package/lib/dependencies/LocalModulesHelpers.js +1 -1
  252. package/lib/dependencies/ModuleDecoratorDependency.js +6 -7
  253. package/lib/dependencies/ModuleDependency.js +9 -6
  254. package/lib/dependencies/ModuleDependencyTemplateAsId.js +4 -4
  255. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +3 -3
  256. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
  257. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -1
  258. package/lib/dependencies/ModuleInitFragmentDependency.js +24 -10
  259. package/lib/dependencies/NullDependency.js +3 -3
  260. package/lib/dependencies/ProvidedDependency.js +14 -10
  261. package/lib/dependencies/PureExpressionDependency.js +9 -10
  262. package/lib/dependencies/RequireContextDependency.js +2 -2
  263. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -4
  264. package/lib/dependencies/RequireContextPlugin.js +8 -4
  265. package/lib/dependencies/RequireEnsureDependenciesBlock.js +2 -2
  266. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +5 -8
  267. package/lib/dependencies/RequireEnsureDependency.js +8 -7
  268. package/lib/dependencies/RequireEnsurePlugin.js +7 -3
  269. package/lib/dependencies/RequireHeaderDependency.js +51 -12
  270. package/lib/dependencies/RequireIncludeDependency.js +6 -6
  271. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +2 -3
  272. package/lib/dependencies/RequireIncludePlugin.js +7 -3
  273. package/lib/dependencies/RequireJsStuffPlugin.js +7 -3
  274. package/lib/dependencies/RequireResolveContextDependency.js +2 -2
  275. package/lib/dependencies/RequireResolveDependency.js +4 -4
  276. package/lib/dependencies/RequireResolveHeaderDependency.js +4 -4
  277. package/lib/dependencies/RuntimeRequirementsDependency.js +5 -6
  278. package/lib/dependencies/StaticExportsDependency.js +2 -2
  279. package/lib/dependencies/SystemPlugin.js +10 -6
  280. package/lib/dependencies/SystemRuntimeModule.js +10 -0
  281. package/lib/dependencies/TopLevelAwaitDependency.js +11 -7
  282. package/lib/dependencies/URLContextDependency.js +2 -2
  283. package/lib/dependencies/URLDependency.js +110 -64
  284. package/lib/dependencies/URLPlugin.js +7 -3
  285. package/lib/dependencies/UnsupportedDependency.js +4 -4
  286. package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -4
  287. package/lib/dependencies/WebAssemblyImportDependency.js +5 -5
  288. package/lib/dependencies/WebpackIsIncludedDependency.js +6 -6
  289. package/lib/dependencies/WorkerAndWorkletPlugin.js +46 -28
  290. package/lib/dependencies/WorkerDependency.js +28 -22
  291. package/lib/dependencies/WorkletDependency.js +15 -14
  292. package/lib/dependencies/getFunctionExpression.js +8 -4
  293. package/lib/dependencies/processExportInfo.js +5 -5
  294. package/lib/dll/DelegatedModule.js +34 -22
  295. package/lib/dll/DelegatedModuleFactoryPlugin.js +15 -7
  296. package/lib/dll/DelegatedPlugin.js +2 -2
  297. package/lib/dll/DllEntryPlugin.js +2 -2
  298. package/lib/dll/DllModule.js +22 -15
  299. package/lib/dll/DllModuleFactory.js +7 -3
  300. package/lib/dll/DllPlugin.js +7 -5
  301. package/lib/dll/DllReferencePlugin.js +10 -7
  302. package/lib/dll/LibManifestPlugin.js +5 -5
  303. package/lib/electron/ElectronTargetPlugin.js +53 -49
  304. package/lib/errors/AsyncChunkWaterfallWarning.js +36 -0
  305. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  306. package/lib/errors/BroadContextsWarning.js +43 -0
  307. package/lib/errors/BuildCycleError.js +1 -1
  308. package/lib/errors/CacheEffectivenessWarning.js +55 -0
  309. package/lib/errors/ChunkRenderError.js +1 -1
  310. package/lib/errors/CircularDependenciesWarning.js +38 -0
  311. package/lib/errors/CodeGenerationError.js +1 -1
  312. package/lib/errors/CommentCompilationWarning.js +1 -1
  313. package/lib/errors/ConflictingResourceHintsWarning.js +35 -0
  314. package/lib/errors/DuplicateModulesWarning.js +45 -0
  315. package/lib/errors/DynamicExportsWarning.js +30 -0
  316. package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
  317. package/lib/errors/EntrypointOverlapWarning.js +45 -0
  318. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  319. package/lib/errors/EvalUsageWarning.js +28 -0
  320. package/lib/errors/HookWebpackError.js +5 -5
  321. package/lib/errors/HotspotsWarning.js +57 -0
  322. package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
  323. package/lib/errors/InlinedAssetsWarning.js +36 -0
  324. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  325. package/lib/errors/LargeModulesWarning.js +45 -0
  326. package/lib/errors/LegacyJavascriptWarning.js +48 -0
  327. package/lib/errors/MissingSideEffectsWarning.js +36 -0
  328. package/lib/errors/MixedExportsWarning.js +41 -0
  329. package/lib/errors/ModuleDependencyError.js +13 -16
  330. package/lib/errors/ModuleDependencyWarning.js +5 -15
  331. package/lib/errors/ModuleHashingError.js +1 -1
  332. package/lib/errors/ModuleNotFoundError.js +2 -2
  333. package/lib/errors/ModuleParseError.js +1 -2
  334. package/lib/errors/ModuleRestoreError.js +1 -1
  335. package/lib/errors/ModuleStoreError.js +1 -1
  336. package/lib/errors/NodeStuffInWebError.js +1 -1
  337. package/lib/errors/OsDependentRuleWarning.js +31 -0
  338. package/lib/errors/PureAnnotationsWarning.js +36 -0
  339. package/lib/errors/RedundantDynamicImportWarning.js +31 -0
  340. package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
  341. package/lib/errors/SplitChunksCappedWarning.js +41 -0
  342. package/lib/errors/TinyChunksWarning.js +40 -0
  343. package/lib/errors/TopLevelThisWarning.js +34 -0
  344. package/lib/errors/UnsplitVendorsWarning.js +42 -0
  345. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  346. package/lib/errors/UnusedAliasesWarning.js +29 -0
  347. package/lib/errors/UnusedDefinesWarning.js +29 -0
  348. package/lib/errors/UnusedExternalsWarning.js +29 -0
  349. package/lib/errors/UnusedReexportsWarning.js +42 -0
  350. package/lib/errors/UnusedRuleWarning.js +29 -0
  351. package/lib/errors/WebpackError.js +9 -5
  352. package/lib/errors/deriveStackFromNestedError.js +90 -0
  353. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  354. package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
  355. package/lib/esm/ModuleChunkLoadingPlugin.js +89 -51
  356. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +155 -62
  357. package/lib/hmr/HotModuleReplacement.runtime.js +24 -5
  358. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
  359. package/lib/hmr/LazyCompilationPlugin.js +45 -24
  360. package/lib/hmr/lazyCompilationBackend.js +9 -6
  361. package/lib/hmr/parserHooks.js +56 -0
  362. package/lib/html/HtmlGenerator.js +277 -77
  363. package/lib/html/HtmlModule.js +7 -3
  364. package/lib/html/HtmlModulesPlugin.js +282 -162
  365. package/lib/html/HtmlParser.js +31 -86
  366. package/lib/html/data.js +1928 -0
  367. package/lib/html/htmlMinify.js +288 -0
  368. package/lib/html/syntax.js +5557 -1155
  369. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -3
  370. package/lib/ids/DeterministicChunkIdsPlugin.js +1 -1
  371. package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
  372. package/lib/ids/HashedModuleIdsPlugin.js +6 -2
  373. package/lib/ids/IdHelpers.js +7 -8
  374. package/lib/ids/NamedChunkIdsPlugin.js +1 -1
  375. package/lib/ids/NamedModuleIdsPlugin.js +1 -1
  376. package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
  377. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  378. package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -3
  379. package/lib/ids/OccurrenceModuleIdsPlugin.js +7 -3
  380. package/lib/ids/SyncModuleIdsPlugin.js +4 -4
  381. package/lib/index.js +10 -0
  382. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
  383. package/lib/javascript/BasicEvaluatedExpression.js +18 -14
  384. package/lib/javascript/ChunkFormatHelpers.js +6 -6
  385. package/lib/javascript/ChunkHelpers.js +1 -1
  386. package/lib/javascript/CommonJsChunkFormatPlugin.js +11 -5
  387. package/lib/javascript/EnableChunkLoadingPlugin.js +2 -2
  388. package/lib/javascript/JavascriptGenerator.js +65 -165
  389. package/lib/javascript/JavascriptModule.js +9 -3
  390. package/lib/javascript/JavascriptModulesPlugin.js +98 -113
  391. package/lib/javascript/JavascriptParser.js +242 -99
  392. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  393. package/lib/javascript/ScopeAnalyzer.js +1094 -0
  394. package/lib/javascript/StartupHelpers.js +55 -9
  395. package/lib/javascript/syntax.js +2678 -232
  396. package/lib/json/JsonData.js +8 -4
  397. package/lib/json/JsonGenerator.js +38 -16
  398. package/lib/json/JsonModule.js +7 -3
  399. package/lib/json/JsonModulesPlugin.js +1 -1
  400. package/lib/json/JsonParser.js +5 -6
  401. package/lib/library/AbstractLibraryPlugin.js +20 -14
  402. package/lib/library/AmdLibraryPlugin.js +11 -7
  403. package/lib/library/AssignLibraryPlugin.js +19 -13
  404. package/lib/library/EnableLibraryPlugin.js +2 -2
  405. package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
  406. package/lib/library/JsonpLibraryPlugin.js +11 -7
  407. package/lib/library/ModuleLibraryPlugin.js +256 -64
  408. package/lib/library/SystemLibraryPlugin.js +12 -8
  409. package/lib/library/UmdLibraryPlugin.js +62 -25
  410. package/lib/loaders/LoaderRunner.js +14 -1
  411. package/lib/loaders/loadLoader.js +8 -4
  412. package/lib/logging/createConsoleLogger.js +7 -4
  413. package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
  414. package/lib/node/NodeEnvironmentPlugin.js +17 -3
  415. package/lib/node/NodeSourcePlugin.js +1 -1
  416. package/lib/node/NodeTargetPlugin.js +4 -3
  417. package/lib/node/NodeTemplatePlugin.js +1 -1
  418. package/lib/node/NodeWatchFileSystem.js +70 -9
  419. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
  420. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +72 -19
  421. package/lib/node/ReadFileCompileWasmPlugin.js +28 -16
  422. package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
  423. package/lib/node/nodeConsole.js +7 -3
  424. package/lib/optimize/AggressiveMergingPlugin.js +2 -2
  425. package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
  426. package/lib/optimize/ConcatenatedModule.js +985 -470
  427. package/lib/optimize/ConstExportsPlugin.js +11 -7
  428. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  429. package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
  430. package/lib/optimize/InlineExports.js +9 -5
  431. package/lib/optimize/InnerGraph.js +28 -12
  432. package/lib/optimize/InnerGraphPlugin.js +23 -18
  433. package/lib/optimize/LimitChunkCountPlugin.js +7 -3
  434. package/lib/optimize/MangleExportsPlugin.js +7 -8
  435. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
  436. package/lib/optimize/MinChunkSizePlugin.js +7 -3
  437. package/lib/optimize/ModuleConcatenationPlugin.js +51 -35
  438. package/lib/optimize/RealContentHashPlugin.js +10 -6
  439. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  440. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  441. package/lib/optimize/RuntimeChunkPlugin.js +2 -2
  442. package/lib/optimize/SideEffectsFlagPlugin.js +262 -39
  443. package/lib/optimize/SplitChunksPlugin.js +86 -24
  444. package/lib/performance/AssetsOverSizeLimitWarning.js +10 -2
  445. package/lib/performance/AsyncChunkWaterfallsPlugin.js +136 -0
  446. package/lib/performance/BroadContextsPlugin.js +142 -0
  447. package/lib/performance/CacheEffectivenessPlugin.js +125 -0
  448. package/lib/performance/ConflictingResourceHintsPlugin.js +99 -0
  449. package/lib/performance/DuplicateModulesPlugin.js +93 -0
  450. package/lib/performance/DuplicatePackagesPlugin.js +119 -0
  451. package/lib/performance/DuplicatePackagesWarning.js +84 -0
  452. package/lib/performance/DynamicExportsPlugin.js +120 -0
  453. package/lib/performance/EmbeddedSourceMapsPlugin.js +71 -0
  454. package/lib/performance/EntrypointOverlapPlugin.js +122 -0
  455. package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -1
  456. package/lib/performance/EvalUsagePlugin.js +115 -0
  457. package/lib/performance/HotspotsPlugin.js +296 -0
  458. package/lib/performance/InlinedAssetsPlugin.js +99 -0
  459. package/lib/performance/LargeModulesPlugin.js +126 -0
  460. package/lib/performance/LegacyJavascriptPlugin.js +139 -0
  461. package/lib/performance/MissingSideEffectsPlugin.js +138 -0
  462. package/lib/performance/MixedExportsPlugin.js +136 -0
  463. package/lib/performance/OsDependentRuleWarningPlugin.js +178 -0
  464. package/lib/performance/PureAnnotationsPlugin.js +219 -0
  465. package/lib/performance/RedundantDynamicImportsPlugin.js +225 -0
  466. package/lib/performance/RuntimeInLargeChunkWarning.js +27 -0
  467. package/lib/performance/ScopeHoistingBailoutsPlugin.js +164 -0
  468. package/lib/performance/SizeLimitsPlugin.js +139 -7
  469. package/lib/performance/SplitChunksCappedPlugin.js +99 -0
  470. package/lib/performance/TinyChunksPlugin.js +128 -0
  471. package/lib/performance/TopLevelThisPlugin.js +208 -0
  472. package/lib/performance/UnsplitVendorsPlugin.js +112 -0
  473. package/lib/performance/UnusedAliasesPlugin.js +253 -0
  474. package/lib/performance/UnusedDefinesPlugin.js +87 -0
  475. package/lib/performance/UnusedExternalsPlugin.js +110 -0
  476. package/lib/performance/UnusedReexportsPlugin.js +159 -0
  477. package/lib/performance/UnusedRuleWarningPlugin.js +105 -0
  478. package/lib/performance/getModuleSize.js +22 -0
  479. package/lib/performance/getSourceModules.js +22 -0
  480. package/lib/performance/hasOnlyUnusedExports.js +40 -0
  481. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +24 -10
  482. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +63 -46
  483. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -3
  484. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
  485. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
  486. package/lib/prefetch/ResourceHintPlugin.js +295 -78
  487. package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
  488. package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
  489. package/lib/prefetch/parseResourceHintOptions.js +31 -4
  490. package/lib/rules/BasicEffectRulePlugin.js +2 -2
  491. package/lib/rules/BasicMatcherRulePlugin.js +8 -4
  492. package/lib/rules/GlobMatcherRulePlugin.js +68 -0
  493. package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
  494. package/lib/rules/RuleSetCompiler.js +146 -12
  495. package/lib/rules/UseEffectRulePlugin.js +18 -11
  496. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
  497. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
  498. package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
  499. package/lib/runtime/BaseUriRuntimeModule.js +33 -7
  500. package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
  501. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
  502. package/lib/runtime/CompatRuntimeModule.js +5 -3
  503. package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
  504. package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
  505. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
  506. package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
  507. package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
  508. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
  509. package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
  510. package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
  511. package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
  512. package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
  513. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
  514. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
  515. package/lib/runtime/GlobalRuntimeModule.js +18 -0
  516. package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
  517. package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
  518. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +23 -6
  519. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
  520. package/lib/runtime/NonceRuntimeModule.js +10 -0
  521. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
  522. package/lib/runtime/PublicPathRuntimeModule.js +12 -2
  523. package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
  524. package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
  525. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
  526. package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
  527. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
  528. package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
  529. package/lib/runtime/SystemContextRuntimeModule.js +10 -0
  530. package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
  531. package/lib/runtime/WorkerRuntimeModule.js +11 -1
  532. package/lib/runtime/baseUri.js +63 -0
  533. package/lib/schemes/DataUriPlugin.js +1 -1
  534. package/lib/schemes/FileUriPlugin.js +1 -1
  535. package/lib/schemes/HttpUriPlugin.js +24 -15
  536. package/lib/schemes/VirtualUrlPlugin.js +13 -7
  537. package/lib/serialization/AggregateErrorSerializer.js +1 -1
  538. package/lib/serialization/BinaryMiddleware.js +4 -4
  539. package/lib/serialization/ErrorObjectSerializer.js +1 -1
  540. package/lib/serialization/FileMiddleware.js +7 -7
  541. package/lib/serialization/ObjectMiddleware.js +139 -114
  542. package/lib/serialization/PlainObjectSerializer.js +19 -16
  543. package/lib/sharing/ConsumeSharedModule.js +30 -21
  544. package/lib/sharing/ConsumeSharedPlugin.js +18 -10
  545. package/lib/sharing/ConsumeSharedRuntimeModule.js +6 -9
  546. package/lib/sharing/ProvideSharedModule.js +25 -16
  547. package/lib/sharing/ProvideSharedModuleFactory.js +7 -3
  548. package/lib/sharing/ProvideSharedPlugin.js +8 -4
  549. package/lib/sharing/SharePlugin.js +17 -5
  550. package/lib/sharing/ShareRuntimeModule.js +4 -4
  551. package/lib/sharing/resolveMatchedConfigs.js +9 -6
  552. package/lib/sharing/utils.js +1 -3
  553. package/lib/stats/DefaultStatsFactoryPlugin.js +50 -29
  554. package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
  555. package/lib/stats/DefaultStatsPrinterPlugin.js +36 -26
  556. package/lib/stats/StatsFactory.js +25 -26
  557. package/lib/stats/StatsPrinter.js +16 -12
  558. package/lib/typescript/TypeScriptPlugin.js +12 -14
  559. package/lib/url/URLParserPlugin.js +26 -13
  560. package/lib/util/AsyncQueue.js +4 -3
  561. package/lib/util/Hash.js +5 -1
  562. package/lib/util/LazySet.js +35 -22
  563. package/lib/util/LocConverter.js +36 -13
  564. package/lib/util/SourceProcessor.js +1050 -24
  565. package/lib/util/StringXor.js +1 -1
  566. package/lib/util/chainedImports.js +9 -5
  567. package/lib/util/cleverMerge.js +1 -1
  568. package/lib/util/comparators.js +45 -14
  569. package/lib/util/concatenate.js +203 -77
  570. package/lib/util/conventions.js +5 -1
  571. package/lib/util/createHash.js +2 -2
  572. package/lib/util/createHooksRegistry.js +8 -10
  573. package/lib/util/dataURL.js +225 -1
  574. package/lib/util/extractSourceMap.js +4 -3
  575. package/lib/util/findCaseMismatch.js +139 -0
  576. package/lib/util/formatLocation.js +1 -2
  577. package/lib/util/fs.js +22 -5
  578. package/lib/util/globUtils.js +298 -24
  579. package/lib/util/hash/BatchedHash.js +5 -1
  580. package/lib/util/hash/BulkUpdateHash.js +5 -1
  581. package/lib/util/hash/DebugHash.js +5 -1
  582. package/lib/util/hash/hash-digest.js +6 -2
  583. package/lib/util/identifier.js +4 -0
  584. package/lib/util/implicitTypeLoaderFallback.js +1 -1
  585. package/lib/util/internalSerializables.js +6 -0
  586. package/lib/util/lazyModule.js +56 -0
  587. package/lib/util/makeSerializable.js +7 -3
  588. package/lib/util/matchAlias.js +25 -0
  589. package/lib/util/mimeTypes.js +11 -5
  590. package/lib/util/nonNumericOnlyHash.js +4 -3
  591. package/lib/util/parseJson.js +5 -3
  592. package/lib/util/preloadModuleType.js +32 -0
  593. package/lib/util/registerExternalSerializer.js +7 -5
  594. package/lib/util/runtime.js +2 -2
  595. package/lib/util/semver.js +1 -1
  596. package/lib/util/serialization.js +28 -28
  597. package/lib/util/source.js +2 -2
  598. package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
  599. package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
  600. package/lib/wasm/wasmModuleFilename.js +54 -0
  601. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +41 -21
  602. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +43 -21
  603. package/lib/wasm-async/AsyncWasmModule.js +3 -3
  604. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
  605. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
  606. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
  607. package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
  608. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +34 -8
  609. package/lib/wasm-sync/SyncWasmModule.js +2 -2
  610. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
  611. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
  612. package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
  613. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
  614. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
  615. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
  616. package/lib/wasm-sync/WebAssemblyParser.js +4 -6
  617. package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
  618. package/lib/web/FetchCompileAsyncWasmPlugin.js +101 -19
  619. package/lib/web/FetchCompileWasmPlugin.js +46 -16
  620. package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
  621. package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
  622. package/lib/web/JsonpTemplatePlugin.js +2 -2
  623. package/lib/webpack.js +22 -11
  624. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
  625. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
  626. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  627. package/module.d.ts +1 -0
  628. package/package.json +32 -25
  629. package/schemas/WebpackOptions.check.js +1 -1
  630. package/schemas/WebpackOptions.json +670 -36
  631. package/schemas/plugins/HtmlParserOptions.check.js +1 -1
  632. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  633. package/schemas/plugins/container/ContainerPlugin.json +10 -0
  634. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  635. package/schemas/plugins/container/ModuleFederationPlugin.json +10 -0
  636. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
  637. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  638. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  639. package/types.d.ts +3144 -454
  640. package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
@@ -36,51 +36,57 @@ const { cleverMerge } = require("../util/cleverMerge");
36
36
  const {
37
37
  getDefaultTarget,
38
38
  getTargetProperties,
39
+ getTargetsBrowsers,
39
40
  getTargetsProperties
40
41
  } = require("./target");
41
42
 
42
- /** @typedef {import("../../declarations/WebpackOptions").CacheOptionsNormalized} CacheOptionsNormalized */
43
- /** @typedef {import("../../declarations/WebpackOptions").Context} Context */
44
- /** @typedef {import("../../declarations/WebpackOptions").DevTool} Devtool */
45
- /** @typedef {import("../../declarations/WebpackOptions").CssGeneratorOptions} CssGeneratorOptions */
46
- /** @typedef {import("../../declarations/WebpackOptions").EntryDescription} EntryDescription */
47
- /** @typedef {import("../../declarations/WebpackOptions").EntryNormalized} Entry */
48
- /** @typedef {import("../../declarations/WebpackOptions").Environment} Environment */
49
- /** @typedef {import("../../declarations/WebpackOptions").Experiments} Experiments */
50
- /** @typedef {import("../../declarations/WebpackOptions").ExperimentsNormalized} ExperimentsNormalized */
51
- /** @typedef {import("../../declarations/WebpackOptions").ExternalsPresets} ExternalsPresets */
52
- /** @typedef {import("../../declarations/WebpackOptions").ExternalsType} ExternalsType */
53
- /** @typedef {import("../../declarations/WebpackOptions").FileCacheOptions} FileCacheOptions */
54
- /** @typedef {import("../../declarations/WebpackOptions").GeneratorOptionsByModuleTypeKnown} GeneratorOptionsByModuleTypeKnown */
55
- /** @typedef {import("../../declarations/WebpackOptions").InfrastructureLogging} InfrastructureLogging */
56
- /** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
57
- /** @typedef {import("../../declarations/WebpackOptions").JsonGeneratorOptions} JsonGeneratorOptions */
58
- /** @typedef {import("../../declarations/WebpackOptions").Library} Library */
59
- /** @typedef {import("../../declarations/WebpackOptions").LibraryName} LibraryName */
60
- /** @typedef {import("../../declarations/WebpackOptions").LibraryType} LibraryType */
61
- /** @typedef {import("../../declarations/WebpackOptions").Loader} Loader */
62
- /** @typedef {import("../../declarations/WebpackOptions").Mode} Mode */
63
- /** @typedef {import("../../declarations/WebpackOptions").HashFunction} HashFunction */
64
- /** @typedef {import("../../declarations/WebpackOptions").HashSalt} HashSalt */
65
- /** @typedef {import("../../declarations/WebpackOptions").HashDigest} HashDigest */
66
- /** @typedef {import("../../declarations/WebpackOptions").HashDigestLength} HashDigestLength */
67
- /** @typedef {import("../../declarations/WebpackOptions").ModuleOptionsNormalized} ModuleOptions */
68
- /** @typedef {import("../../declarations/WebpackOptions").Node} WebpackNode */
69
- /** @typedef {import("../../declarations/WebpackOptions").OptimizationNormalized} Optimization */
70
- /** @typedef {import("../../declarations/WebpackOptions").OptimizationSplitChunksOptions} OptimizationSplitChunksOptions */
71
- /** @typedef {import("../../declarations/WebpackOptions").OutputNormalized} Output */
72
- /** @typedef {import("../../declarations/WebpackOptions").ParserOptionsByModuleTypeKnown} ParserOptionsByModuleTypeKnown */
73
- /** @typedef {import("../../declarations/WebpackOptions").Performance} Performance */
74
- /** @typedef {import("../../declarations/WebpackOptions").ResolveOptions} ResolveOptions */
75
- /** @typedef {import("../../declarations/WebpackOptions").RuleSetRule} RuleSetRule */
76
- /** @typedef {import("../../declarations/WebpackOptions").RuleSetRules} RuleSetRules */
77
- /** @typedef {import("../../declarations/WebpackOptions").SnapshotOptions} SnapshotOptions */
78
- /** @typedef {import("../../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptionsNormalized */
79
- /** @typedef {import("../Module")} Module */
80
- /** @typedef {import("../javascript/EnableChunkLoadingPlugin").ChunkLoadingTypes} ChunkLoadingTypes */
81
- /** @typedef {import("../wasm/EnableWasmLoadingPlugin").WasmLoadingTypes} WasmLoadingTypes */
82
- /** @typedef {import("./target").PlatformTargetProperties} PlatformTargetProperties */
83
- /** @typedef {import("./target").TargetProperties} TargetProperties */
43
+ /**
44
+ * @import {
45
+ * CacheOptionsNormalized,
46
+ * Context,
47
+ * DevTool as Devtool,
48
+ * CssGeneratorOptions,
49
+ * EntryDescription,
50
+ * EntryNormalized as Entry,
51
+ * Environment,
52
+ * Experiments,
53
+ * ExperimentsNormalized,
54
+ * ExternalsPresets,
55
+ * ExternalsType,
56
+ * FileCacheOptions,
57
+ * GeneratorOptionsByModuleTypeKnown,
58
+ * InfrastructureLogging,
59
+ * JavascriptParserOptions,
60
+ * JsonGeneratorOptions,
61
+ * Library,
62
+ * LibraryName,
63
+ * LibraryType,
64
+ * Loader,
65
+ * Mode,
66
+ * HashFunction,
67
+ * HashSalt,
68
+ * ModuleOptionsNormalized as ModuleOptions,
69
+ * Node as WebpackNode,
70
+ * OptimizationMinimizeOptions,
71
+ * OptimizationNormalized as Optimization,
72
+ * OptimizationSplitChunksOptions,
73
+ * OutputNormalized as Output,
74
+ * ParserOptionsByModuleTypeKnown,
75
+ * Performance,
76
+ * ResolveOptions,
77
+ * RuleSetRules,
78
+ * SnapshotOptions,
79
+ * WebpackOptionsNormalized
80
+ * } from "../../declarations/WebpackOptions"
81
+ */
82
+ /** @import Module from "../Module" */
83
+ /**
84
+ * @import {
85
+ * ChunkLoadingTypes
86
+ * } from "../javascript/EnableChunkLoadingPlugin"
87
+ */
88
+ /** @import { WasmLoadingTypes } from "../wasm/EnableWasmLoadingPlugin" */
89
+ /** @import { PlatformTargetProperties, TargetProperties } from "./target" */
84
90
 
85
91
  /**
86
92
  * Defines the recursive non nullable type used by this module.
@@ -361,30 +367,6 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => {
361
367
  rules: options.module.rules
362
368
  });
363
369
 
364
- // After experiments are resolved: the default dev source map depends on the
365
- // (possibly "auto"-resolved) `experiments.css` value.
366
- F(
367
- options,
368
- "devtool",
369
- () =>
370
- /** @type {Devtool} */ (
371
- development
372
- ? [
373
- options.experiments.css
374
- ? {
375
- type: "css",
376
- use: "source-map"
377
- }
378
- : undefined,
379
- {
380
- type: "javascript",
381
- use: "eval"
382
- }
383
- ].filter(Boolean)
384
- : false
385
- )
386
- );
387
-
388
370
  const futureDefaults =
389
371
  /** @type {NonNullable<ExperimentsNormalized["futureDefaults"]>} */
390
372
  (options.experiments.futureDefaults);
@@ -436,6 +418,36 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => {
436
418
  (options.experiments.asyncWebAssembly)
437
419
  });
438
420
 
421
+ // Placed after `applyOutputDefaults`, which settles `enabledLibraryTypes`. A library
422
+ // is read by another bundler, where an eval wrapper hides `import.meta` from it.
423
+ const noDevSourceMap = /** @type {LibraryType[]} */ (
424
+ options.output.enabledLibraryTypes
425
+ ).some(
426
+ (type) => futureDefaults || type === "module" || type === "modern-module"
427
+ );
428
+
429
+ F(
430
+ options,
431
+ "devtool",
432
+ () =>
433
+ /** @type {Devtool} */ (
434
+ development && !noDevSourceMap
435
+ ? [
436
+ options.experiments.css
437
+ ? {
438
+ type: "css",
439
+ use: "source-map"
440
+ }
441
+ : undefined,
442
+ {
443
+ type: "javascript",
444
+ use: "eval"
445
+ }
446
+ ].filter(Boolean)
447
+ : false
448
+ )
449
+ );
450
+
439
451
  applyModuleDefaults(options.module, {
440
452
  cache,
441
453
  hashSalt: /** @type {NonNullable<Output["hashSalt"]>} */ (
@@ -634,11 +646,15 @@ const applyExperimentsDefaults = (
634
646
  "asyncWebAssembly",
635
647
  experiments.futureDefaults ? true : "auto"
636
648
  );
637
- // the universal target (web + node, neither specific) only works as ESM
649
+ // the universal target (web + node, neither specific) only works as ESM —
650
+ // unless the target cannot read one, which no output format can repair, so
651
+ // leave `output.chunkFormat` to say so rather than emitting a module the
652
+ // target has already reported it will not load
638
653
  const universal =
639
654
  Boolean(targetProperties) &&
640
655
  /** @type {TargetProperties} */ (targetProperties).node === null &&
641
- /** @type {TargetProperties} */ (targetProperties).web === null;
656
+ /** @type {TargetProperties} */ (targetProperties).web === null &&
657
+ /** @type {TargetProperties} */ (targetProperties).module !== false;
642
658
  // the deno and bun targets only emit ECMAScript modules
643
659
  const deno =
644
660
  Boolean(targetProperties) &&
@@ -1689,6 +1705,9 @@ const applyOutputDefaults = (
1689
1705
  "const",
1690
1706
  () => tp && optimistic(/** @type {boolean | undefined} */ (tp.const))
1691
1707
  );
1708
+ // Only the browserslist target reports these; everywhere else they stay
1709
+ // unset, which `optimistic` reads as the modern spelling being available —
1710
+ // the same policy the JS features above follow.
1692
1711
  // `let` was added after `const`; targets predating it report only `const`,
1693
1712
  // so fall back to `const` when `let` is unreported (undefined). Targets that
1694
1713
  // do report `let` (browserslist, built-ins) keep their own accurate value.
@@ -1733,6 +1752,14 @@ const applyOutputDefaults = (
1733
1752
  "forOf",
1734
1753
  () => tp && optimistic(/** @type {boolean | undefined} */ (tp.forOf))
1735
1754
  );
1755
+ // Stage 3 syntax, so these are the one pair read pessimistically: a preset that
1756
+ // says nothing means unavailable, and the phase keeps webpack's own form.
1757
+ F(environment, "deferImport", () =>
1758
+ Boolean(tp && /** @type {boolean | undefined} */ (tp.deferImport))
1759
+ );
1760
+ F(environment, "sourceImport", () =>
1761
+ Boolean(tp && /** @type {boolean | undefined} */ (tp.sourceImport))
1762
+ );
1736
1763
  F(
1737
1764
  environment,
1738
1765
  "destructuring",
@@ -1817,6 +1844,7 @@ const applyOutputDefaults = (
1817
1844
  output.resourceHints = {};
1818
1845
  }
1819
1846
  if (output.resourceHints) {
1847
+ D(output.resourceHints, "dedupe", false);
1820
1848
  if (output.module) D(output.resourceHints, "initial", true);
1821
1849
  // `modulePreloadPolyfill` defaults from the target's modulepreload
1822
1850
  // support: inject the polyfill iff the environment lacks it.
@@ -1918,10 +1946,15 @@ const applyOutputDefaults = (
1918
1946
  if (tp) {
1919
1947
  if (tp.global) return "global";
1920
1948
  if (tp.globalThis) return "globalThis";
1921
- // Universal target (web + node) with no reported accessor: `globalThis`
1922
- // is the only one defined everywhere (`null` = mixed support → `self`).
1923
- if (tp.web === null && tp.node === null && tp.globalThis === undefined) {
1924
- return "globalThis";
1949
+ // Universal target (web + node): no one identifier is defined on both
1950
+ // sides, so `globalThis` where the target reports nothing against it,
1951
+ // and a guarded pair where it does — `self` covers window and worker
1952
+ // scopes, `global` covers Node.js. Naming either alone leaves the other
1953
+ // platform reading an undeclared binding.
1954
+ if (tp.web === null && tp.node === null) {
1955
+ return tp.globalThis === undefined
1956
+ ? "globalThis"
1957
+ : 'typeof self !== "undefined" ? self : global';
1925
1958
  }
1926
1959
  }
1927
1960
  return "self";
@@ -2054,7 +2087,9 @@ const applyOutputDefaults = (
2054
2087
  "hotUpdateMainFilename",
2055
2088
  // Only `chunkLoading: "import"` loads the manifest via `import()` (needs an
2056
2089
  // `export default` ES module); every other loader fetches it as raw JSON.
2057
- `[runtime].[fullhash].hot-update.${output.chunkLoading === "import" ? "json.mjs" : "json"}`
2090
+ `[runtime].[fullhash].hot-update.${
2091
+ output.chunkLoading === "import" ? "json.mjs" : "json"
2092
+ }`
2058
2093
  );
2059
2094
  D(output, "crossOriginLoading", false);
2060
2095
  F(output, "scriptType", () => (output.module ? "module" : false));
@@ -2195,6 +2230,8 @@ const applyExternalsPresetsDefaults = (
2195
2230
  isUniversal("node"))
2196
2231
  )
2197
2232
  );
2233
+ // Opt-in only: never auto-externalize installed packages, it would change existing builds.
2234
+ D(externalsPresets, "nodeModules", false);
2198
2235
  D(
2199
2236
  externalsPresets,
2200
2237
  "deno",
@@ -2348,6 +2385,39 @@ const applyPerformanceDefaults = (performance, { production }) => {
2348
2385
  if (performance === false) return;
2349
2386
  D(performance, "maxAssetSize", 250000);
2350
2387
  D(performance, "maxEntrypointSize", 250000);
2388
+ // Stands in for every check left unset, so an explicit one still wins.
2389
+ const all = performance.all !== undefined ? performance.all : false;
2390
+
2391
+ D(performance, "asyncChunkWaterfalls", all);
2392
+ D(performance, "broadContexts", all);
2393
+ D(performance, "cacheEffectiveness", all);
2394
+ D(performance, "circularDependencies", all);
2395
+ D(performance, "conflictingResourceHints", all);
2396
+ D(performance, "duplicateModules", all);
2397
+ D(performance, "duplicatePackages", all);
2398
+ D(performance, "dynamicExports", all);
2399
+ D(performance, "entrypointOverlap", all);
2400
+ D(performance, "embeddedSourceMaps", all);
2401
+ D(performance, "evalUsage", all);
2402
+ D(performance, "hotspots", all);
2403
+ D(performance, "legacyJavascript", all);
2404
+ D(performance, "largeModules", all);
2405
+ D(performance, "inlinedAssets", all);
2406
+ D(performance, "mixedExports", all);
2407
+ D(performance, "missingSideEffects", all);
2408
+ D(performance, "osDependentRules", all);
2409
+ D(performance, "pureAnnotations", all);
2410
+ D(performance, "redundantDynamicImports", all);
2411
+ D(performance, "scopeHoistingBailouts", all);
2412
+ D(performance, "splitChunksCapped", all);
2413
+ D(performance, "tinyChunks", all);
2414
+ D(performance, "topLevelThis", all);
2415
+ D(performance, "unsplitVendors", all);
2416
+ D(performance, "unusedAliases", all);
2417
+ D(performance, "unusedDefines", all);
2418
+ D(performance, "unusedExternals", all);
2419
+ D(performance, "unusedReexports", all);
2420
+ D(performance, "unusedRules", all);
2351
2421
  F(performance, "hints", () => (production ? "warning" : false));
2352
2422
  };
2353
2423
 
@@ -2393,19 +2463,131 @@ const applyOptimizationDefaults = (
2393
2463
  D(optimization, "mangleWasmImports", false);
2394
2464
  D(optimization, "portableRecords", records);
2395
2465
  D(optimization, "realContentHash", production);
2396
- D(optimization, "minimize", production);
2466
+ F(optimization, "minimize", () => (production ? {} : false));
2467
+ // A plugin can assign the `true` shorthand in `apply()`, which runs after
2468
+ // `getNormalizedOptimizationMinimize` and so never gets normalized. The
2469
+ // normalized type does not allow it, hence the cast.
2470
+ if (/** @type {unknown} */ (optimization.minimize) === true) {
2471
+ optimization.minimize = {};
2472
+ }
2473
+ const { minimize } = optimization;
2474
+ if (minimize) {
2475
+ // Canonicalize the object form: the JS minimizer's defaults become
2476
+ // visible in the resolved config rather than hidden in the wiring.
2477
+ F(minimize, "javascript", () => ({ compress: { passes: 2 } }));
2478
+ F(minimize, "css", () => ({}));
2479
+ F(minimize, "html", () => ({}));
2480
+ }
2397
2481
  A(optimization, "minimizer", () => [
2398
2482
  {
2399
2483
  apply: (compiler) => {
2400
2484
  // Lazy load the minimizer plugin
2401
2485
  const TerserPlugin = require("minimizer-webpack-plugin");
2402
2486
 
2487
+ // One minimizer instance (one worker-thread pool) handles JS and, when
2488
+ // native CSS / HTML is enabled, those assets too — an array of minify
2489
+ // functions each dispatched by its own `filter` (terser -> JS,
2490
+ // cssMinify -> CSS, htmlMinify -> HTML). The CSS / HTML serializers stay
2491
+ // worker-safe by resolving their parser with `require("webpack/…")` in
2492
+ // the worker, so all three share the same pool. `test` is widened to let
2493
+ // CSS / HTML assets reach the dispatcher.
2494
+ // Step aside for a minimizer the user already configured for these
2495
+ // types: whichever of the two ran first would mark the asset
2496
+ // `minimized` and silently disable the other, so webpack only claims
2497
+ // what nothing else does. Their asset matchers are read directly rather
2498
+ // than resolved per asset — a coarse check, but it keeps the outcome
2499
+ // independent of tap order and of the plugin version in use.
2500
+ const claimedByOtherMinimizer = require("./getClaimedAssetTypes")(
2501
+ compiler
2502
+ );
2503
+
2504
+ // Normalized + defaulted `optimization.minimize` is the per-asset-type
2505
+ // object here: `false` disables a type, an object is its options.
2506
+ const minimizeByType = /** @type {OptimizationMinimizeOptions} */ (
2507
+ compiler.options.optimization.minimize
2508
+ );
2509
+ const terserOptions = minimizeByType.javascript || {
2510
+ compress: { passes: 2 }
2511
+ };
2512
+
2513
+ const { css, html } = compiler.options.experiments;
2514
+ const minifyJs = minimizeByType.javascript !== false;
2515
+ const minifyCss =
2516
+ Boolean(css) &&
2517
+ !claimedByOtherMinimizer.css &&
2518
+ minimizeByType.css !== false;
2519
+ const minifyHtml =
2520
+ Boolean(html) &&
2521
+ !claimedByOtherMinimizer.html &&
2522
+ minimizeByType.html !== false;
2523
+ if (!minifyJs && !minifyCss && !minifyHtml) return;
2524
+ if (minifyJs && !minifyCss && !minifyHtml) {
2525
+ new TerserPlugin({ terserOptions }).apply(
2526
+ /** @type {EXPECTED_ANY} */ (compiler)
2527
+ );
2528
+ return;
2529
+ }
2530
+ /** @type {(typeof TerserPlugin.terserMinify | typeof import("../css/cssMinify") | typeof import("../html/htmlMinify"))[]} */
2531
+ const minify = [];
2532
+ /** @type {EXPECTED_OBJECT[]} */
2533
+ const minimizerOptions = [];
2534
+ /** @type {string[]} */
2535
+ const extensions = [];
2536
+ // `minimize.css` follows the CSS minifier wherever it runs: the HTML
2537
+ // entry gets the same options, like the shared environment below.
2538
+ const cssOptions =
2539
+ typeof minimizeByType.css === "object"
2540
+ ? minimizeByType.css
2541
+ : undefined;
2542
+ // The browserslist selection, when the target is one. It decides both the
2543
+ // prefixes and every spelling a target can read, so `vendorPrefixes`
2544
+ // turns off the first alone — resolving it is what the second needs.
2545
+ const { target } = compiler.options;
2546
+ const browsers = target
2547
+ ? getTargetsBrowsers(
2548
+ Array.isArray(target) ? target : [target],
2549
+ /** @type {Context} */ (compiler.options.context)
2550
+ )
2551
+ : undefined;
2552
+ const cssEnvironment = {
2553
+ browsers,
2554
+ vendorPrefixes:
2555
+ cssOptions === undefined || cssOptions.vendorPrefixes !== false
2556
+ };
2557
+ const htmlOptions =
2558
+ typeof minimizeByType.html === "object"
2559
+ ? minimizeByType.html
2560
+ : undefined;
2561
+ if (minifyJs) {
2562
+ minify.push(TerserPlugin.terserMinify);
2563
+ minimizerOptions.push(terserOptions);
2564
+ extensions.push("[cm]?js");
2565
+ }
2566
+ if (minifyCss) {
2567
+ minify.push(require("../css/cssMinify"));
2568
+ minimizerOptions.push({
2569
+ environment: cssEnvironment,
2570
+ ...cssOptions
2571
+ });
2572
+ extensions.push("css");
2573
+ }
2574
+ if (minifyHtml) {
2575
+ minify.push(require("../html/htmlMinify"));
2576
+ // `minimize.css` rides along under its own key rather than spread
2577
+ // beside the HTML options: the two name some of the same switches
2578
+ // (`quotes`, `comments`), and one flat object would hand
2579
+ // each language the other's answer.
2580
+ minimizerOptions.push({
2581
+ environment: cssEnvironment,
2582
+ css: cssOptions,
2583
+ ...htmlOptions
2584
+ });
2585
+ extensions.push("html");
2586
+ }
2403
2587
  new TerserPlugin({
2404
- terserOptions: {
2405
- compress: {
2406
- passes: 2
2407
- }
2408
- }
2588
+ test: new RegExp(`\\.(?:${extensions.join("|")})(\\?.*)?$`, "i"),
2589
+ minify,
2590
+ minimizerOptions
2409
2591
  }).apply(/** @type {EXPECTED_ANY} */ (compiler));
2410
2592
  }
2411
2593
  }
@@ -5,8 +5,16 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- /** @typedef {import("../../declarations/WebpackOptions").WebpackOptions} Configuration */
9
- /** @typedef {import("../MultiCompiler").MultiWebpackOptions} MultiConfiguration */
8
+ /**
9
+ * @import {
10
+ * WebpackOptions as Configuration
11
+ * } from "../../declarations/WebpackOptions"
12
+ */
13
+ /**
14
+ * @import {
15
+ * MultiWebpackOptions as MultiConfiguration
16
+ * } from "../MultiCompiler"
17
+ */
10
18
 
11
19
  /**
12
20
  * @template T
@@ -0,0 +1,65 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author sheo13666q @sheo13666q
4
+ */
5
+
6
+ "use strict";
7
+
8
+ const { matchObject } = require("../ModuleFilenameHelpers");
9
+
10
+ /** @import Compiler from "../Compiler" */
11
+ /** @import { MatchObject } from "../ModuleFilenameHelpers" */
12
+ /** @typedef {MatchObject & { minimizer?: EXPECTED_OBJECT }} MinimizerOptions */
13
+
14
+ /**
15
+ * @param {unknown} candidate a configured plugin or minimizer entry
16
+ * @param {string} file probe filename
17
+ * @returns {boolean} whether the candidate minimizes that file
18
+ */
19
+ const claims = (candidate, file) => {
20
+ // Every minimizer in the `minimizer-webpack-plugin` family (itself,
21
+ // `css-minimizer-webpack-plugin`, `html-minimizer-webpack-plugin`, …) keeps
22
+ // the minify implementation on `options.minimizer` and its asset matcher
23
+ // alongside it in the shape `matchObject` reads. The matcher alone is not
24
+ // enough to recognize one: `BannerPlugin` and `SourceMapDevToolPlugin` carry
25
+ // the same three keys, and `LoaderOptionsPlugin` defaults `test` to match
26
+ // every file — reading those as minimizers would disable minification.
27
+ const { options } = /** @type {{ options?: MinimizerOptions }} */ (candidate);
28
+ if (!options || !options.minimizer) return false;
29
+ // `test`/`include` say which types it handles, `exclude` only narrows the
30
+ // files within them — honouring that narrowing would make a minimizer scoped
31
+ // to a subdirectory claim nothing, and webpack would then race it on the very
32
+ // files it was configured for.
33
+ const { test, include } = options;
34
+ return (
35
+ (test !== undefined && matchObject({ test }, file)) ||
36
+ (include !== undefined && matchObject({ include }, file))
37
+ );
38
+ };
39
+
40
+ /**
41
+ * Which asset types the user's own configuration already minimizes, so webpack's
42
+ * default minimizer can leave those alone instead of racing the user's plugin
43
+ * for them (the loser is skipped via `minimized` asset info, so without this
44
+ * whichever tapped first would win). Deliberately coarse: it reads a plugin's
45
+ * matcher rather than resolving it per emitted asset, so a minimizer restricted
46
+ * to some of a type's files still claims the whole type.
47
+ * @param {Compiler} compiler the compiler
48
+ * @returns {{ css: boolean, html: boolean }} types another minimizer handles
49
+ */
50
+ module.exports = (compiler) => {
51
+ const { optimization, plugins } = compiler.options;
52
+ let css = false;
53
+ let html = false;
54
+ // Both lists are normalized arrays with falsy entries already filtered out,
55
+ // and `minimizer` was filled in by the defaults before any plugin applies.
56
+ const minimizer =
57
+ /** @type {NonNullable<typeof optimization.minimizer>} */
58
+ (optimization.minimizer);
59
+ for (const candidate of [...minimizer, ...plugins]) {
60
+ if (!css) css = claims(candidate, "file.css");
61
+ if (!html) html = claims(candidate, "file.html");
62
+ if (css && html) break;
63
+ }
64
+ return { css, html };
65
+ };
@@ -7,22 +7,27 @@
7
7
 
8
8
  const util = require("util");
9
9
 
10
- /** @typedef {import("../../declarations/WebpackOptions").CacheOptionsNormalized} CacheOptions */
11
- /** @typedef {import("../../declarations/WebpackOptions").EntryDescriptionNormalized} EntryDescriptionNormalized */
12
- /** @typedef {import("../../declarations/WebpackOptions").EntryStatic} EntryStatic */
13
- /** @typedef {import("../../declarations/WebpackOptions").EntryStaticNormalized} EntryStaticNormalized */
14
- /** @typedef {import("../../declarations/WebpackOptions").Externals} Externals */
15
- /** @typedef {import("../../declarations/WebpackOptions").LibraryName} LibraryName */
16
- /** @typedef {import("../../declarations/WebpackOptions").LibraryOptions} LibraryOptions */
17
- /** @typedef {import("../../declarations/WebpackOptions").ModuleOptionsNormalized} ModuleOptionsNormalized */
18
- /** @typedef {import("../../declarations/WebpackOptions").OptimizationNormalized} OptimizationNormalized */
19
- /** @typedef {import("../../declarations/WebpackOptions").OptimizationRuntimeChunk} OptimizationRuntimeChunk */
20
- /** @typedef {import("../../declarations/WebpackOptions").OptimizationRuntimeChunkNormalized} OptimizationRuntimeChunkNormalized */
21
- /** @typedef {import("../../declarations/WebpackOptions").OutputNormalized} OutputNormalized */
22
- /** @typedef {import("../../declarations/WebpackOptions").PluginsNormalized} PluginsNormalized */
23
- /** @typedef {import("../../declarations/WebpackOptions").WebpackOptions} WebpackOptions */
24
- /** @typedef {import("../../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptionsNormalized */
25
- /** @typedef {import("../errors/WebpackError")} WebpackError */
10
+ /**
11
+ * @import {
12
+ * CacheOptionsNormalized as CacheOptions,
13
+ * EntryDescriptionNormalized,
14
+ * EntryStatic,
15
+ * EntryStaticNormalized,
16
+ * Externals,
17
+ * LibraryName,
18
+ * LibraryOptions,
19
+ * ModuleOptionsNormalized,
20
+ * Optimization,
21
+ * OptimizationNormalized,
22
+ * OptimizationRuntimeChunk,
23
+ * OptimizationRuntimeChunkNormalized,
24
+ * OutputNormalized,
25
+ * PluginsNormalized,
26
+ * WebpackOptions,
27
+ * WebpackOptionsNormalized
28
+ * } from "../../declarations/WebpackOptions"
29
+ */
30
+ /** @import WebpackError from "../errors/WebpackError" */
26
31
 
27
32
  /**
28
33
  * Defines the webpack options interception type used by this module.
@@ -326,6 +331,7 @@ const getNormalizedWebpackOptions = (config) => ({
326
331
  cacheGroups: cloneObject(splitChunks.cacheGroups)
327
332
  }
328
333
  ),
334
+ minimize: getNormalizedOptimizationMinimize(optimization.minimize),
329
335
  minimizer:
330
336
  optimization.minimizer !== undefined
331
337
  ? /** @type {OptimizationNormalized["minimizer"]} */ (
@@ -419,6 +425,7 @@ const getNormalizedWebpackOptions = (config) => ({
419
425
  ? output.libraryExport
420
426
  : libraryBase.export,
421
427
  name: libraryBase.name,
428
+ umdAmdContainer: libraryBase.umdAmdContainer,
422
429
  umdNamedDefine:
423
430
  output.umdNamedDefine !== undefined
424
431
  ? output.umdNamedDefine
@@ -604,6 +611,19 @@ const getNormalizedEntryStatic = (entry) => {
604
611
  return result;
605
612
  };
606
613
 
614
+ /**
615
+ * Gets normalized optimization minimize: the `true` shorthand becomes an empty
616
+ * per-asset-type object, so downstream only sees `false` or the object form.
617
+ * @param {Optimization["minimize"]} minimize minimize option
618
+ * @returns {OptimizationNormalized["minimize"]} normalized minimize option
619
+ */
620
+ const getNormalizedOptimizationMinimize = (minimize) => {
621
+ if (minimize === undefined) return;
622
+ if (minimize === false) return false;
623
+ if (minimize === true) return {};
624
+ return cloneObject(minimize);
625
+ };
626
+
607
627
  /**
608
628
  * Gets normalized optimization runtime chunk.
609
629
  * @param {OptimizationRuntimeChunk=} runtimeChunk runtimeChunk option