@runweave/server-linux-x64 0.1.13 → 0.1.14
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/manifest.json +144 -144
- package/native.tar.gz +0 -0
- package/package.json +1 -1
- package/payload/app-server/build-info.json +3 -3
- package/payload/app-server/index.cjs +1 -1
- package/payload/backend/build-info.json +4 -4
- package/payload/backend/index.cjs +58 -20
- package/payload/frontend/dist/assets/{_baseUniq-VUz3u9LC.js → _baseUniq-BqvkeJO_.js} +1 -1
- package/payload/frontend/dist/assets/{access-DYX0dB6C.js → access-DdS0UJde.js} +1 -1
- package/payload/frontend/dist/assets/{advanced-CweRHp2W.js → advanced-BbcDBPNv.js} +1 -1
- package/payload/frontend/dist/assets/{appearance-494KUegR.js → appearance-BvmkpQdR.js} +1 -1
- package/payload/frontend/dist/assets/{arc-Z2kK66lq.js → arc-C0XOrQvn.js} +1 -1
- package/payload/frontend/dist/assets/{architectureDiagram-Q4EWVU46-qCVxxH3R.js → architectureDiagram-Q4EWVU46-BPP9wqzx.js} +1 -1
- package/payload/frontend/dist/assets/{blockDiagram-DXYQGD6D-BlIbAFEf.js → blockDiagram-DXYQGD6D-C-tmnyfm.js} +1 -1
- package/payload/frontend/dist/assets/{c4Diagram-AHTNJAMY-E3iDtEa4.js → c4Diagram-AHTNJAMY-C6uI9h_3.js} +1 -1
- package/payload/frontend/dist/assets/channel-DaIQFY7W.js +1 -0
- package/payload/frontend/dist/assets/{chunk-4BX2VUAB-BMmYQfLj.js → chunk-4BX2VUAB-CCI-uz3D.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-4TB4RGXK-CWBrRDbS.js → chunk-4TB4RGXK-CqUM0_7D.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-55IACEB6-B-RyyBnf.js → chunk-55IACEB6-DDxrCLKB.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-EDXVE4YY-BKzU4TXS.js → chunk-EDXVE4YY-LwYMVaGh.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-FMBD7UC4-n132OCI6.js → chunk-FMBD7UC4-CQR_-5z5.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-OYMX7WX6-4b-D8G11.js → chunk-OYMX7WX6-DQ0IiFt5.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-QZHKN3VN-C3zjki3z.js → chunk-QZHKN3VN-BPX4TBXp.js} +1 -1
- package/payload/frontend/dist/assets/{chunk-YZCP3GAM-Bi7S_JyD.js → chunk-YZCP3GAM-DqZhVlNy.js} +1 -1
- package/payload/frontend/dist/assets/classDiagram-6PBFFD2Q-TM6ckD19.js +1 -0
- package/payload/frontend/dist/assets/classDiagram-v2-HSJHXN6E-TM6ckD19.js +1 -0
- package/payload/frontend/dist/assets/clone-BoG338Z7.js +1 -0
- package/payload/frontend/dist/assets/{connection-DtjjR8IP.js → connection-ToakGqMm.js} +1 -1
- package/payload/frontend/dist/assets/{connections-BytUAh1Z.js → connections-DD38aD2_.js} +1 -1
- package/payload/frontend/dist/assets/{cose-bilkent-S5V4N54A-CDCFpAOm.js → cose-bilkent-S5V4N54A-Bi6kn4wb.js} +1 -1
- package/payload/frontend/dist/assets/{dagre-KV5264BT-DTQVpeTz.js → dagre-KV5264BT-D7PPmb_h.js} +1 -1
- package/payload/frontend/dist/assets/{desktop-BuftJPyE.js → desktop-D80mAqEi.js} +1 -1
- package/payload/frontend/dist/assets/{diagram-5BDNPKRD-ShI36c2G.js → diagram-5BDNPKRD-2Fg0LDFB.js} +1 -1
- package/payload/frontend/dist/assets/{diagram-G4DWMVQ6-BPxdrMgU.js → diagram-G4DWMVQ6-DDht1hGL.js} +1 -1
- package/payload/frontend/dist/assets/{diagram-MMDJMWI5-iwh0ZT7T.js → diagram-MMDJMWI5-_slCo5qd.js} +1 -1
- package/payload/frontend/dist/assets/{diagram-TYMM5635-CX2F4XD4.js → diagram-TYMM5635-BibhtXBj.js} +1 -1
- package/payload/frontend/dist/assets/{erDiagram-SMLLAGMA-DwXz5Tds.js → erDiagram-SMLLAGMA-Tb9JdHm7.js} +1 -1
- package/payload/frontend/dist/assets/{flowDiagram-DWJPFMVM-CVDi2XWl.js → flowDiagram-DWJPFMVM-DmV0VUHI.js} +1 -1
- package/payload/frontend/dist/assets/{ganttDiagram-T4ZO3ILL-DLuDUXuQ.js → ganttDiagram-T4ZO3ILL-boTSPZL8.js} +1 -1
- package/payload/frontend/dist/assets/{gitGraphDiagram-UUTBAWPF-DsqOAHKo.js → gitGraphDiagram-UUTBAWPF-3Akku_ak.js} +1 -1
- package/payload/frontend/dist/assets/{graph-6BysLM8d.js → graph-GAq0lcsb.js} +1 -1
- package/payload/frontend/dist/assets/{image-dI1rk_wX.js → image-PejzD76r.js} +1 -1
- package/payload/frontend/dist/assets/{index-CNnzZKYi.js → index-BBNE8InR.js} +5 -5
- package/payload/frontend/dist/assets/{infoDiagram-42DDH7IO-ByaP-F4m.js → infoDiagram-42DDH7IO-TrixGt-D.js} +1 -1
- package/payload/frontend/dist/assets/{ishikawaDiagram-UXIWVN3A-BbNJbxvT.js → ishikawaDiagram-UXIWVN3A-BYKU82ro.js} +1 -1
- package/payload/frontend/dist/assets/{journeyDiagram-VCZTEJTY-CrOVnF8b.js → journeyDiagram-VCZTEJTY-BL_50q1o.js} +1 -1
- package/payload/frontend/dist/assets/{kanban-definition-6JOO6SKY-B0uutGkA.js → kanban-definition-6JOO6SKY-Clxk3CDg.js} +1 -1
- package/payload/frontend/dist/assets/{layout-BNJKrH1C.js → layout-BbxLzgiJ.js} +1 -1
- package/payload/frontend/dist/assets/{linear-CzieEpVo.js → linear-DWemxXgm.js} +1 -1
- package/payload/frontend/dist/assets/{main-DPDWozNB.js → main-BHwOPARZ.js} +150 -150
- package/payload/frontend/dist/assets/{min-COzbZh0B.js → min-DIL93Hib.js} +1 -1
- package/payload/frontend/dist/assets/{mindmap-definition-QFDTVHPH-COtW2jp5.js → mindmap-definition-QFDTVHPH-DlfLczjR.js} +1 -1
- package/payload/frontend/dist/assets/{monitoring-VTNGzAyv.js → monitoring-B6pQ-P1J.js} +1 -1
- package/payload/frontend/dist/assets/{notifications-D-GW-TTF.js → notifications-B9lXATqv.js} +1 -1
- package/payload/frontend/dist/assets/{pieDiagram-DEJITSTG-EKQe1mDG.js → pieDiagram-DEJITSTG-BaU_H2x3.js} +1 -1
- package/payload/frontend/dist/assets/{quadrantDiagram-34T5L4WZ-UdkJN2GP.js → quadrantDiagram-34T5L4WZ-D3nVMaXv.js} +1 -1
- package/payload/frontend/dist/assets/{record-content-BMMqgX4o.js → record-content-Dn6GE_dv.js} +1 -1
- package/payload/frontend/dist/assets/{requirementDiagram-MS252O5E-DUp6aMLi.js → requirementDiagram-MS252O5E-C7J-xGnU.js} +1 -1
- package/payload/frontend/dist/assets/{sankeyDiagram-XADWPNL6-BEHbyQqG.js → sankeyDiagram-XADWPNL6-BAkualMS.js} +1 -1
- package/payload/frontend/dist/assets/{sequenceDiagram-FGHM5R23-DOidQGue.js → sequenceDiagram-FGHM5R23-BYWAdS9C.js} +1 -1
- package/payload/frontend/dist/assets/{stateDiagram-FHFEXIEX-D19ZNvzk.js → stateDiagram-FHFEXIEX-C3qD8m-7.js} +1 -1
- package/payload/frontend/dist/assets/stateDiagram-v2-QKLJ7IA2-C18IEkog.js +1 -0
- package/payload/frontend/dist/assets/{status-DgyGUiXv.js → status-MDvjSQ51.js} +1 -1
- package/payload/frontend/dist/assets/suiji-B6w3AzG7.js +1 -0
- package/payload/frontend/dist/assets/{svg-DaiBcNRS.js → svg-C0XZL3qU.js} +1 -1
- package/payload/frontend/dist/assets/{tabs-DPvaaQlw.js → tabs-Y-BEbPyW.js} +1 -1
- package/payload/frontend/dist/assets/{timeline-definition-GMOUNBTQ-DyZYnin1.js → timeline-definition-GMOUNBTQ-JER6Qyhn.js} +1 -1
- package/payload/frontend/dist/assets/{vennDiagram-DHZGUBPP-CvLT97Cb.js → vennDiagram-DHZGUBPP-kRp3Wh4r.js} +1 -1
- package/payload/frontend/dist/assets/{wardley-RL74JXVD-Bi_yW1_U.js → wardley-RL74JXVD-Dnh_rEyA.js} +1 -1
- package/payload/frontend/dist/assets/{wardleyDiagram-NUSXRM2D-Bg55_fJ7.js → wardleyDiagram-NUSXRM2D-DxiIy5IP.js} +1 -1
- package/payload/frontend/dist/assets/{xychartDiagram-5P7HB3ND-CgI-KDMY.js → xychartDiagram-5P7HB3ND-DcckHE39.js} +1 -1
- package/payload/frontend/dist/build-info.json +4 -4
- package/payload/frontend/dist/companion.html +1 -1
- package/payload/frontend/dist/index.html +2 -2
- package/payload/frontend/dist/assets/channel-CoPKff4t.js +0 -1
- package/payload/frontend/dist/assets/classDiagram-6PBFFD2Q-FUK_Ald7.js +0 -1
- package/payload/frontend/dist/assets/classDiagram-v2-HSJHXN6E-FUK_Ald7.js +0 -1
- package/payload/frontend/dist/assets/clone-ByE4QDPq.js +0 -1
- package/payload/frontend/dist/assets/stateDiagram-v2-QKLJ7IA2-BHG_Lyc2.js +0 -1
- package/payload/frontend/dist/assets/suiji-C9TumXnC.js +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "0.1.0",
|
|
3
|
-
"buildId": "
|
|
4
|
-
"sourceRevision": "
|
|
3
|
+
"buildId": "20261109T213633400Z-9301bc5f",
|
|
4
|
+
"sourceRevision": "9301bc5fbeb157ec84245bf38efb0073647b86fe",
|
|
5
5
|
"sourceDirty": false,
|
|
6
|
-
"builtAt": "2026-11-
|
|
7
|
-
"contentSha256": "
|
|
6
|
+
"builtAt": "2026-11-09T21:36:33.400Z",
|
|
7
|
+
"contentSha256": "9206f699f02fa2889905044732d8ef8f84de3fe27d4d46d168895cb13b43d93d"
|
|
8
8
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* runweave:build-info */var __RUNWEAVE_BUILD_INFO__={"version":"0.1.0","buildId":"
|
|
1
|
+
/* runweave:build-info */var __RUNWEAVE_BUILD_INFO__={"version":"0.1.0","buildId":"20261109T213633400Z-9301bc5f","sourceRevision":"9301bc5fbeb157ec84245bf38efb0073647b86fe","sourceDirty":false,"builtAt":"2026-11-09T21:36:33.400Z","contentSha256":"9206f699f02fa2889905044732d8ef8f84de3fe27d4d46d168895cb13b43d93d"};
|
|
2
2
|
const __IMPORT_META_URL__ = require('url').pathToFileURL(__filename).href;
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -32074,7 +32074,7 @@ var require_websocket = __commonJS({
|
|
|
32074
32074
|
var http4 = require("http");
|
|
32075
32075
|
var net8 = require("net");
|
|
32076
32076
|
var tls2 = require("tls");
|
|
32077
|
-
var { randomBytes: randomBytes8, createHash:
|
|
32077
|
+
var { randomBytes: randomBytes8, createHash: createHash49 } = require("crypto");
|
|
32078
32078
|
var { Duplex, Readable: Readable2 } = require("stream");
|
|
32079
32079
|
var { URL: URL2 } = require("url");
|
|
32080
32080
|
var PerMessageDeflate = require_permessage_deflate();
|
|
@@ -32734,7 +32734,7 @@ var require_websocket = __commonJS({
|
|
|
32734
32734
|
abortHandshake(websocket, socket, "Invalid Upgrade header");
|
|
32735
32735
|
return;
|
|
32736
32736
|
}
|
|
32737
|
-
const digest7 =
|
|
32737
|
+
const digest7 = createHash49("sha1").update(key2 + GUID).digest("base64");
|
|
32738
32738
|
if (res.headers["sec-websocket-accept"] !== digest7) {
|
|
32739
32739
|
abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
|
|
32740
32740
|
return;
|
|
@@ -33101,7 +33101,7 @@ var require_websocket_server = __commonJS({
|
|
|
33101
33101
|
var EventEmitter = require("events");
|
|
33102
33102
|
var http4 = require("http");
|
|
33103
33103
|
var { Duplex } = require("stream");
|
|
33104
|
-
var { createHash:
|
|
33104
|
+
var { createHash: createHash49 } = require("crypto");
|
|
33105
33105
|
var extension = require_extension();
|
|
33106
33106
|
var PerMessageDeflate = require_permessage_deflate();
|
|
33107
33107
|
var subprotocol = require_subprotocol();
|
|
@@ -33402,7 +33402,7 @@ var require_websocket_server = __commonJS({
|
|
|
33402
33402
|
);
|
|
33403
33403
|
}
|
|
33404
33404
|
if (this._state > RUNNING) return abortHandshake(socket, 503);
|
|
33405
|
-
const digest7 =
|
|
33405
|
+
const digest7 = createHash49("sha1").update(key2 + GUID).digest("base64");
|
|
33406
33406
|
const headers = [
|
|
33407
33407
|
"HTTP/1.1 101 Switching Protocols",
|
|
33408
33408
|
"Upgrade: websocket",
|
|
@@ -112336,6 +112336,9 @@ function isRemoteBrowserProfileState(value) {
|
|
|
112336
112336
|
|
|
112337
112337
|
// backend/src/remote/browser-bindings.ts
|
|
112338
112338
|
var import_node_crypto55 = require("node:crypto");
|
|
112339
|
+
function matchesOwner(owner, binding) {
|
|
112340
|
+
return owner.desktopId === binding.desktopId && owner.hostId === binding.hostId && (owner.ownerKeyHash ? owner.ownerKeyHash === binding.ownerKeyHash : owner.ownerSessionId === binding.ownerSessionId);
|
|
112341
|
+
}
|
|
112339
112342
|
var RemoteBrowserError = class extends Error {
|
|
112340
112343
|
constructor(code, status, message2) {
|
|
112341
112344
|
super(message2);
|
|
@@ -112348,10 +112351,10 @@ var DesktopBrowserBindings = class {
|
|
|
112348
112351
|
this.sessions = sessions;
|
|
112349
112352
|
}
|
|
112350
112353
|
bindings = /* @__PURE__ */ new Map();
|
|
112351
|
-
|
|
112354
|
+
pendingSelection = Promise.resolve();
|
|
112352
112355
|
capabilities = /* @__PURE__ */ new Map();
|
|
112353
112356
|
async bind(ownerSessionId, input2) {
|
|
112354
|
-
if (!input2 || input2.protocolVersion !== 2 || !/^[a-zA-Z0-9_-]{1,128}$/.test(input2.desktopId) || !/^[a-zA-Z0-9_-]{1,128}$/.test(input2.hostId) || !Number.isInteger(input2.generation) || input2.generation < 1 || !Number.isInteger(input2.reversePort) || input2.reversePort < 1 || input2.reversePort > 65535 || !/^[0-9a-f]{64}$/.test(input2.gatewayKey)) {
|
|
112357
|
+
if (!input2 || input2.protocolVersion !== 2 || !/^[a-zA-Z0-9_-]{1,128}$/.test(input2.desktopId) || !/^[a-zA-Z0-9_-]{1,128}$/.test(input2.hostId) || !Number.isInteger(input2.generation) || input2.generation < 1 || !Number.isInteger(input2.reversePort) || input2.reversePort < 1 || input2.reversePort > 65535 || !/^[0-9a-f]{64}$/.test(input2.gatewayKey) || input2.ownerKey !== void 0 && (typeof input2.ownerKey !== "string" || !/^[0-9a-f]{64}$/.test(input2.ownerKey))) {
|
|
112355
112358
|
throw new RemoteBrowserError(
|
|
112356
112359
|
"BROWSER_SCOPE_DENIED",
|
|
112357
112360
|
400,
|
|
@@ -112379,10 +112382,11 @@ var DesktopBrowserBindings = class {
|
|
|
112379
112382
|
"Desktop bridge identity does not match"
|
|
112380
112383
|
);
|
|
112381
112384
|
}
|
|
112385
|
+
const ownerKeyHash = input2.ownerKey ? (0, import_node_crypto55.createHash)("sha256").update(input2.ownerKey).digest("hex") : void 0;
|
|
112382
112386
|
let existingId;
|
|
112383
112387
|
for (const [id7, binding] of this.bindings) {
|
|
112384
|
-
if (binding.ownerSessionId === ownerSessionId && binding.desktopId === input2.desktopId && binding.hostId === input2.hostId) {
|
|
112385
|
-
if (binding.generation === input2.generation) existingId = id7;
|
|
112388
|
+
if ((binding.ownerSessionId === ownerSessionId || !!ownerKeyHash && binding.ownerKeyHash === ownerKeyHash) && binding.desktopId === input2.desktopId && binding.hostId === input2.hostId) {
|
|
112389
|
+
if (binding.ownerSessionId === ownerSessionId && binding.generation === input2.generation) existingId = id7;
|
|
112386
112390
|
this.bindings.delete(id7);
|
|
112387
112391
|
}
|
|
112388
112392
|
}
|
|
@@ -112390,6 +112394,7 @@ var DesktopBrowserBindings = class {
|
|
|
112390
112394
|
id: existingId ?? (0, import_node_crypto55.randomUUID)(),
|
|
112391
112395
|
protocolVersion: 2,
|
|
112392
112396
|
ownerSessionId,
|
|
112397
|
+
ownerKeyHash,
|
|
112393
112398
|
desktopId: input2.desktopId,
|
|
112394
112399
|
hostId: input2.hostId,
|
|
112395
112400
|
generation: input2.generation,
|
|
@@ -112429,7 +112434,16 @@ var DesktopBrowserBindings = class {
|
|
|
112429
112434
|
return this.liveBindings().filter((binding) => binding.ownerSessionId === ownerSessionId).map((binding) => this.publicBinding(binding));
|
|
112430
112435
|
}
|
|
112431
112436
|
select(ownerSessionId, terminalSessionId, bindingId) {
|
|
112432
|
-
|
|
112437
|
+
const operation = this.pendingSelection.then(
|
|
112438
|
+
() => this.selectBinding(ownerSessionId, terminalSessionId, bindingId)
|
|
112439
|
+
);
|
|
112440
|
+
this.pendingSelection = operation.catch(() => {
|
|
112441
|
+
});
|
|
112442
|
+
return operation;
|
|
112443
|
+
}
|
|
112444
|
+
async selectBinding(ownerSessionId, terminalSessionId, bindingId) {
|
|
112445
|
+
const session = this.sessions.getSession(terminalSessionId);
|
|
112446
|
+
if (!session)
|
|
112433
112447
|
throw new RemoteBrowserError(
|
|
112434
112448
|
"BROWSER_SCOPE_DENIED",
|
|
112435
112449
|
404,
|
|
@@ -112444,9 +112458,11 @@ var DesktopBrowserBindings = class {
|
|
|
112444
112458
|
403,
|
|
112445
112459
|
"Desktop binding is not owned by this session"
|
|
112446
112460
|
);
|
|
112447
|
-
const previous =
|
|
112448
|
-
if (previous && (previous
|
|
112449
|
-
|
|
112461
|
+
const previous = session.browserBinding;
|
|
112462
|
+
if (previous && matchesOwner(previous, binding) && previous.ownerKeyHash === binding.ownerKeyHash)
|
|
112463
|
+
return;
|
|
112464
|
+
if (previous && !matchesOwner(previous, binding) && this.liveBindings().some(
|
|
112465
|
+
(candidate) => matchesOwner(previous, candidate)
|
|
112450
112466
|
)) {
|
|
112451
112467
|
throw new RemoteBrowserError(
|
|
112452
112468
|
"BROWSER_BINDING_CONFLICT",
|
|
@@ -112454,20 +112470,21 @@ var DesktopBrowserBindings = class {
|
|
|
112454
112470
|
"Terminal already belongs to another desktop"
|
|
112455
112471
|
);
|
|
112456
112472
|
}
|
|
112457
|
-
this.
|
|
112473
|
+
await this.sessions.updateSessionBrowserBinding(terminalSessionId, {
|
|
112458
112474
|
desktopId: binding.desktopId,
|
|
112459
112475
|
hostId: binding.hostId,
|
|
112460
|
-
ownerSessionId: binding.ownerSessionId
|
|
112476
|
+
ownerSessionId: binding.ownerSessionId,
|
|
112477
|
+
ownerKeyHash: binding.ownerKeyHash
|
|
112461
112478
|
});
|
|
112462
112479
|
}
|
|
112463
112480
|
selectedBinding(terminalSessionId) {
|
|
112464
112481
|
const candidates = this.liveBindings();
|
|
112465
|
-
const owner = this.
|
|
112482
|
+
const owner = this.sessions.getSession(terminalSessionId)?.browserBinding;
|
|
112466
112483
|
const selected = candidates.find(
|
|
112467
|
-
(binding) =>
|
|
112484
|
+
(binding) => !!owner && matchesOwner(owner, binding)
|
|
112468
112485
|
);
|
|
112469
112486
|
if (selected) return selected;
|
|
112470
|
-
if (
|
|
112487
|
+
if (owner)
|
|
112471
112488
|
throw new RemoteBrowserError(
|
|
112472
112489
|
"DESKTOP_UNAVAILABLE",
|
|
112473
112490
|
503,
|
|
@@ -112753,14 +112770,14 @@ function registerRemoteBrowserRoutes(app, auth, sessions, requireTunnelAuth, bro
|
|
|
112753
112770
|
}
|
|
112754
112771
|
res.json(bindings.list(owner));
|
|
112755
112772
|
});
|
|
112756
|
-
app.put("/api/terminal/session/:id/browser/binding", requireAuth, (req, res) => {
|
|
112773
|
+
app.put("/api/terminal/session/:id/browser/binding", requireAuth, async (req, res) => {
|
|
112757
112774
|
const owner = auth.verifyAccessToken(readBearerToken(req) ?? "")?.sessionId;
|
|
112758
112775
|
if (!owner || typeof req.body?.bindingId !== "string") {
|
|
112759
112776
|
res.sendStatus(400);
|
|
112760
112777
|
return;
|
|
112761
112778
|
}
|
|
112762
112779
|
try {
|
|
112763
|
-
bindings.select(owner, String(req.params.id), req.body.bindingId);
|
|
112780
|
+
await bindings.select(owner, String(req.params.id), req.body.bindingId);
|
|
112764
112781
|
res.sendStatus(204);
|
|
112765
112782
|
} catch (error2) {
|
|
112766
112783
|
sendError(res, error2);
|
|
@@ -126832,6 +126849,7 @@ function toPersistedProject(project) {
|
|
|
126832
126849
|
}
|
|
126833
126850
|
function buildSessionRecord(persisted) {
|
|
126834
126851
|
return {
|
|
126852
|
+
browserBinding: persisted.browserBinding,
|
|
126835
126853
|
source: persisted.source,
|
|
126836
126854
|
id: persisted.id,
|
|
126837
126855
|
projectId: persisted.projectId,
|
|
@@ -126895,6 +126913,7 @@ function createRuntimeRecord(record3, options) {
|
|
|
126895
126913
|
}
|
|
126896
126914
|
function toPersistedSession(session) {
|
|
126897
126915
|
return {
|
|
126916
|
+
browserBinding: session.browserBinding,
|
|
126898
126917
|
source: session.source,
|
|
126899
126918
|
id: session.id,
|
|
126900
126919
|
projectId: session.projectId,
|
|
@@ -128612,6 +128631,13 @@ var TerminalManagerPanelOperations = class extends TerminalManagerSessionRuntime
|
|
|
128612
128631
|
// backend/src/terminal/manager/manager.ts
|
|
128613
128632
|
var TerminalSessionManager = class extends TerminalManagerPanelOperations {
|
|
128614
128633
|
pendingSessionMove = Promise.resolve();
|
|
128634
|
+
async updateSessionBrowserBinding(terminalSessionId, owner) {
|
|
128635
|
+
const session = this.sessions.get(terminalSessionId);
|
|
128636
|
+
if (!session) throw new Error("Terminal session not found");
|
|
128637
|
+
const browserBinding = structuredClone(owner);
|
|
128638
|
+
await this.sessionStore.updateSessionBrowserBinding(terminalSessionId, browserBinding);
|
|
128639
|
+
session.browserBinding = browserBinding;
|
|
128640
|
+
}
|
|
128615
128641
|
moveSession(terminalSessionId, projectId) {
|
|
128616
128642
|
const operation = this.pendingSessionMove.then(async () => {
|
|
128617
128643
|
const session = this.sessions.get(terminalSessionId);
|
|
@@ -130083,6 +130109,7 @@ var import_node_path116 = __toESM(require("node:path"), 1);
|
|
|
130083
130109
|
var import_node_path115 = __toESM(require("node:path"), 1);
|
|
130084
130110
|
function toMetadataRecord(session) {
|
|
130085
130111
|
return {
|
|
130112
|
+
browserBinding: session.browserBinding,
|
|
130086
130113
|
ptyHost: session.ptyHost,
|
|
130087
130114
|
source: session.source,
|
|
130088
130115
|
feishuNotificationState: session.feishuNotificationState,
|
|
@@ -130667,6 +130694,17 @@ var LowDbPanelStore = class extends LowDbScrollbackStore {
|
|
|
130667
130694
|
|
|
130668
130695
|
// backend/src/terminal/store/lowdb-store.ts
|
|
130669
130696
|
var LowDbTerminalSessionStore = class extends LowDbPanelStore {
|
|
130697
|
+
async updateSessionBrowserBinding(terminalSessionId, owner) {
|
|
130698
|
+
const browserBinding = structuredClone(owner);
|
|
130699
|
+
await this.enqueueWrite(async () => {
|
|
130700
|
+
const database = this.getDatabase();
|
|
130701
|
+
if (!database.data.sessions.some((session) => session.id === terminalSessionId))
|
|
130702
|
+
throw new Error("Terminal session not found");
|
|
130703
|
+
const sessions = database.data.sessions.map((session) => session.id === terminalSessionId ? { ...session, browserBinding } : session);
|
|
130704
|
+
await database.adapter.write({ ...database.data, sessions });
|
|
130705
|
+
database.data.sessions = sessions;
|
|
130706
|
+
});
|
|
130707
|
+
}
|
|
130670
130708
|
async moveSession(terminalSessionId, projectId, orderedIds) {
|
|
130671
130709
|
await this.enqueueWrite(async () => {
|
|
130672
130710
|
const database = this.getDatabase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aY as L,bm as ln,aI as A,aW as P,aH as W,bn as gn,bo as dn,bp as hn,bq as z,br as pn,bs as An,bt as m,aZ as N,b2 as U,b5 as T,bu as _n,b0 as on,bv as wn,bw as On,aJ as V,bx as vn,by as R}from"./index-
|
|
1
|
+
import{aY as L,bm as ln,aI as A,aW as P,aH as W,bn as gn,bo as dn,bp as hn,bq as z,br as pn,bs as An,bt as m,aZ as N,b2 as U,b5 as T,bu as _n,b0 as on,bv as wn,bw as On,aJ as V,bx as vn,by as R}from"./index-BBNE8InR.js";var Pn="[object Symbol]";function x(n){return typeof n=="symbol"||L(n)&&ln(n)==Pn}function bn(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 bn(n,k)+"";if(x(n))return H?H.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(){}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 In(n,r,e){for(var i=e-1,f=n.length;++i<f;)if(n[i]===r)return i;return-1}function Rn(n,r,e){return r===r?In(n,r,e):cn(n,Tn,e)}function Sn(n,r){var e=n==null?0:n.length;return!!e&&Rn(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,Dn=/\\(\\)?/g,Fn=$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(Dn,"$1"):i||e)}),r});function Gn(n){return n==null?"":k(n)}function j(n,r){return A(n)?n:$(n,r)?[n]:Fn(Gn(n))}function I(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[I(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 Yn="__lodash_hash_undefined__";function Jn(n){return this.__data__.set(n,Yn),this}function Xn(n){return this.__data__.has(n)}function b(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new pn;++r<e;)this.add(n[r])}b.prototype.add=b.prototype.push=Jn;b.prototype.has=Xn;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 b: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]",Y=P?P.prototype:void 0,S=Y?Y.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 G=s?i(v,O,d,r,n,t):i(O,v,d,n,r,t);if(!(G===void 0?O===v||f(O,v,e,i,t):G)){_=!1;break}w||(w=d=="constructor")}if(_&&!w){var y=n.constructor,E=r.constructor;y!=E&&"constructor"in n&&"constructor"in r&&!(typeof y=="function"&&y instanceof y&&typeof E=="function"&&E instanceof E)&&(_=!1)}return t.delete(n),t.delete(r),_}var or=1,J="[object Arguments]",X="[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?X:N(n),h=u?X:N(r);a=a==J?c:a,h=h==J?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 D(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,D,f)}var vr=1,Pr=2;function br(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?D(h,a,vr|Pr,i,g):l))return!1}}return!0}function sn(n){return n===n&&!on(n)}function yr(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=yr(n);return r.length==1&&r[0][2]?un(r[0][0],r[0][1]):function(e){return e===n||br(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=I(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 Ir(n,r){return n!=null&&Tr(n,r,cr)}var Rr=1,Sr=2;function Lr(n,r){return $(n)&&sn(r)?un(I(n),r):function(e){var i=mn(e,n);return i===void 0&&i===r?Ir(e,n):D(r,i,Rr|Sr)}}function xr(n){return function(r){return r==null?void 0:r[n]}}function Mr(n){return function(r){return nn(r,n)}}function $r(n){return $(n)?xr(I(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 Dr(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 F=Dr(Cr);function Fr(n){return typeof n=="function"?n:V}function qr(n,r){var e=A(n)?En:F;return e(n,Fr(r))}function Gr(n,r){var e=[];return F(n,function(i,f,t){r(i,f,t)&&e.push(i)}),e}function Zr(n,r){var e=A(n)?en:Gr;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 Yr(n,r,e){var i=A(n)?Un:mr,f=arguments.length<3;return i(n,an(r),e,f,F)}var Nr=1/0,Ur=R&&1/C(new R([,-0]))[1]==Nr?function(n){return new R(n)}:yn,Br=200;function Jr(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 b}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{F as a,Kr as b,an as c,bn as d,rn as e,Zn as f,qn as g,En as h,x as i,Z as j,M as k,Jr as l,Zr as m,qr as n,cn as o,Fr as p,Cr as q,Yr as r,Bn as s,Tr as t,j as u,I as v,nn as w,Ir as x,Gn as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as t,r as i}from"./index-D9-cSGu-.js";import{d as r,e as c,C as u,f as d,h as p,M as m}from"./main-
|
|
1
|
+
import{j as t,r as i}from"./index-D9-cSGu-.js";import{d as r,e as c,C as u,f as d,h as p,M as m}from"./main-BHwOPARZ.js";import{S as l}from"./tabs-Y-BEbPyW.js";function g(){var a;const s=r(),e=d(s.connection,s.auth.token,s.auth.clearToken),{open:o,close:n}=e;return i.useEffect(()=>(o(),n),[o,n]),p(!1,e.busy&&((a=e.status)==null?void 0:a.state)==="pending_approval"||!!e.status&&["approved","issuing","issued"].includes(e.status.state)),t.jsx(m,{embedded:!0,controller:e,connectionName:e.connectionName})}function b(){const s=r(),e=new URLSearchParams(c().search).get("section")??"password";return t.jsxs(t.Fragment,{children:[t.jsx(l,{items:[["password","修改密码"],["mobile","连接手机"]],active:e}),e==="mobile"?s.connection?t.jsx(g,{}):t.jsx("p",{children:"请在桌面应用中选择电脑后连接手机。"}):t.jsx(u,{embedded:!0,apiBase:s.apiBase,token:s.auth.token,onAuthExpired:s.auth.clearToken})]})}export{b as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as t}from"./index-D9-cSGu-.js";import{d as a,i as n}from"./main-
|
|
1
|
+
import{j as t}from"./index-D9-cSGu-.js";import{d as a,i as n}from"./main-BHwOPARZ.js";function s(){const e=a();return t.jsx(n,{embedded:!0,apiBase:e.apiBase,token:e.auth.token,onAuthExpired:e.auth.clearToken})}export{s as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as s}from"./index-D9-cSGu-.js";import{z as j,u as o,S as b,g as f,B as m,A as N,a as v}from"./main-
|
|
1
|
+
import{j as s}from"./index-D9-cSGu-.js";import{z as j,u as o,S as b,g as f,B as m,A as N,a as v}from"./main-BHwOPARZ.js";function k(){const{theme:h,setTheme:p}=j(),n=o(e=>e.sidecarLayout),x=o(e=>e.sidecarLayoutError),t=b.filter(e=>{var a;return e.id!=="automation"||((a=window.electronAPI)==null?void 0:a.isElectron)}).map(e=>e.id),i=f(n,t),u=i,l=o.getState();return s.jsxs("div",{className:"space-y-4",children:[s.jsxs("section",{children:[s.jsx("h2",{className:"mb-2 font-medium",children:"主题"}),s.jsx("div",{className:"grid grid-cols-3 gap-2",children:[["light","浅色"],["dark","深色"],["system","跟随系统"]].map(([e,a])=>s.jsxs("button",{"aria-pressed":h===e,onClick:()=>p(e),className:`flex items-center gap-2 rounded-md border px-3 py-2 text-left ${h===e?"border-primary ring-1 ring-primary":""}`,children:[s.jsx("div",{className:`h-5 w-8 shrink-0 rounded border ${e==="light"?"bg-stone-100":e==="dark"?"bg-neutral-900":"bg-gradient-to-r from-stone-100 to-neutral-900"}`}),a]},e))})]}),s.jsxs("section",{children:[s.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[s.jsx("h2",{className:"font-medium",children:"右侧工具标签"}),s.jsx(m,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs",onClick:l.resetSidecarLayout,children:"恢复默认"})]}),s.jsx("div",{className:"divide-y rounded-md border",children:n.order.map(e=>{const a=b.find(d=>d.id===e),c=i.includes(e),r=i.indexOf(e),g=t.includes(e);return s.jsxs("div",{className:"flex items-center gap-2 px-3 py-1",children:[s.jsx("span",{className:"flex-1",children:a.label}),s.jsx(m,{size:"sm",variant:"ghost",className:"h-6 w-6 p-0","aria-label":`上移 ${a.label}`,disabled:!c||r<=0,onClick:()=>l.reorderSidecarTabs(t,r,r-1),children:s.jsx(N,{className:"size-4"})}),s.jsx(m,{size:"sm",variant:"ghost",className:"h-6 w-6 p-0","aria-label":`下移 ${a.label}`,disabled:!c||r===i.length-1,onClick:()=>l.reorderSidecarTabs(t,r,r+1),children:s.jsx(v,{className:"size-4"})}),s.jsx("input",{type:"checkbox","aria-label":`显示 ${a.label}`,checked:!n.hidden.includes(e),disabled:!g||c&&u.length<=1,onChange:d=>l.setSidecarTabVisible(e,d.target.checked,t)})]},e)})}),x&&s.jsx("p",{role:"alert",className:"mt-3 text-sm text-destructive",children:x})]})]})}export{k as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as ln,O as an,P as Z,Q as O,S as V,T as un,V as y,W as tn,X as z,Y as _,Z as rn,$ as o,a0 as on,a1 as sn,a2 as fn}from"./index-
|
|
1
|
+
import{N as ln,O as an,P as Z,Q as O,S as V,T as un,V as y,W as tn,X as z,Y as _,Z as rn,$ as o,a0 as on,a1 as sn,a2 as fn}from"./index-BBNE8InR.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,A,W,a){var E=D-l,i=S-h,n=W-v,d=a-A,u=d*E-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*E,h+u*i]}function J(l,h,D,S,v,A,W){var a=l-D,E=h-S,i=(W?A:-A)/z(a*a+E*E),n=i*E,d=-i*a,u=l+n,s=h+d,f=D+n,c=S+d,X=(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,I=(g<0?-1:1)*z(on(0,T*T*R-P*P)),N=(P*g-m*I)/R,Q=(-P*m-g*I)/R,w=(P*g+m*I)/R,p=(-P*m+g*I)/R,x=N-X,e=Q-t,r=w-X,Y=p-t;return x*x+e*e>r*r+Y*Y&&(N=w,Q=p),{cx:N,cy:Q,x01:-n,y01:-d,x11:N*(v/T-1),y11:Q*(v/T-1)}}function hn(){var l=cn,h=yn,D=V(0),S=null,v=gn,A=dn,W=mn,a=null,E=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,X=rn(c-f),t=c>f;if(a||(a=n=E()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(X>tn-y)a.moveTo(s*Z(f),s*O(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*Z(c),u*O(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=X,I=X,N=W.apply(this,arguments)/2,Q=N>y&&(S?+S.apply(this,arguments):z(u*u+s*s)),w=_(rn(s-u)/2,+D.apply(this,arguments)),p=w,x=w,e,r;if(Q>y){var Y=sn(Q/u*O(N)),B=sn(Q/s*O(N));(P-=Y*2)>y?(Y*=t?1:-1,R+=Y,T-=Y):(P=0,R=T=(f+c)/2),(I-=B*2)>y?(B*=t?1:-1,m+=B,g-=B):(I=0,m=g=(f+c)/2)}var $=s*Z(m),j=s*O(m),C=u*Z(T),F=u*O(T);if(w>y){var G=s*Z(g),H=s*O(g),K=u*Z(R),L=u*O(R),q;if(X<an)if(q=pn($,j,K,L,G,H,C,F)){var M=$-q[0],U=j-q[1],k=G-q[0],b=H-q[1],nn=1/O(fn((M*k+U*b)/(z(M*M+U*U)*z(k*k+b*b)))/2),en=z(q[0]*q[0]+q[1]*q[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}I>y?x>y?(e=J(K,L,$,j,s,x,t),r=J(G,H,C,F,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($,j),a.arc(0,0,s,m,g,!t)):a.moveTo($,j),!(u>y)||!(P>y)?a.lineTo(C,F):p>y?(e=J(C,F,G,H,u,-p,t),r=J($,j,K,L,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[Z(d)*n,O(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:V(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:V(+n),i):h},i.cornerRadius=function(n){return arguments.length?(D=typeof n=="function"?n:V(+n),i):D},i.padRadius=function(n){return arguments.length?(S=n==null?null:typeof n=="function"?n:V(+n),i):S},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:V(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:V(+n),i):A},i.padAngle=function(n){return arguments.length?(W=typeof n=="function"?n:V(+n),i):W},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|