webpack 5.111.0 → 5.112.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 (781) hide show
  1. package/README.md +1 -1
  2. package/lib/Chunk.js +3 -966
  3. package/lib/Compilation.js +237 -138
  4. package/lib/Compiler.js +23 -24
  5. package/lib/Dependency.js +3 -551
  6. package/lib/DependencyTemplate.js +3 -69
  7. package/lib/EntryPlugin.js +3 -68
  8. package/lib/Entrypoint.js +3 -121
  9. package/lib/ExternalsPlugin.js +3 -92
  10. package/lib/FileSystemInfo.js +3 -4629
  11. package/lib/InitFragment.js +3 -204
  12. package/lib/LibraryTemplatePlugin.js +3 -46
  13. package/lib/ModuleFilenameHelpers.js +3 -400
  14. package/lib/ModuleNotFoundError.js +2 -2
  15. package/lib/MultiCompiler.js +43 -24
  16. package/lib/NormalModule.js +3 -2190
  17. package/lib/NullFactory.js +3 -22
  18. package/lib/ProgressPlugin.js +3 -908
  19. package/lib/RawModule.js +3 -197
  20. package/lib/RequestShortener.js +3 -37
  21. package/lib/SingleEntryPlugin.js +1 -1
  22. package/lib/WebpackError.js +2 -2
  23. package/lib/asset/AssetBytesGenerator.js +15 -9
  24. package/lib/asset/AssetBytesParser.js +3 -3
  25. package/lib/asset/AssetGenerator.js +61 -38
  26. package/lib/asset/AssetModule.js +2 -2
  27. package/lib/asset/AssetModulesPlugin.js +6 -9
  28. package/lib/asset/AssetParser.js +3 -3
  29. package/lib/asset/AssetSourceGenerator.js +15 -9
  30. package/lib/asset/AssetSourceParser.js +3 -3
  31. package/lib/asset/RawDataUrlModule.js +17 -10
  32. package/lib/asset/WebManifestGenerator.js +7 -7
  33. package/lib/asset/WebManifestParser.js +5 -5
  34. package/lib/async-modules/AsyncModuleHelpers.js +6 -5
  35. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
  36. package/lib/async-modules/InferAsyncModulesPlugin.js +4 -3
  37. package/lib/async-modules/isGeneratorLowered.js +3 -3
  38. package/lib/bun/BunTargetPlugin.js +1 -1
  39. package/lib/cache/AddBuildDependenciesPlugin.js +2 -19
  40. package/lib/{Cache.js → cache/Cache.js} +1 -1
  41. package/lib/{CacheFacade.js → cache/CacheFacade.js} +5 -5
  42. package/lib/cache/IdleFileCachePlugin.js +2 -2
  43. package/lib/cache/MemoryCachePlugin.js +6 -6
  44. package/lib/cache/MemoryWithGcCachePlugin.js +9 -10
  45. package/lib/cache/PackFileCacheStrategy.js +11 -28
  46. package/lib/cache/ResolverCachePlugin.js +8 -4
  47. package/lib/cache/getLazyHashedEtag.js +3 -5
  48. package/lib/cache/mergeEtags.js +1 -1
  49. package/lib/{OptionsApply.js → config/OptionsApply.js} +3 -3
  50. package/lib/{PlatformPlugin.js → config/PlatformPlugin.js} +2 -2
  51. package/lib/{WebpackOptionsApply.js → config/WebpackOptionsApply.js} +217 -200
  52. package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
  53. package/lib/config/browserslistTargetHandler.js +3 -9
  54. package/lib/{cli.js → config/cli.js} +5 -158
  55. package/lib/config/defaults.js +192 -122
  56. package/lib/config/getClaimedAssetTypes.js +28 -21
  57. package/lib/config/normalization.js +18 -7
  58. package/lib/config/target.js +13 -4
  59. package/lib/container/ContainerEntryDependency.js +1 -1
  60. package/lib/container/ContainerEntryModule.js +13 -11
  61. package/lib/container/ContainerEntryModuleFactory.js +2 -2
  62. package/lib/container/ContainerExposedDependency.js +1 -1
  63. package/lib/container/ContainerPlugin.js +178 -5
  64. package/lib/container/ContainerReferencePlugin.js +75 -14
  65. package/lib/container/FallbackDependency.js +1 -1
  66. package/lib/container/FallbackItemDependency.js +1 -1
  67. package/lib/container/FallbackModule.js +12 -10
  68. package/lib/container/FallbackModuleFactory.js +2 -2
  69. package/lib/container/HoistContainerReferencesPlugin.js +10 -11
  70. package/lib/container/ModuleFederationPlugin.js +306 -7
  71. package/lib/container/RemoteModule.js +14 -10
  72. package/lib/container/RemoteRuntimeModule.js +5 -5
  73. package/lib/container/RemoteToExternalDependency.js +1 -1
  74. package/lib/container/moduleFederationHooks.js +1 -1
  75. package/lib/{ContextExclusionPlugin.js → context/ContextExclusionPlugin.js} +1 -1
  76. package/lib/{ContextModule.js → context/ContextModule.js} +50 -36
  77. package/lib/{ContextModuleFactory.js → context/ContextModuleFactory.js} +25 -24
  78. package/lib/{ContextReplacementPlugin.js → context/ContextReplacementPlugin.js} +4 -4
  79. package/lib/css/CssGenerator.js +57 -42
  80. package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
  81. package/lib/css/CssLoadingRuntimeModule.js +77 -44
  82. package/lib/css/CssModule.js +27 -29
  83. package/lib/css/CssModulesPlugin.js +128 -44
  84. package/lib/css/CssParser.js +700 -311
  85. package/lib/css/CssServerStylesRuntimeModule.js +3 -3
  86. package/lib/css/cssMinify.js +130 -54
  87. package/lib/css/data.js +7017 -4648
  88. package/lib/css/syntax-parser.js +19873 -0
  89. package/lib/css/syntax-printer.js +6037 -0
  90. package/lib/css/syntax.js +37 -17370
  91. package/lib/debug/ProfilingPlugin.js +55 -23
  92. package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
  93. package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +25 -29
  94. package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +2 -2
  95. package/lib/deno/DenoTargetPlugin.js +1 -1
  96. package/lib/dependencies/ConstDependency.js +3 -120
  97. package/lib/dependencies/ContextElementDependency.js +5 -172
  98. package/lib/dependencies/NullDependency.js +3 -37
  99. package/lib/dependencies/{AMDDefineDependency.js → amd/AMDDefineDependency.js} +12 -11
  100. package/lib/dependencies/{AMDDefineDependencyParserPlugin.js → amd/AMDDefineDependencyParserPlugin.js} +10 -10
  101. package/lib/dependencies/{AMDPlugin.js → amd/AMDPlugin.js} +11 -11
  102. package/lib/dependencies/{AMDRequireArrayDependency.js → amd/AMDRequireArrayDependency.js} +15 -13
  103. package/lib/dependencies/{AMDRequireContextDependency.js → amd/AMDRequireContextDependency.js} +11 -10
  104. package/lib/dependencies/{AMDRequireDependenciesBlock.js → amd/AMDRequireDependenciesBlock.js} +7 -6
  105. package/lib/dependencies/{AMDRequireDependenciesBlockParserPlugin.js → amd/AMDRequireDependenciesBlockParserPlugin.js} +10 -10
  106. package/lib/dependencies/{AMDRequireDependency.js → amd/AMDRequireDependency.js} +13 -12
  107. package/lib/dependencies/{AMDRequireItemDependency.js → amd/AMDRequireItemDependency.js} +8 -7
  108. package/lib/dependencies/{AMDRuntimeModules.js → amd/AMDRuntimeModules.js} +3 -3
  109. package/lib/dependencies/{LocalModule.js → amd/LocalModule.js} +8 -4
  110. package/lib/dependencies/{LocalModuleDependency.js → amd/LocalModuleDependency.js} +17 -10
  111. package/lib/dependencies/{LocalModulesHelpers.js → amd/LocalModulesHelpers.js} +1 -1
  112. package/lib/dependencies/{RequireJsStuffPlugin.js → amd/RequireJsStuffPlugin.js} +9 -9
  113. package/lib/dependencies/{UnsupportedDependency.js → amd/UnsupportedDependency.js} +11 -10
  114. package/lib/dependencies/{CommonJsDependencyHelpers.js → commonjs/CommonJsDependencyHelpers.js} +8 -9
  115. package/lib/dependencies/{CommonJsExportRequireDependency.js → commonjs/CommonJsExportRequireDependency.js} +176 -44
  116. package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
  117. package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +138 -61
  118. package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
  119. package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +39 -35
  120. package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +13 -12
  121. package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +47 -35
  122. package/lib/dependencies/{CommonJsRequireContextDependency.js → commonjs/CommonJsRequireContextDependency.js} +15 -14
  123. package/lib/dependencies/{CommonJsRequireDependency.js → commonjs/CommonJsRequireDependency.js} +33 -25
  124. package/lib/dependencies/{CommonJsSelfReferenceDependency.js → commonjs/CommonJsSelfReferenceDependency.js} +19 -20
  125. package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
  126. package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
  127. package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +5 -5
  128. package/lib/dependencies/{RequireEnsureDependency.js → commonjs/RequireEnsureDependency.js} +13 -12
  129. package/lib/dependencies/{RequireEnsureItemDependency.js → commonjs/RequireEnsureItemDependency.js} +7 -6
  130. package/lib/dependencies/{RequireEnsurePlugin.js → commonjs/RequireEnsurePlugin.js} +8 -8
  131. package/lib/dependencies/{RequireHeaderDependency.js → commonjs/RequireHeaderDependency.js} +14 -13
  132. package/lib/dependencies/{RequireIncludeDependency.js → commonjs/RequireIncludeDependency.js} +13 -12
  133. package/lib/dependencies/{RequireIncludeDependencyParserPlugin.js → commonjs/RequireIncludeDependencyParserPlugin.js} +3 -27
  134. package/lib/dependencies/{RequireIncludePlugin.js → commonjs/RequireIncludePlugin.js} +4 -4
  135. package/lib/dependencies/{RequireResolveContextDependency.js → commonjs/RequireResolveContextDependency.js} +11 -10
  136. package/lib/dependencies/{RequireResolveDependency.js → commonjs/RequireResolveDependency.js} +12 -11
  137. package/lib/dependencies/{RequireResolveHeaderDependency.js → commonjs/RequireResolveHeaderDependency.js} +13 -12
  138. package/lib/dependencies/commonjs/TopLevelThisParserPlugin.js +59 -0
  139. package/lib/dependencies/{ContextDependency.js → context/ContextDependency.js} +15 -14
  140. package/lib/dependencies/{ContextDependencyHelpers.js → context/ContextDependencyHelpers.js} +34 -18
  141. package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
  142. package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
  143. package/lib/dependencies/context/ContextElementDependency.js +198 -0
  144. package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
  145. package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +9 -9
  146. package/lib/dependencies/{ImportMetaContextPlugin.js → context/ImportMetaContextPlugin.js} +5 -5
  147. package/lib/dependencies/{ImportMetaGlobDependency.js → context/ImportMetaGlobDependency.js} +7 -6
  148. package/lib/dependencies/{ImportMetaGlobDependencyParserPlugin.js → context/ImportMetaGlobDependencyParserPlugin.js} +4 -4
  149. package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +9 -9
  150. package/lib/dependencies/{RequireContextDependency.js → context/RequireContextDependency.js} +7 -6
  151. package/lib/dependencies/{RequireContextDependencyParserPlugin.js → context/RequireContextDependencyParserPlugin.js} +2 -2
  152. package/lib/dependencies/{RequireContextPlugin.js → context/RequireContextPlugin.js} +5 -5
  153. package/lib/dependencies/{CachedConstDependency.js → core/CachedConstDependency.js} +12 -11
  154. package/lib/dependencies/core/ConstDependency.js +131 -0
  155. package/lib/dependencies/{ImportPhase.js → core/ImportPhase.js} +5 -4
  156. package/lib/dependencies/{ModuleDependency.js → core/ModuleDependency.js} +10 -7
  157. package/lib/dependencies/{ModuleDependencyTemplateAsId.js → core/ModuleDependencyTemplateAsId.js} +3 -3
  158. package/lib/dependencies/{ModuleDependencyTemplateAsRequireId.js → core/ModuleDependencyTemplateAsRequireId.js} +2 -2
  159. package/lib/dependencies/{ModuleInitFragmentDependency.js → core/ModuleInitFragmentDependency.js} +10 -9
  160. package/lib/dependencies/core/NullDependency.js +44 -0
  161. package/lib/dependencies/{RuntimeRequirementsDependency.js → core/RuntimeRequirementsDependency.js} +10 -9
  162. package/lib/dependencies/{StaticExportsDependency.js → core/StaticExportsDependency.js} +15 -8
  163. package/lib/dependencies/{CssIcssExportDependency.js → css/CssIcssExportDependency.js} +375 -100
  164. package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +26 -22
  165. package/lib/dependencies/{CssIcssSymbolDependency.js → css/CssIcssSymbolDependency.js} +13 -12
  166. package/lib/dependencies/{CssImportDependency.js → css/CssImportDependency.js} +15 -11
  167. package/lib/dependencies/{CssUrlDependency.js → css/CssUrlDependency.js} +26 -21
  168. package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
  169. package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
  170. package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
  171. package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +40 -41
  172. package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +22 -21
  173. package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
  174. package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +62 -93
  175. package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +83 -49
  176. package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
  177. package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
  178. package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +136 -122
  179. package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +68 -43
  180. package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +68 -65
  181. package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -4
  182. package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
  183. package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +74 -71
  184. package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +199 -97
  185. package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
  186. package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +86 -43
  187. package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +110 -61
  188. package/lib/dependencies/esm/ESMModulesPlugin.js +207 -0
  189. package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
  190. package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -11
  191. package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +2 -2
  192. package/lib/{util → dependencies/helpers}/chainedImports.js +8 -9
  193. package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
  194. package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
  195. package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
  196. package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
  197. package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
  198. package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
  199. package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +125 -243
  200. package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
  201. package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +72 -23
  202. package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +53 -19
  203. package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
  204. package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
  205. package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
  206. package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
  207. package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +20 -20
  208. package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
  209. package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
  210. package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
  211. package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
  212. package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
  213. package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +126 -107
  214. package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
  215. package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
  216. package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
  217. package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
  218. package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +34 -25
  219. package/lib/{url → dependencies/url}/URLParserPlugin.js +22 -26
  220. package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
  221. package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
  222. package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
  223. package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
  224. package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +46 -54
  225. package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +28 -20
  226. package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +25 -27
  227. package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
  228. package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
  229. package/lib/devtool/ModuleFilenameHelpers.js +413 -0
  230. package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
  231. package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +207 -129
  232. package/lib/{util → devtool}/generateDebugId.js +1 -1
  233. package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
  234. package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
  235. package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
  236. package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
  237. package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
  238. package/lib/dll/DelegatedModule.js +20 -18
  239. package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
  240. package/lib/dll/DelegatedPlugin.js +1 -1
  241. package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
  242. package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
  243. package/lib/dll/DllEntryPlugin.js +3 -3
  244. package/lib/dll/DllModule.js +11 -9
  245. package/lib/dll/DllModuleFactory.js +3 -3
  246. package/lib/dll/DllPlugin.js +18 -6
  247. package/lib/dll/DllReferencePlugin.js +102 -26
  248. package/lib/dll/LibManifestPlugin.js +9 -7
  249. package/lib/electron/ElectronTargetPlugin.js +2 -2
  250. package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
  251. package/lib/{dependencies → entry}/EntryDependency.js +11 -2
  252. package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
  253. package/lib/entry/EntryPlugin.js +75 -0
  254. package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
  255. package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
  256. package/lib/errors/BuildCycleError.js +1 -1
  257. package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
  258. package/lib/errors/ChunkRenderError.js +1 -1
  259. package/lib/errors/CodeGenerationError.js +1 -1
  260. package/lib/errors/CommentCompilationWarning.js +1 -1
  261. package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
  262. package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
  263. package/lib/errors/DeprecatedOptionWarning.js +30 -0
  264. package/lib/errors/DllManifestError.js +26 -0
  265. package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
  266. package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
  267. package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
  268. package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
  269. package/lib/errors/ErrorHelpers.js +222 -0
  270. package/lib/errors/ExternalStarReexportError.js +2 -2
  271. package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
  272. package/lib/errors/HookWebpackError.js +6 -5
  273. package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
  274. package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
  275. package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
  276. package/lib/errors/ModuleBuildError.js +1 -1
  277. package/lib/errors/ModuleDependencyError.js +2 -2
  278. package/lib/errors/ModuleDependencyWarning.js +2 -2
  279. package/lib/errors/ModuleError.js +1 -1
  280. package/lib/errors/ModuleHashingError.js +1 -1
  281. package/lib/errors/ModuleNotFoundError.js +3 -3
  282. package/lib/errors/ModuleParseError.js +1 -1
  283. package/lib/errors/ModuleRestoreError.js +1 -1
  284. package/lib/errors/ModuleStoreError.js +1 -1
  285. package/lib/errors/ModuleWarning.js +1 -1
  286. package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
  287. package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
  288. package/lib/errors/NodeStuffInWebError.js +7 -2
  289. package/lib/errors/PathVariableError.js +31 -0
  290. package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
  291. package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
  292. package/lib/errors/RuntimeModuleGenerationError.js +51 -0
  293. package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
  294. package/lib/errors/SystemImportDeprecationWarning.js +43 -0
  295. package/lib/errors/UnmergeableEntryExportsError.js +34 -0
  296. package/lib/errors/UnsupportedFeatureWarning.js +1 -1
  297. package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
  298. package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
  299. package/lib/errors/WebpackError.js +12 -3
  300. package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
  301. package/lib/esm/ModuleChunkFormatPlugin.js +19 -19
  302. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
  303. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
  304. package/lib/{ExternalModule.js → externals/ExternalModule.js} +85 -63
  305. package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +41 -39
  306. package/lib/externals/ExternalsPlugin.js +99 -0
  307. package/lib/fs/FileSystemInfo.js +4642 -0
  308. package/lib/{util → fs}/fs.js +22 -9
  309. package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
  310. package/lib/graph/Chunk.js +985 -0
  311. package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +187 -80
  312. package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
  313. package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
  314. package/lib/graph/Dependency.js +628 -0
  315. package/lib/graph/Entrypoint.js +136 -0
  316. package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +151 -99
  317. package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
  318. package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +36 -39
  319. package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
  320. package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +163 -72
  321. package/lib/{util → graph}/findGraphRoots.js +20 -21
  322. package/lib/graph/isDependencyKind.js +23 -0
  323. package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
  324. package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +49 -47
  325. package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
  326. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +10 -8
  327. package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
  328. package/lib/hmr/LazyCompilationPlugin.js +34 -26
  329. package/lib/html/HtmlGenerator.js +168 -125
  330. package/lib/html/HtmlModule.js +6 -2
  331. package/lib/html/HtmlModulesPlugin.js +260 -215
  332. package/lib/html/HtmlParser.js +598 -292
  333. package/lib/html/builtinEmbeddedRenderer.js +60 -13
  334. package/lib/html/data.js +23 -1
  335. package/lib/html/htmlMinify.js +120 -51
  336. package/lib/html/syntax-parser.js +15796 -0
  337. package/lib/html/syntax-printer.js +1034 -0
  338. package/lib/html/syntax.js +37 -14062
  339. package/lib/html/xmlMinify.js +67 -0
  340. package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
  341. package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
  342. package/lib/ids/HashedModuleIdsPlugin.js +31 -4
  343. package/lib/ids/IdHelpers.js +4 -4
  344. package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
  345. package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
  346. package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
  347. package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
  348. package/lib/ids/SyncModuleIdsPlugin.js +3 -3
  349. package/lib/{util → ids}/numberHash.js +1 -1
  350. package/lib/index.js +348 -99
  351. package/lib/{APIPlugin.js → javascript/APIPlugin.js} +29 -30
  352. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
  353. package/lib/javascript/BasicEvaluatedExpression.js +4 -4
  354. package/lib/javascript/ChunkHelpers.js +64 -4
  355. package/lib/javascript/CommonJsChunkFormatPlugin.js +4 -7
  356. package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +10 -11
  357. package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +90 -139
  358. package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
  359. package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
  360. package/lib/javascript/JavascriptGenerator.js +25 -18
  361. package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
  362. package/lib/javascript/JavascriptModule.js +4 -3
  363. package/lib/javascript/JavascriptModulesPlugin.js +458 -256
  364. package/lib/javascript/JavascriptParser.js +916 -287
  365. package/lib/javascript/JavascriptParserHelpers.js +1 -1
  366. package/lib/javascript/MergedEntryExports.js +196 -0
  367. package/lib/javascript/ScopeAnalyzer.js +3840 -5
  368. package/lib/javascript/StartupHelpers.js +6 -6
  369. package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +12 -15
  370. package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
  371. package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
  372. package/lib/javascript/data.js +533 -122
  373. package/lib/javascript/jsMinify.js +272 -0
  374. package/lib/javascript/regexp.js +67 -32
  375. package/lib/javascript/syntax-parser.js +18561 -0
  376. package/lib/javascript/syntax-printer-data.js +933 -0
  377. package/lib/javascript/syntax-printer.js +47106 -0
  378. package/lib/javascript/syntax.js +20 -10946
  379. package/lib/json/JsonData.js +1 -1
  380. package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
  381. package/lib/json/JsonGenerator.js +17 -11
  382. package/lib/json/JsonModule.js +2 -2
  383. package/lib/json/JsonModulesPlugin.js +1 -1
  384. package/lib/json/JsonParser.js +5 -5
  385. package/lib/json/jsonMinify.js +69 -0
  386. package/lib/library/AbstractLibraryPlugin.js +28 -15
  387. package/lib/library/AmdLibraryPlugin.js +4 -4
  388. package/lib/library/AssignLibraryPlugin.js +27 -11
  389. package/lib/library/EnableLibraryPlugin.js +1 -1
  390. package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
  391. package/lib/library/JsonpLibraryPlugin.js +1 -1
  392. package/lib/library/LibraryTemplatePlugin.js +53 -0
  393. package/lib/library/ModuleLibraryPlugin.js +207 -285
  394. package/lib/library/SystemLibraryPlugin.js +6 -8
  395. package/lib/library/UmdLibraryPlugin.js +3 -4
  396. package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
  397. package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
  398. package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
  399. package/lib/{dependencies → loaders}/LoaderPlugin.js +27 -2
  400. package/lib/loaders/LoaderRunner.js +160 -22
  401. package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
  402. package/lib/logging/Logger.js +7 -9
  403. package/lib/logging/ProgressPlugin.js +957 -0
  404. package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
  405. package/lib/{Generator.js → module/Generator.js} +38 -14
  406. package/lib/{Module.js → module/Module.js} +122 -54
  407. package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
  408. package/lib/module/NormalModule.js +2348 -0
  409. package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +53 -54
  410. package/lib/module/NullFactory.js +29 -0
  411. package/lib/{Parser.js → module/Parser.js} +3 -3
  412. package/lib/module/RawModule.js +208 -0
  413. package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
  414. package/lib/{util → module}/extractSourceMap.js +2 -2
  415. package/lib/{util → module}/findCaseMismatch.js +2 -2
  416. package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
  417. package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
  418. package/lib/{dependencies → node}/ExternalModuleInitFragment.js +6 -5
  419. package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
  420. package/lib/node/NodeEnvironmentPlugin.js +11 -1
  421. package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
  422. package/lib/node/NodeTargetPlugin.js +1 -1
  423. package/lib/node/NodeWatchFileSystem.js +61 -15
  424. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
  425. package/lib/node/ReadFileCompileAsyncWasmPlugin.js +9 -7
  426. package/lib/node/ReadFileCompileWasmPlugin.js +7 -5
  427. package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
  428. package/lib/node/nodeConsole.js +2 -4
  429. package/lib/optimize/AggressiveMergingPlugin.js +5 -7
  430. package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
  431. package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
  432. package/lib/optimize/ConcatenatedModule.js +305 -309
  433. package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
  434. package/lib/optimize/ConstExportsPlugin.js +7 -7
  435. package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
  436. package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
  437. package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +25 -30
  438. package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +26 -30
  439. package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
  440. package/lib/optimize/FlagIncludedChunksPlugin.js +5 -13
  441. package/lib/optimize/InlineExports.js +11 -3
  442. package/lib/optimize/InnerGraph.js +5 -13
  443. package/lib/optimize/InnerGraphPlugin.js +17 -23
  444. package/lib/optimize/LazyBarrels.js +584 -0
  445. package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
  446. package/lib/optimize/LimitChunkCountPlugin.js +21 -15
  447. package/lib/optimize/MangleExportsPlugin.js +8 -9
  448. package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
  449. package/lib/optimize/MinChunkSizePlugin.js +9 -6
  450. package/lib/optimize/ModuleConcatenationPlugin.js +23 -16
  451. package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
  452. package/lib/optimize/RealContentHashPlugin.js +16 -7
  453. package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
  454. package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
  455. package/lib/optimize/SideEffectsFlagPlugin.js +25 -37
  456. package/lib/optimize/SplitChunksPlugin.js +715 -159
  457. package/lib/{util → optimize}/TupleQueue.js +9 -9
  458. package/lib/optimize/chunkSetIntersections.js +437 -0
  459. package/lib/{util → optimize}/deterministicGrouping.js +25 -30
  460. package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
  461. package/lib/{CleanPlugin.js → output/CleanPlugin.js} +66 -24
  462. package/lib/{CopyPlugin.js → output/CopyPlugin.js} +142 -67
  463. package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
  464. package/lib/output/SSRManifestPlugin.js +349 -0
  465. package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
  466. package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
  467. package/lib/performance/BroadContextsPlugin.js +4 -4
  468. package/lib/performance/CacheEffectivenessPlugin.js +5 -7
  469. package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
  470. package/lib/performance/DuplicateModulesPlugin.js +3 -4
  471. package/lib/performance/DuplicatePackagesPlugin.js +3 -3
  472. package/lib/performance/DynamicExportsPlugin.js +2 -2
  473. package/lib/performance/EvalUsagePlugin.js +3 -3
  474. package/lib/performance/HotspotsPlugin.js +11 -10
  475. package/lib/performance/LargeModulesPlugin.js +2 -3
  476. package/lib/performance/LegacyJavascriptPlugin.js +1 -2
  477. package/lib/performance/MissingSideEffectsPlugin.js +2 -3
  478. package/lib/performance/MissingSourceMapsPlugin.js +5 -6
  479. package/lib/performance/PureAnnotationsPlugin.js +3 -3
  480. package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
  481. package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
  482. package/lib/performance/SizeLimitsPlugin.js +13 -16
  483. package/lib/performance/TopLevelThisPlugin.js +8 -7
  484. package/lib/performance/UnsplitVendorsPlugin.js +1 -2
  485. package/lib/performance/UnusedAliasesPlugin.js +6 -7
  486. package/lib/performance/UnusedAssetsPlugin.js +5 -5
  487. package/lib/performance/UnusedDefinesPlugin.js +2 -2
  488. package/lib/performance/UnusedExternalsPlugin.js +3 -4
  489. package/lib/performance/UnusedFederationPlugin.js +2 -4
  490. package/lib/performance/UnusedModulesPlugin.js +5 -4
  491. package/lib/performance/getModuleSize.js +1 -1
  492. package/lib/performance/hasOnlyUnusedExports.js +4 -4
  493. package/lib/performance/isOnlyReexported.js +7 -6
  494. package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
  495. package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
  496. package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +7 -9
  497. package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
  498. package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
  499. package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
  500. package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
  501. package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
  502. package/lib/prefetch/ResourceHintPlugin.js +82 -65
  503. package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
  504. package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -13
  505. package/lib/prefetch/parseResourceHintOptions.js +4 -3
  506. package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
  507. package/lib/{dependencies → provide}/ProvidedDependency.js +14 -13
  508. package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
  509. package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
  510. package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
  511. package/lib/resolve/getResolveOptionsKey.js +59 -0
  512. package/lib/rules/RuleSetCompiler.js +27 -46
  513. package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
  514. package/lib/runtime/AsyncModuleRuntimeModule.js +10 -9
  515. package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
  516. package/lib/runtime/BaseUriRuntimeModule.js +3 -3
  517. package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
  518. package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
  519. package/lib/runtime/CompatRuntimeModule.js +4 -4
  520. package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
  521. package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
  522. package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
  523. package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
  524. package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
  525. package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
  526. package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
  527. package/lib/runtime/GetChunkFilenameRuntimeModule.js +9 -10
  528. package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
  529. package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
  530. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
  531. package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
  532. package/lib/runtime/GlobalRuntimeModule.js +5 -7
  533. package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
  534. package/lib/runtime/HelperRuntimeModule.js +16 -1
  535. package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
  536. package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +135 -102
  537. package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
  538. package/lib/runtime/NonceRuntimeModule.js +2 -2
  539. package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
  540. package/lib/runtime/PublicPathRuntimeModule.js +2 -2
  541. package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
  542. package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +18 -1
  543. package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
  544. package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
  545. package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +48 -50
  546. package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
  547. package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
  548. package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
  549. package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
  550. package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
  551. package/lib/runtime/SystemContextRuntimeModule.js +2 -2
  552. package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
  553. package/lib/runtime/WorkerRuntimeModule.js +1 -1
  554. package/lib/runtime/baseUri.js +1 -1
  555. package/lib/schemes/DataUriPlugin.js +4 -7
  556. package/lib/schemes/HttpUriPlugin.js +67 -11
  557. package/lib/schemes/VirtualUrlPlugin.js +50 -16
  558. package/lib/serialization/AggregateErrorSerializer.js +2 -2
  559. package/lib/serialization/BinaryMiddleware.js +9 -9
  560. package/lib/serialization/FileMiddleware.js +19 -19
  561. package/lib/serialization/ObjectMiddleware.js +77 -49
  562. package/lib/serialization/SerializerMiddleware.js +2 -2
  563. package/lib/serialization/SingleItemMiddleware.js +4 -2
  564. package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
  565. package/lib/sharing/ConsumeSharedModule.js +18 -14
  566. package/lib/sharing/ConsumeSharedPlugin.js +148 -42
  567. package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
  568. package/lib/sharing/ProvideForSharedDependency.js +9 -1
  569. package/lib/sharing/ProvideSharedDependency.js +1 -1
  570. package/lib/sharing/ProvideSharedModule.js +11 -9
  571. package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
  572. package/lib/sharing/ProvideSharedPlugin.js +111 -20
  573. package/lib/sharing/SharePlugin.js +102 -9
  574. package/lib/sharing/ShareRuntimeModule.js +6 -6
  575. package/lib/sharing/resolveMatchedConfigs.js +1 -1
  576. package/lib/{util → sharing}/semver.js +19 -19
  577. package/lib/sharing/utils.js +59 -2
  578. package/lib/stats/DefaultStatsFactoryPlugin.js +25 -23
  579. package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
  580. package/lib/stats/DefaultStatsPrinterPlugin.js +3 -3
  581. package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
  582. package/lib/{Stats.js → stats/Stats.js} +4 -4
  583. package/lib/stats/StatsFactory.js +14 -13
  584. package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
  585. package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
  586. package/lib/template/DependencyTemplate.js +77 -0
  587. package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
  588. package/lib/template/InitFragment.js +223 -0
  589. package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
  590. package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
  591. package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
  592. package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +178 -106
  593. package/lib/{Template.js → template/Template.js} +13 -11
  594. package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +35 -82
  595. package/lib/typescript/TypeScriptPlugin.js +5 -6
  596. package/lib/util/LocConverter.js +4 -7
  597. package/lib/util/RequestShortener.js +44 -0
  598. package/lib/util/SortableSet.js +87 -22
  599. package/lib/util/SourceProcessor.js +364 -66
  600. package/lib/util/TupleSet.js +27 -27
  601. package/lib/util/WeakTupleMap.js +10 -12
  602. package/lib/util/buildDiagnostics.js +2 -2
  603. package/lib/util/comparators.js +10 -10
  604. package/lib/util/concatenate.js +32 -151
  605. package/lib/util/createHooksRegistry.js +1 -2
  606. package/lib/util/createMappings.js +111 -0
  607. package/lib/util/dataURL.js +96 -18
  608. package/lib/util/deprecation.js +1 -1
  609. package/lib/util/extractComments.js +118 -0
  610. package/lib/util/formatLocation.js +1 -1
  611. package/lib/util/globUtils.js +197 -16
  612. package/lib/util/haltVisitors.js +51 -0
  613. package/lib/util/handlerKeys.js +2 -2
  614. package/lib/util/hash/wasm-hash.js +3 -4
  615. package/lib/util/identifier.js +117 -1
  616. package/lib/util/implicitTypeLoaderFallback.js +6 -4
  617. package/lib/util/internalSerializables.js +295 -103
  618. package/lib/util/magicComment.js +12 -7
  619. package/lib/util/makeSerializable.js +23 -4
  620. package/lib/util/parseJson.js +1 -1
  621. package/lib/util/preloadModuleType.js +5 -2
  622. package/lib/util/registerExternalSerializer.js +2 -2
  623. package/lib/util/removeBOM.js +1 -1
  624. package/lib/util/runtime.js +1 -1
  625. package/lib/util/serialization.js +4 -1
  626. package/lib/util/source.js +2 -2
  627. package/lib/util/terminalColors.js +161 -0
  628. package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
  629. package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
  630. package/lib/{wasm-async → wasm}/AsyncWasmModule.js +9 -5
  631. package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +11 -6
  632. package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +16 -11
  633. package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
  634. package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +8 -8
  635. package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
  636. package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +9 -7
  637. package/lib/wasm/wasmModuleFilename.js +2 -2
  638. package/lib/wasm-sync/SyncWasmModule.js +3 -3
  639. package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +11 -12
  640. package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
  641. package/lib/wasm-sync/WebAssemblyGenerator.js +15 -9
  642. package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +19 -16
  643. package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
  644. package/lib/wasm-sync/WebAssemblyParser.js +6 -6
  645. package/lib/wasm-sync/WebAssemblyUtils.js +8 -9
  646. package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
  647. package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
  648. package/lib/{Watching.js → watch/Watching.js} +8 -8
  649. package/lib/web/FetchCompileAsyncWasmPlugin.js +8 -6
  650. package/lib/web/FetchCompileWasmPlugin.js +6 -4
  651. package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
  652. package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
  653. package/lib/web/JsonpTemplatePlugin.js +1 -1
  654. package/lib/webpack.js +27 -17
  655. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
  656. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
  657. package/package.json +70 -40
  658. package/schemas/WebpackOptions.check.js +2 -1
  659. package/schemas/WebpackOptions.d.json.ts +2 -0
  660. package/schemas/WebpackOptions.json +294 -74
  661. package/schemas/plugins/BannerPlugin.check.js +2 -1
  662. package/schemas/plugins/BannerPlugin.json +29 -2
  663. package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -0
  664. package/schemas/plugins/HtmlParserOptions.check.js +2 -1
  665. package/schemas/plugins/IgnorePlugin.check.js +1 -0
  666. package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
  667. package/schemas/plugins/IgnorePlugin.json +1 -1
  668. package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -0
  669. package/schemas/plugins/ManifestPlugin.check.js +1 -0
  670. package/schemas/plugins/ManifestPlugin.json +3 -3
  671. package/schemas/plugins/ProgressPlugin.check.js +2 -1
  672. package/schemas/plugins/ProgressPlugin.json +2 -7
  673. package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
  674. package/schemas/plugins/SSRManifestPlugin.json +20 -0
  675. package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -1
  676. package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
  677. package/schemas/plugins/WatchIgnorePlugin.check.js +2 -1
  678. package/schemas/plugins/WatchIgnorePlugin.json +12 -3
  679. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -0
  680. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -0
  681. package/schemas/plugins/asset/AssetParserOptions.check.js +1 -0
  682. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -0
  683. package/schemas/plugins/container/ContainerPlugin.check.js +2 -1
  684. package/schemas/plugins/container/ContainerPlugin.json +8 -0
  685. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -0
  686. package/schemas/plugins/container/ExternalsType.check.js +1 -0
  687. package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -1
  688. package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
  689. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -0
  690. package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -0
  691. package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -0
  692. package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -0
  693. package/schemas/plugins/css/CssParserOptions.check.js +1 -0
  694. package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -0
  695. package/schemas/plugins/dll/DllPlugin.check.js +1 -0
  696. package/schemas/plugins/dll/DllReferencePlugin.check.js +2 -1
  697. package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
  698. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -0
  699. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -0
  700. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -0
  701. package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +1 -0
  702. package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -0
  703. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -0
  704. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -0
  705. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -0
  706. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -0
  707. package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -0
  708. package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +1 -0
  709. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +2 -1
  710. package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
  711. package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +2 -1
  712. package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
  713. package/schemas/plugins/sharing/SharePlugin.check.js +2 -1
  714. package/schemas/plugins/sharing/SharePlugin.json +32 -0
  715. package/types.d.ts +13915 -8414
  716. package/lib/ErrorHelpers.js +0 -107
  717. package/lib/LazyBarrel.js +0 -388
  718. package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
  719. package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
  720. package/lib/javascript/ChunkFormatHelpers.js +0 -71
  721. package/lib/javascript/grammar.js +0 -5546
  722. package/lib/javascript/parser.js +0 -1494
  723. package/lib/javascript/regexpData.js +0 -51
  724. package/lib/performance/getSourceModules.js +0 -22
  725. package/lib/util/Semaphore.js +0 -65
  726. package/lib/util/objectToMap.js +0 -15
  727. package/schemas/WebpackOptions.check.d.ts +0 -7
  728. package/schemas/_container.json +0 -155
  729. package/schemas/_sharing.json +0 -118
  730. package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
  731. package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
  732. package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
  733. package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
  734. package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
  735. package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
  736. package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
  737. package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
  738. package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
  739. package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
  740. package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
  741. package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
  742. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
  743. package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
  744. package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
  745. package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
  746. package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
  747. package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
  748. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
  749. package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
  750. package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
  751. package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
  752. package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
  753. package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
  754. package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
  755. package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
  756. package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
  757. package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
  758. package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
  759. package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
  760. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
  761. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
  762. package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
  763. package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
  764. package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
  765. package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
  766. package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
  767. package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
  768. package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
  769. /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
  770. /package/lib/{util → css}/conventions.js +0 -0
  771. /package/lib/{util → css}/topologicalSort.js +0 -0
  772. /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
  773. /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
  774. /package/lib/{util → fs}/StackedCacheMap.js +0 -0
  775. /package/lib/{util → javascript}/StackedMap.js +0 -0
  776. /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
  777. /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
  778. /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
  779. /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
  780. /package/lib/{util → optimize}/Queue.js +0 -0
  781. /package/lib/{util → stats}/smartGrouping.js +0 -0
@@ -6,27 +6,30 @@
6
6
  "use strict";
7
7
 
8
8
  const { ConcatSource } = require("webpack-sources");
9
- const { UsageState } = require("../ExportsInfo");
10
- const ExternalModule = require("../ExternalModule");
11
- const { JAVASCRIPT_TYPE } = require("../ModuleSourceTypeConstants");
12
- const RuntimeGlobals = require("../RuntimeGlobals");
13
- const Template = require("../Template");
14
- const HarmonyExportExpressionDependency = require("../dependencies/HarmonyExportExpressionDependency");
15
- const HarmonyExportImportedSpecifierDependency = require("../dependencies/HarmonyExportImportedSpecifierDependency");
16
- const HarmonyExportSpecifierDependency = require("../dependencies/HarmonyExportSpecifierDependency");
17
9
  const ExternalStarReexportError = require("../errors/ExternalStarReexportError");
10
+ const { UsageState } = require("../graph/ExportsInfo");
11
+ const isDependencyKind = require("../graph/isDependencyKind");
18
12
  const JavascriptModulesPlugin = require("../javascript/JavascriptModulesPlugin");
19
- const ConcatenatedModule = require("../optimize/ConcatenatedModule");
20
- const { InlinedUsedName } = require("../optimize/InlineExports");
21
- const { toJsStringLiteral } = require("../util/identifier");
13
+ const {
14
+ getMergedExports,
15
+ mergedEntryModules
16
+ } = require("../javascript/MergedEntryExports");
17
+ const { JAVASCRIPT_TYPE } = require("../module/ModuleSourceTypeConstants");
18
+ const { isInlinedUsedName } = require("../optimize/InlineExports");
19
+ const RuntimeGlobals = require("../runtime/RuntimeGlobals");
20
+ const Template = require("../template/Template");
21
+ const { someInIterable } = require("../util/IterableHelpers");
22
+ const { renameIdentifiers } = require("../util/concatenate");
22
23
  const {
23
24
  RESERVED_IDENTIFIER,
24
25
  SAFE_IDENTIFIER,
25
26
  propertyAccess
26
27
  } = require("../util/property");
27
- const { getEntryRuntime, getRuntimeKey } = require("../util/runtime");
28
+ const { getEntryRuntime, intersectRuntime } = require("../util/runtime");
28
29
  const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
29
30
 
31
+ /** @import ExternalModule from "../externals/ExternalModule" */
32
+ /** @import { InlinedUsedName } from "../optimize/InlineExports" */
30
33
  /** @import { Source } from "webpack-sources" */
31
34
  /**
32
35
  * @import {
@@ -35,18 +38,17 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin");
35
38
  * LibraryExport
36
39
  * } from "../../declarations/WebpackOptions"
37
40
  */
38
- /** @import Chunk from "../Chunk" */
41
+ /** @import CodeGenerationResults from "../module/CodeGenerationResults" */
39
42
  /** @import Compilation from "../Compilation" */
40
43
  /** @import Compiler from "../Compiler" */
41
- /** @import ModuleGraph from "../ModuleGraph" */
42
- /** @import Module, { BuildMeta } from "../Module" */
44
+ /** @import ModuleGraph from "../graph/ModuleGraph" */
45
+ /** @import Module from "../module/Module" */
43
46
  /**
44
47
  * @import {
45
48
  * StartupRenderContext,
46
49
  * ModuleRenderContext
47
50
  * } from "../javascript/JavascriptModulesPlugin"
48
51
  */
49
- /** @import { ImportAttributes } from "../javascript/JavascriptParser" */
50
52
  /** @import { RuntimeSpec } from "../util/runtime" */
51
53
  /**
52
54
  * @import {
@@ -83,37 +85,19 @@ const PLUGIN_NAME = "ModuleLibraryPlugin";
83
85
  const libraryEntryModules = new WeakMap();
84
86
 
85
87
  /**
86
- * Whether every export the module defines is a binding the library can export
87
- * natively, so the definitions written into the exports object are read by nobody.
88
- * A re-export or a renamed import is not: `renderStartup` reads those back off the
89
- * object, and `treatAsCommonJs` hands the object out as the default export.
88
+ * Whether the library reads every export of the entry off its exports object, never
89
+ * binding one to a declaration of the inlined body, so no definition can be left out.
90
90
  * @param {Module} module the entry module
91
91
  * @param {ModuleGraph} moduleGraph the module graph
92
- * @returns {boolean} true when the definitions may be taken over
92
+ * @returns {boolean} true when the entry has no export the library exposes natively
93
93
  */
94
- const definesOnlyNativeExports = (module, moduleGraph) => {
94
+ const noNativeExports = (module, moduleGraph) => {
95
95
  const buildMeta = /** @type {JavascriptModuleBuildMeta} */ (module.buildMeta);
96
- if (buildMeta && buildMeta.treatAsCommonJs) return false;
96
+ if (buildMeta && buildMeta.treatAsCommonJs) return true;
97
97
  // A top-level `await` wraps the body in `__webpack_require__.a`, and the
98
98
  // definitions read declarations inside that wrapper — re-emitting them after the
99
99
  // module would put them out of scope.
100
- if (moduleGraph.isAsync(module)) return false;
101
- const topLevelDeclarations =
102
- module.buildInfo && module.buildInfo.topLevelDeclarations;
103
- if (!topLevelDeclarations) return false;
104
- for (const dep of module.dependencies) {
105
- // A re-export or an `export default` has no declaration of its own to bind to,
106
- // so `renderStartup` reads its value back off the exports object.
107
- if (
108
- dep instanceof HarmonyExportImportedSpecifierDependency ||
109
- dep instanceof HarmonyExportExpressionDependency
110
- ) {
111
- return false;
112
- }
113
- if (!(dep instanceof HarmonyExportSpecifierDependency)) continue;
114
- if (!topLevelDeclarations.has(dep.id)) return false;
115
- }
116
- return true;
100
+ return moduleGraph.isAsync(module);
117
101
  };
118
102
 
119
103
  /**
@@ -125,18 +109,6 @@ const definesOnlyNativeExports = (module, moduleGraph) => {
125
109
  const toExportName = (name) =>
126
110
  SAFE_IDENTIFIER.test(name) ? name : JSON.stringify(name);
127
111
 
128
- /**
129
- * Renders the import attributes of a reexport in the syntax the author wrote,
130
- * since a legacy `assert` clause and a `with` clause are not interchangeable.
131
- * @param {ImportAttributes | undefined} attributes the import attributes
132
- * @returns {string} the attributes clause, empty when there are none
133
- */
134
- const toAttributesClause = (attributes) => {
135
- if (!attributes) return "";
136
- const { _isLegacyAssert: isLegacyAssert, ...values } = attributes;
137
- return ` ${isLegacyAssert ? "assert" : "with"} ${JSON.stringify(values)}`;
138
- };
139
-
140
112
  /**
141
113
  * Whether the export name can also be used as the declared binding name.
142
114
  * @param {string} name export name
@@ -171,76 +143,33 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
171
143
  super.apply(compiler);
172
144
 
173
145
  compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
174
- const { onDemandExportsGeneration } =
175
- ConcatenatedModule.getCompilationHooks(compilation);
176
146
  const javascriptHooks =
177
147
  JavascriptModulesPlugin.getCompilationHooks(compilation);
178
- onDemandExportsGeneration.tap(
179
- PLUGIN_NAME,
180
- (module, runtimes, source, finalName) => {
181
- /** @type {BuildMeta} */
182
- const buildMeta = module.buildMeta || (module.buildMeta = {});
183
-
184
- /** @type {BuildMeta["exportsSourceByRuntime"]} */
185
- const exportsSourceByRuntime =
186
- buildMeta.exportsSourceByRuntime ||
187
- (buildMeta.exportsSourceByRuntime = new Map());
188
-
189
- /** @type {BuildMeta["exportsFinalNameByRuntime"]} */
190
- const exportsFinalNameByRuntime =
191
- buildMeta.exportsFinalNameByRuntime ||
192
- (buildMeta.exportsFinalNameByRuntime = new Map());
193
-
194
- for (const runtime of runtimes) {
195
- const key = getRuntimeKey(runtime);
196
- exportsSourceByRuntime.set(key, source);
197
- exportsFinalNameByRuntime.set(key, finalName);
198
- }
199
148
 
200
- return true;
201
- }
202
- );
203
- // The same for a plain entry, whose definitions come from a dependency template.
204
- // Placed after the module body, which its value bindings read.
205
- javascriptHooks.onDemandExportsGeneration.tap(
206
- PLUGIN_NAME,
207
- (module, runtime, source, placeAtEnd) => {
208
- const entries = libraryEntryModules.get(compilation);
209
- if (!entries || !entries.has(module)) return;
210
- if (!definesOnlyNativeExports(module, compilation.moduleGraph)) {
211
- return;
212
- }
213
- /** @type {BuildMeta} */
214
- const buildMeta = module.buildMeta || (module.buildMeta = {});
215
- const key = getRuntimeKey(runtime);
216
- if (placeAtEnd) {
217
- const bindings =
218
- buildMeta.exportsBindingSourceByRuntime ||
219
- (buildMeta.exportsBindingSourceByRuntime = new Map());
220
- bindings.set(key, source);
221
- } else {
222
- const sources =
223
- buildMeta.exportsSourceByRuntime ||
224
- (buildMeta.exportsSourceByRuntime = new Map());
225
- // The `__esModule` marker and the definitions both land here, so
226
- // keep whichever arrived first rather than replacing it.
227
- const before = sources.get(key);
228
- sources.set(key, before ? `${before}${source}` : source);
149
+ compilation.hooks.beforeCodeGeneration.tap(PLUGIN_NAME, () => {
150
+ const entries = libraryEntryModules.get(compilation);
151
+ if (entries === undefined) return;
152
+ const { moduleGraph } = compilation;
153
+ for (const { dependencies } of compilation.entries.values()) {
154
+ for (const dep of dependencies) {
155
+ const module = dep && moduleGraph.getModule(dep);
156
+ if (!module) continue;
157
+ const root = module.getRootModule();
158
+ if (!entries.has(root)) continue;
159
+ if (root === module && noNativeExports(module, moduleGraph)) {
160
+ continue;
161
+ }
162
+ moduleGraph.getMeta(module).onDemandExports = true;
229
163
  }
230
- return true;
231
164
  }
232
- );
165
+ });
233
166
 
234
- // `ModuleLibraryPlugin` stashes the on-demand exports source via
235
- // `onDemandExportsGeneration` and only re-emits it when the
236
- // module is wrapped in an IIFE/factory. When the entry is
237
- // inlined directly, the stashed source — and the
238
- // `definePropertyGetters` / `requireScope` runtime helpers it
239
- // pulled in — never make it into the output. Drop those helpers
240
- // from the chunk's set so the bundle stays clean.
167
+ // The stashed exports source is re-emitted only where the entry is wrapped;
168
+ // inlined directly, the helpers it pulled in have no reader and can go.
241
169
  compilation.hooks.additionalChunkRuntimeRequirements.tap(
242
170
  PLUGIN_NAME,
243
171
  (chunk, set, { chunkGraph, codeGenerationResults }) => {
172
+ const { moduleGraph, runtimeTemplate } = compilation;
244
173
  if (!set.has(RuntimeGlobals.definePropertyGetters)) return;
245
174
  if (chunkGraph.getNumberOfEntryModules(chunk) !== 1) return;
246
175
  if (
@@ -255,22 +184,58 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
255
184
  if (javascriptHooks.inlineInRuntimeBailout.isUsed()) return;
256
185
 
257
186
  const [module] = chunkGraph.getChunkEntryModulesIterable(chunk);
258
- const runtimeKey = getRuntimeKey(chunk.runtime);
259
- const buildMeta = module.buildMeta;
260
- const takenOver =
261
- (buildMeta &&
262
- buildMeta.exportsSourceByRuntime &&
263
- buildMeta.exportsSourceByRuntime.has(runtimeKey)) ||
264
- (buildMeta &&
265
- buildMeta.exportsBindingSourceByRuntime &&
266
- buildMeta.exportsBindingSourceByRuntime.has(runtimeKey));
267
- if (!takenOver) return;
187
+ if (chunk.hasRuntime()) {
188
+ // The startup inlines the entry only where nothing else loads with
189
+ // it: another chunk of the entrypoint delays the execution, and a
190
+ // module reading the entry needs it in the registry.
191
+ for (const [
192
+ ,
193
+ entrypoint
194
+ ] of chunkGraph.getChunkEntryModulesWithChunkGroupIterable(chunk)) {
195
+ if (entrypoint && entrypoint.chunks.some((c) => c !== chunk)) {
196
+ return;
197
+ }
198
+ }
199
+ if (
200
+ someInIterable(
201
+ moduleGraph.getIncomingConnectionsByOriginModule(module),
202
+ ([originModule, connections]) =>
203
+ originModule &&
204
+ originModule !== module &&
205
+ connections.some((c) => c.isTargetActive(chunk.runtime)) &&
206
+ someInIterable(
207
+ chunkGraph.getModuleRuntimes(originModule),
208
+ (runtime) =>
209
+ intersectRuntime(runtime, chunk.runtime) !== undefined
210
+ )
211
+ )
212
+ ) {
213
+ return;
214
+ }
215
+ } else if (
216
+ // A chunk whose runtime is elsewhere lifts its entry to the top
217
+ // level under the same conditions, and renders it into the module
218
+ // registry otherwise.
219
+ JavascriptModulesPlugin._getEsmEntryModuleToInline({
220
+ chunk,
221
+ chunkGraph,
222
+ moduleGraph,
223
+ runtimeTemplate,
224
+ codeGenerationResults
225
+ }) !== module
226
+ ) {
227
+ return;
228
+ }
268
229
  const codeGenResult = codeGenerationResults.get(
269
230
  module,
270
231
  chunk.runtime
271
232
  );
272
- const jsSource =
273
- codeGenResult && codeGenResult.sources.get("javascript");
233
+ const { data } = codeGenResult;
234
+ const takenOver =
235
+ data !== undefined &&
236
+ (data.has("exportsSource") || data.has("exportsBindingSource"));
237
+ if (!takenOver) return;
238
+ const jsSource = codeGenResult.sources.get("javascript");
274
239
  if (
275
240
  jsSource &&
276
241
  String(jsSource.source()).includes(`${RuntimeGlobals.require}.`)
@@ -289,45 +254,32 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
289
254
  }
290
255
  }
291
256
 
292
- // The helpers land in the runtime, not in this chunk, so what still
293
- // needs them is asked of every chunk sharing the entrypoint — the
294
- // runtime chunk, and whatever `splitChunks` moved out of the entry.
295
- /** @type {Set<Chunk>} */
296
- const siblings = new Set([chunk]);
297
- for (const [
298
- ,
299
- entrypoint
300
- ] of chunkGraph.getChunkEntryModulesWithChunkGroupIterable(chunk)) {
301
- if (!entrypoint) continue;
302
- for (const sibling of entrypoint.chunks) siblings.add(sibling);
303
- }
304
-
257
+ // The entrypoint loads as this chunk alone, so what still needs the
258
+ // helpers is whatever else it holds beside the entry.
305
259
  let otherNeedsDefine = false;
306
260
  let otherNeedsNamespaceObject = false;
307
261
  let otherNeedsExports = false;
308
262
  let otherNeedsRequireScope = false;
309
- outer: for (const sibling of siblings) {
310
- for (const m of chunkGraph.getChunkModulesIterable(sibling)) {
311
- if (m === module) continue;
312
- const requirements = chunkGraph.getModuleRuntimeRequirements(
313
- m,
314
- sibling.runtime
315
- );
316
- if (!requirements) continue;
317
- if (requirements.has(RuntimeGlobals.definePropertyGetters)) {
318
- otherNeedsDefine = true;
319
- }
320
- if (requirements.has(RuntimeGlobals.makeNamespaceObject)) {
321
- otherNeedsNamespaceObject = true;
322
- }
323
- if (requirements.has(RuntimeGlobals.exports)) {
324
- otherNeedsExports = true;
325
- }
326
- if (requirements.has(RuntimeGlobals.requireScope)) {
327
- otherNeedsRequireScope = true;
328
- }
329
- if (otherNeedsDefine) break outer;
263
+ for (const m of chunkGraph.getChunkModulesIterable(chunk)) {
264
+ if (m === module) continue;
265
+ const requirements = chunkGraph.getModuleRuntimeRequirements(
266
+ m,
267
+ chunk.runtime
268
+ );
269
+ if (!requirements) continue;
270
+ if (requirements.has(RuntimeGlobals.definePropertyGetters)) {
271
+ otherNeedsDefine = true;
272
+ }
273
+ if (requirements.has(RuntimeGlobals.makeNamespaceObject)) {
274
+ otherNeedsNamespaceObject = true;
275
+ }
276
+ if (requirements.has(RuntimeGlobals.exports)) {
277
+ otherNeedsExports = true;
278
+ }
279
+ if (requirements.has(RuntimeGlobals.requireScope)) {
280
+ otherNeedsRequireScope = true;
330
281
  }
282
+ if (otherNeedsDefine) break;
331
283
  }
332
284
 
333
285
  if (otherNeedsDefine) return;
@@ -414,7 +366,8 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
414
366
 
415
367
  // Only handle star-reexport statement
416
368
  if (
417
- !(dep instanceof HarmonyExportImportedSpecifierDependency) ||
369
+ dep === null ||
370
+ !isDependencyKind(dep, "esm-reexport") ||
418
371
  dep.name !== null
419
372
  ) {
420
373
  continue;
@@ -428,7 +381,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
428
381
  ) {
429
382
  continue;
430
383
  }
431
- if (importedModule instanceof ExternalModule) {
384
+ if (importedModule.is("external")) {
432
385
  const request = importedModule.getResolvedRequest();
433
386
  if (Array.isArray(request) && request.length > 1) {
434
387
  unsupportedExternals.add(importedModule);
@@ -472,6 +425,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
472
425
  * @param {Module} module module
473
426
  * @param {ModuleGraph} moduleGraph moduleGraph
474
427
  * @param {RuntimeSpec} runtime chunk runtime
428
+ * @param {CodeGenerationResults} codeGenerationResults the code generation results
475
429
  * @param {[string, string][]} exports exports
476
430
  * @param {Set<string>} alreadyRenderedExports already rendered exports
477
431
  * @returns {ConcatSource} source with null provided exports
@@ -481,6 +435,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
481
435
  module,
482
436
  moduleGraph,
483
437
  runtime,
438
+ codeGenerationResults,
484
439
  exports,
485
440
  alreadyRenderedExports
486
441
  ) {
@@ -504,7 +459,8 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
504
459
 
505
460
  // Only handle star-reexport statement
506
461
  if (
507
- dep instanceof HarmonyExportImportedSpecifierDependency &&
462
+ dep !== null &&
463
+ isDependencyKind(dep, "esm-reexport") &&
508
464
  dep.name === null
509
465
  ) {
510
466
  const importedModule = connection.resolvedModule;
@@ -518,21 +474,15 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
518
474
  importedModuleExportsInfo._otherExportsInfo.provided === null
519
475
  ) {
520
476
  // Handle export * from 'external'
521
- if (importedModule instanceof ExternalModule) {
522
- const request = importedModule.getResolvedRequest();
523
- // A property path is reported by `_checkStarReexportedExternals`,
524
- // and an absent one by the external's own build
525
- const specifier =
526
- typeof request === "string"
527
- ? request
528
- : Array.isArray(request) && request.length === 1
529
- ? request[0]
530
- : undefined;
531
- if (specifier !== undefined) {
532
- externalReexports.add(
533
- `export * from ${toJsStringLiteral(specifier)}${toAttributesClause(dep.attributes)};\n`
534
- );
535
- }
477
+ if (importedModule.is("external")) {
478
+ const from = codeGenerationResults.has(importedModule, runtime)
479
+ ? codeGenerationResults.getData(
480
+ importedModule,
481
+ runtime,
482
+ "externalReexport"
483
+ )
484
+ : undefined;
485
+ if (from) externalReexports.add(`export * ${from};\n`);
536
486
  } else if (!visitedReexportModules.has(importedModule)) {
537
487
  visitedReexportModules.add(importedModule);
538
488
  resolveDynamicStarReexport(importedModule, true);
@@ -568,7 +518,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
568
518
  for (const [origin, used] of unknownProvidedExports) {
569
519
  exports.push([
570
520
  origin,
571
- used instanceof InlinedUsedName
521
+ isInlinedUsedName(used)
572
522
  ? used.render(
573
523
  Template.toNormalComment(
574
524
  `inlined export ${propertyAccess([origin])}`
@@ -593,12 +543,18 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
593
543
  const {
594
544
  moduleGraph,
595
545
  chunk,
546
+ chunkGraph,
596
547
  codeGenerationResults,
597
548
  inlined,
598
549
  inlinedInIIFE,
550
+ exportsAwaited,
599
551
  runtimeTemplate
600
552
  } = renderContext;
601
553
  let result = new ConcatSource(source);
554
+ // A merged entry exposes what its modules expose together, so the ESM
555
+ // export list is theirs rather than the last module's alone.
556
+ const mergedModules = mergedEntryModules(chunk, chunkGraph, compilation);
557
+ const exportedModules = mergedModules || [module];
602
558
  const exportInfos = options.export
603
559
  ? [
604
560
  moduleGraph.getExportInfo(
@@ -606,21 +562,36 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
606
562
  Array.isArray(options.export) ? options.export[0] : options.export
607
563
  )
608
564
  ]
609
- : moduleGraph.getExportsInfo(module).orderedExports;
565
+ : mergedModules
566
+ ? getMergedExports(
567
+ mergedModules,
568
+ moduleGraph,
569
+ chunk.runtime
570
+ ).exports.map(({ name, module: from }) =>
571
+ moduleGraph.getExportInfo(from, name)
572
+ )
573
+ : moduleGraph.getExportsInfo(module).orderedExports;
610
574
 
611
- const exportsFinalNameByRuntime =
612
- (module.buildMeta &&
613
- module.buildMeta.exportsFinalNameByRuntime &&
614
- module.buildMeta.exportsFinalNameByRuntime.get(
615
- getRuntimeKey(chunk.runtime)
616
- )) ||
617
- {};
575
+ const { data } = codeGenerationResults.get(module, chunk.runtime);
618
576
 
619
577
  const isInlinedEntryWithoutIIFE = inlined && !inlinedInIIFE;
620
- // Direct export bindings from on-demand concatenation
621
- const definitions = isInlinedEntryWithoutIIFE
622
- ? exportsFinalNameByRuntime
623
- : {};
578
+ // The binding each export left out on demand reads, exported directly
579
+ /** @type {Record<string, string>} */
580
+ let definitions =
581
+ (isInlinedEntryWithoutIIFE && data && data.get("exportsFinalName")) || {};
582
+ // Inlined beside other modules, the entry's colliding declarations were renamed
583
+ const { renamedDeclarations } = renderContext;
584
+ if (renamedDeclarations) {
585
+ /** @type {Record<string, string>} */
586
+ const renamed = {};
587
+ for (const usedName of Object.keys(definitions)) {
588
+ renamed[usedName] = renameIdentifiers(
589
+ definitions[usedName],
590
+ renamedDeclarations
591
+ );
592
+ }
593
+ definitions = renamed;
594
+ }
624
595
 
625
596
  /** @type {string[]} */
626
597
  const shortHandedExports = [];
@@ -646,48 +617,15 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
646
617
  return name;
647
618
  };
648
619
 
649
- const isAsync = moduleGraph.isAsync(module);
650
-
651
- const treatAsCommonJs =
652
- module.buildMeta &&
653
- /** @type {JavascriptModuleBuildMeta} */ (module.buildMeta)
654
- .treatAsCommonJs;
655
- const skipRenderDefaultExport = Boolean(treatAsCommonJs);
656
-
657
- // A single (non-concatenated) inlined entry is rendered at the top
658
- // level, so its own declarations are top-level bindings we can export
659
- // directly — keeping ESM live bindings instead of snapshotting
660
- // `__webpack_exports__.x` into a `const`. Concatenated entries already
661
- // get direct bindings via `definitions` above.
662
- /** @type {Map<string, string> | undefined} */
663
- let directBindings;
664
- if (isInlinedEntryWithoutIIFE && !treatAsCommonJs) {
665
- const { data } = codeGenerationResults.get(module, chunk.runtime);
666
- const topLevelDeclarations =
667
- (data && data.get("topLevelDeclarations")) ||
668
- (module.buildInfo && module.buildInfo.topLevelDeclarations);
669
- if (topLevelDeclarations) {
670
- for (const dep of module.dependencies) {
671
- if (
672
- dep instanceof HarmonyExportSpecifierDependency &&
673
- topLevelDeclarations.has(dep.id)
674
- ) {
675
- (directBindings || (directBindings = new Map())).set(
676
- dep.name,
677
- dep.id
678
- );
679
- }
680
- }
681
- }
682
- }
620
+ // A merged entry is awaited in the bootstrap, so the object here is settled.
621
+ const isAsync = !mergedModules && moduleGraph.isAsync(module);
683
622
 
684
- // Taken over by `onDemandExportsGeneration` above, and re-emitted by
685
- // `renderModuleContent` only where the module is wrapped — which is not here.
686
- const bindingsTakenOver = Boolean(
687
- module.buildMeta &&
688
- module.buildMeta.exportsBindingSourceByRuntime &&
689
- module.buildMeta.exportsBindingSourceByRuntime.has(
690
- getRuntimeKey(chunk.runtime)
623
+ // One ES module among the merged ones still provides a real `default`, and
624
+ // the synthetic one below would then be a second export of that name.
625
+ const treatAsCommonJs = exportedModules.every((m) =>
626
+ Boolean(
627
+ m.buildMeta &&
628
+ /** @type {JavascriptModuleBuildMeta} */ (m.buildMeta).treatAsCommonJs
691
629
  )
692
630
  );
693
631
 
@@ -704,83 +642,73 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
704
642
  let needExportsDeclaration =
705
643
  !isInlinedEntryWithoutIIFE || isAsync || needHarmonyCompatibilityFlag;
706
644
 
707
- if (isAsync) {
645
+ // The startup awaits the entry wherever top-level `await` reaches it.
646
+ if (isAsync && !exportsAwaited) {
708
647
  result.add(
709
648
  `${RuntimeGlobals.exports} = await ${RuntimeGlobals.exports};\n`
710
649
  );
711
650
  }
712
651
 
713
652
  // Try to find all known exports of the entry module
714
- outer: for (const exportInfo of exportInfos) {
653
+ for (const exportInfo of exportInfos) {
715
654
  if (!exportInfo.provided) continue;
716
655
 
717
656
  const originalName = exportInfo.name;
718
657
  // Skip rendering the default export in some cases
719
- if (skipRenderDefaultExport && originalName === "default") continue;
658
+ if (treatAsCommonJs && originalName === "default") continue;
720
659
 
721
660
  // Try to find all exports from the reexported modules
722
- const target = exportInfo.findTarget(moduleGraph, (_m) => true);
723
- // A namespace object target (`export * as ns from "./module"`) has no
724
- // export name, so there is nothing that could be missing
725
- if (target && target.export) {
726
- const targetExport = target.export[0];
727
- const reexportsInfo = moduleGraph.getExportsInfo(target.module);
728
- for (const reexportInfo of reexportsInfo.orderedExports) {
729
- if (
730
- reexportInfo.provided === false &&
731
- reexportInfo.name !== "default" &&
732
- reexportInfo.name === targetExport
733
- ) {
734
- continue outer;
735
- }
736
- }
661
+ const target = exportInfo.getTarget(moduleGraph);
662
+
663
+ // A re-export is provided even when its target lacks the export, and
664
+ // the path can end in a property access, so every name is looked up.
665
+ if (
666
+ target &&
667
+ target.export &&
668
+ target.export[target.export.length - 1] !== "default" &&
669
+ moduleGraph
670
+ .getExportsInfo(target.module)
671
+ .isExportProvided(target.export) === false
672
+ ) {
673
+ continue;
737
674
  }
738
675
 
739
- const externalTarget = exportInfo.getTarget(moduleGraph);
740
676
  if (
741
- externalTarget &&
742
- externalTarget.module instanceof ExternalModule &&
743
- externalTarget.export &&
744
- externalTarget.export.length === 1 &&
745
- codeGenerationResults.has(externalTarget.module, chunk.runtime)
677
+ target &&
678
+ target.module.is("external") &&
679
+ target.export &&
680
+ target.export.length === 1 &&
681
+ codeGenerationResults.has(target.module, chunk.runtime)
746
682
  ) {
747
683
  const reexport = codeGenerationResults.getData(
748
- externalTarget.module,
684
+ target.module,
749
685
  chunk.runtime,
750
686
  "externalReexport"
751
687
  );
752
688
  if (reexport) {
753
- if (!bindingsTakenOver) needExportsDeclaration = true;
689
+ // The getter stays in the body, written into the object
690
+ needExportsDeclaration = true;
754
691
  result.add(
755
- `export { ${toExportName(externalTarget.export[0])} as ${toExportName(originalName)} } ${reexport};\n`
692
+ `export { ${toExportName(target.export[0])} as ${toExportName(originalName)} } ${reexport};\n`
756
693
  );
757
694
  alreadyRenderedExports.add(originalName);
758
695
  continue;
759
696
  }
760
697
  }
761
698
 
762
- // The exports of entry module are never inlined
763
- const usedName =
764
- /** @type {string} */
765
- (exportInfo.getUsedName(originalName, chunk.runtime));
699
+ // The exports of entry module are never inlined, and a merged exports
700
+ // object is keyed by the original names rather than the mangled ones.
701
+ const usedName = mergedModules
702
+ ? originalName
703
+ : /** @type {string} */
704
+ (exportInfo.getUsedName(originalName, chunk.runtime));
766
705
  /** @type {string | undefined} */
767
706
  const definition = definitions[usedName];
768
707
  /** @type {string | undefined} */
769
- const directLocal =
770
- definition === undefined && directBindings
771
- ? directBindings.get(originalName)
772
- : undefined;
773
- /** @type {string | undefined} */
774
708
  let finalName;
775
709
 
776
710
  if (definition) {
777
711
  finalName = definition;
778
- } else if (directLocal !== undefined) {
779
- // Live binding to the inlined entry's own top-level declaration
780
- finalName = directLocal;
781
- // The declaration is only there for the definitions written into it; with
782
- // those taken over (and not re-emitted here) nothing reads the object.
783
- if (!bindingsTakenOver) needExportsDeclaration = true;
784
712
  } else {
785
713
  // Fallback to `__webpack_exports__` property access
786
714
  // when no direct export binding was found
@@ -801,7 +729,6 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
801
729
  finalName.includes("("))
802
730
  ) {
803
731
  if (exportInfo.isReexport()) {
804
- const { data } = codeGenerationResults.get(module, chunk.runtime);
805
732
  const topLevelDeclarations =
806
733
  (data && data.get("topLevelDeclarations")) ||
807
734
  (module.buildInfo && module.buildInfo.topLevelDeclarations);
@@ -844,6 +771,7 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
844
771
  module,
845
772
  moduleGraph,
846
773
  chunk.runtime,
774
+ codeGenerationResults,
847
775
  exports,
848
776
  alreadyRenderedExports
849
777
  );
@@ -880,19 +808,13 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin {
880
808
  renderModuleContent(
881
809
  source,
882
810
  module,
883
- { factory, inlinedInIIFE, chunk },
811
+ { factory, inlinedInIIFE, chunk, codeGenerationResults },
884
812
  libraryContext
885
813
  ) {
886
- const runtimeKey = getRuntimeKey(chunk.runtime);
887
- const buildMeta = module.buildMeta;
888
- const exportsSource =
889
- buildMeta &&
890
- buildMeta.exportsSourceByRuntime &&
891
- buildMeta.exportsSourceByRuntime.get(runtimeKey);
892
- const bindingSource =
893
- buildMeta &&
894
- buildMeta.exportsBindingSourceByRuntime &&
895
- buildMeta.exportsBindingSourceByRuntime.get(runtimeKey);
814
+ const { data } = codeGenerationResults.get(module, chunk.runtime);
815
+ if (data === undefined) return source;
816
+ const exportsSource = data.get("exportsSource");
817
+ const bindingSource = data.get("exportsBindingSource");
896
818
 
897
819
  // Re-add the exports source in a factory or IIFE-wrapped startup module; value
898
820
  // bindings read the declarations above them, so those go after the body.