@fulgurjs/federation 5.5.2 → 5.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.en.md +1 -1
- package/README.md +1 -1
- package/dist/{chunk-E3VEP6LN.js → chunk-NHSQHAS4.js} +1 -1
- package/dist/{chunk-CI54BRPO.js → chunk-OLQGJR2Z.js} +79 -3
- package/dist/{chunk-TU6DMGDA.js → chunk-WOYDFERL.js} +1 -1
- package/dist/index.cjs +436 -94
- package/dist/index.js +436 -94
- package/dist/react.d.ts +4 -0
- package/dist/runtime-entry.d.ts +4 -0
- package/dist/runtime.js +21 -16
- package/docs/P5-vite7-8/345/205/274/345/256/271/347/237/251/351/230/265.md +2 -2
- package/examples/bridge/react-host/package-lock.json +4 -4
- package/examples/bridge/react-host/package.json +1 -1
- package/examples/bridge/react-remote/package-lock.json +4 -4
- package/examples/bridge/react-remote/package.json +1 -1
- package/examples/bridge/vue-host/package-lock.json +4 -4
- package/examples/bridge/vue-host/package.json +1 -1
- package/examples/bridge/vue-remote/package-lock.json +4 -4
- package/examples/bridge/vue-remote/package.json +1 -1
- package/examples/react/host/package-lock.json +4 -4
- package/examples/react/host/package.json +1 -1
- package/examples/react/remote/package-lock.json +4 -4
- package/examples/react/remote/package.json +1 -1
- package/examples/vue/host/package-lock.json +4 -4
- package/examples/vue/host/package.json +1 -1
- package/examples/vue/remote/package-lock.json +4 -4
- package/examples/vue/remote/package.json +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import fs from "fs";
|
|
|
8
8
|
import path from "path";
|
|
9
9
|
|
|
10
10
|
// src/version.ts
|
|
11
|
-
var RUNTIME_VERSION = "5.
|
|
11
|
+
var RUNTIME_VERSION = "5.7.0";
|
|
12
12
|
|
|
13
13
|
// src/dev-cors.ts
|
|
14
14
|
function normalizeDevCorsOrigins(input) {
|
|
@@ -691,19 +691,24 @@ function genCjsNsFacade(item, exportNames, importTarget) {
|
|
|
691
691
|
`shareKey: ${JSON.stringify(item.shareKey)}`,
|
|
692
692
|
...item.requiredVersion !== false ? [`requiredVersion: ${JSON.stringify(item.requiredVersion)}`] : [],
|
|
693
693
|
...item.singleton ? ["singleton: true"] : [],
|
|
694
|
-
...item.strictVersion ? ["strictVersion: true"] : []
|
|
694
|
+
...item.strictVersion ? ["strictVersion: true"] : [],
|
|
695
|
+
`localVersion: ${JSON.stringify(item.version)}`
|
|
695
696
|
];
|
|
696
697
|
const lines = [
|
|
697
|
-
|
|
698
|
+
// loadShareSync(2026-10-03 语义补修):与异步 loadShare 同一选择器(全注册版本)
|
|
699
|
+
// 与 strictVersion 语义(冲突抛 MFU-003 不吞)、resolveShare 快照/同步决策参与;
|
|
700
|
+
// 旧形态 getLoadedShare 的 readyOnly 过滤会把「已注册未加载」的本地版本排除出
|
|
701
|
+
// 候选集,非 singleton(strictVersion 默认 true)下误判「无满足版本」而拒绝。
|
|
702
|
+
`import { loadShareSync as __fulgurjs_ls, pinLoadedShare as __fulgurjs_pin, unwrapDefault as __fulgurjsU } from "virtual:fulgurjs-runtime";`,
|
|
698
703
|
// importTarget 为 load 期解析出的绝对 id(proxy 虚拟 id 上下文里裸包名无法 node 解析);
|
|
699
704
|
// 兜底保留裸包名(与命名空间门面同语义,无 proxy 载体时可解析)
|
|
700
705
|
`import * as __fulgurjs_local from ${JSON.stringify(importTarget ?? item.import)};`,
|
|
701
|
-
`const
|
|
702
|
-
//
|
|
703
|
-
//
|
|
704
|
-
//
|
|
705
|
-
`if (
|
|
706
|
-
`const __fulgurjs_m =
|
|
706
|
+
`const __fulgurjs_r = __fulgurjs_ls(${JSON.stringify(item.shareKey)}, { ${opts.join(", ")} });`,
|
|
707
|
+
// kind=local:空作用域/选中版本==本地版本——登记本地副本,使先于协商门面求值的
|
|
708
|
+
// 垫片(jsx-runtime 拖入 provider chunk 的场景)与后续协商收敛到同一份实例,
|
|
709
|
+
// 杜绝单例双实例。
|
|
710
|
+
`if (__fulgurjs_r.kind !== 'ready') __fulgurjs_pin(${JSON.stringify(item.shareKey)}, { ${opts.join(", ")} }, ${JSON.stringify(item.version)}, __fulgurjs_local);`,
|
|
711
|
+
`const __fulgurjs_m = __fulgurjs_r.kind === 'ready' ? __fulgurjs_r.value : __fulgurjs_local;`,
|
|
707
712
|
`const __fulgurjs_d = __fulgurjsU(__fulgurjs_m);`,
|
|
708
713
|
`export default __fulgurjs_d;`
|
|
709
714
|
];
|
|
@@ -734,6 +739,59 @@ function genBindingFacade(item, bindings, loadShareCall, dynamic = false) {
|
|
|
734
739
|
lines.push("");
|
|
735
740
|
return lines.join("\n");
|
|
736
741
|
}
|
|
742
|
+
function shareOptsLines(item) {
|
|
743
|
+
return [
|
|
744
|
+
`shareScope: ${JSON.stringify(item.shareScope)}`,
|
|
745
|
+
`shareKey: ${JSON.stringify(item.shareKey)}`,
|
|
746
|
+
...item.requiredVersion !== false ? [`requiredVersion: ${JSON.stringify(item.requiredVersion)}`] : [],
|
|
747
|
+
...item.singleton ? ["singleton: true"] : [],
|
|
748
|
+
...item.strictVersion ? ["strictVersion: true"] : []
|
|
749
|
+
];
|
|
750
|
+
}
|
|
751
|
+
function genBindingFacadeSync(item, bindings, importTarget) {
|
|
752
|
+
const opts = shareOptsLines(item);
|
|
753
|
+
const optsWithLocal = [...opts, `localVersion: ${JSON.stringify(item.version)}`];
|
|
754
|
+
const lines = [
|
|
755
|
+
`import { loadShareSync as __fulgurjs_ls, pinLoadedShare as __fulgurjs_pin, unwrapDefault as __fulgurjsU } from "virtual:fulgurjs-runtime";`,
|
|
756
|
+
`import * as __fulgurjs_local from ${JSON.stringify(importTarget)};`,
|
|
757
|
+
`const __fulgurjs_r = __fulgurjs_ls(${JSON.stringify(item.shareKey)}, { ${optsWithLocal.join(", ")} });`,
|
|
758
|
+
`const __fulgurjs_m = __fulgurjs_r.kind === 'ready' ? __fulgurjs_r.value : __fulgurjs_local;`,
|
|
759
|
+
`if (__fulgurjs_r.kind !== 'ready') __fulgurjs_pin(${JSON.stringify(item.shareKey)}, { ${optsWithLocal.join(", ")} }, ${JSON.stringify(item.version)}, __fulgurjs_local);`
|
|
760
|
+
];
|
|
761
|
+
const seen = /* @__PURE__ */ new Set();
|
|
762
|
+
for (const bRaw of bindings) {
|
|
763
|
+
if (bRaw === "default") continue;
|
|
764
|
+
const asMatch = bRaw.match(/^(.*?)\s+as\s+(.+)$/);
|
|
765
|
+
const imported = (asMatch ? asMatch[1] : bRaw).trim();
|
|
766
|
+
if (seen.has(imported)) continue;
|
|
767
|
+
seen.add(imported);
|
|
768
|
+
lines.push(`export const ${imported} = __fulgurjs_m.${imported};`);
|
|
769
|
+
}
|
|
770
|
+
lines.push(`export default __fulgurjsU(__fulgurjs_m);`);
|
|
771
|
+
lines.push("");
|
|
772
|
+
return lines.join("\n");
|
|
773
|
+
}
|
|
774
|
+
function genSharedNsFacadeSync(item, exportNames, importTarget) {
|
|
775
|
+
const opts = shareOptsLines(item);
|
|
776
|
+
const optsWithLocal = [...opts, `localVersion: ${JSON.stringify(item.version)}`];
|
|
777
|
+
const lines = [
|
|
778
|
+
`import { loadShareSync as __fulgurjs_ls, pinLoadedShare as __fulgurjs_pin, unwrapDefault as __fulgurjsU } from "virtual:fulgurjs-runtime";`,
|
|
779
|
+
`import * as __fulgurjs_local from ${JSON.stringify(importTarget)};`,
|
|
780
|
+
`const __fulgurjs_r = __fulgurjs_ls(${JSON.stringify(item.shareKey)}, { ${optsWithLocal.join(", ")} });`,
|
|
781
|
+
`const __fulgurjs_m = __fulgurjs_r.kind === 'ready' ? __fulgurjs_r.value : __fulgurjs_local;`,
|
|
782
|
+
`if (__fulgurjs_r.kind !== 'ready') __fulgurjs_pin(${JSON.stringify(item.shareKey)}, { ${optsWithLocal.join(", ")} }, ${JSON.stringify(item.version)}, __fulgurjs_local);`,
|
|
783
|
+
`const __fulgurjs_d = __fulgurjsU(__fulgurjs_m);`,
|
|
784
|
+
`export default __fulgurjs_d;`
|
|
785
|
+
];
|
|
786
|
+
const seen = /* @__PURE__ */ new Set(["default"]);
|
|
787
|
+
for (const name of exportNames) {
|
|
788
|
+
if (seen.has(name) || !/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(name)) continue;
|
|
789
|
+
seen.add(name);
|
|
790
|
+
lines.push(`export const ${name} = __fulgurjs_d[${JSON.stringify(name)}];`);
|
|
791
|
+
}
|
|
792
|
+
lines.push("");
|
|
793
|
+
return lines.join("\n");
|
|
794
|
+
}
|
|
737
795
|
function genRemoteBindingFacade(remoteSpec, bindings, dynamic = false) {
|
|
738
796
|
const lines = [
|
|
739
797
|
dynamic ? `const { loadRemote: __fulgurjs_loadRemote, unwrapDefault: __fulgurjsU } = await import("virtual:fulgurjs-runtime");` : `import { loadRemote as __fulgurjs_loadRemote, unwrapDefault: __fulgurjsU } from "virtual:fulgurjs-runtime";`.replace("unwrapDefault: __fulgurjsU", "unwrapDefault as __fulgurjsU"),
|
|
@@ -2206,116 +2264,354 @@ function syncViteCacheMarker(root, pluginVersion, log) {
|
|
|
2206
2264
|
}
|
|
2207
2265
|
|
|
2208
2266
|
// src/async-mark-repair.ts
|
|
2209
|
-
import MagicString2 from "magic-string";
|
|
2210
2267
|
import { transformSync } from "esbuild";
|
|
2211
2268
|
var ROLLDOWN_RUNTIME_MARK = "rolldown-runtime";
|
|
2212
2269
|
var ASYNC_ERROR_SIGNATURE = /await["']?\s+(?:is only allowed within|can only be used inside an?)\s+["']?async/i;
|
|
2270
|
+
var MAX_REPAIR_ROUNDS = 64;
|
|
2213
2271
|
function validate(code) {
|
|
2214
2272
|
try {
|
|
2215
2273
|
transformSync(code, { loader: "js", format: "esm" });
|
|
2216
2274
|
return { ok: true };
|
|
2217
2275
|
} catch (e) {
|
|
2218
2276
|
const err = e;
|
|
2219
|
-
const
|
|
2220
|
-
|
|
2277
|
+
const first = err.errors?.[0];
|
|
2278
|
+
const text = first?.text ?? err.message ?? "";
|
|
2279
|
+
if (!ASYNC_ERROR_SIGNATURE.test(text)) return { ok: false, offset: -1, text: "" };
|
|
2280
|
+
const loc = first?.location;
|
|
2281
|
+
if (!loc) return { ok: false, offset: -1, text };
|
|
2282
|
+
let offset = -1;
|
|
2283
|
+
if (loc.line >= 1) {
|
|
2284
|
+
let lineStart = 0;
|
|
2285
|
+
for (let l = 1; l < loc.line; l++) {
|
|
2286
|
+
const nl = code.indexOf("\n", lineStart);
|
|
2287
|
+
if (nl === -1) {
|
|
2288
|
+
lineStart = -1;
|
|
2289
|
+
break;
|
|
2290
|
+
}
|
|
2291
|
+
lineStart = nl + 1;
|
|
2292
|
+
}
|
|
2293
|
+
if (lineStart >= 0) offset = lineStart + loc.column;
|
|
2294
|
+
}
|
|
2295
|
+
return { ok: false, offset, text };
|
|
2221
2296
|
}
|
|
2222
2297
|
}
|
|
2223
|
-
function
|
|
2224
|
-
const
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2298
|
+
function buildCodeMask(code) {
|
|
2299
|
+
const masked = [];
|
|
2300
|
+
const n = code.length;
|
|
2301
|
+
let i = 0;
|
|
2302
|
+
let prevSignificant = "";
|
|
2303
|
+
const lastMeaningful = (from) => {
|
|
2304
|
+
for (let j = from; j >= 0; j--) {
|
|
2305
|
+
const c = code[j];
|
|
2306
|
+
if (!/\s/.test(c)) return c;
|
|
2307
|
+
}
|
|
2308
|
+
return "";
|
|
2309
|
+
};
|
|
2310
|
+
while (i < n) {
|
|
2311
|
+
const c = code[i];
|
|
2312
|
+
if (c === '"' || c === "'") {
|
|
2313
|
+
const start = i;
|
|
2314
|
+
i++;
|
|
2315
|
+
while (i < n) {
|
|
2316
|
+
if (code[i] === "\\") {
|
|
2317
|
+
i += 2;
|
|
2318
|
+
continue;
|
|
2319
|
+
}
|
|
2320
|
+
if (code[i] === c || code[i] === "\n") {
|
|
2321
|
+
i++;
|
|
2322
|
+
break;
|
|
2323
|
+
}
|
|
2324
|
+
i++;
|
|
2325
|
+
}
|
|
2326
|
+
masked.push([start, Math.min(i, n)]);
|
|
2327
|
+
prevSignificant = c;
|
|
2328
|
+
continue;
|
|
2329
|
+
}
|
|
2330
|
+
if (c === "`") {
|
|
2331
|
+
const start = i;
|
|
2332
|
+
i++;
|
|
2333
|
+
let depth = 0;
|
|
2334
|
+
while (i < n) {
|
|
2335
|
+
if (code[i] === "\\") {
|
|
2336
|
+
i += 2;
|
|
2337
|
+
continue;
|
|
2338
|
+
}
|
|
2339
|
+
if (depth === 0 && code[i] === "`") {
|
|
2340
|
+
i++;
|
|
2341
|
+
break;
|
|
2342
|
+
}
|
|
2343
|
+
if (depth === 0 && code[i] === "$" && code[i + 1] === "{") {
|
|
2344
|
+
depth = 1;
|
|
2345
|
+
i += 2;
|
|
2346
|
+
continue;
|
|
2347
|
+
}
|
|
2348
|
+
if (depth > 0) {
|
|
2349
|
+
if (code[i] === '"' || code[i] === "'") {
|
|
2350
|
+
const q = code[i];
|
|
2351
|
+
i++;
|
|
2352
|
+
while (i < n) {
|
|
2353
|
+
if (code[i] === "\\") {
|
|
2354
|
+
i += 2;
|
|
2355
|
+
continue;
|
|
2356
|
+
}
|
|
2357
|
+
;
|
|
2358
|
+
if (code[i] === q) {
|
|
2359
|
+
i++;
|
|
2360
|
+
break;
|
|
2361
|
+
}
|
|
2362
|
+
;
|
|
2363
|
+
i++;
|
|
2364
|
+
}
|
|
2365
|
+
continue;
|
|
2366
|
+
}
|
|
2367
|
+
if (code[i] === "{") depth++;
|
|
2368
|
+
if (code[i] === "}") depth--;
|
|
2369
|
+
}
|
|
2370
|
+
i++;
|
|
2251
2371
|
}
|
|
2372
|
+
masked.push([start, Math.min(i, n)]);
|
|
2373
|
+
prevSignificant = "`";
|
|
2374
|
+
continue;
|
|
2252
2375
|
}
|
|
2376
|
+
if (c === "/" && code[i + 1] === "/") {
|
|
2377
|
+
const start = i;
|
|
2378
|
+
const nl = code.indexOf("\n", i);
|
|
2379
|
+
i = nl === -1 ? n : nl + 1;
|
|
2380
|
+
masked.push([start, i]);
|
|
2381
|
+
continue;
|
|
2382
|
+
}
|
|
2383
|
+
if (c === "/" && code[i + 1] === "*") {
|
|
2384
|
+
const start = i;
|
|
2385
|
+
const end = code.indexOf("*/", i + 2);
|
|
2386
|
+
i = end === -1 ? n : end + 2;
|
|
2387
|
+
masked.push([start, i]);
|
|
2388
|
+
continue;
|
|
2389
|
+
}
|
|
2390
|
+
if (c === "/") {
|
|
2391
|
+
const p = prevSignificant || lastMeaningful(i - 1);
|
|
2392
|
+
const isDivision = /[A-Za-z0-9_$)\]]/.test(p);
|
|
2393
|
+
if (!isDivision) {
|
|
2394
|
+
const start = i;
|
|
2395
|
+
i++;
|
|
2396
|
+
let inClass = false;
|
|
2397
|
+
while (i < n) {
|
|
2398
|
+
const rc = code[i];
|
|
2399
|
+
if (rc === "\\") {
|
|
2400
|
+
i += 2;
|
|
2401
|
+
continue;
|
|
2402
|
+
}
|
|
2403
|
+
if (rc === "\n") break;
|
|
2404
|
+
if (rc === "[") inClass = true;
|
|
2405
|
+
else if (rc === "]") inClass = false;
|
|
2406
|
+
else if (rc === "/" && !inClass) {
|
|
2407
|
+
i++;
|
|
2408
|
+
break;
|
|
2409
|
+
}
|
|
2410
|
+
i++;
|
|
2411
|
+
}
|
|
2412
|
+
while (i < n && /[a-z]/i.test(code[i])) i++;
|
|
2413
|
+
masked.push([start, Math.min(i, n)]);
|
|
2414
|
+
prevSignificant = "/";
|
|
2415
|
+
continue;
|
|
2416
|
+
}
|
|
2417
|
+
}
|
|
2418
|
+
if (!/\s/.test(c)) prevSignificant = c;
|
|
2419
|
+
i++;
|
|
2420
|
+
}
|
|
2421
|
+
masked.sort((a, b) => a[0] - b[0]);
|
|
2422
|
+
return (offset) => {
|
|
2423
|
+
let lo = 0, hi = masked.length - 1;
|
|
2424
|
+
while (lo <= hi) {
|
|
2425
|
+
const mid = lo + hi >> 1;
|
|
2426
|
+
const [s, e] = masked[mid];
|
|
2427
|
+
if (offset < s) hi = mid - 1;
|
|
2428
|
+
else if (offset >= e) lo = mid + 1;
|
|
2429
|
+
else return true;
|
|
2430
|
+
}
|
|
2431
|
+
return false;
|
|
2253
2432
|
};
|
|
2254
|
-
visit(ast, null);
|
|
2255
|
-
return broken.filter((n) => n.__fgBroken === true);
|
|
2256
2433
|
}
|
|
2257
|
-
function
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2434
|
+
function findEnclosingFunctionHead(code, awaitOffset, isMasked) {
|
|
2435
|
+
const isCode = (o) => o >= 0 && o < code.length && !isMasked(o);
|
|
2436
|
+
let i = awaitOffset;
|
|
2437
|
+
let depth = 0;
|
|
2438
|
+
while (i > 0) {
|
|
2439
|
+
i--;
|
|
2440
|
+
if (!isCode(i)) continue;
|
|
2441
|
+
const c = code[i];
|
|
2442
|
+
if (c === "}" || c === ")" || c === "]") {
|
|
2443
|
+
depth++;
|
|
2444
|
+
continue;
|
|
2445
|
+
}
|
|
2446
|
+
if (c === "(" || c === "[") {
|
|
2447
|
+
if (depth > 0) depth--;
|
|
2448
|
+
continue;
|
|
2449
|
+
}
|
|
2450
|
+
if (c === "{") {
|
|
2451
|
+
if (depth > 0) {
|
|
2452
|
+
depth--;
|
|
2453
|
+
continue;
|
|
2454
|
+
}
|
|
2455
|
+
const head = classifyBrace(code, i, isCode);
|
|
2456
|
+
if (head) return head;
|
|
2457
|
+
continue;
|
|
2458
|
+
}
|
|
2459
|
+
if (c === ">" && i > 0 && code[i - 1] === "=" && isCode(i - 1)) {
|
|
2460
|
+
const head = arrowHeadBefore(code, i - 1, isCode);
|
|
2461
|
+
if (head) return head;
|
|
2462
|
+
continue;
|
|
2463
|
+
}
|
|
2265
2464
|
}
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2465
|
+
return null;
|
|
2466
|
+
}
|
|
2467
|
+
function skipBackward(from, code, isCode) {
|
|
2468
|
+
let i = from;
|
|
2469
|
+
while (i >= 0 && (!isCode(i) || /\s/.test(code[i]))) i--;
|
|
2470
|
+
return i;
|
|
2471
|
+
}
|
|
2472
|
+
function arrowHeadBefore(code, arrowEq, isCode) {
|
|
2473
|
+
const before = skipBackward(arrowEq - 1, code, isCode);
|
|
2474
|
+
if (before < 0) return null;
|
|
2475
|
+
if (code[before] === ")") {
|
|
2476
|
+
let d = 0;
|
|
2477
|
+
let i = before;
|
|
2478
|
+
while (i >= 0) {
|
|
2479
|
+
if (!isCode(i)) {
|
|
2480
|
+
i--;
|
|
2481
|
+
continue;
|
|
2482
|
+
}
|
|
2483
|
+
const c = code[i];
|
|
2484
|
+
if (c === ")") d++;
|
|
2485
|
+
else if (c === "(") {
|
|
2486
|
+
d--;
|
|
2487
|
+
if (d === 0) return { insertAt: i, kind: "arrow" };
|
|
2488
|
+
}
|
|
2489
|
+
i--;
|
|
2490
|
+
}
|
|
2491
|
+
return null;
|
|
2271
2492
|
}
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2493
|
+
if (/[A-Za-z0-9_$]/.test(code[before])) {
|
|
2494
|
+
let i = before;
|
|
2495
|
+
while (i >= 0 && /[A-Za-z0-9_$]/.test(code[i]) && isCode(i)) i--;
|
|
2496
|
+
return { insertAt: i + 1, kind: "arrow" };
|
|
2497
|
+
}
|
|
2498
|
+
return null;
|
|
2499
|
+
}
|
|
2500
|
+
function classifyBrace(code, brace, isCode) {
|
|
2501
|
+
let i = skipBackward(brace - 1, code, isCode);
|
|
2502
|
+
if (i < 0) return null;
|
|
2503
|
+
if (code[i] === ">" && i > 0 && code[i - 1] === "=") {
|
|
2504
|
+
return arrowHeadBefore(code, i - 1, isCode);
|
|
2505
|
+
}
|
|
2506
|
+
if (code[i] !== ")") return null;
|
|
2507
|
+
let d = 0;
|
|
2508
|
+
let j = i;
|
|
2509
|
+
while (j >= 0) {
|
|
2510
|
+
if (!isCode(j)) {
|
|
2511
|
+
j--;
|
|
2512
|
+
continue;
|
|
2513
|
+
}
|
|
2514
|
+
const c = code[j];
|
|
2515
|
+
if (c === ")") d++;
|
|
2516
|
+
else if (c === "(") {
|
|
2517
|
+
d--;
|
|
2518
|
+
if (d === 0) break;
|
|
2519
|
+
}
|
|
2520
|
+
j--;
|
|
2521
|
+
}
|
|
2522
|
+
if (j < 0) return null;
|
|
2523
|
+
const beforeParen = skipBackward(j - 1, code, isCode);
|
|
2524
|
+
if (beforeParen < 0) return null;
|
|
2525
|
+
if (code[beforeParen] === "*") return null;
|
|
2526
|
+
if (!/[A-Za-z0-9_$"']/.test(code[beforeParen])) return null;
|
|
2527
|
+
const word = readWordBackward(code, beforeParen, isCode);
|
|
2528
|
+
if (word.word === "function") return { insertAt: word.start, kind: "function" };
|
|
2529
|
+
const beforeWordPos = skipBackward(word.start - 1, code, isCode);
|
|
2530
|
+
if (beforeWordPos >= 0 && /[A-Za-z0-9_$]/.test(code[beforeWordPos])) {
|
|
2531
|
+
const beforeWord = readWordBackward(code, beforeWordPos, isCode);
|
|
2532
|
+
if (beforeWord.word === "function") return { insertAt: beforeWord.start, kind: "function" };
|
|
2533
|
+
}
|
|
2534
|
+
const key = readMethodKeyBackward(code, beforeParen, isCode);
|
|
2535
|
+
return key ? { insertAt: key.start, kind: "method" } : null;
|
|
2536
|
+
}
|
|
2537
|
+
function readWordBackward(code, wordEnd, isCode) {
|
|
2538
|
+
let i = wordEnd;
|
|
2539
|
+
while (i >= 0 && /[A-Za-z0-9_$]/.test(code[i]) && isCode(i)) i--;
|
|
2540
|
+
return { word: code.slice(i + 1, wordEnd + 1), start: i + 1 };
|
|
2541
|
+
}
|
|
2542
|
+
function readMethodKeyBackward(code, keyEnd, isCode) {
|
|
2543
|
+
const i = keyEnd;
|
|
2544
|
+
if (i < 0) return null;
|
|
2545
|
+
let keyStart;
|
|
2546
|
+
if (code[i] === '"' || code[i] === "'") {
|
|
2547
|
+
const q = code[i];
|
|
2548
|
+
let j = i - 1;
|
|
2549
|
+
while (j >= 0) {
|
|
2550
|
+
if (code[j] === "\\") {
|
|
2551
|
+
j -= 2;
|
|
2552
|
+
continue;
|
|
2553
|
+
}
|
|
2554
|
+
;
|
|
2555
|
+
if (code[j] === q) break;
|
|
2556
|
+
j--;
|
|
2557
|
+
}
|
|
2558
|
+
if (j < 0) return null;
|
|
2559
|
+
keyStart = j;
|
|
2560
|
+
} else if (/[A-Za-z0-9_$]/.test(code[i])) {
|
|
2561
|
+
keyStart = readWordBackward(code, i, isCode).start;
|
|
2562
|
+
} else {
|
|
2563
|
+
return null;
|
|
2564
|
+
}
|
|
2565
|
+
const before = skipBackward(keyStart - 1, code, isCode);
|
|
2566
|
+
if (before >= 0) {
|
|
2567
|
+
if (code[before] === "*") return null;
|
|
2568
|
+
if (/[A-Za-z0-9_$]/.test(code[before])) {
|
|
2569
|
+
const w = readWordBackward(code, before, isCode);
|
|
2570
|
+
if (w.word === "get" || w.word === "set" || w.word === "async") return null;
|
|
2283
2571
|
}
|
|
2284
|
-
s.appendLeft(start, "async ");
|
|
2285
|
-
repaired++;
|
|
2286
2572
|
}
|
|
2287
|
-
return {
|
|
2573
|
+
return { start: keyStart };
|
|
2288
2574
|
}
|
|
2289
|
-
function repairRolldownAsyncMarks(code,
|
|
2575
|
+
function repairRolldownAsyncMarks(code, sourceName) {
|
|
2290
2576
|
if (!code.includes(ROLLDOWN_RUNTIME_MARK) || !code.includes("await")) return null;
|
|
2291
2577
|
const first = validate(code);
|
|
2292
2578
|
if (first.ok) return null;
|
|
2293
2579
|
if (!first.text) return null;
|
|
2294
2580
|
let current = code;
|
|
2295
2581
|
let repaired = 0;
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
);
|
|
2582
|
+
let lastText = first.text;
|
|
2583
|
+
for (let round = 0; round < MAX_REPAIR_ROUNDS; round++) {
|
|
2584
|
+
const v = validate(current);
|
|
2585
|
+
if (v.ok) return { code: current, repaired };
|
|
2586
|
+
if (!v.text) {
|
|
2587
|
+
throw new Error(
|
|
2588
|
+
`[fulgurjs] async \u6807\u8BB0\u4FEE\u590D\u8FC7\u7A0B\u4E2D\u51FA\u73B0\u975E\u76EE\u6807\u8BED\u6CD5\u9519\u8BEF\uFF08rolldown codegen \u7F3A\u9677\uFF0CV8-ASYNC-FIX\uFF0C${sourceName}\uFF09\u3002\u5DF2\u5B8C\u6210\u8865\u6807 ${repaired} \u5904\u3002\u8BF7\u628A\u8BE5 chunk \u4E0E\u6784\u5EFA\u914D\u7F6E\u53CD\u9988\u7ED9 fulgurjs\u3002`
|
|
2589
|
+
);
|
|
2590
|
+
}
|
|
2591
|
+
lastText = v.text;
|
|
2592
|
+
const isMasked = buildCodeMask(current);
|
|
2593
|
+
if (v.offset < 0 || isMasked(v.offset)) {
|
|
2594
|
+
throw new Error(
|
|
2595
|
+
`[fulgurjs] \u68C0\u6D4B\u5230\u300Cawait \u4F4D\u4E8E\u975E async \u51FD\u6570\u300D\uFF08rolldown codegen \u7F3A\u9677\uFF0CV8-ASYNC-FIX\uFF09\uFF0C\u4F46\u65E0\u6CD5\u5B9A\u4F4D\u7834\u635F await \u7684\u4EE3\u7801\u4F4D\u7F6E\uFF08${sourceName}\uFF09\uFF1A${v.text}\u3002`
|
|
2596
|
+
);
|
|
2597
|
+
}
|
|
2598
|
+
const head = findEnclosingFunctionHead(current, v.offset, isMasked);
|
|
2599
|
+
if (!head) {
|
|
2600
|
+
const ctx = current.slice(Math.max(0, v.offset - 100), v.offset + 100);
|
|
2601
|
+
throw new Error(
|
|
2602
|
+
`[fulgurjs] \u68C0\u6D4B\u5230\u300Cawait \u4F4D\u4E8E\u975E async \u51FD\u6570\u300D\uFF08rolldown codegen \u7F3A\u9677\uFF0CV8-ASYNC-FIX\uFF09\uFF0C\u4F46\u65E0\u6CD5\u5B89\u5168\u5B9A\u4F4D\u5305\u88F9\u51FD\u6570\u5934\uFF08\u53EF\u80FD\u4E3A getter/setter/\u8BA1\u7B97\u952E\u65B9\u6CD5\u7B49\u4E0D\u652F\u6301\u5F62\u6001\uFF0C${sourceName}\uFF09\u3002\u4E0A\u4E0B\u6587\uFF1A${JSON.stringify(ctx)}`
|
|
2603
|
+
);
|
|
2604
|
+
}
|
|
2605
|
+
current = current.slice(0, head.insertAt) + "async " + current.slice(head.insertAt);
|
|
2606
|
+
repaired++;
|
|
2313
2607
|
}
|
|
2314
|
-
|
|
2608
|
+
throw new Error(
|
|
2609
|
+
`[fulgurjs] async \u6807\u8BB0\u4FEE\u590D\u8D85\u8FC7 ${MAX_REPAIR_ROUNDS} \u8F6E\u4ECD\u672A\u901A\u8FC7\uFF08${sourceName}\uFF09\uFF1A${lastText}\u3002\u7591\u4F3C\u975E rolldown \u5DF2\u77E5\u7F3A\u9677\u5F62\u6001\uFF0C\u8BF7\u53CD\u9988\u7ED9 fulgurjs\u3002`
|
|
2610
|
+
);
|
|
2315
2611
|
}
|
|
2316
2612
|
|
|
2317
2613
|
// src/runtime-code.gen.ts
|
|
2318
|
-
var runtime_code_gen_default = 'var we=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function j(a){let c=we.exec(String(a).trim());return c?{major:Number(c[1]),minor:Number(c[2]??0),patch:Number(c[3]??0),pre:c[4]?c[4].split("."):[]}:null}function be(a,c){if(a.length===0&&c.length===0)return 0;if(a.length===0)return 1;if(c.length===0)return-1;let u=Math.max(a.length,c.length);for(let i=0;i<u;i++){let h=a[i],y=c[i];if(h===void 0)return-1;if(y===void 0)return 1;let w=/^\\d+$/.test(h),P=/^\\d+$/.test(y);if(w&&P){let I=Number(h)-Number(y);if(I!==0)return I}else{if(w!==P)return w?-1:1;if(h!==y)return h<y?-1:1}}return 0}function T(a,c){let u=j(a),i=j(c);return!u||!i?a<c?-1:a>c?1:0:u.major!==i.major?u.major-i.major:u.minor!==i.minor?u.minor-i.minor:u.patch!==i.patch?u.patch-i.patch:be(u.pre,i.pre)}var Pe=/^[a-z]+[+:-]/i;function N(a,c){if(c===!1||c==null||c==="")return!0;let u=String(c).trim();return!u||u==="*"||u==="latest"||Pe.test(u)?!0:u.split("||").some(i=>$e(a,i.trim()))}function $e(a,c){if(!c||c==="*")return!j(a)?.pre.length;let u=c.split(/\\s+-\\s+/);if(u.length===2){let y=u[0].trim(),w=u[1].trim();return!(!N(a,`>=${y}`)||!N(a,`<=${w}`))}let i=j(a);if(!i)return!1;let h=ve(c);if(h===null)return!0;for(let y of h)if(!Ie(i,a,y))return!1;return!(i.pre.length>0&&!h.some(y=>y.ver.pre.length>0)&&!h.some(w=>w.ver.major===i.major&&w.ver.minor===i.minor&&w.ver.patch===i.patch))}function ve(a){let c=[],u=a.trim().split(/\\s+/).filter(Boolean);if(u.length===0)return null;for(let i of u){let h=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(i);if(!h)return null;let y=h[1],w=h[2],P=_e(y,w);if(P===null)return null;c.push(...P)}return c}function _e(a,c){let u=Le(c);if(!u)return null;let{ver:i,partial:h}=u;switch(a){case"^":{let y=Me(i);return y?[{op:">=",ver:i},{op:"<",ver:y}]:null}case"~":{let y=h>=2?{major:i.major,minor:i.minor+1,patch:0,pre:[]}:{major:i.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:i},{op:"<",ver:y}]}case">=":return[{op:">=",ver:i}];case">":return h===1?[{op:">=",ver:{major:i.major+1,minor:0,patch:0,pre:[]}}]:h===2?[{op:">=",ver:{major:i.major,minor:i.minor+1,patch:0,pre:[]}}]:[{op:">",ver:i}];case"<":return h===1?[{op:"<",ver:{major:i.major,minor:0,patch:0,pre:[]}}]:h===2?[{op:"<",ver:{major:i.major,minor:i.minor,patch:0,pre:[]}}]:[{op:"<",ver:i}];case"<=":return[{op:"<=",ver:i}];case"=":case void 0:return h===1?[{op:">=",ver:i},{op:"<",ver:{major:i.major+1,minor:0,patch:0,pre:[]}}]:h===2?[{op:">=",ver:i},{op:"<",ver:{major:i.major,minor:i.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:i}];default:return null}}function Me(a){return a.major>0?{major:a.major+1,minor:0,patch:0,pre:[]}:a.minor>0?{major:0,minor:a.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:a.patch+1,pre:[]}}function Le(a){let c=a.replace(/^v/,"").trim();if(!c||c==="*"||c==="x"||c==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let u=c.split("."),i=[],h=0;for(let P of u.slice(0,3))if(/^\\d+$/.test(P))i.push(Number(P)),h++;else{if(P==="x"||P==="X"||P==="*")break;break}let y=c.split("-"),w=y.length>1?y.slice(1).join("-").split("+")[0].split("."):[];return h===0&&w.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:i[0]??0,minor:i[1]??0,patch:i[2]??0,pre:w},partial:h}}function Oe(a,c){switch(c){case">=":return a>=0;case">":return a>0;case"<":return a<0;case"<=":return a<=0;case"=":return a===0}}function Ie(a,c,u){let i=`${a.major}.${a.minor}.${a.patch}`+(a.pre.length?`-${a.pre.join(".")}`:"");if(u.upper)return!(!(T(i,`${u.ver.major}.${u.ver.minor}.${u.ver.patch}`+(u.ver.pre.length?`-${u.ver.pre.join(".")}`:""))>=0)||!(T(i,`${u.upper.major}.${u.upper.minor}.${u.upper.patch}`)<0));let h=T(i,`${u.ver.major}.${u.ver.minor}.${u.ver.patch}`+(u.ver.pre.length?`-${u.ver.pre.join(".")}`:"")),y=Oe(h,u.op);return u.ver.pre.length>0&&a.pre.length===0&&(u.op===">"||u.op==="<")?!1:y}var S=class extends Error{code;details;constructor(c,u,i,h){super(`[fulgurjs:${c}] ${u}`,h),this.name="FgError",this.code=c,this.details=i}},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"};var re="5.5.2";var Te="__fulgurjsSetup",xe="__FULGURJS_APP_CONFIG__",G=15e3,ne=2,ke=5,je=3e4,Ne=4e3,Ue=.2;function Ae(){let a=Object.create(null),c=new Map,u=[],i=new Set,h=new Map,y=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),w=new Map,P=new Map,I=new WeakMap,U=new WeakMap,O={},oe=()=>{for(let e of u)try{e.init?.(O)}catch(r){console.warn("[fulgurjs] \\u8FD0\\u884C\\u65F6\\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BE5\\u6269\\u5C55\\u5C06\\u4E0D\\u53EF\\u7528\\uFF1A",e.name,r)}},A=new Map,C,se=e=>{let r=A.get(e);return r||A.set(e,r={}),r},H=()=>globalThis[xe]??{};async function q(e,r,n,s){let o=l=>l instanceof S?l:new S(R.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${s} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${String(l?.message??l)}\n\\u4FEE\\u6CD5\\uFF1A\\u68C0\\u67E5\\u5E76\\u4FEE\\u590D\\u8BE5 ${s} \\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:s},{cause:l});C=e;let t;try{t=r(n)}catch(l){throw o(l)}finally{C=void 0}try{await t}catch(l){throw o(l)}}async function ie(e,r,n,s){e.debug.setup="pending";try{if(e.manifestUrl)try{await K(`${e.name}/${n}`)}catch{}let o=await r.get(n),t=o?.default;if(typeof t!="function")throw new S(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 ${o==null?String(o):typeof t}\\uFF0C\\u5E94\\u4E3A\\u51FD\\u6570\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728 setup \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u4E2D\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u51FD\\u6570\\uFF0C\\u4F8B\\u5982 export default async function setup(context) { ... }\\uFF1B\\u5177\\u540D onSession \\u53EF\\u9009\\u3002`,{remote:e.name,module:n});if(o.onSession!==void 0&&typeof o.onSession!="function")throw new S(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 o.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});s.setupExports=o,await q(e.name,t,{appContext:H(),signal:(s.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(o){throw e.debug.setup="failed",s.setupExports=void 0,o}}async function ae(e,r,n){let s=H(),o=s?.sessionKey;if(typeof o!="string"||o==="")throw new S(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 ${o===void 0?"\\u7F3A\\u5931":JSON.stringify(o)}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5BBF\\u4E3B\\u6BCF\\u6B21\\u767B\\u5F55\\u6216\\u91CD\\u767B\\u65F6\\u751F\\u6210\\u65B0\\u7684\\u975E\\u654F\\u611F\\u767B\\u5F55\\u4EE3\\u6B21 ID\\uFF0C\\u5E76\\u5728\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u9875\\u9762\\u524D\\u8C03\\u7528 provideAppContext({ ..., sessionKey: \'\\u767B\\u5F55\\u4EE3\\u6B21 ID\' })\\uFF1B\\u4E0D\\u8981\\u4F7F\\u7528 token \\u539F\\u6587\\u3002`,{remote:e.name});if(r.sessionPromise&&r.sessionKey===o)return r.sessionPromise;r.controller?.abort();let t=new AbortController;r.controller=t,r.sessionKey=o;let l=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),d=(async()=>{await l,!t.signal.aborted&&await q(e.name,n,{appContext:s,sessionKey:o,signal:t.signal},"onSession")})();return r.sessionPromise=d,d.catch(()=>{r.sessionKey===o&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),d}async function ce(e,r){let n=r?.[Te];if(typeof n!="string"||n==="")return;let s=se(e.name);s.setupPromise||(s.setupPromise=ie(e,r,n,s).catch(t=>{throw s.setupPromise=void 0,t})),await s.setupPromise;let o=s.setupExports?.onSession;typeof o=="function"&&await ae(e,s,o)}function ue(){for(let e of A.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let x=e=>a[e]??=Object.create(null);function $(e){try{O.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}function le(e="default"){return x(e),a}function J(e,r,n,s,o={}){let t=x(e||"default"),l=Object.hasOwn(t,r)?t[r]:void 0,d=l&&typeof l=="object"?l:void 0;d||(d=Object.create(null),t[r]=d),!(Object.hasOwn(d,n)&&d[n])&&(d[n]={version:n,get:s,from:o.from??"unknown",eager:!!o.eager,loaded:!!o.loaded})}function fe(e){let r=(n,s,o)=>{if(n===void 0)return;if(!(typeof n=="number"&&(o?Number.isInteger(n)&&n>=0&&n<=10:Number.isFinite(n)&&n>0)))throw new Error(`[fulgurjs] \\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 ${s} \\u914D\\u7F6E\\u65E0\\u6548\\uFF1A\\u5F53\\u524D\\u4E3A ${String(n)}\\uFF0C\\u5E94\\u4E3A${o?" 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 W(e){for(let r of e){fe(r);let n=c.get(r.name);c.set(r.name,{timeout:G,retries:ne,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??ke,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??je,state:n?.state??"idle",breakerState:n?.breakerState??{fails:0,openUntil:0},entryInflight:n?.entryInflight??new Map,entryFailCounts:n?.entryFailCounts??new Map,debug:n?.debug??{entry:r.entry,status:"idle",setup:"none"}})}}function de(e){W([e])}function me(e){u.push(...e),h.clear(),oe()}function F(e,r,n=!1){let s=r.shareScope||"default",o=r.shareKey||e,l=x(s)[o]||{},d=Object.keys(l).filter(m=>!n||r.singleton||l[m].value!==void 0);if(n&&d.length===0)return;let f=r.requiredVersion,p=d.filter(m=>f===void 0||f===!1||N(m,f)),E;if(r.singleton&&d.length>0){let m=d.filter(g=>l[g].loaded);if(E=[...m.length?m:d].sort(T).pop(),!p.includes(E)){let g=l[E],M=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${o}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u5E94\\u7528\\u8981\\u6C42 ${f??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${d.join("\\u3001")}\\uFF1B\\u4E3A\\u4FDD\\u8BC1\\u5168\\u9875\\u53EA\\u4F7F\\u7528\\u4E00\\u4E2A\\u5B9E\\u4F8B\\uFF0C\\u6700\\u7EC8\\u590D\\u7528 ${g.from} \\u63D0\\u4F9B\\u7684 ${E}\\u3002\n\\u5F71\\u54CD\\uFF1A\\u53EF\\u80FD\\u51FA\\u73B0\\u72B6\\u6001\\u4E0D\\u4E00\\u81F4\\u6216\\u8FD0\\u884C\\u9519\\u8BEF\\uFF0C\\u5177\\u4F53\\u53D6\\u51B3\\u4E8E\\u4E24\\u7AEF API \\u662F\\u5426\\u517C\\u5BB9\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u6838\\u5BF9\\u540E\\u8C03\\u6574 shared.requiredVersion\\uFF1B\\u82E5\\u5FC5\\u987B\\u62D2\\u7EDD\\u4E0D\\u517C\\u5BB9\\u7248\\u672C\\uFF0C\\u8BF7\\u542F\\u7528 strictVersion\\u3002`;if(r.strictVersion){let L=new S(R.SHARE_STRICT_VERSION,M,{shareKey:o,requiredVersion:f});throw $({remote:g.from,error:L}),L}let v=`${s}|${o}|${f??"*"}|${E}|${d.join(",")}`;i.has(v)||(i.add(v),console.warn(`[fulgurjs:MFU-010] ${M}`))}}else if(E=[...p].sort(T).pop(),!E){if(r.strictVersion){let m=new S(R.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${s}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${o}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${f}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${d.join("\\u3001")||"\\u65E0"}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u4FEE\\u6B63 shared.requiredVersion\\u3002`);throw $({remote:o,error:m}),m}return}return l[E]}function X(e,r,n){let s=r.localVersion;if(!s||n===void 0)return;let o=r.shareScope||"default",t=r.shareKey||e,l=x(o),d=Object.hasOwn(l,t)?l[t]:void 0;if(d&&Object.keys(d).length>0){try{let p=F(e,r);p&&p.value===void 0&&p.version===s&&(p.value=n,p.loaded=!0)}catch{}return}J(o,t,s,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let f=l[t]?.[s];f&&(f.value=n)}async function pe(e,r={}){let n=r.shareScope||"default",s=r.shareKey||e,o=x(n)[s]||{},t=F(e,r);if(!t){if(r.fallback){let p=await r.fallback();return X(e,r,p),p}let f=new S(R.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${s}"\\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:s,requiredVersion:r.requiredVersion});throw $({remote:s,error:f}),f}if(O.resolveShare){let f=await O.resolveShare({shareKey:s,shareScope:n,requiredVersion:r.requiredVersion,picked:t,available:Object.values(o)});f&&(t=f)}if(t.value!==void 0)return h.set(y(e,r),t),t.value;if(t.loaded=!0,!t.pendingGet)try{t.pendingGet=t.get()}catch(f){t.pendingGet=Promise.reject(f)}let l=t.pendingGet,d;try{d=await l}catch(f){if(t.value!==void 0)return h.set(y(e,r),t),t.value;throw t.loaded=!1,f}finally{t.pendingGet===l&&(t.pendingGet=void 0)}return t.value===void 0&&(t.value=d),h.set(y(e,r),t),t.value}function ge(e,r={}){return O.resolveShare?h.get(y(e,r))?.value:F(e,r,!0)?.value}function he(e,r,n,s){X(e,{...r,localVersion:n},s)}function B(e){try{let r=new URL(e,typeof location<"u"?location.href:"http://f.invalid");return r.protocol+"//"+r.host+r.pathname}catch{return String(e).replace(/[?#].*$/,"")}}function z(e,r,n){return new Promise((s,o)=>{let t=setTimeout(()=>o(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${n}`)),r);e.then(l=>{clearTimeout(t),s(l)},l=>{clearTimeout(t),o(l)})})}let ye=e=>new Promise(r=>setTimeout(r,e)),Y=new Set;function V(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 s=`${r.name}\\u2194${e.name}`;Y.has(s)||(Y.add(s),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 Z(e,r){let n=r.entryFailCounts.get(e)??0,s=n>0?`${e}${e.includes("?")?"&":"?"}fulgurjs_retry=${n}`:e,o=r.entryInflight.get(e),t=o??import(s);return o||(r.entryInflight.set(e,t),t.catch(()=>{r.entryInflight.delete(e),r.entryFailCounts.set(e,(r.entryFailCounts.get(e)??0)+1)})),z(t,r.timeout??G,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${B(e)}`)}async function Q(e,r){let n=e.shareScope||"default";if(e.container){let t=U.get(e.container);if(t&&t!==n)throw new S(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${t}" \\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 s=e.breakerState;if(s.openUntil>Date.now()){let t=new S(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(s.openUntil).toISOString()} \\u540E\\u5141\\u8BB8\\u91CD\\u8BD5\\u3002\\u8BF7\\u5148\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u670D\\u52A1\\u548C\\u7F51\\u7EDC\\u3002`,{remote:e.name});throw $({remote:e.name,error:t}),t}e.state="loading",e.debug.status="loading";let o=(async()=>{let t=[];if(e.promise)t.push(async()=>{let m=await z(e.promise(),e.timeout??G,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),g=typeof m=="string"?await Z(m,e):m;return V(g,e),g});else for(let m of[e.entry,...e.fallback??[]])t.push(async()=>{let g=await Z(m,e);return V(g,e),g});let l,d,f=!1,p=r?.retries??e.retries??ne;for(let m of t){for(let g=0;g<=p;g++){let M=performance.now();try{l=await m(),e.lastLoadMs=Math.round(performance.now()-M),e.debug.lastLoadMs=e.lastLoadMs,f=!0;break}catch(v){if(d=v,v?.code)throw v;g<p&&await ye(Math.min(Ne,200*2**g)*(1-Ue*(1-2*Math.random())))}}if(f)break}if(!f||!l){let m=B(e.entry),g=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(g.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${m}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),g.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),g.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(g.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${m}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),g.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 S(R.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${m} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${String(d?.message??d)}\n\\u4FEE\\u6CD5\\uFF1A\n${g.join(`\n`)}`,{remote:e.name})}V(l,e);let E=U.get(l);if(E&&E!==n)throw new S(R.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${E}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof l.init=="function"&&await l.init(a),U.set(l,n),e.container=l,e.state="loaded",e.debug.status="loaded",s.fails=0,l})();e.containerPromise=o;try{return await o}catch(t){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=String(t?.message??t),s.fails+=1,s.fails>=e.breakerThreshold&&(s.openUntil=Date.now()+e.breakerResetMs,s.fails=0),t instanceof S)throw $({remote:e.name,error:t}),t;if(t?.code)throw $({remote:e.name,error:t}),t;let l=new S(R.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(t?.message??t)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name});throw $({remote:e.name,error:l}),l}}function D(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:ee(e.slice(r+1))}}function ee(e){return e?e.startsWith(".")?e:`./${e}`:""}async function Se(e,r){let{remote:n,module:s}=D(e);if(s&&C===n)throw new S(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{O.beforeLoadRemote?.({remote:n,module:s})}catch(f){console.warn("[fulgurjs] beforeLoadRemote \\u89C2\\u6D4B\\u94A9\\u5B50\\u6267\\u884C\\u5931\\u8D25\\uFF1B\\u6A21\\u5757\\u52A0\\u8F7D\\u5C06\\u7EE7\\u7EED\\u3002\\u8BF7\\u68C0\\u67E5\\u8BE5\\u94A9\\u5B50\\uFF1A",f)}let o=c.get(n);if(!o)throw new S(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 t;try{let f=s&&o.manifestUrl?K(e):Promise.resolve();[t]=await Promise.all([Q(o,{retries:r?.retries}),f])}catch(f){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u6B63\\u5728\\u4F7F\\u7528\\u663E\\u5F0F\\u914D\\u7F6E\\u7684 fallbackModule\\uFF1B\\u539F\\u59CB\\u9519\\u8BEF\\uFF1A`,f),$({remote:n,error:f}),await r.fallbackModule();throw f}if(!s)return t;await ce(o,t);let l=`${n}@${o.shareScope||"default"}#${s}`;w.has(l)||w.set(l,t.get(s).catch(f=>{throw w.delete(l),f instanceof S||f?.code?f:new S(R.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${s}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(f?.message??f)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:s})}));let d;try{d=await w.get(l)}catch(f){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u6B63\\u5728\\u4F7F\\u7528\\u663E\\u5F0F\\u914D\\u7F6E\\u7684 fallbackModule\\uFF1B\\u539F\\u59CB\\u9519\\u8BEF\\uFF1A`,f),$({remote:n,error:f}),await r.fallbackModule();throw f}try{O.afterLoadRemote?.({remote:n,module:s,module_ns:d})}catch(f){console.warn("[fulgurjs] afterLoadRemote \\u89C2\\u6D4B\\u94A9\\u5B50\\u6267\\u884C\\u5931\\u8D25\\uFF1B\\u5DF2\\u52A0\\u8F7D\\u6A21\\u5757\\u4ECD\\u53EF\\u4F7F\\u7528\\u3002\\u8BF7\\u68C0\\u67E5\\u8BE5\\u94A9\\u5B50\\uFF1A",f)}if(d&&typeof d=="object"&&Object.keys(d).length===0){let f=new S(R.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6A21\\u5757 "${s}" \\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:s});$({remote:n,error:f}),console.error(f.message)}return d}function Ee(e){let r=c.get(e);if(!r)throw new S(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return Q(r)}async function K(e,r={}){let{remote:n,module:s}=D(e),o=c.get(n);if(!o)throw new S(R.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:n});let t=r.mode??"preload",l=(p,E)=>{if(p.sheet)return Promise.resolve();let m=I.get(p);if(m)return m;let g=new Promise(M=>{let v=()=>{p.removeEventListener("load",v),p.removeEventListener("error",L),M()},L=()=>{$({remote:n,error:new S(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${E}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:n})}),v()};p.addEventListener("load",v,{once:!0}),p.addEventListener("error",L,{once:!0}),p.sheet&&v()});return I.set(p,g),g},d=(p,E)=>{if(typeof document>"u")return Promise.resolve();let m=document.querySelector(`link[href="${p}"]`);if(m)return E==="style"&&t==="preload"?I.get(m)??Promise.resolve():Promise.resolve();let g=document.createElement("link");g.rel=E==="style"?"stylesheet":"modulepreload",g.href=p,t==="prefetch"&&(g.fetchPriority="low");let M=E==="style"?l(g,p):Promise.resolve();return document.head.appendChild(g),E==="style"&&t==="preload"?M:Promise.resolve()},f=p=>{let E=typeof document<"u"?document.baseURI:void 0,m=new URL(o.entry,E||"http://fulgurjs.invalid/");return!m.pathname.endsWith("/")&&!m.pathname.split("/").pop().includes(".")&&(m.pathname+="/"),new URL(p,m).href};try{if(o.manifestUrl){let p=P.get(o.manifestUrl);p||(p=fetch(o.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(m=>m.ok?m.json():void 0),P.set(o.manifestUrl,p),p.then(m=>{m||P.delete(o.manifestUrl)},()=>P.delete(o.manifestUrl)));let E=await p;if(E){let m=E.schemaVersion;if(typeof m=="number"&&(!Number.isInteger(m)||m>1)){$({remote:n,error:new S(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(m)}\\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 d(o.entry,"modulepreload");return}await d(o.entry,"modulepreload");let g=E.exposes,M=Array.isArray(g)?g.filter(_=>_&&typeof _=="object").map(_=>[String(_.name??""),_]):g&&typeof g=="object"?Object.entries(g):[],v=s?M.filter(([_,k])=>ee(String(k?.name??_))===s):M,L=[];for(let[,_]of v)if(typeof _?.file=="string"&&await d(f(_.file),"modulepreload"),Array.isArray(_?.css))for(let k of _.css){if(typeof k!="string")continue;let Re=d(f(k),"style");t==="preload"&&L.push(Re)}await Promise.all(L);return}}await d(o.entry,"modulepreload")}catch(p){$({remote:n,error:new S(R.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(p?.message??p)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:n})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=a,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,n]of c)e[r]={...n.debug,entry:n.entry};return e},errors:[]}),{shareScopeMap:a,initSharing:le,registerShare:J,registerRemotes:W,registerRemote:de,registerPlugins:me,loadShare:pe,getLoadedShare:ge,pinLoadedShare:he,loadRemote:Se,getContainer:Ee,preloadRemote:K,parseSpec:D,clearSessionState:ue}}var te=globalThis,b=te.__FULGURJS_RUNTIME__??Ae();te.__FULGURJS_RUNTIME__=b;try{Object.freeze(b)}catch{}var qe=re;function Je(){return b}var We=b.initSharing,Xe=b.registerShare,Be=b.registerRemotes,ze=b.registerRemote,Ye=b.registerPlugins,Ze=b.loadShare,Qe=b.getLoadedShare,er=b.pinLoadedShare,rr=b.loadRemote,nr=b.getContainer,tr=b.preloadRemote,or=b.parseSpec,sr=b.clearSessionState,ir=b.shareScopeMap;function ar(a){if(a&&typeof a=="object"&&"default"in a){let c=a.default;return c!==void 0?c:a}return a}var cr=b;export{sr as clearSessionState,cr as default,nr as getContainer,Qe as getLoadedShare,Je as getRuntime,We as initSharing,rr as loadRemote,Ze as loadShare,or as parseSpec,er as pinLoadedShare,tr as preloadRemote,Ye as registerPlugins,ze as registerRemote,Be as registerRemotes,Xe as registerShare,b as runtime,ir as shareScopeMap,ar as unwrapDefault,qe as version};\n';
|
|
2614
|
+
var runtime_code_gen_default = 'var be=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function j(c){let u=be.exec(String(c).trim());return u?{major:Number(u[1]),minor:Number(u[2]??0),patch:Number(u[3]??0),pre:u[4]?u[4].split("."):[]}:null}function ve(c,u){if(c.length===0&&u.length===0)return 0;if(c.length===0)return 1;if(u.length===0)return-1;let f=Math.max(c.length,u.length);for(let s=0;s<f;s++){let g=c[s],y=u[s];if(g===void 0)return-1;if(y===void 0)return 1;let R=/^\\d+$/.test(g),v=/^\\d+$/.test(y);if(R&&v){let k=Number(g)-Number(y);if(k!==0)return k}else{if(R!==v)return R?-1:1;if(g!==y)return g<y?-1:1}}return 0}function T(c,u){let f=j(c),s=j(u);return!f||!s?c<u?-1:c>u?1:0:f.major!==s.major?f.major-s.major:f.minor!==s.minor?f.minor-s.minor:f.patch!==s.patch?f.patch-s.patch:ve(f.pre,s.pre)}var $e=/^[a-z]+[+:-]/i;function N(c,u){if(u===!1||u==null||u==="")return!0;let f=String(u).trim();return!f||f==="*"||f==="latest"||$e.test(f)?!0:f.split("||").some(s=>Pe(c,s.trim()))}function Pe(c,u){if(!u||u==="*")return!j(c)?.pre.length;let f=u.split(/\\s+-\\s+/);if(f.length===2){let y=f[0].trim(),R=f[1].trim();return!(!N(c,`>=${y}`)||!N(c,`<=${R}`))}let s=j(c);if(!s)return!1;let g=_e(u);if(g===null)return!0;for(let y of g)if(!Ie(s,c,y))return!1;return!(s.pre.length>0&&!g.some(y=>y.ver.pre.length>0)&&!g.some(R=>R.ver.major===s.major&&R.ver.minor===s.minor&&R.ver.patch===s.patch))}function _e(c){let u=[],f=c.trim().split(/\\s+/).filter(Boolean);if(f.length===0)return null;for(let s of f){let g=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(s);if(!g)return null;let y=g[1],R=g[2],v=Le(y,R);if(v===null)return null;u.push(...v)}return u}function Le(c,u){let f=Oe(u);if(!f)return null;let{ver:s,partial:g}=f;switch(c){case"^":{let y=Me(s);return y?[{op:">=",ver:s},{op:"<",ver:y}]:null}case"~":{let y=g>=2?{major:s.major,minor:s.minor+1,patch:0,pre:[]}:{major:s.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:s},{op:"<",ver:y}]}case">=":return[{op:">=",ver:s}];case">":return g===1?[{op:">=",ver:{major:s.major+1,minor:0,patch:0,pre:[]}}]:g===2?[{op:">=",ver:{major:s.major,minor:s.minor+1,patch:0,pre:[]}}]:[{op:">",ver:s}];case"<":return g===1?[{op:"<",ver:{major:s.major,minor:0,patch:0,pre:[]}}]:g===2?[{op:"<",ver:{major:s.major,minor:s.minor,patch:0,pre:[]}}]:[{op:"<",ver:s}];case"<=":return[{op:"<=",ver:s}];case"=":case void 0:return g===1?[{op:">=",ver:s},{op:"<",ver:{major:s.major+1,minor:0,patch:0,pre:[]}}]:g===2?[{op:">=",ver:s},{op:"<",ver:{major:s.major,minor:s.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:s}];default:return null}}function Me(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 Oe(c){let u=c.replace(/^v/,"").trim();if(!u||u==="*"||u==="x"||u==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=u.split("."),s=[],g=0;for(let v of f.slice(0,3))if(/^\\d+$/.test(v))s.push(Number(v)),g++;else{if(v==="x"||v==="X"||v==="*")break;break}let y=u.split("-"),R=y.length>1?y.slice(1).join("-").split("+")[0].split("."):[];return g===0&&R.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:s[0]??0,minor:s[1]??0,patch:s[2]??0,pre:R},partial:g}}function ke(c,u){switch(u){case">=":return c>=0;case">":return c>0;case"<":return c<0;case"<=":return c<=0;case"=":return c===0}}function Ie(c,u,f){let s=`${c.major}.${c.minor}.${c.patch}`+(c.pre.length?`-${c.pre.join(".")}`:"");if(f.upper)return!(!(T(s,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(T(s,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let g=T(s,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),y=ke(g,f.op);return f.ver.pre.length>0&&c.pre.length===0&&(f.op===">"||f.op==="<")?!1:y}var S=class extends Error{code;details;constructor(u,f,s,g){super(`[fulgurjs:${u}] ${f}`,g),this.name="FgError",this.code=u,this.details=s}},E={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014"};var re="5.7.0";var Te="__fulgurjsSetup",xe="__FULGURJS_APP_CONFIG__",q=15e3,ne=2,Ae=5,je=3e4,Ne=4e3,Ue=.2;function Ce(){let c=Object.create(null),u=new Map,f=[],s=new Set,g=new Map,y=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),R=new Map,v=new Map,k=new WeakMap,U=new WeakMap,M={},oe=()=>{for(let e of f)try{e.init?.(M)}catch(r){console.warn("[fulgurjs] \\u8FD0\\u884C\\u65F6\\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BE5\\u6269\\u5C55\\u5C06\\u4E0D\\u53EF\\u7528\\uFF1A",e.name,r)}},C=new Map,F,ie=e=>{let r=C.get(e);return r||C.set(e,r={}),r},H=()=>globalThis[xe]??{};async function G(e,r,n,o){let i=l=>l instanceof S?l:new S(E.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${o} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${String(l?.message??l)}\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:l});F=e;let t;try{t=r(n)}catch(l){throw i(l)}finally{F=void 0}try{await t}catch(l){throw i(l)}}async function se(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await K(`${e.name}/${n}`)}catch{}let i=await r.get(n),t=i?.default;if(typeof t!="function")throw new S(E.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${i==null?String(i):typeof t}\\uFF0C\\u5E94\\u4E3A\\u51FD\\u6570\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728 setup \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u4E2D\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u51FD\\u6570\\uFF0C\\u4F8B\\u5982 export default async function setup(context) { ... }\\uFF1B\\u5177\\u540D onSession \\u53EF\\u9009\\u3002`,{remote:e.name,module:n});if(i.onSession!==void 0&&typeof i.onSession!="function")throw new S(E.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${n}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AonSession \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof i.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});o.setupExports=i,await G(e.name,t,{appContext:H(),signal:(o.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(i){throw e.debug.setup="failed",o.setupExports=void 0,i}}async function ae(e,r,n){let o=H(),i=o?.sessionKey;if(typeof i!="string"||i==="")throw new S(E.SETUP_SESSION_KEY_MISSING,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u58F0\\u660E\\u4E86 onSession\\uFF0C\\u4F46\\u5BBF\\u4E3B\\u5C1A\\u672A\\u63D0\\u4F9B\\u6709\\u6548\\u7684 AppContext.sessionKey\\u3002\n\\u539F\\u56E0\\uFF1A\\u5F53\\u524D\\u503C\\u4E3A ${i===void 0?"\\u7F3A\\u5931":JSON.stringify(i)}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5BBF\\u4E3B\\u6BCF\\u6B21\\u767B\\u5F55\\u6216\\u91CD\\u767B\\u65F6\\u751F\\u6210\\u65B0\\u7684\\u975E\\u654F\\u611F\\u767B\\u5F55\\u4EE3\\u6B21 ID\\uFF0C\\u5E76\\u5728\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u9875\\u9762\\u524D\\u8C03\\u7528 provideAppContext({ ..., sessionKey: \'\\u767B\\u5F55\\u4EE3\\u6B21 ID\' })\\uFF1B\\u4E0D\\u8981\\u4F7F\\u7528 token \\u539F\\u6587\\u3002`,{remote:e.name});if(r.sessionPromise&&r.sessionKey===i)return r.sessionPromise;r.controller?.abort();let t=new AbortController;r.controller=t,r.sessionKey=i;let l=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),d=(async()=>{await l,!t.signal.aborted&&await G(e.name,n,{appContext:o,sessionKey:i,signal:t.signal},"onSession")})();return r.sessionPromise=d,d.catch(()=>{r.sessionKey===i&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),d}async function ce(e,r){let n=r?.[Te];if(typeof n!="string"||n==="")return;let o=ie(e.name);o.setupPromise||(o.setupPromise=se(e,r,n,o).catch(t=>{throw o.setupPromise=void 0,t})),await o.setupPromise;let i=o.setupExports?.onSession;typeof i=="function"&&await ae(e,o,i)}function le(){for(let e of C.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let I=e=>c[e]??=Object.create(null);function $(e){try{M.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}function ue(e="default"){return I(e),c}function B(e,r,n,o,i={}){let t=I(e||"default"),l=Object.hasOwn(t,r)?t[r]:void 0,d=l&&typeof l=="object"?l:void 0;d||(d=Object.create(null),t[r]=d),!(Object.hasOwn(d,n)&&d[n])&&(d[n]={version:n,get:o,from:i.from??"unknown",eager:!!i.eager,loaded:!!i.loaded})}function fe(e){let r=(n,o,i)=>{if(n===void 0)return;if(!(typeof n=="number"&&(i?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${i?" 0 \\u5230 10 \\u7684\\u6574\\u6570":"\\u5927\\u4E8E 0 \\u7684\\u6709\\u9650\\u6570\\u5B57"}\\u3002\\u8BF7\\u4FEE\\u6B63 registerRemote \\u914D\\u7F6E\\u3002`)};r(e.timeout,"timeout"),r(e.retries,"retries",!0),e.breaker&&(r(e.breaker.threshold,"breaker.threshold"),r(e.breaker.resetMs,"breaker.resetMs"))}function J(e){for(let r of e){fe(r);let n=u.get(r.name);u.set(r.name,{timeout:q,retries:ne,...n,...r,breakerThreshold:r.breaker?.threshold??n?.breakerThreshold??Ae,breakerResetMs:r.breaker?.resetMs??n?.breakerResetMs??je,state:n?.state??"idle",breakerState:n?.breakerState??{fails:0,openUntil:0},entryInflight:n?.entryInflight??new Map,entryFailCounts:n?.entryFailCounts??new Map,debug:n?.debug??{entry:r.entry,status:"idle",setup:"none"}})}}function de(e){J([e])}function me(e){f.push(...e),g.clear(),oe()}function x(e,r,n=!1){let o=r.shareScope||"default",i=r.shareKey||e,l=I(o)[i]||{},d=Object.keys(l).filter(p=>!n||r.singleton||l[p].value!==void 0);if(n&&d.length===0)return;let a=r.requiredVersion,m=d.filter(p=>a===void 0||a===!1||N(p,a)),w;if(r.singleton&&d.length>0){let p=d.filter(h=>l[h].loaded);if(w=[...p.length?p:d].sort(T).pop(),!m.includes(w)){let h=l[w],L=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${i}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u5E94\\u7528\\u8981\\u6C42 ${a??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${d.join("\\u3001")}\\uFF1B\\u4E3A\\u4FDD\\u8BC1\\u5168\\u9875\\u53EA\\u4F7F\\u7528\\u4E00\\u4E2A\\u5B9E\\u4F8B\\uFF0C\\u6700\\u7EC8\\u590D\\u7528 ${h.from} \\u63D0\\u4F9B\\u7684 ${w}\\u3002\n\\u5F71\\u54CD\\uFF1A\\u53EF\\u80FD\\u51FA\\u73B0\\u72B6\\u6001\\u4E0D\\u4E00\\u81F4\\u6216\\u8FD0\\u884C\\u9519\\u8BEF\\uFF0C\\u5177\\u4F53\\u53D6\\u51B3\\u4E8E\\u4E24\\u7AEF API \\u662F\\u5426\\u517C\\u5BB9\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u6838\\u5BF9\\u540E\\u8C03\\u6574 shared.requiredVersion\\uFF1B\\u82E5\\u5FC5\\u987B\\u62D2\\u7EDD\\u4E0D\\u517C\\u5BB9\\u7248\\u672C\\uFF0C\\u8BF7\\u542F\\u7528 strictVersion\\u3002`;if(r.strictVersion){let O=new S(E.SHARE_STRICT_VERSION,L,{shareKey:i,requiredVersion:a});throw $({remote:h.from,error:O}),O}let P=`${o}|${i}|${a??"*"}|${w}|${d.join(",")}`;s.has(P)||(s.add(P),console.warn(`[fulgurjs:MFU-010] ${L}`))}}else if(w=[...m].sort(T).pop(),!w){if(r.strictVersion){let p=new S(E.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${o}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${i}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${a}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${d.join("\\u3001")||"\\u65E0"}\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u7EDF\\u4E00\\u5BBF\\u4E3B\\u4E0E\\u8FDC\\u7A0B\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u6216\\u4FEE\\u6B63 shared.requiredVersion\\u3002`);throw $({remote:i,error:p}),p}return}return l[w]}function W(e,r,n){let o=r.localVersion;if(!o||n===void 0)return;let i=r.shareScope||"default",t=r.shareKey||e,l=I(i),d=Object.hasOwn(l,t)?l[t]:void 0;if(d&&Object.keys(d).length>0){try{let m=x(e,r);m&&m.value===void 0&&(m.version===o?(m.value=n,m.loaded=!0):r.singleton&&(m.value=n,m.loaded=!0,console.warn(`[fulgurjs:MFU-010] \\u5171\\u4EAB\\u5355\\u4F8B "${t}" \\u7684\\u9996\\u6B21\\u6D88\\u8D39\\u8005\\u4EE5\\u672C\\u5730\\u7248\\u672C ${o} \\u63A5\\u7BA1\\u4E86 ${m.from} \\u58F0\\u660E\\u7684 ${m.version} \\u69FD\\u4F4D\\uFF08\\u8BE5\\u7248\\u672C\\u5C1A\\u672A\\u52A0\\u8F7D\\uFF09\\u3002`)))}catch{}return}B(i,t,o,()=>Promise.resolve(n),{from:"fulgurjs:local-fallback",loaded:!0});let a=l[t]?.[o];a&&(a.value=n)}async function pe(e,r={}){let n=r.shareScope||"default",o=r.shareKey||e,i=I(n)[o]||{},t=x(e,r);if(!t){if(r.fallback){let m=await r.fallback();return W(e,r,m),m}let a=new S(E.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${o}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u4F5C\\u7528\\u57DF "${n}" \\u4E2D\\u6CA1\\u6709\\u7B26\\u5408 ${r.requiredVersion??"\\u4EFB\\u610F\\u7248\\u672C"} \\u8981\\u6C42\\u7684\\u7248\\u672C\\uFF0C\\u4E14\\u672A\\u914D\\u7F6E\\u672C\\u5730\\u526F\\u672C\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728\\u5BBF\\u4E3B\\u6216\\u8FDC\\u7A0B\\u6CE8\\u518C\\u8BE5\\u4F9D\\u8D56\\uFF0C\\u6216\\u4E3A shared \\u914D\\u7F6E\\u53EF\\u7528\\u7684\\u672C\\u5730\\u526F\\u672C\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion});throw $({remote:o,error:a}),a}if(M.resolveShare){let a=await M.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:t,available:Object.values(i)});a&&(t=a)}if(t.value!==void 0)return g.set(y(e,r),t),t.value;if(t.loaded=!0,!t.pendingGet)try{t.pendingGet=t.get()}catch(a){t.pendingGet=Promise.reject(a)}let l=t.pendingGet,d;try{d=await l}catch(a){if(t.value!==void 0)return g.set(y(e,r),t),t.value;throw t.loaded=!1,a}finally{t.pendingGet===l&&(t.pendingGet=void 0)}return t.value===void 0&&(t.value=d),g.set(y(e,r),t),t.value}function ge(e,r={}){return M.resolveShare?g.get(y(e,r))?.value:x(e,r,!0)?.value}function he(e,r,n,o){W(e,{...r,localVersion:n},o)}function ye(e,r){let n=r.shareScope||"default",o=r.shareKey||e;if(M.resolveShare){let t=y(e,r),l=g.get(t);if(l&&l.value!==void 0)return{kind:"ready",value:l.value};let d=M.resolveShare({shareKey:o,shareScope:n,requiredVersion:r.requiredVersion,picked:x(e,r),available:Object.values(I(n)[o]||{})});if(d&&typeof d.then=="function")throw new S(E.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u5BF9\\u5171\\u4EAB "${o}" \\u8FD4\\u56DE\\u4E86 Promise\\uFF0C\\u4F46\\u8BE5\\u5171\\u4EAB\\u6B63\\u88AB\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u6D88\\u8D39\\uFF08Vite 8 \\u540C\\u6B65\\u534F\\u5546\\u95E8\\u9762\\uFF09\\u3002\n\\u539F\\u56E0\\uFF1A\\u6A21\\u5757\\u6C42\\u503C\\u671F\\u65E0\\u6CD5\\u7B49\\u5F85\\u5F02\\u6B65\\u51B3\\u7B56\\uFF1B\\u9759\\u6001\\u5BFC\\u5165\\u4E0D\\u80FD\\u9759\\u9ED8\\u5FFD\\u7565 hook \\u51B3\\u7B56\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u8BA9 resolveShare \\u5BF9\\u8BE5\\u952E\\u540C\\u6B65\\u8FD4\\u56DE picked\\uFF08\\u4ECE available \\u4E2D\\u9009\\u62E9\\uFF09\\uFF1B\\u6216\\u8BA9\\u9996\\u6B21\\u6D88\\u8D39\\u5148\\u7ECF\\u4E00\\u6B21\\u52A8\\u6001 loadShare \\u5B8C\\u6210\\u534F\\u5546\\uFF08\\u6210\\u529F\\u5FEB\\u7167\\u4F1A\\u88AB\\u9759\\u6001\\u5BFC\\u5165\\u590D\\u7528\\uFF09\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0});let a=d;if(a){if(a.value!==void 0)return g.set(y(e,r),a),{kind:"ready",value:a.value};if(a.version!==void 0&&a.version===r.localVersion)return{kind:"local"};throw new S(E.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1AresolveShare \\u4E3A\\u5171\\u4EAB "${o}" \\u9009\\u62E9\\u4E86 ${a.version??"\\u672A\\u5C31\\u7EEA\\u6761\\u76EE"}\\uFF08\\u5C1A\\u672A\\u52A0\\u8F7D\\uFF09\\uFF0C\\u540C\\u6B65\\u9759\\u6001\\u5BFC\\u5165\\u65E0\\u6CD5\\u7B49\\u5F85\\u5176\\u5B9E\\u4F8B\\u5C31\\u7EEA\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u8BA9 hook \\u4F18\\u5148\\u9009\\u62E9\\u5DF2\\u5C31\\u7EEA\\u5B9E\\u4F8B\\u6216\\u672C\\u5E94\\u7528\\u672C\\u5730\\u7248\\u672C\\uFF08${r.localVersion??"\\u672A\\u58F0\\u660E"}\\uFF09\\uFF0C\\u6216\\u5148\\u7ECF\\u52A8\\u6001 loadShare \\u5B8C\\u6210\\u534F\\u5546\\u3002`,{shareKey:o,requiredVersion:r.requiredVersion,syncUnsupported:!0})}}let i=x(e,r);if(!i)return{kind:"local"};if(i.value!==void 0)return{kind:"ready",value:i.value};if(i.version!==void 0&&i.version===r.localVersion)return{kind:"local"};if(r.singleton){if(r.strictVersion)throw new S(E.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${o}" \\u9009\\u4E2D\\u4E86 ${i.from} \\u63D0\\u4F9B\\u7684 ${i.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\\u5355\\u4F8B\\u5FC5\\u987B\\u5168\\u9875\\u4E00\\u81F4\\uFF0C\\u4E0D\\u80FD\\u9759\\u9ED8\\u6539\\u7528\\u672C\\u5730\\u526F\\u672C\\u5206\\u88C2\\u5B9E\\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 t=`${n}|${o}|${i.version}|${r.localVersion}`;return s.has(t)||(s.add(t),console.warn(`[fulgurjs:MFU-010] \\u5171\\u4EAB\\u5355\\u4F8B "${o}"\\uFF1A\\u4F5C\\u7528\\u57DF\\u4E2D ${i.from} \\u63D0\\u4F9B\\u7684 ${i.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}" \\u7684\\u540C\\u6B65\\u9759\\u6001\\u6D88\\u8D39\\u4F7F\\u7528\\u672C\\u5730\\u526F\\u672C ${r.localVersion??""}\\uFF08\\u4F5C\\u7528\\u57DF\\u4E2D\\u6EE1\\u8DB3\\u8981\\u6C42\\u7684\\u53E6\\u4E00\\u7248\\u672C ${i.version} \\u5C1A\\u672A\\u5C31\\u7EEA\\uFF0C\\u65E0\\u6CD5\\u540C\\u6B65\\u7B49\\u5F85\\uFF09\\uFF1B\\u975E\\u5355\\u4F8B\\u5141\\u8BB8\\u591A\\u7248\\u672C\\u5171\\u5B58\\u3002`),{kind:"local"}}function X(e){try{let r=new URL(e,typeof location<"u"?location.href:"http://f.invalid");return r.protocol+"//"+r.host+r.pathname}catch{return String(e).replace(/[?#].*$/,"")}}function z(e,r,n){return new Promise((o,i)=>{let t=setTimeout(()=>i(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${n}`)),r);e.then(l=>{clearTimeout(t),o(l)},l=>{clearTimeout(t),i(l)})})}let Se=e=>new Promise(r=>setTimeout(r,e)),Y=new Set;function V(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}`;Y.has(o)||(Y.add(o),console.warn(`[fulgurjs] ${n} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`))}else throw Object.assign(new Error(n),{code:E.REMOTE_NAME_MISMATCH})}}async function Z(e,r){let n=r.entryFailCounts.get(e)??0,o=n>0?`${e}${e.includes("?")?"&":"?"}fulgurjs_retry=${n}`:e,i=r.entryInflight.get(e),t=i??import(o);return i||(r.entryInflight.set(e,t),t.catch(()=>{r.entryInflight.delete(e),r.entryFailCounts.set(e,(r.entryFailCounts.get(e)??0)+1)})),z(t,r.timeout??q,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${X(e)}`)}async function Q(e,r){let n=e.shareScope||"default";if(e.container){let t=U.get(e.container);if(t&&t!==n)throw new S(E.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${t}" \\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 t=new S(E.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u8FDE\\u7EED\\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u7194\\u65AD\\u5668\\u5DF2\\u5F00\\u542F\\uFF1B\\u5C06\\u5728 ${new Date(o.openUntil).toISOString()} \\u540E\\u5141\\u8BB8\\u91CD\\u8BD5\\u3002\\u8BF7\\u5148\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u670D\\u52A1\\u548C\\u7F51\\u7EDC\\u3002`,{remote:e.name});throw $({remote:e.name,error:t}),t}e.state="loading",e.debug.status="loading";let i=(async()=>{let t=[];if(e.promise)t.push(async()=>{let p=await z(e.promise(),e.timeout??q,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),h=typeof p=="string"?await Z(p,e):p;return V(h,e),h});else for(let p of[e.entry,...e.fallback??[]])t.push(async()=>{let h=await Z(p,e);return V(h,e),h});let l,d,a=!1,m=r?.retries??e.retries??ne;for(let p of t){for(let h=0;h<=m;h++){let L=performance.now();try{l=await p(),e.lastLoadMs=Math.round(performance.now()-L),e.debug.lastLoadMs=e.lastLoadMs,a=!0;break}catch(P){if(d=P,P?.code)throw P;h<m&&await Se(Math.min(Ne,200*2**h)*(1-Ue*(1-2*Math.random())))}}if(a)break}if(!a||!l){let p=X(e.entry),h=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(h.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${p}\\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 ${p}\\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 S(E.REMOTE_LOAD_FAILED,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u4ECE ${p} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${String(d?.message??d)}\n\\u4FEE\\u6CD5\\uFF1A\n${h.join(`\n`)}`,{remote:e.name})}V(l,e);let w=U.get(l);if(w&&w!==n)throw new S(E.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${w}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${n}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof l.init=="function"&&await l.init(c),U.set(l,n),e.container=l,e.state="loaded",e.debug.status="loaded",o.fails=0,l})();e.containerPromise=i;try{return await i}catch(t){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=String(t?.message??t),o.fails+=1,o.fails>=e.breakerThreshold&&(o.openUntil=Date.now()+e.breakerResetMs,o.fails=0),t instanceof S)throw $({remote:e.name,error:t}),t;if(t?.code)throw $({remote:e.name,error:t}),t;let l=new S(E.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(t?.message??t)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name});throw $({remote:e.name,error:l}),l}}function D(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:ee(e.slice(r+1))}}function ee(e){return e?e.startsWith(".")?e:`./${e}`:""}async function Ee(e,r){let{remote:n,module:o}=D(e);if(o&&F===n)throw new S(E.SETUP_RECURSION,`\\u73B0\\u8C61\\uFF1A\\u52A0\\u8F7D "${e}" \\u65F6\\uFF0C\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 setup/onSession \\u53C8\\u540C\\u6B65\\u52A0\\u8F7D\\u4E86\\u81EA\\u8EAB\\u6A21\\u5757\\uFF0C\\u5F62\\u6210\\u5FAA\\u73AF\\u7B49\\u5F85\\u3002\n\\u539F\\u56E0\\uFF1A\\u521D\\u59CB\\u5316\\u5C1A\\u672A\\u5B8C\\u6210\\uFF0C\\u4E0D\\u80FD\\u7B49\\u5F85\\u81EA\\u8EAB\\u7684\\u521D\\u59CB\\u5316\\u7ED3\\u679C\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u4E0D\\u8981\\u5728 setup/onSession \\u4E2D\\u52A0\\u8F7D\\u540C\\u4E00\\u8FDC\\u7A0B\\u7684\\u6A21\\u5757\\uFF1B\\u8BF7\\u5728\\u9875\\u9762\\u7EC4\\u4EF6\\u4E2D\\u52A0\\u8F7D\\uFF0C\\u6216\\u901A\\u8FC7 context \\u89E3\\u8026\\u3002`,{remote:n});try{M.beforeLoadRemote?.({remote:n,module:o})}catch(a){console.warn("[fulgurjs] beforeLoadRemote \\u89C2\\u6D4B\\u94A9\\u5B50\\u6267\\u884C\\u5931\\u8D25\\uFF1B\\u6A21\\u5757\\u52A0\\u8F7D\\u5C06\\u7EE7\\u7EED\\u3002\\u8BF7\\u68C0\\u67E5\\u8BE5\\u94A9\\u5B50\\uFF1A",a)}let i=u.get(n);if(!i)throw new S(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:n});let t;try{let a=o&&i.manifestUrl?K(e):Promise.resolve();[t]=await Promise.all([Q(i,{retries:r?.retries}),a])}catch(a){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u6B63\\u5728\\u4F7F\\u7528\\u663E\\u5F0F\\u914D\\u7F6E\\u7684 fallbackModule\\uFF1B\\u539F\\u59CB\\u9519\\u8BEF\\uFF1A`,a),$({remote:n,error:a}),await r.fallbackModule();throw a}if(!o)return t;await ce(i,t);let l=`${n}@${i.shareScope||"default"}#${o}`;R.has(l)||R.set(l,t.get(o).catch(a=>{throw R.delete(l),a instanceof S||a?.code?a:new S(E.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u52A0\\u8F7D\\u6A21\\u5757 "${o}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(a?.message??a)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:n,module:o})}));let d;try{d=await R.get(l)}catch(a){if(r?.fallbackModule)return console.error(`[fulgurjs] \\u8FDC\\u7A0B\\u6A21\\u5757 "${e}" \\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u6B63\\u5728\\u4F7F\\u7528\\u663E\\u5F0F\\u914D\\u7F6E\\u7684 fallbackModule\\uFF1B\\u539F\\u59CB\\u9519\\u8BEF\\uFF1A`,a),$({remote:n,error:a}),await r.fallbackModule();throw a}try{M.afterLoadRemote?.({remote:n,module:o,module_ns:d})}catch(a){console.warn("[fulgurjs] afterLoadRemote \\u89C2\\u6D4B\\u94A9\\u5B50\\u6267\\u884C\\u5931\\u8D25\\uFF1B\\u5DF2\\u52A0\\u8F7D\\u6A21\\u5757\\u4ECD\\u53EF\\u4F7F\\u7528\\u3002\\u8BF7\\u68C0\\u67E5\\u8BE5\\u94A9\\u5B50\\uFF1A",a)}if(d&&typeof d=="object"&&Object.keys(d).length===0){let a=new S(E.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6A21\\u5757 "${o}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:n,module:o});$({remote:n,error:a}),console.error(a.message)}return d}function we(e){let r=u.get(e);if(!r)throw new S(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:e});return Q(r)}async function K(e,r={}){let{remote:n,module:o}=D(e),i=u.get(n);if(!i)throw new S(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:n});let t=r.mode??"preload",l=(m,w)=>{if(m.sheet)return Promise.resolve();let p=k.get(m);if(p)return p;let h=new Promise(L=>{let P=()=>{m.removeEventListener("load",P),m.removeEventListener("error",O),L()},O=()=>{$({remote:n,error:new S(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${w}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:n})}),P()};m.addEventListener("load",P,{once:!0}),m.addEventListener("error",O,{once:!0}),m.sheet&&P()});return k.set(m,h),h},d=(m,w)=>{if(typeof document>"u")return Promise.resolve();let p=document.querySelector(`link[href="${m}"]`);if(p)return w==="style"&&t==="preload"?k.get(p)??Promise.resolve():Promise.resolve();let h=document.createElement("link");h.rel=w==="style"?"stylesheet":"modulepreload",h.href=m,t==="prefetch"&&(h.fetchPriority="low");let L=w==="style"?l(h,m):Promise.resolve();return document.head.appendChild(h),w==="style"&&t==="preload"?L:Promise.resolve()},a=m=>{let w=typeof document<"u"?document.baseURI:void 0,p=new URL(i.entry,w||"http://fulgurjs.invalid/");return!p.pathname.endsWith("/")&&!p.pathname.split("/").pop().includes(".")&&(p.pathname+="/"),new URL(m,p).href};try{if(i.manifestUrl){let m=v.get(i.manifestUrl);m||(m=fetch(i.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(p=>p.ok?p.json():void 0),v.set(i.manifestUrl,m),m.then(p=>{p||v.delete(i.manifestUrl)},()=>v.delete(i.manifestUrl)));let w=await m;if(w){let p=w.schemaVersion;if(typeof p=="number"&&(!Number.isInteger(p)||p>1)){$({remote:n,error:new S(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(p)}\\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 d(i.entry,"modulepreload");return}await d(i.entry,"modulepreload");let h=w.exposes,L=Array.isArray(h)?h.filter(_=>_&&typeof _=="object").map(_=>[String(_.name??""),_]):h&&typeof h=="object"?Object.entries(h):[],P=o?L.filter(([_,A])=>ee(String(A?.name??_))===o):L,O=[];for(let[,_]of P)if(typeof _?.file=="string"&&await d(a(_.file),"modulepreload"),Array.isArray(_?.css))for(let A of _.css){if(typeof A!="string")continue;let Re=d(a(A),"style");t==="preload"&&O.push(Re)}await Promise.all(O);return}}await d(i.entry,"modulepreload")}catch(m){$({remote:n,error:new S(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${n}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(m?.message??m)}\\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 u)e[r]={...n.debug,entry:n.entry};return e},errors:[]}),{shareScopeMap:c,initSharing:ue,registerShare:B,registerRemotes:J,registerRemote:de,registerPlugins:me,loadShare:pe,loadShareSync:ye,getLoadedShare:ge,pinLoadedShare:he,loadRemote:Ee,getContainer:we,preloadRemote:K,parseSpec:D,clearSessionState:le}}var te=globalThis,b=te.__FULGURJS_RUNTIME__??Ce();te.__FULGURJS_RUNTIME__=b;try{Object.freeze(b)}catch{}var Be=re;function Je(){return b}var We=b.initSharing,Xe=b.registerShare,ze=b.registerRemotes,Ye=b.registerRemote,Ze=b.registerPlugins,Qe=b.loadShare,er=b.getLoadedShare,rr=b.loadShareSync,nr=b.pinLoadedShare,tr=b.loadRemote,or=b.getContainer,ir=b.preloadRemote,sr=b.parseSpec,ar=b.clearSessionState,cr=b.shareScopeMap;function lr(c){if(c&&typeof c=="object"&&"default"in c){let u=c.default;return u!==void 0?u:c}return c}var ur=b;export{ar as clearSessionState,ur as default,or as getContainer,er as getLoadedShare,Je as getRuntime,We as initSharing,tr as loadRemote,Qe as loadShare,rr as loadShareSync,sr as parseSpec,nr as pinLoadedShare,ir as preloadRemote,Ze as registerPlugins,Ye as registerRemote,ze as registerRemotes,Xe as registerShare,b as runtime,cr as shareScopeMap,lr as unwrapDefault,Be as version};\n';
|
|
2319
2615
|
|
|
2320
2616
|
// src/index.ts
|
|
2321
2617
|
function readRuntimeCode() {
|
|
@@ -2394,6 +2690,16 @@ function providerChunkOf(id, roots) {
|
|
|
2394
2690
|
if (!provider) return void 0;
|
|
2395
2691
|
return "fulgurjs-provider-" + (provider.shareKey.replace(/[^A-Za-z0-9_-]/g, "_") || "unknown");
|
|
2396
2692
|
}
|
|
2693
|
+
async function resolveSharedImportTarget(item, root) {
|
|
2694
|
+
const specifier = item.import;
|
|
2695
|
+
if (typeof specifier !== "string") return item.shareKey;
|
|
2696
|
+
try {
|
|
2697
|
+
const resolved = await this.resolve?.(specifier, path6.join(root, "package.json"), { skipSelf: true });
|
|
2698
|
+
if (resolved?.id) return resolved.id;
|
|
2699
|
+
} catch {
|
|
2700
|
+
}
|
|
2701
|
+
return specifier;
|
|
2702
|
+
}
|
|
2397
2703
|
function federation(options) {
|
|
2398
2704
|
let remoteSchemaPromise = null;
|
|
2399
2705
|
const state = {
|
|
@@ -2478,8 +2784,9 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2478
2784
|
`;
|
|
2479
2785
|
}
|
|
2480
2786
|
};
|
|
2787
|
+
const isVite8Prebundle = Number((readInstalledVersion(root, "vite") ?? "0").split(".")[0]) >= 8;
|
|
2481
2788
|
extra.optimizeDeps = {
|
|
2482
|
-
esbuildOptions: { plugins: [sharedExternal] },
|
|
2789
|
+
...isVite8Prebundle ? {} : { esbuildOptions: { plugins: [sharedExternal] } },
|
|
2483
2790
|
rolldownOptions: { plugins: [rolldownShared] }
|
|
2484
2791
|
};
|
|
2485
2792
|
}
|
|
@@ -2804,6 +3111,9 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2804
3111
|
if (!names.includes(compat)) names.push(compat);
|
|
2805
3112
|
}
|
|
2806
3113
|
}
|
|
3114
|
+
if (state.rolldownBuild) {
|
|
3115
|
+
return genSharedNsFacadeSync(item, names, await resolveSharedImportTarget.call(this, item, state.normalized.root));
|
|
3116
|
+
}
|
|
2807
3117
|
return genSharedNsFacade(item, serializeShareCallForFacade(item), names, state.facadeDynamic);
|
|
2808
3118
|
}
|
|
2809
3119
|
if (clean.startsWith("virtual:fulgurjs-shared:") && state.normalized) {
|
|
@@ -2824,6 +3134,9 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2824
3134
|
}
|
|
2825
3135
|
const item = state.normalized.shared.find((x) => x.shareKey === entry.shareKey);
|
|
2826
3136
|
if (!item || item.import === false) return null;
|
|
3137
|
+
if (state.rolldownBuild) {
|
|
3138
|
+
return genBindingFacadeSync(item, entry.bindings, await resolveSharedImportTarget.call(this, item, state.normalized.root));
|
|
3139
|
+
}
|
|
2827
3140
|
const opts = [
|
|
2828
3141
|
"shareScope: " + JSON.stringify(item.shareScope),
|
|
2829
3142
|
"shareKey: " + JSON.stringify(item.shareKey),
|
|
@@ -3088,7 +3401,7 @@ ${code}`, map: null };
|
|
|
3088
3401
|
order: "pre",
|
|
3089
3402
|
handler(code, chunk) {
|
|
3090
3403
|
if (!state.rolldownBuild || state.command !== "build") return null;
|
|
3091
|
-
const result = repairRolldownAsyncMarks(code,
|
|
3404
|
+
const result = repairRolldownAsyncMarks(code, chunk.fileName);
|
|
3092
3405
|
if (!result) return null;
|
|
3093
3406
|
debugLog("v8-async-fix", { stage: "renderChunk", file: chunk.fileName, repaired: result.repaired });
|
|
3094
3407
|
return result.code;
|
|
@@ -3125,19 +3438,48 @@ ${code}`, map: null };
|
|
|
3125
3438
|
};
|
|
3126
3439
|
}
|
|
3127
3440
|
}
|
|
3441
|
+
const moduleToChunk = /* @__PURE__ */ new Map();
|
|
3442
|
+
for (const [fileName, chunk] of Object.entries(bundle)) {
|
|
3443
|
+
if (chunk.type !== "chunk") continue;
|
|
3444
|
+
for (const moduleId of Object.keys(chunk.modules ?? {})) {
|
|
3445
|
+
if (!moduleToChunk.has(moduleId)) moduleToChunk.set(moduleId, fileName);
|
|
3446
|
+
}
|
|
3447
|
+
}
|
|
3128
3448
|
for (const e of n.exposes) {
|
|
3129
3449
|
const abs = state.exposeAbsPaths[e.import];
|
|
3130
3450
|
const hit = abs ? facadeToChunk[abs] : void 0;
|
|
3131
|
-
if (hit)
|
|
3451
|
+
if (hit) {
|
|
3452
|
+
state.exposeFiles[e.name] = hit;
|
|
3453
|
+
continue;
|
|
3454
|
+
}
|
|
3455
|
+
const merged = abs ? moduleToChunk.get(abs) : void 0;
|
|
3456
|
+
if (merged) {
|
|
3457
|
+
state.exposeFiles[e.name] = { file: merged, css: collectStaticCss(merged) };
|
|
3458
|
+
}
|
|
3132
3459
|
}
|
|
3133
3460
|
const entryChunkName = Object.keys(bundle).find((k) => bundle[k].type === "chunk" && k === n.filename);
|
|
3134
3461
|
const entryChunk = entryChunkName ? bundle[entryChunkName] : void 0;
|
|
3135
|
-
if (entryChunk && entryChunk.type === "chunk" && /import\((['"])[^'")]+\1\)/.test(entryChunk.code)) {
|
|
3462
|
+
if (entryChunk && entryChunk.type === "chunk" && /import\((['"`])[^'"`)]+\1\)/.test(entryChunk.code)) {
|
|
3136
3463
|
const helper = genProdRetryHelper();
|
|
3137
3464
|
entryChunk.code = entryChunk.code.replace(
|
|
3138
|
-
/import\((['"])([^'")]+)\1\)/g,
|
|
3465
|
+
/import\((['"`])([^'"`)]+)\1\)/g,
|
|
3139
3466
|
(_m, q, u) => `__fgR(${q}${u}${q})`
|
|
3140
3467
|
);
|
|
3468
|
+
if (state.rolldownBuild) {
|
|
3469
|
+
const depsArrayMatch = /__vite__mapDeps=\(i,m=__vite__mapDeps,d=\(m\.f\|\|\(m\.f=(\[[^\]]*\])\)\)\)=>/.exec(entryChunk.code);
|
|
3470
|
+
if (depsArrayMatch) {
|
|
3471
|
+
try {
|
|
3472
|
+
const deps = JSON.parse(depsArrayMatch[1].replace(/`/g, '"').replace(/'/g, '"'));
|
|
3473
|
+
const cssOnly = new Set(deps.map((d, i) => /\.(css|scss|less)$/.test(d) ? i : -1).filter((i) => i >= 0));
|
|
3474
|
+
entryChunk.code = entryChunk.code.replace(/__vite__mapDeps\(\[([\d,\s]*)\]\)/g, (m, list) => {
|
|
3475
|
+
const kept = list.split(",").map((x) => x.trim()).filter(Boolean).map(Number).filter((i) => cssOnly.has(i));
|
|
3476
|
+
return `__vite__mapDeps([${kept.join(",")}])`;
|
|
3477
|
+
});
|
|
3478
|
+
debugLog("manifest", { stage: "generateBundle", mapDepsCssOnly: true, kept: cssOnly.size, total: deps.length });
|
|
3479
|
+
} catch {
|
|
3480
|
+
}
|
|
3481
|
+
}
|
|
3482
|
+
}
|
|
3141
3483
|
entryChunk.code = `${helper}
|
|
3142
3484
|
${entryChunk.code}`;
|
|
3143
3485
|
debugLog("manifest", { stage: "generateBundle", retryBust: "remoteEntry loaders wrapped" });
|