bdy 1.10.14 → 1.11.0-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/bin/cli.js +1 -1
- package/distTs/package.json +1 -1
- package/distTs/src/agent/agent.js +302 -0
- package/distTs/src/agent/manager.js +41 -41
- package/distTs/src/agent/socket/client.js +159 -0
- package/distTs/src/agent/socket/tunnel.js +3 -3
- package/distTs/src/agent/wait.js +2 -2
- package/distTs/src/command/agent/disable.js +1 -1
- package/distTs/src/command/agent/enable.js +1 -1
- package/distTs/src/command/agent/install.js +45 -45
- package/distTs/src/command/agent/restart.js +8 -8
- package/distTs/src/command/agent/start.js +8 -8
- package/distTs/src/command/agent/status.js +15 -15
- package/distTs/src/command/agent/stop.js +8 -8
- package/distTs/src/command/agent/target/disable.js +1 -1
- package/distTs/src/command/agent/target/enable.js +1 -1
- package/distTs/src/command/agent/target/status.js +1 -1
- package/distTs/src/command/agent/tunnel/http.js +18 -18
- package/distTs/src/command/agent/tunnel/list.js +7 -7
- package/distTs/src/command/agent/tunnel/remove.js +9 -9
- package/distTs/src/command/agent/tunnel/start.js +14 -14
- package/distTs/src/command/agent/tunnel/status.js +11 -11
- package/distTs/src/command/agent/tunnel/tcp.js +19 -19
- package/distTs/src/command/agent/tunnel/tls.js +17 -17
- package/distTs/src/command/agent/tunnel.js +16 -16
- package/distTs/src/command/agent/uninstall.js +13 -13
- package/distTs/src/command/agent/update.js +12 -12
- package/distTs/src/command/agent/version.js +6 -6
- package/distTs/src/command/agent.js +18 -18
- package/distTs/src/command/config/add/http.js +15 -15
- package/distTs/src/command/config/add/tcp.js +15 -15
- package/distTs/src/command/config/add/tls.js +15 -15
- package/distTs/src/command/config/add.js +8 -8
- package/distTs/src/command/config/get/region.js +5 -5
- package/distTs/src/command/config/get/timeout.js +5 -5
- package/distTs/src/command/config/get/token.js +5 -5
- package/distTs/src/command/config/get/tunnel.js +9 -9
- package/distTs/src/command/config/get/tunnels.js +6 -6
- package/distTs/src/command/config/get/whitelist.js +5 -5
- package/distTs/src/command/config/get.js +14 -14
- package/distTs/src/command/config/remove/tunnel.js +9 -9
- package/distTs/src/command/config/remove.js +4 -4
- package/distTs/src/command/config/set/region.js +8 -8
- package/distTs/src/command/config/set/timeout.js +9 -9
- package/distTs/src/command/config/set/token.js +7 -7
- package/distTs/src/command/config/set/whitelist.js +8 -8
- package/distTs/src/command/config/set.js +10 -10
- package/distTs/src/command/pre.js +14 -14
- package/distTs/src/command/tunnel/config.js +17 -0
- package/distTs/src/command/tunnel/http.js +30 -0
- package/distTs/src/command/tunnel/start.js +28 -0
- package/distTs/src/command/tunnel/tcp.js +30 -0
- package/distTs/src/command/tunnel/tls.js +30 -0
- package/distTs/src/command/tunnel.js +19 -0
- package/distTs/src/command/ut/upload.js +6 -6
- package/distTs/src/command/ut.js +3 -2
- package/distTs/src/command/version.js +4 -4
- package/distTs/src/command/vt/close.js +4 -4
- package/distTs/src/command/vt/compare.js +16 -16
- package/distTs/src/command/vt/exec.js +12 -12
- package/distTs/src/command/vt/installBrowser.js +2 -2
- package/distTs/src/command/vt/scrap.js +17 -17
- package/distTs/src/command/vt/storybook.js +8 -8
- package/distTs/src/command/vt.js +5 -4
- package/distTs/src/index.js +12 -20
- package/distTs/src/input.js +38 -38
- package/distTs/src/logger.js +2 -2
- package/distTs/src/output.js +14 -14
- package/distTs/src/texts.js +5 -4
- package/distTs/src/tunnel/agent.js +3 -3
- package/distTs/src/tunnel/api/agent.js +99 -0
- package/distTs/src/tunnel/api/buddy.js +139 -0
- package/distTs/src/tunnel/cfg.js +234 -0
- package/distTs/src/tunnel/http/log.js +3 -3
- package/distTs/src/tunnel/http.js +29 -29
- package/distTs/src/tunnel/identification.js +13 -13
- package/distTs/src/tunnel/latency.js +3 -3
- package/distTs/src/tunnel/output/interactive/tunnel.js +860 -0
- package/distTs/src/tunnel/output/noninteractive/agent/tunnels.js +43 -0
- package/distTs/src/tunnel/output/noninteractive/config/tunnel.js +65 -0
- package/distTs/src/tunnel/output/noninteractive/config/tunnels.js +18 -0
- package/distTs/src/tunnel/output/noninteractive/tunnel.js +59 -0
- package/distTs/src/tunnel/server/cert.js +52 -0
- package/distTs/src/tunnel/server/http1.js +75 -0
- package/distTs/src/tunnel/server/http2.js +78 -0
- package/distTs/src/tunnel/server/sftp.js +497 -0
- package/distTs/src/tunnel/server/ssh.js +446 -0
- package/distTs/src/tunnel/server/tls.js +41 -0
- package/distTs/src/tunnel/ssh/client.js +197 -0
- package/distTs/src/tunnel/tcp.js +3 -3
- package/distTs/src/tunnel/tunnel.js +656 -0
- package/distTs/src/utils.js +2 -2
- package/distTs/src/visualTest/ci.js +10 -10
- package/distTs/src/visualTest/context.js +4 -4
- package/distTs/src/visualTest/requests.js +71 -71
- package/distTs/src/visualTest/resources.js +5 -5
- package/distTs/src/visualTest/server.js +9 -9
- package/distTs/src/visualTest/snapshots.js +18 -18
- package/distTs/src/visualTest/validation.js +3 -3
- package/package.json +1 -1
|
@@ -0,0 +1,159 @@
|
|
|
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 https_1 = require("https");
|
|
7
|
+
const events_1 = __importDefault(require("events"));
|
|
8
|
+
const logger_1 = __importDefault(require("../../logger"));
|
|
9
|
+
const texts_1 = require("../../texts");
|
|
10
|
+
const utils_1 = require("../../utils");
|
|
11
|
+
const socket_io_client_1 = require("socket.io-client");
|
|
12
|
+
const MAX_REQUESTS_SYNC_WINDOW = 30000;
|
|
13
|
+
const MAX_REQUESTS_SYNC_IN_WINDOW = 100;
|
|
14
|
+
class AgentSocketClient extends events_1.default {
|
|
15
|
+
fetch(activate = true, action = null, disabled = null, resetFirstHeard = false, tunnels) {
|
|
16
|
+
this.socket.emit('fetchTunnelAgent', {
|
|
17
|
+
id: this.id,
|
|
18
|
+
token: this.token,
|
|
19
|
+
hostname: this.hostname,
|
|
20
|
+
platform: this.platform,
|
|
21
|
+
version: this.version,
|
|
22
|
+
activate,
|
|
23
|
+
action,
|
|
24
|
+
disabled,
|
|
25
|
+
resetFirstHeard,
|
|
26
|
+
tunnels,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
update(activate, tunnels, force = false) {
|
|
30
|
+
const now = Date.now();
|
|
31
|
+
// nie robimy update jak byl mniej niz 5s temu
|
|
32
|
+
if (!force && this.lastUpdate && now - this.lastUpdate < 5000)
|
|
33
|
+
return;
|
|
34
|
+
this.lastUpdate = now;
|
|
35
|
+
this.socket.emit('updateTunnelAgent', {
|
|
36
|
+
id: this.id,
|
|
37
|
+
token: this.token,
|
|
38
|
+
hostname: this.hostname,
|
|
39
|
+
platform: this.platform,
|
|
40
|
+
version: this.version,
|
|
41
|
+
activate,
|
|
42
|
+
tunnels,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
emitRequest(tunnelId, logRequest) {
|
|
46
|
+
this.socket.emit('tunnelRequest', {
|
|
47
|
+
id: this.id,
|
|
48
|
+
token: this.token,
|
|
49
|
+
tunnelId,
|
|
50
|
+
request: logRequest.toSocket(),
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
request(tunnelId, logRequest) {
|
|
54
|
+
if (this.tunnelRequests > MAX_REQUESTS_SYNC_IN_WINDOW)
|
|
55
|
+
return;
|
|
56
|
+
this.tunnelRequests += 1;
|
|
57
|
+
logRequest.once(utils_1.EVENT_TUNNEL_HTTP_NEW_RESPONSE_END, () => {
|
|
58
|
+
this.emitRequest(tunnelId, logRequest);
|
|
59
|
+
});
|
|
60
|
+
this.emitRequest(tunnelId, logRequest);
|
|
61
|
+
}
|
|
62
|
+
onSyncAgent(data, action) {
|
|
63
|
+
this.emit(utils_1.SOCKET_IO_EVENT_AGENT, data, action);
|
|
64
|
+
}
|
|
65
|
+
onSyncTunnel(data, action) {
|
|
66
|
+
this.emit(utils_1.SOCKET_IO_EVENT_TUNNEL, data, action);
|
|
67
|
+
}
|
|
68
|
+
onSync(data) {
|
|
69
|
+
try {
|
|
70
|
+
const json = JSON.parse(data);
|
|
71
|
+
if (json.payloadType === 'TunnelAgentFront')
|
|
72
|
+
this.onSyncAgent(json.payload, json.action);
|
|
73
|
+
else if (json.payloadType === 'TunnelFront')
|
|
74
|
+
this.onSyncTunnel(json.payload, json.action);
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// do nothing
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
connect(atOnce) {
|
|
81
|
+
logger_1.default.debug('socket connect');
|
|
82
|
+
if (atOnce && this.socket && !this.socket.connected) {
|
|
83
|
+
this.socket.connect();
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
setTimeout(() => {
|
|
87
|
+
if (this.socket && !this.socket.connected)
|
|
88
|
+
this.socket.connect();
|
|
89
|
+
}, 3000);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
destroy() {
|
|
93
|
+
if (this.socket) {
|
|
94
|
+
this.socket.removeAllListeners();
|
|
95
|
+
this.socket.disconnect();
|
|
96
|
+
this.socket = null;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
constructor(host, id, token) {
|
|
100
|
+
super();
|
|
101
|
+
this.id = id;
|
|
102
|
+
this.token = token;
|
|
103
|
+
this.connected = false;
|
|
104
|
+
this.hostname = (0, utils_1.getHostname)();
|
|
105
|
+
this.platform = (0, utils_1.getPlatform)();
|
|
106
|
+
this.version = (0, utils_1.getVersion)();
|
|
107
|
+
this.lastUpdate = null;
|
|
108
|
+
this.tunnelRequests = 0;
|
|
109
|
+
setInterval(() => {
|
|
110
|
+
this.tunnelRequests = 0;
|
|
111
|
+
}, MAX_REQUESTS_SYNC_WINDOW);
|
|
112
|
+
this.socket = (0, socket_io_client_1.io)(host, {
|
|
113
|
+
forceNew: true,
|
|
114
|
+
autoConnect: false,
|
|
115
|
+
autoUnref: true,
|
|
116
|
+
forceBase64: true,
|
|
117
|
+
transports: ['websocket'],
|
|
118
|
+
reconnection: false,
|
|
119
|
+
rejectUnauthorized: false,
|
|
120
|
+
agent: new https_1.Agent({
|
|
121
|
+
rejectUnauthorized: false,
|
|
122
|
+
}),
|
|
123
|
+
maxHttpBufferSize: 3e6,
|
|
124
|
+
extraHeaders: {
|
|
125
|
+
cookie: 'a=b',
|
|
126
|
+
},
|
|
127
|
+
});
|
|
128
|
+
this.socket.on('connect', () => {
|
|
129
|
+
this.connected = true;
|
|
130
|
+
logger_1.default.info(texts_1.LOG_SOCKET_CONNECTED);
|
|
131
|
+
this.emit(utils_1.SOCKET_IO_EVENT_CONNECTED);
|
|
132
|
+
this.socket.emit('joinTunnelAgent', {
|
|
133
|
+
id: this.id,
|
|
134
|
+
token: this.token,
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
this.socket.on('disconnect', () => {
|
|
138
|
+
this.connected = false;
|
|
139
|
+
logger_1.default.info(texts_1.LOG_SOCKET_DISCONNECTED);
|
|
140
|
+
this.emit(utils_1.SOCKET_IO_EVENT_DISCONNECTED);
|
|
141
|
+
this.connect();
|
|
142
|
+
});
|
|
143
|
+
this.socket.on('connect_error', () => {
|
|
144
|
+
logger_1.default.debug('socket error');
|
|
145
|
+
this.connect();
|
|
146
|
+
});
|
|
147
|
+
this.socket.on('fetchTunnelAgentSuccess', (data) => {
|
|
148
|
+
logger_1.default.debug('Socket fetch success');
|
|
149
|
+
this.emit(utils_1.SOCKET_IO_EVENT_FETCH_SUCCESS, data);
|
|
150
|
+
});
|
|
151
|
+
this.socket.on('fetchTunnelAgentFailed', (code) => {
|
|
152
|
+
logger_1.default.debug('Socket fetch failed');
|
|
153
|
+
this.emit(utils_1.SOCKET_IO_EVENT_FETCH_FAILED, (0, utils_1.apiErrorCodeToClass)(code, host));
|
|
154
|
+
});
|
|
155
|
+
this.socket.on('sync', (data) => this.onSync(data));
|
|
156
|
+
this.connect(true);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
exports.default = AgentSocketClient;
|
|
@@ -3,7 +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
|
|
6
|
+
const texts_1 = require("../../texts");
|
|
7
7
|
const events_1 = __importDefault(require("events"));
|
|
8
8
|
const utils_1 = require("../../utils");
|
|
9
9
|
class AgentSocketTunnel extends events_1.default {
|
|
@@ -199,13 +199,13 @@ class AgentSocketTunnel extends events_1.default {
|
|
|
199
199
|
else if (this.closed) {
|
|
200
200
|
clearInterval(ts1);
|
|
201
201
|
clearTimeout(ts2);
|
|
202
|
-
reject(new Error((0,
|
|
202
|
+
reject(new Error((0, texts_1.ERR_TUNNEL_NOT_FOUND)(this.id)));
|
|
203
203
|
}
|
|
204
204
|
}, 100);
|
|
205
205
|
const ts2 = setTimeout(() => {
|
|
206
206
|
clearInterval(ts1);
|
|
207
207
|
clearTimeout(ts2);
|
|
208
|
-
reject(new Error((0,
|
|
208
|
+
reject(new Error((0, texts_1.ERR_TUNNEL_NOT_FOUND)(this.id)));
|
|
209
209
|
}, 3000);
|
|
210
210
|
});
|
|
211
211
|
}
|
package/distTs/src/agent/wait.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
3
|
+
const utils_1 = require("../utils");
|
|
4
4
|
const waitUntilAgentEnabled = async (api, timeout, onTimeout, onSuccess) => {
|
|
5
5
|
let s;
|
|
6
6
|
try {
|
|
@@ -16,7 +16,7 @@ const waitUntilAgentEnabled = async (api, timeout, onTimeout, onSuccess) => {
|
|
|
16
16
|
onTimeout();
|
|
17
17
|
}
|
|
18
18
|
else {
|
|
19
|
-
await (0,
|
|
19
|
+
await (0, utils_1.sleep)(1000);
|
|
20
20
|
return waitUntilAgentEnabled(api, timeout - 1000, onTimeout, onSuccess);
|
|
21
21
|
}
|
|
22
22
|
};
|
|
@@ -7,7 +7,7 @@ const utils_1 = require("../../utils");
|
|
|
7
7
|
const texts_1 = require("../../texts");
|
|
8
8
|
const manager_1 = __importDefault(require("../../agent/manager"));
|
|
9
9
|
const output_1 = __importDefault(require("../../output"));
|
|
10
|
-
const agent_1 = __importDefault(require("../../api/agent"));
|
|
10
|
+
const agent_1 = __importDefault(require("../../tunnel/api/agent"));
|
|
11
11
|
const commandAgentDisable = (0, utils_1.newCommand)('disable', texts_1.DESC_COMMAND_AGENT_DISABLE);
|
|
12
12
|
commandAgentDisable.action(async () => {
|
|
13
13
|
const isEnabled = await manager_1.default.system.isEnabled();
|
|
@@ -7,7 +7,7 @@ const utils_1 = require("../../utils");
|
|
|
7
7
|
const texts_1 = require("../../texts");
|
|
8
8
|
const manager_1 = __importDefault(require("../../agent/manager"));
|
|
9
9
|
const output_1 = __importDefault(require("../../output"));
|
|
10
|
-
const agent_1 = __importDefault(require("../../api/agent"));
|
|
10
|
+
const agent_1 = __importDefault(require("../../tunnel/api/agent"));
|
|
11
11
|
const commandAgentEnable = (0, utils_1.newCommand)('enable', texts_1.DESC_COMMAND_AGENT_ENABLE);
|
|
12
12
|
commandAgentEnable.action(async () => {
|
|
13
13
|
const isEnabled = await manager_1.default.system.isEnabled();
|
|
@@ -3,115 +3,115 @@ 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
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const agent_1 = __importDefault(require("../../api/agent"));
|
|
13
|
-
const
|
|
6
|
+
const output_1 = __importDefault(require("../../output"));
|
|
7
|
+
const input_1 = __importDefault(require("../../input"));
|
|
8
|
+
const texts_1 = require("../../texts");
|
|
9
|
+
const cfg_1 = __importDefault(require("../../tunnel/cfg"));
|
|
10
|
+
const manager_1 = __importDefault(require("../../agent/manager"));
|
|
11
|
+
const buddy_1 = __importDefault(require("../../tunnel/api/buddy"));
|
|
12
|
+
const agent_1 = __importDefault(require("../../tunnel/api/agent"));
|
|
13
|
+
const wait_1 = __importDefault(require("../../agent/wait"));
|
|
14
14
|
const utils_1 = require("../../utils");
|
|
15
15
|
const removeAllAndExit = async (txt, id, host, token) => {
|
|
16
16
|
try {
|
|
17
|
-
await
|
|
17
|
+
await manager_1.default.system.disable();
|
|
18
18
|
}
|
|
19
19
|
catch {
|
|
20
20
|
// do nothing
|
|
21
21
|
}
|
|
22
22
|
try {
|
|
23
|
-
await
|
|
23
|
+
await buddy_1.default.unregister(id, host, token);
|
|
24
24
|
}
|
|
25
25
|
catch {
|
|
26
26
|
// do nothing
|
|
27
27
|
}
|
|
28
28
|
try {
|
|
29
|
-
|
|
29
|
+
manager_1.default.system.clearSystemFiles();
|
|
30
30
|
}
|
|
31
31
|
catch {
|
|
32
32
|
// do nothing
|
|
33
33
|
}
|
|
34
34
|
try {
|
|
35
|
-
|
|
35
|
+
manager_1.default.system.clearAgentFiles();
|
|
36
36
|
}
|
|
37
37
|
catch {
|
|
38
38
|
// do nothing
|
|
39
39
|
}
|
|
40
|
-
|
|
40
|
+
output_1.default.exitError(txt);
|
|
41
41
|
};
|
|
42
|
-
const commandAgentInstall = (0, utils_1.newCommand)('install',
|
|
43
|
-
commandAgentInstall.option('-s, --start',
|
|
44
|
-
commandAgentInstall.option('-i, --id <id>',
|
|
45
|
-
commandAgentInstall.option('-t, --token <token>',
|
|
46
|
-
commandAgentInstall.option('-p, --port <port>',
|
|
47
|
-
commandAgentInstall.option('-u, --user <user>',
|
|
48
|
-
commandAgentInstall.option('--pass <password>',
|
|
49
|
-
commandAgentInstall.option('--target',
|
|
50
|
-
commandAgentInstall.option('-d, --debug',
|
|
42
|
+
const commandAgentInstall = (0, utils_1.newCommand)('install', texts_1.DESC_COMMAND_AGENT_INSTALL);
|
|
43
|
+
commandAgentInstall.option('-s, --start', texts_1.OPTION_AGENT_START);
|
|
44
|
+
commandAgentInstall.option('-i, --id <id>', texts_1.OPTION_AGENT_ID);
|
|
45
|
+
commandAgentInstall.option('-t, --token <token>', texts_1.OPTION_AGENT_TOKEN);
|
|
46
|
+
commandAgentInstall.option('-p, --port <port>', texts_1.OPTION_AGENT_PORT, '7456');
|
|
47
|
+
commandAgentInstall.option('-u, --user <user>', texts_1.OPTION_USER);
|
|
48
|
+
commandAgentInstall.option('--pass <password>', texts_1.OPTION_PASS);
|
|
49
|
+
commandAgentInstall.option('--target', texts_1.OPTION_AGENT_TARGET);
|
|
50
|
+
commandAgentInstall.option('-d, --debug', texts_1.OPTION_AGENT_DEBUG);
|
|
51
51
|
commandAgentInstall.action(async (options) => {
|
|
52
|
-
const hasAdminRights = await
|
|
52
|
+
const hasAdminRights = await manager_1.default.system.hasAdminRights();
|
|
53
53
|
if (!hasAdminRights) {
|
|
54
|
-
|
|
54
|
+
output_1.default.exitError(texts_1.ERR_AGENT_ADMIN_RIGHTS);
|
|
55
55
|
}
|
|
56
|
-
const isSupported = await
|
|
56
|
+
const isSupported = await manager_1.default.system.isSupported();
|
|
57
57
|
if (!isSupported) {
|
|
58
|
-
|
|
58
|
+
output_1.default.exitError(texts_1.ERR_AGENT_NOT_SUPPORTED);
|
|
59
59
|
}
|
|
60
|
-
const isEnabled = await
|
|
60
|
+
const isEnabled = await manager_1.default.system.isEnabled();
|
|
61
61
|
if (isEnabled) {
|
|
62
|
-
|
|
62
|
+
output_1.default.exitSuccess(texts_1.TXT_AGENT_ALREADY_ENABLED);
|
|
63
63
|
}
|
|
64
64
|
let id;
|
|
65
65
|
let token;
|
|
66
66
|
let agent;
|
|
67
|
-
let port =
|
|
67
|
+
let port = input_1.default.port(options.port);
|
|
68
68
|
const target = !!options.target;
|
|
69
69
|
if (options.id && options.token) {
|
|
70
70
|
// if id & token passed set as it is
|
|
71
71
|
id = options.id;
|
|
72
72
|
token = options.token;
|
|
73
73
|
try {
|
|
74
|
-
agent = await
|
|
74
|
+
agent = await buddy_1.default.fetchAgent(id, cfg_1.default.getTokenHost(), token);
|
|
75
75
|
}
|
|
76
76
|
catch {
|
|
77
|
-
|
|
77
|
+
output_1.default.exitError(texts_1.ERR_AGENT_NOT_FOUND);
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
else if (options.token) {
|
|
81
81
|
// set global token if passed
|
|
82
|
-
|
|
82
|
+
cfg_1.default.setToken(options.token);
|
|
83
83
|
}
|
|
84
|
-
let host =
|
|
84
|
+
let host = cfg_1.default.getTokenHost();
|
|
85
85
|
if (!agent) {
|
|
86
|
-
agent = await
|
|
87
|
-
|
|
86
|
+
agent = await buddy_1.default.register(true, target, host, cfg_1.default.getToken(), (region) => {
|
|
87
|
+
cfg_1.default.setRegionIfNotSet(region);
|
|
88
88
|
});
|
|
89
89
|
id = agent.id;
|
|
90
90
|
token = agent.token;
|
|
91
91
|
agent.destroy();
|
|
92
92
|
agent = null;
|
|
93
93
|
}
|
|
94
|
-
const saved =
|
|
94
|
+
const saved = manager_1.default.system.saveSystemConfig(id, host, token, port);
|
|
95
95
|
if (!saved) {
|
|
96
|
-
await removeAllAndExit(
|
|
96
|
+
await removeAllAndExit(texts_1.ERR_SWW_AGENT_ENABLING, id, host, token);
|
|
97
97
|
}
|
|
98
|
-
|
|
99
|
-
await
|
|
98
|
+
manager_1.default.system.clearAgentFiles();
|
|
99
|
+
await output_1.default.spinner(texts_1.TXT_ENABLING_AGENT);
|
|
100
100
|
if (process.env.DEBUG === '1') {
|
|
101
|
-
|
|
101
|
+
manager_1.default.start(id, host, token, port, !!options.start);
|
|
102
102
|
return;
|
|
103
103
|
}
|
|
104
104
|
try {
|
|
105
|
-
await
|
|
105
|
+
await manager_1.default.system.enable(id, host, token, port, !!options.start, options.user, options.pass, !!options.debug);
|
|
106
106
|
}
|
|
107
107
|
catch {
|
|
108
|
-
await removeAllAndExit(
|
|
108
|
+
await removeAllAndExit(texts_1.ERR_SWW_AGENT_ENABLING, id, host, token);
|
|
109
109
|
}
|
|
110
110
|
const api = new agent_1.default(port);
|
|
111
|
-
await (0,
|
|
112
|
-
removeAllAndExit(
|
|
111
|
+
await (0, wait_1.default)(api, 15000, () => {
|
|
112
|
+
removeAllAndExit(texts_1.ERR_SWW_AGENT_ENABLING, id, host, token);
|
|
113
113
|
}, () => {
|
|
114
|
-
|
|
114
|
+
output_1.default.exitSuccess(texts_1.TXT_AGENT_ENABLED);
|
|
115
115
|
});
|
|
116
116
|
});
|
|
117
117
|
exports.default = commandAgentInstall;
|
|
@@ -3,25 +3,25 @@ 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
|
|
7
|
-
const
|
|
8
|
-
const
|
|
6
|
+
const output_1 = __importDefault(require("../../output"));
|
|
7
|
+
const texts_1 = require("../../texts");
|
|
8
|
+
const agent_1 = __importDefault(require("../../tunnel/api/agent"));
|
|
9
9
|
const manager_1 = __importDefault(require("../../agent/manager"));
|
|
10
10
|
const utils_1 = require("../../utils");
|
|
11
|
-
const commandAgentRestart = (0, utils_1.newCommand)('restart',
|
|
11
|
+
const commandAgentRestart = (0, utils_1.newCommand)('restart', texts_1.DESC_COMMAND_AGENT_RESTART);
|
|
12
12
|
commandAgentRestart.action(async () => {
|
|
13
13
|
const isEnabled = await manager_1.default.system.isEnabled();
|
|
14
14
|
if (!isEnabled) {
|
|
15
|
-
|
|
15
|
+
output_1.default.exitError(texts_1.ERR_AGENT_NOT_ENABLED);
|
|
16
16
|
}
|
|
17
17
|
try {
|
|
18
18
|
const json = manager_1.default.system.loadSystemConfig();
|
|
19
|
-
const api = new
|
|
19
|
+
const api = new agent_1.default(json.port);
|
|
20
20
|
await api.restartAgent();
|
|
21
|
-
|
|
21
|
+
output_1.default.exitSuccess(texts_1.TXT_AGENT_RESTARTED);
|
|
22
22
|
}
|
|
23
23
|
catch (err) {
|
|
24
|
-
|
|
24
|
+
output_1.default.exitError(err);
|
|
25
25
|
}
|
|
26
26
|
});
|
|
27
27
|
exports.default = commandAgentRestart;
|
|
@@ -3,26 +3,26 @@ 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
|
|
7
|
-
const texts_js_1 = require("../../texts.js");
|
|
8
|
-
const agent_js_1 = __importDefault(require("../../api/agent.js"));
|
|
6
|
+
const output_1 = __importDefault(require("../../output"));
|
|
9
7
|
const texts_1 = require("../../texts");
|
|
8
|
+
const agent_1 = __importDefault(require("../../tunnel/api/agent"));
|
|
9
|
+
const texts_2 = require("../../texts");
|
|
10
10
|
const manager_1 = __importDefault(require("../../agent/manager"));
|
|
11
11
|
const utils_1 = require("../../utils");
|
|
12
|
-
const commandAgentStart = (0, utils_1.newCommand)('start',
|
|
12
|
+
const commandAgentStart = (0, utils_1.newCommand)('start', texts_1.DESC_COMMAND_AGENT_START);
|
|
13
13
|
commandAgentStart.action(async () => {
|
|
14
14
|
const isEnabled = await manager_1.default.system.isEnabled();
|
|
15
15
|
if (!isEnabled) {
|
|
16
|
-
|
|
16
|
+
output_1.default.exitError(texts_2.ERR_AGENT_NOT_ENABLED);
|
|
17
17
|
}
|
|
18
18
|
try {
|
|
19
19
|
const json = manager_1.default.system.loadSystemConfig();
|
|
20
|
-
const api = new
|
|
20
|
+
const api = new agent_1.default(json.port);
|
|
21
21
|
await api.startAgent();
|
|
22
|
-
|
|
22
|
+
output_1.default.exitSuccess(texts_1.TXT_AGENT_STARTED);
|
|
23
23
|
}
|
|
24
24
|
catch (err) {
|
|
25
|
-
|
|
25
|
+
output_1.default.exitError(err);
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
28
|
exports.default = commandAgentStart;
|
|
@@ -3,33 +3,33 @@ 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
|
|
7
|
-
const texts_js_1 = require("../../texts.js");
|
|
8
|
-
const utils_js_1 = require("../../utils.js");
|
|
9
|
-
const manager_1 = __importDefault(require("../../agent/manager"));
|
|
6
|
+
const output_1 = __importDefault(require("../../output"));
|
|
10
7
|
const texts_1 = require("../../texts");
|
|
11
8
|
const utils_1 = require("../../utils");
|
|
12
|
-
const
|
|
9
|
+
const manager_1 = __importDefault(require("../../agent/manager"));
|
|
10
|
+
const texts_2 = require("../../texts");
|
|
11
|
+
const utils_2 = require("../../utils");
|
|
12
|
+
const commandAgentStatus = (0, utils_2.newCommand)('status', texts_1.DESC_COMMAND_AGENT_STATUS);
|
|
13
13
|
commandAgentStatus.action(async () => {
|
|
14
14
|
const isEnabled = await manager_1.default.system.isEnabled();
|
|
15
15
|
if (!isEnabled) {
|
|
16
|
-
|
|
16
|
+
output_1.default.exitError(texts_1.ERR_AGENT_NOT_ENABLED);
|
|
17
17
|
}
|
|
18
18
|
if (!commandAgentStatus.agentStatus) {
|
|
19
|
-
|
|
19
|
+
output_1.default.exitError(texts_2.ERR_AGENT_NOT_RUNNING);
|
|
20
20
|
}
|
|
21
|
-
if (commandAgentStatus.agentStatus.status ===
|
|
22
|
-
|
|
21
|
+
if (commandAgentStatus.agentStatus.status === utils_1.AGENT_STATUS_INITIALIZING) {
|
|
22
|
+
output_1.default.exitError(texts_1.TXT_AGENT_IS_ENABLED_AND_INITIALIZING);
|
|
23
23
|
}
|
|
24
|
-
if (commandAgentStatus.agentStatus.status ===
|
|
25
|
-
|
|
24
|
+
if (commandAgentStatus.agentStatus.status === utils_1.AGENT_STATUS_FETCH_FAILED) {
|
|
25
|
+
output_1.default.exitError(texts_1.TXT_AGENT_IS_ENABLED_AND_HAVE_TROUBLES);
|
|
26
26
|
}
|
|
27
|
-
if (commandAgentStatus.agentStatus.status !==
|
|
28
|
-
|
|
27
|
+
if (commandAgentStatus.agentStatus.status !== utils_1.AGENT_STATUS_ENABLED) {
|
|
28
|
+
output_1.default.exitError(texts_1.TXT_AGENT_IS_DISABLED);
|
|
29
29
|
}
|
|
30
30
|
if (commandAgentStatus.agentStatus.started) {
|
|
31
|
-
|
|
31
|
+
output_1.default.exitSuccess(texts_1.TXT_AGENT_IS_ENABLED_AND_STARTED);
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
output_1.default.exitError(texts_1.TXT_AGENT_IS_ENABLED_AND_STOPPED);
|
|
34
34
|
});
|
|
35
35
|
exports.default = commandAgentStatus;
|
|
@@ -6,23 +6,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const utils_1 = require("../../utils");
|
|
7
7
|
const texts_1 = require("../../texts");
|
|
8
8
|
const manager_1 = __importDefault(require("../../agent/manager"));
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const commandAgentStop = (0, utils_1.newCommand)('stop',
|
|
9
|
+
const agent_1 = __importDefault(require("../../tunnel/api/agent"));
|
|
10
|
+
const texts_2 = require("../../texts");
|
|
11
|
+
const output_1 = __importDefault(require("../../output"));
|
|
12
|
+
const commandAgentStop = (0, utils_1.newCommand)('stop', texts_2.DESC_COMMAND_AGENT_STOP);
|
|
13
13
|
commandAgentStop.action(async () => {
|
|
14
14
|
const isEnabled = await manager_1.default.system.isEnabled();
|
|
15
15
|
if (!isEnabled) {
|
|
16
|
-
|
|
16
|
+
output_1.default.exitError(texts_1.ERR_AGENT_NOT_ENABLED);
|
|
17
17
|
}
|
|
18
18
|
try {
|
|
19
19
|
const json = manager_1.default.system.loadSystemConfig();
|
|
20
|
-
const api = new
|
|
20
|
+
const api = new agent_1.default(json.port);
|
|
21
21
|
await api.stopAgent();
|
|
22
|
-
|
|
22
|
+
output_1.default.exitSuccess(texts_2.TXT_AGENT_STOPPED);
|
|
23
23
|
}
|
|
24
24
|
catch (err) {
|
|
25
|
-
|
|
25
|
+
output_1.default.exitError(err);
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
28
|
exports.default = commandAgentStop;
|
|
@@ -7,7 +7,7 @@ const utils_1 = require("../../../utils");
|
|
|
7
7
|
const texts_1 = require("../../../texts");
|
|
8
8
|
const manager_1 = __importDefault(require("../../../agent/manager"));
|
|
9
9
|
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
-
const agent_1 = __importDefault(require("../../../api/agent"));
|
|
10
|
+
const agent_1 = __importDefault(require("../../../tunnel/api/agent"));
|
|
11
11
|
const commandAgentTargetDisable = (0, utils_1.newCommand)('disable', texts_1.DESC_COMMAND_AGENT_TARGET_DISABLE);
|
|
12
12
|
commandAgentTargetDisable.action(async () => {
|
|
13
13
|
const isEnabled = await manager_1.default.system.isEnabled();
|
|
@@ -7,7 +7,7 @@ const utils_1 = require("../../../utils");
|
|
|
7
7
|
const texts_1 = require("../../../texts");
|
|
8
8
|
const manager_1 = __importDefault(require("../../../agent/manager"));
|
|
9
9
|
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
-
const agent_1 = __importDefault(require("../../../api/agent"));
|
|
10
|
+
const agent_1 = __importDefault(require("../../../tunnel/api/agent"));
|
|
11
11
|
const commandAgentTargetEnable = (0, utils_1.newCommand)('enable', texts_1.DESC_COMMAND_AGENT_TARGET_ENABLE);
|
|
12
12
|
commandAgentTargetEnable.action(async () => {
|
|
13
13
|
const isEnabled = await manager_1.default.system.isEnabled();
|
|
@@ -7,7 +7,7 @@ const utils_1 = require("../../../utils");
|
|
|
7
7
|
const texts_1 = require("../../../texts");
|
|
8
8
|
const manager_1 = __importDefault(require("../../../agent/manager"));
|
|
9
9
|
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
-
const agent_1 = __importDefault(require("../../../api/agent"));
|
|
10
|
+
const agent_1 = __importDefault(require("../../../tunnel/api/agent"));
|
|
11
11
|
const commandAgentTargetStatus = (0, utils_1.newCommand)('status', texts_1.DESC_COMMAND_AGENT_TARGET_STATUS);
|
|
12
12
|
commandAgentTargetStatus.action(async () => {
|
|
13
13
|
const isEnabled = await manager_1.default.system.isEnabled();
|
|
@@ -3,42 +3,42 @@ 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
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const texts_js_1 = require("../../../texts.js");
|
|
10
|
-
const tunnel_1 = __importDefault(require("../../../agent/socket/tunnel"));
|
|
6
|
+
const utils_1 = require("../../../utils");
|
|
7
|
+
const output_1 = __importDefault(require("../../../output"));
|
|
8
|
+
const cfg_1 = __importDefault(require("../../../tunnel/cfg"));
|
|
11
9
|
const texts_1 = require("../../../texts");
|
|
10
|
+
const tunnel_1 = __importDefault(require("../../../agent/socket/tunnel"));
|
|
11
|
+
const texts_2 = require("../../../texts");
|
|
12
12
|
const manager_1 = __importDefault(require("../../../agent/manager"));
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const commandAgentTunnelHttp = (0,
|
|
16
|
-
commandAgentTunnelHttp.description(
|
|
17
|
-
commandAgentTunnelHttp.option('-f, --follow',
|
|
18
|
-
commandAgentTunnelHttp.argument('[protocol://host:port]',
|
|
13
|
+
const utils_2 = require("../../../utils");
|
|
14
|
+
const agent_1 = __importDefault(require("../../../tunnel/api/agent"));
|
|
15
|
+
const commandAgentTunnelHttp = (0, utils_2.getBasicCommandHttp)();
|
|
16
|
+
commandAgentTunnelHttp.description(texts_1.DESC_COMMAND_HTTP);
|
|
17
|
+
commandAgentTunnelHttp.option('-f, --follow', texts_2.OPTION_FOLLOW);
|
|
18
|
+
commandAgentTunnelHttp.argument('[protocol://host:port]', texts_1.OPTION_TARGET);
|
|
19
19
|
commandAgentTunnelHttp.action(async (target, options) => {
|
|
20
20
|
const isEnabled = await manager_1.default.system.isEnabled();
|
|
21
21
|
if (!isEnabled) {
|
|
22
|
-
|
|
22
|
+
output_1.default.exitError(texts_1.ERR_AGENT_NOT_ENABLED);
|
|
23
23
|
}
|
|
24
|
-
const prepared = await
|
|
24
|
+
const prepared = await cfg_1.default.prepareTunnel(utils_1.TUNNEL_HTTP, target, options, true);
|
|
25
25
|
try {
|
|
26
|
-
await
|
|
26
|
+
await output_1.default.spinner(texts_1.TXT_OPENING_TUNNEL);
|
|
27
27
|
const json = manager_1.default.system.loadSystemConfig();
|
|
28
|
-
const api = new
|
|
28
|
+
const api = new agent_1.default(json.port);
|
|
29
29
|
const data = await api.addTunnel(prepared);
|
|
30
30
|
if (options.follow) {
|
|
31
31
|
const ws = await api.socketTunnel(data.id);
|
|
32
32
|
const tunnel = new tunnel_1.default(ws, data.id);
|
|
33
33
|
await tunnel.waitForReady();
|
|
34
|
-
|
|
34
|
+
output_1.default.tunnel(tunnel);
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
|
-
|
|
37
|
+
output_1.default.exitSuccess((0, texts_1.TXT_TUNNEL_STARTED)(data.type));
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
catch (err) {
|
|
41
|
-
|
|
41
|
+
output_1.default.exitError(err);
|
|
42
42
|
}
|
|
43
43
|
});
|
|
44
44
|
exports.default = commandAgentTunnelHttp;
|