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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/README.md +1 -1
  2. package/dist/_virtual/_rolldown/runtime.cjs +19 -0
  3. package/dist/_virtual/_rolldown/runtime.js +18 -0
  4. package/dist/constant.cjs +9 -0
  5. package/dist/constant.cjs.map +1 -0
  6. package/dist/constant.js +7 -0
  7. package/dist/constant.js.map +1 -0
  8. package/dist/core.cjs +150 -0
  9. package/dist/core.cjs.map +1 -0
  10. package/dist/core.d.ts +199 -0
  11. package/dist/core.js +150 -0
  12. package/dist/core.js.map +1 -0
  13. package/dist/global.cjs +175 -0
  14. package/dist/global.cjs.map +1 -0
  15. package/dist/global.d.ts +46 -0
  16. package/dist/global.js +155 -0
  17. package/dist/global.js.map +1 -0
  18. package/dist/helpers.cjs +44 -0
  19. package/dist/helpers.cjs.map +1 -0
  20. package/dist/helpers.d.ts +30 -0
  21. package/dist/helpers.js +44 -0
  22. package/dist/helpers.js.map +1 -0
  23. package/dist/index.cjs +62 -0
  24. package/dist/index.cjs.map +1 -0
  25. package/dist/index.d.ts +30 -1
  26. package/dist/index.js +22 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/module/index.cjs +268 -0
  29. package/dist/module/index.cjs.map +1 -0
  30. package/dist/module/index.d.ts +33 -0
  31. package/dist/module/index.js +268 -0
  32. package/dist/module/index.js.map +1 -0
  33. package/dist/plugins/generate-preload-assets.cjs +182 -0
  34. package/dist/plugins/generate-preload-assets.cjs.map +1 -0
  35. package/dist/plugins/generate-preload-assets.js +182 -0
  36. package/dist/plugins/generate-preload-assets.js.map +1 -0
  37. package/dist/plugins/snapshot/SnapshotHandler.cjs +258 -0
  38. package/dist/plugins/snapshot/SnapshotHandler.cjs.map +1 -0
  39. package/dist/plugins/snapshot/SnapshotHandler.d.ts +92 -0
  40. package/dist/plugins/snapshot/SnapshotHandler.js +257 -0
  41. package/dist/plugins/snapshot/SnapshotHandler.js.map +1 -0
  42. package/dist/plugins/snapshot/disabled.cjs +13 -0
  43. package/dist/plugins/snapshot/disabled.cjs.map +1 -0
  44. package/dist/plugins/snapshot/disabled.js +13 -0
  45. package/dist/plugins/snapshot/disabled.js.map +1 -0
  46. package/dist/plugins/snapshot/index.cjs +77 -0
  47. package/dist/plugins/snapshot/index.cjs.map +1 -0
  48. package/dist/plugins/snapshot/index.js +76 -0
  49. package/dist/plugins/snapshot/index.js.map +1 -0
  50. package/dist/remote/disabled.cjs +38 -0
  51. package/dist/remote/disabled.cjs.map +1 -0
  52. package/dist/remote/disabled.js +37 -0
  53. package/dist/remote/disabled.js.map +1 -0
  54. package/dist/remote/index.cjs +458 -0
  55. package/dist/remote/index.cjs.map +1 -0
  56. package/dist/remote/index.d.ts +147 -0
  57. package/dist/remote/index.js +458 -0
  58. package/dist/remote/index.js.map +1 -0
  59. package/dist/shared/disabled.cjs +33 -0
  60. package/dist/shared/disabled.cjs.map +1 -0
  61. package/dist/shared/disabled.js +33 -0
  62. package/dist/shared/disabled.js.map +1 -0
  63. package/dist/shared/index.cjs +477 -0
  64. package/dist/shared/index.cjs.map +1 -0
  65. package/dist/shared/index.d.ts +113 -0
  66. package/dist/shared/index.js +477 -0
  67. package/dist/shared/index.js.map +1 -0
  68. package/dist/type/config.d.ts +138 -0
  69. package/dist/type/index.cjs +13 -0
  70. package/dist/type/index.cjs.map +1 -0
  71. package/dist/type/index.d.ts +11 -0
  72. package/dist/type/index.js +8 -0
  73. package/dist/type/index.js.map +1 -0
  74. package/dist/type/plugin.d.ts +28 -0
  75. package/dist/type/preload.d.ts +60 -0
  76. package/dist/types.cjs +0 -0
  77. package/dist/types.d.ts +4 -1
  78. package/dist/types.js +1 -0
  79. package/dist/utils/context.cjs +45 -0
  80. package/dist/utils/context.cjs.map +1 -0
  81. package/dist/utils/context.d.ts +1 -0
  82. package/dist/utils/context.js +44 -0
  83. package/dist/utils/context.js.map +1 -0
  84. package/dist/utils/env.cjs +10 -0
  85. package/dist/utils/env.cjs.map +1 -0
  86. package/dist/utils/env.d.ts +1 -0
  87. package/dist/utils/env.js +10 -0
  88. package/dist/utils/env.js.map +1 -0
  89. package/dist/utils/hooks/asyncHook.cjs +26 -0
  90. package/dist/utils/hooks/asyncHook.cjs.map +1 -0
  91. package/dist/utils/hooks/asyncHook.d.ts +10 -0
  92. package/dist/utils/hooks/asyncHook.js +26 -0
  93. package/dist/utils/hooks/asyncHook.js.map +1 -0
  94. package/dist/utils/hooks/asyncWaterfallHooks.cjs +44 -0
  95. package/dist/utils/hooks/asyncWaterfallHooks.cjs.map +1 -0
  96. package/dist/utils/hooks/asyncWaterfallHooks.d.ts +12 -0
  97. package/dist/utils/hooks/asyncWaterfallHooks.js +44 -0
  98. package/dist/utils/hooks/asyncWaterfallHooks.js.map +1 -0
  99. package/dist/utils/hooks/index.cjs +5 -0
  100. package/dist/utils/hooks/index.js +7 -0
  101. package/dist/utils/hooks/pluginSystem.cjs +38 -0
  102. package/dist/utils/hooks/pluginSystem.cjs.map +1 -0
  103. package/dist/utils/hooks/pluginSystem.d.ts +16 -0
  104. package/dist/utils/hooks/pluginSystem.js +38 -0
  105. package/dist/utils/hooks/pluginSystem.js.map +1 -0
  106. package/dist/utils/hooks/syncHook.cjs +37 -0
  107. package/dist/utils/hooks/syncHook.cjs.map +1 -0
  108. package/dist/utils/hooks/syncHook.d.ts +16 -0
  109. package/dist/utils/hooks/syncHook.js +36 -0
  110. package/dist/utils/hooks/syncHook.js.map +1 -0
  111. package/dist/utils/hooks/syncWaterfallHook.cjs +40 -0
  112. package/dist/utils/hooks/syncWaterfallHook.cjs.map +1 -0
  113. package/dist/utils/hooks/syncWaterfallHook.d.ts +11 -0
  114. package/dist/utils/hooks/syncWaterfallHook.js +39 -0
  115. package/dist/utils/hooks/syncWaterfallHook.js.map +1 -0
  116. package/dist/utils/index.cjs +8 -0
  117. package/dist/utils/index.d.ts +4 -0
  118. package/dist/utils/index.js +9 -0
  119. package/dist/utils/load.cjs +280 -0
  120. package/dist/utils/load.cjs.map +1 -0
  121. package/dist/utils/load.d.ts +16 -0
  122. package/dist/utils/load.js +277 -0
  123. package/dist/utils/load.js.map +1 -0
  124. package/dist/utils/logger.cjs +34 -0
  125. package/dist/utils/logger.cjs.map +1 -0
  126. package/dist/utils/logger.d.ts +10 -0
  127. package/dist/utils/logger.js +31 -0
  128. package/dist/utils/logger.js.map +1 -0
  129. package/dist/utils/manifest.cjs +56 -0
  130. package/dist/utils/manifest.cjs.map +1 -0
  131. package/dist/utils/manifest.d.ts +10 -0
  132. package/dist/utils/manifest.js +53 -0
  133. package/dist/utils/manifest.js.map +1 -0
  134. package/dist/utils/plugin.cjs +50 -0
  135. package/dist/utils/plugin.cjs.map +1 -0
  136. package/dist/utils/plugin.d.ts +1 -0
  137. package/dist/utils/plugin.js +50 -0
  138. package/dist/utils/plugin.js.map +1 -0
  139. package/dist/utils/preload.cjs +221 -0
  140. package/dist/utils/preload.cjs.map +1 -0
  141. package/dist/utils/preload.d.ts +8 -0
  142. package/dist/utils/preload.js +218 -0
  143. package/dist/utils/preload.js.map +1 -0
  144. package/dist/utils/semver/compare.cjs +48 -0
  145. package/dist/utils/semver/compare.cjs.map +1 -0
  146. package/dist/utils/semver/compare.js +47 -0
  147. package/dist/utils/semver/compare.js.map +1 -0
  148. package/dist/utils/semver/constants.cjs +41 -0
  149. package/dist/utils/semver/constants.cjs.map +1 -0
  150. package/dist/utils/semver/constants.js +31 -0
  151. package/dist/utils/semver/constants.js.map +1 -0
  152. package/dist/utils/semver/index.cjs +68 -0
  153. package/dist/utils/semver/index.cjs.map +1 -0
  154. package/dist/utils/semver/index.d.ts +5 -0
  155. package/dist/utils/semver/index.js +68 -0
  156. package/dist/utils/semver/index.js.map +1 -0
  157. package/dist/utils/semver/parser.cjs +104 -0
  158. package/dist/utils/semver/parser.cjs.map +1 -0
  159. package/dist/utils/semver/parser.js +96 -0
  160. package/dist/utils/semver/parser.js.map +1 -0
  161. package/dist/utils/semver/utils.cjs +28 -0
  162. package/dist/utils/semver/utils.cjs.map +1 -0
  163. package/dist/utils/semver/utils.js +24 -0
  164. package/dist/utils/semver/utils.js.map +1 -0
  165. package/dist/utils/share.cjs +285 -0
  166. package/dist/utils/share.cjs.map +1 -0
  167. package/dist/utils/share.d.ts +24 -0
  168. package/dist/utils/share.js +279 -0
  169. package/dist/utils/share.js.map +1 -0
  170. package/dist/utils/tool.cjs +82 -0
  171. package/dist/utils/tool.cjs.map +1 -0
  172. package/dist/utils/tool.d.ts +8 -0
  173. package/dist/utils/tool.js +71 -0
  174. package/dist/utils/tool.js.map +1 -0
  175. package/package.json +16 -9
  176. package/dist/index.cjs.cjs +0 -3226
  177. package/dist/index.cjs.cjs.map +0 -1
  178. package/dist/index.cjs.d.ts +0 -1
  179. package/dist/index.esm.js +0 -3202
  180. package/dist/index.esm.js.map +0 -1
  181. package/dist/src/constant.d.ts +0 -2
  182. package/dist/src/core.d.ts +0 -115
  183. package/dist/src/global.d.ts +0 -42
  184. package/dist/src/helpers.d.ts +0 -38
  185. package/dist/src/index.d.ts +0 -14
  186. package/dist/src/module/index.d.ts +0 -22
  187. package/dist/src/plugins/generate-preload-assets.d.ts +0 -8
  188. package/dist/src/plugins/snapshot/SnapshotHandler.d.ts +0 -60
  189. package/dist/src/plugins/snapshot/index.d.ts +0 -5
  190. package/dist/src/remote/index.d.ts +0 -109
  191. package/dist/src/shared/index.d.ts +0 -66
  192. package/dist/src/type/config.d.ts +0 -115
  193. package/dist/src/type/index.d.ts +0 -3
  194. package/dist/src/type/plugin.d.ts +0 -35
  195. package/dist/src/type/preload.d.ts +0 -26
  196. package/dist/src/types.d.ts +0 -1
  197. package/dist/src/utils/env.d.ts +0 -3
  198. package/dist/src/utils/hooks/asyncHook.d.ts +0 -6
  199. package/dist/src/utils/hooks/asyncWaterfallHooks.d.ts +0 -10
  200. package/dist/src/utils/hooks/index.d.ts +0 -6
  201. package/dist/src/utils/hooks/pluginSystem.d.ts +0 -16
  202. package/dist/src/utils/hooks/syncHook.d.ts +0 -12
  203. package/dist/src/utils/hooks/syncWaterfallHook.d.ts +0 -9
  204. package/dist/src/utils/index.d.ts +0 -6
  205. package/dist/src/utils/load.d.ts +0 -11
  206. package/dist/src/utils/logger.d.ts +0 -6
  207. package/dist/src/utils/manifest.d.ts +0 -7
  208. package/dist/src/utils/plugin.d.ts +0 -3
  209. package/dist/src/utils/preload.d.ts +0 -6
  210. package/dist/src/utils/semver/compare.d.ts +0 -9
  211. package/dist/src/utils/semver/constants.d.ts +0 -10
  212. package/dist/src/utils/semver/index.d.ts +0 -2
  213. package/dist/src/utils/semver/parser.d.ts +0 -9
  214. package/dist/src/utils/semver/utils.d.ts +0 -11
  215. package/dist/src/utils/share.d.ts +0 -27
  216. package/dist/src/utils/tool.d.ts +0 -18
  217. package/dist/types.cjs.cjs +0 -3
  218. package/dist/types.cjs.cjs.map +0 -1
  219. package/dist/types.cjs.d.ts +0 -1
  220. package/dist/types.esm.js +0 -2
  221. package/dist/types.esm.js.map +0 -1
@@ -0,0 +1,175 @@
1
+ const require_logger = require('./utils/logger.cjs');
2
+ const require_tool = require('./utils/tool.cjs');
3
+ let _module_federation_sdk = require("@module-federation/sdk");
4
+
5
+ //#region src/global.ts
6
+ const MAX_PRELOADED_ASSETS = 2e3;
7
+ const CurrentGlobal = typeof globalThis === "object" ? globalThis : window;
8
+ const nativeGlobal = (() => {
9
+ try {
10
+ return document.defaultView;
11
+ } catch {
12
+ return CurrentGlobal;
13
+ }
14
+ })();
15
+ const Global = nativeGlobal;
16
+ function definePropertyGlobalVal(target, key, val) {
17
+ Object.defineProperty(target, key, {
18
+ value: val,
19
+ configurable: false,
20
+ writable: true
21
+ });
22
+ }
23
+ function includeOwnProperty(target, key) {
24
+ return Object.hasOwnProperty.call(target, key);
25
+ }
26
+ if (!includeOwnProperty(CurrentGlobal, "__GLOBAL_LOADING_REMOTE_ENTRY__")) definePropertyGlobalVal(CurrentGlobal, "__GLOBAL_LOADING_REMOTE_ENTRY__", {});
27
+ const globalLoading = CurrentGlobal.__GLOBAL_LOADING_REMOTE_ENTRY__;
28
+ function setGlobalDefaultVal(target) {
29
+ if (includeOwnProperty(target, "__VMOK__") && !includeOwnProperty(target, "__FEDERATION__")) definePropertyGlobalVal(target, "__FEDERATION__", target.__VMOK__);
30
+ if (!includeOwnProperty(target, "__FEDERATION__")) {
31
+ definePropertyGlobalVal(target, "__FEDERATION__", {
32
+ __GLOBAL_PLUGIN__: [],
33
+ __INSTANCES__: [],
34
+ moduleInfo: {},
35
+ __SHARE__: {},
36
+ __MANIFEST_LOADING__: {},
37
+ __PRELOADED_MAP__: /* @__PURE__ */ new Map(),
38
+ __PRELOADED_ASSETS__: /* @__PURE__ */ new Set()
39
+ });
40
+ definePropertyGlobalVal(target, "__VMOK__", target.__FEDERATION__);
41
+ }
42
+ target.__FEDERATION__.__GLOBAL_PLUGIN__ ??= [];
43
+ target.__FEDERATION__.__INSTANCES__ ??= [];
44
+ target.__FEDERATION__.moduleInfo ??= {};
45
+ target.__FEDERATION__.__SHARE__ ??= {};
46
+ target.__FEDERATION__.__MANIFEST_LOADING__ ??= {};
47
+ target.__FEDERATION__.__PRELOADED_MAP__ ??= /* @__PURE__ */ new Map();
48
+ target.__FEDERATION__.__PRELOADED_ASSETS__ ??= /* @__PURE__ */ new Set();
49
+ }
50
+ setGlobalDefaultVal(CurrentGlobal);
51
+ setGlobalDefaultVal(nativeGlobal);
52
+ function resetFederationGlobalInfo() {
53
+ CurrentGlobal.__FEDERATION__.__GLOBAL_PLUGIN__ = [];
54
+ CurrentGlobal.__FEDERATION__.__INSTANCES__ = [];
55
+ CurrentGlobal.__FEDERATION__.moduleInfo = {};
56
+ CurrentGlobal.__FEDERATION__.__SHARE__ = {};
57
+ CurrentGlobal.__FEDERATION__.__MANIFEST_LOADING__ = {};
58
+ CurrentGlobal.__FEDERATION__.__PRELOADED_ASSETS__.clear();
59
+ Object.keys(globalLoading).forEach((key) => {
60
+ delete globalLoading[key];
61
+ });
62
+ }
63
+ function setGlobalFederationInstance(FederationInstance) {
64
+ CurrentGlobal.__FEDERATION__.__INSTANCES__.push(FederationInstance);
65
+ }
66
+ function getGlobalFederationConstructor() {
67
+ return CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR__;
68
+ }
69
+ function setGlobalFederationConstructor(FederationConstructor, isDebug = (0, _module_federation_sdk.isDebugMode)()) {
70
+ if (isDebug) {
71
+ CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR__ = FederationConstructor;
72
+ CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = "0.0.0-perf-website-code-usage-20260914033703";
73
+ }
74
+ }
75
+ function getInfoWithoutType(target, key) {
76
+ if (typeof key === "string") if (target[key]) return {
77
+ value: target[key],
78
+ key
79
+ };
80
+ else {
81
+ const targetKeys = Object.keys(target);
82
+ for (const targetKey of targetKeys) {
83
+ const [targetTypeOrName, _] = targetKey.split(":");
84
+ const nKey = `${targetTypeOrName}:${key}`;
85
+ const typeWithKeyRes = target[nKey];
86
+ if (typeWithKeyRes) return {
87
+ value: typeWithKeyRes,
88
+ key: nKey
89
+ };
90
+ }
91
+ return {
92
+ value: void 0,
93
+ key
94
+ };
95
+ }
96
+ else require_logger.error(`getInfoWithoutType: "key" must be a string, got ${typeof key} (${JSON.stringify(key)}).`);
97
+ }
98
+ const getGlobalSnapshot = () => nativeGlobal.__FEDERATION__.moduleInfo;
99
+ const getTargetSnapshotInfoByModuleInfo = (moduleInfo, snapshot) => {
100
+ const getModuleInfo = getInfoWithoutType(snapshot, require_tool.getFMId(moduleInfo)).value;
101
+ if (getModuleInfo && !getModuleInfo.version && "version" in moduleInfo && moduleInfo["version"]) getModuleInfo.version = moduleInfo["version"];
102
+ if (getModuleInfo) return getModuleInfo;
103
+ if ("version" in moduleInfo && moduleInfo["version"]) {
104
+ const { version, ...resModuleInfo } = moduleInfo;
105
+ const moduleKeyWithoutVersion = require_tool.getFMId(resModuleInfo);
106
+ const getModuleInfoWithoutVersion = getInfoWithoutType(nativeGlobal.__FEDERATION__.moduleInfo, moduleKeyWithoutVersion).value;
107
+ if (getModuleInfoWithoutVersion?.version === version) return getModuleInfoWithoutVersion;
108
+ }
109
+ };
110
+ const getGlobalSnapshotInfoByModuleInfo = (moduleInfo) => getTargetSnapshotInfoByModuleInfo(moduleInfo, nativeGlobal.__FEDERATION__.moduleInfo);
111
+ const setGlobalSnapshotInfoByModuleInfo = (remoteInfo, moduleDetailInfo) => {
112
+ const moduleKey = require_tool.getFMId(remoteInfo);
113
+ nativeGlobal.__FEDERATION__.moduleInfo[moduleKey] = moduleDetailInfo;
114
+ return nativeGlobal.__FEDERATION__.moduleInfo;
115
+ };
116
+ const addGlobalSnapshot = (moduleInfos) => {
117
+ nativeGlobal.__FEDERATION__.moduleInfo = {
118
+ ...nativeGlobal.__FEDERATION__.moduleInfo,
119
+ ...moduleInfos
120
+ };
121
+ return () => {
122
+ const keys = Object.keys(moduleInfos);
123
+ for (const key of keys) delete nativeGlobal.__FEDERATION__.moduleInfo[key];
124
+ };
125
+ };
126
+ const getRemoteEntryExports = (name, globalName) => {
127
+ const remoteEntryKey = globalName || `__FEDERATION_${name}:custom__`;
128
+ return {
129
+ remoteEntryKey,
130
+ entryExports: CurrentGlobal[remoteEntryKey]
131
+ };
132
+ };
133
+ const registerGlobalPlugins = (plugins) => {
134
+ const { __GLOBAL_PLUGIN__ } = nativeGlobal.__FEDERATION__;
135
+ plugins.forEach((plugin) => {
136
+ if (__GLOBAL_PLUGIN__.findIndex((p) => p.name === plugin.name) === -1) __GLOBAL_PLUGIN__.push(plugin);
137
+ else require_logger.warn(`The plugin ${plugin.name} has been registered.`);
138
+ });
139
+ };
140
+ const getGlobalHostPlugins = () => nativeGlobal.__FEDERATION__.__GLOBAL_PLUGIN__;
141
+ const getPreloaded = (id) => CurrentGlobal.__FEDERATION__.__PRELOADED_MAP__.get(id);
142
+ const setPreloaded = (id) => CurrentGlobal.__FEDERATION__.__PRELOADED_MAP__.set(id, true);
143
+ const getPreloadedAsset = (url) => CurrentGlobal.__FEDERATION__.__PRELOADED_ASSETS__.has(url);
144
+ const setPreloadedAsset = (url) => {
145
+ const preloadedAssets = CurrentGlobal.__FEDERATION__.__PRELOADED_ASSETS__;
146
+ preloadedAssets.add(url);
147
+ if (preloadedAssets.size > MAX_PRELOADED_ASSETS) {
148
+ const oldestUrl = preloadedAssets.values().next().value;
149
+ if (oldestUrl !== void 0) preloadedAssets.delete(oldestUrl);
150
+ }
151
+ };
152
+
153
+ //#endregion
154
+ exports.CurrentGlobal = CurrentGlobal;
155
+ exports.Global = Global;
156
+ exports.addGlobalSnapshot = addGlobalSnapshot;
157
+ exports.getGlobalFederationConstructor = getGlobalFederationConstructor;
158
+ exports.getGlobalHostPlugins = getGlobalHostPlugins;
159
+ exports.getGlobalSnapshot = getGlobalSnapshot;
160
+ exports.getGlobalSnapshotInfoByModuleInfo = getGlobalSnapshotInfoByModuleInfo;
161
+ exports.getInfoWithoutType = getInfoWithoutType;
162
+ exports.getPreloaded = getPreloaded;
163
+ exports.getPreloadedAsset = getPreloadedAsset;
164
+ exports.getRemoteEntryExports = getRemoteEntryExports;
165
+ exports.getTargetSnapshotInfoByModuleInfo = getTargetSnapshotInfoByModuleInfo;
166
+ exports.globalLoading = globalLoading;
167
+ exports.nativeGlobal = nativeGlobal;
168
+ exports.registerGlobalPlugins = registerGlobalPlugins;
169
+ exports.resetFederationGlobalInfo = resetFederationGlobalInfo;
170
+ exports.setGlobalFederationConstructor = setGlobalFederationConstructor;
171
+ exports.setGlobalFederationInstance = setGlobalFederationInstance;
172
+ exports.setGlobalSnapshotInfoByModuleInfo = setGlobalSnapshotInfoByModuleInfo;
173
+ exports.setPreloaded = setPreloaded;
174
+ exports.setPreloadedAsset = setPreloadedAsset;
175
+ //# sourceMappingURL=global.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.cjs","names":["getFMId"],"sources":["../src/global.ts"],"sourcesContent":["import { ModuleFederation } from './core';\nimport {\n RemoteEntryExports,\n GlobalShareScopeMap,\n Remote,\n Optional,\n} from './type';\nimport { getFMId } from './utils/tool';\nimport {\n GlobalModuleInfo,\n ModuleInfo,\n isDebugMode,\n} from '@module-federation/sdk';\nimport { warn, error } from './utils/logger';\nimport { ModuleFederationRuntimePlugin } from './type/plugin';\n\nexport interface Federation {\n __GLOBAL_PLUGIN__: Array<ModuleFederationRuntimePlugin>;\n __DEBUG_CONSTRUCTOR_VERSION__?: string;\n moduleInfo: GlobalModuleInfo;\n __DEBUG_CONSTRUCTOR__?: typeof ModuleFederation;\n __INSTANCES__: Array<ModuleFederation>;\n __SHARE__: GlobalShareScopeMap;\n __MANIFEST_LOADING__: Record<string, Promise<ModuleInfo>>;\n __PRELOADED_MAP__: Map<string, boolean>;\n __PRELOADED_ASSETS__: Set<string>;\n}\n\nconst MAX_PRELOADED_ASSETS = 2000;\nexport const CurrentGlobal =\n typeof globalThis === 'object' ? globalThis : window;\nexport const nativeGlobal: typeof global = (() => {\n try {\n // get real window (incase of sandbox)\n return document.defaultView;\n } catch {\n // node env\n return CurrentGlobal;\n }\n})() as typeof global;\n\nexport const Global = nativeGlobal;\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __FEDERATION__: Federation,\n __VMOK__: Federation,\n // eslint-disable-next-line no-var\n __GLOBAL_LOADING_REMOTE_ENTRY__: Record<\n string,\n undefined | Promise<RemoteEntryExports | void>\n >;\n}\n\nfunction definePropertyGlobalVal(\n target: typeof CurrentGlobal,\n key: string,\n val: any,\n) {\n Object.defineProperty(target, key, {\n value: val,\n configurable: false,\n writable: true,\n });\n}\n\nfunction includeOwnProperty(target: typeof CurrentGlobal, key: string) {\n return Object.hasOwnProperty.call(target, key);\n}\n\n// This section is to prevent encapsulation by certain microfrontend frameworks. Due to reuse policies, sandbox escapes.\n// The sandbox in the microfrontend does not replicate the value of 'configurable'.\n// If there is no loading content on the global object, this section defines the loading object.\nif (!includeOwnProperty(CurrentGlobal, '__GLOBAL_LOADING_REMOTE_ENTRY__')) {\n definePropertyGlobalVal(CurrentGlobal, '__GLOBAL_LOADING_REMOTE_ENTRY__', {});\n}\n\nexport const globalLoading = CurrentGlobal.__GLOBAL_LOADING_REMOTE_ENTRY__;\n\nfunction setGlobalDefaultVal(target: typeof CurrentGlobal) {\n if (\n includeOwnProperty(target, '__VMOK__') &&\n !includeOwnProperty(target, '__FEDERATION__')\n ) {\n definePropertyGlobalVal(target, '__FEDERATION__', target.__VMOK__);\n }\n\n if (!includeOwnProperty(target, '__FEDERATION__')) {\n definePropertyGlobalVal(target, '__FEDERATION__', {\n __GLOBAL_PLUGIN__: [],\n __INSTANCES__: [],\n moduleInfo: {},\n __SHARE__: {},\n __MANIFEST_LOADING__: {},\n __PRELOADED_MAP__: new Map(),\n __PRELOADED_ASSETS__: new Set(),\n });\n\n definePropertyGlobalVal(target, '__VMOK__', target.__FEDERATION__);\n }\n\n target.__FEDERATION__.__GLOBAL_PLUGIN__ ??= [];\n target.__FEDERATION__.__INSTANCES__ ??= [];\n target.__FEDERATION__.moduleInfo ??= {};\n target.__FEDERATION__.__SHARE__ ??= {};\n target.__FEDERATION__.__MANIFEST_LOADING__ ??= {};\n target.__FEDERATION__.__PRELOADED_MAP__ ??= new Map();\n target.__FEDERATION__.__PRELOADED_ASSETS__ ??= new Set();\n}\n\nsetGlobalDefaultVal(CurrentGlobal);\nsetGlobalDefaultVal(nativeGlobal);\n\nexport function resetFederationGlobalInfo(): void {\n CurrentGlobal.__FEDERATION__.__GLOBAL_PLUGIN__ = [];\n CurrentGlobal.__FEDERATION__.__INSTANCES__ = [];\n CurrentGlobal.__FEDERATION__.moduleInfo = {};\n CurrentGlobal.__FEDERATION__.__SHARE__ = {};\n CurrentGlobal.__FEDERATION__.__MANIFEST_LOADING__ = {};\n CurrentGlobal.__FEDERATION__.__PRELOADED_ASSETS__.clear();\n\n Object.keys(globalLoading).forEach((key) => {\n delete globalLoading[key];\n });\n}\n\nexport function setGlobalFederationInstance(\n FederationInstance: ModuleFederation,\n): void {\n CurrentGlobal.__FEDERATION__.__INSTANCES__.push(FederationInstance);\n}\n\nexport function getGlobalFederationConstructor():\n | typeof ModuleFederation\n | undefined {\n return CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR__;\n}\n\nexport function setGlobalFederationConstructor(\n FederationConstructor: typeof ModuleFederation | undefined,\n isDebug = isDebugMode(),\n): void {\n if (isDebug) {\n CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR__ = FederationConstructor;\n CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = __VERSION__;\n }\n}\n\nexport function getInfoWithoutType<T extends object>(\n target: T,\n key: keyof T,\n): { value: T[keyof T] | undefined; key: string } {\n if (typeof key === 'string') {\n const keyRes = target[key];\n if (keyRes) {\n return {\n value: target[key],\n key: key as string,\n };\n } else {\n const targetKeys = Object.keys(target);\n for (const targetKey of targetKeys) {\n const [targetTypeOrName, _] = targetKey.split(':');\n const nKey = `${targetTypeOrName}:${key}` as unknown as keyof T;\n const typeWithKeyRes = target[nKey];\n if (typeWithKeyRes) {\n return {\n value: typeWithKeyRes,\n key: nKey as string,\n };\n }\n }\n return {\n value: undefined,\n key: key as string,\n };\n }\n } else {\n error(\n `getInfoWithoutType: \"key\" must be a string, got ${typeof key} (${JSON.stringify(key)}).`,\n );\n }\n}\n\nexport const getGlobalSnapshot = (): GlobalModuleInfo =>\n nativeGlobal.__FEDERATION__.moduleInfo;\n\nexport const getTargetSnapshotInfoByModuleInfo = (\n moduleInfo: Optional<Remote, 'alias'>,\n snapshot: GlobalModuleInfo,\n): GlobalModuleInfo[string] | undefined => {\n // Check if the remote is included in the hostSnapshot\n const moduleKey = getFMId(moduleInfo);\n const getModuleInfo = getInfoWithoutType(snapshot, moduleKey).value;\n\n // The remoteSnapshot might not include a version\n if (\n getModuleInfo &&\n !getModuleInfo.version &&\n 'version' in moduleInfo &&\n moduleInfo['version']\n ) {\n getModuleInfo.version = moduleInfo['version'];\n }\n\n if (getModuleInfo) {\n return getModuleInfo;\n }\n\n // If the remote is not included in the hostSnapshot, deploy a micro app snapshot\n if ('version' in moduleInfo && moduleInfo['version']) {\n const { version, ...resModuleInfo } = moduleInfo;\n const moduleKeyWithoutVersion = getFMId(resModuleInfo);\n const getModuleInfoWithoutVersion = getInfoWithoutType(\n nativeGlobal.__FEDERATION__.moduleInfo,\n moduleKeyWithoutVersion,\n ).value;\n\n if (getModuleInfoWithoutVersion?.version === version) {\n return getModuleInfoWithoutVersion;\n }\n }\n\n return;\n};\n\nexport const getGlobalSnapshotInfoByModuleInfo = (\n moduleInfo: Optional<Remote, 'alias'>,\n): GlobalModuleInfo[string] | undefined =>\n getTargetSnapshotInfoByModuleInfo(\n moduleInfo,\n nativeGlobal.__FEDERATION__.moduleInfo,\n );\n\nexport const setGlobalSnapshotInfoByModuleInfo = (\n remoteInfo: Remote,\n moduleDetailInfo: GlobalModuleInfo[string],\n): GlobalModuleInfo => {\n const moduleKey = getFMId(remoteInfo);\n nativeGlobal.__FEDERATION__.moduleInfo[moduleKey] = moduleDetailInfo;\n return nativeGlobal.__FEDERATION__.moduleInfo;\n};\n\nexport const addGlobalSnapshot = (\n moduleInfos: GlobalModuleInfo,\n): (() => void) => {\n nativeGlobal.__FEDERATION__.moduleInfo = {\n ...nativeGlobal.__FEDERATION__.moduleInfo,\n ...moduleInfos,\n };\n return () => {\n const keys = Object.keys(moduleInfos);\n for (const key of keys) {\n delete nativeGlobal.__FEDERATION__.moduleInfo[key];\n }\n };\n};\n\nexport const getRemoteEntryExports = (\n name: string,\n globalName: string | undefined,\n): {\n remoteEntryKey: string;\n entryExports: RemoteEntryExports | undefined;\n} => {\n const remoteEntryKey = globalName || `__FEDERATION_${name}:custom__`;\n const entryExports = (CurrentGlobal as any)[remoteEntryKey];\n return {\n remoteEntryKey,\n entryExports,\n };\n};\n\n// This function is used to register global plugins.\n// It iterates over the provided plugins and checks if they are already registered.\n// If a plugin is not registered, it is added to the global plugins.\n// If a plugin is already registered, a warning message is logged.\nexport const registerGlobalPlugins = (\n plugins: Array<ModuleFederationRuntimePlugin>,\n): void => {\n const { __GLOBAL_PLUGIN__ } = nativeGlobal.__FEDERATION__;\n\n plugins.forEach((plugin) => {\n if (__GLOBAL_PLUGIN__.findIndex((p) => p.name === plugin.name) === -1) {\n __GLOBAL_PLUGIN__.push(plugin);\n } else {\n warn(`The plugin ${plugin.name} has been registered.`);\n }\n });\n};\n\nexport const getGlobalHostPlugins = (): Array<ModuleFederationRuntimePlugin> =>\n nativeGlobal.__FEDERATION__.__GLOBAL_PLUGIN__;\n\nexport const getPreloaded = (id: string) =>\n CurrentGlobal.__FEDERATION__.__PRELOADED_MAP__.get(id);\n\nexport const setPreloaded = (id: string) =>\n CurrentGlobal.__FEDERATION__.__PRELOADED_MAP__.set(id, true);\n\nexport const getPreloadedAsset = (url: string) =>\n CurrentGlobal.__FEDERATION__.__PRELOADED_ASSETS__.has(url);\n\nexport const setPreloadedAsset = (url: string): void => {\n const preloadedAssets = CurrentGlobal.__FEDERATION__.__PRELOADED_ASSETS__;\n preloadedAssets.add(url);\n\n if (preloadedAssets.size > MAX_PRELOADED_ASSETS) {\n const oldestUrl = preloadedAssets.values().next().value;\n if (oldestUrl !== undefined) {\n preloadedAssets.delete(oldestUrl);\n }\n }\n};\n"],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { ModuleFederation } from "./core.js";
2
+ import { ModuleFederationRuntimePlugin } from "./type/plugin.js";
3
+ import { GlobalShareScopeMap, Optional, Remote, RemoteEntryExports } from "./type/config.js";
4
+ import { GlobalModuleInfo, ModuleInfo } from "@module-federation/sdk";
5
+
6
+ //#region src/global.d.ts
7
+ interface Federation {
8
+ __GLOBAL_PLUGIN__: Array<ModuleFederationRuntimePlugin>;
9
+ __DEBUG_CONSTRUCTOR_VERSION__?: string;
10
+ moduleInfo: GlobalModuleInfo;
11
+ __DEBUG_CONSTRUCTOR__?: typeof ModuleFederation;
12
+ __INSTANCES__: Array<ModuleFederation>;
13
+ __SHARE__: GlobalShareScopeMap;
14
+ __MANIFEST_LOADING__: Record<string, Promise<ModuleInfo>>;
15
+ __PRELOADED_MAP__: Map<string, boolean>;
16
+ __PRELOADED_ASSETS__: Set<string>;
17
+ }
18
+ declare const CurrentGlobal: typeof globalThis;
19
+ declare const Global: typeof globalThis;
20
+ declare global {
21
+ var __FEDERATION__: Federation, __VMOK__: Federation, __GLOBAL_LOADING_REMOTE_ENTRY__: Record<string, undefined | Promise<RemoteEntryExports | void>>;
22
+ }
23
+ declare function resetFederationGlobalInfo(): void;
24
+ declare function setGlobalFederationInstance(FederationInstance: ModuleFederation): void;
25
+ declare function getGlobalFederationConstructor(): typeof ModuleFederation | undefined;
26
+ declare function setGlobalFederationConstructor(FederationConstructor: typeof ModuleFederation | undefined, isDebug?: boolean): void;
27
+ declare function getInfoWithoutType<T extends object>(target: T, key: keyof T): {
28
+ value: T[keyof T] | undefined;
29
+ key: string;
30
+ };
31
+ declare const getGlobalSnapshot: () => GlobalModuleInfo;
32
+ declare const getTargetSnapshotInfoByModuleInfo: (moduleInfo: Optional<Remote, "alias">, snapshot: GlobalModuleInfo) => GlobalModuleInfo[string] | undefined;
33
+ declare const getGlobalSnapshotInfoByModuleInfo: (moduleInfo: Optional<Remote, "alias">) => GlobalModuleInfo[string] | undefined;
34
+ declare const setGlobalSnapshotInfoByModuleInfo: (remoteInfo: Remote, moduleDetailInfo: GlobalModuleInfo[string]) => GlobalModuleInfo;
35
+ declare const addGlobalSnapshot: (moduleInfos: GlobalModuleInfo) => (() => void);
36
+ declare const getRemoteEntryExports: (name: string, globalName: string | undefined) => {
37
+ remoteEntryKey: string;
38
+ entryExports: RemoteEntryExports | undefined;
39
+ };
40
+ declare const registerGlobalPlugins: (plugins: Array<ModuleFederationRuntimePlugin>) => void;
41
+ declare const getGlobalHostPlugins: () => Array<ModuleFederationRuntimePlugin>;
42
+ declare const getPreloaded: (id: string) => boolean | undefined;
43
+ declare const setPreloaded: (id: string) => Map<string, boolean>;
44
+ //#endregion
45
+ export { CurrentGlobal, Federation, Global, addGlobalSnapshot, getGlobalFederationConstructor, getGlobalHostPlugins, getGlobalSnapshot, getGlobalSnapshotInfoByModuleInfo, getInfoWithoutType, getPreloaded, getRemoteEntryExports, getTargetSnapshotInfoByModuleInfo, registerGlobalPlugins, resetFederationGlobalInfo, setGlobalFederationConstructor, setGlobalFederationInstance, setGlobalSnapshotInfoByModuleInfo, setPreloaded };
46
+ //# sourceMappingURL=global.d.ts.map
package/dist/global.js ADDED
@@ -0,0 +1,155 @@
1
+ import { error, warn as warn$1 } from "./utils/logger.js";
2
+ import { getFMId } from "./utils/tool.js";
3
+ import { isDebugMode } from "@module-federation/sdk";
4
+
5
+ //#region src/global.ts
6
+ const MAX_PRELOADED_ASSETS = 2e3;
7
+ const CurrentGlobal = typeof globalThis === "object" ? globalThis : window;
8
+ const nativeGlobal = (() => {
9
+ try {
10
+ return document.defaultView;
11
+ } catch {
12
+ return CurrentGlobal;
13
+ }
14
+ })();
15
+ const Global = nativeGlobal;
16
+ function definePropertyGlobalVal(target, key, val) {
17
+ Object.defineProperty(target, key, {
18
+ value: val,
19
+ configurable: false,
20
+ writable: true
21
+ });
22
+ }
23
+ function includeOwnProperty(target, key) {
24
+ return Object.hasOwnProperty.call(target, key);
25
+ }
26
+ if (!includeOwnProperty(CurrentGlobal, "__GLOBAL_LOADING_REMOTE_ENTRY__")) definePropertyGlobalVal(CurrentGlobal, "__GLOBAL_LOADING_REMOTE_ENTRY__", {});
27
+ const globalLoading = CurrentGlobal.__GLOBAL_LOADING_REMOTE_ENTRY__;
28
+ function setGlobalDefaultVal(target) {
29
+ if (includeOwnProperty(target, "__VMOK__") && !includeOwnProperty(target, "__FEDERATION__")) definePropertyGlobalVal(target, "__FEDERATION__", target.__VMOK__);
30
+ if (!includeOwnProperty(target, "__FEDERATION__")) {
31
+ definePropertyGlobalVal(target, "__FEDERATION__", {
32
+ __GLOBAL_PLUGIN__: [],
33
+ __INSTANCES__: [],
34
+ moduleInfo: {},
35
+ __SHARE__: {},
36
+ __MANIFEST_LOADING__: {},
37
+ __PRELOADED_MAP__: /* @__PURE__ */ new Map(),
38
+ __PRELOADED_ASSETS__: /* @__PURE__ */ new Set()
39
+ });
40
+ definePropertyGlobalVal(target, "__VMOK__", target.__FEDERATION__);
41
+ }
42
+ target.__FEDERATION__.__GLOBAL_PLUGIN__ ??= [];
43
+ target.__FEDERATION__.__INSTANCES__ ??= [];
44
+ target.__FEDERATION__.moduleInfo ??= {};
45
+ target.__FEDERATION__.__SHARE__ ??= {};
46
+ target.__FEDERATION__.__MANIFEST_LOADING__ ??= {};
47
+ target.__FEDERATION__.__PRELOADED_MAP__ ??= /* @__PURE__ */ new Map();
48
+ target.__FEDERATION__.__PRELOADED_ASSETS__ ??= /* @__PURE__ */ new Set();
49
+ }
50
+ setGlobalDefaultVal(CurrentGlobal);
51
+ setGlobalDefaultVal(nativeGlobal);
52
+ function resetFederationGlobalInfo() {
53
+ CurrentGlobal.__FEDERATION__.__GLOBAL_PLUGIN__ = [];
54
+ CurrentGlobal.__FEDERATION__.__INSTANCES__ = [];
55
+ CurrentGlobal.__FEDERATION__.moduleInfo = {};
56
+ CurrentGlobal.__FEDERATION__.__SHARE__ = {};
57
+ CurrentGlobal.__FEDERATION__.__MANIFEST_LOADING__ = {};
58
+ CurrentGlobal.__FEDERATION__.__PRELOADED_ASSETS__.clear();
59
+ Object.keys(globalLoading).forEach((key) => {
60
+ delete globalLoading[key];
61
+ });
62
+ }
63
+ function setGlobalFederationInstance(FederationInstance) {
64
+ CurrentGlobal.__FEDERATION__.__INSTANCES__.push(FederationInstance);
65
+ }
66
+ function getGlobalFederationConstructor() {
67
+ return CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR__;
68
+ }
69
+ function setGlobalFederationConstructor(FederationConstructor, isDebug = isDebugMode()) {
70
+ if (isDebug) {
71
+ CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR__ = FederationConstructor;
72
+ CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = "0.0.0-perf-website-code-usage-20260914033703";
73
+ }
74
+ }
75
+ function getInfoWithoutType(target, key) {
76
+ if (typeof key === "string") if (target[key]) return {
77
+ value: target[key],
78
+ key
79
+ };
80
+ else {
81
+ const targetKeys = Object.keys(target);
82
+ for (const targetKey of targetKeys) {
83
+ const [targetTypeOrName, _] = targetKey.split(":");
84
+ const nKey = `${targetTypeOrName}:${key}`;
85
+ const typeWithKeyRes = target[nKey];
86
+ if (typeWithKeyRes) return {
87
+ value: typeWithKeyRes,
88
+ key: nKey
89
+ };
90
+ }
91
+ return {
92
+ value: void 0,
93
+ key
94
+ };
95
+ }
96
+ else error(`getInfoWithoutType: "key" must be a string, got ${typeof key} (${JSON.stringify(key)}).`);
97
+ }
98
+ const getGlobalSnapshot = () => nativeGlobal.__FEDERATION__.moduleInfo;
99
+ const getTargetSnapshotInfoByModuleInfo = (moduleInfo, snapshot) => {
100
+ const getModuleInfo = getInfoWithoutType(snapshot, getFMId(moduleInfo)).value;
101
+ if (getModuleInfo && !getModuleInfo.version && "version" in moduleInfo && moduleInfo["version"]) getModuleInfo.version = moduleInfo["version"];
102
+ if (getModuleInfo) return getModuleInfo;
103
+ if ("version" in moduleInfo && moduleInfo["version"]) {
104
+ const { version, ...resModuleInfo } = moduleInfo;
105
+ const moduleKeyWithoutVersion = getFMId(resModuleInfo);
106
+ const getModuleInfoWithoutVersion = getInfoWithoutType(nativeGlobal.__FEDERATION__.moduleInfo, moduleKeyWithoutVersion).value;
107
+ if (getModuleInfoWithoutVersion?.version === version) return getModuleInfoWithoutVersion;
108
+ }
109
+ };
110
+ const getGlobalSnapshotInfoByModuleInfo = (moduleInfo) => getTargetSnapshotInfoByModuleInfo(moduleInfo, nativeGlobal.__FEDERATION__.moduleInfo);
111
+ const setGlobalSnapshotInfoByModuleInfo = (remoteInfo, moduleDetailInfo) => {
112
+ const moduleKey = getFMId(remoteInfo);
113
+ nativeGlobal.__FEDERATION__.moduleInfo[moduleKey] = moduleDetailInfo;
114
+ return nativeGlobal.__FEDERATION__.moduleInfo;
115
+ };
116
+ const addGlobalSnapshot = (moduleInfos) => {
117
+ nativeGlobal.__FEDERATION__.moduleInfo = {
118
+ ...nativeGlobal.__FEDERATION__.moduleInfo,
119
+ ...moduleInfos
120
+ };
121
+ return () => {
122
+ const keys = Object.keys(moduleInfos);
123
+ for (const key of keys) delete nativeGlobal.__FEDERATION__.moduleInfo[key];
124
+ };
125
+ };
126
+ const getRemoteEntryExports = (name, globalName) => {
127
+ const remoteEntryKey = globalName || `__FEDERATION_${name}:custom__`;
128
+ return {
129
+ remoteEntryKey,
130
+ entryExports: CurrentGlobal[remoteEntryKey]
131
+ };
132
+ };
133
+ const registerGlobalPlugins = (plugins) => {
134
+ const { __GLOBAL_PLUGIN__ } = nativeGlobal.__FEDERATION__;
135
+ plugins.forEach((plugin) => {
136
+ if (__GLOBAL_PLUGIN__.findIndex((p) => p.name === plugin.name) === -1) __GLOBAL_PLUGIN__.push(plugin);
137
+ else warn$1(`The plugin ${plugin.name} has been registered.`);
138
+ });
139
+ };
140
+ const getGlobalHostPlugins = () => nativeGlobal.__FEDERATION__.__GLOBAL_PLUGIN__;
141
+ const getPreloaded = (id) => CurrentGlobal.__FEDERATION__.__PRELOADED_MAP__.get(id);
142
+ const setPreloaded = (id) => CurrentGlobal.__FEDERATION__.__PRELOADED_MAP__.set(id, true);
143
+ const getPreloadedAsset = (url) => CurrentGlobal.__FEDERATION__.__PRELOADED_ASSETS__.has(url);
144
+ const setPreloadedAsset = (url) => {
145
+ const preloadedAssets = CurrentGlobal.__FEDERATION__.__PRELOADED_ASSETS__;
146
+ preloadedAssets.add(url);
147
+ if (preloadedAssets.size > MAX_PRELOADED_ASSETS) {
148
+ const oldestUrl = preloadedAssets.values().next().value;
149
+ if (oldestUrl !== void 0) preloadedAssets.delete(oldestUrl);
150
+ }
151
+ };
152
+
153
+ //#endregion
154
+ export { CurrentGlobal, Global, addGlobalSnapshot, getGlobalFederationConstructor, getGlobalHostPlugins, getGlobalSnapshot, getGlobalSnapshotInfoByModuleInfo, getInfoWithoutType, getPreloaded, getPreloadedAsset, getRemoteEntryExports, getTargetSnapshotInfoByModuleInfo, globalLoading, nativeGlobal, registerGlobalPlugins, resetFederationGlobalInfo, setGlobalFederationConstructor, setGlobalFederationInstance, setGlobalSnapshotInfoByModuleInfo, setPreloaded, setPreloadedAsset };
155
+ //# sourceMappingURL=global.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.js","names":[],"sources":["../src/global.ts"],"sourcesContent":["import { ModuleFederation } from './core';\nimport {\n RemoteEntryExports,\n GlobalShareScopeMap,\n Remote,\n Optional,\n} from './type';\nimport { getFMId } from './utils/tool';\nimport {\n GlobalModuleInfo,\n ModuleInfo,\n isDebugMode,\n} from '@module-federation/sdk';\nimport { warn, error } from './utils/logger';\nimport { ModuleFederationRuntimePlugin } from './type/plugin';\n\nexport interface Federation {\n __GLOBAL_PLUGIN__: Array<ModuleFederationRuntimePlugin>;\n __DEBUG_CONSTRUCTOR_VERSION__?: string;\n moduleInfo: GlobalModuleInfo;\n __DEBUG_CONSTRUCTOR__?: typeof ModuleFederation;\n __INSTANCES__: Array<ModuleFederation>;\n __SHARE__: GlobalShareScopeMap;\n __MANIFEST_LOADING__: Record<string, Promise<ModuleInfo>>;\n __PRELOADED_MAP__: Map<string, boolean>;\n __PRELOADED_ASSETS__: Set<string>;\n}\n\nconst MAX_PRELOADED_ASSETS = 2000;\nexport const CurrentGlobal =\n typeof globalThis === 'object' ? globalThis : window;\nexport const nativeGlobal: typeof global = (() => {\n try {\n // get real window (incase of sandbox)\n return document.defaultView;\n } catch {\n // node env\n return CurrentGlobal;\n }\n})() as typeof global;\n\nexport const Global = nativeGlobal;\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __FEDERATION__: Federation,\n __VMOK__: Federation,\n // eslint-disable-next-line no-var\n __GLOBAL_LOADING_REMOTE_ENTRY__: Record<\n string,\n undefined | Promise<RemoteEntryExports | void>\n >;\n}\n\nfunction definePropertyGlobalVal(\n target: typeof CurrentGlobal,\n key: string,\n val: any,\n) {\n Object.defineProperty(target, key, {\n value: val,\n configurable: false,\n writable: true,\n });\n}\n\nfunction includeOwnProperty(target: typeof CurrentGlobal, key: string) {\n return Object.hasOwnProperty.call(target, key);\n}\n\n// This section is to prevent encapsulation by certain microfrontend frameworks. Due to reuse policies, sandbox escapes.\n// The sandbox in the microfrontend does not replicate the value of 'configurable'.\n// If there is no loading content on the global object, this section defines the loading object.\nif (!includeOwnProperty(CurrentGlobal, '__GLOBAL_LOADING_REMOTE_ENTRY__')) {\n definePropertyGlobalVal(CurrentGlobal, '__GLOBAL_LOADING_REMOTE_ENTRY__', {});\n}\n\nexport const globalLoading = CurrentGlobal.__GLOBAL_LOADING_REMOTE_ENTRY__;\n\nfunction setGlobalDefaultVal(target: typeof CurrentGlobal) {\n if (\n includeOwnProperty(target, '__VMOK__') &&\n !includeOwnProperty(target, '__FEDERATION__')\n ) {\n definePropertyGlobalVal(target, '__FEDERATION__', target.__VMOK__);\n }\n\n if (!includeOwnProperty(target, '__FEDERATION__')) {\n definePropertyGlobalVal(target, '__FEDERATION__', {\n __GLOBAL_PLUGIN__: [],\n __INSTANCES__: [],\n moduleInfo: {},\n __SHARE__: {},\n __MANIFEST_LOADING__: {},\n __PRELOADED_MAP__: new Map(),\n __PRELOADED_ASSETS__: new Set(),\n });\n\n definePropertyGlobalVal(target, '__VMOK__', target.__FEDERATION__);\n }\n\n target.__FEDERATION__.__GLOBAL_PLUGIN__ ??= [];\n target.__FEDERATION__.__INSTANCES__ ??= [];\n target.__FEDERATION__.moduleInfo ??= {};\n target.__FEDERATION__.__SHARE__ ??= {};\n target.__FEDERATION__.__MANIFEST_LOADING__ ??= {};\n target.__FEDERATION__.__PRELOADED_MAP__ ??= new Map();\n target.__FEDERATION__.__PRELOADED_ASSETS__ ??= new Set();\n}\n\nsetGlobalDefaultVal(CurrentGlobal);\nsetGlobalDefaultVal(nativeGlobal);\n\nexport function resetFederationGlobalInfo(): void {\n CurrentGlobal.__FEDERATION__.__GLOBAL_PLUGIN__ = [];\n CurrentGlobal.__FEDERATION__.__INSTANCES__ = [];\n CurrentGlobal.__FEDERATION__.moduleInfo = {};\n CurrentGlobal.__FEDERATION__.__SHARE__ = {};\n CurrentGlobal.__FEDERATION__.__MANIFEST_LOADING__ = {};\n CurrentGlobal.__FEDERATION__.__PRELOADED_ASSETS__.clear();\n\n Object.keys(globalLoading).forEach((key) => {\n delete globalLoading[key];\n });\n}\n\nexport function setGlobalFederationInstance(\n FederationInstance: ModuleFederation,\n): void {\n CurrentGlobal.__FEDERATION__.__INSTANCES__.push(FederationInstance);\n}\n\nexport function getGlobalFederationConstructor():\n | typeof ModuleFederation\n | undefined {\n return CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR__;\n}\n\nexport function setGlobalFederationConstructor(\n FederationConstructor: typeof ModuleFederation | undefined,\n isDebug = isDebugMode(),\n): void {\n if (isDebug) {\n CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR__ = FederationConstructor;\n CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = __VERSION__;\n }\n}\n\nexport function getInfoWithoutType<T extends object>(\n target: T,\n key: keyof T,\n): { value: T[keyof T] | undefined; key: string } {\n if (typeof key === 'string') {\n const keyRes = target[key];\n if (keyRes) {\n return {\n value: target[key],\n key: key as string,\n };\n } else {\n const targetKeys = Object.keys(target);\n for (const targetKey of targetKeys) {\n const [targetTypeOrName, _] = targetKey.split(':');\n const nKey = `${targetTypeOrName}:${key}` as unknown as keyof T;\n const typeWithKeyRes = target[nKey];\n if (typeWithKeyRes) {\n return {\n value: typeWithKeyRes,\n key: nKey as string,\n };\n }\n }\n return {\n value: undefined,\n key: key as string,\n };\n }\n } else {\n error(\n `getInfoWithoutType: \"key\" must be a string, got ${typeof key} (${JSON.stringify(key)}).`,\n );\n }\n}\n\nexport const getGlobalSnapshot = (): GlobalModuleInfo =>\n nativeGlobal.__FEDERATION__.moduleInfo;\n\nexport const getTargetSnapshotInfoByModuleInfo = (\n moduleInfo: Optional<Remote, 'alias'>,\n snapshot: GlobalModuleInfo,\n): GlobalModuleInfo[string] | undefined => {\n // Check if the remote is included in the hostSnapshot\n const moduleKey = getFMId(moduleInfo);\n const getModuleInfo = getInfoWithoutType(snapshot, moduleKey).value;\n\n // The remoteSnapshot might not include a version\n if (\n getModuleInfo &&\n !getModuleInfo.version &&\n 'version' in moduleInfo &&\n moduleInfo['version']\n ) {\n getModuleInfo.version = moduleInfo['version'];\n }\n\n if (getModuleInfo) {\n return getModuleInfo;\n }\n\n // If the remote is not included in the hostSnapshot, deploy a micro app snapshot\n if ('version' in moduleInfo && moduleInfo['version']) {\n const { version, ...resModuleInfo } = moduleInfo;\n const moduleKeyWithoutVersion = getFMId(resModuleInfo);\n const getModuleInfoWithoutVersion = getInfoWithoutType(\n nativeGlobal.__FEDERATION__.moduleInfo,\n moduleKeyWithoutVersion,\n ).value;\n\n if (getModuleInfoWithoutVersion?.version === version) {\n return getModuleInfoWithoutVersion;\n }\n }\n\n return;\n};\n\nexport const getGlobalSnapshotInfoByModuleInfo = (\n moduleInfo: Optional<Remote, 'alias'>,\n): GlobalModuleInfo[string] | undefined =>\n getTargetSnapshotInfoByModuleInfo(\n moduleInfo,\n nativeGlobal.__FEDERATION__.moduleInfo,\n );\n\nexport const setGlobalSnapshotInfoByModuleInfo = (\n remoteInfo: Remote,\n moduleDetailInfo: GlobalModuleInfo[string],\n): GlobalModuleInfo => {\n const moduleKey = getFMId(remoteInfo);\n nativeGlobal.__FEDERATION__.moduleInfo[moduleKey] = moduleDetailInfo;\n return nativeGlobal.__FEDERATION__.moduleInfo;\n};\n\nexport const addGlobalSnapshot = (\n moduleInfos: GlobalModuleInfo,\n): (() => void) => {\n nativeGlobal.__FEDERATION__.moduleInfo = {\n ...nativeGlobal.__FEDERATION__.moduleInfo,\n ...moduleInfos,\n };\n return () => {\n const keys = Object.keys(moduleInfos);\n for (const key of keys) {\n delete nativeGlobal.__FEDERATION__.moduleInfo[key];\n }\n };\n};\n\nexport const getRemoteEntryExports = (\n name: string,\n globalName: string | undefined,\n): {\n remoteEntryKey: string;\n entryExports: RemoteEntryExports | undefined;\n} => {\n const remoteEntryKey = globalName || `__FEDERATION_${name}:custom__`;\n const entryExports = (CurrentGlobal as any)[remoteEntryKey];\n return {\n remoteEntryKey,\n entryExports,\n };\n};\n\n// This function is used to register global plugins.\n// It iterates over the provided plugins and checks if they are already registered.\n// If a plugin is not registered, it is added to the global plugins.\n// If a plugin is already registered, a warning message is logged.\nexport const registerGlobalPlugins = (\n plugins: Array<ModuleFederationRuntimePlugin>,\n): void => {\n const { __GLOBAL_PLUGIN__ } = nativeGlobal.__FEDERATION__;\n\n plugins.forEach((plugin) => {\n if (__GLOBAL_PLUGIN__.findIndex((p) => p.name === plugin.name) === -1) {\n __GLOBAL_PLUGIN__.push(plugin);\n } else {\n warn(`The plugin ${plugin.name} has been registered.`);\n }\n });\n};\n\nexport const getGlobalHostPlugins = (): Array<ModuleFederationRuntimePlugin> =>\n nativeGlobal.__FEDERATION__.__GLOBAL_PLUGIN__;\n\nexport const getPreloaded = (id: string) =>\n CurrentGlobal.__FEDERATION__.__PRELOADED_MAP__.get(id);\n\nexport const setPreloaded = (id: string) =>\n CurrentGlobal.__FEDERATION__.__PRELOADED_MAP__.set(id, true);\n\nexport const getPreloadedAsset = (url: string) =>\n CurrentGlobal.__FEDERATION__.__PRELOADED_ASSETS__.has(url);\n\nexport const setPreloadedAsset = (url: string): void => {\n const preloadedAssets = CurrentGlobal.__FEDERATION__.__PRELOADED_ASSETS__;\n preloadedAssets.add(url);\n\n if (preloadedAssets.size > MAX_PRELOADED_ASSETS) {\n const oldestUrl = preloadedAssets.values().next().value;\n if (oldestUrl !== undefined) {\n preloadedAssets.delete(oldestUrl);\n }\n }\n};\n"],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ const require_global = require('./global.cjs');
2
+ const require_share = require('./utils/share.cjs');
3
+ const require_manifest = require('./utils/manifest.cjs');
4
+ const require_load = require('./utils/load.cjs');
5
+ require('./utils/index.cjs');
6
+ const require_preload = require('./utils/preload.cjs');
7
+
8
+ //#region src/helpers.ts
9
+ const ShareUtils = {
10
+ getRegisteredShare: require_share.getRegisteredShare,
11
+ getGlobalShareScope: require_share.getGlobalShareScope
12
+ };
13
+ const GlobalUtils = {
14
+ Global: require_global.Global,
15
+ nativeGlobal: require_global.nativeGlobal,
16
+ resetFederationGlobalInfo: require_global.resetFederationGlobalInfo,
17
+ setGlobalFederationInstance: require_global.setGlobalFederationInstance,
18
+ getGlobalFederationConstructor: require_global.getGlobalFederationConstructor,
19
+ setGlobalFederationConstructor: require_global.setGlobalFederationConstructor,
20
+ getInfoWithoutType: require_global.getInfoWithoutType,
21
+ getGlobalSnapshot: require_global.getGlobalSnapshot,
22
+ getTargetSnapshotInfoByModuleInfo: require_global.getTargetSnapshotInfoByModuleInfo,
23
+ getGlobalSnapshotInfoByModuleInfo: require_global.getGlobalSnapshotInfoByModuleInfo,
24
+ setGlobalSnapshotInfoByModuleInfo: require_global.setGlobalSnapshotInfoByModuleInfo,
25
+ addGlobalSnapshot: require_global.addGlobalSnapshot,
26
+ getRemoteEntryExports: require_global.getRemoteEntryExports,
27
+ registerGlobalPlugins: require_global.registerGlobalPlugins,
28
+ getGlobalHostPlugins: require_global.getGlobalHostPlugins,
29
+ getPreloaded: require_global.getPreloaded,
30
+ setPreloaded: require_global.setPreloaded
31
+ };
32
+ var helpers_default = {
33
+ global: GlobalUtils,
34
+ share: ShareUtils,
35
+ utils: {
36
+ matchRemoteWithNameAndExpose: require_manifest.matchRemoteWithNameAndExpose,
37
+ preloadAssets: require_preload.preloadAssets,
38
+ getRemoteInfo: require_load.getRemoteInfo
39
+ }
40
+ };
41
+
42
+ //#endregion
43
+ exports.default = helpers_default;
44
+ //# sourceMappingURL=helpers.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.cjs","names":[],"sources":["../src/helpers.ts"],"sourcesContent":["import {\n nativeGlobal,\n resetFederationGlobalInfo,\n setGlobalFederationInstance,\n getGlobalFederationConstructor,\n setGlobalFederationConstructor,\n getInfoWithoutType,\n getGlobalSnapshot,\n getTargetSnapshotInfoByModuleInfo,\n getGlobalSnapshotInfoByModuleInfo,\n setGlobalSnapshotInfoByModuleInfo,\n addGlobalSnapshot,\n getRemoteEntryExports,\n registerGlobalPlugins,\n getGlobalHostPlugins,\n getPreloaded,\n setPreloaded,\n Global,\n} from './global';\nimport { getRegisteredShare, getGlobalShareScope } from './utils/share';\nimport { getRemoteInfo, matchRemoteWithNameAndExpose } from './utils';\nimport { preloadAssets } from './utils/preload';\ninterface IShareUtils {\n getRegisteredShare: typeof getRegisteredShare;\n getGlobalShareScope: typeof getGlobalShareScope;\n}\nconst ShareUtils: IShareUtils = {\n getRegisteredShare,\n getGlobalShareScope,\n};\n\ninterface IGlobalUtils {\n Global: typeof Global;\n nativeGlobal: typeof global;\n resetFederationGlobalInfo: typeof resetFederationGlobalInfo;\n setGlobalFederationInstance: typeof setGlobalFederationInstance;\n getGlobalFederationConstructor: typeof getGlobalFederationConstructor;\n setGlobalFederationConstructor: typeof setGlobalFederationConstructor;\n getInfoWithoutType: typeof getInfoWithoutType;\n getGlobalSnapshot: typeof getGlobalSnapshot;\n getTargetSnapshotInfoByModuleInfo: typeof getTargetSnapshotInfoByModuleInfo;\n getGlobalSnapshotInfoByModuleInfo: typeof getGlobalSnapshotInfoByModuleInfo;\n setGlobalSnapshotInfoByModuleInfo: typeof setGlobalSnapshotInfoByModuleInfo;\n addGlobalSnapshot: typeof addGlobalSnapshot;\n getRemoteEntryExports: typeof getRemoteEntryExports;\n registerGlobalPlugins: typeof registerGlobalPlugins;\n getGlobalHostPlugins: typeof getGlobalHostPlugins;\n getPreloaded: typeof getPreloaded;\n setPreloaded: typeof setPreloaded;\n}\n\nconst GlobalUtils: IGlobalUtils = {\n Global,\n nativeGlobal,\n resetFederationGlobalInfo,\n setGlobalFederationInstance,\n getGlobalFederationConstructor,\n setGlobalFederationConstructor,\n getInfoWithoutType,\n getGlobalSnapshot,\n getTargetSnapshotInfoByModuleInfo,\n getGlobalSnapshotInfoByModuleInfo,\n setGlobalSnapshotInfoByModuleInfo,\n addGlobalSnapshot,\n getRemoteEntryExports,\n registerGlobalPlugins,\n getGlobalHostPlugins,\n getPreloaded,\n setPreloaded,\n};\n\nexport default {\n global: GlobalUtils,\n share: ShareUtils,\n utils: {\n matchRemoteWithNameAndExpose,\n preloadAssets,\n getRemoteInfo,\n },\n};\n\nexport type { IGlobalUtils, IShareUtils };\n"],"mappings":";;;;;;;;AA0BA,MAAM,aAA0B;CAC9B;CACA;CACD;AAsBD,MAAM,cAA4B;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,sBAAe;CACb,QAAQ;CACR,OAAO;CACP,OAAO;EACL;EACA;EACA;EACD;CACF"}
@@ -0,0 +1,30 @@
1
+ import { Global, addGlobalSnapshot, getGlobalFederationConstructor, getGlobalHostPlugins, getGlobalSnapshot, getGlobalSnapshotInfoByModuleInfo, getInfoWithoutType, getPreloaded, getRemoteEntryExports, getTargetSnapshotInfoByModuleInfo, registerGlobalPlugins, resetFederationGlobalInfo, setGlobalFederationConstructor, setGlobalFederationInstance, setGlobalSnapshotInfoByModuleInfo, setPreloaded } from "./global.js";
2
+ import { getGlobalShareScope, getRegisteredShare } from "./utils/share.js";
3
+
4
+ //#region src/helpers.d.ts
5
+ interface IShareUtils {
6
+ getRegisteredShare: typeof getRegisteredShare;
7
+ getGlobalShareScope: typeof getGlobalShareScope;
8
+ }
9
+ interface IGlobalUtils {
10
+ Global: typeof Global;
11
+ nativeGlobal: typeof global;
12
+ resetFederationGlobalInfo: typeof resetFederationGlobalInfo;
13
+ setGlobalFederationInstance: typeof setGlobalFederationInstance;
14
+ getGlobalFederationConstructor: typeof getGlobalFederationConstructor;
15
+ setGlobalFederationConstructor: typeof setGlobalFederationConstructor;
16
+ getInfoWithoutType: typeof getInfoWithoutType;
17
+ getGlobalSnapshot: typeof getGlobalSnapshot;
18
+ getTargetSnapshotInfoByModuleInfo: typeof getTargetSnapshotInfoByModuleInfo;
19
+ getGlobalSnapshotInfoByModuleInfo: typeof getGlobalSnapshotInfoByModuleInfo;
20
+ setGlobalSnapshotInfoByModuleInfo: typeof setGlobalSnapshotInfoByModuleInfo;
21
+ addGlobalSnapshot: typeof addGlobalSnapshot;
22
+ getRemoteEntryExports: typeof getRemoteEntryExports;
23
+ registerGlobalPlugins: typeof registerGlobalPlugins;
24
+ getGlobalHostPlugins: typeof getGlobalHostPlugins;
25
+ getPreloaded: typeof getPreloaded;
26
+ setPreloaded: typeof setPreloaded;
27
+ }
28
+ //#endregion
29
+ export { type IGlobalUtils, type IShareUtils };
30
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1,44 @@
1
+ import { Global, addGlobalSnapshot, getGlobalFederationConstructor, getGlobalHostPlugins, getGlobalSnapshot, getGlobalSnapshotInfoByModuleInfo, getInfoWithoutType, getPreloaded, getRemoteEntryExports, getTargetSnapshotInfoByModuleInfo, nativeGlobal, registerGlobalPlugins, resetFederationGlobalInfo, setGlobalFederationConstructor, setGlobalFederationInstance, setGlobalSnapshotInfoByModuleInfo, setPreloaded } from "./global.js";
2
+ import { getGlobalShareScope, getRegisteredShare } from "./utils/share.js";
3
+ import { matchRemoteWithNameAndExpose } from "./utils/manifest.js";
4
+ import { getRemoteInfo } from "./utils/load.js";
5
+ import "./utils/index.js";
6
+ import { preloadAssets } from "./utils/preload.js";
7
+
8
+ //#region src/helpers.ts
9
+ const ShareUtils = {
10
+ getRegisteredShare,
11
+ getGlobalShareScope
12
+ };
13
+ const GlobalUtils = {
14
+ Global,
15
+ nativeGlobal,
16
+ resetFederationGlobalInfo,
17
+ setGlobalFederationInstance,
18
+ getGlobalFederationConstructor,
19
+ setGlobalFederationConstructor,
20
+ getInfoWithoutType,
21
+ getGlobalSnapshot,
22
+ getTargetSnapshotInfoByModuleInfo,
23
+ getGlobalSnapshotInfoByModuleInfo,
24
+ setGlobalSnapshotInfoByModuleInfo,
25
+ addGlobalSnapshot,
26
+ getRemoteEntryExports,
27
+ registerGlobalPlugins,
28
+ getGlobalHostPlugins,
29
+ getPreloaded,
30
+ setPreloaded
31
+ };
32
+ var helpers_default = {
33
+ global: GlobalUtils,
34
+ share: ShareUtils,
35
+ utils: {
36
+ matchRemoteWithNameAndExpose,
37
+ preloadAssets,
38
+ getRemoteInfo
39
+ }
40
+ };
41
+
42
+ //#endregion
43
+ export { helpers_default as default };
44
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","names":[],"sources":["../src/helpers.ts"],"sourcesContent":["import {\n nativeGlobal,\n resetFederationGlobalInfo,\n setGlobalFederationInstance,\n getGlobalFederationConstructor,\n setGlobalFederationConstructor,\n getInfoWithoutType,\n getGlobalSnapshot,\n getTargetSnapshotInfoByModuleInfo,\n getGlobalSnapshotInfoByModuleInfo,\n setGlobalSnapshotInfoByModuleInfo,\n addGlobalSnapshot,\n getRemoteEntryExports,\n registerGlobalPlugins,\n getGlobalHostPlugins,\n getPreloaded,\n setPreloaded,\n Global,\n} from './global';\nimport { getRegisteredShare, getGlobalShareScope } from './utils/share';\nimport { getRemoteInfo, matchRemoteWithNameAndExpose } from './utils';\nimport { preloadAssets } from './utils/preload';\ninterface IShareUtils {\n getRegisteredShare: typeof getRegisteredShare;\n getGlobalShareScope: typeof getGlobalShareScope;\n}\nconst ShareUtils: IShareUtils = {\n getRegisteredShare,\n getGlobalShareScope,\n};\n\ninterface IGlobalUtils {\n Global: typeof Global;\n nativeGlobal: typeof global;\n resetFederationGlobalInfo: typeof resetFederationGlobalInfo;\n setGlobalFederationInstance: typeof setGlobalFederationInstance;\n getGlobalFederationConstructor: typeof getGlobalFederationConstructor;\n setGlobalFederationConstructor: typeof setGlobalFederationConstructor;\n getInfoWithoutType: typeof getInfoWithoutType;\n getGlobalSnapshot: typeof getGlobalSnapshot;\n getTargetSnapshotInfoByModuleInfo: typeof getTargetSnapshotInfoByModuleInfo;\n getGlobalSnapshotInfoByModuleInfo: typeof getGlobalSnapshotInfoByModuleInfo;\n setGlobalSnapshotInfoByModuleInfo: typeof setGlobalSnapshotInfoByModuleInfo;\n addGlobalSnapshot: typeof addGlobalSnapshot;\n getRemoteEntryExports: typeof getRemoteEntryExports;\n registerGlobalPlugins: typeof registerGlobalPlugins;\n getGlobalHostPlugins: typeof getGlobalHostPlugins;\n getPreloaded: typeof getPreloaded;\n setPreloaded: typeof setPreloaded;\n}\n\nconst GlobalUtils: IGlobalUtils = {\n Global,\n nativeGlobal,\n resetFederationGlobalInfo,\n setGlobalFederationInstance,\n getGlobalFederationConstructor,\n setGlobalFederationConstructor,\n getInfoWithoutType,\n getGlobalSnapshot,\n getTargetSnapshotInfoByModuleInfo,\n getGlobalSnapshotInfoByModuleInfo,\n setGlobalSnapshotInfoByModuleInfo,\n addGlobalSnapshot,\n getRemoteEntryExports,\n registerGlobalPlugins,\n getGlobalHostPlugins,\n getPreloaded,\n setPreloaded,\n};\n\nexport default {\n global: GlobalUtils,\n share: ShareUtils,\n utils: {\n matchRemoteWithNameAndExpose,\n preloadAssets,\n getRemoteInfo,\n },\n};\n\nexport type { IGlobalUtils, IShareUtils };\n"],"mappings":";;;;;;;;AA0BA,MAAM,aAA0B;CAC9B;CACA;CACD;AAsBD,MAAM,cAA4B;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,sBAAe;CACb,QAAQ;CACR,OAAO;CACP,OAAO;EACL;EACA;EACA;EACD;CACF"}
package/dist/index.cjs ADDED
@@ -0,0 +1,62 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_logger = require('./utils/logger.cjs');
3
+ const require_tool = require('./utils/tool.cjs');
4
+ const require_global = require('./global.cjs');
5
+ const require_index = require('./utils/semver/index.cjs');
6
+ const require_share = require('./utils/share.cjs');
7
+ const require_manifest = require('./utils/manifest.cjs');
8
+ const require_load = require('./utils/load.cjs');
9
+ require('./utils/index.cjs');
10
+ const require_helpers = require('./helpers.cjs');
11
+ const require_index$2 = require('./module/index.cjs');
12
+ const require_disabled = require('./remote/disabled.cjs');
13
+ const require_core = require('./core.cjs');
14
+ const require_index$3 = require('./type/index.cjs');
15
+ let _module_federation_sdk = require("@module-federation/sdk");
16
+
17
+ //#region src/index.ts
18
+ const helpers = require_helpers.default;
19
+ const Module = typeof FEDERATION_OPTIMIZE_NO_REMOTE === "boolean" && FEDERATION_OPTIMIZE_NO_REMOTE ? require_disabled.UnavailableRemoteModule : require_index$2.Module;
20
+
21
+ //#endregion
22
+ exports.CurrentGlobal = require_global.CurrentGlobal;
23
+ exports.Global = require_global.Global;
24
+ exports.Module = Module;
25
+ exports.ModuleFederation = require_core.ModuleFederation;
26
+ exports.addGlobalSnapshot = require_global.addGlobalSnapshot;
27
+ exports.assert = require_logger.assert;
28
+ exports.error = require_logger.error;
29
+ exports.getGlobalFederationConstructor = require_global.getGlobalFederationConstructor;
30
+ exports.getGlobalSnapshot = require_global.getGlobalSnapshot;
31
+ exports.getInfoWithoutType = require_global.getInfoWithoutType;
32
+ exports.getRegisteredShare = require_share.getRegisteredShare;
33
+ exports.getRemoteEntry = require_load.getRemoteEntry;
34
+ exports.getRemoteInfo = require_load.getRemoteInfo;
35
+ exports.helpers = helpers;
36
+ exports.isStaticResourcesEqual = require_tool.isStaticResourcesEqual;
37
+ Object.defineProperty(exports, 'loadScript', {
38
+ enumerable: true,
39
+ get: function () {
40
+ return _module_federation_sdk.loadScript;
41
+ }
42
+ });
43
+ Object.defineProperty(exports, 'loadScriptNode', {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _module_federation_sdk.loadScriptNode;
47
+ }
48
+ });
49
+ exports.matchRemoteWithNameAndExpose = require_manifest.matchRemoteWithNameAndExpose;
50
+ exports.registerGlobalPlugins = require_global.registerGlobalPlugins;
51
+ exports.resetFederationGlobalInfo = require_global.resetFederationGlobalInfo;
52
+ exports.safeWrapper = require_tool.safeWrapper;
53
+ exports.satisfy = require_index.satisfy;
54
+ exports.setGlobalFederationConstructor = require_global.setGlobalFederationConstructor;
55
+ exports.setGlobalFederationInstance = require_global.setGlobalFederationInstance;
56
+ Object.defineProperty(exports, 'types', {
57
+ enumerable: true,
58
+ get: function () {
59
+ return require_index$3.type_exports;
60
+ }
61
+ });
62
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["helpersDefault","UnavailableRemoteModule","RemoteModule"],"sources":["../src/index.ts"],"sourcesContent":["import helpersDefault, { type IGlobalUtils, type IShareUtils } from './helpers';\nimport { Module as RemoteModule } from './module';\nimport { UnavailableRemoteModule } from './remote/disabled';\n\ndeclare const FEDERATION_OPTIMIZE_NO_REMOTE: boolean;\n\nconst helpers = helpersDefault;\nconst Module = (\n typeof FEDERATION_OPTIMIZE_NO_REMOTE === 'boolean' &&\n FEDERATION_OPTIMIZE_NO_REMOTE\n ? UnavailableRemoteModule\n : RemoteModule\n) as typeof RemoteModule;\n\nexport { ModuleFederation } from './core';\nexport {\n type Federation,\n CurrentGlobal,\n Global,\n getGlobalFederationConstructor,\n setGlobalFederationInstance,\n setGlobalFederationConstructor,\n resetFederationGlobalInfo,\n addGlobalSnapshot,\n getGlobalSnapshot,\n getInfoWithoutType,\n} from './global';\nexport type {\n UserOptions,\n ModuleFederationRuntimePlugin,\n RuntimePluginHooks,\n} from './type';\nexport { assert, error } from './utils/logger';\nexport { registerGlobalPlugins } from './global';\nexport {\n getRemoteEntry,\n getRemoteInfo,\n isStaticResourcesEqual,\n matchRemoteWithNameAndExpose,\n safeWrapper,\n} from './utils';\nexport { getRegisteredShare } from '../src/utils/share';\nexport { loadScript, loadScriptNode } from '@module-federation/sdk';\nexport { Module };\nexport * as types from './type';\nexport { helpers };\nexport { satisfy } from '../src/utils/semver';\nexport type { IGlobalUtils, IShareUtils };\n"],"mappings":";;;;;;;;;;;;;;;;;AAMA,MAAM,UAAUA;AAChB,MAAM,SACJ,OAAO,kCAAkC,aACzC,gCACIC,2CACAC"}