bdy 1.25.13-dev → 1.25.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/package.json +1 -1
- package/distTs/src/agent/manager.js +19 -6
- package/distTs/src/agent/system.js +9 -4
- package/distTs/src/api/client.js +20 -7
- package/distTs/src/cliCommand.js +17 -1
- package/distTs/src/cliIndex.js +12 -2
- package/distTs/src/command/agent/debug.js +4 -3
- package/distTs/src/command/agent/disable.js +4 -3
- package/distTs/src/command/agent/enable.js +4 -3
- package/distTs/src/command/agent/install.js +28 -12
- package/distTs/src/command/agent/proxy/disable.js +4 -3
- package/distTs/src/command/agent/proxy/enable.js +4 -3
- package/distTs/src/command/agent/proxy/status.js +1 -1
- package/distTs/src/command/agent/restart.js +13 -5
- package/distTs/src/command/agent/start.js +11 -4
- package/distTs/src/command/agent/status.js +1 -1
- package/distTs/src/command/agent/stop.js +5 -4
- package/distTs/src/command/agent/tags/get.js +1 -1
- package/distTs/src/command/agent/tags/set.js +4 -3
- package/distTs/src/command/agent/target/disable.js +4 -3
- package/distTs/src/command/agent/target/enable.js +4 -3
- package/distTs/src/command/agent/target/status.js +1 -1
- package/distTs/src/command/agent/tunnel/disable.js +4 -3
- package/distTs/src/command/agent/tunnel/enable.js +4 -3
- package/distTs/src/command/agent/tunnel/http.js +10 -2
- package/distTs/src/command/agent/tunnel/list.js +1 -1
- package/distTs/src/command/agent/tunnel/remove.js +4 -3
- package/distTs/src/command/agent/tunnel/start.js +9 -5
- package/distTs/src/command/agent/tunnel/status.js +1 -1
- package/distTs/src/command/agent/tunnel/tcp.js +10 -2
- package/distTs/src/command/agent/tunnel/tls.js +10 -2
- package/distTs/src/command/agent/uninstall.js +6 -4
- package/distTs/src/command/agent/update.js +13 -5
- package/distTs/src/command/agent/user.js +4 -3
- package/distTs/src/command/agent/version.js +1 -1
- package/distTs/src/command/api/info.js +5 -3
- package/distTs/src/command/api/list.js +1 -0
- package/distTs/src/command/artifact/composer/publish.js +21 -16
- package/distTs/src/command/artifact/delete.js +8 -5
- package/distTs/src/command/artifact/docker/login.js +22 -5
- package/distTs/src/command/artifact/download.js +16 -15
- package/distTs/src/command/artifact/get.js +3 -2
- package/distTs/src/command/artifact/open.js +3 -2
- package/distTs/src/command/artifact/publish.js +3 -2
- package/distTs/src/command/artifact/version/create.js +3 -2
- package/distTs/src/command/artifact/version/delete.js +9 -6
- package/distTs/src/command/artifact/version/get.js +4 -3
- package/distTs/src/command/artifact/version/list.js +3 -2
- package/distTs/src/command/artifact/version/open.js +7 -6
- package/distTs/src/command/config/add/http.js +3 -2
- package/distTs/src/command/config/add/tcp.js +3 -2
- package/distTs/src/command/config/add/tls.js +3 -2
- package/distTs/src/command/config/get/region.js +5 -2
- package/distTs/src/command/config/get/timeout.js +5 -2
- package/distTs/src/command/config/get/token.js +5 -2
- package/distTs/src/command/config/get/tunnel.js +3 -2
- package/distTs/src/command/config/get/tunnels.js +1 -1
- package/distTs/src/command/config/get/whitelist.js +5 -2
- package/distTs/src/command/config/remove/token.js +4 -3
- package/distTs/src/command/config/remove/tunnel.js +6 -4
- package/distTs/src/command/config/set/region.js +4 -3
- package/distTs/src/command/config/set/timeout.js +4 -3
- package/distTs/src/command/config/set/token.js +5 -3
- package/distTs/src/command/config/set/whitelist.js +4 -3
- package/distTs/src/command/crawl/link.js +10 -4
- package/distTs/src/command/crawl/run.js +30 -18
- package/distTs/src/command/distro/delete.js +8 -5
- package/distTs/src/command/distro/get.js +3 -2
- package/distTs/src/command/distro/open.js +3 -2
- package/distTs/src/command/distro/route/create.js +3 -2
- package/distTs/src/command/distro/route/delete.js +8 -5
- package/distTs/src/command/distro/route/get.js +3 -2
- package/distTs/src/command/distro/route/list.js +3 -2
- package/distTs/src/command/distro/route/open.js +3 -2
- package/distTs/src/command/distro/route/update.js +3 -2
- package/distTs/src/command/distro/update.js +3 -2
- package/distTs/src/command/domain/buy.js +36 -17
- package/distTs/src/command/domain/get.js +3 -2
- package/distTs/src/command/domain/list.js +1 -1
- package/distTs/src/command/domain/open.js +4 -2
- package/distTs/src/command/domain/search.js +1 -0
- package/distTs/src/command/environment/create.js +1 -1
- package/distTs/src/command/environment/delete.js +6 -4
- package/distTs/src/command/environment/get.js +1 -0
- package/distTs/src/command/environment/list.js +1 -1
- package/distTs/src/command/environment/open.js +3 -1
- package/distTs/src/command/environment/update.js +1 -1
- package/distTs/src/command/login.js +29 -17
- package/distTs/src/command/logout.js +4 -3
- package/distTs/src/command/pipeline/create.js +13 -3
- package/distTs/src/command/pipeline/delete.js +9 -6
- package/distTs/src/command/pipeline/get.js +4 -3
- package/distTs/src/command/pipeline/open.js +2 -1
- package/distTs/src/command/pipeline/run/execution.js +3 -3
- package/distTs/src/command/pipeline/run/list.js +4 -3
- package/distTs/src/command/pipeline/run/open.js +2 -1
- package/distTs/src/command/pipeline/update.js +4 -3
- package/distTs/src/command/pipeline/yaml.js +4 -3
- package/distTs/src/command/project/link.js +74 -36
- package/distTs/src/command/project/list.js +1 -0
- package/distTs/src/command/project/open.js +3 -1
- package/distTs/src/command/register.js +2 -1
- package/distTs/src/command/sandbox/app/add.js +1 -0
- package/distTs/src/command/sandbox/app/list.js +1 -1
- package/distTs/src/command/sandbox/app/logs.js +1 -1
- package/distTs/src/command/sandbox/app/remove.js +4 -3
- package/distTs/src/command/sandbox/app/start.js +4 -3
- package/distTs/src/command/sandbox/app/status.js +3 -2
- package/distTs/src/command/sandbox/app/stop.js +4 -3
- package/distTs/src/command/sandbox/cp.js +23 -23
- package/distTs/src/command/sandbox/create.js +3 -1
- package/distTs/src/command/sandbox/destroy.js +6 -4
- package/distTs/src/command/sandbox/endpoint/add.js +1 -1
- package/distTs/src/command/sandbox/endpoint/delete.js +9 -6
- package/distTs/src/command/sandbox/endpoint/get.js +3 -2
- package/distTs/src/command/sandbox/endpoint/list.js +1 -1
- package/distTs/src/command/sandbox/exec/command.js +1 -0
- package/distTs/src/command/sandbox/exec/kill.js +7 -5
- package/distTs/src/command/sandbox/exec/list.js +1 -1
- package/distTs/src/command/sandbox/exec/logs.js +1 -1
- package/distTs/src/command/sandbox/exec/status.js +1 -1
- package/distTs/src/command/sandbox/get.js +1 -1
- package/distTs/src/command/sandbox/list.js +1 -1
- package/distTs/src/command/sandbox/logs.js +1 -1
- package/distTs/src/command/sandbox/open.js +3 -1
- package/distTs/src/command/sandbox/restart.js +9 -4
- package/distTs/src/command/sandbox/snapshot/create.js +1 -1
- package/distTs/src/command/sandbox/snapshot/delete.js +8 -5
- package/distTs/src/command/sandbox/snapshot/get.js +3 -2
- package/distTs/src/command/sandbox/snapshot/list.js +1 -1
- package/distTs/src/command/sandbox/snapshot/open.js +4 -2
- package/distTs/src/command/sandbox/ssh.js +1 -0
- package/distTs/src/command/sandbox/start.js +9 -4
- package/distTs/src/command/sandbox/status.js +1 -1
- package/distTs/src/command/sandbox/stop.js +9 -4
- package/distTs/src/command/sandbox/update.js +12 -6
- package/distTs/src/command/sandbox/yaml.js +1 -1
- package/distTs/src/command/target/create.js +1 -0
- package/distTs/src/command/target/delete.js +6 -3
- package/distTs/src/command/target/exec/command.js +1 -1
- package/distTs/src/command/target/exec/kill.js +6 -4
- package/distTs/src/command/target/exec/list.js +1 -1
- package/distTs/src/command/target/exec/logs.js +1 -1
- package/distTs/src/command/target/exec/status.js +1 -1
- package/distTs/src/command/target/get.js +1 -0
- package/distTs/src/command/target/list.js +1 -0
- package/distTs/src/command/target/open.js +3 -1
- package/distTs/src/command/target/scope.js +4 -4
- package/distTs/src/command/target/update.js +1 -0
- package/distTs/src/command/tests/capture.js +10 -7
- package/distTs/src/command/tests/unit/link.js +10 -4
- package/distTs/src/command/tests/visual/link.js +10 -4
- package/distTs/src/command/tests/visual/session/close.js +8 -3
- package/distTs/src/command/tests/visual/setup.js +6 -3
- package/distTs/src/command/tests/visual/upload.js +11 -8
- package/distTs/src/command/tunnel/http.js +6 -2
- package/distTs/src/command/tunnel/start.js +8 -3
- package/distTs/src/command/tunnel/tcp.js +6 -3
- package/distTs/src/command/tunnel/tls.js +6 -3
- package/distTs/src/command/version.js +24 -2
- package/distTs/src/command/whoami.js +1 -1
- package/distTs/src/command/workspace/get.js +7 -2
- package/distTs/src/command/workspace/list.js +1 -1
- package/distTs/src/command/workspace/open.js +4 -2
- package/distTs/src/command/workspace/set.js +4 -3
- package/distTs/src/command/yaml/actions/info.js +1 -1
- package/distTs/src/command/yaml/actions/list.js +1 -1
- package/distTs/src/command/yaml/pipeline.js +1 -0
- package/distTs/src/command/yaml/validate.js +1 -0
- package/distTs/src/discovery.js +169 -50
- package/distTs/src/input.js +6 -6
- package/distTs/src/output.js +72 -33
- package/distTs/src/texts.js +103 -42
- package/distTs/src/tunnel/output/noninteractive/tunnelJsonl.js +62 -0
- package/distTs/src/utils.js +19 -0
- package/distTs/src/visualTest/browser.js +3 -2
- package/package.json +1 -1
|
@@ -6,8 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const utils_1 = require("../../../utils");
|
|
7
7
|
const texts_1 = require("../../../texts");
|
|
8
8
|
const output_1 = __importDefault(require("../../../output"));
|
|
9
|
-
const commandAgentTargetEnable = (0, utils_1.newCommand)('enable', texts_1.DESC_COMMAND_AGENT_TARGET_ENABLE);
|
|
10
|
-
commandAgentTargetEnable.
|
|
9
|
+
const commandAgentTargetEnable = (0, utils_1.newCommand)('enable', texts_1.DESC_COMMAND_AGENT_TARGET_ENABLE, { requiredScopes: [] });
|
|
10
|
+
commandAgentTargetEnable.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
11
|
+
commandAgentTargetEnable.action(async (options) => {
|
|
11
12
|
const ApiAgent = require('../../../tunnel/api/agent').default;
|
|
12
13
|
if (!commandAgentTargetEnable.agentInstalled) {
|
|
13
14
|
output_1.default.exitError(texts_1.ERR_AGENT_NOT_INSTALLED);
|
|
@@ -18,7 +19,7 @@ commandAgentTargetEnable.action(async () => {
|
|
|
18
19
|
try {
|
|
19
20
|
const api = new ApiAgent(commandAgentTargetEnable.agentPort || 0);
|
|
20
21
|
await api.enableAgentTarget();
|
|
21
|
-
output_1.default.
|
|
22
|
+
output_1.default.exitResult(options.format === 'json', { target: true }, texts_1.TXT_AGENT_TARGET_ENABLED);
|
|
22
23
|
}
|
|
23
24
|
catch (err) {
|
|
24
25
|
output_1.default.exitError(err);
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const utils_1 = require("../../../utils");
|
|
7
7
|
const texts_1 = require("../../../texts");
|
|
8
8
|
const output_1 = __importDefault(require("../../../output"));
|
|
9
|
-
const commandAgentTargetStatus = (0, utils_1.newCommand)('status', texts_1.DESC_COMMAND_AGENT_TARGET_STATUS, { examples: texts_1.EXAMPLE_AGENT_TARGET_STATUS });
|
|
9
|
+
const commandAgentTargetStatus = (0, utils_1.newCommand)('status', texts_1.DESC_COMMAND_AGENT_TARGET_STATUS, { requiredScopes: [], examples: texts_1.EXAMPLE_AGENT_TARGET_STATUS });
|
|
10
10
|
commandAgentTargetStatus.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
11
11
|
commandAgentTargetStatus.action(async (options) => {
|
|
12
12
|
const ApiAgent = require('../../../tunnel/api/agent').default;
|
|
@@ -6,8 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const utils_1 = require("../../../utils");
|
|
7
7
|
const texts_1 = require("../../../texts");
|
|
8
8
|
const output_1 = __importDefault(require("../../../output"));
|
|
9
|
-
const commandAgentTunnelDisable = (0, utils_1.newCommand)('disable', texts_1.DESC_COMMAND_AGENT_TUNNELING_DISABLE);
|
|
10
|
-
commandAgentTunnelDisable.
|
|
9
|
+
const commandAgentTunnelDisable = (0, utils_1.newCommand)('disable', texts_1.DESC_COMMAND_AGENT_TUNNELING_DISABLE, { requiredScopes: [] });
|
|
10
|
+
commandAgentTunnelDisable.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
11
|
+
commandAgentTunnelDisable.action(async (options) => {
|
|
11
12
|
const ApiAgent = require('../../../tunnel/api/agent').default;
|
|
12
13
|
if (!commandAgentTunnelDisable.agentInstalled) {
|
|
13
14
|
output_1.default.exitError(texts_1.ERR_AGENT_NOT_INSTALLED);
|
|
@@ -18,7 +19,7 @@ commandAgentTunnelDisable.action(async () => {
|
|
|
18
19
|
try {
|
|
19
20
|
const api = new ApiAgent(commandAgentTunnelDisable.agentPort || 0);
|
|
20
21
|
await api.disableAgentTunneling();
|
|
21
|
-
output_1.default.
|
|
22
|
+
output_1.default.exitResult(options.format === 'json', { tunneling: false }, texts_1.TXT_AGENT_TUNNELING_DISABLED);
|
|
22
23
|
}
|
|
23
24
|
catch (err) {
|
|
24
25
|
output_1.default.exitError(err);
|
|
@@ -6,8 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const utils_1 = require("../../../utils");
|
|
7
7
|
const texts_1 = require("../../../texts");
|
|
8
8
|
const output_1 = __importDefault(require("../../../output"));
|
|
9
|
-
const commandAgentTunnelEnable = (0, utils_1.newCommand)('enable', texts_1.DESC_COMMAND_AGENT_TUNNELING_ENABLE);
|
|
10
|
-
commandAgentTunnelEnable.
|
|
9
|
+
const commandAgentTunnelEnable = (0, utils_1.newCommand)('enable', texts_1.DESC_COMMAND_AGENT_TUNNELING_ENABLE, { requiredScopes: [] });
|
|
10
|
+
commandAgentTunnelEnable.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
11
|
+
commandAgentTunnelEnable.action(async (options) => {
|
|
11
12
|
const ApiAgent = require('../../../tunnel/api/agent').default;
|
|
12
13
|
if (!commandAgentTunnelEnable.agentInstalled) {
|
|
13
14
|
output_1.default.exitError(texts_1.ERR_AGENT_NOT_INSTALLED);
|
|
@@ -18,7 +19,7 @@ commandAgentTunnelEnable.action(async () => {
|
|
|
18
19
|
try {
|
|
19
20
|
const api = new ApiAgent(commandAgentTunnelEnable.agentPort || 0);
|
|
20
21
|
await api.enableAgentTunneling();
|
|
21
|
-
output_1.default.
|
|
22
|
+
output_1.default.exitResult(options.format === 'json', { tunneling: true }, texts_1.TXT_AGENT_TUNNELING_ENABLED);
|
|
22
23
|
}
|
|
23
24
|
catch (err) {
|
|
24
25
|
output_1.default.exitError(err);
|
|
@@ -5,18 +5,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const utils_1 = require("../../../utils");
|
|
7
7
|
const output_1 = __importDefault(require("../../../output"));
|
|
8
|
+
const cliError_1 = __importDefault(require("../../../cliError"));
|
|
8
9
|
const texts_1 = require("../../../texts");
|
|
9
10
|
const tunnel_1 = require("../../../types/tunnel");
|
|
10
11
|
const commandAgentTunnelHttp = (0, utils_1.getBasicCommandHttp)({
|
|
12
|
+
requiredScopes: [],
|
|
11
13
|
examples: (0, texts_1.EXAMPLE_TUNNEL_HTTP)(true),
|
|
12
14
|
});
|
|
13
15
|
commandAgentTunnelHttp.description(texts_1.DESC_COMMAND_AGENT_TUNNEL_HTTP);
|
|
14
16
|
commandAgentTunnelHttp.option('-f, --follow', texts_1.OPTION_FOLLOW);
|
|
17
|
+
commandAgentTunnelHttp.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
15
18
|
commandAgentTunnelHttp.argument('[protocol://host:port]', texts_1.OPTION_TARGET);
|
|
16
19
|
commandAgentTunnelHttp.action(async (target, options) => {
|
|
17
20
|
const ApiAgent = require('../../../tunnel/api/agent').default;
|
|
18
21
|
const AgentSocketTunnel = require('../../../agent/socket/tunnel').default;
|
|
19
22
|
const Cfg = require('../../../tunnel/cfg').default;
|
|
23
|
+
const json = options.format === 'json';
|
|
24
|
+
if (json && options.follow) {
|
|
25
|
+
throw new cliError_1.default('usage_error', texts_1.ERR_FOLLOW_WITH_JSON);
|
|
26
|
+
}
|
|
20
27
|
if (!commandAgentTunnelHttp.agentInstalled) {
|
|
21
28
|
output_1.default.exitError(texts_1.ERR_AGENT_NOT_INSTALLED);
|
|
22
29
|
}
|
|
@@ -25,7 +32,8 @@ commandAgentTunnelHttp.action(async (target, options) => {
|
|
|
25
32
|
}
|
|
26
33
|
const prepared = await Cfg.prepareTunnel(tunnel_1.TUNNEL_TYPE.HTTP, target, options, true);
|
|
27
34
|
try {
|
|
28
|
-
|
|
35
|
+
if (!json)
|
|
36
|
+
await output_1.default.spinner(texts_1.TXT_OPENING_TUNNEL);
|
|
29
37
|
const api = new ApiAgent(commandAgentTunnelHttp.agentPort || 0);
|
|
30
38
|
const data = await api.addTunnel(prepared);
|
|
31
39
|
if (options.follow) {
|
|
@@ -35,7 +43,7 @@ commandAgentTunnelHttp.action(async (target, options) => {
|
|
|
35
43
|
output_1.default.tunnel(tunnel);
|
|
36
44
|
}
|
|
37
45
|
else {
|
|
38
|
-
output_1.default.
|
|
46
|
+
output_1.default.exitResult(json, data, (0, texts_1.TXT_TUNNEL_STARTED)(data.type));
|
|
39
47
|
}
|
|
40
48
|
}
|
|
41
49
|
catch (err) {
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const output_1 = __importDefault(require("../../../output"));
|
|
7
7
|
const texts_1 = require("../../../texts");
|
|
8
8
|
const utils_1 = require("../../../utils");
|
|
9
|
-
const commandAgentTunnelList = (0, utils_1.newCommand)('list', texts_1.DESC_COMMAND_AGENT_TUNNEL_LIST, { examples: texts_1.EXAMPLE_AGENT_TUNNEL_LIST });
|
|
9
|
+
const commandAgentTunnelList = (0, utils_1.newCommand)('list', texts_1.DESC_COMMAND_AGENT_TUNNEL_LIST, { requiredScopes: [], examples: texts_1.EXAMPLE_AGENT_TUNNEL_LIST });
|
|
10
10
|
commandAgentTunnelList.alias('ls');
|
|
11
11
|
commandAgentTunnelList.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
12
12
|
commandAgentTunnelList.action(async (options) => {
|
|
@@ -6,9 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const output_1 = __importDefault(require("../../../output"));
|
|
7
7
|
const texts_1 = require("../../../texts");
|
|
8
8
|
const utils_1 = require("../../../utils");
|
|
9
|
-
const commandAgentTunnelRemove = (0, utils_1.newCommand)('rm', texts_1.DESC_COMMAND_AGENT_TUNNEL_REMOVE, { examples: texts_1.EXAMPLE_AGENT_TUNNEL_REMOVE });
|
|
9
|
+
const commandAgentTunnelRemove = (0, utils_1.newCommand)('rm', texts_1.DESC_COMMAND_AGENT_TUNNEL_REMOVE, { requiredScopes: [], examples: texts_1.EXAMPLE_AGENT_TUNNEL_REMOVE });
|
|
10
10
|
commandAgentTunnelRemove.argument('<id>', texts_1.OPTION_ID);
|
|
11
|
-
commandAgentTunnelRemove.
|
|
11
|
+
commandAgentTunnelRemove.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
12
|
+
commandAgentTunnelRemove.action(async (id, options) => {
|
|
12
13
|
const ApiAgent = require('../../../tunnel/api/agent').default;
|
|
13
14
|
if (!commandAgentTunnelRemove.agentInstalled) {
|
|
14
15
|
output_1.default.exitError(texts_1.ERR_AGENT_NOT_INSTALLED);
|
|
@@ -19,7 +20,7 @@ commandAgentTunnelRemove.action(async (id) => {
|
|
|
19
20
|
try {
|
|
20
21
|
const api = new ApiAgent(commandAgentTunnelRemove.agentPort || 0);
|
|
21
22
|
await api.stopTunnel(id);
|
|
22
|
-
output_1.default.
|
|
23
|
+
output_1.default.exitResult(options.format === 'json', { removed: id }, texts_1.TXT_TUNNEL_STOPPED);
|
|
23
24
|
}
|
|
24
25
|
catch (err) {
|
|
25
26
|
output_1.default.exitError(err);
|
|
@@ -3,12 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const cliError_1 = __importDefault(require("../../../cliError"));
|
|
6
7
|
const output_1 = __importDefault(require("../../../output"));
|
|
7
8
|
const texts_1 = require("../../../texts");
|
|
8
9
|
const utils_1 = require("../../../utils");
|
|
9
|
-
const commandAgentTunnelStart = (0, utils_1.newCommand)('start', texts_1.DESC_COMMAND_AGENT_TUNNEL_START, { examples: texts_1.EXAMPLE_AGENT_TUNNEL_START });
|
|
10
|
+
const commandAgentTunnelStart = (0, utils_1.newCommand)('start', texts_1.DESC_COMMAND_AGENT_TUNNEL_START, { requiredScopes: [], examples: texts_1.EXAMPLE_AGENT_TUNNEL_START });
|
|
10
11
|
commandAgentTunnelStart.argument('<name>', texts_1.OPTION_NAME);
|
|
11
|
-
commandAgentTunnelStart.
|
|
12
|
+
commandAgentTunnelStart.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
13
|
+
commandAgentTunnelStart.action(async (name, options) => {
|
|
14
|
+
const json = options.format === 'json';
|
|
12
15
|
const ApiAgent = require('../../../tunnel/api/agent').default;
|
|
13
16
|
const Cfg = require('../../../tunnel/cfg').default;
|
|
14
17
|
if (!commandAgentTunnelStart.agentInstalled) {
|
|
@@ -18,14 +21,15 @@ commandAgentTunnelStart.action(async (name) => {
|
|
|
18
21
|
output_1.default.exitError(texts_1.ERR_AGENT_NOT_RUNNING);
|
|
19
22
|
}
|
|
20
23
|
if (!Cfg.hasTunnel(name)) {
|
|
21
|
-
output_1.default.exitError((0, texts_1.ERR_TUNNEL_NOT_FOUND)(name));
|
|
24
|
+
output_1.default.exitError(new cliError_1.default('not_found', (0, texts_1.ERR_TUNNEL_NOT_FOUND)(name), texts_1.HINT_TUNNEL_CONFIG_LIST));
|
|
22
25
|
}
|
|
23
26
|
const prepared = Cfg.getTunnel(name);
|
|
24
27
|
try {
|
|
25
|
-
|
|
28
|
+
if (!json)
|
|
29
|
+
await output_1.default.spinner(texts_1.TXT_OPENING_TUNNEL);
|
|
26
30
|
const api = new ApiAgent(commandAgentTunnelStart.agentPort || 0);
|
|
27
31
|
const data = await api.addTunnel(prepared);
|
|
28
|
-
output_1.default.
|
|
32
|
+
output_1.default.exitResult(json, data, (0, texts_1.TXT_TUNNEL_STARTED)(data.type));
|
|
29
33
|
}
|
|
30
34
|
catch (err) {
|
|
31
35
|
output_1.default.exitError(err);
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const texts_1 = require("../../../texts");
|
|
7
7
|
const output_1 = __importDefault(require("../../../output"));
|
|
8
8
|
const utils_1 = require("../../../utils");
|
|
9
|
-
const commandAgentTunnelStatus = (0, utils_1.newCommand)('status', texts_1.DESC_COMMAND_AGENT_TUNNEL_STATUS, { examples: texts_1.EXAMPLE_AGENT_TUNNEL_STATUS });
|
|
9
|
+
const commandAgentTunnelStatus = (0, utils_1.newCommand)('status', texts_1.DESC_COMMAND_AGENT_TUNNEL_STATUS, { requiredScopes: [], examples: texts_1.EXAMPLE_AGENT_TUNNEL_STATUS });
|
|
10
10
|
commandAgentTunnelStatus.argument('[id]', texts_1.OPTION_ID);
|
|
11
11
|
commandAgentTunnelStatus.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
12
12
|
commandAgentTunnelStatus.action(async (id, options) => {
|
|
@@ -5,18 +5,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const utils_1 = require("../../../utils");
|
|
7
7
|
const output_1 = __importDefault(require("../../../output"));
|
|
8
|
+
const cliError_1 = __importDefault(require("../../../cliError"));
|
|
8
9
|
const texts_1 = require("../../../texts");
|
|
9
10
|
const tunnel_1 = require("../../../types/tunnel");
|
|
10
11
|
const commandAgentTunnelTcp = (0, utils_1.getBasicCommandTcp)({
|
|
12
|
+
requiredScopes: [],
|
|
11
13
|
examples: (0, texts_1.EXAMPLE_TUNNEL_TCP)(true),
|
|
12
14
|
});
|
|
13
15
|
commandAgentTunnelTcp.description(texts_1.DESC_COMMAND_AGENT_TUNNEL_TCP);
|
|
14
16
|
commandAgentTunnelTcp.option('-f, --follow', texts_1.OPTION_FOLLOW);
|
|
17
|
+
commandAgentTunnelTcp.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
15
18
|
commandAgentTunnelTcp.argument('[host:port]', texts_1.OPTION_TARGET);
|
|
16
19
|
commandAgentTunnelTcp.action(async (target, options) => {
|
|
17
20
|
const ApiAgent = require('../../../tunnel/api/agent').default;
|
|
18
21
|
const AgentSocketTunnel = require('../../../agent/socket/tunnel').default;
|
|
19
22
|
const Cfg = require('../../../tunnel/cfg').default;
|
|
23
|
+
const json = options.format === 'json';
|
|
24
|
+
if (json && options.follow) {
|
|
25
|
+
throw new cliError_1.default('usage_error', texts_1.ERR_FOLLOW_WITH_JSON);
|
|
26
|
+
}
|
|
20
27
|
if (!commandAgentTunnelTcp.agentInstalled) {
|
|
21
28
|
output_1.default.exitError(texts_1.ERR_AGENT_NOT_INSTALLED);
|
|
22
29
|
}
|
|
@@ -25,7 +32,8 @@ commandAgentTunnelTcp.action(async (target, options) => {
|
|
|
25
32
|
}
|
|
26
33
|
const prepared = await Cfg.prepareTunnel(tunnel_1.TUNNEL_TYPE.TCP, target, options, true);
|
|
27
34
|
try {
|
|
28
|
-
|
|
35
|
+
if (!json)
|
|
36
|
+
await output_1.default.spinner(texts_1.TXT_OPENING_TUNNEL);
|
|
29
37
|
const api = new ApiAgent(commandAgentTunnelTcp.agentPort || 0);
|
|
30
38
|
const data = await api.addTunnel(prepared);
|
|
31
39
|
if (options.follow) {
|
|
@@ -35,7 +43,7 @@ commandAgentTunnelTcp.action(async (target, options) => {
|
|
|
35
43
|
output_1.default.tunnel(tunnel);
|
|
36
44
|
}
|
|
37
45
|
else {
|
|
38
|
-
output_1.default.
|
|
46
|
+
output_1.default.exitResult(json, data, (0, texts_1.TXT_TUNNEL_STARTED)(data.type));
|
|
39
47
|
}
|
|
40
48
|
}
|
|
41
49
|
catch (err) {
|
|
@@ -5,18 +5,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const utils_1 = require("../../../utils");
|
|
7
7
|
const output_1 = __importDefault(require("../../../output"));
|
|
8
|
+
const cliError_1 = __importDefault(require("../../../cliError"));
|
|
8
9
|
const texts_1 = require("../../../texts");
|
|
9
10
|
const tunnel_1 = require("../../../types/tunnel");
|
|
10
11
|
const commandAgentTunnelTls = (0, utils_1.getBasicCommandTls)({
|
|
12
|
+
requiredScopes: [],
|
|
11
13
|
examples: (0, texts_1.EXAMPLE_TUNNEL_TLS)(true),
|
|
12
14
|
});
|
|
13
15
|
commandAgentTunnelTls.description(texts_1.DESC_COMMAND_AGENT_TUNNEL_TLS);
|
|
14
16
|
commandAgentTunnelTls.option('-f, --follow', texts_1.OPTION_FOLLOW);
|
|
17
|
+
commandAgentTunnelTls.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
15
18
|
commandAgentTunnelTls.argument('[host:port]', texts_1.OPTION_TARGET);
|
|
16
19
|
commandAgentTunnelTls.action(async (target, options) => {
|
|
17
20
|
const ApiAgent = require('../../../tunnel/api/agent').default;
|
|
18
21
|
const AgentSocketTunnel = require('../../../agent/socket/tunnel').default;
|
|
19
22
|
const Cfg = require('../../../tunnel/cfg').default;
|
|
23
|
+
const json = options.format === 'json';
|
|
24
|
+
if (json && options.follow) {
|
|
25
|
+
throw new cliError_1.default('usage_error', texts_1.ERR_FOLLOW_WITH_JSON);
|
|
26
|
+
}
|
|
20
27
|
if (!commandAgentTunnelTls.agentInstalled) {
|
|
21
28
|
output_1.default.exitError(texts_1.ERR_AGENT_NOT_INSTALLED);
|
|
22
29
|
}
|
|
@@ -25,7 +32,8 @@ commandAgentTunnelTls.action(async (target, options) => {
|
|
|
25
32
|
}
|
|
26
33
|
const prepared = await Cfg.prepareTunnel(tunnel_1.TUNNEL_TYPE.TLS, target, options, true);
|
|
27
34
|
try {
|
|
28
|
-
|
|
35
|
+
if (!json)
|
|
36
|
+
await output_1.default.spinner(texts_1.TXT_OPENING_TUNNEL);
|
|
29
37
|
const api = new ApiAgent(commandAgentTunnelTls.agentPort || 0);
|
|
30
38
|
const data = await api.addTunnel(prepared);
|
|
31
39
|
if (options.follow) {
|
|
@@ -35,7 +43,7 @@ commandAgentTunnelTls.action(async (target, options) => {
|
|
|
35
43
|
output_1.default.tunnel(tunnel);
|
|
36
44
|
}
|
|
37
45
|
else {
|
|
38
|
-
output_1.default.
|
|
46
|
+
output_1.default.exitResult(json, data, (0, texts_1.TXT_TUNNEL_STARTED)(data.type));
|
|
39
47
|
}
|
|
40
48
|
}
|
|
41
49
|
catch (err) {
|
|
@@ -6,8 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const output_1 = __importDefault(require("../../output"));
|
|
7
7
|
const texts_1 = require("../../texts");
|
|
8
8
|
const utils_1 = require("../../utils");
|
|
9
|
-
const commandAgentUninstall = (0, utils_1.newCommand)('uninstall', texts_1.DESC_COMMAND_AGENT_UNINSTALL);
|
|
9
|
+
const commandAgentUninstall = (0, utils_1.newCommand)('uninstall', texts_1.DESC_COMMAND_AGENT_UNINSTALL, { requiredScopes: [] });
|
|
10
10
|
commandAgentUninstall.option('-f, --force', texts_1.OPTION_CONFIRM_FORCE);
|
|
11
|
+
commandAgentUninstall.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
11
12
|
commandAgentUninstall.action(async (options) => {
|
|
12
13
|
const AgentManager = require('../../agent/manager').default;
|
|
13
14
|
const ApiBuddy = require('../../tunnel/api/buddy').default;
|
|
@@ -16,9 +17,10 @@ commandAgentUninstall.action(async (options) => {
|
|
|
16
17
|
if (!hasRights) {
|
|
17
18
|
output_1.default.exitError(texts_1.ERR_AGENT_ADMIN_RIGHTS);
|
|
18
19
|
}
|
|
19
|
-
const
|
|
20
|
+
const json = options.format === 'json';
|
|
21
|
+
const confirmed = await output_1.default.confirmDestructive(options.force, texts_1.TXY_AGENT_CONFIRM_DELETE, json);
|
|
20
22
|
if (!confirmed)
|
|
21
|
-
output_1.default.
|
|
23
|
+
output_1.default.exitResult(json, { uninstalled: false });
|
|
22
24
|
try {
|
|
23
25
|
const api = new ApiAgent(commandAgentUninstall.agentPort || 0);
|
|
24
26
|
await api.markInactive();
|
|
@@ -60,6 +62,6 @@ commandAgentUninstall.action(async (options) => {
|
|
|
60
62
|
catch {
|
|
61
63
|
// do nothing
|
|
62
64
|
}
|
|
63
|
-
output_1.default.
|
|
65
|
+
output_1.default.exitResult(json, { uninstalled: true }, texts_1.TXT_AGENT_DISABLED);
|
|
64
66
|
});
|
|
65
67
|
exports.default = commandAgentUninstall;
|
|
@@ -6,9 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const texts_1 = require("../../texts");
|
|
7
7
|
const output_1 = __importDefault(require("../../output"));
|
|
8
8
|
const utils_1 = require("../../utils");
|
|
9
|
-
const commandAgentUpdate = (0, utils_1.newCommand)('update', texts_1.DESC_COMMAND_AGENT_UPDATE);
|
|
9
|
+
const commandAgentUpdate = (0, utils_1.newCommand)('update', texts_1.DESC_COMMAND_AGENT_UPDATE, { requiredScopes: [] });
|
|
10
10
|
commandAgentUpdate.hideVersionUpdate = true;
|
|
11
|
-
commandAgentUpdate.
|
|
11
|
+
commandAgentUpdate.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
12
|
+
commandAgentUpdate.action(async (options) => {
|
|
13
|
+
const json = options.format === 'json';
|
|
12
14
|
const AgentManager = require('../../agent/manager').default;
|
|
13
15
|
const ApiAgent = require('../../tunnel/api/agent').default;
|
|
14
16
|
const waitUntilAgentEnabled = require('../../agent/wait').default;
|
|
@@ -24,11 +26,17 @@ commandAgentUpdate.action(async () => {
|
|
|
24
26
|
if (commandAgentUpdate.agentStatus?.updating) {
|
|
25
27
|
output_1.default.exitError(texts_1.ERR_AGENT_UPDATE_IN_PROGRESS);
|
|
26
28
|
}
|
|
27
|
-
|
|
29
|
+
if (!json)
|
|
30
|
+
output_1.default.normal(texts_1.TXT_UPDATING_AGENT);
|
|
28
31
|
if (commandAgentUpdate.agentStandalone) {
|
|
29
32
|
// app
|
|
30
33
|
await AgentManager.system.killStandaloneProc();
|
|
31
|
-
|
|
34
|
+
// the standalone agent keeps running in this process: the result is
|
|
35
|
+
// printed once it is fetched and started, so a failure is the only output
|
|
36
|
+
AgentManager.system.startStandaloneProc(json, () => {
|
|
37
|
+
if (json)
|
|
38
|
+
output_1.default.json({ updated: true });
|
|
39
|
+
});
|
|
32
40
|
}
|
|
33
41
|
else {
|
|
34
42
|
try {
|
|
@@ -37,7 +45,7 @@ commandAgentUpdate.action(async () => {
|
|
|
37
45
|
await waitUntilAgentEnabled(api, 15000, () => {
|
|
38
46
|
output_1.default.exitError(texts_1.ERR_SWW_AGENT_UPDATING);
|
|
39
47
|
}, () => {
|
|
40
|
-
output_1.default.
|
|
48
|
+
output_1.default.exitResult(json, { updated: true }, texts_1.TXT_AGENT_UPDATED);
|
|
41
49
|
});
|
|
42
50
|
}
|
|
43
51
|
catch {
|
|
@@ -6,10 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const utils_1 = require("../../utils");
|
|
7
7
|
const texts_1 = require("../../texts");
|
|
8
8
|
const output_1 = __importDefault(require("../../output"));
|
|
9
|
-
const commandAgentUser = (0, utils_1.newCommand)('user', texts_1.DESC_COMMAND_AGENT_USER);
|
|
9
|
+
const commandAgentUser = (0, utils_1.newCommand)('user', texts_1.DESC_COMMAND_AGENT_USER, { requiredScopes: [] });
|
|
10
10
|
commandAgentUser.argument('[user]', texts_1.OPTION_USER);
|
|
11
11
|
commandAgentUser.argument('[password]', texts_1.OPTION_PASS);
|
|
12
|
-
commandAgentUser.
|
|
12
|
+
commandAgentUser.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
13
|
+
commandAgentUser.action(async (user, password, options) => {
|
|
13
14
|
const AgentManager = require('../../agent/manager').default;
|
|
14
15
|
const hasAdminRights = await AgentManager.system.hasAdminRights();
|
|
15
16
|
if (!hasAdminRights) {
|
|
@@ -29,6 +30,6 @@ commandAgentUser.action(async (user, password) => {
|
|
|
29
30
|
else {
|
|
30
31
|
u = user;
|
|
31
32
|
}
|
|
32
|
-
output_1.default.
|
|
33
|
+
output_1.default.exitResult(options.format === 'json', { user: u }, (0, texts_1.TXT_AGENT_USER_CHANGED)(u));
|
|
33
34
|
});
|
|
34
35
|
exports.default = commandAgentUser;
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const output_1 = __importDefault(require("../../output"));
|
|
7
7
|
const texts_1 = require("../../texts");
|
|
8
8
|
const utils_1 = require("../../utils");
|
|
9
|
-
const commandAgentVersion = (0, utils_1.newCommand)('version', texts_1.DESC_COMMAND_AGENT_VERSION, { examples: texts_1.EXAMPLE_AGENT_VERSION });
|
|
9
|
+
const commandAgentVersion = (0, utils_1.newCommand)('version', texts_1.DESC_COMMAND_AGENT_VERSION, { requiredScopes: [], examples: texts_1.EXAMPLE_AGENT_VERSION });
|
|
10
10
|
commandAgentVersion.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
11
11
|
commandAgentVersion.action(async (options) => {
|
|
12
12
|
if (!commandAgentVersion.agentInstalled) {
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const cliError_1 = __importDefault(require("../../cliError"));
|
|
6
7
|
const utils_1 = require("../../utils");
|
|
7
8
|
const texts_1 = require("../../texts");
|
|
8
9
|
const input_1 = __importDefault(require("../../input"));
|
|
@@ -220,6 +221,7 @@ const chosen = (asked, names) => {
|
|
|
220
221
|
return Number.isInteger(position) && position >= 1 ? names[position - 1] : undefined;
|
|
221
222
|
};
|
|
222
223
|
const commandApiInfo = (0, utils_1.newCommand)('info', texts_1.DESC_COMMAND_API_INFO, {
|
|
224
|
+
requiredScopes: [],
|
|
223
225
|
helpText: texts_1.HELP_API_INFO_JSON,
|
|
224
226
|
examples: texts_1.EXAMPLE_API_INFO,
|
|
225
227
|
});
|
|
@@ -241,12 +243,12 @@ commandApiInfo.action(async (fm, filterUrl, options) => {
|
|
|
241
243
|
(operation.path === filterUrl ||
|
|
242
244
|
(0, utils_1.openApiPrepareUrl)(operation.path, workspace, project) === filterUrl));
|
|
243
245
|
if (!wanted) {
|
|
244
|
-
output_1.default.exitError(texts_1.ERR_API_ENDPOINT_NOT_FOUND);
|
|
246
|
+
output_1.default.exitError(new cliError_1.default('not_found', texts_1.ERR_API_ENDPOINT_NOT_FOUND, texts_1.HINT_API_LIST));
|
|
245
247
|
return;
|
|
246
248
|
}
|
|
247
249
|
const listed = await api.endpoint(wanted.method, wanted.path);
|
|
248
250
|
if (!listed) {
|
|
249
|
-
output_1.default.exitError(texts_1.ERR_API_ENDPOINT_NOT_FOUND);
|
|
251
|
+
output_1.default.exitError(new cliError_1.default('not_found', texts_1.ERR_API_ENDPOINT_NOT_FOUND, texts_1.HINT_API_LIST));
|
|
250
252
|
return;
|
|
251
253
|
}
|
|
252
254
|
const namesOf = (bodies) => bodies.flatMap((body) => [...orderedMembers(body)]);
|
|
@@ -299,7 +301,7 @@ commandApiInfo.action(async (fm, filterUrl, options) => {
|
|
|
299
301
|
: undefined;
|
|
300
302
|
const doc = member ? await api.endpoint(wanted.method, wanted.path, member) : listed;
|
|
301
303
|
if (!doc) {
|
|
302
|
-
output_1.default.exitError(texts_1.ERR_API_ENDPOINT_NOT_FOUND);
|
|
304
|
+
output_1.default.exitError(new cliError_1.default('not_found', texts_1.ERR_API_ENDPOINT_NOT_FOUND, texts_1.HINT_API_LIST));
|
|
303
305
|
return;
|
|
304
306
|
}
|
|
305
307
|
const members = await memberMeta(api, doc);
|
|
@@ -26,6 +26,7 @@ const outputUrl = (operation, workspace, project) => {
|
|
|
26
26
|
output_1.default.gray(operation.summary);
|
|
27
27
|
};
|
|
28
28
|
const commandApiList = (0, utils_1.newCommand)('list', texts_1.DESC_COMMAND_API_LIST, {
|
|
29
|
+
requiredScopes: [],
|
|
29
30
|
examples: texts_1.EXAMPLE_API_LIST,
|
|
30
31
|
});
|
|
31
32
|
commandApiList.alias('ls');
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const cliError_1 = __importDefault(require("../../../cliError"));
|
|
6
7
|
const utils_1 = require("../../../utils");
|
|
7
8
|
const texts_1 = require("../../../texts");
|
|
8
9
|
const input_1 = __importDefault(require("../../../input"));
|
|
@@ -24,9 +25,12 @@ commandArtifactComposerPublish.option('-c, --create', texts_1.OPTION_ARTIFACT_PU
|
|
|
24
25
|
commandArtifactComposerPublish.option('--note <note>', texts_1.OPTION_ARTIFACT_VERSION_NOTE);
|
|
25
26
|
commandArtifactComposerPublish.option('--agent-note <note>', texts_1.OPTION_ARTIFACT_VERSION_AGENT_NOTE);
|
|
26
27
|
commandArtifactComposerPublish.option('--ignore <patterns>', texts_1.OPTION_ARTIFACT_IGNORE);
|
|
28
|
+
commandArtifactComposerPublish.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
27
29
|
commandArtifactComposerPublish.argument('<identifier>', texts_1.OPTION_ARTIFACT_ID);
|
|
28
30
|
commandArtifactComposerPublish.argument('<directory>', texts_1.OPTION_ARTIFACT_COMPOSE_PUBLISH_PATH);
|
|
29
31
|
commandArtifactComposerPublish.action(async (id, path, options) => {
|
|
32
|
+
const json = options.format === 'json';
|
|
33
|
+
const say = output_1.default.progress(json);
|
|
30
34
|
const dirPath = input_1.default.resolvePath(path);
|
|
31
35
|
if (!fs_1.default.statSync(dirPath).isDirectory()) {
|
|
32
36
|
output_1.default.exitError((0, texts_1.ERR_PATH_IS_NOT_DIRECTORY)(dirPath));
|
|
@@ -69,10 +73,10 @@ commandArtifactComposerPublish.action(async (id, path, options) => {
|
|
|
69
73
|
const client = input_1.default.restApiTokenClient();
|
|
70
74
|
const data = await client.getArtifactVersionByIdentifier(workspace, scope === distro_1.SCOPE.PROJECT ? project : null, identifier, publishVersion);
|
|
71
75
|
if (!data || !data.domain) {
|
|
72
|
-
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
76
|
+
output_1.default.exitError(new cliError_1.default('not_found', texts_1.ERR_WORKSPACE_NOT_FOUND, texts_1.HINT_WORKSPACE_LIST));
|
|
73
77
|
}
|
|
74
78
|
if (scope === distro_1.SCOPE.PROJECT && !data.project_identifier) {
|
|
75
|
-
output_1.default.exitError(texts_1.ERR_PROJECT_NOT_FOUND);
|
|
79
|
+
output_1.default.exitError(new cliError_1.default('not_found', texts_1.ERR_PROJECT_NOT_FOUND, texts_1.HINT_PROJECT_LIST));
|
|
76
80
|
}
|
|
77
81
|
let artifactId = data.artifact_id;
|
|
78
82
|
if (!artifactId && !options.create) {
|
|
@@ -108,7 +112,7 @@ commandArtifactComposerPublish.action(async (id, path, options) => {
|
|
|
108
112
|
// No --force here: a published composer version is not replaced, only a new one is added
|
|
109
113
|
output_1.default.exitError(texts_1.ERR_ARTIFACT_VERSION_EXISTS_NO_FORCE);
|
|
110
114
|
}
|
|
111
|
-
|
|
115
|
+
say(texts_1.TXT_ARTIFACT_SCANNING_DIR, false);
|
|
112
116
|
// At least composer.json is in there, so an empty listing is not a case to handle
|
|
113
117
|
const scanned = fs_1.default.readdirSync(dirPath, {
|
|
114
118
|
withFileTypes: true,
|
|
@@ -116,9 +120,9 @@ commandArtifactComposerPublish.action(async (id, path, options) => {
|
|
|
116
120
|
});
|
|
117
121
|
// composer.json is kept whatever --ignore says - the package is not publishable without it
|
|
118
122
|
const entries = (0, utils_1.filterIgnoredEntries)(dirPath, scanned, [...utils_1.ARTIFACT_IGNORE_DEFAULT, ...(0, utils_1.parseIgnorePatterns)(options.ignore)], ['composer.json']);
|
|
119
|
-
|
|
123
|
+
say((0, texts_1.TXT_ARTIFACT_ENTRIES_FOUND)(entries.length));
|
|
120
124
|
if (scanned.length !== entries.length) {
|
|
121
|
-
|
|
125
|
+
say((0, texts_1.TXT_ARTIFACT_IGNORED_ENTRIES)(scanned.length - entries.length));
|
|
122
126
|
}
|
|
123
127
|
// The path declared in composer.json wins, otherwise the readme lying next to it
|
|
124
128
|
const declaredReadme = (0, utils_1.getComposerReadmePath)(composerJson);
|
|
@@ -128,16 +132,16 @@ commandArtifactComposerPublish.action(async (id, path, options) => {
|
|
|
128
132
|
const readmeFile = (0, utils_1.findArtifactReadme)(dirPath, declaredReadme);
|
|
129
133
|
let readme;
|
|
130
134
|
if (!readmeFile) {
|
|
131
|
-
|
|
135
|
+
say(texts_1.TXT_ARTIFACT_README_NOT_FOUND);
|
|
132
136
|
}
|
|
133
137
|
else if (readmeFile.content === undefined) {
|
|
134
|
-
|
|
138
|
+
say((0, texts_1.TXT_ARTIFACT_README_TOO_LARGE)((0, path_1.relative)(dirPath, readmeFile.path), utils_1.ARTIFACT_README_SIZE_LIMIT));
|
|
135
139
|
}
|
|
136
140
|
else {
|
|
137
141
|
readme = readmeFile.content;
|
|
138
|
-
|
|
142
|
+
say((0, texts_1.TXT_ARTIFACT_README_FOUND)((0, path_1.relative)(dirPath, readmeFile.path)));
|
|
139
143
|
}
|
|
140
|
-
|
|
144
|
+
say((0, texts_1.TXT_ARTIFACT_ZIP_ENTRIES)(0));
|
|
141
145
|
let root;
|
|
142
146
|
const zipPath = (0, path_1.join)((0, utils_1.getHomeDirectory)(), `${(0, uuid_1.v4)()}.zip`);
|
|
143
147
|
const clearZip = () => {
|
|
@@ -152,11 +156,9 @@ commandArtifactComposerPublish.action(async (id, path, options) => {
|
|
|
152
156
|
let proc = 0;
|
|
153
157
|
await (0, utils_1.createZip)(dirPath, zipPath, entries, () => {
|
|
154
158
|
proc += 1;
|
|
155
|
-
|
|
156
|
-
output_1.default.normal((0, texts_1.TXT_ARTIFACT_ZIP_ENTRIES)(proc));
|
|
159
|
+
say((0, texts_1.TXT_ARTIFACT_ZIP_ENTRIES)(proc), true, true);
|
|
157
160
|
});
|
|
158
|
-
|
|
159
|
-
output_1.default.normal(texts_1.TXT_ARTIFACT_ZIPPED);
|
|
161
|
+
say(texts_1.TXT_ARTIFACT_ZIPPED, true, true);
|
|
160
162
|
root = await fs_1.default.openAsBlob(zipPath);
|
|
161
163
|
}
|
|
162
164
|
catch (err) {
|
|
@@ -165,11 +167,14 @@ commandArtifactComposerPublish.action(async (id, path, options) => {
|
|
|
165
167
|
output_1.default.exitError(texts_1.ERR_SWW);
|
|
166
168
|
}
|
|
167
169
|
try {
|
|
168
|
-
|
|
170
|
+
say(texts_1.TXT_ARTIFACT_UPLOADING);
|
|
169
171
|
const d = await client.createArtifactComposerVersion(workspace, artifactId, root, composer, readme, options.note, options.agentNote);
|
|
170
172
|
clearZip();
|
|
171
|
-
|
|
172
|
-
|
|
173
|
+
if (json) {
|
|
174
|
+
output_1.default.json(d);
|
|
175
|
+
output_1.default.exitNormal();
|
|
176
|
+
}
|
|
177
|
+
say(texts_1.TXT_ARTIFACT_UPLOADED, true, true);
|
|
173
178
|
output_1.default.object({
|
|
174
179
|
Version: `${identifier}:${d?.version || publishVersion}`,
|
|
175
180
|
// A composer version has no public preview endpoint the way a bucket artifact does, so the
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const cliError_1 = __importDefault(require("../../cliError"));
|
|
6
7
|
const utils_1 = require("../../utils");
|
|
7
8
|
const texts_1 = require("../../texts");
|
|
8
9
|
const input_1 = __importDefault(require("../../input"));
|
|
@@ -17,6 +18,7 @@ commandArtifactDelete.option('-w, --workspace <domain>', texts_1.OPTION_REST_API
|
|
|
17
18
|
commandArtifactDelete.option('--scope <scope>', texts_1.OPT_COMMAND_SCOPE);
|
|
18
19
|
commandArtifactDelete.option('-p, --project <name>', texts_1.OPTION_REST_API_PROJECT);
|
|
19
20
|
commandArtifactDelete.option('-f, --force', texts_1.OPTION_CONFIRM_FORCE);
|
|
21
|
+
commandArtifactDelete.option('--format <text|json>', texts_1.OPTION_FORMAT);
|
|
20
22
|
commandArtifactDelete.argument('<identifier>', texts_1.OPT_COMMAND_ARTIFACT_IDENTIFIER);
|
|
21
23
|
commandArtifactDelete.action(async (identifier, options) => {
|
|
22
24
|
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
@@ -25,18 +27,19 @@ commandArtifactDelete.action(async (identifier, options) => {
|
|
|
25
27
|
const client = input_1.default.restApiTokenClient();
|
|
26
28
|
const data = await client.getArtifactVersionByIdentifier(workspace, scope === distro_1.SCOPE.PROJECT ? project : null, identifier);
|
|
27
29
|
if (!data || !data.domain) {
|
|
28
|
-
output_1.default.exitError(texts_1.ERR_WORKSPACE_NOT_FOUND);
|
|
30
|
+
output_1.default.exitError(new cliError_1.default('not_found', texts_1.ERR_WORKSPACE_NOT_FOUND, texts_1.HINT_WORKSPACE_LIST));
|
|
29
31
|
}
|
|
30
32
|
if (!data.artifact_id) {
|
|
31
|
-
output_1.default.exitError(texts_1.ERR_ARTIFACT_NOT_FOUND);
|
|
33
|
+
output_1.default.exitError(new cliError_1.default('not_found', texts_1.ERR_ARTIFACT_NOT_FOUND, texts_1.HINT_ARTIFACT_LIST));
|
|
32
34
|
}
|
|
33
|
-
const
|
|
35
|
+
const json = options.format === 'json';
|
|
36
|
+
const confirmed = await output_1.default.confirmDestructive(options.force, (0, texts_1.TXT_ARTIFACT_DELETE_CONFIRM)(identifier), json);
|
|
34
37
|
if (confirmed) {
|
|
35
38
|
await client.deleteArtifact(workspace, data.artifact_id);
|
|
36
|
-
output_1.default.
|
|
39
|
+
output_1.default.exitResult(json, { deleted: identifier }, texts_1.TXT_ARTIFACT_DELETED);
|
|
37
40
|
}
|
|
38
41
|
else {
|
|
39
|
-
output_1.default.
|
|
42
|
+
output_1.default.exitResult(json, { deleted: null });
|
|
40
43
|
}
|
|
41
44
|
});
|
|
42
45
|
exports.default = commandArtifactDelete;
|