webpack 5.111.1 → 5.112.1

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 (793) hide show
  1. package/README.md +1 -1
  2. package/bin/webpack.js +13 -7
  3. package/lib/Chunk.js +3 -966
  4. package/lib/Compilation.js +373 -163
  5. package/lib/Compiler.js +31 -44
  6. package/lib/Dependency.js +3 -551
  7. package/lib/DependencyTemplate.js +3 -70
  8. package/lib/EntryPlugin.js +3 -68
  9. package/lib/Entrypoint.js +3 -121
  10. package/lib/ExternalsPlugin.js +3 -92
  11. package/lib/FileSystemInfo.js +3 -4629
  12. package/lib/InitFragment.js +3 -204
  13. package/lib/LibraryTemplatePlugin.js +3 -46
  14. package/lib/ModuleFilenameHelpers.js +3 -400
  15. package/lib/ModuleNotFoundError.js +2 -2
  16. package/lib/MultiCompiler.js +37 -8
  17. package/lib/NormalModule.js +3 -2242
  18. package/lib/NullFactory.js +3 -22
  19. package/lib/ProgressPlugin.js +3 -908
  20. package/lib/RawModule.js +3 -197
  21. package/lib/RequestShortener.js +3 -37
  22. package/lib/SingleEntryPlugin.js +1 -1
  23. package/lib/WebpackError.js +2 -2
  24. package/lib/asset/AssetBytesGenerator.js +21 -13
  25. package/lib/asset/AssetBytesParser.js +12 -10
  26. package/lib/asset/AssetGenerator.js +71 -69
  27. package/lib/asset/AssetModule.js +13 -2
  28. package/lib/asset/AssetModulesPlugin.js +10 -12
  29. package/lib/asset/AssetParser.js +10 -10
  30. package/lib/asset/AssetSourceGenerator.js +23 -15
  31. package/lib/asset/AssetSourceParser.js +12 -10
  32. package/lib/asset/RawDataUrlModule.js +17 -10
  33. package/lib/asset/WebManifestGenerator.js +17 -12
  34. package/lib/asset/WebManifestParser.js +8 -8
  35. package/lib/async-modules/AsyncModuleHelpers.js +12 -5
  36. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
  37. package/lib/async-modules/InferAsyncModulesPlugin.js +9 -3
  38. package/lib/async-modules/isGeneratorLowered.js +3 -3
  39. package/lib/bun/BunTargetPlugin.js +1 -1
  40. package/lib/cache/AddBuildDependenciesPlugin.js +2 -19
  41. package/lib/{Cache.js → cache/Cache.js} +1 -1
  42. package/lib/{CacheFacade.js → cache/CacheFacade.js} +6 -6
  43. package/lib/cache/IdleFileCachePlugin.js +2 -2
  44. package/lib/cache/MemoryCachePlugin.js +2 -2
  45. package/lib/cache/MemoryWithGcCachePlugin.js +2 -2
  46. package/lib/cache/PackFileCacheStrategy.js +13 -19
  47. package/lib/cache/ResolverCachePlugin.js +65 -11
  48. package/lib/cache/mergeEtags.js +1 -1
  49. package/lib/{OptionsApply.js → config/OptionsApply.js} +3 -3
  50. package/lib/{PlatformPlugin.js → config/PlatformPlugin.js} +2 -2
  51. package/lib/{WebpackOptionsApply.js → config/WebpackOptionsApply.js} +209 -212
  52. package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
  53. package/lib/config/browserslistTargetHandler.js +1 -1
  54. package/lib/{cli.js → config/cli.js} +14 -164
  55. package/lib/config/defaults.js +166 -59
  56. package/lib/config/getClaimedAssetTypes.js +22 -14
  57. package/lib/config/normalization.js +18 -7
  58. package/lib/config/target.js +11 -1
  59. package/lib/container/ContainerEntryDependency.js +1 -1
  60. package/lib/container/ContainerEntryModule.js +13 -11
  61. package/lib/container/ContainerEntryModuleFactory.js +2 -2
  62. package/lib/container/ContainerExposedDependency.js +1 -1
  63. package/lib/container/ContainerPlugin.js +178 -5
  64. package/lib/container/ContainerReferencePlugin.js +75 -14
  65. package/lib/container/FallbackDependency.js +1 -1
  66. package/lib/container/FallbackItemDependency.js +1 -1
  67. package/lib/container/FallbackModule.js +12 -10
  68. package/lib/container/FallbackModuleFactory.js +2 -2
  69. package/lib/container/HoistContainerReferencesPlugin.js +10 -11
  70. package/lib/container/ModuleFederationPlugin.js +306 -7
  71. package/lib/container/RemoteModule.js +14 -10
  72. package/lib/container/RemoteRuntimeModule.js +5 -5
  73. package/lib/container/RemoteToExternalDependency.js +1 -1
  74. package/lib/container/moduleFederationHooks.js +1 -1
  75. package/lib/context/ContextModule.js +37 -26
  76. package/lib/context/ContextModuleFactory.js +14 -11
  77. package/lib/context/ContextReplacementPlugin.js +6 -12
  78. package/lib/css/CssGenerator.js +78 -68
  79. package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
  80. package/lib/css/CssLoadingRuntimeModule.js +77 -44
  81. package/lib/css/CssModule.js +37 -29
  82. package/lib/css/CssModulesPlugin.js +129 -45
  83. package/lib/css/CssParser.js +714 -322
  84. package/lib/css/CssServerStylesRuntimeModule.js +3 -3
  85. package/lib/{util → css}/conventions.js +1 -1
  86. package/lib/css/cssMinify.js +110 -37
  87. package/lib/css/data.js +6990 -5125
  88. package/lib/css/syntax-parser.js +20734 -0
  89. package/lib/css/syntax-printer.js +6092 -0
  90. package/lib/css/syntax.js +37 -18686
  91. package/lib/debug/ProfilingPlugin.js +106 -51
  92. package/lib/{DefinePlugin.js → define/DefinePlugin.js} +416 -55
  93. package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +19 -15
  94. package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +6 -4
  95. package/lib/deno/DenoTargetPlugin.js +1 -1
  96. package/lib/dependencies/ConstDependency.js +3 -120
  97. package/lib/dependencies/ContextElementDependency.js +5 -172
  98. package/lib/dependencies/NullDependency.js +3 -37
  99. package/lib/dependencies/{AMDDefineDependency.js → amd/AMDDefineDependency.js} +12 -11
  100. package/lib/dependencies/{AMDDefineDependencyParserPlugin.js → amd/AMDDefineDependencyParserPlugin.js} +10 -11
  101. package/lib/dependencies/{AMDPlugin.js → amd/AMDPlugin.js} +11 -11
  102. package/lib/dependencies/{AMDRequireArrayDependency.js → amd/AMDRequireArrayDependency.js} +15 -13
  103. package/lib/dependencies/{AMDRequireContextDependency.js → amd/AMDRequireContextDependency.js} +11 -10
  104. package/lib/dependencies/{AMDRequireDependenciesBlock.js → amd/AMDRequireDependenciesBlock.js} +7 -6
  105. package/lib/dependencies/{AMDRequireDependenciesBlockParserPlugin.js → amd/AMDRequireDependenciesBlockParserPlugin.js} +14 -11
  106. package/lib/dependencies/{AMDRequireDependency.js → amd/AMDRequireDependency.js} +13 -12
  107. package/lib/dependencies/{AMDRequireItemDependency.js → amd/AMDRequireItemDependency.js} +8 -7
  108. package/lib/dependencies/{AMDRuntimeModules.js → amd/AMDRuntimeModules.js} +3 -3
  109. package/lib/dependencies/{LocalModule.js → amd/LocalModule.js} +8 -4
  110. package/lib/dependencies/{LocalModuleDependency.js → amd/LocalModuleDependency.js} +17 -10
  111. package/lib/dependencies/{LocalModulesHelpers.js → amd/LocalModulesHelpers.js} +1 -1
  112. package/lib/dependencies/{RequireJsStuffPlugin.js → amd/RequireJsStuffPlugin.js} +9 -9
  113. package/lib/dependencies/{UnsupportedDependency.js → amd/UnsupportedDependency.js} +11 -10
  114. package/lib/dependencies/{CommonJsDependencyHelpers.js → commonjs/CommonJsDependencyHelpers.js} +8 -9
  115. package/lib/dependencies/{CommonJsExportRequireDependency.js → commonjs/CommonJsExportRequireDependency.js} +166 -36
  116. package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
  117. package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +154 -92
  118. package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
  119. package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +36 -33
  120. package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +17 -16
  121. package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +48 -39
  122. package/lib/dependencies/{CommonJsRequireContextDependency.js → commonjs/CommonJsRequireContextDependency.js} +15 -14
  123. package/lib/dependencies/{CommonJsRequireDependency.js → commonjs/CommonJsRequireDependency.js} +33 -25
  124. package/lib/dependencies/{CommonJsSelfReferenceDependency.js → commonjs/CommonJsSelfReferenceDependency.js} +17 -16
  125. package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
  126. package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
  127. package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +9 -6
  128. package/lib/dependencies/{RequireEnsureDependency.js → commonjs/RequireEnsureDependency.js} +13 -12
  129. package/lib/dependencies/{RequireEnsureItemDependency.js → commonjs/RequireEnsureItemDependency.js} +7 -6
  130. package/lib/dependencies/{RequireEnsurePlugin.js → commonjs/RequireEnsurePlugin.js} +8 -8
  131. package/lib/dependencies/{RequireHeaderDependency.js → commonjs/RequireHeaderDependency.js} +14 -13
  132. package/lib/dependencies/{RequireIncludeDependency.js → commonjs/RequireIncludeDependency.js} +13 -12
  133. package/lib/dependencies/{RequireIncludeDependencyParserPlugin.js → commonjs/RequireIncludeDependencyParserPlugin.js} +3 -27
  134. package/lib/dependencies/{RequireIncludePlugin.js → commonjs/RequireIncludePlugin.js} +4 -4
  135. package/lib/dependencies/{RequireResolveContextDependency.js → commonjs/RequireResolveContextDependency.js} +11 -10
  136. package/lib/dependencies/{RequireResolveDependency.js → commonjs/RequireResolveDependency.js} +12 -11
  137. package/lib/dependencies/{RequireResolveHeaderDependency.js → commonjs/RequireResolveHeaderDependency.js} +13 -12
  138. package/lib/dependencies/commonjs/TopLevelThisParserPlugin.js +59 -0
  139. package/lib/dependencies/{ContextDependency.js → context/ContextDependency.js} +15 -14
  140. package/lib/dependencies/{ContextDependencyHelpers.js → context/ContextDependencyHelpers.js} +31 -9
  141. package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
  142. package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
  143. package/lib/dependencies/context/ContextElementDependency.js +198 -0
  144. package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
  145. package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +10 -11
  146. package/lib/dependencies/{ImportMetaContextPlugin.js → context/ImportMetaContextPlugin.js} +5 -5
  147. package/lib/dependencies/{ImportMetaGlobDependency.js → context/ImportMetaGlobDependency.js} +7 -6
  148. package/lib/dependencies/{ImportMetaGlobDependencyParserPlugin.js → context/ImportMetaGlobDependencyParserPlugin.js} +7 -10
  149. package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +17 -19
  150. package/lib/dependencies/{RequireContextDependency.js → context/RequireContextDependency.js} +7 -6
  151. package/lib/dependencies/{RequireContextDependencyParserPlugin.js → context/RequireContextDependencyParserPlugin.js} +2 -2
  152. package/lib/dependencies/{RequireContextPlugin.js → context/RequireContextPlugin.js} +5 -5
  153. package/lib/dependencies/{CachedConstDependency.js → core/CachedConstDependency.js} +21 -17
  154. package/lib/dependencies/core/ConstDependency.js +131 -0
  155. package/lib/dependencies/{ImportPhase.js → core/ImportPhase.js} +5 -4
  156. package/lib/dependencies/{ModuleDependency.js → core/ModuleDependency.js} +10 -7
  157. package/lib/dependencies/{ModuleDependencyTemplateAsId.js → core/ModuleDependencyTemplateAsId.js} +3 -3
  158. package/lib/dependencies/{ModuleDependencyTemplateAsRequireId.js → core/ModuleDependencyTemplateAsRequireId.js} +2 -2
  159. package/lib/dependencies/{ModuleInitFragmentDependency.js → core/ModuleInitFragmentDependency.js} +10 -9
  160. package/lib/dependencies/core/NullDependency.js +44 -0
  161. package/lib/dependencies/{RuntimeRequirementsDependency.js → core/RuntimeRequirementsDependency.js} +10 -9
  162. package/lib/dependencies/{StaticExportsDependency.js → core/StaticExportsDependency.js} +15 -8
  163. package/lib/dependencies/{CssIcssExportDependency.js → css/CssIcssExportDependency.js} +375 -99
  164. package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +24 -19
  165. package/lib/dependencies/{CssIcssSymbolDependency.js → css/CssIcssSymbolDependency.js} +13 -12
  166. package/lib/dependencies/{CssImportDependency.js → css/CssImportDependency.js} +15 -11
  167. package/lib/dependencies/{CssUrlDependency.js → css/CssUrlDependency.js} +25 -22
  168. package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
  169. package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
  170. package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
  171. package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +29 -21
  172. package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +20 -20
  173. package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
  174. package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +60 -89
  175. package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +80 -45
  176. package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
  177. package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
  178. package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +146 -133
  179. package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
  180. package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +78 -37
  181. package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -12
  182. package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
  183. package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +86 -68
  184. package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +104 -100
  185. package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +36 -51
  186. package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
  187. package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +98 -60
  188. package/lib/dependencies/esm/ESMLiveExportDependency.js +311 -0
  189. package/lib/dependencies/esm/ESMLiveExportParserPlugin.js +862 -0
  190. package/lib/dependencies/esm/ESMModulesPlugin.js +205 -0
  191. package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
  192. package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -18
  193. package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +5 -7
  194. package/lib/{util → dependencies/helpers}/chainedImports.js +5 -5
  195. package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
  196. package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
  197. package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
  198. package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
  199. package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
  200. package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
  201. package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +52 -151
  202. package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -15
  203. package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -23
  204. package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -18
  205. package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
  206. package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
  207. package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
  208. package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
  209. package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +22 -25
  210. package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
  211. package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
  212. package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
  213. package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
  214. package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
  215. package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +122 -103
  216. package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
  217. package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
  218. package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
  219. package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
  220. package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +28 -20
  221. package/lib/{url → dependencies/url}/URLParserPlugin.js +17 -19
  222. package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
  223. package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
  224. package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
  225. package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
  226. package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +82 -53
  227. package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +22 -15
  228. package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +19 -18
  229. package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
  230. package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
  231. package/lib/devtool/ModuleFilenameHelpers.js +413 -0
  232. package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
  233. package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +155 -27
  234. package/lib/{util → devtool}/generateDebugId.js +1 -1
  235. package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
  236. package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
  237. package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
  238. package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
  239. package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
  240. package/lib/dll/DelegatedModule.js +23 -21
  241. package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
  242. package/lib/dll/DelegatedPlugin.js +1 -1
  243. package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
  244. package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
  245. package/lib/dll/DllEntryPlugin.js +3 -3
  246. package/lib/dll/DllModule.js +14 -10
  247. package/lib/dll/DllModuleFactory.js +3 -3
  248. package/lib/dll/DllPlugin.js +18 -6
  249. package/lib/dll/DllReferencePlugin.js +103 -30
  250. package/lib/dll/LibManifestPlugin.js +9 -7
  251. package/lib/electron/ElectronTargetPlugin.js +2 -2
  252. package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
  253. package/lib/{dependencies → entry}/EntryDependency.js +11 -2
  254. package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
  255. package/lib/entry/EntryPlugin.js +75 -0
  256. package/lib/errors/AbstractMethodError.js +1 -1
  257. package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
  258. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  259. package/lib/errors/BuildCycleError.js +1 -1
  260. package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
  261. package/lib/errors/ChunkRenderError.js +1 -1
  262. package/lib/errors/CodeGenerationError.js +1 -1
  263. package/lib/errors/CommentCompilationWarning.js +1 -1
  264. package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
  265. package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
  266. package/lib/errors/DeprecatedOptionWarning.js +30 -0
  267. package/lib/errors/DllManifestError.js +26 -0
  268. package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
  269. package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
  270. package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
  271. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  272. package/lib/{ErrorHelpers.js → errors/ErrorHelpers.js} +9 -6
  273. package/lib/errors/ExternalStarReexportError.js +2 -2
  274. package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
  275. package/lib/errors/HookWebpackError.js +6 -5
  276. package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
  277. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  278. package/lib/errors/JSONParseError.js +4 -4
  279. package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
  280. package/lib/errors/ModuleBuildError.js +1 -1
  281. package/lib/errors/ModuleDependencyError.js +2 -2
  282. package/lib/errors/ModuleDependencyWarning.js +2 -2
  283. package/lib/errors/ModuleError.js +1 -1
  284. package/lib/errors/ModuleHashingError.js +1 -1
  285. package/lib/errors/ModuleNotFoundError.js +3 -3
  286. package/lib/errors/ModuleParseError.js +1 -1
  287. package/lib/errors/ModuleRestoreError.js +1 -1
  288. package/lib/errors/ModuleStoreError.js +1 -1
  289. package/lib/errors/ModuleWarning.js +1 -1
  290. package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
  291. package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
  292. package/lib/errors/NodeStuffInWebError.js +7 -2
  293. package/lib/errors/PathVariableError.js +31 -0
  294. package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
  295. package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
  296. package/lib/errors/RuntimeModuleGenerationError.js +51 -0
  297. package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
  298. package/lib/errors/SystemImportDeprecationWarning.js +43 -0
  299. package/lib/errors/UnmergeableEntryExportsError.js +34 -0
  300. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  301. package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
  302. package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
  303. package/lib/errors/WebpackError.js +13 -3
  304. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
  305. package/lib/esm/ModuleChunkFormatPlugin.js +55 -20
  306. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
  307. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
  308. package/lib/{ExternalModule.js → externals/ExternalModule.js} +90 -63
  309. package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +42 -41
  310. package/lib/externals/ExternalsPlugin.js +99 -0
  311. package/lib/fs/FileSystemInfo.js +4642 -0
  312. package/lib/{util → fs}/fs.js +22 -9
  313. package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
  314. package/lib/graph/Chunk.js +985 -0
  315. package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +192 -80
  316. package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
  317. package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
  318. package/lib/graph/Dependency.js +634 -0
  319. package/lib/graph/Entrypoint.js +136 -0
  320. package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +131 -83
  321. package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
  322. package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +44 -33
  323. package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
  324. package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +169 -76
  325. package/lib/{util → graph}/findGraphRoots.js +15 -9
  326. package/lib/graph/isDependencyKind.js +23 -0
  327. package/lib/hmr/HotModuleReplacement.runtime.js +12 -11
  328. package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +51 -57
  329. package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
  330. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +25 -26
  331. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
  332. package/lib/hmr/LazyCompilationPlugin.js +32 -28
  333. package/lib/html/HtmlGenerator.js +132 -60
  334. package/lib/html/HtmlModule.js +16 -2
  335. package/lib/html/HtmlModulesPlugin.js +184 -87
  336. package/lib/html/HtmlParser.js +511 -160
  337. package/lib/html/builtinEmbeddedRenderer.js +70 -25
  338. package/lib/html/data.js +44 -22
  339. package/lib/html/htmlMinify.js +114 -41
  340. package/lib/html/syntax-parser.js +15795 -0
  341. package/lib/html/syntax-printer.js +1033 -0
  342. package/lib/html/syntax.js +37 -13952
  343. package/lib/html/xmlMinify.js +70 -0
  344. package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
  345. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  346. package/lib/ids/HashedModuleIdsPlugin.js +32 -5
  347. package/lib/ids/IdHelpers.js +4 -4
  348. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  349. package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
  350. package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
  351. package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
  352. package/lib/ids/SyncModuleIdsPlugin.js +3 -3
  353. package/lib/{util → ids}/numberHash.js +1 -1
  354. package/lib/index.js +312 -105
  355. package/lib/{APIPlugin.js → javascript/APIPlugin.js} +31 -37
  356. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
  357. package/lib/javascript/BasicEvaluatedExpression.js +9 -9
  358. package/lib/javascript/ChunkHelpers.js +64 -4
  359. package/lib/javascript/CommonJsChunkFormatPlugin.js +5 -13
  360. package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +7 -7
  361. package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +75 -8
  362. package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
  363. package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
  364. package/lib/javascript/JavascriptGenerator.js +32 -27
  365. package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +8 -20
  366. package/lib/javascript/JavascriptModule.js +14 -3
  367. package/lib/javascript/JavascriptModulesPlugin.js +441 -214
  368. package/lib/javascript/JavascriptParser.js +318 -144
  369. package/lib/javascript/JavascriptParserHelpers.js +1 -1
  370. package/lib/javascript/MergedEntryExports.js +196 -0
  371. package/lib/javascript/ScopeAnalyzer.js +3924 -13
  372. package/lib/javascript/StartupHelpers.js +6 -6
  373. package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +13 -19
  374. package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
  375. package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
  376. package/lib/javascript/data.js +533 -122
  377. package/lib/javascript/jsMinify.js +272 -0
  378. package/lib/javascript/regexp.js +67 -32
  379. package/lib/javascript/syntax-parser.js +19169 -0
  380. package/lib/javascript/syntax-printer-data.js +1099 -0
  381. package/lib/javascript/syntax-printer.js +53878 -0
  382. package/lib/javascript/syntax.js +20 -11274
  383. package/lib/json/JsonData.js +1 -1
  384. package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
  385. package/lib/json/JsonGenerator.js +24 -16
  386. package/lib/json/JsonModule.js +13 -2
  387. package/lib/json/JsonModulesPlugin.js +1 -1
  388. package/lib/json/JsonParser.js +11 -10
  389. package/lib/json/jsonMinify.js +69 -0
  390. package/lib/library/AbstractLibraryPlugin.js +28 -15
  391. package/lib/library/AmdLibraryPlugin.js +4 -4
  392. package/lib/library/AssignLibraryPlugin.js +28 -12
  393. package/lib/library/EnableLibraryPlugin.js +1 -1
  394. package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
  395. package/lib/library/JsonpLibraryPlugin.js +2 -2
  396. package/lib/library/LibraryTemplatePlugin.js +53 -0
  397. package/lib/library/ModuleLibraryPlugin.js +557 -187
  398. package/lib/library/SystemLibraryPlugin.js +6 -8
  399. package/lib/library/UmdLibraryPlugin.js +3 -4
  400. package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
  401. package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
  402. package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
  403. package/lib/{dependencies → loaders}/LoaderPlugin.js +2 -2
  404. package/lib/loaders/LoaderRunner.js +94 -46
  405. package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
  406. package/lib/loaders/loadLoader.js +16 -10
  407. package/lib/logging/Logger.js +7 -9
  408. package/lib/logging/ProgressPlugin.js +957 -0
  409. package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
  410. package/lib/{Generator.js → module/Generator.js} +33 -23
  411. package/lib/{Module.js → module/Module.js} +121 -53
  412. package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
  413. package/lib/module/NormalModule.js +2350 -0
  414. package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +64 -71
  415. package/lib/module/NullFactory.js +29 -0
  416. package/lib/{Parser.js → module/Parser.js} +12 -5
  417. package/lib/module/RawModule.js +208 -0
  418. package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
  419. package/lib/{util → module}/extractSourceMap.js +71 -20
  420. package/lib/{util → module}/findCaseMismatch.js +4 -4
  421. package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
  422. package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
  423. package/lib/{dependencies → node}/ExternalModuleInitFragment.js +7 -6
  424. package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
  425. package/lib/node/NodeEnvironmentPlugin.js +11 -1
  426. package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
  427. package/lib/node/NodeTargetPlugin.js +1 -1
  428. package/lib/node/NodeWatchFileSystem.js +58 -6
  429. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
  430. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +13 -19
  431. package/lib/node/ReadFileCompileWasmPlugin.js +9 -11
  432. package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
  433. package/lib/node/nodeConsole.js +6 -7
  434. package/lib/optimize/AggressiveMergingPlugin.js +2 -2
  435. package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
  436. package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +14 -14
  437. package/lib/optimize/ConcatenatedModule.js +231 -220
  438. package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
  439. package/lib/optimize/ConstExportsPlugin.js +7 -7
  440. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  441. package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
  442. package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +23 -28
  443. package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +44 -19
  444. package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
  445. package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
  446. package/lib/optimize/InlineExports.js +12 -7
  447. package/lib/optimize/InnerGraph.js +5 -13
  448. package/lib/optimize/InnerGraphPlugin.js +10 -10
  449. package/lib/optimize/LazyBarrels.js +620 -0
  450. package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
  451. package/lib/optimize/LimitChunkCountPlugin.js +16 -7
  452. package/lib/optimize/MangleExportsPlugin.js +5 -5
  453. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
  454. package/lib/optimize/MinChunkSizePlugin.js +9 -6
  455. package/lib/optimize/ModuleConcatenationPlugin.js +28 -22
  456. package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
  457. package/lib/optimize/RealContentHashPlugin.js +18 -13
  458. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  459. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  460. package/lib/optimize/SideEffectsFlagPlugin.js +24 -38
  461. package/lib/optimize/SplitChunksPlugin.js +719 -174
  462. package/lib/{util → optimize}/TupleQueue.js +9 -9
  463. package/lib/optimize/chunkSetIntersections.js +437 -0
  464. package/lib/{util → optimize}/deterministicGrouping.js +17 -17
  465. package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
  466. package/lib/{CleanPlugin.js → output/CleanPlugin.js} +69 -25
  467. package/lib/{CopyPlugin.js → output/CopyPlugin.js} +144 -70
  468. package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
  469. package/lib/output/SSRManifestPlugin.js +349 -0
  470. package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
  471. package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
  472. package/lib/performance/BroadContextsPlugin.js +4 -4
  473. package/lib/performance/CacheEffectivenessPlugin.js +2 -3
  474. package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
  475. package/lib/performance/DuplicateModulesPlugin.js +3 -4
  476. package/lib/performance/DuplicatePackagesPlugin.js +3 -3
  477. package/lib/performance/DynamicExportsPlugin.js +2 -2
  478. package/lib/performance/EvalUsagePlugin.js +4 -6
  479. package/lib/performance/HotspotsPlugin.js +39 -14
  480. package/lib/performance/LargeModulesPlugin.js +2 -3
  481. package/lib/performance/LegacyJavascriptPlugin.js +1 -2
  482. package/lib/performance/MissingSideEffectsPlugin.js +2 -3
  483. package/lib/performance/MissingSourceMapsPlugin.js +5 -6
  484. package/lib/performance/PureAnnotationsPlugin.js +19 -13
  485. package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
  486. package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
  487. package/lib/performance/SizeLimitsPlugin.js +11 -12
  488. package/lib/performance/TopLevelThisPlugin.js +22 -13
  489. package/lib/performance/UnsplitVendorsPlugin.js +1 -2
  490. package/lib/performance/UnusedAliasesPlugin.js +6 -7
  491. package/lib/performance/UnusedAssetsPlugin.js +5 -5
  492. package/lib/performance/UnusedDefinesPlugin.js +2 -2
  493. package/lib/performance/UnusedExternalsPlugin.js +3 -4
  494. package/lib/performance/UnusedFederationPlugin.js +2 -4
  495. package/lib/performance/UnusedModulesPlugin.js +5 -4
  496. package/lib/performance/getModuleSize.js +1 -1
  497. package/lib/performance/hasOnlyUnusedExports.js +4 -4
  498. package/lib/performance/isOnlyReexported.js +7 -6
  499. package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
  500. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
  501. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -1
  502. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
  503. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
  504. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
  505. package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
  506. package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
  507. package/lib/prefetch/ResourceHintPlugin.js +66 -45
  508. package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
  509. package/lib/prefetch/StartupAssetHintRuntimeModule.js +3 -3
  510. package/lib/prefetch/parseResourceHintOptions.js +4 -3
  511. package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
  512. package/lib/{dependencies → provide}/ProvidedDependency.js +50 -17
  513. package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
  514. package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
  515. package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
  516. package/lib/resolve/getResolveOptionsKey.js +59 -0
  517. package/lib/rules/BasicEffectRulePlugin.js +1 -1
  518. package/lib/rules/RuleSetCompiler.js +42 -51
  519. package/lib/rules/UseEffectRulePlugin.js +1 -3
  520. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
  521. package/lib/runtime/AsyncModuleRuntimeModule.js +14 -5
  522. package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
  523. package/lib/runtime/BaseUriRuntimeModule.js +3 -3
  524. package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
  525. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
  526. package/lib/runtime/CompatRuntimeModule.js +4 -4
  527. package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
  528. package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
  529. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
  530. package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
  531. package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
  532. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
  533. package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
  534. package/lib/runtime/GetChunkFilenameRuntimeModule.js +7 -11
  535. package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
  536. package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
  537. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
  538. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
  539. package/lib/runtime/GlobalRuntimeModule.js +3 -3
  540. package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
  541. package/lib/runtime/HelperRuntimeModule.js +16 -1
  542. package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
  543. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +80 -17
  544. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
  545. package/lib/runtime/NonceRuntimeModule.js +2 -2
  546. package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
  547. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  548. package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
  549. package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +24 -1
  550. package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
  551. package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
  552. package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +50 -50
  553. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
  554. package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
  555. package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
  556. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
  557. package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
  558. package/lib/runtime/SystemContextRuntimeModule.js +2 -2
  559. package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
  560. package/lib/runtime/WorkerRuntimeModule.js +1 -1
  561. package/lib/runtime/baseUri.js +1 -1
  562. package/lib/schemes/DataUriPlugin.js +1 -1
  563. package/lib/schemes/HttpUriPlugin.js +68 -13
  564. package/lib/schemes/VirtualUrlPlugin.js +52 -16
  565. package/lib/serialization/AggregateErrorSerializer.js +4 -4
  566. package/lib/serialization/BinaryMiddleware.js +4 -1
  567. package/lib/serialization/ErrorObjectSerializer.js +2 -5
  568. package/lib/serialization/FileMiddleware.js +3 -3
  569. package/lib/serialization/ObjectMiddleware.js +62 -29
  570. package/lib/serialization/PlainObjectSerializer.js +3 -7
  571. package/lib/serialization/Serializer.js +21 -11
  572. package/lib/serialization/SerializerMiddleware.js +10 -8
  573. package/lib/serialization/SingleItemMiddleware.js +4 -2
  574. package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
  575. package/lib/sharing/ConsumeSharedModule.js +18 -14
  576. package/lib/sharing/ConsumeSharedPlugin.js +148 -42
  577. package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
  578. package/lib/sharing/ProvideForSharedDependency.js +9 -1
  579. package/lib/sharing/ProvideSharedDependency.js +1 -1
  580. package/lib/sharing/ProvideSharedModule.js +11 -9
  581. package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
  582. package/lib/sharing/ProvideSharedPlugin.js +111 -20
  583. package/lib/sharing/SharePlugin.js +102 -9
  584. package/lib/sharing/ShareRuntimeModule.js +6 -6
  585. package/lib/sharing/resolveMatchedConfigs.js +1 -1
  586. package/lib/{util → sharing}/semver.js +14 -16
  587. package/lib/sharing/utils.js +59 -2
  588. package/lib/stats/DefaultStatsFactoryPlugin.js +57 -54
  589. package/lib/stats/DefaultStatsPresetPlugin.js +3 -7
  590. package/lib/stats/DefaultStatsPrinterPlugin.js +15 -14
  591. package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
  592. package/lib/{Stats.js → stats/Stats.js} +4 -4
  593. package/lib/stats/StatsFactory.js +208 -37
  594. package/lib/stats/StatsPrinter.js +126 -13
  595. package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
  596. package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
  597. package/lib/template/DependencyTemplate.js +77 -0
  598. package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
  599. package/lib/template/InitFragment.js +223 -0
  600. package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
  601. package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
  602. package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
  603. package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +158 -95
  604. package/lib/{Template.js → template/Template.js} +14 -12
  605. package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +19 -23
  606. package/lib/typescript/TypeScriptPlugin.js +3 -3
  607. package/lib/util/RequestShortener.js +44 -0
  608. package/lib/util/SortableSet.js +87 -22
  609. package/lib/util/SourceProcessor.js +439 -51
  610. package/lib/util/TupleSet.js +27 -27
  611. package/lib/util/WeakTupleMap.js +20 -16
  612. package/lib/util/buildDiagnostics.js +2 -2
  613. package/lib/util/cleverMerge.js +61 -33
  614. package/lib/util/comparators.js +19 -15
  615. package/lib/util/concatenate.js +28 -147
  616. package/lib/util/createMappings.js +111 -0
  617. package/lib/util/dataURL.js +96 -15
  618. package/lib/util/deprecation.js +5 -4
  619. package/lib/util/extractComments.js +118 -0
  620. package/lib/util/formatLocation.js +1 -1
  621. package/lib/util/globUtils.js +198 -20
  622. package/lib/util/haltVisitors.js +51 -0
  623. package/lib/util/handlerKeys.js +2 -2
  624. package/lib/util/identifier.js +117 -1
  625. package/lib/util/implicitTypeLoaderFallback.js +6 -4
  626. package/lib/util/internalSerializables.js +296 -102
  627. package/lib/util/magicComment.js +12 -7
  628. package/lib/util/makeSerializable.js +28 -7
  629. package/lib/util/memoize.js +1 -1
  630. package/lib/util/parseJson.js +2 -2
  631. package/lib/util/preloadModuleType.js +5 -2
  632. package/lib/util/registerExternalSerializer.js +2 -2
  633. package/lib/util/removeBOM.js +1 -1
  634. package/lib/util/runtime.js +1 -1
  635. package/lib/util/serialization.js +35 -28
  636. package/lib/util/source.js +2 -2
  637. package/lib/util/terminalColors.js +161 -0
  638. package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
  639. package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
  640. package/lib/{wasm-async → wasm}/AsyncWasmModule.js +19 -5
  641. package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +17 -9
  642. package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +24 -15
  643. package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
  644. package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +14 -12
  645. package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
  646. package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +11 -13
  647. package/lib/wasm/wasmModuleFilename.js +2 -2
  648. package/lib/wasm-sync/SyncWasmModule.js +18 -3
  649. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +8 -8
  650. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
  651. package/lib/wasm-sync/WebAssemblyGenerator.js +22 -16
  652. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +28 -21
  653. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
  654. package/lib/wasm-sync/WebAssemblyParser.js +15 -17
  655. package/lib/wasm-sync/WebAssemblyUtils.js +6 -5
  656. package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
  657. package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
  658. package/lib/{Watching.js → watch/Watching.js} +8 -8
  659. package/lib/web/FetchCompileAsyncWasmPlugin.js +12 -18
  660. package/lib/web/FetchCompileWasmPlugin.js +8 -10
  661. package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
  662. package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
  663. package/lib/web/JsonpTemplatePlugin.js +1 -1
  664. package/lib/webpack.js +27 -17
  665. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
  666. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
  667. package/package.json +57 -36
  668. package/schemas/WebpackOptions.check.js +4 -3
  669. package/schemas/WebpackOptions.d.json.ts +2 -0
  670. package/schemas/WebpackOptions.json +295 -75
  671. package/schemas/plugins/BannerPlugin.check.js +4 -3
  672. package/schemas/plugins/BannerPlugin.json +29 -2
  673. package/schemas/plugins/HtmlGeneratorOptions.check.js +4 -3
  674. package/schemas/plugins/HtmlParserOptions.check.js +4 -3
  675. package/schemas/plugins/IgnorePlugin.check.js +4 -3
  676. package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
  677. package/schemas/plugins/IgnorePlugin.json +1 -1
  678. package/schemas/plugins/LoaderOptionsPlugin.check.js +4 -3
  679. package/schemas/plugins/ManifestPlugin.check.js +4 -3
  680. package/schemas/plugins/ManifestPlugin.json +3 -3
  681. package/schemas/plugins/ProgressPlugin.check.js +4 -3
  682. package/schemas/plugins/ProgressPlugin.json +2 -7
  683. package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
  684. package/schemas/plugins/SSRManifestPlugin.json +20 -0
  685. package/schemas/plugins/SourceMapDevToolPlugin.check.js +4 -3
  686. package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
  687. package/schemas/plugins/WatchIgnorePlugin.check.js +4 -3
  688. package/schemas/plugins/WatchIgnorePlugin.json +12 -3
  689. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +4 -3
  690. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +4 -3
  691. package/schemas/plugins/asset/AssetParserOptions.check.js +4 -3
  692. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +4 -3
  693. package/schemas/plugins/container/ContainerPlugin.check.js +4 -3
  694. package/schemas/plugins/container/ContainerPlugin.json +8 -0
  695. package/schemas/plugins/container/ContainerReferencePlugin.check.js +4 -3
  696. package/schemas/plugins/container/ExternalsType.check.js +4 -3
  697. package/schemas/plugins/container/ModuleFederationPlugin.check.js +4 -3
  698. package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
  699. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +4 -3
  700. package/schemas/plugins/css/CssGeneratorOptions.check.js +4 -3
  701. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +4 -3
  702. package/schemas/plugins/css/CssModuleParserOptions.check.js +4 -3
  703. package/schemas/plugins/css/CssParserOptions.check.js +4 -3
  704. package/schemas/plugins/debug/ProfilingPlugin.check.js +4 -3
  705. package/schemas/plugins/define/DotenvPluginOptions.check.js +7 -0
  706. package/schemas/plugins/define/DotenvPluginOptions.json +3 -0
  707. package/schemas/plugins/dll/DllPlugin.check.js +4 -3
  708. package/schemas/plugins/dll/DllReferencePlugin.check.js +4 -3
  709. package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
  710. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +4 -3
  711. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +4 -3
  712. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +4 -3
  713. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +4 -3
  714. package/schemas/plugins/json/JsonModulesPluginParser.check.js +4 -3
  715. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +4 -3
  716. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +4 -3
  717. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +4 -3
  718. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +4 -3
  719. package/schemas/plugins/output/CleanOptions.check.js +7 -0
  720. package/schemas/plugins/output/CleanOptions.json +3 -0
  721. package/schemas/plugins/schemes/HttpUriPlugin.check.js +4 -3
  722. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +4 -3
  723. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +4 -3
  724. package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
  725. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +4 -3
  726. package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
  727. package/schemas/plugins/sharing/SharePlugin.check.js +4 -3
  728. package/schemas/plugins/sharing/SharePlugin.json +32 -0
  729. package/types.d.ts +20780 -14174
  730. package/lib/LazyBarrel.js +0 -388
  731. package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
  732. package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
  733. package/lib/javascript/ChunkFormatHelpers.js +0 -72
  734. package/lib/javascript/grammar.js +0 -5546
  735. package/lib/javascript/parser.js +0 -1500
  736. package/lib/javascript/regexpData.js +0 -51
  737. package/lib/performance/getSourceModules.js +0 -22
  738. package/lib/util/Semaphore.js +0 -65
  739. package/lib/util/objectToMap.js +0 -15
  740. package/schemas/WebpackOptions.check.d.ts +0 -7
  741. package/schemas/_container.json +0 -155
  742. package/schemas/_sharing.json +0 -118
  743. package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
  744. package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
  745. package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
  746. package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
  747. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
  748. package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
  749. package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
  750. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
  751. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
  752. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
  753. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
  754. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
  755. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
  756. package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
  757. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
  758. package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
  759. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
  760. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
  761. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
  762. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
  763. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
  764. package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
  765. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
  766. package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
  767. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
  768. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
  769. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
  770. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
  771. package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
  772. package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
  773. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
  774. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
  775. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
  776. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
  777. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
  778. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
  779. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
  780. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
  781. package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
  782. /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
  783. /package/lib/{util → css}/topologicalSort.js +0 -0
  784. /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
  785. /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
  786. /package/lib/{util → fs}/StackedCacheMap.js +0 -0
  787. /package/lib/{util → javascript}/StackedMap.js +0 -0
  788. /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
  789. /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
  790. /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
  791. /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
  792. /package/lib/{util → optimize}/Queue.js +0 -0
  793. /package/lib/{util → stats}/smartGrouping.js +0 -0
@@ -5,15 +5,31 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const NormalModule = require("../NormalModule");
9
8
  const HotspotsWarning = require("../errors/HotspotsWarning");
10
9
  const { LOADER_TIMING } = require("../loaders/LoaderRunner");
10
+ const NormalModule = require("../module/NormalModule");
11
11
  const { compareStrings } = require("../util/comparators");
12
12
  const { contextify } = require("../util/identifier");
13
13
 
14
14
  /** @typedef {import("tapable").FullTap} FullTap */
15
+
16
+ /**
17
+ * The callback an `async` tap reports its error or result through.
18
+ * @template R the hook's result
19
+ * @typedef {(error?: Error | null, result?: R) => void} TapCallback
20
+ */
21
+
22
+ /**
23
+ * An `async` tap's function, the hook's callback after its arguments.
24
+ * @template {unknown[]} A the hook's arguments
25
+ * @template R the hook's result
26
+ * @typedef {(...args: [...A, TapCallback<R>]) => void} AsyncTapFunction
27
+ */
15
28
  /** @typedef {import("../../declarations/WebpackOptions").PerformanceOptions} PerformanceOptions */
16
29
  /** @typedef {import("../Compiler")} Compiler */
30
+ /** @typedef {import("../Compilation")} Compilation */
31
+ /** @typedef {import("../module/NormalModuleFactory")} NormalModuleFactory */
32
+ /** @typedef {import("../context/ContextModuleFactory")} ContextModuleFactory */
17
33
  /** @typedef {import("../errors/HotspotsWarning").HookDetails} HookDetails */
18
34
  /** @typedef {import("../errors/HotspotsWarning").HotspotDetails} HotspotDetails */
19
35
 
@@ -143,15 +159,17 @@ class HotspotsPlugin {
143
159
  return {
144
160
  ...tapInfo,
145
161
  /**
146
- * @param {EXPECTED_ANY[]} args the tap's arguments, callback last
147
- * @returns {EXPECTED_ANY} whatever the tap returned
162
+ * @template {unknown[]} A the hook's arguments
163
+ * @template R the hook's result
164
+ * @param {[...A, TapCallback<R>]} args the tap's arguments, callback last
165
+ * @returns {void}
148
166
  */
149
167
  fn: (...args) => {
150
- const callback = args.pop();
168
+ const callback = /** @type {TapCallback<R>} */ (args.pop());
151
169
 
152
170
  /**
153
- * @param {EXPECTED_ANY[]} result what the tap reported
154
- * @returns {EXPECTED_ANY} whatever the callback returned
171
+ * @param {Parameters<TapCallback<R>>} result what the tap reported
172
+ * @returns {void}
155
173
  */
156
174
  const finish = (...result) =>
157
175
  measure(pluginTime, name, hookName, () => callback(...result));
@@ -159,7 +177,11 @@ class HotspotsPlugin {
159
177
  // The completion callback is the plugin's own code as well, so it
160
178
  // is charged to the plugin rather than to whoever resumed it.
161
179
  return measure(pluginTime, name, hookName, () =>
162
- /** @type {EXPECTED_FUNCTION} */ (fn)(...args, finish)
180
+ /** @type {AsyncTapFunction<A, R>} */ (fn)(
181
+ // `pop()` took the callback off, which the tuple type cannot follow.
182
+ .../** @type {A} */ (/** @type {unknown[]} */ (args)),
183
+ finish
184
+ )
163
185
  );
164
186
  }
165
187
  };
@@ -168,18 +190,20 @@ class HotspotsPlugin {
168
190
  return {
169
191
  ...tapInfo,
170
192
  /**
171
- * @param {EXPECTED_ANY[]} args the tap's arguments
172
- * @returns {EXPECTED_ANY} whatever the tap returned
193
+ * @template {unknown[]} A the hook's arguments
194
+ * @template R what the tap returns: the hook's result, or a promise of it
195
+ * @param {A} args the tap's arguments
196
+ * @returns {R} whatever the tap returned
173
197
  */
174
198
  fn: (...args) =>
175
199
  measure(pluginTime, name, hookName, () =>
176
- /** @type {EXPECTED_FUNCTION} */ (fn)(...args)
200
+ /** @type {(...args: A) => R} */ (fn)(...args)
177
201
  )
178
202
  };
179
203
  };
180
204
 
181
205
  /**
182
- * @param {EXPECTED_ANY} instance anything carrying tapable hooks
206
+ * @param {Compiler | Compilation | NormalModuleFactory | ContextModuleFactory} instance anything carrying tapable hooks
183
207
  * @returns {void}
184
208
  */
185
209
  const interceptAll = (instance) => {
@@ -224,12 +248,13 @@ class HotspotsPlugin {
224
248
  NormalModule.getCompilationHooks(compilation).loader.tap(
225
249
  PLUGIN_NAME,
226
250
  (loaderContext) => {
227
- /** @type {EXPECTED_ANY} */
251
+ /** @type {{ [LOADER_TIMING]?: <T>(loader: { path: string }, run: () => T) => T }} */
228
252
  (loaderContext)[LOADER_TIMING] =
229
253
  /**
254
+ * @template T
230
255
  * @param {{ path: string }} loader the loader about to run
231
- * @param {() => EXPECTED_ANY} run its own execution
232
- * @returns {EXPECTED_ANY} whatever it returned
256
+ * @param {() => T} run its own execution
257
+ * @returns {T} whatever it returned
233
258
  */
234
259
  (loader, run) =>
235
260
  measure(
@@ -8,11 +8,10 @@
8
8
  const LargeModulesWarning = require("../errors/LargeModulesWarning");
9
9
  const { compareStrings } = require("../util/comparators");
10
10
  const getModuleSize = require("./getModuleSize");
11
- const getSourceModules = require("./getSourceModules");
12
11
 
13
12
  /** @typedef {import("../../declarations/WebpackOptions").PerformanceOptions} PerformanceOptions */
14
13
  /** @typedef {import("../Compiler")} Compiler */
15
- /** @typedef {import("../Module")} Module */
14
+ /** @typedef {import("../module/Module")} Module */
16
15
  /** @typedef {import("../errors/LargeModulesWarning").LargeModuleDetails} LargeModuleDetails */
17
16
 
18
17
  const PLUGIN_NAME = "LargeModulesPlugin";
@@ -70,7 +69,7 @@ class LargeModulesPlugin {
70
69
  for (const module of chunkGraph.getChunkModulesIterable(chunk)) {
71
70
  // Through scope hoisting one module stands for the several it
72
71
  // absorbed, and it is those the report has to name.
73
- for (const inner of getSourceModules(module)) {
72
+ for (const inner of module.getSourceModules()) {
74
73
  const size = getModuleSize(inner);
75
74
 
76
75
  sizes.set(inner, (sizes.get(inner) || 0) + size);
@@ -9,7 +9,6 @@ const LegacyJavascriptWarning = require("../errors/LegacyJavascriptWarning");
9
9
  const { compareStrings } = require("../util/comparators");
10
10
  const { WINDOWS_PATH_SEPARATOR_REGEXP } = require("../util/identifier");
11
11
  const getModuleSize = require("./getModuleSize");
12
- const getSourceModules = require("./getSourceModules");
13
12
 
14
13
  /** @import { Environment, PerformanceOptions } from "../../declarations/WebpackOptions" */
15
14
  /** @import Compiler from "../Compiler" */
@@ -88,7 +87,7 @@ class LegacyJavascriptPlugin {
88
87
  let totalSize = 0;
89
88
 
90
89
  for (const module of compilation.modules) {
91
- for (const inner of getSourceModules(module)) {
90
+ for (const inner of module.getSourceModules()) {
92
91
  const resource = inner.nameForCondition();
93
92
 
94
93
  if (!resource) continue;
@@ -5,7 +5,6 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const NormalModule = require("../NormalModule");
9
8
  const MissingSideEffectsWarning = require("../errors/MissingSideEffectsWarning");
10
9
  const { compareStrings } = require("../util/comparators");
11
10
  const getModuleSize = require("./getModuleSize");
@@ -13,7 +12,7 @@ const hasOnlyUnusedExports = require("./hasOnlyUnusedExports");
13
12
 
14
13
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
15
14
  /** @import Compiler from "../Compiler" */
16
- /** @import Module from "../Module" */
15
+ /** @import Module from "../module/Module" */
17
16
  /**
18
17
  * @import {
19
18
  * MissingSideEffectsDetails
@@ -32,7 +31,7 @@ const MAX_REPORTED_PACKAGES = 5;
32
31
  * @returns {string | undefined} the package name, or undefined
33
32
  */
34
33
  const getUndeclaredPackage = (module) => {
35
- if (!(module instanceof NormalModule)) return undefined;
34
+ if (!module.is("normal")) return undefined;
36
35
 
37
36
  const resolveData = module.resourceResolveData;
38
37
  const description = resolveData && resolveData.descriptionFileData;
@@ -6,15 +6,14 @@
6
6
  "use strict";
7
7
 
8
8
  const { SourceMapSource } = require("webpack-sources");
9
- const NormalModule = require("../NormalModule");
10
9
  const MissingSourceMapsWarning = require("../errors/MissingSourceMapsWarning");
11
10
  const { compareStrings } = require("../util/comparators");
12
- const getSourceModules = require("./getSourceModules");
13
11
 
14
12
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
15
13
  /** @import Compiler from "../Compiler" */
16
- /** @import Module from "../Module" */
17
- /** @import RequestShortener from "../RequestShortener" */
14
+ /** @import Module from "../module/Module" */
15
+ /** @import NormalModule from "../module/NormalModule" */
16
+ /** @import RequestShortener from "../util/RequestShortener" */
18
17
  /** @import { MissingSourceMapDetails } from "../errors/MissingSourceMapsWarning" */
19
18
 
20
19
  const PLUGIN_NAME = "MissingSourceMapsPlugin";
@@ -67,12 +66,12 @@ class MissingSourceMapsPlugin {
67
66
  for (const parent of compilation.modules) {
68
67
  // Scope hoisting makes several modules into one, and each of them
69
68
  // kept the source its own loaders produced.
70
- for (const module of getSourceModules(parent)) {
69
+ for (const module of parent.getSourceModules()) {
71
70
  if (seen.has(module)) continue;
72
71
 
73
72
  seen.add(module);
74
73
 
75
- if (!(module instanceof NormalModule)) continue;
74
+ if (!module.is("normal")) continue;
76
75
 
77
76
  // Only where a real map was asked for: the cheap devtools map to
78
77
  // the loader output by design, so nothing is lost there.
@@ -5,12 +5,12 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const PureAnnotationsWarning = require("../errors/PureAnnotationsWarning");
8
9
  const {
9
10
  JAVASCRIPT_MODULE_TYPE_AUTO,
10
11
  JAVASCRIPT_MODULE_TYPE_DYNAMIC,
11
12
  JAVASCRIPT_MODULE_TYPE_ESM
12
- } = require("../ModuleTypeConstants");
13
- const PureAnnotationsWarning = require("../errors/PureAnnotationsWarning");
13
+ } = require("../module/ModuleTypeConstants");
14
14
  const { getBuildDiagnostics } = require("../util/buildDiagnostics");
15
15
  const { compareStrings } = require("../util/comparators");
16
16
  const { CompilerHintNotationRegExp } = require("../util/magicComment");
@@ -18,10 +18,18 @@ const { CompilerHintNotationRegExp } = require("../util/magicComment");
18
18
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
19
19
  /** @import Compiler from "../Compiler" */
20
20
  /** @import { Program } from "estree" */
21
- /** @import { BuildInfo } from "../Module" */
21
+ /** @import { BuildInfo } from "../module/Module" */
22
22
  /** @import JavascriptParser from "../javascript/JavascriptParser" */
23
23
  /** @import { PureAnnotationDetails } from "../errors/PureAnnotationsWarning" */
24
24
 
25
+ /** @typedef {{ [Key in string]?: AstValue }} AstFields */
26
+ /** @typedef {AstValue[]} AstArray */
27
+ /**
28
+ * A value found while walking an estree AST structurally: a node, a field of
29
+ * one, or a literal's value.
30
+ * @typedef {string | number | boolean | bigint | RegExp | null | undefined | AstArray | AstFields} AstValue
31
+ */
32
+
25
33
  const PLUGIN_NAME = "PureAnnotationsPlugin";
26
34
 
27
35
  // Enough to name the offenders without listing every module.
@@ -46,8 +54,10 @@ const collectStarts = (ast) => {
46
54
  const starts = [];
47
55
  /** @type {Set<number>} */
48
56
  const annotated = new Set();
49
- /** @type {unknown[]} */
50
- const queue = [ast];
57
+ /** @type {AstValue[]} */
58
+ const queue = [
59
+ /** @type {AstValue} */ (/** @type {Program | AstValue} */ (ast))
60
+ ];
51
61
 
52
62
  while (queue.length > 0) {
53
63
  const node = queue.pop();
@@ -55,18 +65,16 @@ const collectStarts = (ast) => {
55
65
  if (!node || typeof node !== "object") continue;
56
66
 
57
67
  if (Array.isArray(node)) {
58
- for (const item of /** @type {unknown[]} */ (node)) queue.push(item);
68
+ for (const item of node) queue.push(item);
59
69
  continue;
60
70
  }
61
71
 
62
72
  // Walked structurally rather than per node type, so a node the estree
63
73
  // types do not name is still reached.
64
- const fields = /** @type {Record<string, unknown>} */ (node);
74
+ const fields = /** @type {AstFields} */ (node);
65
75
  const { type, range } = fields;
66
76
 
67
- const start = Array.isArray(range)
68
- ? /** @type {unknown[]} */ (range)[0]
69
- : undefined;
77
+ const start = Array.isArray(range) ? range[0] : undefined;
70
78
 
71
79
  if (typeof type === "string" && typeof start === "number") {
72
80
  starts.push(start);
@@ -151,9 +159,7 @@ class PureAnnotationsPlugin {
151
159
 
152
160
  // Kept on the module rather than in a map here, so a module the
153
161
  // filesystem cache restores rather than parses still reports.
154
- const buildInfo = /** @type {BuildInfo} */ (
155
- parser.state.module.buildInfo
156
- );
162
+ const buildInfo = parser.state.module.buildInfo;
157
163
 
158
164
  getBuildDiagnostics(buildInfo).ineffectivePureAnnotations = wasted;
159
165
  });
@@ -5,18 +5,16 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
9
- const Entrypoint = require("../Entrypoint");
10
8
  const RedundantDynamicImportWarning = require("../errors/RedundantDynamicImportWarning");
11
9
  const { compareStrings } = require("../util/comparators");
12
10
  const formatLocation = require("../util/formatLocation");
13
11
 
14
12
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
15
- /** @import Chunk from "../Chunk" */
16
- /** @import ChunkGroup from "../ChunkGroup" */
13
+ /** @import Chunk from "../graph/Chunk" */
14
+ /** @import ChunkGroup from "../graph/ChunkGroup" */
17
15
  /** @import Compiler from "../Compiler" */
18
- /** @import DependenciesBlock from "../DependenciesBlock" */
19
- /** @import Module from "../Module" */
16
+ /** @import DependenciesBlock from "../graph/DependenciesBlock" */
17
+ /** @import Module from "../module/Module" */
20
18
 
21
19
  const PLUGIN_NAME = "RedundantDynamicImportsPlugin";
22
20
 
@@ -70,7 +68,7 @@ class RedundantDynamicImportsPlugin {
70
68
  // An entrypoint is a load path in itself and carries nothing of
71
69
  // what reaches it: an async one — a worker — starts from its own
72
70
  // chunks, however much the module spawning it had loaded.
73
- if (group.isInitial() || group instanceof Entrypoint) {
71
+ if (group.isInitial() || group.isEntrypoint()) {
74
72
  entrypoints.add(group);
75
73
  continue;
76
74
  }
@@ -143,7 +141,7 @@ class RedundantDynamicImportsPlugin {
143
141
  */
144
142
  const walk = (block, importer, contexts) => {
145
143
  for (const nested of block.blocks) {
146
- if (nested instanceof AsyncDependenciesBlock) {
144
+ if (nested.isAsyncBlock()) {
147
145
  for (const dependency of nested.dependencies) {
148
146
  const target = moduleGraph.getModule(dependency);
149
147
 
@@ -15,8 +15,8 @@ const getModuleSize = require("./getModuleSize");
15
15
 
16
16
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
17
17
  /** @import Compiler from "../Compiler" */
18
- /** @import Module from "../Module" */
19
- /** @import RequestShortener from "../RequestShortener" */
18
+ /** @import Module from "../module/Module" */
19
+ /** @import RequestShortener from "../util/RequestShortener" */
20
20
  /**
21
21
  * @import {
22
22
  * ScopeHoistingBailoutGroup
@@ -5,25 +5,24 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const RuntimeGlobals = require("../RuntimeGlobals");
9
- const RuntimeModule = require("../RuntimeModule");
8
+ const AssetsOverSizeLimitWarning = require("../errors/AssetsOverSizeLimitWarning");
9
+ const EntrypointsOverSizeLimitWarning = require("../errors/EntrypointsOverSizeLimitWarning");
10
+ const NoAsyncChunksWarning = require("../errors/NoAsyncChunksWarning");
11
+ const RuntimeInLargeChunkWarning = require("../errors/RuntimeInLargeChunkWarning");
12
+ const RuntimeGlobals = require("../runtime/RuntimeGlobals");
10
13
  const { find } = require("../util/SetHelpers");
11
14
  const { compareStrings } = require("../util/comparators");
12
- const AssetsOverSizeLimitWarning = require("./AssetsOverSizeLimitWarning");
13
- const EntrypointsOverSizeLimitWarning = require("./EntrypointsOverSizeLimitWarning");
14
- const NoAsyncChunksWarning = require("./NoAsyncChunksWarning");
15
- const RuntimeInLargeChunkWarning = require("./RuntimeInLargeChunkWarning");
16
15
  const getModuleSize = require("./getModuleSize");
17
16
 
18
17
  /** @import { Source } from "webpack-sources" */
19
18
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
20
- /** @import Chunk from "../Chunk" */
21
- /** @import ChunkGraph from "../ChunkGraph" */
22
- /** @import ChunkGroup from "../ChunkGroup" */
19
+ /** @import Chunk from "../graph/Chunk" */
20
+ /** @import ChunkGraph from "../graph/ChunkGraph" */
21
+ /** @import ChunkGroup from "../graph/ChunkGroup" */
23
22
  /** @import Compilation, { Asset } from "../Compilation" */
24
23
  /** @import Compiler from "../Compiler" */
25
- /** @import Module from "../Module" */
26
- /** @import Entrypoint from "../Entrypoint" */
24
+ /** @import Module from "../module/Module" */
25
+ /** @import Entrypoint from "../graph/Entrypoint" */
27
26
  /** @import WebpackError from "../errors/WebpackError" */
28
27
 
29
28
  /**
@@ -82,7 +81,7 @@ const hasEmbeddedRuntime = (chunkGraph, entrypoint) => {
82
81
  // module beats counting, which depends on runtime modules being counted twice.
83
82
  let carriesCode = false;
84
83
  for (const module of chunkGraph.getChunkModulesIterable(runtimeChunk)) {
85
- if (!(module instanceof RuntimeModule)) {
84
+ if (!module.is("runtime")) {
86
85
  carriesCode = true;
87
86
  break;
88
87
  }
@@ -5,23 +5,30 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ const TopLevelThisWarning = require("../errors/TopLevelThisWarning");
8
9
  const {
9
10
  JAVASCRIPT_MODULE_TYPE_AUTO,
10
11
  JAVASCRIPT_MODULE_TYPE_DYNAMIC,
11
12
  JAVASCRIPT_MODULE_TYPE_ESM
12
- } = require("../ModuleTypeConstants");
13
- const TopLevelThisWarning = require("../errors/TopLevelThisWarning");
13
+ } = require("../module/ModuleTypeConstants");
14
14
  const { getBuildDiagnostics } = require("../util/buildDiagnostics");
15
15
  const { compareStrings } = require("../util/comparators");
16
- const getSourceModules = require("./getSourceModules");
17
16
 
18
17
  /** @import { Program } from "estree" */
19
18
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
20
19
  /** @import Compiler from "../Compiler" */
21
- /** @import Module, { BuildInfo } from "../Module" */
20
+ /** @import Module, { BuildInfo } from "../module/Module" */
22
21
  /** @import JavascriptParser from "../javascript/JavascriptParser" */
23
22
  /** @import { TopLevelThisDetails } from "../errors/TopLevelThisWarning" */
24
23
 
24
+ /** @typedef {{ [Key in string]?: AstValue }} AstFields */
25
+ /** @typedef {AstValue[]} AstArray */
26
+ /**
27
+ * A value found while walking an estree AST structurally: a node, a field of
28
+ * one, or a literal's value.
29
+ * @typedef {string | number | boolean | bigint | RegExp | null | undefined | AstArray | AstFields} AstValue
30
+ */
31
+
25
32
  const PLUGIN_NAME = "TopLevelThisPlugin";
26
33
 
27
34
  // Enough to name the offenders without listing every module.
@@ -42,8 +49,10 @@ const CLASS_TYPES = new Set(["ClassDeclaration", "ClassExpression"]);
42
49
  */
43
50
  const countTopLevelThis = (ast) => {
44
51
  let count = 0;
45
- /** @type {unknown[]} */
46
- const queue = [ast];
52
+ /** @type {AstValue[]} */
53
+ const queue = [
54
+ /** @type {AstValue} */ (/** @type {Program | AstValue} */ (ast))
55
+ ];
47
56
 
48
57
  while (queue.length > 0) {
49
58
  const node = queue.pop();
@@ -51,13 +60,13 @@ const countTopLevelThis = (ast) => {
51
60
  if (!node || typeof node !== "object") continue;
52
61
 
53
62
  if (Array.isArray(node)) {
54
- for (const item of /** @type {unknown[]} */ (node)) queue.push(item);
63
+ for (const item of node) queue.push(item);
55
64
  continue;
56
65
  }
57
66
 
58
67
  // Walked structurally rather than per node type, so a node the estree
59
68
  // types do not name is still reached.
60
- const fields = /** @type {Record<string, unknown>} */ (node);
69
+ const fields = /** @type {AstFields} */ (node);
61
70
  const { type } = fields;
62
71
 
63
72
  if (typeof type !== "string") continue;
@@ -71,7 +80,9 @@ const countTopLevelThis = (ast) => {
71
80
  if (CLASS_TYPES.has(type)) {
72
81
  queue.push(fields.superClass);
73
82
 
74
- const body = /** @type {EXPECTED_ANY} */ (fields.body);
83
+ const body =
84
+ /** @type {{ body: { computed?: boolean, key?: AstValue }[] } | null | undefined} */
85
+ (fields.body);
75
86
 
76
87
  for (const element of (body && body.body) || []) {
77
88
  if (element.computed) queue.push(element.key);
@@ -129,9 +140,7 @@ class TopLevelThisPlugin {
129
140
 
130
141
  // Kept on the module rather than in a map here, so a module the
131
142
  // filesystem cache restores rather than parses still reports.
132
- const buildInfo =
133
- /** @type {BuildInfo} */
134
- (parser.state.module.buildInfo);
143
+ const buildInfo = parser.state.module.buildInfo;
135
144
 
136
145
  getBuildDiagnostics(buildInfo).topLevelThis = count;
137
146
  });
@@ -162,7 +171,7 @@ class TopLevelThisPlugin {
162
171
  for (const parent of compilation.modules) {
163
172
  // Scope hoisting makes several modules into one, and the evidence
164
173
  // sits on the ones that were parsed.
165
- for (const module of getSourceModules(parent)) {
174
+ for (const module of parent.getSourceModules()) {
166
175
  if (seen.has(module)) continue;
167
176
 
168
177
  seen.add(module);
@@ -9,7 +9,6 @@ const UnsplitVendorsWarning = require("../errors/UnsplitVendorsWarning");
9
9
  const { compareStrings } = require("../util/comparators");
10
10
  const { NODE_MODULES_REGEXP } = require("../util/identifier");
11
11
  const getModuleSize = require("./getModuleSize");
12
- const getSourceModules = require("./getSourceModules");
13
12
 
14
13
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
15
14
  /** @import Compiler from "../Compiler" */
@@ -60,7 +59,7 @@ class UnsplitVendorsPlugin {
60
59
  let applicationModules = 0;
61
60
 
62
61
  for (const module of chunkGraph.getChunkModulesIterable(chunk)) {
63
- for (const inner of getSourceModules(module)) {
62
+ for (const inner of module.getSourceModules()) {
64
63
  const resource = inner.nameForCondition();
65
64
 
66
65
  // A module with no resource is webpack's own (a runtime module),
@@ -6,20 +6,19 @@
6
6
  "use strict";
7
7
 
8
8
  const UnusedAliasesWarning = require("../errors/UnusedAliasesWarning");
9
- const { join } = require("../util/fs");
9
+ const { join } = require("../fs/fs");
10
10
  const {
11
11
  ABSOLUTE_PATH_REGEXP,
12
12
  WINDOWS_PATH_SEPARATOR_REGEXP
13
13
  } = require("../util/identifier");
14
14
  const matchAlias = require("../util/matchAlias");
15
- const getSourceModules = require("./getSourceModules");
16
15
 
17
16
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
18
17
  /** @import Compiler from "../Compiler" */
19
- /** @import Dependency from "../Dependency" */
20
- /** @import DependenciesBlock from "../DependenciesBlock" */
21
- /** @import { ContextDependencyOptions } from "../dependencies/ContextDependency" */
22
- /** @import Module from "../Module" */
18
+ /** @import Dependency from "../graph/Dependency" */
19
+ /** @import DependenciesBlock from "../graph/DependenciesBlock" */
20
+ /** @import { ContextDependencyOptions } from "../dependencies/context/ContextDependency" */
21
+ /** @import Module from "../module/Module" */
23
22
 
24
23
  /**
25
24
  * One `resolve.alias` entry, prepared for repeated matching.
@@ -159,7 +158,7 @@ class UnusedAliasesPlugin {
159
158
  for (const module of compilation.modules) {
160
159
  if (unused === 0) break;
161
160
 
162
- for (const sourceModule of getSourceModules(module)) {
161
+ for (const sourceModule of module.getSourceModules()) {
163
162
  const rawRequest =
164
163
  /** @type {Module & { rawRequest?: string }} */
165
164
  (sourceModule).rawRequest;
@@ -5,10 +5,9 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const { ASSET_TYPE } = require("../ModuleSourceTypeConstants");
9
- const HarmonyImportBareSideEffectDependency = require("../dependencies/HarmonyImportBareSideEffectDependency");
10
- const HarmonyImportSideEffectDependency = require("../dependencies/HarmonyImportSideEffectDependency");
11
8
  const UnusedAssetsWarning = require("../errors/UnusedAssetsWarning");
9
+ const isDependencyKind = require("../graph/isDependencyKind");
10
+ const { ASSET_TYPE } = require("../module/ModuleSourceTypeConstants");
12
11
  const { compareStrings } = require("../util/comparators");
13
12
  const getModuleSize = require("./getModuleSize");
14
13
 
@@ -63,8 +62,9 @@ class UnusedAssetsPlugin {
63
62
  // Anything else — a `url()`, a `new URL()`, an html `src` — reads
64
63
  // the file, and a bare import asks for it on purpose.
65
64
  if (
66
- !(dependency instanceof HarmonyImportSideEffectDependency) ||
67
- dependency instanceof HarmonyImportBareSideEffectDependency
65
+ dependency === null ||
66
+ !isDependencyKind(dependency, "esm-side-effect-import") ||
67
+ isDependencyKind(dependency, "esm-bare-side-effect-import")
68
68
  ) {
69
69
  onlyUnread = false;
70
70
  break;
@@ -5,12 +5,12 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const { VALUE_DEP_PREFIX, getDeclaredKeys } = require("../DefinePlugin");
8
+ const { VALUE_DEP_PREFIX, getDeclaredKeys } = require("../define/DefinePlugin");
9
9
  const UnusedDefinesWarning = require("../errors/UnusedDefinesWarning");
10
10
 
11
11
  /** @import { PerformanceOptions } from "../../declarations/WebpackOptions" */
12
12
  /** @import Compiler from "../Compiler" */
13
- /** @import { NormalModuleBuildInfo } from "../NormalModule" */
13
+ /** @import { NormalModuleBuildInfo } from "../module/NormalModule" */
14
14
 
15
15
  const PLUGIN_NAME = "UnusedDefinesPlugin";
16
16
 
@@ -5,11 +5,10 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const ExternalModule = require("../ExternalModule");
8
+ const UnusedExternalsWarning = require("../errors/UnusedExternalsWarning");
9
9
  const {
10
10
  getAlternateCoreModuleRequest
11
- } = require("../ExternalModuleFactoryPlugin");
12
- const UnusedExternalsWarning = require("../errors/UnusedExternalsWarning");
11
+ } = require("../externals/ExternalModuleFactoryPlugin");
13
12
 
14
13
  /**
15
14
  * @import {
@@ -74,7 +73,7 @@ class UnusedExternalsPlugin {
74
73
  if (compilation.modules.size === 0) return;
75
74
 
76
75
  for (const module of compilation.modules) {
77
- if (module instanceof ExternalModule) {
76
+ if (module.is("external")) {
78
77
  // The request as written, not what it was rewritten to.
79
78
  declared.delete(module.userRequest);
80
79
 
@@ -5,10 +5,8 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const RemoteModule = require("../container/RemoteModule");
9
8
  const { getDeclaredRemotes } = require("../container/declaredRemotes");
10
9
  const UnusedFederationWarning = require("../errors/UnusedFederationWarning");
11
- const ConsumeSharedModule = require("../sharing/ConsumeSharedModule");
12
10
  const { getDeclaredShared } = require("../sharing/declaredShared");
13
11
  const { compareStrings } = require("../util/comparators");
14
12
 
@@ -80,9 +78,9 @@ class UnusedFederationPlugin {
80
78
  const remoteRequests = new Set();
81
79
 
82
80
  for (const module of compilation.modules) {
83
- if (module instanceof ConsumeSharedModule) {
81
+ if (module.is("consume-shared")) {
84
82
  usedShared.add(module.options.shareKey);
85
- } else if (module instanceof RemoteModule) {
83
+ } else if (module.is("remote")) {
86
84
  remoteRequests.add(module.request);
87
85
  }
88
86
  }