@module-federation/enhanced 0.1.0 → 0.1.2

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 (391) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +164 -6
  3. package/dist/package.json +67 -0
  4. package/dist/src/declarations/plugins/container/AsyncDependenciesBlock.d.ts +57 -0
  5. package/dist/src/declarations/plugins/container/Dependency.d.ts +285 -0
  6. package/dist/src/declarations/plugins/container/Module.d.ts +138 -0
  7. package/dist/src/declarations/plugins/container/ModuleFactory.d.ts +33 -0
  8. package/dist/src/declarations/plugins/container/ObjectDeserializerContext.d.ts +4 -0
  9. package/dist/src/declarations/plugins/container/StaticExportsDependency.d.ts +28 -0
  10. package/dist/src/declarations/plugins/container/Template.d.ts +198 -0
  11. package/dist/src/declarations/plugins/container/WebpackError.d.ts +32 -0
  12. package/dist/src/declarations/plugins/container/WebpackOptions.d.ts +140 -0
  13. package/dist/src/declarations/plugins/sharing/ConsumeSharedPlugin.d.ts +74 -0
  14. package/dist/src/declarations/plugins/sharing/ProvideSharedPlugin.d.ts +67 -0
  15. package/dist/src/declarations/plugins/sharing/SharePlugin.d.ts +78 -0
  16. package/dist/src/index.d.ts +14 -0
  17. package/dist/src/index.js +37 -0
  18. package/dist/src/index.js.map +1 -0
  19. package/dist/src/lib/Constants.js +125 -0
  20. package/dist/src/lib/Constants.js.map +1 -0
  21. package/dist/src/lib/RuntimeGlobals.d.ts +0 -0
  22. package/{src → dist/src}/lib/RuntimeGlobals.js +144 -74
  23. package/dist/src/lib/RuntimeGlobals.js.map +1 -0
  24. package/dist/src/lib/container/AsyncBoundaryPlugin.d.ts +20 -0
  25. package/dist/src/lib/container/AsyncBoundaryPlugin.js +183 -0
  26. package/dist/src/lib/container/AsyncBoundaryPlugin.js.map +1 -0
  27. package/dist/src/lib/container/ContainerEntryDependency.d.ts +24 -0
  28. package/dist/src/lib/container/ContainerEntryDependency.js +39 -0
  29. package/dist/src/lib/container/ContainerEntryDependency.js.map +1 -0
  30. package/dist/src/lib/container/ContainerEntryModule.d.ts +75 -0
  31. package/dist/src/lib/container/ContainerEntryModule.js +250 -0
  32. package/dist/src/lib/container/ContainerEntryModule.js.map +1 -0
  33. package/dist/src/lib/container/ContainerEntryModuleFactory.d.ts +15 -0
  34. package/dist/src/lib/container/ContainerEntryModuleFactory.js +30 -0
  35. package/dist/src/lib/container/ContainerEntryModuleFactory.js.map +1 -0
  36. package/dist/src/lib/container/ContainerExposedDependency.d.ts +19 -0
  37. package/dist/src/lib/container/ContainerExposedDependency.js +49 -0
  38. package/dist/src/lib/container/ContainerExposedDependency.js.map +1 -0
  39. package/dist/src/lib/container/ContainerPlugin.d.ts +13 -0
  40. package/dist/src/lib/container/ContainerPlugin.js +213 -0
  41. package/dist/src/lib/container/ContainerPlugin.js.map +1 -0
  42. package/{src → dist/src}/lib/container/ContainerReferencePlugin.d.ts +3 -3
  43. package/dist/src/lib/container/ContainerReferencePlugin.js +102 -0
  44. package/dist/src/lib/container/ContainerReferencePlugin.js.map +1 -0
  45. package/dist/src/lib/container/FallbackDependency.d.ts +15 -0
  46. package/dist/src/lib/container/FallbackDependency.js +47 -0
  47. package/dist/src/lib/container/FallbackDependency.js.map +1 -0
  48. package/dist/src/lib/container/FallbackItemDependency.d.ts +3 -0
  49. package/dist/src/lib/container/FallbackItemDependency.js +26 -0
  50. package/dist/src/lib/container/FallbackItemDependency.js.map +1 -0
  51. package/dist/src/lib/container/FallbackModule.d.ts +54 -0
  52. package/dist/src/lib/container/FallbackModule.js +152 -0
  53. package/dist/src/lib/container/FallbackModule.js.map +1 -0
  54. package/dist/src/lib/container/FallbackModuleFactory.d.ts +11 -0
  55. package/dist/src/lib/container/FallbackModuleFactory.js +28 -0
  56. package/dist/src/lib/container/FallbackModuleFactory.js.map +1 -0
  57. package/dist/src/lib/container/HoistContainerReferencesPlugin.d.ts +16 -0
  58. package/dist/src/lib/container/HoistContainerReferencesPlugin.js +183 -0
  59. package/dist/src/lib/container/HoistContainerReferencesPlugin.js.map +1 -0
  60. package/dist/src/lib/container/ModuleFederationPlugin.d.ts +16 -0
  61. package/dist/src/lib/container/ModuleFederationPlugin.js +120 -0
  62. package/dist/src/lib/container/ModuleFederationPlugin.js.map +1 -0
  63. package/dist/src/lib/container/RemoteModule.d.ts +90 -0
  64. package/dist/src/lib/container/RemoteModule.js +148 -0
  65. package/dist/src/lib/container/RemoteModule.js.map +1 -0
  66. package/dist/src/lib/container/RemoteRuntimeModule.d.ts +12 -0
  67. package/dist/src/lib/container/RemoteRuntimeModule.js +101 -0
  68. package/dist/src/lib/container/RemoteRuntimeModule.js.map +1 -0
  69. package/{src → dist/src}/lib/container/RemoteToExternalDependency.d.ts +3 -9
  70. package/dist/src/lib/container/RemoteToExternalDependency.js +26 -0
  71. package/dist/src/lib/container/RemoteToExternalDependency.js.map +1 -0
  72. package/dist/src/lib/container/constant.d.ts +3 -0
  73. package/dist/src/lib/container/constant.js +12 -0
  74. package/dist/src/lib/container/constant.js.map +1 -0
  75. package/{src → dist/src}/lib/container/options.d.ts +12 -4
  76. package/{src → dist/src}/lib/container/options.js +32 -42
  77. package/dist/src/lib/container/options.js.map +1 -0
  78. package/dist/src/lib/container/runtime/FederationInitModule.d.ts +16 -0
  79. package/dist/src/lib/container/runtime/FederationInitModule.js +89 -0
  80. package/dist/src/lib/container/runtime/FederationInitModule.js.map +1 -0
  81. package/dist/src/lib/container/runtime/FederationRuntimeModule.d.ts +13 -0
  82. package/dist/src/lib/container/runtime/FederationRuntimeModule.js +27 -0
  83. package/dist/src/lib/container/runtime/FederationRuntimeModule.js.map +1 -0
  84. package/dist/src/lib/container/runtime/FederationRuntimePlugin.d.ts +18 -0
  85. package/dist/src/lib/container/runtime/FederationRuntimePlugin.js +222 -0
  86. package/dist/src/lib/container/runtime/FederationRuntimePlugin.js.map +1 -0
  87. package/dist/src/lib/container/runtime/getFederationGlobal.d.ts +5 -0
  88. package/dist/src/lib/container/runtime/getFederationGlobal.js +24 -0
  89. package/dist/src/lib/container/runtime/getFederationGlobal.js.map +1 -0
  90. package/dist/src/lib/container/runtime/utils.d.ts +16 -0
  91. package/dist/src/lib/container/runtime/utils.js +83 -0
  92. package/dist/src/lib/container/runtime/utils.js.map +1 -0
  93. package/dist/src/lib/sharing/ConsumeSharedFallbackDependency.d.ts +3 -0
  94. package/dist/src/lib/sharing/ConsumeSharedFallbackDependency.js +26 -0
  95. package/dist/src/lib/sharing/ConsumeSharedFallbackDependency.js.map +1 -0
  96. package/dist/src/lib/sharing/ConsumeSharedModule.d.ts +99 -0
  97. package/dist/src/lib/sharing/ConsumeSharedModule.js +206 -0
  98. package/dist/src/lib/sharing/ConsumeSharedModule.js.map +1 -0
  99. package/dist/src/lib/sharing/ConsumeSharedPlugin.d.ts +30 -0
  100. package/dist/src/lib/sharing/ConsumeSharedPlugin.js +245 -0
  101. package/dist/src/lib/sharing/ConsumeSharedPlugin.js.map +1 -0
  102. package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.d.ts +31 -0
  103. package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.js +107 -0
  104. package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.js.map +1 -0
  105. package/dist/src/lib/sharing/ProvideForSharedDependency.d.ts +3 -0
  106. package/dist/src/lib/sharing/ProvideForSharedDependency.js +27 -0
  107. package/dist/src/lib/sharing/ProvideForSharedDependency.js.map +1 -0
  108. package/dist/src/lib/sharing/ProvideSharedDependency.d.ts +36 -0
  109. package/dist/src/lib/sharing/ProvideSharedDependency.js +70 -0
  110. package/dist/src/lib/sharing/ProvideSharedDependency.js.map +1 -0
  111. package/dist/src/lib/sharing/ProvideSharedModule.d.ts +67 -0
  112. package/dist/src/lib/sharing/ProvideSharedModule.js +186 -0
  113. package/dist/src/lib/sharing/ProvideSharedModule.js.map +1 -0
  114. package/dist/src/lib/sharing/ProvideSharedModuleFactory.d.ts +18 -0
  115. package/dist/src/lib/sharing/ProvideSharedModuleFactory.js +30 -0
  116. package/dist/src/lib/sharing/ProvideSharedModuleFactory.js.map +1 -0
  117. package/dist/src/lib/sharing/ProvideSharedPlugin.d.ts +47 -0
  118. package/dist/src/lib/sharing/ProvideSharedPlugin.js +195 -0
  119. package/dist/src/lib/sharing/ProvideSharedPlugin.js.map +1 -0
  120. package/dist/src/lib/sharing/SharePlugin.d.ts +41 -0
  121. package/dist/src/lib/sharing/SharePlugin.js +79 -0
  122. package/dist/src/lib/sharing/SharePlugin.js.map +1 -0
  123. package/dist/src/lib/sharing/ShareRuntimeModule.d.ts +14 -0
  124. package/dist/src/lib/sharing/ShareRuntimeModule.js +89 -0
  125. package/dist/src/lib/sharing/ShareRuntimeModule.js.map +1 -0
  126. package/dist/src/lib/sharing/resolveMatchedConfigs.d.ts +12 -0
  127. package/dist/src/lib/sharing/resolveMatchedConfigs.js +66 -0
  128. package/dist/src/lib/sharing/resolveMatchedConfigs.js.map +1 -0
  129. package/dist/src/lib/sharing/utils.d.ts +37 -0
  130. package/{src → dist/src}/lib/sharing/utils.js +109 -81
  131. package/dist/src/lib/sharing/utils.js.map +1 -0
  132. package/dist/src/rspack.d.ts +1 -0
  133. package/dist/src/rspack.js +6 -0
  134. package/dist/src/rspack.js.map +1 -0
  135. package/{src → dist/src}/runtime/AddRuntimeRequirementToPromiseExternalPlugin.d.ts +1 -1
  136. package/dist/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.js +19 -0
  137. package/dist/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.js.map +1 -0
  138. package/dist/src/runtime.d.ts +1 -0
  139. package/dist/src/runtime.js +18 -0
  140. package/dist/src/runtime.js.map +1 -0
  141. package/dist/src/schemas/container/ContainerPlugin.check.d.ts +7 -0
  142. package/dist/src/schemas/container/ContainerPlugin.check.js +2297 -0
  143. package/dist/src/schemas/container/ContainerPlugin.check.js.map +1 -0
  144. package/dist/src/schemas/container/ContainerPlugin.d.ts +268 -0
  145. package/dist/src/schemas/container/ContainerPlugin.js +306 -0
  146. package/dist/src/schemas/container/ContainerPlugin.js.map +1 -0
  147. package/dist/src/schemas/container/ContainerReferencePlugin.check.d.ts +7 -0
  148. package/dist/src/schemas/container/ContainerReferencePlugin.check.js +939 -0
  149. package/dist/src/schemas/container/ContainerReferencePlugin.check.js.map +1 -0
  150. package/dist/src/schemas/container/ContainerReferencePlugin.d.ts +87 -0
  151. package/dist/src/schemas/container/ContainerReferencePlugin.js +132 -0
  152. package/dist/src/schemas/container/ContainerReferencePlugin.js.map +1 -0
  153. package/dist/src/schemas/container/ModuleFederationPlugin.check.d.ts +9 -0
  154. package/dist/src/schemas/container/ModuleFederationPlugin.check.js +3980 -0
  155. package/dist/src/schemas/container/ModuleFederationPlugin.check.js.map +1 -0
  156. package/dist/src/schemas/container/ModuleFederationPlugin.d.ts +601 -0
  157. package/dist/src/schemas/container/ModuleFederationPlugin.js +696 -0
  158. package/dist/src/schemas/container/ModuleFederationPlugin.js.map +1 -0
  159. package/dist/src/schemas/sharing/ProviderSharedPlugin.check.d.ts +7 -0
  160. package/dist/src/schemas/sharing/ProviderSharedPlugin.check.js +434 -0
  161. package/dist/src/schemas/sharing/ProviderSharedPlugin.check.js.map +1 -0
  162. package/dist/src/schemas/sharing/ProviderSharedPlugin.d.ts +104 -0
  163. package/dist/src/schemas/sharing/ProviderSharedPlugin.js +119 -0
  164. package/dist/src/schemas/sharing/ProviderSharedPlugin.js.map +1 -0
  165. package/dist/src/types/runtime.d.ts +7 -0
  166. package/dist/src/types/runtime.js +3 -0
  167. package/dist/src/types/runtime.js.map +1 -0
  168. package/dist/src/webpack.d.ts +1 -0
  169. package/dist/src/webpack.js +9 -0
  170. package/dist/src/webpack.js.map +1 -0
  171. package/dist/src/wrapper/AsyncBoundaryPlugin.d.ts +8 -0
  172. package/dist/src/wrapper/AsyncBoundaryPlugin.js +19 -0
  173. package/dist/src/wrapper/AsyncBoundaryPlugin.js.map +1 -0
  174. package/dist/src/wrapper/ConsumeSharedPlugin.d.ts +8 -0
  175. package/dist/src/wrapper/ConsumeSharedPlugin.js +19 -0
  176. package/dist/src/wrapper/ConsumeSharedPlugin.js.map +1 -0
  177. package/dist/src/wrapper/ContainerPlugin.d.ts +8 -0
  178. package/dist/src/wrapper/ContainerPlugin.js +19 -0
  179. package/dist/src/wrapper/ContainerPlugin.js.map +1 -0
  180. package/dist/src/wrapper/ContainerReferencePlugin.d.ts +8 -0
  181. package/dist/src/wrapper/ContainerReferencePlugin.js +19 -0
  182. package/dist/src/wrapper/ContainerReferencePlugin.js.map +1 -0
  183. package/dist/src/wrapper/FederationRuntimePlugin.d.ts +9 -0
  184. package/dist/src/wrapper/FederationRuntimePlugin.js +22 -0
  185. package/dist/src/wrapper/FederationRuntimePlugin.js.map +1 -0
  186. package/dist/src/wrapper/HoistContainerReferencesPlugin.d.ts +6 -0
  187. package/dist/src/wrapper/HoistContainerReferencesPlugin.js +18 -0
  188. package/dist/src/wrapper/HoistContainerReferencesPlugin.js.map +1 -0
  189. package/dist/src/wrapper/ModuleFederationPlugin.d.ts +8 -0
  190. package/dist/src/wrapper/ModuleFederationPlugin.js +24 -0
  191. package/dist/src/wrapper/ModuleFederationPlugin.js.map +1 -0
  192. package/dist/src/wrapper/ProvideSharedPlugin.d.ts +8 -0
  193. package/dist/src/wrapper/ProvideSharedPlugin.js +19 -0
  194. package/dist/src/wrapper/ProvideSharedPlugin.js.map +1 -0
  195. package/dist/src/wrapper/SharePlugin.d.ts +8 -0
  196. package/dist/src/wrapper/SharePlugin.js +19 -0
  197. package/dist/src/wrapper/SharePlugin.js.map +1 -0
  198. package/package.json +57 -9
  199. package/CHANGELOG.md +0 -134
  200. package/global.d.js +0 -14
  201. package/global.d.js.map +0 -1
  202. package/pullts.d.ts +0 -1
  203. package/src/declarations/plugins/container/AsyncDependenciesBlock.d.js +0 -14
  204. package/src/declarations/plugins/container/AsyncDependenciesBlock.d.js.map +0 -1
  205. package/src/declarations/plugins/container/ContainerPlugin.d.js +0 -12
  206. package/src/declarations/plugins/container/ContainerPlugin.d.js.map +0 -1
  207. package/src/declarations/plugins/container/ContainerReferencePlugin.d.js +0 -12
  208. package/src/declarations/plugins/container/ContainerReferencePlugin.d.js.map +0 -1
  209. package/src/declarations/plugins/container/Dependency.d.js +0 -14
  210. package/src/declarations/plugins/container/Dependency.d.js.map +0 -1
  211. package/src/declarations/plugins/container/Module.d.js +0 -3
  212. package/src/declarations/plugins/container/Module.d.js.map +0 -1
  213. package/src/declarations/plugins/container/ModuleFactory.d.js +0 -3
  214. package/src/declarations/plugins/container/ModuleFactory.d.js.map +0 -1
  215. package/src/declarations/plugins/container/ModuleFederationPlugin.d.js +0 -12
  216. package/src/declarations/plugins/container/ModuleFederationPlugin.d.js.map +0 -1
  217. package/src/declarations/plugins/container/ObjectDeserializerContext.d.js +0 -6
  218. package/src/declarations/plugins/container/ObjectDeserializerContext.d.js.map +0 -1
  219. package/src/declarations/plugins/container/StaticExportsDependency.d.js +0 -14
  220. package/src/declarations/plugins/container/StaticExportsDependency.d.js.map +0 -1
  221. package/src/declarations/plugins/container/Template.d.js +0 -4
  222. package/src/declarations/plugins/container/Template.d.js.map +0 -1
  223. package/src/declarations/plugins/container/WebpackError.d.js +0 -3
  224. package/src/declarations/plugins/container/WebpackError.d.js.map +0 -1
  225. package/src/declarations/plugins/container/WebpackOptions.d.js +0 -6
  226. package/src/declarations/plugins/container/WebpackOptions.d.js.map +0 -1
  227. package/src/declarations/plugins/sharing/ConsumeSharedPlugin.d.js +0 -12
  228. package/src/declarations/plugins/sharing/ConsumeSharedPlugin.d.js.map +0 -1
  229. package/src/declarations/plugins/sharing/ProvideSharedPlugin.d.js +0 -12
  230. package/src/declarations/plugins/sharing/ProvideSharedPlugin.d.js.map +0 -1
  231. package/src/declarations/plugins/sharing/SharePlugin.d.js +0 -12
  232. package/src/declarations/plugins/sharing/SharePlugin.d.js.map +0 -1
  233. package/src/index.d.ts +0 -7
  234. package/src/index.js +0 -47
  235. package/src/index.js.map +0 -1
  236. package/src/lib/Constants.js +0 -103
  237. package/src/lib/Constants.js.map +0 -1
  238. package/src/lib/RuntimeGlobals.d.ts +0 -1
  239. package/src/lib/RuntimeGlobals.js.map +0 -1
  240. package/src/lib/container/AsyncBoundaryPlugin.d.ts +0 -45
  241. package/src/lib/container/AsyncBoundaryPlugin.js +0 -110
  242. package/src/lib/container/AsyncBoundaryPlugin.js.map +0 -1
  243. package/src/lib/container/ContainerEntryDependency.d.js +0 -4
  244. package/src/lib/container/ContainerEntryDependency.d.js.map +0 -1
  245. package/src/lib/container/ContainerEntryDependency.d.ts +0 -20
  246. package/src/lib/container/ContainerEntryDependency.js +0 -47
  247. package/src/lib/container/ContainerEntryDependency.js.map +0 -1
  248. package/src/lib/container/ContainerEntryModule.d.js +0 -14
  249. package/src/lib/container/ContainerEntryModule.d.js.map +0 -1
  250. package/src/lib/container/ContainerEntryModule.d.ts +0 -85
  251. package/src/lib/container/ContainerEntryModule.js +0 -279
  252. package/src/lib/container/ContainerEntryModule.js.map +0 -1
  253. package/src/lib/container/ContainerEntryModuleFactory.d.js +0 -4
  254. package/src/lib/container/ContainerEntryModuleFactory.d.js.map +0 -1
  255. package/src/lib/container/ContainerEntryModuleFactory.d.ts +0 -10
  256. package/src/lib/container/ContainerEntryModuleFactory.js +0 -36
  257. package/src/lib/container/ContainerEntryModuleFactory.js.map +0 -1
  258. package/src/lib/container/ContainerExposedDependency.d.js +0 -4
  259. package/src/lib/container/ContainerExposedDependency.d.js.map +0 -1
  260. package/src/lib/container/ContainerExposedDependency.d.ts +0 -26
  261. package/src/lib/container/ContainerExposedDependency.js +0 -57
  262. package/src/lib/container/ContainerExposedDependency.js.map +0 -1
  263. package/src/lib/container/ContainerPlugin.d.js +0 -4
  264. package/src/lib/container/ContainerPlugin.d.js.map +0 -1
  265. package/src/lib/container/ContainerPlugin.d.ts +0 -11
  266. package/src/lib/container/ContainerPlugin.js +0 -92
  267. package/src/lib/container/ContainerPlugin.js.map +0 -1
  268. package/src/lib/container/ContainerReferencePlugin.d.js +0 -4
  269. package/src/lib/container/ContainerReferencePlugin.d.js.map +0 -1
  270. package/src/lib/container/ContainerReferencePlugin.js +0 -139
  271. package/src/lib/container/ContainerReferencePlugin.js.map +0 -1
  272. package/src/lib/container/FallbackDependency.d.js +0 -14
  273. package/src/lib/container/FallbackDependency.d.js.map +0 -1
  274. package/src/lib/container/FallbackDependency.d.ts +0 -25
  275. package/src/lib/container/FallbackDependency.js +0 -59
  276. package/src/lib/container/FallbackDependency.js.map +0 -1
  277. package/src/lib/container/FallbackItemDependency.d.js +0 -4
  278. package/src/lib/container/FallbackItemDependency.d.js.map +0 -1
  279. package/src/lib/container/FallbackItemDependency.d.ts +0 -10
  280. package/src/lib/container/FallbackItemDependency.js +0 -37
  281. package/src/lib/container/FallbackItemDependency.js.map +0 -1
  282. package/src/lib/container/FallbackModule.d.js +0 -4
  283. package/src/lib/container/FallbackModule.d.js.map +0 -1
  284. package/src/lib/container/FallbackModule.d.ts +0 -73
  285. package/src/lib/container/FallbackModule.js +0 -153
  286. package/src/lib/container/FallbackModule.js.map +0 -1
  287. package/src/lib/container/FallbackModuleFactory.d.js +0 -4
  288. package/src/lib/container/FallbackModuleFactory.d.js.map +0 -1
  289. package/src/lib/container/FallbackModuleFactory.d.ts +0 -10
  290. package/src/lib/container/FallbackModuleFactory.js +0 -34
  291. package/src/lib/container/FallbackModuleFactory.js.map +0 -1
  292. package/src/lib/container/ModuleFederationPlugin.d.js +0 -4
  293. package/src/lib/container/ModuleFederationPlugin.d.js.map +0 -1
  294. package/src/lib/container/ModuleFederationPlugin.d.ts +0 -16
  295. package/src/lib/container/ModuleFederationPlugin.js +0 -83
  296. package/src/lib/container/ModuleFederationPlugin.js.map +0 -1
  297. package/src/lib/container/ModuleFederationPluginTypes.d.js +0 -12
  298. package/src/lib/container/ModuleFederationPluginTypes.d.js.map +0 -1
  299. package/src/lib/container/RemoteModule.d.js +0 -13
  300. package/src/lib/container/RemoteModule.d.js.map +0 -1
  301. package/src/lib/container/RemoteModule.d.ts +0 -76
  302. package/src/lib/container/RemoteModule.js +0 -151
  303. package/src/lib/container/RemoteModule.js.map +0 -1
  304. package/src/lib/container/RemoteRuntimeModule.d.js +0 -13
  305. package/src/lib/container/RemoteRuntimeModule.d.js.map +0 -1
  306. package/src/lib/container/RemoteRuntimeModule.d.ts +0 -9
  307. package/src/lib/container/RemoteRuntimeModule.js +0 -125
  308. package/src/lib/container/RemoteRuntimeModule.js.map +0 -1
  309. package/src/lib/container/RemoteToExternalDependency.d.js +0 -19
  310. package/src/lib/container/RemoteToExternalDependency.d.js.map +0 -1
  311. package/src/lib/container/RemoteToExternalDependency.js +0 -37
  312. package/src/lib/container/RemoteToExternalDependency.js.map +0 -1
  313. package/src/lib/container/options.d.js +0 -6
  314. package/src/lib/container/options.d.js.map +0 -1
  315. package/src/lib/container/options.js.map +0 -1
  316. package/src/lib/inversion/ContainerInversionPlugin.d.ts +0 -1
  317. package/src/lib/inversion/ContainerInversionPlugin.js +0 -3
  318. package/src/lib/inversion/ContainerInversionPlugin.js.map +0 -1
  319. package/src/lib/sharing/ConsumeSharedFallbackDependency.d.js +0 -4
  320. package/src/lib/sharing/ConsumeSharedFallbackDependency.d.js.map +0 -1
  321. package/src/lib/sharing/ConsumeSharedFallbackDependency.d.ts +0 -10
  322. package/src/lib/sharing/ConsumeSharedFallbackDependency.js +0 -37
  323. package/src/lib/sharing/ConsumeSharedFallbackDependency.js.map +0 -1
  324. package/src/lib/sharing/ConsumeSharedModule.d.js +0 -4
  325. package/src/lib/sharing/ConsumeSharedModule.d.js.map +0 -1
  326. package/src/lib/sharing/ConsumeSharedModule.d.ts +0 -106
  327. package/src/lib/sharing/ConsumeSharedModule.js +0 -233
  328. package/src/lib/sharing/ConsumeSharedModule.js.map +0 -1
  329. package/src/lib/sharing/ConsumeSharedPlugin.d.js +0 -4
  330. package/src/lib/sharing/ConsumeSharedPlugin.d.js.map +0 -1
  331. package/src/lib/sharing/ConsumeSharedPlugin.d.ts +0 -8
  332. package/src/lib/sharing/ConsumeSharedPlugin.js +0 -272
  333. package/src/lib/sharing/ConsumeSharedPlugin.js.map +0 -1
  334. package/src/lib/sharing/ConsumeSharedRuntimeModule.d.js +0 -4
  335. package/src/lib/sharing/ConsumeSharedRuntimeModule.d.js.map +0 -1
  336. package/src/lib/sharing/ConsumeSharedRuntimeModule.d.ts +0 -13
  337. package/src/lib/sharing/ConsumeSharedRuntimeModule.js +0 -293
  338. package/src/lib/sharing/ConsumeSharedRuntimeModule.js.map +0 -1
  339. package/src/lib/sharing/ProvideForSharedDependency.d.js +0 -4
  340. package/src/lib/sharing/ProvideForSharedDependency.d.js.map +0 -1
  341. package/src/lib/sharing/ProvideForSharedDependency.d.ts +0 -11
  342. package/src/lib/sharing/ProvideForSharedDependency.js +0 -38
  343. package/src/lib/sharing/ProvideForSharedDependency.js.map +0 -1
  344. package/src/lib/sharing/ProvideSharedDependency.d.js +0 -14
  345. package/src/lib/sharing/ProvideSharedDependency.d.js.map +0 -1
  346. package/src/lib/sharing/ProvideSharedDependency.d.ts +0 -32
  347. package/src/lib/sharing/ProvideSharedDependency.js +0 -69
  348. package/src/lib/sharing/ProvideSharedDependency.js.map +0 -1
  349. package/src/lib/sharing/ProvideSharedModule.d.js +0 -4
  350. package/src/lib/sharing/ProvideSharedModule.d.js.map +0 -1
  351. package/src/lib/sharing/ProvideSharedModule.d.ts +0 -79
  352. package/src/lib/sharing/ProvideSharedModule.js +0 -201
  353. package/src/lib/sharing/ProvideSharedModule.js.map +0 -1
  354. package/src/lib/sharing/ProvideSharedModuleFactory.d.js +0 -4
  355. package/src/lib/sharing/ProvideSharedModuleFactory.d.js.map +0 -1
  356. package/src/lib/sharing/ProvideSharedModuleFactory.d.ts +0 -11
  357. package/src/lib/sharing/ProvideSharedModuleFactory.js +0 -36
  358. package/src/lib/sharing/ProvideSharedModuleFactory.js.map +0 -1
  359. package/src/lib/sharing/ProvideSharedPlugin.d.js +0 -4
  360. package/src/lib/sharing/ProvideSharedPlugin.d.js.map +0 -1
  361. package/src/lib/sharing/ProvideSharedPlugin.d.ts +0 -34
  362. package/src/lib/sharing/ProvideSharedPlugin.js +0 -182
  363. package/src/lib/sharing/ProvideSharedPlugin.js.map +0 -1
  364. package/src/lib/sharing/SharePlugin.d.js +0 -4
  365. package/src/lib/sharing/SharePlugin.d.js.map +0 -1
  366. package/src/lib/sharing/SharePlugin.d.ts +0 -15
  367. package/src/lib/sharing/SharePlugin.js +0 -77
  368. package/src/lib/sharing/SharePlugin.js.map +0 -1
  369. package/src/lib/sharing/ShareRuntimeModule.d.js +0 -4
  370. package/src/lib/sharing/ShareRuntimeModule.d.js.map +0 -1
  371. package/src/lib/sharing/ShareRuntimeModule.d.ts +0 -9
  372. package/src/lib/sharing/ShareRuntimeModule.js +0 -159
  373. package/src/lib/sharing/ShareRuntimeModule.js.map +0 -1
  374. package/src/lib/sharing/resolveMatchedConfigs.d.js +0 -6
  375. package/src/lib/sharing/resolveMatchedConfigs.d.js.map +0 -1
  376. package/src/lib/sharing/resolveMatchedConfigs.d.ts +0 -8
  377. package/src/lib/sharing/resolveMatchedConfigs.js +0 -73
  378. package/src/lib/sharing/resolveMatchedConfigs.js.map +0 -1
  379. package/src/lib/sharing/utils.d.js +0 -6
  380. package/src/lib/sharing/utils.d.js.map +0 -1
  381. package/src/lib/sharing/utils.d.ts +0 -33
  382. package/src/lib/sharing/utils.js.map +0 -1
  383. package/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.js +0 -34
  384. package/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.js.map +0 -1
  385. package/src/runtime/ModuleInfoRuntimeModule.d.ts +0 -16
  386. package/src/runtime/ModuleInfoRuntimeModule.js +0 -88
  387. package/src/runtime/ModuleInfoRuntimeModule.js.map +0 -1
  388. package/src/runtime/ModuleInfoRuntimePlugin.d.ts +0 -5
  389. package/src/runtime/ModuleInfoRuntimePlugin.js +0 -29
  390. package/src/runtime/ModuleInfoRuntimePlugin.js.map +0 -1
  391. /package/{src → dist/src}/lib/Constants.d.ts +0 -0
@@ -0,0 +1,206 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra, Zackary Jackson @ScriptedAlchemy
4
+ */
5
+ 'use strict';
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
11
+ const ConsumeSharedFallbackDependency_1 = __importDefault(require("./ConsumeSharedFallbackDependency"));
12
+ const utils_1 = require("./utils");
13
+ const Constants_1 = require("../Constants");
14
+ const { rangeToString, stringifyHoley } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/semver'));
15
+ const { AsyncDependenciesBlock, Module, RuntimeGlobals } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
16
+ const { sources: webpackSources } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
17
+ const makeSerializable = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/makeSerializable'));
18
+ /**
19
+ * @typedef {Object} ConsumeOptions
20
+ * @property {string=} import fallback request
21
+ * @property {string=} importResolved resolved fallback request
22
+ * @property {string} shareKey global share key
23
+ * @property {string} shareScope share scope
24
+ * @property {SemVerRange | false | undefined} requiredVersion version requirement
25
+ * @property {string} packageName package name to determine required version automatically
26
+ * @property {boolean} strictVersion don't use shared version even if version isn't valid
27
+ * @property {boolean} singleton use single global version
28
+ * @property {boolean} eager include the fallback module in a sync way
29
+ */
30
+ const TYPES = new Set(['consume-shared']);
31
+ class ConsumeSharedModule extends Module {
32
+ /**
33
+ * @param {string} context context
34
+ * @param {ConsumeOptions} options consume options
35
+ */
36
+ constructor(context, options) {
37
+ super(Constants_1.WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE, context);
38
+ this.options = options;
39
+ }
40
+ /**
41
+ * @returns {string} a unique identifier of the module
42
+ */
43
+ identifier() {
44
+ const { shareKey, shareScope, importResolved, requiredVersion, strictVersion, singleton, eager, } = this.options;
45
+ return `${Constants_1.WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE}|${shareScope}|${shareKey}|${requiredVersion && rangeToString(requiredVersion)}|${strictVersion}|${importResolved}|${singleton}|${eager}`;
46
+ }
47
+ /**
48
+ * @param {RequestShortener} requestShortener the request shortener
49
+ * @returns {string} a user readable identifier of the module
50
+ */
51
+ readableIdentifier(requestShortener) {
52
+ const { shareKey, shareScope, importResolved, requiredVersion, strictVersion, singleton, eager, } = this.options;
53
+ return `consume shared module (${shareScope}) ${shareKey}@${requiredVersion ? rangeToString(requiredVersion) : '*'}${strictVersion ? ' (strict)' : ''}${singleton ? ' (singleton)' : ''}${importResolved
54
+ ? ` (fallback: ${requestShortener.shorten(importResolved)})`
55
+ : ''}${eager ? ' (eager)' : ''}`;
56
+ }
57
+ /**
58
+ * @param {LibIdentOptions} options options
59
+ * @returns {string | null} an identifier for library inclusion
60
+ */
61
+ libIdent(options) {
62
+ const { shareKey, shareScope, import: request } = this.options;
63
+ return `${this.layer ? `(${this.layer})/` : ''}webpack/sharing/consume/${shareScope}/${shareKey}${request ? `/${request}` : ''}`;
64
+ }
65
+ /**
66
+ * @param {NeedBuildContext} context context info
67
+ * @param {function((WebpackError | null)=, boolean=): void} callback callback function, returns true, if the module needs a rebuild
68
+ * @returns {void}
69
+ */
70
+ // @ts-ignore
71
+ needBuild(context, callback) {
72
+ callback(null, !this.buildInfo);
73
+ }
74
+ /**
75
+ * @param {WebpackOptions} options webpack options
76
+ * @param {Compilation} compilation the compilation
77
+ * @param {ResolverWithOptions} resolver the resolver
78
+ * @param {InputFileSystem} fs the file system
79
+ * @param {function(WebpackError=): void} callback callback function
80
+ * @returns {void}
81
+ */
82
+ // @ts-ignore
83
+ build(options, compilation, resolver, fs, callback) {
84
+ this.buildMeta = {};
85
+ this.buildInfo = {};
86
+ if (this.options.import) {
87
+ const dep = new ConsumeSharedFallbackDependency_1.default(this.options.import);
88
+ if (this.options.eager) {
89
+ this.addDependency(dep);
90
+ }
91
+ else {
92
+ const block = new AsyncDependenciesBlock({});
93
+ block.addDependency(dep);
94
+ this.addBlock(block);
95
+ }
96
+ }
97
+ callback();
98
+ }
99
+ /**
100
+ * @returns {Set<string>} types available (do not mutate)
101
+ */
102
+ getSourceTypes() {
103
+ return TYPES;
104
+ }
105
+ /**
106
+ * @param {string=} type the source type for which the size should be estimated
107
+ * @returns {number} the estimated size of the module (must be non-zero)
108
+ */
109
+ size(type) {
110
+ return 42;
111
+ }
112
+ /**
113
+ * @param {Hash} hash the hash used to track dependencies
114
+ * @param {UpdateHashContext} context context
115
+ * @returns {void}
116
+ */
117
+ // @ts-ignore
118
+ updateHash(hash, context) {
119
+ hash.update(JSON.stringify(this.options));
120
+ // @ts-ignore
121
+ super.updateHash(hash, context);
122
+ }
123
+ /**
124
+ * @param {CodeGenerationContext} context context for code generation
125
+ * @returns {CodeGenerationResult} result
126
+ */
127
+ // @ts-ignore
128
+ codeGeneration({ chunkGraph, moduleGraph, runtimeTemplate, }) {
129
+ const runtimeRequirements = new Set([RuntimeGlobals.shareScopeMap]);
130
+ const { shareScope, shareKey, strictVersion, requiredVersion, import: request, singleton, eager, } = this.options;
131
+ let fallbackCode;
132
+ if (request) {
133
+ if (eager) {
134
+ const dep = this.dependencies[0];
135
+ fallbackCode = runtimeTemplate.syncModuleFactory({
136
+ // @ts-ignore
137
+ dependency: dep,
138
+ chunkGraph,
139
+ runtimeRequirements,
140
+ request: this.options.import,
141
+ });
142
+ }
143
+ else {
144
+ const block = this.blocks[0];
145
+ fallbackCode = runtimeTemplate.asyncModuleFactory({
146
+ // @ts-ignore
147
+ block,
148
+ chunkGraph,
149
+ runtimeRequirements,
150
+ request: this.options.import,
151
+ });
152
+ }
153
+ }
154
+ let fn = 'load';
155
+ const args = [JSON.stringify(shareScope), JSON.stringify(shareKey)];
156
+ if (requiredVersion) {
157
+ if (strictVersion) {
158
+ fn += 'Strict';
159
+ }
160
+ if (singleton) {
161
+ fn += 'Singleton';
162
+ }
163
+ args.push(stringifyHoley(requiredVersion));
164
+ fn += 'VersionCheck';
165
+ }
166
+ else {
167
+ if (singleton) {
168
+ fn += 'Singleton';
169
+ }
170
+ }
171
+ if (fallbackCode) {
172
+ fn += 'Fallback';
173
+ args.push(fallbackCode);
174
+ }
175
+ // const code = runtimeTemplate.returningFunction(`${fn}(${args.join(', ')})`);
176
+ const sources = new Map();
177
+ sources.set('consume-shared', new webpackSources.RawSource(fallbackCode ||
178
+ `()=>()=>{throw new Error("Can not get '${shareKey}'")}`));
179
+ const data = new Map();
180
+ data.set('consume-shared', (0, utils_1.normalizeConsumeShareOptions)(this.options));
181
+ return {
182
+ runtimeRequirements,
183
+ sources,
184
+ data,
185
+ };
186
+ }
187
+ /**
188
+ * @param {ObjectSerializerContext} context context
189
+ */
190
+ serialize(context) {
191
+ const { write } = context;
192
+ write(this.options);
193
+ super.serialize(context);
194
+ }
195
+ /**
196
+ * @param {ObjectDeserializerContext} context context
197
+ */
198
+ deserialize(context) {
199
+ const { read } = context;
200
+ this.options = read();
201
+ super.deserialize(context);
202
+ }
203
+ }
204
+ makeSerializable(ConsumeSharedModule, 'enhanced/lib/sharing/ConsumeSharedModule');
205
+ exports.default = ConsumeSharedModule;
206
+ //# sourceMappingURL=ConsumeSharedModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsumeSharedModule.js","sourceRoot":"","sources":["../../../../src/lib/sharing/ConsumeSharedModule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export = ConsumeSharedPlugin;
2
+ declare class ConsumeSharedPlugin {
3
+ /**
4
+ * @param {ConsumeSharedPluginOptions} options options
5
+ */
6
+ constructor(options: any);
7
+ /** @type {[string, ConsumeOptions][]} */
8
+ _consumes: [string, ConsumeOptions][];
9
+ /**
10
+ * Apply the plugin
11
+ * @param {Compiler} compiler the compiler instance
12
+ * @returns {void}
13
+ */
14
+ apply(compiler: Compiler): void;
15
+ }
16
+ declare namespace ConsumeSharedPlugin {
17
+ export {
18
+ ConsumeSharedPluginOptions,
19
+ ConsumesConfig,
20
+ Compiler,
21
+ ResolveOptionsWithDependencyType,
22
+ ConsumeOptions,
23
+ };
24
+ }
25
+ type ConsumeOptions = import('./ConsumeSharedModule').ConsumeOptions;
26
+ type Compiler = import('webpack/lib/Compiler');
27
+ type ConsumeSharedPluginOptions = any;
28
+ type ConsumesConfig = any;
29
+ type ResolveOptionsWithDependencyType =
30
+ import('webpack/lib/ResolverFactory').ResolveOptionsWithDependencyType;
@@ -0,0 +1,245 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra, Zackary Jackson @ScriptedAlchemy
4
+ */
5
+ 'use strict';
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
11
+ const options_1 = require("../container/options");
12
+ const resolveMatchedConfigs_1 = require("./resolveMatchedConfigs");
13
+ const utils_1 = require("./utils");
14
+ const ConsumeSharedFallbackDependency_1 = __importDefault(require("./ConsumeSharedFallbackDependency"));
15
+ const ConsumeSharedModule_1 = __importDefault(require("./ConsumeSharedModule"));
16
+ const ConsumeSharedRuntimeModule_1 = __importDefault(require("./ConsumeSharedRuntimeModule"));
17
+ const ProvideForSharedDependency_1 = __importDefault(require("./ProvideForSharedDependency"));
18
+ const FederationRuntimePlugin_1 = __importDefault(require("../container/runtime/FederationRuntimePlugin"));
19
+ const ShareRuntimeModule_1 = __importDefault(require("./ShareRuntimeModule"));
20
+ const { parseRange } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/semver'));
21
+ const ModuleNotFoundError = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/ModuleNotFoundError'));
22
+ const { RuntimeGlobals } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
23
+ const LazySet = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/LazySet'));
24
+ const WebpackError = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/WebpackError'));
25
+ const createSchemaValidation = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/create-schema-validation'));
26
+ const validate = createSchemaValidation(
27
+ //eslint-disable-next-line
28
+ require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/schemas/plugins/sharing/ConsumeSharedPlugin.check.js')), () => require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/schemas/plugins/sharing/ConsumeSharedPlugin.json')), {
29
+ name: 'Consume Shared Plugin',
30
+ baseDataPath: 'options',
31
+ });
32
+ const RESOLVE_OPTIONS = {
33
+ dependencyType: 'esm',
34
+ };
35
+ const PLUGIN_NAME = 'ConsumeSharedPlugin';
36
+ class ConsumeSharedPlugin {
37
+ constructor(options) {
38
+ if (typeof options !== 'string') {
39
+ validate(options);
40
+ }
41
+ this._consumes = (0, options_1.parseOptions)(options.consumes, (item, key) => {
42
+ if (Array.isArray(item))
43
+ throw new Error('Unexpected array in options');
44
+ //@ts-ignore
45
+ const result = item === key || !(0, utils_1.isRequiredVersion)(item)
46
+ ? // item is a request/key
47
+ {
48
+ import: key,
49
+ shareScope: options.shareScope || 'default',
50
+ shareKey: key,
51
+ requiredVersion: undefined,
52
+ packageName: undefined,
53
+ strictVersion: false,
54
+ singleton: false,
55
+ eager: false,
56
+ }
57
+ : // key is a request/key
58
+ // item is a version
59
+ {
60
+ import: key,
61
+ shareScope: options.shareScope || 'default',
62
+ shareKey: key,
63
+ // webpack internal semver has some issue, use runtime semver , related issue: https://github.com/webpack/webpack/issues/17756
64
+ requiredVersion: item,
65
+ strictVersion: true,
66
+ packageName: undefined,
67
+ singleton: false,
68
+ eager: false,
69
+ };
70
+ return result;
71
+ }, (item, key) => ({
72
+ import: item.import === false ? undefined : item.import || key,
73
+ shareScope: item.shareScope || options.shareScope || 'default',
74
+ shareKey: item.shareKey || key,
75
+ // @ts-ignore webpack internal semver has some issue, use runtime semver , related issue: https://github.com/webpack/webpack/issues/17756
76
+ requiredVersion: item.requiredVersion,
77
+ strictVersion: typeof item.strictVersion === 'boolean'
78
+ ? item.strictVersion
79
+ : item.import !== false && !item.singleton,
80
+ //@ts-ignore
81
+ packageName: item.packageName,
82
+ singleton: !!item.singleton,
83
+ eager: !!item.eager,
84
+ }));
85
+ }
86
+ apply(compiler) {
87
+ //@ts-ignore
88
+ new FederationRuntimePlugin_1.default().apply(compiler);
89
+ process.env['FEDERATION_WEBPACK_PATH'] =
90
+ process.env['FEDERATION_WEBPACK_PATH'] || (0, normalize_webpack_path_1.getWebpackPath)(compiler);
91
+ compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation, { normalModuleFactory }) => {
92
+ compilation.dependencyFactories.set(ConsumeSharedFallbackDependency_1.default, normalModuleFactory);
93
+ let unresolvedConsumes, resolvedConsumes, prefixedConsumes;
94
+ const promise = (0, resolveMatchedConfigs_1.resolveMatchedConfigs)(compilation, this._consumes).then(({ resolved, unresolved, prefixed }) => {
95
+ resolvedConsumes = resolved;
96
+ unresolvedConsumes = unresolved;
97
+ prefixedConsumes = prefixed;
98
+ });
99
+ const resolver = compilation.resolverFactory.get('normal',
100
+ //@ts-ignore
101
+ RESOLVE_OPTIONS);
102
+ const createConsumeSharedModule = (context, request, config) => {
103
+ const requiredVersionWarning = (details) => {
104
+ const error = new WebpackError(`No required version specified and unable to automatically determine one. ${details}`);
105
+ error.file = `shared module ${request}`;
106
+ //@ts-ignore
107
+ compilation.warnings.push(error);
108
+ };
109
+ const directFallback = config.import &&
110
+ /^(\.\.?(\/|$)|\/|[A-Za-z]:|\\\\)/.test(config.import);
111
+ return Promise.all([
112
+ new Promise((resolve) => {
113
+ if (!config.import)
114
+ return resolve(undefined);
115
+ const resolveContext = {
116
+ fileDependencies: new LazySet(),
117
+ contextDependencies: new LazySet(),
118
+ missingDependencies: new LazySet(),
119
+ };
120
+ resolver.resolve({}, directFallback ? compiler.context : context, config.import, resolveContext, (err, result) => {
121
+ compilation.contextDependencies.addAll(resolveContext.contextDependencies);
122
+ compilation.fileDependencies.addAll(resolveContext.fileDependencies);
123
+ compilation.missingDependencies.addAll(resolveContext.missingDependencies);
124
+ if (err) {
125
+ compilation.errors.push(
126
+ //@ts-ignore
127
+ new ModuleNotFoundError(null, err, {
128
+ name: `resolving fallback for shared module ${request}`,
129
+ }));
130
+ return resolve(undefined);
131
+ }
132
+ //@ts-ignore
133
+ resolve(result);
134
+ });
135
+ }),
136
+ new Promise((resolve) => {
137
+ if (config.requiredVersion !== undefined) {
138
+ return resolve(config.requiredVersion);
139
+ }
140
+ let packageName = config.packageName;
141
+ if (packageName === undefined) {
142
+ if (/^(\/|[A-Za-z]:|\\\\)/.test(request)) {
143
+ // For relative or absolute requests we don't automatically use a packageName.
144
+ // If wished one can specify one with the packageName option.
145
+ return resolve(undefined);
146
+ }
147
+ const match = /^((?:@[^\\/]+[\\/])?[^\\/]+)/.exec(request);
148
+ if (!match) {
149
+ requiredVersionWarning('Unable to extract the package name from request.');
150
+ return resolve(undefined);
151
+ }
152
+ packageName = match[0];
153
+ }
154
+ (0, utils_1.getDescriptionFile)(compilation.inputFileSystem, context, ['package.json'], (err, result) => {
155
+ if (err) {
156
+ requiredVersionWarning(`Unable to read description file: ${err}`);
157
+ return resolve(undefined);
158
+ }
159
+ //@ts-ignore
160
+ const { data, path: descriptionPath } = result;
161
+ if (!data) {
162
+ requiredVersionWarning(`Unable to find description file in ${context}.`);
163
+ return resolve(undefined);
164
+ }
165
+ //@ts-ignore
166
+ if (data.name === packageName) {
167
+ // Package self-referencing
168
+ return resolve(undefined);
169
+ }
170
+ const requiredVersion = (0, utils_1.getRequiredVersionFromDescriptionFile)(data, packageName);
171
+ if (typeof requiredVersion !== 'string') {
172
+ requiredVersionWarning(`Unable to find required version for "${packageName}" in description file (${descriptionPath}). It need to be in dependencies, devDependencies or peerDependencies.`);
173
+ return resolve(undefined);
174
+ }
175
+ // @ts-ignore webpack internal semver has some issue, use runtime semver , related issue: https://github.com/webpack/webpack/issues/17756
176
+ resolve(requiredVersion);
177
+ });
178
+ }),
179
+ ]).then(([importResolved, requiredVersion]) => {
180
+ return new ConsumeSharedModule_1.default(directFallback ? compiler.context : context, {
181
+ ...config,
182
+ importResolved,
183
+ import: importResolved ? config.import : undefined,
184
+ requiredVersion,
185
+ });
186
+ });
187
+ };
188
+ normalModuleFactory.hooks.factorize.tapPromise(PLUGIN_NAME, ({ context, request, dependencies }) =>
189
+ // wait for resolving to be complete
190
+ //@ts-ignore
191
+ promise.then(() => {
192
+ if (dependencies[0] instanceof ConsumeSharedFallbackDependency_1.default ||
193
+ dependencies[0] instanceof ProvideForSharedDependency_1.default) {
194
+ return;
195
+ }
196
+ const match = unresolvedConsumes.get(request);
197
+ if (match !== undefined) {
198
+ return createConsumeSharedModule(context, request, match);
199
+ }
200
+ for (const [prefix, options] of prefixedConsumes) {
201
+ if (request.startsWith(prefix)) {
202
+ const remainder = request.slice(prefix.length);
203
+ return createConsumeSharedModule(context, request, {
204
+ ...options,
205
+ import: options.import
206
+ ? options.import + remainder
207
+ : undefined,
208
+ shareKey: options.shareKey + remainder,
209
+ });
210
+ }
211
+ }
212
+ }));
213
+ normalModuleFactory.hooks.createModule.tapPromise(PLUGIN_NAME,
214
+ //@ts-ignore
215
+ ({ resource }, { context, dependencies }) => {
216
+ if (dependencies[0] instanceof ConsumeSharedFallbackDependency_1.default ||
217
+ dependencies[0] instanceof ProvideForSharedDependency_1.default) {
218
+ return Promise.resolve();
219
+ }
220
+ if (resource) {
221
+ const options = resolvedConsumes.get(resource);
222
+ if (options !== undefined) {
223
+ return createConsumeSharedModule(context, resource, options);
224
+ }
225
+ }
226
+ return Promise.resolve();
227
+ });
228
+ compilation.hooks.additionalTreeRuntimeRequirements.tap(PLUGIN_NAME, (chunk, set) => {
229
+ set.add(RuntimeGlobals.module);
230
+ set.add(RuntimeGlobals.moduleCache);
231
+ set.add(RuntimeGlobals.moduleFactoriesAddOnly);
232
+ set.add(RuntimeGlobals.shareScopeMap);
233
+ set.add(RuntimeGlobals.initializeSharing);
234
+ set.add(RuntimeGlobals.hasOwnProperty);
235
+ compilation.addRuntimeModule(chunk,
236
+ //@ts-ignore
237
+ new ConsumeSharedRuntimeModule_1.default(set));
238
+ // FIXME: need to remove webpack internal inject ShareRuntimeModule, otherwise there will be two ShareRuntimeModule
239
+ compilation.addRuntimeModule(chunk, new ShareRuntimeModule_1.default());
240
+ });
241
+ });
242
+ }
243
+ }
244
+ exports.default = ConsumeSharedPlugin;
245
+ //# sourceMappingURL=ConsumeSharedPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsumeSharedPlugin.js","sourceRoot":"","sources":["../../../../src/lib/sharing/ConsumeSharedPlugin.ts"],"names":[],"mappings":"AAAA;;;EAGE;AAEF,YAAY,CAAC;;;;;AACb,0FAGuD;AAEvD,kDAAoD;AAGpD,mEAAgE;AAChE,mCAIiB;AAEjB,wGAAgF;AAChF,gFAAwD;AACxD,8FAAsE;AACtE,8FAAsE;AACtE,2GAAmF;AACnF,8EAAsD;AAGtD,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAC5B,IAAA,6CAAoB,EAAC,yBAAyB,CAAC,CACJ,CAAC;AAC9C,MAAM,mBAAmB,GAAG,OAAO,CACjC,IAAA,6CAAoB,EAAC,iCAAiC,CAAC,CACJ,CAAC;AACtD,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAChC,IAAA,6CAAoB,EAAC,SAAS,CAAC,CACJ,CAAC;AAC9B,MAAM,OAAO,GAAG,OAAO,CACrB,IAAA,6CAAoB,EAAC,0BAA0B,CAAC,CACJ,CAAC;AAC/C,MAAM,YAAY,GAAG,OAAO,CAC1B,IAAA,6CAAoB,EAAC,0BAA0B,CAAC,CACJ,CAAC;AAC/C,MAAM,sBAAsB,GAAG,OAAO,CACpC,IAAA,6CAAoB,EAAC,2CAA2C,CAAC,CACJ,CAAC;AAEhE,MAAM,QAAQ,GAAG,sBAAsB;AACrC,0BAA0B;AAC1B,OAAO,CACL,IAAA,6CAAoB,EAClB,8DAA8D,CAC/D,CACF,EACD,GAAG,EAAE,CACH,OAAO,CACL,IAAA,6CAAoB,EAClB,0DAA0D,CAC3D,CACF,EACH;IACE,IAAI,EAAE,uBAAuB;IAC7B,YAAY,EAAE,SAAS;CACxB,CACF,CAAC;AAEF,MAAM,eAAe,GAAqC;IACxD,cAAc,EAAE,KAAK;CACtB,CAAC;AACF,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAC1C,MAAM,mBAAmB;IAGvB,YAAY,OAAmC;QAC7C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAA,sBAAY,EAC3B,OAAO,CAAC,QAAQ,EAChB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACZ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACxE,YAAY;YACZ,MAAM,MAAM,GACV,IAAI,KAAK,GAAG,IAAI,CAAC,IAAA,yBAAiB,EAAC,IAAI,CAAC;gBACtC,CAAC,CAAC,wBAAwB;oBACxB;wBACE,MAAM,EAAE,GAAG;wBACX,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;wBAC3C,QAAQ,EAAE,GAAG;wBACb,eAAe,EAAE,SAAS;wBAC1B,WAAW,EAAE,SAAS;wBACtB,aAAa,EAAE,KAAK;wBACpB,SAAS,EAAE,KAAK;wBAChB,KAAK,EAAE,KAAK;qBACb;gBACH,CAAC,CAAC,uBAAuB;oBACvB,oBAAoB;oBACpB;wBACE,MAAM,EAAE,GAAG;wBACX,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;wBAC3C,QAAQ,EAAE,GAAG;wBACb,8HAA8H;wBAC9H,eAAe,EAAE,IAAI;wBACrB,aAAa,EAAE,IAAI;wBACnB,WAAW,EAAE,SAAS;wBACtB,SAAS,EAAE,KAAK;wBAChB,KAAK,EAAE,KAAK;qBACb,CAAC;YACR,OAAO,MAAM,CAAC;QAChB,CAAC,EACD,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YACd,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG;YAC9D,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,IAAI,SAAS;YAC9D,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG;YAC9B,0IAA0I;YAC1I,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,aAAa,EACX,OAAO,IAAI,CAAC,aAAa,KAAK,SAAS;gBACrC,CAAC,CAAC,IAAI,CAAC,aAAa;gBACpB,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS;YAC9C,YAAY;YACZ,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS;YAC3B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;SACpB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAkB;QACtB,YAAY;QACZ,IAAI,iCAAuB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,IAAA,uCAAc,EAAC,QAAQ,CAAC,CAAC;QAErE,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAChC,WAAW,EACX,CAAC,WAAW,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE;YACvC,WAAW,CAAC,mBAAmB,CAAC,GAAG,CACjC,yCAA+B,EAC/B,mBAAmB,CACpB,CAAC;YAEF,IAAI,kBAA+C,EACjD,gBAA6C,EAC7C,gBAA6C,CAAC;YAChD,MAAM,OAAO,GAAG,IAAA,6CAAqB,EAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CACrE,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACrC,gBAAgB,GAAG,QAAQ,CAAC;gBAC5B,kBAAkB,GAAG,UAAU,CAAC;gBAChC,gBAAgB,GAAG,QAAQ,CAAC;YAC9B,CAAC,CACF,CAAC;YAEF,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,CAAC,GAAG,CAC9C,QAAQ;YACR,YAAY;YACZ,eAAe,CAChB,CAAC;YAEF,MAAM,yBAAyB,GAAG,CAChC,OAAe,EACf,OAAe,EACf,MAAsB,EACQ,EAAE;gBAChC,MAAM,sBAAsB,GAAG,CAAC,OAAe,EAAE,EAAE;oBACjD,MAAM,KAAK,GAAG,IAAI,YAAY,CAC5B,4EAA4E,OAAO,EAAE,CACtF,CAAC;oBACF,KAAK,CAAC,IAAI,GAAG,iBAAiB,OAAO,EAAE,CAAC;oBACxC,YAAY;oBACZ,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnC,CAAC,CAAC;gBACF,MAAM,cAAc,GAClB,MAAM,CAAC,MAAM;oBACb,kCAAkC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACzD,OAAO,OAAO,CAAC,GAAG,CAAC;oBACjB,IAAI,OAAO,CAAqB,CAAC,OAAO,EAAE,EAAE;wBAC1C,IAAI,CAAC,MAAM,CAAC,MAAM;4BAAE,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;wBAC9C,MAAM,cAAc,GAAG;4BACrB,gBAAgB,EAAE,IAAI,OAAO,EAAU;4BACvC,mBAAmB,EAAE,IAAI,OAAO,EAAU;4BAC1C,mBAAmB,EAAE,IAAI,OAAO,EAAU;yBAC3C,CAAC;wBACF,QAAQ,CAAC,OAAO,CACd,EAAE,EACF,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAC3C,MAAM,CAAC,MAAM,EACb,cAAc,EACd,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;4BACd,WAAW,CAAC,mBAAmB,CAAC,MAAM,CACpC,cAAc,CAAC,mBAAmB,CACnC,CAAC;4BACF,WAAW,CAAC,gBAAgB,CAAC,MAAM,CACjC,cAAc,CAAC,gBAAgB,CAChC,CAAC;4BACF,WAAW,CAAC,mBAAmB,CAAC,MAAM,CACpC,cAAc,CAAC,mBAAmB,CACnC,CAAC;4BACF,IAAI,GAAG,EAAE,CAAC;gCACR,WAAW,CAAC,MAAM,CAAC,IAAI;gCACrB,YAAY;gCACZ,IAAI,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE;oCACjC,IAAI,EAAE,wCAAwC,OAAO,EAAE;iCACxD,CAAC,CACH,CAAC;gCACF,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;4BAC5B,CAAC;4BACD,YAAY;4BACZ,OAAO,CAAC,MAAM,CAAC,CAAC;wBAClB,CAAC,CACF,CAAC;oBACJ,CAAC,CAAC;oBACF,IAAI,OAAO,CAAkC,CAAC,OAAO,EAAE,EAAE;wBACvD,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;4BACzC,OAAO,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;wBACzC,CAAC;wBACD,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;wBACrC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;4BAC9B,IAAI,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gCACzC,8EAA8E;gCAC9E,6DAA6D;gCAC7D,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;4BAC5B,CAAC;4BACD,MAAM,KAAK,GAAG,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BAC3D,IAAI,CAAC,KAAK,EAAE,CAAC;gCACX,sBAAsB,CACpB,kDAAkD,CACnD,CAAC;gCACF,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;4BAC5B,CAAC;4BACD,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACzB,CAAC;wBAED,IAAA,0BAAkB,EAChB,WAAW,CAAC,eAAe,EAC3B,OAAO,EACP,CAAC,cAAc,CAAC,EAChB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;4BACd,IAAI,GAAG,EAAE,CAAC;gCACR,sBAAsB,CACpB,oCAAoC,GAAG,EAAE,CAC1C,CAAC;gCACF,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;4BAC5B,CAAC;4BACD,YAAY;4BACZ,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;4BAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;gCACV,sBAAsB,CACpB,sCAAsC,OAAO,GAAG,CACjD,CAAC;gCACF,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;4BAC5B,CAAC;4BACD,YAAY;4BACZ,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gCAC9B,2BAA2B;gCAC3B,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;4BAC5B,CAAC;4BACD,MAAM,eAAe,GAAG,IAAA,6CAAqC,EAC3D,IAAI,EACJ,WAAW,CACZ,CAAC;4BACF,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;gCACxC,sBAAsB,CACpB,wCAAwC,WAAW,0BAA0B,eAAe,wEAAwE,CACrK,CAAC;gCACF,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;4BAC5B,CAAC;4BACD,0IAA0I;4BAC1I,OAAO,CAAC,eAAe,CAAC,CAAC;wBAC3B,CAAC,CACF,CAAC;oBACJ,CAAC,CAAC;iBACH,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,eAAe,CAAC,EAAE,EAAE;oBAC5C,OAAO,IAAI,6BAAmB,CAC5B,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAC3C;wBACE,GAAG,MAAM;wBACT,cAAc;wBACd,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;wBAClD,eAAe;qBAChB,CACF,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAC5C,WAAW,EACX,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;YACrC,oCAAoC;YACpC,YAAY;YACZ,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;gBAChB,IACE,YAAY,CAAC,CAAC,CAAC,YAAY,yCAA+B;oBAC1D,YAAY,CAAC,CAAC,CAAC,YAAY,oCAA0B,EACrD,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,OAAO,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC5D,CAAC;gBACD,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,gBAAgB,EAAE,CAAC;oBACjD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAC/C,OAAO,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE;4BACjD,GAAG,OAAO;4BACV,MAAM,EAAE,OAAO,CAAC,MAAM;gCACpB,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,SAAS;gCAC5B,CAAC,CAAC,SAAS;4BACb,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG,SAAS;yBACvC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CACL,CAAC;YACF,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAC/C,WAAW;YACX,YAAY;YACZ,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;gBAC1C,IACE,YAAY,CAAC,CAAC,CAAC,YAAY,yCAA+B;oBAC1D,YAAY,CAAC,CAAC,CAAC,YAAY,oCAA0B,EACrD,CAAC;oBACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC3B,CAAC;gBACD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC/C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBAC1B,OAAO,yBAAyB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAC/D,CAAC;gBACH,CAAC;gBACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3B,CAAC,CACF,CAAC;YACF,WAAW,CAAC,KAAK,CAAC,iCAAiC,CAAC,GAAG,CACrD,WAAW,EACX,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACb,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBAC/B,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBACpC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;gBAC/C,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gBACtC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;gBAC1C,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;gBACvC,WAAW,CAAC,gBAAgB,CAC1B,KAAK;gBACL,YAAY;gBACZ,IAAI,oCAA0B,CAAC,GAAG,CAAC,CACpC,CAAC;gBACF,mHAAmH;gBACnH,WAAW,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,4BAAkB,EAAE,CAAC,CAAC;YAChE,CAAC,CACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;CACF;AAED,kBAAe,mBAAmB,CAAC"}
@@ -0,0 +1,31 @@
1
+ export = ConsumeSharedRuntimeModule;
2
+ /** @typedef {import("webpack-sources").Source} Source */
3
+ /** @typedef {import("webpack/lib/Chunk")} Chunk */
4
+ /** @typedef {import("webpack/lib/ChunkGraph")} ChunkGraph */
5
+ /** @typedef {import("webpack/lib/Compilation")} Compilation */
6
+ /** @typedef {import("webpack/lib/Module")} Module */
7
+ /** @typedef {import("./ConsumeSharedModule")} ConsumeSharedModule */
8
+ declare class ConsumeSharedRuntimeModule extends RuntimeModule {
9
+ /**
10
+ * @param {ReadonlySet<string>} runtimeRequirements runtime requirements
11
+ */
12
+ constructor(runtimeRequirements: ReadonlySet<string>);
13
+ _runtimeRequirements: ReadonlySet<string>;
14
+ }
15
+ declare namespace ConsumeSharedRuntimeModule {
16
+ export {
17
+ Source,
18
+ Chunk,
19
+ ChunkGraph,
20
+ Compilation,
21
+ Module,
22
+ ConsumeSharedModule,
23
+ };
24
+ }
25
+ import RuntimeModule = require('webpack/lib/RuntimeModule');
26
+ type Source = import('webpack-sources').Source;
27
+ type Chunk = import('webpack/lib/Chunk');
28
+ type ChunkGraph = import('webpack/lib/ChunkGraph');
29
+ type Compilation = import('webpack/lib/Compilation');
30
+ type Module = import('webpack/lib/Module');
31
+ type ConsumeSharedModule = import('./ConsumeSharedModule');
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /*
4
+ MIT License http://www.opensource.org/licenses/mit-license.php
5
+ Author Tobias Koppers @sokra, Zackary Jackson @ScriptedAlchemy
6
+ */
7
+ const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
8
+ const utils_1 = require("../container/runtime/utils");
9
+ const { Template, RuntimeGlobals, RuntimeModule } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
10
+ const { parseVersionRuntimeCode, versionLtRuntimeCode, rangeToStringRuntimeCode, satisfyRuntimeCode, } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/semver'));
11
+ class ConsumeSharedRuntimeModule extends RuntimeModule {
12
+ /**
13
+ * @param {ReadonlySet<string>} runtimeRequirements runtime requirements
14
+ */
15
+ constructor(runtimeRequirements) {
16
+ super('consumes', RuntimeModule.STAGE_ATTACH);
17
+ this._runtimeRequirements = runtimeRequirements;
18
+ }
19
+ /**
20
+ * @returns {string | null} runtime code
21
+ */
22
+ generate() {
23
+ const compilation = this.compilation;
24
+ const chunkGraph = this.chunkGraph;
25
+ const { runtimeTemplate, codeGenerationResults } = compilation;
26
+ const chunkToModuleMapping = {};
27
+ const moduleIdToSourceMapping = new Map();
28
+ const initialConsumes = [];
29
+ /**
30
+ *
31
+ * @param {Iterable<Module>} modules modules
32
+ * @param {Chunk} chunk the chunk
33
+ * @param {(string | number)[]} list list of ids
34
+ */
35
+ const addModules = (modules, chunk, list) => {
36
+ for (const m of modules) {
37
+ const module = m;
38
+ // @ts-ignore
39
+ const id = chunkGraph.getModuleId(module);
40
+ list.push(id);
41
+ const moduleGetter = codeGenerationResults.getSource(
42
+ // @ts-ignore
43
+ module, chunk.runtime, 'consume-shared');
44
+ const shareOption = codeGenerationResults.getData(
45
+ // @ts-ignore
46
+ module, chunk.runtime, 'consume-shared');
47
+ const sharedInfoAndHandlerStr = Template.asString([
48
+ '{',
49
+ Template.indent([
50
+ `getter: ${moduleGetter.source().toString()},`,
51
+ `shareInfo: {`,
52
+ Template.indent([
53
+ `shareConfig: ${JSON.stringify(shareOption.shareConfig, null, 2)},`,
54
+ `scope: [${JSON.stringify(shareOption.shareScope || 'default')}],`,
55
+ ]),
56
+ '},',
57
+ `shareKey: "${shareOption.shareKey}",`,
58
+ ]),
59
+ '}',
60
+ ]);
61
+ moduleIdToSourceMapping.set(id, sharedInfoAndHandlerStr);
62
+ }
63
+ };
64
+ const allChunks = [...(this.chunk?.getAllReferencedChunks() || [])];
65
+ for (const chunk of allChunks) {
66
+ const modules = chunkGraph.getChunkModulesIterableBySourceType(chunk, 'consume-shared');
67
+ if (!modules)
68
+ continue;
69
+ if (!chunk.id)
70
+ continue;
71
+ addModules(modules, chunk, (chunkToModuleMapping[chunk.id.toString()] = []));
72
+ }
73
+ for (const chunk of [...(this.chunk?.getAllInitialChunks() || [])]) {
74
+ const modules = chunkGraph.getChunkModulesIterableBySourceType(chunk, 'consume-shared');
75
+ if (!modules)
76
+ continue;
77
+ addModules(modules, chunk, initialConsumes);
78
+ }
79
+ if (moduleIdToSourceMapping.size === 0)
80
+ return null;
81
+ const federationGlobal = (0, utils_1.getFederationGlobalScope)(RuntimeGlobals);
82
+ return Template.asString([
83
+ 'var installedModules = {};',
84
+ 'var moduleToHandlerMapping = {',
85
+ Template.indent(Array.from(moduleIdToSourceMapping, ([key, value]) => {
86
+ return `${JSON.stringify(key)}: ${value}`;
87
+ }).join(',\n')),
88
+ '};',
89
+ initialConsumes.length > 0
90
+ ? Template.asString([
91
+ `var initialConsumes = ${JSON.stringify(initialConsumes)};`,
92
+ `${federationGlobal}.installInitialConsumes= ()=>${federationGlobal}.bundlerRuntime.installInitialConsumes({initialConsumes, installedModules, moduleToHandlerMapping, webpackRequire:${RuntimeGlobals.require}});`,
93
+ ])
94
+ : '// no consumes in initial chunks',
95
+ this._runtimeRequirements.has(RuntimeGlobals.ensureChunkHandlers)
96
+ ? Template.asString([
97
+ `var chunkMapping = ${JSON.stringify(chunkToModuleMapping, null, '\t')};`,
98
+ `${RuntimeGlobals.ensureChunkHandlers}.consumes = ${runtimeTemplate.basicFunction('chunkId, promises', [
99
+ `${federationGlobal}.bundlerRuntime.consumes({chunkMapping, installedModules, chunkId, moduleToHandlerMapping, promises, webpackRequire:${RuntimeGlobals.require}});`,
100
+ ])}`,
101
+ ])
102
+ : '// no chunk loading of consumes',
103
+ ]);
104
+ }
105
+ }
106
+ exports.default = ConsumeSharedRuntimeModule;
107
+ //# sourceMappingURL=ConsumeSharedRuntimeModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsumeSharedRuntimeModule.js","sourceRoot":"","sources":["../../../../src/lib/sharing/ConsumeSharedRuntimeModule.ts"],"names":[],"mappings":"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"}