@theia/remote 1.74.0-next.9 → 1.74.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.
@@ -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":"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"}
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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"}
@@ -38,16 +38,21 @@ let RemoteSSHConnectionProviderImpl = class RemoteSSHConnectionProviderImpl {
38
38
  const sshConfig = await this.doGetSSHConfig(customConfigFile);
39
39
  const host2 = host.trim().split(':');
40
40
  const record = Object.fromEntries(Object.entries(sshConfig.compute(host2[0])).map(([k, v]) => [k.toLowerCase(), v]));
41
+ const hostArray = typeof record.host === 'string' ? [record.host] : record.host;
41
42
  // Generate a regexp to find wildcards and process the hostname with the wildcards
42
- if (record.host) {
43
- const checkHost = new RegExp('^' + record.host
44
- .replace(/([^\w\*\?])/g, '\\$1')
45
- .replace(/([\?]+)/g, (...m) => '(' + '.'.repeat(m[1].length) + ')')
46
- .replace(/\*/g, '(.+)') + '$');
47
- const match = host2[0].match(checkHost);
48
- if (match) {
49
- if (record.hostname) {
50
- record.hostname = record.hostname.replace('%h', match[1]);
43
+ if (hostArray) {
44
+ for (const hostPattern of hostArray) {
45
+ const checkHost = new RegExp('^' + hostPattern
46
+ .replace(/([^\w\*\?])/g, '\\$1')
47
+ .replace(/([\?]+)/g, (...m) => '(' + '.'.repeat(m[1].length) + ')')
48
+ .replace(/\*/g, '(.+)') + '$');
49
+ const match = host2[0].match(checkHost);
50
+ if (match) {
51
+ record.host = host2[0];
52
+ if (record.hostname) {
53
+ record.hostname = record.hostname.replace('%h', match[1]);
54
+ }
55
+ break;
51
56
  }
52
57
  }
53
58
  if (host2[1]) {
@@ -1 +1 @@
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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"}
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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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=remote-ssh-connection-provider.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-ssh-connection-provider.spec.d.ts","sourceRoot":"","sources":["../../../src/electron-node/ssh/remote-ssh-connection-provider.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 Tom Aviv.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const chai_1 = require("chai");
19
+ const ssh_config_1 = require("ssh-config");
20
+ const remote_ssh_connection_provider_1 = require("./remote-ssh-connection-provider");
21
+ /**
22
+ * Parses the SSH config from an in-memory string instead of a file,
23
+ * so tests don't need to touch the file system.
24
+ */
25
+ class TestableRemoteSSHConnectionProvider extends remote_ssh_connection_provider_1.RemoteSSHConnectionProviderImpl {
26
+ constructor() {
27
+ super(...arguments);
28
+ this.configContent = '';
29
+ }
30
+ async doGetSSHConfig() {
31
+ return ssh_config_1.default.parse(this.configContent);
32
+ }
33
+ }
34
+ describe('RemoteSSHConnectionProviderImpl#matchSSHConfigHost', () => {
35
+ function createProvider(configContent) {
36
+ const provider = new TestableRemoteSSHConnectionProvider();
37
+ provider.configContent = configContent;
38
+ return provider;
39
+ }
40
+ it('should match a single-pattern host entry and expand %h', async () => {
41
+ const provider = createProvider(`Host my-*
42
+ HostName %h.example.com
43
+ `);
44
+ const record = await provider.matchSSHConfigHost('my-server');
45
+ (0, chai_1.expect)(record?.hostname).to.equal('server.example.com');
46
+ });
47
+ it('should replace the host pattern with the concrete host on match', async () => {
48
+ const provider = createProvider(`Host my-*
49
+ Port 2200
50
+ `);
51
+ const record = await provider.matchSSHConfigHost('my-server');
52
+ (0, chai_1.expect)(record?.host).to.equal('my-server');
53
+ });
54
+ it('should handle a multi-pattern host entry (host as string array)', async () => {
55
+ const provider = createProvider(`Host web-* db-*
56
+ Port 2022
57
+ `);
58
+ const record = await provider.matchSSHConfigHost('web-1');
59
+ (0, chai_1.expect)(record?.host).to.equal('web-1');
60
+ (0, chai_1.expect)(record?.port).to.equal('2022');
61
+ });
62
+ it('should match against subsequent patterns of a multi-pattern host entry', async () => {
63
+ const provider = createProvider(`Host web-* db-*
64
+ HostName %h.cluster.local
65
+ `);
66
+ const record = await provider.matchSSHConfigHost('db-3');
67
+ (0, chai_1.expect)(record?.host).to.equal('db-3');
68
+ (0, chai_1.expect)(record?.hostname).to.equal('3.cluster.local');
69
+ });
70
+ it('should match a non-glob host entry', async () => {
71
+ const provider = createProvider(`Host build-server
72
+ HostName 192.168.1.10
73
+ `);
74
+ const record = await provider.matchSSHConfigHost('build-server');
75
+ (0, chai_1.expect)(record?.host).to.equal('build-server');
76
+ (0, chai_1.expect)(record?.hostname).to.equal('192.168.1.10');
77
+ });
78
+ it('should match a multi-pattern host entry with non-glob values', async () => {
79
+ const provider = createProvider(`Host alpha beta
80
+ Port 2022
81
+ `);
82
+ const first = await provider.matchSSHConfigHost('alpha');
83
+ (0, chai_1.expect)(first?.host).to.equal('alpha');
84
+ (0, chai_1.expect)(first?.port).to.equal('2022');
85
+ const second = await provider.matchSSHConfigHost('beta');
86
+ (0, chai_1.expect)(second?.host).to.equal('beta');
87
+ (0, chai_1.expect)(second?.port).to.equal('2022');
88
+ });
89
+ it('should expand ? wildcards', async () => {
90
+ const provider = createProvider(`Host server-??
91
+ HostName %h.internal
92
+ `);
93
+ const record = await provider.matchSSHConfigHost('server-01');
94
+ (0, chai_1.expect)(record?.host).to.equal('server-01');
95
+ (0, chai_1.expect)(record?.hostname).to.equal('01.internal');
96
+ });
97
+ it('should apply the port from the host string', async () => {
98
+ const provider = createProvider(`Host my-*
99
+ HostName %h.example.com
100
+ `);
101
+ const record = await provider.matchSSHConfigHost('my-server:2222');
102
+ (0, chai_1.expect)(record?.hostname).to.equal('server.example.com');
103
+ (0, chai_1.expect)(record?.port).to.equal('2222');
104
+ });
105
+ it('should return an empty record when no host entry matches', async () => {
106
+ const provider = createProvider(`Host my-*
107
+ HostName %h.example.com
108
+ `);
109
+ const record = await provider.matchSSHConfigHost('other-host');
110
+ (0, chai_1.expect)(record?.host).to.equal(undefined);
111
+ (0, chai_1.expect)(record?.hostname).to.equal(undefined);
112
+ });
113
+ it('should return an empty record for an empty config', async () => {
114
+ const provider = createProvider('');
115
+ const record = await provider.matchSSHConfigHost('any-host');
116
+ (0, chai_1.expect)(record).to.deep.equal({});
117
+ });
118
+ });
119
+ //# sourceMappingURL=remote-ssh-connection-provider.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-ssh-connection-provider.spec.js","sourceRoot":"","sources":["../../../src/electron-node/ssh/remote-ssh-connection-provider.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@theia/remote",
3
- "version": "1.74.0-next.9+f24bc8b12",
3
+ "version": "1.74.0",
4
4
  "description": "Theia - Remote",
5
5
  "dependencies": {
6
- "@theia/core": "1.74.0-next.9+f24bc8b12",
7
- "@theia/filesystem": "1.74.0-next.9+f24bc8b12",
8
- "@theia/userstorage": "1.74.0-next.9+f24bc8b12",
9
- "@theia/variable-resolver": "1.74.0-next.9+f24bc8b12",
10
- "@theia/workspace": "1.74.0-next.9+f24bc8b12",
6
+ "@theia/core": "1.74.0",
7
+ "@theia/filesystem": "1.74.0",
8
+ "@theia/userstorage": "1.74.0",
9
+ "@theia/variable-resolver": "1.74.0",
10
+ "@theia/workspace": "1.74.0",
11
11
  "archiver": "^5.3.2",
12
12
  "decompress": "^4.2.1",
13
13
  "decompress-tar": "^4.1.1",
@@ -56,7 +56,7 @@
56
56
  "watch": "theiaext watch"
57
57
  },
58
58
  "devDependencies": {
59
- "@theia/ext-scripts": "1.73.0",
59
+ "@theia/ext-scripts": "1.74.0",
60
60
  "@types/archiver": "^5.3.4",
61
61
  "@types/decompress": "^4.2.7",
62
62
  "@types/express-http-proxy": "^1.6.7",
@@ -67,5 +67,5 @@
67
67
  "nyc": {
68
68
  "extends": "../../configs/nyc.json"
69
69
  },
70
- "gitHead": "f24bc8b12e11ee4b054527565df3648c363b7f86"
70
+ "gitHead": "7b7376225f0825b4f13d296d686cc13db95fdb69"
71
71
  }
@@ -0,0 +1,129 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2026 Tom Aviv.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { expect } from 'chai';
18
+ import SshConfig from 'ssh-config';
19
+ import { RemoteSSHConnectionProviderImpl } from './remote-ssh-connection-provider';
20
+
21
+ /**
22
+ * Parses the SSH config from an in-memory string instead of a file,
23
+ * so tests don't need to touch the file system.
24
+ */
25
+ class TestableRemoteSSHConnectionProvider extends RemoteSSHConnectionProviderImpl {
26
+ configContent = '';
27
+
28
+ override async doGetSSHConfig(): Promise<SshConfig> {
29
+ return SshConfig.parse(this.configContent);
30
+ }
31
+ }
32
+
33
+ describe('RemoteSSHConnectionProviderImpl#matchSSHConfigHost', () => {
34
+
35
+ function createProvider(configContent: string): TestableRemoteSSHConnectionProvider {
36
+ const provider = new TestableRemoteSSHConnectionProvider();
37
+ provider.configContent = configContent;
38
+ return provider;
39
+ }
40
+
41
+ it('should match a single-pattern host entry and expand %h', async () => {
42
+ const provider = createProvider(`Host my-*
43
+ HostName %h.example.com
44
+ `);
45
+ const record = await provider.matchSSHConfigHost('my-server');
46
+ expect(record?.hostname).to.equal('server.example.com');
47
+ });
48
+
49
+ it('should replace the host pattern with the concrete host on match', async () => {
50
+ const provider = createProvider(`Host my-*
51
+ Port 2200
52
+ `);
53
+ const record = await provider.matchSSHConfigHost('my-server');
54
+ expect(record?.host).to.equal('my-server');
55
+ });
56
+
57
+ it('should handle a multi-pattern host entry (host as string array)', async () => {
58
+ const provider = createProvider(`Host web-* db-*
59
+ Port 2022
60
+ `);
61
+ const record = await provider.matchSSHConfigHost('web-1');
62
+ expect(record?.host).to.equal('web-1');
63
+ expect(record?.port).to.equal('2022');
64
+ });
65
+
66
+ it('should match against subsequent patterns of a multi-pattern host entry', async () => {
67
+ const provider = createProvider(`Host web-* db-*
68
+ HostName %h.cluster.local
69
+ `);
70
+ const record = await provider.matchSSHConfigHost('db-3');
71
+ expect(record?.host).to.equal('db-3');
72
+ expect(record?.hostname).to.equal('3.cluster.local');
73
+ });
74
+
75
+ it('should match a non-glob host entry', async () => {
76
+ const provider = createProvider(`Host build-server
77
+ HostName 192.168.1.10
78
+ `);
79
+ const record = await provider.matchSSHConfigHost('build-server');
80
+ expect(record?.host).to.equal('build-server');
81
+ expect(record?.hostname).to.equal('192.168.1.10');
82
+ });
83
+
84
+ it('should match a multi-pattern host entry with non-glob values', async () => {
85
+ const provider = createProvider(`Host alpha beta
86
+ Port 2022
87
+ `);
88
+ const first = await provider.matchSSHConfigHost('alpha');
89
+ expect(first?.host).to.equal('alpha');
90
+ expect(first?.port).to.equal('2022');
91
+
92
+ const second = await provider.matchSSHConfigHost('beta');
93
+ expect(second?.host).to.equal('beta');
94
+ expect(second?.port).to.equal('2022');
95
+ });
96
+
97
+ it('should expand ? wildcards', async () => {
98
+ const provider = createProvider(`Host server-??
99
+ HostName %h.internal
100
+ `);
101
+ const record = await provider.matchSSHConfigHost('server-01');
102
+ expect(record?.host).to.equal('server-01');
103
+ expect(record?.hostname).to.equal('01.internal');
104
+ });
105
+
106
+ it('should apply the port from the host string', async () => {
107
+ const provider = createProvider(`Host my-*
108
+ HostName %h.example.com
109
+ `);
110
+ const record = await provider.matchSSHConfigHost('my-server:2222');
111
+ expect(record?.hostname).to.equal('server.example.com');
112
+ expect(record?.port).to.equal('2222');
113
+ });
114
+
115
+ it('should return an empty record when no host entry matches', async () => {
116
+ const provider = createProvider(`Host my-*
117
+ HostName %h.example.com
118
+ `);
119
+ const record = await provider.matchSSHConfigHost('other-host');
120
+ expect(record?.host).to.equal(undefined);
121
+ expect(record?.hostname).to.equal(undefined);
122
+ });
123
+
124
+ it('should return an empty record for an empty config', async () => {
125
+ const provider = createProvider('');
126
+ const record = await provider.matchSSHConfigHost('any-host');
127
+ expect(record).to.deep.equal({});
128
+ });
129
+ });
@@ -65,17 +65,23 @@ export class RemoteSSHConnectionProviderImpl implements RemoteSSHConnectionProvi
65
65
  Object.entries(sshConfig.compute(host2[0])).map(([k, v]) => [k.toLowerCase(), v])
66
66
  );
67
67
 
68
+ const hostArray = typeof record.host === 'string' ? [record.host] : record.host;
69
+
68
70
  // Generate a regexp to find wildcards and process the hostname with the wildcards
69
- if (record.host) {
70
- const checkHost = new RegExp('^' + (<string>record.host)
71
- .replace(/([^\w\*\?])/g, '\\$1')
72
- .replace(/([\?]+)/g, (...m) => '(' + '.'.repeat(m[1].length) + ')')
73
- .replace(/\*/g, '(.+)') + '$');
74
-
75
- const match = host2[0].match(checkHost);
76
- if (match) {
77
- if (record.hostname) {
78
- record.hostname = (<string>record.hostname).replace('%h', match[1]);
71
+ if (hostArray) {
72
+ for (const hostPattern of hostArray) {
73
+ const checkHost = new RegExp('^' + hostPattern
74
+ .replace(/([^\w\*\?])/g, '\\$1')
75
+ .replace(/([\?]+)/g, (...m) => '(' + '.'.repeat(m[1].length) + ')')
76
+ .replace(/\*/g, '(.+)') + '$');
77
+
78
+ const match = host2[0].match(checkHost);
79
+ if (match) {
80
+ record.host = host2[0];
81
+ if (record.hostname) {
82
+ record.hostname = (<string>record.hostname).replace('%h', match[1]);
83
+ }
84
+ break;
79
85
  }
80
86
  }
81
87