@theia/remote 1.64.0-next.35 → 1.64.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/lib/electron-browser/remote-ssh-contribution.d.ts +2 -0
- package/lib/electron-browser/remote-ssh-contribution.d.ts.map +1 -1
- package/lib/electron-browser/remote-ssh-contribution.js +18 -3
- package/lib/electron-browser/remote-ssh-contribution.js.map +1 -1
- package/lib/electron-common/remote-ssh-connection-provider.d.ts +1 -3
- package/lib/electron-common/remote-ssh-connection-provider.d.ts.map +1 -1
- package/lib/electron-node/ssh/remote-ssh-connection-provider.d.ts +2 -2
- package/lib/electron-node/ssh/remote-ssh-connection-provider.d.ts.map +1 -1
- package/lib/electron-node/ssh/remote-ssh-connection-provider.js +17 -18
- package/lib/electron-node/ssh/remote-ssh-connection-provider.js.map +1 -1
- package/package.json +7 -6
- package/src/electron-browser/remote-ssh-contribution.ts +19 -4
- package/src/electron-common/remote-ssh-connection-provider.ts +1 -3
- package/src/electron-node/ssh/remote-ssh-connection-provider.ts +16 -20
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Command, MessageService, QuickInputService } from '@theia/core';
|
|
2
|
+
import { VariableResolverService } from '@theia/variable-resolver/lib/browser';
|
|
2
3
|
import { RemoteSSHConnectionProvider } from '../electron-common/remote-ssh-connection-provider';
|
|
3
4
|
import { AbstractRemoteRegistryContribution, RemoteRegistry } from './remote-registry-contribution';
|
|
4
5
|
import { RemotePreferences } from './remote-preferences';
|
|
@@ -12,6 +13,7 @@ export declare class RemoteSSHContribution extends AbstractRemoteRegistryContrib
|
|
|
12
13
|
protected readonly sshConnectionProvider: RemoteSSHConnectionProvider;
|
|
13
14
|
protected readonly messageService: MessageService;
|
|
14
15
|
protected readonly remotePreferences: RemotePreferences;
|
|
16
|
+
protected readonly variableResolver: VariableResolverService;
|
|
15
17
|
registerRemoteCommands(registry: RemoteRegistry): void;
|
|
16
18
|
getConfigFilePath(): Promise<string | undefined>;
|
|
17
19
|
connectToConfigHost(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-ssh-contribution.d.ts","sourceRoot":"","sources":["../../src/electron-browser/remote-ssh-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAO,iBAAiB,EAAkB,MAAM,aAAa,CAAC;AAE9F,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,kCAAkC,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,yBAAiB,iBAAiB,CAAC;IACxB,MAAM,OAAO,EAAE,OAIQ,CAAC;IACxB,MAAM,sBAAsB,EAAE,OAIP,CAAC;IACxB,MAAM,qCAAqC,EAAE,OAIV,CAAC;CAC9C;AAED,qBACa,qBAAsB,SAAQ,kCAAkC;IAGzE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;IAGtE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"remote-ssh-contribution.d.ts","sourceRoot":"","sources":["../../src/electron-browser/remote-ssh-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAO,iBAAiB,EAAkB,MAAM,aAAa,CAAC;AAE9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,kCAAkC,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,yBAAiB,iBAAiB,CAAC;IACxB,MAAM,OAAO,EAAE,OAIQ,CAAC;IACxB,MAAM,sBAAsB,EAAE,OAIP,CAAC;IACxB,MAAM,qCAAqC,EAAE,OAIV,CAAC;CAC9C;AAED,qBACa,qBAAsB,SAAQ,kCAAkC;IAGzE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;IAGtE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;IAE7D,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAYhD,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAKhD,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuDpC,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C1C,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAQpE"}
|
|
@@ -19,6 +19,7 @@ exports.RemoteSSHContribution = exports.RemoteSSHCommands = void 0;
|
|
|
19
19
|
const tslib_1 = require("tslib");
|
|
20
20
|
const core_1 = require("@theia/core");
|
|
21
21
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
|
+
const browser_1 = require("@theia/variable-resolver/lib/browser");
|
|
22
23
|
const remote_ssh_connection_provider_1 = require("../electron-common/remote-ssh-connection-provider");
|
|
23
24
|
const remote_registry_contribution_1 = require("./remote-registry-contribution");
|
|
24
25
|
const remote_preferences_1 = require("./remote-preferences");
|
|
@@ -54,12 +55,18 @@ let RemoteSSHContribution = class RemoteSSHContribution extends remote_registry_
|
|
|
54
55
|
});
|
|
55
56
|
}
|
|
56
57
|
async getConfigFilePath() {
|
|
57
|
-
|
|
58
|
+
const preference = this.remotePreferences['remote.ssh.configFile'];
|
|
59
|
+
return this.variableResolver.resolve(preference);
|
|
58
60
|
}
|
|
59
61
|
async connectToConfigHost() {
|
|
60
62
|
var _a, _b;
|
|
61
63
|
const quickPicks = [];
|
|
62
|
-
const
|
|
64
|
+
const filePath = await this.getConfigFilePath();
|
|
65
|
+
if (!filePath) {
|
|
66
|
+
this.messageService.error(core_1.nls.localize('theia/remote/sshNoConfigPath', 'No SSH config path found.'));
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const sshConfig = await this.sshConnectionProvider.getSSHConfig(filePath);
|
|
63
70
|
const wildcardCheck = /[\?\*\%]/;
|
|
64
71
|
for (const record of sshConfig) {
|
|
65
72
|
// check if its a section and if it has a single value
|
|
@@ -78,10 +85,14 @@ let RemoteSSHContribution = class RemoteSSHContribution extends remote_registry_
|
|
|
78
85
|
});
|
|
79
86
|
}
|
|
80
87
|
}
|
|
88
|
+
if (quickPicks.length === 0) {
|
|
89
|
+
this.messageService.info(core_1.nls.localize('theia/remote/noConfigHosts', 'No SSH hosts found in the config file: ' + filePath));
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
81
92
|
const selection = await ((_a = this.quickInputService) === null || _a === void 0 ? void 0 : _a.showQuickPick(quickPicks, {
|
|
82
93
|
placeholder: core_1.nls.localizeByDefault('Select an option to open a Remote Window')
|
|
83
94
|
}));
|
|
84
|
-
if (selection
|
|
95
|
+
if (selection === null || selection === void 0 ? void 0 : selection.id) {
|
|
85
96
|
try {
|
|
86
97
|
let [user, host] = selection.id.split('@', 2);
|
|
87
98
|
host = selection.label;
|
|
@@ -162,6 +173,10 @@ tslib_1.__decorate([
|
|
|
162
173
|
(0, inversify_1.inject)(remote_preferences_1.RemotePreferences),
|
|
163
174
|
tslib_1.__metadata("design:type", Object)
|
|
164
175
|
], RemoteSSHContribution.prototype, "remotePreferences", void 0);
|
|
176
|
+
tslib_1.__decorate([
|
|
177
|
+
(0, inversify_1.inject)(browser_1.VariableResolverService),
|
|
178
|
+
tslib_1.__metadata("design:type", browser_1.VariableResolverService)
|
|
179
|
+
], RemoteSSHContribution.prototype, "variableResolver", void 0);
|
|
165
180
|
exports.RemoteSSHContribution = RemoteSSHContribution = tslib_1.__decorate([
|
|
166
181
|
(0, inversify_1.injectable)()
|
|
167
182
|
], RemoteSSHContribution);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-ssh-contribution.js","sourceRoot":"","sources":["../../src/electron-browser/remote-ssh-contribution.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,sCAA8F;AAC9F,4DAAkE;AAClE,sGAAgG;AAChG,iFAAoG;AACpG,6DAAyD;AACzD,2CAAkD;AAElD,IAAiB,iBAAiB,CAgBjC;AAhBD,WAAiB,iBAAiB;IACjB,yBAAO,GAAY,cAAO,CAAC,kBAAkB,CAAC;QACvD,EAAE,EAAE,oBAAoB;QACxB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,oBAAoB;KAC9B,EAAE,0BAA0B,CAAC,CAAC;IAClB,wCAAsB,GAAY,cAAO,CAAC,kBAAkB,CAAC;QACtE,EAAE,EAAE,iCAAiC;QACrC,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,mCAAmC;KAC7C,EAAE,0BAA0B,CAAC,CAAC;IAClB,uDAAqC,GAAY,cAAO,CAAC,kBAAkB,CAAC;QACrF,EAAE,EAAE,gCAAgC;QACpC,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,kDAAkD;KAC5D,EAAE,sCAAsC,CAAC,CAAC;AAC/C,CAAC,EAhBgB,iBAAiB,iCAAjB,iBAAiB,QAgBjC;AAGM,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,iEAAkC;
|
|
1
|
+
{"version":3,"file":"remote-ssh-contribution.js","sourceRoot":"","sources":["../../src/electron-browser/remote-ssh-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,7 @@ export interface RemoteSSHConnectionProviderOptions {
|
|
|
7
7
|
nodeDownloadTemplate?: string;
|
|
8
8
|
customConfigFile?: string;
|
|
9
9
|
}
|
|
10
|
-
export
|
|
11
|
-
compute(opts: string | SshConfig.MatchOptions): Record<string, string | string[]>;
|
|
12
|
-
}
|
|
10
|
+
export type SSHConfig = Array<SshConfig.Line>;
|
|
13
11
|
export interface RemoteSSHConnectionProvider {
|
|
14
12
|
establishConnection(options: RemoteSSHConnectionProviderOptions): Promise<string>;
|
|
15
13
|
getSSHConfig(customConfigFile?: string): Promise<SSHConfig>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-ssh-connection-provider.d.ts","sourceRoot":"","sources":["../../src/electron-common/remote-ssh-connection-provider.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,eAAO,MAAM,+BAA+B,gBAAgB,CAAC;AAE7D,eAAO,MAAM,2BAA2B,eAAwC,CAAC;AAEjF,MAAM,WAAW,kCAAkC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"remote-ssh-connection-provider.d.ts","sourceRoot":"","sources":["../../src/electron-common/remote-ssh-connection-provider.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,eAAO,MAAM,+BAA+B,gBAAgB,CAAC;AAE7D,eAAO,MAAM,2BAA2B,eAAwC,CAAC;AAEjF,MAAM,WAAW,kCAAkC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAE9C,MAAM,WAAW,2BAA2B;IACxC,mBAAmB,CAAC,OAAO,EAAE,kCAAkC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClF,YAAY,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5D,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;CACtI"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import * as ssh2 from 'ssh2';
|
|
3
3
|
import * as net from 'net';
|
|
4
4
|
import SftpClient = require('ssh2-sftp-client');
|
|
5
|
+
import SshConfig from 'ssh-config';
|
|
5
6
|
import { Event, MessageService, QuickInputService } from '@theia/core';
|
|
6
7
|
import { RemoteSSHConnectionProvider, RemoteSSHConnectionProviderOptions, SSHConfig } from '../../electron-common/remote-ssh-connection-provider';
|
|
7
8
|
import { RemoteConnectionService } from '../remote-connection-service';
|
|
@@ -9,7 +10,6 @@ import { RemoteProxyServerProvider } from '../remote-proxy-server-provider';
|
|
|
9
10
|
import { RemoteConnection, RemoteExecOptions, RemoteExecResult, RemoteExecTester } from '../remote-types';
|
|
10
11
|
import { SSHIdentityFileCollector, SSHKey } from './ssh-identity-file-collector';
|
|
11
12
|
import { RemoteSetupService } from '../setup/remote-setup-service';
|
|
12
|
-
import { EnvVariablesServer } from '@theia/core/lib/common/env-variables';
|
|
13
13
|
export declare class RemoteSSHConnectionProviderImpl implements RemoteSSHConnectionProvider {
|
|
14
14
|
protected readonly remoteConnectionService: RemoteConnectionService;
|
|
15
15
|
protected readonly serverProvider: RemoteProxyServerProvider;
|
|
@@ -17,11 +17,11 @@ export declare class RemoteSSHConnectionProviderImpl implements RemoteSSHConnect
|
|
|
17
17
|
protected readonly remoteSetup: RemoteSetupService;
|
|
18
18
|
protected readonly quickInputService: QuickInputService;
|
|
19
19
|
protected readonly messageService: MessageService;
|
|
20
|
-
protected readonly envVariablesServer: EnvVariablesServer;
|
|
21
20
|
protected passwordRetryCount: number;
|
|
22
21
|
protected passphraseRetryCount: number;
|
|
23
22
|
matchSSHConfigHost(host: string, user?: string, customConfigFile?: string): Promise<Record<string, string | string[]> | undefined>;
|
|
24
23
|
getSSHConfig(customConfigFile?: string): Promise<SSHConfig>;
|
|
24
|
+
doGetSSHConfig(customConfigFile?: string): Promise<SshConfig>;
|
|
25
25
|
establishConnection(options: RemoteSSHConnectionProviderOptions): Promise<string>;
|
|
26
26
|
establishSSHConnection(host: string, user: string, customConfigFile?: string): Promise<RemoteSSHConnection>;
|
|
27
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-ssh-connection-provider.d.ts","sourceRoot":"","sources":["../../../src/electron-node/ssh/remote-ssh-connection-provider.ts"],"names":[],"mappings":";AAgBA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAE3B,OAAO,UAAU,GAAG,QAAQ,kBAAkB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"remote-ssh-connection-provider.d.ts","sourceRoot":"","sources":["../../../src/electron-node/ssh/remote-ssh-connection-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ const tslib_1 = require("tslib");
|
|
|
20
20
|
const ssh2 = require("ssh2");
|
|
21
21
|
const fs = require("@theia/core/shared/fs-extra");
|
|
22
22
|
const SftpClient = require("ssh2-sftp-client");
|
|
23
|
-
const
|
|
23
|
+
const ssh_config_1 = require("ssh-config");
|
|
24
24
|
const core_1 = require("@theia/core");
|
|
25
25
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
26
26
|
const remote_connection_service_1 = require("../remote-connection-service");
|
|
@@ -29,14 +29,13 @@ const promise_util_1 = require("@theia/core/lib/common/promise-util");
|
|
|
29
29
|
const ssh_identity_file_collector_1 = require("./ssh-identity-file-collector");
|
|
30
30
|
const remote_setup_service_1 = require("../setup/remote-setup-service");
|
|
31
31
|
const uuid_1 = require("@theia/core/lib/common/uuid");
|
|
32
|
-
const env_variables_1 = require("@theia/core/lib/common/env-variables");
|
|
33
32
|
let RemoteSSHConnectionProviderImpl = class RemoteSSHConnectionProviderImpl {
|
|
34
33
|
constructor() {
|
|
35
34
|
this.passwordRetryCount = 3;
|
|
36
35
|
this.passphraseRetryCount = 3;
|
|
37
36
|
}
|
|
38
37
|
async matchSSHConfigHost(host, user, customConfigFile) {
|
|
39
|
-
const sshConfig = await this.
|
|
38
|
+
const sshConfig = await this.doGetSSHConfig(customConfigFile);
|
|
40
39
|
const host2 = host.trim().split(':');
|
|
41
40
|
const record = Object.fromEntries(Object.entries(sshConfig.compute(host2[0])).map(([k, v]) => [k.toLowerCase(), v]));
|
|
42
41
|
// Generate a regexp to find wildcards and process the hostname with the wildcards
|
|
@@ -58,17 +57,21 @@ let RemoteSSHConnectionProviderImpl = class RemoteSSHConnectionProviderImpl {
|
|
|
58
57
|
return record;
|
|
59
58
|
}
|
|
60
59
|
async getSSHConfig(customConfigFile) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
60
|
+
return this.doGetSSHConfig(customConfigFile);
|
|
61
|
+
}
|
|
62
|
+
async doGetSSHConfig(customConfigFile) {
|
|
63
|
+
const empty = new ssh_config_1.default();
|
|
64
|
+
if (!customConfigFile) {
|
|
65
|
+
return empty;
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
const buff = await fs.promises.readFile(customConfigFile);
|
|
69
|
+
const sshConfig = ssh_config_1.default.parse(buff.toString());
|
|
70
|
+
return sshConfig;
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
return empty;
|
|
74
|
+
}
|
|
72
75
|
}
|
|
73
76
|
async establishConnection(options) {
|
|
74
77
|
const progress = await this.messageService.showProgress({
|
|
@@ -284,10 +287,6 @@ tslib_1.__decorate([
|
|
|
284
287
|
(0, inversify_1.inject)(core_1.MessageService),
|
|
285
288
|
tslib_1.__metadata("design:type", core_1.MessageService)
|
|
286
289
|
], RemoteSSHConnectionProviderImpl.prototype, "messageService", void 0);
|
|
287
|
-
tslib_1.__decorate([
|
|
288
|
-
(0, inversify_1.inject)(env_variables_1.EnvVariablesServer),
|
|
289
|
-
tslib_1.__metadata("design:type", Object)
|
|
290
|
-
], RemoteSSHConnectionProviderImpl.prototype, "envVariablesServer", void 0);
|
|
291
290
|
exports.RemoteSSHConnectionProviderImpl = RemoteSSHConnectionProviderImpl = tslib_1.__decorate([
|
|
292
291
|
(0, inversify_1.injectable)()
|
|
293
292
|
], RemoteSSHConnectionProviderImpl);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-ssh-connection-provider.js","sourceRoot":"","sources":["../../../src/electron-node/ssh/remote-ssh-connection-provider.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,6BAA6B;AAE7B,kDAAkD;AAClD,+CAAgD;AAChD,wCAAwC;AACxC,sCAAgF;AAChF,4DAAkE;AAElE,4EAAuE;AACvE,kFAA4E;AAE5E,sEAAwE;AACxE,+EAAiF;AACjF,wEAAmE;AACnE,sDAA2D;AAC3D,wEAAuF;AAGhF,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAArC;QAuBO,uBAAkB,GAAG,CAAC,CAAC;QACvB,yBAAoB,GAAG,CAAC,CAAC;IAmPvC,CAAC;IAjPG,KAAK,CAAC,kBAAkB,CAAC,IAAY,EAAE,IAAa,EAAE,gBAAyB;QAC3E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CACpF,CAAC;QAEF,kFAAkF;QAClF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,GAAG,GAAY,MAAM,CAAC,IAAK;iBACnD,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;iBAC/B,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;iBAClE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;YAEnC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAClB,MAAM,CAAC,QAAQ,GAAY,MAAM,CAAC,QAAS,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,CAAC;YACL,CAAC;YAED,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,gBAAyB;QACxC,MAAM,GAAG,GAAG,iBAAiB,CAAC;QAC9B,MAAM,QAAQ,GAAuC,EAAE,CAAC;QACxD,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;YACpC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,iBAAiB,GAAG,gBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,WAAC,OAAA,CAAA,MAAA,MAAM,CAAC,KAAK,EAAE,0CAAE,KAAK,KAAI,EAAE,CAAA,EAAA,CAAC,CAAC;QAE5F,MAAM,IAAI,GAAW,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAEnE,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEnD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAA2C;QACjE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;YACpD,IAAI,EAAE,YAAY;SACrB,CAAC,CAAC;QACH,MAAM,MAAM,GAAuB,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3E,MAAM,CAAC,gCAAgC,CAAC,CAAC;QACzC,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACvG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACzB,UAAU,EAAE,MAAM;gBAClB,MAAM;gBACN,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;aACrD,CAAC,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;gBAC7D,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE;gBACxB,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,YAAY,CAAC,OAAO,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,MAAM,SAAS,GAAI,MAAM,CAAC,OAAO,EAAsB,CAAC,IAAI,CAAC;YAC7D,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;QAChC,CAAC;gBAAS,CAAC;YACP,QAAQ,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACL,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAY,EAAE,IAAY,EAAE,gBAAyB;QAC9E,MAAM,QAAQ,GAAG,IAAI,uBAAQ,EAAuB,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAClF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,SAAS,EAAY,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,YAAY,CAAC,CAAC;QAE7H,IAAI,UAAU,GAAgC,SAAS,CAAC;QACxD,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC9B,IAAI,GAAW,aAAa,CAAC,IAAI,CAAC;YACtC,CAAC;YACD,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;gBACzB,IAAI,GAAG,aAAa,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;YACvE,CAAC;iBAAM,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,aAAa,CAAC,WAAW,IAAa,aAAa,CAAC,WAAY,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;gBAC3F,UAAU,GAAG,EAAE,QAAQ,EAAE,CAAC,kBAAkB,EAAE,MAAM,CAAC,EAAE,CAAC;YAC5D,CAAC;QACL,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAClF,SAAS;aACJ,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YACpB,MAAM,UAAU,GAAG,IAAI,mBAAmB,CAAC;gBACvC,MAAM,EAAE,SAAS;gBACjB,EAAE,EAAE,IAAA,mBAAY,GAAE;gBAClB,IAAI,EAAE,OAAO,CAAC,QAAQ;gBACtB,IAAI,EAAE,KAAK;aACd,CAAC,CAAC;YACH,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBACtC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACL,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,oCAAoC,IAAI,IAAI,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YACjB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC,OAAO,CAAC;YACP,IAAI,EAAE,OAAO,CAAC,QAAQ;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YAC3D,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,UAAU;YACtB,WAAW,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC;SACnH,CAAC,CAAC;QACP,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,cAAc,CAAC,UAA+B;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,OAAO;YACX,CAAC;YACD,MAAM,IAAA,sBAAO,EAAC,EAAE,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC/E,CAAC;IAES,cAAc,CAAC,IAAY,EAAE,IAAY,EAAE,YAAsB;QACvE,IAAI,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACjD,IAAI,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACnD,iFAAiF;QACjF,MAAM,QAAQ,GAAG,KAA2C,CAAC;QAC7D,yEAAyE;QACzE,2CAA2C;QAC3C,MAAM,SAAS,GAAG,IAA0C,CAAC;QAC7D,OAAO,KAAK,EAAE,WAA4B,EAAE,eAA+B,EAAE,QAA8B,EAAE,EAAE;YAC3G,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,OAAO,QAAQ,CAAC;oBACZ,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACjB,CAAC,CAAC;YACP,CAAC;YACD,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gBAC1E,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAG,CAAC;gBAC1C,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;oBACxB,OAAO,QAAQ,CAAC;wBACZ,IAAI,EAAE,WAAW;wBACjB,QAAQ,EAAE,IAAI;wBACd,GAAG,EAAE,WAAW,CAAC,SAAS;qBAC7B,CAAC,CAAC;gBACP,CAAC;gBACD,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7C,yBAAyB;oBACzB,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC/B,CAAC;gBAED,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACnE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,+BAA+B;gBAC5E,IAAI,MAAM,YAAY,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBACzE,IAAI,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;oBACrD,OAAO,MAAM,YAAY,KAAK,IAAI,oBAAoB,GAAG,CAAC,EAAE,CAAC;wBACzD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;4BAClD,KAAK,EAAE,wBAAwB,WAAW,CAAC,QAAQ,EAAE;4BACrD,QAAQ,EAAE,IAAI;yBACjB,CAAC,CAAC;wBACH,IAAI,CAAC,UAAU,EAAE,CAAC;4BACd,MAAM;wBACV,CAAC;wBACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;wBACpD,oBAAoB,EAAE,CAAC;oBAC3B,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,MAAM,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;oBACrC,yBAAyB;oBACzB,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC/B,CAAC;gBAED,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACvD,OAAO,QAAQ,CAAC;oBACZ,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,IAAI;oBACd,GAAG;iBACN,CAAC,CAAC;YACP,CAAC;YACD,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;gBAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;oBAChD,KAAK,EAAE,sBAAsB,IAAI,IAAI,IAAI,EAAE;oBAC3C,QAAQ,EAAE,IAAI;iBACjB,CAAC,CAAC;gBACH,kBAAkB,EAAE,CAAC;gBAErB,OAAO,QAAQ,CAAC,QAAQ;oBACpB,CAAC,CAAC;wBACE,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,IAAI;wBACd,QAAQ;qBACX;oBACD,CAAC,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;YACD,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;gBACxF,OAAO,QAAQ,CAAC;oBACZ,IAAI,EAAE,sBAAsB;oBAC5B,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;wBACvE,MAAM,SAAS,GAAa,EAAE,CAAC;wBAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;4BAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;gCAChD,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE;gCAC3C,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI;6BACzB,CAAC,CAAC;4BACH,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gCACzB,kBAAkB,GAAG,CAAC,CAAC;gCACvB,MAAM;4BACV,CAAC;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC7B,CAAC;wBACD,kBAAkB,EAAE,CAAC;wBACrB,MAAM,CAAC,SAAS,CAAC,CAAC;oBACtB,CAAC;iBACJ,CAAC,CAAC;YACP,CAAC;YAED,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC,CAAC;IACN,CAAC;CACJ,CAAA;AA3QY,0EAA+B;AAGrB;IADlB,IAAA,kBAAM,EAAC,mDAAuB,CAAC;sCACY,mDAAuB;gFAAC;AAGjD;IADlB,IAAA,kBAAM,EAAC,wDAAyB,CAAC;sCACC,wDAAyB;uEAAC;AAG1C;IADlB,IAAA,kBAAM,EAAC,sDAAwB,CAAC;sCACS,sDAAwB;8EAAC;AAGhD;IADlB,IAAA,kBAAM,EAAC,yCAAkB,CAAC;sCACK,yCAAkB;oEAAC;AAGhC;IADlB,IAAA,kBAAM,EAAC,wBAAiB,CAAC;;0EAC8B;AAGrC;IADlB,IAAA,kBAAM,EAAC,qBAAc,CAAC;sCACY,qBAAc;uEAAC;AAG/B;IADlB,IAAA,kBAAM,EAAC,kCAAkB,CAAC;;2EAC+B;0CArBjD,+BAA+B;IAD3C,IAAA,sBAAU,GAAE;GACA,+BAA+B,CA2Q3C;AASD,MAAa,mBAAmB;IAa5B,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;IAC7C,CAAC;IAED,YAAY,OAAmC;QAX/C,cAAS,GAAG,CAAC,CAAC;QACd,eAAU,GAAG,CAAC,CAAC;QAIE,2BAAsB,GAAG,IAAI,cAAO,EAAQ,CAAC;QAO1D,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACvB,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACpD,CAAC;IAES,KAAK,CAAC,eAAe;QAC3B,8DAA8D;QAC9D,MAAM,UAAU,GAAG,IAAI,UAAU,EAAS,CAAC;QAC3C,4DAA4D;QAC5D,wDAAwD;QACxD,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,0EAA0E;QAC1E,MAAM,UAAU,CAAC,cAAc,EAAE,CAAC;QAClC,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,UAAU,CAAC,MAAkB,EAAE,IAAa;QACxC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,YAAa,EAAE,MAAM,CAAC,SAAU,EAAE,WAAW,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAClH,IAAI,GAAG,EAAE,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,UAAkB;QAC5C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;QAChD,MAAM,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,GAAW,EAAE,IAAe,EAAE,UAA6B,EAAE;QAC9D,MAAM,QAAQ,GAAG,IAAI,uBAAQ,EAAoB,CAAC;QAClD,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,GAAG,EAAE,CAAC;gBACN,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC;YACD,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAqB,EAAE,EAAE;gBACpC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAqB,EAAE,EAAE;gBAC3C,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED,WAAW,CAAC,GAAW,EAAE,MAAwB,EAAE,IAAe,EAAE,UAA6B,EAAE;QAC/F,MAAM,QAAQ,GAAG,IAAI,uBAAQ,EAAoB,CAAC;QAClD,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YAClB,GAAG,OAAO;YACV,2EAA2E;YAC3E,GAAG,EAAE,IAAI;SACZ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACf,IAAI,GAAG,EAAE,CAAC;gBACN,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC;YACD,4CAA4C;YAC5C,kCAAkC;YAClC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACpB,IAAI,QAAQ,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;oBAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBACjD,CAAC;YACL,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAqB,EAAE,EAAE;gBACpC,IAAI,QAAQ,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;oBAClC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAE1B,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;wBACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;oBACjD,CAAC;gBACL,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAES,QAAQ,CAAC,GAAW,EAAE,IAAe;QAC3C,MAAM,WAAW,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAI,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpF,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAO;QACH,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;CAEJ;AArHD,kDAqHC"}
|
|
1
|
+
{"version":3,"file":"remote-ssh-connection-provider.js","sourceRoot":"","sources":["../../../src/electron-node/ssh/remote-ssh-connection-provider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/remote",
|
|
3
|
-
"version": "1.64.0
|
|
3
|
+
"version": "1.64.0",
|
|
4
4
|
"description": "Theia - Remote",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/core": "1.64.0
|
|
7
|
-
"@theia/filesystem": "1.64.0
|
|
8
|
-
"@theia/userstorage": "1.64.0
|
|
6
|
+
"@theia/core": "1.64.0",
|
|
7
|
+
"@theia/filesystem": "1.64.0",
|
|
8
|
+
"@theia/userstorage": "1.64.0",
|
|
9
|
+
"@theia/variable-resolver": "1.64.0",
|
|
9
10
|
"archiver": "^5.3.1",
|
|
10
11
|
"decompress": "^4.2.1",
|
|
11
12
|
"decompress-tar": "^4.0.0",
|
|
@@ -54,7 +55,7 @@
|
|
|
54
55
|
"watch": "theiaext watch"
|
|
55
56
|
},
|
|
56
57
|
"devDependencies": {
|
|
57
|
-
"@theia/ext-scripts": "1.
|
|
58
|
+
"@theia/ext-scripts": "1.64.0",
|
|
58
59
|
"@types/archiver": "^5.3.2",
|
|
59
60
|
"@types/decompress": "^4.2.4",
|
|
60
61
|
"@types/express-http-proxy": "^1.6.6",
|
|
@@ -65,5 +66,5 @@
|
|
|
65
66
|
"nyc": {
|
|
66
67
|
"extends": "../../configs/nyc.json"
|
|
67
68
|
},
|
|
68
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "4c074e0d16c48e96a044b2f8bc4717de2e031c4b"
|
|
69
70
|
}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import { Command, MessageService, nls, QuickInputService, QuickPickInput } from '@theia/core';
|
|
18
18
|
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
19
|
+
import { VariableResolverService } from '@theia/variable-resolver/lib/browser';
|
|
19
20
|
import { RemoteSSHConnectionProvider } from '../electron-common/remote-ssh-connection-provider';
|
|
20
21
|
import { AbstractRemoteRegistryContribution, RemoteRegistry } from './remote-registry-contribution';
|
|
21
22
|
import { RemotePreferences } from './remote-preferences';
|
|
@@ -54,6 +55,9 @@ export class RemoteSSHContribution extends AbstractRemoteRegistryContribution {
|
|
|
54
55
|
@inject(RemotePreferences)
|
|
55
56
|
protected readonly remotePreferences: RemotePreferences;
|
|
56
57
|
|
|
58
|
+
@inject(VariableResolverService)
|
|
59
|
+
protected readonly variableResolver: VariableResolverService;
|
|
60
|
+
|
|
57
61
|
registerRemoteCommands(registry: RemoteRegistry): void {
|
|
58
62
|
registry.registerCommand(RemoteSSHCommands.CONNECT, {
|
|
59
63
|
execute: () => this.connect(true)
|
|
@@ -67,12 +71,18 @@ export class RemoteSSHContribution extends AbstractRemoteRegistryContribution {
|
|
|
67
71
|
}
|
|
68
72
|
|
|
69
73
|
async getConfigFilePath(): Promise<string | undefined> {
|
|
70
|
-
|
|
74
|
+
const preference = this.remotePreferences['remote.ssh.configFile'];
|
|
75
|
+
return this.variableResolver.resolve(preference);
|
|
71
76
|
}
|
|
72
77
|
|
|
73
78
|
async connectToConfigHost(): Promise<void> {
|
|
74
79
|
const quickPicks: QuickPickInput[] = [];
|
|
75
|
-
const
|
|
80
|
+
const filePath = await this.getConfigFilePath();
|
|
81
|
+
if (!filePath) {
|
|
82
|
+
this.messageService.error(nls.localize('theia/remote/sshNoConfigPath', 'No SSH config path found.'));
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const sshConfig = await this.sshConnectionProvider.getSSHConfig(filePath);
|
|
76
86
|
|
|
77
87
|
const wildcardCheck = /[\?\*\%]/;
|
|
78
88
|
|
|
@@ -99,12 +109,17 @@ export class RemoteSSHContribution extends AbstractRemoteRegistryContribution {
|
|
|
99
109
|
|
|
100
110
|
}
|
|
101
111
|
|
|
112
|
+
if (quickPicks.length === 0) {
|
|
113
|
+
this.messageService.info(nls.localize('theia/remote/noConfigHosts', 'No SSH hosts found in the config file: ' + filePath));
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
|
|
102
117
|
const selection = await this.quickInputService?.showQuickPick(quickPicks, {
|
|
103
118
|
placeholder: nls.localizeByDefault('Select an option to open a Remote Window')
|
|
104
119
|
});
|
|
105
|
-
if (selection
|
|
120
|
+
if (selection?.id) {
|
|
106
121
|
try {
|
|
107
|
-
let [user, host] = selection.id
|
|
122
|
+
let [user, host] = selection.id.split('@', 2);
|
|
108
123
|
host = selection.label;
|
|
109
124
|
|
|
110
125
|
const remotePort = await this.sendSSHConnect(host, user);
|
|
@@ -27,9 +27,7 @@ export interface RemoteSSHConnectionProviderOptions {
|
|
|
27
27
|
customConfigFile?: string;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
export
|
|
31
|
-
compute(opts: string | SshConfig.MatchOptions): Record<string, string | string[]>;
|
|
32
|
-
}
|
|
30
|
+
export type SSHConfig = Array<SshConfig.Line>;
|
|
33
31
|
|
|
34
32
|
export interface RemoteSSHConnectionProvider {
|
|
35
33
|
establishConnection(options: RemoteSSHConnectionProviderOptions): Promise<string>;
|
|
@@ -18,7 +18,7 @@ import * as ssh2 from 'ssh2';
|
|
|
18
18
|
import * as net from 'net';
|
|
19
19
|
import * as fs from '@theia/core/shared/fs-extra';
|
|
20
20
|
import SftpClient = require('ssh2-sftp-client');
|
|
21
|
-
import
|
|
21
|
+
import SshConfig from 'ssh-config';
|
|
22
22
|
import { Emitter, Event, MessageService, QuickInputService } from '@theia/core';
|
|
23
23
|
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
24
24
|
import { RemoteSSHConnectionProvider, RemoteSSHConnectionProviderOptions, SSHConfig } from '../../electron-common/remote-ssh-connection-provider';
|
|
@@ -29,7 +29,6 @@ import { Deferred, timeout } from '@theia/core/lib/common/promise-util';
|
|
|
29
29
|
import { SSHIdentityFileCollector, SSHKey } from './ssh-identity-file-collector';
|
|
30
30
|
import { RemoteSetupService } from '../setup/remote-setup-service';
|
|
31
31
|
import { generateUuid } from '@theia/core/lib/common/uuid';
|
|
32
|
-
import { EnvVariablesServer, EnvVariable } from '@theia/core/lib/common/env-variables';
|
|
33
32
|
|
|
34
33
|
@injectable()
|
|
35
34
|
export class RemoteSSHConnectionProviderImpl implements RemoteSSHConnectionProvider {
|
|
@@ -52,14 +51,11 @@ export class RemoteSSHConnectionProviderImpl implements RemoteSSHConnectionProvi
|
|
|
52
51
|
@inject(MessageService)
|
|
53
52
|
protected readonly messageService: MessageService;
|
|
54
53
|
|
|
55
|
-
@inject(EnvVariablesServer)
|
|
56
|
-
protected readonly envVariablesServer: EnvVariablesServer;
|
|
57
|
-
|
|
58
54
|
protected passwordRetryCount = 3;
|
|
59
55
|
protected passphraseRetryCount = 3;
|
|
60
56
|
|
|
61
57
|
async matchSSHConfigHost(host: string, user?: string, customConfigFile?: string): Promise<Record<string, string | string[]> | undefined> {
|
|
62
|
-
const sshConfig = await this.
|
|
58
|
+
const sshConfig = await this.doGetSSHConfig(customConfigFile);
|
|
63
59
|
const host2 = host.trim().split(':');
|
|
64
60
|
|
|
65
61
|
const record = Object.fromEntries(
|
|
@@ -89,21 +85,21 @@ export class RemoteSSHConnectionProviderImpl implements RemoteSSHConnectionProvi
|
|
|
89
85
|
}
|
|
90
86
|
|
|
91
87
|
async getSSHConfig(customConfigFile?: string): Promise<SSHConfig> {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
customConfigFile?.replace(reg, (...m) => {
|
|
95
|
-
promises.push(this.envVariablesServer.getValue(m[1]));
|
|
96
|
-
return m[0];
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
const repVal = await Promise.all(promises);
|
|
100
|
-
const sshConfigFilePath = customConfigFile!.replace(reg, () => repVal.shift()?.value || '');
|
|
101
|
-
|
|
102
|
-
const buff: Buffer = await fs.promises.readFile(sshConfigFilePath);
|
|
103
|
-
|
|
104
|
-
const sshConfig = SshConfig.parse(buff.toString());
|
|
88
|
+
return this.doGetSSHConfig(customConfigFile);
|
|
89
|
+
}
|
|
105
90
|
|
|
106
|
-
|
|
91
|
+
async doGetSSHConfig(customConfigFile?: string): Promise<SshConfig> {
|
|
92
|
+
const empty = new SshConfig();
|
|
93
|
+
if (!customConfigFile) {
|
|
94
|
+
return empty;
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
const buff: Buffer = await fs.promises.readFile(customConfigFile);
|
|
98
|
+
const sshConfig = SshConfig.parse(buff.toString());
|
|
99
|
+
return sshConfig;
|
|
100
|
+
} catch {
|
|
101
|
+
return empty;
|
|
102
|
+
}
|
|
107
103
|
}
|
|
108
104
|
|
|
109
105
|
async establishConnection(options: RemoteSSHConnectionProviderOptions): Promise<string> {
|