@lemoncat7/dsh-ssh 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ARCHITECTURE.md +18 -3
- package/README.md +16 -3
- package/lib/api.d.ts +8 -0
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +218 -13
- package/lib/api.js.map +1 -1
- package/lib/client-api.d.ts +66 -0
- package/lib/client-api.d.ts.map +1 -1
- package/lib/client-api.js +14 -0
- package/lib/client-api.js.map +1 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +467 -97
- package/lib/client.js.map +4 -4
- package/lib/connector.js +2 -2
- package/lib/connector.js.map +1 -1
- package/lib/credentials.d.ts +9 -0
- package/lib/credentials.d.ts.map +1 -1
- package/lib/credentials.js +16 -0
- package/lib/credentials.js.map +1 -1
- package/lib/domain.d.ts +42 -1
- package/lib/domain.d.ts.map +1 -1
- package/lib/domain.js +32 -0
- package/lib/domain.js.map +1 -1
- package/lib/endpoint-session-manager.d.ts +16 -0
- package/lib/endpoint-session-manager.d.ts.map +1 -0
- package/lib/endpoint-session-manager.js +70 -0
- package/lib/endpoint-session-manager.js.map +1 -0
- package/lib/file-transfer-manager.d.ts +50 -0
- package/lib/file-transfer-manager.d.ts.map +1 -0
- package/lib/file-transfer-manager.js +257 -0
- package/lib/file-transfer-manager.js.map +1 -0
- package/lib/file-transfer-tools.d.ts +6 -0
- package/lib/file-transfer-tools.d.ts.map +1 -0
- package/lib/file-transfer-tools.js +143 -0
- package/lib/file-transfer-tools.js.map +1 -0
- package/lib/file-transfer-workspace.d.ts +10 -0
- package/lib/file-transfer-workspace.d.ts.map +1 -0
- package/lib/file-transfer-workspace.js +299 -0
- package/lib/file-transfer-workspace.js.map +1 -0
- package/lib/ftp-adapter.d.ts +18 -0
- package/lib/ftp-adapter.d.ts.map +1 -0
- package/lib/ftp-adapter.js +240 -0
- package/lib/ftp-adapter.js.map +1 -0
- package/lib/ftp-profile-editor.d.ts +9 -0
- package/lib/ftp-profile-editor.d.ts.map +1 -0
- package/lib/ftp-profile-editor.js +89 -0
- package/lib/ftp-profile-editor.js.map +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +17 -2
- package/lib/index.js.map +1 -1
- package/lib/network-dialer.d.ts +12 -0
- package/lib/network-dialer.d.ts.map +1 -0
- package/lib/network-dialer.js +27 -0
- package/lib/network-dialer.js.map +1 -0
- package/lib/proxy.d.ts +3 -3
- package/lib/proxy.d.ts.map +1 -1
- package/lib/proxy.js +11 -7
- package/lib/proxy.js.map +1 -1
- package/lib/remote-file-systems.d.ts +9 -0
- package/lib/remote-file-systems.d.ts.map +1 -0
- package/lib/remote-file-systems.js +23 -0
- package/lib/remote-file-systems.js.map +1 -0
- package/lib/remote-files.d.ts +51 -0
- package/lib/remote-files.d.ts.map +1 -0
- package/lib/remote-files.js +36 -0
- package/lib/remote-files.js.map +1 -0
- package/lib/remote-workspace-tree.d.ts.map +1 -1
- package/lib/remote-workspace-tree.js +5 -15
- package/lib/remote-workspace-tree.js.map +1 -1
- package/lib/session-access.d.ts +3 -0
- package/lib/session-access.d.ts.map +1 -1
- package/lib/session-access.js +4 -1
- package/lib/session-access.js.map +1 -1
- package/lib/sftp-adapter.d.ts +13 -0
- package/lib/sftp-adapter.d.ts.map +1 -0
- package/lib/sftp-adapter.js +28 -0
- package/lib/sftp-adapter.js.map +1 -0
- package/lib/sftp.d.ts +7 -0
- package/lib/sftp.d.ts.map +1 -1
- package/lib/sftp.js +215 -6
- package/lib/sftp.js.map +1 -1
- package/lib/store.d.ts +3 -1
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +51 -3
- package/lib/store.js.map +1 -1
- package/lib/tools.d.ts +3 -1
- package/lib/tools.d.ts.map +1 -1
- package/lib/tools.js +4 -1
- package/lib/tools.js.map +1 -1
- package/package.json +7 -2
package/lib/sftp.js
CHANGED
|
@@ -1,6 +1,170 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import { Transform } from 'node:stream';
|
|
3
3
|
import { pipeline } from 'node:stream/promises';
|
|
4
|
+
/** Opens one reusable SFTP channel. Browser panes and transfer jobs own its lifecycle. */
|
|
5
|
+
export async function openSftpFileSystemSession(connector, profileId, endpoint, signal) {
|
|
6
|
+
signal?.throwIfAborted();
|
|
7
|
+
const connection = await connector.connect(profileId, signal);
|
|
8
|
+
try {
|
|
9
|
+
const sftp = await openSftp(connection.client, signal);
|
|
10
|
+
const home = await realpath(sftp, '.');
|
|
11
|
+
return new ReusableSftpSession(endpoint, connection, sftp, home);
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
connection.close();
|
|
15
|
+
throw error;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
class ReusableSftpSession {
|
|
19
|
+
endpoint;
|
|
20
|
+
connection;
|
|
21
|
+
sftp;
|
|
22
|
+
home;
|
|
23
|
+
closed = false;
|
|
24
|
+
constructor(endpoint, connection, sftp, home) {
|
|
25
|
+
this.endpoint = endpoint;
|
|
26
|
+
this.connection = connection;
|
|
27
|
+
this.sftp = sftp;
|
|
28
|
+
this.home = home;
|
|
29
|
+
}
|
|
30
|
+
list(requestedPath, signal) {
|
|
31
|
+
return this.run(async () => {
|
|
32
|
+
const resolved = await realpath(this.sftp, expandHome(requestedPath.trim() || '~', this.home));
|
|
33
|
+
const entries = (await readdir(this.sftp, resolved))
|
|
34
|
+
.filter(entry => entry.filename !== '.' && entry.filename !== '..')
|
|
35
|
+
.map(entry => viewEntry(resolved, entry))
|
|
36
|
+
.sort((left, right) => {
|
|
37
|
+
if (left.kind === 'directory' && right.kind !== 'directory')
|
|
38
|
+
return -1;
|
|
39
|
+
if (left.kind !== 'directory' && right.kind === 'directory')
|
|
40
|
+
return 1;
|
|
41
|
+
return left.name.localeCompare(right.name, undefined, { numeric: true, sensitivity: 'base' });
|
|
42
|
+
});
|
|
43
|
+
return { path: resolved, parent: remoteParent(resolved), entries };
|
|
44
|
+
}, signal);
|
|
45
|
+
}
|
|
46
|
+
stat(requestedPath, signal) {
|
|
47
|
+
return this.run(async () => {
|
|
48
|
+
const resolved = await realpath(this.sftp, expandHome(requestedPath.trim() || '~', this.home));
|
|
49
|
+
const attributes = await stat(this.sftp, resolved);
|
|
50
|
+
const fileType = attributes.mode & 0o170000;
|
|
51
|
+
return {
|
|
52
|
+
name: remoteName(resolved), path: resolved,
|
|
53
|
+
kind: fileType === 0o040000 ? 'directory' : fileType === 0o100000 ? 'file' : fileType === 0o120000 ? 'symlink' : 'other',
|
|
54
|
+
size: attributes.size, modifiedAt: attributes.mtime * 1000,
|
|
55
|
+
};
|
|
56
|
+
}, signal);
|
|
57
|
+
}
|
|
58
|
+
download(requestedPath, destination, signal) {
|
|
59
|
+
return this.run(async () => {
|
|
60
|
+
const resolved = await realpath(this.sftp, expandHome(requestedPath, this.home));
|
|
61
|
+
await pipeline(createSftpReadStream(this.sftp, resolved), destination, { signal });
|
|
62
|
+
}, signal);
|
|
63
|
+
}
|
|
64
|
+
upload(requestedPath, source, overwrite, signal) {
|
|
65
|
+
return this.run(async () => {
|
|
66
|
+
const target = expandHome(requestedPath, this.home).replaceAll('\\', '/');
|
|
67
|
+
if (!overwrite && await sftpPathExists(this.sftp, target))
|
|
68
|
+
throw Object.assign(new Error('A file with this name already exists'), { status: 409 });
|
|
69
|
+
const output = this.sftp.createWriteStream(target, { flags: 'w', mode: 0o600 });
|
|
70
|
+
output.on('error', () => { });
|
|
71
|
+
await pipeline(source, output, { signal });
|
|
72
|
+
}, signal);
|
|
73
|
+
}
|
|
74
|
+
ensureDirectory(requestedPath, signal) {
|
|
75
|
+
return this.run(async () => {
|
|
76
|
+
const target = expandHome(requestedPath.trim() || '~', this.home).replaceAll('\\', '/');
|
|
77
|
+
const drive = /^([A-Za-z]:)\//.exec(target)?.[1];
|
|
78
|
+
const absolute = target.startsWith('/') || drive !== undefined;
|
|
79
|
+
const parts = target.split('/').filter(Boolean).slice(drive === undefined ? 0 : 1);
|
|
80
|
+
let current = drive === undefined ? absolute ? '/' : this.home : `${drive}/`;
|
|
81
|
+
for (const part of parts) {
|
|
82
|
+
current = remoteJoin(current, part);
|
|
83
|
+
if (!await sftpPathExists(this.sftp, current))
|
|
84
|
+
await mkdirSftp(this.sftp, current);
|
|
85
|
+
}
|
|
86
|
+
}, signal);
|
|
87
|
+
}
|
|
88
|
+
remove(requestedPath, recursive, signal) {
|
|
89
|
+
return this.run(async () => {
|
|
90
|
+
const target = expandHome(requestedPath.trim(), this.home).replaceAll('\\', '/');
|
|
91
|
+
await removeSftpEntry(this.sftp, target, recursive, signal, { entries: 0 });
|
|
92
|
+
}, signal);
|
|
93
|
+
}
|
|
94
|
+
close() {
|
|
95
|
+
if (this.closed)
|
|
96
|
+
return;
|
|
97
|
+
this.closed = true;
|
|
98
|
+
this.sftp.end();
|
|
99
|
+
this.connection.close();
|
|
100
|
+
}
|
|
101
|
+
async run(operation, signal) {
|
|
102
|
+
if (this.closed)
|
|
103
|
+
throw new Error('SFTP session is closed');
|
|
104
|
+
signal?.throwIfAborted();
|
|
105
|
+
const abort = () => this.close();
|
|
106
|
+
signal?.addEventListener('abort', abort, { once: true });
|
|
107
|
+
try {
|
|
108
|
+
return await operation();
|
|
109
|
+
}
|
|
110
|
+
finally {
|
|
111
|
+
signal?.removeEventListener('abort', abort);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
export async function statSftpPath(connector, profileId, requestedPath, signal) {
|
|
116
|
+
signal?.throwIfAborted();
|
|
117
|
+
const connection = await connector.connect(profileId, signal);
|
|
118
|
+
let sftp;
|
|
119
|
+
try {
|
|
120
|
+
sftp = await openSftp(connection.client, signal);
|
|
121
|
+
const home = await realpath(sftp, '.');
|
|
122
|
+
const resolved = await realpath(sftp, expandHome(requestedPath.trim() || '~', home));
|
|
123
|
+
const attributes = await stat(sftp, resolved);
|
|
124
|
+
const fileType = attributes.mode & 0o170000;
|
|
125
|
+
return {
|
|
126
|
+
name: remoteName(resolved), path: resolved,
|
|
127
|
+
kind: fileType === 0o040000 ? 'directory' : fileType === 0o100000 ? 'file' : fileType === 0o120000 ? 'symlink' : 'other',
|
|
128
|
+
size: attributes.size, modifiedAt: attributes.mtime * 1000,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
finally {
|
|
132
|
+
sftp?.end();
|
|
133
|
+
connection.close();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
export async function downloadSftpFile(connector, profileId, requestedPath, destination, signal) {
|
|
137
|
+
const handle = await openSftpFile(connector, profileId, requestedPath, signal);
|
|
138
|
+
try {
|
|
139
|
+
await pipeline(handle.stream, destination, { signal });
|
|
140
|
+
}
|
|
141
|
+
finally {
|
|
142
|
+
handle.close();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
export async function ensureSftpDirectory(connector, profileId, requestedPath, signal) {
|
|
146
|
+
signal?.throwIfAborted();
|
|
147
|
+
const connection = await connector.connect(profileId, signal);
|
|
148
|
+
let sftp;
|
|
149
|
+
try {
|
|
150
|
+
sftp = await openSftp(connection.client, signal);
|
|
151
|
+
const home = await realpath(sftp, '.');
|
|
152
|
+
const target = expandHome(requestedPath.trim() || '~', home).replaceAll('\\', '/');
|
|
153
|
+
const absolute = target.startsWith('/');
|
|
154
|
+
const parts = target.split('/').filter(Boolean);
|
|
155
|
+
let current = absolute ? '/' : home;
|
|
156
|
+
for (const part of parts) {
|
|
157
|
+
current = remoteJoin(current, part);
|
|
158
|
+
if (!await sftpPathExists(sftp, current))
|
|
159
|
+
await mkdirSftp(sftp, current);
|
|
160
|
+
}
|
|
161
|
+
return realpath(sftp, current);
|
|
162
|
+
}
|
|
163
|
+
finally {
|
|
164
|
+
sftp?.end();
|
|
165
|
+
connection.close();
|
|
166
|
+
}
|
|
167
|
+
}
|
|
4
168
|
export async function listSftpDirectory(connector, profileId, requestedPath, signal) {
|
|
5
169
|
signal?.throwIfAborted();
|
|
6
170
|
const connection = await connector.connect(profileId, signal);
|
|
@@ -103,7 +267,8 @@ export async function readSftpFilePreview(connector, profileId, requestedPath, m
|
|
|
103
267
|
}
|
|
104
268
|
}
|
|
105
269
|
export async function uploadSftpFile(connector, profileId, requestedDirectory, filename, input, options) {
|
|
106
|
-
|
|
270
|
+
options.signal?.throwIfAborted();
|
|
271
|
+
const connection = await connector.connect(profileId, options.signal);
|
|
107
272
|
let sftp;
|
|
108
273
|
try {
|
|
109
274
|
sftp = await openSftp(connection.client);
|
|
@@ -124,7 +289,7 @@ export async function uploadSftpFile(connector, profileId, requestedDirectory, f
|
|
|
124
289
|
});
|
|
125
290
|
const output = sftp.createWriteStream(target, { flags: 'w', mode: 0o600 });
|
|
126
291
|
output.on('error', () => { });
|
|
127
|
-
await pipeline(input, limiter, output);
|
|
292
|
+
await pipeline(input, limiter, output, { signal: options.signal });
|
|
128
293
|
return { path: target, name: filename, size };
|
|
129
294
|
}
|
|
130
295
|
finally {
|
|
@@ -132,6 +297,29 @@ export async function uploadSftpFile(connector, profileId, requestedDirectory, f
|
|
|
132
297
|
connection.close();
|
|
133
298
|
}
|
|
134
299
|
}
|
|
300
|
+
function mkdirSftp(sftp, value) {
|
|
301
|
+
return new Promise((resolve, reject) => sftp.mkdir(value, { mode: 0o755 }, error => error ? reject(error) : resolve()));
|
|
302
|
+
}
|
|
303
|
+
async function removeSftpEntry(sftp, value, recursive, signal, counter, depth = 0) {
|
|
304
|
+
signal?.throwIfAborted();
|
|
305
|
+
counter.entries += 1;
|
|
306
|
+
if (depth > 64 || counter.entries > 20_000)
|
|
307
|
+
throw Object.assign(new Error('directory deletion exceeds the safety limit'), { status: 413 });
|
|
308
|
+
const attributes = await lstat(sftp, value);
|
|
309
|
+
if ((attributes.mode & 0o170000) !== 0o040000) {
|
|
310
|
+
await unlinkSftp(sftp, value);
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
if (!recursive)
|
|
314
|
+
throw Object.assign(new Error('remote path is a directory'), { status: 409 });
|
|
315
|
+
const entries = await readdir(sftp, value);
|
|
316
|
+
for (const entry of entries) {
|
|
317
|
+
if (entry.filename === '.' || entry.filename === '..')
|
|
318
|
+
continue;
|
|
319
|
+
await removeSftpEntry(sftp, remoteJoin(value, entry.filename), true, signal, counter, depth + 1);
|
|
320
|
+
}
|
|
321
|
+
await rmdirSftp(sftp, value);
|
|
322
|
+
}
|
|
135
323
|
function openSftp(client, signal) {
|
|
136
324
|
return new Promise((resolve, reject) => {
|
|
137
325
|
const abort = () => reject(signal?.reason instanceof Error ? signal.reason : new Error('SFTP request was aborted'));
|
|
@@ -147,7 +335,7 @@ function openSftp(client, signal) {
|
|
|
147
335
|
}
|
|
148
336
|
function realpath(sftp, value) {
|
|
149
337
|
return new Promise((resolve, reject) => {
|
|
150
|
-
sftp.realpath(value, (error, resolved) => error ? reject(error) : resolve(resolved));
|
|
338
|
+
sftp.realpath(value, (error, resolved) => error ? reject(normalizeSftpPathError(error, value)) : resolve(resolved));
|
|
151
339
|
});
|
|
152
340
|
}
|
|
153
341
|
function readdir(sftp, value) {
|
|
@@ -157,21 +345,42 @@ function readdir(sftp, value) {
|
|
|
157
345
|
}
|
|
158
346
|
function stat(sftp, value) {
|
|
159
347
|
return new Promise((resolve, reject) => {
|
|
160
|
-
sftp.stat(value, (error, attributes) => error ? reject(error) : resolve(attributes));
|
|
348
|
+
sftp.stat(value, (error, attributes) => error ? reject(normalizeSftpPathError(error, value)) : resolve(attributes));
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
function lstat(sftp, value) {
|
|
352
|
+
return new Promise((resolve, reject) => {
|
|
353
|
+
sftp.lstat(value, (error, attributes) => error ? reject(normalizeSftpPathError(error, value)) : resolve(attributes));
|
|
161
354
|
});
|
|
162
355
|
}
|
|
356
|
+
function unlinkSftp(sftp, value) {
|
|
357
|
+
return new Promise((resolve, reject) => sftp.unlink(value, error => error ? reject(normalizeSftpPathError(error, value)) : resolve()));
|
|
358
|
+
}
|
|
359
|
+
function rmdirSftp(sftp, value) {
|
|
360
|
+
return new Promise((resolve, reject) => sftp.rmdir(value, error => error ? reject(normalizeSftpPathError(error, value)) : resolve()));
|
|
361
|
+
}
|
|
163
362
|
async function sftpPathExists(sftp, value) {
|
|
164
363
|
try {
|
|
165
364
|
await stat(sftp, value);
|
|
166
365
|
return true;
|
|
167
366
|
}
|
|
168
367
|
catch (error) {
|
|
169
|
-
|
|
170
|
-
if (code === 2 || code === 'ENOENT')
|
|
368
|
+
if (isSftpPathMissing(error))
|
|
171
369
|
return false;
|
|
172
370
|
throw error;
|
|
173
371
|
}
|
|
174
372
|
}
|
|
373
|
+
function normalizeSftpPathError(error, value) {
|
|
374
|
+
if (!isSftpPathMissing(error))
|
|
375
|
+
return error;
|
|
376
|
+
return Object.assign(new Error(`remote path ${value} was not found`, { cause: error }), { status: 404, code: 'ENOENT' });
|
|
377
|
+
}
|
|
378
|
+
function isSftpPathMissing(error) {
|
|
379
|
+
if (typeof error !== 'object' || error === null)
|
|
380
|
+
return false;
|
|
381
|
+
const value = error;
|
|
382
|
+
return value.status === 404 || value.code === 2 || value.code === '2' || value.code === 'ENOENT';
|
|
383
|
+
}
|
|
175
384
|
function createSftpReadStream(sftp, value) {
|
|
176
385
|
const stream = sftp.createReadStream(value);
|
|
177
386
|
// ssh2 can emit a second transport error after an iterator or pipeline has already completed.
|
package/lib/sftp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sftp.js","sourceRoot":"","sources":["../src/sftp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sftp.js","sourceRoot":"","sources":["../src/sftp.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAgC,MAAM,aAAa,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AA2C/C,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,SAAuB,EACvB,SAAiB,EACjB,QAA4B,EAC5B,MAAoB;IAEpB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC7D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACtD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACtC,OAAO,IAAI,mBAAmB,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAClE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,KAAK,EAAE,CAAA;QAClB,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,mBAAmB;IAIZ;IACQ;IACA;IACA;IANX,MAAM,GAAG,KAAK,CAAA;IAEtB,YACW,QAA4B,EACpB,UAAgC,EAChC,IAAiB,EACjB,IAAY;QAHpB,aAAQ,GAAR,QAAQ,CAAoB;QACpB,eAAU,GAAV,UAAU,CAAsB;QAChC,SAAI,GAAJ,IAAI,CAAa;QACjB,SAAI,GAAJ,IAAI,CAAQ;IAC5B,CAAC;IAEJ,IAAI,CAAC,aAAqB,EAAE,MAAoB;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACzB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YAC9F,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;iBACjD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC;iBAClE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;iBACxC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACpB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;oBAAE,OAAO,CAAC,CAAC,CAAA;gBACtE,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;oBAAE,OAAO,CAAC,CAAA;gBACrE,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;YAC/F,CAAC,CAAC,CAAA;YACJ,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;QACpE,CAAC,EAAE,MAAM,CAAC,CAAA;IACZ,CAAC;IAED,IAAI,CAAC,aAAqB,EAAE,MAAoB;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACzB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YAC9F,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAA;YAC3C,OAAO;gBACL,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ;gBAC1C,IAAI,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;gBACxH,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,GAAG,IAAI;aAC3D,CAAA;QACH,CAAC,EAAE,MAAM,CAAC,CAAA;IACZ,CAAC;IAED,QAAQ,CAAC,aAAqB,EAAE,WAAqB,EAAE,MAAoB;QACzE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACzB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YAChF,MAAM,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QACpF,CAAC,EAAE,MAAM,CAAC,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,aAAqB,EAAE,MAAgB,EAAE,SAAkB,EAAE,MAAoB;QACtF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACzB,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YACzE,IAAI,CAAC,SAAS,IAAI,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;gBAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAClJ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;YAC/E,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAC5B,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QAC5C,CAAC,EAAE,MAAM,CAAC,CAAA;IACZ,CAAC;IAED,eAAe,CAAC,aAAqB,EAAE,MAAoB;QACzD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACzB,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YACvF,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,SAAS,CAAA;YAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAClF,IAAI,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAA;YAC5E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;gBACnC,IAAI,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;oBAAE,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YACpF,CAAC;QACH,CAAC,EAAE,MAAM,CAAC,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,aAAqB,EAAE,SAAkB,EAAE,MAAoB;QACpE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACzB,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YAChF,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;QAC7E,CAAC,EAAE,MAAM,CAAC,CAAA;IACZ,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,OAAM;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;QACf,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;IACzB,CAAC;IAEO,KAAK,CAAC,GAAG,CAAI,SAA2B,EAAE,MAAoB;QACpE,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC1D,MAAM,EAAE,cAAc,EAAE,CAAA;QACxB,MAAM,KAAK,GAAG,GAAS,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;QACtC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACxD,IAAI,CAAC;YAAC,OAAO,MAAM,SAAS,EAAE,CAAA;QAAC,CAAC;gBACxB,CAAC;YAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAAC,CAAC;IACzD,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAAuB,EACvB,SAAiB,EACjB,aAAqB,EACrB,MAAoB;IAEpB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC7D,IAAI,IAA6B,CAAA;IACjC,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACtC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;QACpF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC7C,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAA;QAC3C,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ;YAC1C,IAAI,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;YACxH,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,GAAG,IAAI;SAC3D,CAAA;IACH,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,GAAG,EAAE,CAAA;QACX,UAAU,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,SAAuB,EACvB,SAAiB,EACjB,aAAqB,EACrB,WAA2C,EAC3C,MAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;IAC9E,IAAI,CAAC;QAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAAC,CAAC;YACtD,CAAC;QAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IAAC,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAuB,EACvB,SAAiB,EACjB,aAAqB,EACrB,MAAoB;IAEpB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC7D,IAAI,IAA6B,CAAA;IACjC,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACtC,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAClF,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC/C,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACnC,IAAI,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC;gBAAE,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC1E,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAChC,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,GAAG,EAAE,CAAA;QACX,UAAU,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAuB,EACvB,SAAiB,EACjB,aAAqB,EACrB,MAAoB;IAEpB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC7D,IAAI,IAA6B,CAAA;IACjC,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACtC,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,CAAC,CAAA;QAC5D,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC7C,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aAC5C,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC;aAClE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;aACxC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACpB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;gBAAE,OAAO,CAAC,CAAC,CAAA;YACtE,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;gBAAE,OAAO,CAAC,CAAA;YACrE,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;QAC/F,CAAC,CAAC,CAAA;QACJ,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpE,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,GAAG,EAAE,CAAA;QACX,UAAU,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAAuB,EACvB,SAAiB,EACjB,aAAqB,EACrB,MAAoB;IAEpB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC7D,IAAI,IAA6B,CAAA;IACjC,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACpD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAC7G,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACnD,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,MAAM,KAAK,GAAG,GAAS,EAAE;YACvB,IAAI,MAAM;gBAAE,OAAM;YAClB,MAAM,GAAG,IAAI,CAAA;YACb,MAAM,CAAC,OAAO,EAAE,CAAA;YAChB,IAAI,EAAE,GAAG,EAAE,CAAA;YACX,UAAU,CAAC,KAAK,EAAE,CAAA;QACpB,CAAC,CAAA;QACD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACxB,IAAI,MAAM;gBAAE,OAAM;YAClB,MAAM,GAAG,IAAI,CAAA;YACb,IAAI,EAAE,GAAG,EAAE,CAAA;YACX,UAAU,CAAC,KAAK,EAAE,CAAA;QACpB,CAAC,CAAC,CAAA;QACF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;IAClG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,EAAE,GAAG,EAAE,CAAA;QACX,UAAU,CAAC,KAAK,EAAE,CAAA;QAClB,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAuB,EACvB,SAAiB,EACjB,aAAqB,EACrB,YAAY,GAAG,SAAS,EACxB,MAAoB;IAEpB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC7D,IAAI,IAA6B,CAAA;IACjC,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACpD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAC7G,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;QACtC,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;QAClC,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QAClG,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,IAAI,CAAA;QAEhC,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACnD,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACjE,MAAM,SAAS,GAAG,YAAY,GAAG,KAAK,CAAA;YACtC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,IAAI,CAAC;gBAAC,MAAK;YAAC,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;YACzC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;YAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,IAAI,KAAK,IAAI,YAAY,IAAI,UAAU,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC;gBAAC,SAAS,GAAG,IAAI,CAAC;gBAAC,MAAK;YAAC,CAAC;QAC/G,CAAC;QACD,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAA;IAC7E,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,GAAG,EAAE,CAAA;QACX,UAAU,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAuB,EACvB,SAAiB,EACjB,kBAA0B,EAC1B,QAAgB,EAChB,KAAe,EACf,OAAuE;IAEvE,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA;IAChC,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IACrE,IAAI,IAA6B,CAAA;IACjC,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACxC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACtC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;QAC1F,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAC9C,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;YAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAErJ,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC;YAC5B,SAAS,CAAC,KAAa,EAAE,SAAS,EAAE,QAAQ;gBAC1C,IAAI,IAAI,KAAK,CAAC,MAAM,CAAA;gBACpB,IAAI,IAAI,GAAG,OAAO,CAAC,QAAQ;oBAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;;oBAC5I,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAC5B,CAAC;SACF,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1E,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC5B,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QAClE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;IAC/C,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,GAAG,EAAE,CAAA;QACX,UAAU,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAiB,EAAE,KAAa;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;AACzH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAiB,EAAE,KAAa,EAAE,SAAkB,EAAE,MAA+B,EAAE,OAA4B,EAAE,KAAK,GAAG,CAAC;IAC3J,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,OAAO,CAAC,OAAO,IAAI,CAAC,CAAA;IACpB,IAAI,KAAK,GAAG,EAAE,IAAI,OAAO,CAAC,OAAO,GAAG,MAAM;QAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,6CAA6C,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAC1I,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;QAAC,MAAM,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAC,OAAM;IAAC,CAAC;IACxF,IAAI,CAAC,SAAS;QAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7F,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,QAAQ,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI;YAAE,SAAQ;QAC/D,MAAM,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;IAClG,CAAC;IACD,MAAM,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,SAAS,QAAQ,CAAC,MAA6B,EAAE,MAAoB;IACnE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,GAAS,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAA;QACzH,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACxD,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC7B,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAC3C,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,CAAC,CAAA;;gBACnB,OAAO,CAAC,OAAO,CAAC,CAAA;QACvB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAiB,EAAE,KAAa;IAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;IACrH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,IAAiB,EAAE,KAAa;IAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IACnF,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,IAAiB,EAAE,KAAa;IAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;IACrH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,IAAiB,EAAE,KAAa;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;IACtH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAiB,EAAE,KAAa;IAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;AACxI,CAAC;AAED,SAAS,SAAS,CAAC,IAAiB,EAAE,KAAa;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;AACvI,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAiB,EAAE,KAAa;IAC5D,IAAI,CAAC;QAAC,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAC,OAAO,IAAI,CAAA;IAAC,CAAC;IAC5C,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,iBAAiB,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QAC1C,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc,EAAE,KAAa;IAC3D,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,KAAK,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;AAC1H,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAC7D,MAAM,KAAK,GAAG,KAA6C,CAAA;IAC3D,OAAO,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAA;AAClG,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAiB,EAAE,KAAa;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAC3C,8FAA8F;IAC9F,+FAA+F;IAC/F,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC5B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,IAAY;IAC7C,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,IAAI,CAAA;IAC9B,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9F,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,SAAS,CAAC,SAAiB,EAAE,KAAgB;IACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAA;IAC5C,MAAM,IAAI,GAAG,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW;QAC9C,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM;YAC9B,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS;gBACjC,CAAC,CAAC,OAAO,CAAA;IACf,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,QAAQ;QACpB,IAAI,EAAE,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;QAC3C,IAAI;QACJ,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;QACtB,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI;KACrC,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB,EAAE,IAAY;IACjD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;AACrF,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAA;IACzE,IAAI,UAAU,KAAK,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAA;IACrE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7C,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,GAAG,MAAM,GAAG,CAAA;IACnD,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;AAC9C,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;AACzD,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAA;AACvF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,QAAQ,KAAK,kBAAkB,IAAI,QAAQ,KAAK,iBAAiB,IAAI,QAAQ,KAAK,wBAAwB;QAAE,OAAO,MAAM,CAAA;IAC7J,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAA;IACjD,IAAI,QAAQ,KAAK,iBAAiB;QAAE,OAAO,KAAK,CAAA;IAChD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;IAC5C,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,YAAY,CAAA;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;IACzD,OAAO;QACL,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,2BAA2B;QAC3H,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW;QAC/H,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,EAAE,wBAAwB,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,iBAAiB;QACnL,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,oBAAoB;QACjJ,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY;QACzJ,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY;QACxF,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY;QAC5J,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB;KAC1I,CAAC,SAAS,CAAC,IAAI,0BAA0B,CAAA;AAC5C,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU;IACxF,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS;IAClF,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ;CACrF,CAAC,CAAA"}
|
package/lib/store.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CredentialEntry, ForwardRule, ProxyEntry, RemoteProject, SessionInjection, SshProfile, SshSettings, SshState } from './domain.js';
|
|
1
|
+
import type { CredentialEntry, ForwardRule, FtpProfile, ProxyEntry, RemoteProject, SessionInjection, SshProfile, SshSettings, SshState } from './domain.js';
|
|
2
2
|
export declare class SshStore {
|
|
3
3
|
private readonly path;
|
|
4
4
|
private state;
|
|
@@ -8,6 +8,8 @@ export declare class SshStore {
|
|
|
8
8
|
snapshot(): SshState;
|
|
9
9
|
profiles(): SshProfile[];
|
|
10
10
|
profile(id: string): SshProfile | undefined;
|
|
11
|
+
ftpProfiles(): FtpProfile[];
|
|
12
|
+
ftpProfile(id: string): FtpProfile | undefined;
|
|
11
13
|
remoteProjects(profileId?: string): RemoteProject[];
|
|
12
14
|
remoteProject(id: string): RemoteProject | undefined;
|
|
13
15
|
credentialEntries(): CredentialEntry[];
|
package/lib/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3J,qBAAa,QAAQ;IAIC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHzC,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,KAAK,CAAsC;IAEnD,OAAO;WAIM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAczE,QAAQ,IAAI,QAAQ;IACpB,QAAQ,IAAI,UAAU,EAAE;IACxB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAC3C,WAAW,IAAI,UAAU,EAAE;IAC3B,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAC9C,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE;IACnD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IACpD,iBAAiB,IAAI,eAAe,EAAE;IACtC,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IACxD,YAAY,IAAI,UAAU,EAAE;IAC5B,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAC9C,QAAQ,IAAI,WAAW,EAAE;IACzB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAC5C,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAC1D,QAAQ,IAAI,WAAW;IAEvB,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;YAa/C,OAAO;CAwBtB"}
|
package/lib/store.js
CHANGED
|
@@ -11,7 +11,7 @@ export class SshStore {
|
|
|
11
11
|
}
|
|
12
12
|
static async open(path, defaults) {
|
|
13
13
|
await mkdir(dirname(path), { recursive: true });
|
|
14
|
-
let initial = { schemaVersion:
|
|
14
|
+
let initial = { schemaVersion: 5, profiles: [], ftpProfiles: [], remoteProjects: [], credentialEntries: [], proxyEntries: [], forwardRules: [], injections: [], settings: defaults };
|
|
15
15
|
try {
|
|
16
16
|
const parsed = JSON.parse(await readFile(path, 'utf8'));
|
|
17
17
|
initial = parseState(parsed, defaults);
|
|
@@ -28,6 +28,8 @@ export class SshStore {
|
|
|
28
28
|
snapshot() { return structuredClone(this.state); }
|
|
29
29
|
profiles() { return structuredClone(this.state.profiles); }
|
|
30
30
|
profile(id) { return structuredClone(this.state.profiles.find(profile => profile.id === id)); }
|
|
31
|
+
ftpProfiles() { return structuredClone(this.state.ftpProfiles); }
|
|
32
|
+
ftpProfile(id) { return structuredClone(this.state.ftpProfiles.find(profile => profile.id === id)); }
|
|
31
33
|
remoteProjects(profileId) { return structuredClone(profileId === undefined ? this.state.remoteProjects : this.state.remoteProjects.filter(project => project.profileId === profileId)); }
|
|
32
34
|
remoteProject(id) { return structuredClone(this.state.remoteProjects.find(project => project.id === id)); }
|
|
33
35
|
credentialEntries() { return structuredClone(this.state.credentialEntries); }
|
|
@@ -88,17 +90,21 @@ function parseState(value, defaults) {
|
|
|
88
90
|
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
89
91
|
throw new Error('dsh-ssh state must be an object');
|
|
90
92
|
const state = value;
|
|
91
|
-
if (state.schemaVersion !== 1 && state.schemaVersion !== 2 && state.schemaVersion !== 3 && state.schemaVersion !== 4)
|
|
93
|
+
if (state.schemaVersion !== 1 && state.schemaVersion !== 2 && state.schemaVersion !== 3 && state.schemaVersion !== 4 && state.schemaVersion !== 5)
|
|
92
94
|
throw new Error(`unsupported dsh-ssh state version ${String(state.schemaVersion)}`);
|
|
93
95
|
return {
|
|
94
|
-
schemaVersion:
|
|
96
|
+
schemaVersion: 5,
|
|
95
97
|
profiles: Array.isArray(state.profiles) ? state.profiles.map(normalizeStoredProfile) : [],
|
|
98
|
+
ftpProfiles: Array.isArray(state.ftpProfiles) ? state.ftpProfiles.filter(isStoredFtpProfile) : [],
|
|
96
99
|
remoteProjects: Array.isArray(state.remoteProjects) ? state.remoteProjects.filter(isStoredRemoteProject) : [],
|
|
97
100
|
credentialEntries: Array.isArray(state.credentialEntries) ? state.credentialEntries : [],
|
|
98
101
|
proxyEntries: Array.isArray(state.proxyEntries) ? state.proxyEntries : [],
|
|
99
102
|
forwardRules: Array.isArray(state.forwardRules) ? state.forwardRules : [],
|
|
100
103
|
injections: Array.isArray(state.injections) ? state.injections.map(injection => ({
|
|
101
104
|
...injection,
|
|
105
|
+
fileEndpointIds: normalizeFileEndpointIds(injection),
|
|
106
|
+
filePermission: normalizeFilePermission(injection),
|
|
107
|
+
requireFileApproval: normalizeRequireFileApproval(injection),
|
|
102
108
|
workingDirectories: normalizeWorkingDirectories(injection),
|
|
103
109
|
workingProjectIds: normalizeWorkingProjectIds(injection),
|
|
104
110
|
})) : [],
|
|
@@ -107,10 +113,13 @@ function parseState(value, defaults) {
|
|
|
107
113
|
}
|
|
108
114
|
function validateReferences(state) {
|
|
109
115
|
const ids = new Set(state.profiles.map(profile => profile.id));
|
|
116
|
+
const ftpIds = new Set(state.ftpProfiles.map(profile => profile.id));
|
|
110
117
|
const credentialIds = new Set(state.credentialEntries.map(entry => entry.id));
|
|
111
118
|
const proxyIds = new Set(state.proxyEntries.map(entry => entry.id));
|
|
112
119
|
if (ids.size !== state.profiles.length)
|
|
113
120
|
throw new Error('duplicate SSH profile id');
|
|
121
|
+
if (ftpIds.size !== state.ftpProfiles.length)
|
|
122
|
+
throw new Error('duplicate FTP profile id');
|
|
114
123
|
if (credentialIds.size !== state.credentialEntries.length)
|
|
115
124
|
throw new Error('duplicate SSH credential entry id');
|
|
116
125
|
if (proxyIds.size !== state.proxyEntries.length)
|
|
@@ -124,6 +133,15 @@ function validateReferences(state) {
|
|
|
124
133
|
throw Object.assign(new Error('jump proxy chain must reference unique existing profiles other than itself'), { status: 400 });
|
|
125
134
|
}
|
|
126
135
|
}
|
|
136
|
+
for (const profile of state.ftpProfiles) {
|
|
137
|
+
if (profile.credentialId !== undefined) {
|
|
138
|
+
const credential = state.credentialEntries.find(entry => entry.id === profile.credentialId);
|
|
139
|
+
if (credential === undefined || credential.authType !== 'password')
|
|
140
|
+
throw Object.assign(new Error('FTP profile requires an existing password credential entry'), { status: 400 });
|
|
141
|
+
}
|
|
142
|
+
if (profile.proxy.type === 'saved' && !proxyIds.has(profile.proxy.proxyId))
|
|
143
|
+
throw Object.assign(new Error('FTP profile references a missing proxy entry'), { status: 400 });
|
|
144
|
+
}
|
|
127
145
|
for (const rule of state.forwardRules)
|
|
128
146
|
if (!ids.has(rule.profileId))
|
|
129
147
|
throw new Error(`forward rule references missing profile ${rule.profileId}`);
|
|
@@ -141,8 +159,24 @@ function validateReferences(state) {
|
|
|
141
159
|
const project = projects.get(projectId);
|
|
142
160
|
return injection.profileIds.includes(profileId) && project?.profileId === profileId;
|
|
143
161
|
}));
|
|
162
|
+
injection.fileEndpointIds = [...new Set((injection.fileEndpointIds ?? []).filter(endpointId => {
|
|
163
|
+
const [kind, id] = endpointId.split(':', 2);
|
|
164
|
+
return kind === 'sftp' ? ids.has(id ?? '') : kind === 'ftp' && ftpIds.has(id ?? '');
|
|
165
|
+
}))];
|
|
144
166
|
}
|
|
145
167
|
}
|
|
168
|
+
function isStoredFtpProfile(value) {
|
|
169
|
+
if (typeof value !== 'object' || value === null)
|
|
170
|
+
return false;
|
|
171
|
+
const profile = value;
|
|
172
|
+
const proxy = profile.proxy;
|
|
173
|
+
return typeof profile.id === 'string' && typeof profile.name === 'string' &&
|
|
174
|
+
(profile.protocol === 'ftp' || profile.protocol === 'ftps-explicit' || profile.protocol === 'ftps-implicit') &&
|
|
175
|
+
typeof profile.host === 'string' && Number.isInteger(profile.port) && profile.port >= 1 && profile.port <= 65_535 && typeof profile.username === 'string' &&
|
|
176
|
+
typeof profile.initialPath === 'string' && Number.isInteger(profile.connectTimeoutMs) && profile.connectTimeoutMs >= 1000 && profile.connectTimeoutMs <= 120_000 &&
|
|
177
|
+
typeof profile.createdAt === 'number' && typeof profile.updatedAt === 'number' &&
|
|
178
|
+
typeof proxy === 'object' && proxy !== null && (proxy.type === 'none' || proxy.type === 'saved' && typeof proxy.proxyId === 'string');
|
|
179
|
+
}
|
|
146
180
|
function isStoredRemoteProject(value) {
|
|
147
181
|
if (typeof value !== 'object' || value === null)
|
|
148
182
|
return false;
|
|
@@ -180,6 +214,20 @@ function normalizeWorkingProjectIds(injection) {
|
|
|
180
214
|
return profileId.length > 0 && profileId.length <= 100 && typeof projectId === 'string' && projectId.length > 0 && projectId.length <= 100;
|
|
181
215
|
}));
|
|
182
216
|
}
|
|
217
|
+
function normalizeFileEndpointIds(injection) {
|
|
218
|
+
if (typeof injection !== 'object' || injection === null)
|
|
219
|
+
return [];
|
|
220
|
+
const value = injection.fileEndpointIds;
|
|
221
|
+
if (!Array.isArray(value))
|
|
222
|
+
return [];
|
|
223
|
+
return [...new Set(value.filter((id) => typeof id === 'string' && /^(?:sftp|ftp):[^:\s]{1,100}$/.test(id)))];
|
|
224
|
+
}
|
|
225
|
+
function normalizeFilePermission(injection) {
|
|
226
|
+
return typeof injection === 'object' && injection !== null && injection.filePermission === 'transfer' ? 'transfer' : 'browse';
|
|
227
|
+
}
|
|
228
|
+
function normalizeRequireFileApproval(injection) {
|
|
229
|
+
return !(typeof injection === 'object' && injection !== null && injection.requireFileApproval === false);
|
|
230
|
+
}
|
|
183
231
|
async function fileExists(path) {
|
|
184
232
|
try {
|
|
185
233
|
await readFile(path);
|
package/lib/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,MAAM,OAAO,QAAQ;IAIkB;IAH7B,KAAK,CAAU;IACf,KAAK,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAA;IAEnD,YAAqC,IAAY,EAAE,OAAiB;QAA/B,SAAI,GAAJ,IAAI,CAAQ;QAC/C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAA;IACtB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,QAAqB;QACnD,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/C,IAAI,OAAO,GAAa,EAAE,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;QAC9L,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY,CAAA;YAClE,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,KAAK,CAAA;QACrE,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACzC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;YAAE,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC3D,OAAO,KAAK,CAAA;IACd,CAAC;IAED,QAAQ,KAAe,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;IAC3D,QAAQ,KAAmB,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC;IACxE,OAAO,CAAC,EAAU,IAA4B,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC;IAC9H,WAAW,KAAmB,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA,CAAC,CAAC;IAC9E,UAAU,CAAC,EAAU,IAA4B,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC;IACpI,cAAc,CAAC,SAAkB,IAAqB,OAAO,eAAe,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAA,CAAC,CAAC;IAClN,aAAa,CAAC,EAAU,IAA+B,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC;IAC7I,iBAAiB,KAAwB,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA,CAAC,CAAC;IAC/F,eAAe,CAAC,EAAU,IAAiC,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC;IAChJ,YAAY,KAAmB,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA,CAAC,CAAC;IAChF,UAAU,CAAC,EAAU,IAA4B,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC;IACjI,QAAQ,KAAoB,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA,CAAC,CAAC;IAC7E,OAAO,CAAC,EAAU,IAA6B,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC;IAC7H,SAAS,CAAC,SAAiB,IAAkC,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAA,CAAC,CAAC;IACvJ,QAAQ,KAAkB,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC;IAEvE,MAAM,CAAC,OAAkC;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAC3C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACzC,OAAO,CAAC,KAAK,CAAC,CAAA;YACd,kBAAkB,CAAC,KAAK,CAAC,CAAA;YACzB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAClB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACxB,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACtC,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,KAAe;QACnC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAA;QACrF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;QAChD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACrE,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QACrB,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QACtB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;gBAAE,MAAM,KAAK,CAAA;YAC7C,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;YACpC,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACtD,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;YAClD,IAAI,CAAC;gBAAC,MAAM,eAAe,CAAC,IAAI,EAAE,CAAA;YAAC,CAAC;oBAAS,CAAC;gBAAC,MAAM,eAAe,CAAC,KAAK,EAAE,CAAA;YAAC,CAAC;QAChF,CAAC;IACH,CAAC;CACF;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,QAAqB;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IAC3H,MAAM,KAAK,GAAG,KAA+E,CAAA;IAC7F,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;IACtO,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE;QACzF,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE;QACjG,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,EAAE;QAC7G,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;QACxF,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;QACzE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;QACzE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC/E,GAAG,SAAS;YACZ,eAAe,EAAE,wBAAwB,CAAC,SAAS,CAAC;YACpD,cAAc,EAAE,uBAAuB,CAAC,SAAS,CAAC;YAClD,mBAAmB,EAAE,4BAA4B,CAAC,SAAS,CAAC;YAC5D,kBAAkB,EAAE,2BAA2B,CAAC,SAAS,CAAC;YAC1D,iBAAiB,EAAE,0BAA0B,CAAC,SAAS,CAAC;SACzD,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QACR,QAAQ,EAAE,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ;KACxH,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAe;IACzC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;IACpE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IACnE,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IACnF,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IACzF,IAAI,aAAa,CAAC,IAAI,KAAK,KAAK,CAAC,iBAAiB,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IAC/G,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,YAAY,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IAChG,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;YAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mDAAmD,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACxL,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8CAA8C,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC3K,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACrO,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4EAA4E,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC/H,CAAC;IACH,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;YAC3F,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,KAAK,UAAU;gBAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4DAA4D,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACnL,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8CAA8C,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7K,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,YAAY;QAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;IACjJ,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACpF,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC,cAAc,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IACnG,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,cAAc;QAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IAC9J,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACzC,SAAS,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACnF,SAAS,CAAC,kBAAkB,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACjK,SAAS,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE;YACnI,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACvC,OAAO,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS,CAAA;QACrF,CAAC,CAAC,CAAC,CAAA;QACH,SAAS,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;gBAC5F,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;gBAC3C,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YACrF,CAAC,CAAC,CAAC,CAAC,CAAA;IACN,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAC7D,MAAM,OAAO,GAAG,KAA4B,CAAA;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAC3B,OAAO,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;QACvE,CAAC,OAAO,CAAC,QAAQ,KAAK,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,eAAe,IAAI,OAAO,CAAC,QAAQ,KAAK,eAAe,CAAC;QAC5G,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAK,IAAI,CAAC,IAAI,OAAO,CAAC,IAAK,IAAI,MAAM,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC3J,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,gBAAiB,IAAI,IAAI,IAAI,OAAO,CAAC,gBAAiB,IAAI,OAAO;QAClK,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ;QAC9E,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAA;AACzI,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAC7D,MAAM,OAAO,GAAG,KAA+B,CAAA;IAC/C,OAAO,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAA;AAC1O,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAmB;IACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAA4E,CAAA;IAClG,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,OAAO,CAAA;IACzC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;QAChD,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACxF,CAAC,CAAC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9F,OAAO,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAA;AACtF,CAAC;AAED,SAAS,2BAA2B,CAAC,SAAkB;IACrD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,EAAE,CAAA;IAClE,MAAM,KAAK,GAAI,SAA8C,CAAC,kBAAkB,CAAA;IAChF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAClF,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE;QAC1F,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;QAC9B,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3J,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AACxD,CAAC;AAED,SAAS,0BAA0B,CAAC,SAAkB;IACpD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,EAAE,CAAA;IAClE,MAAM,KAAK,GAAI,SAA6C,CAAC,iBAAiB,CAAA;IAC9E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAClF,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE;QAC1F,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,KAAK,CAAA;QACpC,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,GAAG,CAAA;IAC5I,CAAC,CAAC,CAAC,CAAA;AACL,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAkB;IAClD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,EAAE,CAAA;IAClE,MAAM,KAAK,GAAI,SAA2C,CAAC,eAAe,CAAA;IAC1E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACpC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,8BAA8B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5H,CAAC;AAED,SAAS,uBAAuB,CAAC,SAAkB;IACjD,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,IAAK,SAA0C,CAAC,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAA;AACjK,CAAC;AAED,SAAS,4BAA4B,CAAC,SAAkB;IACtD,OAAO,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,IAAK,SAA+C,CAAC,mBAAmB,KAAK,KAAK,CAAC,CAAA;AACjJ,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,CAAC;QAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QAAC,OAAO,IAAI,CAAA;IAAC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAAC,MAAM,KAAK,CAAA;IAAC,CAAC;AAC/I,CAAC"}
|
package/lib/tools.d.ts
CHANGED
|
@@ -3,5 +3,7 @@ import { ForwardManager } from './forwards.js';
|
|
|
3
3
|
import { SshConnector } from './connector.js';
|
|
4
4
|
import { SshStore } from './store.js';
|
|
5
5
|
import { AiTerminalManager } from './terminal.js';
|
|
6
|
-
|
|
6
|
+
import { RemoteFileSystems } from './remote-file-systems.js';
|
|
7
|
+
import { FileTransferManager } from './file-transfer-manager.js';
|
|
8
|
+
export declare function registerSshTools(ctx: Context, store: SshStore, connector: SshConnector, forwards: ForwardManager, terminals: AiTerminalManager, files?: RemoteFileSystems, transfers?: FileTransferManager): () => void;
|
|
7
9
|
//# sourceMappingURL=tools.d.ts.map
|
package/lib/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAUhE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAE,mBAAmB,GAAG,MAAM,IAAI,CAgCvN"}
|
package/lib/tools.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { executeSshCommand } from './exec.js';
|
|
2
2
|
import { sessionDirectory, setSessionDirectory } from './directory.js';
|
|
3
|
+
import { registerFileTransferTools } from './file-transfer-tools.js';
|
|
3
4
|
const textOutput = {
|
|
4
5
|
schema: { type: 'string' },
|
|
5
6
|
render: (_args, value) => [{ type: 'text', text: String(value) }],
|
|
6
7
|
};
|
|
7
8
|
const APPROVAL_TOOLS = new Set(['ssh_exec', 'ssh_terminal_open', 'ssh_terminal_send', 'ssh_terminal_signal', 'ssh_forward_start', 'ssh_forward_stop']);
|
|
8
9
|
const TERMINAL_ONLY_TOOLS = new Set(['ssh_terminal_open', 'ssh_terminal_send', 'ssh_terminal_read', 'ssh_terminal_signal', 'ssh_terminal_close']);
|
|
9
|
-
export function registerSshTools(ctx, store, connector, forwards, terminals) {
|
|
10
|
+
export function registerSshTools(ctx, store, connector, forwards, terminals, files, transfers) {
|
|
10
11
|
const tools = [
|
|
11
12
|
listTool(store),
|
|
12
13
|
cwdTool(store, connector),
|
|
@@ -33,7 +34,9 @@ export function registerSshTools(ctx, store, connector, forwards, terminals) {
|
|
|
33
34
|
return { kind: 'ask', reason: `SSH access to an injected remote host was requested by ${exec.name}.` };
|
|
34
35
|
});
|
|
35
36
|
const disposeVisibility = installModeToolVisibility(ctx, store);
|
|
37
|
+
const disposeFileTools = files === undefined || transfers === undefined ? () => { } : registerFileTransferTools(ctx, store, files, transfers);
|
|
36
38
|
return () => {
|
|
39
|
+
disposeFileTools();
|
|
37
40
|
disposeVisibility();
|
|
38
41
|
disposeApproval();
|
|
39
42
|
for (const dispose of disposers.reverse())
|