@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
@@ -10,6 +10,7 @@ const makeSerializable = require("../util/makeSerializable");
10
10
 
11
11
  class ConsumeSharedFallbackDependency extends ModuleDependency {
12
12
  /**
13
+ * Creates an instance of ConsumeSharedFallbackDependency.
13
14
  * @param {string} request the request
14
15
  */
15
16
  constructor(request) {
@@ -39,14 +39,15 @@ const fallbackModuleCache = new WeakMap();
39
39
  /** @typedef {import("../Module").ExportsType} ExportsType */
40
40
  /** @typedef {import("../RequestShortener")} RequestShortener */
41
41
  /** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
42
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
43
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
42
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[ConsumeOptions]>} ObjectDeserializerContext */
43
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[ConsumeOptions]>} ObjectSerializerContext */
44
44
  /** @typedef {import("../util/Hash")} Hash */
45
45
  /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
46
46
  /** @typedef {import("../util/semver").SemVerRange} SemVerRange */
47
47
  /** @typedef {import("../Module").BasicSourceTypes} BasicSourceTypes */
48
48
 
49
49
  /**
50
+ * Represents the consume shared module runtime component.
50
51
  * @typedef {object} ConsumeOptions
51
52
  * @property {string=} import fallback request
52
53
  * @property {string=} importResolved resolved fallback request
@@ -61,15 +62,18 @@ const fallbackModuleCache = new WeakMap();
61
62
 
62
63
  class ConsumeSharedModule extends Module {
63
64
  /**
65
+ * Creates an instance of ConsumeSharedModule.
64
66
  * @param {string} context context
65
67
  * @param {ConsumeOptions} options consume options
66
68
  */
67
69
  constructor(context, options) {
68
70
  super(WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE, context);
71
+ /** @type {ConsumeOptions} */
69
72
  this.options = options;
70
73
  }
71
74
 
72
75
  /**
76
+ * Returns the unique identifier used to reference this module.
73
77
  * @returns {string} a unique identifier of the module
74
78
  */
75
79
  identifier() {
@@ -88,6 +92,7 @@ class ConsumeSharedModule extends Module {
88
92
  }
89
93
 
90
94
  /**
95
+ * Returns a human-readable identifier for this module.
91
96
  * @param {RequestShortener} requestShortener the request shortener
92
97
  * @returns {string} a user readable identifier of the module
93
98
  */
@@ -111,6 +116,7 @@ class ConsumeSharedModule extends Module {
111
116
  }
112
117
 
113
118
  /**
119
+ * Gets the library identifier.
114
120
  * @param {LibIdentOptions} options options
115
121
  * @returns {LibIdent | null} an identifier for library inclusion
116
122
  */
@@ -124,6 +130,7 @@ class ConsumeSharedModule extends Module {
124
130
  }
125
131
 
126
132
  /**
133
+ * Checks whether the module needs to be rebuilt for the current build state.
127
134
  * @param {NeedBuildContext} context context info
128
135
  * @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
129
136
  * @returns {void}
@@ -133,6 +140,7 @@ class ConsumeSharedModule extends Module {
133
140
  }
134
141
 
135
142
  /**
143
+ * Builds the module using the provided compilation context.
136
144
  * @param {WebpackOptions} options webpack options
137
145
  * @param {Compilation} compilation the compilation
138
146
  * @param {ResolverWithOptions} resolver the resolver
@@ -157,6 +165,7 @@ class ConsumeSharedModule extends Module {
157
165
  }
158
166
 
159
167
  /**
168
+ * Returns the source types this module can generate.
160
169
  * @returns {SourceTypes} types available (do not mutate)
161
170
  */
162
171
  getSourceTypes() {
@@ -177,6 +186,7 @@ class ConsumeSharedModule extends Module {
177
186
  }
178
187
 
179
188
  /**
189
+ * Get fallback module.
180
190
  * @param {ModuleGraph} moduleGraph the module graph
181
191
  * @returns {Module | null} fallback module
182
192
  */
@@ -213,6 +223,7 @@ class ConsumeSharedModule extends Module {
213
223
  }
214
224
 
215
225
  /**
226
+ * Returns export type.
216
227
  * @param {ModuleGraph} moduleGraph the module graph
217
228
  * @param {boolean | undefined} strict the importing module is strict
218
229
  * @returns {ExportsType} export type
@@ -228,6 +239,7 @@ class ConsumeSharedModule extends Module {
228
239
  }
229
240
 
230
241
  /**
242
+ * Returns the estimated size for the requested source type.
231
243
  * @param {string=} type the source type for which the size should be estimated
232
244
  * @returns {number} the estimated size of the module (must be non-zero)
233
245
  */
@@ -236,6 +248,7 @@ class ConsumeSharedModule extends Module {
236
248
  }
237
249
 
238
250
  /**
251
+ * Updates the hash with the data contributed by this instance.
239
252
  * @param {Hash} hash the hash used to track dependencies
240
253
  * @param {UpdateHashContext} context context
241
254
  * @returns {void}
@@ -246,6 +259,7 @@ class ConsumeSharedModule extends Module {
246
259
  }
247
260
 
248
261
  /**
262
+ * Generates code and runtime requirements for this module.
249
263
  * @param {CodeGenerationContext} context context for code generation
250
264
  * @returns {CodeGenerationResult} result
251
265
  */
@@ -318,21 +332,21 @@ class ConsumeSharedModule extends Module {
318
332
  }
319
333
 
320
334
  /**
335
+ * Serializes this instance into the provided serializer context.
321
336
  * @param {ObjectSerializerContext} context context
322
337
  */
323
338
  serialize(context) {
324
- const { write } = context;
325
- write(this.options);
339
+ context.write(this.options);
326
340
  super.serialize(context);
327
341
  }
328
342
 
329
343
  /**
344
+ * Restores this instance from the provided deserializer context.
330
345
  * @param {ObjectDeserializerContext} context context
331
346
  */
332
347
  deserialize(context) {
333
- const { read } = context;
334
- this.options = read();
335
- super.deserialize(context);
348
+ this.options = context.read();
349
+ super.deserialize(context.rest);
336
350
  }
337
351
  }
338
352
 
@@ -5,10 +5,10 @@
5
5
 
6
6
  "use strict";
7
7
 
8
- const ModuleNotFoundError = require("../ModuleNotFoundError");
9
8
  const RuntimeGlobals = require("../RuntimeGlobals");
10
- const WebpackError = require("../WebpackError");
11
9
  const { parseOptions } = require("../container/options");
10
+ const ModuleNotFoundError = require("../errors/ModuleNotFoundError");
11
+ const WebpackError = require("../errors/WebpackError");
12
12
  const LazySet = require("../util/LazySet");
13
13
  const { parseRange } = require("../util/semver");
14
14
  const ConsumeSharedFallbackDependency = require("./ConsumeSharedFallbackDependency");
@@ -37,14 +37,16 @@ const PLUGIN_NAME = "ConsumeSharedPlugin";
37
37
 
38
38
  class ConsumeSharedPlugin {
39
39
  /**
40
+ * Creates an instance of ConsumeSharedPlugin.
40
41
  * @param {ConsumeSharedPluginOptions} options options
41
42
  */
42
43
  constructor(options) {
44
+ /** @type {ConsumeSharedPluginOptions} */
43
45
  this.options = options;
44
46
  }
45
47
 
46
48
  /**
47
- * Apply the plugin
49
+ * Applies the plugin by registering its hooks on the compiler.
48
50
  * @param {Compiler} compiler the compiler instance
49
51
  * @returns {void}
50
52
  */
@@ -149,6 +151,7 @@ class ConsumeSharedPlugin {
149
151
  );
150
152
 
151
153
  /**
154
+ * Creates a consume shared module.
152
155
  * @param {string} context issuer directory
153
156
  * @param {string} request request
154
157
  * @param {ConsumeOptions} config options
@@ -156,6 +159,7 @@ class ConsumeSharedPlugin {
156
159
  */
157
160
  const createConsumeSharedModule = (context, request, config) => {
158
161
  /**
162
+ * Required version warning.
159
163
  * @param {string} details details
160
164
  */
161
165
  const requiredVersionWarning = (details) => {
@@ -171,6 +175,7 @@ class ConsumeSharedPlugin {
171
175
  return Promise.all([
172
176
  new Promise(
173
177
  /**
178
+ * Handles the callback logic for this hook.
174
179
  * @param {(value?: string) => void} resolve resolve
175
180
  */
176
181
  (resolve) => {
@@ -214,6 +219,7 @@ class ConsumeSharedPlugin {
214
219
  ),
215
220
  new Promise(
216
221
  /**
222
+ * Handles the name callback for this hook.
217
223
  * @param {(value?: SemVerRange) => void} resolve resolve
218
224
  */
219
225
  (resolve) => {
@@ -351,15 +357,9 @@ class ConsumeSharedPlugin {
351
357
  ) {
352
358
  return Promise.resolve();
353
359
  }
354
- const options = resolvedConsumes.get(
355
- /** @type {string} */ (resource)
356
- );
360
+ const options = resolvedConsumes.get(resource);
357
361
  if (options !== undefined) {
358
- return createConsumeSharedModule(
359
- context,
360
- /** @type {string} */ (resource),
361
- options
362
- );
362
+ return createConsumeSharedModule(context, resource, options);
363
363
  }
364
364
  return Promise.resolve();
365
365
  }
@@ -8,6 +8,7 @@
8
8
  const RuntimeGlobals = require("../RuntimeGlobals");
9
9
  const RuntimeModule = require("../RuntimeModule");
10
10
  const Template = require("../Template");
11
+ const { compareModulesById } = require("../util/comparators");
11
12
  const {
12
13
  parseVersionRuntimeCode,
13
14
  rangeToStringRuntimeCode,
@@ -31,10 +32,12 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
31
32
  */
32
33
  constructor(runtimeRequirements) {
33
34
  super("consumes", RuntimeModule.STAGE_ATTACH);
35
+ /** @type {ReadOnlyRuntimeRequirements} */
34
36
  this._runtimeRequirements = runtimeRequirements;
35
37
  }
36
38
 
37
39
  /**
40
+ * Generates runtime code for this runtime module.
38
41
  * @returns {string | null} runtime code
39
42
  */
40
43
  generate() {
@@ -70,12 +73,14 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
70
73
  );
71
74
  }
72
75
  };
76
+ const byId = compareModulesById(chunkGraph);
73
77
  for (const chunk of /** @type {Chunk} */ (
74
78
  this.chunk
75
79
  ).getAllReferencedChunks()) {
76
- const modules = chunkGraph.getChunkModulesIterableBySourceType(
80
+ const modules = chunkGraph.getOrderedChunkModulesIterableBySourceType(
77
81
  chunk,
78
- "consume-shared"
82
+ "consume-shared",
83
+ byId
79
84
  );
80
85
  if (!modules) continue;
81
86
  addModules(
@@ -87,27 +92,29 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
87
92
  for (const chunk of /** @type {Chunk} */ (
88
93
  this.chunk
89
94
  ).getAllInitialChunks()) {
90
- const modules = chunkGraph.getChunkModulesIterableBySourceType(
95
+ const modules = chunkGraph.getOrderedChunkModulesIterableBySourceType(
91
96
  chunk,
92
- "consume-shared"
97
+ "consume-shared",
98
+ byId
93
99
  );
94
100
  if (!modules) continue;
95
101
  addModules(modules, chunk, initialConsumes);
96
102
  }
97
103
  if (moduleIdToSourceMapping.size === 0) return null;
104
+ const cst = runtimeTemplate.renderConst();
98
105
  return Template.asString([
99
106
  parseVersionRuntimeCode(runtimeTemplate),
100
107
  versionLtRuntimeCode(runtimeTemplate),
101
108
  rangeToStringRuntimeCode(runtimeTemplate),
102
109
  satisfyRuntimeCode(runtimeTemplate),
103
- `var exists = ${runtimeTemplate.basicFunction("scope, key", [
110
+ `${cst} exists = ${runtimeTemplate.basicFunction("scope, key", [
104
111
  `return scope && ${RuntimeGlobals.hasOwnProperty}(scope, key);`
105
112
  ])}`,
106
- `var get = ${runtimeTemplate.basicFunction("entry", [
113
+ `${cst} get = ${runtimeTemplate.basicFunction("entry", [
107
114
  "entry.loaded = 1;",
108
115
  "return entry.get()"
109
116
  ])};`,
110
- `var eagerOnly = ${runtimeTemplate.basicFunction("versions", [
117
+ `${cst} eagerOnly = ${runtimeTemplate.basicFunction("versions", [
111
118
  `return Object.keys(versions).reduce(${runtimeTemplate.basicFunction(
112
119
  "filtered, version",
113
120
  Template.indent([
@@ -118,10 +125,10 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
118
125
  ])
119
126
  )}, {});`
120
127
  ])};`,
121
- `var findLatestVersion = ${runtimeTemplate.basicFunction(
128
+ `${cst} findLatestVersion = ${runtimeTemplate.basicFunction(
122
129
  "scope, key, eager",
123
130
  [
124
- "var versions = eager ? eagerOnly(scope[key]) : scope[key];",
131
+ `${cst} versions = eager ? eagerOnly(scope[key]) : scope[key];`,
125
132
  `var key = Object.keys(versions).reduce(${runtimeTemplate.basicFunction(
126
133
  "a, b",
127
134
  ["return !a || versionLt(a, b) ? b : a;"]
@@ -129,10 +136,10 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
129
136
  "return key && versions[key];"
130
137
  ]
131
138
  )};`,
132
- `var findSatisfyingVersion = ${runtimeTemplate.basicFunction(
139
+ `${cst} findSatisfyingVersion = ${runtimeTemplate.basicFunction(
133
140
  "scope, key, requiredVersion, eager",
134
141
  [
135
- "var versions = eager ? eagerOnly(scope[key]) : scope[key];",
142
+ `${cst} versions = eager ? eagerOnly(scope[key]) : scope[key];`,
136
143
  `var key = Object.keys(versions).reduce(${runtimeTemplate.basicFunction(
137
144
  "a, b",
138
145
  [
@@ -143,26 +150,26 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
143
150
  "return key && versions[key]"
144
151
  ]
145
152
  )};`,
146
- `var findSingletonVersionKey = ${runtimeTemplate.basicFunction(
153
+ `${cst} findSingletonVersionKey = ${runtimeTemplate.basicFunction(
147
154
  "scope, key, eager",
148
155
  [
149
- "var versions = eager ? eagerOnly(scope[key]) : scope[key];",
156
+ `${cst} versions = eager ? eagerOnly(scope[key]) : scope[key];`,
150
157
  `return Object.keys(versions).reduce(${runtimeTemplate.basicFunction(
151
158
  "a, b",
152
159
  ["return !a || (!versions[a].loaded && versionLt(a, b)) ? b : a;"]
153
160
  )}, 0);`
154
161
  ]
155
162
  )};`,
156
- `var getInvalidSingletonVersionMessage = ${runtimeTemplate.basicFunction(
163
+ `${cst} getInvalidSingletonVersionMessage = ${runtimeTemplate.basicFunction(
157
164
  "scope, key, version, requiredVersion",
158
165
  [
159
166
  'return "Unsatisfied version " + version + " from " + (version && scope[key][version].from) + " of shared singleton module " + key + " (required " + rangeToString(requiredVersion) + ")"'
160
167
  ]
161
168
  )};`,
162
- `var getInvalidVersionMessage = ${runtimeTemplate.basicFunction(
169
+ `${cst} getInvalidVersionMessage = ${runtimeTemplate.basicFunction(
163
170
  "scope, scopeName, key, requiredVersion, eager",
164
171
  [
165
- "var versions = scope[key];",
172
+ `${cst} versions = scope[key];`,
166
173
  'return "No satisfying version (" + rangeToString(requiredVersion) + ")" + (eager ? " for eager consumption" : "") + " of shared module " + key + " found in shared scope " + scopeName + ".\\n" +',
167
174
  `\t"Available versions: " + Object.keys(versions).map(${runtimeTemplate.basicFunction(
168
175
  "key",
@@ -170,26 +177,29 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
170
177
  )}).join(", ");`
171
178
  ]
172
179
  )};`,
173
- `var fail = ${runtimeTemplate.basicFunction("msg", [
180
+ `${cst} fail = ${runtimeTemplate.basicFunction("msg", [
174
181
  "throw new Error(msg);"
175
182
  ])}`,
176
- `var failAsNotExist = ${runtimeTemplate.basicFunction("scopeName, key", [
177
- 'return fail("Shared module " + key + " doesn\'t exist in shared scope " + scopeName);'
178
- ])}`,
179
- `var warn = /*#__PURE__*/ ${
183
+ `${cst} failAsNotExist = ${runtimeTemplate.basicFunction(
184
+ "scopeName, key",
185
+ [
186
+ 'return fail("Shared module " + key + " doesn\'t exist in shared scope " + scopeName);'
187
+ ]
188
+ )}`,
189
+ `${cst} warn = /*#__PURE__*/ ${
180
190
  compilation.outputOptions.ignoreBrowserWarnings
181
191
  ? runtimeTemplate.basicFunction("", "")
182
192
  : runtimeTemplate.basicFunction("msg", [
183
193
  'if (typeof console !== "undefined" && console.warn) console.warn(msg);'
184
194
  ])
185
195
  };`,
186
- `var init = ${runtimeTemplate.returningFunction(
196
+ `${cst} init = ${runtimeTemplate.returningFunction(
187
197
  Template.asString([
188
198
  "function(scopeName, key, eager, c, d) {",
189
199
  Template.indent([
190
- `var promise = ${RuntimeGlobals.initializeSharing}(scopeName);`,
200
+ `${cst} promise = ${RuntimeGlobals.initializeSharing}(scopeName);`,
191
201
  // if we require eager shared, we expect it to be already loaded before it requested, no need to wait the whole scope loaded.
192
- "if (promise && promise.then && !eager) { ",
202
+ `if (${runtimeTemplate.optionalChaining("promise", "then")} && !eager) { `,
193
203
  Template.indent([
194
204
  `return promise.then(fn.bind(fn, scopeName, ${RuntimeGlobals.shareScopeMap}[scopeName], key, false, c, d));`
195
205
  ]),
@@ -201,50 +211,50 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
201
211
  "fn"
202
212
  )};`,
203
213
  "",
204
- `var useFallback = ${runtimeTemplate.basicFunction(
214
+ `${cst} useFallback = ${runtimeTemplate.basicFunction(
205
215
  "scopeName, key, fallback",
206
216
  ["return fallback ? fallback() : failAsNotExist(scopeName, key);"]
207
217
  )}`,
208
- `var load = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
218
+ `${cst} load = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
209
219
  "scopeName, scope, key, eager, fallback",
210
220
  [
211
221
  "if (!exists(scope, key)) return useFallback(scopeName, key, fallback);",
212
222
  "return get(findLatestVersion(scope, key, eager));"
213
223
  ]
214
224
  )});`,
215
- `var loadVersion = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
225
+ `${cst} loadVersion = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
216
226
  "scopeName, scope, key, eager, requiredVersion, fallback",
217
227
  [
218
228
  "if (!exists(scope, key)) return useFallback(scopeName, key, fallback);",
219
- "var satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);",
229
+ `${cst} satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);`,
220
230
  "if (satisfyingVersion) return get(satisfyingVersion);",
221
231
  "warn(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager))",
222
232
  "return get(findLatestVersion(scope, key, eager));"
223
233
  ]
224
234
  )});`,
225
- `var loadStrictVersion = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
235
+ `${cst} loadStrictVersion = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
226
236
  "scopeName, scope, key, eager, requiredVersion, fallback",
227
237
  [
228
238
  "if (!exists(scope, key)) return useFallback(scopeName, key, fallback);",
229
- "var satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);",
239
+ `${cst} satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);`,
230
240
  "if (satisfyingVersion) return get(satisfyingVersion);",
231
241
  "if (fallback) return fallback();",
232
242
  "fail(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager));"
233
243
  ]
234
244
  )});`,
235
- `var loadSingleton = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
245
+ `${cst} loadSingleton = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
236
246
  "scopeName, scope, key, eager, fallback",
237
247
  [
238
248
  "if (!exists(scope, key)) return useFallback(scopeName, key, fallback);",
239
- "var version = findSingletonVersionKey(scope, key, eager);",
249
+ `${cst} version = findSingletonVersionKey(scope, key, eager);`,
240
250
  "return get(scope[key][version]);"
241
251
  ]
242
252
  )});`,
243
- `var loadSingletonVersion = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
253
+ `${cst} loadSingletonVersion = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
244
254
  "scopeName, scope, key, eager, requiredVersion, fallback",
245
255
  [
246
256
  "if (!exists(scope, key)) return useFallback(scopeName, key, fallback);",
247
- "var version = findSingletonVersionKey(scope, key, eager);",
257
+ `${cst} version = findSingletonVersionKey(scope, key, eager);`,
248
258
  "if (!satisfy(requiredVersion, version)) {",
249
259
  Template.indent([
250
260
  "warn(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));"
@@ -253,11 +263,11 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
253
263
  "return get(scope[key][version]);"
254
264
  ]
255
265
  )});`,
256
- `var loadStrictSingletonVersion = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
266
+ `${cst} loadStrictSingletonVersion = /*#__PURE__*/ init(${runtimeTemplate.basicFunction(
257
267
  "scopeName, scope, key, eager, requiredVersion, fallback",
258
268
  [
259
269
  "if (!exists(scope, key)) return useFallback(scopeName, key, fallback);",
260
- "var version = findSingletonVersionKey(scope, key, eager);",
270
+ `${cst} version = findSingletonVersionKey(scope, key, eager);`,
261
271
  "if (!satisfy(requiredVersion, version)) {",
262
272
  Template.indent([
263
273
  "fail(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));"
@@ -266,8 +276,8 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
266
276
  "return get(scope[key][version]);"
267
277
  ]
268
278
  )});`,
269
- "var installedModules = {};",
270
- "var moduleToHandlerMapping = {",
279
+ `${cst} installedModules = {};`,
280
+ `${cst} moduleToHandlerMapping = {`,
271
281
  Template.indent(
272
282
  Array.from(
273
283
  moduleIdToSourceMapping,
@@ -278,7 +288,7 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
278
288
 
279
289
  initialConsumes.length > 0
280
290
  ? Template.asString([
281
- `var initialConsumes = ${JSON.stringify(initialConsumes)};`,
291
+ `${cst} initialConsumes = ${JSON.stringify(initialConsumes)};`,
282
292
  `initialConsumes.forEach(${runtimeTemplate.basicFunction("id", [
283
293
  `${
284
294
  RuntimeGlobals.moduleFactories
@@ -286,7 +296,7 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
286
296
  "// Handle case when module is used sync",
287
297
  "installedModules[id] = 0;",
288
298
  `delete ${RuntimeGlobals.moduleCache}[id];`,
289
- "var factory = moduleToHandlerMapping[id]();",
299
+ `${cst} factory = moduleToHandlerMapping[id]();`,
290
300
  'if(typeof factory !== "function") throw new Error("Shared module is not available for eager consumption: " + id);',
291
301
  "module.exports = factory();"
292
302
  ])}`
@@ -295,12 +305,12 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
295
305
  : "// no consumes in initial chunks",
296
306
  this._runtimeRequirements.has(RuntimeGlobals.ensureChunkHandlers)
297
307
  ? Template.asString([
298
- `var chunkMapping = ${JSON.stringify(
308
+ `${cst} chunkMapping = ${JSON.stringify(
299
309
  chunkToModuleMapping,
300
310
  null,
301
311
  "\t"
302
312
  )};`,
303
- "var startedInstallModules = {};",
313
+ `${cst} startedInstallModules = {};`,
304
314
  `${
305
315
  RuntimeGlobals.ensureChunkHandlers
306
316
  }.consumes = ${runtimeTemplate.basicFunction("chunkId, promises", [
@@ -311,7 +321,7 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
311
321
  [
312
322
  `if(${RuntimeGlobals.hasOwnProperty}(installedModules, id)) return promises.push(installedModules[id]);`,
313
323
  "if(!startedInstallModules[id]) {",
314
- `var onFactory = ${runtimeTemplate.basicFunction(
324
+ `${cst} onFactory = ${runtimeTemplate.basicFunction(
315
325
  "factory",
316
326
  [
317
327
  "installedModules[id] = 0;",
@@ -324,7 +334,7 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
324
334
  ]
325
335
  )};`,
326
336
  "startedInstallModules[id] = true;",
327
- `var onError = ${runtimeTemplate.basicFunction("error", [
337
+ `${cst} onError = ${runtimeTemplate.basicFunction("error", [
328
338
  "delete installedModules[id];",
329
339
  `${
330
340
  RuntimeGlobals.moduleFactories
@@ -335,7 +345,7 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
335
345
  ])};`,
336
346
  "try {",
337
347
  Template.indent([
338
- "var promise = moduleToHandlerMapping[id]();",
348
+ `${cst} promise = moduleToHandlerMapping[id]();`,
339
349
  "if(promise.then) {",
340
350
  Template.indent(
341
351
  "promises.push(installedModules[id] = promise.then(onFactory)['catch'](onError));"
@@ -10,6 +10,7 @@ const makeSerializable = require("../util/makeSerializable");
10
10
 
11
11
  class ProvideForSharedDependency extends ModuleDependency {
12
12
  /**
13
+ * Creates an instance of ProvideForSharedDependency.
13
14
  * @param {string} request request string
14
15
  */
15
16
  constructor(request) {
@@ -8,11 +8,12 @@
8
8
  const Dependency = require("../Dependency");
9
9
  const makeSerializable = require("../util/makeSerializable");
10
10
 
11
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
12
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
11
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, string, string, string | false, boolean]>} ObjectDeserializerContext */
12
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, string, string, string | false, boolean]>} ObjectSerializerContext */
13
13
 
14
14
  class ProvideSharedDependency extends Dependency {
15
15
  /**
16
+ * Creates an instance of ProvideSharedDependency.
16
17
  * @param {string} shareScope share scope
17
18
  * @param {string} name module name
18
19
  * @param {string | false} version version
@@ -21,10 +22,15 @@ class ProvideSharedDependency extends Dependency {
21
22
  */
22
23
  constructor(shareScope, name, version, request, eager) {
23
24
  super();
25
+ /** @type {string} */
24
26
  this.shareScope = shareScope;
27
+ /** @type {string} */
25
28
  this.name = name;
29
+ /** @type {string | false} */
26
30
  this.version = version;
31
+ /** @type {string} */
27
32
  this.request = request;
33
+ /** @type {boolean} */
28
34
  this.eager = eager;
29
35
  }
30
36
 
@@ -33,6 +39,7 @@ class ProvideSharedDependency extends Dependency {
33
39
  }
34
40
 
35
41
  /**
42
+ * Returns an identifier to merge equal requests.
36
43
  * @returns {string | null} an identifier to merge equal requests
37
44
  */
38
45
  getResourceIdentifier() {
@@ -42,32 +49,44 @@ class ProvideSharedDependency extends Dependency {
42
49
  }
43
50
 
44
51
  /**
52
+ * Serializes this instance into the provided serializer context.
45
53
  * @param {ObjectSerializerContext} context context
46
54
  */
47
55
  serialize(context) {
48
- context.write(this.shareScope);
49
- context.write(this.name);
50
- context.write(this.request);
51
- context.write(this.version);
52
- context.write(this.eager);
56
+ context
57
+ .write(this.shareScope)
58
+ .write(this.name)
59
+ .write(this.request)
60
+ .write(this.version)
61
+ .write(this.eager);
53
62
  super.serialize(context);
54
63
  }
55
64
 
56
65
  /**
66
+ * Restores this instance from the provided deserializer context.
57
67
  * @param {ObjectDeserializerContext} context context
58
68
  * @returns {ProvideSharedDependency} deserialize fallback dependency
59
69
  */
60
70
  static deserialize(context) {
61
- const { read } = context;
71
+ // wire order is shareScope, name, request, version, eager;
72
+ // reorder into the constructor's (…, version, request, …) signature
73
+ const shareScope = context.read();
74
+ const c1 = context.rest;
75
+ const name = c1.read();
76
+ const c2 = c1.rest;
77
+ const request = c2.read();
78
+ const c3 = c2.rest;
79
+ const version = c3.read();
80
+ const c4 = c3.rest;
81
+ const eager = c4.read();
62
82
  const obj = new ProvideSharedDependency(
63
- read(),
64
- read(),
65
- read(),
66
- read(),
67
- read()
83
+ shareScope,
84
+ name,
85
+ version,
86
+ request,
87
+ eager
68
88
  );
69
- this.shareScope = context.read();
70
- obj.deserialize(context);
89
+ obj.deserialize(c4.rest);
71
90
  return obj;
72
91
  }
73
92
  }