bdy 1.10.12-stage → 1.10.13-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 +5 -3
- package/distTs/src/command/ut/upload.js +108 -0
- package/distTs/src/command/ut.js +11 -0
- package/distTs/src/command/vt/close.js +1 -1
- package/distTs/src/command/vt/compare.js +2 -2
- package/distTs/src/command/vt/exec.js +4 -2
- package/distTs/src/command/vt/scrap.js +1 -1
- package/distTs/src/command/vt/storybook.js +4 -2
- package/distTs/src/index.js +2 -0
- package/distTs/src/texts.js +13 -7
- package/distTs/src/unitTest/ci.js +108 -0
- package/distTs/src/unitTest/requests.js +72 -0
- package/distTs/src/utils.js +9 -0
- package/distTs/src/visualTest/ci.js +4 -2
- package/package.json +5 -3
package/distTs/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bdy",
|
|
3
3
|
"preferGlobal": false,
|
|
4
|
-
"version": "1.10.
|
|
4
|
+
"version": "1.10.13-dev",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"scripts": {
|
|
@@ -36,6 +36,8 @@
|
|
|
36
36
|
"node-fetch": "3.3.2",
|
|
37
37
|
"node-forge": "1.3.1",
|
|
38
38
|
"path-is-inside": "1.0.2",
|
|
39
|
+
"fdir": "6.5.0",
|
|
40
|
+
"picomatch": "4.0.3",
|
|
39
41
|
"pino": "8.20.0",
|
|
40
42
|
"punycode.js": "2.3.1",
|
|
41
43
|
"puppeteer-core": "23.6.0",
|
|
@@ -48,8 +50,7 @@
|
|
|
48
50
|
"uuid": "10.0.0",
|
|
49
51
|
"which": "4.0.0",
|
|
50
52
|
"ws": "8.18.0",
|
|
51
|
-
"zod": "3.24.2"
|
|
52
|
-
"fast-xml-parser": "4.5.1"
|
|
53
|
+
"zod": "3.24.2"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
55
56
|
"@eslint/js": "9.13.0",
|
|
@@ -59,6 +60,7 @@
|
|
|
59
60
|
"@rollup/plugin-replace": "6.0.1",
|
|
60
61
|
"@stylistic/eslint-plugin-js": "2.9.0",
|
|
61
62
|
"@types/cross-spawn": "6.0.6",
|
|
63
|
+
"@types/picomatch": "4.0.2",
|
|
62
64
|
"@types/eslint__js": "8.42.3",
|
|
63
65
|
"@types/ssh2": "1.15.1",
|
|
64
66
|
"@types/tar-stream": "3.1.3",
|
|
@@ -0,0 +1,108 @@
|
|
|
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_js_1 = require("../../texts.js");
|
|
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_js_1.DESC_COMMAND_UT_UPLOAD);
|
|
41
|
+
commandUtUpload.argument('<glob>', texts_js_1.OPTION_UPLOAD_REPORT_GLOB);
|
|
42
|
+
commandUtUpload.addOption(new commander_1.Option('--format <format>', texts_js_1.OPTION_UPLOAD_REPORT_FORMAT)
|
|
43
|
+
.choices(['junit-xml'])
|
|
44
|
+
.makeOptionMandatory());
|
|
45
|
+
commandUtUpload.option('--dryRun', texts_js_1.OPTION_UPLOAD_DRY_RUN);
|
|
46
|
+
commandUtUpload.action(async (input, options) => {
|
|
47
|
+
if (!token) {
|
|
48
|
+
output_1.default.exitError(texts_js_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
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_1 = require("../utils");
|
|
7
|
+
const texts_js_1 = require("../texts.js");
|
|
8
|
+
const upload_1 = __importDefault(require("./ut/upload"));
|
|
9
|
+
const commandUt = (0, utils_1.newCommand)('ut', texts_js_1.DESC_COMMAND_UT);
|
|
10
|
+
commandUt.addCommand(upload_1.default);
|
|
11
|
+
exports.default = commandUt;
|
|
@@ -11,7 +11,7 @@ const output_1 = __importDefault(require("../../output"));
|
|
|
11
11
|
const commandVtClose = (0, utils_1.newCommand)('close', texts_js_1.DESC_COMMAND_VT_CLOSE);
|
|
12
12
|
commandVtClose.action(async () => {
|
|
13
13
|
if (!(0, validation_1.checkToken)()) {
|
|
14
|
-
output_1.default.exitError(texts_js_1.
|
|
14
|
+
output_1.default.exitError(texts_js_1.ERR_MISSING_VT_TOKEN);
|
|
15
15
|
}
|
|
16
16
|
if (!(0, validation_1.checkBuildId)()) {
|
|
17
17
|
output_1.default.exitError(texts_js_1.ERR_MISSING_BUILD_ID);
|
|
@@ -29,7 +29,7 @@ commandVtCompare.option('--waitFor <waitFors...>', texts_js_1.OPTION_COMPARE_WAI
|
|
|
29
29
|
commandVtCompare.action(async (options) => {
|
|
30
30
|
const validatedOptions = (0, validation_2.validateOptions)(options);
|
|
31
31
|
if (!(0, validation_1.checkToken)()) {
|
|
32
|
-
output_1.default.exitError(texts_js_1.
|
|
32
|
+
output_1.default.exitError(texts_js_1.ERR_MISSING_VT_TOKEN);
|
|
33
33
|
}
|
|
34
34
|
if (!(0, validation_2.checkIfMinimalOptionsAreProvided)(validatedOptions)) {
|
|
35
35
|
output_1.default.exitError(texts_js_1.ERR_MISSING_URLS);
|
|
@@ -58,7 +58,7 @@ commandVtCompare.action(async (options) => {
|
|
|
58
58
|
else if (filteredUrls.length > 1) {
|
|
59
59
|
output_1.default.normal(`List of urls:\n${filteredUrls.join('\n')}`);
|
|
60
60
|
}
|
|
61
|
-
const ciAndGitInfo = await (0, ci_1.getCiAndGitInfo)(
|
|
61
|
+
const ciAndGitInfo = await (0, ci_1.getCiAndGitInfo)({});
|
|
62
62
|
(0, context_1.setCiAndCommitInfo)(ciAndGitInfo);
|
|
63
63
|
try {
|
|
64
64
|
const response = await (0, requests_1.sendCompareLinks)(filteredUrls, validatedOptions, sitemapSource);
|
|
@@ -30,7 +30,7 @@ commandVtExec.action(async (command, options) => {
|
|
|
30
30
|
output_1.default.exitError(`${error}`);
|
|
31
31
|
}
|
|
32
32
|
if (!(0, validation_1.checkToken)()) {
|
|
33
|
-
output_1.default.exitError(texts_js_1.
|
|
33
|
+
output_1.default.exitError(texts_js_1.ERR_MISSING_VT_TOKEN);
|
|
34
34
|
}
|
|
35
35
|
if (!(0, validation_1.checkParallel)()) {
|
|
36
36
|
output_1.default.exitError(texts_js_1.ERR_MISSING_BUILD_ID);
|
|
@@ -49,7 +49,9 @@ commandVtExec.action(async (command, options) => {
|
|
|
49
49
|
}
|
|
50
50
|
const defaultSettings = await (0, requests_1.getDefaultSettings)();
|
|
51
51
|
(0, snapshots_1.setDefaultSettings)(defaultSettings);
|
|
52
|
-
const ciAndGitInfo = await (0, ci_1.getCiAndGitInfo)(
|
|
52
|
+
const ciAndGitInfo = await (0, ci_1.getCiAndGitInfo)({
|
|
53
|
+
baseBranch: defaultSettings.baseBranch,
|
|
54
|
+
});
|
|
53
55
|
(0, context_1.setCiAndCommitInfo)(ciAndGitInfo);
|
|
54
56
|
(0, ci_1.logCiInfo)(ciAndGitInfo);
|
|
55
57
|
if (context_1.debug) {
|
|
@@ -37,7 +37,7 @@ commandScrap.option('--delay <delay>', texts_js_1.OPTION_SCRAP_DELAY, '0');
|
|
|
37
37
|
commandScrap.option('--outputDir <dir>', texts_js_1.OPTION_SCRAP_OUTPUT_DIR, '.');
|
|
38
38
|
commandScrap.action(async (inputUrl, options) => {
|
|
39
39
|
if (!(0, validation_1.checkToken)()) {
|
|
40
|
-
output_1.default.exitError(texts_js_1.
|
|
40
|
+
output_1.default.exitError(texts_js_1.ERR_MISSING_VT_TOKEN);
|
|
41
41
|
}
|
|
42
42
|
const { url, follow, outputType, quality, outputDir, fullPage, cssSelector, xpathSelector, browser, viewport, devicePixelRatio, darkMode, delay, waitForElement, } = validateInputAndOptions(inputUrl, options);
|
|
43
43
|
try {
|
|
@@ -16,7 +16,7 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
16
16
|
const commandVtStorybook = (0, utils_1.newCommand)('storybook', texts_js_1.DESC_COMMAND_VT_STORYBOOK);
|
|
17
17
|
commandVtStorybook.action(async () => {
|
|
18
18
|
if (!(0, validation_1.checkToken)()) {
|
|
19
|
-
output_1.default.exitError(texts_js_1.
|
|
19
|
+
output_1.default.exitError(texts_js_1.ERR_MISSING_VT_TOKEN);
|
|
20
20
|
}
|
|
21
21
|
const currentDirectoryFiles = getCurrentDirectoryFiles();
|
|
22
22
|
if (!isStorybookDirectory(currentDirectoryFiles)) {
|
|
@@ -27,7 +27,9 @@ commandVtStorybook.action(async () => {
|
|
|
27
27
|
const storybookSnapshots = getStorybookSnapshots(storiesList);
|
|
28
28
|
const defaultSettings = await (0, requests_1.getDefaultSettings)();
|
|
29
29
|
(0, snapshots_1.setDefaultSettings)(defaultSettings);
|
|
30
|
-
const ciAndGitInfo = await (0, ci_1.getCiAndGitInfo)(
|
|
30
|
+
const ciAndGitInfo = await (0, ci_1.getCiAndGitInfo)({
|
|
31
|
+
baseBranch: defaultSettings.baseBranch,
|
|
32
|
+
});
|
|
31
33
|
(0, context_1.setCiAndCommitInfo)(ciAndGitInfo);
|
|
32
34
|
(0, ci_1.logCiInfo)(ciAndGitInfo);
|
|
33
35
|
try {
|
package/distTs/src/index.js
CHANGED
|
@@ -17,6 +17,7 @@ const stream_1 = __importDefault(require("stream"));
|
|
|
17
17
|
const utils_1 = require("./utils");
|
|
18
18
|
const texts_1 = require("./texts");
|
|
19
19
|
const vt_1 = __importDefault(require("./command/vt"));
|
|
20
|
+
const ut_1 = __importDefault(require("./command/ut"));
|
|
20
21
|
stream_1.default.setDefaultHighWaterMark(false, 67108864);
|
|
21
22
|
process.title = 'bdy';
|
|
22
23
|
process.on('uncaughtException', (err) => {
|
|
@@ -37,4 +38,5 @@ if (!(0, utils_1.isDocker)())
|
|
|
37
38
|
program.addCommand(agent_js_1.default);
|
|
38
39
|
program.addCommand(version_js_1.default);
|
|
39
40
|
program.addCommand(vt_1.default);
|
|
41
|
+
program.addCommand(ut_1.default);
|
|
40
42
|
program.parse();
|
package/distTs/src/texts.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ERR_CONNECTION_ERROR = exports.ERR_CONNECTION_TIMEOUT = exports.ERR_WRONG_STREAM = 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_TARGET_INVALID = exports.ERR_WORKSPACE_FLAGGED = exports.ERR_TUNNEL_LIMIT_REACHED = exports.ERR_DOMAIN_RESTRICTED = 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_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_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.
|
|
9
|
-
exports.DEBUG_WAIT_FOR_IDLE_TIMEOUT = 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 = void 0;
|
|
4
|
+
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.WARN_BROWSER_VERSION = exports.ERR_NO_SNAPSHOTS_TO_SEND = exports.ERR_INVALID_SNAPSHOT = 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_DOWNLOAD_RESPONSE = exports.ERR_INVALID_SCRAP_RESPONSE = exports.ERR_INVALID_COMPARE_LINKS_RESPONSE = 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_MISSING_URLS = 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_UT_TOKEN = exports.ERR_MISSING_VT_TOKEN = exports.ERR_CONFIG_CORRUPTED = exports.ERR_WRONG_TOKEN = exports.ERR_TOKEN_NOT_PROVIDED = exports.ERR_CANT_CREATE_DIR_IN_HOME = void 0;
|
|
5
|
+
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_ENABLE = exports.DESC_COMMAND_AGENT_DISABLE = exports.DESC_COMMAND_AGENT_START = exports.DESC_COMMAND_AGENT_INSTALL = exports.DESC_COMMAND_AGENT_UNINSTALL = exports.DESC_COMMAND_AGENT_TUNNEL_REMOVE = exports.DESC_COMMAND_AGENT_TUNNEL_STATUS = exports.DESC_COMMAND_AGENT_TUNNEL_LIST = 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 = exports.TXT_TUNNEL_STOPPED = exports.TXT_TUNNEL_STARTED = exports.TXT_AGENT_DISABLED = exports.TXT_AGENT_ALREADY_ENABLED = exports.TXT_AGENT_UPDATED = void 0;
|
|
6
|
+
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_FOLLOW = 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.OPTION_UPLOAD_DRY_RUN = exports.OPTION_UPLOAD_REPORT_FORMAT = exports.OPTION_UPLOAD_REPORT_GLOB = exports.DESC_COMMAND_UT_UPLOAD = exports.DESC_COMMAND_UT = exports.DESC_COMMAND_VT_INSTALL_BROWSER = exports.DESC_COMMAND_VT_EXEC = exports.DESC_COMMAND_VT_SCRAP = exports.DESC_COMMAND_VT_COMPARE = 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 = exports.DESC_COMMAND_AGENT = exports.DESC_COMMAND_HTTP = exports.DESC_COMMAND_CONFIG = void 0;
|
|
7
|
+
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_SCRAP_OUTPUT_DIR = exports.OPTION_SCRAP_DELAY = exports.OPTION_SCRAP_DARK_MODE = exports.OPTION_SCRAP_WAIT_FOR_ELEMENT = exports.OPTION_SCRAP_DEVICE_PIXEL_RATIO = exports.OPTION_SCRAP_VIEWPORT = exports.OPTION_SCRAP_BROWSER = exports.OPTION_SCRAP_XPATH_SELECTOR = exports.OPTION_SCRAP_CSS_SELECTOR = exports.OPTION_SCRAP_FULL_PAGE = exports.OPTION_SCRAP_QUALITY = exports.OPTION_SCRAP_OUTPUT_TYPE = exports.OPTION_SCRAP_FOLLOW = exports.OPTION_SCRAP_URL = exports.OPTION_COMPARE_WAIT_FOR = exports.OPTION_COMPARE_DELAY = exports.OPTION_COMPARE_HEADER = exports.OPTION_COMPARE_COOKIE = exports.OPTION_COMPARE_IGNORE = exports.OPTION_COMPARE_IGNORE_URLS = exports.OPTION_COMPARE_DRY_RUN = exports.OPTION_COMPARE_URLS_FILE = exports.OPTION_COMPARE_SITEMAP = exports.OPTION_COMPARE_URLS = exports.OPTION_COMPARE_RESPECT_ROBOTS = exports.OPTION_COMPARE_FOLLOW = 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 = 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 = void 0;
|
|
8
|
+
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 = 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 = void 0;
|
|
9
|
+
exports.DEBUG_WAIT_FOR_IDLE_TIMEOUT = 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_INSTALLED_BROWSER = exports.LOG_SESSION_LINK = exports.LOG_SENDING_DATA = exports.LOG_SENDING_REQUEST = exports.LOG_PROCESSING_SNAPSHOTS = exports.LOG_RUNNING_EXEC_COMMAND = void 0;
|
|
10
10
|
const utils_1 = require("./utils");
|
|
11
11
|
exports.ERR_AGENT_NOT_REGISTERED = 'Agent not registered. Exiting.';
|
|
12
12
|
exports.ERR_SAVING_AGENT_CONFIG = 'Failed saving agent config. Exiting.';
|
|
@@ -81,7 +81,8 @@ exports.ERR_CANT_CREATE_DIR_IN_HOME = ERR_CANT_CREATE_DIR_IN_HOME;
|
|
|
81
81
|
exports.ERR_TOKEN_NOT_PROVIDED = 'Token not provided';
|
|
82
82
|
exports.ERR_WRONG_TOKEN = 'Wrong token';
|
|
83
83
|
exports.ERR_CONFIG_CORRUPTED = 'Config file is corrupted';
|
|
84
|
-
exports.
|
|
84
|
+
exports.ERR_MISSING_VT_TOKEN = 'No token provided. Please provide a token with the BUDDY_VT_TOKEN environment variable.';
|
|
85
|
+
exports.ERR_MISSING_UT_TOKEN = 'No token provided. Please provide a token with the BUDDY_UT_TOKEN environment variable.';
|
|
85
86
|
exports.ERR_MISSING_BUILD_ID = 'No buildId provided. Please provide a buildId with the SNAPSHOTS_BUILD_ID environment variable.';
|
|
86
87
|
exports.ERR_WRONG_STORYBOOK_DIRECTORY = 'Current directory is not a storybook directory';
|
|
87
88
|
exports.ERR_MISSING_STORYBOOK_INDEX_FILE = 'Storybook index.json not found';
|
|
@@ -202,6 +203,11 @@ exports.DESC_COMMAND_VT_COMPARE = 'Create visual test session for specific set o
|
|
|
202
203
|
exports.DESC_COMMAND_VT_SCRAP = 'Scrap website';
|
|
203
204
|
exports.DESC_COMMAND_VT_EXEC = 'Run tests which use visual service plugin';
|
|
204
205
|
exports.DESC_COMMAND_VT_INSTALL_BROWSER = 'Install browser for visual test';
|
|
206
|
+
exports.DESC_COMMAND_UT = 'Commands to interact with the unit test service';
|
|
207
|
+
exports.DESC_COMMAND_UT_UPLOAD = 'Upload unit test reports';
|
|
208
|
+
exports.OPTION_UPLOAD_REPORT_GLOB = 'Glob for reports';
|
|
209
|
+
exports.OPTION_UPLOAD_REPORT_FORMAT = 'Format of the reports';
|
|
210
|
+
exports.OPTION_UPLOAD_DRY_RUN = 'Run command without uploading reports';
|
|
205
211
|
const TXT_NEW_CLI_DOCKER_VERSION = (version) => `A new version of bdy Docker image is available! (${version})\n\n`;
|
|
206
212
|
exports.TXT_NEW_CLI_DOCKER_VERSION = TXT_NEW_CLI_DOCKER_VERSION;
|
|
207
213
|
const TXT_NEW_CLI_VERSION = (version) => `A new version of bdy is available! (${version})\n\n`;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCiInfo = getCiInfo;
|
|
4
|
+
const ciInfo_1 = require("../types/ciInfo");
|
|
5
|
+
const ci_1 = require("../visualTest/ci");
|
|
6
|
+
const uuid_1 = require("uuid");
|
|
7
|
+
function getGithubRefType() {
|
|
8
|
+
const ref = process.env.GITHUB_REF || '';
|
|
9
|
+
if (ref.startsWith('refs/heads/')) {
|
|
10
|
+
return 'BRANCH';
|
|
11
|
+
}
|
|
12
|
+
if (ref.startsWith('refs/tags/')) {
|
|
13
|
+
return 'TAG';
|
|
14
|
+
}
|
|
15
|
+
if (ref.startsWith('refs/pull/')) {
|
|
16
|
+
return 'PULL_REQUEST';
|
|
17
|
+
}
|
|
18
|
+
return '';
|
|
19
|
+
}
|
|
20
|
+
function getCircleRefType() {
|
|
21
|
+
const pullRequest = process.env.CIRCLE_PR_NUMBER || '';
|
|
22
|
+
if (pullRequest) {
|
|
23
|
+
return 'PULL_REQUEST';
|
|
24
|
+
}
|
|
25
|
+
const branch = process.env.CIRCLE_BRANCH || '';
|
|
26
|
+
if (branch) {
|
|
27
|
+
return 'BRANCH';
|
|
28
|
+
}
|
|
29
|
+
const tag = process.env.CIRCLE_TAG || '';
|
|
30
|
+
if (tag) {
|
|
31
|
+
return 'TAG';
|
|
32
|
+
}
|
|
33
|
+
return '';
|
|
34
|
+
}
|
|
35
|
+
function getCircleRefName() {
|
|
36
|
+
const branch = process.env.BUDDY_RUN_BRANCH || '';
|
|
37
|
+
const pullRequest = process.env.BUDDY_RUN_PR_NUMBER || '';
|
|
38
|
+
if (pullRequest) {
|
|
39
|
+
return `${pullRequest}/${branch}`;
|
|
40
|
+
}
|
|
41
|
+
if (branch) {
|
|
42
|
+
return branch;
|
|
43
|
+
}
|
|
44
|
+
const tag = process.env.BUDDY_RUN_TAG || '';
|
|
45
|
+
if (tag) {
|
|
46
|
+
return tag;
|
|
47
|
+
}
|
|
48
|
+
return '';
|
|
49
|
+
}
|
|
50
|
+
async function getCiInfo() {
|
|
51
|
+
const isBuddy = process.env.BUDDY === 'true';
|
|
52
|
+
const isGithubAction = process.env.GITHUB_ACTIONS === 'true';
|
|
53
|
+
const isCircleCI = process.env.CIRCLECI === 'true';
|
|
54
|
+
if (isBuddy) {
|
|
55
|
+
const ciProvider = ciInfo_1.CI.BUDDY;
|
|
56
|
+
const refType = process.env.BUDDY_RUN_REF_TYPE || '';
|
|
57
|
+
const refName = process.env.BUDDY_RUN_REF || '';
|
|
58
|
+
const buildId = process.env.BUDDY_RUN_HASH || '';
|
|
59
|
+
const toRevision = process.env.BUDDY_RUN_COMMIT || '';
|
|
60
|
+
return {
|
|
61
|
+
ciProvider,
|
|
62
|
+
refType,
|
|
63
|
+
refName,
|
|
64
|
+
buildId,
|
|
65
|
+
toRevision,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
if (isGithubAction) {
|
|
69
|
+
const ciProvider = ciInfo_1.CI.GITHUB_ACTION;
|
|
70
|
+
const refType = getGithubRefType();
|
|
71
|
+
const refName = process.env.GITHUB_REF_NAME || '';
|
|
72
|
+
const buildId = process.env.GITHUB_RUN_ID || '';
|
|
73
|
+
const toRevision = process.env.GITHUB_SHA || '';
|
|
74
|
+
return {
|
|
75
|
+
ciProvider,
|
|
76
|
+
refType,
|
|
77
|
+
refName,
|
|
78
|
+
buildId,
|
|
79
|
+
toRevision,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
if (isCircleCI) {
|
|
83
|
+
const ciProvider = ciInfo_1.CI.CIRCLE_CI;
|
|
84
|
+
const refType = getCircleRefType();
|
|
85
|
+
const refName = getCircleRefName();
|
|
86
|
+
const buildId = process.env.CIRCLE_BUILD_NUM || '';
|
|
87
|
+
const toRevision = process.env.CIRCLE_SHA1 || '';
|
|
88
|
+
return {
|
|
89
|
+
ciProvider,
|
|
90
|
+
refType,
|
|
91
|
+
refName,
|
|
92
|
+
buildId,
|
|
93
|
+
toRevision,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
const ciProvider = ciInfo_1.CI.NONE;
|
|
97
|
+
const refType = 'BRANCH';
|
|
98
|
+
const refName = (await (0, ci_1.getBranchName)()) || '';
|
|
99
|
+
const buildId = (0, uuid_1.v4)();
|
|
100
|
+
const toRevision = (await (0, ci_1.getCommitHash)()) || '';
|
|
101
|
+
return {
|
|
102
|
+
ciProvider,
|
|
103
|
+
refType,
|
|
104
|
+
refName,
|
|
105
|
+
buildId,
|
|
106
|
+
toRevision,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
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.sendUploadRequest = sendUploadRequest;
|
|
7
|
+
const output_1 = __importDefault(require("../output"));
|
|
8
|
+
const texts_1 = require("../texts");
|
|
9
|
+
const utils_1 = require("../utils");
|
|
10
|
+
const node_fs_1 = require("node:fs");
|
|
11
|
+
const undici_1 = require("undici");
|
|
12
|
+
const token = process.env.BUDDY_UT_TOKEN || '';
|
|
13
|
+
const customServiceUrl = process.env.SNAPSHOTS_SERVICE_URL;
|
|
14
|
+
function getServiceUrl() {
|
|
15
|
+
if (customServiceUrl) {
|
|
16
|
+
return customServiceUrl;
|
|
17
|
+
}
|
|
18
|
+
if (token.startsWith('bud_ut_eu')) {
|
|
19
|
+
return 'https://api.eu.buddy.works';
|
|
20
|
+
}
|
|
21
|
+
return 'https://api.buddy.works';
|
|
22
|
+
}
|
|
23
|
+
async function sendUploadRequest(files, ciInfo) {
|
|
24
|
+
const formData = new undici_1.FormData();
|
|
25
|
+
files.forEach((file) => {
|
|
26
|
+
if ((0, utils_1.isFile)(file)) {
|
|
27
|
+
const buffer = (0, node_fs_1.readFileSync)(file);
|
|
28
|
+
formData.append('files', buffer);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
formData.append('ref_type', ciInfo.refType);
|
|
32
|
+
formData.append('ref_name', ciInfo.refName);
|
|
33
|
+
formData.append('ci_provider', ciInfo.ciProvider);
|
|
34
|
+
formData.append('to_revision', ciInfo.toRevision);
|
|
35
|
+
formData.append('build_id', ciInfo.buildId);
|
|
36
|
+
const [message, json] = await sendRequest({
|
|
37
|
+
url: '/unit-tests/import',
|
|
38
|
+
payload: formData,
|
|
39
|
+
});
|
|
40
|
+
if (message) {
|
|
41
|
+
output_1.default.error(message);
|
|
42
|
+
}
|
|
43
|
+
if (json && json.errors) {
|
|
44
|
+
output_1.default.exitError(json.errors.map((e) => `${e.message}`).join('\n'));
|
|
45
|
+
}
|
|
46
|
+
return json;
|
|
47
|
+
}
|
|
48
|
+
async function sendRequest({ url, payload, }) {
|
|
49
|
+
const fullUrl = `${getServiceUrl()}${url}`;
|
|
50
|
+
output_1.default.debug((0, texts_1.LOG_SENDING_REQUEST)(fullUrl));
|
|
51
|
+
const init = {
|
|
52
|
+
method: 'POST',
|
|
53
|
+
redirect: 'follow',
|
|
54
|
+
headers: {
|
|
55
|
+
Authorization: `Bearer ${token}`,
|
|
56
|
+
},
|
|
57
|
+
body: payload,
|
|
58
|
+
};
|
|
59
|
+
const response = await (0, undici_1.fetch)(fullUrl, init);
|
|
60
|
+
const contentType = response.headers.get('content-type');
|
|
61
|
+
if (contentType && contentType.includes('application/json')) {
|
|
62
|
+
try {
|
|
63
|
+
const json = (await response.json());
|
|
64
|
+
return [undefined, json];
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
throw new Error(texts_1.ERR_INVALID_JSON);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const text = await response.text();
|
|
71
|
+
return [text, undefined];
|
|
72
|
+
}
|
package/distTs/src/utils.js
CHANGED
|
@@ -30,6 +30,7 @@ exports.TUNNEL_EVENT_HTTP_CLOSED = exports.TUNNEL_EVENT_HTTP_OPEN = exports.TUNN
|
|
|
30
30
|
exports.TUNNEL_COMPRESSION_METHOD_BR = exports.TUNNEL_COMPRESSION_METHOD_IDENTITY = exports.TARGET_ONLY_PORT_REGEX = exports.TARGET_HTTP_REGEX = exports.TARGET_TCP_TLS_REGEX = exports.ApiErrorTunnelsDisabled = exports.ApiErrorWorkspaceFlagged = exports.ApiErrorTunnelLimitReached = exports.ApiErrorAgentLimitReached = exports.ApiErrorDomainRestricted = exports.ApiErrorTargetInvalid = exports.ApiErrorWrongToken = exports.ApiErrorFailedToConnect = exports.ApiErrorAgentNotFound = exports.SUGGESTED_BROWSER_VERSION = exports.SOCKET_IO_EVENT_TUNNEL = exports.SOCKET_IO_EVENT_AGENT = exports.SOCKET_IO_EVENT_FETCH_FAILED = exports.SOCKET_IO_EVENT_FETCH_SUCCESS = exports.SOCKET_IO_EVENT_DISCONNECTED = exports.SOCKET_IO_EVENT_CONNECTED = exports.AGENT_SOCKET_MESSAGE_TUNNEL_HTTP_RETRY = exports.AGENT_SOCKET_MESSAGE_TUNNEL_HTTP_RESPONSE = exports.AGENT_SOCKET_MESSAGE_TUNNEL_HTTP_REQUEST = exports.AGENT_SOCKET_MESSAGE_TUNNEL_HTTP_REQUESTS = exports.AGENT_SOCKET_MESSAGE_TUNNEL_HTTP_IDENTIFIED = exports.AGENT_SOCKET_MESSAGE_TUNNEL_TLS_CLOSED = exports.AGENT_SOCKET_MESSAGE_TUNNEL_TLS_OPEN = exports.AGENT_SOCKET_MESSAGE_TUNNEL_TCP_CLOSED = exports.AGENT_SOCKET_MESSAGE_TUNNEL_TCP_OPEN = exports.AGENT_SOCKET_MESSAGE_TUNNEL_CLOSED = exports.AGENT_SOCKET_MESSAGE_TUNNEL_OPEN = exports.AGENT_SOCKET_MESSAGE_TUNNEL_STOPPED = exports.AGENT_SOCKET_MESSAGE_TUNNEL = exports.AGENT_SOCKET_MESSAGE_READY = exports.AGENT_ACTION_DELETE = exports.AGENT_ACTION_RESTART = exports.AGENT_ACTION_START = exports.AGENT_ACTION_STOP = exports.AGENT_STATUS_ENABLED = exports.AGENT_STATUS_FETCH_FAILED = exports.AGENT_STATUS_INITIALIZING = exports.AGENT_STATUS_DISABLED = exports.DEFAULT_TIMEOUT = exports.TUNNEL_CLOSED = exports.TUNNEL_OPEN = exports.TUNNEL_EVENT_STOPPED = exports.TUNNEL_EVENT_HTTP_RESPONSE = exports.TUNNEL_EVENT_HTTP_REQUEST = exports.TUNNEL_EVENT_HTTP_IDENTIFIED = void 0;
|
|
31
31
|
exports.getBasicCommandTls = exports.getBasicCommandHttp = exports.getBasicCommandTcp = exports.createSshHostKey = exports.getRealTargetHost = exports.isWindows = exports.isLinux = exports.isOsx = exports.isDocker = exports.sleep = exports.getLatestVersion = exports.getVersionEnv = exports.getVersionWithoutEnv = exports.getVersion = exports.getHomeDirectory = exports.newCommand = exports.formatHelp = exports.getPlatform = exports.getHostname = exports.isStringRegExp = exports.getRootDir = exports.TCP_EVENT_CLOSED = exports.TUNNEL_LATENCY_EVENT_RECONNECTED = exports.TUNNEL_COMPRESSION_METHOD_DEFLATE = exports.TUNNEL_COMPRESSION_METHOD_GZIP = void 0;
|
|
32
32
|
exports.apiErrorCodeToClass = apiErrorCodeToClass;
|
|
33
|
+
exports.isFile = isFile;
|
|
33
34
|
const node_path_1 = __importStar(require("node:path"));
|
|
34
35
|
const node_fs_1 = require("node:fs");
|
|
35
36
|
const texts_1 = require("./texts");
|
|
@@ -451,3 +452,11 @@ const getBasicCommandTls = () => {
|
|
|
451
452
|
return commandTls;
|
|
452
453
|
};
|
|
453
454
|
exports.getBasicCommandTls = getBasicCommandTls;
|
|
455
|
+
function isFile(path) {
|
|
456
|
+
try {
|
|
457
|
+
return (0, node_fs_1.statSync)(path).isFile();
|
|
458
|
+
}
|
|
459
|
+
catch {
|
|
460
|
+
return false;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
@@ -3,6 +3,8 @@ 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
|
+
exports.getBranchName = getBranchName;
|
|
7
|
+
exports.getCommitHash = getCommitHash;
|
|
6
8
|
exports.getCiAndGitInfo = getCiAndGitInfo;
|
|
7
9
|
exports.logCiInfo = logCiInfo;
|
|
8
10
|
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
@@ -130,7 +132,7 @@ async function getCommitDetails(commitHash) {
|
|
|
130
132
|
}
|
|
131
133
|
}
|
|
132
134
|
}
|
|
133
|
-
async function getCiAndGitInfo(baseBranch) {
|
|
135
|
+
async function getCiAndGitInfo({ baseBranch, skipBaseCommitDiscovery, }) {
|
|
134
136
|
const isBuddy = process.env.BUDDY === 'true';
|
|
135
137
|
const isGithubAction = process.env.GITHUB_ACTIONS === 'true';
|
|
136
138
|
const isCircleCI = process.env.CIRCLECI === 'true';
|
|
@@ -138,7 +140,7 @@ async function getCiAndGitInfo(baseBranch) {
|
|
|
138
140
|
const forceBranch = process.env.SNAPSHOTS_BRANCH;
|
|
139
141
|
const forceCommit = process.env.SNAPSHOTS_COMMIT;
|
|
140
142
|
const forceBaseCommit = process.env.SNAPSHOTS_BASE_COMMIT;
|
|
141
|
-
const withoutBaseCommit = baseBranch === undefined;
|
|
143
|
+
const withoutBaseCommit = baseBranch === undefined || skipBaseCommitDiscovery;
|
|
142
144
|
if (isBuddy) {
|
|
143
145
|
const pullRequestNumber = Number(process.env.BUDDY_RUN_PR_NO);
|
|
144
146
|
const isPR = !!pullRequestNumber;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bdy",
|
|
3
3
|
"preferGlobal": false,
|
|
4
|
-
"version": "1.10.
|
|
4
|
+
"version": "1.10.13-dev",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"scripts": {
|
|
@@ -36,6 +36,8 @@
|
|
|
36
36
|
"node-fetch": "3.3.2",
|
|
37
37
|
"node-forge": "1.3.1",
|
|
38
38
|
"path-is-inside": "1.0.2",
|
|
39
|
+
"fdir": "6.5.0",
|
|
40
|
+
"picomatch": "4.0.3",
|
|
39
41
|
"pino": "8.20.0",
|
|
40
42
|
"punycode.js": "2.3.1",
|
|
41
43
|
"puppeteer-core": "23.6.0",
|
|
@@ -48,8 +50,7 @@
|
|
|
48
50
|
"uuid": "10.0.0",
|
|
49
51
|
"which": "4.0.0",
|
|
50
52
|
"ws": "8.18.0",
|
|
51
|
-
"zod": "3.24.2"
|
|
52
|
-
"fast-xml-parser": "4.5.1"
|
|
53
|
+
"zod": "3.24.2"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
55
56
|
"@eslint/js": "9.13.0",
|
|
@@ -59,6 +60,7 @@
|
|
|
59
60
|
"@rollup/plugin-replace": "6.0.1",
|
|
60
61
|
"@stylistic/eslint-plugin-js": "2.9.0",
|
|
61
62
|
"@types/cross-spawn": "6.0.6",
|
|
63
|
+
"@types/picomatch": "4.0.2",
|
|
62
64
|
"@types/eslint__js": "8.42.3",
|
|
63
65
|
"@types/ssh2": "1.15.1",
|
|
64
66
|
"@types/tar-stream": "3.1.3",
|