bdy 1.12.8-dev → 1.12.8-dev-pipeline-run

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 (156) hide show
  1. package/distTs/package.json +1 -1
  2. package/package.json +1 -1
  3. package/distTs/bin/cli.js +0 -5
  4. package/distTs/src/agent/agent.js +0 -328
  5. package/distTs/src/agent/linux.js +0 -124
  6. package/distTs/src/agent/manager.js +0 -519
  7. package/distTs/src/agent/osx.js +0 -146
  8. package/distTs/src/agent/socket/client.js +0 -178
  9. package/distTs/src/agent/socket/tunnel.js +0 -237
  10. package/distTs/src/agent/socket.js +0 -242
  11. package/distTs/src/agent/system.js +0 -179
  12. package/distTs/src/agent/wait.js +0 -23
  13. package/distTs/src/agent/windows.js +0 -159
  14. package/distTs/src/agent.js +0 -302
  15. package/distTs/src/api/agent.js +0 -99
  16. package/distTs/src/api/buddy.js +0 -139
  17. package/distTs/src/api/socket.js +0 -159
  18. package/distTs/src/cfg.js +0 -234
  19. package/distTs/src/command/agent/disable.js +0 -27
  20. package/distTs/src/command/agent/enable.js +0 -27
  21. package/distTs/src/command/agent/install.js +0 -117
  22. package/distTs/src/command/agent/restart.js +0 -27
  23. package/distTs/src/command/agent/run.js +0 -19
  24. package/distTs/src/command/agent/start.js +0 -28
  25. package/distTs/src/command/agent/status.js +0 -34
  26. package/distTs/src/command/agent/stop.js +0 -28
  27. package/distTs/src/command/agent/target/disable.js +0 -27
  28. package/distTs/src/command/agent/target/enable.js +0 -27
  29. package/distTs/src/command/agent/target/status.js +0 -32
  30. package/distTs/src/command/agent/target.js +0 -15
  31. package/distTs/src/command/agent/tunnel/http.js +0 -43
  32. package/distTs/src/command/agent/tunnel/list.js +0 -27
  33. package/distTs/src/command/agent/tunnel/remove.js +0 -28
  34. package/distTs/src/command/agent/tunnel/start.js +0 -34
  35. package/distTs/src/command/agent/tunnel/status.js +0 -31
  36. package/distTs/src/command/agent/tunnel/tcp.js +0 -43
  37. package/distTs/src/command/agent/tunnel/tls.js +0 -43
  38. package/distTs/src/command/agent/tunnel.js +0 -23
  39. package/distTs/src/command/agent/uninstall.js +0 -44
  40. package/distTs/src/command/agent/update.js +0 -38
  41. package/distTs/src/command/agent/version.js +0 -21
  42. package/distTs/src/command/agent.js +0 -35
  43. package/distTs/src/command/config/add/http.js +0 -25
  44. package/distTs/src/command/config/add/tcp.js +0 -25
  45. package/distTs/src/command/config/add/tls.js +0 -25
  46. package/distTs/src/command/config/add.js +0 -15
  47. package/distTs/src/command/config/get/region.js +0 -15
  48. package/distTs/src/command/config/get/timeout.js +0 -15
  49. package/distTs/src/command/config/get/token.js +0 -15
  50. package/distTs/src/command/config/get/tunnel.js +0 -19
  51. package/distTs/src/command/config/get/tunnels.js +0 -15
  52. package/distTs/src/command/config/get/whitelist.js +0 -15
  53. package/distTs/src/command/config/get.js +0 -21
  54. package/distTs/src/command/config/remove/tunnel.js +0 -19
  55. package/distTs/src/command/config/remove.js +0 -11
  56. package/distTs/src/command/config/set/region.js +0 -17
  57. package/distTs/src/command/config/set/timeout.js +0 -17
  58. package/distTs/src/command/config/set/token.js +0 -16
  59. package/distTs/src/command/config/set/whitelist.js +0 -17
  60. package/distTs/src/command/config/set.js +0 -17
  61. package/distTs/src/command/config.js +0 -17
  62. package/distTs/src/command/http.js +0 -30
  63. package/distTs/src/command/pre.js +0 -49
  64. package/distTs/src/command/start.js +0 -28
  65. package/distTs/src/command/tcp.js +0 -30
  66. package/distTs/src/command/tls.js +0 -30
  67. package/distTs/src/command/tunnel/config.js +0 -17
  68. package/distTs/src/command/tunnel/http.js +0 -31
  69. package/distTs/src/command/tunnel/start.js +0 -28
  70. package/distTs/src/command/tunnel/tcp.js +0 -30
  71. package/distTs/src/command/tunnel/tls.js +0 -30
  72. package/distTs/src/command/tunnel.js +0 -19
  73. package/distTs/src/command/ut/upload.js +0 -108
  74. package/distTs/src/command/ut.js +0 -12
  75. package/distTs/src/command/version.js +0 -13
  76. package/distTs/src/command/vt/close.js +0 -27
  77. package/distTs/src/command/vt/compare/validation.js +0 -173
  78. package/distTs/src/command/vt/compare.js +0 -97
  79. package/distTs/src/command/vt/exec.js +0 -81
  80. package/distTs/src/command/vt/installBrowser.js +0 -20
  81. package/distTs/src/command/vt/scrap.js +0 -193
  82. package/distTs/src/command/vt/storybook.js +0 -92
  83. package/distTs/src/command/vt.js +0 -22
  84. package/distTs/src/format.js +0 -174
  85. package/distTs/src/index.js +0 -34
  86. package/distTs/src/input.js +0 -270
  87. package/distTs/src/logger.js +0 -95
  88. package/distTs/src/output/interactive/tunnel.js +0 -860
  89. package/distTs/src/output/noninteractive/agent/tunnels.js +0 -43
  90. package/distTs/src/output/noninteractive/config/tunnel.js +0 -65
  91. package/distTs/src/output/noninteractive/config/tunnels.js +0 -18
  92. package/distTs/src/output/noninteractive/tunnel.js +0 -59
  93. package/distTs/src/output.js +0 -143
  94. package/distTs/src/server/cert.js +0 -52
  95. package/distTs/src/server/http1.js +0 -75
  96. package/distTs/src/server/http2.js +0 -78
  97. package/distTs/src/server/sftp.js +0 -497
  98. package/distTs/src/server/ssh.js +0 -446
  99. package/distTs/src/server/tls.js +0 -41
  100. package/distTs/src/ssh/client.js +0 -197
  101. package/distTs/src/texts.js +0 -421
  102. package/distTs/src/tunnel/agent.js +0 -103
  103. package/distTs/src/tunnel/api/agent.js +0 -100
  104. package/distTs/src/tunnel/api/buddy.js +0 -141
  105. package/distTs/src/tunnel/cfg.js +0 -243
  106. package/distTs/src/tunnel/compression.js +0 -44
  107. package/distTs/src/tunnel/dns.js +0 -53
  108. package/distTs/src/tunnel/html/503.html +0 -338
  109. package/distTs/src/tunnel/html.js +0 -33
  110. package/distTs/src/tunnel/http/log.js +0 -218
  111. package/distTs/src/tunnel/http/serve.js +0 -133
  112. package/distTs/src/tunnel/http/stream.js +0 -34
  113. package/distTs/src/tunnel/http.js +0 -508
  114. package/distTs/src/tunnel/identification.js +0 -103
  115. package/distTs/src/tunnel/latency.js +0 -83
  116. package/distTs/src/tunnel/output/interactive/tunnel.js +0 -867
  117. package/distTs/src/tunnel/output/noninteractive/agent/tunnels.js +0 -45
  118. package/distTs/src/tunnel/output/noninteractive/config/tunnel.js +0 -67
  119. package/distTs/src/tunnel/output/noninteractive/config/tunnels.js +0 -20
  120. package/distTs/src/tunnel/output/noninteractive/tunnel.js +0 -61
  121. package/distTs/src/tunnel/server/cert.js +0 -54
  122. package/distTs/src/tunnel/server/http1.js +0 -80
  123. package/distTs/src/tunnel/server/http2.js +0 -84
  124. package/distTs/src/tunnel/server/sftp.js +0 -514
  125. package/distTs/src/tunnel/server/ssh.js +0 -464
  126. package/distTs/src/tunnel/server/tls.js +0 -47
  127. package/distTs/src/tunnel/ssh/client.js +0 -211
  128. package/distTs/src/tunnel/tcp.js +0 -113
  129. package/distTs/src/tunnel/tunnel.js +0 -1010
  130. package/distTs/src/tunnel.js +0 -656
  131. package/distTs/src/types/ciInfo.js +0 -10
  132. package/distTs/src/types/options.js +0 -2
  133. package/distTs/src/types/plugin.js +0 -2
  134. package/distTs/src/types/queue.js +0 -2
  135. package/distTs/src/types/requests.js +0 -2
  136. package/distTs/src/types/resources.js +0 -2
  137. package/distTs/src/types/schemas.js +0 -54
  138. package/distTs/src/types/scrape.js +0 -2
  139. package/distTs/src/types/snapshots.js +0 -2
  140. package/distTs/src/types/storybook.js +0 -2
  141. package/distTs/src/types/tunnel.js +0 -141
  142. package/distTs/src/unitTest/ci.js +0 -108
  143. package/distTs/src/unitTest/requests.js +0 -72
  144. package/distTs/src/utils.js +0 -378
  145. package/distTs/src/visualTest/browser.js +0 -39
  146. package/distTs/src/visualTest/ci.js +0 -241
  147. package/distTs/src/visualTest/context.js +0 -52
  148. package/distTs/src/visualTest/exec.js +0 -51
  149. package/distTs/src/visualTest/linkUtils.js +0 -21
  150. package/distTs/src/visualTest/queue.js +0 -43
  151. package/distTs/src/visualTest/requests.js +0 -365
  152. package/distTs/src/visualTest/resources.js +0 -259
  153. package/distTs/src/visualTest/server.js +0 -109
  154. package/distTs/src/visualTest/snapshots.js +0 -129
  155. package/distTs/src/visualTest/utils/parseDom.js +0 -238
  156. package/distTs/src/visualTest/validation.js +0 -18
@@ -1,464 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const events_1 = __importDefault(require("events"));
7
- const ssh2_1 = __importDefault(require("ssh2"));
8
- const logger_1 = __importDefault(require("../../logger"));
9
- const crypto_1 = require("crypto");
10
- const child_process_1 = require("child_process");
11
- const node_net_1 = __importDefault(require("node:net"));
12
- const sftp_1 = __importDefault(require("./sftp"));
13
- const buddy_1 = __importDefault(require("../api/buddy"));
14
- const pipeStreamToChannel = (stream, channel) => {
15
- channel.once('exit', (code, signal) => {
16
- logger_1.default.debug(`shell channel exit: ${code}, signal: ${signal}`);
17
- if (stream.exit) {
18
- if (signal)
19
- stream.exit(signal);
20
- else
21
- stream.exit(code);
22
- }
23
- });
24
- channel.on('close', () => {
25
- stream.end();
26
- });
27
- channel.pipe(stream, { end: false }).pipe(channel);
28
- channel.stderr.pipe(stream.stderr);
29
- };
30
- class ServerSsh extends events_1.default {
31
- agent;
32
- login;
33
- password;
34
- server;
35
- constructor(agent, login, password, hostKey) {
36
- super();
37
- this.agent = agent;
38
- this.login = login;
39
- this.password = password;
40
- this.server = new ssh2_1.default.Server({
41
- hostKeys: [hostKey],
42
- highWaterMark: 16 * 1024 * 1024,
43
- ident: 'ssh2 server',
44
- }, (client) => this.processClient(client));
45
- this.server.listen();
46
- }
47
- stop() {
48
- if (this.server) {
49
- this.server.close();
50
- this.server.removeAllListeners();
51
- }
52
- this.server = null;
53
- }
54
- handleSshTunnel(stream) {
55
- if (this.server)
56
- this.server.injectSocket(stream);
57
- }
58
- checkValueSafe(input, allowed) {
59
- const autoReject = input.length !== allowed.length;
60
- if (autoReject)
61
- allowed = input;
62
- const isMatch = (0, crypto_1.timingSafeEqual)(input, allowed);
63
- return !autoReject && isMatch;
64
- }
65
- async verifyKey(ctx, keys) {
66
- try {
67
- for (let i = 0; i < keys.length; i += 1) {
68
- const publicKey = ssh2_1.default.utils.parseKey(keys[i]);
69
- if (publicKey instanceof Error)
70
- continue;
71
- if (ctx.key.algo !== publicKey.type)
72
- continue;
73
- if (!this.checkValueSafe(ctx.key.data, publicKey.getPublicSSH()))
74
- continue;
75
- if (ctx.signature &&
76
- !publicKey.verify(ctx.blob || '', ctx.signature, ctx.hashAlgo))
77
- continue;
78
- return true;
79
- }
80
- }
81
- catch {
82
- // do nothing
83
- }
84
- return false;
85
- }
86
- createProxyConnection(privateKey) {
87
- return new Promise((resolve, reject) => {
88
- const client = new ssh2_1.default.Client();
89
- client.once('error', (err) => {
90
- client.removeAllListeners();
91
- reject(err);
92
- });
93
- client.once('ready', () => {
94
- client.removeAllListeners();
95
- resolve(client);
96
- });
97
- client.connect({
98
- host: '127.0.0.1',
99
- port: 22,
100
- username: 'root',
101
- privateKey: privateKey,
102
- });
103
- });
104
- }
105
- async authenticateClient(ctx) {
106
- const allowed = ['publickey', 'password'];
107
- logger_1.default.debug(`auth method: ${ctx.method}`);
108
- if (!allowed.includes(ctx.method)) {
109
- ctx.reject(allowed);
110
- return null;
111
- }
112
- if (ctx.method === 'password') {
113
- if (!this.checkValueSafe(Buffer.from(ctx.username), Buffer.from(this.login))) {
114
- ctx.reject(allowed);
115
- return null;
116
- }
117
- if (!this.checkValueSafe(Buffer.from(ctx.password), Buffer.from(this.password))) {
118
- ctx.reject(allowed);
119
- return null;
120
- }
121
- ctx.accept();
122
- return;
123
- }
124
- if (ctx.method === 'publickey') {
125
- let keys;
126
- let privateKey;
127
- try {
128
- const resp = await buddy_1.default.fetchAgentKeys(this.agent.id, this.agent.host, this.agent.token);
129
- logger_1.default.debug(resp);
130
- keys = resp.keys;
131
- privateKey = resp.privateKey;
132
- }
133
- catch {
134
- ctx.reject(allowed);
135
- return null;
136
- }
137
- const verified = await this.verifyKey(ctx, keys);
138
- if (!verified) {
139
- logger_1.default.debug('not verified');
140
- ctx.reject(allowed);
141
- return null;
142
- }
143
- logger_1.default.debug('verified');
144
- try {
145
- const proxyClient = await this.createProxyConnection(privateKey);
146
- logger_1.default.debug('proxy connected');
147
- ctx.accept();
148
- return proxyClient;
149
- }
150
- catch (err) {
151
- logger_1.default.debug('proxy not connected');
152
- logger_1.default.debug(err);
153
- ctx.reject(allowed);
154
- return null;
155
- }
156
- }
157
- ctx.reject(allowed);
158
- return null;
159
- }
160
- localExec(stream, command, env) {
161
- const s = process.hrtime();
162
- const opts = {};
163
- if (env)
164
- opts.env = env;
165
- (0, child_process_1.exec)(command, opts, (err, stdout, stderr) => {
166
- if (stream) {
167
- stream.stderr.write(stderr);
168
- stream.write(stdout);
169
- stream.exit(!err ? 0 : 1);
170
- stream.end();
171
- }
172
- const [seconds, nano] = process.hrtime(s);
173
- const ms = seconds * 1000 + nano / 1000 / 1000;
174
- logger_1.default.debug(`local ssh exec ends: ${ms}ms`);
175
- });
176
- }
177
- clientSession(session, client, proxyClient) {
178
- let env = {};
179
- let sftp;
180
- let channel;
181
- let pty;
182
- let x11;
183
- const closeSession = () => {
184
- logger_1.default.debug('ssh close session');
185
- env = null;
186
- pty = null;
187
- x11 = null;
188
- session.removeAllListeners();
189
- if (sftp) {
190
- sftp.destroy();
191
- sftp = null;
192
- }
193
- if (channel) {
194
- channel.removeAllListeners();
195
- channel = null;
196
- }
197
- client.removeListener('close', closeSession);
198
- };
199
- client.on('close', closeSession);
200
- session.on('close', closeSession);
201
- session.on('end', closeSession);
202
- session.on('pty', (accept, reject, info) => {
203
- logger_1.default.debug('ssh pty');
204
- logger_1.default.debug(info);
205
- if (!proxyClient) {
206
- if (reject)
207
- reject();
208
- return;
209
- }
210
- pty = info;
211
- if (accept)
212
- accept();
213
- });
214
- session.on('window-change', (accept, reject, info) => {
215
- logger_1.default.debug('ssh window-change');
216
- logger_1.default.debug(info);
217
- if (!proxyClient) {
218
- if (reject)
219
- reject();
220
- return;
221
- }
222
- if (!pty)
223
- pty = {};
224
- pty.cols = info.cols;
225
- pty.height = info.height;
226
- pty.rows = info.rows;
227
- pty.width = info.width;
228
- if (channel && channel.setWindow)
229
- channel.setWindow(pty.rows || 1, pty.cols || 1, pty.height || 1, pty.width || 1);
230
- if (accept)
231
- accept();
232
- });
233
- session.on('shell', (accept, reject) => {
234
- logger_1.default.debug('ssh shell');
235
- if (!proxyClient || !accept) {
236
- if (reject)
237
- reject();
238
- return;
239
- }
240
- const stream = accept();
241
- const opts = {};
242
- if (env)
243
- opts.env = env;
244
- if (x11)
245
- opts.x11 = x11;
246
- proxyClient.shell(pty || {}, opts, (err, c) => {
247
- if (err || !c) {
248
- if (reject)
249
- reject();
250
- return;
251
- }
252
- pipeStreamToChannel(stream, c);
253
- });
254
- });
255
- session.on('signal', (accept, reject, info) => {
256
- logger_1.default.debug('ssh signal');
257
- logger_1.default.debug(info);
258
- const { name } = info;
259
- if (!proxyClient || !name || !channel || !channel.signal) {
260
- if (reject)
261
- reject();
262
- return;
263
- }
264
- channel.signal(name);
265
- if (accept)
266
- accept();
267
- });
268
- session.on('subsystem', (accept, reject, info) => {
269
- logger_1.default.debug('ssh subsystem');
270
- logger_1.default.debug(info);
271
- const { name } = info;
272
- if (!proxyClient || !accept || !name) {
273
- if (reject)
274
- reject();
275
- return;
276
- }
277
- const stream = accept();
278
- proxyClient.subsys(name, (err, c) => {
279
- if (err || !c) {
280
- if (reject)
281
- reject();
282
- return;
283
- }
284
- pipeStreamToChannel(stream, c);
285
- });
286
- });
287
- session.on('x11', (accept, reject, info) => {
288
- logger_1.default.debug('ssh x11');
289
- logger_1.default.debug(info);
290
- if (!proxyClient) {
291
- if (reject)
292
- reject();
293
- return;
294
- }
295
- x11 = info;
296
- if (accept)
297
- accept();
298
- });
299
- session.on('exec', (accept, reject, info) => {
300
- logger_1.default.debug('ssh exec');
301
- logger_1.default.debug(info);
302
- if (!info.command || !accept) {
303
- if (reject)
304
- reject();
305
- return;
306
- }
307
- const stream = accept();
308
- if (!proxyClient) {
309
- this.localExec(stream, info.command, env);
310
- return;
311
- }
312
- const opts = {};
313
- if (env)
314
- opts.env = env;
315
- if (pty)
316
- opts.pty = pty;
317
- if (x11)
318
- opts.x11 = x11;
319
- proxyClient.exec(info.command, opts, (err, c) => {
320
- if (err || !c) {
321
- if (reject)
322
- reject();
323
- return;
324
- }
325
- pipeStreamToChannel(stream, c);
326
- });
327
- });
328
- session.on('env', (accept, _, info) => {
329
- logger_1.default.debug('ssh env');
330
- logger_1.default.debug(info);
331
- if (info.key) {
332
- if (!env)
333
- env = {};
334
- env[info.key] = info.val;
335
- }
336
- if (accept)
337
- accept();
338
- });
339
- session.on('sftp', (accept, reject) => {
340
- logger_1.default.debug('sftp');
341
- if (!sftp && accept) {
342
- sftp = new sftp_1.default(accept());
343
- }
344
- else if (reject) {
345
- reject();
346
- }
347
- });
348
- }
349
- processClient(client) {
350
- logger_1.default.debug('new ssh client');
351
- let proxyClient;
352
- client.setNoDelay();
353
- client.on('authentication', async (ctx) => {
354
- logger_1.default.debug('ssh authentication');
355
- proxyClient = await this.authenticateClient(ctx);
356
- if (proxyClient) {
357
- proxyClient.on('tcp connection', (details, accept, reject) => {
358
- logger_1.default.debug('new ssh client forward connection');
359
- logger_1.default.debug(details);
360
- const { destIP, destPort, srcIP, srcPort } = details;
361
- client.forwardOut(destIP, destPort, srcIP, srcPort, (err, channel) => {
362
- logger_1.default.debug('new ssh client forward out connection');
363
- logger_1.default.debug({ destIP, destPort, srcIP, srcPort });
364
- if (err) {
365
- reject();
366
- return;
367
- }
368
- const stream = accept();
369
- channel.pipe(stream).pipe(channel);
370
- });
371
- });
372
- }
373
- });
374
- client.on('close', () => {
375
- logger_1.default.debug('ssh close');
376
- if (proxyClient) {
377
- try {
378
- proxyClient.removeAllListeners();
379
- proxyClient.end();
380
- }
381
- catch {
382
- // do nothing
383
- }
384
- proxyClient = null;
385
- }
386
- setTimeout(() => {
387
- client.removeAllListeners();
388
- client = null;
389
- }, 1000);
390
- });
391
- client.on('tcpip', (accept, reject, info) => {
392
- logger_1.default.debug('ssh tcpip request');
393
- logger_1.default.debug(info);
394
- const { destIP, destPort } = info;
395
- let accepted = false;
396
- const socket = node_net_1.default.connect({
397
- host: destIP,
398
- port: destPort,
399
- });
400
- socket.on('connect', () => {
401
- accepted = true;
402
- const channel = accept();
403
- channel.pipe(socket).pipe(channel);
404
- });
405
- const closeSocket = () => {
406
- try {
407
- socket.removeAllListeners();
408
- socket.end();
409
- }
410
- catch {
411
- // do nothing
412
- }
413
- if (!accepted)
414
- reject();
415
- };
416
- socket.setTimeout(10000);
417
- socket.on('timeout', closeSocket);
418
- socket.on('error', closeSocket);
419
- socket.on('close', closeSocket);
420
- });
421
- client.on('request', (accept, reject, name, info) => {
422
- logger_1.default.debug('ssh forward request');
423
- logger_1.default.debug(name);
424
- logger_1.default.debug(info);
425
- if (!proxyClient) {
426
- reject();
427
- return;
428
- }
429
- if (name === 'tcpip-forward') {
430
- const { bindAddr, bindPort } = info;
431
- proxyClient.forwardIn(bindAddr, bindPort, (err, port) => {
432
- if (err) {
433
- reject();
434
- return;
435
- }
436
- accept(port);
437
- });
438
- return;
439
- }
440
- if (name === 'cancel-tcpip-forward') {
441
- const { bindAddr, bindPort } = info;
442
- proxyClient.unforwardIn(bindAddr, bindPort, (err) => {
443
- if (err) {
444
- reject();
445
- return;
446
- }
447
- accept();
448
- });
449
- return;
450
- }
451
- reject();
452
- });
453
- client.on('error', (err) => {
454
- logger_1.default.debug('Error on ssh server client');
455
- logger_1.default.debug(err);
456
- client.end();
457
- });
458
- client.on('session', (accept) => {
459
- logger_1.default.debug('ssh session');
460
- this.clientSession(accept(), client, proxyClient);
461
- });
462
- }
463
- }
464
- exports.default = ServerSsh;
@@ -1,47 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const events_1 = __importDefault(require("events"));
7
- const tls_1 = __importDefault(require("tls"));
8
- const cert_js_1 = __importDefault(require("./cert.js"));
9
- const tunnel_1 = require("../../types/tunnel");
10
- class ServerTls extends events_1.default {
11
- key;
12
- cert;
13
- ca;
14
- server;
15
- constructor(key, cert, ca) {
16
- super();
17
- this.key = key;
18
- this.cert = cert;
19
- this.ca = ca;
20
- if (!this.key || !this.cert) {
21
- const c = new cert_js_1.default();
22
- this.key = c.key;
23
- this.cert = c.cert;
24
- }
25
- this.server = tls_1.default.createServer({
26
- handshakeTimeout: 60000,
27
- key: this.key,
28
- cert: this.cert,
29
- ca: this.ca || undefined,
30
- rejectUnauthorized: !!this.ca,
31
- requestCert: !!this.ca,
32
- }, (socket) => this.processSocket(socket));
33
- }
34
- async processSocket(socket) {
35
- this.emit(tunnel_1.TUNNEL_EVENT.TLS_SOCKET, socket);
36
- }
37
- handleSshTunnel(channel) {
38
- if (this.server)
39
- this.server.emit('connection', channel);
40
- }
41
- stop() {
42
- if (this.server)
43
- this.server.removeAllListeners();
44
- this.server = null;
45
- }
46
- }
47
- exports.default = ServerTls;