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