@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
@@ -7,18 +7,18 @@
7
7
 
8
8
  const { UsageState } = require("../ExportsInfo");
9
9
 
10
- /** @typedef {import("../Dependency").RawReferencedExports} RawReferencedExports */
11
- /** @typedef {import("../ExportsInfo").ExportInfo} ExportInfo */
12
- /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
10
+ /** @import { RawReferencedExports } from "../Dependency" */
11
+ /** @import { ExportInfo } from "../ExportsInfo" */
12
+ /** @import { RuntimeSpec } from "../util/runtime" */
13
13
 
14
14
  /**
15
15
  * Process export info.
16
16
  * @param {RuntimeSpec} runtime the runtime
17
17
  * @param {RawReferencedExports} referencedExports list of referenced exports, will be added to
18
18
  * @param {string[]} prefix export prefix
19
- * @param {ExportInfo=} exportInfo the export info
19
+ * @param {InstanceType<ExportInfo>=} exportInfo the export info
20
20
  * @param {boolean} defaultPointsToSelf when true, using default will reference itself
21
- * @param {Set<ExportInfo>=} alreadyVisited already visited export info (to handle circular reexports)
21
+ * @param {Set<InstanceType<ExportInfo>>=} alreadyVisited already visited export info (to handle circular reexports)
22
22
  */
23
23
  const processExportInfo = (
24
24
  runtime,
@@ -17,30 +17,42 @@ const DelegatedSourceDependency = require("../dependencies/DelegatedSourceDepend
17
17
  const StaticExportsDependency = require("../dependencies/StaticExportsDependency");
18
18
  const makeSerializable = require("../util/makeSerializable");
19
19
 
20
- /** @typedef {import("../../declarations/plugins/dll/DllReferencePlugin").DllReferencePluginOptions} DllReferencePluginOptions */
21
- /** @typedef {import("../config/defaults").WebpackOptionsNormalizedWithDefaults} WebpackOptions */
22
- /** @typedef {import("../Compilation")} Compilation */
23
- /** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
24
- /** @typedef {import("../Generator").SourceTypes} SourceTypes */
25
- /** @typedef {import("./LibManifestPlugin").ManifestModuleData} ManifestModuleData */
26
- /** @typedef {import("../Module").ModuleId} ModuleId */
27
- /** @typedef {import("../Module").BuildCallback} BuildCallback */
28
- /** @typedef {import("../Module").BuildMeta} BuildMeta */
29
- /** @typedef {import("../Module").CodeGenerationContext} CodeGenerationContext */
30
- /** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
31
- /** @typedef {import("../Module").LibIdentOptions} LibIdentOptions */
32
- /** @typedef {import("../Module").LibIdent} LibIdent */
33
- /** @typedef {import("../Module").NeedBuildCallback} NeedBuildCallback */
34
- /** @typedef {import("../Module").NeedBuildContext} NeedBuildContext */
35
- /** @typedef {import("../Module").Sources} Sources */
36
- /** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
37
- /** @typedef {import("../RequestShortener")} RequestShortener */
38
- /** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
20
+ /**
21
+ * @import {
22
+ * DllReferencePluginOptions
23
+ * } from "../../declarations/plugins/dll/DllReferencePlugin"
24
+ */
25
+ /** @import { ModuleId } from "../ChunkGraph" */
26
+ /**
27
+ * @import {
28
+ * WebpackOptionsNormalizedWithDefaults as WebpackOptions
29
+ * } from "../config/defaults"
30
+ */
31
+ /** @import Compilation from "../Compilation" */
32
+ /** @import { UpdateHashContext } from "../Dependency" */
33
+ /** @import { ManifestModuleData } from "./LibManifestPlugin" */
34
+ /**
35
+ * @import {
36
+ * BuildCallback,
37
+ * BuildMeta,
38
+ * CodeGenerationContext,
39
+ * CodeGenerationResult,
40
+ * LibIdentOptions,
41
+ * LibIdent,
42
+ * NeedBuildCallback,
43
+ * NeedBuildContext,
44
+ * Sources,
45
+ * RuntimeRequirements,
46
+ * SourceTypes
47
+ * } from "../Module"
48
+ */
49
+ /** @import RequestShortener from "../RequestShortener" */
50
+ /** @import { ResolverWithOptions } from "../ResolverFactory" */
39
51
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[DelegatedModuleSourceRequest, DelegatedModuleData, DelegatedModuleType, string, string | Module]>} ObjectDeserializerContext */
40
52
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[DelegatedModuleSourceRequest, DelegatedModuleData, DelegatedModuleType, string, string | Module]>} ObjectSerializerContext */
41
- /** @typedef {import("../dependencies/StaticExportsDependency").Exports} Exports */
42
- /** @typedef {import("../util/Hash")} Hash */
43
- /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
53
+ /** @import { Exports } from "../dependencies/StaticExportsDependency" */
54
+ /** @import Hash from "../util/Hash" */
55
+ /** @import { InputFileSystem } from "../util/fs" */
44
56
 
45
57
  /** @typedef {string} DelegatedModuleSourceRequest */
46
58
 
@@ -7,13 +7,21 @@
7
7
 
8
8
  const DelegatedModule = require("./DelegatedModule");
9
9
 
10
- /** @typedef {import("../../declarations/plugins/dll/DllReferencePlugin").DllReferencePluginOptions} DllReferencePluginOptions */
11
- /** @typedef {import("../../declarations/plugins/dll/DllReferencePlugin").DllReferencePluginOptionsContent} DllReferencePluginOptionsContent */
12
- /** @typedef {import("./DelegatedModule").DelegatedModuleData} DelegatedModuleData */
13
- /** @typedef {import("./DelegatedModule").DelegatedModuleSourceRequest} DelegatedModuleSourceRequest */
14
- /** @typedef {import("./DelegatedModule").DelegatedModuleType} DelegatedModuleType */
15
- /** @typedef {import("../NormalModuleFactory")} NormalModuleFactory */
16
- /** @typedef {import("../util/identifier").AssociatedObjectForCache} AssociatedObjectForCache */
10
+ /**
11
+ * @import {
12
+ * DllReferencePluginOptions,
13
+ * DllReferencePluginOptionsContent
14
+ * } from "../../declarations/plugins/dll/DllReferencePlugin"
15
+ */
16
+ /**
17
+ * @import {
18
+ * DelegatedModuleData,
19
+ * DelegatedModuleSourceRequest,
20
+ * DelegatedModuleType
21
+ * } from "./DelegatedModule"
22
+ */
23
+ /** @import NormalModuleFactory from "../NormalModuleFactory" */
24
+ /** @import { AssociatedObjectForCache } from "../util/identifier" */
17
25
 
18
26
  /**
19
27
  * Defines the options type used by this module.
@@ -8,8 +8,8 @@
8
8
  const DelegatedSourceDependency = require("../dependencies/DelegatedSourceDependency");
9
9
  const DelegatedModuleFactoryPlugin = require("./DelegatedModuleFactoryPlugin");
10
10
 
11
- /** @typedef {import("../Compiler")} Compiler */
12
- /** @typedef {import("./DelegatedModuleFactoryPlugin").Options} Options */
11
+ /** @import Compiler from "../Compiler" */
12
+ /** @import { Options } from "./DelegatedModuleFactoryPlugin" */
13
13
 
14
14
  const PLUGIN_NAME = "DelegatedPlugin";
15
15
 
@@ -9,8 +9,8 @@ const DllEntryDependency = require("../dependencies/DllEntryDependency");
9
9
  const EntryDependency = require("../dependencies/EntryDependency");
10
10
  const DllModuleFactory = require("./DllModuleFactory");
11
11
 
12
- /** @typedef {import("../Compiler")} Compiler */
13
- /** @typedef {import("../Entrypoint").EntryOptions} EntryOptions */
12
+ /** @import Compiler from "../Compiler" */
13
+ /** @import { EntryOptions } from "../Entrypoint" */
14
14
 
15
15
  /** @typedef {string[]} Entries */
16
16
  /** @typedef {EntryOptions & { name: string }} Options */
@@ -15,23 +15,30 @@ const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("../ModuleTypeConstants");
15
15
  const RuntimeGlobals = require("../RuntimeGlobals");
16
16
  const makeSerializable = require("../util/makeSerializable");
17
17
 
18
- /** @typedef {import("../config/defaults").WebpackOptionsNormalizedWithDefaults} WebpackOptions */
19
- /** @typedef {import("../Compilation")} Compilation */
20
- /** @typedef {import("../Dependency")} Dependency */
21
- /** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
22
- /** @typedef {import("../Generator").SourceTypes} SourceTypes */
23
- /** @typedef {import("../Module").BuildCallback} BuildCallback */
24
- /** @typedef {import("../Module").CodeGenerationContext} CodeGenerationContext */
25
- /** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
26
- /** @typedef {import("../Module").NeedBuildCallback} NeedBuildCallback */
27
- /** @typedef {import("../Module").NeedBuildContext} NeedBuildContext */
28
- /** @typedef {import("../Module").Sources} Sources */
29
- /** @typedef {import("../RequestShortener")} RequestShortener */
30
- /** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
18
+ /**
19
+ * @import {
20
+ * WebpackOptionsNormalizedWithDefaults as WebpackOptions
21
+ * } from "../config/defaults"
22
+ */
23
+ /** @import Compilation from "../Compilation" */
24
+ /** @import Dependency, { UpdateHashContext } from "../Dependency" */
25
+ /**
26
+ * @import {
27
+ * BuildCallback,
28
+ * CodeGenerationContext,
29
+ * CodeGenerationResult,
30
+ * NeedBuildCallback,
31
+ * NeedBuildContext,
32
+ * Sources,
33
+ * SourceTypes
34
+ * } from "../Module"
35
+ */
36
+ /** @import RequestShortener from "../RequestShortener" */
37
+ /** @import { ResolverWithOptions } from "../ResolverFactory" */
31
38
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string]>} ObjectDeserializerContext */
32
39
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string]>} ObjectSerializerContext */
33
- /** @typedef {import("../util/Hash")} Hash */
34
- /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
40
+ /** @import Hash from "../util/Hash" */
41
+ /** @import { InputFileSystem } from "../util/fs" */
35
42
 
36
43
  const RUNTIME_REQUIREMENTS = new Set([
37
44
  RuntimeGlobals.require,
@@ -8,9 +8,13 @@
8
8
  const ModuleFactory = require("../ModuleFactory");
9
9
  const DllModule = require("./DllModule");
10
10
 
11
- /** @typedef {import("../ModuleFactory").ModuleFactoryCallback} ModuleFactoryCallback */
12
- /** @typedef {import("../ModuleFactory").ModuleFactoryCreateData} ModuleFactoryCreateData */
13
- /** @typedef {import("../dependencies/DllEntryDependency")} DllEntryDependency */
11
+ /**
12
+ * @import {
13
+ * ModuleFactoryCallback,
14
+ * ModuleFactoryCreateData
15
+ * } from "../ModuleFactory"
16
+ */
17
+ /** @import DllEntryDependency from "../dependencies/DllEntryDependency" */
14
18
 
15
19
  class DllModuleFactory extends ModuleFactory {
16
20
  constructor() {
@@ -9,11 +9,13 @@ const FlagAllModulesAsUsedPlugin = require("../FlagAllModulesAsUsedPlugin");
9
9
  const DllEntryPlugin = require("./DllEntryPlugin");
10
10
  const LibManifestPlugin = require("./LibManifestPlugin");
11
11
 
12
- /** @typedef {import("../../declarations/plugins/dll/DllPlugin").DllPluginOptions} DllPluginOptions */
13
- /** @typedef {import("../Compiler")} Compiler */
14
- /** @typedef {import("../Module").FactoryMeta} FactoryMeta */
15
- /** @typedef {import("./DllEntryPlugin").Entries} Entries */
16
- /** @typedef {import("./DllEntryPlugin").Options} Options */
12
+ /**
13
+ * @import {
14
+ * DllPluginOptions
15
+ * } from "../../declarations/plugins/dll/DllPlugin"
16
+ */
17
+ /** @import Compiler from "../Compiler" */
18
+ /** @import { Entries, Options } from "./DllEntryPlugin" */
17
19
 
18
20
  const PLUGIN_NAME = "DllPlugin";
19
21
 
@@ -12,13 +12,16 @@ const { makePathsRelative } = require("../util/identifier");
12
12
  const parseJson = require("../util/parseJson");
13
13
  const DelegatedModuleFactoryPlugin = require("./DelegatedModuleFactoryPlugin");
14
14
 
15
- /** @typedef {import("../../declarations/WebpackOptions").Externals} Externals */
16
- /** @typedef {import("../../declarations/plugins/dll/DllReferencePlugin").DllReferencePluginOptions} DllReferencePluginOptions */
17
- /** @typedef {import("../../declarations/plugins/dll/DllReferencePlugin").DllReferencePluginOptionsContent} DllReferencePluginOptionsContent */
18
- /** @typedef {import("../../declarations/plugins/dll/DllReferencePlugin").DllReferencePluginOptionsManifest} DllReferencePluginOptionsManifest */
19
- /** @typedef {import("../Compiler")} Compiler */
20
- /** @typedef {import("../Compiler").CompilationParams} CompilationParams */
21
- /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
15
+ /** @import { Externals } from "../../declarations/WebpackOptions" */
16
+ /**
17
+ * @import {
18
+ * DllReferencePluginOptions,
19
+ * DllReferencePluginOptionsContent,
20
+ * DllReferencePluginOptionsManifest
21
+ * } from "../../declarations/plugins/dll/DllReferencePlugin"
22
+ */
23
+ /** @import Compiler, { CompilationParams } from "../Compiler" */
24
+ /** @import { InputFileSystem } from "../util/fs" */
22
25
 
23
26
  /** @typedef {{ path: string, data: DllReferencePluginOptionsManifest | undefined, error: Error | undefined }} CompilationDataItem */
24
27
 
@@ -11,11 +11,11 @@ const { someInIterable } = require("../util/IterableHelpers");
11
11
  const { compareModulesById } = require("../util/comparators");
12
12
  const { dirname, mkdirp } = require("../util/fs");
13
13
 
14
- /** @typedef {import("../ChunkGraph").ModuleId} ModuleId */
15
- /** @typedef {import("../Compiler")} Compiler */
16
- /** @typedef {import("../Compiler").IntermediateFileSystem} IntermediateFileSystem */
17
- /** @typedef {import("../Module").BuildMeta} BuildMeta */
18
- /** @typedef {import("../ExportsInfo").ExportInfoName} ExportInfoName */
14
+ /** @import { ModuleId } from "../ChunkGraph" */
15
+ /** @import Compiler from "../Compiler" */
16
+ /** @import { ExportInfoName } from "../Dependency" */
17
+ /** @import { BuildMeta } from "../Module" */
18
+ /** @import { IntermediateFileSystem } from "../util/fs" */
19
19
 
20
20
  /**
21
21
  * Defines the manifest module data type used by this module.
@@ -7,14 +7,49 @@
7
7
 
8
8
  const ExternalsPlugin = require("../ExternalsPlugin");
9
9
 
10
- /** @typedef {import("../../declarations/WebpackOptions").ExternalsType} ExternalsType */
11
- /** @typedef {import("../Compiler")} Compiler */
12
- /** @typedef {import("../Dependency")} Dependency */
10
+ /** @import { ExternalsType } from "../../declarations/WebpackOptions" */
11
+ /** @import Compiler from "../Compiler" */
12
+ /** @import Dependency from "../Dependency" */
13
13
  /** @typedef {"main" | "preload" | "renderer"} ElectronContext */
14
14
 
15
+ const SHARED_MODULES = [
16
+ "clipboard",
17
+ "crash-reporter",
18
+ "electron",
19
+ "ipc",
20
+ "native-image",
21
+ "original-fs",
22
+ "screen",
23
+ "shell"
24
+ ];
25
+
26
+ const MAIN_MODULES = [
27
+ "app",
28
+ "auto-updater",
29
+ "browser-window",
30
+ "content-tracing",
31
+ "dialog",
32
+ "global-shortcut",
33
+ "ipc-main",
34
+ "menu",
35
+ "menu-item",
36
+ "power-monitor",
37
+ "power-save-blocker",
38
+ "protocol",
39
+ "session",
40
+ "tray",
41
+ "web-contents"
42
+ ];
43
+
44
+ const RENDERER_MODULES = [
45
+ "desktop-capturer",
46
+ "ipc-renderer",
47
+ "remote",
48
+ "web-frame"
49
+ ];
50
+
15
51
  class ElectronTargetPlugin {
16
52
  /**
17
- * Creates an instance of ElectronTargetPlugin.
18
53
  * @param {ElectronContext=} context in main, preload or renderer context?
19
54
  * @param {ExternalsType=} type default external type
20
55
  */
@@ -23,6 +58,15 @@ class ElectronTargetPlugin {
23
58
  this._context = context;
24
59
  /** @type {ExternalsType} */
25
60
  this.type = type;
61
+
62
+ /**
63
+ * @param {Dependency} dependency the dependency
64
+ * @returns {ExternalsType} the external type
65
+ */
66
+ this._externalType = (dependency) =>
67
+ // When `require`-ing electron built-in modules with module output
68
+ // we should still emit `node-commonjs` for compatibility
69
+ dependency.category === "commonjs" ? "node-commonjs" : this.type;
26
70
  }
27
71
 
28
72
  /**
@@ -31,59 +75,19 @@ class ElectronTargetPlugin {
31
75
  * @returns {void}
32
76
  */
33
77
  apply(compiler) {
34
- /**
35
- * @param {Dependency} dependency the dependency
36
- * @returns {ExternalsType} the external type
37
- */
38
- const externalType = (dependency) => {
39
- // When `require` electron built-in modules with module output
40
- // we should still emit `node-commonjs` for compatibility
41
- if (dependency.category === "commonjs") {
42
- return "node-commonjs";
43
- }
78
+ const externals = [...SHARED_MODULES];
44
79
 
45
- return this.type;
46
- };
47
- new ExternalsPlugin(externalType, [
48
- "clipboard",
49
- "crash-reporter",
50
- "electron",
51
- "ipc",
52
- "native-image",
53
- "original-fs",
54
- "screen",
55
- "shell"
56
- ]).apply(compiler);
57
80
  switch (this._context) {
58
81
  case "main":
59
- new ExternalsPlugin(externalType, [
60
- "app",
61
- "auto-updater",
62
- "browser-window",
63
- "content-tracing",
64
- "dialog",
65
- "global-shortcut",
66
- "ipc-main",
67
- "menu",
68
- "menu-item",
69
- "power-monitor",
70
- "power-save-blocker",
71
- "protocol",
72
- "session",
73
- "tray",
74
- "web-contents"
75
- ]).apply(compiler);
82
+ externals.push(...MAIN_MODULES);
76
83
  break;
77
84
  case "preload":
78
85
  case "renderer":
79
- new ExternalsPlugin(externalType, [
80
- "desktop-capturer",
81
- "ipc-renderer",
82
- "remote",
83
- "web-frame"
84
- ]).apply(compiler);
86
+ externals.push(...RENDERER_MODULES);
85
87
  break;
86
88
  }
89
+
90
+ new ExternalsPlugin(this._externalType, externals).apply(compiler);
87
91
  }
88
92
  }
89
93
 
@@ -0,0 +1,36 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Alexander Akait @alexander-akait
4
+ */
5
+
6
+ "use strict";
7
+
8
+ const WebpackError = require("./WebpackError");
9
+
10
+ /**
11
+ * @typedef {object} WaterfallDetails
12
+ * @property {string[]} chain the chunk groups making up the chain, outermost first
13
+ * @property {number} size the bytes the chain loads in total
14
+ */
15
+
16
+ class AsyncChunkWaterfallWarning extends WebpackError {
17
+ /**
18
+ * Creates an instance of AsyncChunkWaterfallWarning.
19
+ * @param {WaterfallDetails[]} waterfalls the chains that are too deep
20
+ * @param {number} depth the depth the deepest of them reaches
21
+ */
22
+ constructor(waterfalls, depth) {
23
+ const list = waterfalls
24
+ .map((it) => `\n ${it.chain.join(" → ")} (${it.size} bytes)`)
25
+ .join("");
26
+
27
+ super(
28
+ `async chunk waterfall: ${waterfalls.length} ${waterfalls.length === 1 ? "chain loads" : "chains load"} ${depth} levels deep:${list}\nA chunk cannot be requested until the one importing it has arrived and run, so each level costs a round trip before anything below it starts. Importing the deeper modules from the entry, or giving them one 'webpackPrefetch' hint, lets them be fetched together.\nFor more info visit https://webpack.js.org/api/module-methods/#magic-comments`
29
+ );
30
+
31
+ /** @type {string} */
32
+ this.name = "AsyncChunkWaterfallWarning";
33
+ }
34
+ }
35
+
36
+ module.exports = AsyncChunkWaterfallWarning;
@@ -7,8 +7,8 @@
7
7
 
8
8
  const WebpackError = require("./WebpackError");
9
9
 
10
- /** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
11
- /** @typedef {import("../Module")} Module */
10
+ /** @import { DependencyLocation } from "../Dependency" */
11
+ /** @import Module from "../Module" */
12
12
 
13
13
  /**
14
14
  * Error raised when webpack detects an attempt to lazy-load a chunk name that
@@ -0,0 +1,43 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Alexander Akait @alexander-akait
4
+ */
5
+
6
+ "use strict";
7
+
8
+ const formatSize = require("../util/formatSize");
9
+ const WebpackError = require("./WebpackError");
10
+
11
+ /**
12
+ * @typedef {object} BroadContextDetails
13
+ * @property {string} name the context as written, shortened for the report
14
+ * @property {number} modules how many distinct modules it matched
15
+ * @property {number} size bytes those modules contribute
16
+ */
17
+
18
+ class BroadContextsWarning extends WebpackError {
19
+ /**
20
+ * Creates an instance of BroadContextsWarning.
21
+ * @param {BroadContextDetails[]} contexts the worst offenders, largest first
22
+ * @param {number} total how many broad contexts there are in all
23
+ */
24
+ constructor(contexts, total) {
25
+ const list = contexts
26
+ .map(
27
+ (context) =>
28
+ `\n ${context.name} (${context.modules} modules, ${formatSize(
29
+ context.size
30
+ )})`
31
+ )
32
+ .join("");
33
+
34
+ super(
35
+ `broad contexts: ${total} ${total === 1 ? "context matches" : "contexts match"} every file under a directory:${list}\nA pattern opening with a bare wildcard takes whatever the directory holds, including files nothing ever requests — a sync context bundles them all, a lazy one gives each its own chunk. Narrowing the pattern, or 'ContextReplacementPlugin', limits it to what is reachable.\nFor more info visit https://webpack.js.org/plugins/context-replacement-plugin/`
36
+ );
37
+
38
+ /** @type {string} */
39
+ this.name = "BroadContextsWarning";
40
+ }
41
+ }
42
+
43
+ module.exports = BroadContextsWarning;
@@ -7,7 +7,7 @@
7
7
 
8
8
  const WebpackError = require("./WebpackError");
9
9
 
10
- /** @typedef {import("../Module")} Module */
10
+ /** @import Module from "../Module" */
11
11
 
12
12
  class BuildCycleError extends WebpackError {
13
13
  /**
@@ -0,0 +1,55 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Alexander Akait @alexander-akait
4
+ */
5
+
6
+ "use strict";
7
+
8
+ const WebpackError = require("./WebpackError");
9
+
10
+ /**
11
+ * @typedef {object} CacheEffectiveness
12
+ * @property {number} total how many modules the compilation holds
13
+ * @property {number} rebuilt how many of them were built rather than reused
14
+ * @property {number} uncacheable how many can never be reused
15
+ * @property {string[]} reasons why they cannot, most frequent first
16
+ */
17
+
18
+ class CacheEffectivenessWarning extends WebpackError {
19
+ /**
20
+ * Creates an instance of CacheEffectivenessWarning.
21
+ * @param {CacheEffectiveness} effectiveness what the compilation reused
22
+ */
23
+ constructor({ total, rebuilt, uncacheable, reasons }) {
24
+ const lines = [];
25
+
26
+ // Only stated when something was reused, which is what proves the cache was
27
+ // warm — a cold build rebuilds everything by design.
28
+ if (rebuilt < total) {
29
+ lines.push(
30
+ `${rebuilt} of ${total} modules were rebuilt although the cache was warm.`
31
+ );
32
+ }
33
+
34
+ if (uncacheable > 0) {
35
+ lines.push(
36
+ `${uncacheable} ${
37
+ uncacheable === 1 ? "module is" : "modules are"
38
+ } not cacheable, so ${
39
+ uncacheable === 1 ? "it rebuilds" : "they rebuild"
40
+ } on every build: ${reasons.join(", ")}.`
41
+ );
42
+ }
43
+
44
+ super(
45
+ `module caching: ${lines.join(
46
+ " "
47
+ )}\nA loader calling 'this.cacheable(false)', or a value that changes every build, prevents reuse. Stats list the modules individually as '[not cacheable]'.\nFor more info visit https://webpack.js.org/configuration/cache/`
48
+ );
49
+
50
+ /** @type {string} */
51
+ this.name = "CacheEffectivenessWarning";
52
+ }
53
+ }
54
+
55
+ module.exports = CacheEffectivenessWarning;
@@ -7,7 +7,7 @@
7
7
 
8
8
  const WebpackError = require("./WebpackError");
9
9
 
10
- /** @typedef {import("../Chunk")} Chunk */
10
+ /** @import Chunk from "../Chunk" */
11
11
 
12
12
  class ChunkRenderError extends WebpackError {
13
13
  /**
@@ -0,0 +1,38 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Alexander Akait @alexander-akait
4
+ */
5
+
6
+ "use strict";
7
+
8
+ const WebpackError = require("./WebpackError");
9
+
10
+ /**
11
+ * @typedef {object} CircularDependencyDetails
12
+ * @property {number} size how many modules can all reach each other
13
+ * @property {string} cycle the shortest cycle through one of them
14
+ */
15
+
16
+ class CircularDependenciesWarning extends WebpackError {
17
+ /**
18
+ * Creates an instance of CircularDependenciesWarning.
19
+ * @param {CircularDependencyDetails[]} groups the largest groups, biggest first
20
+ * @param {number} total how many groups of modules import each other
21
+ */
22
+ constructor(groups, total) {
23
+ const list = groups
24
+ .map((group) => `\n ${group.size} modules: ${group.cycle}`)
25
+ .join("");
26
+
27
+ super(
28
+ `circular dependencies: ${total} ${
29
+ total === 1 ? "group of modules imports" : "groups of modules import"
30
+ } each other synchronously, shortest cycle of each shown:${list}\nOne module of a cycle runs before the others finished, so it reads their exports as 'undefined' — or throws for a 'const' or 'class' export. Moving the shared part into a module both sides import breaks the cycle.`
31
+ );
32
+
33
+ /** @type {string} */
34
+ this.name = "CircularDependenciesWarning";
35
+ }
36
+ }
37
+
38
+ module.exports = CircularDependenciesWarning;
@@ -7,7 +7,7 @@
7
7
 
8
8
  const WebpackError = require("./WebpackError");
9
9
 
10
- /** @typedef {import("../Module")} Module */
10
+ /** @import Module from "../Module" */
11
11
 
12
12
  class CodeGenerationError extends WebpackError {
13
13
  /**
@@ -8,7 +8,7 @@
8
8
  const makeSerializable = require("../util/makeSerializable");
9
9
  const WebpackError = require("./WebpackError");
10
10
 
11
- /** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
11
+ /** @import { DependencyLocation } from "../Dependency" */
12
12
 
13
13
  /**
14
14
  * Warning used for comment-related compilation issues, such as malformed magic