webpack 5.97.1 → 5.104.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (610) hide show
  1. package/README.md +368 -434
  2. package/bin/webpack.js +15 -9
  3. package/hot/dev-server.js +18 -3
  4. package/hot/emitter-event-target.js +7 -0
  5. package/hot/lazy-compilation-node.js +45 -29
  6. package/hot/lazy-compilation-universal.js +18 -0
  7. package/hot/lazy-compilation-web.js +15 -5
  8. package/hot/load-http.js +7 -0
  9. package/hot/log.js +15 -15
  10. package/hot/only-dev-server.js +19 -4
  11. package/hot/poll.js +1 -0
  12. package/lib/APIPlugin.js +48 -50
  13. package/lib/AbstractMethodError.js +1 -0
  14. package/lib/AsyncDependenciesBlock.js +4 -5
  15. package/lib/AutomaticPrefetchPlugin.js +22 -22
  16. package/lib/BannerPlugin.js +35 -40
  17. package/lib/Cache.js +12 -9
  18. package/lib/CacheFacade.js +13 -13
  19. package/lib/CaseSensitiveModulesWarning.js +6 -6
  20. package/lib/Chunk.js +68 -47
  21. package/lib/ChunkGraph.js +174 -95
  22. package/lib/ChunkGroup.js +32 -24
  23. package/lib/ChunkTemplate.js +8 -8
  24. package/lib/CleanPlugin.js +90 -42
  25. package/lib/CodeGenerationResults.js +12 -9
  26. package/lib/CompatibilityPlugin.js +70 -21
  27. package/lib/Compilation.js +827 -550
  28. package/lib/Compiler.js +137 -109
  29. package/lib/ConcatenationScope.js +45 -8
  30. package/lib/ConditionalInitFragment.js +1 -1
  31. package/lib/ConstPlugin.js +89 -59
  32. package/lib/ContextExclusionPlugin.js +5 -4
  33. package/lib/ContextModule.js +66 -51
  34. package/lib/ContextModuleFactory.js +51 -30
  35. package/lib/ContextReplacementPlugin.js +89 -34
  36. package/lib/CssModule.js +8 -4
  37. package/lib/DefinePlugin.js +209 -57
  38. package/lib/DelegatedModule.js +34 -23
  39. package/lib/DelegatedModuleFactoryPlugin.js +27 -24
  40. package/lib/DelegatedPlugin.js +4 -2
  41. package/lib/DependenciesBlock.js +0 -2
  42. package/lib/Dependency.js +37 -19
  43. package/lib/DependencyTemplate.js +2 -0
  44. package/lib/DependencyTemplates.js +5 -6
  45. package/lib/DllEntryPlugin.js +8 -4
  46. package/lib/DllModule.js +11 -12
  47. package/lib/DllModuleFactory.js +2 -2
  48. package/lib/DllPlugin.js +9 -6
  49. package/lib/DllReferencePlugin.js +60 -65
  50. package/lib/DotenvPlugin.js +462 -0
  51. package/lib/DynamicEntryPlugin.js +8 -8
  52. package/lib/EntryOptionPlugin.js +8 -6
  53. package/lib/EntryPlugin.js +5 -3
  54. package/lib/Entrypoint.js +19 -0
  55. package/lib/EnvironmentNotSupportAsyncWarning.js +0 -3
  56. package/lib/EnvironmentPlugin.js +26 -19
  57. package/lib/ErrorHelpers.js +6 -6
  58. package/lib/EvalDevToolModulePlugin.js +17 -14
  59. package/lib/EvalSourceMapDevToolPlugin.js +156 -142
  60. package/lib/ExportsInfo.js +180 -115
  61. package/lib/ExportsInfoApiPlugin.js +2 -2
  62. package/lib/ExternalModule.js +256 -102
  63. package/lib/ExternalModuleFactoryPlugin.js +66 -29
  64. package/lib/ExternalsPlugin.js +57 -2
  65. package/lib/FileSystemInfo.js +313 -247
  66. package/lib/FlagAllModulesAsUsedPlugin.js +2 -2
  67. package/lib/FlagDependencyExportsPlugin.js +29 -19
  68. package/lib/FlagDependencyUsagePlugin.js +9 -10
  69. package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
  70. package/lib/Generator.js +43 -10
  71. package/lib/GraphHelpers.js +11 -3
  72. package/lib/HookWebpackError.js +35 -7
  73. package/lib/HotModuleReplacementPlugin.js +149 -108
  74. package/lib/HotUpdateChunk.js +0 -3
  75. package/lib/IgnoreErrorModuleFactory.js +2 -2
  76. package/lib/IgnorePlugin.js +16 -13
  77. package/lib/IgnoreWarningsPlugin.js +6 -4
  78. package/lib/InitFragment.js +41 -23
  79. package/lib/InvalidDependenciesModuleWarning.js +2 -3
  80. package/lib/JavascriptMetaInfoPlugin.js +2 -4
  81. package/lib/LibManifestPlugin.js +12 -13
  82. package/lib/LoaderOptionsPlugin.js +12 -14
  83. package/lib/LoaderTargetPlugin.js +5 -3
  84. package/lib/MainTemplate.js +18 -29
  85. package/lib/ManifestPlugin.js +235 -0
  86. package/lib/Module.js +138 -60
  87. package/lib/ModuleBuildError.js +4 -2
  88. package/lib/ModuleDependencyError.js +4 -3
  89. package/lib/ModuleDependencyWarning.js +4 -3
  90. package/lib/ModuleError.js +1 -1
  91. package/lib/ModuleFactory.js +10 -3
  92. package/lib/ModuleFilenameHelpers.js +63 -60
  93. package/lib/ModuleGraph.js +195 -70
  94. package/lib/ModuleGraphConnection.js +14 -20
  95. package/lib/ModuleInfoHeaderPlugin.js +15 -16
  96. package/lib/ModuleNotFoundError.js +1 -1
  97. package/lib/ModuleParseError.js +8 -4
  98. package/lib/ModuleSourceTypeConstants.js +189 -0
  99. package/lib/ModuleTemplate.js +7 -8
  100. package/lib/ModuleTypeConstants.js +37 -15
  101. package/lib/ModuleWarning.js +1 -1
  102. package/lib/MultiCompiler.js +64 -49
  103. package/lib/MultiStats.js +19 -14
  104. package/lib/MultiWatching.js +7 -11
  105. package/lib/NoEmitOnErrorsPlugin.js +5 -3
  106. package/lib/NodeStuffPlugin.js +438 -126
  107. package/lib/NormalModule.js +322 -201
  108. package/lib/NormalModuleFactory.js +230 -117
  109. package/lib/NormalModuleReplacementPlugin.js +37 -39
  110. package/lib/NullFactory.js +3 -2
  111. package/lib/OptimizationStages.js +1 -1
  112. package/lib/OptionsApply.js +1 -1
  113. package/lib/Parser.js +5 -3
  114. package/lib/PlatformPlugin.js +3 -1
  115. package/lib/PrefetchPlugin.js +6 -4
  116. package/lib/ProgressPlugin.js +48 -49
  117. package/lib/ProvidePlugin.js +7 -5
  118. package/lib/RawModule.js +26 -12
  119. package/lib/RecordIdsPlugin.js +88 -110
  120. package/lib/RequestShortener.js +3 -1
  121. package/lib/ResolverFactory.js +15 -14
  122. package/lib/RuntimeGlobals.js +216 -153
  123. package/lib/RuntimeModule.js +7 -6
  124. package/lib/RuntimePlugin.js +115 -62
  125. package/lib/RuntimeTemplate.js +248 -76
  126. package/lib/SelfModuleFactory.js +2 -2
  127. package/lib/SizeFormatHelpers.js +2 -2
  128. package/lib/SourceMapDevToolModuleOptionsPlugin.js +17 -27
  129. package/lib/SourceMapDevToolPlugin.js +72 -59
  130. package/lib/Stats.js +2 -3
  131. package/lib/Template.js +31 -24
  132. package/lib/TemplatedPathPlugin.js +24 -21
  133. package/lib/UseStrictPlugin.js +1 -1
  134. package/lib/WarnCaseSensitiveModulesPlugin.js +36 -37
  135. package/lib/WarnDeprecatedOptionPlugin.js +7 -8
  136. package/lib/WarnNoModeSetPlugin.js +3 -1
  137. package/lib/WatchIgnorePlugin.js +11 -9
  138. package/lib/Watching.js +27 -29
  139. package/lib/WebpackError.js +10 -3
  140. package/lib/WebpackIsIncludedPlugin.js +4 -5
  141. package/lib/WebpackOptionsApply.js +263 -135
  142. package/lib/asset/AssetBytesGenerator.js +171 -0
  143. package/lib/asset/AssetBytesParser.js +37 -0
  144. package/lib/asset/AssetGenerator.js +285 -223
  145. package/lib/asset/AssetModulesPlugin.js +103 -41
  146. package/lib/asset/AssetParser.js +7 -3
  147. package/lib/asset/AssetSourceGenerator.js +41 -17
  148. package/lib/asset/RawDataUrlModule.js +17 -9
  149. package/lib/async-modules/AsyncModuleHelpers.js +52 -0
  150. package/lib/async-modules/AwaitDependenciesInitFragment.js +39 -24
  151. package/lib/async-modules/InferAsyncModulesPlugin.js +25 -26
  152. package/lib/buildChunkGraph.js +36 -17
  153. package/lib/cache/AddBuildDependenciesPlugin.js +5 -6
  154. package/lib/cache/IdleFileCachePlugin.js +22 -20
  155. package/lib/cache/MemoryCachePlugin.js +3 -3
  156. package/lib/cache/MemoryWithGcCachePlugin.js +17 -11
  157. package/lib/cache/PackFileCacheStrategy.js +198 -170
  158. package/lib/cache/ResolverCachePlugin.js +58 -48
  159. package/lib/cache/getLazyHashedEtag.js +5 -4
  160. package/lib/cli.js +197 -39
  161. package/lib/config/browserslistTargetHandler.js +110 -85
  162. package/lib/config/defaults.js +514 -113
  163. package/lib/config/normalization.js +91 -64
  164. package/lib/config/target.js +30 -18
  165. package/lib/container/ContainerEntryDependency.js +0 -1
  166. package/lib/container/ContainerEntryModule.js +16 -15
  167. package/lib/container/ContainerEntryModuleFactory.js +2 -2
  168. package/lib/container/ContainerPlugin.js +5 -6
  169. package/lib/container/ContainerReferencePlugin.js +27 -30
  170. package/lib/container/FallbackDependency.js +2 -1
  171. package/lib/container/FallbackModule.js +19 -14
  172. package/lib/container/FallbackModuleFactory.js +2 -2
  173. package/lib/container/HoistContainerReferencesPlugin.js +7 -7
  174. package/lib/container/ModuleFederationPlugin.js +4 -4
  175. package/lib/container/RemoteModule.js +14 -14
  176. package/lib/container/RemoteRuntimeModule.js +2 -2
  177. package/lib/container/options.js +9 -9
  178. package/lib/css/CssGenerator.js +366 -74
  179. package/lib/css/CssLoadingRuntimeModule.js +26 -16
  180. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +56 -0
  181. package/lib/css/CssModulesPlugin.js +191 -142
  182. package/lib/css/CssParser.js +1756 -740
  183. package/lib/css/walkCssTokens.js +180 -67
  184. package/lib/debug/ProfilingPlugin.js +135 -51
  185. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +29 -28
  186. package/lib/dependencies/AMDPlugin.js +18 -11
  187. package/lib/dependencies/AMDRequireArrayDependency.js +5 -4
  188. package/lib/dependencies/AMDRequireContextDependency.js +2 -1
  189. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +35 -26
  190. package/lib/dependencies/AMDRuntimeModules.js +3 -1
  191. package/lib/dependencies/CachedConstDependency.js +24 -18
  192. package/lib/dependencies/CommonJsExportRequireDependency.js +31 -24
  193. package/lib/dependencies/CommonJsExportsDependency.js +2 -1
  194. package/lib/dependencies/CommonJsExportsParserPlugin.js +50 -36
  195. package/lib/dependencies/CommonJsFullRequireDependency.js +7 -13
  196. package/lib/dependencies/CommonJsImportsParserPlugin.js +146 -127
  197. package/lib/dependencies/CommonJsPlugin.js +29 -18
  198. package/lib/dependencies/CommonJsRequireContextDependency.js +4 -3
  199. package/lib/dependencies/CommonJsSelfReferenceDependency.js +4 -4
  200. package/lib/dependencies/ConstDependency.js +2 -2
  201. package/lib/dependencies/ContextDependency.js +10 -5
  202. package/lib/dependencies/ContextDependencyHelpers.js +21 -13
  203. package/lib/dependencies/ContextDependencyTemplateAsId.js +10 -9
  204. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +13 -10
  205. package/lib/dependencies/ContextElementDependency.js +23 -12
  206. package/lib/dependencies/CssIcssExportDependency.js +402 -22
  207. package/lib/dependencies/CssIcssImportDependency.js +116 -51
  208. package/lib/dependencies/CssIcssSymbolDependency.js +33 -35
  209. package/lib/dependencies/CssImportDependency.js +17 -14
  210. package/lib/dependencies/CssUrlDependency.js +8 -13
  211. package/lib/dependencies/DynamicExports.js +19 -19
  212. package/lib/dependencies/ExportsInfoDependency.js +13 -10
  213. package/lib/dependencies/ExternalModuleDependency.js +7 -7
  214. package/lib/dependencies/ExternalModuleInitFragment.js +3 -2
  215. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +96 -0
  216. package/lib/dependencies/HarmonyAcceptDependency.js +96 -5
  217. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -5
  218. package/lib/dependencies/HarmonyCompatibilityDependency.js +0 -1
  219. package/lib/dependencies/HarmonyDetectionParserPlugin.js +10 -30
  220. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +19 -8
  221. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +136 -99
  222. package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
  223. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +152 -61
  224. package/lib/dependencies/HarmonyExportInitFragment.js +2 -2
  225. package/lib/dependencies/HarmonyExportSpecifierDependency.js +2 -2
  226. package/lib/dependencies/HarmonyExports.js +5 -5
  227. package/lib/dependencies/HarmonyImportDependency.js +92 -45
  228. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +201 -163
  229. package/lib/dependencies/HarmonyImportSideEffectDependency.js +5 -6
  230. package/lib/dependencies/HarmonyImportSpecifierDependency.js +69 -42
  231. package/lib/dependencies/HarmonyModulesPlugin.js +16 -11
  232. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -15
  233. package/lib/dependencies/ImportContextDependency.js +15 -1
  234. package/lib/dependencies/ImportDependency.js +25 -7
  235. package/lib/dependencies/ImportEagerDependency.js +7 -5
  236. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +23 -13
  237. package/lib/dependencies/ImportMetaContextPlugin.js +2 -2
  238. package/lib/dependencies/ImportMetaPlugin.js +172 -20
  239. package/lib/dependencies/ImportParserPlugin.js +327 -49
  240. package/lib/dependencies/ImportPhase.js +121 -0
  241. package/lib/dependencies/ImportPlugin.js +3 -1
  242. package/lib/dependencies/ImportWeakDependency.js +7 -5
  243. package/lib/dependencies/JsonExportsDependency.js +54 -28
  244. package/lib/dependencies/LoaderDependency.js +0 -3
  245. package/lib/dependencies/LoaderImportDependency.js +0 -3
  246. package/lib/dependencies/LoaderPlugin.js +24 -25
  247. package/lib/dependencies/LocalModulesHelpers.js +4 -4
  248. package/lib/dependencies/ModuleDecoratorDependency.js +2 -4
  249. package/lib/dependencies/ModuleDependency.js +14 -13
  250. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  251. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
  252. package/lib/dependencies/NullDependency.js +2 -0
  253. package/lib/dependencies/ProvidedDependency.js +8 -10
  254. package/lib/dependencies/PureExpressionDependency.js +1 -2
  255. package/lib/dependencies/RequireContextDependency.js +2 -1
  256. package/lib/dependencies/RequireContextDependencyParserPlugin.js +47 -44
  257. package/lib/dependencies/RequireContextPlugin.js +5 -2
  258. package/lib/dependencies/RequireEnsureDependenciesBlock.js +3 -3
  259. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +101 -99
  260. package/lib/dependencies/RequireEnsurePlugin.js +6 -6
  261. package/lib/dependencies/RequireIncludeDependency.js +2 -2
  262. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +33 -34
  263. package/lib/dependencies/RequireIncludePlugin.js +1 -0
  264. package/lib/dependencies/RequireResolveContextDependency.js +1 -1
  265. package/lib/dependencies/RequireResolveDependency.js +3 -3
  266. package/lib/dependencies/RuntimeRequirementsDependency.js +3 -4
  267. package/lib/dependencies/StaticExportsDependency.js +3 -5
  268. package/lib/dependencies/SystemPlugin.js +4 -4
  269. package/lib/dependencies/URLContextDependency.js +65 -0
  270. package/lib/dependencies/URLDependency.js +3 -8
  271. package/lib/dependencies/URLPlugin.js +18 -159
  272. package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -3
  273. package/lib/dependencies/WebAssemblyImportDependency.js +2 -2
  274. package/lib/dependencies/WebpackIsIncludedDependency.js +2 -3
  275. package/lib/dependencies/WorkerDependency.js +8 -6
  276. package/lib/dependencies/WorkerPlugin.js +131 -67
  277. package/lib/dependencies/getFunctionExpression.js +2 -2
  278. package/lib/dependencies/processExportInfo.js +4 -4
  279. package/lib/esm/ExportWebpackRequireRuntimeModule.js +1 -1
  280. package/lib/esm/ModuleChunkFormatPlugin.js +232 -179
  281. package/lib/esm/ModuleChunkLoadingPlugin.js +112 -57
  282. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +102 -28
  283. package/lib/formatLocation.js +2 -2
  284. package/lib/hmr/HotModuleReplacement.runtime.js +41 -29
  285. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
  286. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +43 -33
  287. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +37 -0
  288. package/lib/hmr/LazyCompilationPlugin.js +67 -54
  289. package/lib/hmr/lazyCompilationBackend.js +23 -18
  290. package/lib/ids/ChunkModuleIdRangePlugin.js +14 -11
  291. package/lib/ids/DeterministicChunkIdsPlugin.js +32 -37
  292. package/lib/ids/DeterministicModuleIdsPlugin.js +52 -52
  293. package/lib/ids/HashedModuleIdsPlugin.js +15 -13
  294. package/lib/ids/IdHelpers.js +66 -49
  295. package/lib/ids/NamedChunkIdsPlugin.js +14 -17
  296. package/lib/ids/NamedModuleIdsPlugin.js +12 -14
  297. package/lib/ids/NaturalChunkIdsPlugin.js +6 -4
  298. package/lib/ids/NaturalModuleIdsPlugin.js +4 -3
  299. package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -5
  300. package/lib/ids/OccurrenceModuleIdsPlugin.js +8 -7
  301. package/lib/ids/SyncModuleIdsPlugin.js +18 -13
  302. package/lib/index.js +54 -14
  303. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +116 -119
  304. package/lib/javascript/BasicEvaluatedExpression.js +26 -18
  305. package/lib/javascript/ChunkFormatHelpers.js +70 -0
  306. package/lib/javascript/ChunkHelpers.js +17 -5
  307. package/lib/javascript/CommonJsChunkFormatPlugin.js +114 -141
  308. package/lib/javascript/EnableChunkLoadingPlugin.js +7 -4
  309. package/lib/javascript/JavascriptGenerator.js +122 -100
  310. package/lib/javascript/JavascriptModulesPlugin.js +332 -152
  311. package/lib/javascript/JavascriptParser.js +1488 -1052
  312. package/lib/javascript/JavascriptParserHelpers.js +48 -47
  313. package/lib/javascript/StartupHelpers.js +23 -22
  314. package/lib/json/JsonData.js +4 -4
  315. package/lib/json/JsonGenerator.js +66 -32
  316. package/lib/json/JsonModulesPlugin.js +16 -6
  317. package/lib/json/JsonParser.js +23 -8
  318. package/lib/library/AbstractLibraryPlugin.js +45 -10
  319. package/lib/library/AmdLibraryPlugin.js +7 -5
  320. package/lib/library/AssignLibraryPlugin.js +71 -17
  321. package/lib/library/EnableLibraryPlugin.js +51 -25
  322. package/lib/library/ExportPropertyLibraryPlugin.js +12 -18
  323. package/lib/library/JsonpLibraryPlugin.js +5 -2
  324. package/lib/library/ModuleLibraryPlugin.js +230 -18
  325. package/lib/library/SystemLibraryPlugin.js +29 -11
  326. package/lib/library/UmdLibraryPlugin.js +35 -32
  327. package/lib/logging/Logger.js +18 -15
  328. package/lib/logging/createConsoleLogger.js +27 -27
  329. package/lib/logging/runtime.js +11 -11
  330. package/lib/logging/truncateArgs.js +5 -5
  331. package/lib/node/CommonJsChunkLoadingPlugin.js +72 -75
  332. package/lib/node/NodeEnvironmentPlugin.js +9 -3
  333. package/lib/node/NodeTargetPlugin.js +9 -1
  334. package/lib/node/NodeTemplatePlugin.js +2 -2
  335. package/lib/node/NodeWatchFileSystem.js +4 -4
  336. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +22 -38
  337. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +10 -11
  338. package/lib/node/ReadFileCompileWasmPlugin.js +11 -14
  339. package/lib/node/RequireChunkLoadingRuntimeModule.js +22 -30
  340. package/lib/node/nodeConsole.js +12 -7
  341. package/lib/optimize/AggressiveMergingPlugin.js +46 -47
  342. package/lib/optimize/AggressiveSplittingPlugin.js +233 -238
  343. package/lib/optimize/ConcatenatedModule.js +620 -251
  344. package/lib/optimize/EnsureChunkConditionsPlugin.js +58 -58
  345. package/lib/optimize/FlagIncludedChunksPlugin.js +93 -96
  346. package/lib/optimize/InnerGraph.js +139 -124
  347. package/lib/optimize/InnerGraphPlugin.js +29 -24
  348. package/lib/optimize/LimitChunkCountPlugin.js +32 -8
  349. package/lib/optimize/MangleExportsPlugin.js +22 -22
  350. package/lib/optimize/MergeDuplicateChunksPlugin.js +80 -81
  351. package/lib/optimize/MinChunkSizePlugin.js +12 -7
  352. package/lib/optimize/ModuleConcatenationPlugin.js +92 -71
  353. package/lib/optimize/RealContentHashPlugin.js +58 -44
  354. package/lib/optimize/RemoveEmptyChunksPlugin.js +8 -5
  355. package/lib/optimize/RemoveParentModulesPlugin.js +7 -4
  356. package/lib/optimize/RuntimeChunkPlugin.js +22 -25
  357. package/lib/optimize/SideEffectsFlagPlugin.js +44 -26
  358. package/lib/optimize/SplitChunksPlugin.js +209 -158
  359. package/lib/performance/AssetsOverSizeLimitWarning.js +1 -1
  360. package/lib/performance/EntrypointsOverSizeLimitWarning.js +2 -2
  361. package/lib/performance/SizeLimitsPlugin.js +8 -5
  362. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +5 -7
  363. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +61 -64
  364. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +3 -4
  365. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
  366. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
  367. package/lib/rules/BasicEffectRulePlugin.js +14 -5
  368. package/lib/rules/BasicMatcherRulePlugin.js +18 -7
  369. package/lib/rules/ObjectMatcherRulePlugin.js +17 -6
  370. package/lib/rules/RuleSetCompiler.js +73 -32
  371. package/lib/rules/UseEffectRulePlugin.js +61 -25
  372. package/lib/runtime/AsyncModuleRuntimeModule.js +74 -9
  373. package/lib/runtime/AutoPublicPathRuntimeModule.js +9 -4
  374. package/lib/runtime/BaseUriRuntimeModule.js +2 -2
  375. package/lib/runtime/CompatRuntimeModule.js +0 -1
  376. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -1
  377. package/lib/runtime/GetChunkFilenameRuntimeModule.js +34 -35
  378. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -1
  379. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -1
  380. package/lib/runtime/LoadScriptRuntimeModule.js +0 -2
  381. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +248 -0
  382. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  383. package/lib/runtime/RuntimeIdRuntimeModule.js +2 -1
  384. package/lib/runtime/StartupChunkDependenciesPlugin.js +39 -42
  385. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +10 -9
  386. package/lib/runtime/StartupEntrypointRuntimeModule.js +0 -1
  387. package/lib/runtime/SystemContextRuntimeModule.js +0 -2
  388. package/lib/runtime/ToBinaryRuntimeModule.js +64 -0
  389. package/lib/schemes/DataUriPlugin.js +9 -31
  390. package/lib/schemes/FileUriPlugin.js +11 -6
  391. package/lib/schemes/HttpUriPlugin.js +381 -261
  392. package/lib/schemes/VirtualUrlPlugin.js +222 -0
  393. package/lib/serialization/AggregateErrorSerializer.js +41 -0
  394. package/lib/serialization/BinaryMiddleware.js +51 -33
  395. package/lib/serialization/ErrorObjectSerializer.js +7 -2
  396. package/lib/serialization/FileMiddleware.js +101 -71
  397. package/lib/serialization/NullPrototypeObjectSerializer.js +5 -3
  398. package/lib/serialization/ObjectMiddleware.js +130 -54
  399. package/lib/serialization/PlainObjectSerializer.js +1 -1
  400. package/lib/serialization/Serializer.js +38 -20
  401. package/lib/serialization/SerializerMiddleware.js +121 -49
  402. package/lib/serialization/SingleItemMiddleware.js +9 -7
  403. package/lib/serialization/types.js +1 -1
  404. package/lib/sharing/ConsumeSharedModule.js +9 -9
  405. package/lib/sharing/ConsumeSharedPlugin.js +14 -14
  406. package/lib/sharing/ConsumeSharedRuntimeModule.js +11 -8
  407. package/lib/sharing/ProvideSharedModule.js +9 -11
  408. package/lib/sharing/ProvideSharedModuleFactory.js +5 -3
  409. package/lib/sharing/ProvideSharedPlugin.js +15 -10
  410. package/lib/sharing/SharePlugin.js +3 -4
  411. package/lib/sharing/ShareRuntimeModule.js +7 -6
  412. package/lib/sharing/resolveMatchedConfigs.js +27 -13
  413. package/lib/sharing/utils.js +37 -43
  414. package/lib/stats/DefaultStatsFactoryPlugin.js +455 -286
  415. package/lib/stats/DefaultStatsPresetPlugin.js +77 -46
  416. package/lib/stats/DefaultStatsPrinterPlugin.js +583 -419
  417. package/lib/stats/StatsFactory.js +75 -32
  418. package/lib/stats/StatsPrinter.js +71 -51
  419. package/lib/url/URLParserPlugin.js +264 -0
  420. package/lib/util/ArrayHelpers.js +6 -8
  421. package/lib/util/ArrayQueue.js +1 -1
  422. package/lib/util/AsyncQueue.js +11 -10
  423. package/lib/util/Hash.js +37 -5
  424. package/lib/util/IterableHelpers.js +4 -4
  425. package/lib/util/LazyBucketSortedSet.js +46 -27
  426. package/lib/util/LazySet.js +16 -10
  427. package/lib/util/MapHelpers.js +1 -1
  428. package/lib/util/ParallelismFactorCalculator.js +2 -2
  429. package/lib/util/Semaphore.js +3 -3
  430. package/lib/util/SetHelpers.js +6 -6
  431. package/lib/util/SortableSet.js +11 -9
  432. package/lib/util/StackedCacheMap.js +2 -2
  433. package/lib/util/StackedMap.js +3 -3
  434. package/lib/util/StringXor.js +2 -1
  435. package/lib/util/TupleQueue.js +11 -8
  436. package/lib/util/TupleSet.js +44 -19
  437. package/lib/util/URLAbsoluteSpecifier.js +3 -4
  438. package/lib/util/WeakTupleMap.js +56 -42
  439. package/lib/util/binarySearchBounds.js +4 -3
  440. package/lib/util/chainedImports.js +3 -1
  441. package/lib/util/cleverMerge.js +171 -107
  442. package/lib/util/comparators.js +265 -162
  443. package/lib/util/compileBooleanMatcher.js +120 -41
  444. package/lib/util/concatenate.js +20 -16
  445. package/lib/util/conventions.js +73 -74
  446. package/lib/util/create-schema-validation.js +8 -8
  447. package/lib/util/createHash.js +32 -135
  448. package/lib/util/dataURL.js +39 -0
  449. package/lib/util/deprecation.js +119 -116
  450. package/lib/util/deterministicGrouping.js +56 -47
  451. package/lib/util/extractSourceMap.js +319 -0
  452. package/lib/util/extractUrlAndGlobal.js +1 -1
  453. package/lib/util/findGraphRoots.js +19 -9
  454. package/lib/util/fs.js +169 -141
  455. package/lib/util/hash/BatchedHash.js +50 -10
  456. package/lib/util/hash/BulkUpdateHash.js +138 -0
  457. package/lib/util/hash/DebugHash.js +75 -0
  458. package/lib/util/hash/hash-digest.js +216 -0
  459. package/lib/util/hash/md4.js +2 -2
  460. package/lib/util/hash/wasm-hash.js +59 -17
  461. package/lib/util/identifier.js +124 -61
  462. package/lib/util/internalSerializables.js +4 -6
  463. package/lib/util/magicComment.js +9 -5
  464. package/lib/util/makeSerializable.js +2 -2
  465. package/lib/util/memoize.js +5 -2
  466. package/lib/util/objectToMap.js +3 -2
  467. package/lib/util/processAsyncTree.js +5 -5
  468. package/lib/util/propertyAccess.js +1 -1
  469. package/lib/util/propertyName.js +2 -3
  470. package/lib/util/registerExternalSerializer.js +16 -20
  471. package/lib/util/removeBOM.js +25 -0
  472. package/lib/util/runtime.js +72 -56
  473. package/lib/util/semver.js +44 -33
  474. package/lib/util/serialization.js +56 -56
  475. package/lib/util/smartGrouping.js +42 -27
  476. package/lib/util/source.js +5 -4
  477. package/lib/util/traverseDestructuringAssignmentProperties.js +45 -0
  478. package/lib/validateSchema.js +7 -9
  479. package/lib/wasm/EnableWasmLoadingPlugin.js +22 -12
  480. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +9 -5
  481. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +15 -3
  482. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +28 -22
  483. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +47 -57
  484. package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -10
  485. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +8 -4
  486. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +23 -17
  487. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +55 -57
  488. package/lib/wasm-sync/WebAssemblyGenerator.js +56 -41
  489. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +6 -3
  490. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +25 -10
  491. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +11 -12
  492. package/lib/wasm-sync/WebAssemblyParser.js +10 -17
  493. package/lib/wasm-sync/WebAssemblyUtils.js +1 -1
  494. package/lib/web/FetchCompileAsyncWasmPlugin.js +4 -4
  495. package/lib/web/FetchCompileWasmPlugin.js +6 -8
  496. package/lib/web/JsonpChunkLoadingPlugin.js +74 -74
  497. package/lib/web/JsonpChunkLoadingRuntimeModule.js +10 -26
  498. package/lib/web/JsonpTemplatePlugin.js +0 -1
  499. package/lib/webpack.js +107 -87
  500. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +79 -75
  501. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +38 -51
  502. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -0
  503. package/module.d.ts +5 -0
  504. package/package.json +149 -129
  505. package/schemas/WebpackOptions.check.d.ts +1 -1
  506. package/schemas/WebpackOptions.check.js +2 -2
  507. package/schemas/WebpackOptions.json +543 -190
  508. package/schemas/plugins/BannerPlugin.check.d.ts +1 -1
  509. package/schemas/plugins/BannerPlugin.check.js +2 -2
  510. package/schemas/plugins/BannerPlugin.json +4 -0
  511. package/schemas/plugins/DllPlugin.check.d.ts +1 -1
  512. package/schemas/plugins/DllPlugin.check.js +1 -1
  513. package/schemas/plugins/DllReferencePlugin.check.d.ts +1 -1
  514. package/schemas/plugins/DllReferencePlugin.check.js +1 -1
  515. package/schemas/plugins/IgnorePlugin.check.d.ts +1 -1
  516. package/schemas/plugins/IgnorePlugin.check.js +1 -1
  517. package/schemas/plugins/IgnorePlugin.json +1 -1
  518. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +1 -1
  519. package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -1
  520. package/schemas/plugins/{HashedModuleIdsPlugin.check.d.ts → ManifestPlugin.check.d.ts} +2 -2
  521. package/schemas/plugins/ManifestPlugin.check.js +6 -0
  522. package/schemas/plugins/ManifestPlugin.json +98 -0
  523. package/schemas/plugins/ProgressPlugin.check.d.ts +1 -1
  524. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  525. package/schemas/plugins/ProgressPlugin.json +1 -1
  526. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +1 -1
  527. package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -2
  528. package/schemas/plugins/SourceMapDevToolPlugin.json +23 -6
  529. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +1 -1
  530. package/schemas/plugins/WatchIgnorePlugin.check.js +1 -1
  531. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +1 -1
  532. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
  533. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +1 -1
  534. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
  535. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +1 -1
  536. package/schemas/plugins/asset/AssetParserOptions.check.js +1 -1
  537. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +1 -1
  538. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
  539. package/schemas/plugins/container/ContainerPlugin.check.d.ts +1 -1
  540. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  541. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +1 -1
  542. package/schemas/plugins/container/ContainerReferencePlugin.check.js +2 -2
  543. package/schemas/plugins/container/ContainerReferencePlugin.json +4 -1
  544. package/schemas/plugins/container/ExternalsType.check.d.ts +1 -1
  545. package/schemas/plugins/container/ExternalsType.check.js +2 -2
  546. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +1 -1
  547. package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -2
  548. package/schemas/plugins/container/ModuleFederationPlugin.json +4 -1
  549. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +1 -1
  550. package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -1
  551. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +1 -1
  552. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +2 -2
  553. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +1 -1
  554. package/schemas/plugins/css/CssModuleParserOptions.check.js +2 -2
  555. package/schemas/plugins/css/CssParserOptions.check.d.ts +1 -1
  556. package/schemas/plugins/css/CssParserOptions.check.js +2 -2
  557. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +1 -1
  558. package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -1
  559. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +7 -0
  560. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +6 -0
  561. package/schemas/plugins/{HashedModuleIdsPlugin.json → ids/HashedModuleIdsPlugin.json} +15 -2
  562. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +1 -1
  563. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -1
  564. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +1 -1
  565. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -1
  566. package/schemas/plugins/{css/CssGlobalParserOptions.check.d.ts → json/JsonModulesPluginGenerator.check.d.ts} +1 -1
  567. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +6 -0
  568. package/schemas/plugins/json/JsonModulesPluginGenerator.json +3 -0
  569. package/schemas/plugins/{css/CssGlobalGeneratorOptions.check.d.ts → json/JsonModulesPluginParser.check.d.ts} +1 -1
  570. package/schemas/plugins/json/JsonModulesPluginParser.check.js +6 -0
  571. package/schemas/plugins/json/JsonModulesPluginParser.json +3 -0
  572. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +1 -1
  573. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -1
  574. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +1 -1
  575. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -1
  576. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +1 -1
  577. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -1
  578. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +1 -1
  579. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -1
  580. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +1 -1
  581. package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
  582. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +7 -0
  583. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +6 -0
  584. package/schemas/plugins/schemes/VirtualUrlPlugin.json +77 -0
  585. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +1 -1
  586. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +1 -1
  587. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +1 -1
  588. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +1 -1
  589. package/schemas/plugins/sharing/SharePlugin.check.d.ts +1 -1
  590. package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
  591. package/types.d.ts +5115 -1863
  592. package/SECURITY.md +0 -9
  593. package/lib/ModuleSourceTypesConstants.js +0 -112
  594. package/lib/dependencies/CssLocalIdentifierDependency.js +0 -250
  595. package/lib/dependencies/CssSelfLocalIdentifierDependency.js +0 -111
  596. package/lib/library/ModernModuleLibraryPlugin.js +0 -144
  597. package/schemas/plugins/HashedModuleIdsPlugin.check.js +0 -6
  598. package/schemas/plugins/JsonModulesPluginParser.check.d.ts +0 -7
  599. package/schemas/plugins/JsonModulesPluginParser.check.js +0 -6
  600. package/schemas/plugins/JsonModulesPluginParser.json +0 -12
  601. package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +0 -7
  602. package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +0 -6
  603. package/schemas/plugins/css/CssAutoGeneratorOptions.json +0 -3
  604. package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +0 -7
  605. package/schemas/plugins/css/CssAutoParserOptions.check.js +0 -6
  606. package/schemas/plugins/css/CssAutoParserOptions.json +0 -3
  607. package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +0 -6
  608. package/schemas/plugins/css/CssGlobalGeneratorOptions.json +0 -3
  609. package/schemas/plugins/css/CssGlobalParserOptions.check.js +0 -6
  610. package/schemas/plugins/css/CssGlobalParserOptions.json +0 -3
package/lib/Module.js CHANGED
@@ -9,7 +9,11 @@ const util = require("util");
9
9
  const ChunkGraph = require("./ChunkGraph");
10
10
  const DependenciesBlock = require("./DependenciesBlock");
11
11
  const ModuleGraph = require("./ModuleGraph");
12
- const { JS_TYPES } = require("./ModuleSourceTypesConstants");
12
+ const {
13
+ JAVASCRIPT_TYPE,
14
+ UNKNOWN_TYPE
15
+ } = require("./ModuleSourceTypeConstants");
16
+ const { JAVASCRIPT_TYPES } = require("./ModuleSourceTypeConstants");
13
17
  const RuntimeGlobals = require("./RuntimeGlobals");
14
18
  const { first } = require("./util/SetHelpers");
15
19
  const { compareChunksById } = require("./util/comparators");
@@ -17,34 +21,50 @@ const makeSerializable = require("./util/makeSerializable");
17
21
 
18
22
  /** @typedef {import("webpack-sources").Source} Source */
19
23
  /** @typedef {import("../declarations/WebpackOptions").ResolveOptions} ResolveOptions */
20
- /** @typedef {import("../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */
24
+ /** @typedef {import("./config/defaults").WebpackOptionsNormalizedWithDefaults} WebpackOptions */
21
25
  /** @typedef {import("./Chunk")} Chunk */
22
26
  /** @typedef {import("./ChunkGraph").ModuleId} ModuleId */
23
27
  /** @typedef {import("./ChunkGroup")} ChunkGroup */
24
28
  /** @typedef {import("./CodeGenerationResults")} CodeGenerationResults */
25
29
  /** @typedef {import("./Compilation")} Compilation */
26
30
  /** @typedef {import("./Compilation").AssetInfo} AssetInfo */
31
+ /** @typedef {import("./Compilation").FileSystemDependencies} FileSystemDependencies */
32
+ /** @typedef {import("./Compilation").UnsafeCacheData} UnsafeCacheData */
27
33
  /** @typedef {import("./ConcatenationScope")} ConcatenationScope */
28
34
  /** @typedef {import("./Dependency")} Dependency */
29
35
  /** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext */
36
+ /** @typedef {import("./DependencyTemplate").CssData} CssData */
30
37
  /** @typedef {import("./DependencyTemplates")} DependencyTemplates */
31
- /** @typedef {import("./ExportsInfo").UsageStateType} UsageStateType */
38
+ /** @typedef {import("./ModuleSourceTypeConstants").AllTypes} AllTypes */
32
39
  /** @typedef {import("./FileSystemInfo")} FileSystemInfo */
33
40
  /** @typedef {import("./FileSystemInfo").Snapshot} Snapshot */
34
41
  /** @typedef {import("./ModuleGraphConnection").ConnectionState} ConnectionState */
35
42
  /** @typedef {import("./ModuleTypeConstants").ModuleTypes} ModuleTypes */
43
+ /** @typedef {import("./ModuleGraph").OptimizationBailouts} OptimizationBailouts */
36
44
  /** @typedef {import("./NormalModuleFactory")} NormalModuleFactory */
37
45
  /** @typedef {import("./RequestShortener")} RequestShortener */
38
46
  /** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */
39
47
  /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
48
+ /** @typedef {import("../declarations/WebpackOptions").CssParserExportType} CssParserExportType */
49
+
50
+ /**
51
+ * @template T
52
+ * @typedef {import("./InitFragment")<T>} InitFragment
53
+ */
40
54
  /** @typedef {import("./WebpackError")} WebpackError */
55
+ /** @typedef {import("./json/JsonData")} JsonData */
41
56
  /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
42
57
  /** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
43
58
  /** @typedef {import("./util/Hash")} Hash */
44
- /** @template T @typedef {import("./util/LazySet")<T>} LazySet<T> */
45
- /** @template T @typedef {import("./util/SortableSet")<T>} SortableSet<T> */
46
59
  /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
60
+ /** @typedef {import("./util/identifier").AssociatedObjectForCache} AssociatedObjectForCache */
47
61
  /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
62
+ /** @typedef {"namespace" | "default-only" | "default-with-named" | "dynamic"} ExportsType */
63
+
64
+ /**
65
+ * @template T
66
+ * @typedef {import("./util/LazySet")<T>} LazySet<T>
67
+ */
48
68
 
49
69
  /**
50
70
  * @typedef {object} SourceContext
@@ -56,7 +76,9 @@ const makeSerializable = require("./util/makeSerializable");
56
76
  * @property {string=} type the type of source that should be generated
57
77
  */
58
78
 
59
- /** @typedef {ReadonlySet<string>} SourceTypes */
79
+ /** @typedef {AllTypes} KnownSourceType */
80
+ /** @typedef {KnownSourceType | string} SourceType */
81
+ /** @typedef {ReadonlySet<SourceType>} SourceTypes */
60
82
 
61
83
  // TODO webpack 6: compilation will be required in CodeGenerationContext
62
84
  /**
@@ -66,6 +88,7 @@ const makeSerializable = require("./util/makeSerializable");
66
88
  * @property {ModuleGraph} moduleGraph the module graph
67
89
  * @property {ChunkGraph} chunkGraph the chunk graph
68
90
  * @property {RuntimeSpec} runtime the runtimes code should be generated for
91
+ * @property {RuntimeSpec[]} runtimes all runtimes code should be generated for
69
92
  * @property {ConcatenationScope=} concatenationScope when in concatenated module, information about other concatenated modules
70
93
  * @property {CodeGenerationResults | undefined} codeGenerationResults code generation results of other modules (need to have a codeGenerationDependency to use that)
71
94
  * @property {Compilation=} compilation the compilation
@@ -81,10 +104,16 @@ const makeSerializable = require("./util/makeSerializable");
81
104
  /** @typedef {Set<string>} RuntimeRequirements */
82
105
  /** @typedef {ReadonlySet<string>} ReadOnlyRuntimeRequirements */
83
106
 
107
+ /** @typedef {Map<"topLevelDeclarations", Set<string>> & Map<"chunkInitFragments", InitFragment<EXPECTED_ANY>[]>} KnownCodeGenerationResultDataForJavascriptModules */
108
+ /** @typedef {Map<"url", { ["css-url"]: string }>} KnownCodeGenerationResultDataForCssModules */
109
+ /** @typedef {Map<"filename", string> & Map<"assetInfo", AssetInfo> & Map<"fullContentHash", string>} KnownCodeGenerationResultDataForAssetModules */
110
+ /** @typedef {Map<"share-init", [{ shareScope: string, initStage: number, init: string }]>} KnownCodeGenerationResultForSharing */
111
+ /** @typedef {KnownCodeGenerationResultDataForJavascriptModules & KnownCodeGenerationResultDataForCssModules & KnownCodeGenerationResultDataForAssetModules & KnownCodeGenerationResultForSharing & Map<string, EXPECTED_ANY>} CodeGenerationResultData */
112
+
84
113
  /**
85
114
  * @typedef {object} CodeGenerationResult
86
- * @property {Map<string, Source>} sources the resulting sources for all source types
87
- * @property {Map<string, any>=} data the resulting data for all source types
115
+ * @property {Map<SourceType, Source>} sources the resulting sources for all source types
116
+ * @property {CodeGenerationResultData=} data the resulting data for all source types
88
117
  * @property {ReadOnlyRuntimeRequirements | null} runtimeRequirements the runtime requirements
89
118
  * @property {string=} hash a hash of the code generation result (will be automatically calculated from sources and runtimeRequirements if not provided)
90
119
  */
@@ -92,39 +121,56 @@ const makeSerializable = require("./util/makeSerializable");
92
121
  /**
93
122
  * @typedef {object} LibIdentOptions
94
123
  * @property {string} context absolute context path to which lib ident is relative to
95
- * @property {object=} associatedObjectForCache object for caching
124
+ * @property {AssociatedObjectForCache=} associatedObjectForCache object for caching
96
125
  */
97
126
 
98
127
  /**
99
128
  * @typedef {object} KnownBuildMeta
100
- * @property {string=} moduleArgument
101
- * @property {string=} exportsArgument
102
- * @property {boolean=} strict
103
- * @property {string=} moduleConcatenationBailout
104
129
  * @property {("default" | "namespace" | "flagged" | "dynamic")=} exportsType
130
+ * @property {CssParserExportType=} exportType
105
131
  * @property {(false | "redirect" | "redirect-warn")=} defaultObject
106
132
  * @property {boolean=} strictHarmonyModule
133
+ * @property {boolean=} treatAsCommonJs
107
134
  * @property {boolean=} async
108
135
  * @property {boolean=} sideEffectFree
109
- * @property {Record<string, string>=} exportsFinalName
136
+ * @property {boolean=} isCSSModule
137
+ * @property {Record<string, string>=} jsIncompatibleExports
138
+ * @property {Map<RuntimeSpec, Record<string, string>>=} exportsFinalNameByRuntime
139
+ * @property {Map<RuntimeSpec, string>=} exportsSourceByRuntime
110
140
  */
111
141
 
112
142
  /**
113
143
  * @typedef {object} KnownBuildInfo
114
144
  * @property {boolean=} cacheable
115
145
  * @property {boolean=} parsed
116
- * @property {LazySet<string>=} fileDependencies
117
- * @property {LazySet<string>=} contextDependencies
118
- * @property {LazySet<string>=} missingDependencies
119
- * @property {LazySet<string>=} buildDependencies
120
- * @property {ValueCacheVersions=} valueDependencies
121
- * @property {TODO=} hash
122
- * @property {Record<string, Source>=} assets
123
- * @property {Map<string, AssetInfo | undefined>=} assetsInfo
124
- * @property {(Snapshot | null)=} snapshot
146
+ * @property {boolean=} strict
147
+ * @property {string=} moduleArgument using in AMD
148
+ * @property {string=} exportsArgument using in AMD
149
+ * @property {string=} moduleConcatenationBailout using in CommonJs
150
+ * @property {boolean=} needCreateRequire using in APIPlugin
151
+ * @property {string=} resourceIntegrity using in HttpUriPlugin
152
+ * @property {FileSystemDependencies=} fileDependencies using in NormalModule
153
+ * @property {FileSystemDependencies=} contextDependencies using in NormalModule
154
+ * @property {FileSystemDependencies=} missingDependencies using in NormalModule
155
+ * @property {FileSystemDependencies=} buildDependencies using in NormalModule
156
+ * @property {ValueCacheVersions=} valueDependencies using in NormalModule
157
+ * @property {Record<string, Source>=} assets using in NormalModule
158
+ * @property {Map<string, AssetInfo | undefined>=} assetsInfo using in NormalModule
159
+ * @property {string=} hash using in NormalModule
160
+ * @property {(Snapshot | null)=} snapshot using in ContextModule
161
+ * @property {string=} fullContentHash for assets modules
162
+ * @property {string=} filename for assets modules
163
+ * @property {boolean=} dataUrl for assets modules
164
+ * @property {AssetInfo=} assetInfo for assets modules
165
+ * @property {boolean=} javascriptModule for external modules
166
+ * @property {boolean=} active for lazy compilation modules
167
+ * @property {CssData=} cssData for css modules
168
+ * @property {JsonData=} jsonData for json modules
169
+ * @property {Set<string>=} topLevelDeclarations top level declaration names
125
170
  */
126
171
 
127
- /** @typedef {Map<string, string | Set<string>>} ValueCacheVersions */
172
+ /** @typedef {string | Set<string>} ValueCacheVersion */
173
+ /** @typedef {Map<string, ValueCacheVersion>} ValueCacheVersions */
128
174
 
129
175
  /**
130
176
  * @typedef {object} NeedBuildContext
@@ -133,21 +179,24 @@ const makeSerializable = require("./util/makeSerializable");
133
179
  * @property {ValueCacheVersions} valueCacheVersions
134
180
  */
135
181
 
136
- /** @typedef {KnownBuildMeta & Record<string, any>} BuildMeta */
137
- /** @typedef {KnownBuildInfo & Record<string, any>} BuildInfo */
182
+ /** @typedef {(err?: WebpackError | null, needBuild?: boolean) => void} NeedBuildCallback */
183
+
184
+ /** @typedef {(err?: WebpackError) => void} BuildCallback */
185
+
186
+ /** @typedef {KnownBuildMeta & Record<string, EXPECTED_ANY>} BuildMeta */
187
+ /** @typedef {KnownBuildInfo & Record<string, EXPECTED_ANY>} BuildInfo */
138
188
 
139
189
  /**
140
190
  * @typedef {object} FactoryMeta
141
191
  * @property {boolean=} sideEffectFree
142
192
  */
143
193
 
144
- /** @typedef {{ factoryMeta: FactoryMeta | undefined, resolveOptions: ResolveOptions | undefined }} UnsafeCacheData */
145
-
146
194
  const EMPTY_RESOLVE_OPTIONS = {};
147
195
 
148
196
  let debugId = 1000;
149
197
 
150
- const DEFAULT_TYPES_UNKNOWN = new Set(["unknown"]);
198
+ /** @type {SourceTypes} */
199
+ const DEFAULT_TYPES_UNKNOWN = new Set([UNKNOWN_TYPE]);
151
200
 
152
201
  const deprecatedNeedRebuild = util.deprecate(
153
202
  /**
@@ -164,6 +213,9 @@ const deprecatedNeedRebuild = util.deprecate(
164
213
  "DEP_WEBPACK_MODULE_NEED_REBUILD"
165
214
  );
166
215
 
216
+ /** @typedef {string} LibIdent */
217
+ /** @typedef {string} NameForCondition */
218
+
167
219
  /** @typedef {(requestShortener: RequestShortener) => string} OptimizationBailoutFunction */
168
220
 
169
221
  class Module extends DependenciesBlock {
@@ -201,6 +253,7 @@ class Module extends DependenciesBlock {
201
253
  this.useSimpleSourceMap = false;
202
254
 
203
255
  // Is in hot context, i.e. HotModuleReplacementPlugin.js enabled
256
+ // TODO do we need hot here?
204
257
  /** @type {boolean} */
205
258
  this.hot = false;
206
259
  // Info from Build
@@ -382,7 +435,7 @@ class Module extends DependenciesBlock {
382
435
 
383
436
  /**
384
437
  * @deprecated
385
- * @returns {(string | OptimizationBailoutFunction)[]} list
438
+ * @returns {OptimizationBailouts} list
386
439
  */
387
440
  get optimizationBailout() {
388
441
  return ModuleGraph.getModuleGraphForModule(
@@ -505,7 +558,7 @@ class Module extends DependenciesBlock {
505
558
  /**
506
559
  * @param {ModuleGraph} moduleGraph the module graph
507
560
  * @param {boolean | undefined} strict the importing module is strict
508
- * @returns {"namespace" | "default-only" | "default-with-named" | "dynamic"} export type
561
+ * @returns {ExportsType} export type
509
562
  * "namespace": Exports is already a namespace object. namespace = exports.
510
563
  * "dynamic": Check at runtime if __esModule is set. When set: namespace = { ...exports, default: exports }. When not set: namespace = { default: exports }.
511
564
  * "default-only": Provide a namespace object with only default export. namespace = { default: exports }
@@ -721,8 +774,9 @@ class Module extends DependenciesBlock {
721
774
  // 1. If module is in one of the chunks of the group we can continue checking the next items
722
775
  // because it's accessible.
723
776
  for (const chunk of cg.chunks) {
724
- if (chunk !== ignoreChunk && chunkGraph.isModuleInChunk(this, chunk))
777
+ if (chunk !== ignoreChunk && chunkGraph.isModuleInChunk(this, chunk)) {
725
778
  continue queueFor;
779
+ }
726
780
  }
727
781
  // 2. If the chunk group is initial, we can break here because it's not accessible.
728
782
  if (chunkGroup.isInitial()) return false;
@@ -745,13 +799,14 @@ class Module extends DependenciesBlock {
745
799
  fromModule,
746
800
  connections
747
801
  ] of moduleGraph.getIncomingConnectionsByOriginModule(this)) {
748
- if (!connections.some(c => c.isTargetActive(chunk.runtime))) continue;
802
+ if (!connections.some((c) => c.isTargetActive(chunk.runtime))) continue;
749
803
  for (const originChunk of chunkGraph.getModuleChunksIterable(
750
804
  /** @type {Module} */ (fromModule)
751
805
  )) {
752
806
  // return true if module this is not reachable from originChunk when ignoring chunk
753
- if (!this.isAccessibleInChunk(chunkGraph, originChunk, chunk))
807
+ if (!this.isAccessibleInChunk(chunkGraph, originChunk, chunk)) {
754
808
  return true;
809
+ }
755
810
  }
756
811
  }
757
812
  return false;
@@ -778,7 +833,7 @@ class Module extends DependenciesBlock {
778
833
 
779
834
  /**
780
835
  * @param {NeedBuildContext} context context info
781
- * @param {function((WebpackError | null)=, boolean=): void} callback callback function, returns true, if the module needs a rebuild
836
+ * @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
782
837
  * @returns {void}
783
838
  */
784
839
  needBuild(context, callback) {
@@ -792,8 +847,8 @@ class Module extends DependenciesBlock {
792
847
 
793
848
  /**
794
849
  * @deprecated Use needBuild instead
795
- * @param {Map<string, number|null>} fileTimestamps timestamps of files
796
- * @param {Map<string, number|null>} contextTimestamps timestamps of directories
850
+ * @param {Map<string, number | null>} fileTimestamps timestamps of files
851
+ * @param {Map<string, number | null>} contextTimestamps timestamps of directories
797
852
  * @returns {boolean} true, if the module needs a rebuild
798
853
  */
799
854
  needRebuild(fileTimestamps, contextTimestamps) {
@@ -840,6 +895,7 @@ class Module extends DependenciesBlock {
840
895
  */
841
896
  identifier() {
842
897
  const AbstractMethodError = require("./AbstractMethodError");
898
+
843
899
  throw new AbstractMethodError();
844
900
  }
845
901
 
@@ -851,6 +907,7 @@ class Module extends DependenciesBlock {
851
907
  */
852
908
  readableIdentifier(requestShortener) {
853
909
  const AbstractMethodError = require("./AbstractMethodError");
910
+
854
911
  throw new AbstractMethodError();
855
912
  }
856
913
 
@@ -861,11 +918,12 @@ class Module extends DependenciesBlock {
861
918
  * @param {Compilation} compilation the compilation
862
919
  * @param {ResolverWithOptions} resolver the resolver
863
920
  * @param {InputFileSystem} fs the file system
864
- * @param {function(WebpackError=): void} callback callback function
921
+ * @param {BuildCallback} callback callback function
865
922
  * @returns {void}
866
923
  */
867
924
  build(options, compilation, resolver, fs, callback) {
868
925
  const AbstractMethodError = require("./AbstractMethodError");
926
+
869
927
  throw new AbstractMethodError();
870
928
  }
871
929
 
@@ -878,7 +936,7 @@ class Module extends DependenciesBlock {
878
936
  if (this.source === Module.prototype.source) {
879
937
  return DEFAULT_TYPES_UNKNOWN;
880
938
  }
881
- return JS_TYPES;
939
+ return JAVASCRIPT_TYPES;
882
940
  }
883
941
 
884
942
  /**
@@ -886,12 +944,13 @@ class Module extends DependenciesBlock {
886
944
  * @deprecated Use codeGeneration() instead
887
945
  * @param {DependencyTemplates} dependencyTemplates the dependency templates
888
946
  * @param {RuntimeTemplate} runtimeTemplate the runtime template
889
- * @param {string=} type the type of source that should be generated
947
+ * @param {SourceType=} type the type of source that should be generated
890
948
  * @returns {Source} generated source
891
949
  */
892
- source(dependencyTemplates, runtimeTemplate, type = "javascript") {
950
+ source(dependencyTemplates, runtimeTemplate, type = JAVASCRIPT_TYPE) {
893
951
  if (this.codeGeneration === Module.prototype.codeGeneration) {
894
952
  const AbstractMethodError = require("./AbstractMethodError");
953
+
895
954
  throw new AbstractMethodError();
896
955
  }
897
956
  const chunkGraph = ChunkGraph.getChunkGraphForModule(
@@ -906,6 +965,7 @@ class Module extends DependenciesBlock {
906
965
  moduleGraph: chunkGraph.moduleGraph,
907
966
  chunkGraph,
908
967
  runtime: undefined,
968
+ runtimes: [],
909
969
  codeGenerationResults: undefined
910
970
  };
911
971
  const sources = this.codeGeneration(codeGenContext).sources;
@@ -913,7 +973,7 @@ class Module extends DependenciesBlock {
913
973
  return /** @type {Source} */ (
914
974
  type
915
975
  ? sources.get(type)
916
- : sources.get(/** @type {string} */ (first(this.getSourceTypes())))
976
+ : sources.get(/** @type {SourceType} */ (first(this.getSourceTypes())))
917
977
  );
918
978
  }
919
979
 
@@ -925,19 +985,20 @@ class Module extends DependenciesBlock {
925
985
  */
926
986
  size(type) {
927
987
  const AbstractMethodError = require("./AbstractMethodError");
988
+
928
989
  throw new AbstractMethodError();
929
990
  }
930
991
 
931
992
  /**
932
993
  * @param {LibIdentOptions} options options
933
- * @returns {string | null} an identifier for library inclusion
994
+ * @returns {LibIdent | null} an identifier for library inclusion
934
995
  */
935
996
  libIdent(options) {
936
997
  return null;
937
998
  }
938
999
 
939
1000
  /**
940
- * @returns {string | null} absolute path which should be used for condition matching (usually the resource path)
1001
+ * @returns {NameForCondition | null} absolute path which should be used for condition matching (usually the resource path)
941
1002
  */
942
1003
  nameForCondition() {
943
1004
  return null;
@@ -967,7 +1028,7 @@ class Module extends DependenciesBlock {
967
1028
  // Best override this method
968
1029
  const sources = new Map();
969
1030
  for (const type of this.getSourceTypes()) {
970
- if (type !== "unknown") {
1031
+ if (type !== UNKNOWN_TYPE) {
971
1032
  sources.set(
972
1033
  type,
973
1034
  this.source(
@@ -1030,7 +1091,7 @@ class Module extends DependenciesBlock {
1030
1091
 
1031
1092
  /**
1032
1093
  * restore unsafe cache data
1033
- * @param {object} unsafeCacheData data from getUnsafeCacheData
1094
+ * @param {UnsafeCacheData} unsafeCacheData data from getUnsafeCacheData
1034
1095
  * @param {NormalModuleFactory} normalModuleFactory the normal module factory handling the unsafe caching
1035
1096
  */
1036
1097
  _restoreFromUnsafeCache(unsafeCacheData, normalModuleFactory) {
@@ -1054,10 +1115,10 @@ class Module extends DependenciesBlock {
1054
1115
  }
1055
1116
 
1056
1117
  /**
1057
- * @param {LazySet<string>} fileDependencies set where file dependencies are added to
1058
- * @param {LazySet<string>} contextDependencies set where context dependencies are added to
1059
- * @param {LazySet<string>} missingDependencies set where missing dependencies are added to
1060
- * @param {LazySet<string>} buildDependencies set where build dependencies are added to
1118
+ * @param {FileSystemDependencies} fileDependencies set where file dependencies are added to
1119
+ * @param {FileSystemDependencies} contextDependencies set where context dependencies are added to
1120
+ * @param {FileSystemDependencies} missingDependencies set where missing dependencies are added to
1121
+ * @param {FileSystemDependencies} buildDependencies set where build dependencies are added to
1061
1122
  */
1062
1123
  addCacheDependencies(
1063
1124
  fileDependencies,
@@ -1122,9 +1183,11 @@ class Module extends DependenciesBlock {
1122
1183
  makeSerializable(Module, "webpack/lib/Module");
1123
1184
 
1124
1185
  // TODO remove in webpack 6
1125
- // eslint-disable-next-line no-warning-comments
1126
- // @ts-ignore https://github.com/microsoft/TypeScript/issues/42919
1127
1186
  Object.defineProperty(Module.prototype, "hasEqualsChunks", {
1187
+ /**
1188
+ * @deprecated
1189
+ * @returns {EXPECTED_ANY} throw an error
1190
+ */
1128
1191
  get() {
1129
1192
  throw new Error(
1130
1193
  "Module.hasEqualsChunks was renamed (use hasEqualChunks instead)"
@@ -1133,9 +1196,11 @@ Object.defineProperty(Module.prototype, "hasEqualsChunks", {
1133
1196
  });
1134
1197
 
1135
1198
  // TODO remove in webpack 6
1136
- // eslint-disable-next-line no-warning-comments
1137
- // @ts-ignore https://github.com/microsoft/TypeScript/issues/42919
1138
1199
  Object.defineProperty(Module.prototype, "isUsed", {
1200
+ /**
1201
+ * @deprecated
1202
+ * @returns {EXPECTED_ANY} throw an error
1203
+ */
1139
1204
  get() {
1140
1205
  throw new Error(
1141
1206
  "Module.isUsed was renamed (use getUsedName, isExportUsed or isModuleUsed instead)"
@@ -1145,12 +1210,16 @@ Object.defineProperty(Module.prototype, "isUsed", {
1145
1210
 
1146
1211
  // TODO remove in webpack 6
1147
1212
  Object.defineProperty(Module.prototype, "errors", {
1213
+ /**
1214
+ * @deprecated
1215
+ * @returns {WebpackError[]} errors
1216
+ */
1148
1217
  get: util.deprecate(
1149
1218
  /**
1150
1219
  * @this {Module}
1151
- * @returns {WebpackError[]} array
1220
+ * @returns {WebpackError[]} errors
1152
1221
  */
1153
- function () {
1222
+ function errors() {
1154
1223
  if (this._errors === undefined) {
1155
1224
  this._errors = [];
1156
1225
  }
@@ -1163,12 +1232,16 @@ Object.defineProperty(Module.prototype, "errors", {
1163
1232
 
1164
1233
  // TODO remove in webpack 6
1165
1234
  Object.defineProperty(Module.prototype, "warnings", {
1235
+ /**
1236
+ * @deprecated
1237
+ * @returns {WebpackError[]} warnings
1238
+ */
1166
1239
  get: util.deprecate(
1167
1240
  /**
1168
1241
  * @this {Module}
1169
- * @returns {WebpackError[]} array
1242
+ * @returns {WebpackError[]} warnings
1170
1243
  */
1171
- function () {
1244
+ function warnings() {
1172
1245
  if (this._warnings === undefined) {
1173
1246
  this._warnings = [];
1174
1247
  }
@@ -1180,14 +1253,19 @@ Object.defineProperty(Module.prototype, "warnings", {
1180
1253
  });
1181
1254
 
1182
1255
  // TODO remove in webpack 6
1183
- // eslint-disable-next-line no-warning-comments
1184
- // @ts-ignore https://github.com/microsoft/TypeScript/issues/42919
1185
1256
  Object.defineProperty(Module.prototype, "used", {
1257
+ /**
1258
+ * @deprecated
1259
+ * @returns {EXPECTED_ANY} throw an error
1260
+ */
1186
1261
  get() {
1187
1262
  throw new Error(
1188
1263
  "Module.used was refactored (use ModuleGraph.getUsedExports instead)"
1189
1264
  );
1190
1265
  },
1266
+ /**
1267
+ * @param {EXPECTED_ANY} value value
1268
+ */
1191
1269
  set(value) {
1192
1270
  throw new Error(
1193
1271
  "Module.used was refactored (use ModuleGraph.setUsedExports instead)"
@@ -12,10 +12,12 @@ const makeSerializable = require("./util/makeSerializable");
12
12
  /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
13
13
  /** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
14
14
 
15
+ /** @typedef {Error & { hideStack?: boolean }} ErrorWithHideStack */
16
+
15
17
  class ModuleBuildError extends WebpackError {
16
18
  /**
17
- * @param {string | Error&any} err error thrown
18
- * @param {{from?: string|null}} info additional info
19
+ * @param {string | ErrorWithHideStack} err error thrown
20
+ * @param {{from?: string | null}} info additional info
19
21
  */
20
22
  constructor(err, { from = null } = {}) {
21
23
  let message = "Module build failed";
@@ -9,12 +9,13 @@ const WebpackError = require("./WebpackError");
9
9
 
10
10
  /** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
11
11
  /** @typedef {import("./Module")} Module */
12
+ /** @typedef {import("./ModuleBuildError").ErrorWithHideStack} ErrorWithHideStack */
12
13
 
13
14
  class ModuleDependencyError extends WebpackError {
14
15
  /**
15
16
  * Creates an instance of ModuleDependencyError.
16
17
  * @param {Module} module module tied to dependency
17
- * @param {Error} err error thrown
18
+ * @param {ErrorWithHideStack} err error thrown
18
19
  * @param {DependencyLocation} loc location of dependency
19
20
  */
20
21
  constructor(module, err, loc) {
@@ -22,7 +23,7 @@ class ModuleDependencyError extends WebpackError {
22
23
 
23
24
  this.name = "ModuleDependencyError";
24
25
  this.details =
25
- err && !(/** @type {any} */ (err).hideStack)
26
+ err && !err.hideStack
26
27
  ? /** @type {string} */ (err.stack).split("\n").slice(1).join("\n")
27
28
  : undefined;
28
29
  this.module = module;
@@ -30,7 +31,7 @@ class ModuleDependencyError extends WebpackError {
30
31
  /** error is not (de)serialized, so it might be undefined after deserialization */
31
32
  this.error = err;
32
33
 
33
- if (err && /** @type {any} */ (err).hideStack && err.stack) {
34
+ if (err && err.hideStack && err.stack) {
34
35
  this.stack = /** @type {string} */ `${err.stack
35
36
  .split("\n")
36
37
  .slice(1)
@@ -10,11 +10,12 @@ const makeSerializable = require("./util/makeSerializable");
10
10
 
11
11
  /** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
12
12
  /** @typedef {import("./Module")} Module */
13
+ /** @typedef {import("./ModuleDependencyError").ErrorWithHideStack} ErrorWithHideStack */
13
14
 
14
15
  class ModuleDependencyWarning extends WebpackError {
15
16
  /**
16
17
  * @param {Module} module module tied to dependency
17
- * @param {Error} err error thrown
18
+ * @param {ErrorWithHideStack} err error thrown
18
19
  * @param {DependencyLocation} loc location of dependency
19
20
  */
20
21
  constructor(module, err, loc) {
@@ -22,7 +23,7 @@ class ModuleDependencyWarning extends WebpackError {
22
23
 
23
24
  this.name = "ModuleDependencyWarning";
24
25
  this.details =
25
- err && !(/** @type {any} */ (err).hideStack)
26
+ err && !err.hideStack
26
27
  ? /** @type {string} */ (err.stack).split("\n").slice(1).join("\n")
27
28
  : undefined;
28
29
  this.module = module;
@@ -30,7 +31,7 @@ class ModuleDependencyWarning extends WebpackError {
30
31
  /** error is not (de)serialized, so it might be undefined after deserialization */
31
32
  this.error = err;
32
33
 
33
- if (err && /** @type {any} */ (err).hideStack && err.stack) {
34
+ if (err && err.hideStack && err.stack) {
34
35
  this.stack = /** @type {string} */ `${err.stack
35
36
  .split("\n")
36
37
  .slice(1)
@@ -15,7 +15,7 @@ const makeSerializable = require("./util/makeSerializable");
15
15
  class ModuleError extends WebpackError {
16
16
  /**
17
17
  * @param {Error} err error thrown
18
- * @param {{from?: string|null}} info additional info
18
+ * @param {{from?: string | null}} info additional info
19
19
  */
20
20
  constructor(err, { from = null } = {}) {
21
21
  let message = "Module Error";
@@ -18,11 +18,13 @@
18
18
  * @property {boolean=} cacheable allow to use the unsafe cache
19
19
  */
20
20
 
21
+ /** @typedef {string | null} IssuerLayer */
22
+
21
23
  /**
22
24
  * @typedef {object} ModuleFactoryCreateDataContextInfo
23
25
  * @property {string} issuer
24
- * @property {string | null=} issuerLayer
25
- * @property {string} compiler
26
+ * @property {IssuerLayer} issuerLayer
27
+ * @property {string=} compiler
26
28
  */
27
29
 
28
30
  /**
@@ -33,16 +35,21 @@
33
35
  * @property {Dependency[]} dependencies
34
36
  */
35
37
 
38
+ /**
39
+ * @typedef {(err?: Error | null, result?: ModuleFactoryResult) => void} ModuleFactoryCallback
40
+ */
41
+
36
42
  class ModuleFactory {
37
43
  /* istanbul ignore next */
38
44
  /**
39
45
  * @abstract
40
46
  * @param {ModuleFactoryCreateData} data data object
41
- * @param {function((Error | null)=, ModuleFactoryResult=): void} callback callback
47
+ * @param {ModuleFactoryCallback} callback callback
42
48
  * @returns {void}
43
49
  */
44
50
  create(data, callback) {
45
51
  const AbstractMethodError = require("./AbstractMethodError");
52
+
46
53
  throw new AbstractMethodError();
47
54
  }
48
55
  }