@fulgurjs/federation 6.12.12 → 6.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/bridge-app-react.js +4 -4
- package/dist/bridge-app-vue.js +5 -5
- package/dist/bridge-core.js +4 -4
- package/dist/bridge-errors.js +2 -2
- package/dist/bridge-host-react.js +5 -5
- package/dist/bridge-host-vue.js +5 -5
- package/dist/bridge-session-auto.js +2 -2
- package/dist/{chunk-MUATDGMR.js → chunk-2OHKAD6I.js} +23 -1
- package/dist/{chunk-PPHNZBZX.js → chunk-MBH3TVAS.js} +1 -1
- package/dist/{chunk-YXGV4ZK6.js → chunk-NVJN2ARX.js} +2 -2
- package/dist/{chunk-UTL2F4KF.js → chunk-OQ4CGWNL.js} +1 -1
- package/dist/{chunk-5ODWDP5I.js → chunk-TSPZ3EQ4.js} +1 -1
- package/dist/{chunk-4YTQSOGQ.js → chunk-YHXQHZ3E.js} +3 -1
- package/dist/cli.js +1 -1
- package/dist/context.js +2 -2
- package/dist/index.cjs +191 -94
- package/dist/index.js +191 -94
- package/dist/react-adapter.cjs +72 -37
- package/dist/react-adapter.js +22 -3
- package/dist/react.d.ts +5 -0
- package/dist/runtime-entry.d.ts +5 -0
- package/dist/runtime.js +17 -17
- package/dist/vue-adapter.cjs +87 -12
- package/dist/vue-adapter.d.cts +11 -1
- package/dist/vue-adapter.d.ts +11 -1
- package/dist/vue-adapter.js +71 -14
- package/dist/vue.d.ts +16 -1
- package/docs/en/reference/errors.md +1 -0
- package/docs/zh/reference/errors.md +1 -0
- package/package.json +1 -1
package/dist/react-adapter.cjs
CHANGED
|
@@ -65,6 +65,44 @@ function resolvePageProviderEntries(list) {
|
|
|
65
65
|
return cached;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
// src/runtime/errors.ts
|
|
69
|
+
var ErrorCodes = {
|
|
70
|
+
/** 远程容器加载失败(网络/超时/重试耗尽/熔断) */
|
|
71
|
+
REMOTE_LOAD_FAILED: "MFU-001",
|
|
72
|
+
/** remoteEntry 自报名与 remotes 配置的名称不匹配 */
|
|
73
|
+
REMOTE_NAME_MISMATCH: "MFU-002",
|
|
74
|
+
/** strictVersion 开启且共享版本不满足 */
|
|
75
|
+
SHARE_STRICT_VERSION: "MFU-003",
|
|
76
|
+
/** 共享模块缺失且无本地 fallback(import: false) */
|
|
77
|
+
SHARE_NOT_AVAILABLE: "MFU-004",
|
|
78
|
+
/** 同一容器用不同 share scope 重复 init */
|
|
79
|
+
CONTAINER_REINIT_CONFLICT: "MFU-005",
|
|
80
|
+
/** 请求的模块未被该远程 exposes */
|
|
81
|
+
MODULE_NOT_EXPOSED: "MFU-006",
|
|
82
|
+
/** 预加载失败 */
|
|
83
|
+
PRELOAD_FAILED: "MFU-007",
|
|
84
|
+
/** 未知远程 */
|
|
85
|
+
REMOTE_UNKNOWN: "MFU-008",
|
|
86
|
+
/** 加载到的模块没有任何导出(常见:exposes 指向了不导出内容的文件) */
|
|
87
|
+
EMPTY_EXPORTS: "MFU-009",
|
|
88
|
+
/** singleton 共享协商版本与消费方 requiredVersion 不一致(使用作用域版本,仅告警) */
|
|
89
|
+
SINGLETON_SKEW: "MFU-010",
|
|
90
|
+
/** setup 生命周期入口导出形态非法(默认导出不是函数,或具名 onSession 不是函数) */
|
|
91
|
+
SETUP_INVALID_EXPORT: "MFU-011",
|
|
92
|
+
/** setup/onSession 执行抛错(该次 loadRemote 拒绝;仅清失败阶段缓存,允许重试) */
|
|
93
|
+
SETUP_RUN_FAILED: "MFU-012",
|
|
94
|
+
/** 远程声明了 onSession 但宿主 AppContext 未提供 sessionKey(登录代次) */
|
|
95
|
+
SETUP_SESSION_KEY_MISSING: "MFU-013",
|
|
96
|
+
/** setup/onSession 执行的同步段内递归 loadRemote 同一远程 */
|
|
97
|
+
SETUP_RECURSION: "MFU-014",
|
|
98
|
+
/** 远程模块在组件消费边界导出的不是可渲染组件(适配器实测导出形态后报出) */
|
|
99
|
+
COMPONENT_EXPORT_INVALID: "MFU-018",
|
|
100
|
+
/** Vue 组件直渲染的渲染器与共享作用域实际收敛的 Vue 实例不一致(身份证据已证实) */
|
|
101
|
+
VUE_RUNTIME_IDENTITY_MISMATCH: "MFU-019",
|
|
102
|
+
/** 远程组件子树内部渲染错误(插件边界观测:setup/render/嵌套异步组件拒绝;原始异常保留在 cause) */
|
|
103
|
+
REMOTE_RENDER_ERROR: "MFU-020"
|
|
104
|
+
};
|
|
105
|
+
|
|
68
106
|
// src/pages.ts
|
|
69
107
|
var normSpec = (s) => s.replace(/^[./]+/, "").replace(/\/+$/, "");
|
|
70
108
|
var hasParam = (route) => /(^|\/):[\w]+/.test(route);
|
|
@@ -205,42 +243,6 @@ function definePages(pages, options = {}) {
|
|
|
205
243
|
return pages;
|
|
206
244
|
}
|
|
207
245
|
|
|
208
|
-
// src/runtime/errors.ts
|
|
209
|
-
var ErrorCodes = {
|
|
210
|
-
/** 远程容器加载失败(网络/超时/重试耗尽/熔断) */
|
|
211
|
-
REMOTE_LOAD_FAILED: "MFU-001",
|
|
212
|
-
/** remoteEntry 自报名与 remotes 配置的名称不匹配 */
|
|
213
|
-
REMOTE_NAME_MISMATCH: "MFU-002",
|
|
214
|
-
/** strictVersion 开启且共享版本不满足 */
|
|
215
|
-
SHARE_STRICT_VERSION: "MFU-003",
|
|
216
|
-
/** 共享模块缺失且无本地 fallback(import: false) */
|
|
217
|
-
SHARE_NOT_AVAILABLE: "MFU-004",
|
|
218
|
-
/** 同一容器用不同 share scope 重复 init */
|
|
219
|
-
CONTAINER_REINIT_CONFLICT: "MFU-005",
|
|
220
|
-
/** 请求的模块未被该远程 exposes */
|
|
221
|
-
MODULE_NOT_EXPOSED: "MFU-006",
|
|
222
|
-
/** 预加载失败 */
|
|
223
|
-
PRELOAD_FAILED: "MFU-007",
|
|
224
|
-
/** 未知远程 */
|
|
225
|
-
REMOTE_UNKNOWN: "MFU-008",
|
|
226
|
-
/** 加载到的模块没有任何导出(常见:exposes 指向了不导出内容的文件) */
|
|
227
|
-
EMPTY_EXPORTS: "MFU-009",
|
|
228
|
-
/** singleton 共享协商版本与消费方 requiredVersion 不一致(使用作用域版本,仅告警) */
|
|
229
|
-
SINGLETON_SKEW: "MFU-010",
|
|
230
|
-
/** setup 生命周期入口导出形态非法(默认导出不是函数,或具名 onSession 不是函数) */
|
|
231
|
-
SETUP_INVALID_EXPORT: "MFU-011",
|
|
232
|
-
/** setup/onSession 执行抛错(该次 loadRemote 拒绝;仅清失败阶段缓存,允许重试) */
|
|
233
|
-
SETUP_RUN_FAILED: "MFU-012",
|
|
234
|
-
/** 远程声明了 onSession 但宿主 AppContext 未提供 sessionKey(登录代次) */
|
|
235
|
-
SETUP_SESSION_KEY_MISSING: "MFU-013",
|
|
236
|
-
/** setup/onSession 执行的同步段内递归 loadRemote 同一远程 */
|
|
237
|
-
SETUP_RECURSION: "MFU-014",
|
|
238
|
-
/** 远程模块在组件消费边界导出的不是可渲染组件(适配器实测导出形态后报出) */
|
|
239
|
-
COMPONENT_EXPORT_INVALID: "MFU-018",
|
|
240
|
-
/** Vue 组件直渲染的渲染器与共享作用域实际收敛的 Vue 实例不一致(身份证据已证实) */
|
|
241
|
-
VUE_RUNTIME_IDENTITY_MISMATCH: "MFU-019"
|
|
242
|
-
};
|
|
243
|
-
|
|
244
246
|
// src/host-pages-core.ts
|
|
245
247
|
var cleanCompName = (spec) => "Fulgurjs_" + spec.replace(/[^A-Za-z0-9_-]/g, "_");
|
|
246
248
|
function defaultDeriveSpec2(route) {
|
|
@@ -267,6 +269,25 @@ function noRenderableExportError(spec, inner) {
|
|
|
267
269
|
}
|
|
268
270
|
);
|
|
269
271
|
}
|
|
272
|
+
function reportRemoteObservation(info) {
|
|
273
|
+
const rt = globalThis.__FULGURJS_RUNTIME__;
|
|
274
|
+
if (typeof rt?.reportRemoteError === "function") {
|
|
275
|
+
try {
|
|
276
|
+
rt.reportRemoteError(info);
|
|
277
|
+
return;
|
|
278
|
+
} catch {
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
try {
|
|
282
|
+
;
|
|
283
|
+
globalThis.dispatchEvent?.(
|
|
284
|
+
new CustomEvent("fulgurjs:error", { detail: info })
|
|
285
|
+
);
|
|
286
|
+
} catch {
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
var remoteNameOf = (spec) => spec.slice(0, spec.indexOf("/")) || spec;
|
|
290
|
+
var moduleNameOf = (spec) => spec.includes("/") ? spec.slice(spec.indexOf("/") + 1) : void 0;
|
|
270
291
|
function createHostPagesCore(options) {
|
|
271
292
|
const { pages, remotePrefixes, deriveSpec, schema, strict, base } = options;
|
|
272
293
|
definePages(pages, { deriveSpec, remotes: remotePrefixes, schema, strict });
|
|
@@ -480,13 +501,16 @@ function RemoteLoader({ spec, opts, loadRemote, beforeLoad, attempt, sessionKey,
|
|
|
480
501
|
if (timer !== void 0) clearTimeout(timer);
|
|
481
502
|
const inner = ns?.default ?? ns;
|
|
482
503
|
if (!isValidComponentType(inner)) {
|
|
483
|
-
|
|
504
|
+
const err = noRenderableExportError(spec, inner);
|
|
505
|
+
reportRemoteObservation({ remote: remoteNameOf(spec), error: err });
|
|
506
|
+
commit({ phase: "error", error: err });
|
|
484
507
|
return;
|
|
485
508
|
}
|
|
486
509
|
commit({ phase: "ready", Comp: inner, providers });
|
|
487
510
|
},
|
|
488
511
|
(err) => {
|
|
489
512
|
if (timer !== void 0) clearTimeout(timer);
|
|
513
|
+
reportRemoteObservation({ remote: remoteNameOf(spec), error: err });
|
|
490
514
|
commit({ phase: "error", error: err });
|
|
491
515
|
}
|
|
492
516
|
);
|
|
@@ -515,6 +539,16 @@ var RemoteRenderBoundary = class extends import_react.Component {
|
|
|
515
539
|
}
|
|
516
540
|
componentDidCatch(error, info) {
|
|
517
541
|
console.error("[fulgurjs] \u8FDC\u7A0B\u7EC4\u4EF6\u6E32\u67D3\u5F02\u5E38\uFF08remoteComponent \u5185\u7F6E\u8FB9\u754C\uFF09\uFF1A", error, info?.componentStack ?? "");
|
|
542
|
+
const spec = this.props.spec;
|
|
543
|
+
const remote = remoteNameOf(spec);
|
|
544
|
+
reportRemoteObservation({
|
|
545
|
+
remote,
|
|
546
|
+
error: Object.assign(new Error(`\u8FDC\u7A0B\u7EC4\u4EF6 "${spec}" \u5B50\u6811\u6E32\u67D3\u51FA\u9519\uFF1B\u539F\u59CB\u5F02\u5E38\u5728 cause\u3002`), {
|
|
547
|
+
code: ErrorCodes.REMOTE_RENDER_ERROR,
|
|
548
|
+
details: { remote, module: moduleNameOf(spec), phase: "render" },
|
|
549
|
+
cause: error
|
|
550
|
+
})
|
|
551
|
+
});
|
|
518
552
|
}
|
|
519
553
|
retry = () => {
|
|
520
554
|
this.props.onRetry();
|
|
@@ -535,6 +569,7 @@ function buildRemoteComponent(spec, opts, loadRemote, beforeLoad) {
|
|
|
535
569
|
RemoteRenderBoundary,
|
|
536
570
|
{
|
|
537
571
|
key: attempt,
|
|
572
|
+
spec,
|
|
538
573
|
onRetry: retry,
|
|
539
574
|
render: (boundaryError) => boundaryError !== null ? renderErrorNode(opts.error, boundaryError, retry, "render") : (0, import_react.createElement)(RemoteLoader, {
|
|
540
575
|
spec,
|
package/dist/react-adapter.js
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
cleanCompName,
|
|
3
3
|
createHostPagesCore,
|
|
4
|
+
moduleNameOf,
|
|
4
5
|
noRenderableExportError,
|
|
5
6
|
readSessionKey,
|
|
7
|
+
remoteNameOf,
|
|
8
|
+
reportRemoteObservation,
|
|
6
9
|
resolvePageProviderEntries,
|
|
7
10
|
shouldResetSessionCache
|
|
8
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-2OHKAD6I.js";
|
|
9
12
|
import "./chunk-TSXZ7TWA.js";
|
|
10
|
-
import
|
|
13
|
+
import {
|
|
14
|
+
ErrorCodes
|
|
15
|
+
} from "./chunk-YHXQHZ3E.js";
|
|
11
16
|
|
|
12
17
|
// src/react-adapter.ts
|
|
13
18
|
import {
|
|
@@ -176,13 +181,16 @@ function RemoteLoader({ spec, opts, loadRemote, beforeLoad, attempt, sessionKey,
|
|
|
176
181
|
if (timer !== void 0) clearTimeout(timer);
|
|
177
182
|
const inner = ns?.default ?? ns;
|
|
178
183
|
if (!isValidComponentType(inner)) {
|
|
179
|
-
|
|
184
|
+
const err = noRenderableExportError(spec, inner);
|
|
185
|
+
reportRemoteObservation({ remote: remoteNameOf(spec), error: err });
|
|
186
|
+
commit({ phase: "error", error: err });
|
|
180
187
|
return;
|
|
181
188
|
}
|
|
182
189
|
commit({ phase: "ready", Comp: inner, providers });
|
|
183
190
|
},
|
|
184
191
|
(err) => {
|
|
185
192
|
if (timer !== void 0) clearTimeout(timer);
|
|
193
|
+
reportRemoteObservation({ remote: remoteNameOf(spec), error: err });
|
|
186
194
|
commit({ phase: "error", error: err });
|
|
187
195
|
}
|
|
188
196
|
);
|
|
@@ -211,6 +219,16 @@ var RemoteRenderBoundary = class extends Component {
|
|
|
211
219
|
}
|
|
212
220
|
componentDidCatch(error, info) {
|
|
213
221
|
console.error("[fulgurjs] \u8FDC\u7A0B\u7EC4\u4EF6\u6E32\u67D3\u5F02\u5E38\uFF08remoteComponent \u5185\u7F6E\u8FB9\u754C\uFF09\uFF1A", error, info?.componentStack ?? "");
|
|
222
|
+
const spec = this.props.spec;
|
|
223
|
+
const remote = remoteNameOf(spec);
|
|
224
|
+
reportRemoteObservation({
|
|
225
|
+
remote,
|
|
226
|
+
error: Object.assign(new Error(`\u8FDC\u7A0B\u7EC4\u4EF6 "${spec}" \u5B50\u6811\u6E32\u67D3\u51FA\u9519\uFF1B\u539F\u59CB\u5F02\u5E38\u5728 cause\u3002`), {
|
|
227
|
+
code: ErrorCodes.REMOTE_RENDER_ERROR,
|
|
228
|
+
details: { remote, module: moduleNameOf(spec), phase: "render" },
|
|
229
|
+
cause: error
|
|
230
|
+
})
|
|
231
|
+
});
|
|
214
232
|
}
|
|
215
233
|
retry = () => {
|
|
216
234
|
this.props.onRetry();
|
|
@@ -231,6 +249,7 @@ function buildRemoteComponent(spec, opts, loadRemote, beforeLoad) {
|
|
|
231
249
|
RemoteRenderBoundary,
|
|
232
250
|
{
|
|
233
251
|
key: attempt,
|
|
252
|
+
spec,
|
|
234
253
|
onRetry: retry,
|
|
235
254
|
render: (boundaryError) => boundaryError !== null ? renderErrorNode(opts.error, boundaryError, retry, "render") : createElement(RemoteLoader, {
|
|
236
255
|
spec,
|
package/dist/react.d.ts
CHANGED
|
@@ -387,6 +387,11 @@ declare function createRuntime(): {
|
|
|
387
387
|
module: string;
|
|
388
388
|
};
|
|
389
389
|
clearSessionState: () => void;
|
|
390
|
+
/** 适配器边界的观测上报入口(P03):与运行时内部 emitError 同一通路、hook 与全页去重 */
|
|
391
|
+
reportRemoteError: (info: {
|
|
392
|
+
remote: string;
|
|
393
|
+
error: unknown;
|
|
394
|
+
}) => void;
|
|
390
395
|
};
|
|
391
396
|
type FgRuntime = ReturnType<typeof createRuntime>;
|
|
392
397
|
/** 插件版本(与 package.json 同步维护于 src/version.ts,测试拦截漂移;用于跨源副本一致性诊断) */
|
package/dist/runtime-entry.d.ts
CHANGED
|
@@ -174,6 +174,11 @@ declare function createRuntime(): {
|
|
|
174
174
|
module: string;
|
|
175
175
|
};
|
|
176
176
|
clearSessionState: () => void;
|
|
177
|
+
/** 适配器边界的观测上报入口(P03):与运行时内部 emitError 同一通路、hook 与全页去重 */
|
|
178
|
+
reportRemoteError: (info: {
|
|
179
|
+
remote: string;
|
|
180
|
+
error: unknown;
|
|
181
|
+
}) => void;
|
|
177
182
|
};
|
|
178
183
|
type FgRuntime = ReturnType<typeof createRuntime>;
|
|
179
184
|
/** 插件版本(与 package.json 同步维护于 src/version.ts,测试拦截漂移;用于跨源副本一致性诊断) */
|
package/dist/runtime.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
var
|
|
1
|
+
var Pe=/^v?(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z.-]+)?$/;function U(c){let d=Pe.exec(String(c).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function _e(c,d){if(c.length===0&&d.length===0)return 0;if(c.length===0)return 1;if(d.length===0)return-1;let f=Math.max(c.length,d.length);for(let l=0;l<f;l++){let m=c[l],S=d[l];if(m===void 0)return-1;if(S===void 0)return 1;let b=/^\d+$/.test(m),P=/^\d+$/.test(S);if(b&&P){let L=Number(m)-Number(S);if(L!==0)return L}else{if(b!==P)return b?-1:1;if(m!==S)return m<S?-1:1}}return 0}function I(c,d){let f=U(c),l=U(d);return!f||!l?c<d?-1:c>d?1:0:f.major!==l.major?f.major-l.major:f.minor!==l.minor?f.minor-l.minor:f.patch!==l.patch?f.patch-l.patch:_e(f.pre,l.pre)}var $e=/^[a-z]+[+:-]/i;function j(c,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||$e.test(f)?!0:f.split("||").some(l=>ke(c,l.trim()))}function ke(c,d){if(!d||d==="*")return!U(c)?.pre.length;let f=d.split(/\s+-\s+/);if(f.length===2){let S=f[0].trim(),b=f[1].trim();return!(!j(c,`>=${S}`)||!j(c,`<=${b}`))}let l=U(c);if(!l)return!1;let m=Oe(d);if(m===null)return!0;for(let S of m)if(!Ie(l,c,S))return!1;return!(l.pre.length>0&&!m.some(S=>S.ver.pre.length>0)&&!m.some(b=>b.ver.major===l.major&&b.ver.minor===l.minor&&b.ver.patch===l.patch))}function Oe(c){let d=[],f=c.trim().split(/\s+/).filter(Boolean);if(f.length===0)return null;for(let l of f){let m=/^(>=|<=|>|<|=|\^|~)?(.*)$/.exec(l);if(!m)return null;let S=m[1],b=m[2],P=Me(S,b);if(P===null)return null;d.push(...P)}return d}function Me(c,d){let f=Le(d);if(!f)return null;let{ver:l,partial:m}=f;switch(c){case"^":{let S=Te(l);return S?[{op:">=",ver:l},{op:"<",ver:S}]:null}case"~":{let S=m>=2?{major:l.major,minor:l.minor+1,patch:0,pre:[]}:{major:l.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:l},{op:"<",ver:S}]}case">=":return[{op:">=",ver:l}];case">":return m===1?[{op:">=",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:">",ver:l}];case"<":return m===1?[{op:"<",ver:{major:l.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:l.major,minor:l.minor,patch:0,pre:[]}}]:[{op:"<",ver:l}];case"<=":return[{op:"<=",ver:l}];case"=":case void 0:return m===1?[{op:">=",ver:l},{op:"<",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:l},{op:"<",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:l}];default:return null}}function Te(c){return c.major>0?{major:c.major+1,minor:0,patch:0,pre:[]}:c.minor>0?{major:0,minor:c.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:c.patch+1,pre:[]}}function Le(c){let d=c.replace(/^v/,"").trim();if(!d||d==="*"||d==="x"||d==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=d.split("."),l=[],m=0;for(let P of f.slice(0,3))if(/^\d+$/.test(P))l.push(Number(P)),m++;else{if(P==="x"||P==="X"||P==="*")break;break}let S=d.split("-"),b=S.length>1?S.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:l[0]??0,minor:l[1]??0,patch:l[2]??0,pre:b},partial:m}}function Ae(c,d){switch(d){case">=":return c>=0;case">":return c>0;case"<":return c<0;case"<=":return c<=0;case"=":return c===0}}function Ie(c,d,f){let l=`${c.major}.${c.minor}.${c.patch}`+(c.pre.length?`-${c.pre.join(".")}`:"");if(f.upper)return!(!(I(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(I(l,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=I(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),S=Ae(m,f.op);return f.ver.pre.length>0&&c.pre.length===0&&(f.op===">"||f.op==="<")?!1:S}var E=class extends Error{code;details;constructor(d,f,l,m){super(`[fulgurjs:${d}] ${f}`,m),this.name="FgError",this.code=d,this.details=l}},R={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014",COMPONENT_EXPORT_INVALID:"MFU-018",VUE_RUNTIME_IDENTITY_MISMATCH:"MFU-019",REMOTE_RENDER_ERROR:"MFU-020"};function te(c){if(typeof c!="object"||c===null)return!1;let d=globalThis,f=d.__FULGURJS_REPORTED_ERRORS__??=new WeakSet;return f.has(c)?!0:(f.add(c),!1)}var oe="6.13.1";var je="__fulgurjsSetup",xe="__FULGURJS_APP_CONFIG__",G=15e3,se=2,Ue=5,Ne=3e4,Ce=4e3,Fe=.2;function Ve(){let c=Object.create(null),d=new Map,f=[],l=new Set,m=new Map,S=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,P=new Map,L=new WeakMap,N=new WeakMap,$={},ae=()=>{for(let e of f)try{e.init?.($)}catch(r){console.warn("[fulgurjs] \u8FD0\u884C\u65F6\u6269\u5C55\u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BE5\u6269\u5C55\u5C06\u4E0D\u53EF\u7528\uFF1A",e.name,r)}},C=new Map,F,V=e=>{let r=C.get(e);return r||C.set(e,r={}),r},X=()=>globalThis[xe]??{};async function J(e,r,n,o){let t=u=>{if(u instanceof E)return v({remote:e,error:u}),u;let a=new E(R.SETUP_RUN_FAILED,`\u73B0\u8C61\uFF1A\u8FDC\u7A0B\u5E94\u7528 "${e}" \u7684 ${o} \u521D\u59CB\u5316\u5931\u8D25\u3002
|
|
2
2
|
\u539F\u56E0\uFF1A${String(u?.message??u)}
|
|
3
|
-
\u4FEE\u6CD5\uFF1A\u68C0\u67E5\u5E76\u4FEE\u590D\u8BE5 ${o} \u51FD\u6570\u540E\u91CD\u65B0\u52A0\u8F7D\uFF1B\u5931\u8D25\u7F13\u5B58\u5DF2\u6E05\u9664\uFF0C\u53EF\u4EE5\u76F4\u63A5\u91CD\u8BD5\u3002`,{remote:e,phase:o},{cause:u});
|
|
3
|
+
\u4FEE\u6CD5\uFF1A\u68C0\u67E5\u5E76\u4FEE\u590D\u8BE5 ${o} \u51FD\u6570\u540E\u91CD\u65B0\u52A0\u8F7D\uFF1B\u5931\u8D25\u7F13\u5B58\u5DF2\u6E05\u9664\uFF0C\u53EF\u4EE5\u76F4\u63A5\u91CD\u8BD5\u3002`,{remote:e,phase:o},{cause:u});return v({remote:e,error:a}),a};F=e;let s;try{s=r(n)}catch(u){throw t(u)}finally{F=void 0}try{await s}catch(u){throw t(u)}}async function ce(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await H(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default,u=t?.onSession!==void 0||t?.globalComponents!==void 0||t?.pageProviders!==void 0;if(s!==void 0&&typeof s!="function"||!s&&!u)throw new E(R.SETUP_INVALID_EXPORT,`\u73B0\u8C61\uFF1A\u8FDC\u7A0B\u5E94\u7528 "${e.name}" \u7684 setup \u6A21\u5757 "${n}" \u65E0\u6CD5\u521D\u59CB\u5316\u3002
|
|
4
4
|
\u539F\u56E0\uFF1A\u9ED8\u8BA4\u5BFC\u51FA\u7C7B\u578B\u4E3A ${t==null?String(t):typeof s}\uFF0C\u4E14\u6A21\u5757\u4E0D\u6EE1\u8DB3\u521D\u59CB\u5316\u58F0\u660E\u5951\u7EA6\u3002
|
|
5
|
-
\u4FEE\u6CD5\uFF1A\u9ED8\u8BA4\u5BFC\u51FA\u521D\u59CB\u5316\u51FD\u6570\uFF0C\u6216\u53EA\u58F0\u660E onSession/globalComponents/pageProviders\uFF1B\u7A7A\u6A21\u5757\u4E0E\u975E\u51FD\u6570\u9ED8\u8BA4\u5BFC\u51FA\u65E0\u6548\u3002`,{remote:e.name,module:n});if(t.onSession!==void 0&&typeof t.onSession!="function")throw new E(
|
|
5
|
+
\u4FEE\u6CD5\uFF1A\u9ED8\u8BA4\u5BFC\u51FA\u521D\u59CB\u5316\u51FD\u6570\uFF0C\u6216\u53EA\u58F0\u660E onSession/globalComponents/pageProviders\uFF1B\u7A7A\u6A21\u5757\u4E0E\u975E\u51FD\u6570\u9ED8\u8BA4\u5BFC\u51FA\u65E0\u6548\u3002`,{remote:e.name,module:n});if(t.onSession!==void 0&&typeof t.onSession!="function")throw new E(R.SETUP_INVALID_EXPORT,`\u73B0\u8C61\uFF1A\u8FDC\u7A0B\u5E94\u7528 "${e.name}" \u7684 setup \u6A21\u5757 "${n}" \u65E0\u6CD5\u521D\u59CB\u5316\u3002
|
|
6
6
|
\u539F\u56E0\uFF1AonSession \u5BFC\u51FA\u7C7B\u578B\u4E3A ${typeof t.onSession}\uFF0C\u5E94\u4E3A\u51FD\u6570\u3002
|
|
7
|
-
\u4FEE\u6CD5\uFF1A\u5C06 onSession \u6539\u4E3A\u5177\u540D\u5BFC\u51FA\u7684\u51FD\u6570\uFF0C\u6216\u5220\u9664\u8BE5\u5BFC\u51FA\u3002`,{remote:e.name,module:n});if(o.setupExports=t,t.globalComponents!==void 0){if(typeof t.globalComponents!="object"||t.globalComponents===null||Array.isArray(t.globalComponents))throw new E(
|
|
7
|
+
\u4FEE\u6CD5\uFF1A\u5C06 onSession \u6539\u4E3A\u5177\u540D\u5BFC\u51FA\u7684\u51FD\u6570\uFF0C\u6216\u5220\u9664\u8BE5\u5BFC\u51FA\u3002`,{remote:e.name,module:n});if(o.setupExports=t,t.globalComponents!==void 0){if(typeof t.globalComponents!="object"||t.globalComponents===null||Array.isArray(t.globalComponents))throw new E(R.SETUP_INVALID_EXPORT,`\u73B0\u8C61\uFF1A\u8FDC\u7A0B\u5E94\u7528 "${e.name}" \u7684 setup \u6A21\u5757 "${n}" \u65E0\u6CD5\u521D\u59CB\u5316\u3002
|
|
8
8
|
\u539F\u56E0\uFF1AglobalComponents \u5BFC\u51FA\u7C7B\u578B\u4E3A ${Array.isArray(t.globalComponents)?"array":typeof t.globalComponents}\uFF0C\u5E94\u4E3A\u5BF9\u8C61\uFF08\u952E=\u7EC4\u4EF6\u6CE8\u518C\u540D\uFF0C\u503C=\u7EC4\u4EF6\uFF09\u3002
|
|
9
|
-
\u4FEE\u6CD5\uFF1A\u6539\u4E3A export const globalComponents = { \u7EC4\u4EF6\u6CE8\u518C\u540D: \u7EC4\u4EF6 } \u5F62\u6001\uFF0C\u6216\u5220\u9664\u8BE5\u5BFC\u51FA\u3002`,{remote:e.name,module:n});o.globalComponents=t.globalComponents}if(t.pageProviders!==void 0){if(!Array.isArray(t.pageProviders))throw new E(
|
|
9
|
+
\u4FEE\u6CD5\uFF1A\u6539\u4E3A export const globalComponents = { \u7EC4\u4EF6\u6CE8\u518C\u540D: \u7EC4\u4EF6 } \u5F62\u6001\uFF0C\u6216\u5220\u9664\u8BE5\u5BFC\u51FA\u3002`,{remote:e.name,module:n});o.globalComponents=t.globalComponents}if(t.pageProviders!==void 0){if(!Array.isArray(t.pageProviders))throw new E(R.SETUP_INVALID_EXPORT,`\u73B0\u8C61\uFF1A\u8FDC\u7A0B\u5E94\u7528 "${e.name}" \u7684 setup \u6A21\u5757 "${n}" \u65E0\u6CD5\u521D\u59CB\u5316\u3002
|
|
10
10
|
\u539F\u56E0\uFF1ApageProviders \u5BFC\u51FA\u7C7B\u578B\u4E3A ${typeof t.pageProviders}\uFF0C\u5E94\u4E3A\u6570\u7EC4\uFF08\u6BCF\u9879=\u7EC4\u4EF6\u6216\u96F6\u53C2 loader\uFF09\u3002
|
|
11
|
-
\u4FEE\u6CD5\uFF1A\u6539\u4E3A export const pageProviders = [AppProvider] \u6216 [() => import('./X').then((m) => m.AppProvider)] \u5F62\u6001\uFF0C\u6216\u5220\u9664\u8BE5\u5BFC\u51FA\u3002`,{remote:e.name,module:n});o.pageProviders=t.pageProviders}s&&await
|
|
11
|
+
\u4FEE\u6CD5\uFF1A\u6539\u4E3A export const pageProviders = [AppProvider] \u6216 [() => import('./X').then((m) => m.AppProvider)] \u5F62\u6001\uFF0C\u6216\u5220\u9664\u8BE5\u5BFC\u51FA\u3002`,{remote:e.name,module:n});o.pageProviders=t.pageProviders}s&&await J(e.name,s,{appContext:X(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(t){throw e.debug.setup="failed",t?.code&&v({remote:e.name,error:t}),o.setupExports=void 0,o.globalComponents=void 0,o.pageProviders=void 0,t}}async function le(e,r,n){let o=X(),t=o?.sessionKey;if(typeof t!="string"||t===""){let y=new E(R.SETUP_SESSION_KEY_MISSING,`\u73B0\u8C61\uFF1A\u8FDC\u7A0B\u5E94\u7528 "${e.name}" \u58F0\u660E\u4E86 onSession\uFF0C\u4F46\u5BBF\u4E3B\u5C1A\u672A\u63D0\u4F9B\u6709\u6548\u7684 AppContext.sessionKey\u3002
|
|
12
12
|
\u539F\u56E0\uFF1A\u5F53\u524D\u503C\u4E3A ${t===void 0?"\u7F3A\u5931":JSON.stringify(t)}\u3002
|
|
13
|
-
\u4FEE\u6CD5\uFF1A\u5BBF\u4E3B\u6BCF\u6B21\u767B\u5F55\u6216\u91CD\u767B\u65F6\u751F\u6210\u65B0\u7684\u975E\u654F\u611F\u767B\u5F55\u4EE3\u6B21 ID\uFF0C\u5E76\u5728\u52A0\u8F7D\u8FDC\u7A0B\u9875\u9762\u524D\u8C03\u7528 provideAppContext({ ..., sessionKey: '\u767B\u5F55\u4EE3\u6B21 ID' })\uFF1B\u4E0D\u8981\u4F7F\u7528 token \u539F\u6587\u3002`,{remote:e.name});if(r.sessionPromise&&r.sessionKey===t)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=t;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),a=(async()=>{await u,!s.signal.aborted&&await
|
|
14
|
-
\u539F\u56E0\uFF1A\u5E94\u7528\u8981\u6C42 ${
|
|
13
|
+
\u4FEE\u6CD5\uFF1A\u5BBF\u4E3B\u6BCF\u6B21\u767B\u5F55\u6216\u91CD\u767B\u65F6\u751F\u6210\u65B0\u7684\u975E\u654F\u611F\u767B\u5F55\u4EE3\u6B21 ID\uFF0C\u5E76\u5728\u52A0\u8F7D\u8FDC\u7A0B\u9875\u9762\u524D\u8C03\u7528 provideAppContext({ ..., sessionKey: '\u767B\u5F55\u4EE3\u6B21 ID' })\uFF1B\u4E0D\u8981\u4F7F\u7528 token \u539F\u6587\u3002`,{remote:e.name});throw v({remote:e.name,error:y}),y}if(r.sessionPromise&&r.sessionKey===t)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=t;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),a=(async()=>{await u,!s.signal.aborted&&await J(e.name,n,{appContext:o,sessionKey:t,signal:s.signal},"onSession")})();return r.sessionPromise=a,a.catch(()=>{r.sessionKey===t&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),a}async function ue(e,r){let n=r?.[je];if(typeof n!="string"||n==="")return;let o=V(e.name);o.setupPromise||(o.setupPromise=ce(e,r,n,o).catch(s=>{throw o.setupPromise=void 0,s})),await o.setupPromise;let t=o.setupExports?.onSession;typeof t=="function"&&await le(e,o,t)}function de(){for(let e of C.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let T=e=>c[e]??=Object.create(null);function v(e){if(!te(e.error)){try{$.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}}function fe(e="default"){return T(e),c}function D(e,r,n,o,t={}){let s=T(e||"default"),u=Object.hasOwn(s,r)?s[r]:void 0,a=u&&typeof u=="object"?u:void 0;a||(a=Object.create(null),s[r]=a),!(Object.hasOwn(a,n)&&a[n])&&(a[n]={version:n,get:o,from:t.from??"unknown",eager:!!t.eager,loaded:!!t.loaded})}function pe(e){let r=(n,o,t)=>{if(n===void 0)return;if(!(typeof n=="number"&&(t?Number.isInteger(n)&&n>=0&&n<=10:Number.isFinite(n)&&n>0)))throw new Error(`[fulgurjs] \u8FDC\u7A0B\u5E94\u7528 "${e.name}" \u7684 ${o} \u914D\u7F6E\u65E0\u6548\uFF1A\u5F53\u524D\u4E3A ${String(n)}\uFF0C\u5E94\u4E3A${t?" 0 \u5230 10 \u7684\u6574\u6570":"\u5927\u4E8E 0 \u7684\u6709\u9650\u6570\u5B57"}\u3002\u8BF7\u4FEE\u6B63 registerRemote \u914D\u7F6E\u3002`)};r(e.timeout,"timeout"),r(e.retries,"retries",!0),e.breaker&&(r(e.breaker.threshold,"breaker.threshold"),r(e.breaker.resetMs,"breaker.resetMs"))}function B(e){for(let r of e){pe(r);let n=d.get(r.name);d.set(r.name,{timeout:G,retries:se,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??Ue,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??Ne,state:n?.state??"idle",breakerState:n?.breakerState??{fails:0,openUntil:0},entryInflight:n?.entryInflight??new Map,entryFailCounts:n?.entryFailCounts??new Map,debug:n?.debug??{entry:r.entry,status:"idle",setup:"none"}})}}function me(e){B([e])}function ge(e){f.push(...e),m.clear(),ae()}function A(e,r,n=!1){let o=r.shareScope||"default",t=r.shareKey||e,u=T(o)[t]||{},a=Object.keys(u).filter(i=>!n||r.singleton||u[i].value!==void 0);if(n&&a.length===0)return;let y=r.requiredVersion,g=a.filter(i=>y===void 0||y===!1||j(i,y)),p;if(r.singleton&&a.length>0){let i=a.filter(h=>u[h].loaded);if(p=[...i.length?i:a].sort(I).pop(),!g.includes(p)){let h=u[p],O=`\u73B0\u8C61\uFF1A\u5171\u4EAB\u5355\u4F8B "${t}" \u7684\u5B9E\u9645\u7248\u672C\u4E0D\u6EE1\u8DB3\u5F53\u524D\u5E94\u7528\u8981\u6C42\u3002
|
|
14
|
+
\u539F\u56E0\uFF1A\u5E94\u7528\u8981\u6C42 ${y??"\u4EFB\u610F\u7248\u672C"}\uFF0C\u4F5C\u7528\u57DF\u4E2D\u6709 ${a.join("\u3001")}\uFF1B\u4E3A\u4FDD\u8BC1\u5168\u9875\u53EA\u4F7F\u7528\u4E00\u4E2A\u5B9E\u4F8B\uFF0C\u6700\u7EC8\u590D\u7528 ${h.from} \u63D0\u4F9B\u7684 ${p}\u3002
|
|
15
15
|
\u5F71\u54CD\uFF1A\u53EF\u80FD\u51FA\u73B0\u72B6\u6001\u4E0D\u4E00\u81F4\u6216\u8FD0\u884C\u9519\u8BEF\uFF0C\u5177\u4F53\u53D6\u51B3\u4E8E\u4E24\u7AEF API \u662F\u5426\u517C\u5BB9\u3002
|
|
16
|
-
\u4FEE\u6CD5\uFF1A\u7EDF\u4E00\u5BBF\u4E3B\u4E0E\u8FDC\u7A0B\u7684\u4F9D\u8D56\u7248\u672C\uFF0C\u6216\u6838\u5BF9\u540E\u8C03\u6574 shared.requiredVersion\uFF1B\u82E5\u5FC5\u987B\u62D2\u7EDD\u4E0D\u517C\u5BB9\u7248\u672C\uFF0C\u8BF7\u542F\u7528 strictVersion\u3002`;if(r.strictVersion){let
|
|
17
|
-
\u539F\u56E0\uFF1A\u8981\u6C42\u7248\u672C ${
|
|
18
|
-
\u4FEE\u6CD5\uFF1A\u7EDF\u4E00\u5BBF\u4E3B\u4E0E\u8FDC\u7A0B\u7684\u4F9D\u8D56\u7248\u672C\uFF0C\u6216\u4FEE\u6B63 shared.requiredVersion\u3002`);throw
|
|
16
|
+
\u4FEE\u6CD5\uFF1A\u7EDF\u4E00\u5BBF\u4E3B\u4E0E\u8FDC\u7A0B\u7684\u4F9D\u8D56\u7248\u672C\uFF0C\u6216\u6838\u5BF9\u540E\u8C03\u6574 shared.requiredVersion\uFF1B\u82E5\u5FC5\u987B\u62D2\u7EDD\u4E0D\u517C\u5BB9\u7248\u672C\uFF0C\u8BF7\u542F\u7528 strictVersion\u3002`;if(r.strictVersion){let M=new E(R.SHARE_STRICT_VERSION,O,{shareKey:t,requiredVersion:y});throw v({remote:h.from,error:M}),M}let _=`${o}|${t}|${y??"*"}|${p}|${a.join(",")}`;l.has(_)||(l.add(_),console.warn(`[fulgurjs:MFU-010] ${O}`))}}else if(p=[...g].sort(I).pop(),!p){if(r.strictVersion){let i=new E(R.SHARE_STRICT_VERSION,`\u73B0\u8C61\uFF1A\u5171\u4EAB\u4F5C\u7528\u57DF "${o}" \u4E2D\u627E\u4E0D\u5230\u7B26\u5408\u8981\u6C42\u7684 "${t}"\u3002
|
|
17
|
+
\u539F\u56E0\uFF1A\u8981\u6C42\u7248\u672C ${y}\uFF0C\u5F53\u524D\u53EF\u7528\u7248\u672C\u4E3A ${a.join("\u3001")||"\u65E0"}\u3002
|
|
18
|
+
\u4FEE\u6CD5\uFF1A\u7EDF\u4E00\u5BBF\u4E3B\u4E0E\u8FDC\u7A0B\u7684\u4F9D\u8D56\u7248\u672C\uFF0C\u6216\u4FEE\u6B63 shared.requiredVersion\u3002`);throw v({remote:t,error:i}),i}return}return u[p]}function W(e,r,n){let o=r.localVersion;if(!o||n===void 0)return;let t=r.shareScope||"default",s=r.shareKey||e,u=T(t),a=Object.hasOwn(u,s)?u[s]:void 0;if(a&&Object.keys(a).length>0){try{let g=A(e,r);if(g&&g.value===void 0){if(g.version===o)g.value=n,g.loaded=!0;else if(r.singleton&&!g.pendingGet){D(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let p=u[s][o];p.value=n,p.loaded=!0}}}catch{}return}D(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let y=u[s]?.[o];y&&(y.value=n)}async function Y(e,r={}){let n=r.shareScope||"default",o=r.shareKey||e,t=T(n)[o]||{},s=S(e,r),u=$.resolveShare?m.get(s):void 0,a=u||A(e,r);if(!a){if(r.fallback){let i=await r.fallback();return W(e,r,i),i}let p=new E(R.SHARE_NOT_AVAILABLE,`\u73B0\u8C61\uFF1A\u65E0\u6CD5\u52A0\u8F7D\u5171\u4EAB\u4F9D\u8D56 "${o}"\u3002
|
|
19
19
|
\u539F\u56E0\uFF1A\u4F5C\u7528\u57DF "${n}" \u4E2D\u6CA1\u6709\u7B26\u5408 ${r.requiredVersion??"\u4EFB\u610F\u7248\u672C"} \u8981\u6C42\u7684\u7248\u672C\uFF0C\u4E14\u672A\u914D\u7F6E\u672C\u5730\u526F\u672C\u3002
|
|
20
|
-
\u4FEE\u6CD5\uFF1A\u5728\u5BBF\u4E3B\u6216\u8FDC\u7A0B\u6CE8\u518C\u8BE5\u4F9D\u8D56\uFF0C\u6216\u4E3A shared \u914D\u7F6E\u53EF\u7528\u7684\u672C\u5730\u526F\u672C\u3002`,{shareKey:o,requiredVersion:r.requiredVersion});throw
|
|
20
|
+
\u4FEE\u6CD5\uFF1A\u5728\u5BBF\u4E3B\u6216\u8FDC\u7A0B\u6CE8\u518C\u8BE5\u4F9D\u8D56\uFF0C\u6216\u4E3A shared \u914D\u7F6E\u53EF\u7528\u7684\u672C\u5730\u526F\u672C\u3002`,{shareKey:o,requiredVersion:r.requiredVersion});throw v({remote:o,error:p}),p}if($.resolveShare&&!u){let p=await $.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:a,available:Object.values(t)});p&&(a=p),m.set(s,a)}if(a.value!==void 0)return m.set(S(e,r),a),a.value;if(a.loaded=!0,!a.pendingGet)try{a.pendingGet=a.get()}catch(p){a.pendingGet=Promise.reject(p)}let y=a.pendingGet,g;try{g=await y}catch(p){if(a.value!==void 0)return m.set(S(e,r),a),a.value;throw a.loaded=!1,m.get(s)===a&&m.delete(s),p}finally{a.pendingGet===y&&(a.pendingGet=void 0)}return a.value===void 0&&(a.value=g),m.set(S(e,r),a),a.value}function he(e,r={}){return $.resolveShare?m.get(S(e,r))?.value:A(e,r,!0)?.value}function ye(e,r,n,o){W(e,{...r,localVersion:n},o)}function Se(e,r){let n=r.shareScope||"default",o=r.shareKey||e;if($.resolveShare){let s=S(e,r),u=m.get(s);if(u&&u.value!==void 0)return{kind:"ready",value:u.value};let a=u||$.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:A(e,r),available:Object.values(T(n)[o]||{})});if(a&&typeof a.then=="function")throw Promise.resolve(a).catch(()=>{}),new E(R.SHARE_NOT_AVAILABLE,`\u73B0\u8C61\uFF1AresolveShare \u5BF9\u5171\u4EAB "${o}" \u8FD4\u56DE\u4E86 Promise\uFF0C\u4F46\u8BE5\u5171\u4EAB\u6B63\u88AB\u540C\u6B65\u9759\u6001\u5BFC\u5165\u6D88\u8D39\uFF08Vite 8 \u540C\u6B65\u534F\u5546\u95E8\u9762\uFF09\u3002
|
|
21
21
|
\u539F\u56E0\uFF1A\u6A21\u5757\u6C42\u503C\u671F\u65E0\u6CD5\u7B49\u5F85\u5F02\u6B65\u51B3\u7B56\uFF1B\u9759\u6001\u5BFC\u5165\u4E0D\u80FD\u9759\u9ED8\u5FFD\u7565 hook \u51B3\u7B56\u3002
|
|
22
|
-
\u4FEE\u6CD5\uFF1AVite 8 HTML \u5165\u53E3\u4F1A\u5148\u5B8C\u6210\u5F02\u6B65\u534F\u5546\uFF1B\u5176\u4ED6\u5165\u53E3\u8BF7\u5148\u52A8\u6001 loadShare \u5EFA\u7ACB\u5FEB\u7167\uFF0C\u518D\u5BFC\u5165\u6D88\u8D39\u8005\uFF0C\u6216\u8BA9\u8BE5\u952E\u540C\u6B65\u8FD4\u56DE picked\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let
|
|
22
|
+
\u4FEE\u6CD5\uFF1AVite 8 HTML \u5165\u53E3\u4F1A\u5148\u5B8C\u6210\u5F02\u6B65\u534F\u5546\uFF1B\u5176\u4ED6\u5165\u53E3\u8BF7\u5148\u52A8\u6001 loadShare \u5EFA\u7ACB\u5FEB\u7167\uFF0C\u518D\u5BFC\u5165\u6D88\u8D39\u8005\uFF0C\u6216\u8BA9\u8BE5\u952E\u540C\u6B65\u8FD4\u56DE picked\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let y=a;if(y){if(y.value!==void 0)return m.set(S(e,r),y),{kind:"ready",value:y.value};if(y.version!==void 0&&y.version===r.localVersion)return{kind:"local"};throw new E(R.SHARE_NOT_AVAILABLE,`\u73B0\u8C61\uFF1AresolveShare \u4E3A "${o}" \u9009\u62E9\u4E86\u672A\u5C31\u7EEA\u7684 ${y.version??"\u6761\u76EE"}\u3002
|
|
23
23
|
\u539F\u56E0\uFF1A\u540C\u6B65\u6D88\u8D39\u4E0D\u80FD\u7B49\u5F85\u52A0\u8F7D\u3002
|
|
24
|
-
\u4FEE\u6CD5\uFF1A\u5148\u52A8\u6001 loadShare \u518D\u5BFC\u5165\u6D88\u8D39\u8005\uFF0C\u6216\u9009\u62E9\u5DF2\u5C31\u7EEA\u5B9E\u4F8B/\u672C\u5730\u7248\u672C ${r.localVersion??"\u672A\u58F0\u660E"}\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0})}}let t=A(e,r);if(!t)return{kind:"local"};if(t.value!==void 0)return{kind:"ready",value:t.value};if(t.version!==void 0&&t.version===r.localVersion)return{kind:"local"};if(r.singleton||r.strictVersion&&r.requiredVersion&&(!r.localVersion||!j(r.localVersion,r.requiredVersion))){if(r.strictVersion||t.pendingGet)throw new E(
|
|
24
|
+
\u4FEE\u6CD5\uFF1A\u5148\u52A8\u6001 loadShare \u518D\u5BFC\u5165\u6D88\u8D39\u8005\uFF0C\u6216\u9009\u62E9\u5DF2\u5C31\u7EEA\u5B9E\u4F8B/\u672C\u5730\u7248\u672C ${r.localVersion??"\u672A\u58F0\u660E"}\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0})}}let t=A(e,r);if(!t)return{kind:"local"};if(t.value!==void 0)return{kind:"ready",value:t.value};if(t.version!==void 0&&t.version===r.localVersion)return{kind:"local"};if(r.singleton||r.strictVersion&&r.requiredVersion&&(!r.localVersion||!j(r.localVersion,r.requiredVersion))){if(r.strictVersion||t.pendingGet)throw new E(R.SHARE_NOT_AVAILABLE,`\u73B0\u8C61\uFF1A\u5171\u4EAB "${o}" \u9009\u4E2D\u4E86 ${t.from} \u63D0\u4F9B\u7684 ${t.version}\uFF08\u5C1A\u672A\u52A0\u8F7D\uFF09\uFF0C\u540C\u6B65\u9759\u6001\u5BFC\u5165\u65E0\u6CD5\u7B49\u5F85\u5176\u5B9E\u4F8B\u5C31\u7EEA\u3002
|
|
25
25
|
\u539F\u56E0\uFF1A\u4E0D\u80FD\u6539\u7528\u4E0D\u517C\u5BB9\u7684\u672C\u5730\u526F\u672C\u6216\u5206\u88C2\u5355\u4F8B\u3002
|
|
26
|
-
\u4FEE\u6CD5\uFF1A\u8BA9\u8BE5\u5171\u4EAB\u7684\u9996\u6B21\u6D88\u8D39\u5148\u7ECF\u4E00\u6B21\u52A8\u6001 loadShare \u5B8C\u6210\u52A0\u8F7D\uFF0C\u6216\u5C06\u672C\u5E94\u7528\u7248\u672C\u4E0E\u4F5C\u7528\u57DF\u63D0\u4F9B\u7248\u672C\u5BF9\u9F50\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let s=`${n}|${o}|${t.version}|${r.localVersion}`;return
|
|
26
|
+
\u4FEE\u6CD5\uFF1A\u8BA9\u8BE5\u5171\u4EAB\u7684\u9996\u6B21\u6D88\u8D39\u5148\u7ECF\u4E00\u6B21\u52A8\u6001 loadShare \u5B8C\u6210\u52A0\u8F7D\uFF0C\u6216\u5C06\u672C\u5E94\u7528\u7248\u672C\u4E0E\u4F5C\u7528\u57DF\u63D0\u4F9B\u7248\u672C\u5BF9\u9F50\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let s=`${n}|${o}|${t.version}|${r.localVersion}`;return l.has(s)||(l.add(s),console.warn(`[fulgurjs:MFU-010] \u5171\u4EAB\u5355\u4F8B "${o}"\uFF1A\u4F5C\u7528\u57DF\u4E2D ${t.from} \u63D0\u4F9B\u7684 ${t.version} \u5C1A\u672A\u52A0\u8F7D\uFF0C\u9996\u4E2A\u6D88\u8D39\u8005\u4EE5\u672C\u5730\u7248\u672C ${r.localVersion??""} \u63A5\u7BA1\uFF08\u540E\u7EED\u6D88\u8D39\u8005\u6309\u5DF2\u52A0\u8F7D\u4F18\u5148\u6536\u655B\u5230\u8BE5\u5B9E\u4F8B\uFF09\u3002`)),{kind:"local"}}return console.warn(`[fulgurjs] \u5171\u4EAB "${o}"\uFF1A\u975E\u5355\u4F8B\u540C\u6B65\u6D88\u8D39\u4F7F\u7528\u672C\u5730 ${r.localVersion??""}\uFF0C\u8FDC\u7A0B ${t.version} \u5C1A\u672A\u5C31\u7EEA\u3002`),{kind:"local"}}async function Ee(e){if($.resolveShare){for(let{name:r,opts:n}of e){let o=S(r,n);if(m.has(o))continue;let t=A(r,n),s=await $.resolveShare({shareKey:n.shareKey||r,shareScope:n.shareScope||"default",requiredVersion:n.requiredVersion,picked:t,available:Object.values(T(n.shareScope||"default")[n.shareKey||r]||{})})||t;s&&m.set(o,s)}for(let{name:r,opts:n}of e)await Y(r,n)}}function z(e){try{let r=new URL(e,typeof location<"u"?location.href:"http://f.invalid");return r.protocol+"//"+r.host+r.pathname}catch{return String(e).replace(/[?#].*$/,"")}}function Z(e,r,n){return new Promise((o,t)=>{let s=setTimeout(()=>t(new Error(`\u7B49\u5F85\u8D85\u8FC7 ${r} \u6BEB\u79D2\uFF1A${n}`)),r);e.then(u=>{clearTimeout(s),o(u)},u=>{clearTimeout(s),t(u)})})}let Re=e=>new Promise(r=>setTimeout(r,e)),Q=new Set;function K(e,r){if(!e||typeof e.get!="function")throw new Error(`\u8FDC\u7A0B\u5E94\u7528 "${r.name}" \u7684 remoteEntry \u672A\u5BFC\u51FA\u5BB9\u5668\u63A5\u53E3\u3002\u8BF7\u786E\u8BA4\u5165\u53E3\u5BFC\u51FA\u4E86 get()\uFF0C\u5E76\u68C0\u67E5\u8BE5\u5730\u5740\u662F\u5426\u8FD4\u56DE\u6B63\u786E\u7684\u8054\u90A6\u5165\u53E3 JS\u3002`);if(e.name&&r.name&&e.name!==r.name){let n=`\u8FDC\u7A0B\u5165\u53E3\u81EA\u62A5\u540D\u79F0 "${e.name}" \u4E0E\u5BBF\u4E3B\u914D\u7F6E\u540D\u79F0 "${r.name}" \u4E0D\u4E00\u81F4\u3002\u8BF7\u7EDF\u4E00\u4E24\u4FA7 federation({ name }) \u4E0E remotes \u7684\u540D\u79F0\u3002`;if(r.promise){let o=`${r.name}\u2194${e.name}`;Q.has(o)||(Q.add(o),console.warn(`[fulgurjs] ${n} \u5F53\u524D\u662F\u52A8\u6001 Promise \u8FDC\u7A0B\uFF0C\u7EE7\u7EED\u52A0\u8F7D\u3002`))}else throw Object.assign(new Error(n),{code:R.REMOTE_NAME_MISMATCH})}}async function ee(e,r){let n=r.entryFailCounts.get(e)??0,o=n>0?`${e}${e.includes("?")?"&":"?"}fulgurjs_retry=${n}`:e,t=r.entryInflight.get(e),s=t??import(o);return t||(r.entryInflight.set(e,s),s.catch(()=>{r.entryInflight.delete(e),r.entryFailCounts.set(e,(r.entryFailCounts.get(e)??0)+1)})),Z(s,r.timeout??G,`\u52A0\u8F7D\u8FDC\u7A0B\u5165\u53E3 ${z(e)}`)}async function re(e,r){let n=e.shareScope||"default";if(e.container){let s=N.get(e.container);if(s&&s!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\u8FDC\u7A0B\u5BB9\u5668 "${e.name}" \u5DF2\u4F7F\u7528\u5171\u4EAB\u4F5C\u7528\u57DF "${s}" \u521D\u59CB\u5316\uFF0C\u4E0D\u80FD\u518D\u4EE5 "${n}" \u521D\u59CB\u5316\u3002\u8BF7\u7EDF\u4E00 shareScope \u914D\u7F6E\u3002`);return e.container}if(e.containerPromise)return e.containerPromise;let o=e.breakerState;if(o.openUntil>Date.now()){let s=new E(R.REMOTE_LOAD_FAILED,`\u8FDC\u7A0B\u5E94\u7528 "${e.name}" \u8FDE\u7EED\u52A0\u8F7D\u5931\u8D25\uFF0C\u7194\u65AD\u5668\u5DF2\u5F00\u542F\uFF1B\u5C06\u5728 ${new Date(o.openUntil).toISOString()} \u540E\u5141\u8BB8\u91CD\u8BD5\u3002\u8BF7\u5148\u68C0\u67E5\u8FDC\u7A0B\u5165\u53E3\u670D\u52A1\u548C\u7F51\u7EDC\u3002`,{remote:e.name,stage:"container"});throw v({remote:e.name,error:s}),s}e.state="loading",e.debug.status="loading";let t=(async()=>{let s=[];if(e.promise)s.push(async()=>{let i=await Z(e.promise(),e.timeout??G,`\u89E3\u6790\u52A8\u6001\u8FDC\u7A0B\u5E94\u7528 "${e.name}"`),h=typeof i=="string"?await ee(i,e):i;return K(h,e),h});else for(let i of[e.entry,...e.fallback??[]])s.push(async()=>{let h=await ee(i,e);return K(h,e),h});let u,a,y=!1,g=r?.retries??e.retries??se;for(let i of s){for(let h=0;h<=g;h++){let O=performance.now();try{u=await i(),e.lastLoadMs=Math.round(performance.now()-O),e.debug.lastLoadMs=e.lastLoadMs,y=!0;break}catch(_){if(a=_,_?.code)throw _;h<g&&await Re(Math.min(Ce,200*2**h)*(1-Fe*(1-2*Math.random())))}}if(y)break}if(!y||!u){let i=z(e.entry),h=[];throw/^https?:\/\//.test(e.entry)&&typeof location<"u"?(h.push(`1. \u5728\u6D4F\u89C8\u5668\u6253\u5F00 ${i}\uFF0C\u786E\u8BA4\u8FDC\u7A0B\u5F00\u53D1\u670D\u52A1\u5DF2\u542F\u52A8\uFF0C\u5E76\u8FD4\u56DE JS \u800C\u975E HTML\u3002`),h.push("2. \u6838\u5BF9 federation({ remotes }) \u4E2D\u7684\u5730\u5740\uFF1B\u5F00\u53D1\u548C\u751F\u4EA7\u5730\u5740\u53EF\u4EE5\u4E0D\u540C\u3002"),h.push("3. \u82E5\u8DE8\u57DF\uFF0C\u68C0\u67E5\u8FDC\u7A0B\u5F00\u53D1\u670D\u52A1\u7684 server.cors \u914D\u7F6E\u3002")):(h.push(`1. \u5728\u6D4F\u89C8\u5668\u6253\u5F00 ${i}\uFF0C\u786E\u8BA4\u8FDC\u7A0B\u5E94\u7528\u5DF2\u90E8\u7F72\uFF0C\u4E14\u5165\u53E3\u8FD4\u56DE JS\u3002`),h.push("2. \u68C0\u67E5 Nginx/CDN \u7684\u5165\u53E3\u8DEF\u5F84\u6620\u5C04\uFF1B\u8BE5\u5730\u5740\u4E0D\u80FD\u56DE\u9000\u5230 index.html\u3002")),new E(R.REMOTE_LOAD_FAILED,`\u73B0\u8C61\uFF1A\u65E0\u6CD5\u4ECE ${i} \u52A0\u8F7D\u8FDC\u7A0B\u5E94\u7528 "${e.name}"\u3002
|
|
27
27
|
\u539F\u56E0\uFF1A${String(a?.message??a)}
|
|
28
28
|
\u4FEE\u6CD5\uFF1A
|
|
29
29
|
${h.join(`
|
|
30
|
-
`)}`,{remote:e.name,stage:"container"})}K(u,e);let p=
|
|
30
|
+
`)}`,{remote:e.name,stage:"container"},{cause:a})}K(u,e);let p=N.get(u);if(p&&p!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\u8FDC\u7A0B\u5BB9\u5668 "${e.name}" \u5DF2\u4F7F\u7528\u5171\u4EAB\u4F5C\u7528\u57DF "${p}" \u521D\u59CB\u5316\uFF0C\u4E0D\u80FD\u518D\u4EE5 "${n}" \u521D\u59CB\u5316\u3002\u8BF7\u7EDF\u4E00 shareScope \u914D\u7F6E\u3002`);return typeof u.init=="function"&&await u.init(c),N.set(u,n),e.container=u,e.state="loaded",e.debug.status="loaded",o.fails=0,u})();e.containerPromise=t;try{return await t}catch(s){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=String(s?.message??s),o.fails+=1,o.fails>=e.breakerThreshold&&(o.openUntil=Date.now()+e.breakerResetMs,o.fails=0),s instanceof E)throw v({remote:e.name,error:s}),s;if(s?.code)throw v({remote:e.name,error:s}),s;let u=new E(R.REMOTE_LOAD_FAILED,`\u8FDC\u7A0B\u5E94\u7528 "${e.name}" \u52A0\u8F7D\u5931\u8D25\u3002\u5E95\u5C42\u539F\u56E0\uFF1A${String(s?.message??s)}\u3002\u8BF7\u68C0\u67E5\u8FDC\u7A0B\u5165\u53E3\u3001\u7F51\u7EDC\u53CA\u5171\u4EAB\u4F9D\u8D56\u3002`,{remote:e.name,stage:"container"},{cause:s});throw v({remote:e.name,error:u}),u}}function q(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:ne(e.slice(r+1))}}function ne(e){return e?e.startsWith(".")?e:`./${e}`:""}async function we(e,r){let{remote:n,module:o}=q(e);if(o&&F===n)throw new E(R.SETUP_RECURSION,`\u73B0\u8C61\uFF1A\u52A0\u8F7D "${e}" \u65F6\uFF0C\u8FDC\u7A0B\u5E94\u7528 "${n}" \u7684 setup/onSession \u53C8\u540C\u6B65\u52A0\u8F7D\u4E86\u81EA\u8EAB\u6A21\u5757\uFF0C\u5F62\u6210\u5FAA\u73AF\u7B49\u5F85\u3002
|
|
31
31
|
\u539F\u56E0\uFF1A\u521D\u59CB\u5316\u5C1A\u672A\u5B8C\u6210\uFF0C\u4E0D\u80FD\u7B49\u5F85\u81EA\u8EAB\u7684\u521D\u59CB\u5316\u7ED3\u679C\u3002
|
|
32
|
-
\u4FEE\u6CD5\uFF1A\u4E0D\u8981\u5728 setup/onSession \u4E2D\u52A0\u8F7D\u540C\u4E00\u8FDC\u7A0B\u7684\u6A21\u5757\uFF1B\u8BF7\u5728\u9875\u9762\u7EC4\u4EF6\u4E2D\u52A0\u8F7D\uFF0C\u6216\u901A\u8FC7 context \u89E3\u8026\u3002`,{remote:n});try{
|
|
32
|
+
\u4FEE\u6CD5\uFF1A\u4E0D\u8981\u5728 setup/onSession \u4E2D\u52A0\u8F7D\u540C\u4E00\u8FDC\u7A0B\u7684\u6A21\u5757\uFF1B\u8BF7\u5728\u9875\u9762\u7EC4\u4EF6\u4E2D\u52A0\u8F7D\uFF0C\u6216\u901A\u8FC7 context \u89E3\u8026\u3002`,{remote:n});try{$.beforeLoadRemote?.({remote:n,module:o})}catch(i){console.warn("[fulgurjs] beforeLoadRemote \u89C2\u6D4B\u94A9\u5B50\u6267\u884C\u5931\u8D25\uFF1B\u6A21\u5757\u52A0\u8F7D\u5C06\u7EE7\u7EED\u3002\u8BF7\u68C0\u67E5\u8BE5\u94A9\u5B50\uFF1A",i)}let t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\u672A\u77E5\u8FDC\u7A0B\u5E94\u7528 "${n}"\u3002\u8BF7\u5728 federation({ remotes }) \u4E2D\u914D\u7F6E\uFF0C\u6216\u5728\u52A0\u8F7D\u524D\u8C03\u7528 registerRemote()\u3002`,{remote:n});let s;try{let i=o&&t.manifestUrl?H(e):Promise.resolve();[s]=await Promise.all([re(t,{retries:r?.retries}),i])}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \u8FDC\u7A0B\u6A21\u5757 "${e}" \u52A0\u8F7D\u5931\u8D25\uFF0C\u6B63\u5728\u4F7F\u7528\u663E\u5F0F\u914D\u7F6E\u7684 fallbackModule\uFF1B\u539F\u59CB\u9519\u8BEF\uFF1A`,i),v({remote:n,error:i}),await r.fallbackModule();throw i}if(!o)return s;await ue(t,s);let u=V(n).globalComponents,a=r?.consumerApp;if(u&&a&&typeof a.component=="function")for(let i of Object.keys(u))a.component(i,u[i]);let y=V(n).pageProviders;y&&y.length>0&&typeof a?.pageProviders=="function"&&a.pageProviders(y);let g=`${n}@${t.shareScope||"default"}#${o}`;b.has(g)||b.set(g,s.get(o).catch(i=>{if(b.delete(g),i instanceof E||i?.code)throw v({remote:n,error:i}),i;let h=new E(R.REMOTE_LOAD_FAILED,`\u65E0\u6CD5\u4ECE\u8FDC\u7A0B\u5E94\u7528 "${n}" \u52A0\u8F7D\u6A21\u5757 "${o}"\u3002\u5E95\u5C42\u539F\u56E0\uFF1A${String(i?.message??i)}\u3002\u8BF7\u6838\u5BF9 exposes \u952E\u548C\u8FDC\u7A0B\u6784\u5EFA\u4EA7\u7269\u3002`,{remote:n,module:o,stage:"expose"},{cause:i});throw v({remote:n,error:h}),h}));let p;try{p=await b.get(g)}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \u8FDC\u7A0B\u6A21\u5757 "${e}" \u52A0\u8F7D\u5931\u8D25\uFF0C\u6B63\u5728\u4F7F\u7528\u663E\u5F0F\u914D\u7F6E\u7684 fallbackModule\uFF1B\u539F\u59CB\u9519\u8BEF\uFF1A`,i),v({remote:n,error:i}),await r.fallbackModule();throw i}try{$.afterLoadRemote?.({remote:n,module:o,module_ns:p})}catch(i){console.warn("[fulgurjs] afterLoadRemote \u89C2\u6D4B\u94A9\u5B50\u6267\u884C\u5931\u8D25\uFF1B\u5DF2\u52A0\u8F7D\u6A21\u5757\u4ECD\u53EF\u4F7F\u7528\u3002\u8BF7\u68C0\u67E5\u8BE5\u94A9\u5B50\uFF1A",i)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let i=new E(R.EMPTY_EXPORTS,`\u8FDC\u7A0B\u5E94\u7528 "${n}" \u7684\u6A21\u5757 "${o}" \u6CA1\u6709\u4EFB\u4F55\u5BFC\u51FA\u3002\u8BF7\u68C0\u67E5 exposes \u6307\u5411\u7684\u6587\u4EF6\u53CA\u5176 export \u58F0\u660E\u3002`,{remote:n,module:o});v({remote:n,error:i}),console.error(i.message)}return p}function be(e){let r=d.get(e);if(!r)throw new E(R.REMOTE_UNKNOWN,`\u672A\u77E5\u8FDC\u7A0B\u5E94\u7528 "${e}"\u3002\u8BF7\u5148\u6CE8\u518C\u8BE5\u8FDC\u7A0B\u5E94\u7528\u3002`,{remote:e});return re(r)}async function H(e,r={}){let{remote:n,module:o}=q(e),t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\u672A\u77E5\u8FDC\u7A0B\u5E94\u7528 "${n}"\u3002\u8BF7\u5148\u6CE8\u518C\u8BE5\u8FDC\u7A0B\u5E94\u7528\u3002`,{remote:n});let s=r.mode??"preload",u=(g,p)=>{if(g.sheet)return Promise.resolve();let i=L.get(g);if(i)return i;let h=new Promise(O=>{let _=()=>{g.removeEventListener("load",_),g.removeEventListener("error",M),O()},M=()=>{v({remote:n,error:new E(R.PRELOAD_FAILED,`\u8FDC\u7A0B\u5E94\u7528 "${n}" \u7684\u6837\u5F0F\u8D44\u6E90\u52A0\u8F7D\u5931\u8D25\uFF1A${p}\u3002\u8BF7\u68C0\u67E5\u6587\u4EF6\u662F\u5426\u5B58\u5728\u4EE5\u53CA\u8DE8\u57DF\u548C\u7F13\u5B58\u914D\u7F6E\u3002`,{remote:n})}),_()};g.addEventListener("load",_,{once:!0}),g.addEventListener("error",M,{once:!0}),g.sheet&&_()});return L.set(g,h),h},a=(g,p)=>{if(typeof document>"u")return Promise.resolve();let i=document.querySelector(`link[href="${g}"]`);if(i)return p==="style"&&s==="preload"?L.get(i)??Promise.resolve():Promise.resolve();let h=document.createElement("link");h.rel=p==="style"?"stylesheet":"modulepreload",h.href=g,s==="prefetch"&&(h.fetchPriority="low");let O=p==="style"?u(h,g):Promise.resolve();return document.head.appendChild(h),p==="style"&&s==="preload"?O:Promise.resolve()},y=g=>{let p=typeof document<"u"?document.baseURI:void 0,i=new URL(t.entry,p||"http://fulgurjs.invalid/");return!i.pathname.endsWith("/")&&!i.pathname.split("/").pop().includes(".")&&(i.pathname+="/"),new URL(g,i).href};try{if(t.manifestUrl){let g=P.get(t.manifestUrl);g||(g=fetch(t.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(i=>i.ok?i.json():void 0),P.set(t.manifestUrl,g),g.then(i=>{i||P.delete(t.manifestUrl)},()=>P.delete(t.manifestUrl)));let p=await g;if(p){let i=p.schemaVersion;if(typeof i=="number"&&(!Number.isInteger(i)||i>1)){v({remote:n,error:new E(R.PRELOAD_FAILED,`\u8FDC\u7A0B\u5E94\u7528 "${n}" \u7684 manifest \u534F\u8BAE\u7248\u672C\u4E3A ${String(i)}\uFF0C\u5F53\u524D\u4EC5\u652F\u6301\u7248\u672C 1\u3002\u8BF7\u7EDF\u4E00\u5BBF\u4E3B\u548C\u8FDC\u7A0B\u7684\u63D2\u4EF6\u7248\u672C\u3002`,{remote:n})}),await a(t.entry,"modulepreload");return}await a(t.entry,"modulepreload");let h=p.exposes,O=Array.isArray(h)?h.filter(k=>k&&typeof k=="object").map(k=>[String(k.name??""),k]):h&&typeof h=="object"?Object.entries(h):[],_=o?O.filter(([k,x])=>ne(String(x?.name??k))===o):O,M=[];for(let[,k]of _)if(typeof k?.file=="string"&&await a(y(k.file),"modulepreload"),Array.isArray(k?.css))for(let x of k.css){if(typeof x!="string")continue;let ve=a(y(x),"style");s==="preload"&&M.push(ve)}await Promise.all(M);return}}await a(t.entry,"modulepreload")}catch(g){v({remote:n,error:new E(R.PRELOAD_FAILED,`\u8FDC\u7A0B\u5E94\u7528 "${n}" \u9884\u52A0\u8F7D\u5931\u8D25\u3002\u5E95\u5C42\u539F\u56E0\uFF1A${String(g?.message??g)}\u3002\u8BF7\u68C0\u67E5 manifest \u548C\u8D44\u6E90\u5730\u5740\u3002`,{remote:n})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=c,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,n]of d)e[r]={...n.debug,entry:n.entry};return e},errors:[]}),{shareScopeMap:c,initSharing:fe,registerShare:D,registerRemotes:B,registerRemote:me,registerPlugins:ge,loadShare:Y,loadShareSync:Se,prepareShares:Ee,getLoadedShare:he,pinLoadedShare:ye,loadRemote:we,getContainer:be,preloadRemote:H,parseSpec:q,clearSessionState:de,reportRemoteError:e=>{v(e)}}}var ie=globalThis,w=ie.__FULGURJS_RUNTIME__??Ve();ie.__FULGURJS_RUNTIME__=w;try{Object.freeze(w)}catch{}var Be=oe;function We(){return w}var Ye=w.initSharing,ze=w.registerShare,Ze=w.registerRemotes,Qe=w.registerRemote,er=w.registerPlugins,rr=w.loadShare,nr=w.getLoadedShare,tr=w.prepareShares||(async c=>{for(let{name:d,opts:f}of c)await w.loadShare(d,f)}),or=w.loadShareSync,sr=w.pinLoadedShare,ir=w.loadRemote,ar=w.getContainer,cr=w.preloadRemote,lr=w.parseSpec,ur=w.clearSessionState,dr=w.shareScopeMap;function fr(c){if(c&&typeof c=="object"&&"default"in c){let d=c.default;return d!==void 0?d:c}return c}var pr=w;export{ur as clearSessionState,pr as default,ar as getContainer,nr as getLoadedShare,We as getRuntime,Ye as initSharing,ir as loadRemote,rr as loadShare,or as loadShareSync,lr as parseSpec,sr as pinLoadedShare,cr as preloadRemote,tr as prepareShares,er as registerPlugins,Qe as registerRemote,Ze as registerRemotes,ze as registerShare,w as runtime,dr as shareScopeMap,fr as unwrapDefault,Be as version};
|