@module-federation/bridge-vue3 0.0.0-next-20250526035905 → 0.0.0-next-20250526074234
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 +696 -702
- 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 o = 1; o < arguments.length; o++) {
|
|
8
|
+
var r = arguments[o];
|
|
9
|
+
for (var s in r) Object.prototype.hasOwnProperty.call(r, s) && (t[s] = r[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",
|
|
14
|
+
const MANIFEST_EXT = ".json", BROWSER_LOG_KEY = "FEDERATION_DEBUG", 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 localStorage.getItem(BROWSER_LOG_KEY)
|
|
25
|
+
return !!localStorage.getItem(BROWSER_LOG_KEY);
|
|
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, o) => o ? t ? `${t}${SEPARATOR}${o}` : o : t, "") : "";
|
|
36
36
|
}, getResourceUrl = (n, t) => {
|
|
37
37
|
if ("getPublicPath" in n) {
|
|
38
|
-
let
|
|
39
|
-
return n.getPublicPath.startsWith("function") ?
|
|
38
|
+
let o;
|
|
39
|
+
return n.getPublicPath.startsWith("function") ? o = new Function("return " + n.getPublicPath)()() : o = new Function(n.getPublicPath)(), `${o}${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 r = ((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 a = s.slice(1);
|
|
61
|
+
return a.endsWith("/") ? a.slice(0, -1) : a;
|
|
62
62
|
}
|
|
63
63
|
return s;
|
|
64
64
|
})(n);
|
|
65
|
-
return
|
|
65
|
+
return r ? r.endsWith("/") ? `${r}${t}` : `${r}/${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 o, r;
|
|
72
|
+
const { remotes: s = {}, overrides: a = {}, version: l } = 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" && l ? inferAutoPublicPath(l) : n.metaData.publicPath : n.metaData.getPublicPath, u = Object.keys(a);
|
|
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 = a[$] : "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) ? a[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: g, buildInfo: { buildVersion: _ }, globalName: b, ssrRemoteEntry: v } = n.metaData, { exposes: S } = n;
|
|
91
91
|
let I = {
|
|
92
|
-
version:
|
|
92
|
+
version: l || "",
|
|
93
93
|
buildVersion: _,
|
|
94
|
-
globalName:
|
|
94
|
+
globalName: b,
|
|
95
95
|
remoteEntry: simpleJoinRemoteEntry(m, y),
|
|
96
96
|
remoteEntryType: E,
|
|
97
|
-
remoteTypes: simpleJoinRemoteEntry(
|
|
98
|
-
remoteTypesZip:
|
|
99
|
-
remoteTypesAPI:
|
|
97
|
+
remoteTypes: simpleJoinRemoteEntry(g.path, g.name),
|
|
98
|
+
remoteTypesZip: g.zip || "",
|
|
99
|
+
remoteTypesAPI: g.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 ((o = n.metaData) != null && o.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 ((r = n.metaData) != null && r.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 (o) {
|
|
175
|
+
warn$1(o);
|
|
176
176
|
return;
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
function isStaticResourcesEqual(n, t) {
|
|
180
|
-
const
|
|
181
|
-
return
|
|
180
|
+
const o = /^(https?:)?\/\//i, r = n.replace(o, "").replace(/\/$/, ""), s = t.replace(o, "").replace(/\/$/, "");
|
|
181
|
+
return r === 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, o = !0, r = 2e4, s;
|
|
185
|
+
const a = document.getElementsByTagName("script");
|
|
186
|
+
for (let i = 0; i < a.length; i++) {
|
|
187
|
+
const c = a[i], u = c.getAttribute("src");
|
|
188
188
|
if (u && isStaticResourcesEqual(u, n.url)) {
|
|
189
|
-
t = c,
|
|
189
|
+
t = c, o = !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 && (r = 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 l = 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 = l.bind(null, t.onerror), t.onload = l.bind(null, t.onload), s = setTimeout(() => {
|
|
220
|
+
l(null, new Error(`Remote script "${n.url}" time-outed.`));
|
|
221
|
+
}, r), {
|
|
222
222
|
script: t,
|
|
223
|
-
needAttach:
|
|
223
|
+
needAttach: o
|
|
224
224
|
};
|
|
225
225
|
}
|
|
226
226
|
function createLink(n) {
|
|
227
|
-
let t = null,
|
|
228
|
-
const
|
|
229
|
-
for (let
|
|
230
|
-
const
|
|
227
|
+
let t = null, o = !0;
|
|
228
|
+
const r = document.getElementsByTagName("link");
|
|
229
|
+
for (let a = 0; a < r.length; a++) {
|
|
230
|
+
const l = r[a], i = l.getAttribute("href"), c = l.getAttribute("rel");
|
|
231
231
|
if (i && isStaticResourcesEqual(i, n.url) && c === n.attrs.rel) {
|
|
232
|
-
t =
|
|
232
|
+
t = l, o = !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 a;
|
|
239
|
+
const l = n.attrs;
|
|
240
|
+
n.createLinkHook && (a = n.createLinkHook(n.url, l), a instanceof HTMLLinkElement && (t = a)), l && !a && Object.keys(l).forEach((i) => {
|
|
241
|
+
t && !t.getAttribute(i) && t.setAttribute(i, l[i]);
|
|
242
242
|
});
|
|
243
243
|
}
|
|
244
|
-
const s = (
|
|
244
|
+
const s = (a, l) => {
|
|
245
245
|
const i = () => {
|
|
246
|
-
(
|
|
246
|
+
(l == null ? void 0 : l.type) === "error" ? n != null && n.onErrorCallback && (n == null || n.onErrorCallback(l)) : 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 = l
|
|
251
|
+
}), a)) {
|
|
252
|
+
const c = a(l);
|
|
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: o
|
|
260
260
|
};
|
|
261
261
|
}
|
|
262
262
|
function loadScript(n, t) {
|
|
263
|
-
const { attrs:
|
|
264
|
-
return new Promise((s,
|
|
265
|
-
const { script:
|
|
263
|
+
const { attrs: o = {}, createScriptHook: r } = t;
|
|
264
|
+
return new Promise((s, a) => {
|
|
265
|
+
const { script: l, needAttach: i } = createScript({
|
|
266
266
|
url: n,
|
|
267
267
|
cb: s,
|
|
268
|
-
onErrorCallback:
|
|
268
|
+
onErrorCallback: a,
|
|
269
269
|
attrs: _extends$2({
|
|
270
270
|
fetchpriority: "high"
|
|
271
|
-
},
|
|
272
|
-
createScriptHook:
|
|
271
|
+
}, o),
|
|
272
|
+
createScriptHook: r,
|
|
273
273
|
needDeleteScript: !0
|
|
274
274
|
});
|
|
275
|
-
i && document.head.appendChild(
|
|
275
|
+
i && document.head.appendChild(l);
|
|
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((o) => o).catch((o) => {
|
|
282
|
+
throw console.error(`Error importing module ${n}:`, o), o;
|
|
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, o) => {
|
|
289
|
+
const s = await ((a, l) => o.lifecycle.fetch.emit(a, l))(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, o, r) => {
|
|
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((o, r) => {
|
|
350
|
+
createScriptNode(n, (s, a) => {
|
|
351
351
|
if (s)
|
|
352
|
-
|
|
352
|
+
r(s);
|
|
353
353
|
else {
|
|
354
|
-
var
|
|
355
|
-
const c = (t == null || (
|
|
356
|
-
|
|
354
|
+
var l, i;
|
|
355
|
+
const c = (t == null || (l = t.attrs) == null ? void 0 : l.globalName) || `__FEDERATION_${t == null || (i = t.attrs) == null ? void 0 : i.name}:custom__`, u = globalThis[c] = a;
|
|
356
|
+
o(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: o, vm: r } = t, a = await (await o(n)).text(), l = new r.SourceTextModule(a, {
|
|
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 l.link(async (i) => {
|
|
371
371
|
const c = new URL(i, n).href;
|
|
372
372
|
return await loadModule(c, t);
|
|
373
|
-
}),
|
|
373
|
+
}), l;
|
|
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 o = 1; o < arguments.length; o++) {
|
|
379
|
+
var r = arguments[o];
|
|
380
|
+
for (var s in r) Object.prototype.hasOwnProperty.call(r, s) && (t[s] = r[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 o = {}, r = Object.keys(n), s, a;
|
|
388
|
+
for (a = 0; a < r.length; a++)
|
|
389
|
+
s = r[a], !(t.indexOf(s) >= 0) && (o[s] = n[s]);
|
|
390
|
+
return o;
|
|
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, o, r) => {
|
|
393
393
|
const s = [
|
|
394
394
|
`${[
|
|
395
395
|
t[n]
|
|
396
396
|
]} #${n}`
|
|
397
397
|
];
|
|
398
|
-
return
|
|
399
|
-
${
|
|
398
|
+
return o && s.push(`args: ${JSON.stringify(o)}`), s.push(getDocsUrl(n)), r && s.push(`Original Error Message:
|
|
399
|
+
${r}`), 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 o = 1; o < arguments.length; o++) {
|
|
405
|
+
var r = arguments[o];
|
|
406
|
+
for (var s in r) Object.prototype.hasOwnProperty.call(r, s) && (t[s] = r[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((o) => o === 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 o;
|
|
478
|
+
return n.endsWith("/") ? o = n.slice(0, -1) : o = n, t.startsWith(".") && (t = t.slice(1)), o = o + t, o;
|
|
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, o) {
|
|
487
487
|
Object.defineProperty(n, t, {
|
|
488
|
-
value:
|
|
488
|
+
value: o,
|
|
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, o, r, s, a, l;
|
|
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 = (o = n.__FEDERATION__).__INSTANCES__) != null || (o.__INSTANCES__ = []);
|
|
512
512
|
var u;
|
|
513
|
-
(u = (
|
|
513
|
+
(u = (r = n.__FEDERATION__).moduleInfo) != null || (r.moduleInfo = {});
|
|
514
514
|
var d;
|
|
515
515
|
(d = (s = n.__FEDERATION__).__SHARE__) != null || (s.__SHARE__ = {});
|
|
516
516
|
var p;
|
|
517
|
-
(p = (
|
|
517
|
+
(p = (a = n.__FEDERATION__).__MANIFEST_LOADING__) != null || (a.__MANIFEST_LOADING__ = {});
|
|
518
518
|
var m;
|
|
519
|
-
(m = (
|
|
519
|
+
(m = (l = n.__FEDERATION__).__PRELOADED_MAP__) != null || (l.__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 r = Object.keys(n);
|
|
535
|
+
for (const s of r) {
|
|
536
|
+
const [a, l] = s.split(":"), i = `${a}:${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 o = getFMId(n), r = getInfoWithoutType(t, o).value;
|
|
553
|
+
if (r && !r.version && "version" in n && n.version && (r.version = n.version), r)
|
|
554
|
+
return r;
|
|
555
555
|
if ("version" in n && n.version) {
|
|
556
|
-
const { version: s } = n,
|
|
556
|
+
const { version: s } = n, a = _object_without_properties_loose(n, [
|
|
557
557
|
"version"
|
|
558
|
-
]),
|
|
558
|
+
]), l = getFMId(a), i = getInfoWithoutType(nativeGlobal.__FEDERATION__.moduleInfo, l).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 o = getFMId(n);
|
|
564
|
+
return nativeGlobal.__FEDERATION__.moduleInfo[o] = 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 o of t)
|
|
568
|
+
delete nativeGlobal.__FEDERATION__.moduleInfo[o];
|
|
569
569
|
}), getRemoteEntryExports = (n, t) => {
|
|
570
|
-
const
|
|
570
|
+
const o = t || `__FEDERATION_${n}:custom__`, r = CurrentGlobal[o];
|
|
571
571
|
return {
|
|
572
|
-
remoteEntryKey:
|
|
573
|
-
entryExports:
|
|
572
|
+
remoteEntryKey: o,
|
|
573
|
+
entryExports: r
|
|
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((o, r) => r(o), 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, o, r) {
|
|
589
|
+
const s = `${n}.${t}.${o}`;
|
|
590
|
+
return r ? `${s}-${r}` : s;
|
|
591
591
|
}
|
|
592
592
|
function parseHyphen(n) {
|
|
593
|
-
return n.replace(parseRegex(hyphenRange), (t,
|
|
593
|
+
return n.replace(parseRegex(hyphenRange), (t, o, r, s, a, l, i, c, u, d, p, m) => (isXVersion(r) ? o = "" : isXVersion(s) ? o = `>=${r}.0.0` : isXVersion(a) ? o = `>=${r}.${s}.0` : o = `>=${o}`, 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}`, `${o} ${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), (o, r, s, a, l) => isXVersion(r) ? "" : isXVersion(s) ? `>=${r}.0.0 <${Number(r) + 1}.0.0-0` : isXVersion(a) ? r === "0" ? `>=${r}.${s}.0 <${r}.${Number(s) + 1}.0-0` : `>=${r}.${s}.0 <${Number(r) + 1}.0.0-0` : l ? r === "0" ? s === "0" ? `>=${r}.${s}.${a}-${l} <${r}.${s}.${Number(a) + 1}-0` : `>=${r}.${s}.${a}-${l} <${r}.${Number(s) + 1}.0-0` : `>=${r}.${s}.${a}-${l} <${Number(r) + 1}.0.0-0` : r === "0" ? s === "0" ? `>=${r}.${s}.${a} <${r}.${s}.${Number(a) + 1}-0` : `>=${r}.${s}.${a} <${r}.${Number(s) + 1}.0-0` : `>=${r}.${s}.${a} <${Number(r) + 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), (o, r, s, a, l) => isXVersion(r) ? "" : isXVersion(s) ? `>=${r}.0.0 <${Number(r) + 1}.0.0-0` : isXVersion(a) ? `>=${r}.${s}.0 <${r}.${Number(s) + 1}.0-0` : l ? `>=${r}.${s}.${a}-${l} <${r}.${Number(s) + 1}.0-0` : `>=${r}.${s}.${a} <${r}.${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), (o, r, s, a, l, i) => {
|
|
612
|
+
const c = isXVersion(s), u = c || isXVersion(a), d = u || isXVersion(l);
|
|
613
|
+
return r === "=" && d && (r = ""), i = "", c ? r === ">" || r === "<" ? "<0.0.0-0" : "*" : r && d ? (u && (a = 0), l = 0, r === ">" ? (r = ">=", u ? (s = Number(s) + 1, a = 0, l = 0) : (a = Number(a) + 1, l = 0)) : r === "<=" && (r = "<", u ? s = Number(s) + 1 : a = Number(a) + 1), r === "<" && (i = "-0"), `${r + s}.${a}.${l}${i}`) : u ? `>=${s}.0.0${i} <${Number(s) + 1}.0.0-0` : d ? `>=${s}.${a}.0${i} <${s}.${Number(a) + 1}.0-0` : o;
|
|
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: o } = n, { preRelease: r } = t;
|
|
627
|
+
if (o === void 0 && r)
|
|
628
628
|
return 1;
|
|
629
|
-
if (
|
|
629
|
+
if (o && r === void 0)
|
|
630
630
|
return -1;
|
|
631
|
-
if (
|
|
631
|
+
if (o === void 0 && r === void 0)
|
|
632
632
|
return 0;
|
|
633
|
-
for (let s = 0,
|
|
634
|
-
const
|
|
635
|
-
if (
|
|
636
|
-
return
|
|
633
|
+
for (let s = 0, a = o.length; s <= a; s++) {
|
|
634
|
+
const l = o[s], i = r[s];
|
|
635
|
+
if (l !== i)
|
|
636
|
+
return l === void 0 && i === void 0 ? 0 : l ? i ? compareAtom(l, 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)), a = extractComparator(n);
|
|
707
|
+
if (!a)
|
|
708
708
|
return !1;
|
|
709
|
-
const [,
|
|
709
|
+
const [, l, , i, c, u, d] = a, 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, , g, _, b, v] = y, S = {
|
|
721
721
|
operator: E,
|
|
722
|
-
version: combineVersion(
|
|
723
|
-
major:
|
|
722
|
+
version: combineVersion(g, _, b, v),
|
|
723
|
+
major: g,
|
|
724
724
|
minor: _,
|
|
725
|
-
patch:
|
|
725
|
+
patch: b,
|
|
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, o, r) {
|
|
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 '${o}'!`);
|
|
737
737
|
});
|
|
738
|
-
var
|
|
738
|
+
var a, l, i;
|
|
739
739
|
return _extends$1({
|
|
740
740
|
deps: [],
|
|
741
741
|
useIn: [],
|
|
@@ -750,84 +750,84 @@ function formatShare(n, t, r, o) {
|
|
|
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: (a = n.version) != null ? a : "0",
|
|
754
754
|
scope: Array.isArray(n.scope) ? n.scope : [
|
|
755
|
-
(
|
|
755
|
+
(l = n.scope) != null ? l : "default"
|
|
756
756
|
],
|
|
757
|
-
strategy: ((i = n.strategy) != null ? i :
|
|
757
|
+
strategy: ((i = n.strategy) != null ? i : r) || "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
|
-
l
|
|
769
|
-
l
|
|
770
|
-
}) : l
|
|
761
|
+
const o = t.shared || {}, r = t.name, s = Object.keys(o).reduce((l, i) => {
|
|
762
|
+
const c = arrayOptions(o[i]);
|
|
763
|
+
return l[i] = l[i] || [], c.forEach((u) => {
|
|
764
|
+
l[i].push(formatShare(u, r, i, t.shareStrategy));
|
|
765
|
+
}), l;
|
|
766
|
+
}, {}), a = _extends$1({}, n.shared);
|
|
767
|
+
return Object.keys(s).forEach((l) => {
|
|
768
|
+
a[l] ? s[l].forEach((i) => {
|
|
769
|
+
a[l].find((u) => u.version === i.version) || a[l].push(i);
|
|
770
|
+
}) : a[l] = s[l];
|
|
771
771
|
}), {
|
|
772
|
-
shared:
|
|
772
|
+
shared: a,
|
|
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 o = (r) => {
|
|
778
|
+
if (!Number.isNaN(Number(r))) {
|
|
779
|
+
const a = r.split(".");
|
|
780
|
+
let l = r;
|
|
781
|
+
for (let i = 0; i < 3 - a.length; i++)
|
|
782
|
+
l += ".0";
|
|
783
|
+
return l;
|
|
784
784
|
}
|
|
785
|
-
return
|
|
785
|
+
return r;
|
|
786
786
|
};
|
|
787
|
-
return !!satisfy(
|
|
787
|
+
return !!satisfy(o(n), `<=${o(t)}`);
|
|
788
788
|
}
|
|
789
789
|
const findVersion = (n, t) => {
|
|
790
|
-
const
|
|
791
|
-
return versionLt(
|
|
790
|
+
const o = t || function(r, s) {
|
|
791
|
+
return versionLt(r, s);
|
|
792
792
|
};
|
|
793
|
-
return Object.keys(n).reduce((
|
|
793
|
+
return Object.keys(n).reduce((r, s) => !r || o(r, s) || r === "0" ? s : r, 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, o) {
|
|
796
|
+
const r = n[t][o], s = function(a, l) {
|
|
797
|
+
return !isLoaded(r[a]) && versionLt(a, l);
|
|
798
798
|
};
|
|
799
|
-
return findVersion(n[t][
|
|
799
|
+
return findVersion(n[t][o], s);
|
|
800
800
|
}
|
|
801
|
-
function findSingletonVersionOrderByLoaded(n, t,
|
|
802
|
-
const
|
|
801
|
+
function findSingletonVersionOrderByLoaded(n, t, o) {
|
|
802
|
+
const r = n[t][o], s = function(a, l) {
|
|
803
803
|
const i = (c) => isLoaded(c) || isLoading(c);
|
|
804
|
-
return i(
|
|
804
|
+
return i(r[l]) ? i(r[a]) ? !!versionLt(a, l) : !0 : i(r[a]) ? !1 : versionLt(a, l);
|
|
805
805
|
};
|
|
806
|
-
return findVersion(n[t][
|
|
806
|
+
return findVersion(n[t][o], 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, o, r) {
|
|
812
812
|
if (!n)
|
|
813
813
|
return;
|
|
814
|
-
const { shareConfig: s, scope:
|
|
815
|
-
|
|
814
|
+
const { shareConfig: s, scope: a = DEFAULT_SCOPE, strategy: l } = o, i = Array.isArray(a) ? a : [
|
|
815
|
+
a
|
|
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(l)(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 g = `Version ${p} from ${p && n[c][t][p].from} of shared singleton module ${t} does not satisfy the requirement of ${o.from} which needs ${u})`;
|
|
823
|
+
s.strictVersion ? error(g) : warn(g);
|
|
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 [g, _] of Object.entries(n[c][t]))
|
|
830
|
+
if (satisfy(g, u))
|
|
831
831
|
return _;
|
|
832
832
|
}
|
|
833
833
|
}, y = {
|
|
@@ -838,14 +838,14 @@ function getRegisteredShare(n, t, r, o) {
|
|
|
838
838
|
GlobalFederation: Global.__FEDERATION__,
|
|
839
839
|
resolver: m
|
|
840
840
|
};
|
|
841
|
-
return (
|
|
841
|
+
return (r.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: o, shareInfos: r } = 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 a;
|
|
861
|
+
const l = (a = o == null ? void 0 : o.resolver) != null ? a : s;
|
|
862
|
+
return Object.assign({}, l(r[t]), o == null ? void 0 : o.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 o of n) {
|
|
869
|
+
const r = t.startsWith(o.name);
|
|
870
|
+
let s = t.replace(o.name, "");
|
|
871
|
+
if (r) {
|
|
872
872
|
if (s.startsWith("/")) {
|
|
873
|
-
const i =
|
|
873
|
+
const i = o.name;
|
|
874
874
|
return s = `.${s}`, {
|
|
875
875
|
pkgNameOrAlias: i,
|
|
876
876
|
expose: s,
|
|
877
|
-
remote:
|
|
877
|
+
remote: o
|
|
878
878
|
};
|
|
879
879
|
} else if (s === "")
|
|
880
880
|
return {
|
|
881
|
-
pkgNameOrAlias:
|
|
881
|
+
pkgNameOrAlias: o.name,
|
|
882
882
|
expose: ".",
|
|
883
|
-
remote:
|
|
883
|
+
remote: o
|
|
884
884
|
};
|
|
885
885
|
}
|
|
886
|
-
const
|
|
887
|
-
let
|
|
888
|
-
if (
|
|
889
|
-
if (
|
|
890
|
-
const i =
|
|
891
|
-
return
|
|
886
|
+
const a = o.alias && t.startsWith(o.alias);
|
|
887
|
+
let l = o.alias && t.replace(o.alias, "");
|
|
888
|
+
if (o.alias && a) {
|
|
889
|
+
if (l && l.startsWith("/")) {
|
|
890
|
+
const i = o.alias;
|
|
891
|
+
return l = `.${l}`, {
|
|
892
892
|
pkgNameOrAlias: i,
|
|
893
|
-
expose:
|
|
894
|
-
remote:
|
|
893
|
+
expose: l,
|
|
894
|
+
remote: o
|
|
895
895
|
};
|
|
896
|
-
} else if (
|
|
896
|
+
} else if (l === "")
|
|
897
897
|
return {
|
|
898
|
-
pkgNameOrAlias:
|
|
898
|
+
pkgNameOrAlias: o.alias,
|
|
899
899
|
expose: ".",
|
|
900
|
-
remote:
|
|
900
|
+
remote: o
|
|
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 o of n)
|
|
907
|
+
if (t === o.name || o.alias && t === o.alias)
|
|
908
|
+
return o;
|
|
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 o = getGlobalHostPlugins();
|
|
912
|
+
return o.length > 0 && o.forEach((r) => {
|
|
913
|
+
n != null && n.find((s) => s.name !== r.name) && n.push(r);
|
|
914
|
+
}), n && n.length > 0 && n.forEach((r) => {
|
|
915
915
|
t.forEach((s) => {
|
|
916
|
-
s.applyPlugin(
|
|
916
|
+
s.applyPlugin(r);
|
|
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((o, r) => {
|
|
923
923
|
try {
|
|
924
|
-
t ?
|
|
925
|
-
|
|
926
|
-
|
|
924
|
+
t ? o(t) : typeof FEDERATION_ALLOW_NEW_FUNCTION < "u" ? new Function("callbacks", `import("${n}")${importCallback}`)([
|
|
925
|
+
o,
|
|
926
|
+
r
|
|
927
927
|
]) : import(
|
|
928
928
|
/* webpackIgnore: true */
|
|
929
929
|
/* @vite-ignore */
|
|
930
930
|
n
|
|
931
|
-
).then(
|
|
931
|
+
).then(o).catch(r);
|
|
932
932
|
} catch (s) {
|
|
933
|
-
|
|
933
|
+
r(s);
|
|
934
934
|
}
|
|
935
935
|
});
|
|
936
936
|
}
|
|
937
937
|
async function loadSystemJsEntry({ entry: n, remoteEntryExports: t }) {
|
|
938
|
-
return new Promise((
|
|
938
|
+
return new Promise((o, r) => {
|
|
939
939
|
try {
|
|
940
|
-
t ?
|
|
941
|
-
|
|
942
|
-
|
|
940
|
+
t ? o(t) : typeof __system_context__ > "u" ? System.import(n).then(o).catch(r) : new Function("callbacks", `System.import("${n}")${importCallback}`)([
|
|
941
|
+
o,
|
|
942
|
+
r
|
|
943
943
|
]);
|
|
944
944
|
} catch (s) {
|
|
945
|
-
|
|
945
|
+
r(s);
|
|
946
946
|
}
|
|
947
947
|
});
|
|
948
948
|
}
|
|
949
|
-
function handleRemoteEntryLoaded(n, t,
|
|
950
|
-
const { remoteEntryKey:
|
|
949
|
+
function handleRemoteEntryLoaded(n, t, o) {
|
|
950
|
+
const { remoteEntryKey: r, entryExports: s } = getRemoteEntryExports(n, t);
|
|
951
951
|
return assert(s, getShortErrorMsg(RUNTIME_001, runtimeDescMap, {
|
|
952
952
|
remoteName: n,
|
|
953
|
-
remoteEntryUrl:
|
|
954
|
-
remoteEntryKey:
|
|
953
|
+
remoteEntryUrl: o,
|
|
954
|
+
remoteEntryKey: r
|
|
955
955
|
})), s;
|
|
956
956
|
}
|
|
957
|
-
async function loadEntryScript({ name: n, globalName: t, entry:
|
|
957
|
+
async function loadEntryScript({ name: n, globalName: t, entry: o, loaderHook: r }) {
|
|
958
958
|
const { entryExports: s } = getRemoteEntryExports(n, t);
|
|
959
|
-
return s || loadScript(
|
|
959
|
+
return s || loadScript(o, {
|
|
960
960
|
attrs: {},
|
|
961
|
-
createScriptHook: (
|
|
962
|
-
const i =
|
|
963
|
-
url:
|
|
964
|
-
attrs:
|
|
961
|
+
createScriptHook: (a, l) => {
|
|
962
|
+
const i = r.lifecycle.createScript.emit({
|
|
963
|
+
url: a,
|
|
964
|
+
attrs: l
|
|
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, o)).catch((a) => {
|
|
970
970
|
throw assert(void 0, getShortErrorMsg(RUNTIME_008, runtimeDescMap, {
|
|
971
971
|
remoteName: n,
|
|
972
|
-
resourceUrl:
|
|
973
|
-
})),
|
|
972
|
+
resourceUrl: o
|
|
973
|
+
})), a;
|
|
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: o }) {
|
|
977
|
+
const { entry: r, entryGlobalName: s, name: a, type: l } = n;
|
|
978
|
+
switch (l) {
|
|
979
979
|
case "esm":
|
|
980
980
|
case "module":
|
|
981
981
|
return loadEsmEntry({
|
|
982
|
-
entry:
|
|
982
|
+
entry: r,
|
|
983
983
|
remoteEntryExports: t
|
|
984
984
|
});
|
|
985
985
|
case "system":
|
|
986
986
|
return loadSystemJsEntry({
|
|
987
|
-
entry:
|
|
987
|
+
entry: r,
|
|
988
988
|
remoteEntryExports: t
|
|
989
989
|
});
|
|
990
990
|
default:
|
|
991
991
|
return loadEntryScript({
|
|
992
|
-
entry:
|
|
992
|
+
entry: r,
|
|
993
993
|
globalName: s,
|
|
994
|
-
name:
|
|
995
|
-
loaderHook:
|
|
994
|
+
name: a,
|
|
995
|
+
loaderHook: o
|
|
996
996
|
});
|
|
997
997
|
}
|
|
998
998
|
}
|
|
999
999
|
async function loadEntryNode({ remoteInfo: n, loaderHook: t }) {
|
|
1000
|
-
const { entry:
|
|
1001
|
-
return
|
|
1000
|
+
const { entry: o, entryGlobalName: r, name: s, type: a } = n, { entryExports: l } = getRemoteEntryExports(s, r);
|
|
1001
|
+
return l || loadScriptNode(o, {
|
|
1002
1002
|
attrs: {
|
|
1003
1003
|
name: s,
|
|
1004
|
-
globalName:
|
|
1005
|
-
type:
|
|
1004
|
+
globalName: r,
|
|
1005
|
+
type: a
|
|
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, r, o)).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: o } = n;
|
|
1023
|
+
return composeKeyWithSeparator(o, t);
|
|
1024
1024
|
}
|
|
1025
|
-
async function getRemoteEntry({ origin: n, remoteEntryExports: t, remoteInfo:
|
|
1026
|
-
const
|
|
1025
|
+
async function getRemoteEntry({ origin: n, remoteEntryExports: t, remoteInfo: o }) {
|
|
1026
|
+
const r = getRemoteEntryUniqueKey(o);
|
|
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[r]) {
|
|
1030
|
+
const s = n.remoteHandler.hooks.lifecycle.loadEntry, a = n.loaderHook;
|
|
1031
|
+
globalLoading[r] = s.emit({
|
|
1032
|
+
loaderHook: a,
|
|
1033
|
+
remoteInfo: o,
|
|
1034
1034
|
remoteEntryExports: t
|
|
1035
|
-
}).then((
|
|
1036
|
-
remoteInfo:
|
|
1035
|
+
}).then((l) => l || ((typeof ENV_TARGET < "u" ? ENV_TARGET === "web" : isBrowserEnv()) ? loadEntryDom({
|
|
1036
|
+
remoteInfo: o,
|
|
1037
1037
|
remoteEntryExports: t,
|
|
1038
|
-
loaderHook:
|
|
1038
|
+
loaderHook: a
|
|
1039
1039
|
}) : loadEntryNode({
|
|
1040
|
-
remoteInfo:
|
|
1041
|
-
loaderHook:
|
|
1040
|
+
remoteInfo: o,
|
|
1041
|
+
loaderHook: a
|
|
1042
1042
|
})));
|
|
1043
1043
|
}
|
|
1044
|
-
return globalLoading[
|
|
1044
|
+
return globalLoading[r];
|
|
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 r = 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: r
|
|
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, o, r, s) {
|
|
1081
|
+
const { loadFactory: a = !0 } = r || {
|
|
1082
1082
|
loadFactory: !0
|
|
1083
|
-
},
|
|
1083
|
+
}, l = 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((b) => {
|
|
1089
|
+
p[b] || (p[b] = {});
|
|
1090
1090
|
});
|
|
1091
|
-
const y = p[m[0]], E = [],
|
|
1091
|
+
const y = p[m[0]], E = [], g = {
|
|
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(g, "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: g,
|
|
1104
1104
|
initScope: E,
|
|
1105
1105
|
remoteInfo: this.remoteInfo,
|
|
1106
1106
|
origin: this.host
|
|
1107
1107
|
});
|
|
1108
|
-
typeof (
|
|
1108
|
+
typeof (l == null ? void 0 : l.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 l.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: l
|
|
1116
1116
|
}));
|
|
1117
1117
|
}
|
|
1118
|
-
this.lib =
|
|
1118
|
+
this.lib = l, this.inited = !0;
|
|
1119
1119
|
let i;
|
|
1120
1120
|
i = await this.host.loaderHook.lifecycle.getModuleFactory.emit({
|
|
1121
|
-
remoteEntryExports:
|
|
1122
|
-
expose:
|
|
1121
|
+
remoteEntryExports: l,
|
|
1122
|
+
expose: o,
|
|
1123
1123
|
moduleInfo: this.remoteInfo
|
|
1124
|
-
}), i || (i = await
|
|
1125
|
-
const c = processModuleAlias(this.remoteInfo.name,
|
|
1126
|
-
return
|
|
1124
|
+
}), i || (i = await l.get(o)), assert(i, `${getFMId(this.remoteInfo)} remote don't export ${o}.`);
|
|
1125
|
+
const c = processModuleAlias(this.remoteInfo.name, o), u = this.wraperFactory(i, c);
|
|
1126
|
+
return a ? await u() : u;
|
|
1127
1127
|
}
|
|
1128
|
-
wraperFactory(t,
|
|
1129
|
-
function
|
|
1128
|
+
wraperFactory(t, o) {
|
|
1129
|
+
function r(s, a) {
|
|
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: a,
|
|
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 r(s, o), s;
|
|
1138
1138
|
} : () => {
|
|
1139
1139
|
const s = t();
|
|
1140
|
-
return
|
|
1140
|
+
return r(s, o), 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: o }) {
|
|
1144
|
+
this.inited = !1, this.lib = void 0, this.remoteInfo = t, this.host = o;
|
|
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 o = this;
|
|
1153
|
+
this.on(function r(...s) {
|
|
1154
|
+
return o.remove(r), 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 o;
|
|
1159
|
+
return this.listeners.size > 0 && this.listeners.forEach((r) => {
|
|
1160
|
+
o = r(...t);
|
|
1161
|
+
}), o;
|
|
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 o;
|
|
1176
|
+
const r = Array.from(this.listeners);
|
|
1177
|
+
if (r.length > 0) {
|
|
1178
1178
|
let s = 0;
|
|
1179
|
-
const
|
|
1180
|
-
|
|
1179
|
+
const a = (l) => l === !1 ? !1 : s < r.length ? Promise.resolve(r[s++].apply(null, t)).then(a) : l;
|
|
1180
|
+
o = a();
|
|
1181
1181
|
}
|
|
1182
|
-
return Promise.resolve(
|
|
1182
|
+
return Promise.resolve(o);
|
|
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 o in n)
|
|
1190
|
+
if (!(o 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 o of this.listeners)
|
|
1199
1199
|
try {
|
|
1200
|
-
const
|
|
1201
|
-
if (checkReturnData(t,
|
|
1202
|
-
t =
|
|
1200
|
+
const r = o(t);
|
|
1201
|
+
if (checkReturnData(t, r))
|
|
1202
|
+
t = r;
|
|
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 (r) {
|
|
1208
|
+
warn(r), this.onerror(r);
|
|
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 o = Array.from(this.listeners);
|
|
1220
|
+
if (o.length > 0) {
|
|
1221
|
+
let r = 0;
|
|
1222
|
+
const s = (l) => (warn(l), this.onerror(l), t), a = (l) => {
|
|
1223
|
+
if (checkReturnData(t, l)) {
|
|
1224
|
+
if (t = l, r < o.length)
|
|
1225
1225
|
try {
|
|
1226
|
-
return Promise.resolve(r
|
|
1226
|
+
return Promise.resolve(o[r++](t)).then(a, 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(a(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 o = t.name;
|
|
1246
|
+
assert(o, "A name must be provided by the plugin."), this.registerPlugins[o] || (this.registerPlugins[o] = t, Object.keys(this.lifecycle).forEach((r) => {
|
|
1247
|
+
const s = t[r];
|
|
1248
|
+
s && this.lifecycle[r].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 o = this.registerPlugins[t];
|
|
1254
|
+
assert(o, `The plugin "${t}" is not registered.`), Object.keys(o).forEach((r) => {
|
|
1255
|
+
r !== "name" && this.lifecycle[r].remove(o[r]);
|
|
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: o }) {
|
|
1260
|
+
Object.keys(t).forEach((r) => {
|
|
1261
|
+
assert(!this.lifecycle[r], `The hook "${r}" has a conflict and cannot be inherited.`), this.lifecycle[r] = t[r];
|
|
1262
|
+
}), Object.keys(o).forEach((r) => {
|
|
1263
|
+
assert(!this.registerPlugins[r], `The plugin "${r}" has a conflict and cannot be inherited.`), this.applyPlugin(o[r]);
|
|
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((o) => {
|
|
1280
|
+
const r = matchRemote(n, o.nameOrAlias);
|
|
1281
|
+
return assert(r, `Unable to preload ${o.nameOrAlias} as it is not included in ${!r && safeToString({
|
|
1282
|
+
remoteInfo: r,
|
|
1283
1283
|
remotes: n
|
|
1284
1284
|
})}`), {
|
|
1285
|
-
remote:
|
|
1286
|
-
preloadConfig: defaultPreloadArgs(
|
|
1285
|
+
remote: r,
|
|
1286
|
+
preloadConfig: defaultPreloadArgs(o)
|
|
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, o, r = !0) {
|
|
1294
|
+
const { cssAssets: s, jsAssetsWithoutEntry: a, entryAssets: l } = o;
|
|
1295
1295
|
if (t.options.inBrowser) {
|
|
1296
|
-
if (
|
|
1296
|
+
if (l.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, r, o = !0) {
|
|
|
1304
1304
|
remoteInfo: c,
|
|
1305
1305
|
remoteEntryExports: void 0
|
|
1306
1306
|
});
|
|
1307
|
-
}),
|
|
1307
|
+
}), r) {
|
|
1308
1308
|
const i = {
|
|
1309
1309
|
rel: "preload",
|
|
1310
1310
|
as: "style"
|
|
@@ -1350,12 +1350,12 @@ function preloadAssets(n, t, r, o = !0) {
|
|
|
1350
1350
|
d && document.head.appendChild(u);
|
|
1351
1351
|
});
|
|
1352
1352
|
}
|
|
1353
|
-
if (
|
|
1353
|
+
if (r) {
|
|
1354
1354
|
const i = {
|
|
1355
1355
|
rel: "preload",
|
|
1356
1356
|
as: "script"
|
|
1357
1357
|
};
|
|
1358
|
-
|
|
1358
|
+
a.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, r, o = !0) {
|
|
|
1377
1377
|
fetchpriority: "high",
|
|
1378
1378
|
type: (n == null ? void 0 : n.type) === "module" ? "module" : "text/javascript"
|
|
1379
1379
|
};
|
|
1380
|
-
|
|
1380
|
+
a.forEach((c) => {
|
|
1381
1381
|
const { script: u, needAttach: d } = createScript({
|
|
1382
1382
|
url: c,
|
|
1383
1383
|
cb: () => {
|
|
@@ -1399,40 +1399,43 @@ function preloadAssets(n, t, r, o = !0) {
|
|
|
1399
1399
|
}
|
|
1400
1400
|
}
|
|
1401
1401
|
function assignRemoteInfo(n, t) {
|
|
1402
|
-
const
|
|
1403
|
-
|
|
1404
|
-
let
|
|
1405
|
-
!isBrowserEnv() && !
|
|
1402
|
+
const o = getRemoteEntryInfoFromSnapshot(t);
|
|
1403
|
+
o.url || error(`The attribute remoteEntry of ${n.name} must not be undefined.`);
|
|
1404
|
+
let r = getResourceUrl(t, o.url);
|
|
1405
|
+
!isBrowserEnv() && !r.startsWith("http") && (r = `https:${r}`), n.type = o.type, n.entryGlobalName = o.globalName, n.entry = r, 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: o, expose: r, origin: s, remoteInfo: a, id: l } = n;
|
|
1412
1412
|
if (!isRemoteInfoWithEntry(t) || !isPureRemoteEntry(t)) {
|
|
1413
|
-
const { remoteSnapshot:
|
|
1414
|
-
|
|
1415
|
-
|
|
1413
|
+
const { remoteSnapshot: i, globalSnapshot: c } = await s.snapshotHandler.loadRemoteSnapshotInfo({
|
|
1414
|
+
moduleInfo: t,
|
|
1415
|
+
id: l
|
|
1416
|
+
});
|
|
1417
|
+
assignRemoteInfo(a, i);
|
|
1418
|
+
const u = {
|
|
1416
1419
|
remote: t,
|
|
1417
1420
|
preloadConfig: {
|
|
1418
|
-
nameOrAlias:
|
|
1421
|
+
nameOrAlias: o,
|
|
1419
1422
|
exposes: [
|
|
1420
|
-
|
|
1423
|
+
r
|
|
1421
1424
|
],
|
|
1422
1425
|
resourceCategory: "sync",
|
|
1423
1426
|
share: !1,
|
|
1424
1427
|
depsRemote: !1
|
|
1425
1428
|
}
|
|
1426
|
-
},
|
|
1429
|
+
}, d = await s.remoteHandler.hooks.lifecycle.generatePreloadAssets.emit({
|
|
1427
1430
|
origin: s,
|
|
1428
|
-
preloadOptions:
|
|
1429
|
-
remoteInfo:
|
|
1431
|
+
preloadOptions: u,
|
|
1432
|
+
remoteInfo: a,
|
|
1430
1433
|
remote: t,
|
|
1431
|
-
remoteSnapshot:
|
|
1432
|
-
globalSnapshot:
|
|
1434
|
+
remoteSnapshot: i,
|
|
1435
|
+
globalSnapshot: c
|
|
1433
1436
|
});
|
|
1434
|
-
return
|
|
1435
|
-
remoteSnapshot:
|
|
1437
|
+
return d && preloadAssets(a, s, d, !1), _extends$1({}, n, {
|
|
1438
|
+
remoteSnapshot: i
|
|
1436
1439
|
});
|
|
1437
1440
|
}
|
|
1438
1441
|
return n;
|
|
@@ -1452,9 +1455,9 @@ function splitId(n) {
|
|
|
1452
1455
|
version: t[2]
|
|
1453
1456
|
};
|
|
1454
1457
|
}
|
|
1455
|
-
function traverseModuleInfo(n, t,
|
|
1456
|
-
const
|
|
1457
|
-
if (c && !isManifestProvider(c) && (
|
|
1458
|
+
function traverseModuleInfo(n, t, o, r, s = {}, a) {
|
|
1459
|
+
const l = getFMId(t), { value: i } = getInfoWithoutType(n, l), c = a || i;
|
|
1460
|
+
if (c && !isManifestProvider(c) && (o(c, t, r), c.remotesInfo)) {
|
|
1458
1461
|
const u = Object.keys(c.remotesInfo);
|
|
1459
1462
|
for (const d of u) {
|
|
1460
1463
|
if (s[d])
|
|
@@ -1464,34 +1467,34 @@ function traverseModuleInfo(n, t, r, o, s = {}, l) {
|
|
|
1464
1467
|
traverseModuleInfo(n, {
|
|
1465
1468
|
name: p.name,
|
|
1466
1469
|
version: m.matchedVersion
|
|
1467
|
-
},
|
|
1470
|
+
}, o, !1, s, void 0);
|
|
1468
1471
|
}
|
|
1469
1472
|
}
|
|
1470
1473
|
}
|
|
1471
1474
|
const isExisted = (n, t) => document.querySelector(`${n}[${n === "link" ? "href" : "src"}="${t}"]`);
|
|
1472
|
-
function generatePreloadAssets(n, t,
|
|
1473
|
-
const
|
|
1474
|
-
if (traverseModuleInfo(
|
|
1475
|
+
function generatePreloadAssets(n, t, o, r, s) {
|
|
1476
|
+
const a = [], l = [], i = [], c = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Set(), { options: d } = n, { preloadConfig: p } = t, { depsRemote: m } = p;
|
|
1477
|
+
if (traverseModuleInfo(r, o, (_, b, v) => {
|
|
1475
1478
|
let S;
|
|
1476
1479
|
if (v)
|
|
1477
1480
|
S = p;
|
|
1478
1481
|
else if (Array.isArray(m)) {
|
|
1479
|
-
const
|
|
1480
|
-
if (!
|
|
1482
|
+
const w = m.find((N) => N.nameOrAlias === b.name || N.nameOrAlias === b.alias);
|
|
1483
|
+
if (!w)
|
|
1481
1484
|
return;
|
|
1482
|
-
S = defaultPreloadArgs(
|
|
1485
|
+
S = defaultPreloadArgs(w);
|
|
1483
1486
|
} else if (m === !0)
|
|
1484
1487
|
S = p;
|
|
1485
1488
|
else
|
|
1486
1489
|
return;
|
|
1487
1490
|
const I = getResourceUrl(_, getRemoteEntryInfoFromSnapshot(_).url);
|
|
1488
1491
|
I && i.push({
|
|
1489
|
-
name:
|
|
1492
|
+
name: b.name,
|
|
1490
1493
|
moduleInfo: {
|
|
1491
|
-
name:
|
|
1494
|
+
name: b.name,
|
|
1492
1495
|
entry: I,
|
|
1493
1496
|
type: "remoteEntryType" in _ ? _.remoteEntryType : "global",
|
|
1494
|
-
entryGlobalName: "globalName" in _ ? _.globalName :
|
|
1497
|
+
entryGlobalName: "globalName" in _ ? _.globalName : b.name,
|
|
1495
1498
|
shareScope: "",
|
|
1496
1499
|
version: "version" in _ ? _.version : void 0
|
|
1497
1500
|
},
|
|
@@ -1501,51 +1504,51 @@ function generatePreloadAssets(n, t, r, o, s) {
|
|
|
1501
1504
|
const A = normalizePreloadExposes(S.exposes);
|
|
1502
1505
|
if (A.length && "modules" in _) {
|
|
1503
1506
|
var T;
|
|
1504
|
-
R = _ == null || (T = _.modules) == null ? void 0 : T.reduce((
|
|
1507
|
+
R = _ == null || (T = _.modules) == null ? void 0 : T.reduce((w, N) => ((A == null ? void 0 : A.indexOf(N.moduleName)) !== -1 && w.push(N), w), []);
|
|
1505
1508
|
}
|
|
1506
|
-
function $(
|
|
1507
|
-
const
|
|
1508
|
-
return S.filter ?
|
|
1509
|
+
function $(w) {
|
|
1510
|
+
const N = w.map((O) => getResourceUrl(_, O));
|
|
1511
|
+
return S.filter ? N.filter(S.filter) : N;
|
|
1509
1512
|
}
|
|
1510
1513
|
if (R) {
|
|
1511
|
-
const
|
|
1512
|
-
for (let
|
|
1513
|
-
const
|
|
1514
|
+
const w = R.length;
|
|
1515
|
+
for (let N = 0; N < w; N++) {
|
|
1516
|
+
const O = R[N], P = `${b.name}/${O.moduleName}`;
|
|
1514
1517
|
n.remoteHandler.hooks.lifecycle.handlePreloadModule.emit({
|
|
1515
|
-
id:
|
|
1516
|
-
name:
|
|
1518
|
+
id: O.moduleName === "." ? b.name : P,
|
|
1519
|
+
name: b.name,
|
|
1517
1520
|
remoteSnapshot: _,
|
|
1518
1521
|
preloadConfig: S,
|
|
1519
|
-
remote:
|
|
1522
|
+
remote: b,
|
|
1520
1523
|
origin: n
|
|
1521
|
-
}), !getPreloaded(P) && (S.resourceCategory === "all" ? (
|
|
1524
|
+
}), !getPreloaded(P) && (S.resourceCategory === "all" ? (a.push(...$(O.assets.css.async)), a.push(...$(O.assets.css.sync)), l.push(...$(O.assets.js.async)), l.push(...$(O.assets.js.sync))) : (S.resourceCategory = "sync") && (a.push(...$(O.assets.css.sync)), l.push(...$(O.assets.js.sync))), setPreloaded(P));
|
|
1522
1525
|
}
|
|
1523
1526
|
}
|
|
1524
1527
|
}, !0, {}, s), s.shared) {
|
|
1525
|
-
const _ = (
|
|
1526
|
-
const S = getRegisteredShare(n.shareScopeMap, v.sharedName,
|
|
1528
|
+
const _ = (b, v) => {
|
|
1529
|
+
const S = getRegisteredShare(n.shareScopeMap, v.sharedName, b, n.sharedHandler.hooks.lifecycle.resolveShare);
|
|
1527
1530
|
S && typeof S.lib == "function" && (v.assets.js.sync.forEach((I) => {
|
|
1528
1531
|
c.add(I);
|
|
1529
1532
|
}), v.assets.css.sync.forEach((I) => {
|
|
1530
1533
|
u.add(I);
|
|
1531
1534
|
}));
|
|
1532
1535
|
};
|
|
1533
|
-
s.shared.forEach((
|
|
1536
|
+
s.shared.forEach((b) => {
|
|
1534
1537
|
var v;
|
|
1535
|
-
const S = (v = d.shared) == null ? void 0 : v[
|
|
1538
|
+
const S = (v = d.shared) == null ? void 0 : v[b.sharedName];
|
|
1536
1539
|
if (!S)
|
|
1537
1540
|
return;
|
|
1538
|
-
const I =
|
|
1541
|
+
const I = b.version ? S.find((A) => A.version === b.version) : S;
|
|
1539
1542
|
if (!I)
|
|
1540
1543
|
return;
|
|
1541
1544
|
arrayOptions(I).forEach((A) => {
|
|
1542
|
-
_(A,
|
|
1545
|
+
_(A, b);
|
|
1543
1546
|
});
|
|
1544
1547
|
});
|
|
1545
1548
|
}
|
|
1546
|
-
const E =
|
|
1549
|
+
const E = l.filter((_) => !c.has(_) && !isExisted("script", _));
|
|
1547
1550
|
return {
|
|
1548
|
-
cssAssets:
|
|
1551
|
+
cssAssets: a.filter((_) => !u.has(_) && !isExisted("link", _)),
|
|
1549
1552
|
jsAssetsWithoutEntry: E,
|
|
1550
1553
|
entryAssets: i.filter((_) => !isExisted("script", _.url))
|
|
1551
1554
|
};
|
|
@@ -1554,7 +1557,7 @@ const generatePreloadAssetsPlugin = function() {
|
|
|
1554
1557
|
return {
|
|
1555
1558
|
name: "generate-preload-assets-plugin",
|
|
1556
1559
|
async generatePreloadAssets(n) {
|
|
1557
|
-
const { origin: t, preloadOptions:
|
|
1560
|
+
const { origin: t, preloadOptions: o, remoteInfo: r, remote: s, globalSnapshot: a, remoteSnapshot: l } = n;
|
|
1558
1561
|
return isBrowserEnv() ? isRemoteInfoWithEntry(s) && isPureRemoteEntry(s) ? {
|
|
1559
1562
|
cssAssets: [],
|
|
1560
1563
|
jsAssetsWithoutEntry: [],
|
|
@@ -1563,15 +1566,15 @@ const generatePreloadAssetsPlugin = function() {
|
|
|
1563
1566
|
name: s.name,
|
|
1564
1567
|
url: s.entry,
|
|
1565
1568
|
moduleInfo: {
|
|
1566
|
-
name:
|
|
1569
|
+
name: r.name,
|
|
1567
1570
|
entry: s.entry,
|
|
1568
|
-
type:
|
|
1571
|
+
type: r.type || "global",
|
|
1569
1572
|
entryGlobalName: "",
|
|
1570
1573
|
shareScope: ""
|
|
1571
1574
|
}
|
|
1572
1575
|
}
|
|
1573
1576
|
]
|
|
1574
|
-
} : (assignRemoteInfo(
|
|
1577
|
+
} : (assignRemoteInfo(r, l), generatePreloadAssets(t, o, r, a, l)) : {
|
|
1575
1578
|
cssAssets: [],
|
|
1576
1579
|
jsAssetsWithoutEntry: [],
|
|
1577
1580
|
entryAssets: []
|
|
@@ -1580,16 +1583,16 @@ const generatePreloadAssetsPlugin = function() {
|
|
|
1580
1583
|
};
|
|
1581
1584
|
};
|
|
1582
1585
|
function getGlobalRemoteInfo(n, t) {
|
|
1583
|
-
const
|
|
1584
|
-
name: t.
|
|
1586
|
+
const o = getGlobalSnapshotInfoByModuleInfo({
|
|
1587
|
+
name: t.name,
|
|
1585
1588
|
version: t.options.version
|
|
1586
|
-
}),
|
|
1587
|
-
return
|
|
1588
|
-
hostGlobalSnapshot:
|
|
1589
|
+
}), r = o && "remotesInfo" in o && o.remotesInfo && getInfoWithoutType(o.remotesInfo, n.name).value;
|
|
1590
|
+
return r && r.matchedVersion ? {
|
|
1591
|
+
hostGlobalSnapshot: o,
|
|
1589
1592
|
globalSnapshot: getGlobalSnapshot(),
|
|
1590
1593
|
remoteSnapshot: getGlobalSnapshotInfoByModuleInfo({
|
|
1591
1594
|
name: n.name,
|
|
1592
|
-
version:
|
|
1595
|
+
version: r.matchedVersion
|
|
1593
1596
|
})
|
|
1594
1597
|
} : {
|
|
1595
1598
|
hostGlobalSnapshot: void 0,
|
|
@@ -1601,128 +1604,117 @@ function getGlobalRemoteInfo(n, t) {
|
|
|
1601
1604
|
};
|
|
1602
1605
|
}
|
|
1603
1606
|
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
|
-
}
|
|
1617
1607
|
// eslint-disable-next-line max-lines-per-function
|
|
1618
|
-
async loadRemoteSnapshotInfo(t) {
|
|
1619
|
-
const { options:
|
|
1608
|
+
async loadRemoteSnapshotInfo({ moduleInfo: t, id: o, expose: r }) {
|
|
1609
|
+
const { options: s } = this.HostInstance;
|
|
1620
1610
|
await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({
|
|
1621
|
-
options:
|
|
1611
|
+
options: s,
|
|
1622
1612
|
moduleInfo: t
|
|
1623
1613
|
});
|
|
1624
|
-
let
|
|
1614
|
+
let a = getGlobalSnapshotInfoByModuleInfo({
|
|
1625
1615
|
name: this.HostInstance.options.name,
|
|
1626
1616
|
version: this.HostInstance.options.version
|
|
1627
1617
|
});
|
|
1628
|
-
|
|
1618
|
+
a || (a = {
|
|
1629
1619
|
version: this.HostInstance.options.version || "",
|
|
1630
1620
|
remoteEntry: "",
|
|
1631
1621
|
remotesInfo: {}
|
|
1632
1622
|
}, addGlobalSnapshot({
|
|
1633
|
-
[this.HostInstance.options.name]:
|
|
1634
|
-
})),
|
|
1623
|
+
[this.HostInstance.options.name]: a
|
|
1624
|
+
})), a && "remotesInfo" in a && !getInfoWithoutType(a.remotesInfo, t.name).value && ("version" in t || "entry" in t) && (a.remotesInfo = _extends$1({}, a == null ? void 0 : a.remotesInfo, {
|
|
1635
1625
|
[t.name]: {
|
|
1636
1626
|
matchedVersion: "version" in t ? t.version : t.entry
|
|
1637
1627
|
}
|
|
1638
1628
|
}));
|
|
1639
|
-
const { hostGlobalSnapshot:
|
|
1640
|
-
options:
|
|
1629
|
+
const { hostGlobalSnapshot: l, remoteSnapshot: i, globalSnapshot: c } = this.getGlobalRemoteInfo(t), { remoteSnapshot: u, globalSnapshot: d } = await this.hooks.lifecycle.loadSnapshot.emit({
|
|
1630
|
+
options: s,
|
|
1641
1631
|
moduleInfo: t,
|
|
1642
|
-
hostGlobalSnapshot:
|
|
1643
|
-
remoteSnapshot:
|
|
1644
|
-
globalSnapshot:
|
|
1632
|
+
hostGlobalSnapshot: l,
|
|
1633
|
+
remoteSnapshot: i,
|
|
1634
|
+
globalSnapshot: c
|
|
1645
1635
|
});
|
|
1646
|
-
let
|
|
1647
|
-
if (
|
|
1648
|
-
if (isManifestProvider(
|
|
1649
|
-
const
|
|
1636
|
+
let p, m;
|
|
1637
|
+
if (u)
|
|
1638
|
+
if (isManifestProvider(u)) {
|
|
1639
|
+
const y = isBrowserEnv() ? u.remoteEntry : u.ssrRemoteEntry || u.remoteEntry || "", E = await this.getManifestJson(y, t, {}), g = setGlobalSnapshotInfoByModuleInfo(_extends$1({}, t, {
|
|
1650
1640
|
// The global remote may be overridden
|
|
1651
1641
|
// Therefore, set the snapshot key to the global address of the actual request
|
|
1652
|
-
entry:
|
|
1653
|
-
}),
|
|
1654
|
-
|
|
1642
|
+
entry: y
|
|
1643
|
+
}), E);
|
|
1644
|
+
p = E, m = g;
|
|
1655
1645
|
} else {
|
|
1656
|
-
const { remoteSnapshot:
|
|
1646
|
+
const { remoteSnapshot: y } = await this.hooks.lifecycle.loadRemoteSnapshot.emit({
|
|
1657
1647
|
options: this.HostInstance.options,
|
|
1658
1648
|
moduleInfo: t,
|
|
1659
|
-
remoteSnapshot:
|
|
1649
|
+
remoteSnapshot: u,
|
|
1660
1650
|
from: "global"
|
|
1661
1651
|
});
|
|
1662
|
-
|
|
1652
|
+
p = y, m = d;
|
|
1663
1653
|
}
|
|
1664
1654
|
else if (isRemoteInfoWithEntry(t)) {
|
|
1665
|
-
const
|
|
1655
|
+
const y = await this.getManifestJson(t.entry, t, {}), E = setGlobalSnapshotInfoByModuleInfo(t, y), { remoteSnapshot: g } = await this.hooks.lifecycle.loadRemoteSnapshot.emit({
|
|
1666
1656
|
options: this.HostInstance.options,
|
|
1667
1657
|
moduleInfo: t,
|
|
1668
|
-
remoteSnapshot:
|
|
1658
|
+
remoteSnapshot: y,
|
|
1669
1659
|
from: "global"
|
|
1670
1660
|
});
|
|
1671
|
-
|
|
1661
|
+
p = g, m = E;
|
|
1672
1662
|
} else
|
|
1673
1663
|
error(getShortErrorMsg(RUNTIME_007, runtimeDescMap, {
|
|
1674
1664
|
hostName: t.name,
|
|
1675
1665
|
hostVersion: t.version,
|
|
1676
|
-
globalSnapshot: JSON.stringify(
|
|
1666
|
+
globalSnapshot: JSON.stringify(d)
|
|
1677
1667
|
}));
|
|
1678
1668
|
return await this.hooks.lifecycle.afterLoadSnapshot.emit({
|
|
1679
|
-
|
|
1669
|
+
id: o,
|
|
1670
|
+
host: this.HostInstance,
|
|
1671
|
+
options: s,
|
|
1680
1672
|
moduleInfo: t,
|
|
1681
|
-
remoteSnapshot:
|
|
1673
|
+
remoteSnapshot: p
|
|
1682
1674
|
}), {
|
|
1683
|
-
remoteSnapshot:
|
|
1684
|
-
globalSnapshot:
|
|
1675
|
+
remoteSnapshot: p,
|
|
1676
|
+
globalSnapshot: m
|
|
1685
1677
|
};
|
|
1686
1678
|
}
|
|
1687
1679
|
getGlobalRemoteInfo(t) {
|
|
1688
1680
|
return getGlobalRemoteInfo(t, this.HostInstance);
|
|
1689
1681
|
}
|
|
1690
|
-
async getManifestJson(t,
|
|
1682
|
+
async getManifestJson(t, o, r) {
|
|
1691
1683
|
const s = async () => {
|
|
1692
|
-
let
|
|
1693
|
-
if (
|
|
1694
|
-
return
|
|
1684
|
+
let l = this.manifestCache.get(t);
|
|
1685
|
+
if (l)
|
|
1686
|
+
return l;
|
|
1695
1687
|
try {
|
|
1696
1688
|
let i = await this.loaderHook.lifecycle.fetch.emit(t, {});
|
|
1697
|
-
(!i || !(i instanceof Response)) && (i = await fetch(t, {})),
|
|
1689
|
+
(!i || !(i instanceof Response)) && (i = await fetch(t, {})), l = await i.json();
|
|
1698
1690
|
} catch (i) {
|
|
1699
|
-
|
|
1691
|
+
l = await this.HostInstance.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({
|
|
1700
1692
|
id: t,
|
|
1701
1693
|
error: i,
|
|
1702
1694
|
from: "runtime",
|
|
1703
1695
|
lifecycle: "afterResolve",
|
|
1704
1696
|
origin: this.HostInstance
|
|
1705
|
-
}),
|
|
1697
|
+
}), l || (delete this.manifestLoading[t], error(getShortErrorMsg(RUNTIME_003, runtimeDescMap, {
|
|
1706
1698
|
manifestUrl: t,
|
|
1707
|
-
moduleName:
|
|
1699
|
+
moduleName: o.name,
|
|
1708
1700
|
hostName: this.HostInstance.options.name
|
|
1709
1701
|
}, `${i}`)));
|
|
1710
1702
|
}
|
|
1711
|
-
return assert(
|
|
1712
|
-
},
|
|
1713
|
-
const
|
|
1703
|
+
return assert(l.metaData && l.exposes && l.shared, `${t} is not a federation manifest`), this.manifestCache.set(t, l), l;
|
|
1704
|
+
}, a = async () => {
|
|
1705
|
+
const l = await s(), i = generateSnapshotFromManifest(l, {
|
|
1714
1706
|
version: t
|
|
1715
1707
|
}), { remoteSnapshot: c } = await this.hooks.lifecycle.loadRemoteSnapshot.emit({
|
|
1716
1708
|
options: this.HostInstance.options,
|
|
1717
|
-
moduleInfo:
|
|
1718
|
-
manifestJson:
|
|
1709
|
+
moduleInfo: o,
|
|
1710
|
+
manifestJson: l,
|
|
1719
1711
|
remoteSnapshot: i,
|
|
1720
1712
|
manifestUrl: t,
|
|
1721
1713
|
from: "manifest"
|
|
1722
1714
|
});
|
|
1723
1715
|
return c;
|
|
1724
1716
|
};
|
|
1725
|
-
return this.manifestLoading[t] || (this.manifestLoading[t] =
|
|
1717
|
+
return this.manifestLoading[t] || (this.manifestLoading[t] = a().then((l) => l)), this.manifestLoading[t];
|
|
1726
1718
|
}
|
|
1727
1719
|
constructor(t) {
|
|
1728
1720
|
this.loadingHostSnapshot = null, this.manifestCache = /* @__PURE__ */ new Map(), this.hooks = new PluginSystem({
|
|
@@ -1735,44 +1727,44 @@ class SnapshotHandler {
|
|
|
1735
1727
|
}
|
|
1736
1728
|
class SharedHandler {
|
|
1737
1729
|
// register shared in shareScopeMap
|
|
1738
|
-
registerShared(t,
|
|
1739
|
-
const { shareInfos:
|
|
1740
|
-
return Object.keys(
|
|
1741
|
-
|
|
1742
|
-
!getRegisteredShare(this.shareScopeMap,
|
|
1743
|
-
pkgName:
|
|
1730
|
+
registerShared(t, o) {
|
|
1731
|
+
const { shareInfos: r, shared: s } = formatShareConfigs(t, o);
|
|
1732
|
+
return Object.keys(r).forEach((l) => {
|
|
1733
|
+
r[l].forEach((c) => {
|
|
1734
|
+
!getRegisteredShare(this.shareScopeMap, l, c, this.hooks.lifecycle.resolveShare) && c && c.lib && this.setShared({
|
|
1735
|
+
pkgName: l,
|
|
1744
1736
|
lib: c.lib,
|
|
1745
1737
|
get: c.get,
|
|
1746
1738
|
loaded: !0,
|
|
1747
1739
|
shared: c,
|
|
1748
|
-
from:
|
|
1740
|
+
from: o.name
|
|
1749
1741
|
});
|
|
1750
1742
|
});
|
|
1751
1743
|
}), {
|
|
1752
|
-
shareInfos:
|
|
1744
|
+
shareInfos: r,
|
|
1753
1745
|
shared: s
|
|
1754
1746
|
};
|
|
1755
1747
|
}
|
|
1756
|
-
async loadShare(t,
|
|
1757
|
-
const { host:
|
|
1748
|
+
async loadShare(t, o) {
|
|
1749
|
+
const { host: r } = this, s = getTargetSharedOptions({
|
|
1758
1750
|
pkgName: t,
|
|
1759
|
-
extraOptions:
|
|
1760
|
-
shareInfos:
|
|
1751
|
+
extraOptions: o,
|
|
1752
|
+
shareInfos: r.options.shared
|
|
1761
1753
|
});
|
|
1762
1754
|
s != null && s.scope && await Promise.all(s.scope.map(async (u) => {
|
|
1763
1755
|
await Promise.all(this.initializeSharing(u, {
|
|
1764
1756
|
strategy: s.strategy
|
|
1765
1757
|
}));
|
|
1766
1758
|
}));
|
|
1767
|
-
const
|
|
1759
|
+
const a = await this.hooks.lifecycle.beforeLoadShare.emit({
|
|
1768
1760
|
pkgName: t,
|
|
1769
1761
|
shareInfo: s,
|
|
1770
|
-
shared:
|
|
1771
|
-
origin:
|
|
1772
|
-
}), { shareInfo:
|
|
1773
|
-
assert(
|
|
1774
|
-
const i = getRegisteredShare(this.shareScopeMap, t,
|
|
1775
|
-
u.useIn || (u.useIn = []), addUniqueItem(u.useIn,
|
|
1762
|
+
shared: r.options.shared,
|
|
1763
|
+
origin: r
|
|
1764
|
+
}), { shareInfo: l } = a;
|
|
1765
|
+
assert(l, `Cannot find ${t} Share in the ${r.options.name}. Please ensure that the ${t} Share parameters have been injected`);
|
|
1766
|
+
const i = getRegisteredShare(this.shareScopeMap, t, l, this.hooks.lifecycle.resolveShare), c = (u) => {
|
|
1767
|
+
u.useIn || (u.useIn = []), addUniqueItem(u.useIn, r.options.name);
|
|
1776
1768
|
};
|
|
1777
1769
|
if (i && i.lib)
|
|
1778
1770
|
return c(i), i.lib;
|
|
@@ -1782,32 +1774,32 @@ class SharedHandler {
|
|
|
1782
1774
|
} else if (i) {
|
|
1783
1775
|
const d = (async () => {
|
|
1784
1776
|
const p = await i.get();
|
|
1785
|
-
|
|
1786
|
-
const m = getRegisteredShare(this.shareScopeMap, t,
|
|
1777
|
+
l.lib = p, l.loaded = !0, c(l);
|
|
1778
|
+
const m = getRegisteredShare(this.shareScopeMap, t, l, this.hooks.lifecycle.resolveShare);
|
|
1787
1779
|
return m && (m.lib = p, m.loaded = !0), p;
|
|
1788
1780
|
})();
|
|
1789
1781
|
return this.setShared({
|
|
1790
1782
|
pkgName: t,
|
|
1791
1783
|
loaded: !1,
|
|
1792
1784
|
shared: i,
|
|
1793
|
-
from:
|
|
1785
|
+
from: r.options.name,
|
|
1794
1786
|
lib: null,
|
|
1795
1787
|
loading: d
|
|
1796
1788
|
}), d;
|
|
1797
1789
|
} else {
|
|
1798
|
-
if (
|
|
1790
|
+
if (o != null && o.customShareInfo)
|
|
1799
1791
|
return !1;
|
|
1800
1792
|
const d = (async () => {
|
|
1801
|
-
const p = await
|
|
1802
|
-
|
|
1803
|
-
const m = getRegisteredShare(this.shareScopeMap, t,
|
|
1793
|
+
const p = await l.get();
|
|
1794
|
+
l.lib = p, l.loaded = !0, c(l);
|
|
1795
|
+
const m = getRegisteredShare(this.shareScopeMap, t, l, this.hooks.lifecycle.resolveShare);
|
|
1804
1796
|
return m && (m.lib = p, m.loaded = !0), p;
|
|
1805
1797
|
})();
|
|
1806
1798
|
return this.setShared({
|
|
1807
1799
|
pkgName: t,
|
|
1808
1800
|
loaded: !1,
|
|
1809
|
-
shared:
|
|
1810
|
-
from:
|
|
1801
|
+
shared: l,
|
|
1802
|
+
from: r.options.name,
|
|
1811
1803
|
lib: null,
|
|
1812
1804
|
loading: d
|
|
1813
1805
|
}), d;
|
|
@@ -1819,52 +1811,52 @@ class SharedHandler {
|
|
|
1819
1811
|
* If the share scope does not exist, it creates one.
|
|
1820
1812
|
*/
|
|
1821
1813
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
1822
|
-
initializeSharing(t = DEFAULT_SCOPE,
|
|
1823
|
-
const { host:
|
|
1824
|
-
let
|
|
1814
|
+
initializeSharing(t = DEFAULT_SCOPE, o) {
|
|
1815
|
+
const { host: r } = this, s = o == null ? void 0 : o.from, a = o == null ? void 0 : o.strategy;
|
|
1816
|
+
let l = o == null ? void 0 : o.initScope;
|
|
1825
1817
|
const i = [];
|
|
1826
1818
|
if (s !== "build") {
|
|
1827
1819
|
const { initTokens: E } = this;
|
|
1828
|
-
|
|
1829
|
-
let
|
|
1830
|
-
if (
|
|
1820
|
+
l || (l = []);
|
|
1821
|
+
let g = E[t];
|
|
1822
|
+
if (g || (g = E[t] = {
|
|
1831
1823
|
from: this.host.name
|
|
1832
|
-
}),
|
|
1833
|
-
|
|
1824
|
+
}), l.indexOf(g) >= 0) return i;
|
|
1825
|
+
l.push(g);
|
|
1834
1826
|
}
|
|
1835
|
-
const c = this.shareScopeMap, u =
|
|
1827
|
+
const c = this.shareScopeMap, u = r.options.name;
|
|
1836
1828
|
c[t] || (c[t] = {});
|
|
1837
|
-
const d = c[t], p = (E,
|
|
1829
|
+
const d = c[t], p = (E, g) => {
|
|
1838
1830
|
var _;
|
|
1839
|
-
const { version:
|
|
1831
|
+
const { version: b, eager: v } = g;
|
|
1840
1832
|
d[E] = d[E] || {};
|
|
1841
|
-
const S = d[E], I = S[
|
|
1842
|
-
(!I || I.strategy !== "loaded-first" && !I.loaded && (!v != !R ? v : u > I.from)) && (S[
|
|
1843
|
-
}, m = (E) => E && E.init && E.init(c[t],
|
|
1844
|
-
const { module:
|
|
1833
|
+
const S = d[E], I = S[b], R = !!(I && (I.eager || (_ = I.shareConfig) != null && _.eager));
|
|
1834
|
+
(!I || I.strategy !== "loaded-first" && !I.loaded && (!v != !R ? v : u > I.from)) && (S[b] = g);
|
|
1835
|
+
}, m = (E) => E && E.init && E.init(c[t], l), y = async (E) => {
|
|
1836
|
+
const { module: g } = await r.remoteHandler.getRemoteModuleAndOptions({
|
|
1845
1837
|
id: E
|
|
1846
1838
|
});
|
|
1847
|
-
if (
|
|
1839
|
+
if (g.getEntry) {
|
|
1848
1840
|
let _;
|
|
1849
1841
|
try {
|
|
1850
|
-
_ = await
|
|
1851
|
-
} catch (
|
|
1852
|
-
_ = await
|
|
1842
|
+
_ = await g.getEntry();
|
|
1843
|
+
} catch (b) {
|
|
1844
|
+
_ = await r.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({
|
|
1853
1845
|
id: E,
|
|
1854
|
-
error:
|
|
1846
|
+
error: b,
|
|
1855
1847
|
from: "runtime",
|
|
1856
1848
|
lifecycle: "beforeLoadShare",
|
|
1857
|
-
origin:
|
|
1849
|
+
origin: r
|
|
1858
1850
|
});
|
|
1859
1851
|
}
|
|
1860
|
-
|
|
1852
|
+
g.inited || (await m(_), g.inited = !0);
|
|
1861
1853
|
}
|
|
1862
1854
|
};
|
|
1863
|
-
return Object.keys(
|
|
1864
|
-
|
|
1855
|
+
return Object.keys(r.options.shared).forEach((E) => {
|
|
1856
|
+
r.options.shared[E].forEach((_) => {
|
|
1865
1857
|
_.scope.includes(t) && p(E, _);
|
|
1866
1858
|
});
|
|
1867
|
-
}), (
|
|
1859
|
+
}), (r.options.shareStrategy === "version-first" || a === "version-first") && r.options.remotes.forEach((E) => {
|
|
1868
1860
|
E.shareScope === t && i.push(y(E.name));
|
|
1869
1861
|
}), i;
|
|
1870
1862
|
}
|
|
@@ -1872,32 +1864,32 @@ class SharedHandler {
|
|
|
1872
1864
|
// 1. If the loaded shared already exists globally, then it will be reused
|
|
1873
1865
|
// 2. If lib exists in local shared, it will be used directly
|
|
1874
1866
|
// 3. If the local get returns something other than Promise, then it will be used directly
|
|
1875
|
-
loadShareSync(t,
|
|
1876
|
-
const { host:
|
|
1867
|
+
loadShareSync(t, o) {
|
|
1868
|
+
const { host: r } = this, s = getTargetSharedOptions({
|
|
1877
1869
|
pkgName: t,
|
|
1878
|
-
extraOptions:
|
|
1879
|
-
shareInfos:
|
|
1870
|
+
extraOptions: o,
|
|
1871
|
+
shareInfos: r.options.shared
|
|
1880
1872
|
});
|
|
1881
1873
|
s != null && s.scope && s.scope.forEach((i) => {
|
|
1882
1874
|
this.initializeSharing(i, {
|
|
1883
1875
|
strategy: s.strategy
|
|
1884
1876
|
});
|
|
1885
1877
|
});
|
|
1886
|
-
const
|
|
1887
|
-
i.useIn || (i.useIn = []), addUniqueItem(i.useIn,
|
|
1878
|
+
const a = getRegisteredShare(this.shareScopeMap, t, s, this.hooks.lifecycle.resolveShare), l = (i) => {
|
|
1879
|
+
i.useIn || (i.useIn = []), addUniqueItem(i.useIn, r.options.name);
|
|
1888
1880
|
};
|
|
1889
|
-
if (
|
|
1890
|
-
if (typeof
|
|
1891
|
-
return a
|
|
1892
|
-
if (typeof
|
|
1893
|
-
const i =
|
|
1881
|
+
if (a) {
|
|
1882
|
+
if (typeof a.lib == "function")
|
|
1883
|
+
return l(a), a.loaded || (a.loaded = !0, a.from === r.options.name && (s.loaded = !0)), a.lib;
|
|
1884
|
+
if (typeof a.get == "function") {
|
|
1885
|
+
const i = a.get();
|
|
1894
1886
|
if (!(i instanceof Promise))
|
|
1895
|
-
return a
|
|
1887
|
+
return l(a), this.setShared({
|
|
1896
1888
|
pkgName: t,
|
|
1897
1889
|
loaded: !0,
|
|
1898
|
-
from:
|
|
1890
|
+
from: r.options.name,
|
|
1899
1891
|
lib: i,
|
|
1900
|
-
shared:
|
|
1892
|
+
shared: a
|
|
1901
1893
|
}), i;
|
|
1902
1894
|
}
|
|
1903
1895
|
}
|
|
@@ -1906,37 +1898,37 @@ class SharedHandler {
|
|
|
1906
1898
|
if (s.get) {
|
|
1907
1899
|
const i = s.get();
|
|
1908
1900
|
if (i instanceof Promise) {
|
|
1909
|
-
const c = (
|
|
1901
|
+
const c = (o == null ? void 0 : o.from) === "build" ? RUNTIME_005 : RUNTIME_006;
|
|
1910
1902
|
throw new Error(getShortErrorMsg(c, runtimeDescMap, {
|
|
1911
|
-
hostName:
|
|
1903
|
+
hostName: r.options.name,
|
|
1912
1904
|
sharedPkgName: t
|
|
1913
1905
|
}));
|
|
1914
1906
|
}
|
|
1915
1907
|
return s.lib = i, this.setShared({
|
|
1916
1908
|
pkgName: t,
|
|
1917
1909
|
loaded: !0,
|
|
1918
|
-
from:
|
|
1910
|
+
from: r.options.name,
|
|
1919
1911
|
lib: s.lib,
|
|
1920
1912
|
shared: s
|
|
1921
1913
|
}), s.lib;
|
|
1922
1914
|
}
|
|
1923
1915
|
throw new Error(getShortErrorMsg(RUNTIME_006, runtimeDescMap, {
|
|
1924
|
-
hostName:
|
|
1916
|
+
hostName: r.options.name,
|
|
1925
1917
|
sharedPkgName: t
|
|
1926
1918
|
}));
|
|
1927
1919
|
}
|
|
1928
|
-
initShareScopeMap(t,
|
|
1920
|
+
initShareScopeMap(t, o, r = {}) {
|
|
1929
1921
|
const { host: s } = this;
|
|
1930
|
-
this.shareScopeMap[t] =
|
|
1931
|
-
shareScope:
|
|
1922
|
+
this.shareScopeMap[t] = o, this.hooks.lifecycle.initContainerShareScopeMap.emit({
|
|
1923
|
+
shareScope: o,
|
|
1932
1924
|
options: s.options,
|
|
1933
1925
|
origin: s,
|
|
1934
1926
|
scopeName: t,
|
|
1935
|
-
hostShareScopeMap:
|
|
1927
|
+
hostShareScopeMap: r.hostShareScopeMap
|
|
1936
1928
|
});
|
|
1937
1929
|
}
|
|
1938
|
-
setShared({ pkgName: t, shared:
|
|
1939
|
-
const { version: c, scope: u = "default" } =
|
|
1930
|
+
setShared({ pkgName: t, shared: o, from: r, lib: s, loading: a, loaded: l, get: i }) {
|
|
1931
|
+
const { version: c, scope: u = "default" } = o, d = _object_without_properties_loose(o, [
|
|
1940
1932
|
"version",
|
|
1941
1933
|
"scope"
|
|
1942
1934
|
]);
|
|
@@ -1951,18 +1943,18 @@ class SharedHandler {
|
|
|
1951
1943
|
]
|
|
1952
1944
|
}, d, {
|
|
1953
1945
|
lib: s,
|
|
1954
|
-
loaded:
|
|
1955
|
-
loading:
|
|
1946
|
+
loaded: l,
|
|
1947
|
+
loading: a
|
|
1956
1948
|
}), i && (this.shareScopeMap[m][t][c].get = i);
|
|
1957
1949
|
return;
|
|
1958
1950
|
}
|
|
1959
1951
|
const y = this.shareScopeMap[m][t][c];
|
|
1960
|
-
|
|
1952
|
+
a && !y.loading && (y.loading = a);
|
|
1961
1953
|
});
|
|
1962
1954
|
}
|
|
1963
1955
|
_setGlobalShareScopeMap(t) {
|
|
1964
|
-
const
|
|
1965
|
-
|
|
1956
|
+
const o = getGlobalShareScope(), r = t.id || t.name;
|
|
1957
|
+
r && !o[r] && (o[r] = this.shareScopeMap);
|
|
1966
1958
|
}
|
|
1967
1959
|
constructor(t) {
|
|
1968
1960
|
this.hooks = new PluginSystem({
|
|
@@ -1977,145 +1969,147 @@ class SharedHandler {
|
|
|
1977
1969
|
}
|
|
1978
1970
|
}
|
|
1979
1971
|
class RemoteHandler {
|
|
1980
|
-
formatAndRegisterRemote(t,
|
|
1981
|
-
return (
|
|
1972
|
+
formatAndRegisterRemote(t, o) {
|
|
1973
|
+
return (o.remotes || []).reduce((s, a) => (this.registerRemote(a, s, {
|
|
1982
1974
|
force: !1
|
|
1983
1975
|
}), s), t.remotes);
|
|
1984
1976
|
}
|
|
1985
|
-
setIdToRemoteMap(t,
|
|
1986
|
-
const { remote:
|
|
1977
|
+
setIdToRemoteMap(t, o) {
|
|
1978
|
+
const { remote: r, expose: s } = o, { name: a, alias: l } = r;
|
|
1987
1979
|
if (this.idToRemoteMap[t] = {
|
|
1988
|
-
name:
|
|
1980
|
+
name: r.name,
|
|
1989
1981
|
expose: s
|
|
1990
|
-
},
|
|
1991
|
-
const i = t.replace(
|
|
1982
|
+
}, l && t.startsWith(a)) {
|
|
1983
|
+
const i = t.replace(a, l);
|
|
1992
1984
|
this.idToRemoteMap[i] = {
|
|
1993
|
-
name:
|
|
1985
|
+
name: r.name,
|
|
1994
1986
|
expose: s
|
|
1995
1987
|
};
|
|
1996
1988
|
return;
|
|
1997
1989
|
}
|
|
1998
|
-
if (
|
|
1999
|
-
const i = t.replace(
|
|
1990
|
+
if (l && t.startsWith(l)) {
|
|
1991
|
+
const i = t.replace(l, a);
|
|
2000
1992
|
this.idToRemoteMap[i] = {
|
|
2001
|
-
name:
|
|
1993
|
+
name: r.name,
|
|
2002
1994
|
expose: s
|
|
2003
1995
|
};
|
|
2004
1996
|
}
|
|
2005
1997
|
}
|
|
2006
1998
|
// eslint-disable-next-line max-lines-per-function
|
|
2007
1999
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
2008
|
-
async loadRemote(t,
|
|
2009
|
-
const { host:
|
|
2000
|
+
async loadRemote(t, o) {
|
|
2001
|
+
const { host: r } = this;
|
|
2010
2002
|
try {
|
|
2011
|
-
const { loadFactory: s = !0 } =
|
|
2003
|
+
const { loadFactory: s = !0 } = o || {
|
|
2012
2004
|
loadFactory: !0
|
|
2013
|
-
}, { module:
|
|
2005
|
+
}, { module: a, moduleOptions: l, remoteMatchInfo: i } = await this.getRemoteModuleAndOptions({
|
|
2014
2006
|
id: t
|
|
2015
|
-
}), { pkgNameOrAlias: c, remote: u, expose: d, id: p, remoteSnapshot: m } = i, y = await
|
|
2007
|
+
}), { pkgNameOrAlias: c, remote: u, expose: d, id: p, remoteSnapshot: m } = i, y = await a.get(p, d, o, m), E = await this.hooks.lifecycle.onLoad.emit({
|
|
2016
2008
|
id: p,
|
|
2017
2009
|
pkgNameOrAlias: c,
|
|
2018
2010
|
expose: d,
|
|
2019
2011
|
exposeModule: s ? y : void 0,
|
|
2020
2012
|
exposeModuleFactory: s ? void 0 : y,
|
|
2021
2013
|
remote: u,
|
|
2022
|
-
options:
|
|
2023
|
-
moduleInstance:
|
|
2024
|
-
origin:
|
|
2014
|
+
options: l,
|
|
2015
|
+
moduleInstance: a,
|
|
2016
|
+
origin: r
|
|
2025
2017
|
});
|
|
2026
2018
|
return this.setIdToRemoteMap(t, i), typeof E == "function" ? E : y;
|
|
2027
2019
|
} catch (s) {
|
|
2028
|
-
const { from:
|
|
2020
|
+
const { from: a = "runtime" } = o || {
|
|
2029
2021
|
from: "runtime"
|
|
2030
|
-
},
|
|
2022
|
+
}, l = await this.hooks.lifecycle.errorLoadRemote.emit({
|
|
2031
2023
|
id: t,
|
|
2032
2024
|
error: s,
|
|
2033
|
-
from:
|
|
2025
|
+
from: a,
|
|
2034
2026
|
lifecycle: "onLoad",
|
|
2035
|
-
origin:
|
|
2027
|
+
origin: r
|
|
2036
2028
|
});
|
|
2037
|
-
if (!
|
|
2029
|
+
if (!l)
|
|
2038
2030
|
throw s;
|
|
2039
|
-
return
|
|
2031
|
+
return l;
|
|
2040
2032
|
}
|
|
2041
2033
|
}
|
|
2042
2034
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
2043
2035
|
async preloadRemote(t) {
|
|
2044
|
-
const { host:
|
|
2036
|
+
const { host: o } = this;
|
|
2045
2037
|
await this.hooks.lifecycle.beforePreloadRemote.emit({
|
|
2046
2038
|
preloadOps: t,
|
|
2047
|
-
options:
|
|
2048
|
-
origin:
|
|
2039
|
+
options: o.options,
|
|
2040
|
+
origin: o
|
|
2049
2041
|
});
|
|
2050
|
-
const
|
|
2051
|
-
await Promise.all(
|
|
2052
|
-
const { remote:
|
|
2053
|
-
|
|
2042
|
+
const r = formatPreloadArgs(o.options.remotes, t);
|
|
2043
|
+
await Promise.all(r.map(async (s) => {
|
|
2044
|
+
const { remote: a } = s, l = getRemoteInfo(a), { globalSnapshot: i, remoteSnapshot: c } = await o.snapshotHandler.loadRemoteSnapshotInfo({
|
|
2045
|
+
moduleInfo: a
|
|
2046
|
+
}), u = await this.hooks.lifecycle.generatePreloadAssets.emit({
|
|
2047
|
+
origin: o,
|
|
2054
2048
|
preloadOptions: s,
|
|
2055
|
-
remote:
|
|
2056
|
-
remoteInfo:
|
|
2049
|
+
remote: a,
|
|
2050
|
+
remoteInfo: l,
|
|
2057
2051
|
globalSnapshot: i,
|
|
2058
2052
|
remoteSnapshot: c
|
|
2059
2053
|
});
|
|
2060
|
-
u && preloadAssets(
|
|
2054
|
+
u && preloadAssets(l, o, u);
|
|
2061
2055
|
}));
|
|
2062
2056
|
}
|
|
2063
|
-
registerRemotes(t,
|
|
2064
|
-
const { host:
|
|
2057
|
+
registerRemotes(t, o) {
|
|
2058
|
+
const { host: r } = this;
|
|
2065
2059
|
t.forEach((s) => {
|
|
2066
|
-
this.registerRemote(s,
|
|
2067
|
-
force:
|
|
2060
|
+
this.registerRemote(s, r.options.remotes, {
|
|
2061
|
+
force: o == null ? void 0 : o.force
|
|
2068
2062
|
});
|
|
2069
2063
|
});
|
|
2070
2064
|
}
|
|
2071
2065
|
async getRemoteModuleAndOptions(t) {
|
|
2072
|
-
const { host:
|
|
2066
|
+
const { host: o } = this, { id: r } = t;
|
|
2073
2067
|
let s;
|
|
2074
2068
|
try {
|
|
2075
2069
|
s = await this.hooks.lifecycle.beforeRequest.emit({
|
|
2076
|
-
id:
|
|
2077
|
-
options:
|
|
2078
|
-
origin:
|
|
2070
|
+
id: r,
|
|
2071
|
+
options: o.options,
|
|
2072
|
+
origin: o
|
|
2079
2073
|
});
|
|
2080
2074
|
} catch (E) {
|
|
2081
2075
|
if (s = await this.hooks.lifecycle.errorLoadRemote.emit({
|
|
2082
|
-
id:
|
|
2083
|
-
options:
|
|
2084
|
-
origin:
|
|
2076
|
+
id: r,
|
|
2077
|
+
options: o.options,
|
|
2078
|
+
origin: o,
|
|
2085
2079
|
from: "runtime",
|
|
2086
2080
|
error: E,
|
|
2087
2081
|
lifecycle: "beforeRequest"
|
|
2088
2082
|
}), !s)
|
|
2089
2083
|
throw E;
|
|
2090
2084
|
}
|
|
2091
|
-
const { id:
|
|
2092
|
-
assert(
|
|
2093
|
-
hostName:
|
|
2094
|
-
requestId:
|
|
2085
|
+
const { id: a } = s, l = matchRemoteWithNameAndExpose(o.options.remotes, a);
|
|
2086
|
+
assert(l, getShortErrorMsg(RUNTIME_004, runtimeDescMap, {
|
|
2087
|
+
hostName: o.options.name,
|
|
2088
|
+
requestId: a
|
|
2095
2089
|
}));
|
|
2096
|
-
const { remote: i } =
|
|
2097
|
-
id:
|
|
2098
|
-
},
|
|
2099
|
-
options:
|
|
2100
|
-
origin:
|
|
2090
|
+
const { remote: i } = l, c = getRemoteInfo(i), u = await o.sharedHandler.hooks.lifecycle.afterResolve.emit(_extends$1({
|
|
2091
|
+
id: a
|
|
2092
|
+
}, l, {
|
|
2093
|
+
options: o.options,
|
|
2094
|
+
origin: o,
|
|
2101
2095
|
remoteInfo: c
|
|
2102
2096
|
})), { remote: d, expose: p } = u;
|
|
2103
|
-
assert(d && p, `The 'beforeRequest' hook was executed, but it failed to return the correct 'remote' and 'expose' values while loading ${
|
|
2104
|
-
let m =
|
|
2097
|
+
assert(d && p, `The 'beforeRequest' hook was executed, but it failed to return the correct 'remote' and 'expose' values while loading ${a}.`);
|
|
2098
|
+
let m = o.moduleCache.get(d.name);
|
|
2105
2099
|
const y = {
|
|
2106
|
-
host:
|
|
2100
|
+
host: o,
|
|
2107
2101
|
remoteInfo: c
|
|
2108
2102
|
};
|
|
2109
|
-
return m || (m = new Module(y),
|
|
2103
|
+
return m || (m = new Module(y), o.moduleCache.set(d.name, m)), {
|
|
2110
2104
|
module: m,
|
|
2111
2105
|
moduleOptions: y,
|
|
2112
2106
|
remoteMatchInfo: u
|
|
2113
2107
|
};
|
|
2114
2108
|
}
|
|
2115
|
-
registerRemote(t,
|
|
2116
|
-
const { host: s } = this,
|
|
2109
|
+
registerRemote(t, o, r) {
|
|
2110
|
+
const { host: s } = this, a = () => {
|
|
2117
2111
|
if (t.alias) {
|
|
2118
|
-
const i =
|
|
2112
|
+
const i = o.find((c) => {
|
|
2119
2113
|
var u;
|
|
2120
2114
|
return t.alias && (c.name.startsWith(t.alias) || ((u = c.alias) == null ? void 0 : u.startsWith(t.alias)));
|
|
2121
2115
|
});
|
|
@@ -2127,9 +2121,9 @@ class RemoteHandler {
|
|
|
2127
2121
|
remote: t,
|
|
2128
2122
|
origin: s
|
|
2129
2123
|
});
|
|
2130
|
-
const
|
|
2131
|
-
if (!
|
|
2132
|
-
|
|
2124
|
+
const l = o.find((i) => i.name === t.name);
|
|
2125
|
+
if (!l)
|
|
2126
|
+
a(), o.push(t), this.hooks.lifecycle.registerRemote.emit({
|
|
2133
2127
|
remote: t,
|
|
2134
2128
|
origin: s
|
|
2135
2129
|
});
|
|
@@ -2138,7 +2132,7 @@ class RemoteHandler {
|
|
|
2138
2132
|
`The remote "${t.name}" is already registered.`,
|
|
2139
2133
|
"Please note that overriding it may cause unexpected errors."
|
|
2140
2134
|
];
|
|
2141
|
-
|
|
2135
|
+
r != null && r.force && (this.removeRemote(l), a(), o.push(t), this.hooks.lifecycle.registerRemote.emit({
|
|
2142
2136
|
remote: t,
|
|
2143
2137
|
origin: s
|
|
2144
2138
|
}), warn$1(i.join(" ")));
|
|
@@ -2146,40 +2140,40 @@ class RemoteHandler {
|
|
|
2146
2140
|
}
|
|
2147
2141
|
removeRemote(t) {
|
|
2148
2142
|
try {
|
|
2149
|
-
const { host:
|
|
2150
|
-
|
|
2151
|
-
const
|
|
2152
|
-
if (
|
|
2153
|
-
const i =
|
|
2143
|
+
const { host: r } = this, { name: s } = t, a = r.options.remotes.findIndex((i) => i.name === s);
|
|
2144
|
+
a !== -1 && r.options.remotes.splice(a, 1);
|
|
2145
|
+
const l = r.moduleCache.get(t.name);
|
|
2146
|
+
if (l) {
|
|
2147
|
+
const i = l.remoteInfo, c = i.entryGlobalName;
|
|
2154
2148
|
if (CurrentGlobal[c]) {
|
|
2155
|
-
var
|
|
2156
|
-
(
|
|
2149
|
+
var o;
|
|
2150
|
+
(o = Object.getOwnPropertyDescriptor(CurrentGlobal, c)) != null && o.configurable ? delete CurrentGlobal[c] : CurrentGlobal[c] = void 0;
|
|
2157
2151
|
}
|
|
2158
|
-
const u = getRemoteEntryUniqueKey(
|
|
2159
|
-
globalLoading[u] && delete globalLoading[u],
|
|
2152
|
+
const u = getRemoteEntryUniqueKey(l.remoteInfo);
|
|
2153
|
+
globalLoading[u] && delete globalLoading[u], r.snapshotHandler.manifestCache.delete(i.entry);
|
|
2160
2154
|
let d = i.buildVersion ? composeKeyWithSeparator(i.name, i.buildVersion) : i.name;
|
|
2161
2155
|
const p = CurrentGlobal.__FEDERATION__.__INSTANCES__.findIndex((y) => i.buildVersion ? y.options.id === d : y.name === d);
|
|
2162
2156
|
if (p !== -1) {
|
|
2163
2157
|
const y = CurrentGlobal.__FEDERATION__.__INSTANCES__[p];
|
|
2164
2158
|
d = y.options.id || d;
|
|
2165
2159
|
const E = getGlobalShareScope();
|
|
2166
|
-
let
|
|
2160
|
+
let g = !0;
|
|
2167
2161
|
const _ = [];
|
|
2168
|
-
Object.keys(E).forEach((
|
|
2169
|
-
const v = E[
|
|
2162
|
+
Object.keys(E).forEach((b) => {
|
|
2163
|
+
const v = E[b];
|
|
2170
2164
|
v && Object.keys(v).forEach((S) => {
|
|
2171
2165
|
const I = v[S];
|
|
2172
2166
|
I && Object.keys(I).forEach((R) => {
|
|
2173
2167
|
const A = I[R];
|
|
2174
2168
|
A && Object.keys(A).forEach((T) => {
|
|
2175
2169
|
const $ = A[T];
|
|
2176
|
-
$ && typeof $ == "object" && $.from === i.name && ($.loaded || $.loading ? ($.useIn = $.useIn.filter((
|
|
2177
|
-
|
|
2170
|
+
$ && typeof $ == "object" && $.from === i.name && ($.loaded || $.loading ? ($.useIn = $.useIn.filter((w) => w !== i.name), $.useIn.length ? g = !1 : _.push([
|
|
2171
|
+
b,
|
|
2178
2172
|
S,
|
|
2179
2173
|
R,
|
|
2180
2174
|
T
|
|
2181
2175
|
])) : _.push([
|
|
2182
|
-
|
|
2176
|
+
b,
|
|
2183
2177
|
S,
|
|
2184
2178
|
R,
|
|
2185
2179
|
T
|
|
@@ -2187,20 +2181,20 @@ class RemoteHandler {
|
|
|
2187
2181
|
});
|
|
2188
2182
|
});
|
|
2189
2183
|
});
|
|
2190
|
-
}),
|
|
2184
|
+
}), g && (y.shareScopeMap = {}, delete E[d]), _.forEach(([b, v, S, I]) => {
|
|
2191
2185
|
var R, A, T;
|
|
2192
|
-
(T = E[
|
|
2186
|
+
(T = E[b]) == null || (A = T[v]) == null || (R = A[S]) == null || delete R[I];
|
|
2193
2187
|
}), CurrentGlobal.__FEDERATION__.__INSTANCES__.splice(p, 1);
|
|
2194
2188
|
}
|
|
2195
|
-
const { hostGlobalSnapshot: m } = getGlobalRemoteInfo(t,
|
|
2189
|
+
const { hostGlobalSnapshot: m } = getGlobalRemoteInfo(t, r);
|
|
2196
2190
|
if (m) {
|
|
2197
2191
|
const y = m && "remotesInfo" in m && m.remotesInfo && getInfoWithoutType(m.remotesInfo, t.name).key;
|
|
2198
2192
|
y && (delete m.remotesInfo[y], Global.__FEDERATION__.__MANIFEST_LOADING__[y] && delete Global.__FEDERATION__.__MANIFEST_LOADING__[y]);
|
|
2199
2193
|
}
|
|
2200
|
-
|
|
2194
|
+
r.moduleCache.delete(t.name);
|
|
2201
2195
|
}
|
|
2202
|
-
} catch (
|
|
2203
|
-
logger.log("removeRemote fail: ",
|
|
2196
|
+
} catch (r) {
|
|
2197
|
+
logger.log("removeRemote fail: ", r);
|
|
2204
2198
|
}
|
|
2205
2199
|
}
|
|
2206
2200
|
constructor(t) {
|
|
@@ -2223,59 +2217,59 @@ const USE_SNAPSHOT = typeof FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN == "boolean"
|
|
|
2223
2217
|
class FederationHost {
|
|
2224
2218
|
initOptions(t) {
|
|
2225
2219
|
this.registerPlugins(t.plugins);
|
|
2226
|
-
const
|
|
2227
|
-
return this.options =
|
|
2220
|
+
const o = this.formatOptions(this.options, t);
|
|
2221
|
+
return this.options = o, o;
|
|
2228
2222
|
}
|
|
2229
|
-
async loadShare(t,
|
|
2230
|
-
return this.sharedHandler.loadShare(t,
|
|
2223
|
+
async loadShare(t, o) {
|
|
2224
|
+
return this.sharedHandler.loadShare(t, o);
|
|
2231
2225
|
}
|
|
2232
2226
|
// The lib function will only be available if the shared set by eager or runtime init is set or the shared is successfully loaded.
|
|
2233
2227
|
// 1. If the loaded shared already exists globally, then it will be reused
|
|
2234
2228
|
// 2. If lib exists in local shared, it will be used directly
|
|
2235
2229
|
// 3. If the local get returns something other than Promise, then it will be used directly
|
|
2236
|
-
loadShareSync(t,
|
|
2237
|
-
return this.sharedHandler.loadShareSync(t,
|
|
2230
|
+
loadShareSync(t, o) {
|
|
2231
|
+
return this.sharedHandler.loadShareSync(t, o);
|
|
2238
2232
|
}
|
|
2239
|
-
initializeSharing(t = DEFAULT_SCOPE,
|
|
2240
|
-
return this.sharedHandler.initializeSharing(t,
|
|
2233
|
+
initializeSharing(t = DEFAULT_SCOPE, o) {
|
|
2234
|
+
return this.sharedHandler.initializeSharing(t, o);
|
|
2241
2235
|
}
|
|
2242
|
-
initRawContainer(t,
|
|
2236
|
+
initRawContainer(t, o, r) {
|
|
2243
2237
|
const s = getRemoteInfo({
|
|
2244
2238
|
name: t,
|
|
2245
|
-
entry:
|
|
2246
|
-
}),
|
|
2239
|
+
entry: o
|
|
2240
|
+
}), a = new Module({
|
|
2247
2241
|
host: this,
|
|
2248
2242
|
remoteInfo: s
|
|
2249
2243
|
});
|
|
2250
|
-
return
|
|
2244
|
+
return a.remoteEntryExports = r, this.moduleCache.set(t, a), a;
|
|
2251
2245
|
}
|
|
2252
2246
|
// eslint-disable-next-line max-lines-per-function
|
|
2253
2247
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
2254
|
-
async loadRemote(t,
|
|
2255
|
-
return this.remoteHandler.loadRemote(t,
|
|
2248
|
+
async loadRemote(t, o) {
|
|
2249
|
+
return this.remoteHandler.loadRemote(t, o);
|
|
2256
2250
|
}
|
|
2257
2251
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
2258
2252
|
async preloadRemote(t) {
|
|
2259
2253
|
return this.remoteHandler.preloadRemote(t);
|
|
2260
2254
|
}
|
|
2261
|
-
initShareScopeMap(t,
|
|
2262
|
-
this.sharedHandler.initShareScopeMap(t,
|
|
2255
|
+
initShareScopeMap(t, o, r = {}) {
|
|
2256
|
+
this.sharedHandler.initShareScopeMap(t, o, r);
|
|
2263
2257
|
}
|
|
2264
|
-
formatOptions(t,
|
|
2265
|
-
const { shared:
|
|
2258
|
+
formatOptions(t, o) {
|
|
2259
|
+
const { shared: r } = formatShareConfigs(t, o), { userOptions: s, options: a } = this.hooks.lifecycle.beforeInit.emit({
|
|
2266
2260
|
origin: this,
|
|
2267
|
-
userOptions:
|
|
2261
|
+
userOptions: o,
|
|
2268
2262
|
options: t,
|
|
2269
|
-
shareInfo:
|
|
2270
|
-
}),
|
|
2271
|
-
...
|
|
2263
|
+
shareInfo: r
|
|
2264
|
+
}), l = this.remoteHandler.formatAndRegisterRemote(a, s), { shared: i } = this.sharedHandler.registerShared(a, s), c = [
|
|
2265
|
+
...a.plugins
|
|
2272
2266
|
];
|
|
2273
2267
|
s.plugins && s.plugins.forEach((d) => {
|
|
2274
2268
|
c.includes(d) || c.push(d);
|
|
2275
2269
|
});
|
|
2276
|
-
const u = _extends$1({}, t,
|
|
2270
|
+
const u = _extends$1({}, t, o, {
|
|
2277
2271
|
plugins: c,
|
|
2278
|
-
remotes:
|
|
2272
|
+
remotes: l,
|
|
2279
2273
|
shared: i
|
|
2280
2274
|
});
|
|
2281
2275
|
return this.hooks.lifecycle.init.emit({
|
|
@@ -2284,7 +2278,7 @@ class FederationHost {
|
|
|
2284
2278
|
}), u;
|
|
2285
2279
|
}
|
|
2286
2280
|
registerPlugins(t) {
|
|
2287
|
-
const
|
|
2281
|
+
const o = registerPlugins(t, [
|
|
2288
2282
|
this.hooks,
|
|
2289
2283
|
this.remoteHandler.hooks,
|
|
2290
2284
|
this.sharedHandler.hooks,
|
|
@@ -2292,10 +2286,10 @@ class FederationHost {
|
|
|
2292
2286
|
this.loaderHook,
|
|
2293
2287
|
this.bridgeHook
|
|
2294
2288
|
]);
|
|
2295
|
-
this.options.plugins = this.options.plugins.reduce((
|
|
2289
|
+
this.options.plugins = this.options.plugins.reduce((r, s) => (s && r && !r.find((a) => a.name === s.name) && r.push(s), r), o || []);
|
|
2296
2290
|
}
|
|
2297
|
-
registerRemotes(t,
|
|
2298
|
-
return this.remoteHandler.registerRemotes(t,
|
|
2291
|
+
registerRemotes(t, o) {
|
|
2292
|
+
return this.remoteHandler.registerRemotes(t, o);
|
|
2299
2293
|
}
|
|
2300
2294
|
constructor(t) {
|
|
2301
2295
|
this.hooks = new PluginSystem({
|
|
@@ -2319,21 +2313,21 @@ class FederationHost {
|
|
|
2319
2313
|
beforeBridgeDestroy: new SyncHook(),
|
|
2320
2314
|
afterBridgeDestroy: new SyncHook()
|
|
2321
2315
|
});
|
|
2322
|
-
const
|
|
2316
|
+
const o = USE_SNAPSHOT ? [
|
|
2323
2317
|
snapshotPlugin(),
|
|
2324
2318
|
generatePreloadAssetsPlugin()
|
|
2325
|
-
] : [],
|
|
2319
|
+
] : [], r = {
|
|
2326
2320
|
id: getBuilderId(),
|
|
2327
2321
|
name: t.name,
|
|
2328
|
-
plugins:
|
|
2322
|
+
plugins: o,
|
|
2329
2323
|
remotes: [],
|
|
2330
2324
|
shared: {},
|
|
2331
2325
|
inBrowser: isBrowserEnv()
|
|
2332
2326
|
};
|
|
2333
|
-
this.name = t.name, this.options =
|
|
2334
|
-
...
|
|
2327
|
+
this.name = t.name, this.options = r, this.snapshotHandler = new SnapshotHandler(this), this.sharedHandler = new SharedHandler(this), this.remoteHandler = new RemoteHandler(this), this.shareScopeMap = this.sharedHandler.shareScopeMap, this.registerPlugins([
|
|
2328
|
+
...r.plugins,
|
|
2335
2329
|
...t.plugins || []
|
|
2336
|
-
]), this.options = this.formatOptions(
|
|
2330
|
+
]), this.options = this.formatOptions(r, t);
|
|
2337
2331
|
}
|
|
2338
2332
|
}
|
|
2339
2333
|
let FederationInstance = null;
|
|
@@ -2342,38 +2336,38 @@ function getInstance() {
|
|
|
2342
2336
|
}
|
|
2343
2337
|
setGlobalFederationConstructor(FederationHost);
|
|
2344
2338
|
function createBridgeComponent(n) {
|
|
2345
|
-
const t = /* @__PURE__ */ new Map(),
|
|
2339
|
+
const t = /* @__PURE__ */ new Map(), o = getInstance();
|
|
2346
2340
|
return () => ({
|
|
2347
2341
|
__APP_VERSION__: "0.14.0",
|
|
2348
|
-
async render(
|
|
2349
|
-
var E,
|
|
2350
|
-
LoggerInstance.debug("createBridgeComponent render Info",
|
|
2342
|
+
async render(r) {
|
|
2343
|
+
var E, g, _;
|
|
2344
|
+
LoggerInstance.debug("createBridgeComponent render Info", r);
|
|
2351
2345
|
const {
|
|
2352
2346
|
moduleName: s,
|
|
2353
|
-
dom:
|
|
2354
|
-
basename:
|
|
2347
|
+
dom: a,
|
|
2348
|
+
basename: l,
|
|
2355
2349
|
memoryRoute: i,
|
|
2356
2350
|
hashRoute: c,
|
|
2357
2351
|
...u
|
|
2358
|
-
} =
|
|
2359
|
-
t.set(
|
|
2360
|
-
const p = await ((_ = (
|
|
2352
|
+
} = r, d = Vue.createApp(n.rootComponent, u);
|
|
2353
|
+
t.set(a, d);
|
|
2354
|
+
const p = await ((_ = (g = (E = o == null ? void 0 : o.bridgeHook) == null ? void 0 : E.lifecycle) == null ? void 0 : g.beforeBridgeRender) == null ? void 0 : _.emit(r)), m = p && typeof p == "object" && (p != null && p.extraProps) ? p == null ? void 0 : p.extraProps : {}, y = n.appOptions({
|
|
2361
2355
|
app: d,
|
|
2362
|
-
basename:
|
|
2356
|
+
basename: l,
|
|
2363
2357
|
memoryRoute: i,
|
|
2364
2358
|
hashRoute: c,
|
|
2365
2359
|
...u,
|
|
2366
2360
|
...m
|
|
2367
2361
|
});
|
|
2368
2362
|
if (y != null && y.router) {
|
|
2369
|
-
let
|
|
2370
|
-
|
|
2363
|
+
let b, v = y.router.getRoutes();
|
|
2364
|
+
r.memoryRoute ? b = VueRouter.createMemoryHistory(r.basename) : r.hashRoute ? (b = VueRouter.createWebHashHistory(), v = v.map((I) => ({
|
|
2371
2365
|
...I,
|
|
2372
|
-
path:
|
|
2373
|
-
}))) :
|
|
2366
|
+
path: r.basename + I.path
|
|
2367
|
+
}))) : b = VueRouter.createWebHistory(r.basename);
|
|
2374
2368
|
const S = VueRouter.createRouter({
|
|
2375
2369
|
...y.router.options,
|
|
2376
|
-
history:
|
|
2370
|
+
history: b,
|
|
2377
2371
|
routes: v
|
|
2378
2372
|
});
|
|
2379
2373
|
LoggerInstance.debug("createBridgeComponent render router info>>>", {
|
|
@@ -2381,11 +2375,11 @@ function createBridgeComponent(n) {
|
|
|
2381
2375
|
router: S
|
|
2382
2376
|
}), i && await S.push(i.entryPath), d.use(S);
|
|
2383
2377
|
}
|
|
2384
|
-
d.mount(
|
|
2378
|
+
d.mount(a);
|
|
2385
2379
|
},
|
|
2386
|
-
destroy(
|
|
2387
|
-
LoggerInstance.debug("createBridgeComponent destroy Info",
|
|
2388
|
-
const s = t.get(
|
|
2380
|
+
destroy(r) {
|
|
2381
|
+
LoggerInstance.debug("createBridgeComponent destroy Info", r);
|
|
2382
|
+
const s = t.get(r == null ? void 0 : r.dom);
|
|
2389
2383
|
s == null || s.unmount();
|
|
2390
2384
|
}
|
|
2391
2385
|
});
|
|
@@ -2406,12 +2400,12 @@ const RemoteApp = /* @__PURE__ */ defineComponent({
|
|
|
2406
2400
|
},
|
|
2407
2401
|
inheritAttrs: !1,
|
|
2408
2402
|
setup(n) {
|
|
2409
|
-
const t = ref(null),
|
|
2410
|
-
var m, y, E,
|
|
2403
|
+
const t = ref(null), o = ref(null), r = ref(""), s = useRoute(), a = getInstance(), l = useAttrs(), i = async () => {
|
|
2404
|
+
var m, y, E, g;
|
|
2411
2405
|
const u = (m = n.providerInfo) == null ? void 0 : m.call(n);
|
|
2412
|
-
|
|
2406
|
+
o.value = u;
|
|
2413
2407
|
let d = {
|
|
2414
|
-
...
|
|
2408
|
+
...l,
|
|
2415
2409
|
moduleName: n.moduleName,
|
|
2416
2410
|
dom: t.value,
|
|
2417
2411
|
basename: n.basename,
|
|
@@ -2419,16 +2413,16 @@ const RemoteApp = /* @__PURE__ */ defineComponent({
|
|
|
2419
2413
|
hashRoute: n.hashRoute
|
|
2420
2414
|
};
|
|
2421
2415
|
LoggerInstance.debug("createRemoteComponent LazyComponent render >>>", d);
|
|
2422
|
-
const p = await ((
|
|
2416
|
+
const p = await ((g = (E = (y = a == null ? void 0 : a.bridgeHook) == null ? void 0 : y.lifecycle) == null ? void 0 : E.beforeBridgeRender) == null ? void 0 : g.emit(d)) || {};
|
|
2423
2417
|
d = {
|
|
2424
2418
|
...d,
|
|
2425
2419
|
...p.extraProps
|
|
2426
2420
|
}, u.render(d);
|
|
2427
2421
|
}, c = watch(() => s == null ? void 0 : s.path, (u) => {
|
|
2428
|
-
u !== s.path && i(),
|
|
2422
|
+
u !== s.path && i(), r.value !== "" && r.value !== u && (LoggerInstance.debug("createRemoteComponent dispatchPopstateEnv >>>", {
|
|
2429
2423
|
...n,
|
|
2430
2424
|
pathname: s.path
|
|
2431
|
-
}), e()),
|
|
2425
|
+
}), e()), r.value = u;
|
|
2432
2426
|
});
|
|
2433
2427
|
return onMounted(() => {
|
|
2434
2428
|
i();
|
|
@@ -2436,7 +2430,7 @@ const RemoteApp = /* @__PURE__ */ defineComponent({
|
|
|
2436
2430
|
var u;
|
|
2437
2431
|
LoggerInstance.debug("createRemoteComponent LazyComponent destroy >>>", {
|
|
2438
2432
|
...n
|
|
2439
|
-
}), c(), (u =
|
|
2433
|
+
}), c(), (u = o.value) == null || u.destroy({
|
|
2440
2434
|
dom: t.value
|
|
2441
2435
|
});
|
|
2442
2436
|
}), () => createVNode("div", mergeProps(n.rootAttrs || {}, {
|
|
@@ -2452,25 +2446,25 @@ function createRemoteComponent(n) {
|
|
|
2452
2446
|
loader: async () => {
|
|
2453
2447
|
var c, u;
|
|
2454
2448
|
const t = useRoute();
|
|
2455
|
-
let
|
|
2456
|
-
const
|
|
2457
|
-
|
|
2449
|
+
let o = "/";
|
|
2450
|
+
const r = (u = (c = t == null ? void 0 : t.matched) == null ? void 0 : c[0]) == null ? void 0 : u.path;
|
|
2451
|
+
r && (r.endsWith("/:pathMatch(.*)*") ? o = r.replace("/:pathMatch(.*)*", "") : o = t.matched[0].path);
|
|
2458
2452
|
const s = (n == null ? void 0 : n.export) || "default";
|
|
2459
2453
|
LoggerInstance.debug("createRemoteComponent LazyComponent create >>>", {
|
|
2460
|
-
basename:
|
|
2454
|
+
basename: o,
|
|
2461
2455
|
info: n
|
|
2462
2456
|
});
|
|
2463
|
-
const
|
|
2457
|
+
const a = await n.loader(), l = a && a[Symbol.for("mf_module_id")], i = a[s];
|
|
2464
2458
|
if (LoggerInstance.debug(
|
|
2465
2459
|
"createRemoteComponent LazyComponent loadRemote info >>>",
|
|
2466
|
-
{ moduleName:
|
|
2467
|
-
), s in
|
|
2460
|
+
{ moduleName: l, module: a, exportName: s, basename: o, route: t }
|
|
2461
|
+
), s in a && typeof i == "function")
|
|
2468
2462
|
return {
|
|
2469
2463
|
render() {
|
|
2470
2464
|
return h(RemoteApp, {
|
|
2471
|
-
moduleName:
|
|
2465
|
+
moduleName: l,
|
|
2472
2466
|
providerInfo: i,
|
|
2473
|
-
basename:
|
|
2467
|
+
basename: o,
|
|
2474
2468
|
rootAttrs: n.rootAttrs
|
|
2475
2469
|
});
|
|
2476
2470
|
}
|