automation_model 1.0.684-dev → 1.0.684-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 (59) hide show
  1. package/README.md +4 -1
  2. package/lib/analyze_helper.js.map +1 -1
  3. package/lib/api.d.ts +0 -1
  4. package/lib/api.js.map +1 -1
  5. package/lib/auto_page.d.ts +4 -2
  6. package/lib/auto_page.js +179 -98
  7. package/lib/auto_page.js.map +1 -1
  8. package/lib/browser_manager.js +29 -9
  9. package/lib/browser_manager.js.map +1 -1
  10. package/lib/bruno.d.ts +1 -0
  11. package/lib/bruno.js +120 -21
  12. package/lib/bruno.js.map +1 -1
  13. package/lib/command_common.js +9 -1
  14. package/lib/command_common.js.map +1 -1
  15. package/lib/date_time.js.map +1 -1
  16. package/lib/drawRect.js.map +1 -1
  17. package/lib/environment.d.ts +1 -0
  18. package/lib/environment.js +1 -0
  19. package/lib/environment.js.map +1 -1
  20. package/lib/error-messages.js.map +1 -1
  21. package/lib/file_checker.d.ts +1 -0
  22. package/lib/file_checker.js +165 -0
  23. package/lib/file_checker.js.map +1 -0
  24. package/lib/find_function.js.map +1 -1
  25. package/lib/index.d.ts +1 -0
  26. package/lib/index.js +1 -0
  27. package/lib/index.js.map +1 -1
  28. package/lib/init_browser.js +4 -4
  29. package/lib/init_browser.js.map +1 -1
  30. package/lib/locate_element.js.map +1 -1
  31. package/lib/locator.d.ts +1 -0
  32. package/lib/locator.js +10 -3
  33. package/lib/locator.js.map +1 -1
  34. package/lib/locator_log.js.map +1 -1
  35. package/lib/network.d.ts +2 -0
  36. package/lib/network.js +148 -0
  37. package/lib/network.js.map +1 -1
  38. package/lib/route.d.ts +21 -0
  39. package/lib/route.js +390 -0
  40. package/lib/route.js.map +1 -0
  41. package/lib/scripts/axe.mini.js +3 -3
  42. package/lib/snapshot_validation.d.ts +37 -0
  43. package/lib/snapshot_validation.js +357 -0
  44. package/lib/snapshot_validation.js.map +1 -0
  45. package/lib/stable_browser.d.ts +62 -25
  46. package/lib/stable_browser.js +1100 -273
  47. package/lib/stable_browser.js.map +1 -1
  48. package/lib/table.d.ts +9 -7
  49. package/lib/table.js +82 -12
  50. package/lib/table.js.map +1 -1
  51. package/lib/table_analyze.js.map +1 -1
  52. package/lib/table_helper.js.map +1 -1
  53. package/lib/test_context.d.ts +1 -0
  54. package/lib/test_context.js +1 -0
  55. package/lib/test_context.js.map +1 -1
  56. package/lib/utils.d.ts +3 -2
  57. package/lib/utils.js +78 -56
  58. package/lib/utils.js.map +1 -1
  59. package/package.json +14 -8
@@ -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;
package/lib/route.js ADDED
@@ -0,0 +1,390 @@
1
+ import fs from "fs/promises";
2
+ import path from "path";
3
+ import objectPath from "object-path";
4
+ import { tmpdir } from "os";
5
+ async function loadRoutes(context) {
6
+ if (context.loadedRoutes !== null)
7
+ return context.loadedRoutes;
8
+ try {
9
+ let dir = path.join(process.cwd(), "data", "routes");
10
+ if (process.env.TEMP_RUN === "true") {
11
+ dir = path.join(tmpdir(), "blinq_temp_routes");
12
+ }
13
+ if (!(await folderExists(dir))) {
14
+ context.loadedRoutes = [];
15
+ return context.loadedRoutes;
16
+ }
17
+ const files = await fs.readdir(dir);
18
+ const jsonFiles = files.filter((f) => f.endsWith(".json"));
19
+ const allRoutes = [];
20
+ for (const file of jsonFiles) {
21
+ const content = await fs.readFile(path.join(dir, file), "utf-8");
22
+ const routeObj = JSON.parse(content);
23
+ allRoutes.push(routeObj);
24
+ }
25
+ context.loadedRoutes = allRoutes;
26
+ if (debug)
27
+ console.log(`Loaded ${allRoutes.length} route definitions from ${dir}`);
28
+ }
29
+ catch (error) {
30
+ console.error("Error loading routes:", error);
31
+ context.loadedRoutes = [];
32
+ }
33
+ return context.loadedRoutes;
34
+ }
35
+ function matchRoute(routeItem, req) {
36
+ const url = new URL(req.request().url());
37
+ const methodMatch = !routeItem.filters.method || routeItem.filters.method === req.request().method();
38
+ const pathMatch = routeItem.filters.path === url.pathname;
39
+ const queryParams = routeItem.filters.queryParams;
40
+ const queryMatch = !queryParams || Object.entries(queryParams).every(([key, value]) => url.searchParams.get(key) === value);
41
+ return methodMatch && pathMatch && queryMatch;
42
+ }
43
+ let debug = false;
44
+ export async function registerBeforeStepRoutes(context, stepName, world) {
45
+ const page = context.web.page;
46
+ if (!page)
47
+ throw new Error("context.web.page is missing");
48
+ const stepTemplate = _stepNameToTemplate(stepName);
49
+ const routes = await loadRoutes(context);
50
+ const matchedRouteDefs = routes.filter((r) => r.template === stepTemplate);
51
+ const allRouteItems = matchedRouteDefs.flatMap((r) => r.routes);
52
+ if (!context.__routeState) {
53
+ context.__routeState = { matched: [] };
54
+ }
55
+ // Pre-register all mandatory routes
56
+ for (const item of allRouteItems) {
57
+ if (item.mandatory) {
58
+ const tracking = {
59
+ routeItem: item,
60
+ url: "",
61
+ completed: false,
62
+ startedAt: Date.now(),
63
+ actionResults: [],
64
+ };
65
+ context.__routeState.matched.push(tracking);
66
+ }
67
+ }
68
+ let message = null;
69
+ page.route("**/*", async (route) => {
70
+ const request = route.request();
71
+ // print the url if debug is enabled
72
+ if (debug) {
73
+ console.log(`Intercepting request: ${request.method()} ${request.url()}`);
74
+ }
75
+ const matchedItem = allRouteItems.find((item) => matchRoute(item, route));
76
+ if (debug) {
77
+ console.log("Matched route item:", matchedItem);
78
+ }
79
+ if (!matchedItem)
80
+ return route.continue();
81
+ if (debug) {
82
+ console.log(`Matched route item: ${JSON.stringify(matchedItem)}`);
83
+ }
84
+ // Find pre-registered tracker
85
+ let tracking = context.__routeState.matched.find((t) => t.routeItem === matchedItem && !t.completed);
86
+ // If not mandatory, register dynamically
87
+ if (!tracking) {
88
+ tracking = {
89
+ routeItem: matchedItem,
90
+ url: request.url(),
91
+ completed: false,
92
+ startedAt: Date.now(),
93
+ actionResults: [],
94
+ };
95
+ context.__routeState.matched.push(tracking);
96
+ }
97
+ else {
98
+ tracking.url = request.url();
99
+ }
100
+ let response;
101
+ try {
102
+ response = await route.fetch();
103
+ }
104
+ catch (e) {
105
+ console.error("Fetch failed for", request.url(), e);
106
+ if (tracking?.timer)
107
+ clearTimeout(tracking.timer);
108
+ return route.abort();
109
+ }
110
+ let status = response.status();
111
+ let headers = response.headers();
112
+ const isBinary = !headers["content-type"]?.includes("application/json") && !headers["content-type"]?.includes("text");
113
+ let body;
114
+ if (isBinary) {
115
+ body = await response.body(); // returns a Buffer
116
+ }
117
+ else {
118
+ body = await response.text();
119
+ }
120
+ let json;
121
+ try {
122
+ // check if the body is string
123
+ if (typeof body === "string") {
124
+ json = JSON.parse(body);
125
+ }
126
+ }
127
+ catch (_) { }
128
+ const actionResults = [];
129
+ let abortActionPerformed = false;
130
+ for (const action of matchedItem.actions) {
131
+ let actionStatus = "success";
132
+ const description = JSON.stringify(action.config);
133
+ switch (action.type) {
134
+ case "abort_request":
135
+ if (tracking?.timer)
136
+ clearTimeout(tracking.timer);
137
+ const errorCode = action.config?.errorCode ?? "failed";
138
+ console.log(`[abort_request] Aborting with error code: ${errorCode}`);
139
+ await route.abort(errorCode);
140
+ abortActionPerformed = true;
141
+ tracking.completed = true;
142
+ break;
143
+ case "status_code_verification":
144
+ if (String(status) !== String(action.config)) {
145
+ actionStatus = "fail";
146
+ tracking.actionResults = actionResults;
147
+ message = `Status code verification failed. Expected ${action.config}, got ${status}`;
148
+ }
149
+ else {
150
+ console.log(`[status_code_verification] Passed`);
151
+ message = `Status code verification passed. Expected ${action.config}, got ${status}`;
152
+ }
153
+ break;
154
+ case "json_modify":
155
+ if (!json) {
156
+ // console.error(`[json_modify] Response is not JSON`);
157
+ actionStatus = "fail";
158
+ tracking.actionResults = actionResults;
159
+ message = "JSON modification failed. Response is not JSON";
160
+ }
161
+ else {
162
+ if (action.config && action.config.path && action.config.modifyValue) {
163
+ objectPath.set(json, action.config.path, action.config.modifyValue);
164
+ console.log(`[json_modify] Modified path ${action.config.path} to ${action.config.modifyValue}`);
165
+ console.log(`[json_modify] Modified JSON`);
166
+ message = `JSON modified successfully`;
167
+ }
168
+ }
169
+ break;
170
+ case "status_code_change":
171
+ status = Number(action.config);
172
+ console.log(`[status_code_change] Status changed to ${status}`);
173
+ message = `Status code changed to ${status}`;
174
+ break;
175
+ case "change_text":
176
+ if (!headers["content-type"]?.includes("text/html")) {
177
+ actionStatus = "fail";
178
+ tracking.actionResults = actionResults;
179
+ message = "Change text action failed. Content-Type is not text/html";
180
+ }
181
+ else {
182
+ body = action.config;
183
+ console.log(`[change_text] HTML body replaced`);
184
+ message = `HTML body replaced successfully`;
185
+ }
186
+ break;
187
+ case "assert_json":
188
+ if (!json) {
189
+ actionStatus = "fail";
190
+ tracking.actionResults = actionResults;
191
+ message = "JSON assertion failed. Response is not JSON";
192
+ }
193
+ else {
194
+ const actual = objectPath.get(json, action.config.path);
195
+ if (JSON.stringify(actual) !== JSON.stringify(action.config.expectedValue)) {
196
+ actionStatus = "fail";
197
+ tracking.actionResults = actionResults;
198
+ message = `JSON assertion failed for path ${action.config.path}: expected ${JSON.stringify(action.config.expectedValue)}, got ${JSON.stringify(actual)}`;
199
+ }
200
+ else {
201
+ console.log(`[assert_json] Assertion passed for path ${action.config.path}`);
202
+ message = `JSON assertion passed for path ${action.config.path}`;
203
+ }
204
+ }
205
+ break;
206
+ case "assert_text":
207
+ if (typeof body !== "string") {
208
+ console.error(`[assert_text] Body is not text`);
209
+ actionStatus = "fail";
210
+ tracking.actionResults = actionResults;
211
+ message = "Text assertion failed. Body is not text";
212
+ }
213
+ else {
214
+ if (action.config.contains && !body.includes(action.config.contains)) {
215
+ actionStatus = "fail";
216
+ tracking.actionResults = actionResults;
217
+ message = `Text assertion failed. Expected to contain: "${action.config.contains}", actual: "${body}"`;
218
+ }
219
+ else if (action.config.equals && body !== action.config.equals) {
220
+ actionStatus = "fail";
221
+ tracking.actionResults = actionResults;
222
+ message = `Text assertion failed. Expected exact match: "${action.config.equals}", actual: "${body}"`;
223
+ }
224
+ else {
225
+ console.log(`[assert_text] Assertion passed`);
226
+ message = `Text assertion passed.`;
227
+ }
228
+ }
229
+ break;
230
+ default:
231
+ console.warn(`Unknown action type: ${action.type}`);
232
+ }
233
+ actionResults.push({ type: action.type, description, status: actionStatus, message: message });
234
+ }
235
+ tracking.completed = true;
236
+ tracking.actionResults = actionResults;
237
+ if (tracking.timer)
238
+ clearTimeout(tracking.timer);
239
+ const responseBody = isBinary ? body : json ? JSON.stringify(json) : body;
240
+ if (!abortActionPerformed) {
241
+ await route.fulfill({ status, body: responseBody, headers });
242
+ }
243
+ });
244
+ }
245
+ export async function registerAfterStepRoutes(context, world) {
246
+ const state = context.__routeState;
247
+ if (!state)
248
+ return [];
249
+ const mandatoryRoutes = state.matched.filter((tracked) => tracked.routeItem.mandatory);
250
+ if (mandatoryRoutes.length === 0) {
251
+ context.__routeState = null;
252
+ return [];
253
+ }
254
+ const maxTimeout = Math.max(...mandatoryRoutes.map((r) => r.routeItem.timeout));
255
+ const startTime = Date.now();
256
+ const mandatoryRouteReached = mandatoryRoutes.map((r) => true);
257
+ await new Promise((resolve) => {
258
+ const interval = setInterval(() => {
259
+ const now = Date.now();
260
+ const allCompleted = mandatoryRoutes.every((r) => r.completed);
261
+ const allTimedOut = mandatoryRoutes.every((r) => r.completed || now - startTime >= r.routeItem.timeout);
262
+ for (const r of mandatoryRoutes) {
263
+ const elapsed = now - startTime;
264
+ if (!r.completed && elapsed >= r.routeItem.timeout) {
265
+ mandatoryRouteReached[mandatoryRoutes.indexOf(r)] = false;
266
+ // console.error(
267
+ // `[MANDATORY] Request to ${r.routeItem.filters.path} did not complete within ${r.routeItem.timeout}ms (elapsed: ${elapsed})`
268
+ // );
269
+ }
270
+ }
271
+ if (allCompleted || allTimedOut) {
272
+ clearInterval(interval);
273
+ resolve();
274
+ }
275
+ }, 100);
276
+ });
277
+ context.results = mandatoryRoutes.map((tracked) => {
278
+ const { routeItem, url, completed, actionResults = [] } = tracked;
279
+ const actions = actionResults.map((ar) => {
280
+ let status = ar.status;
281
+ if (!completed)
282
+ status = "timeout";
283
+ return {
284
+ type: ar.type,
285
+ description: ar.description,
286
+ status,
287
+ message: ar.message || null,
288
+ };
289
+ });
290
+ let overallStatus;
291
+ if (!completed) {
292
+ overallStatus = "timeout";
293
+ }
294
+ else if (actions.some((a) => a.status === "fail")) {
295
+ overallStatus = "fail";
296
+ }
297
+ else {
298
+ overallStatus = "success";
299
+ }
300
+ return {
301
+ url,
302
+ filters: routeItem.filters,
303
+ actions,
304
+ overallStatus,
305
+ };
306
+ });
307
+ try {
308
+ await context.web.page.unroute("**/*");
309
+ }
310
+ catch (e) {
311
+ console.error("Failed to unroute:", e);
312
+ }
313
+ context.__routeState = null;
314
+ if (context.results && context.results.length > 0) {
315
+ if (world && world.attach) {
316
+ await world.attach(JSON.stringify(context.results), "application/json+intercept-results");
317
+ }
318
+ }
319
+ const hasFailed = context.results.some((r) => r.overallStatus === "fail" || r.overallStatus === "timeout");
320
+ if (hasFailed) {
321
+ const errorMessage = context.results
322
+ .filter((r) => r.overallStatus === "fail" || r.overallStatus === "timeout")
323
+ .map((r) => `Route to ${r.url} failed with status: ${r.overallStatus}`)
324
+ .join("\n");
325
+ throw new Error(`Route verification failed:\n${errorMessage}`);
326
+ }
327
+ const hasTimedOut = context.results.some((r) => r.overallStatus === "timeout");
328
+ if (hasTimedOut) {
329
+ const timeoutMessage = context.results
330
+ .filter((r) => r.overallStatus === "timeout")
331
+ .map((r) => `Mandatory Route to ${r.url} timed out after ${r.actions[0]?.description}`)
332
+ .join("\n");
333
+ throw new Error(`Mandatory Route verification timed out:\n${timeoutMessage}`);
334
+ }
335
+ return context.results;
336
+ }
337
+ const toCucumberExpression = (text) => text.replaceAll("/", "\\\\/").replaceAll("(", "\\\\(").replaceAll("{", "\\\\{");
338
+ function extractQuotedText(inputString) {
339
+ const regex = /("[^"]*")/g;
340
+ let matches = [];
341
+ let match;
342
+ const regexInside = /"\/(.*?)\/"/g;
343
+ while ((match = regexInside.exec(inputString)) !== null) {
344
+ matches.push(match[0]);
345
+ }
346
+ while ((match = regex.exec(inputString)) !== null) {
347
+ matches.push(match[1]);
348
+ }
349
+ return matches;
350
+ }
351
+ export function _stepNameToTemplate(stepName) {
352
+ if (stepName.includes("{string}")) {
353
+ return stepName;
354
+ }
355
+ let result = toCucumberExpression(stepName);
356
+ const texts = extractQuotedText(result);
357
+ texts.forEach((t) => {
358
+ result = result.replace(t, "{string}");
359
+ });
360
+ return result;
361
+ }
362
+ async function folderExists(path) {
363
+ try {
364
+ const stat = await fs.stat(path);
365
+ return stat.isDirectory();
366
+ }
367
+ catch (err) {
368
+ return false;
369
+ }
370
+ }
371
+ const getValue = (data, pattern) => {
372
+ const path = pattern.split(".");
373
+ let lengthExists = false;
374
+ if (path[path.length - 1] === "length") {
375
+ path.pop();
376
+ lengthExists = true;
377
+ }
378
+ const value = objectPath.get(data, pattern);
379
+ if (lengthExists && Array.isArray(value)) {
380
+ return value?.length;
381
+ }
382
+ else if (hasValue(value)) {
383
+ return value;
384
+ }
385
+ return undefined;
386
+ };
387
+ const hasValue = (value) => {
388
+ return value !== undefined;
389
+ };
390
+ //# sourceMappingURL=route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/route.ts"],"names":[],"mappings":"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"}