@fulgurjs/federation 5.5.1 → 5.6.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 +17 -0
- package/dist/index.cjs +432 -89
- package/dist/index.js +432 -89
- package/dist/runtime.js +1 -1
- package/examples/bridge/react-host/package-lock.json +5 -5
- package/examples/bridge/react-host/package.json +1 -1
- package/examples/bridge/react-remote/package-lock.json +5 -5
- package/examples/bridge/react-remote/package.json +1 -1
- package/examples/bridge/vue-host/package-lock.json +5 -5
- package/examples/bridge/vue-host/package.json +1 -1
- package/examples/bridge/vue-remote/package-lock.json +5 -5
- package/examples/bridge/vue-remote/package.json +1 -1
- package/examples/react/host/package-lock.json +5 -5
- package/examples/react/host/package.json +1 -1
- package/examples/react/remote/package-lock.json +5 -5
- package/examples/react/remote/package.json +1 -1
- package/examples/vue/host/package-lock.json +5 -5
- package/examples/vue/host/package.json +1 -1
- package/examples/vue/remote/package-lock.json +5 -5
- 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.6.0";
|
|
12
12
|
|
|
13
13
|
// src/dev-cors.ts
|
|
14
14
|
function normalizeDevCorsOrigins(input) {
|
|
@@ -734,6 +734,61 @@ function genBindingFacade(item, bindings, loadShareCall, dynamic = false) {
|
|
|
734
734
|
lines.push("");
|
|
735
735
|
return lines.join("\n");
|
|
736
736
|
}
|
|
737
|
+
function shareOptsLines(item) {
|
|
738
|
+
return [
|
|
739
|
+
`shareScope: ${JSON.stringify(item.shareScope)}`,
|
|
740
|
+
`shareKey: ${JSON.stringify(item.shareKey)}`,
|
|
741
|
+
...item.requiredVersion !== false ? [`requiredVersion: ${JSON.stringify(item.requiredVersion)}`] : [],
|
|
742
|
+
...item.singleton ? ["singleton: true"] : [],
|
|
743
|
+
...item.strictVersion ? ["strictVersion: true"] : []
|
|
744
|
+
];
|
|
745
|
+
}
|
|
746
|
+
function genBindingFacadeSync(item, bindings, importTarget) {
|
|
747
|
+
const opts = shareOptsLines(item);
|
|
748
|
+
const lines = [
|
|
749
|
+
`import { getLoadedShare as __fulgurjs_gls, pinLoadedShare as __fulgurjs_pin, unwrapDefault as __fulgurjsU } from "virtual:fulgurjs-runtime";`,
|
|
750
|
+
`import * as __fulgurjs_local from ${JSON.stringify(importTarget)};`,
|
|
751
|
+
// strictVersion 版本冲突时 getLoadedShare 会抛 MFU-003:同步门面与 TLA 路径的
|
|
752
|
+
// loadShare→fallback 语义对齐——回退本地副本,不让协商冲突杀死模块求值
|
|
753
|
+
`let __fulgurjs_snap;`,
|
|
754
|
+
`try { __fulgurjs_snap = __fulgurjs_gls(${JSON.stringify(item.shareKey)}, { ${opts.join(", ")} }); } catch {}`,
|
|
755
|
+
`if (__fulgurjs_snap === undefined) __fulgurjs_pin(${JSON.stringify(item.shareKey)}, { ${opts.join(", ")} }, ${JSON.stringify(item.version)}, __fulgurjs_local);`,
|
|
756
|
+
`const __fulgurjs_m = __fulgurjs_snap ?? __fulgurjs_local;`
|
|
757
|
+
];
|
|
758
|
+
const seen = /* @__PURE__ */ new Set();
|
|
759
|
+
for (const bRaw of bindings) {
|
|
760
|
+
if (bRaw === "default") continue;
|
|
761
|
+
const asMatch = bRaw.match(/^(.*?)\s+as\s+(.+)$/);
|
|
762
|
+
const imported = (asMatch ? asMatch[1] : bRaw).trim();
|
|
763
|
+
if (seen.has(imported)) continue;
|
|
764
|
+
seen.add(imported);
|
|
765
|
+
lines.push(`export const ${imported} = __fulgurjs_m.${imported};`);
|
|
766
|
+
}
|
|
767
|
+
lines.push(`export default __fulgurjsU(__fulgurjs_m);`);
|
|
768
|
+
lines.push("");
|
|
769
|
+
return lines.join("\n");
|
|
770
|
+
}
|
|
771
|
+
function genSharedNsFacadeSync(item, exportNames, importTarget) {
|
|
772
|
+
const opts = shareOptsLines(item);
|
|
773
|
+
const lines = [
|
|
774
|
+
`import { getLoadedShare as __fulgurjs_gls, pinLoadedShare as __fulgurjs_pin, unwrapDefault as __fulgurjsU } from "virtual:fulgurjs-runtime";`,
|
|
775
|
+
`import * as __fulgurjs_local from ${JSON.stringify(importTarget)};`,
|
|
776
|
+
`let __fulgurjs_snap;`,
|
|
777
|
+
`try { __fulgurjs_snap = __fulgurjs_gls(${JSON.stringify(item.shareKey)}, { ${opts.join(", ")} }); } catch {}`,
|
|
778
|
+
`if (__fulgurjs_snap === undefined) __fulgurjs_pin(${JSON.stringify(item.shareKey)}, { ${opts.join(", ")} }, ${JSON.stringify(item.version)}, __fulgurjs_local);`,
|
|
779
|
+
`const __fulgurjs_m = __fulgurjs_snap ?? __fulgurjs_local;`,
|
|
780
|
+
`const __fulgurjs_d = __fulgurjsU(__fulgurjs_m);`,
|
|
781
|
+
`export default __fulgurjs_d;`
|
|
782
|
+
];
|
|
783
|
+
const seen = /* @__PURE__ */ new Set(["default"]);
|
|
784
|
+
for (const name of exportNames) {
|
|
785
|
+
if (seen.has(name) || !/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(name)) continue;
|
|
786
|
+
seen.add(name);
|
|
787
|
+
lines.push(`export const ${name} = __fulgurjs_d[${JSON.stringify(name)}];`);
|
|
788
|
+
}
|
|
789
|
+
lines.push("");
|
|
790
|
+
return lines.join("\n");
|
|
791
|
+
}
|
|
737
792
|
function genRemoteBindingFacade(remoteSpec, bindings, dynamic = false) {
|
|
738
793
|
const lines = [
|
|
739
794
|
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 +2261,354 @@ function syncViteCacheMarker(root, pluginVersion, log) {
|
|
|
2206
2261
|
}
|
|
2207
2262
|
|
|
2208
2263
|
// src/async-mark-repair.ts
|
|
2209
|
-
import MagicString2 from "magic-string";
|
|
2210
2264
|
import { transformSync } from "esbuild";
|
|
2211
2265
|
var ROLLDOWN_RUNTIME_MARK = "rolldown-runtime";
|
|
2212
2266
|
var ASYNC_ERROR_SIGNATURE = /await["']?\s+(?:is only allowed within|can only be used inside an?)\s+["']?async/i;
|
|
2267
|
+
var MAX_REPAIR_ROUNDS = 64;
|
|
2213
2268
|
function validate(code) {
|
|
2214
2269
|
try {
|
|
2215
2270
|
transformSync(code, { loader: "js", format: "esm" });
|
|
2216
2271
|
return { ok: true };
|
|
2217
2272
|
} catch (e) {
|
|
2218
2273
|
const err = e;
|
|
2219
|
-
const
|
|
2220
|
-
|
|
2274
|
+
const first = err.errors?.[0];
|
|
2275
|
+
const text = first?.text ?? err.message ?? "";
|
|
2276
|
+
if (!ASYNC_ERROR_SIGNATURE.test(text)) return { ok: false, offset: -1, text: "" };
|
|
2277
|
+
const loc = first?.location;
|
|
2278
|
+
if (!loc) return { ok: false, offset: -1, text };
|
|
2279
|
+
let offset = -1;
|
|
2280
|
+
if (loc.line >= 1) {
|
|
2281
|
+
let lineStart = 0;
|
|
2282
|
+
for (let l = 1; l < loc.line; l++) {
|
|
2283
|
+
const nl = code.indexOf("\n", lineStart);
|
|
2284
|
+
if (nl === -1) {
|
|
2285
|
+
lineStart = -1;
|
|
2286
|
+
break;
|
|
2287
|
+
}
|
|
2288
|
+
lineStart = nl + 1;
|
|
2289
|
+
}
|
|
2290
|
+
if (lineStart >= 0) offset = lineStart + loc.column;
|
|
2291
|
+
}
|
|
2292
|
+
return { ok: false, offset, text };
|
|
2221
2293
|
}
|
|
2222
2294
|
}
|
|
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
|
-
|
|
2295
|
+
function buildCodeMask(code) {
|
|
2296
|
+
const masked = [];
|
|
2297
|
+
const n = code.length;
|
|
2298
|
+
let i = 0;
|
|
2299
|
+
let prevSignificant = "";
|
|
2300
|
+
const lastMeaningful = (from) => {
|
|
2301
|
+
for (let j = from; j >= 0; j--) {
|
|
2302
|
+
const c = code[j];
|
|
2303
|
+
if (!/\s/.test(c)) return c;
|
|
2304
|
+
}
|
|
2305
|
+
return "";
|
|
2306
|
+
};
|
|
2307
|
+
while (i < n) {
|
|
2308
|
+
const c = code[i];
|
|
2309
|
+
if (c === '"' || c === "'") {
|
|
2310
|
+
const start = i;
|
|
2311
|
+
i++;
|
|
2312
|
+
while (i < n) {
|
|
2313
|
+
if (code[i] === "\\") {
|
|
2314
|
+
i += 2;
|
|
2315
|
+
continue;
|
|
2316
|
+
}
|
|
2317
|
+
if (code[i] === c || code[i] === "\n") {
|
|
2318
|
+
i++;
|
|
2319
|
+
break;
|
|
2320
|
+
}
|
|
2321
|
+
i++;
|
|
2322
|
+
}
|
|
2323
|
+
masked.push([start, Math.min(i, n)]);
|
|
2324
|
+
prevSignificant = c;
|
|
2325
|
+
continue;
|
|
2326
|
+
}
|
|
2327
|
+
if (c === "`") {
|
|
2328
|
+
const start = i;
|
|
2329
|
+
i++;
|
|
2330
|
+
let depth = 0;
|
|
2331
|
+
while (i < n) {
|
|
2332
|
+
if (code[i] === "\\") {
|
|
2333
|
+
i += 2;
|
|
2334
|
+
continue;
|
|
2335
|
+
}
|
|
2336
|
+
if (depth === 0 && code[i] === "`") {
|
|
2337
|
+
i++;
|
|
2338
|
+
break;
|
|
2339
|
+
}
|
|
2340
|
+
if (depth === 0 && code[i] === "$" && code[i + 1] === "{") {
|
|
2341
|
+
depth = 1;
|
|
2342
|
+
i += 2;
|
|
2343
|
+
continue;
|
|
2344
|
+
}
|
|
2345
|
+
if (depth > 0) {
|
|
2346
|
+
if (code[i] === '"' || code[i] === "'") {
|
|
2347
|
+
const q = code[i];
|
|
2348
|
+
i++;
|
|
2349
|
+
while (i < n) {
|
|
2350
|
+
if (code[i] === "\\") {
|
|
2351
|
+
i += 2;
|
|
2352
|
+
continue;
|
|
2353
|
+
}
|
|
2354
|
+
;
|
|
2355
|
+
if (code[i] === q) {
|
|
2356
|
+
i++;
|
|
2357
|
+
break;
|
|
2358
|
+
}
|
|
2359
|
+
;
|
|
2360
|
+
i++;
|
|
2361
|
+
}
|
|
2362
|
+
continue;
|
|
2363
|
+
}
|
|
2364
|
+
if (code[i] === "{") depth++;
|
|
2365
|
+
if (code[i] === "}") depth--;
|
|
2366
|
+
}
|
|
2367
|
+
i++;
|
|
2368
|
+
}
|
|
2369
|
+
masked.push([start, Math.min(i, n)]);
|
|
2370
|
+
prevSignificant = "`";
|
|
2371
|
+
continue;
|
|
2372
|
+
}
|
|
2373
|
+
if (c === "/" && code[i + 1] === "/") {
|
|
2374
|
+
const start = i;
|
|
2375
|
+
const nl = code.indexOf("\n", i);
|
|
2376
|
+
i = nl === -1 ? n : nl + 1;
|
|
2377
|
+
masked.push([start, i]);
|
|
2378
|
+
continue;
|
|
2379
|
+
}
|
|
2380
|
+
if (c === "/" && code[i + 1] === "*") {
|
|
2381
|
+
const start = i;
|
|
2382
|
+
const end = code.indexOf("*/", i + 2);
|
|
2383
|
+
i = end === -1 ? n : end + 2;
|
|
2384
|
+
masked.push([start, i]);
|
|
2385
|
+
continue;
|
|
2386
|
+
}
|
|
2387
|
+
if (c === "/") {
|
|
2388
|
+
const p = prevSignificant || lastMeaningful(i - 1);
|
|
2389
|
+
const isDivision = /[A-Za-z0-9_$)\]]/.test(p);
|
|
2390
|
+
if (!isDivision) {
|
|
2391
|
+
const start = i;
|
|
2392
|
+
i++;
|
|
2393
|
+
let inClass = false;
|
|
2394
|
+
while (i < n) {
|
|
2395
|
+
const rc = code[i];
|
|
2396
|
+
if (rc === "\\") {
|
|
2397
|
+
i += 2;
|
|
2398
|
+
continue;
|
|
2399
|
+
}
|
|
2400
|
+
if (rc === "\n") break;
|
|
2401
|
+
if (rc === "[") inClass = true;
|
|
2402
|
+
else if (rc === "]") inClass = false;
|
|
2403
|
+
else if (rc === "/" && !inClass) {
|
|
2404
|
+
i++;
|
|
2405
|
+
break;
|
|
2406
|
+
}
|
|
2407
|
+
i++;
|
|
2408
|
+
}
|
|
2409
|
+
while (i < n && /[a-z]/i.test(code[i])) i++;
|
|
2410
|
+
masked.push([start, Math.min(i, n)]);
|
|
2411
|
+
prevSignificant = "/";
|
|
2412
|
+
continue;
|
|
2251
2413
|
}
|
|
2252
2414
|
}
|
|
2415
|
+
if (!/\s/.test(c)) prevSignificant = c;
|
|
2416
|
+
i++;
|
|
2417
|
+
}
|
|
2418
|
+
masked.sort((a, b) => a[0] - b[0]);
|
|
2419
|
+
return (offset) => {
|
|
2420
|
+
let lo = 0, hi = masked.length - 1;
|
|
2421
|
+
while (lo <= hi) {
|
|
2422
|
+
const mid = lo + hi >> 1;
|
|
2423
|
+
const [s, e] = masked[mid];
|
|
2424
|
+
if (offset < s) hi = mid - 1;
|
|
2425
|
+
else if (offset >= e) lo = mid + 1;
|
|
2426
|
+
else return true;
|
|
2427
|
+
}
|
|
2428
|
+
return false;
|
|
2253
2429
|
};
|
|
2254
|
-
visit(ast, null);
|
|
2255
|
-
return broken.filter((n) => n.__fgBroken === true);
|
|
2256
2430
|
}
|
|
2257
|
-
function
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2431
|
+
function findEnclosingFunctionHead(code, awaitOffset, isMasked) {
|
|
2432
|
+
const isCode = (o) => o >= 0 && o < code.length && !isMasked(o);
|
|
2433
|
+
let i = awaitOffset;
|
|
2434
|
+
let depth = 0;
|
|
2435
|
+
while (i > 0) {
|
|
2436
|
+
i--;
|
|
2437
|
+
if (!isCode(i)) continue;
|
|
2438
|
+
const c = code[i];
|
|
2439
|
+
if (c === "}" || c === ")" || c === "]") {
|
|
2440
|
+
depth++;
|
|
2441
|
+
continue;
|
|
2442
|
+
}
|
|
2443
|
+
if (c === "(" || c === "[") {
|
|
2444
|
+
if (depth > 0) depth--;
|
|
2445
|
+
continue;
|
|
2446
|
+
}
|
|
2447
|
+
if (c === "{") {
|
|
2448
|
+
if (depth > 0) {
|
|
2449
|
+
depth--;
|
|
2450
|
+
continue;
|
|
2451
|
+
}
|
|
2452
|
+
const head = classifyBrace(code, i, isCode);
|
|
2453
|
+
if (head) return head;
|
|
2454
|
+
continue;
|
|
2455
|
+
}
|
|
2456
|
+
if (c === ">" && i > 0 && code[i - 1] === "=" && isCode(i - 1)) {
|
|
2457
|
+
const head = arrowHeadBefore(code, i - 1, isCode);
|
|
2458
|
+
if (head) return head;
|
|
2459
|
+
continue;
|
|
2460
|
+
}
|
|
2265
2461
|
}
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2462
|
+
return null;
|
|
2463
|
+
}
|
|
2464
|
+
function skipBackward(from, code, isCode) {
|
|
2465
|
+
let i = from;
|
|
2466
|
+
while (i >= 0 && (!isCode(i) || /\s/.test(code[i]))) i--;
|
|
2467
|
+
return i;
|
|
2468
|
+
}
|
|
2469
|
+
function arrowHeadBefore(code, arrowEq, isCode) {
|
|
2470
|
+
const before = skipBackward(arrowEq - 1, code, isCode);
|
|
2471
|
+
if (before < 0) return null;
|
|
2472
|
+
if (code[before] === ")") {
|
|
2473
|
+
let d = 0;
|
|
2474
|
+
let i = before;
|
|
2475
|
+
while (i >= 0) {
|
|
2476
|
+
if (!isCode(i)) {
|
|
2477
|
+
i--;
|
|
2478
|
+
continue;
|
|
2479
|
+
}
|
|
2480
|
+
const c = code[i];
|
|
2481
|
+
if (c === ")") d++;
|
|
2482
|
+
else if (c === "(") {
|
|
2483
|
+
d--;
|
|
2484
|
+
if (d === 0) return { insertAt: i, kind: "arrow" };
|
|
2485
|
+
}
|
|
2486
|
+
i--;
|
|
2487
|
+
}
|
|
2488
|
+
return null;
|
|
2271
2489
|
}
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2490
|
+
if (/[A-Za-z0-9_$]/.test(code[before])) {
|
|
2491
|
+
let i = before;
|
|
2492
|
+
while (i >= 0 && /[A-Za-z0-9_$]/.test(code[i]) && isCode(i)) i--;
|
|
2493
|
+
return { insertAt: i + 1, kind: "arrow" };
|
|
2494
|
+
}
|
|
2495
|
+
return null;
|
|
2496
|
+
}
|
|
2497
|
+
function classifyBrace(code, brace, isCode) {
|
|
2498
|
+
let i = skipBackward(brace - 1, code, isCode);
|
|
2499
|
+
if (i < 0) return null;
|
|
2500
|
+
if (code[i] === ">" && i > 0 && code[i - 1] === "=") {
|
|
2501
|
+
return arrowHeadBefore(code, i - 1, isCode);
|
|
2502
|
+
}
|
|
2503
|
+
if (code[i] !== ")") return null;
|
|
2504
|
+
let d = 0;
|
|
2505
|
+
let j = i;
|
|
2506
|
+
while (j >= 0) {
|
|
2507
|
+
if (!isCode(j)) {
|
|
2508
|
+
j--;
|
|
2509
|
+
continue;
|
|
2510
|
+
}
|
|
2511
|
+
const c = code[j];
|
|
2512
|
+
if (c === ")") d++;
|
|
2513
|
+
else if (c === "(") {
|
|
2514
|
+
d--;
|
|
2515
|
+
if (d === 0) break;
|
|
2516
|
+
}
|
|
2517
|
+
j--;
|
|
2518
|
+
}
|
|
2519
|
+
if (j < 0) return null;
|
|
2520
|
+
const beforeParen = skipBackward(j - 1, code, isCode);
|
|
2521
|
+
if (beforeParen < 0) return null;
|
|
2522
|
+
if (code[beforeParen] === "*") return null;
|
|
2523
|
+
if (!/[A-Za-z0-9_$"']/.test(code[beforeParen])) return null;
|
|
2524
|
+
const word = readWordBackward(code, beforeParen, isCode);
|
|
2525
|
+
if (word.word === "function") return { insertAt: word.start, kind: "function" };
|
|
2526
|
+
const beforeWordPos = skipBackward(word.start - 1, code, isCode);
|
|
2527
|
+
if (beforeWordPos >= 0 && /[A-Za-z0-9_$]/.test(code[beforeWordPos])) {
|
|
2528
|
+
const beforeWord = readWordBackward(code, beforeWordPos, isCode);
|
|
2529
|
+
if (beforeWord.word === "function") return { insertAt: beforeWord.start, kind: "function" };
|
|
2530
|
+
}
|
|
2531
|
+
const key = readMethodKeyBackward(code, beforeParen, isCode);
|
|
2532
|
+
return key ? { insertAt: key.start, kind: "method" } : null;
|
|
2533
|
+
}
|
|
2534
|
+
function readWordBackward(code, wordEnd, isCode) {
|
|
2535
|
+
let i = wordEnd;
|
|
2536
|
+
while (i >= 0 && /[A-Za-z0-9_$]/.test(code[i]) && isCode(i)) i--;
|
|
2537
|
+
return { word: code.slice(i + 1, wordEnd + 1), start: i + 1 };
|
|
2538
|
+
}
|
|
2539
|
+
function readMethodKeyBackward(code, keyEnd, isCode) {
|
|
2540
|
+
const i = keyEnd;
|
|
2541
|
+
if (i < 0) return null;
|
|
2542
|
+
let keyStart;
|
|
2543
|
+
if (code[i] === '"' || code[i] === "'") {
|
|
2544
|
+
const q = code[i];
|
|
2545
|
+
let j = i - 1;
|
|
2546
|
+
while (j >= 0) {
|
|
2547
|
+
if (code[j] === "\\") {
|
|
2548
|
+
j -= 2;
|
|
2549
|
+
continue;
|
|
2550
|
+
}
|
|
2551
|
+
;
|
|
2552
|
+
if (code[j] === q) break;
|
|
2553
|
+
j--;
|
|
2554
|
+
}
|
|
2555
|
+
if (j < 0) return null;
|
|
2556
|
+
keyStart = j;
|
|
2557
|
+
} else if (/[A-Za-z0-9_$]/.test(code[i])) {
|
|
2558
|
+
keyStart = readWordBackward(code, i, isCode).start;
|
|
2559
|
+
} else {
|
|
2560
|
+
return null;
|
|
2561
|
+
}
|
|
2562
|
+
const before = skipBackward(keyStart - 1, code, isCode);
|
|
2563
|
+
if (before >= 0) {
|
|
2564
|
+
if (code[before] === "*") return null;
|
|
2565
|
+
if (/[A-Za-z0-9_$]/.test(code[before])) {
|
|
2566
|
+
const w = readWordBackward(code, before, isCode);
|
|
2567
|
+
if (w.word === "get" || w.word === "set" || w.word === "async") return null;
|
|
2283
2568
|
}
|
|
2284
|
-
s.appendLeft(start, "async ");
|
|
2285
|
-
repaired++;
|
|
2286
2569
|
}
|
|
2287
|
-
return {
|
|
2570
|
+
return { start: keyStart };
|
|
2288
2571
|
}
|
|
2289
|
-
function repairRolldownAsyncMarks(code,
|
|
2572
|
+
function repairRolldownAsyncMarks(code, sourceName) {
|
|
2290
2573
|
if (!code.includes(ROLLDOWN_RUNTIME_MARK) || !code.includes("await")) return null;
|
|
2291
2574
|
const first = validate(code);
|
|
2292
2575
|
if (first.ok) return null;
|
|
2293
2576
|
if (!first.text) return null;
|
|
2294
2577
|
let current = code;
|
|
2295
2578
|
let repaired = 0;
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
);
|
|
2579
|
+
let lastText = first.text;
|
|
2580
|
+
for (let round = 0; round < MAX_REPAIR_ROUNDS; round++) {
|
|
2581
|
+
const v = validate(current);
|
|
2582
|
+
if (v.ok) return { code: current, repaired };
|
|
2583
|
+
if (!v.text) {
|
|
2584
|
+
throw new Error(
|
|
2585
|
+
`[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`
|
|
2586
|
+
);
|
|
2587
|
+
}
|
|
2588
|
+
lastText = v.text;
|
|
2589
|
+
const isMasked = buildCodeMask(current);
|
|
2590
|
+
if (v.offset < 0 || isMasked(v.offset)) {
|
|
2591
|
+
throw new Error(
|
|
2592
|
+
`[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`
|
|
2593
|
+
);
|
|
2594
|
+
}
|
|
2595
|
+
const head = findEnclosingFunctionHead(current, v.offset, isMasked);
|
|
2596
|
+
if (!head) {
|
|
2597
|
+
const ctx = current.slice(Math.max(0, v.offset - 100), v.offset + 100);
|
|
2598
|
+
throw new Error(
|
|
2599
|
+
`[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)}`
|
|
2600
|
+
);
|
|
2601
|
+
}
|
|
2602
|
+
current = current.slice(0, head.insertAt) + "async " + current.slice(head.insertAt);
|
|
2603
|
+
repaired++;
|
|
2313
2604
|
}
|
|
2314
|
-
|
|
2605
|
+
throw new Error(
|
|
2606
|
+
`[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`
|
|
2607
|
+
);
|
|
2315
2608
|
}
|
|
2316
2609
|
|
|
2317
2610
|
// 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.1";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';
|
|
2611
|
+
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.6.0";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';
|
|
2319
2612
|
|
|
2320
2613
|
// src/index.ts
|
|
2321
2614
|
function readRuntimeCode() {
|
|
@@ -2394,6 +2687,16 @@ function providerChunkOf(id, roots) {
|
|
|
2394
2687
|
if (!provider) return void 0;
|
|
2395
2688
|
return "fulgurjs-provider-" + (provider.shareKey.replace(/[^A-Za-z0-9_-]/g, "_") || "unknown");
|
|
2396
2689
|
}
|
|
2690
|
+
async function resolveSharedImportTarget(item, root) {
|
|
2691
|
+
const specifier = item.import;
|
|
2692
|
+
if (typeof specifier !== "string") return item.shareKey;
|
|
2693
|
+
try {
|
|
2694
|
+
const resolved = await this.resolve?.(specifier, path6.join(root, "package.json"), { skipSelf: true });
|
|
2695
|
+
if (resolved?.id) return resolved.id;
|
|
2696
|
+
} catch {
|
|
2697
|
+
}
|
|
2698
|
+
return specifier;
|
|
2699
|
+
}
|
|
2397
2700
|
function federation(options) {
|
|
2398
2701
|
let remoteSchemaPromise = null;
|
|
2399
2702
|
const state = {
|
|
@@ -2478,8 +2781,9 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2478
2781
|
`;
|
|
2479
2782
|
}
|
|
2480
2783
|
};
|
|
2784
|
+
const isVite8Prebundle = Number((readInstalledVersion(root, "vite") ?? "0").split(".")[0]) >= 8;
|
|
2481
2785
|
extra.optimizeDeps = {
|
|
2482
|
-
esbuildOptions: { plugins: [sharedExternal] },
|
|
2786
|
+
...isVite8Prebundle ? {} : { esbuildOptions: { plugins: [sharedExternal] } },
|
|
2483
2787
|
rolldownOptions: { plugins: [rolldownShared] }
|
|
2484
2788
|
};
|
|
2485
2789
|
}
|
|
@@ -2804,6 +3108,9 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2804
3108
|
if (!names.includes(compat)) names.push(compat);
|
|
2805
3109
|
}
|
|
2806
3110
|
}
|
|
3111
|
+
if (state.rolldownBuild) {
|
|
3112
|
+
return genSharedNsFacadeSync(item, names, await resolveSharedImportTarget.call(this, item, state.normalized.root));
|
|
3113
|
+
}
|
|
2807
3114
|
return genSharedNsFacade(item, serializeShareCallForFacade(item), names, state.facadeDynamic);
|
|
2808
3115
|
}
|
|
2809
3116
|
if (clean.startsWith("virtual:fulgurjs-shared:") && state.normalized) {
|
|
@@ -2824,6 +3131,9 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2824
3131
|
}
|
|
2825
3132
|
const item = state.normalized.shared.find((x) => x.shareKey === entry.shareKey);
|
|
2826
3133
|
if (!item || item.import === false) return null;
|
|
3134
|
+
if (state.rolldownBuild) {
|
|
3135
|
+
return genBindingFacadeSync(item, entry.bindings, await resolveSharedImportTarget.call(this, item, state.normalized.root));
|
|
3136
|
+
}
|
|
2827
3137
|
const opts = [
|
|
2828
3138
|
"shareScope: " + JSON.stringify(item.shareScope),
|
|
2829
3139
|
"shareKey: " + JSON.stringify(item.shareKey),
|
|
@@ -3088,7 +3398,7 @@ ${code}`, map: null };
|
|
|
3088
3398
|
order: "pre",
|
|
3089
3399
|
handler(code, chunk) {
|
|
3090
3400
|
if (!state.rolldownBuild || state.command !== "build") return null;
|
|
3091
|
-
const result = repairRolldownAsyncMarks(code,
|
|
3401
|
+
const result = repairRolldownAsyncMarks(code, chunk.fileName);
|
|
3092
3402
|
if (!result) return null;
|
|
3093
3403
|
debugLog("v8-async-fix", { stage: "renderChunk", file: chunk.fileName, repaired: result.repaired });
|
|
3094
3404
|
return result.code;
|
|
@@ -3125,19 +3435,48 @@ ${code}`, map: null };
|
|
|
3125
3435
|
};
|
|
3126
3436
|
}
|
|
3127
3437
|
}
|
|
3438
|
+
const moduleToChunk = /* @__PURE__ */ new Map();
|
|
3439
|
+
for (const [fileName, chunk] of Object.entries(bundle)) {
|
|
3440
|
+
if (chunk.type !== "chunk") continue;
|
|
3441
|
+
for (const moduleId of Object.keys(chunk.modules ?? {})) {
|
|
3442
|
+
if (!moduleToChunk.has(moduleId)) moduleToChunk.set(moduleId, fileName);
|
|
3443
|
+
}
|
|
3444
|
+
}
|
|
3128
3445
|
for (const e of n.exposes) {
|
|
3129
3446
|
const abs = state.exposeAbsPaths[e.import];
|
|
3130
3447
|
const hit = abs ? facadeToChunk[abs] : void 0;
|
|
3131
|
-
if (hit)
|
|
3448
|
+
if (hit) {
|
|
3449
|
+
state.exposeFiles[e.name] = hit;
|
|
3450
|
+
continue;
|
|
3451
|
+
}
|
|
3452
|
+
const merged = abs ? moduleToChunk.get(abs) : void 0;
|
|
3453
|
+
if (merged) {
|
|
3454
|
+
state.exposeFiles[e.name] = { file: merged, css: collectStaticCss(merged) };
|
|
3455
|
+
}
|
|
3132
3456
|
}
|
|
3133
3457
|
const entryChunkName = Object.keys(bundle).find((k) => bundle[k].type === "chunk" && k === n.filename);
|
|
3134
3458
|
const entryChunk = entryChunkName ? bundle[entryChunkName] : void 0;
|
|
3135
|
-
if (entryChunk && entryChunk.type === "chunk" && /import\((['"])[^'")]+\1\)/.test(entryChunk.code)) {
|
|
3459
|
+
if (entryChunk && entryChunk.type === "chunk" && /import\((['"`])[^'"`)]+\1\)/.test(entryChunk.code)) {
|
|
3136
3460
|
const helper = genProdRetryHelper();
|
|
3137
3461
|
entryChunk.code = entryChunk.code.replace(
|
|
3138
|
-
/import\((['"])([^'")]+)\1\)/g,
|
|
3462
|
+
/import\((['"`])([^'"`)]+)\1\)/g,
|
|
3139
3463
|
(_m, q, u) => `__fgR(${q}${u}${q})`
|
|
3140
3464
|
);
|
|
3465
|
+
if (state.rolldownBuild) {
|
|
3466
|
+
const depsArrayMatch = /__vite__mapDeps=\(i,m=__vite__mapDeps,d=\(m\.f\|\|\(m\.f=(\[[^\]]*\])\)\)\)=>/.exec(entryChunk.code);
|
|
3467
|
+
if (depsArrayMatch) {
|
|
3468
|
+
try {
|
|
3469
|
+
const deps = JSON.parse(depsArrayMatch[1].replace(/`/g, '"').replace(/'/g, '"'));
|
|
3470
|
+
const cssOnly = new Set(deps.map((d, i) => /\.(css|scss|less)$/.test(d) ? i : -1).filter((i) => i >= 0));
|
|
3471
|
+
entryChunk.code = entryChunk.code.replace(/__vite__mapDeps\(\[([\d,\s]*)\]\)/g, (m, list) => {
|
|
3472
|
+
const kept = list.split(",").map((x) => x.trim()).filter(Boolean).map(Number).filter((i) => cssOnly.has(i));
|
|
3473
|
+
return `__vite__mapDeps([${kept.join(",")}])`;
|
|
3474
|
+
});
|
|
3475
|
+
debugLog("manifest", { stage: "generateBundle", mapDepsCssOnly: true, kept: cssOnly.size, total: deps.length });
|
|
3476
|
+
} catch {
|
|
3477
|
+
}
|
|
3478
|
+
}
|
|
3479
|
+
}
|
|
3141
3480
|
entryChunk.code = `${helper}
|
|
3142
3481
|
${entryChunk.code}`;
|
|
3143
3482
|
debugLog("manifest", { stage: "generateBundle", retryBust: "remoteEntry loaders wrapped" });
|
|
@@ -3322,14 +3661,18 @@ ${entryChunk.code}`;
|
|
|
3322
3661
|
(s) => s.shareKey === "react" || s.shareKey === "react-dom"
|
|
3323
3662
|
);
|
|
3324
3663
|
if (!hostConsumesReact) return html;
|
|
3325
|
-
const
|
|
3664
|
+
const httpOrigins = state.normalized.remotes.map((r) => {
|
|
3326
3665
|
try {
|
|
3327
3666
|
return new URL(r.devEntry).origin;
|
|
3328
3667
|
} catch {
|
|
3329
3668
|
return null;
|
|
3330
3669
|
}
|
|
3331
|
-
}).
|
|
3332
|
-
if (
|
|
3670
|
+
}).filter((o) => o !== null && /^https?:/.test(o ?? ""));
|
|
3671
|
+
if (httpOrigins.length === 0) return html;
|
|
3672
|
+
const remoteOrigin = httpOrigins.length === 1 ? httpOrigins[0] : null;
|
|
3673
|
+
if (!remoteOrigin) {
|
|
3674
|
+
return `<script type="module">window.$RefreshReg$ = () => {};window.$RefreshSig$ = () => (type) => type;window.__vite_plugin_react_preamble_installed__ = true;</script>` + html;
|
|
3675
|
+
}
|
|
3333
3676
|
return `<script type="module">window.$RefreshReg$ = () => {};window.$RefreshSig$ = () => (type) => type;window.__vite_plugin_react_preamble_installed__ = true;(async () => { try { const __fulgurjs_rr = await import(${JSON.stringify(`${remoteOrigin}/@react-refresh`)});try { __fulgurjs_rr.default?.injectIntoGlobalHook?.(window); } catch {}(globalThis).${REACT_REFRESH_GLOBAL_KEY} ??= __fulgurjs_rr; } catch {} })();</script>` + html;
|
|
3334
3677
|
}
|
|
3335
3678
|
const lastRef = html.lastIndexOf("/@react-refresh");
|