automation_model 1.0.736-dev → 1.0.736-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 (47) hide show
  1. package/README.md +4 -1
  2. package/lib/api.js +4 -3
  3. package/lib/api.js.map +1 -1
  4. package/lib/auto_page.d.ts +3 -1
  5. package/lib/auto_page.js +60 -9
  6. package/lib/auto_page.js.map +1 -1
  7. package/lib/browser_manager.js +19 -25
  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.js +18 -2
  14. package/lib/command_common.js.map +1 -1
  15. package/lib/file_checker.js +129 -25
  16. package/lib/file_checker.js.map +1 -1
  17. package/lib/index.js +1 -0
  18. package/lib/index.js.map +1 -1
  19. package/lib/init_browser.d.ts +1 -2
  20. package/lib/init_browser.js +121 -125
  21. package/lib/init_browser.js.map +1 -1
  22. package/lib/locator.d.ts +1 -0
  23. package/lib/locator.js +9 -2
  24. package/lib/locator.js.map +1 -1
  25. package/lib/network.d.ts +2 -0
  26. package/lib/network.js +393 -87
  27. package/lib/network.js.map +1 -1
  28. package/lib/route.d.ts +21 -0
  29. package/lib/route.js +575 -0
  30. package/lib/route.js.map +1 -0
  31. package/lib/scripts/axe.mini.js +3 -3
  32. package/lib/snapshot_validation.js.map +1 -1
  33. package/lib/stable_browser.d.ts +27 -2
  34. package/lib/stable_browser.js +752 -52
  35. package/lib/stable_browser.js.map +1 -1
  36. package/lib/table.d.ts +9 -7
  37. package/lib/table.js +82 -12
  38. package/lib/table.js.map +1 -1
  39. package/lib/table_helper.js +14 -0
  40. package/lib/table_helper.js.map +1 -1
  41. package/lib/test_context.d.ts +1 -0
  42. package/lib/test_context.js +1 -0
  43. package/lib/test_context.js.map +1 -1
  44. package/lib/utils.d.ts +3 -1
  45. package/lib/utils.js +38 -6
  46. package/lib/utils.js.map +1 -1
  47. package/package.json +11 -9
package/lib/network.js CHANGED
@@ -1,5 +1,10 @@
1
1
  import path from "path";
2
2
  import fs from "fs";
3
+ import { _stepNameToTemplate } from "./route.js";
4
+ import crypto from "crypto";
5
+ import { tmpdir } from "os";
6
+ import createDebug from "debug";
7
+ const debug = createDebug("automation_model:network");
3
8
  function _getNetworkFile(world = null, web = null, context = null) {
4
9
  let networkFile = null;
5
10
  if (world && world.reportFolder) {
@@ -43,17 +48,22 @@ function registerDownloadEvent(page, world, context) {
43
48
  }
44
49
  }
45
50
  function registerNetworkEvents(world, web, context, page) {
51
+ // Map to hold request start times and IDs
46
52
  const networkFile = _getNetworkFile(world, web, context);
47
53
  function saveNetworkData() {
48
54
  if (context && context.networkData) {
49
- fs.writeFileSync(networkFile, JSON.stringify(context.networkData, null, 2), "utf8");
55
+ try {
56
+ fs.writeFileSync(networkFile, JSON.stringify(context.networkData, null, 2), "utf8");
57
+ }
58
+ catch (error) {
59
+ console.error("Error saving network data:", error);
60
+ }
50
61
  }
51
62
  }
52
63
  if (!context) {
53
64
  console.error("No context found to register network events");
54
65
  return;
55
66
  }
56
- // Map to hold request start times and IDs
57
67
  const requestTimes = new Map();
58
68
  let requestIdCounter = 0;
59
69
  if (page) {
@@ -62,115 +72,144 @@ function registerNetworkEvents(world, web, context, page) {
62
72
  const networkData = context.networkData;
63
73
  // Event listener for when a request is made
64
74
  page.on("request", (request) => {
65
- const requestId = requestIdCounter++;
66
- request.requestId = requestId; // Assign a unique ID to the request
67
- const startTime = Date.now();
68
- requestTimes.set(requestId, startTime);
69
- // Initialize data for this request
70
- networkData.push({
71
- requestId,
72
- requestStart: startTime,
73
- requestUrl: request.url(),
74
- method: request.method(),
75
- status: "Pending",
76
- responseTime: null,
77
- responseReceived: null,
78
- responseEnd: null,
79
- size: null,
80
- });
81
- saveNetworkData();
82
- });
83
- // Event listener for when a response is received
84
- page.on("response", async (response) => {
85
- const request = response.request();
86
- const requestId = request.requestId;
87
- const receivedTime = Date.now();
88
- // Find the corresponding data object
89
- const data = networkData.find((item) => item.requestId === requestId);
90
- if (data) {
91
- data.status = response.status();
92
- data.responseReceived = receivedTime;
75
+ try {
76
+ // console.log("Request started:", request.url());
77
+ const requestId = requestIdCounter++;
78
+ request.requestId = requestId; // Assign a unique ID to the request
79
+ handleRequest(request);
80
+ const startTime = Date.now();
81
+ requestTimes.set(requestId, startTime);
82
+ // Initialize data for this request
83
+ networkData.push({
84
+ requestId,
85
+ requestStart: startTime,
86
+ requestUrl: request.url(),
87
+ method: request.method(),
88
+ status: "Pending",
89
+ responseTime: null,
90
+ responseReceived: null,
91
+ responseEnd: null,
92
+ size: null,
93
+ });
93
94
  saveNetworkData();
94
95
  }
95
- else {
96
- console.error("No data found for request ID", requestId);
96
+ catch (error) {
97
+ // console.error("Error handling request:", error);
97
98
  }
98
99
  });
99
- // Event listener for when a request is finished
100
- page.on("requestfinished", async (request) => {
101
- const requestId = request.requestId;
102
- const endTime = Date.now();
103
- const startTime = requestTimes.get(requestId);
104
- const response = await request.response();
105
- const timing = request.timing();
106
- // Find the corresponding data object
107
- const data = networkData.find((item) => item.requestId === requestId);
108
- if (data) {
109
- data.responseEnd = endTime;
110
- data.responseTime = endTime - startTime;
111
- // Get response size
112
- try {
113
- const body = await response.body();
114
- data.size = body.length;
115
- }
116
- catch (e) {
117
- data.size = 0;
100
+ // Event listener for when a response is received
101
+ page.on("response", async (response) => {
102
+ try {
103
+ const request = response.request();
104
+ const requestId = request.requestId;
105
+ const receivedTime = Date.now();
106
+ // await handleRequestFinishedOrFailed(request, false);
107
+ // Find the corresponding data object
108
+ const data = networkData.find((item) => item.requestId === requestId);
109
+ if (data) {
110
+ data.status = response.status();
111
+ data.responseReceived = receivedTime;
112
+ saveNetworkData();
118
113
  }
119
- const type = request.resourceType();
120
- /*
121
- domainLookupStart: 80.655,
122
- domainLookupEnd: 80.668,
123
- connectStart: 80.668,
124
- secureConnectionStart: 106.688,
125
- connectEnd: 129.69,
126
- requestStart: 129.81,
127
- responseStart: 187.006,
128
- responseEnd: 188.209
129
- */
130
- data.type = type;
131
- data.domainLookupStart = timing.domainLookupStart;
132
- data.domainLookupEnd = timing.domainLookupEnd;
133
- data.connectStart = timing.connectStart;
134
- data.secureConnectionStart = timing.secureConnectionStart;
135
- data.connectEnd = timing.connectEnd;
136
- data.requestStart = timing.requestStart;
137
- data.responseStart = timing.responseStart;
138
- data.responseEnd = timing.responseEnd;
139
- saveNetworkData();
140
- if (world && world.attach) {
141
- world.attach(JSON.stringify(data), { mediaType: "application/json+network" });
114
+ else {
115
+ // console.error("No data found for request ID", requestId);
142
116
  }
143
117
  }
144
- else {
145
- console.error("No data found for request ID", requestId);
118
+ catch (error) {
119
+ // console.error("Error handling response:", error);
146
120
  }
147
121
  });
148
- // Event listener for when a request fails
149
- page.on("requestfailed", async (request) => {
150
- const requestId = request.requestId;
151
- const endTime = Date.now();
152
- const startTime = requestTimes.get(requestId);
122
+ // Event listener for when a request is finished
123
+ page.on("requestfinished", async (request) => {
153
124
  try {
154
- const res = await request.response();
155
- const statusCode = res ? res.status() : request.failure().errorText;
125
+ const requestId = request.requestId;
126
+ const endTime = Date.now();
127
+ const startTime = requestTimes.get(requestId);
128
+ await handleRequestFinishedOrFailed(request, false);
129
+ const response = await request.response();
130
+ const timing = request.timing();
156
131
  // Find the corresponding data object
157
132
  const data = networkData.find((item) => item.requestId === requestId);
158
133
  if (data) {
159
134
  data.responseEnd = endTime;
160
135
  data.responseTime = endTime - startTime;
161
- data.status = statusCode;
162
- data.size = 0;
136
+ // Get response size
137
+ try {
138
+ let size = 0;
139
+ if (responseHasBody(response)) {
140
+ const buf = await response.body();
141
+ size = buf?.length ?? 0;
142
+ }
143
+ data.size = size;
144
+ }
145
+ catch {
146
+ data.size = 0;
147
+ }
148
+ const type = request.resourceType();
149
+ /*
150
+ domainLookupStart: 80.655,
151
+ domainLookupEnd: 80.668,
152
+ connectStart: 80.668,
153
+ secureConnectionStart: 106.688,
154
+ connectEnd: 129.69,
155
+ requestStart: 129.81,
156
+ responseStart: 187.006,
157
+ responseEnd: 188.209
158
+ */
159
+ data.type = type;
160
+ data.domainLookupStart = timing.domainLookupStart;
161
+ data.domainLookupEnd = timing.domainLookupEnd;
162
+ data.connectStart = timing.connectStart;
163
+ data.secureConnectionStart = timing.secureConnectionStart;
164
+ data.connectEnd = timing.connectEnd;
165
+ data.requestStart = timing.requestStart;
166
+ data.responseStart = timing.responseStart;
167
+ data.responseEnd = timing.responseEnd;
163
168
  saveNetworkData();
164
169
  if (world && world.attach) {
165
170
  world.attach(JSON.stringify(data), { mediaType: "application/json+network" });
166
171
  }
167
172
  }
168
173
  else {
169
- console.error("No data found for request ID", requestId);
174
+ // console.error("No data found for request ID", requestId);
170
175
  }
171
176
  }
172
177
  catch (error) {
173
- // ignore
178
+ // console.error("Error handling request finished:", error);
179
+ }
180
+ });
181
+ // Event listener for when a request fails
182
+ page.on("requestfailed", async (request) => {
183
+ try {
184
+ const requestId = request.requestId;
185
+ const endTime = Date.now();
186
+ const startTime = requestTimes.get(requestId);
187
+ await handleRequestFinishedOrFailed(request, true);
188
+ try {
189
+ const res = await request.response();
190
+ const statusCode = res ? res.status() : request.failure().errorText;
191
+ // Find the corresponding data object
192
+ const data = networkData.find((item) => item.requestId === requestId);
193
+ if (data) {
194
+ data.responseEnd = endTime;
195
+ data.responseTime = endTime - startTime;
196
+ data.status = statusCode;
197
+ data.size = 0;
198
+ saveNetworkData();
199
+ if (world && world.attach) {
200
+ world.attach(JSON.stringify(data), { mediaType: "application/json+network" });
201
+ }
202
+ }
203
+ else {
204
+ // console.error("No data found for request ID", requestId);
205
+ }
206
+ }
207
+ catch (error) {
208
+ // ignore
209
+ }
210
+ }
211
+ catch (error) {
212
+ // console.error("Error handling request failed:", error);
174
213
  }
175
214
  });
176
215
  }
@@ -179,5 +218,272 @@ function registerNetworkEvents(world, web, context, page) {
179
218
  console.error("No page found to register network events");
180
219
  }
181
220
  }
221
+ async function appendEntryToStepFile(stepHash, entry) {
222
+ const debug = createDebug("network:appendEntryToStepFile");
223
+ const file = path.join(detailedNetworkFolder, `${stepHash}.json`);
224
+ debug("appending to step file:", file);
225
+ let data = [];
226
+ try {
227
+ /* read if it already exists */
228
+ const txt = await fs.promises.readFile(file, "utf8");
229
+ data = JSON.parse(txt);
230
+ }
231
+ catch {
232
+ /* ignore – file does not exist or cannot be parsed */
233
+ }
234
+ data.push(entry);
235
+ try {
236
+ debug("writing to step file:", file);
237
+ await fs.promises.writeFile(file, JSON.stringify(data, null, 2), "utf8");
238
+ }
239
+ catch (error) {
240
+ debug("Error writing to step file:", error);
241
+ }
242
+ }
243
+ const detailedNetworkFolder = path.join(tmpdir(), "blinq_network_events");
244
+ let outOfStep = true;
245
+ let timeoutId = null;
246
+ const executionState = {
247
+ currentStepHash: null,
248
+ previousStepHash: null,
249
+ liveRequestsMap: new Map(),
250
+ liveRequestsMapPrevious: new Map(),
251
+ };
252
+ export function networkBeforeStep(stepName) {
253
+ if (timeoutId) {
254
+ clearTimeout(timeoutId);
255
+ timeoutId = null;
256
+ }
257
+ outOfStep = false;
258
+ const storeDetailedNetworkData = process.env.STORE_DETAILED_NETWORK_DATA === "true";
259
+ if (!storeDetailedNetworkData) {
260
+ return;
261
+ }
262
+ // check if the folder exists, if not create it
263
+ if (!fs.existsSync(detailedNetworkFolder)) {
264
+ fs.mkdirSync(detailedNetworkFolder, { recursive: true });
265
+ }
266
+ // const stepHash = stepNameToHash(stepName);
267
+ let stepHash = "";
268
+ executionState.liveRequestsMapPrevious = executionState.liveRequestsMap;
269
+ executionState.liveRequestsMap = new Map();
270
+ stepHash = stepNameToHash(stepName);
271
+ executionState.previousStepHash = executionState.currentStepHash; // ➊ NEW
272
+ executionState.currentStepHash = stepHash;
273
+ // check if the file exists, if exists delete it
274
+ const networkFile = path.join(detailedNetworkFolder, `${stepHash}.json`);
275
+ try {
276
+ fs.rmSync(path.join(networkFile), { force: true });
277
+ }
278
+ catch (err) {
279
+ // Ignore error if file does not exist
280
+ }
281
+ }
282
+ async function saveMap(current) {
283
+ try {
284
+ if (current) {
285
+ const entries = Array.from(executionState.liveRequestsMap.values());
286
+ const file = path.join(detailedNetworkFolder, `${executionState.currentStepHash}.json`);
287
+ await fs.promises.writeFile(file, JSON.stringify(entries, null, 2), "utf8");
288
+ }
289
+ else {
290
+ const entries = Array.from(executionState.liveRequestsMapPrevious.values());
291
+ const file = path.join(detailedNetworkFolder, `${executionState.previousStepHash}.json`);
292
+ await fs.promises.writeFile(file, JSON.stringify(entries, null, 2), "utf8");
293
+ }
294
+ }
295
+ catch (error) {
296
+ console.error("Error saving map data:", error);
297
+ }
298
+ }
299
+ export async function networkAfterStep(stepName) {
300
+ const storeDetailedNetworkData = process.env.STORE_DETAILED_NETWORK_DATA === "true";
301
+ if (!storeDetailedNetworkData) {
302
+ return;
303
+ }
304
+ //await new Promise((r) => setTimeout(r, 1000));
305
+ await saveMap(true);
306
+ /* reset for next step */
307
+ //executionState.previousStepHash = executionState.currentStepHash; // ➋ NEW
308
+ //executionState.liveRequestsMap.clear();
309
+ outOfStep = true;
310
+ // set a timer of 60 seconds to the outOfStep, after that it will be set to false so no network collection will happen
311
+ timeoutId = setTimeout(() => {
312
+ outOfStep = false;
313
+ }, 60000);
314
+ }
315
+ function stepNameToHash(stepName) {
316
+ const templateName = _stepNameToTemplate(stepName);
317
+ // create hash from the template name
318
+ return crypto.createHash("sha256").update(templateName).digest("hex");
319
+ }
320
+ function handleRequest(request) {
321
+ const debug = createDebug("automation_model:network:handleRequest");
322
+ const storeDetailedNetworkData = process.env.STORE_DETAILED_NETWORK_DATA === "true";
323
+ if (!storeDetailedNetworkData || !executionState.currentStepHash) {
324
+ return;
325
+ }
326
+ const entry = {
327
+ requestId: request.requestId,
328
+ url: request.url(),
329
+ method: request.method(),
330
+ headers: request.headers(),
331
+ postData: request.postData(),
332
+ requestTimestamp: Date.now(),
333
+ stepHash: executionState.currentStepHash,
334
+ };
335
+ if (!outOfStep) {
336
+ executionState.liveRequestsMap.set(request, entry);
337
+ debug("Request to", request.url(), "with", request.requestId, "added to current step map at", Date.now());
338
+ }
339
+ else {
340
+ debug("Request to", request.url(), "ignored as outOfStep");
341
+ }
342
+ }
343
+ async function handleRequestFinishedOrFailed(request, failed) {
344
+ const debug = createDebug("automation_model:network:handleRequestFinishedOrFailed");
345
+ const storeDetailedNetworkData = process.env.STORE_DETAILED_NETWORK_DATA === "true";
346
+ if (!storeDetailedNetworkData) {
347
+ return;
348
+ }
349
+ const requestId = request.requestId;
350
+ debug("Request id in handleRequestFinishedOrFailed:", requestId, "at", Date.now());
351
+ // const response = await request.response(); // This may be null if the request failed
352
+ let entry = executionState.liveRequestsMap.get(request);
353
+ debug("Request entry found in current map:", entry?.requestId || false);
354
+ if (!entry) {
355
+ // check if the request is in the previous step's map
356
+ entry = executionState.liveRequestsMapPrevious.get(request);
357
+ debug("Request entry found in previous map:", entry?.requestId || false);
358
+ if (!entry) {
359
+ debug("No entry, creating fallback! for url:", request.url());
360
+ entry = {
361
+ requestId: request.requestId,
362
+ url: request.url(),
363
+ method: request.method?.() ?? "GET",
364
+ headers: request.headers?.() ?? {},
365
+ postData: request.postData?.() ?? undefined,
366
+ stepHash: executionState.previousStepHash ?? "unknown",
367
+ requestTimestamp: Date.now(),
368
+ };
369
+ }
370
+ }
371
+ // Remove the request from the live requests map
372
+ let respData;
373
+ // executionState.liveRequestsMap.delete(request);
374
+ if (failed) {
375
+ // Handle failed request
376
+ respData = {
377
+ status: null,
378
+ headers: {},
379
+ url: request.url(),
380
+ timestamp: Date.now(),
381
+ body: null,
382
+ contentType: null,
383
+ error: "Request failed",
384
+ };
385
+ }
386
+ else {
387
+ const response = await request.response();
388
+ const headers = response?.headers?.() || {};
389
+ let contentType = headers["content-type"] || null;
390
+ let body = null;
391
+ try {
392
+ if (responseHasBody(response)) {
393
+ if (contentType && contentType.includes("application/json")) {
394
+ body = JSON.parse(await response.text());
395
+ }
396
+ else if ((contentType && contentType.includes("text")) ||
397
+ (contentType && contentType.includes("application/csv"))) {
398
+ body = await response.text();
399
+ if (contentType.includes("application/csv"))
400
+ contentType = "text/csv";
401
+ }
402
+ else {
403
+ // If you want binary, you could read it here—but only when responseHasBody(response) is true
404
+ // const buffer = await response.body();
405
+ // body = buffer.toString("base64");
406
+ }
407
+ }
408
+ else {
409
+ // For redirects / no-body statuses, it's useful to keep redirect info
410
+ // e.g., include Location header if present
411
+ // body stays null
412
+ }
413
+ }
414
+ catch (err) {
415
+ console.error("Error reading response body:", err);
416
+ }
417
+ respData = {
418
+ status: response.status(),
419
+ headers,
420
+ url: response.url(),
421
+ timestamp: Date.now(),
422
+ body,
423
+ contentType,
424
+ };
425
+ }
426
+ if (executionState.liveRequestsMap.has(request)) {
427
+ /* “normal” path – keep it in the buffer */
428
+ entry.response = respData;
429
+ if (outOfStep && executionState.currentStepHash) {
430
+ await saveMap(true);
431
+ }
432
+ }
433
+ else {
434
+ if (executionState.liveRequestsMapPrevious.has(request)) {
435
+ entry.response = respData;
436
+ await saveMap(false);
437
+ }
438
+ else {
439
+ /* orphan response – append directly to the previous step file */
440
+ entry.response = respData;
441
+ await appendEntryToStepFile(entry.stepHash, entry); // ➍ NEW
442
+ }
443
+ }
444
+ entry.response = respData;
445
+ return;
446
+ }
447
+ function responseHasBody(response) {
448
+ if (!response)
449
+ return false;
450
+ const s = response.status?.() ?? 0;
451
+ // RFC 7231: 1xx, 204, 205, 304 have no body. Playwright: 3xx (redirect) body is unavailable.
452
+ if ((s >= 100 && s < 200) || s === 204 || s === 205 || s === 304 || (s >= 300 && s < 400))
453
+ return false;
454
+ // HEAD responses have no body by definition
455
+ const method = response.request?.().method?.() ?? "GET";
456
+ if (method === "HEAD")
457
+ return false;
458
+ return true;
459
+ }
460
+ // Handle successful request with a response
461
+ // const headers = response.headers();
462
+ // const contentType = headers["content-type"] || "";
463
+ // let body = null;
464
+ // try {
465
+ // if (contentType.includes("application/json")) {
466
+ // const text = await response.text();
467
+ // body = JSON.parse(text);
468
+ // } else if (contentType.includes("text")) {
469
+ // body = await response.text();
470
+ // } else {
471
+ // // Optionally handle binary here
472
+ // // const buffer = await response.body();
473
+ // // body = buffer.toString("base64"); // if you want to store binary safely
474
+ // }
475
+ // } catch (err) {
476
+ // console.error("Error reading response body:", err);
477
+ // }
478
+ // requestData.response = {
479
+ // status: response.status(),
480
+ // headers,
481
+ // url: response.url(),
482
+ // timestamp: Date.now(),
483
+ // body,
484
+ // contentType,
485
+ // };
486
+ // saveNetworkDataToFile(requestData);
487
+ // }
182
488
  export { registerNetworkEvents, registerDownloadEvent };
183
489
  //# 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 ADDED
@@ -0,0 +1,21 @@
1
+ export interface Route {
2
+ template: string;
3
+ routes: RouteItem[];
4
+ }
5
+ export interface RouteItem {
6
+ filters: {
7
+ path: string;
8
+ queryParams: Record<string, string> | null;
9
+ method: string | null;
10
+ };
11
+ actions: Action[];
12
+ mandatory: boolean;
13
+ timeout: number;
14
+ }
15
+ export interface Action {
16
+ type: string;
17
+ config: any;
18
+ }
19
+ export declare function registerBeforeStepRoutes(context: any, stepName: string, world: any): Promise<void>;
20
+ export declare function registerAfterStepRoutes(context: any, world: any): Promise<any>;
21
+ export declare function _stepNameToTemplate(stepName: string): string;