@fulgurjs/federation 6.14.1 → 6.14.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 CHANGED
@@ -1,5 +1,15 @@
1
1
  # 当前发布说明
2
2
 
3
+ ## 6.14.3
4
+
5
+ - 修复消费/提供双角色应用直接导入上游具名类型时,首轮生成早于上游声明同步而失败、同步成功后不自动恢复的问题。仅在完整新代次同步成功后通知本地声明服务重新检查;未变化轮询、失败与停止状态不触发,继续忽略逐文件生成写入以避免自循环。
6
+ - 文档优先推荐提供方公开已有具名业务合同,消费方直接 import type 后 ref<业务类型>() 使用;保留通用 props 提取工具,不再要求业务消费文件维护同态映射和多层提取。补真实 SFC 具名类型导出、消费字段/readonly负例,以及迟到类型恢复和代次去重回归。
7
+
8
+ ## 6.14.2
9
+
10
+ - 远程类型分发从实际入口声明出发,仅保留公开类型依赖闭包;实现专用导入被官方编译器擦除后,不再分发其声明,也不再登记其专用 externals。源码仍参与必要编译与诊断,保留原始 props、事件、实例、返回值推导和命名组件接口。
11
+ - 闭包遍历复用声明重写器解析结果,保留重导出、import type、import equals、声明副作用与循环依赖;补齐 reference path 依赖和缺失类型依赖拒绝产出。dev/build 自动生效,无新增操作步骤。中英文指南说明文件数与编译耗时的区别,并新增针对性回归。
12
+
3
13
  ## 6.14.1
4
14
 
5
15
  - 提供方类型生成对直接暴露的具体 Vue SFC 追加有名称的组件接口,继承完整原始 DefineComponent 签名;消费方组件悬停显示 expose 对应名称,不再展开全部框架泛型。原声明、props、事件、实例方法仍保留;泛型函数、带额外 slots 包装等未识别声明保持原样,不压平类型。不改变浏览器运行时行为。补真实 SFC→ambient→消费检查、实例等价及 quickInfo 回归。
package/dist/cli.js CHANGED
@@ -3187,7 +3187,7 @@ var RUNTIME_VERSION;
3187
3187
  var init_version = __esm({
3188
3188
  "src/version.ts"() {
3189
3189
  "use strict";
3190
- RUNTIME_VERSION = "6.14.1";
3190
+ RUNTIME_VERSION = "6.14.3";
3191
3191
  }
3192
3192
  });
3193
3193
 
@@ -3958,14 +3958,14 @@ function computeStaticClosure(ts, entryFiles, resolver, root) {
3958
3958
  import ${JSON.stringify(descriptor.script.src)}`;
3959
3959
  }
3960
3960
  const sfile = ts.createSourceFile(file, text, ts.ScriptTarget.Latest, true);
3961
- const imports = [];
3961
+ const imports = sfile.referencedFiles.map((ref) => ref.fileName);
3962
3962
  const visitType = (node) => {
3963
3963
  if (ts.isImportTypeNode(node) && ts.isLiteralTypeNode(node.argument) && ts.isStringLiteral(node.argument.literal)) imports.push(node.argument.literal.text);
3964
3964
  ts.forEachChild(node, visitType);
3965
3965
  };
3966
3966
  visitType(sfile);
3967
3967
  for (const stmt of sfile.statements) {
3968
- const specNode = (ts.isImportDeclaration(stmt) || ts.isExportDeclaration(stmt)) && stmt.moduleSpecifier && ts.isStringLiteral(stmt.moduleSpecifier) ? stmt.moduleSpecifier : null;
3968
+ const specNode = (ts.isImportDeclaration(stmt) || ts.isExportDeclaration(stmt)) && stmt.moduleSpecifier && ts.isStringLiteral(stmt.moduleSpecifier) ? stmt.moduleSpecifier : ts.isImportEqualsDeclaration(stmt) && ts.isExternalModuleReference(stmt.moduleReference) && ts.isStringLiteral(stmt.moduleReference.expression) ? stmt.moduleReference.expression : null;
3969
3969
  if (specNode) imports.push(specNode.text);
3970
3970
  }
3971
3971
  for (const spec of imports) {
@@ -4423,15 +4423,37 @@ export default value;
4423
4423
  const declRel = rel.endsWith(".d.ts") ? `files/${rel}` : rel.endsWith(".vue") ? `files/${rel}.d.ts` : `files/${rel.replace(/\.(mts|cts|ts|tsx|jsx|js)$/, "")}.d.ts`;
4424
4424
  srcToRel.set(srcAbs, declRel);
4425
4425
  }
4426
- for (const [srcAbs, text] of emitted) {
4427
- const rewritten = rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root, diagnostics);
4426
+ const relToSrc = new Map([...srcToRel].map(([src, rel]) => [rel, src]));
4427
+ const pending = [...entryMap.values()];
4428
+ const reachable = /* @__PURE__ */ new Map();
4429
+ while (pending.length > 0) {
4430
+ const srcAbs = pending.pop();
4431
+ if (reachable.has(srcAbs)) continue;
4432
+ const text = emitted.get(srcAbs);
4433
+ if (text === void 0) {
4434
+ diagnostics.push(`\u516C\u5F00\u58F0\u660E\u4F9D\u8D56\u672A\u4EA7\u51FA\uFF1A${path6.relative(root, srcAbs)}\u3002`);
4435
+ return { ok: false, diagnostics };
4436
+ }
4437
+ const rewritten = rewriteSpecifiers(
4438
+ ts,
4439
+ text,
4440
+ srcAbs,
4441
+ srcToRel,
4442
+ resolver,
4443
+ externals,
4444
+ root,
4445
+ diagnostics,
4446
+ (rel) => {
4447
+ pending.push(relToSrc.get(rel));
4448
+ }
4449
+ );
4428
4450
  if (rewritten === null) return { ok: false, diagnostics };
4429
- emitted.set(srcAbs, rewritten);
4451
+ reachable.set(srcAbs, rewritten);
4430
4452
  }
4431
4453
  const files = /* @__PURE__ */ new Map();
4432
4454
  const filesDigest = {};
4433
4455
  let leaked = false;
4434
- for (const [srcAbs, text] of emitted) {
4456
+ for (const [srcAbs, text] of reachable) {
4435
4457
  const rel = srcToRel.get(srcAbs);
4436
4458
  if (text.includes(root)) {
4437
4459
  diagnostics.push(`\u58F0\u660E\u6587\u4EF6\u5305\u542B\u672C\u673A\u7EDD\u5BF9\u8DEF\u5F84\uFF08${path6.relative(root, srcAbs)}\uFF09\uFF0C\u5DF2\u62D2\u7EDD\u4EA7\u51FA\u3002\u8BF7\u68C0\u67E5\u8BE5\u6587\u4EF6\u7684\u7C7B\u578B\u662F\u5426\u5F15\u7528\u4E86\u5B57\u9762\u8DEF\u5F84\u3002`);
@@ -4489,9 +4511,11 @@ function collectEmitted(ts, outDir, rootDir, out, closure) {
4489
4511
  }
4490
4512
  void ts;
4491
4513
  }
4492
- function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root, diagnostics) {
4514
+ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root, diagnostics, onDependency) {
4493
4515
  const declRel = srcToRel.get(srcAbs);
4516
+ let failed = false;
4494
4517
  const fail = (spec) => {
4518
+ failed = true;
4495
4519
  diagnostics.push(
4496
4520
  `\u58F0\u660E\u4F9D\u8D56\u4E0D\u5B8C\u6574\uFF1A${path6.relative(root, srcAbs)} \u7684\u5BFC\u5165 "${spec}" \u65E0\u6CD5\u89E3\u6790\u5230\u5DE5\u7A0B\u5185\u6587\u4EF6\u3002\u8BF7\u68C0\u67E5 tsconfig paths/include \u662F\u5426\u8986\u76D6\u8BE5\u4F9D\u8D56\u3002`
4497
4521
  );
@@ -4506,7 +4530,10 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
4506
4530
  const candidates = [resolved2.replace(/\.d\.ts$/, ".ts"), resolved2.replace(/\.d\.ts$/, ".tsx"), resolved2.replace(/\.d\.ts$/, ".vue")];
4507
4531
  resolved2 = candidates.find((c) => srcToRel.has(c)) ?? resolved2;
4508
4532
  }
4509
- return srcToRel.get(resolved2) ?? null;
4533
+ const target2 = srcToRel.get(resolved2);
4534
+ if (!target2) return fail(spec);
4535
+ onDependency(target2);
4536
+ return target2;
4510
4537
  }
4511
4538
  const r = resolver(spec, srcAbs);
4512
4539
  if (!r || r.fromNodeModules) return fail(spec);
@@ -4515,7 +4542,10 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
4515
4542
  const candidates = [resolved.replace(/\.d\.ts$/, ".ts"), resolved.replace(/\.d\.ts$/, ".tsx"), resolved.replace(/\.d\.ts$/, ".vue")];
4516
4543
  resolved = candidates.find((c) => srcToRel.has(c)) ?? resolved;
4517
4544
  }
4518
- return srcToRel.get(resolved) ?? fail(spec);
4545
+ const target = srcToRel.get(resolved);
4546
+ if (!target) return fail(spec);
4547
+ onDependency(target);
4548
+ return target;
4519
4549
  };
4520
4550
  const rewriteTo = (targetRel) => {
4521
4551
  const fromDir = path6.posix.dirname(declRel);
@@ -4525,6 +4555,17 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
4525
4555
  return rel;
4526
4556
  };
4527
4557
  const sfile = ts.createSourceFile(declRel, text, ts.ScriptTarget.Latest, true);
4558
+ const referenceEdits = [];
4559
+ for (const ref of sfile.referencedFiles) {
4560
+ const spec = ref.fileName.startsWith(".") ? ref.fileName : `./${ref.fileName}`;
4561
+ const target = resolveTarget(spec);
4562
+ if (!target) return fail(spec);
4563
+ referenceEdits.push({ start: ref.pos, end: ref.end, text: rewriteTo(target) + ".d.ts" });
4564
+ }
4565
+ for (const ref of sfile.typeReferenceDirectives) {
4566
+ const spec = ref.fileName;
4567
+ externals.add(spec.startsWith("@") ? spec.split("/").slice(0, 2).join("/") : spec.split("/")[0]);
4568
+ }
4528
4569
  let out = "";
4529
4570
  let pos = 0;
4530
4571
  const emitRange = (node, replacement) => {
@@ -4583,9 +4624,13 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
4583
4624
  ts.forEachChild(node, visit);
4584
4625
  };
4585
4626
  visit(rewrittenFile);
4627
+ if (failed) return null;
4586
4628
  for (const edit of edits.sort((a, b) => b.start - a.start)) {
4587
4629
  out = out.slice(0, edit.start) + edit.text + out.slice(edit.end);
4588
4630
  }
4631
+ for (const edit of referenceEdits.sort((a, b) => b.start - a.start)) {
4632
+ out = out.slice(0, edit.start) + edit.text + out.slice(edit.end);
4633
+ }
4589
4634
  return out;
4590
4635
  }
4591
4636
  var INHERITABLE_KEYS;
package/dist/index.cjs CHANGED
@@ -69,7 +69,7 @@ var import_node_fs = __toESM(require("fs"), 1);
69
69
  var import_node_path = __toESM(require("path"), 1);
70
70
 
71
71
  // src/version.ts
72
- var RUNTIME_VERSION = "6.14.1";
72
+ var RUNTIME_VERSION = "6.14.3";
73
73
 
74
74
  // src/dev-cors.ts
75
75
  function normalizeDevCorsOrigins(input) {
@@ -2125,14 +2125,14 @@ function computeStaticClosure(ts, entryFiles, resolver, root) {
2125
2125
  import ${JSON.stringify(descriptor.script.src)}`;
2126
2126
  }
2127
2127
  const sfile = ts.createSourceFile(file, text, ts.ScriptTarget.Latest, true);
2128
- const imports = [];
2128
+ const imports = sfile.referencedFiles.map((ref) => ref.fileName);
2129
2129
  const visitType = (node) => {
2130
2130
  if (ts.isImportTypeNode(node) && ts.isLiteralTypeNode(node.argument) && ts.isStringLiteral(node.argument.literal)) imports.push(node.argument.literal.text);
2131
2131
  ts.forEachChild(node, visitType);
2132
2132
  };
2133
2133
  visitType(sfile);
2134
2134
  for (const stmt of sfile.statements) {
2135
- const specNode = (ts.isImportDeclaration(stmt) || ts.isExportDeclaration(stmt)) && stmt.moduleSpecifier && ts.isStringLiteral(stmt.moduleSpecifier) ? stmt.moduleSpecifier : null;
2135
+ const specNode = (ts.isImportDeclaration(stmt) || ts.isExportDeclaration(stmt)) && stmt.moduleSpecifier && ts.isStringLiteral(stmt.moduleSpecifier) ? stmt.moduleSpecifier : ts.isImportEqualsDeclaration(stmt) && ts.isExternalModuleReference(stmt.moduleReference) && ts.isStringLiteral(stmt.moduleReference.expression) ? stmt.moduleReference.expression : null;
2136
2136
  if (specNode) imports.push(specNode.text);
2137
2137
  }
2138
2138
  for (const spec of imports) {
@@ -2590,15 +2590,37 @@ export default value;
2590
2590
  const declRel = rel.endsWith(".d.ts") ? `files/${rel}` : rel.endsWith(".vue") ? `files/${rel}.d.ts` : `files/${rel.replace(/\.(mts|cts|ts|tsx|jsx|js)$/, "")}.d.ts`;
2591
2591
  srcToRel.set(srcAbs, declRel);
2592
2592
  }
2593
- for (const [srcAbs, text] of emitted) {
2594
- const rewritten = rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root, diagnostics);
2593
+ const relToSrc = new Map([...srcToRel].map(([src, rel]) => [rel, src]));
2594
+ const pending = [...entryMap.values()];
2595
+ const reachable = /* @__PURE__ */ new Map();
2596
+ while (pending.length > 0) {
2597
+ const srcAbs = pending.pop();
2598
+ if (reachable.has(srcAbs)) continue;
2599
+ const text = emitted.get(srcAbs);
2600
+ if (text === void 0) {
2601
+ diagnostics.push(`\u516C\u5F00\u58F0\u660E\u4F9D\u8D56\u672A\u4EA7\u51FA\uFF1A${import_node_path4.default.relative(root, srcAbs)}\u3002`);
2602
+ return { ok: false, diagnostics };
2603
+ }
2604
+ const rewritten = rewriteSpecifiers(
2605
+ ts,
2606
+ text,
2607
+ srcAbs,
2608
+ srcToRel,
2609
+ resolver,
2610
+ externals,
2611
+ root,
2612
+ diagnostics,
2613
+ (rel) => {
2614
+ pending.push(relToSrc.get(rel));
2615
+ }
2616
+ );
2595
2617
  if (rewritten === null) return { ok: false, diagnostics };
2596
- emitted.set(srcAbs, rewritten);
2618
+ reachable.set(srcAbs, rewritten);
2597
2619
  }
2598
2620
  const files = /* @__PURE__ */ new Map();
2599
2621
  const filesDigest = {};
2600
2622
  let leaked = false;
2601
- for (const [srcAbs, text] of emitted) {
2623
+ for (const [srcAbs, text] of reachable) {
2602
2624
  const rel = srcToRel.get(srcAbs);
2603
2625
  if (text.includes(root)) {
2604
2626
  diagnostics.push(`\u58F0\u660E\u6587\u4EF6\u5305\u542B\u672C\u673A\u7EDD\u5BF9\u8DEF\u5F84\uFF08${import_node_path4.default.relative(root, srcAbs)}\uFF09\uFF0C\u5DF2\u62D2\u7EDD\u4EA7\u51FA\u3002\u8BF7\u68C0\u67E5\u8BE5\u6587\u4EF6\u7684\u7C7B\u578B\u662F\u5426\u5F15\u7528\u4E86\u5B57\u9762\u8DEF\u5F84\u3002`);
@@ -2656,9 +2678,11 @@ function collectEmitted(ts, outDir, rootDir, out, closure) {
2656
2678
  }
2657
2679
  void ts;
2658
2680
  }
2659
- function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root, diagnostics) {
2681
+ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root, diagnostics, onDependency) {
2660
2682
  const declRel = srcToRel.get(srcAbs);
2683
+ let failed = false;
2661
2684
  const fail = (spec) => {
2685
+ failed = true;
2662
2686
  diagnostics.push(
2663
2687
  `\u58F0\u660E\u4F9D\u8D56\u4E0D\u5B8C\u6574\uFF1A${import_node_path4.default.relative(root, srcAbs)} \u7684\u5BFC\u5165 "${spec}" \u65E0\u6CD5\u89E3\u6790\u5230\u5DE5\u7A0B\u5185\u6587\u4EF6\u3002\u8BF7\u68C0\u67E5 tsconfig paths/include \u662F\u5426\u8986\u76D6\u8BE5\u4F9D\u8D56\u3002`
2664
2688
  );
@@ -2673,7 +2697,10 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
2673
2697
  const candidates = [resolved2.replace(/\.d\.ts$/, ".ts"), resolved2.replace(/\.d\.ts$/, ".tsx"), resolved2.replace(/\.d\.ts$/, ".vue")];
2674
2698
  resolved2 = candidates.find((c) => srcToRel.has(c)) ?? resolved2;
2675
2699
  }
2676
- return srcToRel.get(resolved2) ?? null;
2700
+ const target2 = srcToRel.get(resolved2);
2701
+ if (!target2) return fail(spec);
2702
+ onDependency(target2);
2703
+ return target2;
2677
2704
  }
2678
2705
  const r = resolver(spec, srcAbs);
2679
2706
  if (!r || r.fromNodeModules) return fail(spec);
@@ -2682,7 +2709,10 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
2682
2709
  const candidates = [resolved.replace(/\.d\.ts$/, ".ts"), resolved.replace(/\.d\.ts$/, ".tsx"), resolved.replace(/\.d\.ts$/, ".vue")];
2683
2710
  resolved = candidates.find((c) => srcToRel.has(c)) ?? resolved;
2684
2711
  }
2685
- return srcToRel.get(resolved) ?? fail(spec);
2712
+ const target = srcToRel.get(resolved);
2713
+ if (!target) return fail(spec);
2714
+ onDependency(target);
2715
+ return target;
2686
2716
  };
2687
2717
  const rewriteTo = (targetRel) => {
2688
2718
  const fromDir = import_node_path4.default.posix.dirname(declRel);
@@ -2692,6 +2722,17 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
2692
2722
  return rel;
2693
2723
  };
2694
2724
  const sfile = ts.createSourceFile(declRel, text, ts.ScriptTarget.Latest, true);
2725
+ const referenceEdits = [];
2726
+ for (const ref of sfile.referencedFiles) {
2727
+ const spec = ref.fileName.startsWith(".") ? ref.fileName : `./${ref.fileName}`;
2728
+ const target = resolveTarget(spec);
2729
+ if (!target) return fail(spec);
2730
+ referenceEdits.push({ start: ref.pos, end: ref.end, text: rewriteTo(target) + ".d.ts" });
2731
+ }
2732
+ for (const ref of sfile.typeReferenceDirectives) {
2733
+ const spec = ref.fileName;
2734
+ externals.add(spec.startsWith("@") ? spec.split("/").slice(0, 2).join("/") : spec.split("/")[0]);
2735
+ }
2695
2736
  let out = "";
2696
2737
  let pos = 0;
2697
2738
  const emitRange = (node, replacement) => {
@@ -2750,9 +2791,13 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
2750
2791
  ts.forEachChild(node, visit);
2751
2792
  };
2752
2793
  visit(rewrittenFile);
2794
+ if (failed) return null;
2753
2795
  for (const edit of edits.sort((a, b) => b.start - a.start)) {
2754
2796
  out = out.slice(0, edit.start) + edit.text + out.slice(edit.end);
2755
2797
  }
2798
+ for (const edit of referenceEdits.sort((a, b) => b.start - a.start)) {
2799
+ out = out.slice(0, edit.start) + edit.text + out.slice(edit.end);
2800
+ }
2756
2801
  return out;
2757
2802
  }
2758
2803
 
@@ -3436,6 +3481,7 @@ function startRemoteTypesSyncLoop(opts) {
3436
3481
  typesRoot: opts.typesRoot,
3437
3482
  source: devEntry
3438
3483
  });
3484
+ if (result.status === "synced" && !controller.signal.aborted) opts.onSynced?.();
3439
3485
  if (result.status === "synced" || result.status === "absent" && !announced.has(alias)) {
3440
3486
  log(`[fulgurjs] \u7C7B\u578B\u540C\u6B65\uFF1A${result.message}`);
3441
3487
  announced.add(alias);
@@ -4007,7 +4053,7 @@ function repairRolldownAsyncMarks(code, sourceName) {
4007
4053
  }
4008
4054
 
4009
4055
  // src/runtime-code.gen.ts
4010
- var runtime_code_gen_default = 'var ke=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function C(c){let d=ke.exec(String(c).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function Oe(c,d){if(c.length===0&&d.length===0)return 0;if(c.length===0)return 1;if(d.length===0)return-1;let f=Math.max(c.length,d.length);for(let l=0;l<f;l++){let m=c[l],S=d[l];if(m===void 0)return-1;if(S===void 0)return 1;let b=/^\\d+$/.test(m),P=/^\\d+$/.test(S);if(b&&P){let A=Number(m)-Number(S);if(A!==0)return A}else{if(b!==P)return b?-1:1;if(m!==S)return m<S?-1:1}}return 0}function x(c,d){let f=C(c),l=C(d);return!f||!l?c<d?-1:c>d?1:0:f.major!==l.major?f.major-l.major:f.minor!==l.minor?f.minor-l.minor:f.patch!==l.patch?f.patch-l.patch:Oe(f.pre,l.pre)}var Me=/^[a-z]+[+:-]/i;function U(c,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||Me.test(f)?!0:f.split("||").some(l=>Te(c,l.trim()))}function Te(c,d){if(!d||d==="*")return!C(c)?.pre.length;let f=d.split(/\\s+-\\s+/);if(f.length===2){let S=f[0].trim(),b=f[1].trim();return!(!U(c,`>=${S}`)||!U(c,`<=${b}`))}let l=C(c);if(!l)return!1;let m=Le(d);if(m===null)return!0;for(let S of m)if(!je(l,c,S))return!1;return!(l.pre.length>0&&!m.some(S=>S.ver.pre.length>0)&&!m.some(b=>b.ver.major===l.major&&b.ver.minor===l.minor&&b.ver.patch===l.patch))}function Le(c){let d=[],f=c.trim().split(/\\s+/).filter(Boolean);if(f.length===0)return null;for(let l of f){let m=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(l);if(!m)return null;let S=m[1],b=m[2],P=Ae(S,b);if(P===null)return null;d.push(...P)}return d}function Ae(c,d){let f=xe(d);if(!f)return null;let{ver:l,partial:m}=f;switch(c){case"^":{let S=Ie(l);return S?[{op:">=",ver:l},{op:"<",ver:S}]:null}case"~":{let S=m>=2?{major:l.major,minor:l.minor+1,patch:0,pre:[]}:{major:l.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:l},{op:"<",ver:S}]}case">=":return[{op:">=",ver:l}];case">":return m===1?[{op:">=",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:">",ver:l}];case"<":return m===1?[{op:"<",ver:{major:l.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:l.major,minor:l.minor,patch:0,pre:[]}}]:[{op:"<",ver:l}];case"<=":return[{op:"<=",ver:l}];case"=":case void 0:return m===1?[{op:">=",ver:l},{op:"<",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:l},{op:"<",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:l}];default:return null}}function Ie(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 xe(c){let d=c.replace(/^v/,"").trim();if(!d||d==="*"||d==="x"||d==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=d.split("."),l=[],m=0;for(let P of f.slice(0,3))if(/^\\d+$/.test(P))l.push(Number(P)),m++;else{if(P==="x"||P==="X"||P==="*")break;break}let S=d.split("-"),b=S.length>1?S.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:l[0]??0,minor:l[1]??0,patch:l[2]??0,pre:b},partial:m}}function Ue(c,d){switch(d){case">=":return c>=0;case">":return c>0;case"<":return c<0;case"<=":return c<=0;case"=":return c===0}}function je(c,d,f){let l=`${c.major}.${c.minor}.${c.patch}`+(c.pre.length?`-${c.pre.join(".")}`:"");if(f.upper)return!(!(x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(x(l,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),S=Ue(m,f.op);return f.ver.pre.length>0&&c.pre.length===0&&(f.op===">"||f.op==="<")?!1:S}function F(c){return c.replace(/(https?:\\/\\/)(?:[^\\s/@]+@)?([^\\s?#"\'<>\uFF0C\u3002\uFF1B\uFF09)\\]]+)(?:[?#][^\\s"\'<>\uFF0C\u3002\uFF1B\uFF09)\\]]*)?/g,"$1$2")}function M(c){return F(String(c?.message??c)).replace(/\\b(token|password|cookie|authorization)["\']?\\s*[:=]\\s*["\']?(?:Bearer\\s+)?[^\\s,;"\'}]+/gi,"$1=[redacted]")}var E=class extends Error{code;details;constructor(d,f,l,m){super(`[fulgurjs:${d}] ${F(f)}`,m),this.name="FgError",this.code=d,this.details=l}},R={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014",COMPONENT_EXPORT_INVALID:"MFU-018",VUE_RUNTIME_IDENTITY_MISMATCH:"MFU-019",REMOTE_RENDER_ERROR:"MFU-020"};function ie(c){if(typeof c!="object"||c===null)return!1;let d=globalThis,f=d.__FULGURJS_REPORTED_ERRORS__??=new WeakSet;return f.has(c)?!0:(f.add(c),!1)}var ae="6.14.1";var Ne="__fulgurjsSetup",Ce="__FULGURJS_APP_CONFIG__",J=15e3,ce=2,Fe=5,Ve=3e4,De=4e3,Ke=.2;function qe(){let c=Object.create(null),d=new Map,f=[],l=new Set,m=new Map,S=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,P=new Map,A=new WeakMap,V=new WeakMap,W=(e,r)=>{console.warn(`[fulgurjs] ${e} \\u94A9\\u5B50\\u5931\\u8D25\\uFF08\\u4E0D\\u5F71\\u54CD\\u52A0\\u8F7D\\uFF09\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A`,M(r))},_={},ue=()=>{for(let e of f)try{e.init?.(_)}catch(r){console.warn("[fulgurjs] \\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A",e.name,M(r))}},D=new Map,K,q=e=>{let r=D.get(e);return r||D.set(e,r={}),r},z=()=>globalThis[Ce]??{};async function Y(e,r,n,o){let t=u=>{if(u instanceof E)return v({remote:e,error:u}),u;let a=new E(R.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${o} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${M(u)}\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:u});return v({remote:e,error:a}),a};K=e;let s;try{s=r(n)}catch(u){throw t(u)}finally{K=void 0}try{await s}catch(u){throw t(u)}}async function de(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await B(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default,u=t?.onSession!==void 0||t?.globalComponents!==void 0||t?.pageProviders!==void 0;if(s!==void 0&&typeof s!="function"||!s&&!u)throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${t==null?String(t):typeof s}\\uFF0C\\u4E14\\u6A21\\u5757\\u4E0D\\u6EE1\\u8DB3\\u521D\\u59CB\\u5316\\u58F0\\u660E\\u5951\\u7EA6\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u521D\\u59CB\\u5316\\u51FD\\u6570\\uFF0C\\u6216\\u53EA\\u58F0\\u660E onSession/globalComponents/pageProviders\\uFF1B\\u7A7A\\u6A21\\u5757\\u4E0E\\u975E\\u51FD\\u6570\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u65E0\\u6548\\u3002`,{remote:e.name,module:n});if(t.onSession!==void 0&&typeof t.onSession!="function")throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\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});if(o.setupExports=t,t.globalComponents!==void 0){if(typeof t.globalComponents!="object"||t.globalComponents===null||Array.isArray(t.globalComponents))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AglobalComponents \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${Array.isArray(t.globalComponents)?"array":typeof t.globalComponents}\\uFF0C\\u5E94\\u4E3A\\u5BF9\\u8C61\\uFF08\\u952E=\\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D\\uFF0C\\u503C=\\u7EC4\\u4EF6\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const globalComponents = { \\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D: \\u7EC4\\u4EF6 } \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.globalComponents=t.globalComponents}if(t.pageProviders!==void 0){if(!Array.isArray(t.pageProviders))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1ApageProviders \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.pageProviders}\\uFF0C\\u5E94\\u4E3A\\u6570\\u7EC4\\uFF08\\u6BCF\\u9879=\\u7EC4\\u4EF6\\u6216\\u96F6\\u53C2 loader\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const pageProviders = [AppProvider] \\u6216 [() => import(\'./X\').then((m) => m.AppProvider)] \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.pageProviders=t.pageProviders}s&&await Y(e.name,s,{appContext:z(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(t){throw e.debug.setup="failed",t?.code&&v({remote:e.name,error:t}),o.setupExports=void 0,o.globalComponents=void 0,o.pageProviders=void 0,t}}async function fe(e,r,n){let o=z(),t=o?.sessionKey;if(typeof t!="string"||t===""){let y=new E(R.SETUP_SESSION_KEY_MISSING,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u58F0\\u660E\\u4E86 onSession\\uFF0C\\u4F46\\u5BBF\\u4E3B\\u5C1A\\u672A\\u63D0\\u4F9B\\u6709\\u6548\\u7684 AppContext.sessionKey\\u3002\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});throw v({remote:e.name,error:y}),y}if(r.sessionPromise&&r.sessionKey===t)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=t;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),a=(async()=>{await u,!s.signal.aborted&&await Y(e.name,n,{appContext:o,sessionKey:t,signal:s.signal},"onSession")})();return r.sessionPromise=a,a.catch(()=>{r.sessionKey===t&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),a}async function pe(e,r){let n=r?.[Ne];if(typeof n!="string"||n==="")return;let o=q(e.name);o.setupPromise||(o.setupPromise=de(e,r,n,o).catch(s=>{throw o.setupPromise=void 0,s})),await o.setupPromise;let t=o.setupExports?.onSession;typeof t=="function"&&await fe(e,o,t)}function me(){for(let e of D.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let L=e=>c[e]??=Object.create(null);function v(e){if(!ie(e.error)){try{_.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}}function ge(e="default"){return L(e),c}function H(e,r,n,o,t={}){let s=L(e||"default"),u=Object.hasOwn(s,r)?s[r]:void 0,a=u&&typeof u=="object"?u:void 0;a||(a=Object.create(null),s[r]=a),!(Object.hasOwn(a,n)&&a[n])&&(a[n]={version:n,get:o,from:t.from??"unknown",eager:!!t.eager,loaded:!!t.loaded})}function he(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 Z(e){for(let r of e){he(r);let n=d.get(r.name);d.set(r.name,{timeout:J,retries:ce,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??Fe,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??Ve,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:j(r.entry),status:"idle",setup:"none"}})}}function ye(e){Z([e])}function Se(e){f.push(...e),m.clear(),ue()}function I(e,r,n=!1){let o=r.shareScope||"default",t=r.shareKey||e,u=L(o)[t]||{},a=Object.keys(u).filter(i=>!n||r.singleton||u[i].value!==void 0);if(n&&a.length===0)return;let y=r.requiredVersion,g=a.filter(i=>y===void 0||y===!1||U(i,y)),p;if(r.singleton&&a.length>0){let i=a.filter(h=>u[h].loaded);if(p=[...i.length?i:a].sort(x).pop(),!g.includes(p)){let h=u[p],O=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${t}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42 ${y??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${a.join("\\u3001")}\\uFF1B\\u5355\\u4F8B\\u5019\\u9009\\u4E3A ${h.from} \\u63D0\\u4F9B\\u7684 ${p}\\u3002\n`+(r.strictVersion?`\\u7ED3\\u679C\\uFF1AstrictVersion \\u5DF2\\u5F00\\u542F\\uFF0C\\u672C\\u6B21\\u52A0\\u8F7D\\u5DF2\\u62D2\\u7EDD\\uFF0C\\u672A\\u4EA4\\u4ED8\\u4E0D\\u517C\\u5BB9\\u5B9E\\u4F8B\\u3002\n`:`\\u7ED3\\u679C\\uFF1A\\u590D\\u7528\\u6B64\\u5355\\u4F8B\\uFF1B\\u8BF7\\u786E\\u8BA4\\u4E24\\u7AEF API \\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\\u3002";if(r.strictVersion){let T=new E(R.SHARE_STRICT_VERSION,O,{shareKey:t,requiredVersion:y});throw v({remote:h.from,error:T}),T}let $=`${o}|${t}|${y??"*"}|${p}|${a.join(",")}`;l.has($)||(l.add($),console.warn(`[fulgurjs:MFU-010] ${O}`))}}else if(p=[...g].sort(x).pop(),!p){if(r.strictVersion){let i=new E(R.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${o}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${t}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${y}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${a.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:t,error:i}),i}return}return u[p]}function Q(e,r,n){let o=r.localVersion;if(!o||n===void 0)return;let t=r.shareScope||"default",s=r.shareKey||e,u=L(t),a=Object.hasOwn(u,s)?u[s]:void 0;if(a&&Object.keys(a).length>0){try{let g=I(e,r);if(g&&g.value===void 0){if(g.version===o)g.value=n,g.loaded=!0;else if(r.singleton&&!g.pendingGet){H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let p=u[s][o];p.value=n,p.loaded=!0}}}catch{}return}H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let y=u[s]?.[o];y&&(y.value=n)}async function ee(e,r={}){let n=r.shareScope||"default",o=r.shareKey||e,t=L(n)[o]||{},s=S(e,r),u=_.resolveShare?m.get(s):void 0,a=u||I(e,r);if(!a){if(r.fallback){let i=await r.fallback();return Q(e,r,i),i}let p=new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${o}"\\u3002\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 v({remote:o,error:p}),p}if(_.resolveShare&&!u){let p=await _.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:a,available:Object.values(t)});p&&(a=p),m.set(s,a)}if(a.value!==void 0)return m.set(S(e,r),a),a.value;if(a.loaded=!0,!a.pendingGet)try{a.pendingGet=a.get()}catch(p){a.pendingGet=Promise.reject(p)}let y=a.pendingGet,g;try{g=await y}catch(p){if(a.value!==void 0)return m.set(S(e,r),a),a.value;throw a.loaded=!1,m.get(s)===a&&m.delete(s),p}finally{a.pendingGet===y&&(a.pendingGet=void 0)}return a.value===void 0&&(a.value=g),m.set(S(e,r),a),a.value}function Ee(e,r={}){return _.resolveShare?m.get(S(e,r))?.value:I(e,r,!0)?.value}function Re(e,r,n,o){Q(e,{...r,localVersion:n},o)}function we(e,r){let n=r.shareScope||"default",o=r.shareKey||e;if(_.resolveShare){let s=S(e,r),u=m.get(s);if(u&&u.value!==void 0)return{kind:"ready",value:u.value};let a=u||_.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:I(e,r),available:Object.values(L(n)[o]||{})});if(a&&typeof a.then=="function")throw Promise.resolve(a).catch(()=>{}),new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u5BF9\\u5171\\u4EAB "${o}" \\u8FD4\\u56DE\\u4E86 Promise\\uFF0C\\u4F46\\u8BE5\\u5171\\u4EAB\\u6B63\\u88AB\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u6D88\\u8D39\\uFF08Vite 8 \\u540C\\u6B65\\u534F\\u5546\\u95E8\\u9762\\uFF09\\u3002\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 y=a;if(y){if(y.value!==void 0)return m.set(S(e,r),y),{kind:"ready",value:y.value};if(y.version!==void 0&&y.version===r.localVersion)return{kind:"local"};throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u4E3A "${o}" \\u9009\\u62E9\\u4E86\\u672A\\u5C31\\u7EEA\\u7684 ${y.version??"\\u6761\\u76EE"}\\u3002\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=I(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||!U(r.localVersion,r.requiredVersion))){if(r.strictVersion||t.pendingGet)throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB "${o}" \\u9009\\u4E2D\\u4E86 ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version}\\uFF08\\u5C1A\\u672A\\u52A0\\u8F7D\\uFF09\\uFF0C\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u65E0\\u6CD5\\u7B49\\u5F85\\u5176\\u5B9E\\u4F8B\\u5C31\\u7EEA\\u3002\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 l.has(s)||(l.add(s),console.warn(`[fulgurjs:MFU-010] \\u5171\\u4EAB\\u5355\\u4F8B "${o}"\\uFF1A\\u4F5C\\u7528\\u57DF\\u4E2D ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version} \\u5C1A\\u672A\\u52A0\\u8F7D\\uFF0C\\u9996\\u4E2A\\u6D88\\u8D39\\u8005\\u4EE5\\u672C\\u5730\\u7248\\u672C ${r.localVersion??""} \\u63A5\\u7BA1\\uFF08\\u540E\\u7EED\\u6D88\\u8D39\\u8005\\u6309\\u5DF2\\u52A0\\u8F7D\\u4F18\\u5148\\u6536\\u655B\\u5230\\u8BE5\\u5B9E\\u4F8B\\uFF09\\u3002`)),{kind:"local"}}return console.warn(`[fulgurjs] \\u5171\\u4EAB "${o}"\\uFF1A\\u975E\\u5355\\u4F8B\\u540C\\u6B65\\u6D88\\u8D39\\u4F7F\\u7528\\u672C\\u5730 ${r.localVersion??""}\\uFF0C\\u8FDC\\u7A0B ${t.version} \\u5C1A\\u672A\\u5C31\\u7EEA\\u3002`),{kind:"local"}}async function be(e){if(_.resolveShare){for(let{name:r,opts:n}of e){let o=S(r,n);if(m.has(o))continue;let t=I(r,n),s=await _.resolveShare({shareKey:n.shareKey||r,shareScope:n.shareScope||"default",requiredVersion:n.requiredVersion,picked:t,available:Object.values(L(n.shareScope||"default")[n.shareKey||r]||{})})||t;s&&m.set(o,s)}for(let{name:r,opts:n}of e)await ee(r,n)}}function j(e=""){return F(e).split(/[?#]/,1)[0]}function re(e,r,n){return new Promise((o,t)=>{let s=setTimeout(()=>t(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${n}`)),r);e.then(u=>{clearTimeout(s),o(u)},u=>{clearTimeout(s),t(u)})})}let ve=e=>new Promise(r=>setTimeout(r,e)),ne=new Set;function G(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}`;ne.has(o)||(ne.add(o),console.warn(`[fulgurjs] ${n} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`))}else throw Object.assign(new Error(n),{code:R.REMOTE_NAME_MISMATCH})}}async function te(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)})),re(s,r.timeout??J,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${j(e)}`)}async function oe(e,r){let n=e.shareScope||"default";if(e.container){let s=V.get(e.container);if(s&&s!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${s}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return e.container}if(e.containerPromise)return e.containerPromise;let o=e.breakerState;if(o.openUntil>Date.now()){let s=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u8FDE\\u7EED\\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u7194\\u65AD\\u5668\\u5DF2\\u5F00\\u542F\\uFF1B\\u5C06\\u5728 ${new Date(o.openUntil).toISOString()} \\u540E\\u5141\\u8BB8\\u91CD\\u8BD5\\u3002\\u8BF7\\u5148\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u670D\\u52A1\\u548C\\u7F51\\u7EDC\\u3002`,{remote:e.name,stage:"container"});throw v({remote:e.name,error:s}),s}e.state="loading",e.debug.status="loading";let t=(async()=>{let s=[];if(e.promise)s.push(async()=>{let i=await re(e.promise(),e.timeout??J,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),h=typeof i=="string"?await te(i,e):i;return G(h,e),h});else for(let i of[e.entry,...e.fallback??[]])s.push(async()=>{let h=await te(i,e);return G(h,e),h});let u,a,y=!1,g=r?.retries??e.retries??ce;for(let i of s){for(let h=0;h<=g;h++){let O=performance.now();try{u=await i(),e.lastLoadMs=Math.round(performance.now()-O),e.debug.lastLoadMs=e.lastLoadMs,y=!0;break}catch($){if(a=$,$?.code)throw $;h<g&&await ve(Math.min(De,200*2**h)*(1-Ke*(1-2*Math.random())))}}if(y)break}if(!y||!u){let i=j(e.entry),h=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),h.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),h.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),h.push("2. \\u68C0\\u67E5 Nginx/CDN \\u7684\\u5165\\u53E3\\u8DEF\\u5F84\\u6620\\u5C04\\uFF1B\\u8BE5\\u5730\\u5740\\u4E0D\\u80FD\\u56DE\\u9000\\u5230 index.html\\u3002")),new E(R.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${i} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${M(a)}\n\\u4FEE\\u6CD5\\uFF1A\n${h.join(`\n`)}`,{remote:e.name,stage:"container"},{cause:a})}G(u,e);let p=V.get(u);if(p&&p!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${p}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof u.init=="function"&&await u.init(c),V.set(u,n),e.container=u,e.state="loaded",e.debug.status="loaded",o.fails=0,u})();e.containerPromise=t;try{return await t}catch(s){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=M(s),o.fails+=1,o.fails>=e.breakerThreshold&&(o.openUntil=Date.now()+e.breakerResetMs,o.fails=0),s instanceof E)throw v({remote:e.name,error:s}),s;if(s?.code)throw v({remote:e.name,error:s}),s;let u=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(s)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name,stage:"container"},{cause:s});throw v({remote:e.name,error:u}),u}}function X(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:se(e.slice(r+1))}}function se(e){return e?e.startsWith(".")?e:`./${e}`:""}async function Pe(e,r){let{remote:n,module:o}=X(e);if(o&&K===n)throw new E(R.SETUP_RECURSION,`\\u73B0\\u8C61\\uFF1A\\u52A0\\u8F7D "${e}" \\u65F6\\uFF0C\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 setup/onSession \\u53C8\\u540C\\u6B65\\u52A0\\u8F7D\\u4E86\\u81EA\\u8EAB\\u6A21\\u5757\\uFF0C\\u5F62\\u6210\\u5FAA\\u73AF\\u7B49\\u5F85\\u3002\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(i){W("beforeLoadRemote",i)}let t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:n});let s;try{let i=o&&t.manifestUrl?B(e):Promise.resolve();[s]=await Promise.all([oe(t,{retries:r?.retries}),i])}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}if(!o)return s;await pe(t,s);let u=q(n).globalComponents,a=r?.consumerApp;if(u&&a&&typeof a.component=="function")for(let i of Object.keys(u))a.component(i,u[i]);let y=q(n).pageProviders;y&&y.length>0&&typeof a?.pageProviders=="function"&&a.pageProviders(y);let g=`${n}@${t.shareScope||"default"}#${o}`;b.has(g)||b.set(g,s.get(o).catch(i=>{if(b.delete(g),i instanceof E||i?.code)throw v({remote:n,error:i}),i;let h=new E(R.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${o}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(i)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:o,stage:"expose"},{cause:i});throw v({remote:n,error:h}),h}));let p;try{p=await b.get(g)}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}try{_.afterLoadRemote?.({remote:n,module:o,module_ns:p})}catch(i){W("afterLoadRemote",i)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let i=new E(R.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6A21\\u5757 "${o}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:n,module:o});v({remote:n,error:i}),console.error(i.message)}return p}function $e(e){let r=d.get(e);if(!r)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return oe(r)}async function B(e,r={}){let{remote:n,module:o}=X(e),t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:n});let s=r.mode??"preload",u=(g,p)=>{if(g.sheet)return Promise.resolve();let i=A.get(g);if(i)return i;let h=new Promise(O=>{let $=()=>{g.removeEventListener("load",$),g.removeEventListener("error",T),O()},T=()=>{v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${p}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:n})}),$()};g.addEventListener("load",$,{once:!0}),g.addEventListener("error",T,{once:!0}),g.sheet&&$()});return A.set(g,h),h},a=(g,p)=>{if(typeof document>"u")return Promise.resolve();let i=document.querySelector(`link[href="${g}"]`);if(i)return p==="style"&&s==="preload"?A.get(i)??Promise.resolve():Promise.resolve();let h=document.createElement("link");h.rel=p==="style"?"stylesheet":"modulepreload",h.href=g,s==="prefetch"&&(h.fetchPriority="low");let O=p==="style"?u(h,g):Promise.resolve();return document.head.appendChild(h),p==="style"&&s==="preload"?O:Promise.resolve()},y=g=>{let p=typeof document<"u"?document.baseURI:void 0,i=new URL(t.entry,p||"http://fulgurjs.invalid/");return!i.pathname.endsWith("/")&&!i.pathname.split("/").pop().includes(".")&&(i.pathname+="/"),new URL(g,i).href};try{if(t.manifestUrl){let g=P.get(t.manifestUrl);g||(g=fetch(t.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(i=>i.ok?i.json():void 0),P.set(t.manifestUrl,g),g.then(i=>{i||P.delete(t.manifestUrl)},()=>P.delete(t.manifestUrl)));let p=await g;if(p){let i=p.schemaVersion;if(typeof i=="number"&&(!Number.isInteger(i)||i>1)){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(i)}\\uFF0C\\u5F53\\u524D\\u4EC5\\u652F\\u6301\\u7248\\u672C 1\\u3002\\u8BF7\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u548C\\u8FDC\\u7A0B\\u7684\\u63D2\\u4EF6\\u7248\\u672C\\u3002`,{remote:n})}),await a(t.entry,"modulepreload");return}await a(t.entry,"modulepreload");let h=p.exposes,O=Array.isArray(h)?h.filter(k=>k&&typeof k=="object").map(k=>[String(k.name??""),k]):h&&typeof h=="object"?Object.entries(h):[],$=o?O.filter(([k,N])=>se(String(N?.name??k))===o):O,T=[];for(let[,k]of $)if(typeof k?.file=="string"&&await a(y(k.file),"modulepreload"),Array.isArray(k?.css))for(let N of k.css){if(typeof N!="string")continue;let _e=a(y(N),"style");s==="preload"&&T.push(_e)}await Promise.all(T);return}}await a(t.entry,"modulepreload")}catch(g){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(g)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:n})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=c,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,n]of d)e[r]={...n.debug,entry:j(n.entry)};return e},errors:[]}),{shareScopeMap:c,initSharing:ge,registerShare:H,registerRemotes:Z,registerRemote:ye,registerPlugins:Se,loadShare:ee,loadShareSync:we,prepareShares:be,getLoadedShare:Ee,pinLoadedShare:Re,loadRemote:Pe,getContainer:$e,preloadRemote:B,parseSpec:X,clearSessionState:me,reportRemoteError:e=>{v(e)}}}var le=globalThis,w=le.__FULGURJS_RUNTIME__??qe();le.__FULGURJS_RUNTIME__=w;try{Object.freeze(w)}catch{}var Ye=ae;function Ze(){return w}var Qe=w.initSharing,er=w.registerShare,rr=w.registerRemotes,nr=w.registerRemote,tr=w.registerPlugins,or=w.loadShare,sr=w.getLoadedShare,ir=w.prepareShares||(async c=>{for(let{name:d,opts:f}of c)await w.loadShare(d,f)}),ar=w.loadShareSync,cr=w.pinLoadedShare,lr=w.loadRemote,ur=w.getContainer,dr=w.preloadRemote,fr=w.parseSpec,pr=w.clearSessionState,mr=w.shareScopeMap;function gr(c){if(c&&typeof c=="object"&&"default"in c){let d=c.default;return d!==void 0?d:c}return c}var hr=w;export{pr as clearSessionState,hr as default,ur as getContainer,sr as getLoadedShare,Ze as getRuntime,Qe as initSharing,lr as loadRemote,or as loadShare,ar as loadShareSync,fr as parseSpec,cr as pinLoadedShare,dr as preloadRemote,ir as prepareShares,tr as registerPlugins,nr as registerRemote,rr as registerRemotes,er as registerShare,w as runtime,mr as shareScopeMap,gr as unwrapDefault,Ye as version};\n';
4056
+ var runtime_code_gen_default = 'var ke=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function C(c){let d=ke.exec(String(c).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function Oe(c,d){if(c.length===0&&d.length===0)return 0;if(c.length===0)return 1;if(d.length===0)return-1;let f=Math.max(c.length,d.length);for(let l=0;l<f;l++){let m=c[l],S=d[l];if(m===void 0)return-1;if(S===void 0)return 1;let b=/^\\d+$/.test(m),P=/^\\d+$/.test(S);if(b&&P){let A=Number(m)-Number(S);if(A!==0)return A}else{if(b!==P)return b?-1:1;if(m!==S)return m<S?-1:1}}return 0}function x(c,d){let f=C(c),l=C(d);return!f||!l?c<d?-1:c>d?1:0:f.major!==l.major?f.major-l.major:f.minor!==l.minor?f.minor-l.minor:f.patch!==l.patch?f.patch-l.patch:Oe(f.pre,l.pre)}var Me=/^[a-z]+[+:-]/i;function U(c,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||Me.test(f)?!0:f.split("||").some(l=>Te(c,l.trim()))}function Te(c,d){if(!d||d==="*")return!C(c)?.pre.length;let f=d.split(/\\s+-\\s+/);if(f.length===2){let S=f[0].trim(),b=f[1].trim();return!(!U(c,`>=${S}`)||!U(c,`<=${b}`))}let l=C(c);if(!l)return!1;let m=Le(d);if(m===null)return!0;for(let S of m)if(!je(l,c,S))return!1;return!(l.pre.length>0&&!m.some(S=>S.ver.pre.length>0)&&!m.some(b=>b.ver.major===l.major&&b.ver.minor===l.minor&&b.ver.patch===l.patch))}function Le(c){let d=[],f=c.trim().split(/\\s+/).filter(Boolean);if(f.length===0)return null;for(let l of f){let m=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(l);if(!m)return null;let S=m[1],b=m[2],P=Ae(S,b);if(P===null)return null;d.push(...P)}return d}function Ae(c,d){let f=xe(d);if(!f)return null;let{ver:l,partial:m}=f;switch(c){case"^":{let S=Ie(l);return S?[{op:">=",ver:l},{op:"<",ver:S}]:null}case"~":{let S=m>=2?{major:l.major,minor:l.minor+1,patch:0,pre:[]}:{major:l.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:l},{op:"<",ver:S}]}case">=":return[{op:">=",ver:l}];case">":return m===1?[{op:">=",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:">",ver:l}];case"<":return m===1?[{op:"<",ver:{major:l.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:l.major,minor:l.minor,patch:0,pre:[]}}]:[{op:"<",ver:l}];case"<=":return[{op:"<=",ver:l}];case"=":case void 0:return m===1?[{op:">=",ver:l},{op:"<",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:l},{op:"<",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:l}];default:return null}}function Ie(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 xe(c){let d=c.replace(/^v/,"").trim();if(!d||d==="*"||d==="x"||d==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=d.split("."),l=[],m=0;for(let P of f.slice(0,3))if(/^\\d+$/.test(P))l.push(Number(P)),m++;else{if(P==="x"||P==="X"||P==="*")break;break}let S=d.split("-"),b=S.length>1?S.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:l[0]??0,minor:l[1]??0,patch:l[2]??0,pre:b},partial:m}}function Ue(c,d){switch(d){case">=":return c>=0;case">":return c>0;case"<":return c<0;case"<=":return c<=0;case"=":return c===0}}function je(c,d,f){let l=`${c.major}.${c.minor}.${c.patch}`+(c.pre.length?`-${c.pre.join(".")}`:"");if(f.upper)return!(!(x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(x(l,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),S=Ue(m,f.op);return f.ver.pre.length>0&&c.pre.length===0&&(f.op===">"||f.op==="<")?!1:S}function F(c){return c.replace(/(https?:\\/\\/)(?:[^\\s/@]+@)?([^\\s?#"\'<>\uFF0C\u3002\uFF1B\uFF09)\\]]+)(?:[?#][^\\s"\'<>\uFF0C\u3002\uFF1B\uFF09)\\]]*)?/g,"$1$2")}function M(c){return F(String(c?.message??c)).replace(/\\b(token|password|cookie|authorization)["\']?\\s*[:=]\\s*["\']?(?:Bearer\\s+)?[^\\s,;"\'}]+/gi,"$1=[redacted]")}var E=class extends Error{code;details;constructor(d,f,l,m){super(`[fulgurjs:${d}] ${F(f)}`,m),this.name="FgError",this.code=d,this.details=l}},R={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014",COMPONENT_EXPORT_INVALID:"MFU-018",VUE_RUNTIME_IDENTITY_MISMATCH:"MFU-019",REMOTE_RENDER_ERROR:"MFU-020"};function ie(c){if(typeof c!="object"||c===null)return!1;let d=globalThis,f=d.__FULGURJS_REPORTED_ERRORS__??=new WeakSet;return f.has(c)?!0:(f.add(c),!1)}var ae="6.14.3";var Ne="__fulgurjsSetup",Ce="__FULGURJS_APP_CONFIG__",J=15e3,ce=2,Fe=5,Ve=3e4,De=4e3,Ke=.2;function qe(){let c=Object.create(null),d=new Map,f=[],l=new Set,m=new Map,S=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,P=new Map,A=new WeakMap,V=new WeakMap,W=(e,r)=>{console.warn(`[fulgurjs] ${e} \\u94A9\\u5B50\\u5931\\u8D25\\uFF08\\u4E0D\\u5F71\\u54CD\\u52A0\\u8F7D\\uFF09\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A`,M(r))},_={},ue=()=>{for(let e of f)try{e.init?.(_)}catch(r){console.warn("[fulgurjs] \\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A",e.name,M(r))}},D=new Map,K,q=e=>{let r=D.get(e);return r||D.set(e,r={}),r},z=()=>globalThis[Ce]??{};async function Y(e,r,n,o){let t=u=>{if(u instanceof E)return v({remote:e,error:u}),u;let a=new E(R.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${o} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${M(u)}\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:u});return v({remote:e,error:a}),a};K=e;let s;try{s=r(n)}catch(u){throw t(u)}finally{K=void 0}try{await s}catch(u){throw t(u)}}async function de(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await B(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default,u=t?.onSession!==void 0||t?.globalComponents!==void 0||t?.pageProviders!==void 0;if(s!==void 0&&typeof s!="function"||!s&&!u)throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${t==null?String(t):typeof s}\\uFF0C\\u4E14\\u6A21\\u5757\\u4E0D\\u6EE1\\u8DB3\\u521D\\u59CB\\u5316\\u58F0\\u660E\\u5951\\u7EA6\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u521D\\u59CB\\u5316\\u51FD\\u6570\\uFF0C\\u6216\\u53EA\\u58F0\\u660E onSession/globalComponents/pageProviders\\uFF1B\\u7A7A\\u6A21\\u5757\\u4E0E\\u975E\\u51FD\\u6570\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u65E0\\u6548\\u3002`,{remote:e.name,module:n});if(t.onSession!==void 0&&typeof t.onSession!="function")throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\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});if(o.setupExports=t,t.globalComponents!==void 0){if(typeof t.globalComponents!="object"||t.globalComponents===null||Array.isArray(t.globalComponents))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AglobalComponents \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${Array.isArray(t.globalComponents)?"array":typeof t.globalComponents}\\uFF0C\\u5E94\\u4E3A\\u5BF9\\u8C61\\uFF08\\u952E=\\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D\\uFF0C\\u503C=\\u7EC4\\u4EF6\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const globalComponents = { \\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D: \\u7EC4\\u4EF6 } \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.globalComponents=t.globalComponents}if(t.pageProviders!==void 0){if(!Array.isArray(t.pageProviders))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1ApageProviders \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.pageProviders}\\uFF0C\\u5E94\\u4E3A\\u6570\\u7EC4\\uFF08\\u6BCF\\u9879=\\u7EC4\\u4EF6\\u6216\\u96F6\\u53C2 loader\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const pageProviders = [AppProvider] \\u6216 [() => import(\'./X\').then((m) => m.AppProvider)] \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.pageProviders=t.pageProviders}s&&await Y(e.name,s,{appContext:z(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(t){throw e.debug.setup="failed",t?.code&&v({remote:e.name,error:t}),o.setupExports=void 0,o.globalComponents=void 0,o.pageProviders=void 0,t}}async function fe(e,r,n){let o=z(),t=o?.sessionKey;if(typeof t!="string"||t===""){let y=new E(R.SETUP_SESSION_KEY_MISSING,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u58F0\\u660E\\u4E86 onSession\\uFF0C\\u4F46\\u5BBF\\u4E3B\\u5C1A\\u672A\\u63D0\\u4F9B\\u6709\\u6548\\u7684 AppContext.sessionKey\\u3002\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});throw v({remote:e.name,error:y}),y}if(r.sessionPromise&&r.sessionKey===t)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=t;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),a=(async()=>{await u,!s.signal.aborted&&await Y(e.name,n,{appContext:o,sessionKey:t,signal:s.signal},"onSession")})();return r.sessionPromise=a,a.catch(()=>{r.sessionKey===t&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),a}async function pe(e,r){let n=r?.[Ne];if(typeof n!="string"||n==="")return;let o=q(e.name);o.setupPromise||(o.setupPromise=de(e,r,n,o).catch(s=>{throw o.setupPromise=void 0,s})),await o.setupPromise;let t=o.setupExports?.onSession;typeof t=="function"&&await fe(e,o,t)}function me(){for(let e of D.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let L=e=>c[e]??=Object.create(null);function v(e){if(!ie(e.error)){try{_.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}}function ge(e="default"){return L(e),c}function H(e,r,n,o,t={}){let s=L(e||"default"),u=Object.hasOwn(s,r)?s[r]:void 0,a=u&&typeof u=="object"?u:void 0;a||(a=Object.create(null),s[r]=a),!(Object.hasOwn(a,n)&&a[n])&&(a[n]={version:n,get:o,from:t.from??"unknown",eager:!!t.eager,loaded:!!t.loaded})}function he(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 Z(e){for(let r of e){he(r);let n=d.get(r.name);d.set(r.name,{timeout:J,retries:ce,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??Fe,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??Ve,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:j(r.entry),status:"idle",setup:"none"}})}}function ye(e){Z([e])}function Se(e){f.push(...e),m.clear(),ue()}function I(e,r,n=!1){let o=r.shareScope||"default",t=r.shareKey||e,u=L(o)[t]||{},a=Object.keys(u).filter(i=>!n||r.singleton||u[i].value!==void 0);if(n&&a.length===0)return;let y=r.requiredVersion,g=a.filter(i=>y===void 0||y===!1||U(i,y)),p;if(r.singleton&&a.length>0){let i=a.filter(h=>u[h].loaded);if(p=[...i.length?i:a].sort(x).pop(),!g.includes(p)){let h=u[p],O=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${t}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42 ${y??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${a.join("\\u3001")}\\uFF1B\\u5355\\u4F8B\\u5019\\u9009\\u4E3A ${h.from} \\u63D0\\u4F9B\\u7684 ${p}\\u3002\n`+(r.strictVersion?`\\u7ED3\\u679C\\uFF1AstrictVersion \\u5DF2\\u5F00\\u542F\\uFF0C\\u672C\\u6B21\\u52A0\\u8F7D\\u5DF2\\u62D2\\u7EDD\\uFF0C\\u672A\\u4EA4\\u4ED8\\u4E0D\\u517C\\u5BB9\\u5B9E\\u4F8B\\u3002\n`:`\\u7ED3\\u679C\\uFF1A\\u590D\\u7528\\u6B64\\u5355\\u4F8B\\uFF1B\\u8BF7\\u786E\\u8BA4\\u4E24\\u7AEF API \\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\\u3002";if(r.strictVersion){let T=new E(R.SHARE_STRICT_VERSION,O,{shareKey:t,requiredVersion:y});throw v({remote:h.from,error:T}),T}let $=`${o}|${t}|${y??"*"}|${p}|${a.join(",")}`;l.has($)||(l.add($),console.warn(`[fulgurjs:MFU-010] ${O}`))}}else if(p=[...g].sort(x).pop(),!p){if(r.strictVersion){let i=new E(R.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${o}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${t}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${y}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${a.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:t,error:i}),i}return}return u[p]}function Q(e,r,n){let o=r.localVersion;if(!o||n===void 0)return;let t=r.shareScope||"default",s=r.shareKey||e,u=L(t),a=Object.hasOwn(u,s)?u[s]:void 0;if(a&&Object.keys(a).length>0){try{let g=I(e,r);if(g&&g.value===void 0){if(g.version===o)g.value=n,g.loaded=!0;else if(r.singleton&&!g.pendingGet){H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let p=u[s][o];p.value=n,p.loaded=!0}}}catch{}return}H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let y=u[s]?.[o];y&&(y.value=n)}async function ee(e,r={}){let n=r.shareScope||"default",o=r.shareKey||e,t=L(n)[o]||{},s=S(e,r),u=_.resolveShare?m.get(s):void 0,a=u||I(e,r);if(!a){if(r.fallback){let i=await r.fallback();return Q(e,r,i),i}let p=new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${o}"\\u3002\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 v({remote:o,error:p}),p}if(_.resolveShare&&!u){let p=await _.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:a,available:Object.values(t)});p&&(a=p),m.set(s,a)}if(a.value!==void 0)return m.set(S(e,r),a),a.value;if(a.loaded=!0,!a.pendingGet)try{a.pendingGet=a.get()}catch(p){a.pendingGet=Promise.reject(p)}let y=a.pendingGet,g;try{g=await y}catch(p){if(a.value!==void 0)return m.set(S(e,r),a),a.value;throw a.loaded=!1,m.get(s)===a&&m.delete(s),p}finally{a.pendingGet===y&&(a.pendingGet=void 0)}return a.value===void 0&&(a.value=g),m.set(S(e,r),a),a.value}function Ee(e,r={}){return _.resolveShare?m.get(S(e,r))?.value:I(e,r,!0)?.value}function Re(e,r,n,o){Q(e,{...r,localVersion:n},o)}function we(e,r){let n=r.shareScope||"default",o=r.shareKey||e;if(_.resolveShare){let s=S(e,r),u=m.get(s);if(u&&u.value!==void 0)return{kind:"ready",value:u.value};let a=u||_.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:I(e,r),available:Object.values(L(n)[o]||{})});if(a&&typeof a.then=="function")throw Promise.resolve(a).catch(()=>{}),new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u5BF9\\u5171\\u4EAB "${o}" \\u8FD4\\u56DE\\u4E86 Promise\\uFF0C\\u4F46\\u8BE5\\u5171\\u4EAB\\u6B63\\u88AB\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u6D88\\u8D39\\uFF08Vite 8 \\u540C\\u6B65\\u534F\\u5546\\u95E8\\u9762\\uFF09\\u3002\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 y=a;if(y){if(y.value!==void 0)return m.set(S(e,r),y),{kind:"ready",value:y.value};if(y.version!==void 0&&y.version===r.localVersion)return{kind:"local"};throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u4E3A "${o}" \\u9009\\u62E9\\u4E86\\u672A\\u5C31\\u7EEA\\u7684 ${y.version??"\\u6761\\u76EE"}\\u3002\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=I(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||!U(r.localVersion,r.requiredVersion))){if(r.strictVersion||t.pendingGet)throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB "${o}" \\u9009\\u4E2D\\u4E86 ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version}\\uFF08\\u5C1A\\u672A\\u52A0\\u8F7D\\uFF09\\uFF0C\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u65E0\\u6CD5\\u7B49\\u5F85\\u5176\\u5B9E\\u4F8B\\u5C31\\u7EEA\\u3002\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 l.has(s)||(l.add(s),console.warn(`[fulgurjs:MFU-010] \\u5171\\u4EAB\\u5355\\u4F8B "${o}"\\uFF1A\\u4F5C\\u7528\\u57DF\\u4E2D ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version} \\u5C1A\\u672A\\u52A0\\u8F7D\\uFF0C\\u9996\\u4E2A\\u6D88\\u8D39\\u8005\\u4EE5\\u672C\\u5730\\u7248\\u672C ${r.localVersion??""} \\u63A5\\u7BA1\\uFF08\\u540E\\u7EED\\u6D88\\u8D39\\u8005\\u6309\\u5DF2\\u52A0\\u8F7D\\u4F18\\u5148\\u6536\\u655B\\u5230\\u8BE5\\u5B9E\\u4F8B\\uFF09\\u3002`)),{kind:"local"}}return console.warn(`[fulgurjs] \\u5171\\u4EAB "${o}"\\uFF1A\\u975E\\u5355\\u4F8B\\u540C\\u6B65\\u6D88\\u8D39\\u4F7F\\u7528\\u672C\\u5730 ${r.localVersion??""}\\uFF0C\\u8FDC\\u7A0B ${t.version} \\u5C1A\\u672A\\u5C31\\u7EEA\\u3002`),{kind:"local"}}async function be(e){if(_.resolveShare){for(let{name:r,opts:n}of e){let o=S(r,n);if(m.has(o))continue;let t=I(r,n),s=await _.resolveShare({shareKey:n.shareKey||r,shareScope:n.shareScope||"default",requiredVersion:n.requiredVersion,picked:t,available:Object.values(L(n.shareScope||"default")[n.shareKey||r]||{})})||t;s&&m.set(o,s)}for(let{name:r,opts:n}of e)await ee(r,n)}}function j(e=""){return F(e).split(/[?#]/,1)[0]}function re(e,r,n){return new Promise((o,t)=>{let s=setTimeout(()=>t(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${n}`)),r);e.then(u=>{clearTimeout(s),o(u)},u=>{clearTimeout(s),t(u)})})}let ve=e=>new Promise(r=>setTimeout(r,e)),ne=new Set;function G(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}`;ne.has(o)||(ne.add(o),console.warn(`[fulgurjs] ${n} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`))}else throw Object.assign(new Error(n),{code:R.REMOTE_NAME_MISMATCH})}}async function te(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)})),re(s,r.timeout??J,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${j(e)}`)}async function oe(e,r){let n=e.shareScope||"default";if(e.container){let s=V.get(e.container);if(s&&s!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${s}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return e.container}if(e.containerPromise)return e.containerPromise;let o=e.breakerState;if(o.openUntil>Date.now()){let s=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u8FDE\\u7EED\\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u7194\\u65AD\\u5668\\u5DF2\\u5F00\\u542F\\uFF1B\\u5C06\\u5728 ${new Date(o.openUntil).toISOString()} \\u540E\\u5141\\u8BB8\\u91CD\\u8BD5\\u3002\\u8BF7\\u5148\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u670D\\u52A1\\u548C\\u7F51\\u7EDC\\u3002`,{remote:e.name,stage:"container"});throw v({remote:e.name,error:s}),s}e.state="loading",e.debug.status="loading";let t=(async()=>{let s=[];if(e.promise)s.push(async()=>{let i=await re(e.promise(),e.timeout??J,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),h=typeof i=="string"?await te(i,e):i;return G(h,e),h});else for(let i of[e.entry,...e.fallback??[]])s.push(async()=>{let h=await te(i,e);return G(h,e),h});let u,a,y=!1,g=r?.retries??e.retries??ce;for(let i of s){for(let h=0;h<=g;h++){let O=performance.now();try{u=await i(),e.lastLoadMs=Math.round(performance.now()-O),e.debug.lastLoadMs=e.lastLoadMs,y=!0;break}catch($){if(a=$,$?.code)throw $;h<g&&await ve(Math.min(De,200*2**h)*(1-Ke*(1-2*Math.random())))}}if(y)break}if(!y||!u){let i=j(e.entry),h=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),h.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),h.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),h.push("2. \\u68C0\\u67E5 Nginx/CDN \\u7684\\u5165\\u53E3\\u8DEF\\u5F84\\u6620\\u5C04\\uFF1B\\u8BE5\\u5730\\u5740\\u4E0D\\u80FD\\u56DE\\u9000\\u5230 index.html\\u3002")),new E(R.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${i} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${M(a)}\n\\u4FEE\\u6CD5\\uFF1A\n${h.join(`\n`)}`,{remote:e.name,stage:"container"},{cause:a})}G(u,e);let p=V.get(u);if(p&&p!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${p}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof u.init=="function"&&await u.init(c),V.set(u,n),e.container=u,e.state="loaded",e.debug.status="loaded",o.fails=0,u})();e.containerPromise=t;try{return await t}catch(s){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=M(s),o.fails+=1,o.fails>=e.breakerThreshold&&(o.openUntil=Date.now()+e.breakerResetMs,o.fails=0),s instanceof E)throw v({remote:e.name,error:s}),s;if(s?.code)throw v({remote:e.name,error:s}),s;let u=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(s)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name,stage:"container"},{cause:s});throw v({remote:e.name,error:u}),u}}function X(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:se(e.slice(r+1))}}function se(e){return e?e.startsWith(".")?e:`./${e}`:""}async function Pe(e,r){let{remote:n,module:o}=X(e);if(o&&K===n)throw new E(R.SETUP_RECURSION,`\\u73B0\\u8C61\\uFF1A\\u52A0\\u8F7D "${e}" \\u65F6\\uFF0C\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 setup/onSession \\u53C8\\u540C\\u6B65\\u52A0\\u8F7D\\u4E86\\u81EA\\u8EAB\\u6A21\\u5757\\uFF0C\\u5F62\\u6210\\u5FAA\\u73AF\\u7B49\\u5F85\\u3002\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(i){W("beforeLoadRemote",i)}let t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:n});let s;try{let i=o&&t.manifestUrl?B(e):Promise.resolve();[s]=await Promise.all([oe(t,{retries:r?.retries}),i])}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}if(!o)return s;await pe(t,s);let u=q(n).globalComponents,a=r?.consumerApp;if(u&&a&&typeof a.component=="function")for(let i of Object.keys(u))a.component(i,u[i]);let y=q(n).pageProviders;y&&y.length>0&&typeof a?.pageProviders=="function"&&a.pageProviders(y);let g=`${n}@${t.shareScope||"default"}#${o}`;b.has(g)||b.set(g,s.get(o).catch(i=>{if(b.delete(g),i instanceof E||i?.code)throw v({remote:n,error:i}),i;let h=new E(R.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${o}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(i)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:o,stage:"expose"},{cause:i});throw v({remote:n,error:h}),h}));let p;try{p=await b.get(g)}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}try{_.afterLoadRemote?.({remote:n,module:o,module_ns:p})}catch(i){W("afterLoadRemote",i)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let i=new E(R.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6A21\\u5757 "${o}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:n,module:o});v({remote:n,error:i}),console.error(i.message)}return p}function $e(e){let r=d.get(e);if(!r)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return oe(r)}async function B(e,r={}){let{remote:n,module:o}=X(e),t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:n});let s=r.mode??"preload",u=(g,p)=>{if(g.sheet)return Promise.resolve();let i=A.get(g);if(i)return i;let h=new Promise(O=>{let $=()=>{g.removeEventListener("load",$),g.removeEventListener("error",T),O()},T=()=>{v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${p}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:n})}),$()};g.addEventListener("load",$,{once:!0}),g.addEventListener("error",T,{once:!0}),g.sheet&&$()});return A.set(g,h),h},a=(g,p)=>{if(typeof document>"u")return Promise.resolve();let i=document.querySelector(`link[href="${g}"]`);if(i)return p==="style"&&s==="preload"?A.get(i)??Promise.resolve():Promise.resolve();let h=document.createElement("link");h.rel=p==="style"?"stylesheet":"modulepreload",h.href=g,s==="prefetch"&&(h.fetchPriority="low");let O=p==="style"?u(h,g):Promise.resolve();return document.head.appendChild(h),p==="style"&&s==="preload"?O:Promise.resolve()},y=g=>{let p=typeof document<"u"?document.baseURI:void 0,i=new URL(t.entry,p||"http://fulgurjs.invalid/");return!i.pathname.endsWith("/")&&!i.pathname.split("/").pop().includes(".")&&(i.pathname+="/"),new URL(g,i).href};try{if(t.manifestUrl){let g=P.get(t.manifestUrl);g||(g=fetch(t.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(i=>i.ok?i.json():void 0),P.set(t.manifestUrl,g),g.then(i=>{i||P.delete(t.manifestUrl)},()=>P.delete(t.manifestUrl)));let p=await g;if(p){let i=p.schemaVersion;if(typeof i=="number"&&(!Number.isInteger(i)||i>1)){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(i)}\\uFF0C\\u5F53\\u524D\\u4EC5\\u652F\\u6301\\u7248\\u672C 1\\u3002\\u8BF7\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u548C\\u8FDC\\u7A0B\\u7684\\u63D2\\u4EF6\\u7248\\u672C\\u3002`,{remote:n})}),await a(t.entry,"modulepreload");return}await a(t.entry,"modulepreload");let h=p.exposes,O=Array.isArray(h)?h.filter(k=>k&&typeof k=="object").map(k=>[String(k.name??""),k]):h&&typeof h=="object"?Object.entries(h):[],$=o?O.filter(([k,N])=>se(String(N?.name??k))===o):O,T=[];for(let[,k]of $)if(typeof k?.file=="string"&&await a(y(k.file),"modulepreload"),Array.isArray(k?.css))for(let N of k.css){if(typeof N!="string")continue;let _e=a(y(N),"style");s==="preload"&&T.push(_e)}await Promise.all(T);return}}await a(t.entry,"modulepreload")}catch(g){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(g)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:n})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=c,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,n]of d)e[r]={...n.debug,entry:j(n.entry)};return e},errors:[]}),{shareScopeMap:c,initSharing:ge,registerShare:H,registerRemotes:Z,registerRemote:ye,registerPlugins:Se,loadShare:ee,loadShareSync:we,prepareShares:be,getLoadedShare:Ee,pinLoadedShare:Re,loadRemote:Pe,getContainer:$e,preloadRemote:B,parseSpec:X,clearSessionState:me,reportRemoteError:e=>{v(e)}}}var le=globalThis,w=le.__FULGURJS_RUNTIME__??qe();le.__FULGURJS_RUNTIME__=w;try{Object.freeze(w)}catch{}var Ye=ae;function Ze(){return w}var Qe=w.initSharing,er=w.registerShare,rr=w.registerRemotes,nr=w.registerRemote,tr=w.registerPlugins,or=w.loadShare,sr=w.getLoadedShare,ir=w.prepareShares||(async c=>{for(let{name:d,opts:f}of c)await w.loadShare(d,f)}),ar=w.loadShareSync,cr=w.pinLoadedShare,lr=w.loadRemote,ur=w.getContainer,dr=w.preloadRemote,fr=w.parseSpec,pr=w.clearSessionState,mr=w.shareScopeMap;function gr(c){if(c&&typeof c=="object"&&"default"in c){let d=c.default;return d!==void 0?d:c}return c}var hr=w;export{pr as clearSessionState,hr as default,ur as getContainer,sr as getLoadedShare,Ze as getRuntime,Qe as initSharing,lr as loadRemote,or as loadShare,ar as loadShareSync,fr as parseSpec,cr as pinLoadedShare,dr as preloadRemote,ir as prepareShares,tr as registerPlugins,nr as registerRemote,rr as registerRemotes,er as registerShare,w as runtime,mr as shareScopeMap,gr as unwrapDefault,Ye as version};\n';
4011
4057
 
4012
4058
  // src/index.ts
4013
4059
  function readRuntimeCode() {
@@ -5142,7 +5188,10 @@ ${entryChunk.code}`;
5142
5188
  const stop = startRemoteTypesSyncLoop({
5143
5189
  root: n.root,
5144
5190
  typesRoot,
5145
- remotes: syncable.map((r) => ({ key: r.key, devEntry: r.devEntry }))
5191
+ remotes: syncable.map((r) => ({ key: r.key, devEntry: r.devEntry })),
5192
+ // 消费/提供双角色的公开源码可能直接 import 上游具名类型。
5193
+ // 首轮编译早于同步时会失败;仅在新类型原子写入后重检,普通轮询不触发。
5194
+ onSynced: () => typesServer?.invalidate()
5146
5195
  });
5147
5196
  server.httpServer?.once("close", stop);
5148
5197
  });
package/dist/index.js CHANGED
@@ -34,7 +34,7 @@ import fs from "fs";
34
34
  import path from "path";
35
35
 
36
36
  // src/version.ts
37
- var RUNTIME_VERSION = "6.14.1";
37
+ var RUNTIME_VERSION = "6.14.3";
38
38
 
39
39
  // src/dev-cors.ts
40
40
  function normalizeDevCorsOrigins(input) {
@@ -2090,14 +2090,14 @@ function computeStaticClosure(ts, entryFiles, resolver, root) {
2090
2090
  import ${JSON.stringify(descriptor.script.src)}`;
2091
2091
  }
2092
2092
  const sfile = ts.createSourceFile(file, text, ts.ScriptTarget.Latest, true);
2093
- const imports = [];
2093
+ const imports = sfile.referencedFiles.map((ref) => ref.fileName);
2094
2094
  const visitType = (node) => {
2095
2095
  if (ts.isImportTypeNode(node) && ts.isLiteralTypeNode(node.argument) && ts.isStringLiteral(node.argument.literal)) imports.push(node.argument.literal.text);
2096
2096
  ts.forEachChild(node, visitType);
2097
2097
  };
2098
2098
  visitType(sfile);
2099
2099
  for (const stmt of sfile.statements) {
2100
- const specNode = (ts.isImportDeclaration(stmt) || ts.isExportDeclaration(stmt)) && stmt.moduleSpecifier && ts.isStringLiteral(stmt.moduleSpecifier) ? stmt.moduleSpecifier : null;
2100
+ const specNode = (ts.isImportDeclaration(stmt) || ts.isExportDeclaration(stmt)) && stmt.moduleSpecifier && ts.isStringLiteral(stmt.moduleSpecifier) ? stmt.moduleSpecifier : ts.isImportEqualsDeclaration(stmt) && ts.isExternalModuleReference(stmt.moduleReference) && ts.isStringLiteral(stmt.moduleReference.expression) ? stmt.moduleReference.expression : null;
2101
2101
  if (specNode) imports.push(specNode.text);
2102
2102
  }
2103
2103
  for (const spec of imports) {
@@ -2555,15 +2555,37 @@ export default value;
2555
2555
  const declRel = rel.endsWith(".d.ts") ? `files/${rel}` : rel.endsWith(".vue") ? `files/${rel}.d.ts` : `files/${rel.replace(/\.(mts|cts|ts|tsx|jsx|js)$/, "")}.d.ts`;
2556
2556
  srcToRel.set(srcAbs, declRel);
2557
2557
  }
2558
- for (const [srcAbs, text] of emitted) {
2559
- const rewritten = rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root, diagnostics);
2558
+ const relToSrc = new Map([...srcToRel].map(([src, rel]) => [rel, src]));
2559
+ const pending = [...entryMap.values()];
2560
+ const reachable = /* @__PURE__ */ new Map();
2561
+ while (pending.length > 0) {
2562
+ const srcAbs = pending.pop();
2563
+ if (reachable.has(srcAbs)) continue;
2564
+ const text = emitted.get(srcAbs);
2565
+ if (text === void 0) {
2566
+ diagnostics.push(`\u516C\u5F00\u58F0\u660E\u4F9D\u8D56\u672A\u4EA7\u51FA\uFF1A${path4.relative(root, srcAbs)}\u3002`);
2567
+ return { ok: false, diagnostics };
2568
+ }
2569
+ const rewritten = rewriteSpecifiers(
2570
+ ts,
2571
+ text,
2572
+ srcAbs,
2573
+ srcToRel,
2574
+ resolver,
2575
+ externals,
2576
+ root,
2577
+ diagnostics,
2578
+ (rel) => {
2579
+ pending.push(relToSrc.get(rel));
2580
+ }
2581
+ );
2560
2582
  if (rewritten === null) return { ok: false, diagnostics };
2561
- emitted.set(srcAbs, rewritten);
2583
+ reachable.set(srcAbs, rewritten);
2562
2584
  }
2563
2585
  const files = /* @__PURE__ */ new Map();
2564
2586
  const filesDigest = {};
2565
2587
  let leaked = false;
2566
- for (const [srcAbs, text] of emitted) {
2588
+ for (const [srcAbs, text] of reachable) {
2567
2589
  const rel = srcToRel.get(srcAbs);
2568
2590
  if (text.includes(root)) {
2569
2591
  diagnostics.push(`\u58F0\u660E\u6587\u4EF6\u5305\u542B\u672C\u673A\u7EDD\u5BF9\u8DEF\u5F84\uFF08${path4.relative(root, srcAbs)}\uFF09\uFF0C\u5DF2\u62D2\u7EDD\u4EA7\u51FA\u3002\u8BF7\u68C0\u67E5\u8BE5\u6587\u4EF6\u7684\u7C7B\u578B\u662F\u5426\u5F15\u7528\u4E86\u5B57\u9762\u8DEF\u5F84\u3002`);
@@ -2621,9 +2643,11 @@ function collectEmitted(ts, outDir, rootDir, out, closure) {
2621
2643
  }
2622
2644
  void ts;
2623
2645
  }
2624
- function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root, diagnostics) {
2646
+ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root, diagnostics, onDependency) {
2625
2647
  const declRel = srcToRel.get(srcAbs);
2648
+ let failed = false;
2626
2649
  const fail = (spec) => {
2650
+ failed = true;
2627
2651
  diagnostics.push(
2628
2652
  `\u58F0\u660E\u4F9D\u8D56\u4E0D\u5B8C\u6574\uFF1A${path4.relative(root, srcAbs)} \u7684\u5BFC\u5165 "${spec}" \u65E0\u6CD5\u89E3\u6790\u5230\u5DE5\u7A0B\u5185\u6587\u4EF6\u3002\u8BF7\u68C0\u67E5 tsconfig paths/include \u662F\u5426\u8986\u76D6\u8BE5\u4F9D\u8D56\u3002`
2629
2653
  );
@@ -2638,7 +2662,10 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
2638
2662
  const candidates = [resolved2.replace(/\.d\.ts$/, ".ts"), resolved2.replace(/\.d\.ts$/, ".tsx"), resolved2.replace(/\.d\.ts$/, ".vue")];
2639
2663
  resolved2 = candidates.find((c) => srcToRel.has(c)) ?? resolved2;
2640
2664
  }
2641
- return srcToRel.get(resolved2) ?? null;
2665
+ const target2 = srcToRel.get(resolved2);
2666
+ if (!target2) return fail(spec);
2667
+ onDependency(target2);
2668
+ return target2;
2642
2669
  }
2643
2670
  const r = resolver(spec, srcAbs);
2644
2671
  if (!r || r.fromNodeModules) return fail(spec);
@@ -2647,7 +2674,10 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
2647
2674
  const candidates = [resolved.replace(/\.d\.ts$/, ".ts"), resolved.replace(/\.d\.ts$/, ".tsx"), resolved.replace(/\.d\.ts$/, ".vue")];
2648
2675
  resolved = candidates.find((c) => srcToRel.has(c)) ?? resolved;
2649
2676
  }
2650
- return srcToRel.get(resolved) ?? fail(spec);
2677
+ const target = srcToRel.get(resolved);
2678
+ if (!target) return fail(spec);
2679
+ onDependency(target);
2680
+ return target;
2651
2681
  };
2652
2682
  const rewriteTo = (targetRel) => {
2653
2683
  const fromDir = path4.posix.dirname(declRel);
@@ -2657,6 +2687,17 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
2657
2687
  return rel;
2658
2688
  };
2659
2689
  const sfile = ts.createSourceFile(declRel, text, ts.ScriptTarget.Latest, true);
2690
+ const referenceEdits = [];
2691
+ for (const ref of sfile.referencedFiles) {
2692
+ const spec = ref.fileName.startsWith(".") ? ref.fileName : `./${ref.fileName}`;
2693
+ const target = resolveTarget(spec);
2694
+ if (!target) return fail(spec);
2695
+ referenceEdits.push({ start: ref.pos, end: ref.end, text: rewriteTo(target) + ".d.ts" });
2696
+ }
2697
+ for (const ref of sfile.typeReferenceDirectives) {
2698
+ const spec = ref.fileName;
2699
+ externals.add(spec.startsWith("@") ? spec.split("/").slice(0, 2).join("/") : spec.split("/")[0]);
2700
+ }
2660
2701
  let out = "";
2661
2702
  let pos = 0;
2662
2703
  const emitRange = (node, replacement) => {
@@ -2715,9 +2756,13 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
2715
2756
  ts.forEachChild(node, visit);
2716
2757
  };
2717
2758
  visit(rewrittenFile);
2759
+ if (failed) return null;
2718
2760
  for (const edit of edits.sort((a, b) => b.start - a.start)) {
2719
2761
  out = out.slice(0, edit.start) + edit.text + out.slice(edit.end);
2720
2762
  }
2763
+ for (const edit of referenceEdits.sort((a, b) => b.start - a.start)) {
2764
+ out = out.slice(0, edit.start) + edit.text + out.slice(edit.end);
2765
+ }
2721
2766
  return out;
2722
2767
  }
2723
2768
 
@@ -3401,6 +3446,7 @@ function startRemoteTypesSyncLoop(opts) {
3401
3446
  typesRoot: opts.typesRoot,
3402
3447
  source: devEntry
3403
3448
  });
3449
+ if (result.status === "synced" && !controller.signal.aborted) opts.onSynced?.();
3404
3450
  if (result.status === "synced" || result.status === "absent" && !announced.has(alias)) {
3405
3451
  log(`[fulgurjs] \u7C7B\u578B\u540C\u6B65\uFF1A${result.message}`);
3406
3452
  announced.add(alias);
@@ -3972,7 +4018,7 @@ function repairRolldownAsyncMarks(code, sourceName) {
3972
4018
  }
3973
4019
 
3974
4020
  // src/runtime-code.gen.ts
3975
- var runtime_code_gen_default = 'var ke=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function C(c){let d=ke.exec(String(c).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function Oe(c,d){if(c.length===0&&d.length===0)return 0;if(c.length===0)return 1;if(d.length===0)return-1;let f=Math.max(c.length,d.length);for(let l=0;l<f;l++){let m=c[l],S=d[l];if(m===void 0)return-1;if(S===void 0)return 1;let b=/^\\d+$/.test(m),P=/^\\d+$/.test(S);if(b&&P){let A=Number(m)-Number(S);if(A!==0)return A}else{if(b!==P)return b?-1:1;if(m!==S)return m<S?-1:1}}return 0}function x(c,d){let f=C(c),l=C(d);return!f||!l?c<d?-1:c>d?1:0:f.major!==l.major?f.major-l.major:f.minor!==l.minor?f.minor-l.minor:f.patch!==l.patch?f.patch-l.patch:Oe(f.pre,l.pre)}var Me=/^[a-z]+[+:-]/i;function U(c,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||Me.test(f)?!0:f.split("||").some(l=>Te(c,l.trim()))}function Te(c,d){if(!d||d==="*")return!C(c)?.pre.length;let f=d.split(/\\s+-\\s+/);if(f.length===2){let S=f[0].trim(),b=f[1].trim();return!(!U(c,`>=${S}`)||!U(c,`<=${b}`))}let l=C(c);if(!l)return!1;let m=Le(d);if(m===null)return!0;for(let S of m)if(!je(l,c,S))return!1;return!(l.pre.length>0&&!m.some(S=>S.ver.pre.length>0)&&!m.some(b=>b.ver.major===l.major&&b.ver.minor===l.minor&&b.ver.patch===l.patch))}function Le(c){let d=[],f=c.trim().split(/\\s+/).filter(Boolean);if(f.length===0)return null;for(let l of f){let m=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(l);if(!m)return null;let S=m[1],b=m[2],P=Ae(S,b);if(P===null)return null;d.push(...P)}return d}function Ae(c,d){let f=xe(d);if(!f)return null;let{ver:l,partial:m}=f;switch(c){case"^":{let S=Ie(l);return S?[{op:">=",ver:l},{op:"<",ver:S}]:null}case"~":{let S=m>=2?{major:l.major,minor:l.minor+1,patch:0,pre:[]}:{major:l.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:l},{op:"<",ver:S}]}case">=":return[{op:">=",ver:l}];case">":return m===1?[{op:">=",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:">",ver:l}];case"<":return m===1?[{op:"<",ver:{major:l.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:l.major,minor:l.minor,patch:0,pre:[]}}]:[{op:"<",ver:l}];case"<=":return[{op:"<=",ver:l}];case"=":case void 0:return m===1?[{op:">=",ver:l},{op:"<",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:l},{op:"<",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:l}];default:return null}}function Ie(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 xe(c){let d=c.replace(/^v/,"").trim();if(!d||d==="*"||d==="x"||d==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=d.split("."),l=[],m=0;for(let P of f.slice(0,3))if(/^\\d+$/.test(P))l.push(Number(P)),m++;else{if(P==="x"||P==="X"||P==="*")break;break}let S=d.split("-"),b=S.length>1?S.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:l[0]??0,minor:l[1]??0,patch:l[2]??0,pre:b},partial:m}}function Ue(c,d){switch(d){case">=":return c>=0;case">":return c>0;case"<":return c<0;case"<=":return c<=0;case"=":return c===0}}function je(c,d,f){let l=`${c.major}.${c.minor}.${c.patch}`+(c.pre.length?`-${c.pre.join(".")}`:"");if(f.upper)return!(!(x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(x(l,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),S=Ue(m,f.op);return f.ver.pre.length>0&&c.pre.length===0&&(f.op===">"||f.op==="<")?!1:S}function F(c){return c.replace(/(https?:\\/\\/)(?:[^\\s/@]+@)?([^\\s?#"\'<>\uFF0C\u3002\uFF1B\uFF09)\\]]+)(?:[?#][^\\s"\'<>\uFF0C\u3002\uFF1B\uFF09)\\]]*)?/g,"$1$2")}function M(c){return F(String(c?.message??c)).replace(/\\b(token|password|cookie|authorization)["\']?\\s*[:=]\\s*["\']?(?:Bearer\\s+)?[^\\s,;"\'}]+/gi,"$1=[redacted]")}var E=class extends Error{code;details;constructor(d,f,l,m){super(`[fulgurjs:${d}] ${F(f)}`,m),this.name="FgError",this.code=d,this.details=l}},R={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014",COMPONENT_EXPORT_INVALID:"MFU-018",VUE_RUNTIME_IDENTITY_MISMATCH:"MFU-019",REMOTE_RENDER_ERROR:"MFU-020"};function ie(c){if(typeof c!="object"||c===null)return!1;let d=globalThis,f=d.__FULGURJS_REPORTED_ERRORS__??=new WeakSet;return f.has(c)?!0:(f.add(c),!1)}var ae="6.14.1";var Ne="__fulgurjsSetup",Ce="__FULGURJS_APP_CONFIG__",J=15e3,ce=2,Fe=5,Ve=3e4,De=4e3,Ke=.2;function qe(){let c=Object.create(null),d=new Map,f=[],l=new Set,m=new Map,S=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,P=new Map,A=new WeakMap,V=new WeakMap,W=(e,r)=>{console.warn(`[fulgurjs] ${e} \\u94A9\\u5B50\\u5931\\u8D25\\uFF08\\u4E0D\\u5F71\\u54CD\\u52A0\\u8F7D\\uFF09\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A`,M(r))},_={},ue=()=>{for(let e of f)try{e.init?.(_)}catch(r){console.warn("[fulgurjs] \\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A",e.name,M(r))}},D=new Map,K,q=e=>{let r=D.get(e);return r||D.set(e,r={}),r},z=()=>globalThis[Ce]??{};async function Y(e,r,n,o){let t=u=>{if(u instanceof E)return v({remote:e,error:u}),u;let a=new E(R.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${o} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${M(u)}\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:u});return v({remote:e,error:a}),a};K=e;let s;try{s=r(n)}catch(u){throw t(u)}finally{K=void 0}try{await s}catch(u){throw t(u)}}async function de(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await B(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default,u=t?.onSession!==void 0||t?.globalComponents!==void 0||t?.pageProviders!==void 0;if(s!==void 0&&typeof s!="function"||!s&&!u)throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${t==null?String(t):typeof s}\\uFF0C\\u4E14\\u6A21\\u5757\\u4E0D\\u6EE1\\u8DB3\\u521D\\u59CB\\u5316\\u58F0\\u660E\\u5951\\u7EA6\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u521D\\u59CB\\u5316\\u51FD\\u6570\\uFF0C\\u6216\\u53EA\\u58F0\\u660E onSession/globalComponents/pageProviders\\uFF1B\\u7A7A\\u6A21\\u5757\\u4E0E\\u975E\\u51FD\\u6570\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u65E0\\u6548\\u3002`,{remote:e.name,module:n});if(t.onSession!==void 0&&typeof t.onSession!="function")throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\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});if(o.setupExports=t,t.globalComponents!==void 0){if(typeof t.globalComponents!="object"||t.globalComponents===null||Array.isArray(t.globalComponents))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AglobalComponents \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${Array.isArray(t.globalComponents)?"array":typeof t.globalComponents}\\uFF0C\\u5E94\\u4E3A\\u5BF9\\u8C61\\uFF08\\u952E=\\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D\\uFF0C\\u503C=\\u7EC4\\u4EF6\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const globalComponents = { \\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D: \\u7EC4\\u4EF6 } \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.globalComponents=t.globalComponents}if(t.pageProviders!==void 0){if(!Array.isArray(t.pageProviders))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1ApageProviders \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.pageProviders}\\uFF0C\\u5E94\\u4E3A\\u6570\\u7EC4\\uFF08\\u6BCF\\u9879=\\u7EC4\\u4EF6\\u6216\\u96F6\\u53C2 loader\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const pageProviders = [AppProvider] \\u6216 [() => import(\'./X\').then((m) => m.AppProvider)] \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.pageProviders=t.pageProviders}s&&await Y(e.name,s,{appContext:z(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(t){throw e.debug.setup="failed",t?.code&&v({remote:e.name,error:t}),o.setupExports=void 0,o.globalComponents=void 0,o.pageProviders=void 0,t}}async function fe(e,r,n){let o=z(),t=o?.sessionKey;if(typeof t!="string"||t===""){let y=new E(R.SETUP_SESSION_KEY_MISSING,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u58F0\\u660E\\u4E86 onSession\\uFF0C\\u4F46\\u5BBF\\u4E3B\\u5C1A\\u672A\\u63D0\\u4F9B\\u6709\\u6548\\u7684 AppContext.sessionKey\\u3002\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});throw v({remote:e.name,error:y}),y}if(r.sessionPromise&&r.sessionKey===t)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=t;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),a=(async()=>{await u,!s.signal.aborted&&await Y(e.name,n,{appContext:o,sessionKey:t,signal:s.signal},"onSession")})();return r.sessionPromise=a,a.catch(()=>{r.sessionKey===t&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),a}async function pe(e,r){let n=r?.[Ne];if(typeof n!="string"||n==="")return;let o=q(e.name);o.setupPromise||(o.setupPromise=de(e,r,n,o).catch(s=>{throw o.setupPromise=void 0,s})),await o.setupPromise;let t=o.setupExports?.onSession;typeof t=="function"&&await fe(e,o,t)}function me(){for(let e of D.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let L=e=>c[e]??=Object.create(null);function v(e){if(!ie(e.error)){try{_.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}}function ge(e="default"){return L(e),c}function H(e,r,n,o,t={}){let s=L(e||"default"),u=Object.hasOwn(s,r)?s[r]:void 0,a=u&&typeof u=="object"?u:void 0;a||(a=Object.create(null),s[r]=a),!(Object.hasOwn(a,n)&&a[n])&&(a[n]={version:n,get:o,from:t.from??"unknown",eager:!!t.eager,loaded:!!t.loaded})}function he(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 Z(e){for(let r of e){he(r);let n=d.get(r.name);d.set(r.name,{timeout:J,retries:ce,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??Fe,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??Ve,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:j(r.entry),status:"idle",setup:"none"}})}}function ye(e){Z([e])}function Se(e){f.push(...e),m.clear(),ue()}function I(e,r,n=!1){let o=r.shareScope||"default",t=r.shareKey||e,u=L(o)[t]||{},a=Object.keys(u).filter(i=>!n||r.singleton||u[i].value!==void 0);if(n&&a.length===0)return;let y=r.requiredVersion,g=a.filter(i=>y===void 0||y===!1||U(i,y)),p;if(r.singleton&&a.length>0){let i=a.filter(h=>u[h].loaded);if(p=[...i.length?i:a].sort(x).pop(),!g.includes(p)){let h=u[p],O=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${t}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42 ${y??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${a.join("\\u3001")}\\uFF1B\\u5355\\u4F8B\\u5019\\u9009\\u4E3A ${h.from} \\u63D0\\u4F9B\\u7684 ${p}\\u3002\n`+(r.strictVersion?`\\u7ED3\\u679C\\uFF1AstrictVersion \\u5DF2\\u5F00\\u542F\\uFF0C\\u672C\\u6B21\\u52A0\\u8F7D\\u5DF2\\u62D2\\u7EDD\\uFF0C\\u672A\\u4EA4\\u4ED8\\u4E0D\\u517C\\u5BB9\\u5B9E\\u4F8B\\u3002\n`:`\\u7ED3\\u679C\\uFF1A\\u590D\\u7528\\u6B64\\u5355\\u4F8B\\uFF1B\\u8BF7\\u786E\\u8BA4\\u4E24\\u7AEF API \\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\\u3002";if(r.strictVersion){let T=new E(R.SHARE_STRICT_VERSION,O,{shareKey:t,requiredVersion:y});throw v({remote:h.from,error:T}),T}let $=`${o}|${t}|${y??"*"}|${p}|${a.join(",")}`;l.has($)||(l.add($),console.warn(`[fulgurjs:MFU-010] ${O}`))}}else if(p=[...g].sort(x).pop(),!p){if(r.strictVersion){let i=new E(R.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${o}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${t}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${y}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${a.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:t,error:i}),i}return}return u[p]}function Q(e,r,n){let o=r.localVersion;if(!o||n===void 0)return;let t=r.shareScope||"default",s=r.shareKey||e,u=L(t),a=Object.hasOwn(u,s)?u[s]:void 0;if(a&&Object.keys(a).length>0){try{let g=I(e,r);if(g&&g.value===void 0){if(g.version===o)g.value=n,g.loaded=!0;else if(r.singleton&&!g.pendingGet){H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let p=u[s][o];p.value=n,p.loaded=!0}}}catch{}return}H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let y=u[s]?.[o];y&&(y.value=n)}async function ee(e,r={}){let n=r.shareScope||"default",o=r.shareKey||e,t=L(n)[o]||{},s=S(e,r),u=_.resolveShare?m.get(s):void 0,a=u||I(e,r);if(!a){if(r.fallback){let i=await r.fallback();return Q(e,r,i),i}let p=new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${o}"\\u3002\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 v({remote:o,error:p}),p}if(_.resolveShare&&!u){let p=await _.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:a,available:Object.values(t)});p&&(a=p),m.set(s,a)}if(a.value!==void 0)return m.set(S(e,r),a),a.value;if(a.loaded=!0,!a.pendingGet)try{a.pendingGet=a.get()}catch(p){a.pendingGet=Promise.reject(p)}let y=a.pendingGet,g;try{g=await y}catch(p){if(a.value!==void 0)return m.set(S(e,r),a),a.value;throw a.loaded=!1,m.get(s)===a&&m.delete(s),p}finally{a.pendingGet===y&&(a.pendingGet=void 0)}return a.value===void 0&&(a.value=g),m.set(S(e,r),a),a.value}function Ee(e,r={}){return _.resolveShare?m.get(S(e,r))?.value:I(e,r,!0)?.value}function Re(e,r,n,o){Q(e,{...r,localVersion:n},o)}function we(e,r){let n=r.shareScope||"default",o=r.shareKey||e;if(_.resolveShare){let s=S(e,r),u=m.get(s);if(u&&u.value!==void 0)return{kind:"ready",value:u.value};let a=u||_.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:I(e,r),available:Object.values(L(n)[o]||{})});if(a&&typeof a.then=="function")throw Promise.resolve(a).catch(()=>{}),new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u5BF9\\u5171\\u4EAB "${o}" \\u8FD4\\u56DE\\u4E86 Promise\\uFF0C\\u4F46\\u8BE5\\u5171\\u4EAB\\u6B63\\u88AB\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u6D88\\u8D39\\uFF08Vite 8 \\u540C\\u6B65\\u534F\\u5546\\u95E8\\u9762\\uFF09\\u3002\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 y=a;if(y){if(y.value!==void 0)return m.set(S(e,r),y),{kind:"ready",value:y.value};if(y.version!==void 0&&y.version===r.localVersion)return{kind:"local"};throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u4E3A "${o}" \\u9009\\u62E9\\u4E86\\u672A\\u5C31\\u7EEA\\u7684 ${y.version??"\\u6761\\u76EE"}\\u3002\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=I(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||!U(r.localVersion,r.requiredVersion))){if(r.strictVersion||t.pendingGet)throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB "${o}" \\u9009\\u4E2D\\u4E86 ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version}\\uFF08\\u5C1A\\u672A\\u52A0\\u8F7D\\uFF09\\uFF0C\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u65E0\\u6CD5\\u7B49\\u5F85\\u5176\\u5B9E\\u4F8B\\u5C31\\u7EEA\\u3002\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 l.has(s)||(l.add(s),console.warn(`[fulgurjs:MFU-010] \\u5171\\u4EAB\\u5355\\u4F8B "${o}"\\uFF1A\\u4F5C\\u7528\\u57DF\\u4E2D ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version} \\u5C1A\\u672A\\u52A0\\u8F7D\\uFF0C\\u9996\\u4E2A\\u6D88\\u8D39\\u8005\\u4EE5\\u672C\\u5730\\u7248\\u672C ${r.localVersion??""} \\u63A5\\u7BA1\\uFF08\\u540E\\u7EED\\u6D88\\u8D39\\u8005\\u6309\\u5DF2\\u52A0\\u8F7D\\u4F18\\u5148\\u6536\\u655B\\u5230\\u8BE5\\u5B9E\\u4F8B\\uFF09\\u3002`)),{kind:"local"}}return console.warn(`[fulgurjs] \\u5171\\u4EAB "${o}"\\uFF1A\\u975E\\u5355\\u4F8B\\u540C\\u6B65\\u6D88\\u8D39\\u4F7F\\u7528\\u672C\\u5730 ${r.localVersion??""}\\uFF0C\\u8FDC\\u7A0B ${t.version} \\u5C1A\\u672A\\u5C31\\u7EEA\\u3002`),{kind:"local"}}async function be(e){if(_.resolveShare){for(let{name:r,opts:n}of e){let o=S(r,n);if(m.has(o))continue;let t=I(r,n),s=await _.resolveShare({shareKey:n.shareKey||r,shareScope:n.shareScope||"default",requiredVersion:n.requiredVersion,picked:t,available:Object.values(L(n.shareScope||"default")[n.shareKey||r]||{})})||t;s&&m.set(o,s)}for(let{name:r,opts:n}of e)await ee(r,n)}}function j(e=""){return F(e).split(/[?#]/,1)[0]}function re(e,r,n){return new Promise((o,t)=>{let s=setTimeout(()=>t(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${n}`)),r);e.then(u=>{clearTimeout(s),o(u)},u=>{clearTimeout(s),t(u)})})}let ve=e=>new Promise(r=>setTimeout(r,e)),ne=new Set;function G(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}`;ne.has(o)||(ne.add(o),console.warn(`[fulgurjs] ${n} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`))}else throw Object.assign(new Error(n),{code:R.REMOTE_NAME_MISMATCH})}}async function te(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)})),re(s,r.timeout??J,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${j(e)}`)}async function oe(e,r){let n=e.shareScope||"default";if(e.container){let s=V.get(e.container);if(s&&s!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${s}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return e.container}if(e.containerPromise)return e.containerPromise;let o=e.breakerState;if(o.openUntil>Date.now()){let s=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u8FDE\\u7EED\\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u7194\\u65AD\\u5668\\u5DF2\\u5F00\\u542F\\uFF1B\\u5C06\\u5728 ${new Date(o.openUntil).toISOString()} \\u540E\\u5141\\u8BB8\\u91CD\\u8BD5\\u3002\\u8BF7\\u5148\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u670D\\u52A1\\u548C\\u7F51\\u7EDC\\u3002`,{remote:e.name,stage:"container"});throw v({remote:e.name,error:s}),s}e.state="loading",e.debug.status="loading";let t=(async()=>{let s=[];if(e.promise)s.push(async()=>{let i=await re(e.promise(),e.timeout??J,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),h=typeof i=="string"?await te(i,e):i;return G(h,e),h});else for(let i of[e.entry,...e.fallback??[]])s.push(async()=>{let h=await te(i,e);return G(h,e),h});let u,a,y=!1,g=r?.retries??e.retries??ce;for(let i of s){for(let h=0;h<=g;h++){let O=performance.now();try{u=await i(),e.lastLoadMs=Math.round(performance.now()-O),e.debug.lastLoadMs=e.lastLoadMs,y=!0;break}catch($){if(a=$,$?.code)throw $;h<g&&await ve(Math.min(De,200*2**h)*(1-Ke*(1-2*Math.random())))}}if(y)break}if(!y||!u){let i=j(e.entry),h=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),h.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),h.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),h.push("2. \\u68C0\\u67E5 Nginx/CDN \\u7684\\u5165\\u53E3\\u8DEF\\u5F84\\u6620\\u5C04\\uFF1B\\u8BE5\\u5730\\u5740\\u4E0D\\u80FD\\u56DE\\u9000\\u5230 index.html\\u3002")),new E(R.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${i} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${M(a)}\n\\u4FEE\\u6CD5\\uFF1A\n${h.join(`\n`)}`,{remote:e.name,stage:"container"},{cause:a})}G(u,e);let p=V.get(u);if(p&&p!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${p}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof u.init=="function"&&await u.init(c),V.set(u,n),e.container=u,e.state="loaded",e.debug.status="loaded",o.fails=0,u})();e.containerPromise=t;try{return await t}catch(s){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=M(s),o.fails+=1,o.fails>=e.breakerThreshold&&(o.openUntil=Date.now()+e.breakerResetMs,o.fails=0),s instanceof E)throw v({remote:e.name,error:s}),s;if(s?.code)throw v({remote:e.name,error:s}),s;let u=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(s)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name,stage:"container"},{cause:s});throw v({remote:e.name,error:u}),u}}function X(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:se(e.slice(r+1))}}function se(e){return e?e.startsWith(".")?e:`./${e}`:""}async function Pe(e,r){let{remote:n,module:o}=X(e);if(o&&K===n)throw new E(R.SETUP_RECURSION,`\\u73B0\\u8C61\\uFF1A\\u52A0\\u8F7D "${e}" \\u65F6\\uFF0C\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 setup/onSession \\u53C8\\u540C\\u6B65\\u52A0\\u8F7D\\u4E86\\u81EA\\u8EAB\\u6A21\\u5757\\uFF0C\\u5F62\\u6210\\u5FAA\\u73AF\\u7B49\\u5F85\\u3002\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(i){W("beforeLoadRemote",i)}let t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:n});let s;try{let i=o&&t.manifestUrl?B(e):Promise.resolve();[s]=await Promise.all([oe(t,{retries:r?.retries}),i])}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}if(!o)return s;await pe(t,s);let u=q(n).globalComponents,a=r?.consumerApp;if(u&&a&&typeof a.component=="function")for(let i of Object.keys(u))a.component(i,u[i]);let y=q(n).pageProviders;y&&y.length>0&&typeof a?.pageProviders=="function"&&a.pageProviders(y);let g=`${n}@${t.shareScope||"default"}#${o}`;b.has(g)||b.set(g,s.get(o).catch(i=>{if(b.delete(g),i instanceof E||i?.code)throw v({remote:n,error:i}),i;let h=new E(R.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${o}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(i)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:o,stage:"expose"},{cause:i});throw v({remote:n,error:h}),h}));let p;try{p=await b.get(g)}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}try{_.afterLoadRemote?.({remote:n,module:o,module_ns:p})}catch(i){W("afterLoadRemote",i)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let i=new E(R.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6A21\\u5757 "${o}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:n,module:o});v({remote:n,error:i}),console.error(i.message)}return p}function $e(e){let r=d.get(e);if(!r)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return oe(r)}async function B(e,r={}){let{remote:n,module:o}=X(e),t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:n});let s=r.mode??"preload",u=(g,p)=>{if(g.sheet)return Promise.resolve();let i=A.get(g);if(i)return i;let h=new Promise(O=>{let $=()=>{g.removeEventListener("load",$),g.removeEventListener("error",T),O()},T=()=>{v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${p}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:n})}),$()};g.addEventListener("load",$,{once:!0}),g.addEventListener("error",T,{once:!0}),g.sheet&&$()});return A.set(g,h),h},a=(g,p)=>{if(typeof document>"u")return Promise.resolve();let i=document.querySelector(`link[href="${g}"]`);if(i)return p==="style"&&s==="preload"?A.get(i)??Promise.resolve():Promise.resolve();let h=document.createElement("link");h.rel=p==="style"?"stylesheet":"modulepreload",h.href=g,s==="prefetch"&&(h.fetchPriority="low");let O=p==="style"?u(h,g):Promise.resolve();return document.head.appendChild(h),p==="style"&&s==="preload"?O:Promise.resolve()},y=g=>{let p=typeof document<"u"?document.baseURI:void 0,i=new URL(t.entry,p||"http://fulgurjs.invalid/");return!i.pathname.endsWith("/")&&!i.pathname.split("/").pop().includes(".")&&(i.pathname+="/"),new URL(g,i).href};try{if(t.manifestUrl){let g=P.get(t.manifestUrl);g||(g=fetch(t.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(i=>i.ok?i.json():void 0),P.set(t.manifestUrl,g),g.then(i=>{i||P.delete(t.manifestUrl)},()=>P.delete(t.manifestUrl)));let p=await g;if(p){let i=p.schemaVersion;if(typeof i=="number"&&(!Number.isInteger(i)||i>1)){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(i)}\\uFF0C\\u5F53\\u524D\\u4EC5\\u652F\\u6301\\u7248\\u672C 1\\u3002\\u8BF7\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u548C\\u8FDC\\u7A0B\\u7684\\u63D2\\u4EF6\\u7248\\u672C\\u3002`,{remote:n})}),await a(t.entry,"modulepreload");return}await a(t.entry,"modulepreload");let h=p.exposes,O=Array.isArray(h)?h.filter(k=>k&&typeof k=="object").map(k=>[String(k.name??""),k]):h&&typeof h=="object"?Object.entries(h):[],$=o?O.filter(([k,N])=>se(String(N?.name??k))===o):O,T=[];for(let[,k]of $)if(typeof k?.file=="string"&&await a(y(k.file),"modulepreload"),Array.isArray(k?.css))for(let N of k.css){if(typeof N!="string")continue;let _e=a(y(N),"style");s==="preload"&&T.push(_e)}await Promise.all(T);return}}await a(t.entry,"modulepreload")}catch(g){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(g)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:n})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=c,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,n]of d)e[r]={...n.debug,entry:j(n.entry)};return e},errors:[]}),{shareScopeMap:c,initSharing:ge,registerShare:H,registerRemotes:Z,registerRemote:ye,registerPlugins:Se,loadShare:ee,loadShareSync:we,prepareShares:be,getLoadedShare:Ee,pinLoadedShare:Re,loadRemote:Pe,getContainer:$e,preloadRemote:B,parseSpec:X,clearSessionState:me,reportRemoteError:e=>{v(e)}}}var le=globalThis,w=le.__FULGURJS_RUNTIME__??qe();le.__FULGURJS_RUNTIME__=w;try{Object.freeze(w)}catch{}var Ye=ae;function Ze(){return w}var Qe=w.initSharing,er=w.registerShare,rr=w.registerRemotes,nr=w.registerRemote,tr=w.registerPlugins,or=w.loadShare,sr=w.getLoadedShare,ir=w.prepareShares||(async c=>{for(let{name:d,opts:f}of c)await w.loadShare(d,f)}),ar=w.loadShareSync,cr=w.pinLoadedShare,lr=w.loadRemote,ur=w.getContainer,dr=w.preloadRemote,fr=w.parseSpec,pr=w.clearSessionState,mr=w.shareScopeMap;function gr(c){if(c&&typeof c=="object"&&"default"in c){let d=c.default;return d!==void 0?d:c}return c}var hr=w;export{pr as clearSessionState,hr as default,ur as getContainer,sr as getLoadedShare,Ze as getRuntime,Qe as initSharing,lr as loadRemote,or as loadShare,ar as loadShareSync,fr as parseSpec,cr as pinLoadedShare,dr as preloadRemote,ir as prepareShares,tr as registerPlugins,nr as registerRemote,rr as registerRemotes,er as registerShare,w as runtime,mr as shareScopeMap,gr as unwrapDefault,Ye as version};\n';
4021
+ var runtime_code_gen_default = 'var ke=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function C(c){let d=ke.exec(String(c).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function Oe(c,d){if(c.length===0&&d.length===0)return 0;if(c.length===0)return 1;if(d.length===0)return-1;let f=Math.max(c.length,d.length);for(let l=0;l<f;l++){let m=c[l],S=d[l];if(m===void 0)return-1;if(S===void 0)return 1;let b=/^\\d+$/.test(m),P=/^\\d+$/.test(S);if(b&&P){let A=Number(m)-Number(S);if(A!==0)return A}else{if(b!==P)return b?-1:1;if(m!==S)return m<S?-1:1}}return 0}function x(c,d){let f=C(c),l=C(d);return!f||!l?c<d?-1:c>d?1:0:f.major!==l.major?f.major-l.major:f.minor!==l.minor?f.minor-l.minor:f.patch!==l.patch?f.patch-l.patch:Oe(f.pre,l.pre)}var Me=/^[a-z]+[+:-]/i;function U(c,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||Me.test(f)?!0:f.split("||").some(l=>Te(c,l.trim()))}function Te(c,d){if(!d||d==="*")return!C(c)?.pre.length;let f=d.split(/\\s+-\\s+/);if(f.length===2){let S=f[0].trim(),b=f[1].trim();return!(!U(c,`>=${S}`)||!U(c,`<=${b}`))}let l=C(c);if(!l)return!1;let m=Le(d);if(m===null)return!0;for(let S of m)if(!je(l,c,S))return!1;return!(l.pre.length>0&&!m.some(S=>S.ver.pre.length>0)&&!m.some(b=>b.ver.major===l.major&&b.ver.minor===l.minor&&b.ver.patch===l.patch))}function Le(c){let d=[],f=c.trim().split(/\\s+/).filter(Boolean);if(f.length===0)return null;for(let l of f){let m=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(l);if(!m)return null;let S=m[1],b=m[2],P=Ae(S,b);if(P===null)return null;d.push(...P)}return d}function Ae(c,d){let f=xe(d);if(!f)return null;let{ver:l,partial:m}=f;switch(c){case"^":{let S=Ie(l);return S?[{op:">=",ver:l},{op:"<",ver:S}]:null}case"~":{let S=m>=2?{major:l.major,minor:l.minor+1,patch:0,pre:[]}:{major:l.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:l},{op:"<",ver:S}]}case">=":return[{op:">=",ver:l}];case">":return m===1?[{op:">=",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:">",ver:l}];case"<":return m===1?[{op:"<",ver:{major:l.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:l.major,minor:l.minor,patch:0,pre:[]}}]:[{op:"<",ver:l}];case"<=":return[{op:"<=",ver:l}];case"=":case void 0:return m===1?[{op:">=",ver:l},{op:"<",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:l},{op:"<",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:l}];default:return null}}function Ie(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 xe(c){let d=c.replace(/^v/,"").trim();if(!d||d==="*"||d==="x"||d==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=d.split("."),l=[],m=0;for(let P of f.slice(0,3))if(/^\\d+$/.test(P))l.push(Number(P)),m++;else{if(P==="x"||P==="X"||P==="*")break;break}let S=d.split("-"),b=S.length>1?S.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:l[0]??0,minor:l[1]??0,patch:l[2]??0,pre:b},partial:m}}function Ue(c,d){switch(d){case">=":return c>=0;case">":return c>0;case"<":return c<0;case"<=":return c<=0;case"=":return c===0}}function je(c,d,f){let l=`${c.major}.${c.minor}.${c.patch}`+(c.pre.length?`-${c.pre.join(".")}`:"");if(f.upper)return!(!(x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(x(l,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),S=Ue(m,f.op);return f.ver.pre.length>0&&c.pre.length===0&&(f.op===">"||f.op==="<")?!1:S}function F(c){return c.replace(/(https?:\\/\\/)(?:[^\\s/@]+@)?([^\\s?#"\'<>\uFF0C\u3002\uFF1B\uFF09)\\]]+)(?:[?#][^\\s"\'<>\uFF0C\u3002\uFF1B\uFF09)\\]]*)?/g,"$1$2")}function M(c){return F(String(c?.message??c)).replace(/\\b(token|password|cookie|authorization)["\']?\\s*[:=]\\s*["\']?(?:Bearer\\s+)?[^\\s,;"\'}]+/gi,"$1=[redacted]")}var E=class extends Error{code;details;constructor(d,f,l,m){super(`[fulgurjs:${d}] ${F(f)}`,m),this.name="FgError",this.code=d,this.details=l}},R={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014",COMPONENT_EXPORT_INVALID:"MFU-018",VUE_RUNTIME_IDENTITY_MISMATCH:"MFU-019",REMOTE_RENDER_ERROR:"MFU-020"};function ie(c){if(typeof c!="object"||c===null)return!1;let d=globalThis,f=d.__FULGURJS_REPORTED_ERRORS__??=new WeakSet;return f.has(c)?!0:(f.add(c),!1)}var ae="6.14.3";var Ne="__fulgurjsSetup",Ce="__FULGURJS_APP_CONFIG__",J=15e3,ce=2,Fe=5,Ve=3e4,De=4e3,Ke=.2;function qe(){let c=Object.create(null),d=new Map,f=[],l=new Set,m=new Map,S=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,P=new Map,A=new WeakMap,V=new WeakMap,W=(e,r)=>{console.warn(`[fulgurjs] ${e} \\u94A9\\u5B50\\u5931\\u8D25\\uFF08\\u4E0D\\u5F71\\u54CD\\u52A0\\u8F7D\\uFF09\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A`,M(r))},_={},ue=()=>{for(let e of f)try{e.init?.(_)}catch(r){console.warn("[fulgurjs] \\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A",e.name,M(r))}},D=new Map,K,q=e=>{let r=D.get(e);return r||D.set(e,r={}),r},z=()=>globalThis[Ce]??{};async function Y(e,r,n,o){let t=u=>{if(u instanceof E)return v({remote:e,error:u}),u;let a=new E(R.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${o} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${M(u)}\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:u});return v({remote:e,error:a}),a};K=e;let s;try{s=r(n)}catch(u){throw t(u)}finally{K=void 0}try{await s}catch(u){throw t(u)}}async function de(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await B(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default,u=t?.onSession!==void 0||t?.globalComponents!==void 0||t?.pageProviders!==void 0;if(s!==void 0&&typeof s!="function"||!s&&!u)throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${t==null?String(t):typeof s}\\uFF0C\\u4E14\\u6A21\\u5757\\u4E0D\\u6EE1\\u8DB3\\u521D\\u59CB\\u5316\\u58F0\\u660E\\u5951\\u7EA6\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u521D\\u59CB\\u5316\\u51FD\\u6570\\uFF0C\\u6216\\u53EA\\u58F0\\u660E onSession/globalComponents/pageProviders\\uFF1B\\u7A7A\\u6A21\\u5757\\u4E0E\\u975E\\u51FD\\u6570\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u65E0\\u6548\\u3002`,{remote:e.name,module:n});if(t.onSession!==void 0&&typeof t.onSession!="function")throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\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});if(o.setupExports=t,t.globalComponents!==void 0){if(typeof t.globalComponents!="object"||t.globalComponents===null||Array.isArray(t.globalComponents))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AglobalComponents \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${Array.isArray(t.globalComponents)?"array":typeof t.globalComponents}\\uFF0C\\u5E94\\u4E3A\\u5BF9\\u8C61\\uFF08\\u952E=\\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D\\uFF0C\\u503C=\\u7EC4\\u4EF6\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const globalComponents = { \\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D: \\u7EC4\\u4EF6 } \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.globalComponents=t.globalComponents}if(t.pageProviders!==void 0){if(!Array.isArray(t.pageProviders))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1ApageProviders \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.pageProviders}\\uFF0C\\u5E94\\u4E3A\\u6570\\u7EC4\\uFF08\\u6BCF\\u9879=\\u7EC4\\u4EF6\\u6216\\u96F6\\u53C2 loader\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const pageProviders = [AppProvider] \\u6216 [() => import(\'./X\').then((m) => m.AppProvider)] \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.pageProviders=t.pageProviders}s&&await Y(e.name,s,{appContext:z(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(t){throw e.debug.setup="failed",t?.code&&v({remote:e.name,error:t}),o.setupExports=void 0,o.globalComponents=void 0,o.pageProviders=void 0,t}}async function fe(e,r,n){let o=z(),t=o?.sessionKey;if(typeof t!="string"||t===""){let y=new E(R.SETUP_SESSION_KEY_MISSING,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u58F0\\u660E\\u4E86 onSession\\uFF0C\\u4F46\\u5BBF\\u4E3B\\u5C1A\\u672A\\u63D0\\u4F9B\\u6709\\u6548\\u7684 AppContext.sessionKey\\u3002\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});throw v({remote:e.name,error:y}),y}if(r.sessionPromise&&r.sessionKey===t)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=t;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),a=(async()=>{await u,!s.signal.aborted&&await Y(e.name,n,{appContext:o,sessionKey:t,signal:s.signal},"onSession")})();return r.sessionPromise=a,a.catch(()=>{r.sessionKey===t&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),a}async function pe(e,r){let n=r?.[Ne];if(typeof n!="string"||n==="")return;let o=q(e.name);o.setupPromise||(o.setupPromise=de(e,r,n,o).catch(s=>{throw o.setupPromise=void 0,s})),await o.setupPromise;let t=o.setupExports?.onSession;typeof t=="function"&&await fe(e,o,t)}function me(){for(let e of D.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let L=e=>c[e]??=Object.create(null);function v(e){if(!ie(e.error)){try{_.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}}function ge(e="default"){return L(e),c}function H(e,r,n,o,t={}){let s=L(e||"default"),u=Object.hasOwn(s,r)?s[r]:void 0,a=u&&typeof u=="object"?u:void 0;a||(a=Object.create(null),s[r]=a),!(Object.hasOwn(a,n)&&a[n])&&(a[n]={version:n,get:o,from:t.from??"unknown",eager:!!t.eager,loaded:!!t.loaded})}function he(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 Z(e){for(let r of e){he(r);let n=d.get(r.name);d.set(r.name,{timeout:J,retries:ce,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??Fe,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??Ve,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:j(r.entry),status:"idle",setup:"none"}})}}function ye(e){Z([e])}function Se(e){f.push(...e),m.clear(),ue()}function I(e,r,n=!1){let o=r.shareScope||"default",t=r.shareKey||e,u=L(o)[t]||{},a=Object.keys(u).filter(i=>!n||r.singleton||u[i].value!==void 0);if(n&&a.length===0)return;let y=r.requiredVersion,g=a.filter(i=>y===void 0||y===!1||U(i,y)),p;if(r.singleton&&a.length>0){let i=a.filter(h=>u[h].loaded);if(p=[...i.length?i:a].sort(x).pop(),!g.includes(p)){let h=u[p],O=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${t}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42 ${y??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${a.join("\\u3001")}\\uFF1B\\u5355\\u4F8B\\u5019\\u9009\\u4E3A ${h.from} \\u63D0\\u4F9B\\u7684 ${p}\\u3002\n`+(r.strictVersion?`\\u7ED3\\u679C\\uFF1AstrictVersion \\u5DF2\\u5F00\\u542F\\uFF0C\\u672C\\u6B21\\u52A0\\u8F7D\\u5DF2\\u62D2\\u7EDD\\uFF0C\\u672A\\u4EA4\\u4ED8\\u4E0D\\u517C\\u5BB9\\u5B9E\\u4F8B\\u3002\n`:`\\u7ED3\\u679C\\uFF1A\\u590D\\u7528\\u6B64\\u5355\\u4F8B\\uFF1B\\u8BF7\\u786E\\u8BA4\\u4E24\\u7AEF API \\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\\u3002";if(r.strictVersion){let T=new E(R.SHARE_STRICT_VERSION,O,{shareKey:t,requiredVersion:y});throw v({remote:h.from,error:T}),T}let $=`${o}|${t}|${y??"*"}|${p}|${a.join(",")}`;l.has($)||(l.add($),console.warn(`[fulgurjs:MFU-010] ${O}`))}}else if(p=[...g].sort(x).pop(),!p){if(r.strictVersion){let i=new E(R.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${o}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${t}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${y}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${a.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:t,error:i}),i}return}return u[p]}function Q(e,r,n){let o=r.localVersion;if(!o||n===void 0)return;let t=r.shareScope||"default",s=r.shareKey||e,u=L(t),a=Object.hasOwn(u,s)?u[s]:void 0;if(a&&Object.keys(a).length>0){try{let g=I(e,r);if(g&&g.value===void 0){if(g.version===o)g.value=n,g.loaded=!0;else if(r.singleton&&!g.pendingGet){H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let p=u[s][o];p.value=n,p.loaded=!0}}}catch{}return}H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let y=u[s]?.[o];y&&(y.value=n)}async function ee(e,r={}){let n=r.shareScope||"default",o=r.shareKey||e,t=L(n)[o]||{},s=S(e,r),u=_.resolveShare?m.get(s):void 0,a=u||I(e,r);if(!a){if(r.fallback){let i=await r.fallback();return Q(e,r,i),i}let p=new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${o}"\\u3002\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 v({remote:o,error:p}),p}if(_.resolveShare&&!u){let p=await _.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:a,available:Object.values(t)});p&&(a=p),m.set(s,a)}if(a.value!==void 0)return m.set(S(e,r),a),a.value;if(a.loaded=!0,!a.pendingGet)try{a.pendingGet=a.get()}catch(p){a.pendingGet=Promise.reject(p)}let y=a.pendingGet,g;try{g=await y}catch(p){if(a.value!==void 0)return m.set(S(e,r),a),a.value;throw a.loaded=!1,m.get(s)===a&&m.delete(s),p}finally{a.pendingGet===y&&(a.pendingGet=void 0)}return a.value===void 0&&(a.value=g),m.set(S(e,r),a),a.value}function Ee(e,r={}){return _.resolveShare?m.get(S(e,r))?.value:I(e,r,!0)?.value}function Re(e,r,n,o){Q(e,{...r,localVersion:n},o)}function we(e,r){let n=r.shareScope||"default",o=r.shareKey||e;if(_.resolveShare){let s=S(e,r),u=m.get(s);if(u&&u.value!==void 0)return{kind:"ready",value:u.value};let a=u||_.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:I(e,r),available:Object.values(L(n)[o]||{})});if(a&&typeof a.then=="function")throw Promise.resolve(a).catch(()=>{}),new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u5BF9\\u5171\\u4EAB "${o}" \\u8FD4\\u56DE\\u4E86 Promise\\uFF0C\\u4F46\\u8BE5\\u5171\\u4EAB\\u6B63\\u88AB\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u6D88\\u8D39\\uFF08Vite 8 \\u540C\\u6B65\\u534F\\u5546\\u95E8\\u9762\\uFF09\\u3002\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 y=a;if(y){if(y.value!==void 0)return m.set(S(e,r),y),{kind:"ready",value:y.value};if(y.version!==void 0&&y.version===r.localVersion)return{kind:"local"};throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u4E3A "${o}" \\u9009\\u62E9\\u4E86\\u672A\\u5C31\\u7EEA\\u7684 ${y.version??"\\u6761\\u76EE"}\\u3002\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=I(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||!U(r.localVersion,r.requiredVersion))){if(r.strictVersion||t.pendingGet)throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB "${o}" \\u9009\\u4E2D\\u4E86 ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version}\\uFF08\\u5C1A\\u672A\\u52A0\\u8F7D\\uFF09\\uFF0C\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u65E0\\u6CD5\\u7B49\\u5F85\\u5176\\u5B9E\\u4F8B\\u5C31\\u7EEA\\u3002\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 l.has(s)||(l.add(s),console.warn(`[fulgurjs:MFU-010] \\u5171\\u4EAB\\u5355\\u4F8B "${o}"\\uFF1A\\u4F5C\\u7528\\u57DF\\u4E2D ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version} \\u5C1A\\u672A\\u52A0\\u8F7D\\uFF0C\\u9996\\u4E2A\\u6D88\\u8D39\\u8005\\u4EE5\\u672C\\u5730\\u7248\\u672C ${r.localVersion??""} \\u63A5\\u7BA1\\uFF08\\u540E\\u7EED\\u6D88\\u8D39\\u8005\\u6309\\u5DF2\\u52A0\\u8F7D\\u4F18\\u5148\\u6536\\u655B\\u5230\\u8BE5\\u5B9E\\u4F8B\\uFF09\\u3002`)),{kind:"local"}}return console.warn(`[fulgurjs] \\u5171\\u4EAB "${o}"\\uFF1A\\u975E\\u5355\\u4F8B\\u540C\\u6B65\\u6D88\\u8D39\\u4F7F\\u7528\\u672C\\u5730 ${r.localVersion??""}\\uFF0C\\u8FDC\\u7A0B ${t.version} \\u5C1A\\u672A\\u5C31\\u7EEA\\u3002`),{kind:"local"}}async function be(e){if(_.resolveShare){for(let{name:r,opts:n}of e){let o=S(r,n);if(m.has(o))continue;let t=I(r,n),s=await _.resolveShare({shareKey:n.shareKey||r,shareScope:n.shareScope||"default",requiredVersion:n.requiredVersion,picked:t,available:Object.values(L(n.shareScope||"default")[n.shareKey||r]||{})})||t;s&&m.set(o,s)}for(let{name:r,opts:n}of e)await ee(r,n)}}function j(e=""){return F(e).split(/[?#]/,1)[0]}function re(e,r,n){return new Promise((o,t)=>{let s=setTimeout(()=>t(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${n}`)),r);e.then(u=>{clearTimeout(s),o(u)},u=>{clearTimeout(s),t(u)})})}let ve=e=>new Promise(r=>setTimeout(r,e)),ne=new Set;function G(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}`;ne.has(o)||(ne.add(o),console.warn(`[fulgurjs] ${n} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`))}else throw Object.assign(new Error(n),{code:R.REMOTE_NAME_MISMATCH})}}async function te(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)})),re(s,r.timeout??J,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${j(e)}`)}async function oe(e,r){let n=e.shareScope||"default";if(e.container){let s=V.get(e.container);if(s&&s!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${s}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return e.container}if(e.containerPromise)return e.containerPromise;let o=e.breakerState;if(o.openUntil>Date.now()){let s=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u8FDE\\u7EED\\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u7194\\u65AD\\u5668\\u5DF2\\u5F00\\u542F\\uFF1B\\u5C06\\u5728 ${new Date(o.openUntil).toISOString()} \\u540E\\u5141\\u8BB8\\u91CD\\u8BD5\\u3002\\u8BF7\\u5148\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u670D\\u52A1\\u548C\\u7F51\\u7EDC\\u3002`,{remote:e.name,stage:"container"});throw v({remote:e.name,error:s}),s}e.state="loading",e.debug.status="loading";let t=(async()=>{let s=[];if(e.promise)s.push(async()=>{let i=await re(e.promise(),e.timeout??J,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),h=typeof i=="string"?await te(i,e):i;return G(h,e),h});else for(let i of[e.entry,...e.fallback??[]])s.push(async()=>{let h=await te(i,e);return G(h,e),h});let u,a,y=!1,g=r?.retries??e.retries??ce;for(let i of s){for(let h=0;h<=g;h++){let O=performance.now();try{u=await i(),e.lastLoadMs=Math.round(performance.now()-O),e.debug.lastLoadMs=e.lastLoadMs,y=!0;break}catch($){if(a=$,$?.code)throw $;h<g&&await ve(Math.min(De,200*2**h)*(1-Ke*(1-2*Math.random())))}}if(y)break}if(!y||!u){let i=j(e.entry),h=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),h.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),h.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),h.push("2. \\u68C0\\u67E5 Nginx/CDN \\u7684\\u5165\\u53E3\\u8DEF\\u5F84\\u6620\\u5C04\\uFF1B\\u8BE5\\u5730\\u5740\\u4E0D\\u80FD\\u56DE\\u9000\\u5230 index.html\\u3002")),new E(R.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${i} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${M(a)}\n\\u4FEE\\u6CD5\\uFF1A\n${h.join(`\n`)}`,{remote:e.name,stage:"container"},{cause:a})}G(u,e);let p=V.get(u);if(p&&p!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${p}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof u.init=="function"&&await u.init(c),V.set(u,n),e.container=u,e.state="loaded",e.debug.status="loaded",o.fails=0,u})();e.containerPromise=t;try{return await t}catch(s){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=M(s),o.fails+=1,o.fails>=e.breakerThreshold&&(o.openUntil=Date.now()+e.breakerResetMs,o.fails=0),s instanceof E)throw v({remote:e.name,error:s}),s;if(s?.code)throw v({remote:e.name,error:s}),s;let u=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(s)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name,stage:"container"},{cause:s});throw v({remote:e.name,error:u}),u}}function X(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:se(e.slice(r+1))}}function se(e){return e?e.startsWith(".")?e:`./${e}`:""}async function Pe(e,r){let{remote:n,module:o}=X(e);if(o&&K===n)throw new E(R.SETUP_RECURSION,`\\u73B0\\u8C61\\uFF1A\\u52A0\\u8F7D "${e}" \\u65F6\\uFF0C\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 setup/onSession \\u53C8\\u540C\\u6B65\\u52A0\\u8F7D\\u4E86\\u81EA\\u8EAB\\u6A21\\u5757\\uFF0C\\u5F62\\u6210\\u5FAA\\u73AF\\u7B49\\u5F85\\u3002\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(i){W("beforeLoadRemote",i)}let t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:n});let s;try{let i=o&&t.manifestUrl?B(e):Promise.resolve();[s]=await Promise.all([oe(t,{retries:r?.retries}),i])}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}if(!o)return s;await pe(t,s);let u=q(n).globalComponents,a=r?.consumerApp;if(u&&a&&typeof a.component=="function")for(let i of Object.keys(u))a.component(i,u[i]);let y=q(n).pageProviders;y&&y.length>0&&typeof a?.pageProviders=="function"&&a.pageProviders(y);let g=`${n}@${t.shareScope||"default"}#${o}`;b.has(g)||b.set(g,s.get(o).catch(i=>{if(b.delete(g),i instanceof E||i?.code)throw v({remote:n,error:i}),i;let h=new E(R.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${o}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(i)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:o,stage:"expose"},{cause:i});throw v({remote:n,error:h}),h}));let p;try{p=await b.get(g)}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}try{_.afterLoadRemote?.({remote:n,module:o,module_ns:p})}catch(i){W("afterLoadRemote",i)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let i=new E(R.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6A21\\u5757 "${o}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:n,module:o});v({remote:n,error:i}),console.error(i.message)}return p}function $e(e){let r=d.get(e);if(!r)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return oe(r)}async function B(e,r={}){let{remote:n,module:o}=X(e),t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:n});let s=r.mode??"preload",u=(g,p)=>{if(g.sheet)return Promise.resolve();let i=A.get(g);if(i)return i;let h=new Promise(O=>{let $=()=>{g.removeEventListener("load",$),g.removeEventListener("error",T),O()},T=()=>{v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${p}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:n})}),$()};g.addEventListener("load",$,{once:!0}),g.addEventListener("error",T,{once:!0}),g.sheet&&$()});return A.set(g,h),h},a=(g,p)=>{if(typeof document>"u")return Promise.resolve();let i=document.querySelector(`link[href="${g}"]`);if(i)return p==="style"&&s==="preload"?A.get(i)??Promise.resolve():Promise.resolve();let h=document.createElement("link");h.rel=p==="style"?"stylesheet":"modulepreload",h.href=g,s==="prefetch"&&(h.fetchPriority="low");let O=p==="style"?u(h,g):Promise.resolve();return document.head.appendChild(h),p==="style"&&s==="preload"?O:Promise.resolve()},y=g=>{let p=typeof document<"u"?document.baseURI:void 0,i=new URL(t.entry,p||"http://fulgurjs.invalid/");return!i.pathname.endsWith("/")&&!i.pathname.split("/").pop().includes(".")&&(i.pathname+="/"),new URL(g,i).href};try{if(t.manifestUrl){let g=P.get(t.manifestUrl);g||(g=fetch(t.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(i=>i.ok?i.json():void 0),P.set(t.manifestUrl,g),g.then(i=>{i||P.delete(t.manifestUrl)},()=>P.delete(t.manifestUrl)));let p=await g;if(p){let i=p.schemaVersion;if(typeof i=="number"&&(!Number.isInteger(i)||i>1)){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(i)}\\uFF0C\\u5F53\\u524D\\u4EC5\\u652F\\u6301\\u7248\\u672C 1\\u3002\\u8BF7\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u548C\\u8FDC\\u7A0B\\u7684\\u63D2\\u4EF6\\u7248\\u672C\\u3002`,{remote:n})}),await a(t.entry,"modulepreload");return}await a(t.entry,"modulepreload");let h=p.exposes,O=Array.isArray(h)?h.filter(k=>k&&typeof k=="object").map(k=>[String(k.name??""),k]):h&&typeof h=="object"?Object.entries(h):[],$=o?O.filter(([k,N])=>se(String(N?.name??k))===o):O,T=[];for(let[,k]of $)if(typeof k?.file=="string"&&await a(y(k.file),"modulepreload"),Array.isArray(k?.css))for(let N of k.css){if(typeof N!="string")continue;let _e=a(y(N),"style");s==="preload"&&T.push(_e)}await Promise.all(T);return}}await a(t.entry,"modulepreload")}catch(g){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(g)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:n})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=c,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,n]of d)e[r]={...n.debug,entry:j(n.entry)};return e},errors:[]}),{shareScopeMap:c,initSharing:ge,registerShare:H,registerRemotes:Z,registerRemote:ye,registerPlugins:Se,loadShare:ee,loadShareSync:we,prepareShares:be,getLoadedShare:Ee,pinLoadedShare:Re,loadRemote:Pe,getContainer:$e,preloadRemote:B,parseSpec:X,clearSessionState:me,reportRemoteError:e=>{v(e)}}}var le=globalThis,w=le.__FULGURJS_RUNTIME__??qe();le.__FULGURJS_RUNTIME__=w;try{Object.freeze(w)}catch{}var Ye=ae;function Ze(){return w}var Qe=w.initSharing,er=w.registerShare,rr=w.registerRemotes,nr=w.registerRemote,tr=w.registerPlugins,or=w.loadShare,sr=w.getLoadedShare,ir=w.prepareShares||(async c=>{for(let{name:d,opts:f}of c)await w.loadShare(d,f)}),ar=w.loadShareSync,cr=w.pinLoadedShare,lr=w.loadRemote,ur=w.getContainer,dr=w.preloadRemote,fr=w.parseSpec,pr=w.clearSessionState,mr=w.shareScopeMap;function gr(c){if(c&&typeof c=="object"&&"default"in c){let d=c.default;return d!==void 0?d:c}return c}var hr=w;export{pr as clearSessionState,hr as default,ur as getContainer,sr as getLoadedShare,Ze as getRuntime,Qe as initSharing,lr as loadRemote,or as loadShare,ar as loadShareSync,fr as parseSpec,cr as pinLoadedShare,dr as preloadRemote,ir as prepareShares,tr as registerPlugins,nr as registerRemote,rr as registerRemotes,er as registerShare,w as runtime,mr as shareScopeMap,gr as unwrapDefault,Ye as version};\n';
3976
4022
 
3977
4023
  // src/index.ts
3978
4024
  function readRuntimeCode() {
@@ -5107,7 +5153,10 @@ ${entryChunk.code}`;
5107
5153
  const stop = startRemoteTypesSyncLoop({
5108
5154
  root: n.root,
5109
5155
  typesRoot,
5110
- remotes: syncable.map((r) => ({ key: r.key, devEntry: r.devEntry }))
5156
+ remotes: syncable.map((r) => ({ key: r.key, devEntry: r.devEntry })),
5157
+ // 消费/提供双角色的公开源码可能直接 import 上游具名类型。
5158
+ // 首轮编译早于同步时会失败;仅在新类型原子写入后重检,普通轮询不触发。
5159
+ onSynced: () => typesServer?.invalidate()
5111
5160
  });
5112
5161
  server.httpServer?.once("close", stop);
5113
5162
  });
package/dist/runtime.js CHANGED
@@ -1,4 +1,4 @@
1
- var ke=/^v?(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z.-]+)?$/;function C(c){let d=ke.exec(String(c).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function Oe(c,d){if(c.length===0&&d.length===0)return 0;if(c.length===0)return 1;if(d.length===0)return-1;let f=Math.max(c.length,d.length);for(let l=0;l<f;l++){let m=c[l],S=d[l];if(m===void 0)return-1;if(S===void 0)return 1;let b=/^\d+$/.test(m),P=/^\d+$/.test(S);if(b&&P){let A=Number(m)-Number(S);if(A!==0)return A}else{if(b!==P)return b?-1:1;if(m!==S)return m<S?-1:1}}return 0}function x(c,d){let f=C(c),l=C(d);return!f||!l?c<d?-1:c>d?1:0:f.major!==l.major?f.major-l.major:f.minor!==l.minor?f.minor-l.minor:f.patch!==l.patch?f.patch-l.patch:Oe(f.pre,l.pre)}var Me=/^[a-z]+[+:-]/i;function U(c,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||Me.test(f)?!0:f.split("||").some(l=>Te(c,l.trim()))}function Te(c,d){if(!d||d==="*")return!C(c)?.pre.length;let f=d.split(/\s+-\s+/);if(f.length===2){let S=f[0].trim(),b=f[1].trim();return!(!U(c,`>=${S}`)||!U(c,`<=${b}`))}let l=C(c);if(!l)return!1;let m=Le(d);if(m===null)return!0;for(let S of m)if(!je(l,c,S))return!1;return!(l.pre.length>0&&!m.some(S=>S.ver.pre.length>0)&&!m.some(b=>b.ver.major===l.major&&b.ver.minor===l.minor&&b.ver.patch===l.patch))}function Le(c){let d=[],f=c.trim().split(/\s+/).filter(Boolean);if(f.length===0)return null;for(let l of f){let m=/^(>=|<=|>|<|=|\^|~)?(.*)$/.exec(l);if(!m)return null;let S=m[1],b=m[2],P=Ae(S,b);if(P===null)return null;d.push(...P)}return d}function Ae(c,d){let f=xe(d);if(!f)return null;let{ver:l,partial:m}=f;switch(c){case"^":{let S=Ie(l);return S?[{op:">=",ver:l},{op:"<",ver:S}]:null}case"~":{let S=m>=2?{major:l.major,minor:l.minor+1,patch:0,pre:[]}:{major:l.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:l},{op:"<",ver:S}]}case">=":return[{op:">=",ver:l}];case">":return m===1?[{op:">=",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:">",ver:l}];case"<":return m===1?[{op:"<",ver:{major:l.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:l.major,minor:l.minor,patch:0,pre:[]}}]:[{op:"<",ver:l}];case"<=":return[{op:"<=",ver:l}];case"=":case void 0:return m===1?[{op:">=",ver:l},{op:"<",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:l},{op:"<",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:l}];default:return null}}function Ie(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 xe(c){let d=c.replace(/^v/,"").trim();if(!d||d==="*"||d==="x"||d==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=d.split("."),l=[],m=0;for(let P of f.slice(0,3))if(/^\d+$/.test(P))l.push(Number(P)),m++;else{if(P==="x"||P==="X"||P==="*")break;break}let S=d.split("-"),b=S.length>1?S.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:l[0]??0,minor:l[1]??0,patch:l[2]??0,pre:b},partial:m}}function Ue(c,d){switch(d){case">=":return c>=0;case">":return c>0;case"<":return c<0;case"<=":return c<=0;case"=":return c===0}}function je(c,d,f){let l=`${c.major}.${c.minor}.${c.patch}`+(c.pre.length?`-${c.pre.join(".")}`:"");if(f.upper)return!(!(x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(x(l,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),S=Ue(m,f.op);return f.ver.pre.length>0&&c.pre.length===0&&(f.op===">"||f.op==="<")?!1:S}function F(c){return c.replace(/(https?:\/\/)(?:[^\s/@]+@)?([^\s?#"'<>,。;))\]]+)(?:[?#][^\s"'<>,。;))\]]*)?/g,"$1$2")}function M(c){return F(String(c?.message??c)).replace(/\b(token|password|cookie|authorization)["']?\s*[:=]\s*["']?(?:Bearer\s+)?[^\s,;"'}]+/gi,"$1=[redacted]")}var E=class extends Error{code;details;constructor(d,f,l,m){super(`[fulgurjs:${d}] ${F(f)}`,m),this.name="FgError",this.code=d,this.details=l}},R={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014",COMPONENT_EXPORT_INVALID:"MFU-018",VUE_RUNTIME_IDENTITY_MISMATCH:"MFU-019",REMOTE_RENDER_ERROR:"MFU-020"};function ie(c){if(typeof c!="object"||c===null)return!1;let d=globalThis,f=d.__FULGURJS_REPORTED_ERRORS__??=new WeakSet;return f.has(c)?!0:(f.add(c),!1)}var ae="6.14.1";var Ne="__fulgurjsSetup",Ce="__FULGURJS_APP_CONFIG__",J=15e3,ce=2,Fe=5,Ve=3e4,De=4e3,Ke=.2;function qe(){let c=Object.create(null),d=new Map,f=[],l=new Set,m=new Map,S=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,P=new Map,A=new WeakMap,V=new WeakMap,W=(e,r)=>{console.warn(`[fulgurjs] ${e} \u94A9\u5B50\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u52A0\u8F7D\uFF09\uFF0C\u8BF7\u68C0\u67E5\uFF1A`,M(r))},_={},ue=()=>{for(let e of f)try{e.init?.(_)}catch(r){console.warn("[fulgurjs] \u6269\u5C55\u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\uFF1A",e.name,M(r))}},D=new Map,K,q=e=>{let r=D.get(e);return r||D.set(e,r={}),r},z=()=>globalThis[Ce]??{};async function Y(e,r,n,o){let t=u=>{if(u instanceof E)return v({remote:e,error:u}),u;let a=new E(R.SETUP_RUN_FAILED,`\u73B0\u8C61\uFF1A\u8FDC\u7A0B\u5E94\u7528 "${e}" \u7684 ${o} \u521D\u59CB\u5316\u5931\u8D25\u3002
1
+ var ke=/^v?(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z.-]+)?$/;function C(c){let d=ke.exec(String(c).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function Oe(c,d){if(c.length===0&&d.length===0)return 0;if(c.length===0)return 1;if(d.length===0)return-1;let f=Math.max(c.length,d.length);for(let l=0;l<f;l++){let m=c[l],S=d[l];if(m===void 0)return-1;if(S===void 0)return 1;let b=/^\d+$/.test(m),P=/^\d+$/.test(S);if(b&&P){let A=Number(m)-Number(S);if(A!==0)return A}else{if(b!==P)return b?-1:1;if(m!==S)return m<S?-1:1}}return 0}function x(c,d){let f=C(c),l=C(d);return!f||!l?c<d?-1:c>d?1:0:f.major!==l.major?f.major-l.major:f.minor!==l.minor?f.minor-l.minor:f.patch!==l.patch?f.patch-l.patch:Oe(f.pre,l.pre)}var Me=/^[a-z]+[+:-]/i;function U(c,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||Me.test(f)?!0:f.split("||").some(l=>Te(c,l.trim()))}function Te(c,d){if(!d||d==="*")return!C(c)?.pre.length;let f=d.split(/\s+-\s+/);if(f.length===2){let S=f[0].trim(),b=f[1].trim();return!(!U(c,`>=${S}`)||!U(c,`<=${b}`))}let l=C(c);if(!l)return!1;let m=Le(d);if(m===null)return!0;for(let S of m)if(!je(l,c,S))return!1;return!(l.pre.length>0&&!m.some(S=>S.ver.pre.length>0)&&!m.some(b=>b.ver.major===l.major&&b.ver.minor===l.minor&&b.ver.patch===l.patch))}function Le(c){let d=[],f=c.trim().split(/\s+/).filter(Boolean);if(f.length===0)return null;for(let l of f){let m=/^(>=|<=|>|<|=|\^|~)?(.*)$/.exec(l);if(!m)return null;let S=m[1],b=m[2],P=Ae(S,b);if(P===null)return null;d.push(...P)}return d}function Ae(c,d){let f=xe(d);if(!f)return null;let{ver:l,partial:m}=f;switch(c){case"^":{let S=Ie(l);return S?[{op:">=",ver:l},{op:"<",ver:S}]:null}case"~":{let S=m>=2?{major:l.major,minor:l.minor+1,patch:0,pre:[]}:{major:l.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:l},{op:"<",ver:S}]}case">=":return[{op:">=",ver:l}];case">":return m===1?[{op:">=",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:">",ver:l}];case"<":return m===1?[{op:"<",ver:{major:l.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:l.major,minor:l.minor,patch:0,pre:[]}}]:[{op:"<",ver:l}];case"<=":return[{op:"<=",ver:l}];case"=":case void 0:return m===1?[{op:">=",ver:l},{op:"<",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:l},{op:"<",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:l}];default:return null}}function Ie(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 xe(c){let d=c.replace(/^v/,"").trim();if(!d||d==="*"||d==="x"||d==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=d.split("."),l=[],m=0;for(let P of f.slice(0,3))if(/^\d+$/.test(P))l.push(Number(P)),m++;else{if(P==="x"||P==="X"||P==="*")break;break}let S=d.split("-"),b=S.length>1?S.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:l[0]??0,minor:l[1]??0,patch:l[2]??0,pre:b},partial:m}}function Ue(c,d){switch(d){case">=":return c>=0;case">":return c>0;case"<":return c<0;case"<=":return c<=0;case"=":return c===0}}function je(c,d,f){let l=`${c.major}.${c.minor}.${c.patch}`+(c.pre.length?`-${c.pre.join(".")}`:"");if(f.upper)return!(!(x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(x(l,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),S=Ue(m,f.op);return f.ver.pre.length>0&&c.pre.length===0&&(f.op===">"||f.op==="<")?!1:S}function F(c){return c.replace(/(https?:\/\/)(?:[^\s/@]+@)?([^\s?#"'<>,。;))\]]+)(?:[?#][^\s"'<>,。;))\]]*)?/g,"$1$2")}function M(c){return F(String(c?.message??c)).replace(/\b(token|password|cookie|authorization)["']?\s*[:=]\s*["']?(?:Bearer\s+)?[^\s,;"'}]+/gi,"$1=[redacted]")}var E=class extends Error{code;details;constructor(d,f,l,m){super(`[fulgurjs:${d}] ${F(f)}`,m),this.name="FgError",this.code=d,this.details=l}},R={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014",COMPONENT_EXPORT_INVALID:"MFU-018",VUE_RUNTIME_IDENTITY_MISMATCH:"MFU-019",REMOTE_RENDER_ERROR:"MFU-020"};function ie(c){if(typeof c!="object"||c===null)return!1;let d=globalThis,f=d.__FULGURJS_REPORTED_ERRORS__??=new WeakSet;return f.has(c)?!0:(f.add(c),!1)}var ae="6.14.3";var Ne="__fulgurjsSetup",Ce="__FULGURJS_APP_CONFIG__",J=15e3,ce=2,Fe=5,Ve=3e4,De=4e3,Ke=.2;function qe(){let c=Object.create(null),d=new Map,f=[],l=new Set,m=new Map,S=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,P=new Map,A=new WeakMap,V=new WeakMap,W=(e,r)=>{console.warn(`[fulgurjs] ${e} \u94A9\u5B50\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u52A0\u8F7D\uFF09\uFF0C\u8BF7\u68C0\u67E5\uFF1A`,M(r))},_={},ue=()=>{for(let e of f)try{e.init?.(_)}catch(r){console.warn("[fulgurjs] \u6269\u5C55\u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\uFF1A",e.name,M(r))}},D=new Map,K,q=e=>{let r=D.get(e);return r||D.set(e,r={}),r},z=()=>globalThis[Ce]??{};async function Y(e,r,n,o){let t=u=>{if(u instanceof E)return v({remote:e,error:u}),u;let a=new E(R.SETUP_RUN_FAILED,`\u73B0\u8C61\uFF1A\u8FDC\u7A0B\u5E94\u7528 "${e}" \u7684 ${o} \u521D\u59CB\u5316\u5931\u8D25\u3002
2
2
  \u539F\u56E0\uFF1A${M(u)}
3
3
  \u4FEE\u6CD5\uFF1A\u68C0\u67E5\u5E76\u4FEE\u590D\u8BE5 ${o} \u51FD\u6570\u540E\u91CD\u65B0\u52A0\u8F7D\uFF1B\u5931\u8D25\u7F13\u5B58\u5DF2\u6E05\u9664\uFF0C\u53EF\u4EE5\u76F4\u63A5\u91CD\u8BD5\u3002`,{remote:e,phase:o},{cause:u});return v({remote:e,error:a}),a};K=e;let s;try{s=r(n)}catch(u){throw t(u)}finally{K=void 0}try{await s}catch(u){throw t(u)}}async function de(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await B(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default,u=t?.onSession!==void 0||t?.globalComponents!==void 0||t?.pageProviders!==void 0;if(s!==void 0&&typeof s!="function"||!s&&!u)throw new E(R.SETUP_INVALID_EXPORT,`\u73B0\u8C61\uFF1A\u8FDC\u7A0B\u5E94\u7528 "${e.name}" \u7684 setup \u6A21\u5757 "${n}" \u65E0\u6CD5\u521D\u59CB\u5316\u3002
4
4
  \u539F\u56E0\uFF1A\u9ED8\u8BA4\u5BFC\u51FA\u7C7B\u578B\u4E3A ${t==null?String(t):typeof s}\uFF0C\u4E14\u6A21\u5757\u4E0D\u6EE1\u8DB3\u521D\u59CB\u5316\u58F0\u660E\u5951\u7EA6\u3002
@@ -548,6 +548,8 @@ Remote types are on by default (`dts: true`). The chain is **provider generates
548
548
  - **Host**: dev syncs in the background (never blocking the dev server; bounded retries while the remote is starting, automatic updates after recovery; content-digest generations refresh on source changes). Sync performs integrity checks (per-file digests, path boundaries, size/count caps) and **atomically replaces** the directory after a complete download — interruptions or failures keep the previous complete generation and report an explicit stale state. Output lands in `src/fulgurjs/types/` (`.fulgurjs/types` without a src layout; `dts.dir` overrides): `<remote>/modules.d.ts` (ambient module declarations) + `<remote>/registry.d.ts` (the type registry) + `metadata.json` (the generator ledger — cleanup only touches ledger-listed files, never user files).
549
549
  - **TypeScript discovery**: the default directory sits under `src`, so a regular `include: ["src/**/*"]` works with zero configuration; the generated code contains no relative imports, so the host's `moduleResolution` (bundler/NodeNext/…) never affects discovery. If the directory is excluded or a strict `files` allowlist misses it, dev and `fulgurjs types` report TYP-006 with the exact config file and minimal fix. The plugin **never** rewrites your tsconfig during dev startup.
550
550
 
551
+ When local dev consumes a deployed remote, types come from the manifest beside the complete production `.js` entry configured in `remotes[alias].dev`, using the same provider as the module. No provider dev server is required. The browser loads JS; the consumer Node development process downloads declarations, so verify network access for each. See the [complete configuration and workflow](../guide/components-and-modules.md#local-development-against-a-deployed-remote).
552
+
551
553
  ### Entry checks for the string APIs (type registry)
552
554
 
553
555
  `loadRemote`, `remoteComponent`, `createVueBridgeApp` and `createReactBridgeApp` share one registry (`FgRemoteTypes`, populated by the synced output) with plain imports:
@@ -544,6 +544,8 @@ export const bridgeSession = createBridgeSession()
544
544
  - **宿主**:dev 启动后台同步(不阻塞页面服务;远程晚启动有界重试,恢复后自动更新;源码变化按摘要代次自动刷新)。同步做完整性校验(逐文件摘要、路径边界、大小/数量上限),完整下载后**原子替换**——中断/失败保留上一代完整声明并明确陈旧状态。产物写入 `src/fulgurjs/types/`(无 src 布局回退 `.fulgurjs/types`,`dts.dir` 可覆盖):`<远程名>/modules.d.ts`(环境模块声明)+ `<远程名>/registry.d.ts`(类型注册表)+ `metadata.json`(生成器账本——清理只动账本内自有文件,绝不碰用户文件)。
545
545
  - **TypeScript 发现**:生成目录默认落在 `src` 下,常规 `include: ["src/**/*"]` 零配置生效;生成代码不含相对导入,宿主 `moduleResolution`(bundler/NodeNext/…)不影响发现。目录被 exclude 或严格 `files` 白名单排除时,dev 与 `fulgurjs types` 给出 TYP-006(含具体配置文件与最小修法)。插件**绝不**在 dev 启动时改写你的 tsconfig。
546
546
 
547
+ 本地 dev 消费已部署远程时,类型来自 `remotes[别名].dev` 指定的完整生产 `.js` 入口对应的 manifest,与模块使用同一提供方;不要求提供方启动 dev。JS 由浏览器加载,声明由消费方 Node 开发进程下载,网络权限分别核对。详见[配置与完整流程](../guide/components-and-modules.md#本地开发消费已部署远程)。
548
+
547
549
  ### 字符串 API 的入口检查(类型注册表)
548
550
 
549
551
  `loadRemote`、`remoteComponent`、`createVueBridgeApp`、`createReactBridgeApp` 与普通 import 共用同一份注册表类型(`FgRemoteTypes`,由同步产物登记):
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fulgurjs/federation",
3
- "version": "6.14.1",
3
+ "version": "6.14.3",
4
4
  "type": "module",
5
5
  "description": "Vite Module Federation for Vue and React: remote modules, shared dependencies and app bridges.",
6
6
  "license": "MIT",