tabby-rdp 0.4.0 → 0.5.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/CHANGELOG.md +118 -0
- package/README.md +94 -5
- package/dist/accountForm.js +4 -3
- package/dist/accountForm.js.map +1 -1
- package/dist/desktop.service.js +454 -54
- package/dist/desktop.service.js.map +1 -1
- package/dist/desktopForm.js +26 -1
- package/dist/desktopForm.js.map +1 -1
- package/dist/desktops.js +17 -1
- package/dist/desktops.js.map +1 -1
- package/dist/drives.js +284 -0
- package/dist/drives.js.map +1 -0
- package/dist/fileTransfer.js +128 -11
- package/dist/fileTransfer.js.map +1 -1
- package/dist/gateway.js +492 -0
- package/dist/gateway.js.map +1 -0
- package/dist/hyperv.js +79 -0
- package/dist/hyperv.js.map +1 -0
- package/dist/ntlm.js +226 -0
- package/dist/ntlm.js.map +1 -0
- package/dist/rdcleanpath.js +167 -26
- package/dist/rdcleanpath.js.map +1 -1
- package/dist/rdpFile.js +34 -0
- package/dist/rdpFile.js.map +1 -1
- package/dist/rdpProfile.js +39 -4
- package/dist/rdpProfile.js.map +1 -1
- package/dist/settingsPage.js +107 -17
- package/dist/settingsPage.js.map +1 -1
- package/dist/signin.js +48 -17
- package/dist/signin.js.map +1 -1
- package/dist/sshChannelStream.js +11 -1
- package/dist/sshChannelStream.js.map +1 -1
- package/dist/ui.js +10 -0
- package/dist/ui.js.map +1 -1
- package/dist/vms.js +20 -3
- package/dist/vms.js.map +1 -1
- package/dist/wake.js +16 -4
- package/dist/wake.js.map +1 -1
- package/package.json +1 -1
- package/vendor/iron-remote-desktop-rdp.js +418 -390
- package/vendor/ironrdp_web_bg.wasm +0 -0
package/dist/signin.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.loadCredentials = loadCredentials;
|
|
|
7
7
|
exports.hasCredentials = hasCredentials;
|
|
8
8
|
exports.saveCredentials = saveCredentials;
|
|
9
9
|
exports.forgetCredentials = forgetCredentials;
|
|
10
|
+
exports.forgetCredentialsOrFail = forgetCredentialsOrFail;
|
|
10
11
|
exports.forgetCredentialsFor = forgetCredentialsFor;
|
|
11
12
|
exports.moveCredentialsFor = moveCredentialsFor;
|
|
12
13
|
exports.askCredentials = askCredentials;
|
|
@@ -36,6 +37,16 @@ function vaultOn() {
|
|
|
36
37
|
function storeName() {
|
|
37
38
|
return vaultOn() ? 'Tabby\'s Vault' : 'the keychain';
|
|
38
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Vault changes one after another: each of Tabby's loads the whole encrypted contents, changes them and writes them
|
|
42
|
+
* back, so two at once (two desktops signing in together) would lose one's change.
|
|
43
|
+
*/
|
|
44
|
+
let vaultQueue = Promise.resolve();
|
|
45
|
+
function queued(work) {
|
|
46
|
+
const next = vaultQueue.then(work, work);
|
|
47
|
+
vaultQueue = next.catch(() => null);
|
|
48
|
+
return next;
|
|
49
|
+
}
|
|
39
50
|
/** How a Vault entry is found: by the same key as the keychain's; its `description` is only for a listing. */
|
|
40
51
|
function vaultKey(key) {
|
|
41
52
|
return { key };
|
|
@@ -46,9 +57,12 @@ function vaultName(key) {
|
|
|
46
57
|
}
|
|
47
58
|
// The system keychain can keep a call waiting indefinitely: on Linux, a locked or missing keyring waits for an unlock
|
|
48
59
|
// prompt, which a session without a keyring prompter never shows. Give up after a while. A call that never returns
|
|
49
|
-
// also keeps one of Node's few worker threads, which the rest of Tabby needs
|
|
60
|
+
// also keeps one of Node's few worker threads (four), which the rest of Tabby needs for files and name lookups: after
|
|
61
|
+
// one, stop using the keychain. And one call at a time: several started together (a list of saved accounts, each
|
|
62
|
+
// asking whether it has a password) would each keep a thread before the first is given up on.
|
|
50
63
|
const KEYCHAIN_TIMEOUT_MS = 10000;
|
|
51
64
|
let keychainStuck = false;
|
|
65
|
+
let keychainQueue = Promise.resolve();
|
|
52
66
|
// Tabby ships keytar (tabby-ssh keeps SSH passwords with it). Without it, nothing is remembered.
|
|
53
67
|
function keytar() {
|
|
54
68
|
if (keychainStuck) {
|
|
@@ -61,14 +75,26 @@ function keytar() {
|
|
|
61
75
|
return null;
|
|
62
76
|
}
|
|
63
77
|
}
|
|
64
|
-
|
|
65
|
-
|
|
78
|
+
/**
|
|
79
|
+
* A keychain call, after the ones before it: its answer, undefined without a keychain, or an error when it doesn't
|
|
80
|
+
* answer in time (or one before it didn't: it is then not made at all).
|
|
81
|
+
*/
|
|
82
|
+
function keychain(call) {
|
|
83
|
+
const run = () => new Promise((resolve, reject) => {
|
|
84
|
+
const store = keytar();
|
|
85
|
+
if (!store) {
|
|
86
|
+
resolve(undefined);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
66
89
|
const timer = setTimeout(() => {
|
|
67
90
|
keychainStuck = true;
|
|
68
91
|
reject(new Error('the keychain did not answer'));
|
|
69
92
|
}, KEYCHAIN_TIMEOUT_MS);
|
|
70
|
-
Promise.resolve(call).then(value => { clearTimeout(timer); resolve(value); }, error => { clearTimeout(timer); reject(error); });
|
|
93
|
+
Promise.resolve(call(store)).then(value => { clearTimeout(timer); resolve(value); }, error => { clearTimeout(timer); reject(error); });
|
|
71
94
|
});
|
|
95
|
+
const next = keychainQueue.then(run, run);
|
|
96
|
+
keychainQueue = next.catch(() => null);
|
|
97
|
+
return next;
|
|
72
98
|
}
|
|
73
99
|
function parseCredentials(saved) {
|
|
74
100
|
try {
|
|
@@ -95,7 +121,7 @@ async function loadCredentials(key) {
|
|
|
95
121
|
catch { }
|
|
96
122
|
}
|
|
97
123
|
try {
|
|
98
|
-
return parseCredentials(await
|
|
124
|
+
return parseCredentials(await keychain(store => store.getPassword(KEYCHAIN_SERVICE, key)));
|
|
99
125
|
}
|
|
100
126
|
catch {
|
|
101
127
|
return null;
|
|
@@ -107,6 +133,9 @@ async function loadCredentials(key) {
|
|
|
107
133
|
* entries can't be seen then: 'unknown'), where loadCredentials would prompt for the passphrase.
|
|
108
134
|
*/
|
|
109
135
|
async function hasCredentials(key) {
|
|
136
|
+
if (keychainStuck && !vaultOn()) {
|
|
137
|
+
return 'unknown';
|
|
138
|
+
}
|
|
110
139
|
if (vaultOn()) {
|
|
111
140
|
try {
|
|
112
141
|
if (!vault.isOpen()) {
|
|
@@ -122,7 +151,7 @@ async function hasCredentials(key) {
|
|
|
122
151
|
}
|
|
123
152
|
}
|
|
124
153
|
try {
|
|
125
|
-
return parseCredentials(await
|
|
154
|
+
return parseCredentials(await keychain(store => store.getPassword(KEYCHAIN_SERVICE, key))) ? 'yes' : 'no';
|
|
126
155
|
}
|
|
127
156
|
catch {
|
|
128
157
|
return 'unknown';
|
|
@@ -130,28 +159,30 @@ async function hasCredentials(key) {
|
|
|
130
159
|
}
|
|
131
160
|
async function saveCredentials(key, credentials, label) {
|
|
132
161
|
if (vaultOn()) {
|
|
133
|
-
await vault.addSecret({ type: exports.VAULT_SECRET_TYPE, key: { ...vaultKey(key), description: label ?? vaultName(key) }, value: JSON.stringify(credentials) });
|
|
162
|
+
await queued(() => vault.addSecret({ type: exports.VAULT_SECRET_TYPE, key: { ...vaultKey(key), description: label ?? vaultName(key) }, value: JSON.stringify(credentials) }));
|
|
134
163
|
// Not in two places: what the keychain had for it goes.
|
|
135
164
|
try {
|
|
136
|
-
await
|
|
165
|
+
await keychain(store => store.deletePassword(KEYCHAIN_SERVICE, key));
|
|
137
166
|
}
|
|
138
167
|
catch { }
|
|
139
168
|
return;
|
|
140
169
|
}
|
|
141
|
-
await
|
|
170
|
+
await keychain(store => store.setPassword(KEYCHAIN_SERVICE, key, JSON.stringify(credentials)));
|
|
142
171
|
}
|
|
143
172
|
async function forgetCredentials(key) {
|
|
144
|
-
if (vaultOn()) {
|
|
145
|
-
try {
|
|
146
|
-
await vault.removeSecret(exports.VAULT_SECRET_TYPE, vaultKey(key));
|
|
147
|
-
}
|
|
148
|
-
catch { }
|
|
149
|
-
}
|
|
150
173
|
try {
|
|
151
|
-
await
|
|
174
|
+
await forgetCredentialsOrFail(key);
|
|
152
175
|
}
|
|
153
176
|
catch { }
|
|
154
177
|
}
|
|
178
|
+
/** As forgetCredentials, but a store that wouldn't (a Vault prompt cancelled, a keychain not answering) is reported. */
|
|
179
|
+
async function forgetCredentialsOrFail(key) {
|
|
180
|
+
if (vaultOn()) {
|
|
181
|
+
await queued(() => vault.removeSecret(exports.VAULT_SECRET_TYPE, vaultKey(key)));
|
|
182
|
+
}
|
|
183
|
+
// No keychain at all is not a failure to forget; one that didn't answer is.
|
|
184
|
+
await keychain(store => store.deletePassword(KEYCHAIN_SERVICE, key));
|
|
185
|
+
}
|
|
155
186
|
/** Every saved entry's key and value, from the Vault (when on) and the keychain. */
|
|
156
187
|
async function allCredentials() {
|
|
157
188
|
const entries = [];
|
|
@@ -167,7 +198,7 @@ async function allCredentials() {
|
|
|
167
198
|
catch { }
|
|
168
199
|
}
|
|
169
200
|
try {
|
|
170
|
-
entries.push(...await
|
|
201
|
+
entries.push(...await keychain(store => store.findCredentials(KEYCHAIN_SERVICE)) ?? []);
|
|
171
202
|
}
|
|
172
203
|
catch { }
|
|
173
204
|
return entries;
|
package/dist/signin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signin.js","sourceRoot":"","sources":["../src/signin.ts"],"names":[],"mappings":";;;AAkBA,4BAEC;AASD,8BAEC;
|
|
1
|
+
{"version":3,"file":"signin.js","sourceRoot":"","sources":["../src/signin.ts"],"names":[],"mappings":"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"}
|
package/dist/sshChannelStream.js
CHANGED
|
@@ -2,13 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SSHChannelStream = void 0;
|
|
4
4
|
const stream_1 = require("stream");
|
|
5
|
+
/**
|
|
6
|
+
* What may wait in the stream for its reader. The channel can't be told to slow down (russh hands the data over as
|
|
7
|
+
* it arrives), so a reader that has stopped for good would otherwise have the whole of what the server sends pile up
|
|
8
|
+
* here.
|
|
9
|
+
*/
|
|
10
|
+
const MAX_PENDING = 64 * 1024 * 1024;
|
|
5
11
|
/** Node Duplex over an SSH channel, so tls.connect() can run on top of it. */
|
|
6
12
|
class SSHChannelStream extends stream_1.Duplex {
|
|
7
13
|
constructor(channel) {
|
|
8
14
|
super();
|
|
9
15
|
this.channel = channel;
|
|
10
16
|
channel.data$.subscribe({
|
|
11
|
-
next: d =>
|
|
17
|
+
next: d => {
|
|
18
|
+
if (!this.push(Buffer.from(d.buffer, d.byteOffset, d.byteLength)) && this.readableLength > MAX_PENDING) {
|
|
19
|
+
this.destroy(new Error('the desktop\'s data isn\'t being read: connection closed'));
|
|
20
|
+
}
|
|
21
|
+
},
|
|
12
22
|
error: e => this.destroy(e instanceof Error ? e : new Error(String(e))),
|
|
13
23
|
});
|
|
14
24
|
channel.eof$.subscribe(() => this.push(null));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sshChannelStream.js","sourceRoot":"","sources":["../src/sshChannelStream.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAY/B,8EAA8E;AAC9E,MAAa,gBAAiB,SAAQ,eAAM;IACxC,YAAqB,OAAmB;QACpC,KAAK,EAAE,CAAA;QADU,YAAO,GAAP,OAAO,CAAY;QAEpC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"sshChannelStream.js","sourceRoot":"","sources":["../src/sshChannelStream.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAY/B;;;;GAIG;AACH,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAEpC,8EAA8E;AAC9E,MAAa,gBAAiB,SAAQ,eAAM;IACxC,YAAqB,OAAmB;QACpC,KAAK,EAAE,CAAA;QADU,YAAO,GAAP,OAAO,CAAY;QAEpC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,EAAE;gBACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,WAAW,EAAE,CAAC;oBACrG,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC,CAAA;gBACvF,CAAC;YACL,CAAC;YACD,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1E,CAAC,CAAA;QACF,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACf,IAAI,CAAC,OAAO,EAAE,CAAA;QAClB,CAAC,CAAC,CAAA;IACN,CAAC;IAED,4EAA4E;IACnE,KAAK,KAAY,CAAC;IAElB,MAAM,CAAE,KAAa,EAAE,SAAyB,EAAE,QAAoC;QAC3F,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAA;IACzH,CAAC;IAEQ,MAAM,CAAE,QAAoC;QACjD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC/D,CAAC;IAEQ,QAAQ,CAAE,KAAmB,EAAE,QAAoC;QACxE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;QACtC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC;CACJ;AAjCD,4CAiCC"}
|
package/dist/ui.js
CHANGED
|
@@ -50,6 +50,8 @@ let RemoteDesktopConfig = class RemoteDesktopConfig extends tabby_core_1.ConfigP
|
|
|
50
50
|
desk: false,
|
|
51
51
|
// macOS: ⌘ acts as Ctrl on the remote desktop (false: ⌘ is the Windows/Super key).
|
|
52
52
|
macShortcuts: true,
|
|
53
|
+
// Send the characters typed (Unicode) rather than key positions: dead keys, layouts the remote lacks.
|
|
54
|
+
unicodeKeys: false,
|
|
53
55
|
// Play the remote desktop's sound (applies on the next connect).
|
|
54
56
|
sound: true,
|
|
55
57
|
// H.264 in the graphics pipeline, decoded by the browser, where it can (applies on the next connect).
|
|
@@ -67,6 +69,8 @@ let RemoteDesktopConfig = class RemoteDesktopConfig extends tabby_core_1.ConfigP
|
|
|
67
69
|
accounts: [],
|
|
68
70
|
// Sharpness for particular desktops, overriding `sharpness`: [{ desktop: <session key>, sharpness }].
|
|
69
71
|
desktopSharpness: [],
|
|
72
|
+
// Folders shared with remote desktops as drives (\\tsclient\<name>): [{ path, name, readOnly }]; see drives.ts.
|
|
73
|
+
sharedFolders: [],
|
|
70
74
|
// Certificates of desktops behind hosts, trusted on first use: [{ desktop: <session key>, sha256 }].
|
|
71
75
|
trustedCertificates: [],
|
|
72
76
|
// The on-screen display naming a desktop for a moment (see osd.ts).
|
|
@@ -310,6 +314,12 @@ function settingsMenu(desktop, pane, help) {
|
|
|
310
314
|
checked: current.connectionStatus,
|
|
311
315
|
click: () => desktop.updateSettings({ connectionStatus: !current.connectionStatus }),
|
|
312
316
|
},
|
|
317
|
+
{
|
|
318
|
+
type: 'checkbox',
|
|
319
|
+
label: 'Send text as typed (characters rather than key positions: dead keys, other layouts)',
|
|
320
|
+
checked: current.unicodeKeys,
|
|
321
|
+
click: () => desktop.updateSettings({ unicodeKeys: !current.unicodeKeys }),
|
|
322
|
+
},
|
|
313
323
|
...process.platform === 'darwin' ? [{
|
|
314
324
|
type: 'checkbox',
|
|
315
325
|
label: 'Mac shortcuts on the remote desktop (⌘C, ⌘V, ⌘Z… act as Ctrl+C, Ctrl+V…; off: ⌘ is the Windows key)',
|
package/dist/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
|
package/dist/vms.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.scanVMs = scanVMs;
|
|
4
4
|
exports.vmSpec = vmSpec;
|
|
5
|
+
const desktops_1 = require("./desktops");
|
|
6
|
+
const hyperv_1 = require("./hyperv");
|
|
5
7
|
/**
|
|
6
8
|
* RDP security the server chose when offered TLS and NLA (RDP_NEG_RSP): Windows and GNOME Remote Desktop take NLA
|
|
7
9
|
* (2), xrdp only TLS (1). A Linux VM that takes NLA is GNOME's, whose sign-in the plugin manages over SSH to that VM:
|
|
@@ -14,6 +16,7 @@ const XRDP_LIKE = '1';
|
|
|
14
16
|
// wake.ts) within a second; the protocol the server chose, or 0 without a negotiation response ('' if none).
|
|
15
17
|
// Read-only: starts nothing, changes nothing.
|
|
16
18
|
const SCAN_SCRIPT = String.raw `
|
|
19
|
+
echo TRD_SH
|
|
17
20
|
command -v virsh >/dev/null 2>&1 || exit 0
|
|
18
21
|
probe () {
|
|
19
22
|
if command -v python3 >/dev/null 2>&1; then
|
|
@@ -55,9 +58,20 @@ for uri in qemu:///system qemu:///session; do
|
|
|
55
58
|
done
|
|
56
59
|
done
|
|
57
60
|
`;
|
|
58
|
-
/**
|
|
59
|
-
|
|
60
|
-
|
|
61
|
+
/**
|
|
62
|
+
* The host's VMs that have (or, being off, may have) a desktop: libvirt's running ones whose RDP answers, and Windows
|
|
63
|
+
* ones that are off; on a Windows host, Hyper-V's. `host.windows` says the host is known to run Windows, and is set
|
|
64
|
+
* when the scan finds out: such a host isn't asked for libvirt again (its shell takes a while to say it has no sh).
|
|
65
|
+
*/
|
|
66
|
+
async function scanVMs(target, host = {}) {
|
|
67
|
+
const out = host.windows ? '' : await target.exec('sh -s', SCAN_SCRIPT);
|
|
68
|
+
// No sh answered: a Windows host (cmd.exe or PowerShell as its SSH shell), which is where Hyper-V is. Asked only
|
|
69
|
+
// then, so that a Linux host costs nothing extra.
|
|
70
|
+
if (!/^TRD_SH$/m.test(out)) {
|
|
71
|
+
const vms = await (0, hyperv_1.scanHyperV)(target);
|
|
72
|
+
host.windows = true;
|
|
73
|
+
return vms.map(vm => ({ hyperv: vm.id, name: vm.name, state: vm.state, windows: true, address: '', rdp: false }));
|
|
74
|
+
}
|
|
61
75
|
const found = [];
|
|
62
76
|
for (const line of out.split('\n')) {
|
|
63
77
|
const m = /^TRD_VM ([^|]+)\|([^|]*)\|([^|]*)\|([^|]*)\|(\d*)\s*$/.exec(line.trim());
|
|
@@ -77,6 +91,9 @@ async function scanVMs(target) {
|
|
|
77
91
|
}
|
|
78
92
|
/** A found VM as a desktop behind its host: started by name when it's off (see wake.ts). */
|
|
79
93
|
function vmSpec(vm) {
|
|
94
|
+
if (vm.hyperv) {
|
|
95
|
+
return (0, desktops_1.hyperVSpec)(vm.hyperv, vm.name, { found: vm.state });
|
|
96
|
+
}
|
|
80
97
|
return {
|
|
81
98
|
id: `${vm.address}:3389`,
|
|
82
99
|
name: vm.name,
|
package/dist/vms.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vms.js","sourceRoot":"","sources":["../src/vms.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"vms.js","sourceRoot":"","sources":["../src/vms.ts"],"names":[],"mappings":"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"}
|
package/dist/wake.js
CHANGED
|
@@ -4,13 +4,18 @@ exports.parseWake = parseWake;
|
|
|
4
4
|
exports.wakeFromText = wakeFromText;
|
|
5
5
|
exports.shutDownWhenIdle = shutDownWhenIdle;
|
|
6
6
|
exports.rdpAnswers = rdpAnswers;
|
|
7
|
+
exports.desktopUp = desktopUp;
|
|
7
8
|
exports.wakeDesktop = wakeDesktop;
|
|
8
9
|
exports.waitForRdp = waitForRdp;
|
|
9
10
|
const deskScript_1 = require("./deskScript");
|
|
11
|
+
const hyperv_1 = require("./hyperv");
|
|
10
12
|
const MAC = /^[0-9a-f]{2}([:-]?)[0-9a-f]{2}(\1[0-9a-f]{2}){4}$/i;
|
|
11
13
|
const IPV4 = /^\d{1,3}(\.\d{1,3}){3}$/;
|
|
12
14
|
/** A `wake` config value, checked; undefined when absent or unusable. */
|
|
13
15
|
function parseWake(raw) {
|
|
16
|
+
if ((0, hyperv_1.vmId)(raw?.hyperv)) {
|
|
17
|
+
return { hyperv: (0, hyperv_1.vmId)(raw.hyperv) };
|
|
18
|
+
}
|
|
14
19
|
if (typeof raw?.vm === 'string' && raw.vm.trim()) {
|
|
15
20
|
return { vm: raw.vm.trim() };
|
|
16
21
|
}
|
|
@@ -149,8 +154,15 @@ async function rdpAnswers(target, host, port) {
|
|
|
149
154
|
const out = await target.exec('sh -s', `H=${(0, deskScript_1.shq)(host)}\nP=${port}\n${PROBE_SCRIPT}`);
|
|
150
155
|
return /^RD_OPEN$/m.test(out);
|
|
151
156
|
}
|
|
157
|
+
/** Whether the desktop is up: its RDP server answers, or, for a Hyper-V VM (reached through its host), it runs. */
|
|
158
|
+
async function desktopUp(target, host, port, wake) {
|
|
159
|
+
return wake && 'hyperv' in wake ? (await (0, hyperv_1.hyperVState)(target, wake.hyperv)).running : rdpAnswers(target, host, port);
|
|
160
|
+
}
|
|
152
161
|
/** Starts the desktop as `wake` says. Resolves with what was done; throws with the reason when it couldn't. */
|
|
153
162
|
async function wakeDesktop(target, wake) {
|
|
163
|
+
if ('hyperv' in wake) {
|
|
164
|
+
return (0, hyperv_1.startHyperV)(target, wake.hyperv);
|
|
165
|
+
}
|
|
154
166
|
const script = 'vm' in wake
|
|
155
167
|
? `VM=${(0, deskScript_1.shq)(wake.vm)}\n${VM_SCRIPT}`
|
|
156
168
|
: `MAC=${(0, deskScript_1.shq)(wake.mac)}\nBCAST=${(0, deskScript_1.shq)(wake.broadcast ?? '255.255.255.255')}\nPORT=${wake.port ?? 9}\n${WOL_SCRIPT}`;
|
|
@@ -162,16 +174,16 @@ async function wakeDesktop(target, wake) {
|
|
|
162
174
|
return /^RD_OK (.*)$/m.exec(out)?.[1] ?? 'no result';
|
|
163
175
|
}
|
|
164
176
|
/**
|
|
165
|
-
* Probes until the
|
|
166
|
-
* 3 s; `progress` is called every 5 s.
|
|
177
|
+
* Probes until the desktop is up (true; see desktopUp), the time is up or `stopped()` (false). At most one probe
|
|
178
|
+
* every 3 s; `progress` is called every 5 s.
|
|
167
179
|
*/
|
|
168
|
-
async function waitForRdp(target, host, port, timeoutMs, stopped, progress) {
|
|
180
|
+
async function waitForRdp(target, host, port, timeoutMs, stopped, progress, wake) {
|
|
169
181
|
const deadline = Date.now() + timeoutMs;
|
|
170
182
|
const ticker = setInterval(() => stopped() || progress(), 5000);
|
|
171
183
|
try {
|
|
172
184
|
while (Date.now() < deadline && !stopped()) {
|
|
173
185
|
const started = Date.now();
|
|
174
|
-
if (await
|
|
186
|
+
if (await desktopUp(target, host, port, wake).catch(() => false)) {
|
|
175
187
|
return !stopped();
|
|
176
188
|
}
|
|
177
189
|
await new Promise(resolve => setTimeout(resolve, Math.max(0, 3000 - (Date.now() - started))));
|
package/dist/wake.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wake.js","sourceRoot":"","sources":["../src/wake.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"wake.js","sourceRoot":"","sources":["../src/wake.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED