@fulgurjs/federation 6.14.3 → 6.14.5
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 +10 -0
- package/dist/cli.js +294 -130
- package/dist/dts-cache-worker.cjs +684 -0
- package/dist/index.cjs +579 -190
- package/dist/index.js +578 -190
- package/dist/runtime.js +1 -1
- package/docs/en/reference/api.md +4 -0
- package/docs/zh/reference/api.md +4 -0
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -34,8 +34,8 @@ __export(index_exports, {
|
|
|
34
34
|
federation: () => federation
|
|
35
35
|
});
|
|
36
36
|
module.exports = __toCommonJS(index_exports);
|
|
37
|
-
var
|
|
38
|
-
var
|
|
37
|
+
var import_node_fs9 = __toESM(require("fs"), 1);
|
|
38
|
+
var import_node_path12 = __toESM(require("path"), 1);
|
|
39
39
|
var import_node_module4 = require("module");
|
|
40
40
|
|
|
41
41
|
// src/vue-runtime-evidence.ts
|
|
@@ -69,7 +69,7 @@ var import_node_fs = __toESM(require("fs"), 1);
|
|
|
69
69
|
var import_node_path = __toESM(require("path"), 1);
|
|
70
70
|
|
|
71
71
|
// src/version.ts
|
|
72
|
-
var RUNTIME_VERSION = "6.14.
|
|
72
|
+
var RUNTIME_VERSION = "6.14.5";
|
|
73
73
|
|
|
74
74
|
// src/dev-cors.ts
|
|
75
75
|
function normalizeDevCorsOrigins(input) {
|
|
@@ -1812,12 +1812,12 @@ function collectPackageExportNames(spec, importerFile) {
|
|
|
1812
1812
|
}
|
|
1813
1813
|
|
|
1814
1814
|
// src/dts-serve.ts
|
|
1815
|
-
var
|
|
1816
|
-
var
|
|
1815
|
+
var import_node_path7 = __toESM(require("path"), 1);
|
|
1816
|
+
var import_node_fs5 = __toESM(require("fs"), 1);
|
|
1817
1817
|
|
|
1818
1818
|
// src/dts-generate.ts
|
|
1819
1819
|
var import_node_fs3 = __toESM(require("fs"), 1);
|
|
1820
|
-
var
|
|
1820
|
+
var import_node_path5 = __toESM(require("path"), 1);
|
|
1821
1821
|
|
|
1822
1822
|
// src/dts-diagnostics.ts
|
|
1823
1823
|
var import_node_path3 = __toESM(require("path"), 1);
|
|
@@ -2041,9 +2041,161 @@ export default ${value};`;
|
|
|
2041
2041
|
return text.slice(0, assignment.getStart(source)) + replacement + text.slice(assignment.end);
|
|
2042
2042
|
}
|
|
2043
2043
|
|
|
2044
|
+
// src/dts-type-display.ts
|
|
2045
|
+
var import_node_path4 = __toESM(require("path"), 1);
|
|
2046
|
+
function displayPublicDataTypes(ts, files, entries, root, compilerOptions = {}) {
|
|
2047
|
+
const base = import_node_path4.default.join(root, ".fulgurjs-types-display");
|
|
2048
|
+
const paths = new Map([...files].map(([rel, text]) => [import_node_path4.default.resolve(base, rel), text]));
|
|
2049
|
+
const entryPaths = [...new Set(entries)].map((rel) => import_node_path4.default.resolve(base, rel));
|
|
2050
|
+
const needsDisplay = entryPaths.filter((file) => {
|
|
2051
|
+
const source = ts.createSourceFile(file, paths.get(file), ts.ScriptTarget.Latest, true);
|
|
2052
|
+
return source.statements.some((s) => ts.isExportDeclaration(s) && (!s.exportClause || ts.isNamedExports(s.exportClause) && s.exportClause.elements.length > 0) || (ts.isInterfaceDeclaration(s) || ts.isTypeAliasDeclaration(s)) && s.modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword));
|
|
2053
|
+
});
|
|
2054
|
+
if (needsDisplay.length === 0) return;
|
|
2055
|
+
const options = {
|
|
2056
|
+
...compilerOptions,
|
|
2057
|
+
noEmit: true,
|
|
2058
|
+
target: compilerOptions.target ?? ts.ScriptTarget.ESNext,
|
|
2059
|
+
module: compilerOptions.module ?? ts.ModuleKind.ESNext,
|
|
2060
|
+
moduleResolution: compilerOptions.moduleResolution ?? ts.ModuleResolutionKind.Bundler ?? ts.ModuleResolutionKind.NodeJs,
|
|
2061
|
+
skipLibCheck: true,
|
|
2062
|
+
types: [],
|
|
2063
|
+
allowArbitraryExtensions: true
|
|
2064
|
+
};
|
|
2065
|
+
const directories = /* @__PURE__ */ new Set();
|
|
2066
|
+
for (const file of paths.keys()) {
|
|
2067
|
+
for (let dir = import_node_path4.default.dirname(file); dir.startsWith(base); dir = import_node_path4.default.dirname(dir)) directories.add(dir);
|
|
2068
|
+
}
|
|
2069
|
+
const host = ts.createCompilerHost(options, true);
|
|
2070
|
+
const readFile = (file) => paths.get(import_node_path4.default.resolve(file)) ?? ts.sys.readFile(file);
|
|
2071
|
+
host.readFile = readFile;
|
|
2072
|
+
host.fileExists = (file) => paths.has(import_node_path4.default.resolve(file)) || ts.sys.fileExists(file);
|
|
2073
|
+
host.directoryExists = (dir) => directories.has(import_node_path4.default.resolve(dir)) || (ts.sys.directoryExists?.(dir) ?? false);
|
|
2074
|
+
host.realpath = (file) => paths.has(import_node_path4.default.resolve(file)) ? file : ts.sys.realpath?.(file) ?? file;
|
|
2075
|
+
host.getCurrentDirectory = () => root;
|
|
2076
|
+
host.getSourceFile = (file, languageVersion) => {
|
|
2077
|
+
const text = readFile(file);
|
|
2078
|
+
return text === void 0 ? void 0 : ts.createSourceFile(file, text, languageVersion, true);
|
|
2079
|
+
};
|
|
2080
|
+
const program = ts.createProgram(needsDisplay, options, host);
|
|
2081
|
+
const checker = program.getTypeChecker();
|
|
2082
|
+
const plainData = (symbol) => {
|
|
2083
|
+
if (!(symbol.flags & (ts.SymbolFlags.Interface | ts.SymbolFlags.TypeAlias)) || symbol.flags & (ts.SymbolFlags.Value | ts.SymbolFlags.Namespace)) return false;
|
|
2084
|
+
if (symbol.declarations?.some((d) => (ts.isInterfaceDeclaration(d) || ts.isTypeAliasDeclaration(d)) && d.typeParameters?.length)) return false;
|
|
2085
|
+
const type = checker.getDeclaredTypeOfSymbol(symbol);
|
|
2086
|
+
if (!(type.flags & ts.TypeFlags.Object) || type.getCallSignatures().length || type.getConstructSignatures().length || checker.isArrayType(type) || checker.isTupleType(type)) return false;
|
|
2087
|
+
const hasThis = (node) => ts.isThisTypeNode(node) || (ts.forEachChild(node, hasThis) ?? false);
|
|
2088
|
+
const visited = /* @__PURE__ */ new Set();
|
|
2089
|
+
const specialBase = (value) => {
|
|
2090
|
+
if (visited.has(value)) return false;
|
|
2091
|
+
visited.add(value);
|
|
2092
|
+
if (!(value.flags & ts.TypeFlags.Object)) return true;
|
|
2093
|
+
const object = value;
|
|
2094
|
+
const target = object.target ?? object;
|
|
2095
|
+
if ((object.objectFlags | target.objectFlags) & ts.ObjectFlags.Class) return true;
|
|
2096
|
+
if (value.symbol?.declarations?.some(hasThis)) return true;
|
|
2097
|
+
if (value.symbol?.declarations?.some((d) => ts.isInterfaceDeclaration(d) && d.heritageClauses?.some((clause) => clause.types.some((base2) => checker.getTypeAtLocation(base2).flags & (ts.TypeFlags.Any | ts.TypeFlags.Unknown | ts.TypeFlags.TypeParameter))))) return true;
|
|
2098
|
+
return !!(object.objectFlags & ts.ObjectFlags.Interface && checker.getBaseTypes(object)?.some(specialBase));
|
|
2099
|
+
};
|
|
2100
|
+
if (specialBase(type)) return false;
|
|
2101
|
+
const properties = type.getProperties();
|
|
2102
|
+
if (properties.length === 0) return false;
|
|
2103
|
+
return properties.every((property) => !property.name.startsWith("__@") && property.declarations?.every((d) => !hasThis(d) && !ts.isMethodSignature(d) && !ts.isMethodDeclaration(d) && !ts.isGetAccessorDeclaration(d) && !ts.isSetAccessorDeclaration(d) && !(ts.getCombinedModifierFlags(d) & (ts.ModifierFlags.Private | ts.ModifierFlags.Protected)) && !("name" in d && d.name && ts.isPrivateIdentifier(d.name))));
|
|
2104
|
+
};
|
|
2105
|
+
for (const file of needsDisplay) {
|
|
2106
|
+
const source = program.getSourceFile(file);
|
|
2107
|
+
const moduleSymbol = source && checker.getSymbolAtLocation(source);
|
|
2108
|
+
if (!source || !moduleSymbol) continue;
|
|
2109
|
+
const original = paths.get(file);
|
|
2110
|
+
const identifiers = /* @__PURE__ */ new Set();
|
|
2111
|
+
const collect = (node) => {
|
|
2112
|
+
if (ts.isIdentifier(node)) identifiers.add(node.text);
|
|
2113
|
+
ts.forEachChild(node, collect);
|
|
2114
|
+
};
|
|
2115
|
+
collect(source);
|
|
2116
|
+
const unique = (stem) => {
|
|
2117
|
+
let name = stem;
|
|
2118
|
+
for (let n = 2; identifiers.has(name); n++) name = `${stem}${n}`;
|
|
2119
|
+
identifiers.add(name);
|
|
2120
|
+
return name;
|
|
2121
|
+
};
|
|
2122
|
+
const views = [];
|
|
2123
|
+
for (const exported of checker.getExportsOfModule(moduleSymbol)) {
|
|
2124
|
+
const name = exported.name;
|
|
2125
|
+
if (name === "default" || !/^[$_\p{ID_Start}][$_\p{ID_Continue}]*$/u.test(name)) continue;
|
|
2126
|
+
const target = exported.flags & ts.SymbolFlags.Alias ? checker.getAliasedSymbol(exported) : exported;
|
|
2127
|
+
if (!plainData(target)) continue;
|
|
2128
|
+
let expression;
|
|
2129
|
+
for (const statement of source.statements) {
|
|
2130
|
+
if ((ts.isInterfaceDeclaration(statement) || ts.isTypeAliasDeclaration(statement)) && statement.name.text === name && checker.getSymbolAtLocation(statement.name) === target) {
|
|
2131
|
+
expression = name;
|
|
2132
|
+
break;
|
|
2133
|
+
}
|
|
2134
|
+
if (!ts.isExportDeclaration(statement)) continue;
|
|
2135
|
+
if (statement.attributes || statement.assertClause) continue;
|
|
2136
|
+
if (statement.exportClause && ts.isNamedExports(statement.exportClause)) {
|
|
2137
|
+
const member = statement.exportClause.elements.find((e) => e.name.text === name);
|
|
2138
|
+
if (member) {
|
|
2139
|
+
const local = member.propertyName ?? member.name;
|
|
2140
|
+
if (!ts.isIdentifier(local)) break;
|
|
2141
|
+
expression = statement.moduleSpecifier ? `import(${statement.moduleSpecifier.getText(source)}).${local.text}` : local.text;
|
|
2142
|
+
break;
|
|
2143
|
+
}
|
|
2144
|
+
} else if (!statement.exportClause && statement.moduleSpecifier) {
|
|
2145
|
+
const from = checker.getSymbolAtLocation(statement.moduleSpecifier);
|
|
2146
|
+
if (from && checker.getExportsOfModule(from).some((e) => e.name === name)) {
|
|
2147
|
+
expression = `import(${statement.moduleSpecifier.getText(source)}).${name}`;
|
|
2148
|
+
break;
|
|
2149
|
+
}
|
|
2150
|
+
}
|
|
2151
|
+
}
|
|
2152
|
+
if (!expression) continue;
|
|
2153
|
+
const docs = exported.getDocumentationComment(checker);
|
|
2154
|
+
const description = ts.displayPartsToString(docs.length ? docs : target.getDocumentationComment(checker));
|
|
2155
|
+
const tags = target.getJsDocTags(checker).map((tag) => `@${tag.name}${tag.text ? ` ${ts.displayPartsToString(tag.text)}` : ""}`);
|
|
2156
|
+
views.push({ name, expression, doc: [description, ...tags].filter(Boolean).join("\n").replace(/\*\//g, "* /") });
|
|
2157
|
+
}
|
|
2158
|
+
if (views.length === 0) continue;
|
|
2159
|
+
const names = new Set(views.map((view) => view.name));
|
|
2160
|
+
const edits = [];
|
|
2161
|
+
for (const statement of source.statements) {
|
|
2162
|
+
if (ts.isExportDeclaration(statement) && statement.exportClause && ts.isNamedExports(statement.exportClause)) {
|
|
2163
|
+
const remaining = statement.exportClause.elements.filter((e) => !names.has(e.name.text));
|
|
2164
|
+
if (remaining.length === statement.exportClause.elements.length) continue;
|
|
2165
|
+
edits.push(remaining.length ? {
|
|
2166
|
+
start: statement.exportClause.getStart(source),
|
|
2167
|
+
end: statement.exportClause.end,
|
|
2168
|
+
text: `{ ${remaining.map((e) => e.getText(source)).join(", ")} }`
|
|
2169
|
+
} : { start: statement.getStart(source), end: statement.end, text: "" });
|
|
2170
|
+
} else if ((ts.isInterfaceDeclaration(statement) || ts.isTypeAliasDeclaration(statement)) && names.has(statement.name.text) && !statement.modifiers?.some((m) => m.kind === ts.SyntaxKind.DefaultKeyword)) {
|
|
2171
|
+
const modifier = statement.modifiers?.find((m) => m.kind === ts.SyntaxKind.ExportKeyword);
|
|
2172
|
+
if (modifier) edits.push({ start: modifier.getStart(source), end: modifier.end, text: "" });
|
|
2173
|
+
}
|
|
2174
|
+
}
|
|
2175
|
+
let output = original;
|
|
2176
|
+
for (const edit of edits.sort((a, b) => b.start - a.start)) output = output.slice(0, edit.start) + edit.text + output.slice(edit.end);
|
|
2177
|
+
const display = unique("__FgDataView");
|
|
2178
|
+
output += `
|
|
2179
|
+
// \u81EA\u52A8\u751F\u6210\u7684\u5B57\u6BB5\u89C6\u56FE\uFF1B\u539F\u5408\u540C\u53CA\u7EC4\u4EF6\u7B7E\u540D\u4FDD\u7559\uFF0C\u6D88\u8D39\u65B9\u65E0\u9700\u81EA\u884C\u6620\u5C04\u3002
|
|
2180
|
+
type ${display}<T> = { [K in keyof T]: T[K] } & {};
|
|
2181
|
+
`;
|
|
2182
|
+
for (const view of views.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0)) {
|
|
2183
|
+
const alias = unique(`__FgData_${view.name}`);
|
|
2184
|
+
if (view.doc) output += `/**
|
|
2185
|
+
${view.doc.split("\n").map((line) => ` * ${line}`).join("\n")}
|
|
2186
|
+
*/
|
|
2187
|
+
`;
|
|
2188
|
+
output += `type ${alias} = ${display}<${view.expression}>;
|
|
2189
|
+
export type { ${alias} as ${view.name} };
|
|
2190
|
+
`;
|
|
2191
|
+
}
|
|
2192
|
+
files.set(import_node_path4.default.relative(base, file).split(import_node_path4.default.sep).join("/"), output);
|
|
2193
|
+
}
|
|
2194
|
+
}
|
|
2195
|
+
|
|
2044
2196
|
// src/dts-generate.ts
|
|
2045
2197
|
function resolveFromRoot(root, pkg) {
|
|
2046
|
-
const req = (0, import_node_module3.createRequire)(
|
|
2198
|
+
const req = (0, import_node_module3.createRequire)(import_node_path5.default.join(root, "package.json"));
|
|
2047
2199
|
let resolved = null;
|
|
2048
2200
|
for (const spec of [`${pkg}/package.json`, pkg]) {
|
|
2049
2201
|
try {
|
|
@@ -2053,18 +2205,18 @@ function resolveFromRoot(root, pkg) {
|
|
|
2053
2205
|
}
|
|
2054
2206
|
}
|
|
2055
2207
|
if (!resolved) return null;
|
|
2056
|
-
let dir =
|
|
2057
|
-
for (let i = 0; i < 5 && !import_node_fs3.default.existsSync(
|
|
2058
|
-
const parent =
|
|
2208
|
+
let dir = import_node_path5.default.dirname(resolved);
|
|
2209
|
+
for (let i = 0; i < 5 && !import_node_fs3.default.existsSync(import_node_path5.default.join(dir, "package.json")); i++) {
|
|
2210
|
+
const parent = import_node_path5.default.dirname(dir);
|
|
2059
2211
|
if (parent === dir) return null;
|
|
2060
2212
|
dir = parent;
|
|
2061
2213
|
}
|
|
2062
|
-
return import_node_fs3.default.existsSync(
|
|
2214
|
+
return import_node_fs3.default.existsSync(import_node_path5.default.join(dir, "package.json")) ? dir : null;
|
|
2063
2215
|
}
|
|
2064
2216
|
function installHint(root, pkg) {
|
|
2065
2217
|
const pkgManager = (() => {
|
|
2066
|
-
if (import_node_fs3.default.existsSync(
|
|
2067
|
-
if (import_node_fs3.default.existsSync(
|
|
2218
|
+
if (import_node_fs3.default.existsSync(import_node_path5.default.join(root, "pnpm-lock.yaml"))) return "pnpm";
|
|
2219
|
+
if (import_node_fs3.default.existsSync(import_node_path5.default.join(root, "yarn.lock"))) return "yarn";
|
|
2068
2220
|
return "npm";
|
|
2069
2221
|
})();
|
|
2070
2222
|
const devFlag = pkgManager === "pnpm" ? "-D" : "--save-dev";
|
|
@@ -2117,7 +2269,7 @@ function computeStaticClosure(ts, entryFiles, resolver, root) {
|
|
|
2117
2269
|
continue;
|
|
2118
2270
|
}
|
|
2119
2271
|
if (file.endsWith(".vue")) {
|
|
2120
|
-
const req = (0, import_node_module3.createRequire)(
|
|
2272
|
+
const req = (0, import_node_module3.createRequire)(import_node_path5.default.join(root, "package.json"));
|
|
2121
2273
|
const { parse: parse2 } = req("vue/compiler-sfc");
|
|
2122
2274
|
const { descriptor } = parse2(text);
|
|
2123
2275
|
text = [descriptor.script?.content, descriptor.scriptSetup?.content].filter(Boolean).join("\n");
|
|
@@ -2139,16 +2291,16 @@ import ${JSON.stringify(descriptor.script.src)}`;
|
|
|
2139
2291
|
const r = resolver(spec, file);
|
|
2140
2292
|
let resolved = r && !r.fromNodeModules ? r.resolved : null;
|
|
2141
2293
|
if (!resolved) {
|
|
2142
|
-
const base =
|
|
2143
|
-
for (const c of [base, `${base}.vue`, `${base}.ts`, `${base}.tsx`,
|
|
2294
|
+
const base = import_node_path5.default.resolve(import_node_path5.default.dirname(file), spec);
|
|
2295
|
+
for (const c of [base, `${base}.vue`, `${base}.ts`, `${base}.tsx`, import_node_path5.default.join(base, "index.ts")]) {
|
|
2144
2296
|
if (import_node_fs3.default.existsSync(c)) {
|
|
2145
2297
|
resolved = c;
|
|
2146
2298
|
break;
|
|
2147
2299
|
}
|
|
2148
2300
|
}
|
|
2149
2301
|
}
|
|
2150
|
-
if (resolved && !resolved.includes(`${
|
|
2151
|
-
queue.push(
|
|
2302
|
+
if (resolved && !resolved.includes(`${import_node_path5.default.sep}node_modules${import_node_path5.default.sep}`)) {
|
|
2303
|
+
queue.push(import_node_path5.default.resolve(resolved));
|
|
2152
2304
|
}
|
|
2153
2305
|
}
|
|
2154
2306
|
}
|
|
@@ -2159,7 +2311,7 @@ function parseErrorFiles(stdout, root) {
|
|
|
2159
2311
|
const out = /* @__PURE__ */ new Set();
|
|
2160
2312
|
for (const line of stdout.split("\n")) {
|
|
2161
2313
|
const m = line.match(/^([^)(]+)\((\d+),(\d+)\): error TS/);
|
|
2162
|
-
if (m) out.add(
|
|
2314
|
+
if (m) out.add(import_node_path5.default.resolve(root, m[1].trim()));
|
|
2163
2315
|
}
|
|
2164
2316
|
return out;
|
|
2165
2317
|
}
|
|
@@ -2168,13 +2320,13 @@ function resolveTypesEntries(root, baseCo, diagnostics) {
|
|
|
2168
2320
|
if (raw === void 0) return [];
|
|
2169
2321
|
baseCo.types = [];
|
|
2170
2322
|
if (!Array.isArray(raw)) return [];
|
|
2171
|
-
const req = (0, import_node_module3.createRequire)(
|
|
2323
|
+
const req = (0, import_node_module3.createRequire)(import_node_path5.default.join(root, "package.json"));
|
|
2172
2324
|
const out = [];
|
|
2173
2325
|
for (const entry of raw) {
|
|
2174
2326
|
if (typeof entry !== "string" || entry.length === 0) continue;
|
|
2175
|
-
const direct = [
|
|
2327
|
+
const direct = [import_node_path5.default.resolve(root, `${entry}.d.ts`), import_node_path5.default.resolve(root, entry, "index.d.ts"), import_node_path5.default.resolve(root, "node_modules", `${entry}.d.ts`), import_node_path5.default.resolve(root, "node_modules", entry, "index.d.ts"), import_node_path5.default.resolve(root, "node_modules/@types", entry, "index.d.ts")];
|
|
2176
2328
|
let hit = direct.find((c) => import_node_fs3.default.existsSync(c));
|
|
2177
|
-
if (!hit && !entry.startsWith(".") && !
|
|
2329
|
+
if (!hit && !entry.startsWith(".") && !import_node_path5.default.isAbsolute(entry)) {
|
|
2178
2330
|
try {
|
|
2179
2331
|
const r = req.resolve(entry);
|
|
2180
2332
|
for (const c of [r.replace(/\.js$/, ".d.ts"), `${r}.d.ts`, r]) {
|
|
@@ -2202,27 +2354,27 @@ function hasVueFilesUnderSources(root) {
|
|
|
2202
2354
|
}
|
|
2203
2355
|
for (const e of entries) {
|
|
2204
2356
|
if (e.name === "node_modules" || e.name === ".git" || e.name === "dist") continue;
|
|
2205
|
-
const p =
|
|
2357
|
+
const p = import_node_path5.default.join(dir, e.name);
|
|
2206
2358
|
budget.left -= 1;
|
|
2207
2359
|
if (e.isFile() && e.name.endsWith(".vue")) return true;
|
|
2208
2360
|
if (e.isDirectory() && scan(p, budget)) return true;
|
|
2209
2361
|
}
|
|
2210
2362
|
return false;
|
|
2211
2363
|
};
|
|
2212
|
-
const srcDir =
|
|
2364
|
+
const srcDir = import_node_path5.default.join(root, "src");
|
|
2213
2365
|
return scan(import_node_fs3.default.existsSync(srcDir) ? srcDir : root, { left: 2e3 });
|
|
2214
2366
|
}
|
|
2215
2367
|
function commonDirOf(files) {
|
|
2216
2368
|
if (files.length === 0) return "";
|
|
2217
|
-
let dir =
|
|
2369
|
+
let dir = import_node_path5.default.dirname(files[0]);
|
|
2218
2370
|
for (const f of files) {
|
|
2219
|
-
const rel =
|
|
2371
|
+
const rel = import_node_path5.default.relative(dir, f);
|
|
2220
2372
|
if (rel.startsWith("..")) {
|
|
2221
|
-
const parts =
|
|
2222
|
-
const cur = dir.split(
|
|
2373
|
+
const parts = import_node_path5.default.dirname(f).split(import_node_path5.default.sep);
|
|
2374
|
+
const cur = dir.split(import_node_path5.default.sep);
|
|
2223
2375
|
let i = 0;
|
|
2224
2376
|
while (i < parts.length && i < cur.length && parts[i] === cur[i]) i++;
|
|
2225
|
-
dir = parts.slice(0, i).join(
|
|
2377
|
+
dir = parts.slice(0, i).join(import_node_path5.default.sep) || import_node_path5.default.sep;
|
|
2226
2378
|
}
|
|
2227
2379
|
}
|
|
2228
2380
|
return dir;
|
|
@@ -2263,12 +2415,12 @@ function loadTsContext(root, ts, diagnostics) {
|
|
|
2263
2415
|
diagnostics.push(`tsconfig \u89E3\u6790\u5931\u8D25\uFF08${tsconfigFile}\uFF09\uFF1A${ts.flattenDiagnosticMessageText(raw.error.messageText, " ")}`);
|
|
2264
2416
|
return null;
|
|
2265
2417
|
}
|
|
2266
|
-
const parsed = ts.parseJsonConfigFileContent(raw.config, ts.sys,
|
|
2418
|
+
const parsed = ts.parseJsonConfigFileContent(raw.config, ts.sys, import_node_path5.default.dirname(tsconfigFile), void 0, void 0, void 0, [
|
|
2267
2419
|
{ extension: ".vue", isMixedContent: true, scriptKind: ts.ScriptKind.Deferred }
|
|
2268
2420
|
]);
|
|
2269
2421
|
const co = { ...parsed.options };
|
|
2270
|
-
if (typeof co.baseUrl === "string" && !
|
|
2271
|
-
co.baseUrl =
|
|
2422
|
+
if (typeof co.baseUrl === "string" && !import_node_path5.default.isAbsolute(co.baseUrl)) {
|
|
2423
|
+
co.baseUrl = import_node_path5.default.resolve(import_node_path5.default.dirname(tsconfigFile), co.baseUrl);
|
|
2272
2424
|
}
|
|
2273
2425
|
if (parsed.errors.length > 0) {
|
|
2274
2426
|
const fatal = parsed.errors.filter((e) => e.category === ts.DiagnosticCategory.Error);
|
|
@@ -2284,7 +2436,7 @@ function loadTsContext(root, ts, diagnostics) {
|
|
|
2284
2436
|
compilerOptions: co,
|
|
2285
2437
|
rawOptions: raw.config.compilerOptions ?? {},
|
|
2286
2438
|
projectFiles: parsed.fileNames.filter((f) => !f.endsWith(".d.ts")),
|
|
2287
|
-
ambientInputs: parsed.fileNames.filter((f) => f.endsWith(".d.ts") && !f.includes(`${
|
|
2439
|
+
ambientInputs: parsed.fileNames.filter((f) => f.endsWith(".d.ts") && !f.includes(`${import_node_path5.default.sep}node_modules${import_node_path5.default.sep}`)),
|
|
2288
2440
|
tsconfigFile
|
|
2289
2441
|
};
|
|
2290
2442
|
}
|
|
@@ -2295,7 +2447,7 @@ function makeResolver(ts, co) {
|
|
|
2295
2447
|
let resolved = r.resolvedModule?.resolvedFileName;
|
|
2296
2448
|
if (resolved?.endsWith(".vue.ts") && ts.sys.fileExists(resolved.slice(0, -3))) resolved = resolved.slice(0, -3);
|
|
2297
2449
|
if (!resolved) return null;
|
|
2298
|
-
return { resolved, fromNodeModules: resolved.includes(`${
|
|
2450
|
+
return { resolved, fromNodeModules: resolved.includes(`${import_node_path5.default.sep}node_modules${import_node_path5.default.sep}`) };
|
|
2299
2451
|
};
|
|
2300
2452
|
}
|
|
2301
2453
|
async function generateTypesBundle(input) {
|
|
@@ -2308,7 +2460,7 @@ async function generateTypesBundle(input) {
|
|
|
2308
2460
|
if (!tsPkgDir) {
|
|
2309
2461
|
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")}`] };
|
|
2310
2462
|
}
|
|
2311
|
-
const tsReq = (0, import_node_module3.createRequire)(
|
|
2463
|
+
const tsReq = (0, import_node_module3.createRequire)(import_node_path5.default.join(tsPkgDir, "package.json"));
|
|
2312
2464
|
const ts = tsReq("typescript");
|
|
2313
2465
|
const ctx = loadTsContext(root, ts, diagnostics);
|
|
2314
2466
|
if (!ctx) return { ok: false, diagnostics };
|
|
@@ -2316,9 +2468,9 @@ async function generateTypesBundle(input) {
|
|
|
2316
2468
|
const entryMap = /* @__PURE__ */ new Map();
|
|
2317
2469
|
for (const expose of exposes) {
|
|
2318
2470
|
const raw = expose.import.replace(/^\.?\//, "");
|
|
2319
|
-
let abs =
|
|
2471
|
+
let abs = import_node_path5.default.resolve(root, raw);
|
|
2320
2472
|
if (!import_node_fs3.default.existsSync(abs)) {
|
|
2321
|
-
const viaResolver = resolver(expose.import,
|
|
2473
|
+
const viaResolver = resolver(expose.import, import_node_path5.default.join(root, "package.json"));
|
|
2322
2474
|
if (viaResolver && !viaResolver.fromNodeModules) abs = viaResolver.resolved;
|
|
2323
2475
|
}
|
|
2324
2476
|
abs = abs.replace(/\.js$/, ".ts");
|
|
@@ -2350,17 +2502,17 @@ async function generateTypesBundle(input) {
|
|
|
2350
2502
|
};
|
|
2351
2503
|
}
|
|
2352
2504
|
tool = "vue-tsc";
|
|
2353
|
-
const vueTscPkg = JSON.parse(import_node_fs3.default.readFileSync(
|
|
2505
|
+
const vueTscPkg = JSON.parse(import_node_fs3.default.readFileSync(import_node_path5.default.join(vueTscDir, "package.json"), "utf8"));
|
|
2354
2506
|
const binRel = vueTscPkg.bin?.["vue-tsc"] ?? vueTscPkg.bin?.["vue-tsc.js"] ?? "bin/vue-tsc.js";
|
|
2355
|
-
const binPath =
|
|
2507
|
+
const binPath = import_node_path5.default.resolve(vueTscDir, binRel);
|
|
2356
2508
|
const scopedVueProgram = /^1\./.test(vueTscPkg.version);
|
|
2357
2509
|
if (!import_node_fs3.default.existsSync(binPath)) {
|
|
2358
2510
|
return { ok: false, diagnostics: [`vue-tsc \u5165\u53E3\u4E0D\u5B58\u5728\uFF08${binPath}\uFF09\u3002\u8BF7\u91CD\u65B0\u5B89\u88C5 vue-tsc\u3002`] };
|
|
2359
2511
|
}
|
|
2360
2512
|
const cacheDir = input.incrementalDir;
|
|
2361
2513
|
if (cacheDir) import_node_fs3.default.mkdirSync(cacheDir, { recursive: true });
|
|
2362
|
-
const tmpCfg =
|
|
2363
|
-
const outDir = cacheDir ?
|
|
2514
|
+
const tmpCfg = import_node_path5.default.join(root, `.fulgurjs-types-tsconfig-${cacheDir ? import_node_path5.default.basename(cacheDir) : `${process.pid}-${import_node_crypto.default.randomUUID()}`}.json`);
|
|
2515
|
+
const outDir = cacheDir ? import_node_path5.default.join(cacheDir, "emit") : import_node_fs3.default.mkdtempSync(import_node_path5.default.join(root, "node_modules", ".fulgurjs-types-emit-"));
|
|
2364
2516
|
const clearOutput = () => {
|
|
2365
2517
|
if (!cacheDir) import_node_fs3.default.rmSync(outDir, { recursive: true, force: true });
|
|
2366
2518
|
};
|
|
@@ -2387,14 +2539,14 @@ async function generateTypesBundle(input) {
|
|
|
2387
2539
|
sourceMap: false,
|
|
2388
2540
|
outDir,
|
|
2389
2541
|
rootDir,
|
|
2390
|
-
...cacheDir && !scopedVueProgram ? { incremental: true, tsBuildInfoFile:
|
|
2542
|
+
...cacheDir && !scopedVueProgram ? { incremental: true, tsBuildInfoFile: import_node_path5.default.join(cacheDir, "state.tsbuildinfo") } : {}
|
|
2391
2543
|
},
|
|
2392
2544
|
// 显式 types 是声明程序的根文件,不能再受工程 exclude: ["node_modules"] 过滤。
|
|
2393
2545
|
// include 仍受继承的 exclude 约束;files 保留 vite/client 等已解析的全局声明。
|
|
2394
|
-
files: resolvedTypeFiles.map((f) =>
|
|
2546
|
+
files: resolvedTypeFiles.map((f) => import_node_path5.default.relative(root, f)),
|
|
2395
2547
|
include: [
|
|
2396
|
-
...entryFiles.map((f) =>
|
|
2397
|
-
...ctx.ambientInputs.map((f) =>
|
|
2548
|
+
...entryFiles.map((f) => import_node_path5.default.relative(root, f)),
|
|
2549
|
+
...ctx.ambientInputs.map((f) => import_node_path5.default.relative(root, f))
|
|
2398
2550
|
]
|
|
2399
2551
|
}));
|
|
2400
2552
|
if (process.env.FG_DUMP_TSCFG) import_node_fs3.default.writeFileSync(process.env.FG_DUMP_TSCFG, import_node_fs3.default.readFileSync(tmpCfg, "utf8"));
|
|
@@ -2427,7 +2579,7 @@ async function generateTypesBundle(input) {
|
|
|
2427
2579
|
signal?.addEventListener("abort", abort, { once: true });
|
|
2428
2580
|
if (signal?.aborted) abort();
|
|
2429
2581
|
});
|
|
2430
|
-
const heapMarker = cacheDir ?
|
|
2582
|
+
const heapMarker = cacheDir ? import_node_path5.default.join(cacheDir, "raised-heap") : void 0;
|
|
2431
2583
|
const raisedArgs = [`--max-old-space-size=${process.env.FG_DTS_MAX_OLD_SPACE ?? "8192"}`];
|
|
2432
2584
|
const initialArgs = heapMarker && import_node_fs3.default.existsSync(heapMarker) ? raisedArgs : [];
|
|
2433
2585
|
let { err, stdout, stderr } = await attempt(initialArgs);
|
|
@@ -2504,7 +2656,7 @@ ${tail}`);
|
|
|
2504
2656
|
collectEmitted(ts, outDir, rootDir, emitted, closure);
|
|
2505
2657
|
clearOutput();
|
|
2506
2658
|
} else {
|
|
2507
|
-
const outDir = import_node_fs3.default.mkdtempSync(
|
|
2659
|
+
const outDir = import_node_fs3.default.mkdtempSync(import_node_path5.default.join(root, "node_modules", ".fulgurjs-types-emit-"));
|
|
2508
2660
|
const program = ts.createProgram([...entryFiles, ...ctx.ambientInputs, ...resolveTypesEntries(root, ctx.rawOptions, [])], {
|
|
2509
2661
|
...ctx.compilerOptions,
|
|
2510
2662
|
noEmit: false,
|
|
@@ -2522,13 +2674,13 @@ ${tail}`);
|
|
|
2522
2674
|
...program.getOptionsDiagnostics(),
|
|
2523
2675
|
...program.getSemanticDiagnostics(),
|
|
2524
2676
|
...program.getDeclarationDiagnostics()
|
|
2525
|
-
].filter((d) => d.category === ts.DiagnosticCategory.Error).filter((d) => !d.file || closure.has(
|
|
2677
|
+
].filter((d) => d.category === ts.DiagnosticCategory.Error).filter((d) => !d.file || closure.has(import_node_path5.default.resolve(d.file.fileName)));
|
|
2526
2678
|
if (errs.length > 0) {
|
|
2527
2679
|
import_node_fs3.default.rmSync(outDir, { recursive: true, force: true });
|
|
2528
2680
|
diagnostics.push(
|
|
2529
2681
|
`\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`,
|
|
2530
2682
|
...errs.slice(0, 20).map((d) => {
|
|
2531
|
-
const f = d.file ?
|
|
2683
|
+
const f = d.file ? import_node_path5.default.relative(root, d.file.fileName) : "?";
|
|
2532
2684
|
const pos = d.file ? d.file.getLineAndCharacterOfPosition(d.start ?? 0) : { line: 0 };
|
|
2533
2685
|
return ` ${f}:${pos.line + 1} TS${d.code}: ${ts.flattenDiagnosticMessageText(d.messageText, " ")}`;
|
|
2534
2686
|
})
|
|
@@ -2536,11 +2688,11 @@ ${tail}`);
|
|
|
2536
2688
|
return { ok: false, diagnostics };
|
|
2537
2689
|
}
|
|
2538
2690
|
for (const source of program.getSourceFiles()) {
|
|
2539
|
-
if (source.isDeclarationFile || source.fileName.endsWith(".json") || !closure.has(
|
|
2691
|
+
if (source.isDeclarationFile || source.fileName.endsWith(".json") || !closure.has(import_node_path5.default.resolve(source.fileName))) continue;
|
|
2540
2692
|
const emitResult = program.emit(source, void 0, void 0, true);
|
|
2541
2693
|
if (emitResult.emitSkipped) {
|
|
2542
2694
|
import_node_fs3.default.rmSync(outDir, { recursive: true, force: true });
|
|
2543
|
-
return { ok: false, diagnostics: [`TypeScript \u58F0\u660E emit \u5931\u8D25\uFF08emitSkipped\uFF09\uFF1A${
|
|
2695
|
+
return { ok: false, diagnostics: [`TypeScript \u58F0\u660E emit \u5931\u8D25\uFF08emitSkipped\uFF09\uFF1A${import_node_path5.default.relative(root, source.fileName)}\u3002\u8BF7\u68C0\u67E5 tsconfig \u7F16\u8BD1\u9009\u9879\u3002`] };
|
|
2544
2696
|
}
|
|
2545
2697
|
}
|
|
2546
2698
|
collectEmitted(ts, outDir, rootDir, emitted, closure);
|
|
@@ -2586,7 +2738,7 @@ export default value;
|
|
|
2586
2738
|
const externals = /* @__PURE__ */ new Set();
|
|
2587
2739
|
const srcToRel = /* @__PURE__ */ new Map();
|
|
2588
2740
|
for (const srcAbs of emitted.keys()) {
|
|
2589
|
-
const rel =
|
|
2741
|
+
const rel = import_node_path5.default.relative(rootDir, srcAbs).split(import_node_path5.default.sep).join("/");
|
|
2590
2742
|
const declRel = rel.endsWith(".d.ts") ? `files/${rel}` : rel.endsWith(".vue") ? `files/${rel}.d.ts` : `files/${rel.replace(/\.(mts|cts|ts|tsx|jsx|js)$/, "")}.d.ts`;
|
|
2591
2743
|
srcToRel.set(srcAbs, declRel);
|
|
2592
2744
|
}
|
|
@@ -2598,7 +2750,7 @@ export default value;
|
|
|
2598
2750
|
if (reachable.has(srcAbs)) continue;
|
|
2599
2751
|
const text = emitted.get(srcAbs);
|
|
2600
2752
|
if (text === void 0) {
|
|
2601
|
-
diagnostics.push(`\u516C\u5F00\u58F0\u660E\u4F9D\u8D56\u672A\u4EA7\u51FA\uFF1A${
|
|
2753
|
+
diagnostics.push(`\u516C\u5F00\u58F0\u660E\u4F9D\u8D56\u672A\u4EA7\u51FA\uFF1A${import_node_path5.default.relative(root, srcAbs)}\u3002`);
|
|
2602
2754
|
return { ok: false, diagnostics };
|
|
2603
2755
|
}
|
|
2604
2756
|
const rewritten = rewriteSpecifiers(
|
|
@@ -2623,11 +2775,10 @@ export default value;
|
|
|
2623
2775
|
for (const [srcAbs, text] of reachable) {
|
|
2624
2776
|
const rel = srcToRel.get(srcAbs);
|
|
2625
2777
|
if (text.includes(root)) {
|
|
2626
|
-
diagnostics.push(`\u58F0\u660E\u6587\u4EF6\u5305\u542B\u672C\u673A\u7EDD\u5BF9\u8DEF\u5F84\uFF08${
|
|
2778
|
+
diagnostics.push(`\u58F0\u660E\u6587\u4EF6\u5305\u542B\u672C\u673A\u7EDD\u5BF9\u8DEF\u5F84\uFF08${import_node_path5.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`);
|
|
2627
2779
|
leaked = true;
|
|
2628
2780
|
}
|
|
2629
2781
|
files.set(rel, text);
|
|
2630
|
-
filesDigest[rel] = import_node_crypto.default.createHash("sha256").update(text, "utf8").digest("hex");
|
|
2631
2782
|
}
|
|
2632
2783
|
if (leaked) return { ok: false, diagnostics };
|
|
2633
2784
|
const exposesMap = {};
|
|
@@ -2639,6 +2790,13 @@ export default value;
|
|
|
2639
2790
|
}
|
|
2640
2791
|
exposesMap[name] = { declaration: declRel };
|
|
2641
2792
|
}
|
|
2793
|
+
displayPublicDataTypes(ts, files, Object.values(exposesMap).map((entry) => entry.declaration), root, ctx.compilerOptions);
|
|
2794
|
+
for (const [rel, text] of files) {
|
|
2795
|
+
if (text.includes(root)) {
|
|
2796
|
+
return { ok: false, diagnostics: [...diagnostics, `\u58F0\u660E\u6587\u4EF6\u5305\u542B\u672C\u673A\u7EDD\u5BF9\u8DEF\u5F84\uFF08${rel}\uFF09\uFF0C\u5DF2\u62D2\u7EDD\u4EA7\u51FA\u3002`] };
|
|
2797
|
+
}
|
|
2798
|
+
filesDigest[rel] = import_node_crypto.default.createHash("sha256").update(text, "utf8").digest("hex");
|
|
2799
|
+
}
|
|
2642
2800
|
const index = {
|
|
2643
2801
|
schemaVersion: TYPES_SCHEMA_VERSION,
|
|
2644
2802
|
generator: "@fulgurjs/federation",
|
|
@@ -2655,18 +2813,18 @@ export default value;
|
|
|
2655
2813
|
}
|
|
2656
2814
|
function collectEmitted(ts, outDir, rootDir, out, closure) {
|
|
2657
2815
|
const walk = (dir) => import_node_fs3.default.readdirSync(dir, { withFileTypes: true }).flatMap((d) => {
|
|
2658
|
-
const p =
|
|
2816
|
+
const p = import_node_path5.default.join(dir, d.name);
|
|
2659
2817
|
return d.isDirectory() ? walk(p) : [p];
|
|
2660
2818
|
});
|
|
2661
2819
|
if (!import_node_fs3.default.existsSync(outDir)) return;
|
|
2662
2820
|
for (const file of walk(outDir)) {
|
|
2663
2821
|
if (!file.endsWith(".d.ts")) continue;
|
|
2664
|
-
const rel =
|
|
2822
|
+
const rel = import_node_path5.default.relative(outDir, file);
|
|
2665
2823
|
const srcRel = rel.endsWith(".vue.d.ts") ? rel.replace(/\.d\.ts$/, "") : rel.replace(/\.d\.ts$/, ".ts");
|
|
2666
|
-
let srcAbs =
|
|
2824
|
+
let srcAbs = import_node_path5.default.join(rootDir, srcRel);
|
|
2667
2825
|
if (!out.has(srcAbs) && !import_node_fs3.default.existsSync(srcAbs)) {
|
|
2668
2826
|
for (const ext of [".tsx", ".jsx", ".mts", ".cts", ".js"]) {
|
|
2669
|
-
const candidate =
|
|
2827
|
+
const candidate = import_node_path5.default.join(rootDir, rel.replace(/\.d\.ts$/, ext));
|
|
2670
2828
|
if (import_node_fs3.default.existsSync(candidate)) {
|
|
2671
2829
|
srcAbs = candidate;
|
|
2672
2830
|
break;
|
|
@@ -2684,7 +2842,7 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
|
|
|
2684
2842
|
const fail = (spec) => {
|
|
2685
2843
|
failed = true;
|
|
2686
2844
|
diagnostics.push(
|
|
2687
|
-
`\u58F0\u660E\u4F9D\u8D56\u4E0D\u5B8C\u6574\uFF1A${
|
|
2845
|
+
`\u58F0\u660E\u4F9D\u8D56\u4E0D\u5B8C\u6574\uFF1A${import_node_path5.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`
|
|
2688
2846
|
);
|
|
2689
2847
|
return null;
|
|
2690
2848
|
};
|
|
@@ -2715,9 +2873,9 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
|
|
|
2715
2873
|
return target;
|
|
2716
2874
|
};
|
|
2717
2875
|
const rewriteTo = (targetRel) => {
|
|
2718
|
-
const fromDir =
|
|
2876
|
+
const fromDir = import_node_path5.default.posix.dirname(declRel);
|
|
2719
2877
|
const toNoExt = targetRel.replace(/\.d\.ts$/, "");
|
|
2720
|
-
let rel =
|
|
2878
|
+
let rel = import_node_path5.default.posix.relative(fromDir, toNoExt);
|
|
2721
2879
|
if (!rel.startsWith(".")) rel = `./${rel}`;
|
|
2722
2880
|
return rel;
|
|
2723
2881
|
};
|
|
@@ -2801,14 +2959,144 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
|
|
|
2801
2959
|
return out;
|
|
2802
2960
|
}
|
|
2803
2961
|
|
|
2962
|
+
// src/dts-cache-worker-client.ts
|
|
2963
|
+
var import_node_fs4 = __toESM(require("fs"), 1);
|
|
2964
|
+
var import_node_path6 = __toESM(require("path"), 1);
|
|
2965
|
+
var import_node_crypto2 = __toESM(require("crypto"), 1);
|
|
2966
|
+
var import_node_url = require("url");
|
|
2967
|
+
var import_node_worker_threads = require("worker_threads");
|
|
2968
|
+
var import_meta = {};
|
|
2969
|
+
function createTypesCacheWorker() {
|
|
2970
|
+
let worker = null;
|
|
2971
|
+
let disposed = false;
|
|
2972
|
+
const pending = /* @__PURE__ */ new Map();
|
|
2973
|
+
const temporary = /* @__PURE__ */ new Set();
|
|
2974
|
+
let watches = [];
|
|
2975
|
+
const fail = (error) => {
|
|
2976
|
+
for (const request of pending.values()) request.reject(error);
|
|
2977
|
+
pending.clear();
|
|
2978
|
+
};
|
|
2979
|
+
const ensure = () => {
|
|
2980
|
+
if (disposed) throw new Error("\u7C7B\u578B\u7F13\u5B58\u670D\u52A1\u5DF2\u5173\u95ED");
|
|
2981
|
+
if (worker) return worker;
|
|
2982
|
+
const self = typeof __filename === "string" ? __filename : (0, import_node_url.fileURLToPath)(import_meta.url);
|
|
2983
|
+
const directory = import_node_path6.default.dirname(self);
|
|
2984
|
+
const file = [import_node_path6.default.join(directory, "dts-cache-worker.cjs"), import_node_path6.default.join(directory, "../dist/dts-cache-worker.cjs")].find((file2) => import_node_fs4.default.existsSync(file2));
|
|
2985
|
+
if (!file) throw new Error("\u7C7B\u578B\u7F13\u5B58\u540E\u53F0\u7A0B\u5E8F\u7F3A\u5931\uFF0C\u8BF7\u91CD\u65B0\u6784\u5EFA\u6216\u5B89\u88C5\u63D2\u4EF6");
|
|
2986
|
+
const running = new import_node_worker_threads.Worker(file);
|
|
2987
|
+
worker = running;
|
|
2988
|
+
running.on("message", (response) => {
|
|
2989
|
+
const request = pending.get(response.id);
|
|
2990
|
+
if (!request) return;
|
|
2991
|
+
pending.delete(response.id);
|
|
2992
|
+
if (pending.size === 0) running.unref();
|
|
2993
|
+
if (response.ok) request.resolve(response.value);
|
|
2994
|
+
else request.reject(new Error(response.error ?? "\u7C7B\u578B\u7F13\u5B58\u540E\u53F0\u4EFB\u52A1\u5931\u8D25"));
|
|
2995
|
+
});
|
|
2996
|
+
running.on("error", (error) => fail(error));
|
|
2997
|
+
running.on("exit", (code) => {
|
|
2998
|
+
if (worker === running) worker = null;
|
|
2999
|
+
if (!disposed) fail(new Error(`\u7C7B\u578B\u7F13\u5B58\u540E\u53F0\u7A0B\u5E8F\u9000\u51FA\uFF08${code}\uFF09`));
|
|
3000
|
+
});
|
|
3001
|
+
running.unref();
|
|
3002
|
+
return running;
|
|
3003
|
+
};
|
|
3004
|
+
const call = (operation, input, payload = {}) => new Promise((resolve, reject) => {
|
|
3005
|
+
const id = import_node_crypto2.default.randomUUID();
|
|
3006
|
+
try {
|
|
3007
|
+
const running = ensure();
|
|
3008
|
+
pending.set(id, { resolve, reject });
|
|
3009
|
+
running.ref();
|
|
3010
|
+
running.postMessage({ id, operation, input: { ...input, execution: { env: Object.fromEntries(Object.entries(process.env).filter(([key]) => /^(NODE_ENV|NODE_OPTIONS|TS_NODE_|VUE_|VOLAR_)/.test(key))), execArgv: process.execArgv } }, ...payload });
|
|
3011
|
+
} catch (error) {
|
|
3012
|
+
pending.delete(id);
|
|
3013
|
+
if (pending.size === 0) worker?.unref();
|
|
3014
|
+
reject(error);
|
|
3015
|
+
}
|
|
3016
|
+
});
|
|
3017
|
+
return {
|
|
3018
|
+
read: (input) => call("read", input),
|
|
3019
|
+
capture: (input) => call("capture", input),
|
|
3020
|
+
validate: (input, handle, stable) => call("validate", input, { token: handle.token, stable }),
|
|
3021
|
+
async write(input, handle, result) {
|
|
3022
|
+
const temporaryId = import_node_crypto2.default.randomUUID();
|
|
3023
|
+
const digest = import_node_crypto2.default.createHash("sha256").update(import_node_path6.default.resolve(input.root)).digest("hex").slice(0, 12);
|
|
3024
|
+
const file = import_node_path6.default.join(input.root, "node_modules/.cache/fulgurjs/types", `provider-${digest}.json.gz.${process.pid}.${temporaryId}.tmp`);
|
|
3025
|
+
temporary.add(file);
|
|
3026
|
+
try {
|
|
3027
|
+
return await call("write", input, { token: handle.token, result, temporaryId });
|
|
3028
|
+
} finally {
|
|
3029
|
+
if (!disposed) {
|
|
3030
|
+
temporary.delete(file);
|
|
3031
|
+
try {
|
|
3032
|
+
import_node_fs4.default.rmSync(file, { force: true });
|
|
3033
|
+
} catch {
|
|
3034
|
+
}
|
|
3035
|
+
}
|
|
3036
|
+
}
|
|
3037
|
+
},
|
|
3038
|
+
async release(input, handle) {
|
|
3039
|
+
if (!disposed) await call("release", input, { token: handle.token });
|
|
3040
|
+
},
|
|
3041
|
+
watch(handle, changed) {
|
|
3042
|
+
const groups = /* @__PURE__ */ new Map();
|
|
3043
|
+
for (const file of handle.externalInputs) {
|
|
3044
|
+
let directory = import_node_path6.default.dirname(file);
|
|
3045
|
+
for (; ; ) {
|
|
3046
|
+
try {
|
|
3047
|
+
if (import_node_fs4.default.statSync(directory).isDirectory()) break;
|
|
3048
|
+
} catch {
|
|
3049
|
+
}
|
|
3050
|
+
const parent = import_node_path6.default.dirname(directory);
|
|
3051
|
+
if (parent === directory) break;
|
|
3052
|
+
directory = parent;
|
|
3053
|
+
}
|
|
3054
|
+
const name = import_node_path6.default.relative(directory, file).split(import_node_path6.default.sep)[0];
|
|
3055
|
+
const names = groups.get(directory) ?? /* @__PURE__ */ new Set();
|
|
3056
|
+
names.add(name);
|
|
3057
|
+
groups.set(directory, names);
|
|
3058
|
+
}
|
|
3059
|
+
const next = [];
|
|
3060
|
+
try {
|
|
3061
|
+
for (const [directory, names] of groups) next.push(import_node_fs4.default.watch(directory, { persistent: false }, (_event, filename) => {
|
|
3062
|
+
if (!filename || names.has(filename.toString().split(import_node_path6.default.sep)[0])) changed();
|
|
3063
|
+
}));
|
|
3064
|
+
} catch (error) {
|
|
3065
|
+
for (const watcher of next) watcher.close();
|
|
3066
|
+
throw error;
|
|
3067
|
+
}
|
|
3068
|
+
for (const watcher of watches) watcher.close();
|
|
3069
|
+
watches = next;
|
|
3070
|
+
},
|
|
3071
|
+
dispose() {
|
|
3072
|
+
if (disposed) return;
|
|
3073
|
+
disposed = true;
|
|
3074
|
+
for (const watcher of watches) watcher.close();
|
|
3075
|
+
watches = [];
|
|
3076
|
+
fail(new Error("\u7C7B\u578B\u7F13\u5B58\u670D\u52A1\u5DF2\u5173\u95ED"));
|
|
3077
|
+
const running = worker;
|
|
3078
|
+
worker = null;
|
|
3079
|
+
if (running) void running.terminate().finally(() => {
|
|
3080
|
+
for (const file of temporary) {
|
|
3081
|
+
try {
|
|
3082
|
+
import_node_fs4.default.rmSync(file, { force: true });
|
|
3083
|
+
} catch {
|
|
3084
|
+
}
|
|
3085
|
+
}
|
|
3086
|
+
temporary.clear();
|
|
3087
|
+
});
|
|
3088
|
+
}
|
|
3089
|
+
};
|
|
3090
|
+
}
|
|
3091
|
+
|
|
2804
3092
|
// src/dts-serve.ts
|
|
2805
3093
|
function isTypesInputChange(root, id, outputDir) {
|
|
2806
|
-
const relative =
|
|
2807
|
-
if (relative === ".." || relative.startsWith(`..${
|
|
2808
|
-
if (relative.split(
|
|
2809
|
-
if (
|
|
2810
|
-
const outputRelative =
|
|
2811
|
-
if (!(outputRelative.startsWith(`..${
|
|
3094
|
+
const relative = import_node_path7.default.relative(root, id);
|
|
3095
|
+
if (relative === ".." || relative.startsWith(`..${import_node_path7.default.sep}`) || import_node_path7.default.isAbsolute(relative)) return false;
|
|
3096
|
+
if (relative.split(import_node_path7.default.sep).some((part) => part === "node_modules" || part === ".vite")) return false;
|
|
3097
|
+
if (import_node_path7.default.basename(id).startsWith(".fulgurjs-types-tsconfig-")) return false;
|
|
3098
|
+
const outputRelative = import_node_path7.default.relative(outputDir, id);
|
|
3099
|
+
if (!(outputRelative.startsWith(`..${import_node_path7.default.sep}`) || import_node_path7.default.isAbsolute(outputRelative))) return false;
|
|
2812
3100
|
return /\.(?:[cm]?[jt]sx?|vue|json)$/i.test(id);
|
|
2813
3101
|
}
|
|
2814
3102
|
function createDevTypesServer(options, hooks = {}) {
|
|
@@ -2823,46 +3111,141 @@ function createDevTypesServer(options, hooks = {}) {
|
|
|
2823
3111
|
let lastErrorKey = null;
|
|
2824
3112
|
let incrementalDir;
|
|
2825
3113
|
const clearCache = () => {
|
|
2826
|
-
if (incrementalDir)
|
|
3114
|
+
if (incrementalDir) import_node_fs5.default.rmSync(incrementalDir, { recursive: true, force: true });
|
|
2827
3115
|
incrementalDir = void 0;
|
|
2828
3116
|
};
|
|
2829
3117
|
const publicExposes = options.exposes.filter((e) => !e.internal).map((e) => ({ name: e.name, import: e.import }));
|
|
3118
|
+
const cacheInput = { root: options.root, exposes: publicExposes, pluginVersion: options.pluginVersion, dts: options.dts };
|
|
3119
|
+
let cacheUnavailableAnnounced = false;
|
|
3120
|
+
let inputEpoch = 0;
|
|
3121
|
+
const cache = createTypesCacheWorker();
|
|
3122
|
+
const changed = () => {
|
|
3123
|
+
inputEpoch++;
|
|
3124
|
+
void ensure();
|
|
3125
|
+
};
|
|
3126
|
+
const queueRecheck = (reason) => {
|
|
3127
|
+
pendingInvalidate = true;
|
|
3128
|
+
log(`[fulgurjs] \u7C7B\u578B\u8F93\u5165\u5728\u6821\u9A8C/\u751F\u6210\u671F\u95F4\u53D8\u5316${reason ? `\uFF08${reason}\uFF09` : ""}\uFF0C\u5DF2\u6392\u961F\u91CD\u68C0\uFF1B\u672C\u8F6E\u7ED3\u679C\u4E0D\u53D1\u5E03\u5230\u7F13\u5B58\u3002`);
|
|
3129
|
+
};
|
|
2830
3130
|
const run = async () => {
|
|
3131
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
2831
3132
|
if (disposed) return;
|
|
2832
|
-
|
|
3133
|
+
const epoch = inputEpoch;
|
|
3134
|
+
const started = performance.now();
|
|
3135
|
+
let handle = null;
|
|
2833
3136
|
try {
|
|
2834
|
-
|
|
2835
|
-
const
|
|
2836
|
-
|
|
2837
|
-
|
|
3137
|
+
try {
|
|
3138
|
+
const cached = await cache.read(cacheInput);
|
|
3139
|
+
if (disposed) return;
|
|
3140
|
+
if (cached) {
|
|
3141
|
+
handle = cached;
|
|
3142
|
+
cache.watch(cached, changed);
|
|
3143
|
+
const reason = await cache.validate(cacheInput, cached, false);
|
|
3144
|
+
if (disposed) return;
|
|
3145
|
+
if (epoch !== inputEpoch || pendingInvalidate) {
|
|
3146
|
+
queueRecheck();
|
|
3147
|
+
return;
|
|
3148
|
+
}
|
|
3149
|
+
if (!reason) {
|
|
3150
|
+
files = cached.result.files;
|
|
3151
|
+
revision = cached.result.index.revision;
|
|
3152
|
+
lastErrorKey = null;
|
|
3153
|
+
log(`[fulgurjs] \u7C7B\u578B\u7F13\u5B58\u547D\u4E2D\uFF08\u540E\u53F0\u8F93\u5165\u4E0E\u58F0\u660E\u6458\u8981\u6821\u9A8C ${Math.round(performance.now() - started)}ms\uFF0C${cached.result.fileCount} \u4E2A\u58F0\u660E\u6587\u4EF6\uFF0Crevision ${revision}\uFF09\uFF0C\u65E0\u9700\u91CD\u65B0\u7F16\u8BD1\u3002`);
|
|
3154
|
+
return;
|
|
3155
|
+
}
|
|
3156
|
+
await cache.release(cacheInput, cached);
|
|
3157
|
+
handle = null;
|
|
3158
|
+
}
|
|
3159
|
+
handle = await cache.capture(cacheInput);
|
|
3160
|
+
if (disposed) return;
|
|
3161
|
+
if (handle) cache.watch(handle, changed);
|
|
3162
|
+
else if (!cacheUnavailableAnnounced) {
|
|
3163
|
+
cacheUnavailableAnnounced = true;
|
|
3164
|
+
log("[fulgurjs] \u7C7B\u578B\u7F13\u5B58\uFF1A\u65E0\u6CD5\u5EFA\u7ACB\u5B8C\u6574\u8F93\u5165\u5FEB\u7167\uFF0C\u4F7F\u7528\u6B63\u5E38\u7F16\u8BD1\uFF1B\u81EA\u5B9A\u4E49\u7F16\u8BD1\u63D2\u4EF6\u3001\u5916\u90E8\u6A21\u677F\u6216\u5DE5\u5177\u4E0D\u53EF\u8BFB\u53D6\u65F6\u4E0D\u590D\u7528\u6301\u4E45\u7F13\u5B58\u3002");
|
|
3165
|
+
}
|
|
3166
|
+
} catch (error) {
|
|
3167
|
+
if (disposed) return;
|
|
3168
|
+
if (handle) await cache.release(cacheInput, handle).catch(() => {
|
|
3169
|
+
});
|
|
3170
|
+
handle = null;
|
|
3171
|
+
if (!cacheUnavailableAnnounced) {
|
|
3172
|
+
cacheUnavailableAnnounced = true;
|
|
3173
|
+
warn(`[fulgurjs] \u7C7B\u578B\u7F13\u5B58\u540E\u53F0\u68C0\u67E5\u4E0D\u53EF\u7528\uFF1A${error.message}\uFF1B\u5DF2\u56DE\u5230\u6B63\u5E38\u751F\u6210\u3002\u8BF7\u68C0\u67E5\u63D2\u4EF6\u5B89\u88C5\u53CA\u7F13\u5B58\u76EE\u5F55\u6743\u9650\u3002`);
|
|
3174
|
+
}
|
|
2838
3175
|
}
|
|
2839
|
-
result
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
);
|
|
2857
|
-
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
3176
|
+
let result;
|
|
3177
|
+
try {
|
|
3178
|
+
if (!incrementalDir) {
|
|
3179
|
+
const cacheRoot = import_node_path7.default.join(options.root, "node_modules");
|
|
3180
|
+
import_node_fs5.default.mkdirSync(cacheRoot, { recursive: true });
|
|
3181
|
+
incrementalDir = import_node_fs5.default.mkdtempSync(import_node_path7.default.join(cacheRoot, ".fulgurjs-types-cache-"));
|
|
3182
|
+
}
|
|
3183
|
+
result = await generateTypesBundle({
|
|
3184
|
+
root: options.root,
|
|
3185
|
+
exposes: publicExposes,
|
|
3186
|
+
pluginVersion: options.pluginVersion,
|
|
3187
|
+
signal: controller.signal,
|
|
3188
|
+
incrementalDir
|
|
3189
|
+
});
|
|
3190
|
+
} catch (e) {
|
|
3191
|
+
result = { ok: false, diagnostics: [`\u58F0\u660E\u751F\u6210\u53D1\u751F\u672A\u9884\u671F\u5F02\u5E38\uFF08\u5DF2\u62E6\u622A\uFF09\uFF1A${e.stack ?? e.message}`] };
|
|
3192
|
+
}
|
|
3193
|
+
if (disposed) return;
|
|
3194
|
+
let changedDuringGeneration = pendingInvalidate || epoch !== inputEpoch;
|
|
3195
|
+
if (handle) {
|
|
3196
|
+
try {
|
|
3197
|
+
const reason = await cache.validate(cacheInput, handle, true);
|
|
3198
|
+
if (reason) {
|
|
3199
|
+
queueRecheck(reason);
|
|
3200
|
+
return;
|
|
3201
|
+
}
|
|
3202
|
+
} catch (error) {
|
|
3203
|
+
if (disposed) return;
|
|
3204
|
+
warn(`[fulgurjs] \u7C7B\u578B\u7F13\u5B58\u6821\u9A8C\u5931\u8D25\uFF1A${error.message}\uFF1B\u672C\u8F6E\u4E0D\u5199\u6301\u4E45\u7F13\u5B58\u3002`);
|
|
3205
|
+
await cache.release(cacheInput, handle).catch(() => {
|
|
3206
|
+
});
|
|
3207
|
+
handle = null;
|
|
3208
|
+
}
|
|
3209
|
+
}
|
|
3210
|
+
if (disposed) return;
|
|
3211
|
+
if (changedDuringGeneration || pendingInvalidate || epoch !== inputEpoch) {
|
|
3212
|
+
queueRecheck();
|
|
3213
|
+
return;
|
|
3214
|
+
}
|
|
3215
|
+
if (result.ok) {
|
|
3216
|
+
if (handle) {
|
|
3217
|
+
try {
|
|
3218
|
+
if (!await cache.write(cacheInput, handle, result)) {
|
|
3219
|
+
queueRecheck();
|
|
3220
|
+
return;
|
|
3221
|
+
}
|
|
3222
|
+
} catch (error) {
|
|
3223
|
+
if (disposed) return;
|
|
3224
|
+
warn(`[fulgurjs] \u7C7B\u578B\u7F13\u5B58\u5199\u5165\u5931\u8D25\uFF1A${error.message}\uFF1B\u672C\u8F6E\u58F0\u660E\u6B63\u5E38\u63D0\u4F9B\uFF0C\u4E0B\u6B21\u53EF\u80FD\u91CD\u65B0\u7F16\u8BD1\u3002\u8BF7\u68C0\u67E5 node_modules/.cache/fulgurjs \u7684\u5199\u5165\u6743\u9650\u3002`);
|
|
3225
|
+
}
|
|
3226
|
+
}
|
|
3227
|
+
if (disposed) return;
|
|
3228
|
+
if (pendingInvalidate || epoch !== inputEpoch) {
|
|
3229
|
+
queueRecheck();
|
|
3230
|
+
return;
|
|
3231
|
+
}
|
|
3232
|
+
files = result.files;
|
|
3233
|
+
revision = result.index.revision;
|
|
3234
|
+
lastErrorKey = null;
|
|
3235
|
+
log(`[fulgurjs] \u7C7B\u578B\u8D44\u6E90\u5DF2\u751F\u6210\uFF08${result.tool}\uFF0C${result.fileCount} \u4E2A\u58F0\u660E\u6587\u4EF6\uFF0Crevision ${revision}\uFF09${result.index.externals.length > 0 ? `\uFF1B\u5916\u90E8\u7C7B\u578B\u4F9D\u8D56\uFF1A${result.index.externals.join(", ")}` : ""}\u3002\u5BBF\u4E3B\u5C06\u81EA\u52A8\u540C\u6B65\u3002`);
|
|
3236
|
+
} else {
|
|
3237
|
+
files = null;
|
|
3238
|
+
revision = null;
|
|
3239
|
+
const key = result.diagnostics.join("\n");
|
|
3240
|
+
if (key !== lastErrorKey) {
|
|
3241
|
+
lastErrorKey = key;
|
|
3242
|
+
warn(`[fulgurjs] TYP-001 \u8FDC\u7A0B\u7C7B\u578B\u8D44\u6E90\u751F\u6210\u5931\u8D25\uFF08manifest \u4E0D\u643A\u5E26 types\uFF0C\u5BBF\u4E3B\u7C7B\u578B\u540C\u6B65\u5C06\u63D0\u793A\u672A\u63D0\u4F9B\uFF09\uFF1A
|
|
2864
3243
|
${key}`);
|
|
3244
|
+
}
|
|
2865
3245
|
}
|
|
3246
|
+
} finally {
|
|
3247
|
+
if (handle) await cache.release(cacheInput, handle).catch(() => {
|
|
3248
|
+
});
|
|
2866
3249
|
}
|
|
2867
3250
|
};
|
|
2868
3251
|
const ensure = async () => {
|
|
@@ -2901,21 +3284,26 @@ ${key}`);
|
|
|
2901
3284
|
},
|
|
2902
3285
|
invalidate() {
|
|
2903
3286
|
if (disposed) return;
|
|
3287
|
+
inputEpoch++;
|
|
2904
3288
|
void ensure();
|
|
2905
3289
|
},
|
|
3290
|
+
markInputChanged() {
|
|
3291
|
+
if (!disposed) inputEpoch++;
|
|
3292
|
+
},
|
|
2906
3293
|
isGenerating: () => generating !== null,
|
|
2907
3294
|
dispose() {
|
|
2908
3295
|
disposed = true;
|
|
2909
3296
|
controller.abort();
|
|
3297
|
+
cache.dispose();
|
|
2910
3298
|
if (!generating) clearCache();
|
|
2911
3299
|
}
|
|
2912
3300
|
};
|
|
2913
3301
|
}
|
|
2914
3302
|
|
|
2915
3303
|
// src/dts-sync.ts
|
|
2916
|
-
var
|
|
2917
|
-
var
|
|
2918
|
-
var
|
|
3304
|
+
var import_node_fs7 = __toESM(require("fs"), 1);
|
|
3305
|
+
var import_node_path9 = __toESM(require("path"), 1);
|
|
3306
|
+
var import_node_crypto3 = __toESM(require("crypto"), 1);
|
|
2919
3307
|
|
|
2920
3308
|
// src/dts-ambient.ts
|
|
2921
3309
|
var RUNTIME_TYPE_MODULE = "@fulgurjs/federation/internal/registry.js";
|
|
@@ -3074,8 +3462,8 @@ function stripAmbientModifiers(text) {
|
|
|
3074
3462
|
}
|
|
3075
3463
|
|
|
3076
3464
|
// src/dts-discovery.ts
|
|
3077
|
-
var
|
|
3078
|
-
var
|
|
3465
|
+
var import_node_fs6 = __toESM(require("fs"), 1);
|
|
3466
|
+
var import_node_path8 = __toESM(require("path"), 1);
|
|
3079
3467
|
function stripJsoncForConfig(text) {
|
|
3080
3468
|
let out = "";
|
|
3081
3469
|
let i = 0;
|
|
@@ -3115,7 +3503,7 @@ function stripJsoncForConfig(text) {
|
|
|
3115
3503
|
}
|
|
3116
3504
|
function readCfg(file) {
|
|
3117
3505
|
try {
|
|
3118
|
-
const raw = JSON.parse(stripJsoncForConfig(
|
|
3506
|
+
const raw = JSON.parse(stripJsoncForConfig(import_node_fs6.default.readFileSync(file, "utf8")));
|
|
3119
3507
|
const cfg = { file };
|
|
3120
3508
|
for (const key of ["include", "files", "exclude"]) {
|
|
3121
3509
|
const v = raw[key];
|
|
@@ -3139,25 +3527,25 @@ function effectiveCfg(cfg, depth = 0) {
|
|
|
3139
3527
|
const parentFile = resolveConfigFile(parent, cfg.file);
|
|
3140
3528
|
if (!parentFile) continue;
|
|
3141
3529
|
const parentCfg = effectiveCfg(readCfg(parentFile) ?? { file: parentFile }, depth + 1);
|
|
3142
|
-
const dirOf = (f, base) =>
|
|
3530
|
+
const dirOf = (f, base) => import_node_path8.default.resolve(import_node_path8.default.dirname(base), f);
|
|
3143
3531
|
if (parentCfg.include && !cfg.include) {
|
|
3144
|
-
merged.include = parentCfg.include.map((p) =>
|
|
3532
|
+
merged.include = parentCfg.include.map((p) => import_node_path8.default.relative(import_node_path8.default.dirname(cfg.file), dirOf(p, parentFile)) || ".");
|
|
3145
3533
|
}
|
|
3146
3534
|
if (parentCfg.files && !cfg.files) {
|
|
3147
|
-
merged.files = parentCfg.files.map((p) =>
|
|
3535
|
+
merged.files = parentCfg.files.map((p) => import_node_path8.default.relative(import_node_path8.default.dirname(cfg.file), dirOf(p, parentFile)));
|
|
3148
3536
|
}
|
|
3149
3537
|
if (parentCfg.exclude && !cfg.exclude) {
|
|
3150
|
-
merged.exclude = parentCfg.exclude.map((p) =>
|
|
3538
|
+
merged.exclude = parentCfg.exclude.map((p) => import_node_path8.default.relative(import_node_path8.default.dirname(cfg.file), dirOf(p, parentFile)));
|
|
3151
3539
|
}
|
|
3152
3540
|
}
|
|
3153
3541
|
return merged;
|
|
3154
3542
|
}
|
|
3155
3543
|
function resolveConfigFile(value, declaringFile) {
|
|
3156
|
-
let candidate =
|
|
3544
|
+
let candidate = import_node_path8.default.resolve(import_node_path8.default.dirname(declaringFile), value);
|
|
3157
3545
|
if (!candidate.endsWith(".json")) candidate += ".json";
|
|
3158
|
-
if (
|
|
3159
|
-
const asDir =
|
|
3160
|
-
return
|
|
3546
|
+
if (import_node_fs6.default.existsSync(candidate)) return candidate;
|
|
3547
|
+
const asDir = import_node_path8.default.join(candidate, "tsconfig.json");
|
|
3548
|
+
return import_node_fs6.default.existsSync(asDir) ? asDir : null;
|
|
3161
3549
|
}
|
|
3162
3550
|
function patternCoversDir(pattern, target, cfgDir) {
|
|
3163
3551
|
const norm = pattern.replace(/^\.\//, "");
|
|
@@ -3167,15 +3555,15 @@ function patternCoversDir(pattern, target, cfgDir) {
|
|
|
3167
3555
|
if (norm.includes("**")) base = norm.slice(0, norm.indexOf("**")).replace(/\/+$/, "");
|
|
3168
3556
|
else if (norm.endsWith("/*")) base = norm.slice(0, -2);
|
|
3169
3557
|
else base = norm.replace(/\/+$/, "");
|
|
3170
|
-
const abs = base === "" || base === "." ? cfgDir :
|
|
3171
|
-
return target === abs || target.startsWith(abs +
|
|
3558
|
+
const abs = base === "" || base === "." ? cfgDir : import_node_path8.default.resolve(cfgDir, base);
|
|
3559
|
+
return target === abs || target.startsWith(abs + import_node_path8.default.sep);
|
|
3172
3560
|
}
|
|
3173
3561
|
function checkTypesDiscovery(root, typesRoot) {
|
|
3174
|
-
const relTypes =
|
|
3562
|
+
const relTypes = import_node_path8.default.relative(root, typesRoot) || ".";
|
|
3175
3563
|
const configs = [];
|
|
3176
|
-
let primary =
|
|
3177
|
-
if (!
|
|
3178
|
-
const candidates =
|
|
3564
|
+
let primary = import_node_path8.default.join(root, "tsconfig.json");
|
|
3565
|
+
if (!import_node_fs6.default.existsSync(primary)) {
|
|
3566
|
+
const candidates = import_node_fs6.default.existsSync(root) ? import_node_fs6.default.readdirSync(root).filter((f) => /^tsconfig[\w.-]*\.json$/i.test(f)).map((f) => import_node_path8.default.join(root, f)) : [];
|
|
3179
3567
|
if (candidates.length === 0) {
|
|
3180
3568
|
return {
|
|
3181
3569
|
covered: false,
|
|
@@ -3187,7 +3575,7 @@ function checkTypesDiscovery(root, typesRoot) {
|
|
|
3187
3575
|
if (candidates.length > 1) {
|
|
3188
3576
|
let covered = false;
|
|
3189
3577
|
for (const file of candidates) {
|
|
3190
|
-
configs.push(
|
|
3578
|
+
configs.push(import_node_path8.default.relative(root, file));
|
|
3191
3579
|
if (configCovers(file, typesRoot)) covered = true;
|
|
3192
3580
|
}
|
|
3193
3581
|
if (covered) return { covered: true, configs, fixHint: null };
|
|
@@ -3198,34 +3586,34 @@ function checkTypesDiscovery(root, typesRoot) {
|
|
|
3198
3586
|
};
|
|
3199
3587
|
}
|
|
3200
3588
|
}
|
|
3201
|
-
configs.push(
|
|
3589
|
+
configs.push(import_node_path8.default.relative(root, primary));
|
|
3202
3590
|
if (configCovers(primary, typesRoot)) return { covered: true, configs, fixHint: null };
|
|
3203
3591
|
return {
|
|
3204
3592
|
covered: false,
|
|
3205
3593
|
configs,
|
|
3206
|
-
fixHint: `TYP-006 \u7C7B\u578B\u76EE\u5F55 ${relTypes} \u672A\u88AB ${
|
|
3594
|
+
fixHint: `TYP-006 \u7C7B\u578B\u76EE\u5F55 ${relTypes} \u672A\u88AB ${import_node_path8.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`
|
|
3207
3595
|
};
|
|
3208
3596
|
}
|
|
3209
3597
|
function configCovers(cfgFile, typesRoot) {
|
|
3210
3598
|
const raw = readCfg(cfgFile);
|
|
3211
3599
|
if (!raw) return false;
|
|
3212
3600
|
const cfg = effectiveCfg(raw);
|
|
3213
|
-
const cfgDir =
|
|
3601
|
+
const cfgDir = import_node_path8.default.dirname(cfgFile);
|
|
3214
3602
|
const isSolution = Array.isArray(cfg.files) && cfg.files.length === 0 && !cfg.include;
|
|
3215
3603
|
if (isSolution && cfg.references && cfg.references.length > 0) {
|
|
3216
3604
|
return cfg.references.some((ref) => {
|
|
3217
|
-
const refFile = resolveConfigFile(ref.startsWith(".") ||
|
|
3605
|
+
const refFile = resolveConfigFile(ref.startsWith(".") || import_node_path8.default.isAbsolute(ref) ? ref : `./${ref}`, cfgFile);
|
|
3218
3606
|
return refFile !== null && configCovers(refFile, typesRoot);
|
|
3219
3607
|
});
|
|
3220
3608
|
}
|
|
3221
3609
|
if (Array.isArray(cfg.files) && cfg.files.length > 0) {
|
|
3222
3610
|
return cfg.files.some((f) => {
|
|
3223
|
-
const abs =
|
|
3224
|
-
return abs === typesRoot || abs.startsWith(typesRoot +
|
|
3611
|
+
const abs = import_node_path8.default.resolve(cfgDir, f);
|
|
3612
|
+
return abs === typesRoot || abs.startsWith(typesRoot + import_node_path8.default.sep);
|
|
3225
3613
|
});
|
|
3226
3614
|
}
|
|
3227
3615
|
const includes = cfg.include;
|
|
3228
|
-
if (!includes) return typesRoot === cfgDir || typesRoot.startsWith(cfgDir +
|
|
3616
|
+
if (!includes) return typesRoot === cfgDir || typesRoot.startsWith(cfgDir + import_node_path8.default.sep);
|
|
3229
3617
|
const included = includes.some((p) => patternCoversDir(p, typesRoot, cfgDir));
|
|
3230
3618
|
if (!included) return false;
|
|
3231
3619
|
if (cfg.exclude && cfg.exclude.some((p) => patternCoversDir(p, typesRoot, cfgDir))) return false;
|
|
@@ -3269,7 +3657,7 @@ var METADATA_FILE = "metadata.json";
|
|
|
3269
3657
|
var AMBIENT_FORMAT = 2;
|
|
3270
3658
|
function readMetadata(dir) {
|
|
3271
3659
|
try {
|
|
3272
|
-
const raw = JSON.parse(
|
|
3660
|
+
const raw = JSON.parse(import_node_fs7.default.readFileSync(import_node_path9.default.join(dir, METADATA_FILE), "utf8"));
|
|
3273
3661
|
if (raw.generator !== "@fulgurjs/federation" || typeof raw.revision !== "string" || !Array.isArray(raw.files)) return null;
|
|
3274
3662
|
return raw;
|
|
3275
3663
|
} catch {
|
|
@@ -3279,19 +3667,19 @@ function readMetadata(dir) {
|
|
|
3279
3667
|
function cleanupOwnFiles(dir, meta) {
|
|
3280
3668
|
for (const f of meta.files) {
|
|
3281
3669
|
if (!isSafeBundlePath(f)) continue;
|
|
3282
|
-
|
|
3670
|
+
import_node_fs7.default.rmSync(import_node_path9.default.join(dir, f), { force: true });
|
|
3283
3671
|
}
|
|
3284
|
-
|
|
3672
|
+
import_node_fs7.default.rmSync(import_node_path9.default.join(dir, METADATA_FILE), { force: true });
|
|
3285
3673
|
try {
|
|
3286
|
-
if (
|
|
3674
|
+
if (import_node_fs7.default.readdirSync(dir).length === 0) import_node_fs7.default.rmdirSync(dir);
|
|
3287
3675
|
} catch {
|
|
3288
3676
|
}
|
|
3289
3677
|
}
|
|
3290
3678
|
function sweepStaleStaging(typesRoot, alias) {
|
|
3291
|
-
if (!
|
|
3292
|
-
for (const name of
|
|
3679
|
+
if (!import_node_fs7.default.existsSync(typesRoot)) return;
|
|
3680
|
+
for (const name of import_node_fs7.default.readdirSync(typesRoot)) {
|
|
3293
3681
|
if (name.startsWith(`.fg-staging-${alias}-`) || name.startsWith(`.fg-trash-${alias}-`)) {
|
|
3294
|
-
|
|
3682
|
+
import_node_fs7.default.rmSync(import_node_path9.default.join(typesRoot, name), { recursive: true, force: true });
|
|
3295
3683
|
}
|
|
3296
3684
|
}
|
|
3297
3685
|
}
|
|
@@ -3300,7 +3688,7 @@ async function syncRemoteTypes(input) {
|
|
|
3300
3688
|
const fetchJsonFn = input.fetchJsonImpl ?? fetchJson;
|
|
3301
3689
|
const fetchTextFn = input.fetchTextImpl ?? fetchText;
|
|
3302
3690
|
const timeoutMs = input.timeoutMs ?? 15e3;
|
|
3303
|
-
const dir =
|
|
3691
|
+
const dir = import_node_path9.default.join(typesRoot, alias);
|
|
3304
3692
|
let manifest;
|
|
3305
3693
|
try {
|
|
3306
3694
|
const parsed = parseManifest(await fetchJsonFn(manifestUrl, timeoutMs));
|
|
@@ -3313,7 +3701,7 @@ async function syncRemoteTypes(input) {
|
|
|
3313
3701
|
}
|
|
3314
3702
|
manifest = parsed.manifest;
|
|
3315
3703
|
} catch (e) {
|
|
3316
|
-
const meta =
|
|
3704
|
+
const meta = import_node_fs7.default.existsSync(dir) ? readMetadata(dir) : null;
|
|
3317
3705
|
return {
|
|
3318
3706
|
status: "failed",
|
|
3319
3707
|
alias,
|
|
@@ -3323,7 +3711,7 @@ async function syncRemoteTypes(input) {
|
|
|
3323
3711
|
}
|
|
3324
3712
|
const types = readManifestTypes(manifest);
|
|
3325
3713
|
if (!types) {
|
|
3326
|
-
const meta =
|
|
3714
|
+
const meta = import_node_fs7.default.existsSync(dir) ? readMetadata(dir) : null;
|
|
3327
3715
|
if (isDevManifest(manifest) && manifest.typesPending === true) {
|
|
3328
3716
|
return {
|
|
3329
3717
|
status: meta ? "stale" : "failed",
|
|
@@ -3343,7 +3731,7 @@ async function syncRemoteTypes(input) {
|
|
|
3343
3731
|
};
|
|
3344
3732
|
}
|
|
3345
3733
|
const indexUrl = new URL(types.index, manifestUrl).toString();
|
|
3346
|
-
const existing =
|
|
3734
|
+
const existing = import_node_fs7.default.existsSync(dir) ? readMetadata(dir) : null;
|
|
3347
3735
|
if (existing && existing.revision === types.revision && existing.ambientFormat === AMBIENT_FORMAT) {
|
|
3348
3736
|
return { status: "unchanged", alias, revision: types.revision, message: `\u8FDC\u7A0B ${alias} \u7C7B\u578B\u5DF2\u662F\u6700\u65B0\uFF08revision ${types.revision}\uFF09\u3002` };
|
|
3349
3737
|
}
|
|
@@ -3393,7 +3781,7 @@ async function syncRemoteTypes(input) {
|
|
|
3393
3781
|
if (total > DTS_TOTAL_MAX_BYTES) {
|
|
3394
3782
|
return { status: "failed", alias, message: `\u8FDC\u7A0B ${alias} \u7684\u7C7B\u578B\u8D44\u6E90\u603B\u91CF\u8D85\u9650\uFF08>${DTS_TOTAL_MAX_BYTES}B\uFF09\uFF0C\u5DF2\u62D2\u7EDD\u3002` };
|
|
3395
3783
|
}
|
|
3396
|
-
const actual =
|
|
3784
|
+
const actual = import_node_crypto3.default.createHash("sha256").update(text, "utf8").digest("hex");
|
|
3397
3785
|
if (actual !== digest) {
|
|
3398
3786
|
return { status: "failed", alias, message: `\u8FDC\u7A0B ${alias} \u7684\u58F0\u660E\u6587\u4EF6\u6458\u8981\u4E0D\u7B26\uFF08${rel}\uFF09\uFF0C\u5DF2\u62D2\u7EDD\u672C\u6B21\u66F4\u65B0\uFF08\u4F20\u8F93\u635F\u574F\u6216\u88AB\u7BE1\u6539\uFF09\u3002` };
|
|
3399
3787
|
}
|
|
@@ -3401,15 +3789,15 @@ async function syncRemoteTypes(input) {
|
|
|
3401
3789
|
}
|
|
3402
3790
|
const ambient = buildAmbientDeclarations({ alias, index, readFile: (rel) => indexRaw[rel] ?? "", source });
|
|
3403
3791
|
sweepStaleStaging(typesRoot, alias);
|
|
3404
|
-
const staging =
|
|
3405
|
-
|
|
3406
|
-
|
|
3792
|
+
const staging = import_node_path9.default.join(typesRoot, `.fg-staging-${alias}-${process.pid}-${Date.now()}`);
|
|
3793
|
+
import_node_fs7.default.rmSync(staging, { recursive: true, force: true });
|
|
3794
|
+
import_node_fs7.default.mkdirSync(staging, { recursive: true });
|
|
3407
3795
|
const written = [];
|
|
3408
3796
|
try {
|
|
3409
3797
|
for (const [name, content] of ambient.files) {
|
|
3410
|
-
const dest =
|
|
3411
|
-
|
|
3412
|
-
|
|
3798
|
+
const dest = import_node_path9.default.join(staging, name);
|
|
3799
|
+
import_node_fs7.default.mkdirSync(import_node_path9.default.dirname(dest), { recursive: true });
|
|
3800
|
+
import_node_fs7.default.writeFileSync(dest, content);
|
|
3413
3801
|
written.push(name);
|
|
3414
3802
|
}
|
|
3415
3803
|
const meta = {
|
|
@@ -3422,22 +3810,22 @@ async function syncRemoteTypes(input) {
|
|
|
3422
3810
|
externals: index.externals,
|
|
3423
3811
|
syncedAt: Date.now()
|
|
3424
3812
|
};
|
|
3425
|
-
|
|
3426
|
-
const trash =
|
|
3813
|
+
import_node_fs7.default.writeFileSync(import_node_path9.default.join(staging, METADATA_FILE), JSON.stringify(meta, null, 2));
|
|
3814
|
+
const trash = import_node_path9.default.join(typesRoot, `.fg-trash-${alias}-${Date.now()}`);
|
|
3427
3815
|
let swapped = false;
|
|
3428
|
-
if (
|
|
3429
|
-
|
|
3816
|
+
if (import_node_fs7.default.existsSync(dir)) {
|
|
3817
|
+
import_node_fs7.default.renameSync(dir, trash);
|
|
3430
3818
|
swapped = true;
|
|
3431
3819
|
}
|
|
3432
3820
|
try {
|
|
3433
|
-
|
|
3821
|
+
import_node_fs7.default.renameSync(staging, dir);
|
|
3434
3822
|
} catch (e) {
|
|
3435
|
-
if (swapped)
|
|
3823
|
+
if (swapped) import_node_fs7.default.renameSync(trash, dir);
|
|
3436
3824
|
throw e;
|
|
3437
3825
|
}
|
|
3438
|
-
if (swapped)
|
|
3826
|
+
if (swapped) import_node_fs7.default.rmSync(trash, { recursive: true, force: true });
|
|
3439
3827
|
} catch (e) {
|
|
3440
|
-
|
|
3828
|
+
import_node_fs7.default.rmSync(staging, { recursive: true, force: true });
|
|
3441
3829
|
return { status: "failed", alias, message: `\u8FDC\u7A0B ${alias} \u7684\u7C7B\u578B\u5199\u5165\u5931\u8D25\uFF08${e.message}\uFF09\u3002\u672C\u5730\u58F0\u660E\u4FDD\u6301\u539F\u72B6\u3002` };
|
|
3442
3830
|
}
|
|
3443
3831
|
return {
|
|
@@ -3449,8 +3837,8 @@ async function syncRemoteTypes(input) {
|
|
|
3449
3837
|
};
|
|
3450
3838
|
}
|
|
3451
3839
|
function removeGeneratedTypes(typesRoot, alias) {
|
|
3452
|
-
const dir =
|
|
3453
|
-
if (!
|
|
3840
|
+
const dir = import_node_path9.default.join(typesRoot, alias);
|
|
3841
|
+
if (!import_node_fs7.default.existsSync(dir)) return false;
|
|
3454
3842
|
const meta = readMetadata(dir);
|
|
3455
3843
|
if (!meta) return false;
|
|
3456
3844
|
cleanupOwnFiles(dir, meta);
|
|
@@ -3512,8 +3900,8 @@ function startRemoteTypesSyncLoop(opts) {
|
|
|
3512
3900
|
let discoveryWarned = false;
|
|
3513
3901
|
const checkDiscoveryOnce = () => {
|
|
3514
3902
|
if (discoveryWarned) return;
|
|
3515
|
-
if (!
|
|
3516
|
-
if (
|
|
3903
|
+
if (!import_node_fs7.default.existsSync(opts.typesRoot)) return;
|
|
3904
|
+
if (import_node_fs7.default.readdirSync(opts.typesRoot).length === 0) return;
|
|
3517
3905
|
discoveryWarned = true;
|
|
3518
3906
|
const d = checkTypesDiscovery(opts.root, opts.typesRoot);
|
|
3519
3907
|
if (!d.covered) warn(`[fulgurjs] ${d.fixHint ?? ""}`);
|
|
@@ -3527,7 +3915,7 @@ function startRemoteTypesSyncLoop(opts) {
|
|
|
3527
3915
|
}
|
|
3528
3916
|
|
|
3529
3917
|
// src/diagnostics.ts
|
|
3530
|
-
var
|
|
3918
|
+
var import_node_path10 = __toESM(require("path"), 1);
|
|
3531
3919
|
function formatFulgurjsDiagnostic(input) {
|
|
3532
3920
|
const ctx = input.details ? `
|
|
3533
3921
|
\u4E0A\u4E0B\u6587\uFF1A${JSON.stringify(input.details)}` : "";
|
|
@@ -3571,8 +3959,8 @@ function debugLog(category, data) {
|
|
|
3571
3959
|
function redactModulePath(id, root) {
|
|
3572
3960
|
const clean = id.split("?")[0];
|
|
3573
3961
|
try {
|
|
3574
|
-
const rel =
|
|
3575
|
-
if (rel && !rel.startsWith("..") && !
|
|
3962
|
+
const rel = import_node_path10.default.relative(root, clean);
|
|
3963
|
+
if (rel && !rel.startsWith("..") && !import_node_path10.default.isAbsolute(rel)) return rel;
|
|
3576
3964
|
} catch {
|
|
3577
3965
|
}
|
|
3578
3966
|
return clean.split("/").pop() ?? clean;
|
|
@@ -3682,22 +4070,22 @@ function genRemoteSchemaModule(schema) {
|
|
|
3682
4070
|
}
|
|
3683
4071
|
|
|
3684
4072
|
// src/vite-cache.ts
|
|
3685
|
-
var
|
|
3686
|
-
var
|
|
4073
|
+
var import_node_fs8 = __toESM(require("fs"), 1);
|
|
4074
|
+
var import_node_path11 = __toESM(require("path"), 1);
|
|
3687
4075
|
function syncViteCacheMarker(root, pluginVersion, log) {
|
|
3688
|
-
const viteDir =
|
|
3689
|
-
const marker =
|
|
4076
|
+
const viteDir = import_node_path11.default.join(root, "node_modules", ".vite");
|
|
4077
|
+
const marker = import_node_path11.default.join(viteDir, "fulgurjs-version.txt");
|
|
3690
4078
|
try {
|
|
3691
|
-
if (
|
|
3692
|
-
const prev =
|
|
4079
|
+
if (import_node_fs8.default.existsSync(viteDir)) {
|
|
4080
|
+
const prev = import_node_fs8.default.existsSync(marker) ? import_node_fs8.default.readFileSync(marker, "utf8").trim() : "";
|
|
3693
4081
|
if (prev === pluginVersion) return;
|
|
3694
|
-
|
|
4082
|
+
import_node_fs8.default.rmSync(viteDir, { recursive: true, force: true });
|
|
3695
4083
|
log(
|
|
3696
|
-
`[fulgurjs] \u63D2\u4EF6\u7248\u672C\u53D8\u5316\uFF08${prev || "\u65E0\u8BB0\u5F55"} \u2192 ${pluginVersion}\uFF09\uFF0C\u5DF2\u81EA\u52A8\u6E05\u9664 ${
|
|
4084
|
+
`[fulgurjs] \u63D2\u4EF6\u7248\u672C\u53D8\u5316\uFF08${prev || "\u65E0\u8BB0\u5F55"} \u2192 ${pluginVersion}\uFF09\uFF0C\u5DF2\u81EA\u52A8\u6E05\u9664 ${import_node_path11.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`
|
|
3697
4085
|
);
|
|
3698
4086
|
}
|
|
3699
|
-
|
|
3700
|
-
|
|
4087
|
+
import_node_fs8.default.mkdirSync(viteDir, { recursive: true });
|
|
4088
|
+
import_node_fs8.default.writeFileSync(marker, pluginVersion);
|
|
3701
4089
|
} catch (e) {
|
|
3702
4090
|
log(
|
|
3703
4091
|
`[fulgurjs] \u81EA\u52A8\u6E05\u7406 .vite \u7F13\u5B58\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u542F\u52A8\uFF1B\u5982\u9047\u8054\u90A6\u6A21\u5757 404 \u8BF7\u624B\u5DE5\u6267\u884C rm -rf ${viteDir}\uFF09\uFF1A${String(e.message ?? e)}`
|
|
@@ -4053,7 +4441,7 @@ function repairRolldownAsyncMarks(code, sourceName) {
|
|
|
4053
4441
|
}
|
|
4054
4442
|
|
|
4055
4443
|
// src/runtime-code.gen.ts
|
|
4056
|
-
var runtime_code_gen_default = 'var ke=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function C(c){let d=ke.exec(String(c).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function Oe(c,d){if(c.length===0&&d.length===0)return 0;if(c.length===0)return 1;if(d.length===0)return-1;let f=Math.max(c.length,d.length);for(let l=0;l<f;l++){let m=c[l],S=d[l];if(m===void 0)return-1;if(S===void 0)return 1;let b=/^\\d+$/.test(m),P=/^\\d+$/.test(S);if(b&&P){let A=Number(m)-Number(S);if(A!==0)return A}else{if(b!==P)return b?-1:1;if(m!==S)return m<S?-1:1}}return 0}function x(c,d){let f=C(c),l=C(d);return!f||!l?c<d?-1:c>d?1:0:f.major!==l.major?f.major-l.major:f.minor!==l.minor?f.minor-l.minor:f.patch!==l.patch?f.patch-l.patch:Oe(f.pre,l.pre)}var Me=/^[a-z]+[+:-]/i;function U(c,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||Me.test(f)?!0:f.split("||").some(l=>Te(c,l.trim()))}function Te(c,d){if(!d||d==="*")return!C(c)?.pre.length;let f=d.split(/\\s+-\\s+/);if(f.length===2){let S=f[0].trim(),b=f[1].trim();return!(!U(c,`>=${S}`)||!U(c,`<=${b}`))}let l=C(c);if(!l)return!1;let m=Le(d);if(m===null)return!0;for(let S of m)if(!je(l,c,S))return!1;return!(l.pre.length>0&&!m.some(S=>S.ver.pre.length>0)&&!m.some(b=>b.ver.major===l.major&&b.ver.minor===l.minor&&b.ver.patch===l.patch))}function Le(c){let d=[],f=c.trim().split(/\\s+/).filter(Boolean);if(f.length===0)return null;for(let l of f){let m=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(l);if(!m)return null;let S=m[1],b=m[2],P=Ae(S,b);if(P===null)return null;d.push(...P)}return d}function Ae(c,d){let f=xe(d);if(!f)return null;let{ver:l,partial:m}=f;switch(c){case"^":{let S=Ie(l);return S?[{op:">=",ver:l},{op:"<",ver:S}]:null}case"~":{let S=m>=2?{major:l.major,minor:l.minor+1,patch:0,pre:[]}:{major:l.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:l},{op:"<",ver:S}]}case">=":return[{op:">=",ver:l}];case">":return m===1?[{op:">=",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:">",ver:l}];case"<":return m===1?[{op:"<",ver:{major:l.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:l.major,minor:l.minor,patch:0,pre:[]}}]:[{op:"<",ver:l}];case"<=":return[{op:"<=",ver:l}];case"=":case void 0:return m===1?[{op:">=",ver:l},{op:"<",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:l},{op:"<",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:l}];default:return null}}function Ie(c){return c.major>0?{major:c.major+1,minor:0,patch:0,pre:[]}:c.minor>0?{major:0,minor:c.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:c.patch+1,pre:[]}}function xe(c){let d=c.replace(/^v/,"").trim();if(!d||d==="*"||d==="x"||d==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=d.split("."),l=[],m=0;for(let P of f.slice(0,3))if(/^\\d+$/.test(P))l.push(Number(P)),m++;else{if(P==="x"||P==="X"||P==="*")break;break}let S=d.split("-"),b=S.length>1?S.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:l[0]??0,minor:l[1]??0,patch:l[2]??0,pre:b},partial:m}}function Ue(c,d){switch(d){case">=":return c>=0;case">":return c>0;case"<":return c<0;case"<=":return c<=0;case"=":return c===0}}function je(c,d,f){let l=`${c.major}.${c.minor}.${c.patch}`+(c.pre.length?`-${c.pre.join(".")}`:"");if(f.upper)return!(!(x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(x(l,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),S=Ue(m,f.op);return f.ver.pre.length>0&&c.pre.length===0&&(f.op===">"||f.op==="<")?!1:S}function F(c){return c.replace(/(https?:\\/\\/)(?:[^\\s/@]+@)?([^\\s?#"\'<>\uFF0C\u3002\uFF1B\uFF09)\\]]+)(?:[?#][^\\s"\'<>\uFF0C\u3002\uFF1B\uFF09)\\]]*)?/g,"$1$2")}function M(c){return F(String(c?.message??c)).replace(/\\b(token|password|cookie|authorization)["\']?\\s*[:=]\\s*["\']?(?:Bearer\\s+)?[^\\s,;"\'}]+/gi,"$1=[redacted]")}var E=class extends Error{code;details;constructor(d,f,l,m){super(`[fulgurjs:${d}] ${F(f)}`,m),this.name="FgError",this.code=d,this.details=l}},R={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014",COMPONENT_EXPORT_INVALID:"MFU-018",VUE_RUNTIME_IDENTITY_MISMATCH:"MFU-019",REMOTE_RENDER_ERROR:"MFU-020"};function ie(c){if(typeof c!="object"||c===null)return!1;let d=globalThis,f=d.__FULGURJS_REPORTED_ERRORS__??=new WeakSet;return f.has(c)?!0:(f.add(c),!1)}var ae="6.14.3";var Ne="__fulgurjsSetup",Ce="__FULGURJS_APP_CONFIG__",J=15e3,ce=2,Fe=5,Ve=3e4,De=4e3,Ke=.2;function qe(){let c=Object.create(null),d=new Map,f=[],l=new Set,m=new Map,S=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,P=new Map,A=new WeakMap,V=new WeakMap,W=(e,r)=>{console.warn(`[fulgurjs] ${e} \\u94A9\\u5B50\\u5931\\u8D25\\uFF08\\u4E0D\\u5F71\\u54CD\\u52A0\\u8F7D\\uFF09\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A`,M(r))},_={},ue=()=>{for(let e of f)try{e.init?.(_)}catch(r){console.warn("[fulgurjs] \\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A",e.name,M(r))}},D=new Map,K,q=e=>{let r=D.get(e);return r||D.set(e,r={}),r},z=()=>globalThis[Ce]??{};async function Y(e,r,n,o){let t=u=>{if(u instanceof E)return v({remote:e,error:u}),u;let a=new E(R.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${o} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${M(u)}\n\\u4FEE\\u6CD5\\uFF1A\\u68C0\\u67E5\\u5E76\\u4FEE\\u590D\\u8BE5 ${o} \\u51FD\\u6570\\u540E\\u91CD\\u65B0\\u52A0\\u8F7D\\uFF1B\\u5931\\u8D25\\u7F13\\u5B58\\u5DF2\\u6E05\\u9664\\uFF0C\\u53EF\\u4EE5\\u76F4\\u63A5\\u91CD\\u8BD5\\u3002`,{remote:e,phase:o},{cause:u});return v({remote:e,error:a}),a};K=e;let s;try{s=r(n)}catch(u){throw t(u)}finally{K=void 0}try{await s}catch(u){throw t(u)}}async function de(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await B(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default,u=t?.onSession!==void 0||t?.globalComponents!==void 0||t?.pageProviders!==void 0;if(s!==void 0&&typeof s!="function"||!s&&!u)throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${t==null?String(t):typeof s}\\uFF0C\\u4E14\\u6A21\\u5757\\u4E0D\\u6EE1\\u8DB3\\u521D\\u59CB\\u5316\\u58F0\\u660E\\u5951\\u7EA6\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u521D\\u59CB\\u5316\\u51FD\\u6570\\uFF0C\\u6216\\u53EA\\u58F0\\u660E onSession/globalComponents/pageProviders\\uFF1B\\u7A7A\\u6A21\\u5757\\u4E0E\\u975E\\u51FD\\u6570\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u65E0\\u6548\\u3002`,{remote:e.name,module:n});if(t.onSession!==void 0&&typeof t.onSession!="function")throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AonSession \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.onSession}\\uFF0C\\u5E94\\u4E3A\\u51FD\\u6570\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5C06 onSession \\u6539\\u4E3A\\u5177\\u540D\\u5BFC\\u51FA\\u7684\\u51FD\\u6570\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});if(o.setupExports=t,t.globalComponents!==void 0){if(typeof t.globalComponents!="object"||t.globalComponents===null||Array.isArray(t.globalComponents))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AglobalComponents \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${Array.isArray(t.globalComponents)?"array":typeof t.globalComponents}\\uFF0C\\u5E94\\u4E3A\\u5BF9\\u8C61\\uFF08\\u952E=\\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D\\uFF0C\\u503C=\\u7EC4\\u4EF6\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const globalComponents = { \\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D: \\u7EC4\\u4EF6 } \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.globalComponents=t.globalComponents}if(t.pageProviders!==void 0){if(!Array.isArray(t.pageProviders))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1ApageProviders \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.pageProviders}\\uFF0C\\u5E94\\u4E3A\\u6570\\u7EC4\\uFF08\\u6BCF\\u9879=\\u7EC4\\u4EF6\\u6216\\u96F6\\u53C2 loader\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const pageProviders = [AppProvider] \\u6216 [() => import(\'./X\').then((m) => m.AppProvider)] \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.pageProviders=t.pageProviders}s&&await Y(e.name,s,{appContext:z(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(t){throw e.debug.setup="failed",t?.code&&v({remote:e.name,error:t}),o.setupExports=void 0,o.globalComponents=void 0,o.pageProviders=void 0,t}}async function fe(e,r,n){let o=z(),t=o?.sessionKey;if(typeof t!="string"||t===""){let y=new E(R.SETUP_SESSION_KEY_MISSING,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u58F0\\u660E\\u4E86 onSession\\uFF0C\\u4F46\\u5BBF\\u4E3B\\u5C1A\\u672A\\u63D0\\u4F9B\\u6709\\u6548\\u7684 AppContext.sessionKey\\u3002\n\\u539F\\u56E0\\uFF1A\\u5F53\\u524D\\u503C\\u4E3A ${t===void 0?"\\u7F3A\\u5931":JSON.stringify(t)}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5BBF\\u4E3B\\u6BCF\\u6B21\\u767B\\u5F55\\u6216\\u91CD\\u767B\\u65F6\\u751F\\u6210\\u65B0\\u7684\\u975E\\u654F\\u611F\\u767B\\u5F55\\u4EE3\\u6B21 ID\\uFF0C\\u5E76\\u5728\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u9875\\u9762\\u524D\\u8C03\\u7528 provideAppContext({ ..., sessionKey: \'\\u767B\\u5F55\\u4EE3\\u6B21 ID\' })\\uFF1B\\u4E0D\\u8981\\u4F7F\\u7528 token \\u539F\\u6587\\u3002`,{remote:e.name});throw v({remote:e.name,error:y}),y}if(r.sessionPromise&&r.sessionKey===t)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=t;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),a=(async()=>{await u,!s.signal.aborted&&await Y(e.name,n,{appContext:o,sessionKey:t,signal:s.signal},"onSession")})();return r.sessionPromise=a,a.catch(()=>{r.sessionKey===t&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),a}async function pe(e,r){let n=r?.[Ne];if(typeof n!="string"||n==="")return;let o=q(e.name);o.setupPromise||(o.setupPromise=de(e,r,n,o).catch(s=>{throw o.setupPromise=void 0,s})),await o.setupPromise;let t=o.setupExports?.onSession;typeof t=="function"&&await fe(e,o,t)}function me(){for(let e of D.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let L=e=>c[e]??=Object.create(null);function v(e){if(!ie(e.error)){try{_.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}}function ge(e="default"){return L(e),c}function H(e,r,n,o,t={}){let s=L(e||"default"),u=Object.hasOwn(s,r)?s[r]:void 0,a=u&&typeof u=="object"?u:void 0;a||(a=Object.create(null),s[r]=a),!(Object.hasOwn(a,n)&&a[n])&&(a[n]={version:n,get:o,from:t.from??"unknown",eager:!!t.eager,loaded:!!t.loaded})}function he(e){let r=(n,o,t)=>{if(n===void 0)return;if(!(typeof n=="number"&&(t?Number.isInteger(n)&&n>=0&&n<=10:Number.isFinite(n)&&n>0)))throw new Error(`[fulgurjs] \\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 ${o} \\u914D\\u7F6E\\u65E0\\u6548\\uFF1A\\u5F53\\u524D\\u4E3A ${String(n)}\\uFF0C\\u5E94\\u4E3A${t?" 0 \\u5230 10 \\u7684\\u6574\\u6570":"\\u5927\\u4E8E 0 \\u7684\\u6709\\u9650\\u6570\\u5B57"}\\u3002\\u8BF7\\u4FEE\\u6B63 registerRemote \\u914D\\u7F6E\\u3002`)};r(e.timeout,"timeout"),r(e.retries,"retries",!0),e.breaker&&(r(e.breaker.threshold,"breaker.threshold"),r(e.breaker.resetMs,"breaker.resetMs"))}function Z(e){for(let r of e){he(r);let n=d.get(r.name);d.set(r.name,{timeout:J,retries:ce,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??Fe,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??Ve,state:n?.state??"idle",breakerState:n?.breakerState??{fails:0,openUntil:0},entryInflight:n?.entryInflight??new Map,entryFailCounts:n?.entryFailCounts??new Map,debug:n?.debug??{entry:j(r.entry),status:"idle",setup:"none"}})}}function ye(e){Z([e])}function Se(e){f.push(...e),m.clear(),ue()}function I(e,r,n=!1){let o=r.shareScope||"default",t=r.shareKey||e,u=L(o)[t]||{},a=Object.keys(u).filter(i=>!n||r.singleton||u[i].value!==void 0);if(n&&a.length===0)return;let y=r.requiredVersion,g=a.filter(i=>y===void 0||y===!1||U(i,y)),p;if(r.singleton&&a.length>0){let i=a.filter(h=>u[h].loaded);if(p=[...i.length?i:a].sort(x).pop(),!g.includes(p)){let h=u[p],O=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${t}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42 ${y??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${a.join("\\u3001")}\\uFF1B\\u5355\\u4F8B\\u5019\\u9009\\u4E3A ${h.from} \\u63D0\\u4F9B\\u7684 ${p}\\u3002\n`+(r.strictVersion?`\\u7ED3\\u679C\\uFF1AstrictVersion \\u5DF2\\u5F00\\u542F\\uFF0C\\u672C\\u6B21\\u52A0\\u8F7D\\u5DF2\\u62D2\\u7EDD\\uFF0C\\u672A\\u4EA4\\u4ED8\\u4E0D\\u517C\\u5BB9\\u5B9E\\u4F8B\\u3002\n`:`\\u7ED3\\u679C\\uFF1A\\u590D\\u7528\\u6B64\\u5355\\u4F8B\\uFF1B\\u8BF7\\u786E\\u8BA4\\u4E24\\u7AEF API \\u517C\\u5BB9\\u3002\n`)+"\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u6838\\u5BF9\\u540E\\u8C03\\u6574 shared.requiredVersion\\u3002";if(r.strictVersion){let T=new E(R.SHARE_STRICT_VERSION,O,{shareKey:t,requiredVersion:y});throw v({remote:h.from,error:T}),T}let $=`${o}|${t}|${y??"*"}|${p}|${a.join(",")}`;l.has($)||(l.add($),console.warn(`[fulgurjs:MFU-010] ${O}`))}}else if(p=[...g].sort(x).pop(),!p){if(r.strictVersion){let i=new E(R.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${o}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${t}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${y}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${a.join("\\u3001")||"\\u65E0"}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u4FEE\\u6B63 shared.requiredVersion\\u3002`);throw v({remote:t,error:i}),i}return}return u[p]}function Q(e,r,n){let o=r.localVersion;if(!o||n===void 0)return;let t=r.shareScope||"default",s=r.shareKey||e,u=L(t),a=Object.hasOwn(u,s)?u[s]:void 0;if(a&&Object.keys(a).length>0){try{let g=I(e,r);if(g&&g.value===void 0){if(g.version===o)g.value=n,g.loaded=!0;else if(r.singleton&&!g.pendingGet){H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let p=u[s][o];p.value=n,p.loaded=!0}}}catch{}return}H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let y=u[s]?.[o];y&&(y.value=n)}async function ee(e,r={}){let n=r.shareScope||"default",o=r.shareKey||e,t=L(n)[o]||{},s=S(e,r),u=_.resolveShare?m.get(s):void 0,a=u||I(e,r);if(!a){if(r.fallback){let i=await r.fallback();return Q(e,r,i),i}let p=new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${o}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u4F5C\\u7528\\u57DF "${n}" \\u4E2D\\u6CA1\\u6709\\u7B26\\u5408 ${r.requiredVersion??"\\u4EFB\\u610F\\u7248\\u672C"} \\u8981\\u6C42\\u7684\\u7248\\u672C\\uFF0C\\u4E14\\u672A\\u914D\\u7F6E\\u672C\\u5730\\u526F\\u672C\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728\\u5BBF\\u4E3B\\u6216\\u8FDC\\u7A0B\\u6CE8\\u518C\\u8BE5\\u4F9D\\u8D56\\uFF0C\\u6216\\u4E3A shared \\u914D\\u7F6E\\u53EF\\u7528\\u7684\\u672C\\u5730\\u526F\\u672C\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion});throw v({remote:o,error:p}),p}if(_.resolveShare&&!u){let p=await _.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:a,available:Object.values(t)});p&&(a=p),m.set(s,a)}if(a.value!==void 0)return m.set(S(e,r),a),a.value;if(a.loaded=!0,!a.pendingGet)try{a.pendingGet=a.get()}catch(p){a.pendingGet=Promise.reject(p)}let y=a.pendingGet,g;try{g=await y}catch(p){if(a.value!==void 0)return m.set(S(e,r),a),a.value;throw a.loaded=!1,m.get(s)===a&&m.delete(s),p}finally{a.pendingGet===y&&(a.pendingGet=void 0)}return a.value===void 0&&(a.value=g),m.set(S(e,r),a),a.value}function Ee(e,r={}){return _.resolveShare?m.get(S(e,r))?.value:I(e,r,!0)?.value}function Re(e,r,n,o){Q(e,{...r,localVersion:n},o)}function we(e,r){let n=r.shareScope||"default",o=r.shareKey||e;if(_.resolveShare){let s=S(e,r),u=m.get(s);if(u&&u.value!==void 0)return{kind:"ready",value:u.value};let a=u||_.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:I(e,r),available:Object.values(L(n)[o]||{})});if(a&&typeof a.then=="function")throw Promise.resolve(a).catch(()=>{}),new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u5BF9\\u5171\\u4EAB "${o}" \\u8FD4\\u56DE\\u4E86 Promise\\uFF0C\\u4F46\\u8BE5\\u5171\\u4EAB\\u6B63\\u88AB\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u6D88\\u8D39\\uFF08Vite 8 \\u540C\\u6B65\\u534F\\u5546\\u95E8\\u9762\\uFF09\\u3002\n\\u539F\\u56E0\\uFF1A\\u6A21\\u5757\\u6C42\\u503C\\u671F\\u65E0\\u6CD5\\u7B49\\u5F85\\u5F02\\u6B65\\u51B3\\u7B56\\uFF1B\\u9759\\u6001\\u5BFC\\u5165\\u4E0D\\u80FD\\u9759\\u9ED8\\u5FFD\\u7565 hook \\u51B3\\u7B56\\u3002\n\\u4FEE\\u6CD5\\uFF1AVite 8 HTML \\u5165\\u53E3\\u4F1A\\u5148\\u5B8C\\u6210\\u5F02\\u6B65\\u534F\\u5546\\uFF1B\\u5176\\u4ED6\\u5165\\u53E3\\u8BF7\\u5148\\u52A8\\u6001 loadShare \\u5EFA\\u7ACB\\u5FEB\\u7167\\uFF0C\\u518D\\u5BFC\\u5165\\u6D88\\u8D39\\u8005\\uFF0C\\u6216\\u8BA9\\u8BE5\\u952E\\u540C\\u6B65\\u8FD4\\u56DE picked\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let y=a;if(y){if(y.value!==void 0)return m.set(S(e,r),y),{kind:"ready",value:y.value};if(y.version!==void 0&&y.version===r.localVersion)return{kind:"local"};throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u4E3A "${o}" \\u9009\\u62E9\\u4E86\\u672A\\u5C31\\u7EEA\\u7684 ${y.version??"\\u6761\\u76EE"}\\u3002\n\\u539F\\u56E0\\uFF1A\\u540C\\u6B65\\u6D88\\u8D39\\u4E0D\\u80FD\\u7B49\\u5F85\\u52A0\\u8F7D\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5148\\u52A8\\u6001 loadShare \\u518D\\u5BFC\\u5165\\u6D88\\u8D39\\u8005\\uFF0C\\u6216\\u9009\\u62E9\\u5DF2\\u5C31\\u7EEA\\u5B9E\\u4F8B/\\u672C\\u5730\\u7248\\u672C ${r.localVersion??"\\u672A\\u58F0\\u660E"}\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0})}}let t=I(e,r);if(!t)return{kind:"local"};if(t.value!==void 0)return{kind:"ready",value:t.value};if(t.version!==void 0&&t.version===r.localVersion)return{kind:"local"};if(r.singleton||r.strictVersion&&r.requiredVersion&&(!r.localVersion||!U(r.localVersion,r.requiredVersion))){if(r.strictVersion||t.pendingGet)throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB "${o}" \\u9009\\u4E2D\\u4E86 ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version}\\uFF08\\u5C1A\\u672A\\u52A0\\u8F7D\\uFF09\\uFF0C\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u65E0\\u6CD5\\u7B49\\u5F85\\u5176\\u5B9E\\u4F8B\\u5C31\\u7EEA\\u3002\n\\u539F\\u56E0\\uFF1A\\u4E0D\\u80FD\\u6539\\u7528\\u4E0D\\u517C\\u5BB9\\u7684\\u672C\\u5730\\u526F\\u672C\\u6216\\u5206\\u88C2\\u5355\\u4F8B\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u8BA9\\u8BE5\\u5171\\u4EAB\\u7684\\u9996\\u6B21\\u6D88\\u8D39\\u5148\\u7ECF\\u4E00\\u6B21\\u52A8\\u6001 loadShare \\u5B8C\\u6210\\u52A0\\u8F7D\\uFF0C\\u6216\\u5C06\\u672C\\u5E94\\u7528\\u7248\\u672C\\u4E0E\\u4F5C\\u7528\\u57DF\\u63D0\\u4F9B\\u7248\\u672C\\u5BF9\\u9F50\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let s=`${n}|${o}|${t.version}|${r.localVersion}`;return l.has(s)||(l.add(s),console.warn(`[fulgurjs:MFU-010] \\u5171\\u4EAB\\u5355\\u4F8B "${o}"\\uFF1A\\u4F5C\\u7528\\u57DF\\u4E2D ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version} \\u5C1A\\u672A\\u52A0\\u8F7D\\uFF0C\\u9996\\u4E2A\\u6D88\\u8D39\\u8005\\u4EE5\\u672C\\u5730\\u7248\\u672C ${r.localVersion??""} \\u63A5\\u7BA1\\uFF08\\u540E\\u7EED\\u6D88\\u8D39\\u8005\\u6309\\u5DF2\\u52A0\\u8F7D\\u4F18\\u5148\\u6536\\u655B\\u5230\\u8BE5\\u5B9E\\u4F8B\\uFF09\\u3002`)),{kind:"local"}}return console.warn(`[fulgurjs] \\u5171\\u4EAB "${o}"\\uFF1A\\u975E\\u5355\\u4F8B\\u540C\\u6B65\\u6D88\\u8D39\\u4F7F\\u7528\\u672C\\u5730 ${r.localVersion??""}\\uFF0C\\u8FDC\\u7A0B ${t.version} \\u5C1A\\u672A\\u5C31\\u7EEA\\u3002`),{kind:"local"}}async function be(e){if(_.resolveShare){for(let{name:r,opts:n}of e){let o=S(r,n);if(m.has(o))continue;let t=I(r,n),s=await _.resolveShare({shareKey:n.shareKey||r,shareScope:n.shareScope||"default",requiredVersion:n.requiredVersion,picked:t,available:Object.values(L(n.shareScope||"default")[n.shareKey||r]||{})})||t;s&&m.set(o,s)}for(let{name:r,opts:n}of e)await ee(r,n)}}function j(e=""){return F(e).split(/[?#]/,1)[0]}function re(e,r,n){return new Promise((o,t)=>{let s=setTimeout(()=>t(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${n}`)),r);e.then(u=>{clearTimeout(s),o(u)},u=>{clearTimeout(s),t(u)})})}let ve=e=>new Promise(r=>setTimeout(r,e)),ne=new Set;function G(e,r){if(!e||typeof e.get!="function")throw new Error(`\\u8FDC\\u7A0B\\u5E94\\u7528 "${r.name}" \\u7684 remoteEntry \\u672A\\u5BFC\\u51FA\\u5BB9\\u5668\\u63A5\\u53E3\\u3002\\u8BF7\\u786E\\u8BA4\\u5165\\u53E3\\u5BFC\\u51FA\\u4E86 get()\\uFF0C\\u5E76\\u68C0\\u67E5\\u8BE5\\u5730\\u5740\\u662F\\u5426\\u8FD4\\u56DE\\u6B63\\u786E\\u7684\\u8054\\u90A6\\u5165\\u53E3 JS\\u3002`);if(e.name&&r.name&&e.name!==r.name){let n=`\\u8FDC\\u7A0B\\u5165\\u53E3\\u81EA\\u62A5\\u540D\\u79F0 "${e.name}" \\u4E0E\\u5BBF\\u4E3B\\u914D\\u7F6E\\u540D\\u79F0 "${r.name}" \\u4E0D\\u4E00\\u81F4\\u3002\\u8BF7\\u7EDF\\u4E00\\u4E24\\u4FA7 federation({ name }) \\u4E0E remotes \\u7684\\u540D\\u79F0\\u3002`;if(r.promise){let o=`${r.name}\\u2194${e.name}`;ne.has(o)||(ne.add(o),console.warn(`[fulgurjs] ${n} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`))}else throw Object.assign(new Error(n),{code:R.REMOTE_NAME_MISMATCH})}}async function te(e,r){let n=r.entryFailCounts.get(e)??0,o=n>0?`${e}${e.includes("?")?"&":"?"}fulgurjs_retry=${n}`:e,t=r.entryInflight.get(e),s=t??import(o);return t||(r.entryInflight.set(e,s),s.catch(()=>{r.entryInflight.delete(e),r.entryFailCounts.set(e,(r.entryFailCounts.get(e)??0)+1)})),re(s,r.timeout??J,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${j(e)}`)}async function oe(e,r){let n=e.shareScope||"default";if(e.container){let s=V.get(e.container);if(s&&s!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${s}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return e.container}if(e.containerPromise)return e.containerPromise;let o=e.breakerState;if(o.openUntil>Date.now()){let s=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u8FDE\\u7EED\\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u7194\\u65AD\\u5668\\u5DF2\\u5F00\\u542F\\uFF1B\\u5C06\\u5728 ${new Date(o.openUntil).toISOString()} \\u540E\\u5141\\u8BB8\\u91CD\\u8BD5\\u3002\\u8BF7\\u5148\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u670D\\u52A1\\u548C\\u7F51\\u7EDC\\u3002`,{remote:e.name,stage:"container"});throw v({remote:e.name,error:s}),s}e.state="loading",e.debug.status="loading";let t=(async()=>{let s=[];if(e.promise)s.push(async()=>{let i=await re(e.promise(),e.timeout??J,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),h=typeof i=="string"?await te(i,e):i;return G(h,e),h});else for(let i of[e.entry,...e.fallback??[]])s.push(async()=>{let h=await te(i,e);return G(h,e),h});let u,a,y=!1,g=r?.retries??e.retries??ce;for(let i of s){for(let h=0;h<=g;h++){let O=performance.now();try{u=await i(),e.lastLoadMs=Math.round(performance.now()-O),e.debug.lastLoadMs=e.lastLoadMs,y=!0;break}catch($){if(a=$,$?.code)throw $;h<g&&await ve(Math.min(De,200*2**h)*(1-Ke*(1-2*Math.random())))}}if(y)break}if(!y||!u){let i=j(e.entry),h=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),h.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),h.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),h.push("2. \\u68C0\\u67E5 Nginx/CDN \\u7684\\u5165\\u53E3\\u8DEF\\u5F84\\u6620\\u5C04\\uFF1B\\u8BE5\\u5730\\u5740\\u4E0D\\u80FD\\u56DE\\u9000\\u5230 index.html\\u3002")),new E(R.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${i} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${M(a)}\n\\u4FEE\\u6CD5\\uFF1A\n${h.join(`\n`)}`,{remote:e.name,stage:"container"},{cause:a})}G(u,e);let p=V.get(u);if(p&&p!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${p}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof u.init=="function"&&await u.init(c),V.set(u,n),e.container=u,e.state="loaded",e.debug.status="loaded",o.fails=0,u})();e.containerPromise=t;try{return await t}catch(s){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=M(s),o.fails+=1,o.fails>=e.breakerThreshold&&(o.openUntil=Date.now()+e.breakerResetMs,o.fails=0),s instanceof E)throw v({remote:e.name,error:s}),s;if(s?.code)throw v({remote:e.name,error:s}),s;let u=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(s)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name,stage:"container"},{cause:s});throw v({remote:e.name,error:u}),u}}function X(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:se(e.slice(r+1))}}function se(e){return e?e.startsWith(".")?e:`./${e}`:""}async function Pe(e,r){let{remote:n,module:o}=X(e);if(o&&K===n)throw new E(R.SETUP_RECURSION,`\\u73B0\\u8C61\\uFF1A\\u52A0\\u8F7D "${e}" \\u65F6\\uFF0C\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 setup/onSession \\u53C8\\u540C\\u6B65\\u52A0\\u8F7D\\u4E86\\u81EA\\u8EAB\\u6A21\\u5757\\uFF0C\\u5F62\\u6210\\u5FAA\\u73AF\\u7B49\\u5F85\\u3002\n\\u539F\\u56E0\\uFF1A\\u521D\\u59CB\\u5316\\u5C1A\\u672A\\u5B8C\\u6210\\uFF0C\\u4E0D\\u80FD\\u7B49\\u5F85\\u81EA\\u8EAB\\u7684\\u521D\\u59CB\\u5316\\u7ED3\\u679C\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u4E0D\\u8981\\u5728 setup/onSession \\u4E2D\\u52A0\\u8F7D\\u540C\\u4E00\\u8FDC\\u7A0B\\u7684\\u6A21\\u5757\\uFF1B\\u8BF7\\u5728\\u9875\\u9762\\u7EC4\\u4EF6\\u4E2D\\u52A0\\u8F7D\\uFF0C\\u6216\\u901A\\u8FC7 context \\u89E3\\u8026\\u3002`,{remote:n});try{_.beforeLoadRemote?.({remote:n,module:o})}catch(i){W("beforeLoadRemote",i)}let t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:n});let s;try{let i=o&&t.manifestUrl?B(e):Promise.resolve();[s]=await Promise.all([oe(t,{retries:r?.retries}),i])}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}if(!o)return s;await pe(t,s);let u=q(n).globalComponents,a=r?.consumerApp;if(u&&a&&typeof a.component=="function")for(let i of Object.keys(u))a.component(i,u[i]);let y=q(n).pageProviders;y&&y.length>0&&typeof a?.pageProviders=="function"&&a.pageProviders(y);let g=`${n}@${t.shareScope||"default"}#${o}`;b.has(g)||b.set(g,s.get(o).catch(i=>{if(b.delete(g),i instanceof E||i?.code)throw v({remote:n,error:i}),i;let h=new E(R.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${o}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(i)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:o,stage:"expose"},{cause:i});throw v({remote:n,error:h}),h}));let p;try{p=await b.get(g)}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}try{_.afterLoadRemote?.({remote:n,module:o,module_ns:p})}catch(i){W("afterLoadRemote",i)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let i=new E(R.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6A21\\u5757 "${o}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:n,module:o});v({remote:n,error:i}),console.error(i.message)}return p}function $e(e){let r=d.get(e);if(!r)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return oe(r)}async function B(e,r={}){let{remote:n,module:o}=X(e),t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:n});let s=r.mode??"preload",u=(g,p)=>{if(g.sheet)return Promise.resolve();let i=A.get(g);if(i)return i;let h=new Promise(O=>{let $=()=>{g.removeEventListener("load",$),g.removeEventListener("error",T),O()},T=()=>{v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${p}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:n})}),$()};g.addEventListener("load",$,{once:!0}),g.addEventListener("error",T,{once:!0}),g.sheet&&$()});return A.set(g,h),h},a=(g,p)=>{if(typeof document>"u")return Promise.resolve();let i=document.querySelector(`link[href="${g}"]`);if(i)return p==="style"&&s==="preload"?A.get(i)??Promise.resolve():Promise.resolve();let h=document.createElement("link");h.rel=p==="style"?"stylesheet":"modulepreload",h.href=g,s==="prefetch"&&(h.fetchPriority="low");let O=p==="style"?u(h,g):Promise.resolve();return document.head.appendChild(h),p==="style"&&s==="preload"?O:Promise.resolve()},y=g=>{let p=typeof document<"u"?document.baseURI:void 0,i=new URL(t.entry,p||"http://fulgurjs.invalid/");return!i.pathname.endsWith("/")&&!i.pathname.split("/").pop().includes(".")&&(i.pathname+="/"),new URL(g,i).href};try{if(t.manifestUrl){let g=P.get(t.manifestUrl);g||(g=fetch(t.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(i=>i.ok?i.json():void 0),P.set(t.manifestUrl,g),g.then(i=>{i||P.delete(t.manifestUrl)},()=>P.delete(t.manifestUrl)));let p=await g;if(p){let i=p.schemaVersion;if(typeof i=="number"&&(!Number.isInteger(i)||i>1)){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(i)}\\uFF0C\\u5F53\\u524D\\u4EC5\\u652F\\u6301\\u7248\\u672C 1\\u3002\\u8BF7\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u548C\\u8FDC\\u7A0B\\u7684\\u63D2\\u4EF6\\u7248\\u672C\\u3002`,{remote:n})}),await a(t.entry,"modulepreload");return}await a(t.entry,"modulepreload");let h=p.exposes,O=Array.isArray(h)?h.filter(k=>k&&typeof k=="object").map(k=>[String(k.name??""),k]):h&&typeof h=="object"?Object.entries(h):[],$=o?O.filter(([k,N])=>se(String(N?.name??k))===o):O,T=[];for(let[,k]of $)if(typeof k?.file=="string"&&await a(y(k.file),"modulepreload"),Array.isArray(k?.css))for(let N of k.css){if(typeof N!="string")continue;let _e=a(y(N),"style");s==="preload"&&T.push(_e)}await Promise.all(T);return}}await a(t.entry,"modulepreload")}catch(g){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(g)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:n})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=c,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,n]of d)e[r]={...n.debug,entry:j(n.entry)};return e},errors:[]}),{shareScopeMap:c,initSharing:ge,registerShare:H,registerRemotes:Z,registerRemote:ye,registerPlugins:Se,loadShare:ee,loadShareSync:we,prepareShares:be,getLoadedShare:Ee,pinLoadedShare:Re,loadRemote:Pe,getContainer:$e,preloadRemote:B,parseSpec:X,clearSessionState:me,reportRemoteError:e=>{v(e)}}}var le=globalThis,w=le.__FULGURJS_RUNTIME__??qe();le.__FULGURJS_RUNTIME__=w;try{Object.freeze(w)}catch{}var Ye=ae;function Ze(){return w}var Qe=w.initSharing,er=w.registerShare,rr=w.registerRemotes,nr=w.registerRemote,tr=w.registerPlugins,or=w.loadShare,sr=w.getLoadedShare,ir=w.prepareShares||(async c=>{for(let{name:d,opts:f}of c)await w.loadShare(d,f)}),ar=w.loadShareSync,cr=w.pinLoadedShare,lr=w.loadRemote,ur=w.getContainer,dr=w.preloadRemote,fr=w.parseSpec,pr=w.clearSessionState,mr=w.shareScopeMap;function gr(c){if(c&&typeof c=="object"&&"default"in c){let d=c.default;return d!==void 0?d:c}return c}var hr=w;export{pr as clearSessionState,hr as default,ur as getContainer,sr as getLoadedShare,Ze as getRuntime,Qe as initSharing,lr as loadRemote,or as loadShare,ar as loadShareSync,fr as parseSpec,cr as pinLoadedShare,dr as preloadRemote,ir as prepareShares,tr as registerPlugins,nr as registerRemote,rr as registerRemotes,er as registerShare,w as runtime,mr as shareScopeMap,gr as unwrapDefault,Ye as version};\n';
|
|
4444
|
+
var runtime_code_gen_default = 'var ke=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function C(c){let d=ke.exec(String(c).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function Oe(c,d){if(c.length===0&&d.length===0)return 0;if(c.length===0)return 1;if(d.length===0)return-1;let f=Math.max(c.length,d.length);for(let l=0;l<f;l++){let m=c[l],S=d[l];if(m===void 0)return-1;if(S===void 0)return 1;let b=/^\\d+$/.test(m),P=/^\\d+$/.test(S);if(b&&P){let A=Number(m)-Number(S);if(A!==0)return A}else{if(b!==P)return b?-1:1;if(m!==S)return m<S?-1:1}}return 0}function x(c,d){let f=C(c),l=C(d);return!f||!l?c<d?-1:c>d?1:0:f.major!==l.major?f.major-l.major:f.minor!==l.minor?f.minor-l.minor:f.patch!==l.patch?f.patch-l.patch:Oe(f.pre,l.pre)}var Me=/^[a-z]+[+:-]/i;function U(c,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||Me.test(f)?!0:f.split("||").some(l=>Te(c,l.trim()))}function Te(c,d){if(!d||d==="*")return!C(c)?.pre.length;let f=d.split(/\\s+-\\s+/);if(f.length===2){let S=f[0].trim(),b=f[1].trim();return!(!U(c,`>=${S}`)||!U(c,`<=${b}`))}let l=C(c);if(!l)return!1;let m=Le(d);if(m===null)return!0;for(let S of m)if(!je(l,c,S))return!1;return!(l.pre.length>0&&!m.some(S=>S.ver.pre.length>0)&&!m.some(b=>b.ver.major===l.major&&b.ver.minor===l.minor&&b.ver.patch===l.patch))}function Le(c){let d=[],f=c.trim().split(/\\s+/).filter(Boolean);if(f.length===0)return null;for(let l of f){let m=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(l);if(!m)return null;let S=m[1],b=m[2],P=Ae(S,b);if(P===null)return null;d.push(...P)}return d}function Ae(c,d){let f=xe(d);if(!f)return null;let{ver:l,partial:m}=f;switch(c){case"^":{let S=Ie(l);return S?[{op:">=",ver:l},{op:"<",ver:S}]:null}case"~":{let S=m>=2?{major:l.major,minor:l.minor+1,patch:0,pre:[]}:{major:l.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:l},{op:"<",ver:S}]}case">=":return[{op:">=",ver:l}];case">":return m===1?[{op:">=",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:">",ver:l}];case"<":return m===1?[{op:"<",ver:{major:l.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:l.major,minor:l.minor,patch:0,pre:[]}}]:[{op:"<",ver:l}];case"<=":return[{op:"<=",ver:l}];case"=":case void 0:return m===1?[{op:">=",ver:l},{op:"<",ver:{major:l.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:l},{op:"<",ver:{major:l.major,minor:l.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:l}];default:return null}}function Ie(c){return c.major>0?{major:c.major+1,minor:0,patch:0,pre:[]}:c.minor>0?{major:0,minor:c.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:c.patch+1,pre:[]}}function xe(c){let d=c.replace(/^v/,"").trim();if(!d||d==="*"||d==="x"||d==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=d.split("."),l=[],m=0;for(let P of f.slice(0,3))if(/^\\d+$/.test(P))l.push(Number(P)),m++;else{if(P==="x"||P==="X"||P==="*")break;break}let S=d.split("-"),b=S.length>1?S.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:l[0]??0,minor:l[1]??0,patch:l[2]??0,pre:b},partial:m}}function Ue(c,d){switch(d){case">=":return c>=0;case">":return c>0;case"<":return c<0;case"<=":return c<=0;case"=":return c===0}}function je(c,d,f){let l=`${c.major}.${c.minor}.${c.patch}`+(c.pre.length?`-${c.pre.join(".")}`:"");if(f.upper)return!(!(x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(x(l,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=x(l,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),S=Ue(m,f.op);return f.ver.pre.length>0&&c.pre.length===0&&(f.op===">"||f.op==="<")?!1:S}function F(c){return c.replace(/(https?:\\/\\/)(?:[^\\s/@]+@)?([^\\s?#"\'<>\uFF0C\u3002\uFF1B\uFF09)\\]]+)(?:[?#][^\\s"\'<>\uFF0C\u3002\uFF1B\uFF09)\\]]*)?/g,"$1$2")}function M(c){return F(String(c?.message??c)).replace(/\\b(token|password|cookie|authorization)["\']?\\s*[:=]\\s*["\']?(?:Bearer\\s+)?[^\\s,;"\'}]+/gi,"$1=[redacted]")}var E=class extends Error{code;details;constructor(d,f,l,m){super(`[fulgurjs:${d}] ${F(f)}`,m),this.name="FgError",this.code=d,this.details=l}},R={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014",COMPONENT_EXPORT_INVALID:"MFU-018",VUE_RUNTIME_IDENTITY_MISMATCH:"MFU-019",REMOTE_RENDER_ERROR:"MFU-020"};function ie(c){if(typeof c!="object"||c===null)return!1;let d=globalThis,f=d.__FULGURJS_REPORTED_ERRORS__??=new WeakSet;return f.has(c)?!0:(f.add(c),!1)}var ae="6.14.5";var Ne="__fulgurjsSetup",Ce="__FULGURJS_APP_CONFIG__",J=15e3,ce=2,Fe=5,Ve=3e4,De=4e3,Ke=.2;function qe(){let c=Object.create(null),d=new Map,f=[],l=new Set,m=new Map,S=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,P=new Map,A=new WeakMap,V=new WeakMap,W=(e,r)=>{console.warn(`[fulgurjs] ${e} \\u94A9\\u5B50\\u5931\\u8D25\\uFF08\\u4E0D\\u5F71\\u54CD\\u52A0\\u8F7D\\uFF09\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A`,M(r))},_={},ue=()=>{for(let e of f)try{e.init?.(_)}catch(r){console.warn("[fulgurjs] \\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A",e.name,M(r))}},D=new Map,K,q=e=>{let r=D.get(e);return r||D.set(e,r={}),r},z=()=>globalThis[Ce]??{};async function Y(e,r,n,o){let t=u=>{if(u instanceof E)return v({remote:e,error:u}),u;let a=new E(R.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${o} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${M(u)}\n\\u4FEE\\u6CD5\\uFF1A\\u68C0\\u67E5\\u5E76\\u4FEE\\u590D\\u8BE5 ${o} \\u51FD\\u6570\\u540E\\u91CD\\u65B0\\u52A0\\u8F7D\\uFF1B\\u5931\\u8D25\\u7F13\\u5B58\\u5DF2\\u6E05\\u9664\\uFF0C\\u53EF\\u4EE5\\u76F4\\u63A5\\u91CD\\u8BD5\\u3002`,{remote:e,phase:o},{cause:u});return v({remote:e,error:a}),a};K=e;let s;try{s=r(n)}catch(u){throw t(u)}finally{K=void 0}try{await s}catch(u){throw t(u)}}async function de(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await B(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default,u=t?.onSession!==void 0||t?.globalComponents!==void 0||t?.pageProviders!==void 0;if(s!==void 0&&typeof s!="function"||!s&&!u)throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${t==null?String(t):typeof s}\\uFF0C\\u4E14\\u6A21\\u5757\\u4E0D\\u6EE1\\u8DB3\\u521D\\u59CB\\u5316\\u58F0\\u660E\\u5951\\u7EA6\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u521D\\u59CB\\u5316\\u51FD\\u6570\\uFF0C\\u6216\\u53EA\\u58F0\\u660E onSession/globalComponents/pageProviders\\uFF1B\\u7A7A\\u6A21\\u5757\\u4E0E\\u975E\\u51FD\\u6570\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u65E0\\u6548\\u3002`,{remote:e.name,module:n});if(t.onSession!==void 0&&typeof t.onSession!="function")throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AonSession \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.onSession}\\uFF0C\\u5E94\\u4E3A\\u51FD\\u6570\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5C06 onSession \\u6539\\u4E3A\\u5177\\u540D\\u5BFC\\u51FA\\u7684\\u51FD\\u6570\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});if(o.setupExports=t,t.globalComponents!==void 0){if(typeof t.globalComponents!="object"||t.globalComponents===null||Array.isArray(t.globalComponents))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AglobalComponents \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${Array.isArray(t.globalComponents)?"array":typeof t.globalComponents}\\uFF0C\\u5E94\\u4E3A\\u5BF9\\u8C61\\uFF08\\u952E=\\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D\\uFF0C\\u503C=\\u7EC4\\u4EF6\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const globalComponents = { \\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D: \\u7EC4\\u4EF6 } \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.globalComponents=t.globalComponents}if(t.pageProviders!==void 0){if(!Array.isArray(t.pageProviders))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1ApageProviders \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.pageProviders}\\uFF0C\\u5E94\\u4E3A\\u6570\\u7EC4\\uFF08\\u6BCF\\u9879=\\u7EC4\\u4EF6\\u6216\\u96F6\\u53C2 loader\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const pageProviders = [AppProvider] \\u6216 [() => import(\'./X\').then((m) => m.AppProvider)] \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.pageProviders=t.pageProviders}s&&await Y(e.name,s,{appContext:z(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(t){throw e.debug.setup="failed",t?.code&&v({remote:e.name,error:t}),o.setupExports=void 0,o.globalComponents=void 0,o.pageProviders=void 0,t}}async function fe(e,r,n){let o=z(),t=o?.sessionKey;if(typeof t!="string"||t===""){let y=new E(R.SETUP_SESSION_KEY_MISSING,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u58F0\\u660E\\u4E86 onSession\\uFF0C\\u4F46\\u5BBF\\u4E3B\\u5C1A\\u672A\\u63D0\\u4F9B\\u6709\\u6548\\u7684 AppContext.sessionKey\\u3002\n\\u539F\\u56E0\\uFF1A\\u5F53\\u524D\\u503C\\u4E3A ${t===void 0?"\\u7F3A\\u5931":JSON.stringify(t)}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5BBF\\u4E3B\\u6BCF\\u6B21\\u767B\\u5F55\\u6216\\u91CD\\u767B\\u65F6\\u751F\\u6210\\u65B0\\u7684\\u975E\\u654F\\u611F\\u767B\\u5F55\\u4EE3\\u6B21 ID\\uFF0C\\u5E76\\u5728\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u9875\\u9762\\u524D\\u8C03\\u7528 provideAppContext({ ..., sessionKey: \'\\u767B\\u5F55\\u4EE3\\u6B21 ID\' })\\uFF1B\\u4E0D\\u8981\\u4F7F\\u7528 token \\u539F\\u6587\\u3002`,{remote:e.name});throw v({remote:e.name,error:y}),y}if(r.sessionPromise&&r.sessionKey===t)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=t;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),a=(async()=>{await u,!s.signal.aborted&&await Y(e.name,n,{appContext:o,sessionKey:t,signal:s.signal},"onSession")})();return r.sessionPromise=a,a.catch(()=>{r.sessionKey===t&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),a}async function pe(e,r){let n=r?.[Ne];if(typeof n!="string"||n==="")return;let o=q(e.name);o.setupPromise||(o.setupPromise=de(e,r,n,o).catch(s=>{throw o.setupPromise=void 0,s})),await o.setupPromise;let t=o.setupExports?.onSession;typeof t=="function"&&await fe(e,o,t)}function me(){for(let e of D.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let L=e=>c[e]??=Object.create(null);function v(e){if(!ie(e.error)){try{_.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}}function ge(e="default"){return L(e),c}function H(e,r,n,o,t={}){let s=L(e||"default"),u=Object.hasOwn(s,r)?s[r]:void 0,a=u&&typeof u=="object"?u:void 0;a||(a=Object.create(null),s[r]=a),!(Object.hasOwn(a,n)&&a[n])&&(a[n]={version:n,get:o,from:t.from??"unknown",eager:!!t.eager,loaded:!!t.loaded})}function he(e){let r=(n,o,t)=>{if(n===void 0)return;if(!(typeof n=="number"&&(t?Number.isInteger(n)&&n>=0&&n<=10:Number.isFinite(n)&&n>0)))throw new Error(`[fulgurjs] \\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 ${o} \\u914D\\u7F6E\\u65E0\\u6548\\uFF1A\\u5F53\\u524D\\u4E3A ${String(n)}\\uFF0C\\u5E94\\u4E3A${t?" 0 \\u5230 10 \\u7684\\u6574\\u6570":"\\u5927\\u4E8E 0 \\u7684\\u6709\\u9650\\u6570\\u5B57"}\\u3002\\u8BF7\\u4FEE\\u6B63 registerRemote \\u914D\\u7F6E\\u3002`)};r(e.timeout,"timeout"),r(e.retries,"retries",!0),e.breaker&&(r(e.breaker.threshold,"breaker.threshold"),r(e.breaker.resetMs,"breaker.resetMs"))}function Z(e){for(let r of e){he(r);let n=d.get(r.name);d.set(r.name,{timeout:J,retries:ce,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??Fe,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??Ve,state:n?.state??"idle",breakerState:n?.breakerState??{fails:0,openUntil:0},entryInflight:n?.entryInflight??new Map,entryFailCounts:n?.entryFailCounts??new Map,debug:n?.debug??{entry:j(r.entry),status:"idle",setup:"none"}})}}function ye(e){Z([e])}function Se(e){f.push(...e),m.clear(),ue()}function I(e,r,n=!1){let o=r.shareScope||"default",t=r.shareKey||e,u=L(o)[t]||{},a=Object.keys(u).filter(i=>!n||r.singleton||u[i].value!==void 0);if(n&&a.length===0)return;let y=r.requiredVersion,g=a.filter(i=>y===void 0||y===!1||U(i,y)),p;if(r.singleton&&a.length>0){let i=a.filter(h=>u[h].loaded);if(p=[...i.length?i:a].sort(x).pop(),!g.includes(p)){let h=u[p],O=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${t}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42 ${y??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${a.join("\\u3001")}\\uFF1B\\u5355\\u4F8B\\u5019\\u9009\\u4E3A ${h.from} \\u63D0\\u4F9B\\u7684 ${p}\\u3002\n`+(r.strictVersion?`\\u7ED3\\u679C\\uFF1AstrictVersion \\u5DF2\\u5F00\\u542F\\uFF0C\\u672C\\u6B21\\u52A0\\u8F7D\\u5DF2\\u62D2\\u7EDD\\uFF0C\\u672A\\u4EA4\\u4ED8\\u4E0D\\u517C\\u5BB9\\u5B9E\\u4F8B\\u3002\n`:`\\u7ED3\\u679C\\uFF1A\\u590D\\u7528\\u6B64\\u5355\\u4F8B\\uFF1B\\u8BF7\\u786E\\u8BA4\\u4E24\\u7AEF API \\u517C\\u5BB9\\u3002\n`)+"\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u6838\\u5BF9\\u540E\\u8C03\\u6574 shared.requiredVersion\\u3002";if(r.strictVersion){let T=new E(R.SHARE_STRICT_VERSION,O,{shareKey:t,requiredVersion:y});throw v({remote:h.from,error:T}),T}let $=`${o}|${t}|${y??"*"}|${p}|${a.join(",")}`;l.has($)||(l.add($),console.warn(`[fulgurjs:MFU-010] ${O}`))}}else if(p=[...g].sort(x).pop(),!p){if(r.strictVersion){let i=new E(R.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${o}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${t}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${y}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${a.join("\\u3001")||"\\u65E0"}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u4FEE\\u6B63 shared.requiredVersion\\u3002`);throw v({remote:t,error:i}),i}return}return u[p]}function Q(e,r,n){let o=r.localVersion;if(!o||n===void 0)return;let t=r.shareScope||"default",s=r.shareKey||e,u=L(t),a=Object.hasOwn(u,s)?u[s]:void 0;if(a&&Object.keys(a).length>0){try{let g=I(e,r);if(g&&g.value===void 0){if(g.version===o)g.value=n,g.loaded=!0;else if(r.singleton&&!g.pendingGet){H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let p=u[s][o];p.value=n,p.loaded=!0}}}catch{}return}H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let y=u[s]?.[o];y&&(y.value=n)}async function ee(e,r={}){let n=r.shareScope||"default",o=r.shareKey||e,t=L(n)[o]||{},s=S(e,r),u=_.resolveShare?m.get(s):void 0,a=u||I(e,r);if(!a){if(r.fallback){let i=await r.fallback();return Q(e,r,i),i}let p=new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${o}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u4F5C\\u7528\\u57DF "${n}" \\u4E2D\\u6CA1\\u6709\\u7B26\\u5408 ${r.requiredVersion??"\\u4EFB\\u610F\\u7248\\u672C"} \\u8981\\u6C42\\u7684\\u7248\\u672C\\uFF0C\\u4E14\\u672A\\u914D\\u7F6E\\u672C\\u5730\\u526F\\u672C\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728\\u5BBF\\u4E3B\\u6216\\u8FDC\\u7A0B\\u6CE8\\u518C\\u8BE5\\u4F9D\\u8D56\\uFF0C\\u6216\\u4E3A shared \\u914D\\u7F6E\\u53EF\\u7528\\u7684\\u672C\\u5730\\u526F\\u672C\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion});throw v({remote:o,error:p}),p}if(_.resolveShare&&!u){let p=await _.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:a,available:Object.values(t)});p&&(a=p),m.set(s,a)}if(a.value!==void 0)return m.set(S(e,r),a),a.value;if(a.loaded=!0,!a.pendingGet)try{a.pendingGet=a.get()}catch(p){a.pendingGet=Promise.reject(p)}let y=a.pendingGet,g;try{g=await y}catch(p){if(a.value!==void 0)return m.set(S(e,r),a),a.value;throw a.loaded=!1,m.get(s)===a&&m.delete(s),p}finally{a.pendingGet===y&&(a.pendingGet=void 0)}return a.value===void 0&&(a.value=g),m.set(S(e,r),a),a.value}function Ee(e,r={}){return _.resolveShare?m.get(S(e,r))?.value:I(e,r,!0)?.value}function Re(e,r,n,o){Q(e,{...r,localVersion:n},o)}function we(e,r){let n=r.shareScope||"default",o=r.shareKey||e;if(_.resolveShare){let s=S(e,r),u=m.get(s);if(u&&u.value!==void 0)return{kind:"ready",value:u.value};let a=u||_.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:I(e,r),available:Object.values(L(n)[o]||{})});if(a&&typeof a.then=="function")throw Promise.resolve(a).catch(()=>{}),new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u5BF9\\u5171\\u4EAB "${o}" \\u8FD4\\u56DE\\u4E86 Promise\\uFF0C\\u4F46\\u8BE5\\u5171\\u4EAB\\u6B63\\u88AB\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u6D88\\u8D39\\uFF08Vite 8 \\u540C\\u6B65\\u534F\\u5546\\u95E8\\u9762\\uFF09\\u3002\n\\u539F\\u56E0\\uFF1A\\u6A21\\u5757\\u6C42\\u503C\\u671F\\u65E0\\u6CD5\\u7B49\\u5F85\\u5F02\\u6B65\\u51B3\\u7B56\\uFF1B\\u9759\\u6001\\u5BFC\\u5165\\u4E0D\\u80FD\\u9759\\u9ED8\\u5FFD\\u7565 hook \\u51B3\\u7B56\\u3002\n\\u4FEE\\u6CD5\\uFF1AVite 8 HTML \\u5165\\u53E3\\u4F1A\\u5148\\u5B8C\\u6210\\u5F02\\u6B65\\u534F\\u5546\\uFF1B\\u5176\\u4ED6\\u5165\\u53E3\\u8BF7\\u5148\\u52A8\\u6001 loadShare \\u5EFA\\u7ACB\\u5FEB\\u7167\\uFF0C\\u518D\\u5BFC\\u5165\\u6D88\\u8D39\\u8005\\uFF0C\\u6216\\u8BA9\\u8BE5\\u952E\\u540C\\u6B65\\u8FD4\\u56DE picked\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let y=a;if(y){if(y.value!==void 0)return m.set(S(e,r),y),{kind:"ready",value:y.value};if(y.version!==void 0&&y.version===r.localVersion)return{kind:"local"};throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u4E3A "${o}" \\u9009\\u62E9\\u4E86\\u672A\\u5C31\\u7EEA\\u7684 ${y.version??"\\u6761\\u76EE"}\\u3002\n\\u539F\\u56E0\\uFF1A\\u540C\\u6B65\\u6D88\\u8D39\\u4E0D\\u80FD\\u7B49\\u5F85\\u52A0\\u8F7D\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5148\\u52A8\\u6001 loadShare \\u518D\\u5BFC\\u5165\\u6D88\\u8D39\\u8005\\uFF0C\\u6216\\u9009\\u62E9\\u5DF2\\u5C31\\u7EEA\\u5B9E\\u4F8B/\\u672C\\u5730\\u7248\\u672C ${r.localVersion??"\\u672A\\u58F0\\u660E"}\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0})}}let t=I(e,r);if(!t)return{kind:"local"};if(t.value!==void 0)return{kind:"ready",value:t.value};if(t.version!==void 0&&t.version===r.localVersion)return{kind:"local"};if(r.singleton||r.strictVersion&&r.requiredVersion&&(!r.localVersion||!U(r.localVersion,r.requiredVersion))){if(r.strictVersion||t.pendingGet)throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB "${o}" \\u9009\\u4E2D\\u4E86 ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version}\\uFF08\\u5C1A\\u672A\\u52A0\\u8F7D\\uFF09\\uFF0C\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u65E0\\u6CD5\\u7B49\\u5F85\\u5176\\u5B9E\\u4F8B\\u5C31\\u7EEA\\u3002\n\\u539F\\u56E0\\uFF1A\\u4E0D\\u80FD\\u6539\\u7528\\u4E0D\\u517C\\u5BB9\\u7684\\u672C\\u5730\\u526F\\u672C\\u6216\\u5206\\u88C2\\u5355\\u4F8B\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u8BA9\\u8BE5\\u5171\\u4EAB\\u7684\\u9996\\u6B21\\u6D88\\u8D39\\u5148\\u7ECF\\u4E00\\u6B21\\u52A8\\u6001 loadShare \\u5B8C\\u6210\\u52A0\\u8F7D\\uFF0C\\u6216\\u5C06\\u672C\\u5E94\\u7528\\u7248\\u672C\\u4E0E\\u4F5C\\u7528\\u57DF\\u63D0\\u4F9B\\u7248\\u672C\\u5BF9\\u9F50\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let s=`${n}|${o}|${t.version}|${r.localVersion}`;return l.has(s)||(l.add(s),console.warn(`[fulgurjs:MFU-010] \\u5171\\u4EAB\\u5355\\u4F8B "${o}"\\uFF1A\\u4F5C\\u7528\\u57DF\\u4E2D ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version} \\u5C1A\\u672A\\u52A0\\u8F7D\\uFF0C\\u9996\\u4E2A\\u6D88\\u8D39\\u8005\\u4EE5\\u672C\\u5730\\u7248\\u672C ${r.localVersion??""} \\u63A5\\u7BA1\\uFF08\\u540E\\u7EED\\u6D88\\u8D39\\u8005\\u6309\\u5DF2\\u52A0\\u8F7D\\u4F18\\u5148\\u6536\\u655B\\u5230\\u8BE5\\u5B9E\\u4F8B\\uFF09\\u3002`)),{kind:"local"}}return console.warn(`[fulgurjs] \\u5171\\u4EAB "${o}"\\uFF1A\\u975E\\u5355\\u4F8B\\u540C\\u6B65\\u6D88\\u8D39\\u4F7F\\u7528\\u672C\\u5730 ${r.localVersion??""}\\uFF0C\\u8FDC\\u7A0B ${t.version} \\u5C1A\\u672A\\u5C31\\u7EEA\\u3002`),{kind:"local"}}async function be(e){if(_.resolveShare){for(let{name:r,opts:n}of e){let o=S(r,n);if(m.has(o))continue;let t=I(r,n),s=await _.resolveShare({shareKey:n.shareKey||r,shareScope:n.shareScope||"default",requiredVersion:n.requiredVersion,picked:t,available:Object.values(L(n.shareScope||"default")[n.shareKey||r]||{})})||t;s&&m.set(o,s)}for(let{name:r,opts:n}of e)await ee(r,n)}}function j(e=""){return F(e).split(/[?#]/,1)[0]}function re(e,r,n){return new Promise((o,t)=>{let s=setTimeout(()=>t(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${n}`)),r);e.then(u=>{clearTimeout(s),o(u)},u=>{clearTimeout(s),t(u)})})}let ve=e=>new Promise(r=>setTimeout(r,e)),ne=new Set;function G(e,r){if(!e||typeof e.get!="function")throw new Error(`\\u8FDC\\u7A0B\\u5E94\\u7528 "${r.name}" \\u7684 remoteEntry \\u672A\\u5BFC\\u51FA\\u5BB9\\u5668\\u63A5\\u53E3\\u3002\\u8BF7\\u786E\\u8BA4\\u5165\\u53E3\\u5BFC\\u51FA\\u4E86 get()\\uFF0C\\u5E76\\u68C0\\u67E5\\u8BE5\\u5730\\u5740\\u662F\\u5426\\u8FD4\\u56DE\\u6B63\\u786E\\u7684\\u8054\\u90A6\\u5165\\u53E3 JS\\u3002`);if(e.name&&r.name&&e.name!==r.name){let n=`\\u8FDC\\u7A0B\\u5165\\u53E3\\u81EA\\u62A5\\u540D\\u79F0 "${e.name}" \\u4E0E\\u5BBF\\u4E3B\\u914D\\u7F6E\\u540D\\u79F0 "${r.name}" \\u4E0D\\u4E00\\u81F4\\u3002\\u8BF7\\u7EDF\\u4E00\\u4E24\\u4FA7 federation({ name }) \\u4E0E remotes \\u7684\\u540D\\u79F0\\u3002`;if(r.promise){let o=`${r.name}\\u2194${e.name}`;ne.has(o)||(ne.add(o),console.warn(`[fulgurjs] ${n} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`))}else throw Object.assign(new Error(n),{code:R.REMOTE_NAME_MISMATCH})}}async function te(e,r){let n=r.entryFailCounts.get(e)??0,o=n>0?`${e}${e.includes("?")?"&":"?"}fulgurjs_retry=${n}`:e,t=r.entryInflight.get(e),s=t??import(o);return t||(r.entryInflight.set(e,s),s.catch(()=>{r.entryInflight.delete(e),r.entryFailCounts.set(e,(r.entryFailCounts.get(e)??0)+1)})),re(s,r.timeout??J,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${j(e)}`)}async function oe(e,r){let n=e.shareScope||"default";if(e.container){let s=V.get(e.container);if(s&&s!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${s}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return e.container}if(e.containerPromise)return e.containerPromise;let o=e.breakerState;if(o.openUntil>Date.now()){let s=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u8FDE\\u7EED\\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u7194\\u65AD\\u5668\\u5DF2\\u5F00\\u542F\\uFF1B\\u5C06\\u5728 ${new Date(o.openUntil).toISOString()} \\u540E\\u5141\\u8BB8\\u91CD\\u8BD5\\u3002\\u8BF7\\u5148\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u670D\\u52A1\\u548C\\u7F51\\u7EDC\\u3002`,{remote:e.name,stage:"container"});throw v({remote:e.name,error:s}),s}e.state="loading",e.debug.status="loading";let t=(async()=>{let s=[];if(e.promise)s.push(async()=>{let i=await re(e.promise(),e.timeout??J,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),h=typeof i=="string"?await te(i,e):i;return G(h,e),h});else for(let i of[e.entry,...e.fallback??[]])s.push(async()=>{let h=await te(i,e);return G(h,e),h});let u,a,y=!1,g=r?.retries??e.retries??ce;for(let i of s){for(let h=0;h<=g;h++){let O=performance.now();try{u=await i(),e.lastLoadMs=Math.round(performance.now()-O),e.debug.lastLoadMs=e.lastLoadMs,y=!0;break}catch($){if(a=$,$?.code)throw $;h<g&&await ve(Math.min(De,200*2**h)*(1-Ke*(1-2*Math.random())))}}if(y)break}if(!y||!u){let i=j(e.entry),h=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),h.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),h.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),h.push("2. \\u68C0\\u67E5 Nginx/CDN \\u7684\\u5165\\u53E3\\u8DEF\\u5F84\\u6620\\u5C04\\uFF1B\\u8BE5\\u5730\\u5740\\u4E0D\\u80FD\\u56DE\\u9000\\u5230 index.html\\u3002")),new E(R.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${i} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${M(a)}\n\\u4FEE\\u6CD5\\uFF1A\n${h.join(`\n`)}`,{remote:e.name,stage:"container"},{cause:a})}G(u,e);let p=V.get(u);if(p&&p!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${p}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof u.init=="function"&&await u.init(c),V.set(u,n),e.container=u,e.state="loaded",e.debug.status="loaded",o.fails=0,u})();e.containerPromise=t;try{return await t}catch(s){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=M(s),o.fails+=1,o.fails>=e.breakerThreshold&&(o.openUntil=Date.now()+e.breakerResetMs,o.fails=0),s instanceof E)throw v({remote:e.name,error:s}),s;if(s?.code)throw v({remote:e.name,error:s}),s;let u=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(s)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name,stage:"container"},{cause:s});throw v({remote:e.name,error:u}),u}}function X(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:se(e.slice(r+1))}}function se(e){return e?e.startsWith(".")?e:`./${e}`:""}async function Pe(e,r){let{remote:n,module:o}=X(e);if(o&&K===n)throw new E(R.SETUP_RECURSION,`\\u73B0\\u8C61\\uFF1A\\u52A0\\u8F7D "${e}" \\u65F6\\uFF0C\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 setup/onSession \\u53C8\\u540C\\u6B65\\u52A0\\u8F7D\\u4E86\\u81EA\\u8EAB\\u6A21\\u5757\\uFF0C\\u5F62\\u6210\\u5FAA\\u73AF\\u7B49\\u5F85\\u3002\n\\u539F\\u56E0\\uFF1A\\u521D\\u59CB\\u5316\\u5C1A\\u672A\\u5B8C\\u6210\\uFF0C\\u4E0D\\u80FD\\u7B49\\u5F85\\u81EA\\u8EAB\\u7684\\u521D\\u59CB\\u5316\\u7ED3\\u679C\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u4E0D\\u8981\\u5728 setup/onSession \\u4E2D\\u52A0\\u8F7D\\u540C\\u4E00\\u8FDC\\u7A0B\\u7684\\u6A21\\u5757\\uFF1B\\u8BF7\\u5728\\u9875\\u9762\\u7EC4\\u4EF6\\u4E2D\\u52A0\\u8F7D\\uFF0C\\u6216\\u901A\\u8FC7 context \\u89E3\\u8026\\u3002`,{remote:n});try{_.beforeLoadRemote?.({remote:n,module:o})}catch(i){W("beforeLoadRemote",i)}let t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:n});let s;try{let i=o&&t.manifestUrl?B(e):Promise.resolve();[s]=await Promise.all([oe(t,{retries:r?.retries}),i])}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}if(!o)return s;await pe(t,s);let u=q(n).globalComponents,a=r?.consumerApp;if(u&&a&&typeof a.component=="function")for(let i of Object.keys(u))a.component(i,u[i]);let y=q(n).pageProviders;y&&y.length>0&&typeof a?.pageProviders=="function"&&a.pageProviders(y);let g=`${n}@${t.shareScope||"default"}#${o}`;b.has(g)||b.set(g,s.get(o).catch(i=>{if(b.delete(g),i instanceof E||i?.code)throw v({remote:n,error:i}),i;let h=new E(R.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${o}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(i)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:o,stage:"expose"},{cause:i});throw v({remote:n,error:h}),h}));let p;try{p=await b.get(g)}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}try{_.afterLoadRemote?.({remote:n,module:o,module_ns:p})}catch(i){W("afterLoadRemote",i)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let i=new E(R.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6A21\\u5757 "${o}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:n,module:o});v({remote:n,error:i}),console.error(i.message)}return p}function $e(e){let r=d.get(e);if(!r)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return oe(r)}async function B(e,r={}){let{remote:n,module:o}=X(e),t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:n});let s=r.mode??"preload",u=(g,p)=>{if(g.sheet)return Promise.resolve();let i=A.get(g);if(i)return i;let h=new Promise(O=>{let $=()=>{g.removeEventListener("load",$),g.removeEventListener("error",T),O()},T=()=>{v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${p}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:n})}),$()};g.addEventListener("load",$,{once:!0}),g.addEventListener("error",T,{once:!0}),g.sheet&&$()});return A.set(g,h),h},a=(g,p)=>{if(typeof document>"u")return Promise.resolve();let i=document.querySelector(`link[href="${g}"]`);if(i)return p==="style"&&s==="preload"?A.get(i)??Promise.resolve():Promise.resolve();let h=document.createElement("link");h.rel=p==="style"?"stylesheet":"modulepreload",h.href=g,s==="prefetch"&&(h.fetchPriority="low");let O=p==="style"?u(h,g):Promise.resolve();return document.head.appendChild(h),p==="style"&&s==="preload"?O:Promise.resolve()},y=g=>{let p=typeof document<"u"?document.baseURI:void 0,i=new URL(t.entry,p||"http://fulgurjs.invalid/");return!i.pathname.endsWith("/")&&!i.pathname.split("/").pop().includes(".")&&(i.pathname+="/"),new URL(g,i).href};try{if(t.manifestUrl){let g=P.get(t.manifestUrl);g||(g=fetch(t.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(i=>i.ok?i.json():void 0),P.set(t.manifestUrl,g),g.then(i=>{i||P.delete(t.manifestUrl)},()=>P.delete(t.manifestUrl)));let p=await g;if(p){let i=p.schemaVersion;if(typeof i=="number"&&(!Number.isInteger(i)||i>1)){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(i)}\\uFF0C\\u5F53\\u524D\\u4EC5\\u652F\\u6301\\u7248\\u672C 1\\u3002\\u8BF7\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u548C\\u8FDC\\u7A0B\\u7684\\u63D2\\u4EF6\\u7248\\u672C\\u3002`,{remote:n})}),await a(t.entry,"modulepreload");return}await a(t.entry,"modulepreload");let h=p.exposes,O=Array.isArray(h)?h.filter(k=>k&&typeof k=="object").map(k=>[String(k.name??""),k]):h&&typeof h=="object"?Object.entries(h):[],$=o?O.filter(([k,N])=>se(String(N?.name??k))===o):O,T=[];for(let[,k]of $)if(typeof k?.file=="string"&&await a(y(k.file),"modulepreload"),Array.isArray(k?.css))for(let N of k.css){if(typeof N!="string")continue;let _e=a(y(N),"style");s==="preload"&&T.push(_e)}await Promise.all(T);return}}await a(t.entry,"modulepreload")}catch(g){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(g)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:n})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=c,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,n]of d)e[r]={...n.debug,entry:j(n.entry)};return e},errors:[]}),{shareScopeMap:c,initSharing:ge,registerShare:H,registerRemotes:Z,registerRemote:ye,registerPlugins:Se,loadShare:ee,loadShareSync:we,prepareShares:be,getLoadedShare:Ee,pinLoadedShare:Re,loadRemote:Pe,getContainer:$e,preloadRemote:B,parseSpec:X,clearSessionState:me,reportRemoteError:e=>{v(e)}}}var le=globalThis,w=le.__FULGURJS_RUNTIME__??qe();le.__FULGURJS_RUNTIME__=w;try{Object.freeze(w)}catch{}var Ye=ae;function Ze(){return w}var Qe=w.initSharing,er=w.registerShare,rr=w.registerRemotes,nr=w.registerRemote,tr=w.registerPlugins,or=w.loadShare,sr=w.getLoadedShare,ir=w.prepareShares||(async c=>{for(let{name:d,opts:f}of c)await w.loadShare(d,f)}),ar=w.loadShareSync,cr=w.pinLoadedShare,lr=w.loadRemote,ur=w.getContainer,dr=w.preloadRemote,fr=w.parseSpec,pr=w.clearSessionState,mr=w.shareScopeMap;function gr(c){if(c&&typeof c=="object"&&"default"in c){let d=c.default;return d!==void 0?d:c}return c}var hr=w;export{pr as clearSessionState,hr as default,ur as getContainer,sr as getLoadedShare,Ze as getRuntime,Qe as initSharing,lr as loadRemote,or as loadShare,ar as loadShareSync,fr as parseSpec,cr as pinLoadedShare,dr as preloadRemote,ir as prepareShares,tr as registerPlugins,nr as registerRemote,rr as registerRemotes,er as registerShare,w as runtime,mr as shareScopeMap,gr as unwrapDefault,Ye as version};\n';
|
|
4057
4445
|
|
|
4058
4446
|
// src/index.ts
|
|
4059
4447
|
function readRuntimeCode() {
|
|
@@ -4070,7 +4458,7 @@ function enumerateCjsExports(packageName, appRoot) {
|
|
|
4070
4458
|
if (cached) return cached;
|
|
4071
4459
|
let names = [];
|
|
4072
4460
|
try {
|
|
4073
|
-
const appRequire = (0, import_node_module4.createRequire)(
|
|
4461
|
+
const appRequire = (0, import_node_module4.createRequire)(import_node_path12.default.join(appRoot, "package.json"));
|
|
4074
4462
|
const mod = appRequire(packageName);
|
|
4075
4463
|
names = Object.keys(mod);
|
|
4076
4464
|
} catch {
|
|
@@ -4188,7 +4576,7 @@ async function resolveSharedImportTarget(item, root) {
|
|
|
4188
4576
|
const specifier = item.import;
|
|
4189
4577
|
if (typeof specifier !== "string") return item.shareKey;
|
|
4190
4578
|
try {
|
|
4191
|
-
const resolved = await this.resolve?.(specifier,
|
|
4579
|
+
const resolved = await this.resolve?.(specifier, import_node_path12.default.join(root, "package.json"), { skipSelf: true });
|
|
4192
4580
|
if (resolved?.id) return resolved.id;
|
|
4193
4581
|
} catch {
|
|
4194
4582
|
}
|
|
@@ -4222,7 +4610,7 @@ function federation(options) {
|
|
|
4222
4610
|
enforce: "pre",
|
|
4223
4611
|
async config(userConfig, env) {
|
|
4224
4612
|
state.command = env.command;
|
|
4225
|
-
const root =
|
|
4613
|
+
const root = import_node_path12.default.resolve(userConfig.root ?? process.cwd());
|
|
4226
4614
|
const normalized = normalizeOptions(options, root, env.command);
|
|
4227
4615
|
state.normalized = normalized;
|
|
4228
4616
|
state.rolldownBuild = env.command === "build" && Number((readInstalledVersion(root, "vite") ?? "0").split(".")[0]) >= 8;
|
|
@@ -4501,7 +4889,7 @@ export { default } from ${JSON.stringify(url)};
|
|
|
4501
4889
|
},
|
|
4502
4890
|
resolveId(source, importer) {
|
|
4503
4891
|
if (state.normalized && importer && (importer.includes("virtual:fulgurjs-shared:") || importer.includes("virtual:fulgurjs-shared-ns:")) && /^\.\.?\//.test(source) && !source.startsWith("virtual:fulgurjs-")) {
|
|
4504
|
-
const resolved =
|
|
4892
|
+
const resolved = import_node_path12.default.resolve(state.normalized.root, source);
|
|
4505
4893
|
return resolved + (source.match(/\?[^/]*$/)?.[0] ?? "");
|
|
4506
4894
|
}
|
|
4507
4895
|
let s = source;
|
|
@@ -4595,7 +4983,7 @@ export { default } from ${JSON.stringify(url)};
|
|
|
4595
4983
|
}
|
|
4596
4984
|
let importTarget = item.import;
|
|
4597
4985
|
try {
|
|
4598
|
-
const resolvedImport = await this.resolve?.(item.import,
|
|
4986
|
+
const resolvedImport = await this.resolve?.(item.import, import_node_path12.default.join(state.normalized.root, "package.json"), { skipSelf: true });
|
|
4599
4987
|
if (resolvedImport?.id) importTarget = resolvedImport.id;
|
|
4600
4988
|
} catch {
|
|
4601
4989
|
}
|
|
@@ -4704,7 +5092,7 @@ ${code}`, map: null };
|
|
|
4704
5092
|
const srcRe = /src=["']([^"']+)["']/;
|
|
4705
5093
|
const entryPath = (src) => {
|
|
4706
5094
|
const file = src.startsWith("/@fs/") ? src.slice(4) : src;
|
|
4707
|
-
return
|
|
5095
|
+
return import_node_path12.default.isAbsolute(file) && import_node_fs9.default.existsSync(file) ? file : import_node_path12.default.resolve(state.normalized.root, src.startsWith("/") ? src.slice(1) : src);
|
|
4708
5096
|
};
|
|
4709
5097
|
for (const tag of html.match(moduleScriptRe) ?? []) {
|
|
4710
5098
|
const src = srcRe.exec(tag)?.[1];
|
|
@@ -4735,7 +5123,7 @@ ${code}`, map: null };
|
|
|
4735
5123
|
state.providerEntrySeeds = [];
|
|
4736
5124
|
providerClosureCache.clear();
|
|
4737
5125
|
providerClosureBuilt = false;
|
|
4738
|
-
const providerRequire = (0, import_node_module4.createRequire)(
|
|
5126
|
+
const providerRequire = (0, import_node_module4.createRequire)(import_node_path12.default.join(n.root, "package.json"));
|
|
4739
5127
|
for (const item of n.shared) {
|
|
4740
5128
|
if (item.import === false) continue;
|
|
4741
5129
|
try {
|
|
@@ -4752,7 +5140,7 @@ ${code}`, map: null };
|
|
|
4752
5140
|
{
|
|
4753
5141
|
for (const item of n.shared) {
|
|
4754
5142
|
if (item.import === false) continue;
|
|
4755
|
-
const resolved = await this.resolve(item.import,
|
|
5143
|
+
const resolved = await this.resolve(item.import, import_node_path12.default.join(n.root, "index.html"));
|
|
4756
5144
|
const file = resolved?.id.replace(/^\0/, "").split("?")[0];
|
|
4757
5145
|
if (!file) continue;
|
|
4758
5146
|
const marker = "/node_modules/";
|
|
@@ -4770,7 +5158,7 @@ ${code}`, map: null };
|
|
|
4770
5158
|
if (state.manualChunkSpecsPending) {
|
|
4771
5159
|
for (const [group, specifier] of state.manualChunkSpecsPending) {
|
|
4772
5160
|
try {
|
|
4773
|
-
const r = await this.resolve(specifier,
|
|
5161
|
+
const r = await this.resolve(specifier, import_node_path12.default.join(n.root, "index.html"));
|
|
4774
5162
|
if (r?.id) {
|
|
4775
5163
|
state.manualChunkGroups.set(r.id, group);
|
|
4776
5164
|
state.manualChunkGroups.set(r.id.split("?")[0], group);
|
|
@@ -4800,7 +5188,7 @@ ${code}`, map: null };
|
|
|
4800
5188
|
};
|
|
4801
5189
|
for (const item of n.shared) {
|
|
4802
5190
|
if (item.import === false) continue;
|
|
4803
|
-
const selfFile = await this.resolve(item.import,
|
|
5191
|
+
const selfFile = await this.resolve(item.import, import_node_path12.default.join(n.root, "index.html")).then(
|
|
4804
5192
|
(r) => r?.id?.split("?")[0] ?? null
|
|
4805
5193
|
).catch(() => null);
|
|
4806
5194
|
for (const alias of item.aliases) {
|
|
@@ -4815,7 +5203,7 @@ ${code}`, map: null };
|
|
|
4815
5203
|
}
|
|
4816
5204
|
}
|
|
4817
5205
|
if (!file) {
|
|
4818
|
-
file = await this.resolve(alias,
|
|
5206
|
+
file = await this.resolve(alias, import_node_path12.default.join(n.root, "index.html")).then(
|
|
4819
5207
|
(r) => r?.id?.split("?")[0] ?? null
|
|
4820
5208
|
).catch(() => null);
|
|
4821
5209
|
}
|
|
@@ -4838,7 +5226,7 @@ ${code}`, map: null };
|
|
|
4838
5226
|
}
|
|
4839
5227
|
if (n.exposes.length > 0) {
|
|
4840
5228
|
for (const e of n.exposes) {
|
|
4841
|
-
const resolved = await this.resolve(e.import,
|
|
5229
|
+
const resolved = await this.resolve(e.import, import_node_path12.default.join(n.root, "index.html"));
|
|
4842
5230
|
if (resolved) {
|
|
4843
5231
|
state.exposeAbsPaths[e.import] = resolved.id.split("?")[0];
|
|
4844
5232
|
} else {
|
|
@@ -5103,9 +5491,10 @@ ${entryChunk.code}`;
|
|
|
5103
5491
|
if (n.exposes.length > 0 && n.dts) {
|
|
5104
5492
|
typesServer = createDevTypesServer(n);
|
|
5105
5493
|
let regenTimer = null;
|
|
5106
|
-
const syncedTypesDir = typeof n.dts === "object" && n.dts.dir ?
|
|
5494
|
+
const syncedTypesDir = typeof n.dts === "object" && n.dts.dir ? import_node_path12.default.resolve(n.root, n.dts.dir) : import_node_path12.default.join(n.root, import_node_fs9.default.existsSync(import_node_path12.default.join(n.root, "src")) ? "src/fulgurjs/types" : ".fulgurjs/types");
|
|
5107
5495
|
const scheduleRegen = (id) => {
|
|
5108
5496
|
if (!isTypesInputChange(n.root, id, syncedTypesDir)) return;
|
|
5497
|
+
typesServer?.markInputChanged();
|
|
5109
5498
|
if (regenTimer) clearTimeout(regenTimer);
|
|
5110
5499
|
regenTimer = setTimeout(() => {
|
|
5111
5500
|
regenTimer = null;
|
|
@@ -5170,14 +5559,14 @@ ${entryChunk.code}`;
|
|
|
5170
5559
|
if (n.remotes.length > 0 && n.dts && state.command === "serve") {
|
|
5171
5560
|
server.httpServer?.once("listening", () => {
|
|
5172
5561
|
const dtsOpt = n.dts === true ? true : n.dts;
|
|
5173
|
-
const typesRoot =
|
|
5562
|
+
const typesRoot = import_node_path12.default.join(
|
|
5174
5563
|
n.root,
|
|
5175
|
-
dtsOpt === false ? "" : (typeof dtsOpt === "object" ? dtsOpt.dir : void 0) ?? (
|
|
5564
|
+
dtsOpt === false ? "" : (typeof dtsOpt === "object" ? dtsOpt.dir : void 0) ?? (import_node_fs9.default.existsSync(import_node_path12.default.join(n.root, "src")) ? "src/fulgurjs/types" : ".fulgurjs/types")
|
|
5176
5565
|
);
|
|
5177
5566
|
try {
|
|
5178
|
-
if (
|
|
5567
|
+
if (import_node_fs9.default.existsSync(typesRoot)) {
|
|
5179
5568
|
const activeKeys = new Set(n.remotes.map((r) => r.key));
|
|
5180
|
-
for (const name of
|
|
5569
|
+
for (const name of import_node_fs9.default.readdirSync(typesRoot)) {
|
|
5181
5570
|
if (!activeKeys.has(name)) removeGeneratedTypes(typesRoot, name);
|
|
5182
5571
|
}
|
|
5183
5572
|
}
|
|
@@ -5231,7 +5620,7 @@ ${entryChunk.code}`;
|
|
|
5231
5620
|
async transform(code, id) {
|
|
5232
5621
|
if (!state.normalized) return null;
|
|
5233
5622
|
const clean = id.split("?")[0];
|
|
5234
|
-
const isAppSource = clean.startsWith(state.normalized.root +
|
|
5623
|
+
const isAppSource = clean.startsWith(state.normalized.root + import_node_path12.default.sep) && !clean.includes(`${import_node_path12.default.sep}node_modules${import_node_path12.default.sep}`) && !clean.includes(`${import_node_path12.default.sep}.vite${import_node_path12.default.sep}`);
|
|
5235
5624
|
const evidence = isAppSource && clean.endsWith(".vue") && (!id.includes("?") || /[?&]type=script(?:&|$)/.test(id)) ? tagVueRuntime(code, (source) => this.parse(source)) : null;
|
|
5236
5625
|
if (evidence) code = evidence.code;
|
|
5237
5626
|
const entryRewrite = state.command === "serve" && isAppSource ? await rewriteRuntimeEntryImports(code, isExposeTargetFile(clean, state.normalized.root, state.normalized.exposes)) : null;
|
|
@@ -5277,7 +5666,7 @@ ${entryChunk.code}`;
|
|
|
5277
5666
|
if (!n) return;
|
|
5278
5667
|
for (const s of n.shared) {
|
|
5279
5668
|
if (s.import === false) continue;
|
|
5280
|
-
void server.pluginContainer.resolveId(s.import,
|
|
5669
|
+
void server.pluginContainer.resolveId(s.import, import_node_path12.default.join(n.root, "index.html")).then((r) => {
|
|
5281
5670
|
if (r?.id) state.resolvedSharedPaths.set(r.id.split("?")[0], s.configKey);
|
|
5282
5671
|
}).catch(() => {
|
|
5283
5672
|
});
|