@depup/webpack 5.111.1-depup.2 → 5.112.0-depup.1

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