bdy 1.23.6-dev → 1.23.7-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 +10 -2
- package/distTs/src/agent/linux.js +53 -3
- package/distTs/src/agent/manager.js +3 -6
- package/distTs/src/agent/osx.js +51 -3
- package/distTs/src/agent/system.js +400 -21
- package/distTs/src/agent/windows.js +4 -7
- package/distTs/src/command/agent/debug.js +2 -2
- package/distTs/src/command/agent/install.js +37 -10
- package/distTs/src/command/agent/restart.js +2 -2
- package/distTs/src/command/agent/run.js +3 -0
- package/distTs/src/command/agent/start.js +2 -2
- package/distTs/src/command/agent/status.js +19 -0
- package/distTs/src/command/agent/stop.js +2 -2
- package/distTs/src/command/agent/uninstall.js +5 -8
- package/distTs/src/command/agent/update.js +2 -2
- package/distTs/src/command/artifact/publish.js +3 -1
- package/distTs/src/command/version.js +13 -5
- package/distTs/src/logger.js +40 -4
- package/distTs/src/texts.js +35 -19
- package/distTs/src/utils.js +98 -3
- package/node_modules/asn1/Jenkinsfile +65 -0
- package/node_modules/asn1/LICENSE +19 -0
- package/node_modules/asn1/README.md +50 -0
- package/node_modules/asn1/lib/ber/errors.js +13 -0
- package/node_modules/asn1/lib/ber/index.js +27 -0
- package/node_modules/asn1/lib/ber/reader.js +262 -0
- package/node_modules/asn1/lib/ber/types.js +36 -0
- package/node_modules/asn1/lib/ber/writer.js +317 -0
- package/node_modules/asn1/lib/index.js +20 -0
- package/node_modules/asn1/package.json +31 -0
- package/node_modules/bcrypt-pbkdf/CONTRIBUTING.md +13 -0
- package/node_modules/bcrypt-pbkdf/LICENSE +66 -0
- package/node_modules/bcrypt-pbkdf/README.md +45 -0
- package/node_modules/bcrypt-pbkdf/index.js +556 -0
- package/node_modules/bcrypt-pbkdf/package.json +15 -0
- package/node_modules/safer-buffer/LICENSE +21 -0
- package/node_modules/safer-buffer/Porting-Buffer.md +268 -0
- package/node_modules/safer-buffer/Readme.md +156 -0
- package/node_modules/safer-buffer/dangerous.js +58 -0
- package/node_modules/safer-buffer/package.json +34 -0
- package/node_modules/safer-buffer/safer.js +77 -0
- package/node_modules/safer-buffer/tests.js +406 -0
- package/node_modules/ssh2/.eslintignore +4 -0
- package/node_modules/ssh2/.eslintrc.js +5 -0
- package/node_modules/ssh2/.github/workflows/ci.yml +110 -0
- package/node_modules/ssh2/.github/workflows/lint.yml +27 -0
- package/node_modules/ssh2/LICENSE +19 -0
- package/node_modules/ssh2/README.md +1529 -0
- package/node_modules/ssh2/SFTP.md +413 -0
- package/node_modules/ssh2/examples/server-chat.js +238 -0
- package/node_modules/ssh2/examples/sftp-server-download-only.js +134 -0
- package/node_modules/ssh2/install.js +27 -0
- package/node_modules/ssh2/lib/Channel.js +295 -0
- package/node_modules/ssh2/lib/agent.js +1123 -0
- package/node_modules/ssh2/lib/client.js +2176 -0
- package/node_modules/ssh2/lib/http-agents.js +84 -0
- package/node_modules/ssh2/lib/index.js +44 -0
- package/node_modules/ssh2/lib/keygen.js +582 -0
- package/node_modules/ssh2/lib/protocol/Protocol.js +2136 -0
- package/node_modules/ssh2/lib/protocol/SFTP.js +4052 -0
- package/node_modules/ssh2/lib/protocol/constants.js +356 -0
- package/node_modules/ssh2/lib/protocol/crypto/binding.gyp +23 -0
- package/node_modules/ssh2/lib/protocol/crypto/poly1305.js +43 -0
- package/node_modules/ssh2/lib/protocol/crypto/src/binding.cc +2300 -0
- package/node_modules/ssh2/lib/protocol/crypto.js +1602 -0
- package/node_modules/ssh2/lib/protocol/handlers.js +16 -0
- package/node_modules/ssh2/lib/protocol/handlers.misc.js +1285 -0
- package/node_modules/ssh2/lib/protocol/kex.js +1908 -0
- package/node_modules/ssh2/lib/protocol/keyParser.js +1484 -0
- package/node_modules/ssh2/lib/protocol/node-fs-compat.js +115 -0
- package/node_modules/ssh2/lib/protocol/utils.js +356 -0
- package/node_modules/ssh2/lib/protocol/zlib.js +255 -0
- package/node_modules/ssh2/lib/server.js +1380 -0
- package/node_modules/ssh2/lib/utils.js +336 -0
- package/node_modules/ssh2/package.json +49 -0
- package/node_modules/ssh2/test/common.js +316 -0
- package/node_modules/ssh2/test/fixtures/bad_rsa_private_key +26 -0
- package/node_modules/ssh2/test/fixtures/https_cert.pem +33 -0
- package/node_modules/ssh2/test/fixtures/https_key.pem +52 -0
- package/node_modules/ssh2/test/fixtures/id_dsa +12 -0
- package/node_modules/ssh2/test/fixtures/id_ecdsa +5 -0
- package/node_modules/ssh2/test/fixtures/id_rsa +15 -0
- package/node_modules/ssh2/test/fixtures/id_rsa.ppk +26 -0
- package/node_modules/ssh2/test/fixtures/id_rsa_enc +30 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa +21 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc +22 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc_gcm +23 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc_gcm.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc_gcm.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc_gcm.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa +9 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc +10 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc.pub.result +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc_gcm +10 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc_gcm.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc_gcm.pub.result +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc_gcm.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ed25519 +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ed25519.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ed25519.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ed25519.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa +27 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc +28 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc.pub.result +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc_gcm +29 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc_gcm.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc_gcm.pub.result +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc_gcm.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa +12 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa_enc +15 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa_enc.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa_enc.pub.result +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa_enc.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa +5 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa_enc +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa_enc.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa_enc.pub.result +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa_enc.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa +27 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc +30 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc.pub.result +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc_aes256 +54 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc_aes256.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc_aes256.pub.result +6 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc_aes256.result +6 -0
- package/node_modules/ssh2/test/fixtures/keyParser/ppk_dsa_enc +17 -0
- package/node_modules/ssh2/test/fixtures/keyParser/ppk_dsa_enc.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/ppk_rsa +26 -0
- package/node_modules/ssh2/test/fixtures/keyParser/ppk_rsa.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/ppk_rsa_enc +18 -0
- package/node_modules/ssh2/test/fixtures/keyParser/ppk_rsa_enc.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa.pub +9 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa2.pub +10 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa2.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa3.pub +11 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa3.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa4.pub +11 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa4.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa5.pub +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa5.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa6.pub +13 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa6.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/openssh_new_rsa +27 -0
- package/node_modules/ssh2/test/fixtures/ssh_host_dsa_key +12 -0
- package/node_modules/ssh2/test/fixtures/ssh_host_ecdsa_key +5 -0
- package/node_modules/ssh2/test/fixtures/ssh_host_rsa_key +15 -0
- package/node_modules/ssh2/test/test-exec.js +578 -0
- package/node_modules/ssh2/test/test-integration-openssh.js +486 -0
- package/node_modules/ssh2/test/test-keygen.js +60 -0
- package/node_modules/ssh2/test/test-misc-client-server.js +1460 -0
- package/node_modules/ssh2/test/test-openssh.js +261 -0
- package/node_modules/ssh2/test/test-protocol-crypto.js +631 -0
- package/node_modules/ssh2/test/test-protocol-keyparser.js +177 -0
- package/node_modules/ssh2/test/test-server-hostkeys.js +138 -0
- package/node_modules/ssh2/test/test-sftp.js +842 -0
- package/node_modules/ssh2/test/test-shell.js +109 -0
- package/node_modules/ssh2/test/test-userauth-agent-openssh.js +110 -0
- package/node_modules/ssh2/test/test-userauth-agent.js +171 -0
- package/node_modules/ssh2/test/test-userauth.js +611 -0
- package/node_modules/ssh2/test/test-worker-imports.js +25 -0
- package/node_modules/ssh2/test/test.js +20 -0
- package/node_modules/ssh2/util/build_pagent.bat +2 -0
- package/node_modules/ssh2/util/pagent.c +88 -0
- package/node_modules/ssh2/util/pagent.exe +0 -0
- package/node_modules/tweetnacl/.npmignore +4 -0
- package/node_modules/tweetnacl/AUTHORS.md +28 -0
- package/node_modules/tweetnacl/CHANGELOG.md +221 -0
- package/node_modules/tweetnacl/LICENSE +24 -0
- package/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md +20 -0
- package/node_modules/tweetnacl/README.md +459 -0
- package/node_modules/tweetnacl/nacl-fast.js +2388 -0
- package/node_modules/tweetnacl/nacl-fast.min.js +2 -0
- package/node_modules/tweetnacl/nacl.d.ts +98 -0
- package/node_modules/tweetnacl/nacl.js +1175 -0
- package/node_modules/tweetnacl/nacl.min.js +1 -0
- package/node_modules/tweetnacl/package.json +58 -0
- package/package.json +10 -2
|
@@ -10,8 +10,8 @@ const logger_1 = __importDefault(require("../../logger"));
|
|
|
10
10
|
const commandAgentRestart = (0, utils_1.newCommand)('restart', texts_1.DESC_COMMAND_AGENT_RESTART);
|
|
11
11
|
commandAgentRestart.action(async () => {
|
|
12
12
|
const AgentManager = require('../../agent/manager').default;
|
|
13
|
-
const
|
|
14
|
-
if (!
|
|
13
|
+
const hasRights = await AgentManager.system.hasRightsToManage();
|
|
14
|
+
if (!hasRights) {
|
|
15
15
|
output_1.default.exitError(texts_1.ERR_AGENT_ADMIN_RIGHTS);
|
|
16
16
|
}
|
|
17
17
|
if (!commandAgentRestart.agentInstalled) {
|
|
@@ -13,6 +13,9 @@ commandAgentRun.option('--port <port>');
|
|
|
13
13
|
commandAgentRun.option('--start <start>');
|
|
14
14
|
commandAgentRun.action(async (options) => {
|
|
15
15
|
const AgentManager = require('../../agent/manager').default;
|
|
16
|
+
// Only the service starts the agent this way, so its files are the system ones even when
|
|
17
|
+
// the user it runs as has an `--app` install of their own
|
|
18
|
+
AgentManager.system.serviceMode = true;
|
|
16
19
|
logger_1.default.changeRootPath(AgentManager.system.getNewAgentConfigDir());
|
|
17
20
|
AgentManager.start(options.id, options.host, options.token, parseInt(options.port, 10));
|
|
18
21
|
});
|
|
@@ -10,8 +10,8 @@ const commandAgentStart = (0, utils_1.newCommand)('start', texts_1.DESC_COMMAND_
|
|
|
10
10
|
commandAgentStart.action(async () => {
|
|
11
11
|
const AgentManager = require('../../agent/manager').default;
|
|
12
12
|
const logger = require('../../logger').default;
|
|
13
|
-
const
|
|
14
|
-
if (!
|
|
13
|
+
const hasRights = await AgentManager.system.hasRightsToManage();
|
|
14
|
+
if (!hasRights) {
|
|
15
15
|
output_1.default.exitError(texts_1.ERR_AGENT_ADMIN_RIGHTS);
|
|
16
16
|
}
|
|
17
17
|
if (!commandAgentStart.agentInstalled) {
|
|
@@ -4,12 +4,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const output_1 = __importDefault(require("../../output"));
|
|
7
|
+
const node_fs_1 = require("node:fs");
|
|
7
8
|
const texts_1 = require("../../texts");
|
|
8
9
|
const utils_1 = require("../../utils");
|
|
9
10
|
const tunnel_1 = require("../../types/tunnel");
|
|
10
11
|
const commandAgentStatus = (0, utils_1.newCommand)('status', texts_1.DESC_COMMAND_AGENT_STATUS);
|
|
11
12
|
const outputStatus = (installed, standalone, version, id, running, enabled, target, tunneling, proxy, status) => {
|
|
13
|
+
const AgentManager = require('../../agent/manager').default;
|
|
12
14
|
if (!installed) {
|
|
15
|
+
// Nothing loaded, yet there is a file where the install would be - it is unreadable or not
|
|
16
|
+
// the shape this cli writes. Worth naming rather than reporting no install at all: the
|
|
17
|
+
// system config takes precedence whatever state it is in, so while it sits there an `--app`
|
|
18
|
+
// install in this account's home is shadowed by it and every command says the same nothing.
|
|
19
|
+
const active = AgentManager.system.getActiveConfigPath();
|
|
20
|
+
if ((0, node_fs_1.existsSync)(active)) {
|
|
21
|
+
output_1.default.exitError((0, texts_1.ERR_AGENT_CONFIG_UNREADABLE)(active));
|
|
22
|
+
}
|
|
13
23
|
output_1.default.exitError(texts_1.ERR_AGENT_NOT_INSTALLED);
|
|
14
24
|
}
|
|
15
25
|
let txt = 'Installation: ';
|
|
@@ -51,6 +61,15 @@ const outputStatus = (installed, standalone, version, id, running, enabled, targ
|
|
|
51
61
|
output_1.default.normal('Problems: ');
|
|
52
62
|
output_1.default.error(status);
|
|
53
63
|
}
|
|
64
|
+
// A config in this account's home that is not the install being managed here - see
|
|
65
|
+
// isUserOwnedInstall for which one wins. Asked of the resolver rather than of `standalone`
|
|
66
|
+
// above: an install made before those files moved keeps its config in the system directory
|
|
67
|
+
// and reports itself as an app, and a leftover in the home is just as inert next to it.
|
|
68
|
+
// Inert, but only findable if it is said out loud.
|
|
69
|
+
const orphan = AgentManager.system.getStandaloneConfigPath();
|
|
70
|
+
if (!AgentManager.system.isUserOwnedInstall() && (0, node_fs_1.existsSync)(orphan)) {
|
|
71
|
+
output_1.default.error((0, texts_1.TXT_AGENT_APP_INSTALL_ORPHANED)(orphan));
|
|
72
|
+
}
|
|
54
73
|
output_1.default.exitNormal();
|
|
55
74
|
};
|
|
56
75
|
commandAgentStatus.action(async () => {
|
|
@@ -11,8 +11,8 @@ const commandAgentStop = (0, utils_1.newCommand)('stop', texts_1.DESC_COMMAND_AG
|
|
|
11
11
|
commandAgentStop.action(async () => {
|
|
12
12
|
const AgentManager = require('../../agent/manager').default;
|
|
13
13
|
const ApiAgent = require('../../tunnel/api/agent').default;
|
|
14
|
-
const
|
|
15
|
-
if (!
|
|
14
|
+
const hasRights = await AgentManager.system.hasRightsToManage();
|
|
15
|
+
if (!hasRights) {
|
|
16
16
|
output_1.default.exitError(texts_1.ERR_AGENT_ADMIN_RIGHTS);
|
|
17
17
|
}
|
|
18
18
|
if (!commandAgentStop.agentInstalled) {
|
|
@@ -12,8 +12,8 @@ commandAgentUninstall.action(async (options) => {
|
|
|
12
12
|
const AgentManager = require('../../agent/manager').default;
|
|
13
13
|
const ApiBuddy = require('../../tunnel/api/buddy').default;
|
|
14
14
|
const ApiAgent = require('../../tunnel/api/agent').default;
|
|
15
|
-
const
|
|
16
|
-
if (!
|
|
15
|
+
const hasRights = await AgentManager.system.hasRightsToManage();
|
|
16
|
+
if (!hasRights) {
|
|
17
17
|
output_1.default.exitError(texts_1.ERR_AGENT_ADMIN_RIGHTS);
|
|
18
18
|
}
|
|
19
19
|
const confirmed = options.force || (await output_1.default.confirm(texts_1.TXY_AGENT_CONFIRM_DELETE));
|
|
@@ -52,17 +52,14 @@ commandAgentUninstall.action(async (options) => {
|
|
|
52
52
|
// do nothing
|
|
53
53
|
}
|
|
54
54
|
try {
|
|
55
|
+
// The host key went with clearSystemFiles above. Asking for it here by way of
|
|
56
|
+
// getNewAgentConfigDir would resolve against a config that is already gone, and land on the
|
|
57
|
+
// other install's.
|
|
55
58
|
AgentManager.system.clearAgentFiles();
|
|
56
59
|
}
|
|
57
60
|
catch {
|
|
58
61
|
// do nothing
|
|
59
62
|
}
|
|
60
|
-
try {
|
|
61
|
-
AgentManager.system.clearNewAgentFiles();
|
|
62
|
-
}
|
|
63
|
-
catch {
|
|
64
|
-
// do nothing
|
|
65
|
-
}
|
|
66
63
|
output_1.default.exitSuccess(texts_1.TXT_AGENT_DISABLED);
|
|
67
64
|
});
|
|
68
65
|
exports.default = commandAgentUninstall;
|
|
@@ -12,8 +12,8 @@ commandAgentUpdate.action(async () => {
|
|
|
12
12
|
const AgentManager = require('../../agent/manager').default;
|
|
13
13
|
const ApiAgent = require('../../tunnel/api/agent').default;
|
|
14
14
|
const waitUntilAgentEnabled = require('../../agent/wait').default;
|
|
15
|
-
const
|
|
16
|
-
if (!
|
|
15
|
+
const hasRights = await AgentManager.system.hasRightsToManage();
|
|
16
|
+
if (!hasRights) {
|
|
17
17
|
output_1.default.exitError(texts_1.ERR_AGENT_ADMIN_RIGHTS);
|
|
18
18
|
}
|
|
19
19
|
if (!commandAgentUpdate.agentInstalled) {
|
|
@@ -196,7 +196,9 @@ const addEntryToZip = (dirPath, zip, entry) => {
|
|
|
196
196
|
resolve();
|
|
197
197
|
};
|
|
198
198
|
rs.on('data', (chunk) => {
|
|
199
|
-
|
|
199
|
+
// Always a Buffer here - no encoding is set on the stream - but the event is typed for
|
|
200
|
+
// the ones that do set one, and a string would reach fflate as something it cannot zip
|
|
201
|
+
file.push(typeof chunk === 'string' ? Buffer.from(chunk) : chunk, false);
|
|
200
202
|
});
|
|
201
203
|
rs.on('error', (err) => {
|
|
202
204
|
finish(err);
|
|
@@ -33,9 +33,12 @@ const updateByApt = (currentVersion, latestVersion) => {
|
|
|
33
33
|
const instructions = 'sudo apt-get update && sudo apt-get install -y bdy';
|
|
34
34
|
updateMessage(currentVersion, latestVersion, instructions);
|
|
35
35
|
};
|
|
36
|
-
const updateByNpm = (isWin, currentVersion, latestVersion, env) => {
|
|
36
|
+
const updateByNpm = async (isWin, currentVersion, latestVersion, env) => {
|
|
37
37
|
let instructions = '';
|
|
38
|
-
|
|
38
|
+
// Only prefixed with sudo where npm genuinely cannot write, which a node from nvm, fnm,
|
|
39
|
+
// volta or a user-set prefix always can. The old version asked for a password on every
|
|
40
|
+
// platform but windows, including the installs that had no use for one.
|
|
41
|
+
if (!isWin && !(await (0, utils_1.isNpmGlobalWritable)()))
|
|
39
42
|
instructions = 'sudo ';
|
|
40
43
|
instructions += 'npm i -g bdy';
|
|
41
44
|
if (env !== 'prod')
|
|
@@ -59,8 +62,13 @@ const updateByDownload = (platform, currentVersion, latestVersion, env) => {
|
|
|
59
62
|
let instructions = `curl https://es.buddy.works/bdy/${env}/${latestWithoutEnv}/${packageName}`;
|
|
60
63
|
if (isWin)
|
|
61
64
|
instructions += ' -o bdy.zip\ntar -xf bdy.zip';
|
|
62
|
-
else
|
|
63
|
-
instructions
|
|
65
|
+
else {
|
|
66
|
+
// Same rule as the npm instructions: sudo only where the destination is not this user's to
|
|
67
|
+
// write. On a mac with homebrew on an intel prefix it already is.
|
|
68
|
+
const dest = '/usr/local/bin/';
|
|
69
|
+
const elevate = (0, utils_1.isPathWritable)(dest) ? '' : 'sudo ';
|
|
70
|
+
instructions += ` -o bdy.tar.gz\n${elevate}tar -zxf bdy.tar.gz -C ${dest}`;
|
|
71
|
+
}
|
|
64
72
|
updateMessage(currentVersion, latestVersion, instructions);
|
|
65
73
|
};
|
|
66
74
|
const commandVersion = (0, utils_2.newCommand)('update');
|
|
@@ -97,7 +105,7 @@ commandVersion.action(async () => {
|
|
|
97
105
|
}
|
|
98
106
|
const isInstalled = await (0, utils_1.isInstalledByNpm)();
|
|
99
107
|
if (isInstalled) {
|
|
100
|
-
updateByNpm(isWin, currVersion, lastVersion, env);
|
|
108
|
+
await updateByNpm(isWin, currVersion, lastVersion, env);
|
|
101
109
|
return;
|
|
102
110
|
}
|
|
103
111
|
else {
|
package/distTs/src/logger.js
CHANGED
|
@@ -24,6 +24,9 @@ class Logger {
|
|
|
24
24
|
try {
|
|
25
25
|
const s = fs_1.default.statSync(this.logPath);
|
|
26
26
|
if (s.size > 5242880) {
|
|
27
|
+
// No rights to re-apply on the copy: copyFileSync takes the source's mode with it, so
|
|
28
|
+
// the rotated log is as open as the one it came from - 0666 in a home directory, 0640
|
|
29
|
+
// in the system one - and stays writable by whoever rotates it next
|
|
27
30
|
fs_1.default.copyFileSync(this.logPath, this.log1Path);
|
|
28
31
|
fs_1.default.truncateSync(this.logPath);
|
|
29
32
|
}
|
|
@@ -36,17 +39,46 @@ class Logger {
|
|
|
36
39
|
this.debugOn = debug;
|
|
37
40
|
this.getPino().level = this.debugOn ? 'debug' : 'info';
|
|
38
41
|
}
|
|
42
|
+
// Which directory the log landed in decides both of these. In a home directory the 0700 on
|
|
43
|
+
// the directory is what keeps it private, so the file stays world-writable on purpose: it is
|
|
44
|
+
// the one thing in there a root run creates fresh in someone else's home, and a mode that
|
|
45
|
+
// locked that account out of its own log would take down every later command it runs. The
|
|
46
|
+
// system directory is world-traversable by design, so there the mode is the only thing
|
|
47
|
+
// between the log and every local account - and its owner is the service user, never
|
|
48
|
+
// whoever's HOME a root process happens to have inherited.
|
|
49
|
+
applyLogRights(p) {
|
|
50
|
+
try {
|
|
51
|
+
// Trailing separator, so a sibling directory cannot pass for the home one
|
|
52
|
+
const home = (0, utils_1.getHomeDirectory)() + path_1.sep;
|
|
53
|
+
const inHome = p.startsWith(home);
|
|
54
|
+
fs_1.default.chmodSync(p, inHome ? 0o666 : 0o640);
|
|
55
|
+
if (inHome)
|
|
56
|
+
(0, utils_1.chownToHomeOwner)(p);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// do nothing, a log we cannot re-mode still works for the account that opened it
|
|
60
|
+
}
|
|
61
|
+
}
|
|
39
62
|
getPino() {
|
|
40
63
|
if (!this.p) {
|
|
41
64
|
this.logPath = (0, path_1.resolve)(this.rootPath, 'cli.log');
|
|
42
65
|
this.log1Path = (0, path_1.resolve)(this.rootPath, 'cli.1.log');
|
|
43
|
-
this.logStream = fs_1.default.openSync(this.logPath, 'w');
|
|
44
66
|
try {
|
|
45
|
-
fs_1.default.
|
|
67
|
+
this.logStream = fs_1.default.openSync(this.logPath, 'w');
|
|
46
68
|
}
|
|
47
69
|
catch {
|
|
48
|
-
//
|
|
70
|
+
// A log we cannot open is not a reason to fail the command - a read-only home, a full
|
|
71
|
+
// disk or a file left behind by another account all end up here
|
|
72
|
+
this.logStream = null;
|
|
73
|
+
this.logPath = null;
|
|
74
|
+
this.log1Path = null;
|
|
49
75
|
}
|
|
76
|
+
// Deliberately not inside the try above: the stream is already open and usable, and a
|
|
77
|
+
// mode or an owner that will not go on is no reason to throw it away and log nowhere.
|
|
78
|
+
// Resolving the home directory can itself fail - a service account whose home was
|
|
79
|
+
// removed - and the log that just opened is very often the system one.
|
|
80
|
+
if (this.logPath)
|
|
81
|
+
this.applyLogRights(this.logPath);
|
|
50
82
|
const pino = require('pino');
|
|
51
83
|
this.p = pino({
|
|
52
84
|
level: this.debugOn ? 'debug' : 'info',
|
|
@@ -57,7 +89,11 @@ class Logger {
|
|
|
57
89
|
level: label.toUpperCase(),
|
|
58
90
|
}),
|
|
59
91
|
},
|
|
60
|
-
},
|
|
92
|
+
},
|
|
93
|
+
// Not stdout as a fallback: it is machine-read by `--format json` and the mcp command
|
|
94
|
+
this.logStream === null
|
|
95
|
+
? { write: () => { } }
|
|
96
|
+
: pino.destination(this.logStream));
|
|
61
97
|
this.checkLogSize();
|
|
62
98
|
this.ts = setInterval(() => {
|
|
63
99
|
this.checkLogSize();
|
package/distTs/src/texts.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ERR_WRONG_CA = exports.ERR_WRONG_KEY_CERT = exports.ERR_NAME_WITHOUT_ASTERISK = exports.ERR_PORT_IS_NOT_VALID = exports.ERR_REGION_IS_NOT_VALID = exports.ERR_PATH_IS_NOT_DIRECTORY = exports.ERR_DIRECTORY_DOES_NOT_EXISTS = exports.ERR_TERMINATE_IS_NOT_VALID = exports.ERR_TIMEOUT_IS_NOT_VALID = exports.ERR_TYPE_IS_NOT_VALID = exports.ERR_TARGET_IS_NOT_VALID = exports.ERR_SAVING_AGENT_CONFIG = exports.ERR_AGENT_NOT_REGISTERED = exports.ERR_SANDBOX_BOOT_SCRIPT_NOT_EXISTS = exports.ERR_WRONG_FETCH = exports.ERR_RUN_WRONG_VARIABLE = exports.ERR_RUN_PIPELINE_WRONG_ACTION = exports.ERR_RUN_PIPELINE_WRONG_DELAY = exports.ERR_PIPELINE_RUNS_NOT_FOUND = exports.TXT_PIPELINES_NOT_FOUND = exports.ERR_RUN_PIPELINE_WRONG_RUN_ACTION_ID = exports.ERR_RUN_PIPELINE_WRONG_RUN_ID = exports.ERR_RUN_PIPELINE_WRONG_PRIORITY = exports.ERR_SANDBOX_EXEC_RUNTIME_NOT_FOUND = exports.ERR_ARTIFACT_VERSIONS_NOT_FOUND = exports.ERR_ARTIFACT_NOT_FOUND = exports.ERR_ARTIFACT_VERSION_NOT_FOUND = exports.ERR_ARTIFACT_VERSION_EXISTS = exports.ERR_ARTIFACT_VERSION_EXISTS_NO_FORCE = exports.ERR_ARTIFACT_PUBLISH_NOT_FOUND = exports.ERR_ARTIFACT_DOWNLOAD_NOT_FOUND = exports.ERR_CANT_APPLY_ACTION_EXECUTION = exports.ERR_PIPELINE_NOT_FOUND = exports.ERR_PROJECT_NOT_FOUND = exports.ERR_WORKSPACE_NOT_FOUND = exports.ERR_REST_API_YAML_NOT_FOUND = exports.ERR_REST_API_YAML = exports.ERR_REST_API_PROJECT = exports.ERR_REST_API_WORKSPACE = exports.ERR_PATH_NOT_EXISTS = exports.ERR_REST_API_REGION = exports.ERR_REST_API_URL = exports.ERR_REST_API_TOKEN = exports.ERR_REST_API_RATE_LIMIT = exports.ERR_REST_API_RESOURCE_NOT_FOUND = exports.ERR_REST_API_WRONG_TOKEN = exports.ERR_REST_API_CONNECT_ERROR = exports.ERR_REST_API_NOT_RESPONDING = exports.ERR_REST_API_GENERAL_ERROR = exports.ERR_CANCELLED = void 0;
|
|
4
|
-
exports.
|
|
5
|
-
exports.
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
11
|
-
exports.
|
|
12
|
-
exports.
|
|
13
|
-
exports.
|
|
14
|
-
exports.
|
|
15
|
-
exports.
|
|
16
|
-
exports.
|
|
17
|
-
exports.
|
|
18
|
-
exports.
|
|
19
|
-
exports.
|
|
20
|
-
exports.
|
|
21
|
-
exports.EXAMPLE_CRAWL_LINK = exports.EXAMPLE_CRAWL_RUN = exports.EXAMPLE_TESTS_CAPTURE = exports.EXAMPLE_TESTS_VISUAL_SESSION_CLOSE = exports.EXAMPLE_TESTS_VISUAL_SESSION_CREATE = exports.EXAMPLE_TESTS_VISUAL_LINK = exports.EXAMPLE_TESTS_VISUAL_UPLOAD = exports.EXAMPLE_TESTS_VISUAL_SETUP = exports.EXAMPLE_TESTS_UNIT_LINK = exports.EXAMPLE_TESTS_UNIT_UPLOAD = exports.EXAMPLE_ARTIFACT_VERSION_DELETE = exports.EXAMPLE_ARTIFACT_VERSION_GET = exports.EXAMPLE_ARTIFACT_VERSION_LIST = exports.EXAMPLE_ARTIFACT_CREATE = exports.EXAMPLE_ARTIFACT_DELETE = exports.EXAMPLE_ARTIFACT_DOWNLOAD = exports.EXAMPLE_ARTIFACT_PUBLISH = exports.EXAMPLE_ARTIFACT_VERSION_CREATE = exports.EXAMPLE_PIPELINE_RUN_RETRY = exports.EXAMPLE_PIPELINE_RUN_LIST = exports.EXAMPLE_PIPELINE_LIST = exports.EXAMPLE_PIPELINE_YML = exports.EXAMPLE_PIPELINE_GET = exports.EXAMPLE_PIPELINE_UPDATE = exports.EXAMPLE_PIPELINE_DELETE = exports.EXAMPLE_PIPELINE_CREATE = exports.EXAMPLE_PIPELINE_RUN_CANCEL = exports.EXAMPLE_PIPELINE_RUN_APPLY = exports.EXAMPLE_PIPELINE_RUN_LOGS = exports.EXAMPLE_PIPELINE_RUN_JSONL = exports.EXAMPLE_PIPELINE_RUN_STATUS = exports.EXAMPLE_PIPELINE_RUN_START = exports.EXAMPLE_SANDBOX_ENDPOINT_LIST = void 0;
|
|
4
|
+
exports.ERR_TOKEN_NOT_PROVIDED = exports.ERR_CANT_CREATE_DIR_IN_HOME = exports.ERR_CONNECTION_ERROR = exports.ERR_CONNECTION_TIMEOUT = exports.ERR_WRONG_STREAM = exports.ERR_WRONG_HANDSHAKE = exports.ERR_FETCH_VERSION = exports.ERR_ARTIFACT_DOWNLOAD_REPLACE = exports.ERR_ARTIFACT_DOWNLOAD_NOT_EMPTY_DIR = exports.ERR_ARTIFACT_DOWNLOAD_IS_FILE = exports.ERR_ARTIFACT_DOWNLOAD_READDIR = exports.ERR_ARTIFACT_DOWNLOAD_MKDIR = exports.ERR_SWW = exports.ERR_NOT_FOUND = exports.ERR_FAILED_TO_CONNECT_TO_AGENT = exports.ERR_TUNNEL_REMOVED = exports.ERR_TUNNELS_DISABLED = exports.ERR_AGENT_LIMIT_REACHED = exports.ERR_TUNNEL_TARGET_INVALID = exports.ERR_WORKSPACE_FLAGGED = exports.ERR_TUNNEL_LIMIT_REACHED = exports.ERR_DOMAIN_RESTRICTED = exports.ERR_AGENT_REMOVED = exports.ERR_FAILED_TO_CONNECT = exports.ERR_TUNNEL_ALREADY_EXISTS = exports.ERR_AGENT_NOT_SUPPORTED = exports.TXT_AGENT_APP_INSTALL_ORPHANED = exports.ERR_AGENT_APP_INSTALL_PRESENT = exports.ERR_AGENT_CONFIG_UNREADABLE = exports.ERR_AGENT_PORT_TAKEN = exports.ERR_AGENT_USER_UNKNOWN = exports.ERR_AGENT_DIR_REPLACED = exports.ERR_AGENT_ADMIN_RIGHTS = exports.ERR_SWW_AGENT_UPDATING = exports.ERR_SWW_AGENT_ENABLING = exports.ERR_AGENT_TAG_INVALID = exports.ERR_AGENT_NOT_FOUND = exports.ERR_AGENT_NOT_RUNNING = exports.ERR_AGENT_IS_NOT_SERVICE = exports.ERR_AGENT_NOT_INSTALLED = exports.ERR_TUNNEL_NOT_FOUND = exports.ERR_WHITELIST_IS_NOT_VALID = exports.ERR_USER_AGENT_IS_NOT_VALID = exports.ERR_BA_IS_NOT_VALID = exports.ERR_BA_LOGIN_NOT_PROVIDED = exports.ERR_BA_PASSWORD_NOT_PROVIDED = exports.ERR_CB_THRESHOLD_IS_NOT_VALID = exports.ERR_CERT_PATH_IS_NOT_VALID = exports.ERR_KEY_PATH_IS_NOT_VALID = exports.ERR_CA_PATH_IS_NOT_VALID = void 0;
|
|
5
|
+
exports.TXT_TOKEN_SAVED = exports.TXT_WHITELIST_SAVED = exports.TXT_TUNNEL_STOPPED = exports.TXT_TUNNEL_STARTED = exports.TXY_AGENT_CONFIRM_DELETE = exports.TXT_AGENT_DISABLED = exports.TXT_AGENT_ALREADY_INSTALLED = exports.TXT_AGENT_UPDATED = exports.TXT_AGENT_INSTALLED = exports.TXT_AGENT_NO_TAGS = exports.TXT_AGENT_TAGS_SET = exports.TXT_AGENT_TUNNELING_DISABLED = exports.TXT_AGENT_TUNNELING_ENABLED = exports.TXT_AGENT_PROXY_DISABLED = exports.TXT_AGENT_PROXY_ENABLED = exports.TXT_AGENT_TARGET_DISABLED = exports.TXT_AGENT_TARGET_ENABLED = exports.TXT_AGENT_RESTARTED = exports.TXT_AGENT_DEBUG_OFF = exports.TXT_AGENT_DEBUG_ON = exports.TXT_AGENT_USER_CHANGED = exports.TXT_AGENT_STARTED = exports.TXT_AGENT_STOPPED = exports.WARN_BROWSER_VERSION = exports.ERR_RESOURCE_DISCOVERY = exports.ERR_NO_SNAPSHOTS_TO_SEND = exports.ERR_INVALID_SNAPSHOT = exports.ERR_TEST_EXECUTION = exports.ERR_INVALID_JSON = exports.ERR_INVALID_DOWNLOAD_RESPONSE = exports.ERR_INVALID_CRAWL_RESPONSE = exports.ERR_INVALID_COMPARE_LINKS_RESPONSE = exports.ERR_INVALID_STORYBOOK_RESPONSE = exports.ERR_INVALID_DEFAULT_SETTINGS_RESPONSE = exports.ERR_INVALID_CLOSE_SESSION_RESPONSE = exports.ERR_INVALID_SNAPSHOTS_RESPONSE = exports.ERR_INVALID_SNAPSHOT_RESPONSE = exports.ERR_MISSING_URLS = exports.ERR_RESOURCE_NOT_FOUND = exports.ERR_MISSING_EXEC_COMMAND = exports.ERR_PARSING_STORIES = exports.ERR_UNSUPPORTED_STORYBOOK = exports.ERR_MISSING_STORYBOOK_INDEX_FILE = exports.ERR_WRONG_STORYBOOK_DIRECTORY = exports.ERR_MISSING_BUILD_ID = exports.ERR_MISSING_UT_TOKEN = exports.ERR_MISSING_CRAWL_TOKEN = exports.ERR_MISSING_VT_TOKEN = exports.ERR_CONFIG_CORRUPTED = exports.ERR_WRONG_TOKEN = void 0;
|
|
6
|
+
exports.DESC_COMMAND_AGENT_TUNNELING_ENABLE = exports.DESC_COMMAND_AGENT_PROXY_ENABLE = exports.DESC_COMMAND_AGENT_TARGET_ENABLE = exports.DESC_COMMAND_AGENT_PROXY_STATUS = exports.DESC_COMMAND_AGENT_TARGET_STATUS = exports.DESC_COMMAND_AGENT_STATUS = exports.DESC_COMMAND_AGENT_RESTART = exports.DESC_COMMAND_AGENT_ENABLE = exports.DESC_COMMAND_AGENT_DEBUG = exports.DESC_COMMAND_AGENT_DISABLE = exports.DESC_COMMAND_AGENT_START = exports.DESC_COMMAND_AGENT_INSTALL = exports.DESC_COMMAND_AGENT_UNINSTALL = exports.DESC_COMMAND_AGENT_TUNNEL_REMOVE = exports.DESC_COMMAND_AGENT_TUNNEL_STATUS = exports.DESC_COMMAND_AGENT_TUNNEL_LIST = exports.DESC_COMMAND_CONFIG_SET = exports.DESC_COMMAND_CONFIG_REMOVE = exports.DESC_COMMAND_CONFIG_GET = exports.DESC_COMMAND_CONFIG_ADD = exports.DESC_COMMAND_CONFIG_SET_WHITELIST = exports.DESC_COMMAND_CONFIG_SET_TOKEN = exports.DESC_COMMAND_CONFIG_SET_TIMEOUT = exports.DESC_COMMAND_CONFIG_SET_REGION = exports.DESC_COMMAND_CONFIG_REMOVE_TOKEN = exports.DESC_COMMAND_CONFIG_REMOVE_TUNNEL = exports.DESC_COMMAND_CONFIG_GET_WHITELIST = exports.DESC_COMMAND_CONFIG_GET_TUNNELS = exports.DESC_COMMAND_CONFIG_GET_TUNNEL = exports.DESC_COMMAND_CONFIG_GET_TOKEN = exports.DESC_COMMAND_CONFIG_GET_TIMEOUT = exports.DESC_COMMAND_CONFIG_GET_REGION = exports.DESC_COMMAND_CONFIG_ADD_TLS = exports.DESC_COMMAND_CONFIG_ADD_TCP = exports.DESC_COMMAND_CONFIG_ADD_HTTP = exports.AGENT_FETCH_RETRY = exports.NO_TUNNELS_STARTED = exports.TXT_AGENT_STANDALONE_EXITING = exports.TXT_AGENT_STANDALONE_STARTED = exports.TXT_AGENT_STANDALONE_AGENT_REGISTER_ERROR = exports.TXT_AGENT_STANDALONE_AGENT_REGISTERED = exports.TXT_AGENT_STANDALONE_AGENT_REGISTERING = exports.TXT_AGENT_STANDALONE_AGENT_FETCH_ERROR = exports.TXT_AGENT_STANDALONE_AGENT_FETCHED = exports.TXT_AGENT_STANDALONE_AGENT_FETCHING = exports.TXT_TUNNEL_ADDED = exports.TXT_TUNNEL_REMOVED = exports.TXT_REGION_SAVED = exports.TXT_TIMEOUT_SAVED = exports.TXT_TOKEN_REMOVED = void 0;
|
|
7
|
+
exports.DESC_COMMAND_VISUAL_UPLOAD = exports.DESC_COMMAND_VISUAL_SETUP = exports.DESC_COMMAND_SESSION_CLOSE = exports.DESC_COMMAND_SESSION_CREATE = exports.DESC_COMMAND_SESSION = exports.DESC_COMMAND_VISUAL = exports.DESC_COMMAND_UNIT = exports.DESC_COMMAND_TESTS = exports.DESC_COMMAND_PIPELINE_RUN_RETRY = exports.DESC_COMMAND_PIPELINE_GET = exports.DESC_COMMAND_PIPELINE_UPDATE = exports.DESC_COMMAND_PIPELINE_DELETE = exports.DESC_COMMAND_PIPELINE_CREATE = exports.DESC_COMMAND_PIPELINE_YAML = exports.DESC_COMMAND_PIPELINE_LIST = exports.DESC_COMMAND_PIPELINE_RUN_LIST = exports.DESC_COMMAND_PIPELINE_RUN_APPLY = exports.DESC_COMMAND_PIPELINE_RUN_CANCEL = exports.DESC_COMMAND_PIPELINE_RUN_LOGS = exports.DESC_COMMAND_PIPELINE_RUN_STATUS = exports.DESC_COMMAND_PIPELINE_RUN_START = exports.DESC_COMMAND_PIPELINE_RUN = exports.DESC_COMMAND_ARTIFACT_DOWNLOAD = exports.DESC_COMMAND_ARTIFACT_PUBLISH = exports.DESC_COMMAND_ARTIFACT_VERSION_CREATE = exports.DESC_COMMAND_ARTIFACT = exports.DESC_COMMAND_PIPELINE = exports.ERR_COMMAND_NOT_FOUND = exports.DESC_PROGRAM = exports.DESC_COMMAND_TLS = exports.DESC_COMMAND_TCP = exports.DESC_COMMAND_START = exports.DESC_COMMAND_TUNNEL = exports.DESC_COMMAND_AGENT = exports.DESC_COMMAND_HTTP = exports.DESC_COMMAND_CONFIG = exports.DESC_COMMAND_AGENT_VERSION = exports.DESC_COMMAND_AGENT_USER = exports.DESC_COMMAND_AGENT_UPDATE = exports.OPT_COMMAND_AGENT_TAGS_SET = exports.DESC_COMMAND_AGENT_TAGS_SET = exports.DESC_COMMAND_AGENT_TAGS_GET = exports.DESC_COMMAND_AGENT_TAGS = exports.DESC_COMMAND_AGENT_PROXY = exports.DESC_COMMAND_AGENT_TARGET = exports.DESC_COMMAND_AGENT_TUNNEL = exports.DESC_COMMAND_AGENT_STOP = exports.DESC_COMMAND_AGENT_PROXY_DISABLE = exports.DESC_COMMAND_AGENT_TARGET_DISABLE = exports.DESC_COMMAND_AGENT_TUNNELING_DISABLE = void 0;
|
|
8
|
+
exports.TXT_ARTIFACT_UNZIPPING_COUNT = exports.TXT_ARTIFACT_UNZIPPED = exports.TXT_ARTIFACT_UNZIPPING = exports.TXT_ARTIFACT_DOWNLOADED_ZIP = exports.TXT_ARTIFACT_DOWNLOADING_ZIP = exports.TXT_ARTIFACT_DOWNLOADED = exports.TXT_ARTIFACT_ENTRIES_FOUND = exports.TXT_ARTIFACT_UPLOADED = exports.TXT_ARTIFACT_UPLOADING = exports.TXT_ARTIFACT_ZIPPED = exports.TXT_ARTIFACT_ZIP_ENTRIES = exports.TXT_ARTIFACT_ONE_ENTRY_FOUND = exports.TXT_ARTIFACT_NO_ENTRIES_FOUND = exports.TXT_ARTIFACT_SCANNING_DIR = exports.TXT_STORIES_AMOUNT = exports.TXT_OPENING_TUNNEL = exports.TXT_UPDATING_AGENT = exports.TXT_ENABLING_AGENT = exports.TXT_NEW_AGENT_VERSION = exports.TXT_NEW_CLI_DOCKER_VERSION = exports.OPTION_UPLOAD_DRY_RUN = exports.OPTION_UPLOAD_REPORT_FORMAT = exports.OPTION_UPLOAD_REPORT_GLOB = exports.TXT_COMMAND_SUITE_CREATED = exports.TXT_COMMAND_SUITE_NAME = exports.TXT_COMMAND_SUITE_LINK_EXISTING_DESC = exports.TXT_COMMAND_SUITE_LINK_EXISTING = exports.TXT_COMMAND_SUITE_CREATE_NEW_UT_DESC = exports.TXT_COMMAND_SUITE_CREATE_NEW_CRAWL_DESC = exports.TXT_COMMAND_SUITE_CREATE_NEW_VT_DESC = exports.TXT_COMMAND_SUITE_CREATE_NEW = exports.TXT_COMMAND_SUITE_SELECT = exports.ERR_NO_UT_SUITES = exports.ERR_NO_CRAWL_SUITES = exports.ERR_NO_VT_SUITES = exports.TXT_COMMAND_UT_LINK_SUCCESS = exports.TXT_COMMAND_CRAWL_LINK_SUCCESS = exports.TXT_COMMAND_VT_LINK_SUCCESS = exports.TXT_COMMAND_UT_LINK_SELECT = exports.TXT_COMMAND_CRAWL_LINK_SELECT = exports.TXT_COMMAND_VT_LINK_SELECT = exports.OPTION_STORYBOOK_DIRECTORY = exports.OPTION_SUITE_IDENTIFIER = exports.DESC_COMMAND_UT_LINK = exports.DESC_COMMAND_CRAWL_LINK = exports.DESC_COMMAND_VT_LINK = exports.DESC_COMMAND_UT_UPLOAD = exports.DESC_COMMAND_CRAWL_RUN = exports.DESC_COMMAND_CRAWL = exports.DESC_COMMAND_CAPTURE = void 0;
|
|
9
|
+
exports.OPTION_FORMAT = exports.OPTION_VERSION = exports.OPTION_PIPELINE_RUN_NO_FOLLOW = exports.OPTION_PIPELINE_RUN_NO_WAIT = exports.OPTION_PIPELINE_RUN_ACTION = exports.OPTION_REST_API_TOKEN = exports.OPTION_ARTIFACT_DOWNLOAD_REPLACE = exports.OPTION_ARTIFACT_DOWNLOAD_MERGE = exports.OPTION_ARTIFACT_PUBLISH_OVERWRITE_VERSION = exports.OPTION_ARTIFACT_VERSION_AGENT_NOTE = exports.OPTION_ARTIFACT_VERSION_NOTE = exports.OPTION_ARTIFACT_VERSION_FROM = exports.OPTION_ARTIFACT_PUBLISH_CREATE = exports.OPTION_ARTIFACT_ID = exports.OPTION_ARTIFACT_DOWNLOAD_PATH = exports.OPTION_ARTIFACT_PUBLISH_PATH = exports.OPTION_PIPELINE_RUN_ACTION_ID = exports.OPTION_PIPELINE_RUN_ID = exports.OPTION_PIPELINE_YAML = exports.TXT_PIPELINE_DELETED = exports.TXT_PIPELINE_DELETE_CONFIRM = exports.TXT_PIPELINE_UPDATED = exports.TXT_PIPELINE_CREATED = exports.OPTION_PIPELINE_NAME = exports.OPTION_PIPELINE_IDENTIFIER = exports.OPTION_PIPELINE_RUN_ARTIFACT = exports.OPTION_PIPELINE_RUN_ENVIRONMENT = exports.OPTION_PIPELINE_RUN_DELAY = exports.OPTION_PIPELINE_RUN_PAYLOAD = exports.ERR_RUN_PAYLOAD_TOO_MANY_FILES = exports.ERR_RUN_PAYLOAD_NOT_UPLOADED = exports.ERR_RUN_PAYLOAD_TOO_LARGE = exports.ERR_RUN_PAYLOAD_NO_ENTRIES = exports.ERR_RUN_VAR_FILE_INVALID = exports.ERR_RUN_VAR_FILE_NOT_FOUND = exports.OPTION_RUN_SINGLE_VAR_FILE = exports.OPTION_RUN_VAR_FILE = exports.OPTION_RUN_VAR = exports.OPTION_PIPELINE_RUN_PRIORITY = exports.OPTION_PIPELINE_RUN_CLEAR_CACHE = exports.OPTION_PIPELINE_RUN_REFRESH = exports.OPTION_PIPELINE_RUN_COMMENT = exports.OPTION_PIPELINE_RUN_PULL_REQUEST = exports.OPTION_PIPELINE_RUN_REVISION = exports.OPTION_PIPELINE_RUN_TAG = exports.OPTION_PIPELINE_RUN_BRANCH = exports.OPTION_REST_API_REGION = exports.OPTION_REST_API_ENDPOINT = exports.OPTION_DEFAULT_REGION = exports.OPTION_REGION = void 0;
|
|
10
|
+
exports.OPTION_COMPARE_URLS = exports.OPTION_COMPARE_RESPECT_ROBOTS = exports.OPTION_COMPARE_FOLLOW = exports.OPTION_EXEC_PARALLEL = exports.OPTION_EXEC_ONE_BY_ONE = exports.OPTION_EXEC_SKIP_DISCOVERY = exports.OPTION_EXEC_COMMAND = exports.OPTION_AGENT_DEBUG = exports.OPTION_AGENT_PORT = exports.OPTION_AGENT_TAG = exports.OPTION_AGENT_TUNNELING = exports.OPTION_AGENT_PROXY = exports.OPTION_AGENT_TARGET = exports.OPTION_PASS = exports.OPTION_APP = exports.OPTION_USER = exports.OPTION_AGENT_TOKEN = exports.OPTION_AGENT_START = exports.OPTION_AGENT_ID = exports.OPTION_ID = exports.OPTION_NAME = exports.OPTION_TARGET = exports.OPTION_TLS_TERMINATE = exports.OPTION_TLS_CA = exports.OPTION_TLS_CERT = exports.OPTION_TLS_KEY = exports.OPTION_HTTP_CIRCUIT_BREAKER = exports.OPTION_HTTP_COMPRESSION = exports.OPTION_HTTP_2 = exports.OPTION_HTTP_VERIFY = exports.OPTION_HTTP_LOG = exports.OPTION_HTTP_AUTH_BUDDY = exports.OPTION_HTTP_AUTH = exports.OPTION_HTTP_HOST = exports.OPTION_CONFIRM_DOMAIN_BUY = exports.OPTION_CONFIRM_FORCE = exports.OPTION_FORCE = exports.OPTION_TOKEN = exports.OPTION_TIMEOUT = exports.OPTION_FOLLOW = exports.OPTION_SERVE = exports.OPTION_HEADER_USER_AGENT = exports.OPTION_RESPONSE_HEADER = exports.OPTION_HEADER = exports.OPTION_WHITELIST = exports.OPTION_REST_API_PER_PAGE = exports.OPTION_REST_API_PAGE = exports.OPTION_REST_API_PROJECT = exports.OPTION_REST_API_WORKSPACE = exports.OPTION_FORMAT_JSONL = void 0;
|
|
11
|
+
exports.LOG_REGISTERING_TUNNEL = exports.LOG_GETTING_AGENT = exports.LOG_UNREGISTERING_AGENT = exports.LOG_REGION_DETECTED = exports.LOG_AGENT_REGISTERED = exports.LOG_SOCKET_DISCONNECTED = exports.LOG_SOCKET_CONNECTED = exports.LOG_AGENT_NSSM_CLEARING = exports.LOG_AGENT_NSSM_EXTRACTING = exports.LOG_AGENT_NSSM_DOWNLOADING = exports.LOG_AGENT_ENABLED = exports.LOG_AGENT_STARTING_SYSTEM = exports.LOG_AGENT_STOPPING_SYSTEM = exports.LOG_AGENT_ENABLING_SYSTEM = exports.LOG_AGENT_SYSTEM_SERVICE_CONFIG = exports.LOG_AGENT_EXTRACTING_ARCHIVE = exports.LOG_AGENT_DOWNLOADING_ARCHIVE = exports.LOG_AGENT_SYSTEM_DIR = exports.LOG_ERROR_SAVING_AGENT_LOCAL_CONFIG = exports.LOG_ERROR_REMOVING_AGENT_STANDALONE_LOCK_FILE = exports.LOG_ERROR_SAVING_AGENT_STANDALONE_CONFIG = exports.LOG_ERROR_SAVING_AGENT_SYSTEM_CONFIG = exports.LOG_SAVING_AGENT_LOCAL_CONFIG = exports.LOG_REMOVING_AGENT_PROC_ID = exports.LOG_SAVING_AGENT_PROC_ID = exports.LOG_SAVING_AGENT_SYSTEM_CONFIG = exports.LOG_REGISTERING_AGENT = exports.OPTION_CRAWL_OUTPUT_TYPES = exports.OPTION_CRAWL_OUTPUT_DIR = exports.OPTION_CRAWL_DELAY = exports.OPTION_CRAWL_LOCAL_STORAGE = exports.OPTION_CRAWL_DEVICES = exports.OPTION_CRAWL_BROWSERS = exports.OPTION_CRAWL_COLOR_SCHEME = exports.OPTION_CRAWL_XPATH_SELECTOR = exports.OPTION_CRAWL_CSS_SELECTOR = exports.OPTION_CRAWL_FULL_PAGE = exports.OPTION_CRAWL_QUALITY = exports.OPTION_CRAWL_OUTPUT_TYPE = exports.OPTION_CRAWL_FOLLOW = exports.OPTION_CRAWL_URL = exports.OPTION_COMPARE_WAIT_FOR = exports.OPTION_COMPARE_DELAY = exports.OPTION_COMPARE_HEADER = exports.OPTION_COMPARE_COOKIE = exports.OPTION_COMPARE_IGNORE = exports.OPTION_COMPARE_IGNORE_URLS = exports.OPTION_COMPARE_DRY_RUN = exports.OPTION_COMPARE_URLS_FILE = exports.OPTION_COMPARE_SITEMAP = void 0;
|
|
12
|
+
exports.LOG_TUNNEL_HTTP_MAX_INFLIGHT = exports.LOG_TUNNEL_HTTP_RATE_LIMIT = exports.LOG_TUNNEL_HTTP_WRON_AUTH = exports.LOG_TUNNEL_IDENTIFIED = exports.LOG_TUNNEL_DISCONNECTED = exports.LOG_TUNNEL_FAILED = exports.LOG_TUNNEL_CONNECTED = exports.LOG_AGENT_STARTED = exports.LOG_AGENT_UPDATE_ROLLBACK_MISSING = exports.LOG_AGENT_UPDATE_NOT_AN_AGENT = exports.LOG_AGENT_UPDATE_ROLLBACK_ACKED = exports.LOG_AGENT_UPDATE_ROLLED_BACK = exports.LOG_AGENT_UPDATE_ATTEMPT = exports.LOG_AGENT_UPDATE_COMMITTED = exports.LOG_AGENT_UPDATE_BINARY_INVALID = exports.ERR_AGENT_UPDATE_IN_PROGRESS = exports.LOG_AGENT_UPDATE_UNINSTALLED = exports.LOG_AGENT_UPDATE_VERSION_MISMATCH = exports.LOG_AGENT_UPDATE_FAILED = exports.LOG_AGENT_UPDATE_SWAPPED = exports.LOG_AGENT_UPDATE_NOT_NEEDED = exports.LOG_AGENT_UPDATE_NO_ADMIN = exports.LOG_AGENT_UPDATE_STANDALONE = exports.LOG_AGENT_UPDATE_REQUESTED = exports.LOG_AGENT_RIGHTS_SKIPPED = exports.LOG_AGENT_RIGHTS_DIR_SKIPPED = exports.LOG_AGENT_SERVER_STARTED = exports.LOG_ERROR_STARTING_AGENT_SERVER = exports.LOG_SSH_CONNECTION = exports.LOG_LATE_TARGET_ERROR = exports.LOG_LATE_CHANNEL_ERROR = exports.LOG_HANDSHAKE_TIMEOUT = exports.LOG_WRONG_STREAM = exports.LOG_DETECTED_STREAM = exports.LOG_HTTP2_REQUEST = exports.LOG_HTTP2_CONNECTION = exports.LOG_HTTP1_REQUEST = exports.LOG_HTTP1_CONNECTION = exports.LOG_ERROR = exports.LOG_STOPPING_TUNNEL = exports.LOG_STARTING_TUNNEL = exports.LOG_ENABLING_AGENT_TUNNELING = exports.LOG_ENABLING_AGENT_PROXY = exports.LOG_ENABLING_AGENT_TARGET = exports.LOG_DISABLING_AGENT_TUNNELING = exports.LOG_DISABLING_AGENT_PROXY = exports.LOG_DISABLING_AGENT_TARGET = exports.LOG_REMOVING_TUNNEL = exports.LOG_TUNNEL_REGISTERED = exports.LOG_ERROR_WHILE_REFRESHING_AGENT = void 0;
|
|
13
|
+
exports.OPTION_SANDBOX_YAML = exports.OPTION_SANDBOX_TAGS = exports.OPTION_SANDBOX_INSTALL_SCRIPT = exports.OPTION_SANDBOX_INSTALL_COMMANDS = exports.OPTION_SANDBOX_RESOURCES = exports.OPTION_SANDBOX_OS = exports.OPTION_SANDBOX_AGENT_NOTE = exports.OPTION_SANDBOX_NOTE = exports.OPTION_SANDBOX_NAME = exports.OPTION_SANDBOX_IDENTIFIER = exports.DESC_COMMAND_SANDBOX_SSH = exports.DESC_COMMAND_SANDBOX_APP = exports.DESC_COMMAND_SANDBOX_EXEC = exports.DESC_COMMAND_SANDBOX_STATUS = exports.DESC_COMMAND_SANDBOX_LOGS = exports.DESC_COMMAND_SANDBOX_RESTART = exports.DESC_COMMAND_SANDBOX_STOP = exports.DESC_COMMAND_SANDBOX_START = exports.DESC_COMMAND_SANDBOX_DESTROY = exports.DESC_COMMAND_SANDBOX_GET = exports.DESC_COMMAND_SANDBOX_LIST = exports.DESC_COMMAND_SANDBOX_UPDATE = exports.DESC_COMMAND_SANDBOX_GET_YAML = exports.DESC_COMMAND_SANDBOX_CREATE = exports.DESC_COMMAND_SANDBOX = exports.DEBUG_WAIT_FOR_IDLE_TIMEOUT = exports.DEBUG_WAIT_FOR_IDLE = exports.DEBUG_RESOURCE_DISCOVERY_TIMEOUT = exports.DEBUG_AUTO_WIDTH = exports.DEBUG_AUTO_SCROLL = exports.DEBUG_RESOURCE_CRAWLING_URL = exports.DEBUG_SNAPSHOT_PROCESSING = exports.DEBUG_SNAPSHOTS_PROCESSING = exports.DEBUG_EXEC_COMMAND = exports.DEBUG_EXEC_TEST_COMMAND = exports.LOG_INSTALLED_BROWSER = exports.LOG_SESSION_LINK = exports.LOG_SENDING_DATA = exports.LOG_SENDING_REQUEST = exports.LOG_PROCESSING_SNAPSHOTS = exports.LOG_RUNNING_EXEC_COMMAND = exports.LOG_TUNNEL_SSH_STREAM = exports.LOG_TUNNEL_TLS_AGENT_STREAM = exports.LOG_TUNNEL_TLS_REGION_STREAM = exports.LOG_TUNNEL_TLS_TARGET_STREAM = exports.LOG_TUNNEL_HTTP2_STREAM = exports.LOG_TUNNEL_HTTP1_STREAM = exports.LOG_TUNNEL_TCP_STREAM = exports.LOG_TUNNEL_HTTP_WRONG_USER_AGENTS = exports.LOG_TUNNEL_HTTP_CIRCUIT_BREAKER_OPEN = void 0;
|
|
14
|
+
exports.DESC_COMMAND_SANDBOX_APP_STOP = exports.DESC_COMMAND_SANDBOX_APP_STATUS = exports.DESC_COMMAND_SANDBOX_APP_LOGS = exports.DESC_COMMAND_SANDBOX_EXEC_STATUS = exports.DESC_COMMAND_SANDBOX_EXEC_LIST = exports.DESC_COMMAND_SANDBOX_APP_REMOVE = exports.DESC_COMMAND_SANDBOX_APP_ADD = exports.DESC_COMMAND_SANDBOX_APP_LIST = exports.TXT_SANDBOX_WAITING_START = exports.TXT_SANDBOX_WAITING_STOP = exports.TXT_SANDBOX_WAITING_APPS = exports.TXT_SANDBOX_WAITING_SETUP = exports.TXT_SANDBOX_WAITING_RUNNING = exports.TXT_SANDBOX_STOPPED = exports.TXT_SANDBOX_STARTED = exports.TXT_SANDBOX_DESTROYED = exports.TXT_SANDBOX_DESTROY_CONFIRM = exports.TXT_SANDBOX_UPDATED = exports.TXT_SANDBOX_CREATED = exports.TXT_SANDBOX_CREATING = exports.TXT_SANDBOX_APP_STARTED = exports.TXT_SANDBOX_APP_STOPPED = exports.OPTION_SANDBOX_WAIT = exports.OPTION_SANDBOX_WAIT_APPS = exports.OPTION_SANDBOX_WAIT_CONFIGURED = exports.OPTION_SANDBOX_WAIT_RUNNING = exports.ERR_SANDBOX_STOP_FAILED = exports.ERR_SANDBOX_SSH_MISSING = exports.ERR_SANDBOX_SSH_NO_ACCESS = exports.ERR_SANDBOX_NOT_RUNNING = exports.ERR_SANDBOX_NO_COMMANDS = exports.ERR_SANDBOX_RUNNING_FAILED = exports.ERR_SANDBOX_STOP_TIMEOUT = exports.ERR_SANDBOX_SNAPSHOT_TIMEOUT = exports.ERR_SANDBOX_RUNNING_TIMEOUT = exports.ERR_SANDBOX_APPS_TIMEOUT = exports.ERR_SANDBOX_SETUP_TIMEOUT = exports.ERR_SANDBOX_APP_FAILED = exports.ERR_SANDBOX_SETUP_FAILED = exports.ERR_SANDBOX_INVALID_RESOURCES = exports.ERR_SANDBOX_APP_NOT_FOUND = exports.ERR_SANDBOX_NOT_FOUND = exports.OPTION_SANDBOX_SSH_PRINT = exports.OPTION_SANDBOX_SSH_IDENTITY = exports.OPTION_SANDBOX_SSH_ARGS = exports.OPTION_SANDBOX_RUNTIME = exports.OPTION_SANDBOX_TIMEOUT = exports.OPTION_SANDBOX_FETCH = exports.OPTION_SANDBOX_APP_DIR = exports.OPTION_SANDBOX_APP_COMMAND = void 0;
|
|
15
|
+
exports.TXT_SANDBOX_UNZIP = exports.TXT_SANDBOX_CP_DOWNLOAD_DONE = exports.TXT_SANDBOX_CP_DOWNLOAD = exports.OPTION_SANDBOX_CP_IGNORE = exports.OPTION_SANDBOX_CP_USER = exports.OPTION_SANDBOX_CP_DOWNLOAD_REPLACE = exports.OPTION_SANDBOX_CP_DOWNLOAD_MERGE = exports.OPTION_SANDBOX_CP_DEST = exports.OPTION_SANDBOX_CP_SOURCE = exports.DESC_COMMAND_SANDBOX_CP = exports.ERR_SANDBOX_ENDPOINTS_NOT_FOUND = exports.ERR_SANDBOX_ENDPOINT_NOT_FOUND = exports.ERR_SANDBOX_ENDPOINT_EXISTS = exports.TXT_SANDBOX_ENDPOINT_DELETED = exports.TXT_SANDBOX_ENDPOINT_DELETE_CONFIRM = exports.TXT_SANDBOX_ENDPOINT_ADDED = exports.TXT_SANDBOX_APP_REMOVED = exports.TXT_SANDBOX_APP_ADDED = exports.OPTION_SANDBOX_ENDPOINT_TYPE = exports.OPTION_SANDBOX_ENDPOINT_PORT = exports.OPTION_SANDBOX_ENDPOINT_NAME_ARG = exports.OPTION_SANDBOX_ENDPOINT_NAME = exports.DESC_COMMAND_SANDBOX_ENDPOINT_DELETE = exports.DESC_COMMAND_SANDBOX_ENDPOINT_ADD = exports.DESC_COMMAND_SANDBOX_ENDPOINT_GET = exports.DESC_COMMAND_SANDBOX_ENDPOINT_LIST = exports.DESC_COMMAND_SANDBOX_ENDPOINT = exports.ERR_SANDBOX_SNAPSHOTS_NOT_FOUND = exports.ERR_SANDBOX_SNAPSHOT_NOT_FOUND = exports.ERR_SANDBOX_SNAPSHOT_FAILED = exports.TXT_SANDBOX_SNAPSHOT_WAITING = exports.TXT_SANDBOX_SNAPSHOT_DELETE_CONFIRM = exports.TXT_SANDBOX_SNAPSHOT_DELETED = exports.TXT_SANDBOX_SNAPSHOT_CREATED = exports.OPTION_SANDBOX_FROM_SNAPSHOT = exports.OPTION_SANDBOX_SNAPSHOT_NAME_ARG = exports.OPTION_SANDBOX_SNAPSHOT_NAME = exports.DESC_COMMAND_SANDBOX_SNAPSHOT_DELETE = exports.DESC_COMMAND_SANDBOX_SNAPSHOT_GET = exports.DESC_COMMAND_SANDBOX_SNAPSHOT_CREATE = exports.DESC_COMMAND_SANDBOX_SNAPSHOT_LIST = exports.DESC_COMMAND_SANDBOX_SNAPSHOT = exports.TXT_SANDBOX_COMMAND_KILLED = exports.OPTION_SANDBOX_COMMAND_KILL_CONFIRM = exports.OPTION_SANDBOX_LOGS_LIMIT = exports.OPTION_SANDBOX_APP_ID = exports.OPTION_SANDBOX_COMMAND_ID = exports.DESC_COMMAND_SANDBOX_EXEC_KILL = exports.DESC_COMMAND_SANDBOX_EXEC_LOGS = exports.DESC_COMMAND_SANDBOX_APP_START = void 0;
|
|
16
|
+
exports.ERR_API_ENDPOINT_NOT_FOUND = exports.ERR_API_WRONG_METHOD = exports.ERR_SCHEMA_FETCH_FAILED = exports.OPT_COMMAND_API_INFO_URL = exports.OPT_COMMAND_API_INFO_SCHEMA = exports.OPT_COMMAND_API_INFO_METHOD = exports.OPT_COMMAND_API_LIST_SEARCH = exports.OPT_COMMAND_API_LIST_METHOD = exports.ERR_API_REQUEST_BODY_VALUE = exports.ERR_API_REQUEST_QUERY_VALUE = exports.ERR_API_REQUEST_INVALID_JSON = exports.ERR_API_REQUEST_FILE_ERROR = exports.ERR_API_REQUEST_OUTPUT_EXISTS = exports.DESC_COMMAND_API_INFO = exports.DESC_COMMAND_API_FORM = exports.DESC_COMMAND_API_JSON = exports.DESC_COMMAND_API_DATA = exports.DESC_COMMAND_API_OUTPUT = exports.DESC_COMMAND_API_REQUEST_QUERY = exports.DESC_COMMAND_API_PROJECT = exports.DESC_COMMAND_API_WORKSPACE = exports.DESC_COMMAND_API_REQUEST_URL = exports.DESC_COMMAND_API_GET = exports.DESC_COMMAND_API_PATCH = exports.DESC_COMMAND_API_DELETE = exports.DESC_COMMAND_API_PUT = exports.DESC_COMMAND_API_POST = exports.DESC_COMMAND_API_LIST = exports.DESC_COMMAND_API = exports.ERR_WHOAMI_LOGOUT = exports.TXT_WHOAMI_NO_WORKSPACE = exports.DESC_COMMAND_WHOAMI = exports.TXT_SANDBOX_EXEC_FAILED = exports.TXT_SANDBOX_EXEC_INPROGRESS = exports.TXT_SANDBOX_EXEC_SUCCESS = exports.TXT_SANDBOX_EXEC_BACKGROUND = exports.TXT_SANDBOX_EXEC_ID = exports.ERR_SANDBOX_CP_INVALID_SOURCE = exports.ERR_SANDBOX_CP_INVALID_DEST = exports.ERR_SANDBOX_CP_REPLACE = exports.ERR_SANDBOX_CP_MKDIR = exports.ERR_SANDBOX_CP_PATH_EXISTS = exports.ERR_SANDBOX_CP_NOT_EMPTY_DIR = exports.ERR_SANDBOX_CP_READDIR = exports.ERR_SANDBOX_CP_DEST_NOT_FOLDER = exports.ERR_SANDBOX_CP_SOURCE_NOT_FOUND = exports.TXT_SANDBOX_CP_DONE = exports.TXT_SANDBOX_CP_PROGRESS = exports.TXT_SANDBOX_UNZIPPING_COUNT = exports.TXT_SANDBOX_UNZIP_DONE = void 0;
|
|
17
|
+
exports.DESC_COMMAND_DISTRO_CREATE = exports.DESC_COMMAND_DISTRO = exports.ERR_API_MESSAGE_REPLACER = exports.ERR_LOGIN_INVALID_BASE_URL = exports.ERR_LOGIN_NO_WORKSPACE_FOUND = exports.ERR_LOGIN_NO_WORKSPACES = exports.ERR_REGISTER_HTTP_CANCEL = exports.ERR_LOGIN_HTTP_CANCEL = exports.ERR_LOGIN_HTTP_FAILED = exports.ERR_LOGIN_HTTP_SERVER_PORT_TAKEN = exports.TXT_REGISTER_SUCCESS = exports.TXT_LOGIN_SUCCESS = exports.TXT_LOGIN_SELECT_WORKSPACE = exports.TXT_LOGIN_ENTER_BASE_URL = exports.TXT_LOGIN_PROVIDE_CODE = exports.TXT_REGISTER_OPEN_URL = exports.TXT_LOGIN_OPEN_URL = exports.TXT_REGISTER_OPENING_STAR = exports.TXT_LOGIN_OPENING_STAR = exports.TXT_REGISTER_OPENING = exports.TXT_LOGIN_OPENING = exports.TXT_LOGIN_SELECT_REGION = exports.TXT_WORKSPACE_NONE = exports.TXT_WORKSPACE_SET_SUCCESS = exports.ARG_COMMAND_WORKSPACE = exports.DESC_COMMAND_WORKSPACE_GET = exports.DESC_COMMAND_WORKSPACE_SET = exports.DESC_COMMAND_WORKSPACE_LIST = exports.DESC_COMMAND_WORKSPACE = exports.TXT_COMMAND_REGISTER_PROVIDE_NAME = exports.TXT_COMMAND_REGISTER_PROVIDE_EMAIL = exports.ERR_COMMAND_REGISTER_INVALID_NAME = exports.ERR_COMMAND_REGISTER_INVALID_EMAIL = exports.OPT_COMMAND_REGISTER_NAME = exports.OPT_COMMAND_REGISTER_EMAIL = exports.DESC_COMMAND_REGISTER = exports.TXT_LOGOUT_SUCCESS = exports.DESC_COMMAND_LOGOUT = exports.DESC_COMMAND_LOGIN = exports.HELP_COMMAND_MCP = exports.ERR_MCP_TOOL_FILTERED = exports.ERR_MCP_TOOLS_CATEGORY = exports.OPT_COMMAND_MCP_TOOLS = exports.ERR_MCP_REFRESH_FAILED = exports.ERR_MCP_URL_INVALID = exports.ERR_MCP_ENDPOINT = exports.DESC_COMMAND_MCP = exports.ERR_API_MEDIA_TYPE_NOT_IMPLEMENTED = exports.ERR_API_PARAMETER_NOT_REPLACED = exports.TXT_API_ENDPOINT_REQUIRED_SCOPES = void 0;
|
|
18
|
+
exports.DESC_COMMAND_DOMAIN_BUY = exports.DESC_COMMAND_DOMAIN = exports.ERR_ROUTE_NO_DEFAULT = exports.ERR_WRONG_ROUTE_TARGET = exports.ERR_COMMAND_ROUTE_NO_TARGET = exports.ERR_COMMAND_ROUTE_TYPE = exports.TXT_COMMAND_ROUTES_NOT_FOUND = exports.TXT_COMMAND_DISTROS_NOT_FOUND = exports.TXT_COMMAND_ROUTE_DELETED = exports.TXT_COMMAND_DISTRO_DELETED = exports.TXT_COMMAND_ROUTE_DELETE_CONFIRM = exports.TXT_COMMAND_DISTRO_DELETE_CONFIRM = exports.ERR_COMMAND_DISTRO_ENABLE_DISABLE = exports.ERR_COMMAND_DISTRO_NO_UPDATE = exports.ERR_COMMAND_ROUTE_NO_UPDATE = exports.ERR_COMMAND_DISTRO_NOT_FOUND = exports.ERR_COMMAND_SCOPE = exports.TXT_COMMAND_DISTRO_UPDATED = exports.TXT_COMMAND_ROUTE_UPDATED = exports.TXT_ROUTE_SERVE = exports.TXT_COMMAND_ROUTE_CREATED = exports.TXT_COMMAND_DISTRO_CREATED = exports.ERR_COMMAND_SCOPE_NO_PROJECT = exports.OPT_COMMAND_DISTRO_DISABLE = exports.OPT_COMMAND_DISTRO_ENABLE = exports.OPT_COMMAND_DISTRO_AGENT_NOTE = exports.OPT_COMMAND_DISTRO_NOTE = exports.OPT_COMMAND_DISTRO_NAME = exports.OPT_COMMAND_ROUTE_TARGET = exports.OPT_COMMAND_ROUTE_AGENT_NOTE = exports.OPT_COMMAND_ROUTE_NOTE = exports.OPT_COMMAND_ROUTE_PATH = exports.OPT_COMMAND_ROUTE_DOMAIN = exports.OPT_COMMAND_ROUTE_SUBDOMAIN = exports.OPT_COMMAND_ROUTE_TYPE = exports.OPT_COMMAND_ROUTE_ID = exports.OPT_COMMAND_DISTRO_IDENTIFIER = exports.OPT_COMMAND_SCOPE = exports.OPT_COMMAND_AGENT_NOTE = exports.OPT_COMMAND_NOTE = exports.DESC_COMMAND_ROUTE = exports.DESC_COMMAND_ROUTE_UPDATE = exports.DESC_COMMAND_ROUTE_DELETE = exports.DESC_COMMAND_ROUTE_GET = exports.DESC_COMMAND_DISTRO_UPDATE = exports.DESC_COMMAND_DISTRO_GET = exports.DESC_COMMAND_ROUTE_LIST = exports.DESC_COMMAND_DISTRO_LIST = exports.DESC_COMMAND_DISTRO_DELETE = exports.DESC_COMMAND_ROUTE_CREATE = void 0;
|
|
19
|
+
exports.OPT_COMMAND_PROJECT_LINK_SET_GIT_REMOTE = exports.OPT_COMMAND_PROJECT_LINK_HAS_REMOTE = exports.OPT_COMMAND_PROJECT_LINK_DIRECTORY = exports.OPT_COMMAND_PROJECT_LINK_GIT = exports.OPT_COMMAND_PROJECT_LINK_RELINK = exports.DESC_COMMAND_PROJECT_LINK = exports.DESC_COMMAND_PROJECT_LIST = exports.DESC_COMMAND_PROJECT_GIT = exports.DESC_COMMAND_PROJECT_GIT_CREDENTIAL = exports.DESC_COMMAND_PROJECT = exports.TXT_ARTIFACT_VERSION_DOWNLOAD = exports.TXT_ARTIFACT_PUBLISH = exports.TXT_ARTIFACT_CREATED = exports.TXT_ARTIFACT_VERSION_DELETED = exports.TXT_ARTIFACT_DELETED = exports.ERR_COMMAND_ARTIFACT_TYPE = exports.OPT_COMMAND_ARTIFACT_VERSION = exports.OPT_COMMAND_ARTIFACT_IDENTIFIER = exports.OPT_COMMAND_ARTIFACT_CREATE_IDENTIFIER = exports.OPT_COMMAND_ARTIFACT_NAME = exports.OPT_COMMAND_ARTIFACT_TYPE = exports.DESC_COMMAND_ARTIFACT_CREATE = exports.DESC_COMMAND_ARTIFACT_GET = exports.TXT_ARTIFACT_DOCKER_LOGIN_FAILED = exports.TXT_ARTIFACT_DOCKER_LOGIN_SUCCESS = exports.TXT_ARTIFACT_VERSION_DELETE_CONFIRM = exports.TXT_ARTIFACT_DELETE_CONFIRM = exports.DESC_COMMAND_ARTIFACT_DELETE = exports.ERR_COMMAND_ARTIFACT_NO_PROJECTS = exports.DESC_COMMAND_ARTIFACT_VERSION_GET = exports.DESC_COMMAND_ARTIFACT_VERSION_LIST = exports.DESC_COMMAND_ARTIFACT_VERSION_DELETE = exports.DESC_COMMAND_ARTIFACT_DOCKER_LOGIN = exports.DESC_COMMAND_ARTIFACT_LIST = exports.DESC_COMMAND_ARTIFACT_VERSION = exports.ERR_COMMAND_DOMAIN_UNAVAILABLE = exports.OPTION_COMMAND_DOMAIN_IDENTIFIER = exports.ERR_COMMAND_DOMAIN_NO_DOMAINS = exports.TXT_COMMAND_DOMAIN_PROMPT_REQUIRED = exports.TXT_COMMAND_DOMAIN_BUY_SELECT_DOMAIN = exports.TXT_COMMAND_DOMAIN_PROVIDE_PROMPT = exports.ERR_COMMAND_DOMAIN_NOT_FOUND = exports.OPT_COMMAND_DOMAIN_ONLY_AVAILABLE = exports.OPT_COMMAND_DOMAIN_SORT = exports.OPT_COMMAND_DOMAIN_PHRASE = exports.OPT_COMMAND_DOMAIN_BUY_OWNER = exports.OPT_COMMAND_DOMAIN_BUY_TLD = exports.DESC_COMMAND_DOMAIN_GET = exports.DESC_COMMAND_DOMAIN_LIST = exports.DESC_COMMAND_DOMAIN_SEARCH = void 0;
|
|
20
|
+
exports.EXAMPLE_SANDBOX_EXEC_LOGS = exports.EXAMPLE_SANDBOX_APP_STATUS = exports.EXAMPLE_SANDBOX_APP_STOP = exports.EXAMPLE_SANDBOX_APP_REMOVE = exports.EXAMPLE_SANDBOX_APP_ADD = exports.EXAMPLE_SANDBOX_APP_START = exports.EXAMPLE_SANDBOX_APP_LOGS = exports.EXAMPLE_SANDBOX_EXEC_LIST = exports.EXAMPLE_SANDBOX_APP_LIST = exports.EXAMPLE_SANDBOX_EXEC_KILL = exports.EXAMPLE_SANDBOX_SSH = exports.EXAMPLE_SANDBOX_EXEC_COMMAND = exports.EXAMPLE_TUNNEL_START = exports.EXAMPLE_TUNNEL_TCP = exports.EXAMPLE_TUNNEL_TLS = exports.EXAMPLE_AGENT_TUNNEL_START = exports.EXAMPLE_AGENT_TUNNEL_STATUS = exports.EXAMPLE_AGENT_TUNNEL_REMOVE = exports.EXAMPLE_AGENT_TUNNEL_LIST = exports.EXAMPLE_TUNNEL_HTTP = exports.EXAMPLE_SANDBOX_CREATE = exports.EXAMPLE_DISTRO_CREATE = exports.EXAMPLE_ROUTE_CREATE = exports.EXAMPLE_ROUTE_LIST = exports.EXAMPLE_ROUTE_UPDATE = exports.EXAMPLE_ROUTE_DELETE = exports.EXAMPLE_DISTRO_DELETE = exports.EXAMPLE_ROUTE_GET = exports.EXAMPLE_DISTRO_UPDATE = exports.EXAMPLE_DISTRO_GET = exports.EXAMPLE_DISTRO_LIST = exports.EXAMPLE_SANDBOX_CP = exports.ERR_PROJECT_NO_PROJECTS = exports.TXT_LOGIN_SELECT_PROJECT = exports.TXT_COMMAND_PROJECT_CREATED = exports.TXT_COMMAND_PROJECT_LINK_NOT_FOUND = exports.TXT_COMMAND_PROJECT_LINK_NAME = exports.TXT_COMMAND_PROJECT_LINK_SELECT_PROJECT = exports.TXT_COMMAND_PROJECT_LINK_TO = exports.TXT_COMMAND_PROJECT_LINK_EXISTING_DESC = exports.TXT_COMMAND_PROJECT_LINK_EXISTING = exports.TXT_COMMAND_PROJECT_LINK_CREATE_NEW_DESC = exports.TXT_COMMAND_PROJECT_LINK_CREATE_NEW = exports.ERR_COMMAND_PROJECT_LINK_DIR_NOT_DIR = exports.TXT_COMMAND_PROJECT_LINK_GIT_REPO_INITIALIZED = exports.TXT_COMMAND_PROJECT_LINK_GIT_REPO = exports.TXT_COMMAND_PROJECT_LINK_DIR_CONFIRM = exports.TXT_COMMAND_PROJECT_LINK_DIR_LINKED = exports.ERR_COMMAND_PROJECT_LINK_DIR_CREATE = exports.OPT_COMMAND_PROJECT_LINK_TRY_NOW = void 0;
|
|
21
|
+
exports.EXAMPLE_CRAWL_LINK = exports.EXAMPLE_CRAWL_RUN = exports.EXAMPLE_TESTS_CAPTURE = exports.EXAMPLE_TESTS_VISUAL_SESSION_CLOSE = exports.EXAMPLE_TESTS_VISUAL_SESSION_CREATE = exports.EXAMPLE_TESTS_VISUAL_LINK = exports.EXAMPLE_TESTS_VISUAL_UPLOAD = exports.EXAMPLE_TESTS_VISUAL_SETUP = exports.EXAMPLE_TESTS_UNIT_LINK = exports.EXAMPLE_TESTS_UNIT_UPLOAD = exports.EXAMPLE_ARTIFACT_VERSION_DELETE = exports.EXAMPLE_ARTIFACT_VERSION_GET = exports.EXAMPLE_ARTIFACT_VERSION_LIST = exports.EXAMPLE_ARTIFACT_CREATE = exports.EXAMPLE_ARTIFACT_DELETE = exports.EXAMPLE_ARTIFACT_DOWNLOAD = exports.EXAMPLE_ARTIFACT_PUBLISH = exports.EXAMPLE_ARTIFACT_VERSION_CREATE = exports.EXAMPLE_PIPELINE_RUN_RETRY = exports.EXAMPLE_PIPELINE_RUN_LIST = exports.EXAMPLE_PIPELINE_LIST = exports.EXAMPLE_PIPELINE_YML = exports.EXAMPLE_PIPELINE_GET = exports.EXAMPLE_PIPELINE_UPDATE = exports.EXAMPLE_PIPELINE_DELETE = exports.EXAMPLE_PIPELINE_CREATE = exports.EXAMPLE_PIPELINE_RUN_CANCEL = exports.EXAMPLE_PIPELINE_RUN_APPLY = exports.EXAMPLE_PIPELINE_RUN_LOGS = exports.EXAMPLE_PIPELINE_RUN_JSONL = exports.EXAMPLE_PIPELINE_RUN_STATUS = exports.EXAMPLE_PIPELINE_RUN_START = exports.EXAMPLE_SANDBOX_ENDPOINT_LIST = exports.EXAMPLE_SANDBOX_ENDPOINT_GET = exports.EXAMPLE_SANDBOX_ENDPOINT_DELETE = exports.EXAMPLE_SANDBOX_ENDPOINT_CREATE = exports.EXAMPLE_SANDBOX_SNAPSHOT_LIST = exports.EXAMPLE_SANDBOX_SNAPSHOT_GET = exports.EXAMPLE_SANDBOX_SNAPSHOT_DELETE = exports.EXAMPLE_SANDBOX_SNAPSHOT_CREATE = exports.EXAMPLE_SANDBOX_EXEC_STATUS = void 0;
|
|
22
22
|
const utils_1 = require("./utils");
|
|
23
23
|
exports.ERR_CANCELLED = 'Cancelled';
|
|
24
24
|
exports.ERR_REST_API_GENERAL_ERROR = 'Something went wrong';
|
|
@@ -119,6 +119,18 @@ exports.ERR_AGENT_TAG_INVALID = ERR_AGENT_TAG_INVALID;
|
|
|
119
119
|
exports.ERR_SWW_AGENT_ENABLING = 'Failed installing agent';
|
|
120
120
|
exports.ERR_SWW_AGENT_UPDATING = 'Failed updating agent';
|
|
121
121
|
exports.ERR_AGENT_ADMIN_RIGHTS = 'Command must be run with administrator rights';
|
|
122
|
+
const ERR_AGENT_DIR_REPLACED = (p) => `Refusing to change rights of '${p}': it is a symbolic link, not the agent's own file`;
|
|
123
|
+
exports.ERR_AGENT_DIR_REPLACED = ERR_AGENT_DIR_REPLACED;
|
|
124
|
+
const ERR_AGENT_USER_UNKNOWN = (user) => `Cannot find user '${user}' on this machine`;
|
|
125
|
+
exports.ERR_AGENT_USER_UNKNOWN = ERR_AGENT_USER_UNKNOWN;
|
|
126
|
+
const ERR_AGENT_PORT_TAKEN = (port) => `Port ${port} is already in use: an agent may already be running on this machine`;
|
|
127
|
+
exports.ERR_AGENT_PORT_TAKEN = ERR_AGENT_PORT_TAKEN;
|
|
128
|
+
const ERR_AGENT_CONFIG_UNREADABLE = (p) => `Agent config '${p}' is there but cannot be read. Repair or remove it: while it stays, it is the install every command resolves to and nothing else on this machine is used`;
|
|
129
|
+
exports.ERR_AGENT_CONFIG_UNREADABLE = ERR_AGENT_CONFIG_UNREADABLE;
|
|
130
|
+
const ERR_AGENT_APP_INSTALL_PRESENT = (p) => `An agent is already installed on this machine as a standalone app ('${p}'). Uninstall it first: one agent per machine, app or service.`;
|
|
131
|
+
exports.ERR_AGENT_APP_INSTALL_PRESENT = ERR_AGENT_APP_INSTALL_PRESENT;
|
|
132
|
+
const TXT_AGENT_APP_INSTALL_ORPHANED = (p) => `Leftover: a standalone config at '${p}' is not the install managed here, remove it`;
|
|
133
|
+
exports.TXT_AGENT_APP_INSTALL_ORPHANED = TXT_AGENT_APP_INSTALL_ORPHANED;
|
|
122
134
|
exports.ERR_AGENT_NOT_SUPPORTED = 'Starting agent is not supported';
|
|
123
135
|
exports.ERR_TUNNEL_ALREADY_EXISTS = 'Tunnel name exists: change or use -f to overwrite';
|
|
124
136
|
const ERR_FAILED_TO_CONNECT = (host) => `Failed to connect to '${host}'`;
|
|
@@ -457,7 +469,7 @@ exports.OPTION_AGENT_ID = 'Start existing agent';
|
|
|
457
469
|
exports.OPTION_AGENT_START = 'Start agent right away';
|
|
458
470
|
exports.OPTION_AGENT_TOKEN = 'token to authorize existing agent agent or token to add a new agent';
|
|
459
471
|
exports.OPTION_USER = 'OS user name. Default: root (macOS/Linux), LocalSystem (Windows. Provide as DOMAIN\\USER (use `whoami` to get full username)';
|
|
460
|
-
exports.OPTION_APP = 'Starts bdy agent as standalone process';
|
|
472
|
+
exports.OPTION_APP = 'Starts bdy agent as standalone process, needs no administrator rights';
|
|
461
473
|
exports.OPTION_PASS = 'Password of the user. Only set for Windows';
|
|
462
474
|
exports.OPTION_AGENT_TARGET = 'Makes the agent available as a target';
|
|
463
475
|
exports.OPTION_AGENT_PROXY = 'Makes the agent available as a proxy';
|
|
@@ -557,6 +569,10 @@ exports.LOG_SSH_CONNECTION = 'New SSH TCP connection';
|
|
|
557
569
|
const LOG_ERROR_STARTING_AGENT_SERVER = (port) => `Error while starting agent API server: port ${port} is already in use`;
|
|
558
570
|
exports.LOG_ERROR_STARTING_AGENT_SERVER = LOG_ERROR_STARTING_AGENT_SERVER;
|
|
559
571
|
exports.LOG_AGENT_SERVER_STARTED = 'Agent server started';
|
|
572
|
+
const LOG_AGENT_RIGHTS_DIR_SKIPPED = (p) => `Left '${p}' alone: rights are only applied to the files directly in the system directory`;
|
|
573
|
+
exports.LOG_AGENT_RIGHTS_DIR_SKIPPED = LOG_AGENT_RIGHTS_DIR_SKIPPED;
|
|
574
|
+
const LOG_AGENT_RIGHTS_SKIPPED = (p) => `Left the system directory rights alone: '${p}' does not say which user the service runs as`;
|
|
575
|
+
exports.LOG_AGENT_RIGHTS_SKIPPED = LOG_AGENT_RIGHTS_SKIPPED;
|
|
560
576
|
const LOG_AGENT_UPDATE_REQUESTED = (from, to) => `Remote update requested, updating agent from '${from}' to '${to}'`;
|
|
561
577
|
exports.LOG_AGENT_UPDATE_REQUESTED = LOG_AGENT_UPDATE_REQUESTED;
|
|
562
578
|
exports.LOG_AGENT_UPDATE_STANDALONE = 'Remote update is not supported for a standalone agent: nothing supervises the process, so it would not come back after exiting. Update the cli and run `bdy agent update`';
|
package/distTs/src/utils.js
CHANGED
|
@@ -37,7 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.isDomainAvailable = exports.newCommand = exports.formatBytes = exports.formatHelp = exports.getPlatform = exports.getHostname = exports.isStringRegExp = exports.getWorkingDir = 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.ARTIFACT_AUTH_TYPE = exports.ARTIFACT_TYPE = exports.SANDBOX_SNAPSHOT_STATUS = exports.SANDBOX_APP_STATUS = exports.SANDBOX_SETUP_STATUS = exports.SANDBOX_EXEC_STATUS = exports.SANDBOX_EXEC_RUNTIME = exports.SANDBOX_STATUS = exports.REST_API_ENDPOINT = exports.REST_API_REGION = exports.DEFAULT_SANDBOX_CP_USER = exports.ARTIFACT_DEFAULT_VERSION = exports.SUGGESTED_BROWSER_VERSION = exports.AGENT_UPDATE_STATUS_TTL_MS = exports.AGENT_UPDATE_PROBATION_MS = exports.AGENT_UPDATE_MAX_ATTEMPTS = exports.AGENT_FETCH_RETRY_MAX = exports.AGENT_FETCH_RETRY_MIN = exports.SSH_HANDSHAKE_TIMEOUT = exports.DEFAULT_TIMEOUT = exports.TUNNEL_HTTP_RETRY_AFTER = exports.TUNNEL_HTTP_MAX_INFLIGHT = 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;
|
|
40
|
-
exports.getGitName = exports.getGitEmail = exports.MCP_TOOL_CATEGORIES = exports.getBasicCommandTls = exports.getBasicCommandHttp = exports.getBasicCommandSandboxEndpoint = exports.getBasicCommandTcp = exports.getCurrentUser = exports.getServiceUser = exports.getRealTargetHost = exports.isWindows = exports.isLinux = exports.isOsx = exports.isDocker = exports.sleep = exports.getLatestVersion = exports.getVersionEnv = exports.getCurrentVersionWithoutEnv = exports.getVersionWithoutEnv = exports.getVersion = exports.isInstalledByChoco = exports.isInstalledByApt = exports.isInstalledByBrew = exports.isInstalledByNpm = exports.tryGetEmail = exports.execLocally = exports.getHomeDirectory = void 0;
|
|
40
|
+
exports.getGitName = exports.getGitEmail = exports.MCP_TOOL_CATEGORIES = exports.getBasicCommandTls = exports.getBasicCommandHttp = exports.getBasicCommandSandboxEndpoint = exports.getBasicCommandTcp = exports.getCurrentUser = exports.getServiceUser = exports.getRealTargetHost = exports.isWindows = exports.isLinux = exports.isOsx = exports.isDocker = exports.sleep = exports.getLatestVersion = exports.getVersionEnv = exports.getCurrentVersionWithoutEnv = exports.getVersionWithoutEnv = exports.getVersion = exports.isInstalledByChoco = exports.isInstalledByApt = exports.isInstalledByBrew = exports.isInstalledByNpm = exports.isNpmGlobalWritable = exports.isPathWritable = exports.tryGetEmail = exports.execLocally = exports.getHomeDirectory = exports.HOME_DIR_NAME = exports.chownToHomeOwner = void 0;
|
|
41
41
|
exports.apiErrorCodeToClass = apiErrorCodeToClass;
|
|
42
42
|
exports.isFile = isFile;
|
|
43
43
|
exports.getAppWorkspaceUrl = getAppWorkspaceUrl;
|
|
@@ -352,19 +352,79 @@ const isDomainAvailable = (domain) => {
|
|
|
352
352
|
return domain.available && !!domain.prices && !!domain.prices.create;
|
|
353
353
|
};
|
|
354
354
|
exports.isDomainAvailable = isDomainAvailable;
|
|
355
|
+
// Checked once per directory: this is on the path of nearly every command, and the repair below
|
|
356
|
+
// only has anything to do the first time
|
|
357
|
+
const homeDirsChecked = new Set();
|
|
358
|
+
// Everything under a home directory belongs to whoever owns that home directory. A root process
|
|
359
|
+
// can arrive here through someone else's HOME - macOS sudo keeps it - and every file it creates
|
|
360
|
+
// would otherwise be root-owned, locking that account out of its own token and log. Read off the
|
|
361
|
+
// directory rather than SUDO_UID: su, cron or any script that sets HOME gets here with no sudo
|
|
362
|
+
// variables to read, and on a sudo that does reset HOME this is root's own directory and the
|
|
363
|
+
// owner already matches.
|
|
364
|
+
const chownToHomeOwner = (p) => {
|
|
365
|
+
if ((0, exports.isWindows)() || !process.getuid || process.getuid() !== 0)
|
|
366
|
+
return;
|
|
367
|
+
try {
|
|
368
|
+
const home = (0, node_fs_1.statSync)((0, node_os_1.homedir)());
|
|
369
|
+
if (home.uid === 0)
|
|
370
|
+
return;
|
|
371
|
+
if ((0, node_fs_1.lstatSync)(p).uid === home.uid)
|
|
372
|
+
return;
|
|
373
|
+
// lchown, never chown: `.bdy` sits in a directory that account controls, so it can be a
|
|
374
|
+
// symlink they put there and following it would hand them root's ownership of the target
|
|
375
|
+
(0, node_fs_1.lchownSync)(p, home.uid, home.gid);
|
|
376
|
+
}
|
|
377
|
+
catch {
|
|
378
|
+
// do nothing, a path we cannot stat is not ours to hand over
|
|
379
|
+
}
|
|
380
|
+
};
|
|
381
|
+
exports.chownToHomeOwner = chownToHomeOwner;
|
|
382
|
+
// Named rather than repeated: a service install looks for an `--app` one in homes other than
|
|
383
|
+
// its own, and it has to build that path itself - see AgentSystem.getStandaloneConfigPathIn
|
|
384
|
+
exports.HOME_DIR_NAME = '.bdy';
|
|
385
|
+
// Everything in here is one account's own - the tunnel token in cfg.json, the agent token and
|
|
386
|
+
// ssh host key under agent/, the log. 0700 rather than the 0777 this used to create: the write
|
|
387
|
+
// bit on this directory is what decides who may rename or replace what is inside it, so a
|
|
388
|
+
// world-writable one lets any local user swap `agent` for a symlink into their own directory and
|
|
389
|
+
// read the token the next install writes there. Modes on the files themselves cannot stop that.
|
|
355
390
|
const getHomeDirectory = () => {
|
|
356
391
|
if ((0, exports.isDocker)())
|
|
357
392
|
return '/buddy';
|
|
358
393
|
const r = (0, node_os_1.homedir)();
|
|
359
|
-
const p = node_path_1.default.join(r,
|
|
394
|
+
const p = node_path_1.default.join(r, exports.HOME_DIR_NAME);
|
|
360
395
|
if (!(0, node_fs_1.existsSync)(p)) {
|
|
361
396
|
(0, node_fs_1.mkdirSync)(p, { recursive: true });
|
|
397
|
+
(0, exports.chownToHomeOwner)(p);
|
|
362
398
|
try {
|
|
363
|
-
(0, node_fs_1.chmodSync)(p,
|
|
399
|
+
(0, node_fs_1.chmodSync)(p, 0o700);
|
|
364
400
|
}
|
|
365
401
|
catch {
|
|
366
402
|
// do nothing
|
|
367
403
|
}
|
|
404
|
+
homeDirsChecked.add(p);
|
|
405
|
+
return p;
|
|
406
|
+
}
|
|
407
|
+
if (!homeDirsChecked.has(p)) {
|
|
408
|
+
homeDirsChecked.add(p);
|
|
409
|
+
// Ownership first, mode second, and never the other way around: the released version left
|
|
410
|
+
// this 0777, which is what lets the owner of this home into a directory an earlier `sudo bdy`
|
|
411
|
+
// created as root. Tightening that before handing it over would lock them out of a machine
|
|
412
|
+
// that was working. A chown that lands and a chmod that fails leaves 0777 and nobody shut out.
|
|
413
|
+
(0, exports.chownToHomeOwner)(p);
|
|
414
|
+
try {
|
|
415
|
+
// 0777 exactly is this cli's own footprint, not a mode anyone chose, so it goes back to
|
|
416
|
+
// what a fresh install would have created. Anything else group- or world-writable loses
|
|
417
|
+
// only the write bits - they are what lets another account replace what is in here - so a
|
|
418
|
+
// mode an admin set deliberately keeps whatever read access it was given.
|
|
419
|
+
const mode = (0, node_fs_1.statSync)(p).mode & 0o777;
|
|
420
|
+
if (mode === 0o777)
|
|
421
|
+
(0, node_fs_1.chmodSync)(p, 0o700);
|
|
422
|
+
else if (mode & 0o022)
|
|
423
|
+
(0, node_fs_1.chmodSync)(p, mode & ~0o022);
|
|
424
|
+
}
|
|
425
|
+
catch {
|
|
426
|
+
// do nothing, a directory that is not ours to re-mode stays as it is
|
|
427
|
+
}
|
|
368
428
|
}
|
|
369
429
|
return p;
|
|
370
430
|
};
|
|
@@ -400,6 +460,41 @@ const tryGetEmail = async (client) => {
|
|
|
400
460
|
return null;
|
|
401
461
|
};
|
|
402
462
|
exports.tryGetEmail = tryGetEmail;
|
|
463
|
+
// Whether this account could write there itself. Used to decide whether an install command is
|
|
464
|
+
// worth prefixing with sudo - a suggestion that asks for a password it does not need trains
|
|
465
|
+
// people to run the whole thing as root, and a global npm install done that way stays
|
|
466
|
+
// root-owned afterwards.
|
|
467
|
+
const isPathWritable = (p) => {
|
|
468
|
+
try {
|
|
469
|
+
(0, node_fs_1.accessSync)(p, node_fs_1.constants.W_OK);
|
|
470
|
+
return true;
|
|
471
|
+
}
|
|
472
|
+
catch {
|
|
473
|
+
return false;
|
|
474
|
+
}
|
|
475
|
+
};
|
|
476
|
+
exports.isPathWritable = isPathWritable;
|
|
477
|
+
// The global prefix belongs to root for a node installed system-wide, and to the user for nvm,
|
|
478
|
+
// fnm, volta or a prefix they set themselves - which is the common case and needs no sudo.
|
|
479
|
+
const isNpmGlobalWritable = async () => {
|
|
480
|
+
try {
|
|
481
|
+
const prefix = (await (0, exports.execLocally)('npm prefix -g', {}, true)).trim();
|
|
482
|
+
if (!prefix)
|
|
483
|
+
return false;
|
|
484
|
+
// What a global install actually writes into. Before the first one they may not exist yet,
|
|
485
|
+
// in which case the prefix is what has to be writable for npm to create them.
|
|
486
|
+
const targets = [
|
|
487
|
+
node_path_1.default.join(prefix, 'lib', 'node_modules'),
|
|
488
|
+
node_path_1.default.join(prefix, 'bin'),
|
|
489
|
+
].filter((p) => (0, node_fs_1.existsSync)(p));
|
|
490
|
+
const paths = targets.length ? targets : [prefix];
|
|
491
|
+
return paths.every((p) => (0, exports.isPathWritable)(p));
|
|
492
|
+
}
|
|
493
|
+
catch {
|
|
494
|
+
return false;
|
|
495
|
+
}
|
|
496
|
+
};
|
|
497
|
+
exports.isNpmGlobalWritable = isNpmGlobalWritable;
|
|
403
498
|
const isInstalledByNpm = async () => {
|
|
404
499
|
try {
|
|
405
500
|
const out = await (0, exports.execLocally)('npm -g list');
|