ssh_tunnel_proxy 2.1.3 → 3.0.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.
Files changed (109) hide show
  1. package/LICENSE +19 -3
  2. package/MIGRATION.md +227 -0
  3. package/README.md +360 -212
  4. package/build/bridge.d.ts +14 -0
  5. package/build/bridge.d.ts.map +1 -0
  6. package/build/bridge.js +12 -0
  7. package/build/bridge.js.map +1 -0
  8. package/build/connection.d.ts +60 -0
  9. package/build/connection.d.ts.map +1 -0
  10. package/build/connection.js +198 -0
  11. package/build/connection.js.map +1 -0
  12. package/build/credentials.d.ts +24 -0
  13. package/build/credentials.d.ts.map +1 -0
  14. package/build/credentials.js +102 -0
  15. package/build/credentials.js.map +1 -0
  16. package/build/errors.d.ts +19 -0
  17. package/build/errors.d.ts.map +1 -0
  18. package/build/errors.js +64 -0
  19. package/build/errors.js.map +1 -0
  20. package/build/forward-spec.d.ts +34 -0
  21. package/build/forward-spec.d.ts.map +1 -0
  22. package/build/forward-spec.js +175 -0
  23. package/build/forward-spec.js.map +1 -0
  24. package/build/index.d.ts +19 -0
  25. package/build/index.d.ts.map +1 -0
  26. package/build/index.js +71 -0
  27. package/build/index.js.map +1 -0
  28. package/build/legacy.d.ts +70 -0
  29. package/build/legacy.d.ts.map +1 -0
  30. package/build/legacy.js +188 -0
  31. package/build/legacy.js.map +1 -0
  32. package/build/local-forward.d.ts +31 -0
  33. package/build/local-forward.d.ts.map +1 -0
  34. package/build/local-forward.js +231 -0
  35. package/build/local-forward.js.map +1 -0
  36. package/build/model.d.ts +126 -0
  37. package/build/model.d.ts.map +1 -0
  38. package/build/model.js +55 -0
  39. package/build/model.js.map +1 -0
  40. package/build/port-policy.d.ts +43 -0
  41. package/build/port-policy.d.ts.map +1 -0
  42. package/build/port-policy.js +138 -0
  43. package/build/port-policy.js.map +1 -0
  44. package/build/remote-forward.d.ts +40 -0
  45. package/build/remote-forward.d.ts.map +1 -0
  46. package/build/remote-forward.js +226 -0
  47. package/build/remote-forward.js.map +1 -0
  48. package/build/tunnel.d.ts +121 -0
  49. package/build/tunnel.d.ts.map +1 -0
  50. package/build/tunnel.js +599 -0
  51. package/build/tunnel.js.map +1 -0
  52. package/examples/config.example.json +86 -0
  53. package/examples/setup_ssh.sh +12 -0
  54. package/examples/tunnel-cli.js +461 -0
  55. package/examples/tunnel-worker.js +98 -0
  56. package/examples/zrok-termux.ts +147 -0
  57. package/package.json +43 -53
  58. package/proto/sshtunnel/v1/tunnel.proto +343 -0
  59. package/dist/TestMessage.d.ts +0 -13
  60. package/dist/TestMessage.js +0 -32
  61. package/dist/TestMessage.js.map +0 -1
  62. package/dist/cjs/TestMessage.d.ts +0 -13
  63. package/dist/cjs/TestMessage.js +0 -32
  64. package/dist/cjs/TestMessage.js.map +0 -1
  65. package/dist/cjs/index.d.ts +0 -73
  66. package/dist/cjs/index.js +0 -621
  67. package/dist/cjs/index.js.map +0 -1
  68. package/dist/cjs/keypair_storage.d.ts +0 -12
  69. package/dist/cjs/keypair_storage.js +0 -143
  70. package/dist/cjs/keypair_storage.js.map +0 -1
  71. package/dist/cjs/ngrok_service.d.ts +0 -11
  72. package/dist/cjs/ngrok_service.js +0 -40
  73. package/dist/cjs/ngrok_service.js.map +0 -1
  74. package/dist/cjs/ssh2-node.d.ts +0 -1
  75. package/dist/cjs/ssh2-node.js +0 -221
  76. package/dist/cjs/ssh2-node.js.map +0 -1
  77. package/dist/esm/TestMessage.d.ts +0 -13
  78. package/dist/esm/TestMessage.js +0 -29
  79. package/dist/esm/TestMessage.js.map +0 -1
  80. package/dist/esm/index.d.ts +0 -73
  81. package/dist/esm/index.js +0 -616
  82. package/dist/esm/index.js.map +0 -1
  83. package/dist/esm/keypair_storage.d.ts +0 -12
  84. package/dist/esm/keypair_storage.js +0 -117
  85. package/dist/esm/keypair_storage.js.map +0 -1
  86. package/dist/esm/ngrok_service.d.ts +0 -11
  87. package/dist/esm/ngrok_service.js +0 -37
  88. package/dist/esm/ngrok_service.js.map +0 -1
  89. package/dist/esm/ssh2-node.d.ts +0 -1
  90. package/dist/esm/ssh2-node.js +0 -194
  91. package/dist/esm/ssh2-node.js.map +0 -1
  92. package/dist/index.d.ts +0 -73
  93. package/dist/index.js +0 -620
  94. package/dist/index.js.map +0 -1
  95. package/dist/keypair_storage.d.ts +0 -12
  96. package/dist/keypair_storage.js +0 -120
  97. package/dist/keypair_storage.js.map +0 -1
  98. package/dist/ngrok_service.d.ts +0 -11
  99. package/dist/ngrok_service.js +0 -40
  100. package/dist/ngrok_service.js.map +0 -1
  101. package/dist/ssh2-node.d.ts +0 -1
  102. package/dist/ssh2-node.js +0 -188
  103. package/dist/ssh2-node.js.map +0 -1
  104. package/dist/types/TestMessage.d.ts +0 -13
  105. package/dist/types/index.d.ts +0 -73
  106. package/dist/types/keypair_storage.d.ts +0 -12
  107. package/dist/types/ngrok_service.d.ts +0 -11
  108. package/dist/types/ssh2-node.d.ts +0 -1
  109. package/ssh2-node +0 -2
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TestMessage = void 0;
4
- var crypto_1 = require("crypto");
5
- var TestMessage = (function () {
6
- function TestMessage() {
7
- }
8
- TestMessage.prototype.generateMessage = function (to, from, action, contents) {
9
- return {
10
- envelope: {
11
- to: to,
12
- from: from,
13
- timestamp: new Date(),
14
- action: action
15
- },
16
- contents: (contents) ? contents : (0, crypto_1.randomUUID)()
17
- };
18
- };
19
- TestMessage.prototype.signMessage = function (msg, key) {
20
- var s = key.createSign('sha1');
21
- s.update(msg);
22
- return s.sign();
23
- };
24
- TestMessage.prototype.verifyMessage = function (msg, signature, key) {
25
- var v = key.createVerify('sha1');
26
- v.update(msg);
27
- return v.verify(signature);
28
- };
29
- return TestMessage;
30
- }());
31
- exports.TestMessage = TestMessage;
32
- //# sourceMappingURL=TestMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TestMessage.js","sourceRoot":"","sources":["../../src/TestMessage.ts"],"names":[],"mappings":";;;AAAA,iCAAoC;AAEpC;IAAA;IAyBA,CAAC;IAvBU,qCAAe,GAAtB,UAAuB,EAAU,EAAE,IAAY,EAAE,MAAc,EAAE,QAAe;QAC5E,OAAO;YACH,QAAQ,EAAE;gBACN,EAAE,EAAE,EAAE;gBACN,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,MAAM,EAAE,MAAM;aACjB;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,mBAAU,GAAE;SACjD,CAAA;IACL,CAAC;IAEM,iCAAW,GAAlB,UAAmB,GAAU,EAAE,GAAG;QAC9B,IAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAEM,mCAAa,GAApB,UAAqB,GAAU,EAAE,SAAS,EAAE,GAAG;QAC3C,IAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IACL,kBAAC;AAAD,CAAC,AAzBD,IAyBC;AAzBY,kCAAW"}
@@ -1,73 +0,0 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- /// <reference types="node" />
4
- /// <reference types="node" />
5
- import { Server, Socket } from 'net';
6
- import { Writable } from 'stream';
7
- import { EventEmitter } from 'events';
8
- import { Client, Channel } from 'electron-ssh2';
9
- import { KeypairStorage } from './keypair_storage';
10
- import { NgrokApi } from './ngrok_service';
11
- import { main } from './ssh2-node';
12
- interface Listener {
13
- [key: string]: Server;
14
- }
15
- interface RemotePort {
16
- [key: string]: Socket;
17
- }
18
- export type SSHConfig = {
19
- hostname: string;
20
- username: string;
21
- password?: string;
22
- host?: string;
23
- port?: string;
24
- proxy_ports?: Array<string>;
25
- remote_ports?: Array<string>;
26
- private_key?: string | null;
27
- private_key_filename?: string | null;
28
- disabled?: boolean;
29
- server_name?: string;
30
- service_name?: string;
31
- compress?: string;
32
- cypher?: string;
33
- exec?: Array<string>;
34
- shell?: boolean;
35
- ngrok_api?: string;
36
- keepaliveInterval?: number;
37
- };
38
- export declare class SSHTunnelProxy extends EventEmitter {
39
- protected client: Client;
40
- protected keypairStorage: KeypairStorage;
41
- protected config: SSHConfig;
42
- protected listener: Listener;
43
- protected remote_port: RemotePort;
44
- protected retries: number;
45
- protected networkOnline: boolean;
46
- protected _tunnelReadyTimeout: ReturnType<typeof setTimeout>;
47
- debug_en: boolean;
48
- debug_ssh: boolean;
49
- constructor();
50
- protected shutdown_client(opts: any): void;
51
- protected close_sockets(proxy_ports: Array<string>): void;
52
- protected close_remote_forwards(remote_ports: Array<string>): void;
53
- protected setup_local_forward(socket: Socket, remote_hostname: string, remote_port: string): void;
54
- protected setup_remote_forward(remote_forward_str: string): Promise<number>;
55
- setupRemotePorts(remote_ports: Array<string>): Promise<void>;
56
- setupProxyPorts(proxy_ports: Array<string>): Promise<void>;
57
- execCmd(cmd: string, dataStream?: Writable, errStream?: Writable): Promise<void>;
58
- protected remote_shell(err: Error, stream: Channel): void;
59
- protected cleanup_events(client: Client): void;
60
- do_ssh_connect(opts: SSHConfig): Promise<void>;
61
- validate_port_number(port: number, whitelist: object): boolean;
62
- validate_local_forward(proxy_ports: Array<string>, whitelist: object): boolean;
63
- protected ssh_retry_connect(opts: SSHConfig): void;
64
- protected ssh_start_tunnel(opts: SSHConfig): Promise<unknown>;
65
- connectSSH(opts: SSHConfig, whitelist: object | null): Promise<void>;
66
- onNetworkOnline(): void;
67
- onNetworkOffline(): void;
68
- generateAndStoreKeypair(serviceName: string, account: string): void;
69
- getPublicKey(serviceName: string, account: string): void;
70
- getClient(): Client;
71
- protected debug(...args: any[]): void;
72
- }
73
- export { KeypairStorage, NgrokApi, main as sshcli };