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,259 +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
- exports.collectResources = collectResources;
30
- const puppeteer_core_1 = __importStar(require("puppeteer-core"));
31
- const context_1 = require("./context");
32
- const output_1 = __importDefault(require("../output"));
33
- const texts_1 = require("../texts");
34
- const utils_1 = require("../utils");
35
- const scrapedUrls = new Map();
36
- const scrapedResources = new Map();
37
- let showedBrowserVersionWarning = false;
38
- async function collectResources({ url, devices, resourceDiscoveryTimeout = 0, cookies = [], }) {
39
- const scrapedUrl = scrapedUrls.get(url);
40
- const missingDevices = scrapedUrl
41
- ? devices.filter(({ viewport }) => !scrapedUrl.widths.includes(viewport.width))
42
- : [];
43
- if (scrapedUrl && missingDevices.length === 0) {
44
- return getResourceUrlsData({
45
- duplicatedResourcesUrls: scrapedUrl.resources,
46
- });
47
- }
48
- else if (scrapedUrl && missingDevices.length > 0) {
49
- const { scrapedResourcesUrls, duplicatedResourcesUrls } = await output_1.default.debugAction((0, texts_1.DEBUG_RESOURCE_SCRAPPING_URL)(url), scrapeResources({
50
- url,
51
- devices: missingDevices,
52
- resourceDiscoveryTimeout,
53
- cookies,
54
- }));
55
- const duplicatedScrapedResourceUrls = [...scrapedUrl.resources];
56
- scrapedUrls.set(url, {
57
- widths: [
58
- ...scrapedUrl.widths,
59
- ...missingDevices.map(({ viewport }) => viewport.width),
60
- ],
61
- resources: [
62
- ...new Set([
63
- ...scrapedUrl.resources,
64
- ...scrapedResourcesUrls,
65
- ...duplicatedResourcesUrls,
66
- ]),
67
- ],
68
- });
69
- return getResourceUrlsData({
70
- resourcesUrls: scrapedResourcesUrls,
71
- duplicatedResourcesUrls: [
72
- ...new Set([
73
- ...duplicatedResourcesUrls,
74
- ...duplicatedScrapedResourceUrls,
75
- ]),
76
- ],
77
- });
78
- }
79
- else {
80
- const { scrapedResourcesUrls, duplicatedResourcesUrls } = await output_1.default.debugAction((0, texts_1.DEBUG_RESOURCE_SCRAPPING_URL)(url), scrapeResources({
81
- url,
82
- devices,
83
- resourceDiscoveryTimeout,
84
- cookies,
85
- }));
86
- scrapedUrls.set(url, {
87
- widths: devices.map(({ viewport }) => viewport.width),
88
- resources: [...scrapedResourcesUrls, ...duplicatedResourcesUrls],
89
- });
90
- return getResourceUrlsData({
91
- resourcesUrls: scrapedResourcesUrls,
92
- duplicatedResourcesUrls,
93
- });
94
- }
95
- }
96
- function getResourceUrlsData({ resourcesUrls = [], duplicatedResourcesUrls = [], }) {
97
- const resources = [];
98
- for (const resourceUrl of resourcesUrls) {
99
- const scrapedResource = scrapedResources.get(resourceUrl);
100
- if (scrapedResource) {
101
- resources.push({
102
- url: resourceUrl,
103
- status: scrapedResource.status,
104
- headers: scrapedResource.headers,
105
- body: scrapedResource.body,
106
- });
107
- }
108
- else {
109
- throw new Error((0, texts_1.ERR_RESOURCE_NOT_FOUND)(resourceUrl));
110
- }
111
- }
112
- for (const resourceUrl of duplicatedResourcesUrls) {
113
- const scrapedResource = scrapedResources.get(resourceUrl);
114
- if (scrapedResource) {
115
- resources.push({
116
- url: resourceUrl,
117
- status: scrapedResource.status,
118
- headers: scrapedResource.headers,
119
- duplicate: true,
120
- });
121
- }
122
- else {
123
- throw new Error((0, texts_1.ERR_RESOURCE_NOT_FOUND)(resourceUrl));
124
- }
125
- }
126
- return resources;
127
- }
128
- async function scrapeResources({ url, devices, resourceDiscoveryTimeout, cookies = [], }) {
129
- const scrapedResourcesUrls = [];
130
- const duplicatedResourcesUrls = [];
131
- const launchOptions = {
132
- headless: 'shell',
133
- args: ['--no-sandbox'],
134
- acceptInsecureCerts: true,
135
- timeout: 120_000,
136
- executablePath: context_1.browserPath,
137
- };
138
- const browser = await puppeteer_core_1.default.launch(launchOptions);
139
- if (!showedBrowserVersionWarning) {
140
- const version = await browser.version();
141
- if (!version.endsWith(utils_1.SUGGESTED_BROWSER_VERSION)) {
142
- output_1.default.warning((0, texts_1.WARN_BROWSER_VERSION)(version));
143
- showedBrowserVersionWarning = true;
144
- }
145
- }
146
- const page = await browser.newPage();
147
- page.setDefaultTimeout(context_1.defaultTimeout);
148
- const initWidth = devices[0].viewport.width;
149
- await page.setViewport({
150
- width: initWidth,
151
- height: devices[0].viewport.height,
152
- deviceScaleFactor: devices[0].devicePixelRatio,
153
- });
154
- const preparedCookies = cookies.map((cookie) => {
155
- const cookieMustBeSecure = ['__Secure-', '__Host-'].some((prefix) => cookie.name.startsWith(prefix));
156
- return {
157
- ...cookie,
158
- secure: cookieMustBeSecure ? true : cookie.secure,
159
- };
160
- });
161
- await page.setCookie(...preparedCookies);
162
- page.on('response', async (response) => {
163
- const request = response.request();
164
- const requestUrl = request.url();
165
- const isCollected = scrapedResources.has(requestUrl);
166
- if (isCollected && !scrapedResourcesUrls.includes(requestUrl)) {
167
- duplicatedResourcesUrls.push(requestUrl);
168
- }
169
- else {
170
- let responseError;
171
- let body;
172
- const requestUrl = request.url();
173
- const headers = response.headers();
174
- const contentType = headers['content-type'];
175
- const status = response.status();
176
- try {
177
- if ((status < 300 || status > 399) &&
178
- !contentType.startsWith('text/html')) {
179
- body = new Blob([await response.buffer()]);
180
- }
181
- }
182
- catch (error) {
183
- responseError = error;
184
- }
185
- if (!responseError && body) {
186
- scrapedResourcesUrls.push(requestUrl);
187
- scrapedResources.set(requestUrl, {
188
- status,
189
- headers: { 'content-type': contentType },
190
- body,
191
- });
192
- }
193
- }
194
- });
195
- try {
196
- await page.goto(url);
197
- }
198
- catch (error) {
199
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
200
- output_1.default.exitError((0, texts_1.ERR_RESOURCE_DISCOVERY)(errorMessage));
201
- }
202
- await output_1.default.debugAction(texts_1.DEBUG_AUTO_SCROLL, autoScroll(page));
203
- await output_1.default.debugAction(texts_1.DEBUG_AUTO_WIDTH, autoWidths(page, devices));
204
- if (resourceDiscoveryTimeout > 0) {
205
- await new Promise((resolve) => setTimeout(resolve, resourceDiscoveryTimeout));
206
- if (context_1.debug) {
207
- output_1.default.warning((0, texts_1.DEBUG_RESOURCE_DISCOVERY_TIMEOUT)(resourceDiscoveryTimeout));
208
- }
209
- }
210
- try {
211
- await output_1.default.debugAction(texts_1.DEBUG_WAIT_FOR_IDLE, page.waitForNetworkIdle());
212
- }
213
- catch (error) {
214
- if (error instanceof puppeteer_core_1.TimeoutError) {
215
- output_1.default.warning((0, texts_1.DEBUG_WAIT_FOR_IDLE_TIMEOUT)(context_1.defaultTimeout));
216
- }
217
- else {
218
- throw error;
219
- }
220
- }
221
- await browser.close();
222
- return { scrapedResourcesUrls, duplicatedResourcesUrls };
223
- }
224
- async function autoScroll(page) {
225
- await page.evaluate(async () => {
226
- await new Promise((resolve) => {
227
- const resourceDiscoveryMaxHeight = 30_000;
228
- const step = 100;
229
- let currentScroll = 0;
230
- const timer = setInterval(() => {
231
- const pageHeight = Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);
232
- const newScrollPosition = currentScroll + step;
233
- window.scrollTo({
234
- top: newScrollPosition,
235
- left: 0,
236
- behavior: 'instant',
237
- });
238
- currentScroll = newScrollPosition;
239
- if (newScrollPosition >= pageHeight ||
240
- newScrollPosition >= resourceDiscoveryMaxHeight) {
241
- clearInterval(timer);
242
- resolve('done');
243
- }
244
- }, 10);
245
- });
246
- });
247
- }
248
- async function autoWidths(page, devices) {
249
- for (const device of devices) {
250
- if (device.viewport.width !== devices[0].viewport.width) {
251
- await page.setViewport({
252
- width: device.viewport.width,
253
- height: device.viewport.height,
254
- deviceScaleFactor: device.devicePixelRatio,
255
- });
256
- await new Promise((resolve) => setTimeout(resolve, 100));
257
- }
258
- }
259
- }
@@ -1,109 +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.createServer = createServer;
7
- const fastify_1 = __importDefault(require("fastify"));
8
- const cors_1 = __importDefault(require("@fastify/cors"));
9
- const snapshots_1 = require("./snapshots");
10
- const promises_1 = __importDefault(require("node:fs/promises"));
11
- const node_path_1 = __importDefault(require("node:path"));
12
- const node_sea_1 = require("node:sea");
13
- const utils_1 = require("../utils");
14
- const output_1 = __importDefault(require("../output"));
15
- const schemas_1 = require("../types/schemas");
16
- const zod_1 = require("zod");
17
- const texts_1 = require("../texts");
18
- const port = 1337;
19
- let cachedParseDom = '';
20
- function prepareParseDom(parseDom) {
21
- return parseDom
22
- .replaceAll('"use strict";', '')
23
- .replaceAll('Object.defineProperty(exports, "__esModule", { value: true });', '');
24
- }
25
- async function getParseDom() {
26
- if (!cachedParseDom) {
27
- if ((0, node_sea_1.isSea)()) {
28
- cachedParseDom = await prepareParseDom((0, node_sea_1.getAsset)('parseDom.js', 'utf8'));
29
- }
30
- else {
31
- const filePath = node_path_1.default.resolve((0, utils_1.getRootDir)(), 'parseDom.js');
32
- cachedParseDom = await prepareParseDom(await promises_1.default.readFile(filePath, 'utf-8'));
33
- }
34
- }
35
- return cachedParseDom;
36
- }
37
- function prepareSnapshotPlugin(data) {
38
- try {
39
- const validatedData = schemas_1.snapshotSchema.parse(data);
40
- const { version, ...snapshot } = validatedData;
41
- const cookies = snapshot.cookies.map((cookie) => {
42
- if (cookie.domain) {
43
- return cookie;
44
- }
45
- else if (cookie.path) {
46
- return cookie;
47
- }
48
- else {
49
- const domain = new URL(snapshot.url).hostname;
50
- return {
51
- ...cookie,
52
- domain,
53
- };
54
- }
55
- });
56
- return {
57
- ...snapshot,
58
- resources: snapshot.resources ?? [],
59
- devices: snapshot.devices ?? [],
60
- enableJavaScript: snapshot.enableJavaScript ?? false,
61
- resourceDiscoveryTimeout: snapshot.resourceDiscoveryTimeout ?? 0,
62
- cookies,
63
- };
64
- }
65
- catch (error) {
66
- const name = data &&
67
- typeof data === 'object' &&
68
- 'name' in data &&
69
- typeof data.name === 'string'
70
- ? data.name
71
- : 'Unknown name';
72
- if (error instanceof zod_1.ZodError) {
73
- output_1.default.error((0, texts_1.ERR_INVALID_SNAPSHOT)(name, error.errors
74
- .map((e) => `${e.path.join('.')} - ${e.message}`)
75
- .join(', ')));
76
- }
77
- else {
78
- throw error;
79
- }
80
- }
81
- return undefined;
82
- }
83
- async function createServer() {
84
- const app = (0, fastify_1.default)({
85
- // logger: true,
86
- bodyLimit: 50 * 1024 * 1024, //50 MB,
87
- });
88
- app.register(cors_1.default);
89
- app.get('/parseDom.js', async (request, reply) => {
90
- const parseDomFile = await getParseDom();
91
- reply.type('text/javascript').send(parseDomFile);
92
- });
93
- app.post('/snapshot', (request, reply) => {
94
- const data = request.body;
95
- const preparedSnapshot = prepareSnapshotPlugin(data);
96
- if (preparedSnapshot) {
97
- (0, snapshots_1.addSnapshot)(preparedSnapshot);
98
- reply.send('Snapshot received');
99
- }
100
- else {
101
- reply.send('Invalid snapshot format');
102
- }
103
- });
104
- app.get('*', (request, reply) => {
105
- reply.send('Wrong path');
106
- });
107
- await app.listen({ port });
108
- return app;
109
- }
@@ -1,129 +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.setDefaultSettings = setDefaultSettings;
7
- exports.addSnapshot = addSnapshot;
8
- exports.finishProcessingSnapshots = finishProcessingSnapshots;
9
- exports.showSessionLink = showSessionLink;
10
- const resources_1 = require("./resources");
11
- const context_1 = require("./context");
12
- const requests_1 = require("./requests");
13
- const queue_1 = require("./queue");
14
- const output_1 = __importDefault(require("../output"));
15
- const texts_1 = require("../texts");
16
- const snapshots = [];
17
- let defaultDevices = [];
18
- let firstSnapshot = true;
19
- let sessionLink = '';
20
- function setDefaultSettings(defaultSettings) {
21
- defaultDevices = defaultSettings.defaultDevices;
22
- }
23
- function addSnapshot(snapshot) {
24
- const preparedSnapshot = {
25
- ...snapshot,
26
- devices: snapshot.devices.length > 0 ? snapshot.devices : defaultDevices,
27
- };
28
- if (context_1.oneByOne) {
29
- (0, queue_1.addToQueue)(() => processSnapshot(preparedSnapshot, firstSnapshot));
30
- }
31
- else {
32
- snapshots.push(preparedSnapshot);
33
- }
34
- if (firstSnapshot) {
35
- firstSnapshot = false;
36
- }
37
- }
38
- async function finishProcessingSnapshots(spawnedProcessExitCode) {
39
- if (context_1.oneByOne) {
40
- return await (0, queue_1.isQueueEmpty)();
41
- }
42
- if (spawnedProcessExitCode === 0) {
43
- return await processSnapshots();
44
- }
45
- }
46
- function showSessionLink() {
47
- if (sessionLink) {
48
- output_1.default.normal((0, texts_1.LOG_SESSION_LINK)(sessionLink));
49
- }
50
- }
51
- async function processSnapshot(snapshot, firstSnapshot) {
52
- let t1;
53
- if (context_1.debug) {
54
- t1 = performance.now();
55
- }
56
- const preparedSnapshot = context_1.skipDiscovery
57
- ? snapshot
58
- : await getSnapshotWithResources(snapshot);
59
- try {
60
- output_1.default.normal(texts_1.LOG_SENDING_DATA);
61
- const { message } = await (0, requests_1.sendSnapshot)(preparedSnapshot, firstSnapshot);
62
- sessionLink = message;
63
- }
64
- catch (error) {
65
- output_1.default.error(`${error}`);
66
- }
67
- if (context_1.debug && t1) {
68
- const t2 = performance.now();
69
- output_1.default.normal((0, texts_1.DEBUG_SNAPSHOT_PROCESSING)(snapshot.name, t2 - t1));
70
- }
71
- }
72
- async function processSnapshots() {
73
- let t1;
74
- if (context_1.debug) {
75
- t1 = performance.now();
76
- }
77
- output_1.default.normal((0, texts_1.LOG_PROCESSING_SNAPSHOTS)(snapshots.length));
78
- const preparedSnapshots = context_1.skipDiscovery
79
- ? snapshots
80
- : await getSnapshotsWithResources(snapshots);
81
- if (preparedSnapshots.length === 0) {
82
- output_1.default.error(texts_1.ERR_NO_SNAPSHOTS_TO_SEND);
83
- }
84
- else {
85
- try {
86
- output_1.default.normal(texts_1.LOG_SENDING_DATA);
87
- const { message } = await (0, requests_1.sendSnapshots)(preparedSnapshots);
88
- sessionLink = message;
89
- }
90
- catch (error) {
91
- output_1.default.error(`${error}`);
92
- }
93
- }
94
- if (context_1.debug && t1) {
95
- const t2 = performance.now();
96
- output_1.default.normal((0, texts_1.DEBUG_SNAPSHOTS_PROCESSING)(t2 - t1));
97
- }
98
- }
99
- async function getSnapshotWithResources(snapshot) {
100
- const { url, devices, resourceDiscoveryTimeout, cookies } = snapshot;
101
- const resources = await (0, resources_1.collectResources)({
102
- url,
103
- devices,
104
- resourceDiscoveryTimeout,
105
- cookies,
106
- });
107
- if (context_1.debug) {
108
- output_1.default.normal(`Collected resources for snapshot: ${snapshot.name}`);
109
- for (const resource of resources) {
110
- output_1.default.normal(`- url: ${resource.url} status: ${resource.status} headers: ${JSON.stringify(resource.headers)} duplicate: ${resource.duplicate} hasBody: ${!!resource.body} bodySize: ${typeof resource.body === 'string' ? resource.body.length : resource.body?.size}`);
111
- }
112
- }
113
- return {
114
- ...snapshot,
115
- resources: [...snapshot.resources, ...resources],
116
- };
117
- }
118
- async function getSnapshotsWithResources(snapshots) {
119
- const snapshotsWithResources = [];
120
- const prepareSnapshots = filterDuplicates(snapshots);
121
- for (const snapshot of prepareSnapshots) {
122
- const snapshotWithResources = await getSnapshotWithResources(snapshot);
123
- snapshotsWithResources.push(snapshotWithResources);
124
- }
125
- return snapshotsWithResources;
126
- }
127
- function filterDuplicates(snapshots) {
128
- return snapshots.filter((snapshot, index) => snapshots.findIndex((item) => item.name === snapshot.name) === index);
129
- }