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