@depup/webpack 5.106.0-depup.0 → 5.109.0-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 (667) hide show
  1. package/README.md +9 -11
  2. package/changes.json +16 -24
  3. package/hot/dev-server.js +2 -0
  4. package/lib/APIPlugin.js +60 -35
  5. package/lib/AsyncDependenciesBlock.js +3 -0
  6. package/lib/AutomaticPrefetchPlugin.js +6 -1
  7. package/lib/BannerPlugin.js +13 -5
  8. package/lib/Cache.js +27 -5
  9. package/lib/CacheFacade.js +41 -0
  10. package/lib/Chunk.js +71 -25
  11. package/lib/ChunkGraph.js +141 -9
  12. package/lib/ChunkGroup.js +115 -28
  13. package/lib/ChunkTemplate.js +9 -0
  14. package/lib/CircularModulesPlugin.js +190 -0
  15. package/lib/CleanPlugin.js +23 -26
  16. package/lib/CodeGenerationResults.js +19 -0
  17. package/lib/CompatibilityPlugin.js +54 -37
  18. package/lib/Compilation.js +635 -107
  19. package/lib/Compiler.js +93 -31
  20. package/lib/ConcatenationScope.js +34 -4
  21. package/lib/ConditionalInitFragment.js +6 -0
  22. package/lib/ConstPlugin.js +15 -12
  23. package/lib/ContextExclusionPlugin.js +3 -1
  24. package/lib/ContextModule.js +345 -55
  25. package/lib/ContextModuleFactory.js +193 -51
  26. package/lib/ContextReplacementPlugin.js +8 -1
  27. package/lib/DefinePlugin.js +498 -127
  28. package/lib/DependenciesBlock.js +6 -1
  29. package/lib/Dependency.js +159 -11
  30. package/lib/DependencyTemplate.js +7 -1
  31. package/lib/DependencyTemplates.js +4 -0
  32. package/lib/DotenvPlugin.js +3 -0
  33. package/lib/DynamicEntryPlugin.js +3 -1
  34. package/lib/EntryOptionPlugin.js +42 -2
  35. package/lib/EntryPlugin.js +4 -1
  36. package/lib/Entrypoint.js +5 -1
  37. package/lib/EnvironmentPlugin.js +3 -2
  38. package/lib/ErrorHelpers.js +7 -0
  39. package/lib/EvalDevToolModulePlugin.js +3 -1
  40. package/lib/EvalSourceMapDevToolPlugin.js +11 -11
  41. package/lib/ExportsInfo.js +399 -108
  42. package/lib/ExportsInfoApiPlugin.js +4 -3
  43. package/lib/ExternalModule.js +376 -78
  44. package/lib/ExternalModuleFactoryPlugin.js +75 -3
  45. package/lib/ExternalsPlugin.js +3 -1
  46. package/lib/FileSystemInfo.js +575 -149
  47. package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
  48. package/lib/FlagDependencyExportsPlugin.js +82 -9
  49. package/lib/FlagDependencyUsagePlugin.js +92 -6
  50. package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
  51. package/lib/Generator.js +24 -3
  52. package/lib/HotModuleReplacementPlugin.js +110 -44
  53. package/lib/IgnorePlugin.js +5 -2
  54. package/lib/IgnoreWarningsPlugin.js +2 -1
  55. package/lib/InitFragment.js +15 -0
  56. package/lib/JavascriptMetaInfoPlugin.js +9 -6
  57. package/lib/LazyBarrel.js +389 -0
  58. package/lib/LibraryTemplatePlugin.js +2 -1
  59. package/lib/LoaderOptionsPlugin.js +3 -1
  60. package/lib/LoaderTargetPlugin.js +3 -1
  61. package/lib/MainTemplate.js +15 -0
  62. package/lib/ManifestPlugin.js +9 -2
  63. package/lib/Module.js +121 -60
  64. package/lib/ModuleFactory.js +6 -1
  65. package/lib/ModuleFilenameHelpers.js +5 -2
  66. package/lib/ModuleGraph.js +69 -2
  67. package/lib/ModuleGraphConnection.js +9 -0
  68. package/lib/ModuleInfoHeaderPlugin.js +5 -0
  69. package/lib/ModuleNotFoundError.js +3 -83
  70. package/lib/ModuleProfile.js +27 -1
  71. package/lib/ModuleSourceTypeConstants.js +52 -19
  72. package/lib/ModuleTemplate.js +10 -0
  73. package/lib/ModuleTypeConstants.js +20 -4
  74. package/lib/MultiCompiler.js +59 -4
  75. package/lib/MultiStats.js +9 -0
  76. package/lib/MultiWatching.js +6 -0
  77. package/lib/NoEmitOnErrorsPlugin.js +1 -1
  78. package/lib/NodeStuffPlugin.js +78 -46
  79. package/lib/NormalModule.js +485 -181
  80. package/lib/NormalModuleFactory.js +148 -29
  81. package/lib/NormalModuleReplacementPlugin.js +3 -1
  82. package/lib/NullFactory.js +1 -0
  83. package/lib/OptionsApply.js +1 -0
  84. package/lib/Parser.js +3 -1
  85. package/lib/PlatformPlugin.js +2 -1
  86. package/lib/PrefetchPlugin.js +4 -1
  87. package/lib/ProgressPlugin.js +351 -161
  88. package/lib/ProvidePlugin.js +6 -3
  89. package/lib/RawModule.js +32 -16
  90. package/lib/RecordIdsPlugin.js +9 -0
  91. package/lib/RequestShortener.js +8 -0
  92. package/lib/ResolverFactory.js +5 -0
  93. package/lib/RuntimeGlobals.js +58 -5
  94. package/lib/RuntimeModule.js +22 -7
  95. package/lib/RuntimePlugin.js +104 -26
  96. package/lib/RuntimeTemplate.js +616 -37
  97. package/lib/SelfModuleFactory.js +3 -0
  98. package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
  99. package/lib/SourceMapDevToolPlugin.js +341 -63
  100. package/lib/Stats.js +6 -0
  101. package/lib/Template.js +29 -3
  102. package/lib/TemplatedPathPlugin.js +505 -138
  103. package/lib/UseStrictPlugin.js +3 -2
  104. package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
  105. package/lib/WarnDeprecatedOptionPlugin.js +6 -2
  106. package/lib/WarnNoModeSetPlugin.js +18 -2
  107. package/lib/WatchIgnorePlugin.js +5 -1
  108. package/lib/Watching.js +25 -3
  109. package/lib/WebpackError.js +3 -74
  110. package/lib/WebpackIsIncludedPlugin.js +4 -2
  111. package/lib/WebpackOptionsApply.js +88 -25
  112. package/lib/WebpackOptionsDefaulter.js +1 -0
  113. package/lib/asset/AssetBytesGenerator.js +28 -10
  114. package/lib/asset/AssetBytesParser.js +1 -0
  115. package/lib/asset/AssetGenerator.js +199 -60
  116. package/lib/asset/AssetModule.js +47 -0
  117. package/lib/asset/AssetModulesPlugin.js +115 -24
  118. package/lib/asset/AssetParser.js +4 -2
  119. package/lib/asset/AssetSourceGenerator.js +26 -8
  120. package/lib/asset/AssetSourceParser.js +1 -0
  121. package/lib/asset/RawDataUrlModule.js +23 -13
  122. package/lib/asset/WebManifestGenerator.js +164 -0
  123. package/lib/asset/WebManifestParser.js +130 -0
  124. package/lib/async-modules/AsyncModuleHelpers.js +1 -0
  125. package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
  126. package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
  127. package/lib/async-modules/isGeneratorLowered.js +26 -0
  128. package/lib/buildChunkGraph.js +107 -15
  129. package/lib/bun/BunTargetPlugin.js +42 -0
  130. package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
  131. package/lib/cache/AddManagedPathsPlugin.js +5 -1
  132. package/lib/cache/IdleFileCachePlugin.js +6 -1
  133. package/lib/cache/MemoryCachePlugin.js +1 -1
  134. package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
  135. package/lib/cache/PackFileCacheStrategy.js +43 -7
  136. package/lib/cache/ResolverCachePlugin.js +12 -1
  137. package/lib/cache/getLazyHashedEtag.js +13 -2
  138. package/lib/cache/mergeEtags.js +4 -0
  139. package/lib/cli.js +142 -20
  140. package/lib/config/browserslistTargetHandler.js +141 -0
  141. package/lib/config/defaults.js +591 -41
  142. package/lib/config/defineConfig.js +31 -0
  143. package/lib/config/normalization.js +46 -1
  144. package/lib/config/target.js +200 -2
  145. package/lib/container/ContainerEntryDependency.js +2 -0
  146. package/lib/container/ContainerEntryModule.js +27 -14
  147. package/lib/container/ContainerEntryModuleFactory.js +1 -0
  148. package/lib/container/ContainerExposedDependency.js +6 -2
  149. package/lib/container/ContainerPlugin.js +2 -1
  150. package/lib/container/ContainerReferencePlugin.js +3 -2
  151. package/lib/container/FallbackDependency.js +9 -7
  152. package/lib/container/FallbackItemDependency.js +1 -0
  153. package/lib/container/FallbackModule.js +22 -9
  154. package/lib/container/FallbackModuleFactory.js +1 -0
  155. package/lib/container/ModuleFederationPlugin.js +12 -26
  156. package/lib/container/RemoteModule.js +33 -10
  157. package/lib/container/RemoteRuntimeModule.js +15 -12
  158. package/lib/container/RemoteToExternalDependency.js +1 -0
  159. package/lib/container/options.js +7 -0
  160. package/lib/css/CssGenerator.js +534 -272
  161. package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
  162. package/lib/css/CssLoadingRuntimeModule.js +156 -77
  163. package/lib/{CssModule.js → css/CssModule.js} +72 -37
  164. package/lib/css/CssModulesPlugin.js +356 -204
  165. package/lib/css/CssParser.js +3452 -1950
  166. package/lib/css/syntax.js +4058 -0
  167. package/lib/debug/ProfilingPlugin.js +33 -2
  168. package/lib/deno/DenoTargetPlugin.js +41 -0
  169. package/lib/dependencies/AMDDefineDependency.js +29 -17
  170. package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
  171. package/lib/dependencies/AMDPlugin.js +6 -3
  172. package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
  173. package/lib/dependencies/AMDRequireContextDependency.js +10 -11
  174. package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
  175. package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
  176. package/lib/dependencies/AMDRequireDependency.js +28 -20
  177. package/lib/dependencies/AMDRequireItemDependency.js +1 -0
  178. package/lib/dependencies/AMDRuntimeModules.js +3 -0
  179. package/lib/dependencies/CachedConstDependency.js +9 -1
  180. package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
  181. package/lib/dependencies/CommonJsExportRequireDependency.js +138 -38
  182. package/lib/dependencies/CommonJsExportsDependency.js +74 -20
  183. package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
  184. package/lib/dependencies/CommonJsFullRequireDependency.js +62 -27
  185. package/lib/dependencies/CommonJsImportsParserPlugin.js +187 -24
  186. package/lib/dependencies/CommonJsPlugin.js +7 -4
  187. package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
  188. package/lib/dependencies/CommonJsRequireDependency.js +135 -13
  189. package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
  190. package/lib/dependencies/ConstDependency.js +22 -12
  191. package/lib/dependencies/ContextDependency.js +13 -2
  192. package/lib/dependencies/ContextDependencyHelpers.js +7 -4
  193. package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
  194. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
  195. package/lib/dependencies/ContextElementDependency.js +27 -14
  196. package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
  197. package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
  198. package/lib/dependencies/CriticalDependencyWarning.js +3 -1
  199. package/lib/dependencies/CssIcssExportDependency.js +682 -368
  200. package/lib/dependencies/CssIcssImportDependency.js +62 -17
  201. package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
  202. package/lib/dependencies/CssImportDependency.js +37 -1
  203. package/lib/dependencies/CssUrlDependency.js +87 -14
  204. package/lib/dependencies/DelegatedSourceDependency.js +1 -0
  205. package/lib/dependencies/DllEntryDependency.js +12 -13
  206. package/lib/dependencies/DynamicExports.js +5 -0
  207. package/lib/dependencies/EntryDependency.js +1 -0
  208. package/lib/dependencies/ExportBindingInitFragment.js +164 -0
  209. package/lib/dependencies/ExportsInfoDependency.js +18 -12
  210. package/lib/dependencies/ExternalModuleDependency.js +13 -5
  211. package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
  212. package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
  213. package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
  214. package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
  215. package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
  216. package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
  217. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +32 -2
  218. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
  219. package/lib/dependencies/HarmonyExportExpressionDependency.js +140 -46
  220. package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
  221. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +253 -37
  222. package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
  223. package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
  224. package/lib/dependencies/HarmonyExports.js +6 -1
  225. package/lib/dependencies/HarmonyImportDependency.js +59 -3
  226. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
  227. package/lib/dependencies/HarmonyImportGuard.js +426 -0
  228. package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
  229. package/lib/dependencies/HarmonyImportSpecifierDependency.js +136 -17
  230. package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
  231. package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
  232. package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
  233. package/lib/dependencies/HtmlEntryDependency.js +1295 -0
  234. package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
  235. package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
  236. package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
  237. package/lib/dependencies/HtmlSourceDependency.js +172 -0
  238. package/lib/dependencies/ImportContextDependency.js +9 -9
  239. package/lib/dependencies/ImportDependency.js +92 -3
  240. package/lib/dependencies/ImportEagerDependency.js +2 -0
  241. package/lib/dependencies/ImportMetaContextDependency.js +1 -0
  242. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
  243. package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
  244. package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
  245. package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
  246. package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
  247. package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
  248. package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
  249. package/lib/dependencies/ImportMetaPlugin.js +595 -209
  250. package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
  251. package/lib/dependencies/ImportParserPlugin.js +114 -27
  252. package/lib/dependencies/ImportPhase.js +17 -11
  253. package/lib/dependencies/ImportPlugin.js +2 -1
  254. package/lib/dependencies/ImportWeakDependency.js +3 -0
  255. package/lib/dependencies/JsonExportsDependency.js +15 -10
  256. package/lib/dependencies/LoaderDependency.js +2 -0
  257. package/lib/dependencies/LoaderImportDependency.js +3 -0
  258. package/lib/dependencies/LoaderPlugin.js +9 -2
  259. package/lib/dependencies/LocalModule.js +15 -12
  260. package/lib/dependencies/LocalModuleDependency.js +15 -13
  261. package/lib/dependencies/LocalModulesHelpers.js +3 -0
  262. package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
  263. package/lib/dependencies/ModuleDependency.js +14 -0
  264. package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
  265. package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
  266. package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
  267. package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
  268. package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
  269. package/lib/dependencies/NullDependency.js +2 -0
  270. package/lib/dependencies/PrefetchDependency.js +1 -0
  271. package/lib/dependencies/ProvidedDependency.js +36 -27
  272. package/lib/dependencies/PureExpressionDependency.js +14 -10
  273. package/lib/dependencies/RequireContextDependency.js +1 -0
  274. package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
  275. package/lib/dependencies/RequireContextPlugin.js +2 -1
  276. package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
  277. package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
  278. package/lib/dependencies/RequireEnsureDependency.js +16 -13
  279. package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
  280. package/lib/dependencies/RequireEnsurePlugin.js +2 -1
  281. package/lib/dependencies/RequireHeaderDependency.js +7 -4
  282. package/lib/dependencies/RequireIncludeDependency.js +2 -0
  283. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
  284. package/lib/dependencies/RequireIncludePlugin.js +2 -1
  285. package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
  286. package/lib/dependencies/RequireResolveContextDependency.js +10 -11
  287. package/lib/dependencies/RequireResolveDependency.js +2 -0
  288. package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
  289. package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
  290. package/lib/dependencies/StaticExportsDependency.js +13 -10
  291. package/lib/dependencies/SystemPlugin.js +9 -6
  292. package/lib/dependencies/SystemRuntimeModule.js +1 -0
  293. package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
  294. package/lib/dependencies/URLContextDependency.js +8 -7
  295. package/lib/dependencies/URLDependency.js +157 -33
  296. package/lib/dependencies/URLPlugin.js +2 -0
  297. package/lib/dependencies/UnsupportedDependency.js +12 -13
  298. package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
  299. package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
  300. package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
  301. package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
  302. package/lib/dependencies/WorkerDependency.js +111 -27
  303. package/lib/dependencies/WorkletDependency.js +278 -0
  304. package/lib/dependencies/getFunctionExpression.js +1 -0
  305. package/lib/dependencies/processExportInfo.js +14 -11
  306. package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
  307. package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
  308. package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
  309. package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
  310. package/lib/{DllModule.js → dll/DllModule.js} +36 -24
  311. package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
  312. package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
  313. package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
  314. package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
  315. package/lib/electron/ElectronTargetPlugin.js +24 -5
  316. package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
  317. package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
  318. package/lib/errors/BuildCycleError.js +1 -1
  319. package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
  320. package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
  321. package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
  322. package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
  323. package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
  324. package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
  325. package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
  326. package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
  327. package/lib/errors/JSONParseError.js +115 -0
  328. package/lib/errors/LoaderLoadingError.js +20 -0
  329. package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
  330. package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
  331. package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
  332. package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
  333. package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
  334. package/lib/errors/ModuleNotFoundError.js +94 -0
  335. package/lib/errors/ModuleParseError.js +141 -0
  336. package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
  337. package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
  338. package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
  339. package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
  340. package/lib/errors/NonErrorEmittedError.js +30 -0
  341. package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
  342. package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
  343. package/lib/errors/WebpackError.js +84 -0
  344. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
  345. package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
  346. package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
  347. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +71 -49
  348. package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
  349. package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
  350. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
  351. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
  352. package/lib/hmr/LazyCompilationPlugin.js +154 -7
  353. package/lib/hmr/lazyCompilationBackend.js +34 -8
  354. package/lib/html/HtmlGenerator.js +1470 -0
  355. package/lib/html/HtmlModule.js +41 -0
  356. package/lib/html/HtmlModulesPlugin.js +1111 -0
  357. package/lib/html/HtmlParser.js +1970 -0
  358. package/lib/html/favicon.svg +1 -0
  359. package/lib/html/syntax.js +9020 -0
  360. package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
  361. package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
  362. package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
  363. package/lib/ids/HashedModuleIdsPlugin.js +2 -1
  364. package/lib/ids/IdHelpers.js +25 -2
  365. package/lib/ids/NamedChunkIdsPlugin.js +3 -1
  366. package/lib/ids/NamedModuleIdsPlugin.js +3 -1
  367. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  368. package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
  369. package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
  370. package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
  371. package/lib/ids/SyncModuleIdsPlugin.js +3 -1
  372. package/lib/index.js +66 -15
  373. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
  374. package/lib/javascript/BasicEvaluatedExpression.js +370 -49
  375. package/lib/javascript/ChunkFormatHelpers.js +2 -1
  376. package/lib/javascript/ChunkHelpers.js +1 -0
  377. package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
  378. package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
  379. package/lib/javascript/JavascriptGenerator.js +213 -51
  380. package/lib/javascript/JavascriptModule.js +54 -0
  381. package/lib/javascript/JavascriptModulesPlugin.js +579 -183
  382. package/lib/javascript/JavascriptParser.js +1289 -462
  383. package/lib/javascript/JavascriptParserHelpers.js +10 -7
  384. package/lib/javascript/StartupHelpers.js +5 -0
  385. package/lib/javascript/syntax.js +4380 -0
  386. package/lib/json/JsonData.js +5 -0
  387. package/lib/json/JsonGenerator.js +21 -0
  388. package/lib/json/JsonModule.js +40 -0
  389. package/lib/json/JsonModulesPlugin.js +8 -1
  390. package/lib/json/JsonParser.js +18 -27
  391. package/lib/library/AbstractLibraryPlugin.js +17 -2
  392. package/lib/library/AmdLibraryPlugin.js +8 -0
  393. package/lib/library/AssignLibraryPlugin.js +21 -3
  394. package/lib/library/EnableLibraryPlugin.js +8 -2
  395. package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
  396. package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
  397. package/lib/library/JsonpLibraryPlugin.js +8 -0
  398. package/lib/library/ModuleLibraryPlugin.js +154 -7
  399. package/lib/library/SystemLibraryPlugin.js +11 -3
  400. package/lib/library/UmdLibraryPlugin.js +16 -0
  401. package/lib/loaders/LoaderRunner.js +714 -0
  402. package/lib/loaders/loadLoader.js +100 -0
  403. package/lib/logging/Logger.js +17 -0
  404. package/lib/logging/createConsoleLogger.js +7 -0
  405. package/lib/logging/runtime.js +2 -0
  406. package/lib/logging/truncateArgs.js +2 -0
  407. package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
  408. package/lib/node/NodeEnvironmentPlugin.js +7 -3
  409. package/lib/node/NodeSourcePlugin.js +1 -1
  410. package/lib/node/NodeTargetPlugin.js +4 -63
  411. package/lib/node/NodeTemplatePlugin.js +3 -1
  412. package/lib/node/NodeWatchFileSystem.js +40 -22
  413. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
  414. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +23 -1
  415. package/lib/node/ReadFileCompileWasmPlugin.js +18 -1
  416. package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
  417. package/lib/node/nodeBuiltins.js +80 -0
  418. package/lib/node/nodeConsole.js +116 -64
  419. package/lib/optimize/AggressiveMergingPlugin.js +3 -1
  420. package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
  421. package/lib/optimize/ConcatenatedModule.js +585 -116
  422. package/lib/optimize/ConstExportsPlugin.js +211 -0
  423. package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
  424. package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
  425. package/lib/optimize/InlineExports.js +178 -0
  426. package/lib/optimize/InnerGraph.js +374 -262
  427. package/lib/optimize/InnerGraphPlugin.js +246 -117
  428. package/lib/optimize/LimitChunkCountPlugin.js +9 -0
  429. package/lib/optimize/MangleExportsPlugin.js +5 -1
  430. package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
  431. package/lib/optimize/MinChunkSizePlugin.js +2 -1
  432. package/lib/optimize/MinMaxSizeWarning.js +5 -4
  433. package/lib/optimize/ModuleConcatenationPlugin.js +159 -34
  434. package/lib/optimize/RealContentHashPlugin.js +125 -50
  435. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
  436. package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
  437. package/lib/optimize/RuntimeChunkPlugin.js +2 -1
  438. package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
  439. package/lib/optimize/SplitChunksPlugin.js +54 -6
  440. package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
  441. package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
  442. package/lib/performance/NoAsyncChunksWarning.js +5 -3
  443. package/lib/performance/SizeLimitsPlugin.js +8 -2
  444. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
  445. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
  446. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
  447. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
  448. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
  449. package/lib/prefetch/ResourceHintPlugin.js +663 -0
  450. package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
  451. package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
  452. package/lib/prefetch/parseResourceHintOptions.js +103 -0
  453. package/lib/rules/BasicEffectRulePlugin.js +3 -0
  454. package/lib/rules/BasicMatcherRulePlugin.js +3 -0
  455. package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
  456. package/lib/rules/RuleSetCompiler.js +132 -0
  457. package/lib/rules/UseEffectRulePlugin.js +10 -3
  458. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
  459. package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
  460. package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
  461. package/lib/runtime/BaseUriRuntimeModule.js +1 -0
  462. package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
  463. package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
  464. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
  465. package/lib/runtime/CompatRuntimeModule.js +2 -0
  466. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
  467. package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
  468. package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
  469. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
  470. package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
  471. package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
  472. package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
  473. package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
  474. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
  475. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
  476. package/lib/runtime/GlobalRuntimeModule.js +1 -0
  477. package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
  478. package/lib/runtime/HelperRuntimeModule.js +5 -0
  479. package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
  480. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
  481. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
  482. package/lib/runtime/NonceRuntimeModule.js +1 -0
  483. package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
  484. package/lib/runtime/PublicPathRuntimeModule.js +1 -0
  485. package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
  486. package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
  487. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
  488. package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
  489. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
  490. package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
  491. package/lib/runtime/SystemContextRuntimeModule.js +1 -0
  492. package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
  493. package/lib/runtime/WorkerRuntimeModule.js +33 -0
  494. package/lib/schemes/DataUriPlugin.js +14 -2
  495. package/lib/schemes/FileUriPlugin.js +1 -1
  496. package/lib/schemes/HttpUriPlugin.js +86 -4
  497. package/lib/schemes/VirtualUrlPlugin.js +8 -4
  498. package/lib/serialization/AggregateErrorSerializer.js +9 -6
  499. package/lib/serialization/ArraySerializer.js +6 -8
  500. package/lib/serialization/BinaryMiddleware.js +552 -463
  501. package/lib/serialization/DateObjectSerializer.js +4 -2
  502. package/lib/serialization/ErrorObjectSerializer.js +10 -6
  503. package/lib/serialization/FileMiddleware.js +50 -3
  504. package/lib/serialization/MapObjectSerializer.js +7 -9
  505. package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
  506. package/lib/serialization/ObjectMiddleware.js +73 -13
  507. package/lib/serialization/PlainObjectSerializer.js +16 -8
  508. package/lib/serialization/RegExpObjectSerializer.js +4 -2
  509. package/lib/serialization/Serializer.js +6 -0
  510. package/lib/serialization/SerializerMiddleware.js +14 -2
  511. package/lib/serialization/SetObjectSerializer.js +6 -8
  512. package/lib/serialization/SingleItemMiddleware.js +3 -0
  513. package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
  514. package/lib/sharing/ConsumeSharedModule.js +21 -7
  515. package/lib/sharing/ConsumeSharedPlugin.js +11 -11
  516. package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
  517. package/lib/sharing/ProvideForSharedDependency.js +1 -0
  518. package/lib/sharing/ProvideSharedDependency.js +34 -15
  519. package/lib/sharing/ProvideSharedModule.js +42 -12
  520. package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
  521. package/lib/sharing/ProvideSharedPlugin.js +13 -8
  522. package/lib/sharing/SharePlugin.js +5 -1
  523. package/lib/sharing/ShareRuntimeModule.js +19 -16
  524. package/lib/sharing/resolveMatchedConfigs.js +6 -2
  525. package/lib/sharing/utils.js +9 -1
  526. package/lib/stats/DefaultStatsFactoryPlugin.js +94 -12
  527. package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
  528. package/lib/stats/DefaultStatsPrinterPlugin.js +64 -18
  529. package/lib/stats/StatsFactory.js +39 -18
  530. package/lib/stats/StatsPrinter.js +16 -2
  531. package/lib/typescript/TypeScriptPlugin.js +210 -0
  532. package/lib/url/URLParserPlugin.js +111 -23
  533. package/lib/util/ArrayHelpers.js +1 -0
  534. package/lib/util/ArrayQueue.js +10 -5
  535. package/lib/util/AsyncQueue.js +154 -74
  536. package/lib/util/Hash.js +2 -2
  537. package/lib/util/IterableHelpers.js +3 -0
  538. package/lib/util/LazyBucketSortedSet.js +26 -0
  539. package/lib/util/LazySet.js +45 -4
  540. package/lib/util/LocConverter.js +64 -0
  541. package/lib/util/ParallelismFactorCalculator.js +1 -0
  542. package/lib/util/Queue.js +6 -3
  543. package/lib/util/Semaphore.js +15 -1
  544. package/lib/util/SetHelpers.js +4 -1
  545. package/lib/util/SortableSet.js +7 -1
  546. package/lib/util/SourceProcessor.js +119 -0
  547. package/lib/util/StackedCacheMap.js +20 -3
  548. package/lib/util/StackedMap.js +162 -43
  549. package/lib/util/StringXor.js +1 -1
  550. package/lib/util/TupleQueue.js +7 -3
  551. package/lib/util/TupleSet.js +14 -0
  552. package/lib/util/URLAbsoluteSpecifier.js +1 -0
  553. package/lib/util/WeakTupleMap.js +60 -1
  554. package/lib/util/binarySearchBounds.js +3 -2
  555. package/lib/util/chainedImports.js +3 -3
  556. package/lib/util/cleverMerge.js +19 -2
  557. package/lib/util/comparators.js +35 -4
  558. package/lib/util/compileBooleanMatcher.js +9 -0
  559. package/lib/util/concatenate.js +80 -24
  560. package/lib/util/conventions.js +46 -1
  561. package/lib/util/createHash.js +0 -1
  562. package/lib/util/createHooksRegistry.js +43 -0
  563. package/lib/util/createMappings.js +118 -0
  564. package/lib/util/dataURL.js +3 -2
  565. package/lib/util/deprecation.js +19 -0
  566. package/lib/util/deterministicGrouping.js +46 -17
  567. package/lib/util/extractSourceMap.js +2 -1
  568. package/lib/util/extractUrlAndGlobal.js +1 -0
  569. package/lib/util/findGraphRoots.js +7 -0
  570. package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
  571. package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
  572. package/lib/util/fs.js +87 -14
  573. package/lib/util/generateDebugId.js +1 -0
  574. package/lib/util/globUtils.js +710 -0
  575. package/lib/util/hash/BatchedHash.js +1 -0
  576. package/lib/util/hash/BulkUpdateHash.js +1 -0
  577. package/lib/util/hash/DebugHash.js +1 -0
  578. package/lib/util/hash/hash-digest.js +32 -15
  579. package/lib/util/hash/md4.js +1 -1
  580. package/lib/util/hash/wasm-hash.js +5 -0
  581. package/lib/util/hash/xxhash64.js +1 -1
  582. package/lib/util/identifier.js +97 -6
  583. package/lib/util/implicitTypeLoaderFallback.js +62 -0
  584. package/lib/util/internalSerializables.js +102 -60
  585. package/lib/util/magicComment.js +149 -7
  586. package/lib/util/makeSerializable.js +7 -0
  587. package/lib/util/memoize.js +2 -0
  588. package/lib/util/mimeTypes.js +176 -0
  589. package/lib/util/nonNumericOnlyHash.js +31 -1
  590. package/lib/util/numberHash.js +2 -2
  591. package/lib/util/parseJson.js +41 -0
  592. package/lib/util/processAsyncTree.js +8 -0
  593. package/lib/util/property.js +9 -2
  594. package/lib/util/publicPathPlaceholder.js +64 -0
  595. package/lib/util/registerExternalSerializer.js +24 -4
  596. package/lib/util/removeBOM.js +1 -0
  597. package/lib/util/runtime.js +32 -0
  598. package/lib/util/semver.js +15 -0
  599. package/lib/util/serialization.js +2 -0
  600. package/lib/util/smartGrouping.js +8 -0
  601. package/lib/util/source.js +23 -0
  602. package/lib/util/topologicalSort.js +69 -0
  603. package/lib/validateSchema.js +1 -0
  604. package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
  605. package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
  606. package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
  607. package/lib/wasm-async/AsyncWasmModule.js +77 -0
  608. package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
  609. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
  610. package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
  611. package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
  612. package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
  613. package/lib/wasm-sync/SyncWasmModule.js +39 -0
  614. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
  615. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
  616. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
  617. package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
  618. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
  619. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
  620. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
  621. package/lib/wasm-sync/WebAssemblyParser.js +9 -3
  622. package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
  623. package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
  624. package/lib/web/FetchCompileWasmPlugin.js +27 -1
  625. package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
  626. package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
  627. package/lib/web/JsonpTemplatePlugin.js +2 -1
  628. package/lib/webpack.js +78 -1
  629. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
  630. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
  631. package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
  632. package/module.d.ts +21 -0
  633. package/package.json +79 -77
  634. package/schemas/WebpackOptions.check.js +1 -1
  635. package/schemas/WebpackOptions.json +1117 -79
  636. package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
  637. package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
  638. package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
  639. package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
  640. package/schemas/plugins/HtmlParserOptions.check.js +6 -0
  641. package/schemas/plugins/HtmlParserOptions.json +3 -0
  642. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  643. package/schemas/plugins/ProgressPlugin.json +38 -0
  644. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  645. package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
  646. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  647. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  648. package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
  649. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
  650. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
  651. package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
  652. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
  653. package/schemas/plugins/css/CssParserOptions.check.js +1 -1
  654. package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
  655. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
  656. package/types.d.ts +8608 -1159
  657. package/lib/CaseSensitiveModulesWarning.js +0 -72
  658. package/lib/GraphHelpers.js +0 -46
  659. package/lib/ModuleParseError.js +0 -125
  660. package/lib/NoModeWarning.js +0 -23
  661. package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
  662. package/lib/css/walkCssTokens.js +0 -1843
  663. package/lib/util/AppendOnlyStackedSet.js +0 -78
  664. /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
  665. /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
  666. /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
  667. /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
@@ -8,10 +8,14 @@
8
8
  const ConditionalInitFragment = require("../ConditionalInitFragment");
9
9
  const Dependency = require("../Dependency");
10
10
  const { UsageState } = require("../ExportsInfo");
11
- const HarmonyLinkingError = require("../HarmonyLinkingError");
12
11
  const InitFragment = require("../InitFragment");
13
12
  const RuntimeGlobals = require("../RuntimeGlobals");
14
13
  const Template = require("../Template");
14
+ const {
15
+ InlinedUsedName,
16
+ isExportInlined,
17
+ isInlineEnabled
18
+ } = require("../optimize/InlineExports");
15
19
  const {
16
20
  getMakeDeferredNamespaceModeFromExportsType
17
21
  } = require("../runtime/MakeDeferredNamespaceObjectRuntime");
@@ -26,6 +30,7 @@ const {
26
30
  } = require("../util/runtime");
27
31
  const HarmonyExportInitFragment = require("./HarmonyExportInitFragment");
28
32
  const HarmonyImportDependency = require("./HarmonyImportDependency");
33
+ const HarmonyLinkingError = require("./HarmonyLinkingError");
29
34
  const { ImportPhaseUtils } = require("./ImportPhase");
30
35
  const processExportInfo = require("./processExportInfo");
31
36
 
@@ -33,6 +38,7 @@ const processExportInfo = require("./processExportInfo");
33
38
  /** @typedef {import("../ChunkGraph")} ChunkGraph */
34
39
  /** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */
35
40
  /** @typedef {import("../Dependency").GetConditionFn} GetConditionFn */
41
+ /** @typedef {import("../Dependency").LazyUntil} LazyUntil */
36
42
  /** @typedef {import("../Dependency").RawReferencedExports} RawReferencedExports */
37
43
  /** @typedef {import("../Dependency").ReferencedExports} ReferencedExports */
38
44
  /** @typedef {import("../Dependency").TRANSITIVE} TRANSITIVE */
@@ -50,15 +56,19 @@ const processExportInfo = require("./processExportInfo");
50
56
  /** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
51
57
  /** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
52
58
  /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
53
- /** @typedef {import("../WebpackError")} WebpackError */
59
+ /** @typedef {import("../errors/WebpackError")} WebpackError */
54
60
  /** @typedef {import("../javascript/JavascriptParser").ImportAttributes} ImportAttributes */
55
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
56
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
61
+ /** @typedef {[Ids, string | null, Set<string>, ReadonlyArray<HarmonyExportImportedSpecifierDependency> | null, ExportPresenceMode, HarmonyStarExportsList | null]} SerializedData */
62
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<SerializedData>} ObjectDeserializerContext */
63
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<SerializedData>} ObjectSerializerContext */
64
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[HarmonyExportImportedSpecifierDependency[]]>} StarListDeserializerContext */
65
+ /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[HarmonyExportImportedSpecifierDependency[]]>} StarListSerializerContext */
57
66
  /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
58
67
  /** @typedef {import("./HarmonyImportDependency").Ids} Ids */
59
68
  /** @typedef {import("./HarmonyImportDependency").ExportPresenceMode} ExportPresenceMode */
60
69
  /** @typedef {import("./HarmonyExportInitFragment").ExportMap} ExportMap */
61
70
  /** @typedef {import("../dependencies/ImportPhase").ImportPhaseType} ImportPhaseType */
71
+ /** @typedef {import("../javascript/JavascriptModule").JavascriptModuleBuildMeta} JavascriptModuleBuildMeta */
62
72
 
63
73
  /** @typedef {"missing" | "unused" | "empty-star" | "reexport-dynamic-default" | "reexport-named-default" | "reexport-namespace-object" | "reexport-fake-namespace-object" | "reexport-undefined" | "normal-reexport" | "dynamic-reexport"} ExportModeType */
64
74
 
@@ -70,6 +80,7 @@ const idsSymbol = /** @type {symbol} */ (
70
80
 
71
81
  class NormalReexportItem {
72
82
  /**
83
+ * Creates an instance of NormalReexportItem.
73
84
  * @param {string} name export name
74
85
  * @param {Ids} ids reexported ids from other module
75
86
  * @param {ExportInfo} exportInfo export info from other module
@@ -77,10 +88,15 @@ class NormalReexportItem {
77
88
  * @param {boolean} hidden true, if it is hidden behind another active export in the same module
78
89
  */
79
90
  constructor(name, ids, exportInfo, checked, hidden) {
91
+ /** @type {string} */
80
92
  this.name = name;
93
+ /** @type {Ids} */
81
94
  this.ids = ids;
95
+ /** @type {ExportInfo} */
82
96
  this.exportInfo = exportInfo;
97
+ /** @type {boolean} */
83
98
  this.checked = checked;
99
+ /** @type {boolean} */
84
100
  this.hidden = hidden;
85
101
  }
86
102
  }
@@ -90,6 +106,7 @@ class NormalReexportItem {
90
106
 
91
107
  class ExportMode {
92
108
  /**
109
+ * Creates an instance of ExportMode.
93
110
  * @param {ExportModeType} type type of the mode
94
111
  */
95
112
  constructor(type) {
@@ -126,7 +143,81 @@ class ExportMode {
126
143
 
127
144
  /** @typedef {number[]} DependencyIndices */
128
145
 
146
+ const RETURNS_TRUE = () => true;
147
+
148
+ /**
149
+ * Detect a per-name cycle when collecting `export *` contributions from
150
+ * `exportInfo`'s module into `parentModule`. The TC39 `ResolveExport`
151
+ * algorithm tracks a `resolveSet` of `(module, exportName)` pairs and
152
+ * returns null when an entry is revisited — letting the `StarExportEntries`
153
+ * loop fall through to a non-cyclic source. Webpack's static export graph
154
+ * does not run that resolution algorithm, so we approximate it: if the
155
+ * imported module's same-named export ultimately re-exports from
156
+ * `parentModule` under the same name, the star contribution is cyclic and
157
+ * must be skipped. The non-cyclic alternative (a sibling `export *` that
158
+ * provides a real binding) then wins.
159
+ *
160
+ * We walk the target chain one hop at a time using `findTarget` with a
161
+ * "match anything" filter so we can guard against namespace targets
162
+ * (`export * as ns from`, where `target.export` is undefined) and against
163
+ * unrelated cycles in the graph that would otherwise loop forever inside
164
+ * `_findTarget`.
165
+ * @param {ModuleGraph} moduleGraph the module graph
166
+ * @param {ExportInfo} exportInfo export info on the imported module
167
+ * @param {Module} parentModule the module that contains the star reexport
168
+ * @returns {boolean} true when this export reexports back to the parent module under the same name
169
+ */
170
+ const isStarReexportBackToParent = (moduleGraph, exportInfo, parentModule) => {
171
+ // Fast path: probe the first hop directly. The overwhelmingly common case
172
+ // in real builds is a terminal local binding (no `_target`) — `findTarget`
173
+ // returns `undefined` and we exit without allocating a `visited` set.
174
+ const firstTarget = exportInfo.findTarget(moduleGraph, RETURNS_TRUE);
175
+ if (!firstTarget || typeof firstTarget !== "object") return false;
176
+ const name = exportInfo.name;
177
+ if (
178
+ firstTarget.module === parentModule &&
179
+ Array.isArray(firstTarget.export) &&
180
+ firstTarget.export.length === 1 &&
181
+ firstTarget.export[0] === name
182
+ ) {
183
+ return true;
184
+ }
185
+ if (!Array.isArray(firstTarget.export) || firstTarget.export.length === 0) {
186
+ return false;
187
+ }
188
+ // Multi-hop chain — allocate visited tracking now. The set protects against
189
+ // unrelated cycles in the graph that would otherwise spin inside
190
+ // `_findTarget` (its `alreadyVisited` is only seeded for the entry node).
191
+ let current = moduleGraph
192
+ .getExportsInfo(firstTarget.module)
193
+ .getReadOnlyExportInfo(firstTarget.export[0]);
194
+ /** @type {Set<ExportInfo>} */
195
+ const visited = new Set([exportInfo, current]);
196
+ for (;;) {
197
+ const target = current.findTarget(moduleGraph, RETURNS_TRUE);
198
+ if (!target || typeof target !== "object") return false;
199
+ if (
200
+ target.module === parentModule &&
201
+ Array.isArray(target.export) &&
202
+ target.export.length === 1 &&
203
+ target.export[0] === name
204
+ ) {
205
+ return true;
206
+ }
207
+ if (!Array.isArray(target.export) || target.export.length === 0) {
208
+ return false;
209
+ }
210
+ const next = moduleGraph
211
+ .getExportsInfo(target.module)
212
+ .getReadOnlyExportInfo(target.export[0]);
213
+ if (visited.has(next)) return false;
214
+ visited.add(next);
215
+ current = next;
216
+ }
217
+ };
218
+
129
219
  /**
220
+ * Determine export assignments.
130
221
  * @param {ModuleGraph} moduleGraph module graph
131
222
  * @param {HarmonyExportImportedSpecifierDependency[]} dependencies dependencies
132
223
  * @param {HarmonyExportImportedSpecifierDependency=} additionalDependency additional dependency
@@ -146,6 +237,11 @@ const determineExportAssignments = (
146
237
  dependencies = [...dependencies, additionalDependency];
147
238
  }
148
239
 
240
+ const referenceDep = dependencies[0] || additionalDependency;
241
+ const parentModule = referenceDep
242
+ ? moduleGraph.getParentModule(referenceDep)
243
+ : null;
244
+
149
245
  for (const dep of dependencies) {
150
246
  const i = dependencyIndices.length;
151
247
  dependencyIndices[i] = names.size;
@@ -156,7 +252,11 @@ const determineExportAssignments = (
156
252
  if (
157
253
  exportInfo.provided === true &&
158
254
  exportInfo.name !== "default" &&
159
- !names.has(exportInfo.name)
255
+ !names.has(exportInfo.name) &&
256
+ !(
257
+ parentModule &&
258
+ isStarReexportBackToParent(moduleGraph, exportInfo, parentModule)
259
+ )
160
260
  ) {
161
261
  names.add(exportInfo.name);
162
262
  dependencyIndices[i] = names.size;
@@ -170,6 +270,7 @@ const determineExportAssignments = (
170
270
  };
171
271
 
172
272
  /**
273
+ * Finds dependency for name.
173
274
  * @param {object} options options
174
275
  * @param {ExportInfoName[]} options.names names
175
276
  * @param {DependencyIndices} options.dependencyIndices dependency indices
@@ -199,6 +300,7 @@ const findDependencyForName = (
199
300
  };
200
301
 
201
302
  /**
303
+ * Returns the export mode.
202
304
  * @param {ModuleGraph} moduleGraph the module graph
203
305
  * @param {HarmonyExportImportedSpecifierDependency} dep the dependency
204
306
  * @param {string} runtimeKey the runtime key
@@ -373,6 +475,7 @@ const getMode = (moduleGraph, dep, runtimeKey) => {
373
475
 
374
476
  class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
375
477
  /**
478
+ * Creates an instance of HarmonyExportImportedSpecifierDependency.
376
479
  * @param {string} request the request string
377
480
  * @param {number} sourceOrder the order in the original source file
378
481
  * @param {Ids} ids the requested export name of the imported module
@@ -398,15 +501,21 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
398
501
  ) {
399
502
  super(request, sourceOrder, phase, attributes);
400
503
 
504
+ /** @type {Ids} */
401
505
  this.ids = ids;
506
+ /** @type {string | null} */
402
507
  this.name = name;
508
+ /** @type {Set<string>} */
403
509
  this.activeExports = activeExports;
404
510
  this.otherStarExports = otherStarExports;
511
+ /** @type {ExportPresenceMode} */
405
512
  this.exportPresenceMode = exportPresenceMode;
513
+ /** @type {HarmonyStarExportsList | null} */
406
514
  this.allStarExports = allStarExports;
407
515
  }
408
516
 
409
517
  /**
518
+ * Could affect referencing module.
410
519
  * @returns {boolean | TRANSITIVE} true, when changes to the referenced module could affect the referencing module; TRANSITIVE, when changes to the referenced module could affect referencing modules of the referencing module
411
520
  */
412
521
  couldAffectReferencingModule() {
@@ -415,6 +524,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
415
524
 
416
525
  // TODO webpack 6 remove
417
526
  /**
527
+ * Returns id.
418
528
  * @deprecated
419
529
  */
420
530
  get id() {
@@ -423,6 +533,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
423
533
 
424
534
  // TODO webpack 6 remove
425
535
  /**
536
+ * Returns id.
426
537
  * @deprecated
427
538
  */
428
539
  getId() {
@@ -431,6 +542,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
431
542
 
432
543
  // TODO webpack 6 remove
433
544
  /**
545
+ * Updates id.
434
546
  * @deprecated
435
547
  */
436
548
  setId() {
@@ -442,6 +554,33 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
442
554
  }
443
555
 
444
556
  /**
557
+ * Returns the export name this dependency requests from its target module (lazy barrel optimization).
558
+ * @returns {string | true | null} export name, true for all exports, null for none
559
+ */
560
+ getForwardId() {
561
+ return this.ids.length > 0 ? this.ids[0] : true;
562
+ }
563
+
564
+ /**
565
+ * Returns how this dependency may be deferred when its parent module is side-effect-free (lazy barrel optimization).
566
+ * @returns {LazyUntil | null} lazy classification, null when it must be processed eagerly
567
+ */
568
+ getLazyUntil() {
569
+ return this.name !== null
570
+ ? Dependency.LAZY_UNTIL_ID
571
+ : Dependency.LAZY_UNTIL_FALLBACK;
572
+ }
573
+
574
+ /**
575
+ * Returns the export name for a `LAZY_UNTIL_LOCAL`/`LAZY_UNTIL_ID` classification (lazy barrel optimization).
576
+ * @returns {string | null} export name, null when not applicable
577
+ */
578
+ getLazyName() {
579
+ return this.name;
580
+ }
581
+
582
+ /**
583
+ * Returns the imported id.
445
584
  * @param {ModuleGraph} moduleGraph the module graph
446
585
  * @returns {Ids} the imported id
447
586
  */
@@ -450,6 +589,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
450
589
  }
451
590
 
452
591
  /**
592
+ * Updates ids using the provided module graph.
453
593
  * @param {ModuleGraph} moduleGraph the module graph
454
594
  * @param {Ids} ids the imported ids
455
595
  * @returns {void}
@@ -459,6 +599,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
459
599
  }
460
600
 
461
601
  /**
602
+ * Returns the export mode.
462
603
  * @param {ModuleGraph} moduleGraph the module graph
463
604
  * @param {RuntimeSpec} runtime the runtime
464
605
  * @returns {ExportMode} the export mode
@@ -472,6 +613,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
472
613
  }
473
614
 
474
615
  /**
616
+ * Gets star reexports.
475
617
  * @param {ModuleGraph} moduleGraph the module graph
476
618
  * @param {RuntimeSpec} runtime the runtime
477
619
  * @param {ExportsInfo} exportsInfo exports info about the current module (optional)
@@ -521,6 +663,10 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
521
663
  /** @type {Hidden | undefined} */
522
664
  const hidden = hiddenExports !== undefined ? new Set() : undefined;
523
665
 
666
+ const parentModule = /** @type {Module} */ (
667
+ moduleGraph.getParentModule(this)
668
+ );
669
+
524
670
  if (noExtraImports) {
525
671
  for (const exportInfo of exportsInfo.orderedExports) {
526
672
  const name = exportInfo.name;
@@ -530,10 +676,22 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
530
676
  importedExportsInfo.getReadOnlyExportInfo(name);
531
677
  if (importedExportInfo.provided === false) continue;
532
678
  if (hiddenExports !== undefined && hiddenExports.has(name)) {
679
+ // Earlier star deps already provided this name non-cyclically
680
+ // (`determineExportAssignments` filters cyclic candidates), so
681
+ // the cycle check below would be wasted work.
533
682
  /** @type {Hidden} */
534
683
  (hidden).add(name);
535
684
  continue;
536
685
  }
686
+ if (
687
+ isStarReexportBackToParent(
688
+ moduleGraph,
689
+ importedExportInfo,
690
+ parentModule
691
+ )
692
+ ) {
693
+ continue;
694
+ }
537
695
  exports.add(name);
538
696
  if (importedExportInfo.provided === true) continue;
539
697
  checked.add(name);
@@ -550,6 +708,15 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
550
708
  (hidden).add(name);
551
709
  continue;
552
710
  }
711
+ if (
712
+ isStarReexportBackToParent(
713
+ moduleGraph,
714
+ importedExportInfo,
715
+ parentModule
716
+ )
717
+ ) {
718
+ continue;
719
+ }
553
720
  exports.add(name);
554
721
  if (importedExportInfo.provided === true) continue;
555
722
  checked.add(name);
@@ -560,17 +727,36 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
560
727
  }
561
728
 
562
729
  /**
730
+ * Returns function to determine if the connection is active.
563
731
  * @param {ModuleGraph} moduleGraph module graph
564
732
  * @returns {null | false | GetConditionFn} function to determine if the connection is active
565
733
  */
566
734
  getCondition(moduleGraph) {
567
735
  return (connection, runtime) => {
568
736
  const mode = this.getMode(moduleGraph, runtime);
569
- return mode.type !== "unused" && mode.type !== "empty-star";
737
+ const active = mode.type !== "unused" && mode.type !== "empty-star";
738
+ if (!active) return active;
739
+
740
+ const module = connection.module;
741
+ if (!isInlineEnabled(module)) return true;
742
+ if (mode.type !== "normal-reexport") return true;
743
+ const exportsInfo = moduleGraph.getExportsInfo(module);
744
+ if (exportsInfo.otherExportsInfo.getUsed(runtime) !== UsageState.Unused) {
745
+ return true;
746
+ }
747
+ for (const item of /** @type {NormalReexportItem[]} */ (mode.items)) {
748
+ // Hidden/checked items can't be statically inlined away
749
+ if (item.hidden || item.checked) return true;
750
+ if (!isExportInlined(moduleGraph, module, item.ids, runtime)) {
751
+ return true;
752
+ }
753
+ }
754
+ return false;
570
755
  };
571
756
  }
572
757
 
573
758
  /**
759
+ * Gets module evaluation side effects state.
574
760
  * @param {ModuleGraph} moduleGraph the module graph
575
761
  * @returns {ConnectionState} how this dependency connects the module to referencing modules
576
762
  */
@@ -652,6 +838,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
652
838
  }
653
839
 
654
840
  /**
841
+ * Discover active exports from other star exports.
655
842
  * @param {ModuleGraph} moduleGraph the module graph
656
843
  * @returns {{ names: ExportInfoName[], namesSlice: number, dependencyIndices: DependencyIndices, dependencyIndex: number } | undefined} exported names and their origin dependency
657
844
  */
@@ -830,6 +1017,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
830
1017
  }
831
1018
 
832
1019
  /**
1020
+ * Get effective export presence level.
833
1021
  * @param {ModuleGraph} moduleGraph module graph
834
1022
  * @returns {ExportPresenceMode} effective mode
835
1023
  */
@@ -844,7 +1032,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
844
1032
  }
845
1033
 
846
1034
  /**
847
- * Returns warnings
1035
+ * Returns warnings.
848
1036
  * @param {ModuleGraph} moduleGraph module graph
849
1037
  * @returns {WebpackError[] | null | undefined} warnings
850
1038
  */
@@ -857,7 +1045,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
857
1045
  }
858
1046
 
859
1047
  /**
860
- * Returns errors
1048
+ * Returns errors.
861
1049
  * @param {ModuleGraph} moduleGraph module graph
862
1050
  * @returns {WebpackError[] | null | undefined} errors
863
1051
  */
@@ -870,6 +1058,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
870
1058
  }
871
1059
 
872
1060
  /**
1061
+ * Returns errors.
873
1062
  * @param {ModuleGraph} moduleGraph module graph
874
1063
  * @returns {WebpackError[] | undefined} errors
875
1064
  */
@@ -956,37 +1145,41 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
956
1145
  }
957
1146
 
958
1147
  /**
1148
+ * Serializes this instance into the provided serializer context.
959
1149
  * @param {ObjectSerializerContext} context context
960
1150
  */
961
1151
  serialize(context) {
962
- const { write, setCircularReference } = context;
963
-
964
- setCircularReference(this);
965
- write(this.ids);
966
- write(this.name);
967
- write(this.activeExports);
968
- write(this.otherStarExports);
969
- write(this.exportPresenceMode);
970
- write(this.allStarExports);
1152
+ context.setCircularReference(this);
1153
+ context
1154
+ .write(this.ids)
1155
+ .write(this.name)
1156
+ .write(this.activeExports)
1157
+ .write(this.otherStarExports)
1158
+ .write(this.exportPresenceMode)
1159
+ .write(this.allStarExports);
971
1160
 
972
1161
  super.serialize(context);
973
1162
  }
974
1163
 
975
1164
  /**
1165
+ * Restores this instance from the provided deserializer context.
976
1166
  * @param {ObjectDeserializerContext} context context
977
1167
  */
978
1168
  deserialize(context) {
979
- const { read, setCircularReference } = context;
980
-
981
- setCircularReference(this);
982
- this.ids = read();
983
- this.name = read();
984
- this.activeExports = read();
985
- this.otherStarExports = read();
986
- this.exportPresenceMode = read();
987
- this.allStarExports = read();
988
-
989
- super.deserialize(context);
1169
+ context.setCircularReference(this);
1170
+ this.ids = context.read();
1171
+ const c1 = context.rest;
1172
+ this.name = c1.read();
1173
+ const c2 = c1.rest;
1174
+ this.activeExports = c2.read();
1175
+ const c3 = c2.rest;
1176
+ this.otherStarExports = c3.read();
1177
+ const c4 = c3.rest;
1178
+ this.exportPresenceMode = c4.read();
1179
+ const c5 = c4.rest;
1180
+ this.allStarExports = c5.read();
1181
+
1182
+ super.deserialize(c5.rest);
990
1183
  }
991
1184
  }
992
1185
 
@@ -999,6 +1192,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
999
1192
  HarmonyImportDependency.Template
1000
1193
  ) {
1001
1194
  /**
1195
+ * Applies the plugin by registering its hooks on the compiler.
1002
1196
  * @param {Dependency} dependency the dependency for which the template should be applied
1003
1197
  * @param {ReplaceSource} source the current replace source which can be modified
1004
1198
  * @param {DependencyTemplateContext} templateContext the context object
@@ -1042,6 +1236,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
1042
1236
  }
1043
1237
 
1044
1238
  /**
1239
+ * Add export fragments.
1045
1240
  * @param {InitFragment<GenerateContext>[]} initFragments target array for init fragments
1046
1241
  * @param {HarmonyExportImportedSpecifierDependency} dep dependency
1047
1242
  * @param {ExportMode} mode the export mode
@@ -1085,7 +1280,9 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
1085
1280
  importVar,
1086
1281
  importedModule.getExportsType(
1087
1282
  moduleGraph,
1088
- module.buildMeta && module.buildMeta.strictHarmonyModule
1283
+ module.buildMeta &&
1284
+ /** @type {JavascriptModuleBuildMeta} */ (module.buildMeta)
1285
+ .strictHarmonyModule
1089
1286
  ),
1090
1287
  runtimeRequirements
1091
1288
  )
@@ -1233,7 +1430,8 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
1233
1430
  moduleGraph
1234
1431
  .getExportsInfo(importedModule)
1235
1432
  .getUsedName(ids, runtime),
1236
- runtimeRequirements
1433
+ runtimeRequirements,
1434
+ ids
1237
1435
  )
1238
1436
  );
1239
1437
  }
@@ -1293,12 +1491,14 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
1293
1491
  }
1294
1492
 
1295
1493
  /**
1494
+ * Gets reexport fragment.
1296
1495
  * @param {Module} module the current module
1297
1496
  * @param {string} comment comment
1298
1497
  * @param {UsedName} key key
1299
1498
  * @param {string} name name
1300
1499
  * @param {UsedName | null} valueKey value key
1301
1500
  * @param {RuntimeRequirements} runtimeRequirements runtime requirements
1501
+ * @param {string[]=} ids original ids on the imported side (for inline-rendering comment)
1302
1502
  * @returns {HarmonyExportInitFragment} harmony export init fragment
1303
1503
  */
1304
1504
  getReexportFragment(
@@ -1307,9 +1507,10 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
1307
1507
  key,
1308
1508
  name,
1309
1509
  valueKey,
1310
- runtimeRequirements
1510
+ runtimeRequirements,
1511
+ ids
1311
1512
  ) {
1312
- const returnValue = this.getReturnValue(name, valueKey);
1513
+ const returnValue = this.getReturnValue(name, valueKey, ids);
1313
1514
 
1314
1515
  runtimeRequirements.add(RuntimeGlobals.exports);
1315
1516
  runtimeRequirements.add(RuntimeGlobals.definePropertyGetters);
@@ -1322,6 +1523,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
1322
1523
  }
1323
1524
 
1324
1525
  /**
1526
+ * Gets reexport fake namespace object fragments.
1325
1527
  * @param {Module} module module
1326
1528
  * @param {UsedName} key key
1327
1529
  * @param {string} name name
@@ -1361,6 +1563,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
1361
1563
  }
1362
1564
 
1363
1565
  /**
1566
+ * Gets reexport deferred namespace object fragments.
1364
1567
  * @param {Module} module module
1365
1568
  * @param {ChunkGraph} chunkGraph chunkGraph
1366
1569
  * @param {UsedName} key key
@@ -1402,6 +1605,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
1402
1605
  }
1403
1606
 
1404
1607
  /**
1608
+ * Gets conditional reexport statement.
1405
1609
  * @param {Module} module module
1406
1610
  * @param {string} key key
1407
1611
  * @param {string} name name
@@ -1437,11 +1641,13 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
1437
1641
  }
1438
1642
 
1439
1643
  /**
1644
+ * Returns value.
1440
1645
  * @param {string} name name
1441
- * @param {null | false | string | string[]} valueKey value key
1646
+ * @param {null | false | string | string[] | import("../optimize/InlineExports").InlinedUsedName} valueKey value key
1647
+ * @param {string[]=} ids original imported ids (for inline-rendering comment)
1442
1648
  * @returns {string | undefined} value
1443
1649
  */
1444
- getReturnValue(name, valueKey) {
1650
+ getReturnValue(name, valueKey, ids) {
1445
1651
  if (valueKey === null) {
1446
1652
  return `${name}_default.a`;
1447
1653
  }
@@ -1454,7 +1660,14 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
1454
1660
  return "/* unused export */ undefined";
1455
1661
  }
1456
1662
 
1457
- return `${name}${propertyAccess(valueKey)}`;
1663
+ if (valueKey instanceof InlinedUsedName) {
1664
+ // Re-export forwards the source export's inlined literal as its own runtime value
1665
+ return valueKey.render(
1666
+ Template.toNormalComment(`inlined export ${propertyAccess(ids || [])}`)
1667
+ );
1668
+ }
1669
+
1670
+ return `${name}${propertyAccess(Array.isArray(valueKey) ? valueKey : [valueKey])}`;
1458
1671
  }
1459
1672
  };
1460
1673
 
@@ -1465,6 +1678,7 @@ class HarmonyStarExportsList {
1465
1678
  }
1466
1679
 
1467
1680
  /**
1681
+ * Processes the provided dep.
1468
1682
  * @param {HarmonyExportImportedSpecifierDependency} dep dependency
1469
1683
  * @returns {void}
1470
1684
  */
@@ -1477,7 +1691,8 @@ class HarmonyStarExportsList {
1477
1691
  }
1478
1692
 
1479
1693
  /**
1480
- * @param {ObjectSerializerContext} context context
1694
+ * Serializes this instance into the provided serializer context.
1695
+ * @param {StarListSerializerContext} context context
1481
1696
  */
1482
1697
  serialize({ write, setCircularReference }) {
1483
1698
  setCircularReference(this);
@@ -1485,7 +1700,8 @@ class HarmonyStarExportsList {
1485
1700
  }
1486
1701
 
1487
1702
  /**
1488
- * @param {ObjectDeserializerContext} context context
1703
+ * Restores this instance from the provided deserializer context.
1704
+ * @param {StarListDeserializerContext} context context
1489
1705
  */
1490
1706
  deserialize({ read, setCircularReference }) {
1491
1707
  setCircularReference(this);