@fulgurjs/federation 6.9.3 → 6.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.en.md +2 -0
  3. package/README.md +2 -0
  4. package/dist/bridge-host-vue.cjs +1 -1
  5. package/dist/bridge-host-vue.js +1 -1
  6. package/dist/cli.js +2059 -314
  7. package/dist/index.cjs +149 -129
  8. package/dist/index.js +149 -129
  9. package/dist/react.js +3 -3
  10. package/dist/runtime.js +1 -1
  11. package/dist/vue-adapter.cjs +1 -1
  12. package/dist/vue-adapter.js +1 -1
  13. package/dist/vue.js +2 -2
  14. package/examples/templates/README.md +6 -0
  15. package/examples/templates/react-host-vue-remote/pnpm-lock.yaml +7 -7
  16. package/examples/templates/react-host-vue-remote/pnpm-workspace.yaml +1 -1
  17. package/examples/templates/react-host-vue-remote/react-host/package.json +1 -1
  18. package/examples/templates/react-host-vue-remote/vue-remote/package.json +1 -1
  19. package/examples/templates/react-react/host/package.json +1 -1
  20. package/examples/templates/react-react/pnpm-lock.yaml +7 -7
  21. package/examples/templates/react-react/pnpm-workspace.yaml +1 -1
  22. package/examples/templates/react-react/remote/package.json +1 -1
  23. package/examples/templates/showcase/pnpm-lock.yaml +11 -11
  24. package/examples/templates/showcase/pnpm-workspace.yaml +1 -1
  25. package/examples/templates/showcase/react-host/package.json +1 -1
  26. package/examples/templates/showcase/react-remote/package.json +1 -1
  27. package/examples/templates/showcase/vue-host/package.json +1 -1
  28. package/examples/templates/showcase/vue-remote/package.json +1 -1
  29. package/examples/templates/vue-host-react-remote/pnpm-lock.yaml +7 -7
  30. package/examples/templates/vue-host-react-remote/pnpm-workspace.yaml +1 -1
  31. package/examples/templates/vue-host-react-remote/react-remote/package.json +1 -1
  32. package/examples/templates/vue-host-react-remote/vue-host/package.json +1 -1
  33. package/examples/templates/vue-vue/host/package.json +1 -1
  34. package/examples/templates/vue-vue/pnpm-lock.yaml +7 -7
  35. package/examples/templates/vue-vue/pnpm-workspace.yaml +1 -1
  36. package/examples/templates/vue-vue/remote/package.json +1 -1
  37. package/package.json +2 -2
package/dist/index.cjs CHANGED
@@ -35,7 +35,7 @@ __export(index_exports, {
35
35
  });
36
36
  module.exports = __toCommonJS(index_exports);
37
37
  var import_node_fs6 = __toESM(require("fs"), 1);
38
- var import_node_path9 = __toESM(require("path"), 1);
38
+ var import_node_path10 = __toESM(require("path"), 1);
39
39
  var import_node_module3 = require("module");
40
40
 
41
41
  // src/options.ts
@@ -44,7 +44,7 @@ var import_node_fs = __toESM(require("fs"), 1);
44
44
  var import_node_path = __toESM(require("path"), 1);
45
45
 
46
46
  // src/version.ts
47
- var RUNTIME_VERSION = "6.9.3";
47
+ var RUNTIME_VERSION = "6.10.1";
48
48
 
49
49
  // src/dev-cors.ts
50
50
  function normalizeDevCorsOrigins(input) {
@@ -1203,10 +1203,10 @@ function genApiFacade(framework) {
1203
1203
  "import { createVueBridgeNavigation, connectVueBridgeRouter, installVueBridgeRouter } from '@fulgurjs/federation/internal/bridge-router-vue.js';",
1204
1204
  "import { createBridgeSession } from '@fulgurjs/federation/internal/bridge-session.js';",
1205
1205
  "import { hasBridgeMount } from '@fulgurjs/federation/internal/bridge-core.js';",
1206
- "export const remoteComponent = createRemoteComponent(__fulgurjs_loadRemote);",
1206
+ "export const remoteComponent = /*#__PURE__*/ createRemoteComponent(__fulgurjs_loadRemote);",
1207
1207
  "export const createHostPages = (options) => __fulgurjs_chp(options, __fulgurjs_loadRemote);",
1208
1208
  "export { defineBridgeApp, defineApplication };",
1209
- "export const createVueBridgeApp = __fulgurjs_cvb(__fulgurjs_loadRemote);",
1209
+ "export const createVueBridgeApp = /*#__PURE__*/ __fulgurjs_cvb(__fulgurjs_loadRemote);",
1210
1210
  "export { createVueBridgeNavigation, connectVueBridgeRouter, installVueBridgeRouter };",
1211
1211
  "export { createBridgeSession };",
1212
1212
  "export { hasBridgeMount };"
@@ -1217,12 +1217,12 @@ function genApiFacade(framework) {
1217
1217
  "import { createReactBridgeAppWithLoader as __fulgurjs_crb } from '@fulgurjs/federation/internal/bridge-host-react.js';",
1218
1218
  "import { createReactBridgeNavigation, createReactBridgeRouter } from '@fulgurjs/federation/internal/bridge-router-react.js';",
1219
1219
  "import { hasBridgeMount } from '@fulgurjs/federation/internal/bridge-core.js';",
1220
- "export const remoteComponent = createRemoteComponent(__fulgurjs_loadRemote);",
1221
- "export const useLoadRemote = createUseLoadRemote(__fulgurjs_loadRemote);",
1220
+ "export const remoteComponent = /*#__PURE__*/ createRemoteComponent(__fulgurjs_loadRemote);",
1221
+ "export const useLoadRemote = /*#__PURE__*/ createUseLoadRemote(__fulgurjs_loadRemote);",
1222
1222
  "export { RemoteErrorBoundary };",
1223
1223
  "export const createReactHostPages = (options) => __fulgurjs_rhp(options, __fulgurjs_loadRemote);",
1224
1224
  "export { defineBridgeApp, defineApplication };",
1225
- "export const createReactBridgeApp = __fulgurjs_crb(__fulgurjs_loadRemote);",
1225
+ "export const createReactBridgeApp = /*#__PURE__*/ __fulgurjs_crb(__fulgurjs_loadRemote);",
1226
1226
  "export { createReactBridgeNavigation, createReactBridgeRouter };",
1227
1227
  "export { hasBridgeMount };"
1228
1228
  ];
@@ -1689,11 +1689,36 @@ export { ${nsAs[1]} };`);
1689
1689
  }
1690
1690
 
1691
1691
  // src/dts-serve.ts
1692
- var import_node_path4 = __toESM(require("path"), 1);
1692
+ var import_node_path5 = __toESM(require("path"), 1);
1693
1693
 
1694
1694
  // src/dts-generate.ts
1695
1695
  var import_node_fs2 = __toESM(require("fs"), 1);
1696
+ var import_node_path4 = __toESM(require("path"), 1);
1697
+
1698
+ // src/dts-diagnostics.ts
1696
1699
  var import_node_path3 = __toESM(require("path"), 1);
1700
+ function formatDeclarationDiagnostics(stdout, stderr, fallback, root, closure) {
1701
+ const groups = [];
1702
+ let current;
1703
+ const clean = (text) => text.replace(/\u001b\[[0-9;]*m/g, "");
1704
+ for (const line of clean(`${stdout}
1705
+ ${stderr}`).split(/\r?\n/)) {
1706
+ const file = line.match(/^(.+)\(\d+,\d+\): error TS\d+:/);
1707
+ const global = /^(?:error )?TS\d+:/.test(line);
1708
+ if (file || global) {
1709
+ current = global || file && closure.has(import_node_path3.default.resolve(root, file[1].trim())) ? [line] : void 0;
1710
+ if (current) groups.push(current);
1711
+ } else if (current && line.trim()) {
1712
+ current.push(line);
1713
+ }
1714
+ }
1715
+ if (!groups.length) return clean(stderr || stdout || fallback).split(/\r?\n/).slice(0, 40).join("\n");
1716
+ const shown = groups.slice(0, 5).flatMap((group) => group.slice(0, 8));
1717
+ if (groups.length > 5) shown.push(`\u53E6\u6709 ${groups.length - 5} \u9879\u516C\u5F00\u58F0\u660E\u8BCA\u65AD\uFF0C\u8BF7\u8FD0\u884C\u63D0\u4F9B\u65B9\u7C7B\u578B\u68C0\u67E5\u67E5\u770B\u3002`);
1718
+ return shown.join("\n");
1719
+ }
1720
+
1721
+ // src/dts-generate.ts
1697
1722
  var import_node_crypto = __toESM(require("crypto"), 1);
1698
1723
  var import_node_module2 = require("module");
1699
1724
  var import_node_child_process = require("child_process");
@@ -1784,7 +1809,7 @@ var DTS_FILE_COUNT_MAX = 4e3;
1784
1809
 
1785
1810
  // src/dts-generate.ts
1786
1811
  function resolveFromRoot(root, pkg) {
1787
- const req = (0, import_node_module2.createRequire)(import_node_path3.default.join(root, "package.json"));
1812
+ const req = (0, import_node_module2.createRequire)(import_node_path4.default.join(root, "package.json"));
1788
1813
  let resolved = null;
1789
1814
  for (const spec of [`${pkg}/package.json`, pkg]) {
1790
1815
  try {
@@ -1794,18 +1819,18 @@ function resolveFromRoot(root, pkg) {
1794
1819
  }
1795
1820
  }
1796
1821
  if (!resolved) return null;
1797
- let dir = import_node_path3.default.dirname(resolved);
1798
- for (let i = 0; i < 5 && !import_node_fs2.default.existsSync(import_node_path3.default.join(dir, "package.json")); i++) {
1799
- const parent = import_node_path3.default.dirname(dir);
1822
+ let dir = import_node_path4.default.dirname(resolved);
1823
+ for (let i = 0; i < 5 && !import_node_fs2.default.existsSync(import_node_path4.default.join(dir, "package.json")); i++) {
1824
+ const parent = import_node_path4.default.dirname(dir);
1800
1825
  if (parent === dir) return null;
1801
1826
  dir = parent;
1802
1827
  }
1803
- return import_node_fs2.default.existsSync(import_node_path3.default.join(dir, "package.json")) ? dir : null;
1828
+ return import_node_fs2.default.existsSync(import_node_path4.default.join(dir, "package.json")) ? dir : null;
1804
1829
  }
1805
1830
  function installHint(root, pkg) {
1806
1831
  const pkgManager = (() => {
1807
- if (import_node_fs2.default.existsSync(import_node_path3.default.join(root, "pnpm-lock.yaml"))) return "pnpm";
1808
- if (import_node_fs2.default.existsSync(import_node_path3.default.join(root, "yarn.lock"))) return "yarn";
1832
+ if (import_node_fs2.default.existsSync(import_node_path4.default.join(root, "pnpm-lock.yaml"))) return "pnpm";
1833
+ if (import_node_fs2.default.existsSync(import_node_path4.default.join(root, "yarn.lock"))) return "yarn";
1809
1834
  return "npm";
1810
1835
  })();
1811
1836
  const devFlag = pkgManager === "pnpm" ? "-D" : "--save-dev";
@@ -1858,7 +1883,7 @@ function computeStaticClosure(ts, entryFiles, resolver, root) {
1858
1883
  continue;
1859
1884
  }
1860
1885
  if (file.endsWith(".vue")) {
1861
- const req = (0, import_node_module2.createRequire)(import_node_path3.default.join(root, "package.json"));
1886
+ const req = (0, import_node_module2.createRequire)(import_node_path4.default.join(root, "package.json"));
1862
1887
  const { parse: parse2 } = req("vue/compiler-sfc");
1863
1888
  const { descriptor } = parse2(text);
1864
1889
  text = [descriptor.script?.content, descriptor.scriptSetup?.content].filter(Boolean).join("\n");
@@ -1880,16 +1905,16 @@ import ${JSON.stringify(descriptor.script.src)}`;
1880
1905
  const r = resolver(spec, file);
1881
1906
  let resolved = r && !r.fromNodeModules ? r.resolved : null;
1882
1907
  if (!resolved) {
1883
- const base = import_node_path3.default.resolve(import_node_path3.default.dirname(file), spec);
1884
- for (const c of [base, `${base}.vue`, `${base}.ts`, `${base}.tsx`, import_node_path3.default.join(base, "index.ts")]) {
1908
+ const base = import_node_path4.default.resolve(import_node_path4.default.dirname(file), spec);
1909
+ for (const c of [base, `${base}.vue`, `${base}.ts`, `${base}.tsx`, import_node_path4.default.join(base, "index.ts")]) {
1885
1910
  if (import_node_fs2.default.existsSync(c)) {
1886
1911
  resolved = c;
1887
1912
  break;
1888
1913
  }
1889
1914
  }
1890
1915
  }
1891
- if (resolved && !resolved.includes(`${import_node_path3.default.sep}node_modules${import_node_path3.default.sep}`)) {
1892
- queue.push(import_node_path3.default.resolve(resolved));
1916
+ if (resolved && !resolved.includes(`${import_node_path4.default.sep}node_modules${import_node_path4.default.sep}`)) {
1917
+ queue.push(import_node_path4.default.resolve(resolved));
1893
1918
  }
1894
1919
  }
1895
1920
  }
@@ -1900,7 +1925,7 @@ function parseErrorFiles(stdout, root) {
1900
1925
  const out = /* @__PURE__ */ new Set();
1901
1926
  for (const line of stdout.split("\n")) {
1902
1927
  const m = line.match(/^([^)(]+)\((\d+),(\d+)\): error TS/);
1903
- if (m) out.add(import_node_path3.default.resolve(root, m[1].trim()));
1928
+ if (m) out.add(import_node_path4.default.resolve(root, m[1].trim()));
1904
1929
  }
1905
1930
  return out;
1906
1931
  }
@@ -1909,13 +1934,13 @@ function resolveTypesEntries(root, baseCo, diagnostics) {
1909
1934
  if (raw === void 0) return [];
1910
1935
  baseCo.types = [];
1911
1936
  if (!Array.isArray(raw)) return [];
1912
- const req = (0, import_node_module2.createRequire)(import_node_path3.default.join(root, "package.json"));
1937
+ const req = (0, import_node_module2.createRequire)(import_node_path4.default.join(root, "package.json"));
1913
1938
  const out = [];
1914
1939
  for (const entry of raw) {
1915
1940
  if (typeof entry !== "string" || entry.length === 0) continue;
1916
- const direct = [import_node_path3.default.resolve(root, `${entry}.d.ts`), import_node_path3.default.resolve(root, entry, "index.d.ts"), import_node_path3.default.resolve(root, "node_modules", `${entry}.d.ts`), import_node_path3.default.resolve(root, "node_modules", entry, "index.d.ts"), import_node_path3.default.resolve(root, "node_modules/@types", entry, "index.d.ts")];
1941
+ const direct = [import_node_path4.default.resolve(root, `${entry}.d.ts`), import_node_path4.default.resolve(root, entry, "index.d.ts"), import_node_path4.default.resolve(root, "node_modules", `${entry}.d.ts`), import_node_path4.default.resolve(root, "node_modules", entry, "index.d.ts"), import_node_path4.default.resolve(root, "node_modules/@types", entry, "index.d.ts")];
1917
1942
  let hit = direct.find((c) => import_node_fs2.default.existsSync(c));
1918
- if (!hit && !entry.startsWith(".") && !import_node_path3.default.isAbsolute(entry)) {
1943
+ if (!hit && !entry.startsWith(".") && !import_node_path4.default.isAbsolute(entry)) {
1919
1944
  try {
1920
1945
  const r = req.resolve(entry);
1921
1946
  for (const c of [r.replace(/\.js$/, ".d.ts"), `${r}.d.ts`, r]) {
@@ -1943,27 +1968,27 @@ function hasVueFilesUnderSources(root) {
1943
1968
  }
1944
1969
  for (const e of entries) {
1945
1970
  if (e.name === "node_modules" || e.name === ".git" || e.name === "dist") continue;
1946
- const p = import_node_path3.default.join(dir, e.name);
1971
+ const p = import_node_path4.default.join(dir, e.name);
1947
1972
  budget.left -= 1;
1948
1973
  if (e.isFile() && e.name.endsWith(".vue")) return true;
1949
1974
  if (e.isDirectory() && scan(p, budget)) return true;
1950
1975
  }
1951
1976
  return false;
1952
1977
  };
1953
- const srcDir = import_node_path3.default.join(root, "src");
1978
+ const srcDir = import_node_path4.default.join(root, "src");
1954
1979
  return scan(import_node_fs2.default.existsSync(srcDir) ? srcDir : root, { left: 2e3 });
1955
1980
  }
1956
1981
  function commonDirOf(files) {
1957
1982
  if (files.length === 0) return "";
1958
- let dir = import_node_path3.default.dirname(files[0]);
1983
+ let dir = import_node_path4.default.dirname(files[0]);
1959
1984
  for (const f of files) {
1960
- const rel = import_node_path3.default.relative(dir, f);
1985
+ const rel = import_node_path4.default.relative(dir, f);
1961
1986
  if (rel.startsWith("..")) {
1962
- const parts = import_node_path3.default.dirname(f).split(import_node_path3.default.sep);
1963
- const cur = dir.split(import_node_path3.default.sep);
1987
+ const parts = import_node_path4.default.dirname(f).split(import_node_path4.default.sep);
1988
+ const cur = dir.split(import_node_path4.default.sep);
1964
1989
  let i = 0;
1965
1990
  while (i < parts.length && i < cur.length && parts[i] === cur[i]) i++;
1966
- dir = parts.slice(0, i).join(import_node_path3.default.sep) || import_node_path3.default.sep;
1991
+ dir = parts.slice(0, i).join(import_node_path4.default.sep) || import_node_path4.default.sep;
1967
1992
  }
1968
1993
  }
1969
1994
  return dir;
@@ -2004,10 +2029,10 @@ function loadTsContext(root, ts, diagnostics) {
2004
2029
  diagnostics.push(`tsconfig \u89E3\u6790\u5931\u8D25\uFF08${tsconfigFile}\uFF09\uFF1A${ts.flattenDiagnosticMessageText(raw.error.messageText, " ")}`);
2005
2030
  return null;
2006
2031
  }
2007
- const parsed = ts.parseJsonConfigFileContent(raw.config, ts.sys, import_node_path3.default.dirname(tsconfigFile));
2032
+ const parsed = ts.parseJsonConfigFileContent(raw.config, ts.sys, import_node_path4.default.dirname(tsconfigFile));
2008
2033
  const co = { ...parsed.options };
2009
- if (typeof co.baseUrl === "string" && !import_node_path3.default.isAbsolute(co.baseUrl)) {
2010
- co.baseUrl = import_node_path3.default.resolve(import_node_path3.default.dirname(tsconfigFile), co.baseUrl);
2034
+ if (typeof co.baseUrl === "string" && !import_node_path4.default.isAbsolute(co.baseUrl)) {
2035
+ co.baseUrl = import_node_path4.default.resolve(import_node_path4.default.dirname(tsconfigFile), co.baseUrl);
2011
2036
  }
2012
2037
  if (parsed.errors.length > 0) {
2013
2038
  const fatal = parsed.errors.filter((e) => e.category === ts.DiagnosticCategory.Error);
@@ -2023,7 +2048,7 @@ function loadTsContext(root, ts, diagnostics) {
2023
2048
  compilerOptions: co,
2024
2049
  rawOptions: raw.config.compilerOptions ?? {},
2025
2050
  projectFiles: parsed.fileNames.filter((f) => !f.endsWith(".d.ts")),
2026
- ambientInputs: parsed.fileNames.filter((f) => f.endsWith(".d.ts") && !f.includes(`${import_node_path3.default.sep}node_modules${import_node_path3.default.sep}`)),
2051
+ ambientInputs: parsed.fileNames.filter((f) => f.endsWith(".d.ts") && !f.includes(`${import_node_path4.default.sep}node_modules${import_node_path4.default.sep}`)),
2027
2052
  tsconfigFile
2028
2053
  };
2029
2054
  }
@@ -2034,7 +2059,7 @@ function makeResolver(ts, co) {
2034
2059
  let resolved = r.resolvedModule?.resolvedFileName;
2035
2060
  if (resolved?.endsWith(".vue.ts") && ts.sys.fileExists(resolved.slice(0, -3))) resolved = resolved.slice(0, -3);
2036
2061
  if (!resolved) return null;
2037
- return { resolved, fromNodeModules: resolved.includes(`${import_node_path3.default.sep}node_modules${import_node_path3.default.sep}`) };
2062
+ return { resolved, fromNodeModules: resolved.includes(`${import_node_path4.default.sep}node_modules${import_node_path4.default.sep}`) };
2038
2063
  };
2039
2064
  }
2040
2065
  async function generateTypesBundle(input) {
@@ -2047,7 +2072,7 @@ async function generateTypesBundle(input) {
2047
2072
  if (!tsPkgDir) {
2048
2073
  return { ok: false, diagnostics: [`\u63D0\u4F9B\u65B9\u5DE5\u7A0B\u672A\u5B89\u88C5 typescript\uFF08\u58F0\u660E\u751F\u6210\u5FC5\u9700\uFF09\u3002${installHint(root, "typescript")}`] };
2049
2074
  }
2050
- const tsReq = (0, import_node_module2.createRequire)(import_node_path3.default.join(tsPkgDir, "package.json"));
2075
+ const tsReq = (0, import_node_module2.createRequire)(import_node_path4.default.join(tsPkgDir, "package.json"));
2051
2076
  const ts = tsReq("typescript");
2052
2077
  const ctx = loadTsContext(root, ts, diagnostics);
2053
2078
  if (!ctx) return { ok: false, diagnostics };
@@ -2055,9 +2080,9 @@ async function generateTypesBundle(input) {
2055
2080
  const entryMap = /* @__PURE__ */ new Map();
2056
2081
  for (const expose of exposes) {
2057
2082
  const raw = expose.import.replace(/^\.?\//, "");
2058
- let abs = import_node_path3.default.resolve(root, raw);
2083
+ let abs = import_node_path4.default.resolve(root, raw);
2059
2084
  if (!import_node_fs2.default.existsSync(abs)) {
2060
- const viaResolver = resolver(expose.import, import_node_path3.default.join(root, "package.json"));
2085
+ const viaResolver = resolver(expose.import, import_node_path4.default.join(root, "package.json"));
2061
2086
  if (viaResolver && !viaResolver.fromNodeModules) abs = viaResolver.resolved;
2062
2087
  }
2063
2088
  abs = abs.replace(/\.js$/, ".ts");
@@ -2089,14 +2114,14 @@ async function generateTypesBundle(input) {
2089
2114
  };
2090
2115
  }
2091
2116
  tool = "vue-tsc";
2092
- const vueTscPkg = JSON.parse(import_node_fs2.default.readFileSync(import_node_path3.default.join(vueTscDir, "package.json"), "utf8"));
2117
+ const vueTscPkg = JSON.parse(import_node_fs2.default.readFileSync(import_node_path4.default.join(vueTscDir, "package.json"), "utf8"));
2093
2118
  const binRel = vueTscPkg.bin?.["vue-tsc"] ?? vueTscPkg.bin?.["vue-tsc.js"] ?? "bin/vue-tsc.js";
2094
- const binPath = import_node_path3.default.resolve(vueTscDir, binRel);
2119
+ const binPath = import_node_path4.default.resolve(vueTscDir, binRel);
2095
2120
  if (!import_node_fs2.default.existsSync(binPath)) {
2096
2121
  return { ok: false, diagnostics: [`vue-tsc \u5165\u53E3\u4E0D\u5B58\u5728\uFF08${binPath}\uFF09\u3002\u8BF7\u91CD\u65B0\u5B89\u88C5 vue-tsc\u3002`] };
2097
2122
  }
2098
- const tmpCfg = import_node_path3.default.join(root, `.fulgurjs-types-tsconfig-${process.pid}-${import_node_crypto.default.randomUUID()}.json`);
2099
- const outDir = import_node_fs2.default.mkdtempSync(import_node_path3.default.join(root, "node_modules", ".fulgurjs-types-emit-"));
2123
+ const tmpCfg = import_node_path4.default.join(root, `.fulgurjs-types-tsconfig-${process.pid}-${import_node_crypto.default.randomUUID()}.json`);
2124
+ const outDir = import_node_fs2.default.mkdtempSync(import_node_path4.default.join(root, "node_modules", ".fulgurjs-types-emit-"));
2100
2125
  const baseCo = { ...rawOptionsWithInherited(ctx) };
2101
2126
  delete baseCo.noEmit;
2102
2127
  delete baseCo.incremental;
@@ -2121,9 +2146,9 @@ async function generateTypesBundle(input) {
2121
2146
  rootDir
2122
2147
  },
2123
2148
  include: [
2124
- ...entryFiles.map((f) => import_node_path3.default.relative(root, f)),
2125
- ...ctx.ambientInputs.map((f) => import_node_path3.default.relative(root, f)),
2126
- ...resolvedTypeFiles.map((f) => import_node_path3.default.relative(root, f))
2149
+ ...entryFiles.map((f) => import_node_path4.default.relative(root, f)),
2150
+ ...ctx.ambientInputs.map((f) => import_node_path4.default.relative(root, f)),
2151
+ ...resolvedTypeFiles.map((f) => import_node_path4.default.relative(root, f))
2127
2152
  ]
2128
2153
  }));
2129
2154
  if (process.env.FG_DUMP_TSCFG) import_node_fs2.default.writeFileSync(process.env.FG_DUMP_TSCFG, import_node_fs2.default.readFileSync(tmpCfg, "utf8"));
@@ -2131,7 +2156,7 @@ async function generateTypesBundle(input) {
2131
2156
  await new Promise((resolve, reject) => {
2132
2157
  const child = (0, import_node_child_process.execFile)(
2133
2158
  process.execPath,
2134
- [binPath, "-p", tmpCfg, "--noErrorTruncation"],
2159
+ [binPath, "-p", tmpCfg, "--noErrorTruncation", "--pretty", "false"],
2135
2160
  { cwd: root, encoding: "utf8", maxBuffer: 64 * 1024 * 1024, timeout: 10 * 60 * 1e3 },
2136
2161
  (err, stdout, stderr) => {
2137
2162
  if (err) {
@@ -2144,12 +2169,7 @@ async function generateTypesBundle(input) {
2144
2169
  const closureErrs = new Set([...errFiles].filter((f) => closure.has(f)));
2145
2170
  const globalError = /(?:^|\n)(?:error )?TS\d+:/.test(String(stdout ?? "") + "\n" + String(stderr ?? ""));
2146
2171
  if (closureErrs.size > 0 || globalError || errFiles.size === 0) {
2147
- const tail = `${String(stdout ?? "")}
2148
- ${String(stderr ?? "")}
2149
- ${err.message}`.split("\n").filter((line) => {
2150
- const m = line.match(/^([^)(]+)\(\d+,\d+\): error TS/);
2151
- return !m || closureErrs.has(import_node_path3.default.resolve(root, m[1].trim()));
2152
- }).slice(-40).join("\n");
2172
+ const tail = formatDeclarationDiagnostics(String(stdout ?? ""), String(stderr ?? ""), err.message, root, closure);
2153
2173
  diagnostics.push(`vue-tsc \u58F0\u660E\u751F\u6210\u5931\u8D25\uFF08\u66B4\u9732\u95ED\u5305\u5185\u5B58\u5728\u7F16\u8BD1\u9519\u8BEF\uFF09\u2014\u2014\u7C7B\u578B\u8D44\u6E90\u672A\u4EA7\u51FA\uFF1A
2154
2174
  ${tail}`);
2155
2175
  reject(err);
@@ -2173,7 +2193,7 @@ ${tail}`);
2173
2193
  collectEmitted(ts, outDir, rootDir, emitted, closure);
2174
2194
  import_node_fs2.default.rmSync(outDir, { recursive: true, force: true });
2175
2195
  } else {
2176
- const outDir = import_node_fs2.default.mkdtempSync(import_node_path3.default.join(root, "node_modules", ".fulgurjs-types-emit-"));
2196
+ const outDir = import_node_fs2.default.mkdtempSync(import_node_path4.default.join(root, "node_modules", ".fulgurjs-types-emit-"));
2177
2197
  const program = ts.createProgram([...entryFiles, ...ctx.ambientInputs, ...resolveTypesEntries(root, ctx.rawOptions, [])], {
2178
2198
  ...ctx.compilerOptions,
2179
2199
  noEmit: false,
@@ -2191,13 +2211,13 @@ ${tail}`);
2191
2211
  ...program.getOptionsDiagnostics(),
2192
2212
  ...program.getSemanticDiagnostics(),
2193
2213
  ...program.getDeclarationDiagnostics()
2194
- ].filter((d) => d.category === ts.DiagnosticCategory.Error).filter((d) => !d.file || closure.has(import_node_path3.default.resolve(d.file.fileName)));
2214
+ ].filter((d) => d.category === ts.DiagnosticCategory.Error).filter((d) => !d.file || closure.has(import_node_path4.default.resolve(d.file.fileName)));
2195
2215
  if (errs.length > 0) {
2196
2216
  import_node_fs2.default.rmSync(outDir, { recursive: true, force: true });
2197
2217
  diagnostics.push(
2198
2218
  `\u58F0\u660E\u751F\u6210\u5931\u8D25\uFF1A\u66B4\u9732\u95ED\u5305\u5185\u5B58\u5728 ${errs.length} \u4E2A\u7F16\u8BD1\u9519\u8BEF\u2014\u2014\u7C7B\u578B\u8D44\u6E90\u672A\u4EA7\u51FA\uFF08\u4FEE\u590D\u540E\u91CD\u65B0\u6784\u5EFA/\u91CD\u542F dev\uFF09\u3002\u524D\u82E5\u5E72\u6761\uFF1A`,
2199
2219
  ...errs.slice(0, 20).map((d) => {
2200
- const f = d.file ? import_node_path3.default.relative(root, d.file.fileName) : "?";
2220
+ const f = d.file ? import_node_path4.default.relative(root, d.file.fileName) : "?";
2201
2221
  const pos = d.file ? d.file.getLineAndCharacterOfPosition(d.start ?? 0) : { line: 0 };
2202
2222
  return ` ${f}:${pos.line + 1} TS${d.code}: ${ts.flattenDiagnosticMessageText(d.messageText, " ")}`;
2203
2223
  })
@@ -2222,7 +2242,7 @@ ${tail}`);
2222
2242
  const externals = /* @__PURE__ */ new Set();
2223
2243
  const srcToRel = /* @__PURE__ */ new Map();
2224
2244
  for (const srcAbs of emitted.keys()) {
2225
- const rel = import_node_path3.default.relative(rootDir, srcAbs).split(import_node_path3.default.sep).join("/");
2245
+ const rel = import_node_path4.default.relative(rootDir, srcAbs).split(import_node_path4.default.sep).join("/");
2226
2246
  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`;
2227
2247
  srcToRel.set(srcAbs, declRel);
2228
2248
  }
@@ -2237,7 +2257,7 @@ ${tail}`);
2237
2257
  for (const [srcAbs, text] of emitted) {
2238
2258
  const rel = srcToRel.get(srcAbs);
2239
2259
  if (text.includes(root)) {
2240
- diagnostics.push(`\u58F0\u660E\u6587\u4EF6\u5305\u542B\u672C\u673A\u7EDD\u5BF9\u8DEF\u5F84\uFF08${import_node_path3.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`);
2260
+ 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`);
2241
2261
  leaked = true;
2242
2262
  }
2243
2263
  files.set(rel, text);
@@ -2269,18 +2289,18 @@ ${tail}`);
2269
2289
  }
2270
2290
  function collectEmitted(ts, outDir, rootDir, out, closure) {
2271
2291
  const walk = (dir) => import_node_fs2.default.readdirSync(dir, { withFileTypes: true }).flatMap((d) => {
2272
- const p = import_node_path3.default.join(dir, d.name);
2292
+ const p = import_node_path4.default.join(dir, d.name);
2273
2293
  return d.isDirectory() ? walk(p) : [p];
2274
2294
  });
2275
2295
  if (!import_node_fs2.default.existsSync(outDir)) return;
2276
2296
  for (const file of walk(outDir)) {
2277
2297
  if (!file.endsWith(".d.ts")) continue;
2278
- const rel = import_node_path3.default.relative(outDir, file);
2298
+ const rel = import_node_path4.default.relative(outDir, file);
2279
2299
  const srcRel = rel.endsWith(".vue.d.ts") ? rel.replace(/\.d\.ts$/, "") : rel.replace(/\.d\.ts$/, ".ts");
2280
- let srcAbs = import_node_path3.default.join(rootDir, srcRel);
2300
+ let srcAbs = import_node_path4.default.join(rootDir, srcRel);
2281
2301
  if (!out.has(srcAbs) && !import_node_fs2.default.existsSync(srcAbs)) {
2282
2302
  for (const ext of [".tsx", ".jsx", ".mts", ".cts", ".js"]) {
2283
- const candidate = import_node_path3.default.join(rootDir, rel.replace(/\.d\.ts$/, ext));
2303
+ const candidate = import_node_path4.default.join(rootDir, rel.replace(/\.d\.ts$/, ext));
2284
2304
  if (import_node_fs2.default.existsSync(candidate)) {
2285
2305
  srcAbs = candidate;
2286
2306
  break;
@@ -2296,7 +2316,7 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
2296
2316
  const declRel = srcToRel.get(srcAbs);
2297
2317
  const fail = (spec) => {
2298
2318
  diagnostics.push(
2299
- `\u58F0\u660E\u4F9D\u8D56\u4E0D\u5B8C\u6574\uFF1A${import_node_path3.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`
2319
+ `\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`
2300
2320
  );
2301
2321
  return null;
2302
2322
  };
@@ -2321,9 +2341,9 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
2321
2341
  return srcToRel.get(resolved) ?? fail(spec);
2322
2342
  };
2323
2343
  const rewriteTo = (targetRel) => {
2324
- const fromDir = import_node_path3.default.posix.dirname(declRel);
2344
+ const fromDir = import_node_path4.default.posix.dirname(declRel);
2325
2345
  const toNoExt = targetRel.replace(/\.d\.ts$/, "");
2326
- let rel = import_node_path3.default.posix.relative(fromDir, toNoExt);
2346
+ let rel = import_node_path4.default.posix.relative(fromDir, toNoExt);
2327
2347
  if (!rel.startsWith(".")) rel = `./${rel}`;
2328
2348
  return rel;
2329
2349
  };
@@ -2394,12 +2414,12 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
2394
2414
 
2395
2415
  // src/dts-serve.ts
2396
2416
  function isTypesInputChange(root, id, outputDir) {
2397
- const relative = import_node_path4.default.relative(root, id);
2398
- if (relative === ".." || relative.startsWith(`..${import_node_path4.default.sep}`) || import_node_path4.default.isAbsolute(relative)) return false;
2399
- if (relative.split(import_node_path4.default.sep).some((part) => part === "node_modules" || part === ".vite")) return false;
2400
- if (import_node_path4.default.basename(id).startsWith(".fulgurjs-types-tsconfig-")) return false;
2401
- const outputRelative = import_node_path4.default.relative(outputDir, id);
2402
- return outputRelative.startsWith(`..${import_node_path4.default.sep}`) || import_node_path4.default.isAbsolute(outputRelative);
2417
+ const relative = import_node_path5.default.relative(root, id);
2418
+ if (relative === ".." || relative.startsWith(`..${import_node_path5.default.sep}`) || import_node_path5.default.isAbsolute(relative)) return false;
2419
+ if (relative.split(import_node_path5.default.sep).some((part) => part === "node_modules" || part === ".vite")) return false;
2420
+ if (import_node_path5.default.basename(id).startsWith(".fulgurjs-types-tsconfig-")) return false;
2421
+ const outputRelative = import_node_path5.default.relative(outputDir, id);
2422
+ return outputRelative.startsWith(`..${import_node_path5.default.sep}`) || import_node_path5.default.isAbsolute(outputRelative);
2403
2423
  }
2404
2424
  function createDevTypesServer(options, hooks = {}) {
2405
2425
  const warn = hooks.warn ?? ((m) => console.warn(m));
@@ -2491,7 +2511,7 @@ ${key}`);
2491
2511
 
2492
2512
  // src/dts-sync.ts
2493
2513
  var import_node_fs4 = __toESM(require("fs"), 1);
2494
- var import_node_path6 = __toESM(require("path"), 1);
2514
+ var import_node_path7 = __toESM(require("path"), 1);
2495
2515
  var import_node_crypto2 = __toESM(require("crypto"), 1);
2496
2516
 
2497
2517
  // src/dts-ambient.ts
@@ -2621,7 +2641,7 @@ function stripAmbientModifiers(text) {
2621
2641
 
2622
2642
  // src/dts-discovery.ts
2623
2643
  var import_node_fs3 = __toESM(require("fs"), 1);
2624
- var import_node_path5 = __toESM(require("path"), 1);
2644
+ var import_node_path6 = __toESM(require("path"), 1);
2625
2645
  function stripJsoncForConfig(text) {
2626
2646
  let out = "";
2627
2647
  let i = 0;
@@ -2685,24 +2705,24 @@ function effectiveCfg(cfg, depth = 0) {
2685
2705
  const parentFile = resolveConfigFile(parent, cfg.file);
2686
2706
  if (!parentFile) continue;
2687
2707
  const parentCfg = effectiveCfg(readCfg(parentFile) ?? { file: parentFile }, depth + 1);
2688
- const dirOf = (f, base) => import_node_path5.default.resolve(import_node_path5.default.dirname(base), f);
2708
+ const dirOf = (f, base) => import_node_path6.default.resolve(import_node_path6.default.dirname(base), f);
2689
2709
  if (parentCfg.include && !cfg.include) {
2690
- merged.include = parentCfg.include.map((p) => import_node_path5.default.relative(import_node_path5.default.dirname(cfg.file), dirOf(p, parentFile)) || ".");
2710
+ merged.include = parentCfg.include.map((p) => import_node_path6.default.relative(import_node_path6.default.dirname(cfg.file), dirOf(p, parentFile)) || ".");
2691
2711
  }
2692
2712
  if (parentCfg.files && !cfg.files) {
2693
- merged.files = parentCfg.files.map((p) => import_node_path5.default.relative(import_node_path5.default.dirname(cfg.file), dirOf(p, parentFile)));
2713
+ merged.files = parentCfg.files.map((p) => import_node_path6.default.relative(import_node_path6.default.dirname(cfg.file), dirOf(p, parentFile)));
2694
2714
  }
2695
2715
  if (parentCfg.exclude && !cfg.exclude) {
2696
- merged.exclude = parentCfg.exclude.map((p) => import_node_path5.default.relative(import_node_path5.default.dirname(cfg.file), dirOf(p, parentFile)));
2716
+ merged.exclude = parentCfg.exclude.map((p) => import_node_path6.default.relative(import_node_path6.default.dirname(cfg.file), dirOf(p, parentFile)));
2697
2717
  }
2698
2718
  }
2699
2719
  return merged;
2700
2720
  }
2701
2721
  function resolveConfigFile(value, declaringFile) {
2702
- let candidate = import_node_path5.default.resolve(import_node_path5.default.dirname(declaringFile), value);
2722
+ let candidate = import_node_path6.default.resolve(import_node_path6.default.dirname(declaringFile), value);
2703
2723
  if (!candidate.endsWith(".json")) candidate += ".json";
2704
2724
  if (import_node_fs3.default.existsSync(candidate)) return candidate;
2705
- const asDir = import_node_path5.default.join(candidate, "tsconfig.json");
2725
+ const asDir = import_node_path6.default.join(candidate, "tsconfig.json");
2706
2726
  return import_node_fs3.default.existsSync(asDir) ? asDir : null;
2707
2727
  }
2708
2728
  function patternCoversDir(pattern, target, cfgDir) {
@@ -2713,15 +2733,15 @@ function patternCoversDir(pattern, target, cfgDir) {
2713
2733
  if (norm.includes("**")) base = norm.slice(0, norm.indexOf("**")).replace(/\/+$/, "");
2714
2734
  else if (norm.endsWith("/*")) base = norm.slice(0, -2);
2715
2735
  else base = norm.replace(/\/+$/, "");
2716
- const abs = base === "" || base === "." ? cfgDir : import_node_path5.default.resolve(cfgDir, base);
2717
- return target === abs || target.startsWith(abs + import_node_path5.default.sep);
2736
+ const abs = base === "" || base === "." ? cfgDir : import_node_path6.default.resolve(cfgDir, base);
2737
+ return target === abs || target.startsWith(abs + import_node_path6.default.sep);
2718
2738
  }
2719
2739
  function checkTypesDiscovery(root, typesRoot) {
2720
- const relTypes = import_node_path5.default.relative(root, typesRoot) || ".";
2740
+ const relTypes = import_node_path6.default.relative(root, typesRoot) || ".";
2721
2741
  const configs = [];
2722
- let primary = import_node_path5.default.join(root, "tsconfig.json");
2742
+ let primary = import_node_path6.default.join(root, "tsconfig.json");
2723
2743
  if (!import_node_fs3.default.existsSync(primary)) {
2724
- const candidates = import_node_fs3.default.existsSync(root) ? import_node_fs3.default.readdirSync(root).filter((f) => /^tsconfig[\w.-]*\.json$/i.test(f)).map((f) => import_node_path5.default.join(root, f)) : [];
2744
+ const candidates = import_node_fs3.default.existsSync(root) ? import_node_fs3.default.readdirSync(root).filter((f) => /^tsconfig[\w.-]*\.json$/i.test(f)).map((f) => import_node_path6.default.join(root, f)) : [];
2725
2745
  if (candidates.length === 0) {
2726
2746
  return {
2727
2747
  covered: false,
@@ -2733,7 +2753,7 @@ function checkTypesDiscovery(root, typesRoot) {
2733
2753
  if (candidates.length > 1) {
2734
2754
  let covered = false;
2735
2755
  for (const file of candidates) {
2736
- configs.push(import_node_path5.default.relative(root, file));
2756
+ configs.push(import_node_path6.default.relative(root, file));
2737
2757
  if (configCovers(file, typesRoot)) covered = true;
2738
2758
  }
2739
2759
  if (covered) return { covered: true, configs, fixHint: null };
@@ -2744,34 +2764,34 @@ function checkTypesDiscovery(root, typesRoot) {
2744
2764
  };
2745
2765
  }
2746
2766
  }
2747
- configs.push(import_node_path5.default.relative(root, primary));
2767
+ configs.push(import_node_path6.default.relative(root, primary));
2748
2768
  if (configCovers(primary, typesRoot)) return { covered: true, configs, fixHint: null };
2749
2769
  return {
2750
2770
  covered: false,
2751
2771
  configs,
2752
- fixHint: `TYP-006 \u7C7B\u578B\u76EE\u5F55 ${relTypes} \u672A\u88AB ${import_node_path5.default.relative(root, primary)} \u7684 include/files \u8986\u76D6\uFF08exclude \u6216\u4E25\u683C files \u767D\u540D\u5355\u90FD\u4F1A\u8BA9\u751F\u6210\u58F0\u660E\u5BF9 IDE/tsc \u4E0D\u53EF\u89C1\uFF09\u3002\u6700\u5C0F\u4FEE\u6CD5\uFF1Ainclude \u52A0\u5165 "${relTypes}/**/*.d.ts"\uFF0C\u6216\u79FB\u9664\u5BF9\u5B83\u7684 exclude/files \u9650\u5236\u3002`
2772
+ fixHint: `TYP-006 \u7C7B\u578B\u76EE\u5F55 ${relTypes} \u672A\u88AB ${import_node_path6.default.relative(root, primary)} \u7684 include/files \u8986\u76D6\uFF08exclude \u6216\u4E25\u683C files \u767D\u540D\u5355\u90FD\u4F1A\u8BA9\u751F\u6210\u58F0\u660E\u5BF9 IDE/tsc \u4E0D\u53EF\u89C1\uFF09\u3002\u6700\u5C0F\u4FEE\u6CD5\uFF1Ainclude \u52A0\u5165 "${relTypes}/**/*.d.ts"\uFF0C\u6216\u79FB\u9664\u5BF9\u5B83\u7684 exclude/files \u9650\u5236\u3002`
2753
2773
  };
2754
2774
  }
2755
2775
  function configCovers(cfgFile, typesRoot) {
2756
2776
  const raw = readCfg(cfgFile);
2757
2777
  if (!raw) return false;
2758
2778
  const cfg = effectiveCfg(raw);
2759
- const cfgDir = import_node_path5.default.dirname(cfgFile);
2779
+ const cfgDir = import_node_path6.default.dirname(cfgFile);
2760
2780
  const isSolution = Array.isArray(cfg.files) && cfg.files.length === 0 && !cfg.include;
2761
2781
  if (isSolution && cfg.references && cfg.references.length > 0) {
2762
2782
  return cfg.references.some((ref) => {
2763
- const refFile = resolveConfigFile(ref.startsWith(".") || import_node_path5.default.isAbsolute(ref) ? ref : `./${ref}`, cfgFile);
2783
+ const refFile = resolveConfigFile(ref.startsWith(".") || import_node_path6.default.isAbsolute(ref) ? ref : `./${ref}`, cfgFile);
2764
2784
  return refFile !== null && configCovers(refFile, typesRoot);
2765
2785
  });
2766
2786
  }
2767
2787
  if (Array.isArray(cfg.files) && cfg.files.length > 0) {
2768
2788
  return cfg.files.some((f) => {
2769
- const abs = import_node_path5.default.resolve(cfgDir, f);
2770
- return abs === typesRoot || abs.startsWith(typesRoot + import_node_path5.default.sep);
2789
+ const abs = import_node_path6.default.resolve(cfgDir, f);
2790
+ return abs === typesRoot || abs.startsWith(typesRoot + import_node_path6.default.sep);
2771
2791
  });
2772
2792
  }
2773
2793
  const includes = cfg.include;
2774
- if (!includes) return typesRoot === cfgDir || typesRoot.startsWith(cfgDir + import_node_path5.default.sep);
2794
+ if (!includes) return typesRoot === cfgDir || typesRoot.startsWith(cfgDir + import_node_path6.default.sep);
2775
2795
  const included = includes.some((p) => patternCoversDir(p, typesRoot, cfgDir));
2776
2796
  if (!included) return false;
2777
2797
  if (cfg.exclude && cfg.exclude.some((p) => patternCoversDir(p, typesRoot, cfgDir))) return false;
@@ -2815,7 +2835,7 @@ var METADATA_FILE = "metadata.json";
2815
2835
  var AMBIENT_FORMAT = 2;
2816
2836
  function readMetadata(dir) {
2817
2837
  try {
2818
- const raw = JSON.parse(import_node_fs4.default.readFileSync(import_node_path6.default.join(dir, METADATA_FILE), "utf8"));
2838
+ const raw = JSON.parse(import_node_fs4.default.readFileSync(import_node_path7.default.join(dir, METADATA_FILE), "utf8"));
2819
2839
  if (raw.generator !== "@fulgurjs/federation" || typeof raw.revision !== "string" || !Array.isArray(raw.files)) return null;
2820
2840
  return raw;
2821
2841
  } catch {
@@ -2825,9 +2845,9 @@ function readMetadata(dir) {
2825
2845
  function cleanupOwnFiles(dir, meta) {
2826
2846
  for (const f of meta.files) {
2827
2847
  if (!isSafeBundlePath(f)) continue;
2828
- import_node_fs4.default.rmSync(import_node_path6.default.join(dir, f), { force: true });
2848
+ import_node_fs4.default.rmSync(import_node_path7.default.join(dir, f), { force: true });
2829
2849
  }
2830
- import_node_fs4.default.rmSync(import_node_path6.default.join(dir, METADATA_FILE), { force: true });
2850
+ import_node_fs4.default.rmSync(import_node_path7.default.join(dir, METADATA_FILE), { force: true });
2831
2851
  try {
2832
2852
  if (import_node_fs4.default.readdirSync(dir).length === 0) import_node_fs4.default.rmdirSync(dir);
2833
2853
  } catch {
@@ -2837,7 +2857,7 @@ function sweepStaleStaging(typesRoot, alias) {
2837
2857
  if (!import_node_fs4.default.existsSync(typesRoot)) return;
2838
2858
  for (const name of import_node_fs4.default.readdirSync(typesRoot)) {
2839
2859
  if (name.startsWith(`.fg-staging-${alias}-`) || name.startsWith(`.fg-trash-${alias}-`)) {
2840
- import_node_fs4.default.rmSync(import_node_path6.default.join(typesRoot, name), { recursive: true, force: true });
2860
+ import_node_fs4.default.rmSync(import_node_path7.default.join(typesRoot, name), { recursive: true, force: true });
2841
2861
  }
2842
2862
  }
2843
2863
  }
@@ -2846,7 +2866,7 @@ async function syncRemoteTypes(input) {
2846
2866
  const fetchJsonFn = input.fetchJsonImpl ?? fetchJson;
2847
2867
  const fetchTextFn = input.fetchTextImpl ?? fetchText;
2848
2868
  const timeoutMs = input.timeoutMs ?? 15e3;
2849
- const dir = import_node_path6.default.join(typesRoot, alias);
2869
+ const dir = import_node_path7.default.join(typesRoot, alias);
2850
2870
  let manifest;
2851
2871
  try {
2852
2872
  const parsed = parseManifest(await fetchJsonFn(manifestUrl, timeoutMs));
@@ -2947,14 +2967,14 @@ async function syncRemoteTypes(input) {
2947
2967
  }
2948
2968
  const ambient = buildAmbientDeclarations({ alias, index, readFile: (rel) => indexRaw[rel] ?? "", source });
2949
2969
  sweepStaleStaging(typesRoot, alias);
2950
- const staging = import_node_path6.default.join(typesRoot, `.fg-staging-${alias}-${process.pid}-${Date.now()}`);
2970
+ const staging = import_node_path7.default.join(typesRoot, `.fg-staging-${alias}-${process.pid}-${Date.now()}`);
2951
2971
  import_node_fs4.default.rmSync(staging, { recursive: true, force: true });
2952
2972
  import_node_fs4.default.mkdirSync(staging, { recursive: true });
2953
2973
  const written = [];
2954
2974
  try {
2955
2975
  for (const [name, content] of ambient.files) {
2956
- const dest = import_node_path6.default.join(staging, name);
2957
- import_node_fs4.default.mkdirSync(import_node_path6.default.dirname(dest), { recursive: true });
2976
+ const dest = import_node_path7.default.join(staging, name);
2977
+ import_node_fs4.default.mkdirSync(import_node_path7.default.dirname(dest), { recursive: true });
2958
2978
  import_node_fs4.default.writeFileSync(dest, content);
2959
2979
  written.push(name);
2960
2980
  }
@@ -2968,8 +2988,8 @@ async function syncRemoteTypes(input) {
2968
2988
  externals: index.externals,
2969
2989
  syncedAt: Date.now()
2970
2990
  };
2971
- import_node_fs4.default.writeFileSync(import_node_path6.default.join(staging, METADATA_FILE), JSON.stringify(meta, null, 2));
2972
- const trash = import_node_path6.default.join(typesRoot, `.fg-trash-${alias}-${Date.now()}`);
2991
+ import_node_fs4.default.writeFileSync(import_node_path7.default.join(staging, METADATA_FILE), JSON.stringify(meta, null, 2));
2992
+ const trash = import_node_path7.default.join(typesRoot, `.fg-trash-${alias}-${Date.now()}`);
2973
2993
  let swapped = false;
2974
2994
  if (import_node_fs4.default.existsSync(dir)) {
2975
2995
  import_node_fs4.default.renameSync(dir, trash);
@@ -2995,7 +3015,7 @@ async function syncRemoteTypes(input) {
2995
3015
  };
2996
3016
  }
2997
3017
  function removeGeneratedTypes(typesRoot, alias) {
2998
- const dir = import_node_path6.default.join(typesRoot, alias);
3018
+ const dir = import_node_path7.default.join(typesRoot, alias);
2999
3019
  if (!import_node_fs4.default.existsSync(dir)) return false;
3000
3020
  const meta = readMetadata(dir);
3001
3021
  if (!meta) return false;
@@ -3072,7 +3092,7 @@ function startRemoteTypesSyncLoop(opts) {
3072
3092
  }
3073
3093
 
3074
3094
  // src/diagnostics.ts
3075
- var import_node_path7 = __toESM(require("path"), 1);
3095
+ var import_node_path8 = __toESM(require("path"), 1);
3076
3096
  function formatFulgurjsDiagnostic(input) {
3077
3097
  const ctx = input.details ? `
3078
3098
  \u4E0A\u4E0B\u6587\uFF1A${JSON.stringify(input.details)}` : "";
@@ -3116,8 +3136,8 @@ function debugLog(category, data) {
3116
3136
  function redactModulePath(id, root) {
3117
3137
  const clean = id.split("?")[0];
3118
3138
  try {
3119
- const rel = import_node_path7.default.relative(root, clean);
3120
- if (rel && !rel.startsWith("..") && !import_node_path7.default.isAbsolute(rel)) return rel;
3139
+ const rel = import_node_path8.default.relative(root, clean);
3140
+ if (rel && !rel.startsWith("..") && !import_node_path8.default.isAbsolute(rel)) return rel;
3121
3141
  } catch {
3122
3142
  }
3123
3143
  return clean.split("/").pop() ?? clean;
@@ -3228,17 +3248,17 @@ function genRemoteSchemaModule(schema) {
3228
3248
 
3229
3249
  // src/vite-cache.ts
3230
3250
  var import_node_fs5 = __toESM(require("fs"), 1);
3231
- var import_node_path8 = __toESM(require("path"), 1);
3251
+ var import_node_path9 = __toESM(require("path"), 1);
3232
3252
  function syncViteCacheMarker(root, pluginVersion, log) {
3233
- const viteDir = import_node_path8.default.join(root, "node_modules", ".vite");
3234
- const marker = import_node_path8.default.join(viteDir, "fulgurjs-version.txt");
3253
+ const viteDir = import_node_path9.default.join(root, "node_modules", ".vite");
3254
+ const marker = import_node_path9.default.join(viteDir, "fulgurjs-version.txt");
3235
3255
  try {
3236
3256
  if (import_node_fs5.default.existsSync(viteDir)) {
3237
3257
  const prev = import_node_fs5.default.existsSync(marker) ? import_node_fs5.default.readFileSync(marker, "utf8").trim() : "";
3238
3258
  if (prev === pluginVersion) return;
3239
3259
  import_node_fs5.default.rmSync(viteDir, { recursive: true, force: true });
3240
3260
  log(
3241
- `[fulgurjs] \u63D2\u4EF6\u7248\u672C\u53D8\u5316\uFF08${prev || "\u65E0\u8BB0\u5F55"} \u2192 ${pluginVersion}\uFF09\uFF0C\u5DF2\u81EA\u52A8\u6E05\u9664 ${import_node_path8.default.relative(root, viteDir)} \u9884\u6784\u5EFA\u7F13\u5B58\uFF08\u907F\u514D\u65E7\u95E8\u9762\u7B7E\u540D 404 / DEV-009\uFF09\u3002\u672C\u6B21\u542F\u52A8\u5C06\u91CD\u65B0\u9884\u6784\u5EFA\uFF0C\u9996\u8F6E 30~60s \u5C5E\u6682\u6001\uFF08DEV-010\uFF09\u3002`
3261
+ `[fulgurjs] \u63D2\u4EF6\u7248\u672C\u53D8\u5316\uFF08${prev || "\u65E0\u8BB0\u5F55"} \u2192 ${pluginVersion}\uFF09\uFF0C\u5DF2\u81EA\u52A8\u6E05\u9664 ${import_node_path9.default.relative(root, viteDir)} \u9884\u6784\u5EFA\u7F13\u5B58\uFF08\u907F\u514D\u65E7\u95E8\u9762\u7B7E\u540D 404 / DEV-009\uFF09\u3002\u672C\u6B21\u542F\u52A8\u5C06\u91CD\u65B0\u9884\u6784\u5EFA\uFF0C\u9996\u8F6E 30~60s \u5C5E\u6682\u6001\uFF08DEV-010\uFF09\u3002`
3242
3262
  );
3243
3263
  }
3244
3264
  import_node_fs5.default.mkdirSync(viteDir, { recursive: true });
@@ -3598,7 +3618,7 @@ function repairRolldownAsyncMarks(code, sourceName) {
3598
3618
  }
3599
3619
 
3600
3620
  // src/runtime-code.gen.ts
3601
- var runtime_code_gen_default = 'var ve=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function N(l){let d=ve.exec(String(l).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function $e(l,d){if(l.length===0&&d.length===0)return 0;if(l.length===0)return 1;if(d.length===0)return-1;let f=Math.max(l.length,d.length);for(let c=0;c<f;c++){let m=l[c],y=d[c];if(m===void 0)return-1;if(y===void 0)return 1;let b=/^\\d+$/.test(m),v=/^\\d+$/.test(y);if(b&&v){let M=Number(m)-Number(y);if(M!==0)return M}else{if(b!==v)return b?-1:1;if(m!==y)return m<y?-1:1}}return 0}function I(l,d){let f=N(l),c=N(d);return!f||!c?l<d?-1:l>d?1:0:f.major!==c.major?f.major-c.major:f.minor!==c.minor?f.minor-c.minor:f.patch!==c.patch?f.patch-c.patch:$e(f.pre,c.pre)}var Pe=/^[a-z]+[+:-]/i;function x(l,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||Pe.test(f)?!0:f.split("||").some(c=>_e(l,c.trim()))}function _e(l,d){if(!d||d==="*")return!N(l)?.pre.length;let f=d.split(/\\s+-\\s+/);if(f.length===2){let y=f[0].trim(),b=f[1].trim();return!(!x(l,`>=${y}`)||!x(l,`<=${b}`))}let c=N(l);if(!c)return!1;let m=ke(d);if(m===null)return!0;for(let y of m)if(!Te(c,l,y))return!1;return!(c.pre.length>0&&!m.some(y=>y.ver.pre.length>0)&&!m.some(b=>b.ver.major===c.major&&b.ver.minor===c.minor&&b.ver.patch===c.patch))}function ke(l){let d=[],f=l.trim().split(/\\s+/).filter(Boolean);if(f.length===0)return null;for(let c of f){let m=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(c);if(!m)return null;let y=m[1],b=m[2],v=Le(y,b);if(v===null)return null;d.push(...v)}return d}function Le(l,d){let f=Ae(d);if(!f)return null;let{ver:c,partial:m}=f;switch(l){case"^":{let y=Oe(c);return y?[{op:">=",ver:c},{op:"<",ver:y}]:null}case"~":{let y=m>=2?{major:c.major,minor:c.minor+1,patch:0,pre:[]}:{major:c.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:c},{op:"<",ver:y}]}case">=":return[{op:">=",ver:c}];case">":return m===1?[{op:">=",ver:{major:c.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:c.major,minor:c.minor+1,patch:0,pre:[]}}]:[{op:">",ver:c}];case"<":return m===1?[{op:"<",ver:{major:c.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:c.major,minor:c.minor,patch:0,pre:[]}}]:[{op:"<",ver:c}];case"<=":return[{op:"<=",ver:c}];case"=":case void 0:return m===1?[{op:">=",ver:c},{op:"<",ver:{major:c.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:c},{op:"<",ver:{major:c.major,minor:c.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:c}];default:return null}}function Oe(l){return l.major>0?{major:l.major+1,minor:0,patch:0,pre:[]}:l.minor>0?{major:0,minor:l.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:l.patch+1,pre:[]}}function Ae(l){let d=l.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("."),c=[],m=0;for(let v of f.slice(0,3))if(/^\\d+$/.test(v))c.push(Number(v)),m++;else{if(v==="x"||v==="X"||v==="*")break;break}let y=d.split("-"),b=y.length>1?y.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:c[0]??0,minor:c[1]??0,patch:c[2]??0,pre:b},partial:m}}function Me(l,d){switch(d){case">=":return l>=0;case">":return l>0;case"<":return l<0;case"<=":return l<=0;case"=":return l===0}}function Te(l,d,f){let c=`${l.major}.${l.minor}.${l.patch}`+(l.pre.length?`-${l.pre.join(".")}`:"");if(f.upper)return!(!(I(c,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(I(c,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=I(c,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),y=Me(m,f.op);return f.ver.pre.length>0&&l.pre.length===0&&(f.op===">"||f.op==="<")?!1:y}var w=class extends Error{code;details;constructor(d,f,c,m){super(`[fulgurjs:${d}] ${f}`,m),this.name="FgError",this.code=d,this.details=c}},E={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014"};var te="6.9.3";var Ie="__fulgurjsSetup",xe="__FULGURJS_APP_CONFIG__",G=15e3,oe=2,je=5,Ne=3e4,Ce=4e3,Ue=.2;function Ve(){let l=Object.create(null),d=new Map,f=[],c=new Set,m=new Map,y=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,v=new Map,M=new WeakMap,C=new WeakMap,_={},ie=()=>{for(let e of f)try{e.init?.(_)}catch(r){console.warn("[fulgurjs] \\u8FD0\\u884C\\u65F6\\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BE5\\u6269\\u5C55\\u5C06\\u4E0D\\u53EF\\u7528\\uFF1A",e.name,r)}},U=new Map,V,F=e=>{let r=U.get(e);return r||U.set(e,r={}),r},X=()=>globalThis[xe]??{};async function B(e,r,n,o){let t=u=>u instanceof w?u:new w(E.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${o} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${String(u?.message??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});V=e;let s;try{s=r(n)}catch(u){throw t(u)}finally{V=void 0}try{await s}catch(u){throw t(u)}}async function ae(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await H(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default;if(typeof s!="function")throw new w(E.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${t==null?String(t):typeof s}\\uFF0C\\u5E94\\u4E3A\\u51FD\\u6570\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728 setup \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u4E2D\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u51FD\\u6570\\uFF0C\\u4F8B\\u5982 export default async function setup(context) { ... }\\uFF1B\\u5177\\u540D onSession \\u53EF\\u9009\\u3002`,{remote:e.name,module:n});if(t.onSession!==void 0&&typeof t.onSession!="function")throw new w(E.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 w(E.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 w(E.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}await B(e.name,s,{appContext:X(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(t){throw e.debug.setup="failed",o.setupExports=void 0,o.globalComponents=void 0,o.pageProviders=void 0,t}}async function ce(e,r,n){let o=X(),t=o?.sessionKey;if(typeof t!="string"||t==="")throw new w(E.SETUP_SESSION_KEY_MISSING,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u58F0\\u660E\\u4E86 onSession\\uFF0C\\u4F46\\u5BBF\\u4E3B\\u5C1A\\u672A\\u63D0\\u4F9B\\u6709\\u6548\\u7684 AppContext.sessionKey\\u3002\n\\u539F\\u56E0\\uFF1A\\u5F53\\u524D\\u503C\\u4E3A ${t===void 0?"\\u7F3A\\u5931":JSON.stringify(t)}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5BBF\\u4E3B\\u6BCF\\u6B21\\u767B\\u5F55\\u6216\\u91CD\\u767B\\u65F6\\u751F\\u6210\\u65B0\\u7684\\u975E\\u654F\\u611F\\u767B\\u5F55\\u4EE3\\u6B21 ID\\uFF0C\\u5E76\\u5728\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u9875\\u9762\\u524D\\u8C03\\u7528 provideAppContext({ ..., sessionKey: \'\\u767B\\u5F55\\u4EE3\\u6B21 ID\' })\\uFF1B\\u4E0D\\u8981\\u4F7F\\u7528 token \\u539F\\u6587\\u3002`,{remote:e.name});if(r.sessionPromise&&r.sessionKey===t)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=t;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),a=(async()=>{await u,!s.signal.aborted&&await B(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 le(e,r){let n=r?.[Ie];if(typeof n!="string"||n==="")return;let o=F(e.name);o.setupPromise||(o.setupPromise=ae(e,r,n,o).catch(s=>{throw o.setupPromise=void 0,s})),await o.setupPromise;let t=o.setupExports?.onSession;typeof t=="function"&&await ce(e,o,t)}function ue(){for(let e of U.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let A=e=>l[e]??=Object.create(null);function $(e){try{_.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}function de(e="default"){return A(e),l}function D(e,r,n,o,t={}){let s=A(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 fe(e){let r=(n,o,t)=>{if(n===void 0)return;if(!(typeof n=="number"&&(t?Number.isInteger(n)&&n>=0&&n<=10:Number.isFinite(n)&&n>0)))throw new Error(`[fulgurjs] \\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 ${o} \\u914D\\u7F6E\\u65E0\\u6548\\uFF1A\\u5F53\\u524D\\u4E3A ${String(n)}\\uFF0C\\u5E94\\u4E3A${t?" 0 \\u5230 10 \\u7684\\u6574\\u6570":"\\u5927\\u4E8E 0 \\u7684\\u6709\\u9650\\u6570\\u5B57"}\\u3002\\u8BF7\\u4FEE\\u6B63 registerRemote \\u914D\\u7F6E\\u3002`)};r(e.timeout,"timeout"),r(e.retries,"retries",!0),e.breaker&&(r(e.breaker.threshold,"breaker.threshold"),r(e.breaker.resetMs,"breaker.resetMs"))}function J(e){for(let r of e){fe(r);let n=d.get(r.name);d.set(r.name,{timeout:G,retries:oe,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??je,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??Ne,state:n?.state??"idle",breakerState:n?.breakerState??{fails:0,openUntil:0},entryInflight:n?.entryInflight??new Map,entryFailCounts:n?.entryFailCounts??new Map,debug:n?.debug??{entry:r.entry,status:"idle",setup:"none"}})}}function pe(e){J([e])}function me(e){f.push(...e),m.clear(),ie()}function T(e,r,n=!1){let o=r.shareScope||"default",t=r.shareKey||e,u=A(o)[t]||{},a=Object.keys(u).filter(i=>!n||r.singleton||u[i].value!==void 0);if(n&&a.length===0)return;let S=r.requiredVersion,g=a.filter(i=>S===void 0||S===!1||x(i,S)),p;if(r.singleton&&a.length>0){let i=a.filter(h=>u[h].loaded);if(p=[...i.length?i:a].sort(I).pop(),!g.includes(p)){let h=u[p],L=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${t}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u5E94\\u7528\\u8981\\u6C42 ${S??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${a.join("\\u3001")}\\uFF1B\\u4E3A\\u4FDD\\u8BC1\\u5168\\u9875\\u53EA\\u4F7F\\u7528\\u4E00\\u4E2A\\u5B9E\\u4F8B\\uFF0C\\u6700\\u7EC8\\u590D\\u7528 ${h.from} \\u63D0\\u4F9B\\u7684 ${p}\\u3002\n\\u5F71\\u54CD\\uFF1A\\u53EF\\u80FD\\u51FA\\u73B0\\u72B6\\u6001\\u4E0D\\u4E00\\u81F4\\u6216\\u8FD0\\u884C\\u9519\\u8BEF\\uFF0C\\u5177\\u4F53\\u53D6\\u51B3\\u4E8E\\u4E24\\u7AEF API \\u662F\\u5426\\u517C\\u5BB9\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u6838\\u5BF9\\u540E\\u8C03\\u6574 shared.requiredVersion\\uFF1B\\u82E5\\u5FC5\\u987B\\u62D2\\u7EDD\\u4E0D\\u517C\\u5BB9\\u7248\\u672C\\uFF0C\\u8BF7\\u542F\\u7528 strictVersion\\u3002`;if(r.strictVersion){let O=new w(E.SHARE_STRICT_VERSION,L,{shareKey:t,requiredVersion:S});throw $({remote:h.from,error:O}),O}let P=`${o}|${t}|${S??"*"}|${p}|${a.join(",")}`;c.has(P)||(c.add(P),console.warn(`[fulgurjs:MFU-010] ${L}`))}}else if(p=[...g].sort(I).pop(),!p){if(r.strictVersion){let i=new w(E.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 ${S}\\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 $({remote:t,error:i}),i}return}return u[p]}function W(e,r,n){let o=r.localVersion;if(!o||n===void 0)return;let t=r.shareScope||"default",s=r.shareKey||e,u=A(t),a=Object.hasOwn(u,s)?u[s]:void 0;if(a&&Object.keys(a).length>0){try{let g=T(e,r);if(g&&g.value===void 0){if(g.version===o)g.value=n,g.loaded=!0;else if(r.singleton&&!g.pendingGet){D(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let p=u[s][o];p.value=n,p.loaded=!0}}}catch{}return}D(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let S=u[s]?.[o];S&&(S.value=n)}async function z(e,r={}){let n=r.shareScope||"default",o=r.shareKey||e,t=A(n)[o]||{},s=y(e,r),u=_.resolveShare?m.get(s):void 0,a=u||T(e,r);if(!a){if(r.fallback){let i=await r.fallback();return W(e,r,i),i}let p=new w(E.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${o}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u4F5C\\u7528\\u57DF "${n}" \\u4E2D\\u6CA1\\u6709\\u7B26\\u5408 ${r.requiredVersion??"\\u4EFB\\u610F\\u7248\\u672C"} \\u8981\\u6C42\\u7684\\u7248\\u672C\\uFF0C\\u4E14\\u672A\\u914D\\u7F6E\\u672C\\u5730\\u526F\\u672C\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728\\u5BBF\\u4E3B\\u6216\\u8FDC\\u7A0B\\u6CE8\\u518C\\u8BE5\\u4F9D\\u8D56\\uFF0C\\u6216\\u4E3A shared \\u914D\\u7F6E\\u53EF\\u7528\\u7684\\u672C\\u5730\\u526F\\u672C\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion});throw $({remote:o,error: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(y(e,r),a),a.value;if(a.loaded=!0,!a.pendingGet)try{a.pendingGet=a.get()}catch(p){a.pendingGet=Promise.reject(p)}let S=a.pendingGet,g;try{g=await S}catch(p){if(a.value!==void 0)return m.set(y(e,r),a),a.value;throw a.loaded=!1,m.get(s)===a&&m.delete(s),p}finally{a.pendingGet===S&&(a.pendingGet=void 0)}return a.value===void 0&&(a.value=g),m.set(y(e,r),a),a.value}function ge(e,r={}){return _.resolveShare?m.get(y(e,r))?.value:T(e,r,!0)?.value}function he(e,r,n,o){W(e,{...r,localVersion:n},o)}function ye(e,r){let n=r.shareScope||"default",o=r.shareKey||e;if(_.resolveShare){let s=y(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:T(e,r),available:Object.values(A(n)[o]||{})});if(a&&typeof a.then=="function")throw Promise.resolve(a).catch(()=>{}),new w(E.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 S=a;if(S){if(S.value!==void 0)return m.set(y(e,r),S),{kind:"ready",value:S.value};if(S.version!==void 0&&S.version===r.localVersion)return{kind:"local"};throw new w(E.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u4E3A "${o}" \\u9009\\u62E9\\u4E86\\u672A\\u5C31\\u7EEA\\u7684 ${S.version??"\\u6761\\u76EE"}\\u3002\n\\u539F\\u56E0\\uFF1A\\u540C\\u6B65\\u6D88\\u8D39\\u4E0D\\u80FD\\u7B49\\u5F85\\u52A0\\u8F7D\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5148\\u52A8\\u6001 loadShare \\u518D\\u5BFC\\u5165\\u6D88\\u8D39\\u8005\\uFF0C\\u6216\\u9009\\u62E9\\u5DF2\\u5C31\\u7EEA\\u5B9E\\u4F8B/\\u672C\\u5730\\u7248\\u672C ${r.localVersion??"\\u672A\\u58F0\\u660E"}\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0})}}let t=T(e,r);if(!t)return{kind:"local"};if(t.value!==void 0)return{kind:"ready",value:t.value};if(t.version!==void 0&&t.version===r.localVersion)return{kind:"local"};if(r.singleton||r.strictVersion&&r.requiredVersion&&(!r.localVersion||!x(r.localVersion,r.requiredVersion))){if(r.strictVersion||t.pendingGet)throw new w(E.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 c.has(s)||(c.add(s),console.warn(`[fulgurjs:MFU-010] \\u5171\\u4EAB\\u5355\\u4F8B "${o}"\\uFF1A\\u4F5C\\u7528\\u57DF\\u4E2D ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version} \\u5C1A\\u672A\\u52A0\\u8F7D\\uFF0C\\u9996\\u4E2A\\u6D88\\u8D39\\u8005\\u4EE5\\u672C\\u5730\\u7248\\u672C ${r.localVersion??""} \\u63A5\\u7BA1\\uFF08\\u540E\\u7EED\\u6D88\\u8D39\\u8005\\u6309\\u5DF2\\u52A0\\u8F7D\\u4F18\\u5148\\u6536\\u655B\\u5230\\u8BE5\\u5B9E\\u4F8B\\uFF09\\u3002`)),{kind:"local"}}return console.warn(`[fulgurjs] \\u5171\\u4EAB "${o}"\\uFF1A\\u975E\\u5355\\u4F8B\\u540C\\u6B65\\u6D88\\u8D39\\u4F7F\\u7528\\u672C\\u5730 ${r.localVersion??""}\\uFF0C\\u8FDC\\u7A0B ${t.version} \\u5C1A\\u672A\\u5C31\\u7EEA\\u3002`),{kind:"local"}}async function Se(e){if(_.resolveShare){for(let{name:r,opts:n}of e){let o=y(r,n);if(m.has(o))continue;let t=T(r,n),s=await _.resolveShare({shareKey:n.shareKey||r,shareScope:n.shareScope||"default",requiredVersion:n.requiredVersion,picked:t,available:Object.values(A(n.shareScope||"default")[n.shareKey||r]||{})})||t;s&&m.set(o,s)}for(let{name:r,opts:n}of e)await z(r,n)}}function Y(e){try{let r=new URL(e,typeof location<"u"?location.href:"http://f.invalid");return r.protocol+"//"+r.host+r.pathname}catch{return String(e).replace(/[?#].*$/,"")}}function Z(e,r,n){return new Promise((o,t)=>{let s=setTimeout(()=>t(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${n}`)),r);e.then(u=>{clearTimeout(s),o(u)},u=>{clearTimeout(s),t(u)})})}let we=e=>new Promise(r=>setTimeout(r,e)),Q=new Set;function K(e,r){if(!e||typeof e.get!="function")throw new Error(`\\u8FDC\\u7A0B\\u5E94\\u7528 "${r.name}" \\u7684 remoteEntry \\u672A\\u5BFC\\u51FA\\u5BB9\\u5668\\u63A5\\u53E3\\u3002\\u8BF7\\u786E\\u8BA4\\u5165\\u53E3\\u5BFC\\u51FA\\u4E86 get()\\uFF0C\\u5E76\\u68C0\\u67E5\\u8BE5\\u5730\\u5740\\u662F\\u5426\\u8FD4\\u56DE\\u6B63\\u786E\\u7684\\u8054\\u90A6\\u5165\\u53E3 JS\\u3002`);if(e.name&&r.name&&e.name!==r.name){let n=`\\u8FDC\\u7A0B\\u5165\\u53E3\\u81EA\\u62A5\\u540D\\u79F0 "${e.name}" \\u4E0E\\u5BBF\\u4E3B\\u914D\\u7F6E\\u540D\\u79F0 "${r.name}" \\u4E0D\\u4E00\\u81F4\\u3002\\u8BF7\\u7EDF\\u4E00\\u4E24\\u4FA7 federation({ name }) \\u4E0E remotes \\u7684\\u540D\\u79F0\\u3002`;if(r.promise){let o=`${r.name}\\u2194${e.name}`;Q.has(o)||(Q.add(o),console.warn(`[fulgurjs] ${n} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`))}else throw Object.assign(new Error(n),{code:E.REMOTE_NAME_MISMATCH})}}async function ee(e,r){let n=r.entryFailCounts.get(e)??0,o=n>0?`${e}${e.includes("?")?"&":"?"}fulgurjs_retry=${n}`:e,t=r.entryInflight.get(e),s=t??import(o);return t||(r.entryInflight.set(e,s),s.catch(()=>{r.entryInflight.delete(e),r.entryFailCounts.set(e,(r.entryFailCounts.get(e)??0)+1)})),Z(s,r.timeout??G,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${Y(e)}`)}async function re(e,r){let n=e.shareScope||"default";if(e.container){let s=C.get(e.container);if(s&&s!==n)throw new w(E.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 w(E.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u8FDE\\u7EED\\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u7194\\u65AD\\u5668\\u5DF2\\u5F00\\u542F\\uFF1B\\u5C06\\u5728 ${new Date(o.openUntil).toISOString()} \\u540E\\u5141\\u8BB8\\u91CD\\u8BD5\\u3002\\u8BF7\\u5148\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u670D\\u52A1\\u548C\\u7F51\\u7EDC\\u3002`,{remote:e.name});throw $({remote:e.name,error:s}),s}e.state="loading",e.debug.status="loading";let t=(async()=>{let s=[];if(e.promise)s.push(async()=>{let i=await Z(e.promise(),e.timeout??G,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),h=typeof i=="string"?await ee(i,e):i;return K(h,e),h});else for(let i of[e.entry,...e.fallback??[]])s.push(async()=>{let h=await ee(i,e);return K(h,e),h});let u,a,S=!1,g=r?.retries??e.retries??oe;for(let i of s){for(let h=0;h<=g;h++){let L=performance.now();try{u=await i(),e.lastLoadMs=Math.round(performance.now()-L),e.debug.lastLoadMs=e.lastLoadMs,S=!0;break}catch(P){if(a=P,P?.code)throw P;h<g&&await we(Math.min(Ce,200*2**h)*(1-Ue*(1-2*Math.random())))}}if(S)break}if(!S||!u){let i=Y(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 w(E.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${i} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${String(a?.message??a)}\n\\u4FEE\\u6CD5\\uFF1A\n${h.join(`\n`)}`,{remote:e.name})}K(u,e);let p=C.get(u);if(p&&p!==n)throw new w(E.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(l),C.set(u,n),e.container=u,e.state="loaded",e.debug.status="loaded",o.fails=0,u})();e.containerPromise=t;try{return await t}catch(s){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=String(s?.message??s),o.fails+=1,o.fails>=e.breakerThreshold&&(o.openUntil=Date.now()+e.breakerResetMs,o.fails=0),s instanceof w)throw $({remote:e.name,error:s}),s;if(s?.code)throw $({remote:e.name,error:s}),s;let u=new w(E.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(s?.message??s)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name});throw $({remote:e.name,error:u}),u}}function q(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:ne(e.slice(r+1))}}function ne(e){return e?e.startsWith(".")?e:`./${e}`:""}async function Ee(e,r){let{remote:n,module:o}=q(e);if(o&&V===n)throw new w(E.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){console.warn("[fulgurjs] beforeLoadRemote \\u89C2\\u6D4B\\u94A9\\u5B50\\u6267\\u884C\\u5931\\u8D25\\uFF1B\\u6A21\\u5757\\u52A0\\u8F7D\\u5C06\\u7EE7\\u7EED\\u3002\\u8BF7\\u68C0\\u67E5\\u8BE5\\u94A9\\u5B50\\uFF1A",i)}let t=d.get(n);if(!t)throw new w(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:n});let s;try{let i=o&&t.manifestUrl?H(e):Promise.resolve();[s]=await Promise.all([re(t,{retries:r?.retries}),i])}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u6B63\\u5728\\u4F7F\\u7528\\u663E\\u5F0F\\u914D\\u7F6E\\u7684 fallbackModule\\uFF1B\\u539F\\u59CB\\u9519\\u8BEF\\uFF1A`,i),$({remote:n,error:i}),await r.fallbackModule();throw i}if(!o)return s;await le(t,s);let u=F(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 S=F(n).pageProviders;S&&S.length>0&&typeof a?.pageProviders=="function"&&a.pageProviders(S);let g=`${n}@${t.shareScope||"default"}#${o}`;b.has(g)||b.set(g,s.get(o).catch(i=>{throw b.delete(g),i instanceof w||i?.code?i:new w(E.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${o}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(i?.message??i)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:o})}));let p;try{p=await b.get(g)}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u6B63\\u5728\\u4F7F\\u7528\\u663E\\u5F0F\\u914D\\u7F6E\\u7684 fallbackModule\\uFF1B\\u539F\\u59CB\\u9519\\u8BEF\\uFF1A`,i),$({remote:n,error:i}),await r.fallbackModule();throw i}try{_.afterLoadRemote?.({remote:n,module:o,module_ns:p})}catch(i){console.warn("[fulgurjs] afterLoadRemote \\u89C2\\u6D4B\\u94A9\\u5B50\\u6267\\u884C\\u5931\\u8D25\\uFF1B\\u5DF2\\u52A0\\u8F7D\\u6A21\\u5757\\u4ECD\\u53EF\\u4F7F\\u7528\\u3002\\u8BF7\\u68C0\\u67E5\\u8BE5\\u94A9\\u5B50\\uFF1A",i)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let i=new w(E.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6A21\\u5757 "${o}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:n,module:o});$({remote:n,error:i}),console.error(i.message)}return p}function Re(e){let r=d.get(e);if(!r)throw new w(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return re(r)}async function H(e,r={}){let{remote:n,module:o}=q(e),t=d.get(n);if(!t)throw new w(E.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=M.get(g);if(i)return i;let h=new Promise(L=>{let P=()=>{g.removeEventListener("load",P),g.removeEventListener("error",O),L()},O=()=>{$({remote:n,error:new w(E.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})}),P()};g.addEventListener("load",P,{once:!0}),g.addEventListener("error",O,{once:!0}),g.sheet&&P()});return M.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"?M.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 L=p==="style"?u(h,g):Promise.resolve();return document.head.appendChild(h),p==="style"&&s==="preload"?L:Promise.resolve()},S=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=v.get(t.manifestUrl);g||(g=fetch(t.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(i=>i.ok?i.json():void 0),v.set(t.manifestUrl,g),g.then(i=>{i||v.delete(t.manifestUrl)},()=>v.delete(t.manifestUrl)));let p=await g;if(p){let i=p.schemaVersion;if(typeof i=="number"&&(!Number.isInteger(i)||i>1)){$({remote:n,error:new w(E.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,L=Array.isArray(h)?h.filter(k=>k&&typeof k=="object").map(k=>[String(k.name??""),k]):h&&typeof h=="object"?Object.entries(h):[],P=o?L.filter(([k,j])=>ne(String(j?.name??k))===o):L,O=[];for(let[,k]of P)if(typeof k?.file=="string"&&await a(S(k.file),"modulepreload"),Array.isArray(k?.css))for(let j of k.css){if(typeof j!="string")continue;let be=a(S(j),"style");s==="preload"&&O.push(be)}await Promise.all(O);return}}await a(t.entry,"modulepreload")}catch(g){$({remote:n,error:new w(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(g?.message??g)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:n})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=l,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,n]of d)e[r]={...n.debug,entry:n.entry};return e},errors:[]}),{shareScopeMap:l,initSharing:de,registerShare:D,registerRemotes:J,registerRemote:pe,registerPlugins:me,loadShare:z,loadShareSync:ye,prepareShares:Se,getLoadedShare:ge,pinLoadedShare:he,loadRemote:Ee,getContainer:Re,preloadRemote:H,parseSpec:q,clearSessionState:ue}}var se=globalThis,R=se.__FULGURJS_RUNTIME__??Ve();se.__FULGURJS_RUNTIME__=R;try{Object.freeze(R)}catch{}var Be=te;function Je(){return R}var We=R.initSharing,ze=R.registerShare,Ye=R.registerRemotes,Ze=R.registerRemote,Qe=R.registerPlugins,er=R.loadShare,rr=R.getLoadedShare,nr=R.prepareShares||(async l=>{for(let{name:d,opts:f}of l)await R.loadShare(d,f)}),tr=R.loadShareSync,or=R.pinLoadedShare,sr=R.loadRemote,ir=R.getContainer,ar=R.preloadRemote,cr=R.parseSpec,lr=R.clearSessionState,ur=R.shareScopeMap;function dr(l){if(l&&typeof l=="object"&&"default"in l){let d=l.default;return d!==void 0?d:l}return l}var fr=R;export{lr as clearSessionState,fr as default,ir as getContainer,rr as getLoadedShare,Je as getRuntime,We as initSharing,sr as loadRemote,er as loadShare,tr as loadShareSync,cr as parseSpec,or as pinLoadedShare,ar as preloadRemote,nr as prepareShares,Qe as registerPlugins,Ze as registerRemote,Ye as registerRemotes,ze as registerShare,R as runtime,ur as shareScopeMap,dr as unwrapDefault,Be as version};\n';
3621
+ var runtime_code_gen_default = 'var ve=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function N(l){let d=ve.exec(String(l).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function $e(l,d){if(l.length===0&&d.length===0)return 0;if(l.length===0)return 1;if(d.length===0)return-1;let f=Math.max(l.length,d.length);for(let c=0;c<f;c++){let m=l[c],y=d[c];if(m===void 0)return-1;if(y===void 0)return 1;let b=/^\\d+$/.test(m),v=/^\\d+$/.test(y);if(b&&v){let M=Number(m)-Number(y);if(M!==0)return M}else{if(b!==v)return b?-1:1;if(m!==y)return m<y?-1:1}}return 0}function I(l,d){let f=N(l),c=N(d);return!f||!c?l<d?-1:l>d?1:0:f.major!==c.major?f.major-c.major:f.minor!==c.minor?f.minor-c.minor:f.patch!==c.patch?f.patch-c.patch:$e(f.pre,c.pre)}var Pe=/^[a-z]+[+:-]/i;function x(l,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||Pe.test(f)?!0:f.split("||").some(c=>_e(l,c.trim()))}function _e(l,d){if(!d||d==="*")return!N(l)?.pre.length;let f=d.split(/\\s+-\\s+/);if(f.length===2){let y=f[0].trim(),b=f[1].trim();return!(!x(l,`>=${y}`)||!x(l,`<=${b}`))}let c=N(l);if(!c)return!1;let m=ke(d);if(m===null)return!0;for(let y of m)if(!Te(c,l,y))return!1;return!(c.pre.length>0&&!m.some(y=>y.ver.pre.length>0)&&!m.some(b=>b.ver.major===c.major&&b.ver.minor===c.minor&&b.ver.patch===c.patch))}function ke(l){let d=[],f=l.trim().split(/\\s+/).filter(Boolean);if(f.length===0)return null;for(let c of f){let m=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(c);if(!m)return null;let y=m[1],b=m[2],v=Le(y,b);if(v===null)return null;d.push(...v)}return d}function Le(l,d){let f=Ae(d);if(!f)return null;let{ver:c,partial:m}=f;switch(l){case"^":{let y=Oe(c);return y?[{op:">=",ver:c},{op:"<",ver:y}]:null}case"~":{let y=m>=2?{major:c.major,minor:c.minor+1,patch:0,pre:[]}:{major:c.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:c},{op:"<",ver:y}]}case">=":return[{op:">=",ver:c}];case">":return m===1?[{op:">=",ver:{major:c.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:c.major,minor:c.minor+1,patch:0,pre:[]}}]:[{op:">",ver:c}];case"<":return m===1?[{op:"<",ver:{major:c.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:c.major,minor:c.minor,patch:0,pre:[]}}]:[{op:"<",ver:c}];case"<=":return[{op:"<=",ver:c}];case"=":case void 0:return m===1?[{op:">=",ver:c},{op:"<",ver:{major:c.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:c},{op:"<",ver:{major:c.major,minor:c.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:c}];default:return null}}function Oe(l){return l.major>0?{major:l.major+1,minor:0,patch:0,pre:[]}:l.minor>0?{major:0,minor:l.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:l.patch+1,pre:[]}}function Ae(l){let d=l.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("."),c=[],m=0;for(let v of f.slice(0,3))if(/^\\d+$/.test(v))c.push(Number(v)),m++;else{if(v==="x"||v==="X"||v==="*")break;break}let y=d.split("-"),b=y.length>1?y.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:c[0]??0,minor:c[1]??0,patch:c[2]??0,pre:b},partial:m}}function Me(l,d){switch(d){case">=":return l>=0;case">":return l>0;case"<":return l<0;case"<=":return l<=0;case"=":return l===0}}function Te(l,d,f){let c=`${l.major}.${l.minor}.${l.patch}`+(l.pre.length?`-${l.pre.join(".")}`:"");if(f.upper)return!(!(I(c,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(I(c,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=I(c,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),y=Me(m,f.op);return f.ver.pre.length>0&&l.pre.length===0&&(f.op===">"||f.op==="<")?!1:y}var w=class extends Error{code;details;constructor(d,f,c,m){super(`[fulgurjs:${d}] ${f}`,m),this.name="FgError",this.code=d,this.details=c}},E={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014"};var te="6.10.1";var Ie="__fulgurjsSetup",xe="__FULGURJS_APP_CONFIG__",G=15e3,oe=2,je=5,Ne=3e4,Ce=4e3,Ue=.2;function Ve(){let l=Object.create(null),d=new Map,f=[],c=new Set,m=new Map,y=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,v=new Map,M=new WeakMap,C=new WeakMap,_={},ie=()=>{for(let e of f)try{e.init?.(_)}catch(r){console.warn("[fulgurjs] \\u8FD0\\u884C\\u65F6\\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BE5\\u6269\\u5C55\\u5C06\\u4E0D\\u53EF\\u7528\\uFF1A",e.name,r)}},U=new Map,V,F=e=>{let r=U.get(e);return r||U.set(e,r={}),r},X=()=>globalThis[xe]??{};async function B(e,r,n,o){let t=u=>u instanceof w?u:new w(E.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${o} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${String(u?.message??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});V=e;let s;try{s=r(n)}catch(u){throw t(u)}finally{V=void 0}try{await s}catch(u){throw t(u)}}async function ae(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await H(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default;if(typeof s!="function")throw new w(E.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${t==null?String(t):typeof s}\\uFF0C\\u5E94\\u4E3A\\u51FD\\u6570\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728 setup \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u4E2D\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u51FD\\u6570\\uFF0C\\u4F8B\\u5982 export default async function setup(context) { ... }\\uFF1B\\u5177\\u540D onSession \\u53EF\\u9009\\u3002`,{remote:e.name,module:n});if(t.onSession!==void 0&&typeof t.onSession!="function")throw new w(E.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 w(E.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 w(E.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}await B(e.name,s,{appContext:X(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(t){throw e.debug.setup="failed",o.setupExports=void 0,o.globalComponents=void 0,o.pageProviders=void 0,t}}async function ce(e,r,n){let o=X(),t=o?.sessionKey;if(typeof t!="string"||t==="")throw new w(E.SETUP_SESSION_KEY_MISSING,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u58F0\\u660E\\u4E86 onSession\\uFF0C\\u4F46\\u5BBF\\u4E3B\\u5C1A\\u672A\\u63D0\\u4F9B\\u6709\\u6548\\u7684 AppContext.sessionKey\\u3002\n\\u539F\\u56E0\\uFF1A\\u5F53\\u524D\\u503C\\u4E3A ${t===void 0?"\\u7F3A\\u5931":JSON.stringify(t)}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5BBF\\u4E3B\\u6BCF\\u6B21\\u767B\\u5F55\\u6216\\u91CD\\u767B\\u65F6\\u751F\\u6210\\u65B0\\u7684\\u975E\\u654F\\u611F\\u767B\\u5F55\\u4EE3\\u6B21 ID\\uFF0C\\u5E76\\u5728\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u9875\\u9762\\u524D\\u8C03\\u7528 provideAppContext({ ..., sessionKey: \'\\u767B\\u5F55\\u4EE3\\u6B21 ID\' })\\uFF1B\\u4E0D\\u8981\\u4F7F\\u7528 token \\u539F\\u6587\\u3002`,{remote:e.name});if(r.sessionPromise&&r.sessionKey===t)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=t;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),a=(async()=>{await u,!s.signal.aborted&&await B(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 le(e,r){let n=r?.[Ie];if(typeof n!="string"||n==="")return;let o=F(e.name);o.setupPromise||(o.setupPromise=ae(e,r,n,o).catch(s=>{throw o.setupPromise=void 0,s})),await o.setupPromise;let t=o.setupExports?.onSession;typeof t=="function"&&await ce(e,o,t)}function ue(){for(let e of U.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let A=e=>l[e]??=Object.create(null);function $(e){try{_.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}function de(e="default"){return A(e),l}function D(e,r,n,o,t={}){let s=A(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 fe(e){let r=(n,o,t)=>{if(n===void 0)return;if(!(typeof n=="number"&&(t?Number.isInteger(n)&&n>=0&&n<=10:Number.isFinite(n)&&n>0)))throw new Error(`[fulgurjs] \\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 ${o} \\u914D\\u7F6E\\u65E0\\u6548\\uFF1A\\u5F53\\u524D\\u4E3A ${String(n)}\\uFF0C\\u5E94\\u4E3A${t?" 0 \\u5230 10 \\u7684\\u6574\\u6570":"\\u5927\\u4E8E 0 \\u7684\\u6709\\u9650\\u6570\\u5B57"}\\u3002\\u8BF7\\u4FEE\\u6B63 registerRemote \\u914D\\u7F6E\\u3002`)};r(e.timeout,"timeout"),r(e.retries,"retries",!0),e.breaker&&(r(e.breaker.threshold,"breaker.threshold"),r(e.breaker.resetMs,"breaker.resetMs"))}function J(e){for(let r of e){fe(r);let n=d.get(r.name);d.set(r.name,{timeout:G,retries:oe,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??je,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??Ne,state:n?.state??"idle",breakerState:n?.breakerState??{fails:0,openUntil:0},entryInflight:n?.entryInflight??new Map,entryFailCounts:n?.entryFailCounts??new Map,debug:n?.debug??{entry:r.entry,status:"idle",setup:"none"}})}}function pe(e){J([e])}function me(e){f.push(...e),m.clear(),ie()}function T(e,r,n=!1){let o=r.shareScope||"default",t=r.shareKey||e,u=A(o)[t]||{},a=Object.keys(u).filter(i=>!n||r.singleton||u[i].value!==void 0);if(n&&a.length===0)return;let S=r.requiredVersion,g=a.filter(i=>S===void 0||S===!1||x(i,S)),p;if(r.singleton&&a.length>0){let i=a.filter(h=>u[h].loaded);if(p=[...i.length?i:a].sort(I).pop(),!g.includes(p)){let h=u[p],L=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${t}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u5E94\\u7528\\u8981\\u6C42 ${S??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${a.join("\\u3001")}\\uFF1B\\u4E3A\\u4FDD\\u8BC1\\u5168\\u9875\\u53EA\\u4F7F\\u7528\\u4E00\\u4E2A\\u5B9E\\u4F8B\\uFF0C\\u6700\\u7EC8\\u590D\\u7528 ${h.from} \\u63D0\\u4F9B\\u7684 ${p}\\u3002\n\\u5F71\\u54CD\\uFF1A\\u53EF\\u80FD\\u51FA\\u73B0\\u72B6\\u6001\\u4E0D\\u4E00\\u81F4\\u6216\\u8FD0\\u884C\\u9519\\u8BEF\\uFF0C\\u5177\\u4F53\\u53D6\\u51B3\\u4E8E\\u4E24\\u7AEF API \\u662F\\u5426\\u517C\\u5BB9\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u6838\\u5BF9\\u540E\\u8C03\\u6574 shared.requiredVersion\\uFF1B\\u82E5\\u5FC5\\u987B\\u62D2\\u7EDD\\u4E0D\\u517C\\u5BB9\\u7248\\u672C\\uFF0C\\u8BF7\\u542F\\u7528 strictVersion\\u3002`;if(r.strictVersion){let O=new w(E.SHARE_STRICT_VERSION,L,{shareKey:t,requiredVersion:S});throw $({remote:h.from,error:O}),O}let P=`${o}|${t}|${S??"*"}|${p}|${a.join(",")}`;c.has(P)||(c.add(P),console.warn(`[fulgurjs:MFU-010] ${L}`))}}else if(p=[...g].sort(I).pop(),!p){if(r.strictVersion){let i=new w(E.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 ${S}\\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 $({remote:t,error:i}),i}return}return u[p]}function W(e,r,n){let o=r.localVersion;if(!o||n===void 0)return;let t=r.shareScope||"default",s=r.shareKey||e,u=A(t),a=Object.hasOwn(u,s)?u[s]:void 0;if(a&&Object.keys(a).length>0){try{let g=T(e,r);if(g&&g.value===void 0){if(g.version===o)g.value=n,g.loaded=!0;else if(r.singleton&&!g.pendingGet){D(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let p=u[s][o];p.value=n,p.loaded=!0}}}catch{}return}D(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let S=u[s]?.[o];S&&(S.value=n)}async function z(e,r={}){let n=r.shareScope||"default",o=r.shareKey||e,t=A(n)[o]||{},s=y(e,r),u=_.resolveShare?m.get(s):void 0,a=u||T(e,r);if(!a){if(r.fallback){let i=await r.fallback();return W(e,r,i),i}let p=new w(E.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${o}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u4F5C\\u7528\\u57DF "${n}" \\u4E2D\\u6CA1\\u6709\\u7B26\\u5408 ${r.requiredVersion??"\\u4EFB\\u610F\\u7248\\u672C"} \\u8981\\u6C42\\u7684\\u7248\\u672C\\uFF0C\\u4E14\\u672A\\u914D\\u7F6E\\u672C\\u5730\\u526F\\u672C\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728\\u5BBF\\u4E3B\\u6216\\u8FDC\\u7A0B\\u6CE8\\u518C\\u8BE5\\u4F9D\\u8D56\\uFF0C\\u6216\\u4E3A shared \\u914D\\u7F6E\\u53EF\\u7528\\u7684\\u672C\\u5730\\u526F\\u672C\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion});throw $({remote:o,error: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(y(e,r),a),a.value;if(a.loaded=!0,!a.pendingGet)try{a.pendingGet=a.get()}catch(p){a.pendingGet=Promise.reject(p)}let S=a.pendingGet,g;try{g=await S}catch(p){if(a.value!==void 0)return m.set(y(e,r),a),a.value;throw a.loaded=!1,m.get(s)===a&&m.delete(s),p}finally{a.pendingGet===S&&(a.pendingGet=void 0)}return a.value===void 0&&(a.value=g),m.set(y(e,r),a),a.value}function ge(e,r={}){return _.resolveShare?m.get(y(e,r))?.value:T(e,r,!0)?.value}function he(e,r,n,o){W(e,{...r,localVersion:n},o)}function ye(e,r){let n=r.shareScope||"default",o=r.shareKey||e;if(_.resolveShare){let s=y(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:T(e,r),available:Object.values(A(n)[o]||{})});if(a&&typeof a.then=="function")throw Promise.resolve(a).catch(()=>{}),new w(E.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 S=a;if(S){if(S.value!==void 0)return m.set(y(e,r),S),{kind:"ready",value:S.value};if(S.version!==void 0&&S.version===r.localVersion)return{kind:"local"};throw new w(E.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u4E3A "${o}" \\u9009\\u62E9\\u4E86\\u672A\\u5C31\\u7EEA\\u7684 ${S.version??"\\u6761\\u76EE"}\\u3002\n\\u539F\\u56E0\\uFF1A\\u540C\\u6B65\\u6D88\\u8D39\\u4E0D\\u80FD\\u7B49\\u5F85\\u52A0\\u8F7D\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5148\\u52A8\\u6001 loadShare \\u518D\\u5BFC\\u5165\\u6D88\\u8D39\\u8005\\uFF0C\\u6216\\u9009\\u62E9\\u5DF2\\u5C31\\u7EEA\\u5B9E\\u4F8B/\\u672C\\u5730\\u7248\\u672C ${r.localVersion??"\\u672A\\u58F0\\u660E"}\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0})}}let t=T(e,r);if(!t)return{kind:"local"};if(t.value!==void 0)return{kind:"ready",value:t.value};if(t.version!==void 0&&t.version===r.localVersion)return{kind:"local"};if(r.singleton||r.strictVersion&&r.requiredVersion&&(!r.localVersion||!x(r.localVersion,r.requiredVersion))){if(r.strictVersion||t.pendingGet)throw new w(E.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 c.has(s)||(c.add(s),console.warn(`[fulgurjs:MFU-010] \\u5171\\u4EAB\\u5355\\u4F8B "${o}"\\uFF1A\\u4F5C\\u7528\\u57DF\\u4E2D ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version} \\u5C1A\\u672A\\u52A0\\u8F7D\\uFF0C\\u9996\\u4E2A\\u6D88\\u8D39\\u8005\\u4EE5\\u672C\\u5730\\u7248\\u672C ${r.localVersion??""} \\u63A5\\u7BA1\\uFF08\\u540E\\u7EED\\u6D88\\u8D39\\u8005\\u6309\\u5DF2\\u52A0\\u8F7D\\u4F18\\u5148\\u6536\\u655B\\u5230\\u8BE5\\u5B9E\\u4F8B\\uFF09\\u3002`)),{kind:"local"}}return console.warn(`[fulgurjs] \\u5171\\u4EAB "${o}"\\uFF1A\\u975E\\u5355\\u4F8B\\u540C\\u6B65\\u6D88\\u8D39\\u4F7F\\u7528\\u672C\\u5730 ${r.localVersion??""}\\uFF0C\\u8FDC\\u7A0B ${t.version} \\u5C1A\\u672A\\u5C31\\u7EEA\\u3002`),{kind:"local"}}async function Se(e){if(_.resolveShare){for(let{name:r,opts:n}of e){let o=y(r,n);if(m.has(o))continue;let t=T(r,n),s=await _.resolveShare({shareKey:n.shareKey||r,shareScope:n.shareScope||"default",requiredVersion:n.requiredVersion,picked:t,available:Object.values(A(n.shareScope||"default")[n.shareKey||r]||{})})||t;s&&m.set(o,s)}for(let{name:r,opts:n}of e)await z(r,n)}}function Y(e){try{let r=new URL(e,typeof location<"u"?location.href:"http://f.invalid");return r.protocol+"//"+r.host+r.pathname}catch{return String(e).replace(/[?#].*$/,"")}}function Z(e,r,n){return new Promise((o,t)=>{let s=setTimeout(()=>t(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${n}`)),r);e.then(u=>{clearTimeout(s),o(u)},u=>{clearTimeout(s),t(u)})})}let we=e=>new Promise(r=>setTimeout(r,e)),Q=new Set;function K(e,r){if(!e||typeof e.get!="function")throw new Error(`\\u8FDC\\u7A0B\\u5E94\\u7528 "${r.name}" \\u7684 remoteEntry \\u672A\\u5BFC\\u51FA\\u5BB9\\u5668\\u63A5\\u53E3\\u3002\\u8BF7\\u786E\\u8BA4\\u5165\\u53E3\\u5BFC\\u51FA\\u4E86 get()\\uFF0C\\u5E76\\u68C0\\u67E5\\u8BE5\\u5730\\u5740\\u662F\\u5426\\u8FD4\\u56DE\\u6B63\\u786E\\u7684\\u8054\\u90A6\\u5165\\u53E3 JS\\u3002`);if(e.name&&r.name&&e.name!==r.name){let n=`\\u8FDC\\u7A0B\\u5165\\u53E3\\u81EA\\u62A5\\u540D\\u79F0 "${e.name}" \\u4E0E\\u5BBF\\u4E3B\\u914D\\u7F6E\\u540D\\u79F0 "${r.name}" \\u4E0D\\u4E00\\u81F4\\u3002\\u8BF7\\u7EDF\\u4E00\\u4E24\\u4FA7 federation({ name }) \\u4E0E remotes \\u7684\\u540D\\u79F0\\u3002`;if(r.promise){let o=`${r.name}\\u2194${e.name}`;Q.has(o)||(Q.add(o),console.warn(`[fulgurjs] ${n} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`))}else throw Object.assign(new Error(n),{code:E.REMOTE_NAME_MISMATCH})}}async function ee(e,r){let n=r.entryFailCounts.get(e)??0,o=n>0?`${e}${e.includes("?")?"&":"?"}fulgurjs_retry=${n}`:e,t=r.entryInflight.get(e),s=t??import(o);return t||(r.entryInflight.set(e,s),s.catch(()=>{r.entryInflight.delete(e),r.entryFailCounts.set(e,(r.entryFailCounts.get(e)??0)+1)})),Z(s,r.timeout??G,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${Y(e)}`)}async function re(e,r){let n=e.shareScope||"default";if(e.container){let s=C.get(e.container);if(s&&s!==n)throw new w(E.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 w(E.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u8FDE\\u7EED\\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u7194\\u65AD\\u5668\\u5DF2\\u5F00\\u542F\\uFF1B\\u5C06\\u5728 ${new Date(o.openUntil).toISOString()} \\u540E\\u5141\\u8BB8\\u91CD\\u8BD5\\u3002\\u8BF7\\u5148\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u670D\\u52A1\\u548C\\u7F51\\u7EDC\\u3002`,{remote:e.name});throw $({remote:e.name,error:s}),s}e.state="loading",e.debug.status="loading";let t=(async()=>{let s=[];if(e.promise)s.push(async()=>{let i=await Z(e.promise(),e.timeout??G,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),h=typeof i=="string"?await ee(i,e):i;return K(h,e),h});else for(let i of[e.entry,...e.fallback??[]])s.push(async()=>{let h=await ee(i,e);return K(h,e),h});let u,a,S=!1,g=r?.retries??e.retries??oe;for(let i of s){for(let h=0;h<=g;h++){let L=performance.now();try{u=await i(),e.lastLoadMs=Math.round(performance.now()-L),e.debug.lastLoadMs=e.lastLoadMs,S=!0;break}catch(P){if(a=P,P?.code)throw P;h<g&&await we(Math.min(Ce,200*2**h)*(1-Ue*(1-2*Math.random())))}}if(S)break}if(!S||!u){let i=Y(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 w(E.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${i} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${String(a?.message??a)}\n\\u4FEE\\u6CD5\\uFF1A\n${h.join(`\n`)}`,{remote:e.name})}K(u,e);let p=C.get(u);if(p&&p!==n)throw new w(E.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(l),C.set(u,n),e.container=u,e.state="loaded",e.debug.status="loaded",o.fails=0,u})();e.containerPromise=t;try{return await t}catch(s){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=String(s?.message??s),o.fails+=1,o.fails>=e.breakerThreshold&&(o.openUntil=Date.now()+e.breakerResetMs,o.fails=0),s instanceof w)throw $({remote:e.name,error:s}),s;if(s?.code)throw $({remote:e.name,error:s}),s;let u=new w(E.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(s?.message??s)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name});throw $({remote:e.name,error:u}),u}}function q(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:ne(e.slice(r+1))}}function ne(e){return e?e.startsWith(".")?e:`./${e}`:""}async function Ee(e,r){let{remote:n,module:o}=q(e);if(o&&V===n)throw new w(E.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){console.warn("[fulgurjs] beforeLoadRemote \\u89C2\\u6D4B\\u94A9\\u5B50\\u6267\\u884C\\u5931\\u8D25\\uFF1B\\u6A21\\u5757\\u52A0\\u8F7D\\u5C06\\u7EE7\\u7EED\\u3002\\u8BF7\\u68C0\\u67E5\\u8BE5\\u94A9\\u5B50\\uFF1A",i)}let t=d.get(n);if(!t)throw new w(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:n});let s;try{let i=o&&t.manifestUrl?H(e):Promise.resolve();[s]=await Promise.all([re(t,{retries:r?.retries}),i])}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u6B63\\u5728\\u4F7F\\u7528\\u663E\\u5F0F\\u914D\\u7F6E\\u7684 fallbackModule\\uFF1B\\u539F\\u59CB\\u9519\\u8BEF\\uFF1A`,i),$({remote:n,error:i}),await r.fallbackModule();throw i}if(!o)return s;await le(t,s);let u=F(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 S=F(n).pageProviders;S&&S.length>0&&typeof a?.pageProviders=="function"&&a.pageProviders(S);let g=`${n}@${t.shareScope||"default"}#${o}`;b.has(g)||b.set(g,s.get(o).catch(i=>{throw b.delete(g),i instanceof w||i?.code?i:new w(E.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${o}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(i?.message??i)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:o})}));let p;try{p=await b.get(g)}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u6B63\\u5728\\u4F7F\\u7528\\u663E\\u5F0F\\u914D\\u7F6E\\u7684 fallbackModule\\uFF1B\\u539F\\u59CB\\u9519\\u8BEF\\uFF1A`,i),$({remote:n,error:i}),await r.fallbackModule();throw i}try{_.afterLoadRemote?.({remote:n,module:o,module_ns:p})}catch(i){console.warn("[fulgurjs] afterLoadRemote \\u89C2\\u6D4B\\u94A9\\u5B50\\u6267\\u884C\\u5931\\u8D25\\uFF1B\\u5DF2\\u52A0\\u8F7D\\u6A21\\u5757\\u4ECD\\u53EF\\u4F7F\\u7528\\u3002\\u8BF7\\u68C0\\u67E5\\u8BE5\\u94A9\\u5B50\\uFF1A",i)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let i=new w(E.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6A21\\u5757 "${o}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:n,module:o});$({remote:n,error:i}),console.error(i.message)}return p}function Re(e){let r=d.get(e);if(!r)throw new w(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return re(r)}async function H(e,r={}){let{remote:n,module:o}=q(e),t=d.get(n);if(!t)throw new w(E.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=M.get(g);if(i)return i;let h=new Promise(L=>{let P=()=>{g.removeEventListener("load",P),g.removeEventListener("error",O),L()},O=()=>{$({remote:n,error:new w(E.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})}),P()};g.addEventListener("load",P,{once:!0}),g.addEventListener("error",O,{once:!0}),g.sheet&&P()});return M.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"?M.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 L=p==="style"?u(h,g):Promise.resolve();return document.head.appendChild(h),p==="style"&&s==="preload"?L:Promise.resolve()},S=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=v.get(t.manifestUrl);g||(g=fetch(t.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(i=>i.ok?i.json():void 0),v.set(t.manifestUrl,g),g.then(i=>{i||v.delete(t.manifestUrl)},()=>v.delete(t.manifestUrl)));let p=await g;if(p){let i=p.schemaVersion;if(typeof i=="number"&&(!Number.isInteger(i)||i>1)){$({remote:n,error:new w(E.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,L=Array.isArray(h)?h.filter(k=>k&&typeof k=="object").map(k=>[String(k.name??""),k]):h&&typeof h=="object"?Object.entries(h):[],P=o?L.filter(([k,j])=>ne(String(j?.name??k))===o):L,O=[];for(let[,k]of P)if(typeof k?.file=="string"&&await a(S(k.file),"modulepreload"),Array.isArray(k?.css))for(let j of k.css){if(typeof j!="string")continue;let be=a(S(j),"style");s==="preload"&&O.push(be)}await Promise.all(O);return}}await a(t.entry,"modulepreload")}catch(g){$({remote:n,error:new w(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(g?.message??g)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:n})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=l,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,n]of d)e[r]={...n.debug,entry:n.entry};return e},errors:[]}),{shareScopeMap:l,initSharing:de,registerShare:D,registerRemotes:J,registerRemote:pe,registerPlugins:me,loadShare:z,loadShareSync:ye,prepareShares:Se,getLoadedShare:ge,pinLoadedShare:he,loadRemote:Ee,getContainer:Re,preloadRemote:H,parseSpec:q,clearSessionState:ue}}var se=globalThis,R=se.__FULGURJS_RUNTIME__??Ve();se.__FULGURJS_RUNTIME__=R;try{Object.freeze(R)}catch{}var Be=te;function Je(){return R}var We=R.initSharing,ze=R.registerShare,Ye=R.registerRemotes,Ze=R.registerRemote,Qe=R.registerPlugins,er=R.loadShare,rr=R.getLoadedShare,nr=R.prepareShares||(async l=>{for(let{name:d,opts:f}of l)await R.loadShare(d,f)}),tr=R.loadShareSync,or=R.pinLoadedShare,sr=R.loadRemote,ir=R.getContainer,ar=R.preloadRemote,cr=R.parseSpec,lr=R.clearSessionState,ur=R.shareScopeMap;function dr(l){if(l&&typeof l=="object"&&"default"in l){let d=l.default;return d!==void 0?d:l}return l}var fr=R;export{lr as clearSessionState,fr as default,ir as getContainer,rr as getLoadedShare,Je as getRuntime,We as initSharing,sr as loadRemote,er as loadShare,tr as loadShareSync,cr as parseSpec,or as pinLoadedShare,ar as preloadRemote,nr as prepareShares,Qe as registerPlugins,Ze as registerRemote,Ye as registerRemotes,ze as registerShare,R as runtime,ur as shareScopeMap,dr as unwrapDefault,Be as version};\n';
3602
3622
 
3603
3623
  // src/index.ts
3604
3624
  function readRuntimeCode() {
@@ -3615,7 +3635,7 @@ function enumerateCjsExports(packageName, appRoot) {
3615
3635
  if (cached) return cached;
3616
3636
  let names = [];
3617
3637
  try {
3618
- const appRequire = (0, import_node_module3.createRequire)(import_node_path9.default.join(appRoot, "package.json"));
3638
+ const appRequire = (0, import_node_module3.createRequire)(import_node_path10.default.join(appRoot, "package.json"));
3619
3639
  const mod = appRequire(packageName);
3620
3640
  names = Object.keys(mod);
3621
3641
  } catch {
@@ -3733,7 +3753,7 @@ async function resolveSharedImportTarget(item, root) {
3733
3753
  const specifier = item.import;
3734
3754
  if (typeof specifier !== "string") return item.shareKey;
3735
3755
  try {
3736
- const resolved = await this.resolve?.(specifier, import_node_path9.default.join(root, "package.json"), { skipSelf: true });
3756
+ const resolved = await this.resolve?.(specifier, import_node_path10.default.join(root, "package.json"), { skipSelf: true });
3737
3757
  if (resolved?.id) return resolved.id;
3738
3758
  } catch {
3739
3759
  }
@@ -3767,7 +3787,7 @@ function federation(options) {
3767
3787
  enforce: "pre",
3768
3788
  async config(userConfig, env) {
3769
3789
  state.command = env.command;
3770
- const root = import_node_path9.default.resolve(userConfig.root ?? process.cwd());
3790
+ const root = import_node_path10.default.resolve(userConfig.root ?? process.cwd());
3771
3791
  const normalized = normalizeOptions(options, root, env.command);
3772
3792
  state.normalized = normalized;
3773
3793
  state.rolldownBuild = env.command === "build" && Number((readInstalledVersion(root, "vite") ?? "0").split(".")[0]) >= 8;
@@ -4036,7 +4056,7 @@ export { default } from ${JSON.stringify(url)};
4036
4056
  },
4037
4057
  resolveId(source, importer) {
4038
4058
  if (state.normalized && importer && (importer.includes("virtual:fulgurjs-shared:") || importer.includes("virtual:fulgurjs-shared-ns:")) && /^\.\.?\//.test(source) && !source.startsWith("virtual:fulgurjs-")) {
4039
- const resolved = import_node_path9.default.resolve(state.normalized.root, source);
4059
+ const resolved = import_node_path10.default.resolve(state.normalized.root, source);
4040
4060
  return resolved + (source.match(/\?[^/]*$/)?.[0] ?? "");
4041
4061
  }
4042
4062
  let s = source;
@@ -4130,7 +4150,7 @@ export { default } from ${JSON.stringify(url)};
4130
4150
  }
4131
4151
  let importTarget = item.import;
4132
4152
  try {
4133
- const resolvedImport = await this.resolve?.(item.import, import_node_path9.default.join(state.normalized.root, "package.json"), { skipSelf: true });
4153
+ const resolvedImport = await this.resolve?.(item.import, import_node_path10.default.join(state.normalized.root, "package.json"), { skipSelf: true });
4134
4154
  if (resolvedImport?.id) importTarget = resolvedImport.id;
4135
4155
  } catch {
4136
4156
  }
@@ -4240,7 +4260,7 @@ ${code}`, map: null };
4240
4260
  for (const tag of html.match(moduleScriptRe) ?? []) {
4241
4261
  const src = srcRe.exec(tag)?.[1];
4242
4262
  if (!src || src.startsWith("http") || src.startsWith("//")) continue;
4243
- const abs = import_node_path9.default.resolve(state.normalized.root, src.startsWith("/") ? src.slice(1) : src);
4263
+ const abs = import_node_path10.default.resolve(state.normalized.root, src.startsWith("/") ? src.slice(1) : src);
4244
4264
  state.entryAbsPaths.add(abs);
4245
4265
  }
4246
4266
  debugLog("init-entry", { stage: "capture", count: state.entryAbsPaths.size, entries: [...state.entryAbsPaths].map((p) => redactModulePath(p, state.normalized.root)) });
@@ -4250,7 +4270,7 @@ ${code}`, map: null };
4250
4270
  if (!/\btype=["']module["']/.test(tag)) return script;
4251
4271
  const src = srcRe.exec(tag)?.[1];
4252
4272
  if (!src || src.startsWith("http") || src.startsWith("//")) return script;
4253
- const abs = import_node_path9.default.resolve(state.normalized.root, src.startsWith("/") ? src.slice(1) : src);
4273
+ const abs = import_node_path10.default.resolve(state.normalized.root, src.startsWith("/") ? src.slice(1) : src);
4254
4274
  state.bootstrapEntries.add(abs);
4255
4275
  const id = "virtual:fulgurjs-bootstrap:" + encodeURIComponent(abs);
4256
4276
  return tag.replace(/\s+src=["'][^"']+["']/, "") + `import ${JSON.stringify(id)};</script>`;
@@ -4266,7 +4286,7 @@ ${code}`, map: null };
4266
4286
  state.providerEntrySeeds = [];
4267
4287
  providerClosureCache.clear();
4268
4288
  providerClosureBuilt = false;
4269
- const providerRequire = (0, import_node_module3.createRequire)(import_node_path9.default.join(n.root, "package.json"));
4289
+ const providerRequire = (0, import_node_module3.createRequire)(import_node_path10.default.join(n.root, "package.json"));
4270
4290
  for (const item of n.shared) {
4271
4291
  if (item.import === false) continue;
4272
4292
  try {
@@ -4283,7 +4303,7 @@ ${code}`, map: null };
4283
4303
  {
4284
4304
  for (const item of n.shared) {
4285
4305
  if (item.import === false) continue;
4286
- const resolved = await this.resolve(item.import, import_node_path9.default.join(n.root, "index.html"));
4306
+ const resolved = await this.resolve(item.import, import_node_path10.default.join(n.root, "index.html"));
4287
4307
  const file = resolved?.id.replace(/^\0/, "").split("?")[0];
4288
4308
  if (!file) continue;
4289
4309
  const marker = "/node_modules/";
@@ -4301,7 +4321,7 @@ ${code}`, map: null };
4301
4321
  if (state.manualChunkSpecsPending) {
4302
4322
  for (const [group, specifier] of state.manualChunkSpecsPending) {
4303
4323
  try {
4304
- const r = await this.resolve(specifier, import_node_path9.default.join(n.root, "index.html"));
4324
+ const r = await this.resolve(specifier, import_node_path10.default.join(n.root, "index.html"));
4305
4325
  if (r?.id) {
4306
4326
  state.manualChunkGroups.set(r.id, group);
4307
4327
  state.manualChunkGroups.set(r.id.split("?")[0], group);
@@ -4331,7 +4351,7 @@ ${code}`, map: null };
4331
4351
  };
4332
4352
  for (const item of n.shared) {
4333
4353
  if (item.import === false) continue;
4334
- const selfFile = await this.resolve(item.import, import_node_path9.default.join(n.root, "index.html")).then(
4354
+ const selfFile = await this.resolve(item.import, import_node_path10.default.join(n.root, "index.html")).then(
4335
4355
  (r) => r?.id?.split("?")[0] ?? null
4336
4356
  ).catch(() => null);
4337
4357
  for (const alias of item.aliases) {
@@ -4346,7 +4366,7 @@ ${code}`, map: null };
4346
4366
  }
4347
4367
  }
4348
4368
  if (!file) {
4349
- file = await this.resolve(alias, import_node_path9.default.join(n.root, "index.html")).then(
4369
+ file = await this.resolve(alias, import_node_path10.default.join(n.root, "index.html")).then(
4350
4370
  (r) => r?.id?.split("?")[0] ?? null
4351
4371
  ).catch(() => null);
4352
4372
  }
@@ -4369,7 +4389,7 @@ ${code}`, map: null };
4369
4389
  }
4370
4390
  if (n.exposes.length > 0) {
4371
4391
  for (const e of n.exposes) {
4372
- const resolved = await this.resolve(e.import, import_node_path9.default.join(n.root, "index.html"));
4392
+ const resolved = await this.resolve(e.import, import_node_path10.default.join(n.root, "index.html"));
4373
4393
  if (resolved) {
4374
4394
  state.exposeAbsPaths[e.import] = resolved.id.split("?")[0];
4375
4395
  } else {
@@ -4596,7 +4616,7 @@ ${entryChunk.code}`;
4596
4616
  if (n.exposes.length > 0 && n.dts) {
4597
4617
  typesServer = createDevTypesServer(n);
4598
4618
  let regenTimer = null;
4599
- const syncedTypesDir = typeof n.dts === "object" && n.dts.dir ? import_node_path9.default.resolve(n.root, n.dts.dir) : import_node_path9.default.join(n.root, import_node_fs6.default.existsSync(import_node_path9.default.join(n.root, "src")) ? "src/fulgurjs/types" : ".fulgurjs/types");
4619
+ const syncedTypesDir = typeof n.dts === "object" && n.dts.dir ? import_node_path10.default.resolve(n.root, n.dts.dir) : import_node_path10.default.join(n.root, import_node_fs6.default.existsSync(import_node_path10.default.join(n.root, "src")) ? "src/fulgurjs/types" : ".fulgurjs/types");
4600
4620
  const scheduleRegen = (id) => {
4601
4621
  if (!isTypesInputChange(n.root, id, syncedTypesDir)) return;
4602
4622
  if (regenTimer) clearTimeout(regenTimer);
@@ -4663,9 +4683,9 @@ ${entryChunk.code}`;
4663
4683
  if (n.remotes.length > 0 && n.dts && state.command === "serve") {
4664
4684
  server.httpServer?.once("listening", () => {
4665
4685
  const dtsOpt = n.dts === true ? true : n.dts;
4666
- const typesRoot = import_node_path9.default.join(
4686
+ const typesRoot = import_node_path10.default.join(
4667
4687
  n.root,
4668
- dtsOpt === false ? "" : (typeof dtsOpt === "object" ? dtsOpt.dir : void 0) ?? (import_node_fs6.default.existsSync(import_node_path9.default.join(n.root, "src")) ? "src/fulgurjs/types" : ".fulgurjs/types")
4688
+ dtsOpt === false ? "" : (typeof dtsOpt === "object" ? dtsOpt.dir : void 0) ?? (import_node_fs6.default.existsSync(import_node_path10.default.join(n.root, "src")) ? "src/fulgurjs/types" : ".fulgurjs/types")
4669
4689
  );
4670
4690
  try {
4671
4691
  if (import_node_fs6.default.existsSync(typesRoot)) {
@@ -4721,7 +4741,7 @@ ${entryChunk.code}`;
4721
4741
  async transform(code, id) {
4722
4742
  if (!state.normalized) return null;
4723
4743
  const clean = id.split("?")[0];
4724
- const isAppSource = clean.startsWith(state.normalized.root + import_node_path9.default.sep) && !clean.includes(`${import_node_path9.default.sep}node_modules${import_node_path9.default.sep}`) && !clean.includes(`${import_node_path9.default.sep}.vite${import_node_path9.default.sep}`);
4744
+ const isAppSource = clean.startsWith(state.normalized.root + import_node_path10.default.sep) && !clean.includes(`${import_node_path10.default.sep}node_modules${import_node_path10.default.sep}`) && !clean.includes(`${import_node_path10.default.sep}.vite${import_node_path10.default.sep}`);
4725
4745
  const entryRewrite = state.command === "serve" && isAppSource ? await rewriteRuntimeEntryImports(code, isExposeTargetFile(clean, state.normalized.root, state.normalized.exposes)) : null;
4726
4746
  if (entryRewrite !== null) code = entryRewrite;
4727
4747
  if (state.command === "serve" && code.includes("virtual:fulgurjs-runtime") && !code.includes("virtual:fulgurjs-runtime-proxy") && isExposeTargetFile(clean, state.normalized.root, state.normalized.exposes)) {
@@ -4765,7 +4785,7 @@ ${entryChunk.code}`;
4765
4785
  if (!n) return;
4766
4786
  for (const s of n.shared) {
4767
4787
  if (s.import === false) continue;
4768
- void server.pluginContainer.resolveId(s.import, import_node_path9.default.join(n.root, "index.html")).then((r) => {
4788
+ void server.pluginContainer.resolveId(s.import, import_node_path10.default.join(n.root, "index.html")).then((r) => {
4769
4789
  if (r?.id) state.resolvedSharedPaths.set(r.id.split("?")[0], s.configKey);
4770
4790
  }).catch(() => {
4771
4791
  });