bdy 1.16.21-dev → 1.16.23-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 +1 -1
- package/distTs/src/api/client.js +305 -61
- package/distTs/src/command/login.js +24 -13
- package/distTs/src/command/logout.js +18 -0
- package/distTs/src/command/package/download.js +1 -3
- package/distTs/src/command/package/list.js +1 -3
- package/distTs/src/command/package/publish.js +1 -3
- package/distTs/src/command/pipeline/run.js +1 -3
- package/distTs/src/command/project/list.js +8 -5
- package/distTs/src/command/project/set.js +1 -3
- package/distTs/src/command/sandbox/cp.js +1 -3
- package/distTs/src/command/sandbox/create.js +7 -12
- package/distTs/src/command/sandbox/destroy.js +1 -3
- package/distTs/src/command/sandbox/endpoint/add.js +1 -3
- package/distTs/src/command/sandbox/endpoint/delete.js +4 -4
- package/distTs/src/command/sandbox/endpoint/get.js +1 -3
- package/distTs/src/command/sandbox/endpoint/list.js +1 -3
- package/distTs/src/command/sandbox/exec/command.js +1 -3
- package/distTs/src/command/sandbox/exec/kill.js +1 -3
- package/distTs/src/command/sandbox/exec/list.js +1 -3
- package/distTs/src/command/sandbox/exec/logs.js +1 -3
- package/distTs/src/command/sandbox/exec/status.js +1 -3
- package/distTs/src/command/sandbox/get.js +5 -4
- package/distTs/src/command/sandbox/list.js +4 -5
- package/distTs/src/command/sandbox/restart.js +3 -6
- package/distTs/src/command/sandbox/snapshot/create.js +3 -6
- package/distTs/src/command/sandbox/snapshot/delete.js +1 -3
- package/distTs/src/command/sandbox/snapshot/get.js +6 -4
- package/distTs/src/command/sandbox/snapshot/list.js +19 -12
- package/distTs/src/command/sandbox/start.js +3 -6
- package/distTs/src/command/sandbox/status.js +2 -3
- package/distTs/src/command/sandbox/stop.js +3 -6
- package/distTs/src/command/whoami.js +5 -1
- package/distTs/src/command/workspace/list.js +3 -5
- package/distTs/src/command/workspace/set.js +1 -3
- package/distTs/src/input.js +16 -2
- package/distTs/src/output.js +14 -0
- package/distTs/src/texts.js +8 -30
- package/distTs/src/tunnel/cfg.js +24 -5
- package/distTs/src/utils.js +83 -0
- package/distTs/src/visualTest/server.js +1 -0
- package/package.json +1 -1
|
@@ -7,7 +7,6 @@ const utils_1 = require("../../../utils");
|
|
|
7
7
|
const texts_1 = require("../../../texts");
|
|
8
8
|
const output_1 = __importDefault(require("../../../output"));
|
|
9
9
|
const input_1 = __importDefault(require("../../../input"));
|
|
10
|
-
const client_1 = __importDefault(require("../../../api/client"));
|
|
11
10
|
const commandSandboxSnapshotGet = (0, utils_1.newCommand)('get', texts_1.DESC_COMMAND_SANDBOX_SNAPSHOT_GET);
|
|
12
11
|
commandSandboxSnapshotGet.option('--token <token>', texts_1.OPTION_REST_API_TOKEN);
|
|
13
12
|
commandSandboxSnapshotGet.option('--api <url>', texts_1.OPTION_REST_API_ENDPOINT);
|
|
@@ -17,11 +16,10 @@ commandSandboxSnapshotGet.option('-p, --project <name>', texts_1.OPTION_REST_API
|
|
|
17
16
|
commandSandboxSnapshotGet.argument('<identifier>', texts_1.OPTION_SANDBOX_IDENTIFIER);
|
|
18
17
|
commandSandboxSnapshotGet.argument('<snapshot-name>', texts_1.OPTION_SANDBOX_SNAPSHOT_NAME_ARG);
|
|
19
18
|
commandSandboxSnapshotGet.action(async (identifier, snapshotName, options) => {
|
|
20
|
-
const token = input_1.default.restApiToken(options.token);
|
|
21
19
|
const baseUrl = input_1.default.restApiBaseUrl(options.api, options.region);
|
|
22
20
|
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
23
21
|
const project = input_1.default.restApiProject(options.project);
|
|
24
|
-
const client =
|
|
22
|
+
const client = input_1.default.restApiTokenClient(baseUrl, options.token);
|
|
25
23
|
const result = await client.listSandboxes(workspace, project);
|
|
26
24
|
const sandboxes = result.sandboxes || [];
|
|
27
25
|
const found = sandboxes.find((s) => s.identifier === identifier);
|
|
@@ -42,8 +40,12 @@ commandSandboxSnapshotGet.action(async (identifier, snapshotName, options) => {
|
|
|
42
40
|
['Created', snapshot.create_date || '-'],
|
|
43
41
|
];
|
|
44
42
|
if (snapshot.creator) {
|
|
45
|
-
data.push([
|
|
43
|
+
data.push([
|
|
44
|
+
'Creator',
|
|
45
|
+
snapshot.creator.name || snapshot.creator.email || '-',
|
|
46
|
+
]);
|
|
46
47
|
}
|
|
48
|
+
data.push(['URL', snapshot.html_url]);
|
|
47
49
|
output_1.default.table(data);
|
|
48
50
|
output_1.default.exitNormal();
|
|
49
51
|
});
|
|
@@ -7,37 +7,44 @@ const utils_1 = require("../../../utils");
|
|
|
7
7
|
const texts_1 = require("../../../texts");
|
|
8
8
|
const output_1 = __importDefault(require("../../../output"));
|
|
9
9
|
const input_1 = __importDefault(require("../../../input"));
|
|
10
|
-
const client_1 = __importDefault(require("../../../api/client"));
|
|
11
10
|
const commandSandboxSnapshotList = (0, utils_1.newCommand)('list', texts_1.DESC_COMMAND_SANDBOX_SNAPSHOT_LIST);
|
|
11
|
+
commandSandboxSnapshotList.alias('ls');
|
|
12
12
|
commandSandboxSnapshotList.option('--token <token>', texts_1.OPTION_REST_API_TOKEN);
|
|
13
13
|
commandSandboxSnapshotList.option('--api <url>', texts_1.OPTION_REST_API_ENDPOINT);
|
|
14
14
|
commandSandboxSnapshotList.option('--region <region>', texts_1.OPTION_REST_API_REGION);
|
|
15
15
|
commandSandboxSnapshotList.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
16
16
|
commandSandboxSnapshotList.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
17
|
-
commandSandboxSnapshotList.argument('
|
|
17
|
+
commandSandboxSnapshotList.argument('[identifier]', texts_1.OPTION_SANDBOX_IDENTIFIER);
|
|
18
18
|
commandSandboxSnapshotList.action(async (identifier, options) => {
|
|
19
|
-
const token = input_1.default.restApiToken(options.token);
|
|
20
19
|
const baseUrl = input_1.default.restApiBaseUrl(options.api, options.region);
|
|
21
20
|
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
22
21
|
const project = input_1.default.restApiProject(options.project);
|
|
23
|
-
const client =
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
const client = input_1.default.restApiTokenClient(baseUrl, options.token);
|
|
23
|
+
let snapshots;
|
|
24
|
+
if (identifier) {
|
|
25
|
+
const result = await client.listSandboxes(workspace, project);
|
|
26
|
+
const sandboxes = result.sandboxes || [];
|
|
27
|
+
const found = sandboxes.find((s) => s.identifier === identifier);
|
|
28
|
+
if (!found) {
|
|
29
|
+
output_1.default.exitError(texts_1.ERR_SANDBOX_NOT_FOUND);
|
|
30
|
+
}
|
|
31
|
+
const snapshotsResult = await client.listSandboxSnapshots(workspace, found.id);
|
|
32
|
+
snapshots = snapshotsResult.snapshots || [];
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
const result = await client.listProjectSnapshots(workspace, project);
|
|
36
|
+
snapshots = result.snapshots || [];
|
|
29
37
|
}
|
|
30
|
-
const snapshotsResult = await client.listSandboxSnapshots(workspace, found.id);
|
|
31
|
-
const snapshots = snapshotsResult.snapshots || [];
|
|
32
38
|
if (snapshots.length === 0) {
|
|
33
39
|
output_1.default.exitError(texts_1.ERR_SANDBOX_SNAPSHOTS_NOT_FOUND);
|
|
34
40
|
}
|
|
35
|
-
const data = [['Name', 'Status', 'Created']];
|
|
41
|
+
const data = [['Name', 'Status', 'Created', 'URL']];
|
|
36
42
|
for (const snapshot of snapshots) {
|
|
37
43
|
data.push([
|
|
38
44
|
snapshot.name || '-',
|
|
39
45
|
snapshot.status || '-',
|
|
40
46
|
snapshot.create_date || '-',
|
|
47
|
+
snapshot.html_url || '-'
|
|
41
48
|
]);
|
|
42
49
|
}
|
|
43
50
|
output_1.default.table(data);
|
|
@@ -7,22 +7,19 @@ const utils_1 = require("../../utils");
|
|
|
7
7
|
const texts_1 = require("../../texts");
|
|
8
8
|
const output_1 = __importDefault(require("../../output"));
|
|
9
9
|
const input_1 = __importDefault(require("../../input"));
|
|
10
|
-
const client_1 = __importDefault(require("../../api/client"));
|
|
11
10
|
const commandSandboxStart = (0, utils_1.newCommand)('start', texts_1.DESC_COMMAND_SANDBOX_START);
|
|
12
11
|
commandSandboxStart.option('--token <token>', texts_1.OPTION_REST_API_TOKEN);
|
|
13
12
|
commandSandboxStart.option('--api <url>', texts_1.OPTION_REST_API_ENDPOINT);
|
|
14
13
|
commandSandboxStart.option('--region <region>', texts_1.OPTION_REST_API_REGION);
|
|
15
14
|
commandSandboxStart.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
16
15
|
commandSandboxStart.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
17
|
-
commandSandboxStart.option('--wait', texts_1.OPTION_SANDBOX_WAIT);
|
|
18
|
-
commandSandboxStart.option('--wait-timeout <seconds>', texts_1.OPTION_SANDBOX_WAIT_TIMEOUT, '300');
|
|
16
|
+
commandSandboxStart.option('--wait [seconds]', texts_1.OPTION_SANDBOX_WAIT);
|
|
19
17
|
commandSandboxStart.argument('<identifier>', texts_1.OPTION_SANDBOX_IDENTIFIER);
|
|
20
18
|
commandSandboxStart.action(async (identifier, options) => {
|
|
21
|
-
const token = input_1.default.restApiToken(options.token);
|
|
22
19
|
const baseUrl = input_1.default.restApiBaseUrl(options.api, options.region);
|
|
23
20
|
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
24
21
|
const project = input_1.default.restApiProject(options.project);
|
|
25
|
-
const client =
|
|
22
|
+
const client = input_1.default.restApiTokenClient(baseUrl, options.token);
|
|
26
23
|
const result = await client.listSandboxes(workspace, project);
|
|
27
24
|
const sandboxes = result.sandboxes || [];
|
|
28
25
|
const found = sandboxes.find((s) => s.identifier === identifier);
|
|
@@ -32,7 +29,7 @@ commandSandboxStart.action(async (identifier, options) => {
|
|
|
32
29
|
await client.startSandbox(workspace, found.id);
|
|
33
30
|
if (options.wait) {
|
|
34
31
|
output_1.default.normal(texts_1.TXT_SANDBOX_WAITING_START);
|
|
35
|
-
const timeout = parseInt(options.
|
|
32
|
+
const timeout = parseInt(options.wait, 10) || 300;
|
|
36
33
|
try {
|
|
37
34
|
const status = await client.sandboxWaitForRunning(workspace, found.id, timeout);
|
|
38
35
|
if (status !== utils_1.SANDBOX_STATUS.RUNNING) {
|
|
@@ -7,7 +7,6 @@ const utils_1 = require("../../utils");
|
|
|
7
7
|
const texts_1 = require("../../texts");
|
|
8
8
|
const output_1 = __importDefault(require("../../output"));
|
|
9
9
|
const input_1 = __importDefault(require("../../input"));
|
|
10
|
-
const client_1 = __importDefault(require("../../api/client"));
|
|
11
10
|
const commandSandboxStatus = (0, utils_1.newCommand)('status', texts_1.DESC_COMMAND_SANDBOX_STATUS);
|
|
12
11
|
commandSandboxStatus.option('--token <token>', texts_1.OPTION_REST_API_TOKEN);
|
|
13
12
|
commandSandboxStatus.option('--api <url>', texts_1.OPTION_REST_API_ENDPOINT);
|
|
@@ -16,11 +15,10 @@ commandSandboxStatus.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_
|
|
|
16
15
|
commandSandboxStatus.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
17
16
|
commandSandboxStatus.argument('<identifier>', texts_1.OPTION_SANDBOX_IDENTIFIER);
|
|
18
17
|
commandSandboxStatus.action(async (identifier, options) => {
|
|
19
|
-
const token = input_1.default.restApiToken(options.token);
|
|
20
18
|
const baseUrl = input_1.default.restApiBaseUrl(options.api, options.region);
|
|
21
19
|
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
22
20
|
const project = input_1.default.restApiProject(options.project);
|
|
23
|
-
const client =
|
|
21
|
+
const client = input_1.default.restApiTokenClient(baseUrl, options.token);
|
|
24
22
|
const result = await client.listSandboxes(workspace, project);
|
|
25
23
|
const sandboxes = result.sandboxes || [];
|
|
26
24
|
const found = sandboxes.find((s) => s.identifier === identifier);
|
|
@@ -29,6 +27,7 @@ commandSandboxStatus.action(async (identifier, options) => {
|
|
|
29
27
|
}
|
|
30
28
|
const sandbox = await client.getSandbox(workspace, found.id);
|
|
31
29
|
output_1.default.table([
|
|
30
|
+
['Type', 'Status'],
|
|
32
31
|
['Status', sandbox.status || 'UNKNOWN'],
|
|
33
32
|
['Setup', sandbox.setup_status || 'UNKNOWN'],
|
|
34
33
|
['App', sandbox.app_status || 'UNKNOWN']
|
|
@@ -7,22 +7,19 @@ const utils_1 = require("../../utils");
|
|
|
7
7
|
const texts_1 = require("../../texts");
|
|
8
8
|
const output_1 = __importDefault(require("../../output"));
|
|
9
9
|
const input_1 = __importDefault(require("../../input"));
|
|
10
|
-
const client_1 = __importDefault(require("../../api/client"));
|
|
11
10
|
const commandSandboxStop = (0, utils_1.newCommand)('stop', texts_1.DESC_COMMAND_SANDBOX_STOP);
|
|
12
11
|
commandSandboxStop.option('--token <token>', texts_1.OPTION_REST_API_TOKEN);
|
|
13
12
|
commandSandboxStop.option('--api <url>', texts_1.OPTION_REST_API_ENDPOINT);
|
|
14
13
|
commandSandboxStop.option('--region <region>', texts_1.OPTION_REST_API_REGION);
|
|
15
14
|
commandSandboxStop.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
16
15
|
commandSandboxStop.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
17
|
-
commandSandboxStop.option('--wait', texts_1.OPTION_SANDBOX_WAIT);
|
|
18
|
-
commandSandboxStop.option('--wait-timeout <seconds>', texts_1.OPTION_SANDBOX_WAIT_TIMEOUT, '300');
|
|
16
|
+
commandSandboxStop.option('--wait [seconds]', texts_1.OPTION_SANDBOX_WAIT);
|
|
19
17
|
commandSandboxStop.argument('<identifier>', texts_1.OPTION_SANDBOX_IDENTIFIER);
|
|
20
18
|
commandSandboxStop.action(async (identifier, options) => {
|
|
21
|
-
const token = input_1.default.restApiToken(options.token);
|
|
22
19
|
const baseUrl = input_1.default.restApiBaseUrl(options.api, options.region);
|
|
23
20
|
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
24
21
|
const project = input_1.default.restApiProject(options.project);
|
|
25
|
-
const client =
|
|
22
|
+
const client = input_1.default.restApiTokenClient(baseUrl, options.token);
|
|
26
23
|
const result = await client.listSandboxes(workspace, project);
|
|
27
24
|
const sandboxes = result.sandboxes || [];
|
|
28
25
|
const found = sandboxes.find((s) => s.identifier === identifier);
|
|
@@ -32,7 +29,7 @@ commandSandboxStop.action(async (identifier, options) => {
|
|
|
32
29
|
await client.stopSandbox(workspace, found.id);
|
|
33
30
|
if (options.wait) {
|
|
34
31
|
output_1.default.normal(texts_1.TXT_SANDBOX_WAITING_STOP);
|
|
35
|
-
const timeout = parseInt(options.
|
|
32
|
+
const timeout = parseInt(options.wait, 10) || 300;
|
|
36
33
|
try {
|
|
37
34
|
const status = await client.sandboxWaitForRunning(workspace, found.id, timeout);
|
|
38
35
|
if (status !== utils_1.SANDBOX_STATUS.STOPPED) {
|
|
@@ -27,13 +27,17 @@ const tryGetEmail = async (client) => {
|
|
|
27
27
|
const commandWhoami = (0, utils_1.newCommand)('whoami', texts_1.DESC_COMMAND_WHOAMI);
|
|
28
28
|
commandWhoami.action(async () => {
|
|
29
29
|
const token = cfg_1.default.getApiToken();
|
|
30
|
+
const refreshToken = cfg_1.default.getApiRefreshApiToken();
|
|
31
|
+
const clientId = cfg_1.default.getApiClientId();
|
|
32
|
+
const clientSecret = cfg_1.default.getApiClientSecret();
|
|
33
|
+
const clientToken = cfg_1.default.getApiClientToken();
|
|
30
34
|
const workspace = cfg_1.default.getWorkspace();
|
|
31
35
|
const project = cfg_1.default.getProject();
|
|
32
36
|
const baseUrl = input_1.default.restApiBaseUrl();
|
|
33
37
|
if (!token) {
|
|
34
38
|
output_1.default.exitError(texts_1.ERR_WHOAMI_LOGOUT);
|
|
35
39
|
}
|
|
36
|
-
const client = new client_1.default(baseUrl, token);
|
|
40
|
+
const client = new client_1.default(baseUrl, token, refreshToken, clientId, clientSecret, clientToken);
|
|
37
41
|
const user = await client.getInvoker();
|
|
38
42
|
if (!user) {
|
|
39
43
|
output_1.default.exitError(texts_1.ERR_WHOAMI_LOGOUT);
|
|
@@ -4,7 +4,6 @@ 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 client_1 = __importDefault(require("../../api/client"));
|
|
8
7
|
const texts_1 = require("../../texts");
|
|
9
8
|
const utils_1 = require("../../utils");
|
|
10
9
|
const input_1 = __importDefault(require("../../input"));
|
|
@@ -14,17 +13,16 @@ commandWorkspaceList.option('--api <url>', texts_1.OPTION_REST_API_ENDPOINT);
|
|
|
14
13
|
commandWorkspaceList.option('--region <region>', texts_1.OPTION_REST_API_REGION);
|
|
15
14
|
commandWorkspaceList.alias('ls');
|
|
16
15
|
commandWorkspaceList.action(async (options) => {
|
|
17
|
-
const token = input_1.default.restApiToken(options.token);
|
|
18
16
|
const baseUrl = input_1.default.restApiBaseUrl(options.api, options.region);
|
|
19
|
-
const client =
|
|
17
|
+
const client = input_1.default.restApiTokenClient(baseUrl, options.token);
|
|
20
18
|
const response = await client.getWorkspaces();
|
|
21
19
|
if (!response.workspaces || response.workspaces.length === 0) {
|
|
22
20
|
output_1.default.normal('No workspaces found.');
|
|
23
21
|
output_1.default.exitNormal();
|
|
24
22
|
}
|
|
25
|
-
const data = [['NAME', 'DOMAIN']];
|
|
23
|
+
const data = [['NAME', 'DOMAIN', 'URL']];
|
|
26
24
|
for (const ws of response.workspaces) {
|
|
27
|
-
data.push([ws.name, ws.domain]);
|
|
25
|
+
data.push([ws.name, ws.domain, (0, utils_1.getAppWorkspaceUrl)(baseUrl, ws.domain)]);
|
|
28
26
|
}
|
|
29
27
|
output_1.default.table(data);
|
|
30
28
|
output_1.default.exitNormal();
|
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const cfg_1 = __importDefault(require("../../tunnel/cfg"));
|
|
7
7
|
const output_1 = __importDefault(require("../../output"));
|
|
8
|
-
const client_1 = __importDefault(require("../../api/client"));
|
|
9
8
|
const texts_1 = require("../../texts");
|
|
10
9
|
const utils_1 = require("../../utils");
|
|
11
10
|
const input_1 = __importDefault(require("../../input"));
|
|
@@ -16,9 +15,8 @@ commandWorkspaceSet.option('--region <region>', texts_1.OPTION_REST_API_REGION);
|
|
|
16
15
|
commandWorkspaceSet.argument('[workspace]', texts_1.ARG_COMMAND_WORKSPACE);
|
|
17
16
|
commandWorkspaceSet.action(async (workspaceDomain, options) => {
|
|
18
17
|
output_1.default.handleSignals();
|
|
19
|
-
const token = input_1.default.restApiToken(options.token);
|
|
20
18
|
const baseUrl = input_1.default.restApiBaseUrl(options.api, options.region);
|
|
21
|
-
const client =
|
|
19
|
+
const client = input_1.default.restApiTokenClient(baseUrl, options.token);
|
|
22
20
|
const response = await client.getWorkspaces();
|
|
23
21
|
if (!response.workspaces || response.workspaces.length === 0) {
|
|
24
22
|
output_1.default.exitError(texts_1.ERR_LOGIN_NO_WORKSPACES);
|
package/distTs/src/input.js
CHANGED
|
@@ -47,6 +47,7 @@ const texts_1 = require("./texts");
|
|
|
47
47
|
const tunnel_1 = require("./types/tunnel");
|
|
48
48
|
const node_path_1 = __importStar(require("node:path"));
|
|
49
49
|
const cfg_1 = __importDefault(require("./tunnel/cfg"));
|
|
50
|
+
const client_1 = __importDefault(require("./api/client"));
|
|
50
51
|
class Input {
|
|
51
52
|
static timeout(timeout) {
|
|
52
53
|
const t = parseInt(timeout, 10);
|
|
@@ -300,14 +301,27 @@ class Input {
|
|
|
300
301
|
}
|
|
301
302
|
static restApiToken(token) {
|
|
302
303
|
let t = process.env.BUDDY_TOKEN;
|
|
304
|
+
let rf = '';
|
|
305
|
+
let cid = '';
|
|
306
|
+
let cs = '';
|
|
307
|
+
let ct = '';
|
|
303
308
|
if (token)
|
|
304
309
|
t = token;
|
|
305
|
-
if (!t)
|
|
310
|
+
if (!t) {
|
|
306
311
|
t = cfg_1.default.getApiToken();
|
|
312
|
+
rf = cfg_1.default.getApiRefreshApiToken();
|
|
313
|
+
cid = cfg_1.default.getApiClientId();
|
|
314
|
+
cs = cfg_1.default.getApiClientSecret();
|
|
315
|
+
ct = cfg_1.default.getApiClientToken();
|
|
316
|
+
}
|
|
307
317
|
if (!t) {
|
|
308
318
|
output_1.default.exitError(texts_1.ERR_REST_API_TOKEN);
|
|
309
319
|
}
|
|
310
|
-
return t;
|
|
320
|
+
return { token: t, refreshToken: rf, clientId: cid, clientSecret: cs, clientToken: ct };
|
|
321
|
+
}
|
|
322
|
+
static restApiTokenClient(baseUrl, token) {
|
|
323
|
+
const { token: t, refreshToken, clientId, clientToken, clientSecret } = this.restApiToken(token);
|
|
324
|
+
return new client_1.default(baseUrl, t, refreshToken, clientId, clientSecret, clientToken);
|
|
311
325
|
}
|
|
312
326
|
static pipelineRunPriority(priority) {
|
|
313
327
|
if (!priority)
|
package/distTs/src/output.js
CHANGED
|
@@ -59,6 +59,12 @@ class Output {
|
|
|
59
59
|
msg += '\n';
|
|
60
60
|
terminal.green(msg);
|
|
61
61
|
}
|
|
62
|
+
static blue(txt, newLine = true) {
|
|
63
|
+
let msg = txt;
|
|
64
|
+
if (newLine)
|
|
65
|
+
msg += '\n';
|
|
66
|
+
terminal.blue(msg);
|
|
67
|
+
}
|
|
62
68
|
static debug(txt) {
|
|
63
69
|
if (context_1.debug) {
|
|
64
70
|
this.normal(txt);
|
|
@@ -128,6 +134,12 @@ class Output {
|
|
|
128
134
|
else
|
|
129
135
|
this.tunnelNonInteractive(tunnel);
|
|
130
136
|
}
|
|
137
|
+
static object(data) {
|
|
138
|
+
Object.keys(data).forEach((key) => {
|
|
139
|
+
this.blue(`${key}: `, false);
|
|
140
|
+
this.normal(data[key]);
|
|
141
|
+
});
|
|
142
|
+
}
|
|
131
143
|
static table(data) {
|
|
132
144
|
// apply padding
|
|
133
145
|
for (let i = 0; i < data.length; i += 1) {
|
|
@@ -142,6 +154,8 @@ class Output {
|
|
|
142
154
|
}
|
|
143
155
|
terminal.table(data, {
|
|
144
156
|
fit: false,
|
|
157
|
+
hasBorder: false,
|
|
158
|
+
firstRowTextAttr: { color: 'blue' }
|
|
145
159
|
});
|
|
146
160
|
}
|
|
147
161
|
static configTunnels(tunnels) {
|
package/distTs/src/texts.js
CHANGED
|
@@ -8,9 +8,9 @@ exports.OPTION_REST_API_WORKSPACE = exports.OPTION_PIPELINE_RUN_WAIT = exports.O
|
|
|
8
8
|
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 = 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_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_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_PROJECT = void 0;
|
|
9
9
|
exports.LOG_HTTP1_CONNECTION = exports.LOG_ERROR = exports.LOG_STOPPING_TUNNEL = exports.LOG_STARTING_TUNNEL = exports.LOG_ENABLING_AGENT_TARGET = exports.LOG_DISABLING_AGENT_TARGET = exports.LOG_REMOVING_TUNNEL = exports.LOG_TUNNEL_REGISTERED = exports.LOG_ERROR_WHILE_REFRESHING_AGENT = 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_SCRAPE_OUTPUT_DIR = exports.OPTION_SCRAPE_DELAY = exports.OPTION_SCRAPE_DARK_MODE = exports.OPTION_SCRAPE_WAIT_FOR_ELEMENT = exports.OPTION_SCRAPE_DEVICE_PIXEL_RATIO = exports.OPTION_SCRAPE_VIEWPORT = exports.OPTION_SCRAPE_BROWSER = exports.OPTION_SCRAPE_XPATH_SELECTOR = exports.OPTION_SCRAPE_CSS_SELECTOR = exports.OPTION_SCRAPE_FULL_PAGE = exports.OPTION_SCRAPE_QUALITY = exports.OPTION_SCRAPE_OUTPUT_TYPE = exports.OPTION_SCRAPE_FOLLOW = exports.OPTION_SCRAPE_URL = void 0;
|
|
10
10
|
exports.DESC_COMMAND_SANDBOX_EXEC = exports.DESC_COMMAND_SANDBOX_STATUS = 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_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_SCRAPPING_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_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_SERVER_STARTED = exports.LOG_ERROR_STARTING_AGENT_SERVER = exports.LOG_SSH_CONNECTION = exports.LOG_WRONG_STREAM = exports.LOG_DETECTED_STREAM = exports.LOG_HTTP2_REQUEST = exports.LOG_HTTP2_CONNECTION = exports.LOG_HTTP1_REQUEST = void 0;
|
|
11
|
-
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_ID = exports.DESC_COMMAND_SANDBOX_EXEC_KILL = exports.DESC_COMMAND_SANDBOX_EXEC_LOGS = exports.DESC_COMMAND_SANDBOX_EXEC_STATUS = exports.DESC_COMMAND_SANDBOX_EXEC_LIST = exports.TXT_SANDBOX_WAITING_START = exports.TXT_SANDBOX_WAITING_STOP = exports.TXT_SANDBOX_WAITING_APP = 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_CREATED = exports.TXT_SANDBOX_CREATING = exports.
|
|
12
|
-
exports.TXT_LOGIN_ENTER_BASE_URL = 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_LOGOUT_SUCCESS = exports.DESC_COMMAND_LOGOUT = exports.DESC_COMMAND_LOGIN = exports.ERR_WHOAMI_LOGOUT = exports.TXT_WHOAMI_NO_PROJECT = 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_DEST = exports.ERR_SANDBOX_CP_SOURCE_NOT_FOUND = exports.TXT_SANDBOX_CP_DONE = exports.TXT_SANDBOX_CP_PROGRESS = exports.OPTION_SANDBOX_CP_SILENT = 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_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_DELETED = exports.TXT_SANDBOX_SNAPSHOT_CREATED =
|
|
13
|
-
exports.TXT_PROJECT_NONE = exports.ERR_PROJECT_NO_PROJECTS = exports.TXT_LOGIN_SELECT_PROJECT = exports.TXT_PROJECT_SET_CLEARED = exports.TXT_PROJECT_SET_SUCCESS = exports.DESC_COMMAND_PROJECT_GET = exports.ARG_COMMAND_PROJECT_NAME = exports.DESC_COMMAND_PROJECT_SET = exports.DESC_COMMAND_PROJECT_LIST = exports.DESC_COMMAND_PROJECT = exports.ERR_COMMAND_PACKAGE_NO_PROJECTS = exports.DESC_COMMAND_PACKAGE_LIST = exports.ERR_API_MESSAGE_REPLACER = exports.ERR_LOGIN_INVALID_BASE_URL = exports.ERR_LOGIN_NO_PROJECT_FOUND = exports.ERR_LOGIN_NO_WORKSPACE_FOUND = exports.ERR_LOGIN_NO_WORKSPACES = exports.ERR_LOGIN_HTTP_SUCCESS = exports.ERR_LOGIN_HTTP_FAILED = exports.TXT_LOGIN_OAUTH = exports.ERR_LOGIN_HTTP_SERVER_PORT_TAKEN = exports.TXT_LOGIN_SUCCESS =
|
|
11
|
+
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_ID = exports.DESC_COMMAND_SANDBOX_EXEC_KILL = exports.DESC_COMMAND_SANDBOX_EXEC_LOGS = exports.DESC_COMMAND_SANDBOX_EXEC_STATUS = exports.DESC_COMMAND_SANDBOX_EXEC_LIST = exports.TXT_SANDBOX_WAITING_START = exports.TXT_SANDBOX_WAITING_STOP = exports.TXT_SANDBOX_WAITING_APP = 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_CREATED = exports.TXT_SANDBOX_CREATING = exports.OPTION_SANDBOX_WAIT = exports.OPTION_SANDBOX_WAIT_APP = exports.OPTION_SANDBOX_WAIT_CONFIGURED = exports.OPTION_SANDBOX_WAIT_RUNNING = exports.ERR_SANDBOX_STOP_FAILED = 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_APP_TIMEOUT = exports.ERR_SANDBOX_SETUP_TIMEOUT = exports.ERR_SANDBOX_APP_FAILED = exports.ERR_SANDBOX_SETUP_FAILED = exports.ERR_SANDBOX_INVALID_RESOURCES = exports.ERR_SANDBOX_NOT_FOUND = exports.OPTION_SANDBOX_RUNTIME = exports.OPTION_SANDBOX_APP_TYPE = exports.OPTION_SANDBOX_APP_DIR = exports.OPTION_SANDBOX_RUN_COMMAND = exports.OPTION_SANDBOX_TAGS = exports.OPTION_SANDBOX_INSTALL_COMMANDS = exports.OPTION_SANDBOX_RESOURCES = exports.OPTION_SANDBOX_OS = exports.OPTION_SANDBOX_NAME = exports.OPTION_SANDBOX_IDENTIFIER = void 0;
|
|
12
|
+
exports.TXT_LOGIN_SELECT_WORKSPACE = exports.TXT_LOGIN_ENTER_BASE_URL = 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_LOGOUT_SUCCESS = exports.DESC_COMMAND_LOGOUT = exports.DESC_COMMAND_LOGIN = exports.ERR_WHOAMI_LOGOUT = exports.TXT_WHOAMI_NO_PROJECT = 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_DEST = exports.ERR_SANDBOX_CP_SOURCE_NOT_FOUND = exports.TXT_SANDBOX_CP_DONE = exports.TXT_SANDBOX_CP_PROGRESS = exports.OPTION_SANDBOX_CP_SILENT = 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_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_DELETED = exports.TXT_SANDBOX_SNAPSHOT_CREATED = void 0;
|
|
13
|
+
exports.TXT_PROJECT_NONE = exports.ERR_PROJECT_NO_PROJECTS = exports.TXT_LOGIN_SELECT_PROJECT = exports.TXT_PROJECT_SET_CLEARED = exports.TXT_PROJECT_SET_SUCCESS = exports.DESC_COMMAND_PROJECT_GET = exports.ARG_COMMAND_PROJECT_NAME = exports.DESC_COMMAND_PROJECT_SET = exports.DESC_COMMAND_PROJECT_LIST = exports.DESC_COMMAND_PROJECT = exports.ERR_COMMAND_PACKAGE_NO_PROJECTS = exports.DESC_COMMAND_PACKAGE_LIST = exports.ERR_API_MESSAGE_REPLACER = exports.ERR_LOGIN_INVALID_BASE_URL = exports.ERR_LOGIN_NO_PROJECT_FOUND = exports.ERR_LOGIN_NO_WORKSPACE_FOUND = exports.ERR_LOGIN_NO_WORKSPACES = exports.ERR_LOGIN_HTTP_SUCCESS = exports.ERR_LOGIN_HTTP_FAILED = exports.TXT_LOGIN_OAUTH = exports.ERR_LOGIN_HTTP_SERVER_PORT_TAKEN = exports.TXT_LOGIN_SUCCESS = void 0;
|
|
14
14
|
const utils_1 = require("./utils");
|
|
15
15
|
exports.ERR_REST_API_GENERAL_ERROR = 'Something went wrong';
|
|
16
16
|
exports.ERR_REST_API_NOT_RESPONDING = 'Api endpoint not responding. Try again later...';
|
|
@@ -519,7 +519,6 @@ exports.OPTION_SANDBOX_WAIT_RUNNING = 'wait until sandbox is running';
|
|
|
519
519
|
exports.OPTION_SANDBOX_WAIT_CONFIGURED = 'wait until sandbox ran setup commands';
|
|
520
520
|
exports.OPTION_SANDBOX_WAIT_APP = 'wait until sandbox ran ran app commands';
|
|
521
521
|
exports.OPTION_SANDBOX_WAIT = 'wait until operation completes';
|
|
522
|
-
exports.OPTION_SANDBOX_WAIT_TIMEOUT = 'timeout in seconds (default: 300)';
|
|
523
522
|
// Sandbox success messages
|
|
524
523
|
const TXT_SANDBOX_CREATING = (name, identifier) => `Creating sandbox: ${name} (${identifier})`;
|
|
525
524
|
exports.TXT_SANDBOX_CREATING = TXT_SANDBOX_CREATING;
|
|
@@ -635,39 +634,18 @@ exports.ERR_LOGIN_NO_WORKSPACE_FOUND = 'Provided workspace has been not found';
|
|
|
635
634
|
exports.ERR_LOGIN_NO_PROJECT_FOUND = 'Provided project has been not found';
|
|
636
635
|
exports.ERR_LOGIN_INVALID_BASE_URL = 'Invalid URL format';
|
|
637
636
|
const ERR_API_MESSAGE_REPLACER = (message, path, baseUrl) => {
|
|
638
|
-
let
|
|
639
|
-
|
|
640
|
-
if (path) {
|
|
637
|
+
let workspaceUrl = null;
|
|
638
|
+
if (path && baseUrl) {
|
|
641
639
|
const m = /\/workspaces\/([^/]+)\//.exec(path);
|
|
642
640
|
if (m) {
|
|
643
|
-
|
|
644
|
-
}
|
|
645
|
-
}
|
|
646
|
-
if (baseUrl) {
|
|
647
|
-
if (baseUrl.hostname.includes('api.buddy.works')) {
|
|
648
|
-
appUrl = 'app.buddy.works';
|
|
649
|
-
}
|
|
650
|
-
else if (baseUrl.hostname.includes('api.eu.buddy.works')) {
|
|
651
|
-
appUrl = 'eu.buddy.works';
|
|
652
|
-
}
|
|
653
|
-
else if (baseUrl.hostname.includes('api.as.buddy.works')) {
|
|
654
|
-
appUrl = 'as.buddy.works';
|
|
655
|
-
}
|
|
656
|
-
else if (baseUrl.hostname.includes('api.awsdev.net')) {
|
|
657
|
-
appUrl = 'app.awsdev.net';
|
|
658
|
-
}
|
|
659
|
-
else if (baseUrl.hostname.includes('api.awsstage.net')) {
|
|
660
|
-
appUrl = 'app.awsstage.net';
|
|
661
|
-
}
|
|
662
|
-
else {
|
|
663
|
-
appUrl = baseUrl.hostname;
|
|
641
|
+
workspaceUrl = (0, utils_1.getAppWorkspaceSettingsUrl)(baseUrl, m[1]);
|
|
664
642
|
}
|
|
665
643
|
}
|
|
666
644
|
if (message === 'API is disabled in this workspace') {
|
|
667
645
|
message =
|
|
668
646
|
'API is disabled in this workspace. To enable it, ask a workspace admin to update the settings';
|
|
669
|
-
if (
|
|
670
|
-
message += `:
|
|
647
|
+
if (workspaceUrl) {
|
|
648
|
+
message += `: ${workspaceUrl}`;
|
|
671
649
|
}
|
|
672
650
|
}
|
|
673
651
|
return message;
|
package/distTs/src/tunnel/cfg.js
CHANGED
|
@@ -30,7 +30,7 @@ class Cfg {
|
|
|
30
30
|
throw new Error((0, texts_1.ERR_CANT_CREATE_DIR_IN_HOME)('.bdy'));
|
|
31
31
|
}
|
|
32
32
|
try {
|
|
33
|
-
(0, fs_1.chmodSync)(this.dir,
|
|
33
|
+
(0, fs_1.chmodSync)(this.dir, 0o700);
|
|
34
34
|
}
|
|
35
35
|
catch {
|
|
36
36
|
// do nothing
|
|
@@ -44,7 +44,7 @@ class Cfg {
|
|
|
44
44
|
throw new Error((0, texts_1.ERR_CANT_CREATE_DIR_IN_HOME)('.bdy/cfg.json'));
|
|
45
45
|
}
|
|
46
46
|
try {
|
|
47
|
-
(0, fs_1.chmodSync)(this.file,
|
|
47
|
+
(0, fs_1.chmodSync)(this.file, 0o600);
|
|
48
48
|
}
|
|
49
49
|
catch {
|
|
50
50
|
// do nothing
|
|
@@ -172,14 +172,23 @@ class Cfg {
|
|
|
172
172
|
this.json.apiToken = token;
|
|
173
173
|
this.save();
|
|
174
174
|
}
|
|
175
|
-
|
|
176
|
-
if (!
|
|
175
|
+
setApiRefreshToken(token) {
|
|
176
|
+
if (!token)
|
|
177
|
+
delete this.json.apiRefreshToken;
|
|
178
|
+
else
|
|
179
|
+
this.json.apiRefreshToken = token;
|
|
180
|
+
this.save();
|
|
181
|
+
}
|
|
182
|
+
setApiClient(clientId, clientSecret, clientToken) {
|
|
183
|
+
if (!clientId || !clientSecret || !clientToken) {
|
|
177
184
|
delete this.json.apiClientId;
|
|
178
185
|
delete this.json.apiClientSecret;
|
|
186
|
+
delete this.json.apiClientToken;
|
|
179
187
|
}
|
|
180
188
|
else {
|
|
181
189
|
this.json.apiClientId = clientId;
|
|
182
190
|
this.json.apiClientSecret = clientSecret;
|
|
191
|
+
this.json.apiClientToken = clientToken;
|
|
183
192
|
}
|
|
184
193
|
this.save();
|
|
185
194
|
}
|
|
@@ -203,12 +212,18 @@ class Cfg {
|
|
|
203
212
|
getApiToken() {
|
|
204
213
|
return this.json.apiToken || '';
|
|
205
214
|
}
|
|
215
|
+
getApiRefreshApiToken() {
|
|
216
|
+
return this.json.apiRefreshToken || '';
|
|
217
|
+
}
|
|
206
218
|
getApiClientId() {
|
|
207
219
|
return this.json.apiClientId || '';
|
|
208
220
|
}
|
|
209
221
|
getApiClientSecret() {
|
|
210
222
|
return this.json.apiClientSecret || '';
|
|
211
223
|
}
|
|
224
|
+
getApiClientToken() {
|
|
225
|
+
return this.json.apiClientToken || '';
|
|
226
|
+
}
|
|
212
227
|
getTokenHost() {
|
|
213
228
|
const token = this.getToken();
|
|
214
229
|
if (!token) {
|
|
@@ -251,6 +266,10 @@ class Cfg {
|
|
|
251
266
|
}
|
|
252
267
|
clearLogin() {
|
|
253
268
|
delete this.json.apiToken;
|
|
269
|
+
delete this.json.apiRefreshToken;
|
|
270
|
+
delete this.json.apiClientId;
|
|
271
|
+
delete this.json.apiClientSecret;
|
|
272
|
+
delete this.json.apiClientToken;
|
|
254
273
|
delete this.json.workspace;
|
|
255
274
|
delete this.json.project;
|
|
256
275
|
delete this.json.baseUrl;
|
|
@@ -297,7 +316,7 @@ class Cfg {
|
|
|
297
316
|
throw new Error((0, texts_1.ERR_CANT_CREATE_DIR_IN_HOME)('.bdy/cfg.json'));
|
|
298
317
|
}
|
|
299
318
|
try {
|
|
300
|
-
(0, fs_1.chmodSync)(this.file,
|
|
319
|
+
(0, fs_1.chmodSync)(this.file, 0o600);
|
|
301
320
|
}
|
|
302
321
|
catch {
|
|
303
322
|
// do nothing
|
package/distTs/src/utils.js
CHANGED
|
@@ -40,6 +40,12 @@ exports.isLinux = exports.isOsx = exports.isDocker = exports.sleep = exports.get
|
|
|
40
40
|
exports.getBasicCommandTls = exports.getBasicCommandHttp = exports.getBasicCommandSandboxEndpoint = exports.getBasicCommandTcp = exports.createSshHostKey = exports.getRealTargetHost = exports.isWindows = void 0;
|
|
41
41
|
exports.apiErrorCodeToClass = apiErrorCodeToClass;
|
|
42
42
|
exports.isFile = isFile;
|
|
43
|
+
exports.getAppWorkspaceUrl = getAppWorkspaceUrl;
|
|
44
|
+
exports.getAppWorkspaceSettingsUrl = getAppWorkspaceSettingsUrl;
|
|
45
|
+
exports.getAppProjectUrl = getAppProjectUrl;
|
|
46
|
+
exports.getAppSandboxUrl = getAppSandboxUrl;
|
|
47
|
+
exports.getAppUrl = getAppUrl;
|
|
48
|
+
exports.getAppHostByApiBaseUrl = getAppHostByApiBaseUrl;
|
|
43
49
|
exports.asyncWait = asyncWait;
|
|
44
50
|
const node_path_1 = __importStar(require("node:path"));
|
|
45
51
|
const node_fs_1 = require("node:fs");
|
|
@@ -534,6 +540,83 @@ function isFile(path) {
|
|
|
534
540
|
return false;
|
|
535
541
|
}
|
|
536
542
|
}
|
|
543
|
+
function getAppWorkspaceUrl(baseUrl, workspace) {
|
|
544
|
+
return getAppUrl(baseUrl, `/${encodeURIComponent(workspace)}`);
|
|
545
|
+
}
|
|
546
|
+
function getAppWorkspaceSettingsUrl(baseUrl, workspace) {
|
|
547
|
+
return `${getAppWorkspaceUrl(baseUrl, workspace)}/-/workspace`;
|
|
548
|
+
}
|
|
549
|
+
function getAppProjectUrl(baseUrl, workspace, project) {
|
|
550
|
+
return `${getAppWorkspaceUrl(baseUrl, workspace)}/${encodeURIComponent(project)}`;
|
|
551
|
+
}
|
|
552
|
+
function getAppSandboxUrl(baseUrl, workspace, project, sandboxId) {
|
|
553
|
+
return `${getAppProjectUrl(baseUrl, workspace, project)}/sandboxes/${encodeURIComponent(sandboxId)}`;
|
|
554
|
+
}
|
|
555
|
+
function getAppUrl(baseUrl, path) {
|
|
556
|
+
return `https://${getAppHostByApiBaseUrl(baseUrl)}${path}`;
|
|
557
|
+
}
|
|
558
|
+
function getAppHostByApiBaseUrl(baseUrl) {
|
|
559
|
+
if (baseUrl.hostname.includes('api.buddy.works')) {
|
|
560
|
+
return 'app.buddy.works';
|
|
561
|
+
}
|
|
562
|
+
else if (baseUrl.hostname.includes('api.eu.buddy.works')) {
|
|
563
|
+
return 'eu.buddy.works';
|
|
564
|
+
}
|
|
565
|
+
else if (baseUrl.hostname.includes('api.as.buddy.works')) {
|
|
566
|
+
return 'as.buddy.works';
|
|
567
|
+
}
|
|
568
|
+
else if (baseUrl.hostname.includes('api.awsdev.net')) {
|
|
569
|
+
return 'app.awsdev.net';
|
|
570
|
+
}
|
|
571
|
+
else if (baseUrl.hostname.includes('api.awsstage.net')) {
|
|
572
|
+
return 'app.awsstage.net';
|
|
573
|
+
}
|
|
574
|
+
else if (baseUrl.hostname.includes('api.buddysd.com')) {
|
|
575
|
+
return 'app.buddysd.com';
|
|
576
|
+
}
|
|
577
|
+
else if (baseUrl.hostname.includes('api.e2e.com')) {
|
|
578
|
+
return 'app.e2e.com';
|
|
579
|
+
}
|
|
580
|
+
else if (baseUrl.hostname.includes('api.sd1.com')) {
|
|
581
|
+
return 'app.sd1.com';
|
|
582
|
+
}
|
|
583
|
+
else if (baseUrl.hostname.includes('api.sd2.com')) {
|
|
584
|
+
return 'app.sd2.com';
|
|
585
|
+
}
|
|
586
|
+
else if (baseUrl.hostname.includes('api.sd3.com')) {
|
|
587
|
+
return 'app.sd3.com';
|
|
588
|
+
}
|
|
589
|
+
else if (baseUrl.hostname.includes('api.sd4.com')) {
|
|
590
|
+
return 'app.sd4.com';
|
|
591
|
+
}
|
|
592
|
+
else if (baseUrl.hostname.includes('api.sd5.com')) {
|
|
593
|
+
return 'app.sd5.com';
|
|
594
|
+
}
|
|
595
|
+
else if (baseUrl.hostname.includes('api.sd6.com')) {
|
|
596
|
+
return 'app.sd6.com';
|
|
597
|
+
}
|
|
598
|
+
else if (baseUrl.hostname.includes('api.sd7.com')) {
|
|
599
|
+
return 'app.sd7.com';
|
|
600
|
+
}
|
|
601
|
+
else if (baseUrl.hostname.includes('api.sd8.com')) {
|
|
602
|
+
return 'app.sd8.com';
|
|
603
|
+
}
|
|
604
|
+
else if (baseUrl.hostname.includes('api.sd9.com')) {
|
|
605
|
+
return 'app.sd9.com';
|
|
606
|
+
}
|
|
607
|
+
else if (baseUrl.hostname.includes('api.eu.awsstage.net')) {
|
|
608
|
+
return 'eu.awsstage.net';
|
|
609
|
+
}
|
|
610
|
+
else if (baseUrl.hostname.includes('api.awsmaster.net')) {
|
|
611
|
+
return 'app.awsmaster.net';
|
|
612
|
+
}
|
|
613
|
+
else if (baseUrl.hostname.includes('api.buddy.mom')) {
|
|
614
|
+
return 'app.buddy.mom';
|
|
615
|
+
}
|
|
616
|
+
else {
|
|
617
|
+
return baseUrl.hostname;
|
|
618
|
+
}
|
|
619
|
+
}
|
|
537
620
|
async function asyncWait(ms) {
|
|
538
621
|
return new Promise((resolve) => {
|
|
539
622
|
setTimeout(resolve, ms);
|
|
@@ -37,6 +37,7 @@ async function getParseDom() {
|
|
|
37
37
|
function prepareSnapshotPlugin(data) {
|
|
38
38
|
try {
|
|
39
39
|
const validatedData = schemas_1.snapshotSchema.parse(data);
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
40
41
|
const { version, ...snapshot } = validatedData;
|
|
41
42
|
const cookies = snapshot.cookies.map((cookie) => {
|
|
42
43
|
if (cookie.domain) {
|