@depup/webpack 5.109.2-depup.0 → 5.110.3-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 (647) 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 +46 -35
  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 +107 -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 +91 -26
  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 +111 -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 +40 -49
  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 +152 -103
  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 +335 -169
  89. package/lib/RuntimeTemplate.js +2761 -316
  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 +12 -6
  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 +270 -78
  134. package/lib/config/defineConfig.js +10 -2
  135. package/lib/config/getClaimedAssetTypes.js +65 -0
  136. package/lib/config/normalization.js +46 -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 +84 -32
  154. package/lib/css/CssModule.js +10 -7
  155. package/lib/css/CssModulesPlugin.js +172 -100
  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 +5334 -0
  160. package/lib/css/syntax.js +9647 -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 +170 -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 +24 -11
  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 +23 -14
  210. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +80 -12
  211. package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
  212. package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
  213. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +286 -80
  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 +121 -60
  218. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +124 -38
  219. package/lib/dependencies/HarmonyImportGuard.js +20 -30
  220. package/lib/dependencies/HarmonyImportSideEffectDependency.js +152 -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 +49 -31
  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 +45 -5
  230. package/lib/dependencies/ImportDependency.js +33 -50
  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 +73 -49
  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 +50 -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 +47 -28
  290. package/lib/dependencies/WorkerDependency.js +22 -22
  291. package/lib/dependencies/WorkletDependency.js +18 -21
  292. package/lib/dependencies/getFunctionExpression.js +8 -4
  293. package/lib/dependencies/importOptionsCheck.js +47 -0
  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/DotenvFileError.js +29 -0
  316. package/lib/errors/DuplicateModulesWarning.js +45 -0
  317. package/lib/errors/DynamicExportsWarning.js +30 -0
  318. package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
  319. package/lib/errors/EntrypointOverlapWarning.js +45 -0
  320. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  321. package/lib/errors/EvalUsageWarning.js +28 -0
  322. package/lib/errors/HookWebpackError.js +5 -5
  323. package/lib/errors/HotspotsWarning.js +57 -0
  324. package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
  325. package/lib/errors/ImportedBindingAssignmentError.js +30 -0
  326. package/lib/errors/InlinedAssetsWarning.js +36 -0
  327. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  328. package/lib/errors/LargeModulesWarning.js +45 -0
  329. package/lib/errors/LegacyJavascriptWarning.js +48 -0
  330. package/lib/errors/MissingSideEffectsWarning.js +36 -0
  331. package/lib/errors/MixedExportsWarning.js +41 -0
  332. package/lib/errors/ModuleDependencyError.js +13 -16
  333. package/lib/errors/ModuleDependencyWarning.js +5 -15
  334. package/lib/errors/ModuleHashingError.js +1 -1
  335. package/lib/errors/ModuleNotFoundError.js +2 -2
  336. package/lib/errors/ModuleParseError.js +1 -2
  337. package/lib/errors/ModuleRestoreError.js +1 -1
  338. package/lib/errors/ModuleStoreError.js +1 -1
  339. package/lib/errors/NodeStuffInWebError.js +1 -1
  340. package/lib/errors/OsDependentRuleWarning.js +31 -0
  341. package/lib/errors/PureAnnotationsWarning.js +36 -0
  342. package/lib/errors/RedundantDynamicImportWarning.js +31 -0
  343. package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
  344. package/lib/errors/SplitChunksCappedWarning.js +41 -0
  345. package/lib/errors/TinyChunksWarning.js +40 -0
  346. package/lib/errors/TopLevelThisWarning.js +34 -0
  347. package/lib/errors/UnsplitVendorsWarning.js +42 -0
  348. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  349. package/lib/errors/UnusedAliasesWarning.js +29 -0
  350. package/lib/errors/UnusedDefinesWarning.js +29 -0
  351. package/lib/errors/UnusedExternalsWarning.js +29 -0
  352. package/lib/errors/UnusedReexportsWarning.js +42 -0
  353. package/lib/errors/UnusedRuleWarning.js +29 -0
  354. package/lib/errors/WebpackError.js +9 -5
  355. package/lib/errors/deriveStackFromNestedError.js +90 -0
  356. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  357. package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
  358. package/lib/esm/ModuleChunkLoadingPlugin.js +86 -51
  359. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +161 -62
  360. package/lib/hmr/HotModuleReplacement.runtime.js +24 -5
  361. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
  362. package/lib/hmr/LazyCompilationPlugin.js +45 -24
  363. package/lib/hmr/lazyCompilationBackend.js +9 -6
  364. package/lib/hmr/parserHooks.js +56 -0
  365. package/lib/html/HtmlGenerator.js +277 -77
  366. package/lib/html/HtmlModule.js +7 -3
  367. package/lib/html/HtmlModulesPlugin.js +366 -200
  368. package/lib/html/HtmlParser.js +31 -86
  369. package/lib/html/data.js +1928 -0
  370. package/lib/html/htmlMinify.js +288 -0
  371. package/lib/html/syntax.js +6034 -1384
  372. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -3
  373. package/lib/ids/DeterministicChunkIdsPlugin.js +1 -1
  374. package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
  375. package/lib/ids/HashedModuleIdsPlugin.js +6 -2
  376. package/lib/ids/IdHelpers.js +7 -8
  377. package/lib/ids/NamedChunkIdsPlugin.js +1 -1
  378. package/lib/ids/NamedModuleIdsPlugin.js +1 -1
  379. package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
  380. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  381. package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -3
  382. package/lib/ids/OccurrenceModuleIdsPlugin.js +7 -3
  383. package/lib/ids/SyncModuleIdsPlugin.js +4 -4
  384. package/lib/index.js +10 -0
  385. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
  386. package/lib/javascript/BasicEvaluatedExpression.js +18 -14
  387. package/lib/javascript/ChunkFormatHelpers.js +6 -6
  388. package/lib/javascript/ChunkHelpers.js +1 -1
  389. package/lib/javascript/CommonJsChunkFormatPlugin.js +11 -5
  390. package/lib/javascript/EnableChunkLoadingPlugin.js +2 -2
  391. package/lib/javascript/JavascriptGenerator.js +65 -165
  392. package/lib/javascript/JavascriptModule.js +9 -3
  393. package/lib/javascript/JavascriptModulesPlugin.js +103 -123
  394. package/lib/javascript/JavascriptParser.js +242 -99
  395. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  396. package/lib/javascript/ScopeAnalyzer.js +1094 -0
  397. package/lib/javascript/StartupHelpers.js +55 -9
  398. package/lib/javascript/syntax.js +2678 -232
  399. package/lib/json/JsonData.js +8 -4
  400. package/lib/json/JsonGenerator.js +38 -16
  401. package/lib/json/JsonModule.js +7 -3
  402. package/lib/json/JsonModulesPlugin.js +1 -1
  403. package/lib/json/JsonParser.js +5 -6
  404. package/lib/library/AbstractLibraryPlugin.js +20 -14
  405. package/lib/library/AmdLibraryPlugin.js +11 -7
  406. package/lib/library/AssignLibraryPlugin.js +19 -13
  407. package/lib/library/EnableLibraryPlugin.js +2 -2
  408. package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
  409. package/lib/library/JsonpLibraryPlugin.js +11 -7
  410. package/lib/library/ModuleLibraryPlugin.js +256 -64
  411. package/lib/library/SystemLibraryPlugin.js +12 -8
  412. package/lib/library/UmdLibraryPlugin.js +62 -25
  413. package/lib/loaders/LoaderRunner.js +47 -6
  414. package/lib/loaders/loadLoader.js +8 -4
  415. package/lib/logging/createConsoleLogger.js +7 -4
  416. package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
  417. package/lib/node/NodeEnvironmentPlugin.js +17 -3
  418. package/lib/node/NodeSourcePlugin.js +1 -1
  419. package/lib/node/NodeTargetPlugin.js +4 -3
  420. package/lib/node/NodeTemplatePlugin.js +1 -1
  421. package/lib/node/NodeWatchFileSystem.js +70 -9
  422. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
  423. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +65 -19
  424. package/lib/node/ReadFileCompileWasmPlugin.js +28 -16
  425. package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
  426. package/lib/node/nodeConsole.js +7 -3
  427. package/lib/optimize/AggressiveMergingPlugin.js +2 -2
  428. package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
  429. package/lib/optimize/ConcatenatedModule.js +1030 -476
  430. package/lib/optimize/ConstExportsPlugin.js +16 -7
  431. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  432. package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
  433. package/lib/optimize/InlineExports.js +130 -5
  434. package/lib/optimize/InnerGraph.js +28 -12
  435. package/lib/optimize/InnerGraphPlugin.js +23 -18
  436. package/lib/optimize/LimitChunkCountPlugin.js +7 -3
  437. package/lib/optimize/MangleExportsPlugin.js +7 -8
  438. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
  439. package/lib/optimize/MinChunkSizePlugin.js +7 -3
  440. package/lib/optimize/ModuleConcatenationPlugin.js +51 -35
  441. package/lib/optimize/RealContentHashPlugin.js +121 -41
  442. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  443. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  444. package/lib/optimize/RuntimeChunkPlugin.js +2 -2
  445. package/lib/optimize/SideEffectsFlagPlugin.js +262 -39
  446. package/lib/optimize/SplitChunksPlugin.js +86 -24
  447. package/lib/performance/AssetsOverSizeLimitWarning.js +10 -2
  448. package/lib/performance/AsyncChunkWaterfallsPlugin.js +136 -0
  449. package/lib/performance/BroadContextsPlugin.js +142 -0
  450. package/lib/performance/CacheEffectivenessPlugin.js +125 -0
  451. package/lib/performance/ConflictingResourceHintsPlugin.js +99 -0
  452. package/lib/performance/DuplicateModulesPlugin.js +93 -0
  453. package/lib/performance/DuplicatePackagesPlugin.js +119 -0
  454. package/lib/performance/DuplicatePackagesWarning.js +84 -0
  455. package/lib/performance/DynamicExportsPlugin.js +120 -0
  456. package/lib/performance/EmbeddedSourceMapsPlugin.js +71 -0
  457. package/lib/performance/EntrypointOverlapPlugin.js +122 -0
  458. package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -1
  459. package/lib/performance/EvalUsagePlugin.js +115 -0
  460. package/lib/performance/HotspotsPlugin.js +296 -0
  461. package/lib/performance/InlinedAssetsPlugin.js +99 -0
  462. package/lib/performance/LargeModulesPlugin.js +126 -0
  463. package/lib/performance/LegacyJavascriptPlugin.js +139 -0
  464. package/lib/performance/MissingSideEffectsPlugin.js +138 -0
  465. package/lib/performance/MixedExportsPlugin.js +136 -0
  466. package/lib/performance/OsDependentRuleWarningPlugin.js +178 -0
  467. package/lib/performance/PureAnnotationsPlugin.js +219 -0
  468. package/lib/performance/RedundantDynamicImportsPlugin.js +225 -0
  469. package/lib/performance/RuntimeInLargeChunkWarning.js +27 -0
  470. package/lib/performance/ScopeHoistingBailoutsPlugin.js +164 -0
  471. package/lib/performance/SizeLimitsPlugin.js +139 -7
  472. package/lib/performance/SplitChunksCappedPlugin.js +99 -0
  473. package/lib/performance/TinyChunksPlugin.js +128 -0
  474. package/lib/performance/TopLevelThisPlugin.js +208 -0
  475. package/lib/performance/UnsplitVendorsPlugin.js +112 -0
  476. package/lib/performance/UnusedAliasesPlugin.js +253 -0
  477. package/lib/performance/UnusedDefinesPlugin.js +87 -0
  478. package/lib/performance/UnusedExternalsPlugin.js +110 -0
  479. package/lib/performance/UnusedReexportsPlugin.js +159 -0
  480. package/lib/performance/UnusedRuleWarningPlugin.js +105 -0
  481. package/lib/performance/getModuleSize.js +22 -0
  482. package/lib/performance/getSourceModules.js +22 -0
  483. package/lib/performance/hasOnlyUnusedExports.js +40 -0
  484. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +24 -10
  485. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +63 -46
  486. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -3
  487. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
  488. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
  489. package/lib/prefetch/ResourceHintPlugin.js +295 -79
  490. package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
  491. package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
  492. package/lib/prefetch/parseResourceHintOptions.js +31 -4
  493. package/lib/rules/BasicEffectRulePlugin.js +2 -2
  494. package/lib/rules/BasicMatcherRulePlugin.js +8 -4
  495. package/lib/rules/GlobMatcherRulePlugin.js +68 -0
  496. package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
  497. package/lib/rules/RuleSetCompiler.js +146 -12
  498. package/lib/rules/UseEffectRulePlugin.js +18 -11
  499. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
  500. package/lib/runtime/AsyncModuleRuntimeModule.js +6 -2
  501. package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
  502. package/lib/runtime/BaseUriRuntimeModule.js +33 -7
  503. package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
  504. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
  505. package/lib/runtime/CompatRuntimeModule.js +5 -3
  506. package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
  507. package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
  508. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
  509. package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
  510. package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
  511. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
  512. package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
  513. package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
  514. package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
  515. package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
  516. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
  517. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
  518. package/lib/runtime/GlobalRuntimeModule.js +18 -0
  519. package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
  520. package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
  521. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +34 -7
  522. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
  523. package/lib/runtime/NonceRuntimeModule.js +10 -0
  524. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
  525. package/lib/runtime/PublicPathRuntimeModule.js +12 -2
  526. package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
  527. package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
  528. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
  529. package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
  530. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
  531. package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
  532. package/lib/runtime/SystemContextRuntimeModule.js +10 -0
  533. package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
  534. package/lib/runtime/WorkerRuntimeModule.js +11 -1
  535. package/lib/runtime/baseUri.js +63 -0
  536. package/lib/schemes/DataUriPlugin.js +1 -1
  537. package/lib/schemes/FileUriPlugin.js +1 -1
  538. package/lib/schemes/HttpUriPlugin.js +46 -20
  539. package/lib/schemes/VirtualUrlPlugin.js +13 -7
  540. package/lib/serialization/AggregateErrorSerializer.js +1 -1
  541. package/lib/serialization/BinaryMiddleware.js +4 -4
  542. package/lib/serialization/ErrorObjectSerializer.js +1 -1
  543. package/lib/serialization/FileMiddleware.js +22 -9
  544. package/lib/serialization/ObjectMiddleware.js +139 -114
  545. package/lib/serialization/PlainObjectSerializer.js +19 -16
  546. package/lib/sharing/ConsumeSharedModule.js +30 -21
  547. package/lib/sharing/ConsumeSharedPlugin.js +18 -10
  548. package/lib/sharing/ConsumeSharedRuntimeModule.js +6 -9
  549. package/lib/sharing/ProvideSharedModule.js +25 -16
  550. package/lib/sharing/ProvideSharedModuleFactory.js +7 -3
  551. package/lib/sharing/ProvideSharedPlugin.js +8 -4
  552. package/lib/sharing/SharePlugin.js +17 -5
  553. package/lib/sharing/ShareRuntimeModule.js +4 -4
  554. package/lib/sharing/resolveMatchedConfigs.js +9 -6
  555. package/lib/sharing/utils.js +1 -3
  556. package/lib/stats/DefaultStatsFactoryPlugin.js +50 -29
  557. package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
  558. package/lib/stats/DefaultStatsPrinterPlugin.js +36 -26
  559. package/lib/stats/StatsFactory.js +25 -26
  560. package/lib/stats/StatsPrinter.js +16 -12
  561. package/lib/typescript/TypeScriptPlugin.js +20 -24
  562. package/lib/url/URLParserPlugin.js +26 -13
  563. package/lib/util/ArrayQueue.js +3 -3
  564. package/lib/util/AsyncQueue.js +4 -3
  565. package/lib/util/Hash.js +5 -1
  566. package/lib/util/LazySet.js +35 -22
  567. package/lib/util/LocConverter.js +36 -13
  568. package/lib/util/SourceProcessor.js +1066 -24
  569. package/lib/util/StringXor.js +1 -1
  570. package/lib/util/URLAbsoluteSpecifier.js +3 -1
  571. package/lib/util/chainedImports.js +9 -5
  572. package/lib/util/cleverMerge.js +1 -1
  573. package/lib/util/comparators.js +45 -14
  574. package/lib/util/concatenate.js +203 -77
  575. package/lib/util/conventions.js +10 -2
  576. package/lib/util/createHash.js +2 -2
  577. package/lib/util/createHooksRegistry.js +8 -10
  578. package/lib/util/createMappings.js +25 -3
  579. package/lib/util/dataURL.js +225 -1
  580. package/lib/util/extractSourceMap.js +4 -3
  581. package/lib/util/findCaseMismatch.js +139 -0
  582. package/lib/util/formatLocation.js +1 -2
  583. package/lib/util/fs.js +22 -5
  584. package/lib/util/globUtils.js +298 -24
  585. package/lib/util/hash/BatchedHash.js +5 -1
  586. package/lib/util/hash/BulkUpdateHash.js +5 -1
  587. package/lib/util/hash/DebugHash.js +5 -1
  588. package/lib/util/hash/hash-digest.js +6 -2
  589. package/lib/util/identifier.js +4 -0
  590. package/lib/util/implicitTypeLoaderFallback.js +1 -1
  591. package/lib/util/internalSerializables.js +8 -0
  592. package/lib/util/lazyModule.js +56 -0
  593. package/lib/util/makeSerializable.js +7 -3
  594. package/lib/util/matchAlias.js +25 -0
  595. package/lib/util/mimeTypes.js +11 -5
  596. package/lib/util/nonNumericOnlyHash.js +4 -3
  597. package/lib/util/parseJson.js +5 -3
  598. package/lib/util/preloadModuleType.js +32 -0
  599. package/lib/util/registerExternalSerializer.js +7 -5
  600. package/lib/util/removeBOM.js +82 -1
  601. package/lib/util/runtime.js +2 -2
  602. package/lib/util/semver.js +1 -1
  603. package/lib/util/serialization.js +28 -28
  604. package/lib/util/source.js +2 -2
  605. package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
  606. package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
  607. package/lib/wasm/wasmModuleFilename.js +54 -0
  608. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +43 -21
  609. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +45 -21
  610. package/lib/wasm-async/AsyncWasmModule.js +3 -3
  611. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
  612. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
  613. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
  614. package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
  615. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +29 -8
  616. package/lib/wasm-sync/SyncWasmModule.js +2 -2
  617. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
  618. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
  619. package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
  620. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
  621. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
  622. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
  623. package/lib/wasm-sync/WebAssemblyParser.js +4 -6
  624. package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
  625. package/lib/web/FetchCompileAsyncWasmPlugin.js +105 -19
  626. package/lib/web/FetchCompileWasmPlugin.js +48 -16
  627. package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
  628. package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
  629. package/lib/web/JsonpTemplatePlugin.js +2 -2
  630. package/lib/webpack.js +22 -11
  631. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
  632. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
  633. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  634. package/module.d.ts +1 -0
  635. package/package.json +32 -25
  636. package/schemas/WebpackOptions.check.js +1 -1
  637. package/schemas/WebpackOptions.json +667 -34
  638. package/schemas/plugins/HtmlParserOptions.check.js +1 -1
  639. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  640. package/schemas/plugins/container/ContainerPlugin.json +10 -0
  641. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  642. package/schemas/plugins/container/ModuleFederationPlugin.json +10 -0
  643. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
  644. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  645. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  646. package/types.d.ts +3223 -465
  647. 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.2 |
17
- | Processed | 2026-08-02 |
16
+ | Original | [webpack](https://www.npmjs.com/package/webpack) @ 5.110.3 |
17
+ | Processed | 2026-09-06 |
18
18
  | Smoke test | passed |
19
19
  | Deps updated | 9 |
20
20
 
@@ -24,12 +24,12 @@ npm install @depup/webpack
24
24
  |------------|------|-----|
25
25
  | @types/estree | ^1.0.8 | ^1.0.9 |
26
26
  | acorn | ^8.16.0 | ^8.18.0 |
27
- | browserslist | ^4.28.1 | ^4.28.7 |
27
+ | browserslist | ^4.28.1 | ^4.28.9 |
28
28
  | chrome-trace-event | ^1.0.2 | ^1.0.4 |
29
29
  | enhanced-resolve | ^5.24.4 | ^5.24.5 |
30
- | es-module-lexer | ^2.1.0 | ^2.3.1 |
31
- | eslint-scope | 5.1.1 | ^9.1.2 |
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.9.0 |
33
33
  | tapable | ^2.3.0 | ^2.3.3 |
34
34
 
35
35
  ---
package/changes.json CHANGED
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "browserslist": {
12
12
  "from": "^4.28.1",
13
- "to": "^4.28.7"
13
+ "to": "^4.28.9"
14
14
  },
15
15
  "chrome-trace-event": {
16
16
  "from": "^1.0.2",
@@ -22,21 +22,21 @@
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.9.0"
34
+ },
35
35
  "tapable": {
36
36
  "from": "^2.3.0",
37
37
  "to": "^2.3.3"
38
38
  }
39
39
  },
40
- "timestamp": "2026-08-02T00:59:09.770Z",
40
+ "timestamp": "2026-09-06T01:00:50.036Z",
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,23 +29,27 @@ 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();
@@ -328,6 +332,11 @@ class ChunkGraph {
328
332
  /** @type {ModuleGraph} */
329
333
  this.moduleGraph = moduleGraph;
330
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
+
331
340
  /** @type {HashFunction} */
332
341
  this._hashFunction = hashFunction;
333
342
 
@@ -1371,27 +1380,29 @@ class ChunkGraph {
1371
1380
 
1372
1381
  for (const chunkGroup of chunk.groupsIterable) {
1373
1382
  if (chunkGroup instanceof Entrypoint) {
1383
+ if (entrypoints.has(chunkGroup)) continue;
1384
+ entrypoints.add(chunkGroup);
1385
+ // `entrypoints` doubles as the visited set: a diamond of `dependOn`
1386
+ // edges would otherwise re-traverse the shared entrypoint per path
1374
1387
  const queue = [chunkGroup];
1375
- while (queue.length > 0) {
1376
- const current = queue.shift();
1377
- if (current) {
1378
- entrypoints.add(current);
1379
-
1380
- let hasChildrenEntrypoint = false;
1381
- for (const child of current.childrenIterable) {
1382
- if (child instanceof Entrypoint && child.dependOn(current)) {
1383
- hasChildrenEntrypoint = true;
1384
- queue.push(/** @type {Entrypoint} */ (child));
1388
+ for (let i = 0; i < queue.length; i++) {
1389
+ const current = queue[i];
1390
+ let hasChildrenEntrypoint = false;
1391
+ for (const child of current.childrenIterable) {
1392
+ if (child instanceof Entrypoint && child.dependOn(current)) {
1393
+ hasChildrenEntrypoint = true;
1394
+ if (!entrypoints.has(child)) {
1395
+ entrypoints.add(child);
1396
+ queue.push(child);
1385
1397
  }
1386
1398
  }
1387
- // entryChunkB: hasChildrenEntrypoint = true
1388
- // entryChunkA: dependOn = entryChunkB
1389
- if (hasChildrenEntrypoint) {
1390
- const entrypointChunk = current.getEntrypointChunk();
1391
- if (entrypointChunk !== chunk && !entrypointChunk.hasRuntime()) {
1392
- // add entryChunkB to set
1393
- set.add(entrypointChunk);
1394
- }
1399
+ }
1400
+ // an entrypoint others depend on has to be loaded before them,
1401
+ // unless it is the runtime chunk itself or carries its own runtime
1402
+ if (hasChildrenEntrypoint) {
1403
+ const entrypointChunk = current.getEntrypointChunk();
1404
+ if (entrypointChunk !== chunk && !entrypointChunk.hasRuntime()) {
1405
+ set.add(entrypointChunk);
1395
1406
  }
1396
1407
  }
1397
1408
  }
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"