@module-federation/enhanced 0.0.3 → 0.0.4

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 (279) hide show
  1. package/LICENSE +21 -0
  2. package/dist/package.json +33 -0
  3. package/{src → dist/src}/index.d.ts +4 -0
  4. package/dist/src/index.js +32 -0
  5. package/dist/src/index.js.map +1 -0
  6. package/dist/src/lib/Constants.js +125 -0
  7. package/dist/src/lib/Constants.js.map +1 -0
  8. package/dist/src/lib/RuntimeGlobals.d.ts +0 -0
  9. package/{src → dist/src}/lib/RuntimeGlobals.js +144 -74
  10. package/dist/src/lib/RuntimeGlobals.js.map +1 -0
  11. package/dist/src/lib/container/AsyncBoundaryPlugin.d.ts +19 -0
  12. package/dist/src/lib/container/AsyncBoundaryPlugin.js +172 -0
  13. package/dist/src/lib/container/AsyncBoundaryPlugin.js.map +1 -0
  14. package/{src → dist/src}/lib/container/ContainerEntryDependency.d.ts +1 -1
  15. package/dist/src/lib/container/ContainerEntryDependency.js +37 -0
  16. package/dist/src/lib/container/ContainerEntryDependency.js.map +1 -0
  17. package/{src → dist/src}/lib/container/ContainerEntryModule.d.ts +2 -2
  18. package/dist/src/lib/container/ContainerEntryModule.js +230 -0
  19. package/dist/src/lib/container/ContainerEntryModule.js.map +1 -0
  20. package/{src → dist/src}/lib/container/ContainerEntryModuleFactory.d.ts +2 -1
  21. package/dist/src/lib/container/ContainerEntryModuleFactory.js +30 -0
  22. package/dist/src/lib/container/ContainerEntryModuleFactory.js.map +1 -0
  23. package/{src → dist/src}/lib/container/ContainerExposedDependency.d.ts +2 -2
  24. package/dist/src/lib/container/ContainerExposedDependency.js +49 -0
  25. package/dist/src/lib/container/ContainerExposedDependency.js.map +1 -0
  26. package/{src → dist/src}/lib/container/ContainerPlugin.d.ts +1 -1
  27. package/dist/src/lib/container/ContainerPlugin.js +85 -0
  28. package/dist/src/lib/container/ContainerPlugin.js.map +1 -0
  29. package/{src → dist/src}/lib/container/ContainerReferencePlugin.d.ts +1 -1
  30. package/dist/src/lib/container/ContainerReferencePlugin.js +100 -0
  31. package/dist/src/lib/container/ContainerReferencePlugin.js.map +1 -0
  32. package/{src → dist/src}/lib/container/FallbackDependency.d.ts +1 -5
  33. package/dist/src/lib/container/FallbackDependency.js +47 -0
  34. package/dist/src/lib/container/FallbackDependency.js.map +1 -0
  35. package/{src → dist/src}/lib/container/FallbackItemDependency.d.ts +2 -2
  36. package/dist/src/lib/container/FallbackItemDependency.js +26 -0
  37. package/dist/src/lib/container/FallbackItemDependency.js.map +1 -0
  38. package/{src → dist/src}/lib/container/FallbackModule.d.ts +2 -3
  39. package/dist/src/lib/container/FallbackModule.js +152 -0
  40. package/dist/src/lib/container/FallbackModule.js.map +1 -0
  41. package/{src → dist/src}/lib/container/FallbackModuleFactory.d.ts +3 -2
  42. package/dist/src/lib/container/FallbackModuleFactory.js +28 -0
  43. package/dist/src/lib/container/FallbackModuleFactory.js.map +1 -0
  44. package/dist/src/lib/container/HoistContainerReferencesPlugin.d.ts +13 -0
  45. package/dist/src/lib/container/HoistContainerReferencesPlugin.js +70 -0
  46. package/dist/src/lib/container/HoistContainerReferencesPlugin.js.map +1 -0
  47. package/{src → dist/src}/lib/container/ModuleFederationPlugin.d.ts +1 -1
  48. package/dist/src/lib/container/ModuleFederationPlugin.js +86 -0
  49. package/dist/src/lib/container/ModuleFederationPlugin.js.map +1 -0
  50. package/{src → dist/src}/lib/container/RemoteModule.d.ts +2 -3
  51. package/dist/src/lib/container/RemoteModule.js +148 -0
  52. package/dist/src/lib/container/RemoteModule.js.map +1 -0
  53. package/{src → dist/src}/lib/container/RemoteRuntimeModule.d.ts +1 -1
  54. package/dist/src/lib/container/RemoteRuntimeModule.js +103 -0
  55. package/dist/src/lib/container/RemoteRuntimeModule.js.map +1 -0
  56. package/{src → dist/src}/lib/container/RemoteToExternalDependency.d.ts +2 -2
  57. package/dist/src/lib/container/RemoteToExternalDependency.js +26 -0
  58. package/dist/src/lib/container/RemoteToExternalDependency.js.map +1 -0
  59. package/{src → dist/src}/lib/container/options.js +32 -42
  60. package/dist/src/lib/container/options.js.map +1 -0
  61. package/{src → dist/src}/lib/sharing/ConsumeSharedFallbackDependency.d.ts +2 -2
  62. package/dist/src/lib/sharing/ConsumeSharedFallbackDependency.js +26 -0
  63. package/dist/src/lib/sharing/ConsumeSharedFallbackDependency.js.map +1 -0
  64. package/{src → dist/src}/lib/sharing/ConsumeSharedModule.d.ts +1 -1
  65. package/dist/src/lib/sharing/ConsumeSharedModule.js +201 -0
  66. package/dist/src/lib/sharing/ConsumeSharedModule.js.map +1 -0
  67. package/{src → dist/src}/lib/sharing/ConsumeSharedPlugin.d.ts +1 -1
  68. package/dist/src/lib/sharing/ConsumeSharedPlugin.js +238 -0
  69. package/dist/src/lib/sharing/ConsumeSharedPlugin.js.map +1 -0
  70. package/{src → dist/src}/lib/sharing/ConsumeSharedRuntimeModule.d.ts +1 -1
  71. package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.js +247 -0
  72. package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.js.map +1 -0
  73. package/{src → dist/src}/lib/sharing/ProvideForSharedDependency.d.ts +2 -2
  74. package/dist/src/lib/sharing/ProvideForSharedDependency.js +27 -0
  75. package/dist/src/lib/sharing/ProvideForSharedDependency.js.map +1 -0
  76. package/{src → dist/src}/lib/sharing/ProvideSharedDependency.d.ts +1 -1
  77. package/dist/src/lib/sharing/ProvideSharedDependency.js +61 -0
  78. package/dist/src/lib/sharing/ProvideSharedDependency.js.map +1 -0
  79. package/{src → dist/src}/lib/sharing/ProvideSharedModule.d.ts +5 -5
  80. package/dist/src/lib/sharing/ProvideSharedModule.js +163 -0
  81. package/dist/src/lib/sharing/ProvideSharedModule.js.map +1 -0
  82. package/{src → dist/src}/lib/sharing/ProvideSharedModuleFactory.d.ts +1 -1
  83. package/dist/src/lib/sharing/ProvideSharedModuleFactory.js +30 -0
  84. package/dist/src/lib/sharing/ProvideSharedModuleFactory.js.map +1 -0
  85. package/{src → dist/src}/lib/sharing/ProvideSharedPlugin.d.ts +1 -1
  86. package/dist/src/lib/sharing/ProvideSharedPlugin.js +185 -0
  87. package/dist/src/lib/sharing/ProvideSharedPlugin.js.map +1 -0
  88. package/{src → dist/src}/lib/sharing/SharePlugin.d.ts +1 -1
  89. package/dist/src/lib/sharing/SharePlugin.js +76 -0
  90. package/dist/src/lib/sharing/SharePlugin.js.map +1 -0
  91. package/{src → dist/src}/lib/sharing/ShareRuntimeModule.d.ts +1 -1
  92. package/dist/src/lib/sharing/ShareRuntimeModule.js +116 -0
  93. package/dist/src/lib/sharing/ShareRuntimeModule.js.map +1 -0
  94. package/{src → dist/src}/lib/sharing/resolveMatchedConfigs.d.ts +1 -1
  95. package/dist/src/lib/sharing/resolveMatchedConfigs.js +66 -0
  96. package/dist/src/lib/sharing/resolveMatchedConfigs.js.map +1 -0
  97. package/{src → dist/src}/lib/sharing/utils.d.ts +1 -1
  98. package/{src → dist/src}/lib/sharing/utils.js +94 -81
  99. package/dist/src/lib/sharing/utils.js.map +1 -0
  100. package/dist/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.d.ts +5 -0
  101. package/dist/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.js +19 -0
  102. package/dist/src/runtime/AddRuntimeRequirementToPromiseExternalPlugin.js.map +1 -0
  103. package/{src → dist/src}/runtime/ModuleInfoRuntimeModule.d.ts +2 -1
  104. package/dist/src/runtime/ModuleInfoRuntimeModule.js +80 -0
  105. package/dist/src/runtime/ModuleInfoRuntimeModule.js.map +1 -0
  106. package/{src → dist/src}/runtime/ModuleInfoRuntimePlugin.d.ts +1 -1
  107. package/dist/src/runtime/ModuleInfoRuntimePlugin.js +24 -0
  108. package/dist/src/runtime/ModuleInfoRuntimePlugin.js.map +1 -0
  109. package/dist/src/schemas/container/ModuleFederationPlugin.check.d.ts +7 -0
  110. package/dist/src/schemas/container/ModuleFederationPlugin.check.js +1668 -0
  111. package/dist/src/schemas/container/ModuleFederationPlugin.check.js.map +1 -0
  112. package/dist/src/schemas/container/ModuleFederationPlugin.d.ts +437 -0
  113. package/dist/src/schemas/container/ModuleFederationPlugin.js +529 -0
  114. package/dist/src/schemas/container/ModuleFederationPlugin.js.map +1 -0
  115. package/package.json +23 -8
  116. package/CHANGELOG.md +0 -111
  117. package/global.d.js +0 -14
  118. package/global.d.js.map +0 -1
  119. package/pullts.d.ts +0 -1
  120. package/src/declarations/plugins/container/AsyncDependenciesBlock.d.js +0 -14
  121. package/src/declarations/plugins/container/AsyncDependenciesBlock.d.js.map +0 -1
  122. package/src/declarations/plugins/container/ContainerPlugin.d.js +0 -12
  123. package/src/declarations/plugins/container/ContainerPlugin.d.js.map +0 -1
  124. package/src/declarations/plugins/container/ContainerReferencePlugin.d.js +0 -12
  125. package/src/declarations/plugins/container/ContainerReferencePlugin.d.js.map +0 -1
  126. package/src/declarations/plugins/container/Dependency.d.js +0 -14
  127. package/src/declarations/plugins/container/Dependency.d.js.map +0 -1
  128. package/src/declarations/plugins/container/Module.d.js +0 -3
  129. package/src/declarations/plugins/container/Module.d.js.map +0 -1
  130. package/src/declarations/plugins/container/ModuleFactory.d.js +0 -3
  131. package/src/declarations/plugins/container/ModuleFactory.d.js.map +0 -1
  132. package/src/declarations/plugins/container/ModuleFederationPlugin.d.js +0 -12
  133. package/src/declarations/plugins/container/ModuleFederationPlugin.d.js.map +0 -1
  134. package/src/declarations/plugins/container/ObjectDeserializerContext.d.js +0 -6
  135. package/src/declarations/plugins/container/ObjectDeserializerContext.d.js.map +0 -1
  136. package/src/declarations/plugins/container/StaticExportsDependency.d.js +0 -14
  137. package/src/declarations/plugins/container/StaticExportsDependency.d.js.map +0 -1
  138. package/src/declarations/plugins/container/Template.d.js +0 -4
  139. package/src/declarations/plugins/container/Template.d.js.map +0 -1
  140. package/src/declarations/plugins/container/WebpackError.d.js +0 -3
  141. package/src/declarations/plugins/container/WebpackError.d.js.map +0 -1
  142. package/src/declarations/plugins/container/WebpackOptions.d.js +0 -6
  143. package/src/declarations/plugins/container/WebpackOptions.d.js.map +0 -1
  144. package/src/declarations/plugins/sharing/ConsumeSharedPlugin.d.js +0 -12
  145. package/src/declarations/plugins/sharing/ConsumeSharedPlugin.d.js.map +0 -1
  146. package/src/declarations/plugins/sharing/ProvideSharedPlugin.d.js +0 -12
  147. package/src/declarations/plugins/sharing/ProvideSharedPlugin.d.js.map +0 -1
  148. package/src/declarations/plugins/sharing/SharePlugin.d.js +0 -12
  149. package/src/declarations/plugins/sharing/SharePlugin.d.js.map +0 -1
  150. package/src/index.js +0 -43
  151. package/src/index.js.map +0 -1
  152. package/src/lib/Constants.js +0 -103
  153. package/src/lib/Constants.js.map +0 -1
  154. package/src/lib/RuntimeGlobals.d.ts +0 -1
  155. package/src/lib/RuntimeGlobals.js.map +0 -1
  156. package/src/lib/container/AsyncBoundaryPlugin.d.ts +0 -45
  157. package/src/lib/container/AsyncBoundaryPlugin.js +0 -103
  158. package/src/lib/container/AsyncBoundaryPlugin.js.map +0 -1
  159. package/src/lib/container/ContainerEntryDependency.d.js +0 -4
  160. package/src/lib/container/ContainerEntryDependency.d.js.map +0 -1
  161. package/src/lib/container/ContainerEntryDependency.js +0 -43
  162. package/src/lib/container/ContainerEntryDependency.js.map +0 -1
  163. package/src/lib/container/ContainerEntryModule.d.js +0 -14
  164. package/src/lib/container/ContainerEntryModule.d.js.map +0 -1
  165. package/src/lib/container/ContainerEntryModule.js +0 -237
  166. package/src/lib/container/ContainerEntryModule.js.map +0 -1
  167. package/src/lib/container/ContainerEntryModuleFactory.d.js +0 -4
  168. package/src/lib/container/ContainerEntryModuleFactory.d.js.map +0 -1
  169. package/src/lib/container/ContainerEntryModuleFactory.js +0 -32
  170. package/src/lib/container/ContainerEntryModuleFactory.js.map +0 -1
  171. package/src/lib/container/ContainerExposedDependency.d.js +0 -4
  172. package/src/lib/container/ContainerExposedDependency.d.js.map +0 -1
  173. package/src/lib/container/ContainerExposedDependency.js +0 -53
  174. package/src/lib/container/ContainerExposedDependency.js.map +0 -1
  175. package/src/lib/container/ContainerPlugin.d.js +0 -4
  176. package/src/lib/container/ContainerPlugin.d.js.map +0 -1
  177. package/src/lib/container/ContainerPlugin.js +0 -88
  178. package/src/lib/container/ContainerPlugin.js.map +0 -1
  179. package/src/lib/container/ContainerReferencePlugin.d.js +0 -4
  180. package/src/lib/container/ContainerReferencePlugin.d.js.map +0 -1
  181. package/src/lib/container/ContainerReferencePlugin.js +0 -97
  182. package/src/lib/container/ContainerReferencePlugin.js.map +0 -1
  183. package/src/lib/container/FallbackDependency.d.js +0 -14
  184. package/src/lib/container/FallbackDependency.d.js.map +0 -1
  185. package/src/lib/container/FallbackDependency.js +0 -55
  186. package/src/lib/container/FallbackDependency.js.map +0 -1
  187. package/src/lib/container/FallbackItemDependency.d.js +0 -4
  188. package/src/lib/container/FallbackItemDependency.d.js.map +0 -1
  189. package/src/lib/container/FallbackItemDependency.js +0 -33
  190. package/src/lib/container/FallbackItemDependency.js.map +0 -1
  191. package/src/lib/container/FallbackModule.d.js +0 -4
  192. package/src/lib/container/FallbackModule.d.js.map +0 -1
  193. package/src/lib/container/FallbackModule.js +0 -149
  194. package/src/lib/container/FallbackModule.js.map +0 -1
  195. package/src/lib/container/FallbackModuleFactory.d.js +0 -4
  196. package/src/lib/container/FallbackModuleFactory.d.js.map +0 -1
  197. package/src/lib/container/FallbackModuleFactory.js +0 -30
  198. package/src/lib/container/FallbackModuleFactory.js.map +0 -1
  199. package/src/lib/container/ModuleFederationPlugin.d.js +0 -4
  200. package/src/lib/container/ModuleFederationPlugin.d.js.map +0 -1
  201. package/src/lib/container/ModuleFederationPlugin.js +0 -79
  202. package/src/lib/container/ModuleFederationPlugin.js.map +0 -1
  203. package/src/lib/container/ModuleFederationPluginTypes.d.js +0 -12
  204. package/src/lib/container/ModuleFederationPluginTypes.d.js.map +0 -1
  205. package/src/lib/container/RemoteModule.d.js +0 -13
  206. package/src/lib/container/RemoteModule.d.js.map +0 -1
  207. package/src/lib/container/RemoteModule.js +0 -147
  208. package/src/lib/container/RemoteModule.js.map +0 -1
  209. package/src/lib/container/RemoteRuntimeModule.d.js +0 -13
  210. package/src/lib/container/RemoteRuntimeModule.d.js.map +0 -1
  211. package/src/lib/container/RemoteRuntimeModule.js +0 -121
  212. package/src/lib/container/RemoteRuntimeModule.js.map +0 -1
  213. package/src/lib/container/RemoteToExternalDependency.d.js +0 -15
  214. package/src/lib/container/RemoteToExternalDependency.d.js.map +0 -1
  215. package/src/lib/container/RemoteToExternalDependency.js +0 -33
  216. package/src/lib/container/RemoteToExternalDependency.js.map +0 -1
  217. package/src/lib/container/options.d.js +0 -6
  218. package/src/lib/container/options.d.js.map +0 -1
  219. package/src/lib/container/options.js.map +0 -1
  220. package/src/lib/inversion/ContainerInversionPlugin.d.ts +0 -1
  221. package/src/lib/inversion/ContainerInversionPlugin.js +0 -3
  222. package/src/lib/inversion/ContainerInversionPlugin.js.map +0 -1
  223. package/src/lib/sharing/ConsumeSharedFallbackDependency.d.js +0 -4
  224. package/src/lib/sharing/ConsumeSharedFallbackDependency.d.js.map +0 -1
  225. package/src/lib/sharing/ConsumeSharedFallbackDependency.js +0 -33
  226. package/src/lib/sharing/ConsumeSharedFallbackDependency.js.map +0 -1
  227. package/src/lib/sharing/ConsumeSharedModule.d.js +0 -4
  228. package/src/lib/sharing/ConsumeSharedModule.d.js.map +0 -1
  229. package/src/lib/sharing/ConsumeSharedModule.js +0 -191
  230. package/src/lib/sharing/ConsumeSharedModule.js.map +0 -1
  231. package/src/lib/sharing/ConsumeSharedPlugin.d.js +0 -4
  232. package/src/lib/sharing/ConsumeSharedPlugin.d.js.map +0 -1
  233. package/src/lib/sharing/ConsumeSharedPlugin.js +0 -217
  234. package/src/lib/sharing/ConsumeSharedPlugin.js.map +0 -1
  235. package/src/lib/sharing/ConsumeSharedRuntimeModule.d.js +0 -4
  236. package/src/lib/sharing/ConsumeSharedRuntimeModule.d.js.map +0 -1
  237. package/src/lib/sharing/ConsumeSharedRuntimeModule.js +0 -251
  238. package/src/lib/sharing/ConsumeSharedRuntimeModule.js.map +0 -1
  239. package/src/lib/sharing/ProvideForSharedDependency.d.js +0 -4
  240. package/src/lib/sharing/ProvideForSharedDependency.d.js.map +0 -1
  241. package/src/lib/sharing/ProvideForSharedDependency.js +0 -34
  242. package/src/lib/sharing/ProvideForSharedDependency.js.map +0 -1
  243. package/src/lib/sharing/ProvideSharedDependency.d.js +0 -14
  244. package/src/lib/sharing/ProvideSharedDependency.d.js.map +0 -1
  245. package/src/lib/sharing/ProvideSharedDependency.js +0 -65
  246. package/src/lib/sharing/ProvideSharedDependency.js.map +0 -1
  247. package/src/lib/sharing/ProvideSharedModule.d.js +0 -4
  248. package/src/lib/sharing/ProvideSharedModule.d.js.map +0 -1
  249. package/src/lib/sharing/ProvideSharedModule.js +0 -159
  250. package/src/lib/sharing/ProvideSharedModule.js.map +0 -1
  251. package/src/lib/sharing/ProvideSharedModuleFactory.d.js +0 -4
  252. package/src/lib/sharing/ProvideSharedModuleFactory.d.js.map +0 -1
  253. package/src/lib/sharing/ProvideSharedModuleFactory.js +0 -32
  254. package/src/lib/sharing/ProvideSharedModuleFactory.js.map +0 -1
  255. package/src/lib/sharing/ProvideSharedPlugin.d.js +0 -4
  256. package/src/lib/sharing/ProvideSharedPlugin.d.js.map +0 -1
  257. package/src/lib/sharing/ProvideSharedPlugin.js +0 -165
  258. package/src/lib/sharing/ProvideSharedPlugin.js.map +0 -1
  259. package/src/lib/sharing/SharePlugin.d.js +0 -4
  260. package/src/lib/sharing/SharePlugin.d.js.map +0 -1
  261. package/src/lib/sharing/SharePlugin.js +0 -73
  262. package/src/lib/sharing/SharePlugin.js.map +0 -1
  263. package/src/lib/sharing/ShareRuntimeModule.d.js +0 -4
  264. package/src/lib/sharing/ShareRuntimeModule.d.js.map +0 -1
  265. package/src/lib/sharing/ShareRuntimeModule.js +0 -117
  266. package/src/lib/sharing/ShareRuntimeModule.js.map +0 -1
  267. package/src/lib/sharing/resolveMatchedConfigs.d.js +0 -6
  268. package/src/lib/sharing/resolveMatchedConfigs.d.js.map +0 -1
  269. package/src/lib/sharing/resolveMatchedConfigs.js +0 -69
  270. package/src/lib/sharing/resolveMatchedConfigs.js.map +0 -1
  271. package/src/lib/sharing/utils.d.js +0 -6
  272. package/src/lib/sharing/utils.d.js.map +0 -1
  273. package/src/lib/sharing/utils.js.map +0 -1
  274. package/src/runtime/ModuleInfoRuntimeModule.js +0 -88
  275. package/src/runtime/ModuleInfoRuntimeModule.js.map +0 -1
  276. package/src/runtime/ModuleInfoRuntimePlugin.js +0 -29
  277. package/src/runtime/ModuleInfoRuntimePlugin.js.map +0 -1
  278. /package/{src → dist/src}/lib/Constants.d.ts +0 -0
  279. /package/{src → dist/src}/lib/container/options.d.ts +0 -0
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ /*
7
+ MIT License http://www.opensource.org/licenses/mit-license.php
8
+ Author Tobias Koppers @sokra, Zackary Jackson @ScriptedAlchemy, Marais Rossouw @maraisr
9
+ */
10
+ const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
11
+ const ContainerEntryDependency_1 = __importDefault(require("./ContainerEntryDependency"));
12
+ const ContainerEntryModuleFactory_1 = __importDefault(require("./ContainerEntryModuleFactory"));
13
+ const ContainerExposedDependency_1 = __importDefault(require("./ContainerExposedDependency"));
14
+ const options_1 = require("./options");
15
+ const createSchemaValidation = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/create-schema-validation'));
16
+ const validate = createSchemaValidation(
17
+ //eslint-disable-next-line
18
+ require('webpack/schemas/plugins/container/ContainerPlugin.check.js'), () => require('webpack/schemas/plugins/container/ContainerPlugin.json'), {
19
+ name: 'Container Plugin',
20
+ baseDataPath: 'options',
21
+ });
22
+ const PLUGIN_NAME = 'ContainerPlugin';
23
+ class ContainerPlugin {
24
+ /**
25
+ * @param {ContainerPluginOptions} options options
26
+ */
27
+ constructor(options) {
28
+ validate(options);
29
+ this._options = {
30
+ name: options.name,
31
+ shareScope: options.shareScope || 'default',
32
+ library: options.library || {
33
+ type: 'var',
34
+ name: options.name,
35
+ },
36
+ runtime: options.runtime,
37
+ filename: options.filename || undefined,
38
+ //@ts-ignore
39
+ exposes: (0, options_1.parseOptions)(options.exposes, (item) => ({
40
+ import: Array.isArray(item) ? item : [item],
41
+ name: undefined,
42
+ }), (item) => ({
43
+ import: Array.isArray(item.import) ? item.import : [item.import],
44
+ name: item.name || undefined,
45
+ })),
46
+ };
47
+ }
48
+ apply(compiler) {
49
+ process.env['FEDERATION_WEBPACK_PATH'] =
50
+ process.env['FEDERATION_WEBPACK_PATH'] || (0, normalize_webpack_path_1.getWebpackPath)(compiler);
51
+ const { name, exposes, shareScope, filename, library, runtime } = this._options;
52
+ if (library &&
53
+ compiler.options.output &&
54
+ compiler.options.output.enabledLibraryTypes &&
55
+ !compiler.options.output.enabledLibraryTypes.includes(library.type)) {
56
+ compiler.options.output.enabledLibraryTypes.push(library.type);
57
+ }
58
+ compiler.hooks.make.tapAsync(PLUGIN_NAME, (compilation, callback) => {
59
+ //@ts-ignore
60
+ const dep = new ContainerEntryDependency_1.default(name, exposes, shareScope);
61
+ dep.loc = { name };
62
+ compilation.addEntry(compilation.options.context || '',
63
+ //@ts-ignore
64
+ dep, {
65
+ name,
66
+ filename,
67
+ runtime,
68
+ library,
69
+ }, (error) => {
70
+ if (error) {
71
+ return callback(error);
72
+ }
73
+ callback();
74
+ });
75
+ });
76
+ compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation, { normalModuleFactory }) => {
77
+ compilation.dependencyFactories.set(ContainerEntryDependency_1.default,
78
+ //@ts-ignore
79
+ new ContainerEntryModuleFactory_1.default());
80
+ compilation.dependencyFactories.set(ContainerExposedDependency_1.default, normalModuleFactory);
81
+ });
82
+ }
83
+ }
84
+ exports.default = ContainerPlugin;
85
+ //# sourceMappingURL=ContainerPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContainerPlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/ContainerPlugin.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type Compiler from 'webpack/lib/Compiler';
1
+ import type { Compiler } from 'webpack';
2
2
  import { ContainerReferencePluginOptions } from '../../declarations/plugins/container/ContainerReferencePlugin';
3
3
  declare class ContainerReferencePlugin {
4
4
  private _remoteType;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
7
+ // import * as RuntimeGlobals from 'webpack/lib/RuntimeGlobals';
8
+ const FallbackDependency_1 = __importDefault(require("./FallbackDependency"));
9
+ const FallbackItemDependency_1 = __importDefault(require("./FallbackItemDependency"));
10
+ const FallbackModuleFactory_1 = __importDefault(require("./FallbackModuleFactory"));
11
+ const RemoteModule_1 = __importDefault(require("./RemoteModule"));
12
+ const RemoteRuntimeModule_1 = __importDefault(require("./RemoteRuntimeModule"));
13
+ const RemoteToExternalDependency_1 = __importDefault(require("./RemoteToExternalDependency"));
14
+ const options_1 = require("./options");
15
+ const { ExternalsPlugin } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
16
+ const createSchemaValidation = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/create-schema-validation'));
17
+ const validate = createSchemaValidation(
18
+ //eslint-disable-next-line
19
+ require('webpack/schemas/plugins/container/ContainerReferencePlugin.check.js'), () => require('webpack/schemas/plugins/container/ContainerReferencePlugin.json'), {
20
+ name: 'Container Reference Plugin',
21
+ baseDataPath: 'options',
22
+ });
23
+ const slashCode = '/'.charCodeAt(0);
24
+ class ContainerReferencePlugin {
25
+ constructor(options) {
26
+ validate(options);
27
+ this._remoteType = options.remoteType;
28
+ this._remotes = (0, options_1.parseOptions)(options.remotes, (item) => ({
29
+ external: Array.isArray(item) ? item : [item],
30
+ shareScope: options.shareScope || 'default',
31
+ }), (item) => ({
32
+ external: Array.isArray(item.external)
33
+ ? item.external
34
+ : [item.external],
35
+ shareScope: item.shareScope || options.shareScope || 'default',
36
+ }));
37
+ }
38
+ /**
39
+ * Apply the plugin
40
+ * @param {Compiler} compiler the compiler instance
41
+ * @returns {void}
42
+ */
43
+ apply(compiler) {
44
+ process.env['FEDERATION_WEBPACK_PATH'] =
45
+ process.env['FEDERATION_WEBPACK_PATH'] || (0, normalize_webpack_path_1.getWebpackPath)(compiler);
46
+ const { _remotes: remotes, _remoteType: remoteType } = this;
47
+ /** @type {Record<string, string>} */
48
+ const remoteExternals = {};
49
+ for (const [key, config] of remotes) {
50
+ let i = 0;
51
+ for (const external of config.external) {
52
+ if (typeof external === 'string' && external.startsWith('internal ')) {
53
+ continue;
54
+ }
55
+ remoteExternals[`webpack/container/reference/${key}${i ? `/fallback-${i}` : ''}`] = external;
56
+ i++;
57
+ }
58
+ }
59
+ const Externals = compiler.webpack.ExternalsPlugin || ExternalsPlugin;
60
+ new Externals(remoteType, remoteExternals).apply(compiler);
61
+ compiler.hooks.compilation.tap('ContainerReferencePlugin', (compilation, { normalModuleFactory }) => {
62
+ compilation.dependencyFactories.set(RemoteToExternalDependency_1.default, normalModuleFactory);
63
+ compilation.dependencyFactories.set(FallbackItemDependency_1.default, normalModuleFactory);
64
+ compilation.dependencyFactories.set(FallbackDependency_1.default,
65
+ // @ts-ignore
66
+ new FallbackModuleFactory_1.default());
67
+ normalModuleFactory.hooks.factorize.tap('ContainerReferencePlugin',
68
+ // @ts-ignore
69
+ (data) => {
70
+ if (!data.request.includes('!')) {
71
+ for (const [key, config] of remotes) {
72
+ if (data.request.startsWith(`${key}`) &&
73
+ (data.request.length === key.length ||
74
+ data.request.charCodeAt(key.length) === slashCode)) {
75
+ return new RemoteModule_1.default(data.request,
76
+ //@ts-ignore
77
+ config.external.map((external, i) => external.startsWith('internal ')
78
+ ? external.slice(9)
79
+ : `webpack/container/reference/${key}${i ? `/fallback-${i}` : ''}`), `.${data.request.slice(key.length)}`,
80
+ //@ts-ignore
81
+ config.shareScope);
82
+ }
83
+ }
84
+ }
85
+ });
86
+ compilation.hooks.runtimeRequirementInTree
87
+ .for(compiler.webpack.RuntimeGlobals.ensureChunkHandlers)
88
+ .tap('ContainerReferencePlugin', (chunk, set) => {
89
+ set.add(compiler.webpack.RuntimeGlobals.module);
90
+ set.add(compiler.webpack.RuntimeGlobals.moduleFactoriesAddOnly);
91
+ set.add(compiler.webpack.RuntimeGlobals.hasOwnProperty);
92
+ set.add(compiler.webpack.RuntimeGlobals.initializeSharing);
93
+ set.add(compiler.webpack.RuntimeGlobals.shareScopeMap);
94
+ compilation.addRuntimeModule(chunk, new RemoteRuntimeModule_1.default());
95
+ });
96
+ });
97
+ }
98
+ }
99
+ exports.default = ContainerReferencePlugin;
100
+ //# sourceMappingURL=ContainerReferencePlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContainerReferencePlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/ContainerReferencePlugin.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ObjectDeserializerContext, ObjectSerializerContext } from 'webpack/lib/Dependency';
2
- import Dependency from 'webpack/lib/Dependency';
2
+ declare const Dependency: typeof import("webpack").Dependency;
3
3
  declare class FallbackDependency extends Dependency {
4
4
  requests: string[];
5
5
  /**
@@ -16,10 +16,6 @@ declare class FallbackDependency extends Dependency {
16
16
  * @param {ObjectSerializerContext} context context
17
17
  */
18
18
  serialize(context: ObjectSerializerContext): void;
19
- /**
20
- * @param {ObjectDeserializerContext} context context
21
- * @returns {FallbackDependency} deserialize fallback dependency
22
- */
23
19
  static deserialize(context: ObjectDeserializerContext): FallbackDependency;
24
20
  }
25
21
  export default FallbackDependency;
@@ -0,0 +1,47 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
8
+ const makeSerializable = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/makeSerializable'));
9
+ const { Dependency } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
10
+ class FallbackDependency extends Dependency {
11
+ /**
12
+ * @param {string[]} requests requests
13
+ */
14
+ constructor(requests) {
15
+ super();
16
+ this.requests = requests;
17
+ }
18
+ /**
19
+ * @returns {string | null} an identifier to merge equal requests
20
+ */
21
+ getResourceIdentifier() {
22
+ return `fallback ${this.requests.join(' ')}`;
23
+ }
24
+ get type() {
25
+ return 'fallback';
26
+ }
27
+ get category() {
28
+ return 'esm';
29
+ }
30
+ /**
31
+ * @param {ObjectSerializerContext} context context
32
+ */
33
+ serialize(context) {
34
+ const { write } = context;
35
+ write(this.requests);
36
+ super.serialize(context);
37
+ }
38
+ static deserialize(context) {
39
+ const { read } = context;
40
+ const obj = new FallbackDependency(read());
41
+ obj.deserialize(context);
42
+ return obj;
43
+ }
44
+ }
45
+ makeSerializable(FallbackDependency, 'enhanced/lib/container/FallbackDependency');
46
+ exports.default = FallbackDependency;
47
+ //# sourceMappingURL=FallbackDependency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FallbackDependency.js","sourceRoot":"","sources":["../../../../src/lib/container/FallbackDependency.ts"],"names":[],"mappings":"AAAA;;;EAGE;AAEF,YAAY,CAAC;;AAMb,0FAAqF;AAErF,MAAM,gBAAgB,GAAG,OAAO,CAC9B,IAAA,6CAAoB,EAAC,mCAAmC,CAAC,CAC1D,CAAC;AACF,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAC5B,IAAA,6CAAoB,EAAC,SAAS,CAAC,CACJ,CAAC;AAE9B,MAAM,kBAAmB,SAAQ,UAAU;IAGzC;;OAEG;IACH,YAAY,QAAkB;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;OAEG;IACM,qBAAqB;QAC5B,OAAO,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC/C,CAAC;IAED,IAAa,IAAI;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAa,QAAQ;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACM,SAAS,CAAC,OAAgC;QACjD,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAkC;QACnD,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED,gBAAgB,CACd,kBAAkB,EAClB,2CAA2C,CAC5C,CAAC;AAEF,kBAAe,kBAAkB,CAAC"}
@@ -1,5 +1,5 @@
1
- import ModuleDependency from 'webpack/lib/dependencies/ModuleDependency';
2
- declare class FallbackItemDependency extends ModuleDependency {
1
+ declare const dependencies: typeof import("webpack").dependencies;
2
+ declare class FallbackItemDependency extends dependencies.ModuleDependency {
3
3
  /**
4
4
  * @param {string} request request
5
5
  */
@@ -0,0 +1,26 @@
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 makeSerializable = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/makeSerializable'));
9
+ const { dependencies } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
10
+ class FallbackItemDependency extends dependencies.ModuleDependency {
11
+ /**
12
+ * @param {string} request request
13
+ */
14
+ constructor(request) {
15
+ super(request);
16
+ }
17
+ get type() {
18
+ return 'fallback item';
19
+ }
20
+ get category() {
21
+ return 'esm';
22
+ }
23
+ }
24
+ makeSerializable(FallbackItemDependency, 'enhanced/lib/container/FallbackItemDependency');
25
+ exports.default = FallbackItemDependency;
26
+ //# sourceMappingURL=FallbackItemDependency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FallbackItemDependency.js","sourceRoot":"","sources":["../../../../src/lib/container/FallbackItemDependency.ts"],"names":[],"mappings":";;AAAA;;;EAGE;AACF,0FAAqF;AAErF,MAAM,gBAAgB,GAAG,OAAO,CAC9B,IAAA,6CAAoB,EAAC,mCAAmC,CAAC,CACJ,CAAC;AACxD,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAC9B,IAAA,6CAAoB,EAAC,SAAS,CAAC,CACJ,CAAC;AAE9B,MAAM,sBAAuB,SAAQ,YAAY,CAAC,gBAAgB;IAChE;;OAEG;IACH,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED,IAAa,IAAI;QACf,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,IAAa,QAAQ;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,gBAAgB,CACd,sBAAsB,EACtB,+CAA+C,CAChD,CAAC;AAEF,kBAAe,sBAAsB,CAAC"}
@@ -1,7 +1,6 @@
1
+ import type { ChunkGraph, Chunk } from 'webpack';
1
2
  import type { RequestShortener, LibIdentOptions, CodeGenerationContext, CodeGenerationResult, NeedBuildContext, WebpackError, ResolverWithOptions, InputFileSystem, Compilation, WebpackOptions, ObjectDeserializerContext, ObjectSerializerContext } from 'webpack/lib/Module';
2
- import Module from 'webpack/lib/Module';
3
- import type ChunkGraph from 'webpack/lib/ChunkGraph';
4
- import Chunk from 'webpack/lib/Chunk';
3
+ declare const Module: typeof import("webpack").Module;
5
4
  declare class FallbackModule extends Module {
6
5
  private requests;
7
6
  private _identifier;
@@ -0,0 +1,152 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra and 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 FallbackItemDependency_1 = __importDefault(require("./FallbackItemDependency"));
12
+ const { sources: webpackSources } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
13
+ const { Template, Module, RuntimeGlobals } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
14
+ const makeSerializable = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/makeSerializable'));
15
+ const { WEBPACK_MODULE_TYPE_FALLBACK } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/ModuleTypeConstants'));
16
+ const TYPES = new Set(['javascript']);
17
+ const RUNTIME_REQUIREMENTS = new Set([RuntimeGlobals.module]);
18
+ class FallbackModule extends Module {
19
+ /**
20
+ * @param {string[]} requests list of requests to choose one
21
+ */
22
+ constructor(requests) {
23
+ super(WEBPACK_MODULE_TYPE_FALLBACK);
24
+ this.requests = requests;
25
+ this._identifier = `fallback ${this.requests.join(' ')}`;
26
+ }
27
+ /**
28
+ * @returns {string} a unique identifier of the module
29
+ */
30
+ identifier() {
31
+ return this._identifier;
32
+ }
33
+ /**
34
+ * @param {RequestShortener} requestShortener the request shortener
35
+ * @returns {string} a user readable identifier of the module
36
+ */
37
+ readableIdentifier(requestShortener) {
38
+ return this._identifier;
39
+ }
40
+ /**
41
+ * @param {LibIdentOptions} options options
42
+ * @returns {string | null} an identifier for library inclusion
43
+ */
44
+ libIdent(options) {
45
+ return `${this.layer ? `(${this.layer})/` : ''}webpack/container/fallback/${this.requests[0]}/and ${this.requests.length - 1} more`;
46
+ }
47
+ /**
48
+ * @param {Chunk} chunk the chunk which condition should be checked
49
+ * @param {Compilation} compilation the compilation
50
+ * @returns {boolean} true, if the chunk is ok for the module
51
+ */
52
+ chunkCondition(chunk, { chunkGraph }) {
53
+ return chunkGraph.getNumberOfEntryModules(chunk) > 0;
54
+ }
55
+ /**
56
+ * @param {NeedBuildContext} context context info
57
+ * @param {function((WebpackError | null)=, boolean=): void} callback callback function, returns true, if the module needs a rebuild
58
+ * @returns {void}
59
+ */
60
+ // @ts-ignore
61
+ needBuild(context, callback) {
62
+ callback(null, !this.buildInfo);
63
+ }
64
+ /**
65
+ * @param {WebpackOptions} options webpack options
66
+ * @param {Compilation} compilation the compilation
67
+ * @param {ResolverWithOptions} resolver the resolver
68
+ * @param {InputFileSystem} fs the file system
69
+ * @param {function(WebpackError=): void} callback callback function
70
+ * @returns {void}
71
+ */
72
+ // @ts-ignore
73
+ build(options, compilation, resolver, fs, callback) {
74
+ this.buildMeta = {};
75
+ this.buildInfo = {
76
+ strict: true,
77
+ };
78
+ this.clearDependenciesAndBlocks();
79
+ for (const request of this.requests)
80
+ this.addDependency(new FallbackItemDependency_1.default(request));
81
+ callback();
82
+ }
83
+ /**
84
+ * @param {string=} type the source type for which the size should be estimated
85
+ * @returns {number} the estimated size of the module (must be non-zero)
86
+ */
87
+ size(type) {
88
+ return this.requests.length * 5 + 42;
89
+ }
90
+ /**
91
+ * @returns {Set<string>} types available (do not mutate)
92
+ */
93
+ getSourceTypes() {
94
+ return TYPES;
95
+ }
96
+ /**
97
+ * @param {CodeGenerationContext} context context for code generation
98
+ * @returns {CodeGenerationResult} result
99
+ */
100
+ // @ts-ignore
101
+ codeGeneration({ runtimeTemplate, moduleGraph, chunkGraph, }) {
102
+ const ids = this.dependencies.map((dep) =>
103
+ //@ts-ignore
104
+ chunkGraph.getModuleId(moduleGraph.getModule(dep)));
105
+ const code = Template.asString([
106
+ `var ids = ${JSON.stringify(ids)};`,
107
+ 'var error, result, i = 0;',
108
+ `var loop = ${runtimeTemplate.basicFunction('next', [
109
+ 'while(i < ids.length) {',
110
+ Template.indent([
111
+ `try { next = ${RuntimeGlobals.require}(ids[i++]); } catch(e) { return handleError(e); }`,
112
+ 'if(next) return next.then ? next.then(handleResult, handleError) : handleResult(next);',
113
+ ]),
114
+ '}',
115
+ 'if(error) throw error;',
116
+ ])}`,
117
+ `var handleResult = ${runtimeTemplate.basicFunction('result', [
118
+ 'if(result) return result;',
119
+ 'return loop();',
120
+ ])};`,
121
+ `var handleError = ${runtimeTemplate.basicFunction('e', [
122
+ 'error = e;',
123
+ 'return loop();',
124
+ ])};`,
125
+ 'module.exports = loop();',
126
+ ]);
127
+ const sources = new Map();
128
+ sources.set('javascript', new webpackSources.RawSource(code));
129
+ return { sources, runtimeRequirements: RUNTIME_REQUIREMENTS };
130
+ }
131
+ /**
132
+ * @param {ObjectSerializerContext} context context
133
+ */
134
+ serialize(context) {
135
+ const { write } = context;
136
+ write(this.requests);
137
+ super.serialize(context);
138
+ }
139
+ /**
140
+ * @param {ObjectDeserializerContext} context context
141
+ * @returns {FallbackModule} deserialized fallback module
142
+ */
143
+ static deserialize(context) {
144
+ const { read } = context;
145
+ const obj = new FallbackModule(read());
146
+ obj.deserialize(context);
147
+ return obj;
148
+ }
149
+ }
150
+ makeSerializable(FallbackModule, 'enhanced/lib/container/FallbackModule');
151
+ exports.default = FallbackModule;
152
+ //# sourceMappingURL=FallbackModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FallbackModule.js","sourceRoot":"","sources":["../../../../src/lib/container/FallbackModule.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { ModuleFactoryCreateData, ModuleFactoryResult } from 'webpack/lib/ModuleFactory';
2
- import ModuleFactory from 'webpack/lib/ModuleFactory';
1
+ import type { ModuleFactoryCreateData, ModuleFactoryResult } from 'webpack/lib/ModuleFactory';
2
+ declare const ModuleFactory: typeof import("webpack/lib/ModuleFactory");
3
3
  export default class FallbackModuleFactory extends ModuleFactory {
4
4
  /**
5
5
  * @param {ModuleFactoryCreateData} data data object
@@ -8,3 +8,4 @@ export default class FallbackModuleFactory extends ModuleFactory {
8
8
  */
9
9
  create(data: ModuleFactoryCreateData, callback: (error: Error | null, result?: ModuleFactoryResult) => void): void;
10
10
  }
11
+ export {};
@@ -0,0 +1,28 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra, Zackary Jackson @ScriptedAlchemy, Marais Rossouw @maraisr
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 FallbackModule_1 = __importDefault(require("./FallbackModule"));
12
+ const ModuleFactory = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/ModuleFactory'));
13
+ class FallbackModuleFactory extends ModuleFactory {
14
+ /**
15
+ * @param {ModuleFactoryCreateData} data data object
16
+ * @param {function((Error | null)=, ModuleFactoryResult=): void} callback callback
17
+ * @returns {void}
18
+ */
19
+ create(data, callback) {
20
+ const dependency = data.dependencies[0];
21
+ callback(null, {
22
+ // @ts-ignore
23
+ module: new FallbackModule_1.default(dependency.requests),
24
+ });
25
+ }
26
+ }
27
+ exports.default = FallbackModuleFactory;
28
+ //# sourceMappingURL=FallbackModuleFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FallbackModuleFactory.js","sourceRoot":"","sources":["../../../../src/lib/container/FallbackModuleFactory.ts"],"names":[],"mappings":"AAAA;;;EAGE;AAEF,YAAY,CAAC;;;;;AAKb,0FAAqF;AACrF,sEAA8C;AAE9C,MAAM,aAAa,GAAG,OAAO,CAC3B,IAAA,6CAAoB,EAAC,2BAA2B,CAAC,CACJ,CAAC;AAEhD,MAAqB,qBAAsB,SAAQ,aAAa;IAC9D;;;;OAIG;IACM,MAAM,CACb,IAA6B,EAC7B,QAAqE;QAErE,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACxC,QAAQ,CAAC,IAAI,EAAE;YACb,aAAa;YACb,MAAM,EAAE,IAAI,wBAAc,CAAC,UAAU,CAAC,QAAQ,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;CACF;AAhBD,wCAgBC"}
@@ -0,0 +1,13 @@
1
+ import type { Compiler, WebpackPluginInstance } from 'webpack';
2
+ /**
3
+ * This class is used to hoist container references in the code.
4
+ * @constructor
5
+ */
6
+ export declare class HoistContainerReferences implements WebpackPluginInstance {
7
+ /**
8
+ * @function apply
9
+ * @param {Compiler} compiler The webpack compiler object
10
+ */
11
+ apply(compiler: Compiler): void;
12
+ }
13
+ export default HoistContainerReferences;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HoistContainerReferences = void 0;
4
+ /**
5
+ * This class is used to hoist container references in the code.
6
+ * @constructor
7
+ */
8
+ class HoistContainerReferences {
9
+ /**
10
+ * @function apply
11
+ * @param {Compiler} compiler The webpack compiler object
12
+ */
13
+ apply(compiler) {
14
+ // Hook into the compilation process
15
+ compiler.hooks.thisCompilation.tap('HoistContainerReferences', (compilation) => {
16
+ // After chunks are optimized, perform the hoisting
17
+ compilation.hooks.afterOptimizeChunks.tap('HoistContainerReferences', (chunks, chunkGroups) => {
18
+ // Create a map to store chunks by their id or name
19
+ /** @type {Map<(string|number), Chunk>} */
20
+ const chunkSet = new Map();
21
+ // Create a set to store external module requests
22
+ /** @type {Set<Module>} */
23
+ const externalRequests = new Set();
24
+ // Populate the chunkSet with chunks
25
+ for (const chunk of chunks) {
26
+ const ident = chunk.id || chunk.name;
27
+ if (ident) {
28
+ chunkSet.set(ident, chunk);
29
+ }
30
+ }
31
+ // Iterate over chunks again to handle remote modules
32
+ for (const chunk of chunks) {
33
+ // Get iterable of remote modules for the chunk
34
+ const remoteModules = compilation.chunkGraph.getChunkModulesIterableBySourceType(chunk, 'remote');
35
+ if (!remoteModules)
36
+ continue;
37
+ // Iterate over remote modules
38
+ for (const remoteModule of remoteModules) {
39
+ // Iterate over dependencies of the remote module
40
+ for (const dep of remoteModule.dependencies) {
41
+ // Get the module associated with the dependency
42
+ const mod = compilation.moduleGraph.getModule(dep);
43
+ // If the module exists and the chunk has a runtime, add the module to externalRequests
44
+ if (mod !== null && chunk.runtime) {
45
+ externalRequests.add(mod);
46
+ // Get the runtime chunk(s) associated with the chunk
47
+ const runtimeChunk = typeof chunk.runtime === 'string' ||
48
+ typeof chunk.runtime === 'number'
49
+ ? [chunk.runtime]
50
+ : [...chunk.runtime];
51
+ // Iterate over runtime chunks
52
+ for (const runtimeChunkId of runtimeChunk) {
53
+ // Get the runtime chunk from the chunkSet
54
+ const runtimeChunk = chunkSet.get(runtimeChunkId);
55
+ // If the runtime chunk exists, connect it with the module in the chunk graph
56
+ if (runtimeChunk) {
57
+ compilation.chunkGraph.connectChunkAndModule(runtimeChunk, mod);
58
+ }
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }
64
+ });
65
+ });
66
+ }
67
+ }
68
+ exports.HoistContainerReferences = HoistContainerReferences;
69
+ exports.default = HoistContainerReferences;
70
+ //# sourceMappingURL=HoistContainerReferencesPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HoistContainerReferencesPlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/HoistContainerReferencesPlugin.ts"],"names":[],"mappings":";;;AASA;;;GAGG;AACH,MAAa,wBAAwB;IACnC;;;OAGG;IACH,KAAK,CAAC,QAAkB;QACtB,oCAAoC;QACpC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAChC,0BAA0B,EAC1B,CAAC,WAAwB,EAAE,EAAE;YAC3B,mDAAmD;YACnD,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CACvC,0BAA0B,EAC1B,CAAC,MAAuB,EAAE,WAAyB,EAAE,EAAE;gBACrD,mDAAmD;gBACnD,0CAA0C;gBAC1C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;gBACnD,iDAAiD;gBACjD,0BAA0B;gBAC1B,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;gBAC3C,oCAAoC;gBACpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC;oBACrC,IAAI,KAAK,EAAE,CAAC;wBACV,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBACD,qDAAqD;gBACrD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,+CAA+C;oBAC/C,MAAM,aAAa,GACjB,WAAW,CAAC,UAAU,CAAC,mCAAmC,CACxD,KAAK,EACL,QAAQ,CACT,CAAC;oBACJ,IAAI,CAAC,aAAa;wBAAE,SAAS;oBAC7B,8BAA8B;oBAC9B,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;wBACzC,iDAAiD;wBACjD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;4BAC5C,gDAAgD;4BAChD,MAAM,GAAG,GAAG,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BACnD,uFAAuF;4BACvF,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gCAClC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gCAC1B,qDAAqD;gCACrD,MAAM,YAAY,GAChB,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;oCACjC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;oCAC/B,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;oCACjB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;gCACzB,8BAA8B;gCAC9B,KAAK,MAAM,cAAc,IAAI,YAAY,EAAE,CAAC;oCAC1C,0CAA0C;oCAC1C,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oCAClD,6EAA6E;oCAC7E,IAAI,YAAY,EAAE,CAAC;wCACjB,WAAW,CAAC,UAAU,CAAC,qBAAqB,CAC1C,YAAY,EACZ,GAAG,CACJ,CAAC;oCACJ,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;CACF;AAxED,4DAwEC;AACD,kBAAe,wBAAwB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type Compiler from 'webpack/lib/Compiler';
1
+ import type { Compiler } from 'webpack';
2
2
  import type { ModuleFederationPluginOptions } from './ModuleFederationPluginTypes';
3
3
  declare class ModuleFederationPlugin {
4
4
  private _options;