@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
@@ -5,10 +5,9 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- /** @typedef {import("./Dependency")} Dependency */
9
- /** @typedef {import("./Dependency").GetConditionFn} GetConditionFn */
10
- /** @typedef {import("./Module")} Module */
11
- /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
8
+ /** @import Dependency, { GetConditionFn } from "./Dependency" */
9
+ /** @import Module from "./Module" */
10
+ /** @import { RuntimeSpec } from "./util/runtime" */
12
11
 
13
12
  /**
14
13
  * Module itself is not connected, but transitive modules are connected transitively.
@@ -195,14 +194,8 @@ class ModuleGraphConnection {
195
194
  }
196
195
  }
197
196
 
198
- /** @typedef {typeof TRANSITIVE_ONLY} TRANSITIVE_ONLY */
199
- /** @typedef {typeof CIRCULAR_CONNECTION} CIRCULAR_CONNECTION */
197
+ ModuleGraphConnection.CIRCULAR_CONNECTION = CIRCULAR_CONNECTION;
198
+ ModuleGraphConnection.TRANSITIVE_ONLY = TRANSITIVE_ONLY;
199
+ ModuleGraphConnection.addConnectionStates = addConnectionStates;
200
200
 
201
201
  module.exports = ModuleGraphConnection;
202
- module.exports.CIRCULAR_CONNECTION = /** @type {typeof CIRCULAR_CONNECTION} */ (
203
- CIRCULAR_CONNECTION
204
- );
205
- module.exports.TRANSITIVE_ONLY = /** @type {typeof TRANSITIVE_ONLY} */ (
206
- TRANSITIVE_ONLY
207
- );
208
- module.exports.addConnectionStates = addConnectionStates;
@@ -11,14 +11,12 @@ const Template = require("./Template");
11
11
  const CssModulesPlugin = require("./css/CssModulesPlugin");
12
12
  const JavascriptModulesPlugin = require("./javascript/JavascriptModulesPlugin");
13
13
 
14
- /** @typedef {import("webpack-sources").Source} Source */
15
- /** @typedef {import("./Compiler")} Compiler */
16
- /** @typedef {import("./ExportsInfo")} ExportsInfo */
17
- /** @typedef {import("./ExportsInfo").ExportInfo} ExportInfo */
18
- /** @typedef {import("./Module")} Module */
19
- /** @typedef {import("./Module").BuildMeta} BuildMeta */
20
- /** @typedef {import("./ModuleGraph")} ModuleGraph */
21
- /** @typedef {import("./RequestShortener")} RequestShortener */
14
+ /** @import { Source } from "webpack-sources" */
15
+ /** @import Compiler from "./Compiler" */
16
+ /** @import ExportsInfo, { ExportInfo } from "./ExportsInfo" */
17
+ /** @import Module, { BuildMeta } from "./Module" */
18
+ /** @import ModuleGraph from "./ModuleGraph" */
19
+ /** @import RequestShortener from "./RequestShortener" */
22
20
 
23
21
  /**
24
22
  * Join iterable with comma.
@@ -49,7 +47,7 @@ const joinIterableWithComma = (iterable) => {
49
47
  * @param {ExportsInfo} exportsInfo data
50
48
  * @param {ModuleGraph} moduleGraph moduleGraph
51
49
  * @param {RequestShortener} requestShortener requestShortener
52
- * @param {Set<ExportInfo>} alreadyPrinted deduplication set
50
+ * @param {Set<InstanceType<ExportInfo>>} alreadyPrinted deduplication set
53
51
  * @returns {void}
54
52
  */
55
53
  const printExportsInfoToSource = (
@@ -65,7 +63,7 @@ const printExportsInfoToSource = (
65
63
  let alreadyPrintedExports = 0;
66
64
 
67
65
  // determine exports to print
68
- /** @type {ExportInfo[]} */
66
+ /** @type {InstanceType<ExportInfo>[]} */
69
67
  const printedExports = [];
70
68
  for (const exportInfo of exportsInfo.orderedExports) {
71
69
  if (!alreadyPrinted.has(exportInfo)) {
@@ -6,18 +6,21 @@
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("webpack-sources").Source} Source */
13
- /** @typedef {import("./Chunk")} Chunk */
14
- /** @typedef {import("./Compilation")} Compilation */
15
- /** @typedef {import("./DependencyTemplates")} DependencyTemplates */
16
- /** @typedef {import("./Module")} Module */
17
- /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
18
- /** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */
19
- /** @typedef {import("./javascript/JavascriptModulesPlugin").ModuleRenderContext} ModuleRenderContext */
20
- /** @typedef {import("./util/Hash")} Hash */
11
+ /** @import { Tap } from "tapable" */
12
+ /** @import { Source } from "webpack-sources" */
13
+ /** @import Compilation from "./Compilation" */
14
+ /** @import DependencyTemplates from "./DependencyTemplates" */
15
+ /** @import Module from "./Module" */
16
+ /** @import RuntimeTemplate from "./RuntimeTemplate" */
17
+ /**
18
+ * @import {
19
+ * ChunkRenderContext,
20
+ * ModuleRenderContext
21
+ * } from "./javascript/JavascriptModulesPlugin"
22
+ */
23
+ /** @import Hash from "./util/Hash" */
21
24
 
22
25
  /**
23
26
  * Defines the if set type used by this module.
@@ -25,10 +28,6 @@ const memoize = require("./util/memoize");
25
28
  * @typedef {import("tapable").IfSet<T>} IfSet
26
29
  */
27
30
 
28
- const getJavascriptModulesPlugin = memoize(() =>
29
- require("./javascript/JavascriptModulesPlugin")
30
- );
31
-
32
31
  // TODO webpack 6: remove this class
33
32
  class ModuleTemplate {
34
33
  /**
@@ -51,18 +50,18 @@ class ModuleTemplate {
51
50
  * @param {(source: Source, module: Module, moduleRenderContext: ModuleRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
52
51
  */
53
52
  (options, fn) => {
54
- getJavascriptModulesPlugin()
55
- .getCompilationHooks(compilation)
56
- .renderModuleContent.tap(
57
- options,
58
- (source, module, renderContext) =>
59
- fn(
60
- source,
61
- module,
62
- renderContext,
63
- renderContext.dependencyTemplates
64
- )
65
- );
53
+ JavascriptModulesPlugin.getCompilationHooks(
54
+ compilation
55
+ ).renderModuleContent.tap(
56
+ options,
57
+ (source, module, renderContext) =>
58
+ fn(
59
+ source,
60
+ module,
61
+ renderContext,
62
+ renderContext.dependencyTemplates
63
+ )
64
+ );
66
65
  },
67
66
  "ModuleTemplate.hooks.content is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModuleContent instead)",
68
67
  "DEP_MODULE_TEMPLATE_CONTENT"
@@ -77,18 +76,18 @@ class ModuleTemplate {
77
76
  * @param {(source: Source, module: Module, moduleRenderContext: ModuleRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
78
77
  */
79
78
  (options, fn) => {
80
- getJavascriptModulesPlugin()
81
- .getCompilationHooks(compilation)
82
- .renderModuleContent.tap(
83
- options,
84
- (source, module, renderContext) =>
85
- fn(
86
- source,
87
- module,
88
- renderContext,
89
- renderContext.dependencyTemplates
90
- )
91
- );
79
+ JavascriptModulesPlugin.getCompilationHooks(
80
+ compilation
81
+ ).renderModuleContent.tap(
82
+ options,
83
+ (source, module, renderContext) =>
84
+ fn(
85
+ source,
86
+ module,
87
+ renderContext,
88
+ renderContext.dependencyTemplates
89
+ )
90
+ );
92
91
  },
93
92
  "ModuleTemplate.hooks.module is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModuleContent instead)",
94
93
  "DEP_MODULE_TEMPLATE_MODULE"
@@ -103,18 +102,18 @@ class ModuleTemplate {
103
102
  * @param {(source: Source, module: Module, chunkRenderContext: ChunkRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
104
103
  */
105
104
  (options, fn) => {
106
- getJavascriptModulesPlugin()
107
- .getCompilationHooks(compilation)
108
- .renderModuleContainer.tap(
109
- options,
110
- (source, module, renderContext) =>
111
- fn(
112
- source,
113
- module,
114
- renderContext,
115
- renderContext.dependencyTemplates
116
- )
117
- );
105
+ JavascriptModulesPlugin.getCompilationHooks(
106
+ compilation
107
+ ).renderModuleContainer.tap(
108
+ options,
109
+ (source, module, renderContext) =>
110
+ fn(
111
+ source,
112
+ module,
113
+ renderContext,
114
+ renderContext.dependencyTemplates
115
+ )
116
+ );
118
117
  },
119
118
  "ModuleTemplate.hooks.render is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModuleContainer instead)",
120
119
  "DEP_MODULE_TEMPLATE_RENDER"
@@ -129,18 +128,18 @@ class ModuleTemplate {
129
128
  * @param {(source: Source, module: Module, chunkRenderContext: ChunkRenderContext, dependencyTemplates: DependencyTemplates) => Source} fn fn
130
129
  */
131
130
  (options, fn) => {
132
- getJavascriptModulesPlugin()
133
- .getCompilationHooks(compilation)
134
- .renderModulePackage.tap(
135
- options,
136
- (source, module, renderContext) =>
137
- fn(
138
- source,
139
- module,
140
- renderContext,
141
- renderContext.dependencyTemplates
142
- )
143
- );
131
+ JavascriptModulesPlugin.getCompilationHooks(
132
+ compilation
133
+ ).renderModulePackage.tap(
134
+ options,
135
+ (source, module, renderContext) =>
136
+ fn(
137
+ source,
138
+ module,
139
+ renderContext,
140
+ renderContext.dependencyTemplates
141
+ )
142
+ );
144
143
  },
145
144
  "ModuleTemplate.hooks.package is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModulePackage instead)",
146
145
  "DEP_MODULE_TEMPLATE_PACKAGE"
@@ -10,9 +10,13 @@ const { MultiHook, SyncHook } = require("tapable");
10
10
 
11
11
  const MultiStats = require("./MultiStats");
12
12
  const MultiWatching = require("./MultiWatching");
13
- const ConcurrentCompilationError = require("./errors/ConcurrentCompilationError");
14
13
  const WebpackError = require("./errors/WebpackError");
15
14
  const ArrayQueue = require("./util/ArrayQueue");
15
+ const memoize = require("./util/memoize");
16
+
17
+ const getConcurrentCompilationError = memoize(() =>
18
+ require("./errors/ConcurrentCompilationError")
19
+ );
16
20
 
17
21
  /**
18
22
  * Defines the shared type used by this module.
@@ -25,22 +29,31 @@ const ArrayQueue = require("./util/ArrayQueue");
25
29
  * @template R
26
30
  * @typedef {import("tapable").SyncBailHook<T, R>} SyncBailHook<T, R>
27
31
  */
28
- /** @typedef {import("../declarations/WebpackOptions").WebpackOptions} WebpackOptions */
29
- /** @typedef {import("../declarations/WebpackOptions").WatchOptions} WatchOptions */
30
- /** @typedef {import("./Compiler")} Compiler */
32
+
33
+ /**
34
+ * @import {
35
+ * WebpackOptions,
36
+ * WatchOptions
37
+ * } from "../declarations/WebpackOptions"
38
+ */
39
+ /** @import Compiler from "./Compiler" */
31
40
  /**
32
41
  * Defines the callback type used by this module.
33
42
  * @template T
34
43
  * @template [R=void]
35
44
  * @typedef {import("./webpack").Callback<T, R>} Callback
36
45
  */
37
- /** @typedef {import("./webpack").ErrorCallback} ErrorCallback */
38
- /** @typedef {import("./Stats")} Stats */
39
- /** @typedef {import("./logging/Logger").Logger} Logger */
40
- /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
41
- /** @typedef {import("./util/fs").IntermediateFileSystem} IntermediateFileSystem */
42
- /** @typedef {import("./util/fs").OutputFileSystem} OutputFileSystem */
43
- /** @typedef {import("./util/fs").WatchFileSystem} WatchFileSystem */
46
+ /** @import { ErrorCallback } from "./webpack" */
47
+ /** @import Stats from "./Stats" */
48
+ /** @import { Logger } from "./logging/Logger" */
49
+ /**
50
+ * @import {
51
+ * InputFileSystem,
52
+ * IntermediateFileSystem,
53
+ * OutputFileSystem,
54
+ * WatchFileSystem
55
+ * } from "./util/fs"
56
+ */
44
57
 
45
58
  /**
46
59
  * Defines the run with dependencies handler callback.
@@ -77,14 +90,16 @@ module.exports = class MultiCompiler {
77
90
  }
78
91
 
79
92
  this.hooks = Object.freeze({
80
- /** @type {SyncHook<[MultiStats]>} */
81
- done: new SyncHook(["stats"]),
93
+ /** @type {SyncHook<[MultiStats, Compiler[]]>} */
94
+ done: new SyncHook(["stats", "changedCompilers"]),
82
95
  /** @type {MultiHook<SyncHook<[string | null, number]>>} */
83
96
  invalid: new MultiHook(compilers.map((c) => c.hooks.invalid)),
84
97
  /** @type {MultiHook<AsyncSeriesHook<[Compiler]>>} */
85
98
  run: new MultiHook(compilers.map((c) => c.hooks.run)),
86
99
  /** @type {SyncHook<[]>} */
87
100
  watchClose: new SyncHook([]),
101
+ /** @type {MultiHook<AsyncSeriesHook<[]>>} */
102
+ shutdown: new MultiHook(compilers.map((c) => c.hooks.shutdown)),
88
103
  /** @type {MultiHook<AsyncSeriesHook<[Compiler]>>} */
89
104
  watchRun: new MultiHook(compilers.map((c) => c.hooks.watchRun)),
90
105
  /** @type {MultiHook<SyncBailHook<[string, string, EXPECTED_ANY[] | undefined], true | void>>} */
@@ -107,6 +122,8 @@ module.exports = class MultiCompiler {
107
122
 
108
123
  /** @type {(Stats | null)[]} */
109
124
  const compilerStats = this.compilers.map(() => null);
125
+ /** @type {Set<Compiler>} */
126
+ const changedCompilers = new Set();
110
127
  let doneCompilers = 0;
111
128
  for (let index = 0; index < this.compilers.length; index++) {
112
129
  const compiler = this.compilers[index];
@@ -114,17 +131,26 @@ module.exports = class MultiCompiler {
114
131
  let compilerDone = false;
115
132
  // eslint-disable-next-line no-loop-func
116
133
  compiler.hooks.done.tap(CLASS_NAME, (stats) => {
134
+ changedCompilers.add(compiler);
117
135
  if (!compilerDone) {
118
136
  compilerDone = true;
119
137
  doneCompilers++;
120
138
  }
121
139
  compilerStats[compilerIndex] = stats;
122
140
  if (doneCompilers === this.compilers.length) {
141
+ const changed = this.compilers.filter((c) => changedCompilers.has(c));
142
+ changedCompilers.clear();
123
143
  this.hooks.done.call(
124
- new MultiStats(/** @type {Stats[]} */ (compilerStats))
144
+ // Copy: the live array is cleared per child on shutdown.
145
+ new MultiStats(/** @type {Stats[]} */ ([...compilerStats])),
146
+ changed
125
147
  );
126
148
  }
127
149
  });
150
+ // Each entry holds a Stats -> Compilation; don't outlive the child's close().
151
+ compiler.hooks.shutdown.tap(CLASS_NAME, () => {
152
+ compilerStats[compilerIndex] = null;
153
+ });
128
154
  // eslint-disable-next-line no-loop-func
129
155
  compiler.hooks.invalid.tap(CLASS_NAME, () => {
130
156
  if (compilerDone) {
@@ -193,10 +219,22 @@ module.exports = class MultiCompiler {
193
219
  }
194
220
 
195
221
  get outputPath() {
222
+ // Match whole path segments: "/dist-app" must not count as inside "/dist"
223
+ /**
224
+ * @param {string} parent candidate ancestor path
225
+ * @param {string} path path to test
226
+ * @returns {boolean} true when path is parent or inside it
227
+ */
228
+ const isSubPath = (parent, path) => {
229
+ if (path === parent) return true;
230
+ if (!path.startsWith(parent)) return false;
231
+ const next = path.charCodeAt(parent.length);
232
+ return next === 47 || next === 92 || /[/\\]$/.test(parent);
233
+ };
196
234
  let commonPath = this.compilers[0].outputPath;
197
235
  for (const compiler of this.compilers) {
198
236
  while (
199
- compiler.outputPath.indexOf(commonPath) !== 0 &&
237
+ !isSubPath(commonPath, compiler.outputPath) &&
200
238
  /[/\\]/.test(commonPath)
201
239
  ) {
202
240
  commonPath = commonPath.replace(/[/\\][^/\\]*$/, "");
@@ -485,7 +523,28 @@ module.exports = class MultiCompiler {
485
523
  }
486
524
  let errored = false;
487
525
  let running = 0;
526
+ let duringSetup = true;
527
+ /** @type {Error | null} */
528
+ let setupError = null;
488
529
  const parallelism = /** @type {number} */ (this._options.parallelism);
530
+ /**
531
+ * Closes all node watchings.
532
+ * @param {() => void} onClosed called when every watching is closed
533
+ * @returns {void}
534
+ */
535
+ const closeWatchings = (onClosed) => {
536
+ asyncLib.each(
537
+ nodes,
538
+ (node, callback) => {
539
+ if (node.compiler.watching) {
540
+ node.compiler.watching.close(callback);
541
+ } else {
542
+ callback();
543
+ }
544
+ },
545
+ onClosed
546
+ );
547
+ };
489
548
  /**
490
549
  * Processes the provided node.
491
550
  * @param {Node} node node
@@ -497,17 +556,13 @@ module.exports = class MultiCompiler {
497
556
  if (errored) return;
498
557
  if (err) {
499
558
  errored = true;
500
- return asyncLib.each(
501
- nodes,
502
- (node, callback) => {
503
- if (node.compiler.watching) {
504
- node.compiler.watching.close(callback);
505
- } else {
506
- callback();
507
- }
508
- },
509
- () => callback(err)
510
- );
559
+ // During setup later watchings do not exist yet — defer the close
560
+ // sweep until the setup loop created them all, or they would leak
561
+ if (duringSetup) {
562
+ setupError = err;
563
+ return;
564
+ }
565
+ return closeWatchings(() => callback(err));
511
566
  }
512
567
  node.result = stats;
513
568
  running--;
@@ -627,7 +682,14 @@ module.exports = class MultiCompiler {
627
682
  }
628
683
  }
629
684
  };
630
- processQueueWorker();
685
+ duringSetup = false;
686
+ if (setupError) {
687
+ // The setup loop finished, every watching exists now — safe to sweep
688
+ const err = setupError;
689
+ closeWatchings(() => callback(err));
690
+ } else {
691
+ processQueueWorker();
692
+ }
631
693
  return setupResults;
632
694
  }
633
695
 
@@ -639,36 +701,40 @@ module.exports = class MultiCompiler {
639
701
  */
640
702
  watch(watchOptions, handler) {
641
703
  if (this.running) {
642
- handler(new ConcurrentCompilationError());
704
+ handler(new (getConcurrentCompilationError())());
643
705
  return;
644
706
  }
645
- this.running = true;
646
-
647
- if (this.validateDependencies(handler)) {
648
- const watchings = this._runGraph(
649
- (compiler, idx, callback, isBlocked, setChanged, setInvalid) => {
650
- const watching = compiler.watch(
651
- Array.isArray(watchOptions) ? watchOptions[idx] : watchOptions,
652
- callback
653
- );
654
- if (watching) {
655
- watching._onInvalid = setInvalid;
656
- watching._onChange = setChanged;
657
- watching._isBlocked = isBlocked;
658
- }
659
- return watching;
660
- },
661
- (compiler, watching, _callback) => {
662
- if (compiler.watching !== watching) return;
663
- if (!watching.running) watching.invalidate();
664
- },
665
- handler
666
- );
667
- this.watching = new MultiWatching(watchings, this);
707
+ // Only mark as running after validation, so a retry reports the real error
708
+ if (!this.validateDependencies(handler)) {
709
+ this.watching = new MultiWatching([], this);
668
710
  return this.watching;
669
711
  }
712
+ this.running = true;
670
713
 
671
- this.watching = new MultiWatching([], this);
714
+ const watchings = this._runGraph(
715
+ (compiler, idx, callback, isBlocked, setChanged, setInvalid) => {
716
+ const watching = compiler.watch(
717
+ Array.isArray(watchOptions) ? watchOptions[idx] : watchOptions,
718
+ callback
719
+ );
720
+ if (watching) {
721
+ watching._onInvalid = setInvalid;
722
+ watching._onChange = setChanged;
723
+ watching._isBlocked = isBlocked;
724
+ }
725
+ return watching;
726
+ },
727
+ (compiler, watching, _callback) => {
728
+ if (compiler.watching !== watching) return;
729
+ if (!watching.running) watching.invalidate();
730
+ },
731
+ (err, stats) => {
732
+ // A fatal error tears the whole graph down — allow watching again
733
+ if (err) this.running = false;
734
+ handler(err, stats);
735
+ }
736
+ );
737
+ this.watching = new MultiWatching(watchings, this);
672
738
  return this.watching;
673
739
  }
674
740
 
@@ -679,24 +745,24 @@ module.exports = class MultiCompiler {
679
745
  */
680
746
  run(callback) {
681
747
  if (this.running) {
682
- callback(new ConcurrentCompilationError());
748
+ callback(new (getConcurrentCompilationError())());
683
749
  return;
684
750
  }
751
+ // Only mark as running after validation, so a retry reports the real error
752
+ if (!this.validateDependencies(callback)) return;
685
753
  this.running = true;
686
754
 
687
- if (this.validateDependencies(callback)) {
688
- this._runGraph(
689
- () => {},
690
- (compiler, setupResult, callback) => compiler.run(callback),
691
- (err, stats) => {
692
- this.running = false;
755
+ this._runGraph(
756
+ () => {},
757
+ (compiler, setupResult, callback) => compiler.run(callback),
758
+ (err, stats) => {
759
+ this.running = false;
693
760
 
694
- if (callback !== undefined) {
695
- return callback(err, stats);
696
- }
761
+ if (callback !== undefined) {
762
+ return callback(err, stats);
697
763
  }
698
- );
699
- }
764
+ }
765
+ );
700
766
  }
701
767
 
702
768
  purgeInputFileSystem() {
package/lib/MultiStats.js CHANGED
@@ -7,14 +7,26 @@
7
7
 
8
8
  const identifierUtils = require("./util/identifier");
9
9
 
10
- /** @typedef {import("../declarations/WebpackOptions").StatsOptions} StatsOptions */
11
- /** @typedef {import("../declarations/WebpackOptions").StatsValue} StatsValue */
12
- /** @typedef {import("./Compilation").CreateStatsOptionsContext} CreateStatsOptionsContext */
13
- /** @typedef {import("./Compilation").NormalizedStatsOptions} NormalizedStatsOptions */
14
- /** @typedef {import("./Stats")} Stats */
15
- /** @typedef {import("./stats/DefaultStatsFactoryPlugin").KnownStatsCompilation} KnownStatsCompilation */
16
- /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsCompilation} StatsCompilation */
17
- /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsError} StatsError */
10
+ /**
11
+ * @import {
12
+ * StatsOptions,
13
+ * StatsValue
14
+ * } from "../declarations/WebpackOptions"
15
+ */
16
+ /**
17
+ * @import {
18
+ * CreateStatsOptionsContext,
19
+ * NormalizedStatsOptions
20
+ * } from "./Compilation"
21
+ */
22
+ /** @import Stats from "./Stats" */
23
+ /**
24
+ * @import {
25
+ * KnownStatsCompilation,
26
+ * StatsCompilation,
27
+ * StatsError
28
+ * } from "./stats/DefaultStatsFactoryPlugin"
29
+ */
18
30
 
19
31
  /**
20
32
  * Returns indent.
@@ -28,7 +40,7 @@ const indent = (str, prefix) => {
28
40
  };
29
41
 
30
42
  /** @typedef {StatsOptions} MultiStatsOptions */
31
- /** @typedef {{ version: boolean, hash: boolean, errorsCount: boolean, warningsCount: boolean, errors: boolean, warnings: boolean, children: NormalizedStatsOptions[] }} ChildOptions */
43
+ /** @typedef {{ version: boolean, hash: boolean, errorsCount: boolean, warningsCount: boolean, errors: boolean, warnings: boolean, hints: boolean, hintsCount: boolean, children: NormalizedStatsOptions[] }} ChildOptions */
32
44
 
33
45
  class MultiStats {
34
46
  /**
@@ -110,6 +122,8 @@ class MultiStats {
110
122
  warningsCount: children.every((o) => o.warningsCount),
111
123
  errors: children.every((o) => o.errors),
112
124
  warnings: children.every((o) => o.warnings),
125
+ hints: children.every((o) => o.hints),
126
+ hintsCount: children.every((o) => o.hintsCount),
113
127
  children
114
128
  };
115
129
  }
@@ -176,6 +190,17 @@ class MultiStats {
176
190
  }
177
191
  }
178
192
  }
193
+ if (childOptions.hints) {
194
+ obj.hints = [];
195
+ for (const j of obj.children) {
196
+ const hints =
197
+ /** @type {NonNullable<KnownStatsCompilation["hints"]>} */
198
+ (j.hints);
199
+ for (const i of hints) {
200
+ obj.hints.push(mapError(j, i));
201
+ }
202
+ }
203
+ }
179
204
  if (childOptions.errorsCount) {
180
205
  obj.errorsCount = 0;
181
206
  for (const j of obj.children) {
@@ -188,6 +213,12 @@ class MultiStats {
188
213
  obj.warningsCount += /** @type {number} */ (j.warningsCount);
189
214
  }
190
215
  }
216
+ if (childOptions.hintsCount) {
217
+ obj.hintsCount = 0;
218
+ for (const j of obj.children) {
219
+ obj.hintsCount += /** @type {number} */ (j.hintsCount);
220
+ }
221
+ }
191
222
  return obj;
192
223
  }
193
224
 
@@ -7,9 +7,9 @@
7
7
 
8
8
  const asyncLib = require("neo-async");
9
9
 
10
- /** @typedef {import("./MultiCompiler")} MultiCompiler */
11
- /** @typedef {import("./Watching")} Watching */
12
- /** @typedef {import("./webpack").ErrorCallback} ErrorCallback */
10
+ /** @import MultiCompiler from "./MultiCompiler" */
11
+ /** @import Watching from "./Watching" */
12
+ /** @import { ErrorCallback } from "./webpack" */
13
13
 
14
14
  class MultiWatching {
15
15
  /**
@@ -5,7 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- /** @typedef {import("./Compiler")} Compiler */
8
+ /** @import Compiler from "./Compiler" */
9
9
 
10
10
  const PLUGIN_NAME = "NoEmitOnErrorsPlugin";
11
11