@fulgurjs/federation 6.13.0 → 6.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/cli.js +1 -1
- package/dist/index.cjs +201 -94
- package/dist/index.js +201 -94
- package/dist/runtime.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
|
-
import
|
|
2
|
+
import fs8 from "fs";
|
|
3
3
|
import path10 from "path";
|
|
4
|
-
import { createRequire as
|
|
4
|
+
import { createRequire as createRequire4 } from "module";
|
|
5
5
|
|
|
6
6
|
// src/options.ts
|
|
7
7
|
import { createRequire } from "module";
|
|
@@ -9,7 +9,7 @@ import fs from "fs";
|
|
|
9
9
|
import path from "path";
|
|
10
10
|
|
|
11
11
|
// src/version.ts
|
|
12
|
-
var RUNTIME_VERSION = "6.13.
|
|
12
|
+
var RUNTIME_VERSION = "6.13.2";
|
|
13
13
|
|
|
14
14
|
// src/dev-cors.ts
|
|
15
15
|
function normalizeDevCorsOrigins(input) {
|
|
@@ -492,6 +492,8 @@ import { init as initLexer, parse } from "es-module-lexer";
|
|
|
492
492
|
import MagicString from "magic-string";
|
|
493
493
|
import { transform as parseTypeScript } from "esbuild";
|
|
494
494
|
import path2 from "path";
|
|
495
|
+
import fs2 from "fs";
|
|
496
|
+
import { createRequire as createRequire2 } from "module";
|
|
495
497
|
|
|
496
498
|
// src/manifest.ts
|
|
497
499
|
var MANIFEST_SCHEMA_VERSION = 1;
|
|
@@ -1604,6 +1606,12 @@ export { ${nsAs[1]} };`);
|
|
|
1604
1606
|
if (!isImport) {
|
|
1605
1607
|
const inner = clauseRaw.slice(clauseRaw.indexOf("{") + 1, clauseRaw.lastIndexOf("}"));
|
|
1606
1608
|
if (/export\s+\*/.test(clauseRaw) && !clauseRaw.includes("{")) {
|
|
1609
|
+
const names = collectPackageExportNames(spec2, id);
|
|
1610
|
+
if (names && names.length > 0) {
|
|
1611
|
+
const facadeSpec3 = shared2 ? facadeSpecFor(ctx, shared2, names) : remoteFacadeSpecFor(ctx, remote2.name, exposeName2, names);
|
|
1612
|
+
s.overwrite(stmtStart, stmtEnd, `export { ${names.join(", ")} } from ${JSON.stringify(facadeSpec3)}`);
|
|
1613
|
+
continue;
|
|
1614
|
+
}
|
|
1607
1615
|
throw new Error(
|
|
1608
1616
|
`[fulgurjs] \u5171\u4EAB\u6A21\u5757\u4E0D\u652F\u6301 "export * from '${spec2}'"\uFF1AESM \u65E0\u6CD5\u4E3A\u52A8\u6001\u534F\u5546\u7684\u6A21\u5757\u521B\u5EFA\u901A\u914D\u7B26\u5BFC\u51FA\u7ED1\u5B9A\u3002\u8BF7\u6539\u4E3A\u660E\u786E\u5217\u51FA\u540D\u79F0\uFF1A"export { a, b } from '${spec2}'"\u3002`
|
|
1609
1617
|
);
|
|
@@ -1653,13 +1661,102 @@ export { ${nsAs[1]} };`);
|
|
|
1653
1661
|
}
|
|
1654
1662
|
return { code: s.toString(), map: null };
|
|
1655
1663
|
}
|
|
1664
|
+
var packageExportNamesCache = /* @__PURE__ */ new Map();
|
|
1665
|
+
function resolveEsmEntryFrom(spec, fromFile) {
|
|
1666
|
+
try {
|
|
1667
|
+
const req = createRequire2(fromFile);
|
|
1668
|
+
const pkgJsonPath = req.resolve(`${spec}/package.json`);
|
|
1669
|
+
const pkgRoot = path2.dirname(pkgJsonPath);
|
|
1670
|
+
const pkg = JSON.parse(fs2.readFileSync(pkgJsonPath, "utf-8"));
|
|
1671
|
+
const exportsField = pkg.exports?.["."];
|
|
1672
|
+
let entry;
|
|
1673
|
+
if (exportsField && typeof exportsField === "object" && !Array.isArray(exportsField)) {
|
|
1674
|
+
const cond = exportsField;
|
|
1675
|
+
const picked = cond.import ?? cond.module ?? cond.default;
|
|
1676
|
+
if (typeof picked === "string") entry = picked;
|
|
1677
|
+
else if (picked && typeof picked === "object") {
|
|
1678
|
+
const inner = picked;
|
|
1679
|
+
const leaf = inner.default ?? inner.node;
|
|
1680
|
+
if (typeof leaf === "string") entry = leaf;
|
|
1681
|
+
}
|
|
1682
|
+
}
|
|
1683
|
+
if (!entry) entry = pkg.module || pkg.main || "index.js";
|
|
1684
|
+
return path2.resolve(pkgRoot, entry);
|
|
1685
|
+
} catch {
|
|
1686
|
+
return null;
|
|
1687
|
+
}
|
|
1688
|
+
}
|
|
1689
|
+
function resolvePackageEntry(spec, importerFile) {
|
|
1690
|
+
return resolveEsmEntryFrom(spec, importerFile);
|
|
1691
|
+
}
|
|
1692
|
+
function scanEsmNamedExports(file, depth, seen) {
|
|
1693
|
+
const names = /* @__PURE__ */ new Set();
|
|
1694
|
+
const reExports = [];
|
|
1695
|
+
if (seen.has(file) || depth > 4) return { names, reExports };
|
|
1696
|
+
seen.add(file);
|
|
1697
|
+
let code;
|
|
1698
|
+
try {
|
|
1699
|
+
code = fs2.readFileSync(file, "utf-8");
|
|
1700
|
+
} catch {
|
|
1701
|
+
return { names, reExports };
|
|
1702
|
+
}
|
|
1703
|
+
for (const m of code.matchAll(/export\s*\{([^}]*)\}/g)) {
|
|
1704
|
+
for (const part of m[1].split(",")) {
|
|
1705
|
+
const seg = part.trim();
|
|
1706
|
+
if (!seg) continue;
|
|
1707
|
+
const asMatch = seg.match(/^(?:\w+|\$[\w$]+|default)\s+as\s+([\w$]+)$/);
|
|
1708
|
+
if (asMatch) {
|
|
1709
|
+
if (!/^default\s+as\s/.test(seg)) names.add(asMatch[1]);
|
|
1710
|
+
} else if (/^(?:\w+|\$[\w$]+|default)$/.test(seg) && seg !== "default") {
|
|
1711
|
+
names.add(seg);
|
|
1712
|
+
} else if (/^default$/.test(seg)) {
|
|
1713
|
+
}
|
|
1714
|
+
}
|
|
1715
|
+
}
|
|
1716
|
+
for (const m of code.matchAll(/export\s*\*\s*from\s*['"]([^'"]+)['"]/g)) {
|
|
1717
|
+
const spec = m[1];
|
|
1718
|
+
if (spec.startsWith(".")) {
|
|
1719
|
+
reExports.push(path2.resolve(path2.dirname(file), spec));
|
|
1720
|
+
} else {
|
|
1721
|
+
const esmEntry = resolveEsmEntryFrom(spec, file);
|
|
1722
|
+
if (esmEntry) reExports.push(esmEntry);
|
|
1723
|
+
}
|
|
1724
|
+
}
|
|
1725
|
+
for (const m of code.matchAll(/export\s+(?:const|let|var|function|class)\s+([\w$]+)/g)) names.add(m[1]);
|
|
1726
|
+
return { names, reExports };
|
|
1727
|
+
}
|
|
1728
|
+
function collectPackageExportNames(spec, importerFile) {
|
|
1729
|
+
const cacheKey = `${spec}|${importerFile}`;
|
|
1730
|
+
if (packageExportNamesCache.has(cacheKey)) return packageExportNamesCache.get(cacheKey) ?? null;
|
|
1731
|
+
let result = null;
|
|
1732
|
+
const entry = resolvePackageEntry(spec, importerFile);
|
|
1733
|
+
if (entry) {
|
|
1734
|
+
const seen = /* @__PURE__ */ new Set();
|
|
1735
|
+
const all = /* @__PURE__ */ new Set();
|
|
1736
|
+
let queue = [entry];
|
|
1737
|
+
let depth = 0;
|
|
1738
|
+
while (queue.length && depth <= 4) {
|
|
1739
|
+
const next = [];
|
|
1740
|
+
for (const f of queue) {
|
|
1741
|
+
const { names, reExports } = scanEsmNamedExports(f, depth, seen);
|
|
1742
|
+
for (const n of names) all.add(n);
|
|
1743
|
+
next.push(...reExports);
|
|
1744
|
+
}
|
|
1745
|
+
queue = next;
|
|
1746
|
+
depth++;
|
|
1747
|
+
}
|
|
1748
|
+
result = all.size > 0 ? [...all].sort() : null;
|
|
1749
|
+
}
|
|
1750
|
+
packageExportNamesCache.set(cacheKey, result);
|
|
1751
|
+
return result;
|
|
1752
|
+
}
|
|
1656
1753
|
|
|
1657
1754
|
// src/dts-serve.ts
|
|
1658
1755
|
import path5 from "path";
|
|
1659
|
-
import
|
|
1756
|
+
import fs4 from "fs";
|
|
1660
1757
|
|
|
1661
1758
|
// src/dts-generate.ts
|
|
1662
|
-
import
|
|
1759
|
+
import fs3 from "fs";
|
|
1663
1760
|
import path4 from "path";
|
|
1664
1761
|
|
|
1665
1762
|
// src/dts-diagnostics.ts
|
|
@@ -1743,7 +1840,7 @@ if (errors.length) {
|
|
|
1743
1840
|
|
|
1744
1841
|
// src/dts-generate.ts
|
|
1745
1842
|
import crypto from "crypto";
|
|
1746
|
-
import { createRequire as
|
|
1843
|
+
import { createRequire as createRequire3 } from "module";
|
|
1747
1844
|
import { execFile } from "child_process";
|
|
1748
1845
|
|
|
1749
1846
|
// src/dts-shared.ts
|
|
@@ -1832,7 +1929,7 @@ var DTS_FILE_COUNT_MAX = 4e3;
|
|
|
1832
1929
|
|
|
1833
1930
|
// src/dts-generate.ts
|
|
1834
1931
|
function resolveFromRoot(root, pkg) {
|
|
1835
|
-
const req =
|
|
1932
|
+
const req = createRequire3(path4.join(root, "package.json"));
|
|
1836
1933
|
let resolved = null;
|
|
1837
1934
|
for (const spec of [`${pkg}/package.json`, pkg]) {
|
|
1838
1935
|
try {
|
|
@@ -1843,17 +1940,17 @@ function resolveFromRoot(root, pkg) {
|
|
|
1843
1940
|
}
|
|
1844
1941
|
if (!resolved) return null;
|
|
1845
1942
|
let dir = path4.dirname(resolved);
|
|
1846
|
-
for (let i = 0; i < 5 && !
|
|
1943
|
+
for (let i = 0; i < 5 && !fs3.existsSync(path4.join(dir, "package.json")); i++) {
|
|
1847
1944
|
const parent = path4.dirname(dir);
|
|
1848
1945
|
if (parent === dir) return null;
|
|
1849
1946
|
dir = parent;
|
|
1850
1947
|
}
|
|
1851
|
-
return
|
|
1948
|
+
return fs3.existsSync(path4.join(dir, "package.json")) ? dir : null;
|
|
1852
1949
|
}
|
|
1853
1950
|
function installHint(root, pkg) {
|
|
1854
1951
|
const pkgManager = (() => {
|
|
1855
|
-
if (
|
|
1856
|
-
if (
|
|
1952
|
+
if (fs3.existsSync(path4.join(root, "pnpm-lock.yaml"))) return "pnpm";
|
|
1953
|
+
if (fs3.existsSync(path4.join(root, "yarn.lock"))) return "yarn";
|
|
1857
1954
|
return "npm";
|
|
1858
1955
|
})();
|
|
1859
1956
|
const devFlag = pkgManager === "pnpm" ? "-D" : "--save-dev";
|
|
@@ -1901,12 +1998,12 @@ function computeStaticClosure(ts, entryFiles, resolver, root) {
|
|
|
1901
1998
|
closure.add(file);
|
|
1902
1999
|
let text;
|
|
1903
2000
|
try {
|
|
1904
|
-
text =
|
|
2001
|
+
text = fs3.readFileSync(file, "utf8");
|
|
1905
2002
|
} catch {
|
|
1906
2003
|
continue;
|
|
1907
2004
|
}
|
|
1908
2005
|
if (file.endsWith(".vue")) {
|
|
1909
|
-
const req =
|
|
2006
|
+
const req = createRequire3(path4.join(root, "package.json"));
|
|
1910
2007
|
const { parse: parse2 } = req("vue/compiler-sfc");
|
|
1911
2008
|
const { descriptor } = parse2(text);
|
|
1912
2009
|
text = [descriptor.script?.content, descriptor.scriptSetup?.content].filter(Boolean).join("\n");
|
|
@@ -1930,7 +2027,7 @@ import ${JSON.stringify(descriptor.script.src)}`;
|
|
|
1930
2027
|
if (!resolved) {
|
|
1931
2028
|
const base = path4.resolve(path4.dirname(file), spec);
|
|
1932
2029
|
for (const c of [base, `${base}.vue`, `${base}.ts`, `${base}.tsx`, path4.join(base, "index.ts")]) {
|
|
1933
|
-
if (
|
|
2030
|
+
if (fs3.existsSync(c)) {
|
|
1934
2031
|
resolved = c;
|
|
1935
2032
|
break;
|
|
1936
2033
|
}
|
|
@@ -1957,17 +2054,17 @@ function resolveTypesEntries(root, baseCo, diagnostics) {
|
|
|
1957
2054
|
if (raw === void 0) return [];
|
|
1958
2055
|
baseCo.types = [];
|
|
1959
2056
|
if (!Array.isArray(raw)) return [];
|
|
1960
|
-
const req =
|
|
2057
|
+
const req = createRequire3(path4.join(root, "package.json"));
|
|
1961
2058
|
const out = [];
|
|
1962
2059
|
for (const entry of raw) {
|
|
1963
2060
|
if (typeof entry !== "string" || entry.length === 0) continue;
|
|
1964
2061
|
const direct = [path4.resolve(root, `${entry}.d.ts`), path4.resolve(root, entry, "index.d.ts"), path4.resolve(root, "node_modules", `${entry}.d.ts`), path4.resolve(root, "node_modules", entry, "index.d.ts"), path4.resolve(root, "node_modules/@types", entry, "index.d.ts")];
|
|
1965
|
-
let hit = direct.find((c) =>
|
|
2062
|
+
let hit = direct.find((c) => fs3.existsSync(c));
|
|
1966
2063
|
if (!hit && !entry.startsWith(".") && !path4.isAbsolute(entry)) {
|
|
1967
2064
|
try {
|
|
1968
2065
|
const r = req.resolve(entry);
|
|
1969
2066
|
for (const c of [r.replace(/\.js$/, ".d.ts"), `${r}.d.ts`, r]) {
|
|
1970
|
-
if (c.endsWith(".d.ts") &&
|
|
2067
|
+
if (c.endsWith(".d.ts") && fs3.existsSync(c)) {
|
|
1971
2068
|
hit = c;
|
|
1972
2069
|
break;
|
|
1973
2070
|
}
|
|
@@ -1985,7 +2082,7 @@ function hasVueFilesUnderSources(root) {
|
|
|
1985
2082
|
if (budget.left <= 0) return false;
|
|
1986
2083
|
let entries;
|
|
1987
2084
|
try {
|
|
1988
|
-
entries =
|
|
2085
|
+
entries = fs3.readdirSync(dir, { withFileTypes: true });
|
|
1989
2086
|
} catch {
|
|
1990
2087
|
return false;
|
|
1991
2088
|
}
|
|
@@ -1999,7 +2096,7 @@ function hasVueFilesUnderSources(root) {
|
|
|
1999
2096
|
return false;
|
|
2000
2097
|
};
|
|
2001
2098
|
const srcDir = path4.join(root, "src");
|
|
2002
|
-
return scan(
|
|
2099
|
+
return scan(fs3.existsSync(srcDir) ? srcDir : root, { left: 2e3 });
|
|
2003
2100
|
}
|
|
2004
2101
|
function commonDirOf(files) {
|
|
2005
2102
|
if (files.length === 0) return "";
|
|
@@ -2097,7 +2194,7 @@ async function generateTypesBundle(input) {
|
|
|
2097
2194
|
if (!tsPkgDir) {
|
|
2098
2195
|
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")}`] };
|
|
2099
2196
|
}
|
|
2100
|
-
const tsReq =
|
|
2197
|
+
const tsReq = createRequire3(path4.join(tsPkgDir, "package.json"));
|
|
2101
2198
|
const ts = tsReq("typescript");
|
|
2102
2199
|
const ctx = loadTsContext(root, ts, diagnostics);
|
|
2103
2200
|
if (!ctx) return { ok: false, diagnostics };
|
|
@@ -2106,14 +2203,14 @@ async function generateTypesBundle(input) {
|
|
|
2106
2203
|
for (const expose of exposes) {
|
|
2107
2204
|
const raw = expose.import.replace(/^\.?\//, "");
|
|
2108
2205
|
let abs = path4.resolve(root, raw);
|
|
2109
|
-
if (!
|
|
2206
|
+
if (!fs3.existsSync(abs)) {
|
|
2110
2207
|
const viaResolver = resolver(expose.import, path4.join(root, "package.json"));
|
|
2111
2208
|
if (viaResolver && !viaResolver.fromNodeModules) abs = viaResolver.resolved;
|
|
2112
2209
|
}
|
|
2113
2210
|
abs = abs.replace(/\.js$/, ".ts");
|
|
2114
|
-
if (!
|
|
2115
|
-
if (!
|
|
2116
|
-
if (!
|
|
2211
|
+
if (!fs3.existsSync(abs) && fs3.existsSync(`${abs}.ts`)) abs = `${abs}.ts`;
|
|
2212
|
+
if (!fs3.existsSync(abs) && fs3.existsSync(`${abs}.tsx`)) abs = `${abs}.tsx`;
|
|
2213
|
+
if (!fs3.existsSync(abs)) {
|
|
2117
2214
|
diagnostics.push(`\u66B4\u9732\u5165\u53E3 ${expose.name} \u7684\u6E90\u6587\u4EF6\u4E0D\u5B58\u5728\uFF08${expose.import}\uFF09\u3002\u8BF7\u6838\u5BF9 exposes \u914D\u7F6E\u3002`);
|
|
2118
2215
|
continue;
|
|
2119
2216
|
}
|
|
@@ -2139,19 +2236,19 @@ async function generateTypesBundle(input) {
|
|
|
2139
2236
|
};
|
|
2140
2237
|
}
|
|
2141
2238
|
tool = "vue-tsc";
|
|
2142
|
-
const vueTscPkg = JSON.parse(
|
|
2239
|
+
const vueTscPkg = JSON.parse(fs3.readFileSync(path4.join(vueTscDir, "package.json"), "utf8"));
|
|
2143
2240
|
const binRel = vueTscPkg.bin?.["vue-tsc"] ?? vueTscPkg.bin?.["vue-tsc.js"] ?? "bin/vue-tsc.js";
|
|
2144
2241
|
const binPath = path4.resolve(vueTscDir, binRel);
|
|
2145
2242
|
const scopedVueProgram = /^1\./.test(vueTscPkg.version);
|
|
2146
|
-
if (!
|
|
2243
|
+
if (!fs3.existsSync(binPath)) {
|
|
2147
2244
|
return { ok: false, diagnostics: [`vue-tsc \u5165\u53E3\u4E0D\u5B58\u5728\uFF08${binPath}\uFF09\u3002\u8BF7\u91CD\u65B0\u5B89\u88C5 vue-tsc\u3002`] };
|
|
2148
2245
|
}
|
|
2149
2246
|
const cacheDir = input.incrementalDir;
|
|
2150
|
-
if (cacheDir)
|
|
2247
|
+
if (cacheDir) fs3.mkdirSync(cacheDir, { recursive: true });
|
|
2151
2248
|
const tmpCfg = path4.join(root, `.fulgurjs-types-tsconfig-${cacheDir ? path4.basename(cacheDir) : `${process.pid}-${crypto.randomUUID()}`}.json`);
|
|
2152
|
-
const outDir = cacheDir ? path4.join(cacheDir, "emit") :
|
|
2249
|
+
const outDir = cacheDir ? path4.join(cacheDir, "emit") : fs3.mkdtempSync(path4.join(root, "node_modules", ".fulgurjs-types-emit-"));
|
|
2153
2250
|
const clearOutput = () => {
|
|
2154
|
-
if (!cacheDir)
|
|
2251
|
+
if (!cacheDir) fs3.rmSync(outDir, { recursive: true, force: true });
|
|
2155
2252
|
};
|
|
2156
2253
|
const baseCo = { ...rawOptionsWithInherited(ctx) };
|
|
2157
2254
|
delete baseCo.noEmit;
|
|
@@ -2162,7 +2259,7 @@ async function generateTypesBundle(input) {
|
|
|
2162
2259
|
delete baseCo.declarationDir;
|
|
2163
2260
|
delete baseCo.extends;
|
|
2164
2261
|
const resolvedTypeFiles = resolveTypesEntries(root, baseCo, diagnostics);
|
|
2165
|
-
|
|
2262
|
+
fs3.writeFileSync(tmpCfg, JSON.stringify({
|
|
2166
2263
|
...ctx.tsconfigFile ? { extends: ctx.tsconfigFile } : {},
|
|
2167
2264
|
compilerOptions: {
|
|
2168
2265
|
...baseCo,
|
|
@@ -2186,7 +2283,7 @@ async function generateTypesBundle(input) {
|
|
|
2186
2283
|
...ctx.ambientInputs.map((f) => path4.relative(root, f))
|
|
2187
2284
|
]
|
|
2188
2285
|
}));
|
|
2189
|
-
if (process.env.FG_DUMP_TSCFG)
|
|
2286
|
+
if (process.env.FG_DUMP_TSCFG) fs3.writeFileSync(process.env.FG_DUMP_TSCFG, fs3.readFileSync(tmpCfg, "utf8"));
|
|
2190
2287
|
const isOom = (text) => /(^|\n)\s*FATAL ERROR:.*(heap out of memory|Ineffective mark-compacts|Allocation failed)/i.test(text);
|
|
2191
2288
|
const isSystemKilled = (e, out, errText) => !!e && (e.signal != null || /(^|\n)\s*(Killed|-9)\s*(:9)?\s*$/i.test(errText)) && !isOom(errText) && !/error TS\d+/i.test(out + "\n" + errText);
|
|
2192
2289
|
const isTimeoutKill = (e) => !!e && e.killed === true && !/error TS\d+/i.test(String(e.message ?? ""));
|
|
@@ -2218,7 +2315,7 @@ async function generateTypesBundle(input) {
|
|
|
2218
2315
|
});
|
|
2219
2316
|
const heapMarker = cacheDir ? path4.join(cacheDir, "raised-heap") : void 0;
|
|
2220
2317
|
const raisedArgs = [`--max-old-space-size=${process.env.FG_DTS_MAX_OLD_SPACE ?? "8192"}`];
|
|
2221
|
-
const initialArgs = heapMarker &&
|
|
2318
|
+
const initialArgs = heapMarker && fs3.existsSync(heapMarker) ? raisedArgs : [];
|
|
2222
2319
|
let { err, stdout, stderr } = await attempt(initialArgs);
|
|
2223
2320
|
if (signal?.aborted) {
|
|
2224
2321
|
clearOutput();
|
|
@@ -2228,7 +2325,7 @@ async function generateTypesBundle(input) {
|
|
|
2228
2325
|
const raised = process.env.FG_DTS_MAX_OLD_SPACE ?? "8192";
|
|
2229
2326
|
if (initialArgs.length === 0) {
|
|
2230
2327
|
diagnostics.push(`vue-tsc \u58F0\u660E\u751F\u6210\u5728\u9ED8\u8BA4\u5806\u4E0B\u5185\u5B58\u4E0D\u8DB3\uFF08V8 OOM\uFF09\uFF0C\u4EE5 --max-old-space-size=${raised}MB \u91CD\u8BD5\u3002`);
|
|
2231
|
-
if (heapMarker)
|
|
2328
|
+
if (heapMarker) fs3.writeFileSync(heapMarker, "");
|
|
2232
2329
|
({ err, stdout, stderr } = await attempt([`--max-old-space-size=${raised}`]));
|
|
2233
2330
|
}
|
|
2234
2331
|
if (err && isOom(stderr)) {
|
|
@@ -2285,15 +2382,15 @@ ${tail}`);
|
|
|
2285
2382
|
}
|
|
2286
2383
|
} catch {
|
|
2287
2384
|
clearOutput();
|
|
2288
|
-
|
|
2385
|
+
fs3.rmSync(tmpCfg, { force: true });
|
|
2289
2386
|
return { ok: false, diagnostics };
|
|
2290
2387
|
} finally {
|
|
2291
|
-
|
|
2388
|
+
fs3.rmSync(tmpCfg, { force: true });
|
|
2292
2389
|
}
|
|
2293
2390
|
collectEmitted(ts, outDir, rootDir, emitted, closure);
|
|
2294
2391
|
clearOutput();
|
|
2295
2392
|
} else {
|
|
2296
|
-
const outDir =
|
|
2393
|
+
const outDir = fs3.mkdtempSync(path4.join(root, "node_modules", ".fulgurjs-types-emit-"));
|
|
2297
2394
|
const program = ts.createProgram([...entryFiles, ...ctx.ambientInputs, ...resolveTypesEntries(root, ctx.rawOptions, [])], {
|
|
2298
2395
|
...ctx.compilerOptions,
|
|
2299
2396
|
noEmit: false,
|
|
@@ -2313,7 +2410,7 @@ ${tail}`);
|
|
|
2313
2410
|
...program.getDeclarationDiagnostics()
|
|
2314
2411
|
].filter((d) => d.category === ts.DiagnosticCategory.Error).filter((d) => !d.file || closure.has(path4.resolve(d.file.fileName)));
|
|
2315
2412
|
if (errs.length > 0) {
|
|
2316
|
-
|
|
2413
|
+
fs3.rmSync(outDir, { recursive: true, force: true });
|
|
2317
2414
|
diagnostics.push(
|
|
2318
2415
|
`\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`,
|
|
2319
2416
|
...errs.slice(0, 20).map((d) => {
|
|
@@ -2328,15 +2425,15 @@ ${tail}`);
|
|
|
2328
2425
|
if (source.isDeclarationFile || source.fileName.endsWith(".json") || !closure.has(path4.resolve(source.fileName))) continue;
|
|
2329
2426
|
const emitResult = program.emit(source, void 0, void 0, true);
|
|
2330
2427
|
if (emitResult.emitSkipped) {
|
|
2331
|
-
|
|
2428
|
+
fs3.rmSync(outDir, { recursive: true, force: true });
|
|
2332
2429
|
return { ok: false, diagnostics: [`TypeScript \u58F0\u660E emit \u5931\u8D25\uFF08emitSkipped\uFF09\uFF1A${path4.relative(root, source.fileName)}\u3002\u8BF7\u68C0\u67E5 tsconfig \u7F16\u8BD1\u9009\u9879\u3002`] };
|
|
2333
2430
|
}
|
|
2334
2431
|
}
|
|
2335
2432
|
collectEmitted(ts, outDir, rootDir, emitted, closure);
|
|
2336
|
-
|
|
2433
|
+
fs3.rmSync(outDir, { recursive: true, force: true });
|
|
2337
2434
|
}
|
|
2338
2435
|
for (const file of closure) {
|
|
2339
|
-
if (file.endsWith(".d.ts")) emitted.set(file,
|
|
2436
|
+
if (file.endsWith(".d.ts")) emitted.set(file, fs3.readFileSync(file, "utf8"));
|
|
2340
2437
|
}
|
|
2341
2438
|
const jsonFiles = [...closure].filter((file) => file.endsWith(".json"));
|
|
2342
2439
|
if (jsonFiles.length) {
|
|
@@ -2412,27 +2509,27 @@ export default value;
|
|
|
2412
2509
|
return { ok: true, files, index: fullIndex, tool, fileCount: filesDigest ? Object.keys(filesDigest).length : 0, notices: diagnostics };
|
|
2413
2510
|
}
|
|
2414
2511
|
function collectEmitted(ts, outDir, rootDir, out, closure) {
|
|
2415
|
-
const walk = (dir) =>
|
|
2512
|
+
const walk = (dir) => fs3.readdirSync(dir, { withFileTypes: true }).flatMap((d) => {
|
|
2416
2513
|
const p = path4.join(dir, d.name);
|
|
2417
2514
|
return d.isDirectory() ? walk(p) : [p];
|
|
2418
2515
|
});
|
|
2419
|
-
if (!
|
|
2516
|
+
if (!fs3.existsSync(outDir)) return;
|
|
2420
2517
|
for (const file of walk(outDir)) {
|
|
2421
2518
|
if (!file.endsWith(".d.ts")) continue;
|
|
2422
2519
|
const rel = path4.relative(outDir, file);
|
|
2423
2520
|
const srcRel = rel.endsWith(".vue.d.ts") ? rel.replace(/\.d\.ts$/, "") : rel.replace(/\.d\.ts$/, ".ts");
|
|
2424
2521
|
let srcAbs = path4.join(rootDir, srcRel);
|
|
2425
|
-
if (!out.has(srcAbs) && !
|
|
2522
|
+
if (!out.has(srcAbs) && !fs3.existsSync(srcAbs)) {
|
|
2426
2523
|
for (const ext of [".tsx", ".jsx", ".mts", ".cts", ".js"]) {
|
|
2427
2524
|
const candidate = path4.join(rootDir, rel.replace(/\.d\.ts$/, ext));
|
|
2428
|
-
if (
|
|
2525
|
+
if (fs3.existsSync(candidate)) {
|
|
2429
2526
|
srcAbs = candidate;
|
|
2430
2527
|
break;
|
|
2431
2528
|
}
|
|
2432
2529
|
}
|
|
2433
2530
|
}
|
|
2434
2531
|
if (!closure.has(srcAbs)) continue;
|
|
2435
|
-
out.set(srcAbs,
|
|
2532
|
+
out.set(srcAbs, fs3.readFileSync(file, "utf8"));
|
|
2436
2533
|
}
|
|
2437
2534
|
void ts;
|
|
2438
2535
|
}
|
|
@@ -2558,7 +2655,7 @@ function createDevTypesServer(options, hooks = {}) {
|
|
|
2558
2655
|
let lastErrorKey = null;
|
|
2559
2656
|
let incrementalDir;
|
|
2560
2657
|
const clearCache = () => {
|
|
2561
|
-
if (incrementalDir)
|
|
2658
|
+
if (incrementalDir) fs4.rmSync(incrementalDir, { recursive: true, force: true });
|
|
2562
2659
|
incrementalDir = void 0;
|
|
2563
2660
|
};
|
|
2564
2661
|
const publicExposes = options.exposes.filter((e) => !e.internal).map((e) => ({ name: e.name, import: e.import }));
|
|
@@ -2568,8 +2665,8 @@ function createDevTypesServer(options, hooks = {}) {
|
|
|
2568
2665
|
try {
|
|
2569
2666
|
if (!incrementalDir) {
|
|
2570
2667
|
const cacheRoot = path5.join(options.root, "node_modules");
|
|
2571
|
-
|
|
2572
|
-
incrementalDir =
|
|
2668
|
+
fs4.mkdirSync(cacheRoot, { recursive: true });
|
|
2669
|
+
incrementalDir = fs4.mkdtempSync(path5.join(cacheRoot, ".fulgurjs-types-cache-"));
|
|
2573
2670
|
}
|
|
2574
2671
|
result = await generateTypesBundle({
|
|
2575
2672
|
root: options.root,
|
|
@@ -2648,7 +2745,7 @@ ${key}`);
|
|
|
2648
2745
|
}
|
|
2649
2746
|
|
|
2650
2747
|
// src/dts-sync.ts
|
|
2651
|
-
import
|
|
2748
|
+
import fs6 from "fs";
|
|
2652
2749
|
import path7 from "path";
|
|
2653
2750
|
import crypto2 from "crypto";
|
|
2654
2751
|
|
|
@@ -2778,7 +2875,7 @@ function stripAmbientModifiers(text) {
|
|
|
2778
2875
|
}
|
|
2779
2876
|
|
|
2780
2877
|
// src/dts-discovery.ts
|
|
2781
|
-
import
|
|
2878
|
+
import fs5 from "fs";
|
|
2782
2879
|
import path6 from "path";
|
|
2783
2880
|
function stripJsoncForConfig(text) {
|
|
2784
2881
|
let out = "";
|
|
@@ -2819,7 +2916,7 @@ function stripJsoncForConfig(text) {
|
|
|
2819
2916
|
}
|
|
2820
2917
|
function readCfg(file) {
|
|
2821
2918
|
try {
|
|
2822
|
-
const raw = JSON.parse(stripJsoncForConfig(
|
|
2919
|
+
const raw = JSON.parse(stripJsoncForConfig(fs5.readFileSync(file, "utf8")));
|
|
2823
2920
|
const cfg = { file };
|
|
2824
2921
|
for (const key of ["include", "files", "exclude"]) {
|
|
2825
2922
|
const v = raw[key];
|
|
@@ -2859,9 +2956,9 @@ function effectiveCfg(cfg, depth = 0) {
|
|
|
2859
2956
|
function resolveConfigFile(value, declaringFile) {
|
|
2860
2957
|
let candidate = path6.resolve(path6.dirname(declaringFile), value);
|
|
2861
2958
|
if (!candidate.endsWith(".json")) candidate += ".json";
|
|
2862
|
-
if (
|
|
2959
|
+
if (fs5.existsSync(candidate)) return candidate;
|
|
2863
2960
|
const asDir = path6.join(candidate, "tsconfig.json");
|
|
2864
|
-
return
|
|
2961
|
+
return fs5.existsSync(asDir) ? asDir : null;
|
|
2865
2962
|
}
|
|
2866
2963
|
function patternCoversDir(pattern, target, cfgDir) {
|
|
2867
2964
|
const norm = pattern.replace(/^\.\//, "");
|
|
@@ -2878,8 +2975,8 @@ function checkTypesDiscovery(root, typesRoot) {
|
|
|
2878
2975
|
const relTypes = path6.relative(root, typesRoot) || ".";
|
|
2879
2976
|
const configs = [];
|
|
2880
2977
|
let primary = path6.join(root, "tsconfig.json");
|
|
2881
|
-
if (!
|
|
2882
|
-
const candidates =
|
|
2978
|
+
if (!fs5.existsSync(primary)) {
|
|
2979
|
+
const candidates = fs5.existsSync(root) ? fs5.readdirSync(root).filter((f) => /^tsconfig[\w.-]*\.json$/i.test(f)).map((f) => path6.join(root, f)) : [];
|
|
2883
2980
|
if (candidates.length === 0) {
|
|
2884
2981
|
return {
|
|
2885
2982
|
covered: false,
|
|
@@ -2973,7 +3070,7 @@ var METADATA_FILE = "metadata.json";
|
|
|
2973
3070
|
var AMBIENT_FORMAT = 2;
|
|
2974
3071
|
function readMetadata(dir) {
|
|
2975
3072
|
try {
|
|
2976
|
-
const raw = JSON.parse(
|
|
3073
|
+
const raw = JSON.parse(fs6.readFileSync(path7.join(dir, METADATA_FILE), "utf8"));
|
|
2977
3074
|
if (raw.generator !== "@fulgurjs/federation" || typeof raw.revision !== "string" || !Array.isArray(raw.files)) return null;
|
|
2978
3075
|
return raw;
|
|
2979
3076
|
} catch {
|
|
@@ -2983,19 +3080,19 @@ function readMetadata(dir) {
|
|
|
2983
3080
|
function cleanupOwnFiles(dir, meta) {
|
|
2984
3081
|
for (const f of meta.files) {
|
|
2985
3082
|
if (!isSafeBundlePath(f)) continue;
|
|
2986
|
-
|
|
3083
|
+
fs6.rmSync(path7.join(dir, f), { force: true });
|
|
2987
3084
|
}
|
|
2988
|
-
|
|
3085
|
+
fs6.rmSync(path7.join(dir, METADATA_FILE), { force: true });
|
|
2989
3086
|
try {
|
|
2990
|
-
if (
|
|
3087
|
+
if (fs6.readdirSync(dir).length === 0) fs6.rmdirSync(dir);
|
|
2991
3088
|
} catch {
|
|
2992
3089
|
}
|
|
2993
3090
|
}
|
|
2994
3091
|
function sweepStaleStaging(typesRoot, alias) {
|
|
2995
|
-
if (!
|
|
2996
|
-
for (const name of
|
|
3092
|
+
if (!fs6.existsSync(typesRoot)) return;
|
|
3093
|
+
for (const name of fs6.readdirSync(typesRoot)) {
|
|
2997
3094
|
if (name.startsWith(`.fg-staging-${alias}-`) || name.startsWith(`.fg-trash-${alias}-`)) {
|
|
2998
|
-
|
|
3095
|
+
fs6.rmSync(path7.join(typesRoot, name), { recursive: true, force: true });
|
|
2999
3096
|
}
|
|
3000
3097
|
}
|
|
3001
3098
|
}
|
|
@@ -3017,7 +3114,7 @@ async function syncRemoteTypes(input) {
|
|
|
3017
3114
|
}
|
|
3018
3115
|
manifest = parsed.manifest;
|
|
3019
3116
|
} catch (e) {
|
|
3020
|
-
const meta =
|
|
3117
|
+
const meta = fs6.existsSync(dir) ? readMetadata(dir) : null;
|
|
3021
3118
|
return {
|
|
3022
3119
|
status: "failed",
|
|
3023
3120
|
alias,
|
|
@@ -3027,7 +3124,7 @@ async function syncRemoteTypes(input) {
|
|
|
3027
3124
|
}
|
|
3028
3125
|
const types = readManifestTypes(manifest);
|
|
3029
3126
|
if (!types) {
|
|
3030
|
-
const meta =
|
|
3127
|
+
const meta = fs6.existsSync(dir) ? readMetadata(dir) : null;
|
|
3031
3128
|
if (isDevManifest(manifest) && manifest.typesPending === true) {
|
|
3032
3129
|
return {
|
|
3033
3130
|
status: meta ? "stale" : "failed",
|
|
@@ -3047,7 +3144,7 @@ async function syncRemoteTypes(input) {
|
|
|
3047
3144
|
};
|
|
3048
3145
|
}
|
|
3049
3146
|
const indexUrl = new URL(types.index, manifestUrl).toString();
|
|
3050
|
-
const existing =
|
|
3147
|
+
const existing = fs6.existsSync(dir) ? readMetadata(dir) : null;
|
|
3051
3148
|
if (existing && existing.revision === types.revision && existing.ambientFormat === AMBIENT_FORMAT) {
|
|
3052
3149
|
return { status: "unchanged", alias, revision: types.revision, message: `\u8FDC\u7A0B ${alias} \u7C7B\u578B\u5DF2\u662F\u6700\u65B0\uFF08revision ${types.revision}\uFF09\u3002` };
|
|
3053
3150
|
}
|
|
@@ -3106,14 +3203,14 @@ async function syncRemoteTypes(input) {
|
|
|
3106
3203
|
const ambient = buildAmbientDeclarations({ alias, index, readFile: (rel) => indexRaw[rel] ?? "", source });
|
|
3107
3204
|
sweepStaleStaging(typesRoot, alias);
|
|
3108
3205
|
const staging = path7.join(typesRoot, `.fg-staging-${alias}-${process.pid}-${Date.now()}`);
|
|
3109
|
-
|
|
3110
|
-
|
|
3206
|
+
fs6.rmSync(staging, { recursive: true, force: true });
|
|
3207
|
+
fs6.mkdirSync(staging, { recursive: true });
|
|
3111
3208
|
const written = [];
|
|
3112
3209
|
try {
|
|
3113
3210
|
for (const [name, content] of ambient.files) {
|
|
3114
3211
|
const dest = path7.join(staging, name);
|
|
3115
|
-
|
|
3116
|
-
|
|
3212
|
+
fs6.mkdirSync(path7.dirname(dest), { recursive: true });
|
|
3213
|
+
fs6.writeFileSync(dest, content);
|
|
3117
3214
|
written.push(name);
|
|
3118
3215
|
}
|
|
3119
3216
|
const meta = {
|
|
@@ -3126,22 +3223,22 @@ async function syncRemoteTypes(input) {
|
|
|
3126
3223
|
externals: index.externals,
|
|
3127
3224
|
syncedAt: Date.now()
|
|
3128
3225
|
};
|
|
3129
|
-
|
|
3226
|
+
fs6.writeFileSync(path7.join(staging, METADATA_FILE), JSON.stringify(meta, null, 2));
|
|
3130
3227
|
const trash = path7.join(typesRoot, `.fg-trash-${alias}-${Date.now()}`);
|
|
3131
3228
|
let swapped = false;
|
|
3132
|
-
if (
|
|
3133
|
-
|
|
3229
|
+
if (fs6.existsSync(dir)) {
|
|
3230
|
+
fs6.renameSync(dir, trash);
|
|
3134
3231
|
swapped = true;
|
|
3135
3232
|
}
|
|
3136
3233
|
try {
|
|
3137
|
-
|
|
3234
|
+
fs6.renameSync(staging, dir);
|
|
3138
3235
|
} catch (e) {
|
|
3139
|
-
if (swapped)
|
|
3236
|
+
if (swapped) fs6.renameSync(trash, dir);
|
|
3140
3237
|
throw e;
|
|
3141
3238
|
}
|
|
3142
|
-
if (swapped)
|
|
3239
|
+
if (swapped) fs6.rmSync(trash, { recursive: true, force: true });
|
|
3143
3240
|
} catch (e) {
|
|
3144
|
-
|
|
3241
|
+
fs6.rmSync(staging, { recursive: true, force: true });
|
|
3145
3242
|
return { status: "failed", alias, message: `\u8FDC\u7A0B ${alias} \u7684\u7C7B\u578B\u5199\u5165\u5931\u8D25\uFF08${e.message}\uFF09\u3002\u672C\u5730\u58F0\u660E\u4FDD\u6301\u539F\u72B6\u3002` };
|
|
3146
3243
|
}
|
|
3147
3244
|
return {
|
|
@@ -3154,7 +3251,7 @@ async function syncRemoteTypes(input) {
|
|
|
3154
3251
|
}
|
|
3155
3252
|
function removeGeneratedTypes(typesRoot, alias) {
|
|
3156
3253
|
const dir = path7.join(typesRoot, alias);
|
|
3157
|
-
if (!
|
|
3254
|
+
if (!fs6.existsSync(dir)) return false;
|
|
3158
3255
|
const meta = readMetadata(dir);
|
|
3159
3256
|
if (!meta) return false;
|
|
3160
3257
|
cleanupOwnFiles(dir, meta);
|
|
@@ -3215,8 +3312,8 @@ function startRemoteTypesSyncLoop(opts) {
|
|
|
3215
3312
|
let discoveryWarned = false;
|
|
3216
3313
|
const checkDiscoveryOnce = () => {
|
|
3217
3314
|
if (discoveryWarned) return;
|
|
3218
|
-
if (!
|
|
3219
|
-
if (
|
|
3315
|
+
if (!fs6.existsSync(opts.typesRoot)) return;
|
|
3316
|
+
if (fs6.readdirSync(opts.typesRoot).length === 0) return;
|
|
3220
3317
|
discoveryWarned = true;
|
|
3221
3318
|
const d = checkTypesDiscovery(opts.root, opts.typesRoot);
|
|
3222
3319
|
if (!d.covered) warn(`[fulgurjs] ${d.fixHint ?? ""}`);
|
|
@@ -3385,22 +3482,22 @@ function genRemoteSchemaModule(schema) {
|
|
|
3385
3482
|
}
|
|
3386
3483
|
|
|
3387
3484
|
// src/vite-cache.ts
|
|
3388
|
-
import
|
|
3485
|
+
import fs7 from "fs";
|
|
3389
3486
|
import path9 from "path";
|
|
3390
3487
|
function syncViteCacheMarker(root, pluginVersion, log) {
|
|
3391
3488
|
const viteDir = path9.join(root, "node_modules", ".vite");
|
|
3392
3489
|
const marker = path9.join(viteDir, "fulgurjs-version.txt");
|
|
3393
3490
|
try {
|
|
3394
|
-
if (
|
|
3395
|
-
const prev =
|
|
3491
|
+
if (fs7.existsSync(viteDir)) {
|
|
3492
|
+
const prev = fs7.existsSync(marker) ? fs7.readFileSync(marker, "utf8").trim() : "";
|
|
3396
3493
|
if (prev === pluginVersion) return;
|
|
3397
|
-
|
|
3494
|
+
fs7.rmSync(viteDir, { recursive: true, force: true });
|
|
3398
3495
|
log(
|
|
3399
3496
|
`[fulgurjs] \u63D2\u4EF6\u7248\u672C\u53D8\u5316\uFF08${prev || "\u65E0\u8BB0\u5F55"} \u2192 ${pluginVersion}\uFF09\uFF0C\u5DF2\u81EA\u52A8\u6E05\u9664 ${path9.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`
|
|
3400
3497
|
);
|
|
3401
3498
|
}
|
|
3402
|
-
|
|
3403
|
-
|
|
3499
|
+
fs7.mkdirSync(viteDir, { recursive: true });
|
|
3500
|
+
fs7.writeFileSync(marker, pluginVersion);
|
|
3404
3501
|
} catch (e) {
|
|
3405
3502
|
log(
|
|
3406
3503
|
`[fulgurjs] \u81EA\u52A8\u6E05\u7406 .vite \u7F13\u5B58\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u542F\u52A8\uFF1B\u5982\u9047\u8054\u90A6\u6A21\u5757 404 \u8BF7\u624B\u5DE5\u6267\u884C rm -rf ${viteDir}\uFF09\uFF1A${String(e.message ?? e)}`
|
|
@@ -3756,7 +3853,7 @@ function repairRolldownAsyncMarks(code, sourceName) {
|
|
|
3756
3853
|
}
|
|
3757
3854
|
|
|
3758
3855
|
// src/runtime-code.gen.ts
|
|
3759
|
-
var runtime_code_gen_default = 'var Pe=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function U(c){let d=Pe.exec(String(c).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function _e(c,d){if(c.length===0&&d.length===0)return 0;if(c.length===0)return 1;if(d.length===0)return-1;let f=Math.max(c.length,d.length);for(let l=0;l<f;l++){let m=c[l],S=d[l];if(m===void 0)return-1;if(S===void 0)return 1;let b=/^\\d+$/.test(m),P=/^\\d+$/.test(S);if(b&&P){let L=Number(m)-Number(S);if(L!==0)return L}else{if(b!==P)return b?-1:1;if(m!==S)return m<S?-1:1}}return 0}function I(c,d){let f=U(c),l=U(d);return!f||!l?c<d?-1:c>d?1:0:f.major!==l.major?f.major-l.major:f.minor!==l.minor?f.minor-l.minor:f.patch!==l.patch?f.patch-l.patch:_e(f.pre,l.pre)}var $e=/^[a-z]+[+:-]/i;function j(c,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||$e.test(f)?!0:f.split("||").some(l=>ke(c,l.trim()))}function ke(c,d){if(!d||d==="*")return!U(c)?.pre.length;let f=d.split(/\\s+-\\s+/);if(f.length===2){let S=f[0].trim(),b=f[1].trim();return!(!j(c,`>=${S}`)||!j(c,`<=${b}`))}let l=U(c);if(!l)return!1;let m=Oe(d);if(m===null)return!0;for(let S of m)if(!Ie(l,c,S))return!1;return!(l.pre.length>0&&!m.some(S=>S.ver.pre.length>0)&&!m.some(b=>b.ver.major===l.major&&b.ver.minor===l.minor&&b.ver.patch===l.patch))}function Oe(c){let d=[],f=c.trim().split(/\\s+/).filter(Boolean);if(f.length===0)return null;for(let l of f){let m=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(l);if(!m)return null;let S=m[1],b=m[2],P=Me(S,b);if(P===null)return null;d.push(...P)}return d}function Me(c,d){let f=Le(d);if(!f)return null;let{ver:l,partial:m}=f;switch(c){case"^":{let S=Te(l);return S?[{op:">=",ver:l},{op:"<",ver:S}]:null}case"~":{let S=m>=2?{major:l.major,minor:l.minor+1,patch:0,pre:[]}:{major:l.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:l},{op:"<",ver:S}]}case">=":return[{op:">=",ver:l}];case">":return m===1?[{op:">=",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:">",ver:l}];case"<":return m===1?[{op:"<",ver:{major:l.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:l.major,minor:l.minor,patch:0,pre:[]}}]:[{op:"<",ver:l}];case"<=":return[{op:"<=",ver:l}];case"=":case void 0:return m===1?[{op:">=",ver:l},{op:"<",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:l},{op:"<",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:l}];default:return null}}function Te(c){return c.major>0?{major:c.major+1,minor:0,patch:0,pre:[]}:c.minor>0?{major:0,minor:c.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:c.patch+1,pre:[]}}function Le(c){let d=c.replace(/^v/,"").trim();if(!d||d==="*"||d==="x"||d==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=d.split("."),l=[],m=0;for(let P of f.slice(0,3))if(/^\\d+$/.test(P))l.push(Number(P)),m++;else{if(P==="x"||P==="X"||P==="*")break;break}let S=d.split("-"),b=S.length>1?S.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:l[0]??0,minor:l[1]??0,patch:l[2]??0,pre:b},partial:m}}function Ae(c,d){switch(d){case">=":return c>=0;case">":return c>0;case"<":return c<0;case"<=":return c<=0;case"=":return c===0}}function Ie(c,d,f){let l=`${c.major}.${c.minor}.${c.patch}`+(c.pre.length?`-${c.pre.join(".")}`:"");if(f.upper)return!(!(I(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(I(l,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=I(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),S=Ae(m,f.op);return f.ver.pre.length>0&&c.pre.length===0&&(f.op===">"||f.op==="<")?!1:S}var E=class extends Error{code;details;constructor(d,f,l,m){super(`[fulgurjs:${d}] ${f}`,m),this.name="FgError",this.code=d,this.details=l}},R={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014",COMPONENT_EXPORT_INVALID:"MFU-018",VUE_RUNTIME_IDENTITY_MISMATCH:"MFU-019",REMOTE_RENDER_ERROR:"MFU-020"};function te(c){if(typeof c!="object"||c===null)return!1;let d=globalThis,f=d.__FULGURJS_REPORTED_ERRORS__??=new WeakSet;return f.has(c)?!0:(f.add(c),!1)}var oe="6.13.0";var je="__fulgurjsSetup",xe="__FULGURJS_APP_CONFIG__",G=15e3,se=2,Ue=5,Ne=3e4,Ce=4e3,Fe=.2;function Ve(){let c=Object.create(null),d=new Map,f=[],l=new Set,m=new Map,S=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,P=new Map,L=new WeakMap,N=new WeakMap,$={},ae=()=>{for(let e of f)try{e.init?.($)}catch(r){console.warn("[fulgurjs] \\u8FD0\\u884C\\u65F6\\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BE5\\u6269\\u5C55\\u5C06\\u4E0D\\u53EF\\u7528\\uFF1A",e.name,r)}},C=new Map,F,V=e=>{let r=C.get(e);return r||C.set(e,r={}),r},X=()=>globalThis[xe]??{};async function J(e,r,n,o){let t=u=>{if(u instanceof E)return v({remote:e,error:u}),u;let a=new E(R.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${o} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\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});return v({remote:e,error:a}),a};F=e;let s;try{s=r(n)}catch(u){throw t(u)}finally{F=void 0}try{await s}catch(u){throw t(u)}}async function ce(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await H(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default,u=t?.onSession!==void 0||t?.globalComponents!==void 0||t?.pageProviders!==void 0;if(s!==void 0&&typeof s!="function"||!s&&!u)throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${t==null?String(t):typeof s}\\uFF0C\\u4E14\\u6A21\\u5757\\u4E0D\\u6EE1\\u8DB3\\u521D\\u59CB\\u5316\\u58F0\\u660E\\u5951\\u7EA6\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u521D\\u59CB\\u5316\\u51FD\\u6570\\uFF0C\\u6216\\u53EA\\u58F0\\u660E onSession/globalComponents/pageProviders\\uFF1B\\u7A7A\\u6A21\\u5757\\u4E0E\\u975E\\u51FD\\u6570\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u65E0\\u6548\\u3002`,{remote:e.name,module:n});if(t.onSession!==void 0&&typeof t.onSession!="function")throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AonSession \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.onSession}\\uFF0C\\u5E94\\u4E3A\\u51FD\\u6570\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5C06 onSession \\u6539\\u4E3A\\u5177\\u540D\\u5BFC\\u51FA\\u7684\\u51FD\\u6570\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});if(o.setupExports=t,t.globalComponents!==void 0){if(typeof t.globalComponents!="object"||t.globalComponents===null||Array.isArray(t.globalComponents))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AglobalComponents \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${Array.isArray(t.globalComponents)?"array":typeof t.globalComponents}\\uFF0C\\u5E94\\u4E3A\\u5BF9\\u8C61\\uFF08\\u952E=\\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D\\uFF0C\\u503C=\\u7EC4\\u4EF6\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const globalComponents = { \\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D: \\u7EC4\\u4EF6 } \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.globalComponents=t.globalComponents}if(t.pageProviders!==void 0){if(!Array.isArray(t.pageProviders))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1ApageProviders \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.pageProviders}\\uFF0C\\u5E94\\u4E3A\\u6570\\u7EC4\\uFF08\\u6BCF\\u9879=\\u7EC4\\u4EF6\\u6216\\u96F6\\u53C2 loader\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const pageProviders = [AppProvider] \\u6216 [() => import(\'./X\').then((m) => m.AppProvider)] \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.pageProviders=t.pageProviders}s&&await J(e.name,s,{appContext:X(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(t){throw e.debug.setup="failed",t?.code&&v({remote:e.name,error:t}),o.setupExports=void 0,o.globalComponents=void 0,o.pageProviders=void 0,t}}async function le(e,r,n){let o=X(),t=o?.sessionKey;if(typeof t!="string"||t===""){let y=new E(R.SETUP_SESSION_KEY_MISSING,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u58F0\\u660E\\u4E86 onSession\\uFF0C\\u4F46\\u5BBF\\u4E3B\\u5C1A\\u672A\\u63D0\\u4F9B\\u6709\\u6548\\u7684 AppContext.sessionKey\\u3002\n\\u539F\\u56E0\\uFF1A\\u5F53\\u524D\\u503C\\u4E3A ${t===void 0?"\\u7F3A\\u5931":JSON.stringify(t)}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5BBF\\u4E3B\\u6BCF\\u6B21\\u767B\\u5F55\\u6216\\u91CD\\u767B\\u65F6\\u751F\\u6210\\u65B0\\u7684\\u975E\\u654F\\u611F\\u767B\\u5F55\\u4EE3\\u6B21 ID\\uFF0C\\u5E76\\u5728\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u9875\\u9762\\u524D\\u8C03\\u7528 provideAppContext({ ..., sessionKey: \'\\u767B\\u5F55\\u4EE3\\u6B21 ID\' })\\uFF1B\\u4E0D\\u8981\\u4F7F\\u7528 token \\u539F\\u6587\\u3002`,{remote:e.name});throw v({remote:e.name,error:y}),y}if(r.sessionPromise&&r.sessionKey===t)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=t;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),a=(async()=>{await u,!s.signal.aborted&&await J(e.name,n,{appContext:o,sessionKey:t,signal:s.signal},"onSession")})();return r.sessionPromise=a,a.catch(()=>{r.sessionKey===t&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),a}async function ue(e,r){let n=r?.[je];if(typeof n!="string"||n==="")return;let o=V(e.name);o.setupPromise||(o.setupPromise=ce(e,r,n,o).catch(s=>{throw o.setupPromise=void 0,s})),await o.setupPromise;let t=o.setupExports?.onSession;typeof t=="function"&&await le(e,o,t)}function de(){for(let e of C.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let T=e=>c[e]??=Object.create(null);function v(e){if(!te(e.error)){try{$.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}}function fe(e="default"){return T(e),c}function D(e,r,n,o,t={}){let s=T(e||"default"),u=Object.hasOwn(s,r)?s[r]:void 0,a=u&&typeof u=="object"?u:void 0;a||(a=Object.create(null),s[r]=a),!(Object.hasOwn(a,n)&&a[n])&&(a[n]={version:n,get:o,from:t.from??"unknown",eager:!!t.eager,loaded:!!t.loaded})}function pe(e){let r=(n,o,t)=>{if(n===void 0)return;if(!(typeof n=="number"&&(t?Number.isInteger(n)&&n>=0&&n<=10:Number.isFinite(n)&&n>0)))throw new Error(`[fulgurjs] \\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 ${o} \\u914D\\u7F6E\\u65E0\\u6548\\uFF1A\\u5F53\\u524D\\u4E3A ${String(n)}\\uFF0C\\u5E94\\u4E3A${t?" 0 \\u5230 10 \\u7684\\u6574\\u6570":"\\u5927\\u4E8E 0 \\u7684\\u6709\\u9650\\u6570\\u5B57"}\\u3002\\u8BF7\\u4FEE\\u6B63 registerRemote \\u914D\\u7F6E\\u3002`)};r(e.timeout,"timeout"),r(e.retries,"retries",!0),e.breaker&&(r(e.breaker.threshold,"breaker.threshold"),r(e.breaker.resetMs,"breaker.resetMs"))}function B(e){for(let r of e){pe(r);let n=d.get(r.name);d.set(r.name,{timeout:G,retries:se,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??Ue,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??Ne,state:n?.state??"idle",breakerState:n?.breakerState??{fails:0,openUntil:0},entryInflight:n?.entryInflight??new Map,entryFailCounts:n?.entryFailCounts??new Map,debug:n?.debug??{entry:r.entry,status:"idle",setup:"none"}})}}function me(e){B([e])}function ge(e){f.push(...e),m.clear(),ae()}function A(e,r,n=!1){let o=r.shareScope||"default",t=r.shareKey||e,u=T(o)[t]||{},a=Object.keys(u).filter(i=>!n||r.singleton||u[i].value!==void 0);if(n&&a.length===0)return;let y=r.requiredVersion,g=a.filter(i=>y===void 0||y===!1||j(i,y)),p;if(r.singleton&&a.length>0){let i=a.filter(h=>u[h].loaded);if(p=[...i.length?i:a].sort(I).pop(),!g.includes(p)){let h=u[p],O=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${t}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u5E94\\u7528\\u8981\\u6C42 ${y??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${a.join("\\u3001")}\\uFF1B\\u4E3A\\u4FDD\\u8BC1\\u5168\\u9875\\u53EA\\u4F7F\\u7528\\u4E00\\u4E2A\\u5B9E\\u4F8B\\uFF0C\\u6700\\u7EC8\\u590D\\u7528 ${h.from} \\u63D0\\u4F9B\\u7684 ${p}\\u3002\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 M=new E(R.SHARE_STRICT_VERSION,O,{shareKey:t,requiredVersion:y});throw v({remote:h.from,error:M}),M}let _=`${o}|${t}|${y??"*"}|${p}|${a.join(",")}`;l.has(_)||(l.add(_),console.warn(`[fulgurjs:MFU-010] ${O}`))}}else if(p=[...g].sort(I).pop(),!p){if(r.strictVersion){let i=new E(R.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${o}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${t}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${y}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${a.join("\\u3001")||"\\u65E0"}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u4FEE\\u6B63 shared.requiredVersion\\u3002`);throw v({remote:t,error:i}),i}return}return u[p]}function W(e,r,n){let o=r.localVersion;if(!o||n===void 0)return;let t=r.shareScope||"default",s=r.shareKey||e,u=T(t),a=Object.hasOwn(u,s)?u[s]:void 0;if(a&&Object.keys(a).length>0){try{let g=A(e,r);if(g&&g.value===void 0){if(g.version===o)g.value=n,g.loaded=!0;else if(r.singleton&&!g.pendingGet){D(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let p=u[s][o];p.value=n,p.loaded=!0}}}catch{}return}D(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let y=u[s]?.[o];y&&(y.value=n)}async function Y(e,r={}){let n=r.shareScope||"default",o=r.shareKey||e,t=T(n)[o]||{},s=S(e,r),u=$.resolveShare?m.get(s):void 0,a=u||A(e,r);if(!a){if(r.fallback){let i=await r.fallback();return W(e,r,i),i}let p=new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${o}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u4F5C\\u7528\\u57DF "${n}" \\u4E2D\\u6CA1\\u6709\\u7B26\\u5408 ${r.requiredVersion??"\\u4EFB\\u610F\\u7248\\u672C"} \\u8981\\u6C42\\u7684\\u7248\\u672C\\uFF0C\\u4E14\\u672A\\u914D\\u7F6E\\u672C\\u5730\\u526F\\u672C\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728\\u5BBF\\u4E3B\\u6216\\u8FDC\\u7A0B\\u6CE8\\u518C\\u8BE5\\u4F9D\\u8D56\\uFF0C\\u6216\\u4E3A shared \\u914D\\u7F6E\\u53EF\\u7528\\u7684\\u672C\\u5730\\u526F\\u672C\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion});throw v({remote:o,error:p}),p}if($.resolveShare&&!u){let p=await $.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:a,available:Object.values(t)});p&&(a=p),m.set(s,a)}if(a.value!==void 0)return m.set(S(e,r),a),a.value;if(a.loaded=!0,!a.pendingGet)try{a.pendingGet=a.get()}catch(p){a.pendingGet=Promise.reject(p)}let y=a.pendingGet,g;try{g=await y}catch(p){if(a.value!==void 0)return m.set(S(e,r),a),a.value;throw a.loaded=!1,m.get(s)===a&&m.delete(s),p}finally{a.pendingGet===y&&(a.pendingGet=void 0)}return a.value===void 0&&(a.value=g),m.set(S(e,r),a),a.value}function he(e,r={}){return $.resolveShare?m.get(S(e,r))?.value:A(e,r,!0)?.value}function ye(e,r,n,o){W(e,{...r,localVersion:n},o)}function Se(e,r){let n=r.shareScope||"default",o=r.shareKey||e;if($.resolveShare){let s=S(e,r),u=m.get(s);if(u&&u.value!==void 0)return{kind:"ready",value:u.value};let a=u||$.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:A(e,r),available:Object.values(T(n)[o]||{})});if(a&&typeof a.then=="function")throw Promise.resolve(a).catch(()=>{}),new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u5BF9\\u5171\\u4EAB "${o}" \\u8FD4\\u56DE\\u4E86 Promise\\uFF0C\\u4F46\\u8BE5\\u5171\\u4EAB\\u6B63\\u88AB\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u6D88\\u8D39\\uFF08Vite 8 \\u540C\\u6B65\\u534F\\u5546\\u95E8\\u9762\\uFF09\\u3002\n\\u539F\\u56E0\\uFF1A\\u6A21\\u5757\\u6C42\\u503C\\u671F\\u65E0\\u6CD5\\u7B49\\u5F85\\u5F02\\u6B65\\u51B3\\u7B56\\uFF1B\\u9759\\u6001\\u5BFC\\u5165\\u4E0D\\u80FD\\u9759\\u9ED8\\u5FFD\\u7565 hook \\u51B3\\u7B56\\u3002\n\\u4FEE\\u6CD5\\uFF1AVite 8 HTML \\u5165\\u53E3\\u4F1A\\u5148\\u5B8C\\u6210\\u5F02\\u6B65\\u534F\\u5546\\uFF1B\\u5176\\u4ED6\\u5165\\u53E3\\u8BF7\\u5148\\u52A8\\u6001 loadShare \\u5EFA\\u7ACB\\u5FEB\\u7167\\uFF0C\\u518D\\u5BFC\\u5165\\u6D88\\u8D39\\u8005\\uFF0C\\u6216\\u8BA9\\u8BE5\\u952E\\u540C\\u6B65\\u8FD4\\u56DE picked\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let y=a;if(y){if(y.value!==void 0)return m.set(S(e,r),y),{kind:"ready",value:y.value};if(y.version!==void 0&&y.version===r.localVersion)return{kind:"local"};throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u4E3A "${o}" \\u9009\\u62E9\\u4E86\\u672A\\u5C31\\u7EEA\\u7684 ${y.version??"\\u6761\\u76EE"}\\u3002\n\\u539F\\u56E0\\uFF1A\\u540C\\u6B65\\u6D88\\u8D39\\u4E0D\\u80FD\\u7B49\\u5F85\\u52A0\\u8F7D\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5148\\u52A8\\u6001 loadShare \\u518D\\u5BFC\\u5165\\u6D88\\u8D39\\u8005\\uFF0C\\u6216\\u9009\\u62E9\\u5DF2\\u5C31\\u7EEA\\u5B9E\\u4F8B/\\u672C\\u5730\\u7248\\u672C ${r.localVersion??"\\u672A\\u58F0\\u660E"}\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0})}}let t=A(e,r);if(!t)return{kind:"local"};if(t.value!==void 0)return{kind:"ready",value:t.value};if(t.version!==void 0&&t.version===r.localVersion)return{kind:"local"};if(r.singleton||r.strictVersion&&r.requiredVersion&&(!r.localVersion||!j(r.localVersion,r.requiredVersion))){if(r.strictVersion||t.pendingGet)throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB "${o}" \\u9009\\u4E2D\\u4E86 ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version}\\uFF08\\u5C1A\\u672A\\u52A0\\u8F7D\\uFF09\\uFF0C\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u65E0\\u6CD5\\u7B49\\u5F85\\u5176\\u5B9E\\u4F8B\\u5C31\\u7EEA\\u3002\n\\u539F\\u56E0\\uFF1A\\u4E0D\\u80FD\\u6539\\u7528\\u4E0D\\u517C\\u5BB9\\u7684\\u672C\\u5730\\u526F\\u672C\\u6216\\u5206\\u88C2\\u5355\\u4F8B\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u8BA9\\u8BE5\\u5171\\u4EAB\\u7684\\u9996\\u6B21\\u6D88\\u8D39\\u5148\\u7ECF\\u4E00\\u6B21\\u52A8\\u6001 loadShare \\u5B8C\\u6210\\u52A0\\u8F7D\\uFF0C\\u6216\\u5C06\\u672C\\u5E94\\u7528\\u7248\\u672C\\u4E0E\\u4F5C\\u7528\\u57DF\\u63D0\\u4F9B\\u7248\\u672C\\u5BF9\\u9F50\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let s=`${n}|${o}|${t.version}|${r.localVersion}`;return l.has(s)||(l.add(s),console.warn(`[fulgurjs:MFU-010] \\u5171\\u4EAB\\u5355\\u4F8B "${o}"\\uFF1A\\u4F5C\\u7528\\u57DF\\u4E2D ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version} \\u5C1A\\u672A\\u52A0\\u8F7D\\uFF0C\\u9996\\u4E2A\\u6D88\\u8D39\\u8005\\u4EE5\\u672C\\u5730\\u7248\\u672C ${r.localVersion??""} \\u63A5\\u7BA1\\uFF08\\u540E\\u7EED\\u6D88\\u8D39\\u8005\\u6309\\u5DF2\\u52A0\\u8F7D\\u4F18\\u5148\\u6536\\u655B\\u5230\\u8BE5\\u5B9E\\u4F8B\\uFF09\\u3002`)),{kind:"local"}}return console.warn(`[fulgurjs] \\u5171\\u4EAB "${o}"\\uFF1A\\u975E\\u5355\\u4F8B\\u540C\\u6B65\\u6D88\\u8D39\\u4F7F\\u7528\\u672C\\u5730 ${r.localVersion??""}\\uFF0C\\u8FDC\\u7A0B ${t.version} \\u5C1A\\u672A\\u5C31\\u7EEA\\u3002`),{kind:"local"}}async function Ee(e){if($.resolveShare){for(let{name:r,opts:n}of e){let o=S(r,n);if(m.has(o))continue;let t=A(r,n),s=await $.resolveShare({shareKey:n.shareKey||r,shareScope:n.shareScope||"default",requiredVersion:n.requiredVersion,picked:t,available:Object.values(T(n.shareScope||"default")[n.shareKey||r]||{})})||t;s&&m.set(o,s)}for(let{name:r,opts:n}of e)await Y(r,n)}}function z(e){try{let r=new URL(e,typeof location<"u"?location.href:"http://f.invalid");return r.protocol+"//"+r.host+r.pathname}catch{return String(e).replace(/[?#].*$/,"")}}function Z(e,r,n){return new Promise((o,t)=>{let s=setTimeout(()=>t(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${n}`)),r);e.then(u=>{clearTimeout(s),o(u)},u=>{clearTimeout(s),t(u)})})}let Re=e=>new Promise(r=>setTimeout(r,e)),Q=new Set;function K(e,r){if(!e||typeof e.get!="function")throw new Error(`\\u8FDC\\u7A0B\\u5E94\\u7528 "${r.name}" \\u7684 remoteEntry \\u672A\\u5BFC\\u51FA\\u5BB9\\u5668\\u63A5\\u53E3\\u3002\\u8BF7\\u786E\\u8BA4\\u5165\\u53E3\\u5BFC\\u51FA\\u4E86 get()\\uFF0C\\u5E76\\u68C0\\u67E5\\u8BE5\\u5730\\u5740\\u662F\\u5426\\u8FD4\\u56DE\\u6B63\\u786E\\u7684\\u8054\\u90A6\\u5165\\u53E3 JS\\u3002`);if(e.name&&r.name&&e.name!==r.name){let n=`\\u8FDC\\u7A0B\\u5165\\u53E3\\u81EA\\u62A5\\u540D\\u79F0 "${e.name}" \\u4E0E\\u5BBF\\u4E3B\\u914D\\u7F6E\\u540D\\u79F0 "${r.name}" \\u4E0D\\u4E00\\u81F4\\u3002\\u8BF7\\u7EDF\\u4E00\\u4E24\\u4FA7 federation({ name }) \\u4E0E remotes \\u7684\\u540D\\u79F0\\u3002`;if(r.promise){let o=`${r.name}\\u2194${e.name}`;Q.has(o)||(Q.add(o),console.warn(`[fulgurjs] ${n} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`))}else throw Object.assign(new Error(n),{code:R.REMOTE_NAME_MISMATCH})}}async function ee(e,r){let n=r.entryFailCounts.get(e)??0,o=n>0?`${e}${e.includes("?")?"&":"?"}fulgurjs_retry=${n}`:e,t=r.entryInflight.get(e),s=t??import(o);return t||(r.entryInflight.set(e,s),s.catch(()=>{r.entryInflight.delete(e),r.entryFailCounts.set(e,(r.entryFailCounts.get(e)??0)+1)})),Z(s,r.timeout??G,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${z(e)}`)}async function re(e,r){let n=e.shareScope||"default";if(e.container){let s=N.get(e.container);if(s&&s!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${s}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return e.container}if(e.containerPromise)return e.containerPromise;let o=e.breakerState;if(o.openUntil>Date.now()){let s=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u8FDE\\u7EED\\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u7194\\u65AD\\u5668\\u5DF2\\u5F00\\u542F\\uFF1B\\u5C06\\u5728 ${new Date(o.openUntil).toISOString()} \\u540E\\u5141\\u8BB8\\u91CD\\u8BD5\\u3002\\u8BF7\\u5148\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u670D\\u52A1\\u548C\\u7F51\\u7EDC\\u3002`,{remote:e.name,stage:"container"});throw v({remote:e.name,error:s}),s}e.state="loading",e.debug.status="loading";let t=(async()=>{let s=[];if(e.promise)s.push(async()=>{let i=await Z(e.promise(),e.timeout??G,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),h=typeof i=="string"?await ee(i,e):i;return K(h,e),h});else for(let i of[e.entry,...e.fallback??[]])s.push(async()=>{let h=await ee(i,e);return K(h,e),h});let u,a,y=!1,g=r?.retries??e.retries??se;for(let i of s){for(let h=0;h<=g;h++){let O=performance.now();try{u=await i(),e.lastLoadMs=Math.round(performance.now()-O),e.debug.lastLoadMs=e.lastLoadMs,y=!0;break}catch(_){if(a=_,_?.code)throw _;h<g&&await Re(Math.min(Ce,200*2**h)*(1-Fe*(1-2*Math.random())))}}if(y)break}if(!y||!u){let i=z(e.entry),h=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),h.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),h.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),h.push("2. \\u68C0\\u67E5 Nginx/CDN \\u7684\\u5165\\u53E3\\u8DEF\\u5F84\\u6620\\u5C04\\uFF1B\\u8BE5\\u5730\\u5740\\u4E0D\\u80FD\\u56DE\\u9000\\u5230 index.html\\u3002")),new E(R.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${i} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${String(a?.message??a)}\n\\u4FEE\\u6CD5\\uFF1A\n${h.join(`\n`)}`,{remote:e.name,stage:"container"},{cause:a})}K(u,e);let p=N.get(u);if(p&&p!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${p}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof u.init=="function"&&await u.init(c),N.set(u,n),e.container=u,e.state="loaded",e.debug.status="loaded",o.fails=0,u})();e.containerPromise=t;try{return await t}catch(s){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=String(s?.message??s),o.fails+=1,o.fails>=e.breakerThreshold&&(o.openUntil=Date.now()+e.breakerResetMs,o.fails=0),s instanceof E)throw v({remote:e.name,error:s}),s;if(s?.code)throw v({remote:e.name,error:s}),s;let u=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(s?.message??s)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name,stage:"container"},{cause:s});throw v({remote:e.name,error:u}),u}}function q(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:ne(e.slice(r+1))}}function ne(e){return e?e.startsWith(".")?e:`./${e}`:""}async function we(e,r){let{remote:n,module:o}=q(e);if(o&&F===n)throw new E(R.SETUP_RECURSION,`\\u73B0\\u8C61\\uFF1A\\u52A0\\u8F7D "${e}" \\u65F6\\uFF0C\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 setup/onSession \\u53C8\\u540C\\u6B65\\u52A0\\u8F7D\\u4E86\\u81EA\\u8EAB\\u6A21\\u5757\\uFF0C\\u5F62\\u6210\\u5FAA\\u73AF\\u7B49\\u5F85\\u3002\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 E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:n});let s;try{let i=o&&t.manifestUrl?H(e):Promise.resolve();[s]=await Promise.all([re(t,{retries:r?.retries}),i])}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u6B63\\u5728\\u4F7F\\u7528\\u663E\\u5F0F\\u914D\\u7F6E\\u7684 fallbackModule\\uFF1B\\u539F\\u59CB\\u9519\\u8BEF\\uFF1A`,i),v({remote:n,error:i}),await r.fallbackModule();throw i}if(!o)return s;await ue(t,s);let u=V(n).globalComponents,a=r?.consumerApp;if(u&&a&&typeof a.component=="function")for(let i of Object.keys(u))a.component(i,u[i]);let y=V(n).pageProviders;y&&y.length>0&&typeof a?.pageProviders=="function"&&a.pageProviders(y);let g=`${n}@${t.shareScope||"default"}#${o}`;b.has(g)||b.set(g,s.get(o).catch(i=>{if(b.delete(g),i instanceof E||i?.code)throw v({remote:n,error:i}),i;let h=new E(R.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${o}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(i?.message??i)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:o,stage:"expose"},{cause:i});throw v({remote:n,error:h}),h}));let p;try{p=await b.get(g)}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u6B63\\u5728\\u4F7F\\u7528\\u663E\\u5F0F\\u914D\\u7F6E\\u7684 fallbackModule\\uFF1B\\u539F\\u59CB\\u9519\\u8BEF\\uFF1A`,i),v({remote:n,error:i}),await r.fallbackModule();throw i}try{$.afterLoadRemote?.({remote:n,module:o,module_ns:p})}catch(i){console.warn("[fulgurjs] afterLoadRemote \\u89C2\\u6D4B\\u94A9\\u5B50\\u6267\\u884C\\u5931\\u8D25\\uFF1B\\u5DF2\\u52A0\\u8F7D\\u6A21\\u5757\\u4ECD\\u53EF\\u4F7F\\u7528\\u3002\\u8BF7\\u68C0\\u67E5\\u8BE5\\u94A9\\u5B50\\uFF1A",i)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let i=new E(R.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6A21\\u5757 "${o}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:n,module:o});v({remote:n,error:i}),console.error(i.message)}return p}function be(e){let r=d.get(e);if(!r)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return re(r)}async function H(e,r={}){let{remote:n,module:o}=q(e),t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:n});let s=r.mode??"preload",u=(g,p)=>{if(g.sheet)return Promise.resolve();let i=L.get(g);if(i)return i;let h=new Promise(O=>{let _=()=>{g.removeEventListener("load",_),g.removeEventListener("error",M),O()},M=()=>{v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${p}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:n})}),_()};g.addEventListener("load",_,{once:!0}),g.addEventListener("error",M,{once:!0}),g.sheet&&_()});return L.set(g,h),h},a=(g,p)=>{if(typeof document>"u")return Promise.resolve();let i=document.querySelector(`link[href="${g}"]`);if(i)return p==="style"&&s==="preload"?L.get(i)??Promise.resolve():Promise.resolve();let h=document.createElement("link");h.rel=p==="style"?"stylesheet":"modulepreload",h.href=g,s==="prefetch"&&(h.fetchPriority="low");let O=p==="style"?u(h,g):Promise.resolve();return document.head.appendChild(h),p==="style"&&s==="preload"?O:Promise.resolve()},y=g=>{let p=typeof document<"u"?document.baseURI:void 0,i=new URL(t.entry,p||"http://fulgurjs.invalid/");return!i.pathname.endsWith("/")&&!i.pathname.split("/").pop().includes(".")&&(i.pathname+="/"),new URL(g,i).href};try{if(t.manifestUrl){let g=P.get(t.manifestUrl);g||(g=fetch(t.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(i=>i.ok?i.json():void 0),P.set(t.manifestUrl,g),g.then(i=>{i||P.delete(t.manifestUrl)},()=>P.delete(t.manifestUrl)));let p=await g;if(p){let i=p.schemaVersion;if(typeof i=="number"&&(!Number.isInteger(i)||i>1)){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(i)}\\uFF0C\\u5F53\\u524D\\u4EC5\\u652F\\u6301\\u7248\\u672C 1\\u3002\\u8BF7\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u548C\\u8FDC\\u7A0B\\u7684\\u63D2\\u4EF6\\u7248\\u672C\\u3002`,{remote:n})}),await a(t.entry,"modulepreload");return}await a(t.entry,"modulepreload");let h=p.exposes,O=Array.isArray(h)?h.filter(k=>k&&typeof k=="object").map(k=>[String(k.name??""),k]):h&&typeof h=="object"?Object.entries(h):[],_=o?O.filter(([k,x])=>ne(String(x?.name??k))===o):O,M=[];for(let[,k]of _)if(typeof k?.file=="string"&&await a(y(k.file),"modulepreload"),Array.isArray(k?.css))for(let x of k.css){if(typeof x!="string")continue;let ve=a(y(x),"style");s==="preload"&&M.push(ve)}await Promise.all(M);return}}await a(t.entry,"modulepreload")}catch(g){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(g?.message??g)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:n})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=c,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,n]of d)e[r]={...n.debug,entry:n.entry};return e},errors:[]}),{shareScopeMap:c,initSharing:fe,registerShare:D,registerRemotes:B,registerRemote:me,registerPlugins:ge,loadShare:Y,loadShareSync:Se,prepareShares:Ee,getLoadedShare:he,pinLoadedShare:ye,loadRemote:we,getContainer:be,preloadRemote:H,parseSpec:q,clearSessionState:de,reportRemoteError:e=>{v(e)}}}var ie=globalThis,w=ie.__FULGURJS_RUNTIME__??Ve();ie.__FULGURJS_RUNTIME__=w;try{Object.freeze(w)}catch{}var Be=oe;function We(){return w}var Ye=w.initSharing,ze=w.registerShare,Ze=w.registerRemotes,Qe=w.registerRemote,er=w.registerPlugins,rr=w.loadShare,nr=w.getLoadedShare,tr=w.prepareShares||(async c=>{for(let{name:d,opts:f}of c)await w.loadShare(d,f)}),or=w.loadShareSync,sr=w.pinLoadedShare,ir=w.loadRemote,ar=w.getContainer,cr=w.preloadRemote,lr=w.parseSpec,ur=w.clearSessionState,dr=w.shareScopeMap;function fr(c){if(c&&typeof c=="object"&&"default"in c){let d=c.default;return d!==void 0?d:c}return c}var pr=w;export{ur as clearSessionState,pr as default,ar as getContainer,nr as getLoadedShare,We as getRuntime,Ye as initSharing,ir as loadRemote,rr as loadShare,or as loadShareSync,lr as parseSpec,sr as pinLoadedShare,cr as preloadRemote,tr as prepareShares,er as registerPlugins,Qe as registerRemote,Ze as registerRemotes,ze as registerShare,w as runtime,dr as shareScopeMap,fr as unwrapDefault,Be as version};\n';
|
|
3856
|
+
var runtime_code_gen_default = 'var Pe=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function U(c){let d=Pe.exec(String(c).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function _e(c,d){if(c.length===0&&d.length===0)return 0;if(c.length===0)return 1;if(d.length===0)return-1;let f=Math.max(c.length,d.length);for(let l=0;l<f;l++){let m=c[l],S=d[l];if(m===void 0)return-1;if(S===void 0)return 1;let b=/^\\d+$/.test(m),P=/^\\d+$/.test(S);if(b&&P){let L=Number(m)-Number(S);if(L!==0)return L}else{if(b!==P)return b?-1:1;if(m!==S)return m<S?-1:1}}return 0}function I(c,d){let f=U(c),l=U(d);return!f||!l?c<d?-1:c>d?1:0:f.major!==l.major?f.major-l.major:f.minor!==l.minor?f.minor-l.minor:f.patch!==l.patch?f.patch-l.patch:_e(f.pre,l.pre)}var $e=/^[a-z]+[+:-]/i;function j(c,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||$e.test(f)?!0:f.split("||").some(l=>ke(c,l.trim()))}function ke(c,d){if(!d||d==="*")return!U(c)?.pre.length;let f=d.split(/\\s+-\\s+/);if(f.length===2){let S=f[0].trim(),b=f[1].trim();return!(!j(c,`>=${S}`)||!j(c,`<=${b}`))}let l=U(c);if(!l)return!1;let m=Oe(d);if(m===null)return!0;for(let S of m)if(!Ie(l,c,S))return!1;return!(l.pre.length>0&&!m.some(S=>S.ver.pre.length>0)&&!m.some(b=>b.ver.major===l.major&&b.ver.minor===l.minor&&b.ver.patch===l.patch))}function Oe(c){let d=[],f=c.trim().split(/\\s+/).filter(Boolean);if(f.length===0)return null;for(let l of f){let m=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(l);if(!m)return null;let S=m[1],b=m[2],P=Me(S,b);if(P===null)return null;d.push(...P)}return d}function Me(c,d){let f=Le(d);if(!f)return null;let{ver:l,partial:m}=f;switch(c){case"^":{let S=Te(l);return S?[{op:">=",ver:l},{op:"<",ver:S}]:null}case"~":{let S=m>=2?{major:l.major,minor:l.minor+1,patch:0,pre:[]}:{major:l.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:l},{op:"<",ver:S}]}case">=":return[{op:">=",ver:l}];case">":return m===1?[{op:">=",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:">",ver:l}];case"<":return m===1?[{op:"<",ver:{major:l.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:l.major,minor:l.minor,patch:0,pre:[]}}]:[{op:"<",ver:l}];case"<=":return[{op:"<=",ver:l}];case"=":case void 0:return m===1?[{op:">=",ver:l},{op:"<",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:l},{op:"<",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:l}];default:return null}}function Te(c){return c.major>0?{major:c.major+1,minor:0,patch:0,pre:[]}:c.minor>0?{major:0,minor:c.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:c.patch+1,pre:[]}}function Le(c){let d=c.replace(/^v/,"").trim();if(!d||d==="*"||d==="x"||d==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=d.split("."),l=[],m=0;for(let P of f.slice(0,3))if(/^\\d+$/.test(P))l.push(Number(P)),m++;else{if(P==="x"||P==="X"||P==="*")break;break}let S=d.split("-"),b=S.length>1?S.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:l[0]??0,minor:l[1]??0,patch:l[2]??0,pre:b},partial:m}}function Ae(c,d){switch(d){case">=":return c>=0;case">":return c>0;case"<":return c<0;case"<=":return c<=0;case"=":return c===0}}function Ie(c,d,f){let l=`${c.major}.${c.minor}.${c.patch}`+(c.pre.length?`-${c.pre.join(".")}`:"");if(f.upper)return!(!(I(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(I(l,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=I(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),S=Ae(m,f.op);return f.ver.pre.length>0&&c.pre.length===0&&(f.op===">"||f.op==="<")?!1:S}var E=class extends Error{code;details;constructor(d,f,l,m){super(`[fulgurjs:${d}] ${f}`,m),this.name="FgError",this.code=d,this.details=l}},R={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014",COMPONENT_EXPORT_INVALID:"MFU-018",VUE_RUNTIME_IDENTITY_MISMATCH:"MFU-019",REMOTE_RENDER_ERROR:"MFU-020"};function te(c){if(typeof c!="object"||c===null)return!1;let d=globalThis,f=d.__FULGURJS_REPORTED_ERRORS__??=new WeakSet;return f.has(c)?!0:(f.add(c),!1)}var oe="6.13.2";var je="__fulgurjsSetup",xe="__FULGURJS_APP_CONFIG__",G=15e3,se=2,Ue=5,Ne=3e4,Ce=4e3,Fe=.2;function Ve(){let c=Object.create(null),d=new Map,f=[],l=new Set,m=new Map,S=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,P=new Map,L=new WeakMap,N=new WeakMap,$={},ae=()=>{for(let e of f)try{e.init?.($)}catch(r){console.warn("[fulgurjs] \\u8FD0\\u884C\\u65F6\\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BE5\\u6269\\u5C55\\u5C06\\u4E0D\\u53EF\\u7528\\uFF1A",e.name,r)}},C=new Map,F,V=e=>{let r=C.get(e);return r||C.set(e,r={}),r},X=()=>globalThis[xe]??{};async function J(e,r,n,o){let t=u=>{if(u instanceof E)return v({remote:e,error:u}),u;let a=new E(R.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${o} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\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});return v({remote:e,error:a}),a};F=e;let s;try{s=r(n)}catch(u){throw t(u)}finally{F=void 0}try{await s}catch(u){throw t(u)}}async function ce(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await H(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default,u=t?.onSession!==void 0||t?.globalComponents!==void 0||t?.pageProviders!==void 0;if(s!==void 0&&typeof s!="function"||!s&&!u)throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${t==null?String(t):typeof s}\\uFF0C\\u4E14\\u6A21\\u5757\\u4E0D\\u6EE1\\u8DB3\\u521D\\u59CB\\u5316\\u58F0\\u660E\\u5951\\u7EA6\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u521D\\u59CB\\u5316\\u51FD\\u6570\\uFF0C\\u6216\\u53EA\\u58F0\\u660E onSession/globalComponents/pageProviders\\uFF1B\\u7A7A\\u6A21\\u5757\\u4E0E\\u975E\\u51FD\\u6570\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u65E0\\u6548\\u3002`,{remote:e.name,module:n});if(t.onSession!==void 0&&typeof t.onSession!="function")throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AonSession \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.onSession}\\uFF0C\\u5E94\\u4E3A\\u51FD\\u6570\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5C06 onSession \\u6539\\u4E3A\\u5177\\u540D\\u5BFC\\u51FA\\u7684\\u51FD\\u6570\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});if(o.setupExports=t,t.globalComponents!==void 0){if(typeof t.globalComponents!="object"||t.globalComponents===null||Array.isArray(t.globalComponents))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AglobalComponents \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${Array.isArray(t.globalComponents)?"array":typeof t.globalComponents}\\uFF0C\\u5E94\\u4E3A\\u5BF9\\u8C61\\uFF08\\u952E=\\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D\\uFF0C\\u503C=\\u7EC4\\u4EF6\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const globalComponents = { \\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D: \\u7EC4\\u4EF6 } \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.globalComponents=t.globalComponents}if(t.pageProviders!==void 0){if(!Array.isArray(t.pageProviders))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1ApageProviders \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.pageProviders}\\uFF0C\\u5E94\\u4E3A\\u6570\\u7EC4\\uFF08\\u6BCF\\u9879=\\u7EC4\\u4EF6\\u6216\\u96F6\\u53C2 loader\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const pageProviders = [AppProvider] \\u6216 [() => import(\'./X\').then((m) => m.AppProvider)] \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.pageProviders=t.pageProviders}s&&await J(e.name,s,{appContext:X(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(t){throw e.debug.setup="failed",t?.code&&v({remote:e.name,error:t}),o.setupExports=void 0,o.globalComponents=void 0,o.pageProviders=void 0,t}}async function le(e,r,n){let o=X(),t=o?.sessionKey;if(typeof t!="string"||t===""){let y=new E(R.SETUP_SESSION_KEY_MISSING,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u58F0\\u660E\\u4E86 onSession\\uFF0C\\u4F46\\u5BBF\\u4E3B\\u5C1A\\u672A\\u63D0\\u4F9B\\u6709\\u6548\\u7684 AppContext.sessionKey\\u3002\n\\u539F\\u56E0\\uFF1A\\u5F53\\u524D\\u503C\\u4E3A ${t===void 0?"\\u7F3A\\u5931":JSON.stringify(t)}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5BBF\\u4E3B\\u6BCF\\u6B21\\u767B\\u5F55\\u6216\\u91CD\\u767B\\u65F6\\u751F\\u6210\\u65B0\\u7684\\u975E\\u654F\\u611F\\u767B\\u5F55\\u4EE3\\u6B21 ID\\uFF0C\\u5E76\\u5728\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u9875\\u9762\\u524D\\u8C03\\u7528 provideAppContext({ ..., sessionKey: \'\\u767B\\u5F55\\u4EE3\\u6B21 ID\' })\\uFF1B\\u4E0D\\u8981\\u4F7F\\u7528 token \\u539F\\u6587\\u3002`,{remote:e.name});throw v({remote:e.name,error:y}),y}if(r.sessionPromise&&r.sessionKey===t)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=t;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),a=(async()=>{await u,!s.signal.aborted&&await J(e.name,n,{appContext:o,sessionKey:t,signal:s.signal},"onSession")})();return r.sessionPromise=a,a.catch(()=>{r.sessionKey===t&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),a}async function ue(e,r){let n=r?.[je];if(typeof n!="string"||n==="")return;let o=V(e.name);o.setupPromise||(o.setupPromise=ce(e,r,n,o).catch(s=>{throw o.setupPromise=void 0,s})),await o.setupPromise;let t=o.setupExports?.onSession;typeof t=="function"&&await le(e,o,t)}function de(){for(let e of C.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let T=e=>c[e]??=Object.create(null);function v(e){if(!te(e.error)){try{$.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}}function fe(e="default"){return T(e),c}function D(e,r,n,o,t={}){let s=T(e||"default"),u=Object.hasOwn(s,r)?s[r]:void 0,a=u&&typeof u=="object"?u:void 0;a||(a=Object.create(null),s[r]=a),!(Object.hasOwn(a,n)&&a[n])&&(a[n]={version:n,get:o,from:t.from??"unknown",eager:!!t.eager,loaded:!!t.loaded})}function pe(e){let r=(n,o,t)=>{if(n===void 0)return;if(!(typeof n=="number"&&(t?Number.isInteger(n)&&n>=0&&n<=10:Number.isFinite(n)&&n>0)))throw new Error(`[fulgurjs] \\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 ${o} \\u914D\\u7F6E\\u65E0\\u6548\\uFF1A\\u5F53\\u524D\\u4E3A ${String(n)}\\uFF0C\\u5E94\\u4E3A${t?" 0 \\u5230 10 \\u7684\\u6574\\u6570":"\\u5927\\u4E8E 0 \\u7684\\u6709\\u9650\\u6570\\u5B57"}\\u3002\\u8BF7\\u4FEE\\u6B63 registerRemote \\u914D\\u7F6E\\u3002`)};r(e.timeout,"timeout"),r(e.retries,"retries",!0),e.breaker&&(r(e.breaker.threshold,"breaker.threshold"),r(e.breaker.resetMs,"breaker.resetMs"))}function B(e){for(let r of e){pe(r);let n=d.get(r.name);d.set(r.name,{timeout:G,retries:se,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??Ue,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??Ne,state:n?.state??"idle",breakerState:n?.breakerState??{fails:0,openUntil:0},entryInflight:n?.entryInflight??new Map,entryFailCounts:n?.entryFailCounts??new Map,debug:n?.debug??{entry:r.entry,status:"idle",setup:"none"}})}}function me(e){B([e])}function ge(e){f.push(...e),m.clear(),ae()}function A(e,r,n=!1){let o=r.shareScope||"default",t=r.shareKey||e,u=T(o)[t]||{},a=Object.keys(u).filter(i=>!n||r.singleton||u[i].value!==void 0);if(n&&a.length===0)return;let y=r.requiredVersion,g=a.filter(i=>y===void 0||y===!1||j(i,y)),p;if(r.singleton&&a.length>0){let i=a.filter(h=>u[h].loaded);if(p=[...i.length?i:a].sort(I).pop(),!g.includes(p)){let h=u[p],O=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${t}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u5E94\\u7528\\u8981\\u6C42 ${y??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${a.join("\\u3001")}\\uFF1B\\u4E3A\\u4FDD\\u8BC1\\u5168\\u9875\\u53EA\\u4F7F\\u7528\\u4E00\\u4E2A\\u5B9E\\u4F8B\\uFF0C\\u6700\\u7EC8\\u590D\\u7528 ${h.from} \\u63D0\\u4F9B\\u7684 ${p}\\u3002\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 M=new E(R.SHARE_STRICT_VERSION,O,{shareKey:t,requiredVersion:y});throw v({remote:h.from,error:M}),M}let _=`${o}|${t}|${y??"*"}|${p}|${a.join(",")}`;l.has(_)||(l.add(_),console.warn(`[fulgurjs:MFU-010] ${O}`))}}else if(p=[...g].sort(I).pop(),!p){if(r.strictVersion){let i=new E(R.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${o}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${t}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${y}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${a.join("\\u3001")||"\\u65E0"}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u4FEE\\u6B63 shared.requiredVersion\\u3002`);throw v({remote:t,error:i}),i}return}return u[p]}function W(e,r,n){let o=r.localVersion;if(!o||n===void 0)return;let t=r.shareScope||"default",s=r.shareKey||e,u=T(t),a=Object.hasOwn(u,s)?u[s]:void 0;if(a&&Object.keys(a).length>0){try{let g=A(e,r);if(g&&g.value===void 0){if(g.version===o)g.value=n,g.loaded=!0;else if(r.singleton&&!g.pendingGet){D(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let p=u[s][o];p.value=n,p.loaded=!0}}}catch{}return}D(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let y=u[s]?.[o];y&&(y.value=n)}async function Y(e,r={}){let n=r.shareScope||"default",o=r.shareKey||e,t=T(n)[o]||{},s=S(e,r),u=$.resolveShare?m.get(s):void 0,a=u||A(e,r);if(!a){if(r.fallback){let i=await r.fallback();return W(e,r,i),i}let p=new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${o}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u4F5C\\u7528\\u57DF "${n}" \\u4E2D\\u6CA1\\u6709\\u7B26\\u5408 ${r.requiredVersion??"\\u4EFB\\u610F\\u7248\\u672C"} \\u8981\\u6C42\\u7684\\u7248\\u672C\\uFF0C\\u4E14\\u672A\\u914D\\u7F6E\\u672C\\u5730\\u526F\\u672C\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728\\u5BBF\\u4E3B\\u6216\\u8FDC\\u7A0B\\u6CE8\\u518C\\u8BE5\\u4F9D\\u8D56\\uFF0C\\u6216\\u4E3A shared \\u914D\\u7F6E\\u53EF\\u7528\\u7684\\u672C\\u5730\\u526F\\u672C\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion});throw v({remote:o,error:p}),p}if($.resolveShare&&!u){let p=await $.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:a,available:Object.values(t)});p&&(a=p),m.set(s,a)}if(a.value!==void 0)return m.set(S(e,r),a),a.value;if(a.loaded=!0,!a.pendingGet)try{a.pendingGet=a.get()}catch(p){a.pendingGet=Promise.reject(p)}let y=a.pendingGet,g;try{g=await y}catch(p){if(a.value!==void 0)return m.set(S(e,r),a),a.value;throw a.loaded=!1,m.get(s)===a&&m.delete(s),p}finally{a.pendingGet===y&&(a.pendingGet=void 0)}return a.value===void 0&&(a.value=g),m.set(S(e,r),a),a.value}function he(e,r={}){return $.resolveShare?m.get(S(e,r))?.value:A(e,r,!0)?.value}function ye(e,r,n,o){W(e,{...r,localVersion:n},o)}function Se(e,r){let n=r.shareScope||"default",o=r.shareKey||e;if($.resolveShare){let s=S(e,r),u=m.get(s);if(u&&u.value!==void 0)return{kind:"ready",value:u.value};let a=u||$.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:A(e,r),available:Object.values(T(n)[o]||{})});if(a&&typeof a.then=="function")throw Promise.resolve(a).catch(()=>{}),new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u5BF9\\u5171\\u4EAB "${o}" \\u8FD4\\u56DE\\u4E86 Promise\\uFF0C\\u4F46\\u8BE5\\u5171\\u4EAB\\u6B63\\u88AB\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u6D88\\u8D39\\uFF08Vite 8 \\u540C\\u6B65\\u534F\\u5546\\u95E8\\u9762\\uFF09\\u3002\n\\u539F\\u56E0\\uFF1A\\u6A21\\u5757\\u6C42\\u503C\\u671F\\u65E0\\u6CD5\\u7B49\\u5F85\\u5F02\\u6B65\\u51B3\\u7B56\\uFF1B\\u9759\\u6001\\u5BFC\\u5165\\u4E0D\\u80FD\\u9759\\u9ED8\\u5FFD\\u7565 hook \\u51B3\\u7B56\\u3002\n\\u4FEE\\u6CD5\\uFF1AVite 8 HTML \\u5165\\u53E3\\u4F1A\\u5148\\u5B8C\\u6210\\u5F02\\u6B65\\u534F\\u5546\\uFF1B\\u5176\\u4ED6\\u5165\\u53E3\\u8BF7\\u5148\\u52A8\\u6001 loadShare \\u5EFA\\u7ACB\\u5FEB\\u7167\\uFF0C\\u518D\\u5BFC\\u5165\\u6D88\\u8D39\\u8005\\uFF0C\\u6216\\u8BA9\\u8BE5\\u952E\\u540C\\u6B65\\u8FD4\\u56DE picked\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let y=a;if(y){if(y.value!==void 0)return m.set(S(e,r),y),{kind:"ready",value:y.value};if(y.version!==void 0&&y.version===r.localVersion)return{kind:"local"};throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u4E3A "${o}" \\u9009\\u62E9\\u4E86\\u672A\\u5C31\\u7EEA\\u7684 ${y.version??"\\u6761\\u76EE"}\\u3002\n\\u539F\\u56E0\\uFF1A\\u540C\\u6B65\\u6D88\\u8D39\\u4E0D\\u80FD\\u7B49\\u5F85\\u52A0\\u8F7D\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5148\\u52A8\\u6001 loadShare \\u518D\\u5BFC\\u5165\\u6D88\\u8D39\\u8005\\uFF0C\\u6216\\u9009\\u62E9\\u5DF2\\u5C31\\u7EEA\\u5B9E\\u4F8B/\\u672C\\u5730\\u7248\\u672C ${r.localVersion??"\\u672A\\u58F0\\u660E"}\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0})}}let t=A(e,r);if(!t)return{kind:"local"};if(t.value!==void 0)return{kind:"ready",value:t.value};if(t.version!==void 0&&t.version===r.localVersion)return{kind:"local"};if(r.singleton||r.strictVersion&&r.requiredVersion&&(!r.localVersion||!j(r.localVersion,r.requiredVersion))){if(r.strictVersion||t.pendingGet)throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB "${o}" \\u9009\\u4E2D\\u4E86 ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version}\\uFF08\\u5C1A\\u672A\\u52A0\\u8F7D\\uFF09\\uFF0C\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u65E0\\u6CD5\\u7B49\\u5F85\\u5176\\u5B9E\\u4F8B\\u5C31\\u7EEA\\u3002\n\\u539F\\u56E0\\uFF1A\\u4E0D\\u80FD\\u6539\\u7528\\u4E0D\\u517C\\u5BB9\\u7684\\u672C\\u5730\\u526F\\u672C\\u6216\\u5206\\u88C2\\u5355\\u4F8B\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u8BA9\\u8BE5\\u5171\\u4EAB\\u7684\\u9996\\u6B21\\u6D88\\u8D39\\u5148\\u7ECF\\u4E00\\u6B21\\u52A8\\u6001 loadShare \\u5B8C\\u6210\\u52A0\\u8F7D\\uFF0C\\u6216\\u5C06\\u672C\\u5E94\\u7528\\u7248\\u672C\\u4E0E\\u4F5C\\u7528\\u57DF\\u63D0\\u4F9B\\u7248\\u672C\\u5BF9\\u9F50\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let s=`${n}|${o}|${t.version}|${r.localVersion}`;return l.has(s)||(l.add(s),console.warn(`[fulgurjs:MFU-010] \\u5171\\u4EAB\\u5355\\u4F8B "${o}"\\uFF1A\\u4F5C\\u7528\\u57DF\\u4E2D ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version} \\u5C1A\\u672A\\u52A0\\u8F7D\\uFF0C\\u9996\\u4E2A\\u6D88\\u8D39\\u8005\\u4EE5\\u672C\\u5730\\u7248\\u672C ${r.localVersion??""} \\u63A5\\u7BA1\\uFF08\\u540E\\u7EED\\u6D88\\u8D39\\u8005\\u6309\\u5DF2\\u52A0\\u8F7D\\u4F18\\u5148\\u6536\\u655B\\u5230\\u8BE5\\u5B9E\\u4F8B\\uFF09\\u3002`)),{kind:"local"}}return console.warn(`[fulgurjs] \\u5171\\u4EAB "${o}"\\uFF1A\\u975E\\u5355\\u4F8B\\u540C\\u6B65\\u6D88\\u8D39\\u4F7F\\u7528\\u672C\\u5730 ${r.localVersion??""}\\uFF0C\\u8FDC\\u7A0B ${t.version} \\u5C1A\\u672A\\u5C31\\u7EEA\\u3002`),{kind:"local"}}async function Ee(e){if($.resolveShare){for(let{name:r,opts:n}of e){let o=S(r,n);if(m.has(o))continue;let t=A(r,n),s=await $.resolveShare({shareKey:n.shareKey||r,shareScope:n.shareScope||"default",requiredVersion:n.requiredVersion,picked:t,available:Object.values(T(n.shareScope||"default")[n.shareKey||r]||{})})||t;s&&m.set(o,s)}for(let{name:r,opts:n}of e)await Y(r,n)}}function z(e){try{let r=new URL(e,typeof location<"u"?location.href:"http://f.invalid");return r.protocol+"//"+r.host+r.pathname}catch{return String(e).replace(/[?#].*$/,"")}}function Z(e,r,n){return new Promise((o,t)=>{let s=setTimeout(()=>t(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${n}`)),r);e.then(u=>{clearTimeout(s),o(u)},u=>{clearTimeout(s),t(u)})})}let Re=e=>new Promise(r=>setTimeout(r,e)),Q=new Set;function K(e,r){if(!e||typeof e.get!="function")throw new Error(`\\u8FDC\\u7A0B\\u5E94\\u7528 "${r.name}" \\u7684 remoteEntry \\u672A\\u5BFC\\u51FA\\u5BB9\\u5668\\u63A5\\u53E3\\u3002\\u8BF7\\u786E\\u8BA4\\u5165\\u53E3\\u5BFC\\u51FA\\u4E86 get()\\uFF0C\\u5E76\\u68C0\\u67E5\\u8BE5\\u5730\\u5740\\u662F\\u5426\\u8FD4\\u56DE\\u6B63\\u786E\\u7684\\u8054\\u90A6\\u5165\\u53E3 JS\\u3002`);if(e.name&&r.name&&e.name!==r.name){let n=`\\u8FDC\\u7A0B\\u5165\\u53E3\\u81EA\\u62A5\\u540D\\u79F0 "${e.name}" \\u4E0E\\u5BBF\\u4E3B\\u914D\\u7F6E\\u540D\\u79F0 "${r.name}" \\u4E0D\\u4E00\\u81F4\\u3002\\u8BF7\\u7EDF\\u4E00\\u4E24\\u4FA7 federation({ name }) \\u4E0E remotes \\u7684\\u540D\\u79F0\\u3002`;if(r.promise){let o=`${r.name}\\u2194${e.name}`;Q.has(o)||(Q.add(o),console.warn(`[fulgurjs] ${n} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`))}else throw Object.assign(new Error(n),{code:R.REMOTE_NAME_MISMATCH})}}async function ee(e,r){let n=r.entryFailCounts.get(e)??0,o=n>0?`${e}${e.includes("?")?"&":"?"}fulgurjs_retry=${n}`:e,t=r.entryInflight.get(e),s=t??import(o);return t||(r.entryInflight.set(e,s),s.catch(()=>{r.entryInflight.delete(e),r.entryFailCounts.set(e,(r.entryFailCounts.get(e)??0)+1)})),Z(s,r.timeout??G,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${z(e)}`)}async function re(e,r){let n=e.shareScope||"default";if(e.container){let s=N.get(e.container);if(s&&s!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${s}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return e.container}if(e.containerPromise)return e.containerPromise;let o=e.breakerState;if(o.openUntil>Date.now()){let s=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u8FDE\\u7EED\\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u7194\\u65AD\\u5668\\u5DF2\\u5F00\\u542F\\uFF1B\\u5C06\\u5728 ${new Date(o.openUntil).toISOString()} \\u540E\\u5141\\u8BB8\\u91CD\\u8BD5\\u3002\\u8BF7\\u5148\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u670D\\u52A1\\u548C\\u7F51\\u7EDC\\u3002`,{remote:e.name,stage:"container"});throw v({remote:e.name,error:s}),s}e.state="loading",e.debug.status="loading";let t=(async()=>{let s=[];if(e.promise)s.push(async()=>{let i=await Z(e.promise(),e.timeout??G,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),h=typeof i=="string"?await ee(i,e):i;return K(h,e),h});else for(let i of[e.entry,...e.fallback??[]])s.push(async()=>{let h=await ee(i,e);return K(h,e),h});let u,a,y=!1,g=r?.retries??e.retries??se;for(let i of s){for(let h=0;h<=g;h++){let O=performance.now();try{u=await i(),e.lastLoadMs=Math.round(performance.now()-O),e.debug.lastLoadMs=e.lastLoadMs,y=!0;break}catch(_){if(a=_,_?.code)throw _;h<g&&await Re(Math.min(Ce,200*2**h)*(1-Fe*(1-2*Math.random())))}}if(y)break}if(!y||!u){let i=z(e.entry),h=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),h.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),h.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),h.push("2. \\u68C0\\u67E5 Nginx/CDN \\u7684\\u5165\\u53E3\\u8DEF\\u5F84\\u6620\\u5C04\\uFF1B\\u8BE5\\u5730\\u5740\\u4E0D\\u80FD\\u56DE\\u9000\\u5230 index.html\\u3002")),new E(R.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${i} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${String(a?.message??a)}\n\\u4FEE\\u6CD5\\uFF1A\n${h.join(`\n`)}`,{remote:e.name,stage:"container"},{cause:a})}K(u,e);let p=N.get(u);if(p&&p!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${p}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof u.init=="function"&&await u.init(c),N.set(u,n),e.container=u,e.state="loaded",e.debug.status="loaded",o.fails=0,u})();e.containerPromise=t;try{return await t}catch(s){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=String(s?.message??s),o.fails+=1,o.fails>=e.breakerThreshold&&(o.openUntil=Date.now()+e.breakerResetMs,o.fails=0),s instanceof E)throw v({remote:e.name,error:s}),s;if(s?.code)throw v({remote:e.name,error:s}),s;let u=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(s?.message??s)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name,stage:"container"},{cause:s});throw v({remote:e.name,error:u}),u}}function q(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:ne(e.slice(r+1))}}function ne(e){return e?e.startsWith(".")?e:`./${e}`:""}async function we(e,r){let{remote:n,module:o}=q(e);if(o&&F===n)throw new E(R.SETUP_RECURSION,`\\u73B0\\u8C61\\uFF1A\\u52A0\\u8F7D "${e}" \\u65F6\\uFF0C\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 setup/onSession \\u53C8\\u540C\\u6B65\\u52A0\\u8F7D\\u4E86\\u81EA\\u8EAB\\u6A21\\u5757\\uFF0C\\u5F62\\u6210\\u5FAA\\u73AF\\u7B49\\u5F85\\u3002\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 E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:n});let s;try{let i=o&&t.manifestUrl?H(e):Promise.resolve();[s]=await Promise.all([re(t,{retries:r?.retries}),i])}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u6B63\\u5728\\u4F7F\\u7528\\u663E\\u5F0F\\u914D\\u7F6E\\u7684 fallbackModule\\uFF1B\\u539F\\u59CB\\u9519\\u8BEF\\uFF1A`,i),v({remote:n,error:i}),await r.fallbackModule();throw i}if(!o)return s;await ue(t,s);let u=V(n).globalComponents,a=r?.consumerApp;if(u&&a&&typeof a.component=="function")for(let i of Object.keys(u))a.component(i,u[i]);let y=V(n).pageProviders;y&&y.length>0&&typeof a?.pageProviders=="function"&&a.pageProviders(y);let g=`${n}@${t.shareScope||"default"}#${o}`;b.has(g)||b.set(g,s.get(o).catch(i=>{if(b.delete(g),i instanceof E||i?.code)throw v({remote:n,error:i}),i;let h=new E(R.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${o}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(i?.message??i)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:o,stage:"expose"},{cause:i});throw v({remote:n,error:h}),h}));let p;try{p=await b.get(g)}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u6B63\\u5728\\u4F7F\\u7528\\u663E\\u5F0F\\u914D\\u7F6E\\u7684 fallbackModule\\uFF1B\\u539F\\u59CB\\u9519\\u8BEF\\uFF1A`,i),v({remote:n,error:i}),await r.fallbackModule();throw i}try{$.afterLoadRemote?.({remote:n,module:o,module_ns:p})}catch(i){console.warn("[fulgurjs] afterLoadRemote \\u89C2\\u6D4B\\u94A9\\u5B50\\u6267\\u884C\\u5931\\u8D25\\uFF1B\\u5DF2\\u52A0\\u8F7D\\u6A21\\u5757\\u4ECD\\u53EF\\u4F7F\\u7528\\u3002\\u8BF7\\u68C0\\u67E5\\u8BE5\\u94A9\\u5B50\\uFF1A",i)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let i=new E(R.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6A21\\u5757 "${o}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:n,module:o});v({remote:n,error:i}),console.error(i.message)}return p}function be(e){let r=d.get(e);if(!r)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return re(r)}async function H(e,r={}){let{remote:n,module:o}=q(e),t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:n});let s=r.mode??"preload",u=(g,p)=>{if(g.sheet)return Promise.resolve();let i=L.get(g);if(i)return i;let h=new Promise(O=>{let _=()=>{g.removeEventListener("load",_),g.removeEventListener("error",M),O()},M=()=>{v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${p}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:n})}),_()};g.addEventListener("load",_,{once:!0}),g.addEventListener("error",M,{once:!0}),g.sheet&&_()});return L.set(g,h),h},a=(g,p)=>{if(typeof document>"u")return Promise.resolve();let i=document.querySelector(`link[href="${g}"]`);if(i)return p==="style"&&s==="preload"?L.get(i)??Promise.resolve():Promise.resolve();let h=document.createElement("link");h.rel=p==="style"?"stylesheet":"modulepreload",h.href=g,s==="prefetch"&&(h.fetchPriority="low");let O=p==="style"?u(h,g):Promise.resolve();return document.head.appendChild(h),p==="style"&&s==="preload"?O:Promise.resolve()},y=g=>{let p=typeof document<"u"?document.baseURI:void 0,i=new URL(t.entry,p||"http://fulgurjs.invalid/");return!i.pathname.endsWith("/")&&!i.pathname.split("/").pop().includes(".")&&(i.pathname+="/"),new URL(g,i).href};try{if(t.manifestUrl){let g=P.get(t.manifestUrl);g||(g=fetch(t.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(i=>i.ok?i.json():void 0),P.set(t.manifestUrl,g),g.then(i=>{i||P.delete(t.manifestUrl)},()=>P.delete(t.manifestUrl)));let p=await g;if(p){let i=p.schemaVersion;if(typeof i=="number"&&(!Number.isInteger(i)||i>1)){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(i)}\\uFF0C\\u5F53\\u524D\\u4EC5\\u652F\\u6301\\u7248\\u672C 1\\u3002\\u8BF7\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u548C\\u8FDC\\u7A0B\\u7684\\u63D2\\u4EF6\\u7248\\u672C\\u3002`,{remote:n})}),await a(t.entry,"modulepreload");return}await a(t.entry,"modulepreload");let h=p.exposes,O=Array.isArray(h)?h.filter(k=>k&&typeof k=="object").map(k=>[String(k.name??""),k]):h&&typeof h=="object"?Object.entries(h):[],_=o?O.filter(([k,x])=>ne(String(x?.name??k))===o):O,M=[];for(let[,k]of _)if(typeof k?.file=="string"&&await a(y(k.file),"modulepreload"),Array.isArray(k?.css))for(let x of k.css){if(typeof x!="string")continue;let ve=a(y(x),"style");s==="preload"&&M.push(ve)}await Promise.all(M);return}}await a(t.entry,"modulepreload")}catch(g){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(g?.message??g)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:n})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=c,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,n]of d)e[r]={...n.debug,entry:n.entry};return e},errors:[]}),{shareScopeMap:c,initSharing:fe,registerShare:D,registerRemotes:B,registerRemote:me,registerPlugins:ge,loadShare:Y,loadShareSync:Se,prepareShares:Ee,getLoadedShare:he,pinLoadedShare:ye,loadRemote:we,getContainer:be,preloadRemote:H,parseSpec:q,clearSessionState:de,reportRemoteError:e=>{v(e)}}}var ie=globalThis,w=ie.__FULGURJS_RUNTIME__??Ve();ie.__FULGURJS_RUNTIME__=w;try{Object.freeze(w)}catch{}var Be=oe;function We(){return w}var Ye=w.initSharing,ze=w.registerShare,Ze=w.registerRemotes,Qe=w.registerRemote,er=w.registerPlugins,rr=w.loadShare,nr=w.getLoadedShare,tr=w.prepareShares||(async c=>{for(let{name:d,opts:f}of c)await w.loadShare(d,f)}),or=w.loadShareSync,sr=w.pinLoadedShare,ir=w.loadRemote,ar=w.getContainer,cr=w.preloadRemote,lr=w.parseSpec,ur=w.clearSessionState,dr=w.shareScopeMap;function fr(c){if(c&&typeof c=="object"&&"default"in c){let d=c.default;return d!==void 0?d:c}return c}var pr=w;export{ur as clearSessionState,pr as default,ar as getContainer,nr as getLoadedShare,We as getRuntime,Ye as initSharing,ir as loadRemote,rr as loadShare,or as loadShareSync,lr as parseSpec,sr as pinLoadedShare,cr as preloadRemote,tr as prepareShares,er as registerPlugins,Qe as registerRemote,Ze as registerRemotes,ze as registerShare,w as runtime,dr as shareScopeMap,fr as unwrapDefault,Be as version};\n';
|
|
3760
3857
|
|
|
3761
3858
|
// src/index.ts
|
|
3762
3859
|
function readRuntimeCode() {
|
|
@@ -3773,7 +3870,7 @@ function enumerateCjsExports(packageName, appRoot) {
|
|
|
3773
3870
|
if (cached) return cached;
|
|
3774
3871
|
let names = [];
|
|
3775
3872
|
try {
|
|
3776
|
-
const appRequire =
|
|
3873
|
+
const appRequire = createRequire4(path10.join(appRoot, "package.json"));
|
|
3777
3874
|
const mod = appRequire(packageName);
|
|
3778
3875
|
names = Object.keys(mod);
|
|
3779
3876
|
} catch {
|
|
@@ -4024,6 +4121,8 @@ export { default } from ${JSON.stringify(url)};
|
|
|
4024
4121
|
}
|
|
4025
4122
|
if (normalized.remotes.length > 0 && normalized.devSharedSelf) {
|
|
4026
4123
|
state.facadeDynamic = true;
|
|
4124
|
+
}
|
|
4125
|
+
if (normalized.remotes.length > 0 && (normalized.devSharedSelf || normalized.exposes.length > 0)) {
|
|
4027
4126
|
const userMc = userConfig.build?.rollupOptions?.output?.manualChunks;
|
|
4028
4127
|
debugLog("facade", {
|
|
4029
4128
|
stage: "config",
|
|
@@ -4064,6 +4163,14 @@ export { default } from ${JSON.stringify(url)};
|
|
|
4064
4163
|
};
|
|
4065
4164
|
const extraBuild = extra.build ??= {};
|
|
4066
4165
|
extraBuild.rollupOptions = { ...extraBuild.rollupOptions ?? {}, output: { manualChunks: wrapped } };
|
|
4166
|
+
} else if (userManualChunks === void 0) {
|
|
4167
|
+
const extraBuild = extra.build ??= {};
|
|
4168
|
+
extraBuild.rollupOptions = { ...extraBuild.rollupOptions ?? {}, output: { manualChunks: (id, meta) => {
|
|
4169
|
+
const facade = facadeChunkOf(id);
|
|
4170
|
+
if (facade) return facade;
|
|
4171
|
+
if (isOwnPackageModule(id)) return "fulgurjs-internal";
|
|
4172
|
+
return providerChunkOfWithClosure(id, state.providerRoots, meta, state.providerEntrySeeds);
|
|
4173
|
+
} } };
|
|
4067
4174
|
}
|
|
4068
4175
|
}
|
|
4069
4176
|
}
|
|
@@ -4397,7 +4504,7 @@ ${code}`, map: null };
|
|
|
4397
4504
|
const srcRe = /src=["']([^"']+)["']/;
|
|
4398
4505
|
const entryPath = (src) => {
|
|
4399
4506
|
const file = src.startsWith("/@fs/") ? src.slice(4) : src;
|
|
4400
|
-
return path10.isAbsolute(file) &&
|
|
4507
|
+
return path10.isAbsolute(file) && fs8.existsSync(file) ? file : path10.resolve(state.normalized.root, src.startsWith("/") ? src.slice(1) : src);
|
|
4401
4508
|
};
|
|
4402
4509
|
for (const tag of html.match(moduleScriptRe) ?? []) {
|
|
4403
4510
|
const src = srcRe.exec(tag)?.[1];
|
|
@@ -4428,7 +4535,7 @@ ${code}`, map: null };
|
|
|
4428
4535
|
state.providerEntrySeeds = [];
|
|
4429
4536
|
providerClosureCache.clear();
|
|
4430
4537
|
providerClosureBuilt = false;
|
|
4431
|
-
const providerRequire =
|
|
4538
|
+
const providerRequire = createRequire4(path10.join(n.root, "package.json"));
|
|
4432
4539
|
for (const item of n.shared) {
|
|
4433
4540
|
if (item.import === false) continue;
|
|
4434
4541
|
try {
|
|
@@ -4501,7 +4608,7 @@ ${code}`, map: null };
|
|
|
4501
4608
|
let file = null;
|
|
4502
4609
|
if (selfFile) {
|
|
4503
4610
|
try {
|
|
4504
|
-
const req =
|
|
4611
|
+
const req = createRequire4(selfFile);
|
|
4505
4612
|
file = req.resolve(`${alias}/package.json`, { paths: [selfFile] }).replace(/\/package\.json$/, "");
|
|
4506
4613
|
} catch {
|
|
4507
4614
|
file = null;
|
|
@@ -4796,7 +4903,7 @@ ${entryChunk.code}`;
|
|
|
4796
4903
|
if (n.exposes.length > 0 && n.dts) {
|
|
4797
4904
|
typesServer = createDevTypesServer(n);
|
|
4798
4905
|
let regenTimer = null;
|
|
4799
|
-
const syncedTypesDir = typeof n.dts === "object" && n.dts.dir ? path10.resolve(n.root, n.dts.dir) : path10.join(n.root,
|
|
4906
|
+
const syncedTypesDir = typeof n.dts === "object" && n.dts.dir ? path10.resolve(n.root, n.dts.dir) : path10.join(n.root, fs8.existsSync(path10.join(n.root, "src")) ? "src/fulgurjs/types" : ".fulgurjs/types");
|
|
4800
4907
|
const scheduleRegen = (id) => {
|
|
4801
4908
|
if (!isTypesInputChange(n.root, id, syncedTypesDir)) return;
|
|
4802
4909
|
if (regenTimer) clearTimeout(regenTimer);
|
|
@@ -4865,12 +4972,12 @@ ${entryChunk.code}`;
|
|
|
4865
4972
|
const dtsOpt = n.dts === true ? true : n.dts;
|
|
4866
4973
|
const typesRoot = path10.join(
|
|
4867
4974
|
n.root,
|
|
4868
|
-
dtsOpt === false ? "" : (typeof dtsOpt === "object" ? dtsOpt.dir : void 0) ?? (
|
|
4975
|
+
dtsOpt === false ? "" : (typeof dtsOpt === "object" ? dtsOpt.dir : void 0) ?? (fs8.existsSync(path10.join(n.root, "src")) ? "src/fulgurjs/types" : ".fulgurjs/types")
|
|
4869
4976
|
);
|
|
4870
4977
|
try {
|
|
4871
|
-
if (
|
|
4978
|
+
if (fs8.existsSync(typesRoot)) {
|
|
4872
4979
|
const activeKeys = new Set(n.remotes.map((r) => r.key));
|
|
4873
|
-
for (const name of
|
|
4980
|
+
for (const name of fs8.readdirSync(typesRoot)) {
|
|
4874
4981
|
if (!activeKeys.has(name)) removeGeneratedTypes(typesRoot, name);
|
|
4875
4982
|
}
|
|
4876
4983
|
}
|