@module-federation/bridge-vue3 0.0.0-next-20250616235047 → 0.0.0-next-20250617091719
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 +12 -6
- package/dist/index.cjs +4 -4
- package/dist/index.js +658 -662
- 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,45 +51,45 @@ 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 p = {};
|
|
76
76
|
if (!Object.keys(s).length) {
|
|
77
77
|
var d;
|
|
78
78
|
p = ((d = n.remotes) == null ? void 0 : d.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) => p[R] = {
|
|
87
87
|
// overrides will override dependencies
|
|
88
|
-
matchedVersion: u.includes(R) ?
|
|
88
|
+
matchedVersion: u.includes(R) ? a[R] : s[R]
|
|
89
89
|
});
|
|
90
90
|
const { remoteEntry: { path: m, name: y, type: g }, types: E, buildInfo: { buildVersion: _ }, globalName: b, ssrRemoteEntry: v } = n.metaData, { exposes: I } = n;
|
|
91
91
|
let S = {
|
|
92
|
-
version:
|
|
92
|
+
version: l || "",
|
|
93
93
|
buildVersion: _,
|
|
94
94
|
globalName: b,
|
|
95
95
|
remoteEntry: simpleJoinRemoteEntry(m, y),
|
|
@@ -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
|
S = _extends$2({}, S, {
|
|
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
|
S = _extends$2({}, S, {
|
|
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", BUILD_002 = "BUILD-002", 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);
|
|
@@ -420,7 +420,8 @@ const runtimeDescMap = {
|
|
|
420
420
|
}, typeDescMap = {
|
|
421
421
|
[TYPE_001]: "Failed to generate type declaration. Execute the below cmd to reproduce and fix the error."
|
|
422
422
|
}, buildDescMap = {
|
|
423
|
-
[BUILD_001]: "Failed to find expose module."
|
|
423
|
+
[BUILD_001]: "Failed to find expose module.",
|
|
424
|
+
[BUILD_002]: "PublicPath is required in prod mode."
|
|
424
425
|
};
|
|
425
426
|
_extends({}, runtimeDescMap, typeDescMap, buildDescMap);
|
|
426
427
|
const LOG_CATEGORY = "[ Federation Runtime ]", logger = createLogger(LOG_CATEGORY);
|
|
@@ -434,7 +435,7 @@ function warn(n) {
|
|
|
434
435
|
n instanceof Error && (n.message = `${LOG_CATEGORY}: ${n.message}`), logger.warn(n);
|
|
435
436
|
}
|
|
436
437
|
function addUniqueItem(n, t) {
|
|
437
|
-
return n.findIndex((
|
|
438
|
+
return n.findIndex((o) => o === t) === -1 && n.push(t), n;
|
|
438
439
|
}
|
|
439
440
|
function getFMId(n) {
|
|
440
441
|
return "version" in n && n.version ? `${n.name}:${n.version}` : "entry" in n && n.entry ? `${n.name}:${n.entry}` : `${n.name}`;
|
|
@@ -474,8 +475,8 @@ function getRemoteEntryInfoFromSnapshot(n) {
|
|
|
474
475
|
} : t;
|
|
475
476
|
}
|
|
476
477
|
const processModuleAlias = (n, t) => {
|
|
477
|
-
let
|
|
478
|
-
return n.endsWith("/") ?
|
|
478
|
+
let o;
|
|
479
|
+
return n.endsWith("/") ? o = n.slice(0, -1) : o = n, t.startsWith(".") && (t = t.slice(1)), o = o + t, o;
|
|
479
480
|
}, CurrentGlobal = typeof globalThis == "object" ? globalThis : window, nativeGlobal = (() => {
|
|
480
481
|
try {
|
|
481
482
|
return document.defaultView;
|
|
@@ -483,9 +484,9 @@ const processModuleAlias = (n, t) => {
|
|
|
483
484
|
return CurrentGlobal;
|
|
484
485
|
}
|
|
485
486
|
})(), Global = nativeGlobal;
|
|
486
|
-
function definePropertyGlobalVal(n, t,
|
|
487
|
+
function definePropertyGlobalVal(n, t, o) {
|
|
487
488
|
Object.defineProperty(n, t, {
|
|
488
|
-
value:
|
|
489
|
+
value: o,
|
|
489
490
|
configurable: !1,
|
|
490
491
|
writable: !0
|
|
491
492
|
});
|
|
@@ -496,7 +497,7 @@ function includeOwnProperty(n, t) {
|
|
|
496
497
|
includeOwnProperty(CurrentGlobal, "__GLOBAL_LOADING_REMOTE_ENTRY__") || definePropertyGlobalVal(CurrentGlobal, "__GLOBAL_LOADING_REMOTE_ENTRY__", {});
|
|
497
498
|
const globalLoading = CurrentGlobal.__GLOBAL_LOADING_REMOTE_ENTRY__;
|
|
498
499
|
function setGlobalDefaultVal(n) {
|
|
499
|
-
var t,
|
|
500
|
+
var t, o, r, s, a, l;
|
|
500
501
|
includeOwnProperty(n, "__VMOK__") && !includeOwnProperty(n, "__FEDERATION__") && definePropertyGlobalVal(n, "__FEDERATION__", n.__VMOK__), includeOwnProperty(n, "__FEDERATION__") || (definePropertyGlobalVal(n, "__FEDERATION__", {
|
|
501
502
|
__GLOBAL_PLUGIN__: [],
|
|
502
503
|
__INSTANCES__: [],
|
|
@@ -508,20 +509,20 @@ function setGlobalDefaultVal(n) {
|
|
|
508
509
|
var i;
|
|
509
510
|
(i = (t = n.__FEDERATION__).__GLOBAL_PLUGIN__) != null || (t.__GLOBAL_PLUGIN__ = []);
|
|
510
511
|
var c;
|
|
511
|
-
(c = (
|
|
512
|
+
(c = (o = n.__FEDERATION__).__INSTANCES__) != null || (o.__INSTANCES__ = []);
|
|
512
513
|
var u;
|
|
513
|
-
(u = (
|
|
514
|
+
(u = (r = n.__FEDERATION__).moduleInfo) != null || (r.moduleInfo = {});
|
|
514
515
|
var p;
|
|
515
516
|
(p = (s = n.__FEDERATION__).__SHARE__) != null || (s.__SHARE__ = {});
|
|
516
517
|
var d;
|
|
517
|
-
(d = (
|
|
518
|
+
(d = (a = n.__FEDERATION__).__MANIFEST_LOADING__) != null || (a.__MANIFEST_LOADING__ = {});
|
|
518
519
|
var m;
|
|
519
|
-
(m = (
|
|
520
|
+
(m = (l = n.__FEDERATION__).__PRELOADED_MAP__) != null || (l.__PRELOADED_MAP__ = /* @__PURE__ */ new Map());
|
|
520
521
|
}
|
|
521
522
|
setGlobalDefaultVal(CurrentGlobal);
|
|
522
523
|
setGlobalDefaultVal(nativeGlobal);
|
|
523
524
|
function setGlobalFederationConstructor(n, t = isDebugMode()) {
|
|
524
|
-
t && (CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR__ = n, CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = "0.
|
|
525
|
+
t && (CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR__ = n, CurrentGlobal.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = "0.15.0");
|
|
525
526
|
}
|
|
526
527
|
function getInfoWithoutType(n, t) {
|
|
527
528
|
if (typeof t == "string") {
|
|
@@ -531,9 +532,9 @@ function getInfoWithoutType(n, t) {
|
|
|
531
532
|
key: t
|
|
532
533
|
};
|
|
533
534
|
{
|
|
534
|
-
const
|
|
535
|
-
for (const s of
|
|
536
|
-
const [
|
|
535
|
+
const r = Object.keys(n);
|
|
536
|
+
for (const s of r) {
|
|
537
|
+
const [a, l] = s.split(":"), i = `${a}:${t}`, c = n[i];
|
|
537
538
|
if (c)
|
|
538
539
|
return {
|
|
539
540
|
value: c,
|
|
@@ -549,28 +550,28 @@ function getInfoWithoutType(n, t) {
|
|
|
549
550
|
throw new Error("key must be string");
|
|
550
551
|
}
|
|
551
552
|
const getGlobalSnapshot = () => nativeGlobal.__FEDERATION__.moduleInfo, getTargetSnapshotInfoByModuleInfo = (n, t) => {
|
|
552
|
-
const
|
|
553
|
-
if (
|
|
554
|
-
return
|
|
553
|
+
const o = getFMId(n), r = getInfoWithoutType(t, o).value;
|
|
554
|
+
if (r && !r.version && "version" in n && n.version && (r.version = n.version), r)
|
|
555
|
+
return r;
|
|
555
556
|
if ("version" in n && n.version) {
|
|
556
|
-
const { version: s } = n,
|
|
557
|
+
const { version: s } = n, a = _object_without_properties_loose(n, [
|
|
557
558
|
"version"
|
|
558
|
-
]),
|
|
559
|
+
]), l = getFMId(a), i = getInfoWithoutType(nativeGlobal.__FEDERATION__.moduleInfo, l).value;
|
|
559
560
|
if ((i == null ? void 0 : i.version) === s)
|
|
560
561
|
return i;
|
|
561
562
|
}
|
|
562
563
|
}, getGlobalSnapshotInfoByModuleInfo = (n) => getTargetSnapshotInfoByModuleInfo(n, nativeGlobal.__FEDERATION__.moduleInfo), setGlobalSnapshotInfoByModuleInfo = (n, t) => {
|
|
563
|
-
const
|
|
564
|
-
return nativeGlobal.__FEDERATION__.moduleInfo[
|
|
564
|
+
const o = getFMId(n);
|
|
565
|
+
return nativeGlobal.__FEDERATION__.moduleInfo[o] = t, nativeGlobal.__FEDERATION__.moduleInfo;
|
|
565
566
|
}, addGlobalSnapshot = (n) => (nativeGlobal.__FEDERATION__.moduleInfo = _extends$1({}, nativeGlobal.__FEDERATION__.moduleInfo, n), () => {
|
|
566
567
|
const t = Object.keys(n);
|
|
567
|
-
for (const
|
|
568
|
-
delete nativeGlobal.__FEDERATION__.moduleInfo[
|
|
568
|
+
for (const o of t)
|
|
569
|
+
delete nativeGlobal.__FEDERATION__.moduleInfo[o];
|
|
569
570
|
}), getRemoteEntryExports = (n, t) => {
|
|
570
|
-
const
|
|
571
|
+
const o = t || `__FEDERATION_${n}:custom__`, r = CurrentGlobal[o];
|
|
571
572
|
return {
|
|
572
|
-
remoteEntryKey:
|
|
573
|
-
entryExports:
|
|
573
|
+
remoteEntryKey: o,
|
|
574
|
+
entryExports: r
|
|
574
575
|
};
|
|
575
576
|
}, 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
577
|
function parseRegex(n) {
|
|
@@ -580,17 +581,17 @@ function isXVersion(n) {
|
|
|
580
581
|
return !n || n.toLowerCase() === "x" || n === "*";
|
|
581
582
|
}
|
|
582
583
|
function pipe(...n) {
|
|
583
|
-
return (t) => n.reduce((
|
|
584
|
+
return (t) => n.reduce((o, r) => r(o), t);
|
|
584
585
|
}
|
|
585
586
|
function extractComparator(n) {
|
|
586
587
|
return n.match(parseRegex(comparator));
|
|
587
588
|
}
|
|
588
|
-
function combineVersion(n, t,
|
|
589
|
-
const s = `${n}.${t}.${
|
|
590
|
-
return
|
|
589
|
+
function combineVersion(n, t, o, r) {
|
|
590
|
+
const s = `${n}.${t}.${o}`;
|
|
591
|
+
return r ? `${s}-${r}` : s;
|
|
591
592
|
}
|
|
592
593
|
function parseHyphen(n) {
|
|
593
|
-
return n.replace(parseRegex(hyphenRange), (t,
|
|
594
|
+
return n.replace(parseRegex(hyphenRange), (t, o, r, s, a, l, i, c, u, p, d, m) => (isXVersion(r) ? o = "" : isXVersion(s) ? o = `>=${r}.0.0` : isXVersion(a) ? o = `>=${r}.${s}.0` : o = `>=${o}`, isXVersion(u) ? c = "" : isXVersion(p) ? c = `<${Number(u) + 1}.0.0-0` : isXVersion(d) ? c = `<${u}.${Number(p) + 1}.0-0` : m ? c = `<=${u}.${p}.${d}-${m}` : c = `<=${c}`, `${o} ${c}`.trim()));
|
|
594
595
|
}
|
|
595
596
|
function parseComparatorTrim(n) {
|
|
596
597
|
return n.replace(parseRegex(comparatorTrim), "$1$2$3");
|
|
@@ -602,15 +603,15 @@ function parseCaretTrim(n) {
|
|
|
602
603
|
return n.replace(parseRegex(caretTrim), "$1^");
|
|
603
604
|
}
|
|
604
605
|
function parseCarets(n) {
|
|
605
|
-
return n.trim().split(/\s+/).map((t) => t.replace(parseRegex(caret), (
|
|
606
|
+
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
607
|
}
|
|
607
608
|
function parseTildes(n) {
|
|
608
|
-
return n.trim().split(/\s+/).map((t) => t.replace(parseRegex(tilde), (
|
|
609
|
+
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
610
|
}
|
|
610
611
|
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
|
|
612
|
+
return n.split(/\s+/).map((t) => t.trim().replace(parseRegex(xRange), (o, r, s, a, l, i) => {
|
|
613
|
+
const c = isXVersion(s), u = c || isXVersion(a), p = u || isXVersion(l);
|
|
614
|
+
return r === "=" && p && (r = ""), i = "", c ? r === ">" || r === "<" ? "<0.0.0-0" : "*" : r && p ? (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` : p ? `>=${s}.${a}.0${i} <${s}.${Number(a) + 1}.0-0` : o;
|
|
614
615
|
})).join(" ");
|
|
615
616
|
}
|
|
616
617
|
function parseStar(n) {
|
|
@@ -623,17 +624,17 @@ function compareAtom(n, t) {
|
|
|
623
624
|
return n = Number(n) || n, t = Number(t) || t, n > t ? 1 : n === t ? 0 : -1;
|
|
624
625
|
}
|
|
625
626
|
function comparePreRelease(n, t) {
|
|
626
|
-
const { preRelease:
|
|
627
|
-
if (
|
|
627
|
+
const { preRelease: o } = n, { preRelease: r } = t;
|
|
628
|
+
if (o === void 0 && r)
|
|
628
629
|
return 1;
|
|
629
|
-
if (
|
|
630
|
+
if (o && r === void 0)
|
|
630
631
|
return -1;
|
|
631
|
-
if (
|
|
632
|
+
if (o === void 0 && r === void 0)
|
|
632
633
|
return 0;
|
|
633
|
-
for (let s = 0,
|
|
634
|
-
const
|
|
635
|
-
if (
|
|
636
|
-
return
|
|
634
|
+
for (let s = 0, a = o.length; s <= a; s++) {
|
|
635
|
+
const l = o[s], i = r[s];
|
|
636
|
+
if (l !== i)
|
|
637
|
+
return l === void 0 && i === void 0 ? 0 : l ? i ? compareAtom(l, i) : -1 : 1;
|
|
637
638
|
}
|
|
638
639
|
return 0;
|
|
639
640
|
}
|
|
@@ -703,15 +704,15 @@ function parseRange(n) {
|
|
|
703
704
|
function satisfy(n, t) {
|
|
704
705
|
if (!n)
|
|
705
706
|
return !1;
|
|
706
|
-
const
|
|
707
|
-
if (!
|
|
707
|
+
const o = extractComparator(n);
|
|
708
|
+
if (!o)
|
|
708
709
|
return !1;
|
|
709
|
-
const [,
|
|
710
|
-
operator:
|
|
711
|
-
version: combineVersion(s,
|
|
710
|
+
const [, r, , s, a, l, i] = o, c = {
|
|
711
|
+
operator: r,
|
|
712
|
+
version: combineVersion(s, a, l, i),
|
|
712
713
|
major: s,
|
|
713
|
-
minor:
|
|
714
|
-
patch:
|
|
714
|
+
minor: a,
|
|
715
|
+
patch: l,
|
|
715
716
|
preRelease: i == null ? void 0 : i.split(".")
|
|
716
717
|
}, u = t.split("||");
|
|
717
718
|
for (const p of u) {
|
|
@@ -757,12 +758,12 @@ function satisfy(n, t) {
|
|
|
757
758
|
}
|
|
758
759
|
return !1;
|
|
759
760
|
}
|
|
760
|
-
function formatShare(n, t,
|
|
761
|
+
function formatShare(n, t, o, r) {
|
|
761
762
|
let s;
|
|
762
763
|
"get" in n ? s = n.get : "lib" in n ? s = () => Promise.resolve(n.lib) : s = () => Promise.resolve(() => {
|
|
763
|
-
throw new Error(`Can not get shared '${
|
|
764
|
+
throw new Error(`Can not get shared '${o}'!`);
|
|
764
765
|
});
|
|
765
|
-
var
|
|
766
|
+
var a, l, i;
|
|
766
767
|
return _extends$1({
|
|
767
768
|
deps: [],
|
|
768
769
|
useIn: [],
|
|
@@ -777,76 +778,76 @@ function formatShare(n, t, r, o) {
|
|
|
777
778
|
}, n.shareConfig),
|
|
778
779
|
get: s,
|
|
779
780
|
loaded: n != null && n.loaded || "lib" in n ? !0 : void 0,
|
|
780
|
-
version: (
|
|
781
|
+
version: (a = n.version) != null ? a : "0",
|
|
781
782
|
scope: Array.isArray(n.scope) ? n.scope : [
|
|
782
|
-
(
|
|
783
|
+
(l = n.scope) != null ? l : "default"
|
|
783
784
|
],
|
|
784
|
-
strategy: ((i = n.strategy) != null ? i :
|
|
785
|
+
strategy: ((i = n.strategy) != null ? i : r) || "version-first"
|
|
785
786
|
});
|
|
786
787
|
}
|
|
787
788
|
function formatShareConfigs(n, t) {
|
|
788
|
-
const
|
|
789
|
-
const c = arrayOptions(
|
|
790
|
-
return
|
|
791
|
-
|
|
792
|
-
}),
|
|
793
|
-
}, {}),
|
|
794
|
-
return Object.keys(s).forEach((
|
|
795
|
-
l
|
|
796
|
-
l
|
|
797
|
-
}) : l
|
|
789
|
+
const o = t.shared || {}, r = t.name, s = Object.keys(o).reduce((l, i) => {
|
|
790
|
+
const c = arrayOptions(o[i]);
|
|
791
|
+
return l[i] = l[i] || [], c.forEach((u) => {
|
|
792
|
+
l[i].push(formatShare(u, r, i, t.shareStrategy));
|
|
793
|
+
}), l;
|
|
794
|
+
}, {}), a = _extends$1({}, n.shared);
|
|
795
|
+
return Object.keys(s).forEach((l) => {
|
|
796
|
+
a[l] ? s[l].forEach((i) => {
|
|
797
|
+
a[l].find((u) => u.version === i.version) || a[l].push(i);
|
|
798
|
+
}) : a[l] = s[l];
|
|
798
799
|
}), {
|
|
799
|
-
shared:
|
|
800
|
+
shared: a,
|
|
800
801
|
shareInfos: s
|
|
801
802
|
};
|
|
802
803
|
}
|
|
803
804
|
function versionLt(n, t) {
|
|
804
|
-
const
|
|
805
|
-
if (!Number.isNaN(Number(
|
|
806
|
-
const
|
|
807
|
-
let
|
|
808
|
-
for (let i = 0; i < 3 -
|
|
809
|
-
|
|
810
|
-
return
|
|
805
|
+
const o = (r) => {
|
|
806
|
+
if (!Number.isNaN(Number(r))) {
|
|
807
|
+
const a = r.split(".");
|
|
808
|
+
let l = r;
|
|
809
|
+
for (let i = 0; i < 3 - a.length; i++)
|
|
810
|
+
l += ".0";
|
|
811
|
+
return l;
|
|
811
812
|
}
|
|
812
|
-
return
|
|
813
|
+
return r;
|
|
813
814
|
};
|
|
814
|
-
return !!satisfy(
|
|
815
|
+
return !!satisfy(o(n), `<=${o(t)}`);
|
|
815
816
|
}
|
|
816
817
|
const findVersion = (n, t) => {
|
|
817
|
-
const
|
|
818
|
-
return versionLt(
|
|
818
|
+
const o = t || function(r, s) {
|
|
819
|
+
return versionLt(r, s);
|
|
819
820
|
};
|
|
820
|
-
return Object.keys(n).reduce((
|
|
821
|
+
return Object.keys(n).reduce((r, s) => !r || o(r, s) || r === "0" ? s : r, 0);
|
|
821
822
|
}, isLoaded = (n) => !!n.loaded || typeof n.lib == "function", isLoading = (n) => !!n.loading;
|
|
822
|
-
function findSingletonVersionOrderByVersion(n, t,
|
|
823
|
-
const
|
|
824
|
-
return !isLoaded(
|
|
823
|
+
function findSingletonVersionOrderByVersion(n, t, o) {
|
|
824
|
+
const r = n[t][o], s = function(a, l) {
|
|
825
|
+
return !isLoaded(r[a]) && versionLt(a, l);
|
|
825
826
|
};
|
|
826
|
-
return findVersion(n[t][
|
|
827
|
+
return findVersion(n[t][o], s);
|
|
827
828
|
}
|
|
828
|
-
function findSingletonVersionOrderByLoaded(n, t,
|
|
829
|
-
const
|
|
829
|
+
function findSingletonVersionOrderByLoaded(n, t, o) {
|
|
830
|
+
const r = n[t][o], s = function(a, l) {
|
|
830
831
|
const i = (c) => isLoaded(c) || isLoading(c);
|
|
831
|
-
return i(
|
|
832
|
+
return i(r[l]) ? i(r[a]) ? !!versionLt(a, l) : !0 : i(r[a]) ? !1 : versionLt(a, l);
|
|
832
833
|
};
|
|
833
|
-
return findVersion(n[t][
|
|
834
|
+
return findVersion(n[t][o], s);
|
|
834
835
|
}
|
|
835
836
|
function getFindShareFunction(n) {
|
|
836
837
|
return n === "loaded-first" ? findSingletonVersionOrderByLoaded : findSingletonVersionOrderByVersion;
|
|
837
838
|
}
|
|
838
|
-
function getRegisteredShare(n, t,
|
|
839
|
+
function getRegisteredShare(n, t, o, r) {
|
|
839
840
|
if (!n)
|
|
840
841
|
return;
|
|
841
|
-
const { shareConfig: s, scope:
|
|
842
|
-
|
|
842
|
+
const { shareConfig: s, scope: a = DEFAULT_SCOPE, strategy: l } = o, i = Array.isArray(a) ? a : [
|
|
843
|
+
a
|
|
843
844
|
];
|
|
844
845
|
for (const c of i)
|
|
845
846
|
if (s && n[c] && n[c][t]) {
|
|
846
|
-
const { requiredVersion: u } = s, d = getFindShareFunction(
|
|
847
|
+
const { requiredVersion: u } = s, d = getFindShareFunction(l)(n, c, t), m = () => {
|
|
847
848
|
if (s.singleton) {
|
|
848
849
|
if (typeof u == "string" && !satisfy(d, u)) {
|
|
849
|
-
const E = `Version ${d} from ${d && n[c][t][d].from} of shared singleton module ${t} does not satisfy the requirement of ${
|
|
850
|
+
const E = `Version ${d} from ${d && n[c][t][d].from} of shared singleton module ${t} does not satisfy the requirement of ${o.from} which needs ${u})`;
|
|
850
851
|
s.strictVersion ? error(E) : warn(E);
|
|
851
852
|
}
|
|
852
853
|
return n[c][t][d];
|
|
@@ -865,14 +866,14 @@ function getRegisteredShare(n, t, r, o) {
|
|
|
865
866
|
GlobalFederation: Global.__FEDERATION__,
|
|
866
867
|
resolver: m
|
|
867
868
|
};
|
|
868
|
-
return (
|
|
869
|
+
return (r.emit(y) || y).resolver();
|
|
869
870
|
}
|
|
870
871
|
}
|
|
871
872
|
function getGlobalShareScope() {
|
|
872
873
|
return Global.__FEDERATION__.__SHARE__;
|
|
873
874
|
}
|
|
874
875
|
function getTargetSharedOptions(n) {
|
|
875
|
-
const { pkgName: t, extraOptions:
|
|
876
|
+
const { pkgName: t, extraOptions: o, shareInfos: r } = n, s = (i) => {
|
|
876
877
|
if (!i)
|
|
877
878
|
return;
|
|
878
879
|
const c = {};
|
|
@@ -884,152 +885,152 @@ function getTargetSharedOptions(n) {
|
|
|
884
885
|
});
|
|
885
886
|
return c[p];
|
|
886
887
|
};
|
|
887
|
-
var
|
|
888
|
-
const
|
|
889
|
-
return Object.assign({},
|
|
888
|
+
var a;
|
|
889
|
+
const l = (a = o == null ? void 0 : o.resolver) != null ? a : s;
|
|
890
|
+
return Object.assign({}, l(r[t]), o == null ? void 0 : o.customShareInfo);
|
|
890
891
|
}
|
|
891
892
|
function getBuilderId() {
|
|
892
893
|
return typeof FEDERATION_BUILD_IDENTIFIER < "u" ? FEDERATION_BUILD_IDENTIFIER : "";
|
|
893
894
|
}
|
|
894
895
|
function matchRemoteWithNameAndExpose(n, t) {
|
|
895
|
-
for (const
|
|
896
|
-
const
|
|
897
|
-
let s = t.replace(
|
|
898
|
-
if (
|
|
896
|
+
for (const o of n) {
|
|
897
|
+
const r = t.startsWith(o.name);
|
|
898
|
+
let s = t.replace(o.name, "");
|
|
899
|
+
if (r) {
|
|
899
900
|
if (s.startsWith("/")) {
|
|
900
|
-
const i =
|
|
901
|
+
const i = o.name;
|
|
901
902
|
return s = `.${s}`, {
|
|
902
903
|
pkgNameOrAlias: i,
|
|
903
904
|
expose: s,
|
|
904
|
-
remote:
|
|
905
|
+
remote: o
|
|
905
906
|
};
|
|
906
907
|
} else if (s === "")
|
|
907
908
|
return {
|
|
908
|
-
pkgNameOrAlias:
|
|
909
|
+
pkgNameOrAlias: o.name,
|
|
909
910
|
expose: ".",
|
|
910
|
-
remote:
|
|
911
|
+
remote: o
|
|
911
912
|
};
|
|
912
913
|
}
|
|
913
|
-
const
|
|
914
|
-
let
|
|
915
|
-
if (
|
|
916
|
-
if (
|
|
917
|
-
const i =
|
|
918
|
-
return
|
|
914
|
+
const a = o.alias && t.startsWith(o.alias);
|
|
915
|
+
let l = o.alias && t.replace(o.alias, "");
|
|
916
|
+
if (o.alias && a) {
|
|
917
|
+
if (l && l.startsWith("/")) {
|
|
918
|
+
const i = o.alias;
|
|
919
|
+
return l = `.${l}`, {
|
|
919
920
|
pkgNameOrAlias: i,
|
|
920
|
-
expose:
|
|
921
|
-
remote:
|
|
921
|
+
expose: l,
|
|
922
|
+
remote: o
|
|
922
923
|
};
|
|
923
|
-
} else if (
|
|
924
|
+
} else if (l === "")
|
|
924
925
|
return {
|
|
925
|
-
pkgNameOrAlias:
|
|
926
|
+
pkgNameOrAlias: o.alias,
|
|
926
927
|
expose: ".",
|
|
927
|
-
remote:
|
|
928
|
+
remote: o
|
|
928
929
|
};
|
|
929
930
|
}
|
|
930
931
|
}
|
|
931
932
|
}
|
|
932
933
|
function matchRemote(n, t) {
|
|
933
|
-
for (const
|
|
934
|
-
if (t ===
|
|
935
|
-
return
|
|
934
|
+
for (const o of n)
|
|
935
|
+
if (t === o.name || o.alias && t === o.alias)
|
|
936
|
+
return o;
|
|
936
937
|
}
|
|
937
938
|
function registerPlugins(n, t) {
|
|
938
|
-
const
|
|
939
|
-
return
|
|
940
|
-
n != null && n.find((s) => s.name !==
|
|
941
|
-
}), n && n.length > 0 && n.forEach((
|
|
939
|
+
const o = getGlobalHostPlugins();
|
|
940
|
+
return o.length > 0 && o.forEach((r) => {
|
|
941
|
+
n != null && n.find((s) => s.name !== r.name) && n.push(r);
|
|
942
|
+
}), n && n.length > 0 && n.forEach((r) => {
|
|
942
943
|
t.forEach((s) => {
|
|
943
|
-
s.applyPlugin(
|
|
944
|
+
s.applyPlugin(r);
|
|
944
945
|
});
|
|
945
946
|
}), n;
|
|
946
947
|
}
|
|
947
948
|
const importCallback = ".then(callbacks[0]).catch(callbacks[1])";
|
|
948
949
|
async function loadEsmEntry({ entry: n, remoteEntryExports: t }) {
|
|
949
|
-
return new Promise((
|
|
950
|
+
return new Promise((o, r) => {
|
|
950
951
|
try {
|
|
951
|
-
t ?
|
|
952
|
-
|
|
953
|
-
|
|
952
|
+
t ? o(t) : typeof FEDERATION_ALLOW_NEW_FUNCTION < "u" ? new Function("callbacks", `import("${n}")${importCallback}`)([
|
|
953
|
+
o,
|
|
954
|
+
r
|
|
954
955
|
]) : import(
|
|
955
956
|
/* webpackIgnore: true */
|
|
956
957
|
/* @vite-ignore */
|
|
957
958
|
n
|
|
958
|
-
).then(
|
|
959
|
+
).then(o).catch(r);
|
|
959
960
|
} catch (s) {
|
|
960
|
-
|
|
961
|
+
r(s);
|
|
961
962
|
}
|
|
962
963
|
});
|
|
963
964
|
}
|
|
964
965
|
async function loadSystemJsEntry({ entry: n, remoteEntryExports: t }) {
|
|
965
|
-
return new Promise((
|
|
966
|
+
return new Promise((o, r) => {
|
|
966
967
|
try {
|
|
967
|
-
t ?
|
|
968
|
-
|
|
969
|
-
|
|
968
|
+
t ? o(t) : typeof __system_context__ > "u" ? System.import(n).then(o).catch(r) : new Function("callbacks", `System.import("${n}")${importCallback}`)([
|
|
969
|
+
o,
|
|
970
|
+
r
|
|
970
971
|
]);
|
|
971
972
|
} catch (s) {
|
|
972
|
-
|
|
973
|
+
r(s);
|
|
973
974
|
}
|
|
974
975
|
});
|
|
975
976
|
}
|
|
976
|
-
function handleRemoteEntryLoaded(n, t,
|
|
977
|
-
const { remoteEntryKey:
|
|
977
|
+
function handleRemoteEntryLoaded(n, t, o) {
|
|
978
|
+
const { remoteEntryKey: r, entryExports: s } = getRemoteEntryExports(n, t);
|
|
978
979
|
return assert(s, getShortErrorMsg(RUNTIME_001, runtimeDescMap, {
|
|
979
980
|
remoteName: n,
|
|
980
|
-
remoteEntryUrl:
|
|
981
|
-
remoteEntryKey:
|
|
981
|
+
remoteEntryUrl: o,
|
|
982
|
+
remoteEntryKey: r
|
|
982
983
|
})), s;
|
|
983
984
|
}
|
|
984
|
-
async function loadEntryScript({ name: n, globalName: t, entry:
|
|
985
|
+
async function loadEntryScript({ name: n, globalName: t, entry: o, loaderHook: r }) {
|
|
985
986
|
const { entryExports: s } = getRemoteEntryExports(n, t);
|
|
986
|
-
return s || loadScript(
|
|
987
|
+
return s || loadScript(o, {
|
|
987
988
|
attrs: {},
|
|
988
|
-
createScriptHook: (
|
|
989
|
-
const i =
|
|
990
|
-
url:
|
|
991
|
-
attrs:
|
|
989
|
+
createScriptHook: (a, l) => {
|
|
990
|
+
const i = r.lifecycle.createScript.emit({
|
|
991
|
+
url: a,
|
|
992
|
+
attrs: l
|
|
992
993
|
});
|
|
993
994
|
if (i && (i instanceof HTMLScriptElement || "script" in i || "timeout" in i))
|
|
994
995
|
return i;
|
|
995
996
|
}
|
|
996
|
-
}).then(() => handleRemoteEntryLoaded(n, t,
|
|
997
|
+
}).then(() => handleRemoteEntryLoaded(n, t, o)).catch((a) => {
|
|
997
998
|
throw assert(void 0, getShortErrorMsg(RUNTIME_008, runtimeDescMap, {
|
|
998
999
|
remoteName: n,
|
|
999
|
-
resourceUrl:
|
|
1000
|
-
})),
|
|
1000
|
+
resourceUrl: o
|
|
1001
|
+
})), a;
|
|
1001
1002
|
});
|
|
1002
1003
|
}
|
|
1003
|
-
async function loadEntryDom({ remoteInfo: n, remoteEntryExports: t, loaderHook:
|
|
1004
|
-
const { entry:
|
|
1005
|
-
switch (
|
|
1004
|
+
async function loadEntryDom({ remoteInfo: n, remoteEntryExports: t, loaderHook: o }) {
|
|
1005
|
+
const { entry: r, entryGlobalName: s, name: a, type: l } = n;
|
|
1006
|
+
switch (l) {
|
|
1006
1007
|
case "esm":
|
|
1007
1008
|
case "module":
|
|
1008
1009
|
return loadEsmEntry({
|
|
1009
|
-
entry:
|
|
1010
|
+
entry: r,
|
|
1010
1011
|
remoteEntryExports: t
|
|
1011
1012
|
});
|
|
1012
1013
|
case "system":
|
|
1013
1014
|
return loadSystemJsEntry({
|
|
1014
|
-
entry:
|
|
1015
|
+
entry: r,
|
|
1015
1016
|
remoteEntryExports: t
|
|
1016
1017
|
});
|
|
1017
1018
|
default:
|
|
1018
1019
|
return loadEntryScript({
|
|
1019
|
-
entry:
|
|
1020
|
+
entry: r,
|
|
1020
1021
|
globalName: s,
|
|
1021
|
-
name:
|
|
1022
|
-
loaderHook:
|
|
1022
|
+
name: a,
|
|
1023
|
+
loaderHook: o
|
|
1023
1024
|
});
|
|
1024
1025
|
}
|
|
1025
1026
|
}
|
|
1026
1027
|
async function loadEntryNode({ remoteInfo: n, loaderHook: t }) {
|
|
1027
|
-
const { entry:
|
|
1028
|
-
return
|
|
1028
|
+
const { entry: o, entryGlobalName: r, name: s, type: a } = n, { entryExports: l } = getRemoteEntryExports(s, r);
|
|
1029
|
+
return l || loadScriptNode(o, {
|
|
1029
1030
|
attrs: {
|
|
1030
1031
|
name: s,
|
|
1031
|
-
globalName:
|
|
1032
|
-
type:
|
|
1032
|
+
globalName: r,
|
|
1033
|
+
type: a
|
|
1033
1034
|
},
|
|
1034
1035
|
loaderHook: {
|
|
1035
1036
|
createScriptHook: (i, c = {}) => {
|
|
@@ -1041,34 +1042,34 @@ async function loadEntryNode({ remoteInfo: n, loaderHook: t }) {
|
|
|
1041
1042
|
return u;
|
|
1042
1043
|
}
|
|
1043
1044
|
}
|
|
1044
|
-
}).then(() => handleRemoteEntryLoaded(s,
|
|
1045
|
+
}).then(() => handleRemoteEntryLoaded(s, r, o)).catch((i) => {
|
|
1045
1046
|
throw i;
|
|
1046
1047
|
});
|
|
1047
1048
|
}
|
|
1048
1049
|
function getRemoteEntryUniqueKey(n) {
|
|
1049
|
-
const { entry: t, name:
|
|
1050
|
-
return composeKeyWithSeparator(
|
|
1050
|
+
const { entry: t, name: o } = n;
|
|
1051
|
+
return composeKeyWithSeparator(o, t);
|
|
1051
1052
|
}
|
|
1052
|
-
async function getRemoteEntry({ origin: n, remoteEntryExports: t, remoteInfo:
|
|
1053
|
-
const
|
|
1053
|
+
async function getRemoteEntry({ origin: n, remoteEntryExports: t, remoteInfo: o }) {
|
|
1054
|
+
const r = getRemoteEntryUniqueKey(o);
|
|
1054
1055
|
if (t)
|
|
1055
1056
|
return t;
|
|
1056
|
-
if (!globalLoading[
|
|
1057
|
-
const s = n.remoteHandler.hooks.lifecycle.loadEntry,
|
|
1058
|
-
globalLoading[
|
|
1059
|
-
loaderHook:
|
|
1060
|
-
remoteInfo:
|
|
1057
|
+
if (!globalLoading[r]) {
|
|
1058
|
+
const s = n.remoteHandler.hooks.lifecycle.loadEntry, a = n.loaderHook;
|
|
1059
|
+
globalLoading[r] = s.emit({
|
|
1060
|
+
loaderHook: a,
|
|
1061
|
+
remoteInfo: o,
|
|
1061
1062
|
remoteEntryExports: t
|
|
1062
|
-
}).then((
|
|
1063
|
-
remoteInfo:
|
|
1063
|
+
}).then((l) => l || ((typeof ENV_TARGET < "u" ? ENV_TARGET === "web" : isBrowserEnv()) ? loadEntryDom({
|
|
1064
|
+
remoteInfo: o,
|
|
1064
1065
|
remoteEntryExports: t,
|
|
1065
|
-
loaderHook:
|
|
1066
|
+
loaderHook: a
|
|
1066
1067
|
}) : loadEntryNode({
|
|
1067
|
-
remoteInfo:
|
|
1068
|
-
loaderHook:
|
|
1068
|
+
remoteInfo: o,
|
|
1069
|
+
loaderHook: a
|
|
1069
1070
|
})));
|
|
1070
1071
|
}
|
|
1071
|
-
return globalLoading[
|
|
1072
|
+
return globalLoading[r];
|
|
1072
1073
|
}
|
|
1073
1074
|
function getRemoteInfo(n) {
|
|
1074
1075
|
return _extends$1({}, n, {
|
|
@@ -1090,24 +1091,24 @@ let Module = class {
|
|
|
1090
1091
|
remoteEntryExports: this.remoteEntryExports
|
|
1091
1092
|
});
|
|
1092
1093
|
} catch {
|
|
1093
|
-
const
|
|
1094
|
+
const r = getRemoteEntryUniqueKey(this.remoteInfo);
|
|
1094
1095
|
t = await this.host.loaderHook.lifecycle.loadEntryError.emit({
|
|
1095
1096
|
getRemoteEntry,
|
|
1096
1097
|
origin: this.host,
|
|
1097
1098
|
remoteInfo: this.remoteInfo,
|
|
1098
1099
|
remoteEntryExports: this.remoteEntryExports,
|
|
1099
1100
|
globalLoading,
|
|
1100
|
-
uniqueKey:
|
|
1101
|
+
uniqueKey: r
|
|
1101
1102
|
});
|
|
1102
1103
|
}
|
|
1103
1104
|
return assert(t, `remoteEntryExports is undefined
|
|
1104
1105
|
${safeToString(this.remoteInfo)}`), this.remoteEntryExports = t, this.remoteEntryExports;
|
|
1105
1106
|
}
|
|
1106
1107
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
1107
|
-
async get(t,
|
|
1108
|
-
const { loadFactory:
|
|
1108
|
+
async get(t, o, r, s) {
|
|
1109
|
+
const { loadFactory: a = !0 } = r || {
|
|
1109
1110
|
loadFactory: !0
|
|
1110
|
-
},
|
|
1111
|
+
}, l = await this.getEntry();
|
|
1111
1112
|
if (!this.inited) {
|
|
1112
1113
|
const d = this.host.shareScopeMap, m = Array.isArray(this.remoteInfo.shareScope) ? this.remoteInfo.shareScope : [
|
|
1113
1114
|
this.remoteInfo.shareScope
|
|
@@ -1132,43 +1133,44 @@ let Module = class {
|
|
|
1132
1133
|
remoteInfo: this.remoteInfo,
|
|
1133
1134
|
origin: this.host
|
|
1134
1135
|
});
|
|
1135
|
-
typeof (
|
|
1136
|
-
|
|
1136
|
+
typeof (l == null ? void 0 : l.init) > "u" && error(getShortErrorMsg(RUNTIME_002, runtimeDescMap, {
|
|
1137
|
+
hostName: this.host.name,
|
|
1138
|
+
remoteName: this.remoteInfo.name,
|
|
1137
1139
|
remoteEntryUrl: this.remoteInfo.entry,
|
|
1138
1140
|
remoteEntryKey: this.remoteInfo.entryGlobalName
|
|
1139
|
-
})), await
|
|
1141
|
+
})), await l.init(_.shareScope, _.initScope, _.remoteEntryInitOptions), await this.host.hooks.lifecycle.initContainer.emit(_extends$1({}, _, {
|
|
1140
1142
|
id: t,
|
|
1141
1143
|
remoteSnapshot: s,
|
|
1142
|
-
remoteEntryExports:
|
|
1144
|
+
remoteEntryExports: l
|
|
1143
1145
|
}));
|
|
1144
1146
|
}
|
|
1145
|
-
this.lib =
|
|
1147
|
+
this.lib = l, this.inited = !0;
|
|
1146
1148
|
let i;
|
|
1147
1149
|
i = await this.host.loaderHook.lifecycle.getModuleFactory.emit({
|
|
1148
|
-
remoteEntryExports:
|
|
1149
|
-
expose:
|
|
1150
|
+
remoteEntryExports: l,
|
|
1151
|
+
expose: o,
|
|
1150
1152
|
moduleInfo: this.remoteInfo
|
|
1151
|
-
}), i || (i = await
|
|
1152
|
-
const c = processModuleAlias(this.remoteInfo.name,
|
|
1153
|
-
return
|
|
1153
|
+
}), i || (i = await l.get(o)), assert(i, `${getFMId(this.remoteInfo)} remote don't export ${o}.`);
|
|
1154
|
+
const c = processModuleAlias(this.remoteInfo.name, o), u = this.wraperFactory(i, c);
|
|
1155
|
+
return a ? await u() : u;
|
|
1154
1156
|
}
|
|
1155
|
-
wraperFactory(t,
|
|
1156
|
-
function
|
|
1157
|
+
wraperFactory(t, o) {
|
|
1158
|
+
function r(s, a) {
|
|
1157
1159
|
s && typeof s == "object" && Object.isExtensible(s) && !Object.getOwnPropertyDescriptor(s, Symbol.for("mf_module_id")) && Object.defineProperty(s, Symbol.for("mf_module_id"), {
|
|
1158
|
-
value:
|
|
1160
|
+
value: a,
|
|
1159
1161
|
enumerable: !1
|
|
1160
1162
|
});
|
|
1161
1163
|
}
|
|
1162
1164
|
return t instanceof Promise ? async () => {
|
|
1163
1165
|
const s = await t();
|
|
1164
|
-
return
|
|
1166
|
+
return r(s, o), s;
|
|
1165
1167
|
} : () => {
|
|
1166
1168
|
const s = t();
|
|
1167
|
-
return
|
|
1169
|
+
return r(s, o), s;
|
|
1168
1170
|
};
|
|
1169
1171
|
}
|
|
1170
|
-
constructor({ remoteInfo: t, host:
|
|
1171
|
-
this.inited = !1, this.lib = void 0, this.remoteInfo = t, this.host =
|
|
1172
|
+
constructor({ remoteInfo: t, host: o }) {
|
|
1173
|
+
this.inited = !1, this.lib = void 0, this.remoteInfo = t, this.host = o;
|
|
1172
1174
|
}
|
|
1173
1175
|
};
|
|
1174
1176
|
class SyncHook {
|
|
@@ -1176,16 +1178,16 @@ class SyncHook {
|
|
|
1176
1178
|
typeof t == "function" && this.listeners.add(t);
|
|
1177
1179
|
}
|
|
1178
1180
|
once(t) {
|
|
1179
|
-
const
|
|
1180
|
-
this.on(function
|
|
1181
|
-
return
|
|
1181
|
+
const o = this;
|
|
1182
|
+
this.on(function r(...s) {
|
|
1183
|
+
return o.remove(r), t.apply(null, s);
|
|
1182
1184
|
});
|
|
1183
1185
|
}
|
|
1184
1186
|
emit(...t) {
|
|
1185
|
-
let
|
|
1186
|
-
return this.listeners.size > 0 && this.listeners.forEach((
|
|
1187
|
-
|
|
1188
|
-
}),
|
|
1187
|
+
let o;
|
|
1188
|
+
return this.listeners.size > 0 && this.listeners.forEach((r) => {
|
|
1189
|
+
o = r(...t);
|
|
1190
|
+
}), o;
|
|
1189
1191
|
}
|
|
1190
1192
|
remove(t) {
|
|
1191
1193
|
this.listeners.delete(t);
|
|
@@ -1199,22 +1201,22 @@ class SyncHook {
|
|
|
1199
1201
|
}
|
|
1200
1202
|
class AsyncHook extends SyncHook {
|
|
1201
1203
|
emit(...t) {
|
|
1202
|
-
let
|
|
1203
|
-
const
|
|
1204
|
-
if (
|
|
1204
|
+
let o;
|
|
1205
|
+
const r = Array.from(this.listeners);
|
|
1206
|
+
if (r.length > 0) {
|
|
1205
1207
|
let s = 0;
|
|
1206
|
-
const
|
|
1207
|
-
|
|
1208
|
+
const a = (l) => l === !1 ? !1 : s < r.length ? Promise.resolve(r[s++].apply(null, t)).then(a) : l;
|
|
1209
|
+
o = a();
|
|
1208
1210
|
}
|
|
1209
|
-
return Promise.resolve(
|
|
1211
|
+
return Promise.resolve(o);
|
|
1210
1212
|
}
|
|
1211
1213
|
}
|
|
1212
1214
|
function checkReturnData(n, t) {
|
|
1213
1215
|
if (!isObject(t))
|
|
1214
1216
|
return !1;
|
|
1215
1217
|
if (n !== t) {
|
|
1216
|
-
for (const
|
|
1217
|
-
if (!(
|
|
1218
|
+
for (const o in n)
|
|
1219
|
+
if (!(o in t))
|
|
1218
1220
|
return !1;
|
|
1219
1221
|
}
|
|
1220
1222
|
return !0;
|
|
@@ -1222,17 +1224,17 @@ function checkReturnData(n, t) {
|
|
|
1222
1224
|
class SyncWaterfallHook extends SyncHook {
|
|
1223
1225
|
emit(t) {
|
|
1224
1226
|
isObject(t) || error(`The data for the "${this.type}" hook should be an object.`);
|
|
1225
|
-
for (const
|
|
1227
|
+
for (const o of this.listeners)
|
|
1226
1228
|
try {
|
|
1227
|
-
const
|
|
1228
|
-
if (checkReturnData(t,
|
|
1229
|
-
t =
|
|
1229
|
+
const r = o(t);
|
|
1230
|
+
if (checkReturnData(t, r))
|
|
1231
|
+
t = r;
|
|
1230
1232
|
else {
|
|
1231
1233
|
this.onerror(`A plugin returned an unacceptable value for the "${this.type}" type.`);
|
|
1232
1234
|
break;
|
|
1233
1235
|
}
|
|
1234
|
-
} catch (
|
|
1235
|
-
warn(
|
|
1236
|
+
} catch (r) {
|
|
1237
|
+
warn(r), this.onerror(r);
|
|
1236
1238
|
}
|
|
1237
1239
|
return t;
|
|
1238
1240
|
}
|
|
@@ -1243,14 +1245,14 @@ class SyncWaterfallHook extends SyncHook {
|
|
|
1243
1245
|
class AsyncWaterfallHook extends SyncHook {
|
|
1244
1246
|
emit(t) {
|
|
1245
1247
|
isObject(t) || error(`The response data for the "${this.type}" hook must be an object.`);
|
|
1246
|
-
const
|
|
1247
|
-
if (
|
|
1248
|
-
let
|
|
1249
|
-
const s = (
|
|
1250
|
-
if (checkReturnData(t,
|
|
1251
|
-
if (t =
|
|
1248
|
+
const o = Array.from(this.listeners);
|
|
1249
|
+
if (o.length > 0) {
|
|
1250
|
+
let r = 0;
|
|
1251
|
+
const s = (l) => (warn(l), this.onerror(l), t), a = (l) => {
|
|
1252
|
+
if (checkReturnData(t, l)) {
|
|
1253
|
+
if (t = l, r < o.length)
|
|
1252
1254
|
try {
|
|
1253
|
-
return Promise.resolve(r
|
|
1255
|
+
return Promise.resolve(o[r++](t)).then(a, s);
|
|
1254
1256
|
} catch (i) {
|
|
1255
1257
|
return s(i);
|
|
1256
1258
|
}
|
|
@@ -1258,7 +1260,7 @@ class AsyncWaterfallHook extends SyncHook {
|
|
|
1258
1260
|
this.onerror(`A plugin returned an incorrect value for the "${this.type}" type.`);
|
|
1259
1261
|
return t;
|
|
1260
1262
|
};
|
|
1261
|
-
return Promise.resolve(
|
|
1263
|
+
return Promise.resolve(a(t));
|
|
1262
1264
|
}
|
|
1263
1265
|
return Promise.resolve(t);
|
|
1264
1266
|
}
|
|
@@ -1269,25 +1271,25 @@ class AsyncWaterfallHook extends SyncHook {
|
|
|
1269
1271
|
class PluginSystem {
|
|
1270
1272
|
applyPlugin(t) {
|
|
1271
1273
|
assert(isPlainObject(t), "Plugin configuration is invalid.");
|
|
1272
|
-
const
|
|
1273
|
-
assert(
|
|
1274
|
-
const s = t[
|
|
1275
|
-
s && this.lifecycle[
|
|
1274
|
+
const o = t.name;
|
|
1275
|
+
assert(o, "A name must be provided by the plugin."), this.registerPlugins[o] || (this.registerPlugins[o] = t, Object.keys(this.lifecycle).forEach((r) => {
|
|
1276
|
+
const s = t[r];
|
|
1277
|
+
s && this.lifecycle[r].on(s);
|
|
1276
1278
|
}));
|
|
1277
1279
|
}
|
|
1278
1280
|
removePlugin(t) {
|
|
1279
1281
|
assert(t, "A name is required.");
|
|
1280
|
-
const
|
|
1281
|
-
assert(
|
|
1282
|
-
|
|
1282
|
+
const o = this.registerPlugins[t];
|
|
1283
|
+
assert(o, `The plugin "${t}" is not registered.`), Object.keys(o).forEach((r) => {
|
|
1284
|
+
r !== "name" && this.lifecycle[r].remove(o[r]);
|
|
1283
1285
|
});
|
|
1284
1286
|
}
|
|
1285
1287
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
1286
|
-
inherit({ lifecycle: t, registerPlugins:
|
|
1287
|
-
Object.keys(t).forEach((
|
|
1288
|
-
assert(!this.lifecycle[
|
|
1289
|
-
}), Object.keys(
|
|
1290
|
-
assert(!this.registerPlugins[
|
|
1288
|
+
inherit({ lifecycle: t, registerPlugins: o }) {
|
|
1289
|
+
Object.keys(t).forEach((r) => {
|
|
1290
|
+
assert(!this.lifecycle[r], `The hook "${r}" has a conflict and cannot be inherited.`), this.lifecycle[r] = t[r];
|
|
1291
|
+
}), Object.keys(o).forEach((r) => {
|
|
1292
|
+
assert(!this.registerPlugins[r], `The plugin "${r}" has a conflict and cannot be inherited.`), this.applyPlugin(o[r]);
|
|
1291
1293
|
});
|
|
1292
1294
|
}
|
|
1293
1295
|
constructor(t) {
|
|
@@ -1303,24 +1305,24 @@ function defaultPreloadArgs(n) {
|
|
|
1303
1305
|
}, n);
|
|
1304
1306
|
}
|
|
1305
1307
|
function formatPreloadArgs(n, t) {
|
|
1306
|
-
return t.map((
|
|
1307
|
-
const
|
|
1308
|
-
return assert(
|
|
1309
|
-
remoteInfo:
|
|
1308
|
+
return t.map((o) => {
|
|
1309
|
+
const r = matchRemote(n, o.nameOrAlias);
|
|
1310
|
+
return assert(r, `Unable to preload ${o.nameOrAlias} as it is not included in ${!r && safeToString({
|
|
1311
|
+
remoteInfo: r,
|
|
1310
1312
|
remotes: n
|
|
1311
1313
|
})}`), {
|
|
1312
|
-
remote:
|
|
1313
|
-
preloadConfig: defaultPreloadArgs(
|
|
1314
|
+
remote: r,
|
|
1315
|
+
preloadConfig: defaultPreloadArgs(o)
|
|
1314
1316
|
};
|
|
1315
1317
|
});
|
|
1316
1318
|
}
|
|
1317
1319
|
function normalizePreloadExposes(n) {
|
|
1318
1320
|
return n ? n.map((t) => t === "." ? t : t.startsWith("./") ? t.replace("./", "") : t) : [];
|
|
1319
1321
|
}
|
|
1320
|
-
function preloadAssets(n, t,
|
|
1321
|
-
const { cssAssets: s, jsAssetsWithoutEntry:
|
|
1322
|
+
function preloadAssets(n, t, o, r = !0) {
|
|
1323
|
+
const { cssAssets: s, jsAssetsWithoutEntry: a, entryAssets: l } = o;
|
|
1322
1324
|
if (t.options.inBrowser) {
|
|
1323
|
-
if (
|
|
1325
|
+
if (l.forEach((i) => {
|
|
1324
1326
|
const { moduleInfo: c } = i, u = t.moduleCache.get(n.name);
|
|
1325
1327
|
getRemoteEntry(u ? {
|
|
1326
1328
|
origin: t,
|
|
@@ -1331,7 +1333,7 @@ function preloadAssets(n, t, r, o = !0) {
|
|
|
1331
1333
|
remoteInfo: c,
|
|
1332
1334
|
remoteEntryExports: void 0
|
|
1333
1335
|
});
|
|
1334
|
-
}),
|
|
1336
|
+
}), r) {
|
|
1335
1337
|
const i = {
|
|
1336
1338
|
rel: "preload",
|
|
1337
1339
|
as: "style"
|
|
@@ -1377,12 +1379,12 @@ function preloadAssets(n, t, r, o = !0) {
|
|
|
1377
1379
|
p && document.head.appendChild(u);
|
|
1378
1380
|
});
|
|
1379
1381
|
}
|
|
1380
|
-
if (
|
|
1382
|
+
if (r) {
|
|
1381
1383
|
const i = {
|
|
1382
1384
|
rel: "preload",
|
|
1383
1385
|
as: "script"
|
|
1384
1386
|
};
|
|
1385
|
-
|
|
1387
|
+
a.forEach((c) => {
|
|
1386
1388
|
const { link: u, needAttach: p } = createLink({
|
|
1387
1389
|
url: c,
|
|
1388
1390
|
cb: () => {
|
|
@@ -1404,7 +1406,7 @@ function preloadAssets(n, t, r, o = !0) {
|
|
|
1404
1406
|
fetchpriority: "high",
|
|
1405
1407
|
type: (n == null ? void 0 : n.type) === "module" ? "module" : "text/javascript"
|
|
1406
1408
|
};
|
|
1407
|
-
|
|
1409
|
+
a.forEach((c) => {
|
|
1408
1410
|
const { script: u, needAttach: p } = createScript({
|
|
1409
1411
|
url: c,
|
|
1410
1412
|
cb: () => {
|
|
@@ -1426,40 +1428,43 @@ function preloadAssets(n, t, r, o = !0) {
|
|
|
1426
1428
|
}
|
|
1427
1429
|
}
|
|
1428
1430
|
function assignRemoteInfo(n, t) {
|
|
1429
|
-
const
|
|
1430
|
-
|
|
1431
|
-
let
|
|
1432
|
-
!isBrowserEnv() && !
|
|
1431
|
+
const o = getRemoteEntryInfoFromSnapshot(t);
|
|
1432
|
+
o.url || error(`The attribute remoteEntry of ${n.name} must not be undefined.`);
|
|
1433
|
+
let r = getResourceUrl(t, o.url);
|
|
1434
|
+
!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;
|
|
1433
1435
|
}
|
|
1434
1436
|
function snapshotPlugin() {
|
|
1435
1437
|
return {
|
|
1436
1438
|
name: "snapshot-plugin",
|
|
1437
1439
|
async afterResolve(n) {
|
|
1438
|
-
const { remote: t, pkgNameOrAlias:
|
|
1440
|
+
const { remote: t, pkgNameOrAlias: o, expose: r, origin: s, remoteInfo: a, id: l } = n;
|
|
1439
1441
|
if (!isRemoteInfoWithEntry(t) || !isPureRemoteEntry(t)) {
|
|
1440
|
-
const { remoteSnapshot:
|
|
1441
|
-
|
|
1442
|
-
|
|
1442
|
+
const { remoteSnapshot: i, globalSnapshot: c } = await s.snapshotHandler.loadRemoteSnapshotInfo({
|
|
1443
|
+
moduleInfo: t,
|
|
1444
|
+
id: l
|
|
1445
|
+
});
|
|
1446
|
+
assignRemoteInfo(a, i);
|
|
1447
|
+
const u = {
|
|
1443
1448
|
remote: t,
|
|
1444
1449
|
preloadConfig: {
|
|
1445
|
-
nameOrAlias:
|
|
1450
|
+
nameOrAlias: o,
|
|
1446
1451
|
exposes: [
|
|
1447
|
-
|
|
1452
|
+
r
|
|
1448
1453
|
],
|
|
1449
1454
|
resourceCategory: "sync",
|
|
1450
1455
|
share: !1,
|
|
1451
1456
|
depsRemote: !1
|
|
1452
1457
|
}
|
|
1453
|
-
},
|
|
1458
|
+
}, p = await s.remoteHandler.hooks.lifecycle.generatePreloadAssets.emit({
|
|
1454
1459
|
origin: s,
|
|
1455
|
-
preloadOptions:
|
|
1456
|
-
remoteInfo:
|
|
1460
|
+
preloadOptions: u,
|
|
1461
|
+
remoteInfo: a,
|
|
1457
1462
|
remote: t,
|
|
1458
|
-
remoteSnapshot:
|
|
1459
|
-
globalSnapshot:
|
|
1463
|
+
remoteSnapshot: i,
|
|
1464
|
+
globalSnapshot: c
|
|
1460
1465
|
});
|
|
1461
|
-
return
|
|
1462
|
-
remoteSnapshot:
|
|
1466
|
+
return p && preloadAssets(a, s, p, !1), _extends$1({}, n, {
|
|
1467
|
+
remoteSnapshot: i
|
|
1463
1468
|
});
|
|
1464
1469
|
}
|
|
1465
1470
|
return n;
|
|
@@ -1479,9 +1484,9 @@ function splitId(n) {
|
|
|
1479
1484
|
version: t[2]
|
|
1480
1485
|
};
|
|
1481
1486
|
}
|
|
1482
|
-
function traverseModuleInfo(n, t,
|
|
1483
|
-
const
|
|
1484
|
-
if (c && !isManifestProvider(c) && (
|
|
1487
|
+
function traverseModuleInfo(n, t, o, r, s = {}, a) {
|
|
1488
|
+
const l = getFMId(t), { value: i } = getInfoWithoutType(n, l), c = a || i;
|
|
1489
|
+
if (c && !isManifestProvider(c) && (o(c, t, r), c.remotesInfo)) {
|
|
1485
1490
|
const u = Object.keys(c.remotesInfo);
|
|
1486
1491
|
for (const p of u) {
|
|
1487
1492
|
if (s[p])
|
|
@@ -1491,22 +1496,22 @@ function traverseModuleInfo(n, t, r, o, s = {}, l) {
|
|
|
1491
1496
|
traverseModuleInfo(n, {
|
|
1492
1497
|
name: d.name,
|
|
1493
1498
|
version: m.matchedVersion
|
|
1494
|
-
},
|
|
1499
|
+
}, o, !1, s, void 0);
|
|
1495
1500
|
}
|
|
1496
1501
|
}
|
|
1497
1502
|
}
|
|
1498
1503
|
const isExisted = (n, t) => document.querySelector(`${n}[${n === "link" ? "href" : "src"}="${t}"]`);
|
|
1499
|
-
function generatePreloadAssets(n, t,
|
|
1500
|
-
const
|
|
1501
|
-
if (traverseModuleInfo(
|
|
1504
|
+
function generatePreloadAssets(n, t, o, r, s) {
|
|
1505
|
+
const a = [], l = [], i = [], c = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Set(), { options: p } = n, { preloadConfig: d } = t, { depsRemote: m } = d;
|
|
1506
|
+
if (traverseModuleInfo(r, o, (_, b, v) => {
|
|
1502
1507
|
let I;
|
|
1503
1508
|
if (v)
|
|
1504
1509
|
I = d;
|
|
1505
1510
|
else if (Array.isArray(m)) {
|
|
1506
|
-
const
|
|
1507
|
-
if (!
|
|
1511
|
+
const w = m.find((N) => N.nameOrAlias === b.name || N.nameOrAlias === b.alias);
|
|
1512
|
+
if (!w)
|
|
1508
1513
|
return;
|
|
1509
|
-
I = defaultPreloadArgs(
|
|
1514
|
+
I = defaultPreloadArgs(w);
|
|
1510
1515
|
} else if (m === !0)
|
|
1511
1516
|
I = d;
|
|
1512
1517
|
else
|
|
@@ -1528,24 +1533,24 @@ function generatePreloadAssets(n, t, r, o, s) {
|
|
|
1528
1533
|
const A = normalizePreloadExposes(I.exposes);
|
|
1529
1534
|
if (A.length && "modules" in _) {
|
|
1530
1535
|
var T;
|
|
1531
|
-
R = _ == null || (T = _.modules) == null ? void 0 : T.reduce((
|
|
1536
|
+
R = _ == null || (T = _.modules) == null ? void 0 : T.reduce((w, N) => ((A == null ? void 0 : A.indexOf(N.moduleName)) !== -1 && w.push(N), w), []);
|
|
1532
1537
|
}
|
|
1533
|
-
function $(
|
|
1534
|
-
const
|
|
1535
|
-
return I.filter ?
|
|
1538
|
+
function $(w) {
|
|
1539
|
+
const N = w.map((O) => getResourceUrl(_, O));
|
|
1540
|
+
return I.filter ? N.filter(I.filter) : N;
|
|
1536
1541
|
}
|
|
1537
1542
|
if (R) {
|
|
1538
|
-
const
|
|
1539
|
-
for (let
|
|
1540
|
-
const
|
|
1543
|
+
const w = R.length;
|
|
1544
|
+
for (let N = 0; N < w; N++) {
|
|
1545
|
+
const O = R[N], P = `${b.name}/${O.moduleName}`;
|
|
1541
1546
|
n.remoteHandler.hooks.lifecycle.handlePreloadModule.emit({
|
|
1542
|
-
id:
|
|
1547
|
+
id: O.moduleName === "." ? b.name : P,
|
|
1543
1548
|
name: b.name,
|
|
1544
1549
|
remoteSnapshot: _,
|
|
1545
1550
|
preloadConfig: I,
|
|
1546
1551
|
remote: b,
|
|
1547
1552
|
origin: n
|
|
1548
|
-
}), !getPreloaded(P) && (I.resourceCategory === "all" ? (
|
|
1553
|
+
}), !getPreloaded(P) && (I.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))) : (I.resourceCategory = "sync") && (a.push(...$(O.assets.css.sync)), l.push(...$(O.assets.js.sync))), setPreloaded(P));
|
|
1549
1554
|
}
|
|
1550
1555
|
}
|
|
1551
1556
|
}, !0, {}, s), s.shared) {
|
|
@@ -1570,9 +1575,9 @@ function generatePreloadAssets(n, t, r, o, s) {
|
|
|
1570
1575
|
});
|
|
1571
1576
|
});
|
|
1572
1577
|
}
|
|
1573
|
-
const g =
|
|
1578
|
+
const g = l.filter((_) => !c.has(_) && !isExisted("script", _));
|
|
1574
1579
|
return {
|
|
1575
|
-
cssAssets:
|
|
1580
|
+
cssAssets: a.filter((_) => !u.has(_) && !isExisted("link", _)),
|
|
1576
1581
|
jsAssetsWithoutEntry: g,
|
|
1577
1582
|
entryAssets: i.filter((_) => !isExisted("script", _.url))
|
|
1578
1583
|
};
|
|
@@ -1581,7 +1586,7 @@ const generatePreloadAssetsPlugin = function() {
|
|
|
1581
1586
|
return {
|
|
1582
1587
|
name: "generate-preload-assets-plugin",
|
|
1583
1588
|
async generatePreloadAssets(n) {
|
|
1584
|
-
const { origin: t, preloadOptions:
|
|
1589
|
+
const { origin: t, preloadOptions: o, remoteInfo: r, remote: s, globalSnapshot: a, remoteSnapshot: l } = n;
|
|
1585
1590
|
return isBrowserEnv() ? isRemoteInfoWithEntry(s) && isPureRemoteEntry(s) ? {
|
|
1586
1591
|
cssAssets: [],
|
|
1587
1592
|
jsAssetsWithoutEntry: [],
|
|
@@ -1590,15 +1595,15 @@ const generatePreloadAssetsPlugin = function() {
|
|
|
1590
1595
|
name: s.name,
|
|
1591
1596
|
url: s.entry,
|
|
1592
1597
|
moduleInfo: {
|
|
1593
|
-
name:
|
|
1598
|
+
name: r.name,
|
|
1594
1599
|
entry: s.entry,
|
|
1595
|
-
type:
|
|
1600
|
+
type: r.type || "global",
|
|
1596
1601
|
entryGlobalName: "",
|
|
1597
1602
|
shareScope: ""
|
|
1598
1603
|
}
|
|
1599
1604
|
}
|
|
1600
1605
|
]
|
|
1601
|
-
} : (assignRemoteInfo(
|
|
1606
|
+
} : (assignRemoteInfo(r, l), generatePreloadAssets(t, o, r, a, l)) : {
|
|
1602
1607
|
cssAssets: [],
|
|
1603
1608
|
jsAssetsWithoutEntry: [],
|
|
1604
1609
|
entryAssets: []
|
|
@@ -1607,16 +1612,16 @@ const generatePreloadAssetsPlugin = function() {
|
|
|
1607
1612
|
};
|
|
1608
1613
|
};
|
|
1609
1614
|
function getGlobalRemoteInfo(n, t) {
|
|
1610
|
-
const
|
|
1611
|
-
name: t.
|
|
1615
|
+
const o = getGlobalSnapshotInfoByModuleInfo({
|
|
1616
|
+
name: t.name,
|
|
1612
1617
|
version: t.options.version
|
|
1613
|
-
}),
|
|
1614
|
-
return
|
|
1615
|
-
hostGlobalSnapshot:
|
|
1618
|
+
}), r = o && "remotesInfo" in o && o.remotesInfo && getInfoWithoutType(o.remotesInfo, n.name).value;
|
|
1619
|
+
return r && r.matchedVersion ? {
|
|
1620
|
+
hostGlobalSnapshot: o,
|
|
1616
1621
|
globalSnapshot: getGlobalSnapshot(),
|
|
1617
1622
|
remoteSnapshot: getGlobalSnapshotInfoByModuleInfo({
|
|
1618
1623
|
name: n.name,
|
|
1619
|
-
version:
|
|
1624
|
+
version: r.matchedVersion
|
|
1620
1625
|
})
|
|
1621
1626
|
} : {
|
|
1622
1627
|
hostGlobalSnapshot: void 0,
|
|
@@ -1628,128 +1633,117 @@ function getGlobalRemoteInfo(n, t) {
|
|
|
1628
1633
|
};
|
|
1629
1634
|
}
|
|
1630
1635
|
class SnapshotHandler {
|
|
1631
|
-
async loadSnapshot(t) {
|
|
1632
|
-
const { options: r } = this.HostInstance, { hostGlobalSnapshot: o, remoteSnapshot: s, globalSnapshot: l } = this.getGlobalRemoteInfo(t), { remoteSnapshot: a, globalSnapshot: i } = await this.hooks.lifecycle.loadSnapshot.emit({
|
|
1633
|
-
options: r,
|
|
1634
|
-
moduleInfo: t,
|
|
1635
|
-
hostGlobalSnapshot: o,
|
|
1636
|
-
remoteSnapshot: s,
|
|
1637
|
-
globalSnapshot: l
|
|
1638
|
-
});
|
|
1639
|
-
return {
|
|
1640
|
-
remoteSnapshot: a,
|
|
1641
|
-
globalSnapshot: i
|
|
1642
|
-
};
|
|
1643
|
-
}
|
|
1644
1636
|
// eslint-disable-next-line max-lines-per-function
|
|
1645
|
-
async loadRemoteSnapshotInfo(t) {
|
|
1646
|
-
const { options:
|
|
1637
|
+
async loadRemoteSnapshotInfo({ moduleInfo: t, id: o, expose: r }) {
|
|
1638
|
+
const { options: s } = this.HostInstance;
|
|
1647
1639
|
await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({
|
|
1648
|
-
options:
|
|
1640
|
+
options: s,
|
|
1649
1641
|
moduleInfo: t
|
|
1650
1642
|
});
|
|
1651
|
-
let
|
|
1643
|
+
let a = getGlobalSnapshotInfoByModuleInfo({
|
|
1652
1644
|
name: this.HostInstance.options.name,
|
|
1653
1645
|
version: this.HostInstance.options.version
|
|
1654
1646
|
});
|
|
1655
|
-
|
|
1647
|
+
a || (a = {
|
|
1656
1648
|
version: this.HostInstance.options.version || "",
|
|
1657
1649
|
remoteEntry: "",
|
|
1658
1650
|
remotesInfo: {}
|
|
1659
1651
|
}, addGlobalSnapshot({
|
|
1660
|
-
[this.HostInstance.options.name]:
|
|
1661
|
-
})),
|
|
1652
|
+
[this.HostInstance.options.name]: a
|
|
1653
|
+
})), 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, {
|
|
1662
1654
|
[t.name]: {
|
|
1663
1655
|
matchedVersion: "version" in t ? t.version : t.entry
|
|
1664
1656
|
}
|
|
1665
1657
|
}));
|
|
1666
|
-
const { hostGlobalSnapshot:
|
|
1667
|
-
options:
|
|
1658
|
+
const { hostGlobalSnapshot: l, remoteSnapshot: i, globalSnapshot: c } = this.getGlobalRemoteInfo(t), { remoteSnapshot: u, globalSnapshot: p } = await this.hooks.lifecycle.loadSnapshot.emit({
|
|
1659
|
+
options: s,
|
|
1668
1660
|
moduleInfo: t,
|
|
1669
|
-
hostGlobalSnapshot:
|
|
1670
|
-
remoteSnapshot:
|
|
1671
|
-
globalSnapshot:
|
|
1661
|
+
hostGlobalSnapshot: l,
|
|
1662
|
+
remoteSnapshot: i,
|
|
1663
|
+
globalSnapshot: c
|
|
1672
1664
|
});
|
|
1673
|
-
let
|
|
1674
|
-
if (
|
|
1675
|
-
if (isManifestProvider(
|
|
1676
|
-
const
|
|
1665
|
+
let d, m;
|
|
1666
|
+
if (u)
|
|
1667
|
+
if (isManifestProvider(u)) {
|
|
1668
|
+
const y = isBrowserEnv() ? u.remoteEntry : u.ssrRemoteEntry || u.remoteEntry || "", g = await this.getManifestJson(y, t, {}), E = setGlobalSnapshotInfoByModuleInfo(_extends$1({}, t, {
|
|
1677
1669
|
// The global remote may be overridden
|
|
1678
1670
|
// Therefore, set the snapshot key to the global address of the actual request
|
|
1679
|
-
entry:
|
|
1680
|
-
}),
|
|
1681
|
-
|
|
1671
|
+
entry: y
|
|
1672
|
+
}), g);
|
|
1673
|
+
d = g, m = E;
|
|
1682
1674
|
} else {
|
|
1683
|
-
const { remoteSnapshot:
|
|
1675
|
+
const { remoteSnapshot: y } = await this.hooks.lifecycle.loadRemoteSnapshot.emit({
|
|
1684
1676
|
options: this.HostInstance.options,
|
|
1685
1677
|
moduleInfo: t,
|
|
1686
|
-
remoteSnapshot:
|
|
1678
|
+
remoteSnapshot: u,
|
|
1687
1679
|
from: "global"
|
|
1688
1680
|
});
|
|
1689
|
-
|
|
1681
|
+
d = y, m = p;
|
|
1690
1682
|
}
|
|
1691
1683
|
else if (isRemoteInfoWithEntry(t)) {
|
|
1692
|
-
const
|
|
1684
|
+
const y = await this.getManifestJson(t.entry, t, {}), g = setGlobalSnapshotInfoByModuleInfo(t, y), { remoteSnapshot: E } = await this.hooks.lifecycle.loadRemoteSnapshot.emit({
|
|
1693
1685
|
options: this.HostInstance.options,
|
|
1694
1686
|
moduleInfo: t,
|
|
1695
|
-
remoteSnapshot:
|
|
1687
|
+
remoteSnapshot: y,
|
|
1696
1688
|
from: "global"
|
|
1697
1689
|
});
|
|
1698
|
-
|
|
1690
|
+
d = E, m = g;
|
|
1699
1691
|
} else
|
|
1700
1692
|
error(getShortErrorMsg(RUNTIME_007, runtimeDescMap, {
|
|
1701
1693
|
hostName: t.name,
|
|
1702
1694
|
hostVersion: t.version,
|
|
1703
|
-
globalSnapshot: JSON.stringify(
|
|
1695
|
+
globalSnapshot: JSON.stringify(p)
|
|
1704
1696
|
}));
|
|
1705
1697
|
return await this.hooks.lifecycle.afterLoadSnapshot.emit({
|
|
1706
|
-
|
|
1698
|
+
id: o,
|
|
1699
|
+
host: this.HostInstance,
|
|
1700
|
+
options: s,
|
|
1707
1701
|
moduleInfo: t,
|
|
1708
|
-
remoteSnapshot:
|
|
1702
|
+
remoteSnapshot: d
|
|
1709
1703
|
}), {
|
|
1710
|
-
remoteSnapshot:
|
|
1711
|
-
globalSnapshot:
|
|
1704
|
+
remoteSnapshot: d,
|
|
1705
|
+
globalSnapshot: m
|
|
1712
1706
|
};
|
|
1713
1707
|
}
|
|
1714
1708
|
getGlobalRemoteInfo(t) {
|
|
1715
1709
|
return getGlobalRemoteInfo(t, this.HostInstance);
|
|
1716
1710
|
}
|
|
1717
|
-
async getManifestJson(t,
|
|
1711
|
+
async getManifestJson(t, o, r) {
|
|
1718
1712
|
const s = async () => {
|
|
1719
|
-
let
|
|
1720
|
-
if (
|
|
1721
|
-
return
|
|
1713
|
+
let l = this.manifestCache.get(t);
|
|
1714
|
+
if (l)
|
|
1715
|
+
return l;
|
|
1722
1716
|
try {
|
|
1723
1717
|
let i = await this.loaderHook.lifecycle.fetch.emit(t, {});
|
|
1724
|
-
(!i || !(i instanceof Response)) && (i = await fetch(t, {})),
|
|
1718
|
+
(!i || !(i instanceof Response)) && (i = await fetch(t, {})), l = await i.json();
|
|
1725
1719
|
} catch (i) {
|
|
1726
|
-
|
|
1720
|
+
l = await this.HostInstance.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({
|
|
1727
1721
|
id: t,
|
|
1728
1722
|
error: i,
|
|
1729
1723
|
from: "runtime",
|
|
1730
1724
|
lifecycle: "afterResolve",
|
|
1731
1725
|
origin: this.HostInstance
|
|
1732
|
-
}),
|
|
1726
|
+
}), l || (delete this.manifestLoading[t], error(getShortErrorMsg(RUNTIME_003, runtimeDescMap, {
|
|
1733
1727
|
manifestUrl: t,
|
|
1734
|
-
moduleName:
|
|
1728
|
+
moduleName: o.name,
|
|
1735
1729
|
hostName: this.HostInstance.options.name
|
|
1736
1730
|
}, `${i}`)));
|
|
1737
1731
|
}
|
|
1738
|
-
return assert(
|
|
1739
|
-
},
|
|
1740
|
-
const
|
|
1732
|
+
return assert(l.metaData && l.exposes && l.shared, `${t} is not a federation manifest`), this.manifestCache.set(t, l), l;
|
|
1733
|
+
}, a = async () => {
|
|
1734
|
+
const l = await s(), i = generateSnapshotFromManifest(l, {
|
|
1741
1735
|
version: t
|
|
1742
1736
|
}), { remoteSnapshot: c } = await this.hooks.lifecycle.loadRemoteSnapshot.emit({
|
|
1743
1737
|
options: this.HostInstance.options,
|
|
1744
|
-
moduleInfo:
|
|
1745
|
-
manifestJson:
|
|
1738
|
+
moduleInfo: o,
|
|
1739
|
+
manifestJson: l,
|
|
1746
1740
|
remoteSnapshot: i,
|
|
1747
1741
|
manifestUrl: t,
|
|
1748
1742
|
from: "manifest"
|
|
1749
1743
|
});
|
|
1750
1744
|
return c;
|
|
1751
1745
|
};
|
|
1752
|
-
return this.manifestLoading[t] || (this.manifestLoading[t] =
|
|
1746
|
+
return this.manifestLoading[t] || (this.manifestLoading[t] = a().then((l) => l)), this.manifestLoading[t];
|
|
1753
1747
|
}
|
|
1754
1748
|
constructor(t) {
|
|
1755
1749
|
this.loadingHostSnapshot = null, this.manifestCache = /* @__PURE__ */ new Map(), this.hooks = new PluginSystem({
|
|
@@ -1762,44 +1756,44 @@ class SnapshotHandler {
|
|
|
1762
1756
|
}
|
|
1763
1757
|
class SharedHandler {
|
|
1764
1758
|
// register shared in shareScopeMap
|
|
1765
|
-
registerShared(t,
|
|
1766
|
-
const { shareInfos:
|
|
1767
|
-
return Object.keys(
|
|
1768
|
-
|
|
1769
|
-
!getRegisteredShare(this.shareScopeMap,
|
|
1770
|
-
pkgName:
|
|
1759
|
+
registerShared(t, o) {
|
|
1760
|
+
const { shareInfos: r, shared: s } = formatShareConfigs(t, o);
|
|
1761
|
+
return Object.keys(r).forEach((l) => {
|
|
1762
|
+
r[l].forEach((c) => {
|
|
1763
|
+
!getRegisteredShare(this.shareScopeMap, l, c, this.hooks.lifecycle.resolveShare) && c && c.lib && this.setShared({
|
|
1764
|
+
pkgName: l,
|
|
1771
1765
|
lib: c.lib,
|
|
1772
1766
|
get: c.get,
|
|
1773
1767
|
loaded: !0,
|
|
1774
1768
|
shared: c,
|
|
1775
|
-
from:
|
|
1769
|
+
from: o.name
|
|
1776
1770
|
});
|
|
1777
1771
|
});
|
|
1778
1772
|
}), {
|
|
1779
|
-
shareInfos:
|
|
1773
|
+
shareInfos: r,
|
|
1780
1774
|
shared: s
|
|
1781
1775
|
};
|
|
1782
1776
|
}
|
|
1783
|
-
async loadShare(t,
|
|
1784
|
-
const { host:
|
|
1777
|
+
async loadShare(t, o) {
|
|
1778
|
+
const { host: r } = this, s = getTargetSharedOptions({
|
|
1785
1779
|
pkgName: t,
|
|
1786
|
-
extraOptions:
|
|
1787
|
-
shareInfos:
|
|
1780
|
+
extraOptions: o,
|
|
1781
|
+
shareInfos: r.options.shared
|
|
1788
1782
|
});
|
|
1789
1783
|
s != null && s.scope && await Promise.all(s.scope.map(async (u) => {
|
|
1790
1784
|
await Promise.all(this.initializeSharing(u, {
|
|
1791
1785
|
strategy: s.strategy
|
|
1792
1786
|
}));
|
|
1793
1787
|
}));
|
|
1794
|
-
const
|
|
1788
|
+
const a = await this.hooks.lifecycle.beforeLoadShare.emit({
|
|
1795
1789
|
pkgName: t,
|
|
1796
1790
|
shareInfo: s,
|
|
1797
|
-
shared:
|
|
1798
|
-
origin:
|
|
1799
|
-
}), { shareInfo:
|
|
1800
|
-
assert(
|
|
1801
|
-
const i = getRegisteredShare(this.shareScopeMap, t,
|
|
1802
|
-
u.useIn || (u.useIn = []), addUniqueItem(u.useIn,
|
|
1791
|
+
shared: r.options.shared,
|
|
1792
|
+
origin: r
|
|
1793
|
+
}), { shareInfo: l } = a;
|
|
1794
|
+
assert(l, `Cannot find ${t} Share in the ${r.options.name}. Please ensure that the ${t} Share parameters have been injected`);
|
|
1795
|
+
const i = getRegisteredShare(this.shareScopeMap, t, l, this.hooks.lifecycle.resolveShare), c = (u) => {
|
|
1796
|
+
u.useIn || (u.useIn = []), addUniqueItem(u.useIn, r.options.name);
|
|
1803
1797
|
};
|
|
1804
1798
|
if (i && i.lib)
|
|
1805
1799
|
return c(i), i.lib;
|
|
@@ -1809,32 +1803,32 @@ class SharedHandler {
|
|
|
1809
1803
|
} else if (i) {
|
|
1810
1804
|
const p = (async () => {
|
|
1811
1805
|
const d = await i.get();
|
|
1812
|
-
|
|
1813
|
-
const m = getRegisteredShare(this.shareScopeMap, t,
|
|
1806
|
+
l.lib = d, l.loaded = !0, c(l);
|
|
1807
|
+
const m = getRegisteredShare(this.shareScopeMap, t, l, this.hooks.lifecycle.resolveShare);
|
|
1814
1808
|
return m && (m.lib = d, m.loaded = !0), d;
|
|
1815
1809
|
})();
|
|
1816
1810
|
return this.setShared({
|
|
1817
1811
|
pkgName: t,
|
|
1818
1812
|
loaded: !1,
|
|
1819
1813
|
shared: i,
|
|
1820
|
-
from:
|
|
1814
|
+
from: r.options.name,
|
|
1821
1815
|
lib: null,
|
|
1822
1816
|
loading: p
|
|
1823
1817
|
}), p;
|
|
1824
1818
|
} else {
|
|
1825
|
-
if (
|
|
1819
|
+
if (o != null && o.customShareInfo)
|
|
1826
1820
|
return !1;
|
|
1827
1821
|
const p = (async () => {
|
|
1828
|
-
const d = await
|
|
1829
|
-
|
|
1830
|
-
const m = getRegisteredShare(this.shareScopeMap, t,
|
|
1822
|
+
const d = await l.get();
|
|
1823
|
+
l.lib = d, l.loaded = !0, c(l);
|
|
1824
|
+
const m = getRegisteredShare(this.shareScopeMap, t, l, this.hooks.lifecycle.resolveShare);
|
|
1831
1825
|
return m && (m.lib = d, m.loaded = !0), d;
|
|
1832
1826
|
})();
|
|
1833
1827
|
return this.setShared({
|
|
1834
1828
|
pkgName: t,
|
|
1835
1829
|
loaded: !1,
|
|
1836
|
-
shared:
|
|
1837
|
-
from:
|
|
1830
|
+
shared: l,
|
|
1831
|
+
from: r.options.name,
|
|
1838
1832
|
lib: null,
|
|
1839
1833
|
loading: p
|
|
1840
1834
|
}), p;
|
|
@@ -1846,20 +1840,20 @@ class SharedHandler {
|
|
|
1846
1840
|
* If the share scope does not exist, it creates one.
|
|
1847
1841
|
*/
|
|
1848
1842
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
1849
|
-
initializeSharing(t = DEFAULT_SCOPE,
|
|
1850
|
-
const { host:
|
|
1851
|
-
let
|
|
1843
|
+
initializeSharing(t = DEFAULT_SCOPE, o) {
|
|
1844
|
+
const { host: r } = this, s = o == null ? void 0 : o.from, a = o == null ? void 0 : o.strategy;
|
|
1845
|
+
let l = o == null ? void 0 : o.initScope;
|
|
1852
1846
|
const i = [];
|
|
1853
1847
|
if (s !== "build") {
|
|
1854
1848
|
const { initTokens: g } = this;
|
|
1855
|
-
|
|
1849
|
+
l || (l = []);
|
|
1856
1850
|
let E = g[t];
|
|
1857
1851
|
if (E || (E = g[t] = {
|
|
1858
1852
|
from: this.host.name
|
|
1859
|
-
}),
|
|
1860
|
-
|
|
1853
|
+
}), l.indexOf(E) >= 0) return i;
|
|
1854
|
+
l.push(E);
|
|
1861
1855
|
}
|
|
1862
|
-
const c = this.shareScopeMap, u =
|
|
1856
|
+
const c = this.shareScopeMap, u = r.options.name;
|
|
1863
1857
|
c[t] || (c[t] = {});
|
|
1864
1858
|
const p = c[t], d = (g, E) => {
|
|
1865
1859
|
var _;
|
|
@@ -1867,8 +1861,8 @@ class SharedHandler {
|
|
|
1867
1861
|
p[g] = p[g] || {};
|
|
1868
1862
|
const I = p[g], S = I[b], R = !!(S && (S.eager || (_ = S.shareConfig) != null && _.eager));
|
|
1869
1863
|
(!S || S.strategy !== "loaded-first" && !S.loaded && (!v != !R ? v : u > S.from)) && (I[b] = E);
|
|
1870
|
-
}, m = (g) => g && g.init && g.init(c[t],
|
|
1871
|
-
const { module: E } = await
|
|
1864
|
+
}, m = (g) => g && g.init && g.init(c[t], l), y = async (g) => {
|
|
1865
|
+
const { module: E } = await r.remoteHandler.getRemoteModuleAndOptions({
|
|
1872
1866
|
id: g
|
|
1873
1867
|
});
|
|
1874
1868
|
if (E.getEntry) {
|
|
@@ -1876,22 +1870,22 @@ class SharedHandler {
|
|
|
1876
1870
|
try {
|
|
1877
1871
|
_ = await E.getEntry();
|
|
1878
1872
|
} catch (b) {
|
|
1879
|
-
_ = await
|
|
1873
|
+
_ = await r.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({
|
|
1880
1874
|
id: g,
|
|
1881
1875
|
error: b,
|
|
1882
1876
|
from: "runtime",
|
|
1883
1877
|
lifecycle: "beforeLoadShare",
|
|
1884
|
-
origin:
|
|
1878
|
+
origin: r
|
|
1885
1879
|
});
|
|
1886
1880
|
}
|
|
1887
1881
|
E.inited || (await m(_), E.inited = !0);
|
|
1888
1882
|
}
|
|
1889
1883
|
};
|
|
1890
|
-
return Object.keys(
|
|
1891
|
-
|
|
1884
|
+
return Object.keys(r.options.shared).forEach((g) => {
|
|
1885
|
+
r.options.shared[g].forEach((_) => {
|
|
1892
1886
|
_.scope.includes(t) && d(g, _);
|
|
1893
1887
|
});
|
|
1894
|
-
}), (
|
|
1888
|
+
}), (r.options.shareStrategy === "version-first" || a === "version-first") && r.options.remotes.forEach((g) => {
|
|
1895
1889
|
g.shareScope === t && i.push(y(g.name));
|
|
1896
1890
|
}), i;
|
|
1897
1891
|
}
|
|
@@ -1899,32 +1893,32 @@ class SharedHandler {
|
|
|
1899
1893
|
// 1. If the loaded shared already exists globally, then it will be reused
|
|
1900
1894
|
// 2. If lib exists in local shared, it will be used directly
|
|
1901
1895
|
// 3. If the local get returns something other than Promise, then it will be used directly
|
|
1902
|
-
loadShareSync(t,
|
|
1903
|
-
const { host:
|
|
1896
|
+
loadShareSync(t, o) {
|
|
1897
|
+
const { host: r } = this, s = getTargetSharedOptions({
|
|
1904
1898
|
pkgName: t,
|
|
1905
|
-
extraOptions:
|
|
1906
|
-
shareInfos:
|
|
1899
|
+
extraOptions: o,
|
|
1900
|
+
shareInfos: r.options.shared
|
|
1907
1901
|
});
|
|
1908
1902
|
s != null && s.scope && s.scope.forEach((i) => {
|
|
1909
1903
|
this.initializeSharing(i, {
|
|
1910
1904
|
strategy: s.strategy
|
|
1911
1905
|
});
|
|
1912
1906
|
});
|
|
1913
|
-
const
|
|
1914
|
-
i.useIn || (i.useIn = []), addUniqueItem(i.useIn,
|
|
1907
|
+
const a = getRegisteredShare(this.shareScopeMap, t, s, this.hooks.lifecycle.resolveShare), l = (i) => {
|
|
1908
|
+
i.useIn || (i.useIn = []), addUniqueItem(i.useIn, r.options.name);
|
|
1915
1909
|
};
|
|
1916
|
-
if (
|
|
1917
|
-
if (typeof
|
|
1918
|
-
return a
|
|
1919
|
-
if (typeof
|
|
1920
|
-
const i =
|
|
1910
|
+
if (a) {
|
|
1911
|
+
if (typeof a.lib == "function")
|
|
1912
|
+
return l(a), a.loaded || (a.loaded = !0, a.from === r.options.name && (s.loaded = !0)), a.lib;
|
|
1913
|
+
if (typeof a.get == "function") {
|
|
1914
|
+
const i = a.get();
|
|
1921
1915
|
if (!(i instanceof Promise))
|
|
1922
|
-
return a
|
|
1916
|
+
return l(a), this.setShared({
|
|
1923
1917
|
pkgName: t,
|
|
1924
1918
|
loaded: !0,
|
|
1925
|
-
from:
|
|
1919
|
+
from: r.options.name,
|
|
1926
1920
|
lib: i,
|
|
1927
|
-
shared:
|
|
1921
|
+
shared: a
|
|
1928
1922
|
}), i;
|
|
1929
1923
|
}
|
|
1930
1924
|
}
|
|
@@ -1933,37 +1927,37 @@ class SharedHandler {
|
|
|
1933
1927
|
if (s.get) {
|
|
1934
1928
|
const i = s.get();
|
|
1935
1929
|
if (i instanceof Promise) {
|
|
1936
|
-
const c = (
|
|
1930
|
+
const c = (o == null ? void 0 : o.from) === "build" ? RUNTIME_005 : RUNTIME_006;
|
|
1937
1931
|
throw new Error(getShortErrorMsg(c, runtimeDescMap, {
|
|
1938
|
-
hostName:
|
|
1932
|
+
hostName: r.options.name,
|
|
1939
1933
|
sharedPkgName: t
|
|
1940
1934
|
}));
|
|
1941
1935
|
}
|
|
1942
1936
|
return s.lib = i, this.setShared({
|
|
1943
1937
|
pkgName: t,
|
|
1944
1938
|
loaded: !0,
|
|
1945
|
-
from:
|
|
1939
|
+
from: r.options.name,
|
|
1946
1940
|
lib: s.lib,
|
|
1947
1941
|
shared: s
|
|
1948
1942
|
}), s.lib;
|
|
1949
1943
|
}
|
|
1950
1944
|
throw new Error(getShortErrorMsg(RUNTIME_006, runtimeDescMap, {
|
|
1951
|
-
hostName:
|
|
1945
|
+
hostName: r.options.name,
|
|
1952
1946
|
sharedPkgName: t
|
|
1953
1947
|
}));
|
|
1954
1948
|
}
|
|
1955
|
-
initShareScopeMap(t,
|
|
1949
|
+
initShareScopeMap(t, o, r = {}) {
|
|
1956
1950
|
const { host: s } = this;
|
|
1957
|
-
this.shareScopeMap[t] =
|
|
1958
|
-
shareScope:
|
|
1951
|
+
this.shareScopeMap[t] = o, this.hooks.lifecycle.initContainerShareScopeMap.emit({
|
|
1952
|
+
shareScope: o,
|
|
1959
1953
|
options: s.options,
|
|
1960
1954
|
origin: s,
|
|
1961
1955
|
scopeName: t,
|
|
1962
|
-
hostShareScopeMap:
|
|
1956
|
+
hostShareScopeMap: r.hostShareScopeMap
|
|
1963
1957
|
});
|
|
1964
1958
|
}
|
|
1965
|
-
setShared({ pkgName: t, shared:
|
|
1966
|
-
const { version: c, scope: u = "default" } =
|
|
1959
|
+
setShared({ pkgName: t, shared: o, from: r, lib: s, loading: a, loaded: l, get: i }) {
|
|
1960
|
+
const { version: c, scope: u = "default" } = o, p = _object_without_properties_loose(o, [
|
|
1967
1961
|
"version",
|
|
1968
1962
|
"scope"
|
|
1969
1963
|
]);
|
|
@@ -1978,18 +1972,18 @@ class SharedHandler {
|
|
|
1978
1972
|
]
|
|
1979
1973
|
}, p, {
|
|
1980
1974
|
lib: s,
|
|
1981
|
-
loaded:
|
|
1982
|
-
loading:
|
|
1975
|
+
loaded: l,
|
|
1976
|
+
loading: a
|
|
1983
1977
|
}), i && (this.shareScopeMap[m][t][c].get = i);
|
|
1984
1978
|
return;
|
|
1985
1979
|
}
|
|
1986
1980
|
const y = this.shareScopeMap[m][t][c];
|
|
1987
|
-
|
|
1981
|
+
a && !y.loading && (y.loading = a);
|
|
1988
1982
|
});
|
|
1989
1983
|
}
|
|
1990
1984
|
_setGlobalShareScopeMap(t) {
|
|
1991
|
-
const
|
|
1992
|
-
|
|
1985
|
+
const o = getGlobalShareScope(), r = t.id || t.name;
|
|
1986
|
+
r && !o[r] && (o[r] = this.shareScopeMap);
|
|
1993
1987
|
}
|
|
1994
1988
|
constructor(t) {
|
|
1995
1989
|
this.hooks = new PluginSystem({
|
|
@@ -2004,145 +1998,147 @@ class SharedHandler {
|
|
|
2004
1998
|
}
|
|
2005
1999
|
}
|
|
2006
2000
|
class RemoteHandler {
|
|
2007
|
-
formatAndRegisterRemote(t,
|
|
2008
|
-
return (
|
|
2001
|
+
formatAndRegisterRemote(t, o) {
|
|
2002
|
+
return (o.remotes || []).reduce((s, a) => (this.registerRemote(a, s, {
|
|
2009
2003
|
force: !1
|
|
2010
2004
|
}), s), t.remotes);
|
|
2011
2005
|
}
|
|
2012
|
-
setIdToRemoteMap(t,
|
|
2013
|
-
const { remote:
|
|
2006
|
+
setIdToRemoteMap(t, o) {
|
|
2007
|
+
const { remote: r, expose: s } = o, { name: a, alias: l } = r;
|
|
2014
2008
|
if (this.idToRemoteMap[t] = {
|
|
2015
|
-
name:
|
|
2009
|
+
name: r.name,
|
|
2016
2010
|
expose: s
|
|
2017
|
-
},
|
|
2018
|
-
const i = t.replace(
|
|
2011
|
+
}, l && t.startsWith(a)) {
|
|
2012
|
+
const i = t.replace(a, l);
|
|
2019
2013
|
this.idToRemoteMap[i] = {
|
|
2020
|
-
name:
|
|
2014
|
+
name: r.name,
|
|
2021
2015
|
expose: s
|
|
2022
2016
|
};
|
|
2023
2017
|
return;
|
|
2024
2018
|
}
|
|
2025
|
-
if (
|
|
2026
|
-
const i = t.replace(
|
|
2019
|
+
if (l && t.startsWith(l)) {
|
|
2020
|
+
const i = t.replace(l, a);
|
|
2027
2021
|
this.idToRemoteMap[i] = {
|
|
2028
|
-
name:
|
|
2022
|
+
name: r.name,
|
|
2029
2023
|
expose: s
|
|
2030
2024
|
};
|
|
2031
2025
|
}
|
|
2032
2026
|
}
|
|
2033
2027
|
// eslint-disable-next-line max-lines-per-function
|
|
2034
2028
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
2035
|
-
async loadRemote(t,
|
|
2036
|
-
const { host:
|
|
2029
|
+
async loadRemote(t, o) {
|
|
2030
|
+
const { host: r } = this;
|
|
2037
2031
|
try {
|
|
2038
|
-
const { loadFactory: s = !0 } =
|
|
2032
|
+
const { loadFactory: s = !0 } = o || {
|
|
2039
2033
|
loadFactory: !0
|
|
2040
|
-
}, { module:
|
|
2034
|
+
}, { module: a, moduleOptions: l, remoteMatchInfo: i } = await this.getRemoteModuleAndOptions({
|
|
2041
2035
|
id: t
|
|
2042
|
-
}), { pkgNameOrAlias: c, remote: u, expose: p, id: d, remoteSnapshot: m } = i, y = await
|
|
2036
|
+
}), { pkgNameOrAlias: c, remote: u, expose: p, id: d, remoteSnapshot: m } = i, y = await a.get(d, p, o, m), g = await this.hooks.lifecycle.onLoad.emit({
|
|
2043
2037
|
id: d,
|
|
2044
2038
|
pkgNameOrAlias: c,
|
|
2045
2039
|
expose: p,
|
|
2046
2040
|
exposeModule: s ? y : void 0,
|
|
2047
2041
|
exposeModuleFactory: s ? void 0 : y,
|
|
2048
2042
|
remote: u,
|
|
2049
|
-
options:
|
|
2050
|
-
moduleInstance:
|
|
2051
|
-
origin:
|
|
2043
|
+
options: l,
|
|
2044
|
+
moduleInstance: a,
|
|
2045
|
+
origin: r
|
|
2052
2046
|
});
|
|
2053
2047
|
return this.setIdToRemoteMap(t, i), typeof g == "function" ? g : y;
|
|
2054
2048
|
} catch (s) {
|
|
2055
|
-
const { from:
|
|
2049
|
+
const { from: a = "runtime" } = o || {
|
|
2056
2050
|
from: "runtime"
|
|
2057
|
-
},
|
|
2051
|
+
}, l = await this.hooks.lifecycle.errorLoadRemote.emit({
|
|
2058
2052
|
id: t,
|
|
2059
2053
|
error: s,
|
|
2060
|
-
from:
|
|
2054
|
+
from: a,
|
|
2061
2055
|
lifecycle: "onLoad",
|
|
2062
|
-
origin:
|
|
2056
|
+
origin: r
|
|
2063
2057
|
});
|
|
2064
|
-
if (!
|
|
2058
|
+
if (!l)
|
|
2065
2059
|
throw s;
|
|
2066
|
-
return
|
|
2060
|
+
return l;
|
|
2067
2061
|
}
|
|
2068
2062
|
}
|
|
2069
2063
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
2070
2064
|
async preloadRemote(t) {
|
|
2071
|
-
const { host:
|
|
2065
|
+
const { host: o } = this;
|
|
2072
2066
|
await this.hooks.lifecycle.beforePreloadRemote.emit({
|
|
2073
2067
|
preloadOps: t,
|
|
2074
|
-
options:
|
|
2075
|
-
origin:
|
|
2068
|
+
options: o.options,
|
|
2069
|
+
origin: o
|
|
2076
2070
|
});
|
|
2077
|
-
const
|
|
2078
|
-
await Promise.all(
|
|
2079
|
-
const { remote:
|
|
2080
|
-
|
|
2071
|
+
const r = formatPreloadArgs(o.options.remotes, t);
|
|
2072
|
+
await Promise.all(r.map(async (s) => {
|
|
2073
|
+
const { remote: a } = s, l = getRemoteInfo(a), { globalSnapshot: i, remoteSnapshot: c } = await o.snapshotHandler.loadRemoteSnapshotInfo({
|
|
2074
|
+
moduleInfo: a
|
|
2075
|
+
}), u = await this.hooks.lifecycle.generatePreloadAssets.emit({
|
|
2076
|
+
origin: o,
|
|
2081
2077
|
preloadOptions: s,
|
|
2082
|
-
remote:
|
|
2083
|
-
remoteInfo:
|
|
2078
|
+
remote: a,
|
|
2079
|
+
remoteInfo: l,
|
|
2084
2080
|
globalSnapshot: i,
|
|
2085
2081
|
remoteSnapshot: c
|
|
2086
2082
|
});
|
|
2087
|
-
u && preloadAssets(
|
|
2083
|
+
u && preloadAssets(l, o, u);
|
|
2088
2084
|
}));
|
|
2089
2085
|
}
|
|
2090
|
-
registerRemotes(t,
|
|
2091
|
-
const { host:
|
|
2086
|
+
registerRemotes(t, o) {
|
|
2087
|
+
const { host: r } = this;
|
|
2092
2088
|
t.forEach((s) => {
|
|
2093
|
-
this.registerRemote(s,
|
|
2094
|
-
force:
|
|
2089
|
+
this.registerRemote(s, r.options.remotes, {
|
|
2090
|
+
force: o == null ? void 0 : o.force
|
|
2095
2091
|
});
|
|
2096
2092
|
});
|
|
2097
2093
|
}
|
|
2098
2094
|
async getRemoteModuleAndOptions(t) {
|
|
2099
|
-
const { host:
|
|
2095
|
+
const { host: o } = this, { id: r } = t;
|
|
2100
2096
|
let s;
|
|
2101
2097
|
try {
|
|
2102
2098
|
s = await this.hooks.lifecycle.beforeRequest.emit({
|
|
2103
|
-
id:
|
|
2104
|
-
options:
|
|
2105
|
-
origin:
|
|
2099
|
+
id: r,
|
|
2100
|
+
options: o.options,
|
|
2101
|
+
origin: o
|
|
2106
2102
|
});
|
|
2107
2103
|
} catch (g) {
|
|
2108
2104
|
if (s = await this.hooks.lifecycle.errorLoadRemote.emit({
|
|
2109
|
-
id:
|
|
2110
|
-
options:
|
|
2111
|
-
origin:
|
|
2105
|
+
id: r,
|
|
2106
|
+
options: o.options,
|
|
2107
|
+
origin: o,
|
|
2112
2108
|
from: "runtime",
|
|
2113
2109
|
error: g,
|
|
2114
2110
|
lifecycle: "beforeRequest"
|
|
2115
2111
|
}), !s)
|
|
2116
2112
|
throw g;
|
|
2117
2113
|
}
|
|
2118
|
-
const { id:
|
|
2119
|
-
assert(
|
|
2120
|
-
hostName:
|
|
2121
|
-
requestId:
|
|
2114
|
+
const { id: a } = s, l = matchRemoteWithNameAndExpose(o.options.remotes, a);
|
|
2115
|
+
assert(l, getShortErrorMsg(RUNTIME_004, runtimeDescMap, {
|
|
2116
|
+
hostName: o.options.name,
|
|
2117
|
+
requestId: a
|
|
2122
2118
|
}));
|
|
2123
|
-
const { remote: i } =
|
|
2124
|
-
id:
|
|
2125
|
-
},
|
|
2126
|
-
options:
|
|
2127
|
-
origin:
|
|
2119
|
+
const { remote: i } = l, c = getRemoteInfo(i), u = await o.sharedHandler.hooks.lifecycle.afterResolve.emit(_extends$1({
|
|
2120
|
+
id: a
|
|
2121
|
+
}, l, {
|
|
2122
|
+
options: o.options,
|
|
2123
|
+
origin: o,
|
|
2128
2124
|
remoteInfo: c
|
|
2129
2125
|
})), { remote: p, expose: d } = u;
|
|
2130
|
-
assert(p && d, `The 'beforeRequest' hook was executed, but it failed to return the correct 'remote' and 'expose' values while loading ${
|
|
2131
|
-
let m =
|
|
2126
|
+
assert(p && d, `The 'beforeRequest' hook was executed, but it failed to return the correct 'remote' and 'expose' values while loading ${a}.`);
|
|
2127
|
+
let m = o.moduleCache.get(p.name);
|
|
2132
2128
|
const y = {
|
|
2133
|
-
host:
|
|
2129
|
+
host: o,
|
|
2134
2130
|
remoteInfo: c
|
|
2135
2131
|
};
|
|
2136
|
-
return m || (m = new Module(y),
|
|
2132
|
+
return m || (m = new Module(y), o.moduleCache.set(p.name, m)), {
|
|
2137
2133
|
module: m,
|
|
2138
2134
|
moduleOptions: y,
|
|
2139
2135
|
remoteMatchInfo: u
|
|
2140
2136
|
};
|
|
2141
2137
|
}
|
|
2142
|
-
registerRemote(t,
|
|
2143
|
-
const { host: s } = this,
|
|
2138
|
+
registerRemote(t, o, r) {
|
|
2139
|
+
const { host: s } = this, a = () => {
|
|
2144
2140
|
if (t.alias) {
|
|
2145
|
-
const i =
|
|
2141
|
+
const i = o.find((c) => {
|
|
2146
2142
|
var u;
|
|
2147
2143
|
return t.alias && (c.name.startsWith(t.alias) || ((u = c.alias) == null ? void 0 : u.startsWith(t.alias)));
|
|
2148
2144
|
});
|
|
@@ -2154,9 +2150,9 @@ class RemoteHandler {
|
|
|
2154
2150
|
remote: t,
|
|
2155
2151
|
origin: s
|
|
2156
2152
|
});
|
|
2157
|
-
const
|
|
2158
|
-
if (!
|
|
2159
|
-
|
|
2153
|
+
const l = o.find((i) => i.name === t.name);
|
|
2154
|
+
if (!l)
|
|
2155
|
+
a(), o.push(t), this.hooks.lifecycle.registerRemote.emit({
|
|
2160
2156
|
remote: t,
|
|
2161
2157
|
origin: s
|
|
2162
2158
|
});
|
|
@@ -2165,7 +2161,7 @@ class RemoteHandler {
|
|
|
2165
2161
|
`The remote "${t.name}" is already registered.`,
|
|
2166
2162
|
"Please note that overriding it may cause unexpected errors."
|
|
2167
2163
|
];
|
|
2168
|
-
|
|
2164
|
+
r != null && r.force && (this.removeRemote(l), a(), o.push(t), this.hooks.lifecycle.registerRemote.emit({
|
|
2169
2165
|
remote: t,
|
|
2170
2166
|
origin: s
|
|
2171
2167
|
}), warn$1(i.join(" ")));
|
|
@@ -2173,17 +2169,17 @@ class RemoteHandler {
|
|
|
2173
2169
|
}
|
|
2174
2170
|
removeRemote(t) {
|
|
2175
2171
|
try {
|
|
2176
|
-
const { host:
|
|
2177
|
-
|
|
2178
|
-
const
|
|
2179
|
-
if (
|
|
2180
|
-
const i =
|
|
2172
|
+
const { host: r } = this, { name: s } = t, a = r.options.remotes.findIndex((i) => i.name === s);
|
|
2173
|
+
a !== -1 && r.options.remotes.splice(a, 1);
|
|
2174
|
+
const l = r.moduleCache.get(t.name);
|
|
2175
|
+
if (l) {
|
|
2176
|
+
const i = l.remoteInfo, c = i.entryGlobalName;
|
|
2181
2177
|
if (CurrentGlobal[c]) {
|
|
2182
|
-
var
|
|
2183
|
-
(
|
|
2178
|
+
var o;
|
|
2179
|
+
(o = Object.getOwnPropertyDescriptor(CurrentGlobal, c)) != null && o.configurable ? delete CurrentGlobal[c] : CurrentGlobal[c] = void 0;
|
|
2184
2180
|
}
|
|
2185
|
-
const u = getRemoteEntryUniqueKey(
|
|
2186
|
-
globalLoading[u] && delete globalLoading[u],
|
|
2181
|
+
const u = getRemoteEntryUniqueKey(l.remoteInfo);
|
|
2182
|
+
globalLoading[u] && delete globalLoading[u], r.snapshotHandler.manifestCache.delete(i.entry);
|
|
2187
2183
|
let p = i.buildVersion ? composeKeyWithSeparator(i.name, i.buildVersion) : i.name;
|
|
2188
2184
|
const d = CurrentGlobal.__FEDERATION__.__INSTANCES__.findIndex((y) => i.buildVersion ? y.options.id === p : y.name === p);
|
|
2189
2185
|
if (d !== -1) {
|
|
@@ -2200,7 +2196,7 @@ class RemoteHandler {
|
|
|
2200
2196
|
const A = S[R];
|
|
2201
2197
|
A && Object.keys(A).forEach((T) => {
|
|
2202
2198
|
const $ = A[T];
|
|
2203
|
-
$ && typeof $ == "object" && $.from === i.name && ($.loaded || $.loading ? ($.useIn = $.useIn.filter((
|
|
2199
|
+
$ && typeof $ == "object" && $.from === i.name && ($.loaded || $.loading ? ($.useIn = $.useIn.filter((w) => w !== i.name), $.useIn.length ? E = !1 : _.push([
|
|
2204
2200
|
b,
|
|
2205
2201
|
I,
|
|
2206
2202
|
R,
|
|
@@ -2219,15 +2215,15 @@ class RemoteHandler {
|
|
|
2219
2215
|
(T = g[b]) == null || (A = T[v]) == null || (R = A[I]) == null || delete R[S];
|
|
2220
2216
|
}), CurrentGlobal.__FEDERATION__.__INSTANCES__.splice(d, 1);
|
|
2221
2217
|
}
|
|
2222
|
-
const { hostGlobalSnapshot: m } = getGlobalRemoteInfo(t,
|
|
2218
|
+
const { hostGlobalSnapshot: m } = getGlobalRemoteInfo(t, r);
|
|
2223
2219
|
if (m) {
|
|
2224
2220
|
const y = m && "remotesInfo" in m && m.remotesInfo && getInfoWithoutType(m.remotesInfo, t.name).key;
|
|
2225
2221
|
y && (delete m.remotesInfo[y], Global.__FEDERATION__.__MANIFEST_LOADING__[y] && delete Global.__FEDERATION__.__MANIFEST_LOADING__[y]);
|
|
2226
2222
|
}
|
|
2227
|
-
|
|
2223
|
+
r.moduleCache.delete(t.name);
|
|
2228
2224
|
}
|
|
2229
|
-
} catch (
|
|
2230
|
-
logger.log("removeRemote fail: ",
|
|
2225
|
+
} catch (r) {
|
|
2226
|
+
logger.log("removeRemote fail: ", r);
|
|
2231
2227
|
}
|
|
2232
2228
|
}
|
|
2233
2229
|
constructor(t) {
|
|
@@ -2250,59 +2246,59 @@ const USE_SNAPSHOT = typeof FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN == "boolean"
|
|
|
2250
2246
|
class FederationHost {
|
|
2251
2247
|
initOptions(t) {
|
|
2252
2248
|
this.registerPlugins(t.plugins);
|
|
2253
|
-
const
|
|
2254
|
-
return this.options =
|
|
2249
|
+
const o = this.formatOptions(this.options, t);
|
|
2250
|
+
return this.options = o, o;
|
|
2255
2251
|
}
|
|
2256
|
-
async loadShare(t,
|
|
2257
|
-
return this.sharedHandler.loadShare(t,
|
|
2252
|
+
async loadShare(t, o) {
|
|
2253
|
+
return this.sharedHandler.loadShare(t, o);
|
|
2258
2254
|
}
|
|
2259
2255
|
// The lib function will only be available if the shared set by eager or runtime init is set or the shared is successfully loaded.
|
|
2260
2256
|
// 1. If the loaded shared already exists globally, then it will be reused
|
|
2261
2257
|
// 2. If lib exists in local shared, it will be used directly
|
|
2262
2258
|
// 3. If the local get returns something other than Promise, then it will be used directly
|
|
2263
|
-
loadShareSync(t,
|
|
2264
|
-
return this.sharedHandler.loadShareSync(t,
|
|
2259
|
+
loadShareSync(t, o) {
|
|
2260
|
+
return this.sharedHandler.loadShareSync(t, o);
|
|
2265
2261
|
}
|
|
2266
|
-
initializeSharing(t = DEFAULT_SCOPE,
|
|
2267
|
-
return this.sharedHandler.initializeSharing(t,
|
|
2262
|
+
initializeSharing(t = DEFAULT_SCOPE, o) {
|
|
2263
|
+
return this.sharedHandler.initializeSharing(t, o);
|
|
2268
2264
|
}
|
|
2269
|
-
initRawContainer(t,
|
|
2265
|
+
initRawContainer(t, o, r) {
|
|
2270
2266
|
const s = getRemoteInfo({
|
|
2271
2267
|
name: t,
|
|
2272
|
-
entry:
|
|
2273
|
-
}),
|
|
2268
|
+
entry: o
|
|
2269
|
+
}), a = new Module({
|
|
2274
2270
|
host: this,
|
|
2275
2271
|
remoteInfo: s
|
|
2276
2272
|
});
|
|
2277
|
-
return
|
|
2273
|
+
return a.remoteEntryExports = r, this.moduleCache.set(t, a), a;
|
|
2278
2274
|
}
|
|
2279
2275
|
// eslint-disable-next-line max-lines-per-function
|
|
2280
2276
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
2281
|
-
async loadRemote(t,
|
|
2282
|
-
return this.remoteHandler.loadRemote(t,
|
|
2277
|
+
async loadRemote(t, o) {
|
|
2278
|
+
return this.remoteHandler.loadRemote(t, o);
|
|
2283
2279
|
}
|
|
2284
2280
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
2285
2281
|
async preloadRemote(t) {
|
|
2286
2282
|
return this.remoteHandler.preloadRemote(t);
|
|
2287
2283
|
}
|
|
2288
|
-
initShareScopeMap(t,
|
|
2289
|
-
this.sharedHandler.initShareScopeMap(t,
|
|
2284
|
+
initShareScopeMap(t, o, r = {}) {
|
|
2285
|
+
this.sharedHandler.initShareScopeMap(t, o, r);
|
|
2290
2286
|
}
|
|
2291
|
-
formatOptions(t,
|
|
2292
|
-
const { shared:
|
|
2287
|
+
formatOptions(t, o) {
|
|
2288
|
+
const { shared: r } = formatShareConfigs(t, o), { userOptions: s, options: a } = this.hooks.lifecycle.beforeInit.emit({
|
|
2293
2289
|
origin: this,
|
|
2294
|
-
userOptions:
|
|
2290
|
+
userOptions: o,
|
|
2295
2291
|
options: t,
|
|
2296
|
-
shareInfo:
|
|
2297
|
-
}),
|
|
2298
|
-
...
|
|
2292
|
+
shareInfo: r
|
|
2293
|
+
}), l = this.remoteHandler.formatAndRegisterRemote(a, s), { shared: i } = this.sharedHandler.registerShared(a, s), c = [
|
|
2294
|
+
...a.plugins
|
|
2299
2295
|
];
|
|
2300
2296
|
s.plugins && s.plugins.forEach((p) => {
|
|
2301
2297
|
c.includes(p) || c.push(p);
|
|
2302
2298
|
});
|
|
2303
|
-
const u = _extends$1({}, t,
|
|
2299
|
+
const u = _extends$1({}, t, o, {
|
|
2304
2300
|
plugins: c,
|
|
2305
|
-
remotes:
|
|
2301
|
+
remotes: l,
|
|
2306
2302
|
shared: i
|
|
2307
2303
|
});
|
|
2308
2304
|
return this.hooks.lifecycle.init.emit({
|
|
@@ -2311,7 +2307,7 @@ class FederationHost {
|
|
|
2311
2307
|
}), u;
|
|
2312
2308
|
}
|
|
2313
2309
|
registerPlugins(t) {
|
|
2314
|
-
const
|
|
2310
|
+
const o = registerPlugins(t, [
|
|
2315
2311
|
this.hooks,
|
|
2316
2312
|
this.remoteHandler.hooks,
|
|
2317
2313
|
this.sharedHandler.hooks,
|
|
@@ -2319,10 +2315,10 @@ class FederationHost {
|
|
|
2319
2315
|
this.loaderHook,
|
|
2320
2316
|
this.bridgeHook
|
|
2321
2317
|
]);
|
|
2322
|
-
this.options.plugins = this.options.plugins.reduce((
|
|
2318
|
+
this.options.plugins = this.options.plugins.reduce((r, s) => (s && r && !r.find((a) => a.name === s.name) && r.push(s), r), o || []);
|
|
2323
2319
|
}
|
|
2324
|
-
registerRemotes(t,
|
|
2325
|
-
return this.remoteHandler.registerRemotes(t,
|
|
2320
|
+
registerRemotes(t, o) {
|
|
2321
|
+
return this.remoteHandler.registerRemotes(t, o);
|
|
2326
2322
|
}
|
|
2327
2323
|
constructor(t) {
|
|
2328
2324
|
this.hooks = new PluginSystem({
|
|
@@ -2332,7 +2328,7 @@ class FederationHost {
|
|
|
2332
2328
|
beforeInitContainer: new AsyncWaterfallHook("beforeInitContainer"),
|
|
2333
2329
|
// maybe will change, temporarily for internal use only
|
|
2334
2330
|
initContainer: new AsyncWaterfallHook("initContainer")
|
|
2335
|
-
}), this.version = "0.
|
|
2331
|
+
}), this.version = "0.15.0", this.moduleCache = /* @__PURE__ */ new Map(), this.loaderHook = new PluginSystem({
|
|
2336
2332
|
// FIXME: may not be suitable , not open to the public yet
|
|
2337
2333
|
getModuleInfo: new SyncHook(),
|
|
2338
2334
|
createScript: new SyncHook(),
|
|
@@ -2346,21 +2342,21 @@ class FederationHost {
|
|
|
2346
2342
|
beforeBridgeDestroy: new SyncHook(),
|
|
2347
2343
|
afterBridgeDestroy: new SyncHook()
|
|
2348
2344
|
});
|
|
2349
|
-
const
|
|
2345
|
+
const o = USE_SNAPSHOT ? [
|
|
2350
2346
|
snapshotPlugin(),
|
|
2351
2347
|
generatePreloadAssetsPlugin()
|
|
2352
|
-
] : [],
|
|
2348
|
+
] : [], r = {
|
|
2353
2349
|
id: getBuilderId(),
|
|
2354
2350
|
name: t.name,
|
|
2355
|
-
plugins:
|
|
2351
|
+
plugins: o,
|
|
2356
2352
|
remotes: [],
|
|
2357
2353
|
shared: {},
|
|
2358
2354
|
inBrowser: isBrowserEnv()
|
|
2359
2355
|
};
|
|
2360
|
-
this.name = t.name, this.options =
|
|
2361
|
-
...
|
|
2356
|
+
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([
|
|
2357
|
+
...r.plugins,
|
|
2362
2358
|
...t.plugins || []
|
|
2363
|
-
]), this.options = this.formatOptions(
|
|
2359
|
+
]), this.options = this.formatOptions(r, t);
|
|
2364
2360
|
}
|
|
2365
2361
|
}
|
|
2366
2362
|
let FederationInstance = null;
|
|
@@ -2369,24 +2365,24 @@ function getInstance() {
|
|
|
2369
2365
|
}
|
|
2370
2366
|
setGlobalFederationConstructor(FederationHost);
|
|
2371
2367
|
function createBridgeComponent(n) {
|
|
2372
|
-
const t = /* @__PURE__ */ new Map(),
|
|
2368
|
+
const t = /* @__PURE__ */ new Map(), o = getInstance();
|
|
2373
2369
|
return () => ({
|
|
2374
|
-
__APP_VERSION__: "0.
|
|
2375
|
-
async render(
|
|
2370
|
+
__APP_VERSION__: "0.15.0",
|
|
2371
|
+
async render(r) {
|
|
2376
2372
|
var g, E, _;
|
|
2377
|
-
LoggerInstance.debug("createBridgeComponent render Info",
|
|
2373
|
+
LoggerInstance.debug("createBridgeComponent render Info", r);
|
|
2378
2374
|
const {
|
|
2379
2375
|
moduleName: s,
|
|
2380
|
-
dom:
|
|
2381
|
-
basename:
|
|
2376
|
+
dom: a,
|
|
2377
|
+
basename: l,
|
|
2382
2378
|
memoryRoute: i,
|
|
2383
2379
|
hashRoute: c,
|
|
2384
2380
|
...u
|
|
2385
|
-
} =
|
|
2386
|
-
t.set(
|
|
2387
|
-
const d = await ((_ = (E = (g =
|
|
2381
|
+
} = r, p = Vue.createApp(n.rootComponent, u);
|
|
2382
|
+
t.set(a, p);
|
|
2383
|
+
const d = await ((_ = (E = (g = o == null ? void 0 : o.bridgeHook) == null ? void 0 : g.lifecycle) == null ? void 0 : E.beforeBridgeRender) == null ? void 0 : _.emit(r)), m = d && typeof d == "object" && (d != null && d.extraProps) ? d == null ? void 0 : d.extraProps : {}, y = n.appOptions({
|
|
2388
2384
|
app: p,
|
|
2389
|
-
basename:
|
|
2385
|
+
basename: l,
|
|
2390
2386
|
memoryRoute: i,
|
|
2391
2387
|
hashRoute: c,
|
|
2392
2388
|
...u,
|
|
@@ -2394,10 +2390,10 @@ function createBridgeComponent(n) {
|
|
|
2394
2390
|
});
|
|
2395
2391
|
if (y != null && y.router) {
|
|
2396
2392
|
let b, v = y.router.getRoutes();
|
|
2397
|
-
|
|
2393
|
+
r.memoryRoute ? b = VueRouter.createMemoryHistory(r.basename) : r.hashRoute ? (b = VueRouter.createWebHashHistory(), v = v.map((S) => ({
|
|
2398
2394
|
...S,
|
|
2399
|
-
path:
|
|
2400
|
-
}))) : b = VueRouter.createWebHistory(
|
|
2395
|
+
path: r.basename + S.path
|
|
2396
|
+
}))) : b = VueRouter.createWebHistory(r.basename);
|
|
2401
2397
|
const I = VueRouter.createRouter({
|
|
2402
2398
|
...y.router.options,
|
|
2403
2399
|
history: b,
|
|
@@ -2408,11 +2404,11 @@ function createBridgeComponent(n) {
|
|
|
2408
2404
|
router: I
|
|
2409
2405
|
}), i && await I.push(i.entryPath), p.use(I);
|
|
2410
2406
|
}
|
|
2411
|
-
p.mount(
|
|
2407
|
+
p.mount(a);
|
|
2412
2408
|
},
|
|
2413
|
-
destroy(
|
|
2414
|
-
LoggerInstance.debug("createBridgeComponent destroy Info",
|
|
2415
|
-
const s = t.get(
|
|
2409
|
+
destroy(r) {
|
|
2410
|
+
LoggerInstance.debug("createBridgeComponent destroy Info", r);
|
|
2411
|
+
const s = t.get(r == null ? void 0 : r.dom);
|
|
2416
2412
|
s == null || s.unmount();
|
|
2417
2413
|
}
|
|
2418
2414
|
});
|
|
@@ -2433,12 +2429,12 @@ const RemoteApp = /* @__PURE__ */ defineComponent({
|
|
|
2433
2429
|
},
|
|
2434
2430
|
inheritAttrs: !1,
|
|
2435
2431
|
setup(n) {
|
|
2436
|
-
const t = ref(null),
|
|
2432
|
+
const t = ref(null), o = ref(null), r = ref(""), s = useRoute(), a = getInstance(), l = useAttrs(), i = async () => {
|
|
2437
2433
|
var m, y, g, E;
|
|
2438
2434
|
const u = (m = n.providerInfo) == null ? void 0 : m.call(n);
|
|
2439
|
-
|
|
2435
|
+
o.value = u;
|
|
2440
2436
|
let p = {
|
|
2441
|
-
...
|
|
2437
|
+
...l,
|
|
2442
2438
|
moduleName: n.moduleName,
|
|
2443
2439
|
dom: t.value,
|
|
2444
2440
|
basename: n.basename,
|
|
@@ -2446,16 +2442,16 @@ const RemoteApp = /* @__PURE__ */ defineComponent({
|
|
|
2446
2442
|
hashRoute: n.hashRoute
|
|
2447
2443
|
};
|
|
2448
2444
|
LoggerInstance.debug("createRemoteComponent LazyComponent render >>>", p);
|
|
2449
|
-
const d = await ((E = (g = (y =
|
|
2445
|
+
const d = await ((E = (g = (y = a == null ? void 0 : a.bridgeHook) == null ? void 0 : y.lifecycle) == null ? void 0 : g.beforeBridgeRender) == null ? void 0 : E.emit(p)) || {};
|
|
2450
2446
|
p = {
|
|
2451
2447
|
...p,
|
|
2452
2448
|
...d.extraProps
|
|
2453
2449
|
}, u.render(p);
|
|
2454
2450
|
}, c = watch(() => s == null ? void 0 : s.path, (u) => {
|
|
2455
|
-
u !== s.path && i(),
|
|
2451
|
+
u !== s.path && i(), r.value !== "" && r.value !== u && (LoggerInstance.debug("createRemoteComponent dispatchPopstateEnv >>>", {
|
|
2456
2452
|
...n,
|
|
2457
2453
|
pathname: s.path
|
|
2458
|
-
}), e()),
|
|
2454
|
+
}), e()), r.value = u;
|
|
2459
2455
|
});
|
|
2460
2456
|
return onMounted(() => {
|
|
2461
2457
|
i();
|
|
@@ -2463,7 +2459,7 @@ const RemoteApp = /* @__PURE__ */ defineComponent({
|
|
|
2463
2459
|
var u;
|
|
2464
2460
|
LoggerInstance.debug("createRemoteComponent LazyComponent destroy >>>", {
|
|
2465
2461
|
...n
|
|
2466
|
-
}), c(), (u =
|
|
2462
|
+
}), c(), (u = o.value) == null || u.destroy({
|
|
2467
2463
|
dom: t.value
|
|
2468
2464
|
});
|
|
2469
2465
|
}), () => createVNode("div", mergeProps(n.rootAttrs || {}, {
|
|
@@ -2473,31 +2469,31 @@ const RemoteApp = /* @__PURE__ */ defineComponent({
|
|
|
2473
2469
|
});
|
|
2474
2470
|
function createRemoteComponent(n) {
|
|
2475
2471
|
return defineAsyncComponent({
|
|
2476
|
-
__APP_VERSION__: "0.
|
|
2472
|
+
__APP_VERSION__: "0.15.0",
|
|
2477
2473
|
...n.asyncComponentOptions,
|
|
2478
2474
|
//@ts-ignore
|
|
2479
2475
|
loader: async () => {
|
|
2480
2476
|
var c, u;
|
|
2481
2477
|
const t = useRoute();
|
|
2482
|
-
let
|
|
2483
|
-
const
|
|
2484
|
-
|
|
2478
|
+
let o = "/";
|
|
2479
|
+
const r = (u = (c = t == null ? void 0 : t.matched) == null ? void 0 : c[0]) == null ? void 0 : u.path;
|
|
2480
|
+
r && (r.endsWith("/:pathMatch(.*)*") ? o = r.replace("/:pathMatch(.*)*", "") : o = t.matched[0].path);
|
|
2485
2481
|
const s = (n == null ? void 0 : n.export) || "default";
|
|
2486
2482
|
LoggerInstance.debug("createRemoteComponent LazyComponent create >>>", {
|
|
2487
|
-
basename:
|
|
2483
|
+
basename: o,
|
|
2488
2484
|
info: n
|
|
2489
2485
|
});
|
|
2490
|
-
const
|
|
2486
|
+
const a = await n.loader(), l = a && a[Symbol.for("mf_module_id")], i = a[s];
|
|
2491
2487
|
if (LoggerInstance.debug(
|
|
2492
2488
|
"createRemoteComponent LazyComponent loadRemote info >>>",
|
|
2493
|
-
{ moduleName:
|
|
2494
|
-
), s in
|
|
2489
|
+
{ moduleName: l, module: a, exportName: s, basename: o, route: t }
|
|
2490
|
+
), s in a && typeof i == "function")
|
|
2495
2491
|
return {
|
|
2496
2492
|
render() {
|
|
2497
2493
|
return h(RemoteApp, {
|
|
2498
|
-
moduleName:
|
|
2494
|
+
moduleName: l,
|
|
2499
2495
|
providerInfo: i,
|
|
2500
|
-
basename:
|
|
2496
|
+
basename: o,
|
|
2501
2497
|
rootAttrs: n.rootAttrs
|
|
2502
2498
|
});
|
|
2503
2499
|
}
|