bdy 1.11.0-stage → 1.12.1-dev

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 (60) hide show
  1. package/distTs/package.json +16 -5
  2. package/distTs/src/agent/agent.js +62 -36
  3. package/distTs/src/agent/linux.js +9 -4
  4. package/distTs/src/agent/manager.js +61 -42
  5. package/distTs/src/agent/osx.js +12 -5
  6. package/distTs/src/agent/socket/client.js +26 -7
  7. package/distTs/src/agent/socket/tunnel.js +56 -32
  8. package/distTs/src/agent/socket.js +83 -63
  9. package/distTs/src/agent/system.js +3 -1
  10. package/distTs/src/agent/windows.js +6 -6
  11. package/distTs/src/command/agent/install.js +4 -4
  12. package/distTs/src/command/agent/run.js +2 -2
  13. package/distTs/src/command/agent/status.js +6 -7
  14. package/distTs/src/command/agent/tunnel/http.js +4 -5
  15. package/distTs/src/command/agent/tunnel/tcp.js +3 -3
  16. package/distTs/src/command/agent/tunnel/tls.js +3 -3
  17. package/distTs/src/command/config/add/http.js +3 -3
  18. package/distTs/src/command/config/add/tcp.js +3 -3
  19. package/distTs/src/command/config/add/tls.js +3 -3
  20. package/distTs/src/command/config/get/region.js +1 -1
  21. package/distTs/src/command/pre.js +1 -1
  22. package/distTs/src/command/tunnel/http.js +2 -1
  23. package/distTs/src/command/tunnel/tcp.js +3 -3
  24. package/distTs/src/command/tunnel/tls.js +4 -4
  25. package/distTs/src/format.js +14 -15
  26. package/distTs/src/index.js +1 -1
  27. package/distTs/src/input.js +13 -12
  28. package/distTs/src/logger.js +12 -13
  29. package/distTs/src/tunnel/agent.js +3 -1
  30. package/distTs/src/tunnel/api/agent.js +1 -0
  31. package/distTs/src/tunnel/api/buddy.js +2 -0
  32. package/distTs/src/tunnel/cfg.js +6 -2
  33. package/distTs/src/tunnel/compression.js +17 -14
  34. package/distTs/src/tunnel/dns.js +20 -29
  35. package/distTs/src/tunnel/html.js +2 -0
  36. package/distTs/src/tunnel/http/log.js +30 -8
  37. package/distTs/src/tunnel/http/serve.js +3 -2
  38. package/distTs/src/tunnel/http/stream.js +5 -1
  39. package/distTs/src/tunnel/http.js +67 -26
  40. package/distTs/src/tunnel/identification.js +21 -14
  41. package/distTs/src/tunnel/latency.js +19 -11
  42. package/distTs/src/tunnel/output/interactive/tunnel.js +16 -9
  43. package/distTs/src/tunnel/output/noninteractive/agent/tunnels.js +4 -2
  44. package/distTs/src/tunnel/output/noninteractive/config/tunnel.js +6 -4
  45. package/distTs/src/tunnel/output/noninteractive/config/tunnels.js +2 -0
  46. package/distTs/src/tunnel/output/noninteractive/tunnel.js +13 -11
  47. package/distTs/src/tunnel/server/cert.js +2 -0
  48. package/distTs/src/tunnel/server/http1.js +15 -10
  49. package/distTs/src/tunnel/server/http2.js +18 -12
  50. package/distTs/src/tunnel/server/sftp.js +32 -15
  51. package/distTs/src/tunnel/server/ssh.js +49 -31
  52. package/distTs/src/tunnel/server/tls.js +11 -5
  53. package/distTs/src/tunnel/ssh/client.js +45 -31
  54. package/distTs/src/tunnel/tcp.js +61 -42
  55. package/distTs/src/tunnel/tunnel.js +196 -112
  56. package/distTs/src/types/tunnel.js +135 -0
  57. package/distTs/src/unitTest/requests.js +4 -4
  58. package/distTs/src/utils.js +2 -87
  59. package/distTs/src/visualTest/requests.js +12 -11
  60. package/package.json +16 -5
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TUNNEL_AGENT_ACTION = exports.TUNNEL_AGENT_STATUS = exports.TUNNEL_TERMINATE_AT = exports.TUNNEL_REGION = exports.TUNNEL_SOCKET_TYPE = exports.TUNNEL_EVENT_LATENCY = exports.TUNNEL_EVENT_TCP = exports.TUNNEL_EVENT_HTTP = exports.TUNNEL_EVENT = exports.TUNNEL_SOCKET_MESSAGE = exports.TUNNEL_SOCKET_EVENT = exports.TUNNEL_COMPRESSION_METHOD = exports.TUNNEL_HTTP_SOCKET = exports.TUNNEL_SSH_EVENT = exports.TUNNEL_HTTP_IDENTIFY = exports.TUNNEL_STATUS = exports.TUNNEL_TYPE = void 0;
4
+ var TUNNEL_TYPE;
5
+ (function (TUNNEL_TYPE) {
6
+ TUNNEL_TYPE["TCP"] = "TCP";
7
+ TUNNEL_TYPE["TLS"] = "TLS";
8
+ TUNNEL_TYPE["HTTP"] = "HTTP";
9
+ TUNNEL_TYPE["SSH"] = "SSH";
10
+ })(TUNNEL_TYPE || (exports.TUNNEL_TYPE = TUNNEL_TYPE = {}));
11
+ var TUNNEL_STATUS;
12
+ (function (TUNNEL_STATUS) {
13
+ TUNNEL_STATUS["OPEN"] = "OPEN";
14
+ TUNNEL_STATUS["CLOSED"] = "CLOSED";
15
+ })(TUNNEL_STATUS || (exports.TUNNEL_STATUS = TUNNEL_STATUS = {}));
16
+ var TUNNEL_HTTP_IDENTIFY;
17
+ (function (TUNNEL_HTTP_IDENTIFY) {
18
+ TUNNEL_HTTP_IDENTIFY["HTTP1"] = "1.1";
19
+ TUNNEL_HTTP_IDENTIFY["HTTP2"] = "2.0";
20
+ })(TUNNEL_HTTP_IDENTIFY || (exports.TUNNEL_HTTP_IDENTIFY = TUNNEL_HTTP_IDENTIFY = {}));
21
+ var TUNNEL_SSH_EVENT;
22
+ (function (TUNNEL_SSH_EVENT) {
23
+ TUNNEL_SSH_EVENT["CONNECTED"] = "connected";
24
+ TUNNEL_SSH_EVENT["DISCONNECTED"] = "disconnected";
25
+ TUNNEL_SSH_EVENT["STREAM_SSH"] = "stream ssh";
26
+ TUNNEL_SSH_EVENT["STREAM_TCP"] = "stream tcp";
27
+ TUNNEL_SSH_EVENT["STREAM_TLS"] = "stream tls";
28
+ TUNNEL_SSH_EVENT["STREAM_HTTP1"] = "stream http1";
29
+ TUNNEL_SSH_EVENT["STREAM_HTTP2"] = "stream http2";
30
+ })(TUNNEL_SSH_EVENT || (exports.TUNNEL_SSH_EVENT = TUNNEL_SSH_EVENT = {}));
31
+ var TUNNEL_HTTP_SOCKET;
32
+ (function (TUNNEL_HTTP_SOCKET) {
33
+ TUNNEL_HTTP_SOCKET["OPEN"] = "http socket open";
34
+ TUNNEL_HTTP_SOCKET["CLOSED"] = "http socket closed";
35
+ })(TUNNEL_HTTP_SOCKET || (exports.TUNNEL_HTTP_SOCKET = TUNNEL_HTTP_SOCKET = {}));
36
+ var TUNNEL_COMPRESSION_METHOD;
37
+ (function (TUNNEL_COMPRESSION_METHOD) {
38
+ TUNNEL_COMPRESSION_METHOD["IDENTITY"] = "identity";
39
+ TUNNEL_COMPRESSION_METHOD["BR"] = "br";
40
+ TUNNEL_COMPRESSION_METHOD["GZIP"] = "gzip";
41
+ TUNNEL_COMPRESSION_METHOD["DEFLATE"] = "deflate";
42
+ })(TUNNEL_COMPRESSION_METHOD || (exports.TUNNEL_COMPRESSION_METHOD = TUNNEL_COMPRESSION_METHOD = {}));
43
+ var TUNNEL_SOCKET_EVENT;
44
+ (function (TUNNEL_SOCKET_EVENT) {
45
+ TUNNEL_SOCKET_EVENT["CONNECTED"] = "socket connected";
46
+ TUNNEL_SOCKET_EVENT["DISCONNECTED"] = "socket disconnected";
47
+ TUNNEL_SOCKET_EVENT["FETCH_SUCCESS"] = "fetch success";
48
+ TUNNEL_SOCKET_EVENT["FETCH_FAILED"] = "fetch failed";
49
+ TUNNEL_SOCKET_EVENT["AGENT"] = "agent";
50
+ TUNNEL_SOCKET_EVENT["TUNNEL"] = "tunnel";
51
+ })(TUNNEL_SOCKET_EVENT || (exports.TUNNEL_SOCKET_EVENT = TUNNEL_SOCKET_EVENT = {}));
52
+ var TUNNEL_SOCKET_MESSAGE;
53
+ (function (TUNNEL_SOCKET_MESSAGE) {
54
+ TUNNEL_SOCKET_MESSAGE["READY"] = "ready";
55
+ TUNNEL_SOCKET_MESSAGE["TUNNEL"] = "tunnel";
56
+ TUNNEL_SOCKET_MESSAGE["TUNNEL_STOPPED"] = "tunnel stopped";
57
+ TUNNEL_SOCKET_MESSAGE["TUNNEL_OPEN"] = "tunnel open";
58
+ TUNNEL_SOCKET_MESSAGE["TUNNEL_CLOSED"] = "tunnel closed";
59
+ TUNNEL_SOCKET_MESSAGE["TUNNEL_TCP_OPEN"] = "tunnel tcp open";
60
+ TUNNEL_SOCKET_MESSAGE["TUNNEL_TCP_CLOSED"] = "tunnel tcp closed";
61
+ TUNNEL_SOCKET_MESSAGE["TUNNEL_TLS_OPEN"] = "tunnel tls open";
62
+ TUNNEL_SOCKET_MESSAGE["TUNNEL_TLS_CLOSED"] = "tunnel tls closed";
63
+ TUNNEL_SOCKET_MESSAGE["TUNNEL_HTTP_IDENTIFIED"] = "tunnel http identified";
64
+ TUNNEL_SOCKET_MESSAGE["TUNNEL_HTTP_REQUESTS"] = "tunnel http requests";
65
+ TUNNEL_SOCKET_MESSAGE["TUNNEL_HTTP_REQUEST"] = "tunnel http request";
66
+ TUNNEL_SOCKET_MESSAGE["TUNNEL_HTTP_RESPONSE"] = "tunnel http response";
67
+ TUNNEL_SOCKET_MESSAGE["TUNNEL_HTTP_RETRY"] = "tunnel http retry";
68
+ })(TUNNEL_SOCKET_MESSAGE || (exports.TUNNEL_SOCKET_MESSAGE = TUNNEL_SOCKET_MESSAGE = {}));
69
+ var TUNNEL_EVENT;
70
+ (function (TUNNEL_EVENT) {
71
+ TUNNEL_EVENT["OPEN"] = "open";
72
+ TUNNEL_EVENT["CLOSED"] = "closed";
73
+ TUNNEL_EVENT["TCP_OPEN"] = "tcp open";
74
+ TUNNEL_EVENT["TCP_CLOSED"] = "tcp closed";
75
+ TUNNEL_EVENT["TLS_OPEN"] = "tls open";
76
+ TUNNEL_EVENT["TLS_CLOSED"] = "tls closed";
77
+ TUNNEL_EVENT["HTTP_OPEN"] = "http open";
78
+ TUNNEL_EVENT["HTTP_CLOSED"] = "http closed";
79
+ TUNNEL_EVENT["HTTP_IDENTIFIED"] = "http identified";
80
+ TUNNEL_EVENT["HTTP_REQUEST"] = "http request";
81
+ TUNNEL_EVENT["HTTP_RESPONSE"] = "http response";
82
+ TUNNEL_EVENT["HTTP_SESSION_OPEN"] = "http session open";
83
+ TUNNEL_EVENT["HTTP_SESSION_CLOSED"] = "http session closed";
84
+ TUNNEL_EVENT["STOPPED"] = "stopped";
85
+ TUNNEL_EVENT["IDENTIFIED"] = "tunnel identified";
86
+ TUNNEL_EVENT["TLS_SOCKET"] = "tls socket";
87
+ })(TUNNEL_EVENT || (exports.TUNNEL_EVENT = TUNNEL_EVENT = {}));
88
+ var TUNNEL_EVENT_HTTP;
89
+ (function (TUNNEL_EVENT_HTTP) {
90
+ TUNNEL_EVENT_HTTP["NEW_REQUEST"] = "new request";
91
+ TUNNEL_EVENT_HTTP["NEW_REQUEST_END"] = "new request end";
92
+ TUNNEL_EVENT_HTTP["NEW_RESPONSE"] = "new response";
93
+ TUNNEL_EVENT_HTTP["NEW_RESPONSE_END"] = "new response end";
94
+ })(TUNNEL_EVENT_HTTP || (exports.TUNNEL_EVENT_HTTP = TUNNEL_EVENT_HTTP = {}));
95
+ var TUNNEL_EVENT_TCP;
96
+ (function (TUNNEL_EVENT_TCP) {
97
+ TUNNEL_EVENT_TCP["CLOSED"] = "closed";
98
+ })(TUNNEL_EVENT_TCP || (exports.TUNNEL_EVENT_TCP = TUNNEL_EVENT_TCP = {}));
99
+ var TUNNEL_EVENT_LATENCY;
100
+ (function (TUNNEL_EVENT_LATENCY) {
101
+ TUNNEL_EVENT_LATENCY["RECONNECTED"] = "reconnected";
102
+ })(TUNNEL_EVENT_LATENCY || (exports.TUNNEL_EVENT_LATENCY = TUNNEL_EVENT_LATENCY = {}));
103
+ var TUNNEL_SOCKET_TYPE;
104
+ (function (TUNNEL_SOCKET_TYPE) {
105
+ TUNNEL_SOCKET_TYPE[TUNNEL_SOCKET_TYPE["TCP"] = 0] = "TCP";
106
+ TUNNEL_SOCKET_TYPE[TUNNEL_SOCKET_TYPE["TLS"] = 1] = "TLS";
107
+ TUNNEL_SOCKET_TYPE[TUNNEL_SOCKET_TYPE["HTTP1"] = 2] = "HTTP1";
108
+ TUNNEL_SOCKET_TYPE[TUNNEL_SOCKET_TYPE["HTTP2"] = 3] = "HTTP2";
109
+ TUNNEL_SOCKET_TYPE[TUNNEL_SOCKET_TYPE["SSH"] = 4] = "SSH";
110
+ })(TUNNEL_SOCKET_TYPE || (exports.TUNNEL_SOCKET_TYPE = TUNNEL_SOCKET_TYPE = {}));
111
+ var TUNNEL_REGION;
112
+ (function (TUNNEL_REGION) {
113
+ TUNNEL_REGION["US"] = "US";
114
+ TUNNEL_REGION["EU"] = "EU";
115
+ })(TUNNEL_REGION || (exports.TUNNEL_REGION = TUNNEL_REGION = {}));
116
+ var TUNNEL_TERMINATE_AT;
117
+ (function (TUNNEL_TERMINATE_AT) {
118
+ TUNNEL_TERMINATE_AT["TARGET"] = "TARGET";
119
+ TUNNEL_TERMINATE_AT["AGENT"] = "AGENT";
120
+ TUNNEL_TERMINATE_AT["REGION"] = "REGION";
121
+ })(TUNNEL_TERMINATE_AT || (exports.TUNNEL_TERMINATE_AT = TUNNEL_TERMINATE_AT = {}));
122
+ var TUNNEL_AGENT_STATUS;
123
+ (function (TUNNEL_AGENT_STATUS) {
124
+ TUNNEL_AGENT_STATUS["ENABLED"] = "enabled";
125
+ TUNNEL_AGENT_STATUS["FETCH_FAILED"] = "fetch agent failed, retrying";
126
+ TUNNEL_AGENT_STATUS["INITIALIZING"] = "initializing";
127
+ TUNNEL_AGENT_STATUS["DISABLED"] = "disabled";
128
+ })(TUNNEL_AGENT_STATUS || (exports.TUNNEL_AGENT_STATUS = TUNNEL_AGENT_STATUS = {}));
129
+ var TUNNEL_AGENT_ACTION;
130
+ (function (TUNNEL_AGENT_ACTION) {
131
+ TUNNEL_AGENT_ACTION["STOP"] = "STOP";
132
+ TUNNEL_AGENT_ACTION["START"] = "START";
133
+ TUNNEL_AGENT_ACTION["RESTART"] = "RESTART";
134
+ TUNNEL_AGENT_ACTION["DELETE"] = "DELETE";
135
+ })(TUNNEL_AGENT_ACTION || (exports.TUNNEL_AGENT_ACTION = TUNNEL_AGENT_ACTION = {}));
@@ -34,7 +34,7 @@ async function sendUploadRequest(files, ciInfo) {
34
34
  formData.append('to_revision', ciInfo.toRevision);
35
35
  formData.append('build_id', ciInfo.buildId);
36
36
  const [message, json] = await sendRequest({
37
- url: '/unit-tests/import',
37
+ path: '/unit-tests/import',
38
38
  payload: formData,
39
39
  });
40
40
  if (message) {
@@ -45,9 +45,9 @@ async function sendUploadRequest(files, ciInfo) {
45
45
  }
46
46
  return json;
47
47
  }
48
- async function sendRequest({ url, payload, }) {
49
- const fullUrl = `${getServiceUrl()}${url}`;
50
- output_1.default.debug((0, texts_1.LOG_SENDING_REQUEST)(fullUrl));
48
+ async function sendRequest({ path, payload, }) {
49
+ const fullUrl = new URL(getServiceUrl(), path);
50
+ output_1.default.debug((0, texts_1.LOG_SENDING_REQUEST)(fullUrl.toString()));
51
51
  const init = {
52
52
  method: 'POST',
53
53
  redirect: 'follow',
@@ -26,9 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.TUNNEL_EVENT_HTTP_CLOSED = exports.TUNNEL_EVENT_HTTP_OPEN = exports.TUNNEL_EVENT_TLS_CLOSED = exports.TUNNEL_EVENT_TLS_OPEN = exports.TUNNEL_EVENT_TCP_CLOSED = exports.TUNNEL_EVENT_TCP_OPEN = exports.TUNNEL_EVENT_CLOSED = exports.TUNNEL_EVENT_OPEN = exports.EVENT_TUNNEL_HTTP_NEW_RESPONSE_END = exports.EVENT_TUNNEL_HTTP_NEW_RESPONSE = exports.EVENT_TUNNEL_HTTP_NEW_REQUEST_END = exports.EVENT_TUNNEL_HTTP_NEW_REQUEST = exports.TUNNEL_HTTP_CB_MIN_REQUESTS = exports.TUNNEL_HTTP_CB_WINDOW = exports.TUNNEL_MAX_REQUEST_SIZE_TO_SYNC = exports.TUNNEL_HTTP_LOG_MAX_REQUESTS = exports.TUNNEL_HTTP_LOG_MAX_BODY = exports.TUNNEL_HTTP_RATE_WINDOW = exports.TUNNEL_HTTP_RATE_LIMIT = exports.SOCKET_TYPE_SSH = exports.SOCKET_TYPE_HTTP2 = exports.SOCKET_TYPE_HTTP1 = exports.SOCKET_TYPE_TLS = exports.SOCKET_TYPE_TCP = exports.SSH_CLIENT_EVENT_STREAM_HTTP2 = exports.SSH_CLIENT_EVENT_STREAM_HTTP1 = exports.SSH_CLIENT_EVENT_STREAM_TLS = exports.SSH_CLIENT_EVENT_STREAM_TCP = exports.SSH_CLIENT_EVENT_STREAM_SSH = exports.SSH_CLIENT_EVENT_DISCONNECTED = exports.SSH_CLIENT_EVENT_CONNECTED = exports.TLS_SOCKET = exports.HTTP2_REQUEST = exports.HTTP2_SESSION_CLOSED = exports.HTTP2_SESSION_OPEN = exports.HTTP1_REQUEST = exports.HTTP1_SOCKET_CLOSED = exports.HTTP1_SOCKET_OPEN = exports.TUNNEL_IDENTIFIED_HTTP2 = exports.TUNNEL_IDENTIFIED_HTTP1 = exports.EVENT_TUNNEL_IDENTIFIED = exports.TUNNEL_SSH = exports.TUNNEL_TLS = exports.TUNNEL_TCP = exports.TUNNEL_HTTP = exports.TLS_TERMINATE_AT_REGION = exports.TLS_TERMINATE_AT_AGENT = exports.TLS_TERMINATE_AT_TARGET = exports.REGION_EU = exports.REGION_US = void 0;
30
- exports.TUNNEL_COMPRESSION_METHOD_BR = exports.TUNNEL_COMPRESSION_METHOD_IDENTITY = exports.TARGET_ONLY_PORT_REGEX = exports.TARGET_HTTP_REGEX = exports.TARGET_TCP_TLS_REGEX = exports.ApiErrorTunnelsDisabled = exports.ApiErrorWorkspaceFlagged = exports.ApiErrorTunnelLimitReached = exports.ApiErrorAgentLimitReached = exports.ApiErrorDomainRestricted = exports.ApiErrorTargetInvalid = exports.ApiErrorWrongToken = exports.ApiErrorFailedToConnect = exports.ApiErrorAgentNotFound = exports.SUGGESTED_BROWSER_VERSION = exports.SOCKET_IO_EVENT_TUNNEL = exports.SOCKET_IO_EVENT_AGENT = exports.SOCKET_IO_EVENT_FETCH_FAILED = exports.SOCKET_IO_EVENT_FETCH_SUCCESS = exports.SOCKET_IO_EVENT_DISCONNECTED = exports.SOCKET_IO_EVENT_CONNECTED = exports.AGENT_SOCKET_MESSAGE_TUNNEL_HTTP_RETRY = exports.AGENT_SOCKET_MESSAGE_TUNNEL_HTTP_RESPONSE = exports.AGENT_SOCKET_MESSAGE_TUNNEL_HTTP_REQUEST = exports.AGENT_SOCKET_MESSAGE_TUNNEL_HTTP_REQUESTS = exports.AGENT_SOCKET_MESSAGE_TUNNEL_HTTP_IDENTIFIED = exports.AGENT_SOCKET_MESSAGE_TUNNEL_TLS_CLOSED = exports.AGENT_SOCKET_MESSAGE_TUNNEL_TLS_OPEN = exports.AGENT_SOCKET_MESSAGE_TUNNEL_TCP_CLOSED = exports.AGENT_SOCKET_MESSAGE_TUNNEL_TCP_OPEN = exports.AGENT_SOCKET_MESSAGE_TUNNEL_CLOSED = exports.AGENT_SOCKET_MESSAGE_TUNNEL_OPEN = exports.AGENT_SOCKET_MESSAGE_TUNNEL_STOPPED = exports.AGENT_SOCKET_MESSAGE_TUNNEL = exports.AGENT_SOCKET_MESSAGE_READY = exports.AGENT_ACTION_DELETE = exports.AGENT_ACTION_RESTART = exports.AGENT_ACTION_START = exports.AGENT_ACTION_STOP = exports.AGENT_STATUS_ENABLED = exports.AGENT_STATUS_FETCH_FAILED = exports.AGENT_STATUS_INITIALIZING = exports.AGENT_STATUS_DISABLED = exports.DEFAULT_TIMEOUT = exports.TUNNEL_CLOSED = exports.TUNNEL_OPEN = exports.TUNNEL_EVENT_STOPPED = exports.TUNNEL_EVENT_HTTP_RESPONSE = exports.TUNNEL_EVENT_HTTP_REQUEST = exports.TUNNEL_EVENT_HTTP_IDENTIFIED = void 0;
31
- exports.getBasicCommandTls = exports.getBasicCommandHttp = exports.getBasicCommandTcp = exports.createSshHostKey = exports.getRealTargetHost = exports.isWindows = exports.isLinux = exports.isOsx = exports.isDocker = exports.sleep = exports.getLatestVersion = exports.getVersionEnv = exports.getVersionWithoutEnv = exports.getVersion = exports.getHomeDirectory = exports.newCommand = exports.formatHelp = exports.getPlatform = exports.getHostname = exports.isStringRegExp = exports.getRootDir = exports.TCP_EVENT_CLOSED = exports.TUNNEL_LATENCY_EVENT_RECONNECTED = exports.TUNNEL_COMPRESSION_METHOD_DEFLATE = exports.TUNNEL_COMPRESSION_METHOD_GZIP = void 0;
29
+ exports.getBasicCommandTls = exports.getBasicCommandHttp = exports.getBasicCommandTcp = exports.createSshHostKey = exports.getRealTargetHost = exports.isWindows = exports.isLinux = exports.isOsx = exports.isDocker = exports.sleep = exports.getLatestVersion = exports.getVersionEnv = exports.getVersionWithoutEnv = exports.getVersion = exports.getHomeDirectory = exports.newCommand = exports.formatHelp = exports.getPlatform = exports.getHostname = exports.isStringRegExp = exports.getRootDir = exports.TARGET_ONLY_PORT_REGEX = exports.TARGET_HTTP_REGEX = exports.TARGET_TCP_TLS_REGEX = exports.ApiErrorTunnelsDisabled = exports.ApiErrorWorkspaceFlagged = exports.ApiErrorTunnelLimitReached = exports.ApiErrorAgentLimitReached = exports.ApiErrorDomainRestricted = exports.ApiErrorTargetInvalid = exports.ApiErrorWrongToken = exports.ApiErrorFailedToConnect = exports.ApiErrorAgentNotFound = exports.SUGGESTED_BROWSER_VERSION = exports.DEFAULT_TIMEOUT = exports.TUNNEL_HTTP_CB_MIN_REQUESTS = exports.TUNNEL_HTTP_CB_WINDOW = exports.TUNNEL_MAX_REQUEST_SIZE_TO_SYNC = exports.TUNNEL_HTTP_LOG_MAX_REQUESTS = exports.TUNNEL_HTTP_LOG_MAX_BODY = exports.TUNNEL_HTTP_RATE_WINDOW = exports.TUNNEL_HTTP_RATE_LIMIT = void 0;
32
30
  exports.apiErrorCodeToClass = apiErrorCodeToClass;
33
31
  exports.isFile = isFile;
34
32
  const node_path_1 = __importStar(require("node:path"));
@@ -39,37 +37,6 @@ const node_sea_1 = require("node:sea");
39
37
  const commander_1 = require("commander");
40
38
  const texts_2 = require("./texts");
41
39
  const node_os_1 = __importStar(require("node:os"));
42
- exports.REGION_US = 'US';
43
- exports.REGION_EU = 'EU';
44
- exports.TLS_TERMINATE_AT_TARGET = 'TARGET';
45
- exports.TLS_TERMINATE_AT_AGENT = 'AGENT';
46
- exports.TLS_TERMINATE_AT_REGION = 'REGION';
47
- exports.TUNNEL_HTTP = 'HTTP';
48
- exports.TUNNEL_TCP = 'TCP';
49
- exports.TUNNEL_TLS = 'TLS';
50
- exports.TUNNEL_SSH = 'SSH';
51
- exports.EVENT_TUNNEL_IDENTIFIED = 'tunnel identified';
52
- exports.TUNNEL_IDENTIFIED_HTTP1 = '1.1';
53
- exports.TUNNEL_IDENTIFIED_HTTP2 = '2.0';
54
- exports.HTTP1_SOCKET_OPEN = 'http socket open';
55
- exports.HTTP1_SOCKET_CLOSED = 'http socket closed';
56
- exports.HTTP1_REQUEST = 'http request';
57
- exports.HTTP2_SESSION_OPEN = 'http session open';
58
- exports.HTTP2_SESSION_CLOSED = 'http session closed';
59
- exports.HTTP2_REQUEST = 'http request';
60
- exports.TLS_SOCKET = 'tls socket';
61
- exports.SSH_CLIENT_EVENT_CONNECTED = 'connected';
62
- exports.SSH_CLIENT_EVENT_DISCONNECTED = 'disconnected';
63
- exports.SSH_CLIENT_EVENT_STREAM_SSH = 'stream ssh';
64
- exports.SSH_CLIENT_EVENT_STREAM_TCP = 'stream tcp';
65
- exports.SSH_CLIENT_EVENT_STREAM_TLS = 'stream tls';
66
- exports.SSH_CLIENT_EVENT_STREAM_HTTP1 = 'stream http1';
67
- exports.SSH_CLIENT_EVENT_STREAM_HTTP2 = 'stream http2';
68
- exports.SOCKET_TYPE_TCP = 0;
69
- exports.SOCKET_TYPE_TLS = 1;
70
- exports.SOCKET_TYPE_HTTP1 = 2;
71
- exports.SOCKET_TYPE_HTTP2 = 3;
72
- exports.SOCKET_TYPE_SSH = 4;
73
40
  exports.TUNNEL_HTTP_RATE_LIMIT = 2000;
74
41
  exports.TUNNEL_HTTP_RATE_WINDOW = 60000;
75
42
  exports.TUNNEL_HTTP_LOG_MAX_BODY = 5242880; // 5MB
@@ -77,53 +44,7 @@ exports.TUNNEL_HTTP_LOG_MAX_REQUESTS = 20;
77
44
  exports.TUNNEL_MAX_REQUEST_SIZE_TO_SYNC = 25600; // 25kB (1 request do frontu moze miec max 1MB, 20 requestow po req i res body)
78
45
  exports.TUNNEL_HTTP_CB_WINDOW = 10000;
79
46
  exports.TUNNEL_HTTP_CB_MIN_REQUESTS = 20;
80
- exports.EVENT_TUNNEL_HTTP_NEW_REQUEST = 'new request';
81
- exports.EVENT_TUNNEL_HTTP_NEW_REQUEST_END = 'new request end';
82
- exports.EVENT_TUNNEL_HTTP_NEW_RESPONSE = 'new response';
83
- exports.EVENT_TUNNEL_HTTP_NEW_RESPONSE_END = 'new response end';
84
- exports.TUNNEL_EVENT_OPEN = 'open';
85
- exports.TUNNEL_EVENT_CLOSED = 'closed';
86
- exports.TUNNEL_EVENT_TCP_OPEN = 'tcp open';
87
- exports.TUNNEL_EVENT_TCP_CLOSED = 'tcp closed';
88
- exports.TUNNEL_EVENT_TLS_OPEN = 'tls open';
89
- exports.TUNNEL_EVENT_TLS_CLOSED = 'tls closed';
90
- exports.TUNNEL_EVENT_HTTP_OPEN = 'http open';
91
- exports.TUNNEL_EVENT_HTTP_CLOSED = 'http closed';
92
- exports.TUNNEL_EVENT_HTTP_IDENTIFIED = 'http identified';
93
- exports.TUNNEL_EVENT_HTTP_REQUEST = 'http request';
94
- exports.TUNNEL_EVENT_HTTP_RESPONSE = 'http response';
95
- exports.TUNNEL_EVENT_STOPPED = 'stopped';
96
- exports.TUNNEL_OPEN = 'OPEN';
97
- exports.TUNNEL_CLOSED = 'CLOSED';
98
47
  exports.DEFAULT_TIMEOUT = 30;
99
- exports.AGENT_STATUS_DISABLED = 'disabled';
100
- exports.AGENT_STATUS_INITIALIZING = 'initializing';
101
- exports.AGENT_STATUS_FETCH_FAILED = 'fetch agent failed, retrying';
102
- exports.AGENT_STATUS_ENABLED = 'enabled';
103
- exports.AGENT_ACTION_STOP = 'STOP';
104
- exports.AGENT_ACTION_START = 'START';
105
- exports.AGENT_ACTION_RESTART = 'RESTART';
106
- exports.AGENT_ACTION_DELETE = 'DELETE';
107
- exports.AGENT_SOCKET_MESSAGE_READY = 'ready';
108
- exports.AGENT_SOCKET_MESSAGE_TUNNEL = 'tunnel';
109
- exports.AGENT_SOCKET_MESSAGE_TUNNEL_STOPPED = 'tunnel stopped';
110
- exports.AGENT_SOCKET_MESSAGE_TUNNEL_OPEN = 'tunnel open';
111
- exports.AGENT_SOCKET_MESSAGE_TUNNEL_CLOSED = 'tunnel closed';
112
- exports.AGENT_SOCKET_MESSAGE_TUNNEL_TCP_OPEN = 'tunnel tcp open';
113
- exports.AGENT_SOCKET_MESSAGE_TUNNEL_TCP_CLOSED = 'tunnel tcp closed';
114
- exports.AGENT_SOCKET_MESSAGE_TUNNEL_TLS_OPEN = 'tunnel tls open';
115
- exports.AGENT_SOCKET_MESSAGE_TUNNEL_TLS_CLOSED = 'tunnel tls closed';
116
- exports.AGENT_SOCKET_MESSAGE_TUNNEL_HTTP_IDENTIFIED = 'tunnel http identified';
117
- exports.AGENT_SOCKET_MESSAGE_TUNNEL_HTTP_REQUESTS = 'tunnel http requests';
118
- exports.AGENT_SOCKET_MESSAGE_TUNNEL_HTTP_REQUEST = 'tunnel http request';
119
- exports.AGENT_SOCKET_MESSAGE_TUNNEL_HTTP_RESPONSE = 'tunnel http response';
120
- exports.AGENT_SOCKET_MESSAGE_TUNNEL_HTTP_RETRY = 'tunnel http retry';
121
- exports.SOCKET_IO_EVENT_CONNECTED = 'socket connected';
122
- exports.SOCKET_IO_EVENT_DISCONNECTED = 'socket disconnected';
123
- exports.SOCKET_IO_EVENT_FETCH_SUCCESS = 'fetch success';
124
- exports.SOCKET_IO_EVENT_FETCH_FAILED = 'fetch failed';
125
- exports.SOCKET_IO_EVENT_AGENT = 'agent';
126
- exports.SOCKET_IO_EVENT_TUNNEL = 'tunnel';
127
48
  exports.SUGGESTED_BROWSER_VERSION = '130.0.6723.69';
128
49
  function apiErrorCodeToClass(code, host) {
129
50
  if (code === 234031) {
@@ -209,12 +130,6 @@ exports.ApiErrorTunnelsDisabled = ApiErrorTunnelsDisabled;
209
130
  exports.TARGET_TCP_TLS_REGEX = /^(([^:/]+):)?(\d+)$/i;
210
131
  exports.TARGET_HTTP_REGEX = /^((https?):\/\/)?([^:/]+:[^@:/]+@)?([^:/]+)(:(\d+))?(\/)?$/i;
211
132
  exports.TARGET_ONLY_PORT_REGEX = /^\d+$/i;
212
- exports.TUNNEL_COMPRESSION_METHOD_IDENTITY = 'identity';
213
- exports.TUNNEL_COMPRESSION_METHOD_BR = 'br';
214
- exports.TUNNEL_COMPRESSION_METHOD_GZIP = 'gzip';
215
- exports.TUNNEL_COMPRESSION_METHOD_DEFLATE = 'deflate';
216
- exports.TUNNEL_LATENCY_EVENT_RECONNECTED = 'reconnected';
217
- exports.TCP_EVENT_CLOSED = 'closed';
218
133
  let cachedVersion;
219
134
  let cachedRoot;
220
135
  const getRootDir = () => {
@@ -399,7 +314,7 @@ const isWindows = () => {
399
314
  };
400
315
  exports.isWindows = isWindows;
401
316
  const getRealTargetHost = (target) => {
402
- return target;
317
+ return target || '';
403
318
  };
404
319
  exports.getRealTargetHost = getRealTargetHost;
405
320
  const createSshHostKey = () => {
@@ -91,7 +91,7 @@ async function sendSnapshot(snapshot, firstSnapshot) {
91
91
  };
92
92
  const formData = createFormData(info, files);
93
93
  const [message] = await sendRequest({
94
- url: '/snapshot',
94
+ path: '/snapshot',
95
95
  payload: formData,
96
96
  multipart: true,
97
97
  });
@@ -125,7 +125,7 @@ async function sendSnapshots(snapshots) {
125
125
  };
126
126
  const formData = createFormData(info, files);
127
127
  const [message] = await sendRequest({
128
- url: '/snapshots',
128
+ path: '/snapshots',
129
129
  payload: formData,
130
130
  multipart: true,
131
131
  });
@@ -139,7 +139,7 @@ async function closeSession() {
139
139
  token: context_1.token,
140
140
  buildId: context_1.buildId,
141
141
  };
142
- const [message] = await sendRequest({ url: '/close', payload });
142
+ const [message] = await sendRequest({ path: '/close', payload });
143
143
  if (!message) {
144
144
  throw new Error(texts_1.ERR_INVALID_CLOSE_SESSION_RESPONSE);
145
145
  }
@@ -147,7 +147,7 @@ async function closeSession() {
147
147
  }
148
148
  async function getDefaultSettings() {
149
149
  const [message, response] = await sendRequest({
150
- url: `/defaultSettings`,
150
+ path: `/defaultSettings`,
151
151
  });
152
152
  if (message) {
153
153
  throw new Error(message);
@@ -182,7 +182,7 @@ async function sendStorybook(snapshots, filePaths) {
182
182
  }));
183
183
  const formData = createFormData(info, files);
184
184
  const [message] = await sendRequest({
185
- url: '/storybook',
185
+ path: '/storybook',
186
186
  payload: formData,
187
187
  multipart: true,
188
188
  });
@@ -218,7 +218,7 @@ async function sendCompareLinks(urls, validatedOptions, sitemapSource) {
218
218
  cliId: context_1.cliId,
219
219
  };
220
220
  const [message] = await sendRequest({
221
- url: '/compareLinks',
221
+ path: '/compareLinks',
222
222
  payload: info,
223
223
  });
224
224
  if (!message) {
@@ -243,7 +243,7 @@ async function sendScrap(url, outputType, follow, quality, fullPage, cssSelector
243
243
  waitForElement,
244
244
  };
245
245
  const [message, response] = await sendRequest({
246
- url: '/scrap',
246
+ path: '/scrap',
247
247
  payload,
248
248
  });
249
249
  if (message) {
@@ -256,7 +256,7 @@ async function sendScrap(url, outputType, follow, quality, fullPage, cssSelector
256
256
  }
257
257
  async function downloadScrapPackage(buildId) {
258
258
  const [message, response] = await sendRequest({
259
- url: '/download',
259
+ path: '/download',
260
260
  payload: { token: context_1.token, buildId },
261
261
  });
262
262
  if (message) {
@@ -267,8 +267,9 @@ async function downloadScrapPackage(buildId) {
267
267
  }
268
268
  return response;
269
269
  }
270
- async function sendRequest({ url, payload, multipart, }) {
271
- output_1.default.debug((0, texts_1.LOG_SENDING_REQUEST)(`${getServiceUrl()}${url}`));
270
+ async function sendRequest({ path, payload, multipart, }) {
271
+ const fullUrl = new URL(getServiceUrl(), path);
272
+ output_1.default.debug((0, texts_1.LOG_SENDING_REQUEST)(fullUrl.toString()));
272
273
  const init = {
273
274
  method: 'GET',
274
275
  redirect: 'follow',
@@ -290,7 +291,7 @@ async function sendRequest({ url, payload, multipart, }) {
290
291
  init.method = 'POST';
291
292
  init.body = payload;
292
293
  }
293
- const response = await (0, undici_1.fetch)(`${getServiceUrl()}${url}`, init);
294
+ const response = await (0, undici_1.fetch)(fullUrl, init);
294
295
  const contentType = response.headers.get('content-type');
295
296
  if (contentType && contentType.includes('application/json')) {
296
297
  try {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bdy",
3
3
  "preferGlobal": false,
4
- "version": "1.11.0-stage",
4
+ "version": "1.12.1-dev",
5
5
  "type": "commonjs",
6
6
  "license": "MIT",
7
7
  "scripts": {
@@ -28,6 +28,7 @@
28
28
  "cross-spawn": "7.0.6",
29
29
  "eventsource": "4.0.0",
30
30
  "fastify": "4.28.1",
31
+ "fdir": "6.5.0",
31
32
  "isbinaryfile": "5.0.2",
32
33
  "jsonwebtoken": "9.0.2",
33
34
  "mime-db": "1.52.0",
@@ -36,10 +37,9 @@
36
37
  "node-fetch": "3.3.2",
37
38
  "node-forge": "1.3.1",
38
39
  "path-is-inside": "1.0.2",
39
- "fdir": "6.5.0",
40
40
  "picomatch": "4.0.3",
41
41
  "pino": "8.20.0",
42
- "punycode.js": "2.3.1",
42
+ "punycode": "2.3.1",
43
43
  "puppeteer-core": "23.6.0",
44
44
  "range-parser": "1.2.1",
45
45
  "socket.io-client": "4.7.5",
@@ -60,13 +60,24 @@
60
60
  "@rollup/plugin-replace": "6.0.1",
61
61
  "@stylistic/eslint-plugin-js": "2.9.0",
62
62
  "@types/cross-spawn": "6.0.6",
63
- "@types/picomatch": "4.0.2",
64
63
  "@types/eslint__js": "8.42.3",
65
- "@types/ssh2": "1.15.1",
64
+ "@types/picomatch": "4.0.2",
65
+ "@types/punycode": "2.1.4",
66
+ "@types/netmask": "2.0.5",
67
+ "@types/ssh2": "1.15.5",
66
68
  "@types/tar-stream": "3.1.3",
67
69
  "@types/terminal-kit": "2.5.6",
68
70
  "@types/uuid": "10.0.0",
69
71
  "@types/which": "3.0.4",
72
+ "@types/ws": "8.18.0",
73
+ "@types/jsonwebtoken": "9.0.2",
74
+ "@types/mime-db": "1.43.6",
75
+ "@types/basic-auth": "1.1.8",
76
+ "@types/path-is-inside": "1.0.2",
77
+ "@types/range-parser": "1.2.1",
78
+ "@types/content-disposition": "0.5.4",
79
+ "@types/mime-types": "2.1.4",
80
+ "@types/node-forge": "1.3.1",
70
81
  "eslint": "9.13.0",
71
82
  "eslint-config-prettier": "9.1.0",
72
83
  "globals": "15.11.0",