bdy 1.8.38 → 1.8.40-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 +43 -0
- package/distTs/src/agent.js +12 -6
- package/distTs/src/api/agent.js +9 -0
- package/distTs/src/api/buddy.js +18 -3
- package/distTs/src/command/agent/install.js +3 -1
- package/distTs/src/command/agent/target/disable.js +27 -0
- package/distTs/src/command/agent/target/enable.js +27 -0
- package/distTs/src/command/agent/target/status.js +32 -0
- package/distTs/src/command/agent/target.js +15 -0
- package/distTs/src/command/agent.js +2 -0
- package/distTs/src/command/http.js +1 -1
- package/distTs/src/command/start.js +1 -1
- package/distTs/src/command/tcp.js +1 -1
- package/distTs/src/server/sftp.js +1 -1
- package/distTs/src/server/ssh.js +1 -1
- package/distTs/src/texts.js +14 -5
- package/package.json +1 -1
package/distTs/package.json
CHANGED
|
@@ -115,6 +115,43 @@ class AgentManagerClass {
|
|
|
115
115
|
tunnels,
|
|
116
116
|
});
|
|
117
117
|
}
|
|
118
|
+
async processAgentTarget(res) {
|
|
119
|
+
if (!this.agent) {
|
|
120
|
+
this.serverError(res, 'Agent not enabled');
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
this.serverOutput(res, {
|
|
124
|
+
target: this.agent.target
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
async processAgentTargetEnable(res) {
|
|
128
|
+
if (!this.agent) {
|
|
129
|
+
this.serverError(res, 'Agent not enabled');
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
try {
|
|
133
|
+
await buddy_js_1.default.enableTarget(this.id, this.host, this.token);
|
|
134
|
+
}
|
|
135
|
+
catch (err) {
|
|
136
|
+
this.serverError(res, err.message);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
this.serverOutput(res, {});
|
|
140
|
+
}
|
|
141
|
+
async processAgentTargetDisable(res) {
|
|
142
|
+
if (!this.agent) {
|
|
143
|
+
this.serverError(res, 'Agent not enabled');
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
try {
|
|
147
|
+
await buddy_js_1.default.disableTarget(this.id, this.host, this.token);
|
|
148
|
+
}
|
|
149
|
+
catch (err) {
|
|
150
|
+
this.serverError(res, err.message);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
this.serverOutput(res, {});
|
|
154
|
+
}
|
|
118
155
|
async processStatus(res) {
|
|
119
156
|
this.serverOutput(res, {
|
|
120
157
|
id: this.id,
|
|
@@ -292,6 +329,12 @@ class AgentManagerClass {
|
|
|
292
329
|
logger_js_1.default.info((0, texts_js_1.LOG_REQUEST)(req.url));
|
|
293
330
|
if (req.url === '/status')
|
|
294
331
|
return this.processStatus(res);
|
|
332
|
+
if (req.url === '/target')
|
|
333
|
+
return this.processAgentTarget(res);
|
|
334
|
+
if (req.url === '/target/enable')
|
|
335
|
+
return this.processAgentTargetEnable(res);
|
|
336
|
+
if (req.url === '/target/disable')
|
|
337
|
+
return this.processAgentTargetDisable(res);
|
|
295
338
|
if (req.url === '/tunnels')
|
|
296
339
|
return this.processTunnels(res);
|
|
297
340
|
if (req.url === '/tunnel/add')
|
package/distTs/src/agent.js
CHANGED
|
@@ -11,12 +11,13 @@ const tunnel_js_1 = __importDefault(require("./tunnel.js"));
|
|
|
11
11
|
const output_js_1 = __importDefault(require("./output.js"));
|
|
12
12
|
const socket_1 = __importDefault(require("./api/socket"));
|
|
13
13
|
class Agent extends events_1.default {
|
|
14
|
-
constructor(id, host, token, service, api) {
|
|
14
|
+
constructor(id, host, token, service, target, api) {
|
|
15
15
|
super();
|
|
16
16
|
this.id = id;
|
|
17
17
|
this.host = host;
|
|
18
18
|
this.token = token;
|
|
19
19
|
this.service = service;
|
|
20
|
+
this.target = target;
|
|
20
21
|
this.tunnels = [];
|
|
21
22
|
this.started = false;
|
|
22
23
|
this.api = api;
|
|
@@ -46,8 +47,10 @@ class Agent extends events_1.default {
|
|
|
46
47
|
if (this.manager)
|
|
47
48
|
return this.manager.disableAgentAndExit(texts_js_1.ERR_AGENT_REMOVED);
|
|
48
49
|
output_js_1.default.exitError(texts_js_1.ERR_AGENT_REMOVED);
|
|
50
|
+
return;
|
|
49
51
|
}
|
|
50
|
-
|
|
52
|
+
this.target = !!data.target;
|
|
53
|
+
if (data.action) {
|
|
51
54
|
try {
|
|
52
55
|
await this.makeAction(data.action);
|
|
53
56
|
}
|
|
@@ -120,13 +123,16 @@ class Agent extends events_1.default {
|
|
|
120
123
|
}
|
|
121
124
|
process.exit(0);
|
|
122
125
|
}
|
|
123
|
-
refreshIn15(fetch = true) {
|
|
126
|
+
refreshIn15(fetch = true, counter = 1) {
|
|
124
127
|
setTimeout(async () => {
|
|
125
|
-
if (fetch)
|
|
128
|
+
if (fetch || counter >= 4) {
|
|
129
|
+
counter = 0;
|
|
126
130
|
this.socket.fetch(this.started, null, false, this.getTunnelsUpdate());
|
|
127
|
-
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
128
133
|
this.update();
|
|
129
|
-
|
|
134
|
+
}
|
|
135
|
+
this.refreshIn15(false, counter + 1);
|
|
130
136
|
}, 15000);
|
|
131
137
|
}
|
|
132
138
|
httpRequest(tunnelId, logRequest) {
|
package/distTs/src/api/agent.js
CHANGED
|
@@ -63,6 +63,15 @@ class ApiAgent {
|
|
|
63
63
|
async fetchTunnels() {
|
|
64
64
|
return makeRequest(this.port, '/tunnels');
|
|
65
65
|
}
|
|
66
|
+
async fetchAgentTarget() {
|
|
67
|
+
return makeRequest(this.port, '/target');
|
|
68
|
+
}
|
|
69
|
+
async enableAgentTarget() {
|
|
70
|
+
return makeRequest(this.port, '/target/enable');
|
|
71
|
+
}
|
|
72
|
+
async disableAgentTarget() {
|
|
73
|
+
return makeRequest(this.port, '/target/disable');
|
|
74
|
+
}
|
|
66
75
|
async stopTunnel(id) {
|
|
67
76
|
return makeRequest(this.port, '/tunnel/stop', {
|
|
68
77
|
id,
|
package/distTs/src/api/buddy.js
CHANGED
|
@@ -54,7 +54,7 @@ const makeRequest = async (host, path, body, method = 'POST', respAsJson = true,
|
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
56
|
class ApiBuddyClass {
|
|
57
|
-
async register(service, host, token, onDefaultRegion) {
|
|
57
|
+
async register(service, target, host, token, onDefaultRegion) {
|
|
58
58
|
const version = (0, utils_1.getVersion)();
|
|
59
59
|
const hostname = (0, utils_1.getHostname)();
|
|
60
60
|
const platform = (0, utils_1.getPlatform)();
|
|
@@ -65,12 +65,13 @@ class ApiBuddyClass {
|
|
|
65
65
|
hostname,
|
|
66
66
|
platform,
|
|
67
67
|
service,
|
|
68
|
+
target,
|
|
68
69
|
});
|
|
69
70
|
logger_js_1.default.info((0, texts_js_1.LOG_AGENT_REGISTERED)(r.id));
|
|
70
71
|
logger_js_1.default.info((0, texts_js_1.LOG_REGION_DETECTED)(r.region));
|
|
71
72
|
if (onDefaultRegion)
|
|
72
73
|
onDefaultRegion(r.region);
|
|
73
|
-
return new agent_js_1.default(r.id, host, r.token, service, this);
|
|
74
|
+
return new agent_js_1.default(r.id, host, r.token, service, target, this);
|
|
74
75
|
}
|
|
75
76
|
async unregister(id, host, token) {
|
|
76
77
|
logger_js_1.default.info(texts_js_1.LOG_UNREGISTERING_AGENT);
|
|
@@ -86,7 +87,21 @@ class ApiBuddyClass {
|
|
|
86
87
|
token,
|
|
87
88
|
id,
|
|
88
89
|
});
|
|
89
|
-
return new agent_js_1.default(r.id, host, token, r.service, this);
|
|
90
|
+
return new agent_js_1.default(r.id, host, token, !!r.service, !!r.target, this);
|
|
91
|
+
}
|
|
92
|
+
async disableTarget(agentId, host, token) {
|
|
93
|
+
logger_js_1.default.info(texts_js_1.LOG_DISABLING_AGENT_TARGET);
|
|
94
|
+
await makeRequest(host, '/tunnel/agent/target/disable', {
|
|
95
|
+
agentId,
|
|
96
|
+
token
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
async enableTarget(agentId, host, token) {
|
|
100
|
+
logger_js_1.default.info(texts_js_1.LOG_ENABLING_AGENT_TARGET);
|
|
101
|
+
await makeRequest(host, '/tunnel/agent/target/enable', {
|
|
102
|
+
agentId,
|
|
103
|
+
token
|
|
104
|
+
});
|
|
90
105
|
}
|
|
91
106
|
async addTunnel(agentId, host, token, prepared, sshHostKey) {
|
|
92
107
|
logger_js_1.default.info(texts_js_1.LOG_REGISTERING_TUNNEL);
|
|
@@ -40,6 +40,7 @@ commandAgentInstall.option('-t, --token <token>', texts_js_1.OPTION_AGENT_TOKEN)
|
|
|
40
40
|
commandAgentInstall.option('-p, --port <port>', texts_js_1.OPTION_AGENT_PORT, '7456');
|
|
41
41
|
commandAgentInstall.option('-u, --user <user>', texts_js_1.OPTION_USER);
|
|
42
42
|
commandAgentInstall.option('--pass <password>', texts_js_1.OPTION_PASS);
|
|
43
|
+
commandAgentInstall.option('--target', texts_js_1.OPTION_AGENT_TARGET);
|
|
43
44
|
commandAgentInstall.option('-d, --debug', texts_js_1.OPTION_AGENT_DEBUG);
|
|
44
45
|
commandAgentInstall.action(async (options) => {
|
|
45
46
|
const hasAdminRights = await manager_js_1.default.system.hasAdminRights();
|
|
@@ -58,6 +59,7 @@ commandAgentInstall.action(async (options) => {
|
|
|
58
59
|
let token;
|
|
59
60
|
let agent;
|
|
60
61
|
let port = input_js_1.default.port(options.port);
|
|
62
|
+
const target = !!options.target;
|
|
61
63
|
if (options.id && options.token) {
|
|
62
64
|
// if id & token passed set as it is
|
|
63
65
|
id = options.id;
|
|
@@ -75,7 +77,7 @@ commandAgentInstall.action(async (options) => {
|
|
|
75
77
|
}
|
|
76
78
|
let host = cfg_js_1.default.getTokenHost();
|
|
77
79
|
if (!agent) {
|
|
78
|
-
agent = await buddy_js_1.default.register(true, host, cfg_js_1.default.getToken(), (region) => {
|
|
80
|
+
agent = await buddy_js_1.default.register(true, target, host, cfg_js_1.default.getToken(), (region) => {
|
|
79
81
|
cfg_js_1.default.setRegionIfNotSet(region);
|
|
80
82
|
});
|
|
81
83
|
id = agent.id;
|
|
@@ -0,0 +1,27 @@
|
|
|
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 manager_1 = __importDefault(require("../../../agent/manager"));
|
|
9
|
+
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
+
const agent_1 = __importDefault(require("../../../api/agent"));
|
|
11
|
+
const commandAgentTargetDisable = (0, utils_1.newCommand)('disable', texts_1.DESC_COMMAND_AGENT_TARGET_DISABLE);
|
|
12
|
+
commandAgentTargetDisable.action(async () => {
|
|
13
|
+
const isEnabled = await manager_1.default.system.isEnabled();
|
|
14
|
+
if (!isEnabled) {
|
|
15
|
+
output_1.default.exitError(texts_1.ERR_AGENT_NOT_ENABLED);
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const json = manager_1.default.system.loadSystemConfig();
|
|
19
|
+
const api = new agent_1.default(json.port);
|
|
20
|
+
await api.disableAgentTarget();
|
|
21
|
+
output_1.default.exitSuccess(texts_1.TXT_AGENT_TARGET_DISABLED);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
output_1.default.exitError(err);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
exports.default = commandAgentTargetDisable;
|
|
@@ -0,0 +1,27 @@
|
|
|
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 manager_1 = __importDefault(require("../../../agent/manager"));
|
|
9
|
+
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
+
const agent_1 = __importDefault(require("../../../api/agent"));
|
|
11
|
+
const commandAgentTargetEnable = (0, utils_1.newCommand)('enable', texts_1.DESC_COMMAND_AGENT_TARGET_ENABLE);
|
|
12
|
+
commandAgentTargetEnable.action(async () => {
|
|
13
|
+
const isEnabled = await manager_1.default.system.isEnabled();
|
|
14
|
+
if (!isEnabled) {
|
|
15
|
+
output_1.default.exitError(texts_1.ERR_AGENT_NOT_ENABLED);
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const json = manager_1.default.system.loadSystemConfig();
|
|
19
|
+
const api = new agent_1.default(json.port);
|
|
20
|
+
await api.enableAgentTarget();
|
|
21
|
+
output_1.default.exitSuccess(texts_1.TXT_AGENT_TARGET_ENABLED);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
output_1.default.exitError(err);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
exports.default = commandAgentTargetEnable;
|
|
@@ -0,0 +1,32 @@
|
|
|
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 manager_1 = __importDefault(require("../../../agent/manager"));
|
|
9
|
+
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
+
const agent_1 = __importDefault(require("../../../api/agent"));
|
|
11
|
+
const commandAgentTargetStatus = (0, utils_1.newCommand)('status', texts_1.DESC_COMMAND_AGENT_TARGET_STATUS);
|
|
12
|
+
commandAgentTargetStatus.action(async () => {
|
|
13
|
+
const isEnabled = await manager_1.default.system.isEnabled();
|
|
14
|
+
if (!isEnabled) {
|
|
15
|
+
output_1.default.exitError(texts_1.ERR_AGENT_NOT_ENABLED);
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const json = manager_1.default.system.loadSystemConfig();
|
|
19
|
+
const api = new agent_1.default(json.port);
|
|
20
|
+
const data = await api.fetchAgentTarget();
|
|
21
|
+
if (data.target) {
|
|
22
|
+
output_1.default.exitSuccess(texts_1.TXT_AGENT_TARGET_ENABLED);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
output_1.default.exitError(texts_1.TXT_AGENT_TARGET_DISABLED);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
output_1.default.exitError(err);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
exports.default = commandAgentTargetStatus;
|
|
@@ -0,0 +1,15 @@
|
|
|
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 status_1 = __importDefault(require("./target/status"));
|
|
9
|
+
const enable_1 = __importDefault(require("./target/enable"));
|
|
10
|
+
const disable_1 = __importDefault(require("./target/disable"));
|
|
11
|
+
const commandAgentTarget = (0, utils_1.newCommand)('target', texts_1.DESC_COMMAND_AGENT_TARGET);
|
|
12
|
+
commandAgentTarget.addCommand(status_1.default);
|
|
13
|
+
commandAgentTarget.addCommand(enable_1.default);
|
|
14
|
+
commandAgentTarget.addCommand(disable_1.default);
|
|
15
|
+
exports.default = commandAgentTarget;
|
|
@@ -15,6 +15,7 @@ const version_js_1 = __importDefault(require("./agent/version.js"));
|
|
|
15
15
|
const texts_js_1 = require("../texts.js");
|
|
16
16
|
const run_1 = __importDefault(require("./agent/run"));
|
|
17
17
|
const utils_1 = require("../utils");
|
|
18
|
+
const target_1 = __importDefault(require("./agent/target"));
|
|
18
19
|
const commandAgent = (0, utils_1.newCommand)('agent', texts_js_1.DESC_COMMAND_AGENT);
|
|
19
20
|
commandAgent.addCommand(install_1.default);
|
|
20
21
|
commandAgent.addCommand(start_js_1.default);
|
|
@@ -23,6 +24,7 @@ commandAgent.addCommand(restart_js_1.default);
|
|
|
23
24
|
commandAgent.addCommand(uninstall_js_1.default);
|
|
24
25
|
commandAgent.addCommand(status_js_1.default);
|
|
25
26
|
commandAgent.addCommand(tunnel_js_1.default);
|
|
27
|
+
commandAgent.addCommand(target_1.default);
|
|
26
28
|
commandAgent.addCommand(update_js_1.default);
|
|
27
29
|
commandAgent.addCommand(version_js_1.default);
|
|
28
30
|
commandAgent.addCommand(run_1.default, { hidden: true });
|
|
@@ -18,7 +18,7 @@ commandHttp.action(async (target, options) => {
|
|
|
18
18
|
cfg_js_1.default.setToken(options.token);
|
|
19
19
|
const prepared = await cfg_js_1.default.prepareTunnel(utils_js_1.TUNNEL_HTTP, target, options, true);
|
|
20
20
|
await output_js_1.default.spinner(texts_js_1.TXT_OPENING_TUNNEL);
|
|
21
|
-
const agent = await buddy_js_1.default.register(false, cfg_js_1.default.getTokenHost(), cfg_js_1.default.getToken(), (region) => {
|
|
21
|
+
const agent = await buddy_js_1.default.register(false, false, cfg_js_1.default.getTokenHost(), cfg_js_1.default.getToken(), (region) => {
|
|
22
22
|
cfg_js_1.default.setRegionIfNotSet(region);
|
|
23
23
|
});
|
|
24
24
|
await agent.start();
|
|
@@ -16,7 +16,7 @@ commandStart.action(async (name) => {
|
|
|
16
16
|
}
|
|
17
17
|
const prepared = cfg_js_1.default.getTunnel(name);
|
|
18
18
|
await output_js_1.default.spinner(texts_js_1.TXT_OPENING_TUNNEL);
|
|
19
|
-
const agent = await buddy_js_1.default.register(false, cfg_js_1.default.getTokenHost(), cfg_js_1.default.getToken(), (region) => {
|
|
19
|
+
const agent = await buddy_js_1.default.register(false, false, cfg_js_1.default.getTokenHost(), cfg_js_1.default.getToken(), (region) => {
|
|
20
20
|
cfg_js_1.default.setRegionIfNotSet(region);
|
|
21
21
|
});
|
|
22
22
|
await agent.start();
|
|
@@ -18,7 +18,7 @@ commandTcp.action(async (target, options) => {
|
|
|
18
18
|
cfg_js_1.default.setToken(options.token);
|
|
19
19
|
const prepared = await cfg_js_1.default.prepareTunnel(utils_js_1.TUNNEL_TCP, target, options, true);
|
|
20
20
|
await output_js_1.default.spinner(texts_js_1.TXT_OPENING_TUNNEL);
|
|
21
|
-
const agent = await buddy_js_1.default.register(false, cfg_js_1.default.getTokenHost(), cfg_js_1.default.getToken(), (region) => {
|
|
21
|
+
const agent = await buddy_js_1.default.register(false, false, cfg_js_1.default.getTokenHost(), cfg_js_1.default.getToken(), (region) => {
|
|
22
22
|
cfg_js_1.default.setRegionIfNotSet(region);
|
|
23
23
|
});
|
|
24
24
|
await agent.start();
|
|
@@ -331,7 +331,7 @@ class ServerSftp {
|
|
|
331
331
|
async realpath(reqId, path) {
|
|
332
332
|
logger_1.default.debug(`SFTP want realpath ${path}`);
|
|
333
333
|
try {
|
|
334
|
-
const realPath = await promises_1.default.realpath(path);
|
|
334
|
+
const realPath = await promises_1.default.realpath(path || '~/');
|
|
335
335
|
logger_1.default.debug('SFTP realpath succeed');
|
|
336
336
|
this.sftp.name(reqId, [
|
|
337
337
|
{
|
package/distTs/src/server/ssh.js
CHANGED
package/distTs/src/texts.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ERR_WRONG_HANDSHAKE = exports.ERR_FETCH_VERSION = exports.ERR_SWW = exports.ERR_NOT_FOUND = exports.ERR_FAILED_TO_CONNECT_TO_AGENT = exports.ERR_TUNNEL_REMOVED = exports.ERR_TUNNELS_DISABLED = exports.ERR_AGENT_LIMIT_REACHED = exports.ERR_TUNNEL_LIMIT_REACHED = exports.ERR_DOMAIN_RESTRICTED = exports.ERR_SUBDOMAIN_TAKEN = exports.ERR_AGENT_REMOVED = exports.ERR_FAILED_TO_CONNECT = exports.ERR_TUNNEL_ALREADY_EXISTS = exports.ERR_AGENT_NOT_SUPPORTED = exports.ERR_AGENT_ADMIN_RIGHTS = exports.ERR_AGENT_ENABLE = exports.ERR_SWW_AGENT_UPDATING = exports.ERR_SWW_AGENT_DISABLING = exports.ERR_SWW_AGENT_ENABLING = exports.ERR_AGENT_NOT_FOUND = exports.ERR_AGENT_NOT_RUNNING = exports.ERR_AGENT_NOT_ENABLED = exports.ERR_TUNNEL_NOT_FOUND = exports.ERR_WHITELIST_IS_NOT_VALID = exports.ERR_USER_AGENT_IS_NOT_VALID = exports.ERR_BA_IS_NOT_VALID = exports.ERR_BA_LOGIN_NOT_PROVIDED = exports.ERR_BA_PASSWORD_NOT_PROVIDED = exports.ERR_CB_THRESHOLD_IS_NOT_VALID = exports.ERR_DOMAIN_IS_NOT_VALID = exports.ERR_CERT_PATH_IS_NOT_VALID = exports.ERR_KEY_PATH_IS_NOT_VALID = exports.ERR_CA_PATH_IS_NOT_VALID = exports.ERR_WRONG_CA = exports.ERR_WRONG_KEY_CERT = exports.ERR_NAME_WITHOUT_ASTERISK = exports.ERR_PORT_IS_NOT_VALID = exports.ERR_REGION_IS_NOT_VALID = exports.ERR_PATH_IS_NOT_DIRECTORY = exports.ERR_DIRECTORY_DOES_NOT_EXISTS = exports.ERR_SUBDOMAIN_IS_TOO_LONG = exports.ERR_SUBDOMAIN_IS_TOO_SHORT = exports.ERR_SUBDOMAIN_IS_NOT_VALID = exports.ERR_TERMINATE_IS_NOT_VALID = exports.ERR_TIMEOUT_IS_NOT_VALID = exports.ERR_TYPE_IS_NOT_VALID = exports.ERR_TARGET_IS_NOT_VALID = exports.ERR_SAVING_AGENT_CONFIG = exports.ERR_AGENT_NOT_REGISTERED = void 0;
|
|
4
|
-
exports.
|
|
5
|
-
exports.
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
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_SENDING_REQUEST = exports.LOG_PROCESSING_SNAPSHOTS = exports.LOG_INSTALLED_BROWSER = 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 = void 0;
|
|
4
|
+
exports.TXT_TUNNEL_STOPPED = exports.TXT_TUNNEL_STARTED = exports.TXT_AGENT_DISABLED = exports.TXT_AGENT_ALREADY_ENABLED = exports.TXT_AGENT_UPDATED = exports.TXT_AGENT_ENABLED = exports.TXT_AGENT_TARGET_DISABLED = exports.TXT_AGENT_TARGET_ENABLED = exports.TXT_AGENT_IS_DISABLED = exports.TXT_AGENT_IS_ENABLED_AND_HAVE_TROUBLES = exports.TXT_AGENT_IS_ENABLED_AND_INITIALIZING = exports.TXT_AGENT_IS_ENABLED_AND_STOPPED = exports.TXT_AGENT_IS_ENABLED_AND_STARTED = exports.TXT_AGENT_RESTARTED = exports.TXT_AGENT_STARTED = exports.TXT_AGENT_STOPPED = exports.ERR_GETTING_COMMIT_DETAILS = exports.ERR_GETTING_BASE_COMMIT = exports.ERR_HEAD_BRANCH_NOT_DEFINED = exports.ERR_BASE_BRANCH_NOT_DEFINED = exports.ERR_INVALID_COMMIT_HASH = exports.ERR_GETTING_COMMIT_HASH = exports.ERR_INVALID_BRANCH_NAME = exports.ERR_GETTING_BRANCH_NAME = exports.ERR_MISSING_HEAD_COMMIT_IN_FILE = exports.ERR_READING_FILE_WITH_HEAD_COMMIT = exports.ERR_MISSING_FILE_WITH_HEAD_COMMIT = exports.ERR_GITHUB_EVENT_PATH_NOT_FOUND = exports.ERR_TEST_EXECUTION = exports.ERR_INVALID_JSON = exports.ERR_INVALID_STORYBOOK_RESPONSE = exports.ERR_INVALID_DEFAULT_SETTINGS_RESPONSE = exports.ERR_INVALID_CLOSE_SESSION_RESPONSE = exports.ERR_INVALID_SNAPSHOTS_RESPONSE = exports.ERR_INVALID_SNAPSHOT_RESPONSE = exports.ERR_RESOURCE_NOT_FOUND = exports.ERR_MISSING_EXEC_COMMAND = exports.ERR_PARSING_STORIES = exports.ERR_UNSUPPORTED_STORYBOOK = exports.ERR_MISSING_STORYBOOK_INDEX_FILE = exports.ERR_WRONG_STORYBOOK_DIRECTORY = exports.ERR_MISSING_BUILD_ID = exports.ERR_MISSING_TOKEN = exports.ERR_CONFIG_CORRUPTED = exports.ERR_WRONG_TOKEN = exports.ERR_TOKEN_NOT_PROVIDED = exports.ERR_CANT_CREATE_DIR_IN_HOME = exports.ERR_CONNECTION_ERROR = exports.ERR_CONNECTION_TIMEOUT = exports.ERR_WRONG_STREAM = void 0;
|
|
5
|
+
exports.DESC_COMMAND_AGENT = exports.DESC_COMMAND_HTTP = exports.DESC_COMMAND_CONFIG = exports.DESC_COMMAND_AGENT_VERSION = exports.DESC_COMMAND_AGENT_UPDATE = exports.DESC_COMMAND_AGENT_TARGET = exports.DESC_COMMAND_AGENT_TUNNEL = exports.DESC_COMMAND_AGENT_STOP = exports.DESC_COMMAND_AGENT_TARGET_DISABLE = exports.DESC_COMMAND_AGENT_TARGET_ENABLE = exports.DESC_COMMAND_AGENT_TARGET_STATUS = exports.DESC_COMMAND_AGENT_STATUS = exports.DESC_COMMAND_AGENT_RESTART = exports.DESC_COMMAND_AGENT_START = exports.DESC_COMMAND_AGENT_INSTALL = exports.DESC_COMMAND_AGENT_UNINSTALL = exports.DESC_COMMAND_AGENT_TUNNEL_TLS = exports.DESC_COMMAND_AGENT_TUNNEL_TCP = exports.DESC_COMMAND_AGENT_TUNNEL_REMOVE = exports.DESC_COMMAND_AGENT_TUNNEL_STATUS = exports.DESC_COMMAND_AGENT_TUNNEL_START = exports.DESC_COMMAND_AGENT_TUNNEL_LIST = exports.DESC_COMMAND_AGENT_TUNNEL_HTTP = exports.DESC_COMMAND_CONFIG_SET = exports.DESC_COMMAND_CONFIG_REMOVE = exports.DESC_COMMAND_CONFIG_GET = exports.DESC_COMMAND_CONFIG_ADD = exports.DESC_COMMAND_CONFIG_SET_WHITELIST = exports.DESC_COMMAND_CONFIG_SET_TOKEN = exports.DESC_COMMAND_CONFIG_SET_TIMEOUT = exports.DESC_COMMAND_CONFIG_SET_REGION = exports.DESC_COMMAND_CONFIG_REMOVE_TUNNEL = exports.DESC_COMMAND_CONFIG_GET_WHITELIST = exports.DESC_COMMAND_CONFIG_GET_TUNNELS = exports.DESC_COMMAND_CONFIG_GET_TUNNEL = exports.DESC_COMMAND_CONFIG_GET_TOKEN = exports.DESC_COMMAND_CONFIG_GET_TIMEOUT = exports.DESC_COMMAND_CONFIG_GET_REGION = exports.DESC_COMMAND_CONFIG_ADD_TLS = exports.DESC_COMMAND_CONFIG_ADD_TCP = exports.DESC_COMMAND_CONFIG_ADD_HTTP = exports.AGENT_FETCH_RETRY = exports.NO_TUNNELS_STARTED = exports.TXT_TUNNEL_ADDED = exports.TXT_TUNNEL_REMOVED = exports.TXT_REGION_SAVED = exports.TXT_TIMEOUT_SAVED = exports.TXT_TOKEN_REMOVED = exports.TXT_TOKEN_SAVED = exports.TXT_WHITELIST_SAVED = void 0;
|
|
6
|
+
exports.OPTION_AGENT_TARGET = exports.OPTION_PASS = 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 = exports.OPTION_HTTP_HOST = exports.OPTION_FORCE = exports.OPTION_TOKEN = exports.OPTION_TIMEOUT = exports.OPTION_DOMAIN = exports.OPTION_FOLLOW = exports.OPTION_SUBDOMAIN = exports.OPTION_SERVE = exports.OPTION_HEADER_USER_AGENT = exports.OPTION_RESPONSE_HEADER = exports.OPTION_HEADER = exports.OPTION_WHITELIST = exports.OPTION_DEFAULT_REGION = exports.OPTION_REGION = exports.TXT_CI_INFO = exports.TXT_STORIES_AMOUNT = exports.TXT_OPENING_TUNNEL = exports.TXT_UPDATING_AGENT = exports.TXT_ENABLING_AGENT = exports.TXT_DISABLING_AGENT = exports.TXT_NEW_AGENT_VERSION = exports.TXT_NEW_CLI_VERSION = exports.TXT_NEW_CLI_DOCKER_VERSION = exports.DESC_COMMAND_VT_EXEC = exports.DESC_COMMAND_VT_STORYBOOK = exports.DESC_COMMAND_VT_CLOSE = exports.DESC_COMMAND_VT = exports.DESC_PROGRAM = exports.DESC_COMMAND_TLS = exports.DESC_COMMAND_TCP = exports.DESC_COMMAND_START = void 0;
|
|
7
|
+
exports.LOG_AGENT_STARTED = exports.LOG_AGENT_SERVER_STARTED = exports.LOG_ERROR_STARTING_AGENT_SERVER = exports.LOG_REQUEST = exports.LOG_SSH_CONNECTION = exports.LOG_WRONG_STREAM = exports.LOG_DETECTED_STREAM = exports.LOG_HTTP2_REQUEST = exports.LOG_HTTP2_CONNECTION = exports.LOG_HTTP1_REQUEST = exports.LOG_HTTP1_CONNECTION = exports.LOG_ERROR = exports.LOG_STOPPING_TUNNEL = exports.LOG_STARTING_TUNNEL = exports.LOG_ENABLING_AGENT_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_SAVING_AGENT_SYSTEM_CONFIG = exports.LOG_ERROR_SAVING_AGENT_CONFIG = exports.LOG_SAVING_AGENT_LOCAL_CONFIG = exports.LOG_SAVING_AGENT_SYSTEM_CONFIG = exports.LOG_SAVING_AGENT_CONFIG = exports.LOG_REGISTERING_AGENT = 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 = void 0;
|
|
8
|
+
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_SENDING_REQUEST = exports.LOG_PROCESSING_SNAPSHOTS = exports.LOG_INSTALLED_BROWSER = 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 = void 0;
|
|
9
9
|
exports.ERR_AGENT_NOT_REGISTERED = 'Agent not registered. Exiting.';
|
|
10
10
|
exports.ERR_SAVING_AGENT_CONFIG = 'Failed saving agent config. Exiting.';
|
|
11
11
|
const ERR_TARGET_IS_NOT_VALID = (target) => `Target '${target}' invalid`;
|
|
@@ -130,6 +130,8 @@ exports.TXT_AGENT_IS_ENABLED_AND_STOPPED = 'Agent is installed & stopped';
|
|
|
130
130
|
exports.TXT_AGENT_IS_ENABLED_AND_INITIALIZING = 'Agent is installed & initializing';
|
|
131
131
|
exports.TXT_AGENT_IS_ENABLED_AND_HAVE_TROUBLES = 'Agent is installed [connection issues detected]';
|
|
132
132
|
exports.TXT_AGENT_IS_DISABLED = 'Agent is not installed';
|
|
133
|
+
exports.TXT_AGENT_TARGET_ENABLED = 'Agent is available as a target';
|
|
134
|
+
exports.TXT_AGENT_TARGET_DISABLED = 'Agent is unavailable as a target';
|
|
133
135
|
exports.TXT_AGENT_ENABLED = 'Agent installed';
|
|
134
136
|
exports.TXT_AGENT_UPDATED = 'Agent updated';
|
|
135
137
|
exports.TXT_AGENT_ALREADY_ENABLED = 'Agent already installed';
|
|
@@ -176,8 +178,12 @@ exports.DESC_COMMAND_AGENT_INSTALL = 'Install bdy as operating system service on
|
|
|
176
178
|
exports.DESC_COMMAND_AGENT_START = 'Starts agent and all tunnels from configuration file';
|
|
177
179
|
exports.DESC_COMMAND_AGENT_RESTART = 'Restarts agent and all tunnels';
|
|
178
180
|
exports.DESC_COMMAND_AGENT_STATUS = 'Show the status of Buddy agent';
|
|
181
|
+
exports.DESC_COMMAND_AGENT_TARGET_STATUS = 'Show the status of Buddy agent as a target';
|
|
182
|
+
exports.DESC_COMMAND_AGENT_TARGET_ENABLE = 'Enable Buddy agent as a target';
|
|
183
|
+
exports.DESC_COMMAND_AGENT_TARGET_DISABLE = 'Disable Buddy agent as a target';
|
|
179
184
|
exports.DESC_COMMAND_AGENT_STOP = 'Stops agent and all tunnels';
|
|
180
185
|
exports.DESC_COMMAND_AGENT_TUNNEL = "Manage agent's tunnels";
|
|
186
|
+
exports.DESC_COMMAND_AGENT_TARGET = "Manage agent's target availability";
|
|
181
187
|
exports.DESC_COMMAND_AGENT_UPDATE = 'Install a new version of Buddy agent';
|
|
182
188
|
exports.DESC_COMMAND_AGENT_VERSION = 'Show the currently installed version';
|
|
183
189
|
exports.DESC_COMMAND_CONFIG = 'The config command gives a quick way to create or update configuration file.';
|
|
@@ -236,6 +242,7 @@ exports.OPTION_AGENT_START = 'start agent right away';
|
|
|
236
242
|
exports.OPTION_AGENT_TOKEN = 'token to authorize existing agent agent or token to add a new agent';
|
|
237
243
|
exports.OPTION_USER = 'OS user name. Default: root (macOS/Linux), LocalSystem (Windows. Provide as DOMAIN\\USER (use `whoami` to get full username)';
|
|
238
244
|
exports.OPTION_PASS = 'password of the user. Only set for Windows';
|
|
245
|
+
exports.OPTION_AGENT_TARGET = 'makes the agent available as a target';
|
|
239
246
|
exports.OPTION_AGENT_PORT = 'agent API port';
|
|
240
247
|
exports.OPTION_AGENT_DEBUG = 'turns on debug mode';
|
|
241
248
|
exports.OPTION_EXEC_COMMAND = 'Test runner command';
|
|
@@ -273,6 +280,8 @@ exports.LOG_ERROR_WHILE_REFRESHING_AGENT = 'Error while refreshing agent';
|
|
|
273
280
|
const LOG_TUNNEL_REGISTERED = (id) => `Tunnel registered with id '${id}'`;
|
|
274
281
|
exports.LOG_TUNNEL_REGISTERED = LOG_TUNNEL_REGISTERED;
|
|
275
282
|
exports.LOG_REMOVING_TUNNEL = 'Removing tunnel...';
|
|
283
|
+
exports.LOG_DISABLING_AGENT_TARGET = 'Disabling agent as target';
|
|
284
|
+
exports.LOG_ENABLING_AGENT_TARGET = 'Enabling agent as target';
|
|
276
285
|
const LOG_STARTING_TUNNEL = (id) => `Starting tunnel '${id}'`;
|
|
277
286
|
exports.LOG_STARTING_TUNNEL = LOG_STARTING_TUNNEL;
|
|
278
287
|
const LOG_STOPPING_TUNNEL = (id) => `Stopping tunnel '${id}'`;
|