@fulgurjs/federation 5.3.2 → 5.3.3
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 +6 -0
- package/README.en.md +3 -1
- package/README.md +2 -0
- package/dist/{chunk-MMXKQN2H.js → chunk-GWJKABE7.js} +1 -1
- package/dist/{chunk-TOT3P7AK.js → chunk-WD2ON7SN.js} +109 -25
- package/dist/{chunk-X4F2BHNM.js → chunk-ZTRJLCOF.js} +1 -1
- package/dist/index.cjs +136 -15
- package/dist/index.js +136 -15
- package/dist/react.d.ts +5 -0
- package/dist/runtime-entry.d.ts +5 -0
- package/dist/runtime.js +18 -18
- package/examples/bridge/react-host/package-lock.json +3 -3
- package/examples/bridge/react-host/package.json +1 -1
- package/examples/bridge/react-remote/package-lock.json +3 -3
- package/examples/bridge/react-remote/package.json +1 -1
- package/examples/bridge/vue-host/package-lock.json +3 -3
- package/examples/bridge/vue-host/package.json +1 -1
- package/examples/bridge/vue-remote/package-lock.json +3 -3
- package/examples/bridge/vue-remote/package.json +1 -1
- package/examples/react/host/package-lock.json +2 -2
- package/examples/react/host/package.json +1 -1
- package/examples/react/remote/package-lock.json +2 -2
- package/examples/react/remote/package.json +1 -1
- package/examples/vue/host/package-lock.json +2 -2
- package/examples/vue/host/package.json +1 -1
- package/examples/vue/remote/package-lock.json +2 -2
- package/examples/vue/remote/package.json +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -43,7 +43,7 @@ var import_node_fs = __toESM(require("fs"), 1);
|
|
|
43
43
|
var import_node_path = __toESM(require("path"), 1);
|
|
44
44
|
|
|
45
45
|
// src/version.ts
|
|
46
|
-
var RUNTIME_VERSION = "5.3.
|
|
46
|
+
var RUNTIME_VERSION = "5.3.3";
|
|
47
47
|
|
|
48
48
|
// src/dev-cors.ts
|
|
49
49
|
function normalizeDevCorsOrigins(input) {
|
|
@@ -725,14 +725,20 @@ function genCjsNsFacade(item, exportNames, importTarget) {
|
|
|
725
725
|
`shareScope: ${JSON.stringify(item.shareScope)}`,
|
|
726
726
|
`shareKey: ${JSON.stringify(item.shareKey)}`,
|
|
727
727
|
...item.requiredVersion !== false ? [`requiredVersion: ${JSON.stringify(item.requiredVersion)}`] : [],
|
|
728
|
-
...item.singleton ? ["singleton: true"] : []
|
|
728
|
+
...item.singleton ? ["singleton: true"] : [],
|
|
729
|
+
...item.strictVersion ? ["strictVersion: true"] : []
|
|
729
730
|
];
|
|
730
731
|
const lines = [
|
|
731
|
-
`import { getLoadedShare as __fulgurjs_gls, unwrapDefault as __fulgurjsU } from "virtual:fulgurjs-runtime";`,
|
|
732
|
+
`import { getLoadedShare as __fulgurjs_gls, pinLoadedShare as __fulgurjs_pin, unwrapDefault as __fulgurjsU } from "virtual:fulgurjs-runtime";`,
|
|
732
733
|
// importTarget 为 load 期解析出的绝对 id(proxy 虚拟 id 上下文里裸包名无法 node 解析);
|
|
733
734
|
// 兜底保留裸包名(与命名空间门面同语义,无 proxy 载体时可解析)
|
|
734
735
|
`import * as __fulgurjs_local from ${JSON.stringify(importTarget ?? item.import)};`,
|
|
735
|
-
`const
|
|
736
|
+
`const __fulgurjs_snap = __fulgurjs_gls(${JSON.stringify(item.shareKey)}, { ${opts.join(", ")} });`,
|
|
737
|
+
// 未命中同步快照:把本地副本登记为将选中的共享条目(版本一致且条目未就绪时生效),
|
|
738
|
+
// 使先于 TLA 门面求值的垫片(jsx-runtime 拖入 provider chunk 的场景)与后续协商
|
|
739
|
+
// 收敛到同一份实例,杜绝单例双实例。
|
|
740
|
+
`if (__fulgurjs_snap === undefined) __fulgurjs_pin(${JSON.stringify(item.shareKey)}, { ${opts.join(", ")} }, ${JSON.stringify(item.version)}, __fulgurjs_local);`,
|
|
741
|
+
`const __fulgurjs_m = __fulgurjs_snap ?? __fulgurjs_local;`,
|
|
736
742
|
`const __fulgurjs_d = __fulgurjsU(__fulgurjs_m);`,
|
|
737
743
|
`export default __fulgurjs_d;`
|
|
738
744
|
];
|
|
@@ -1247,6 +1253,7 @@ function serializeShareCallForFacade(item, fallbackUrl) {
|
|
|
1247
1253
|
if (item.requiredVersion !== false) opts.push(`requiredVersion: ${JSON.stringify(item.requiredVersion)}`);
|
|
1248
1254
|
if (item.singleton) opts.push("singleton: true");
|
|
1249
1255
|
if (item.strictVersion) opts.push("strictVersion: true");
|
|
1256
|
+
opts.push(`localVersion: ${JSON.stringify(item.version)}`);
|
|
1250
1257
|
if (item.import !== false) {
|
|
1251
1258
|
const facadeUrl = fallbackUrl ?? SHARED_FACADE_PREFIX + item.shareKey;
|
|
1252
1259
|
opts.push(`fallback: () => import(${JSON.stringify(facadeUrl)})`);
|
|
@@ -1260,6 +1267,7 @@ function serializeShareCall(item, devUrls) {
|
|
|
1260
1267
|
if (item.requiredVersion !== false) opts.push(`requiredVersion: ${JSON.stringify(item.requiredVersion)}`);
|
|
1261
1268
|
if (item.singleton) opts.push("singleton: true");
|
|
1262
1269
|
if (item.strictVersion) opts.push("strictVersion: true");
|
|
1270
|
+
opts.push(`localVersion: ${JSON.stringify(item.version)}`);
|
|
1263
1271
|
if (item.import !== false) {
|
|
1264
1272
|
const facadeUrl = devUrls ? devUrls.namespaceFacade(item.shareKey) : SHARED_FACADE_PREFIX + item.shareKey;
|
|
1265
1273
|
opts.push(`fallback: () => import(${JSON.stringify(facadeUrl)})`);
|
|
@@ -1299,6 +1307,7 @@ function inSharedClosure(moduleId, roots) {
|
|
|
1299
1307
|
}
|
|
1300
1308
|
function isTransformableId(id, allowNodeModules = false) {
|
|
1301
1309
|
const clean = id.split("?")[0];
|
|
1310
|
+
if (clean.startsWith("virtual:fulgurjs-")) return false;
|
|
1302
1311
|
if (!JS_EXT_RE.test(clean) && !clean.endsWith(".vue")) return false;
|
|
1303
1312
|
if (clean.includes("node_modules") && !allowNodeModules) return false;
|
|
1304
1313
|
return true;
|
|
@@ -1320,12 +1329,17 @@ function getFacadeEntry(id) {
|
|
|
1320
1329
|
}
|
|
1321
1330
|
function canonicalBindings(bindings) {
|
|
1322
1331
|
const names = /* @__PURE__ */ new Set();
|
|
1332
|
+
let hasDefault = false;
|
|
1323
1333
|
for (const bRaw of bindings) {
|
|
1324
|
-
if (bRaw === "default")
|
|
1334
|
+
if (bRaw === "default") {
|
|
1335
|
+
hasDefault = true;
|
|
1336
|
+
continue;
|
|
1337
|
+
}
|
|
1325
1338
|
const asMatch = bRaw.match(/^(.*?)\s+as\s+(.+)$/);
|
|
1326
1339
|
names.add((asMatch ? asMatch[1] : bRaw).trim());
|
|
1327
1340
|
}
|
|
1328
|
-
return [...names].sort();
|
|
1341
|
+
if (names.size > 0) return [...names].sort();
|
|
1342
|
+
return hasDefault ? ["default"] : [];
|
|
1329
1343
|
}
|
|
1330
1344
|
function bindingFacadeId(item, bindings) {
|
|
1331
1345
|
const canonical = canonicalBindings(bindings);
|
|
@@ -1347,13 +1361,14 @@ function remoteFacadeSpecFor(ctx, remoteName, exposeName, bindings) {
|
|
|
1347
1361
|
}
|
|
1348
1362
|
async function transformModule(code, id, ctx) {
|
|
1349
1363
|
const { options } = ctx;
|
|
1350
|
-
const clean = id.split("?")[0];
|
|
1364
|
+
const clean = id.split("?")[0].replace(/^\0/, "");
|
|
1365
|
+
if (clean.startsWith("virtual:fulgurjs-")) return null;
|
|
1351
1366
|
if (options.shared.length === 0 && options.remotes.length === 0) return null;
|
|
1352
1367
|
const candidates = [];
|
|
1353
1368
|
for (const s2 of options.shared) candidates.push(s2.configKey.replace(/\/$/, ""));
|
|
1354
1369
|
for (const r of options.remotes) candidates.push(r.key);
|
|
1355
1370
|
if (!candidates.some((c) => code.includes(c))) return null;
|
|
1356
|
-
if (ctx.cjsRequireRewrite && /require\s*\(\s*["']/.test(code)) {
|
|
1371
|
+
if (ctx.cjsRequireRewrite && !inSharedClosure(clean, ctx.sharedClosureRoots) && /require\s*\(\s*["']/.test(code)) {
|
|
1357
1372
|
const sharedByAlias = /* @__PURE__ */ new Map();
|
|
1358
1373
|
for (const s2 of options.shared) {
|
|
1359
1374
|
if (s2.import === false) continue;
|
|
@@ -2216,7 +2231,7 @@ function syncViteCacheMarker(root, pluginVersion, log) {
|
|
|
2216
2231
|
}
|
|
2217
2232
|
|
|
2218
2233
|
// src/runtime-code.gen.ts
|
|
2219
|
-
var runtime_code_gen_default = 'var ge=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function j(a){let c=ge.exec(String(a).trim());return c?{major:Number(c[1]),minor:Number(c[2]??0),patch:Number(c[3]??0),pre:c[4]?c[4].split("."):[]}:null}function he(a,c){if(a.length===0&&c.length===0)return 0;if(a.length===0)return 1;if(c.length===0)return-1;let u=Math.max(a.length,c.length);for(let i=0;i<u;i++){let p=a[i],y=c[i];if(p===void 0)return-1;if(y===void 0)return 1;let w=/^\\d+$/.test(p),P=/^\\d+$/.test(y);if(w&&P){let I=Number(p)-Number(y);if(I!==0)return I}else{if(w!==P)return w?-1:1;if(p!==y)return p<y?-1:1}}return 0}function T(a,c){let u=j(a),i=j(c);return!u||!i?a<c?-1:a>c?1:0:u.major!==i.major?u.major-i.major:u.minor!==i.minor?u.minor-i.minor:u.patch!==i.patch?u.patch-i.patch:he(u.pre,i.pre)}var ye=/^[a-z]+[+:-]/i;function k(a,c){if(c===!1||c==null||c==="")return!0;let u=String(c).trim();return!u||u==="*"||u==="latest"||ye.test(u)?!0:u.split("||").some(i=>Se(a,i.trim()))}function Se(a,c){if(!c||c==="*")return!j(a)?.pre.length;let u=c.split(/\\s+-\\s+/);if(u.length===2){let y=u[0].trim(),w=u[1].trim();return!(!k(a,`>=${y}`)||!k(a,`<=${w}`))}let i=j(a);if(!i)return!1;let p=Ee(c);if(p===null)return!0;for(let y of p)if(!$e(i,a,y))return!1;return!(i.pre.length>0&&!p.some(y=>y.ver.pre.length>0)&&!p.some(w=>w.ver.major===i.major&&w.ver.minor===i.minor&&w.ver.patch===i.patch))}function Ee(a){let c=[],u=a.trim().split(/\\s+/).filter(Boolean);if(u.length===0)return null;for(let i of u){let p=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(i);if(!p)return null;let y=p[1],w=p[2],P=Re(y,w);if(P===null)return null;c.push(...P)}return c}function Re(a,c){let u=be(c);if(!u)return null;let{ver:i,partial:p}=u;switch(a){case"^":{let y=we(i);return y?[{op:">=",ver:i},{op:"<",ver:y}]:null}case"~":{let y=p>=2?{major:i.major,minor:i.minor+1,patch:0,pre:[]}:{major:i.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:i},{op:"<",ver:y}]}case">=":return[{op:">=",ver:i}];case">":return p===1?[{op:">=",ver:{major:i.major+1,minor:0,patch:0,pre:[]}}]:p===2?[{op:">=",ver:{major:i.major,minor:i.minor+1,patch:0,pre:[]}}]:[{op:">",ver:i}];case"<":return p===1?[{op:"<",ver:{major:i.major,minor:0,patch:0,pre:[]}}]:p===2?[{op:"<",ver:{major:i.major,minor:i.minor,patch:0,pre:[]}}]:[{op:"<",ver:i}];case"<=":return[{op:"<=",ver:i}];case"=":case void 0:return p===1?[{op:">=",ver:i},{op:"<",ver:{major:i.major+1,minor:0,patch:0,pre:[]}}]:p===2?[{op:">=",ver:i},{op:"<",ver:{major:i.major,minor:i.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:i}];default:return null}}function we(a){return a.major>0?{major:a.major+1,minor:0,patch:0,pre:[]}:a.minor>0?{major:0,minor:a.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:a.patch+1,pre:[]}}function be(a){let c=a.replace(/^v/,"").trim();if(!c||c==="*"||c==="x"||c==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let u=c.split("."),i=[],p=0;for(let P of u.slice(0,3))if(/^\\d+$/.test(P))i.push(Number(P)),p++;else{if(P==="x"||P==="X"||P==="*")break;break}let y=c.split("-"),w=y.length>1?y.slice(1).join("-").split("+")[0].split("."):[];return p===0&&w.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:i[0]??0,minor:i[1]??0,patch:i[2]??0,pre:w},partial:p}}function Pe(a,c){switch(c){case">=":return a>=0;case">":return a>0;case"<":return a<0;case"<=":return a<=0;case"=":return a===0}}function $e(a,c,u){let i=`${a.major}.${a.minor}.${a.patch}`+(a.pre.length?`-${a.pre.join(".")}`:"");if(u.upper)return!(!(T(i,`${u.ver.major}.${u.ver.minor}.${u.ver.patch}`+(u.ver.pre.length?`-${u.ver.pre.join(".")}`:""))>=0)||!(T(i,`${u.upper.major}.${u.upper.minor}.${u.upper.patch}`)<0));let p=T(i,`${u.ver.major}.${u.ver.minor}.${u.ver.patch}`+(u.ver.pre.length?`-${u.ver.pre.join(".")}`:"")),y=Pe(p,u.op);return u.ver.pre.length>0&&a.pre.length===0&&(u.op===">"||u.op==="<")?!1:y}var S=class extends Error{code;details;constructor(c,u,i,p){super(`[fulgurjs:${c}] ${u}`,p),this.name="FgError",this.code=c,this.details=i}},E={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"};var W="5.3.2";var _e="__fulgurjsSetup",Me="__FULGURJS_APP_CONFIG__",D=15e3,z=2,ve=5,Ie=3e4,Oe=4e3,Te=.2;function Le(){let a=Object.create(null),c=new Map,u=[],i=new Set,p=new Map,y=new Map,w=new WeakMap,P=new WeakMap,I={},Z=()=>{for(let e of u)try{e.init?.(I)}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)}},U=new Map,A,Q=e=>{let r=U.get(e);return r||U.set(e,r={}),r},V=()=>globalThis[Me]??{};async function K(e,r,t,n){let s=l=>l instanceof S?l:new S(E.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${n} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${String(l?.message??l)}\n\\u4FEE\\u6CD5\\uFF1A\\u68C0\\u67E5\\u5E76\\u4FEE\\u590D\\u8BE5 ${n} \\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:n},{cause:l});A=e;let o;try{o=r(t)}catch(l){throw s(l)}finally{A=void 0}try{await o}catch(l){throw s(l)}}async function ee(e,r,t,n){e.debug.setup="pending";try{if(e.manifestUrl)try{await F(`${e.name}/${t}`)}catch{}let s=await r.get(t),o=s?.default;if(typeof o!="function")throw new S(E.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${t}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${s==null?String(s):typeof o}\\uFF0C\\u5E94\\u4E3A\\u51FD\\u6570\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728 setup \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u4E2D\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u51FD\\u6570\\uFF0C\\u4F8B\\u5982 export default async function setup(context) { ... }\\uFF1B\\u5177\\u540D onSession \\u53EF\\u9009\\u3002`,{remote:e.name,module:t});if(s.onSession!==void 0&&typeof s.onSession!="function")throw new S(E.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${t}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AonSession \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof s.onSession}\\uFF0C\\u5E94\\u4E3A\\u51FD\\u6570\\u3002\n\\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:t});n.setupExports=s,await K(e.name,o,{appContext:V(),signal:(n.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(s){throw e.debug.setup="failed",n.setupExports=void 0,s}}async function re(e,r,t){let n=V(),s=n?.sessionKey;if(typeof s!="string"||s==="")throw new S(E.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\n\\u539F\\u56E0\\uFF1A\\u5F53\\u524D\\u503C\\u4E3A ${s===void 0?"\\u7F3A\\u5931":JSON.stringify(s)}\\u3002\n\\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===s)return r.sessionPromise;r.controller?.abort();let o=new AbortController;r.controller=o,r.sessionKey=s;let l=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),m=(async()=>{await l,!o.signal.aborted&&await K(e.name,t,{appContext:n,sessionKey:s,signal:o.signal},"onSession")})();return r.sessionPromise=m,m.catch(()=>{r.sessionKey===s&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),m}async function te(e,r){let t=r?.[_e];if(typeof t!="string"||t==="")return;let n=Q(e.name);n.setupPromise||(n.setupPromise=ee(e,r,t,n).catch(o=>{throw n.setupPromise=void 0,o})),await n.setupPromise;let s=n.setupExports?.onSession;typeof s=="function"&&await re(e,n,s)}function ne(){for(let e of U.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let L=e=>a[e]??=Object.create(null);function M(e){try{I.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}function oe(e="default"){return L(e),a}function se(e,r,t,n,s={}){let o=L(e||"default"),l=Object.hasOwn(o,r)?o[r]:void 0,m=l&&typeof l=="object"?l:void 0;m||(m=Object.create(null),o[r]=m),!(Object.hasOwn(m,t)&&m[t])&&(m[t]={version:t,get:n,from:s.from??"unknown",eager:!!s.eager,loaded:!!s.loaded})}function ie(e){let r=(t,n,s)=>{if(t===void 0)return;if(!(typeof t=="number"&&(s?Number.isInteger(t)&&t>=0&&t<=10:Number.isFinite(t)&&t>0)))throw new Error(`[fulgurjs] \\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 ${n} \\u914D\\u7F6E\\u65E0\\u6548\\uFF1A\\u5F53\\u524D\\u4E3A ${String(t)}\\uFF0C\\u5E94\\u4E3A${s?" 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 H(e){for(let r of e){ie(r);let t=c.get(r.name);c.set(r.name,{timeout:D,retries:z,...t,...r,breakerThreshold:r.breaker?.threshold??t?.breakerThreshold??ve,breakerResetMs:r.breaker?.resetMs??t?.breakerResetMs??Ie,state:t?.state??"idle",breakerState:t?.breakerState??{fails:0,openUntil:0},entryInflight:t?.entryInflight??new Map,entryFailCounts:t?.entryFailCounts??new Map,debug:t?.debug??{entry:r.entry,status:"idle",setup:"none"}})}}function ae(e){H([e])}function ce(e){u.push(...e),Z()}async function ue(e,r={}){let t=r.shareScope||"default",n=r.shareKey||e,o=L(t)[n]||{},l=Object.keys(o),m=r.requiredVersion,h=l.filter(f=>m===void 0||m===!1||k(f,m)),d;if(r.singleton&&l.length>0){let f=l.filter($=>o[$].loaded);if(d=[...f.length?f:l].sort(T).pop(),!h.includes(d)){let $=o[d],v=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${n}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u5E94\\u7528\\u8981\\u6C42 ${m??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${l.join("\\u3001")}\\uFF1B\\u4E3A\\u4FDD\\u8BC1\\u5168\\u9875\\u53EA\\u4F7F\\u7528\\u4E00\\u4E2A\\u5B9E\\u4F8B\\uFF0C\\u6700\\u7EC8\\u590D\\u7528 ${$.from} \\u63D0\\u4F9B\\u7684 ${d}\\u3002\n\\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\n\\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 _=new S(E.SHARE_STRICT_VERSION,v,{shareKey:n,requiredVersion:m});throw M({remote:$.from,error:_}),_}let O=`${t}|${n}|${m??"*"}|${d}|${l.join(",")}`;i.has(O)||(i.add(O),console.warn(`[fulgurjs:MFU-010] ${v}`))}}else if(d=[...h].sort(T).pop(),!d){if(r.strictVersion){let $=new S(E.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${t}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${n}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${m}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${l.join("\\u3001")||"\\u65E0"}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u4FEE\\u6B63 shared.requiredVersion\\u3002`);throw M({remote:n,error:$}),$}if(r.fallback)return r.fallback();let f=new S(E.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${n}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u4F5C\\u7528\\u57DF "${t}" \\u4E2D\\u6CA1\\u6709\\u7B26\\u5408 ${m??"\\u4EFB\\u610F\\u7248\\u672C"} \\u8981\\u6C42\\u7684\\u7248\\u672C\\uFF0C\\u4E14\\u672A\\u914D\\u7F6E\\u672C\\u5730\\u526F\\u672C\\u3002\n\\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:n,requiredVersion:m});throw M({remote:n,error:f}),f}let R=o[d];if(I.resolveShare){let f=await I.resolveShare({shareKey:n,shareScope:t,requiredVersion:m,picked:R,available:Object.values(o)});f&&(R=f)}R.loaded=!0;let g=await R.get();return R.value=g,g}function le(e,r={}){let t=r.shareKey||e,n=L(r.shareScope||"default")[t]||{},s=Object.keys(n).filter(o=>n[o].value!==void 0);if(s.length!==0)return n[s.sort(T).pop()].value}function q(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 G(e,r,t){return new Promise((n,s)=>{let o=setTimeout(()=>s(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${t}`)),r);e.then(l=>{clearTimeout(o),n(l)},l=>{clearTimeout(o),s(l)})})}let fe=e=>new Promise(r=>setTimeout(r,e));function N(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 t=`\\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)console.warn(`[fulgurjs] ${t} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`);else throw Object.assign(new Error(t),{code:E.REMOTE_NAME_MISMATCH})}}async function J(e,r){let t=r.entryFailCounts.get(e)??0,n=t>0?`${e}${e.includes("?")?"&":"?"}fulgurjs_retry=${t}`:e,s=r.entryInflight.get(e),o=s??import(n);return s||(r.entryInflight.set(e,o),o.catch(()=>{r.entryInflight.delete(e),r.entryFailCounts.set(e,(r.entryFailCounts.get(e)??0)+1)})),G(o,r.timeout??D,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${q(e)}`)}async function X(e,r){let t=e.shareScope||"default";if(e.container){let o=P.get(e.container);if(o&&o!==t)throw new S(E.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${o}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${t}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return e.container}if(e.containerPromise)return e.containerPromise;let n=e.breakerState;if(n.openUntil>Date.now()){let o=new S(E.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(n.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});throw M({remote:e.name,error:o}),o}e.state="loading",e.debug.status="loading";let s=(async()=>{let o=[];if(e.promise)o.push(async()=>{let g=await G(e.promise(),e.timeout??D,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),f=typeof g=="string"?await J(g,e):g;return N(f,e),f});else for(let g of[e.entry,...e.fallback??[]])o.push(async()=>{let f=await J(g,e);return N(f,e),f});let l,m,h=!1,d=r?.retries??e.retries??z;for(let g of o){for(let f=0;f<=d;f++){let $=performance.now();try{l=await g(),e.lastLoadMs=Math.round(performance.now()-$),e.debug.lastLoadMs=e.lastLoadMs,h=!0;break}catch(v){if(m=v,v?.code)throw v;f<d&&await fe(Math.min(Oe,200*2**f)*(1-Te*(1-2*Math.random())))}}if(h)break}if(!h||!l){let g=q(e.entry),f=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(f.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${g}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),f.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),f.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(f.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${g}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),f.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 S(E.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${g} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${String(m?.message??m)}\n\\u4FEE\\u6CD5\\uFF1A\n${f.join(`\n`)}`,{remote:e.name})}N(l,e);let R=P.get(l);if(R&&R!==t)throw new S(E.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${R}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${t}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof l.init=="function"&&await l.init(a),P.set(l,t),e.container=l,e.state="loaded",e.debug.status="loaded",n.fails=0,l})();e.containerPromise=s;try{return await s}catch(o){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=String(o?.message??o),n.fails+=1,n.fails>=e.breakerThreshold&&(n.openUntil=Date.now()+e.breakerResetMs,n.fails=0),o instanceof S)throw M({remote:e.name,error:o}),o;if(o?.code)throw M({remote:e.name,error:o}),o;let l=new S(E.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(o?.message??o)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name});throw M({remote:e.name,error:l}),l}}function C(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:B(e.slice(r+1))}}function B(e){return e?e.startsWith(".")?e:`./${e}`:""}async function me(e,r){let{remote:t,module:n}=C(e);if(n&&A===t)throw new S(E.SETUP_RECURSION,`\\u73B0\\u8C61\\uFF1A\\u52A0\\u8F7D "${e}" \\u65F6\\uFF0C\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u7684 setup/onSession \\u53C8\\u540C\\u6B65\\u52A0\\u8F7D\\u4E86\\u81EA\\u8EAB\\u6A21\\u5757\\uFF0C\\u5F62\\u6210\\u5FAA\\u73AF\\u7B49\\u5F85\\u3002\n\\u539F\\u56E0\\uFF1A\\u521D\\u59CB\\u5316\\u5C1A\\u672A\\u5B8C\\u6210\\uFF0C\\u4E0D\\u80FD\\u7B49\\u5F85\\u81EA\\u8EAB\\u7684\\u521D\\u59CB\\u5316\\u7ED3\\u679C\\u3002\n\\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:t});try{I.beforeLoadRemote?.({remote:t,module:n})}catch(h){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",h)}let s=c.get(t);if(!s)throw new S(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:t});let o;try{let h=n&&s.manifestUrl?F(e):Promise.resolve();[o]=await Promise.all([X(s,{retries:r?.retries}),h])}catch(h){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`,h),M({remote:t,error:h}),await r.fallbackModule();throw h}if(!n)return o;await te(s,o);let l=`${t}@${s.shareScope||"default"}#${n}`;p.has(l)||p.set(l,o.get(n).catch(h=>{throw p.delete(l),h instanceof S||h?.code?h:new S(E.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u52A0\\u8F7D\\u6A21\\u5757 "${n}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(h?.message??h)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:t,module:n})}));let m;try{m=await p.get(l)}catch(h){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`,h),M({remote:t,error:h}),await r.fallbackModule();throw h}try{I.afterLoadRemote?.({remote:t,module:n,module_ns:m})}catch(h){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",h)}if(m&&typeof m=="object"&&Object.keys(m).length===0){let h=new S(E.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u7684\\u6A21\\u5757 "${n}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:t,module:n});M({remote:t,error:h}),console.error(h.message)}return m}function pe(e){let r=c.get(e);if(!r)throw new S(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return X(r)}async function F(e,r={}){let{remote:t,module:n}=C(e),s=c.get(t);if(!s)throw new S(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:t});let o=r.mode??"preload",l=(d,R)=>{if(d.sheet)return Promise.resolve();let g=w.get(d);if(g)return g;let f=new Promise($=>{let v=()=>{d.removeEventListener("load",v),d.removeEventListener("error",O),$()},O=()=>{M({remote:t,error:new S(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${R}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:t})}),v()};d.addEventListener("load",v,{once:!0}),d.addEventListener("error",O,{once:!0}),d.sheet&&v()});return w.set(d,f),f},m=(d,R)=>{if(typeof document>"u")return Promise.resolve();let g=document.querySelector(`link[href="${d}"]`);if(g)return R==="style"&&o==="preload"?w.get(g)??Promise.resolve():Promise.resolve();let f=document.createElement("link");f.rel=R==="style"?"stylesheet":"modulepreload",f.href=d,o==="prefetch"&&(f.fetchPriority="low");let $=R==="style"?l(f,d):Promise.resolve();return document.head.appendChild(f),R==="style"&&o==="preload"?$:Promise.resolve()},h=d=>{let R=typeof document<"u"?document.baseURI:void 0,g=new URL(s.entry,R||"http://fulgurjs.invalid/");return!g.pathname.endsWith("/")&&!g.pathname.split("/").pop().includes(".")&&(g.pathname+="/"),new URL(d,g).href};try{if(s.manifestUrl){let d=y.get(s.manifestUrl);d||(d=fetch(s.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(g=>g.ok?g.json():void 0),y.set(s.manifestUrl,d),d.then(g=>{g||y.delete(s.manifestUrl)},()=>y.delete(s.manifestUrl)));let R=await d;if(R){let g=R.schemaVersion;if(typeof g=="number"&&(!Number.isInteger(g)||g>1)){M({remote:t,error:new S(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(g)}\\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:t})}),await m(s.entry,"modulepreload");return}await m(s.entry,"modulepreload");let f=R.exposes,$=Array.isArray(f)?f.filter(_=>_&&typeof _=="object").map(_=>[String(_.name??""),_]):f&&typeof f=="object"?Object.entries(f):[],v=n?$.filter(([_,x])=>B(String(x?.name??_))===n):$,O=[];for(let[,_]of v)if(typeof _?.file=="string"&&await m(h(_.file),"modulepreload"),Array.isArray(_?.css))for(let x of _.css){if(typeof x!="string")continue;let de=m(h(x),"style");o==="preload"&&O.push(de)}await Promise.all(O);return}}await m(s.entry,"modulepreload")}catch(d){M({remote:t,error:new S(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(d?.message??d)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:t})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=a,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,t]of c)e[r]={...t.debug,entry:t.entry};return e},errors:[]}),{shareScopeMap:a,initSharing:oe,registerShare:se,registerRemotes:H,registerRemote:ae,registerPlugins:ce,loadShare:ue,getLoadedShare:le,loadRemote:me,getContainer:pe,preloadRemote:F,parseSpec:C,clearSessionState:ne}}var Y=globalThis,b=Y.__FULGURJS_RUNTIME__??Le();Y.__FULGURJS_RUNTIME__=b;try{Object.freeze(b)}catch{}var Fe=W;function De(){return b}var Ve=b.initSharing,Ke=b.registerShare,He=b.registerRemotes,qe=b.registerRemote,Ge=b.registerPlugins,Je=b.loadShare,Xe=b.getLoadedShare,Be=b.loadRemote,We=b.getContainer,ze=b.preloadRemote,Ye=b.parseSpec,Ze=b.clearSessionState,Qe=b.shareScopeMap;function er(a){if(a&&typeof a=="object"&&"default"in a){let c=a.default;return c!==void 0?c:a}return a}var rr=b;export{Ze as clearSessionState,rr as default,We as getContainer,Xe as getLoadedShare,De as getRuntime,Ve as initSharing,Be as loadRemote,Je as loadShare,Ye as parseSpec,ze as preloadRemote,Ge as registerPlugins,qe as registerRemote,He as registerRemotes,Ke as registerShare,b as runtime,Qe as shareScopeMap,er as unwrapDefault,Fe as version};\n';
|
|
2234
|
+
var runtime_code_gen_default = 'var Re=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function N(a){let c=Re.exec(String(a).trim());return c?{major:Number(c[1]),minor:Number(c[2]??0),patch:Number(c[3]??0),pre:c[4]?c[4].split("."):[]}:null}function we(a,c){if(a.length===0&&c.length===0)return 0;if(a.length===0)return 1;if(c.length===0)return-1;let u=Math.max(a.length,c.length);for(let i=0;i<u;i++){let h=a[i],y=c[i];if(h===void 0)return-1;if(y===void 0)return 1;let w=/^\\d+$/.test(h),P=/^\\d+$/.test(y);if(w&&P){let I=Number(h)-Number(y);if(I!==0)return I}else{if(w!==P)return w?-1:1;if(h!==y)return h<y?-1:1}}return 0}function T(a,c){let u=N(a),i=N(c);return!u||!i?a<c?-1:a>c?1:0:u.major!==i.major?u.major-i.major:u.minor!==i.minor?u.minor-i.minor:u.patch!==i.patch?u.patch-i.patch:we(u.pre,i.pre)}var be=/^[a-z]+[+:-]/i;function U(a,c){if(c===!1||c==null||c==="")return!0;let u=String(c).trim();return!u||u==="*"||u==="latest"||be.test(u)?!0:u.split("||").some(i=>Pe(a,i.trim()))}function Pe(a,c){if(!c||c==="*")return!N(a)?.pre.length;let u=c.split(/\\s+-\\s+/);if(u.length===2){let y=u[0].trim(),w=u[1].trim();return!(!U(a,`>=${y}`)||!U(a,`<=${w}`))}let i=N(a);if(!i)return!1;let h=ve(c);if(h===null)return!0;for(let y of h)if(!Oe(i,a,y))return!1;return!(i.pre.length>0&&!h.some(y=>y.ver.pre.length>0)&&!h.some(w=>w.ver.major===i.major&&w.ver.minor===i.minor&&w.ver.patch===i.patch))}function ve(a){let c=[],u=a.trim().split(/\\s+/).filter(Boolean);if(u.length===0)return null;for(let i of u){let h=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(i);if(!h)return null;let y=h[1],w=h[2],P=$e(y,w);if(P===null)return null;c.push(...P)}return c}function $e(a,c){let u=Me(c);if(!u)return null;let{ver:i,partial:h}=u;switch(a){case"^":{let y=_e(i);return y?[{op:">=",ver:i},{op:"<",ver:y}]:null}case"~":{let y=h>=2?{major:i.major,minor:i.minor+1,patch:0,pre:[]}:{major:i.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:i},{op:"<",ver:y}]}case">=":return[{op:">=",ver:i}];case">":return h===1?[{op:">=",ver:{major:i.major+1,minor:0,patch:0,pre:[]}}]:h===2?[{op:">=",ver:{major:i.major,minor:i.minor+1,patch:0,pre:[]}}]:[{op:">",ver:i}];case"<":return h===1?[{op:"<",ver:{major:i.major,minor:0,patch:0,pre:[]}}]:h===2?[{op:"<",ver:{major:i.major,minor:i.minor,patch:0,pre:[]}}]:[{op:"<",ver:i}];case"<=":return[{op:"<=",ver:i}];case"=":case void 0:return h===1?[{op:">=",ver:i},{op:"<",ver:{major:i.major+1,minor:0,patch:0,pre:[]}}]:h===2?[{op:">=",ver:i},{op:"<",ver:{major:i.major,minor:i.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:i}];default:return null}}function _e(a){return a.major>0?{major:a.major+1,minor:0,patch:0,pre:[]}:a.minor>0?{major:0,minor:a.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:a.patch+1,pre:[]}}function Me(a){let c=a.replace(/^v/,"").trim();if(!c||c==="*"||c==="x"||c==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let u=c.split("."),i=[],h=0;for(let P of u.slice(0,3))if(/^\\d+$/.test(P))i.push(Number(P)),h++;else{if(P==="x"||P==="X"||P==="*")break;break}let y=c.split("-"),w=y.length>1?y.slice(1).join("-").split("+")[0].split("."):[];return h===0&&w.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:i[0]??0,minor:i[1]??0,patch:i[2]??0,pre:w},partial:h}}function Le(a,c){switch(c){case">=":return a>=0;case">":return a>0;case"<":return a<0;case"<=":return a<=0;case"=":return a===0}}function Oe(a,c,u){let i=`${a.major}.${a.minor}.${a.patch}`+(a.pre.length?`-${a.pre.join(".")}`:"");if(u.upper)return!(!(T(i,`${u.ver.major}.${u.ver.minor}.${u.ver.patch}`+(u.ver.pre.length?`-${u.ver.pre.join(".")}`:""))>=0)||!(T(i,`${u.upper.major}.${u.upper.minor}.${u.upper.patch}`)<0));let h=T(i,`${u.ver.major}.${u.ver.minor}.${u.ver.patch}`+(u.ver.pre.length?`-${u.ver.pre.join(".")}`:"")),y=Le(h,u.op);return u.ver.pre.length>0&&a.pre.length===0&&(u.op===">"||u.op==="<")?!1:y}var S=class extends Error{code;details;constructor(c,u,i,h){super(`[fulgurjs:${c}] ${u}`,h),this.name="FgError",this.code=c,this.details=i}},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"};var Q="5.3.3";var Ie="__fulgurjsSetup",Te="__FULGURJS_APP_CONFIG__",G=15e3,ee=2,xe=5,ke=3e4,je=4e3,Ne=.2;function Ue(){let a=Object.create(null),c=new Map,u=[],i=new Set,h=new Map,y=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),w=new Map,P=new Map,I=new WeakMap,A=new WeakMap,O={},ne=()=>{for(let e of u)try{e.init?.(O)}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,te=e=>{let r=C.get(e);return r||C.set(e,r={}),r},H=()=>globalThis[Te]??{};async function q(e,r,n,s){let o=l=>l instanceof S?l:new S(R.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${s} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${String(l?.message??l)}\n\\u4FEE\\u6CD5\\uFF1A\\u68C0\\u67E5\\u5E76\\u4FEE\\u590D\\u8BE5 ${s} \\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:s},{cause:l});F=e;let t;try{t=r(n)}catch(l){throw o(l)}finally{F=void 0}try{await t}catch(l){throw o(l)}}async function oe(e,r,n,s){e.debug.setup="pending";try{if(e.manifestUrl)try{await K(`${e.name}/${n}`)}catch{}let o=await r.get(n),t=o?.default;if(typeof t!="function")throw new S(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${o==null?String(o):typeof t}\\uFF0C\\u5E94\\u4E3A\\u51FD\\u6570\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728 setup \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u4E2D\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u51FD\\u6570\\uFF0C\\u4F8B\\u5982 export default async function setup(context) { ... }\\uFF1B\\u5177\\u540D onSession \\u53EF\\u9009\\u3002`,{remote:e.name,module:n});if(o.onSession!==void 0&&typeof o.onSession!="function")throw new S(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AonSession \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof o.onSession}\\uFF0C\\u5E94\\u4E3A\\u51FD\\u6570\\u3002\n\\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});s.setupExports=o,await q(e.name,t,{appContext:H(),signal:(s.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(o){throw e.debug.setup="failed",s.setupExports=void 0,o}}async function se(e,r,n){let s=H(),o=s?.sessionKey;if(typeof o!="string"||o==="")throw new S(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\n\\u539F\\u56E0\\uFF1A\\u5F53\\u524D\\u503C\\u4E3A ${o===void 0?"\\u7F3A\\u5931":JSON.stringify(o)}\\u3002\n\\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===o)return r.sessionPromise;r.controller?.abort();let t=new AbortController;r.controller=t,r.sessionKey=o;let l=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),d=(async()=>{await l,!t.signal.aborted&&await q(e.name,n,{appContext:s,sessionKey:o,signal:t.signal},"onSession")})();return r.sessionPromise=d,d.catch(()=>{r.sessionKey===o&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),d}async function ie(e,r){let n=r?.[Ie];if(typeof n!="string"||n==="")return;let s=te(e.name);s.setupPromise||(s.setupPromise=oe(e,r,n,s).catch(t=>{throw s.setupPromise=void 0,t})),await s.setupPromise;let o=s.setupExports?.onSession;typeof o=="function"&&await se(e,s,o)}function ae(){for(let e of C.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let x=e=>a[e]??=Object.create(null);function v(e){try{O.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}function ce(e="default"){return x(e),a}function J(e,r,n,s,o={}){let t=x(e||"default"),l=Object.hasOwn(t,r)?t[r]:void 0,d=l&&typeof l=="object"?l:void 0;d||(d=Object.create(null),t[r]=d),!(Object.hasOwn(d,n)&&d[n])&&(d[n]={version:n,get:s,from:o.from??"unknown",eager:!!o.eager,loaded:!!o.loaded})}function ue(e){let r=(n,s,o)=>{if(n===void 0)return;if(!(typeof n=="number"&&(o?Number.isInteger(n)&&n>=0&&n<=10:Number.isFinite(n)&&n>0)))throw new Error(`[fulgurjs] \\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 ${s} \\u914D\\u7F6E\\u65E0\\u6548\\uFF1A\\u5F53\\u524D\\u4E3A ${String(n)}\\uFF0C\\u5E94\\u4E3A${o?" 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 X(e){for(let r of e){ue(r);let n=c.get(r.name);c.set(r.name,{timeout:G,retries:ee,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??xe,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??ke,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 le(e){X([e])}function fe(e){u.push(...e),h.clear(),ne()}function k(e,r,n=!1){let s=r.shareScope||"default",o=r.shareKey||e,l=x(s)[o]||{},d=Object.keys(l).filter(m=>!n||r.singleton||l[m].value!==void 0);if(n&&d.length===0)return;let f=r.requiredVersion,p=d.filter(m=>f===void 0||f===!1||U(m,f)),E;if(r.singleton&&d.length>0){let m=d.filter(g=>l[g].loaded);if(E=[...m.length?m:d].sort(T).pop(),!p.includes(E)){let g=l[E],M=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${o}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u5E94\\u7528\\u8981\\u6C42 ${f??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${d.join("\\u3001")}\\uFF1B\\u4E3A\\u4FDD\\u8BC1\\u5168\\u9875\\u53EA\\u4F7F\\u7528\\u4E00\\u4E2A\\u5B9E\\u4F8B\\uFF0C\\u6700\\u7EC8\\u590D\\u7528 ${g.from} \\u63D0\\u4F9B\\u7684 ${E}\\u3002\n\\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\n\\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 L=new S(R.SHARE_STRICT_VERSION,M,{shareKey:o,requiredVersion:f});throw v({remote:g.from,error:L}),L}let $=`${s}|${o}|${f??"*"}|${E}|${d.join(",")}`;i.has($)||(i.add($),console.warn(`[fulgurjs:MFU-010] ${M}`))}}else if(E=[...p].sort(T).pop(),!E){if(r.strictVersion){let m=new S(R.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${s}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${o}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${f}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${d.join("\\u3001")||"\\u65E0"}\\u3002\n\\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:o,error:m}),m}return}return l[E]}function de(e,r,n){let s=r.localVersion;if(!s||n===void 0)return;let o=r.shareScope||"default",t=r.shareKey||e,l=x(o),d=Object.hasOwn(l,t)?l[t]:void 0;if(d&&Object.keys(d).length>0){try{let p=k(e,r);p&&p.value===void 0&&p.version===s&&(p.value=n,p.loaded=!0)}catch{}return}J(o,t,s,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let f=l[t]?.[s];f&&(f.value=n)}async function me(e,r={}){let n=r.shareScope||"default",s=r.shareKey||e,o=x(n)[s]||{},t=k(e,r);if(!t){if(r.fallback){let p=await r.fallback();return de(e,r,p),p}let f=new S(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${s}"\\u3002\n\\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\n\\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:s,requiredVersion:r.requiredVersion});throw v({remote:s,error:f}),f}if(O.resolveShare){let f=await O.resolveShare({shareKey:s,shareScope:n,requiredVersion:r.requiredVersion,picked:t,available:Object.values(o)});f&&(t=f)}if(t.value!==void 0)return h.set(y(e,r),t),t.value;if(t.loaded=!0,!t.pendingGet)try{t.pendingGet=t.get()}catch(f){t.pendingGet=Promise.reject(f)}let l=t.pendingGet,d;try{d=await l}catch(f){if(t.value!==void 0)return h.set(y(e,r),t),t.value;throw t.loaded=!1,f}finally{t.pendingGet===l&&(t.pendingGet=void 0)}return t.value===void 0&&(t.value=d),h.set(y(e,r),t),t.value}function pe(e,r={}){return O.resolveShare?h.get(y(e,r))?.value:k(e,r,!0)?.value}function ge(e,r,n,s){if(s===void 0)return;let o;try{o=k(e,r)}catch{return}!o||o.value!==void 0||o.version!==n||(o.value=s,o.loaded=!0)}function B(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 W(e,r,n){return new Promise((s,o)=>{let t=setTimeout(()=>o(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${n}`)),r);e.then(l=>{clearTimeout(t),s(l)},l=>{clearTimeout(t),o(l)})})}let he=e=>new Promise(r=>setTimeout(r,e));function V(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)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 z(e,r){let n=r.entryFailCounts.get(e)??0,s=n>0?`${e}${e.includes("?")?"&":"?"}fulgurjs_retry=${n}`:e,o=r.entryInflight.get(e),t=o??import(s);return o||(r.entryInflight.set(e,t),t.catch(()=>{r.entryInflight.delete(e),r.entryFailCounts.set(e,(r.entryFailCounts.get(e)??0)+1)})),W(t,r.timeout??G,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${B(e)}`)}async function Y(e,r){let n=e.shareScope||"default";if(e.container){let t=A.get(e.container);if(t&&t!==n)throw new S(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${t}" \\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 s=e.breakerState;if(s.openUntil>Date.now()){let t=new S(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(s.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});throw v({remote:e.name,error:t}),t}e.state="loading",e.debug.status="loading";let o=(async()=>{let t=[];if(e.promise)t.push(async()=>{let m=await W(e.promise(),e.timeout??G,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),g=typeof m=="string"?await z(m,e):m;return V(g,e),g});else for(let m of[e.entry,...e.fallback??[]])t.push(async()=>{let g=await z(m,e);return V(g,e),g});let l,d,f=!1,p=r?.retries??e.retries??ee;for(let m of t){for(let g=0;g<=p;g++){let M=performance.now();try{l=await m(),e.lastLoadMs=Math.round(performance.now()-M),e.debug.lastLoadMs=e.lastLoadMs,f=!0;break}catch($){if(d=$,$?.code)throw $;g<p&&await he(Math.min(je,200*2**g)*(1-Ne*(1-2*Math.random())))}}if(f)break}if(!f||!l){let m=B(e.entry),g=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(g.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${m}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),g.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),g.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(g.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${m}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),g.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 S(R.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${m} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${String(d?.message??d)}\n\\u4FEE\\u6CD5\\uFF1A\n${g.join(`\n`)}`,{remote:e.name})}V(l,e);let E=A.get(l);if(E&&E!==n)throw new S(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${E}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof l.init=="function"&&await l.init(a),A.set(l,n),e.container=l,e.state="loaded",e.debug.status="loaded",s.fails=0,l})();e.containerPromise=o;try{return await o}catch(t){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=String(t?.message??t),s.fails+=1,s.fails>=e.breakerThreshold&&(s.openUntil=Date.now()+e.breakerResetMs,s.fails=0),t instanceof S)throw v({remote:e.name,error:t}),t;if(t?.code)throw v({remote:e.name,error:t}),t;let l=new S(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(t?.message??t)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name});throw v({remote:e.name,error:l}),l}}function D(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:Z(e.slice(r+1))}}function Z(e){return e?e.startsWith(".")?e:`./${e}`:""}async function ye(e,r){let{remote:n,module:s}=D(e);if(s&&F===n)throw new S(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\n\\u539F\\u56E0\\uFF1A\\u521D\\u59CB\\u5316\\u5C1A\\u672A\\u5B8C\\u6210\\uFF0C\\u4E0D\\u80FD\\u7B49\\u5F85\\u81EA\\u8EAB\\u7684\\u521D\\u59CB\\u5316\\u7ED3\\u679C\\u3002\n\\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{O.beforeLoadRemote?.({remote:n,module:s})}catch(f){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",f)}let o=c.get(n);if(!o)throw new S(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 t;try{let f=s&&o.manifestUrl?K(e):Promise.resolve();[t]=await Promise.all([Y(o,{retries:r?.retries}),f])}catch(f){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`,f),v({remote:n,error:f}),await r.fallbackModule();throw f}if(!s)return t;await ie(o,t);let l=`${n}@${o.shareScope||"default"}#${s}`;w.has(l)||w.set(l,t.get(s).catch(f=>{throw w.delete(l),f instanceof S||f?.code?f:new S(R.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${s}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(f?.message??f)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:s})}));let d;try{d=await w.get(l)}catch(f){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`,f),v({remote:n,error:f}),await r.fallbackModule();throw f}try{O.afterLoadRemote?.({remote:n,module:s,module_ns:d})}catch(f){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",f)}if(d&&typeof d=="object"&&Object.keys(d).length===0){let f=new S(R.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6A21\\u5757 "${s}" \\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:s});v({remote:n,error:f}),console.error(f.message)}return d}function Se(e){let r=c.get(e);if(!r)throw new S(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return Y(r)}async function K(e,r={}){let{remote:n,module:s}=D(e),o=c.get(n);if(!o)throw new S(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:n});let t=r.mode??"preload",l=(p,E)=>{if(p.sheet)return Promise.resolve();let m=I.get(p);if(m)return m;let g=new Promise(M=>{let $=()=>{p.removeEventListener("load",$),p.removeEventListener("error",L),M()},L=()=>{v({remote:n,error:new S(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${E}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:n})}),$()};p.addEventListener("load",$,{once:!0}),p.addEventListener("error",L,{once:!0}),p.sheet&&$()});return I.set(p,g),g},d=(p,E)=>{if(typeof document>"u")return Promise.resolve();let m=document.querySelector(`link[href="${p}"]`);if(m)return E==="style"&&t==="preload"?I.get(m)??Promise.resolve():Promise.resolve();let g=document.createElement("link");g.rel=E==="style"?"stylesheet":"modulepreload",g.href=p,t==="prefetch"&&(g.fetchPriority="low");let M=E==="style"?l(g,p):Promise.resolve();return document.head.appendChild(g),E==="style"&&t==="preload"?M:Promise.resolve()},f=p=>{let E=typeof document<"u"?document.baseURI:void 0,m=new URL(o.entry,E||"http://fulgurjs.invalid/");return!m.pathname.endsWith("/")&&!m.pathname.split("/").pop().includes(".")&&(m.pathname+="/"),new URL(p,m).href};try{if(o.manifestUrl){let p=P.get(o.manifestUrl);p||(p=fetch(o.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(m=>m.ok?m.json():void 0),P.set(o.manifestUrl,p),p.then(m=>{m||P.delete(o.manifestUrl)},()=>P.delete(o.manifestUrl)));let E=await p;if(E){let m=E.schemaVersion;if(typeof m=="number"&&(!Number.isInteger(m)||m>1)){v({remote:n,error:new S(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(m)}\\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 d(o.entry,"modulepreload");return}await d(o.entry,"modulepreload");let g=E.exposes,M=Array.isArray(g)?g.filter(_=>_&&typeof _=="object").map(_=>[String(_.name??""),_]):g&&typeof g=="object"?Object.entries(g):[],$=s?M.filter(([_,j])=>Z(String(j?.name??_))===s):M,L=[];for(let[,_]of $)if(typeof _?.file=="string"&&await d(f(_.file),"modulepreload"),Array.isArray(_?.css))for(let j of _.css){if(typeof j!="string")continue;let Ee=d(f(j),"style");t==="preload"&&L.push(Ee)}await Promise.all(L);return}}await d(o.entry,"modulepreload")}catch(p){v({remote:n,error:new S(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(p?.message??p)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:n})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=a,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,n]of c)e[r]={...n.debug,entry:n.entry};return e},errors:[]}),{shareScopeMap:a,initSharing:ce,registerShare:J,registerRemotes:X,registerRemote:le,registerPlugins:fe,loadShare:me,getLoadedShare:pe,pinLoadedShare:ge,loadRemote:ye,getContainer:Se,preloadRemote:K,parseSpec:D,clearSessionState:ae}}var re=globalThis,b=re.__FULGURJS_RUNTIME__??Ue();re.__FULGURJS_RUNTIME__=b;try{Object.freeze(b)}catch{}var He=Q;function qe(){return b}var Je=b.initSharing,Xe=b.registerShare,Be=b.registerRemotes,We=b.registerRemote,ze=b.registerPlugins,Ye=b.loadShare,Ze=b.getLoadedShare,Qe=b.pinLoadedShare,er=b.loadRemote,rr=b.getContainer,nr=b.preloadRemote,tr=b.parseSpec,or=b.clearSessionState,sr=b.shareScopeMap;function ir(a){if(a&&typeof a=="object"&&"default"in a){let c=a.default;return c!==void 0?c:a}return a}var ar=b;export{or as clearSessionState,ar as default,rr as getContainer,Ze as getLoadedShare,qe as getRuntime,Je as initSharing,er as loadRemote,Ye as loadShare,tr as parseSpec,Qe as pinLoadedShare,nr as preloadRemote,ze as registerPlugins,We as registerRemote,Be as registerRemotes,Xe as registerShare,b as runtime,sr as shareScopeMap,ir as unwrapDefault,He as version};\n';
|
|
2220
2235
|
|
|
2221
2236
|
// src/index.ts
|
|
2222
2237
|
function readRuntimeCode() {
|
|
@@ -2260,7 +2275,8 @@ function injectInitScript(html, scriptSrc) {
|
|
|
2260
2275
|
var RUNTIME_CHUNK_NAME = "fulgurjs-runtime";
|
|
2261
2276
|
var REMOTE_FACADE_CHUNK_NAME = "fulgurjs-remote-facades";
|
|
2262
2277
|
function facadeChunkOf(id) {
|
|
2263
|
-
|
|
2278
|
+
if (id.includes("preload-helper")) return "fulgurjs-preload-helper";
|
|
2279
|
+
const bare = id.replace(/^\0/, "").split("?")[0];
|
|
2264
2280
|
if (bare === "virtual:fulgurjs-runtime" || bare === "virtual:fulgurjs-runtime-proxy") {
|
|
2265
2281
|
return RUNTIME_CHUNK_NAME;
|
|
2266
2282
|
}
|
|
@@ -2270,20 +2286,36 @@ function facadeChunkOf(id) {
|
|
|
2270
2286
|
const remoteName = body.slice("__remote__/".length).split("/")[0] || "unknown";
|
|
2271
2287
|
return REMOTE_FACADE_CHUNK_NAME + "-" + remoteName.replace(/[^A-Za-z0-9_-]/g, "_");
|
|
2272
2288
|
}
|
|
2289
|
+
const keyName = (key) => key.replace(/[^A-Za-z0-9_-]/g, "_") || "unknown";
|
|
2273
2290
|
const shareKey = body.split("?")[0];
|
|
2274
|
-
return "fulgurjs-shared-" + (shareKey
|
|
2291
|
+
if (id.includes("?f=")) return "fulgurjs-shared-" + keyName(shareKey);
|
|
2292
|
+
return "fulgurjs-provider-" + keyName(shareKey);
|
|
2275
2293
|
}
|
|
2276
2294
|
if (bare.startsWith("virtual:fulgurjs-shared-ns:") || bare.startsWith("virtual:fulgurjs-cjs-ns:")) {
|
|
2277
2295
|
const prefix = bare.startsWith("virtual:fulgurjs-shared-ns:") ? "virtual:fulgurjs-shared-ns:" : "virtual:fulgurjs-cjs-ns:";
|
|
2278
2296
|
const shareKey = bare.slice(prefix.length);
|
|
2279
|
-
|
|
2297
|
+
const keyName = shareKey.replace(/[^A-Za-z0-9_-]/g, "_") || "unknown";
|
|
2298
|
+
if (bare.startsWith("virtual:fulgurjs-cjs-ns:")) return "fulgurjs-provider-" + keyName;
|
|
2299
|
+
return "fulgurjs-shared-" + keyName;
|
|
2280
2300
|
}
|
|
2281
2301
|
return null;
|
|
2282
2302
|
}
|
|
2303
|
+
function isOwnPackageModule(id) {
|
|
2304
|
+
return id.includes("/node_modules/@fulgurjs/federation/");
|
|
2305
|
+
}
|
|
2306
|
+
function providerChunkOf(id, roots) {
|
|
2307
|
+
if (roots.length === 0) return void 0;
|
|
2308
|
+
const clean = id.replace(/^\0/, "").split("?")[0];
|
|
2309
|
+
const provider = roots.find((p) => clean.startsWith(p.root));
|
|
2310
|
+
if (!provider) return void 0;
|
|
2311
|
+
return "fulgurjs-provider-" + (provider.shareKey.replace(/[^A-Za-z0-9_-]/g, "_") || "unknown");
|
|
2312
|
+
}
|
|
2283
2313
|
function federation(options) {
|
|
2284
2314
|
let remoteSchemaPromise = null;
|
|
2285
2315
|
const state = {
|
|
2286
2316
|
command: "serve",
|
|
2317
|
+
rolldownBuild: false,
|
|
2318
|
+
providerRoots: [],
|
|
2287
2319
|
base: "/",
|
|
2288
2320
|
exposeAbsPaths: {},
|
|
2289
2321
|
exposeFiles: {},
|
|
@@ -2307,6 +2339,7 @@ function federation(options) {
|
|
|
2307
2339
|
const root = import_node_path6.default.resolve(userConfig.root ?? process.cwd());
|
|
2308
2340
|
const normalized = normalizeOptions(options, root, env.command);
|
|
2309
2341
|
state.normalized = normalized;
|
|
2342
|
+
state.rolldownBuild = env.command === "build" && Number((readInstalledVersion(root, "vite") ?? "0").split(".")[0]) >= 8;
|
|
2310
2343
|
const extra = {};
|
|
2311
2344
|
if (env.command === "serve" && normalized.exposes.length > 0 && normalized.devSharedSelf) {
|
|
2312
2345
|
const aliasToShare = /* @__PURE__ */ new Map();
|
|
@@ -2434,6 +2467,7 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2434
2467
|
const wrapped = (id, meta) => {
|
|
2435
2468
|
const facade = facadeChunkOf(id);
|
|
2436
2469
|
if (facade) return facade;
|
|
2470
|
+
if (isOwnPackageModule(id)) return void 0;
|
|
2437
2471
|
return userFn(id, meta);
|
|
2438
2472
|
};
|
|
2439
2473
|
const extraBuild = extra.build ??= {};
|
|
@@ -2445,6 +2479,7 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2445
2479
|
const wrapped = (id) => {
|
|
2446
2480
|
const facade = facadeChunkOf(id);
|
|
2447
2481
|
if (facade) return facade;
|
|
2482
|
+
if (isOwnPackageModule(id)) return void 0;
|
|
2448
2483
|
return state.manualChunkGroups.get(id.split("?")[0]) ?? state.manualChunkGroups.get(id);
|
|
2449
2484
|
};
|
|
2450
2485
|
const extraBuild = extra.build ??= {};
|
|
@@ -2458,7 +2493,8 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2458
2493
|
const wrap = (userFn) => (id, meta) => {
|
|
2459
2494
|
const facade = facadeChunkOf(id);
|
|
2460
2495
|
if (facade) return facade;
|
|
2461
|
-
|
|
2496
|
+
if (isOwnPackageModule(id)) return void 0;
|
|
2497
|
+
return providerChunkOf(id, state.providerRoots) ?? userFn?.(id, meta);
|
|
2462
2498
|
};
|
|
2463
2499
|
const extraBuild = extra.build ??= {};
|
|
2464
2500
|
if (Array.isArray(userOutput)) {
|
|
@@ -2493,6 +2529,7 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2493
2529
|
manualChunks: (id, meta) => {
|
|
2494
2530
|
const facade = facadeChunkOf(id);
|
|
2495
2531
|
if (facade) return facade;
|
|
2532
|
+
if (isOwnPackageModule(id)) return void 0;
|
|
2496
2533
|
return groupOf(id);
|
|
2497
2534
|
}
|
|
2498
2535
|
}
|
|
@@ -2505,7 +2542,7 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2505
2542
|
}
|
|
2506
2543
|
if (normalized.exposes.length > 0) {
|
|
2507
2544
|
const userOutput3 = userConfig.build?.rollupOptions?.output;
|
|
2508
|
-
const reactDomChunkOf = (id) => /[\\/]node_modules[\\/]react-dom[\\/]/.test(id.split("?")[0]) ? "fulgurjs-
|
|
2545
|
+
const reactDomChunkOf = (id) => /[\\/]node_modules[\\/]react-dom[\\/]/.test(id.split("?")[0]) ? "fulgurjs-provider-react-dom" : void 0;
|
|
2509
2546
|
if (Array.isArray(userOutput3)) {
|
|
2510
2547
|
console.warn(
|
|
2511
2548
|
formatFulgurjsDiagnostic({
|
|
@@ -2522,10 +2559,13 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2522
2559
|
const userManualChunks3 = userOutput3?.manualChunks;
|
|
2523
2560
|
const userFn3 = typeof userManualChunks3 === "function" ? userManualChunks3 : void 0;
|
|
2524
2561
|
const combined = (id, meta) => {
|
|
2562
|
+
if (isOwnPackageModule(id)) return facadeChunkOf(id) ?? reactDomChunkOf(id) ?? void 0;
|
|
2525
2563
|
const prev = previousMc?.(id, meta);
|
|
2526
2564
|
if (prev !== void 0) return prev;
|
|
2527
2565
|
const user = userFn3?.(id, meta);
|
|
2528
2566
|
if (user !== void 0) return user;
|
|
2567
|
+
const provider = providerChunkOf(id, state.providerRoots);
|
|
2568
|
+
if (provider) return provider;
|
|
2529
2569
|
const facade = facadeChunkOf(id);
|
|
2530
2570
|
if (facade) return facade;
|
|
2531
2571
|
return reactDomChunkOf(id);
|
|
@@ -2565,6 +2605,10 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2565
2605
|
}
|
|
2566
2606
|
},
|
|
2567
2607
|
resolveId(source, importer) {
|
|
2608
|
+
if (state.normalized && importer && (importer.includes("virtual:fulgurjs-shared:") || importer.includes("virtual:fulgurjs-shared-ns:")) && /^\.\.?\//.test(source) && !source.startsWith("virtual:fulgurjs-")) {
|
|
2609
|
+
const resolved = import_node_path6.default.resolve(state.normalized.root, source);
|
|
2610
|
+
return resolved + (source.match(/\?[^/]*$/)?.[0] ?? "");
|
|
2611
|
+
}
|
|
2568
2612
|
let s = source;
|
|
2569
2613
|
if (s.startsWith("/@id/")) s = s.slice(5);
|
|
2570
2614
|
if (s.startsWith("__x00__")) s = "\0" + s.slice(7);
|
|
@@ -2684,7 +2728,7 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2684
2728
|
const item2 = state.normalized.shared.find((x) => x.shareKey === body);
|
|
2685
2729
|
if (item2 && item2.import !== false) {
|
|
2686
2730
|
const names = /^(\.|\/)/.test(item2.import) ? [] : enumerateCjsExports(item2.import, state.normalized.root);
|
|
2687
|
-
return genSharedFacade(item2.import, names, state.facadeDynamic);
|
|
2731
|
+
return genSharedFacade(item2.import, names, state.facadeDynamic && !state.rolldownBuild);
|
|
2688
2732
|
}
|
|
2689
2733
|
return null;
|
|
2690
2734
|
}
|
|
@@ -2701,6 +2745,7 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2701
2745
|
...item.requiredVersion !== false ? ["requiredVersion: " + JSON.stringify(item.requiredVersion)] : [],
|
|
2702
2746
|
...item.singleton ? ["singleton: true"] : [],
|
|
2703
2747
|
...item.strictVersion ? ["strictVersion: true"] : [],
|
|
2748
|
+
"localVersion: " + JSON.stringify(item.version),
|
|
2704
2749
|
"fallback: () => import(" + JSON.stringify(item.import) + ")"
|
|
2705
2750
|
];
|
|
2706
2751
|
const call = "__fulgurjs_loadShare(" + JSON.stringify(item.shareKey) + ", { " + opts.join(", ") + " })";
|
|
@@ -2769,6 +2814,21 @@ ${code}`, map: null };
|
|
|
2769
2814
|
async buildStart() {
|
|
2770
2815
|
if (state.command !== "build" || !state.normalized) return;
|
|
2771
2816
|
const n = state.normalized;
|
|
2817
|
+
state.providerRoots = [];
|
|
2818
|
+
{
|
|
2819
|
+
for (const item of n.shared) {
|
|
2820
|
+
if (item.import === false) continue;
|
|
2821
|
+
const resolved = await this.resolve(item.import, import_node_path6.default.join(n.root, "index.html"));
|
|
2822
|
+
const file = resolved?.id.replace(/^\0/, "").split("?")[0];
|
|
2823
|
+
if (!file) continue;
|
|
2824
|
+
const marker = "/node_modules/";
|
|
2825
|
+
const pos = file.lastIndexOf(marker);
|
|
2826
|
+
if (pos === -1) continue;
|
|
2827
|
+
const parts = file.slice(pos + marker.length).split("/");
|
|
2828
|
+
const pkg = parts[0].startsWith("@") ? parts.slice(0, 2).join("/") : parts[0];
|
|
2829
|
+
state.providerRoots.push({ root: file.slice(0, pos + marker.length) + pkg + "/", shareKey: item.shareKey });
|
|
2830
|
+
}
|
|
2831
|
+
}
|
|
2772
2832
|
if (state.manualChunkSpecsPending) {
|
|
2773
2833
|
for (const [group, specifier] of state.manualChunkSpecsPending) {
|
|
2774
2834
|
try {
|
|
@@ -2855,6 +2915,67 @@ ${code}`, map: null };
|
|
|
2855
2915
|
});
|
|
2856
2916
|
}
|
|
2857
2917
|
},
|
|
2918
|
+
outputOptions(output) {
|
|
2919
|
+
if (!state.rolldownBuild) return null;
|
|
2920
|
+
const protectedChunk = (id) => {
|
|
2921
|
+
if (id.includes("preload-helper")) return "fulgurjs-preload-helper";
|
|
2922
|
+
if (isOwnPackageModule(id)) return "fulgurjs-internal";
|
|
2923
|
+
const clean = id.replace(/^\0/, "").split("?")[0];
|
|
2924
|
+
const keyName = (key) => key.replace(/[^A-Za-z0-9_-]/g, "_") || "unknown";
|
|
2925
|
+
if (clean.startsWith(SHARED_FACADE_PREFIX) && !id.includes("?f=")) {
|
|
2926
|
+
return "fulgurjs-provider-" + keyName(clean.slice(SHARED_FACADE_PREFIX.length));
|
|
2927
|
+
}
|
|
2928
|
+
if (clean.startsWith("virtual:fulgurjs-cjs-ns:")) {
|
|
2929
|
+
return "fulgurjs-cjs-" + keyName(clean.slice("virtual:fulgurjs-cjs-ns:".length));
|
|
2930
|
+
}
|
|
2931
|
+
const provider = state.providerRoots.find((p) => clean.startsWith(p.root));
|
|
2932
|
+
if (provider) return "fulgurjs-provider-" + keyName(provider.shareKey);
|
|
2933
|
+
return facadeChunkOf(id) ?? void 0;
|
|
2934
|
+
};
|
|
2935
|
+
const native = output;
|
|
2936
|
+
if (native.codeSplitting === false || output.inlineDynamicImports || output.preserveModules) {
|
|
2937
|
+
this.error("[fulgurjs] Vite 8 \u8054\u90A6\u6784\u5EFA\u9700\u8981\u72EC\u7ACB\u7684\u5171\u4EAB\u63D0\u4F9B\u6A21\u5757\u4E0E\u534F\u5546\u6A21\u5757\u3002\u8BF7\u79FB\u9664 codeSplitting: false\u3001inlineDynamicImports: true \u6216 preserveModules: true \u540E\u91CD\u5EFA\u3002");
|
|
2938
|
+
}
|
|
2939
|
+
const splitting = typeof native.codeSplitting === "object" ? native.codeSplitting : native.advancedChunks ?? {};
|
|
2940
|
+
const groups = splitting.groups ?? [];
|
|
2941
|
+
const userGroups = [...groups];
|
|
2942
|
+
if (output.manualChunks && !splitting.groups) {
|
|
2943
|
+
const manual = output.manualChunks;
|
|
2944
|
+
if (typeof manual === "function") {
|
|
2945
|
+
userGroups.push({
|
|
2946
|
+
name: (id, ctx) => protectedChunk(id) || isOwnPackageModule(id) ? null : manual(id, { getModuleInfo: ctx.getModuleInfo }) ?? null
|
|
2947
|
+
});
|
|
2948
|
+
} else {
|
|
2949
|
+
for (const [name, specs] of Object.entries(manual)) {
|
|
2950
|
+
userGroups.push({
|
|
2951
|
+
name,
|
|
2952
|
+
test: (id) => !protectedChunk(id) && !isOwnPackageModule(id) && specs.some(
|
|
2953
|
+
(spec) => id.includes("/node_modules/" + spec + "/") || id === spec
|
|
2954
|
+
)
|
|
2955
|
+
});
|
|
2956
|
+
}
|
|
2957
|
+
}
|
|
2958
|
+
}
|
|
2959
|
+
const priority = Math.max(0, ...groups.map((g) => g.priority ?? 0)) + 1;
|
|
2960
|
+
return {
|
|
2961
|
+
...output,
|
|
2962
|
+
manualChunks: void 0,
|
|
2963
|
+
advancedChunks: void 0,
|
|
2964
|
+
strictExecutionOrder: true,
|
|
2965
|
+
codeSplitting: {
|
|
2966
|
+
...splitting,
|
|
2967
|
+
groups: [{
|
|
2968
|
+
name: (id) => protectedChunk(id),
|
|
2969
|
+
test: (id) => protectedChunk(id) !== void 0,
|
|
2970
|
+
priority,
|
|
2971
|
+
minSize: 0,
|
|
2972
|
+
minShareCount: 1,
|
|
2973
|
+
maxSize: Infinity,
|
|
2974
|
+
includeDependenciesRecursively: false
|
|
2975
|
+
}, ...userGroups]
|
|
2976
|
+
}
|
|
2977
|
+
};
|
|
2978
|
+
},
|
|
2858
2979
|
generateBundle: {
|
|
2859
2980
|
order: "post",
|
|
2860
2981
|
handler(_opts, bundle) {
|