@dotobokuri/fleet-console 1.5.0 → 1.5.2
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/AGENTS.md +1 -1
- package/dist/cli-bin.mjs +179 -47
- package/dist/cli.mjs +179 -47
- package/dist/client/assets/{_baseUniq-Bx4tjoo0.js → _baseUniq-DZtdSbAI.js} +1 -1
- package/dist/client/assets/{arc-D2VjIIjy.js → arc-DtGJnR7c.js} +1 -1
- package/dist/client/assets/{architectureDiagram-Q4EWVU46-BZwp8oQE.js → architectureDiagram-Q4EWVU46-LArxXm6l.js} +1 -1
- package/dist/client/assets/{blockDiagram-DXYQGD6D-BFOEZdvM.js → blockDiagram-DXYQGD6D-QIMR_huT.js} +1 -1
- package/dist/client/assets/{c4Diagram-AHTNJAMY-CSR3Fk7i.js → c4Diagram-AHTNJAMY-CZtY_K-W.js} +1 -1
- package/dist/client/assets/channel-B00fySL1.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-CS98Xbj0.js → chunk-4BX2VUAB-BGzO5-sq.js} +1 -1
- package/dist/client/assets/{chunk-4TB4RGXK-CS16wI2h.js → chunk-4TB4RGXK-WdZ6ouQ-.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-CIO8gXOu.js → chunk-55IACEB6-DWqU4cvi.js} +1 -1
- package/dist/client/assets/{chunk-EDXVE4YY-Dp62WKTv.js → chunk-EDXVE4YY-DKVvBdal.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-P-iX66To.js → chunk-FMBD7UC4-hFxQ1nPT.js} +1 -1
- package/dist/client/assets/{chunk-OYMX7WX6-KYR0A13Y.js → chunk-OYMX7WX6-CODPvRHn.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-Bxf_1qP2.js → chunk-QZHKN3VN-DZEyU080.js} +1 -1
- package/dist/client/assets/{chunk-YZCP3GAM-fOywdyl7.js → chunk-YZCP3GAM-CbT2_Nto.js} +1 -1
- package/dist/client/assets/classDiagram-6PBFFD2Q-YQ7U8SzS.js +1 -0
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-YQ7U8SzS.js +1 -0
- package/dist/client/assets/clone-BAW9t59_.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-CFVfzokO.js → cose-bilkent-S5V4N54A-XzqSqD-C.js} +1 -1
- package/dist/client/assets/{dagre-KV5264BT-CfFJpw9h.js → dagre-KV5264BT-CgF9Z5iF.js} +1 -1
- package/dist/client/assets/{diagram-5BDNPKRD-ULNbraD0.js → diagram-5BDNPKRD-oKxvNLqy.js} +1 -1
- package/dist/client/assets/{diagram-G4DWMVQ6-BbMRdy0R.js → diagram-G4DWMVQ6-D0Tf7aYg.js} +1 -1
- package/dist/client/assets/{diagram-MMDJMWI5-xMtFUvhH.js → diagram-MMDJMWI5-XTM7fwZ-.js} +1 -1
- package/dist/client/assets/{diagram-TYMM5635-zoxhe65u.js → diagram-TYMM5635-DEOQIgV5.js} +1 -1
- package/dist/client/assets/{erDiagram-SMLLAGMA-Bsi2YaEX.js → erDiagram-SMLLAGMA-Cx909qfM.js} +1 -1
- package/dist/client/assets/{flowDiagram-DWJPFMVM-CJi0VEgQ.js → flowDiagram-DWJPFMVM-CHyV1yID.js} +1 -1
- package/dist/client/assets/{ganttDiagram-T4ZO3ILL-C6zhjR-p.js → ganttDiagram-T4ZO3ILL-BTzCi2HJ.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-UUTBAWPF-BWwF6PIg.js → gitGraphDiagram-UUTBAWPF-CEulcOho.js} +1 -1
- package/dist/client/assets/{graph-B_LOrVuH.js → graph-DVXKTCe8.js} +1 -1
- package/dist/client/assets/{index-CUwIAcWy.js → index-CwNYg7kD.js} +126 -126
- package/dist/client/assets/{index-qy_LXUbN.css → index-rZEjC7rF.css} +1 -1
- package/dist/client/assets/{infoDiagram-42DDH7IO-lGXnGt9J.js → infoDiagram-42DDH7IO-EHnanSdn.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-UXIWVN3A-BOLdpalb.js → ishikawaDiagram-UXIWVN3A-DxlZOIcm.js} +1 -1
- package/dist/client/assets/{journeyDiagram-VCZTEJTY-BL3YNELi.js → journeyDiagram-VCZTEJTY-Dl4o2ry6.js} +1 -1
- package/dist/client/assets/{kanban-definition-6JOO6SKY-hr-sYeeB.js → kanban-definition-6JOO6SKY-wW9OL1Nm.js} +1 -1
- package/dist/client/assets/{layout-BZ-MMmoc.js → layout-LYsLWyYG.js} +1 -1
- package/dist/client/assets/{linear-DC89C5fp.js → linear-CQknB12x.js} +1 -1
- package/dist/client/assets/{mermaid.core-CwFfQIZ3.js → mermaid.core-iv2IeunS.js} +4 -4
- package/dist/client/assets/{min-CQCIo8ng.js → min-kPNBJbij.js} +1 -1
- package/dist/client/assets/{mindmap-definition-QFDTVHPH-DST5EYZ1.js → mindmap-definition-QFDTVHPH-D0mgmaro.js} +1 -1
- package/dist/client/assets/{pieDiagram-DEJITSTG-B1cKU1RL.js → pieDiagram-DEJITSTG-BuyDCQjg.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-34T5L4WZ-BAoS3KE9.js → quadrantDiagram-34T5L4WZ-CWWBRKlz.js} +1 -1
- package/dist/client/assets/{requirementDiagram-MS252O5E-1Dy-goiy.js → requirementDiagram-MS252O5E-BIgPKlbk.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-XADWPNL6-BiGdJMmS.js → sankeyDiagram-XADWPNL6-q2RMkD0h.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-FGHM5R23-BF2eGtl0.js → sequenceDiagram-FGHM5R23-oD9DHVCm.js} +1 -1
- package/dist/client/assets/{stateDiagram-FHFEXIEX-Bbe8i846.js → stateDiagram-FHFEXIEX-fSJWdemp.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-Dhn8tFKg.js +1 -0
- package/dist/client/assets/{timeline-definition-GMOUNBTQ-C57TZcAM.js → timeline-definition-GMOUNBTQ-DGqMN4UU.js} +1 -1
- package/dist/client/assets/{vennDiagram-DHZGUBPP-CCLKJVMf.js → vennDiagram-DHZGUBPP-BX6MaNWJ.js} +1 -1
- package/dist/client/assets/{wardley-RL74JXVD-CkN25AoB.js → wardley-RL74JXVD-DaYQb95X.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-NUSXRM2D-D7-EokFc.js → wardleyDiagram-NUSXRM2D-tB4_TAZs.js} +1 -1
- package/dist/client/assets/{xychartDiagram-5P7HB3ND-Dr1PKcCW.js → xychartDiagram-5P7HB3ND-CMd9bJvb.js} +1 -1
- package/dist/client/index.html +2 -2
- package/package.json +1 -1
- package/dist/client/assets/channel-DEE95baa.js +0 -1
- package/dist/client/assets/classDiagram-6PBFFD2Q-C48o24xA.js +0 -1
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-C48o24xA.js +0 -1
- package/dist/client/assets/clone-UUGnmCaX.js +0 -1
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-C5NCIJbi.js +0 -1
package/dist/cli.mjs
CHANGED
|
@@ -1094,10 +1094,10 @@ function mergeDefs(...defs) {
|
|
|
1094
1094
|
function cloneDef(schema) {
|
|
1095
1095
|
return mergeDefs(schema._zod.def);
|
|
1096
1096
|
}
|
|
1097
|
-
function getElementAtPath(obj,
|
|
1098
|
-
if (!
|
|
1097
|
+
function getElementAtPath(obj, path19) {
|
|
1098
|
+
if (!path19)
|
|
1099
1099
|
return obj;
|
|
1100
|
-
return
|
|
1100
|
+
return path19.reduce((acc, key) => acc?.[key], obj);
|
|
1101
1101
|
}
|
|
1102
1102
|
function promiseAllObject(promisesObj) {
|
|
1103
1103
|
const keys = Object.keys(promisesObj);
|
|
@@ -1506,11 +1506,11 @@ function explicitlyAborted(x, startIndex = 0) {
|
|
|
1506
1506
|
}
|
|
1507
1507
|
return false;
|
|
1508
1508
|
}
|
|
1509
|
-
function prefixIssues(
|
|
1509
|
+
function prefixIssues(path19, issues) {
|
|
1510
1510
|
return issues.map((iss) => {
|
|
1511
1511
|
var _a3;
|
|
1512
1512
|
(_a3 = iss).path ?? (_a3.path = []);
|
|
1513
|
-
iss.path.unshift(
|
|
1513
|
+
iss.path.unshift(path19);
|
|
1514
1514
|
return iss;
|
|
1515
1515
|
});
|
|
1516
1516
|
}
|
|
@@ -1657,16 +1657,16 @@ function flattenError(error51, mapper = (issue2) => issue2.message) {
|
|
|
1657
1657
|
}
|
|
1658
1658
|
function formatError(error51, mapper = (issue2) => issue2.message) {
|
|
1659
1659
|
const fieldErrors = { _errors: [] };
|
|
1660
|
-
const processError = (error52,
|
|
1660
|
+
const processError = (error52, path19 = []) => {
|
|
1661
1661
|
for (const issue2 of error52.issues) {
|
|
1662
1662
|
if (issue2.code === "invalid_union" && issue2.errors.length) {
|
|
1663
|
-
issue2.errors.map((issues) => processError({ issues }, [...
|
|
1663
|
+
issue2.errors.map((issues) => processError({ issues }, [...path19, ...issue2.path]));
|
|
1664
1664
|
} else if (issue2.code === "invalid_key") {
|
|
1665
|
-
processError({ issues: issue2.issues }, [...
|
|
1665
|
+
processError({ issues: issue2.issues }, [...path19, ...issue2.path]);
|
|
1666
1666
|
} else if (issue2.code === "invalid_element") {
|
|
1667
|
-
processError({ issues: issue2.issues }, [...
|
|
1667
|
+
processError({ issues: issue2.issues }, [...path19, ...issue2.path]);
|
|
1668
1668
|
} else {
|
|
1669
|
-
const fullpath = [...
|
|
1669
|
+
const fullpath = [...path19, ...issue2.path];
|
|
1670
1670
|
if (fullpath.length === 0) {
|
|
1671
1671
|
fieldErrors._errors.push(mapper(issue2));
|
|
1672
1672
|
} else {
|
|
@@ -1693,17 +1693,17 @@ function formatError(error51, mapper = (issue2) => issue2.message) {
|
|
|
1693
1693
|
}
|
|
1694
1694
|
function treeifyError(error51, mapper = (issue2) => issue2.message) {
|
|
1695
1695
|
const result = { errors: [] };
|
|
1696
|
-
const processError = (error52,
|
|
1696
|
+
const processError = (error52, path19 = []) => {
|
|
1697
1697
|
var _a3, _b;
|
|
1698
1698
|
for (const issue2 of error52.issues) {
|
|
1699
1699
|
if (issue2.code === "invalid_union" && issue2.errors.length) {
|
|
1700
|
-
issue2.errors.map((issues) => processError({ issues }, [...
|
|
1700
|
+
issue2.errors.map((issues) => processError({ issues }, [...path19, ...issue2.path]));
|
|
1701
1701
|
} else if (issue2.code === "invalid_key") {
|
|
1702
|
-
processError({ issues: issue2.issues }, [...
|
|
1702
|
+
processError({ issues: issue2.issues }, [...path19, ...issue2.path]);
|
|
1703
1703
|
} else if (issue2.code === "invalid_element") {
|
|
1704
|
-
processError({ issues: issue2.issues }, [...
|
|
1704
|
+
processError({ issues: issue2.issues }, [...path19, ...issue2.path]);
|
|
1705
1705
|
} else {
|
|
1706
|
-
const fullpath = [...
|
|
1706
|
+
const fullpath = [...path19, ...issue2.path];
|
|
1707
1707
|
if (fullpath.length === 0) {
|
|
1708
1708
|
result.errors.push(mapper(issue2));
|
|
1709
1709
|
continue;
|
|
@@ -1735,8 +1735,8 @@ function treeifyError(error51, mapper = (issue2) => issue2.message) {
|
|
|
1735
1735
|
}
|
|
1736
1736
|
function toDotPath(_path) {
|
|
1737
1737
|
const segs = [];
|
|
1738
|
-
const
|
|
1739
|
-
for (const seg of
|
|
1738
|
+
const path19 = _path.map((seg) => typeof seg === "object" ? seg.key : seg);
|
|
1739
|
+
for (const seg of path19) {
|
|
1740
1740
|
if (typeof seg === "number")
|
|
1741
1741
|
segs.push(`[${seg}]`);
|
|
1742
1742
|
else if (typeof seg === "symbol")
|
|
@@ -14400,13 +14400,13 @@ function resolveRef(ref, ctx) {
|
|
|
14400
14400
|
if (!ref.startsWith("#")) {
|
|
14401
14401
|
throw new Error("External $ref is not supported, only local refs (#/...) are allowed");
|
|
14402
14402
|
}
|
|
14403
|
-
const
|
|
14404
|
-
if (
|
|
14403
|
+
const path19 = ref.slice(1).split("/").filter(Boolean);
|
|
14404
|
+
if (path19.length === 0) {
|
|
14405
14405
|
return ctx.rootSchema;
|
|
14406
14406
|
}
|
|
14407
14407
|
const defsKey = ctx.version === "draft-2020-12" ? "$defs" : "definitions";
|
|
14408
|
-
if (
|
|
14409
|
-
const key =
|
|
14408
|
+
if (path19[0] === defsKey) {
|
|
14409
|
+
const key = path19[1];
|
|
14410
14410
|
if (!key || !ctx.defs[key]) {
|
|
14411
14411
|
throw new Error(`Reference not found: ${ref}`);
|
|
14412
14412
|
}
|
|
@@ -33482,6 +33482,10 @@ function writeAggregateObserverEvents(req, res, workspaces, store2, resolveWorks
|
|
|
33482
33482
|
}
|
|
33483
33483
|
const unsubscribers = options.subscribeAll ? [
|
|
33484
33484
|
store2.subscribeAll((event) => {
|
|
33485
|
+
if (isSessionUpdatedEvent(event)) {
|
|
33486
|
+
writeEvent(res, 0, event.type, { session: event.session });
|
|
33487
|
+
return;
|
|
33488
|
+
}
|
|
33485
33489
|
writeEvent(res, event.id, event.type, { tenant: resolvedWorkspaceSnapshot(resolveWorkspace, event.tenantId), event });
|
|
33486
33490
|
})
|
|
33487
33491
|
] : workspaces.map(
|
|
@@ -33504,6 +33508,9 @@ function writeEvent(res, id, event, data) {
|
|
|
33504
33508
|
|
|
33505
33509
|
`);
|
|
33506
33510
|
}
|
|
33511
|
+
function isSessionUpdatedEvent(event) {
|
|
33512
|
+
return event.type === "session:updated" && "session" in event;
|
|
33513
|
+
}
|
|
33507
33514
|
function workspaceSnapshot(workspace) {
|
|
33508
33515
|
return {
|
|
33509
33516
|
tenantId: workspace.tenantId,
|
|
@@ -33539,6 +33546,7 @@ function createConsoleObservabilityStore(deps = {}) {
|
|
|
33539
33546
|
const truncationByTenant = /* @__PURE__ */ new Map();
|
|
33540
33547
|
const jobsByTenant = /* @__PURE__ */ new Map();
|
|
33541
33548
|
const terminalSessionsById = /* @__PURE__ */ new Map();
|
|
33549
|
+
const terminalSequenceByTheater = /* @__PURE__ */ new Map();
|
|
33542
33550
|
const listenersByTenant = /* @__PURE__ */ new Map();
|
|
33543
33551
|
const allListeners = /* @__PURE__ */ new Set();
|
|
33544
33552
|
let nextObservedId = 1;
|
|
@@ -33702,13 +33710,18 @@ function createConsoleObservabilityStore(deps = {}) {
|
|
|
33702
33710
|
function createPendingTerminalSession(input) {
|
|
33703
33711
|
if (!path9__default.isAbsolute(input.cwd)) throw new Error("Terminal session cwd must be absolute");
|
|
33704
33712
|
const createdAt = input.createdAt ?? now();
|
|
33713
|
+
const canonicalCwd = canonicalizeTheaterPathSync(input.cwd);
|
|
33714
|
+
const theaterId = workspaceHash(canonicalCwd);
|
|
33715
|
+
const sequence = (terminalSequenceByTheater.get(theaterId) ?? 0) + 1;
|
|
33716
|
+
terminalSequenceByTheater.set(theaterId, sequence);
|
|
33705
33717
|
const state = {
|
|
33706
33718
|
sessionId: input.sessionId,
|
|
33707
33719
|
cwd: input.cwd,
|
|
33708
|
-
canonicalCwd
|
|
33720
|
+
canonicalCwd,
|
|
33709
33721
|
cwdLabel: path9__default.basename(input.cwd) || input.cwd,
|
|
33722
|
+
sequence,
|
|
33710
33723
|
createdAt,
|
|
33711
|
-
theaterId
|
|
33724
|
+
theaterId,
|
|
33712
33725
|
terminalSessionId: input.sessionId,
|
|
33713
33726
|
status: "starting"
|
|
33714
33727
|
};
|
|
@@ -33724,6 +33737,21 @@ function createConsoleObservabilityStore(deps = {}) {
|
|
|
33724
33737
|
session.status = status;
|
|
33725
33738
|
return toTerminalSessionInfo(session);
|
|
33726
33739
|
}
|
|
33740
|
+
function renameTerminalSession(sessionId, rawLabel) {
|
|
33741
|
+
const session = terminalSessionsById.get(sessionId);
|
|
33742
|
+
if (!session) return null;
|
|
33743
|
+
const label = rawLabel.trim().slice(0, 200);
|
|
33744
|
+
if (label.length === 0) {
|
|
33745
|
+
delete session.label;
|
|
33746
|
+
} else {
|
|
33747
|
+
session.label = label;
|
|
33748
|
+
}
|
|
33749
|
+
return toTerminalSessionInfo(session);
|
|
33750
|
+
}
|
|
33751
|
+
function notifySessionUpdated(session) {
|
|
33752
|
+
const event = { type: "session:updated", session };
|
|
33753
|
+
for (const listener of allListeners) listener(event);
|
|
33754
|
+
}
|
|
33727
33755
|
function removeTerminalSession(sessionId) {
|
|
33728
33756
|
return terminalSessionsById.delete(sessionId);
|
|
33729
33757
|
}
|
|
@@ -33735,6 +33763,7 @@ function createConsoleObservabilityStore(deps = {}) {
|
|
|
33735
33763
|
truncationByTenant.clear();
|
|
33736
33764
|
jobsByTenant.clear();
|
|
33737
33765
|
terminalSessionsById.clear();
|
|
33766
|
+
terminalSequenceByTheater.clear();
|
|
33738
33767
|
listenersByTenant.clear();
|
|
33739
33768
|
allListeners.clear();
|
|
33740
33769
|
}
|
|
@@ -33754,6 +33783,8 @@ function createConsoleObservabilityStore(deps = {}) {
|
|
|
33754
33783
|
pushEvents,
|
|
33755
33784
|
register,
|
|
33756
33785
|
createPendingTerminalSession,
|
|
33786
|
+
notifySessionUpdated,
|
|
33787
|
+
renameTerminalSession,
|
|
33757
33788
|
subscribe,
|
|
33758
33789
|
subscribeAll,
|
|
33759
33790
|
updateTerminalSessionStatus,
|
|
@@ -33835,6 +33866,8 @@ function toTerminalSessionInfo(state) {
|
|
|
33835
33866
|
sessionId: state.sessionId,
|
|
33836
33867
|
terminalSessionId: state.terminalSessionId,
|
|
33837
33868
|
cwdLabel: state.cwdLabel,
|
|
33869
|
+
sequence: state.sequence,
|
|
33870
|
+
label: state.label,
|
|
33838
33871
|
status: state.status,
|
|
33839
33872
|
createdAt: state.createdAt,
|
|
33840
33873
|
theaterId: state.theaterId,
|
|
@@ -34166,6 +34199,77 @@ async function runNativeCommand(bin, args) {
|
|
|
34166
34199
|
const result = await execFileAsync(bin, [...args], { timeout: DIALOG_TIMEOUT_MS });
|
|
34167
34200
|
return { stdout: result.stdout, stderr: result.stderr };
|
|
34168
34201
|
}
|
|
34202
|
+
var DEFAULT_WINDOWS_PATHEXT = ".COM;.EXE;.BAT;.CMD";
|
|
34203
|
+
var WINDOWS_PATH_SEPARATOR = ";";
|
|
34204
|
+
var WINDOWS_SHIM_EXTENSIONS = /* @__PURE__ */ new Set([".cmd", ".bat"]);
|
|
34205
|
+
var CMD_EXPANSION_SENSITIVE_PATTERN = /[%^]/;
|
|
34206
|
+
function resolvePathBinary(command2, env, options = {}) {
|
|
34207
|
+
const platform = options.platform ?? process.platform;
|
|
34208
|
+
const isWindows2 = platform === "win32";
|
|
34209
|
+
const pathValue = isWindows2 ? env.Path ?? env.PATH ?? "" : env.PATH ?? "";
|
|
34210
|
+
const pathExts = isWindows2 ? parsePathExt(env.PATHEXT) : [""];
|
|
34211
|
+
const resolved = findOnPath(command2, pathValue, pathExts, platform, options.exists ?? fs4__default.existsSync);
|
|
34212
|
+
return resolved ? wrapWindowsShim(resolved, env, platform) : void 0;
|
|
34213
|
+
}
|
|
34214
|
+
function wrapWindowsShim(resolved, env, platform) {
|
|
34215
|
+
if (platform !== "win32" || !WINDOWS_SHIM_EXTENSIONS.has(path9__default.extname(resolved).toLowerCase())) {
|
|
34216
|
+
return { bin: resolved, prefixArgs: [] };
|
|
34217
|
+
}
|
|
34218
|
+
rejectCmdExpansionSensitiveShim(resolved);
|
|
34219
|
+
return {
|
|
34220
|
+
bin: env.ComSpec ?? "cmd.exe",
|
|
34221
|
+
prefixArgs: ["/d", "/s", "/c", "call", forceWindowsArgQuoting(resolved)]
|
|
34222
|
+
};
|
|
34223
|
+
}
|
|
34224
|
+
function rejectCmdExpansionSensitiveShim(resolved) {
|
|
34225
|
+
if (CMD_EXPANSION_SENSITIVE_PATTERN.test(resolved)) {
|
|
34226
|
+
throw new Error(`Refusing to run Windows shim path with cmd.exe expansion-sensitive characters (% or ^): ${resolved}`);
|
|
34227
|
+
}
|
|
34228
|
+
}
|
|
34229
|
+
function forceWindowsArgQuoting(value) {
|
|
34230
|
+
return `${value} `;
|
|
34231
|
+
}
|
|
34232
|
+
function findOnPath(bin, pathValue, pathExts, platform, exists) {
|
|
34233
|
+
const pathSeparator = platform === "win32" ? WINDOWS_PATH_SEPARATOR : path9__default.delimiter;
|
|
34234
|
+
if (hasPathSeparator(bin, platform) || path9__default.isAbsolute(bin)) {
|
|
34235
|
+
return resolveWithExtensions(bin, pathExts, platform, exists);
|
|
34236
|
+
}
|
|
34237
|
+
for (const entry of pathValue.split(pathSeparator)) {
|
|
34238
|
+
const searchDir = entry.length === 0 ? "." : entry;
|
|
34239
|
+
const candidate = resolveWithExtensions(path9__default.join(searchDir, bin), pathExts, platform, exists);
|
|
34240
|
+
if (candidate) {
|
|
34241
|
+
return candidate;
|
|
34242
|
+
}
|
|
34243
|
+
}
|
|
34244
|
+
return void 0;
|
|
34245
|
+
}
|
|
34246
|
+
function resolveWithExtensions(candidate, pathExts, platform, exists) {
|
|
34247
|
+
if (platform !== "win32" || path9__default.extname(candidate).length > 0) {
|
|
34248
|
+
return exists(candidate) ? candidate : void 0;
|
|
34249
|
+
}
|
|
34250
|
+
for (const ext of pathExts) {
|
|
34251
|
+
if (ext.length === 0) {
|
|
34252
|
+
continue;
|
|
34253
|
+
}
|
|
34254
|
+
const withExt = `${candidate}${ext}`;
|
|
34255
|
+
if (exists(withExt)) {
|
|
34256
|
+
return withExt;
|
|
34257
|
+
}
|
|
34258
|
+
}
|
|
34259
|
+
return exists(candidate) ? candidate : void 0;
|
|
34260
|
+
}
|
|
34261
|
+
function hasPathSeparator(value, platform) {
|
|
34262
|
+
if (value.includes("/")) {
|
|
34263
|
+
return true;
|
|
34264
|
+
}
|
|
34265
|
+
return platform === "win32" && value.includes("\\");
|
|
34266
|
+
}
|
|
34267
|
+
function parsePathExt(pathExt) {
|
|
34268
|
+
const raw = pathExt && pathExt.trim().length > 0 ? pathExt : DEFAULT_WINDOWS_PATHEXT;
|
|
34269
|
+
return raw.split(WINDOWS_PATH_SEPARATOR).map((entry) => entry.trim()).filter((entry) => entry.length > 0);
|
|
34270
|
+
}
|
|
34271
|
+
|
|
34272
|
+
// src/terminal/launch.ts
|
|
34169
34273
|
var DEFAULT_TERMINAL_CWD_FALLBACK = os22__default.homedir;
|
|
34170
34274
|
var TERMINAL_TERM = "xterm-256color";
|
|
34171
34275
|
var FLEET_HEADLESS_NATIVE_FLAGS = ["--headless", "--native"];
|
|
@@ -34176,16 +34280,26 @@ function createDefaultTerminalLaunchResolver(deps = {}) {
|
|
|
34176
34280
|
const execPath = deps.execPath ?? process4.execPath;
|
|
34177
34281
|
const homedir2 = deps.homedir ?? DEFAULT_TERMINAL_CWD_FALLBACK;
|
|
34178
34282
|
const exists = deps.exists ?? fs4__default.existsSync;
|
|
34283
|
+
const platform = deps.platform ?? process4.platform;
|
|
34179
34284
|
const release = deps.release ?? readFleetConsoleRelease();
|
|
34180
34285
|
return (selectedCwd, context) => {
|
|
34181
34286
|
const cwd = selectedCwd || baseCwd || homedir2();
|
|
34182
34287
|
if (context?.kind === "shell") {
|
|
34183
|
-
|
|
34288
|
+
const shell = resolveWindowsLaunchBinary(resolveUserShell(env, platform), [], env, exists, platform, "user shell");
|
|
34289
|
+
return { bin: shell.bin, args: shell.args, cwd, env: buildShellLaunchEnv(env) };
|
|
34184
34290
|
}
|
|
34185
34291
|
const launchEnv = buildLaunchEnv(env, cwd, context?.sessionId);
|
|
34186
34292
|
const override = parseTerminalCommand(env.FLEET_TERMINAL_CMD);
|
|
34187
34293
|
if (override) {
|
|
34188
|
-
|
|
34294
|
+
const resolvedOverride = resolveWindowsLaunchBinary(
|
|
34295
|
+
override.bin,
|
|
34296
|
+
override.args,
|
|
34297
|
+
env,
|
|
34298
|
+
exists,
|
|
34299
|
+
platform,
|
|
34300
|
+
"FLEET_TERMINAL_CMD"
|
|
34301
|
+
);
|
|
34302
|
+
return { ...resolvedOverride, cwd, env: launchEnv };
|
|
34189
34303
|
}
|
|
34190
34304
|
if (release.channel === "local") {
|
|
34191
34305
|
const localCli = resolveSiblingFleetCliEntry(release.packageRoot, exists);
|
|
@@ -34196,7 +34310,15 @@ function createDefaultTerminalLaunchResolver(deps = {}) {
|
|
|
34196
34310
|
}
|
|
34197
34311
|
return { bin: execPath, args: [localCli, ...FLEET_HEADLESS_NATIVE_FLAGS], cwd, env: launchEnv };
|
|
34198
34312
|
}
|
|
34199
|
-
|
|
34313
|
+
const stableFleet = resolveWindowsLaunchBinary(
|
|
34314
|
+
"fleet",
|
|
34315
|
+
[...FLEET_HEADLESS_NATIVE_FLAGS],
|
|
34316
|
+
env,
|
|
34317
|
+
exists,
|
|
34318
|
+
platform,
|
|
34319
|
+
"fleet stable terminal binary"
|
|
34320
|
+
);
|
|
34321
|
+
return { ...stableFleet, cwd, env: launchEnv };
|
|
34200
34322
|
};
|
|
34201
34323
|
}
|
|
34202
34324
|
function startTerminalShell(launch, size) {
|
|
@@ -34209,11 +34331,21 @@ function startTerminalShell(launch, size) {
|
|
|
34209
34331
|
name: TERMINAL_TERM
|
|
34210
34332
|
});
|
|
34211
34333
|
}
|
|
34212
|
-
function resolveUserShell(env) {
|
|
34334
|
+
function resolveUserShell(env, platform) {
|
|
34213
34335
|
if (env.SHELL) return env.SHELL;
|
|
34214
|
-
if (
|
|
34336
|
+
if (platform === "win32") return env.ComSpec || "powershell.exe";
|
|
34215
34337
|
return "/bin/bash";
|
|
34216
34338
|
}
|
|
34339
|
+
function resolveWindowsLaunchBinary(bin, args, env, exists, platform, label) {
|
|
34340
|
+
if (platform !== "win32") {
|
|
34341
|
+
return { bin, args };
|
|
34342
|
+
}
|
|
34343
|
+
const resolved = resolvePathBinary(bin, env, { exists, platform });
|
|
34344
|
+
if (!resolved) {
|
|
34345
|
+
throw new Error(`${label} "${bin}" was not found on PATH; provide an absolute path or install it before launching a terminal session.`);
|
|
34346
|
+
}
|
|
34347
|
+
return { bin: resolved.bin, args: [...resolved.prefixArgs, ...args] };
|
|
34348
|
+
}
|
|
34217
34349
|
function resolveSiblingFleetCliEntry(consolePackageRoot, exists = fs4__default.existsSync) {
|
|
34218
34350
|
const candidate = expectedSiblingFleetCliEntry(consolePackageRoot);
|
|
34219
34351
|
return exists(candidate) ? candidate : null;
|
|
@@ -34245,15 +34377,11 @@ function buildShellLaunchEnv(env) {
|
|
|
34245
34377
|
// src/terminal/session-manager.ts
|
|
34246
34378
|
var DEFAULT_COLS = 80;
|
|
34247
34379
|
var DEFAULT_ROWS = 24;
|
|
34248
|
-
var DEFAULT_GRACE_MS = 18e4;
|
|
34249
34380
|
var DEFAULT_SCROLLBACK_LIMIT = 512;
|
|
34250
34381
|
var WS_OPEN_STATE = 1;
|
|
34251
34382
|
function createTerminalSessionManager(deps) {
|
|
34252
34383
|
const startShell = deps.startShell ?? startTerminalShell;
|
|
34253
|
-
const graceMs = deps.graceMs ?? DEFAULT_GRACE_MS;
|
|
34254
34384
|
const scrollbackLimit = deps.scrollbackLimit ?? DEFAULT_SCROLLBACK_LIMIT;
|
|
34255
|
-
const setTimeoutImpl = deps.setTimeout ?? setTimeout;
|
|
34256
|
-
const clearTimeoutImpl = deps.clearTimeout ?? clearTimeout;
|
|
34257
34385
|
const sessions = /* @__PURE__ */ new Map();
|
|
34258
34386
|
function canAttach() {
|
|
34259
34387
|
return true;
|
|
@@ -34263,10 +34391,6 @@ function createTerminalSessionManager(deps) {
|
|
|
34263
34391
|
if (session.activeSocket && session.activeSocket !== socket) {
|
|
34264
34392
|
session.activeSocket.close(4e3, "terminal_replaced");
|
|
34265
34393
|
}
|
|
34266
|
-
if (session.graceTimer) {
|
|
34267
|
-
clearTimeoutImpl(session.graceTimer);
|
|
34268
|
-
session.graceTimer = null;
|
|
34269
|
-
}
|
|
34270
34394
|
session.activeSocket = socket;
|
|
34271
34395
|
session.pty.resize(session.cols, session.rows);
|
|
34272
34396
|
replayScrollback(session, socket);
|
|
@@ -34298,7 +34422,6 @@ function createTerminalSessionManager(deps) {
|
|
|
34298
34422
|
disposables: [],
|
|
34299
34423
|
scrollback: [],
|
|
34300
34424
|
activeSocket: null,
|
|
34301
|
-
graceTimer: null,
|
|
34302
34425
|
cols: DEFAULT_COLS,
|
|
34303
34426
|
rows: DEFAULT_ROWS
|
|
34304
34427
|
};
|
|
@@ -34338,7 +34461,6 @@ function createTerminalSessionManager(deps) {
|
|
|
34338
34461
|
function detachSocket(session, socket) {
|
|
34339
34462
|
if (session.activeSocket !== socket) return;
|
|
34340
34463
|
session.activeSocket = null;
|
|
34341
|
-
session.graceTimer = setTimeoutImpl(() => removeSession(session), graceMs);
|
|
34342
34464
|
}
|
|
34343
34465
|
function replayScrollback(session, socket) {
|
|
34344
34466
|
for (const chunk of session.scrollback) {
|
|
@@ -34354,10 +34476,6 @@ function createTerminalSessionManager(deps) {
|
|
|
34354
34476
|
}
|
|
34355
34477
|
function killSession(session, options = {}) {
|
|
34356
34478
|
const killPty = options.killPty ?? true;
|
|
34357
|
-
if (session.graceTimer) {
|
|
34358
|
-
clearTimeoutImpl(session.graceTimer);
|
|
34359
|
-
session.graceTimer = null;
|
|
34360
|
-
}
|
|
34361
34479
|
session.activeSocket?.close(4001, "terminal_closed");
|
|
34362
34480
|
session.activeSocket = null;
|
|
34363
34481
|
for (const disposable of session.disposables) disposable.dispose();
|
|
@@ -34499,7 +34617,7 @@ var MAX_BODY_BYTES = 1024 * 1024;
|
|
|
34499
34617
|
function createConsoleServer(deps = {}) {
|
|
34500
34618
|
const host = deps.host ?? DEFAULT_HOST;
|
|
34501
34619
|
const port = deps.port ?? DEFAULT_PORT;
|
|
34502
|
-
const version2 = deps.version ?? (
|
|
34620
|
+
const version2 = deps.version ?? readFleetConsoleRelease().version;
|
|
34503
34621
|
const channel = readConsoleChannel();
|
|
34504
34622
|
const carrierRegistry = createCarrierRegistry();
|
|
34505
34623
|
registerDefaultCarriers(carrierRegistry);
|
|
@@ -34519,7 +34637,6 @@ function createConsoleServer(deps = {}) {
|
|
|
34519
34637
|
const terminalSessions = createTerminalSessionManager({
|
|
34520
34638
|
launch: deps.terminalLaunch ?? createDefaultTerminalLaunchResolver(),
|
|
34521
34639
|
startShell: deps.terminalStartShell,
|
|
34522
|
-
graceMs: deps.terminalGraceMs,
|
|
34523
34640
|
maxSessions: deps.maxTerminalSessions,
|
|
34524
34641
|
// PTY가 종료되면(예: fleet-cli 종료) 콘솔 세션 목록에서도 제거해 잔존/재실행을 막는다.
|
|
34525
34642
|
onSessionExit: (sessionId) => observability.removeTerminalSession(sessionId)
|
|
@@ -34580,7 +34697,7 @@ function createConsoleServer(deps = {}) {
|
|
|
34580
34697
|
}
|
|
34581
34698
|
const terminalSessionItemMatch = pathname.match(/^\/terminal\/sessions\/([^/]+)$/);
|
|
34582
34699
|
if (terminalSessionItemMatch) {
|
|
34583
|
-
handleTerminalSessionItem(req, res, decodeURIComponent(terminalSessionItemMatch[1] ?? ""));
|
|
34700
|
+
runAsyncHandler(handleTerminalSessionItem(req, res, decodeURIComponent(terminalSessionItemMatch[1] ?? "")), res);
|
|
34584
34701
|
return;
|
|
34585
34702
|
}
|
|
34586
34703
|
if (pathname === "/observer/theaters") {
|
|
@@ -34776,8 +34893,8 @@ function createConsoleServer(deps = {}) {
|
|
|
34776
34893
|
}
|
|
34777
34894
|
await createTerminalSessionForCwd(cwd, res);
|
|
34778
34895
|
}
|
|
34779
|
-
function handleTerminalSessionItem(req, res, sessionId) {
|
|
34780
|
-
if (req.method !== "DELETE") {
|
|
34896
|
+
async function handleTerminalSessionItem(req, res, sessionId) {
|
|
34897
|
+
if (req.method !== "DELETE" && req.method !== "PATCH") {
|
|
34781
34898
|
writeJson(res, 405, { error: "Method not allowed" });
|
|
34782
34899
|
return;
|
|
34783
34900
|
}
|
|
@@ -34785,6 +34902,21 @@ function createConsoleServer(deps = {}) {
|
|
|
34785
34902
|
writeJson(res, 401, { error: "unauthorized" });
|
|
34786
34903
|
return;
|
|
34787
34904
|
}
|
|
34905
|
+
if (req.method === "PATCH") {
|
|
34906
|
+
const body = await readJsonBody(req);
|
|
34907
|
+
if (!body || body.label !== void 0 && typeof body.label !== "string") {
|
|
34908
|
+
writeJson(res, 400, { error: "invalid_session_label" });
|
|
34909
|
+
return;
|
|
34910
|
+
}
|
|
34911
|
+
const updated = observability.renameTerminalSession(sessionId, body.label ?? "");
|
|
34912
|
+
if (!updated) {
|
|
34913
|
+
writeJson(res, 404, { error: "session_not_found" });
|
|
34914
|
+
return;
|
|
34915
|
+
}
|
|
34916
|
+
observability.notifySessionUpdated(updated);
|
|
34917
|
+
writeJson(res, 200, updated);
|
|
34918
|
+
return;
|
|
34919
|
+
}
|
|
34788
34920
|
terminalSessions.terminate(sessionId);
|
|
34789
34921
|
observability.removeTerminalSession(sessionId);
|
|
34790
34922
|
writeJson(res, 200, { ok: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aW as L,bs as ln,aG as A,aU as P,aF as W,bt as gn,bu as dn,bv as hn,bw as z,bx as pn,bn as An,by as m,aX as N,b0 as U,b3 as T,bz as _n,a_ as on,bA as wn,bq as On,aH as V,bo as vn,bB as I}from"./mermaid.core-
|
|
1
|
+
import{aW as L,bs as ln,aG as A,aU as P,aF as W,bt as gn,bu as dn,bv as hn,bw as z,bx as pn,bn as An,by as m,aX as N,b0 as U,b3 as T,bz as _n,a_ as on,bA as wn,bq as On,aH as V,bo as vn,bB as I}from"./mermaid.core-iv2IeunS.js";var Pn="[object Symbol]";function x(n){return typeof n=="symbol"||L(n)&&ln(n)==Pn}function yn(n,r){for(var e=-1,i=n==null?0:n.length,f=Array(i);++e<i;)f[e]=r(n[e],e,n);return f}var B=P?P.prototype:void 0,H=B?B.toString:void 0;function k(n){if(typeof n=="string")return n;if(A(n))return yn(n,k)+"";if(x(n))return H?H.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function bn(){}function En(n,r){for(var e=-1,i=n==null?0:n.length;++e<i&&r(n[e],e,n)!==!1;);return n}function cn(n,r,e,i){for(var f=n.length,t=e+-1;++t<f;)if(r(n[t],t,n))return t;return-1}function Tn(n){return n!==n}function Rn(n,r,e){for(var i=e-1,f=n.length;++i<f;)if(n[i]===r)return i;return-1}function In(n,r,e){return r===r?Rn(n,r,e):cn(n,Tn,e)}function Sn(n,r){var e=n==null?0:n.length;return!!e&&In(n,r,0)>-1}function M(n){return W(n)?gn(n):dn(n)}var Ln=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xn=/^\w*$/;function $(n,r){if(A(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||x(n)?!0:xn.test(n)||!Ln.test(n)||r!=null&&n in Object(r)}var Mn=500;function $n(n){var r=hn(n,function(i){return e.size===Mn&&e.clear(),i}),e=r.cache;return r}var Cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Fn=/\\(\\)?/g,Gn=$n(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(Cn,function(e,i,f,t){r.push(f?t.replace(Fn,"$1"):i||e)}),r});function Dn(n){return n==null?"":k(n)}function j(n,r){return A(n)?n:$(n,r)?[n]:Gn(Dn(n))}function R(n){if(typeof n=="string"||x(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function nn(n,r){r=j(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[R(r[e++])];return e&&e==i?n:void 0}function mn(n,r,e){var i=n==null?void 0:nn(n,r);return i===void 0?e:i}function rn(n,r){for(var e=-1,i=r.length,f=n.length;++e<i;)n[f+e]=r[e];return n}var K=P?P.isConcatSpreadable:void 0;function Nn(n){return A(n)||z(n)||!!(K&&n&&n[K])}function Kr(n,r,e,i,f){var t=-1,s=n.length;for(e||(e=Nn),f||(f=[]);++t<s;){var u=n[t];e(u)?rn(f,u):i||(f[f.length]=u)}return f}function Un(n,r,e,i){var f=-1,t=n==null?0:n.length;for(i&&t&&(e=n[++f]);++f<t;)e=r(e,n[f],f,n);return e}function en(n,r){for(var e=-1,i=n==null?0:n.length,f=0,t=[];++e<i;){var s=n[e];r(s,e,n)&&(t[f++]=s)}return t}function Bn(){return[]}var Hn=Object.prototype,Kn=Hn.propertyIsEnumerable,q=Object.getOwnPropertySymbols,qn=q?function(n){return n==null?[]:(n=Object(n),en(q(n),function(r){return Kn.call(n,r)}))}:Bn;function Zn(n,r,e){var i=r(n);return A(n)?i:rn(i,e(n))}function Z(n){return Zn(n,M,qn)}var Xn="__lodash_hash_undefined__";function Yn(n){return this.__data__.set(n,Xn),this}function Jn(n){return this.__data__.has(n)}function y(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new pn;++r<e;)this.add(n[r])}y.prototype.add=y.prototype.push=Yn;y.prototype.has=Jn;function Qn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i;)if(r(n[e],e,n))return!0;return!1}function tn(n,r){return n.has(r)}var Wn=1,zn=2;function fn(n,r,e,i,f,t){var s=e&Wn,u=n.length,a=r.length;if(u!=a&&!(s&&a>u))return!1;var h=t.get(n),g=t.get(r);if(h&&g)return h==r&&g==n;var l=-1,d=!0,o=e&zn?new y:void 0;for(t.set(n,r),t.set(r,n);++l<u;){var p=n[l],_=r[l];if(i)var w=s?i(_,p,l,r,n,t):i(p,_,l,n,r,t);if(w!==void 0){if(w)continue;d=!1;break}if(o){if(!Qn(r,function(O,v){if(!tn(o,v)&&(p===O||f(p,O,e,i,t)))return o.push(v)})){d=!1;break}}else if(!(p===_||f(p,_,e,i,t))){d=!1;break}}return t.delete(n),t.delete(r),d}function Vn(n){var r=-1,e=Array(n.size);return n.forEach(function(i,f){e[++r]=[f,i]}),e}function C(n){var r=-1,e=Array(n.size);return n.forEach(function(i){e[++r]=i}),e}var kn=1,jn=2,nr="[object Boolean]",rr="[object Date]",er="[object Error]",ir="[object Map]",tr="[object Number]",fr="[object RegExp]",sr="[object Set]",ur="[object String]",ar="[object Symbol]",lr="[object ArrayBuffer]",gr="[object DataView]",X=P?P.prototype:void 0,S=X?X.valueOf:void 0;function dr(n,r,e,i,f,t,s){switch(e){case gr:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case lr:return!(n.byteLength!=r.byteLength||!t(new m(n),new m(r)));case nr:case rr:case tr:return An(+n,+r);case er:return n.name==r.name&&n.message==r.message;case fr:case ur:return n==r+"";case ir:var u=Vn;case sr:var a=i&kn;if(u||(u=C),n.size!=r.size&&!a)return!1;var h=s.get(n);if(h)return h==r;i|=jn,s.set(n,r);var g=fn(u(n),u(r),i,f,t,s);return s.delete(n),g;case ar:if(S)return S.call(n)==S.call(r)}return!1}var hr=1,pr=Object.prototype,Ar=pr.hasOwnProperty;function _r(n,r,e,i,f,t){var s=e&hr,u=Z(n),a=u.length,h=Z(r),g=h.length;if(a!=g&&!s)return!1;for(var l=a;l--;){var d=u[l];if(!(s?d in r:Ar.call(r,d)))return!1}var o=t.get(n),p=t.get(r);if(o&&p)return o==r&&p==n;var _=!0;t.set(n,r),t.set(r,n);for(var w=s;++l<a;){d=u[l];var O=n[d],v=r[d];if(i)var D=s?i(v,O,d,r,n,t):i(O,v,d,n,r,t);if(!(D===void 0?O===v||f(O,v,e,i,t):D)){_=!1;break}w||(w=d=="constructor")}if(_&&!w){var b=n.constructor,E=r.constructor;b!=E&&"constructor"in n&&"constructor"in r&&!(typeof b=="function"&&b instanceof b&&typeof E=="function"&&E instanceof E)&&(_=!1)}return t.delete(n),t.delete(r),_}var or=1,Y="[object Arguments]",J="[object Array]",c="[object Object]",wr=Object.prototype,Q=wr.hasOwnProperty;function Or(n,r,e,i,f,t){var s=A(n),u=A(r),a=s?J:N(n),h=u?J:N(r);a=a==Y?c:a,h=h==Y?c:h;var g=a==c,l=h==c,d=a==h;if(d&&U(n)){if(!U(r))return!1;s=!0,g=!1}if(d&&!g)return t||(t=new T),s||_n(n)?fn(n,r,e,i,f,t):dr(n,r,a,e,i,f,t);if(!(e&or)){var o=g&&Q.call(n,"__wrapped__"),p=l&&Q.call(r,"__wrapped__");if(o||p){var _=o?n.value():n,w=p?r.value():r;return t||(t=new T),f(_,w,e,i,t)}}return d?(t||(t=new T),_r(n,r,e,i,f,t)):!1}function F(n,r,e,i,f){return n===r?!0:n==null||r==null||!L(n)&&!L(r)?n!==n&&r!==r:Or(n,r,e,i,F,f)}var vr=1,Pr=2;function yr(n,r,e,i){var f=e.length,t=f;if(n==null)return!t;for(n=Object(n);f--;){var s=e[f];if(s[2]?s[1]!==n[s[0]]:!(s[0]in n))return!1}for(;++f<t;){s=e[f];var u=s[0],a=n[u],h=s[1];if(s[2]){if(a===void 0&&!(u in n))return!1}else{var g=new T,l;if(!(l===void 0?F(h,a,vr|Pr,i,g):l))return!1}}return!0}function sn(n){return n===n&&!on(n)}function br(n){for(var r=M(n),e=r.length;e--;){var i=r[e],f=n[i];r[e]=[i,f,sn(f)]}return r}function un(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function Er(n){var r=br(n);return r.length==1&&r[0][2]?un(r[0][0],r[0][1]):function(e){return e===n||yr(e,n,r)}}function cr(n,r){return n!=null&&r in Object(n)}function Tr(n,r,e){r=j(r,n);for(var i=-1,f=r.length,t=!1;++i<f;){var s=R(r[i]);if(!(t=n!=null&&e(n,s)))break;n=n[s]}return t||++i!=f?t:(f=n==null?0:n.length,!!f&&wn(f)&&On(s,f)&&(A(n)||z(n)))}function Rr(n,r){return n!=null&&Tr(n,r,cr)}var Ir=1,Sr=2;function Lr(n,r){return $(n)&&sn(r)?un(R(n),r):function(e){var i=mn(e,n);return i===void 0&&i===r?Rr(e,n):F(r,i,Ir|Sr)}}function xr(n){return function(r){return r?.[n]}}function Mr(n){return function(r){return nn(r,n)}}function $r(n){return $(n)?xr(R(n)):Mr(n)}function an(n){return typeof n=="function"?n:n==null?V:typeof n=="object"?A(n)?Lr(n[0],n[1]):Er(n):$r(n)}function Cr(n,r){return n&&vn(n,r,M)}function Fr(n,r){return function(e,i){if(e==null)return e;if(!W(e))return n(e,i);for(var f=e.length,t=-1,s=Object(e);++t<f&&i(s[t],t,s)!==!1;);return e}}var G=Fr(Cr);function Gr(n){return typeof n=="function"?n:V}function qr(n,r){var e=A(n)?En:G;return e(n,Gr(r))}function Dr(n,r){var e=[];return G(n,function(i,f,t){r(i,f,t)&&e.push(i)}),e}function Zr(n,r){var e=A(n)?en:Dr;return e(n,an(r))}function mr(n,r,e,i,f){return f(n,function(t,s,u){e=i?(i=!1,t):r(e,t,s,u)}),e}function Xr(n,r,e){var i=A(n)?Un:mr,f=arguments.length<3;return i(n,an(r),e,f,G)}var Nr=1/0,Ur=I&&1/C(new I([,-0]))[1]==Nr?function(n){return new I(n)}:bn,Br=200;function Yr(n,r,e){var i=-1,f=Sn,t=n.length,s=!0,u=[],a=u;if(t>=Br){var h=r?null:Ur(n);if(h)return C(h);s=!1,f=tn,a=new y}else a=r?[]:u;n:for(;++i<t;){var g=n[i],l=r?r(g):g;if(g=g!==0?g:0,s&&l===l){for(var d=a.length;d--;)if(a[d]===l)continue n;r&&a.push(l),u.push(g)}else f(a,l,e)||(a!==u&&a.push(l),u.push(g))}return u}export{G as a,Kr as b,an as c,yn as d,rn as e,Zn as f,qn as g,En as h,x as i,Z as j,M as k,Yr as l,Zr as m,qr as n,cn as o,Gr as p,Cr as q,Xr as r,Bn as s,Tr as t,j as u,R as v,nn as w,Rr as x,Dn as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as ln,a0 as an,a1 as G,a2 as q,a3 as z,a4 as un,a5 as y,a6 as tn,a7 as K,a8 as _,a9 as rn,aa as o,ab as on,ac as sn,ad as fn}from"./mermaid.core-
|
|
1
|
+
import{$ as ln,a0 as an,a1 as G,a2 as q,a3 as z,a4 as un,a5 as y,a6 as tn,a7 as K,a8 as _,a9 as rn,aa as o,ab as on,ac as sn,ad as fn}from"./mermaid.core-iv2IeunS.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,B,a){var O=I-l,i=D-h,n=B-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function V(l,h,I,D,v,A,B){var a=l-I,O=h-D,i=(B?A:-A)/K(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,C=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*K(on(0,T*T*R-P*P)),$=(P*g-m*S)/R,j=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=$-C,e=j-t,r=w-C,F=p-t;return x*x+e*e>r*r+F*F&&($=w,j=p),{cx:$,cy:j,x01:-n,y01:-d,x11:$*(v/T-1),y11:j*(v/T-1)}}function hn(){var l=cn,h=yn,I=z(0),D=null,v=gn,A=dn,B=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,C=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(C>tn-y)a.moveTo(s*G(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*G(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=C,S=C,$=B.apply(this,arguments)/2,j=$>y&&(D?+D.apply(this,arguments):K(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(j>y){var F=sn(j/u*q($)),L=sn(j/s*q($));(P-=F*2)>y?(F*=t?1:-1,R+=F,T-=F):(P=0,R=T=(f+c)/2),(S-=L*2)>y?(L*=t?1:-1,m+=L,g-=L):(S=0,m=g=(f+c)/2)}var H=s*G(m),J=s*q(m),M=u*G(T),N=u*q(T);if(w>y){var Q=s*G(g),U=s*q(g),W=u*G(R),X=u*q(R),E;if(C<an)if(E=pn(H,J,W,X,Q,U,M,N)){var Y=H-E[0],Z=J-E[1],b=Q-E[0],k=U-E[1],nn=1/q(fn((Y*b+Z*k)/(K(Y*Y+Z*Z)*K(b*b+k*k)))/2),en=K(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=V(W,X,H,J,s,x,t),r=V(Q,U,M,N,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(H,J),a.arc(0,0,s,m,g,!t)):a.moveTo(H,J),!(u>y)||!(P>y)?a.lineTo(M,N):p>y?(e=V(M,N,Q,U,u,-p,t),r=V(H,J,W,X,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[G(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:z(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:z(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:z(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:z(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:z(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:z(+n),i):A},i.padAngle=function(n){return arguments.length?(B=typeof n=="function"?n:z(+n),i):B},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|