tabby-rdp 0.2.7 → 0.3.1

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.
Files changed (59) hide show
  1. package/CHANGELOG.md +72 -2
  2. package/README.md +182 -21
  3. package/dist/connectionStatus.js +140 -0
  4. package/dist/connectionStatus.js.map +1 -0
  5. package/dist/desk.js +21 -10
  6. package/dist/desk.js.map +1 -1
  7. package/dist/deskScript.js +3 -0
  8. package/dist/deskScript.js.map +1 -1
  9. package/dist/desktop.service.js +994 -53
  10. package/dist/desktop.service.js.map +1 -1
  11. package/dist/desktopForm.js +64 -19
  12. package/dist/desktopForm.js.map +1 -1
  13. package/dist/desktops.js +60 -21
  14. package/dist/desktops.js.map +1 -1
  15. package/dist/fileTransfer.js +152 -5
  16. package/dist/fileTransfer.js.map +1 -1
  17. package/dist/header.js +22 -7
  18. package/dist/header.js.map +1 -1
  19. package/dist/help.js +241 -0
  20. package/dist/help.js.map +1 -0
  21. package/dist/index.js +16 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/keyboard.js +142 -5
  24. package/dist/keyboard.js.map +1 -1
  25. package/dist/microphone.js +295 -0
  26. package/dist/microphone.js.map +1 -0
  27. package/dist/osd.js +79 -0
  28. package/dist/osd.js.map +1 -0
  29. package/dist/probe.js +33 -0
  30. package/dist/probe.js.map +1 -0
  31. package/dist/rdcleanpath.js +132 -7
  32. package/dist/rdcleanpath.js.map +1 -1
  33. package/dist/rdpFile.js +47 -0
  34. package/dist/rdpFile.js.map +1 -0
  35. package/dist/rdpProfile.js +367 -0
  36. package/dist/rdpProfile.js.map +1 -0
  37. package/dist/remoteSetup.js +90 -11
  38. package/dist/remoteSetup.js.map +1 -1
  39. package/dist/settingsPage.js +554 -0
  40. package/dist/settingsPage.js.map +1 -0
  41. package/dist/signin.js +21 -2
  42. package/dist/signin.js.map +1 -1
  43. package/dist/ssh.js +28 -0
  44. package/dist/ssh.js.map +1 -1
  45. package/dist/targets.js +148 -8
  46. package/dist/targets.js.map +1 -1
  47. package/dist/ui.js +163 -24
  48. package/dist/ui.js.map +1 -1
  49. package/dist/updates.js +123 -0
  50. package/dist/updates.js.map +1 -0
  51. package/dist/vms.js +90 -0
  52. package/dist/vms.js.map +1 -0
  53. package/dist/wake.js +124 -0
  54. package/dist/wake.js.map +1 -0
  55. package/package.json +2 -1
  56. package/vendor/IRONRDP-LICENSE +3 -3
  57. package/vendor/iron-remote-desktop-rdp.js +698 -451
  58. package/vendor/iron-remote-desktop.js +87 -81
  59. package/vendor/ironrdp_web_bg.wasm +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"signin.js","sourceRoot":"","sources":["../src/signin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signin.js","sourceRoot":"","sources":["../src/signin.ts"],"names":[],"mappings":";;;AAyCA,0CAQC;AAED,0CAEC;AAED,8CAIC;AAQD,oDASC;AAGD,gDAUC;AAgBD,wCAqDC;AA9JD,iHAAiH;AACjH,yCAAuC;AAOvC,MAAM,gBAAgB,GAAG,WAAW,CAAA;AAEpC,sHAAsH;AACtH,mHAAmH;AACnH,kHAAkH;AAClH,MAAM,mBAAmB,GAAG,KAAK,CAAA;AACjC,IAAI,aAAa,GAAG,KAAK,CAAA;AAEzB,iGAAiG;AACjG,SAAS,MAAM;IACX,IAAI,aAAa,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IAC1D,CAAC;IACD,IAAI,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC5B,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAA;IACf,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAK,IAA4B;IAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC1B,aAAa,GAAG,IAAI,CAAA;YACpB,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAA;QACpD,CAAC,EAAE,mBAAmB,CAAC,CAAA;QACvB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CACtB,KAAK,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,EAChD,KAAK,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;AACN,CAAC;AAED,2EAA2E;AACpE,KAAK,UAAU,eAAe,CAAE,GAAW;IAC9C,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAgB,MAAM,EAAE,EAAE,WAAW,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAA;QACzF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC/C,OAAO,MAAM,EAAE,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IACpI,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAA;IACf,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,eAAe,CAAE,GAAW,EAAE,WAAwB;IACxE,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,gBAAgB,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;AAC7F,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAE,GAAW;IAChD,IAAI,CAAC;QACD,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAA;IACnE,CAAC;IAAC,MAAM,CAAC,CAAC,CAAC;AACf,CAAC;AAED,oHAAoH;AACpH,SAAS,YAAY,CAAE,OAAe,EAAE,SAAiB;IACrD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,qBAAU,GAAG,CAAC,CAAA;AACrF,CAAC;AAED,6FAA6F;AACtF,KAAK,UAAU,oBAAoB,CAAE,SAAiB;IACzD,IAAI,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,EAAE,CAAA;QAClB,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,MAAM,QAAQ,CAAwB,CAAC,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1G,IAAI,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;gBACnC,MAAM,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAA;YAC/D,CAAC;QACL,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAC,CAAC;AACf,CAAC;AAED,kHAAkH;AAC3G,KAAK,UAAU,kBAAkB,CAAE,MAAc,EAAE,IAAY;IAClE,IAAI,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,EAAE,CAAA;QAClB,KAAK,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,MAAM,QAAQ,CAA0C,CAAC,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACtI,IAAI,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;gBAChC,MAAM,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,gBAAgB,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAA;gBACvG,MAAM,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAA;YAC/D,CAAC;QACL,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAC,CAAC;AACf,CAAC;AAEY,QAAA,KAAK,GAAG;;;;;;;;CAQpB,CAAA;AAED;;;GAGG;AACH,SAAgB,cAAc,CAC1B,KAAkB,EAClB,OAAmF,EACnF,KAAoB;IAEpB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IACzC,GAAG,CAAC,SAAS,GAAG,YAAY,CAAA;IAC5B,GAAG,CAAC,SAAS,GAAG;;;;;;;;;;;gBAWJ,CAAA;IACZ,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAE,CAAA;IACvC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI,IAAI,CAAqB,CAAA;IAC1F,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAE,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAA;IACnE,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAE,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;IACzE,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAA;IAChD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACvB,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,GAAG,KAAK,CAAA;QACjC,IAAI,CAAC,aAAa,CAAc,sBAAsB,CAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;IACnF,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACtB,kGAAkG;IAElG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QACzB,MAAM,IAAI,GAAG,CAAC,MAAoD,EAAE,EAAE;YAClE,GAAG,CAAC,MAAM,EAAE,CAAA;YACZ,OAAO,CAAC,MAAM,CAAC,CAAA;QACnB,CAAC,CAAA;QACD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;YACpC,KAAK,CAAC,cAAc,EAAE,CAAA;YACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;YAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAA;gBACzB,OAAM;YACV,CAAC;YACD,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9F,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAC3D,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YACrC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,CAAA;YACd,CAAC;QACL,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;AACN,CAAC"}
package/dist/ssh.js CHANGED
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isSSHTab = isSSHTab;
4
4
  exports.isConnected = isConnected;
5
5
  exports.openTcpStream = openTcpStream;
6
+ exports.execStream = execStream;
7
+ exports.pingRemote = pingRemote;
6
8
  exports.execRemote = execRemote;
7
9
  const sshChannelStream_1 = require("./sshChannelStream");
8
10
  function isSSHTab(tab) {
@@ -50,6 +52,32 @@ async function openTcpStream(tab, host, port) {
50
52
  stream.once('close', () => gone?.unsubscribe());
51
53
  return stream;
52
54
  }
55
+ /**
56
+ * A command on the remote whose stdin and stdout are the stream (a session channel, no PTY): e.g. `ssh -W` run there,
57
+ * for a tunnel that goes on from the remote. Its stderr is not part of it.
58
+ */
59
+ async function execStream(tab, command) {
60
+ const ssh = client(tab);
61
+ const session = tab.sshSession;
62
+ const channel = await ssh.activateChannel(await ssh.openSessionChannel());
63
+ const stream = new sshChannelStream_1.SSHChannelStream(channel);
64
+ await channel.requestExec(command);
65
+ const gone = session?.willDestroy$?.subscribe(() => stream.destroy(new Error('the SSH connection closed')));
66
+ stream.once('close', () => gone?.unsubscribe());
67
+ return stream;
68
+ }
69
+ /**
70
+ * One round trip to the SSH server: opening a session channel waits for the server's confirmation, and nothing
71
+ * runs on the remote until a command is requested on it, so this costs next to nothing there.
72
+ */
73
+ async function pingRemote(tab) {
74
+ const ssh = client(tab);
75
+ const started = performance.now();
76
+ const channel = await ssh.openSessionChannel();
77
+ const ms = performance.now() - started;
78
+ ssh.activateChannel(channel).then((c) => c.close()).catch(() => null);
79
+ return ms;
80
+ }
53
81
  // Printed after a command's output, so that execRemote knows all of it arrived.
54
82
  const END = '__trd_exec_end__';
55
83
  /**
package/dist/ssh.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../src/ssh.ts"],"names":[],"mappings":";;AAcA,4BAGC;AAOD,kCAYC;AAWD,sCAeC;AAqBD,gCA6BC;AA9GD,yDAAqD;AAYrD,SAAgB,QAAQ,CAAE,GAAwC;IAC9D,gFAAgF;IAChF,OAAQ,GAAqB,EAAE,OAAO,EAAE,IAAI,KAAK,KAAK,IAAI,CAAC,CAAE,GAAc,CAAC,OAAO,EAAE,aAAa,CAAA;AACtG,CAAC;AAED,kHAAkH;AAClH,MAAM,SAAS,GAAG,IAAI,OAAO,EAAU,CAAA;AACvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAU,CAAA;AAErC,0EAA0E;AAC1E,SAAgB,WAAW,CAAE,GAAW;IACpC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAA;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,KAAK,CAAA;IAChB,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACpB,+EAA+E;QAC/E,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACzC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACnE,CAAC;IACD,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AACpD,CAAC;AAED,SAAS,MAAM,CAAE,GAAW;IACxB,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,CAAA;IAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,EAAE,qBAAqB,KAAK,UAAU,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACrD,CAAC;IACD,OAAO,GAAG,CAAA;AACd,CAAC;AAED,4GAA4G;AACrG,KAAK,UAAU,aAAa,CAAE,GAAW,EAAE,IAAY,EAAE,IAAY;IACxE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACvB,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAA;IAC9B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,qBAAqB,CAAC;QACtE,kBAAkB,EAAE,IAAI;QACxB,eAAe,EAAE,IAAI;QACrB,iBAAiB,EAAE,WAAW;QAC9B,cAAc,EAAE,CAAC;KACpB,CAAC,CAAC,CAAA;IACH,MAAM,MAAM,GAAG,IAAI,mCAAgB,CAAC,OAAO,CAAC,CAAA;IAC5C,4GAA4G;IAC5G,mEAAmE;IACnE,MAAM,IAAI,GAAG,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAA;IAC3G,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;IAC/C,OAAO,MAAM,CAAA;AACjB,CAAC;AAED,gFAAgF;AAChF,MAAM,GAAG,GAAG,kBAAkB,CAAA;AAE9B;;;;;GAKG;AACH,SAAS,aAAa,CAAE,GAAQ,EAAE,EAAW,EAAE,GAAa;IACxD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,CAAA;IAC9B,IAAI,OAAO,IAAI,EAAE,SAAS,KAAK,UAAU,EAAE,CAAC;QACxC,OAAM;IACV,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IACvF,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAA;AAC3B,CAAC;AAED,mHAAmH;AAC5G,KAAK,UAAU,UAAU,CAAE,GAAW,EAAE,OAAe,EAAE,KAAK,GAAG,EAAE,EAAE,SAAS,GAAG,KAAK;IACzF,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACvB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAA;IACzE,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACvF,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACpE,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,UAAU,GAAG,EAAE,CAAC,CAAA;IACpD,IAAI,KAAK,EAAE,CAAC;QACR,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3D,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,EAAE,CAAA;IACnB,IAAI,KAAiC,CAAA;IACrC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QAC7C,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACjH,CAAC,CAAC,CAAA;IACF,IAAI,CAAC;QACD,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACzC,CAAC;YAAS,CAAC;QACP,YAAY,CAAC,KAAK,CAAC,CAAA;QACnB,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;QACrD,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACvC,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,EAAE,CAAA;IACrB,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACnC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAClD,CAAC"}
1
+ {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../src/ssh.ts"],"names":[],"mappings":"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"}
package/dist/targets.js CHANGED
@@ -6,22 +6,35 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.RemoteTargets = void 0;
9
+ exports.RemoteTargets = exports.RDP_PROFILE_TYPE = void 0;
10
+ exports.isRDPTab = isRDPTab;
10
11
  exports.desktopPaneOf = desktopPaneOf;
11
12
  exports.parseSSHCommand = parseSSHCommand;
12
13
  const core_1 = require("@angular/core");
13
14
  const child_process_1 = require("child_process");
15
+ const net = require("net");
14
16
  const stream_1 = require("stream");
15
17
  const tabby_core_1 = require("tabby-core");
18
+ const desktops_1 = require("./desktops");
19
+ const desktopForm_1 = require("./desktopForm");
20
+ const deskScript_1 = require("./deskScript");
21
+ const probe_1 = require("./probe");
16
22
  const ssh_1 = require("./ssh");
23
+ /** Tabby profile type of remote desktop tabs (see rdpProfile.ts). */
24
+ exports.RDP_PROFILE_TYPE = 'rdp';
17
25
  function isLocalTerminal(tab) {
18
26
  const t = tab;
19
27
  return t?.profile?.type === 'local' && !!t.element?.nativeElement && typeof t.session?.getChildProcesses === 'function';
20
28
  }
29
+ /** A remote desktop tab (RDP profile, connecting directly): the desktop fills it, there is no terminal under it. */
30
+ function isRDPTab(tab) {
31
+ const t = tab;
32
+ return t?.profile?.type === exports.RDP_PROFILE_TYPE && !!t.element?.nativeElement;
33
+ }
21
34
  /** The pane a tab or tab-header action refers to: the pane itself, or a split's focused pane. */
22
35
  function desktopPaneOf(tab) {
23
36
  const pane = tab instanceof tabby_core_1.SplitTabComponent ? tab.getFocusedTab() : tab;
24
- return (0, ssh_1.isSSHTab)(pane) || isLocalTerminal(pane) ? pane : null;
37
+ return (0, ssh_1.isSSHTab)(pane) || isLocalTerminal(pane) || isRDPTab(pane) ? pane : null;
25
38
  }
26
39
  // ---- system ssh --------------------------------------------------------------------------------
27
40
  function run(file, args, timeoutMs = 10000) {
@@ -77,12 +90,15 @@ function parseSSHCommand(tokens) {
77
90
  const destination = tokens[i];
78
91
  return destination ? { options, destination } : null;
79
92
  }
80
- /** `user@hostname:port` as ssh itself resolves it (config aliases, defaults). */
81
- async function resolveKey(options, destination) {
82
- const out = await run('ssh', [...options, '-G', destination]);
93
+ /** `user@hostname:port` from `ssh -G` output (config aliases, defaults resolved). */
94
+ function keyFromConfig(out, destination) {
83
95
  const get = (k) => new RegExp(`^${k} (.+)$`, 'm').exec(out)?.[1]?.trim();
84
96
  return `${get('user') ?? ''}@${(get('hostname') ?? destination).toLowerCase()}:${get('port') ?? '22'}`;
85
97
  }
98
+ /** `user@hostname:port` as ssh itself resolves it (config aliases, defaults). */
99
+ async function resolveKey(options, destination) {
100
+ return keyFromConfig(await run('ssh', [...options, '-G', destination]), destination);
101
+ }
86
102
  /** A target reached with the system `ssh`, non-interactively (keys/agent/control master only). */
87
103
  class SystemSSHTarget {
88
104
  constructor(key, label, cmd) {
@@ -137,17 +153,100 @@ function sshFailure(label, stderr, code) {
137
153
  }
138
154
  // ---- Tabby SSH tabs ----------------------------------------------------------------------------
139
155
  class TabbySSHTarget {
140
- constructor(key, label, tab) {
156
+ constructor(key, label, tab, hostname) {
141
157
  this.key = key;
142
158
  this.label = label;
143
159
  this.tab = tab;
160
+ this.hostname = hostname;
144
161
  }
145
162
  openTcp(host, port) { return (0, ssh_1.openTcpStream)(this.tab, host, port); }
146
163
  exec(command, stdin) { return (0, ssh_1.execRemote)(this.tab, command, stdin); }
147
164
  isOpen() { return (0, ssh_1.isConnected)(this.tab); }
165
+ ping() { return (0, ssh_1.pingRemote)(this.tab); }
166
+ execStream(command) { return (0, ssh_1.execStream)(this.tab, command); }
148
167
  get reconnectSSH() {
149
168
  return typeof this.tab.reconnect === 'function' ? () => this.tab.reconnect() : undefined;
150
169
  }
170
+ get profileId() { return this.tab.profile?.id; }
171
+ }
172
+ /**
173
+ * Remote script: the user's `ssh` clients in the foreground of a terminal, one `TRD_SSH <n>|<tty>|<args>` line each, the
174
+ * arguments separated by \037 (from /proc where there is one, so that quoted ones stay whole). Each one's terminal gets a
175
+ * probe, `$PROBE-<n>` (see probe.ts), which shows which Tabby pane that terminal is.
176
+ */
177
+ const nestedSSHScript = (probe) => `PROBE=${(0, deskScript_1.shq)(probe)}\n` + String.raw `
178
+ n=0
179
+ for p in $(pgrep -u "$(id -u)" -x ssh 2>/dev/null); do
180
+ set -- $(ps -o tty= -o stat= -p "$p" 2>/dev/null)
181
+ case "$1:$2" in ?*:*+*) ;; *) continue ;; esac
182
+ [ "$1" = "?" ] && continue
183
+ n=$((n + 1))
184
+ if [ -r "/proc/$p/cmdline" ]; then args=$(tr '\000' '\037' < "/proc/$p/cmdline"); else args=$(ps -o args= -p "$p" | tr ' ' '\037'); fi
185
+ printf 'TRD_SSH %s|%s|%s\n' "$n" "$1" "$args"
186
+ printf '\033]7777;probe;%s-%s\007' "$PROBE" "$n" > "/dev/$1" 2>/dev/null || true
187
+ done
188
+ `;
189
+ /**
190
+ * A machine reached from an SSH tab's host with the `ssh` typed there: each command and tunnel runs that host's own
191
+ * ssh, non-interactively (its keys, or a forwarded agent). Like SystemSSHTarget, one hop further.
192
+ */
193
+ class NestedSSHTarget {
194
+ constructor(key, label, outer, cmd) {
195
+ this.key = key;
196
+ this.label = label;
197
+ this.outer = outer;
198
+ this.cmd = cmd;
199
+ }
200
+ get via() { return this.outer.label; }
201
+ ssh(...extra) {
202
+ return ['ssh', ...this.cmd.options, '-o', 'BatchMode=yes', '-o', 'ConnectTimeout=15', ...extra, this.cmd.destination].map(deskScript_1.shq).join(' ');
203
+ }
204
+ openTcp(host, port) {
205
+ return this.outer.execStream(`exec ${this.ssh('-o', 'ExitOnForwardFailure=yes', '-W', `${host.includes(':') ? `[${host}]` : host}:${port}`)} 2>/dev/null`);
206
+ }
207
+ async exec(command, stdin) {
208
+ // ssh's exit status and last error line come after the output, so a failed login says why.
209
+ const out = await this.outer.exec(`e=$(mktemp); ${this.ssh('-T')} ${(0, deskScript_1.shq)(command)} 2>"$e"; r=$?; ` +
210
+ `printf '\n__trd_hop %s %s\n' "$r" "$(tail -n 1 "$e")"; rm -f "$e"`, stdin);
211
+ const m = /\n__trd_hop (\d+) ?(.*)\n?$/.exec(out);
212
+ if (m?.[1] === '255') {
213
+ throw new Error(/permission denied|password|keyboard-interactive|host key/i.test(m[2])
214
+ ? `${this.outer.label} couldn't log in to ${this.label} by itself (${m[2].trim()}). The desktop goes through ${this.outer.label}'s own ssh, which needs a key for ${this.label} there, or agent forwarding.`
215
+ : `ssh from ${this.outer.label} to ${this.label} failed${m[2] ? `: ${m[2].trim()}` : ''}`);
216
+ }
217
+ return m ? out.slice(0, m.index) : out;
218
+ }
219
+ isOpen() { return this.outer.isOpen(); }
220
+ ping() { return this.outer.ping(); }
221
+ }
222
+ // ---- direct connections ------------------------------------------------------------------------
223
+ /** A remote desktop tab's RDP server, reached with a plain TCP connection from this computer (LAN, VPN). */
224
+ class DirectTarget {
225
+ constructor(label, direct) {
226
+ this.label = label;
227
+ this.direct = direct;
228
+ this.key = desktops_1.DIRECT_KEY;
229
+ }
230
+ openTcp(host, port) {
231
+ return new Promise((resolve, reject) => {
232
+ const socket = net.connect({ host, port });
233
+ const timer = setTimeout(() => socket.destroy(new Error(`${(0, desktopForm_1.formatAddress)(host, port)} did not answer`)), 15000);
234
+ socket.once('connect', () => {
235
+ clearTimeout(timer);
236
+ socket.setNoDelay(true);
237
+ // Notices a dead peer (sleep, a dropped VPN) where the SSH path has the SSH connection's keepalive.
238
+ socket.setKeepAlive(true, 10000);
239
+ resolve(socket);
240
+ });
241
+ socket.once('error', e => {
242
+ clearTimeout(timer);
243
+ reject(e);
244
+ });
245
+ });
246
+ }
247
+ exec() { return Promise.reject(new Error('A direct connection runs no commands')); }
248
+ // Each connection is its own socket; there is nothing to wait for between them.
249
+ isOpen() { return true; }
151
250
  }
152
251
  // ---- detection ---------------------------------------------------------------------------------
153
252
  /**
@@ -167,10 +266,19 @@ let RemoteTargets = class RemoteTargets {
167
266
  let target = null;
168
267
  let pid;
169
268
  try {
170
- if ((0, ssh_1.isSSHTab)(pane)) {
269
+ if (isRDPTab(pane)) {
270
+ // Made afresh each time (it holds no state), so that an edited profile applies on the next connection.
271
+ const profile = pane.profile;
272
+ // No `wake` for a direct one: starting a machine takes an SSH host to do it from.
273
+ const spec = (0, desktops_1.specOf)({ ...profile.options, name: profile.name, wake: undefined });
274
+ target = spec && new DirectTarget((0, desktopForm_1.formatAddress)(spec.host, spec.port), spec);
275
+ }
276
+ else if ((0, ssh_1.isSSHTab)(pane)) {
171
277
  const o = pane.profile?.options ?? {};
172
278
  const known = this.cache.get(pane)?.target;
173
- target = known ?? new TabbySSHTarget(await this.key(['-l', o.user ?? '', '-p', String(o.port ?? 22)], o.host ?? ''), o.host ?? 'remote', pane);
279
+ // Named as its profile is (Tabby's imports end in "(.ssh/config)"), else by its address.
280
+ const named = (pane.profile?.name ?? '').replace(/\s*\(\.ssh\/config\)$/, '').trim();
281
+ target = known ?? new TabbySSHTarget(await this.key(['-l', o.user ?? '', '-p', String(o.port ?? 22)], o.host ?? ''), named || o.host || 'remote', pane, o.host || undefined);
174
282
  }
175
283
  else {
176
284
  const found = await this.localSSH(pane);
@@ -190,6 +298,38 @@ let RemoteTargets = class RemoteTargets {
190
298
  this.cache.set(pane, { target, pid });
191
299
  return target;
192
300
  }
301
+ /**
302
+ * `ssh` clients typed at a prompt in this pane, on its SSH tab's host: only those whose terminal there is this pane's
303
+ * (see probe.ts), since other panes and tabs can be on the same host. Empty elsewhere.
304
+ */
305
+ async nestedSSH(pane) {
306
+ const outer = await this.targetOf(pane);
307
+ if (!(outer instanceof TabbySSHTarget)) {
308
+ return [];
309
+ }
310
+ const probe = `trd${Math.random().toString(36).slice(2, 10)}`;
311
+ const { result: out, ids } = await (0, probe_1.probesIn)(pane, probe, () => outer.exec('sh -s', nestedSSHScript(probe)));
312
+ const found = [];
313
+ for (const line of out.split('\n')) {
314
+ const m = /^TRD_SSH (\d+)\|([^|]*)\|(.*)$/.exec(line.trim());
315
+ const args = m?.[3].split('\x1f').filter(Boolean) ?? [];
316
+ const cmd = /(^|\/)ssh$/.test(args[0] ?? '') ? parseSSHCommand(args.slice(1)) : null;
317
+ if (m && cmd && ids.has(`${probe}-${m[1]}`)) {
318
+ found.push({ cmd, tty: m[2] });
319
+ }
320
+ }
321
+ // One per destination.
322
+ return found.filter((f, i, all) => all.findIndex(g => g.cmd.destination === f.cmd.destination) === i);
323
+ }
324
+ /** A target for an `ssh` found by nestedSSH(), going through the pane's SSH connection. */
325
+ async nestedTarget(pane, nested) {
326
+ const outer = await this.targetOf(pane);
327
+ if (!(outer instanceof TabbySSHTarget)) {
328
+ return null;
329
+ }
330
+ const config = await outer.exec(`${['ssh', ...nested.cmd.options, '-G', nested.cmd.destination].map(deskScript_1.shq).join(' ')} 2>/dev/null`, '');
331
+ return new NestedSSHTarget(keyFromConfig(config, nested.cmd.destination), nested.cmd.destination, outer, nested.cmd);
332
+ }
193
333
  key(options, destination) {
194
334
  const id = JSON.stringify([options, destination]);
195
335
  let key = this.keys.get(id);
@@ -1 +1 @@
1
- {"version":3,"file":"targets.js","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"targets.js","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"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"}