bdy 1.12.8-dev → 1.12.8-dev-pipeline-run
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/package.json +1 -1
- package/distTs/bin/cli.js +0 -5
- package/distTs/src/agent/agent.js +0 -328
- package/distTs/src/agent/linux.js +0 -124
- package/distTs/src/agent/manager.js +0 -519
- package/distTs/src/agent/osx.js +0 -146
- package/distTs/src/agent/socket/client.js +0 -178
- package/distTs/src/agent/socket/tunnel.js +0 -237
- package/distTs/src/agent/socket.js +0 -242
- package/distTs/src/agent/system.js +0 -179
- package/distTs/src/agent/wait.js +0 -23
- package/distTs/src/agent/windows.js +0 -159
- package/distTs/src/agent.js +0 -302
- package/distTs/src/api/agent.js +0 -99
- package/distTs/src/api/buddy.js +0 -139
- package/distTs/src/api/socket.js +0 -159
- package/distTs/src/cfg.js +0 -234
- package/distTs/src/command/agent/disable.js +0 -27
- package/distTs/src/command/agent/enable.js +0 -27
- package/distTs/src/command/agent/install.js +0 -117
- package/distTs/src/command/agent/restart.js +0 -27
- package/distTs/src/command/agent/run.js +0 -19
- package/distTs/src/command/agent/start.js +0 -28
- package/distTs/src/command/agent/status.js +0 -34
- package/distTs/src/command/agent/stop.js +0 -28
- package/distTs/src/command/agent/target/disable.js +0 -27
- package/distTs/src/command/agent/target/enable.js +0 -27
- package/distTs/src/command/agent/target/status.js +0 -32
- package/distTs/src/command/agent/target.js +0 -15
- package/distTs/src/command/agent/tunnel/http.js +0 -43
- package/distTs/src/command/agent/tunnel/list.js +0 -27
- package/distTs/src/command/agent/tunnel/remove.js +0 -28
- package/distTs/src/command/agent/tunnel/start.js +0 -34
- package/distTs/src/command/agent/tunnel/status.js +0 -31
- package/distTs/src/command/agent/tunnel/tcp.js +0 -43
- package/distTs/src/command/agent/tunnel/tls.js +0 -43
- package/distTs/src/command/agent/tunnel.js +0 -23
- package/distTs/src/command/agent/uninstall.js +0 -44
- package/distTs/src/command/agent/update.js +0 -38
- package/distTs/src/command/agent/version.js +0 -21
- package/distTs/src/command/agent.js +0 -35
- package/distTs/src/command/config/add/http.js +0 -25
- package/distTs/src/command/config/add/tcp.js +0 -25
- package/distTs/src/command/config/add/tls.js +0 -25
- package/distTs/src/command/config/add.js +0 -15
- package/distTs/src/command/config/get/region.js +0 -15
- package/distTs/src/command/config/get/timeout.js +0 -15
- package/distTs/src/command/config/get/token.js +0 -15
- package/distTs/src/command/config/get/tunnel.js +0 -19
- package/distTs/src/command/config/get/tunnels.js +0 -15
- package/distTs/src/command/config/get/whitelist.js +0 -15
- package/distTs/src/command/config/get.js +0 -21
- package/distTs/src/command/config/remove/tunnel.js +0 -19
- package/distTs/src/command/config/remove.js +0 -11
- package/distTs/src/command/config/set/region.js +0 -17
- package/distTs/src/command/config/set/timeout.js +0 -17
- package/distTs/src/command/config/set/token.js +0 -16
- package/distTs/src/command/config/set/whitelist.js +0 -17
- package/distTs/src/command/config/set.js +0 -17
- package/distTs/src/command/config.js +0 -17
- package/distTs/src/command/http.js +0 -30
- package/distTs/src/command/pre.js +0 -49
- package/distTs/src/command/start.js +0 -28
- package/distTs/src/command/tcp.js +0 -30
- package/distTs/src/command/tls.js +0 -30
- package/distTs/src/command/tunnel/config.js +0 -17
- package/distTs/src/command/tunnel/http.js +0 -31
- package/distTs/src/command/tunnel/start.js +0 -28
- package/distTs/src/command/tunnel/tcp.js +0 -30
- package/distTs/src/command/tunnel/tls.js +0 -30
- package/distTs/src/command/tunnel.js +0 -19
- package/distTs/src/command/ut/upload.js +0 -108
- package/distTs/src/command/ut.js +0 -12
- package/distTs/src/command/version.js +0 -13
- package/distTs/src/command/vt/close.js +0 -27
- package/distTs/src/command/vt/compare/validation.js +0 -173
- package/distTs/src/command/vt/compare.js +0 -97
- package/distTs/src/command/vt/exec.js +0 -81
- package/distTs/src/command/vt/installBrowser.js +0 -20
- package/distTs/src/command/vt/scrap.js +0 -193
- package/distTs/src/command/vt/storybook.js +0 -92
- package/distTs/src/command/vt.js +0 -22
- package/distTs/src/format.js +0 -174
- package/distTs/src/index.js +0 -34
- package/distTs/src/input.js +0 -270
- package/distTs/src/logger.js +0 -95
- package/distTs/src/output/interactive/tunnel.js +0 -860
- package/distTs/src/output/noninteractive/agent/tunnels.js +0 -43
- package/distTs/src/output/noninteractive/config/tunnel.js +0 -65
- package/distTs/src/output/noninteractive/config/tunnels.js +0 -18
- package/distTs/src/output/noninteractive/tunnel.js +0 -59
- package/distTs/src/output.js +0 -143
- package/distTs/src/server/cert.js +0 -52
- package/distTs/src/server/http1.js +0 -75
- package/distTs/src/server/http2.js +0 -78
- package/distTs/src/server/sftp.js +0 -497
- package/distTs/src/server/ssh.js +0 -446
- package/distTs/src/server/tls.js +0 -41
- package/distTs/src/ssh/client.js +0 -197
- package/distTs/src/texts.js +0 -421
- package/distTs/src/tunnel/agent.js +0 -103
- package/distTs/src/tunnel/api/agent.js +0 -100
- package/distTs/src/tunnel/api/buddy.js +0 -141
- package/distTs/src/tunnel/cfg.js +0 -243
- package/distTs/src/tunnel/compression.js +0 -44
- package/distTs/src/tunnel/dns.js +0 -53
- package/distTs/src/tunnel/html/503.html +0 -338
- package/distTs/src/tunnel/html.js +0 -33
- package/distTs/src/tunnel/http/log.js +0 -218
- package/distTs/src/tunnel/http/serve.js +0 -133
- package/distTs/src/tunnel/http/stream.js +0 -34
- package/distTs/src/tunnel/http.js +0 -508
- package/distTs/src/tunnel/identification.js +0 -103
- package/distTs/src/tunnel/latency.js +0 -83
- package/distTs/src/tunnel/output/interactive/tunnel.js +0 -867
- package/distTs/src/tunnel/output/noninteractive/agent/tunnels.js +0 -45
- package/distTs/src/tunnel/output/noninteractive/config/tunnel.js +0 -67
- package/distTs/src/tunnel/output/noninteractive/config/tunnels.js +0 -20
- package/distTs/src/tunnel/output/noninteractive/tunnel.js +0 -61
- package/distTs/src/tunnel/server/cert.js +0 -54
- package/distTs/src/tunnel/server/http1.js +0 -80
- package/distTs/src/tunnel/server/http2.js +0 -84
- package/distTs/src/tunnel/server/sftp.js +0 -514
- package/distTs/src/tunnel/server/ssh.js +0 -464
- package/distTs/src/tunnel/server/tls.js +0 -47
- package/distTs/src/tunnel/ssh/client.js +0 -211
- package/distTs/src/tunnel/tcp.js +0 -113
- package/distTs/src/tunnel/tunnel.js +0 -1010
- package/distTs/src/tunnel.js +0 -656
- package/distTs/src/types/ciInfo.js +0 -10
- package/distTs/src/types/options.js +0 -2
- package/distTs/src/types/plugin.js +0 -2
- package/distTs/src/types/queue.js +0 -2
- package/distTs/src/types/requests.js +0 -2
- package/distTs/src/types/resources.js +0 -2
- package/distTs/src/types/schemas.js +0 -54
- package/distTs/src/types/scrape.js +0 -2
- package/distTs/src/types/snapshots.js +0 -2
- package/distTs/src/types/storybook.js +0 -2
- package/distTs/src/types/tunnel.js +0 -141
- package/distTs/src/unitTest/ci.js +0 -108
- package/distTs/src/unitTest/requests.js +0 -72
- package/distTs/src/utils.js +0 -378
- package/distTs/src/visualTest/browser.js +0 -39
- package/distTs/src/visualTest/ci.js +0 -241
- package/distTs/src/visualTest/context.js +0 -52
- package/distTs/src/visualTest/exec.js +0 -51
- package/distTs/src/visualTest/linkUtils.js +0 -21
- package/distTs/src/visualTest/queue.js +0 -43
- package/distTs/src/visualTest/requests.js +0 -365
- package/distTs/src/visualTest/resources.js +0 -259
- package/distTs/src/visualTest/server.js +0 -109
- package/distTs/src/visualTest/snapshots.js +0 -129
- package/distTs/src/visualTest/utils/parseDom.js +0 -238
- package/distTs/src/visualTest/validation.js +0 -18
|
@@ -1,30 +0,0 @@
|
|
|
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_js_1 = require("../utils.js");
|
|
7
|
-
const cfg_js_1 = __importDefault(require("../cfg.js"));
|
|
8
|
-
const output_js_1 = __importDefault(require("../output.js"));
|
|
9
|
-
const texts_js_1 = require("../texts.js");
|
|
10
|
-
const utils_1 = require("../utils");
|
|
11
|
-
const buddy_js_1 = __importDefault(require("../api/buddy.js"));
|
|
12
|
-
const commandTcp = (0, utils_1.getBasicCommandTcp)();
|
|
13
|
-
commandTcp.description(texts_js_1.DESC_COMMAND_TCP);
|
|
14
|
-
commandTcp.option('--token <token>', texts_js_1.OPTION_TOKEN);
|
|
15
|
-
commandTcp.argument('[host:port]', texts_js_1.OPTION_TARGET);
|
|
16
|
-
commandTcp.action(async (target, options) => {
|
|
17
|
-
if (options.token)
|
|
18
|
-
cfg_js_1.default.setToken(options.token);
|
|
19
|
-
const prepared = await cfg_js_1.default.prepareTunnel(utils_js_1.TUNNEL_TCP, target, options, true);
|
|
20
|
-
await output_js_1.default.spinner(texts_js_1.TXT_OPENING_TUNNEL);
|
|
21
|
-
const agent = await buddy_js_1.default.register(false, false, cfg_js_1.default.getTokenHost(), cfg_js_1.default.getToken(), (region) => {
|
|
22
|
-
cfg_js_1.default.setRegionIfNotSet(region);
|
|
23
|
-
});
|
|
24
|
-
await agent.start();
|
|
25
|
-
agent.startRefreshingConfiguration();
|
|
26
|
-
const tunnel = await buddy_js_1.default.addTunnel(agent.id, agent.host, agent.token, prepared);
|
|
27
|
-
agent.addTunnel(tunnel);
|
|
28
|
-
output_js_1.default.tunnel(tunnel);
|
|
29
|
-
});
|
|
30
|
-
exports.default = commandTcp;
|
|
@@ -1,30 +0,0 @@
|
|
|
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_js_1 = require("../utils.js");
|
|
7
|
-
const cfg_js_1 = __importDefault(require("../cfg.js"));
|
|
8
|
-
const output_js_1 = __importDefault(require("../output.js"));
|
|
9
|
-
const texts_js_1 = require("../texts.js");
|
|
10
|
-
const utils_1 = require("../utils");
|
|
11
|
-
const buddy_js_1 = __importDefault(require("../api/buddy.js"));
|
|
12
|
-
const commandTls = (0, utils_1.getBasicCommandTls)();
|
|
13
|
-
commandTls.description(texts_js_1.DESC_COMMAND_TLS);
|
|
14
|
-
commandTls.option('--token <token>', texts_js_1.OPTION_TOKEN);
|
|
15
|
-
commandTls.argument('[host:port]', texts_js_1.OPTION_TARGET);
|
|
16
|
-
commandTls.action(async (target, options) => {
|
|
17
|
-
if (options.token)
|
|
18
|
-
cfg_js_1.default.setToken(options.token);
|
|
19
|
-
const prepared = await cfg_js_1.default.prepareTunnel(utils_js_1.TUNNEL_TLS, target, options, true);
|
|
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) => {
|
|
22
|
-
cfg_js_1.default.setRegionIfNotSet(region);
|
|
23
|
-
});
|
|
24
|
-
await agent.start();
|
|
25
|
-
agent.startRefreshingConfiguration();
|
|
26
|
-
const tunnel = await buddy_js_1.default.addTunnel(agent.id, agent.host, agent.token, prepared);
|
|
27
|
-
agent.addTunnel(tunnel);
|
|
28
|
-
output_js_1.default.tunnel(tunnel);
|
|
29
|
-
});
|
|
30
|
-
exports.default = commandTls;
|
|
@@ -1,17 +0,0 @@
|
|
|
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 set_1 = __importDefault(require("../config/set"));
|
|
7
|
-
const get_1 = __importDefault(require("../config/get"));
|
|
8
|
-
const add_1 = __importDefault(require("../config/add"));
|
|
9
|
-
const remove_1 = __importDefault(require("../config/remove"));
|
|
10
|
-
const texts_1 = require("../../texts");
|
|
11
|
-
const utils_1 = require("../../utils");
|
|
12
|
-
const commandConfig = (0, utils_1.newCommand)('config', texts_1.DESC_COMMAND_CONFIG);
|
|
13
|
-
commandConfig.addCommand(set_1.default);
|
|
14
|
-
commandConfig.addCommand(add_1.default);
|
|
15
|
-
commandConfig.addCommand(get_1.default);
|
|
16
|
-
commandConfig.addCommand(remove_1.default);
|
|
17
|
-
exports.default = commandConfig;
|
|
@@ -1,31 +0,0 @@
|
|
|
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 cfg_1 = __importDefault(require("../../tunnel/cfg"));
|
|
8
|
-
const output_1 = __importDefault(require("../../output"));
|
|
9
|
-
const texts_1 = require("../../texts");
|
|
10
|
-
const buddy_1 = __importDefault(require("../../tunnel/api/buddy"));
|
|
11
|
-
const tunnel_1 = require("../../types/tunnel");
|
|
12
|
-
const commandHttp = (0, utils_1.getBasicCommandHttp)();
|
|
13
|
-
commandHttp.description(texts_1.DESC_COMMAND_HTTP);
|
|
14
|
-
commandHttp.option('-s, --serve <directory>', texts_1.OPTION_SERVE);
|
|
15
|
-
commandHttp.option('--token <token>', texts_1.OPTION_TOKEN);
|
|
16
|
-
commandHttp.argument('[protocol://host:port]', texts_1.OPTION_TARGET);
|
|
17
|
-
commandHttp.action(async (target, options) => {
|
|
18
|
-
if (options.token)
|
|
19
|
-
cfg_1.default.setToken(options.token);
|
|
20
|
-
const prepared = await cfg_1.default.prepareTunnel(tunnel_1.TUNNEL_TYPE.HTTP, target, options, true);
|
|
21
|
-
await output_1.default.spinner(texts_1.TXT_OPENING_TUNNEL);
|
|
22
|
-
const agent = await buddy_1.default.register(false, false, cfg_1.default.getTokenHost(), cfg_1.default.getToken(), (region) => {
|
|
23
|
-
cfg_1.default.setRegionIfNotSet(region);
|
|
24
|
-
});
|
|
25
|
-
await agent.start();
|
|
26
|
-
agent.startRefreshingConfiguration();
|
|
27
|
-
const tunnel = await buddy_1.default.addTunnel(agent.id, agent.host, agent.token, prepared);
|
|
28
|
-
agent.addTunnel(tunnel);
|
|
29
|
-
output_1.default.tunnel(tunnel);
|
|
30
|
-
});
|
|
31
|
-
exports.default = commandHttp;
|
|
@@ -1,28 +0,0 @@
|
|
|
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 cfg_1 = __importDefault(require("../../tunnel/cfg"));
|
|
7
|
-
const output_1 = __importDefault(require("../../output"));
|
|
8
|
-
const texts_1 = require("../../texts");
|
|
9
|
-
const buddy_1 = __importDefault(require("../../tunnel/api/buddy"));
|
|
10
|
-
const utils_1 = require("../../utils");
|
|
11
|
-
const commandStart = (0, utils_1.newCommand)('start', texts_1.DESC_COMMAND_START);
|
|
12
|
-
commandStart.argument('<name>', texts_1.OPTION_NAME);
|
|
13
|
-
commandStart.action(async (name) => {
|
|
14
|
-
if (!cfg_1.default.hasTunnel(name)) {
|
|
15
|
-
output_1.default.exitError((0, texts_1.ERR_TUNNEL_NOT_FOUND)(name));
|
|
16
|
-
}
|
|
17
|
-
const prepared = cfg_1.default.getTunnel(name);
|
|
18
|
-
await output_1.default.spinner(texts_1.TXT_OPENING_TUNNEL);
|
|
19
|
-
const agent = await buddy_1.default.register(false, false, cfg_1.default.getTokenHost(), cfg_1.default.getToken(), (region) => {
|
|
20
|
-
cfg_1.default.setRegionIfNotSet(region);
|
|
21
|
-
});
|
|
22
|
-
await agent.start();
|
|
23
|
-
agent.startRefreshingConfiguration();
|
|
24
|
-
const tunnel = await buddy_1.default.addTunnel(agent.id, agent.host, agent.token, prepared);
|
|
25
|
-
agent.addTunnel(tunnel);
|
|
26
|
-
output_1.default.tunnel(tunnel);
|
|
27
|
-
});
|
|
28
|
-
exports.default = commandStart;
|
|
@@ -1,30 +0,0 @@
|
|
|
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 cfg_1 = __importDefault(require("../../tunnel/cfg"));
|
|
8
|
-
const output_1 = __importDefault(require("../../output"));
|
|
9
|
-
const texts_1 = require("../../texts");
|
|
10
|
-
const buddy_1 = __importDefault(require("../../tunnel/api/buddy"));
|
|
11
|
-
const tunnel_1 = require("../../types/tunnel");
|
|
12
|
-
const commandTcp = (0, utils_1.getBasicCommandTcp)();
|
|
13
|
-
commandTcp.description(texts_1.DESC_COMMAND_TCP);
|
|
14
|
-
commandTcp.option('--token <token>', texts_1.OPTION_TOKEN);
|
|
15
|
-
commandTcp.argument('[host:port]', texts_1.OPTION_TARGET);
|
|
16
|
-
commandTcp.action(async (target, options) => {
|
|
17
|
-
if (options.token)
|
|
18
|
-
cfg_1.default.setToken(options.token);
|
|
19
|
-
const prepared = await cfg_1.default.prepareTunnel(tunnel_1.TUNNEL_TYPE.TCP, target, options, true);
|
|
20
|
-
await output_1.default.spinner(texts_1.TXT_OPENING_TUNNEL);
|
|
21
|
-
const agent = await buddy_1.default.register(false, false, cfg_1.default.getTokenHost(), cfg_1.default.getToken(), (region) => {
|
|
22
|
-
cfg_1.default.setRegionIfNotSet(region);
|
|
23
|
-
});
|
|
24
|
-
await agent.start();
|
|
25
|
-
agent.startRefreshingConfiguration();
|
|
26
|
-
const tunnel = await buddy_1.default.addTunnel(agent.id, agent.host, agent.token, prepared);
|
|
27
|
-
agent.addTunnel(tunnel);
|
|
28
|
-
output_1.default.tunnel(tunnel);
|
|
29
|
-
});
|
|
30
|
-
exports.default = commandTcp;
|
|
@@ -1,30 +0,0 @@
|
|
|
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 cfg_1 = __importDefault(require("../../tunnel/cfg"));
|
|
8
|
-
const output_1 = __importDefault(require("../../output"));
|
|
9
|
-
const texts_1 = require("../../texts");
|
|
10
|
-
const buddy_1 = __importDefault(require("../../tunnel/api/buddy"));
|
|
11
|
-
const tunnel_1 = require("../../types/tunnel");
|
|
12
|
-
const commandTls = (0, utils_1.getBasicCommandTls)();
|
|
13
|
-
commandTls.description(texts_1.DESC_COMMAND_TLS);
|
|
14
|
-
commandTls.option('--token <token>', texts_1.OPTION_TOKEN);
|
|
15
|
-
commandTls.argument('[host:port]', texts_1.OPTION_TARGET);
|
|
16
|
-
commandTls.action(async (target, options) => {
|
|
17
|
-
if (options.token)
|
|
18
|
-
cfg_1.default.setToken(options.token);
|
|
19
|
-
const prepared = await cfg_1.default.prepareTunnel(tunnel_1.TUNNEL_TYPE.TLS, target, options, true);
|
|
20
|
-
await output_1.default.spinner(texts_1.TXT_OPENING_TUNNEL);
|
|
21
|
-
const agent = await buddy_1.default.register(false, false, cfg_1.default.getTokenHost(), cfg_1.default.getToken(), (region) => {
|
|
22
|
-
cfg_1.default.setRegionIfNotSet(region);
|
|
23
|
-
});
|
|
24
|
-
await agent.start();
|
|
25
|
-
agent.startRefreshingConfiguration();
|
|
26
|
-
const tunnel = await buddy_1.default.addTunnel(agent.id, agent.host, agent.token, prepared);
|
|
27
|
-
agent.addTunnel(tunnel);
|
|
28
|
-
output_1.default.tunnel(tunnel);
|
|
29
|
-
});
|
|
30
|
-
exports.default = commandTls;
|
|
@@ -1,19 +0,0 @@
|
|
|
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 config_1 = __importDefault(require("./tunnel/config"));
|
|
9
|
-
const tcp_1 = __importDefault(require("./tunnel/tcp"));
|
|
10
|
-
const tls_1 = __importDefault(require("./tunnel/tls"));
|
|
11
|
-
const http_1 = __importDefault(require("./tunnel/http"));
|
|
12
|
-
const start_1 = __importDefault(require("./tunnel/start"));
|
|
13
|
-
const commandTunnel = (0, utils_1.newCommand)('tunnel', texts_1.DESC_COMMAND_TUNNEL);
|
|
14
|
-
commandTunnel.addCommand(config_1.default);
|
|
15
|
-
commandTunnel.addCommand(tcp_1.default);
|
|
16
|
-
commandTunnel.addCommand(tls_1.default);
|
|
17
|
-
commandTunnel.addCommand(http_1.default);
|
|
18
|
-
commandTunnel.addCommand(start_1.default);
|
|
19
|
-
exports.default = commandTunnel;
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
const utils_1 = require("../../utils");
|
|
30
|
-
const texts_1 = require("../../texts");
|
|
31
|
-
const output_1 = __importDefault(require("../../output"));
|
|
32
|
-
const commander_1 = require("commander");
|
|
33
|
-
const zod_1 = __importStar(require("zod"));
|
|
34
|
-
const fdir_1 = require("fdir");
|
|
35
|
-
const picomatch_1 = __importDefault(require("picomatch"));
|
|
36
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
37
|
-
const ci_1 = require("../../unitTest/ci");
|
|
38
|
-
const requests_1 = require("../../unitTest/requests");
|
|
39
|
-
const token = process.env.BUDDY_UT_TOKEN || '';
|
|
40
|
-
const commandUtUpload = (0, utils_1.newCommand)('upload', texts_1.DESC_COMMAND_UT_UPLOAD);
|
|
41
|
-
commandUtUpload.argument('<glob>', texts_1.OPTION_UPLOAD_REPORT_GLOB);
|
|
42
|
-
commandUtUpload.addOption(new commander_1.Option('--format <format>', texts_1.OPTION_UPLOAD_REPORT_FORMAT)
|
|
43
|
-
.choices(['junit-xml'])
|
|
44
|
-
.makeOptionMandatory());
|
|
45
|
-
commandUtUpload.option('--dryRun', texts_1.OPTION_UPLOAD_DRY_RUN);
|
|
46
|
-
commandUtUpload.action(async (input, options) => {
|
|
47
|
-
if (!token) {
|
|
48
|
-
output_1.default.exitError(texts_1.ERR_MISSING_UT_TOKEN);
|
|
49
|
-
}
|
|
50
|
-
const { glob, dryRun } = validateInputAndOptions(input, options);
|
|
51
|
-
const ciInfo = await (0, ci_1.getCiInfo)();
|
|
52
|
-
const { absolutePattern, files } = findFilesByGlob(glob);
|
|
53
|
-
if (files.length === 0) {
|
|
54
|
-
output_1.default.exitError(`No files matched the provided glob: ${absolutePattern}`);
|
|
55
|
-
}
|
|
56
|
-
if (dryRun) {
|
|
57
|
-
output_1.default.normal(`Found ${files.length} report file(s) using pattern: ${absolutePattern}`);
|
|
58
|
-
files.forEach((file) => {
|
|
59
|
-
output_1.default.normal(file);
|
|
60
|
-
});
|
|
61
|
-
output_1.default.exitSuccess('Dry run completed');
|
|
62
|
-
}
|
|
63
|
-
await (0, requests_1.sendUploadRequest)(files, ciInfo);
|
|
64
|
-
output_1.default.exitSuccess('Upload completed');
|
|
65
|
-
});
|
|
66
|
-
exports.default = commandUtUpload;
|
|
67
|
-
function validateInputAndOptions(input, options) {
|
|
68
|
-
const globSchema = zod_1.default.string();
|
|
69
|
-
const optionsSchema = zod_1.default.object({
|
|
70
|
-
format: zod_1.default.enum(['junit-xml']),
|
|
71
|
-
dryRun: zod_1.default.boolean().optional(),
|
|
72
|
-
});
|
|
73
|
-
try {
|
|
74
|
-
const glob = globSchema.parse(input);
|
|
75
|
-
const { format, dryRun } = optionsSchema.parse(options);
|
|
76
|
-
return {
|
|
77
|
-
glob,
|
|
78
|
-
format,
|
|
79
|
-
dryRun,
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
catch (error) {
|
|
83
|
-
if (error instanceof zod_1.ZodError) {
|
|
84
|
-
output_1.default.exitError(error.errors.map((e) => `${e.path}: ${e.message}`).join(', '));
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
throw error;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
function findFilesByGlob(pattern) {
|
|
92
|
-
const cwd = process.cwd();
|
|
93
|
-
const scan = picomatch_1.default.scan(pattern);
|
|
94
|
-
if (!scan.isGlob) {
|
|
95
|
-
return {
|
|
96
|
-
absolutePattern: pattern,
|
|
97
|
-
files: (0, utils_1.isFile)(pattern) ? [pattern] : [],
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
if (node_path_1.default.isAbsolute(pattern)) {
|
|
101
|
-
const root = scan.base;
|
|
102
|
-
const files = new fdir_1.fdir().withFullPaths().glob(pattern).crawl(root).sync();
|
|
103
|
-
return { absolutePattern: pattern, files };
|
|
104
|
-
}
|
|
105
|
-
const preparedPattern = node_path_1.default.resolve(cwd, pattern);
|
|
106
|
-
const files = new fdir_1.fdir().withFullPaths().glob(preparedPattern).crawl().sync();
|
|
107
|
-
return { absolutePattern: preparedPattern, files };
|
|
108
|
-
}
|
package/distTs/src/command/ut.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
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 upload_1 = __importDefault(require("./ut/upload"));
|
|
9
|
-
const commandUt = (0, utils_1.newCommand)('tests', texts_1.DESC_COMMAND_UT);
|
|
10
|
-
commandUt.alias('ut');
|
|
11
|
-
commandUt.addCommand(upload_1.default);
|
|
12
|
-
exports.default = commandUt;
|
|
@@ -1,13 +0,0 @@
|
|
|
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 output_1 = __importDefault(require("../output"));
|
|
8
|
-
const utils_2 = require("../utils");
|
|
9
|
-
const commandVersion = (0, utils_2.newCommand)('version');
|
|
10
|
-
commandVersion.action(() => {
|
|
11
|
-
output_1.default.exitNormal((0, utils_1.getVersion)());
|
|
12
|
-
});
|
|
13
|
-
exports.default = commandVersion;
|
|
@@ -1,27 +0,0 @@
|
|
|
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 validation_1 = require("../../visualTest/validation");
|
|
9
|
-
const requests_1 = require("../../visualTest/requests");
|
|
10
|
-
const output_1 = __importDefault(require("../../output"));
|
|
11
|
-
const commandVtClose = (0, utils_1.newCommand)('close', texts_1.DESC_COMMAND_VT_CLOSE);
|
|
12
|
-
commandVtClose.action(async () => {
|
|
13
|
-
if (!(0, validation_1.checkToken)()) {
|
|
14
|
-
output_1.default.exitError(texts_1.ERR_MISSING_VT_TOKEN);
|
|
15
|
-
}
|
|
16
|
-
if (!(0, validation_1.checkBuildId)()) {
|
|
17
|
-
output_1.default.exitError(texts_1.ERR_MISSING_BUILD_ID);
|
|
18
|
-
}
|
|
19
|
-
try {
|
|
20
|
-
const { message } = await (0, requests_1.closeSession)();
|
|
21
|
-
output_1.default.exitNormal(message);
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
output_1.default.exitError(`${error}`);
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
exports.default = commandVtClose;
|
|
@@ -1,173 +0,0 @@
|
|
|
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
|
-
exports.validateOptions = validateOptions;
|
|
7
|
-
exports.checkIfMinimalOptionsAreProvided = checkIfMinimalOptionsAreProvided;
|
|
8
|
-
const zod_1 = require("zod");
|
|
9
|
-
const output_1 = __importDefault(require("../../../output"));
|
|
10
|
-
const DEFAULT_SCOPE = '**';
|
|
11
|
-
const optionsSchema = zod_1.z.object({
|
|
12
|
-
urls: zod_1.z.string().optional(),
|
|
13
|
-
sitemap: zod_1.z.string().optional(),
|
|
14
|
-
urlsFile: zod_1.z.string().optional(),
|
|
15
|
-
follow: zod_1.z.boolean(),
|
|
16
|
-
respectRobots: zod_1.z.boolean(),
|
|
17
|
-
ignore: zod_1.z
|
|
18
|
-
.array(zod_1.z.string().regex(/^(?:([^:]+)::)?(?:(CSS|XPATH))=(.+)$/, {
|
|
19
|
-
message: "Ignore option must follow pattern '[scope::]type=value' where type must be CSS or XPATH (scope is optional)",
|
|
20
|
-
}))
|
|
21
|
-
.optional()
|
|
22
|
-
.transform((value) => value?.map((v) => {
|
|
23
|
-
let scope, type, value;
|
|
24
|
-
if (v.includes('::')) {
|
|
25
|
-
const parts = v.split('::');
|
|
26
|
-
scope = parts[0];
|
|
27
|
-
const typeValuePair = parts[1].split('=');
|
|
28
|
-
type = typeValuePair[0];
|
|
29
|
-
value = typeValuePair[1];
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
const typeValuePair = v.split('=');
|
|
33
|
-
type = typeValuePair[0];
|
|
34
|
-
value = typeValuePair[1];
|
|
35
|
-
scope = DEFAULT_SCOPE;
|
|
36
|
-
}
|
|
37
|
-
return { scope, type, value };
|
|
38
|
-
})),
|
|
39
|
-
cookie: zod_1.z
|
|
40
|
-
.array(zod_1.z
|
|
41
|
-
.string()
|
|
42
|
-
.max(4096, {
|
|
43
|
-
message: 'Cookie must be less than 4096 characters',
|
|
44
|
-
})
|
|
45
|
-
.regex(/^(?:([^:]+)::)?(.+)$/, {
|
|
46
|
-
message: "Cookie option must follow pattern '[scope::]cookie_value' (scope is optional)",
|
|
47
|
-
}))
|
|
48
|
-
.optional()
|
|
49
|
-
.transform((value) => value?.map((v) => {
|
|
50
|
-
let scope = DEFAULT_SCOPE;
|
|
51
|
-
let cookieValue = v;
|
|
52
|
-
if (v.includes('::')) {
|
|
53
|
-
const [scopePart, valuePart] = v.split('::');
|
|
54
|
-
scope = scopePart.trim();
|
|
55
|
-
cookieValue = valuePart.trim();
|
|
56
|
-
}
|
|
57
|
-
// Parse cookie string into components
|
|
58
|
-
const cookieParts = cookieValue.split(';').map((part) => part.trim());
|
|
59
|
-
const mainPart = cookieParts[0].split('=');
|
|
60
|
-
const key = mainPart[0].trim();
|
|
61
|
-
const value = mainPart[1].trim();
|
|
62
|
-
const cookie = {
|
|
63
|
-
scope,
|
|
64
|
-
key,
|
|
65
|
-
value,
|
|
66
|
-
httpOnly: false,
|
|
67
|
-
secure: false,
|
|
68
|
-
};
|
|
69
|
-
// Process additional cookie attributes
|
|
70
|
-
for (let i = 1; i < cookieParts.length; i++) {
|
|
71
|
-
const part = cookieParts[i].toLowerCase();
|
|
72
|
-
if (part === 'httponly') {
|
|
73
|
-
cookie.httpOnly = true;
|
|
74
|
-
}
|
|
75
|
-
else if (part === 'secure') {
|
|
76
|
-
cookie.secure = true;
|
|
77
|
-
}
|
|
78
|
-
else if (part.startsWith('domain=')) {
|
|
79
|
-
cookie.domain = part.substring(7);
|
|
80
|
-
}
|
|
81
|
-
else if (part.startsWith('path=')) {
|
|
82
|
-
cookie.path = part.substring(5);
|
|
83
|
-
}
|
|
84
|
-
else if (part.startsWith('samesite=')) {
|
|
85
|
-
const sameSiteValue = part.substring(9);
|
|
86
|
-
if (['strict', 'lax', 'none'].includes(sameSiteValue.toLowerCase())) {
|
|
87
|
-
cookie.sameSite = (sameSiteValue.charAt(0).toUpperCase() +
|
|
88
|
-
sameSiteValue.slice(1).toLowerCase());
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return cookie;
|
|
93
|
-
})),
|
|
94
|
-
header: zod_1.z
|
|
95
|
-
.array(zod_1.z.string().regex(/^(?:([^:]+)::)?(.+)$/, {
|
|
96
|
-
message: "Header option must follow pattern '[scope::]header_value' (scope is optional)",
|
|
97
|
-
}))
|
|
98
|
-
.optional()
|
|
99
|
-
.transform((value) => value?.map((v) => {
|
|
100
|
-
if (v.includes('::')) {
|
|
101
|
-
const [scope, headerValue] = v.split('::');
|
|
102
|
-
const [name, value] = headerValue.split('=');
|
|
103
|
-
return {
|
|
104
|
-
scope: scope.trim(),
|
|
105
|
-
key: name.trim(),
|
|
106
|
-
value: value.trim(),
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
const [name, value] = v.split('=');
|
|
111
|
-
return {
|
|
112
|
-
scope: DEFAULT_SCOPE,
|
|
113
|
-
key: name.trim(),
|
|
114
|
-
value: value.trim(),
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
})),
|
|
118
|
-
delay: zod_1.z
|
|
119
|
-
.array(zod_1.z.string().regex(/^(?:([^:]+)::)?(\d+)$/, {
|
|
120
|
-
message: "Delay option must follow pattern '[scope::]milliseconds' (scope is optional)",
|
|
121
|
-
}))
|
|
122
|
-
.optional()
|
|
123
|
-
.transform((value) => value?.map((v) => {
|
|
124
|
-
if (v.includes('::')) {
|
|
125
|
-
const [scope, milliseconds] = v.split('::');
|
|
126
|
-
return { scope: scope.trim(), value: Number(milliseconds) };
|
|
127
|
-
}
|
|
128
|
-
else {
|
|
129
|
-
return { scope: DEFAULT_SCOPE, value: Number(v) };
|
|
130
|
-
}
|
|
131
|
-
})),
|
|
132
|
-
waitFor: zod_1.z
|
|
133
|
-
.array(zod_1.z.string().regex(/^(?:([^:]+)::)?(?:(CSS|XPATH))=(.+)$/, {
|
|
134
|
-
message: "WaitFor option must follow pattern '[scope::]type=value' where type must be CSS or XPATH (scope is optional)",
|
|
135
|
-
}))
|
|
136
|
-
.optional()
|
|
137
|
-
.transform((value) => value?.map((v) => {
|
|
138
|
-
let scope, type, value;
|
|
139
|
-
if (v.includes('::')) {
|
|
140
|
-
const parts = v.split('::');
|
|
141
|
-
scope = parts[0];
|
|
142
|
-
const typeValuePair = parts[1].split('=');
|
|
143
|
-
type = typeValuePair[0];
|
|
144
|
-
value = typeValuePair[1];
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
const typeValuePair = v.split('=');
|
|
148
|
-
type = typeValuePair[0];
|
|
149
|
-
value = typeValuePair[1];
|
|
150
|
-
scope = DEFAULT_SCOPE;
|
|
151
|
-
}
|
|
152
|
-
return { scope, type, value };
|
|
153
|
-
})),
|
|
154
|
-
ignoreUrls: zod_1.z.array(zod_1.z.string()).optional(),
|
|
155
|
-
dryRun: zod_1.z.boolean().optional(),
|
|
156
|
-
});
|
|
157
|
-
function validateOptions(options) {
|
|
158
|
-
try {
|
|
159
|
-
const validatedOptions = optionsSchema.parse(options);
|
|
160
|
-
return validatedOptions;
|
|
161
|
-
}
|
|
162
|
-
catch (error) {
|
|
163
|
-
if (error instanceof zod_1.ZodError) {
|
|
164
|
-
output_1.default.exitError(error.errors.map((e) => e.message).join(', '));
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
throw error;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
function checkIfMinimalOptionsAreProvided(options) {
|
|
172
|
-
return !!options.urls || !!options.sitemap || !!options.urlsFile;
|
|
173
|
-
}
|
|
@@ -1,97 +0,0 @@
|
|
|
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 validation_1 = require("../../visualTest/validation");
|
|
9
|
-
const output_1 = __importDefault(require("../../output"));
|
|
10
|
-
const linkUtils_1 = require("../../visualTest/linkUtils");
|
|
11
|
-
const node_fs_1 = require("node:fs");
|
|
12
|
-
const requests_1 = require("../../visualTest/requests");
|
|
13
|
-
const validation_2 = require("./compare/validation");
|
|
14
|
-
const ci_1 = require("../../visualTest/ci");
|
|
15
|
-
const context_1 = require("../../visualTest/context");
|
|
16
|
-
const commandVtCompare = (0, utils_1.newCommand)('compare', texts_1.DESC_COMMAND_VT_COMPARE);
|
|
17
|
-
commandVtCompare.option('--urls <urls>', texts_1.OPTION_COMPARE_URLS);
|
|
18
|
-
commandVtCompare.option('--sitemap <sitemap>', texts_1.OPTION_COMPARE_SITEMAP);
|
|
19
|
-
commandVtCompare.option('--urlsFile <urlsFile>', texts_1.OPTION_COMPARE_URLS_FILE);
|
|
20
|
-
commandVtCompare.option('--dryRun', texts_1.OPTION_COMPARE_DRY_RUN);
|
|
21
|
-
commandVtCompare.option('--follow', texts_1.OPTION_COMPARE_FOLLOW, false);
|
|
22
|
-
commandVtCompare.option('--respectRobots', texts_1.OPTION_COMPARE_RESPECT_ROBOTS, false);
|
|
23
|
-
commandVtCompare.option('--ignoreUrls <ignoreUrls...>', texts_1.OPTION_COMPARE_IGNORE_URLS);
|
|
24
|
-
commandVtCompare.option('--ignore <ignores...>', texts_1.OPTION_COMPARE_IGNORE);
|
|
25
|
-
commandVtCompare.option('--cookie <cookies...>', texts_1.OPTION_COMPARE_COOKIE);
|
|
26
|
-
commandVtCompare.option('--header <headers...>', texts_1.OPTION_COMPARE_HEADER);
|
|
27
|
-
commandVtCompare.option('--delay <delays...>', texts_1.OPTION_COMPARE_DELAY);
|
|
28
|
-
commandVtCompare.option('--waitFor <waitFors...>', texts_1.OPTION_COMPARE_WAIT_FOR);
|
|
29
|
-
commandVtCompare.action(async (options) => {
|
|
30
|
-
const validatedOptions = (0, validation_2.validateOptions)(options);
|
|
31
|
-
if (!(0, validation_1.checkToken)()) {
|
|
32
|
-
output_1.default.exitError(texts_1.ERR_MISSING_VT_TOKEN);
|
|
33
|
-
}
|
|
34
|
-
if (!(0, validation_2.checkIfMinimalOptionsAreProvided)(validatedOptions)) {
|
|
35
|
-
output_1.default.exitError(texts_1.ERR_MISSING_URLS);
|
|
36
|
-
}
|
|
37
|
-
let urls = [];
|
|
38
|
-
let sitemapSource;
|
|
39
|
-
if (validatedOptions.urls) {
|
|
40
|
-
const urlsList = getUrlsFromUrlOption(validatedOptions.urls);
|
|
41
|
-
urls = urls.concat(urlsList);
|
|
42
|
-
}
|
|
43
|
-
else if (validatedOptions.urlsFile) {
|
|
44
|
-
const urlsList = getUrlsFromUrlFile(validatedOptions.urlsFile);
|
|
45
|
-
urls = urls.concat(urlsList);
|
|
46
|
-
}
|
|
47
|
-
else if (validatedOptions.sitemap) {
|
|
48
|
-
sitemapSource = (0, linkUtils_1.addProtocolIfMissing)(validatedOptions.sitemap);
|
|
49
|
-
}
|
|
50
|
-
const { filteredUrls, duplicates } = filterDuplicates(urls);
|
|
51
|
-
if (duplicates.length > 0) {
|
|
52
|
-
output_1.default.normal(`Detected ${duplicates.length} duplicated urls:`);
|
|
53
|
-
output_1.default.normal(duplicates.join('\n'));
|
|
54
|
-
}
|
|
55
|
-
if (validatedOptions.dryRun) {
|
|
56
|
-
output_1.default.exitSuccess(`List of urls:\n${filteredUrls.join('\n')}`);
|
|
57
|
-
}
|
|
58
|
-
else if (filteredUrls.length > 1) {
|
|
59
|
-
output_1.default.normal(`List of urls:\n${filteredUrls.join('\n')}`);
|
|
60
|
-
}
|
|
61
|
-
const ciAndGitInfo = await (0, ci_1.getCiAndGitInfo)({});
|
|
62
|
-
(0, context_1.setCiAndCommitInfo)(ciAndGitInfo);
|
|
63
|
-
try {
|
|
64
|
-
const { message } = await (0, requests_1.sendCompareLinks)(filteredUrls, validatedOptions, sitemapSource);
|
|
65
|
-
output_1.default.exitSuccess(message);
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
output_1.default.exitError(`${error}`);
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
function getUrlsFromUrlOption(urls) {
|
|
72
|
-
return urls.split(',').map((url) => (0, linkUtils_1.addProtocolIfMissing)(url).trim());
|
|
73
|
-
}
|
|
74
|
-
function getUrlsFromUrlFile(urlsFile) {
|
|
75
|
-
const urlsFromFile = (0, node_fs_1.readFileSync)(urlsFile, 'utf-8');
|
|
76
|
-
return urlsFromFile
|
|
77
|
-
.split('\n')
|
|
78
|
-
.filter((url) => url.trim().length > 0)
|
|
79
|
-
.map((url) => (0, linkUtils_1.addProtocolIfMissing)(url).trim());
|
|
80
|
-
}
|
|
81
|
-
function filterDuplicates(urls) {
|
|
82
|
-
const seen = new Set();
|
|
83
|
-
const duplicates = new Set();
|
|
84
|
-
for (const url of urls) {
|
|
85
|
-
if (seen.has(url)) {
|
|
86
|
-
duplicates.add(url);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
seen.add(url);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return {
|
|
93
|
-
filteredUrls: Array.from(seen),
|
|
94
|
-
duplicates: Array.from(duplicates),
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
exports.default = commandVtCompare;
|