automation_model 1.0.796-dev → 1.0.796-stage

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 (44) hide show
  1. package/lib/api.js +40 -12
  2. package/lib/api.js.map +1 -1
  3. package/lib/auto_page.d.ts +1 -1
  4. package/lib/auto_page.js +103 -75
  5. package/lib/auto_page.js.map +1 -1
  6. package/lib/browser_manager.d.ts +2 -3
  7. package/lib/browser_manager.js +115 -71
  8. package/lib/browser_manager.js.map +1 -1
  9. package/lib/bruno.js.map +1 -1
  10. package/lib/check_performance.d.ts +1 -0
  11. package/lib/check_performance.js +57 -0
  12. package/lib/check_performance.js.map +1 -0
  13. package/lib/command_common.d.ts +2 -2
  14. package/lib/command_common.js +30 -23
  15. package/lib/command_common.js.map +1 -1
  16. package/lib/file_checker.js +7 -0
  17. package/lib/file_checker.js.map +1 -1
  18. package/lib/index.js +1 -0
  19. package/lib/index.js.map +1 -1
  20. package/lib/init_browser.d.ts +1 -2
  21. package/lib/init_browser.js +137 -128
  22. package/lib/init_browser.js.map +1 -1
  23. package/lib/locator_log.js.map +1 -1
  24. package/lib/network.d.ts +2 -2
  25. package/lib/network.js +183 -120
  26. package/lib/network.js.map +1 -1
  27. package/lib/route.d.ts +64 -2
  28. package/lib/route.js +492 -244
  29. package/lib/route.js.map +1 -1
  30. package/lib/scripts/axe.mini.js +23978 -1
  31. package/lib/snapshot_validation.js +3 -0
  32. package/lib/snapshot_validation.js.map +1 -1
  33. package/lib/stable_browser.d.ts +14 -8
  34. package/lib/stable_browser.js +453 -87
  35. package/lib/stable_browser.js.map +1 -1
  36. package/lib/table_helper.js +14 -0
  37. package/lib/table_helper.js.map +1 -1
  38. package/lib/test_context.d.ts +1 -0
  39. package/lib/test_context.js +1 -0
  40. package/lib/test_context.js.map +1 -1
  41. package/lib/utils.d.ts +7 -3
  42. package/lib/utils.js +162 -25
  43. package/lib/utils.js.map +1 -1
  44. package/package.json +18 -11
package/lib/network.js CHANGED
@@ -3,6 +3,60 @@ import fs from "fs";
3
3
  import { _stepNameToTemplate } from "./route.js";
4
4
  import crypto from "crypto";
5
5
  import { tmpdir } from "os";
6
+ import createDebug from "debug";
7
+ const debug = createDebug("automation_model:network");
8
+ class SaveQueue {
9
+ queue = [];
10
+ isProcessing = false;
11
+ maxRetries = 3;
12
+ async enqueueSave(current) {
13
+ this.queue.push({ current, retryCount: 0 });
14
+ if (!this.isProcessing) {
15
+ await this.processQueue();
16
+ }
17
+ }
18
+ async processQueue() {
19
+ this.isProcessing = true;
20
+ while (this.queue.length > 0) {
21
+ const item = this.queue.shift();
22
+ try {
23
+ await this.saveSafely(item.current);
24
+ }
25
+ catch (error) {
26
+ console.error(`Save failed for ${item.current ? "current" : "previous"} step:`, error);
27
+ // Retry logic
28
+ if (item.retryCount < this.maxRetries) {
29
+ item.retryCount++;
30
+ this.queue.unshift(item); // Put it back at the front
31
+ await new Promise((resolve) => setTimeout(resolve, 100 * item.retryCount)); // Exponential backoff
32
+ }
33
+ }
34
+ }
35
+ this.isProcessing = false;
36
+ }
37
+ async saveSafely(current) {
38
+ const stepHash = current ? executionState.currentStepHash : executionState.previousStepHash;
39
+ if (!stepHash)
40
+ return;
41
+ const file = path.join(detailedNetworkFolder, `${stepHash}.json`);
42
+ const entries = current
43
+ ? Array.from(executionState.liveRequestsMap.values())
44
+ : Array.from(executionState.liveRequestsMapPrevious.values());
45
+ // Ensure all entries are JSON-serializable
46
+ const validEntries = entries.filter((entry) => {
47
+ try {
48
+ JSON.stringify(entry);
49
+ return true;
50
+ }
51
+ catch {
52
+ console.warn(`Skipping non-serializable entry: ${entry.requestId}`);
53
+ return false;
54
+ }
55
+ });
56
+ const jsonString = JSON.stringify(validEntries, null, 2);
57
+ await fs.promises.writeFile(file, jsonString, "utf8");
58
+ }
59
+ }
6
60
  function _getNetworkFile(world = null, web = null, context = null) {
7
61
  let networkFile = null;
8
62
  if (world && world.reportFolder) {
@@ -50,7 +104,12 @@ function registerNetworkEvents(world, web, context, page) {
50
104
  const networkFile = _getNetworkFile(world, web, context);
51
105
  function saveNetworkData() {
52
106
  if (context && context.networkData) {
53
- fs.writeFileSync(networkFile, JSON.stringify(context.networkData, null, 2), "utf8");
107
+ try {
108
+ fs.writeFileSync(networkFile, JSON.stringify(context.networkData, null, 2), "utf8");
109
+ }
110
+ catch (error) {
111
+ console.error("Error saving network data:", error);
112
+ }
54
113
  }
55
114
  }
56
115
  if (!context) {
@@ -69,7 +128,7 @@ function registerNetworkEvents(world, web, context, page) {
69
128
  // console.log("Request started:", request.url());
70
129
  const requestId = requestIdCounter++;
71
130
  request.requestId = requestId; // Assign a unique ID to the request
72
- handleRequest(request);
131
+ handleRequest(request, context);
73
132
  const startTime = Date.now();
74
133
  requestTimes.set(requestId, startTime);
75
134
  // Initialize data for this request
@@ -118,7 +177,7 @@ function registerNetworkEvents(world, web, context, page) {
118
177
  const requestId = request.requestId;
119
178
  const endTime = Date.now();
120
179
  const startTime = requestTimes.get(requestId);
121
- await handleRequestFinishedOrFailed(request, false);
180
+ await handleRequestFinishedOrFailed(request, false, context);
122
181
  const response = await request.response();
123
182
  const timing = request.timing();
124
183
  // Find the corresponding data object
@@ -128,10 +187,14 @@ function registerNetworkEvents(world, web, context, page) {
128
187
  data.responseTime = endTime - startTime;
129
188
  // Get response size
130
189
  try {
131
- const body = await response.body();
132
- data.size = body.length;
190
+ let size = 0;
191
+ if (responseHasBody(response)) {
192
+ const buf = await response.body();
193
+ size = buf?.length ?? 0;
194
+ }
195
+ data.size = size;
133
196
  }
134
- catch (e) {
197
+ catch {
135
198
  data.size = 0;
136
199
  }
137
200
  const type = request.resourceType();
@@ -173,7 +236,7 @@ function registerNetworkEvents(world, web, context, page) {
173
236
  const requestId = request.requestId;
174
237
  const endTime = Date.now();
175
238
  const startTime = requestTimes.get(requestId);
176
- await handleRequestFinishedOrFailed(request, true);
239
+ await handleRequestFinishedOrFailed(request, true, context);
177
240
  try {
178
241
  const res = await request.response();
179
242
  const statusCode = res ? res.status() : request.failure().errorText;
@@ -208,7 +271,11 @@ function registerNetworkEvents(world, web, context, page) {
208
271
  }
209
272
  }
210
273
  async function appendEntryToStepFile(stepHash, entry) {
274
+ if (!stepHash)
275
+ return;
276
+ const debug = createDebug("network:appendEntryToStepFile");
211
277
  const file = path.join(detailedNetworkFolder, `${stepHash}.json`);
278
+ debug("appending to step file:", file);
212
279
  let data = [];
213
280
  try {
214
281
  /* read if it already exists */
@@ -219,16 +286,31 @@ async function appendEntryToStepFile(stepHash, entry) {
219
286
  /* ignore – file does not exist or cannot be parsed */
220
287
  }
221
288
  data.push(entry);
222
- await fs.promises.writeFile(file, JSON.stringify(data, null, 2), "utf8");
289
+ try {
290
+ debug("writing to step file:", file);
291
+ await fs.promises.writeFile(file, JSON.stringify(data, null, 2), "utf8");
292
+ }
293
+ catch (error) {
294
+ debug("Error writing to step file:", error);
295
+ }
223
296
  }
224
297
  const detailedNetworkFolder = path.join(tmpdir(), "blinq_network_events");
298
+ let outOfStep = true;
299
+ let timeoutId = null;
225
300
  const executionState = {
226
301
  currentStepHash: null,
302
+ previousStepHash: null,
227
303
  liveRequestsMap: new Map(),
304
+ liveRequestsMapPrevious: new Map(),
228
305
  };
229
- export function networkBeforeStep(stepName) {
230
- const storeDetailedNetworkData = process.env.STORE_DETAILED_NETWORK_DATA === "true";
231
- if (!storeDetailedNetworkData) {
306
+ const storeDetailedNetworkData = (context) => context && context.STORE_DETAILED_NETWORK_DATA === true;
307
+ export function networkBeforeStep(stepName, context) {
308
+ if (timeoutId) {
309
+ clearTimeout(timeoutId);
310
+ timeoutId = null;
311
+ }
312
+ outOfStep = false;
313
+ if (!storeDetailedNetworkData(context)) {
232
314
  return;
233
315
  }
234
316
  // check if the folder exists, if not create it
@@ -237,15 +319,10 @@ export function networkBeforeStep(stepName) {
237
319
  }
238
320
  // const stepHash = stepNameToHash(stepName);
239
321
  let stepHash = "";
240
- executionState.liveRequestsMap.clear();
241
- if (process.env.CURRENT_STEP_ID) {
242
- // console.log("Using CURRENT_STEP_ID from environment variables:", process.env.CURRENT_STEP_ID);
243
- // If CURRENT_STEP_ID is set, use it as the step hash
244
- stepHash = process.env.CURRENT_STEP_ID;
245
- }
246
- else {
247
- stepHash = stepNameToHash(stepName);
248
- }
322
+ executionState.liveRequestsMapPrevious = executionState.liveRequestsMap;
323
+ executionState.liveRequestsMap = new Map();
324
+ stepHash = stepNameToHash(stepName);
325
+ executionState.previousStepHash = executionState.currentStepHash; // NEW
249
326
  executionState.currentStepHash = stepHash;
250
327
  // check if the file exists, if exists delete it
251
328
  const networkFile = path.join(detailedNetworkFolder, `${stepHash}.json`);
@@ -256,30 +333,35 @@ export function networkBeforeStep(stepName) {
256
333
  // Ignore error if file does not exist
257
334
  }
258
335
  }
259
- export async function networkAfterStep(stepName) {
260
- const storeDetailedNetworkData = process.env.STORE_DETAILED_NETWORK_DATA === "true";
261
- if (!storeDetailedNetworkData) {
336
+ const saveQueue = new SaveQueue();
337
+ async function saveMap(current) {
338
+ await saveQueue.enqueueSave(current);
339
+ }
340
+ export async function networkAfterStep(stepName, context) {
341
+ if (!storeDetailedNetworkData(context)) {
262
342
  return;
263
343
  }
264
- await new Promise((r) => setTimeout(r, 1000));
265
- const entries = Array.from(executionState.liveRequestsMap.values());
266
- const file = path.join(detailedNetworkFolder, `${executionState.currentStepHash}.json`);
267
- await fs.promises.writeFile(file, JSON.stringify(entries, null, 2), "utf8");
344
+ //await new Promise((r) => setTimeout(r, 1000));
345
+ await saveMap(true);
268
346
  /* reset for next step */
269
- executionState.liveRequestsMap.clear();
270
- executionState.previousStepHash = executionState.currentStepHash; // ➋ NEW
271
- executionState.currentStepHash = null;
347
+ //executionState.previousStepHash = executionState.currentStepHash; // ➋ NEW
348
+ //executionState.liveRequestsMap.clear();
349
+ outOfStep = true;
350
+ // set a timer of 60 seconds to the outOfStep, after that it will be set to false so no network collection will happen
351
+ timeoutId = setTimeout(() => {
352
+ outOfStep = false;
353
+ context.STORE_DETAILED_NETWORK_DATA = false;
354
+ }, 60000);
272
355
  }
273
356
  function stepNameToHash(stepName) {
274
357
  const templateName = _stepNameToTemplate(stepName);
275
358
  // create hash from the template name
276
359
  return crypto.createHash("sha256").update(templateName).digest("hex");
277
360
  }
278
- function handleRequest(request) {
279
- const storeDetailedNetworkData = process.env.STORE_DETAILED_NETWORK_DATA === "true";
280
- if (!storeDetailedNetworkData || !executionState.currentStepHash) {
361
+ function handleRequest(request, context) {
362
+ const debug = createDebug("automation_model:network:handleRequest");
363
+ if (!storeDetailedNetworkData(context))
281
364
  return;
282
- }
283
365
  const entry = {
284
366
  requestId: request.requestId,
285
367
  url: request.url(),
@@ -290,48 +372,33 @@ function handleRequest(request) {
290
372
  stepHash: executionState.currentStepHash,
291
373
  };
292
374
  executionState.liveRequestsMap.set(request, entry);
293
- // console.log("Request started:", entry);
294
- }
295
- function saveNetworkDataToFile(requestData) {
296
- const storeDetailedNetworkData = process.env.STORE_DETAILED_NETWORK_DATA === "true";
297
- if (!storeDetailedNetworkData) {
298
- return;
299
- }
300
- const networkFile = path.join(detailedNetworkFolder, `${requestData.stepHash}.json`);
301
- // read the existing data if it exists (should be an array)
302
- let existingData = [];
303
- if (fs.existsSync(networkFile)) {
304
- const data = fs.readFileSync(networkFile, "utf8");
305
- try {
306
- existingData = JSON.parse(data);
307
- }
308
- catch (e) {
309
- // console.error("Failed to parse existing network data:", e);
310
- }
311
- }
312
- // Add the live requests to the existing data
313
- existingData.push(requestData);
314
- // Save the updated data back to the file
315
- // console.log("Saving network data to file:", networkFile);
316
- fs.writeFileSync(networkFile, JSON.stringify(existingData, null, 2), "utf8");
375
+ debug("Request to", request.url(), "with", request.requestId, "added to current step map at", Date.now());
317
376
  }
318
- async function handleRequestFinishedOrFailed(request, failed) {
319
- const storeDetailedNetworkData = process.env.STORE_DETAILED_NETWORK_DATA === "true";
320
- if (!storeDetailedNetworkData) {
377
+ async function handleRequestFinishedOrFailed(request, failed, context) {
378
+ const debug = createDebug("automation_model:network:handleRequestFinishedOrFailed");
379
+ if (!storeDetailedNetworkData(context))
321
380
  return;
322
- }
381
+ const requestId = request.requestId;
382
+ debug("Request id in handleRequestFinishedOrFailed:", requestId, "at", Date.now());
323
383
  // const response = await request.response(); // This may be null if the request failed
324
384
  let entry = executionState.liveRequestsMap.get(request);
385
+ debug("Request entry found in current map:", entry?.requestId || false);
325
386
  if (!entry) {
326
- entry = {
327
- requestId: request.requestId,
328
- url: request.url(),
329
- method: request.method?.() ?? "GET",
330
- headers: request.headers?.() ?? {},
331
- postData: request.postData?.() ?? undefined,
332
- stepHash: executionState.previousStepHash ?? "unknown",
333
- requestTimestamp: Date.now(),
334
- };
387
+ // check if the request is in the previous step's map
388
+ entry = executionState.liveRequestsMapPrevious.get(request);
389
+ debug("Request entry found in previous map:", entry?.requestId || false);
390
+ if (!entry) {
391
+ debug("No entry, creating fallback! for url:", request.url());
392
+ entry = {
393
+ requestId: request.requestId,
394
+ url: request.url(),
395
+ method: request.method?.() ?? "GET",
396
+ headers: request.headers?.() ?? {},
397
+ postData: request.postData?.() ?? undefined,
398
+ stepHash: executionState.previousStepHash ?? "unknown",
399
+ requestTimestamp: Date.now(),
400
+ };
401
+ }
335
402
  }
336
403
  // Remove the request from the live requests map
337
404
  let respData;
@@ -350,33 +417,35 @@ async function handleRequestFinishedOrFailed(request, failed) {
350
417
  }
351
418
  else {
352
419
  const response = await request.response();
353
- // console.log("Response received for request:", request.url());
354
- const headers = response?.headers() || {};
420
+ const headers = response?.headers?.() || {};
355
421
  let contentType = headers["content-type"] || null;
356
422
  let body = null;
357
423
  try {
358
- if (contentType && contentType.includes("application/json")) {
359
- const text = await response.text();
360
- body = JSON.parse(text);
361
- // console.log("Parsed JSON response body:", body);
362
- }
363
- else if (contentType && contentType.includes("text")) {
364
- body = await response.text();
365
- // console.log("Parsed text response body:", body);
366
- }
367
- else if (contentType && contentType.includes("application/csv")) {
368
- body = await response.text();
369
- contentType = "text/csv"; // Normalize content type for CSV
370
- // console.log("Parsed CSV response body:", body);
424
+ if (responseHasBody(response)) {
425
+ if (contentType && contentType.includes("application/json")) {
426
+ body = JSON.parse(await response.text());
427
+ }
428
+ else if ((contentType && contentType.includes("text")) ||
429
+ (contentType && contentType.includes("application/csv"))) {
430
+ body = await response.text();
431
+ if (contentType.includes("application/csv"))
432
+ contentType = "text/csv";
433
+ }
434
+ else {
435
+ // If you want binary, you could read it here—but only when responseHasBody(response) is true
436
+ // const buffer = await response.body();
437
+ // body = buffer.toString("base64");
438
+ }
371
439
  }
372
440
  else {
373
- // Optionally handle binary here
374
- // const buffer = await response.body();
375
- // body = buffer.toString("base64"); // if you want to store binary safely
441
+ // For redirects / no-body statuses, it's useful to keep redirect info
442
+ // e.g., include Location header if present
443
+ // body stays null
376
444
  }
377
445
  }
378
446
  catch (err) {
379
447
  console.error("Error reading response body:", err);
448
+ body = await response.text();
380
449
  }
381
450
  respData = {
382
451
  status: response.status(),
@@ -390,42 +459,36 @@ async function handleRequestFinishedOrFailed(request, failed) {
390
459
  if (executionState.liveRequestsMap.has(request)) {
391
460
  /* “normal” path – keep it in the buffer */
392
461
  entry.response = respData;
462
+ if (outOfStep && executionState.currentStepHash) {
463
+ await saveMap(true);
464
+ }
393
465
  }
394
466
  else {
395
- /* orphan response – append directly to the previous step file */
396
- entry.response = respData;
397
- await appendEntryToStepFile(entry.stepHash, entry); // ➍ NEW
467
+ if (executionState.liveRequestsMapPrevious.has(request)) {
468
+ entry.response = respData;
469
+ await saveMap(false);
470
+ }
471
+ else {
472
+ /* orphan response – append directly to the previous step file */
473
+ entry.response = respData;
474
+ await appendEntryToStepFile(entry.stepHash, entry); // ➍ NEW
475
+ }
398
476
  }
399
477
  entry.response = respData;
400
478
  return;
401
479
  }
402
- // Handle successful request with a response
403
- // const headers = response.headers();
404
- // const contentType = headers["content-type"] || "";
405
- // let body = null;
406
- // try {
407
- // if (contentType.includes("application/json")) {
408
- // const text = await response.text();
409
- // body = JSON.parse(text);
410
- // } else if (contentType.includes("text")) {
411
- // body = await response.text();
412
- // } else {
413
- // // Optionally handle binary here
414
- // // const buffer = await response.body();
415
- // // body = buffer.toString("base64"); // if you want to store binary safely
416
- // }
417
- // } catch (err) {
418
- // console.error("Error reading response body:", err);
419
- // }
420
- // requestData.response = {
421
- // status: response.status(),
422
- // headers,
423
- // url: response.url(),
424
- // timestamp: Date.now(),
425
- // body,
426
- // contentType,
427
- // };
428
- // saveNetworkDataToFile(requestData);
429
- // }
480
+ function responseHasBody(response) {
481
+ if (!response)
482
+ return false;
483
+ const s = response.status?.() ?? 0;
484
+ // RFC 7231: 1xx, 204, 205, 304 have no body. Playwright: 3xx (redirect) body is unavailable.
485
+ if ((s >= 100 && s < 200) || s === 204 || s === 205 || s === 304 || (s >= 300 && s < 400))
486
+ return false;
487
+ // HEAD responses have no body by definition
488
+ const method = response.request?.().method?.() ?? "GET";
489
+ if (method === "HEAD")
490
+ return false;
491
+ return true;
492
+ }
430
493
  export { registerNetworkEvents, registerDownloadEvent };
431
494
  //# sourceMappingURL=network.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"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"}
package/lib/route.d.ts CHANGED
@@ -12,10 +12,72 @@ export interface RouteItem {
12
12
  mandatory: boolean;
13
13
  timeout: number;
14
14
  }
15
- export interface Action {
16
- type: string;
15
+ interface StubAction {
16
+ type: "stub_request";
17
+ config: {
18
+ path?: string;
19
+ statusCode?: number;
20
+ contentType?: string;
21
+ body?: string;
22
+ };
23
+ }
24
+ interface JSONModifyAction {
25
+ type: "json_modify";
26
+ config: {
27
+ path: string;
28
+ modifyValue: any;
29
+ };
30
+ }
31
+ interface JSONWholeModifyAction {
32
+ type: "json_whole_modify";
17
33
  config: any;
18
34
  }
35
+ interface TextModifyAction {
36
+ type: "change_text";
37
+ config: string;
38
+ }
39
+ interface JSONVerifyAction {
40
+ type: "assert_json";
41
+ config: {
42
+ path: string;
43
+ expectedValue: any;
44
+ };
45
+ }
46
+ interface JSONWholeVerifyAction {
47
+ type: "assert_whole_json";
48
+ config: {
49
+ contains: string;
50
+ } | {
51
+ equals: string;
52
+ };
53
+ }
54
+ interface TextVerifyAction {
55
+ type: "assert_text";
56
+ config: {
57
+ contains: string;
58
+ } | {
59
+ equals: string;
60
+ };
61
+ }
62
+ interface StatusCodeModifyAction {
63
+ type: "status_code_change";
64
+ config: number;
65
+ }
66
+ interface StatusCodeVerifyAction {
67
+ type: "status_code_verification";
68
+ config: number;
69
+ }
70
+ interface AbortAction {
71
+ type: "abort_request";
72
+ config: {
73
+ errorCode: string;
74
+ };
75
+ }
76
+ export type Action = AbortAction | StatusCodeVerifyAction | StatusCodeModifyAction | TextVerifyAction | TextModifyAction | JSONModifyAction | JSONWholeModifyAction | JSONVerifyAction | JSONWholeVerifyAction | StubAction;
77
+ export declare function pathFilter(savedPath: string, actualPath: string): boolean;
78
+ export declare function queryParamsFilter(savedQueryParams: Record<string, string> | null, actualQueryParams: URLSearchParams): boolean;
79
+ export declare function methodFilter(savedMethod: string | null, actualMethod: string): boolean;
19
80
  export declare function registerBeforeStepRoutes(context: any, stepName: string, world: any): Promise<void>;
20
81
  export declare function registerAfterStepRoutes(context: any, world: any): Promise<any>;
21
82
  export declare function _stepNameToTemplate(stepName: string): string;
83
+ export {};