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