tabby-rdp 0.2.7 → 0.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/CHANGELOG.md +61 -2
- package/README.md +181 -21
- package/dist/connectionStatus.js +140 -0
- package/dist/connectionStatus.js.map +1 -0
- package/dist/desk.js +21 -10
- package/dist/desk.js.map +1 -1
- package/dist/deskScript.js +3 -0
- package/dist/deskScript.js.map +1 -1
- package/dist/desktop.service.js +993 -53
- package/dist/desktop.service.js.map +1 -1
- package/dist/desktopForm.js +64 -19
- package/dist/desktopForm.js.map +1 -1
- package/dist/desktops.js +60 -21
- package/dist/desktops.js.map +1 -1
- package/dist/fileTransfer.js +152 -5
- package/dist/fileTransfer.js.map +1 -1
- package/dist/header.js +22 -7
- package/dist/header.js.map +1 -1
- package/dist/help.js +235 -0
- package/dist/help.js.map +1 -0
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/dist/keyboard.js +142 -5
- package/dist/keyboard.js.map +1 -1
- package/dist/microphone.js +295 -0
- package/dist/microphone.js.map +1 -0
- package/dist/osd.js +79 -0
- package/dist/osd.js.map +1 -0
- package/dist/probe.js +33 -0
- package/dist/probe.js.map +1 -0
- package/dist/rdcleanpath.js +132 -7
- package/dist/rdcleanpath.js.map +1 -1
- package/dist/rdpFile.js +47 -0
- package/dist/rdpFile.js.map +1 -0
- package/dist/rdpProfile.js +367 -0
- package/dist/rdpProfile.js.map +1 -0
- package/dist/remoteSetup.js +90 -11
- package/dist/remoteSetup.js.map +1 -1
- package/dist/settingsPage.js +538 -0
- package/dist/settingsPage.js.map +1 -0
- package/dist/signin.js +21 -2
- package/dist/signin.js.map +1 -1
- package/dist/ssh.js +28 -0
- package/dist/ssh.js.map +1 -1
- package/dist/targets.js +148 -8
- package/dist/targets.js.map +1 -1
- package/dist/ui.js +154 -24
- package/dist/ui.js.map +1 -1
- package/dist/vms.js +90 -0
- package/dist/vms.js.map +1 -0
- package/dist/wake.js +124 -0
- package/dist/wake.js.map +1 -0
- package/package.json +2 -1
- package/vendor/IRONRDP-LICENSE +3 -3
- package/vendor/iron-remote-desktop-rdp.js +698 -451
- package/vendor/iron-remote-desktop.js +87 -81
- package/vendor/ironrdp_web_bg.wasm +0 -0
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
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.scanVMs = scanVMs;
|
|
4
|
+
exports.vmSpec = vmSpec;
|
|
5
|
+
/**
|
|
6
|
+
* RDP security the server chose when offered TLS and NLA (RDP_NEG_RSP): Windows and GNOME Remote Desktop take NLA
|
|
7
|
+
* (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:
|
|
8
|
+
* not one to offer here.
|
|
9
|
+
*/
|
|
10
|
+
const XRDP_LIKE = '1';
|
|
11
|
+
// For each libvirt domain of the SSH user (system instance, then session), one line:
|
|
12
|
+
// TRD_VM <name>|<state>|<os id>|<address>|<rdp>. The address: live (guest agent, DHCP lease, ARP), else the DHCP
|
|
13
|
+
// reservation or lease for its MAC in its network. RDP: an X.224 connection request must get a TPKT reply (as in
|
|
14
|
+
// wake.ts) within a second; the protocol the server chose, or 0 without a negotiation response ('' if none).
|
|
15
|
+
// Read-only: starts nothing, changes nothing.
|
|
16
|
+
const SCAN_SCRIPT = String.raw `
|
|
17
|
+
command -v virsh >/dev/null 2>&1 || exit 0
|
|
18
|
+
probe () {
|
|
19
|
+
if command -v python3 >/dev/null 2>&1; then
|
|
20
|
+
python3 -c '
|
|
21
|
+
import socket, sys
|
|
22
|
+
try:
|
|
23
|
+
s = socket.create_connection((sys.argv[1], 3389), 1); s.settimeout(1)
|
|
24
|
+
s.sendall(bytes.fromhex("030000130ee000000000000100080003000000")); r = s.recv(64)
|
|
25
|
+
print("" if r[:2] != b"\x03\x00" else int.from_bytes(r[15:19], "little") if len(r) >= 19 and r[11] == 2 else 0)
|
|
26
|
+
except Exception:
|
|
27
|
+
print("")
|
|
28
|
+
' "$1"
|
|
29
|
+
else
|
|
30
|
+
timeout 1 bash -c 'exec 3<>"/dev/tcp/$0/3389"' "$1" >/dev/null 2>&1 && echo 0
|
|
31
|
+
fi
|
|
32
|
+
}
|
|
33
|
+
for uri in qemu:///system qemu:///session; do
|
|
34
|
+
virsh -q -c "$uri" list --all --name 2>/dev/null | while IFS= read -r d; do
|
|
35
|
+
[ -n "$d" ] || continue
|
|
36
|
+
state=$(virsh -c "$uri" domstate "$d" 2>/dev/null | head -n 1)
|
|
37
|
+
os=$(virsh -c "$uri" dumpxml "$d" 2>/dev/null | sed -n 's/.*libosinfo:os id="\([^"]*\)".*/\1/p' | head -n 1)
|
|
38
|
+
ip=
|
|
39
|
+
if [ "$state" = running ]; then
|
|
40
|
+
for src in agent lease arp; do
|
|
41
|
+
ip=$(virsh -c "$uri" domifaddr "$d" --source "$src" 2>/dev/null | awk '$3 == "ipv4" { split($4, a, "/"); if (a[1] !~ /^(127|169\.254)\./) { print a[1]; exit } }')
|
|
42
|
+
[ -n "$ip" ] && break
|
|
43
|
+
done
|
|
44
|
+
fi
|
|
45
|
+
if [ -z "$ip" ]; then
|
|
46
|
+
set -- $(virsh -c "$uri" domiflist "$d" 2>/dev/null | awk '$2 == "network" { print $3, $5; exit }')
|
|
47
|
+
if [ -n "${"$"}{2:-}" ]; then
|
|
48
|
+
ip=$(virsh -c "$uri" net-dumpxml "$1" 2>/dev/null | tr -d '\n' | grep -o "<host [^>]*mac=.$2[^>]*>" | sed -n "s/.*ip=.\([0-9.]*\).*/\1/p" | head -n 1)
|
|
49
|
+
[ -n "$ip" ] || ip=$(virsh -c "$uri" net-dhcp-leases "$1" --mac "$2" 2>/dev/null | awk '$4 == "ipv4" { split($5, a, "/"); print a[1]; exit }')
|
|
50
|
+
fi
|
|
51
|
+
fi
|
|
52
|
+
rdp=
|
|
53
|
+
[ "$state" = running ] && [ -n "$ip" ] && rdp=$(probe "$ip")
|
|
54
|
+
printf 'TRD_VM %s|%s|%s|%s|%s\n' "$d" "$state" "$os" "$ip" "$rdp"
|
|
55
|
+
done
|
|
56
|
+
done
|
|
57
|
+
`;
|
|
58
|
+
/** The host's VMs that have (or, being off, may have) a desktop: running ones whose RDP answers, and Windows ones that are off. */
|
|
59
|
+
async function scanVMs(target) {
|
|
60
|
+
const out = await target.exec('sh -s', SCAN_SCRIPT);
|
|
61
|
+
const found = [];
|
|
62
|
+
for (const line of out.split('\n')) {
|
|
63
|
+
const m = /^TRD_VM ([^|]+)\|([^|]*)\|([^|]*)\|([^|]*)\|(\d*)\s*$/.exec(line.trim());
|
|
64
|
+
if (!m) {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
const [, name, state, os, address, protocol] = m;
|
|
68
|
+
const windows = /microsoft\.com\/win/i.test(os);
|
|
69
|
+
// Windows: RDP answering, or off (started when opened). Others: only xrdp (see XRDP_LIKE).
|
|
70
|
+
const rdp = windows ? protocol !== '' : protocol === XRDP_LIKE;
|
|
71
|
+
const vm = { name, state: state === 'running' ? 'running' : 'off', windows, address, rdp };
|
|
72
|
+
if (vm.address && (vm.rdp || vm.state === 'off' && vm.windows) && !found.some(f => f.name === vm.name)) {
|
|
73
|
+
found.push(vm);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return found;
|
|
77
|
+
}
|
|
78
|
+
/** A found VM as a desktop behind its host: started by name when it's off (see wake.ts). */
|
|
79
|
+
function vmSpec(vm) {
|
|
80
|
+
return {
|
|
81
|
+
id: `${vm.address}:3389`,
|
|
82
|
+
name: vm.name,
|
|
83
|
+
kind: vm.windows ? 'windows' : 'xrdp',
|
|
84
|
+
host: vm.address,
|
|
85
|
+
port: 3389,
|
|
86
|
+
wake: { vm: vm.name },
|
|
87
|
+
found: vm.state,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=vms.js.map
|
package/dist/vms.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vms.js","sourceRoot":"","sources":["../src/vms.ts"],"names":[],"mappings":";;AAuEA,0BAkBC;AAGD,wBAUC;AAvFD;;;;GAIG;AACH,MAAM,SAAS,GAAG,GAAG,CAAA;AAErB,qFAAqF;AACrF,iHAAiH;AACjH,iHAAiH;AACjH,6GAA6G;AAC7G,8CAA8C;AAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA+BP,GAAG;;;;;;;;;;CAUzB,CAAA;AAED,mIAAmI;AAC5H,KAAK,UAAU,OAAO,CAAE,MAAoB;IAC/C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IACnD,MAAM,KAAK,GAAc,EAAE,CAAA;IAC3B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,uDAAuD,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACnF,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,SAAQ;QACZ,CAAC;QACD,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC/C,2FAA2F;QAC3F,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAA;QAC9D,MAAM,EAAE,GAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAA;QACnG,IAAI,EAAE,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACrG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,4FAA4F;AAC5F,SAAgB,MAAM,CAAE,EAAW;IAC/B,OAAO;QACH,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,OAAO;QACxB,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;QACrC,IAAI,EAAE,EAAE,CAAC,OAAO;QAChB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE;QACrB,KAAK,EAAE,EAAE,CAAC,KAAK;KAClB,CAAA;AACL,CAAC"}
|
package/dist/wake.js
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseWake = parseWake;
|
|
4
|
+
exports.wakeFromText = wakeFromText;
|
|
5
|
+
exports.rdpAnswers = rdpAnswers;
|
|
6
|
+
exports.wakeDesktop = wakeDesktop;
|
|
7
|
+
exports.waitForRdp = waitForRdp;
|
|
8
|
+
const deskScript_1 = require("./deskScript");
|
|
9
|
+
const MAC = /^[0-9a-f]{2}([:-]?)[0-9a-f]{2}(\1[0-9a-f]{2}){4}$/i;
|
|
10
|
+
const IPV4 = /^\d{1,3}(\.\d{1,3}){3}$/;
|
|
11
|
+
/** A `wake` config value, checked; undefined when absent or unusable. */
|
|
12
|
+
function parseWake(raw) {
|
|
13
|
+
if (typeof raw?.vm === 'string' && raw.vm.trim()) {
|
|
14
|
+
return { vm: raw.vm.trim() };
|
|
15
|
+
}
|
|
16
|
+
const mac = typeof raw?.mac === 'string' ? raw.mac.trim() : '';
|
|
17
|
+
if (MAC.test(mac)) {
|
|
18
|
+
const port = Number(raw.port ?? 9);
|
|
19
|
+
return {
|
|
20
|
+
mac,
|
|
21
|
+
...typeof raw.broadcast === 'string' && IPV4.test(raw.broadcast.trim()) ? { broadcast: raw.broadcast.trim() } : {},
|
|
22
|
+
...Number.isInteger(port) && port > 0 && port < 65536 && port !== 9 ? { port } : {},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
/** The add-desktop form's wake field: a MAC address means Wake-on-LAN, anything else names a libvirt VM. */
|
|
28
|
+
function wakeFromText(text) {
|
|
29
|
+
const value = text.trim();
|
|
30
|
+
return !value ? undefined : MAC.test(value) ? { mac: value } : { vm: value };
|
|
31
|
+
}
|
|
32
|
+
// Whether an RDP server answers at $H:$P, as seen from the SSH host: an X.224 connection request must get a TPKT
|
|
33
|
+
// reply, since a port can accept connections before the server behind it does (QEMU's user-mode port forwarding,
|
|
34
|
+
// for one). Without python3, an open TCP port will do.
|
|
35
|
+
const PROBE_SCRIPT = String.raw `
|
|
36
|
+
if command -v python3 >/dev/null 2>&1; then
|
|
37
|
+
python3 -c '
|
|
38
|
+
import socket, sys
|
|
39
|
+
try:
|
|
40
|
+
s = socket.create_connection((sys.argv[1], int(sys.argv[2])), 3)
|
|
41
|
+
s.settimeout(3)
|
|
42
|
+
s.sendall(bytes.fromhex("030000130ee000000000000100080003000000"))
|
|
43
|
+
print("RD_OPEN" if s.recv(2) == b"\x03\x00" else "RD_CLOSED")
|
|
44
|
+
except Exception:
|
|
45
|
+
print("RD_CLOSED")
|
|
46
|
+
' "$H" "$P"
|
|
47
|
+
elif command -v nc >/dev/null 2>&1; then
|
|
48
|
+
nc -z -w 3 "$H" "$P" >/dev/null 2>&1 && echo RD_OPEN || echo RD_CLOSED
|
|
49
|
+
else
|
|
50
|
+
timeout 3 bash -c 'exec 3<>"/dev/tcp/$0/$1"' "$H" "$P" >/dev/null 2>&1 && echo RD_OPEN || echo RD_CLOSED
|
|
51
|
+
fi
|
|
52
|
+
`;
|
|
53
|
+
// Starts (or resumes) the libvirt domain $VM as the SSH user: the system instance first, where VMs usually are
|
|
54
|
+
// (needs the libvirt group or polkit), then the user's own session instance.
|
|
55
|
+
const VM_SCRIPT = String.raw `
|
|
56
|
+
command -v virsh >/dev/null 2>&1 || { echo "RD_ERR virsh is not installed on the SSH host"; exit 0; }
|
|
57
|
+
errors=""
|
|
58
|
+
for uri in qemu:///system qemu:///session; do
|
|
59
|
+
if ! state=$(virsh -c "$uri" domstate "$VM" 2>&1); then
|
|
60
|
+
errors="$errors${"$"}{errors:+; }$uri: $(printf '%s' "$state" | tr '\n' ' ' | sed 's/^error: //' | cut -c1-160)"
|
|
61
|
+
continue
|
|
62
|
+
fi
|
|
63
|
+
case $(printf '%s\n' "$state" | head -n 1) in
|
|
64
|
+
running) echo "RD_OK $VM is already running ($uri)"; exit 0 ;;
|
|
65
|
+
paused) how=resumed; out=$(virsh -c "$uri" resume "$VM" 2>&1) ;;
|
|
66
|
+
pmsuspended) how="woken up"; out=$(virsh -c "$uri" dompmwakeup "$VM" 2>&1) ;;
|
|
67
|
+
*) how=started; out=$(virsh -c "$uri" start "$VM" 2>&1) ;;
|
|
68
|
+
esac && { echo "RD_OK $VM $how ($uri)"; exit 0; }
|
|
69
|
+
echo "RD_ERR virsh: $(printf '%s' "$out" | tr '\n' ' ' | sed 's/^error: //' | cut -c1-240)"
|
|
70
|
+
exit 0
|
|
71
|
+
done
|
|
72
|
+
echo "RD_ERR no libvirt VM named $VM for this user ($errors)"
|
|
73
|
+
`;
|
|
74
|
+
// A Wake-on-LAN magic packet ($MAC 16 times after 6 bytes of 0xff) to $BCAST:$PORT, with the standard library.
|
|
75
|
+
const WOL_SCRIPT = String.raw `
|
|
76
|
+
command -v python3 >/dev/null 2>&1 || { echo "RD_ERR sending Wake-on-LAN needs python3 on the SSH host"; exit 0; }
|
|
77
|
+
python3 -c '
|
|
78
|
+
import socket, sys
|
|
79
|
+
mac = bytes.fromhex(sys.argv[1].replace(":", "").replace("-", ""))
|
|
80
|
+
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
81
|
+
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
|
|
82
|
+
s.sendto(b"\xff" * 6 + mac * 16, (sys.argv[2], int(sys.argv[3])))
|
|
83
|
+
print("RD_OK Wake-on-LAN sent to %s via %s:%s" % tuple(sys.argv[1:4]))
|
|
84
|
+
' "$MAC" "$BCAST" "$PORT" 2>&1 || echo "RD_ERR could not send the Wake-on-LAN packet"
|
|
85
|
+
`;
|
|
86
|
+
/** Whether the RDP server at host:port answers, as seen from the SSH host. */
|
|
87
|
+
async function rdpAnswers(target, host, port) {
|
|
88
|
+
const out = await target.exec('sh -s', `H=${(0, deskScript_1.shq)(host)}\nP=${port}\n${PROBE_SCRIPT}`);
|
|
89
|
+
return /^RD_OPEN$/m.test(out);
|
|
90
|
+
}
|
|
91
|
+
/** Starts the desktop as `wake` says. Resolves with what was done; throws with the reason when it couldn't. */
|
|
92
|
+
async function wakeDesktop(target, wake) {
|
|
93
|
+
const script = 'vm' in wake
|
|
94
|
+
? `VM=${(0, deskScript_1.shq)(wake.vm)}\n${VM_SCRIPT}`
|
|
95
|
+
: `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}`;
|
|
96
|
+
const out = await target.exec('sh -s', script);
|
|
97
|
+
const err = /^RD_ERR (.*)$/m.exec(out);
|
|
98
|
+
if (err) {
|
|
99
|
+
throw new Error(err[1].trim());
|
|
100
|
+
}
|
|
101
|
+
return /^RD_OK (.*)$/m.exec(out)?.[1] ?? 'no result';
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Probes until the RDP server answers (true), the time is up or `stopped()` (false). At most one probe every
|
|
105
|
+
* 3 s; `progress` is called every 5 s.
|
|
106
|
+
*/
|
|
107
|
+
async function waitForRdp(target, host, port, timeoutMs, stopped, progress) {
|
|
108
|
+
const deadline = Date.now() + timeoutMs;
|
|
109
|
+
const ticker = setInterval(() => stopped() || progress(), 5000);
|
|
110
|
+
try {
|
|
111
|
+
while (Date.now() < deadline && !stopped()) {
|
|
112
|
+
const started = Date.now();
|
|
113
|
+
if (await rdpAnswers(target, host, port).catch(() => false)) {
|
|
114
|
+
return !stopped();
|
|
115
|
+
}
|
|
116
|
+
await new Promise(resolve => setTimeout(resolve, Math.max(0, 3000 - (Date.now() - started))));
|
|
117
|
+
}
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
clearInterval(ticker);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=wake.js.map
|
package/dist/wake.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wake.js","sourceRoot":"","sources":["../src/wake.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tabby-rdp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Remote desktops in Tabby's SSH tabs: Linux (GNOME) and Windows, through the SSH connection, with clipboard, files and sound. Built on IronRDP.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tabby-plugin",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"@types/node": "^20.19.0",
|
|
50
50
|
"rxjs": "7.8.2",
|
|
51
51
|
"tabby-core": "1.0.231-nightly.0",
|
|
52
|
+
"tabby-settings": "1.0.231-nightly.0",
|
|
52
53
|
"tabby-terminal": "1.0.231-nightly.0",
|
|
53
54
|
"typescript": "~5.9.3"
|
|
54
55
|
}
|
package/vendor/IRONRDP-LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
vendor/iron-remote-desktop*.js are built from IronRDP
|
|
2
|
-
9b151c4c2e47c6014e1e8e55909d4180aa8bdb99 with the patches in
|
|
3
|
-
its MIT license follows.
|
|
1
|
+
vendor/iron-remote-desktop*.js and vendor/ironrdp_web_bg.wasm are built from IronRDP
|
|
2
|
+
(https://github.com/Devolutions/IronRDP) at commit 9b151c4c2e47c6014e1e8e55909d4180aa8bdb99 with the patches in
|
|
3
|
+
ironrdp/patches applied. IronRDP is dual-licensed under MIT or Apache-2.0; its MIT license follows.
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any
|
|
6
6
|
person obtaining a copy of this software and associated
|