@module-federation/bridge-vue3 0.0.0-next-20250526025159 → 0.0.0-next-20250526035905
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.
- package/CHANGELOG.md +4 -4
- package/dist/index.cjs +5 -5
- package/dist/index.js +702 -696
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -4,14 +4,14 @@ import * as VueRouter from "vue-router";
|
|
|
4
4
|
import { useRoute } from "vue-router";
|
|
5
5
|
function _extends$2() {
|
|
6
6
|
return _extends$2 = Object.assign || function(t) {
|
|
7
|
-
for (var
|
|
8
|
-
var
|
|
9
|
-
for (var s in
|
|
7
|
+
for (var r = 1; r < arguments.length; r++) {
|
|
8
|
+
var o = arguments[r];
|
|
9
|
+
for (var s in o) Object.prototype.hasOwnProperty.call(o, s) && (t[s] = o[s]);
|
|
10
10
|
}
|
|
11
11
|
return t;
|
|
12
12
|
}, _extends$2.apply(this, arguments);
|
|
13
13
|
}
|
|
14
|
-
const MANIFEST_EXT = ".json", BROWSER_LOG_KEY = "FEDERATION_DEBUG", SEPARATOR = ":";
|
|
14
|
+
const MANIFEST_EXT = ".json", BROWSER_LOG_KEY = "FEDERATION_DEBUG", BROWSER_LOG_VALUE = "1", SEPARATOR = ":";
|
|
15
15
|
function isBrowserEnv() {
|
|
16
16
|
return typeof window < "u" && typeof window.document < "u";
|
|
17
17
|
}
|
|
@@ -22,7 +22,7 @@ function isReactNativeEnv() {
|
|
|
22
22
|
function isBrowserDebug() {
|
|
23
23
|
try {
|
|
24
24
|
if (isBrowserEnv() && window.localStorage)
|
|
25
|
-
return
|
|
25
|
+
return localStorage.getItem(BROWSER_LOG_KEY) === BROWSER_LOG_VALUE;
|
|
26
26
|
} catch {
|
|
27
27
|
return !1;
|
|
28
28
|
}
|
|
@@ -32,11 +32,11 @@ function isDebugMode() {
|
|
|
32
32
|
return typeof process < "u" && process.env && process.env.FEDERATION_DEBUG ? !!process.env.FEDERATION_DEBUG : typeof FEDERATION_DEBUG < "u" && FEDERATION_DEBUG ? !0 : isBrowserDebug();
|
|
33
33
|
}
|
|
34
34
|
const LOG_CATEGORY$1 = "[ Federation Runtime ]", composeKeyWithSeparator = function(...n) {
|
|
35
|
-
return n.length ? n.reduce((t,
|
|
35
|
+
return n.length ? n.reduce((t, r) => r ? t ? `${t}${SEPARATOR}${r}` : r : t, "") : "";
|
|
36
36
|
}, getResourceUrl = (n, t) => {
|
|
37
37
|
if ("getPublicPath" in n) {
|
|
38
|
-
let
|
|
39
|
-
return n.getPublicPath.startsWith("function") ?
|
|
38
|
+
let r;
|
|
39
|
+
return n.getPublicPath.startsWith("function") ? r = new Function("return " + n.getPublicPath)()() : r = new Function(n.getPublicPath)(), `${r}${t}`;
|
|
40
40
|
} else return "publicPath" in n ? !isBrowserEnv() && !isReactNativeEnv() && "ssrPublicPath" in n ? `${n.ssrPublicPath}${t}` : `${n.publicPath}${t}` : (console.warn("Cannot get resource URL. If in debug mode, please ignore.", n, t), "");
|
|
41
41
|
}, warn$1 = (n) => {
|
|
42
42
|
console.warn(`${LOG_CATEGORY$1}: ${n}`);
|
|
@@ -51,52 +51,52 @@ function safeToString(n) {
|
|
|
51
51
|
const simpleJoinRemoteEntry = (n, t) => {
|
|
52
52
|
if (!n)
|
|
53
53
|
return t;
|
|
54
|
-
const
|
|
54
|
+
const o = ((s) => {
|
|
55
55
|
if (s === ".")
|
|
56
56
|
return "";
|
|
57
57
|
if (s.startsWith("./"))
|
|
58
58
|
return s.replace("./", "");
|
|
59
59
|
if (s.startsWith("/")) {
|
|
60
|
-
const
|
|
61
|
-
return
|
|
60
|
+
const l = s.slice(1);
|
|
61
|
+
return l.endsWith("/") ? l.slice(0, -1) : l;
|
|
62
62
|
}
|
|
63
63
|
return s;
|
|
64
64
|
})(n);
|
|
65
|
-
return
|
|
65
|
+
return o ? o.endsWith("/") ? `${o}${t}` : `${o}/${t}` : t;
|
|
66
66
|
};
|
|
67
67
|
function inferAutoPublicPath(n) {
|
|
68
68
|
return n.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/");
|
|
69
69
|
}
|
|
70
70
|
function generateSnapshotFromManifest(n, t = {}) {
|
|
71
|
-
var
|
|
72
|
-
const { remotes: s = {}, overrides:
|
|
71
|
+
var r, o;
|
|
72
|
+
const { remotes: s = {}, overrides: l = {}, version: a } = t;
|
|
73
73
|
let i;
|
|
74
|
-
const c = () => "publicPath" in n.metaData ? n.metaData.publicPath === "auto" &&
|
|
74
|
+
const c = () => "publicPath" in n.metaData ? n.metaData.publicPath === "auto" && a ? inferAutoPublicPath(a) : n.metaData.publicPath : n.metaData.getPublicPath, u = Object.keys(l);
|
|
75
75
|
let d = {};
|
|
76
76
|
if (!Object.keys(s).length) {
|
|
77
77
|
var p;
|
|
78
78
|
d = ((p = n.remotes) == null ? void 0 : p.reduce((R, A) => {
|
|
79
79
|
let T;
|
|
80
80
|
const $ = A.federationContainerName;
|
|
81
|
-
return u.includes($) ? T =
|
|
81
|
+
return u.includes($) ? T = l[$] : "version" in A ? T = A.version : T = A.entry, R[$] = {
|
|
82
82
|
matchedVersion: T
|
|
83
83
|
}, R;
|
|
84
84
|
}, {})) || {};
|
|
85
85
|
}
|
|
86
86
|
Object.keys(s).forEach((R) => d[R] = {
|
|
87
87
|
// overrides will override dependencies
|
|
88
|
-
matchedVersion: u.includes(R) ?
|
|
88
|
+
matchedVersion: u.includes(R) ? l[R] : s[R]
|
|
89
89
|
});
|
|
90
|
-
const { remoteEntry: { path: m, name: y, type: E }, types:
|
|
90
|
+
const { remoteEntry: { path: m, name: y, type: E }, types: b, buildInfo: { buildVersion: _ }, globalName: g, ssrRemoteEntry: v } = n.metaData, { exposes: S } = n;
|
|
91
91
|
let I = {
|
|
92
|
-
version:
|
|
92
|
+
version: a || "",
|
|
93
93
|
buildVersion: _,
|
|
94
|
-
globalName:
|
|
94
|
+
globalName: g,
|
|
95
95
|
remoteEntry: simpleJoinRemoteEntry(m, y),
|
|
96
96
|
remoteEntryType: E,
|
|
97
|
-
remoteTypes: simpleJoinRemoteEntry(
|
|
98
|
-
remoteTypesZip:
|
|
99
|
-
remoteTypesAPI:
|
|
97
|
+
remoteTypes: simpleJoinRemoteEntry(b.path, b.name),
|
|
98
|
+
remoteTypesZip: b.zip || "",
|
|
99
|
+
remoteTypesAPI: b.api || "",
|
|
100
100
|
remotesInfo: d,
|
|
101
101
|
shared: n == null ? void 0 : n.shared.map((R) => ({
|
|
102
102
|
assets: R.assets,
|
|
@@ -109,13 +109,13 @@ function generateSnapshotFromManifest(n, t = {}) {
|
|
|
109
109
|
assets: R.assets
|
|
110
110
|
}))
|
|
111
111
|
};
|
|
112
|
-
if ((
|
|
112
|
+
if ((r = n.metaData) != null && r.prefetchInterface) {
|
|
113
113
|
const R = n.metaData.prefetchInterface;
|
|
114
114
|
I = _extends$2({}, I, {
|
|
115
115
|
prefetchInterface: R
|
|
116
116
|
});
|
|
117
117
|
}
|
|
118
|
-
if ((
|
|
118
|
+
if ((o = n.metaData) != null && o.prefetchEntry) {
|
|
119
119
|
const { path: R, name: A, type: T } = n.metaData.prefetchEntry;
|
|
120
120
|
I = _extends$2({}, I, {
|
|
121
121
|
prefetchEntry: simpleJoinRemoteEntry(R, A),
|
|
@@ -171,22 +171,22 @@ function createLogger(n) {
|
|
|
171
171
|
async function safeWrapper(n, t) {
|
|
172
172
|
try {
|
|
173
173
|
return await n();
|
|
174
|
-
} catch (
|
|
175
|
-
warn$1(
|
|
174
|
+
} catch (r) {
|
|
175
|
+
warn$1(r);
|
|
176
176
|
return;
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
function isStaticResourcesEqual(n, t) {
|
|
180
|
-
const
|
|
181
|
-
return
|
|
180
|
+
const r = /^(https?:)?\/\//i, o = n.replace(r, "").replace(/\/$/, ""), s = t.replace(r, "").replace(/\/$/, "");
|
|
181
|
+
return o === s;
|
|
182
182
|
}
|
|
183
183
|
function createScript(n) {
|
|
184
|
-
let t = null,
|
|
185
|
-
const
|
|
186
|
-
for (let i = 0; i <
|
|
187
|
-
const c =
|
|
184
|
+
let t = null, r = !0, o = 2e4, s;
|
|
185
|
+
const l = document.getElementsByTagName("script");
|
|
186
|
+
for (let i = 0; i < l.length; i++) {
|
|
187
|
+
const c = l[i], u = c.getAttribute("src");
|
|
188
188
|
if (u && isStaticResourcesEqual(u, n.url)) {
|
|
189
|
-
t = c,
|
|
189
|
+
t = c, r = !1;
|
|
190
190
|
break;
|
|
191
191
|
}
|
|
192
192
|
}
|
|
@@ -194,11 +194,11 @@ function createScript(n) {
|
|
|
194
194
|
const i = n.attrs;
|
|
195
195
|
t = document.createElement("script"), t.type = (i == null ? void 0 : i.type) === "module" ? "module" : "text/javascript";
|
|
196
196
|
let c;
|
|
197
|
-
n.createScriptHook && (c = n.createScriptHook(n.url, n.attrs), c instanceof HTMLScriptElement ? t = c : typeof c == "object" && ("script" in c && c.script && (t = c.script), "timeout" in c && c.timeout && (
|
|
197
|
+
n.createScriptHook && (c = n.createScriptHook(n.url, n.attrs), c instanceof HTMLScriptElement ? t = c : typeof c == "object" && ("script" in c && c.script && (t = c.script), "timeout" in c && c.timeout && (o = c.timeout))), t.src || (t.src = n.url), i && !c && Object.keys(i).forEach((u) => {
|
|
198
198
|
t && (u === "async" || u === "defer" ? t[u] = i[u] : t.getAttribute(u) || t.setAttribute(u, i[u]));
|
|
199
199
|
});
|
|
200
200
|
}
|
|
201
|
-
const
|
|
201
|
+
const a = async (i, c) => {
|
|
202
202
|
clearTimeout(s);
|
|
203
203
|
const u = () => {
|
|
204
204
|
(c == null ? void 0 : c.type) === "error" ? n != null && n.onErrorCallback && (n == null || n.onErrorCallback(c)) : n != null && n.cb && (n == null || n.cb());
|
|
@@ -216,77 +216,77 @@ function createScript(n) {
|
|
|
216
216
|
}
|
|
217
217
|
u();
|
|
218
218
|
};
|
|
219
|
-
return t.onerror =
|
|
220
|
-
|
|
221
|
-
},
|
|
219
|
+
return t.onerror = a.bind(null, t.onerror), t.onload = a.bind(null, t.onload), s = setTimeout(() => {
|
|
220
|
+
a(null, new Error(`Remote script "${n.url}" time-outed.`));
|
|
221
|
+
}, o), {
|
|
222
222
|
script: t,
|
|
223
|
-
needAttach:
|
|
223
|
+
needAttach: r
|
|
224
224
|
};
|
|
225
225
|
}
|
|
226
226
|
function createLink(n) {
|
|
227
|
-
let t = null,
|
|
228
|
-
const
|
|
229
|
-
for (let
|
|
230
|
-
const
|
|
227
|
+
let t = null, r = !0;
|
|
228
|
+
const o = document.getElementsByTagName("link");
|
|
229
|
+
for (let l = 0; l < o.length; l++) {
|
|
230
|
+
const a = o[l], i = a.getAttribute("href"), c = a.getAttribute("rel");
|
|
231
231
|
if (i && isStaticResourcesEqual(i, n.url) && c === n.attrs.rel) {
|
|
232
|
-
t =
|
|
232
|
+
t = a, r = !1;
|
|
233
233
|
break;
|
|
234
234
|
}
|
|
235
235
|
}
|
|
236
236
|
if (!t) {
|
|
237
237
|
t = document.createElement("link"), t.setAttribute("href", n.url);
|
|
238
|
-
let
|
|
239
|
-
const
|
|
240
|
-
n.createLinkHook && (
|
|
241
|
-
t && !t.getAttribute(i) && t.setAttribute(i,
|
|
238
|
+
let l;
|
|
239
|
+
const a = n.attrs;
|
|
240
|
+
n.createLinkHook && (l = n.createLinkHook(n.url, a), l instanceof HTMLLinkElement && (t = l)), a && !l && Object.keys(a).forEach((i) => {
|
|
241
|
+
t && !t.getAttribute(i) && t.setAttribute(i, a[i]);
|
|
242
242
|
});
|
|
243
243
|
}
|
|
244
|
-
const s = (
|
|
244
|
+
const s = (l, a) => {
|
|
245
245
|
const i = () => {
|
|
246
|
-
(
|
|
246
|
+
(a == null ? void 0 : a.type) === "error" ? n != null && n.onErrorCallback && (n == null || n.onErrorCallback(a)) : n != null && n.cb && (n == null || n.cb());
|
|
247
247
|
};
|
|
248
248
|
if (t && (t.onerror = null, t.onload = null, safeWrapper(() => {
|
|
249
249
|
const { needDeleteLink: c = !0 } = n;
|
|
250
250
|
c && t != null && t.parentNode && t.parentNode.removeChild(t);
|
|
251
|
-
}),
|
|
252
|
-
const c = a
|
|
251
|
+
}), l)) {
|
|
252
|
+
const c = l(a);
|
|
253
253
|
return i(), c;
|
|
254
254
|
}
|
|
255
255
|
i();
|
|
256
256
|
};
|
|
257
257
|
return t.onerror = s.bind(null, t.onerror), t.onload = s.bind(null, t.onload), {
|
|
258
258
|
link: t,
|
|
259
|
-
needAttach:
|
|
259
|
+
needAttach: r
|
|
260
260
|
};
|
|
261
261
|
}
|
|
262
262
|
function loadScript(n, t) {
|
|
263
|
-
const { attrs:
|
|
264
|
-
return new Promise((s,
|
|
265
|
-
const { script:
|
|
263
|
+
const { attrs: r = {}, createScriptHook: o } = t;
|
|
264
|
+
return new Promise((s, l) => {
|
|
265
|
+
const { script: a, needAttach: i } = createScript({
|
|
266
266
|
url: n,
|
|
267
267
|
cb: s,
|
|
268
|
-
onErrorCallback:
|
|
268
|
+
onErrorCallback: l,
|
|
269
269
|
attrs: _extends$2({
|
|
270
270
|
fetchpriority: "high"
|
|
271
|
-
},
|
|
272
|
-
createScriptHook:
|
|
271
|
+
}, r),
|
|
272
|
+
createScriptHook: o,
|
|
273
273
|
needDeleteScript: !0
|
|
274
274
|
});
|
|
275
|
-
i && document.head.appendChild(
|
|
275
|
+
i && document.head.appendChild(a);
|
|
276
276
|
});
|
|
277
277
|
}
|
|
278
278
|
function importNodeModule(n) {
|
|
279
279
|
if (!n)
|
|
280
280
|
throw new Error("import specifier is required");
|
|
281
|
-
return new Function("name", "return import(name)")(n).then((
|
|
282
|
-
throw console.error(`Error importing module ${n}:`,
|
|
281
|
+
return new Function("name", "return import(name)")(n).then((r) => r).catch((r) => {
|
|
282
|
+
throw console.error(`Error importing module ${n}:`, r), r;
|
|
283
283
|
});
|
|
284
284
|
}
|
|
285
285
|
const loadNodeFetch = async () => {
|
|
286
286
|
const n = await importNodeModule("node-fetch");
|
|
287
287
|
return n.default || n;
|
|
288
|
-
}, lazyLoaderHookFetch = async (n, t,
|
|
289
|
-
const s = await ((
|
|
288
|
+
}, lazyLoaderHookFetch = async (n, t, r) => {
|
|
289
|
+
const s = await ((l, a) => r.lifecycle.fetch.emit(l, a))(n, t || {});
|
|
290
290
|
return !s || !(s instanceof Response) ? (typeof fetch > "u" ? await loadNodeFetch() : fetch)(n, t || {}) : s;
|
|
291
291
|
}, createScriptNode = typeof ENV_TARGET > "u" || ENV_TARGET !== "web" ? (url, cb, attrs, loaderHook) => {
|
|
292
292
|
if (loaderHook != null && loaderHook.createScriptHook) {
|
|
@@ -344,66 +344,66 @@ const loadNodeFetch = async () => {
|
|
|
344
344
|
}).catch((n) => {
|
|
345
345
|
cb(n);
|
|
346
346
|
});
|
|
347
|
-
} : (n, t,
|
|
347
|
+
} : (n, t, r, o) => {
|
|
348
348
|
t(new Error("createScriptNode is disabled in non-Node.js environment"));
|
|
349
|
-
}, loadScriptNode = typeof ENV_TARGET > "u" || ENV_TARGET !== "web" ? (n, t) => new Promise((
|
|
350
|
-
createScriptNode(n, (s,
|
|
349
|
+
}, loadScriptNode = typeof ENV_TARGET > "u" || ENV_TARGET !== "web" ? (n, t) => new Promise((r, o) => {
|
|
350
|
+
createScriptNode(n, (s, l) => {
|
|
351
351
|
if (s)
|
|
352
|
-
|
|
352
|
+
o(s);
|
|
353
353
|
else {
|
|
354
|
-
var
|
|
355
|
-
const c = (t == null || (
|
|
356
|
-
|
|
354
|
+
var a, i;
|
|
355
|
+
const c = (t == null || (a = t.attrs) == null ? void 0 : a.globalName) || `__FEDERATION_${t == null || (i = t.attrs) == null ? void 0 : i.name}:custom__`, u = globalThis[c] = l;
|
|
356
|
+
r(u);
|
|
357
357
|
}
|
|
358
358
|
}, t.attrs, t.loaderHook);
|
|
359
359
|
}) : (n, t) => {
|
|
360
360
|
throw new Error("loadScriptNode is disabled in non-Node.js environment");
|
|
361
361
|
};
|
|
362
362
|
async function loadModule(n, t) {
|
|
363
|
-
const { fetch:
|
|
363
|
+
const { fetch: r, vm: o } = t, l = await (await r(n)).text(), a = new o.SourceTextModule(l, {
|
|
364
364
|
// @ts-ignore
|
|
365
365
|
importModuleDynamically: async (i, c) => {
|
|
366
366
|
const u = new URL(i, n).href;
|
|
367
367
|
return loadModule(u, t);
|
|
368
368
|
}
|
|
369
369
|
});
|
|
370
|
-
return await
|
|
370
|
+
return await a.link(async (i) => {
|
|
371
371
|
const c = new URL(i, n).href;
|
|
372
372
|
return await loadModule(c, t);
|
|
373
|
-
}),
|
|
373
|
+
}), a;
|
|
374
374
|
}
|
|
375
375
|
const LoggerInstance = createLogger("[ Module Federation Bridge Vue3 ]");
|
|
376
376
|
function _extends$1() {
|
|
377
377
|
return _extends$1 = Object.assign || function(t) {
|
|
378
|
-
for (var
|
|
379
|
-
var
|
|
380
|
-
for (var s in
|
|
378
|
+
for (var r = 1; r < arguments.length; r++) {
|
|
379
|
+
var o = arguments[r];
|
|
380
|
+
for (var s in o) Object.prototype.hasOwnProperty.call(o, s) && (t[s] = o[s]);
|
|
381
381
|
}
|
|
382
382
|
return t;
|
|
383
383
|
}, _extends$1.apply(this, arguments);
|
|
384
384
|
}
|
|
385
385
|
function _object_without_properties_loose(n, t) {
|
|
386
386
|
if (n == null) return {};
|
|
387
|
-
var
|
|
388
|
-
for (
|
|
389
|
-
s =
|
|
390
|
-
return
|
|
387
|
+
var r = {}, o = Object.keys(n), s, l;
|
|
388
|
+
for (l = 0; l < o.length; l++)
|
|
389
|
+
s = o[l], !(t.indexOf(s) >= 0) && (r[s] = n[s]);
|
|
390
|
+
return r;
|
|
391
391
|
}
|
|
392
|
-
const RUNTIME_001 = "RUNTIME-001", RUNTIME_002 = "RUNTIME-002", RUNTIME_003 = "RUNTIME-003", RUNTIME_004 = "RUNTIME-004", RUNTIME_005 = "RUNTIME-005", RUNTIME_006 = "RUNTIME-006", RUNTIME_007 = "RUNTIME-007", RUNTIME_008 = "RUNTIME-008", TYPE_001 = "TYPE-001", BUILD_001 = "BUILD-001", getDocsUrl = (n) => `View the docs to see how to solve: https://module-federation.io/guide/troubleshooting/${n.split("-")[0].toLowerCase()}/${n}`, getShortErrorMsg = (n, t,
|
|
392
|
+
const RUNTIME_001 = "RUNTIME-001", RUNTIME_002 = "RUNTIME-002", RUNTIME_003 = "RUNTIME-003", RUNTIME_004 = "RUNTIME-004", RUNTIME_005 = "RUNTIME-005", RUNTIME_006 = "RUNTIME-006", RUNTIME_007 = "RUNTIME-007", RUNTIME_008 = "RUNTIME-008", TYPE_001 = "TYPE-001", BUILD_001 = "BUILD-001", getDocsUrl = (n) => `View the docs to see how to solve: https://module-federation.io/guide/troubleshooting/${n.split("-")[0].toLowerCase()}/${n}`, getShortErrorMsg = (n, t, r, o) => {
|
|
393
393
|
const s = [
|
|
394
394
|
`${[
|
|
395
395
|
t[n]
|
|
396
396
|
]} #${n}`
|
|
397
397
|
];
|
|
398
|
-
return
|
|
399
|
-
${
|
|
398
|
+
return r && s.push(`args: ${JSON.stringify(r)}`), s.push(getDocsUrl(n)), o && s.push(`Original Error Message:
|
|
399
|
+
${o}`), s.join(`
|
|
400
400
|
`);
|
|
401
401
|
};
|
|
402
402
|
function _extends() {
|
|
403
403
|
return _extends = Object.assign || function(t) {
|
|
404
|
-
for (var
|
|
405
|
-
var
|
|
406
|
-
for (var s in
|
|
404
|
+
for (var r = 1; r < arguments.length; r++) {
|
|
405
|
+
var o = arguments[r];
|
|
406
|
+
for (var s in o) Object.prototype.hasOwnProperty.call(o, s) && (t[s] = o[s]);
|
|
407
407
|
}
|
|
408
408
|
return t;
|
|
409
409
|
}, _extends.apply(this, arguments);
|
|
@@ -434,7 +434,7 @@ function warn(n) {
|
|
|
434
434
|
n instanceof Error && (n.message = `${LOG_CATEGORY}: ${n.message}`), logger.warn(n);
|
|
435
435
|
}
|
|
436
436
|
function addUniqueItem(n, t) {
|
|
437
|
-
return n.findIndex((
|
|
437
|
+
return n.findIndex((r) => r === t) === -1 && n.push(t), n;
|
|
438
438
|
}
|
|
439
439
|
function getFMId(n) {
|
|
440
440
|
return "version" in n && n.version ? `${n.name}:${n.version}` : "entry" in n && n.entry ? `${n.name}:${n.entry}` : `${n.name}`;
|
|
@@ -474,8 +474,8 @@ function getRemoteEntryInfoFromSnapshot(n) {
|
|
|
474
474
|
} : t;
|
|
475
475
|
}
|
|
476
476
|
const processModuleAlias = (n, t) => {
|
|
477
|
-
let
|
|
478
|
-
return n.endsWith("/") ?
|
|
477
|
+
let r;
|
|
478
|
+
return n.endsWith("/") ? r = n.slice(0, -1) : r = n, t.startsWith(".") && (t = t.slice(1)), r = r + t, r;
|
|
479
479
|
}, CurrentGlobal = typeof globalThis == "object" ? globalThis : window, nativeGlobal = (() => {
|
|
480
480
|
try {
|
|
481
481
|
return document.defaultView;
|
|
@@ -483,9 +483,9 @@ const processModuleAlias = (n, t) => {
|
|
|
483
483
|
return CurrentGlobal;
|
|
484
484
|
}
|
|
485
485
|
})(), Global = nativeGlobal;
|
|
486
|
-
function definePropertyGlobalVal(n, t,
|
|
486
|
+
function definePropertyGlobalVal(n, t, r) {
|
|
487
487
|
Object.defineProperty(n, t, {
|
|
488
|
-
value:
|
|
488
|
+
value: r,
|
|
489
489
|
configurable: !1,
|
|
490
490
|
writable: !0
|
|
491
491
|
});
|
|
@@ -496,7 +496,7 @@ function includeOwnProperty(n, t) {
|
|
|
496
496
|
includeOwnProperty(CurrentGlobal, "__GLOBAL_LOADING_REMOTE_ENTRY__") || definePropertyGlobalVal(CurrentGlobal, "__GLOBAL_LOADING_REMOTE_ENTRY__", {});
|
|
497
497
|
const globalLoading = CurrentGlobal.__GLOBAL_LOADING_REMOTE_ENTRY__;
|
|
498
498
|
function setGlobalDefaultVal(n) {
|
|
499
|
-
var t,
|
|
499
|
+
var t, r, o, s, l, a;
|
|
500
500
|
includeOwnProperty(n, "__VMOK__") && !includeOwnProperty(n, "__FEDERATION__") && definePropertyGlobalVal(n, "__FEDERATION__", n.__VMOK__), includeOwnProperty(n, "__FEDERATION__") || (definePropertyGlobalVal(n, "__FEDERATION__", {
|
|
501
501
|
__GLOBAL_PLUGIN__: [],
|
|
502
502
|
__INSTANCES__: [],
|
|
@@ -508,15 +508,15 @@ function setGlobalDefaultVal(n) {
|
|
|
508
508
|
var i;
|
|
509
509
|
(i = (t = n.__FEDERATION__).__GLOBAL_PLUGIN__) != null || (t.__GLOBAL_PLUGIN__ = []);
|
|
510
510
|
var c;
|
|
511
|
-
(c = (
|
|
511
|
+
(c = (r = n.__FEDERATION__).__INSTANCES__) != null || (r.__INSTANCES__ = []);
|
|
512
512
|
var u;
|
|
513
|
-
(u = (
|
|
513
|
+
(u = (o = n.__FEDERATION__).moduleInfo) != null || (o.moduleInfo = {});
|
|
514
514
|
var d;
|
|
515
515
|
(d = (s = n.__FEDERATION__).__SHARE__) != null || (s.__SHARE__ = {});
|
|
516
516
|
var p;
|
|
517
|
-
(p = (
|
|
517
|
+
(p = (l = n.__FEDERATION__).__MANIFEST_LOADING__) != null || (l.__MANIFEST_LOADING__ = {});
|
|
518
518
|
var m;
|
|
519
|
-
(m = (
|
|
519
|
+
(m = (a = n.__FEDERATION__).__PRELOADED_MAP__) != null || (a.__PRELOADED_MAP__ = /* @__PURE__ */ new Map());
|
|
520
520
|
}
|
|
521
521
|
setGlobalDefaultVal(CurrentGlobal);
|
|
522
522
|
setGlobalDefaultVal(nativeGlobal);
|
|
@@ -531,9 +531,9 @@ function getInfoWithoutType(n, t) {
|
|
|
531
531
|
key: t
|
|
532
532
|
};
|
|
533
533
|
{
|
|
534
|
-
const
|
|
535
|
-
for (const s of
|
|
536
|
-
const [
|
|
534
|
+
const o = Object.keys(n);
|
|
535
|
+
for (const s of o) {
|
|
536
|
+
const [l, a] = s.split(":"), i = `${l}:${t}`, c = n[i];
|
|
537
537
|
if (c)
|
|
538
538
|
return {
|
|
539
539
|
value: c,
|
|
@@ -549,28 +549,28 @@ function getInfoWithoutType(n, t) {
|
|
|
549
549
|
throw new Error("key must be string");
|
|
550
550
|
}
|
|
551
551
|
const getGlobalSnapshot = () => nativeGlobal.__FEDERATION__.moduleInfo, getTargetSnapshotInfoByModuleInfo = (n, t) => {
|
|
552
|
-
const
|
|
553
|
-
if (
|
|
554
|
-
return
|
|
552
|
+
const r = getFMId(n), o = getInfoWithoutType(t, r).value;
|
|
553
|
+
if (o && !o.version && "version" in n && n.version && (o.version = n.version), o)
|
|
554
|
+
return o;
|
|
555
555
|
if ("version" in n && n.version) {
|
|
556
|
-
const { version: s } = n,
|
|
556
|
+
const { version: s } = n, l = _object_without_properties_loose(n, [
|
|
557
557
|
"version"
|
|
558
|
-
]),
|
|
558
|
+
]), a = getFMId(l), i = getInfoWithoutType(nativeGlobal.__FEDERATION__.moduleInfo, a).value;
|
|
559
559
|
if ((i == null ? void 0 : i.version) === s)
|
|
560
560
|
return i;
|
|
561
561
|
}
|
|
562
562
|
}, getGlobalSnapshotInfoByModuleInfo = (n) => getTargetSnapshotInfoByModuleInfo(n, nativeGlobal.__FEDERATION__.moduleInfo), setGlobalSnapshotInfoByModuleInfo = (n, t) => {
|
|
563
|
-
const
|
|
564
|
-
return nativeGlobal.__FEDERATION__.moduleInfo[
|
|
563
|
+
const r = getFMId(n);
|
|
564
|
+
return nativeGlobal.__FEDERATION__.moduleInfo[r] = t, nativeGlobal.__FEDERATION__.moduleInfo;
|
|
565
565
|
}, addGlobalSnapshot = (n) => (nativeGlobal.__FEDERATION__.moduleInfo = _extends$1({}, nativeGlobal.__FEDERATION__.moduleInfo, n), () => {
|
|
566
566
|
const t = Object.keys(n);
|
|
567
|
-
for (const
|
|
568
|
-
delete nativeGlobal.__FEDERATION__.moduleInfo[
|
|
567
|
+
for (const r of t)
|
|
568
|
+
delete nativeGlobal.__FEDERATION__.moduleInfo[r];
|
|
569
569
|
}), getRemoteEntryExports = (n, t) => {
|
|
570
|
-
const
|
|
570
|
+
const r = t || `__FEDERATION_${n}:custom__`, o = CurrentGlobal[r];
|
|
571
571
|
return {
|
|
572
|
-
remoteEntryKey:
|
|
573
|
-
entryExports:
|
|
572
|
+
remoteEntryKey: r,
|
|
573
|
+
entryExports: o
|
|
574
574
|
};
|
|
575
575
|
}, getGlobalHostPlugins = () => nativeGlobal.__FEDERATION__.__GLOBAL_PLUGIN__, getPreloaded = (n) => CurrentGlobal.__FEDERATION__.__PRELOADED_MAP__.get(n), setPreloaded = (n) => CurrentGlobal.__FEDERATION__.__PRELOADED_MAP__.set(n, !0), DEFAULT_SCOPE = "default", DEFAULT_REMOTE_TYPE = "global", buildIdentifier = "[0-9A-Za-z-]+", build = `(?:\\+(${buildIdentifier}(?:\\.${buildIdentifier})*))`, numericIdentifier = "0|[1-9]\\d*", numericIdentifierLoose = "[0-9]+", nonNumericIdentifier = "\\d*[a-zA-Z-][a-zA-Z0-9-]*", preReleaseIdentifierLoose = `(?:${numericIdentifierLoose}|${nonNumericIdentifier})`, preReleaseLoose = `(?:-?(${preReleaseIdentifierLoose}(?:\\.${preReleaseIdentifierLoose})*))`, preReleaseIdentifier = `(?:${numericIdentifier}|${nonNumericIdentifier})`, preRelease = `(?:-(${preReleaseIdentifier}(?:\\.${preReleaseIdentifier})*))`, xRangeIdentifier = `${numericIdentifier}|x|X|\\*`, xRangePlain = `[v=\\s]*(${xRangeIdentifier})(?:\\.(${xRangeIdentifier})(?:\\.(${xRangeIdentifier})(?:${preRelease})?${build}?)?)?`, hyphenRange = `^\\s*(${xRangePlain})\\s+-\\s+(${xRangePlain})\\s*$`, mainVersionLoose = `(${numericIdentifierLoose})\\.(${numericIdentifierLoose})\\.(${numericIdentifierLoose})`, loosePlain = `[v=\\s]*${mainVersionLoose}${preReleaseLoose}?${build}?`, gtlt = "((?:<|>)?=?)", comparatorTrim = `(\\s*)${gtlt}\\s*(${loosePlain}|${xRangePlain})`, loneTilde = "(?:~>?)", tildeTrim = `(\\s*)${loneTilde}\\s+`, loneCaret = "(?:\\^)", caretTrim = `(\\s*)${loneCaret}\\s+`, star = "(<|>)?=?\\s*\\*", caret = `^${loneCaret}${xRangePlain}$`, mainVersion = `(${numericIdentifier})\\.(${numericIdentifier})\\.(${numericIdentifier})`, fullPlain = `v?${mainVersion}${preRelease}?${build}?`, tilde = `^${loneTilde}${xRangePlain}$`, xRange = `^${gtlt}\\s*${xRangePlain}$`, comparator = `^${gtlt}\\s*(${fullPlain})$|^$`, gte0 = "^\\s*>=\\s*0.0.0\\s*$";
|
|
576
576
|
function parseRegex(n) {
|
|
@@ -580,17 +580,17 @@ function isXVersion(n) {
|
|
|
580
580
|
return !n || n.toLowerCase() === "x" || n === "*";
|
|
581
581
|
}
|
|
582
582
|
function pipe(...n) {
|
|
583
|
-
return (t) => n.reduce((
|
|
583
|
+
return (t) => n.reduce((r, o) => o(r), t);
|
|
584
584
|
}
|
|
585
585
|
function extractComparator(n) {
|
|
586
586
|
return n.match(parseRegex(comparator));
|
|
587
587
|
}
|
|
588
|
-
function combineVersion(n, t,
|
|
589
|
-
const s = `${n}.${t}.${
|
|
590
|
-
return
|
|
588
|
+
function combineVersion(n, t, r, o) {
|
|
589
|
+
const s = `${n}.${t}.${r}`;
|
|
590
|
+
return o ? `${s}-${o}` : s;
|
|
591
591
|
}
|
|
592
592
|
function parseHyphen(n) {
|
|
593
|
-
return n.replace(parseRegex(hyphenRange), (t,
|
|
593
|
+
return n.replace(parseRegex(hyphenRange), (t, r, o, s, l, a, i, c, u, d, p, m) => (isXVersion(o) ? r = "" : isXVersion(s) ? r = `>=${o}.0.0` : isXVersion(l) ? r = `>=${o}.${s}.0` : r = `>=${r}`, isXVersion(u) ? c = "" : isXVersion(d) ? c = `<${Number(u) + 1}.0.0-0` : isXVersion(p) ? c = `<${u}.${Number(d) + 1}.0-0` : m ? c = `<=${u}.${d}.${p}-${m}` : c = `<=${c}`, `${r} ${c}`.trim()));
|
|
594
594
|
}
|
|
595
595
|
function parseComparatorTrim(n) {
|
|
596
596
|
return n.replace(parseRegex(comparatorTrim), "$1$2$3");
|
|
@@ -602,15 +602,15 @@ function parseCaretTrim(n) {
|
|
|
602
602
|
return n.replace(parseRegex(caretTrim), "$1^");
|
|
603
603
|
}
|
|
604
604
|
function parseCarets(n) {
|
|
605
|
-
return n.trim().split(/\s+/).map((t) => t.replace(parseRegex(caret), (
|
|
605
|
+
return n.trim().split(/\s+/).map((t) => t.replace(parseRegex(caret), (r, o, s, l, a) => isXVersion(o) ? "" : isXVersion(s) ? `>=${o}.0.0 <${Number(o) + 1}.0.0-0` : isXVersion(l) ? o === "0" ? `>=${o}.${s}.0 <${o}.${Number(s) + 1}.0-0` : `>=${o}.${s}.0 <${Number(o) + 1}.0.0-0` : a ? o === "0" ? s === "0" ? `>=${o}.${s}.${l}-${a} <${o}.${s}.${Number(l) + 1}-0` : `>=${o}.${s}.${l}-${a} <${o}.${Number(s) + 1}.0-0` : `>=${o}.${s}.${l}-${a} <${Number(o) + 1}.0.0-0` : o === "0" ? s === "0" ? `>=${o}.${s}.${l} <${o}.${s}.${Number(l) + 1}-0` : `>=${o}.${s}.${l} <${o}.${Number(s) + 1}.0-0` : `>=${o}.${s}.${l} <${Number(o) + 1}.0.0-0`)).join(" ");
|
|
606
606
|
}
|
|
607
607
|
function parseTildes(n) {
|
|
608
|
-
return n.trim().split(/\s+/).map((t) => t.replace(parseRegex(tilde), (
|
|
608
|
+
return n.trim().split(/\s+/).map((t) => t.replace(parseRegex(tilde), (r, o, s, l, a) => isXVersion(o) ? "" : isXVersion(s) ? `>=${o}.0.0 <${Number(o) + 1}.0.0-0` : isXVersion(l) ? `>=${o}.${s}.0 <${o}.${Number(s) + 1}.0-0` : a ? `>=${o}.${s}.${l}-${a} <${o}.${Number(s) + 1}.0-0` : `>=${o}.${s}.${l} <${o}.${Number(s) + 1}.0-0`)).join(" ");
|
|
609
609
|
}
|
|
610
610
|
function parseXRanges(n) {
|
|
611
|
-
return n.split(/\s+/).map((t) => t.trim().replace(parseRegex(xRange), (
|
|
612
|
-
const c = isXVersion(s), u = c || isXVersion(
|
|
613
|
-
return
|
|
611
|
+
return n.split(/\s+/).map((t) => t.trim().replace(parseRegex(xRange), (r, o, s, l, a, i) => {
|
|
612
|
+
const c = isXVersion(s), u = c || isXVersion(l), d = u || isXVersion(a);
|
|
613
|
+
return o === "=" && d && (o = ""), i = "", c ? o === ">" || o === "<" ? "<0.0.0-0" : "*" : o && d ? (u && (l = 0), a = 0, o === ">" ? (o = ">=", u ? (s = Number(s) + 1, l = 0, a = 0) : (l = Number(l) + 1, a = 0)) : o === "<=" && (o = "<", u ? s = Number(s) + 1 : l = Number(l) + 1), o === "<" && (i = "-0"), `${o + s}.${l}.${a}${i}`) : u ? `>=${s}.0.0${i} <${Number(s) + 1}.0.0-0` : d ? `>=${s}.${l}.0${i} <${s}.${Number(l) + 1}.0-0` : r;
|
|
614
614
|
})).join(" ");
|
|
615
615
|
}
|
|
616
616
|
function parseStar(n) {
|
|
@@ -623,17 +623,17 @@ function compareAtom(n, t) {
|
|
|
623
623
|
return n = Number(n) || n, t = Number(t) || t, n > t ? 1 : n === t ? 0 : -1;
|
|
624
624
|
}
|
|
625
625
|
function comparePreRelease(n, t) {
|
|
626
|
-
const { preRelease:
|
|
627
|
-
if (
|
|
626
|
+
const { preRelease: r } = n, { preRelease: o } = t;
|
|
627
|
+
if (r === void 0 && o)
|
|
628
628
|
return 1;
|
|
629
|
-
if (
|
|
629
|
+
if (r && o === void 0)
|
|
630
630
|
return -1;
|
|
631
|
-
if (
|
|
631
|
+
if (r === void 0 && o === void 0)
|
|
632
632
|
return 0;
|
|
633
|
-
for (let s = 0,
|
|
634
|
-
const
|
|
635
|
-
if (
|
|
636
|
-
return
|
|
633
|
+
for (let s = 0, l = r.length; s <= l; s++) {
|
|
634
|
+
const a = r[s], i = o[s];
|
|
635
|
+
if (a !== i)
|
|
636
|
+
return a === void 0 && i === void 0 ? 0 : a ? i ? compareAtom(a, i) : -1 : 1;
|
|
637
637
|
}
|
|
638
638
|
return 0;
|
|
639
639
|
}
|
|
@@ -703,10 +703,10 @@ function parseRange(n) {
|
|
|
703
703
|
function satisfy(n, t) {
|
|
704
704
|
if (!n)
|
|
705
705
|
return !1;
|
|
706
|
-
const s = parseRange(t).split(" ").map((m) => parseComparatorString(m)).join(" ").split(/\s+/).map((m) => parseGTE0(m)),
|
|
707
|
-
if (!
|
|
706
|
+
const s = parseRange(t).split(" ").map((m) => parseComparatorString(m)).join(" ").split(/\s+/).map((m) => parseGTE0(m)), l = extractComparator(n);
|
|
707
|
+
if (!l)
|
|
708
708
|
return !1;
|
|
709
|
-
const [,
|
|
709
|
+
const [, a, , i, c, u, d] = l, p = {
|
|
710
710
|
version: combineVersion(i, c, u, d),
|
|
711
711
|
major: i,
|
|
712
712
|
minor: c,
|
|
@@ -717,12 +717,12 @@ function satisfy(n, t) {
|
|
|
717
717
|
const y = extractComparator(m);
|
|
718
718
|
if (!y)
|
|
719
719
|
return !1;
|
|
720
|
-
const [, E, ,
|
|
720
|
+
const [, E, , b, _, g, v] = y, S = {
|
|
721
721
|
operator: E,
|
|
722
|
-
version: combineVersion(
|
|
723
|
-
major:
|
|
722
|
+
version: combineVersion(b, _, g, v),
|
|
723
|
+
major: b,
|
|
724
724
|
minor: _,
|
|
725
|
-
patch:
|
|
725
|
+
patch: g,
|
|
726
726
|
preRelease: v == null ? void 0 : v.split(".")
|
|
727
727
|
};
|
|
728
728
|
if (!compare(S, p))
|
|
@@ -730,12 +730,12 @@ function satisfy(n, t) {
|
|
|
730
730
|
}
|
|
731
731
|
return !0;
|
|
732
732
|
}
|
|
733
|
-
function formatShare(n, t,
|
|
733
|
+
function formatShare(n, t, r, o) {
|
|
734
734
|
let s;
|
|
735
735
|
"get" in n ? s = n.get : "lib" in n ? s = () => Promise.resolve(n.lib) : s = () => Promise.resolve(() => {
|
|
736
|
-
throw new Error(`Can not get shared '${
|
|
736
|
+
throw new Error(`Can not get shared '${r}'!`);
|
|
737
737
|
});
|
|
738
|
-
var
|
|
738
|
+
var l, a, i;
|
|
739
739
|
return _extends$1({
|
|
740
740
|
deps: [],
|
|
741
741
|
useIn: [],
|
|
@@ -750,84 +750,84 @@ function formatShare(n, t, o, r) {
|
|
|
750
750
|
}, n.shareConfig),
|
|
751
751
|
get: s,
|
|
752
752
|
loaded: n != null && n.loaded || "lib" in n ? !0 : void 0,
|
|
753
|
-
version: (
|
|
753
|
+
version: (l = n.version) != null ? l : "0",
|
|
754
754
|
scope: Array.isArray(n.scope) ? n.scope : [
|
|
755
|
-
(
|
|
755
|
+
(a = n.scope) != null ? a : "default"
|
|
756
756
|
],
|
|
757
|
-
strategy: ((i = n.strategy) != null ? i :
|
|
757
|
+
strategy: ((i = n.strategy) != null ? i : o) || "version-first"
|
|
758
758
|
});
|
|
759
759
|
}
|
|
760
760
|
function formatShareConfigs(n, t) {
|
|
761
|
-
const
|
|
762
|
-
const c = arrayOptions(
|
|
763
|
-
return
|
|
764
|
-
|
|
765
|
-
}),
|
|
766
|
-
}, {}),
|
|
767
|
-
return Object.keys(s).forEach((
|
|
768
|
-
a
|
|
769
|
-
a
|
|
770
|
-
}) : a
|
|
761
|
+
const r = t.shared || {}, o = t.name, s = Object.keys(r).reduce((a, i) => {
|
|
762
|
+
const c = arrayOptions(r[i]);
|
|
763
|
+
return a[i] = a[i] || [], c.forEach((u) => {
|
|
764
|
+
a[i].push(formatShare(u, o, i, t.shareStrategy));
|
|
765
|
+
}), a;
|
|
766
|
+
}, {}), l = _extends$1({}, n.shared);
|
|
767
|
+
return Object.keys(s).forEach((a) => {
|
|
768
|
+
l[a] ? s[a].forEach((i) => {
|
|
769
|
+
l[a].find((u) => u.version === i.version) || l[a].push(i);
|
|
770
|
+
}) : l[a] = s[a];
|
|
771
771
|
}), {
|
|
772
|
-
shared:
|
|
772
|
+
shared: l,
|
|
773
773
|
shareInfos: s
|
|
774
774
|
};
|
|
775
775
|
}
|
|
776
776
|
function versionLt(n, t) {
|
|
777
|
-
const
|
|
778
|
-
if (!Number.isNaN(Number(
|
|
779
|
-
const
|
|
780
|
-
let
|
|
781
|
-
for (let i = 0; i < 3 -
|
|
782
|
-
|
|
783
|
-
return
|
|
777
|
+
const r = (o) => {
|
|
778
|
+
if (!Number.isNaN(Number(o))) {
|
|
779
|
+
const l = o.split(".");
|
|
780
|
+
let a = o;
|
|
781
|
+
for (let i = 0; i < 3 - l.length; i++)
|
|
782
|
+
a += ".0";
|
|
783
|
+
return a;
|
|
784
784
|
}
|
|
785
|
-
return
|
|
785
|
+
return o;
|
|
786
786
|
};
|
|
787
|
-
return !!satisfy(
|
|
787
|
+
return !!satisfy(r(n), `<=${r(t)}`);
|
|
788
788
|
}
|
|
789
789
|
const findVersion = (n, t) => {
|
|
790
|
-
const
|
|
791
|
-
return versionLt(
|
|
790
|
+
const r = t || function(o, s) {
|
|
791
|
+
return versionLt(o, s);
|
|
792
792
|
};
|
|
793
|
-
return Object.keys(n).reduce((
|
|
793
|
+
return Object.keys(n).reduce((o, s) => !o || r(o, s) || o === "0" ? s : o, 0);
|
|
794
794
|
}, isLoaded = (n) => !!n.loaded || typeof n.lib == "function", isLoading = (n) => !!n.loading;
|
|
795
|
-
function findSingletonVersionOrderByVersion(n, t,
|
|
796
|
-
const
|
|
797
|
-
return !isLoaded(
|
|
795
|
+
function findSingletonVersionOrderByVersion(n, t, r) {
|
|
796
|
+
const o = n[t][r], s = function(l, a) {
|
|
797
|
+
return !isLoaded(o[l]) && versionLt(l, a);
|
|
798
798
|
};
|
|
799
|
-
return findVersion(n[t][
|
|
799
|
+
return findVersion(n[t][r], s);
|
|
800
800
|
}
|
|
801
|
-
function findSingletonVersionOrderByLoaded(n, t,
|
|
802
|
-
const
|
|
801
|
+
function findSingletonVersionOrderByLoaded(n, t, r) {
|
|
802
|
+
const o = n[t][r], s = function(l, a) {
|
|
803
803
|
const i = (c) => isLoaded(c) || isLoading(c);
|
|
804
|
-
return i(
|
|
804
|
+
return i(o[a]) ? i(o[l]) ? !!versionLt(l, a) : !0 : i(o[l]) ? !1 : versionLt(l, a);
|
|
805
805
|
};
|
|
806
|
-
return findVersion(n[t][
|
|
806
|
+
return findVersion(n[t][r], s);
|
|
807
807
|
}
|
|
808
808
|
function getFindShareFunction(n) {
|
|
809
809
|
return n === "loaded-first" ? findSingletonVersionOrderByLoaded : findSingletonVersionOrderByVersion;
|
|
810
810
|
}
|
|
811
|
-
function getRegisteredShare(n, t,
|
|
811
|
+
function getRegisteredShare(n, t, r, o) {
|
|
812
812
|
if (!n)
|
|
813
813
|
return;
|
|
814
|
-
const { shareConfig: s, scope:
|
|
815
|
-
|
|
814
|
+
const { shareConfig: s, scope: l = DEFAULT_SCOPE, strategy: a } = r, i = Array.isArray(l) ? l : [
|
|
815
|
+
l
|
|
816
816
|
];
|
|
817
817
|
for (const c of i)
|
|
818
818
|
if (s && n[c] && n[c][t]) {
|
|
819
|
-
const { requiredVersion: u } = s, p = getFindShareFunction(
|
|
819
|
+
const { requiredVersion: u } = s, p = getFindShareFunction(a)(n, c, t), m = () => {
|
|
820
820
|
if (s.singleton) {
|
|
821
821
|
if (typeof u == "string" && !satisfy(p, u)) {
|
|
822
|
-
const
|
|
823
|
-
s.strictVersion ? error(
|
|
822
|
+
const b = `Version ${p} from ${p && n[c][t][p].from} of shared singleton module ${t} does not satisfy the requirement of ${r.from} which needs ${u})`;
|
|
823
|
+
s.strictVersion ? error(b) : warn(b);
|
|
824
824
|
}
|
|
825
825
|
return n[c][t][p];
|
|
826
826
|
} else {
|
|
827
827
|
if (u === !1 || u === "*" || satisfy(p, u))
|
|
828
828
|
return n[c][t][p];
|
|
829
|
-
for (const [
|
|
830
|
-
if (satisfy(
|
|
829
|
+
for (const [b, _] of Object.entries(n[c][t]))
|
|
830
|
+
if (satisfy(b, u))
|
|
831
831
|
return _;
|
|
832
832
|
}
|
|
833
833
|
}, y = {
|
|
@@ -838,14 +838,14 @@ function getRegisteredShare(n, t, o, r) {
|
|
|
838
838
|
GlobalFederation: Global.__FEDERATION__,
|
|
839
839
|
resolver: m
|
|
840
840
|
};
|
|
841
|
-
return (
|
|
841
|
+
return (o.emit(y) || y).resolver();
|
|
842
842
|
}
|
|
843
843
|
}
|
|
844
844
|
function getGlobalShareScope() {
|
|
845
845
|
return Global.__FEDERATION__.__SHARE__;
|
|
846
846
|
}
|
|
847
847
|
function getTargetSharedOptions(n) {
|
|
848
|
-
const { pkgName: t, extraOptions:
|
|
848
|
+
const { pkgName: t, extraOptions: r, shareInfos: o } = n, s = (i) => {
|
|
849
849
|
if (!i)
|
|
850
850
|
return;
|
|
851
851
|
const c = {};
|
|
@@ -857,152 +857,152 @@ function getTargetSharedOptions(n) {
|
|
|
857
857
|
});
|
|
858
858
|
return c[d];
|
|
859
859
|
};
|
|
860
|
-
var
|
|
861
|
-
const
|
|
862
|
-
return Object.assign({},
|
|
860
|
+
var l;
|
|
861
|
+
const a = (l = r == null ? void 0 : r.resolver) != null ? l : s;
|
|
862
|
+
return Object.assign({}, a(o[t]), r == null ? void 0 : r.customShareInfo);
|
|
863
863
|
}
|
|
864
864
|
function getBuilderId() {
|
|
865
865
|
return typeof FEDERATION_BUILD_IDENTIFIER < "u" ? FEDERATION_BUILD_IDENTIFIER : "";
|
|
866
866
|
}
|
|
867
867
|
function matchRemoteWithNameAndExpose(n, t) {
|
|
868
|
-
for (const
|
|
869
|
-
const
|
|
870
|
-
let s = t.replace(
|
|
871
|
-
if (
|
|
868
|
+
for (const r of n) {
|
|
869
|
+
const o = t.startsWith(r.name);
|
|
870
|
+
let s = t.replace(r.name, "");
|
|
871
|
+
if (o) {
|
|
872
872
|
if (s.startsWith("/")) {
|
|
873
|
-
const i =
|
|
873
|
+
const i = r.name;
|
|
874
874
|
return s = `.${s}`, {
|
|
875
875
|
pkgNameOrAlias: i,
|
|
876
876
|
expose: s,
|
|
877
|
-
remote:
|
|
877
|
+
remote: r
|
|
878
878
|
};
|
|
879
879
|
} else if (s === "")
|
|
880
880
|
return {
|
|
881
|
-
pkgNameOrAlias:
|
|
881
|
+
pkgNameOrAlias: r.name,
|
|
882
882
|
expose: ".",
|
|
883
|
-
remote:
|
|
883
|
+
remote: r
|
|
884
884
|
};
|
|
885
885
|
}
|
|
886
|
-
const
|
|
887
|
-
let
|
|
888
|
-
if (
|
|
889
|
-
if (
|
|
890
|
-
const i =
|
|
891
|
-
return
|
|
886
|
+
const l = r.alias && t.startsWith(r.alias);
|
|
887
|
+
let a = r.alias && t.replace(r.alias, "");
|
|
888
|
+
if (r.alias && l) {
|
|
889
|
+
if (a && a.startsWith("/")) {
|
|
890
|
+
const i = r.alias;
|
|
891
|
+
return a = `.${a}`, {
|
|
892
892
|
pkgNameOrAlias: i,
|
|
893
|
-
expose:
|
|
894
|
-
remote:
|
|
893
|
+
expose: a,
|
|
894
|
+
remote: r
|
|
895
895
|
};
|
|
896
|
-
} else if (
|
|
896
|
+
} else if (a === "")
|
|
897
897
|
return {
|
|
898
|
-
pkgNameOrAlias:
|
|
898
|
+
pkgNameOrAlias: r.alias,
|
|
899
899
|
expose: ".",
|
|
900
|
-
remote:
|
|
900
|
+
remote: r
|
|
901
901
|
};
|
|
902
902
|
}
|
|
903
903
|
}
|
|
904
904
|
}
|
|
905
905
|
function matchRemote(n, t) {
|
|
906
|
-
for (const
|
|
907
|
-
if (t ===
|
|
908
|
-
return
|
|
906
|
+
for (const r of n)
|
|
907
|
+
if (t === r.name || r.alias && t === r.alias)
|
|
908
|
+
return r;
|
|
909
909
|
}
|
|
910
910
|
function registerPlugins(n, t) {
|
|
911
|
-
const
|
|
912
|
-
return
|
|
913
|
-
n != null && n.find((s) => s.name !==
|
|
914
|
-
}), n && n.length > 0 && n.forEach((
|
|
911
|
+
const r = getGlobalHostPlugins();
|
|
912
|
+
return r.length > 0 && r.forEach((o) => {
|
|
913
|
+
n != null && n.find((s) => s.name !== o.name) && n.push(o);
|
|
914
|
+
}), n && n.length > 0 && n.forEach((o) => {
|
|
915
915
|
t.forEach((s) => {
|
|
916
|
-
s.applyPlugin(
|
|
916
|
+
s.applyPlugin(o);
|
|
917
917
|
});
|
|
918
918
|
}), n;
|
|
919
919
|
}
|
|
920
920
|
const importCallback = ".then(callbacks[0]).catch(callbacks[1])";
|
|
921
921
|
async function loadEsmEntry({ entry: n, remoteEntryExports: t }) {
|
|
922
|
-
return new Promise((
|
|
922
|
+
return new Promise((r, o) => {
|
|
923
923
|
try {
|
|
924
|
-
t ?
|
|
925
|
-
|
|
926
|
-
|
|
924
|
+
t ? r(t) : typeof FEDERATION_ALLOW_NEW_FUNCTION < "u" ? new Function("callbacks", `import("${n}")${importCallback}`)([
|
|
925
|
+
r,
|
|
926
|
+
o
|
|
927
927
|
]) : import(
|
|
928
928
|
/* webpackIgnore: true */
|
|
929
929
|
/* @vite-ignore */
|
|
930
930
|
n
|
|
931
|
-
).then(
|
|
931
|
+
).then(r).catch(o);
|
|
932
932
|
} catch (s) {
|
|
933
|
-
|
|
933
|
+
o(s);
|
|
934
934
|
}
|
|
935
935
|
});
|
|
936
936
|
}
|
|
937
937
|
async function loadSystemJsEntry({ entry: n, remoteEntryExports: t }) {
|
|
938
|
-
return new Promise((
|
|
938
|
+
return new Promise((r, o) => {
|
|
939
939
|
try {
|
|
940
|
-
t ?
|
|
941
|
-
|
|
942
|
-
|
|
940
|
+
t ? r(t) : typeof __system_context__ > "u" ? System.import(n).then(r).catch(o) : new Function("callbacks", `System.import("${n}")${importCallback}`)([
|
|
941
|
+
r,
|
|
942
|
+
o
|
|
943
943
|
]);
|
|
944
944
|
} catch (s) {
|
|
945
|
-
|
|
945
|
+
o(s);
|
|
946
946
|
}
|
|
947
947
|
});
|
|
948
948
|
}
|
|
949
|
-
function handleRemoteEntryLoaded(n, t,
|
|
950
|
-
const { remoteEntryKey:
|
|
949
|
+
function handleRemoteEntryLoaded(n, t, r) {
|
|
950
|
+
const { remoteEntryKey: o, entryExports: s } = getRemoteEntryExports(n, t);
|
|
951
951
|
return assert(s, getShortErrorMsg(RUNTIME_001, runtimeDescMap, {
|
|
952
952
|
remoteName: n,
|
|
953
|
-
remoteEntryUrl:
|
|
954
|
-
remoteEntryKey:
|
|
953
|
+
remoteEntryUrl: r,
|
|
954
|
+
remoteEntryKey: o
|
|
955
955
|
})), s;
|
|
956
956
|
}
|
|
957
|
-
async function loadEntryScript({ name: n, globalName: t, entry:
|
|
957
|
+
async function loadEntryScript({ name: n, globalName: t, entry: r, loaderHook: o }) {
|
|
958
958
|
const { entryExports: s } = getRemoteEntryExports(n, t);
|
|
959
|
-
return s || loadScript(
|
|
959
|
+
return s || loadScript(r, {
|
|
960
960
|
attrs: {},
|
|
961
|
-
createScriptHook: (
|
|
962
|
-
const i =
|
|
963
|
-
url:
|
|
964
|
-
attrs:
|
|
961
|
+
createScriptHook: (l, a) => {
|
|
962
|
+
const i = o.lifecycle.createScript.emit({
|
|
963
|
+
url: l,
|
|
964
|
+
attrs: a
|
|
965
965
|
});
|
|
966
966
|
if (i && (i instanceof HTMLScriptElement || "script" in i || "timeout" in i))
|
|
967
967
|
return i;
|
|
968
968
|
}
|
|
969
|
-
}).then(() => handleRemoteEntryLoaded(n, t,
|
|
969
|
+
}).then(() => handleRemoteEntryLoaded(n, t, r)).catch((l) => {
|
|
970
970
|
throw assert(void 0, getShortErrorMsg(RUNTIME_008, runtimeDescMap, {
|
|
971
971
|
remoteName: n,
|
|
972
|
-
resourceUrl:
|
|
973
|
-
})),
|
|
972
|
+
resourceUrl: r
|
|
973
|
+
})), l;
|
|
974
974
|
});
|
|
975
975
|
}
|
|
976
|
-
async function loadEntryDom({ remoteInfo: n, remoteEntryExports: t, loaderHook:
|
|
977
|
-
const { entry:
|
|
978
|
-
switch (
|
|
976
|
+
async function loadEntryDom({ remoteInfo: n, remoteEntryExports: t, loaderHook: r }) {
|
|
977
|
+
const { entry: o, entryGlobalName: s, name: l, type: a } = n;
|
|
978
|
+
switch (a) {
|
|
979
979
|
case "esm":
|
|
980
980
|
case "module":
|
|
981
981
|
return loadEsmEntry({
|
|
982
|
-
entry:
|
|
982
|
+
entry: o,
|
|
983
983
|
remoteEntryExports: t
|
|
984
984
|
});
|
|
985
985
|
case "system":
|
|
986
986
|
return loadSystemJsEntry({
|
|
987
|
-
entry:
|
|
987
|
+
entry: o,
|
|
988
988
|
remoteEntryExports: t
|
|
989
989
|
});
|
|
990
990
|
default:
|
|
991
991
|
return loadEntryScript({
|
|
992
|
-
entry:
|
|
992
|
+
entry: o,
|
|
993
993
|
globalName: s,
|
|
994
|
-
name:
|
|
995
|
-
loaderHook:
|
|
994
|
+
name: l,
|
|
995
|
+
loaderHook: r
|
|
996
996
|
});
|
|
997
997
|
}
|
|
998
998
|
}
|
|
999
999
|
async function loadEntryNode({ remoteInfo: n, loaderHook: t }) {
|
|
1000
|
-
const { entry:
|
|
1001
|
-
return
|
|
1000
|
+
const { entry: r, entryGlobalName: o, name: s, type: l } = n, { entryExports: a } = getRemoteEntryExports(s, o);
|
|
1001
|
+
return a || loadScriptNode(r, {
|
|
1002
1002
|
attrs: {
|
|
1003
1003
|
name: s,
|
|
1004
|
-
globalName:
|
|
1005
|
-
type:
|
|
1004
|
+
globalName: o,
|
|
1005
|
+
type: l
|
|
1006
1006
|
},
|
|
1007
1007
|
loaderHook: {
|
|
1008
1008
|
createScriptHook: (i, c = {}) => {
|
|
@@ -1014,34 +1014,34 @@ async function loadEntryNode({ remoteInfo: n, loaderHook: t }) {
|
|
|
1014
1014
|
return u;
|
|
1015
1015
|
}
|
|
1016
1016
|
}
|
|
1017
|
-
}).then(() => handleRemoteEntryLoaded(s,
|
|
1017
|
+
}).then(() => handleRemoteEntryLoaded(s, o, r)).catch((i) => {
|
|
1018
1018
|
throw i;
|
|
1019
1019
|
});
|
|
1020
1020
|
}
|
|
1021
1021
|
function getRemoteEntryUniqueKey(n) {
|
|
1022
|
-
const { entry: t, name:
|
|
1023
|
-
return composeKeyWithSeparator(
|
|
1022
|
+
const { entry: t, name: r } = n;
|
|
1023
|
+
return composeKeyWithSeparator(r, t);
|
|
1024
1024
|
}
|
|
1025
|
-
async function getRemoteEntry({ origin: n, remoteEntryExports: t, remoteInfo:
|
|
1026
|
-
const
|
|
1025
|
+
async function getRemoteEntry({ origin: n, remoteEntryExports: t, remoteInfo: r }) {
|
|
1026
|
+
const o = getRemoteEntryUniqueKey(r);
|
|
1027
1027
|
if (t)
|
|
1028
1028
|
return t;
|
|
1029
|
-
if (!globalLoading[
|
|
1030
|
-
const s = n.remoteHandler.hooks.lifecycle.loadEntry,
|
|
1031
|
-
globalLoading[
|
|
1032
|
-
loaderHook:
|
|
1033
|
-
remoteInfo:
|
|
1029
|
+
if (!globalLoading[o]) {
|
|
1030
|
+
const s = n.remoteHandler.hooks.lifecycle.loadEntry, l = n.loaderHook;
|
|
1031
|
+
globalLoading[o] = s.emit({
|
|
1032
|
+
loaderHook: l,
|
|
1033
|
+
remoteInfo: r,
|
|
1034
1034
|
remoteEntryExports: t
|
|
1035
|
-
}).then((
|
|
1036
|
-
remoteInfo:
|
|
1035
|
+
}).then((a) => a || ((typeof ENV_TARGET < "u" ? ENV_TARGET === "web" : isBrowserEnv()) ? loadEntryDom({
|
|
1036
|
+
remoteInfo: r,
|
|
1037
1037
|
remoteEntryExports: t,
|
|
1038
|
-
loaderHook:
|
|
1038
|
+
loaderHook: l
|
|
1039
1039
|
}) : loadEntryNode({
|
|
1040
|
-
remoteInfo:
|
|
1041
|
-
loaderHook:
|
|
1040
|
+
remoteInfo: r,
|
|
1041
|
+
loaderHook: l
|
|
1042
1042
|
})));
|
|
1043
1043
|
}
|
|
1044
|
-
return globalLoading[
|
|
1044
|
+
return globalLoading[o];
|
|
1045
1045
|
}
|
|
1046
1046
|
function getRemoteInfo(n) {
|
|
1047
1047
|
return _extends$1({}, n, {
|
|
@@ -1063,36 +1063,36 @@ let Module = class {
|
|
|
1063
1063
|
remoteEntryExports: this.remoteEntryExports
|
|
1064
1064
|
});
|
|
1065
1065
|
} catch {
|
|
1066
|
-
const
|
|
1066
|
+
const o = getRemoteEntryUniqueKey(this.remoteInfo);
|
|
1067
1067
|
t = await this.host.loaderHook.lifecycle.loadEntryError.emit({
|
|
1068
1068
|
getRemoteEntry,
|
|
1069
1069
|
origin: this.host,
|
|
1070
1070
|
remoteInfo: this.remoteInfo,
|
|
1071
1071
|
remoteEntryExports: this.remoteEntryExports,
|
|
1072
1072
|
globalLoading,
|
|
1073
|
-
uniqueKey:
|
|
1073
|
+
uniqueKey: o
|
|
1074
1074
|
});
|
|
1075
1075
|
}
|
|
1076
1076
|
return assert(t, `remoteEntryExports is undefined
|
|
1077
1077
|
${safeToString(this.remoteInfo)}`), this.remoteEntryExports = t, this.remoteEntryExports;
|
|
1078
1078
|
}
|
|
1079
1079
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
1080
|
-
async get(t,
|
|
1081
|
-
const { loadFactory:
|
|
1080
|
+
async get(t, r, o, s) {
|
|
1081
|
+
const { loadFactory: l = !0 } = o || {
|
|
1082
1082
|
loadFactory: !0
|
|
1083
|
-
},
|
|
1083
|
+
}, a = await this.getEntry();
|
|
1084
1084
|
if (!this.inited) {
|
|
1085
1085
|
const p = this.host.shareScopeMap, m = Array.isArray(this.remoteInfo.shareScope) ? this.remoteInfo.shareScope : [
|
|
1086
1086
|
this.remoteInfo.shareScope
|
|
1087
1087
|
];
|
|
1088
|
-
m.length || m.push("default"), m.forEach((
|
|
1089
|
-
p[
|
|
1088
|
+
m.length || m.push("default"), m.forEach((g) => {
|
|
1089
|
+
p[g] || (p[g] = {});
|
|
1090
1090
|
});
|
|
1091
|
-
const y = p[m[0]], E = [],
|
|
1091
|
+
const y = p[m[0]], E = [], b = {
|
|
1092
1092
|
version: this.remoteInfo.version || "",
|
|
1093
1093
|
shareScopeKeys: Array.isArray(this.remoteInfo.shareScope) ? m : this.remoteInfo.shareScope || "default"
|
|
1094
1094
|
};
|
|
1095
|
-
Object.defineProperty(
|
|
1095
|
+
Object.defineProperty(b, "shareScopeMap", {
|
|
1096
1096
|
value: p,
|
|
1097
1097
|
// remoteEntryInitOptions will be traversed and assigned during container init, ,so this attribute is not allowed to be traversed
|
|
1098
1098
|
enumerable: !1
|
|
@@ -1100,48 +1100,48 @@ let Module = class {
|
|
|
1100
1100
|
const _ = await this.host.hooks.lifecycle.beforeInitContainer.emit({
|
|
1101
1101
|
shareScope: y,
|
|
1102
1102
|
// @ts-ignore shareScopeMap will be set by Object.defineProperty
|
|
1103
|
-
remoteEntryInitOptions:
|
|
1103
|
+
remoteEntryInitOptions: b,
|
|
1104
1104
|
initScope: E,
|
|
1105
1105
|
remoteInfo: this.remoteInfo,
|
|
1106
1106
|
origin: this.host
|
|
1107
1107
|
});
|
|
1108
|
-
typeof (
|
|
1108
|
+
typeof (a == null ? void 0 : a.init) > "u" && error(getShortErrorMsg(RUNTIME_002, runtimeDescMap, {
|
|
1109
1109
|
remoteName: name,
|
|
1110
1110
|
remoteEntryUrl: this.remoteInfo.entry,
|
|
1111
1111
|
remoteEntryKey: this.remoteInfo.entryGlobalName
|
|
1112
|
-
})), await
|
|
1112
|
+
})), await a.init(_.shareScope, _.initScope, _.remoteEntryInitOptions), await this.host.hooks.lifecycle.initContainer.emit(_extends$1({}, _, {
|
|
1113
1113
|
id: t,
|
|
1114
1114
|
remoteSnapshot: s,
|
|
1115
|
-
remoteEntryExports:
|
|
1115
|
+
remoteEntryExports: a
|
|
1116
1116
|
}));
|
|
1117
1117
|
}
|
|
1118
|
-
this.lib =
|
|
1118
|
+
this.lib = a, this.inited = !0;
|
|
1119
1119
|
let i;
|
|
1120
1120
|
i = await this.host.loaderHook.lifecycle.getModuleFactory.emit({
|
|
1121
|
-
remoteEntryExports:
|
|
1122
|
-
expose:
|
|
1121
|
+
remoteEntryExports: a,
|
|
1122
|
+
expose: r,
|
|
1123
1123
|
moduleInfo: this.remoteInfo
|
|
1124
|
-
}), i || (i = await
|
|
1125
|
-
const c = processModuleAlias(this.remoteInfo.name,
|
|
1126
|
-
return
|
|
1124
|
+
}), i || (i = await a.get(r)), assert(i, `${getFMId(this.remoteInfo)} remote don't export ${r}.`);
|
|
1125
|
+
const c = processModuleAlias(this.remoteInfo.name, r), u = this.wraperFactory(i, c);
|
|
1126
|
+
return l ? await u() : u;
|
|
1127
1127
|
}
|
|
1128
|
-
wraperFactory(t,
|
|
1129
|
-
function
|
|
1128
|
+
wraperFactory(t, r) {
|
|
1129
|
+
function o(s, l) {
|
|
1130
1130
|
s && typeof s == "object" && Object.isExtensible(s) && !Object.getOwnPropertyDescriptor(s, Symbol.for("mf_module_id")) && Object.defineProperty(s, Symbol.for("mf_module_id"), {
|
|
1131
|
-
value:
|
|
1131
|
+
value: l,
|
|
1132
1132
|
enumerable: !1
|
|
1133
1133
|
});
|
|
1134
1134
|
}
|
|
1135
1135
|
return t instanceof Promise ? async () => {
|
|
1136
1136
|
const s = await t();
|
|
1137
|
-
return
|
|
1137
|
+
return o(s, r), s;
|
|
1138
1138
|
} : () => {
|
|
1139
1139
|
const s = t();
|
|
1140
|
-
return
|
|
1140
|
+
return o(s, r), s;
|
|
1141
1141
|
};
|
|
1142
1142
|
}
|
|
1143
|
-
constructor({ remoteInfo: t, host:
|
|
1144
|
-
this.inited = !1, this.lib = void 0, this.remoteInfo = t, this.host =
|
|
1143
|
+
constructor({ remoteInfo: t, host: r }) {
|
|
1144
|
+
this.inited = !1, this.lib = void 0, this.remoteInfo = t, this.host = r;
|
|
1145
1145
|
}
|
|
1146
1146
|
};
|
|
1147
1147
|
class SyncHook {
|
|
@@ -1149,16 +1149,16 @@ class SyncHook {
|
|
|
1149
1149
|
typeof t == "function" && this.listeners.add(t);
|
|
1150
1150
|
}
|
|
1151
1151
|
once(t) {
|
|
1152
|
-
const
|
|
1153
|
-
this.on(function
|
|
1154
|
-
return
|
|
1152
|
+
const r = this;
|
|
1153
|
+
this.on(function o(...s) {
|
|
1154
|
+
return r.remove(o), t.apply(null, s);
|
|
1155
1155
|
});
|
|
1156
1156
|
}
|
|
1157
1157
|
emit(...t) {
|
|
1158
|
-
let
|
|
1159
|
-
return this.listeners.size > 0 && this.listeners.forEach((
|
|
1160
|
-
|
|
1161
|
-
}),
|
|
1158
|
+
let r;
|
|
1159
|
+
return this.listeners.size > 0 && this.listeners.forEach((o) => {
|
|
1160
|
+
r = o(...t);
|
|
1161
|
+
}), r;
|
|
1162
1162
|
}
|
|
1163
1163
|
remove(t) {
|
|
1164
1164
|
this.listeners.delete(t);
|
|
@@ -1172,22 +1172,22 @@ class SyncHook {
|
|
|
1172
1172
|
}
|
|
1173
1173
|
class AsyncHook extends SyncHook {
|
|
1174
1174
|
emit(...t) {
|
|
1175
|
-
let
|
|
1176
|
-
const
|
|
1177
|
-
if (
|
|
1175
|
+
let r;
|
|
1176
|
+
const o = Array.from(this.listeners);
|
|
1177
|
+
if (o.length > 0) {
|
|
1178
1178
|
let s = 0;
|
|
1179
|
-
const
|
|
1180
|
-
|
|
1179
|
+
const l = (a) => a === !1 ? !1 : s < o.length ? Promise.resolve(o[s++].apply(null, t)).then(l) : a;
|
|
1180
|
+
r = l();
|
|
1181
1181
|
}
|
|
1182
|
-
return Promise.resolve(
|
|
1182
|
+
return Promise.resolve(r);
|
|
1183
1183
|
}
|
|
1184
1184
|
}
|
|
1185
1185
|
function checkReturnData(n, t) {
|
|
1186
1186
|
if (!isObject(t))
|
|
1187
1187
|
return !1;
|
|
1188
1188
|
if (n !== t) {
|
|
1189
|
-
for (const
|
|
1190
|
-
if (!(
|
|
1189
|
+
for (const r in n)
|
|
1190
|
+
if (!(r in t))
|
|
1191
1191
|
return !1;
|
|
1192
1192
|
}
|
|
1193
1193
|
return !0;
|
|
@@ -1195,17 +1195,17 @@ function checkReturnData(n, t) {
|
|
|
1195
1195
|
class SyncWaterfallHook extends SyncHook {
|
|
1196
1196
|
emit(t) {
|
|
1197
1197
|
isObject(t) || error(`The data for the "${this.type}" hook should be an object.`);
|
|
1198
|
-
for (const
|
|
1198
|
+
for (const r of this.listeners)
|
|
1199
1199
|
try {
|
|
1200
|
-
const
|
|
1201
|
-
if (checkReturnData(t,
|
|
1202
|
-
t =
|
|
1200
|
+
const o = r(t);
|
|
1201
|
+
if (checkReturnData(t, o))
|
|
1202
|
+
t = o;
|
|
1203
1203
|
else {
|
|
1204
1204
|
this.onerror(`A plugin returned an unacceptable value for the "${this.type}" type.`);
|
|
1205
1205
|
break;
|
|
1206
1206
|
}
|
|
1207
|
-
} catch (
|
|
1208
|
-
warn(
|
|
1207
|
+
} catch (o) {
|
|
1208
|
+
warn(o), this.onerror(o);
|
|
1209
1209
|
}
|
|
1210
1210
|
return t;
|
|
1211
1211
|
}
|
|
@@ -1216,14 +1216,14 @@ class SyncWaterfallHook extends SyncHook {
|
|
|
1216
1216
|
class AsyncWaterfallHook extends SyncHook {
|
|
1217
1217
|
emit(t) {
|
|
1218
1218
|
isObject(t) || error(`The response data for the "${this.type}" hook must be an object.`);
|
|
1219
|
-
const
|
|
1220
|
-
if (
|
|
1221
|
-
let
|
|
1222
|
-
const s = (
|
|
1223
|
-
if (checkReturnData(t,
|
|
1224
|
-
if (t =
|
|
1219
|
+
const r = Array.from(this.listeners);
|
|
1220
|
+
if (r.length > 0) {
|
|
1221
|
+
let o = 0;
|
|
1222
|
+
const s = (a) => (warn(a), this.onerror(a), t), l = (a) => {
|
|
1223
|
+
if (checkReturnData(t, a)) {
|
|
1224
|
+
if (t = a, o < r.length)
|
|
1225
1225
|
try {
|
|
1226
|
-
return Promise.resolve(o
|
|
1226
|
+
return Promise.resolve(r[o++](t)).then(l, s);
|
|
1227
1227
|
} catch (i) {
|
|
1228
1228
|
return s(i);
|
|
1229
1229
|
}
|
|
@@ -1231,7 +1231,7 @@ class AsyncWaterfallHook extends SyncHook {
|
|
|
1231
1231
|
this.onerror(`A plugin returned an incorrect value for the "${this.type}" type.`);
|
|
1232
1232
|
return t;
|
|
1233
1233
|
};
|
|
1234
|
-
return Promise.resolve(
|
|
1234
|
+
return Promise.resolve(l(t));
|
|
1235
1235
|
}
|
|
1236
1236
|
return Promise.resolve(t);
|
|
1237
1237
|
}
|
|
@@ -1242,25 +1242,25 @@ class AsyncWaterfallHook extends SyncHook {
|
|
|
1242
1242
|
class PluginSystem {
|
|
1243
1243
|
applyPlugin(t) {
|
|
1244
1244
|
assert(isPlainObject(t), "Plugin configuration is invalid.");
|
|
1245
|
-
const
|
|
1246
|
-
assert(
|
|
1247
|
-
const s = t[
|
|
1248
|
-
s && this.lifecycle[
|
|
1245
|
+
const r = t.name;
|
|
1246
|
+
assert(r, "A name must be provided by the plugin."), this.registerPlugins[r] || (this.registerPlugins[r] = t, Object.keys(this.lifecycle).forEach((o) => {
|
|
1247
|
+
const s = t[o];
|
|
1248
|
+
s && this.lifecycle[o].on(s);
|
|
1249
1249
|
}));
|
|
1250
1250
|
}
|
|
1251
1251
|
removePlugin(t) {
|
|
1252
1252
|
assert(t, "A name is required.");
|
|
1253
|
-
const
|
|
1254
|
-
assert(
|
|
1255
|
-
|
|
1253
|
+
const r = this.registerPlugins[t];
|
|
1254
|
+
assert(r, `The plugin "${t}" is not registered.`), Object.keys(r).forEach((o) => {
|
|
1255
|
+
o !== "name" && this.lifecycle[o].remove(r[o]);
|
|
1256
1256
|
});
|
|
1257
1257
|
}
|
|
1258
1258
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
1259
|
-
inherit({ lifecycle: t, registerPlugins:
|
|
1260
|
-
Object.keys(t).forEach((
|
|
1261
|
-
assert(!this.lifecycle[
|
|
1262
|
-
}), Object.keys(
|
|
1263
|
-
assert(!this.registerPlugins[
|
|
1259
|
+
inherit({ lifecycle: t, registerPlugins: r }) {
|
|
1260
|
+
Object.keys(t).forEach((o) => {
|
|
1261
|
+
assert(!this.lifecycle[o], `The hook "${o}" has a conflict and cannot be inherited.`), this.lifecycle[o] = t[o];
|
|
1262
|
+
}), Object.keys(r).forEach((o) => {
|
|
1263
|
+
assert(!this.registerPlugins[o], `The plugin "${o}" has a conflict and cannot be inherited.`), this.applyPlugin(r[o]);
|
|
1264
1264
|
});
|
|
1265
1265
|
}
|
|
1266
1266
|
constructor(t) {
|
|
@@ -1276,24 +1276,24 @@ function defaultPreloadArgs(n) {
|
|
|
1276
1276
|
}, n);
|
|
1277
1277
|
}
|
|
1278
1278
|
function formatPreloadArgs(n, t) {
|
|
1279
|
-
return t.map((
|
|
1280
|
-
const
|
|
1281
|
-
return assert(
|
|
1282
|
-
remoteInfo:
|
|
1279
|
+
return t.map((r) => {
|
|
1280
|
+
const o = matchRemote(n, r.nameOrAlias);
|
|
1281
|
+
return assert(o, `Unable to preload ${r.nameOrAlias} as it is not included in ${!o && safeToString({
|
|
1282
|
+
remoteInfo: o,
|
|
1283
1283
|
remotes: n
|
|
1284
1284
|
})}`), {
|
|
1285
|
-
remote:
|
|
1286
|
-
preloadConfig: defaultPreloadArgs(
|
|
1285
|
+
remote: o,
|
|
1286
|
+
preloadConfig: defaultPreloadArgs(r)
|
|
1287
1287
|
};
|
|
1288
1288
|
});
|
|
1289
1289
|
}
|
|
1290
1290
|
function normalizePreloadExposes(n) {
|
|
1291
1291
|
return n ? n.map((t) => t === "." ? t : t.startsWith("./") ? t.replace("./", "") : t) : [];
|
|
1292
1292
|
}
|
|
1293
|
-
function preloadAssets(n, t,
|
|
1294
|
-
const { cssAssets: s, jsAssetsWithoutEntry:
|
|
1293
|
+
function preloadAssets(n, t, r, o = !0) {
|
|
1294
|
+
const { cssAssets: s, jsAssetsWithoutEntry: l, entryAssets: a } = r;
|
|
1295
1295
|
if (t.options.inBrowser) {
|
|
1296
|
-
if (
|
|
1296
|
+
if (a.forEach((i) => {
|
|
1297
1297
|
const { moduleInfo: c } = i, u = t.moduleCache.get(n.name);
|
|
1298
1298
|
getRemoteEntry(u ? {
|
|
1299
1299
|
origin: t,
|
|
@@ -1304,7 +1304,7 @@ function preloadAssets(n, t, o, r = !0) {
|
|
|
1304
1304
|
remoteInfo: c,
|
|
1305
1305
|
remoteEntryExports: void 0
|
|
1306
1306
|
});
|
|
1307
|
-
}),
|
|
1307
|
+
}), o) {
|
|
1308
1308
|
const i = {
|
|
1309
1309
|
rel: "preload",
|
|
1310
1310
|
as: "style"
|
|
@@ -1350,12 +1350,12 @@ function preloadAssets(n, t, o, r = !0) {
|
|
|
1350
1350
|
d && document.head.appendChild(u);
|
|
1351
1351
|
});
|
|
1352
1352
|
}
|
|
1353
|
-
if (
|
|
1353
|
+
if (o) {
|
|
1354
1354
|
const i = {
|
|
1355
1355
|
rel: "preload",
|
|
1356
1356
|
as: "script"
|
|
1357
1357
|
};
|
|
1358
|
-
|
|
1358
|
+
l.forEach((c) => {
|
|
1359
1359
|
const { link: u, needAttach: d } = createLink({
|
|
1360
1360
|
url: c,
|
|
1361
1361
|
cb: () => {
|
|
@@ -1377,7 +1377,7 @@ function preloadAssets(n, t, o, r = !0) {
|
|
|
1377
1377
|
fetchpriority: "high",
|
|
1378
1378
|
type: (n == null ? void 0 : n.type) === "module" ? "module" : "text/javascript"
|
|
1379
1379
|
};
|
|
1380
|
-
|
|
1380
|
+
l.forEach((c) => {
|
|
1381
1381
|
const { script: u, needAttach: d } = createScript({
|
|
1382
1382
|
url: c,
|
|
1383
1383
|
cb: () => {
|
|
@@ -1399,43 +1399,40 @@ function preloadAssets(n, t, o, r = !0) {
|
|
|
1399
1399
|
}
|
|
1400
1400
|
}
|
|
1401
1401
|
function assignRemoteInfo(n, t) {
|
|
1402
|
-
const
|
|
1403
|
-
|
|
1404
|
-
let
|
|
1405
|
-
!isBrowserEnv() && !
|
|
1402
|
+
const r = getRemoteEntryInfoFromSnapshot(t);
|
|
1403
|
+
r.url || error(`The attribute remoteEntry of ${n.name} must not be undefined.`);
|
|
1404
|
+
let o = getResourceUrl(t, r.url);
|
|
1405
|
+
!isBrowserEnv() && !o.startsWith("http") && (o = `https:${o}`), n.type = r.type, n.entryGlobalName = r.globalName, n.entry = o, n.version = t.version, n.buildVersion = t.buildVersion;
|
|
1406
1406
|
}
|
|
1407
1407
|
function snapshotPlugin() {
|
|
1408
1408
|
return {
|
|
1409
1409
|
name: "snapshot-plugin",
|
|
1410
1410
|
async afterResolve(n) {
|
|
1411
|
-
const { remote: t, pkgNameOrAlias:
|
|
1411
|
+
const { remote: t, pkgNameOrAlias: r, expose: o, origin: s, remoteInfo: l } = n;
|
|
1412
1412
|
if (!isRemoteInfoWithEntry(t) || !isPureRemoteEntry(t)) {
|
|
1413
|
-
const { remoteSnapshot:
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
});
|
|
1417
|
-
assignRemoteInfo(a, i);
|
|
1418
|
-
const u = {
|
|
1413
|
+
const { remoteSnapshot: a, globalSnapshot: i } = await s.snapshotHandler.loadRemoteSnapshotInfo(t);
|
|
1414
|
+
assignRemoteInfo(l, a);
|
|
1415
|
+
const c = {
|
|
1419
1416
|
remote: t,
|
|
1420
1417
|
preloadConfig: {
|
|
1421
|
-
nameOrAlias:
|
|
1418
|
+
nameOrAlias: r,
|
|
1422
1419
|
exposes: [
|
|
1423
|
-
|
|
1420
|
+
o
|
|
1424
1421
|
],
|
|
1425
1422
|
resourceCategory: "sync",
|
|
1426
1423
|
share: !1,
|
|
1427
1424
|
depsRemote: !1
|
|
1428
1425
|
}
|
|
1429
|
-
},
|
|
1426
|
+
}, u = await s.remoteHandler.hooks.lifecycle.generatePreloadAssets.emit({
|
|
1430
1427
|
origin: s,
|
|
1431
|
-
preloadOptions:
|
|
1432
|
-
remoteInfo:
|
|
1428
|
+
preloadOptions: c,
|
|
1429
|
+
remoteInfo: l,
|
|
1433
1430
|
remote: t,
|
|
1434
|
-
remoteSnapshot:
|
|
1435
|
-
globalSnapshot:
|
|
1431
|
+
remoteSnapshot: a,
|
|
1432
|
+
globalSnapshot: i
|
|
1436
1433
|
});
|
|
1437
|
-
return
|
|
1438
|
-
remoteSnapshot:
|
|
1434
|
+
return u && preloadAssets(l, s, u, !1), _extends$1({}, n, {
|
|
1435
|
+
remoteSnapshot: a
|
|
1439
1436
|
});
|
|
1440
1437
|
}
|
|
1441
1438
|
return n;
|
|
@@ -1455,9 +1452,9 @@ function splitId(n) {
|
|
|
1455
1452
|
version: t[2]
|
|
1456
1453
|
};
|
|
1457
1454
|
}
|
|
1458
|
-
function traverseModuleInfo(n, t,
|
|
1459
|
-
const
|
|
1460
|
-
if (c && !isManifestProvider(c) && (
|
|
1455
|
+
function traverseModuleInfo(n, t, r, o, s = {}, l) {
|
|
1456
|
+
const a = getFMId(t), { value: i } = getInfoWithoutType(n, a), c = l || i;
|
|
1457
|
+
if (c && !isManifestProvider(c) && (r(c, t, o), c.remotesInfo)) {
|
|
1461
1458
|
const u = Object.keys(c.remotesInfo);
|
|
1462
1459
|
for (const d of u) {
|
|
1463
1460
|
if (s[d])
|
|
@@ -1467,34 +1464,34 @@ function traverseModuleInfo(n, t, o, r, s = {}, a) {
|
|
|
1467
1464
|
traverseModuleInfo(n, {
|
|
1468
1465
|
name: p.name,
|
|
1469
1466
|
version: m.matchedVersion
|
|
1470
|
-
},
|
|
1467
|
+
}, r, !1, s, void 0);
|
|
1471
1468
|
}
|
|
1472
1469
|
}
|
|
1473
1470
|
}
|
|
1474
1471
|
const isExisted = (n, t) => document.querySelector(`${n}[${n === "link" ? "href" : "src"}="${t}"]`);
|
|
1475
|
-
function generatePreloadAssets(n, t,
|
|
1476
|
-
const
|
|
1477
|
-
if (traverseModuleInfo(
|
|
1472
|
+
function generatePreloadAssets(n, t, r, o, s) {
|
|
1473
|
+
const l = [], a = [], i = [], c = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Set(), { options: d } = n, { preloadConfig: p } = t, { depsRemote: m } = p;
|
|
1474
|
+
if (traverseModuleInfo(o, r, (_, g, v) => {
|
|
1478
1475
|
let S;
|
|
1479
1476
|
if (v)
|
|
1480
1477
|
S = p;
|
|
1481
1478
|
else if (Array.isArray(m)) {
|
|
1482
|
-
const
|
|
1483
|
-
if (!
|
|
1479
|
+
const N = m.find((O) => O.nameOrAlias === g.name || O.nameOrAlias === g.alias);
|
|
1480
|
+
if (!N)
|
|
1484
1481
|
return;
|
|
1485
|
-
S = defaultPreloadArgs(
|
|
1482
|
+
S = defaultPreloadArgs(N);
|
|
1486
1483
|
} else if (m === !0)
|
|
1487
1484
|
S = p;
|
|
1488
1485
|
else
|
|
1489
1486
|
return;
|
|
1490
1487
|
const I = getResourceUrl(_, getRemoteEntryInfoFromSnapshot(_).url);
|
|
1491
1488
|
I && i.push({
|
|
1492
|
-
name:
|
|
1489
|
+
name: g.name,
|
|
1493
1490
|
moduleInfo: {
|
|
1494
|
-
name:
|
|
1491
|
+
name: g.name,
|
|
1495
1492
|
entry: I,
|
|
1496
1493
|
type: "remoteEntryType" in _ ? _.remoteEntryType : "global",
|
|
1497
|
-
entryGlobalName: "globalName" in _ ? _.globalName :
|
|
1494
|
+
entryGlobalName: "globalName" in _ ? _.globalName : g.name,
|
|
1498
1495
|
shareScope: "",
|
|
1499
1496
|
version: "version" in _ ? _.version : void 0
|
|
1500
1497
|
},
|
|
@@ -1504,51 +1501,51 @@ function generatePreloadAssets(n, t, o, r, s) {
|
|
|
1504
1501
|
const A = normalizePreloadExposes(S.exposes);
|
|
1505
1502
|
if (A.length && "modules" in _) {
|
|
1506
1503
|
var T;
|
|
1507
|
-
R = _ == null || (T = _.modules) == null ? void 0 : T.reduce((
|
|
1504
|
+
R = _ == null || (T = _.modules) == null ? void 0 : T.reduce((N, O) => ((A == null ? void 0 : A.indexOf(O.moduleName)) !== -1 && N.push(O), N), []);
|
|
1508
1505
|
}
|
|
1509
|
-
function $(
|
|
1510
|
-
const
|
|
1511
|
-
return S.filter ?
|
|
1506
|
+
function $(N) {
|
|
1507
|
+
const O = N.map((w) => getResourceUrl(_, w));
|
|
1508
|
+
return S.filter ? O.filter(S.filter) : O;
|
|
1512
1509
|
}
|
|
1513
1510
|
if (R) {
|
|
1514
|
-
const
|
|
1515
|
-
for (let
|
|
1516
|
-
const
|
|
1511
|
+
const N = R.length;
|
|
1512
|
+
for (let O = 0; O < N; O++) {
|
|
1513
|
+
const w = R[O], P = `${g.name}/${w.moduleName}`;
|
|
1517
1514
|
n.remoteHandler.hooks.lifecycle.handlePreloadModule.emit({
|
|
1518
|
-
id:
|
|
1519
|
-
name:
|
|
1515
|
+
id: w.moduleName === "." ? g.name : P,
|
|
1516
|
+
name: g.name,
|
|
1520
1517
|
remoteSnapshot: _,
|
|
1521
1518
|
preloadConfig: S,
|
|
1522
|
-
remote:
|
|
1519
|
+
remote: g,
|
|
1523
1520
|
origin: n
|
|
1524
|
-
}), !getPreloaded(P) && (S.resourceCategory === "all" ? (
|
|
1521
|
+
}), !getPreloaded(P) && (S.resourceCategory === "all" ? (l.push(...$(w.assets.css.async)), l.push(...$(w.assets.css.sync)), a.push(...$(w.assets.js.async)), a.push(...$(w.assets.js.sync))) : (S.resourceCategory = "sync") && (l.push(...$(w.assets.css.sync)), a.push(...$(w.assets.js.sync))), setPreloaded(P));
|
|
1525
1522
|
}
|
|
1526
1523
|
}
|
|
1527
1524
|
}, !0, {}, s), s.shared) {
|
|
1528
|
-
const _ = (
|
|
1529
|
-
const S = getRegisteredShare(n.shareScopeMap, v.sharedName,
|
|
1525
|
+
const _ = (g, v) => {
|
|
1526
|
+
const S = getRegisteredShare(n.shareScopeMap, v.sharedName, g, n.sharedHandler.hooks.lifecycle.resolveShare);
|
|
1530
1527
|
S && typeof S.lib == "function" && (v.assets.js.sync.forEach((I) => {
|
|
1531
1528
|
c.add(I);
|
|
1532
1529
|
}), v.assets.css.sync.forEach((I) => {
|
|
1533
1530
|
u.add(I);
|
|
1534
1531
|
}));
|
|
1535
1532
|
};
|
|
1536
|
-
s.shared.forEach((
|
|
1533
|
+
s.shared.forEach((g) => {
|
|
1537
1534
|
var v;
|
|
1538
|
-
const S = (v = d.shared) == null ? void 0 : v[
|
|
1535
|
+
const S = (v = d.shared) == null ? void 0 : v[g.sharedName];
|
|
1539
1536
|
if (!S)
|
|
1540
1537
|
return;
|
|
1541
|
-
const I =
|
|
1538
|
+
const I = g.version ? S.find((A) => A.version === g.version) : S;
|
|
1542
1539
|
if (!I)
|
|
1543
1540
|
return;
|
|
1544
1541
|
arrayOptions(I).forEach((A) => {
|
|
1545
|
-
_(A,
|
|
1542
|
+
_(A, g);
|
|
1546
1543
|
});
|
|
1547
1544
|
});
|
|
1548
1545
|
}
|
|
1549
|
-
const E =
|
|
1546
|
+
const E = a.filter((_) => !c.has(_) && !isExisted("script", _));
|
|
1550
1547
|
return {
|
|
1551
|
-
cssAssets:
|
|
1548
|
+
cssAssets: l.filter((_) => !u.has(_) && !isExisted("link", _)),
|
|
1552
1549
|
jsAssetsWithoutEntry: E,
|
|
1553
1550
|
entryAssets: i.filter((_) => !isExisted("script", _.url))
|
|
1554
1551
|
};
|
|
@@ -1557,7 +1554,7 @@ const generatePreloadAssetsPlugin = function() {
|
|
|
1557
1554
|
return {
|
|
1558
1555
|
name: "generate-preload-assets-plugin",
|
|
1559
1556
|
async generatePreloadAssets(n) {
|
|
1560
|
-
const { origin: t, preloadOptions:
|
|
1557
|
+
const { origin: t, preloadOptions: r, remoteInfo: o, remote: s, globalSnapshot: l, remoteSnapshot: a } = n;
|
|
1561
1558
|
return isBrowserEnv() ? isRemoteInfoWithEntry(s) && isPureRemoteEntry(s) ? {
|
|
1562
1559
|
cssAssets: [],
|
|
1563
1560
|
jsAssetsWithoutEntry: [],
|
|
@@ -1566,15 +1563,15 @@ const generatePreloadAssetsPlugin = function() {
|
|
|
1566
1563
|
name: s.name,
|
|
1567
1564
|
url: s.entry,
|
|
1568
1565
|
moduleInfo: {
|
|
1569
|
-
name:
|
|
1566
|
+
name: o.name,
|
|
1570
1567
|
entry: s.entry,
|
|
1571
|
-
type:
|
|
1568
|
+
type: o.type || "global",
|
|
1572
1569
|
entryGlobalName: "",
|
|
1573
1570
|
shareScope: ""
|
|
1574
1571
|
}
|
|
1575
1572
|
}
|
|
1576
1573
|
]
|
|
1577
|
-
} : (assignRemoteInfo(
|
|
1574
|
+
} : (assignRemoteInfo(o, a), generatePreloadAssets(t, r, o, l, a)) : {
|
|
1578
1575
|
cssAssets: [],
|
|
1579
1576
|
jsAssetsWithoutEntry: [],
|
|
1580
1577
|
entryAssets: []
|
|
@@ -1583,16 +1580,16 @@ const generatePreloadAssetsPlugin = function() {
|
|
|
1583
1580
|
};
|
|
1584
1581
|
};
|
|
1585
1582
|
function getGlobalRemoteInfo(n, t) {
|
|
1586
|
-
const
|
|
1587
|
-
name: t.name,
|
|
1583
|
+
const r = getGlobalSnapshotInfoByModuleInfo({
|
|
1584
|
+
name: t.options.name,
|
|
1588
1585
|
version: t.options.version
|
|
1589
|
-
}),
|
|
1590
|
-
return
|
|
1591
|
-
hostGlobalSnapshot:
|
|
1586
|
+
}), o = r && "remotesInfo" in r && r.remotesInfo && getInfoWithoutType(r.remotesInfo, n.name).value;
|
|
1587
|
+
return o && o.matchedVersion ? {
|
|
1588
|
+
hostGlobalSnapshot: r,
|
|
1592
1589
|
globalSnapshot: getGlobalSnapshot(),
|
|
1593
1590
|
remoteSnapshot: getGlobalSnapshotInfoByModuleInfo({
|
|
1594
1591
|
name: n.name,
|
|
1595
|
-
version:
|
|
1592
|
+
version: o.matchedVersion
|
|
1596
1593
|
})
|
|
1597
1594
|
} : {
|
|
1598
1595
|
hostGlobalSnapshot: void 0,
|
|
@@ -1604,117 +1601,128 @@ function getGlobalRemoteInfo(n, t) {
|
|
|
1604
1601
|
};
|
|
1605
1602
|
}
|
|
1606
1603
|
class SnapshotHandler {
|
|
1604
|
+
async loadSnapshot(t) {
|
|
1605
|
+
const { options: r } = this.HostInstance, { hostGlobalSnapshot: o, remoteSnapshot: s, globalSnapshot: l } = this.getGlobalRemoteInfo(t), { remoteSnapshot: a, globalSnapshot: i } = await this.hooks.lifecycle.loadSnapshot.emit({
|
|
1606
|
+
options: r,
|
|
1607
|
+
moduleInfo: t,
|
|
1608
|
+
hostGlobalSnapshot: o,
|
|
1609
|
+
remoteSnapshot: s,
|
|
1610
|
+
globalSnapshot: l
|
|
1611
|
+
});
|
|
1612
|
+
return {
|
|
1613
|
+
remoteSnapshot: a,
|
|
1614
|
+
globalSnapshot: i
|
|
1615
|
+
};
|
|
1616
|
+
}
|
|
1607
1617
|
// eslint-disable-next-line max-lines-per-function
|
|
1608
|
-
async loadRemoteSnapshotInfo(
|
|
1609
|
-
const { options:
|
|
1618
|
+
async loadRemoteSnapshotInfo(t) {
|
|
1619
|
+
const { options: r } = this.HostInstance;
|
|
1610
1620
|
await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({
|
|
1611
|
-
options:
|
|
1621
|
+
options: r,
|
|
1612
1622
|
moduleInfo: t
|
|
1613
1623
|
});
|
|
1614
|
-
let
|
|
1624
|
+
let o = getGlobalSnapshotInfoByModuleInfo({
|
|
1615
1625
|
name: this.HostInstance.options.name,
|
|
1616
1626
|
version: this.HostInstance.options.version
|
|
1617
1627
|
});
|
|
1618
|
-
|
|
1628
|
+
o || (o = {
|
|
1619
1629
|
version: this.HostInstance.options.version || "",
|
|
1620
1630
|
remoteEntry: "",
|
|
1621
1631
|
remotesInfo: {}
|
|
1622
1632
|
}, addGlobalSnapshot({
|
|
1623
|
-
[this.HostInstance.options.name]:
|
|
1624
|
-
})),
|
|
1633
|
+
[this.HostInstance.options.name]: o
|
|
1634
|
+
})), o && "remotesInfo" in o && !getInfoWithoutType(o.remotesInfo, t.name).value && ("version" in t || "entry" in t) && (o.remotesInfo = _extends$1({}, o == null ? void 0 : o.remotesInfo, {
|
|
1625
1635
|
[t.name]: {
|
|
1626
1636
|
matchedVersion: "version" in t ? t.version : t.entry
|
|
1627
1637
|
}
|
|
1628
1638
|
}));
|
|
1629
|
-
const { hostGlobalSnapshot:
|
|
1630
|
-
options:
|
|
1639
|
+
const { hostGlobalSnapshot: s, remoteSnapshot: l, globalSnapshot: a } = this.getGlobalRemoteInfo(t), { remoteSnapshot: i, globalSnapshot: c } = await this.hooks.lifecycle.loadSnapshot.emit({
|
|
1640
|
+
options: r,
|
|
1631
1641
|
moduleInfo: t,
|
|
1632
|
-
hostGlobalSnapshot:
|
|
1633
|
-
remoteSnapshot:
|
|
1634
|
-
globalSnapshot:
|
|
1642
|
+
hostGlobalSnapshot: s,
|
|
1643
|
+
remoteSnapshot: l,
|
|
1644
|
+
globalSnapshot: a
|
|
1635
1645
|
});
|
|
1636
|
-
let
|
|
1637
|
-
if (
|
|
1638
|
-
if (isManifestProvider(
|
|
1639
|
-
const
|
|
1646
|
+
let u, d;
|
|
1647
|
+
if (i)
|
|
1648
|
+
if (isManifestProvider(i)) {
|
|
1649
|
+
const p = isBrowserEnv() ? i.remoteEntry : i.ssrRemoteEntry || i.remoteEntry || "", m = await this.getManifestJson(p, t, {}), y = setGlobalSnapshotInfoByModuleInfo(_extends$1({}, t, {
|
|
1640
1650
|
// The global remote may be overridden
|
|
1641
1651
|
// Therefore, set the snapshot key to the global address of the actual request
|
|
1642
|
-
entry:
|
|
1643
|
-
}),
|
|
1644
|
-
|
|
1652
|
+
entry: p
|
|
1653
|
+
}), m);
|
|
1654
|
+
u = m, d = y;
|
|
1645
1655
|
} else {
|
|
1646
|
-
const { remoteSnapshot:
|
|
1656
|
+
const { remoteSnapshot: p } = await this.hooks.lifecycle.loadRemoteSnapshot.emit({
|
|
1647
1657
|
options: this.HostInstance.options,
|
|
1648
1658
|
moduleInfo: t,
|
|
1649
|
-
remoteSnapshot:
|
|
1659
|
+
remoteSnapshot: i,
|
|
1650
1660
|
from: "global"
|
|
1651
1661
|
});
|
|
1652
|
-
|
|
1662
|
+
u = p, d = c;
|
|
1653
1663
|
}
|
|
1654
1664
|
else if (isRemoteInfoWithEntry(t)) {
|
|
1655
|
-
const
|
|
1665
|
+
const p = await this.getManifestJson(t.entry, t, {}), m = setGlobalSnapshotInfoByModuleInfo(t, p), { remoteSnapshot: y } = await this.hooks.lifecycle.loadRemoteSnapshot.emit({
|
|
1656
1666
|
options: this.HostInstance.options,
|
|
1657
1667
|
moduleInfo: t,
|
|
1658
|
-
remoteSnapshot:
|
|
1668
|
+
remoteSnapshot: p,
|
|
1659
1669
|
from: "global"
|
|
1660
1670
|
});
|
|
1661
|
-
|
|
1671
|
+
u = y, d = m;
|
|
1662
1672
|
} else
|
|
1663
1673
|
error(getShortErrorMsg(RUNTIME_007, runtimeDescMap, {
|
|
1664
1674
|
hostName: t.name,
|
|
1665
1675
|
hostVersion: t.version,
|
|
1666
|
-
globalSnapshot: JSON.stringify(
|
|
1676
|
+
globalSnapshot: JSON.stringify(c)
|
|
1667
1677
|
}));
|
|
1668
1678
|
return await this.hooks.lifecycle.afterLoadSnapshot.emit({
|
|
1669
|
-
|
|
1670
|
-
host: this.HostInstance,
|
|
1671
|
-
options: s,
|
|
1679
|
+
options: r,
|
|
1672
1680
|
moduleInfo: t,
|
|
1673
|
-
remoteSnapshot:
|
|
1681
|
+
remoteSnapshot: u
|
|
1674
1682
|
}), {
|
|
1675
|
-
remoteSnapshot:
|
|
1676
|
-
globalSnapshot:
|
|
1683
|
+
remoteSnapshot: u,
|
|
1684
|
+
globalSnapshot: d
|
|
1677
1685
|
};
|
|
1678
1686
|
}
|
|
1679
1687
|
getGlobalRemoteInfo(t) {
|
|
1680
1688
|
return getGlobalRemoteInfo(t, this.HostInstance);
|
|
1681
1689
|
}
|
|
1682
|
-
async getManifestJson(t,
|
|
1690
|
+
async getManifestJson(t, r, o) {
|
|
1683
1691
|
const s = async () => {
|
|
1684
|
-
let
|
|
1685
|
-
if (
|
|
1686
|
-
return
|
|
1692
|
+
let a = this.manifestCache.get(t);
|
|
1693
|
+
if (a)
|
|
1694
|
+
return a;
|
|
1687
1695
|
try {
|
|
1688
1696
|
let i = await this.loaderHook.lifecycle.fetch.emit(t, {});
|
|
1689
|
-
(!i || !(i instanceof Response)) && (i = await fetch(t, {})),
|
|
1697
|
+
(!i || !(i instanceof Response)) && (i = await fetch(t, {})), a = await i.json();
|
|
1690
1698
|
} catch (i) {
|
|
1691
|
-
|
|
1699
|
+
a = await this.HostInstance.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({
|
|
1692
1700
|
id: t,
|
|
1693
1701
|
error: i,
|
|
1694
1702
|
from: "runtime",
|
|
1695
1703
|
lifecycle: "afterResolve",
|
|
1696
1704
|
origin: this.HostInstance
|
|
1697
|
-
}),
|
|
1705
|
+
}), a || (delete this.manifestLoading[t], error(getShortErrorMsg(RUNTIME_003, runtimeDescMap, {
|
|
1698
1706
|
manifestUrl: t,
|
|
1699
|
-
moduleName:
|
|
1707
|
+
moduleName: r.name,
|
|
1700
1708
|
hostName: this.HostInstance.options.name
|
|
1701
1709
|
}, `${i}`)));
|
|
1702
1710
|
}
|
|
1703
|
-
return assert(
|
|
1704
|
-
},
|
|
1705
|
-
const
|
|
1711
|
+
return assert(a.metaData && a.exposes && a.shared, `${t} is not a federation manifest`), this.manifestCache.set(t, a), a;
|
|
1712
|
+
}, l = async () => {
|
|
1713
|
+
const a = await s(), i = generateSnapshotFromManifest(a, {
|
|
1706
1714
|
version: t
|
|
1707
1715
|
}), { remoteSnapshot: c } = await this.hooks.lifecycle.loadRemoteSnapshot.emit({
|
|
1708
1716
|
options: this.HostInstance.options,
|
|
1709
|
-
moduleInfo:
|
|
1710
|
-
manifestJson:
|
|
1717
|
+
moduleInfo: r,
|
|
1718
|
+
manifestJson: a,
|
|
1711
1719
|
remoteSnapshot: i,
|
|
1712
1720
|
manifestUrl: t,
|
|
1713
1721
|
from: "manifest"
|
|
1714
1722
|
});
|
|
1715
1723
|
return c;
|
|
1716
1724
|
};
|
|
1717
|
-
return this.manifestLoading[t] || (this.manifestLoading[t] =
|
|
1725
|
+
return this.manifestLoading[t] || (this.manifestLoading[t] = l().then((a) => a)), this.manifestLoading[t];
|
|
1718
1726
|
}
|
|
1719
1727
|
constructor(t) {
|
|
1720
1728
|
this.loadingHostSnapshot = null, this.manifestCache = /* @__PURE__ */ new Map(), this.hooks = new PluginSystem({
|
|
@@ -1727,44 +1735,44 @@ class SnapshotHandler {
|
|
|
1727
1735
|
}
|
|
1728
1736
|
class SharedHandler {
|
|
1729
1737
|
// register shared in shareScopeMap
|
|
1730
|
-
registerShared(t,
|
|
1731
|
-
const { shareInfos:
|
|
1732
|
-
return Object.keys(
|
|
1733
|
-
|
|
1734
|
-
!getRegisteredShare(this.shareScopeMap,
|
|
1735
|
-
pkgName:
|
|
1738
|
+
registerShared(t, r) {
|
|
1739
|
+
const { shareInfos: o, shared: s } = formatShareConfigs(t, r);
|
|
1740
|
+
return Object.keys(o).forEach((a) => {
|
|
1741
|
+
o[a].forEach((c) => {
|
|
1742
|
+
!getRegisteredShare(this.shareScopeMap, a, c, this.hooks.lifecycle.resolveShare) && c && c.lib && this.setShared({
|
|
1743
|
+
pkgName: a,
|
|
1736
1744
|
lib: c.lib,
|
|
1737
1745
|
get: c.get,
|
|
1738
1746
|
loaded: !0,
|
|
1739
1747
|
shared: c,
|
|
1740
|
-
from:
|
|
1748
|
+
from: r.name
|
|
1741
1749
|
});
|
|
1742
1750
|
});
|
|
1743
1751
|
}), {
|
|
1744
|
-
shareInfos:
|
|
1752
|
+
shareInfos: o,
|
|
1745
1753
|
shared: s
|
|
1746
1754
|
};
|
|
1747
1755
|
}
|
|
1748
|
-
async loadShare(t,
|
|
1749
|
-
const { host:
|
|
1756
|
+
async loadShare(t, r) {
|
|
1757
|
+
const { host: o } = this, s = getTargetSharedOptions({
|
|
1750
1758
|
pkgName: t,
|
|
1751
|
-
extraOptions:
|
|
1752
|
-
shareInfos:
|
|
1759
|
+
extraOptions: r,
|
|
1760
|
+
shareInfos: o.options.shared
|
|
1753
1761
|
});
|
|
1754
1762
|
s != null && s.scope && await Promise.all(s.scope.map(async (u) => {
|
|
1755
1763
|
await Promise.all(this.initializeSharing(u, {
|
|
1756
1764
|
strategy: s.strategy
|
|
1757
1765
|
}));
|
|
1758
1766
|
}));
|
|
1759
|
-
const
|
|
1767
|
+
const l = await this.hooks.lifecycle.beforeLoadShare.emit({
|
|
1760
1768
|
pkgName: t,
|
|
1761
1769
|
shareInfo: s,
|
|
1762
|
-
shared:
|
|
1763
|
-
origin:
|
|
1764
|
-
}), { shareInfo:
|
|
1765
|
-
assert(
|
|
1766
|
-
const i = getRegisteredShare(this.shareScopeMap, t,
|
|
1767
|
-
u.useIn || (u.useIn = []), addUniqueItem(u.useIn,
|
|
1770
|
+
shared: o.options.shared,
|
|
1771
|
+
origin: o
|
|
1772
|
+
}), { shareInfo: a } = l;
|
|
1773
|
+
assert(a, `Cannot find ${t} Share in the ${o.options.name}. Please ensure that the ${t} Share parameters have been injected`);
|
|
1774
|
+
const i = getRegisteredShare(this.shareScopeMap, t, a, this.hooks.lifecycle.resolveShare), c = (u) => {
|
|
1775
|
+
u.useIn || (u.useIn = []), addUniqueItem(u.useIn, o.options.name);
|
|
1768
1776
|
};
|
|
1769
1777
|
if (i && i.lib)
|
|
1770
1778
|
return c(i), i.lib;
|
|
@@ -1774,32 +1782,32 @@ class SharedHandler {
|
|
|
1774
1782
|
} else if (i) {
|
|
1775
1783
|
const d = (async () => {
|
|
1776
1784
|
const p = await i.get();
|
|
1777
|
-
|
|
1778
|
-
const m = getRegisteredShare(this.shareScopeMap, t,
|
|
1785
|
+
a.lib = p, a.loaded = !0, c(a);
|
|
1786
|
+
const m = getRegisteredShare(this.shareScopeMap, t, a, this.hooks.lifecycle.resolveShare);
|
|
1779
1787
|
return m && (m.lib = p, m.loaded = !0), p;
|
|
1780
1788
|
})();
|
|
1781
1789
|
return this.setShared({
|
|
1782
1790
|
pkgName: t,
|
|
1783
1791
|
loaded: !1,
|
|
1784
1792
|
shared: i,
|
|
1785
|
-
from:
|
|
1793
|
+
from: o.options.name,
|
|
1786
1794
|
lib: null,
|
|
1787
1795
|
loading: d
|
|
1788
1796
|
}), d;
|
|
1789
1797
|
} else {
|
|
1790
|
-
if (
|
|
1798
|
+
if (r != null && r.customShareInfo)
|
|
1791
1799
|
return !1;
|
|
1792
1800
|
const d = (async () => {
|
|
1793
|
-
const p = await
|
|
1794
|
-
|
|
1795
|
-
const m = getRegisteredShare(this.shareScopeMap, t,
|
|
1801
|
+
const p = await a.get();
|
|
1802
|
+
a.lib = p, a.loaded = !0, c(a);
|
|
1803
|
+
const m = getRegisteredShare(this.shareScopeMap, t, a, this.hooks.lifecycle.resolveShare);
|
|
1796
1804
|
return m && (m.lib = p, m.loaded = !0), p;
|
|
1797
1805
|
})();
|
|
1798
1806
|
return this.setShared({
|
|
1799
1807
|
pkgName: t,
|
|
1800
1808
|
loaded: !1,
|
|
1801
|
-
shared:
|
|
1802
|
-
from:
|
|
1809
|
+
shared: a,
|
|
1810
|
+
from: o.options.name,
|
|
1803
1811
|
lib: null,
|
|
1804
1812
|
loading: d
|
|
1805
1813
|
}), d;
|
|
@@ -1811,52 +1819,52 @@ class SharedHandler {
|
|
|
1811
1819
|
* If the share scope does not exist, it creates one.
|
|
1812
1820
|
*/
|
|
1813
1821
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
1814
|
-
initializeSharing(t = DEFAULT_SCOPE,
|
|
1815
|
-
const { host:
|
|
1816
|
-
let
|
|
1822
|
+
initializeSharing(t = DEFAULT_SCOPE, r) {
|
|
1823
|
+
const { host: o } = this, s = r == null ? void 0 : r.from, l = r == null ? void 0 : r.strategy;
|
|
1824
|
+
let a = r == null ? void 0 : r.initScope;
|
|
1817
1825
|
const i = [];
|
|
1818
1826
|
if (s !== "build") {
|
|
1819
1827
|
const { initTokens: E } = this;
|
|
1820
|
-
|
|
1821
|
-
let
|
|
1822
|
-
if (
|
|
1828
|
+
a || (a = []);
|
|
1829
|
+
let b = E[t];
|
|
1830
|
+
if (b || (b = E[t] = {
|
|
1823
1831
|
from: this.host.name
|
|
1824
|
-
}),
|
|
1825
|
-
|
|
1832
|
+
}), a.indexOf(b) >= 0) return i;
|
|
1833
|
+
a.push(b);
|
|
1826
1834
|
}
|
|
1827
|
-
const c = this.shareScopeMap, u =
|
|
1835
|
+
const c = this.shareScopeMap, u = o.options.name;
|
|
1828
1836
|
c[t] || (c[t] = {});
|
|
1829
|
-
const d = c[t], p = (E,
|
|
1837
|
+
const d = c[t], p = (E, b) => {
|
|
1830
1838
|
var _;
|
|
1831
|
-
const { version:
|
|
1839
|
+
const { version: g, eager: v } = b;
|
|
1832
1840
|
d[E] = d[E] || {};
|
|
1833
|
-
const S = d[E], I = S[
|
|
1834
|
-
(!I || I.strategy !== "loaded-first" && !I.loaded && (!v != !R ? v : u > I.from)) && (S[
|
|
1835
|
-
}, m = (E) => E && E.init && E.init(c[t],
|
|
1836
|
-
const { module:
|
|
1841
|
+
const S = d[E], I = S[g], R = !!(I && (I.eager || (_ = I.shareConfig) != null && _.eager));
|
|
1842
|
+
(!I || I.strategy !== "loaded-first" && !I.loaded && (!v != !R ? v : u > I.from)) && (S[g] = b);
|
|
1843
|
+
}, m = (E) => E && E.init && E.init(c[t], a), y = async (E) => {
|
|
1844
|
+
const { module: b } = await o.remoteHandler.getRemoteModuleAndOptions({
|
|
1837
1845
|
id: E
|
|
1838
1846
|
});
|
|
1839
|
-
if (
|
|
1847
|
+
if (b.getEntry) {
|
|
1840
1848
|
let _;
|
|
1841
1849
|
try {
|
|
1842
|
-
_ = await
|
|
1843
|
-
} catch (
|
|
1844
|
-
_ = await
|
|
1850
|
+
_ = await b.getEntry();
|
|
1851
|
+
} catch (g) {
|
|
1852
|
+
_ = await o.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({
|
|
1845
1853
|
id: E,
|
|
1846
|
-
error:
|
|
1854
|
+
error: g,
|
|
1847
1855
|
from: "runtime",
|
|
1848
1856
|
lifecycle: "beforeLoadShare",
|
|
1849
|
-
origin:
|
|
1857
|
+
origin: o
|
|
1850
1858
|
});
|
|
1851
1859
|
}
|
|
1852
|
-
|
|
1860
|
+
b.inited || (await m(_), b.inited = !0);
|
|
1853
1861
|
}
|
|
1854
1862
|
};
|
|
1855
|
-
return Object.keys(
|
|
1856
|
-
|
|
1863
|
+
return Object.keys(o.options.shared).forEach((E) => {
|
|
1864
|
+
o.options.shared[E].forEach((_) => {
|
|
1857
1865
|
_.scope.includes(t) && p(E, _);
|
|
1858
1866
|
});
|
|
1859
|
-
}), (
|
|
1867
|
+
}), (o.options.shareStrategy === "version-first" || l === "version-first") && o.options.remotes.forEach((E) => {
|
|
1860
1868
|
E.shareScope === t && i.push(y(E.name));
|
|
1861
1869
|
}), i;
|
|
1862
1870
|
}
|
|
@@ -1864,32 +1872,32 @@ class SharedHandler {
|
|
|
1864
1872
|
// 1. If the loaded shared already exists globally, then it will be reused
|
|
1865
1873
|
// 2. If lib exists in local shared, it will be used directly
|
|
1866
1874
|
// 3. If the local get returns something other than Promise, then it will be used directly
|
|
1867
|
-
loadShareSync(t,
|
|
1868
|
-
const { host:
|
|
1875
|
+
loadShareSync(t, r) {
|
|
1876
|
+
const { host: o } = this, s = getTargetSharedOptions({
|
|
1869
1877
|
pkgName: t,
|
|
1870
|
-
extraOptions:
|
|
1871
|
-
shareInfos:
|
|
1878
|
+
extraOptions: r,
|
|
1879
|
+
shareInfos: o.options.shared
|
|
1872
1880
|
});
|
|
1873
1881
|
s != null && s.scope && s.scope.forEach((i) => {
|
|
1874
1882
|
this.initializeSharing(i, {
|
|
1875
1883
|
strategy: s.strategy
|
|
1876
1884
|
});
|
|
1877
1885
|
});
|
|
1878
|
-
const
|
|
1879
|
-
i.useIn || (i.useIn = []), addUniqueItem(i.useIn,
|
|
1886
|
+
const l = getRegisteredShare(this.shareScopeMap, t, s, this.hooks.lifecycle.resolveShare), a = (i) => {
|
|
1887
|
+
i.useIn || (i.useIn = []), addUniqueItem(i.useIn, o.options.name);
|
|
1880
1888
|
};
|
|
1881
|
-
if (
|
|
1882
|
-
if (typeof
|
|
1883
|
-
return l
|
|
1884
|
-
if (typeof
|
|
1885
|
-
const i =
|
|
1889
|
+
if (l) {
|
|
1890
|
+
if (typeof l.lib == "function")
|
|
1891
|
+
return a(l), l.loaded || (l.loaded = !0, l.from === o.options.name && (s.loaded = !0)), l.lib;
|
|
1892
|
+
if (typeof l.get == "function") {
|
|
1893
|
+
const i = l.get();
|
|
1886
1894
|
if (!(i instanceof Promise))
|
|
1887
|
-
return l
|
|
1895
|
+
return a(l), this.setShared({
|
|
1888
1896
|
pkgName: t,
|
|
1889
1897
|
loaded: !0,
|
|
1890
|
-
from:
|
|
1898
|
+
from: o.options.name,
|
|
1891
1899
|
lib: i,
|
|
1892
|
-
shared:
|
|
1900
|
+
shared: l
|
|
1893
1901
|
}), i;
|
|
1894
1902
|
}
|
|
1895
1903
|
}
|
|
@@ -1898,37 +1906,37 @@ class SharedHandler {
|
|
|
1898
1906
|
if (s.get) {
|
|
1899
1907
|
const i = s.get();
|
|
1900
1908
|
if (i instanceof Promise) {
|
|
1901
|
-
const c = (
|
|
1909
|
+
const c = (r == null ? void 0 : r.from) === "build" ? RUNTIME_005 : RUNTIME_006;
|
|
1902
1910
|
throw new Error(getShortErrorMsg(c, runtimeDescMap, {
|
|
1903
|
-
hostName:
|
|
1911
|
+
hostName: o.options.name,
|
|
1904
1912
|
sharedPkgName: t
|
|
1905
1913
|
}));
|
|
1906
1914
|
}
|
|
1907
1915
|
return s.lib = i, this.setShared({
|
|
1908
1916
|
pkgName: t,
|
|
1909
1917
|
loaded: !0,
|
|
1910
|
-
from:
|
|
1918
|
+
from: o.options.name,
|
|
1911
1919
|
lib: s.lib,
|
|
1912
1920
|
shared: s
|
|
1913
1921
|
}), s.lib;
|
|
1914
1922
|
}
|
|
1915
1923
|
throw new Error(getShortErrorMsg(RUNTIME_006, runtimeDescMap, {
|
|
1916
|
-
hostName:
|
|
1924
|
+
hostName: o.options.name,
|
|
1917
1925
|
sharedPkgName: t
|
|
1918
1926
|
}));
|
|
1919
1927
|
}
|
|
1920
|
-
initShareScopeMap(t,
|
|
1928
|
+
initShareScopeMap(t, r, o = {}) {
|
|
1921
1929
|
const { host: s } = this;
|
|
1922
|
-
this.shareScopeMap[t] =
|
|
1923
|
-
shareScope:
|
|
1930
|
+
this.shareScopeMap[t] = r, this.hooks.lifecycle.initContainerShareScopeMap.emit({
|
|
1931
|
+
shareScope: r,
|
|
1924
1932
|
options: s.options,
|
|
1925
1933
|
origin: s,
|
|
1926
1934
|
scopeName: t,
|
|
1927
|
-
hostShareScopeMap:
|
|
1935
|
+
hostShareScopeMap: o.hostShareScopeMap
|
|
1928
1936
|
});
|
|
1929
1937
|
}
|
|
1930
|
-
setShared({ pkgName: t, shared:
|
|
1931
|
-
const { version: c, scope: u = "default" } =
|
|
1938
|
+
setShared({ pkgName: t, shared: r, from: o, lib: s, loading: l, loaded: a, get: i }) {
|
|
1939
|
+
const { version: c, scope: u = "default" } = r, d = _object_without_properties_loose(r, [
|
|
1932
1940
|
"version",
|
|
1933
1941
|
"scope"
|
|
1934
1942
|
]);
|
|
@@ -1943,18 +1951,18 @@ class SharedHandler {
|
|
|
1943
1951
|
]
|
|
1944
1952
|
}, d, {
|
|
1945
1953
|
lib: s,
|
|
1946
|
-
loaded:
|
|
1947
|
-
loading:
|
|
1954
|
+
loaded: a,
|
|
1955
|
+
loading: l
|
|
1948
1956
|
}), i && (this.shareScopeMap[m][t][c].get = i);
|
|
1949
1957
|
return;
|
|
1950
1958
|
}
|
|
1951
1959
|
const y = this.shareScopeMap[m][t][c];
|
|
1952
|
-
|
|
1960
|
+
l && !y.loading && (y.loading = l);
|
|
1953
1961
|
});
|
|
1954
1962
|
}
|
|
1955
1963
|
_setGlobalShareScopeMap(t) {
|
|
1956
|
-
const
|
|
1957
|
-
|
|
1964
|
+
const r = getGlobalShareScope(), o = t.id || t.name;
|
|
1965
|
+
o && !r[o] && (r[o] = this.shareScopeMap);
|
|
1958
1966
|
}
|
|
1959
1967
|
constructor(t) {
|
|
1960
1968
|
this.hooks = new PluginSystem({
|
|
@@ -1969,147 +1977,145 @@ class SharedHandler {
|
|
|
1969
1977
|
}
|
|
1970
1978
|
}
|
|
1971
1979
|
class RemoteHandler {
|
|
1972
|
-
formatAndRegisterRemote(t,
|
|
1973
|
-
return (
|
|
1980
|
+
formatAndRegisterRemote(t, r) {
|
|
1981
|
+
return (r.remotes || []).reduce((s, l) => (this.registerRemote(l, s, {
|
|
1974
1982
|
force: !1
|
|
1975
1983
|
}), s), t.remotes);
|
|
1976
1984
|
}
|
|
1977
|
-
setIdToRemoteMap(t,
|
|
1978
|
-
const { remote:
|
|
1985
|
+
setIdToRemoteMap(t, r) {
|
|
1986
|
+
const { remote: o, expose: s } = r, { name: l, alias: a } = o;
|
|
1979
1987
|
if (this.idToRemoteMap[t] = {
|
|
1980
|
-
name:
|
|
1988
|
+
name: o.name,
|
|
1981
1989
|
expose: s
|
|
1982
|
-
},
|
|
1983
|
-
const i = t.replace(
|
|
1990
|
+
}, a && t.startsWith(l)) {
|
|
1991
|
+
const i = t.replace(l, a);
|
|
1984
1992
|
this.idToRemoteMap[i] = {
|
|
1985
|
-
name:
|
|
1993
|
+
name: o.name,
|
|
1986
1994
|
expose: s
|
|
1987
1995
|
};
|
|
1988
1996
|
return;
|
|
1989
1997
|
}
|
|
1990
|
-
if (
|
|
1991
|
-
const i = t.replace(
|
|
1998
|
+
if (a && t.startsWith(a)) {
|
|
1999
|
+
const i = t.replace(a, l);
|
|
1992
2000
|
this.idToRemoteMap[i] = {
|
|
1993
|
-
name:
|
|
2001
|
+
name: o.name,
|
|
1994
2002
|
expose: s
|
|
1995
2003
|
};
|
|
1996
2004
|
}
|
|
1997
2005
|
}
|
|
1998
2006
|
// eslint-disable-next-line max-lines-per-function
|
|
1999
2007
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
2000
|
-
async loadRemote(t,
|
|
2001
|
-
const { host:
|
|
2008
|
+
async loadRemote(t, r) {
|
|
2009
|
+
const { host: o } = this;
|
|
2002
2010
|
try {
|
|
2003
|
-
const { loadFactory: s = !0 } =
|
|
2011
|
+
const { loadFactory: s = !0 } = r || {
|
|
2004
2012
|
loadFactory: !0
|
|
2005
|
-
}, { module:
|
|
2013
|
+
}, { module: l, moduleOptions: a, remoteMatchInfo: i } = await this.getRemoteModuleAndOptions({
|
|
2006
2014
|
id: t
|
|
2007
|
-
}), { pkgNameOrAlias: c, remote: u, expose: d, id: p, remoteSnapshot: m } = i, y = await
|
|
2015
|
+
}), { pkgNameOrAlias: c, remote: u, expose: d, id: p, remoteSnapshot: m } = i, y = await l.get(p, d, r, m), E = await this.hooks.lifecycle.onLoad.emit({
|
|
2008
2016
|
id: p,
|
|
2009
2017
|
pkgNameOrAlias: c,
|
|
2010
2018
|
expose: d,
|
|
2011
2019
|
exposeModule: s ? y : void 0,
|
|
2012
2020
|
exposeModuleFactory: s ? void 0 : y,
|
|
2013
2021
|
remote: u,
|
|
2014
|
-
options:
|
|
2015
|
-
moduleInstance:
|
|
2016
|
-
origin:
|
|
2022
|
+
options: a,
|
|
2023
|
+
moduleInstance: l,
|
|
2024
|
+
origin: o
|
|
2017
2025
|
});
|
|
2018
2026
|
return this.setIdToRemoteMap(t, i), typeof E == "function" ? E : y;
|
|
2019
2027
|
} catch (s) {
|
|
2020
|
-
const { from:
|
|
2028
|
+
const { from: l = "runtime" } = r || {
|
|
2021
2029
|
from: "runtime"
|
|
2022
|
-
},
|
|
2030
|
+
}, a = await this.hooks.lifecycle.errorLoadRemote.emit({
|
|
2023
2031
|
id: t,
|
|
2024
2032
|
error: s,
|
|
2025
|
-
from:
|
|
2033
|
+
from: l,
|
|
2026
2034
|
lifecycle: "onLoad",
|
|
2027
|
-
origin:
|
|
2035
|
+
origin: o
|
|
2028
2036
|
});
|
|
2029
|
-
if (!
|
|
2037
|
+
if (!a)
|
|
2030
2038
|
throw s;
|
|
2031
|
-
return
|
|
2039
|
+
return a;
|
|
2032
2040
|
}
|
|
2033
2041
|
}
|
|
2034
2042
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
2035
2043
|
async preloadRemote(t) {
|
|
2036
|
-
const { host:
|
|
2044
|
+
const { host: r } = this;
|
|
2037
2045
|
await this.hooks.lifecycle.beforePreloadRemote.emit({
|
|
2038
2046
|
preloadOps: t,
|
|
2039
|
-
options:
|
|
2040
|
-
origin:
|
|
2047
|
+
options: r.options,
|
|
2048
|
+
origin: r
|
|
2041
2049
|
});
|
|
2042
|
-
const
|
|
2043
|
-
await Promise.all(
|
|
2044
|
-
const { remote:
|
|
2045
|
-
|
|
2046
|
-
}), u = await this.hooks.lifecycle.generatePreloadAssets.emit({
|
|
2047
|
-
origin: o,
|
|
2050
|
+
const o = formatPreloadArgs(r.options.remotes, t);
|
|
2051
|
+
await Promise.all(o.map(async (s) => {
|
|
2052
|
+
const { remote: l } = s, a = getRemoteInfo(l), { globalSnapshot: i, remoteSnapshot: c } = await r.snapshotHandler.loadRemoteSnapshotInfo(l), u = await this.hooks.lifecycle.generatePreloadAssets.emit({
|
|
2053
|
+
origin: r,
|
|
2048
2054
|
preloadOptions: s,
|
|
2049
|
-
remote:
|
|
2050
|
-
remoteInfo:
|
|
2055
|
+
remote: l,
|
|
2056
|
+
remoteInfo: a,
|
|
2051
2057
|
globalSnapshot: i,
|
|
2052
2058
|
remoteSnapshot: c
|
|
2053
2059
|
});
|
|
2054
|
-
u && preloadAssets(
|
|
2060
|
+
u && preloadAssets(a, r, u);
|
|
2055
2061
|
}));
|
|
2056
2062
|
}
|
|
2057
|
-
registerRemotes(t,
|
|
2058
|
-
const { host:
|
|
2063
|
+
registerRemotes(t, r) {
|
|
2064
|
+
const { host: o } = this;
|
|
2059
2065
|
t.forEach((s) => {
|
|
2060
|
-
this.registerRemote(s,
|
|
2061
|
-
force:
|
|
2066
|
+
this.registerRemote(s, o.options.remotes, {
|
|
2067
|
+
force: r == null ? void 0 : r.force
|
|
2062
2068
|
});
|
|
2063
2069
|
});
|
|
2064
2070
|
}
|
|
2065
2071
|
async getRemoteModuleAndOptions(t) {
|
|
2066
|
-
const { host:
|
|
2072
|
+
const { host: r } = this, { id: o } = t;
|
|
2067
2073
|
let s;
|
|
2068
2074
|
try {
|
|
2069
2075
|
s = await this.hooks.lifecycle.beforeRequest.emit({
|
|
2070
|
-
id:
|
|
2071
|
-
options:
|
|
2072
|
-
origin:
|
|
2076
|
+
id: o,
|
|
2077
|
+
options: r.options,
|
|
2078
|
+
origin: r
|
|
2073
2079
|
});
|
|
2074
2080
|
} catch (E) {
|
|
2075
2081
|
if (s = await this.hooks.lifecycle.errorLoadRemote.emit({
|
|
2076
|
-
id:
|
|
2077
|
-
options:
|
|
2078
|
-
origin:
|
|
2082
|
+
id: o,
|
|
2083
|
+
options: r.options,
|
|
2084
|
+
origin: r,
|
|
2079
2085
|
from: "runtime",
|
|
2080
2086
|
error: E,
|
|
2081
2087
|
lifecycle: "beforeRequest"
|
|
2082
2088
|
}), !s)
|
|
2083
2089
|
throw E;
|
|
2084
2090
|
}
|
|
2085
|
-
const { id:
|
|
2086
|
-
assert(
|
|
2087
|
-
hostName:
|
|
2088
|
-
requestId:
|
|
2091
|
+
const { id: l } = s, a = matchRemoteWithNameAndExpose(r.options.remotes, l);
|
|
2092
|
+
assert(a, getShortErrorMsg(RUNTIME_004, runtimeDescMap, {
|
|
2093
|
+
hostName: r.options.name,
|
|
2094
|
+
requestId: l
|
|
2089
2095
|
}));
|
|
2090
|
-
const { remote: i } =
|
|
2091
|
-
id:
|
|
2092
|
-
},
|
|
2093
|
-
options:
|
|
2094
|
-
origin:
|
|
2096
|
+
const { remote: i } = a, c = getRemoteInfo(i), u = await r.sharedHandler.hooks.lifecycle.afterResolve.emit(_extends$1({
|
|
2097
|
+
id: l
|
|
2098
|
+
}, a, {
|
|
2099
|
+
options: r.options,
|
|
2100
|
+
origin: r,
|
|
2095
2101
|
remoteInfo: c
|
|
2096
2102
|
})), { remote: d, expose: p } = u;
|
|
2097
|
-
assert(d && p, `The 'beforeRequest' hook was executed, but it failed to return the correct 'remote' and 'expose' values while loading ${
|
|
2098
|
-
let m =
|
|
2103
|
+
assert(d && p, `The 'beforeRequest' hook was executed, but it failed to return the correct 'remote' and 'expose' values while loading ${l}.`);
|
|
2104
|
+
let m = r.moduleCache.get(d.name);
|
|
2099
2105
|
const y = {
|
|
2100
|
-
host:
|
|
2106
|
+
host: r,
|
|
2101
2107
|
remoteInfo: c
|
|
2102
2108
|
};
|
|
2103
|
-
return m || (m = new Module(y),
|
|
2109
|
+
return m || (m = new Module(y), r.moduleCache.set(d.name, m)), {
|
|
2104
2110
|
module: m,
|
|
2105
2111
|
moduleOptions: y,
|
|
2106
2112
|
remoteMatchInfo: u
|
|
2107
2113
|
};
|
|
2108
2114
|
}
|
|
2109
|
-
registerRemote(t,
|
|
2110
|
-
const { host: s } = this,
|
|
2115
|
+
registerRemote(t, r, o) {
|
|
2116
|
+
const { host: s } = this, l = () => {
|
|
2111
2117
|
if (t.alias) {
|
|
2112
|
-
const i =
|
|
2118
|
+
const i = r.find((c) => {
|
|
2113
2119
|
var u;
|
|
2114
2120
|
return t.alias && (c.name.startsWith(t.alias) || ((u = c.alias) == null ? void 0 : u.startsWith(t.alias)));
|
|
2115
2121
|
});
|
|
@@ -2121,9 +2127,9 @@ class RemoteHandler {
|
|
|
2121
2127
|
remote: t,
|
|
2122
2128
|
origin: s
|
|
2123
2129
|
});
|
|
2124
|
-
const
|
|
2125
|
-
if (!
|
|
2126
|
-
|
|
2130
|
+
const a = r.find((i) => i.name === t.name);
|
|
2131
|
+
if (!a)
|
|
2132
|
+
l(), r.push(t), this.hooks.lifecycle.registerRemote.emit({
|
|
2127
2133
|
remote: t,
|
|
2128
2134
|
origin: s
|
|
2129
2135
|
});
|
|
@@ -2132,7 +2138,7 @@ class RemoteHandler {
|
|
|
2132
2138
|
`The remote "${t.name}" is already registered.`,
|
|
2133
2139
|
"Please note that overriding it may cause unexpected errors."
|
|
2134
2140
|
];
|
|
2135
|
-
|
|
2141
|
+
o != null && o.force && (this.removeRemote(a), l(), r.push(t), this.hooks.lifecycle.registerRemote.emit({
|
|
2136
2142
|
remote: t,
|
|
2137
2143
|
origin: s
|
|
2138
2144
|
}), warn$1(i.join(" ")));
|
|
@@ -2140,40 +2146,40 @@ class RemoteHandler {
|
|
|
2140
2146
|
}
|
|
2141
2147
|
removeRemote(t) {
|
|
2142
2148
|
try {
|
|
2143
|
-
const { host:
|
|
2144
|
-
|
|
2145
|
-
const
|
|
2146
|
-
if (
|
|
2147
|
-
const i =
|
|
2149
|
+
const { host: o } = this, { name: s } = t, l = o.options.remotes.findIndex((i) => i.name === s);
|
|
2150
|
+
l !== -1 && o.options.remotes.splice(l, 1);
|
|
2151
|
+
const a = o.moduleCache.get(t.name);
|
|
2152
|
+
if (a) {
|
|
2153
|
+
const i = a.remoteInfo, c = i.entryGlobalName;
|
|
2148
2154
|
if (CurrentGlobal[c]) {
|
|
2149
|
-
var
|
|
2150
|
-
(
|
|
2155
|
+
var r;
|
|
2156
|
+
(r = Object.getOwnPropertyDescriptor(CurrentGlobal, c)) != null && r.configurable ? delete CurrentGlobal[c] : CurrentGlobal[c] = void 0;
|
|
2151
2157
|
}
|
|
2152
|
-
const u = getRemoteEntryUniqueKey(
|
|
2153
|
-
globalLoading[u] && delete globalLoading[u],
|
|
2158
|
+
const u = getRemoteEntryUniqueKey(a.remoteInfo);
|
|
2159
|
+
globalLoading[u] && delete globalLoading[u], o.snapshotHandler.manifestCache.delete(i.entry);
|
|
2154
2160
|
let d = i.buildVersion ? composeKeyWithSeparator(i.name, i.buildVersion) : i.name;
|
|
2155
2161
|
const p = CurrentGlobal.__FEDERATION__.__INSTANCES__.findIndex((y) => i.buildVersion ? y.options.id === d : y.name === d);
|
|
2156
2162
|
if (p !== -1) {
|
|
2157
2163
|
const y = CurrentGlobal.__FEDERATION__.__INSTANCES__[p];
|
|
2158
2164
|
d = y.options.id || d;
|
|
2159
2165
|
const E = getGlobalShareScope();
|
|
2160
|
-
let
|
|
2166
|
+
let b = !0;
|
|
2161
2167
|
const _ = [];
|
|
2162
|
-
Object.keys(E).forEach((
|
|
2163
|
-
const v = E[
|
|
2168
|
+
Object.keys(E).forEach((g) => {
|
|
2169
|
+
const v = E[g];
|
|
2164
2170
|
v && Object.keys(v).forEach((S) => {
|
|
2165
2171
|
const I = v[S];
|
|
2166
2172
|
I && Object.keys(I).forEach((R) => {
|
|
2167
2173
|
const A = I[R];
|
|
2168
2174
|
A && Object.keys(A).forEach((T) => {
|
|
2169
2175
|
const $ = A[T];
|
|
2170
|
-
$ && typeof $ == "object" && $.from === i.name && ($.loaded || $.loading ? ($.useIn = $.useIn.filter((
|
|
2171
|
-
|
|
2176
|
+
$ && typeof $ == "object" && $.from === i.name && ($.loaded || $.loading ? ($.useIn = $.useIn.filter((N) => N !== i.name), $.useIn.length ? b = !1 : _.push([
|
|
2177
|
+
g,
|
|
2172
2178
|
S,
|
|
2173
2179
|
R,
|
|
2174
2180
|
T
|
|
2175
2181
|
])) : _.push([
|
|
2176
|
-
|
|
2182
|
+
g,
|
|
2177
2183
|
S,
|
|
2178
2184
|
R,
|
|
2179
2185
|
T
|
|
@@ -2181,20 +2187,20 @@ class RemoteHandler {
|
|
|
2181
2187
|
});
|
|
2182
2188
|
});
|
|
2183
2189
|
});
|
|
2184
|
-
}),
|
|
2190
|
+
}), b && (y.shareScopeMap = {}, delete E[d]), _.forEach(([g, v, S, I]) => {
|
|
2185
2191
|
var R, A, T;
|
|
2186
|
-
(T = E[
|
|
2192
|
+
(T = E[g]) == null || (A = T[v]) == null || (R = A[S]) == null || delete R[I];
|
|
2187
2193
|
}), CurrentGlobal.__FEDERATION__.__INSTANCES__.splice(p, 1);
|
|
2188
2194
|
}
|
|
2189
|
-
const { hostGlobalSnapshot: m } = getGlobalRemoteInfo(t,
|
|
2195
|
+
const { hostGlobalSnapshot: m } = getGlobalRemoteInfo(t, o);
|
|
2190
2196
|
if (m) {
|
|
2191
2197
|
const y = m && "remotesInfo" in m && m.remotesInfo && getInfoWithoutType(m.remotesInfo, t.name).key;
|
|
2192
2198
|
y && (delete m.remotesInfo[y], Global.__FEDERATION__.__MANIFEST_LOADING__[y] && delete Global.__FEDERATION__.__MANIFEST_LOADING__[y]);
|
|
2193
2199
|
}
|
|
2194
|
-
|
|
2200
|
+
o.moduleCache.delete(t.name);
|
|
2195
2201
|
}
|
|
2196
|
-
} catch (
|
|
2197
|
-
logger.log("removeRemote fail: ",
|
|
2202
|
+
} catch (o) {
|
|
2203
|
+
logger.log("removeRemote fail: ", o);
|
|
2198
2204
|
}
|
|
2199
2205
|
}
|
|
2200
2206
|
constructor(t) {
|
|
@@ -2217,59 +2223,59 @@ const USE_SNAPSHOT = typeof FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN == "boolean"
|
|
|
2217
2223
|
class FederationHost {
|
|
2218
2224
|
initOptions(t) {
|
|
2219
2225
|
this.registerPlugins(t.plugins);
|
|
2220
|
-
const
|
|
2221
|
-
return this.options =
|
|
2226
|
+
const r = this.formatOptions(this.options, t);
|
|
2227
|
+
return this.options = r, r;
|
|
2222
2228
|
}
|
|
2223
|
-
async loadShare(t,
|
|
2224
|
-
return this.sharedHandler.loadShare(t,
|
|
2229
|
+
async loadShare(t, r) {
|
|
2230
|
+
return this.sharedHandler.loadShare(t, r);
|
|
2225
2231
|
}
|
|
2226
2232
|
// The lib function will only be available if the shared set by eager or runtime init is set or the shared is successfully loaded.
|
|
2227
2233
|
// 1. If the loaded shared already exists globally, then it will be reused
|
|
2228
2234
|
// 2. If lib exists in local shared, it will be used directly
|
|
2229
2235
|
// 3. If the local get returns something other than Promise, then it will be used directly
|
|
2230
|
-
loadShareSync(t,
|
|
2231
|
-
return this.sharedHandler.loadShareSync(t,
|
|
2236
|
+
loadShareSync(t, r) {
|
|
2237
|
+
return this.sharedHandler.loadShareSync(t, r);
|
|
2232
2238
|
}
|
|
2233
|
-
initializeSharing(t = DEFAULT_SCOPE,
|
|
2234
|
-
return this.sharedHandler.initializeSharing(t,
|
|
2239
|
+
initializeSharing(t = DEFAULT_SCOPE, r) {
|
|
2240
|
+
return this.sharedHandler.initializeSharing(t, r);
|
|
2235
2241
|
}
|
|
2236
|
-
initRawContainer(t,
|
|
2242
|
+
initRawContainer(t, r, o) {
|
|
2237
2243
|
const s = getRemoteInfo({
|
|
2238
2244
|
name: t,
|
|
2239
|
-
entry:
|
|
2240
|
-
}),
|
|
2245
|
+
entry: r
|
|
2246
|
+
}), l = new Module({
|
|
2241
2247
|
host: this,
|
|
2242
2248
|
remoteInfo: s
|
|
2243
2249
|
});
|
|
2244
|
-
return
|
|
2250
|
+
return l.remoteEntryExports = o, this.moduleCache.set(t, l), l;
|
|
2245
2251
|
}
|
|
2246
2252
|
// eslint-disable-next-line max-lines-per-function
|
|
2247
2253
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
2248
|
-
async loadRemote(t,
|
|
2249
|
-
return this.remoteHandler.loadRemote(t,
|
|
2254
|
+
async loadRemote(t, r) {
|
|
2255
|
+
return this.remoteHandler.loadRemote(t, r);
|
|
2250
2256
|
}
|
|
2251
2257
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
2252
2258
|
async preloadRemote(t) {
|
|
2253
2259
|
return this.remoteHandler.preloadRemote(t);
|
|
2254
2260
|
}
|
|
2255
|
-
initShareScopeMap(t,
|
|
2256
|
-
this.sharedHandler.initShareScopeMap(t,
|
|
2261
|
+
initShareScopeMap(t, r, o = {}) {
|
|
2262
|
+
this.sharedHandler.initShareScopeMap(t, r, o);
|
|
2257
2263
|
}
|
|
2258
|
-
formatOptions(t,
|
|
2259
|
-
const { shared:
|
|
2264
|
+
formatOptions(t, r) {
|
|
2265
|
+
const { shared: o } = formatShareConfigs(t, r), { userOptions: s, options: l } = this.hooks.lifecycle.beforeInit.emit({
|
|
2260
2266
|
origin: this,
|
|
2261
|
-
userOptions:
|
|
2267
|
+
userOptions: r,
|
|
2262
2268
|
options: t,
|
|
2263
|
-
shareInfo:
|
|
2264
|
-
}),
|
|
2265
|
-
...
|
|
2269
|
+
shareInfo: o
|
|
2270
|
+
}), a = this.remoteHandler.formatAndRegisterRemote(l, s), { shared: i } = this.sharedHandler.registerShared(l, s), c = [
|
|
2271
|
+
...l.plugins
|
|
2266
2272
|
];
|
|
2267
2273
|
s.plugins && s.plugins.forEach((d) => {
|
|
2268
2274
|
c.includes(d) || c.push(d);
|
|
2269
2275
|
});
|
|
2270
|
-
const u = _extends$1({}, t,
|
|
2276
|
+
const u = _extends$1({}, t, r, {
|
|
2271
2277
|
plugins: c,
|
|
2272
|
-
remotes:
|
|
2278
|
+
remotes: a,
|
|
2273
2279
|
shared: i
|
|
2274
2280
|
});
|
|
2275
2281
|
return this.hooks.lifecycle.init.emit({
|
|
@@ -2278,7 +2284,7 @@ class FederationHost {
|
|
|
2278
2284
|
}), u;
|
|
2279
2285
|
}
|
|
2280
2286
|
registerPlugins(t) {
|
|
2281
|
-
const
|
|
2287
|
+
const r = registerPlugins(t, [
|
|
2282
2288
|
this.hooks,
|
|
2283
2289
|
this.remoteHandler.hooks,
|
|
2284
2290
|
this.sharedHandler.hooks,
|
|
@@ -2286,10 +2292,10 @@ class FederationHost {
|
|
|
2286
2292
|
this.loaderHook,
|
|
2287
2293
|
this.bridgeHook
|
|
2288
2294
|
]);
|
|
2289
|
-
this.options.plugins = this.options.plugins.reduce((
|
|
2295
|
+
this.options.plugins = this.options.plugins.reduce((o, s) => (s && o && !o.find((l) => l.name === s.name) && o.push(s), o), r || []);
|
|
2290
2296
|
}
|
|
2291
|
-
registerRemotes(t,
|
|
2292
|
-
return this.remoteHandler.registerRemotes(t,
|
|
2297
|
+
registerRemotes(t, r) {
|
|
2298
|
+
return this.remoteHandler.registerRemotes(t, r);
|
|
2293
2299
|
}
|
|
2294
2300
|
constructor(t) {
|
|
2295
2301
|
this.hooks = new PluginSystem({
|
|
@@ -2313,21 +2319,21 @@ class FederationHost {
|
|
|
2313
2319
|
beforeBridgeDestroy: new SyncHook(),
|
|
2314
2320
|
afterBridgeDestroy: new SyncHook()
|
|
2315
2321
|
});
|
|
2316
|
-
const
|
|
2322
|
+
const r = USE_SNAPSHOT ? [
|
|
2317
2323
|
snapshotPlugin(),
|
|
2318
2324
|
generatePreloadAssetsPlugin()
|
|
2319
|
-
] : [],
|
|
2325
|
+
] : [], o = {
|
|
2320
2326
|
id: getBuilderId(),
|
|
2321
2327
|
name: t.name,
|
|
2322
|
-
plugins:
|
|
2328
|
+
plugins: r,
|
|
2323
2329
|
remotes: [],
|
|
2324
2330
|
shared: {},
|
|
2325
2331
|
inBrowser: isBrowserEnv()
|
|
2326
2332
|
};
|
|
2327
|
-
this.name = t.name, this.options =
|
|
2328
|
-
...
|
|
2333
|
+
this.name = t.name, this.options = o, this.snapshotHandler = new SnapshotHandler(this), this.sharedHandler = new SharedHandler(this), this.remoteHandler = new RemoteHandler(this), this.shareScopeMap = this.sharedHandler.shareScopeMap, this.registerPlugins([
|
|
2334
|
+
...o.plugins,
|
|
2329
2335
|
...t.plugins || []
|
|
2330
|
-
]), this.options = this.formatOptions(
|
|
2336
|
+
]), this.options = this.formatOptions(o, t);
|
|
2331
2337
|
}
|
|
2332
2338
|
}
|
|
2333
2339
|
let FederationInstance = null;
|
|
@@ -2336,38 +2342,38 @@ function getInstance() {
|
|
|
2336
2342
|
}
|
|
2337
2343
|
setGlobalFederationConstructor(FederationHost);
|
|
2338
2344
|
function createBridgeComponent(n) {
|
|
2339
|
-
const t = /* @__PURE__ */ new Map(),
|
|
2345
|
+
const t = /* @__PURE__ */ new Map(), r = getInstance();
|
|
2340
2346
|
return () => ({
|
|
2341
2347
|
__APP_VERSION__: "0.14.0",
|
|
2342
|
-
async render(
|
|
2343
|
-
var E,
|
|
2344
|
-
LoggerInstance.debug("createBridgeComponent render Info",
|
|
2348
|
+
async render(o) {
|
|
2349
|
+
var E, b, _;
|
|
2350
|
+
LoggerInstance.debug("createBridgeComponent render Info", o);
|
|
2345
2351
|
const {
|
|
2346
2352
|
moduleName: s,
|
|
2347
|
-
dom:
|
|
2348
|
-
basename:
|
|
2353
|
+
dom: l,
|
|
2354
|
+
basename: a,
|
|
2349
2355
|
memoryRoute: i,
|
|
2350
2356
|
hashRoute: c,
|
|
2351
2357
|
...u
|
|
2352
|
-
} =
|
|
2353
|
-
t.set(
|
|
2354
|
-
const p = await ((_ = (
|
|
2358
|
+
} = o, d = Vue.createApp(n.rootComponent, u);
|
|
2359
|
+
t.set(l, d);
|
|
2360
|
+
const p = await ((_ = (b = (E = r == null ? void 0 : r.bridgeHook) == null ? void 0 : E.lifecycle) == null ? void 0 : b.beforeBridgeRender) == null ? void 0 : _.emit(o)), m = p && typeof p == "object" && (p != null && p.extraProps) ? p == null ? void 0 : p.extraProps : {}, y = n.appOptions({
|
|
2355
2361
|
app: d,
|
|
2356
|
-
basename:
|
|
2362
|
+
basename: a,
|
|
2357
2363
|
memoryRoute: i,
|
|
2358
2364
|
hashRoute: c,
|
|
2359
2365
|
...u,
|
|
2360
2366
|
...m
|
|
2361
2367
|
});
|
|
2362
2368
|
if (y != null && y.router) {
|
|
2363
|
-
let
|
|
2364
|
-
|
|
2369
|
+
let g, v = y.router.getRoutes();
|
|
2370
|
+
o.memoryRoute ? g = VueRouter.createMemoryHistory(o.basename) : o.hashRoute ? (g = VueRouter.createWebHashHistory(), v = v.map((I) => ({
|
|
2365
2371
|
...I,
|
|
2366
|
-
path:
|
|
2367
|
-
}))) :
|
|
2372
|
+
path: o.basename + I.path
|
|
2373
|
+
}))) : g = VueRouter.createWebHistory(o.basename);
|
|
2368
2374
|
const S = VueRouter.createRouter({
|
|
2369
2375
|
...y.router.options,
|
|
2370
|
-
history:
|
|
2376
|
+
history: g,
|
|
2371
2377
|
routes: v
|
|
2372
2378
|
});
|
|
2373
2379
|
LoggerInstance.debug("createBridgeComponent render router info>>>", {
|
|
@@ -2375,11 +2381,11 @@ function createBridgeComponent(n) {
|
|
|
2375
2381
|
router: S
|
|
2376
2382
|
}), i && await S.push(i.entryPath), d.use(S);
|
|
2377
2383
|
}
|
|
2378
|
-
d.mount(
|
|
2384
|
+
d.mount(l);
|
|
2379
2385
|
},
|
|
2380
|
-
destroy(
|
|
2381
|
-
LoggerInstance.debug("createBridgeComponent destroy Info",
|
|
2382
|
-
const s = t.get(
|
|
2386
|
+
destroy(o) {
|
|
2387
|
+
LoggerInstance.debug("createBridgeComponent destroy Info", o);
|
|
2388
|
+
const s = t.get(o == null ? void 0 : o.dom);
|
|
2383
2389
|
s == null || s.unmount();
|
|
2384
2390
|
}
|
|
2385
2391
|
});
|
|
@@ -2400,12 +2406,12 @@ const RemoteApp = /* @__PURE__ */ defineComponent({
|
|
|
2400
2406
|
},
|
|
2401
2407
|
inheritAttrs: !1,
|
|
2402
2408
|
setup(n) {
|
|
2403
|
-
const t = ref(null),
|
|
2404
|
-
var m, y, E,
|
|
2409
|
+
const t = ref(null), r = ref(null), o = ref(""), s = useRoute(), l = getInstance(), a = useAttrs(), i = async () => {
|
|
2410
|
+
var m, y, E, b;
|
|
2405
2411
|
const u = (m = n.providerInfo) == null ? void 0 : m.call(n);
|
|
2406
|
-
|
|
2412
|
+
r.value = u;
|
|
2407
2413
|
let d = {
|
|
2408
|
-
...
|
|
2414
|
+
...a,
|
|
2409
2415
|
moduleName: n.moduleName,
|
|
2410
2416
|
dom: t.value,
|
|
2411
2417
|
basename: n.basename,
|
|
@@ -2413,16 +2419,16 @@ const RemoteApp = /* @__PURE__ */ defineComponent({
|
|
|
2413
2419
|
hashRoute: n.hashRoute
|
|
2414
2420
|
};
|
|
2415
2421
|
LoggerInstance.debug("createRemoteComponent LazyComponent render >>>", d);
|
|
2416
|
-
const p = await ((
|
|
2422
|
+
const p = await ((b = (E = (y = l == null ? void 0 : l.bridgeHook) == null ? void 0 : y.lifecycle) == null ? void 0 : E.beforeBridgeRender) == null ? void 0 : b.emit(d)) || {};
|
|
2417
2423
|
d = {
|
|
2418
2424
|
...d,
|
|
2419
2425
|
...p.extraProps
|
|
2420
2426
|
}, u.render(d);
|
|
2421
2427
|
}, c = watch(() => s == null ? void 0 : s.path, (u) => {
|
|
2422
|
-
u !== s.path && i(),
|
|
2428
|
+
u !== s.path && i(), o.value !== "" && o.value !== u && (LoggerInstance.debug("createRemoteComponent dispatchPopstateEnv >>>", {
|
|
2423
2429
|
...n,
|
|
2424
2430
|
pathname: s.path
|
|
2425
|
-
}), e()),
|
|
2431
|
+
}), e()), o.value = u;
|
|
2426
2432
|
});
|
|
2427
2433
|
return onMounted(() => {
|
|
2428
2434
|
i();
|
|
@@ -2430,7 +2436,7 @@ const RemoteApp = /* @__PURE__ */ defineComponent({
|
|
|
2430
2436
|
var u;
|
|
2431
2437
|
LoggerInstance.debug("createRemoteComponent LazyComponent destroy >>>", {
|
|
2432
2438
|
...n
|
|
2433
|
-
}), c(), (u =
|
|
2439
|
+
}), c(), (u = r.value) == null || u.destroy({
|
|
2434
2440
|
dom: t.value
|
|
2435
2441
|
});
|
|
2436
2442
|
}), () => createVNode("div", mergeProps(n.rootAttrs || {}, {
|
|
@@ -2446,25 +2452,25 @@ function createRemoteComponent(n) {
|
|
|
2446
2452
|
loader: async () => {
|
|
2447
2453
|
var c, u;
|
|
2448
2454
|
const t = useRoute();
|
|
2449
|
-
let
|
|
2450
|
-
const
|
|
2451
|
-
|
|
2455
|
+
let r = "/";
|
|
2456
|
+
const o = (u = (c = t == null ? void 0 : t.matched) == null ? void 0 : c[0]) == null ? void 0 : u.path;
|
|
2457
|
+
o && (o.endsWith("/:pathMatch(.*)*") ? r = o.replace("/:pathMatch(.*)*", "") : r = t.matched[0].path);
|
|
2452
2458
|
const s = (n == null ? void 0 : n.export) || "default";
|
|
2453
2459
|
LoggerInstance.debug("createRemoteComponent LazyComponent create >>>", {
|
|
2454
|
-
basename:
|
|
2460
|
+
basename: r,
|
|
2455
2461
|
info: n
|
|
2456
2462
|
});
|
|
2457
|
-
const
|
|
2463
|
+
const l = await n.loader(), a = l && l[Symbol.for("mf_module_id")], i = l[s];
|
|
2458
2464
|
if (LoggerInstance.debug(
|
|
2459
2465
|
"createRemoteComponent LazyComponent loadRemote info >>>",
|
|
2460
|
-
{ moduleName:
|
|
2461
|
-
), s in
|
|
2466
|
+
{ moduleName: a, module: l, exportName: s, basename: r, route: t }
|
|
2467
|
+
), s in l && typeof i == "function")
|
|
2462
2468
|
return {
|
|
2463
2469
|
render() {
|
|
2464
2470
|
return h(RemoteApp, {
|
|
2465
|
-
moduleName:
|
|
2471
|
+
moduleName: a,
|
|
2466
2472
|
providerInfo: i,
|
|
2467
|
-
basename:
|
|
2473
|
+
basename: r,
|
|
2468
2474
|
rootAttrs: n.rootAttrs
|
|
2469
2475
|
});
|
|
2470
2476
|
}
|