bdy 1.23.14-dev-target-commands → 1.23.14-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/README.md +181 -0
- package/distTs/package.json +3 -3
- package/distTs/src/agent/manager.js +9 -2
- package/distTs/src/api/client.js +22 -11
- package/distTs/src/command/api/request.js +5 -4
- package/distTs/src/command/environment/delete.js +2 -1
- package/distTs/src/command/environment/resolve.js +21 -4
- package/distTs/src/command/environment/update.js +2 -1
- package/distTs/src/command/pre.js +9 -8
- package/distTs/src/command/project/get.js +18 -0
- package/distTs/src/command/project/git/credential.js +6 -4
- package/distTs/src/command/project/set.js +31 -0
- package/distTs/src/command/sandbox/exec/command.js +1 -1
- package/distTs/src/command/sandbox/exec/logs.js +1 -1
- package/distTs/src/command/sandbox/get/yaml.js +30 -0
- package/distTs/src/command/target/delete.js +2 -1
- package/distTs/src/command/target/exec/command.js +3 -5
- package/distTs/src/command/target/scope.js +37 -7
- package/distTs/src/command/target/update.js +2 -1
- package/distTs/src/command/version.js +1 -1
- package/distTs/src/command/vt/scrape.js +193 -0
- package/distTs/src/index.js +14 -0
- package/distTs/src/logger.js +7 -1
- package/distTs/src/output/pipeline.js +5 -3
- package/distTs/src/output.js +12 -3
- package/distTs/src/texts.js +8 -9
- package/distTs/src/tunnel/server/sftp.js +24 -5
- package/distTs/src/tunnel/ssh/client.js +35 -4
- package/distTs/src/utils.js +49 -14
- package/package.json +3 -3
- package/distTs/detect-rules.json +0 -351
- package/distTs/src/command/pipeline/run/apply.js +0 -62
- package/distTs/src/command/yaml/actions/detect.js +0 -268
- package/distTs/src/command/yaml/actions/info.js +0 -56
- package/distTs/src/command/yaml/actions/list.js +0 -70
- package/distTs/src/command/yaml/actions/schema.js +0 -104
- package/distTs/src/command/yaml/actions.js +0 -13
- package/distTs/src/command/yaml/agents.js +0 -88
- package/distTs/src/command/yaml/cache.js +0 -98
- package/distTs/src/command/yaml/init.js +0 -110
- package/distTs/src/command/yaml/pipeline.js +0 -42
- package/distTs/src/command/yaml/render.js +0 -83
- package/distTs/src/command/yaml/schemaUtils.js +0 -139
- package/distTs/src/command/yaml/validate.js +0 -259
- package/distTs/src/command/yaml.js +0 -18
- package/distTs/src/diskCache.js +0 -82
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const texts_1 = require("../../texts");
|
|
9
|
+
const validation_1 = require("../../visualTest/validation");
|
|
10
|
+
const output_1 = __importDefault(require("../../output"));
|
|
11
|
+
const requests_1 = require("../../visualTest/requests");
|
|
12
|
+
const zod_1 = require("zod");
|
|
13
|
+
const node_zlib_1 = require("node:zlib");
|
|
14
|
+
const tar_stream_1 = __importDefault(require("tar-stream"));
|
|
15
|
+
const promises_1 = require("node:stream/promises");
|
|
16
|
+
const node_fs_1 = require("node:fs");
|
|
17
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
18
|
+
const promises_2 = require("node:fs/promises");
|
|
19
|
+
const commandScrape = (0, utils_1.newCommand)('scrape', texts_1.DESC_COMMAND_VT_SCRAPE);
|
|
20
|
+
commandScrape.argument('<url>', texts_1.OPTION_SCRAPE_URL);
|
|
21
|
+
commandScrape.option('--follow', texts_1.OPTION_SCRAPE_FOLLOW, false);
|
|
22
|
+
commandScrape.addOption(new commander_1.Option('--outputType <type>', texts_1.OPTION_SCRAPE_OUTPUT_TYPE)
|
|
23
|
+
.choices(['jpeg', 'png', 'md', 'html'])
|
|
24
|
+
.makeOptionMandatory());
|
|
25
|
+
commandScrape.option('--quality <quality>', texts_1.OPTION_SCRAPE_QUALITY);
|
|
26
|
+
commandScrape.option('--fullPage', texts_1.OPTION_SCRAPE_FULL_PAGE, false);
|
|
27
|
+
commandScrape.option('--cssSelector <selector>', texts_1.OPTION_SCRAPE_CSS_SELECTOR);
|
|
28
|
+
commandScrape.option('--xpathSelector <selector>', texts_1.OPTION_SCRAPE_XPATH_SELECTOR);
|
|
29
|
+
commandScrape.addOption(new commander_1.Option('--browser <browser>', texts_1.OPTION_SCRAPE_BROWSER)
|
|
30
|
+
.choices(['chrome', 'firefox', 'safari'])
|
|
31
|
+
.default('chrome'));
|
|
32
|
+
commandScrape.option('--viewport <viewport>', texts_1.OPTION_SCRAPE_VIEWPORT, '1920x1080');
|
|
33
|
+
commandScrape.option('--devicePixelRatio <ratio>', texts_1.OPTION_SCRAPE_DEVICE_PIXEL_RATIO, '1');
|
|
34
|
+
commandScrape.option('--waitForElement <selector>', texts_1.OPTION_SCRAPE_WAIT_FOR_ELEMENT);
|
|
35
|
+
commandScrape.option('--darkMode', texts_1.OPTION_SCRAPE_DARK_MODE, false);
|
|
36
|
+
commandScrape.option('--delay <delay>', texts_1.OPTION_SCRAPE_DELAY, '0');
|
|
37
|
+
commandScrape.option('--outputDir <dir>', texts_1.OPTION_SCRAPE_OUTPUT_DIR, '.');
|
|
38
|
+
commandScrape.action(async (inputUrl, options) => {
|
|
39
|
+
if (!(0, validation_1.checkToken)()) {
|
|
40
|
+
output_1.default.exitError(texts_1.ERR_MISSING_VT_TOKEN);
|
|
41
|
+
}
|
|
42
|
+
const { url, follow, outputType, quality, outputDir, fullPage, cssSelector, xpathSelector, browser, viewport, devicePixelRatio, darkMode, delay, waitForElement, } = validateInputAndOptions(inputUrl, options);
|
|
43
|
+
try {
|
|
44
|
+
const { buildId } = await (0, requests_1.sendScrap)(url, outputType, follow, quality, fullPage, cssSelector, xpathSelector, browser, viewport, devicePixelRatio, darkMode, delay, waitForElement);
|
|
45
|
+
output_1.default.normal('Starting scrape session');
|
|
46
|
+
const status = await watchSessionStatus(buildId);
|
|
47
|
+
if (!status.ok) {
|
|
48
|
+
output_1.default.exitError(`Unexpected error while watching session status: ${status.error}`);
|
|
49
|
+
}
|
|
50
|
+
output_1.default.normal('Downloading scrape package');
|
|
51
|
+
const scrapPackageStream = await (0, requests_1.downloadScrapPackage)(buildId);
|
|
52
|
+
const brotliDecompressor = (0, node_zlib_1.createBrotliDecompress)();
|
|
53
|
+
const unpack = tar_stream_1.default.extract();
|
|
54
|
+
unpack.on('entry', async (header, stream, next) => {
|
|
55
|
+
const currentDir = process.cwd();
|
|
56
|
+
const preparedOutputDir = outputDir.startsWith('.')
|
|
57
|
+
? node_path_1.default.join(currentDir, outputDir)
|
|
58
|
+
: outputDir;
|
|
59
|
+
const newFilePath = node_path_1.default.join(preparedOutputDir, header.name);
|
|
60
|
+
try {
|
|
61
|
+
if (header.type === 'file') {
|
|
62
|
+
await (0, promises_2.mkdir)(node_path_1.default.dirname(newFilePath), { recursive: true });
|
|
63
|
+
const fileWriteStream = (0, node_fs_1.createWriteStream)(newFilePath);
|
|
64
|
+
await (0, promises_1.pipeline)(stream, fileWriteStream);
|
|
65
|
+
next();
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
stream.resume();
|
|
69
|
+
next();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (entryError) {
|
|
73
|
+
output_1.default.error(`Error processing entry ${header.name}: ${entryError}`);
|
|
74
|
+
next(entryError);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
await (0, promises_1.pipeline)(scrapPackageStream, brotliDecompressor, unpack);
|
|
78
|
+
output_1.default.exitSuccess('Downloading scrape package finished');
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
output_1.default.exitError(`${error}`);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
function validateInputAndOptions(input, options) {
|
|
85
|
+
const urlSchema = zod_1.z.string().url();
|
|
86
|
+
const optionsSchema = zod_1.z.object({
|
|
87
|
+
follow: zod_1.z.boolean(),
|
|
88
|
+
outputType: zod_1.z.enum(['jpeg', 'png', 'md', 'html']),
|
|
89
|
+
quality: zod_1.z.coerce.number().min(1).max(100).optional(),
|
|
90
|
+
outputDir: zod_1.z.string().default('.'),
|
|
91
|
+
fullPage: zod_1.z.boolean().optional(),
|
|
92
|
+
cssSelector: zod_1.z.string().optional(),
|
|
93
|
+
xpathSelector: zod_1.z.string().optional(),
|
|
94
|
+
browser: zod_1.z.enum(['chrome', 'firefox', 'safari']),
|
|
95
|
+
viewport: zod_1.z
|
|
96
|
+
.string()
|
|
97
|
+
.refine((value) => {
|
|
98
|
+
const [width, height] = value.split('x');
|
|
99
|
+
return (width &&
|
|
100
|
+
height &&
|
|
101
|
+
!isNaN(Number(width)) &&
|
|
102
|
+
!isNaN(Number(height)) &&
|
|
103
|
+
Number(width) > 0 &&
|
|
104
|
+
Number(height) > 0);
|
|
105
|
+
}, 'Invalid viewport format, example: 1920x1080')
|
|
106
|
+
.transform((value) => {
|
|
107
|
+
const [width, height] = value.split('x');
|
|
108
|
+
return {
|
|
109
|
+
width: Number(width),
|
|
110
|
+
height: Number(height),
|
|
111
|
+
};
|
|
112
|
+
}),
|
|
113
|
+
devicePixelRatio: zod_1.z.coerce.number().min(1).max(4),
|
|
114
|
+
darkMode: zod_1.z.boolean(),
|
|
115
|
+
delay: zod_1.z.coerce.number().min(0).max(10000),
|
|
116
|
+
waitForElement: zod_1.z.string().optional(),
|
|
117
|
+
});
|
|
118
|
+
try {
|
|
119
|
+
const url = urlSchema.parse(input);
|
|
120
|
+
const { follow, outputType, quality, outputDir, fullPage, cssSelector, xpathSelector, browser, viewport, devicePixelRatio, darkMode, delay, waitForElement, } = optionsSchema.parse(options);
|
|
121
|
+
if (typeof quality === 'number' && outputType !== 'jpeg') {
|
|
122
|
+
output_1.default.exitError('Quality is only supported for jpeg output type, use --outputType jpeg');
|
|
123
|
+
}
|
|
124
|
+
if (cssSelector && xpathSelector) {
|
|
125
|
+
output_1.default.exitError('Only one of --cssSelector or --xpathSelector can be used');
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
url,
|
|
129
|
+
follow,
|
|
130
|
+
outputType,
|
|
131
|
+
quality,
|
|
132
|
+
outputDir,
|
|
133
|
+
fullPage,
|
|
134
|
+
cssSelector,
|
|
135
|
+
xpathSelector,
|
|
136
|
+
browser,
|
|
137
|
+
viewport,
|
|
138
|
+
devicePixelRatio,
|
|
139
|
+
darkMode,
|
|
140
|
+
delay,
|
|
141
|
+
waitForElement,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
if (error instanceof zod_1.ZodError) {
|
|
146
|
+
output_1.default.exitError(error.errors.map((e) => `${e.path}: ${e.message}`).join(', '));
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
throw error;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
async function watchSessionStatus(buildId) {
|
|
154
|
+
return new Promise((resolve) => {
|
|
155
|
+
const eventSource = (0, requests_1.connectToScrapSession)(buildId);
|
|
156
|
+
eventSource.addEventListener('SESSION_STATUS', (event) => {
|
|
157
|
+
const data = JSON.parse(event.data);
|
|
158
|
+
if (data.status === 'GATHER_URLS_COMPLETED') {
|
|
159
|
+
output_1.default.normal(`Gathering URLs completed, found ${data.text} URLs`);
|
|
160
|
+
}
|
|
161
|
+
else if (data.status === 'GATHER_URLS_FAILED') {
|
|
162
|
+
output_1.default.error('Gathering URLs failed');
|
|
163
|
+
}
|
|
164
|
+
else if (data.status === 'SCRAPE_URL_COMPLETED') {
|
|
165
|
+
output_1.default.normal(`Scraping ${data.text} completed`);
|
|
166
|
+
}
|
|
167
|
+
else if (data.status === 'SCRAPE_URL_FAILED') {
|
|
168
|
+
output_1.default.error(`Scraping ${data.text} failed`);
|
|
169
|
+
}
|
|
170
|
+
else if (data.status === 'CREATE_PACKAGE_COMPLETED') {
|
|
171
|
+
output_1.default.normal('Package created');
|
|
172
|
+
}
|
|
173
|
+
else if (data.status === 'CREATE_PACKAGE_FAILED') {
|
|
174
|
+
output_1.default.error('Package creation failed');
|
|
175
|
+
}
|
|
176
|
+
else if (data.status === 'FINISHED') {
|
|
177
|
+
eventSource.close();
|
|
178
|
+
output_1.default.normal('Scrape session finished');
|
|
179
|
+
resolve({ ok: true });
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
eventSource.addEventListener('error', (event) => {
|
|
183
|
+
if (event.code) {
|
|
184
|
+
eventSource.close();
|
|
185
|
+
if (event.code === 410) {
|
|
186
|
+
output_1.default.normal('Scrape session finished');
|
|
187
|
+
}
|
|
188
|
+
resolve({ ok: event.code === 410, error: event.code });
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
exports.default = commandScrape;
|
package/distTs/src/index.js
CHANGED
|
@@ -9,7 +9,21 @@ const stream_1 = __importDefault(require("stream"));
|
|
|
9
9
|
output_1.default.muteNodeWarnings();
|
|
10
10
|
stream_1.default.setDefaultHighWaterMark(false, 65536);
|
|
11
11
|
process.title = 'bdy';
|
|
12
|
+
// Node writes to a pipe asynchronously and process.exit() does not wait for
|
|
13
|
+
// the buffer to drain, so large output piped to another process was cut at a
|
|
14
|
+
// pipe-buffer boundary (files and POSIX TTYs are synchronous already).
|
|
15
|
+
// Blocking mode makes every write land before exit, on all Output paths.
|
|
16
|
+
for (const s of [process.stdout, process.stderr]) {
|
|
17
|
+
s._handle?.setBlocking?.(true);
|
|
18
|
+
}
|
|
19
|
+
// The cost of blocking mode: a reader that closes early (`bdy ... | head`)
|
|
20
|
+
// turns further writes into EPIPE errors, which surface here as uncaught
|
|
21
|
+
// exceptions. That is the reader saying "got enough", not a failure - end
|
|
22
|
+
// quietly like any well-behaved pipe writer.
|
|
23
|
+
const isEpipe = (err) => err?.code === 'EPIPE' || err?.cause?.code === 'EPIPE';
|
|
12
24
|
process.on('uncaughtException', (err) => {
|
|
25
|
+
if (isEpipe(err))
|
|
26
|
+
process.exit(0);
|
|
13
27
|
logger_1.default.fatal(err);
|
|
14
28
|
output_1.default.exitError(err);
|
|
15
29
|
});
|
package/distTs/src/logger.js
CHANGED
|
@@ -64,7 +64,13 @@ class Logger {
|
|
|
64
64
|
this.logPath = (0, path_1.resolve)(this.rootPath, 'cli.log');
|
|
65
65
|
this.log1Path = (0, path_1.resolve)(this.rootPath, 'cli.1.log');
|
|
66
66
|
try {
|
|
67
|
-
|
|
67
|
+
// 'a', not 'w': every start used to truncate the log, so an agent that died and was
|
|
68
|
+
// restarted by its service manager came back having erased the only record of why -
|
|
69
|
+
// and a crash loop leaves nothing at all. Append also survives an external truncation
|
|
70
|
+
// (rotation, someone clearing the file) without the zero-padding a tracked write offset
|
|
71
|
+
// produces, because O_APPEND puts every write at the current end of the file.
|
|
72
|
+
// checkLogSize() below still bounds it at 5 MB.
|
|
73
|
+
this.logStream = fs_1.default.openSync(this.logPath, 'a');
|
|
68
74
|
}
|
|
69
75
|
catch {
|
|
70
76
|
// A log we cannot open is not a reason to fail the command - a read-only home, a full
|
|
@@ -1191,7 +1191,9 @@ class OutputPipeline {
|
|
|
1191
1191
|
this.jsonLog(logs[actionLogsStart]);
|
|
1192
1192
|
}
|
|
1193
1193
|
else {
|
|
1194
|
-
|
|
1194
|
+
// log lines are payload inside markup - escape so % and ^
|
|
1195
|
+
// sequences in build output render verbatim
|
|
1196
|
+
output_1.default.normal(output_1.default.getTermKitDimColor(` ${output_1.default.escapeTermKit(logs[actionLogsStart])}`));
|
|
1195
1197
|
}
|
|
1196
1198
|
}
|
|
1197
1199
|
if (action &&
|
|
@@ -1221,9 +1223,9 @@ class OutputPipeline {
|
|
|
1221
1223
|
let line = '';
|
|
1222
1224
|
if (i > 0)
|
|
1223
1225
|
line += ' ';
|
|
1224
|
-
line += output_1.default.getTermKitMutedColor(v.key);
|
|
1226
|
+
line += output_1.default.getTermKitMutedColor(output_1.default.escapeTermKit(v.key));
|
|
1225
1227
|
line += output_1.default.getTermKitDimColor(` = "`);
|
|
1226
|
-
line += output_1.default.getTermKitBlueColor(v.value);
|
|
1228
|
+
line += output_1.default.getTermKitBlueColor(output_1.default.escapeTermKit(v.value));
|
|
1227
1229
|
line += output_1.default.getTermKitDimColor('"');
|
|
1228
1230
|
output_1.default.normal(line);
|
|
1229
1231
|
});
|
package/distTs/src/output.js
CHANGED
|
@@ -136,9 +136,18 @@ class Output {
|
|
|
136
136
|
}
|
|
137
137
|
// Payload output (command results, logs, JSON): bypasses terminal-kit,
|
|
138
138
|
// whose printf-style formatting and ^-markup corrupt data containing
|
|
139
|
-
// % or ^ sequences.
|
|
140
|
-
|
|
141
|
-
|
|
139
|
+
// % or ^ sequences. newLine=false emits a mid-stream chunk, keeping
|
|
140
|
+
// chunk boundaries out of the payload.
|
|
141
|
+
static data(txt, newLine = true) {
|
|
142
|
+
process.stdout.write(newLine ? `${txt}\n` : txt);
|
|
143
|
+
}
|
|
144
|
+
// For payload embedded in terminal-kit markup (e.g. a dimmed log line):
|
|
145
|
+
// neutralizes the ^-markup and %-formatting the payload would otherwise
|
|
146
|
+
// trigger, so it renders verbatim while the surrounding markup still
|
|
147
|
+
// works. Only for strings printed via terminal() - ScreenBuffer.put does
|
|
148
|
+
// not printf-format, so there %% would render double.
|
|
149
|
+
static escapeTermKit(txt) {
|
|
150
|
+
return txt.replace(/[%^]/g, '$&$&');
|
|
142
151
|
}
|
|
143
152
|
static writeStderr(txt) {
|
|
144
153
|
process.stderr.write(`${txt}\n`);
|
package/distTs/src/texts.js
CHANGED
|
@@ -13,14 +13,14 @@ exports.LOG_TUNNEL_CONNECTED = exports.LOG_AGENT_STARTED = exports.LOG_AGENT_UPD
|
|
|
13
13
|
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 = 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 = void 0;
|
|
14
14
|
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 = 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 = void 0;
|
|
15
15
|
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 = 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 = void 0;
|
|
16
|
-
exports.
|
|
17
|
-
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_ENVIRONMENT_DELETED = exports.TXT_ENVIRONMENT_DELETE_CONFIRM = exports.TXT_ENVIRONMENT_UPDATED = exports.TXT_ENVIRONMENT_CREATED = exports.TXT_ENVIRONMENT_NOT_FOUND = exports.ERR_ENVIRONMENT_NOT_FOUND = exports.OPTION_ENVIRONMENT_ICON = exports.OPTION_ENVIRONMENT_PUBLIC_URL = exports.OPTION_ENVIRONMENT_TAGS = exports.OPTION_ENVIRONMENT_CREATE_IDENTIFIER = exports.OPTION_ENVIRONMENT_NAME = exports.OPTION_ENVIRONMENT_IDENTIFIER = exports.DESC_COMMAND_ENVIRONMENT_DELETE = exports.DESC_COMMAND_ENVIRONMENT_UPDATE = exports.DESC_COMMAND_ENVIRONMENT_CREATE = exports.DESC_COMMAND_ENVIRONMENT_GET = exports.DESC_COMMAND_ENVIRONMENT_LIST = exports.DESC_COMMAND_ENVIRONMENT = exports.TXT_TARGET_EXEC_KILLED = exports.TXT_TARGET_EXEC_KILL_CONFIRM = exports.WARN_TARGET_EXEC_TRUNCATED = exports.TXT_TARGET_EXEC_CANCELLED = exports.TXT_TARGET_EXEC_FAILED = exports.TXT_TARGET_EXEC_SUCCESS = exports.TXT_TARGET_EXEC_BACKGROUND = exports.TXT_TARGET_EXEC_ID = exports.TXT_TARGET_DELETED = exports.TXT_TARGET_DELETE_CONFIRM = exports.TXT_TARGET_UPDATED = exports.TXT_TARGET_CREATED = exports.TXT_TARGET_NOT_FOUND = exports.ERR_TARGET_SCOPE_NO_ENVIRONMENT = exports.ERR_TARGET_SCOPE_NO_PIPELINE = exports.ERR_TARGET_PIPELINE_ENV_CONFLICT = exports.ERR_TARGET_PIPELINE_REQUIRES_PROJECT = exports.ERR_TARGET_SCOPE = exports.ERR_TARGET_ENVIRONMENT_NOT_FOUND = exports.ERR_TARGET_EXEC_FILE_NOT_FOUND = exports.ERR_TARGET_EXEC_COMMAND_CONFLICT =
|
|
18
|
-
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 = 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 =
|
|
19
|
-
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 = 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 =
|
|
20
|
-
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 = 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_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 =
|
|
21
|
-
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 = 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 =
|
|
22
|
-
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_ENVIRONMENT_DELETE = exports.EXAMPLE_ENVIRONMENT_UPDATE = exports.EXAMPLE_ENVIRONMENT_CREATE = exports.EXAMPLE_ENVIRONMENT_GET = exports.EXAMPLE_ENVIRONMENT_LIST = exports.EXAMPLE_TARGET_EXEC_LOGS = exports.EXAMPLE_TARGET_EXEC_LIST = exports.EXAMPLE_TARGET_EXEC_KILL = exports.EXAMPLE_TARGET_EXEC_STATUS = exports.EXAMPLE_TARGET_EXEC_COMMAND = exports.EXAMPLE_TARGET_DELETE = exports.EXAMPLE_TARGET_UPDATE = exports.EXAMPLE_TARGET_CREATE = exports.EXAMPLE_TARGET_GET = exports.EXAMPLE_TARGET_LIST = 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 = 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 =
|
|
23
|
-
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 =
|
|
16
|
+
exports.ERR_TARGET_EXEC_NO_COMMAND = exports.ERR_TARGET_NO_EXECS = exports.ERR_TARGET_NOT_FOUND = exports.OPTION_TARGET_EXEC_FILE = exports.OPTION_TARGET_EXEC_ASYNC = exports.OPTION_TARGET_EXEC_COMMAND = exports.OPTION_TARGET_EXEC_LOG_LIMIT = exports.OPTION_TARGET_EXEC_LOG_OFFSET = exports.OPTION_TARGET_EXEC_LIMIT = exports.OPTION_TARGET_EXEC_ID = exports.OPTION_TARGET_YAML = exports.OPT_COMMAND_TARGET_SCOPE = exports.OPTION_TARGET_ENVIRONMENT = exports.OPTION_TARGET_PIPELINE = exports.OPTION_TARGET_IDENTIFIER = exports.DESC_COMMAND_TARGET_EXEC_LOGS = exports.DESC_COMMAND_TARGET_EXEC_LIST = exports.DESC_COMMAND_TARGET_EXEC_KILL = exports.DESC_COMMAND_TARGET_EXEC_STATUS = exports.DESC_COMMAND_TARGET_EXEC = exports.DESC_COMMAND_TARGET_DELETE = exports.DESC_COMMAND_TARGET_UPDATE = exports.DESC_COMMAND_TARGET_CREATE = exports.DESC_COMMAND_TARGET_GET = exports.DESC_COMMAND_TARGET_LIST = exports.DESC_COMMAND_TARGET = 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 = 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 = void 0;
|
|
17
|
+
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_ENVIRONMENT_DELETED = exports.TXT_ENVIRONMENT_DELETE_CONFIRM = exports.TXT_ENVIRONMENT_UPDATED = exports.TXT_ENVIRONMENT_CREATED = exports.TXT_ENVIRONMENT_NOT_FOUND = exports.ERR_ENVIRONMENT_NOT_FOUND = exports.OPTION_ENVIRONMENT_ICON = exports.OPTION_ENVIRONMENT_PUBLIC_URL = exports.OPTION_ENVIRONMENT_TAGS = exports.OPTION_ENVIRONMENT_CREATE_IDENTIFIER = exports.OPTION_ENVIRONMENT_NAME = exports.OPTION_ENVIRONMENT_IDENTIFIER = exports.DESC_COMMAND_ENVIRONMENT_DELETE = exports.DESC_COMMAND_ENVIRONMENT_UPDATE = exports.DESC_COMMAND_ENVIRONMENT_CREATE = exports.DESC_COMMAND_ENVIRONMENT_GET = exports.DESC_COMMAND_ENVIRONMENT_LIST = exports.DESC_COMMAND_ENVIRONMENT = exports.TXT_TARGET_EXEC_KILLED = exports.TXT_TARGET_EXEC_KILL_CONFIRM = exports.WARN_TARGET_EXEC_TRUNCATED = exports.TXT_TARGET_EXEC_CANCELLED = exports.TXT_TARGET_EXEC_FAILED = exports.TXT_TARGET_EXEC_SUCCESS = exports.TXT_TARGET_EXEC_BACKGROUND = exports.TXT_TARGET_EXEC_ID = exports.TXT_TARGET_DELETED = exports.TXT_TARGET_DELETE_CONFIRM = exports.TXT_TARGET_UPDATED = exports.TXT_TARGET_CREATED = exports.TXT_TARGET_NOT_FOUND = exports.ERR_TARGET_SCOPE_NO_ENVIRONMENT = exports.ERR_TARGET_SCOPE_NO_PIPELINE = exports.ERR_TARGET_PIPELINE_ENV_CONFLICT = exports.ERR_TARGET_PIPELINE_REQUIRES_PROJECT = exports.ERR_TARGET_SCOPE = exports.ERR_TARGET_ENVIRONMENT_NOT_FOUND = exports.ERR_TARGET_EXEC_FILE_NOT_FOUND = exports.ERR_TARGET_EXEC_COMMAND_CONFLICT = void 0;
|
|
18
|
+
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 = 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 = void 0;
|
|
19
|
+
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 = 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 = void 0;
|
|
20
|
+
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 = 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_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 = void 0;
|
|
21
|
+
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 = 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 = void 0;
|
|
22
|
+
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_ENVIRONMENT_DELETE = exports.EXAMPLE_ENVIRONMENT_UPDATE = exports.EXAMPLE_ENVIRONMENT_CREATE = exports.EXAMPLE_ENVIRONMENT_GET = exports.EXAMPLE_ENVIRONMENT_LIST = exports.EXAMPLE_TARGET_EXEC_LOGS = exports.EXAMPLE_TARGET_EXEC_LIST = exports.EXAMPLE_TARGET_EXEC_KILL = exports.EXAMPLE_TARGET_EXEC_STATUS = exports.EXAMPLE_TARGET_EXEC_COMMAND = exports.EXAMPLE_TARGET_DELETE = exports.EXAMPLE_TARGET_UPDATE = exports.EXAMPLE_TARGET_CREATE = exports.EXAMPLE_TARGET_GET = exports.EXAMPLE_TARGET_LIST = 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 = 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 = void 0;
|
|
23
|
+
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 = void 0;
|
|
24
24
|
const utils_1 = require("./utils");
|
|
25
25
|
exports.ERR_CANCELLED = 'Cancelled';
|
|
26
26
|
exports.ERR_REST_API_GENERAL_ERROR = 'Something went wrong';
|
|
@@ -911,7 +911,6 @@ exports.OPTION_TARGET_EXEC_LOG_OFFSET = 'Log line offset. Default: 0';
|
|
|
911
911
|
exports.OPTION_TARGET_EXEC_LOG_LIMIT = 'Maximum number of log lines. Default: all lines';
|
|
912
912
|
exports.OPTION_TARGET_EXEC_COMMAND = 'Command to execute on the target (e.g. a SQL query or a shell command)';
|
|
913
913
|
exports.OPTION_TARGET_EXEC_ASYNC = 'Start the command and return the execution id without waiting for completion';
|
|
914
|
-
exports.OPTION_TARGET_EXEC_WAIT = 'Deprecated: waiting is the default. Use --async to run in background';
|
|
915
914
|
exports.OPTION_TARGET_EXEC_FILE = 'Read the command from a file instead of the argument';
|
|
916
915
|
// Target errors
|
|
917
916
|
exports.ERR_TARGET_NOT_FOUND = 'Target not found';
|
|
@@ -82,11 +82,19 @@ class ServerSftp {
|
|
|
82
82
|
s._protocol.exitStatus(s.outgoing.id, 0);
|
|
83
83
|
s._protocol.channelEOF(s.outgoing.id);
|
|
84
84
|
}
|
|
85
|
+
// origDestroy() inside the try, not after it: it sends CHANNEL_CLOSE, and a peer that
|
|
86
|
+
// simply vanished leaves the channel 'open' while ssh2 has already torn the connection
|
|
87
|
+
// down (Protocol.cleanup on socket close). With zlib@openssh.com negotiated - which the
|
|
88
|
+
// java client on the other end of a deployment always picks - that write reaches a
|
|
89
|
+
// destroyed zlib and throws 'Invalid Zlib instance' out of ZlibPacketWriter.finalize.
|
|
90
|
+
// It escaped from inside a 'close' handler, so it took down the whole tunnel and, past
|
|
91
|
+
// the agent's uncaughtException hook, the process with it. There is nothing to salvage
|
|
92
|
+
// by letting it out: the channel this belongs to is already gone.
|
|
93
|
+
return origDestroy();
|
|
85
94
|
}
|
|
86
95
|
catch {
|
|
87
|
-
|
|
96
|
+
return undefined;
|
|
88
97
|
}
|
|
89
|
-
return origDestroy();
|
|
90
98
|
};
|
|
91
99
|
this.sftp.on('OPEN', (reqId, fileName, flags, attrs) => this.open(reqId, fileName, flags, attrs));
|
|
92
100
|
this.sftp.on('READ', (reqId, handle, offset, length) => this.read(reqId, handle, offset, length));
|
|
@@ -604,13 +612,24 @@ class ServerSftp {
|
|
|
604
612
|
}
|
|
605
613
|
destroy() {
|
|
606
614
|
if (this.sftp) {
|
|
607
|
-
|
|
608
|
-
|
|
615
|
+
try {
|
|
616
|
+
this.sftp.removeAllListeners();
|
|
617
|
+
// end() writes: EOF and CHANNEL_CLOSE go out through the connection this channel sits
|
|
618
|
+
// on, which on the teardown path is usually already gone. Whatever that write throws,
|
|
619
|
+
// the handles below still have to be released - and this runs from a 'close' handler,
|
|
620
|
+
// where an escaping error reaches uncaughtException.
|
|
621
|
+
this.sftp.end();
|
|
622
|
+
}
|
|
623
|
+
catch {
|
|
624
|
+
// do nothing
|
|
625
|
+
}
|
|
609
626
|
}
|
|
610
627
|
if (this.openHandlers) {
|
|
611
628
|
this.openHandlers.forEach((fd, id) => {
|
|
612
629
|
try {
|
|
613
|
-
|
|
630
|
+
// FileHandle.close() and Dir.close() both return a promise. try/catch cannot see a
|
|
631
|
+
// rejected one, and an unhandled rejection is as fatal to the agent as a throw.
|
|
632
|
+
Promise.resolve(fd.close()).catch(() => { });
|
|
614
633
|
}
|
|
615
634
|
catch {
|
|
616
635
|
// do nothing
|
|
@@ -16,6 +16,8 @@ class SshClient extends events_1.default {
|
|
|
16
16
|
password;
|
|
17
17
|
keepalive;
|
|
18
18
|
client;
|
|
19
|
+
lastError;
|
|
20
|
+
openedAt;
|
|
19
21
|
constructor(ip, port, username, password) {
|
|
20
22
|
super();
|
|
21
23
|
this.ip = ip;
|
|
@@ -23,8 +25,25 @@ class SshClient extends events_1.default {
|
|
|
23
25
|
this.username = username;
|
|
24
26
|
this.password = password;
|
|
25
27
|
this.keepalive = false;
|
|
28
|
+
this.lastError = null;
|
|
29
|
+
this.openedAt = 0;
|
|
26
30
|
logger_1.default.debug(`New ssh client: ${username}:${password}@${ip}:${port}`);
|
|
27
31
|
}
|
|
32
|
+
// Why the tunnel connection went away, for the one line openKeepAlive logs on its way to
|
|
33
|
+
// reconnecting. ssh2 emits 'error' and destroys the socket itself on everything fatal - a
|
|
34
|
+
// keepalive timeout, a protocol error, a socket reset - so without keeping that error the
|
|
35
|
+
// 'close' that follows is indistinguishable from the peer hanging up on us, and a tunnel that
|
|
36
|
+
// drops mid-transfer looks like nothing happened at all.
|
|
37
|
+
closeReason() {
|
|
38
|
+
const err = this.lastError;
|
|
39
|
+
const reason = err
|
|
40
|
+
? `${err.level ? `${err.level}: ` : ''}${err.message}`
|
|
41
|
+
: 'closed by peer or locally, no error reported';
|
|
42
|
+
if (!this.openedAt)
|
|
43
|
+
return `SSH client closed before it was ready (${reason})`;
|
|
44
|
+
const age = Math.round((Date.now() - this.openedAt) / 1000);
|
|
45
|
+
return `SSH client closed after ${age}s (${reason})`;
|
|
46
|
+
}
|
|
28
47
|
async open() {
|
|
29
48
|
return new Promise((resolve, reject) => {
|
|
30
49
|
this.close();
|
|
@@ -33,8 +52,14 @@ class SshClient extends events_1.default {
|
|
|
33
52
|
this.client.on('ready', () => {
|
|
34
53
|
if (this.client) {
|
|
35
54
|
this.client.removeAllListeners();
|
|
36
|
-
this
|
|
55
|
+
// Kept rather than swallowed: this is the only place an error on a live tunnel
|
|
56
|
+
// connection is ever seen. It must still not throw, so it stays a handler that only
|
|
57
|
+
// records - closeReason() reads it once the 'close' lands.
|
|
58
|
+
this.client.on('error', (err) => {
|
|
59
|
+
this.lastError = err;
|
|
60
|
+
});
|
|
37
61
|
}
|
|
62
|
+
this.openedAt = Date.now();
|
|
38
63
|
resolve();
|
|
39
64
|
});
|
|
40
65
|
this.client.once('error', (err) => {
|
|
@@ -223,20 +248,26 @@ class SshClient extends events_1.default {
|
|
|
223
248
|
openKeepAlive() {
|
|
224
249
|
logger_1.default.debug(`SSH client open`);
|
|
225
250
|
this.keepalive = true;
|
|
251
|
+
this.lastError = null;
|
|
252
|
+
this.openedAt = 0;
|
|
226
253
|
this.open()
|
|
227
254
|
.then(() => {
|
|
228
255
|
logger_1.default.debug(`SSH client opened`);
|
|
229
256
|
this.emit(tunnel_1.TUNNEL_SSH_EVENT.CONNECTED);
|
|
230
257
|
if (this.client) {
|
|
231
258
|
this.client.on('close', () => {
|
|
232
|
-
|
|
259
|
+
// info, not debug: a tunnel that drops takes every connection on it with it, and the
|
|
260
|
+
// transfers that die with it are reported far from here - on the other side, as a
|
|
261
|
+
// failed handshake. One line per drop, and the log says so without debug turned on.
|
|
262
|
+
logger_1.default.info(this.closeReason());
|
|
233
263
|
if (this.keepalive)
|
|
234
264
|
this.openKeepAlive();
|
|
235
265
|
});
|
|
236
266
|
}
|
|
237
267
|
})
|
|
238
|
-
.catch(() => {
|
|
239
|
-
|
|
268
|
+
.catch((err) => {
|
|
269
|
+
this.lastError = err;
|
|
270
|
+
logger_1.default.info(this.closeReason());
|
|
240
271
|
this.emit(tunnel_1.TUNNEL_SSH_EVENT.DISCONNECTED);
|
|
241
272
|
setTimeout(() => {
|
|
242
273
|
if (this.keepalive)
|
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.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.TARGET_EXEC_STATUS = exports.TARGET_SCOPE = 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.getSshIdent = exports.TUNNEL_SSH_IDENT_SHARED_H2 = exports.TUNNEL_CLIENT_IP_HEADER = exports.TUNNEL_HTTP2_SHED_LOG_INTERVAL = exports.TUNNEL_HTTP2_MAX_SESSIONS = exports.TUNNEL_HTTP2_SESSION_IDLE_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.truncate = 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 = exports.isDomainAvailable = exports.newCommand = exports.formatBytes = exports.formatHelp = exports.getPlatform = exports.getHostname = exports.isStringRegExp = exports.getWorkingDir = 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.truncate = exports.sleep = exports.getLatestVersion = exports.getVersionEnv = exports.getCurrentVersionWithoutEnv = exports.isVersionNewer = exports.getVersionWithoutEnv = exports.parseVersion = 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 = exports.isDomainAvailable = exports.newCommand = exports.formatBytes = exports.formatHelp = exports.getPlatform = exports.getHostname = exports.isStringRegExp = exports.getWorkingDir = void 0;
|
|
41
41
|
exports.apiErrorCodeToClass = apiErrorCodeToClass;
|
|
42
42
|
exports.isFile = isFile;
|
|
43
43
|
exports.getAppWorkspaceUrl = getAppWorkspaceUrl;
|
|
@@ -132,7 +132,7 @@ exports.AGENT_UPDATE_PROBATION_MS = 30 * 60 * 1000;
|
|
|
132
132
|
// 15s; anything past it waits for the one at 60s, so a longer ttl here shows the outcome for
|
|
133
133
|
// four times as long as it says.
|
|
134
134
|
exports.AGENT_UPDATE_STATUS_TTL_MS = 10 * 1000;
|
|
135
|
-
exports.SUGGESTED_BROWSER_VERSION = '
|
|
135
|
+
exports.SUGGESTED_BROWSER_VERSION = '151.0.7922.77';
|
|
136
136
|
exports.ARTIFACT_DEFAULT_VERSION = 'latest';
|
|
137
137
|
exports.DEFAULT_SANDBOX_CP_USER = 'buddy';
|
|
138
138
|
var REST_API_REGION;
|
|
@@ -599,19 +599,44 @@ const getVersion = () => {
|
|
|
599
599
|
return cachedVersion;
|
|
600
600
|
};
|
|
601
601
|
exports.getVersion = getVersion;
|
|
602
|
+
// The one place that knows what a version string looks like: `x.y.z` optionally followed by
|
|
603
|
+
// a channel suffix. AgentSystem.verifyBinary keeps a regex of its own on purpose - it fishes
|
|
604
|
+
// a version out of selftest output rather than parsing one, so it must not be anchored.
|
|
605
|
+
const parseVersion = (version) => {
|
|
606
|
+
const m = (version || '').match(/^(\d+)\.(\d+)\.(\d+)/);
|
|
607
|
+
if (!m)
|
|
608
|
+
return null;
|
|
609
|
+
return {
|
|
610
|
+
version: m[0],
|
|
611
|
+
major: Number(m[1]),
|
|
612
|
+
minor: Number(m[2]),
|
|
613
|
+
patch: Number(m[3]),
|
|
614
|
+
};
|
|
615
|
+
};
|
|
616
|
+
exports.parseVersion = parseVersion;
|
|
602
617
|
const getVersionWithoutEnv = (version) => {
|
|
603
|
-
|
|
604
|
-
if (m)
|
|
605
|
-
return m[0];
|
|
606
|
-
return '0.0.0';
|
|
618
|
+
return (0, exports.parseVersion)(version)?.version || '0.0.0';
|
|
607
619
|
};
|
|
608
620
|
exports.getVersionWithoutEnv = getVersionWithoutEnv;
|
|
621
|
+
// An update is only an update when the other side is actually ahead. Comparing the strings
|
|
622
|
+
// for inequality also fired on a build that is newer than what the channel publishes - a
|
|
623
|
+
// local dev build, or a machine that got the release before es.buddy.works did - and told
|
|
624
|
+
// the user to "update" to an older version. Both sides carry the same env suffix (latest is
|
|
625
|
+
// fetched per env), so the numeric triple decides.
|
|
626
|
+
const isVersionNewer = (version, than) => {
|
|
627
|
+
const a = (0, exports.parseVersion)(version);
|
|
628
|
+
const b = (0, exports.parseVersion)(than);
|
|
629
|
+
if (!a || !b)
|
|
630
|
+
return false;
|
|
631
|
+
if (a.major !== b.major)
|
|
632
|
+
return a.major > b.major;
|
|
633
|
+
if (a.minor !== b.minor)
|
|
634
|
+
return a.minor > b.minor;
|
|
635
|
+
return a.patch > b.patch;
|
|
636
|
+
};
|
|
637
|
+
exports.isVersionNewer = isVersionNewer;
|
|
609
638
|
const getCurrentVersionWithoutEnv = () => {
|
|
610
|
-
|
|
611
|
-
const m = v.match(/^\d+\.\d+\.\d+/);
|
|
612
|
-
if (m)
|
|
613
|
-
return m[0];
|
|
614
|
-
return '0.0.0';
|
|
639
|
+
return (0, exports.getVersionWithoutEnv)((0, exports.getVersion)());
|
|
615
640
|
};
|
|
616
641
|
exports.getCurrentVersionWithoutEnv = getCurrentVersionWithoutEnv;
|
|
617
642
|
const getVersionEnv = () => {
|
|
@@ -640,10 +665,20 @@ const getLatestVersion = async () => {
|
|
|
640
665
|
});
|
|
641
666
|
if (response.status === 200) {
|
|
642
667
|
const data = await response.text();
|
|
643
|
-
|
|
668
|
+
// A 200 whose body is not a version - a padded value, an error page from something in
|
|
669
|
+
// front of the bucket - is nothing a caller can act on, so it fails here rather than
|
|
670
|
+
// downstream, where every comparison would read it as "no update". The parsed triple
|
|
671
|
+
// is what gets returned, not the body: the regex is unanchored at the end, so a body
|
|
672
|
+
// that merely starts with a version would otherwise carry its tail into the banners,
|
|
673
|
+
// the update log and the equality test in AgentManager.remoteUpdate.
|
|
674
|
+
// Only the agent's remote update surfaces this - `commandPre` swallows it, so the CLI
|
|
675
|
+
// stays quiet about a channel it could not read.
|
|
676
|
+
const parsed = (0, exports.parseVersion)(data.trim());
|
|
677
|
+
if (!parsed)
|
|
678
|
+
throw new Error(texts_1.ERR_FETCH_VERSION);
|
|
644
679
|
if (env === 'prod')
|
|
645
|
-
return
|
|
646
|
-
return `${
|
|
680
|
+
return parsed.version;
|
|
681
|
+
return `${parsed.version}-${env}`;
|
|
647
682
|
}
|
|
648
683
|
else {
|
|
649
684
|
return '0.0.0';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bdy",
|
|
3
3
|
"preferGlobal": false,
|
|
4
|
-
"version": "1.23.14-dev
|
|
4
|
+
"version": "1.23.14-dev",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://buddy.works/docs/cli",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"@fastify/cors": "11.2.0",
|
|
54
54
|
"@inquirer/prompts": "8.5.2",
|
|
55
55
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
56
|
-
"@puppeteer/browsers": "2.
|
|
56
|
+
"@puppeteer/browsers": "3.2.0",
|
|
57
57
|
"@scalar/json-magic": "0.12.16",
|
|
58
58
|
"@scalar/openapi-parser": "0.28.7",
|
|
59
59
|
"@scalar/openapi-types": "0.9.1",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"picomatch": "4.0.4",
|
|
82
82
|
"pino": "10.3.1",
|
|
83
83
|
"punycode": "2.3.1",
|
|
84
|
-
"puppeteer-core": "
|
|
84
|
+
"puppeteer-core": "25.6.0",
|
|
85
85
|
"range-parser": "1.2.1",
|
|
86
86
|
"socket.io-client": "4.8.3",
|
|
87
87
|
"ssh2": "1.17.0",
|