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,218 +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
- exports.TunnelHttpLogRequest = void 0;
7
- const events_1 = __importDefault(require("events"));
8
- const uuid_1 = require("uuid");
9
- const stream_1 = __importDefault(require("./stream"));
10
- const isbinaryfile_1 = require("isbinaryfile");
11
- const utils_1 = require("../../utils");
12
- const tunnel_1 = require("../../types/tunnel");
13
- class TunnelHttpLogRequest extends events_1.default {
14
- method;
15
- headers;
16
- responseHeaders;
17
- url;
18
- httpVersion;
19
- status;
20
- start;
21
- finished;
22
- id;
23
- requestBody;
24
- responseBody;
25
- time;
26
- constructor(method, headers, url, httpVersion) {
27
- super();
28
- this.method = method;
29
- this.headers = headers;
30
- this.url = url;
31
- this.httpVersion = httpVersion;
32
- this.status = 'NEW';
33
- this.start = process.hrtime();
34
- this.finished = false;
35
- this.id = (0, uuid_1.v4)();
36
- this.requestBody = new stream_1.default(utils_1.TUNNEL_HTTP_LOG_MAX_BODY);
37
- this.requestBody.once('close', () => {
38
- this.emit(tunnel_1.TUNNEL_EVENT_HTTP.NEW_REQUEST_END);
39
- });
40
- this.responseBody = new stream_1.default(utils_1.TUNNEL_HTTP_LOG_MAX_BODY);
41
- this.responseBody.once('close', () => {
42
- this.emit(tunnel_1.TUNNEL_EVENT_HTTP.NEW_RESPONSE_END);
43
- });
44
- }
45
- response(statusCode, headers) {
46
- this.status = statusCode;
47
- this.responseHeaders = headers;
48
- const end = process.hrtime(this.start);
49
- this.time = Math.round(end[0] * 1000 + end[1] / 1000000);
50
- this.finished = true;
51
- }
52
- toSocket() {
53
- let requestBody = null;
54
- let requestBodyLength = 0;
55
- let requestBodyTooLarge = false;
56
- let requestBodyBinary = false;
57
- let responseBody = null;
58
- let responseBodyLength = 0;
59
- let responseBodyTooLarge = false;
60
- let responseBodyBinary = false;
61
- if (this.requestBody.realLength > 0) {
62
- requestBodyLength = this.requestBody.realLength;
63
- requestBodyTooLarge =
64
- requestBodyLength >= utils_1.TUNNEL_MAX_REQUEST_SIZE_TO_SYNC;
65
- requestBodyBinary = (0, isbinaryfile_1.isBinaryFileSync)(this.requestBody.data);
66
- if (!requestBodyTooLarge && !requestBodyBinary) {
67
- requestBody = this.requestBody.data.toString('base64');
68
- }
69
- }
70
- if (this.responseBody.realLength > 0) {
71
- responseBodyLength = this.responseBody.realLength;
72
- responseBodyTooLarge =
73
- requestBodyLength >= utils_1.TUNNEL_MAX_REQUEST_SIZE_TO_SYNC;
74
- responseBodyBinary = (0, isbinaryfile_1.isBinaryFileSync)(this.responseBody.data);
75
- if (!responseBodyTooLarge && !responseBodyBinary) {
76
- responseBody = this.responseBody.data.toString('base64');
77
- }
78
- }
79
- return {
80
- method: this.method,
81
- headers: this.headers,
82
- url: this.url,
83
- httpVersion: this.httpVersion,
84
- status: this.status,
85
- finished: this.finished,
86
- id: this.id,
87
- responseHeaders: this.responseHeaders,
88
- time: this.time,
89
- requestBody,
90
- requestBodyTooLarge,
91
- requestBodyBinary,
92
- requestBodyLength,
93
- responseBody,
94
- responseBodyTooLarge,
95
- responseBodyBinary,
96
- responseBodyLength,
97
- };
98
- }
99
- }
100
- exports.TunnelHttpLogRequest = TunnelHttpLogRequest;
101
- class TunnelHttpLog extends events_1.default {
102
- log;
103
- tsRateLimit;
104
- tsCb;
105
- circuitBreaker;
106
- rateLimit;
107
- requests;
108
- constructor(log, circuitBreakerThreshold) {
109
- super();
110
- this.log = !!log;
111
- this.requests = [];
112
- this.rateLimit = {};
113
- this.circuitBreaker = {
114
- active: circuitBreakerThreshold !== null &&
115
- circuitBreakerThreshold !== undefined,
116
- threshold: circuitBreakerThreshold || 0,
117
- open: false,
118
- test: false,
119
- total: 0,
120
- failed: 0,
121
- };
122
- this.tsRateLimit = setInterval(() => {
123
- this.rateLimit = {};
124
- }, utils_1.TUNNEL_HTTP_RATE_WINDOW);
125
- if (this.circuitBreaker.active) {
126
- this.tsCb = setInterval(() => {
127
- const t = this.circuitBreaker.total;
128
- const f = this.circuitBreaker.failed;
129
- const r = !t ? 0 : f / t;
130
- this.circuitBreaker.test = false;
131
- if (!this.circuitBreaker.open) {
132
- if (f > 0 &&
133
- t >= utils_1.TUNNEL_HTTP_CB_MIN_REQUESTS &&
134
- r > this.circuitBreaker.threshold) {
135
- this.circuitBreaker.open = true;
136
- }
137
- }
138
- else {
139
- this.circuitBreaker.open = false;
140
- this.circuitBreaker.test = true;
141
- }
142
- this.circuitBreaker.total = 0;
143
- this.circuitBreaker.failed = 0;
144
- }, utils_1.TUNNEL_HTTP_CB_WINDOW);
145
- }
146
- }
147
- stop() {
148
- if (this.tsRateLimit) {
149
- clearInterval(this.tsRateLimit);
150
- this.tsRateLimit = null;
151
- }
152
- if (this.tsCb) {
153
- clearInterval(this.tsCb);
154
- this.tsCb = null;
155
- }
156
- }
157
- getIp(req) {
158
- let ip;
159
- if (req.httpVersion === '2.0') {
160
- ip = req.socket.stream ? req.socket.stream.remoteAddress : '::1';
161
- }
162
- else {
163
- ip = req.socket.remoteAddress;
164
- }
165
- return ip;
166
- }
167
- increaseRateLimit(req) {
168
- const ip = this.getIp(req);
169
- if (!this.rateLimit[ip])
170
- this.rateLimit[ip] = 0;
171
- this.rateLimit[ip] += 1;
172
- }
173
- isRateLimited(req) {
174
- const ip = this.getIp(req);
175
- if (!this.rateLimit[ip])
176
- return false;
177
- return this.rateLimit[ip] >= utils_1.TUNNEL_HTTP_RATE_LIMIT;
178
- }
179
- isCircuitBreakerOpen() {
180
- return this.circuitBreaker.active && this.circuitBreaker.open;
181
- }
182
- newRequest(method, headers, url, httpVersion, originalReq) {
183
- this.increaseRateLimit(originalReq);
184
- if (this.log) {
185
- const r = new TunnelHttpLogRequest(method, headers, url, httpVersion);
186
- this.requests.unshift(r);
187
- if (this.requests.length > utils_1.TUNNEL_HTTP_LOG_MAX_REQUESTS)
188
- this.requests.pop();
189
- this.emit(tunnel_1.TUNNEL_EVENT_HTTP.NEW_REQUEST, r);
190
- return r;
191
- }
192
- }
193
- increaseCircuitBreaker(statusCode) {
194
- if (this.circuitBreaker.active && !this.circuitBreaker.open) {
195
- this.circuitBreaker.total += 1;
196
- if (statusCode >= 500)
197
- this.circuitBreaker.failed += 1;
198
- if (this.circuitBreaker.test) {
199
- const t = this.circuitBreaker.total;
200
- const f = this.circuitBreaker.failed;
201
- const rate = !t ? 0 : f / t;
202
- if (f > 0 &&
203
- t >= utils_1.TUNNEL_HTTP_CB_MIN_REQUESTS &&
204
- rate > this.circuitBreaker.threshold) {
205
- this.circuitBreaker.open = true;
206
- }
207
- }
208
- }
209
- }
210
- newResponse(statusCode, headers, logRequest) {
211
- this.increaseCircuitBreaker(statusCode);
212
- if (logRequest && this.log) {
213
- logRequest.response(statusCode, headers);
214
- this.emit(tunnel_1.TUNNEL_EVENT_HTTP.NEW_RESPONSE, logRequest);
215
- }
216
- }
217
- }
218
- exports.default = TunnelHttpLog;
@@ -1,133 +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 path_1 = __importDefault(require("path"));
8
- const path_is_inside_1 = __importDefault(require("path-is-inside"));
9
- const range_parser_1 = __importDefault(require("range-parser"));
10
- const fs_1 = __importDefault(require("fs"));
11
- const promises_1 = __importDefault(require("fs/promises"));
12
- const content_disposition_1 = __importDefault(require("content-disposition"));
13
- const mime_types_1 = __importDefault(require("mime-types"));
14
- const stream_1 = __importDefault(require("stream"));
15
- class TunnelHttpServe extends events_1.default {
16
- serve;
17
- constructor(serve) {
18
- super();
19
- this.serve = path_1.default.resolve(serve);
20
- }
21
- triggerError(err) {
22
- this.emit('error', err);
23
- this.emit('close');
24
- }
25
- trigger404() {
26
- const s = new stream_1.default.Readable();
27
- s.push('Not found');
28
- s.push(null);
29
- this.emit('response', 404, {
30
- 'content-type': 'text/plain',
31
- }, s);
32
- this.emit('close');
33
- }
34
- triggerResponse(statusCode, headers, stream) {
35
- this.emit('response', statusCode, headers, stream);
36
- this.emit('close');
37
- }
38
- async process(req) {
39
- if (!['GET', 'HEAD'].includes(req.method)) {
40
- this.trigger404();
41
- return;
42
- }
43
- let relativePath;
44
- try {
45
- relativePath = decodeURIComponent(new URL(req.url, 'https://localhost').pathname);
46
- }
47
- catch (err) {
48
- this.triggerError(err);
49
- return;
50
- }
51
- let absolutePath = path_1.default.join(this.serve, relativePath);
52
- if (!(0, path_is_inside_1.default)(absolutePath, this.serve)) {
53
- this.trigger404();
54
- return;
55
- }
56
- let stats;
57
- try {
58
- stats = await promises_1.default.lstat(absolutePath);
59
- }
60
- catch {
61
- this.trigger404();
62
- return;
63
- }
64
- if (stats.isDirectory()) {
65
- absolutePath = path_1.default.join(absolutePath, 'index.html');
66
- try {
67
- stats = await promises_1.default.lstat(absolutePath);
68
- }
69
- catch {
70
- this.trigger404();
71
- return;
72
- }
73
- }
74
- if (!stats.isFile()) {
75
- this.trigger404();
76
- return;
77
- }
78
- const streamOpts = {};
79
- const headers = {};
80
- let statusCode = 200;
81
- if (req.headers.range && stats.size) {
82
- const range = (0, range_parser_1.default)(stats.size, req.headers.range);
83
- if (typeof range === 'object' && range.type === 'bytes') {
84
- const { start, end } = range[0];
85
- statusCode = 206;
86
- streamOpts.start = start;
87
- streamOpts.end = end;
88
- }
89
- else {
90
- statusCode = 416;
91
- headers['content-range'] = `bytes */${stats.size}`;
92
- }
93
- }
94
- const { base } = path_1.default.parse(absolutePath);
95
- headers['content-length'] = String(stats.size);
96
- headers['content-disposition'] = (0, content_disposition_1.default)(base, {
97
- type: 'inline',
98
- });
99
- headers['accept-ranges'] = 'bytes';
100
- headers['last-modified'] = stats.mtime.toUTCString();
101
- const contentType = mime_types_1.default.contentType(base);
102
- if (contentType) {
103
- headers['content-type'] = contentType;
104
- }
105
- if (streamOpts.start !== undefined && streamOpts.end !== undefined) {
106
- headers['content-range'] =
107
- `bytes ${streamOpts.start}-${streamOpts.end}/${stats.size}`;
108
- headers['content-length'] = String(streamOpts.end - streamOpts.start + 1);
109
- }
110
- if (!req.headers.range && req.headers['if-modified-since']) {
111
- const ims = Math.floor(Date.parse(req.headers['if-modified-since']) / 1000);
112
- const mt = Math.floor(stats.mtime.getTime() / 1000);
113
- if (mt <= ims) {
114
- this.triggerResponse(304, headers);
115
- return;
116
- }
117
- }
118
- if (req.method === 'HEAD') {
119
- this.triggerResponse(statusCode, headers);
120
- return;
121
- }
122
- let stream;
123
- try {
124
- stream = fs_1.default.createReadStream(absolutePath, streamOpts);
125
- }
126
- catch (err) {
127
- this.triggerError(err);
128
- return;
129
- }
130
- this.triggerResponse(statusCode, headers, stream);
131
- }
132
- }
133
- exports.default = TunnelHttpServe;
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const stream_1 = require("stream");
4
- class TunnelHttpStream extends stream_1.Transform {
5
- maxSize;
6
- data;
7
- realLength;
8
- tooLarge;
9
- constructor(maxSize) {
10
- super();
11
- this.maxSize = maxSize;
12
- this.data = Buffer.alloc(0);
13
- this.realLength = 0;
14
- this.tooLarge = false;
15
- }
16
- _transform(chunk, _, callback) {
17
- if (!this.tooLarge) {
18
- if (this.data.length + chunk.length > this.maxSize) {
19
- this.tooLarge = true;
20
- this.data = Buffer.alloc(0);
21
- }
22
- else {
23
- this.data = Buffer.concat([this.data, chunk]);
24
- }
25
- }
26
- this.realLength += chunk.length;
27
- callback(null, chunk);
28
- }
29
- pipeToNothing(done) {
30
- this.once('end', done);
31
- this.resume();
32
- }
33
- }
34
- exports.default = TunnelHttpStream;