@fulgurjs/federation 5.0.4 → 5.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/DESIGN.md +11 -0
- package/README.en.md +356 -0
- package/README.md +117 -4
- package/dist/chunk-4PLNAYZX.js +84 -0
- package/dist/cli.js +4 -1
- package/dist/host-pages-core-BFxp-IOj.d.cts +37 -0
- package/dist/host-pages-core-DLfMeDrO.d.ts +37 -0
- package/dist/index.cjs +282 -27
- package/dist/index.js +282 -27
- package/dist/react-adapter.cjs +521 -0
- package/dist/react-adapter.d.cts +117 -0
- package/dist/react-adapter.d.ts +117 -0
- package/dist/react-adapter.js +295 -0
- package/dist/react.d.ts +442 -0
- package/dist/react.js +10 -0
- package/dist/runtime-entry.d.ts +29 -17
- package/dist/runtime.js +13 -13
- package/dist/vue-adapter.cjs +66 -50
- package/dist/vue-adapter.d.cts +4 -25
- package/dist/vue-adapter.d.ts +4 -25
- package/dist/vue-adapter.js +14 -66
- package/examples/README.md +5 -0
- package/examples/react-host/README.md +28 -0
- package/examples/react-host/fulgurjs.config.ts +19 -0
- package/examples/react-host/index.html +11 -0
- package/examples/react-host/package.json +23 -0
- package/examples/react-host/src/App.tsx +66 -0
- package/examples/react-host/src/federation/pages.data.ts +21 -0
- package/examples/react-host/src/main.tsx +8 -0
- package/examples/react-host/tsconfig.json +14 -0
- package/examples/react-host/vite.config.ts +8 -0
- package/examples/react-remote/fulgurjs.config.ts +17 -0
- package/examples/react-remote/index.html +11 -0
- package/examples/react-remote/package.json +22 -0
- package/examples/react-remote/src/Button.tsx +15 -0
- package/examples/react-remote/src/main.tsx +6 -0
- package/examples/react-remote/src/pages/Detail.tsx +10 -0
- package/examples/react-remote/src/pages/Home.tsx +14 -0
- package/examples/react-remote/src/utils.ts +3 -0
- package/examples/react-remote/tsconfig.json +14 -0
- package/examples/react-remote/vite.config.ts +8 -0
- package/package.json +30 -3
package/dist/index.cjs
CHANGED
|
@@ -35,7 +35,7 @@ __export(index_exports, {
|
|
|
35
35
|
});
|
|
36
36
|
module.exports = __toCommonJS(index_exports);
|
|
37
37
|
var import_node_path6 = __toESM(require("path"), 1);
|
|
38
|
-
var
|
|
38
|
+
var import_node_module3 = require("module");
|
|
39
39
|
|
|
40
40
|
// src/options.ts
|
|
41
41
|
var import_node_module = require("module");
|
|
@@ -43,7 +43,7 @@ var import_node_fs = __toESM(require("fs"), 1);
|
|
|
43
43
|
var import_node_path = __toESM(require("path"), 1);
|
|
44
44
|
|
|
45
45
|
// src/version.ts
|
|
46
|
-
var RUNTIME_VERSION = "5.
|
|
46
|
+
var RUNTIME_VERSION = "5.1.1";
|
|
47
47
|
|
|
48
48
|
// src/dev-cors.ts
|
|
49
49
|
function normalizeDevCorsOrigins(input) {
|
|
@@ -903,12 +903,26 @@ export async function get(moduleName) {
|
|
|
903
903
|
}
|
|
904
904
|
`;
|
|
905
905
|
}
|
|
906
|
+
function genProdRetryHelper() {
|
|
907
|
+
return [
|
|
908
|
+
"var __fgS={};",
|
|
909
|
+
"var __fgR=function(u){var s=__fgS[u]||(__fgS[u]={u:u,n:0});",
|
|
910
|
+
'return import(s.u).then(function(m){return m},function(e){s.n++;s.u=u+(u.indexOf("?")>-1?"&":"?")+"fulgurjs_retry="+s.n;throw e})};'
|
|
911
|
+
].join("");
|
|
912
|
+
}
|
|
913
|
+
function exposeLoaderCode(devUrl) {
|
|
914
|
+
return [
|
|
915
|
+
`(() => { let __fg_n = 0; const __fg_u = ${JSON.stringify(devUrl)}; return () => __fg_n === 0`,
|
|
916
|
+
` ? import(${JSON.stringify(devUrl)}).catch((e) => { __fg_n = 1; throw e })`,
|
|
917
|
+
` : import(/* @vite-ignore */ __fg_u + '?fulgurjs_retry=' + (__fg_n++)); })()`
|
|
918
|
+
].join("\n");
|
|
919
|
+
}
|
|
906
920
|
function genDevProvides(options) {
|
|
907
921
|
const exposes = [];
|
|
908
922
|
for (const e of options.exposes) {
|
|
909
923
|
const devUrl = `/${e.import.replace(/^\.?\//, "")}`;
|
|
910
924
|
exposes.push(
|
|
911
|
-
` ${JSON.stringify(e.name)}:
|
|
925
|
+
` ${JSON.stringify(e.name)}: ${exposeLoaderCode(devUrl)},`
|
|
912
926
|
);
|
|
913
927
|
}
|
|
914
928
|
const provides = providesRecords(options).map(
|
|
@@ -968,8 +982,8 @@ function genBuildRemoteEntry(options, exposeAbsPaths) {
|
|
|
968
982
|
""
|
|
969
983
|
].join("\n");
|
|
970
984
|
}
|
|
971
|
-
function genApiFacade() {
|
|
972
|
-
|
|
985
|
+
function genApiFacade(framework = "vue") {
|
|
986
|
+
const head = [
|
|
973
987
|
"export {",
|
|
974
988
|
" loadRemote, loadShare, preloadRemote, getContainer,",
|
|
975
989
|
" registerRemote, registerRemotes, registerShare, initSharing, registerPlugins,",
|
|
@@ -977,12 +991,21 @@ function genApiFacade() {
|
|
|
977
991
|
'} from "virtual:fulgurjs-runtime-proxy";',
|
|
978
992
|
"export { provideAppContext, getAppContext, requireAppContext, clearAppContext } from '@fulgurjs/federation/internal/context.js';",
|
|
979
993
|
"export { definePages, validatePages } from '@fulgurjs/federation/internal/pages.js';",
|
|
994
|
+
"import { loadRemote as __fulgurjs_loadRemote } from 'virtual:fulgurjs-runtime-proxy';"
|
|
995
|
+
];
|
|
996
|
+
const vueBody = [
|
|
980
997
|
"import { createRemoteComponent, createHostPages as __fulgurjs_chp } from '@fulgurjs/federation/internal/vue-adapter.js';",
|
|
981
|
-
"import { loadRemote as __fulgurjs_loadRemote } from 'virtual:fulgurjs-runtime-proxy';",
|
|
982
998
|
"export const remoteComponent = createRemoteComponent(__fulgurjs_loadRemote);",
|
|
983
|
-
"export const createHostPages = (options) => __fulgurjs_chp(options, __fulgurjs_loadRemote);"
|
|
984
|
-
|
|
985
|
-
|
|
999
|
+
"export const createHostPages = (options) => __fulgurjs_chp(options, __fulgurjs_loadRemote);"
|
|
1000
|
+
];
|
|
1001
|
+
const reactBody = [
|
|
1002
|
+
"import { createRemoteComponent, createUseLoadRemote, RemoteErrorBoundary, createReactHostPages as __fulgurjs_rhp } from '@fulgurjs/federation/internal/react-adapter.js';",
|
|
1003
|
+
"export const remoteComponent = createRemoteComponent(__fulgurjs_loadRemote);",
|
|
1004
|
+
"export const useLoadRemote = createUseLoadRemote(__fulgurjs_loadRemote);",
|
|
1005
|
+
"export { RemoteErrorBoundary };",
|
|
1006
|
+
"export const createReactHostPages = (options) => __fulgurjs_rhp(options, __fulgurjs_loadRemote);"
|
|
1007
|
+
];
|
|
1008
|
+
return [...head, ...framework === "react" ? reactBody : vueBody, ""].join("\n");
|
|
986
1009
|
}
|
|
987
1010
|
function genDevManifest(options, base) {
|
|
988
1011
|
const b = base.endsWith("/") ? base : `${base}/`;
|
|
@@ -1069,17 +1092,22 @@ function splitNamedImportBindings(inner) {
|
|
|
1069
1092
|
parts.push(inner.slice(start).trim());
|
|
1070
1093
|
return parts.filter(Boolean);
|
|
1071
1094
|
}
|
|
1095
|
+
var ENTRY_FACADES = {
|
|
1096
|
+
"@fulgurjs/federation/runtime": "virtual:fulgurjs-api-facade",
|
|
1097
|
+
"@fulgurjs/federation/react": "virtual:fulgurjs-api-facade-react"
|
|
1098
|
+
};
|
|
1072
1099
|
async function rewriteRuntimeEntryImports(code, exposeTarget) {
|
|
1073
|
-
if (!code.includes("@fulgurjs/federation/runtime")) return null;
|
|
1100
|
+
if (!code.includes("@fulgurjs/federation/runtime") && !code.includes("@fulgurjs/federation/react")) return null;
|
|
1074
1101
|
await ensureLexer();
|
|
1075
1102
|
const [imports] = (0, import_es_module_lexer.parse)(code);
|
|
1076
1103
|
const out = new import_magic_string.default(code);
|
|
1077
1104
|
let changed = false;
|
|
1078
1105
|
for (const imp of imports) {
|
|
1079
|
-
|
|
1106
|
+
const facade = ENTRY_FACADES[imp.n ?? ""];
|
|
1107
|
+
if (!facade || imp.d !== -1) continue;
|
|
1080
1108
|
const statement = code.slice(imp.ss, imp.se);
|
|
1081
1109
|
if (/^\s*import\s+type\b/.test(statement)) continue;
|
|
1082
|
-
const destination = exposeTarget ?
|
|
1110
|
+
const destination = exposeTarget ? facade : imp.n;
|
|
1083
1111
|
const braces = statement.match(/\{([\s\S]*?)\}/);
|
|
1084
1112
|
if (braces && /^\s*import\b/.test(statement)) {
|
|
1085
1113
|
const parts = splitNamedImportBindings(braces[1]);
|
|
@@ -1399,6 +1427,7 @@ export { ${nsAs[1]} };`);
|
|
|
1399
1427
|
// src/dts.ts
|
|
1400
1428
|
var import_node_fs2 = __toESM(require("fs"), 1);
|
|
1401
1429
|
var import_node_path3 = __toESM(require("path"), 1);
|
|
1430
|
+
var import_node_module2 = require("module");
|
|
1402
1431
|
async function fetchManifest(devEntry, origin, attempts = 30, delayMs = 2e3) {
|
|
1403
1432
|
let manifestUrl;
|
|
1404
1433
|
try {
|
|
@@ -1505,12 +1534,155 @@ function buildShimModule(abs, moduleSpecifier) {
|
|
|
1505
1534
|
function writeAnyModules(outDir, remoteKey, manifest) {
|
|
1506
1535
|
const modules = manifest.exposes.filter((expose) => !manifest.setup || expose.name !== manifest.setup).map((expose) => `declare module ${JSON.stringify(`${remoteKey}/${expose.name.replace(/^\.\//, "")}`)};`);
|
|
1507
1536
|
const file = import_node_path3.default.join(outDir, `${remoteKey}.d.ts`);
|
|
1537
|
+
import_node_fs2.default.rmSync(import_node_path3.default.join(outDir, `${remoteKey}.d`), { recursive: true, force: true });
|
|
1508
1538
|
if (modules.length === 0) {
|
|
1509
1539
|
if (import_node_fs2.default.existsSync(file)) import_node_fs2.default.unlinkSync(file);
|
|
1510
1540
|
return;
|
|
1511
1541
|
}
|
|
1512
1542
|
import_node_fs2.default.writeFileSync(file, ["// \u81EA\u52A8\u751F\u6210\uFF1A\u8FDC\u7A0B\u6E90\u7801\u4E0D\u53EF\u8BBF\u95EE\uFF0C\u6A21\u5757\u5BFC\u51FA\u964D\u7EA7\u4E3A any\u3002", ...modules, ""].join("\n"));
|
|
1513
1543
|
}
|
|
1544
|
+
function stripJsonc(text) {
|
|
1545
|
+
let out = "";
|
|
1546
|
+
let i = 0;
|
|
1547
|
+
const n = text.length;
|
|
1548
|
+
let inStr = false;
|
|
1549
|
+
let esc = false;
|
|
1550
|
+
const skipWsAndComments = (from) => {
|
|
1551
|
+
let j = from;
|
|
1552
|
+
for (; ; ) {
|
|
1553
|
+
while (j < n && /\s/.test(text[j])) j++;
|
|
1554
|
+
if (text[j] === "/" && text[j + 1] === "/") {
|
|
1555
|
+
while (j < n && text[j] !== "\n") j++;
|
|
1556
|
+
continue;
|
|
1557
|
+
}
|
|
1558
|
+
if (text[j] === "/" && text[j + 1] === "*") {
|
|
1559
|
+
j += 2;
|
|
1560
|
+
while (j < n && !(text[j] === "*" && text[j + 1] === "/")) j++;
|
|
1561
|
+
j += 2;
|
|
1562
|
+
continue;
|
|
1563
|
+
}
|
|
1564
|
+
return j;
|
|
1565
|
+
}
|
|
1566
|
+
};
|
|
1567
|
+
while (i < n) {
|
|
1568
|
+
const c = text[i];
|
|
1569
|
+
if (inStr) {
|
|
1570
|
+
out += c;
|
|
1571
|
+
if (esc) esc = false;
|
|
1572
|
+
else if (c === "\\") esc = true;
|
|
1573
|
+
else if (c === '"') inStr = false;
|
|
1574
|
+
i++;
|
|
1575
|
+
continue;
|
|
1576
|
+
}
|
|
1577
|
+
if (c === '"') {
|
|
1578
|
+
inStr = true;
|
|
1579
|
+
out += c;
|
|
1580
|
+
i++;
|
|
1581
|
+
continue;
|
|
1582
|
+
}
|
|
1583
|
+
if (c === "/" && text[i + 1] === "/") {
|
|
1584
|
+
while (i < n && text[i] !== "\n") i++;
|
|
1585
|
+
continue;
|
|
1586
|
+
}
|
|
1587
|
+
if (c === "/" && text[i + 1] === "*") {
|
|
1588
|
+
i += 2;
|
|
1589
|
+
while (i < n && !(text[i] === "*" && text[i + 1] === "/")) i++;
|
|
1590
|
+
i += 2;
|
|
1591
|
+
continue;
|
|
1592
|
+
}
|
|
1593
|
+
if (c === ",") {
|
|
1594
|
+
const j = skipWsAndComments(i + 1);
|
|
1595
|
+
if (text[j] === "}" || text[j] === "]") {
|
|
1596
|
+
i = i + 1;
|
|
1597
|
+
continue;
|
|
1598
|
+
}
|
|
1599
|
+
out += c;
|
|
1600
|
+
i++;
|
|
1601
|
+
continue;
|
|
1602
|
+
}
|
|
1603
|
+
out += c;
|
|
1604
|
+
i++;
|
|
1605
|
+
}
|
|
1606
|
+
return out;
|
|
1607
|
+
}
|
|
1608
|
+
function parseJsoncFile(file) {
|
|
1609
|
+
let text;
|
|
1610
|
+
try {
|
|
1611
|
+
text = import_node_fs2.default.readFileSync(file, "utf8");
|
|
1612
|
+
} catch {
|
|
1613
|
+
return null;
|
|
1614
|
+
}
|
|
1615
|
+
try {
|
|
1616
|
+
return JSON.parse(stripJsonc(text));
|
|
1617
|
+
} catch {
|
|
1618
|
+
return null;
|
|
1619
|
+
}
|
|
1620
|
+
}
|
|
1621
|
+
function hostPathsCovers(root, remoteKey, preciseDir) {
|
|
1622
|
+
let files = [];
|
|
1623
|
+
try {
|
|
1624
|
+
files = import_node_fs2.default.readdirSync(root).filter((f) => /^tsconfig[\w.-]*\.json$/i.test(f) && f !== "tsconfig.node.json");
|
|
1625
|
+
} catch {
|
|
1626
|
+
return false;
|
|
1627
|
+
}
|
|
1628
|
+
for (const f of files) {
|
|
1629
|
+
const paths = inheritedPaths(import_node_path3.default.join(root, f));
|
|
1630
|
+
if (!paths) continue;
|
|
1631
|
+
if (!Object.keys(paths).some((k) => k === `${remoteKey}/*`)) continue;
|
|
1632
|
+
if (preciseDir) {
|
|
1633
|
+
const preciseReal = safeReal(preciseDir);
|
|
1634
|
+
const coversPrecise = preciseReal !== null && Object.entries(paths).filter(([k]) => k === `${remoteKey}/*`).some(
|
|
1635
|
+
([, targets]) => (Array.isArray(targets) ? targets : [targets]).some((t) => {
|
|
1636
|
+
if (typeof t !== "string") return false;
|
|
1637
|
+
const base = t.includes("*") ? t.slice(0, t.indexOf("*")) : t;
|
|
1638
|
+
const resolvedBase = import_node_path3.default.resolve(import_node_path3.default.dirname(import_node_path3.default.join(root, f)), base);
|
|
1639
|
+
return preciseReal === resolvedBase || preciseReal.startsWith(resolvedBase + import_node_path3.default.sep);
|
|
1640
|
+
})
|
|
1641
|
+
);
|
|
1642
|
+
if (!coversPrecise) {
|
|
1643
|
+
console.warn(
|
|
1644
|
+
`[fulgurjs] \u7C7B\u578B\u751F\u6210\uFF1A\u5BBF\u4E3B ${f} \u5DF2\u4E3A "${remoteKey}" \u914D\u7F6E paths\uFF0C\u4F46\u76EE\u6807\u672A\u6307\u5411\u63D2\u4EF6\u751F\u6210\u7684\u7CBE\u786E\u76EE\u5F55\uFF08${preciseDir}\uFF09\u3002\u5DF2\u8DF3\u8FC7\u540C\u540D\u5BBD\u677E\u58F0\u660E\u4EE5\u907F\u514D\u906E\u853D\u4F60\u7684\u6620\u5C04\uFF1B\u6E90\u7801\u7EA7\u7C7B\u578B\u7531\u4F60\u7684 paths \u76EE\u6807\u51B3\u5B9A\uFF0C\u8BF7\u6838\u5BF9\u5176\u89E3\u6790\u7ED3\u679C\u3002`
|
|
1645
|
+
);
|
|
1646
|
+
}
|
|
1647
|
+
}
|
|
1648
|
+
return true;
|
|
1649
|
+
}
|
|
1650
|
+
return false;
|
|
1651
|
+
}
|
|
1652
|
+
function inheritedPaths(tsconfigFile) {
|
|
1653
|
+
const seen = /* @__PURE__ */ new Set();
|
|
1654
|
+
let current = tsconfigFile;
|
|
1655
|
+
while (current && !seen.has(current)) {
|
|
1656
|
+
seen.add(current);
|
|
1657
|
+
const cfg = parseJsoncFile(current);
|
|
1658
|
+
if (!cfg) return void 0;
|
|
1659
|
+
if (cfg.compilerOptions?.paths) return cfg.compilerOptions.paths;
|
|
1660
|
+
if (!cfg.extends) return void 0;
|
|
1661
|
+
const ext = cfg.extends;
|
|
1662
|
+
let next = null;
|
|
1663
|
+
if (import_node_path3.default.isAbsolute(ext)) {
|
|
1664
|
+
next = ext;
|
|
1665
|
+
} else if (ext.startsWith(".")) {
|
|
1666
|
+
next = import_node_path3.default.resolve(import_node_path3.default.dirname(current), ext);
|
|
1667
|
+
} else {
|
|
1668
|
+
try {
|
|
1669
|
+
next = (0, import_node_module2.createRequire)(current).resolve(ext.endsWith(".json") ? ext : `${ext}.json`, { paths: [import_node_path3.default.dirname(current)] });
|
|
1670
|
+
} catch {
|
|
1671
|
+
next = null;
|
|
1672
|
+
}
|
|
1673
|
+
}
|
|
1674
|
+
if (next !== null && !next.endsWith(".json")) next = `${next}.json`;
|
|
1675
|
+
current = next && import_node_fs2.default.existsSync(next) ? next : null;
|
|
1676
|
+
}
|
|
1677
|
+
return void 0;
|
|
1678
|
+
}
|
|
1679
|
+
function safeReal(p) {
|
|
1680
|
+
try {
|
|
1681
|
+
return import_node_fs2.default.realpathSync(p);
|
|
1682
|
+
} catch {
|
|
1683
|
+
return import_node_path3.default.resolve(p);
|
|
1684
|
+
}
|
|
1685
|
+
}
|
|
1514
1686
|
async function generateDevTypes(options, server) {
|
|
1515
1687
|
const dtsOpt = options.dts === void 0 ? true : options.dts;
|
|
1516
1688
|
if (dtsOpt === false) return;
|
|
@@ -1548,6 +1720,10 @@ async function generateDevTypes(options, server) {
|
|
|
1548
1720
|
`// \u81EA\u52A8\u751F\u6210\uFF1Afulgurjs-federation dev \u7C7B\u578B\u76F4\u8FDE\uFF08remote: ${remote.name}\uFF0Cmode: ${mode}\uFF09`,
|
|
1549
1721
|
`// \u91CD\u65B0\u751F\u6210\uFF1A\u91CD\u542F host dev server`
|
|
1550
1722
|
];
|
|
1723
|
+
const preciseDir = import_node_path3.default.join(outDir, `${remote.key}.d`);
|
|
1724
|
+
import_node_fs2.default.rmSync(preciseDir, { recursive: true, force: true });
|
|
1725
|
+
import_node_fs2.default.mkdirSync(preciseDir, { recursive: true });
|
|
1726
|
+
const preciseFiles = [];
|
|
1551
1727
|
let accepted = 0;
|
|
1552
1728
|
for (const expose of manifest.exposes ?? []) {
|
|
1553
1729
|
if (manifest.setup && expose.name === manifest.setup) continue;
|
|
@@ -1580,6 +1756,9 @@ async function generateDevTypes(options, server) {
|
|
|
1580
1756
|
if (!import_node_fs2.default.existsSync(realAbs)) continue;
|
|
1581
1757
|
const rel = import_node_path3.default.relative(outDir, realAbs).split(import_node_path3.default.sep).join("/");
|
|
1582
1758
|
const importPath = realAbs.endsWith(".vue") ? sourceImportPath(rel) : stripTsExtension(sourceImportPath(rel));
|
|
1759
|
+
const preciseFileDir = import_node_path3.default.join(outDir, `${remote.key}.d`, import_node_path3.default.dirname(expose.name.replace(/^\.\//, "").split("/").map((seg) => seg.replace(/[^A-Za-z0-9_-]/g, "_")).join("/")));
|
|
1760
|
+
const relPrecise = import_node_path3.default.relative(preciseFileDir, realAbs).split(import_node_path3.default.sep).join("/");
|
|
1761
|
+
const importPathPrecise = realAbs.endsWith(".vue") ? sourceImportPath(relPrecise) : stripTsExtension(sourceImportPath(relPrecise));
|
|
1583
1762
|
const moduleSpecifier = `${remote.key}/${expose.name.replace(/^\.\//, "")}`;
|
|
1584
1763
|
const moduleLiteral = JSON.stringify(moduleSpecifier);
|
|
1585
1764
|
const importLiteral = JSON.stringify(importPath);
|
|
@@ -1594,24 +1773,65 @@ async function generateDevTypes(options, server) {
|
|
|
1594
1773
|
lines.push(` import type { DefineComponent } from 'vue'`);
|
|
1595
1774
|
lines.push(` const component: DefineComponent<Record<string, unknown>, Record<string, unknown>, unknown>`);
|
|
1596
1775
|
lines.push(` export default component`);
|
|
1597
|
-
lines.push(` export * from ${importLiteral}`);
|
|
1598
1776
|
lines.push(`}`);
|
|
1777
|
+
const subPath = expose.name.replace(/^\.\//, "").split("/").map((seg) => seg.replace(/[^A-Za-z0-9_-]/g, "_")).join("/");
|
|
1778
|
+
const preciseFile = import_node_path3.default.join(preciseDir, `${subPath}.ts`);
|
|
1779
|
+
import_node_fs2.default.mkdirSync(import_node_path3.default.dirname(preciseFile), { recursive: true });
|
|
1780
|
+
preciseFiles.push(`${subPath}.ts`);
|
|
1781
|
+
import_node_fs2.default.writeFileSync(
|
|
1782
|
+
preciseFile,
|
|
1783
|
+
[
|
|
1784
|
+
`// \u81EA\u52A8\u751F\u6210\uFF08\u7CBE\u786E\u8F68\uFF09\uFF1A.vue expose \u4E3A\u5BBD\u677E\u5F62\u6001\uFF08\u7CBE\u786E\u7C7B\u578B\u9700\u5BBF\u4E3B vue-tsc/shim\uFF09`,
|
|
1785
|
+
`import type { DefineComponent } from 'vue'`,
|
|
1786
|
+
`declare const component: DefineComponent<Record<string, unknown>, Record<string, unknown>, unknown>`,
|
|
1787
|
+
`export default component`,
|
|
1788
|
+
``
|
|
1789
|
+
].join("\n")
|
|
1790
|
+
);
|
|
1599
1791
|
} else {
|
|
1792
|
+
const srcText = import_node_fs2.default.readFileSync(realAbs, "utf8");
|
|
1793
|
+
const names = extractTsExportNames(srcText);
|
|
1794
|
+
const hasDefault = sourceHasDefaultExport(realAbs);
|
|
1600
1795
|
lines.push(`declare module ${moduleLiteral} {`);
|
|
1601
|
-
const
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
} else {
|
|
1605
|
-
lines.push(` export * from ${importLiteral}`);
|
|
1606
|
-
}
|
|
1607
|
-
if (sourceHasDefaultExport(realAbs)) lines.push(` export { default } from ${importLiteral}`);
|
|
1796
|
+
if (hasDefault) lines.push(` const __fg_default: any`, ` export default __fg_default`);
|
|
1797
|
+
for (const n of names) lines.push(` export const ${n}: any`, ` export type ${n} = any`);
|
|
1798
|
+
if (!hasDefault && names.length === 0) lines.push(` // \u7EAF\u526F\u4F5C\u7528\u6A21\u5757\uFF08\u65E0\u53EF\u679A\u4E3E\u5BFC\u51FA\uFF09`);
|
|
1608
1799
|
lines.push(`}`);
|
|
1800
|
+
const subPath = expose.name.replace(/^\.\//, "").split("/").map((seg) => seg.replace(/[^A-Za-z0-9_-]/g, "_")).join("/");
|
|
1801
|
+
const preciseFile = import_node_path3.default.join(preciseDir, `${subPath}.ts`);
|
|
1802
|
+
import_node_fs2.default.mkdirSync(import_node_path3.default.dirname(preciseFile), { recursive: true });
|
|
1803
|
+
const fwd = [`// \u81EA\u52A8\u751F\u6210\uFF08\u7CBE\u786E\u8F68\uFF09\uFF1A\u7ECF tsconfig paths \u89E3\u6790\u5230\u672C\u6587\u4EF6\u540E\u83B7\u5F97\u6E90\u7801\u7EA7\u7C7B\u578B`];
|
|
1804
|
+
const preciseImportLiteral = JSON.stringify(importPathPrecise);
|
|
1805
|
+
if (names.length > 0 || hasDefault) fwd.push(`export * from ${preciseImportLiteral}`);
|
|
1806
|
+
if (hasDefault) fwd.push(`export { default } from ${preciseImportLiteral}`);
|
|
1807
|
+
if (fwd.length === 1) fwd.push(`import ${preciseImportLiteral}`);
|
|
1808
|
+
fwd.push("");
|
|
1809
|
+
preciseFiles.push(`${subPath}.ts`);
|
|
1810
|
+
import_node_fs2.default.writeFileSync(preciseFile, fwd.join("\n"));
|
|
1609
1811
|
}
|
|
1610
1812
|
accepted++;
|
|
1611
1813
|
}
|
|
1612
1814
|
if (accepted > 0) {
|
|
1613
|
-
|
|
1815
|
+
const pathsEnabled = hostPathsCovers(options.root, remote.key, preciseDir);
|
|
1816
|
+
if (pathsEnabled) {
|
|
1817
|
+
if (import_node_fs2.default.existsSync(import_node_path3.default.join(outDir, `${remote.key}.d.ts`))) import_node_fs2.default.unlinkSync(import_node_path3.default.join(outDir, `${remote.key}.d.ts`));
|
|
1818
|
+
console.log(
|
|
1819
|
+
`[fulgurjs] \u7C7B\u578B\u751F\u6210\uFF1A\u68C0\u6D4B\u5230\u5BBF\u4E3B tsconfig \u5DF2\u914D\u7F6E "${remote.key}/*" \u7684 paths\u2014\u2014\u7CBE\u786E\u8F68\u751F\u6548\uFF0C\u8DF3\u8FC7\u540C\u540D ambient \u58F0\u660E\uFF08\u907F\u514D shadow \u8F6C\u53D1\u6A21\u5757\uFF09\u3002`
|
|
1820
|
+
);
|
|
1821
|
+
} else {
|
|
1822
|
+
import_node_fs2.default.writeFileSync(import_node_path3.default.join(outDir, `${remote.key}.d.ts`), `${lines.join("\n")}
|
|
1614
1823
|
`);
|
|
1824
|
+
}
|
|
1825
|
+
import_node_fs2.default.writeFileSync(
|
|
1826
|
+
import_node_path3.default.join(preciseDir, "_paths.d.ts"),
|
|
1827
|
+
[
|
|
1828
|
+
`// \u7CBE\u786E\u8F68\u542F\u7528\u65B9\u6CD5\uFF08\u628A\u4E0B\u9762\u7247\u6BB5\u5408\u5165\u5BBF\u4E3B tsconfig \u7684 compilerOptions\uFF1BbaseUrl \u6307\u5411\u672C tsconfig \u6240\u5728\u76EE\u5F55\uFF09\uFF1A`,
|
|
1829
|
+
`// "paths": { "${remote.key}/*": ["${dir}/${remote.key}.d/*"] }`,
|
|
1830
|
+
`// \u8BF4\u660E\uFF1A\u96F6\u914D\u7F6E\u8F68\uFF08${remote.key}.d.ts \u7684 ambient \u58F0\u660E\uFF09\u53EF\u89E3\u6790\u4F46\u5BFC\u51FA\u4E3A\u5BBD\u677E\u7C7B\u578B\uFF1B`,
|
|
1831
|
+
`// \u914D\u7F6E paths \u540E\u540C\u5F62\u6001\u5BFC\u5165\u89E3\u6790\u5230\u672C\u76EE\u5F55\u7684\u8F6C\u53D1\u6A21\u5757\uFF0C\u83B7\u5F97\u8FDC\u7A0B\u6E90\u7801\u7EA7\u7C7B\u578B\u7CBE\u5EA6\u3002`,
|
|
1832
|
+
``
|
|
1833
|
+
].join("\n")
|
|
1834
|
+
);
|
|
1615
1835
|
}
|
|
1616
1836
|
console.log(
|
|
1617
1837
|
`[fulgurjs] \u7C7B\u578B\u751F\u6210\uFF1A\u5DF2\u751F\u6210 ${dir}/${remote.key}.d.ts\uFF08\u5DF2\u6536\u5F55 ${accepted}/${manifest.exposes?.length ?? 0} \u4E2A\u66B4\u9732\u6A21\u5757\uFF0C\u6A21\u5F0F ${mode}\uFF09\u3002\u8BF7\u786E\u4FDD tsconfig \u7684 include \u5305\u542B "${dir}"\uFF0C\u4EE5\u83B7\u5F97\u7C7B\u578B\u8865\u5168\u3002`
|
|
@@ -1799,7 +2019,7 @@ function syncViteCacheMarker(root, pluginVersion, log) {
|
|
|
1799
2019
|
}
|
|
1800
2020
|
|
|
1801
2021
|
// src/runtime-code.gen.ts
|
|
1802
|
-
var runtime_code_gen_default = 'var de=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function L(i){let c=de.exec(String(i).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 ge(i,c){if(i.length===0&&c.length===0)return 0;if(i.length===0)return 1;if(c.length===0)return-1;let l=Math.max(i.length,c.length);for(let o=0;o<l;o++){let g=i[o],y=c[o];if(g===void 0)return-1;if(y===void 0)return 1;let w=/^\\d+$/.test(g),b=/^\\d+$/.test(y);if(w&&b){let I=Number(g)-Number(y);if(I!==0)return I}else{if(w!==b)return w?-1:1;if(g!==y)return g<y?-1:1}}return 0}function O(i,c){let l=L(i),o=L(c);return!l||!o?i<c?-1:i>c?1:0:l.major!==o.major?l.major-o.major:l.minor!==o.minor?l.minor-o.minor:l.patch!==o.patch?l.patch-o.patch:ge(l.pre,o.pre)}var he=/^[a-z]+[+:-]/i;function j(i,c){if(c===!1||c==null||c==="")return!0;let l=String(c).trim();return!l||l==="*"||l==="latest"||he.test(l)?!0:l.split("||").some(o=>ye(i,o.trim()))}function ye(i,c){if(!c||c==="*")return!L(i)?.pre.length;let l=c.split(/\\s+-\\s+/);if(l.length===2){let y=l[0].trim(),w=l[1].trim();return!(!j(i,`>=${y}`)||!j(i,`<=${w}`))}let o=L(i);if(!o)return!1;let g=Se(c);if(g===null)return!0;for(let y of g)if(!Pe(o,i,y))return!1;return!(o.pre.length>0&&!g.some(y=>y.ver.pre.length>0)&&!g.some(w=>w.ver.major===o.major&&w.ver.minor===o.minor&&w.ver.patch===o.patch))}function Se(i){let c=[],l=i.trim().split(/\\s+/).filter(Boolean);if(l.length===0)return null;for(let o of l){let g=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(o);if(!g)return null;let y=g[1],w=g[2],b=Ee(y,w);if(b===null)return null;c.push(...b)}return c}function Ee(i,c){let l=we(c);if(!l)return null;let{ver:o,partial:g}=l;switch(i){case"^":{let y=Re(o);return y?[{op:">=",ver:o},{op:"<",ver:y}]:null}case"~":{let y=g>=2?{major:o.major,minor:o.minor+1,patch:0,pre:[]}:{major:o.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:o},{op:"<",ver:y}]}case">=":return[{op:">=",ver:o}];case">":return g===1?[{op:">=",ver:{major:o.major+1,minor:0,patch:0,pre:[]}}]:g===2?[{op:">=",ver:{major:o.major,minor:o.minor+1,patch:0,pre:[]}}]:[{op:">",ver:o}];case"<":return g===1?[{op:"<",ver:{major:o.major,minor:0,patch:0,pre:[]}}]:g===2?[{op:"<",ver:{major:o.major,minor:o.minor,patch:0,pre:[]}}]:[{op:"<",ver:o}];case"<=":return[{op:"<=",ver:o}];case"=":case void 0:return g===1?[{op:">=",ver:o},{op:"<",ver:{major:o.major+1,minor:0,patch:0,pre:[]}}]:g===2?[{op:">=",ver:o},{op:"<",ver:{major:o.major,minor:o.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:o}];default:return null}}function Re(i){return i.major>0?{major:i.major+1,minor:0,patch:0,pre:[]}:i.minor>0?{major:0,minor:i.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:i.patch+1,pre:[]}}function we(i){let c=i.replace(/^v/,"").trim();if(!c||c==="*"||c==="x"||c==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let l=c.split("."),o=[],g=0;for(let b of l.slice(0,3))if(/^\\d+$/.test(b))o.push(Number(b)),g++;else{if(b==="x"||b==="X"||b==="*")break;break}let y=c.split("-"),w=y.length>1?y.slice(1).join("-").split("+")[0].split("."):[];return g===0&&w.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:o[0]??0,minor:o[1]??0,patch:o[2]??0,pre:w},partial:g}}function be(i,c){switch(c){case">=":return i>=0;case">":return i>0;case"<":return i<0;case"<=":return i<=0;case"=":return i===0}}function Pe(i,c,l){let o=`${i.major}.${i.minor}.${i.patch}`+(i.pre.length?`-${i.pre.join(".")}`:"");if(l.upper)return!(!(O(o,`${l.ver.major}.${l.ver.minor}.${l.ver.patch}`+(l.ver.pre.length?`-${l.ver.pre.join(".")}`:""))>=0)||!(O(o,`${l.upper.major}.${l.upper.minor}.${l.upper.patch}`)<0));let g=O(o,`${l.ver.major}.${l.ver.minor}.${l.ver.patch}`+(l.ver.pre.length?`-${l.ver.pre.join(".")}`:"")),y=be(g,l.op);return l.ver.pre.length>0&&i.pre.length===0&&(l.op===">"||l.op==="<")?!1:y}var S=class extends Error{code;details;constructor(c,l,o){super(`[fulgurjs:${c}] ${l}`),this.name="FgError",this.code=c,this.details=o}},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 W="5.0.4";var _e="__fulgurjsSetup",$e="__FULGURJS_APP_CONFIG__",D=15e3,z=2,Me=5,ve=3e4,Ie=4e3,Te=.2;function Oe(){let i=Object.create(null),c=new Map,l=[],o=new Set,g=new Map,y=new Map,w=new WeakMap,b=new WeakMap,I={},Z=()=>{for(let e of l)try{e.init?.(I)}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)}},k=new Map,A,Q=e=>{let r=k.get(e);return r||k.set(e,r={}),r},V=()=>globalThis[$e]??{};async function K(e,r,t,n){let a=u=>u instanceof S?u:new S(E.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${n} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${String(u?.message??u)}\n\\u4FEE\\u6CD5\\uFF1A\\u68C0\\u67E5\\u5E76\\u4FEE\\u590D\\u8BE5 ${n} \\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:n});A=e;let s;try{s=r(t)}catch(u){throw a(u)}finally{A=void 0}try{await s}catch(u){throw a(u)}}async function ee(e,r,t,n){e.debug.setup="pending";try{if(e.manifestUrl)try{await F(`${e.name}/${t}`)}catch{}let a=await r.get(t),s=a?.default;if(typeof s!="function")throw new S(E.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${t}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${a==null?String(a):typeof s}\\uFF0C\\u5E94\\u4E3A\\u51FD\\u6570\\u3002\n\\u4FEE\\u6CD5\\uFF1A\\u5728 setup \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u4E2D\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u51FD\\u6570\\uFF0C\\u4F8B\\u5982 export default async function setup(context) { ... }\\uFF1B\\u5177\\u540D onSession \\u53EF\\u9009\\u3002`,{remote:e.name,module:t});if(a.onSession!==void 0&&typeof a.onSession!="function")throw new S(E.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${t}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1AonSession \\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${typeof a.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:t});n.setupExports=a,await K(e.name,s,{appContext:V(),signal:(n.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(a){throw e.debug.setup="failed",n.setupExports=void 0,a}}async function re(e,r,t){let n=V(),a=n?.sessionKey;if(typeof a!="string"||a==="")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 ${a===void 0?"\\u7F3A\\u5931":JSON.stringify(a)}\\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===a)return r.sessionPromise;r.controller?.abort();let s=new AbortController;r.controller=s,r.sessionKey=a;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),p=(async()=>{await u,!s.signal.aborted&&await K(e.name,t,{appContext:n,sessionKey:a,signal:s.signal},"onSession")})();return r.sessionPromise=p,p.catch(()=>{r.sessionKey===a&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),p}async function te(e,r){let t=r?.[_e];if(typeof t!="string"||t==="")return;let n=Q(e.name);n.setupPromise||(n.setupPromise=ee(e,r,t,n).catch(s=>{throw n.setupPromise=void 0,s})),await n.setupPromise;let a=n.setupExports?.onSession;typeof a=="function"&&await re(e,n,a)}function ne(){for(let e of k.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let U=e=>i[e]??=Object.create(null);function _(e){try{I.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}function oe(e="default"){return U(e),i}function se(e,r,t,n,a={}){let s=U(e||"default"),u=Object.hasOwn(s,r)?s[r]:void 0,p=u&&typeof u=="object"?u:void 0;p||(p=Object.create(null),s[r]=p),!(Object.hasOwn(p,t)&&p[t])&&(p[t]={version:t,get:n,from:a.from??"unknown",eager:!!a.eager,loaded:!!a.loaded})}function ie(e){let r=(t,n,a)=>{if(t===void 0)return;if(!(typeof t=="number"&&(a?Number.isInteger(t)&&t>=0&&t<=10:Number.isFinite(t)&&t>0)))throw new Error(`[fulgurjs] \\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 ${n} \\u914D\\u7F6E\\u65E0\\u6548\\uFF1A\\u5F53\\u524D\\u4E3A ${String(t)}\\uFF0C\\u5E94\\u4E3A${a?" 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 H(e){for(let r of e){ie(r);let t=c.get(r.name);c.set(r.name,{timeout:D,retries:z,...t,...r,breakerThreshold:r.breaker?.threshold??t?.breakerThreshold??Me,breakerResetMs:r.breaker?.resetMs??t?.breakerResetMs??ve,state:t?.state??"idle",breakerState:t?.breakerState??{fails:0,openUntil:0},entryInflight:t?.entryInflight??new Map,debug:t?.debug??{entry:r.entry,status:"idle",setup:"none"}})}}function ae(e){H([e])}function ce(e){l.push(...e),Z()}async function le(e,r={}){let t=r.shareScope||"default",n=r.shareKey||e,s=U(t)[n]||{},u=Object.keys(s),p=r.requiredVersion,h=u.filter(f=>p===void 0||p===!1||j(f,p)),d;if(r.singleton&&u.length>0){let f=u.filter(m=>s[m].loaded);if(d=[...f.length?f:u].sort(O).pop(),!h.includes(d)){let m=s[d],v=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${n}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u5E94\\u7528\\u8981\\u6C42 ${p??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${u.join("\\u3001")}\\uFF1B\\u4E3A\\u4FDD\\u8BC1\\u5168\\u9875\\u53EA\\u4F7F\\u7528\\u4E00\\u4E2A\\u5B9E\\u4F8B\\uFF0C\\u6700\\u7EC8\\u590D\\u7528 ${m.from} \\u63D0\\u4F9B\\u7684 ${d}\\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 T=new S(E.SHARE_STRICT_VERSION,v,{shareKey:n,requiredVersion:p});throw _({remote:m.from,error:T}),T}let $=`${t}|${n}|${p??"*"}|${d}|${u.join(",")}`;o.has($)||(o.add($),console.warn(`[fulgurjs:MFU-010] ${v}`))}}else if(d=[...h].sort(O).pop(),!d){if(r.strictVersion){let m=new S(E.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${t}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${n}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${p}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${u.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:n,error:m}),m}if(r.fallback)return r.fallback();let f=new S(E.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${n}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u4F5C\\u7528\\u57DF "${t}" \\u4E2D\\u6CA1\\u6709\\u7B26\\u5408 ${p??"\\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:n,requiredVersion:p});throw _({remote:n,error:f}),f}let R=s[d];if(I.resolveShare){let f=await I.resolveShare({shareKey:n,shareScope:t,requiredVersion:p,picked:R,available:Object.values(s)});f&&(R=f)}return R.loaded=!0,R.get()}function q(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 G(e,r,t){return new Promise((n,a)=>{let s=setTimeout(()=>a(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${t}`)),r);e.then(u=>{clearTimeout(s),n(u)},u=>{clearTimeout(s),a(u)})})}let ue=e=>new Promise(r=>setTimeout(r,e));function N(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 t=`\\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)console.warn(`[fulgurjs] ${t} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`);else throw Object.assign(new Error(t),{code:E.REMOTE_NAME_MISMATCH})}}async function J(e,r){let t=r.entryInflight.get(e),n=t??import(e);return t||(r.entryInflight.set(e,n),n.catch(()=>r.entryInflight.delete(e))),G(n,r.timeout??D,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${q(e)}`)}async function X(e,r){let t=e.shareScope||"default";if(e.container){let s=b.get(e.container);if(s&&s!==t)throw new S(E.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${s}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${t}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return e.container}if(e.containerPromise)return e.containerPromise;let n=e.breakerState;if(n.openUntil>Date.now()){let s=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(n.openUntil).toISOString()} \\u540E\\u5141\\u8BB8\\u91CD\\u8BD5\\u3002\\u8BF7\\u5148\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u670D\\u52A1\\u548C\\u7F51\\u7EDC\\u3002`,{remote:e.name});throw _({remote:e.name,error:s}),s}e.state="loading",e.debug.status="loading";let a=(async()=>{let s=[];if(e.promise)s.push(async()=>{let f=await G(e.promise(),e.timeout??D,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),m=typeof f=="string"?await J(f,e):f;return N(m,e),m});else for(let f of[e.entry,...e.fallback??[]])s.push(async()=>{let m=await J(f,e);return N(m,e),m});let u,p,h=!1,d=r?.retries??e.retries??z;for(let f of s){for(let m=0;m<=d;m++){let v=performance.now();try{u=await f(),e.lastLoadMs=Math.round(performance.now()-v),e.debug.lastLoadMs=e.lastLoadMs,h=!0;break}catch($){if(p=$,$?.code)throw $;m<d&&await ue(Math.min(Ie,200*2**m)*(1-Te*(1-2*Math.random())))}}if(h)break}if(!h||!u){let f=q(e.entry),m=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(m.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${f}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),m.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),m.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(m.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${f}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),m.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 ${f} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${String(p?.message??p)}\n\\u4FEE\\u6CD5\\uFF1A\n${m.join(`\n`)}`,{remote:e.name})}N(u,e);let R=b.get(u);if(R&&R!==t)throw new S(E.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${R}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${t}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof u.init=="function"&&await u.init(i),b.set(u,t),e.container=u,e.state="loaded",e.debug.status="loaded",n.fails=0,u})();e.containerPromise=a;try{return await a}catch(s){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=String(s?.message??s),n.fails+=1,n.fails>=e.breakerThreshold&&(n.openUntil=Date.now()+e.breakerResetMs,n.fails=0),s instanceof S)throw _({remote:e.name,error:s}),s;if(s?.code)throw _({remote:e.name,error:s}),s;let u=new S(E.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(s?.message??s)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name});throw _({remote:e.name,error:u}),u}}function C(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:B(e.slice(r+1))}}function B(e){return e?e.startsWith(".")?e:`./${e}`:""}async function fe(e,r){let{remote:t,module:n}=C(e);if(n&&A===t)throw new S(E.SETUP_RECURSION,`\\u73B0\\u8C61\\uFF1A\\u52A0\\u8F7D "${e}" \\u65F6\\uFF0C\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\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:t});try{I.beforeLoadRemote?.({remote:t,module:n})}catch(h){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",h)}let a=c.get(t);if(!a)throw new S(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:t});let s;try{let h=n&&a.manifestUrl?F(e):Promise.resolve();[s]=await Promise.all([X(a,{retries:r?.retries}),h])}catch(h){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`,h),_({remote:t,error:h}),await r.fallbackModule();throw h}if(!n)return s;await te(a,s);let u=`${t}@${a.shareScope||"default"}#${n}`;g.has(u)||g.set(u,s.get(n).catch(h=>{throw g.delete(u),h instanceof S||h?.code?h:new S(E.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u52A0\\u8F7D\\u6A21\\u5757 "${n}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(h?.message??h)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:t,module:n})}));let p;try{p=await g.get(u)}catch(h){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`,h),_({remote:t,error:h}),await r.fallbackModule();throw h}try{I.afterLoadRemote?.({remote:t,module:n,module_ns:p})}catch(h){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",h)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let h=new S(E.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u7684\\u6A21\\u5757 "${n}" \\u6CA1\\u6709\\u4EFB\\u4F55\\u5BFC\\u51FA\\u3002\\u8BF7\\u68C0\\u67E5 exposes \\u6307\\u5411\\u7684\\u6587\\u4EF6\\u53CA\\u5176 export \\u58F0\\u660E\\u3002`,{remote:t,module:n});_({remote:t,error:h}),console.error(h.message)}return p}function me(e){let r=c.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 X(r)}async function F(e,r={}){let{remote:t,module:n}=C(e),a=c.get(t);if(!a)throw new S(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:t});let s=r.mode??"preload",u=(d,R)=>{if(d.sheet)return Promise.resolve();let f=w.get(d);if(f)return f;let m=new Promise(v=>{let $=()=>{d.removeEventListener("load",$),d.removeEventListener("error",T),v()},T=()=>{_({remote:t,error:new S(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${R}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:t})}),$()};d.addEventListener("load",$,{once:!0}),d.addEventListener("error",T,{once:!0}),d.sheet&&$()});return w.set(d,m),m},p=(d,R)=>{if(typeof document>"u")return Promise.resolve();let f=document.querySelector(`link[href="${d}"]`);if(f)return R==="style"&&s==="preload"?w.get(f)??Promise.resolve():Promise.resolve();let m=document.createElement("link");m.rel=R==="style"?"stylesheet":"modulepreload",m.href=d,s==="prefetch"&&(m.fetchPriority="low");let v=R==="style"?u(m,d):Promise.resolve();return document.head.appendChild(m),R==="style"&&s==="preload"?v:Promise.resolve()},h=d=>{let R=typeof document<"u"?document.baseURI:void 0,f=new URL(a.entry,R||"http://fulgurjs.invalid/");return!f.pathname.endsWith("/")&&!f.pathname.split("/").pop().includes(".")&&(f.pathname+="/"),new URL(d,f).href};try{if(a.manifestUrl){let d=y.get(a.manifestUrl);d||(d=fetch(a.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(f=>f.ok?f.json():void 0),y.set(a.manifestUrl,d),d.then(f=>{f||y.delete(a.manifestUrl)},()=>y.delete(a.manifestUrl)));let R=await d;if(R){let f=R.schemaVersion;if(typeof f=="number"&&(!Number.isInteger(f)||f>1)){_({remote:t,error:new S(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(f)}\\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:t})}),await p(a.entry,"modulepreload");return}await p(a.entry,"modulepreload");let m=R.exposes,v=Array.isArray(m)?m.filter(M=>M&&typeof M=="object").map(M=>[String(M.name??""),M]):m&&typeof m=="object"?Object.entries(m):[],$=n?v.filter(([M,x])=>B(String(x?.name??M))===n):v,T=[];for(let[,M]of $)if(typeof M?.file=="string"&&await p(h(M.file),"modulepreload"),Array.isArray(M?.css))for(let x of M.css){if(typeof x!="string")continue;let pe=p(h(x),"style");s==="preload"&&T.push(pe)}await Promise.all(T);return}}await p(a.entry,"modulepreload")}catch(d){_({remote:t,error:new S(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(d?.message??d)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:t})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=i,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,t]of c)e[r]={...t.debug,entry:t.entry};return e},errors:[]}),{shareScopeMap:i,initSharing:oe,registerShare:se,registerRemotes:H,registerRemote:ae,registerPlugins:ce,loadShare:le,loadRemote:fe,getContainer:me,preloadRemote:F,parseSpec:C,clearSessionState:ne}}var Y=globalThis,P=Y.__FULGURJS_RUNTIME__??Oe();Y.__FULGURJS_RUNTIME__=P;try{Object.freeze(P)}catch{}var Ce=W;function Fe(){return P}var De=P.initSharing,Ve=P.registerShare,Ke=P.registerRemotes,He=P.registerRemote,qe=P.registerPlugins,Ge=P.loadShare,Je=P.loadRemote,Xe=P.getContainer,Be=P.preloadRemote,We=P.parseSpec,ze=P.clearSessionState,Ye=P.shareScopeMap;function Ze(i){if(i&&typeof i=="object"&&"default"in i){let c=i.default;return c!==void 0?c:i}return i}var Qe=P;export{ze as clearSessionState,Qe as default,Xe as getContainer,Fe as getRuntime,De as initSharing,Je as loadRemote,Ge as loadShare,We as parseSpec,Be as preloadRemote,qe as registerPlugins,He as registerRemote,Ke as registerRemotes,Ve as registerShare,P as runtime,Ye as shareScopeMap,Ze as unwrapDefault,Ce as version};\n';
|
|
2022
|
+
var runtime_code_gen_default = 'var de=/^v?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?$/;function L(a){let c=de.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 ge(a,c){if(a.length===0&&c.length===0)return 0;if(a.length===0)return 1;if(c.length===0)return-1;let l=Math.max(a.length,c.length);for(let o=0;o<l;o++){let g=a[o],y=c[o];if(g===void 0)return-1;if(y===void 0)return 1;let w=/^\\d+$/.test(g),b=/^\\d+$/.test(y);if(w&&b){let I=Number(g)-Number(y);if(I!==0)return I}else{if(w!==b)return w?-1:1;if(g!==y)return g<y?-1:1}}return 0}function O(a,c){let l=L(a),o=L(c);return!l||!o?a<c?-1:a>c?1:0:l.major!==o.major?l.major-o.major:l.minor!==o.minor?l.minor-o.minor:l.patch!==o.patch?l.patch-o.patch:ge(l.pre,o.pre)}var he=/^[a-z]+[+:-]/i;function j(a,c){if(c===!1||c==null||c==="")return!0;let l=String(c).trim();return!l||l==="*"||l==="latest"||he.test(l)?!0:l.split("||").some(o=>ye(a,o.trim()))}function ye(a,c){if(!c||c==="*")return!L(a)?.pre.length;let l=c.split(/\\s+-\\s+/);if(l.length===2){let y=l[0].trim(),w=l[1].trim();return!(!j(a,`>=${y}`)||!j(a,`<=${w}`))}let o=L(a);if(!o)return!1;let g=Se(c);if(g===null)return!0;for(let y of g)if(!Pe(o,a,y))return!1;return!(o.pre.length>0&&!g.some(y=>y.ver.pre.length>0)&&!g.some(w=>w.ver.major===o.major&&w.ver.minor===o.minor&&w.ver.patch===o.patch))}function Se(a){let c=[],l=a.trim().split(/\\s+/).filter(Boolean);if(l.length===0)return null;for(let o of l){let g=/^(>=|<=|>|<|=|\\^|~)?(.*)$/.exec(o);if(!g)return null;let y=g[1],w=g[2],b=Ee(y,w);if(b===null)return null;c.push(...b)}return c}function Ee(a,c){let l=we(c);if(!l)return null;let{ver:o,partial:g}=l;switch(a){case"^":{let y=Re(o);return y?[{op:">=",ver:o},{op:"<",ver:y}]:null}case"~":{let y=g>=2?{major:o.major,minor:o.minor+1,patch:0,pre:[]}:{major:o.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:o},{op:"<",ver:y}]}case">=":return[{op:">=",ver:o}];case">":return g===1?[{op:">=",ver:{major:o.major+1,minor:0,patch:0,pre:[]}}]:g===2?[{op:">=",ver:{major:o.major,minor:o.minor+1,patch:0,pre:[]}}]:[{op:">",ver:o}];case"<":return g===1?[{op:"<",ver:{major:o.major,minor:0,patch:0,pre:[]}}]:g===2?[{op:"<",ver:{major:o.major,minor:o.minor,patch:0,pre:[]}}]:[{op:"<",ver:o}];case"<=":return[{op:"<=",ver:o}];case"=":case void 0:return g===1?[{op:">=",ver:o},{op:"<",ver:{major:o.major+1,minor:0,patch:0,pre:[]}}]:g===2?[{op:">=",ver:o},{op:"<",ver:{major:o.major,minor:o.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:o}];default:return null}}function Re(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 we(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 l=c.split("."),o=[],g=0;for(let b of l.slice(0,3))if(/^\\d+$/.test(b))o.push(Number(b)),g++;else{if(b==="x"||b==="X"||b==="*")break;break}let y=c.split("-"),w=y.length>1?y.slice(1).join("-").split("+")[0].split("."):[];return g===0&&w.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:o[0]??0,minor:o[1]??0,patch:o[2]??0,pre:w},partial:g}}function be(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 Pe(a,c,l){let o=`${a.major}.${a.minor}.${a.patch}`+(a.pre.length?`-${a.pre.join(".")}`:"");if(l.upper)return!(!(O(o,`${l.ver.major}.${l.ver.minor}.${l.ver.patch}`+(l.ver.pre.length?`-${l.ver.pre.join(".")}`:""))>=0)||!(O(o,`${l.upper.major}.${l.upper.minor}.${l.upper.patch}`)<0));let g=O(o,`${l.ver.major}.${l.ver.minor}.${l.ver.patch}`+(l.ver.pre.length?`-${l.ver.pre.join(".")}`:"")),y=be(g,l.op);return l.ver.pre.length>0&&a.pre.length===0&&(l.op===">"||l.op==="<")?!1:y}var S=class extends Error{code;details;constructor(c,l,o){super(`[fulgurjs:${c}] ${l}`),this.name="FgError",this.code=c,this.details=o}},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 W="5.1.1";var $e="__fulgurjsSetup",_e="__FULGURJS_APP_CONFIG__",D=15e3,z=2,Me=5,ve=3e4,Ie=4e3,Te=.2;function Oe(){let a=Object.create(null),c=new Map,l=[],o=new Set,g=new Map,y=new Map,w=new WeakMap,b=new WeakMap,I={},Z=()=>{for(let e of l)try{e.init?.(I)}catch(r){console.warn("[fulgurjs] \\u8FD0\\u884C\\u65F6\\u6269\\u5C55\\u521D\\u59CB\\u5316\\u5931\\u8D25\\uFF0C\\u8BE5\\u6269\\u5C55\\u5C06\\u4E0D\\u53EF\\u7528\\uFF1A",e.name,r)}},U=new Map,k,Q=e=>{let r=U.get(e);return r||U.set(e,r={}),r},V=()=>globalThis[_e]??{};async function K(e,r,t,s){let i=u=>u instanceof S?u:new S(E.SETUP_RUN_FAILED,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e}" \\u7684 ${s} \\u521D\\u59CB\\u5316\\u5931\\u8D25\\u3002\n\\u539F\\u56E0\\uFF1A${String(u?.message??u)}\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});k=e;let n;try{n=r(t)}catch(u){throw i(u)}finally{k=void 0}try{await n}catch(u){throw i(u)}}async function ee(e,r,t,s){e.debug.setup="pending";try{if(e.manifestUrl)try{await F(`${e.name}/${t}`)}catch{}let i=await r.get(t),n=i?.default;if(typeof n!="function")throw new S(E.SETUP_INVALID_EXPORT,`\\u73B0\\u8C61\\uFF1A\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 setup \\u6A21\\u5757 "${t}" \\u65E0\\u6CD5\\u521D\\u59CB\\u5316\\u3002\n\\u539F\\u56E0\\uFF1A\\u9ED8\\u8BA4\\u5BFC\\u51FA\\u7C7B\\u578B\\u4E3A ${i==null?String(i):typeof n}\\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:t});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 "${t}" \\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:t});s.setupExports=i,await K(e.name,n,{appContext:V(),signal:(s.controller??=new AbortController).signal},"setup"),e.debug.setup="ready"}catch(i){throw e.debug.setup="failed",s.setupExports=void 0,i}}async function re(e,r,t){let s=V(),i=s?.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 n=new AbortController;r.controller=n,r.sessionKey=i;let u=r.sessionPromise?r.sessionPromise.catch(()=>{}):Promise.resolve(),p=(async()=>{await u,!n.signal.aborted&&await K(e.name,t,{appContext:s,sessionKey:i,signal:n.signal},"onSession")})();return r.sessionPromise=p,p.catch(()=>{r.sessionKey===i&&(r.sessionKey=void 0,r.sessionPromise=void 0)}),p}async function te(e,r){let t=r?.[$e];if(typeof t!="string"||t==="")return;let s=Q(e.name);s.setupPromise||(s.setupPromise=ee(e,r,t,s).catch(n=>{throw s.setupPromise=void 0,n})),await s.setupPromise;let i=s.setupExports?.onSession;typeof i=="function"&&await re(e,s,i)}function ne(){for(let e of U.values()){try{e.controller?.abort()}catch{}e.sessionKey=void 0,e.sessionPromise=void 0}}let A=e=>a[e]??=Object.create(null);function $(e){try{I.onRemoteError?.(e)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("fulgurjs:error",{detail:e}))}function oe(e="default"){return A(e),a}function se(e,r,t,s,i={}){let n=A(e||"default"),u=Object.hasOwn(n,r)?n[r]:void 0,p=u&&typeof u=="object"?u:void 0;p||(p=Object.create(null),n[r]=p),!(Object.hasOwn(p,t)&&p[t])&&(p[t]={version:t,get:s,from:i.from??"unknown",eager:!!i.eager,loaded:!!i.loaded})}function ie(e){let r=(t,s,i)=>{if(t===void 0)return;if(!(typeof t=="number"&&(i?Number.isInteger(t)&&t>=0&&t<=10:Number.isFinite(t)&&t>0)))throw new Error(`[fulgurjs] \\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u7684 ${s} \\u914D\\u7F6E\\u65E0\\u6548\\uFF1A\\u5F53\\u524D\\u4E3A ${String(t)}\\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 H(e){for(let r of e){ie(r);let t=c.get(r.name);c.set(r.name,{timeout:D,retries:z,...t,...r,breakerThreshold:r.breaker?.threshold??t?.breakerThreshold??Me,breakerResetMs:r.breaker?.resetMs??t?.breakerResetMs??ve,state:t?.state??"idle",breakerState:t?.breakerState??{fails:0,openUntil:0},entryInflight:t?.entryInflight??new Map,entryFailCounts:t?.entryFailCounts??new Map,debug:t?.debug??{entry:r.entry,status:"idle",setup:"none"}})}}function ae(e){H([e])}function ce(e){l.push(...e),Z()}async function le(e,r={}){let t=r.shareScope||"default",s=r.shareKey||e,n=A(t)[s]||{},u=Object.keys(n),p=r.requiredVersion,h=u.filter(f=>p===void 0||p===!1||j(f,p)),d;if(r.singleton&&u.length>0){let f=u.filter(m=>n[m].loaded);if(d=[...f.length?f:u].sort(O).pop(),!h.includes(d)){let m=n[d],v=`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u5355\\u4F8B "${s}" \\u7684\\u5B9E\\u9645\\u7248\\u672C\\u4E0D\\u6EE1\\u8DB3\\u5F53\\u524D\\u5E94\\u7528\\u8981\\u6C42\\u3002\n\\u539F\\u56E0\\uFF1A\\u5E94\\u7528\\u8981\\u6C42 ${p??"\\u4EFB\\u610F\\u7248\\u672C"}\\uFF0C\\u4F5C\\u7528\\u57DF\\u4E2D\\u6709 ${u.join("\\u3001")}\\uFF1B\\u4E3A\\u4FDD\\u8BC1\\u5168\\u9875\\u53EA\\u4F7F\\u7528\\u4E00\\u4E2A\\u5B9E\\u4F8B\\uFF0C\\u6700\\u7EC8\\u590D\\u7528 ${m.from} \\u63D0\\u4F9B\\u7684 ${d}\\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 T=new S(E.SHARE_STRICT_VERSION,v,{shareKey:s,requiredVersion:p});throw $({remote:m.from,error:T}),T}let _=`${t}|${s}|${p??"*"}|${d}|${u.join(",")}`;o.has(_)||(o.add(_),console.warn(`[fulgurjs:MFU-010] ${v}`))}}else if(d=[...h].sort(O).pop(),!d){if(r.strictVersion){let m=new S(E.SHARE_STRICT_VERSION,`\\u73B0\\u8C61\\uFF1A\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${t}" \\u4E2D\\u627E\\u4E0D\\u5230\\u7B26\\u5408\\u8981\\u6C42\\u7684 "${s}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u8981\\u6C42\\u7248\\u672C ${p}\\uFF0C\\u5F53\\u524D\\u53EF\\u7528\\u7248\\u672C\\u4E3A ${u.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:s,error:m}),m}if(r.fallback)return r.fallback();let f=new S(E.SHARE_NOT_AVAILABLE,`\\u73B0\\u8C61\\uFF1A\\u65E0\\u6CD5\\u52A0\\u8F7D\\u5171\\u4EAB\\u4F9D\\u8D56 "${s}"\\u3002\n\\u539F\\u56E0\\uFF1A\\u4F5C\\u7528\\u57DF "${t}" \\u4E2D\\u6CA1\\u6709\\u7B26\\u5408 ${p??"\\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:p});throw $({remote:s,error:f}),f}let R=n[d];if(I.resolveShare){let f=await I.resolveShare({shareKey:s,shareScope:t,requiredVersion:p,picked:R,available:Object.values(n)});f&&(R=f)}return R.loaded=!0,R.get()}function q(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 G(e,r,t){return new Promise((s,i)=>{let n=setTimeout(()=>i(new Error(`\\u7B49\\u5F85\\u8D85\\u8FC7 ${r} \\u6BEB\\u79D2\\uFF1A${t}`)),r);e.then(u=>{clearTimeout(n),s(u)},u=>{clearTimeout(n),i(u)})})}let ue=e=>new Promise(r=>setTimeout(r,e));function N(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 t=`\\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)console.warn(`[fulgurjs] ${t} \\u5F53\\u524D\\u662F\\u52A8\\u6001 Promise \\u8FDC\\u7A0B\\uFF0C\\u7EE7\\u7EED\\u52A0\\u8F7D\\u3002`);else throw Object.assign(new Error(t),{code:E.REMOTE_NAME_MISMATCH})}}async function J(e,r){let t=r.entryFailCounts.get(e)??0,s=t>0?`${e}${e.includes("?")?"&":"?"}fulgurjs_retry=${t}`:e,i=r.entryInflight.get(e),n=i??import(s);return i||(r.entryInflight.set(e,n),n.catch(()=>{r.entryInflight.delete(e),r.entryFailCounts.set(e,(r.entryFailCounts.get(e)??0)+1)})),G(n,r.timeout??D,`\\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5165\\u53E3 ${q(e)}`)}async function X(e,r){let t=e.shareScope||"default";if(e.container){let n=b.get(e.container);if(n&&n!==t)throw new S(E.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${n}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${t}" \\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 n=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(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:n}),n}e.state="loading",e.debug.status="loading";let i=(async()=>{let n=[];if(e.promise)n.push(async()=>{let f=await G(e.promise(),e.timeout??D,`\\u89E3\\u6790\\u52A8\\u6001\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"`),m=typeof f=="string"?await J(f,e):f;return N(m,e),m});else for(let f of[e.entry,...e.fallback??[]])n.push(async()=>{let m=await J(f,e);return N(m,e),m});let u,p,h=!1,d=r?.retries??e.retries??z;for(let f of n){for(let m=0;m<=d;m++){let v=performance.now();try{u=await f(),e.lastLoadMs=Math.round(performance.now()-v),e.debug.lastLoadMs=e.lastLoadMs,h=!0;break}catch(_){if(p=_,_?.code)throw _;m<d&&await ue(Math.min(Ie,200*2**m)*(1-Te*(1-2*Math.random())))}}if(h)break}if(!h||!u){let f=q(e.entry),m=[];throw/^https?:\\/\\//.test(e.entry)&&typeof location<"u"?(m.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${f}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u5DF2\\u542F\\u52A8\\uFF0C\\u5E76\\u8FD4\\u56DE JS \\u800C\\u975E HTML\\u3002`),m.push("2. \\u6838\\u5BF9 federation({ remotes }) \\u4E2D\\u7684\\u5730\\u5740\\uFF1B\\u5F00\\u53D1\\u548C\\u751F\\u4EA7\\u5730\\u5740\\u53EF\\u4EE5\\u4E0D\\u540C\\u3002"),m.push("3. \\u82E5\\u8DE8\\u57DF\\uFF0C\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5F00\\u53D1\\u670D\\u52A1\\u7684 server.cors \\u914D\\u7F6E\\u3002")):(m.push(`1. \\u5728\\u6D4F\\u89C8\\u5668\\u6253\\u5F00 ${f}\\uFF0C\\u786E\\u8BA4\\u8FDC\\u7A0B\\u5E94\\u7528\\u5DF2\\u90E8\\u7F72\\uFF0C\\u4E14\\u5165\\u53E3\\u8FD4\\u56DE JS\\u3002`),m.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 ${f} \\u52A0\\u8F7D\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}"\\u3002\n\\u539F\\u56E0\\uFF1A${String(p?.message??p)}\n\\u4FEE\\u6CD5\\uFF1A\n${m.join(`\n`)}`,{remote:e.name})}N(u,e);let R=b.get(u);if(R&&R!==t)throw new S(E.CONTAINER_REINIT_CONFLICT,`\\u8FDC\\u7A0B\\u5BB9\\u5668 "${e.name}" \\u5DF2\\u4F7F\\u7528\\u5171\\u4EAB\\u4F5C\\u7528\\u57DF "${R}" \\u521D\\u59CB\\u5316\\uFF0C\\u4E0D\\u80FD\\u518D\\u4EE5 "${t}" \\u521D\\u59CB\\u5316\\u3002\\u8BF7\\u7EDF\\u4E00 shareScope \\u914D\\u7F6E\\u3002`);return typeof u.init=="function"&&await u.init(a),b.set(u,t),e.container=u,e.state="loaded",e.debug.status="loaded",s.fails=0,u})();e.containerPromise=i;try{return await i}catch(n){if(e.containerPromise=void 0,e.state="failed",e.debug.status="failed",e.debug.error=String(n?.message??n),s.fails+=1,s.fails>=e.breakerThreshold&&(s.openUntil=Date.now()+e.breakerResetMs,s.fails=0),n instanceof S)throw $({remote:e.name,error:n}),n;if(n?.code)throw $({remote:e.name,error:n}),n;let u=new S(E.REMOTE_LOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${e.name}" \\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(n?.message??n)}\\u3002\\u8BF7\\u68C0\\u67E5\\u8FDC\\u7A0B\\u5165\\u53E3\\u3001\\u7F51\\u7EDC\\u53CA\\u5171\\u4EAB\\u4F9D\\u8D56\\u3002`,{remote:e.name});throw $({remote:e.name,error:u}),u}}function C(e){let r=e.indexOf("/");return r===-1?{remote:e,module:""}:{remote:e.slice(0,r),module:B(e.slice(r+1))}}function B(e){return e?e.startsWith(".")?e:`./${e}`:""}async function fe(e,r){let{remote:t,module:s}=C(e);if(s&&k===t)throw new S(E.SETUP_RECURSION,`\\u73B0\\u8C61\\uFF1A\\u52A0\\u8F7D "${e}" \\u65F6\\uFF0C\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\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:t});try{I.beforeLoadRemote?.({remote:t,module:s})}catch(h){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",h)}let i=c.get(t);if(!i)throw new S(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}"\\u3002\\u8BF7\\u5728 federation({ remotes }) \\u4E2D\\u914D\\u7F6E\\uFF0C\\u6216\\u5728\\u52A0\\u8F7D\\u524D\\u8C03\\u7528 registerRemote()\\u3002`,{remote:t});let n;try{let h=s&&i.manifestUrl?F(e):Promise.resolve();[n]=await Promise.all([X(i,{retries:r?.retries}),h])}catch(h){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`,h),$({remote:t,error:h}),await r.fallbackModule();throw h}if(!s)return n;await te(i,n);let u=`${t}@${i.shareScope||"default"}#${s}`;g.has(u)||g.set(u,n.get(s).catch(h=>{throw g.delete(u),h instanceof S||h?.code?h:new S(E.REMOTE_LOAD_FAILED,`\\u65E0\\u6CD5\\u4ECE\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u52A0\\u8F7D\\u6A21\\u5757 "${s}"\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(h?.message??h)}\\u3002\\u8BF7\\u6838\\u5BF9 exposes \\u952E\\u548C\\u8FDC\\u7A0B\\u6784\\u5EFA\\u4EA7\\u7269\\u3002`,{remote:t,module:s})}));let p;try{p=await g.get(u)}catch(h){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`,h),$({remote:t,error:h}),await r.fallbackModule();throw h}try{I.afterLoadRemote?.({remote:t,module:s,module_ns:p})}catch(h){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",h)}if(p&&typeof p=="object"&&Object.keys(p).length===0){let h=new S(E.EMPTY_EXPORTS,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\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:t,module:s});$({remote:t,error:h}),console.error(h.message)}return p}function me(e){let r=c.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 X(r)}async function F(e,r={}){let{remote:t,module:s}=C(e),i=c.get(t);if(!i)throw new S(E.REMOTE_UNKNOWN,`\\u672A\\u77E5\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}"\\u3002\\u8BF7\\u5148\\u6CE8\\u518C\\u8BE5\\u8FDC\\u7A0B\\u5E94\\u7528\\u3002`,{remote:t});let n=r.mode??"preload",u=(d,R)=>{if(d.sheet)return Promise.resolve();let f=w.get(d);if(f)return f;let m=new Promise(v=>{let _=()=>{d.removeEventListener("load",_),d.removeEventListener("error",T),v()},T=()=>{$({remote:t,error:new S(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u7684\\u6837\\u5F0F\\u8D44\\u6E90\\u52A0\\u8F7D\\u5931\\u8D25\\uFF1A${R}\\u3002\\u8BF7\\u68C0\\u67E5\\u6587\\u4EF6\\u662F\\u5426\\u5B58\\u5728\\u4EE5\\u53CA\\u8DE8\\u57DF\\u548C\\u7F13\\u5B58\\u914D\\u7F6E\\u3002`,{remote:t})}),_()};d.addEventListener("load",_,{once:!0}),d.addEventListener("error",T,{once:!0}),d.sheet&&_()});return w.set(d,m),m},p=(d,R)=>{if(typeof document>"u")return Promise.resolve();let f=document.querySelector(`link[href="${d}"]`);if(f)return R==="style"&&n==="preload"?w.get(f)??Promise.resolve():Promise.resolve();let m=document.createElement("link");m.rel=R==="style"?"stylesheet":"modulepreload",m.href=d,n==="prefetch"&&(m.fetchPriority="low");let v=R==="style"?u(m,d):Promise.resolve();return document.head.appendChild(m),R==="style"&&n==="preload"?v:Promise.resolve()},h=d=>{let R=typeof document<"u"?document.baseURI:void 0,f=new URL(i.entry,R||"http://fulgurjs.invalid/");return!f.pathname.endsWith("/")&&!f.pathname.split("/").pop().includes(".")&&(f.pathname+="/"),new URL(d,f).href};try{if(i.manifestUrl){let d=y.get(i.manifestUrl);d||(d=fetch(i.manifestUrl,{cache:"no-cache",signal:AbortSignal.timeout(8e3)}).then(f=>f.ok?f.json():void 0),y.set(i.manifestUrl,d),d.then(f=>{f||y.delete(i.manifestUrl)},()=>y.delete(i.manifestUrl)));let R=await d;if(R){let f=R.schemaVersion;if(typeof f=="number"&&(!Number.isInteger(f)||f>1)){$({remote:t,error:new S(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u7684 manifest \\u534F\\u8BAE\\u7248\\u672C\\u4E3A ${String(f)}\\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:t})}),await p(i.entry,"modulepreload");return}await p(i.entry,"modulepreload");let m=R.exposes,v=Array.isArray(m)?m.filter(M=>M&&typeof M=="object").map(M=>[String(M.name??""),M]):m&&typeof m=="object"?Object.entries(m):[],_=s?v.filter(([M,x])=>B(String(x?.name??M))===s):v,T=[];for(let[,M]of _)if(typeof M?.file=="string"&&await p(h(M.file),"modulepreload"),Array.isArray(M?.css))for(let x of M.css){if(typeof x!="string")continue;let pe=p(h(x),"style");n==="preload"&&T.push(pe)}await Promise.all(T);return}}await p(i.entry,"modulepreload")}catch(d){$({remote:t,error:new S(E.PRELOAD_FAILED,`\\u8FDC\\u7A0B\\u5E94\\u7528 "${t}" \\u9884\\u52A0\\u8F7D\\u5931\\u8D25\\u3002\\u5E95\\u5C42\\u539F\\u56E0\\uFF1A${String(d?.message??d)}\\u3002\\u8BF7\\u68C0\\u67E5 manifest \\u548C\\u8D44\\u6E90\\u5730\\u5740\\u3002`,{remote:t})})}}return typeof window>"u"||(window.__FULGURJS_SCOPE__=a,window.__FULGURJS_INFO__={get remotes(){let e={};for(let[r,t]of c)e[r]={...t.debug,entry:t.entry};return e},errors:[]}),{shareScopeMap:a,initSharing:oe,registerShare:se,registerRemotes:H,registerRemote:ae,registerPlugins:ce,loadShare:le,loadRemote:fe,getContainer:me,preloadRemote:F,parseSpec:C,clearSessionState:ne}}var Y=globalThis,P=Y.__FULGURJS_RUNTIME__??Oe();Y.__FULGURJS_RUNTIME__=P;try{Object.freeze(P)}catch{}var Ce=W;function Fe(){return P}var De=P.initSharing,Ve=P.registerShare,Ke=P.registerRemotes,He=P.registerRemote,qe=P.registerPlugins,Ge=P.loadShare,Je=P.loadRemote,Xe=P.getContainer,Be=P.preloadRemote,We=P.parseSpec,ze=P.clearSessionState,Ye=P.shareScopeMap;function Ze(a){if(a&&typeof a=="object"&&"default"in a){let c=a.default;return c!==void 0?c:a}return a}var Qe=P;export{ze as clearSessionState,Qe as default,Xe as getContainer,Fe as getRuntime,De as initSharing,Je as loadRemote,Ge as loadShare,We as parseSpec,Be as preloadRemote,qe as registerPlugins,He as registerRemote,Ke as registerRemotes,Ve as registerShare,P as runtime,Ye as shareScopeMap,Ze as unwrapDefault,Ce as version};\n';
|
|
1803
2023
|
|
|
1804
2024
|
// src/index.ts
|
|
1805
2025
|
function readRuntimeCode() {
|
|
@@ -1816,7 +2036,7 @@ function enumerateCjsExports(packageName, appRoot) {
|
|
|
1816
2036
|
if (cached) return cached;
|
|
1817
2037
|
let names = [];
|
|
1818
2038
|
try {
|
|
1819
|
-
const appRequire = (0,
|
|
2039
|
+
const appRequire = (0, import_node_module3.createRequire)(import_node_path6.default.join(appRoot, "package.json"));
|
|
1820
2040
|
const mod = appRequire(packageName);
|
|
1821
2041
|
names = Object.keys(mod);
|
|
1822
2042
|
} catch {
|
|
@@ -1901,10 +2121,10 @@ function federation(options) {
|
|
|
1901
2121
|
const escapeRe = (v) => v.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
1902
2122
|
const filter = new RegExp(`^(${[...aliasToShare.keys()].map(escapeRe).join("|")})$`);
|
|
1903
2123
|
const devBase = normalizeBase(userConfig.base ?? "/");
|
|
2124
|
+
const facadeUrlFor = (shareKey) => `${devBase}@id/__x00__virtual:fulgurjs-shared-ns:${shareKey}?import`;
|
|
1904
2125
|
const sharedExternal = {
|
|
1905
2126
|
name: "fulgurjs:optimize-shared-external",
|
|
1906
2127
|
setup(build) {
|
|
1907
|
-
const facadeUrlFor = (shareKey) => `${devBase}@id/__x00__virtual:fulgurjs-shared-ns:${shareKey}?import`;
|
|
1908
2128
|
const b = build;
|
|
1909
2129
|
b.onResolve({ filter: /fulgurjs-shared-ns:/ }, (args) => ({ path: args.path, external: true }));
|
|
1910
2130
|
b.onResolve({ filter }, (args) => {
|
|
@@ -1925,8 +2145,28 @@ export { default } from ${JSON.stringify(url)};
|
|
|
1925
2145
|
});
|
|
1926
2146
|
}
|
|
1927
2147
|
};
|
|
2148
|
+
const rolldownShared = {
|
|
2149
|
+
name: "fulgurjs:optimize-shared-external",
|
|
2150
|
+
resolveId(source, _importer, opts = {}) {
|
|
2151
|
+
if (source.includes("fulgurjs-shared-ns:")) return { id: source, external: true };
|
|
2152
|
+
if (source.startsWith(`${FULGURJS_STUB_NAMESPACE}:fulgurjs-stub:`)) return source.slice(FULGURJS_STUB_NAMESPACE.length + 1);
|
|
2153
|
+
if (source.startsWith("fulgurjs-stub:")) return source;
|
|
2154
|
+
if (opts.isEntry) return null;
|
|
2155
|
+
const s = aliasToShare.get(source);
|
|
2156
|
+
if (!s) return null;
|
|
2157
|
+
return `fulgurjs-stub:${s.shareKey}`;
|
|
2158
|
+
},
|
|
2159
|
+
load(id) {
|
|
2160
|
+
if (!id.startsWith("fulgurjs-stub:")) return null;
|
|
2161
|
+
const url = facadeUrlFor(id.slice("fulgurjs-stub:".length));
|
|
2162
|
+
return `export * from ${JSON.stringify(url)};
|
|
2163
|
+
export { default } from ${JSON.stringify(url)};
|
|
2164
|
+
`;
|
|
2165
|
+
}
|
|
2166
|
+
};
|
|
1928
2167
|
extra.optimizeDeps = {
|
|
1929
|
-
esbuildOptions: { plugins: [sharedExternal] }
|
|
2168
|
+
esbuildOptions: { plugins: [sharedExternal] },
|
|
2169
|
+
rolldownOptions: { plugins: [rolldownShared] }
|
|
1930
2170
|
};
|
|
1931
2171
|
}
|
|
1932
2172
|
}
|
|
@@ -2070,6 +2310,7 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2070
2310
|
if (bareClean === INIT_VIRTUAL_ID) return RESOLVED.init;
|
|
2071
2311
|
if (bareClean === "virtual:fulgurjs-remote-schema") return bareClean;
|
|
2072
2312
|
if (bareClean === "virtual:fulgurjs-api-facade") return bareClean;
|
|
2313
|
+
if (bareClean === "virtual:fulgurjs-api-facade-react") return bareClean;
|
|
2073
2314
|
if (bareClean === "virtual:fulgurjs-provides") return RESOLVED.provides;
|
|
2074
2315
|
if (bareClean === "virtual:fulgurjs-remote-entry") return RESOLVED.remoteEntry;
|
|
2075
2316
|
if (bareClean.startsWith(SHARED_NS_FACADE_PREFIX)) {
|
|
@@ -2097,7 +2338,10 @@ export { default } from ${JSON.stringify(url)};
|
|
|
2097
2338
|
return genDevProvides(state.normalized);
|
|
2098
2339
|
}
|
|
2099
2340
|
if (clean === "virtual:fulgurjs-api-facade" && state.command === "serve") {
|
|
2100
|
-
return genApiFacade();
|
|
2341
|
+
return genApiFacade("vue");
|
|
2342
|
+
}
|
|
2343
|
+
if (clean === "virtual:fulgurjs-api-facade-react" && state.command === "serve") {
|
|
2344
|
+
return genApiFacade("react");
|
|
2101
2345
|
}
|
|
2102
2346
|
if (clean === "virtual:fulgurjs-remote-schema" && state.normalized) {
|
|
2103
2347
|
if (state.command === "build") return genEmptyRemoteSchemaModule();
|
|
@@ -2254,7 +2498,7 @@ ${code}`, map: null };
|
|
|
2254
2498
|
let file = null;
|
|
2255
2499
|
if (selfFile) {
|
|
2256
2500
|
try {
|
|
2257
|
-
const req = (0,
|
|
2501
|
+
const req = (0, import_node_module3.createRequire)(selfFile);
|
|
2258
2502
|
file = req.resolve(`${alias}/package.json`, { paths: [selfFile] }).replace(/\/package\.json$/, "");
|
|
2259
2503
|
} catch {
|
|
2260
2504
|
file = null;
|
|
@@ -2336,6 +2580,17 @@ ${code}`, map: null };
|
|
|
2336
2580
|
if (hit) state.exposeFiles[e.name] = hit;
|
|
2337
2581
|
}
|
|
2338
2582
|
const entryChunkName = Object.keys(bundle).find((k) => bundle[k].type === "chunk" && k === n.filename);
|
|
2583
|
+
const entryChunk = entryChunkName ? bundle[entryChunkName] : void 0;
|
|
2584
|
+
if (entryChunk && entryChunk.type === "chunk" && /import\((['"])[^'")]+\1\)/.test(entryChunk.code)) {
|
|
2585
|
+
const helper = genProdRetryHelper();
|
|
2586
|
+
entryChunk.code = entryChunk.code.replace(
|
|
2587
|
+
/import\((['"])([^'")]+)\1\)/g,
|
|
2588
|
+
(_m, q, u) => `__fgR(${q}${u}${q})`
|
|
2589
|
+
);
|
|
2590
|
+
entryChunk.code = `${helper}
|
|
2591
|
+
${entryChunk.code}`;
|
|
2592
|
+
debugLog("manifest", { stage: "generateBundle", retryBust: "remoteEntry loaders wrapped" });
|
|
2593
|
+
}
|
|
2339
2594
|
const manifest = genProdManifest(n, state.exposeFiles, entryChunkName ?? n.filename);
|
|
2340
2595
|
debugLog("manifest", {
|
|
2341
2596
|
stage: "generateBundle",
|