@depup/webpack 5.106.1-depup.0 → 5.109.2-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 (669) hide show
  1. package/README.md +9 -11
  2. package/bin/webpack.js +12 -0
  3. package/changes.json +16 -24
  4. package/hot/dev-server.js +2 -0
  5. package/lib/APIPlugin.js +60 -35
  6. package/lib/AsyncDependenciesBlock.js +3 -0
  7. package/lib/AutomaticPrefetchPlugin.js +6 -1
  8. package/lib/BannerPlugin.js +13 -5
  9. package/lib/Cache.js +27 -5
  10. package/lib/CacheFacade.js +41 -0
  11. package/lib/Chunk.js +71 -25
  12. package/lib/ChunkGraph.js +153 -19
  13. package/lib/ChunkGroup.js +115 -28
  14. package/lib/ChunkTemplate.js +9 -0
  15. package/lib/CircularModulesPlugin.js +190 -0
  16. package/lib/CleanPlugin.js +27 -28
  17. package/lib/CodeGenerationResults.js +19 -0
  18. package/lib/CompatibilityPlugin.js +85 -37
  19. package/lib/Compilation.js +656 -112
  20. package/lib/Compiler.js +109 -35
  21. package/lib/ConcatenationScope.js +34 -4
  22. package/lib/ConditionalInitFragment.js +6 -0
  23. package/lib/ConstPlugin.js +15 -12
  24. package/lib/ContextExclusionPlugin.js +3 -1
  25. package/lib/ContextModule.js +345 -55
  26. package/lib/ContextModuleFactory.js +193 -51
  27. package/lib/ContextReplacementPlugin.js +8 -1
  28. package/lib/DefinePlugin.js +537 -139
  29. package/lib/DependenciesBlock.js +6 -1
  30. package/lib/Dependency.js +159 -11
  31. package/lib/DependencyTemplate.js +7 -1
  32. package/lib/DependencyTemplates.js +4 -0
  33. package/lib/DotenvPlugin.js +3 -0
  34. package/lib/DynamicEntryPlugin.js +3 -1
  35. package/lib/EntryOptionPlugin.js +42 -2
  36. package/lib/EntryPlugin.js +4 -1
  37. package/lib/Entrypoint.js +5 -1
  38. package/lib/EnvironmentPlugin.js +3 -2
  39. package/lib/ErrorHelpers.js +7 -0
  40. package/lib/EvalDevToolModulePlugin.js +3 -1
  41. package/lib/EvalSourceMapDevToolPlugin.js +11 -11
  42. package/lib/ExportsInfo.js +421 -113
  43. package/lib/ExportsInfoApiPlugin.js +4 -3
  44. package/lib/ExternalModule.js +381 -80
  45. package/lib/ExternalModuleFactoryPlugin.js +75 -3
  46. package/lib/ExternalsPlugin.js +3 -1
  47. package/lib/FileSystemInfo.js +701 -175
  48. package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
  49. package/lib/FlagDependencyExportsPlugin.js +82 -9
  50. package/lib/FlagDependencyUsagePlugin.js +115 -8
  51. package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
  52. package/lib/Generator.js +24 -3
  53. package/lib/HotModuleReplacementPlugin.js +110 -44
  54. package/lib/IgnorePlugin.js +5 -2
  55. package/lib/IgnoreWarningsPlugin.js +2 -1
  56. package/lib/InitFragment.js +33 -30
  57. package/lib/JavascriptMetaInfoPlugin.js +9 -6
  58. package/lib/LazyBarrel.js +389 -0
  59. package/lib/LibraryTemplatePlugin.js +2 -1
  60. package/lib/LoaderOptionsPlugin.js +3 -1
  61. package/lib/LoaderTargetPlugin.js +3 -1
  62. package/lib/MainTemplate.js +15 -0
  63. package/lib/ManifestPlugin.js +9 -2
  64. package/lib/Module.js +121 -57
  65. package/lib/ModuleFactory.js +6 -1
  66. package/lib/ModuleFilenameHelpers.js +18 -4
  67. package/lib/ModuleGraph.js +69 -2
  68. package/lib/ModuleGraphConnection.js +9 -0
  69. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  70. package/lib/ModuleNotFoundError.js +3 -83
  71. package/lib/ModuleProfile.js +27 -1
  72. package/lib/ModuleSourceTypeConstants.js +52 -19
  73. package/lib/ModuleTemplate.js +10 -0
  74. package/lib/ModuleTypeConstants.js +20 -4
  75. package/lib/MultiCompiler.js +59 -4
  76. package/lib/MultiStats.js +9 -0
  77. package/lib/MultiWatching.js +6 -0
  78. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  79. package/lib/NodeStuffPlugin.js +78 -46
  80. package/lib/NormalModule.js +519 -206
  81. package/lib/NormalModuleFactory.js +156 -31
  82. package/lib/NormalModuleReplacementPlugin.js +3 -1
  83. package/lib/NullFactory.js +1 -0
  84. package/lib/OptionsApply.js +1 -0
  85. package/lib/Parser.js +3 -1
  86. package/lib/PlatformPlugin.js +2 -1
  87. package/lib/PrefetchPlugin.js +4 -1
  88. package/lib/ProgressPlugin.js +351 -161
  89. package/lib/ProvidePlugin.js +6 -3
  90. package/lib/RawModule.js +32 -16
  91. package/lib/RecordIdsPlugin.js +9 -0
  92. package/lib/RequestShortener.js +8 -0
  93. package/lib/ResolverFactory.js +5 -0
  94. package/lib/RuntimeGlobals.js +58 -5
  95. package/lib/RuntimeModule.js +22 -7
  96. package/lib/RuntimePlugin.js +123 -118
  97. package/lib/RuntimeTemplate.js +616 -37
  98. package/lib/SelfModuleFactory.js +3 -0
  99. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  100. package/lib/SourceMapDevToolPlugin.js +341 -63
  101. package/lib/Stats.js +6 -0
  102. package/lib/Template.js +52 -6
  103. package/lib/TemplatedPathPlugin.js +505 -138
  104. package/lib/UseStrictPlugin.js +3 -2
  105. package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
  106. package/lib/WarnDeprecatedOptionPlugin.js +6 -2
  107. package/lib/WarnNoModeSetPlugin.js +18 -2
  108. package/lib/WatchIgnorePlugin.js +5 -1
  109. package/lib/Watching.js +25 -3
  110. package/lib/WebpackError.js +3 -74
  111. package/lib/WebpackIsIncludedPlugin.js +4 -2
  112. package/lib/WebpackOptionsApply.js +88 -25
  113. package/lib/WebpackOptionsDefaulter.js +1 -0
  114. package/lib/asset/AssetBytesGenerator.js +28 -10
  115. package/lib/asset/AssetBytesParser.js +1 -0
  116. package/lib/asset/AssetGenerator.js +199 -60
  117. package/lib/asset/AssetModule.js +47 -0
  118. package/lib/asset/AssetModulesPlugin.js +115 -24
  119. package/lib/asset/AssetParser.js +4 -2
  120. package/lib/asset/AssetSourceGenerator.js +26 -8
  121. package/lib/asset/AssetSourceParser.js +1 -0
  122. package/lib/asset/RawDataUrlModule.js +23 -13
  123. package/lib/asset/WebManifestGenerator.js +164 -0
  124. package/lib/asset/WebManifestParser.js +130 -0
  125. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  126. package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
  127. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  128. package/lib/async-modules/isGeneratorLowered.js +26 -0
  129. package/lib/buildChunkGraph.js +107 -15
  130. package/lib/bun/BunTargetPlugin.js +42 -0
  131. package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
  132. package/lib/cache/AddManagedPathsPlugin.js +5 -1
  133. package/lib/cache/IdleFileCachePlugin.js +6 -1
  134. package/lib/cache/MemoryCachePlugin.js +1 -1
  135. package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
  136. package/lib/cache/PackFileCacheStrategy.js +302 -12
  137. package/lib/cache/ResolverCachePlugin.js +12 -1
  138. package/lib/cache/getLazyHashedEtag.js +13 -2
  139. package/lib/cache/mergeEtags.js +4 -0
  140. package/lib/cli.js +142 -20
  141. package/lib/config/browserslistTargetHandler.js +141 -0
  142. package/lib/config/defaults.js +612 -43
  143. package/lib/config/defineConfig.js +31 -0
  144. package/lib/config/normalization.js +46 -1
  145. package/lib/config/target.js +200 -2
  146. package/lib/container/ContainerEntryDependency.js +2 -0
  147. package/lib/container/ContainerEntryModule.js +27 -14
  148. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  149. package/lib/container/ContainerExposedDependency.js +6 -2
  150. package/lib/container/ContainerPlugin.js +2 -1
  151. package/lib/container/ContainerReferencePlugin.js +3 -2
  152. package/lib/container/FallbackDependency.js +9 -7
  153. package/lib/container/FallbackItemDependency.js +1 -0
  154. package/lib/container/FallbackModule.js +22 -9
  155. package/lib/container/FallbackModuleFactory.js +1 -0
  156. package/lib/container/HoistContainerReferencesPlugin.js +47 -55
  157. package/lib/container/ModuleFederationPlugin.js +21 -29
  158. package/lib/container/RemoteModule.js +33 -10
  159. package/lib/container/RemoteRuntimeModule.js +15 -12
  160. package/lib/container/RemoteToExternalDependency.js +1 -0
  161. package/lib/container/options.js +7 -0
  162. package/lib/css/CssGenerator.js +540 -272
  163. package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
  164. package/lib/css/CssLoadingRuntimeModule.js +173 -81
  165. package/lib/{CssModule.js → css/CssModule.js} +72 -37
  166. package/lib/css/CssModulesPlugin.js +371 -208
  167. package/lib/css/CssParser.js +3538 -1963
  168. package/lib/css/syntax.js +4155 -0
  169. package/lib/debug/ProfilingPlugin.js +33 -2
  170. package/lib/deno/DenoTargetPlugin.js +41 -0
  171. package/lib/dependencies/AMDDefineDependency.js +29 -17
  172. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
  173. package/lib/dependencies/AMDPlugin.js +6 -3
  174. package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
  175. package/lib/dependencies/AMDRequireContextDependency.js +10 -11
  176. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  177. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
  178. package/lib/dependencies/AMDRequireDependency.js +28 -20
  179. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  180. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  181. package/lib/dependencies/CachedConstDependency.js +9 -1
  182. package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
  183. package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
  184. package/lib/dependencies/CommonJsExportsDependency.js +74 -20
  185. package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
  186. package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
  187. package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
  188. package/lib/dependencies/CommonJsPlugin.js +7 -4
  189. package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
  190. package/lib/dependencies/CommonJsRequireDependency.js +135 -13
  191. package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
  192. package/lib/dependencies/ConstDependency.js +22 -12
  193. package/lib/dependencies/ContextDependency.js +13 -2
  194. package/lib/dependencies/ContextDependencyHelpers.js +7 -4
  195. package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
  196. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  197. package/lib/dependencies/ContextElementDependency.js +27 -14
  198. package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
  199. package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
  200. package/lib/dependencies/CriticalDependencyWarning.js +3 -1
  201. package/lib/dependencies/CssIcssExportDependency.js +681 -367
  202. package/lib/dependencies/CssIcssImportDependency.js +62 -17
  203. package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
  204. package/lib/dependencies/CssImportDependency.js +37 -1
  205. package/lib/dependencies/CssUrlDependency.js +87 -14
  206. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  207. package/lib/dependencies/DllEntryDependency.js +12 -13
  208. package/lib/dependencies/DynamicExports.js +5 -0
  209. package/lib/dependencies/EntryDependency.js +1 -0
  210. package/lib/dependencies/ExportBindingInitFragment.js +164 -0
  211. package/lib/dependencies/ExportsInfoDependency.js +18 -12
  212. package/lib/dependencies/ExternalModuleDependency.js +13 -5
  213. package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
  214. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
  215. package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
  216. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
  217. package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
  218. package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
  219. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
  220. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
  221. package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
  222. package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
  223. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
  224. package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
  225. package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
  226. package/lib/dependencies/HarmonyExports.js +6 -1
  227. package/lib/dependencies/HarmonyImportDependency.js +60 -4
  228. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
  229. package/lib/dependencies/HarmonyImportGuard.js +427 -0
  230. package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
  231. package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
  232. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
  233. package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
  234. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
  235. package/lib/dependencies/HtmlEntryDependency.js +1295 -0
  236. package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
  237. package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
  238. package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
  239. package/lib/dependencies/HtmlSourceDependency.js +172 -0
  240. package/lib/dependencies/ImportContextDependency.js +9 -9
  241. package/lib/dependencies/ImportDependency.js +92 -3
  242. package/lib/dependencies/ImportEagerDependency.js +2 -0
  243. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  244. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
  245. package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
  246. package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
  247. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
  248. package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
  249. package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
  250. package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
  251. package/lib/dependencies/ImportMetaPlugin.js +595 -209
  252. package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
  253. package/lib/dependencies/ImportParserPlugin.js +114 -27
  254. package/lib/dependencies/ImportPhase.js +17 -11
  255. package/lib/dependencies/ImportPlugin.js +2 -1
  256. package/lib/dependencies/ImportWeakDependency.js +3 -0
  257. package/lib/dependencies/JsonExportsDependency.js +15 -10
  258. package/lib/dependencies/LoaderDependency.js +2 -0
  259. package/lib/dependencies/LoaderImportDependency.js +3 -0
  260. package/lib/dependencies/LoaderPlugin.js +9 -2
  261. package/lib/dependencies/LocalModule.js +15 -12
  262. package/lib/dependencies/LocalModuleDependency.js +15 -13
  263. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  264. package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
  265. package/lib/dependencies/ModuleDependency.js +14 -0
  266. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  267. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  268. package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
  269. package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
  270. package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
  271. package/lib/dependencies/NullDependency.js +2 -0
  272. package/lib/dependencies/PrefetchDependency.js +1 -0
  273. package/lib/dependencies/ProvidedDependency.js +36 -27
  274. package/lib/dependencies/PureExpressionDependency.js +14 -10
  275. package/lib/dependencies/RequireContextDependency.js +1 -0
  276. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
  277. package/lib/dependencies/RequireContextPlugin.js +2 -1
  278. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  279. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
  280. package/lib/dependencies/RequireEnsureDependency.js +16 -13
  281. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  282. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  283. package/lib/dependencies/RequireHeaderDependency.js +7 -4
  284. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  285. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
  286. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  287. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
  288. package/lib/dependencies/RequireResolveContextDependency.js +10 -11
  289. package/lib/dependencies/RequireResolveDependency.js +2 -0
  290. package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
  291. package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
  292. package/lib/dependencies/StaticExportsDependency.js +13 -10
  293. package/lib/dependencies/SystemPlugin.js +9 -6
  294. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  295. package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
  296. package/lib/dependencies/URLContextDependency.js +8 -7
  297. package/lib/dependencies/URLDependency.js +157 -33
  298. package/lib/dependencies/URLPlugin.js +2 -0
  299. package/lib/dependencies/UnsupportedDependency.js +12 -13
  300. package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
  301. package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
  302. package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
  303. package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
  304. package/lib/dependencies/WorkerDependency.js +111 -27
  305. package/lib/dependencies/WorkletDependency.js +278 -0
  306. package/lib/dependencies/getFunctionExpression.js +1 -0
  307. package/lib/dependencies/processExportInfo.js +14 -11
  308. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
  309. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
  310. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
  311. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
  312. package/lib/{DllModule.js → dll/DllModule.js} +36 -24
  313. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
  314. package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
  315. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
  316. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
  317. package/lib/electron/ElectronTargetPlugin.js +24 -5
  318. package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
  319. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
  320. package/lib/errors/BuildCycleError.js +1 -1
  321. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  322. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  323. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
  324. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
  325. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
  326. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
  327. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
  328. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
  329. package/lib/errors/JSONParseError.js +115 -0
  330. package/lib/errors/LoaderLoadingError.js +20 -0
  331. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
  332. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
  333. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
  334. package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
  335. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
  336. package/lib/errors/ModuleNotFoundError.js +94 -0
  337. package/lib/errors/ModuleParseError.js +141 -0
  338. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
  339. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
  340. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
  341. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
  342. package/lib/errors/NonErrorEmittedError.js +30 -0
  343. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
  344. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
  345. package/lib/errors/WebpackError.js +84 -0
  346. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  347. package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
  348. package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
  349. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
  350. package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
  351. package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
  352. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
  353. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  354. package/lib/hmr/LazyCompilationPlugin.js +154 -7
  355. package/lib/hmr/lazyCompilationBackend.js +53 -12
  356. package/lib/html/HtmlGenerator.js +1490 -0
  357. package/lib/html/HtmlModule.js +41 -0
  358. package/lib/html/HtmlModulesPlugin.js +1129 -0
  359. package/lib/html/HtmlParser.js +1970 -0
  360. package/lib/html/favicon.svg +1 -0
  361. package/lib/html/syntax.js +9106 -0
  362. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  363. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  364. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  365. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  366. package/lib/ids/IdHelpers.js +49 -12
  367. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  368. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  369. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  370. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  371. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  372. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  373. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  374. package/lib/index.js +66 -15
  375. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
  376. package/lib/javascript/BasicEvaluatedExpression.js +370 -49
  377. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  378. package/lib/javascript/ChunkHelpers.js +1 -0
  379. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  380. package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
  381. package/lib/javascript/JavascriptGenerator.js +213 -51
  382. package/lib/javascript/JavascriptModule.js +54 -0
  383. package/lib/javascript/JavascriptModulesPlugin.js +628 -198
  384. package/lib/javascript/JavascriptParser.js +1334 -471
  385. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  386. package/lib/javascript/StartupHelpers.js +5 -0
  387. package/lib/javascript/syntax.js +5037 -0
  388. package/lib/json/JsonData.js +5 -0
  389. package/lib/json/JsonGenerator.js +21 -0
  390. package/lib/json/JsonModule.js +40 -0
  391. package/lib/json/JsonModulesPlugin.js +8 -1
  392. package/lib/json/JsonParser.js +18 -27
  393. package/lib/library/AbstractLibraryPlugin.js +17 -2
  394. package/lib/library/AmdLibraryPlugin.js +8 -0
  395. package/lib/library/AssignLibraryPlugin.js +21 -3
  396. package/lib/library/EnableLibraryPlugin.js +8 -2
  397. package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
  398. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
  399. package/lib/library/JsonpLibraryPlugin.js +8 -0
  400. package/lib/library/ModuleLibraryPlugin.js +154 -7
  401. package/lib/library/SystemLibraryPlugin.js +11 -3
  402. package/lib/library/UmdLibraryPlugin.js +16 -0
  403. package/lib/loaders/LoaderRunner.js +714 -0
  404. package/lib/loaders/loadLoader.js +100 -0
  405. package/lib/logging/Logger.js +17 -0
  406. package/lib/logging/createConsoleLogger.js +7 -0
  407. package/lib/logging/runtime.js +2 -0
  408. package/lib/logging/truncateArgs.js +2 -0
  409. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  410. package/lib/node/NodeEnvironmentPlugin.js +7 -3
  411. package/lib/node/NodeSourcePlugin.js +1 -1
  412. package/lib/node/NodeTargetPlugin.js +4 -63
  413. package/lib/node/NodeTemplatePlugin.js +3 -1
  414. package/lib/node/NodeWatchFileSystem.js +40 -22
  415. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
  416. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
  417. package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
  418. package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
  419. package/lib/node/nodeBuiltins.js +80 -0
  420. package/lib/node/nodeConsole.js +116 -64
  421. package/lib/optimize/AggressiveMergingPlugin.js +22 -16
  422. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  423. package/lib/optimize/ConcatenatedModule.js +603 -130
  424. package/lib/optimize/ConstExportsPlugin.js +211 -0
  425. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  426. package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
  427. package/lib/optimize/InlineExports.js +178 -0
  428. package/lib/optimize/InnerGraph.js +374 -262
  429. package/lib/optimize/InnerGraphPlugin.js +246 -117
  430. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  431. package/lib/optimize/MangleExportsPlugin.js +5 -1
  432. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  433. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  434. package/lib/optimize/MinMaxSizeWarning.js +5 -4
  435. package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
  436. package/lib/optimize/RealContentHashPlugin.js +130 -52
  437. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  438. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  439. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  440. package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
  441. package/lib/optimize/SplitChunksPlugin.js +200 -50
  442. package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
  443. package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
  444. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  445. package/lib/performance/SizeLimitsPlugin.js +8 -2
  446. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  447. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
  448. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  449. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
  450. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
  451. package/lib/prefetch/ResourceHintPlugin.js +687 -0
  452. package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
  453. package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
  454. package/lib/prefetch/parseResourceHintOptions.js +103 -0
  455. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  456. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  457. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  458. package/lib/rules/RuleSetCompiler.js +132 -0
  459. package/lib/rules/UseEffectRulePlugin.js +10 -3
  460. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
  461. package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
  462. package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
  463. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  464. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  465. package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
  466. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
  467. package/lib/runtime/CompatRuntimeModule.js +2 -0
  468. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
  469. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  470. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  471. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
  472. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  473. package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
  474. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  475. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  476. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
  477. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
  478. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  479. package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
  480. package/lib/runtime/HelperRuntimeModule.js +5 -0
  481. package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
  482. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
  483. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
  484. package/lib/runtime/NonceRuntimeModule.js +1 -0
  485. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
  486. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  487. package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
  488. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  489. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
  490. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  491. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
  492. package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
  493. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  494. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  495. package/lib/runtime/WorkerRuntimeModule.js +33 -0
  496. package/lib/schemes/DataUriPlugin.js +14 -2
  497. package/lib/schemes/FileUriPlugin.js +1 -1
  498. package/lib/schemes/HttpUriPlugin.js +86 -4
  499. package/lib/schemes/VirtualUrlPlugin.js +8 -4
  500. package/lib/serialization/AggregateErrorSerializer.js +9 -6
  501. package/lib/serialization/ArraySerializer.js +6 -8
  502. package/lib/serialization/BinaryMiddleware.js +427 -1006
  503. package/lib/serialization/DateObjectSerializer.js +4 -2
  504. package/lib/serialization/ErrorObjectSerializer.js +10 -6
  505. package/lib/serialization/FileMiddleware.js +345 -59
  506. package/lib/serialization/MapObjectSerializer.js +7 -9
  507. package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
  508. package/lib/serialization/ObjectMiddleware.js +73 -13
  509. package/lib/serialization/PlainObjectSerializer.js +16 -8
  510. package/lib/serialization/RegExpObjectSerializer.js +4 -2
  511. package/lib/serialization/Serializer.js +6 -0
  512. package/lib/serialization/SerializerMiddleware.js +14 -2
  513. package/lib/serialization/SetObjectSerializer.js +6 -8
  514. package/lib/serialization/SingleItemMiddleware.js +3 -0
  515. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  516. package/lib/sharing/ConsumeSharedModule.js +21 -7
  517. package/lib/sharing/ConsumeSharedPlugin.js +11 -11
  518. package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
  519. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  520. package/lib/sharing/ProvideSharedDependency.js +34 -15
  521. package/lib/sharing/ProvideSharedModule.js +42 -12
  522. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  523. package/lib/sharing/ProvideSharedPlugin.js +13 -8
  524. package/lib/sharing/SharePlugin.js +5 -1
  525. package/lib/sharing/ShareRuntimeModule.js +19 -16
  526. package/lib/sharing/resolveMatchedConfigs.js +6 -2
  527. package/lib/sharing/utils.js +9 -1
  528. package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
  529. package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
  530. package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
  531. package/lib/stats/StatsFactory.js +70 -27
  532. package/lib/stats/StatsPrinter.js +16 -2
  533. package/lib/typescript/TypeScriptPlugin.js +210 -0
  534. package/lib/url/URLParserPlugin.js +111 -23
  535. package/lib/util/ArrayHelpers.js +1 -0
  536. package/lib/util/ArrayQueue.js +10 -5
  537. package/lib/util/AsyncQueue.js +154 -74
  538. package/lib/util/Hash.js +2 -2
  539. package/lib/util/IterableHelpers.js +3 -0
  540. package/lib/util/LazyBucketSortedSet.js +26 -0
  541. package/lib/util/LazySet.js +45 -4
  542. package/lib/util/LocConverter.js +64 -0
  543. package/lib/util/ParallelismFactorCalculator.js +1 -0
  544. package/lib/util/Queue.js +6 -3
  545. package/lib/util/Semaphore.js +15 -1
  546. package/lib/util/SetHelpers.js +4 -1
  547. package/lib/util/SortableSet.js +7 -1
  548. package/lib/util/SourceProcessor.js +119 -0
  549. package/lib/util/StackedCacheMap.js +20 -3
  550. package/lib/util/StackedMap.js +162 -43
  551. package/lib/util/StringXor.js +1 -1
  552. package/lib/util/TupleQueue.js +7 -3
  553. package/lib/util/TupleSet.js +14 -0
  554. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  555. package/lib/util/WeakTupleMap.js +60 -1
  556. package/lib/util/binarySearchBounds.js +3 -2
  557. package/lib/util/chainedImports.js +3 -3
  558. package/lib/util/cleverMerge.js +19 -2
  559. package/lib/util/comparators.js +35 -4
  560. package/lib/util/compileBooleanMatcher.js +9 -0
  561. package/lib/util/concatenate.js +80 -24
  562. package/lib/util/conventions.js +46 -1
  563. package/lib/util/createHash.js +0 -1
  564. package/lib/util/createHooksRegistry.js +43 -0
  565. package/lib/util/createMappings.js +118 -0
  566. package/lib/util/dataURL.js +3 -2
  567. package/lib/util/deprecation.js +19 -0
  568. package/lib/util/deterministicGrouping.js +46 -17
  569. package/lib/util/extractSourceMap.js +2 -1
  570. package/lib/util/extractUrlAndGlobal.js +1 -0
  571. package/lib/util/findGraphRoots.js +7 -0
  572. package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
  573. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
  574. package/lib/util/fs.js +87 -14
  575. package/lib/util/generateDebugId.js +1 -0
  576. package/lib/util/globUtils.js +710 -0
  577. package/lib/util/hash/BatchedHash.js +1 -0
  578. package/lib/util/hash/BulkUpdateHash.js +1 -0
  579. package/lib/util/hash/DebugHash.js +1 -0
  580. package/lib/util/hash/hash-digest.js +32 -15
  581. package/lib/util/hash/md4.js +1 -1
  582. package/lib/util/hash/wasm-hash.js +5 -0
  583. package/lib/util/hash/xxhash64.js +1 -1
  584. package/lib/util/identifier.js +118 -7
  585. package/lib/util/implicitTypeLoaderFallback.js +62 -0
  586. package/lib/util/internalSerializables.js +102 -60
  587. package/lib/util/magicComment.js +149 -7
  588. package/lib/util/makeSerializable.js +7 -0
  589. package/lib/util/memoize.js +2 -0
  590. package/lib/util/mimeTypes.js +176 -0
  591. package/lib/util/nonNumericOnlyHash.js +31 -1
  592. package/lib/util/numberHash.js +2 -2
  593. package/lib/util/parseJson.js +41 -0
  594. package/lib/util/processAsyncTree.js +8 -0
  595. package/lib/util/property.js +9 -2
  596. package/lib/util/publicPathPlaceholder.js +64 -0
  597. package/lib/util/registerExternalSerializer.js +24 -4
  598. package/lib/util/removeBOM.js +1 -0
  599. package/lib/util/runtime.js +32 -0
  600. package/lib/util/semver.js +15 -0
  601. package/lib/util/serialization.js +2 -0
  602. package/lib/util/smartGrouping.js +8 -0
  603. package/lib/util/source.js +23 -0
  604. package/lib/util/topologicalSort.js +69 -0
  605. package/lib/validateSchema.js +1 -0
  606. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  607. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
  608. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
  609. package/lib/wasm-async/AsyncWasmModule.js +77 -0
  610. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  611. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
  612. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
  613. package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
  614. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
  615. package/lib/wasm-sync/SyncWasmModule.js +39 -0
  616. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
  617. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
  618. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
  619. package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
  620. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
  621. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  622. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
  623. package/lib/wasm-sync/WebAssemblyParser.js +9 -3
  624. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  625. package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
  626. package/lib/web/FetchCompileWasmPlugin.js +27 -1
  627. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  628. package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
  629. package/lib/web/JsonpTemplatePlugin.js +2 -1
  630. package/lib/webpack.js +78 -1
  631. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  632. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
  633. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  634. package/module.d.ts +21 -0
  635. package/package.json +79 -77
  636. package/schemas/WebpackOptions.check.js +1 -1
  637. package/schemas/WebpackOptions.json +1173 -80
  638. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  639. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  640. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  641. package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
  642. package/schemas/plugins/HtmlParserOptions.check.js +6 -0
  643. package/schemas/plugins/HtmlParserOptions.json +3 -0
  644. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  645. package/schemas/plugins/ProgressPlugin.json +38 -0
  646. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  647. package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
  648. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  649. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  650. package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
  651. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
  652. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  653. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  654. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  655. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  656. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  657. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  658. package/types.d.ts +11053 -3019
  659. package/lib/CaseSensitiveModulesWarning.js +0 -72
  660. package/lib/GraphHelpers.js +0 -46
  661. package/lib/ModuleParseError.js +0 -125
  662. package/lib/NoModeWarning.js +0 -23
  663. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
  664. package/lib/css/walkCssTokens.js +0 -1843
  665. package/lib/util/AppendOnlyStackedSet.js +0 -78
  666. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  667. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  668. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  669. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
package/lib/Module.js CHANGED
@@ -33,11 +33,9 @@ const makeSerializable = require("./util/makeSerializable");
33
33
  /** @typedef {import("./ConcatenationScope")} ConcatenationScope */
34
34
  /** @typedef {import("./Dependency")} Dependency */
35
35
  /** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext */
36
- /** @typedef {import("./DependencyTemplate").CssData} CssData */
37
36
  /** @typedef {import("./DependencyTemplates")} DependencyTemplates */
38
37
  /** @typedef {import("./ModuleSourceTypeConstants").AllTypes} AllTypes */
39
38
  /** @typedef {import("./FileSystemInfo")} FileSystemInfo */
40
- /** @typedef {import("./FileSystemInfo").Snapshot} Snapshot */
41
39
  /** @typedef {import("./ModuleGraphConnection").ConnectionState} ConnectionState */
42
40
  /** @typedef {import("./ModuleTypeConstants").ModuleTypes} ModuleTypes */
43
41
  /** @typedef {import("./ModuleGraph").OptimizationBailouts} OptimizationBailouts */
@@ -47,11 +45,11 @@ const makeSerializable = require("./util/makeSerializable");
47
45
  /** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */
48
46
  /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
49
47
  /**
48
+ * Defines the init fragment type used by this module.
50
49
  * @template T
51
50
  * @typedef {import("./InitFragment")<T>} InitFragment
52
51
  */
53
- /** @typedef {import("./WebpackError")} WebpackError */
54
- /** @typedef {import("./json/JsonData")} JsonData */
52
+ /** @typedef {import("./errors/WebpackError")} WebpackError */
55
53
  /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
56
54
  /** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
57
55
  /** @typedef {import("./util/Hash")} Hash */
@@ -65,11 +63,13 @@ const makeSerializable = require("./util/makeSerializable");
65
63
  /** @typedef {"namespace" | "default-only" | "default-with-named" | "dynamic"} ExportsType */
66
64
 
67
65
  /**
66
+ * Defines the shared type used by this module.
68
67
  * @template T
69
68
  * @typedef {import("./util/LazySet")<T>} LazySet<T>
70
69
  */
71
70
 
72
71
  /**
72
+ * Defines the source context type used by this module.
73
73
  * @typedef {object} SourceContext
74
74
  * @property {DependencyTemplates} dependencyTemplates the dependency templates
75
75
  * @property {RuntimeTemplate} runtimeTemplate the runtime template
@@ -87,6 +87,7 @@ const makeSerializable = require("./util/makeSerializable");
87
87
 
88
88
  // TODO webpack 6: compilation will be required in CodeGenerationContext
89
89
  /**
90
+ * Defines the code generation context type used by this module.
90
91
  * @typedef {object} CodeGenerationContext
91
92
  * @property {DependencyTemplates} dependencyTemplates the dependency templates
92
93
  * @property {RuntimeTemplate} runtimeTemplate the runtime template
@@ -101,19 +102,23 @@ const makeSerializable = require("./util/makeSerializable");
101
102
  */
102
103
 
103
104
  /**
105
+ * Defines the concatenation bailout reason context type used by this module.
104
106
  * @typedef {object} ConcatenationBailoutReasonContext
105
107
  * @property {ModuleGraph} moduleGraph the module graph
106
108
  * @property {ChunkGraph} chunkGraph the chunk graph
109
+ * @property {boolean=} concatenateCommonJsModules whether eligible CommonJS modules may be concatenated
107
110
  */
108
111
 
109
112
  /** @typedef {Set<string>} RuntimeRequirements */
110
113
  /** @typedef {ReadonlySet<string>} ReadOnlyRuntimeRequirements */
111
114
 
112
115
  /**
116
+ * Defines the all code generation schemas type used by this module.
113
117
  * @typedef {object} AllCodeGenerationSchemas
114
118
  * @property {Set<string>} topLevelDeclarations top level declarations for javascript modules
119
+ * @property {Set<string>} freeNames free identifier names in the rendered source for javascript modules
115
120
  * @property {InitFragment<EXPECTED_ANY>[]} chunkInitFragments chunk init fragments for javascript modules
116
- * @property {{ javascript?: string, ["css-url"]?: string }} url url for css and javascript modules
121
+ * @property {{ javascript?: string, ["asset-url"]?: string }} url url for asset modules
117
122
  * @property {string} filename a filename for asset modules
118
123
  * @property {AssetInfo} assetInfo an asset info for asset modules
119
124
  * @property {string} fullContentHash a full content hash for asset modules
@@ -121,11 +126,13 @@ const makeSerializable = require("./util/makeSerializable");
121
126
  */
122
127
 
123
128
  /**
129
+ * Defines the code gen value type used by this module.
124
130
  * @template {string} K
125
- * @typedef {K extends keyof AllCodeGenerationSchemas ? AllCodeGenerationSchemas[K] : EXPECTED_ANY} CodeGenValue
131
+ * @typedef {K extends (keyof AllCodeGenerationSchemas) ? AllCodeGenerationSchemas[K] : EXPECTED_ANY} CodeGenValue
126
132
  */
127
133
 
128
134
  /**
135
+ * Defines the code gen map overloads type used by this module.
129
136
  * @typedef {object} CodeGenMapOverloads
130
137
  * @property {<K extends string>(key: K) => CodeGenValue<K> | undefined} get
131
138
  * @property {<K extends string>(key: K, value: CodeGenValue<K>) => CodeGenerationResultData} set
@@ -134,12 +141,14 @@ const makeSerializable = require("./util/makeSerializable");
134
141
  */
135
142
 
136
143
  /**
144
+ * Defines the code generation result data type used by this module.
137
145
  * @typedef {Omit<Map<string, EXPECTED_ANY>, "get" | "set" | "has" | "delete"> & CodeGenMapOverloads} CodeGenerationResultData
138
146
  */
139
147
 
140
148
  /** @typedef {Map<SourceType, Source>} Sources */
141
149
 
142
150
  /**
151
+ * Defines the code generation result type used by this module.
143
152
  * @typedef {object} CodeGenerationResult
144
153
  * @property {Sources} sources the resulting sources for all source types
145
154
  * @property {CodeGenerationResultData=} data the resulting data for all source types
@@ -148,59 +157,45 @@ const makeSerializable = require("./util/makeSerializable");
148
157
  */
149
158
 
150
159
  /**
160
+ * Defines the lib ident options type used by this module.
151
161
  * @typedef {object} LibIdentOptions
152
162
  * @property {string} context absolute context path to which lib ident is relative to
153
163
  * @property {AssociatedObjectForCache=} associatedObjectForCache object for caching
154
164
  */
155
165
 
156
166
  /**
167
+ * Defines the build meta properties common to all module types.
168
+ * Module type specific properties live in the `Known*BuildMeta` typedef of the dedicated module class.
157
169
  * @typedef {object} KnownBuildMeta
158
170
  * @property {("default" | "namespace" | "flagged" | "dynamic")=} exportsType
159
171
  * @property {(false | "redirect" | "redirect-warn")=} defaultObject
160
- * @property {boolean=} strictHarmonyModule
161
- * @property {boolean=} treatAsCommonJs
162
172
  * @property {boolean=} async
163
173
  * @property {boolean=} sideEffectFree
164
- * @property {boolean=} isCSSModule
165
- * @property {Record<string, string>=} jsIncompatibleExports
166
- * @property {Map<string, Record<string, string>>=} exportsFinalNameByRuntime
167
- * @property {Map<string, string>=} exportsSourceByRuntime
174
+ * @property {Map<string, Record<string, string>>=} exportsFinalNameByRuntime using in ModuleLibraryPlugin
175
+ * @property {Map<string, string>=} exportsSourceByRuntime using in ModuleLibraryPlugin
168
176
  */
169
177
 
170
178
  /**
179
+ * Defines the build info properties common to all module types.
180
+ * Module type specific properties live in the `Known*BuildInfo` typedef of the dedicated module class.
171
181
  * @typedef {object} KnownBuildInfo
172
182
  * @property {boolean=} cacheable
173
- * @property {boolean=} parsed
183
+ * @property {string[]=} notCacheableReasons reasons why the module is not cacheable (e.g. paths of loaders that marked it)
174
184
  * @property {boolean=} strict
175
- * @property {string=} moduleArgument using in AMD
176
- * @property {string=} exportsArgument using in AMD
177
- * @property {string=} moduleConcatenationBailout using in CommonJs
178
- * @property {boolean=} needCreateRequire using in APIPlugin
179
- * @property {string=} resourceIntegrity using in HttpUriPlugin
180
- * @property {FileSystemDependencies=} fileDependencies using in NormalModule
181
- * @property {FileSystemDependencies=} contextDependencies using in NormalModule
182
- * @property {FileSystemDependencies=} missingDependencies using in NormalModule
183
- * @property {FileSystemDependencies=} buildDependencies using in NormalModule
184
- * @property {ValueCacheVersions=} valueDependencies using in NormalModule
185
- * @property {Record<string, Source>=} assets using in NormalModule
186
- * @property {Map<string, AssetInfo | undefined>=} assetsInfo using in NormalModule
187
- * @property {string=} hash using in NormalModule
188
- * @property {(Snapshot | null)=} snapshot using in ContextModule
189
- * @property {string=} fullContentHash for assets modules
190
- * @property {string=} filename for assets modules
191
- * @property {boolean=} dataUrl for assets modules
192
- * @property {AssetInfo=} assetInfo for assets modules
193
- * @property {boolean=} javascriptModule for external modules
194
- * @property {boolean=} active for lazy compilation modules
195
- * @property {CssData=} cssData for css modules
196
- * @property {JsonData=} jsonData for json modules
185
+ * @property {string=} moduleArgument
186
+ * @property {string=} exportsArgument
187
+ * @property {Record<string, Source>=} assets assets added by loaders or plugins
188
+ * @property {Map<string, AssetInfo | undefined>=} assetsInfo
197
189
  * @property {Set<string>=} topLevelDeclarations top level declaration names
190
+ * @property {boolean=} isCircular true when the module is part of a circular dependency chain
191
+ * @property {boolean=} usesTopLevelAwaitForOf module uses top-level `for await…of`, which can't be lowered to a generator
198
192
  */
199
193
 
200
194
  /** @typedef {string | Set<string>} ValueCacheVersion */
201
195
  /** @typedef {Map<string, ValueCacheVersion>} ValueCacheVersions */
202
196
 
203
197
  /**
198
+ * Defines the need build context type used by this module.
204
199
  * @typedef {object} NeedBuildContext
205
200
  * @property {Compilation} compilation
206
201
  * @property {FileSystemInfo} fileSystemInfo
@@ -215,6 +210,7 @@ const makeSerializable = require("./util/makeSerializable");
215
210
  /** @typedef {KnownBuildInfo & Record<string, EXPECTED_ANY>} BuildInfo */
216
211
 
217
212
  /**
213
+ * Defines the factory meta type used by this module.
218
214
  * @typedef {object} FactoryMeta
219
215
  * @property {boolean=} sideEffectFree
220
216
  */
@@ -228,6 +224,7 @@ const DEFAULT_TYPES_UNKNOWN = new Set([UNKNOWN_TYPE]);
228
224
 
229
225
  const deprecatedNeedRebuild = util.deprecate(
230
226
  /**
227
+ * Handles the callback logic for this hook.
231
228
  * @param {Module} module the module
232
229
  * @param {NeedBuildContext} context context info
233
230
  * @returns {boolean} true, when rebuild is needed
@@ -248,6 +245,7 @@ const deprecatedNeedRebuild = util.deprecate(
248
245
 
249
246
  class Module extends DependenciesBlock {
250
247
  /**
248
+ * Creates an instance of Module.
251
249
  * @param {ModuleTypes | ""} type the module type, when deserializing the type is not known and is an empty string
252
250
  * @param {(string | null)=} context an optional context
253
251
  * @param {(string | null)=} layer an optional layer in which the module is
@@ -280,15 +278,12 @@ class Module extends DependenciesBlock {
280
278
  /** @type {boolean} */
281
279
  this.useSimpleSourceMap = false;
282
280
 
283
- // Is in hot context, i.e. HotModuleReplacementPlugin.js enabled
284
- // TODO do we need hot here?
285
- /** @type {boolean} */
286
- this.hot = false;
287
281
  // Info from Build
288
- /** @type {WebpackError[] | undefined} */
282
+ /** @type {Error[] | undefined} */
289
283
  this._warnings = undefined;
290
- /** @type {WebpackError[] | undefined} */
284
+ /** @type {Error[] | undefined} */
291
285
  this._errors = undefined;
286
+ // Subclasses with type specific build info/meta redeclare these with a narrowed type
292
287
  /** @type {BuildMeta | undefined} */
293
288
  this.buildMeta = undefined;
294
289
  /** @type {BuildInfo | undefined} */
@@ -302,6 +297,7 @@ class Module extends DependenciesBlock {
302
297
  // TODO remove in webpack 6
303
298
  // BACKWARD-COMPAT START
304
299
  /**
300
+ * Returns the module id assigned by the chunk graph.
305
301
  * @deprecated
306
302
  * @returns {ModuleId | null} module id
307
303
  */
@@ -314,6 +310,7 @@ class Module extends DependenciesBlock {
314
310
  }
315
311
 
316
312
  /**
313
+ * Updates the module id using the provided value.
317
314
  * @deprecated
318
315
  * @param {ModuleId} value value
319
316
  */
@@ -330,6 +327,7 @@ class Module extends DependenciesBlock {
330
327
  }
331
328
 
332
329
  /**
330
+ * Returns the hash of the module.
333
331
  * @deprecated
334
332
  * @returns {string} the hash of the module
335
333
  */
@@ -342,6 +340,7 @@ class Module extends DependenciesBlock {
342
340
  }
343
341
 
344
342
  /**
343
+ * Returns the rendered hash of the module.
345
344
  * @deprecated
346
345
  * @returns {string} the shortened hash of the module
347
346
  */
@@ -378,6 +377,7 @@ class Module extends DependenciesBlock {
378
377
  }
379
378
 
380
379
  /**
380
+ * Returns the pre-order index.
381
381
  * @deprecated
382
382
  * @returns {number | null} the pre order index
383
383
  */
@@ -390,6 +390,7 @@ class Module extends DependenciesBlock {
390
390
  }
391
391
 
392
392
  /**
393
+ * Updates the pre-order index using the provided value.
393
394
  * @deprecated
394
395
  * @param {number} value the pre order index
395
396
  */
@@ -402,6 +403,7 @@ class Module extends DependenciesBlock {
402
403
  }
403
404
 
404
405
  /**
406
+ * Returns the post-order index.
405
407
  * @deprecated
406
408
  * @returns {number | null} the post order index
407
409
  */
@@ -414,6 +416,7 @@ class Module extends DependenciesBlock {
414
416
  }
415
417
 
416
418
  /**
419
+ * Updates the post-order index using the provided value.
417
420
  * @deprecated
418
421
  * @param {number} value the post order index
419
422
  */
@@ -426,6 +429,7 @@ class Module extends DependenciesBlock {
426
429
  }
427
430
 
428
431
  /**
432
+ * Returns the depth.
429
433
  * @deprecated
430
434
  * @returns {number | null} the depth
431
435
  */
@@ -438,6 +442,7 @@ class Module extends DependenciesBlock {
438
442
  }
439
443
 
440
444
  /**
445
+ * Updates the depth using the provided value.
441
446
  * @deprecated
442
447
  * @param {number} value the depth
443
448
  */
@@ -450,6 +455,7 @@ class Module extends DependenciesBlock {
450
455
  }
451
456
 
452
457
  /**
458
+ * Returns the issuer.
453
459
  * @deprecated
454
460
  * @returns {Module | null | undefined} issuer
455
461
  */
@@ -462,6 +468,7 @@ class Module extends DependenciesBlock {
462
468
  }
463
469
 
464
470
  /**
471
+ * Updates the issuer using the provided value.
465
472
  * @deprecated
466
473
  * @param {Module | null} value issuer
467
474
  */
@@ -486,6 +493,7 @@ class Module extends DependenciesBlock {
486
493
  }
487
494
 
488
495
  /**
496
+ * Gets optimization bailout.
489
497
  * @deprecated
490
498
  * @returns {OptimizationBailouts} list
491
499
  */
@@ -512,6 +520,7 @@ class Module extends DependenciesBlock {
512
520
  }
513
521
 
514
522
  /**
523
+ * Adds the provided chunk to the module.
515
524
  * @deprecated
516
525
  * @param {Chunk} chunk the chunk
517
526
  * @returns {boolean} true, when the module was added
@@ -528,6 +537,7 @@ class Module extends DependenciesBlock {
528
537
  }
529
538
 
530
539
  /**
540
+ * Removes the provided chunk from the module.
531
541
  * @deprecated
532
542
  * @param {Chunk} chunk the chunk
533
543
  * @returns {void}
@@ -541,6 +551,7 @@ class Module extends DependenciesBlock {
541
551
  }
542
552
 
543
553
  /**
554
+ * Checks whether this module is in the provided chunk.
544
555
  * @deprecated
545
556
  * @param {Chunk} chunk the chunk
546
557
  * @returns {boolean} true, when the module is in the chunk
@@ -602,6 +613,7 @@ class Module extends DependenciesBlock {
602
613
  }
603
614
 
604
615
  /**
616
+ * Checks whether this module provides the specified export.
605
617
  * @deprecated
606
618
  * @param {string} exportName a name of an export
607
619
  * @returns {boolean | null} true, if the export is provided why the module.
@@ -618,6 +630,7 @@ class Module extends DependenciesBlock {
618
630
  // BACKWARD-COMPAT END
619
631
 
620
632
  /**
633
+ * Gets exports argument.
621
634
  * @returns {string} name of the exports argument
622
635
  */
623
636
  get exportsArgument() {
@@ -625,6 +638,7 @@ class Module extends DependenciesBlock {
625
638
  }
626
639
 
627
640
  /**
641
+ * Gets module argument.
628
642
  * @returns {string} name of the module argument
629
643
  */
630
644
  get moduleArgument() {
@@ -632,6 +646,7 @@ class Module extends DependenciesBlock {
632
646
  }
633
647
 
634
648
  /**
649
+ * Returns export type.
635
650
  * @param {ModuleGraph} moduleGraph the module graph
636
651
  * @param {boolean | undefined} strict the importing module is strict
637
652
  * @returns {ExportsType} export type
@@ -702,6 +717,7 @@ class Module extends DependenciesBlock {
702
717
  }
703
718
 
704
719
  /**
720
+ * Adds presentational dependency.
705
721
  * @param {Dependency} presentationalDependency dependency being tied to module.
706
722
  * This is a Dependency without edge in the module graph. It's only for presentation.
707
723
  * @returns {void}
@@ -714,6 +730,7 @@ class Module extends DependenciesBlock {
714
730
  }
715
731
 
716
732
  /**
733
+ * Adds code generation dependency.
717
734
  * @param {Dependency} codeGenerationDependency dependency being tied to module.
718
735
  * This is a Dependency where the code generation result of the referenced module is needed during code generation.
719
736
  * The Dependency should also be added to normal dependencies via addDependency.
@@ -727,7 +744,7 @@ class Module extends DependenciesBlock {
727
744
  }
728
745
 
729
746
  /**
730
- * Removes all dependencies and blocks
747
+ * Clear dependencies and blocks.
731
748
  * @returns {void}
732
749
  */
733
750
  clearDependenciesAndBlocks() {
@@ -741,7 +758,8 @@ class Module extends DependenciesBlock {
741
758
  }
742
759
 
743
760
  /**
744
- * @param {WebpackError} warning the warning
761
+ * Adds the provided warning to the module.
762
+ * @param {Error} warning the warning
745
763
  * @returns {void}
746
764
  */
747
765
  addWarning(warning) {
@@ -752,13 +770,15 @@ class Module extends DependenciesBlock {
752
770
  }
753
771
 
754
772
  /**
755
- * @returns {Iterable<WebpackError> | undefined} list of warnings if any
773
+ * Returns list of warnings if any.
774
+ * @returns {Error[] | undefined} list of warnings if any
756
775
  */
757
776
  getWarnings() {
758
777
  return this._warnings;
759
778
  }
760
779
 
761
780
  /**
781
+ * Gets number of warnings.
762
782
  * @returns {number} number of warnings
763
783
  */
764
784
  getNumberOfWarnings() {
@@ -766,7 +786,8 @@ class Module extends DependenciesBlock {
766
786
  }
767
787
 
768
788
  /**
769
- * @param {WebpackError} error the error
789
+ * Adds the provided error to the module.
790
+ * @param {Error} error the error
770
791
  * @returns {void}
771
792
  */
772
793
  addError(error) {
@@ -777,13 +798,15 @@ class Module extends DependenciesBlock {
777
798
  }
778
799
 
779
800
  /**
780
- * @returns {Iterable<WebpackError> | undefined} list of errors if any
801
+ * Returns list of errors if any.
802
+ * @returns {Error[] | undefined} list of errors if any
781
803
  */
782
804
  getErrors() {
783
805
  return this._errors;
784
806
  }
785
807
 
786
808
  /**
809
+ * Gets number of errors.
787
810
  * @returns {number} number of errors
788
811
  */
789
812
  getNumberOfErrors() {
@@ -804,6 +827,7 @@ class Module extends DependenciesBlock {
804
827
  }
805
828
 
806
829
  /**
830
+ * Checks whether this module is optional.
807
831
  * @param {ModuleGraph} moduleGraph the module graph
808
832
  * @returns {boolean} true, if the module is optional
809
833
  */
@@ -823,6 +847,7 @@ class Module extends DependenciesBlock {
823
847
  }
824
848
 
825
849
  /**
850
+ * Checks whether this module is accessible in chunk.
826
851
  * @param {ChunkGraph} chunkGraph the chunk graph
827
852
  * @param {Chunk} chunk a chunk
828
853
  * @param {Chunk=} ignoreChunk chunk to be ignored
@@ -837,6 +862,7 @@ class Module extends DependenciesBlock {
837
862
  }
838
863
 
839
864
  /**
865
+ * Checks whether this module is accessible in chunk group.
840
866
  * @param {ChunkGraph} chunkGraph the chunk graph
841
867
  * @param {ChunkGroup} chunkGroup a chunk group
842
868
  * @param {Chunk=} ignoreChunk chunk to be ignored
@@ -864,6 +890,7 @@ class Module extends DependenciesBlock {
864
890
  }
865
891
 
866
892
  /**
893
+ * Checks whether this module contains the chunk.
867
894
  * @param {Chunk} chunk a chunk
868
895
  * @param {ModuleGraph} moduleGraph the module graph
869
896
  * @param {ChunkGraph} chunkGraph the chunk graph
@@ -889,6 +916,7 @@ class Module extends DependenciesBlock {
889
916
  }
890
917
 
891
918
  /**
919
+ * Checks whether this module contains the module graph.
892
920
  * @param {ModuleGraph} moduleGraph the module graph
893
921
  * @param {RuntimeSpec} runtime the runtime
894
922
  * @returns {boolean} true if at least one other module depends on this module
@@ -901,6 +929,7 @@ class Module extends DependenciesBlock {
901
929
  }
902
930
 
903
931
  /**
932
+ * Returns a string representation.
904
933
  * @returns {string} for debugging
905
934
  */
906
935
  toString() {
@@ -908,6 +937,7 @@ class Module extends DependenciesBlock {
908
937
  }
909
938
 
910
939
  /**
940
+ * Checks whether the module needs to be rebuilt for the current build state.
911
941
  * @param {NeedBuildContext} context context info
912
942
  * @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
913
943
  * @returns {void}
@@ -922,6 +952,7 @@ class Module extends DependenciesBlock {
922
952
  }
923
953
 
924
954
  /**
955
+ * Checks whether it needs rebuild.
925
956
  * @deprecated Use needBuild instead
926
957
  * @param {Map<string, number | null>} fileTimestamps timestamps of files
927
958
  * @param {Map<string, number | null>} contextTimestamps timestamps of directories
@@ -932,6 +963,7 @@ class Module extends DependenciesBlock {
932
963
  }
933
964
 
934
965
  /**
966
+ * Updates the hash with the data contributed by this instance.
935
967
  * @param {Hash} hash the hash used to track dependencies
936
968
  * @param {UpdateHashContext} context context
937
969
  * @returns {void}
@@ -958,6 +990,7 @@ class Module extends DependenciesBlock {
958
990
  }
959
991
 
960
992
  /**
993
+ * Invalidates the cached state associated with this value.
961
994
  * @returns {void}
962
995
  */
963
996
  invalidateBuild() {
@@ -966,29 +999,32 @@ class Module extends DependenciesBlock {
966
999
 
967
1000
  /* istanbul ignore next */
968
1001
  /**
1002
+ * Returns the unique identifier used to reference this module.
969
1003
  * @abstract
970
1004
  * @returns {string} a unique identifier of the module
971
1005
  */
972
1006
  identifier() {
973
- const AbstractMethodError = require("./AbstractMethodError");
1007
+ const AbstractMethodError = require("./errors/AbstractMethodError");
974
1008
 
975
1009
  throw new AbstractMethodError();
976
1010
  }
977
1011
 
978
1012
  /* istanbul ignore next */
979
1013
  /**
1014
+ * Returns a human-readable identifier for this module.
980
1015
  * @abstract
981
1016
  * @param {RequestShortener} requestShortener the request shortener
982
1017
  * @returns {string} a user readable identifier of the module
983
1018
  */
984
1019
  readableIdentifier(requestShortener) {
985
- const AbstractMethodError = require("./AbstractMethodError");
1020
+ const AbstractMethodError = require("./errors/AbstractMethodError");
986
1021
 
987
1022
  throw new AbstractMethodError();
988
1023
  }
989
1024
 
990
1025
  /* istanbul ignore next */
991
1026
  /**
1027
+ * Builds the module using the provided compilation context.
992
1028
  * @abstract
993
1029
  * @param {WebpackOptions} options webpack options
994
1030
  * @param {Compilation} compilation the compilation
@@ -998,12 +1034,13 @@ class Module extends DependenciesBlock {
998
1034
  * @returns {void}
999
1035
  */
1000
1036
  build(options, compilation, resolver, fs, callback) {
1001
- const AbstractMethodError = require("./AbstractMethodError");
1037
+ const AbstractMethodError = require("./errors/AbstractMethodError");
1002
1038
 
1003
1039
  throw new AbstractMethodError();
1004
1040
  }
1005
1041
 
1006
1042
  /**
1043
+ * Returns the source types this module can generate.
1007
1044
  * @abstract
1008
1045
  * @returns {SourceTypes} types available (do not mutate)
1009
1046
  */
@@ -1015,6 +1052,14 @@ class Module extends DependenciesBlock {
1015
1052
  return JAVASCRIPT_TYPES;
1016
1053
  }
1017
1054
 
1055
+ /**
1056
+ * Freshly recomputed source types when they depend on incoming connections, for chunk-graph cache invalidation; undefined otherwise. #20800
1057
+ * @returns {SourceTypes | undefined} source types or undefined
1058
+ */
1059
+ getReferencedSourceTypes() {
1060
+ return undefined;
1061
+ }
1062
+
1018
1063
  /**
1019
1064
  * Basic source types are high-level categories like javascript, css, webassembly, etc.
1020
1065
  * We only have built-in knowledge about the javascript basic type here; other basic types may be
@@ -1029,6 +1074,7 @@ class Module extends DependenciesBlock {
1029
1074
  }
1030
1075
 
1031
1076
  /**
1077
+ * Returns generated source.
1032
1078
  * @abstract
1033
1079
  * @deprecated Use codeGeneration() instead
1034
1080
  * @param {DependencyTemplates} dependencyTemplates the dependency templates
@@ -1038,7 +1084,7 @@ class Module extends DependenciesBlock {
1038
1084
  */
1039
1085
  source(dependencyTemplates, runtimeTemplate, type = JAVASCRIPT_TYPE) {
1040
1086
  if (this.codeGeneration === Module.prototype.codeGeneration) {
1041
- const AbstractMethodError = require("./AbstractMethodError");
1087
+ const AbstractMethodError = require("./errors/AbstractMethodError");
1042
1088
 
1043
1089
  throw new AbstractMethodError();
1044
1090
  }
@@ -1068,17 +1114,19 @@ class Module extends DependenciesBlock {
1068
1114
 
1069
1115
  /* istanbul ignore next */
1070
1116
  /**
1117
+ * Returns the estimated size for the requested source type.
1071
1118
  * @abstract
1072
1119
  * @param {string=} type the source type for which the size should be estimated
1073
1120
  * @returns {number} the estimated size of the module (must be non-zero)
1074
1121
  */
1075
1122
  size(type) {
1076
- const AbstractMethodError = require("./AbstractMethodError");
1123
+ const AbstractMethodError = require("./errors/AbstractMethodError");
1077
1124
 
1078
1125
  throw new AbstractMethodError();
1079
1126
  }
1080
1127
 
1081
1128
  /**
1129
+ * Gets the library identifier.
1082
1130
  * @param {LibIdentOptions} options options
1083
1131
  * @returns {LibIdent | null} an identifier for library inclusion
1084
1132
  */
@@ -1087,6 +1135,7 @@ class Module extends DependenciesBlock {
1087
1135
  }
1088
1136
 
1089
1137
  /**
1138
+ * Returns the path used when matching this module against rule conditions.
1090
1139
  * @returns {NameForCondition | null} absolute path which should be used for condition matching (usually the resource path)
1091
1140
  */
1092
1141
  nameForCondition() {
@@ -1094,6 +1143,7 @@ class Module extends DependenciesBlock {
1094
1143
  }
1095
1144
 
1096
1145
  /**
1146
+ * Returns the reason this module cannot be concatenated, when one exists.
1097
1147
  * @param {ConcatenationBailoutReasonContext} context context
1098
1148
  * @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
1099
1149
  */
@@ -1102,6 +1152,7 @@ class Module extends DependenciesBlock {
1102
1152
  }
1103
1153
 
1104
1154
  /**
1155
+ * Gets side effects connection state.
1105
1156
  * @param {ModuleGraph} moduleGraph the module graph
1106
1157
  * @returns {ConnectionState} how this module should be connected to referencing modules when consumed for side-effects only
1107
1158
  */
@@ -1110,6 +1161,7 @@ class Module extends DependenciesBlock {
1110
1161
  }
1111
1162
 
1112
1163
  /**
1164
+ * Generates code and runtime requirements for this module.
1113
1165
  * @param {CodeGenerationContext} context context for code generation
1114
1166
  * @returns {CodeGenerationResult} result
1115
1167
  */
@@ -1140,6 +1192,7 @@ class Module extends DependenciesBlock {
1140
1192
  }
1141
1193
 
1142
1194
  /**
1195
+ * Returns true if the module can be placed in the chunk.
1143
1196
  * @param {Chunk} chunk the chunk which condition should be checked
1144
1197
  * @param {Compilation} compilation the compilation
1145
1198
  * @returns {boolean} true if the module can be placed in the chunk
@@ -1198,6 +1251,7 @@ class Module extends DependenciesBlock {
1198
1251
  }
1199
1252
 
1200
1253
  /**
1254
+ * Gets the original source.
1201
1255
  * @returns {Source | null} the original source for the module before webpack transformation
1202
1256
  */
1203
1257
  originalSource() {
@@ -1205,6 +1259,7 @@ class Module extends DependenciesBlock {
1205
1259
  }
1206
1260
 
1207
1261
  /**
1262
+ * Adds the provided file dependencies to the module.
1208
1263
  * @param {FileSystemDependencies} fileDependencies set where file dependencies are added to
1209
1264
  * @param {FileSystemDependencies} contextDependencies set where context dependencies are added to
1210
1265
  * @param {FileSystemDependencies} missingDependencies set where missing dependencies are added to
@@ -1218,6 +1273,7 @@ class Module extends DependenciesBlock {
1218
1273
  ) {}
1219
1274
 
1220
1275
  /**
1276
+ * Serializes this instance into the provided serializer context.
1221
1277
  * @param {ObjectSerializerContext} context context
1222
1278
  */
1223
1279
  serialize(context) {
@@ -1229,7 +1285,6 @@ class Module extends DependenciesBlock {
1229
1285
  write(this.factoryMeta);
1230
1286
  write(this.useSourceMap);
1231
1287
  write(this.useSimpleSourceMap);
1232
- write(this.hot);
1233
1288
  write(
1234
1289
  this._warnings !== undefined && this._warnings.length === 0
1235
1290
  ? undefined
@@ -1248,6 +1303,7 @@ class Module extends DependenciesBlock {
1248
1303
  }
1249
1304
 
1250
1305
  /**
1306
+ * Restores this instance from the provided deserializer context.
1251
1307
  * @param {ObjectDeserializerContext} context context
1252
1308
  */
1253
1309
  deserialize(context) {
@@ -1259,7 +1315,6 @@ class Module extends DependenciesBlock {
1259
1315
  this.factoryMeta = read();
1260
1316
  this.useSourceMap = read();
1261
1317
  this.useSimpleSourceMap = read();
1262
- this.hot = read();
1263
1318
  this._warnings = read();
1264
1319
  this._errors = read();
1265
1320
  this.buildMeta = read();
@@ -1271,6 +1326,7 @@ class Module extends DependenciesBlock {
1271
1326
 
1272
1327
  // TODO remove in webpack 6
1273
1328
  /**
1329
+ * Gets source basic types.
1274
1330
  * @deprecated In webpack 6, call getSourceBasicTypes() directly on the module instance instead of using this static method.
1275
1331
  * @param {Module} module the module
1276
1332
  * @returns {ReturnType<Module["getSourceBasicTypes"]>} the source types of the module
@@ -1290,6 +1346,7 @@ makeSerializable(Module, "webpack/lib/Module");
1290
1346
  // TODO remove in webpack 6
1291
1347
  Object.defineProperty(Module.prototype, "hasEqualsChunks", {
1292
1348
  /**
1349
+ * Gets has equals chunks.
1293
1350
  * @deprecated
1294
1351
  * @returns {EXPECTED_ANY} throw an error
1295
1352
  */
@@ -1303,6 +1360,7 @@ Object.defineProperty(Module.prototype, "hasEqualsChunks", {
1303
1360
  // TODO remove in webpack 6
1304
1361
  Object.defineProperty(Module.prototype, "isUsed", {
1305
1362
  /**
1363
+ * Returns throw an error.
1306
1364
  * @deprecated
1307
1365
  * @returns {EXPECTED_ANY} throw an error
1308
1366
  */
@@ -1316,13 +1374,15 @@ Object.defineProperty(Module.prototype, "isUsed", {
1316
1374
  // TODO remove in webpack 6
1317
1375
  Object.defineProperty(Module.prototype, "errors", {
1318
1376
  /**
1377
+ * Returns errors.
1319
1378
  * @deprecated
1320
- * @returns {WebpackError[]} errors
1379
+ * @returns {Error[]} errors
1321
1380
  */
1322
1381
  get: util.deprecate(
1323
1382
  /**
1383
+ * Returns errors.
1324
1384
  * @this {Module}
1325
- * @returns {WebpackError[]} errors
1385
+ * @returns {Error[]} errors
1326
1386
  */
1327
1387
  function errors() {
1328
1388
  if (this._errors === undefined) {
@@ -1338,13 +1398,15 @@ Object.defineProperty(Module.prototype, "errors", {
1338
1398
  // TODO remove in webpack 6
1339
1399
  Object.defineProperty(Module.prototype, "warnings", {
1340
1400
  /**
1401
+ * Returns warnings.
1341
1402
  * @deprecated
1342
- * @returns {WebpackError[]} warnings
1403
+ * @returns {Error[]} warnings
1343
1404
  */
1344
1405
  get: util.deprecate(
1345
1406
  /**
1407
+ * Returns warnings.
1346
1408
  * @this {Module}
1347
- * @returns {WebpackError[]} warnings
1409
+ * @returns {Error[]} warnings
1348
1410
  */
1349
1411
  function warnings() {
1350
1412
  if (this._warnings === undefined) {
@@ -1360,6 +1422,7 @@ Object.defineProperty(Module.prototype, "warnings", {
1360
1422
  // TODO remove in webpack 6
1361
1423
  Object.defineProperty(Module.prototype, "used", {
1362
1424
  /**
1425
+ * Returns throw an error.
1363
1426
  * @deprecated
1364
1427
  * @returns {EXPECTED_ANY} throw an error
1365
1428
  */
@@ -1369,6 +1432,7 @@ Object.defineProperty(Module.prototype, "used", {
1369
1432
  );
1370
1433
  },
1371
1434
  /**
1435
+ * Updates used using the provided value.
1372
1436
  * @param {EXPECTED_ANY} value value
1373
1437
  */
1374
1438
  set(value) {