bdy 1.16.26-dev → 1.16.28-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/agent/system.js +3 -1
- package/distTs/src/api/client.js +46 -22
- package/distTs/src/command/agent/install.js +1 -1
- package/distTs/src/command/agent/uninstall.js +5 -1
- package/distTs/src/command/package/create.js +59 -0
- package/distTs/src/command/package/delete.js +37 -0
- package/distTs/src/command/package/docker/login.js +26 -0
- package/distTs/src/command/package/docker.js +11 -0
- package/distTs/src/command/package/download.js +1 -2
- package/distTs/src/command/package/get.js +39 -0
- package/distTs/src/command/package/list.js +4 -3
- package/distTs/src/command/package/publish.js +17 -3
- package/distTs/src/command/package/version/delete.js +41 -0
- package/distTs/src/command/package/version/get.js +47 -0
- package/distTs/src/command/package/version/list.js +49 -0
- package/distTs/src/command/package/version.js +16 -0
- package/distTs/src/command/package.js +10 -0
- package/distTs/src/command/pipeline/run.js +1 -2
- package/distTs/src/command/project/list.js +2 -8
- package/distTs/src/command/project/set.js +1 -2
- package/distTs/src/command/sandbox/cp.js +1 -2
- package/distTs/src/command/sandbox/create.js +2 -2
- package/distTs/src/command/sandbox/destroy.js +7 -3
- package/distTs/src/command/sandbox/endpoint/add.js +2 -2
- package/distTs/src/command/sandbox/endpoint/delete.js +7 -2
- package/distTs/src/command/sandbox/endpoint/get.js +2 -3
- package/distTs/src/command/sandbox/endpoint/list.js +2 -2
- package/distTs/src/command/sandbox/exec/command.js +1 -2
- package/distTs/src/command/sandbox/exec/kill.js +6 -2
- package/distTs/src/command/sandbox/exec/list.js +1 -2
- package/distTs/src/command/sandbox/exec/logs.js +1 -2
- package/distTs/src/command/sandbox/exec/status.js +1 -2
- package/distTs/src/command/sandbox/get.js +2 -3
- package/distTs/src/command/sandbox/list.js +2 -3
- package/distTs/src/command/sandbox/restart.js +1 -2
- package/distTs/src/command/sandbox/snapshot/create.js +2 -2
- package/distTs/src/command/sandbox/snapshot/delete.js +7 -2
- package/distTs/src/command/sandbox/snapshot/get.js +2 -3
- package/distTs/src/command/sandbox/snapshot/list.js +1 -2
- package/distTs/src/command/sandbox/start.js +1 -2
- package/distTs/src/command/sandbox/status.js +1 -2
- package/distTs/src/command/sandbox/stop.js +1 -2
- package/distTs/src/command/workspace/list.js +2 -3
- package/distTs/src/command/workspace/set.js +1 -2
- package/distTs/src/input.js +27 -2
- package/distTs/src/output.js +13 -4
- package/distTs/src/texts.js +150 -90
- package/distTs/src/utils.js +95 -16
- package/package.json +1 -1
package/distTs/package.json
CHANGED
|
@@ -183,7 +183,9 @@ class AgentSystem {
|
|
|
183
183
|
const env = (0, utils_1.getVersionEnv)();
|
|
184
184
|
const version = (0, utils_1.getCurrentVersionWithoutEnv)();
|
|
185
185
|
const archive = this.getBinaryArchive();
|
|
186
|
-
|
|
186
|
+
const url = `https://es.buddy.works/bdy/${env}/${version}/${archive}`;
|
|
187
|
+
logger_1.default.info(url);
|
|
188
|
+
return this.downloadFile(url, archivePath);
|
|
187
189
|
}
|
|
188
190
|
killStandaloneProc() {
|
|
189
191
|
return new Promise((resolve) => {
|
package/distTs/src/api/client.js
CHANGED
|
@@ -72,7 +72,8 @@ class ApiClient {
|
|
|
72
72
|
else {
|
|
73
73
|
if (httpUrlEncoded) {
|
|
74
74
|
if (!headers['content-type']) {
|
|
75
|
-
headers['content-type'] =
|
|
75
|
+
headers['content-type'] =
|
|
76
|
+
'application/x-www-form-urlencoded; charset=utf-8';
|
|
76
77
|
}
|
|
77
78
|
bodyParsed = new URLSearchParams(body).toString();
|
|
78
79
|
}
|
|
@@ -94,7 +95,11 @@ class ApiClient {
|
|
|
94
95
|
let status;
|
|
95
96
|
let responseBody;
|
|
96
97
|
logger_1.default.debug(`API CLIENT: ${method} ${this.baseUrl.protocol}//${this.baseUrl.host}${path}`);
|
|
98
|
+
logger_1.default.debug('QUERY');
|
|
99
|
+
logger_1.default.debug(query);
|
|
100
|
+
logger_1.default.debug('HEADERS');
|
|
97
101
|
logger_1.default.debug(headers);
|
|
102
|
+
logger_1.default.debug('BODY');
|
|
98
103
|
logger_1.default.debug(bodyParsed);
|
|
99
104
|
try {
|
|
100
105
|
const r = await this.client.request(opts);
|
|
@@ -118,6 +123,7 @@ class ApiClient {
|
|
|
118
123
|
tryRefreshingToken) {
|
|
119
124
|
const success = await this.tryRefreshToken();
|
|
120
125
|
if (success) {
|
|
126
|
+
delete headers.authorization;
|
|
121
127
|
return await this.request({
|
|
122
128
|
method,
|
|
123
129
|
path,
|
|
@@ -225,7 +231,7 @@ class ApiClient {
|
|
|
225
231
|
method: 'GET',
|
|
226
232
|
path: `/workspaces/${encodeURIComponent(workspace)}/tunnels/token`,
|
|
227
233
|
query,
|
|
228
|
-
parseResponseBody: true
|
|
234
|
+
parseResponseBody: true,
|
|
229
235
|
});
|
|
230
236
|
}
|
|
231
237
|
async getInvokerEmails() {
|
|
@@ -422,7 +428,7 @@ class ApiClient {
|
|
|
422
428
|
method: 'GET',
|
|
423
429
|
path: `/workspaces/${encodeURIComponent(workspace)}/sandboxes/snapshots`,
|
|
424
430
|
query,
|
|
425
|
-
parseResponseBody: true
|
|
431
|
+
parseResponseBody: true,
|
|
426
432
|
});
|
|
427
433
|
}
|
|
428
434
|
async createSandboxSnapshot(workspace, sandboxId, body) {
|
|
@@ -540,12 +546,14 @@ class ApiClient {
|
|
|
540
546
|
}
|
|
541
547
|
async getResourceByIdentifier(workspace, params) {
|
|
542
548
|
let query = '';
|
|
543
|
-
Object.
|
|
549
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
550
|
+
if (value === undefined)
|
|
551
|
+
return;
|
|
544
552
|
if (!query)
|
|
545
553
|
query += '?';
|
|
546
554
|
else
|
|
547
555
|
query += '&';
|
|
548
|
-
query += encodeURIComponent(key) + '=' + encodeURIComponent(
|
|
556
|
+
query += encodeURIComponent(key) + '=' + encodeURIComponent(value);
|
|
549
557
|
});
|
|
550
558
|
return await this.request({
|
|
551
559
|
method: 'GET',
|
|
@@ -559,6 +567,12 @@ class ApiClient {
|
|
|
559
567
|
pipeline: identifier,
|
|
560
568
|
});
|
|
561
569
|
}
|
|
570
|
+
async deletePackageVersion(workspace, packageId, versionId) {
|
|
571
|
+
return await this.request({
|
|
572
|
+
method: 'DELETE',
|
|
573
|
+
path: `/workspaces/${encodeURIComponent(workspace)}/packages/${encodeURIComponent(packageId)}/versions/${encodeURIComponent(versionId)}`
|
|
574
|
+
});
|
|
575
|
+
}
|
|
562
576
|
async getPackageVersionByIdentifier(workspace, project, pkg, version) {
|
|
563
577
|
const opts = {
|
|
564
578
|
package: pkg,
|
|
@@ -569,6 +583,17 @@ class ApiClient {
|
|
|
569
583
|
opts.package_version = version;
|
|
570
584
|
return await this.getResourceByIdentifier(workspace, opts);
|
|
571
585
|
}
|
|
586
|
+
async getPackageVersions(workspace, pkgId, page = 1, perPage = 10) {
|
|
587
|
+
return await this.request({
|
|
588
|
+
method: 'GET',
|
|
589
|
+
path: `/workspaces/${encodeURIComponent(workspace)}/packages/${pkgId}/versions`,
|
|
590
|
+
query: {
|
|
591
|
+
page: page.toString(),
|
|
592
|
+
per_page: perPage.toString()
|
|
593
|
+
},
|
|
594
|
+
parseResponseBody: true
|
|
595
|
+
});
|
|
596
|
+
}
|
|
572
597
|
async getPackageVersion(workspace, pkgId, versionId) {
|
|
573
598
|
return await this.request({
|
|
574
599
|
method: 'GET',
|
|
@@ -576,6 +601,13 @@ class ApiClient {
|
|
|
576
601
|
parseResponseBody: true,
|
|
577
602
|
});
|
|
578
603
|
}
|
|
604
|
+
async getPackage(workspace, pkgId) {
|
|
605
|
+
return await this.request({
|
|
606
|
+
method: 'GET',
|
|
607
|
+
path: `/workspaces/${encodeURIComponent(workspace)}/packages/${pkgId}`,
|
|
608
|
+
parseResponseBody: true,
|
|
609
|
+
});
|
|
610
|
+
}
|
|
579
611
|
async getPackageLatest(workspace, pkgId) {
|
|
580
612
|
const res = await this.request({
|
|
581
613
|
method: 'GET',
|
|
@@ -614,28 +646,20 @@ class ApiClient {
|
|
|
614
646
|
parseResponseBody: true,
|
|
615
647
|
});
|
|
616
648
|
}
|
|
617
|
-
async postPackage(workspace,
|
|
618
|
-
const body = {
|
|
619
|
-
name: identifier,
|
|
620
|
-
identifier,
|
|
621
|
-
type: 'FILE',
|
|
622
|
-
scope: 'WORKSPACE',
|
|
623
|
-
authorization: {
|
|
624
|
-
type: 'BUDDY',
|
|
625
|
-
},
|
|
626
|
-
};
|
|
627
|
-
if (project) {
|
|
628
|
-
body.project = {
|
|
629
|
-
name: project,
|
|
630
|
-
};
|
|
631
|
-
body.scope = 'PROJECT';
|
|
632
|
-
}
|
|
649
|
+
async postPackage(workspace, data) {
|
|
633
650
|
return await this.request({
|
|
634
651
|
method: 'POST',
|
|
635
652
|
path: `/workspaces/${encodeURIComponent(workspace)}/packages`,
|
|
636
|
-
body,
|
|
653
|
+
body: data,
|
|
637
654
|
parseResponseBody: true,
|
|
638
655
|
});
|
|
639
656
|
}
|
|
657
|
+
;
|
|
658
|
+
async deletePackage(workspace, packageId) {
|
|
659
|
+
return await this.request({
|
|
660
|
+
method: 'DELETE',
|
|
661
|
+
path: `/workspaces/${encodeURIComponent(workspace)}/packages/${encodeURIComponent(packageId)}`
|
|
662
|
+
});
|
|
663
|
+
}
|
|
640
664
|
}
|
|
641
665
|
exports.default = ApiClient;
|
|
@@ -10,11 +10,15 @@ const buddy_1 = __importDefault(require("../../tunnel/api/buddy"));
|
|
|
10
10
|
const utils_1 = require("../../utils");
|
|
11
11
|
const agent_1 = __importDefault(require("../../tunnel/api/agent"));
|
|
12
12
|
const commandAgentUninstall = (0, utils_1.newCommand)('uninstall', texts_1.DESC_COMMAND_AGENT_UNINSTALL);
|
|
13
|
-
commandAgentUninstall.
|
|
13
|
+
commandAgentUninstall.option('-f, --force', texts_1.OPTION_CONFIRM_FORCE);
|
|
14
|
+
commandAgentUninstall.action(async (options) => {
|
|
14
15
|
const hasAdminRights = await manager_1.default.system.hasAdminRights();
|
|
15
16
|
if (!hasAdminRights) {
|
|
16
17
|
output_1.default.exitError(texts_1.ERR_AGENT_ADMIN_RIGHTS);
|
|
17
18
|
}
|
|
19
|
+
const confirmed = options.force || (await output_1.default.confirm(texts_1.TXY_AGENT_CONFIRM_DELETE));
|
|
20
|
+
if (!confirmed)
|
|
21
|
+
output_1.default.exitNormal();
|
|
18
22
|
try {
|
|
19
23
|
const api = new agent_1.default(commandAgentUninstall.agentPort || 0);
|
|
20
24
|
await api.markInactive();
|
|
@@ -0,0 +1,59 @@
|
|
|
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 texts_1 = require("../../texts");
|
|
8
|
+
const input_1 = __importDefault(require("../../input"));
|
|
9
|
+
const output_1 = __importDefault(require("../../output"));
|
|
10
|
+
const commandPackageCreate = (0, utils_1.newCommand)('create', texts_1.DESC_COMMAND_PACKAGE_CREATE);
|
|
11
|
+
commandPackageCreate.alias('add');
|
|
12
|
+
commandPackageCreate.option('--token <token>', texts_1.OPTION_REST_API_TOKEN);
|
|
13
|
+
commandPackageCreate.option('--api <url>', texts_1.OPTION_REST_API_ENDPOINT);
|
|
14
|
+
commandPackageCreate.option('--region <region>', texts_1.OPTION_REST_API_REGION);
|
|
15
|
+
commandPackageCreate.option('-i, --identifier <identifier>', texts_1.OPT_COMMAND_PACKAGE_CREATE_IDENTIFIER);
|
|
16
|
+
commandPackageCreate.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
17
|
+
commandPackageCreate.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
18
|
+
commandPackageCreate.option('-t, --type <type>', texts_1.OPT_COMMAND_PACKAGE_TYPE, utils_1.PACKAGE_TYPE.FILE);
|
|
19
|
+
commandPackageCreate.option('-b, --buddy', texts_1.OPTION_HTTP_AUTH_BUDDY);
|
|
20
|
+
commandPackageCreate.option('-a, --auth <user:pass>', texts_1.OPTION_HTTP_AUTH);
|
|
21
|
+
commandPackageCreate.argument('<name>', texts_1.OPT_COMMAND_PACKAGE_NAME);
|
|
22
|
+
commandPackageCreate.action(async (name, options) => {
|
|
23
|
+
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
24
|
+
const project = input_1.default.restApiProject(options.project, true);
|
|
25
|
+
const client = input_1.default.restApiTokenClient(options.api, options.region, options.token);
|
|
26
|
+
const type = input_1.default.packageType(options.type);
|
|
27
|
+
const scope = input_1.default.packageScope(project);
|
|
28
|
+
const data = {
|
|
29
|
+
name,
|
|
30
|
+
type,
|
|
31
|
+
scope,
|
|
32
|
+
authorization: {
|
|
33
|
+
type: utils_1.PACKAGE_AUTH_TYPE.NONE,
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
if (project) {
|
|
37
|
+
data.project = {
|
|
38
|
+
name: project,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
if (options.identifier)
|
|
42
|
+
data.identifier = options.identifier;
|
|
43
|
+
if (options.auth) {
|
|
44
|
+
const { password, login } = input_1.default.auth(options.auth);
|
|
45
|
+
data.authorization = {
|
|
46
|
+
type: utils_1.PACKAGE_AUTH_TYPE.BASIC,
|
|
47
|
+
user: login,
|
|
48
|
+
password,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
else if (options.buddy) {
|
|
52
|
+
data.authorization = {
|
|
53
|
+
type: utils_1.PACKAGE_AUTH_TYPE.BUDDY,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
const result = await client.postPackage(workspace, data);
|
|
57
|
+
output_1.default.exitSuccess((0, texts_1.TXT_PACKAGE_CREATED)(workspace, result));
|
|
58
|
+
});
|
|
59
|
+
exports.default = commandPackageCreate;
|
|
@@ -0,0 +1,37 @@
|
|
|
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 texts_1 = require("../../texts");
|
|
8
|
+
const input_1 = __importDefault(require("../../input"));
|
|
9
|
+
const output_1 = __importDefault(require("../../output"));
|
|
10
|
+
const commandPackageDelete = (0, utils_1.newCommand)('delete', texts_1.DESC_COMMAND_PACKAGE_DELETE);
|
|
11
|
+
commandPackageDelete.alias('rm');
|
|
12
|
+
commandPackageDelete.option('--token <token>', texts_1.OPTION_REST_API_TOKEN);
|
|
13
|
+
commandPackageDelete.option('--api <url>', texts_1.OPTION_REST_API_ENDPOINT);
|
|
14
|
+
commandPackageDelete.option('--region <region>', texts_1.OPTION_REST_API_REGION);
|
|
15
|
+
commandPackageDelete.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
16
|
+
commandPackageDelete.option('-f, --force', texts_1.OPTION_CONFIRM_FORCE);
|
|
17
|
+
commandPackageDelete.argument('<identifier>', texts_1.OPT_COMMAND_PACKAGE_IDENTIFIER);
|
|
18
|
+
commandPackageDelete.action(async (identifier, options) => {
|
|
19
|
+
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
20
|
+
const client = input_1.default.restApiTokenClient(options.api, options.region, options.token);
|
|
21
|
+
const data = await client.getPackageVersionByIdentifier(workspace, null, identifier);
|
|
22
|
+
if (!data || !data.domain) {
|
|
23
|
+
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
24
|
+
}
|
|
25
|
+
if (!data.pkg_id) {
|
|
26
|
+
output_1.default.exitError(texts_1.ERR_PACKAGE_NOT_FOUND);
|
|
27
|
+
}
|
|
28
|
+
const confirmed = options.force || await output_1.default.confirm((0, texts_1.TXT_PACKAGE_DELETE_CONFIRM)(identifier));
|
|
29
|
+
if (confirmed) {
|
|
30
|
+
await client.deletePackage(workspace, data.pkg_id);
|
|
31
|
+
output_1.default.exitSuccess(texts_1.TXT_PACKAGE_DELETED);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
output_1.default.exitNormal();
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
exports.default = commandPackageDelete;
|
|
@@ -0,0 +1,26 @@
|
|
|
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 texts_1 = require("../../../texts");
|
|
8
|
+
const output_1 = __importDefault(require("../../../output"));
|
|
9
|
+
const input_1 = __importDefault(require("../../../input"));
|
|
10
|
+
const commandPackageDockerLogin = (0, utils_1.newCommand)('login', texts_1.DESC_COMMAND_PACKAGE_DOCKER_LOGIN);
|
|
11
|
+
commandPackageDockerLogin.option('--token <token>', texts_1.OPTION_REST_API_TOKEN);
|
|
12
|
+
commandPackageDockerLogin.option('--api <url>', texts_1.OPTION_REST_API_ENDPOINT);
|
|
13
|
+
commandPackageDockerLogin.option('--region <region>', texts_1.OPTION_REST_API_REGION);
|
|
14
|
+
commandPackageDockerLogin.action(async (options) => {
|
|
15
|
+
const client = input_1.default.restApiTokenClient(options.api, options.region, options.token);
|
|
16
|
+
await client.getInvoker();
|
|
17
|
+
const host = (0, utils_1.getDockerRegistryHostByApiBaseUrl)(client.baseUrl);
|
|
18
|
+
const output = await (0, utils_1.execLocally)(`docker login ${host} -u buddy -p "${client.token}"`);
|
|
19
|
+
if (/Login\sSucceeded/ig.test(output)) {
|
|
20
|
+
output_1.default.exitSuccess(texts_1.TXT_PACKAGE_DOCKER_LOGIN_SUCCESS);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
output_1.default.exitError(texts_1.TXT_PACKAGE_DOCKER_LOGIN_FAILED);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
exports.default = commandPackageDockerLogin;
|
|
@@ -0,0 +1,11 @@
|
|
|
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 texts_1 = require("../../texts");
|
|
8
|
+
const login_1 = __importDefault(require("./docker/login"));
|
|
9
|
+
const commandPackageDocker = (0, utils_1.newCommand)('docker', texts_1.DESC_COMMAND_PACKAGE_DOCKER_LOGIN);
|
|
10
|
+
commandPackageDocker.addCommand(login_1.default);
|
|
11
|
+
exports.default = commandPackageDocker;
|
|
@@ -25,8 +25,7 @@ commandPackageDownload.option('-r, --replace', texts_1.OPTION_PACKAGE_DOWNLOAD_R
|
|
|
25
25
|
commandPackageDownload.argument('<identifier>', texts_1.OPTION_PACKAGE_ID);
|
|
26
26
|
commandPackageDownload.argument('<directory>', texts_1.OPTION_PACKAGE_DOWNLOAD_PATH);
|
|
27
27
|
commandPackageDownload.action(async (id, path, options) => {
|
|
28
|
-
const
|
|
29
|
-
const client = input_1.default.restApiTokenClient(baseUrl, options.token);
|
|
28
|
+
const client = input_1.default.restApiTokenClient(options.api, options.region, options.token);
|
|
30
29
|
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
31
30
|
const project = input_1.default.restApiProject(options.project, true);
|
|
32
31
|
// eslint-disable-next-line prefer-const
|
|
@@ -0,0 +1,39 @@
|
|
|
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 texts_1 = require("../../texts");
|
|
8
|
+
const input_1 = __importDefault(require("../../input"));
|
|
9
|
+
const output_1 = __importDefault(require("../../output"));
|
|
10
|
+
const commandSandboxGet = (0, utils_1.newCommand)('get', texts_1.DESC_COMMAND_PACKAGE_GET);
|
|
11
|
+
commandSandboxGet.option('--token <token>', texts_1.OPTION_REST_API_TOKEN);
|
|
12
|
+
commandSandboxGet.option('--api <url>', texts_1.OPTION_REST_API_ENDPOINT);
|
|
13
|
+
commandSandboxGet.option('--region <region>', texts_1.OPTION_REST_API_REGION);
|
|
14
|
+
commandSandboxGet.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
15
|
+
commandSandboxGet.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
16
|
+
commandSandboxGet.argument('<identifier>', texts_1.OPTION_SANDBOX_IDENTIFIER);
|
|
17
|
+
commandSandboxGet.action(async (identifier, options) => {
|
|
18
|
+
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
19
|
+
const project = input_1.default.restApiProject(options.project, true);
|
|
20
|
+
const client = input_1.default.restApiTokenClient(options.api, options.region, options.token);
|
|
21
|
+
const data = await client.getPackageVersionByIdentifier(workspace, project, identifier);
|
|
22
|
+
if (!data || !data.domain) {
|
|
23
|
+
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
24
|
+
}
|
|
25
|
+
if (!data || !data.pkg_id) {
|
|
26
|
+
output_1.default.exitError(texts_1.ERR_PACKAGE_NOT_FOUND);
|
|
27
|
+
}
|
|
28
|
+
const pkg = await client.getPackage(workspace, data.pkg_id);
|
|
29
|
+
output_1.default.object({
|
|
30
|
+
'Name': pkg.name,
|
|
31
|
+
'Identifier': pkg.identifier,
|
|
32
|
+
'Type': pkg.type,
|
|
33
|
+
'Scope': pkg.scope,
|
|
34
|
+
'Size': (0, utils_1.formatBytes)(pkg.size || 0),
|
|
35
|
+
'Created': pkg.created_date,
|
|
36
|
+
});
|
|
37
|
+
output_1.default.exitNormal();
|
|
38
|
+
});
|
|
39
|
+
exports.default = commandSandboxGet;
|
|
@@ -15,16 +15,17 @@ commandPackageList.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WO
|
|
|
15
15
|
commandPackageList.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
16
16
|
commandPackageList.alias('ls');
|
|
17
17
|
commandPackageList.action(async (options) => {
|
|
18
|
-
const baseUrl = input_1.default.restApiBaseUrl(options.api, options.region);
|
|
19
18
|
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
20
19
|
const project = input_1.default.restApiProject(options.project, true);
|
|
21
|
-
const client = input_1.default.restApiTokenClient(
|
|
20
|
+
const client = input_1.default.restApiTokenClient(options.api, options.region, options.token);
|
|
22
21
|
const response = await client.getPackages(workspace, project);
|
|
23
22
|
if (!response.packages || response.packages.length === 0) {
|
|
24
23
|
output_1.default.exitError(texts_1.ERR_COMMAND_PACKAGE_NO_PROJECTS);
|
|
25
24
|
}
|
|
26
|
-
const data = [['NAME', 'IDENTIFIER', 'TYPE', 'URL']];
|
|
25
|
+
const data = [['NAME', 'IDENTIFIER', 'TYPE', 'SCOPE', 'URL']];
|
|
27
26
|
for (const pkg of response.packages) {
|
|
27
|
+
if (project && pkg.scope === utils_1.PACKAGE_SCOPE.WORKSPACE)
|
|
28
|
+
continue;
|
|
28
29
|
data.push([pkg.name, pkg.identifier, pkg.type, pkg.html_url]);
|
|
29
30
|
}
|
|
30
31
|
output_1.default.table(data);
|
|
@@ -25,14 +25,13 @@ commandPackagePublish.argument('<identifier>', texts_1.OPTION_PACKAGE_ID);
|
|
|
25
25
|
commandPackagePublish.argument('<directory>', texts_1.OPTION_PACKAGE_PUBLISH_PATH);
|
|
26
26
|
commandPackagePublish.action(async (id, path, options) => {
|
|
27
27
|
let dirPath = input_1.default.resolvePath(path);
|
|
28
|
-
const baseUrl = input_1.default.restApiBaseUrl(options.api, options.region);
|
|
29
28
|
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
30
29
|
const project = input_1.default.restApiProject(options.project, true);
|
|
31
30
|
// eslint-disable-next-line prefer-const
|
|
32
31
|
let { identifier, version } = input_1.default.packageSplitIdentifier(id);
|
|
33
32
|
if (!version)
|
|
34
33
|
version = (0, uuid_1.v4)();
|
|
35
|
-
const client = input_1.default.restApiTokenClient(
|
|
34
|
+
const client = input_1.default.restApiTokenClient(options.api, options.region, options.token);
|
|
36
35
|
const data = await client.getPackageVersionByIdentifier(workspace, project, identifier, version);
|
|
37
36
|
if (!data || !data.domain) {
|
|
38
37
|
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
@@ -43,7 +42,22 @@ commandPackagePublish.action(async (id, path, options) => {
|
|
|
43
42
|
let packageId = data.pkg_id;
|
|
44
43
|
if (!packageId) {
|
|
45
44
|
if (options.create) {
|
|
46
|
-
const
|
|
45
|
+
const data = {
|
|
46
|
+
name: identifier,
|
|
47
|
+
identifier,
|
|
48
|
+
type: utils_1.PACKAGE_TYPE.FILE,
|
|
49
|
+
scope: utils_1.PACKAGE_SCOPE.WORKSPACE,
|
|
50
|
+
authorization: {
|
|
51
|
+
type: utils_1.PACKAGE_AUTH_TYPE.BUDDY
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
if (project) {
|
|
55
|
+
data.scope = utils_1.PACKAGE_SCOPE.PROJECT;
|
|
56
|
+
data.project = {
|
|
57
|
+
name: project
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const d = await client.postPackage(workspace, data);
|
|
47
61
|
packageId = d.id;
|
|
48
62
|
}
|
|
49
63
|
else {
|
|
@@ -0,0 +1,41 @@
|
|
|
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 texts_1 = require("../../../texts");
|
|
8
|
+
const input_1 = __importDefault(require("../../../input"));
|
|
9
|
+
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
+
const commandPackageVersionDelete = (0, utils_1.newCommand)('delete', texts_1.DESC_COMMAND_PACKAGE_VERSION_DELETE);
|
|
11
|
+
commandPackageVersionDelete.alias('rm');
|
|
12
|
+
commandPackageVersionDelete.option('--token <token>', texts_1.OPTION_REST_API_TOKEN);
|
|
13
|
+
commandPackageVersionDelete.option('--api <url>', texts_1.OPTION_REST_API_ENDPOINT);
|
|
14
|
+
commandPackageVersionDelete.option('--region <region>', texts_1.OPTION_REST_API_REGION);
|
|
15
|
+
commandPackageVersionDelete.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
16
|
+
commandPackageVersionDelete.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
17
|
+
commandPackageVersionDelete.argument('<identifier>', texts_1.OPT_COMMAND_PACKAGE_IDENTIFIER);
|
|
18
|
+
commandPackageVersionDelete.option('-f, --force', texts_1.OPTION_CONFIRM_FORCE);
|
|
19
|
+
commandPackageVersionDelete.argument('<version>', texts_1.OPT_COMMAND_PACKAGE_VERSION);
|
|
20
|
+
commandPackageVersionDelete.action(async (identifier, version, options) => {
|
|
21
|
+
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
22
|
+
const project = input_1.default.restApiProject(options.project, true);
|
|
23
|
+
const client = input_1.default.restApiTokenClient(options.api, options.region, options.token);
|
|
24
|
+
const data = await client.getPackageVersionByIdentifier(workspace, project, identifier, version);
|
|
25
|
+
if (!data || !data.domain) {
|
|
26
|
+
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
27
|
+
}
|
|
28
|
+
if (!data || !data.pkg_id) {
|
|
29
|
+
output_1.default.exitError(texts_1.ERR_PACKAGE_NOT_FOUND);
|
|
30
|
+
}
|
|
31
|
+
if (!data || !data.pkg_version_id) {
|
|
32
|
+
output_1.default.exitError(texts_1.ERR_PACKAGE_VERSION_NOT_FOUND);
|
|
33
|
+
}
|
|
34
|
+
const confirmed = options.force ||
|
|
35
|
+
(await output_1.default.confirm((0, texts_1.TXT_PACKAGE_VERSION_DELETE_CONFIRM)(identifier, version)));
|
|
36
|
+
if (!confirmed)
|
|
37
|
+
output_1.default.exitNormal();
|
|
38
|
+
await client.deletePackageVersion(workspace, data.pkg_id, data.pkg_version_id);
|
|
39
|
+
output_1.default.exitSuccess(texts_1.TXT_PACKAGE_VERSION_DELETED);
|
|
40
|
+
});
|
|
41
|
+
exports.default = commandPackageVersionDelete;
|
|
@@ -0,0 +1,47 @@
|
|
|
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 texts_1 = require("../../../texts");
|
|
8
|
+
const input_1 = __importDefault(require("../../../input"));
|
|
9
|
+
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
+
const commandPackageVersionGet = (0, utils_1.newCommand)('get', texts_1.DESC_COMMAND_PACKAGE_VERSION_GET);
|
|
11
|
+
commandPackageVersionGet.option('--token <token>', texts_1.OPTION_REST_API_TOKEN);
|
|
12
|
+
commandPackageVersionGet.option('--api <url>', texts_1.OPTION_REST_API_ENDPOINT);
|
|
13
|
+
commandPackageVersionGet.option('--region <region>', texts_1.OPTION_REST_API_REGION);
|
|
14
|
+
commandPackageVersionGet.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
15
|
+
commandPackageVersionGet.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
16
|
+
commandPackageVersionGet.argument('<identifier>', texts_1.OPT_COMMAND_PACKAGE_IDENTIFIER);
|
|
17
|
+
commandPackageVersionGet.argument('<version>', texts_1.OPT_COMMAND_PACKAGE_VERSION);
|
|
18
|
+
commandPackageVersionGet.action(async (identifier, version, options) => {
|
|
19
|
+
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
20
|
+
const project = input_1.default.restApiProject(options.project, true);
|
|
21
|
+
const client = input_1.default.restApiTokenClient(options.api, options.region, options.token);
|
|
22
|
+
const data = await client.getPackageVersionByIdentifier(workspace, project, identifier, version);
|
|
23
|
+
if (!data || !data.domain) {
|
|
24
|
+
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
25
|
+
}
|
|
26
|
+
if (!data || !data.pkg_id) {
|
|
27
|
+
output_1.default.exitError(texts_1.ERR_PACKAGE_NOT_FOUND);
|
|
28
|
+
}
|
|
29
|
+
if (!data || !data.pkg_version_id) {
|
|
30
|
+
output_1.default.exitError(texts_1.ERR_PACKAGE_VERSION_NOT_FOUND);
|
|
31
|
+
}
|
|
32
|
+
const result = await client.getPackageVersion(workspace, data.pkg_id, data.pkg_version_id);
|
|
33
|
+
const obj = {
|
|
34
|
+
Version: result.version,
|
|
35
|
+
Size: (0, utils_1.formatBytes)(result.size),
|
|
36
|
+
Created: result.created_date,
|
|
37
|
+
'App url': result.html_url,
|
|
38
|
+
Url: result.version_url,
|
|
39
|
+
};
|
|
40
|
+
output_1.default.object(obj);
|
|
41
|
+
output_1.default.normal('');
|
|
42
|
+
const type = result.version_url.startsWith('https://')
|
|
43
|
+
? utils_1.PACKAGE_TYPE.FILE
|
|
44
|
+
: utils_1.PACKAGE_TYPE.CONTAINER;
|
|
45
|
+
output_1.default.exitNormal((0, texts_1.TXT_PACKAGE_VERSION_DOWNLOAD)(type, identifier, version, result.version_url));
|
|
46
|
+
});
|
|
47
|
+
exports.default = commandPackageVersionGet;
|
|
@@ -0,0 +1,49 @@
|
|
|
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 texts_1 = require("../../../texts");
|
|
8
|
+
const input_1 = __importDefault(require("../../../input"));
|
|
9
|
+
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
+
const commandPackageVersionList = (0, utils_1.newCommand)('list', texts_1.DESC_COMMAND_PACKAGE_VERSION_LIST);
|
|
11
|
+
commandPackageVersionList.option('--token <token>', texts_1.OPTION_REST_API_TOKEN);
|
|
12
|
+
commandPackageVersionList.option('--api <url>', texts_1.OPTION_REST_API_ENDPOINT);
|
|
13
|
+
commandPackageVersionList.option('--region <region>', texts_1.OPTION_REST_API_REGION);
|
|
14
|
+
commandPackageVersionList.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
15
|
+
commandPackageVersionList.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
16
|
+
commandPackageVersionList.option('--page <number>', texts_1.OPTION_REST_API_PAGE, '1');
|
|
17
|
+
commandPackageVersionList.option('--per-page <number>', texts_1.OPTION_REST_API_PER_PAGE, '10');
|
|
18
|
+
commandPackageVersionList.alias('ls');
|
|
19
|
+
commandPackageVersionList.argument('<identifier>', texts_1.OPT_COMMAND_PACKAGE_IDENTIFIER);
|
|
20
|
+
commandPackageVersionList.action(async (identifier, options) => {
|
|
21
|
+
const page = input_1.default.restApiPage(options.page);
|
|
22
|
+
const perPage = input_1.default.restApiPerPage(options.perPage);
|
|
23
|
+
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
24
|
+
const project = input_1.default.restApiProject(options.project, true);
|
|
25
|
+
const client = input_1.default.restApiTokenClient(options.api, options.region, options.token);
|
|
26
|
+
const data = await client.getPackageVersionByIdentifier(workspace, project, identifier);
|
|
27
|
+
if (!data || !data.domain) {
|
|
28
|
+
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
29
|
+
}
|
|
30
|
+
if (!data || !data.pkg_id) {
|
|
31
|
+
output_1.default.exitError(texts_1.ERR_PACKAGE_NOT_FOUND);
|
|
32
|
+
}
|
|
33
|
+
const result = await client.getPackageVersions(workspace, data.pkg_id, page, perPage);
|
|
34
|
+
const table = [['VERSION', 'SIZE', 'CREATED', 'URL']];
|
|
35
|
+
if (!result.versions.length) {
|
|
36
|
+
output_1.default.exitError(texts_1.ERR_PACKAGE_VERSIONS_NOT_FOUND);
|
|
37
|
+
}
|
|
38
|
+
result.versions.forEach((ver) => {
|
|
39
|
+
table.push([
|
|
40
|
+
ver.version,
|
|
41
|
+
(0, utils_1.formatBytes)(ver.size),
|
|
42
|
+
ver.created_date,
|
|
43
|
+
ver.version_url,
|
|
44
|
+
]);
|
|
45
|
+
});
|
|
46
|
+
output_1.default.table(table);
|
|
47
|
+
output_1.default.exitNormal();
|
|
48
|
+
});
|
|
49
|
+
exports.default = commandPackageVersionList;
|
|
@@ -0,0 +1,16 @@
|
|
|
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 list_1 = __importDefault(require("./version/list"));
|
|
8
|
+
const texts_1 = require("../../texts");
|
|
9
|
+
const get_1 = __importDefault(require("./version/get"));
|
|
10
|
+
const delete_1 = __importDefault(require("./version/delete"));
|
|
11
|
+
const commandPackageVersion = (0, utils_1.newCommand)('version', texts_1.DESC_COMMAND_PACKAGE_VERSION);
|
|
12
|
+
commandPackageVersion.alias('ver');
|
|
13
|
+
commandPackageVersion.addCommand(list_1.default);
|
|
14
|
+
commandPackageVersion.addCommand(get_1.default);
|
|
15
|
+
commandPackageVersion.addCommand(delete_1.default);
|
|
16
|
+
exports.default = commandPackageVersion;
|
|
@@ -8,9 +8,19 @@ const texts_1 = require("../texts");
|
|
|
8
8
|
const publish_1 = __importDefault(require("./package/publish"));
|
|
9
9
|
const download_1 = __importDefault(require("./package/download"));
|
|
10
10
|
const list_1 = __importDefault(require("./package/list"));
|
|
11
|
+
const create_1 = __importDefault(require("./package/create"));
|
|
12
|
+
const delete_1 = __importDefault(require("./package/delete"));
|
|
13
|
+
const get_1 = __importDefault(require("./package/get"));
|
|
14
|
+
const version_1 = __importDefault(require("./package/version"));
|
|
15
|
+
const docker_1 = __importDefault(require("./package/docker"));
|
|
11
16
|
const commandPackage = (0, utils_1.newCommand)('package', texts_1.DESC_COMMAND_PACKAGE);
|
|
12
17
|
commandPackage.alias('pkg');
|
|
13
18
|
commandPackage.addCommand(list_1.default);
|
|
19
|
+
commandPackage.addCommand(create_1.default);
|
|
20
|
+
commandPackage.addCommand(get_1.default);
|
|
21
|
+
commandPackage.addCommand(delete_1.default);
|
|
14
22
|
commandPackage.addCommand(publish_1.default);
|
|
15
23
|
commandPackage.addCommand(download_1.default);
|
|
24
|
+
commandPackage.addCommand(version_1.default);
|
|
25
|
+
commandPackage.addCommand(docker_1.default);
|
|
16
26
|
exports.default = commandPackage;
|
|
@@ -30,10 +30,9 @@ commandPipelineRun.option('--wait [minutes]', texts_1.OPTION_PIPELINE_RUN_WAIT);
|
|
|
30
30
|
commandPipelineRun.argument('<identifier>', texts_1.OPTION_PIPELINE_RUN_ARGUMENT);
|
|
31
31
|
commandPipelineRun.usage('<identifier> [options]');
|
|
32
32
|
commandPipelineRun.action(async (identifier, options) => {
|
|
33
|
-
const baseUrl = input_1.default.restApiBaseUrl(options.api, options.region);
|
|
34
33
|
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
35
34
|
const project = input_1.default.restApiProject(options.project);
|
|
36
|
-
const client = input_1.default.restApiTokenClient(
|
|
35
|
+
const client = input_1.default.restApiTokenClient(options.api, options.region, options.token);
|
|
37
36
|
const data = await client.getPipelineByIdentifier(workspace, project, identifier);
|
|
38
37
|
if (!data || !data.domain) {
|
|
39
38
|
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|