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