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.
- package/distTs/package.json +16 -5
- package/distTs/src/agent/agent.js +62 -36
- package/distTs/src/agent/linux.js +9 -4
- package/distTs/src/agent/manager.js +61 -42
- package/distTs/src/agent/osx.js +12 -5
- package/distTs/src/agent/socket/client.js +26 -7
- package/distTs/src/agent/socket/tunnel.js +56 -32
- package/distTs/src/agent/socket.js +83 -63
- package/distTs/src/agent/system.js +3 -1
- package/distTs/src/agent/windows.js +6 -6
- package/distTs/src/command/agent/install.js +4 -4
- package/distTs/src/command/agent/run.js +2 -2
- package/distTs/src/command/agent/status.js +6 -7
- package/distTs/src/command/agent/tunnel/http.js +4 -5
- package/distTs/src/command/agent/tunnel/tcp.js +3 -3
- package/distTs/src/command/agent/tunnel/tls.js +3 -3
- package/distTs/src/command/config/add/http.js +3 -3
- package/distTs/src/command/config/add/tcp.js +3 -3
- package/distTs/src/command/config/add/tls.js +3 -3
- package/distTs/src/command/config/get/region.js +1 -1
- package/distTs/src/command/pre.js +1 -1
- package/distTs/src/command/tunnel/http.js +2 -1
- package/distTs/src/command/tunnel/tcp.js +3 -3
- package/distTs/src/command/tunnel/tls.js +4 -4
- package/distTs/src/format.js +14 -15
- package/distTs/src/index.js +1 -1
- package/distTs/src/input.js +13 -12
- package/distTs/src/logger.js +12 -13
- package/distTs/src/tunnel/agent.js +3 -1
- package/distTs/src/tunnel/api/agent.js +1 -0
- package/distTs/src/tunnel/api/buddy.js +2 -0
- package/distTs/src/tunnel/cfg.js +6 -2
- package/distTs/src/tunnel/compression.js +17 -14
- package/distTs/src/tunnel/dns.js +20 -29
- package/distTs/src/tunnel/html.js +2 -0
- package/distTs/src/tunnel/http/log.js +30 -8
- package/distTs/src/tunnel/http/serve.js +3 -2
- package/distTs/src/tunnel/http/stream.js +5 -1
- package/distTs/src/tunnel/http.js +67 -26
- package/distTs/src/tunnel/identification.js +21 -14
- package/distTs/src/tunnel/latency.js +19 -11
- package/distTs/src/tunnel/output/interactive/tunnel.js +16 -9
- package/distTs/src/tunnel/output/noninteractive/agent/tunnels.js +4 -2
- package/distTs/src/tunnel/output/noninteractive/config/tunnel.js +6 -4
- package/distTs/src/tunnel/output/noninteractive/config/tunnels.js +2 -0
- package/distTs/src/tunnel/output/noninteractive/tunnel.js +13 -11
- package/distTs/src/tunnel/server/cert.js +2 -0
- package/distTs/src/tunnel/server/http1.js +15 -10
- package/distTs/src/tunnel/server/http2.js +18 -12
- package/distTs/src/tunnel/server/sftp.js +32 -15
- package/distTs/src/tunnel/server/ssh.js +49 -31
- package/distTs/src/tunnel/server/tls.js +11 -5
- package/distTs/src/tunnel/ssh/client.js +45 -31
- package/distTs/src/tunnel/tcp.js +61 -42
- package/distTs/src/tunnel/tunnel.js +196 -112
- package/distTs/src/types/tunnel.js +135 -0
- package/distTs/src/unitTest/requests.js +4 -4
- package/distTs/src/utils.js +2 -87
- package/distTs/src/visualTest/requests.js +12 -11
- 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
|
-
|
|
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({
|
|
49
|
-
const fullUrl =
|
|
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',
|
package/distTs/src/utils.js
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
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
|
-
|
|
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({
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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({
|
|
271
|
-
|
|
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)(
|
|
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.
|
|
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
|
|
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/
|
|
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",
|