agor-live 0.8.2 → 0.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/daemon/index.js +175 -21
- package/dist/daemon/services/terminals.d.ts +4 -2
- package/dist/daemon/services/terminals.js +175 -21
- package/dist/ui/assets/{_basePickBy-CWF4zzgB.js → _basePickBy-CTThI50C.js} +1 -1
- package/dist/ui/assets/_basePickBy-CTThI50C.js.gz +0 -0
- package/dist/ui/assets/{_baseUniq-CM4NLon9.js → _baseUniq-CzqcD9Hq.js} +1 -1
- package/dist/ui/assets/_baseUniq-CzqcD9Hq.js.gz +0 -0
- package/dist/ui/assets/{arc-CIjuwL0B.js → arc-BpOU8kpy.js} +1 -1
- package/dist/ui/assets/arc-BpOU8kpy.js.gz +0 -0
- package/dist/ui/assets/{architectureDiagram-VXUJARFQ-C0hof0OC.js → architectureDiagram-VXUJARFQ-oPDSU7iH.js} +1 -1
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-oPDSU7iH.js.gz +0 -0
- package/dist/ui/assets/{blockDiagram-VD42YOAC-C_DAxOxv.js → blockDiagram-VD42YOAC-W7lIwpst.js} +1 -1
- package/dist/ui/assets/blockDiagram-VD42YOAC-W7lIwpst.js.gz +0 -0
- package/dist/ui/assets/{c4Diagram-YG6GDRKO-CCdIE46B.js → c4Diagram-YG6GDRKO-DkidBclA.js} +1 -1
- package/dist/ui/assets/c4Diagram-YG6GDRKO-DkidBclA.js.gz +0 -0
- package/dist/ui/assets/channel-CBy24ixw.js +1 -0
- package/dist/ui/assets/{chunk-4BX2VUAB-B6ym49qO.js → chunk-4BX2VUAB-BYYomEPX.js} +1 -1
- package/dist/ui/assets/{chunk-55IACEB6-BS-3qSF0.js → chunk-55IACEB6-edqfo3e-.js} +1 -1
- package/dist/ui/assets/{chunk-B4BG7PRW-CH9vAggf.js → chunk-B4BG7PRW-BT6qbYS5.js} +1 -1
- package/dist/ui/assets/chunk-B4BG7PRW-BT6qbYS5.js.gz +0 -0
- package/dist/ui/assets/{chunk-DI55MBZ5-DSoQkehV.js → chunk-DI55MBZ5-sagNgHDp.js} +1 -1
- package/dist/ui/assets/chunk-DI55MBZ5-sagNgHDp.js.gz +0 -0
- package/dist/ui/assets/{chunk-FMBD7UC4-CxtkUQIy.js → chunk-FMBD7UC4-B9yU8GlF.js} +1 -1
- package/dist/ui/assets/{chunk-QN33PNHL-CCCQIALa.js → chunk-QN33PNHL-D_9Qus3I.js} +1 -1
- package/dist/ui/assets/{chunk-QZHKN3VN-CyLbYZoF.js → chunk-QZHKN3VN-DxShjvj6.js} +1 -1
- package/dist/ui/assets/{chunk-TZMSLE5B-dpQkWn_i.js → chunk-TZMSLE5B-BbefTHvC.js} +1 -1
- package/dist/ui/assets/chunk-TZMSLE5B-BbefTHvC.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-CJYK91kl.js +1 -0
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-CJYK91kl.js +1 -0
- package/dist/ui/assets/clone-DcE4_0_S.js +1 -0
- package/dist/ui/assets/{cose-bilkent-S5V4N54A-Byg-yKL_.js → cose-bilkent-S5V4N54A-C5aDxsb1.js} +1 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-C5aDxsb1.js.gz +0 -0
- package/dist/ui/assets/{dagre-6UL2VRFP-B5xXbHAH.js → dagre-6UL2VRFP-Dy4qDEz4.js} +1 -1
- package/dist/ui/assets/dagre-6UL2VRFP-Dy4qDEz4.js.gz +0 -0
- package/dist/ui/assets/{diagram-PSM6KHXK-DXnowg-u.js → diagram-PSM6KHXK-BtkYdqor.js} +1 -1
- package/dist/ui/assets/diagram-PSM6KHXK-BtkYdqor.js.gz +0 -0
- package/dist/ui/assets/{diagram-QEK2KX5R-DOFOk8a_.js → diagram-QEK2KX5R-az6nRsJe.js} +1 -1
- package/dist/ui/assets/diagram-QEK2KX5R-az6nRsJe.js.gz +0 -0
- package/dist/ui/assets/{diagram-S2PKOQOG-7kGbu56L.js → diagram-S2PKOQOG-Bhh6j00h.js} +1 -1
- package/dist/ui/assets/diagram-S2PKOQOG-Bhh6j00h.js.gz +0 -0
- package/dist/ui/assets/{erDiagram-Q2GNP2WA-CMU8zeJ0.js → erDiagram-Q2GNP2WA-klVpNZkU.js} +1 -1
- package/dist/ui/assets/erDiagram-Q2GNP2WA-klVpNZkU.js.gz +0 -0
- package/dist/ui/assets/{flowDiagram-NV44I4VS-DaINI256.js → flowDiagram-NV44I4VS-LDXLyywO.js} +1 -1
- package/dist/ui/assets/flowDiagram-NV44I4VS-LDXLyywO.js.gz +0 -0
- package/dist/ui/assets/{ganttDiagram-LVOFAZNH-Be7NSitd.js → ganttDiagram-LVOFAZNH-BYMzFDKX.js} +1 -1
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-BYMzFDKX.js.gz +0 -0
- package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-By34460V.js → gitGraphDiagram-NY62KEGX-Chp21pas.js} +1 -1
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-Chp21pas.js.gz +0 -0
- package/dist/ui/assets/{graph-NyoK-Uig.js → graph-HbUE3uT9.js} +1 -1
- package/dist/ui/assets/graph-HbUE3uT9.js.gz +0 -0
- package/dist/ui/assets/{index-CUlxsIiz.js → index-HefyMaOe.js} +188 -188
- package/dist/ui/assets/index-HefyMaOe.js.gz +0 -0
- package/dist/ui/assets/{infoDiagram-ER5ION4S-DZDf4Njw.js → infoDiagram-ER5ION4S-z10XnF_M.js} +1 -1
- package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-Cgr-Eqfh.js → journeyDiagram-XKPGCS4Q-BRYmkGfu.js} +1 -1
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-BRYmkGfu.js.gz +0 -0
- package/dist/ui/assets/{kanban-definition-3W4ZIXB7-n_eTrGhM.js → kanban-definition-3W4ZIXB7-BVViQgPb.js} +1 -1
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-BVViQgPb.js.gz +0 -0
- package/dist/ui/assets/{layout-D5v-gRFR.js → layout-Cgv19kHd.js} +1 -1
- package/dist/ui/assets/layout-Cgv19kHd.js.gz +0 -0
- package/dist/ui/assets/{linear-PC8DSbQR.js → linear-wdYhL3IH.js} +1 -1
- package/dist/ui/assets/linear-wdYhL3IH.js.gz +0 -0
- package/dist/ui/assets/{mermaid.core-DKyW12SO.js → mermaid.core-DLtRr0hs.js} +5 -5
- package/dist/ui/assets/mermaid.core-DLtRr0hs.js.gz +0 -0
- package/dist/ui/assets/{mindmap-definition-VGOIOE7T-BouGsMFI.js → mindmap-definition-VGOIOE7T-BjPSOB9Q.js} +1 -1
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-BjPSOB9Q.js.gz +0 -0
- package/dist/ui/assets/{pieDiagram-ADFJNKIX-CgOfJZ_D.js → pieDiagram-ADFJNKIX-BnpoMs-2.js} +1 -1
- package/dist/ui/assets/pieDiagram-ADFJNKIX-BnpoMs-2.js.gz +0 -0
- package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-CHnbgtoU.js → quadrantDiagram-AYHSOK5B-BvXAcCoz.js} +1 -1
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-BvXAcCoz.js.gz +0 -0
- package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-uas2IjRA.js → requirementDiagram-UZGBJVZJ-DhX5XInB.js} +1 -1
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-DhX5XInB.js.gz +0 -0
- package/dist/ui/assets/{sankeyDiagram-TZEHDZUN-CrfbDu-2.js → sankeyDiagram-TZEHDZUN-DO6ydw4F.js} +1 -1
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DO6ydw4F.js.gz +0 -0
- package/dist/ui/assets/{sequenceDiagram-WL72ISMW-BU9w1rcP.js → sequenceDiagram-WL72ISMW-DLkDxsam.js} +1 -1
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-DLkDxsam.js.gz +0 -0
- package/dist/ui/assets/{stateDiagram-FKZM4ZOC-DF1cvysV.js → stateDiagram-FKZM4ZOC-u82F5ek9.js} +1 -1
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-u82F5ek9.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-CyNO-mra.js +1 -0
- package/dist/ui/assets/{timeline-definition-IT6M3QCI-BGJIUWlE.js → timeline-definition-IT6M3QCI-enc8Ei3d.js} +1 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-enc8Ei3d.js.gz +0 -0
- package/dist/ui/assets/{treemap-KMMF4GRG-DCjahiUv.js → treemap-KMMF4GRG-Drq4EfrL.js} +1 -1
- package/dist/ui/assets/treemap-KMMF4GRG-Drq4EfrL.js.gz +0 -0
- package/dist/ui/assets/{xychartDiagram-PRI3JC2R-BNZPPMd5.js → xychartDiagram-PRI3JC2R-BTgIsSZi.js} +1 -1
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-BTgIsSZi.js.gz +0 -0
- package/dist/ui/index.html +1 -1
- package/package.json +1 -1
- package/dist/ui/assets/_basePickBy-CWF4zzgB.js.gz +0 -0
- package/dist/ui/assets/_baseUniq-CM4NLon9.js.gz +0 -0
- package/dist/ui/assets/arc-CIjuwL0B.js.gz +0 -0
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-C0hof0OC.js.gz +0 -0
- package/dist/ui/assets/blockDiagram-VD42YOAC-C_DAxOxv.js.gz +0 -0
- package/dist/ui/assets/c4Diagram-YG6GDRKO-CCdIE46B.js.gz +0 -0
- package/dist/ui/assets/channel-ywjLaoiM.js +0 -1
- package/dist/ui/assets/chunk-B4BG7PRW-CH9vAggf.js.gz +0 -0
- package/dist/ui/assets/chunk-DI55MBZ5-DSoQkehV.js.gz +0 -0
- package/dist/ui/assets/chunk-TZMSLE5B-dpQkWn_i.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-D99C2VtW.js +0 -1
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-D99C2VtW.js +0 -1
- package/dist/ui/assets/clone-CWbdf7Z5.js +0 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-Byg-yKL_.js.gz +0 -0
- package/dist/ui/assets/dagre-6UL2VRFP-B5xXbHAH.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-DXnowg-u.js.gz +0 -0
- package/dist/ui/assets/diagram-QEK2KX5R-DOFOk8a_.js.gz +0 -0
- package/dist/ui/assets/diagram-S2PKOQOG-7kGbu56L.js.gz +0 -0
- package/dist/ui/assets/erDiagram-Q2GNP2WA-CMU8zeJ0.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-DaINI256.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-Be7NSitd.js.gz +0 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-By34460V.js.gz +0 -0
- package/dist/ui/assets/graph-NyoK-Uig.js.gz +0 -0
- package/dist/ui/assets/index-CUlxsIiz.js.gz +0 -0
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-Cgr-Eqfh.js.gz +0 -0
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-n_eTrGhM.js.gz +0 -0
- package/dist/ui/assets/layout-D5v-gRFR.js.gz +0 -0
- package/dist/ui/assets/linear-PC8DSbQR.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-DKyW12SO.js.gz +0 -0
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-BouGsMFI.js.gz +0 -0
- package/dist/ui/assets/pieDiagram-ADFJNKIX-CgOfJZ_D.js.gz +0 -0
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-CHnbgtoU.js.gz +0 -0
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-uas2IjRA.js.gz +0 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-CrfbDu-2.js.gz +0 -0
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-BU9w1rcP.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-DF1cvysV.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-BeexfTpP.js +0 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-BGJIUWlE.js.gz +0 -0
- package/dist/ui/assets/treemap-KMMF4GRG-DCjahiUv.js.gz +0 -0
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-BNZPPMd5.js.gz +0 -0
package/dist/daemon/index.js
CHANGED
|
@@ -4563,16 +4563,70 @@ function findTmuxWindow(sessionName, windowName) {
|
|
|
4563
4563
|
return null;
|
|
4564
4564
|
}
|
|
4565
4565
|
}
|
|
4566
|
+
function configureTmuxSession(sessionName) {
|
|
4567
|
+
try {
|
|
4568
|
+
execSync(`tmux set-option -t "${sessionName}" -g allow-passthrough on`, { stdio: "pipe" });
|
|
4569
|
+
} catch (error) {
|
|
4570
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
4571
|
+
console.warn(
|
|
4572
|
+
`\u26A0\uFE0F Failed to enable tmux allow-passthrough for session ${sessionName}: ${message}`
|
|
4573
|
+
);
|
|
4574
|
+
}
|
|
4575
|
+
try {
|
|
4576
|
+
execSync(`tmux set-option -t "${sessionName}" -g default-terminal 'tmux-256color'`, {
|
|
4577
|
+
stdio: "pipe"
|
|
4578
|
+
});
|
|
4579
|
+
} catch (error) {
|
|
4580
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
4581
|
+
console.warn(`\u26A0\uFE0F Failed to set tmux default-terminal for ${sessionName}: ${message}`);
|
|
4582
|
+
}
|
|
4583
|
+
try {
|
|
4584
|
+
execSync(`tmux set-option -ga terminal-features 'xterm*:allow-passthrough'`, { stdio: "pipe" });
|
|
4585
|
+
} catch (error) {
|
|
4586
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
4587
|
+
console.warn(`\u26A0\uFE0F Failed to advertise tmux allow-passthrough feature: ${message}`);
|
|
4588
|
+
}
|
|
4589
|
+
try {
|
|
4590
|
+
execSync(`tmux set-option -ga terminal-features 'tmux-256color:hyperlinks,RGB,extkeys'`, {
|
|
4591
|
+
stdio: "pipe"
|
|
4592
|
+
});
|
|
4593
|
+
} catch (error) {
|
|
4594
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
4595
|
+
console.warn(`\u26A0\uFE0F Failed to advertise tmux tmux-256color features: ${message}`);
|
|
4596
|
+
}
|
|
4597
|
+
try {
|
|
4598
|
+
execSync(`tmux set-option -ga terminal-features 'xterm*:hyperlinks'`, { stdio: "pipe" });
|
|
4599
|
+
} catch (error) {
|
|
4600
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
4601
|
+
console.warn(`\u26A0\uFE0F Failed to enable tmux hyperlink feature: ${message}`);
|
|
4602
|
+
}
|
|
4603
|
+
try {
|
|
4604
|
+
execSync(`tmux set-option -as terminal-overrides ',*:allow-passthrough'`, { stdio: "pipe" });
|
|
4605
|
+
} catch (error) {
|
|
4606
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
4607
|
+
console.warn(`\u26A0\uFE0F Failed to configure tmux allow-passthrough override: ${message}`);
|
|
4608
|
+
}
|
|
4609
|
+
try {
|
|
4610
|
+
execSync(`tmux set-option -as terminal-overrides ',*:hyperlinks'`, { stdio: "pipe" });
|
|
4611
|
+
} catch (error) {
|
|
4612
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
4613
|
+
console.warn(`\u26A0\uFE0F Failed to configure tmux hyperlink override: ${message}`);
|
|
4614
|
+
}
|
|
4615
|
+
}
|
|
4566
4616
|
var TerminalsService = class {
|
|
4567
4617
|
sessions = /* @__PURE__ */ new Map();
|
|
4568
4618
|
app;
|
|
4569
4619
|
db;
|
|
4570
4620
|
hasTmux;
|
|
4621
|
+
forceTmux;
|
|
4571
4622
|
constructor(app, db) {
|
|
4572
4623
|
this.app = app;
|
|
4573
4624
|
this.db = db;
|
|
4574
4625
|
this.hasTmux = isTmuxAvailable();
|
|
4575
|
-
|
|
4626
|
+
this.forceTmux = process.env.AGOR_DISABLE_TMUX !== "true";
|
|
4627
|
+
if (!this.forceTmux) {
|
|
4628
|
+
console.log("\u2139\uFE0F tmux disabled via AGOR_DISABLE_TMUX=true - using direct PTY sessions");
|
|
4629
|
+
} else if (this.hasTmux) {
|
|
4576
4630
|
console.log("\x1B[36m\u2705 tmux detected\x1B[0m - persistent terminal sessions enabled");
|
|
4577
4631
|
} else {
|
|
4578
4632
|
console.log("\u2139\uFE0F tmux not found - using ephemeral terminal sessions");
|
|
@@ -4581,8 +4635,15 @@ var TerminalsService = class {
|
|
|
4581
4635
|
/**
|
|
4582
4636
|
* Create a new terminal session
|
|
4583
4637
|
*/
|
|
4584
|
-
async create(data) {
|
|
4638
|
+
async create(data, params) {
|
|
4585
4639
|
const terminalId = `term-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
4640
|
+
const authenticatedUserId = params?.user?.user_id;
|
|
4641
|
+
const resolvedUserId = data.userId ?? authenticatedUserId;
|
|
4642
|
+
const userSessionSuffix = (() => {
|
|
4643
|
+
if (!resolvedUserId) return "shared";
|
|
4644
|
+
const sanitized = resolvedUserId.replace(/[^a-zA-Z0-9_-]/g, "");
|
|
4645
|
+
return sanitized.length > 0 ? sanitized : "user";
|
|
4646
|
+
})();
|
|
4586
4647
|
let worktree = null;
|
|
4587
4648
|
let cwd = data.cwd || os.homedir();
|
|
4588
4649
|
let worktreeName;
|
|
@@ -4594,16 +4655,20 @@ var TerminalsService = class {
|
|
|
4594
4655
|
worktreeName = worktree.name;
|
|
4595
4656
|
}
|
|
4596
4657
|
}
|
|
4597
|
-
|
|
4598
|
-
|
|
4658
|
+
const defaultShell = data.shell || (os.platform() === "win32" ? "powershell.exe" : "bash");
|
|
4659
|
+
const defaultShellArgs = [];
|
|
4660
|
+
let shell = defaultShell;
|
|
4661
|
+
let shellArgs = [...defaultShellArgs];
|
|
4599
4662
|
let tmuxSession;
|
|
4600
4663
|
let tmuxReused = false;
|
|
4601
|
-
|
|
4602
|
-
|
|
4664
|
+
const tmuxRequested = data.useTmux !== false;
|
|
4665
|
+
if (this.hasTmux && this.forceTmux && worktree && tmuxRequested) {
|
|
4666
|
+
tmuxSession = `agor-${userSessionSuffix}`;
|
|
4603
4667
|
const sessionExists = tmuxSessionExists(tmuxSession);
|
|
4604
4668
|
const windowName = worktreeName || "unnamed";
|
|
4605
4669
|
shell = "tmux";
|
|
4606
4670
|
if (sessionExists) {
|
|
4671
|
+
configureTmuxSession(tmuxSession);
|
|
4607
4672
|
const windowIndex = findTmuxWindow(tmuxSession, windowName);
|
|
4608
4673
|
if (windowIndex !== null) {
|
|
4609
4674
|
shellArgs = ["attach-session", "-t", `${tmuxSession}:${windowIndex}`];
|
|
@@ -4641,8 +4706,45 @@ var TerminalsService = class {
|
|
|
4641
4706
|
"set-option",
|
|
4642
4707
|
"-t",
|
|
4643
4708
|
tmuxSession,
|
|
4709
|
+
"default-terminal",
|
|
4710
|
+
"tmux-256color",
|
|
4711
|
+
";",
|
|
4712
|
+
"set-option",
|
|
4713
|
+
"-t",
|
|
4714
|
+
tmuxSession,
|
|
4644
4715
|
"status-style",
|
|
4645
|
-
"bg=#2e9a92,fg=#000000"
|
|
4716
|
+
"bg=#2e9a92,fg=#000000",
|
|
4717
|
+
";",
|
|
4718
|
+
"set-option",
|
|
4719
|
+
"-t",
|
|
4720
|
+
tmuxSession,
|
|
4721
|
+
"allow-passthrough",
|
|
4722
|
+
"on",
|
|
4723
|
+
";",
|
|
4724
|
+
"set-option",
|
|
4725
|
+
"-ga",
|
|
4726
|
+
"terminal-features",
|
|
4727
|
+
"xterm*:hyperlinks",
|
|
4728
|
+
";",
|
|
4729
|
+
"set-option",
|
|
4730
|
+
"-ga",
|
|
4731
|
+
"terminal-features",
|
|
4732
|
+
"tmux-256color:hyperlinks,RGB,extkeys",
|
|
4733
|
+
";",
|
|
4734
|
+
"set-option",
|
|
4735
|
+
"-ga",
|
|
4736
|
+
"terminal-features",
|
|
4737
|
+
"xterm*:allow-passthrough",
|
|
4738
|
+
";",
|
|
4739
|
+
"set-option",
|
|
4740
|
+
"-as",
|
|
4741
|
+
"terminal-overrides",
|
|
4742
|
+
",*:allow-passthrough",
|
|
4743
|
+
";",
|
|
4744
|
+
"set-option",
|
|
4745
|
+
"-as",
|
|
4746
|
+
"terminal-overrides",
|
|
4747
|
+
",*:hyperlinks"
|
|
4646
4748
|
];
|
|
4647
4749
|
tmuxReused = false;
|
|
4648
4750
|
console.log(
|
|
@@ -4650,29 +4752,81 @@ var TerminalsService = class {
|
|
|
4650
4752
|
);
|
|
4651
4753
|
}
|
|
4652
4754
|
} else {
|
|
4653
|
-
|
|
4755
|
+
if (this.hasTmux && this.forceTmux && !tmuxRequested) {
|
|
4756
|
+
console.log("\u2139\uFE0F tmux disabled for this terminal session (user toggle)");
|
|
4757
|
+
}
|
|
4758
|
+
shell = defaultShell;
|
|
4759
|
+
shellArgs = [...defaultShellArgs];
|
|
4654
4760
|
}
|
|
4655
|
-
let env = process.env;
|
|
4656
|
-
if (
|
|
4657
|
-
|
|
4761
|
+
let env = { ...process.env };
|
|
4762
|
+
if (resolvedUserId) {
|
|
4763
|
+
const userEnv = await resolveUserEnvironment2(resolvedUserId, this.db);
|
|
4658
4764
|
console.log(
|
|
4659
|
-
`\u{1F510} Loaded ${Object.keys(
|
|
4765
|
+
`\u{1F510} Loaded ${Object.keys(userEnv).length} env vars for user ${resolvedUserId.substring(0, 8)}`
|
|
4660
4766
|
);
|
|
4767
|
+
env = { ...env, ...userEnv };
|
|
4768
|
+
}
|
|
4769
|
+
env = { ...env };
|
|
4770
|
+
if (!env.TERM) {
|
|
4771
|
+
env.TERM = "xterm-256color";
|
|
4772
|
+
}
|
|
4773
|
+
if (!env.COLORTERM) {
|
|
4774
|
+
env.COLORTERM = "truecolor";
|
|
4775
|
+
}
|
|
4776
|
+
if (!env.ENABLE_HYPERLINKS) {
|
|
4777
|
+
env.ENABLE_HYPERLINKS = "1";
|
|
4778
|
+
}
|
|
4779
|
+
if (!env.RICH_FORCE_COLOR) {
|
|
4780
|
+
env.RICH_FORCE_COLOR = "1";
|
|
4781
|
+
}
|
|
4782
|
+
if (!env.RICH_FORCE_HYPERLINK) {
|
|
4783
|
+
env.RICH_FORCE_HYPERLINK = "1";
|
|
4784
|
+
}
|
|
4785
|
+
if (!env.LANG) {
|
|
4786
|
+
env.LANG = "C.UTF-8";
|
|
4787
|
+
}
|
|
4788
|
+
if (!env.LC_ALL) {
|
|
4789
|
+
env.LC_ALL = env.LANG;
|
|
4790
|
+
}
|
|
4791
|
+
if (!env.LC_CTYPE) {
|
|
4792
|
+
env.LC_CTYPE = env.LANG;
|
|
4793
|
+
}
|
|
4794
|
+
let ptyProcess;
|
|
4795
|
+
try {
|
|
4796
|
+
ptyProcess = pty.spawn(shell, shellArgs, {
|
|
4797
|
+
name: "xterm-256color",
|
|
4798
|
+
cols: data.cols || 80,
|
|
4799
|
+
rows: data.rows || 30,
|
|
4800
|
+
cwd,
|
|
4801
|
+
env
|
|
4802
|
+
// Use resolved environment
|
|
4803
|
+
});
|
|
4804
|
+
} catch (error) {
|
|
4805
|
+
if (shell === "tmux") {
|
|
4806
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
4807
|
+
console.warn(`\u26A0\uFE0F Failed to launch tmux session, falling back to direct shell: ${message}`);
|
|
4808
|
+
this.hasTmux = false;
|
|
4809
|
+
tmuxSession = void 0;
|
|
4810
|
+
tmuxReused = false;
|
|
4811
|
+
shell = defaultShell;
|
|
4812
|
+
shellArgs = [...defaultShellArgs];
|
|
4813
|
+
ptyProcess = pty.spawn(shell, shellArgs, {
|
|
4814
|
+
name: "xterm-256color",
|
|
4815
|
+
cols: data.cols || 80,
|
|
4816
|
+
rows: data.rows || 30,
|
|
4817
|
+
cwd,
|
|
4818
|
+
env
|
|
4819
|
+
});
|
|
4820
|
+
} else {
|
|
4821
|
+
throw error;
|
|
4822
|
+
}
|
|
4661
4823
|
}
|
|
4662
|
-
const ptyProcess = pty.spawn(shell, shellArgs, {
|
|
4663
|
-
name: "xterm-color",
|
|
4664
|
-
cols: data.cols || 80,
|
|
4665
|
-
rows: data.rows || 30,
|
|
4666
|
-
cwd,
|
|
4667
|
-
env
|
|
4668
|
-
// Use resolved environment
|
|
4669
|
-
});
|
|
4670
4824
|
this.sessions.set(terminalId, {
|
|
4671
4825
|
terminalId,
|
|
4672
4826
|
pty: ptyProcess,
|
|
4673
4827
|
shell,
|
|
4674
4828
|
cwd,
|
|
4675
|
-
userId:
|
|
4829
|
+
userId: resolvedUserId,
|
|
4676
4830
|
worktreeId: data.worktreeId,
|
|
4677
4831
|
tmuxSession,
|
|
4678
4832
|
createdAt: /* @__PURE__ */ new Date()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Database } from '@agor/core/db';
|
|
2
2
|
import { Application } from '@agor/core/feathers';
|
|
3
|
-
import { UserID, WorktreeID } from '@agor/core/types';
|
|
3
|
+
import { UserID, WorktreeID, AuthenticatedParams } from '@agor/core/types';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Terminals Service
|
|
@@ -23,6 +23,7 @@ interface CreateTerminalData {
|
|
|
23
23
|
cols?: number;
|
|
24
24
|
userId?: UserID;
|
|
25
25
|
worktreeId?: WorktreeID;
|
|
26
|
+
useTmux?: boolean;
|
|
26
27
|
}
|
|
27
28
|
interface ResizeTerminalData {
|
|
28
29
|
rows: number;
|
|
@@ -36,11 +37,12 @@ declare class TerminalsService {
|
|
|
36
37
|
private app;
|
|
37
38
|
private db;
|
|
38
39
|
private hasTmux;
|
|
40
|
+
private forceTmux;
|
|
39
41
|
constructor(app: Application, db: Database);
|
|
40
42
|
/**
|
|
41
43
|
* Create a new terminal session
|
|
42
44
|
*/
|
|
43
|
-
create(data: CreateTerminalData): Promise<{
|
|
45
|
+
create(data: CreateTerminalData, params?: AuthenticatedParams): Promise<{
|
|
44
46
|
terminalId: string;
|
|
45
47
|
cwd: string;
|
|
46
48
|
tmuxSession?: string;
|
|
@@ -37,16 +37,70 @@ function findTmuxWindow(sessionName, windowName) {
|
|
|
37
37
|
return null;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
+
function configureTmuxSession(sessionName) {
|
|
41
|
+
try {
|
|
42
|
+
execSync(`tmux set-option -t "${sessionName}" -g allow-passthrough on`, { stdio: "pipe" });
|
|
43
|
+
} catch (error) {
|
|
44
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
45
|
+
console.warn(
|
|
46
|
+
`\u26A0\uFE0F Failed to enable tmux allow-passthrough for session ${sessionName}: ${message}`
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
execSync(`tmux set-option -t "${sessionName}" -g default-terminal 'tmux-256color'`, {
|
|
51
|
+
stdio: "pipe"
|
|
52
|
+
});
|
|
53
|
+
} catch (error) {
|
|
54
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
55
|
+
console.warn(`\u26A0\uFE0F Failed to set tmux default-terminal for ${sessionName}: ${message}`);
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
execSync(`tmux set-option -ga terminal-features 'xterm*:allow-passthrough'`, { stdio: "pipe" });
|
|
59
|
+
} catch (error) {
|
|
60
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
61
|
+
console.warn(`\u26A0\uFE0F Failed to advertise tmux allow-passthrough feature: ${message}`);
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
execSync(`tmux set-option -ga terminal-features 'tmux-256color:hyperlinks,RGB,extkeys'`, {
|
|
65
|
+
stdio: "pipe"
|
|
66
|
+
});
|
|
67
|
+
} catch (error) {
|
|
68
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
69
|
+
console.warn(`\u26A0\uFE0F Failed to advertise tmux tmux-256color features: ${message}`);
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
execSync(`tmux set-option -ga terminal-features 'xterm*:hyperlinks'`, { stdio: "pipe" });
|
|
73
|
+
} catch (error) {
|
|
74
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
75
|
+
console.warn(`\u26A0\uFE0F Failed to enable tmux hyperlink feature: ${message}`);
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
execSync(`tmux set-option -as terminal-overrides ',*:allow-passthrough'`, { stdio: "pipe" });
|
|
79
|
+
} catch (error) {
|
|
80
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
81
|
+
console.warn(`\u26A0\uFE0F Failed to configure tmux allow-passthrough override: ${message}`);
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
execSync(`tmux set-option -as terminal-overrides ',*:hyperlinks'`, { stdio: "pipe" });
|
|
85
|
+
} catch (error) {
|
|
86
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
87
|
+
console.warn(`\u26A0\uFE0F Failed to configure tmux hyperlink override: ${message}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
40
90
|
var TerminalsService = class {
|
|
41
91
|
sessions = /* @__PURE__ */ new Map();
|
|
42
92
|
app;
|
|
43
93
|
db;
|
|
44
94
|
hasTmux;
|
|
95
|
+
forceTmux;
|
|
45
96
|
constructor(app, db) {
|
|
46
97
|
this.app = app;
|
|
47
98
|
this.db = db;
|
|
48
99
|
this.hasTmux = isTmuxAvailable();
|
|
49
|
-
|
|
100
|
+
this.forceTmux = process.env.AGOR_DISABLE_TMUX !== "true";
|
|
101
|
+
if (!this.forceTmux) {
|
|
102
|
+
console.log("\u2139\uFE0F tmux disabled via AGOR_DISABLE_TMUX=true - using direct PTY sessions");
|
|
103
|
+
} else if (this.hasTmux) {
|
|
50
104
|
console.log("\x1B[36m\u2705 tmux detected\x1B[0m - persistent terminal sessions enabled");
|
|
51
105
|
} else {
|
|
52
106
|
console.log("\u2139\uFE0F tmux not found - using ephemeral terminal sessions");
|
|
@@ -55,8 +109,15 @@ var TerminalsService = class {
|
|
|
55
109
|
/**
|
|
56
110
|
* Create a new terminal session
|
|
57
111
|
*/
|
|
58
|
-
async create(data) {
|
|
112
|
+
async create(data, params) {
|
|
59
113
|
const terminalId = `term-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
114
|
+
const authenticatedUserId = params?.user?.user_id;
|
|
115
|
+
const resolvedUserId = data.userId ?? authenticatedUserId;
|
|
116
|
+
const userSessionSuffix = (() => {
|
|
117
|
+
if (!resolvedUserId) return "shared";
|
|
118
|
+
const sanitized = resolvedUserId.replace(/[^a-zA-Z0-9_-]/g, "");
|
|
119
|
+
return sanitized.length > 0 ? sanitized : "user";
|
|
120
|
+
})();
|
|
60
121
|
let worktree = null;
|
|
61
122
|
let cwd = data.cwd || os.homedir();
|
|
62
123
|
let worktreeName;
|
|
@@ -68,16 +129,20 @@ var TerminalsService = class {
|
|
|
68
129
|
worktreeName = worktree.name;
|
|
69
130
|
}
|
|
70
131
|
}
|
|
71
|
-
|
|
72
|
-
|
|
132
|
+
const defaultShell = data.shell || (os.platform() === "win32" ? "powershell.exe" : "bash");
|
|
133
|
+
const defaultShellArgs = [];
|
|
134
|
+
let shell = defaultShell;
|
|
135
|
+
let shellArgs = [...defaultShellArgs];
|
|
73
136
|
let tmuxSession;
|
|
74
137
|
let tmuxReused = false;
|
|
75
|
-
|
|
76
|
-
|
|
138
|
+
const tmuxRequested = data.useTmux !== false;
|
|
139
|
+
if (this.hasTmux && this.forceTmux && worktree && tmuxRequested) {
|
|
140
|
+
tmuxSession = `agor-${userSessionSuffix}`;
|
|
77
141
|
const sessionExists = tmuxSessionExists(tmuxSession);
|
|
78
142
|
const windowName = worktreeName || "unnamed";
|
|
79
143
|
shell = "tmux";
|
|
80
144
|
if (sessionExists) {
|
|
145
|
+
configureTmuxSession(tmuxSession);
|
|
81
146
|
const windowIndex = findTmuxWindow(tmuxSession, windowName);
|
|
82
147
|
if (windowIndex !== null) {
|
|
83
148
|
shellArgs = ["attach-session", "-t", `${tmuxSession}:${windowIndex}`];
|
|
@@ -115,8 +180,45 @@ var TerminalsService = class {
|
|
|
115
180
|
"set-option",
|
|
116
181
|
"-t",
|
|
117
182
|
tmuxSession,
|
|
183
|
+
"default-terminal",
|
|
184
|
+
"tmux-256color",
|
|
185
|
+
";",
|
|
186
|
+
"set-option",
|
|
187
|
+
"-t",
|
|
188
|
+
tmuxSession,
|
|
118
189
|
"status-style",
|
|
119
|
-
"bg=#2e9a92,fg=#000000"
|
|
190
|
+
"bg=#2e9a92,fg=#000000",
|
|
191
|
+
";",
|
|
192
|
+
"set-option",
|
|
193
|
+
"-t",
|
|
194
|
+
tmuxSession,
|
|
195
|
+
"allow-passthrough",
|
|
196
|
+
"on",
|
|
197
|
+
";",
|
|
198
|
+
"set-option",
|
|
199
|
+
"-ga",
|
|
200
|
+
"terminal-features",
|
|
201
|
+
"xterm*:hyperlinks",
|
|
202
|
+
";",
|
|
203
|
+
"set-option",
|
|
204
|
+
"-ga",
|
|
205
|
+
"terminal-features",
|
|
206
|
+
"tmux-256color:hyperlinks,RGB,extkeys",
|
|
207
|
+
";",
|
|
208
|
+
"set-option",
|
|
209
|
+
"-ga",
|
|
210
|
+
"terminal-features",
|
|
211
|
+
"xterm*:allow-passthrough",
|
|
212
|
+
";",
|
|
213
|
+
"set-option",
|
|
214
|
+
"-as",
|
|
215
|
+
"terminal-overrides",
|
|
216
|
+
",*:allow-passthrough",
|
|
217
|
+
";",
|
|
218
|
+
"set-option",
|
|
219
|
+
"-as",
|
|
220
|
+
"terminal-overrides",
|
|
221
|
+
",*:hyperlinks"
|
|
120
222
|
];
|
|
121
223
|
tmuxReused = false;
|
|
122
224
|
console.log(
|
|
@@ -124,29 +226,81 @@ var TerminalsService = class {
|
|
|
124
226
|
);
|
|
125
227
|
}
|
|
126
228
|
} else {
|
|
127
|
-
|
|
229
|
+
if (this.hasTmux && this.forceTmux && !tmuxRequested) {
|
|
230
|
+
console.log("\u2139\uFE0F tmux disabled for this terminal session (user toggle)");
|
|
231
|
+
}
|
|
232
|
+
shell = defaultShell;
|
|
233
|
+
shellArgs = [...defaultShellArgs];
|
|
128
234
|
}
|
|
129
|
-
let env = process.env;
|
|
130
|
-
if (
|
|
131
|
-
|
|
235
|
+
let env = { ...process.env };
|
|
236
|
+
if (resolvedUserId) {
|
|
237
|
+
const userEnv = await resolveUserEnvironment(resolvedUserId, this.db);
|
|
132
238
|
console.log(
|
|
133
|
-
`\u{1F510} Loaded ${Object.keys(
|
|
239
|
+
`\u{1F510} Loaded ${Object.keys(userEnv).length} env vars for user ${resolvedUserId.substring(0, 8)}`
|
|
134
240
|
);
|
|
241
|
+
env = { ...env, ...userEnv };
|
|
242
|
+
}
|
|
243
|
+
env = { ...env };
|
|
244
|
+
if (!env.TERM) {
|
|
245
|
+
env.TERM = "xterm-256color";
|
|
246
|
+
}
|
|
247
|
+
if (!env.COLORTERM) {
|
|
248
|
+
env.COLORTERM = "truecolor";
|
|
249
|
+
}
|
|
250
|
+
if (!env.ENABLE_HYPERLINKS) {
|
|
251
|
+
env.ENABLE_HYPERLINKS = "1";
|
|
252
|
+
}
|
|
253
|
+
if (!env.RICH_FORCE_COLOR) {
|
|
254
|
+
env.RICH_FORCE_COLOR = "1";
|
|
255
|
+
}
|
|
256
|
+
if (!env.RICH_FORCE_HYPERLINK) {
|
|
257
|
+
env.RICH_FORCE_HYPERLINK = "1";
|
|
258
|
+
}
|
|
259
|
+
if (!env.LANG) {
|
|
260
|
+
env.LANG = "C.UTF-8";
|
|
261
|
+
}
|
|
262
|
+
if (!env.LC_ALL) {
|
|
263
|
+
env.LC_ALL = env.LANG;
|
|
264
|
+
}
|
|
265
|
+
if (!env.LC_CTYPE) {
|
|
266
|
+
env.LC_CTYPE = env.LANG;
|
|
267
|
+
}
|
|
268
|
+
let ptyProcess;
|
|
269
|
+
try {
|
|
270
|
+
ptyProcess = pty.spawn(shell, shellArgs, {
|
|
271
|
+
name: "xterm-256color",
|
|
272
|
+
cols: data.cols || 80,
|
|
273
|
+
rows: data.rows || 30,
|
|
274
|
+
cwd,
|
|
275
|
+
env
|
|
276
|
+
// Use resolved environment
|
|
277
|
+
});
|
|
278
|
+
} catch (error) {
|
|
279
|
+
if (shell === "tmux") {
|
|
280
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
281
|
+
console.warn(`\u26A0\uFE0F Failed to launch tmux session, falling back to direct shell: ${message}`);
|
|
282
|
+
this.hasTmux = false;
|
|
283
|
+
tmuxSession = void 0;
|
|
284
|
+
tmuxReused = false;
|
|
285
|
+
shell = defaultShell;
|
|
286
|
+
shellArgs = [...defaultShellArgs];
|
|
287
|
+
ptyProcess = pty.spawn(shell, shellArgs, {
|
|
288
|
+
name: "xterm-256color",
|
|
289
|
+
cols: data.cols || 80,
|
|
290
|
+
rows: data.rows || 30,
|
|
291
|
+
cwd,
|
|
292
|
+
env
|
|
293
|
+
});
|
|
294
|
+
} else {
|
|
295
|
+
throw error;
|
|
296
|
+
}
|
|
135
297
|
}
|
|
136
|
-
const ptyProcess = pty.spawn(shell, shellArgs, {
|
|
137
|
-
name: "xterm-color",
|
|
138
|
-
cols: data.cols || 80,
|
|
139
|
-
rows: data.rows || 30,
|
|
140
|
-
cwd,
|
|
141
|
-
env
|
|
142
|
-
// Use resolved environment
|
|
143
|
-
});
|
|
144
298
|
this.sessions.set(terminalId, {
|
|
145
299
|
terminalId,
|
|
146
300
|
pty: ptyProcess,
|
|
147
301
|
shell,
|
|
148
302
|
cwd,
|
|
149
|
-
userId:
|
|
303
|
+
userId: resolvedUserId,
|
|
150
304
|
worktreeId: data.worktreeId,
|
|
151
305
|
tmuxSession,
|
|
152
306
|
createdAt: /* @__PURE__ */ new Date()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as x,c as b,g as m,k as P,h as p,j as w,l as N,m as c,n as I,t as A,o as M}from"./_baseUniq-
|
|
1
|
+
import{e as x,c as b,g as m,k as P,h as p,j as w,l as N,m as c,n as I,t as A,o as M}from"./_baseUniq-CzqcD9Hq.js";import{aK as g,aq as E,aL as F,aM as _,aN as $,aO as l,aP as B,aQ as S,aR as T,aS as y}from"./mermaid.core-DLtRr0hs.js";var L=/\s/;function R(n){for(var r=n.length;r--&&L.test(n.charAt(r)););return r}var q=/^\s+/;function G(n){return n&&n.slice(0,R(n)+1).replace(q,"")}var o=NaN,H=/^[-+]0x[0-9a-f]+$/i,K=/^0b[01]+$/i,z=/^0o[0-7]+$/i,C=parseInt;function Q(n){if(typeof n=="number")return n;if(x(n))return o;if(g(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=g(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=G(n);var t=K.test(n);return t||z.test(n)?C(n.slice(2),t?2:8):H.test(n)?o:+n}var v=1/0,W=17976931348623157e292;function X(n){if(!n)return n===0?n:0;if(n=Q(n),n===v||n===-v){var r=n<0?-1:1;return r*W}return n===n?n:0}function Y(n){var r=X(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?b(n):[]}var O=Object.prototype,D=O.hasOwnProperty,dn=E(function(n,r){n=Object(n);var t=-1,i=r.length,a=i>2?r[2]:void 0;for(a&&F(r[0],r[1],a)&&(i=1);++t<i;)for(var f=r[t],e=_(f),s=-1,d=e.length;++s<d;){var u=e[s],h=n[u];(h===void 0||$(h,O[u])&&!D.call(n,u))&&(n[u]=f[u])}return n});function un(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}function J(n){return function(r,t,i){var a=Object(r);if(!l(r)){var f=m(t);r=P(r),t=function(s){return f(a[s],s,a)}}var e=n(r,t,i);return e>-1?a[f?r[e]:e]:void 0}}var U=Math.max;function Z(n,r,t){var i=n==null?0:n.length;if(!i)return-1;var a=t==null?0:Y(t);return a<0&&(a=U(i+a,0)),p(n,m(r),a)}var hn=J(Z);function V(n,r){var t=-1,i=l(n)?Array(n.length):[];return w(n,function(a,f,e){i[++t]=r(a,f,e)}),i}function gn(n,r){var t=B(n)?N:V;return t(n,m(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function mn(n,r){return n!=null&&c(n,r,nn)}function rn(n,r){return n<r}function tn(n,r,t){for(var i=-1,a=n.length;++i<a;){var f=n[i],e=r(f);if(e!=null&&(s===void 0?e===e&&!x(e):t(e,s)))var s=e,d=f}return d}function on(n){return n&&n.length?tn(n,S,rn):void 0}function an(n,r,t,i){if(!g(n))return n;r=I(r,n);for(var a=-1,f=r.length,e=f-1,s=n;s!=null&&++a<f;){var d=A(r[a]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return n;if(a!=e){var h=s[d];u=void 0,u===void 0&&(u=g(h)?h:T(r[a+1])?[]:{})}y(s,d,u),s=s[d]}return n}function vn(n,r,t){for(var i=-1,a=r.length,f={};++i<a;){var e=r[i],s=M(n,e);t(s,e)&&an(f,I(e,n),s)}return f}export{rn as a,tn as b,V as c,vn as d,on as e,fn as f,hn as g,mn as h,dn as i,Y as j,un as l,gn as m,X as t};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b0 as S,b1 as Rn,aP as T,b2 as w,b3 as xn,b4 as Mn,aO as sn,b5 as mn,b6 as un,b7 as x,aM as N,b8 as Cn,b9 as on,ba as Fn,bb as E,a_ as gn,bc as R,aK as ln,bd as Dn,be as D,bf as Gn,bg as Nn,bh as $,aS as Un,bi as Bn,aN as Kn,bj as Q,bk as jn,bl as Hn,aR as Yn,aQ as cn,aY as qn,bm as m}from"./mermaid.core-DKyW12SO.js";var Zn="[object Symbol]";function U(n){return typeof n=="symbol"||S(n)&&Rn(n)==Zn}function bn(n,r){for(var e=-1,t=n==null?0:n.length,f=Array(t);++e<t;)f[e]=r(n[e],e,n);return f}var X=w?w.prototype:void 0,J=X?X.toString:void 0;function dn(n){if(typeof n=="string")return n;if(T(n))return bn(n,dn)+"";if(U(n))return J?J.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Qn(){}function pn(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}function Xn(n,r,e,t){for(var f=n.length,i=e+-1;++i<f;)if(r(n[i],i,n))return i;return-1}function Jn(n){return n!==n}function Wn(n,r,e){for(var t=e-1,f=n.length;++t<f;)if(n[t]===r)return t;return-1}function zn(n,r,e){return r===r?Wn(n,r,e):Xn(n,Jn,e)}function Vn(n,r){var e=n==null?0:n.length;return!!e&&zn(n,r,0)>-1}function _(n){return sn(n)?xn(n):Mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function B(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||U(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=mn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,fr=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,f,i){r.push(f?i.replace(ir,"$1"):t||e)}),r});function ar(n){return n==null?"":dn(n)}function An(n,r){return T(n)?n:B(n,r)?[n]:fr(ar(n))}function M(n){if(typeof n=="string"||U(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(n,r){r=An(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[M(r[e++])];return e&&e==t?n:void 0}function sr(n,r,e){var t=n==null?void 0:yn(n,r);return t===void 0?e:t}function K(n,r){for(var e=-1,t=r.length,f=n.length;++e<t;)n[f+e]=r[e];return n}var W=w?w.isConcatSpreadable:void 0;function ur(n){return T(n)||un(n)||!!(W&&n&&n[W])}function Ot(n,r,e,t,f){var i=-1,a=n.length;for(e||(e=ur),f||(f=[]);++i<a;){var s=n[i];e(s)?K(f,s):t||(f[f.length]=s)}return f}function or(n,r,e,t){var f=-1,i=n==null?0:n.length;for(t&&i&&(e=n[++f]);++f<i;)e=r(e,n[f],f,n);return e}function gr(n,r){return n&&x(r,_(r),n)}function lr(n,r){return n&&x(r,N(r),n)}function Tn(n,r){for(var e=-1,t=n==null?0:n.length,f=0,i=[];++e<t;){var a=n[e];r(a,e,n)&&(i[f++]=a)}return i}function hn(){return[]}var cr=Object.prototype,br=cr.propertyIsEnumerable,z=Object.getOwnPropertySymbols,j=z?function(n){return n==null?[]:(n=Object(n),Tn(z(n),function(r){return br.call(n,r)}))}:hn;function dr(n,r){return x(n,j(n),r)}var pr=Object.getOwnPropertySymbols,wn=pr?function(n){for(var r=[];n;)K(r,j(n)),n=Cn(n);return r}:hn;function Ar(n,r){return x(n,wn(n),r)}function On(n,r,e){var t=r(n);return T(n)?t:K(t,e(n))}function G(n){return On(n,_,j)}function yr(n){return On(n,N,wn)}var Tr=Object.prototype,hr=Tr.hasOwnProperty;function wr(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&hr.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function Or(n,r){var e=r?on(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var _r=/\w*$/;function $r(n){var r=new n.constructor(n.source,_r.exec(n));return r.lastIndex=n.lastIndex,r}var V=w?w.prototype:void 0,k=V?V.valueOf:void 0;function Sr(n){return k?Object(k.call(n)):{}}var Er="[object Boolean]",Pr="[object Date]",Ir="[object Map]",vr="[object Number]",Lr="[object RegExp]",Rr="[object Set]",xr="[object String]",Mr="[object Symbol]",mr="[object ArrayBuffer]",Cr="[object DataView]",Fr="[object Float32Array]",Dr="[object Float64Array]",Gr="[object Int8Array]",Nr="[object Int16Array]",Ur="[object Int32Array]",Br="[object Uint8Array]",Kr="[object Uint8ClampedArray]",jr="[object Uint16Array]",Hr="[object Uint32Array]";function Yr(n,r,e){var t=n.constructor;switch(r){case mr:return on(n);case Er:case Pr:return new t(+n);case Cr:return Or(n,e);case Fr:case Dr:case Gr:case Nr:case Ur:case Br:case Kr:case jr:case Hr:return Fn(n,e);case Ir:return new t;case vr:case xr:return new t(n);case Lr:return $r(n);case Rr:return new t;case Mr:return Sr(n)}}var qr="[object Map]";function Zr(n){return S(n)&&E(n)==qr}var nn=R&&R.isMap,Qr=nn?gn(nn):Zr,Xr="[object Set]";function Jr(n){return S(n)&&E(n)==Xr}var rn=R&&R.isSet,Wr=rn?gn(rn):Jr,zr=1,Vr=2,kr=4,_n="[object Arguments]",ne="[object Array]",re="[object Boolean]",ee="[object Date]",te="[object Error]",$n="[object Function]",ie="[object GeneratorFunction]",fe="[object Map]",ae="[object Number]",Sn="[object Object]",se="[object RegExp]",ue="[object Set]",oe="[object String]",ge="[object Symbol]",le="[object WeakMap]",ce="[object ArrayBuffer]",be="[object DataView]",de="[object Float32Array]",pe="[object Float64Array]",Ae="[object Int8Array]",ye="[object Int16Array]",Te="[object Int32Array]",he="[object Uint8Array]",we="[object Uint8ClampedArray]",Oe="[object Uint16Array]",_e="[object Uint32Array]",g={};g[_n]=g[ne]=g[ce]=g[be]=g[re]=g[ee]=g[de]=g[pe]=g[Ae]=g[ye]=g[Te]=g[fe]=g[ae]=g[Sn]=g[se]=g[ue]=g[oe]=g[ge]=g[he]=g[we]=g[Oe]=g[_e]=!0;g[te]=g[$n]=g[le]=!1;function C(n,r,e,t,f,i){var a,s=r&zr,u=r&Vr,b=r&kr;if(a!==void 0)return a;if(!ln(n))return n;var l=T(n);if(l){if(a=wr(n),!s)return Dn(n,a)}else{var o=E(n),c=o==$n||o==ie;if(D(n))return Gn(n,s);if(o==Sn||o==_n||c&&!f){if(a=u||c?{}:Nn(n),!s)return u?Ar(n,lr(a,n)):dr(n,gr(a,n))}else{if(!g[o])return f?n:{};a=Yr(n,o,s)}}i||(i=new $);var h=i.get(n);if(h)return h;i.set(n,a),Wr(n)?n.forEach(function(d){a.add(C(d,r,e,d,n,i))}):Qr(n)&&n.forEach(function(d,p){a.set(p,C(d,r,e,p,n,i))});var A=b?u?yr:G:u?N:_,y=l?void 0:A(n);return pn(y||n,function(d,p){y&&(p=d,d=n[p]),Un(a,p,C(d,r,e,p,n,i))}),a}var $e="__lodash_hash_undefined__";function Se(n){return this.__data__.set(n,$e),this}function Ee(n){return this.__data__.has(n)}function P(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Bn;++r<e;)this.add(n[r])}P.prototype.add=P.prototype.push=Se;P.prototype.has=Ee;function Pe(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}function En(n,r){return n.has(r)}var Ie=1,ve=2;function Pn(n,r,e,t,f,i){var a=e&Ie,s=n.length,u=r.length;if(s!=u&&!(a&&u>s))return!1;var b=i.get(n),l=i.get(r);if(b&&l)return b==r&&l==n;var o=-1,c=!0,h=e&ve?new P:void 0;for(i.set(n,r),i.set(r,n);++o<s;){var A=n[o],y=r[o];if(t)var d=a?t(y,A,o,r,n,i):t(A,y,o,n,r,i);if(d!==void 0){if(d)continue;c=!1;break}if(h){if(!Pe(r,function(p,O){if(!En(h,O)&&(A===p||f(A,p,e,t,i)))return h.push(O)})){c=!1;break}}else if(!(A===y||f(A,y,e,t,i))){c=!1;break}}return i.delete(n),i.delete(r),c}function Le(n){var r=-1,e=Array(n.size);return n.forEach(function(t,f){e[++r]=[f,t]}),e}function H(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Re=1,xe=2,Me="[object Boolean]",me="[object Date]",Ce="[object Error]",Fe="[object Map]",De="[object Number]",Ge="[object RegExp]",Ne="[object Set]",Ue="[object String]",Be="[object Symbol]",Ke="[object ArrayBuffer]",je="[object DataView]",en=w?w.prototype:void 0,F=en?en.valueOf:void 0;function He(n,r,e,t,f,i,a){switch(e){case je:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case Ke:return!(n.byteLength!=r.byteLength||!i(new Q(n),new Q(r)));case Me:case me:case De:return Kn(+n,+r);case Ce:return n.name==r.name&&n.message==r.message;case Ge:case Ue:return n==r+"";case Fe:var s=Le;case Ne:var u=tℜif(s||(s=H),n.size!=r.size&&!u)return!1;var b=a.get(n);if(b)return b==r;t|=xe,a.set(n,r);var l=Pn(s(n),s(r),t,f,i,a);return a.delete(n),l;case Be:if(F)return F.call(n)==F.call(r)}return!1}var Ye=1,qe=Object.prototype,Ze=qe.hasOwnProperty;function Qe(n,r,e,t,f,i){var a=e&Ye,s=G(n),u=s.length,b=G(r),l=b.length;if(u!=l&&!a)return!1;for(var o=u;o--;){var c=s[o];if(!(a?c in r:Ze.call(r,c)))return!1}var h=i.get(n),A=i.get(r);if(h&&A)return h==r&&A==n;var y=!0;i.set(n,r),i.set(r,n);for(var d=a;++o<u;){c=s[o];var p=n[c],O=r[c];if(t)var Z=a?t(O,p,c,r,n,i):t(p,O,c,n,r,i);if(!(Z===void 0?p===O||f(p,O,e,t,i):Z)){y=!1;break}d||(d=c=="constructor")}if(y&&!d){var I=n.constructor,v=r.constructor;I!=v&&"constructor"in n&&"constructor"in r&&!(typeof I=="function"&&I instanceof I&&typeof v=="function"&&v instanceof v)&&(y=!1)}return i.delete(n),i.delete(r),y}var Xe=1,tn="[object Arguments]",fn="[object Array]",L="[object Object]",Je=Object.prototype,an=Je.hasOwnProperty;function We(n,r,e,t,f,i){var a=T(n),s=T(r),u=a?fn:E(n),b=s?fn:E(r);u=u==tn?L:u,b=b==tn?L:b;var l=u==L,o=b==L,c=u==b;if(c&&D(n)){if(!D(r))return!1;a=!0,l=!1}if(c&&!l)return i||(i=new $),a||jn(n)?Pn(n,r,e,t,f,i):He(n,r,u,e,t,f,i);if(!(e&Xe)){var h=l&&an.call(n,"__wrapped__"),A=o&&an.call(r,"__wrapped__");if(h||A){var y=h?n.value():n,d=A?r.value():r;return i||(i=new $),f(y,d,e,t,i)}}return c?(i||(i=new $),Qe(n,r,e,t,f,i)):!1}function Y(n,r,e,t,f){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:We(n,r,e,t,Y,f)}var ze=1,Ve=2;function ke(n,r,e,t){var f=e.length,i=f;if(n==null)return!i;for(n=Object(n);f--;){var a=e[f];if(a[2]?a[1]!==n[a[0]]:!(a[0]in n))return!1}for(;++f<i;){a=e[f];var s=a[0],u=n[s],b=a[1];if(a[2]){if(u===void 0&&!(s in n))return!1}else{var l=new $,o;if(!(o===void 0?Y(b,u,ze|Ve,t,l):o))return!1}}return!0}function In(n){return n===n&&!ln(n)}function nt(n){for(var r=_(n),e=r.length;e--;){var t=r[e],f=n[t];r[e]=[t,f,In(f)]}return r}function vn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function rt(n){var r=nt(n);return r.length==1&&r[0][2]?vn(r[0][0],r[0][1]):function(e){return e===n||ke(e,n,r)}}function et(n,r){return n!=null&&r in Object(n)}function tt(n,r,e){r=An(r,n);for(var t=-1,f=r.length,i=!1;++t<f;){var a=M(r[t]);if(!(i=n!=null&&e(n,a)))break;n=n[a]}return i||++t!=f?i:(f=n==null?0:n.length,!!f&&Hn(f)&&Yn(a,f)&&(T(n)||un(n)))}function it(n,r){return n!=null&&tt(n,r,et)}var ft=1,at=2;function st(n,r){return B(n)&&In(r)?vn(M(n),r):function(e){var t=sr(e,n);return t===void 0&&t===r?it(e,n):Y(r,t,ft|at)}}function ut(n){return function(r){return r?.[n]}}function ot(n){return function(r){return yn(r,n)}}function gt(n){return B(n)?ut(M(n)):ot(n)}function Ln(n){return typeof n=="function"?n:n==null?cn:typeof n=="object"?T(n)?st(n[0],n[1]):rt(n):gt(n)}function lt(n,r){return n&&qn(n,r,_)}function ct(n,r){return function(e,t){if(e==null)return e;if(!sn(e))return n(e,t);for(var f=e.length,i=-1,a=Object(e);++i<f&&t(a[i],i,a)!==!1;);return e}}var q=ct(lt);function bt(n){return typeof n=="function"?n:cn}function _t(n,r){var e=T(n)?pn:q;return e(n,bt(r))}function dt(n,r){var e=[];return q(n,function(t,f,i){r(t,f,i)&&e.push(t)}),e}function $t(n,r){var e=T(n)?Tn:dt;return e(n,Ln(r))}function pt(n,r){return bn(r,function(e){return n[e]})}function St(n){return n==null?[]:pt(n,_(n))}function Et(n){return n===void 0}function At(n,r,e,t,f){return f(n,function(i,a,s){e=t?(t=!1,i):r(e,i,a,s)}),e}function Pt(n,r,e){var t=T(n)?or:At,f=arguments.length<3;return t(n,Ln(r),e,f,q)}var yt=1/0,Tt=m&&1/H(new m([,-0]))[1]==yt?function(n){return new m(n)}:Qn,ht=200;function It(n,r,e){var t=-1,f=Vn,i=n.length,a=!0,s=[],u=s;if(i>=ht){var b=r?null:Tt(n);if(b)return H(b);a=!1,f=En,u=new P}else u=r?[]:s;n:for(;++t<i;){var l=n[t],o=r?r(l):l;if(l=l!==0?l:0,a&&o===o){for(var c=u.length;c--;)if(u[c]===o)continue n;r&&u.push(o),s.push(l)}else f(u,o,e)||(u!==s&&u.push(o),s.push(l))}return s}export{Tn as A,dt as B,Pe as C,Qn as D,P as S,It as a,C as b,Ot as c,_t as d,U as e,$t as f,Ln as g,Xn as h,Et as i,q as j,_ as k,bn as l,tt as m,An as n,yn as o,bt as p,lt as q,Pt as r,it as s,M as t,ar as u,St as v,Vn as w,En as x,zn as y,yr as z};
|
|
1
|
+
import{b0 as S,b1 as Rn,aP as T,b2 as w,b3 as xn,b4 as Mn,aO as sn,b5 as mn,b6 as un,b7 as x,aM as N,b8 as Cn,b9 as on,ba as Fn,bb as E,a_ as gn,bc as R,aK as ln,bd as Dn,be as D,bf as Gn,bg as Nn,bh as $,aS as Un,bi as Bn,aN as Kn,bj as Q,bk as jn,bl as Hn,aR as Yn,aQ as cn,aY as qn,bm as m}from"./mermaid.core-DLtRr0hs.js";var Zn="[object Symbol]";function U(n){return typeof n=="symbol"||S(n)&&Rn(n)==Zn}function bn(n,r){for(var e=-1,t=n==null?0:n.length,f=Array(t);++e<t;)f[e]=r(n[e],e,n);return f}var X=w?w.prototype:void 0,J=X?X.toString:void 0;function dn(n){if(typeof n=="string")return n;if(T(n))return bn(n,dn)+"";if(U(n))return J?J.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Qn(){}function pn(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}function Xn(n,r,e,t){for(var f=n.length,i=e+-1;++i<f;)if(r(n[i],i,n))return i;return-1}function Jn(n){return n!==n}function Wn(n,r,e){for(var t=e-1,f=n.length;++t<f;)if(n[t]===r)return t;return-1}function zn(n,r,e){return r===r?Wn(n,r,e):Xn(n,Jn,e)}function Vn(n,r){var e=n==null?0:n.length;return!!e&&zn(n,r,0)>-1}function _(n){return sn(n)?xn(n):Mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function B(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||U(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=mn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,fr=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,f,i){r.push(f?i.replace(ir,"$1"):t||e)}),r});function ar(n){return n==null?"":dn(n)}function An(n,r){return T(n)?n:B(n,r)?[n]:fr(ar(n))}function M(n){if(typeof n=="string"||U(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(n,r){r=An(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[M(r[e++])];return e&&e==t?n:void 0}function sr(n,r,e){var t=n==null?void 0:yn(n,r);return t===void 0?e:t}function K(n,r){for(var e=-1,t=r.length,f=n.length;++e<t;)n[f+e]=r[e];return n}var W=w?w.isConcatSpreadable:void 0;function ur(n){return T(n)||un(n)||!!(W&&n&&n[W])}function Ot(n,r,e,t,f){var i=-1,a=n.length;for(e||(e=ur),f||(f=[]);++i<a;){var s=n[i];e(s)?K(f,s):t||(f[f.length]=s)}return f}function or(n,r,e,t){var f=-1,i=n==null?0:n.length;for(t&&i&&(e=n[++f]);++f<i;)e=r(e,n[f],f,n);return e}function gr(n,r){return n&&x(r,_(r),n)}function lr(n,r){return n&&x(r,N(r),n)}function Tn(n,r){for(var e=-1,t=n==null?0:n.length,f=0,i=[];++e<t;){var a=n[e];r(a,e,n)&&(i[f++]=a)}return i}function hn(){return[]}var cr=Object.prototype,br=cr.propertyIsEnumerable,z=Object.getOwnPropertySymbols,j=z?function(n){return n==null?[]:(n=Object(n),Tn(z(n),function(r){return br.call(n,r)}))}:hn;function dr(n,r){return x(n,j(n),r)}var pr=Object.getOwnPropertySymbols,wn=pr?function(n){for(var r=[];n;)K(r,j(n)),n=Cn(n);return r}:hn;function Ar(n,r){return x(n,wn(n),r)}function On(n,r,e){var t=r(n);return T(n)?t:K(t,e(n))}function G(n){return On(n,_,j)}function yr(n){return On(n,N,wn)}var Tr=Object.prototype,hr=Tr.hasOwnProperty;function wr(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&hr.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function Or(n,r){var e=r?on(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var _r=/\w*$/;function $r(n){var r=new n.constructor(n.source,_r.exec(n));return r.lastIndex=n.lastIndex,r}var V=w?w.prototype:void 0,k=V?V.valueOf:void 0;function Sr(n){return k?Object(k.call(n)):{}}var Er="[object Boolean]",Pr="[object Date]",Ir="[object Map]",vr="[object Number]",Lr="[object RegExp]",Rr="[object Set]",xr="[object String]",Mr="[object Symbol]",mr="[object ArrayBuffer]",Cr="[object DataView]",Fr="[object Float32Array]",Dr="[object Float64Array]",Gr="[object Int8Array]",Nr="[object Int16Array]",Ur="[object Int32Array]",Br="[object Uint8Array]",Kr="[object Uint8ClampedArray]",jr="[object Uint16Array]",Hr="[object Uint32Array]";function Yr(n,r,e){var t=n.constructor;switch(r){case mr:return on(n);case Er:case Pr:return new t(+n);case Cr:return Or(n,e);case Fr:case Dr:case Gr:case Nr:case Ur:case Br:case Kr:case jr:case Hr:return Fn(n,e);case Ir:return new t;case vr:case xr:return new t(n);case Lr:return $r(n);case Rr:return new t;case Mr:return Sr(n)}}var qr="[object Map]";function Zr(n){return S(n)&&E(n)==qr}var nn=R&&R.isMap,Qr=nn?gn(nn):Zr,Xr="[object Set]";function Jr(n){return S(n)&&E(n)==Xr}var rn=R&&R.isSet,Wr=rn?gn(rn):Jr,zr=1,Vr=2,kr=4,_n="[object Arguments]",ne="[object Array]",re="[object Boolean]",ee="[object Date]",te="[object Error]",$n="[object Function]",ie="[object GeneratorFunction]",fe="[object Map]",ae="[object Number]",Sn="[object Object]",se="[object RegExp]",ue="[object Set]",oe="[object String]",ge="[object Symbol]",le="[object WeakMap]",ce="[object ArrayBuffer]",be="[object DataView]",de="[object Float32Array]",pe="[object Float64Array]",Ae="[object Int8Array]",ye="[object Int16Array]",Te="[object Int32Array]",he="[object Uint8Array]",we="[object Uint8ClampedArray]",Oe="[object Uint16Array]",_e="[object Uint32Array]",g={};g[_n]=g[ne]=g[ce]=g[be]=g[re]=g[ee]=g[de]=g[pe]=g[Ae]=g[ye]=g[Te]=g[fe]=g[ae]=g[Sn]=g[se]=g[ue]=g[oe]=g[ge]=g[he]=g[we]=g[Oe]=g[_e]=!0;g[te]=g[$n]=g[le]=!1;function C(n,r,e,t,f,i){var a,s=r&zr,u=r&Vr,b=r&kr;if(a!==void 0)return a;if(!ln(n))return n;var l=T(n);if(l){if(a=wr(n),!s)return Dn(n,a)}else{var o=E(n),c=o==$n||o==ie;if(D(n))return Gn(n,s);if(o==Sn||o==_n||c&&!f){if(a=u||c?{}:Nn(n),!s)return u?Ar(n,lr(a,n)):dr(n,gr(a,n))}else{if(!g[o])return f?n:{};a=Yr(n,o,s)}}i||(i=new $);var h=i.get(n);if(h)return h;i.set(n,a),Wr(n)?n.forEach(function(d){a.add(C(d,r,e,d,n,i))}):Qr(n)&&n.forEach(function(d,p){a.set(p,C(d,r,e,p,n,i))});var A=b?u?yr:G:u?N:_,y=l?void 0:A(n);return pn(y||n,function(d,p){y&&(p=d,d=n[p]),Un(a,p,C(d,r,e,p,n,i))}),a}var $e="__lodash_hash_undefined__";function Se(n){return this.__data__.set(n,$e),this}function Ee(n){return this.__data__.has(n)}function P(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Bn;++r<e;)this.add(n[r])}P.prototype.add=P.prototype.push=Se;P.prototype.has=Ee;function Pe(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}function En(n,r){return n.has(r)}var Ie=1,ve=2;function Pn(n,r,e,t,f,i){var a=e&Ie,s=n.length,u=r.length;if(s!=u&&!(a&&u>s))return!1;var b=i.get(n),l=i.get(r);if(b&&l)return b==r&&l==n;var o=-1,c=!0,h=e&ve?new P:void 0;for(i.set(n,r),i.set(r,n);++o<s;){var A=n[o],y=r[o];if(t)var d=a?t(y,A,o,r,n,i):t(A,y,o,n,r,i);if(d!==void 0){if(d)continue;c=!1;break}if(h){if(!Pe(r,function(p,O){if(!En(h,O)&&(A===p||f(A,p,e,t,i)))return h.push(O)})){c=!1;break}}else if(!(A===y||f(A,y,e,t,i))){c=!1;break}}return i.delete(n),i.delete(r),c}function Le(n){var r=-1,e=Array(n.size);return n.forEach(function(t,f){e[++r]=[f,t]}),e}function H(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Re=1,xe=2,Me="[object Boolean]",me="[object Date]",Ce="[object Error]",Fe="[object Map]",De="[object Number]",Ge="[object RegExp]",Ne="[object Set]",Ue="[object String]",Be="[object Symbol]",Ke="[object ArrayBuffer]",je="[object DataView]",en=w?w.prototype:void 0,F=en?en.valueOf:void 0;function He(n,r,e,t,f,i,a){switch(e){case je:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case Ke:return!(n.byteLength!=r.byteLength||!i(new Q(n),new Q(r)));case Me:case me:case De:return Kn(+n,+r);case Ce:return n.name==r.name&&n.message==r.message;case Ge:case Ue:return n==r+"";case Fe:var s=Le;case Ne:var u=tℜif(s||(s=H),n.size!=r.size&&!u)return!1;var b=a.get(n);if(b)return b==r;t|=xe,a.set(n,r);var l=Pn(s(n),s(r),t,f,i,a);return a.delete(n),l;case Be:if(F)return F.call(n)==F.call(r)}return!1}var Ye=1,qe=Object.prototype,Ze=qe.hasOwnProperty;function Qe(n,r,e,t,f,i){var a=e&Ye,s=G(n),u=s.length,b=G(r),l=b.length;if(u!=l&&!a)return!1;for(var o=u;o--;){var c=s[o];if(!(a?c in r:Ze.call(r,c)))return!1}var h=i.get(n),A=i.get(r);if(h&&A)return h==r&&A==n;var y=!0;i.set(n,r),i.set(r,n);for(var d=a;++o<u;){c=s[o];var p=n[c],O=r[c];if(t)var Z=a?t(O,p,c,r,n,i):t(p,O,c,n,r,i);if(!(Z===void 0?p===O||f(p,O,e,t,i):Z)){y=!1;break}d||(d=c=="constructor")}if(y&&!d){var I=n.constructor,v=r.constructor;I!=v&&"constructor"in n&&"constructor"in r&&!(typeof I=="function"&&I instanceof I&&typeof v=="function"&&v instanceof v)&&(y=!1)}return i.delete(n),i.delete(r),y}var Xe=1,tn="[object Arguments]",fn="[object Array]",L="[object Object]",Je=Object.prototype,an=Je.hasOwnProperty;function We(n,r,e,t,f,i){var a=T(n),s=T(r),u=a?fn:E(n),b=s?fn:E(r);u=u==tn?L:u,b=b==tn?L:b;var l=u==L,o=b==L,c=u==b;if(c&&D(n)){if(!D(r))return!1;a=!0,l=!1}if(c&&!l)return i||(i=new $),a||jn(n)?Pn(n,r,e,t,f,i):He(n,r,u,e,t,f,i);if(!(e&Xe)){var h=l&&an.call(n,"__wrapped__"),A=o&&an.call(r,"__wrapped__");if(h||A){var y=h?n.value():n,d=A?r.value():r;return i||(i=new $),f(y,d,e,t,i)}}return c?(i||(i=new $),Qe(n,r,e,t,f,i)):!1}function Y(n,r,e,t,f){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:We(n,r,e,t,Y,f)}var ze=1,Ve=2;function ke(n,r,e,t){var f=e.length,i=f;if(n==null)return!i;for(n=Object(n);f--;){var a=e[f];if(a[2]?a[1]!==n[a[0]]:!(a[0]in n))return!1}for(;++f<i;){a=e[f];var s=a[0],u=n[s],b=a[1];if(a[2]){if(u===void 0&&!(s in n))return!1}else{var l=new $,o;if(!(o===void 0?Y(b,u,ze|Ve,t,l):o))return!1}}return!0}function In(n){return n===n&&!ln(n)}function nt(n){for(var r=_(n),e=r.length;e--;){var t=r[e],f=n[t];r[e]=[t,f,In(f)]}return r}function vn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function rt(n){var r=nt(n);return r.length==1&&r[0][2]?vn(r[0][0],r[0][1]):function(e){return e===n||ke(e,n,r)}}function et(n,r){return n!=null&&r in Object(n)}function tt(n,r,e){r=An(r,n);for(var t=-1,f=r.length,i=!1;++t<f;){var a=M(r[t]);if(!(i=n!=null&&e(n,a)))break;n=n[a]}return i||++t!=f?i:(f=n==null?0:n.length,!!f&&Hn(f)&&Yn(a,f)&&(T(n)||un(n)))}function it(n,r){return n!=null&&tt(n,r,et)}var ft=1,at=2;function st(n,r){return B(n)&&In(r)?vn(M(n),r):function(e){var t=sr(e,n);return t===void 0&&t===r?it(e,n):Y(r,t,ft|at)}}function ut(n){return function(r){return r?.[n]}}function ot(n){return function(r){return yn(r,n)}}function gt(n){return B(n)?ut(M(n)):ot(n)}function Ln(n){return typeof n=="function"?n:n==null?cn:typeof n=="object"?T(n)?st(n[0],n[1]):rt(n):gt(n)}function lt(n,r){return n&&qn(n,r,_)}function ct(n,r){return function(e,t){if(e==null)return e;if(!sn(e))return n(e,t);for(var f=e.length,i=-1,a=Object(e);++i<f&&t(a[i],i,a)!==!1;);return e}}var q=ct(lt);function bt(n){return typeof n=="function"?n:cn}function _t(n,r){var e=T(n)?pn:q;return e(n,bt(r))}function dt(n,r){var e=[];return q(n,function(t,f,i){r(t,f,i)&&e.push(t)}),e}function $t(n,r){var e=T(n)?Tn:dt;return e(n,Ln(r))}function pt(n,r){return bn(r,function(e){return n[e]})}function St(n){return n==null?[]:pt(n,_(n))}function Et(n){return n===void 0}function At(n,r,e,t,f){return f(n,function(i,a,s){e=t?(t=!1,i):r(e,i,a,s)}),e}function Pt(n,r,e){var t=T(n)?or:At,f=arguments.length<3;return t(n,Ln(r),e,f,q)}var yt=1/0,Tt=m&&1/H(new m([,-0]))[1]==yt?function(n){return new m(n)}:Qn,ht=200;function It(n,r,e){var t=-1,f=Vn,i=n.length,a=!0,s=[],u=s;if(i>=ht){var b=r?null:Tt(n);if(b)return H(b);a=!1,f=En,u=new P}else u=r?[]:s;n:for(;++t<i;){var l=n[t],o=r?r(l):l;if(l=l!==0?l:0,a&&o===o){for(var c=u.length;c--;)if(u[c]===o)continue n;r&&u.push(o),s.push(l)}else f(u,o,e)||(u!==s&&u.push(o),s.push(l))}return s}export{Tn as A,dt as B,Pe as C,Qn as D,P as S,It as a,C as b,Ot as c,_t as d,U as e,$t as f,Ln as g,Xn as h,Et as i,q as j,_ as k,bn as l,tt as m,An as n,yn as o,bt as p,lt as q,Pt as r,it as s,M as t,ar as u,St as v,Vn as w,En as x,zn as y,yr as z};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{L as ln,M as un,N as X,O,P as N,Q as an,R as y,S as tn,T as $,V as _,W as rn,X as o,Y as sn,Z as on,$ as fn}from"./mermaid.core-
|
|
1
|
+
import{L as ln,M as un,N as X,O,P as N,Q as an,R as y,S as tn,T as $,V as _,W as rn,X as o,Y as sn,Z as on,$ as fn}from"./mermaid.core-DLtRr0hs.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,D,S,v,R,Q,u){var E=D-l,i=S-h,n=Q-v,d=u-R,a=d*E-n*i;if(!(a*a<y))return a=(n*(h-R)-d*(l-v))/a,[l+a*E,h+a*i]}function G(l,h,D,S,v,R,Q){var u=l-D,E=h-S,i=(Q?R:-R)/$(u*u+E*E),n=i*E,d=-i*u,a=l+n,s=h+d,f=D+n,c=S+d,V=(a+f)/2,t=(s+c)/2,m=f-a,g=c-s,A=m*m+g*g,T=v-R,P=a*c-f*s,I=(g<0?-1:1)*$(on(0,T*T*A-P*P)),L=(P*g-m*I)/A,M=(-P*m-g*I)/A,w=(P*g+m*I)/A,p=(-P*m+g*I)/A,x=L-V,e=M-t,r=w-V,W=p-t;return x*x+e*e>r*r+W*W&&(L=w,M=p),{cx:L,cy:M,x01:-n,y01:-d,x11:L*(v/T-1),y11:M*(v/T-1)}}function hn(){var l=cn,h=yn,D=N(0),S=null,v=gn,R=dn,Q=mn,u=null,E=ln(i);function i(){var n,d,a=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=R.apply(this,arguments)-an,V=rn(c-f),t=c>f;if(u||(u=n=E()),s<a&&(d=s,s=a,a=d),!(s>y))u.moveTo(0,0);else if(V>tn-y)u.moveTo(s*X(f),s*O(f)),u.arc(0,0,s,f,c,!t),a>y&&(u.moveTo(a*X(c),a*O(c)),u.arc(0,0,a,c,f,t));else{var m=f,g=c,A=f,T=c,P=V,I=V,L=Q.apply(this,arguments)/2,M=L>y&&(S?+S.apply(this,arguments):$(a*a+s*s)),w=_(rn(s-a)/2,+D.apply(this,arguments)),p=w,x=w,e,r;if(M>y){var W=sn(M/a*O(L)),j=sn(M/s*O(L));(P-=W*2)>y?(W*=t?1:-1,A+=W,T-=W):(P=0,A=T=(f+c)/2),(I-=j*2)>y?(j*=t?1:-1,m+=j,g-=j):(I=0,m=g=(f+c)/2)}var Y=s*X(m),Z=s*O(m),z=a*X(T),B=a*O(T);if(w>y){var C=s*X(g),F=s*O(g),H=a*X(A),J=a*O(A),q;if(V<un)if(q=pn(Y,Z,H,J,C,F,z,B)){var K=Y-q[0],U=Z-q[1],k=C-q[0],b=F-q[1],nn=1/O(fn((K*k+U*b)/($(K*K+U*U)*$(k*k+b*b)))/2),en=$(q[0]*q[0]+q[1]*q[1]);p=_(w,(a-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}I>y?x>y?(e=G(H,J,Y,Z,s,x,t),r=G(C,F,z,B,s,x,t),u.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?u.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(u.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),u.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),u.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(u.moveTo(Y,Z),u.arc(0,0,s,m,g,!t)):u.moveTo(Y,Z),!(a>y)||!(P>y)?u.lineTo(z,B):p>y?(e=G(z,B,C,F,a,-p,t),r=G(Y,Z,H,J,a,-p,t),u.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?u.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(u.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),u.arc(0,0,a,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),u.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):u.arc(0,0,a,T,A,t)}if(u.closePath(),n)return u=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +R.apply(this,arguments))/2-un/2;return[X(d)*n,O(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:N(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:N(+n),i):h},i.cornerRadius=function(n){return arguments.length?(D=typeof n=="function"?n:N(+n),i):D},i.padRadius=function(n){return arguments.length?(S=n==null?null:typeof n=="function"?n:N(+n),i):S},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:N(+n),i):v},i.endAngle=function(n){return arguments.length?(R=typeof n=="function"?n:N(+n),i):R},i.padAngle=function(n){return arguments.length?(Q=typeof n=="function"?n:N(+n),i):Q},i.context=function(n){return arguments.length?(u=n??null,i):u},i}export{hn as d};
|
|
Binary file
|