bdy 1.12.8-beta → 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.
Files changed (156) hide show
  1. package/distTs/package.json +1 -1
  2. package/package.json +1 -1
  3. package/distTs/bin/cli.js +0 -5
  4. package/distTs/src/agent/agent.js +0 -328
  5. package/distTs/src/agent/linux.js +0 -124
  6. package/distTs/src/agent/manager.js +0 -519
  7. package/distTs/src/agent/osx.js +0 -146
  8. package/distTs/src/agent/socket/client.js +0 -178
  9. package/distTs/src/agent/socket/tunnel.js +0 -237
  10. package/distTs/src/agent/socket.js +0 -242
  11. package/distTs/src/agent/system.js +0 -179
  12. package/distTs/src/agent/wait.js +0 -23
  13. package/distTs/src/agent/windows.js +0 -159
  14. package/distTs/src/agent.js +0 -302
  15. package/distTs/src/api/agent.js +0 -99
  16. package/distTs/src/api/buddy.js +0 -139
  17. package/distTs/src/api/socket.js +0 -159
  18. package/distTs/src/cfg.js +0 -234
  19. package/distTs/src/command/agent/disable.js +0 -27
  20. package/distTs/src/command/agent/enable.js +0 -27
  21. package/distTs/src/command/agent/install.js +0 -117
  22. package/distTs/src/command/agent/restart.js +0 -27
  23. package/distTs/src/command/agent/run.js +0 -19
  24. package/distTs/src/command/agent/start.js +0 -28
  25. package/distTs/src/command/agent/status.js +0 -34
  26. package/distTs/src/command/agent/stop.js +0 -28
  27. package/distTs/src/command/agent/target/disable.js +0 -27
  28. package/distTs/src/command/agent/target/enable.js +0 -27
  29. package/distTs/src/command/agent/target/status.js +0 -32
  30. package/distTs/src/command/agent/target.js +0 -15
  31. package/distTs/src/command/agent/tunnel/http.js +0 -43
  32. package/distTs/src/command/agent/tunnel/list.js +0 -27
  33. package/distTs/src/command/agent/tunnel/remove.js +0 -28
  34. package/distTs/src/command/agent/tunnel/start.js +0 -34
  35. package/distTs/src/command/agent/tunnel/status.js +0 -31
  36. package/distTs/src/command/agent/tunnel/tcp.js +0 -43
  37. package/distTs/src/command/agent/tunnel/tls.js +0 -43
  38. package/distTs/src/command/agent/tunnel.js +0 -23
  39. package/distTs/src/command/agent/uninstall.js +0 -44
  40. package/distTs/src/command/agent/update.js +0 -38
  41. package/distTs/src/command/agent/version.js +0 -21
  42. package/distTs/src/command/agent.js +0 -35
  43. package/distTs/src/command/config/add/http.js +0 -25
  44. package/distTs/src/command/config/add/tcp.js +0 -25
  45. package/distTs/src/command/config/add/tls.js +0 -25
  46. package/distTs/src/command/config/add.js +0 -15
  47. package/distTs/src/command/config/get/region.js +0 -15
  48. package/distTs/src/command/config/get/timeout.js +0 -15
  49. package/distTs/src/command/config/get/token.js +0 -15
  50. package/distTs/src/command/config/get/tunnel.js +0 -19
  51. package/distTs/src/command/config/get/tunnels.js +0 -15
  52. package/distTs/src/command/config/get/whitelist.js +0 -15
  53. package/distTs/src/command/config/get.js +0 -21
  54. package/distTs/src/command/config/remove/tunnel.js +0 -19
  55. package/distTs/src/command/config/remove.js +0 -11
  56. package/distTs/src/command/config/set/region.js +0 -17
  57. package/distTs/src/command/config/set/timeout.js +0 -17
  58. package/distTs/src/command/config/set/token.js +0 -16
  59. package/distTs/src/command/config/set/whitelist.js +0 -17
  60. package/distTs/src/command/config/set.js +0 -17
  61. package/distTs/src/command/config.js +0 -17
  62. package/distTs/src/command/http.js +0 -30
  63. package/distTs/src/command/pre.js +0 -49
  64. package/distTs/src/command/start.js +0 -28
  65. package/distTs/src/command/tcp.js +0 -30
  66. package/distTs/src/command/tls.js +0 -30
  67. package/distTs/src/command/tunnel/config.js +0 -17
  68. package/distTs/src/command/tunnel/http.js +0 -31
  69. package/distTs/src/command/tunnel/start.js +0 -28
  70. package/distTs/src/command/tunnel/tcp.js +0 -30
  71. package/distTs/src/command/tunnel/tls.js +0 -30
  72. package/distTs/src/command/tunnel.js +0 -19
  73. package/distTs/src/command/ut/upload.js +0 -108
  74. package/distTs/src/command/ut.js +0 -12
  75. package/distTs/src/command/version.js +0 -13
  76. package/distTs/src/command/vt/close.js +0 -27
  77. package/distTs/src/command/vt/compare/validation.js +0 -173
  78. package/distTs/src/command/vt/compare.js +0 -97
  79. package/distTs/src/command/vt/exec.js +0 -81
  80. package/distTs/src/command/vt/installBrowser.js +0 -20
  81. package/distTs/src/command/vt/scrap.js +0 -193
  82. package/distTs/src/command/vt/storybook.js +0 -92
  83. package/distTs/src/command/vt.js +0 -22
  84. package/distTs/src/format.js +0 -174
  85. package/distTs/src/index.js +0 -34
  86. package/distTs/src/input.js +0 -270
  87. package/distTs/src/logger.js +0 -95
  88. package/distTs/src/output/interactive/tunnel.js +0 -860
  89. package/distTs/src/output/noninteractive/agent/tunnels.js +0 -43
  90. package/distTs/src/output/noninteractive/config/tunnel.js +0 -65
  91. package/distTs/src/output/noninteractive/config/tunnels.js +0 -18
  92. package/distTs/src/output/noninteractive/tunnel.js +0 -59
  93. package/distTs/src/output.js +0 -143
  94. package/distTs/src/server/cert.js +0 -52
  95. package/distTs/src/server/http1.js +0 -75
  96. package/distTs/src/server/http2.js +0 -78
  97. package/distTs/src/server/sftp.js +0 -497
  98. package/distTs/src/server/ssh.js +0 -446
  99. package/distTs/src/server/tls.js +0 -41
  100. package/distTs/src/ssh/client.js +0 -197
  101. package/distTs/src/texts.js +0 -421
  102. package/distTs/src/tunnel/agent.js +0 -103
  103. package/distTs/src/tunnel/api/agent.js +0 -100
  104. package/distTs/src/tunnel/api/buddy.js +0 -141
  105. package/distTs/src/tunnel/cfg.js +0 -243
  106. package/distTs/src/tunnel/compression.js +0 -44
  107. package/distTs/src/tunnel/dns.js +0 -53
  108. package/distTs/src/tunnel/html/503.html +0 -338
  109. package/distTs/src/tunnel/html.js +0 -33
  110. package/distTs/src/tunnel/http/log.js +0 -218
  111. package/distTs/src/tunnel/http/serve.js +0 -133
  112. package/distTs/src/tunnel/http/stream.js +0 -34
  113. package/distTs/src/tunnel/http.js +0 -508
  114. package/distTs/src/tunnel/identification.js +0 -103
  115. package/distTs/src/tunnel/latency.js +0 -83
  116. package/distTs/src/tunnel/output/interactive/tunnel.js +0 -867
  117. package/distTs/src/tunnel/output/noninteractive/agent/tunnels.js +0 -45
  118. package/distTs/src/tunnel/output/noninteractive/config/tunnel.js +0 -67
  119. package/distTs/src/tunnel/output/noninteractive/config/tunnels.js +0 -20
  120. package/distTs/src/tunnel/output/noninteractive/tunnel.js +0 -61
  121. package/distTs/src/tunnel/server/cert.js +0 -54
  122. package/distTs/src/tunnel/server/http1.js +0 -80
  123. package/distTs/src/tunnel/server/http2.js +0 -84
  124. package/distTs/src/tunnel/server/sftp.js +0 -514
  125. package/distTs/src/tunnel/server/ssh.js +0 -464
  126. package/distTs/src/tunnel/server/tls.js +0 -47
  127. package/distTs/src/tunnel/ssh/client.js +0 -211
  128. package/distTs/src/tunnel/tcp.js +0 -113
  129. package/distTs/src/tunnel/tunnel.js +0 -1010
  130. package/distTs/src/tunnel.js +0 -656
  131. package/distTs/src/types/ciInfo.js +0 -10
  132. package/distTs/src/types/options.js +0 -2
  133. package/distTs/src/types/plugin.js +0 -2
  134. package/distTs/src/types/queue.js +0 -2
  135. package/distTs/src/types/requests.js +0 -2
  136. package/distTs/src/types/resources.js +0 -2
  137. package/distTs/src/types/schemas.js +0 -54
  138. package/distTs/src/types/scrape.js +0 -2
  139. package/distTs/src/types/snapshots.js +0 -2
  140. package/distTs/src/types/storybook.js +0 -2
  141. package/distTs/src/types/tunnel.js +0 -141
  142. package/distTs/src/unitTest/ci.js +0 -108
  143. package/distTs/src/unitTest/requests.js +0 -72
  144. package/distTs/src/utils.js +0 -378
  145. package/distTs/src/visualTest/browser.js +0 -39
  146. package/distTs/src/visualTest/ci.js +0 -241
  147. package/distTs/src/visualTest/context.js +0 -52
  148. package/distTs/src/visualTest/exec.js +0 -51
  149. package/distTs/src/visualTest/linkUtils.js +0 -21
  150. package/distTs/src/visualTest/queue.js +0 -43
  151. package/distTs/src/visualTest/requests.js +0 -365
  152. package/distTs/src/visualTest/resources.js +0 -259
  153. package/distTs/src/visualTest/server.js +0 -109
  154. package/distTs/src/visualTest/snapshots.js +0 -129
  155. package/distTs/src/visualTest/utils/parseDom.js +0 -238
  156. package/distTs/src/visualTest/validation.js +0 -18
@@ -1,81 +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 context_1 = require("../../visualTest/context");
12
- const server_1 = require("../../visualTest/server");
13
- const which_1 = __importDefault(require("which"));
14
- const snapshots_1 = require("../../visualTest/snapshots");
15
- const ci_1 = require("../../visualTest/ci");
16
- const exec_1 = require("../../visualTest/exec");
17
- const browser_1 = require("../../visualTest/browser");
18
- const commandVtExec = (0, utils_1.newCommand)('exec', texts_1.DESC_COMMAND_VT_EXEC);
19
- commandVtExec.argument('<command>', texts_1.OPTION_EXEC_COMMAND);
20
- commandVtExec.option('--skipDiscovery', texts_1.OPTION_EXEC_SKIP_DISCOVERY);
21
- commandVtExec.option('--oneByOne', texts_1.OPTION_EXEC_ONE_BY_ONE);
22
- commandVtExec.option('--parallel', texts_1.OPTION_EXEC_PARALLEL);
23
- commandVtExec.action(async (command, options) => {
24
- (0, context_1.setExecOptions)(options);
25
- try {
26
- const browserPath = await (0, browser_1.getBrowserPath)();
27
- (0, context_1.setBrowserPath)(browserPath);
28
- }
29
- catch (error) {
30
- output_1.default.exitError(`${error}`);
31
- }
32
- if (!(0, validation_1.checkToken)()) {
33
- output_1.default.exitError(texts_1.ERR_MISSING_VT_TOKEN);
34
- }
35
- if (!(0, validation_1.checkParallel)()) {
36
- output_1.default.exitError(texts_1.ERR_MISSING_BUILD_ID);
37
- }
38
- const app = await (0, server_1.createServer)();
39
- const [mainCommand, ...mainCommandArguments] = command.split(' ');
40
- output_1.default.normal((0, texts_1.LOG_RUNNING_EXEC_COMMAND)(`${mainCommand} ${[...mainCommandArguments].join(' ')}`));
41
- const resolved = await (0, which_1.default)(mainCommand, { nothrow: true });
42
- if (!resolved) {
43
- output_1.default.exitError((0, texts_1.ERR_MISSING_EXEC_COMMAND)(`${mainCommand} ${[...mainCommandArguments].join(' ')}`));
44
- }
45
- try {
46
- let t1, t11;
47
- if (context_1.debug) {
48
- t1 = performance.now();
49
- }
50
- const defaultSettings = await (0, requests_1.getDefaultSettings)();
51
- (0, snapshots_1.setDefaultSettings)(defaultSettings);
52
- const ciAndGitInfo = await (0, ci_1.getCiAndGitInfo)({
53
- baseBranch: defaultSettings.baseBranch,
54
- });
55
- (0, context_1.setCiAndCommitInfo)(ciAndGitInfo);
56
- (0, ci_1.logCiInfo)(ciAndGitInfo);
57
- if (context_1.debug) {
58
- t11 = performance.now();
59
- }
60
- const spawnedProcessExitCode = await (0, exec_1.testExec)(mainCommand, [
61
- ...mainCommandArguments,
62
- ]);
63
- if (context_1.debug && t11) {
64
- const t22 = performance.now();
65
- output_1.default.normal((0, texts_1.DEBUG_EXEC_TEST_COMMAND)(t22 - t11));
66
- }
67
- await app.close();
68
- await (0, snapshots_1.finishProcessingSnapshots)(spawnedProcessExitCode);
69
- (0, snapshots_1.showSessionLink)();
70
- if (context_1.debug && t1) {
71
- const t2 = performance.now();
72
- output_1.default.normal((0, texts_1.DEBUG_EXEC_COMMAND)(t2 - t1));
73
- }
74
- process.exit(spawnedProcessExitCode);
75
- }
76
- catch (error) {
77
- await app.close();
78
- output_1.default.exitError(`${error}`);
79
- }
80
- });
81
- exports.default = commandVtExec;
@@ -1,20 +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 output_1 = __importDefault(require("../../output"));
9
- const browser_1 = require("../../visualTest/browser");
10
- const commandVtInstallBrowser = (0, utils_1.newCommand)('install-browser', texts_1.DESC_COMMAND_VT_INSTALL_BROWSER);
11
- commandVtInstallBrowser.action(async () => {
12
- try {
13
- await (0, browser_1.installBrowser)();
14
- output_1.default.exitNormal('');
15
- }
16
- catch (error) {
17
- output_1.default.exitError(`${error}`);
18
- }
19
- });
20
- exports.default = commandVtInstallBrowser;
@@ -1,193 +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 commander_1 = require("commander");
8
- const texts_1 = require("../../texts");
9
- const validation_1 = require("../../visualTest/validation");
10
- const output_1 = __importDefault(require("../../output"));
11
- const requests_1 = require("../../visualTest/requests");
12
- const zod_1 = require("zod");
13
- const node_zlib_1 = require("node:zlib");
14
- const tar_stream_1 = __importDefault(require("tar-stream"));
15
- const promises_1 = require("node:stream/promises");
16
- const node_fs_1 = require("node:fs");
17
- const node_path_1 = __importDefault(require("node:path"));
18
- const promises_2 = require("node:fs/promises");
19
- const commandScrap = (0, utils_1.newCommand)('scrap', texts_1.DESC_COMMAND_VT_SCRAP);
20
- commandScrap.argument('<url>', texts_1.OPTION_SCRAP_URL);
21
- commandScrap.option('--follow', texts_1.OPTION_SCRAP_FOLLOW, false);
22
- commandScrap.addOption(new commander_1.Option('--outputType <type>', texts_1.OPTION_SCRAP_OUTPUT_TYPE)
23
- .choices(['jpeg', 'png', 'md', 'html'])
24
- .makeOptionMandatory());
25
- commandScrap.option('--quality <quality>', texts_1.OPTION_SCRAP_QUALITY);
26
- commandScrap.option('--fullPage', texts_1.OPTION_SCRAP_FULL_PAGE, false);
27
- commandScrap.option('--cssSelector <selector>', texts_1.OPTION_SCRAP_CSS_SELECTOR);
28
- commandScrap.option('--xpathSelector <selector>', texts_1.OPTION_SCRAP_XPATH_SELECTOR);
29
- commandScrap.addOption(new commander_1.Option('--browser <browser>', texts_1.OPTION_SCRAP_BROWSER)
30
- .choices(['chrome', 'firefox', 'safari'])
31
- .default('chrome'));
32
- commandScrap.option('--viewport <viewport>', texts_1.OPTION_SCRAP_VIEWPORT, '1920x1080');
33
- commandScrap.option('--devicePixelRatio <ratio>', texts_1.OPTION_SCRAP_DEVICE_PIXEL_RATIO, '1');
34
- commandScrap.option('--waitForElement <selector>', texts_1.OPTION_SCRAP_WAIT_FOR_ELEMENT);
35
- commandScrap.option('--darkMode', texts_1.OPTION_SCRAP_DARK_MODE, false);
36
- commandScrap.option('--delay <delay>', texts_1.OPTION_SCRAP_DELAY, '0');
37
- commandScrap.option('--outputDir <dir>', texts_1.OPTION_SCRAP_OUTPUT_DIR, '.');
38
- commandScrap.action(async (inputUrl, options) => {
39
- if (!(0, validation_1.checkToken)()) {
40
- output_1.default.exitError(texts_1.ERR_MISSING_VT_TOKEN);
41
- }
42
- const { url, follow, outputType, quality, outputDir, fullPage, cssSelector, xpathSelector, browser, viewport, devicePixelRatio, darkMode, delay, waitForElement, } = validateInputAndOptions(inputUrl, options);
43
- try {
44
- const { buildId } = await (0, requests_1.sendScrap)(url, outputType, follow, quality, fullPage, cssSelector, xpathSelector, browser, viewport, devicePixelRatio, darkMode, delay, waitForElement);
45
- output_1.default.normal('Starting scrap session');
46
- const status = await watchSessionStatus(buildId);
47
- if (!status.ok) {
48
- output_1.default.exitError(`Unexpected error while watching session status: ${status.error}`);
49
- }
50
- output_1.default.normal('Downloading scrap package');
51
- const scrapPackageStream = await (0, requests_1.downloadScrapPackage)(buildId);
52
- const brotliDecompressor = (0, node_zlib_1.createBrotliDecompress)();
53
- const unpack = tar_stream_1.default.extract();
54
- unpack.on('entry', async (header, stream, next) => {
55
- const currentDir = process.cwd();
56
- const preparedOutputDir = outputDir.startsWith('.')
57
- ? node_path_1.default.join(currentDir, outputDir)
58
- : outputDir;
59
- const newFilePath = node_path_1.default.join(preparedOutputDir, header.name);
60
- try {
61
- if (header.type === 'file') {
62
- await (0, promises_2.mkdir)(node_path_1.default.dirname(newFilePath), { recursive: true });
63
- const fileWriteStream = (0, node_fs_1.createWriteStream)(newFilePath);
64
- await (0, promises_1.pipeline)(stream, fileWriteStream);
65
- next();
66
- }
67
- else {
68
- stream.resume();
69
- next();
70
- }
71
- }
72
- catch (entryError) {
73
- output_1.default.error(`Error processing entry ${header.name}: ${entryError}`);
74
- next(entryError);
75
- }
76
- });
77
- await (0, promises_1.pipeline)(scrapPackageStream, brotliDecompressor, unpack);
78
- output_1.default.exitSuccess('Downloading scrap package finished');
79
- }
80
- catch (error) {
81
- output_1.default.exitError(`${error}`);
82
- }
83
- });
84
- function validateInputAndOptions(input, options) {
85
- const urlSchema = zod_1.z.string().url();
86
- const optionsSchema = zod_1.z.object({
87
- follow: zod_1.z.boolean(),
88
- outputType: zod_1.z.enum(['jpeg', 'png', 'md', 'html']),
89
- quality: zod_1.z.coerce.number().min(1).max(100).optional(),
90
- outputDir: zod_1.z.string().default('.'),
91
- fullPage: zod_1.z.boolean().optional(),
92
- cssSelector: zod_1.z.string().optional(),
93
- xpathSelector: zod_1.z.string().optional(),
94
- browser: zod_1.z.enum(['chrome', 'firefox', 'safari']),
95
- viewport: zod_1.z
96
- .string()
97
- .refine((value) => {
98
- const [width, height] = value.split('x');
99
- return (width &&
100
- height &&
101
- !isNaN(Number(width)) &&
102
- !isNaN(Number(height)) &&
103
- Number(width) > 0 &&
104
- Number(height) > 0);
105
- }, 'Invalid viewport format, example: 1920x1080')
106
- .transform((value) => {
107
- const [width, height] = value.split('x');
108
- return {
109
- width: Number(width),
110
- height: Number(height),
111
- };
112
- }),
113
- devicePixelRatio: zod_1.z.coerce.number().min(1).max(4),
114
- darkMode: zod_1.z.boolean(),
115
- delay: zod_1.z.coerce.number().min(0).max(10000),
116
- waitForElement: zod_1.z.string().optional(),
117
- });
118
- try {
119
- const url = urlSchema.parse(input);
120
- const { follow, outputType, quality, outputDir, fullPage, cssSelector, xpathSelector, browser, viewport, devicePixelRatio, darkMode, delay, waitForElement, } = optionsSchema.parse(options);
121
- if (typeof quality === 'number' && outputType !== 'jpeg') {
122
- output_1.default.exitError('Quality is only supported for jpeg output type, use --outputType jpeg');
123
- }
124
- if (cssSelector && xpathSelector) {
125
- output_1.default.exitError('Only one of --cssSelector or --xpathSelector can be used');
126
- }
127
- return {
128
- url,
129
- follow,
130
- outputType,
131
- quality,
132
- outputDir,
133
- fullPage,
134
- cssSelector,
135
- xpathSelector,
136
- browser,
137
- viewport,
138
- devicePixelRatio,
139
- darkMode,
140
- delay,
141
- waitForElement,
142
- };
143
- }
144
- catch (error) {
145
- if (error instanceof zod_1.ZodError) {
146
- output_1.default.exitError(error.errors.map((e) => `${e.path}: ${e.message}`).join(', '));
147
- }
148
- else {
149
- throw error;
150
- }
151
- }
152
- }
153
- async function watchSessionStatus(buildId) {
154
- return new Promise((resolve) => {
155
- const eventSource = (0, requests_1.connectToScrapSession)(buildId);
156
- eventSource.addEventListener('SESSION_STATUS', (event) => {
157
- const data = JSON.parse(event.data);
158
- if (data.status === 'GATHER_URLS_COMPLETED') {
159
- output_1.default.normal(`Gathering URLs completed, found ${data.text} URLs`);
160
- }
161
- else if (data.status === 'GATHER_URLS_FAILED') {
162
- output_1.default.error('Gathering URLs failed');
163
- }
164
- else if (data.status === 'SCRAPE_URL_COMPLETED') {
165
- output_1.default.normal(`Scraping ${data.text} completed`);
166
- }
167
- else if (data.status === 'SCRAPE_URL_FAILED') {
168
- output_1.default.error(`Scraping ${data.text} failed`);
169
- }
170
- else if (data.status === 'CREATE_PACKAGE_COMPLETED') {
171
- output_1.default.normal('Package created');
172
- }
173
- else if (data.status === 'CREATE_PACKAGE_FAILED') {
174
- output_1.default.error('Package creation failed');
175
- }
176
- else if (data.status === 'FINISHED') {
177
- eventSource.close();
178
- output_1.default.normal('Scrap session finished');
179
- resolve({ ok: true });
180
- }
181
- });
182
- eventSource.addEventListener('error', (event) => {
183
- if (event.code) {
184
- eventSource.close();
185
- if (event.code === 410) {
186
- output_1.default.normal('Scrap session finished');
187
- }
188
- resolve({ ok: event.code === 410, error: event.code });
189
- }
190
- });
191
- });
192
- }
193
- exports.default = commandScrap;
@@ -1,92 +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 snapshots_1 = require("../../visualTest/snapshots");
12
- const ci_1 = require("../../visualTest/ci");
13
- const context_1 = require("../../visualTest/context");
14
- const node_fs_1 = require("node:fs");
15
- const node_path_1 = __importDefault(require("node:path"));
16
- const commandVtStorybook = (0, utils_1.newCommand)('storybook', texts_1.DESC_COMMAND_VT_STORYBOOK);
17
- commandVtStorybook.action(async () => {
18
- if (!(0, validation_1.checkToken)()) {
19
- output_1.default.exitError(texts_1.ERR_MISSING_VT_TOKEN);
20
- }
21
- const currentDirectoryFiles = getCurrentDirectoryFiles();
22
- if (!isStorybookDirectory(currentDirectoryFiles)) {
23
- output_1.default.exitError(texts_1.ERR_WRONG_STORYBOOK_DIRECTORY);
24
- }
25
- const storybookStoriesIndex = getStorybookStoriesIndex(currentDirectoryFiles);
26
- const storiesList = getStoriesList(storybookStoriesIndex);
27
- const storybookSnapshots = getStorybookSnapshots(storiesList);
28
- const defaultSettings = await (0, requests_1.getDefaultSettings)();
29
- (0, snapshots_1.setDefaultSettings)(defaultSettings);
30
- const ciAndGitInfo = await (0, ci_1.getCiAndGitInfo)({
31
- baseBranch: defaultSettings.baseBranch,
32
- });
33
- (0, context_1.setCiAndCommitInfo)(ciAndGitInfo);
34
- (0, ci_1.logCiInfo)(ciAndGitInfo);
35
- try {
36
- const { message } = await (0, requests_1.sendStorybook)(storybookSnapshots, currentDirectoryFiles);
37
- output_1.default.exitSuccess(message);
38
- }
39
- catch (error) {
40
- output_1.default.exitError(`${error}`);
41
- }
42
- });
43
- function getCurrentDirectoryFiles() {
44
- const cwd = process.cwd();
45
- const filesAndDirectories = (0, node_fs_1.readdirSync)(cwd, {
46
- encoding: 'utf8',
47
- recursive: true,
48
- });
49
- return filesAndDirectories.filter((file) => {
50
- const elementPath = node_path_1.default.join(cwd, file);
51
- const stats = (0, node_fs_1.statSync)(elementPath);
52
- return stats.isFile();
53
- });
54
- }
55
- function isStorybookDirectory(files) {
56
- return (files.length > 0 &&
57
- files.includes('index.html') &&
58
- files.includes('iframe.html'));
59
- }
60
- function getStorybookStoriesIndex(files) {
61
- const indexFiles = files.find((file) => file === 'index.json');
62
- if (indexFiles) {
63
- return indexFiles;
64
- }
65
- else {
66
- return output_1.default.exitError(texts_1.ERR_MISSING_STORYBOOK_INDEX_FILE);
67
- }
68
- }
69
- function getStoriesList(storybookStoriesIndex) {
70
- const storiesListFile = (0, node_fs_1.readFileSync)(storybookStoriesIndex);
71
- try {
72
- const json = JSON.parse(storiesListFile.toString());
73
- if (![4, 5].includes(json.v)) {
74
- output_1.default.exitError(texts_1.ERR_UNSUPPORTED_STORYBOOK);
75
- }
76
- return json;
77
- }
78
- catch {
79
- output_1.default.exitError(texts_1.ERR_PARSING_STORIES);
80
- }
81
- }
82
- function getStorybookSnapshots(storiesList) {
83
- const stories = Object.entries(storiesList.entries)
84
- .filter(([, value]) => value.type === 'story')
85
- .map(([key, value]) => ({
86
- id: key,
87
- name: `${value.title}/${value.name}`,
88
- }));
89
- output_1.default.normal((0, texts_1.TXT_STORIES_AMOUNT)(stories.length));
90
- return stories;
91
- }
92
- exports.default = commandVtStorybook;
@@ -1,22 +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 texts_1 = require("../texts");
7
- const utils_1 = require("../utils");
8
- const close_1 = __importDefault(require("./vt/close"));
9
- const storybook_1 = __importDefault(require("./vt/storybook"));
10
- const exec_1 = __importDefault(require("./vt/exec"));
11
- const installBrowser_1 = __importDefault(require("./vt/installBrowser"));
12
- const compare_1 = __importDefault(require("./vt/compare"));
13
- const scrap_1 = __importDefault(require("./vt/scrap"));
14
- const commandVt = (0, utils_1.newCommand)('visual', texts_1.DESC_COMMAND_VT);
15
- commandVt.alias('vt');
16
- commandVt.addCommand(close_1.default);
17
- commandVt.addCommand(storybook_1.default);
18
- commandVt.addCommand(exec_1.default);
19
- commandVt.addCommand(installBrowser_1.default);
20
- commandVt.addCommand(compare_1.default);
21
- commandVt.addCommand(scrap_1.default);
22
- exports.default = commandVt;
@@ -1,174 +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 punycode_1 = __importDefault(require("punycode/"));
8
- const tunnel_1 = require("./types/tunnel");
9
- class Format {
10
- static date() {
11
- const dt = new Date();
12
- return dt.toISOString();
13
- }
14
- static token(token) {
15
- if (!token || token.length < 6)
16
- return 'Not provided';
17
- return token.substring(0, 3) + '...' + token.substring(token.length - 3);
18
- }
19
- static region(region) {
20
- if (!region)
21
- return 'Autodetect';
22
- return region.toUpperCase();
23
- }
24
- static timeout(timeout) {
25
- if (timeout === 1)
26
- return '1 second';
27
- return `${timeout} seconds`;
28
- }
29
- static tunnelTimeout(timeout) {
30
- if (!timeout)
31
- return 'Default';
32
- return this.timeout(timeout);
33
- }
34
- static whitelist(whitelist) {
35
- if (!whitelist || !whitelist.length)
36
- return 'Everyone';
37
- if (whitelist.includes('*'))
38
- return 'Everyone';
39
- return whitelist.join('\n');
40
- }
41
- static tunnelWhitelist(whitelist) {
42
- if (!whitelist)
43
- return 'Default';
44
- return this.whitelist(whitelist);
45
- }
46
- static tunnelHeaders(headers) {
47
- if (!headers || !headers.length)
48
- return 'Not set';
49
- return headers.map((h) => `${h.name}: ${h.value}`).join('\n');
50
- }
51
- static tunnelCircuitBreaker(cb) {
52
- if (cb === undefined || cb === null)
53
- return 'Not set';
54
- return String(cb);
55
- }
56
- static tunnelUserAgent(userAgents) {
57
- if (!userAgents || !userAgents.length)
58
- return 'Everyone';
59
- return userAgents.join('\n');
60
- }
61
- static type(type) {
62
- return type.toUpperCase();
63
- }
64
- static tunnelRegion(region) {
65
- if (!region)
66
- return 'Default';
67
- return this.region(region);
68
- }
69
- static identify(identifyType) {
70
- if (identifyType === tunnel_1.TUNNEL_HTTP_IDENTIFY.HTTP1)
71
- return 'Ver. 1.1';
72
- return 'Ver. 2';
73
- }
74
- static terminate(terminate) {
75
- if (terminate === tunnel_1.TUNNEL_TERMINATE_AT.AGENT)
76
- return 'AGENT';
77
- if (terminate === tunnel_1.TUNNEL_TERMINATE_AT.REGION)
78
- return 'REGION';
79
- return 'TARGET';
80
- }
81
- static serve(serve) {
82
- return serve;
83
- }
84
- static hostHeader(host) {
85
- if (!host)
86
- return 'Not set';
87
- return host;
88
- }
89
- static basicAuth(login, pass) {
90
- if (!login || !pass)
91
- return 'Not set';
92
- return `${login}:${pass}`;
93
- }
94
- static latency(latency) {
95
- if (latency < 0)
96
- return 'Unreachable';
97
- if (latency < 1000)
98
- return `${latency.toFixed(0)}ms`;
99
- return `${(latency / 1000).toFixed(0)}s`;
100
- }
101
- static yesNo(val) {
102
- if (!val)
103
- return 'No';
104
- return 'Yes';
105
- }
106
- static entryHost(tunnel) {
107
- let host = '';
108
- host += tunnel.subdomain;
109
- host += '.';
110
- host += (tunnel.region || '').toLowerCase();
111
- host += '-';
112
- host += tunnel.sshId;
113
- host += '.';
114
- host += tunnel.domain;
115
- return host;
116
- }
117
- static entryHostEncoded(tunnel) {
118
- return punycode_1.default.toASCII(this.entryHost(tunnel));
119
- }
120
- static entry(tunnel) {
121
- let entry = '';
122
- if (tunnel.type === tunnel_1.TUNNEL_TYPE.HTTP)
123
- entry += 'https://';
124
- entry += this.entryHost(tunnel);
125
- if (tunnel.type === tunnel_1.TUNNEL_TYPE.TCP)
126
- entry += `:${tunnel.sshForwardPort}`;
127
- else if (tunnel.type === tunnel_1.TUNNEL_TYPE.TLS)
128
- entry += ':443';
129
- return entry;
130
- }
131
- static target(type, target) {
132
- if (type === tunnel_1.TUNNEL_TYPE.HTTP) {
133
- let port = '80';
134
- let host = 'localhost';
135
- let proto = 'http';
136
- let m = target.match(utils_1.TARGET_ONLY_PORT_REGEX);
137
- if (m) {
138
- port = m[0];
139
- }
140
- else {
141
- m = target.match(utils_1.TARGET_HTTP_REGEX);
142
- if (m) {
143
- if (m[2])
144
- proto = m[2];
145
- if (m[4])
146
- host = m[4];
147
- if (m[6])
148
- port = m[6];
149
- else if (proto === 'https')
150
- port = '443';
151
- }
152
- }
153
- let t = `${proto}://${host}`;
154
- if (proto === 'http' && port !== '80')
155
- t += `:${port}`;
156
- else if (proto === 'https' && port !== '443')
157
- t += `:${port}`;
158
- return t;
159
- }
160
- else {
161
- let host = 'localhost';
162
- let port = '80';
163
- const m = target.match(utils_1.TARGET_TCP_TLS_REGEX);
164
- if (m) {
165
- if (m[3])
166
- port = m[3];
167
- if (m[2])
168
- host = m[2];
169
- }
170
- return `${host}:${port}`;
171
- }
172
- }
173
- }
174
- exports.default = Format;
@@ -1,34 +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 output_1 = __importDefault(require("./output"));
7
- const agent_1 = __importDefault(require("./command/agent"));
8
- const logger_1 = __importDefault(require("./logger"));
9
- const version_1 = __importDefault(require("./command/version"));
10
- const pre_1 = __importDefault(require("./command/pre"));
11
- const stream_1 = __importDefault(require("stream"));
12
- const utils_1 = require("./utils");
13
- const texts_1 = require("./texts");
14
- const vt_1 = __importDefault(require("./command/vt"));
15
- const ut_1 = __importDefault(require("./command/ut"));
16
- const tunnel_1 = __importDefault(require("./command/tunnel"));
17
- stream_1.default.setDefaultHighWaterMark(false, 67108864);
18
- process.title = 'bdy';
19
- process.on('uncaughtException', (err) => {
20
- logger_1.default.fatal(err);
21
- output_1.default.exitError(err);
22
- });
23
- const program = (0, utils_1.newCommand)('', texts_1.DESC_PROGRAM);
24
- program.hook('preAction', pre_1.default);
25
- program.configureHelp({
26
- formatHelp: utils_1.formatHelp,
27
- });
28
- program.addCommand(tunnel_1.default);
29
- if (!(0, utils_1.isDocker)())
30
- program.addCommand(agent_1.default);
31
- program.addCommand(version_1.default);
32
- program.addCommand(vt_1.default);
33
- program.addCommand(ut_1.default);
34
- program.parse();