@module-federation/enhanced 0.0.0-perf-devtools-20260107043700 → 0.0.0-perf-website-code-usage-20260914033703

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 (289) hide show
  1. package/README.md +1 -1
  2. package/dist/CHANGELOG.md +2678 -0
  3. package/dist/README.md +213 -0
  4. package/dist/rstestmigrate.md +140 -0
  5. package/dist/src/_virtual/_rolldown/runtime.js +47 -0
  6. package/dist/src/index.d.ts +22 -18
  7. package/dist/src/index.js +47 -41
  8. package/dist/src/index.js.map +1 -1
  9. package/dist/src/lib/Constants.js +136 -116
  10. package/dist/src/lib/Constants.js.map +1 -1
  11. package/dist/src/lib/container/AsyncBoundaryPlugin.d.ts +20 -16
  12. package/dist/src/lib/container/AsyncBoundaryPlugin.js +137 -196
  13. package/dist/src/lib/container/AsyncBoundaryPlugin.js.map +1 -1
  14. package/dist/src/lib/container/ContainerEntryDependency.d.ts +25 -23
  15. package/dist/src/lib/container/ContainerEntryDependency.js +37 -39
  16. package/dist/src/lib/container/ContainerEntryDependency.js.map +1 -1
  17. package/dist/src/lib/container/ContainerEntryModule.d.ts +104 -79
  18. package/dist/src/lib/container/ContainerEntryModule.js +213 -234
  19. package/dist/src/lib/container/ContainerEntryModule.js.map +1 -1
  20. package/dist/src/lib/container/ContainerEntryModuleFactory.d.ts +15 -10
  21. package/dist/src/lib/container/ContainerEntryModuleFactory.js +21 -25
  22. package/dist/src/lib/container/ContainerEntryModuleFactory.js.map +1 -1
  23. package/dist/src/lib/container/ContainerExposedDependency.d.ts +26 -23
  24. package/dist/src/lib/container/ContainerExposedDependency.js +47 -47
  25. package/dist/src/lib/container/ContainerExposedDependency.js.map +1 -1
  26. package/dist/src/lib/container/ContainerPlugin.d.ts +12 -8
  27. package/dist/src/lib/container/ContainerPlugin.js +144 -213
  28. package/dist/src/lib/container/ContainerPlugin.js.map +1 -1
  29. package/dist/src/lib/container/ContainerReferencePlugin.d.ts +16 -12
  30. package/dist/src/lib/container/ContainerReferencePlugin.js +72 -101
  31. package/dist/src/lib/container/ContainerReferencePlugin.js.map +1 -1
  32. package/dist/src/lib/container/FallbackDependency.d.ts +24 -19
  33. package/dist/src/lib/container/FallbackDependency.js +46 -44
  34. package/dist/src/lib/container/FallbackDependency.js.map +1 -1
  35. package/dist/src/lib/container/FallbackItemDependency.d.ts +13 -8
  36. package/dist/src/lib/container/FallbackItemDependency.js +24 -24
  37. package/dist/src/lib/container/FallbackItemDependency.js.map +1 -1
  38. package/dist/src/lib/container/FallbackModule.d.ts +82 -71
  39. package/dist/src/lib/container/FallbackModule.js +133 -145
  40. package/dist/src/lib/container/FallbackModule.js.map +1 -1
  41. package/dist/src/lib/container/FallbackModuleFactory.d.ts +15 -10
  42. package/dist/src/lib/container/FallbackModuleFactory.js +20 -24
  43. package/dist/src/lib/container/FallbackModuleFactory.js.map +1 -1
  44. package/dist/src/lib/container/HoistContainerReferencesPlugin.d.ts +11 -7
  45. package/dist/src/lib/container/HoistContainerReferencesPlugin.js +124 -188
  46. package/dist/src/lib/container/HoistContainerReferencesPlugin.js.map +1 -1
  47. package/dist/src/lib/container/ModuleFederationPlugin.d.ts +20 -16
  48. package/dist/src/lib/container/ModuleFederationPlugin.js +151 -170
  49. package/dist/src/lib/container/ModuleFederationPlugin.js.map +1 -1
  50. package/dist/src/lib/container/RemoteModule.d.ts +83 -74
  51. package/dist/src/lib/container/RemoteModule.js +149 -153
  52. package/dist/src/lib/container/RemoteModule.js.map +1 -1
  53. package/dist/src/lib/container/RemoteRuntimeModule.d.ts +12 -7
  54. package/dist/src/lib/container/RemoteRuntimeModule.js +86 -120
  55. package/dist/src/lib/container/RemoteRuntimeModule.js.map +1 -1
  56. package/dist/src/lib/container/RemoteToExternalDependency.d.ts +13 -8
  57. package/dist/src/lib/container/RemoteToExternalDependency.js +25 -23
  58. package/dist/src/lib/container/RemoteToExternalDependency.js.map +1 -1
  59. package/dist/src/lib/container/constant.d.ts +3 -0
  60. package/dist/src/lib/container/constant.js +11 -14
  61. package/dist/src/lib/container/constant.js.map +1 -1
  62. package/dist/src/lib/container/options.d.ts +12 -3
  63. package/dist/src/lib/container/options.js +51 -69
  64. package/dist/src/lib/container/options.js.map +1 -1
  65. package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.d.ts +14 -9
  66. package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.js +56 -64
  67. package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.js.map +1 -1
  68. package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.d.ts +23 -19
  69. package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.js +70 -101
  70. package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.js.map +1 -1
  71. package/dist/src/lib/container/runtime/FederationModulesPlugin.d.ts +20 -16
  72. package/dist/src/lib/container/runtime/FederationModulesPlugin.js +38 -46
  73. package/dist/src/lib/container/runtime/FederationModulesPlugin.js.map +1 -1
  74. package/dist/src/lib/container/runtime/FederationRuntimeDependency.d.ts +9 -4
  75. package/dist/src/lib/container/runtime/FederationRuntimeDependency.js +16 -12
  76. package/dist/src/lib/container/runtime/FederationRuntimeDependency.js.map +1 -1
  77. package/dist/src/lib/container/runtime/FederationRuntimeModule.d.ts +16 -11
  78. package/dist/src/lib/container/runtime/FederationRuntimeModule.js +39 -46
  79. package/dist/src/lib/container/runtime/FederationRuntimeModule.js.map +1 -1
  80. package/dist/src/lib/container/runtime/FederationRuntimePlugin.d.ts +31 -18
  81. package/dist/src/lib/container/runtime/FederationRuntimePlugin.js +263 -293
  82. package/dist/src/lib/container/runtime/FederationRuntimePlugin.js.map +1 -1
  83. package/dist/src/lib/container/runtime/getFederationGlobal.d.ts +9 -4
  84. package/dist/src/lib/container/runtime/getFederationGlobal.js +43 -41
  85. package/dist/src/lib/container/runtime/getFederationGlobal.js.map +1 -1
  86. package/dist/src/lib/container/runtime/normalizeToPosixPath.d.ts +5 -0
  87. package/dist/src/lib/container/runtime/normalizeToPosixPath.js +20 -0
  88. package/dist/src/lib/container/runtime/normalizeToPosixPath.js.map +1 -0
  89. package/dist/src/lib/container/runtime/utils.d.ts +22 -7
  90. package/dist/src/lib/container/runtime/utils.js +80 -102
  91. package/dist/src/lib/container/runtime/utils.js.map +1 -1
  92. package/dist/src/lib/sharing/ConsumeSharedFallbackDependency.d.ts +15 -10
  93. package/dist/src/lib/sharing/ConsumeSharedFallbackDependency.js +27 -25
  94. package/dist/src/lib/sharing/ConsumeSharedFallbackDependency.js.map +1 -1
  95. package/dist/src/lib/sharing/ConsumeSharedModule.d.ts +77 -67
  96. package/dist/src/lib/sharing/ConsumeSharedModule.js +190 -214
  97. package/dist/src/lib/sharing/ConsumeSharedModule.js.map +1 -1
  98. package/dist/src/lib/sharing/ConsumeSharedPlugin.d.ts +13 -9
  99. package/dist/src/lib/sharing/ConsumeSharedPlugin.js +308 -472
  100. package/dist/src/lib/sharing/ConsumeSharedPlugin.js.map +1 -1
  101. package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.d.ts +16 -11
  102. package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.js +108 -123
  103. package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.js.map +1 -1
  104. package/dist/src/lib/sharing/ProvideForSharedDependency.d.ts +14 -9
  105. package/dist/src/lib/sharing/ProvideForSharedDependency.js +25 -25
  106. package/dist/src/lib/sharing/ProvideForSharedDependency.js.map +1 -1
  107. package/dist/src/lib/sharing/ProvideSharedDependency.d.ts +44 -38
  108. package/dist/src/lib/sharing/ProvideSharedDependency.js +72 -74
  109. package/dist/src/lib/sharing/ProvideSharedDependency.js.map +1 -1
  110. package/dist/src/lib/sharing/ProvideSharedModule.d.ts +91 -81
  111. package/dist/src/lib/sharing/ProvideSharedModule.js +177 -181
  112. package/dist/src/lib/sharing/ProvideSharedModule.js.map +1 -1
  113. package/dist/src/lib/sharing/ProvideSharedModuleFactory.d.ts +14 -9
  114. package/dist/src/lib/sharing/ProvideSharedModuleFactory.js +19 -25
  115. package/dist/src/lib/sharing/ProvideSharedModuleFactory.js.map +1 -1
  116. package/dist/src/lib/sharing/ProvideSharedPlugin.d.ts +27 -21
  117. package/dist/src/lib/sharing/ProvideSharedPlugin.js +341 -548
  118. package/dist/src/lib/sharing/ProvideSharedPlugin.js.map +1 -1
  119. package/dist/src/lib/sharing/SharePlugin.d.ts +55 -12
  120. package/dist/src/lib/sharing/SharePlugin.js +91 -91
  121. package/dist/src/lib/sharing/SharePlugin.js.map +1 -1
  122. package/dist/src/lib/sharing/ShareRuntimeModule.d.ts +12 -7
  123. package/dist/src/lib/sharing/ShareRuntimeModule.js +81 -99
  124. package/dist/src/lib/sharing/ShareRuntimeModule.js.map +1 -1
  125. package/dist/src/lib/sharing/resolveMatchedConfigs.d.ts +11 -7
  126. package/dist/src/lib/sharing/resolveMatchedConfigs.js +58 -71
  127. package/dist/src/lib/sharing/resolveMatchedConfigs.js.map +1 -1
  128. package/dist/src/lib/sharing/tree-shaking/CollectSharedEntryPlugin.d.ts +25 -0
  129. package/dist/src/lib/sharing/tree-shaking/CollectSharedEntryPlugin.js +85 -0
  130. package/dist/src/lib/sharing/tree-shaking/CollectSharedEntryPlugin.js.map +1 -0
  131. package/dist/src/lib/sharing/tree-shaking/IndependentSharedPlugin.d.ts +41 -0
  132. package/dist/src/lib/sharing/tree-shaking/IndependentSharedPlugin.js +227 -0
  133. package/dist/src/lib/sharing/tree-shaking/IndependentSharedPlugin.js.map +1 -0
  134. package/dist/src/lib/sharing/tree-shaking/IndependentSharedRuntimeModule.d.ts +26 -0
  135. package/dist/src/lib/sharing/tree-shaking/IndependentSharedRuntimeModule.js +32 -0
  136. package/dist/src/lib/sharing/tree-shaking/IndependentSharedRuntimeModule.js.map +1 -0
  137. package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedContainerPlugin.d.ts +32 -0
  138. package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedContainerPlugin.js +94 -0
  139. package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedContainerPlugin.js.map +1 -0
  140. package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedDependency.d.ts +31 -0
  141. package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedDependency.js +49 -0
  142. package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedDependency.js.map +1 -0
  143. package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryDependency.d.ts +22 -0
  144. package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryDependency.js +35 -0
  145. package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryDependency.js.map +1 -0
  146. package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModule.d.ts +87 -0
  147. package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModule.js +144 -0
  148. package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModule.js.map +1 -0
  149. package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModuleFactory.d.ts +16 -0
  150. package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModuleFactory.js +23 -0
  151. package/dist/src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModuleFactory.js.map +1 -0
  152. package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerPlugin.d.ts +23 -0
  153. package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerPlugin.js +163 -0
  154. package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerPlugin.js.map +1 -0
  155. package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerRuntimeModule.d.ts +22 -0
  156. package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerRuntimeModule.js +28 -0
  157. package/dist/src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerRuntimeModule.js.map +1 -0
  158. package/dist/src/lib/sharing/tree-shaking/TreeShakingSharedPlugin.d.ts +20 -0
  159. package/dist/src/lib/sharing/tree-shaking/TreeShakingSharedPlugin.js +44 -0
  160. package/dist/src/lib/sharing/tree-shaking/TreeShakingSharedPlugin.js.map +1 -0
  161. package/dist/src/lib/sharing/utils.d.ts +27 -23
  162. package/dist/src/lib/sharing/utils.js +224 -366
  163. package/dist/src/lib/sharing/utils.js.map +1 -1
  164. package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.d.ts +11 -7
  165. package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.js +56 -75
  166. package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.js.map +1 -1
  167. package/dist/src/lib/startup/StartupHelpers.d.ts +11 -6
  168. package/dist/src/lib/startup/StartupHelpers.js +128 -178
  169. package/dist/src/lib/startup/StartupHelpers.js.map +1 -1
  170. package/dist/src/rspack.d.ts +3 -2
  171. package/dist/src/rspack.js +35 -10
  172. package/dist/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.d.ts +8 -4
  173. package/dist/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.js +19 -16
  174. package/dist/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.js.map +1 -1
  175. package/dist/src/runtime.d.ts +1 -1
  176. package/dist/src/runtime.js +11 -18
  177. package/dist/src/runtime.mjs +3 -0
  178. package/dist/src/schemas/container/ContainerPlugin.check.d.ts +13 -5
  179. package/dist/src/schemas/container/ContainerPlugin.check.js +767 -1220
  180. package/dist/src/schemas/container/ContainerPlugin.check.js.map +1 -1
  181. package/dist/src/schemas/container/ContainerPlugin.d.ts +267 -268
  182. package/dist/src/schemas/container/ContainerPlugin.js +269 -361
  183. package/dist/src/schemas/container/ContainerPlugin.js.map +1 -1
  184. package/dist/src/schemas/container/ContainerReferencePlugin.check.d.ts +13 -5
  185. package/dist/src/schemas/container/ContainerReferencePlugin.check.js +335 -443
  186. package/dist/src/schemas/container/ContainerReferencePlugin.check.js.map +1 -1
  187. package/dist/src/schemas/container/ContainerReferencePlugin.d.ts +102 -99
  188. package/dist/src/schemas/container/ContainerReferencePlugin.js +122 -162
  189. package/dist/src/schemas/container/ContainerReferencePlugin.js.map +1 -1
  190. package/dist/src/schemas/container/ExternalsType.check.d.ts +13 -5
  191. package/dist/src/schemas/container/ExternalsType.check.js +36 -62
  192. package/dist/src/schemas/container/ExternalsType.check.js.map +1 -1
  193. package/dist/src/schemas/container/ExternalsType.d.ts +5 -2
  194. package/dist/src/schemas/container/ExternalsType.js +8 -11
  195. package/dist/src/schemas/container/ExternalsType.js.map +1 -1
  196. package/dist/src/schemas/container/ModuleFederationPlugin.check.js +3020 -4301
  197. package/dist/src/schemas/container/ModuleFederationPlugin.check.js.map +1 -1
  198. package/dist/src/schemas/container/ModuleFederationPlugin.d.ts +828 -758
  199. package/dist/src/schemas/container/ModuleFederationPlugin.js +788 -993
  200. package/dist/src/schemas/container/ModuleFederationPlugin.js.map +1 -1
  201. package/dist/src/schemas/sharing/ConsumeSharedPlugin.check.d.ts +13 -5
  202. package/dist/src/schemas/sharing/ConsumeSharedPlugin.check.js +568 -739
  203. package/dist/src/schemas/sharing/ConsumeSharedPlugin.check.js.map +1 -1
  204. package/dist/src/schemas/sharing/ConsumeSharedPlugin.d.ts +197 -189
  205. package/dist/src/schemas/sharing/ConsumeSharedPlugin.js +212 -233
  206. package/dist/src/schemas/sharing/ConsumeSharedPlugin.js.map +1 -1
  207. package/dist/src/schemas/sharing/ProvideSharedPlugin.check.d.ts +13 -5
  208. package/dist/src/schemas/sharing/ProvideSharedPlugin.check.js +598 -775
  209. package/dist/src/schemas/sharing/ProvideSharedPlugin.check.js.map +1 -1
  210. package/dist/src/schemas/sharing/ProvideSharedPlugin.d.ts +184 -176
  211. package/dist/src/schemas/sharing/ProvideSharedPlugin.js +196 -224
  212. package/dist/src/schemas/sharing/ProvideSharedPlugin.js.map +1 -1
  213. package/dist/src/schemas/sharing/ProviderSharedPlugin.check.d.ts +12 -4
  214. package/dist/src/schemas/sharing/ProviderSharedPlugin.check.js +285 -482
  215. package/dist/src/schemas/sharing/ProviderSharedPlugin.check.js.map +1 -1
  216. package/dist/src/schemas/sharing/ProviderSharedPlugin.d.ts +103 -100
  217. package/dist/src/schemas/sharing/ProviderSharedPlugin.js +104 -126
  218. package/dist/src/schemas/sharing/ProviderSharedPlugin.js.map +1 -1
  219. package/dist/src/schemas/sharing/SharePlugin.check.d.ts +13 -5
  220. package/dist/src/schemas/sharing/SharePlugin.check.js +749 -794
  221. package/dist/src/schemas/sharing/SharePlugin.check.js.map +1 -1
  222. package/dist/src/schemas/sharing/SharePlugin.d.ts +245 -205
  223. package/dist/src/schemas/sharing/SharePlugin.js +256 -253
  224. package/dist/src/schemas/sharing/SharePlugin.js.map +1 -1
  225. package/dist/src/utils.d.ts +3 -0
  226. package/dist/src/utils.js +35 -26
  227. package/dist/src/utils.js.map +1 -1
  228. package/dist/src/webpack.d.ts +2 -2
  229. package/dist/src/webpack.js +6 -40
  230. package/dist/src/wrapper/AsyncBoundaryPlugin.d.ts +9 -7
  231. package/dist/src/wrapper/AsyncBoundaryPlugin.js +13 -17
  232. package/dist/src/wrapper/AsyncBoundaryPlugin.js.map +1 -1
  233. package/dist/src/wrapper/BaseWrapperPlugin.d.ts +32 -0
  234. package/dist/src/wrapper/BaseWrapperPlugin.js +43 -0
  235. package/dist/src/wrapper/BaseWrapperPlugin.js.map +1 -0
  236. package/dist/src/wrapper/ConsumeSharedPlugin.d.ts +10 -7
  237. package/dist/src/wrapper/ConsumeSharedPlugin.js +13 -17
  238. package/dist/src/wrapper/ConsumeSharedPlugin.js.map +1 -1
  239. package/dist/src/wrapper/ContainerPlugin.d.ts +9 -7
  240. package/dist/src/wrapper/ContainerPlugin.js +13 -17
  241. package/dist/src/wrapper/ContainerPlugin.js.map +1 -1
  242. package/dist/src/wrapper/ContainerReferencePlugin.d.ts +9 -7
  243. package/dist/src/wrapper/ContainerReferencePlugin.js +13 -17
  244. package/dist/src/wrapper/ContainerReferencePlugin.js.map +1 -1
  245. package/dist/src/wrapper/FederationModulesPlugin.d.ts +18 -10
  246. package/dist/src/wrapper/FederationModulesPlugin.js +20 -21
  247. package/dist/src/wrapper/FederationModulesPlugin.js.map +1 -1
  248. package/dist/src/wrapper/FederationRuntimePlugin.d.ts +11 -8
  249. package/dist/src/wrapper/FederationRuntimePlugin.js +19 -20
  250. package/dist/src/wrapper/FederationRuntimePlugin.js.map +1 -1
  251. package/dist/src/wrapper/HoistContainerReferencesPlugin.d.ts +8 -5
  252. package/dist/src/wrapper/HoistContainerReferencesPlugin.js +13 -16
  253. package/dist/src/wrapper/HoistContainerReferencesPlugin.js.map +1 -1
  254. package/dist/src/wrapper/ModuleFederationPlugin.d.ts +12 -9
  255. package/dist/src/wrapper/ModuleFederationPlugin.js +71 -104
  256. package/dist/src/wrapper/ModuleFederationPlugin.js.map +1 -1
  257. package/dist/src/wrapper/ProvideSharedPlugin.d.ts +10 -7
  258. package/dist/src/wrapper/ProvideSharedPlugin.js +13 -17
  259. package/dist/src/wrapper/ProvideSharedPlugin.js.map +1 -1
  260. package/dist/src/wrapper/SharePlugin.d.ts +10 -7
  261. package/dist/src/wrapper/SharePlugin.js +13 -17
  262. package/dist/src/wrapper/SharePlugin.js.map +1 -1
  263. package/dist/src/wrapper/TreeShakingSharedPlugin.d.ts +10 -0
  264. package/dist/src/wrapper/TreeShakingSharedPlugin.js +15 -0
  265. package/dist/src/wrapper/TreeShakingSharedPlugin.js.map +1 -0
  266. package/package.json +27 -29
  267. package/dist/package.json +0 -110
  268. package/dist/src/declarations/plugins/container/AsyncDependenciesBlock.d.ts +0 -57
  269. package/dist/src/declarations/plugins/container/ModuleFactory.d.ts +0 -33
  270. package/dist/src/declarations/plugins/container/ObjectDeserializerContext.d.ts +0 -4
  271. package/dist/src/declarations/plugins/container/StaticExportsDependency.d.ts +0 -28
  272. package/dist/src/declarations/plugins/container/Template.d.ts +0 -198
  273. package/dist/src/declarations/plugins/container/WebpackError.d.ts +0 -33
  274. package/dist/src/declarations/plugins/sharing/ConsumeSharedModule.d.ts +0 -82
  275. package/dist/src/declarations/plugins/sharing/ConsumeSharedPlugin.d.ts +0 -96
  276. package/dist/src/declarations/plugins/sharing/ProvideSharedPlugin.d.ts +0 -98
  277. package/dist/src/declarations/plugins/sharing/SharePlugin.d.ts +0 -108
  278. package/dist/src/lib/container/runtime/ChildCompilationRuntimePlugin.d.ts +0 -20
  279. package/dist/src/lib/container/runtime/ChildCompilationRuntimePlugin.js +0 -219
  280. package/dist/src/lib/container/runtime/ChildCompilationRuntimePlugin.js.map +0 -1
  281. package/dist/src/prefetch.d.ts +0 -2
  282. package/dist/src/prefetch.js +0 -8
  283. package/dist/src/prefetch.js.map +0 -1
  284. package/dist/src/rspack.js.map +0 -1
  285. package/dist/src/runtime.js.map +0 -1
  286. package/dist/src/types/runtime.d.ts +0 -10
  287. package/dist/src/types/runtime.js +0 -3
  288. package/dist/src/types/runtime.js.map +0 -1
  289. package/dist/src/webpack.js.map +0 -1
@@ -0,0 +1,87 @@
1
+ import { Compilation } from "webpack";
2
+ import * as node_modules_webpack_types0 from "node_modules/webpack/types";
3
+ import { CodeGenerationResult, InputFileSystem, LibIdentOptions, NeedBuildContext, ObjectDeserializerContext, ObjectSerializerContext, RequestShortener, ResolverWithOptions, WebpackOptions } from "webpack/lib/Module";
4
+ import WebpackError$1 from "webpack/lib/WebpackError";
5
+
6
+ //#region src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModule.d.ts
7
+ declare const Module$1: typeof node_modules_webpack_types0.Module;
8
+ type ExposeOptions = {
9
+ /**
10
+ * requests to exposed modules (last one is exported)
11
+ */
12
+ import: string[];
13
+ /**
14
+ * custom chunk name for the exposed module
15
+ */
16
+ name: string;
17
+ };
18
+ declare class SharedEntryModule extends Module$1 {
19
+ private _name;
20
+ private _request;
21
+ /**
22
+ * @param {string} name shared name
23
+ * @param {string} request request
24
+ */
25
+ constructor(name: string, request: string);
26
+ /**
27
+ * @param {ObjectDeserializerContext} context context
28
+ * @returns {SharedEntryModule} deserialized container entry module
29
+ */
30
+ static deserialize(context: ObjectDeserializerContext): SharedEntryModule;
31
+ /**
32
+ * @returns {Set<string>} types available (do not mutate)
33
+ */
34
+ getSourceTypes(): Set<string>;
35
+ /**
36
+ * @returns {string} a unique identifier of the module
37
+ */
38
+ identifier(): string;
39
+ /**
40
+ * @param {RequestShortener} requestShortener the request shortener
41
+ * @returns {string} a user readable identifier of the module
42
+ */
43
+ readableIdentifier(requestShortener: RequestShortener): string;
44
+ /**
45
+ * @param {LibIdentOptions} options options
46
+ * @returns {string | null} an identifier for library inclusion
47
+ */
48
+ libIdent(options: LibIdentOptions): string | null;
49
+ /**
50
+ * @param {NeedBuildContext} context context info
51
+ * @param {function((WebpackError | null)=, boolean=): void} callback callback function, returns true, if the module needs a rebuild
52
+ * @returns {void}
53
+ */
54
+ needBuild(context: NeedBuildContext, callback: (arg0: (WebpackError$1 | null) | undefined, arg1: boolean | undefined) => void): void;
55
+ /**
56
+ * @param {WebpackOptions} options webpack options
57
+ * @param {Compilation} compilation the compilation
58
+ * @param {ResolverWithOptions} resolver the resolver
59
+ * @param {InputFileSystem} fs the file system
60
+ * @param {function(WebpackError): void} callback callback function
61
+ * @returns {void}
62
+ */
63
+ build(options: WebpackOptions, compilation: Compilation, resolver: ResolverWithOptions, fs: InputFileSystem, callback: (err?: WebpackError$1) => void): void;
64
+ /**
65
+ * @param {CodeGenerationContext} context context for code generation
66
+ * @returns {CodeGenerationResult} result
67
+ */
68
+ codeGeneration({
69
+ chunkGraph,
70
+ runtimeTemplate
71
+ }: CodeGenerationResult): {
72
+ sources: Map<any, any>;
73
+ runtimeRequirements: Set<"__webpack_require__.d" | "__webpack_require__.o" | "__webpack_exports__">;
74
+ };
75
+ /**
76
+ * @param {string=} type the source type for which the size should be estimated
77
+ * @returns {number} the estimated size of the module (must be non-zero)
78
+ */
79
+ size(type?: string): number;
80
+ /**
81
+ * @param {ObjectSerializerContext} context context
82
+ */
83
+ serialize(context: ObjectSerializerContext): void;
84
+ }
85
+ //#endregion
86
+ export { ExposeOptions, SharedEntryModule as default };
87
+ //# sourceMappingURL=SharedEntryModule.d.ts.map
@@ -0,0 +1,144 @@
1
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
2
+ const require_runtime = require('../../../../_virtual/_rolldown/runtime.js');
3
+ const require_lib_container_runtime_utils = require('../../../container/runtime/utils.js');
4
+ const require_lib_sharing_tree_shaking_SharedContainerPlugin_SharedDependency = require('./SharedDependency.js');
5
+ let _module_federation_sdk_normalize_webpack_path = require("@module-federation/sdk/normalize-webpack-path");
6
+
7
+ //#region src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModule.ts
8
+ const makeSerializable = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack/lib/util/makeSerializable"));
9
+ const { sources: webpackSources, Template, Module, RuntimeGlobals } = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack"));
10
+ const StaticExportsDependency = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack/lib/dependencies/StaticExportsDependency"));
11
+ const SOURCE_TYPES = new Set(["javascript"]);
12
+ var SharedEntryModule = class SharedEntryModule extends Module {
13
+ /**
14
+ * @param {string} name shared name
15
+ * @param {string} request request
16
+ */
17
+ constructor(name, request) {
18
+ super("shared-entry-module", null);
19
+ this._name = name;
20
+ this._request = request;
21
+ }
22
+ /**
23
+ * @param {ObjectDeserializerContext} context context
24
+ * @returns {SharedEntryModule} deserialized container entry module
25
+ */
26
+ static deserialize(context) {
27
+ const { read } = context;
28
+ const obj = new SharedEntryModule(read(), read());
29
+ obj.deserialize(context);
30
+ return obj;
31
+ }
32
+ /**
33
+ * @returns {Set<string>} types available (do not mutate)
34
+ */
35
+ getSourceTypes() {
36
+ return SOURCE_TYPES;
37
+ }
38
+ /**
39
+ * @returns {string} a unique identifier of the module
40
+ */
41
+ identifier() {
42
+ return `shared module ${this._name} ${this._request}`;
43
+ }
44
+ /**
45
+ * @param {RequestShortener} requestShortener the request shortener
46
+ * @returns {string} a user readable identifier of the module
47
+ */
48
+ readableIdentifier(requestShortener) {
49
+ return `shared module ${this._name} ${requestShortener.shorten(this._request)}`;
50
+ }
51
+ /**
52
+ * @param {LibIdentOptions} options options
53
+ * @returns {string | null} an identifier for library inclusion
54
+ */
55
+ libIdent(options) {
56
+ return `shared module ${this._name}`;
57
+ }
58
+ /**
59
+ * @param {NeedBuildContext} context context info
60
+ * @param {function((WebpackError | null)=, boolean=): void} callback callback function, returns true, if the module needs a rebuild
61
+ * @returns {void}
62
+ */
63
+ needBuild(context, callback) {
64
+ callback(null, !this.buildMeta);
65
+ }
66
+ /**
67
+ * @param {WebpackOptions} options webpack options
68
+ * @param {Compilation} compilation the compilation
69
+ * @param {ResolverWithOptions} resolver the resolver
70
+ * @param {InputFileSystem} fs the file system
71
+ * @param {function(WebpackError): void} callback callback function
72
+ * @returns {void}
73
+ */
74
+ build(options, compilation, resolver, fs, callback) {
75
+ this.buildMeta = {};
76
+ this.buildInfo = {
77
+ strict: true,
78
+ topLevelDeclarations: new Set(["get", "init"])
79
+ };
80
+ this.buildMeta.exportsType = "namespace";
81
+ this.clearDependenciesAndBlocks();
82
+ this.addDependency(new StaticExportsDependency(["get", "init"], false));
83
+ this.addDependency(new require_lib_sharing_tree_shaking_SharedContainerPlugin_SharedDependency.default(this._name, this._request));
84
+ callback();
85
+ }
86
+ /**
87
+ * @param {CodeGenerationContext} context context for code generation
88
+ * @returns {CodeGenerationResult} result
89
+ */
90
+ codeGeneration({ chunkGraph, runtimeTemplate }) {
91
+ const sources = /* @__PURE__ */ new Map();
92
+ const runtimeRequirements = new Set([
93
+ RuntimeGlobals.definePropertyGetters,
94
+ RuntimeGlobals.hasOwnProperty,
95
+ RuntimeGlobals.exports
96
+ ]);
97
+ const moduleGetter = runtimeTemplate.syncModuleFactory({
98
+ dependency: this.dependencies[1],
99
+ chunkGraph,
100
+ request: this._request,
101
+ runtimeRequirements
102
+ });
103
+ const source = Template.asString([
104
+ `var moduleGetter = ${moduleGetter};`,
105
+ `var get = ${runtimeTemplate.basicFunction("module, getScope", ["return moduleGetter();"])};`,
106
+ `var init = ${runtimeTemplate.basicFunction("mfInstance, bundlerRuntime", [
107
+ `${require_lib_container_runtime_utils.getFederationGlobalScope(RuntimeGlobals)}.instance = mfInstance;`,
108
+ `${require_lib_container_runtime_utils.getFederationGlobalScope(RuntimeGlobals)}.bundlerRuntime = bundlerRuntime;`,
109
+ `if(!${require_lib_container_runtime_utils.getFederationGlobalScope(RuntimeGlobals)}.installInitialConsumes) { return Promise.resolve(); }`,
110
+ `return ${require_lib_container_runtime_utils.getFederationGlobalScope(RuntimeGlobals)}.installInitialConsumes({ asyncLoad: true });`
111
+ ])};`,
112
+ "// This exports getters to disallow modifications",
113
+ `${RuntimeGlobals.definePropertyGetters}(exports, {`,
114
+ Template.indent([`get: ${runtimeTemplate.returningFunction("get")},`, `init: ${runtimeTemplate.returningFunction("init")}`]),
115
+ "});"
116
+ ]);
117
+ sources.set("javascript", this.useSourceMap || this.useSimpleSourceMap ? new webpackSources.OriginalSource(source, "webpack/shared-entry") : new webpackSources.RawSource(source));
118
+ return {
119
+ sources,
120
+ runtimeRequirements
121
+ };
122
+ }
123
+ /**
124
+ * @param {string=} type the source type for which the size should be estimated
125
+ * @returns {number} the estimated size of the module (must be non-zero)
126
+ */
127
+ size(type) {
128
+ return 42;
129
+ }
130
+ /**
131
+ * @param {ObjectSerializerContext} context context
132
+ */
133
+ serialize(context) {
134
+ const { write } = context;
135
+ write(this._name);
136
+ write(this._request);
137
+ super.serialize(context);
138
+ }
139
+ };
140
+ makeSerializable(SharedEntryModule, "SharedEntryModule");
141
+
142
+ //#endregion
143
+ exports.default = SharedEntryModule;
144
+ //# sourceMappingURL=SharedEntryModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharedEntryModule.js","names":["SharedDependency","getFederationGlobalScope"],"sources":["../../../../../../src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModule.ts"],"sourcesContent":["import { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\nimport type { Compilation, Dependency } from 'webpack';\nimport type {\n CodeGenerationResult,\n InputFileSystem,\n LibIdentOptions,\n NeedBuildContext,\n ObjectDeserializerContext,\n ObjectSerializerContext,\n RequestShortener,\n ResolverWithOptions,\n WebpackOptions,\n} from 'webpack/lib/Module';\nimport type WebpackError from 'webpack/lib/WebpackError';\nimport SharedDependency from './SharedDependency';\nimport { getFederationGlobalScope } from '../../../container/runtime/utils';\n\nconst makeSerializable = require(\n normalizeWebpackPath('webpack/lib/util/makeSerializable'),\n) as typeof import('webpack/lib/util/makeSerializable');\nconst {\n sources: webpackSources,\n Template,\n Module,\n RuntimeGlobals,\n} = require(normalizeWebpackPath('webpack')) as typeof import('webpack');\nconst StaticExportsDependency = require(\n normalizeWebpackPath('webpack/lib/dependencies/StaticExportsDependency'),\n) as typeof import('webpack/lib/dependencies/StaticExportsDependency');\n\nconst SOURCE_TYPES = new Set(['javascript']);\n\nexport type ExposeOptions = {\n /**\n * requests to exposed modules (last one is exported)\n */\n import: string[];\n /**\n * custom chunk name for the exposed module\n */\n name: string;\n};\n\nclass SharedEntryModule extends Module {\n private _name: string;\n private _request: string;\n\n /**\n * @param {string} name shared name\n * @param {string} request request\n */\n constructor(name: string, request: string) {\n super('shared-entry-module', null);\n // super(JAVASCRIPT_MODULE_TYPE_DYNAMIC, null);\n this._name = name;\n this._request = request;\n }\n\n /**\n * @param {ObjectDeserializerContext} context context\n * @returns {SharedEntryModule} deserialized container entry module\n */\n static deserialize(context: ObjectDeserializerContext): SharedEntryModule {\n const { read } = context;\n const obj = new SharedEntryModule(read(), read());\n obj.deserialize(context);\n return obj;\n }\n\n /**\n * @returns {Set<string>} types available (do not mutate)\n */\n override getSourceTypes(): Set<string> {\n return SOURCE_TYPES;\n }\n /**\n * @returns {string} a unique identifier of the module\n */\n override identifier(): string {\n return `shared module ${this._name} ${this._request}`;\n }\n /**\n * @param {RequestShortener} requestShortener the request shortener\n * @returns {string} a user readable identifier of the module\n */\n override readableIdentifier(requestShortener: RequestShortener): string {\n return `shared module ${this._name} ${requestShortener.shorten(this._request)}`;\n }\n /**\n * @param {LibIdentOptions} options options\n * @returns {string | null} an identifier for library inclusion\n */\n override libIdent(options: LibIdentOptions): string | null {\n return `shared module ${this._name}`;\n }\n /**\n * @param {NeedBuildContext} context context info\n * @param {function((WebpackError | null)=, boolean=): void} callback callback function, returns true, if the module needs a rebuild\n * @returns {void}\n */\n override needBuild(\n context: NeedBuildContext,\n callback: (\n arg0: (WebpackError | null) | undefined,\n arg1: boolean | undefined,\n ) => void,\n ): void {\n callback(null, !this.buildMeta);\n }\n /**\n * @param {WebpackOptions} options webpack options\n * @param {Compilation} compilation the compilation\n * @param {ResolverWithOptions} resolver the resolver\n * @param {InputFileSystem} fs the file system\n * @param {function(WebpackError): void} callback callback function\n * @returns {void}\n */\n override build(\n options: WebpackOptions,\n compilation: Compilation,\n resolver: ResolverWithOptions,\n fs: InputFileSystem,\n callback: (err?: WebpackError) => void,\n ): void {\n this.buildMeta = {};\n this.buildInfo = {\n strict: true,\n topLevelDeclarations: new Set(['get', 'init']),\n };\n this.buildMeta.exportsType = 'namespace';\n this.clearDependenciesAndBlocks();\n\n this.addDependency(\n new StaticExportsDependency(\n ['get', 'init'],\n false,\n ) as unknown as Dependency,\n );\n\n this.addDependency(new SharedDependency(this._name, this._request));\n callback();\n }\n\n /**\n * @param {CodeGenerationContext} context context for code generation\n * @returns {CodeGenerationResult} result\n */\n // @ts-ignore\n override codeGeneration({\n // @ts-ignore\n chunkGraph,\n // @ts-ignore\n runtimeTemplate,\n }: CodeGenerationResult) {\n const sources = new Map();\n const runtimeRequirements = new Set([\n RuntimeGlobals.definePropertyGetters,\n RuntimeGlobals.hasOwnProperty,\n RuntimeGlobals.exports,\n ]);\n const moduleGetter = runtimeTemplate.syncModuleFactory({\n dependency: this.dependencies[1],\n chunkGraph,\n request: this._request,\n runtimeRequirements,\n });\n const source = Template.asString([\n `var moduleGetter = ${moduleGetter};`,\n `var get = ${runtimeTemplate.basicFunction('module, getScope', [\n 'return moduleGetter();',\n ])};`,\n `var init = ${runtimeTemplate.basicFunction(\n 'mfInstance, bundlerRuntime',\n [\n `${getFederationGlobalScope(RuntimeGlobals)}.instance = mfInstance;`,\n `${getFederationGlobalScope(RuntimeGlobals)}.bundlerRuntime = bundlerRuntime;`,\n `if(!${getFederationGlobalScope(RuntimeGlobals)}.installInitialConsumes) { return Promise.resolve(); }`,\n `return ${getFederationGlobalScope(RuntimeGlobals)}.installInitialConsumes({ asyncLoad: true });`,\n ],\n )};`,\n '// This exports getters to disallow modifications',\n `${RuntimeGlobals.definePropertyGetters}(exports, {`,\n Template.indent([\n `get: ${runtimeTemplate.returningFunction('get')},`,\n `init: ${runtimeTemplate.returningFunction('init')}`,\n ]),\n\n '});',\n ]);\n\n sources.set(\n 'javascript',\n this.useSourceMap || this.useSimpleSourceMap\n ? new webpackSources.OriginalSource(source, 'webpack/shared-entry')\n : new webpackSources.RawSource(source),\n );\n\n return {\n sources,\n runtimeRequirements,\n };\n }\n\n /**\n * @param {string=} type the source type for which the size should be estimated\n * @returns {number} the estimated size of the module (must be non-zero)\n */\n override size(type?: string): number {\n return 42;\n }\n /**\n * @param {ObjectSerializerContext} context context\n */\n override serialize(context: ObjectSerializerContext): void {\n const { write } = context;\n write(this._name);\n write(this._request);\n super.serialize(context);\n }\n}\n\nmakeSerializable(SharedEntryModule, 'SharedEntryModule');\n\nexport default SharedEntryModule;\n"],"mappings":";;;;;;;AAiBA,MAAM,mBAAmB,gFACF,oCAAoC,CAC1D;AACD,MAAM,EACJ,SAAS,gBACT,UACA,QACA,mBACE,gFAA6B,UAAU,CAAC;AAC5C,MAAM,0BAA0B,gFACT,mDAAmD,CACzE;AAED,MAAM,eAAe,IAAI,IAAI,CAAC,aAAa,CAAC;AAa5C,IAAM,oBAAN,MAAM,0BAA0B,OAAO;;;;;CAQrC,YAAY,MAAc,SAAiB;AACzC,QAAM,uBAAuB,KAAK;AAElC,OAAK,QAAQ;AACb,OAAK,WAAW;;;;;;CAOlB,OAAO,YAAY,SAAuD;EACxE,MAAM,EAAE,SAAS;EACjB,MAAM,MAAM,IAAI,kBAAkB,MAAM,EAAE,MAAM,CAAC;AACjD,MAAI,YAAY,QAAQ;AACxB,SAAO;;;;;CAMT,AAAS,iBAA8B;AACrC,SAAO;;;;;CAKT,AAAS,aAAqB;AAC5B,SAAO,iBAAiB,KAAK,MAAM,GAAG,KAAK;;;;;;CAM7C,AAAS,mBAAmB,kBAA4C;AACtE,SAAO,iBAAiB,KAAK,MAAM,GAAG,iBAAiB,QAAQ,KAAK,SAAS;;;;;;CAM/E,AAAS,SAAS,SAAyC;AACzD,SAAO,iBAAiB,KAAK;;;;;;;CAO/B,AAAS,UACP,SACA,UAIM;AACN,WAAS,MAAM,CAAC,KAAK,UAAU;;;;;;;;;;CAUjC,AAAS,MACP,SACA,aACA,UACA,IACA,UACM;AACN,OAAK,YAAY,EAAE;AACnB,OAAK,YAAY;GACf,QAAQ;GACR,sBAAsB,IAAI,IAAI,CAAC,OAAO,OAAO,CAAC;GAC/C;AACD,OAAK,UAAU,cAAc;AAC7B,OAAK,4BAA4B;AAEjC,OAAK,cACH,IAAI,wBACF,CAAC,OAAO,OAAO,EACf,MACD,CACF;AAED,OAAK,cAAc,IAAIA,gFAAiB,KAAK,OAAO,KAAK,SAAS,CAAC;AACnE,YAAU;;;;;;CAQZ,AAAS,eAAe,EAEtB,YAEA,mBACuB;EACvB,MAAM,0BAAU,IAAI,KAAK;EACzB,MAAM,sBAAsB,IAAI,IAAI;GAClC,eAAe;GACf,eAAe;GACf,eAAe;GAChB,CAAC;EACF,MAAM,eAAe,gBAAgB,kBAAkB;GACrD,YAAY,KAAK,aAAa;GAC9B;GACA,SAAS,KAAK;GACd;GACD,CAAC;EACF,MAAM,SAAS,SAAS,SAAS;GAC/B,sBAAsB,aAAa;GACnC,aAAa,gBAAgB,cAAc,oBAAoB,CAC7D,yBACD,CAAC,CAAC;GACH,cAAc,gBAAgB,cAC5B,8BACA;IACE,GAAGC,6DAAyB,eAAe,CAAC;IAC5C,GAAGA,6DAAyB,eAAe,CAAC;IAC5C,OAAOA,6DAAyB,eAAe,CAAC;IAChD,UAAUA,6DAAyB,eAAe,CAAC;IACpD,CACF,CAAC;GACF;GACA,GAAG,eAAe,sBAAsB;GACxC,SAAS,OAAO,CACd,QAAQ,gBAAgB,kBAAkB,MAAM,CAAC,IACjD,SAAS,gBAAgB,kBAAkB,OAAO,GACnD,CAAC;GAEF;GACD,CAAC;AAEF,UAAQ,IACN,cACA,KAAK,gBAAgB,KAAK,qBACtB,IAAI,eAAe,eAAe,QAAQ,uBAAuB,GACjE,IAAI,eAAe,UAAU,OAAO,CACzC;AAED,SAAO;GACL;GACA;GACD;;;;;;CAOH,AAAS,KAAK,MAAuB;AACnC,SAAO;;;;;CAKT,AAAS,UAAU,SAAwC;EACzD,MAAM,EAAE,UAAU;AAClB,QAAM,KAAK,MAAM;AACjB,QAAM,KAAK,SAAS;AACpB,QAAM,UAAU,QAAQ;;;AAI5B,iBAAiB,mBAAmB,oBAAoB"}
@@ -0,0 +1,16 @@
1
+ import * as webpack_lib_ModuleFactory0 from "webpack/lib/ModuleFactory";
2
+ import { ModuleFactoryCreateData, ModuleFactoryResult } from "webpack/lib/ModuleFactory";
3
+
4
+ //#region src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModuleFactory.d.ts
5
+ declare const ModuleFactory: typeof webpack_lib_ModuleFactory0;
6
+ declare class SharedEntryModuleFactory extends ModuleFactory {
7
+ /**
8
+ * @param {ModuleFactoryCreateData} data data object
9
+ * @param {function((Error | null)=, ModuleFactoryResult=): void} callback callback
10
+ * @returns {void}
11
+ */
12
+ create(data: ModuleFactoryCreateData, callback: (error: Error | null, result: ModuleFactoryResult) => void): void;
13
+ }
14
+ //#endregion
15
+ export { SharedEntryModuleFactory as default };
16
+ //# sourceMappingURL=SharedEntryModuleFactory.d.ts.map
@@ -0,0 +1,23 @@
1
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
2
+ const require_runtime = require('../../../../_virtual/_rolldown/runtime.js');
3
+ const require_lib_sharing_tree_shaking_SharedContainerPlugin_SharedEntryModule = require('./SharedEntryModule.js');
4
+ let _module_federation_sdk_normalize_webpack_path = require("@module-federation/sdk/normalize-webpack-path");
5
+
6
+ //#region src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModuleFactory.ts
7
+ const ModuleFactory = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack/lib/ModuleFactory"));
8
+ var SharedEntryModuleFactory = class extends ModuleFactory {
9
+ /**
10
+ * @param {ModuleFactoryCreateData} data data object
11
+ * @param {function((Error | null)=, ModuleFactoryResult=): void} callback callback
12
+ * @returns {void}
13
+ */
14
+ create(data, callback) {
15
+ const { dependencies } = data;
16
+ const dep = dependencies[0];
17
+ callback(null, { module: new require_lib_sharing_tree_shaking_SharedContainerPlugin_SharedEntryModule.default(dep.name, dep.request) });
18
+ }
19
+ };
20
+
21
+ //#endregion
22
+ exports.default = SharedEntryModuleFactory;
23
+ //# sourceMappingURL=SharedEntryModuleFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharedEntryModuleFactory.js","names":["SharedEntryModule"],"sources":["../../../../../../src/lib/sharing/tree-shaking/SharedContainerPlugin/SharedEntryModuleFactory.ts"],"sourcesContent":["import { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\nimport type SharedEntryDependency from './SharedEntryDependency';\nimport SharedEntryModule from './SharedEntryModule';\n\nconst ModuleFactory = require(\n normalizeWebpackPath('webpack/lib/ModuleFactory'),\n) as typeof import('webpack/lib/ModuleFactory');\nimport type {\n ModuleFactoryCreateData,\n ModuleFactoryResult,\n} from 'webpack/lib/ModuleFactory';\n\nexport default class SharedEntryModuleFactory extends ModuleFactory {\n /**\n * @param {ModuleFactoryCreateData} data data object\n * @param {function((Error | null)=, ModuleFactoryResult=): void} callback callback\n * @returns {void}\n */\n // @ts-ignore\n override create(\n data: ModuleFactoryCreateData,\n callback: (error: Error | null, result: ModuleFactoryResult) => void,\n ): void {\n const { dependencies } = data;\n const containerDependencies =\n dependencies as unknown as SharedEntryDependency[];\n const dep = containerDependencies[0];\n\n callback(null, {\n // @ts-ignore\n module: new SharedEntryModule(dep.name, dep.request),\n });\n }\n}\n"],"mappings":";;;;;;AAIA,MAAM,gBAAgB,gFACC,4BAA4B,CAClD;AAMD,IAAqB,2BAArB,cAAsD,cAAc;;;;;;CAOlE,AAAS,OACP,MACA,UACM;EACN,MAAM,EAAE,iBAAiB;EAGzB,MAAM,MADJ,aACgC;AAElC,WAAS,MAAM,EAEb,QAAQ,IAAIA,iFAAkB,IAAI,MAAM,IAAI,QAAQ,EACrD,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { NormalizedSharedOptions } from "../SharePlugin.js";
2
+ import { ReferencedExports } from "./SharedUsedExportsOptimizerRuntimeModule.js";
3
+ import { moduleFederationPlugin } from "@module-federation/sdk";
4
+ import { Compiler, WebpackPluginInstance } from "webpack";
5
+
6
+ //#region src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerPlugin.d.ts
7
+ type CustomReferencedExports = {
8
+ [sharedName: string]: string[];
9
+ };
10
+ declare class SharedUsedExportsOptimizerPlugin implements WebpackPluginInstance {
11
+ name: string;
12
+ sharedReferencedExports: ReferencedExports;
13
+ private sharedOptions;
14
+ private injectTreeShakingUsedExports;
15
+ private manifestOptions;
16
+ ignoredRuntime: string[];
17
+ constructor(sharedOptions: NormalizedSharedOptions, injectTreeShakingUsedExports?: boolean, ignoredRuntime?: string[], manifestOptions?: moduleFederationPlugin.ModuleFederationPluginOptions['manifest']);
18
+ private applyCustomReferencedExports;
19
+ apply(compiler: Compiler): void;
20
+ }
21
+ //#endregion
22
+ export { CustomReferencedExports, SharedUsedExportsOptimizerPlugin as default };
23
+ //# sourceMappingURL=SharedUsedExportsOptimizerPlugin.d.ts.map
@@ -0,0 +1,163 @@
1
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
2
+ const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
3
+ const require_lib_sharing_tree_shaking_SharedUsedExportsOptimizerRuntimeModule = require('./SharedUsedExportsOptimizerRuntimeModule.js');
4
+ let _module_federation_sdk = require("@module-federation/sdk");
5
+
6
+ //#region src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerPlugin.ts
7
+ function isHarmonyImportSpecifierDependency(dependency) {
8
+ return dependency.type === "harmony import specifier";
9
+ }
10
+ function isImportDependency(dependency) {
11
+ return dependency.type === "import()";
12
+ }
13
+ var SharedUsedExportsOptimizerPlugin = class {
14
+ constructor(sharedOptions, injectTreeShakingUsedExports, ignoredRuntime, manifestOptions) {
15
+ this.name = "SharedUsedExportsOptimizerPlugin";
16
+ this.sharedOptions = sharedOptions;
17
+ this.injectTreeShakingUsedExports = injectTreeShakingUsedExports ?? true;
18
+ this.manifestOptions = manifestOptions ?? {};
19
+ this.sharedReferencedExports = /* @__PURE__ */ new Map();
20
+ this.sharedOptions.forEach(([key, config]) => {
21
+ if (!config.treeShaking) return;
22
+ this.sharedReferencedExports.set(key, /* @__PURE__ */ new Set());
23
+ });
24
+ this.ignoredRuntime = ignoredRuntime || [];
25
+ }
26
+ applyCustomReferencedExports() {
27
+ const { sharedReferencedExports, sharedOptions } = this;
28
+ const addCustomExports = (shareKey, exports) => {
29
+ if (!sharedReferencedExports.get(shareKey)) sharedReferencedExports.set(shareKey, /* @__PURE__ */ new Set());
30
+ const sharedExports = sharedReferencedExports.get(shareKey);
31
+ exports.forEach((item) => {
32
+ sharedExports.add(item);
33
+ });
34
+ };
35
+ sharedOptions.forEach(([shareKey, config]) => {
36
+ if (config.treeShaking?.usedExports) addCustomExports(shareKey, config.treeShaking.usedExports);
37
+ });
38
+ }
39
+ apply(compiler) {
40
+ const { sharedReferencedExports, sharedOptions, injectTreeShakingUsedExports, manifestOptions } = this;
41
+ if (!sharedOptions.length) return;
42
+ compiler.hooks.compilation.tap("SharedUsedExportsOptimizerPlugin", (compilation) => {
43
+ compilation.hooks.dependencyReferencedExports.tap("SharedUsedExportsOptimizerPlugin", (referencedExports, dependency, runtime) => {
44
+ if (!("request" in dependency)) return referencedExports;
45
+ const shareKey = dependency.request;
46
+ if (typeof shareKey !== "string" || sharedOptions.every(([key]) => key !== shareKey)) return referencedExports;
47
+ let currentReferencedExports = referencedExports;
48
+ if (isImportDependency(dependency) && referencedExports === compilation.compiler.webpack.Dependency.EXPORTS_OBJECT_REFERENCED) {
49
+ sharedReferencedExports.delete(shareKey);
50
+ return currentReferencedExports;
51
+ }
52
+ if (isHarmonyImportSpecifierDependency(dependency) && dependency.ids && dependency.ids[0] === "default") {
53
+ const { ids, referencedPropertiesInDestructuring } = dependency;
54
+ const getOriginalReferencedExports = () => {
55
+ if (referencedPropertiesInDestructuring) {
56
+ /** @type {string[][]} */
57
+ const refs = [];
58
+ for (const key of referencedPropertiesInDestructuring) refs.push({
59
+ name: ids ? ids.concat([key]) : [key],
60
+ canMangle: false
61
+ });
62
+ return refs;
63
+ }
64
+ return ids ? [ids] : [[]];
65
+ };
66
+ currentReferencedExports = getOriginalReferencedExports();
67
+ }
68
+ if (!currentReferencedExports.length) return referencedExports;
69
+ currentReferencedExports.forEach((item) => {
70
+ if (typeof runtime !== "string") return;
71
+ const exportNames = [];
72
+ if (Array.isArray(item)) exportNames.push(...item);
73
+ else if (Array.isArray(item.name)) exportNames.push(...item.name);
74
+ exportNames.forEach((i) => {
75
+ const moduleExports = sharedReferencedExports.get(shareKey);
76
+ if (!moduleExports) return;
77
+ moduleExports.add(i);
78
+ });
79
+ });
80
+ return referencedExports;
81
+ });
82
+ compilation.hooks.optimizeDependencies.tap({
83
+ name: "SharedUsedExportsOptimizerPlugin",
84
+ stage: 1
85
+ }, (modules) => {
86
+ this.applyCustomReferencedExports();
87
+ const sharedModules = [...modules].filter((m) => [
88
+ "consume-shared-module",
89
+ "provide-module",
90
+ "shared-entry-module"
91
+ ].includes(m.type));
92
+ const moduleGraph = compilation.moduleGraph;
93
+ sharedModules.forEach((module) => {
94
+ const shareKey = module.options?.shareKey || module._name || module._name;
95
+ if (!shareKey) return;
96
+ if (!sharedOptions.find(([key]) => key === shareKey)?.[1].treeShaking) return;
97
+ const referenceExports = sharedReferencedExports.get(shareKey);
98
+ if (!referenceExports || !referenceExports.size) return;
99
+ const realSharedModule = [...modules].find((m) => "rawRequest" in m && m.rawRequest === shareKey);
100
+ if (realSharedModule?.factoryMeta?.sideEffectFree !== true) {
101
+ referenceExports.clear();
102
+ return;
103
+ }
104
+ const handleDependency = (dep) => {
105
+ const usedExport = [...referenceExports];
106
+ const referencedModule = moduleGraph.getModule(dep);
107
+ if (!referencedModule) return;
108
+ const exportsInfo = moduleGraph.getExportsInfo(referencedModule);
109
+ for (let i = 0; i < usedExport.length; i++) exportsInfo.getExportInfo(usedExport[i]).setUsed(compiler.webpack.UsageState.Used, void 0);
110
+ };
111
+ module.blocks.forEach((block) => {
112
+ block.dependencies.forEach((dep) => {
113
+ handleDependency(dep);
114
+ });
115
+ });
116
+ module.dependencies.forEach((dep) => {
117
+ handleDependency(dep);
118
+ });
119
+ module.factoryMeta ||= {};
120
+ module.factoryMeta.sideEffectFree = true;
121
+ if (!realSharedModule) return;
122
+ const exportsInfo = compilation.moduleGraph.getExportsInfo(realSharedModule);
123
+ let canUpdateModuleUsedStage = true;
124
+ for (const subExport of exportsInfo.exports) {
125
+ const used = subExport.getUsed(void 0);
126
+ if (used !== 3 && used !== 0) {
127
+ if (referenceExports.has(subExport.name)) continue;
128
+ canUpdateModuleUsedStage = false;
129
+ break;
130
+ }
131
+ }
132
+ if (canUpdateModuleUsedStage) for (const exportInfo of exportsInfo.exports) exportInfo.setUsedConditionally((used) => used === 3, 0, void 0);
133
+ });
134
+ });
135
+ if (manifestOptions) compilation.hooks.processAssets.tapPromise({
136
+ name: "injectReferenceExports",
137
+ stage: compilation.constructor.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER
138
+ }, async () => {
139
+ const { statsFileName } = (0, _module_federation_sdk.getManifestFileName)(manifestOptions);
140
+ const stats = compilation.getAsset(statsFileName);
141
+ if (!stats) return;
142
+ const statsContent = JSON.parse(stats.source.source().toString());
143
+ for (const key of sharedReferencedExports.keys()) {
144
+ const sharedModule = statsContent.shared.find((s) => s.name === key);
145
+ if (!sharedModule) continue;
146
+ const sharedReferenceExports = sharedReferencedExports.get(key);
147
+ if (!sharedReferenceExports) continue;
148
+ sharedModule.usedExports = [...sharedReferenceExports];
149
+ }
150
+ compilation.updateAsset(statsFileName, new compiler.webpack.sources.RawSource(JSON.stringify(statsContent, null, 2)));
151
+ });
152
+ if (!injectTreeShakingUsedExports) return;
153
+ compilation.hooks.additionalTreeRuntimeRequirements.tap("SharedUsedExportsOptimizerPlugin", (chunk, set) => {
154
+ set.add(compiler.webpack.RuntimeGlobals.runtimeId);
155
+ compilation.addRuntimeModule(chunk, new require_lib_sharing_tree_shaking_SharedUsedExportsOptimizerRuntimeModule.default(this.sharedReferencedExports));
156
+ });
157
+ });
158
+ }
159
+ };
160
+
161
+ //#endregion
162
+ exports.default = SharedUsedExportsOptimizerPlugin;
163
+ //# sourceMappingURL=SharedUsedExportsOptimizerPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharedUsedExportsOptimizerPlugin.js","names":["SharedUsedExportsOptimizerRuntimeModule"],"sources":["../../../../../src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerPlugin.ts"],"sourcesContent":["import type {\n WebpackPluginInstance,\n Compiler,\n Dependency,\n dependencies,\n} from 'webpack';\nimport {\n moduleFederationPlugin,\n type Stats,\n getManifestFileName,\n} from '@module-federation/sdk';\nimport SharedUsedExportsOptimizerRuntimeModule, {\n ReferencedExports,\n} from './SharedUsedExportsOptimizerRuntimeModule';\nimport { NormalizedSharedOptions } from '../SharePlugin';\nimport ConsumeSharedModule from '../ConsumeSharedModule';\nimport ProvideSharedModule from '../ProvideSharedModule';\nimport SharedEntryModule from './SharedContainerPlugin/SharedEntryModule';\n\nexport type CustomReferencedExports = { [sharedName: string]: string[] };\n\nfunction isHarmonyImportSpecifierDependency(\n dependency: Dependency,\n): dependency is dependencies.HarmonyImportSpecifierDependency {\n return dependency.type === 'harmony import specifier';\n}\n\n// dynamic import import('ui-lib')\nfunction isImportDependency(dependency: Dependency) {\n return dependency.type === 'import()';\n}\n\nexport default class SharedUsedExportsOptimizerPlugin implements WebpackPluginInstance {\n name = 'SharedUsedExportsOptimizerPlugin';\n\n sharedReferencedExports: ReferencedExports;\n private sharedOptions: NormalizedSharedOptions;\n private injectTreeShakingUsedExports: boolean;\n private manifestOptions: moduleFederationPlugin.ModuleFederationPluginOptions['manifest'];\n ignoredRuntime: string[];\n\n constructor(\n sharedOptions: NormalizedSharedOptions,\n injectTreeShakingUsedExports?: boolean,\n ignoredRuntime?: string[],\n manifestOptions?: moduleFederationPlugin.ModuleFederationPluginOptions['manifest'],\n ) {\n this.sharedOptions = sharedOptions;\n this.injectTreeShakingUsedExports = injectTreeShakingUsedExports ?? true;\n this.manifestOptions = manifestOptions ?? {};\n this.sharedReferencedExports = new Map();\n this.sharedOptions.forEach(([key, config]) => {\n if (!config.treeShaking) {\n return;\n }\n this.sharedReferencedExports.set(key, new Set());\n });\n this.ignoredRuntime = ignoredRuntime || [];\n }\n\n private applyCustomReferencedExports() {\n const { sharedReferencedExports, sharedOptions } = this;\n const addCustomExports = (shareKey: string, exports: string[]) => {\n if (!sharedReferencedExports.get(shareKey)) {\n sharedReferencedExports.set(shareKey, new Set());\n }\n const sharedExports = sharedReferencedExports.get(shareKey)!;\n\n exports.forEach((item) => {\n sharedExports.add(item);\n });\n };\n\n sharedOptions.forEach(([shareKey, config]) => {\n if (config.treeShaking?.usedExports) {\n addCustomExports(shareKey, config.treeShaking.usedExports);\n }\n });\n }\n\n apply(compiler: Compiler) {\n const {\n sharedReferencedExports,\n sharedOptions,\n injectTreeShakingUsedExports,\n manifestOptions,\n } = this;\n if (!sharedOptions.length) {\n return;\n }\n compiler.hooks.compilation.tap(\n 'SharedUsedExportsOptimizerPlugin',\n (compilation) => {\n // collect referenced export\n compilation.hooks.dependencyReferencedExports.tap(\n 'SharedUsedExportsOptimizerPlugin',\n (referencedExports, dependency, runtime) => {\n if (!('request' in dependency)) {\n return referencedExports;\n }\n const shareKey = dependency.request;\n if (\n typeof shareKey !== 'string' ||\n sharedOptions.every(([key]) => key !== shareKey)\n ) {\n return referencedExports;\n }\n let currentReferencedExports = referencedExports;\n if (\n isImportDependency(dependency) &&\n referencedExports ===\n compilation.compiler.webpack.Dependency\n .EXPORTS_OBJECT_REFERENCED\n ) {\n sharedReferencedExports.delete(shareKey);\n return currentReferencedExports;\n }\n if (\n isHarmonyImportSpecifierDependency(dependency) &&\n dependency.ids &&\n dependency.ids[0] === 'default'\n ) {\n const { ids, referencedPropertiesInDestructuring } = dependency;\n const getOriginalReferencedExports = () => {\n if (referencedPropertiesInDestructuring) {\n /** @type {string[][]} */\n const refs = [];\n for (const key of referencedPropertiesInDestructuring) {\n refs.push({\n name: ids ? ids.concat([key]) : [key],\n canMangle: false,\n });\n }\n return refs;\n }\n return ids ? [ids] : [[]];\n };\n currentReferencedExports = getOriginalReferencedExports();\n }\n if (!currentReferencedExports.length) {\n return referencedExports;\n }\n\n currentReferencedExports.forEach((item) => {\n if (typeof runtime !== 'string') {\n return;\n }\n const exportNames: string[] = [];\n if (Array.isArray(item)) {\n exportNames.push(...item);\n } else if (Array.isArray(item.name)) {\n exportNames.push(...item.name);\n }\n\n exportNames.forEach((i) => {\n const moduleExports = sharedReferencedExports.get(shareKey);\n if (!moduleExports) {\n return;\n }\n moduleExports.add(i);\n });\n });\n\n return referencedExports;\n },\n );\n\n // treeShaking shared module\n compilation.hooks.optimizeDependencies.tap(\n {\n name: 'SharedUsedExportsOptimizerPlugin',\n stage: 1,\n },\n (modules) => {\n this.applyCustomReferencedExports();\n const sharedModules = [...modules].filter((m) =>\n [\n 'consume-shared-module',\n 'provide-module',\n 'shared-entry-module',\n ].includes(m.type),\n ) as (\n | ConsumeSharedModule\n | ProvideSharedModule\n | SharedEntryModule\n )[];\n const moduleGraph = compilation.moduleGraph;\n sharedModules.forEach((module) => {\n const shareKey =\n (module as ConsumeSharedModule).options?.shareKey ||\n // @ts-expect-error FIXME: need to add general shareKey field\n (module as ProvideSharedModule)._name ||\n // @ts-ignore\n (module as SharedEntryModule)._name;\n if (!shareKey) {\n return;\n }\n if (\n !sharedOptions.find(([key]) => key === shareKey)?.[1]\n .treeShaking\n ) {\n return;\n }\n const referenceExports = sharedReferencedExports.get(shareKey);\n if (!referenceExports || !referenceExports.size) {\n return;\n }\n const realSharedModule = [...modules].find(\n (m) => 'rawRequest' in m && m.rawRequest === shareKey,\n );\n if (realSharedModule?.factoryMeta?.sideEffectFree !== true) {\n referenceExports.clear();\n return;\n }\n // mark used exports\n const handleDependency = (dep: Dependency) => {\n const usedExport = [...referenceExports];\n\n const referencedModule = moduleGraph.getModule(dep);\n if (!referencedModule) return;\n\n const exportsInfo =\n moduleGraph.getExportsInfo(referencedModule);\n\n for (let i = 0; i < usedExport.length; i++) {\n const exportInfo = exportsInfo.getExportInfo(usedExport[i]);\n exportInfo.setUsed(\n compiler.webpack.UsageState.Used,\n undefined,\n );\n }\n };\n\n module.blocks.forEach((block) => {\n block.dependencies.forEach((dep) => {\n handleDependency(dep);\n });\n });\n\n module.dependencies.forEach((dep) => {\n handleDependency(dep);\n });\n\n module.factoryMeta ||= {};\n module.factoryMeta.sideEffectFree = true;\n if (!realSharedModule) {\n return;\n }\n const exportsInfo =\n compilation.moduleGraph.getExportsInfo(realSharedModule);\n let canUpdateModuleUsedStage = true;\n for (const subExport of exportsInfo.exports) {\n const used = subExport.getUsed(undefined);\n if (used !== 3 && used !== 0) {\n if (referenceExports.has(subExport.name)) {\n continue;\n }\n canUpdateModuleUsedStage = false;\n break;\n }\n }\n\n if (canUpdateModuleUsedStage) {\n for (const exportInfo of exportsInfo.exports) {\n exportInfo.setUsedConditionally(\n (used) => used === 3,\n 0,\n undefined,\n );\n }\n // exportsInfo.otherExportsInfo.setUsedConditionally(\n // (used) => used === 3,\n // 0,\n // undefined,\n // );\n }\n });\n },\n );\n\n // inject reference exports to stats\n if (manifestOptions) {\n compilation.hooks.processAssets.tapPromise(\n {\n name: 'injectReferenceExports',\n stage: (compilation.constructor as any)\n .PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER,\n },\n async () => {\n const { statsFileName } = getManifestFileName(manifestOptions);\n const stats = compilation.getAsset(statsFileName);\n if (!stats) {\n return;\n }\n const statsContent = JSON.parse(\n stats.source.source().toString(),\n ) as Stats;\n\n for (const key of sharedReferencedExports.keys()) {\n const sharedModule = statsContent.shared.find(\n (s: any) => s.name === key,\n );\n if (!sharedModule) {\n continue;\n }\n\n const sharedReferenceExports = sharedReferencedExports.get(key);\n if (!sharedReferenceExports) {\n continue;\n }\n sharedModule.usedExports = [...sharedReferenceExports];\n }\n\n compilation.updateAsset(\n statsFileName,\n new compiler.webpack.sources.RawSource(\n JSON.stringify(statsContent, null, 2),\n ),\n );\n },\n );\n }\n\n if (!injectTreeShakingUsedExports) {\n return;\n }\n compilation.hooks.additionalTreeRuntimeRequirements.tap(\n 'SharedUsedExportsOptimizerPlugin',\n (chunk, set) => {\n set.add(compiler.webpack.RuntimeGlobals.runtimeId);\n\n // inject usedExports info to bundler runtime\n compilation.addRuntimeModule(\n chunk,\n new SharedUsedExportsOptimizerRuntimeModule(\n this.sharedReferencedExports,\n ),\n );\n },\n );\n },\n );\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import * as node_modules_webpack_types0 from "node_modules/webpack/types";
2
+
3
+ //#region src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerRuntimeModule.d.ts
4
+ /**
5
+ * Map of shared module name to Map of runtime id to Set of exported names
6
+ * @example {
7
+ * 'antd': Set(['Button', 'exportedName2']),
8
+ * }
9
+ */
10
+ type ReferencedExports = Map<string, Set<string>>;
11
+ declare const RuntimeModule: typeof node_modules_webpack_types0.RuntimeModule;
12
+ declare class SharedUsedExportsOptimizerRuntimeModule extends RuntimeModule {
13
+ private sharedUsedExports;
14
+ constructor(sharedUsedExports: ReferencedExports);
15
+ /**
16
+ * @returns {string | null} runtime code
17
+ */
18
+ generate(): string | null;
19
+ }
20
+ //#endregion
21
+ export { ReferencedExports, SharedUsedExportsOptimizerRuntimeModule as default };
22
+ //# sourceMappingURL=SharedUsedExportsOptimizerRuntimeModule.d.ts.map
@@ -0,0 +1,28 @@
1
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
2
+ const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
3
+ const require_lib_container_runtime_utils = require('../../container/runtime/utils.js');
4
+ let _module_federation_sdk_normalize_webpack_path = require("@module-federation/sdk/normalize-webpack-path");
5
+
6
+ //#region src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerRuntimeModule.ts
7
+ const { Template, RuntimeGlobals, RuntimeModule } = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack"));
8
+ var SharedUsedExportsOptimizerRuntimeModule = class extends RuntimeModule {
9
+ constructor(sharedUsedExports) {
10
+ super("shared-used-exports", RuntimeModule.STAGE_ATTACH);
11
+ this.sharedUsedExports = sharedUsedExports;
12
+ }
13
+ /**
14
+ * @returns {string | null} runtime code
15
+ */
16
+ generate() {
17
+ if (!this.sharedUsedExports) return null;
18
+ const federationGlobal = require_lib_container_runtime_utils.getFederationGlobalScope(RuntimeGlobals);
19
+ return Template.asString([`if(!${federationGlobal}) {return;}`, `${federationGlobal}.usedExports = ${JSON.stringify(Array.from(this.sharedUsedExports.entries()).reduce((acc, [pkg, moduleMap]) => {
20
+ acc[pkg] = Array.from(moduleMap);
21
+ return acc;
22
+ }, {}))};`]);
23
+ }
24
+ };
25
+
26
+ //#endregion
27
+ exports.default = SharedUsedExportsOptimizerRuntimeModule;
28
+ //# sourceMappingURL=SharedUsedExportsOptimizerRuntimeModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharedUsedExportsOptimizerRuntimeModule.js","names":["getFederationGlobalScope"],"sources":["../../../../../src/lib/sharing/tree-shaking/SharedUsedExportsOptimizerRuntimeModule.ts"],"sourcesContent":["import { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\n\nimport { getFederationGlobalScope } from '../../container/runtime/utils';\n\n/**\n * Map of shared module name to Map of runtime id to Set of exported names\n * @example {\n * 'antd': Set(['Button', 'exportedName2']),\n * }\n */\nexport type ReferencedExports = Map<string, Set<string>>;\n\nconst { Template, RuntimeGlobals, RuntimeModule } = require(\n normalizeWebpackPath('webpack'),\n) as typeof import('webpack');\n\nclass SharedUsedExportsOptimizerRuntimeModule extends RuntimeModule {\n private sharedUsedExports: ReferencedExports;\n\n constructor(sharedUsedExports: ReferencedExports) {\n super('shared-used-exports', RuntimeModule.STAGE_ATTACH);\n this.sharedUsedExports = sharedUsedExports;\n }\n\n /**\n * @returns {string | null} runtime code\n */\n override generate(): string | null {\n if (!this.sharedUsedExports) {\n return null;\n }\n const federationGlobal = getFederationGlobalScope(RuntimeGlobals);\n return Template.asString([\n `if(!${federationGlobal}) {return;}`,\n `${federationGlobal}.usedExports = ${JSON.stringify(\n Array.from(this.sharedUsedExports.entries()).reduce(\n (acc, [pkg, moduleMap]) => {\n acc[pkg] = Array.from(moduleMap);\n return acc;\n },\n {} as Record<string, string[]>,\n ),\n )};`,\n ]);\n }\n}\n\nexport default SharedUsedExportsOptimizerRuntimeModule;\n"],"mappings":";;;;;;AAYA,MAAM,EAAE,UAAU,gBAAgB,kBAAkB,gFAC7B,UAAU,CAChC;AAED,IAAM,0CAAN,cAAsD,cAAc;CAGlE,YAAY,mBAAsC;AAChD,QAAM,uBAAuB,cAAc,aAAa;AACxD,OAAK,oBAAoB;;;;;CAM3B,AAAS,WAA0B;AACjC,MAAI,CAAC,KAAK,kBACR,QAAO;EAET,MAAM,mBAAmBA,6DAAyB,eAAe;AACjE,SAAO,SAAS,SAAS,CACvB,OAAO,iBAAiB,cACxB,GAAG,iBAAiB,iBAAiB,KAAK,UACxC,MAAM,KAAK,KAAK,kBAAkB,SAAS,CAAC,CAAC,QAC1C,KAAK,CAAC,KAAK,eAAe;AACzB,OAAI,OAAO,MAAM,KAAK,UAAU;AAChC,UAAO;KAET,EAAE,CACH,CACF,CAAC,GACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { moduleFederationPlugin } from "@module-federation/sdk";
2
+ import { Compiler } from "webpack";
3
+
4
+ //#region src/lib/sharing/tree-shaking/TreeShakingSharedPlugin.d.ts
5
+ interface TreeShakingSharePluginOptions {
6
+ mfConfig: moduleFederationPlugin.ModuleFederationPluginOptions;
7
+ secondary?: boolean;
8
+ }
9
+ declare class TreeShakingSharedPlugin {
10
+ mfConfig: moduleFederationPlugin.ModuleFederationPluginOptions;
11
+ outputDir: string;
12
+ secondary?: boolean;
13
+ private _independentSharePlugin?;
14
+ name: string;
15
+ constructor(options: TreeShakingSharePluginOptions);
16
+ apply(compiler: Compiler): void;
17
+ }
18
+ //#endregion
19
+ export { TreeShakingSharePluginOptions, TreeShakingSharedPlugin as default };
20
+ //# sourceMappingURL=TreeShakingSharedPlugin.d.ts.map