@depup/webpack 5.109.0-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 (641) hide show
  1. package/README.md +7 -7
  2. package/bin/webpack.js +12 -0
  3. package/changes.json +10 -10
  4. package/lib/APIPlugin.js +123 -17
  5. package/lib/AsyncDependenciesBlock.js +10 -7
  6. package/lib/AutomaticPrefetchPlugin.js +1 -1
  7. package/lib/BannerPlugin.js +10 -6
  8. package/lib/CacheFacade.js +6 -6
  9. package/lib/Chunk.js +14 -11
  10. package/lib/ChunkGraph.js +43 -32
  11. package/lib/ChunkGroup.js +7 -7
  12. package/lib/ChunkTemplate.js +35 -44
  13. package/lib/CircularModulesPlugin.js +205 -28
  14. package/lib/CleanPlugin.js +15 -16
  15. package/lib/CodeGenerationResults.js +11 -8
  16. package/lib/CompatibilityPlugin.js +38 -7
  17. package/lib/Compilation.js +709 -414
  18. package/lib/Compiler.js +69 -42
  19. package/lib/ConcatenationScope.js +117 -8
  20. package/lib/ConditionalInitFragment.js +3 -3
  21. package/lib/ConstPlugin.js +13 -11
  22. package/lib/ContextExclusionPlugin.js +1 -1
  23. package/lib/ContextModule.js +146 -54
  24. package/lib/ContextModuleFactory.js +46 -14
  25. package/lib/ContextReplacementPlugin.js +12 -14
  26. package/lib/DefinePlugin.js +168 -57
  27. package/lib/DependenciesBlock.js +9 -6
  28. package/lib/Dependency.js +36 -16
  29. package/lib/DependencyTemplate.js +11 -12
  30. package/lib/DependencyTemplates.js +3 -3
  31. package/lib/DotenvPlugin.js +50 -13
  32. package/lib/DynamicEntryPlugin.js +8 -4
  33. package/lib/EntryOptionPlugin.js +8 -4
  34. package/lib/EntryPlugin.js +2 -2
  35. package/lib/Entrypoint.js +6 -2
  36. package/lib/EnvironmentPlugin.js +2 -2
  37. package/lib/EvalDevToolModulePlugin.js +8 -4
  38. package/lib/EvalSourceMapDevToolPlugin.js +15 -8
  39. package/lib/ExportsInfo.js +123 -19
  40. package/lib/ExportsInfoApiPlugin.js +2 -4
  41. package/lib/ExternalModule.js +242 -84
  42. package/lib/ExternalModuleFactoryPlugin.js +97 -38
  43. package/lib/ExternalsPlugin.js +10 -6
  44. package/lib/FileSystemInfo.js +116 -42
  45. package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
  46. package/lib/FlagDependencyExportsPlugin.js +76 -19
  47. package/lib/FlagDependencyUsagePlugin.js +63 -57
  48. package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
  49. package/lib/Generator.js +36 -15
  50. package/lib/HotModuleReplacementPlugin.js +16 -44
  51. package/lib/IgnorePlugin.js +8 -4
  52. package/lib/IgnoreWarningsPlugin.js +2 -2
  53. package/lib/InitFragment.js +28 -36
  54. package/lib/JavascriptMetaInfoPlugin.js +35 -4
  55. package/lib/LazyBarrel.js +3 -4
  56. package/lib/LibraryTemplatePlugin.js +10 -6
  57. package/lib/LoaderOptionsPlugin.js +7 -3
  58. package/lib/LoaderTargetPlugin.js +1 -1
  59. package/lib/MainTemplate.js +49 -42
  60. package/lib/ManifestPlugin.js +12 -11
  61. package/lib/Module.js +62 -33
  62. package/lib/ModuleFactory.js +3 -3
  63. package/lib/ModuleFilenameHelpers.js +22 -6
  64. package/lib/ModuleGraph.js +195 -21
  65. package/lib/ModuleGraphConnection.js +6 -13
  66. package/lib/ModuleInfoHeaderPlugin.js +8 -10
  67. package/lib/ModuleTemplate.js +62 -63
  68. package/lib/MultiCompiler.js +130 -64
  69. package/lib/MultiStats.js +40 -9
  70. package/lib/MultiWatching.js +3 -3
  71. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  72. package/lib/NodeStuffPlugin.js +29 -19
  73. package/lib/NormalModule.js +221 -156
  74. package/lib/NormalModuleFactory.js +563 -112
  75. package/lib/NormalModuleReplacementPlugin.js +5 -8
  76. package/lib/NullFactory.js +6 -2
  77. package/lib/OptionsApply.js +7 -3
  78. package/lib/Parser.js +7 -3
  79. package/lib/PlatformPlugin.js +2 -2
  80. package/lib/PrefetchPlugin.js +1 -1
  81. package/lib/ProgressPlugin.js +16 -13
  82. package/lib/ProvidePlugin.js +3 -5
  83. package/lib/RawModule.js +25 -17
  84. package/lib/RecordIdsPlugin.js +3 -3
  85. package/lib/RequestShortener.js +1 -1
  86. package/lib/ResolverFactory.js +2 -2
  87. package/lib/RuntimeGlobals.js +22 -10
  88. package/lib/RuntimeModule.js +29 -19
  89. package/lib/RuntimePlugin.js +346 -256
  90. package/lib/RuntimeTemplate.js +2792 -352
  91. package/lib/SelfModuleFactory.js +7 -3
  92. package/lib/SourceMapDevToolModuleOptionsPlugin.js +6 -2
  93. package/lib/SourceMapDevToolPlugin.js +30 -20
  94. package/lib/Stats.js +3 -4
  95. package/lib/Template.js +55 -25
  96. package/lib/TemplatedPathPlugin.js +96 -14
  97. package/lib/UseStrictPlugin.js +4 -6
  98. package/lib/WarnCaseSensitiveModulesPlugin.js +4 -4
  99. package/lib/WarnDeprecatedOptionPlugin.js +1 -1
  100. package/lib/WarnNoModeSetPlugin.js +1 -1
  101. package/lib/WatchIgnorePlugin.js +8 -6
  102. package/lib/Watching.js +8 -8
  103. package/lib/WebpackIsIncludedPlugin.js +2 -4
  104. package/lib/WebpackOptionsApply.js +308 -18
  105. package/lib/WebpackOptionsDefaulter.js +6 -2
  106. package/lib/asset/AssetBytesGenerator.js +12 -10
  107. package/lib/asset/AssetBytesParser.js +2 -4
  108. package/lib/asset/AssetGenerator.js +188 -95
  109. package/lib/asset/AssetModule.js +7 -3
  110. package/lib/asset/AssetModulesPlugin.js +110 -38
  111. package/lib/asset/AssetParser.js +9 -7
  112. package/lib/asset/AssetSourceGenerator.js +60 -13
  113. package/lib/asset/AssetSourceParser.js +2 -4
  114. package/lib/asset/RawDataUrlModule.js +24 -16
  115. package/lib/asset/WebManifestGenerator.js +8 -10
  116. package/lib/asset/WebManifestParser.js +24 -10
  117. package/lib/async-modules/AsyncModuleHelpers.js +2 -2
  118. package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
  119. package/lib/async-modules/InferAsyncModulesPlugin.js +2 -2
  120. package/lib/async-modules/isGeneratorLowered.js +4 -4
  121. package/lib/buildChunkGraph.js +36 -27
  122. package/lib/bun/BunTargetPlugin.js +1 -1
  123. package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
  124. package/lib/cache/AddManagedPathsPlugin.js +1 -1
  125. package/lib/cache/IdleFileCachePlugin.js +2 -2
  126. package/lib/cache/MemoryCachePlugin.js +18 -10
  127. package/lib/cache/MemoryWithGcCachePlugin.js +34 -22
  128. package/lib/cache/PackFileCacheStrategy.js +289 -28
  129. package/lib/cache/ResolverCachePlugin.js +38 -18
  130. package/lib/cache/getLazyHashedEtag.js +1 -2
  131. package/lib/cache/mergeEtags.js +1 -1
  132. package/lib/cli.js +1 -3
  133. package/lib/config/browserslistTargetHandler.js +41 -5
  134. package/lib/config/defaults.js +282 -81
  135. package/lib/config/defineConfig.js +10 -2
  136. package/lib/config/getClaimedAssetTypes.js +65 -0
  137. package/lib/config/normalization.js +36 -16
  138. package/lib/config/target.js +46 -3
  139. package/lib/container/ContainerEntryDependency.js +1 -1
  140. package/lib/container/ContainerEntryModule.js +24 -15
  141. package/lib/container/ContainerEntryModuleFactory.js +7 -3
  142. package/lib/container/ContainerPlugin.js +9 -10
  143. package/lib/container/ContainerReferencePlugin.js +6 -2
  144. package/lib/container/FallbackDependency.js +1 -1
  145. package/lib/container/FallbackModule.js +24 -17
  146. package/lib/container/FallbackModuleFactory.js +7 -3
  147. package/lib/container/HoistContainerReferencesPlugin.js +53 -66
  148. package/lib/container/ModuleFederationPlugin.js +7 -18
  149. package/lib/container/RemoteModule.js +27 -19
  150. package/lib/container/RemoteRuntimeModule.js +10 -8
  151. package/lib/container/moduleFederationHooks.js +32 -0
  152. package/lib/css/CssGenerator.js +178 -44
  153. package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
  154. package/lib/css/CssLoadingRuntimeModule.js +82 -36
  155. package/lib/css/CssModule.js +10 -7
  156. package/lib/css/CssModulesPlugin.js +197 -106
  157. package/lib/css/CssParser.js +1248 -618
  158. package/lib/css/CssServerStylesRuntimeModule.js +54 -0
  159. package/lib/css/cssMinify.js +168 -0
  160. package/lib/css/data.js +5324 -0
  161. package/lib/css/syntax.js +10396 -952
  162. package/lib/debug/ProfilingPlugin.js +14 -9
  163. package/lib/deno/DenoTargetPlugin.js +1 -1
  164. package/lib/dependencies/AMDDefineDependency.js +112 -87
  165. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +30 -17
  166. package/lib/dependencies/AMDPlugin.js +9 -7
  167. package/lib/dependencies/AMDRequireArrayDependency.js +5 -5
  168. package/lib/dependencies/AMDRequireContextDependency.js +2 -2
  169. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -1
  170. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +25 -14
  171. package/lib/dependencies/AMDRequireDependency.js +8 -7
  172. package/lib/dependencies/AMDRequireItemDependency.js +1 -1
  173. package/lib/dependencies/AMDRuntimeModules.js +21 -1
  174. package/lib/dependencies/BuildTimeConstDependency.js +102 -0
  175. package/lib/dependencies/CachedConstDependency.js +11 -8
  176. package/lib/dependencies/CommonJsDependencyHelpers.js +67 -46
  177. package/lib/dependencies/CommonJsExportRequireDependency.js +140 -45
  178. package/lib/dependencies/CommonJsExportsDependency.js +53 -49
  179. package/lib/dependencies/CommonJsExportsParserPlugin.js +207 -25
  180. package/lib/dependencies/CommonJsFullRequireDependency.js +140 -26
  181. package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -48
  182. package/lib/dependencies/CommonJsObjectExportDependency.js +188 -0
  183. package/lib/dependencies/CommonJsPlugin.js +35 -6
  184. package/lib/dependencies/CommonJsRequireContextDependency.js +5 -6
  185. package/lib/dependencies/CommonJsRequireDependency.js +156 -27
  186. package/lib/dependencies/CommonJsSelfReferenceDependency.js +63 -38
  187. package/lib/dependencies/ConstDependency.js +8 -9
  188. package/lib/dependencies/ContextDependency.js +12 -8
  189. package/lib/dependencies/ContextDependencyHelpers.js +14 -9
  190. package/lib/dependencies/ContextDependencyTemplateAsId.js +4 -4
  191. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -4
  192. package/lib/dependencies/ContextElementDependency.js +31 -12
  193. package/lib/dependencies/CreateRequireParserPlugin.js +12 -7
  194. package/lib/dependencies/CreateScriptUrlDependency.js +4 -4
  195. package/lib/dependencies/CssIcssExportDependency.js +56 -28
  196. package/lib/dependencies/CssIcssImportDependency.js +17 -13
  197. package/lib/dependencies/CssIcssSymbolDependency.js +9 -10
  198. package/lib/dependencies/CssImportDependency.js +18 -9
  199. package/lib/dependencies/CssUrlDependency.js +17 -13
  200. package/lib/dependencies/DllEntryDependency.js +1 -1
  201. package/lib/dependencies/DynamicExports.js +2 -2
  202. package/lib/dependencies/ExportBindingInitFragment.js +36 -9
  203. package/lib/dependencies/ExportsInfoDependency.js +7 -8
  204. package/lib/dependencies/ExternalModuleDependency.js +9 -5
  205. package/lib/dependencies/ExternalModuleInitFragment.js +2 -2
  206. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +8 -5
  207. package/lib/dependencies/HarmonyAcceptDependency.js +5 -5
  208. package/lib/dependencies/HarmonyCompatibilityDependency.js +52 -17
  209. package/lib/dependencies/HarmonyDetectionParserPlugin.js +11 -7
  210. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +15 -11
  211. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +78 -12
  212. package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
  213. package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
  214. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +159 -71
  215. package/lib/dependencies/HarmonyExportInitFragment.js +18 -6
  216. package/lib/dependencies/HarmonyExportSpecifierDependency.js +51 -14
  217. package/lib/dependencies/HarmonyExports.js +7 -4
  218. package/lib/dependencies/HarmonyImportDependency.js +28 -20
  219. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -24
  220. package/lib/dependencies/HarmonyImportGuard.js +21 -30
  221. package/lib/dependencies/HarmonyImportSideEffectDependency.js +38 -9
  222. package/lib/dependencies/HarmonyImportSpecifierDependency.js +106 -55
  223. package/lib/dependencies/HarmonyModulesPlugin.js +7 -3
  224. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -3
  225. package/lib/dependencies/HtmlEntryDependency.js +37 -29
  226. package/lib/dependencies/HtmlInlineHtmlDependency.js +7 -8
  227. package/lib/dependencies/HtmlInlineScriptDependency.js +11 -8
  228. package/lib/dependencies/HtmlInlineStyleDependency.js +7 -10
  229. package/lib/dependencies/HtmlSourceDependency.js +22 -14
  230. package/lib/dependencies/ImportContextDependency.js +2 -2
  231. package/lib/dependencies/ImportDependency.js +24 -20
  232. package/lib/dependencies/ImportEagerDependency.js +6 -9
  233. package/lib/dependencies/ImportMetaContextDependency.js +2 -2
  234. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +14 -13
  235. package/lib/dependencies/ImportMetaContextPlugin.js +7 -3
  236. package/lib/dependencies/ImportMetaGlobDependency.js +2 -2
  237. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +2 -3
  238. package/lib/dependencies/ImportMetaGlobHelpers.js +19 -22
  239. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -1
  240. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -1
  241. package/lib/dependencies/ImportMetaPlugin.js +154 -71
  242. package/lib/dependencies/ImportMetaResolveDependency.js +3 -4
  243. package/lib/dependencies/ImportParserPlugin.js +49 -35
  244. package/lib/dependencies/ImportPhase.js +12 -5
  245. package/lib/dependencies/ImportPlugin.js +7 -3
  246. package/lib/dependencies/ImportWeakDependency.js +6 -9
  247. package/lib/dependencies/JsonExportsDependency.js +11 -7
  248. package/lib/dependencies/LoaderDependency.js +2 -2
  249. package/lib/dependencies/LoaderImportDependency.js +2 -2
  250. package/lib/dependencies/LoaderPlugin.js +11 -7
  251. package/lib/dependencies/LocalModuleDependency.js +5 -5
  252. package/lib/dependencies/LocalModulesHelpers.js +1 -1
  253. package/lib/dependencies/ModuleDecoratorDependency.js +6 -7
  254. package/lib/dependencies/ModuleDependency.js +9 -6
  255. package/lib/dependencies/ModuleDependencyTemplateAsId.js +4 -4
  256. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +3 -3
  257. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
  258. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -1
  259. package/lib/dependencies/ModuleInitFragmentDependency.js +24 -10
  260. package/lib/dependencies/NullDependency.js +3 -3
  261. package/lib/dependencies/ProvidedDependency.js +14 -10
  262. package/lib/dependencies/PureExpressionDependency.js +9 -10
  263. package/lib/dependencies/RequireContextDependency.js +2 -2
  264. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -4
  265. package/lib/dependencies/RequireContextPlugin.js +8 -4
  266. package/lib/dependencies/RequireEnsureDependenciesBlock.js +2 -2
  267. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +5 -8
  268. package/lib/dependencies/RequireEnsureDependency.js +8 -7
  269. package/lib/dependencies/RequireEnsurePlugin.js +7 -3
  270. package/lib/dependencies/RequireHeaderDependency.js +51 -12
  271. package/lib/dependencies/RequireIncludeDependency.js +6 -6
  272. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +2 -3
  273. package/lib/dependencies/RequireIncludePlugin.js +7 -3
  274. package/lib/dependencies/RequireJsStuffPlugin.js +7 -3
  275. package/lib/dependencies/RequireResolveContextDependency.js +2 -2
  276. package/lib/dependencies/RequireResolveDependency.js +4 -4
  277. package/lib/dependencies/RequireResolveHeaderDependency.js +4 -4
  278. package/lib/dependencies/RuntimeRequirementsDependency.js +5 -6
  279. package/lib/dependencies/StaticExportsDependency.js +2 -2
  280. package/lib/dependencies/SystemPlugin.js +10 -6
  281. package/lib/dependencies/SystemRuntimeModule.js +10 -0
  282. package/lib/dependencies/TopLevelAwaitDependency.js +11 -7
  283. package/lib/dependencies/URLContextDependency.js +2 -2
  284. package/lib/dependencies/URLDependency.js +110 -64
  285. package/lib/dependencies/URLPlugin.js +7 -3
  286. package/lib/dependencies/UnsupportedDependency.js +4 -4
  287. package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -4
  288. package/lib/dependencies/WebAssemblyImportDependency.js +5 -5
  289. package/lib/dependencies/WebpackIsIncludedDependency.js +6 -6
  290. package/lib/dependencies/WorkerAndWorkletPlugin.js +46 -28
  291. package/lib/dependencies/WorkerDependency.js +28 -22
  292. package/lib/dependencies/WorkletDependency.js +15 -14
  293. package/lib/dependencies/getFunctionExpression.js +8 -4
  294. package/lib/dependencies/processExportInfo.js +5 -5
  295. package/lib/dll/DelegatedModule.js +34 -22
  296. package/lib/dll/DelegatedModuleFactoryPlugin.js +15 -7
  297. package/lib/dll/DelegatedPlugin.js +2 -2
  298. package/lib/dll/DllEntryPlugin.js +2 -2
  299. package/lib/dll/DllModule.js +22 -15
  300. package/lib/dll/DllModuleFactory.js +7 -3
  301. package/lib/dll/DllPlugin.js +7 -5
  302. package/lib/dll/DllReferencePlugin.js +10 -7
  303. package/lib/dll/LibManifestPlugin.js +5 -5
  304. package/lib/electron/ElectronTargetPlugin.js +53 -49
  305. package/lib/errors/AsyncChunkWaterfallWarning.js +36 -0
  306. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  307. package/lib/errors/BroadContextsWarning.js +43 -0
  308. package/lib/errors/BuildCycleError.js +1 -1
  309. package/lib/errors/CacheEffectivenessWarning.js +55 -0
  310. package/lib/errors/ChunkRenderError.js +1 -1
  311. package/lib/errors/CircularDependenciesWarning.js +38 -0
  312. package/lib/errors/CodeGenerationError.js +1 -1
  313. package/lib/errors/CommentCompilationWarning.js +1 -1
  314. package/lib/errors/ConflictingResourceHintsWarning.js +35 -0
  315. package/lib/errors/DuplicateModulesWarning.js +45 -0
  316. package/lib/errors/DynamicExportsWarning.js +30 -0
  317. package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
  318. package/lib/errors/EntrypointOverlapWarning.js +45 -0
  319. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  320. package/lib/errors/EvalUsageWarning.js +28 -0
  321. package/lib/errors/HookWebpackError.js +5 -5
  322. package/lib/errors/HotspotsWarning.js +57 -0
  323. package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
  324. package/lib/errors/InlinedAssetsWarning.js +36 -0
  325. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  326. package/lib/errors/LargeModulesWarning.js +45 -0
  327. package/lib/errors/LegacyJavascriptWarning.js +48 -0
  328. package/lib/errors/MissingSideEffectsWarning.js +36 -0
  329. package/lib/errors/MixedExportsWarning.js +41 -0
  330. package/lib/errors/ModuleDependencyError.js +13 -16
  331. package/lib/errors/ModuleDependencyWarning.js +5 -15
  332. package/lib/errors/ModuleHashingError.js +1 -1
  333. package/lib/errors/ModuleNotFoundError.js +2 -2
  334. package/lib/errors/ModuleParseError.js +1 -2
  335. package/lib/errors/ModuleRestoreError.js +1 -1
  336. package/lib/errors/ModuleStoreError.js +1 -1
  337. package/lib/errors/NodeStuffInWebError.js +1 -1
  338. package/lib/errors/OsDependentRuleWarning.js +31 -0
  339. package/lib/errors/PureAnnotationsWarning.js +36 -0
  340. package/lib/errors/RedundantDynamicImportWarning.js +31 -0
  341. package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
  342. package/lib/errors/SplitChunksCappedWarning.js +41 -0
  343. package/lib/errors/TinyChunksWarning.js +40 -0
  344. package/lib/errors/TopLevelThisWarning.js +34 -0
  345. package/lib/errors/UnsplitVendorsWarning.js +42 -0
  346. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  347. package/lib/errors/UnusedAliasesWarning.js +29 -0
  348. package/lib/errors/UnusedDefinesWarning.js +29 -0
  349. package/lib/errors/UnusedExternalsWarning.js +29 -0
  350. package/lib/errors/UnusedReexportsWarning.js +42 -0
  351. package/lib/errors/UnusedRuleWarning.js +29 -0
  352. package/lib/errors/WebpackError.js +9 -5
  353. package/lib/errors/deriveStackFromNestedError.js +90 -0
  354. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  355. package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
  356. package/lib/esm/ModuleChunkLoadingPlugin.js +89 -51
  357. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +170 -71
  358. package/lib/hmr/HotModuleReplacement.runtime.js +24 -5
  359. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
  360. package/lib/hmr/LazyCompilationPlugin.js +45 -24
  361. package/lib/hmr/lazyCompilationBackend.js +28 -10
  362. package/lib/hmr/parserHooks.js +56 -0
  363. package/lib/html/HtmlGenerator.js +299 -79
  364. package/lib/html/HtmlModule.js +7 -3
  365. package/lib/html/HtmlModulesPlugin.js +312 -174
  366. package/lib/html/HtmlParser.js +31 -86
  367. package/lib/html/data.js +1928 -0
  368. package/lib/html/htmlMinify.js +288 -0
  369. package/lib/html/syntax.js +7819 -3331
  370. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -3
  371. package/lib/ids/DeterministicChunkIdsPlugin.js +1 -1
  372. package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
  373. package/lib/ids/HashedModuleIdsPlugin.js +6 -2
  374. package/lib/ids/IdHelpers.js +31 -18
  375. package/lib/ids/NamedChunkIdsPlugin.js +1 -1
  376. package/lib/ids/NamedModuleIdsPlugin.js +1 -1
  377. package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
  378. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  379. package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -3
  380. package/lib/ids/OccurrenceModuleIdsPlugin.js +7 -3
  381. package/lib/ids/SyncModuleIdsPlugin.js +4 -4
  382. package/lib/index.js +10 -0
  383. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
  384. package/lib/javascript/BasicEvaluatedExpression.js +18 -14
  385. package/lib/javascript/ChunkFormatHelpers.js +6 -6
  386. package/lib/javascript/ChunkHelpers.js +1 -1
  387. package/lib/javascript/CommonJsChunkFormatPlugin.js +11 -5
  388. package/lib/javascript/EnableChunkLoadingPlugin.js +2 -2
  389. package/lib/javascript/JavascriptGenerator.js +65 -165
  390. package/lib/javascript/JavascriptModule.js +9 -3
  391. package/lib/javascript/JavascriptModulesPlugin.js +181 -162
  392. package/lib/javascript/JavascriptParser.js +291 -112
  393. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  394. package/lib/javascript/ScopeAnalyzer.js +1094 -0
  395. package/lib/javascript/StartupHelpers.js +55 -9
  396. package/lib/javascript/syntax.js +3403 -300
  397. package/lib/json/JsonData.js +8 -4
  398. package/lib/json/JsonGenerator.js +38 -16
  399. package/lib/json/JsonModule.js +7 -3
  400. package/lib/json/JsonModulesPlugin.js +1 -1
  401. package/lib/json/JsonParser.js +5 -6
  402. package/lib/library/AbstractLibraryPlugin.js +20 -14
  403. package/lib/library/AmdLibraryPlugin.js +11 -7
  404. package/lib/library/AssignLibraryPlugin.js +19 -13
  405. package/lib/library/EnableLibraryPlugin.js +2 -2
  406. package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
  407. package/lib/library/JsonpLibraryPlugin.js +11 -7
  408. package/lib/library/ModuleLibraryPlugin.js +256 -64
  409. package/lib/library/SystemLibraryPlugin.js +12 -8
  410. package/lib/library/UmdLibraryPlugin.js +62 -25
  411. package/lib/loaders/LoaderRunner.js +14 -1
  412. package/lib/loaders/loadLoader.js +8 -4
  413. package/lib/logging/createConsoleLogger.js +7 -4
  414. package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
  415. package/lib/node/NodeEnvironmentPlugin.js +17 -3
  416. package/lib/node/NodeSourcePlugin.js +1 -1
  417. package/lib/node/NodeTargetPlugin.js +4 -3
  418. package/lib/node/NodeTemplatePlugin.js +1 -1
  419. package/lib/node/NodeWatchFileSystem.js +70 -9
  420. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
  421. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +81 -20
  422. package/lib/node/ReadFileCompileWasmPlugin.js +37 -17
  423. package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
  424. package/lib/node/nodeConsole.js +7 -3
  425. package/lib/optimize/AggressiveMergingPlugin.js +21 -17
  426. package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
  427. package/lib/optimize/ConcatenatedModule.js +996 -477
  428. package/lib/optimize/ConstExportsPlugin.js +11 -7
  429. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  430. package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
  431. package/lib/optimize/InlineExports.js +9 -5
  432. package/lib/optimize/InnerGraph.js +28 -12
  433. package/lib/optimize/InnerGraphPlugin.js +23 -18
  434. package/lib/optimize/LimitChunkCountPlugin.js +7 -3
  435. package/lib/optimize/MangleExportsPlugin.js +7 -8
  436. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
  437. package/lib/optimize/MinChunkSizePlugin.js +7 -3
  438. package/lib/optimize/ModuleConcatenationPlugin.js +124 -59
  439. package/lib/optimize/RealContentHashPlugin.js +20 -13
  440. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  441. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  442. package/lib/optimize/RuntimeChunkPlugin.js +2 -2
  443. package/lib/optimize/SideEffectsFlagPlugin.js +262 -39
  444. package/lib/optimize/SplitChunksPlugin.js +232 -68
  445. package/lib/performance/AssetsOverSizeLimitWarning.js +10 -2
  446. package/lib/performance/AsyncChunkWaterfallsPlugin.js +136 -0
  447. package/lib/performance/BroadContextsPlugin.js +142 -0
  448. package/lib/performance/CacheEffectivenessPlugin.js +125 -0
  449. package/lib/performance/ConflictingResourceHintsPlugin.js +99 -0
  450. package/lib/performance/DuplicateModulesPlugin.js +93 -0
  451. package/lib/performance/DuplicatePackagesPlugin.js +119 -0
  452. package/lib/performance/DuplicatePackagesWarning.js +84 -0
  453. package/lib/performance/DynamicExportsPlugin.js +120 -0
  454. package/lib/performance/EmbeddedSourceMapsPlugin.js +71 -0
  455. package/lib/performance/EntrypointOverlapPlugin.js +122 -0
  456. package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -1
  457. package/lib/performance/EvalUsagePlugin.js +115 -0
  458. package/lib/performance/HotspotsPlugin.js +296 -0
  459. package/lib/performance/InlinedAssetsPlugin.js +99 -0
  460. package/lib/performance/LargeModulesPlugin.js +126 -0
  461. package/lib/performance/LegacyJavascriptPlugin.js +139 -0
  462. package/lib/performance/MissingSideEffectsPlugin.js +138 -0
  463. package/lib/performance/MixedExportsPlugin.js +136 -0
  464. package/lib/performance/OsDependentRuleWarningPlugin.js +178 -0
  465. package/lib/performance/PureAnnotationsPlugin.js +219 -0
  466. package/lib/performance/RedundantDynamicImportsPlugin.js +225 -0
  467. package/lib/performance/RuntimeInLargeChunkWarning.js +27 -0
  468. package/lib/performance/ScopeHoistingBailoutsPlugin.js +164 -0
  469. package/lib/performance/SizeLimitsPlugin.js +139 -7
  470. package/lib/performance/SplitChunksCappedPlugin.js +99 -0
  471. package/lib/performance/TinyChunksPlugin.js +128 -0
  472. package/lib/performance/TopLevelThisPlugin.js +208 -0
  473. package/lib/performance/UnsplitVendorsPlugin.js +112 -0
  474. package/lib/performance/UnusedAliasesPlugin.js +253 -0
  475. package/lib/performance/UnusedDefinesPlugin.js +87 -0
  476. package/lib/performance/UnusedExternalsPlugin.js +110 -0
  477. package/lib/performance/UnusedReexportsPlugin.js +159 -0
  478. package/lib/performance/UnusedRuleWarningPlugin.js +105 -0
  479. package/lib/performance/getModuleSize.js +22 -0
  480. package/lib/performance/getSourceModules.js +22 -0
  481. package/lib/performance/hasOnlyUnusedExports.js +40 -0
  482. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +24 -10
  483. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +63 -46
  484. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -3
  485. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
  486. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
  487. package/lib/prefetch/ResourceHintPlugin.js +377 -136
  488. package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
  489. package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
  490. package/lib/prefetch/parseResourceHintOptions.js +31 -4
  491. package/lib/rules/BasicEffectRulePlugin.js +2 -2
  492. package/lib/rules/BasicMatcherRulePlugin.js +8 -4
  493. package/lib/rules/GlobMatcherRulePlugin.js +68 -0
  494. package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
  495. package/lib/rules/RuleSetCompiler.js +146 -12
  496. package/lib/rules/UseEffectRulePlugin.js +18 -11
  497. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
  498. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
  499. package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
  500. package/lib/runtime/BaseUriRuntimeModule.js +33 -7
  501. package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
  502. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
  503. package/lib/runtime/CompatRuntimeModule.js +5 -3
  504. package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
  505. package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
  506. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
  507. package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
  508. package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
  509. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
  510. package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
  511. package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
  512. package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
  513. package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
  514. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
  515. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
  516. package/lib/runtime/GlobalRuntimeModule.js +18 -0
  517. package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
  518. package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
  519. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +23 -6
  520. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
  521. package/lib/runtime/NonceRuntimeModule.js +10 -0
  522. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
  523. package/lib/runtime/PublicPathRuntimeModule.js +12 -2
  524. package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
  525. package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
  526. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
  527. package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
  528. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
  529. package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
  530. package/lib/runtime/SystemContextRuntimeModule.js +10 -0
  531. package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
  532. package/lib/runtime/WorkerRuntimeModule.js +11 -1
  533. package/lib/runtime/baseUri.js +63 -0
  534. package/lib/schemes/DataUriPlugin.js +1 -1
  535. package/lib/schemes/FileUriPlugin.js +1 -1
  536. package/lib/schemes/HttpUriPlugin.js +24 -15
  537. package/lib/schemes/VirtualUrlPlugin.js +13 -7
  538. package/lib/serialization/AggregateErrorSerializer.js +1 -1
  539. package/lib/serialization/BinaryMiddleware.js +274 -942
  540. package/lib/serialization/ErrorObjectSerializer.js +1 -1
  541. package/lib/serialization/FileMiddleware.js +305 -66
  542. package/lib/serialization/ObjectMiddleware.js +139 -114
  543. package/lib/serialization/PlainObjectSerializer.js +19 -16
  544. package/lib/sharing/ConsumeSharedModule.js +30 -21
  545. package/lib/sharing/ConsumeSharedPlugin.js +18 -10
  546. package/lib/sharing/ConsumeSharedRuntimeModule.js +6 -9
  547. package/lib/sharing/ProvideSharedModule.js +25 -16
  548. package/lib/sharing/ProvideSharedModuleFactory.js +7 -3
  549. package/lib/sharing/ProvideSharedPlugin.js +8 -4
  550. package/lib/sharing/SharePlugin.js +17 -5
  551. package/lib/sharing/ShareRuntimeModule.js +4 -4
  552. package/lib/sharing/resolveMatchedConfigs.js +9 -6
  553. package/lib/sharing/utils.js +1 -3
  554. package/lib/stats/DefaultStatsFactoryPlugin.js +253 -226
  555. package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
  556. package/lib/stats/DefaultStatsPrinterPlugin.js +60 -192
  557. package/lib/stats/StatsFactory.js +56 -35
  558. package/lib/stats/StatsPrinter.js +16 -12
  559. package/lib/typescript/TypeScriptPlugin.js +12 -14
  560. package/lib/url/URLParserPlugin.js +26 -13
  561. package/lib/util/AsyncQueue.js +4 -3
  562. package/lib/util/Hash.js +5 -1
  563. package/lib/util/LazySet.js +35 -22
  564. package/lib/util/LocConverter.js +36 -13
  565. package/lib/util/SourceProcessor.js +1050 -24
  566. package/lib/util/StringXor.js +1 -1
  567. package/lib/util/chainedImports.js +9 -5
  568. package/lib/util/cleverMerge.js +1 -1
  569. package/lib/util/comparators.js +45 -14
  570. package/lib/util/concatenate.js +203 -77
  571. package/lib/util/conventions.js +5 -1
  572. package/lib/util/createHash.js +2 -2
  573. package/lib/util/createHooksRegistry.js +8 -10
  574. package/lib/util/dataURL.js +225 -1
  575. package/lib/util/extractSourceMap.js +4 -3
  576. package/lib/util/findCaseMismatch.js +139 -0
  577. package/lib/util/formatLocation.js +1 -2
  578. package/lib/util/fs.js +22 -5
  579. package/lib/util/globUtils.js +298 -24
  580. package/lib/util/hash/BatchedHash.js +5 -1
  581. package/lib/util/hash/BulkUpdateHash.js +5 -1
  582. package/lib/util/hash/DebugHash.js +5 -1
  583. package/lib/util/hash/hash-digest.js +6 -2
  584. package/lib/util/identifier.js +25 -1
  585. package/lib/util/implicitTypeLoaderFallback.js +1 -1
  586. package/lib/util/internalSerializables.js +6 -0
  587. package/lib/util/lazyModule.js +56 -0
  588. package/lib/util/makeSerializable.js +7 -3
  589. package/lib/util/matchAlias.js +25 -0
  590. package/lib/util/mimeTypes.js +11 -5
  591. package/lib/util/nonNumericOnlyHash.js +4 -3
  592. package/lib/util/parseJson.js +5 -3
  593. package/lib/util/preloadModuleType.js +32 -0
  594. package/lib/util/registerExternalSerializer.js +7 -5
  595. package/lib/util/runtime.js +2 -2
  596. package/lib/util/semver.js +1 -1
  597. package/lib/util/serialization.js +28 -28
  598. package/lib/util/source.js +2 -2
  599. package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
  600. package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
  601. package/lib/wasm/wasmModuleFilename.js +54 -0
  602. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +41 -21
  603. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +43 -21
  604. package/lib/wasm-async/AsyncWasmModule.js +3 -3
  605. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
  606. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
  607. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
  608. package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
  609. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +34 -8
  610. package/lib/wasm-sync/SyncWasmModule.js +2 -2
  611. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
  612. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
  613. package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
  614. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
  615. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
  616. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
  617. package/lib/wasm-sync/WebAssemblyParser.js +4 -6
  618. package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
  619. package/lib/web/FetchCompileAsyncWasmPlugin.js +101 -19
  620. package/lib/web/FetchCompileWasmPlugin.js +46 -16
  621. package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
  622. package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
  623. package/lib/web/JsonpTemplatePlugin.js +2 -2
  624. package/lib/webpack.js +22 -11
  625. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
  626. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
  627. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  628. package/module.d.ts +1 -0
  629. package/package.json +37 -30
  630. package/schemas/WebpackOptions.check.js +1 -1
  631. package/schemas/WebpackOptions.json +780 -91
  632. package/schemas/plugins/HtmlParserOptions.check.js +1 -1
  633. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  634. package/schemas/plugins/container/ContainerPlugin.json +10 -0
  635. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  636. package/schemas/plugins/container/ModuleFederationPlugin.json +10 -0
  637. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
  638. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  639. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  640. package/types.d.ts +4013 -738
  641. package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
package/README.md CHANGED
@@ -13,8 +13,8 @@ npm install @depup/webpack
13
13
 
14
14
  | Field | Value |
15
15
  |-------|-------|
16
- | Original | [webpack](https://www.npmjs.com/package/webpack) @ 5.109.0 |
17
- | Processed | 2026-07-26 |
16
+ | Original | [webpack](https://www.npmjs.com/package/webpack) @ 5.110.1 |
17
+ | Processed | 2026-08-30 |
18
18
  | Smoke test | passed |
19
19
  | Deps updated | 9 |
20
20
 
@@ -23,13 +23,13 @@ npm install @depup/webpack
23
23
  | Dependency | From | To |
24
24
  |------------|------|-----|
25
25
  | @types/estree | ^1.0.8 | ^1.0.9 |
26
- | acorn | ^8.16.0 | ^8.17.0 |
27
- | browserslist | ^4.28.1 | ^4.28.7 |
26
+ | acorn | ^8.16.0 | ^8.18.0 |
27
+ | browserslist | ^4.28.1 | ^4.28.8 |
28
28
  | chrome-trace-event | ^1.0.2 | ^1.0.4 |
29
- | enhanced-resolve | ^5.24.2 | ^5.24.3 |
30
- | es-module-lexer | ^2.1.0 | ^2.3.1 |
31
- | eslint-scope | 5.1.1 | ^9.1.2 |
29
+ | enhanced-resolve | ^5.24.4 | ^5.24.5 |
30
+ | es-module-lexer | ^2.1.0 | ^2.3.2 |
32
31
  | events | ^3.2.0 | ^3.3.0 |
32
+ | minimizer-webpack-plugin | ^5.7.0 | ^5.8.0 |
33
33
  | tapable | ^2.3.0 | ^2.3.3 |
34
34
 
35
35
  ---
package/bin/webpack.js CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  "use strict";
4
4
 
5
+ // Cache compiled module bytecode on disk (available since Node.js 22.8)
6
+ // eslint-disable-next-line n/no-unsupported-features/node-builtins
7
+ const { enableCompileCache } = require("module");
8
+
9
+ if (enableCompileCache) {
10
+ try {
11
+ enableCompileCache();
12
+ } catch (_error) {
13
+ // Nothing
14
+ }
15
+ }
16
+
5
17
  /**
6
18
  * @param {string} command process to run
7
19
  * @param {string[]} args command line arguments
package/changes.json CHANGED
@@ -6,37 +6,37 @@
6
6
  },
7
7
  "acorn": {
8
8
  "from": "^8.16.0",
9
- "to": "^8.17.0"
9
+ "to": "^8.18.0"
10
10
  },
11
11
  "browserslist": {
12
12
  "from": "^4.28.1",
13
- "to": "^4.28.7"
13
+ "to": "^4.28.8"
14
14
  },
15
15
  "chrome-trace-event": {
16
16
  "from": "^1.0.2",
17
17
  "to": "^1.0.4"
18
18
  },
19
19
  "enhanced-resolve": {
20
- "from": "^5.24.2",
21
- "to": "^5.24.3"
20
+ "from": "^5.24.4",
21
+ "to": "^5.24.5"
22
22
  },
23
23
  "es-module-lexer": {
24
24
  "from": "^2.1.0",
25
- "to": "^2.3.1"
26
- },
27
- "eslint-scope": {
28
- "from": "5.1.1",
29
- "to": "^9.1.2"
25
+ "to": "^2.3.2"
30
26
  },
31
27
  "events": {
32
28
  "from": "^3.2.0",
33
29
  "to": "^3.3.0"
34
30
  },
31
+ "minimizer-webpack-plugin": {
32
+ "from": "^5.7.0",
33
+ "to": "^5.8.0"
34
+ },
35
35
  "tapable": {
36
36
  "from": "^2.3.0",
37
37
  "to": "^2.3.3"
38
38
  }
39
39
  },
40
- "timestamp": "2026-07-26T01:00:06.150Z",
40
+ "timestamp": "2026-08-30T01:01:13.635Z",
41
41
  "totalUpdated": 9
42
42
  }
package/lib/APIPlugin.js CHANGED
@@ -26,27 +26,106 @@ const {
26
26
  } = require("./javascript/JavascriptParserHelpers");
27
27
  const ChunkNameRuntimeModule = require("./runtime/ChunkNameRuntimeModule");
28
28
  const GetFullHashRuntimeModule = require("./runtime/GetFullHashRuntimeModule");
29
+ const memoize = require("./util/memoize");
30
+ const { forEachRuntime } = require("./util/runtime");
29
31
 
30
- /** @typedef {import("./Compiler")} Compiler */
31
- /** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
32
- /** @typedef {import("./Module").BuildInfo} BuildInfo */
33
- /** @typedef {import("./javascript/JavascriptModule").JavascriptModuleBuildInfo} JavascriptModuleBuildInfo */
34
- /** @typedef {import("./Compilation")} Compilation */
35
- /** @typedef {import("./javascript/JavascriptParser")} JavascriptParser */
36
- /** @typedef {import("./javascript/JavascriptParser").Range} Range */
32
+ const getConcatenatedModule = memoize(() =>
33
+ require("./optimize/ConcatenatedModule")
34
+ );
37
35
 
38
- // Compilations where a module reassigns `__webpack_public_path__` at runtime.
39
- // A baked analyzable specifier can't reflect that, so those forms fall back.
40
- /** @type {WeakSet<Compilation>} */
41
- const runtimePublicPathOverride = new WeakSet();
36
+ /** @import Compiler from "./Compiler" */
37
+ /** @import Module, { BuildInfo } from "./Module" */
38
+ /**
39
+ * @import {
40
+ * JavascriptModuleBuildInfo
41
+ * } from "./javascript/JavascriptModule"
42
+ */
43
+ /** @import Compilation from "./Compilation" */
44
+ /** @import ChunkGraph from "./ChunkGraph" */
45
+ /** @import JavascriptParser, { Range } from "./javascript/JavascriptParser" */
46
+
47
+ // Modules that reassign `__webpack_public_path__` at runtime, by compilation. A baked
48
+ // analyzable specifier can't reflect that, so those forms fall back. Also recorded per
49
+ // module in `buildInfo`, because a module restored from the persistent cache is never
50
+ // re-parsed and would otherwise lose the flag.
51
+ /** @type {WeakMap<Compilation, Set<Module>>} */
52
+ const runtimePublicPathOverride = new WeakMap();
42
53
 
43
54
  /**
44
55
  * @param {Compilation} compilation compilation
45
- * @returns {boolean} true when a module reassigns `__webpack_public_path__` at runtime
56
+ * @param {Module} module the module doing the reassigning
57
+ * @returns {void}
58
+ */
59
+ const addRuntimePublicPathOverride = (compilation, module) => {
60
+ const modules = runtimePublicPathOverride.get(compilation);
61
+ if (modules === undefined) {
62
+ runtimePublicPathOverride.set(compilation, new Set([module]));
63
+ } else {
64
+ modules.add(module);
65
+ }
66
+ };
67
+
68
+ /**
69
+ * @param {Compilation} compilation compilation
70
+ * @returns {boolean} true when any module reassigns `__webpack_public_path__` at runtime
46
71
  */
47
72
  const usesRuntimePublicPathOverride = (compilation) =>
48
73
  runtimePublicPathOverride.has(compilation);
49
74
 
75
+ // `__webpack_require__.p` belongs to a runtime, so a reassignment only reaches the
76
+ // runtimes the reassigning module is instantiated in. Computed once the chunk graph
77
+ // can answer that, which is any time code is being generated.
78
+ /** @type {WeakMap<ChunkGraph, Set<string>>} */
79
+ const overriddenRuntimes = new WeakMap();
80
+
81
+ /**
82
+ * Whether the public path is reassigned in any runtime `module` belongs to. Falls back
83
+ * to the whole compilation when there is no chunk graph to place the module in.
84
+ * @param {Compilation} compilation compilation
85
+ * @param {ChunkGraph=} chunkGraph the chunk graph
86
+ * @param {Module=} module the module a reference is emitted into
87
+ * @returns {boolean} true when a reassignment can reach this module's runtimes
88
+ */
89
+ const runtimeUsesPublicPathOverride = (compilation, chunkGraph, module) => {
90
+ const modules = runtimePublicPathOverride.get(compilation);
91
+ if (modules === undefined) return false;
92
+ if (chunkGraph === undefined || module === undefined) return true;
93
+ // Keyed by the chunk graph, not the compilation: `executeModule` asks with a
94
+ // throw-away one whose answer must not outlive it.
95
+ let runtimes = overriddenRuntimes.get(chunkGraph);
96
+ if (runtimes === undefined) {
97
+ /** @type {Set<string>} */
98
+ const collected = new Set();
99
+ const ConcatenatedModule = getConcatenatedModule();
100
+ for (const overriding of modules) {
101
+ // Concatenation may have absorbed the reassigning module, and the chunk graph
102
+ // places only the `ConcatenatedModule` that replaced it.
103
+ for (const runtime of chunkGraph.getModuleRuntimes(
104
+ ConcatenatedModule.getChunkGraphModule(compilation, overriding)
105
+ )) {
106
+ forEachRuntime(runtime, (key) => {
107
+ collected.add(/** @type {string} */ (key));
108
+ });
109
+ }
110
+ }
111
+ runtimes = collected;
112
+ overriddenRuntimes.set(chunkGraph, collected);
113
+ }
114
+ const overridden = runtimes;
115
+ if (overridden.size === 0) return false;
116
+ /** @type {Set<string>} */
117
+ const own = new Set();
118
+ for (const runtime of chunkGraph.getModuleRuntimes(module)) {
119
+ forEachRuntime(runtime, (key) => {
120
+ own.add(/** @type {string} */ (key));
121
+ });
122
+ }
123
+ for (const key of own) {
124
+ if (overridden.has(key)) return true;
125
+ }
126
+ return false;
127
+ };
128
+
50
129
  /**
51
130
  * Returns the replacement definitions used for webpack API identifiers.
52
131
  * @returns {Record<string, { expr: string, req: string[] | null, type?: string, assign: boolean }>} replacements
@@ -107,6 +186,12 @@ function getReplacements() {
107
186
  type: "string",
108
187
  assign: false
109
188
  },
189
+ __webpack_css_server_styles__: {
190
+ expr: `${RuntimeGlobals.getCssServerStyles}()`,
191
+ req: [RuntimeGlobals.getCssServerStyles],
192
+ type: "string",
193
+ assign: false
194
+ },
110
195
  __webpack_chunkname__: {
111
196
  expr: RuntimeGlobals.chunkName,
112
197
  req: [RuntimeGlobals.chunkName],
@@ -173,6 +258,16 @@ class APIPlugin {
173
258
  "__WEBPACK_EXTERNAL_createRequire_require";
174
259
  }
175
260
 
261
+ // A cached module skips parsing, so replay its recorded override flag.
262
+ compilation.hooks.stillValidModule.tap(PLUGIN_NAME, (module) => {
263
+ const buildInfo =
264
+ /** @type {JavascriptModuleBuildInfo | undefined} */
265
+ (module.buildInfo);
266
+ if (buildInfo && buildInfo.usingPublicPathOverride) {
267
+ addRuntimePublicPathOverride(compilation, module);
268
+ }
269
+ });
270
+
176
271
  compilation.dependencyTemplates.set(
177
272
  ConstDependency,
178
273
  new ConstDependency.Template()
@@ -289,10 +384,19 @@ class APIPlugin {
289
384
  throw err;
290
385
  });
291
386
  } else if (key === "__webpack_public_path__") {
292
- // Flag the runtime override (still let the default handler emit
293
- // `__webpack_require__.p = …`); returning nothing keeps that path.
294
- parser.hooks.assign.for(key).tap(PLUGIN_NAME, () => {
295
- runtimePublicPathOverride.add(compilation);
387
+ // Writing the slot needs the scope it lives on, not the runtime
388
+ // module computing the value it replaces; a read asks for that.
389
+ const writePublicPath = toConstantDependency(parser, info.expr, [
390
+ RuntimeGlobals.requireScope
391
+ ]);
392
+ parser.hooks.assign.for(key).tap(PLUGIN_NAME, (expr) => {
393
+ /** @type {JavascriptModuleBuildInfo} */
394
+ (parser.state.module.buildInfo).usingPublicPathOverride = true;
395
+ addRuntimePublicPathOverride(compilation, parser.state.module);
396
+ // A destructuring target is no expression to replace; the read
397
+ // handler still spells the global, with a read's requirement.
398
+ if (expr.left.type !== "Identifier") return;
399
+ return writePublicPath(expr.left);
296
400
  });
297
401
  }
298
402
  if (info.type) {
@@ -413,5 +517,7 @@ class APIPlugin {
413
517
  }
414
518
  }
415
519
 
520
+ APIPlugin.runtimeUsesPublicPathOverride = runtimeUsesPublicPathOverride;
521
+ APIPlugin.usesRuntimePublicPathOverride = usesRuntimePublicPathOverride;
522
+
416
523
  module.exports = APIPlugin;
417
- module.exports.usesRuntimePublicPathOverride = usesRuntimePublicPathOverride;
@@ -8,13 +8,16 @@
8
8
  const DependenciesBlock = require("./DependenciesBlock");
9
9
  const makeSerializable = require("./util/makeSerializable");
10
10
 
11
- /** @typedef {import("./ChunkGroup").ChunkGroupOptions} ChunkGroupOptions */
12
- /** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
13
- /** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext */
14
- /** @typedef {import("./Entrypoint").EntryOptions} EntryOptions */
15
- /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
16
- /** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
17
- /** @typedef {import("./util/Hash")} Hash */
11
+ /** @import { ChunkGroupOptions } from "./ChunkGroup" */
12
+ /** @import { DependencyLocation, UpdateHashContext } from "./Dependency" */
13
+ /** @import { EntryOptions } from "./Entrypoint" */
14
+ /**
15
+ * @import {
16
+ * ObjectDeserializerContext,
17
+ * ObjectSerializerContext
18
+ * } from "./serialization/ObjectMiddleware"
19
+ */
20
+ /** @import Hash from "./util/Hash" */
18
21
 
19
22
  /** @typedef {(ChunkGroupOptions & { entryOptions?: EntryOptions } & { circular?: boolean })} GroupOptions */
20
23
 
@@ -9,7 +9,7 @@ const asyncLib = require("neo-async");
9
9
  const NormalModule = require("./NormalModule");
10
10
  const PrefetchDependency = require("./dependencies/PrefetchDependency");
11
11
 
12
- /** @typedef {import("./Compiler")} Compiler */
12
+ /** @import Compiler from "./Compiler" */
13
13
 
14
14
  const PLUGIN_NAME = "AutomaticPrefetchPlugin";
15
15
 
@@ -10,12 +10,16 @@ const Compilation = require("./Compilation");
10
10
  const ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
11
11
  const Template = require("./Template");
12
12
 
13
- /** @typedef {import("webpack-sources").Source} Source */
14
- /** @typedef {import("../declarations/plugins/BannerPlugin").BannerPluginArgument} BannerPluginArgument */
15
- /** @typedef {import("../declarations/plugins/BannerPlugin").BannerPluginOptions} BannerPluginOptions */
16
- /** @typedef {import("./Compilation").PathDataChunk} PathDataChunk */
17
- /** @typedef {import("./Compiler")} Compiler */
18
- /** @typedef {import("./Chunk")} Chunk */
13
+ /** @import { Source } from "webpack-sources" */
14
+ /**
15
+ * @import {
16
+ * BannerPluginArgument,
17
+ * BannerPluginOptions
18
+ * } from "../declarations/plugins/BannerPlugin"
19
+ */
20
+ /** @import { PathDataChunk } from "./Compilation" */
21
+ /** @import Compiler from "./Compiler" */
22
+ /** @import Chunk from "./Chunk" */
19
23
 
20
24
  /** @typedef {(data: { hash?: string, chunk: Chunk, filename: string }) => string} BannerFunction */
21
25
 
@@ -10,10 +10,9 @@ const asyncLib = require("neo-async");
10
10
  const getLazyHashedEtag = require("./cache/getLazyHashedEtag");
11
11
  const mergeEtags = require("./cache/mergeEtags");
12
12
 
13
- /** @typedef {import("./Cache")} Cache */
14
- /** @typedef {import("./Cache").Etag} Etag */
15
- /** @typedef {import("./cache/getLazyHashedEtag").HashableObject} HashableObject */
16
- /** @typedef {import("./util/Hash").HashFunction} HashFunction */
13
+ /** @import Cache, { Etag } from "./Cache" */
14
+ /** @import { HashableObject } from "./cache/getLazyHashedEtag" */
15
+ /** @import { HashFunction } from "./util/Hash" */
17
16
 
18
17
  /**
19
18
  * Defines the callback cache callback.
@@ -385,6 +384,7 @@ class CacheFacade {
385
384
  }
386
385
  }
387
386
 
387
+ CacheFacade.ItemCacheFacade = ItemCacheFacade;
388
+ CacheFacade.MultiItemCache = MultiItemCache;
389
+
388
390
  module.exports = CacheFacade;
389
- module.exports.ItemCacheFacade = ItemCacheFacade;
390
- module.exports.MultiItemCache = MultiItemCache;
package/lib/Chunk.js CHANGED
@@ -18,19 +18,22 @@ const {
18
18
  const { createArrayToSetDeprecationSet } = require("./util/deprecation");
19
19
  const { mergeRuntime } = require("./util/runtime");
20
20
 
21
- /** @typedef {import("./ChunkGraph").ChunkFilterPredicate} ChunkFilterPredicate */
22
- /** @typedef {import("./ChunkGraph").ChunkSizeOptions} ChunkSizeOptions */
23
- /** @typedef {import("./ChunkGraph").ModuleFilterPredicate} ModuleFilterPredicate */
24
- /** @typedef {import("./ChunkGraph").ModuleId} ModuleId */
25
- /** @typedef {import("./ChunkGroup")} ChunkGroup */
26
- /** @typedef {import("./ChunkGroup").ChunkGroupOptions} ChunkGroupOptions */
27
- /** @typedef {import("./Entrypoint").EntryOptions} EntryOptions */
28
- /** @typedef {import("./Module")} Module */
29
- /** @typedef {import("./Compilation").PathDataChunk} PathDataChunk */
21
+ /**
22
+ * @import {
23
+ * ChunkFilterPredicate,
24
+ * ChunkSizeOptions,
25
+ * ModuleFilterPredicate,
26
+ * ModuleId
27
+ * } from "./ChunkGraph"
28
+ */
29
+ /** @import ChunkGroup from "./ChunkGroup" */
30
+ /** @import { EntryOptions } from "./Entrypoint" */
31
+ /** @import Module from "./Module" */
32
+ /** @import { PathDataChunk } from "./Compilation" */
30
33
  /** @typedef {import("./TemplatedPathPlugin").TemplatePathFn<PathDataChunk>} ChunkFilenameTemplateFn */
31
34
  /** @typedef {string | ChunkFilenameTemplateFn} ChunkFilenameTemplate */
32
- /** @typedef {import("./util/Hash")} Hash */
33
- /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
35
+ /** @import Hash from "./util/Hash" */
36
+ /** @import { RuntimeSpec } from "./util/runtime" */
34
37
 
35
38
  /** @typedef {string | null} ChunkName */
36
39
  /** @typedef {string | number} ChunkId */
package/lib/ChunkGraph.js CHANGED
@@ -29,29 +29,46 @@ const {
29
29
  runtimeToString
30
30
  } = require("./util/runtime");
31
31
 
32
- /** @typedef {import("./AsyncDependenciesBlock")} AsyncDependenciesBlock */
33
- /** @typedef {import("./Chunk")} Chunk */
34
- /** @typedef {import("./Chunk").Chunks} Chunks */
35
- /** @typedef {import("./Chunk").Entrypoints} Entrypoints */
36
- /** @typedef {import("./Chunk").ChunkId} ChunkId */
37
- /** @typedef {import("./ChunkGroup")} ChunkGroup */
38
- /** @typedef {import("./Module")} Module */
39
- /** @typedef {import("./Module").SourceType} SourceType */
40
- /** @typedef {import("./Module").SourceTypes} SourceTypes */
41
- /** @typedef {import("./Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */
42
- /** @typedef {import("./Module").RuntimeRequirements} RuntimeRequirements */
43
- /** @typedef {import("./ModuleGraph")} ModuleGraph */
44
- /** @typedef {import("./ModuleGraphConnection").ConnectionState} ConnectionState */
45
- /** @typedef {import("./RuntimeModule")} RuntimeModule */
46
- /** @typedef {import("./util/Hash").HashFunction} HashFunction */
47
- /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
48
- /** @typedef {import("./javascript/JavascriptModule").JavascriptModuleBuildMeta} JavascriptModuleBuildMeta */
32
+ /** @import AsyncDependenciesBlock from "./AsyncDependenciesBlock" */
33
+ /** @import Chunk, { Chunks, Entrypoints, ChunkId } from "./Chunk" */
34
+ /** @import ChunkGroup from "./ChunkGroup" */
35
+ /**
36
+ * @import Module, {
37
+ * SourceType,
38
+ * SourceTypes,
39
+ * ReadOnlyRuntimeRequirements,
40
+ * RuntimeRequirements
41
+ * } from "./Module"
42
+ */
43
+ /** @import ModuleGraph from "./ModuleGraph" */
44
+ /** @import { ConnectionState } from "./ModuleGraphConnection" */
45
+ /** @import RuntimeModule from "./RuntimeModule" */
46
+ /** @import { HashFunction } from "./util/Hash" */
47
+ /** @import { RuntimeSpec } from "./util/runtime" */
48
+ /**
49
+ * @import {
50
+ * JavascriptModuleBuildMeta
51
+ * } from "./javascript/JavascriptModule"
52
+ */
49
53
 
50
54
  /** @type {ReadonlySet<string>} */
51
55
  const EMPTY_SET = new Set();
52
56
 
53
57
  const ZERO_BIG_INT = BigInt(0);
54
58
 
59
+ /**
60
+ * Active state to string. Module-level (depends only on ModuleGraphConnection)
61
+ * so it isn't re-allocated on every getModuleGraphHash call, incl. cache hits.
62
+ * @param {ConnectionState} state state
63
+ * @returns {"F" | "T" | "O"} result
64
+ */
65
+ const activeStateToString = (state) => {
66
+ if (state === false) return "F";
67
+ if (state === true) return "T";
68
+ if (state === ModuleGraphConnection.TRANSITIVE_ONLY) return "O";
69
+ throw new Error("Not implemented active state");
70
+ };
71
+
55
72
  const compareModuleIterables = compareIterables(compareModulesByIdentifier);
56
73
 
57
74
  /** @typedef {(c: Chunk, chunkGraph: ChunkGraph) => boolean} ChunkFilterPredicate */
@@ -315,6 +332,11 @@ class ChunkGraph {
315
332
  /** @type {ModuleGraph} */
316
333
  this.moduleGraph = moduleGraph;
317
334
 
335
+ // build-time execution (`Compilation.executeModule`) runs modules in a
336
+ // CommonJS-style vm wrapper, so templates must not emit ESM-only syntax
337
+ /** @type {boolean} */
338
+ this.buildTimeExecution = false;
339
+
318
340
  /** @type {HashFunction} */
319
341
  this._hashFunction = hashFunction;
320
342
 
@@ -1821,22 +1843,11 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
1821
1843
  cgm.graphHashesWithConnections = new RuntimeSpecMap();
1822
1844
  }
1823
1845
 
1824
- /**
1825
- * Active state to string.
1826
- * @param {ConnectionState} state state
1827
- * @returns {"F" | "T" | "O"} result
1828
- */
1829
- const activeStateToString = (state) => {
1830
- if (state === false) return "F";
1831
- if (state === true) return "T";
1832
- if (state === ModuleGraphConnection.TRANSITIVE_ONLY) return "O";
1833
- throw new Error("Not implemented active state");
1834
- };
1835
- const strict =
1836
- module.buildMeta &&
1837
- /** @type {JavascriptModuleBuildMeta} */ (module.buildMeta)
1838
- .strictHarmonyModule;
1839
1846
  return cgm.graphHashesWithConnections.provide(runtime, () => {
1847
+ const strict =
1848
+ module.buildMeta &&
1849
+ /** @type {JavascriptModuleBuildMeta} */ (module.buildMeta)
1850
+ .strictHarmonyModule;
1840
1851
  const graphHash = this._getModuleGraphHashBigInt(
1841
1852
  cgm,
1842
1853
  module,
package/lib/ChunkGroup.js CHANGED
@@ -13,13 +13,13 @@ const {
13
13
  compareLocations
14
14
  } = require("./util/comparators");
15
15
 
16
- /** @typedef {import("./AsyncDependenciesBlock")} AsyncDependenciesBlock */
17
- /** @typedef {import("./Chunk")} Chunk */
18
- /** @typedef {import("./ChunkGraph")} ChunkGraph */
19
- /** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
20
- /** @typedef {import("./Entrypoint")} Entrypoint */
21
- /** @typedef {import("./Module")} Module */
22
- /** @typedef {import("./ModuleGraph")} ModuleGraph */
16
+ /** @import AsyncDependenciesBlock from "./AsyncDependenciesBlock" */
17
+ /** @import Chunk from "./Chunk" */
18
+ /** @import ChunkGraph from "./ChunkGraph" */
19
+ /** @import { DependencyLocation } from "./Dependency" */
20
+ /** @import Entrypoint from "./Entrypoint" */
21
+ /** @import Module from "./Module" */
22
+ /** @import ModuleGraph from "./ModuleGraph" */
23
23
 
24
24
  /** @typedef {{ module: Module | null, loc: DependencyLocation, request: string }} OriginRecord */
25
25
 
@@ -6,29 +6,27 @@
6
6
  "use strict";
7
7
 
8
8
  const util = require("util");
9
- const memoize = require("./util/memoize");
9
+ const JavascriptModulesPlugin = require("./javascript/JavascriptModulesPlugin");
10
10
 
11
- /** @typedef {import("tapable").Tap} Tap */
12
- /** @typedef {import("./config/defaults").OutputNormalizedWithDefaults} OutputOptions */
13
- /** @typedef {import("./Chunk")} Chunk */
14
- /** @typedef {import("./Compilation")} Compilation */
15
- /** @typedef {import("./Compilation").ChunkHashContext} ChunkHashContext */
16
- /** @typedef {import("./Compilation").Hash} Hash */
17
- /** @typedef {import("./Compilation").RenderManifestEntry} RenderManifestEntry */
18
- /** @typedef {import("./Compilation").RenderManifestOptions} RenderManifestOptions */
19
- /** @typedef {import("./Compilation").Source} Source */
20
- /** @typedef {import("./ModuleTemplate")} ModuleTemplate */
21
- /** @typedef {import("./javascript/JavascriptModulesPlugin").RenderContext} RenderContext */
11
+ /** @import { Tap } from "tapable" */
12
+ /** @import { Source } from "webpack-sources" */
13
+ /**
14
+ * @import {
15
+ * OutputNormalizedWithDefaults as OutputOptions
16
+ * } from "./config/defaults"
17
+ */
18
+ /** @import Chunk from "./Chunk" */
19
+ /** @import Compilation, { ChunkHashContext } from "./Compilation" */
20
+ /** @import ModuleTemplate from "./ModuleTemplate" */
21
+ /** @import { RenderContext } from "./javascript/JavascriptModulesPlugin" */
22
+ /** @import { RenderManifestEntry, RenderManifestOptions } from "./Template" */
23
+ /** @import Hash from "./util/Hash" */
22
24
  /**
23
25
  * Defines the if set type used by this module.
24
26
  * @template T
25
27
  * @typedef {import("tapable").IfSet<T>} IfSet
26
28
  */
27
29
 
28
- const getJavascriptModulesPlugin = memoize(() =>
29
- require("./javascript/JavascriptModulesPlugin")
30
- );
31
-
32
30
  // TODO webpack 6 remove this class
33
31
  class ChunkTemplate {
34
32
  /**
@@ -69,15 +67,11 @@ class ChunkTemplate {
69
67
  * @param {(source: Source, moduleTemplate: ModuleTemplate, renderContext: RenderContext) => Source} fn function
70
68
  */
71
69
  (options, fn) => {
72
- getJavascriptModulesPlugin()
73
- .getCompilationHooks(compilation)
74
- .renderChunk.tap(options, (source, renderContext) =>
75
- fn(
76
- source,
77
- compilation.moduleTemplates.javascript,
78
- renderContext
79
- )
80
- );
70
+ JavascriptModulesPlugin.getCompilationHooks(
71
+ compilation
72
+ ).renderChunk.tap(options, (source, renderContext) =>
73
+ fn(source, compilation.moduleTemplates.javascript, renderContext)
74
+ );
81
75
  },
82
76
  "ChunkTemplate.hooks.modules is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderChunk instead)",
83
77
  "DEP_WEBPACK_CHUNK_TEMPLATE_MODULES"
@@ -92,15 +86,11 @@ class ChunkTemplate {
92
86
  * @param {(source: Source, moduleTemplate: ModuleTemplate, renderContext: RenderContext) => Source} fn function
93
87
  */
94
88
  (options, fn) => {
95
- getJavascriptModulesPlugin()
96
- .getCompilationHooks(compilation)
97
- .renderChunk.tap(options, (source, renderContext) =>
98
- fn(
99
- source,
100
- compilation.moduleTemplates.javascript,
101
- renderContext
102
- )
103
- );
89
+ JavascriptModulesPlugin.getCompilationHooks(
90
+ compilation
91
+ ).renderChunk.tap(options, (source, renderContext) =>
92
+ fn(source, compilation.moduleTemplates.javascript, renderContext)
93
+ );
104
94
  },
105
95
  "ChunkTemplate.hooks.render is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderChunk instead)",
106
96
  "DEP_WEBPACK_CHUNK_TEMPLATE_RENDER"
@@ -115,9 +105,9 @@ class ChunkTemplate {
115
105
  * @param {(source: Source, chunk: Chunk) => Source} fn function
116
106
  */
117
107
  (options, fn) => {
118
- getJavascriptModulesPlugin()
119
- .getCompilationHooks(compilation)
120
- .render.tap(options, (source, renderContext) => {
108
+ JavascriptModulesPlugin.getCompilationHooks(compilation).render.tap(
109
+ options,
110
+ (source, renderContext) => {
121
111
  if (
122
112
  renderContext.chunkGraph.getNumberOfEntryModules(
123
113
  renderContext.chunk
@@ -127,7 +117,8 @@ class ChunkTemplate {
127
117
  return source;
128
118
  }
129
119
  return fn(source, renderContext.chunk);
130
- });
120
+ }
121
+ );
131
122
  },
132
123
  "ChunkTemplate.hooks.renderWithEntry is deprecated (use JavascriptModulesPlugin.getCompilationHooks().render instead)",
133
124
  "DEP_WEBPACK_CHUNK_TEMPLATE_RENDER_WITH_ENTRY"
@@ -157,12 +148,12 @@ class ChunkTemplate {
157
148
  * @param {(hash: Hash, chunk: Chunk, chunkHashContext: ChunkHashContext) => void} fn function
158
149
  */
159
150
  (options, fn) => {
160
- getJavascriptModulesPlugin()
161
- .getCompilationHooks(compilation)
162
- .chunkHash.tap(options, (chunk, hash, context) => {
163
- if (chunk.hasRuntime()) return;
164
- fn(hash, chunk, context);
165
- });
151
+ JavascriptModulesPlugin.getCompilationHooks(
152
+ compilation
153
+ ).chunkHash.tap(options, (chunk, hash, context) => {
154
+ if (chunk.hasRuntime()) return;
155
+ fn(hash, chunk, context);
156
+ });
166
157
  },
167
158
  "ChunkTemplate.hooks.hashForChunk is deprecated (use JavascriptModulesPlugin.getCompilationHooks().chunkHash instead)",
168
159
  "DEP_WEBPACK_CHUNK_TEMPLATE_HASH_FOR_CHUNK"