@depup/webpack 5.109.2-depup.0 → 5.110.1-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 (640) hide show
  1. package/README.md +5 -5
  2. package/changes.json +7 -7
  3. package/lib/APIPlugin.js +123 -17
  4. package/lib/AsyncDependenciesBlock.js +10 -7
  5. package/lib/AutomaticPrefetchPlugin.js +1 -1
  6. package/lib/BannerPlugin.js +10 -6
  7. package/lib/CacheFacade.js +6 -6
  8. package/lib/Chunk.js +14 -11
  9. package/lib/ChunkGraph.js +26 -17
  10. package/lib/ChunkGroup.js +7 -7
  11. package/lib/ChunkTemplate.js +35 -44
  12. package/lib/CircularModulesPlugin.js +205 -28
  13. package/lib/CleanPlugin.js +4 -7
  14. package/lib/CodeGenerationResults.js +11 -8
  15. package/lib/CompatibilityPlugin.js +7 -7
  16. package/lib/Compilation.js +688 -409
  17. package/lib/Compiler.js +53 -38
  18. package/lib/ConcatenationScope.js +117 -8
  19. package/lib/ConditionalInitFragment.js +3 -3
  20. package/lib/ConstPlugin.js +13 -11
  21. package/lib/ContextExclusionPlugin.js +1 -1
  22. package/lib/ContextModule.js +146 -54
  23. package/lib/ContextModuleFactory.js +46 -14
  24. package/lib/ContextReplacementPlugin.js +12 -14
  25. package/lib/DefinePlugin.js +121 -37
  26. package/lib/DependenciesBlock.js +9 -6
  27. package/lib/Dependency.js +36 -16
  28. package/lib/DependencyTemplate.js +11 -12
  29. package/lib/DependencyTemplates.js +3 -3
  30. package/lib/DotenvPlugin.js +50 -13
  31. package/lib/DynamicEntryPlugin.js +8 -4
  32. package/lib/EntryOptionPlugin.js +8 -4
  33. package/lib/EntryPlugin.js +2 -2
  34. package/lib/Entrypoint.js +6 -2
  35. package/lib/EnvironmentPlugin.js +2 -2
  36. package/lib/EvalDevToolModulePlugin.js +8 -4
  37. package/lib/EvalSourceMapDevToolPlugin.js +15 -8
  38. package/lib/ExportsInfo.js +101 -14
  39. package/lib/ExportsInfoApiPlugin.js +2 -4
  40. package/lib/ExternalModule.js +232 -77
  41. package/lib/ExternalModuleFactoryPlugin.js +97 -38
  42. package/lib/ExternalsPlugin.js +10 -6
  43. package/lib/FileSystemInfo.js +44 -70
  44. package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
  45. package/lib/FlagDependencyExportsPlugin.js +76 -19
  46. package/lib/FlagDependencyUsagePlugin.js +32 -47
  47. package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
  48. package/lib/Generator.js +36 -15
  49. package/lib/HotModuleReplacementPlugin.js +16 -44
  50. package/lib/IgnorePlugin.js +8 -4
  51. package/lib/IgnoreWarningsPlugin.js +2 -2
  52. package/lib/InitFragment.js +8 -4
  53. package/lib/JavascriptMetaInfoPlugin.js +35 -4
  54. package/lib/LazyBarrel.js +3 -4
  55. package/lib/LibraryTemplatePlugin.js +10 -6
  56. package/lib/LoaderOptionsPlugin.js +7 -3
  57. package/lib/LoaderTargetPlugin.js +1 -1
  58. package/lib/MainTemplate.js +49 -42
  59. package/lib/ManifestPlugin.js +12 -11
  60. package/lib/Module.js +62 -33
  61. package/lib/ModuleFactory.js +3 -3
  62. package/lib/ModuleFilenameHelpers.js +9 -4
  63. package/lib/ModuleGraph.js +195 -21
  64. package/lib/ModuleGraphConnection.js +6 -13
  65. package/lib/ModuleInfoHeaderPlugin.js +8 -10
  66. package/lib/ModuleTemplate.js +62 -63
  67. package/lib/MultiCompiler.js +130 -64
  68. package/lib/MultiStats.js +40 -9
  69. package/lib/MultiWatching.js +3 -3
  70. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  71. package/lib/NodeStuffPlugin.js +29 -19
  72. package/lib/NormalModule.js +141 -85
  73. package/lib/NormalModuleFactory.js +555 -110
  74. package/lib/NormalModuleReplacementPlugin.js +5 -8
  75. package/lib/NullFactory.js +6 -2
  76. package/lib/OptionsApply.js +7 -3
  77. package/lib/Parser.js +7 -3
  78. package/lib/PlatformPlugin.js +2 -2
  79. package/lib/PrefetchPlugin.js +1 -1
  80. package/lib/ProgressPlugin.js +16 -13
  81. package/lib/ProvidePlugin.js +3 -5
  82. package/lib/RawModule.js +25 -17
  83. package/lib/RecordIdsPlugin.js +3 -3
  84. package/lib/RequestShortener.js +1 -1
  85. package/lib/ResolverFactory.js +2 -2
  86. package/lib/RuntimeGlobals.js +22 -10
  87. package/lib/RuntimeModule.js +29 -19
  88. package/lib/RuntimePlugin.js +332 -169
  89. package/lib/RuntimeTemplate.js +2792 -352
  90. package/lib/SelfModuleFactory.js +7 -3
  91. package/lib/SourceMapDevToolModuleOptionsPlugin.js +6 -2
  92. package/lib/SourceMapDevToolPlugin.js +30 -20
  93. package/lib/Stats.js +3 -4
  94. package/lib/Template.js +32 -22
  95. package/lib/TemplatedPathPlugin.js +96 -14
  96. package/lib/UseStrictPlugin.js +4 -6
  97. package/lib/WarnCaseSensitiveModulesPlugin.js +4 -4
  98. package/lib/WarnDeprecatedOptionPlugin.js +1 -1
  99. package/lib/WarnNoModeSetPlugin.js +1 -1
  100. package/lib/WatchIgnorePlugin.js +8 -6
  101. package/lib/Watching.js +8 -8
  102. package/lib/WebpackIsIncludedPlugin.js +2 -4
  103. package/lib/WebpackOptionsApply.js +308 -18
  104. package/lib/WebpackOptionsDefaulter.js +6 -2
  105. package/lib/asset/AssetBytesGenerator.js +12 -10
  106. package/lib/asset/AssetBytesParser.js +2 -4
  107. package/lib/asset/AssetGenerator.js +188 -95
  108. package/lib/asset/AssetModule.js +7 -3
  109. package/lib/asset/AssetModulesPlugin.js +110 -38
  110. package/lib/asset/AssetParser.js +9 -7
  111. package/lib/asset/AssetSourceGenerator.js +60 -13
  112. package/lib/asset/AssetSourceParser.js +2 -4
  113. package/lib/asset/RawDataUrlModule.js +24 -16
  114. package/lib/asset/WebManifestGenerator.js +8 -10
  115. package/lib/asset/WebManifestParser.js +24 -10
  116. package/lib/async-modules/AsyncModuleHelpers.js +2 -2
  117. package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
  118. package/lib/async-modules/InferAsyncModulesPlugin.js +2 -2
  119. package/lib/async-modules/isGeneratorLowered.js +4 -4
  120. package/lib/buildChunkGraph.js +36 -27
  121. package/lib/bun/BunTargetPlugin.js +1 -1
  122. package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
  123. package/lib/cache/AddManagedPathsPlugin.js +1 -1
  124. package/lib/cache/IdleFileCachePlugin.js +2 -2
  125. package/lib/cache/MemoryCachePlugin.js +18 -10
  126. package/lib/cache/MemoryWithGcCachePlugin.js +34 -22
  127. package/lib/cache/PackFileCacheStrategy.js +30 -23
  128. package/lib/cache/ResolverCachePlugin.js +38 -18
  129. package/lib/cache/getLazyHashedEtag.js +1 -2
  130. package/lib/cache/mergeEtags.js +1 -1
  131. package/lib/cli.js +1 -3
  132. package/lib/config/browserslistTargetHandler.js +41 -5
  133. package/lib/config/defaults.js +261 -79
  134. package/lib/config/defineConfig.js +10 -2
  135. package/lib/config/getClaimedAssetTypes.js +65 -0
  136. package/lib/config/normalization.js +36 -16
  137. package/lib/config/target.js +46 -3
  138. package/lib/container/ContainerEntryDependency.js +1 -1
  139. package/lib/container/ContainerEntryModule.js +24 -15
  140. package/lib/container/ContainerEntryModuleFactory.js +7 -3
  141. package/lib/container/ContainerPlugin.js +9 -10
  142. package/lib/container/ContainerReferencePlugin.js +6 -2
  143. package/lib/container/FallbackDependency.js +1 -1
  144. package/lib/container/FallbackModule.js +24 -17
  145. package/lib/container/FallbackModuleFactory.js +7 -3
  146. package/lib/container/HoistContainerReferencesPlugin.js +6 -11
  147. package/lib/container/ModuleFederationPlugin.js +7 -24
  148. package/lib/container/RemoteModule.js +27 -19
  149. package/lib/container/RemoteRuntimeModule.js +10 -8
  150. package/lib/container/moduleFederationHooks.js +32 -0
  151. package/lib/css/CssGenerator.js +171 -43
  152. package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
  153. package/lib/css/CssLoadingRuntimeModule.js +57 -24
  154. package/lib/css/CssModule.js +10 -7
  155. package/lib/css/CssModulesPlugin.js +168 -88
  156. package/lib/css/CssParser.js +1113 -568
  157. package/lib/css/CssServerStylesRuntimeModule.js +54 -0
  158. package/lib/css/cssMinify.js +168 -0
  159. package/lib/css/data.js +5324 -0
  160. package/lib/css/syntax.js +9579 -232
  161. package/lib/debug/ProfilingPlugin.js +14 -9
  162. package/lib/deno/DenoTargetPlugin.js +1 -1
  163. package/lib/dependencies/AMDDefineDependency.js +112 -87
  164. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +30 -17
  165. package/lib/dependencies/AMDPlugin.js +9 -7
  166. package/lib/dependencies/AMDRequireArrayDependency.js +5 -5
  167. package/lib/dependencies/AMDRequireContextDependency.js +2 -2
  168. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -1
  169. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +25 -14
  170. package/lib/dependencies/AMDRequireDependency.js +8 -7
  171. package/lib/dependencies/AMDRequireItemDependency.js +1 -1
  172. package/lib/dependencies/AMDRuntimeModules.js +21 -1
  173. package/lib/dependencies/BuildTimeConstDependency.js +102 -0
  174. package/lib/dependencies/CachedConstDependency.js +11 -8
  175. package/lib/dependencies/CommonJsDependencyHelpers.js +67 -46
  176. package/lib/dependencies/CommonJsExportRequireDependency.js +121 -45
  177. package/lib/dependencies/CommonJsExportsDependency.js +53 -49
  178. package/lib/dependencies/CommonJsExportsParserPlugin.js +207 -25
  179. package/lib/dependencies/CommonJsFullRequireDependency.js +119 -34
  180. package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -50
  181. package/lib/dependencies/CommonJsObjectExportDependency.js +188 -0
  182. package/lib/dependencies/CommonJsPlugin.js +35 -6
  183. package/lib/dependencies/CommonJsRequireContextDependency.js +5 -6
  184. package/lib/dependencies/CommonJsRequireDependency.js +156 -27
  185. package/lib/dependencies/CommonJsSelfReferenceDependency.js +63 -38
  186. package/lib/dependencies/ConstDependency.js +8 -9
  187. package/lib/dependencies/ContextDependency.js +12 -8
  188. package/lib/dependencies/ContextDependencyHelpers.js +14 -9
  189. package/lib/dependencies/ContextDependencyTemplateAsId.js +4 -4
  190. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -4
  191. package/lib/dependencies/ContextElementDependency.js +31 -12
  192. package/lib/dependencies/CreateRequireParserPlugin.js +12 -7
  193. package/lib/dependencies/CreateScriptUrlDependency.js +4 -4
  194. package/lib/dependencies/CssIcssExportDependency.js +56 -28
  195. package/lib/dependencies/CssIcssImportDependency.js +17 -13
  196. package/lib/dependencies/CssIcssSymbolDependency.js +9 -10
  197. package/lib/dependencies/CssImportDependency.js +18 -9
  198. package/lib/dependencies/CssUrlDependency.js +17 -13
  199. package/lib/dependencies/DllEntryDependency.js +1 -1
  200. package/lib/dependencies/DynamicExports.js +2 -2
  201. package/lib/dependencies/ExportBindingInitFragment.js +36 -9
  202. package/lib/dependencies/ExportsInfoDependency.js +7 -8
  203. package/lib/dependencies/ExternalModuleDependency.js +9 -5
  204. package/lib/dependencies/ExternalModuleInitFragment.js +2 -2
  205. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +8 -5
  206. package/lib/dependencies/HarmonyAcceptDependency.js +5 -5
  207. package/lib/dependencies/HarmonyCompatibilityDependency.js +52 -17
  208. package/lib/dependencies/HarmonyDetectionParserPlugin.js +11 -7
  209. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +13 -10
  210. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +78 -12
  211. package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
  212. package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
  213. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -63
  214. package/lib/dependencies/HarmonyExportInitFragment.js +18 -6
  215. package/lib/dependencies/HarmonyExportSpecifierDependency.js +51 -14
  216. package/lib/dependencies/HarmonyExports.js +7 -4
  217. package/lib/dependencies/HarmonyImportDependency.js +27 -19
  218. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -24
  219. package/lib/dependencies/HarmonyImportGuard.js +20 -30
  220. package/lib/dependencies/HarmonyImportSideEffectDependency.js +38 -9
  221. package/lib/dependencies/HarmonyImportSpecifierDependency.js +97 -49
  222. package/lib/dependencies/HarmonyModulesPlugin.js +7 -3
  223. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -3
  224. package/lib/dependencies/HtmlEntryDependency.js +37 -29
  225. package/lib/dependencies/HtmlInlineHtmlDependency.js +7 -8
  226. package/lib/dependencies/HtmlInlineScriptDependency.js +11 -8
  227. package/lib/dependencies/HtmlInlineStyleDependency.js +7 -10
  228. package/lib/dependencies/HtmlSourceDependency.js +22 -14
  229. package/lib/dependencies/ImportContextDependency.js +2 -2
  230. package/lib/dependencies/ImportDependency.js +24 -20
  231. package/lib/dependencies/ImportEagerDependency.js +6 -9
  232. package/lib/dependencies/ImportMetaContextDependency.js +2 -2
  233. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +14 -13
  234. package/lib/dependencies/ImportMetaContextPlugin.js +7 -3
  235. package/lib/dependencies/ImportMetaGlobDependency.js +2 -2
  236. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +2 -3
  237. package/lib/dependencies/ImportMetaGlobHelpers.js +19 -22
  238. package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -1
  239. package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -1
  240. package/lib/dependencies/ImportMetaPlugin.js +154 -71
  241. package/lib/dependencies/ImportMetaResolveDependency.js +3 -4
  242. package/lib/dependencies/ImportParserPlugin.js +49 -35
  243. package/lib/dependencies/ImportPhase.js +12 -5
  244. package/lib/dependencies/ImportPlugin.js +7 -3
  245. package/lib/dependencies/ImportWeakDependency.js +6 -9
  246. package/lib/dependencies/JsonExportsDependency.js +11 -7
  247. package/lib/dependencies/LoaderDependency.js +2 -2
  248. package/lib/dependencies/LoaderImportDependency.js +2 -2
  249. package/lib/dependencies/LoaderPlugin.js +11 -7
  250. package/lib/dependencies/LocalModuleDependency.js +5 -5
  251. package/lib/dependencies/LocalModulesHelpers.js +1 -1
  252. package/lib/dependencies/ModuleDecoratorDependency.js +6 -7
  253. package/lib/dependencies/ModuleDependency.js +9 -6
  254. package/lib/dependencies/ModuleDependencyTemplateAsId.js +4 -4
  255. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +3 -3
  256. package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
  257. package/lib/dependencies/ModuleHotDeclineDependency.js +1 -1
  258. package/lib/dependencies/ModuleInitFragmentDependency.js +24 -10
  259. package/lib/dependencies/NullDependency.js +3 -3
  260. package/lib/dependencies/ProvidedDependency.js +14 -10
  261. package/lib/dependencies/PureExpressionDependency.js +9 -10
  262. package/lib/dependencies/RequireContextDependency.js +2 -2
  263. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -4
  264. package/lib/dependencies/RequireContextPlugin.js +8 -4
  265. package/lib/dependencies/RequireEnsureDependenciesBlock.js +2 -2
  266. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +5 -8
  267. package/lib/dependencies/RequireEnsureDependency.js +8 -7
  268. package/lib/dependencies/RequireEnsurePlugin.js +7 -3
  269. package/lib/dependencies/RequireHeaderDependency.js +51 -12
  270. package/lib/dependencies/RequireIncludeDependency.js +6 -6
  271. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +2 -3
  272. package/lib/dependencies/RequireIncludePlugin.js +7 -3
  273. package/lib/dependencies/RequireJsStuffPlugin.js +7 -3
  274. package/lib/dependencies/RequireResolveContextDependency.js +2 -2
  275. package/lib/dependencies/RequireResolveDependency.js +4 -4
  276. package/lib/dependencies/RequireResolveHeaderDependency.js +4 -4
  277. package/lib/dependencies/RuntimeRequirementsDependency.js +5 -6
  278. package/lib/dependencies/StaticExportsDependency.js +2 -2
  279. package/lib/dependencies/SystemPlugin.js +10 -6
  280. package/lib/dependencies/SystemRuntimeModule.js +10 -0
  281. package/lib/dependencies/TopLevelAwaitDependency.js +11 -7
  282. package/lib/dependencies/URLContextDependency.js +2 -2
  283. package/lib/dependencies/URLDependency.js +110 -64
  284. package/lib/dependencies/URLPlugin.js +7 -3
  285. package/lib/dependencies/UnsupportedDependency.js +4 -4
  286. package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -4
  287. package/lib/dependencies/WebAssemblyImportDependency.js +5 -5
  288. package/lib/dependencies/WebpackIsIncludedDependency.js +6 -6
  289. package/lib/dependencies/WorkerAndWorkletPlugin.js +46 -28
  290. package/lib/dependencies/WorkerDependency.js +28 -22
  291. package/lib/dependencies/WorkletDependency.js +15 -14
  292. package/lib/dependencies/getFunctionExpression.js +8 -4
  293. package/lib/dependencies/processExportInfo.js +5 -5
  294. package/lib/dll/DelegatedModule.js +34 -22
  295. package/lib/dll/DelegatedModuleFactoryPlugin.js +15 -7
  296. package/lib/dll/DelegatedPlugin.js +2 -2
  297. package/lib/dll/DllEntryPlugin.js +2 -2
  298. package/lib/dll/DllModule.js +22 -15
  299. package/lib/dll/DllModuleFactory.js +7 -3
  300. package/lib/dll/DllPlugin.js +7 -5
  301. package/lib/dll/DllReferencePlugin.js +10 -7
  302. package/lib/dll/LibManifestPlugin.js +5 -5
  303. package/lib/electron/ElectronTargetPlugin.js +53 -49
  304. package/lib/errors/AsyncChunkWaterfallWarning.js +36 -0
  305. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  306. package/lib/errors/BroadContextsWarning.js +43 -0
  307. package/lib/errors/BuildCycleError.js +1 -1
  308. package/lib/errors/CacheEffectivenessWarning.js +55 -0
  309. package/lib/errors/ChunkRenderError.js +1 -1
  310. package/lib/errors/CircularDependenciesWarning.js +38 -0
  311. package/lib/errors/CodeGenerationError.js +1 -1
  312. package/lib/errors/CommentCompilationWarning.js +1 -1
  313. package/lib/errors/ConflictingResourceHintsWarning.js +35 -0
  314. package/lib/errors/DuplicateModulesWarning.js +45 -0
  315. package/lib/errors/DynamicExportsWarning.js +30 -0
  316. package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
  317. package/lib/errors/EntrypointOverlapWarning.js +45 -0
  318. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  319. package/lib/errors/EvalUsageWarning.js +28 -0
  320. package/lib/errors/HookWebpackError.js +5 -5
  321. package/lib/errors/HotspotsWarning.js +57 -0
  322. package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
  323. package/lib/errors/InlinedAssetsWarning.js +36 -0
  324. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  325. package/lib/errors/LargeModulesWarning.js +45 -0
  326. package/lib/errors/LegacyJavascriptWarning.js +48 -0
  327. package/lib/errors/MissingSideEffectsWarning.js +36 -0
  328. package/lib/errors/MixedExportsWarning.js +41 -0
  329. package/lib/errors/ModuleDependencyError.js +13 -16
  330. package/lib/errors/ModuleDependencyWarning.js +5 -15
  331. package/lib/errors/ModuleHashingError.js +1 -1
  332. package/lib/errors/ModuleNotFoundError.js +2 -2
  333. package/lib/errors/ModuleParseError.js +1 -2
  334. package/lib/errors/ModuleRestoreError.js +1 -1
  335. package/lib/errors/ModuleStoreError.js +1 -1
  336. package/lib/errors/NodeStuffInWebError.js +1 -1
  337. package/lib/errors/OsDependentRuleWarning.js +31 -0
  338. package/lib/errors/PureAnnotationsWarning.js +36 -0
  339. package/lib/errors/RedundantDynamicImportWarning.js +31 -0
  340. package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
  341. package/lib/errors/SplitChunksCappedWarning.js +41 -0
  342. package/lib/errors/TinyChunksWarning.js +40 -0
  343. package/lib/errors/TopLevelThisWarning.js +34 -0
  344. package/lib/errors/UnsplitVendorsWarning.js +42 -0
  345. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  346. package/lib/errors/UnusedAliasesWarning.js +29 -0
  347. package/lib/errors/UnusedDefinesWarning.js +29 -0
  348. package/lib/errors/UnusedExternalsWarning.js +29 -0
  349. package/lib/errors/UnusedReexportsWarning.js +42 -0
  350. package/lib/errors/UnusedRuleWarning.js +29 -0
  351. package/lib/errors/WebpackError.js +9 -5
  352. package/lib/errors/deriveStackFromNestedError.js +90 -0
  353. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  354. package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
  355. package/lib/esm/ModuleChunkLoadingPlugin.js +89 -51
  356. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +155 -62
  357. package/lib/hmr/HotModuleReplacement.runtime.js +24 -5
  358. package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
  359. package/lib/hmr/LazyCompilationPlugin.js +45 -24
  360. package/lib/hmr/lazyCompilationBackend.js +9 -6
  361. package/lib/hmr/parserHooks.js +56 -0
  362. package/lib/html/HtmlGenerator.js +277 -77
  363. package/lib/html/HtmlModule.js +7 -3
  364. package/lib/html/HtmlModulesPlugin.js +282 -162
  365. package/lib/html/HtmlParser.js +31 -86
  366. package/lib/html/data.js +1928 -0
  367. package/lib/html/htmlMinify.js +288 -0
  368. package/lib/html/syntax.js +5557 -1155
  369. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -3
  370. package/lib/ids/DeterministicChunkIdsPlugin.js +1 -1
  371. package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
  372. package/lib/ids/HashedModuleIdsPlugin.js +6 -2
  373. package/lib/ids/IdHelpers.js +7 -8
  374. package/lib/ids/NamedChunkIdsPlugin.js +1 -1
  375. package/lib/ids/NamedModuleIdsPlugin.js +1 -1
  376. package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
  377. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  378. package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -3
  379. package/lib/ids/OccurrenceModuleIdsPlugin.js +7 -3
  380. package/lib/ids/SyncModuleIdsPlugin.js +4 -4
  381. package/lib/index.js +10 -0
  382. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
  383. package/lib/javascript/BasicEvaluatedExpression.js +18 -14
  384. package/lib/javascript/ChunkFormatHelpers.js +6 -6
  385. package/lib/javascript/ChunkHelpers.js +1 -1
  386. package/lib/javascript/CommonJsChunkFormatPlugin.js +11 -5
  387. package/lib/javascript/EnableChunkLoadingPlugin.js +2 -2
  388. package/lib/javascript/JavascriptGenerator.js +65 -165
  389. package/lib/javascript/JavascriptModule.js +9 -3
  390. package/lib/javascript/JavascriptModulesPlugin.js +98 -113
  391. package/lib/javascript/JavascriptParser.js +242 -99
  392. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  393. package/lib/javascript/ScopeAnalyzer.js +1094 -0
  394. package/lib/javascript/StartupHelpers.js +55 -9
  395. package/lib/javascript/syntax.js +2678 -232
  396. package/lib/json/JsonData.js +8 -4
  397. package/lib/json/JsonGenerator.js +38 -16
  398. package/lib/json/JsonModule.js +7 -3
  399. package/lib/json/JsonModulesPlugin.js +1 -1
  400. package/lib/json/JsonParser.js +5 -6
  401. package/lib/library/AbstractLibraryPlugin.js +20 -14
  402. package/lib/library/AmdLibraryPlugin.js +11 -7
  403. package/lib/library/AssignLibraryPlugin.js +19 -13
  404. package/lib/library/EnableLibraryPlugin.js +2 -2
  405. package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
  406. package/lib/library/JsonpLibraryPlugin.js +11 -7
  407. package/lib/library/ModuleLibraryPlugin.js +256 -64
  408. package/lib/library/SystemLibraryPlugin.js +12 -8
  409. package/lib/library/UmdLibraryPlugin.js +62 -25
  410. package/lib/loaders/LoaderRunner.js +14 -1
  411. package/lib/loaders/loadLoader.js +8 -4
  412. package/lib/logging/createConsoleLogger.js +7 -4
  413. package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
  414. package/lib/node/NodeEnvironmentPlugin.js +17 -3
  415. package/lib/node/NodeSourcePlugin.js +1 -1
  416. package/lib/node/NodeTargetPlugin.js +4 -3
  417. package/lib/node/NodeTemplatePlugin.js +1 -1
  418. package/lib/node/NodeWatchFileSystem.js +70 -9
  419. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
  420. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +72 -19
  421. package/lib/node/ReadFileCompileWasmPlugin.js +28 -16
  422. package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
  423. package/lib/node/nodeConsole.js +7 -3
  424. package/lib/optimize/AggressiveMergingPlugin.js +2 -2
  425. package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
  426. package/lib/optimize/ConcatenatedModule.js +985 -470
  427. package/lib/optimize/ConstExportsPlugin.js +11 -7
  428. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  429. package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
  430. package/lib/optimize/InlineExports.js +9 -5
  431. package/lib/optimize/InnerGraph.js +28 -12
  432. package/lib/optimize/InnerGraphPlugin.js +23 -18
  433. package/lib/optimize/LimitChunkCountPlugin.js +7 -3
  434. package/lib/optimize/MangleExportsPlugin.js +7 -8
  435. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
  436. package/lib/optimize/MinChunkSizePlugin.js +7 -3
  437. package/lib/optimize/ModuleConcatenationPlugin.js +51 -35
  438. package/lib/optimize/RealContentHashPlugin.js +10 -6
  439. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  440. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  441. package/lib/optimize/RuntimeChunkPlugin.js +2 -2
  442. package/lib/optimize/SideEffectsFlagPlugin.js +262 -39
  443. package/lib/optimize/SplitChunksPlugin.js +86 -24
  444. package/lib/performance/AssetsOverSizeLimitWarning.js +10 -2
  445. package/lib/performance/AsyncChunkWaterfallsPlugin.js +136 -0
  446. package/lib/performance/BroadContextsPlugin.js +142 -0
  447. package/lib/performance/CacheEffectivenessPlugin.js +125 -0
  448. package/lib/performance/ConflictingResourceHintsPlugin.js +99 -0
  449. package/lib/performance/DuplicateModulesPlugin.js +93 -0
  450. package/lib/performance/DuplicatePackagesPlugin.js +119 -0
  451. package/lib/performance/DuplicatePackagesWarning.js +84 -0
  452. package/lib/performance/DynamicExportsPlugin.js +120 -0
  453. package/lib/performance/EmbeddedSourceMapsPlugin.js +71 -0
  454. package/lib/performance/EntrypointOverlapPlugin.js +122 -0
  455. package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -1
  456. package/lib/performance/EvalUsagePlugin.js +115 -0
  457. package/lib/performance/HotspotsPlugin.js +296 -0
  458. package/lib/performance/InlinedAssetsPlugin.js +99 -0
  459. package/lib/performance/LargeModulesPlugin.js +126 -0
  460. package/lib/performance/LegacyJavascriptPlugin.js +139 -0
  461. package/lib/performance/MissingSideEffectsPlugin.js +138 -0
  462. package/lib/performance/MixedExportsPlugin.js +136 -0
  463. package/lib/performance/OsDependentRuleWarningPlugin.js +178 -0
  464. package/lib/performance/PureAnnotationsPlugin.js +219 -0
  465. package/lib/performance/RedundantDynamicImportsPlugin.js +225 -0
  466. package/lib/performance/RuntimeInLargeChunkWarning.js +27 -0
  467. package/lib/performance/ScopeHoistingBailoutsPlugin.js +164 -0
  468. package/lib/performance/SizeLimitsPlugin.js +139 -7
  469. package/lib/performance/SplitChunksCappedPlugin.js +99 -0
  470. package/lib/performance/TinyChunksPlugin.js +128 -0
  471. package/lib/performance/TopLevelThisPlugin.js +208 -0
  472. package/lib/performance/UnsplitVendorsPlugin.js +112 -0
  473. package/lib/performance/UnusedAliasesPlugin.js +253 -0
  474. package/lib/performance/UnusedDefinesPlugin.js +87 -0
  475. package/lib/performance/UnusedExternalsPlugin.js +110 -0
  476. package/lib/performance/UnusedReexportsPlugin.js +159 -0
  477. package/lib/performance/UnusedRuleWarningPlugin.js +105 -0
  478. package/lib/performance/getModuleSize.js +22 -0
  479. package/lib/performance/getSourceModules.js +22 -0
  480. package/lib/performance/hasOnlyUnusedExports.js +40 -0
  481. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +24 -10
  482. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +63 -46
  483. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -3
  484. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
  485. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
  486. package/lib/prefetch/ResourceHintPlugin.js +295 -78
  487. package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
  488. package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
  489. package/lib/prefetch/parseResourceHintOptions.js +31 -4
  490. package/lib/rules/BasicEffectRulePlugin.js +2 -2
  491. package/lib/rules/BasicMatcherRulePlugin.js +8 -4
  492. package/lib/rules/GlobMatcherRulePlugin.js +68 -0
  493. package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
  494. package/lib/rules/RuleSetCompiler.js +146 -12
  495. package/lib/rules/UseEffectRulePlugin.js +18 -11
  496. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
  497. package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
  498. package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
  499. package/lib/runtime/BaseUriRuntimeModule.js +33 -7
  500. package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
  501. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
  502. package/lib/runtime/CompatRuntimeModule.js +5 -3
  503. package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
  504. package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
  505. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
  506. package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
  507. package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
  508. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
  509. package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
  510. package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
  511. package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
  512. package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
  513. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
  514. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
  515. package/lib/runtime/GlobalRuntimeModule.js +18 -0
  516. package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
  517. package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
  518. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +23 -6
  519. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
  520. package/lib/runtime/NonceRuntimeModule.js +10 -0
  521. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
  522. package/lib/runtime/PublicPathRuntimeModule.js +12 -2
  523. package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
  524. package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
  525. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
  526. package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
  527. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
  528. package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
  529. package/lib/runtime/SystemContextRuntimeModule.js +10 -0
  530. package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
  531. package/lib/runtime/WorkerRuntimeModule.js +11 -1
  532. package/lib/runtime/baseUri.js +63 -0
  533. package/lib/schemes/DataUriPlugin.js +1 -1
  534. package/lib/schemes/FileUriPlugin.js +1 -1
  535. package/lib/schemes/HttpUriPlugin.js +24 -15
  536. package/lib/schemes/VirtualUrlPlugin.js +13 -7
  537. package/lib/serialization/AggregateErrorSerializer.js +1 -1
  538. package/lib/serialization/BinaryMiddleware.js +4 -4
  539. package/lib/serialization/ErrorObjectSerializer.js +1 -1
  540. package/lib/serialization/FileMiddleware.js +7 -7
  541. package/lib/serialization/ObjectMiddleware.js +139 -114
  542. package/lib/serialization/PlainObjectSerializer.js +19 -16
  543. package/lib/sharing/ConsumeSharedModule.js +30 -21
  544. package/lib/sharing/ConsumeSharedPlugin.js +18 -10
  545. package/lib/sharing/ConsumeSharedRuntimeModule.js +6 -9
  546. package/lib/sharing/ProvideSharedModule.js +25 -16
  547. package/lib/sharing/ProvideSharedModuleFactory.js +7 -3
  548. package/lib/sharing/ProvideSharedPlugin.js +8 -4
  549. package/lib/sharing/SharePlugin.js +17 -5
  550. package/lib/sharing/ShareRuntimeModule.js +4 -4
  551. package/lib/sharing/resolveMatchedConfigs.js +9 -6
  552. package/lib/sharing/utils.js +1 -3
  553. package/lib/stats/DefaultStatsFactoryPlugin.js +50 -29
  554. package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
  555. package/lib/stats/DefaultStatsPrinterPlugin.js +36 -26
  556. package/lib/stats/StatsFactory.js +25 -26
  557. package/lib/stats/StatsPrinter.js +16 -12
  558. package/lib/typescript/TypeScriptPlugin.js +12 -14
  559. package/lib/url/URLParserPlugin.js +26 -13
  560. package/lib/util/AsyncQueue.js +4 -3
  561. package/lib/util/Hash.js +5 -1
  562. package/lib/util/LazySet.js +35 -22
  563. package/lib/util/LocConverter.js +36 -13
  564. package/lib/util/SourceProcessor.js +1050 -24
  565. package/lib/util/StringXor.js +1 -1
  566. package/lib/util/chainedImports.js +9 -5
  567. package/lib/util/cleverMerge.js +1 -1
  568. package/lib/util/comparators.js +45 -14
  569. package/lib/util/concatenate.js +203 -77
  570. package/lib/util/conventions.js +5 -1
  571. package/lib/util/createHash.js +2 -2
  572. package/lib/util/createHooksRegistry.js +8 -10
  573. package/lib/util/dataURL.js +225 -1
  574. package/lib/util/extractSourceMap.js +4 -3
  575. package/lib/util/findCaseMismatch.js +139 -0
  576. package/lib/util/formatLocation.js +1 -2
  577. package/lib/util/fs.js +22 -5
  578. package/lib/util/globUtils.js +298 -24
  579. package/lib/util/hash/BatchedHash.js +5 -1
  580. package/lib/util/hash/BulkUpdateHash.js +5 -1
  581. package/lib/util/hash/DebugHash.js +5 -1
  582. package/lib/util/hash/hash-digest.js +6 -2
  583. package/lib/util/identifier.js +4 -0
  584. package/lib/util/implicitTypeLoaderFallback.js +1 -1
  585. package/lib/util/internalSerializables.js +6 -0
  586. package/lib/util/lazyModule.js +56 -0
  587. package/lib/util/makeSerializable.js +7 -3
  588. package/lib/util/matchAlias.js +25 -0
  589. package/lib/util/mimeTypes.js +11 -5
  590. package/lib/util/nonNumericOnlyHash.js +4 -3
  591. package/lib/util/parseJson.js +5 -3
  592. package/lib/util/preloadModuleType.js +32 -0
  593. package/lib/util/registerExternalSerializer.js +7 -5
  594. package/lib/util/runtime.js +2 -2
  595. package/lib/util/semver.js +1 -1
  596. package/lib/util/serialization.js +28 -28
  597. package/lib/util/source.js +2 -2
  598. package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
  599. package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
  600. package/lib/wasm/wasmModuleFilename.js +54 -0
  601. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +41 -21
  602. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +43 -21
  603. package/lib/wasm-async/AsyncWasmModule.js +3 -3
  604. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
  605. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
  606. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
  607. package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
  608. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +34 -8
  609. package/lib/wasm-sync/SyncWasmModule.js +2 -2
  610. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
  611. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
  612. package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
  613. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
  614. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
  615. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
  616. package/lib/wasm-sync/WebAssemblyParser.js +4 -6
  617. package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
  618. package/lib/web/FetchCompileAsyncWasmPlugin.js +101 -19
  619. package/lib/web/FetchCompileWasmPlugin.js +46 -16
  620. package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
  621. package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
  622. package/lib/web/JsonpTemplatePlugin.js +2 -2
  623. package/lib/webpack.js +22 -11
  624. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
  625. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
  626. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  627. package/module.d.ts +1 -0
  628. package/package.json +32 -25
  629. package/schemas/WebpackOptions.check.js +1 -1
  630. package/schemas/WebpackOptions.json +670 -36
  631. package/schemas/plugins/HtmlParserOptions.check.js +1 -1
  632. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  633. package/schemas/plugins/container/ContainerPlugin.json +10 -0
  634. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  635. package/schemas/plugins/container/ModuleFederationPlugin.json +10 -0
  636. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
  637. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  638. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  639. package/types.d.ts +3144 -454
  640. package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
@@ -6,6 +6,7 @@
6
6
  "use strict";
7
7
 
8
8
  const EventEmitter = require("events");
9
+
9
10
  const { basename, extname } = require("path");
10
11
  const {
11
12
  // eslint-disable-next-line n/no-unsupported-features/node-builtins
@@ -18,21 +19,29 @@ const createHash = require("../util/createHash");
18
19
  const { dirname, join, mkdirp } = require("../util/fs");
19
20
  const memoize = require("../util/memoize");
20
21
 
21
- /** @typedef {import("http").IncomingMessage} IncomingMessage */
22
- /** @typedef {import("http").OutgoingHttpHeaders} OutgoingHttpHeaders */
23
- /** @typedef {import("http").RequestOptions} RequestOptions */
24
- /** @typedef {import("net").Socket} Socket */
25
- /** @typedef {import("stream").Readable} Readable */
26
- /** @typedef {import("../../declarations/plugins/schemes/HttpUriPlugin").HttpUriPluginOptions} HttpUriPluginOptions */
27
- /** @typedef {import("../Compiler")} Compiler */
28
- /** @typedef {import("../FileSystemInfo").Snapshot} Snapshot */
29
- /** @typedef {import("../Module").BuildInfo} BuildInfo */
30
- /** @typedef {import("../NormalModuleFactory").ResourceDataWithData} ResourceDataWithData */
31
- /** @typedef {import("../util/fs").IntermediateFileSystem} IntermediateFileSystem */
32
- /** @typedef {import("../NormalModule").NormalModuleBuildInfo} NormalModuleBuildInfo */
22
+ const getHttps = memoize(() => require("https"));
33
23
 
34
24
  const getHttp = memoize(() => require("http"));
35
- const getHttps = memoize(() => require("https"));
25
+
26
+ /**
27
+ * @import {
28
+ * IncomingMessage,
29
+ * OutgoingHttpHeaders,
30
+ * RequestOptions
31
+ * } from "http"
32
+ */
33
+ /** @import { Socket } from "net" */
34
+ /** @import { Readable } from "stream" */
35
+ /**
36
+ * @import {
37
+ * HttpUriPluginOptions
38
+ * } from "../../declarations/plugins/schemes/HttpUriPlugin"
39
+ */
40
+ /** @import Compiler from "../Compiler" */
41
+ /** @import { Snapshot } from "../FileSystemInfo" */
42
+ /** @import { ResourceDataWithData } from "../NormalModuleFactory" */
43
+ /** @import { IntermediateFileSystem } from "../util/fs" */
44
+ /** @import { NormalModuleBuildInfo } from "../NormalModule" */
36
45
 
37
46
  const MAX_REDIRECTS = 5;
38
47
 
@@ -482,7 +491,7 @@ const cachedWithKey = (fn, forceFn = fn) => {
482
491
  * Defines the lockfile cache type used by this module.
483
492
  * @typedef {object} LockfileCache
484
493
  * @property {Lockfile} lockfile lockfile
485
- * @property {Snapshot} snapshot snapshot
494
+ * @property {InstanceType<Snapshot>} snapshot snapshot
486
495
  */
487
496
 
488
497
  /**
@@ -644,7 +653,7 @@ class HttpUriPlugin {
644
653
  : new Lockfile();
645
654
  lockfileCache = {
646
655
  lockfile,
647
- snapshot: /** @type {Snapshot} */ (s)
656
+ snapshot: /** @type {InstanceType<Snapshot>} */ (s)
648
657
  };
649
658
  callback(null, lockfile);
650
659
  }
@@ -6,21 +6,27 @@
6
6
  "use strict";
7
7
 
8
8
  const NormalModule = require("../NormalModule");
9
- const ModuleNotFoundError = require("../errors/ModuleNotFoundError");
9
+
10
10
  const { getContext } = require("../loaders/LoaderRunner");
11
11
  const { isAbsolute, join } = require("../util/fs");
12
12
  const { parseResourceWithoutFragment } = require("../util/identifier");
13
+ const memoize = require("../util/memoize");
14
+
15
+ const getModuleNotFoundError = memoize(() =>
16
+ require("../errors/ModuleNotFoundError")
17
+ );
13
18
 
14
19
  const DEFAULT_SCHEME = "virtual";
15
20
 
16
21
  const PLUGIN_NAME = "VirtualUrlPlugin";
17
22
 
23
+ /** @import Compiler from "../Compiler" */
18
24
  /**
19
- * Defines the compiler type used by this module.
20
- * @typedef {import("../Compiler")} Compiler
21
- * @typedef {import("../../declarations/plugins/schemes/VirtualUrlPlugin").VirtualModule} VirtualModuleConfig
22
- * @typedef {import("../../declarations/plugins/schemes/VirtualUrlPlugin").VirtualModuleContent} VirtualModuleInput
23
- * @typedef {import("../../declarations/plugins/schemes/VirtualUrlPlugin").VirtualUrlOptions} VirtualUrlOptions
25
+ * @import {
26
+ * VirtualModule as VirtualModuleConfig,
27
+ * VirtualModuleContent as VirtualModuleInput,
28
+ * VirtualUrlOptions
29
+ * } from "../../declarations/plugins/schemes/VirtualUrlPlugin"
24
30
  */
25
31
 
26
32
  /** @typedef {(loaderContext: LoaderContext<EXPECTED_ANY>) => Promise<string | Buffer> | string | Buffer} SourceFn */
@@ -271,7 +277,7 @@ class VirtualUrlPlugin {
271
277
  findVirtualModuleConfigById(id) {
272
278
  const config = this.modules[id];
273
279
  if (!config) {
274
- throw new ModuleNotFoundError(
280
+ throw new (getModuleNotFoundError())(
275
281
  null,
276
282
  new Error(`Can't resolve virtual module ${id}`),
277
283
  {
@@ -4,7 +4,7 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- /** @typedef {import("./types").ComplexSerializableType} ComplexSerializableType */
7
+ /** @import { ComplexSerializableType } from "./types" */
8
8
  /** @typedef {import("./ObjectMiddleware").ObjectDeserializerContext<ComplexSerializableType[]>} ObjectDeserializerContext */
9
9
  /** @typedef {import("./ObjectMiddleware").ObjectSerializerContext<ComplexSerializableType[]>} ObjectSerializerContext */
10
10
 
@@ -8,8 +8,8 @@ const { deserialize: v8Deserialize, serialize: v8Serialize } = require("v8");
8
8
  const memoize = require("../util/memoize");
9
9
  const SerializerMiddleware = require("./SerializerMiddleware");
10
10
 
11
- /** @typedef {import("./types").BufferSerializableType} BufferSerializableType */
12
11
  /** @typedef {import("./types").PrimitiveSerializableType} PrimitiveSerializableType */
12
+ /** @import { BufferSerializableType } from "./types" */
13
13
 
14
14
  /*
15
15
  Format:
@@ -579,7 +579,7 @@ class BinaryMiddleware extends SerializerMiddleware {
579
579
  }
580
580
  }
581
581
 
582
- module.exports = BinaryMiddleware;
582
+ BinaryMiddleware.MEASURE_END_OPERATION = MEASURE_END_OPERATION;
583
+ BinaryMiddleware.MEASURE_START_OPERATION = MEASURE_START_OPERATION;
583
584
 
584
- module.exports.MEASURE_END_OPERATION = MEASURE_END_OPERATION;
585
- module.exports.MEASURE_START_OPERATION = MEASURE_START_OPERATION;
585
+ module.exports = BinaryMiddleware;
@@ -4,7 +4,7 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- /** @typedef {import("./types").ComplexSerializableType} ComplexSerializableType */
7
+ /** @import { ComplexSerializableType } from "./types" */
8
8
  /** @typedef {import("./ObjectMiddleware").ObjectDeserializerContext<ComplexSerializableType[]>} ObjectDeserializerContext */
9
9
  /** @typedef {import("./ObjectMiddleware").ObjectSerializerContext<ComplexSerializableType[]>} ObjectSerializerContext */
10
10
 
@@ -31,10 +31,9 @@ const { dirname, join, mkdirp } = require("../util/fs");
31
31
  const memoize = require("../util/memoize");
32
32
  const SerializerMiddleware = require("./SerializerMiddleware");
33
33
 
34
- /** @typedef {import("../util/Hash").HashFunction} HashFunction */
35
- /** @typedef {import("../util/fs").IStats} IStats */
36
- /** @typedef {import("../util/fs").IntermediateFileSystem} IntermediateFileSystem */
37
- /** @typedef {import("./types").BufferSerializableType} BufferSerializableType */
34
+ /** @import { HashFunction } from "../util/Hash" */
35
+ /** @import { IStats, IntermediateFileSystem } from "../util/fs" */
36
+ /** @import { BufferSerializableType } from "./types" */
38
37
 
39
38
  /*
40
39
  Format:
@@ -1046,7 +1045,8 @@ const getReferencedFilenames = (fs, file) =>
1046
1045
  ? getReferencedFilenamesCompressed(fs, file)
1047
1046
  : getReferencedFilenamesUncompressed(fs, file);
1048
1047
 
1049
- module.exports = FileMiddleware;
1050
1048
  // Exposed for testing the content-buffer boundary handling in `deserialize`.
1051
- module.exports._deserialize = deserialize;
1052
- module.exports.getReferencedFilenames = getReferencedFilenames;
1049
+ FileMiddleware._deserialize = deserialize;
1050
+ FileMiddleware.getReferencedFilenames = getReferencedFilenames;
1051
+
1052
+ module.exports = FileMiddleware;
@@ -17,11 +17,15 @@ const RegExpObjectSerializer = require("./RegExpObjectSerializer");
17
17
  const SerializerMiddleware = require("./SerializerMiddleware");
18
18
  const SetObjectSerializer = require("./SetObjectSerializer");
19
19
 
20
- /** @typedef {import("../logging/Logger").Logger} Logger */
21
- /** @typedef {import("../util/Hash").HashFunction} HashFunction */
22
- /** @typedef {import("./SerializerMiddleware").LazyOptions} LazyOptions */
23
- /** @typedef {import("./types").ComplexSerializableType} ComplexSerializableType */
24
- /** @typedef {import("./types").PrimitiveSerializableType} PrimitiveSerializableType */
20
+ /** @import { Logger } from "../logging/Logger" */
21
+ /** @import { HashFunction } from "../util/Hash" */
22
+ /** @import { LazyOptions } from "./SerializerMiddleware" */
23
+ /**
24
+ * @import {
25
+ * ComplexSerializableType,
26
+ * PrimitiveSerializableType
27
+ * } from "./types"
28
+ */
25
29
 
26
30
  /** @typedef {new (...params: EXPECTED_ANY[]) => EXPECTED_ANY} Constructor */
27
31
 
@@ -457,7 +461,7 @@ class ObjectMiddleware extends SerializerMiddleware {
457
461
  return buf;
458
462
  };
459
463
  let currentPosTypeLookup = 0;
460
- /** @type {Map<ComplexSerializableType, number>} */
464
+ /** @type {Map<SerializerConfigWithSerializer, number>} */
461
465
  let objectTypeLookup = new Map();
462
466
  /** @type {Set<ComplexSerializableType>} */
463
467
  const cycleStack = new Set();
@@ -569,140 +573,160 @@ class ObjectMiddleware extends SerializerMiddleware {
569
573
  ...context
570
574
  };
571
575
  this.extendContext(ctx);
576
+ // Dispatched on `typeof` first: two thirds of the items are numbers,
577
+ // booleans and `undefined`, and only 3% are buffers.
572
578
  /**
573
579
  * Processes the provided item.
574
580
  * @param {ComplexSerializableType} item item to serialize
575
581
  */
576
582
  const process = (item) => {
577
- if (Buffer.isBuffer(item)) {
578
- // check if we can emit a reference
579
- const ref = referenceable.get(item);
580
- if (ref !== undefined) {
581
- result.push(ESCAPE, ref - currentPos);
583
+ switch (typeof item) {
584
+ case "number":
585
+ case "boolean":
586
+ result.push(item);
582
587
  return;
583
- }
584
- const alreadyUsedBuffer = dedupeBuffer(item);
585
- if (alreadyUsedBuffer !== item) {
586
- const ref = referenceable.get(alreadyUsedBuffer);
587
- if (ref !== undefined) {
588
- referenceable.set(item, ref);
589
- result.push(ESCAPE, ref - currentPos);
590
- return;
588
+ case "string": {
589
+ if (item.length > 1) {
590
+ // short strings are shorter when not emitting a reference (this saves 1 byte per empty string)
591
+ // check if we can emit a reference
592
+ const ref = referenceable.get(item);
593
+ if (ref !== undefined) {
594
+ const offset = ref - currentPos;
595
+ if (
596
+ // One far ref → 5 bytes (`null` + offset), one near ref -> 2/3 bytes
597
+ offset >= -32768 ||
598
+ // long enough that the ref wins, keep it
599
+ item.length >= 4 ||
600
+ // multibyte → inline would be even bigger, keep it
601
+ Buffer.byteLength(item) !== item.length
602
+ ) {
603
+ // A back-reference is `null` + the offset.
604
+ result.push(ESCAPE, offset);
605
+ return;
606
+ }
607
+ }
608
+ addReferenceable(item);
609
+ }
610
+
611
+ if (item.length > 102400 && context.logger) {
612
+ context.logger.warn(
613
+ `Serializing big strings (${Math.round(
614
+ item.length / 1024
615
+ )}kiB) impacts deserialization performance (consider using Buffer instead and decode when needed)`
616
+ );
591
617
  }
592
- item = alreadyUsedBuffer;
593
- }
594
- addReferenceable(item);
595
618
 
596
- result.push(/** @type {Buffer} */ (item));
597
- } else if (item === ESCAPE) {
598
- result.push(ESCAPE, ESCAPE_ESCAPE_VALUE);
599
- } else if (
600
- typeof item === "object"
601
- // We don't have to check for null as ESCAPE is null and this has been checked before
602
- ) {
603
- // check if we can emit a reference
604
- const ref = referenceable.get(item);
605
- if (ref !== undefined) {
606
- result.push(ESCAPE, ref - currentPos);
619
+ result.push(item);
607
620
  return;
608
621
  }
622
+ case "undefined":
623
+ result.push(ESCAPE, ESCAPE_UNDEFINED);
624
+ return;
625
+ case "object": {
626
+ // ESCAPE is null, so this covers null too
627
+ if (item === ESCAPE) {
628
+ result.push(ESCAPE, ESCAPE_ESCAPE_VALUE);
629
+ return;
630
+ }
609
631
 
610
- if (cycleStack.has(item)) {
611
- throw new Error(
612
- "This is a circular references. To serialize circular references use 'setCircularReference' somewhere in the circle during serialize and deserialize."
613
- );
614
- }
632
+ if (Buffer.isBuffer(item)) {
633
+ // check if we can emit a reference
634
+ const ref = referenceable.get(item);
635
+ if (ref !== undefined) {
636
+ result.push(ESCAPE, ref - currentPos);
637
+ return;
638
+ }
639
+ const alreadyUsedBuffer = dedupeBuffer(item);
640
+ if (alreadyUsedBuffer !== item) {
641
+ const ref = referenceable.get(alreadyUsedBuffer);
642
+ if (ref !== undefined) {
643
+ referenceable.set(item, ref);
644
+ result.push(ESCAPE, ref - currentPos);
645
+ return;
646
+ }
647
+ item = alreadyUsedBuffer;
648
+ }
649
+ addReferenceable(item);
615
650
 
616
- const { request, name, serializer } = ObjectMiddleware.getSerializerFor(
617
- /** @type {Constructor} */
618
- (item)
619
- );
620
- const key = `${request}/${name}`;
621
- const lastIndex = objectTypeLookup.get(key);
651
+ result.push(/** @type {Buffer} */ (item));
652
+ return;
653
+ }
622
654
 
623
- if (lastIndex === undefined) {
624
- objectTypeLookup.set(key, currentPosTypeLookup++);
655
+ // check if we can emit a reference
656
+ const ref = referenceable.get(item);
657
+ if (ref !== undefined) {
658
+ result.push(ESCAPE, ref - currentPos);
659
+ return;
660
+ }
625
661
 
626
- result.push(ESCAPE, request, name);
627
- } else {
628
- result.push(ESCAPE, currentPosTypeLookup - lastIndex);
629
- }
662
+ if (cycleStack.has(item)) {
663
+ throw new Error(
664
+ "This is a circular references. To serialize circular references use 'setCircularReference' somewhere in the circle during serialize and deserialize."
665
+ );
666
+ }
630
667
 
631
- cycleStack.add(item);
668
+ // Keyed by the registration itself: one per class, so it stands in for
669
+ // `${request}/${name}` without building that string per object.
670
+ const config = ObjectMiddleware.getSerializerFor(
671
+ /** @type {Constructor} */
672
+ (item)
673
+ );
674
+ const { request, name, serializer } = config;
675
+ const lastIndex = objectTypeLookup.get(config);
632
676
 
633
- try {
634
- serializer.serialize(item, ctx);
635
- } finally {
636
- cycleStack.delete(item);
637
- }
677
+ if (lastIndex === undefined) {
678
+ objectTypeLookup.set(config, currentPosTypeLookup++);
638
679
 
639
- result.push(ESCAPE, ESCAPE_END_OBJECT);
680
+ result.push(ESCAPE, request, name);
681
+ } else {
682
+ result.push(ESCAPE, currentPosTypeLookup - lastIndex);
683
+ }
640
684
 
641
- addReferenceable(item);
642
- } else if (typeof item === "string") {
643
- if (item.length > 1) {
644
- // short strings are shorter when not emitting a reference (this saves 1 byte per empty string)
645
- // check if we can emit a reference
646
- const ref = referenceable.get(item);
647
- if (ref !== undefined) {
648
- const offset = ref - currentPos;
649
- if (
650
- // One far ref → 5 bytes (`null` + offset), one near ref -> 2/3 bytes
651
- offset >= -32768 ||
652
- // long enough that the ref wins, keep it
653
- item.length >= 4 ||
654
- // multibyte → inline would be even bigger, keep it
655
- Buffer.byteLength(item) !== item.length
656
- ) {
657
- // A back-reference is `null` + the offset.
658
- result.push(ESCAPE, offset);
659
- return;
660
- }
685
+ cycleStack.add(item);
686
+
687
+ try {
688
+ serializer.serialize(item, ctx);
689
+ } finally {
690
+ cycleStack.delete(item);
661
691
  }
662
- addReferenceable(item);
663
- }
664
692
 
665
- if (item.length > 102400 && context.logger) {
666
- context.logger.warn(
667
- `Serializing big strings (${Math.round(
668
- item.length / 1024
669
- )}kiB) impacts deserialization performance (consider using Buffer instead and decode when needed)`
670
- );
671
- }
693
+ result.push(ESCAPE, ESCAPE_END_OBJECT);
672
694
 
673
- result.push(item);
674
- } else if (typeof item === "function") {
675
- if (!SerializerMiddleware.isLazy(item)) {
676
- throw new Error(`Unexpected function ${item}`);
695
+ addReferenceable(item);
696
+ return;
677
697
  }
698
+ case "function": {
699
+ if (!SerializerMiddleware.isLazy(item)) {
700
+ throw new Error(`Unexpected function ${item}`);
701
+ }
678
702
 
679
- /** @type {SerializedType | undefined} */
680
- const serializedData =
681
- SerializerMiddleware.getLazySerializedValue(item);
703
+ /** @type {SerializedType | undefined} */
704
+ const serializedData =
705
+ SerializerMiddleware.getLazySerializedValue(item);
682
706
 
683
- if (serializedData !== undefined) {
684
- if (typeof serializedData === "function") {
685
- result.push(serializedData);
686
- } else {
707
+ if (serializedData !== undefined) {
708
+ if (typeof serializedData === "function") {
709
+ result.push(serializedData);
710
+ } else {
711
+ throw new Error("Not implemented");
712
+ }
713
+ } else if (SerializerMiddleware.isLazy(item, this)) {
687
714
  throw new Error("Not implemented");
715
+ } else {
716
+ const data =
717
+ /** @type {() => PrimitiveSerializableType[] | Promise<PrimitiveSerializableType[]>} */
718
+ (
719
+ SerializerMiddleware.serializeLazy(item, (data) =>
720
+ this.serialize([data], context)
721
+ )
722
+ );
723
+ SerializerMiddleware.setLazySerializedValue(item, data);
724
+ result.push(data);
688
725
  }
689
- } else if (SerializerMiddleware.isLazy(item, this)) {
690
- throw new Error("Not implemented");
691
- } else {
692
- const data =
693
- /** @type {() => PrimitiveSerializableType[] | Promise<PrimitiveSerializableType[]>} */
694
- (
695
- SerializerMiddleware.serializeLazy(item, (data) =>
696
- this.serialize([data], context)
697
- )
698
- );
699
- SerializerMiddleware.setLazySerializedValue(item, data);
700
- result.push(data);
726
+ return;
701
727
  }
702
- } else if (item === undefined) {
703
- result.push(ESCAPE, ESCAPE_UNDEFINED);
704
- } else {
705
- result.push(item);
728
+ default:
729
+ result.push(item);
706
730
  }
707
731
  };
708
732
 
@@ -933,5 +957,6 @@ class ObjectMiddleware extends SerializerMiddleware {
933
957
  }
934
958
  }
935
959
 
960
+ ObjectMiddleware.NOT_SERIALIZABLE = NOT_SERIALIZABLE;
961
+
936
962
  module.exports = ObjectMiddleware;
937
- module.exports.NOT_SERIALIZABLE = NOT_SERIALIZABLE;
@@ -3,32 +3,32 @@
3
3
  */
4
4
 
5
5
  "use strict";
6
+ /** @import { ObjectDeserializerContext, ObjectSerializerContext } from "./ObjectMiddleware" */
6
7
 
7
- /** @typedef {EXPECTED_FUNCTION} CacheAssoc */
8
+ /** @typedef {ObjectSerializerContext<EXPECTED_ANY>["write"]} CacheAssoc */
8
9
 
9
10
  /**
10
11
  * Defines the shared type used by this module.
11
- * @template T
12
- * @typedef {WeakMap<CacheAssoc, ObjectStructure<T>>}
12
+ * @type {WeakMap<CacheAssoc, ObjectStructure<PropertyKey>>}
13
13
  */
14
14
  const cache = new WeakMap();
15
15
 
16
16
  /**
17
17
  * Represents ObjectStructure.
18
- * @template T
18
+ * @template {PropertyKey} K
19
19
  */
20
20
  class ObjectStructure {
21
21
  constructor() {
22
- /** @type {undefined | keyof T[]} */
22
+ /** @type {undefined | K[]} */
23
23
  this.keys = undefined;
24
- /** @type {undefined | Map<keyof T, ObjectStructure<T>>} */
24
+ /** @type {undefined | Map<K, ObjectStructure<K>>} */
25
25
  this.children = undefined;
26
26
  }
27
27
 
28
28
  /**
29
29
  * Returns keys.
30
- * @param {keyof T[]} keys keys
31
- * @returns {keyof T[]} keys
30
+ * @param {K[]} keys keys
31
+ * @returns {K[]} keys
32
32
  */
33
33
  getKeys(keys) {
34
34
  if (this.keys === undefined) this.keys = keys;
@@ -37,13 +37,14 @@ class ObjectStructure {
37
37
 
38
38
  /**
39
39
  * Returns object structure.
40
- * @param {keyof T} key key
41
- * @returns {ObjectStructure<T>} object structure
40
+ * @param {K} key key
41
+ * @returns {ObjectStructure<K>} object structure
42
42
  */
43
43
  key(key) {
44
44
  if (this.children === undefined) this.children = new Map();
45
45
  const child = this.children.get(key);
46
46
  if (child !== undefined) return child;
47
+ /** @type {ObjectStructure<K>} */
47
48
  const newChild = new ObjectStructure();
48
49
  this.children.set(key, newChild);
49
50
  return newChild;
@@ -52,13 +53,15 @@ class ObjectStructure {
52
53
 
53
54
  /**
54
55
  * Returns keys.
55
- * @template T
56
- * @param {(keyof T)[]} keys keys
56
+ * @template {PropertyKey} K
57
+ * @param {K[]} keys keys
57
58
  * @param {CacheAssoc} cacheAssoc cache assoc fn
58
- * @returns {(keyof T)[]} keys
59
+ * @returns {K[]} keys
59
60
  */
60
61
  const getCachedKeys = (keys, cacheAssoc) => {
61
- let root = cache.get(cacheAssoc);
62
+ let root = /** @type {ObjectStructure<K> | undefined} */ (
63
+ cache.get(cacheAssoc)
64
+ );
62
65
  if (root === undefined) {
63
66
  root = new ObjectStructure();
64
67
  cache.set(cacheAssoc, root);
@@ -75,7 +78,7 @@ class PlainObjectSerializer {
75
78
  * Serializes this instance into the provided serializer context.
76
79
  * @template {object} T
77
80
  * @param {T} obj plain object
78
- * @param {import("./ObjectMiddleware").ObjectSerializerContext<((keyof T)[] | keyof T | null | T[keyof T])[]>} context context
81
+ * @param {ObjectSerializerContext<((keyof T)[] | keyof T | null | T[keyof T])[]>} context context
79
82
  */
80
83
  serialize(obj, context) {
81
84
  const keys = /** @type {(keyof T)[]} */ (Object.keys(obj));
@@ -103,7 +106,7 @@ class PlainObjectSerializer {
103
106
  /**
104
107
  * Restores this instance from the provided deserializer context.
105
108
  * @template {object} T
106
- * @param {import("./ObjectMiddleware").ObjectDeserializerContext<((keyof T)[] | keyof T | null | T[keyof T])[]>} context context
109
+ * @param {ObjectDeserializerContext<((keyof T)[] | keyof T | null | T[keyof T])[]>} context context
107
110
  * @returns {T} plain object
108
111
  */
109
112
  deserialize(context) {
@@ -23,28 +23,36 @@ const ConsumeSharedFallbackDependency = require("./ConsumeSharedFallbackDependen
23
23
  /** @type {WeakMap<ModuleGraph, WeakMap<ConsumeSharedModule, Module | null>>} */
24
24
  const fallbackModuleCache = new WeakMap();
25
25
 
26
- /** @typedef {import("../config/defaults").WebpackOptionsNormalizedWithDefaults} WebpackOptions */
27
- /** @typedef {import("../Compilation")} Compilation */
28
- /** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
29
- /** @typedef {import("../Module").BuildCallback} BuildCallback */
30
- /** @typedef {import("../Module").CodeGenerationContext} CodeGenerationContext */
31
- /** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
32
- /** @typedef {import("../Module").LibIdentOptions} LibIdentOptions */
33
- /** @typedef {import("../Module").LibIdent} LibIdent */
34
- /** @typedef {import("../Module").NeedBuildCallback} NeedBuildCallback */
35
- /** @typedef {import("../Module").NeedBuildContext} NeedBuildContext */
36
- /** @typedef {import("../Module").Sources} Sources */
37
- /** @typedef {import("../Module").SourceTypes} SourceTypes */
38
- /** @typedef {import("../ModuleGraph")} ModuleGraph */
39
- /** @typedef {import("../Module").ExportsType} ExportsType */
40
- /** @typedef {import("../RequestShortener")} RequestShortener */
41
- /** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
26
+ /**
27
+ * @import {
28
+ * WebpackOptionsNormalizedWithDefaults as WebpackOptions
29
+ * } from "../config/defaults"
30
+ */
31
+ /** @import Compilation from "../Compilation" */
32
+ /** @import { UpdateHashContext } from "../Dependency" */
33
+ /**
34
+ * @import {
35
+ * BuildCallback,
36
+ * CodeGenerationContext,
37
+ * CodeGenerationResult,
38
+ * LibIdentOptions,
39
+ * LibIdent,
40
+ * NeedBuildCallback,
41
+ * NeedBuildContext,
42
+ * Sources,
43
+ * SourceTypes,
44
+ * ExportsType,
45
+ * BasicSourceTypes
46
+ * } from "../Module"
47
+ */
48
+ /** @import ModuleGraph from "../ModuleGraph" */
49
+ /** @import RequestShortener from "../RequestShortener" */
50
+ /** @import { ResolverWithOptions } from "../ResolverFactory" */
42
51
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[ConsumeOptions]>} ObjectDeserializerContext */
43
52
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[ConsumeOptions]>} ObjectSerializerContext */
44
- /** @typedef {import("../util/Hash")} Hash */
45
- /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
46
- /** @typedef {import("../util/semver").SemVerRange} SemVerRange */
47
- /** @typedef {import("../Module").BasicSourceTypes} BasicSourceTypes */
53
+ /** @import Hash from "../util/Hash" */
54
+ /** @import { InputFileSystem } from "../util/fs" */
55
+ /** @import { SemVerRange } from "../util/semver" */
48
56
 
49
57
  /**
50
58
  * Represents the consume shared module runtime component.
@@ -291,7 +299,8 @@ class ConsumeSharedModule extends Module {
291
299
  block,
292
300
  chunkGraph,
293
301
  runtimeRequirements,
294
- request: this.options.import
302
+ request: this.options.import,
303
+ originModule: this
295
304
  });
296
305
  }
297
306
  }