@fulgurjs/federation 6.14.2 → 6.14.4

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/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // src/index.ts
2
2
  import fs8 from "fs";
3
- import path10 from "path";
3
+ import path11 from "path";
4
4
  import { createRequire as createRequire4 } from "module";
5
5
 
6
6
  // src/vue-runtime-evidence.ts
@@ -34,7 +34,7 @@ import fs from "fs";
34
34
  import path from "path";
35
35
 
36
36
  // src/version.ts
37
- var RUNTIME_VERSION = "6.14.2";
37
+ var RUNTIME_VERSION = "6.14.4";
38
38
 
39
39
  // src/dev-cors.ts
40
40
  function normalizeDevCorsOrigins(input) {
@@ -1777,12 +1777,12 @@ function collectPackageExportNames(spec, importerFile) {
1777
1777
  }
1778
1778
 
1779
1779
  // src/dts-serve.ts
1780
- import path5 from "path";
1780
+ import path6 from "path";
1781
1781
  import fs4 from "fs";
1782
1782
 
1783
1783
  // src/dts-generate.ts
1784
1784
  import fs3 from "fs";
1785
- import path4 from "path";
1785
+ import path5 from "path";
1786
1786
 
1787
1787
  // src/dts-diagnostics.ts
1788
1788
  import path3 from "path";
@@ -2006,9 +2006,161 @@ export default ${value};`;
2006
2006
  return text.slice(0, assignment.getStart(source)) + replacement + text.slice(assignment.end);
2007
2007
  }
2008
2008
 
2009
+ // src/dts-type-display.ts
2010
+ import path4 from "path";
2011
+ function displayPublicDataTypes(ts, files, entries, root, compilerOptions = {}) {
2012
+ const base = path4.join(root, ".fulgurjs-types-display");
2013
+ const paths = new Map([...files].map(([rel, text]) => [path4.resolve(base, rel), text]));
2014
+ const entryPaths = [...new Set(entries)].map((rel) => path4.resolve(base, rel));
2015
+ const needsDisplay = entryPaths.filter((file) => {
2016
+ const source = ts.createSourceFile(file, paths.get(file), ts.ScriptTarget.Latest, true);
2017
+ 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));
2018
+ });
2019
+ if (needsDisplay.length === 0) return;
2020
+ const options = {
2021
+ ...compilerOptions,
2022
+ noEmit: true,
2023
+ target: compilerOptions.target ?? ts.ScriptTarget.ESNext,
2024
+ module: compilerOptions.module ?? ts.ModuleKind.ESNext,
2025
+ moduleResolution: compilerOptions.moduleResolution ?? ts.ModuleResolutionKind.Bundler ?? ts.ModuleResolutionKind.NodeJs,
2026
+ skipLibCheck: true,
2027
+ types: [],
2028
+ allowArbitraryExtensions: true
2029
+ };
2030
+ const directories = /* @__PURE__ */ new Set();
2031
+ for (const file of paths.keys()) {
2032
+ for (let dir = path4.dirname(file); dir.startsWith(base); dir = path4.dirname(dir)) directories.add(dir);
2033
+ }
2034
+ const host = ts.createCompilerHost(options, true);
2035
+ const readFile = (file) => paths.get(path4.resolve(file)) ?? ts.sys.readFile(file);
2036
+ host.readFile = readFile;
2037
+ host.fileExists = (file) => paths.has(path4.resolve(file)) || ts.sys.fileExists(file);
2038
+ host.directoryExists = (dir) => directories.has(path4.resolve(dir)) || (ts.sys.directoryExists?.(dir) ?? false);
2039
+ host.realpath = (file) => paths.has(path4.resolve(file)) ? file : ts.sys.realpath?.(file) ?? file;
2040
+ host.getCurrentDirectory = () => root;
2041
+ host.getSourceFile = (file, languageVersion) => {
2042
+ const text = readFile(file);
2043
+ return text === void 0 ? void 0 : ts.createSourceFile(file, text, languageVersion, true);
2044
+ };
2045
+ const program = ts.createProgram(needsDisplay, options, host);
2046
+ const checker = program.getTypeChecker();
2047
+ const plainData = (symbol) => {
2048
+ if (!(symbol.flags & (ts.SymbolFlags.Interface | ts.SymbolFlags.TypeAlias)) || symbol.flags & (ts.SymbolFlags.Value | ts.SymbolFlags.Namespace)) return false;
2049
+ if (symbol.declarations?.some((d) => (ts.isInterfaceDeclaration(d) || ts.isTypeAliasDeclaration(d)) && d.typeParameters?.length)) return false;
2050
+ const type = checker.getDeclaredTypeOfSymbol(symbol);
2051
+ if (!(type.flags & ts.TypeFlags.Object) || type.getCallSignatures().length || type.getConstructSignatures().length || checker.isArrayType(type) || checker.isTupleType(type)) return false;
2052
+ const hasThis = (node) => ts.isThisTypeNode(node) || (ts.forEachChild(node, hasThis) ?? false);
2053
+ const visited = /* @__PURE__ */ new Set();
2054
+ const specialBase = (value) => {
2055
+ if (visited.has(value)) return false;
2056
+ visited.add(value);
2057
+ if (!(value.flags & ts.TypeFlags.Object)) return true;
2058
+ const object = value;
2059
+ const target = object.target ?? object;
2060
+ if ((object.objectFlags | target.objectFlags) & ts.ObjectFlags.Class) return true;
2061
+ if (value.symbol?.declarations?.some(hasThis)) return true;
2062
+ 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;
2063
+ return !!(object.objectFlags & ts.ObjectFlags.Interface && checker.getBaseTypes(object)?.some(specialBase));
2064
+ };
2065
+ if (specialBase(type)) return false;
2066
+ const properties = type.getProperties();
2067
+ if (properties.length === 0) return false;
2068
+ 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))));
2069
+ };
2070
+ for (const file of needsDisplay) {
2071
+ const source = program.getSourceFile(file);
2072
+ const moduleSymbol = source && checker.getSymbolAtLocation(source);
2073
+ if (!source || !moduleSymbol) continue;
2074
+ const original = paths.get(file);
2075
+ const identifiers = /* @__PURE__ */ new Set();
2076
+ const collect = (node) => {
2077
+ if (ts.isIdentifier(node)) identifiers.add(node.text);
2078
+ ts.forEachChild(node, collect);
2079
+ };
2080
+ collect(source);
2081
+ const unique = (stem) => {
2082
+ let name = stem;
2083
+ for (let n = 2; identifiers.has(name); n++) name = `${stem}${n}`;
2084
+ identifiers.add(name);
2085
+ return name;
2086
+ };
2087
+ const views = [];
2088
+ for (const exported of checker.getExportsOfModule(moduleSymbol)) {
2089
+ const name = exported.name;
2090
+ if (name === "default" || !/^[$_\p{ID_Start}][$_\p{ID_Continue}]*$/u.test(name)) continue;
2091
+ const target = exported.flags & ts.SymbolFlags.Alias ? checker.getAliasedSymbol(exported) : exported;
2092
+ if (!plainData(target)) continue;
2093
+ let expression;
2094
+ for (const statement of source.statements) {
2095
+ if ((ts.isInterfaceDeclaration(statement) || ts.isTypeAliasDeclaration(statement)) && statement.name.text === name && checker.getSymbolAtLocation(statement.name) === target) {
2096
+ expression = name;
2097
+ break;
2098
+ }
2099
+ if (!ts.isExportDeclaration(statement)) continue;
2100
+ if (statement.attributes || statement.assertClause) continue;
2101
+ if (statement.exportClause && ts.isNamedExports(statement.exportClause)) {
2102
+ const member = statement.exportClause.elements.find((e) => e.name.text === name);
2103
+ if (member) {
2104
+ const local = member.propertyName ?? member.name;
2105
+ if (!ts.isIdentifier(local)) break;
2106
+ expression = statement.moduleSpecifier ? `import(${statement.moduleSpecifier.getText(source)}).${local.text}` : local.text;
2107
+ break;
2108
+ }
2109
+ } else if (!statement.exportClause && statement.moduleSpecifier) {
2110
+ const from = checker.getSymbolAtLocation(statement.moduleSpecifier);
2111
+ if (from && checker.getExportsOfModule(from).some((e) => e.name === name)) {
2112
+ expression = `import(${statement.moduleSpecifier.getText(source)}).${name}`;
2113
+ break;
2114
+ }
2115
+ }
2116
+ }
2117
+ if (!expression) continue;
2118
+ const docs = exported.getDocumentationComment(checker);
2119
+ const description = ts.displayPartsToString(docs.length ? docs : target.getDocumentationComment(checker));
2120
+ const tags = target.getJsDocTags(checker).map((tag) => `@${tag.name}${tag.text ? ` ${ts.displayPartsToString(tag.text)}` : ""}`);
2121
+ views.push({ name, expression, doc: [description, ...tags].filter(Boolean).join("\n").replace(/\*\//g, "* /") });
2122
+ }
2123
+ if (views.length === 0) continue;
2124
+ const names = new Set(views.map((view) => view.name));
2125
+ const edits = [];
2126
+ for (const statement of source.statements) {
2127
+ if (ts.isExportDeclaration(statement) && statement.exportClause && ts.isNamedExports(statement.exportClause)) {
2128
+ const remaining = statement.exportClause.elements.filter((e) => !names.has(e.name.text));
2129
+ if (remaining.length === statement.exportClause.elements.length) continue;
2130
+ edits.push(remaining.length ? {
2131
+ start: statement.exportClause.getStart(source),
2132
+ end: statement.exportClause.end,
2133
+ text: `{ ${remaining.map((e) => e.getText(source)).join(", ")} }`
2134
+ } : { start: statement.getStart(source), end: statement.end, text: "" });
2135
+ } else if ((ts.isInterfaceDeclaration(statement) || ts.isTypeAliasDeclaration(statement)) && names.has(statement.name.text) && !statement.modifiers?.some((m) => m.kind === ts.SyntaxKind.DefaultKeyword)) {
2136
+ const modifier = statement.modifiers?.find((m) => m.kind === ts.SyntaxKind.ExportKeyword);
2137
+ if (modifier) edits.push({ start: modifier.getStart(source), end: modifier.end, text: "" });
2138
+ }
2139
+ }
2140
+ let output = original;
2141
+ for (const edit of edits.sort((a, b) => b.start - a.start)) output = output.slice(0, edit.start) + edit.text + output.slice(edit.end);
2142
+ const display = unique("__FgDataView");
2143
+ output += `
2144
+ // \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
2145
+ type ${display}<T> = { [K in keyof T]: T[K] } & {};
2146
+ `;
2147
+ for (const view of views.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0)) {
2148
+ const alias = unique(`__FgData_${view.name}`);
2149
+ if (view.doc) output += `/**
2150
+ ${view.doc.split("\n").map((line) => ` * ${line}`).join("\n")}
2151
+ */
2152
+ `;
2153
+ output += `type ${alias} = ${display}<${view.expression}>;
2154
+ export type { ${alias} as ${view.name} };
2155
+ `;
2156
+ }
2157
+ files.set(path4.relative(base, file).split(path4.sep).join("/"), output);
2158
+ }
2159
+ }
2160
+
2009
2161
  // src/dts-generate.ts
2010
2162
  function resolveFromRoot(root, pkg) {
2011
- const req = createRequire3(path4.join(root, "package.json"));
2163
+ const req = createRequire3(path5.join(root, "package.json"));
2012
2164
  let resolved = null;
2013
2165
  for (const spec of [`${pkg}/package.json`, pkg]) {
2014
2166
  try {
@@ -2018,18 +2170,18 @@ function resolveFromRoot(root, pkg) {
2018
2170
  }
2019
2171
  }
2020
2172
  if (!resolved) return null;
2021
- let dir = path4.dirname(resolved);
2022
- for (let i = 0; i < 5 && !fs3.existsSync(path4.join(dir, "package.json")); i++) {
2023
- const parent = path4.dirname(dir);
2173
+ let dir = path5.dirname(resolved);
2174
+ for (let i = 0; i < 5 && !fs3.existsSync(path5.join(dir, "package.json")); i++) {
2175
+ const parent = path5.dirname(dir);
2024
2176
  if (parent === dir) return null;
2025
2177
  dir = parent;
2026
2178
  }
2027
- return fs3.existsSync(path4.join(dir, "package.json")) ? dir : null;
2179
+ return fs3.existsSync(path5.join(dir, "package.json")) ? dir : null;
2028
2180
  }
2029
2181
  function installHint(root, pkg) {
2030
2182
  const pkgManager = (() => {
2031
- if (fs3.existsSync(path4.join(root, "pnpm-lock.yaml"))) return "pnpm";
2032
- if (fs3.existsSync(path4.join(root, "yarn.lock"))) return "yarn";
2183
+ if (fs3.existsSync(path5.join(root, "pnpm-lock.yaml"))) return "pnpm";
2184
+ if (fs3.existsSync(path5.join(root, "yarn.lock"))) return "yarn";
2033
2185
  return "npm";
2034
2186
  })();
2035
2187
  const devFlag = pkgManager === "pnpm" ? "-D" : "--save-dev";
@@ -2082,7 +2234,7 @@ function computeStaticClosure(ts, entryFiles, resolver, root) {
2082
2234
  continue;
2083
2235
  }
2084
2236
  if (file.endsWith(".vue")) {
2085
- const req = createRequire3(path4.join(root, "package.json"));
2237
+ const req = createRequire3(path5.join(root, "package.json"));
2086
2238
  const { parse: parse2 } = req("vue/compiler-sfc");
2087
2239
  const { descriptor } = parse2(text);
2088
2240
  text = [descriptor.script?.content, descriptor.scriptSetup?.content].filter(Boolean).join("\n");
@@ -2104,16 +2256,16 @@ import ${JSON.stringify(descriptor.script.src)}`;
2104
2256
  const r = resolver(spec, file);
2105
2257
  let resolved = r && !r.fromNodeModules ? r.resolved : null;
2106
2258
  if (!resolved) {
2107
- const base = path4.resolve(path4.dirname(file), spec);
2108
- for (const c of [base, `${base}.vue`, `${base}.ts`, `${base}.tsx`, path4.join(base, "index.ts")]) {
2259
+ const base = path5.resolve(path5.dirname(file), spec);
2260
+ for (const c of [base, `${base}.vue`, `${base}.ts`, `${base}.tsx`, path5.join(base, "index.ts")]) {
2109
2261
  if (fs3.existsSync(c)) {
2110
2262
  resolved = c;
2111
2263
  break;
2112
2264
  }
2113
2265
  }
2114
2266
  }
2115
- if (resolved && !resolved.includes(`${path4.sep}node_modules${path4.sep}`)) {
2116
- queue.push(path4.resolve(resolved));
2267
+ if (resolved && !resolved.includes(`${path5.sep}node_modules${path5.sep}`)) {
2268
+ queue.push(path5.resolve(resolved));
2117
2269
  }
2118
2270
  }
2119
2271
  }
@@ -2124,7 +2276,7 @@ function parseErrorFiles(stdout, root) {
2124
2276
  const out = /* @__PURE__ */ new Set();
2125
2277
  for (const line of stdout.split("\n")) {
2126
2278
  const m = line.match(/^([^)(]+)\((\d+),(\d+)\): error TS/);
2127
- if (m) out.add(path4.resolve(root, m[1].trim()));
2279
+ if (m) out.add(path5.resolve(root, m[1].trim()));
2128
2280
  }
2129
2281
  return out;
2130
2282
  }
@@ -2133,13 +2285,13 @@ function resolveTypesEntries(root, baseCo, diagnostics) {
2133
2285
  if (raw === void 0) return [];
2134
2286
  baseCo.types = [];
2135
2287
  if (!Array.isArray(raw)) return [];
2136
- const req = createRequire3(path4.join(root, "package.json"));
2288
+ const req = createRequire3(path5.join(root, "package.json"));
2137
2289
  const out = [];
2138
2290
  for (const entry of raw) {
2139
2291
  if (typeof entry !== "string" || entry.length === 0) continue;
2140
- const direct = [path4.resolve(root, `${entry}.d.ts`), path4.resolve(root, entry, "index.d.ts"), path4.resolve(root, "node_modules", `${entry}.d.ts`), path4.resolve(root, "node_modules", entry, "index.d.ts"), path4.resolve(root, "node_modules/@types", entry, "index.d.ts")];
2292
+ const direct = [path5.resolve(root, `${entry}.d.ts`), path5.resolve(root, entry, "index.d.ts"), path5.resolve(root, "node_modules", `${entry}.d.ts`), path5.resolve(root, "node_modules", entry, "index.d.ts"), path5.resolve(root, "node_modules/@types", entry, "index.d.ts")];
2141
2293
  let hit = direct.find((c) => fs3.existsSync(c));
2142
- if (!hit && !entry.startsWith(".") && !path4.isAbsolute(entry)) {
2294
+ if (!hit && !entry.startsWith(".") && !path5.isAbsolute(entry)) {
2143
2295
  try {
2144
2296
  const r = req.resolve(entry);
2145
2297
  for (const c of [r.replace(/\.js$/, ".d.ts"), `${r}.d.ts`, r]) {
@@ -2167,27 +2319,27 @@ function hasVueFilesUnderSources(root) {
2167
2319
  }
2168
2320
  for (const e of entries) {
2169
2321
  if (e.name === "node_modules" || e.name === ".git" || e.name === "dist") continue;
2170
- const p = path4.join(dir, e.name);
2322
+ const p = path5.join(dir, e.name);
2171
2323
  budget.left -= 1;
2172
2324
  if (e.isFile() && e.name.endsWith(".vue")) return true;
2173
2325
  if (e.isDirectory() && scan(p, budget)) return true;
2174
2326
  }
2175
2327
  return false;
2176
2328
  };
2177
- const srcDir = path4.join(root, "src");
2329
+ const srcDir = path5.join(root, "src");
2178
2330
  return scan(fs3.existsSync(srcDir) ? srcDir : root, { left: 2e3 });
2179
2331
  }
2180
2332
  function commonDirOf(files) {
2181
2333
  if (files.length === 0) return "";
2182
- let dir = path4.dirname(files[0]);
2334
+ let dir = path5.dirname(files[0]);
2183
2335
  for (const f of files) {
2184
- const rel = path4.relative(dir, f);
2336
+ const rel = path5.relative(dir, f);
2185
2337
  if (rel.startsWith("..")) {
2186
- const parts = path4.dirname(f).split(path4.sep);
2187
- const cur = dir.split(path4.sep);
2338
+ const parts = path5.dirname(f).split(path5.sep);
2339
+ const cur = dir.split(path5.sep);
2188
2340
  let i = 0;
2189
2341
  while (i < parts.length && i < cur.length && parts[i] === cur[i]) i++;
2190
- dir = parts.slice(0, i).join(path4.sep) || path4.sep;
2342
+ dir = parts.slice(0, i).join(path5.sep) || path5.sep;
2191
2343
  }
2192
2344
  }
2193
2345
  return dir;
@@ -2228,12 +2380,12 @@ function loadTsContext(root, ts, diagnostics) {
2228
2380
  diagnostics.push(`tsconfig \u89E3\u6790\u5931\u8D25\uFF08${tsconfigFile}\uFF09\uFF1A${ts.flattenDiagnosticMessageText(raw.error.messageText, " ")}`);
2229
2381
  return null;
2230
2382
  }
2231
- const parsed = ts.parseJsonConfigFileContent(raw.config, ts.sys, path4.dirname(tsconfigFile), void 0, void 0, void 0, [
2383
+ const parsed = ts.parseJsonConfigFileContent(raw.config, ts.sys, path5.dirname(tsconfigFile), void 0, void 0, void 0, [
2232
2384
  { extension: ".vue", isMixedContent: true, scriptKind: ts.ScriptKind.Deferred }
2233
2385
  ]);
2234
2386
  const co = { ...parsed.options };
2235
- if (typeof co.baseUrl === "string" && !path4.isAbsolute(co.baseUrl)) {
2236
- co.baseUrl = path4.resolve(path4.dirname(tsconfigFile), co.baseUrl);
2387
+ if (typeof co.baseUrl === "string" && !path5.isAbsolute(co.baseUrl)) {
2388
+ co.baseUrl = path5.resolve(path5.dirname(tsconfigFile), co.baseUrl);
2237
2389
  }
2238
2390
  if (parsed.errors.length > 0) {
2239
2391
  const fatal = parsed.errors.filter((e) => e.category === ts.DiagnosticCategory.Error);
@@ -2249,7 +2401,7 @@ function loadTsContext(root, ts, diagnostics) {
2249
2401
  compilerOptions: co,
2250
2402
  rawOptions: raw.config.compilerOptions ?? {},
2251
2403
  projectFiles: parsed.fileNames.filter((f) => !f.endsWith(".d.ts")),
2252
- ambientInputs: parsed.fileNames.filter((f) => f.endsWith(".d.ts") && !f.includes(`${path4.sep}node_modules${path4.sep}`)),
2404
+ ambientInputs: parsed.fileNames.filter((f) => f.endsWith(".d.ts") && !f.includes(`${path5.sep}node_modules${path5.sep}`)),
2253
2405
  tsconfigFile
2254
2406
  };
2255
2407
  }
@@ -2260,7 +2412,7 @@ function makeResolver(ts, co) {
2260
2412
  let resolved = r.resolvedModule?.resolvedFileName;
2261
2413
  if (resolved?.endsWith(".vue.ts") && ts.sys.fileExists(resolved.slice(0, -3))) resolved = resolved.slice(0, -3);
2262
2414
  if (!resolved) return null;
2263
- return { resolved, fromNodeModules: resolved.includes(`${path4.sep}node_modules${path4.sep}`) };
2415
+ return { resolved, fromNodeModules: resolved.includes(`${path5.sep}node_modules${path5.sep}`) };
2264
2416
  };
2265
2417
  }
2266
2418
  async function generateTypesBundle(input) {
@@ -2273,7 +2425,7 @@ async function generateTypesBundle(input) {
2273
2425
  if (!tsPkgDir) {
2274
2426
  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")}`] };
2275
2427
  }
2276
- const tsReq = createRequire3(path4.join(tsPkgDir, "package.json"));
2428
+ const tsReq = createRequire3(path5.join(tsPkgDir, "package.json"));
2277
2429
  const ts = tsReq("typescript");
2278
2430
  const ctx = loadTsContext(root, ts, diagnostics);
2279
2431
  if (!ctx) return { ok: false, diagnostics };
@@ -2281,9 +2433,9 @@ async function generateTypesBundle(input) {
2281
2433
  const entryMap = /* @__PURE__ */ new Map();
2282
2434
  for (const expose of exposes) {
2283
2435
  const raw = expose.import.replace(/^\.?\//, "");
2284
- let abs = path4.resolve(root, raw);
2436
+ let abs = path5.resolve(root, raw);
2285
2437
  if (!fs3.existsSync(abs)) {
2286
- const viaResolver = resolver(expose.import, path4.join(root, "package.json"));
2438
+ const viaResolver = resolver(expose.import, path5.join(root, "package.json"));
2287
2439
  if (viaResolver && !viaResolver.fromNodeModules) abs = viaResolver.resolved;
2288
2440
  }
2289
2441
  abs = abs.replace(/\.js$/, ".ts");
@@ -2315,17 +2467,17 @@ async function generateTypesBundle(input) {
2315
2467
  };
2316
2468
  }
2317
2469
  tool = "vue-tsc";
2318
- const vueTscPkg = JSON.parse(fs3.readFileSync(path4.join(vueTscDir, "package.json"), "utf8"));
2470
+ const vueTscPkg = JSON.parse(fs3.readFileSync(path5.join(vueTscDir, "package.json"), "utf8"));
2319
2471
  const binRel = vueTscPkg.bin?.["vue-tsc"] ?? vueTscPkg.bin?.["vue-tsc.js"] ?? "bin/vue-tsc.js";
2320
- const binPath = path4.resolve(vueTscDir, binRel);
2472
+ const binPath = path5.resolve(vueTscDir, binRel);
2321
2473
  const scopedVueProgram = /^1\./.test(vueTscPkg.version);
2322
2474
  if (!fs3.existsSync(binPath)) {
2323
2475
  return { ok: false, diagnostics: [`vue-tsc \u5165\u53E3\u4E0D\u5B58\u5728\uFF08${binPath}\uFF09\u3002\u8BF7\u91CD\u65B0\u5B89\u88C5 vue-tsc\u3002`] };
2324
2476
  }
2325
2477
  const cacheDir = input.incrementalDir;
2326
2478
  if (cacheDir) fs3.mkdirSync(cacheDir, { recursive: true });
2327
- const tmpCfg = path4.join(root, `.fulgurjs-types-tsconfig-${cacheDir ? path4.basename(cacheDir) : `${process.pid}-${crypto.randomUUID()}`}.json`);
2328
- const outDir = cacheDir ? path4.join(cacheDir, "emit") : fs3.mkdtempSync(path4.join(root, "node_modules", ".fulgurjs-types-emit-"));
2479
+ const tmpCfg = path5.join(root, `.fulgurjs-types-tsconfig-${cacheDir ? path5.basename(cacheDir) : `${process.pid}-${crypto.randomUUID()}`}.json`);
2480
+ const outDir = cacheDir ? path5.join(cacheDir, "emit") : fs3.mkdtempSync(path5.join(root, "node_modules", ".fulgurjs-types-emit-"));
2329
2481
  const clearOutput = () => {
2330
2482
  if (!cacheDir) fs3.rmSync(outDir, { recursive: true, force: true });
2331
2483
  };
@@ -2352,14 +2504,14 @@ async function generateTypesBundle(input) {
2352
2504
  sourceMap: false,
2353
2505
  outDir,
2354
2506
  rootDir,
2355
- ...cacheDir && !scopedVueProgram ? { incremental: true, tsBuildInfoFile: path4.join(cacheDir, "state.tsbuildinfo") } : {}
2507
+ ...cacheDir && !scopedVueProgram ? { incremental: true, tsBuildInfoFile: path5.join(cacheDir, "state.tsbuildinfo") } : {}
2356
2508
  },
2357
2509
  // 显式 types 是声明程序的根文件,不能再受工程 exclude: ["node_modules"] 过滤。
2358
2510
  // include 仍受继承的 exclude 约束;files 保留 vite/client 等已解析的全局声明。
2359
- files: resolvedTypeFiles.map((f) => path4.relative(root, f)),
2511
+ files: resolvedTypeFiles.map((f) => path5.relative(root, f)),
2360
2512
  include: [
2361
- ...entryFiles.map((f) => path4.relative(root, f)),
2362
- ...ctx.ambientInputs.map((f) => path4.relative(root, f))
2513
+ ...entryFiles.map((f) => path5.relative(root, f)),
2514
+ ...ctx.ambientInputs.map((f) => path5.relative(root, f))
2363
2515
  ]
2364
2516
  }));
2365
2517
  if (process.env.FG_DUMP_TSCFG) fs3.writeFileSync(process.env.FG_DUMP_TSCFG, fs3.readFileSync(tmpCfg, "utf8"));
@@ -2392,7 +2544,7 @@ async function generateTypesBundle(input) {
2392
2544
  signal?.addEventListener("abort", abort, { once: true });
2393
2545
  if (signal?.aborted) abort();
2394
2546
  });
2395
- const heapMarker = cacheDir ? path4.join(cacheDir, "raised-heap") : void 0;
2547
+ const heapMarker = cacheDir ? path5.join(cacheDir, "raised-heap") : void 0;
2396
2548
  const raisedArgs = [`--max-old-space-size=${process.env.FG_DTS_MAX_OLD_SPACE ?? "8192"}`];
2397
2549
  const initialArgs = heapMarker && fs3.existsSync(heapMarker) ? raisedArgs : [];
2398
2550
  let { err, stdout, stderr } = await attempt(initialArgs);
@@ -2469,7 +2621,7 @@ ${tail}`);
2469
2621
  collectEmitted(ts, outDir, rootDir, emitted, closure);
2470
2622
  clearOutput();
2471
2623
  } else {
2472
- const outDir = fs3.mkdtempSync(path4.join(root, "node_modules", ".fulgurjs-types-emit-"));
2624
+ const outDir = fs3.mkdtempSync(path5.join(root, "node_modules", ".fulgurjs-types-emit-"));
2473
2625
  const program = ts.createProgram([...entryFiles, ...ctx.ambientInputs, ...resolveTypesEntries(root, ctx.rawOptions, [])], {
2474
2626
  ...ctx.compilerOptions,
2475
2627
  noEmit: false,
@@ -2487,13 +2639,13 @@ ${tail}`);
2487
2639
  ...program.getOptionsDiagnostics(),
2488
2640
  ...program.getSemanticDiagnostics(),
2489
2641
  ...program.getDeclarationDiagnostics()
2490
- ].filter((d) => d.category === ts.DiagnosticCategory.Error).filter((d) => !d.file || closure.has(path4.resolve(d.file.fileName)));
2642
+ ].filter((d) => d.category === ts.DiagnosticCategory.Error).filter((d) => !d.file || closure.has(path5.resolve(d.file.fileName)));
2491
2643
  if (errs.length > 0) {
2492
2644
  fs3.rmSync(outDir, { recursive: true, force: true });
2493
2645
  diagnostics.push(
2494
2646
  `\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`,
2495
2647
  ...errs.slice(0, 20).map((d) => {
2496
- const f = d.file ? path4.relative(root, d.file.fileName) : "?";
2648
+ const f = d.file ? path5.relative(root, d.file.fileName) : "?";
2497
2649
  const pos = d.file ? d.file.getLineAndCharacterOfPosition(d.start ?? 0) : { line: 0 };
2498
2650
  return ` ${f}:${pos.line + 1} TS${d.code}: ${ts.flattenDiagnosticMessageText(d.messageText, " ")}`;
2499
2651
  })
@@ -2501,11 +2653,11 @@ ${tail}`);
2501
2653
  return { ok: false, diagnostics };
2502
2654
  }
2503
2655
  for (const source of program.getSourceFiles()) {
2504
- if (source.isDeclarationFile || source.fileName.endsWith(".json") || !closure.has(path4.resolve(source.fileName))) continue;
2656
+ if (source.isDeclarationFile || source.fileName.endsWith(".json") || !closure.has(path5.resolve(source.fileName))) continue;
2505
2657
  const emitResult = program.emit(source, void 0, void 0, true);
2506
2658
  if (emitResult.emitSkipped) {
2507
2659
  fs3.rmSync(outDir, { recursive: true, force: true });
2508
- return { ok: false, diagnostics: [`TypeScript \u58F0\u660E emit \u5931\u8D25\uFF08emitSkipped\uFF09\uFF1A${path4.relative(root, source.fileName)}\u3002\u8BF7\u68C0\u67E5 tsconfig \u7F16\u8BD1\u9009\u9879\u3002`] };
2660
+ return { ok: false, diagnostics: [`TypeScript \u58F0\u660E emit \u5931\u8D25\uFF08emitSkipped\uFF09\uFF1A${path5.relative(root, source.fileName)}\u3002\u8BF7\u68C0\u67E5 tsconfig \u7F16\u8BD1\u9009\u9879\u3002`] };
2509
2661
  }
2510
2662
  }
2511
2663
  collectEmitted(ts, outDir, rootDir, emitted, closure);
@@ -2551,7 +2703,7 @@ export default value;
2551
2703
  const externals = /* @__PURE__ */ new Set();
2552
2704
  const srcToRel = /* @__PURE__ */ new Map();
2553
2705
  for (const srcAbs of emitted.keys()) {
2554
- const rel = path4.relative(rootDir, srcAbs).split(path4.sep).join("/");
2706
+ const rel = path5.relative(rootDir, srcAbs).split(path5.sep).join("/");
2555
2707
  const declRel = rel.endsWith(".d.ts") ? `files/${rel}` : rel.endsWith(".vue") ? `files/${rel}.d.ts` : `files/${rel.replace(/\.(mts|cts|ts|tsx|jsx|js)$/, "")}.d.ts`;
2556
2708
  srcToRel.set(srcAbs, declRel);
2557
2709
  }
@@ -2563,7 +2715,7 @@ export default value;
2563
2715
  if (reachable.has(srcAbs)) continue;
2564
2716
  const text = emitted.get(srcAbs);
2565
2717
  if (text === void 0) {
2566
- diagnostics.push(`\u516C\u5F00\u58F0\u660E\u4F9D\u8D56\u672A\u4EA7\u51FA\uFF1A${path4.relative(root, srcAbs)}\u3002`);
2718
+ diagnostics.push(`\u516C\u5F00\u58F0\u660E\u4F9D\u8D56\u672A\u4EA7\u51FA\uFF1A${path5.relative(root, srcAbs)}\u3002`);
2567
2719
  return { ok: false, diagnostics };
2568
2720
  }
2569
2721
  const rewritten = rewriteSpecifiers(
@@ -2588,11 +2740,10 @@ export default value;
2588
2740
  for (const [srcAbs, text] of reachable) {
2589
2741
  const rel = srcToRel.get(srcAbs);
2590
2742
  if (text.includes(root)) {
2591
- diagnostics.push(`\u58F0\u660E\u6587\u4EF6\u5305\u542B\u672C\u673A\u7EDD\u5BF9\u8DEF\u5F84\uFF08${path4.relative(root, srcAbs)}\uFF09\uFF0C\u5DF2\u62D2\u7EDD\u4EA7\u51FA\u3002\u8BF7\u68C0\u67E5\u8BE5\u6587\u4EF6\u7684\u7C7B\u578B\u662F\u5426\u5F15\u7528\u4E86\u5B57\u9762\u8DEF\u5F84\u3002`);
2743
+ diagnostics.push(`\u58F0\u660E\u6587\u4EF6\u5305\u542B\u672C\u673A\u7EDD\u5BF9\u8DEF\u5F84\uFF08${path5.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`);
2592
2744
  leaked = true;
2593
2745
  }
2594
2746
  files.set(rel, text);
2595
- filesDigest[rel] = crypto.createHash("sha256").update(text, "utf8").digest("hex");
2596
2747
  }
2597
2748
  if (leaked) return { ok: false, diagnostics };
2598
2749
  const exposesMap = {};
@@ -2604,6 +2755,13 @@ export default value;
2604
2755
  }
2605
2756
  exposesMap[name] = { declaration: declRel };
2606
2757
  }
2758
+ displayPublicDataTypes(ts, files, Object.values(exposesMap).map((entry) => entry.declaration), root, ctx.compilerOptions);
2759
+ for (const [rel, text] of files) {
2760
+ if (text.includes(root)) {
2761
+ 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`] };
2762
+ }
2763
+ filesDigest[rel] = crypto.createHash("sha256").update(text, "utf8").digest("hex");
2764
+ }
2607
2765
  const index = {
2608
2766
  schemaVersion: TYPES_SCHEMA_VERSION,
2609
2767
  generator: "@fulgurjs/federation",
@@ -2620,18 +2778,18 @@ export default value;
2620
2778
  }
2621
2779
  function collectEmitted(ts, outDir, rootDir, out, closure) {
2622
2780
  const walk = (dir) => fs3.readdirSync(dir, { withFileTypes: true }).flatMap((d) => {
2623
- const p = path4.join(dir, d.name);
2781
+ const p = path5.join(dir, d.name);
2624
2782
  return d.isDirectory() ? walk(p) : [p];
2625
2783
  });
2626
2784
  if (!fs3.existsSync(outDir)) return;
2627
2785
  for (const file of walk(outDir)) {
2628
2786
  if (!file.endsWith(".d.ts")) continue;
2629
- const rel = path4.relative(outDir, file);
2787
+ const rel = path5.relative(outDir, file);
2630
2788
  const srcRel = rel.endsWith(".vue.d.ts") ? rel.replace(/\.d\.ts$/, "") : rel.replace(/\.d\.ts$/, ".ts");
2631
- let srcAbs = path4.join(rootDir, srcRel);
2789
+ let srcAbs = path5.join(rootDir, srcRel);
2632
2790
  if (!out.has(srcAbs) && !fs3.existsSync(srcAbs)) {
2633
2791
  for (const ext of [".tsx", ".jsx", ".mts", ".cts", ".js"]) {
2634
- const candidate = path4.join(rootDir, rel.replace(/\.d\.ts$/, ext));
2792
+ const candidate = path5.join(rootDir, rel.replace(/\.d\.ts$/, ext));
2635
2793
  if (fs3.existsSync(candidate)) {
2636
2794
  srcAbs = candidate;
2637
2795
  break;
@@ -2649,7 +2807,7 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
2649
2807
  const fail = (spec) => {
2650
2808
  failed = true;
2651
2809
  diagnostics.push(
2652
- `\u58F0\u660E\u4F9D\u8D56\u4E0D\u5B8C\u6574\uFF1A${path4.relative(root, srcAbs)} \u7684\u5BFC\u5165 "${spec}" \u65E0\u6CD5\u89E3\u6790\u5230\u5DE5\u7A0B\u5185\u6587\u4EF6\u3002\u8BF7\u68C0\u67E5 tsconfig paths/include \u662F\u5426\u8986\u76D6\u8BE5\u4F9D\u8D56\u3002`
2810
+ `\u58F0\u660E\u4F9D\u8D56\u4E0D\u5B8C\u6574\uFF1A${path5.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`
2653
2811
  );
2654
2812
  return null;
2655
2813
  };
@@ -2680,9 +2838,9 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
2680
2838
  return target;
2681
2839
  };
2682
2840
  const rewriteTo = (targetRel) => {
2683
- const fromDir = path4.posix.dirname(declRel);
2841
+ const fromDir = path5.posix.dirname(declRel);
2684
2842
  const toNoExt = targetRel.replace(/\.d\.ts$/, "");
2685
- let rel = path4.posix.relative(fromDir, toNoExt);
2843
+ let rel = path5.posix.relative(fromDir, toNoExt);
2686
2844
  if (!rel.startsWith(".")) rel = `./${rel}`;
2687
2845
  return rel;
2688
2846
  };
@@ -2768,12 +2926,12 @@ function rewriteSpecifiers(ts, text, srcAbs, srcToRel, resolver, externals, root
2768
2926
 
2769
2927
  // src/dts-serve.ts
2770
2928
  function isTypesInputChange(root, id, outputDir) {
2771
- const relative = path5.relative(root, id);
2772
- if (relative === ".." || relative.startsWith(`..${path5.sep}`) || path5.isAbsolute(relative)) return false;
2773
- if (relative.split(path5.sep).some((part) => part === "node_modules" || part === ".vite")) return false;
2774
- if (path5.basename(id).startsWith(".fulgurjs-types-tsconfig-")) return false;
2775
- const outputRelative = path5.relative(outputDir, id);
2776
- if (!(outputRelative.startsWith(`..${path5.sep}`) || path5.isAbsolute(outputRelative))) return false;
2929
+ const relative = path6.relative(root, id);
2930
+ if (relative === ".." || relative.startsWith(`..${path6.sep}`) || path6.isAbsolute(relative)) return false;
2931
+ if (relative.split(path6.sep).some((part) => part === "node_modules" || part === ".vite")) return false;
2932
+ if (path6.basename(id).startsWith(".fulgurjs-types-tsconfig-")) return false;
2933
+ const outputRelative = path6.relative(outputDir, id);
2934
+ if (!(outputRelative.startsWith(`..${path6.sep}`) || path6.isAbsolute(outputRelative))) return false;
2777
2935
  return /\.(?:[cm]?[jt]sx?|vue|json)$/i.test(id);
2778
2936
  }
2779
2937
  function createDevTypesServer(options, hooks = {}) {
@@ -2797,9 +2955,9 @@ function createDevTypesServer(options, hooks = {}) {
2797
2955
  let result;
2798
2956
  try {
2799
2957
  if (!incrementalDir) {
2800
- const cacheRoot = path5.join(options.root, "node_modules");
2958
+ const cacheRoot = path6.join(options.root, "node_modules");
2801
2959
  fs4.mkdirSync(cacheRoot, { recursive: true });
2802
- incrementalDir = fs4.mkdtempSync(path5.join(cacheRoot, ".fulgurjs-types-cache-"));
2960
+ incrementalDir = fs4.mkdtempSync(path6.join(cacheRoot, ".fulgurjs-types-cache-"));
2803
2961
  }
2804
2962
  result = await generateTypesBundle({
2805
2963
  root: options.root,
@@ -2879,7 +3037,7 @@ ${key}`);
2879
3037
 
2880
3038
  // src/dts-sync.ts
2881
3039
  import fs6 from "fs";
2882
- import path7 from "path";
3040
+ import path8 from "path";
2883
3041
  import crypto2 from "crypto";
2884
3042
 
2885
3043
  // src/dts-ambient.ts
@@ -3040,7 +3198,7 @@ function stripAmbientModifiers(text) {
3040
3198
 
3041
3199
  // src/dts-discovery.ts
3042
3200
  import fs5 from "fs";
3043
- import path6 from "path";
3201
+ import path7 from "path";
3044
3202
  function stripJsoncForConfig(text) {
3045
3203
  let out = "";
3046
3204
  let i = 0;
@@ -3104,24 +3262,24 @@ function effectiveCfg(cfg, depth = 0) {
3104
3262
  const parentFile = resolveConfigFile(parent, cfg.file);
3105
3263
  if (!parentFile) continue;
3106
3264
  const parentCfg = effectiveCfg(readCfg(parentFile) ?? { file: parentFile }, depth + 1);
3107
- const dirOf = (f, base) => path6.resolve(path6.dirname(base), f);
3265
+ const dirOf = (f, base) => path7.resolve(path7.dirname(base), f);
3108
3266
  if (parentCfg.include && !cfg.include) {
3109
- merged.include = parentCfg.include.map((p) => path6.relative(path6.dirname(cfg.file), dirOf(p, parentFile)) || ".");
3267
+ merged.include = parentCfg.include.map((p) => path7.relative(path7.dirname(cfg.file), dirOf(p, parentFile)) || ".");
3110
3268
  }
3111
3269
  if (parentCfg.files && !cfg.files) {
3112
- merged.files = parentCfg.files.map((p) => path6.relative(path6.dirname(cfg.file), dirOf(p, parentFile)));
3270
+ merged.files = parentCfg.files.map((p) => path7.relative(path7.dirname(cfg.file), dirOf(p, parentFile)));
3113
3271
  }
3114
3272
  if (parentCfg.exclude && !cfg.exclude) {
3115
- merged.exclude = parentCfg.exclude.map((p) => path6.relative(path6.dirname(cfg.file), dirOf(p, parentFile)));
3273
+ merged.exclude = parentCfg.exclude.map((p) => path7.relative(path7.dirname(cfg.file), dirOf(p, parentFile)));
3116
3274
  }
3117
3275
  }
3118
3276
  return merged;
3119
3277
  }
3120
3278
  function resolveConfigFile(value, declaringFile) {
3121
- let candidate = path6.resolve(path6.dirname(declaringFile), value);
3279
+ let candidate = path7.resolve(path7.dirname(declaringFile), value);
3122
3280
  if (!candidate.endsWith(".json")) candidate += ".json";
3123
3281
  if (fs5.existsSync(candidate)) return candidate;
3124
- const asDir = path6.join(candidate, "tsconfig.json");
3282
+ const asDir = path7.join(candidate, "tsconfig.json");
3125
3283
  return fs5.existsSync(asDir) ? asDir : null;
3126
3284
  }
3127
3285
  function patternCoversDir(pattern, target, cfgDir) {
@@ -3132,15 +3290,15 @@ function patternCoversDir(pattern, target, cfgDir) {
3132
3290
  if (norm.includes("**")) base = norm.slice(0, norm.indexOf("**")).replace(/\/+$/, "");
3133
3291
  else if (norm.endsWith("/*")) base = norm.slice(0, -2);
3134
3292
  else base = norm.replace(/\/+$/, "");
3135
- const abs = base === "" || base === "." ? cfgDir : path6.resolve(cfgDir, base);
3136
- return target === abs || target.startsWith(abs + path6.sep);
3293
+ const abs = base === "" || base === "." ? cfgDir : path7.resolve(cfgDir, base);
3294
+ return target === abs || target.startsWith(abs + path7.sep);
3137
3295
  }
3138
3296
  function checkTypesDiscovery(root, typesRoot) {
3139
- const relTypes = path6.relative(root, typesRoot) || ".";
3297
+ const relTypes = path7.relative(root, typesRoot) || ".";
3140
3298
  const configs = [];
3141
- let primary = path6.join(root, "tsconfig.json");
3299
+ let primary = path7.join(root, "tsconfig.json");
3142
3300
  if (!fs5.existsSync(primary)) {
3143
- const candidates = fs5.existsSync(root) ? fs5.readdirSync(root).filter((f) => /^tsconfig[\w.-]*\.json$/i.test(f)).map((f) => path6.join(root, f)) : [];
3301
+ const candidates = fs5.existsSync(root) ? fs5.readdirSync(root).filter((f) => /^tsconfig[\w.-]*\.json$/i.test(f)).map((f) => path7.join(root, f)) : [];
3144
3302
  if (candidates.length === 0) {
3145
3303
  return {
3146
3304
  covered: false,
@@ -3152,7 +3310,7 @@ function checkTypesDiscovery(root, typesRoot) {
3152
3310
  if (candidates.length > 1) {
3153
3311
  let covered = false;
3154
3312
  for (const file of candidates) {
3155
- configs.push(path6.relative(root, file));
3313
+ configs.push(path7.relative(root, file));
3156
3314
  if (configCovers(file, typesRoot)) covered = true;
3157
3315
  }
3158
3316
  if (covered) return { covered: true, configs, fixHint: null };
@@ -3163,34 +3321,34 @@ function checkTypesDiscovery(root, typesRoot) {
3163
3321
  };
3164
3322
  }
3165
3323
  }
3166
- configs.push(path6.relative(root, primary));
3324
+ configs.push(path7.relative(root, primary));
3167
3325
  if (configCovers(primary, typesRoot)) return { covered: true, configs, fixHint: null };
3168
3326
  return {
3169
3327
  covered: false,
3170
3328
  configs,
3171
- fixHint: `TYP-006 \u7C7B\u578B\u76EE\u5F55 ${relTypes} \u672A\u88AB ${path6.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`
3329
+ fixHint: `TYP-006 \u7C7B\u578B\u76EE\u5F55 ${relTypes} \u672A\u88AB ${path7.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`
3172
3330
  };
3173
3331
  }
3174
3332
  function configCovers(cfgFile, typesRoot) {
3175
3333
  const raw = readCfg(cfgFile);
3176
3334
  if (!raw) return false;
3177
3335
  const cfg = effectiveCfg(raw);
3178
- const cfgDir = path6.dirname(cfgFile);
3336
+ const cfgDir = path7.dirname(cfgFile);
3179
3337
  const isSolution = Array.isArray(cfg.files) && cfg.files.length === 0 && !cfg.include;
3180
3338
  if (isSolution && cfg.references && cfg.references.length > 0) {
3181
3339
  return cfg.references.some((ref) => {
3182
- const refFile = resolveConfigFile(ref.startsWith(".") || path6.isAbsolute(ref) ? ref : `./${ref}`, cfgFile);
3340
+ const refFile = resolveConfigFile(ref.startsWith(".") || path7.isAbsolute(ref) ? ref : `./${ref}`, cfgFile);
3183
3341
  return refFile !== null && configCovers(refFile, typesRoot);
3184
3342
  });
3185
3343
  }
3186
3344
  if (Array.isArray(cfg.files) && cfg.files.length > 0) {
3187
3345
  return cfg.files.some((f) => {
3188
- const abs = path6.resolve(cfgDir, f);
3189
- return abs === typesRoot || abs.startsWith(typesRoot + path6.sep);
3346
+ const abs = path7.resolve(cfgDir, f);
3347
+ return abs === typesRoot || abs.startsWith(typesRoot + path7.sep);
3190
3348
  });
3191
3349
  }
3192
3350
  const includes = cfg.include;
3193
- if (!includes) return typesRoot === cfgDir || typesRoot.startsWith(cfgDir + path6.sep);
3351
+ if (!includes) return typesRoot === cfgDir || typesRoot.startsWith(cfgDir + path7.sep);
3194
3352
  const included = includes.some((p) => patternCoversDir(p, typesRoot, cfgDir));
3195
3353
  if (!included) return false;
3196
3354
  if (cfg.exclude && cfg.exclude.some((p) => patternCoversDir(p, typesRoot, cfgDir))) return false;
@@ -3234,7 +3392,7 @@ var METADATA_FILE = "metadata.json";
3234
3392
  var AMBIENT_FORMAT = 2;
3235
3393
  function readMetadata(dir) {
3236
3394
  try {
3237
- const raw = JSON.parse(fs6.readFileSync(path7.join(dir, METADATA_FILE), "utf8"));
3395
+ const raw = JSON.parse(fs6.readFileSync(path8.join(dir, METADATA_FILE), "utf8"));
3238
3396
  if (raw.generator !== "@fulgurjs/federation" || typeof raw.revision !== "string" || !Array.isArray(raw.files)) return null;
3239
3397
  return raw;
3240
3398
  } catch {
@@ -3244,9 +3402,9 @@ function readMetadata(dir) {
3244
3402
  function cleanupOwnFiles(dir, meta) {
3245
3403
  for (const f of meta.files) {
3246
3404
  if (!isSafeBundlePath(f)) continue;
3247
- fs6.rmSync(path7.join(dir, f), { force: true });
3405
+ fs6.rmSync(path8.join(dir, f), { force: true });
3248
3406
  }
3249
- fs6.rmSync(path7.join(dir, METADATA_FILE), { force: true });
3407
+ fs6.rmSync(path8.join(dir, METADATA_FILE), { force: true });
3250
3408
  try {
3251
3409
  if (fs6.readdirSync(dir).length === 0) fs6.rmdirSync(dir);
3252
3410
  } catch {
@@ -3256,7 +3414,7 @@ function sweepStaleStaging(typesRoot, alias) {
3256
3414
  if (!fs6.existsSync(typesRoot)) return;
3257
3415
  for (const name of fs6.readdirSync(typesRoot)) {
3258
3416
  if (name.startsWith(`.fg-staging-${alias}-`) || name.startsWith(`.fg-trash-${alias}-`)) {
3259
- fs6.rmSync(path7.join(typesRoot, name), { recursive: true, force: true });
3417
+ fs6.rmSync(path8.join(typesRoot, name), { recursive: true, force: true });
3260
3418
  }
3261
3419
  }
3262
3420
  }
@@ -3265,7 +3423,7 @@ async function syncRemoteTypes(input) {
3265
3423
  const fetchJsonFn = input.fetchJsonImpl ?? fetchJson;
3266
3424
  const fetchTextFn = input.fetchTextImpl ?? fetchText;
3267
3425
  const timeoutMs = input.timeoutMs ?? 15e3;
3268
- const dir = path7.join(typesRoot, alias);
3426
+ const dir = path8.join(typesRoot, alias);
3269
3427
  let manifest;
3270
3428
  try {
3271
3429
  const parsed = parseManifest(await fetchJsonFn(manifestUrl, timeoutMs));
@@ -3366,14 +3524,14 @@ async function syncRemoteTypes(input) {
3366
3524
  }
3367
3525
  const ambient = buildAmbientDeclarations({ alias, index, readFile: (rel) => indexRaw[rel] ?? "", source });
3368
3526
  sweepStaleStaging(typesRoot, alias);
3369
- const staging = path7.join(typesRoot, `.fg-staging-${alias}-${process.pid}-${Date.now()}`);
3527
+ const staging = path8.join(typesRoot, `.fg-staging-${alias}-${process.pid}-${Date.now()}`);
3370
3528
  fs6.rmSync(staging, { recursive: true, force: true });
3371
3529
  fs6.mkdirSync(staging, { recursive: true });
3372
3530
  const written = [];
3373
3531
  try {
3374
3532
  for (const [name, content] of ambient.files) {
3375
- const dest = path7.join(staging, name);
3376
- fs6.mkdirSync(path7.dirname(dest), { recursive: true });
3533
+ const dest = path8.join(staging, name);
3534
+ fs6.mkdirSync(path8.dirname(dest), { recursive: true });
3377
3535
  fs6.writeFileSync(dest, content);
3378
3536
  written.push(name);
3379
3537
  }
@@ -3387,8 +3545,8 @@ async function syncRemoteTypes(input) {
3387
3545
  externals: index.externals,
3388
3546
  syncedAt: Date.now()
3389
3547
  };
3390
- fs6.writeFileSync(path7.join(staging, METADATA_FILE), JSON.stringify(meta, null, 2));
3391
- const trash = path7.join(typesRoot, `.fg-trash-${alias}-${Date.now()}`);
3548
+ fs6.writeFileSync(path8.join(staging, METADATA_FILE), JSON.stringify(meta, null, 2));
3549
+ const trash = path8.join(typesRoot, `.fg-trash-${alias}-${Date.now()}`);
3392
3550
  let swapped = false;
3393
3551
  if (fs6.existsSync(dir)) {
3394
3552
  fs6.renameSync(dir, trash);
@@ -3414,7 +3572,7 @@ async function syncRemoteTypes(input) {
3414
3572
  };
3415
3573
  }
3416
3574
  function removeGeneratedTypes(typesRoot, alias) {
3417
- const dir = path7.join(typesRoot, alias);
3575
+ const dir = path8.join(typesRoot, alias);
3418
3576
  if (!fs6.existsSync(dir)) return false;
3419
3577
  const meta = readMetadata(dir);
3420
3578
  if (!meta) return false;
@@ -3446,6 +3604,7 @@ function startRemoteTypesSyncLoop(opts) {
3446
3604
  typesRoot: opts.typesRoot,
3447
3605
  source: devEntry
3448
3606
  });
3607
+ if (result.status === "synced" && !controller.signal.aborted) opts.onSynced?.();
3449
3608
  if (result.status === "synced" || result.status === "absent" && !announced.has(alias)) {
3450
3609
  log(`[fulgurjs] \u7C7B\u578B\u540C\u6B65\uFF1A${result.message}`);
3451
3610
  announced.add(alias);
@@ -3491,7 +3650,7 @@ function startRemoteTypesSyncLoop(opts) {
3491
3650
  }
3492
3651
 
3493
3652
  // src/diagnostics.ts
3494
- import path8 from "path";
3653
+ import path9 from "path";
3495
3654
  function formatFulgurjsDiagnostic(input) {
3496
3655
  const ctx = input.details ? `
3497
3656
  \u4E0A\u4E0B\u6587\uFF1A${JSON.stringify(input.details)}` : "";
@@ -3535,8 +3694,8 @@ function debugLog(category, data) {
3535
3694
  function redactModulePath(id, root) {
3536
3695
  const clean = id.split("?")[0];
3537
3696
  try {
3538
- const rel = path8.relative(root, clean);
3539
- if (rel && !rel.startsWith("..") && !path8.isAbsolute(rel)) return rel;
3697
+ const rel = path9.relative(root, clean);
3698
+ if (rel && !rel.startsWith("..") && !path9.isAbsolute(rel)) return rel;
3540
3699
  } catch {
3541
3700
  }
3542
3701
  return clean.split("/").pop() ?? clean;
@@ -3647,17 +3806,17 @@ function genRemoteSchemaModule(schema) {
3647
3806
 
3648
3807
  // src/vite-cache.ts
3649
3808
  import fs7 from "fs";
3650
- import path9 from "path";
3809
+ import path10 from "path";
3651
3810
  function syncViteCacheMarker(root, pluginVersion, log) {
3652
- const viteDir = path9.join(root, "node_modules", ".vite");
3653
- const marker = path9.join(viteDir, "fulgurjs-version.txt");
3811
+ const viteDir = path10.join(root, "node_modules", ".vite");
3812
+ const marker = path10.join(viteDir, "fulgurjs-version.txt");
3654
3813
  try {
3655
3814
  if (fs7.existsSync(viteDir)) {
3656
3815
  const prev = fs7.existsSync(marker) ? fs7.readFileSync(marker, "utf8").trim() : "";
3657
3816
  if (prev === pluginVersion) return;
3658
3817
  fs7.rmSync(viteDir, { recursive: true, force: true });
3659
3818
  log(
3660
- `[fulgurjs] \u63D2\u4EF6\u7248\u672C\u53D8\u5316\uFF08${prev || "\u65E0\u8BB0\u5F55"} \u2192 ${pluginVersion}\uFF09\uFF0C\u5DF2\u81EA\u52A8\u6E05\u9664 ${path9.relative(root, viteDir)} \u9884\u6784\u5EFA\u7F13\u5B58\uFF08\u907F\u514D\u65E7\u95E8\u9762\u7B7E\u540D 404 / DEV-009\uFF09\u3002\u672C\u6B21\u542F\u52A8\u5C06\u91CD\u65B0\u9884\u6784\u5EFA\uFF0C\u9996\u8F6E 30~60s \u5C5E\u6682\u6001\uFF08DEV-010\uFF09\u3002`
3819
+ `[fulgurjs] \u63D2\u4EF6\u7248\u672C\u53D8\u5316\uFF08${prev || "\u65E0\u8BB0\u5F55"} \u2192 ${pluginVersion}\uFF09\uFF0C\u5DF2\u81EA\u52A8\u6E05\u9664 ${path10.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`
3661
3820
  );
3662
3821
  }
3663
3822
  fs7.mkdirSync(viteDir, { recursive: true });
@@ -4017,7 +4176,7 @@ function repairRolldownAsyncMarks(code, sourceName) {
4017
4176
  }
4018
4177
 
4019
4178
  // src/runtime-code.gen.ts
4020
- 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.2";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';
4179
+ 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.4";var Ne="__fulgurjsSetup",Ce="__FULGURJS_APP_CONFIG__",J=15e3,ce=2,Fe=5,Ve=3e4,De=4e3,Ke=.2;function qe(){let c=Object.create(null),d=new Map,f=[],l=new Set,m=new Map,S=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,P=new Map,A=new WeakMap,V=new WeakMap,W=(e,r)=>{console.warn(`[fulgurjs] ${e} \\u94A9\\u5B50\\u5931\\u8D25\\uFF08\\u4E0D\\u5F71\\u54CD\\u52A0\\u8F7D\\uFF09\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A`,M(r))},_={},ue=()=>{for(let e of f)try{e.init?.(_)}catch(r){console.warn("[fulgurjs] \\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BF7\\u68C0\\u67E5\\uFF1A",e.name,M(r))}},D=new Map,K,q=e=>{let r=D.get(e);return r||D.set(e,r={}),r},z=()=>globalThis[Ce]??{};async function Y(e,r,n,o){let t=u=>{if(u instanceof E)return v({remote:e,error:u}),u;let a=new E(R.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${o} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${M(u)}\n\\u4FEE\\u6CD5\\uFF1A\\u68C0\\u67E5\\u5E76\\u4FEE\\u590D\\u8BE5 ${o} \\u51FD\\u6570\\u540E\\u91CD\\u65B0\\u52A0\\u8F7D\\uFF1B\\u5931\\u8D25\\u7F13\\u5B58\\u5DF2\\u6E05\\u9664\\uFF0C\\u53EF\\u4EE5\\u76F4\\u63A5\\u91CD\\u8BD5\\u3002`,{remote:e,phase:o},{cause:u});return v({remote:e,error:a}),a};K=e;let s;try{s=r(n)}catch(u){throw t(u)}finally{K=void 0}try{await s}catch(u){throw t(u)}}async function de(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await B(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default,u=t?.onSession!==void 0||t?.globalComponents!==void 0||t?.pageProviders!==void 0;if(s!==void 0&&typeof s!="function"||!s&&!u)throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${t==null?String(t):typeof s}\\uFF0C\\u4E14\\u6A21\\u5757\\u4E0D\\u6EE1\\u8DB3\\u521D\\u59CB\\u5316\\u58F0\\u660E\\u5951\\u7EA6\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u521D\\u59CB\\u5316\\u51FD\\u6570\\uFF0C\\u6216\\u53EA\\u58F0\\u660E onSession/globalComponents/pageProviders\\uFF1B\\u7A7A\\u6A21\\u5757\\u4E0E\\u975E\\u51FD\\u6570\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u65E0\\u6548\\u3002`,{remote:e.name,module:n});if(t.onSession!==void 0&&typeof t.onSession!="function")throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AonSession \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.onSession}\\uFF0C\\u5E94\\u4E3A\\u51FD\\u6570\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5C06 onSession \\u6539\\u4E3A\\u5177\\u540D\\u5BFC\\u51FA\\u7684\\u51FD\\u6570\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});if(o.setupExports=t,t.globalComponents!==void 0){if(typeof t.globalComponents!="object"||t.globalComponents===null||Array.isArray(t.globalComponents))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AglobalComponents \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${Array.isArray(t.globalComponents)?"array":typeof t.globalComponents}\\uFF0C\\u5E94\\u4E3A\\u5BF9\\u8C61\\uFF08\\u952E=\\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D\\uFF0C\\u503C=\\u7EC4\\u4EF6\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const globalComponents = { \\u7EC4\\u4EF6\\u6CE8\\u518C\\u540D: \\u7EC4\\u4EF6 } \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.globalComponents=t.globalComponents}if(t.pageProviders!==void 0){if(!Array.isArray(t.pageProviders))throw new E(R.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1ApageProviders \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof t.pageProviders}\\uFF0C\\u5E94\\u4E3A\\u6570\\u7EC4\\uFF08\\u6BCF\\u9879=\\u7EC4\\u4EF6\\u6216\\u96F6\\u53C2 loader\\uFF09\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u6539\\u4E3A export const pageProviders = [AppProvider] \\u6216 [() => import(\'./X\').then((m) => m.AppProvider)] \\u5F62\\u6001\\uFF0C\\u6216\\u5220\\u9664\\u8BE5\\u5BFC\\u51FA\\u3002`,{remote:e.name,module:n});o.pageProviders=t.pageProviders}s&&await Y(e.name,s,{appContext:z(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(t){throw e.debug.setup="failed",t?.code&&v({remote:e.name,error:t}),o.setupExports=void 0,o.globalComponents=void 0,o.pageProviders=void 0,t}}async function fe(e,r,n){let o=z(),t=o?.sessionKey;if(typeof t!="string"||t===""){let y=new E(R.SETUP_SESSION_KEY_MISSING,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u58F0\\u660E\\u4E86 onSession\\uFF0C\\u4F46\\u5BBF\\u4E3B\\u5C1A\\u672A\\u63D0\\u4F9B\\u6709\\u6548\\u7684 AppContext.sessionKey\\u3002\n\\u539F\\u56E0\\uFF1A\\u5F53\\u524D\\u503C\\u4E3A ${t===void 0?"\\u7F3A\\u5931":JSON.stringify(t)}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5BBF\\u4E3B\\u6BCF\\u6B21\\u767B\\u5F55\\u6216\\u91CD\\u767B\\u65F6\\u751F\\u6210\\u65B0\\u7684\\u975E\\u654F\\u611F\\u767B\\u5F55\\u4EE3\\u6B21 ID\\uFF0C\\u5E76\\u5728\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u9875\\u9762\\u524D\\u8C03\\u7528 provideAppContext({ ..., sessionKey: \'\\u767B\\u5F55\\u4EE3\\u6B21 ID\' })\\uFF1B\\u4E0D\\u8981\\u4F7F\\u7528 token \\u539F\\u6587\\u3002`,{remote:e.name});throw v({remote:e.name,error:y}),y}if(r.sessionPromise&&r.sessionKey===t)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=t;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),a=(async()=>{await u,!s.signal.aborted&&await Y(e.name,n,{appContext:o,sessionKey:t,signal:s.signal},"onSession")})();return r.sessionPromise=a,a.catch(()=>{r.sessionKey===t&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),a}async function pe(e,r){let n=r?.[Ne];if(typeof n!="string"||n==="")return;let o=q(e.name);o.setupPromise||(o.setupPromise=de(e,r,n,o).catch(s=>{throw o.setupPromise=void 0,s})),await o.setupPromise;let t=o.setupExports?.onSession;typeof t=="function"&&await fe(e,o,t)}function me(){for(let e of D.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let L=e=>c[e]??=Object.create(null);function v(e){if(!ie(e.error)){try{_.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}}function ge(e="default"){return L(e),c}function H(e,r,n,o,t={}){let s=L(e||"default"),u=Object.hasOwn(s,r)?s[r]:void 0,a=u&&typeof u=="object"?u:void 0;a||(a=Object.create(null),s[r]=a),!(Object.hasOwn(a,n)&&a[n])&&(a[n]={version:n,get:o,from:t.from??"unknown",eager:!!t.eager,loaded:!!t.loaded})}function he(e){let r=(n,o,t)=>{if(n===void 0)return;if(!(typeof n=="number"&&(t?Number.isInteger(n)&&n>=0&&n<=10:Number.isFinite(n)&&n>0)))throw new Error(`[fulgurjs] \\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 ${o} \\u914D\\u7F6E\\u65E0\\u6548\\uFF1A\\u5F53\\u524D\\u4E3A ${String(n)}\\uFF0C\\u5E94\\u4E3A${t?" 0 \\u5230 10 \\u7684\\u6574\\u6570":"\\u5927\\u4E8E 0 \\u7684\\u6709\\u9650\\u6570\\u5B57"}\\u3002\\u8BF7\\u4FEE\\u6B63 registerRemote \\u914D\\u7F6E\\u3002`)};r(e.timeout,"timeout"),r(e.retries,"retries",!0),e.breaker&&(r(e.breaker.threshold,"breaker.threshold"),r(e.breaker.resetMs,"breaker.resetMs"))}function Z(e){for(let r of e){he(r);let n=d.get(r.name);d.set(r.name,{timeout:J,retries:ce,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??Fe,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??Ve,state:n?.state??"idle",breakerState:n?.breakerState??{fails:0,openUntil:0},entryInflight:n?.entryInflight??new Map,entryFailCounts:n?.entryFailCounts??new Map,debug:n?.debug??{entry:j(r.entry),status:"idle",setup:"none"}})}}function ye(e){Z([e])}function Se(e){f.push(...e),m.clear(),ue()}function I(e,r,n=!1){let o=r.shareScope||"default",t=r.shareKey||e,u=L(o)[t]||{},a=Object.keys(u).filter(i=>!n||r.singleton||u[i].value!==void 0);if(n&&a.length===0)return;let y=r.requiredVersion,g=a.filter(i=>y===void 0||y===!1||U(i,y)),p;if(r.singleton&&a.length>0){let i=a.filter(h=>u[h].loaded);if(p=[...i.length?i:a].sort(x).pop(),!g.includes(p)){let h=u[p],O=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${t}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42 ${y??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${a.join("\\u3001")}\\uFF1B\\u5355\\u4F8B\\u5019\\u9009\\u4E3A ${h.from} \\u63D0\\u4F9B\\u7684 ${p}\\u3002\n`+(r.strictVersion?`\\u7ED3\\u679C\\uFF1AstrictVersion \\u5DF2\\u5F00\\u542F\\uFF0C\\u672C\\u6B21\\u52A0\\u8F7D\\u5DF2\\u62D2\\u7EDD\\uFF0C\\u672A\\u4EA4\\u4ED8\\u4E0D\\u517C\\u5BB9\\u5B9E\\u4F8B\\u3002\n`:`\\u7ED3\\u679C\\uFF1A\\u590D\\u7528\\u6B64\\u5355\\u4F8B\\uFF1B\\u8BF7\\u786E\\u8BA4\\u4E24\\u7AEF API \\u517C\\u5BB9\\u3002\n`)+"\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u6838\\u5BF9\\u540E\\u8C03\\u6574 shared.requiredVersion\\u3002";if(r.strictVersion){let T=new E(R.SHARE_STRICT_VERSION,O,{shareKey:t,requiredVersion:y});throw v({remote:h.from,error:T}),T}let $=`${o}|${t}|${y??"*"}|${p}|${a.join(",")}`;l.has($)||(l.add($),console.warn(`[fulgurjs:MFU-010] ${O}`))}}else if(p=[...g].sort(x).pop(),!p){if(r.strictVersion){let i=new E(R.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${o}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${t}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${y}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${a.join("\\u3001")||"\\u65E0"}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u4FEE\\u6B63 shared.requiredVersion\\u3002`);throw v({remote:t,error:i}),i}return}return u[p]}function Q(e,r,n){let o=r.localVersion;if(!o||n===void 0)return;let t=r.shareScope||"default",s=r.shareKey||e,u=L(t),a=Object.hasOwn(u,s)?u[s]:void 0;if(a&&Object.keys(a).length>0){try{let g=I(e,r);if(g&&g.value===void 0){if(g.version===o)g.value=n,g.loaded=!0;else if(r.singleton&&!g.pendingGet){H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let p=u[s][o];p.value=n,p.loaded=!0}}}catch{}return}H(t,s,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let y=u[s]?.[o];y&&(y.value=n)}async function ee(e,r={}){let n=r.shareScope||"default",o=r.shareKey||e,t=L(n)[o]||{},s=S(e,r),u=_.resolveShare?m.get(s):void 0,a=u||I(e,r);if(!a){if(r.fallback){let i=await r.fallback();return Q(e,r,i),i}let p=new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${o}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u4F5C\\u7528\\u57DF "${n}" \\u4E2D\\u6CA1\\u6709\\u7B26\\u5408 ${r.requiredVersion??"\\u4EFB\\u610F\\u7248\\u672C"} \\u8981\\u6C42\\u7684\\u7248\\u672C\\uFF0C\\u4E14\\u672A\\u914D\\u7F6E\\u672C\\u5730\\u526F\\u672C\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728\\u5BBF\\u4E3B\\u6216\\u8FDC\\u7A0B\\u6CE8\\u518C\\u8BE5\\u4F9D\\u8D56\\uFF0C\\u6216\\u4E3A shared \\u914D\\u7F6E\\u53EF\\u7528\\u7684\\u672C\\u5730\\u526F\\u672C\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion});throw v({remote:o,error:p}),p}if(_.resolveShare&&!u){let p=await _.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:a,available:Object.values(t)});p&&(a=p),m.set(s,a)}if(a.value!==void 0)return m.set(S(e,r),a),a.value;if(a.loaded=!0,!a.pendingGet)try{a.pendingGet=a.get()}catch(p){a.pendingGet=Promise.reject(p)}let y=a.pendingGet,g;try{g=await y}catch(p){if(a.value!==void 0)return m.set(S(e,r),a),a.value;throw a.loaded=!1,m.get(s)===a&&m.delete(s),p}finally{a.pendingGet===y&&(a.pendingGet=void 0)}return a.value===void 0&&(a.value=g),m.set(S(e,r),a),a.value}function Ee(e,r={}){return _.resolveShare?m.get(S(e,r))?.value:I(e,r,!0)?.value}function Re(e,r,n,o){Q(e,{...r,localVersion:n},o)}function we(e,r){let n=r.shareScope||"default",o=r.shareKey||e;if(_.resolveShare){let s=S(e,r),u=m.get(s);if(u&&u.value!==void 0)return{kind:"ready",value:u.value};let a=u||_.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:I(e,r),available:Object.values(L(n)[o]||{})});if(a&&typeof a.then=="function")throw Promise.resolve(a).catch(()=>{}),new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u5BF9\\u5171\\u4EAB "${o}" \\u8FD4\\u56DE\\u4E86 Promise\\uFF0C\\u4F46\\u8BE5\\u5171\\u4EAB\\u6B63\\u88AB\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u6D88\\u8D39\\uFF08Vite 8 \\u540C\\u6B65\\u534F\\u5546\\u95E8\\u9762\\uFF09\\u3002\n\\u539F\\u56E0\\uFF1A\\u6A21\\u5757\\u6C42\\u503C\\u671F\\u65E0\\u6CD5\\u7B49\\u5F85\\u5F02\\u6B65\\u51B3\\u7B56\\uFF1B\\u9759\\u6001\\u5BFC\\u5165\\u4E0D\\u80FD\\u9759\\u9ED8\\u5FFD\\u7565 hook \\u51B3\\u7B56\\u3002\n\\u4FEE\\u6CD5\\uFF1AVite 8 HTML \\u5165\\u53E3\\u4F1A\\u5148\\u5B8C\\u6210\\u5F02\\u6B65\\u534F\\u5546\\uFF1B\\u5176\\u4ED6\\u5165\\u53E3\\u8BF7\\u5148\\u52A8\\u6001 loadShare \\u5EFA\\u7ACB\\u5FEB\\u7167\\uFF0C\\u518D\\u5BFC\\u5165\\u6D88\\u8D39\\u8005\\uFF0C\\u6216\\u8BA9\\u8BE5\\u952E\\u540C\\u6B65\\u8FD4\\u56DE picked\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let y=a;if(y){if(y.value!==void 0)return m.set(S(e,r),y),{kind:"ready",value:y.value};if(y.version!==void 0&&y.version===r.localVersion)return{kind:"local"};throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u4E3A "${o}" \\u9009\\u62E9\\u4E86\\u672A\\u5C31\\u7EEA\\u7684 ${y.version??"\\u6761\\u76EE"}\\u3002\n\\u539F\\u56E0\\uFF1A\\u540C\\u6B65\\u6D88\\u8D39\\u4E0D\\u80FD\\u7B49\\u5F85\\u52A0\\u8F7D\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5148\\u52A8\\u6001 loadShare \\u518D\\u5BFC\\u5165\\u6D88\\u8D39\\u8005\\uFF0C\\u6216\\u9009\\u62E9\\u5DF2\\u5C31\\u7EEA\\u5B9E\\u4F8B/\\u672C\\u5730\\u7248\\u672C ${r.localVersion??"\\u672A\\u58F0\\u660E"}\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0})}}let t=I(e,r);if(!t)return{kind:"local"};if(t.value!==void 0)return{kind:"ready",value:t.value};if(t.version!==void 0&&t.version===r.localVersion)return{kind:"local"};if(r.singleton||r.strictVersion&&r.requiredVersion&&(!r.localVersion||!U(r.localVersion,r.requiredVersion))){if(r.strictVersion||t.pendingGet)throw new E(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB "${o}" \\u9009\\u4E2D\\u4E86 ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version}\\uFF08\\u5C1A\\u672A\\u52A0\\u8F7D\\uFF09\\uFF0C\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u65E0\\u6CD5\\u7B49\\u5F85\\u5176\\u5B9E\\u4F8B\\u5C31\\u7EEA\\u3002\n\\u539F\\u56E0\\uFF1A\\u4E0D\\u80FD\\u6539\\u7528\\u4E0D\\u517C\\u5BB9\\u7684\\u672C\\u5730\\u526F\\u672C\\u6216\\u5206\\u88C2\\u5355\\u4F8B\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u8BA9\\u8BE5\\u5171\\u4EAB\\u7684\\u9996\\u6B21\\u6D88\\u8D39\\u5148\\u7ECF\\u4E00\\u6B21\\u52A8\\u6001 loadShare \\u5B8C\\u6210\\u52A0\\u8F7D\\uFF0C\\u6216\\u5C06\\u672C\\u5E94\\u7528\\u7248\\u672C\\u4E0E\\u4F5C\\u7528\\u57DF\\u63D0\\u4F9B\\u7248\\u672C\\u5BF9\\u9F50\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let s=`${n}|${o}|${t.version}|${r.localVersion}`;return l.has(s)||(l.add(s),console.warn(`[fulgurjs:MFU-010] \\u5171\\u4EAB\\u5355\\u4F8B "${o}"\\uFF1A\\u4F5C\\u7528\\u57DF\\u4E2D ${t.from} \\u63D0\\u4F9B\\u7684 ${t.version} \\u5C1A\\u672A\\u52A0\\u8F7D\\uFF0C\\u9996\\u4E2A\\u6D88\\u8D39\\u8005\\u4EE5\\u672C\\u5730\\u7248\\u672C ${r.localVersion??""} \\u63A5\\u7BA1\\uFF08\\u540E\\u7EED\\u6D88\\u8D39\\u8005\\u6309\\u5DF2\\u52A0\\u8F7D\\u4F18\\u5148\\u6536\\u655B\\u5230\\u8BE5\\u5B9E\\u4F8B\\uFF09\\u3002`)),{kind:"local"}}return console.warn(`[fulgurjs] \\u5171\\u4EAB "${o}"\\uFF1A\\u975E\\u5355\\u4F8B\\u540C\\u6B65\\u6D88\\u8D39\\u4F7F\\u7528\\u672C\\u5730 ${r.localVersion??""}\\uFF0C\\u8FDC\\u7A0B ${t.version} \\u5C1A\\u672A\\u5C31\\u7EEA\\u3002`),{kind:"local"}}async function be(e){if(_.resolveShare){for(let{name:r,opts:n}of e){let o=S(r,n);if(m.has(o))continue;let t=I(r,n),s=await _.resolveShare({shareKey:n.shareKey||r,shareScope:n.shareScope||"default",requiredVersion:n.requiredVersion,picked:t,available:Object.values(L(n.shareScope||"default")[n.shareKey||r]||{})})||t;s&&m.set(o,s)}for(let{name:r,opts:n}of e)await ee(r,n)}}function j(e=""){return F(e).split(/[?#]/,1)[0]}function re(e,r,n){return new Promise((o,t)=>{let s=setTimeout(()=>t(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${n}`)),r);e.then(u=>{clearTimeout(s),o(u)},u=>{clearTimeout(s),t(u)})})}let ve=e=>new Promise(r=>setTimeout(r,e)),ne=new Set;function G(e,r){if(!e||typeof e.get!="function")throw new Error(`\\u8FDC\\u7A0B\\u5E94\\u7528 "${r.name}" \\u7684 remoteEntry \\u672A\\u5BFC\\u51FA\\u5BB9\\u5668\\u63A5\\u53E3\\u3002\\u8BF7\\u786E\\u8BA4\\u5165\\u53E3\\u5BFC\\u51FA\\u4E86 get()\\uFF0C\\u5E76\\u68C0\\u67E5\\u8BE5\\u5730\\u5740\\u662F\\u5426\\u8FD4\\u56DE\\u6B63\\u786E\\u7684\\u8054\\u90A6\\u5165\\u53E3 JS\\u3002`);if(e.name&&r.name&&e.name!==r.name){let n=`\\u8FDC\\u7A0B\\u5165\\u53E3\\u81EA\\u62A5\\u540D\\u79F0 "${e.name}" \\u4E0E\\u5BBF\\u4E3B\\u914D\\u7F6E\\u540D\\u79F0 "${r.name}" \\u4E0D\\u4E00\\u81F4\\u3002\\u8BF7\\u7EDF\\u4E00\\u4E24\\u4FA7 federation({ name }) \\u4E0E remotes \\u7684\\u540D\\u79F0\\u3002`;if(r.promise){let o=`${r.name}\\u2194${e.name}`;ne.has(o)||(ne.add(o),console.warn(`[fulgurjs] ${n} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`))}else throw Object.assign(new Error(n),{code:R.REMOTE_NAME_MISMATCH})}}async function te(e,r){let n=r.entryFailCounts.get(e)??0,o=n>0?`${e}${e.includes("?")?"&":"?"}fulgurjs_retry=${n}`:e,t=r.entryInflight.get(e),s=t??import(o);return t||(r.entryInflight.set(e,s),s.catch(()=>{r.entryInflight.delete(e),r.entryFailCounts.set(e,(r.entryFailCounts.get(e)??0)+1)})),re(s,r.timeout??J,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${j(e)}`)}async function oe(e,r){let n=e.shareScope||"default";if(e.container){let s=V.get(e.container);if(s&&s!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${s}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return e.container}if(e.containerPromise)return e.containerPromise;let o=e.breakerState;if(o.openUntil>Date.now()){let s=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u8FDE\\u7EED\\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u7194\\u65AD\\u5668\\u5DF2\\u5F00\\u542F\\uFF1B\\u5C06\\u5728 ${new Date(o.openUntil).toISOString()} \\u540E\\u5141\\u8BB8\\u91CD\\u8BD5\\u3002\\u8BF7\\u5148\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u670D\\u52A1\\u548C\\u7F51\\u7EDC\\u3002`,{remote:e.name,stage:"container"});throw v({remote:e.name,error:s}),s}e.state="loading",e.debug.status="loading";let t=(async()=>{let s=[];if(e.promise)s.push(async()=>{let i=await re(e.promise(),e.timeout??J,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),h=typeof i=="string"?await te(i,e):i;return G(h,e),h});else for(let i of[e.entry,...e.fallback??[]])s.push(async()=>{let h=await te(i,e);return G(h,e),h});let u,a,y=!1,g=r?.retries??e.retries??ce;for(let i of s){for(let h=0;h<=g;h++){let O=performance.now();try{u=await i(),e.lastLoadMs=Math.round(performance.now()-O),e.debug.lastLoadMs=e.lastLoadMs,y=!0;break}catch($){if(a=$,$?.code)throw $;h<g&&await ve(Math.min(De,200*2**h)*(1-Ke*(1-2*Math.random())))}}if(y)break}if(!y||!u){let i=j(e.entry),h=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),h.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),h.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${i}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),h.push("2. \\u68C0\\u67E5 Nginx/CDN \\u7684\\u5165\\u53E3\\u8DEF\\u5F84\\u6620\\u5C04\\uFF1B\\u8BE5\\u5730\\u5740\\u4E0D\\u80FD\\u56DE\\u9000\\u5230 index.html\\u3002")),new E(R.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${i} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${M(a)}\n\\u4FEE\\u6CD5\\uFF1A\n${h.join(`\n`)}`,{remote:e.name,stage:"container"},{cause:a})}G(u,e);let p=V.get(u);if(p&&p!==n)throw new E(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${p}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof u.init=="function"&&await u.init(c),V.set(u,n),e.container=u,e.state="loaded",e.debug.status="loaded",o.fails=0,u})();e.containerPromise=t;try{return await t}catch(s){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=M(s),o.fails+=1,o.fails>=e.breakerThreshold&&(o.openUntil=Date.now()+e.breakerResetMs,o.fails=0),s instanceof E)throw v({remote:e.name,error:s}),s;if(s?.code)throw v({remote:e.name,error:s}),s;let u=new E(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(s)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name,stage:"container"},{cause:s});throw v({remote:e.name,error:u}),u}}function X(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:se(e.slice(r+1))}}function se(e){return e?e.startsWith(".")?e:`./${e}`:""}async function Pe(e,r){let{remote:n,module:o}=X(e);if(o&&K===n)throw new E(R.SETUP_RECURSION,`\\u73B0\\u8C61\\uFF1A\\u52A0\\u8F7D "${e}" \\u65F6\\uFF0C\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 setup/onSession \\u53C8\\u540C\\u6B65\\u52A0\\u8F7D\\u4E86\\u81EA\\u8EAB\\u6A21\\u5757\\uFF0C\\u5F62\\u6210\\u5FAA\\u73AF\\u7B49\\u5F85\\u3002\n\\u539F\\u56E0\\uFF1A\\u521D\\u59CB\\u5316\\u5C1A\\u672A\\u5B8C\\u6210\\uFF0C\\u4E0D\\u80FD\\u7B49\\u5F85\\u81EA\\u8EAB\\u7684\\u521D\\u59CB\\u5316\\u7ED3\\u679C\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u4E0D\\u8981\\u5728 setup/onSession \\u4E2D\\u52A0\\u8F7D\\u540C\\u4E00\\u8FDC\\u7A0B\\u7684\\u6A21\\u5757\\uFF1B\\u8BF7\\u5728\\u9875\\u9762\\u7EC4\\u4EF6\\u4E2D\\u52A0\\u8F7D\\uFF0C\\u6216\\u901A\\u8FC7 context \\u89E3\\u8026\\u3002`,{remote:n});try{_.beforeLoadRemote?.({remote:n,module:o})}catch(i){W("beforeLoadRemote",i)}let t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:n});let s;try{let i=o&&t.manifestUrl?B(e):Promise.resolve();[s]=await Promise.all([oe(t,{retries:r?.retries}),i])}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}if(!o)return s;await pe(t,s);let u=q(n).globalComponents,a=r?.consumerApp;if(u&&a&&typeof a.component=="function")for(let i of Object.keys(u))a.component(i,u[i]);let y=q(n).pageProviders;y&&y.length>0&&typeof a?.pageProviders=="function"&&a.pageProviders(y);let g=`${n}@${t.shareScope||"default"}#${o}`;b.has(g)||b.set(g,s.get(o).catch(i=>{if(b.delete(g),i instanceof E||i?.code)throw v({remote:n,error:i}),i;let h=new E(R.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${o}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(i)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:o,stage:"expose"},{cause:i});throw v({remote:n,error:h}),h}));let p;try{p=await b.get(g)}catch(i){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF1B\\u4F7F\\u7528\\u914D\\u7F6E\\u7684 fallbackModule\\u3002\\u6458\\u8981\\uFF1A`,M(i)),v({remote:n,error:i}),await r.fallbackModule();throw i}try{_.afterLoadRemote?.({remote:n,module:o,module_ns:p})}catch(i){W("afterLoadRemote",i)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let i=new E(R.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6A21\\u5757 "${o}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:n,module:o});v({remote:n,error:i}),console.error(i.message)}return p}function $e(e){let r=d.get(e);if(!r)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return oe(r)}async function B(e,r={}){let{remote:n,module:o}=X(e),t=d.get(n);if(!t)throw new E(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:n});let s=r.mode??"preload",u=(g,p)=>{if(g.sheet)return Promise.resolve();let i=A.get(g);if(i)return i;let h=new Promise(O=>{let $=()=>{g.removeEventListener("load",$),g.removeEventListener("error",T),O()},T=()=>{v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${p}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:n})}),$()};g.addEventListener("load",$,{once:!0}),g.addEventListener("error",T,{once:!0}),g.sheet&&$()});return A.set(g,h),h},a=(g,p)=>{if(typeof document>"u")return Promise.resolve();let i=document.querySelector(`link[href="${g}"]`);if(i)return p==="style"&&s==="preload"?A.get(i)??Promise.resolve():Promise.resolve();let h=document.createElement("link");h.rel=p==="style"?"stylesheet":"modulepreload",h.href=g,s==="prefetch"&&(h.fetchPriority="low");let O=p==="style"?u(h,g):Promise.resolve();return document.head.appendChild(h),p==="style"&&s==="preload"?O:Promise.resolve()},y=g=>{let p=typeof document<"u"?document.baseURI:void 0,i=new URL(t.entry,p||"http://fulgurjs.invalid/");return!i.pathname.endsWith("/")&&!i.pathname.split("/").pop().includes(".")&&(i.pathname+="/"),new URL(g,i).href};try{if(t.manifestUrl){let g=P.get(t.manifestUrl);g||(g=fetch(t.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(i=>i.ok?i.json():void 0),P.set(t.manifestUrl,g),g.then(i=>{i||P.delete(t.manifestUrl)},()=>P.delete(t.manifestUrl)));let p=await g;if(p){let i=p.schemaVersion;if(typeof i=="number"&&(!Number.isInteger(i)||i>1)){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(i)}\\uFF0C\\u5F53\\u524D\\u4EC5\\u652F\\u6301\\u7248\\u672C 1\\u3002\\u8BF7\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u548C\\u8FDC\\u7A0B\\u7684\\u63D2\\u4EF6\\u7248\\u672C\\u3002`,{remote:n})}),await a(t.entry,"modulepreload");return}await a(t.entry,"modulepreload");let h=p.exposes,O=Array.isArray(h)?h.filter(k=>k&&typeof k=="object").map(k=>[String(k.name??""),k]):h&&typeof h=="object"?Object.entries(h):[],$=o?O.filter(([k,N])=>se(String(N?.name??k))===o):O,T=[];for(let[,k]of $)if(typeof k?.file=="string"&&await a(y(k.file),"modulepreload"),Array.isArray(k?.css))for(let N of k.css){if(typeof N!="string")continue;let _e=a(y(N),"style");s==="preload"&&T.push(_e)}await Promise.all(T);return}}await a(t.entry,"modulepreload")}catch(g){v({remote:n,error:new E(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${M(g)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:n})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=c,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,n]of d)e[r]={...n.debug,entry:j(n.entry)};return e},errors:[]}),{shareScopeMap:c,initSharing:ge,registerShare:H,registerRemotes:Z,registerRemote:ye,registerPlugins:Se,loadShare:ee,loadShareSync:we,prepareShares:be,getLoadedShare:Ee,pinLoadedShare:Re,loadRemote:Pe,getContainer:$e,preloadRemote:B,parseSpec:X,clearSessionState:me,reportRemoteError:e=>{v(e)}}}var le=globalThis,w=le.__FULGURJS_RUNTIME__??qe();le.__FULGURJS_RUNTIME__=w;try{Object.freeze(w)}catch{}var Ye=ae;function Ze(){return w}var Qe=w.initSharing,er=w.registerShare,rr=w.registerRemotes,nr=w.registerRemote,tr=w.registerPlugins,or=w.loadShare,sr=w.getLoadedShare,ir=w.prepareShares||(async c=>{for(let{name:d,opts:f}of c)await w.loadShare(d,f)}),ar=w.loadShareSync,cr=w.pinLoadedShare,lr=w.loadRemote,ur=w.getContainer,dr=w.preloadRemote,fr=w.parseSpec,pr=w.clearSessionState,mr=w.shareScopeMap;function gr(c){if(c&&typeof c=="object"&&"default"in c){let d=c.default;return d!==void 0?d:c}return c}var hr=w;export{pr as clearSessionState,hr as default,ur as getContainer,sr as getLoadedShare,Ze as getRuntime,Qe as initSharing,lr as loadRemote,or as loadShare,ar as loadShareSync,fr as parseSpec,cr as pinLoadedShare,dr as preloadRemote,ir as prepareShares,tr as registerPlugins,nr as registerRemote,rr as registerRemotes,er as registerShare,w as runtime,mr as shareScopeMap,gr as unwrapDefault,Ye as version};\n';
4021
4180
 
4022
4181
  // src/index.ts
4023
4182
  function readRuntimeCode() {
@@ -4034,7 +4193,7 @@ function enumerateCjsExports(packageName, appRoot) {
4034
4193
  if (cached) return cached;
4035
4194
  let names = [];
4036
4195
  try {
4037
- const appRequire = createRequire4(path10.join(appRoot, "package.json"));
4196
+ const appRequire = createRequire4(path11.join(appRoot, "package.json"));
4038
4197
  const mod = appRequire(packageName);
4039
4198
  names = Object.keys(mod);
4040
4199
  } catch {
@@ -4152,7 +4311,7 @@ async function resolveSharedImportTarget(item, root) {
4152
4311
  const specifier = item.import;
4153
4312
  if (typeof specifier !== "string") return item.shareKey;
4154
4313
  try {
4155
- const resolved = await this.resolve?.(specifier, path10.join(root, "package.json"), { skipSelf: true });
4314
+ const resolved = await this.resolve?.(specifier, path11.join(root, "package.json"), { skipSelf: true });
4156
4315
  if (resolved?.id) return resolved.id;
4157
4316
  } catch {
4158
4317
  }
@@ -4186,7 +4345,7 @@ function federation(options) {
4186
4345
  enforce: "pre",
4187
4346
  async config(userConfig, env) {
4188
4347
  state.command = env.command;
4189
- const root = path10.resolve(userConfig.root ?? process.cwd());
4348
+ const root = path11.resolve(userConfig.root ?? process.cwd());
4190
4349
  const normalized = normalizeOptions(options, root, env.command);
4191
4350
  state.normalized = normalized;
4192
4351
  state.rolldownBuild = env.command === "build" && Number((readInstalledVersion(root, "vite") ?? "0").split(".")[0]) >= 8;
@@ -4465,7 +4624,7 @@ export { default } from ${JSON.stringify(url)};
4465
4624
  },
4466
4625
  resolveId(source, importer) {
4467
4626
  if (state.normalized && importer && (importer.includes("virtual:fulgurjs-shared:") || importer.includes("virtual:fulgurjs-shared-ns:")) && /^\.\.?\//.test(source) && !source.startsWith("virtual:fulgurjs-")) {
4468
- const resolved = path10.resolve(state.normalized.root, source);
4627
+ const resolved = path11.resolve(state.normalized.root, source);
4469
4628
  return resolved + (source.match(/\?[^/]*$/)?.[0] ?? "");
4470
4629
  }
4471
4630
  let s = source;
@@ -4559,7 +4718,7 @@ export { default } from ${JSON.stringify(url)};
4559
4718
  }
4560
4719
  let importTarget = item.import;
4561
4720
  try {
4562
- const resolvedImport = await this.resolve?.(item.import, path10.join(state.normalized.root, "package.json"), { skipSelf: true });
4721
+ const resolvedImport = await this.resolve?.(item.import, path11.join(state.normalized.root, "package.json"), { skipSelf: true });
4563
4722
  if (resolvedImport?.id) importTarget = resolvedImport.id;
4564
4723
  } catch {
4565
4724
  }
@@ -4668,7 +4827,7 @@ ${code}`, map: null };
4668
4827
  const srcRe = /src=["']([^"']+)["']/;
4669
4828
  const entryPath = (src) => {
4670
4829
  const file = src.startsWith("/@fs/") ? src.slice(4) : src;
4671
- return path10.isAbsolute(file) && fs8.existsSync(file) ? file : path10.resolve(state.normalized.root, src.startsWith("/") ? src.slice(1) : src);
4830
+ return path11.isAbsolute(file) && fs8.existsSync(file) ? file : path11.resolve(state.normalized.root, src.startsWith("/") ? src.slice(1) : src);
4672
4831
  };
4673
4832
  for (const tag of html.match(moduleScriptRe) ?? []) {
4674
4833
  const src = srcRe.exec(tag)?.[1];
@@ -4699,7 +4858,7 @@ ${code}`, map: null };
4699
4858
  state.providerEntrySeeds = [];
4700
4859
  providerClosureCache.clear();
4701
4860
  providerClosureBuilt = false;
4702
- const providerRequire = createRequire4(path10.join(n.root, "package.json"));
4861
+ const providerRequire = createRequire4(path11.join(n.root, "package.json"));
4703
4862
  for (const item of n.shared) {
4704
4863
  if (item.import === false) continue;
4705
4864
  try {
@@ -4716,7 +4875,7 @@ ${code}`, map: null };
4716
4875
  {
4717
4876
  for (const item of n.shared) {
4718
4877
  if (item.import === false) continue;
4719
- const resolved = await this.resolve(item.import, path10.join(n.root, "index.html"));
4878
+ const resolved = await this.resolve(item.import, path11.join(n.root, "index.html"));
4720
4879
  const file = resolved?.id.replace(/^\0/, "").split("?")[0];
4721
4880
  if (!file) continue;
4722
4881
  const marker = "/node_modules/";
@@ -4734,7 +4893,7 @@ ${code}`, map: null };
4734
4893
  if (state.manualChunkSpecsPending) {
4735
4894
  for (const [group, specifier] of state.manualChunkSpecsPending) {
4736
4895
  try {
4737
- const r = await this.resolve(specifier, path10.join(n.root, "index.html"));
4896
+ const r = await this.resolve(specifier, path11.join(n.root, "index.html"));
4738
4897
  if (r?.id) {
4739
4898
  state.manualChunkGroups.set(r.id, group);
4740
4899
  state.manualChunkGroups.set(r.id.split("?")[0], group);
@@ -4764,7 +4923,7 @@ ${code}`, map: null };
4764
4923
  };
4765
4924
  for (const item of n.shared) {
4766
4925
  if (item.import === false) continue;
4767
- const selfFile = await this.resolve(item.import, path10.join(n.root, "index.html")).then(
4926
+ const selfFile = await this.resolve(item.import, path11.join(n.root, "index.html")).then(
4768
4927
  (r) => r?.id?.split("?")[0] ?? null
4769
4928
  ).catch(() => null);
4770
4929
  for (const alias of item.aliases) {
@@ -4779,7 +4938,7 @@ ${code}`, map: null };
4779
4938
  }
4780
4939
  }
4781
4940
  if (!file) {
4782
- file = await this.resolve(alias, path10.join(n.root, "index.html")).then(
4941
+ file = await this.resolve(alias, path11.join(n.root, "index.html")).then(
4783
4942
  (r) => r?.id?.split("?")[0] ?? null
4784
4943
  ).catch(() => null);
4785
4944
  }
@@ -4802,7 +4961,7 @@ ${code}`, map: null };
4802
4961
  }
4803
4962
  if (n.exposes.length > 0) {
4804
4963
  for (const e of n.exposes) {
4805
- const resolved = await this.resolve(e.import, path10.join(n.root, "index.html"));
4964
+ const resolved = await this.resolve(e.import, path11.join(n.root, "index.html"));
4806
4965
  if (resolved) {
4807
4966
  state.exposeAbsPaths[e.import] = resolved.id.split("?")[0];
4808
4967
  } else {
@@ -5067,7 +5226,7 @@ ${entryChunk.code}`;
5067
5226
  if (n.exposes.length > 0 && n.dts) {
5068
5227
  typesServer = createDevTypesServer(n);
5069
5228
  let regenTimer = null;
5070
- const syncedTypesDir = typeof n.dts === "object" && n.dts.dir ? path10.resolve(n.root, n.dts.dir) : path10.join(n.root, fs8.existsSync(path10.join(n.root, "src")) ? "src/fulgurjs/types" : ".fulgurjs/types");
5229
+ const syncedTypesDir = typeof n.dts === "object" && n.dts.dir ? path11.resolve(n.root, n.dts.dir) : path11.join(n.root, fs8.existsSync(path11.join(n.root, "src")) ? "src/fulgurjs/types" : ".fulgurjs/types");
5071
5230
  const scheduleRegen = (id) => {
5072
5231
  if (!isTypesInputChange(n.root, id, syncedTypesDir)) return;
5073
5232
  if (regenTimer) clearTimeout(regenTimer);
@@ -5134,9 +5293,9 @@ ${entryChunk.code}`;
5134
5293
  if (n.remotes.length > 0 && n.dts && state.command === "serve") {
5135
5294
  server.httpServer?.once("listening", () => {
5136
5295
  const dtsOpt = n.dts === true ? true : n.dts;
5137
- const typesRoot = path10.join(
5296
+ const typesRoot = path11.join(
5138
5297
  n.root,
5139
- dtsOpt === false ? "" : (typeof dtsOpt === "object" ? dtsOpt.dir : void 0) ?? (fs8.existsSync(path10.join(n.root, "src")) ? "src/fulgurjs/types" : ".fulgurjs/types")
5298
+ dtsOpt === false ? "" : (typeof dtsOpt === "object" ? dtsOpt.dir : void 0) ?? (fs8.existsSync(path11.join(n.root, "src")) ? "src/fulgurjs/types" : ".fulgurjs/types")
5140
5299
  );
5141
5300
  try {
5142
5301
  if (fs8.existsSync(typesRoot)) {
@@ -5152,7 +5311,10 @@ ${entryChunk.code}`;
5152
5311
  const stop = startRemoteTypesSyncLoop({
5153
5312
  root: n.root,
5154
5313
  typesRoot,
5155
- remotes: syncable.map((r) => ({ key: r.key, devEntry: r.devEntry }))
5314
+ remotes: syncable.map((r) => ({ key: r.key, devEntry: r.devEntry })),
5315
+ // 消费/提供双角色的公开源码可能直接 import 上游具名类型。
5316
+ // 首轮编译早于同步时会失败;仅在新类型原子写入后重检,普通轮询不触发。
5317
+ onSynced: () => typesServer?.invalidate()
5156
5318
  });
5157
5319
  server.httpServer?.once("close", stop);
5158
5320
  });
@@ -5192,7 +5354,7 @@ ${entryChunk.code}`;
5192
5354
  async transform(code, id) {
5193
5355
  if (!state.normalized) return null;
5194
5356
  const clean = id.split("?")[0];
5195
- const isAppSource = clean.startsWith(state.normalized.root + path10.sep) && !clean.includes(`${path10.sep}node_modules${path10.sep}`) && !clean.includes(`${path10.sep}.vite${path10.sep}`);
5357
+ const isAppSource = clean.startsWith(state.normalized.root + path11.sep) && !clean.includes(`${path11.sep}node_modules${path11.sep}`) && !clean.includes(`${path11.sep}.vite${path11.sep}`);
5196
5358
  const evidence = isAppSource && clean.endsWith(".vue") && (!id.includes("?") || /[?&]type=script(?:&|$)/.test(id)) ? tagVueRuntime(code, (source) => this.parse(source)) : null;
5197
5359
  if (evidence) code = evidence.code;
5198
5360
  const entryRewrite = state.command === "serve" && isAppSource ? await rewriteRuntimeEntryImports(code, isExposeTargetFile(clean, state.normalized.root, state.normalized.exposes)) : null;
@@ -5238,7 +5400,7 @@ ${entryChunk.code}`;
5238
5400
  if (!n) return;
5239
5401
  for (const s of n.shared) {
5240
5402
  if (s.import === false) continue;
5241
- void server.pluginContainer.resolveId(s.import, path10.join(n.root, "index.html")).then((r) => {
5403
+ void server.pluginContainer.resolveId(s.import, path11.join(n.root, "index.html")).then((r) => {
5242
5404
  if (r?.id) state.resolvedSharedPaths.set(r.id.split("?")[0], s.configKey);
5243
5405
  }).catch(() => {
5244
5406
  });