@module-federation/bridge-vue3 2.0.1 → 2.2.0

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