@depup/webpack 5.106.1-depup.0 → 5.109.2-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (669) hide show
  1. package/README.md +9 -11
  2. package/bin/webpack.js +12 -0
  3. package/changes.json +16 -24
  4. package/hot/dev-server.js +2 -0
  5. package/lib/APIPlugin.js +60 -35
  6. package/lib/AsyncDependenciesBlock.js +3 -0
  7. package/lib/AutomaticPrefetchPlugin.js +6 -1
  8. package/lib/BannerPlugin.js +13 -5
  9. package/lib/Cache.js +27 -5
  10. package/lib/CacheFacade.js +41 -0
  11. package/lib/Chunk.js +71 -25
  12. package/lib/ChunkGraph.js +153 -19
  13. package/lib/ChunkGroup.js +115 -28
  14. package/lib/ChunkTemplate.js +9 -0
  15. package/lib/CircularModulesPlugin.js +190 -0
  16. package/lib/CleanPlugin.js +27 -28
  17. package/lib/CodeGenerationResults.js +19 -0
  18. package/lib/CompatibilityPlugin.js +85 -37
  19. package/lib/Compilation.js +656 -112
  20. package/lib/Compiler.js +109 -35
  21. package/lib/ConcatenationScope.js +34 -4
  22. package/lib/ConditionalInitFragment.js +6 -0
  23. package/lib/ConstPlugin.js +15 -12
  24. package/lib/ContextExclusionPlugin.js +3 -1
  25. package/lib/ContextModule.js +345 -55
  26. package/lib/ContextModuleFactory.js +193 -51
  27. package/lib/ContextReplacementPlugin.js +8 -1
  28. package/lib/DefinePlugin.js +537 -139
  29. package/lib/DependenciesBlock.js +6 -1
  30. package/lib/Dependency.js +159 -11
  31. package/lib/DependencyTemplate.js +7 -1
  32. package/lib/DependencyTemplates.js +4 -0
  33. package/lib/DotenvPlugin.js +3 -0
  34. package/lib/DynamicEntryPlugin.js +3 -1
  35. package/lib/EntryOptionPlugin.js +42 -2
  36. package/lib/EntryPlugin.js +4 -1
  37. package/lib/Entrypoint.js +5 -1
  38. package/lib/EnvironmentPlugin.js +3 -2
  39. package/lib/ErrorHelpers.js +7 -0
  40. package/lib/EvalDevToolModulePlugin.js +3 -1
  41. package/lib/EvalSourceMapDevToolPlugin.js +11 -11
  42. package/lib/ExportsInfo.js +421 -113
  43. package/lib/ExportsInfoApiPlugin.js +4 -3
  44. package/lib/ExternalModule.js +381 -80
  45. package/lib/ExternalModuleFactoryPlugin.js +75 -3
  46. package/lib/ExternalsPlugin.js +3 -1
  47. package/lib/FileSystemInfo.js +701 -175
  48. package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
  49. package/lib/FlagDependencyExportsPlugin.js +82 -9
  50. package/lib/FlagDependencyUsagePlugin.js +115 -8
  51. package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
  52. package/lib/Generator.js +24 -3
  53. package/lib/HotModuleReplacementPlugin.js +110 -44
  54. package/lib/IgnorePlugin.js +5 -2
  55. package/lib/IgnoreWarningsPlugin.js +2 -1
  56. package/lib/InitFragment.js +33 -30
  57. package/lib/JavascriptMetaInfoPlugin.js +9 -6
  58. package/lib/LazyBarrel.js +389 -0
  59. package/lib/LibraryTemplatePlugin.js +2 -1
  60. package/lib/LoaderOptionsPlugin.js +3 -1
  61. package/lib/LoaderTargetPlugin.js +3 -1
  62. package/lib/MainTemplate.js +15 -0
  63. package/lib/ManifestPlugin.js +9 -2
  64. package/lib/Module.js +121 -57
  65. package/lib/ModuleFactory.js +6 -1
  66. package/lib/ModuleFilenameHelpers.js +18 -4
  67. package/lib/ModuleGraph.js +69 -2
  68. package/lib/ModuleGraphConnection.js +9 -0
  69. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  70. package/lib/ModuleNotFoundError.js +3 -83
  71. package/lib/ModuleProfile.js +27 -1
  72. package/lib/ModuleSourceTypeConstants.js +52 -19
  73. package/lib/ModuleTemplate.js +10 -0
  74. package/lib/ModuleTypeConstants.js +20 -4
  75. package/lib/MultiCompiler.js +59 -4
  76. package/lib/MultiStats.js +9 -0
  77. package/lib/MultiWatching.js +6 -0
  78. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  79. package/lib/NodeStuffPlugin.js +78 -46
  80. package/lib/NormalModule.js +519 -206
  81. package/lib/NormalModuleFactory.js +156 -31
  82. package/lib/NormalModuleReplacementPlugin.js +3 -1
  83. package/lib/NullFactory.js +1 -0
  84. package/lib/OptionsApply.js +1 -0
  85. package/lib/Parser.js +3 -1
  86. package/lib/PlatformPlugin.js +2 -1
  87. package/lib/PrefetchPlugin.js +4 -1
  88. package/lib/ProgressPlugin.js +351 -161
  89. package/lib/ProvidePlugin.js +6 -3
  90. package/lib/RawModule.js +32 -16
  91. package/lib/RecordIdsPlugin.js +9 -0
  92. package/lib/RequestShortener.js +8 -0
  93. package/lib/ResolverFactory.js +5 -0
  94. package/lib/RuntimeGlobals.js +58 -5
  95. package/lib/RuntimeModule.js +22 -7
  96. package/lib/RuntimePlugin.js +123 -118
  97. package/lib/RuntimeTemplate.js +616 -37
  98. package/lib/SelfModuleFactory.js +3 -0
  99. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  100. package/lib/SourceMapDevToolPlugin.js +341 -63
  101. package/lib/Stats.js +6 -0
  102. package/lib/Template.js +52 -6
  103. package/lib/TemplatedPathPlugin.js +505 -138
  104. package/lib/UseStrictPlugin.js +3 -2
  105. package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
  106. package/lib/WarnDeprecatedOptionPlugin.js +6 -2
  107. package/lib/WarnNoModeSetPlugin.js +18 -2
  108. package/lib/WatchIgnorePlugin.js +5 -1
  109. package/lib/Watching.js +25 -3
  110. package/lib/WebpackError.js +3 -74
  111. package/lib/WebpackIsIncludedPlugin.js +4 -2
  112. package/lib/WebpackOptionsApply.js +88 -25
  113. package/lib/WebpackOptionsDefaulter.js +1 -0
  114. package/lib/asset/AssetBytesGenerator.js +28 -10
  115. package/lib/asset/AssetBytesParser.js +1 -0
  116. package/lib/asset/AssetGenerator.js +199 -60
  117. package/lib/asset/AssetModule.js +47 -0
  118. package/lib/asset/AssetModulesPlugin.js +115 -24
  119. package/lib/asset/AssetParser.js +4 -2
  120. package/lib/asset/AssetSourceGenerator.js +26 -8
  121. package/lib/asset/AssetSourceParser.js +1 -0
  122. package/lib/asset/RawDataUrlModule.js +23 -13
  123. package/lib/asset/WebManifestGenerator.js +164 -0
  124. package/lib/asset/WebManifestParser.js +130 -0
  125. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  126. package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
  127. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  128. package/lib/async-modules/isGeneratorLowered.js +26 -0
  129. package/lib/buildChunkGraph.js +107 -15
  130. package/lib/bun/BunTargetPlugin.js +42 -0
  131. package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
  132. package/lib/cache/AddManagedPathsPlugin.js +5 -1
  133. package/lib/cache/IdleFileCachePlugin.js +6 -1
  134. package/lib/cache/MemoryCachePlugin.js +1 -1
  135. package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
  136. package/lib/cache/PackFileCacheStrategy.js +302 -12
  137. package/lib/cache/ResolverCachePlugin.js +12 -1
  138. package/lib/cache/getLazyHashedEtag.js +13 -2
  139. package/lib/cache/mergeEtags.js +4 -0
  140. package/lib/cli.js +142 -20
  141. package/lib/config/browserslistTargetHandler.js +141 -0
  142. package/lib/config/defaults.js +612 -43
  143. package/lib/config/defineConfig.js +31 -0
  144. package/lib/config/normalization.js +46 -1
  145. package/lib/config/target.js +200 -2
  146. package/lib/container/ContainerEntryDependency.js +2 -0
  147. package/lib/container/ContainerEntryModule.js +27 -14
  148. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  149. package/lib/container/ContainerExposedDependency.js +6 -2
  150. package/lib/container/ContainerPlugin.js +2 -1
  151. package/lib/container/ContainerReferencePlugin.js +3 -2
  152. package/lib/container/FallbackDependency.js +9 -7
  153. package/lib/container/FallbackItemDependency.js +1 -0
  154. package/lib/container/FallbackModule.js +22 -9
  155. package/lib/container/FallbackModuleFactory.js +1 -0
  156. package/lib/container/HoistContainerReferencesPlugin.js +47 -55
  157. package/lib/container/ModuleFederationPlugin.js +21 -29
  158. package/lib/container/RemoteModule.js +33 -10
  159. package/lib/container/RemoteRuntimeModule.js +15 -12
  160. package/lib/container/RemoteToExternalDependency.js +1 -0
  161. package/lib/container/options.js +7 -0
  162. package/lib/css/CssGenerator.js +540 -272
  163. package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
  164. package/lib/css/CssLoadingRuntimeModule.js +173 -81
  165. package/lib/{CssModule.js → css/CssModule.js} +72 -37
  166. package/lib/css/CssModulesPlugin.js +371 -208
  167. package/lib/css/CssParser.js +3538 -1963
  168. package/lib/css/syntax.js +4155 -0
  169. package/lib/debug/ProfilingPlugin.js +33 -2
  170. package/lib/deno/DenoTargetPlugin.js +41 -0
  171. package/lib/dependencies/AMDDefineDependency.js +29 -17
  172. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
  173. package/lib/dependencies/AMDPlugin.js +6 -3
  174. package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
  175. package/lib/dependencies/AMDRequireContextDependency.js +10 -11
  176. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  177. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
  178. package/lib/dependencies/AMDRequireDependency.js +28 -20
  179. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  180. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  181. package/lib/dependencies/CachedConstDependency.js +9 -1
  182. package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
  183. package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
  184. package/lib/dependencies/CommonJsExportsDependency.js +74 -20
  185. package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
  186. package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
  187. package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
  188. package/lib/dependencies/CommonJsPlugin.js +7 -4
  189. package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
  190. package/lib/dependencies/CommonJsRequireDependency.js +135 -13
  191. package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
  192. package/lib/dependencies/ConstDependency.js +22 -12
  193. package/lib/dependencies/ContextDependency.js +13 -2
  194. package/lib/dependencies/ContextDependencyHelpers.js +7 -4
  195. package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
  196. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  197. package/lib/dependencies/ContextElementDependency.js +27 -14
  198. package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
  199. package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
  200. package/lib/dependencies/CriticalDependencyWarning.js +3 -1
  201. package/lib/dependencies/CssIcssExportDependency.js +681 -367
  202. package/lib/dependencies/CssIcssImportDependency.js +62 -17
  203. package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
  204. package/lib/dependencies/CssImportDependency.js +37 -1
  205. package/lib/dependencies/CssUrlDependency.js +87 -14
  206. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  207. package/lib/dependencies/DllEntryDependency.js +12 -13
  208. package/lib/dependencies/DynamicExports.js +5 -0
  209. package/lib/dependencies/EntryDependency.js +1 -0
  210. package/lib/dependencies/ExportBindingInitFragment.js +164 -0
  211. package/lib/dependencies/ExportsInfoDependency.js +18 -12
  212. package/lib/dependencies/ExternalModuleDependency.js +13 -5
  213. package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
  214. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
  215. package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
  216. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
  217. package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
  218. package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
  219. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
  220. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
  221. package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
  222. package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
  223. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
  224. package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
  225. package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
  226. package/lib/dependencies/HarmonyExports.js +6 -1
  227. package/lib/dependencies/HarmonyImportDependency.js +60 -4
  228. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
  229. package/lib/dependencies/HarmonyImportGuard.js +427 -0
  230. package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
  231. package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
  232. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
  233. package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
  234. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
  235. package/lib/dependencies/HtmlEntryDependency.js +1295 -0
  236. package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
  237. package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
  238. package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
  239. package/lib/dependencies/HtmlSourceDependency.js +172 -0
  240. package/lib/dependencies/ImportContextDependency.js +9 -9
  241. package/lib/dependencies/ImportDependency.js +92 -3
  242. package/lib/dependencies/ImportEagerDependency.js +2 -0
  243. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  244. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
  245. package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
  246. package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
  247. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
  248. package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
  249. package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
  250. package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
  251. package/lib/dependencies/ImportMetaPlugin.js +595 -209
  252. package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
  253. package/lib/dependencies/ImportParserPlugin.js +114 -27
  254. package/lib/dependencies/ImportPhase.js +17 -11
  255. package/lib/dependencies/ImportPlugin.js +2 -1
  256. package/lib/dependencies/ImportWeakDependency.js +3 -0
  257. package/lib/dependencies/JsonExportsDependency.js +15 -10
  258. package/lib/dependencies/LoaderDependency.js +2 -0
  259. package/lib/dependencies/LoaderImportDependency.js +3 -0
  260. package/lib/dependencies/LoaderPlugin.js +9 -2
  261. package/lib/dependencies/LocalModule.js +15 -12
  262. package/lib/dependencies/LocalModuleDependency.js +15 -13
  263. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  264. package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
  265. package/lib/dependencies/ModuleDependency.js +14 -0
  266. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  267. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  268. package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
  269. package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
  270. package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
  271. package/lib/dependencies/NullDependency.js +2 -0
  272. package/lib/dependencies/PrefetchDependency.js +1 -0
  273. package/lib/dependencies/ProvidedDependency.js +36 -27
  274. package/lib/dependencies/PureExpressionDependency.js +14 -10
  275. package/lib/dependencies/RequireContextDependency.js +1 -0
  276. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
  277. package/lib/dependencies/RequireContextPlugin.js +2 -1
  278. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  279. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
  280. package/lib/dependencies/RequireEnsureDependency.js +16 -13
  281. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  282. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  283. package/lib/dependencies/RequireHeaderDependency.js +7 -4
  284. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  285. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
  286. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  287. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
  288. package/lib/dependencies/RequireResolveContextDependency.js +10 -11
  289. package/lib/dependencies/RequireResolveDependency.js +2 -0
  290. package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
  291. package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
  292. package/lib/dependencies/StaticExportsDependency.js +13 -10
  293. package/lib/dependencies/SystemPlugin.js +9 -6
  294. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  295. package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
  296. package/lib/dependencies/URLContextDependency.js +8 -7
  297. package/lib/dependencies/URLDependency.js +157 -33
  298. package/lib/dependencies/URLPlugin.js +2 -0
  299. package/lib/dependencies/UnsupportedDependency.js +12 -13
  300. package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
  301. package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
  302. package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
  303. package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
  304. package/lib/dependencies/WorkerDependency.js +111 -27
  305. package/lib/dependencies/WorkletDependency.js +278 -0
  306. package/lib/dependencies/getFunctionExpression.js +1 -0
  307. package/lib/dependencies/processExportInfo.js +14 -11
  308. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
  309. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
  310. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
  311. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
  312. package/lib/{DllModule.js → dll/DllModule.js} +36 -24
  313. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
  314. package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
  315. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
  316. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
  317. package/lib/electron/ElectronTargetPlugin.js +24 -5
  318. package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
  319. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
  320. package/lib/errors/BuildCycleError.js +1 -1
  321. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  322. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  323. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
  324. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
  325. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
  326. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
  327. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
  328. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
  329. package/lib/errors/JSONParseError.js +115 -0
  330. package/lib/errors/LoaderLoadingError.js +20 -0
  331. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
  332. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
  333. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
  334. package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
  335. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
  336. package/lib/errors/ModuleNotFoundError.js +94 -0
  337. package/lib/errors/ModuleParseError.js +141 -0
  338. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
  339. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
  340. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
  341. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
  342. package/lib/errors/NonErrorEmittedError.js +30 -0
  343. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
  344. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
  345. package/lib/errors/WebpackError.js +84 -0
  346. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  347. package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
  348. package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
  349. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
  350. package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
  351. package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
  352. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
  353. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  354. package/lib/hmr/LazyCompilationPlugin.js +154 -7
  355. package/lib/hmr/lazyCompilationBackend.js +53 -12
  356. package/lib/html/HtmlGenerator.js +1490 -0
  357. package/lib/html/HtmlModule.js +41 -0
  358. package/lib/html/HtmlModulesPlugin.js +1129 -0
  359. package/lib/html/HtmlParser.js +1970 -0
  360. package/lib/html/favicon.svg +1 -0
  361. package/lib/html/syntax.js +9106 -0
  362. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  363. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  364. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  365. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  366. package/lib/ids/IdHelpers.js +49 -12
  367. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  368. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  369. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  370. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  371. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  372. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  373. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  374. package/lib/index.js +66 -15
  375. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
  376. package/lib/javascript/BasicEvaluatedExpression.js +370 -49
  377. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  378. package/lib/javascript/ChunkHelpers.js +1 -0
  379. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  380. package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
  381. package/lib/javascript/JavascriptGenerator.js +213 -51
  382. package/lib/javascript/JavascriptModule.js +54 -0
  383. package/lib/javascript/JavascriptModulesPlugin.js +628 -198
  384. package/lib/javascript/JavascriptParser.js +1334 -471
  385. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  386. package/lib/javascript/StartupHelpers.js +5 -0
  387. package/lib/javascript/syntax.js +5037 -0
  388. package/lib/json/JsonData.js +5 -0
  389. package/lib/json/JsonGenerator.js +21 -0
  390. package/lib/json/JsonModule.js +40 -0
  391. package/lib/json/JsonModulesPlugin.js +8 -1
  392. package/lib/json/JsonParser.js +18 -27
  393. package/lib/library/AbstractLibraryPlugin.js +17 -2
  394. package/lib/library/AmdLibraryPlugin.js +8 -0
  395. package/lib/library/AssignLibraryPlugin.js +21 -3
  396. package/lib/library/EnableLibraryPlugin.js +8 -2
  397. package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
  398. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
  399. package/lib/library/JsonpLibraryPlugin.js +8 -0
  400. package/lib/library/ModuleLibraryPlugin.js +154 -7
  401. package/lib/library/SystemLibraryPlugin.js +11 -3
  402. package/lib/library/UmdLibraryPlugin.js +16 -0
  403. package/lib/loaders/LoaderRunner.js +714 -0
  404. package/lib/loaders/loadLoader.js +100 -0
  405. package/lib/logging/Logger.js +17 -0
  406. package/lib/logging/createConsoleLogger.js +7 -0
  407. package/lib/logging/runtime.js +2 -0
  408. package/lib/logging/truncateArgs.js +2 -0
  409. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  410. package/lib/node/NodeEnvironmentPlugin.js +7 -3
  411. package/lib/node/NodeSourcePlugin.js +1 -1
  412. package/lib/node/NodeTargetPlugin.js +4 -63
  413. package/lib/node/NodeTemplatePlugin.js +3 -1
  414. package/lib/node/NodeWatchFileSystem.js +40 -22
  415. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
  416. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
  417. package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
  418. package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
  419. package/lib/node/nodeBuiltins.js +80 -0
  420. package/lib/node/nodeConsole.js +116 -64
  421. package/lib/optimize/AggressiveMergingPlugin.js +22 -16
  422. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  423. package/lib/optimize/ConcatenatedModule.js +603 -130
  424. package/lib/optimize/ConstExportsPlugin.js +211 -0
  425. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  426. package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
  427. package/lib/optimize/InlineExports.js +178 -0
  428. package/lib/optimize/InnerGraph.js +374 -262
  429. package/lib/optimize/InnerGraphPlugin.js +246 -117
  430. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  431. package/lib/optimize/MangleExportsPlugin.js +5 -1
  432. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  433. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  434. package/lib/optimize/MinMaxSizeWarning.js +5 -4
  435. package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
  436. package/lib/optimize/RealContentHashPlugin.js +130 -52
  437. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  438. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  439. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  440. package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
  441. package/lib/optimize/SplitChunksPlugin.js +200 -50
  442. package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
  443. package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
  444. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  445. package/lib/performance/SizeLimitsPlugin.js +8 -2
  446. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  447. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
  448. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  449. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
  450. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
  451. package/lib/prefetch/ResourceHintPlugin.js +687 -0
  452. package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
  453. package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
  454. package/lib/prefetch/parseResourceHintOptions.js +103 -0
  455. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  456. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  457. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  458. package/lib/rules/RuleSetCompiler.js +132 -0
  459. package/lib/rules/UseEffectRulePlugin.js +10 -3
  460. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
  461. package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
  462. package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
  463. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  464. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  465. package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
  466. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
  467. package/lib/runtime/CompatRuntimeModule.js +2 -0
  468. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
  469. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  470. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  471. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
  472. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  473. package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
  474. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  475. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  476. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
  477. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
  478. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  479. package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
  480. package/lib/runtime/HelperRuntimeModule.js +5 -0
  481. package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
  482. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
  483. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
  484. package/lib/runtime/NonceRuntimeModule.js +1 -0
  485. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
  486. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  487. package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
  488. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  489. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
  490. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  491. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
  492. package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
  493. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  494. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  495. package/lib/runtime/WorkerRuntimeModule.js +33 -0
  496. package/lib/schemes/DataUriPlugin.js +14 -2
  497. package/lib/schemes/FileUriPlugin.js +1 -1
  498. package/lib/schemes/HttpUriPlugin.js +86 -4
  499. package/lib/schemes/VirtualUrlPlugin.js +8 -4
  500. package/lib/serialization/AggregateErrorSerializer.js +9 -6
  501. package/lib/serialization/ArraySerializer.js +6 -8
  502. package/lib/serialization/BinaryMiddleware.js +427 -1006
  503. package/lib/serialization/DateObjectSerializer.js +4 -2
  504. package/lib/serialization/ErrorObjectSerializer.js +10 -6
  505. package/lib/serialization/FileMiddleware.js +345 -59
  506. package/lib/serialization/MapObjectSerializer.js +7 -9
  507. package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
  508. package/lib/serialization/ObjectMiddleware.js +73 -13
  509. package/lib/serialization/PlainObjectSerializer.js +16 -8
  510. package/lib/serialization/RegExpObjectSerializer.js +4 -2
  511. package/lib/serialization/Serializer.js +6 -0
  512. package/lib/serialization/SerializerMiddleware.js +14 -2
  513. package/lib/serialization/SetObjectSerializer.js +6 -8
  514. package/lib/serialization/SingleItemMiddleware.js +3 -0
  515. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  516. package/lib/sharing/ConsumeSharedModule.js +21 -7
  517. package/lib/sharing/ConsumeSharedPlugin.js +11 -11
  518. package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
  519. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  520. package/lib/sharing/ProvideSharedDependency.js +34 -15
  521. package/lib/sharing/ProvideSharedModule.js +42 -12
  522. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  523. package/lib/sharing/ProvideSharedPlugin.js +13 -8
  524. package/lib/sharing/SharePlugin.js +5 -1
  525. package/lib/sharing/ShareRuntimeModule.js +19 -16
  526. package/lib/sharing/resolveMatchedConfigs.js +6 -2
  527. package/lib/sharing/utils.js +9 -1
  528. package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
  529. package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
  530. package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
  531. package/lib/stats/StatsFactory.js +70 -27
  532. package/lib/stats/StatsPrinter.js +16 -2
  533. package/lib/typescript/TypeScriptPlugin.js +210 -0
  534. package/lib/url/URLParserPlugin.js +111 -23
  535. package/lib/util/ArrayHelpers.js +1 -0
  536. package/lib/util/ArrayQueue.js +10 -5
  537. package/lib/util/AsyncQueue.js +154 -74
  538. package/lib/util/Hash.js +2 -2
  539. package/lib/util/IterableHelpers.js +3 -0
  540. package/lib/util/LazyBucketSortedSet.js +26 -0
  541. package/lib/util/LazySet.js +45 -4
  542. package/lib/util/LocConverter.js +64 -0
  543. package/lib/util/ParallelismFactorCalculator.js +1 -0
  544. package/lib/util/Queue.js +6 -3
  545. package/lib/util/Semaphore.js +15 -1
  546. package/lib/util/SetHelpers.js +4 -1
  547. package/lib/util/SortableSet.js +7 -1
  548. package/lib/util/SourceProcessor.js +119 -0
  549. package/lib/util/StackedCacheMap.js +20 -3
  550. package/lib/util/StackedMap.js +162 -43
  551. package/lib/util/StringXor.js +1 -1
  552. package/lib/util/TupleQueue.js +7 -3
  553. package/lib/util/TupleSet.js +14 -0
  554. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  555. package/lib/util/WeakTupleMap.js +60 -1
  556. package/lib/util/binarySearchBounds.js +3 -2
  557. package/lib/util/chainedImports.js +3 -3
  558. package/lib/util/cleverMerge.js +19 -2
  559. package/lib/util/comparators.js +35 -4
  560. package/lib/util/compileBooleanMatcher.js +9 -0
  561. package/lib/util/concatenate.js +80 -24
  562. package/lib/util/conventions.js +46 -1
  563. package/lib/util/createHash.js +0 -1
  564. package/lib/util/createHooksRegistry.js +43 -0
  565. package/lib/util/createMappings.js +118 -0
  566. package/lib/util/dataURL.js +3 -2
  567. package/lib/util/deprecation.js +19 -0
  568. package/lib/util/deterministicGrouping.js +46 -17
  569. package/lib/util/extractSourceMap.js +2 -1
  570. package/lib/util/extractUrlAndGlobal.js +1 -0
  571. package/lib/util/findGraphRoots.js +7 -0
  572. package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
  573. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
  574. package/lib/util/fs.js +87 -14
  575. package/lib/util/generateDebugId.js +1 -0
  576. package/lib/util/globUtils.js +710 -0
  577. package/lib/util/hash/BatchedHash.js +1 -0
  578. package/lib/util/hash/BulkUpdateHash.js +1 -0
  579. package/lib/util/hash/DebugHash.js +1 -0
  580. package/lib/util/hash/hash-digest.js +32 -15
  581. package/lib/util/hash/md4.js +1 -1
  582. package/lib/util/hash/wasm-hash.js +5 -0
  583. package/lib/util/hash/xxhash64.js +1 -1
  584. package/lib/util/identifier.js +118 -7
  585. package/lib/util/implicitTypeLoaderFallback.js +62 -0
  586. package/lib/util/internalSerializables.js +102 -60
  587. package/lib/util/magicComment.js +149 -7
  588. package/lib/util/makeSerializable.js +7 -0
  589. package/lib/util/memoize.js +2 -0
  590. package/lib/util/mimeTypes.js +176 -0
  591. package/lib/util/nonNumericOnlyHash.js +31 -1
  592. package/lib/util/numberHash.js +2 -2
  593. package/lib/util/parseJson.js +41 -0
  594. package/lib/util/processAsyncTree.js +8 -0
  595. package/lib/util/property.js +9 -2
  596. package/lib/util/publicPathPlaceholder.js +64 -0
  597. package/lib/util/registerExternalSerializer.js +24 -4
  598. package/lib/util/removeBOM.js +1 -0
  599. package/lib/util/runtime.js +32 -0
  600. package/lib/util/semver.js +15 -0
  601. package/lib/util/serialization.js +2 -0
  602. package/lib/util/smartGrouping.js +8 -0
  603. package/lib/util/source.js +23 -0
  604. package/lib/util/topologicalSort.js +69 -0
  605. package/lib/validateSchema.js +1 -0
  606. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  607. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
  608. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
  609. package/lib/wasm-async/AsyncWasmModule.js +77 -0
  610. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  611. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
  612. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
  613. package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
  614. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
  615. package/lib/wasm-sync/SyncWasmModule.js +39 -0
  616. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
  617. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
  618. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
  619. package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
  620. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
  621. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  622. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
  623. package/lib/wasm-sync/WebAssemblyParser.js +9 -3
  624. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  625. package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
  626. package/lib/web/FetchCompileWasmPlugin.js +27 -1
  627. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  628. package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
  629. package/lib/web/JsonpTemplatePlugin.js +2 -1
  630. package/lib/webpack.js +78 -1
  631. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  632. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
  633. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  634. package/module.d.ts +21 -0
  635. package/package.json +79 -77
  636. package/schemas/WebpackOptions.check.js +1 -1
  637. package/schemas/WebpackOptions.json +1173 -80
  638. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  639. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  640. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  641. package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
  642. package/schemas/plugins/HtmlParserOptions.check.js +6 -0
  643. package/schemas/plugins/HtmlParserOptions.json +3 -0
  644. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  645. package/schemas/plugins/ProgressPlugin.json +38 -0
  646. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  647. package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
  648. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  649. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  650. package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
  651. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
  652. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  653. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  654. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  655. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  656. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  657. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  658. package/types.d.ts +11053 -3019
  659. package/lib/CaseSensitiveModulesWarning.js +0 -72
  660. package/lib/GraphHelpers.js +0 -46
  661. package/lib/ModuleParseError.js +0 -125
  662. package/lib/NoModeWarning.js +0 -23
  663. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
  664. package/lib/css/walkCssTokens.js +0 -1843
  665. package/lib/util/AppendOnlyStackedSet.js +0 -78
  666. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  667. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  668. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  669. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
@@ -11,11 +11,13 @@
11
11
  /** @typedef {(SemVerRangeItem | SemVerRangeItem[])[]} SemVerRange */
12
12
 
13
13
  /**
14
+ * Returns parsed version.
14
15
  * @param {string} str version string
15
16
  * @returns {SemVerRange} parsed version
16
17
  */
17
18
  const parseVersion = (str) => {
18
19
  /**
20
+ * Returns result.
19
21
  * @param {str} str str
20
22
  * @returns {VersionValue[]} result
21
23
  */
@@ -49,6 +51,7 @@ module.exports.parseVersion = parseVersion;
49
51
 
50
52
  /* eslint-disable eqeqeq */
51
53
  /**
54
+ * Returns true, iff a < b.
52
55
  * @param {string} a version
53
56
  * @param {string} b version
54
57
  * @returns {boolean} true, iff a < b
@@ -98,11 +101,13 @@ const versionLt = (a, b) => {
98
101
  module.exports.versionLt = versionLt;
99
102
 
100
103
  /**
104
+ * Returns parsed range.
101
105
  * @param {string} str range string
102
106
  * @returns {SemVerRange} parsed range
103
107
  */
104
108
  module.exports.parseRange = (str) => {
105
109
  /**
110
+ * Returns result.
106
111
  * @param {string} str str
107
112
  * @returns {VersionValue[]} result
108
113
  */
@@ -114,6 +119,7 @@ module.exports.parseRange = (str) => {
114
119
 
115
120
  // see https://docs.npmjs.com/misc/semver#range-grammar for grammar
116
121
  /**
122
+ * Returns the sem ver range item.
117
123
  * @param {string} str str
118
124
  * @returns {SemVerRangeItem[]}
119
125
  */
@@ -143,6 +149,7 @@ module.exports.parseRange = (str) => {
143
149
  };
144
150
 
145
151
  /**
152
+ * Returns the sem ver range item.
146
153
  *
147
154
  * @param {SemVerRangeItem[]} range range
148
155
  * @returns {SemVerRangeItem[]}
@@ -163,6 +170,7 @@ module.exports.parseRange = (str) => {
163
170
  };
164
171
 
165
172
  /**
173
+ * Returns result.
166
174
  *
167
175
  * @param {SemVerRangeItem[]} range
168
176
  * @returns {SemVerRangeItem[]} result
@@ -172,6 +180,7 @@ module.exports.parseRange = (str) => {
172
180
  };
173
181
 
174
182
  /**
183
+ * Returns the sem ver range.
175
184
  * @param {string} str str
176
185
  * @returns {SemVerRange}
177
186
  */
@@ -230,6 +239,7 @@ module.exports.parseRange = (str) => {
230
239
  };
231
240
 
232
241
  /**
242
+ * Returns result.
233
243
  *
234
244
  * @param {SemVerRangeItem[][]} items items
235
245
  * @param {number} fn fn
@@ -251,6 +261,7 @@ module.exports.parseRange = (str) => {
251
261
  };
252
262
 
253
263
  /**
264
+ * Returns the sem ver range.
254
265
  * @param {string} str str
255
266
  * @returns {SemVerRange}
256
267
  */
@@ -291,6 +302,7 @@ module.exports.parseRange = (str) => {
291
302
  };
292
303
 
293
304
  /**
305
+ * Returns the sem ver range.
294
306
  * @param {string} str str
295
307
  * @returns {SemVerRange}
296
308
  */
@@ -309,6 +321,7 @@ module.exports.parseRange = (str) => {
309
321
 
310
322
  /* eslint-disable eqeqeq */
311
323
  /**
324
+ * Returns the string.
312
325
  * @param {SemVerRange} range
313
326
  * @returns {string}
314
327
  */
@@ -370,6 +383,7 @@ const rangeToString = (range) => {
370
383
  module.exports.rangeToString = rangeToString;
371
384
 
372
385
  /**
386
+ * Returns if version satisfy the range.
373
387
  * @param {SemVerRange} range version range
374
388
  * @param {string} version the version
375
389
  * @returns {boolean} if version satisfy the range
@@ -531,6 +545,7 @@ const satisfy = (range, version) => {
531
545
  module.exports.satisfy = satisfy;
532
546
 
533
547
  /**
548
+ * Returns the string.
534
549
  * @param {SemVerRange | string | number | false | undefined} json
535
550
  * @returns {string}
536
551
  */
@@ -13,6 +13,7 @@ const memoize = require("./memoize");
13
13
  /** @typedef {import("../util/fs").IntermediateFileSystem} IntermediateFileSystem */
14
14
 
15
15
  /**
16
+ * Defines the serializer type used by this module.
16
17
  * @template D, S, C
17
18
  * @typedef {import("../serialization/Serializer")<D, S, C>} Serializer
18
19
  */
@@ -109,6 +110,7 @@ module.exports = {
109
110
  );
110
111
  },
111
112
  /**
113
+ * Creates a file serializer.
112
114
  * @template D, S, C
113
115
  * @param {IntermediateFileSystem} fs filesystem
114
116
  * @param {HashFunction} hashFunction hash function to use
@@ -6,6 +6,7 @@
6
6
  "use strict";
7
7
 
8
8
  /**
9
+ * Defines the group options type used by this module.
9
10
  * @typedef {object} GroupOptions
10
11
  * @property {boolean=} groupChildren
11
12
  * @property {boolean=} force
@@ -13,6 +14,7 @@
13
14
  */
14
15
 
15
16
  /**
17
+ * Defines the group config type used by this module.
16
18
  * @template I
17
19
  * @template G
18
20
  * @typedef {object} GroupConfig
@@ -22,17 +24,20 @@
22
24
  */
23
25
 
24
26
  /**
27
+ * Defines the group type used by this module.
25
28
  * @template I
26
29
  * @template G
27
30
  * @typedef {{ config: GroupConfig<I, G>, name: string, alreadyGrouped: boolean, items: Items<I, G> | undefined }} Group
28
31
  */
29
32
 
30
33
  /**
34
+ * Defines the groups type used by this module.
31
35
  * @template I, G
32
36
  * @typedef {Set<Group<I, G>>} Groups
33
37
  */
34
38
 
35
39
  /**
40
+ * Defines the item with groups type used by this module.
36
41
  * @template I
37
42
  * @template G
38
43
  * @typedef {object} ItemWithGroups
@@ -41,11 +46,13 @@
41
46
  */
42
47
 
43
48
  /**
49
+ * Defines the items type used by this module.
44
50
  * @template T, G
45
51
  * @typedef {Set<ItemWithGroups<T, G>>} Items
46
52
  */
47
53
 
48
54
  /**
55
+ * Returns grouped items.
49
56
  * @template I
50
57
  * @template G
51
58
  * @template R
@@ -90,6 +97,7 @@ const smartGrouping = (items, groupConfigs) => {
90
97
  }
91
98
 
92
99
  /**
100
+ * Returns groups items.
93
101
  * @param {Items<I, G>} itemsWithGroups input items with groups
94
102
  * @returns {(I | G)[]} groups items
95
103
  */
@@ -6,11 +6,13 @@
6
6
  "use strict";
7
7
 
8
8
  /** @typedef {import("webpack-sources").Source} Source */
9
+ /** @typedef {import("./Hash")} Hash */
9
10
 
10
11
  /** @type {WeakMap<Source, WeakMap<Source, boolean>>} */
11
12
  const equalityCache = new WeakMap();
12
13
 
13
14
  /**
15
+ * Checks whether source equal true, when both sources are equal.
14
16
  * @param {Source} a a source
15
17
  * @param {Source} b another source
16
18
  * @returns {boolean} true, when both sources are equal
@@ -29,6 +31,7 @@ const _isSourceEqual = (a, b) => {
29
31
  };
30
32
 
31
33
  /**
34
+ * Checks whether this object is source equal.
32
35
  * @param {Source} a a source
33
36
  * @param {Source} b another source
34
37
  * @returns {boolean} true, when both sources are equal
@@ -59,4 +62,24 @@ const isSourceEqual = (a, b) => {
59
62
  return result;
60
63
  };
61
64
 
65
+ // TODO remove in webpack 6, this is protection against authors who directly use `webpack-sources` outdated version
66
+ /**
67
+ * Feeds the Source's content into a Hash without forcing a single
68
+ * concatenated Buffer. Uses webpack-sources >= 3.4.0 `buffers()` when
69
+ * available so `ConcatSource` can stream its children directly.
70
+ * @param {Hash} hash hash to update
71
+ * @param {Source} source source whose bytes are appended
72
+ * @returns {void}
73
+ */
74
+ const updateHashFromSource = (hash, source) => {
75
+ // TODO webpack 6: drop the `buffers` check, require webpack-sources >= 3.4
76
+ // and call `source.buffers()` unconditionally.
77
+ if (typeof source.buffers === "function") {
78
+ for (const buf of source.buffers()) hash.update(buf);
79
+ } else {
80
+ hash.update(source.buffer());
81
+ }
82
+ };
83
+
62
84
  module.exports.isSourceEqual = isSourceEqual;
85
+ module.exports.updateHashFromSource = updateHashFromSource;
@@ -0,0 +1,69 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ */
4
+
5
+ "use strict";
6
+
7
+ /**
8
+ * Topologically sort `nodes` using Kahn's algorithm with source-order
9
+ * tie-breaking. Nodes that participate in a cycle remain unvisited —
10
+ * `visit` is never called for them — so the caller can naturally keep
11
+ * them in their original position by treating "no visit" as "keep
12
+ * source order".
13
+ *
14
+ * Precondition: every node appearing in `graph` (as a key OR inside any
15
+ * successor set) must also appear in `nodes`. The caller owns this
16
+ * invariant; the function does not validate it.
17
+ *
18
+ * Complexity: O(V·(V + E)). Each outer iteration scans the ready set
19
+ * linearly to find the smallest source-index node. CSS composes graphs
20
+ * are small (a handful of files per module) so this is fine; if a much
21
+ * larger graph ever needs sorting here, swap in a min-heap.
22
+ * @template T
23
+ * @param {Map<T, Set<T>>} graph adjacency list (`a -> b` means `a` must come before `b`)
24
+ * @param {T[]} nodes nodes in source first-appearance order
25
+ * @param {(node: T, index: number) => void} visit called once per non-cyclic node in topological order
26
+ * @returns {void}
27
+ */
28
+ module.exports = (graph, nodes, visit) => {
29
+ /** @type {Map<T, number>} */
30
+ const inDegree = new Map();
31
+ /** @type {Map<T, number>} */
32
+ const sourceIndex = new Map();
33
+ for (let i = 0; i < nodes.length; i++) {
34
+ inDegree.set(nodes[i], 0);
35
+ sourceIndex.set(nodes[i], i);
36
+ }
37
+ for (const successors of graph.values()) {
38
+ for (const to of successors) {
39
+ inDegree.set(to, /** @type {number} */ (inDegree.get(to)) + 1);
40
+ }
41
+ }
42
+
43
+ const ready = nodes.filter((n) => inDegree.get(n) === 0);
44
+ let index = 0;
45
+ while (ready.length > 0) {
46
+ // Smallest-source-index wins ties. Linear scan + swap-with-last
47
+ // + pop avoids re-sorting the ready set on every iteration.
48
+ let minIdx = 0;
49
+ for (let i = 1; i < ready.length; i++) {
50
+ if (
51
+ /** @type {number} */ (sourceIndex.get(ready[i])) <
52
+ /** @type {number} */ (sourceIndex.get(ready[minIdx]))
53
+ ) {
54
+ minIdx = i;
55
+ }
56
+ }
57
+ const node = ready[minIdx];
58
+ ready[minIdx] = ready[ready.length - 1];
59
+ ready.pop();
60
+ visit(node, index++);
61
+ const successors = graph.get(node);
62
+ if (!successors) continue;
63
+ for (const to of successors) {
64
+ const newDeg = /** @type {number} */ (inDegree.get(to)) - 1;
65
+ inDegree.set(to, newDeg);
66
+ if (newDeg === 0) ready.push(to);
67
+ }
68
+ }
69
+ };
@@ -69,6 +69,7 @@ const REMOVED = {
69
69
  /* cSpell:enable */
70
70
 
71
71
  /**
72
+ * Processes the provided schema.
72
73
  * @param {Parameters<typeof validate>[0]} schema a json schema
73
74
  * @param {Parameters<typeof validate>[1]} options the options that should be validated
74
75
  * @param {Parameters<typeof validate>[2]=} validationConfiguration configuration for generating errors
@@ -14,6 +14,8 @@
14
14
  const enabledTypes = new WeakMap();
15
15
 
16
16
  /**
17
+ * Returns the set of wasm loading backends that have already been enabled for
18
+ * the compiler.
17
19
  * @param {Compiler} compiler compiler instance
18
20
  * @returns {WasmLoadingTypes} enabled types
19
21
  */
@@ -27,8 +29,14 @@ const getEnabledTypes = (compiler) => {
27
29
  return set;
28
30
  };
29
31
 
32
+ /**
33
+ * Validates and enables named wasm loading backends by applying the plugin
34
+ * implementations that provide their runtime support.
35
+ */
30
36
  class EnableWasmLoadingPlugin {
31
37
  /**
38
+ * Stores the wasm loading backend name that should be enabled for the
39
+ * compiler.
32
40
  * @param {WasmLoadingType} type library type that should be available
33
41
  */
34
42
  constructor(type) {
@@ -37,6 +45,8 @@ class EnableWasmLoadingPlugin {
37
45
  }
38
46
 
39
47
  /**
48
+ * Marks a custom or built-in wasm loading type as enabled for the compiler
49
+ * without applying additional built-in behavior.
40
50
  * @param {Compiler} compiler the compiler instance
41
51
  * @param {WasmLoadingType} type type of library
42
52
  * @returns {void}
@@ -46,6 +56,8 @@ class EnableWasmLoadingPlugin {
46
56
  }
47
57
 
48
58
  /**
59
+ * Verifies that a wasm loading type has been enabled before code generation
60
+ * attempts to use it.
49
61
  * @param {Compiler} compiler the compiler instance
50
62
  * @param {WasmLoadingType} type type of library
51
63
  * @returns {void}
@@ -63,7 +75,9 @@ class EnableWasmLoadingPlugin {
63
75
  }
64
76
 
65
77
  /**
66
- * Apply the plugin
78
+ * Enables the requested wasm loading backend once and applies the
79
+ * environment-specific plugins that provide its parser, generator, and
80
+ * runtime support.
67
81
  * @param {Compiler} compiler the compiler instance
68
82
  * @returns {void}
69
83
  */
@@ -46,19 +46,22 @@ class AsyncWasmCompileRuntimeModule extends RuntimeModule {
46
46
  }
47
47
 
48
48
  /**
49
+ * Generates runtime code for this runtime module.
49
50
  * @returns {string | null} runtime code
50
51
  */
51
52
  generate() {
52
53
  const compilation = /** @type {Compilation} */ (this.compilation);
53
54
  const chunk = /** @type {Chunk} */ (this.chunk);
54
55
  const { outputOptions, runtimeTemplate } = compilation;
56
+ // Opt-out fallback to non-streaming when the server serves wasm with a wrong MIME type.
57
+ const streamingFallback = outputOptions.wasmStreamingFallback;
55
58
  const fn = RuntimeGlobals.compileWasm;
56
59
  const wasmModuleSrcPath = compilation.getPath(
57
60
  JSON.stringify(outputOptions.webassemblyModuleFilename),
58
61
  {
59
62
  hash: `" + ${RuntimeGlobals.getFullHash}() + "`,
60
63
  hashWithLength: (length) =>
61
- `" + ${RuntimeGlobals.getFullHash}}().slice(0, ${length}) + "`,
64
+ `" + ${RuntimeGlobals.getFullHash}().slice(0, ${length}) + "`,
62
65
  module: {
63
66
  id: '" + wasmModuleId + "',
64
67
  hash: '" + wasmModuleHash + "',
@@ -104,24 +107,28 @@ class AsyncWasmCompileRuntimeModule extends RuntimeModule {
104
107
  ? this.generateBeforeCompileStreaming()
105
108
  : ""
106
109
  ),
107
- Template.indent([
108
- "return WebAssembly.compileStreaming(res)",
109
- Template.indent([
110
- ".catch(",
111
- Template.indent([
112
- runtimeTemplate.basicFunction("e", [
113
- 'if(res.headers.get("Content-Type") !== "application/wasm") {',
110
+ Template.indent(
111
+ streamingFallback
112
+ ? [
113
+ "return WebAssembly.compileStreaming(res)",
114
114
  Template.indent([
115
- 'console.warn("`WebAssembly.compileStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.compile` which is slower. Original error:\\n", e);',
116
- "return fallback();"
117
- ]),
118
- "}",
119
- "throw e;"
120
- ])
121
- ]),
122
- ");"
123
- ])
124
- ]),
115
+ ".catch(",
116
+ Template.indent([
117
+ runtimeTemplate.basicFunction("e", [
118
+ 'if(res.headers.get("Content-Type") !== "application/wasm") {',
119
+ Template.indent([
120
+ 'console.warn("`WebAssembly.compileStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.compile` which is slower. Original error:\\n", e);',
121
+ "return fallback();"
122
+ ]),
123
+ "}",
124
+ "throw e;"
125
+ ])
126
+ ]),
127
+ ");"
128
+ ])
129
+ ]
130
+ : ["return WebAssembly.compileStreaming(res);"]
131
+ ),
125
132
  "}",
126
133
  "return fallback();"
127
134
  ]),
@@ -47,19 +47,22 @@ class AsyncWasmLoadingRuntimeModule extends RuntimeModule {
47
47
  }
48
48
 
49
49
  /**
50
+ * Generates runtime code for this runtime module.
50
51
  * @returns {string | null} runtime code
51
52
  */
52
53
  generate() {
53
54
  const compilation = /** @type {Compilation} */ (this.compilation);
54
55
  const chunk = /** @type {Chunk} */ (this.chunk);
55
56
  const { outputOptions, runtimeTemplate } = compilation;
57
+ // Opt-in fallback to non-streaming when the server serves wasm with a wrong MIME type.
58
+ const streamingFallback = outputOptions.wasmStreamingFallback;
56
59
  const fn = RuntimeGlobals.instantiateWasm;
57
60
  const wasmModuleSrcPath = compilation.getPath(
58
61
  JSON.stringify(outputOptions.webassemblyModuleFilename),
59
62
  {
60
63
  hash: `" + ${RuntimeGlobals.getFullHash}() + "`,
61
64
  hashWithLength: (length) =>
62
- `" + ${RuntimeGlobals.getFullHash}}().slice(0, ${length}) + "`,
65
+ `" + ${RuntimeGlobals.getFullHash}().slice(0, ${length}) + "`,
63
66
  module: {
64
67
  id: '" + wasmModuleId + "',
65
68
  hash: '" + wasmModuleHash + "',
@@ -106,28 +109,37 @@ class AsyncWasmLoadingRuntimeModule extends RuntimeModule {
106
109
  ? this.generateBeforeInstantiateStreaming()
107
110
  : ""
108
111
  ),
109
- Template.indent([
110
- "return WebAssembly.instantiateStreaming(res, importsObj)",
111
- Template.indent([
112
- ".then(",
113
- Template.indent([
114
- `${runtimeTemplate.returningFunction(
115
- "Object.assign(exports, res.instance.exports)",
116
- "res"
117
- )},`,
118
- runtimeTemplate.basicFunction("e", [
119
- 'if(res.headers.get("Content-Type") !== "application/wasm") {',
112
+ Template.indent(
113
+ streamingFallback
114
+ ? [
115
+ "return WebAssembly.instantiateStreaming(res, importsObj)",
120
116
  Template.indent([
121
- 'console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n", e);',
122
- "return fallback();"
123
- ]),
124
- "}",
125
- "throw e;"
126
- ])
127
- ]),
128
- ");"
129
- ])
130
- ]),
117
+ ".then(",
118
+ Template.indent([
119
+ `${runtimeTemplate.returningFunction(
120
+ "Object.assign(exports, res.instance.exports)",
121
+ "res"
122
+ )},`,
123
+ runtimeTemplate.basicFunction("e", [
124
+ 'if(res.headers.get("Content-Type") !== "application/wasm") {',
125
+ Template.indent([
126
+ 'console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n", e);',
127
+ "return fallback();"
128
+ ]),
129
+ "}",
130
+ "throw e;"
131
+ ])
132
+ ]),
133
+ ");"
134
+ ])
135
+ ]
136
+ : [
137
+ `return WebAssembly.instantiateStreaming(res, importsObj).then(${runtimeTemplate.returningFunction(
138
+ "Object.assign(exports, res.instance.exports)",
139
+ "res"
140
+ )});`
141
+ ]
142
+ ),
131
143
  "}",
132
144
  "return fallback();"
133
145
  ]),
@@ -0,0 +1,77 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ */
4
+
5
+ "use strict";
6
+
7
+ const NormalModule = require("../NormalModule");
8
+ const makeSerializable = require("../util/makeSerializable");
9
+
10
+ /** @typedef {import("../Module")} Module */
11
+ /** @typedef {import("../NormalModule").NormalModuleCreateData} NormalModuleCreateData */
12
+ /** @typedef {import("../dependencies/ImportPhase").ImportPhaseName} ImportPhaseName */
13
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[ImportPhaseName | undefined]>} ObjectDeserializerContext */
14
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[ImportPhaseName | undefined]>} ObjectSerializerContext */
15
+
16
+ /**
17
+ * Module class for `webassembly/async` modules. Wasm-specific properties should live here instead of `NormalModule`.
18
+ */
19
+ class AsyncWasmModule extends NormalModule {
20
+ /**
21
+ * @param {NormalModuleCreateData & { phase: ImportPhaseName | undefined }} options options object
22
+ */
23
+ constructor(options) {
24
+ super(options);
25
+ /** @type {ImportPhaseName | undefined} */
26
+ this.phase = options.phase;
27
+ }
28
+
29
+ /**
30
+ * Returns the unique identifier used to reference this module.
31
+ * @returns {string} a unique identifier of the module
32
+ */
33
+ identifier() {
34
+ let str = super.identifier();
35
+
36
+ if (this.phase) {
37
+ str = `${str}|${this.phase}`;
38
+ }
39
+
40
+ return str;
41
+ }
42
+
43
+ /**
44
+ * Assuming this module is in the cache. Update the (cached) module with
45
+ * the fresh module from the factory. Usually updates internal references
46
+ * and properties.
47
+ * @param {Module} module fresh module
48
+ * @returns {void}
49
+ */
50
+ updateCacheModule(module) {
51
+ super.updateCacheModule(module);
52
+ const m = /** @type {AsyncWasmModule} */ (module);
53
+ this.phase = m.phase;
54
+ }
55
+
56
+ /**
57
+ * Serializes this instance into the provided serializer context.
58
+ * @param {ObjectSerializerContext} context context
59
+ */
60
+ serialize(context) {
61
+ context.write(this.phase);
62
+ super.serialize(context);
63
+ }
64
+
65
+ /**
66
+ * Restores this instance from the provided deserializer context.
67
+ * @param {ObjectDeserializerContext} context context
68
+ */
69
+ deserialize(context) {
70
+ this.phase = context.read();
71
+ super.deserialize(context.rest);
72
+ }
73
+ }
74
+
75
+ makeSerializable(AsyncWasmModule, "webpack/lib/wasm-async/AsyncWasmModule");
76
+
77
+ module.exports = AsyncWasmModule;
@@ -16,12 +16,14 @@ const { WEBASSEMBLY_TYPES } = require("../ModuleSourceTypeConstants");
16
16
  /** @typedef {import("../NormalModule")} NormalModule */
17
17
 
18
18
  /**
19
+ * Represents the async web assembly generator runtime component.
19
20
  * @typedef {object} AsyncWebAssemblyGeneratorOptions
20
21
  * @property {boolean=} mangleImports mangle imports
21
22
  */
22
23
 
23
24
  class AsyncWebAssemblyGenerator extends Generator {
24
25
  /**
26
+ * Creates an instance of AsyncWebAssemblyGenerator.
25
27
  * @param {AsyncWebAssemblyGeneratorOptions} options options
26
28
  */
27
29
  constructor(options) {
@@ -31,6 +33,7 @@ class AsyncWebAssemblyGenerator extends Generator {
31
33
  }
32
34
 
33
35
  /**
36
+ * Returns the source types available for this module.
34
37
  * @param {NormalModule} module fresh module
35
38
  * @returns {SourceTypes} available types (do not mutate)
36
39
  */
@@ -39,6 +42,7 @@ class AsyncWebAssemblyGenerator extends Generator {
39
42
  }
40
43
 
41
44
  /**
45
+ * Returns the estimated size for the requested source type.
42
46
  * @param {NormalModule} module the module
43
47
  * @param {SourceType=} type source type
44
48
  * @returns {number} estimate size of the module
@@ -52,6 +56,7 @@ class AsyncWebAssemblyGenerator extends Generator {
52
56
  }
53
57
 
54
58
  /**
59
+ * Generates generated code for this runtime module.
55
60
  * @param {NormalModule} module module for which the code should be generated
56
61
  * @param {GenerateContext} generateContext context for generate
57
62
  * @returns {Source | null} generated code
@@ -61,6 +66,7 @@ class AsyncWebAssemblyGenerator extends Generator {
61
66
  }
62
67
 
63
68
  /**
69
+ * Generates fallback output for the provided error condition.
64
70
  * @param {Error} error the error
65
71
  * @param {NormalModule} module module for which the code should be generated
66
72
  * @param {GenerateContext} generateContext context for generate
@@ -14,7 +14,7 @@ const Template = require("../Template");
14
14
  const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDependency");
15
15
 
16
16
  /** @typedef {import("webpack-sources").Source} Source */
17
- /** @typedef {import("./AsyncWebAssemblyModulesPlugin").AsyncWasmModuleClass} AsyncWasmModule */
17
+ /** @typedef {import("./AsyncWasmModule")} AsyncWasmModule */
18
18
  /** @typedef {import("../Generator").GenerateContext} GenerateContext */
19
19
  /** @typedef {import("../Module")} Module */
20
20
  /** @typedef {import("../Module").SourceType} SourceType */
@@ -22,11 +22,13 @@ const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDe
22
22
  /** @typedef {import("../NormalModule")} NormalModule */
23
23
 
24
24
  /**
25
+ * Represents the async web assembly javascript generator runtime component.
25
26
  * @typedef {{ request: string, importVar: string, dependency: WebAssemblyImportDependency }} ImportObjRequestItem
26
27
  */
27
28
 
28
29
  class AsyncWebAssemblyJavascriptGenerator extends Generator {
29
30
  /**
31
+ * Returns the source types available for this module.
30
32
  * @param {NormalModule} module fresh module
31
33
  * @returns {SourceTypes} available types (do not mutate)
32
34
  */
@@ -35,6 +37,7 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
35
37
  }
36
38
 
37
39
  /**
40
+ * Returns the estimated size for the requested source type.
38
41
  * @param {NormalModule} module the module
39
42
  * @param {SourceType=} type source type
40
43
  * @returns {number} estimate size of the module
@@ -50,6 +53,7 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
50
53
  }
51
54
 
52
55
  /**
56
+ * Generates generated code for this runtime module.
53
57
  * @param {NormalModule} module module for which the code should be generated
54
58
  * @param {GenerateContext} generateContext context for generate
55
59
  * @returns {Source | null} generated code
@@ -253,6 +257,7 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
253
257
  }
254
258
 
255
259
  /**
260
+ * Generates fallback output for the provided error condition.
256
261
  * @param {Error} error the error
257
262
  * @param {NormalModule} module module for which the code should be generated
258
263
  * @param {GenerateContext} generateContext context for generate