@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
@@ -4,9 +4,11 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const JSONParseError = require("../errors/JSONParseError");
7
+ const memoize = require("./memoize");
8
8
 
9
- /** @typedef {import("../util/fs").JsonValue} JsonValue */
9
+ const getJSONParseError = memoize(() => require("../errors/JSONParseError"));
10
+
11
+ /** @import { JsonValue } from "../util/fs" */
10
12
 
11
13
  // Inspired by https://github.com/npm/json-parse-even-better-errors
12
14
 
@@ -34,7 +36,7 @@ const parseJson = (raw, reviver) => {
34
36
  try {
35
37
  return JSON.parse(txt, reviver);
36
38
  } catch (err) {
37
- throw new JSONParseError(/** @type {Error} */ (err), raw, txt);
39
+ throw new (getJSONParseError())(/** @type {Error} */ (err), raw, txt);
38
40
  }
39
41
  };
40
42
 
@@ -0,0 +1,32 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Alexander Akait @alexander-akait
4
+ */
5
+
6
+ "use strict";
7
+
8
+ /** @import NormalModuleFactory from "../NormalModuleFactory" */
9
+ /** @typedef {import("./lazyModule").LazyModuleAccessor<EXPECTED_ANY>} AnyLazyModuleAccessor */
10
+
11
+ /**
12
+ * Warms the modules a type's `createParser`/`createGenerator`/`createModuleClass`
13
+ * taps read, at the factory's async boundary — those hooks are synchronous, so
14
+ * they cannot await the load themselves.
15
+ * @param {NormalModuleFactory} normalModuleFactory the normal module factory
16
+ * @param {string} pluginName name of the tapping plugin
17
+ * @param {Iterable<[string, AnyLazyModuleAccessor[]]>} table module type to the accessors its taps read
18
+ * @returns {void}
19
+ */
20
+ const preloadModuleType = (normalModuleFactory, pluginName, table) => {
21
+ for (const [type, accessors] of table) {
22
+ normalModuleFactory.hooks.prepareModuleType
23
+ .for(type)
24
+ .tapPromise(pluginName, () =>
25
+ Promise.all(accessors.map((accessor) => accessor())).then(
26
+ () => undefined
27
+ )
28
+ );
29
+ }
30
+ };
31
+
32
+ module.exports = preloadModuleType;
@@ -19,11 +19,13 @@ const {
19
19
  } = require("webpack-sources");
20
20
  const { register } = require("./serialization");
21
21
 
22
- /** @typedef {import("acorn").Position} Position */
23
- /** @typedef {import("../Dependency").RealDependencyLocation} RealDependencyLocation */
24
- /** @typedef {import("../Dependency").SourcePosition} SourcePosition */
25
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
26
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
22
+ /** @import { RealDependencyLocation, SourcePosition } from "../Dependency" */
23
+ /**
24
+ * @import {
25
+ * ObjectDeserializerContext,
26
+ * ObjectSerializerContext
27
+ * } from "../serialization/ObjectMiddleware"
28
+ */
27
29
 
28
30
  const CURRENT_MODULE = "webpack/lib/util/registerExternalSerializer";
29
31
 
@@ -7,8 +7,8 @@
7
7
 
8
8
  const SortableSet = require("./SortableSet");
9
9
 
10
- /** @typedef {import("../Compilation")} Compilation */
11
- /** @typedef {import("../Entrypoint").EntryOptions} EntryOptions */
10
+ /** @import Compilation from "../Compilation" */
11
+ /** @import { EntryOptions } from "../Entrypoint" */
12
12
 
13
13
  /** @typedef {SortableSet<string>} RuntimeSpecSortableSet */
14
14
  /** @typedef {string | RuntimeSpecSortableSet | undefined} RuntimeSpec */
@@ -5,7 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
8
+ /** @import RuntimeTemplate from "../RuntimeTemplate" */
9
9
  /** @typedef {string | number} VersionValue */
10
10
  /** @typedef {VersionValue | undefined} SemVerRangeItem */
11
11
  /** @typedef {(SemVerRangeItem | SemVerRangeItem[])[]} SemVerRange */
@@ -5,31 +5,18 @@
5
5
  "use strict";
6
6
 
7
7
  const { DEFAULTS } = require("../config/defaults");
8
+ const ObjectMiddleware = require("../serialization/ObjectMiddleware");
9
+ const SerializerMiddleware = require("../serialization/SerializerMiddleware");
8
10
  const memoize = require("./memoize");
9
11
 
10
- /** @typedef {import("../serialization/BinaryMiddleware").MEASURE_END_OPERATION_TYPE} MEASURE_END_OPERATION */
11
- /** @typedef {import("../serialization/BinaryMiddleware").MEASURE_START_OPERATION_TYPE} MEASURE_START_OPERATION */
12
- /** @typedef {import("../util/Hash").HashFunction} HashFunction */
13
- /** @typedef {import("../util/fs").IntermediateFileSystem} IntermediateFileSystem */
14
-
15
- /**
16
- * Defines the serializer type used by this module.
17
- * @template D, S, C
18
- * @typedef {import("../serialization/Serializer")<D, S, C>} Serializer
19
- */
12
+ const getSerializer = memoize(() => require("../serialization/Serializer"));
20
13
 
21
- const getBinaryMiddleware = memoize(() =>
22
- require("../serialization/BinaryMiddleware")
23
- );
24
- const getObjectMiddleware = memoize(() =>
25
- require("../serialization/ObjectMiddleware")
26
- );
27
14
  const getSingleItemMiddleware = memoize(() =>
28
15
  require("../serialization/SingleItemMiddleware")
29
16
  );
30
- const getSerializer = memoize(() => require("../serialization/Serializer"));
31
- const getSerializerMiddleware = memoize(() =>
32
- require("../serialization/SerializerMiddleware")
17
+
18
+ const getBinaryMiddleware = memoize(() =>
19
+ require("../serialization/BinaryMiddleware")
33
20
  );
34
21
 
35
22
  const getBinaryMiddlewareInstance = memoize(
@@ -43,7 +30,7 @@ const registerSerializers = memoize(() => {
43
30
  // This allows bundling all internal serializers
44
31
  const internalSerializables = require("./internalSerializables");
45
32
 
46
- getObjectMiddleware().registerLoader(/^webpack\/lib\//, (req) => {
33
+ ObjectMiddleware.registerLoader(/^webpack\/lib\//, (req) => {
47
34
  const loader =
48
35
  internalSerializables[
49
36
  /** @type {keyof import("./internalSerializables")} */
@@ -59,6 +46,21 @@ const registerSerializers = memoize(() => {
59
46
  });
60
47
  });
61
48
 
49
+ /**
50
+ * @import {
51
+ * MEASURE_END_OPERATION_TYPE as MEASURE_END_OPERATION,
52
+ * MEASURE_START_OPERATION_TYPE as MEASURE_START_OPERATION
53
+ * } from "../serialization/BinaryMiddleware"
54
+ */
55
+ /** @import { HashFunction } from "../util/Hash" */
56
+ /** @import { IntermediateFileSystem } from "../util/fs" */
57
+
58
+ /**
59
+ * Defines the serializer type used by this module.
60
+ * @template D, S, C
61
+ * @typedef {import("../serialization/Serializer")<D, S, C>} Serializer
62
+ */
63
+
62
64
  /**
63
65
  * @type {Serializer<EXPECTED_ANY, EXPECTED_ANY, EXPECTED_ANY>}
64
66
  */
@@ -67,16 +69,16 @@ let buffersSerializer;
67
69
  // Expose serialization API
68
70
  module.exports = {
69
71
  get register() {
70
- return getObjectMiddleware().register;
72
+ return ObjectMiddleware.register;
71
73
  },
72
74
  get registerLoader() {
73
- return getObjectMiddleware().registerLoader;
75
+ return ObjectMiddleware.registerLoader;
74
76
  },
75
77
  get registerNotSerializable() {
76
- return getObjectMiddleware().registerNotSerializable;
78
+ return ObjectMiddleware.registerNotSerializable;
77
79
  },
78
80
  get NOT_SERIALIZABLE() {
79
- return getObjectMiddleware().NOT_SERIALIZABLE;
81
+ return ObjectMiddleware.NOT_SERIALIZABLE;
80
82
  },
81
83
  /** @type {MEASURE_START_OPERATION} */
82
84
  get MEASURE_START_OPERATION() {
@@ -91,12 +93,11 @@ module.exports = {
91
93
  registerSerializers();
92
94
  const Serializer = getSerializer();
93
95
  const binaryMiddleware = getBinaryMiddlewareInstance();
94
- const SerializerMiddleware = getSerializerMiddleware();
95
96
  const SingleItemMiddleware = getSingleItemMiddleware();
96
97
  return /** @type {Serializer<EXPECTED_ANY, EXPECTED_ANY, EXPECTED_ANY>} */ (
97
98
  buffersSerializer = new Serializer([
98
99
  new SingleItemMiddleware(),
99
- new (getObjectMiddleware())((context) => {
100
+ new ObjectMiddleware((context) => {
100
101
  if ("write" in context) {
101
102
  context.writeLazy = (value) => {
102
103
  context.write(
@@ -124,12 +125,11 @@ module.exports = {
124
125
 
125
126
  const fileMiddleware = new FileMiddleware(fs, hashFunction);
126
127
  const binaryMiddleware = getBinaryMiddlewareInstance();
127
- const SerializerMiddleware = getSerializerMiddleware();
128
128
  const SingleItemMiddleware = getSingleItemMiddleware();
129
129
  return /** @type {Serializer<D, S, C>} */ (
130
130
  new Serializer([
131
131
  new SingleItemMiddleware(),
132
- new (getObjectMiddleware())((context) => {
132
+ new ObjectMiddleware((context) => {
133
133
  if ("write" in context) {
134
134
  context.writeLazy = (value) => {
135
135
  context.write(
@@ -5,8 +5,8 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- /** @typedef {import("webpack-sources").Source} Source */
9
- /** @typedef {import("./Hash")} Hash */
8
+ /** @import { Source } from "webpack-sources" */
9
+ /** @import Hash from "./Hash" */
10
10
 
11
11
  /** @type {WeakMap<Source, WeakMap<Source, boolean>>} */
12
12
  const equalityCache = new WeakMap();
@@ -5,8 +5,12 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- /** @typedef {import("../javascript/JavascriptParser").DestructuringAssignmentProperties} DestructuringAssignmentProperties */
9
- /** @typedef {import("../javascript/JavascriptParser").DestructuringAssignmentProperty} DestructuringAssignmentProperty */
8
+ /**
9
+ * @import {
10
+ * DestructuringAssignmentProperties,
11
+ * DestructuringAssignmentProperty
12
+ * } from "../javascript/JavascriptParser"
13
+ */
10
14
 
11
15
  /**
12
16
  * Deep first traverse the properties of a destructuring assignment.
@@ -5,8 +5,8 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- /** @typedef {import("../../declarations/WebpackOptions").WasmLoadingType} WasmLoadingType */
9
- /** @typedef {import("../Compiler")} Compiler */
8
+ /** @import { WasmLoadingType } from "../../declarations/WebpackOptions" */
9
+ /** @import Compiler from "../Compiler" */
10
10
 
11
11
  /** @typedef {Set<WasmLoadingType>} WasmLoadingTypes */
12
12
 
@@ -114,9 +114,10 @@ class EnableWasmLoadingPlugin {
114
114
 
115
115
  new ReadFileCompileWasmPlugin({
116
116
  mangleImports: compiler.options.optimization.mangleWasmImports,
117
- import:
118
- compiler.options.output.module &&
119
- compiler.options.output.environment.dynamicImport
117
+ // ESM output has no `require`, and any runtime that loads ESM has
118
+ // `import()` — pairing them by `dynamicImport` emitted CJS into an
119
+ // ES module, which the runtime refuses to load at all.
120
+ import: compiler.options.output.module
120
121
  }).apply(compiler);
121
122
  }
122
123
 
@@ -124,9 +125,10 @@ class EnableWasmLoadingPlugin {
124
125
  const ReadFileCompileAsyncWasmPlugin = require("../node/ReadFileCompileAsyncWasmPlugin");
125
126
 
126
127
  new ReadFileCompileAsyncWasmPlugin({
127
- import:
128
- compiler.options.output.module &&
129
- compiler.options.output.environment.dynamicImport
128
+ // ESM output has no `require`, and any runtime that loads ESM has
129
+ // `import()` — pairing them by `dynamicImport` emitted CJS into an
130
+ // ES module, which the runtime refuses to load at all.
131
+ import: compiler.options.output.module
130
132
  }).apply(compiler);
131
133
  }
132
134
 
@@ -0,0 +1,54 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author sheo13666q @sheo13666q
4
+ */
5
+
6
+ "use strict";
7
+
8
+ const RuntimeGlobals = require("../RuntimeGlobals");
9
+ const {
10
+ getPresentKinds,
11
+ reEncodeDigest,
12
+ usesFullHashDigest
13
+ } = require("../TemplatedPathPlugin");
14
+
15
+ /** @import Compilation from "../Compilation" */
16
+
17
+ /**
18
+ * Whether the runtime needs `getFullHash` to build a binary's name. A `[hash]` next to
19
+ * a module resolves to that module's hash, not the compilation's, so only the explicit
20
+ * `[fullhash]` spelling asks for it — and a digest is inlined rather than read.
21
+ * @param {string} filename `output.webassemblyModuleFilename`
22
+ * @returns {boolean} true when the runtime reads the compilation hash
23
+ */
24
+ const needsRuntimeFullHash = (filename) =>
25
+ getPresentKinds(filename).has("fullhash") && !usesFullHashDigest(filename);
26
+
27
+ /**
28
+ * The compilation-hash half of the `getPath` data for interpolating
29
+ * `output.webassemblyModuleFilename` into runtime code.
30
+ * @param {Compilation} compilation the compilation
31
+ * @returns {{ hash: string, hashWithLength: (length: number) => string, hashWithDigest: (digest: string, length?: number) => string }} the fields
32
+ */
33
+ const fullHashPathData = (compilation) => ({
34
+ hash: `" + ${RuntimeGlobals.getFullHash}() + "`,
35
+ hashWithLength: (length) =>
36
+ `" + ${RuntimeGlobals.getFullHash}().slice(0, ${length}) + "`,
37
+ // A digest re-encodes the hash, which the runtime expression above cannot carry, so
38
+ // the settled value is inlined instead — byte-identical to the emitted filename.
39
+ hashWithDigest: (digest, length) => {
40
+ const { fullHash, outputOptions } = compilation;
41
+ // Pre-hash pass: a stand-in, replaced on the post-hash re-render that
42
+ // `needsInlinedFullHash` asks for. Matches `GetFullHashRuntimeModule`.
43
+ if (!fullHash) return length ? "x".repeat(length) : "x";
44
+ const hash = reEncodeDigest(
45
+ fullHash,
46
+ outputOptions.hashDigest || "hex",
47
+ digest
48
+ );
49
+ return length ? hash.slice(0, length) : hash;
50
+ }
51
+ });
52
+
53
+ module.exports.fullHashPathData = fullHashPathData;
54
+ module.exports.needsRuntimeFullHash = needsRuntimeFullHash;
@@ -8,12 +8,14 @@
8
8
  const RuntimeGlobals = require("../RuntimeGlobals");
9
9
  const RuntimeModule = require("../RuntimeModule");
10
10
  const Template = require("../Template");
11
+ const { fullHashPathData } = require("../wasm/wasmModuleFilename");
11
12
 
12
- /** @typedef {import("../Chunk")} Chunk */
13
- /** @typedef {import("../Compilation")} Compilation */
13
+ /** @import Chunk from "../Chunk" */
14
+ /** @import Compilation from "../Compilation" */
15
+ /** @import { RuntimeSpec } from "../util/runtime" */
14
16
 
15
17
  /** @typedef {(wasmModuleSrcPath: string) => string} GenerateBeforeLoadBinaryCode */
16
- /** @typedef {(wasmModuleSrcPath: string) => string} GenerateLoadBinaryCode */
18
+ /** @typedef {(wasmModuleSrcPath: string, runtime: RuntimeSpec) => string} GenerateLoadBinaryCode */
17
19
  /** @typedef {() => string} GenerateBeforeCompileStreaming */
18
20
 
19
21
  /**
@@ -22,6 +24,7 @@ const Template = require("../Template");
22
24
  * @property {GenerateBeforeLoadBinaryCode=} generateBeforeLoadBinaryCode
23
25
  * @property {GenerateBeforeCompileStreaming=} generateBeforeCompileStreaming
24
26
  * @property {boolean} supportsStreaming
27
+ * @property {boolean=} fullHashDigest the binary's name inlines a re-encoded compilation hash
25
28
  */
26
29
 
27
30
  class AsyncWasmCompileRuntimeModule extends RuntimeModule {
@@ -32,9 +35,16 @@ class AsyncWasmCompileRuntimeModule extends RuntimeModule {
32
35
  generateLoadBinaryCode,
33
36
  generateBeforeLoadBinaryCode,
34
37
  generateBeforeCompileStreaming,
35
- supportsStreaming
38
+ supportsStreaming,
39
+ fullHashDigest
36
40
  }) {
37
41
  super("wasm compile", RuntimeModule.STAGE_NORMAL);
42
+ // A re-encoded digest is inlined from the settled hash, so this has to render
43
+ // again once there is one.
44
+ if (fullHashDigest) {
45
+ /** @type {boolean} */
46
+ this.fullHash = true;
47
+ }
38
48
  /** @type {GenerateLoadBinaryCode} */
39
49
  this.generateLoadBinaryCode = generateLoadBinaryCode;
40
50
  /** @type {GenerateBeforeLoadBinaryCode | undefined} */
@@ -56,24 +66,34 @@ class AsyncWasmCompileRuntimeModule extends RuntimeModule {
56
66
  // Opt-out fallback to non-streaming when the server serves wasm with a wrong MIME type.
57
67
  const streamingFallback = outputOptions.wasmStreamingFallback;
58
68
  const fn = RuntimeGlobals.compileWasm;
59
- const wasmModuleSrcPath = compilation.getPath(
60
- JSON.stringify(outputOptions.webassemblyModuleFilename),
61
- {
62
- hash: `" + ${RuntimeGlobals.getFullHash}() + "`,
63
- hashWithLength: (length) =>
64
- `" + ${RuntimeGlobals.getFullHash}().slice(0, ${length}) + "`,
65
- module: {
66
- id: '" + wasmModuleId + "',
67
- hash: '" + wasmModuleHash + "',
68
- hashWithLength(length) {
69
- return `" + wasmModuleHash.slice(0, ${length}) + "`;
70
- }
71
- },
72
- runtime: chunk.runtime
73
- }
69
+ // Analyzable output bakes the binary's URL into the call site instead.
70
+ const analyzable = runtimeTemplate.supportsAnalyzable(
71
+ "wasm",
72
+ undefined,
73
+ undefined,
74
+ chunk.runtime
74
75
  );
76
+ const wasmModuleSrcPath = analyzable
77
+ ? "wasmModuleUrl"
78
+ : compilation.getPath(
79
+ JSON.stringify(outputOptions.webassemblyModuleFilename),
80
+ {
81
+ ...fullHashPathData(compilation),
82
+ module: {
83
+ id: '" + wasmModuleId + "',
84
+ hash: '" + wasmModuleHash + "',
85
+ hashWithLength(length) {
86
+ return `" + wasmModuleHash.slice(0, ${length}) + "`;
87
+ }
88
+ },
89
+ runtime: chunk.runtime
90
+ }
91
+ );
75
92
 
76
- const loader = this.generateLoadBinaryCode(wasmModuleSrcPath);
93
+ const loader = this.generateLoadBinaryCode(
94
+ wasmModuleSrcPath,
95
+ chunk.runtime
96
+ );
77
97
 
78
98
  // Fallback path: fetch -> arrayBuffer -> WebAssembly.compile
79
99
  const fallback = [
@@ -138,7 +158,7 @@ class AsyncWasmCompileRuntimeModule extends RuntimeModule {
138
158
  };
139
159
 
140
160
  return `${fn} = ${runtimeTemplate.basicFunction(
141
- "wasmModuleId, wasmModuleHash",
161
+ analyzable ? "wasmModuleUrl" : "wasmModuleId, wasmModuleHash",
142
162
  this.supportsStreaming
143
163
  ? getStreaming()
144
164
  : [
@@ -8,12 +8,14 @@
8
8
  const RuntimeGlobals = require("../RuntimeGlobals");
9
9
  const RuntimeModule = require("../RuntimeModule");
10
10
  const Template = require("../Template");
11
+ const { fullHashPathData } = require("../wasm/wasmModuleFilename");
11
12
 
12
- /** @typedef {import("../Chunk")} Chunk */
13
- /** @typedef {import("../Compilation")} Compilation */
13
+ /** @import Chunk from "../Chunk" */
14
+ /** @import Compilation from "../Compilation" */
15
+ /** @import { RuntimeSpec } from "../util/runtime" */
14
16
 
15
17
  /** @typedef {(wasmModuleSrcPath: string) => string} GenerateBeforeLoadBinaryCode */
16
- /** @typedef {(wasmModuleSrcPath: string) => string} GenerateLoadBinaryCode */
18
+ /** @typedef {(wasmModuleSrcPath: string, runtime: RuntimeSpec) => string} GenerateLoadBinaryCode */
17
19
  /** @typedef {() => string} GenerateBeforeInstantiateStreaming */
18
20
 
19
21
  /**
@@ -22,6 +24,7 @@ const Template = require("../Template");
22
24
  * @property {GenerateBeforeLoadBinaryCode=} generateBeforeLoadBinaryCode
23
25
  * @property {GenerateBeforeInstantiateStreaming=} generateBeforeInstantiateStreaming
24
26
  * @property {boolean} supportsStreaming
27
+ * @property {boolean=} fullHashDigest the binary's name inlines a re-encoded compilation hash
25
28
  */
26
29
 
27
30
  class AsyncWasmLoadingRuntimeModule extends RuntimeModule {
@@ -32,9 +35,16 @@ class AsyncWasmLoadingRuntimeModule extends RuntimeModule {
32
35
  generateLoadBinaryCode,
33
36
  generateBeforeLoadBinaryCode,
34
37
  generateBeforeInstantiateStreaming,
35
- supportsStreaming
38
+ supportsStreaming,
39
+ fullHashDigest
36
40
  }) {
37
41
  super("wasm loading", RuntimeModule.STAGE_NORMAL);
42
+ // A re-encoded digest is inlined from the settled hash, so this has to render
43
+ // again once there is one.
44
+ if (fullHashDigest) {
45
+ /** @type {boolean} */
46
+ this.fullHash = true;
47
+ }
38
48
  /** @type {GenerateLoadBinaryCode} */
39
49
  this.generateLoadBinaryCode = generateLoadBinaryCode;
40
50
  /** @type {generateBeforeLoadBinaryCode | undefined} */
@@ -57,24 +67,34 @@ class AsyncWasmLoadingRuntimeModule extends RuntimeModule {
57
67
  // Opt-in fallback to non-streaming when the server serves wasm with a wrong MIME type.
58
68
  const streamingFallback = outputOptions.wasmStreamingFallback;
59
69
  const fn = RuntimeGlobals.instantiateWasm;
60
- const wasmModuleSrcPath = compilation.getPath(
61
- JSON.stringify(outputOptions.webassemblyModuleFilename),
62
- {
63
- hash: `" + ${RuntimeGlobals.getFullHash}() + "`,
64
- hashWithLength: (length) =>
65
- `" + ${RuntimeGlobals.getFullHash}().slice(0, ${length}) + "`,
66
- module: {
67
- id: '" + wasmModuleId + "',
68
- hash: '" + wasmModuleHash + "',
69
- hashWithLength(length) {
70
- return `" + wasmModuleHash.slice(0, ${length}) + "`;
71
- }
72
- },
73
- runtime: chunk.runtime
74
- }
70
+ // Analyzable output bakes the binary's URL into the call site instead.
71
+ const analyzable = runtimeTemplate.supportsAnalyzable(
72
+ "wasm",
73
+ undefined,
74
+ undefined,
75
+ chunk.runtime
75
76
  );
77
+ const wasmModuleSrcPath = analyzable
78
+ ? "wasmModuleUrl"
79
+ : compilation.getPath(
80
+ JSON.stringify(outputOptions.webassemblyModuleFilename),
81
+ {
82
+ ...fullHashPathData(compilation),
83
+ module: {
84
+ id: '" + wasmModuleId + "',
85
+ hash: '" + wasmModuleHash + "',
86
+ hashWithLength(length) {
87
+ return `" + wasmModuleHash.slice(0, ${length}) + "`;
88
+ }
89
+ },
90
+ runtime: chunk.runtime
91
+ }
92
+ );
76
93
 
77
- const loader = this.generateLoadBinaryCode(wasmModuleSrcPath);
94
+ const loader = this.generateLoadBinaryCode(
95
+ wasmModuleSrcPath,
96
+ chunk.runtime
97
+ );
78
98
  const fallback = [
79
99
  `.then(${runtimeTemplate.returningFunction("x.arrayBuffer()", "x")})`,
80
100
  `.then(${runtimeTemplate.returningFunction(
@@ -149,7 +169,9 @@ class AsyncWasmLoadingRuntimeModule extends RuntimeModule {
149
169
  };
150
170
 
151
171
  return `${fn} = ${runtimeTemplate.basicFunction(
152
- "exports, wasmModuleId, wasmModuleHash, importsObj",
172
+ analyzable
173
+ ? "exports, wasmModuleUrl, importsObj"
174
+ : "exports, wasmModuleId, wasmModuleHash, importsObj",
153
175
  this.supportsStreaming
154
176
  ? getStreaming()
155
177
  : [
@@ -7,9 +7,9 @@
7
7
  const NormalModule = require("../NormalModule");
8
8
  const makeSerializable = require("../util/makeSerializable");
9
9
 
10
- /** @typedef {import("../Module")} Module */
11
- /** @typedef {import("../NormalModule").NormalModuleCreateData} NormalModuleCreateData */
12
- /** @typedef {import("../dependencies/ImportPhase").ImportPhaseName} ImportPhaseName */
10
+ /** @import Module from "../Module" */
11
+ /** @import { NormalModuleCreateData } from "../NormalModule" */
12
+ /** @import { ImportPhaseName } from "../dependencies/ImportPhase" */
13
13
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[ImportPhaseName | undefined]>} ObjectDeserializerContext */
14
14
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[ImportPhaseName | undefined]>} ObjectSerializerContext */
15
15
 
@@ -9,11 +9,10 @@ const { RawSource } = require("webpack-sources");
9
9
  const Generator = require("../Generator");
10
10
  const { WEBASSEMBLY_TYPES } = require("../ModuleSourceTypeConstants");
11
11
 
12
- /** @typedef {import("webpack-sources").Source} Source */
13
- /** @typedef {import("../Generator").GenerateContext} GenerateContext */
14
- /** @typedef {import("../Module").SourceType} SourceType */
15
- /** @typedef {import("../Module").SourceTypes} SourceTypes */
16
- /** @typedef {import("../NormalModule")} NormalModule */
12
+ /** @import { Source } from "webpack-sources" */
13
+ /** @import { GenerateContext } from "../Generator" */
14
+ /** @import { SourceType, SourceTypes } from "../Module" */
15
+ /** @import NormalModule from "../NormalModule" */
17
16
 
18
17
  /**
19
18
  * Represents the async web assembly generator runtime component.