@fulgurjs/federation 5.6.0 → 5.7.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/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.6.0";
46
+ var RUNTIME_VERSION = "5.7.1";
47
47
 
48
48
  // src/dev-cors.ts
49
49
  function normalizeDevCorsOrigins(input) {
@@ -500,7 +500,7 @@ function normalizeOptions(options, root, command) {
500
500
  runtime: options.runtime,
501
501
  runtimeChunk: options.runtimeChunk,
502
502
  manifest: options.manifest === void 0 ? true : !!options.manifest,
503
- runtimePlugins: options.runtimePlugins ?? [],
503
+ runtimePlugins: (options.runtimePlugins ?? []).map((id) => id.startsWith(".") ? import_node_path.default.resolve(root, id) : id),
504
504
  dts: options.dts === void 0 ? true : options.dts,
505
505
  root,
506
506
  pluginVersion: RUNTIME_VERSION,
@@ -726,19 +726,24 @@ function genCjsNsFacade(item, exportNames, importTarget) {
726
726
  `shareKey: ${JSON.stringify(item.shareKey)}`,
727
727
  ...item.requiredVersion !== false ? [`requiredVersion: ${JSON.stringify(item.requiredVersion)}`] : [],
728
728
  ...item.singleton ? ["singleton: true"] : [],
729
- ...item.strictVersion ? ["strictVersion: true"] : []
729
+ ...item.strictVersion ? ["strictVersion: true"] : [],
730
+ `localVersion: ${JSON.stringify(item.version)}`
730
731
  ];
731
732
  const lines = [
732
- `import { getLoadedShare as __fulgurjs_gls, pinLoadedShare as __fulgurjs_pin, unwrapDefault as __fulgurjsU } from "virtual:fulgurjs-runtime";`,
733
+ // loadShareSync(2026-10-03 语义补修):与异步 loadShare 同一选择器(全注册版本)
734
+ // 与 strictVersion 语义(冲突抛 MFU-003 不吞)、resolveShare 快照/同步决策参与;
735
+ // 旧形态 getLoadedShare 的 readyOnly 过滤会把「已注册未加载」的本地版本排除出
736
+ // 候选集,非 singleton(strictVersion 默认 true)下误判「无满足版本」而拒绝。
737
+ `import { loadShareSync as __fulgurjs_ls, pinLoadedShare as __fulgurjs_pin, unwrapDefault as __fulgurjsU } from "virtual:fulgurjs-runtime";`,
733
738
  // importTarget 为 load 期解析出的绝对 id(proxy 虚拟 id 上下文里裸包名无法 node 解析);
734
739
  // 兜底保留裸包名(与命名空间门面同语义,无 proxy 载体时可解析)
735
740
  `import * as __fulgurjs_local from ${JSON.stringify(importTarget ?? item.import)};`,
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;`,
741
+ `const __fulgurjs_r = __fulgurjs_ls(${JSON.stringify(item.shareKey)}, { ${opts.join(", ")} });`,
742
+ // kind=local:空作用域/选中版本==本地版本——登记本地副本,使先于协商门面求值的
743
+ // 垫片(jsx-runtime 拖入 provider chunk 的场景)与后续协商收敛到同一份实例,
744
+ // 杜绝单例双实例。
745
+ `if (__fulgurjs_r.kind !== 'ready') __fulgurjs_pin(${JSON.stringify(item.shareKey)}, { ${opts.join(", ")} }, ${JSON.stringify(item.version)}, __fulgurjs_local);`,
746
+ `const __fulgurjs_m = __fulgurjs_r.kind === 'ready' ? __fulgurjs_r.value : __fulgurjs_local;`,
742
747
  `const __fulgurjs_d = __fulgurjsU(__fulgurjs_m);`,
743
748
  `export default __fulgurjs_d;`
744
749
  ];
@@ -780,15 +785,13 @@ function shareOptsLines(item) {
780
785
  }
781
786
  function genBindingFacadeSync(item, bindings, importTarget) {
782
787
  const opts = shareOptsLines(item);
788
+ const optsWithLocal = [...opts, `localVersion: ${JSON.stringify(item.version)}`];
783
789
  const lines = [
784
- `import { getLoadedShare as __fulgurjs_gls, pinLoadedShare as __fulgurjs_pin, unwrapDefault as __fulgurjsU } from "virtual:fulgurjs-runtime";`,
790
+ `import { loadShareSync as __fulgurjs_ls, pinLoadedShare as __fulgurjs_pin, unwrapDefault as __fulgurjsU } from "virtual:fulgurjs-runtime";`,
785
791
  `import * as __fulgurjs_local from ${JSON.stringify(importTarget)};`,
786
- // strictVersion 版本冲突时 getLoadedShare 会抛 MFU-003:同步门面与 TLA 路径的
787
- // loadShare→fallback 语义对齐——回退本地副本,不让协商冲突杀死模块求值
788
- `let __fulgurjs_snap;`,
789
- `try { __fulgurjs_snap = __fulgurjs_gls(${JSON.stringify(item.shareKey)}, { ${opts.join(", ")} }); } catch {}`,
790
- `if (__fulgurjs_snap === undefined) __fulgurjs_pin(${JSON.stringify(item.shareKey)}, { ${opts.join(", ")} }, ${JSON.stringify(item.version)}, __fulgurjs_local);`,
791
- `const __fulgurjs_m = __fulgurjs_snap ?? __fulgurjs_local;`
792
+ `const __fulgurjs_r = __fulgurjs_ls(${JSON.stringify(item.shareKey)}, { ${optsWithLocal.join(", ")} });`,
793
+ `const __fulgurjs_m = __fulgurjs_r.kind === 'ready' ? __fulgurjs_r.value : __fulgurjs_local;`,
794
+ `if (__fulgurjs_r.kind !== 'ready') __fulgurjs_pin(${JSON.stringify(item.shareKey)}, { ${optsWithLocal.join(", ")} }, ${JSON.stringify(item.version)}, __fulgurjs_local);`
792
795
  ];
793
796
  const seen = /* @__PURE__ */ new Set();
794
797
  for (const bRaw of bindings) {
@@ -805,13 +808,13 @@ function genBindingFacadeSync(item, bindings, importTarget) {
805
808
  }
806
809
  function genSharedNsFacadeSync(item, exportNames, importTarget) {
807
810
  const opts = shareOptsLines(item);
811
+ const optsWithLocal = [...opts, `localVersion: ${JSON.stringify(item.version)}`];
808
812
  const lines = [
809
- `import { getLoadedShare as __fulgurjs_gls, pinLoadedShare as __fulgurjs_pin, unwrapDefault as __fulgurjsU } from "virtual:fulgurjs-runtime";`,
813
+ `import { loadShareSync as __fulgurjs_ls, pinLoadedShare as __fulgurjs_pin, unwrapDefault as __fulgurjsU } from "virtual:fulgurjs-runtime";`,
810
814
  `import * as __fulgurjs_local from ${JSON.stringify(importTarget)};`,
811
- `let __fulgurjs_snap;`,
812
- `try { __fulgurjs_snap = __fulgurjs_gls(${JSON.stringify(item.shareKey)}, { ${opts.join(", ")} }); } catch {}`,
813
- `if (__fulgurjs_snap === undefined) __fulgurjs_pin(${JSON.stringify(item.shareKey)}, { ${opts.join(", ")} }, ${JSON.stringify(item.version)}, __fulgurjs_local);`,
814
- `const __fulgurjs_m = __fulgurjs_snap ?? __fulgurjs_local;`,
815
+ `const __fulgurjs_r = __fulgurjs_ls(${JSON.stringify(item.shareKey)}, { ${optsWithLocal.join(", ")} });`,
816
+ `const __fulgurjs_m = __fulgurjs_r.kind === 'ready' ? __fulgurjs_r.value : __fulgurjs_local;`,
817
+ `if (__fulgurjs_r.kind !== 'ready') __fulgurjs_pin(${JSON.stringify(item.shareKey)}, { ${optsWithLocal.join(", ")} }, ${JSON.stringify(item.version)}, __fulgurjs_local);`,
815
818
  `const __fulgurjs_d = __fulgurjsU(__fulgurjs_m);`,
816
819
  `export default __fulgurjs_d;`
817
820
  ];
@@ -889,6 +892,28 @@ function genInitModule(options, command) {
889
892
  return `${lines.join("\n")}
890
893
  `;
891
894
  }
895
+ function prepareSharesCode(options) {
896
+ const requests = options.shared.map((item) => ({
897
+ name: item.shareKey,
898
+ opts: {
899
+ shareScope: item.shareScope,
900
+ shareKey: item.shareKey,
901
+ requiredVersion: item.requiredVersion === false ? void 0 : item.requiredVersion,
902
+ singleton: item.singleton,
903
+ strictVersion: item.strictVersion,
904
+ localVersion: item.version
905
+ }
906
+ }));
907
+ return `await __fulgurjs_prepare(${JSON.stringify(requests)});`;
908
+ }
909
+ function genAsyncBootstrap(options, entry) {
910
+ return [
911
+ genInitModule(options, "build"),
912
+ 'import { prepareShares as __fulgurjs_prepare } from "virtual:fulgurjs-runtime";',
913
+ prepareSharesCode(options),
914
+ `await import(${JSON.stringify(entry)});`
915
+ ].join("\n");
916
+ }
892
917
  function manifestUrlFor(r, command) {
893
918
  const entry = command === "serve" ? r.devEntry : r.prodEntry;
894
919
  if (!entry) return null;
@@ -998,6 +1023,7 @@ function genDevRemoteEntry(options, base) {
998
1023
  const b = base.endsWith("/") ? base : `${base}/`;
999
1024
  const remoteLines = registerRemotesLines(options, "serve");
1000
1025
  return `import ${JSON.stringify(`${b}@vite/client`)};
1026
+ import { prepareShares as __fulgurjs_prepare } from ${JSON.stringify(`${b}@id/virtual:fulgurjs-runtime`)};
1001
1027
  import { name as _fulgurjs_name, exposes, provides } from ${JSON.stringify(`${b}@id/__x00__virtual:fulgurjs-provides`)};
1002
1028
  ${remoteLines.length > 0 ? `import { registerRemotes } from ${JSON.stringify(`${b}@id/virtual:fulgurjs-runtime`)};
1003
1029
  ${remoteLines.join("\n")}` : ""}
@@ -1021,6 +1047,7 @@ export async function get(moduleName) {
1021
1047
  err.code = 'MFU-006';
1022
1048
  throw err;
1023
1049
  }
1050
+ ${prepareSharesCode(options)}
1024
1051
  return loader();
1025
1052
  }
1026
1053
  `;
@@ -1075,6 +1102,7 @@ function genBuildRemoteEntry(options, exposeAbsPaths) {
1075
1102
  );
1076
1103
  const remoteLines = registerRemotesLines(options, "build");
1077
1104
  return [
1105
+ 'import { prepareShares as __fulgurjs_prepare } from "virtual:fulgurjs-runtime";',
1078
1106
  ...remoteLines.length > 0 ? [`import { registerRemotes } from "virtual:fulgurjs-runtime";`, ...remoteLines] : [],
1079
1107
  `const exposes = {`,
1080
1108
  ...exposes,
@@ -1101,6 +1129,7 @@ function genBuildRemoteEntry(options, exposeAbsPaths) {
1101
1129
  ` err.code = 'MFU-006';`,
1102
1130
  ` throw err;`,
1103
1131
  ` }`,
1132
+ ` ${prepareSharesCode(options)}`,
1104
1133
  ` return loader();`,
1105
1134
  `}`,
1106
1135
  ""
@@ -2643,7 +2672,7 @@ function repairRolldownAsyncMarks(code, sourceName) {
2643
2672
  }
2644
2673
 
2645
2674
  // src/runtime-code.gen.ts
2646
- var runtime_code_gen_default = 'var we=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function j(a){let c=we.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 be(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=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:be(u.pre,i.pre)}var Pe=/^[a-z]+[+:-]/i;function N(a,c){if(c===!1||c==null||c==="")return!0;let u=String(c).trim();return!u||u==="*"||u==="latest"||Pe.test(u)?!0:u.split("||").some(i=>$e(a,i.trim()))}function $e(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!(!N(a,`>=${y}`)||!N(a,`<=${w}`))}let i=j(a);if(!i)return!1;let h=ve(c);if(h===null)return!0;for(let y of h)if(!Ie(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=Le(c);if(!u)return null;let{ver:i,partial:h}=u;switch(a){case"^":{let y=Me(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 Me(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 Le(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 Oe(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 Ie(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=Oe(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 re="5.6.0";var Te="__fulgurjsSetup",xe="__FULGURJS_APP_CONFIG__",G=15e3,ne=2,ke=5,je=3e4,Ne=4e3,Ue=.2;function Ae(){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,U=new WeakMap,O={},oe=()=>{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)}},A=new Map,C,se=e=>{let r=A.get(e);return r||A.set(e,r={}),r},H=()=>globalThis[xe]??{};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});C=e;let t;try{t=r(n)}catch(l){throw o(l)}finally{C=void 0}try{await t}catch(l){throw o(l)}}async function ie(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 ae(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 ce(e,r){let n=r?.[Te];if(typeof n!="string"||n==="")return;let s=se(e.name);s.setupPromise||(s.setupPromise=ie(e,r,n,s).catch(t=>{throw s.setupPromise=void 0,t})),await s.setupPromise;let o=s.setupExports?.onSession;typeof o=="function"&&await ae(e,s,o)}function ue(){for(let e of A.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let x=e=>a[e]??=Object.create(null);function $(e){try{O.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}function le(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 fe(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 W(e){for(let r of e){fe(r);let n=c.get(r.name);c.set(r.name,{timeout:G,retries:ne,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??ke,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??je,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 de(e){W([e])}function me(e){u.push(...e),h.clear(),oe()}function F(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||N(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 $({remote:g.from,error:L}),L}let v=`${s}|${o}|${f??"*"}|${E}|${d.join(",")}`;i.has(v)||(i.add(v),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 $({remote:o,error:m}),m}return}return l[E]}function X(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=F(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 pe(e,r={}){let n=r.shareScope||"default",s=r.shareKey||e,o=x(n)[s]||{},t=F(e,r);if(!t){if(r.fallback){let p=await r.fallback();return X(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 $({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 ge(e,r={}){return O.resolveShare?h.get(y(e,r))?.value:F(e,r,!0)?.value}function he(e,r,n,s){X(e,{...r,localVersion:n},s)}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 z(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 ye=e=>new Promise(r=>setTimeout(r,e)),Y=new Set;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){let s=`${r.name}\\u2194${e.name}`;Y.has(s)||(Y.add(s),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)})),z(t,r.timeout??G,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${B(e)}`)}async function Q(e,r){let n=e.shareScope||"default";if(e.container){let t=U.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 $({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 z(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??ne;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(v){if(d=v,v?.code)throw v;g<p&&await ye(Math.min(Ne,200*2**g)*(1-Ue*(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=U.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),U.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 $({remote:e.name,error:t}),t;if(t?.code)throw $({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 $({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:ee(e.slice(r+1))}}function ee(e){return e?e.startsWith(".")?e:`./${e}`:""}async function Se(e,r){let{remote:n,module:s}=D(e);if(s&&C===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([Q(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),$({remote:n,error:f}),await r.fallbackModule();throw f}if(!s)return t;await ce(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),$({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});$({remote:n,error:f}),console.error(f.message)}return d}function Ee(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 Q(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 v=()=>{p.removeEventListener("load",v),p.removeEventListener("error",L),M()},L=()=>{$({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})}),v()};p.addEventListener("load",v,{once:!0}),p.addEventListener("error",L,{once:!0}),p.sheet&&v()});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)){$({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):[],v=s?M.filter(([_,k])=>ee(String(k?.name??_))===s):M,L=[];for(let[,_]of v)if(typeof _?.file=="string"&&await d(f(_.file),"modulepreload"),Array.isArray(_?.css))for(let k of _.css){if(typeof k!="string")continue;let Re=d(f(k),"style");t==="preload"&&L.push(Re)}await Promise.all(L);return}}await d(o.entry,"modulepreload")}catch(p){$({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:le,registerShare:J,registerRemotes:W,registerRemote:de,registerPlugins:me,loadShare:pe,getLoadedShare:ge,pinLoadedShare:he,loadRemote:Se,getContainer:Ee,preloadRemote:K,parseSpec:D,clearSessionState:ue}}var te=globalThis,b=te.__FULGURJS_RUNTIME__??Ae();te.__FULGURJS_RUNTIME__=b;try{Object.freeze(b)}catch{}var qe=re;function Je(){return b}var We=b.initSharing,Xe=b.registerShare,Be=b.registerRemotes,ze=b.registerRemote,Ye=b.registerPlugins,Ze=b.loadShare,Qe=b.getLoadedShare,er=b.pinLoadedShare,rr=b.loadRemote,nr=b.getContainer,tr=b.preloadRemote,or=b.parseSpec,sr=b.clearSessionState,ir=b.shareScopeMap;function ar(a){if(a&&typeof a=="object"&&"default"in a){let c=a.default;return c!==void 0?c:a}return a}var cr=b;export{sr as clearSessionState,cr as default,nr as getContainer,Qe as getLoadedShare,Je as getRuntime,We as initSharing,rr as loadRemote,Ze as loadShare,or as parseSpec,er as pinLoadedShare,tr as preloadRemote,Ye as registerPlugins,ze as registerRemote,Be as registerRemotes,Xe as registerShare,b as runtime,ir as shareScopeMap,ar as unwrapDefault,qe as version};\n';
2675
+ var runtime_code_gen_default = 'var ve=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function N(c){let u=ve.exec(String(c).trim());return u?{major:Number(u[1]),minor:Number(u[2]??0),patch:Number(u[3]??0),pre:u[4]?u[4].split("."):[]}:null}function $e(c,u){if(c.length===0&&u.length===0)return 0;if(c.length===0)return 1;if(u.length===0)return-1;let f=Math.max(c.length,u.length);for(let a=0;a<f;a++){let p=c[a],S=u[a];if(p===void 0)return-1;if(S===void 0)return 1;let b=/^\\d+$/.test(p),v=/^\\d+$/.test(S);if(b&&v){let I=Number(p)-Number(S);if(I!==0)return I}else{if(b!==v)return b?-1:1;if(p!==S)return p<S?-1:1}}return 0}function x(c,u){let f=N(c),a=N(u);return!f||!a?c<u?-1:c>u?1:0:f.major!==a.major?f.major-a.major:f.minor!==a.minor?f.minor-a.minor:f.patch!==a.patch?f.patch-a.patch:$e(f.pre,a.pre)}var Pe=/^[a-z]+[+:-]/i;function A(c,u){if(u===!1||u==null||u==="")return!0;let f=String(u).trim();return!f||f==="*"||f==="latest"||Pe.test(f)?!0:f.split("||").some(a=>_e(c,a.trim()))}function _e(c,u){if(!u||u==="*")return!N(c)?.pre.length;let f=u.split(/\\s+-\\s+/);if(f.length===2){let S=f[0].trim(),b=f[1].trim();return!(!A(c,`>=${S}`)||!A(c,`<=${b}`))}let a=N(c);if(!a)return!1;let p=Le(u);if(p===null)return!0;for(let S of p)if(!Te(a,c,S))return!1;return!(a.pre.length>0&&!p.some(S=>S.ver.pre.length>0)&&!p.some(b=>b.ver.major===a.major&&b.ver.minor===a.minor&&b.ver.patch===a.patch))}function Le(c){let u=[],f=c.trim().split(/\\s+/).filter(Boolean);if(f.length===0)return null;for(let a of f){let p=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(a);if(!p)return null;let S=p[1],b=p[2],v=Oe(S,b);if(v===null)return null;u.push(...v)}return u}function Oe(c,u){let f=Me(u);if(!f)return null;let{ver:a,partial:p}=f;switch(c){case"^":{let S=ke(a);return S?[{op:">=",ver:a},{op:"<",ver:S}]:null}case"~":{let S=p>=2?{major:a.major,minor:a.minor+1,patch:0,pre:[]}:{major:a.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:a},{op:"<",ver:S}]}case">=":return[{op:">=",ver:a}];case">":return p===1?[{op:">=",ver:{major:a.major+1,minor:0,patch:0,pre:[]}}]:p===2?[{op:">=",ver:{major:a.major,minor:a.minor+1,patch:0,pre:[]}}]:[{op:">",ver:a}];case"<":return p===1?[{op:"<",ver:{major:a.major,minor:0,patch:0,pre:[]}}]:p===2?[{op:"<",ver:{major:a.major,minor:a.minor,patch:0,pre:[]}}]:[{op:"<",ver:a}];case"<=":return[{op:"<=",ver:a}];case"=":case void 0:return p===1?[{op:">=",ver:a},{op:"<",ver:{major:a.major+1,minor:0,patch:0,pre:[]}}]:p===2?[{op:">=",ver:a},{op:"<",ver:{major:a.major,minor:a.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:a}];default:return null}}function ke(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 Me(c){let u=c.replace(/^v/,"").trim();if(!u||u==="*"||u==="x"||u==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=u.split("."),a=[],p=0;for(let v of f.slice(0,3))if(/^\\d+$/.test(v))a.push(Number(v)),p++;else{if(v==="x"||v==="X"||v==="*")break;break}let S=u.split("-"),b=S.length>1?S.slice(1).join("-").split("+")[0].split("."):[];return p===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:a[0]??0,minor:a[1]??0,patch:a[2]??0,pre:b},partial:p}}function Ie(c,u){switch(u){case">=":return c>=0;case">":return c>0;case"<":return c<0;case"<=":return c<=0;case"=":return c===0}}function Te(c,u,f){let a=`${c.major}.${c.minor}.${c.patch}`+(c.pre.length?`-${c.pre.join(".")}`:"");if(f.upper)return!(!(x(a,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(x(a,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let p=x(a,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),S=Ie(p,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(u,f,a,p){super(`[fulgurjs:${u}] ${f}`,p),this.name="FgError",this.code=u,this.details=a}},w={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 ne="5.7.1";var xe="__fulgurjsSetup",Ae="__FULGURJS_APP_CONFIG__",H=15e3,te=2,je=5,Ne=3e4,Ue=4e3,Ve=.2;function Ce(){let c=Object.create(null),u=new Map,f=[],a=new Set,p=new Map,S=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,v=new Map,I=new WeakMap,U=new WeakMap,_={},se=()=>{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)}},V=new Map,C,ie=e=>{let r=V.get(e);return r||V.set(e,r={}),r},G=()=>globalThis[Ae]??{};async function B(e,r,n,o){let t=l=>l instanceof E?l:new E(w.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${o} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${String(l?.message??l)}\n\\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:l});C=e;let s;try{s=r(n)}catch(l){throw t(l)}finally{C=void 0}try{await s}catch(l){throw t(l)}}async function ae(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await q(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default;if(typeof s!="function")throw new E(w.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 ${t==null?String(t):typeof s}\\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(t.onSession!==void 0&&typeof t.onSession!="function")throw new E(w.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 t.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});o.setupExports=t,await B(e.name,s,{appContext:G(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(t){throw e.debug.setup="failed",o.setupExports=void 0,t}}async function ce(e,r,n){let o=G(),t=o?.sessionKey;if(typeof t!="string"||t==="")throw new E(w.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 ${t===void 0?"\\u7F3A\\u5931":JSON.stringify(t)}\\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===t)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=t;let l=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),i=(async()=>{await l,!s.signal.aborted&&await B(e.name,n,{appContext:o,sessionKey:t,signal:s.signal},"onSession")})();return r.sessionPromise=i,i.catch(()=>{r.sessionKey===t&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),i}async function le(e,r){let n=r?.[xe];if(typeof n!="string"||n==="")return;let o=ie(e.name);o.setupPromise||(o.setupPromise=ae(e,r,n,o).catch(s=>{throw o.setupPromise=void 0,s})),await o.setupPromise;let t=o.setupExports?.onSession;typeof t=="function"&&await ce(e,o,t)}function ue(){for(let e of V.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let M=e=>c[e]??=Object.create(null);function $(e){try{_.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}function fe(e="default"){return M(e),c}function F(e,r,n,o,t={}){let s=M(e||"default"),l=Object.hasOwn(s,r)?s[r]:void 0,i=l&&typeof l=="object"?l:void 0;i||(i=Object.create(null),s[r]=i),!(Object.hasOwn(i,n)&&i[n])&&(i[n]={version:n,get:o,from:t.from??"unknown",eager:!!t.eager,loaded:!!t.loaded})}function de(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 J(e){for(let r of e){de(r);let n=u.get(r.name);u.set(r.name,{timeout:H,retries:te,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??je,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){J([e])}function pe(e){f.push(...e),p.clear(),se()}function T(e,r,n=!1){let o=r.shareScope||"default",t=r.shareKey||e,l=M(o)[t]||{},i=Object.keys(l).filter(m=>!n||r.singleton||l[m].value!==void 0);if(n&&i.length===0)return;let d=r.requiredVersion,g=i.filter(m=>d===void 0||d===!1||A(m,d)),h;if(r.singleton&&i.length>0){let m=i.filter(y=>l[y].loaded);if(h=[...m.length?m:i].sort(x).pop(),!g.includes(h)){let y=l[h],O=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${t}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u5E94\\u7528\\u8981\\u6C42 ${d??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${i.join("\\u3001")}\\uFF1B\\u4E3A\\u4FDD\\u8BC1\\u5168\\u9875\\u53EA\\u4F7F\\u7528\\u4E00\\u4E2A\\u5B9E\\u4F8B\\uFF0C\\u6700\\u7EC8\\u590D\\u7528 ${y.from} \\u63D0\\u4F9B\\u7684 ${h}\\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 k=new E(w.SHARE_STRICT_VERSION,O,{shareKey:t,requiredVersion:d});throw $({remote:y.from,error:k}),k}let P=`${o}|${t}|${d??"*"}|${h}|${i.join(",")}`;a.has(P)||(a.add(P),console.warn(`[fulgurjs:MFU-010] ${O}`))}}else if(h=[...g].sort(x).pop(),!h){if(r.strictVersion){let m=new E(w.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${o}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${t}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${d}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${i.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 $({remote:t,error:m}),m}return}return l[h]}function W(e,r,n){let o=r.localVersion;if(!o||n===void 0)return;let t=r.shareScope||"default",s=r.shareKey||e,l=M(t),i=Object.hasOwn(l,s)?l[s]:void 0;if(i&&Object.keys(i).length>0){try{let g=T(e,r);if(g&&g.value===void 0){if(g.version===o)g.value=n,g.loaded=!0;else if(r.singleton&&!g.pendingGet){F(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let h=l[s][o];h.value=n,h.loaded=!0}}}catch{}return}F(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let d=l[s]?.[o];d&&(d.value=n)}async function X(e,r={}){let n=r.shareScope||"default",o=r.shareKey||e,t=M(n)[o]||{},s=S(e,r),l=_.resolveShare?p.get(s):void 0,i=l||T(e,r);if(!i){if(r.fallback){let m=await r.fallback();return W(e,r,m),m}let h=new E(w.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${o}"\\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:o,requiredVersion:r.requiredVersion});throw $({remote:o,error:h}),h}if(_.resolveShare&&!l){let h=await _.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:i,available:Object.values(t)});h&&(i=h),p.set(s,i)}if(i.value!==void 0)return p.set(S(e,r),i),i.value;if(i.loaded=!0,!i.pendingGet)try{i.pendingGet=i.get()}catch(h){i.pendingGet=Promise.reject(h)}let d=i.pendingGet,g;try{g=await d}catch(h){if(i.value!==void 0)return p.set(S(e,r),i),i.value;throw i.loaded=!1,p.get(s)===i&&p.delete(s),h}finally{i.pendingGet===d&&(i.pendingGet=void 0)}return i.value===void 0&&(i.value=g),p.set(S(e,r),i),i.value}function ge(e,r={}){return _.resolveShare?p.get(S(e,r))?.value:T(e,r,!0)?.value}function he(e,r,n,o){W(e,{...r,localVersion:n},o)}function ye(e,r){let n=r.shareScope||"default",o=r.shareKey||e;if(_.resolveShare){let s=S(e,r),l=p.get(s);if(l&&l.value!==void 0)return{kind:"ready",value:l.value};let i=l||_.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:T(e,r),available:Object.values(M(n)[o]||{})});if(i&&typeof i.then=="function")throw Promise.resolve(i).catch(()=>{}),new E(w.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\n\\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\n\\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 d=i;if(d){if(d.value!==void 0)return p.set(S(e,r),d),{kind:"ready",value:d.value};if(d.version!==void 0&&d.version===r.localVersion)return{kind:"local"};throw new E(w.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u4E3A "${o}" \\u9009\\u62E9\\u4E86\\u672A\\u5C31\\u7EEA\\u7684 ${d.version??"\\u6761\\u76EE"}\\u3002\n\\u539F\\u56E0\\uFF1A\\u540C\\u6B65\\u6D88\\u8D39\\u4E0D\\u80FD\\u7B49\\u5F85\\u52A0\\u8F7D\\u3002\n\\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=T(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||!A(r.localVersion,r.requiredVersion))){if(r.strictVersion||t.pendingGet)throw new E(w.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\n\\u539F\\u56E0\\uFF1A\\u4E0D\\u80FD\\u6539\\u7528\\u4E0D\\u517C\\u5BB9\\u7684\\u672C\\u5730\\u526F\\u672C\\u6216\\u5206\\u88C2\\u5355\\u4F8B\\u3002\n\\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 a.has(s)||(a.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 Se(e){if(_.resolveShare){for(let{name:r,opts:n}of e){let o=S(r,n);if(p.has(o))continue;let t=T(r,n),s=await _.resolveShare({shareKey:n.shareKey||r,shareScope:n.shareScope||"default",requiredVersion:n.requiredVersion,picked:t,available:Object.values(M(n.shareScope||"default")[n.shareKey||r]||{})})||t;s&&p.set(o,s)}for(let{name:r,opts:n}of e)await X(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 Y(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(l=>{clearTimeout(s),o(l)},l=>{clearTimeout(s),t(l)})})}let Ee=e=>new Promise(r=>setTimeout(r,e)),Z=new Set;function D(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}`;Z.has(o)||(Z.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:w.REMOTE_NAME_MISMATCH})}}async function Q(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)})),Y(s,r.timeout??H,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${z(e)}`)}async function ee(e,r){let n=e.shareScope||"default";if(e.container){let s=U.get(e.container);if(s&&s!==n)throw new E(w.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(w.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});throw $({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 m=await Y(e.promise(),e.timeout??H,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),y=typeof m=="string"?await Q(m,e):m;return D(y,e),y});else for(let m of[e.entry,...e.fallback??[]])s.push(async()=>{let y=await Q(m,e);return D(y,e),y});let l,i,d=!1,g=r?.retries??e.retries??te;for(let m of s){for(let y=0;y<=g;y++){let O=performance.now();try{l=await m(),e.lastLoadMs=Math.round(performance.now()-O),e.debug.lastLoadMs=e.lastLoadMs,d=!0;break}catch(P){if(i=P,P?.code)throw P;y<g&&await Ee(Math.min(Ue,200*2**y)*(1-Ve*(1-2*Math.random())))}}if(d)break}if(!d||!l){let m=z(e.entry),y=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(y.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`),y.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),y.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(y.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`),y.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(w.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${m} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${String(i?.message??i)}\n\\u4FEE\\u6CD5\\uFF1A\n${y.join(`\n`)}`,{remote:e.name})}D(l,e);let h=U.get(l);if(h&&h!==n)throw new E(w.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${h}" \\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(c),U.set(l,n),e.container=l,e.state="loaded",e.debug.status="loaded",o.fails=0,l})();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 $({remote:e.name,error:s}),s;if(s?.code)throw $({remote:e.name,error:s}),s;let l=new E(w.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});throw $({remote:e.name,error:l}),l}}function K(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:re(e.slice(r+1))}}function re(e){return e?e.startsWith(".")?e:`./${e}`:""}async function we(e,r){let{remote:n,module:o}=K(e);if(o&&C===n)throw new E(w.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{_.beforeLoadRemote?.({remote:n,module:o})}catch(d){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",d)}let t=u.get(n);if(!t)throw new E(w.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 d=o&&t.manifestUrl?q(e):Promise.resolve();[s]=await Promise.all([ee(t,{retries:r?.retries}),d])}catch(d){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`,d),$({remote:n,error:d}),await r.fallbackModule();throw d}if(!o)return s;await le(t,s);let l=`${n}@${t.shareScope||"default"}#${o}`;b.has(l)||b.set(l,s.get(o).catch(d=>{throw b.delete(l),d instanceof E||d?.code?d:new E(w.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${o}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(d?.message??d)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:o})}));let i;try{i=await b.get(l)}catch(d){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`,d),$({remote:n,error:d}),await r.fallbackModule();throw d}try{_.afterLoadRemote?.({remote:n,module:o,module_ns:i})}catch(d){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",d)}if(i&&typeof i=="object"&&Object.keys(i).length===0){let d=new E(w.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});$({remote:n,error:d}),console.error(d.message)}return i}function Re(e){let r=u.get(e);if(!r)throw new E(w.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return ee(r)}async function q(e,r={}){let{remote:n,module:o}=K(e),t=u.get(n);if(!t)throw new E(w.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",l=(g,h)=>{if(g.sheet)return Promise.resolve();let m=I.get(g);if(m)return m;let y=new Promise(O=>{let P=()=>{g.removeEventListener("load",P),g.removeEventListener("error",k),O()},k=()=>{$({remote:n,error:new E(w.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${h}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:n})}),P()};g.addEventListener("load",P,{once:!0}),g.addEventListener("error",k,{once:!0}),g.sheet&&P()});return I.set(g,y),y},i=(g,h)=>{if(typeof document>"u")return Promise.resolve();let m=document.querySelector(`link[href="${g}"]`);if(m)return h==="style"&&s==="preload"?I.get(m)??Promise.resolve():Promise.resolve();let y=document.createElement("link");y.rel=h==="style"?"stylesheet":"modulepreload",y.href=g,s==="prefetch"&&(y.fetchPriority="low");let O=h==="style"?l(y,g):Promise.resolve();return document.head.appendChild(y),h==="style"&&s==="preload"?O:Promise.resolve()},d=g=>{let h=typeof document<"u"?document.baseURI:void 0,m=new URL(t.entry,h||"http://fulgurjs.invalid/");return!m.pathname.endsWith("/")&&!m.pathname.split("/").pop().includes(".")&&(m.pathname+="/"),new URL(g,m).href};try{if(t.manifestUrl){let g=v.get(t.manifestUrl);g||(g=fetch(t.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(m=>m.ok?m.json():void 0),v.set(t.manifestUrl,g),g.then(m=>{m||v.delete(t.manifestUrl)},()=>v.delete(t.manifestUrl)));let h=await g;if(h){let m=h.schemaVersion;if(typeof m=="number"&&(!Number.isInteger(m)||m>1)){$({remote:n,error:new E(w.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 i(t.entry,"modulepreload");return}await i(t.entry,"modulepreload");let y=h.exposes,O=Array.isArray(y)?y.filter(L=>L&&typeof L=="object").map(L=>[String(L.name??""),L]):y&&typeof y=="object"?Object.entries(y):[],P=o?O.filter(([L,j])=>re(String(j?.name??L))===o):O,k=[];for(let[,L]of P)if(typeof L?.file=="string"&&await i(d(L.file),"modulepreload"),Array.isArray(L?.css))for(let j of L.css){if(typeof j!="string")continue;let be=i(d(j),"style");s==="preload"&&k.push(be)}await Promise.all(k);return}}await i(t.entry,"modulepreload")}catch(g){$({remote:n,error:new E(w.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 u)e[r]={...n.debug,entry:n.entry};return e},errors:[]}),{shareScopeMap:c,initSharing:fe,registerShare:F,registerRemotes:J,registerRemote:me,registerPlugins:pe,loadShare:X,loadShareSync:ye,prepareShares:Se,getLoadedShare:ge,pinLoadedShare:he,loadRemote:we,getContainer:Re,preloadRemote:q,parseSpec:K,clearSessionState:ue}}var oe=globalThis,R=oe.__FULGURJS_RUNTIME__??Ce();oe.__FULGURJS_RUNTIME__=R;try{Object.freeze(R)}catch{}var Je=ne;function We(){return R}var Xe=R.initSharing,ze=R.registerShare,Ye=R.registerRemotes,Ze=R.registerRemote,Qe=R.registerPlugins,er=R.loadShare,rr=R.getLoadedShare,nr=R.prepareShares||(async c=>{for(let{name:u,opts:f}of c)await R.loadShare(u,f)}),tr=R.loadShareSync,or=R.pinLoadedShare,sr=R.loadRemote,ir=R.getContainer,ar=R.preloadRemote,cr=R.parseSpec,lr=R.clearSessionState,ur=R.shareScopeMap;function fr(c){if(c&&typeof c=="object"&&"default"in c){let u=c.default;return u!==void 0?u:c}return c}var dr=R;export{lr as clearSessionState,dr as default,ir as getContainer,rr as getLoadedShare,We as getRuntime,Xe as initSharing,sr as loadRemote,er as loadShare,tr as loadShareSync,cr as parseSpec,or as pinLoadedShare,ar as preloadRemote,nr as prepareShares,Qe as registerPlugins,Ze as registerRemote,Ye as registerRemotes,ze as registerShare,R as runtime,ur as shareScopeMap,fr as unwrapDefault,Je as version};\n';
2647
2676
 
2648
2677
  // src/index.ts
2649
2678
  function readRuntimeCode() {
@@ -2743,6 +2772,7 @@ function federation(options) {
2743
2772
  exposeFiles: {},
2744
2773
  resolvedSharedPaths: /* @__PURE__ */ new Map(),
2745
2774
  entryAbsPaths: /* @__PURE__ */ new Set(),
2775
+ bootstrapEntries: /* @__PURE__ */ new Set(),
2746
2776
  entryInitInjected: /* @__PURE__ */ new Set(),
2747
2777
  manualChunkGroups: /* @__PURE__ */ new Map(),
2748
2778
  sharedClosureRoots: [],
@@ -3053,6 +3083,7 @@ export { default } from ${JSON.stringify(url)};
3053
3083
  if (bareClean === RUNTIME_VIRTUAL_ID) return RESOLVED.runtime;
3054
3084
  if (bareClean === RUNTIME_PROXY_VIRTUAL_ID) return RESOLVED.runtimeProxy;
3055
3085
  if (bareClean === INIT_VIRTUAL_ID) return RESOLVED.init;
3086
+ if (bareClean.startsWith("virtual:fulgurjs-bootstrap:")) return "\0" + bareClean;
3056
3087
  if (bareClean === "virtual:fulgurjs-remote-schema") return bareClean;
3057
3088
  if (bareClean === "virtual:fulgurjs-api-facade") return bareClean;
3058
3089
  if (bareClean === "virtual:fulgurjs-api-facade-react") return bareClean;
@@ -3084,6 +3115,9 @@ export { default } from ${JSON.stringify(url)};
3084
3115
  const clean = q === -1 ? raw : raw.slice(0, q);
3085
3116
  if (clean === "virtual:fulgurjs-runtime") return readRuntimeCode();
3086
3117
  if (clean === RESOLVED.runtimeProxy || clean === RUNTIME_PROXY_VIRTUAL_ID) return genRuntimeProxyModule();
3118
+ if (clean.startsWith("virtual:fulgurjs-bootstrap:") && state.normalized) {
3119
+ return genAsyncBootstrap(state.normalized, decodeURIComponent(clean.slice("virtual:fulgurjs-bootstrap:".length)));
3120
+ }
3087
3121
  if (clean === "virtual:fulgurjs-init" && state.normalized) {
3088
3122
  return genInitModule(state.normalized, state.command);
3089
3123
  }
@@ -3186,7 +3220,7 @@ export { default } from ${JSON.stringify(url)};
3186
3220
  async transform(code, id) {
3187
3221
  if (!state.normalized) return null;
3188
3222
  const clean = id.split("?")[0];
3189
- if (state.command === "build" && state.entryAbsPaths.has(clean) && !state.entryInitInjected.has(clean)) {
3223
+ if (state.command === "build" && state.entryAbsPaths.has(clean) && !state.bootstrapEntries.has(clean) && !state.entryInitInjected.has(clean)) {
3190
3224
  state.entryInitInjected.add(clean);
3191
3225
  const initCode = genInitModule(state.normalized, state.command);
3192
3226
  return { code: `${initCode}
@@ -3241,6 +3275,18 @@ ${code}`, map: null };
3241
3275
  state.entryAbsPaths.add(abs);
3242
3276
  }
3243
3277
  debugLog("init-entry", { stage: "capture", count: state.entryAbsPaths.size, entries: [...state.entryAbsPaths].map((p) => redactModulePath(p, state.normalized.root)) });
3278
+ if (state.normalized.runtimePlugins.length > 0) {
3279
+ return html.replace(/<script\b[^>]*>[\s\S]*?<\/script>/g, (script) => {
3280
+ const tag = script.slice(0, script.indexOf(">") + 1);
3281
+ if (!/\btype=["']module["']/.test(tag)) return script;
3282
+ const src = srcRe.exec(tag)?.[1];
3283
+ if (!src || src.startsWith("http") || src.startsWith("//")) return script;
3284
+ const abs = import_node_path6.default.resolve(state.normalized.root, src.startsWith("/") ? src.slice(1) : src);
3285
+ state.bootstrapEntries.add(abs);
3286
+ const id = "virtual:fulgurjs-bootstrap:" + encodeURIComponent(abs);
3287
+ return tag.replace(/\s+src=["'][^"']+["']/, "") + `import ${JSON.stringify(id)};</script>`;
3288
+ });
3289
+ }
3244
3290
  return html;
3245
3291
  }
3246
3292
  },