automation_model 1.0.407-dev → 1.0.407

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 (54) hide show
  1. package/lib/api.d.ts +43 -1
  2. package/lib/api.js +225 -41
  3. package/lib/api.js.map +1 -1
  4. package/lib/auto_page.d.ts +2 -1
  5. package/lib/auto_page.js +43 -17
  6. package/lib/auto_page.js.map +1 -1
  7. package/lib/browser_manager.d.ts +7 -3
  8. package/lib/browser_manager.js +120 -19
  9. package/lib/browser_manager.js.map +1 -1
  10. package/lib/command_common.d.ts +6 -0
  11. package/lib/command_common.js +160 -0
  12. package/lib/command_common.js.map +1 -0
  13. package/lib/environment.d.ts +3 -0
  14. package/lib/environment.js +5 -2
  15. package/lib/environment.js.map +1 -1
  16. package/lib/error-messages.d.ts +6 -0
  17. package/lib/error-messages.js +188 -0
  18. package/lib/error-messages.js.map +1 -0
  19. package/lib/generation_scripts.d.ts +4 -0
  20. package/lib/generation_scripts.js +2 -0
  21. package/lib/generation_scripts.js.map +1 -0
  22. package/lib/index.d.ts +1 -0
  23. package/lib/index.js +1 -0
  24. package/lib/index.js.map +1 -1
  25. package/lib/init_browser.d.ts +3 -1
  26. package/lib/init_browser.js +67 -4
  27. package/lib/init_browser.js.map +1 -1
  28. package/lib/locate_element.d.ts +7 -0
  29. package/lib/locate_element.js +215 -0
  30. package/lib/locate_element.js.map +1 -0
  31. package/lib/locator.d.ts +36 -0
  32. package/lib/locator.js +165 -0
  33. package/lib/locator.js.map +1 -1
  34. package/lib/locator_log.d.ts +26 -0
  35. package/lib/locator_log.js +69 -0
  36. package/lib/locator_log.js.map +1 -0
  37. package/lib/network.d.ts +3 -0
  38. package/lib/network.js +157 -0
  39. package/lib/network.js.map +1 -0
  40. package/lib/scripts/axe.mini.js +12 -0
  41. package/lib/scripts/find_text.js +126 -0
  42. package/lib/stable_browser.d.ts +74 -31
  43. package/lib/stable_browser.js +1181 -1189
  44. package/lib/stable_browser.js.map +1 -1
  45. package/lib/table.d.ts +13 -0
  46. package/lib/table.js +187 -0
  47. package/lib/table.js.map +1 -0
  48. package/lib/test_context.d.ts +4 -0
  49. package/lib/test_context.js +12 -9
  50. package/lib/test_context.js.map +1 -1
  51. package/lib/utils.d.ts +14 -1
  52. package/lib/utils.js +304 -5
  53. package/lib/utils.js.map +1 -1
  54. package/package.json +13 -8
package/lib/table.js ADDED
@@ -0,0 +1,187 @@
1
+ import { fileURLToPath } from "url";
2
+ import path from "path";
3
+ import fs from "fs";
4
+ const __filename = fileURLToPath(import.meta.url);
5
+ const currentDir = path.dirname(__filename);
6
+ export class Table {
7
+ tableData;
8
+ constructor() { }
9
+ /* result object looks as follows:
10
+ {
11
+ "rowsCount": 5,
12
+ "columnsCount": 8,
13
+ "nodes": [
14
+ {
15
+ "tag": "TR",
16
+ "role": "row",
17
+ "rec": [
18
+ 160.1171875,
19
+ 726.5234375,
20
+ 274.2578125,
21
+ 28.5
22
+ ],
23
+ "children": [
24
+ {
25
+ "tag": "TH",
26
+ "role": "columnheader",
27
+ "rec": [
28
+ 160.1171875,
29
+ 726.5234375,
30
+ 54.6171875,
31
+ 28.5
32
+ ],
33
+ "children": [],
34
+ "text": "Family"
35
+ },
36
+ ...
37
+ */
38
+ async initFromElement(page, tableElement) {
39
+ let script = fs.readFileSync(path.join(currentDir, "locator.js"), "utf8");
40
+ // run the script inside the element context (iframe)
41
+ await tableElement.evaluate(script);
42
+ try {
43
+ // @ts-ignore
44
+ this.tableData = await tableElement.evaluate((_node) => {
45
+ // @ts-ignore
46
+ return document.getTableData2(_node);
47
+ });
48
+ }
49
+ catch (error) {
50
+ throw error;
51
+ }
52
+ }
53
+ /*
54
+ analyzeObject examples:
55
+ {
56
+ type: “VALIDATE_HEADER”, cells: [“Name”, “Values”]
57
+ },
58
+ {
59
+ type: “FIND_ROW”,
60
+ cells: [/.+/, “AAA”]
61
+ },
62
+ {
63
+ type: “VALIDATE_GRID”,
64
+ grid: [[],[]]
65
+ },
66
+ {
67
+ type: “VALIDATE_CELL”,
68
+ column_name: “Aaa”,
69
+ column_search_name:
70
+ row_search_value
71
+ expected_value
72
+ }
73
+ */
74
+ analyze(analyzeObject) {
75
+ let result = { status: false, cells: null, error: "", cellIndex: -1, rowIndex: -1 };
76
+ switch (analyzeObject.type) {
77
+ case "VALIDATE_HEADER":
78
+ result.cellIndex = _searchStringArrayInCellsArray(analyzeObject.cells, this.tableData.columnHeaders);
79
+ result.status = result.cellIndex !== -1;
80
+ if (result.status) {
81
+ result.cells = this.tableData.columnHeaders;
82
+ result.cellIndex = result.cellIndex;
83
+ }
84
+ return result;
85
+ case "FIND_ROW":
86
+ for (let i = 0; i < this.tableData.rows.length; i++) {
87
+ const index = _searchStringArrayInCellsArray(analyzeObject.cells, this.tableData.rows[i].children);
88
+ if (index !== -1) {
89
+ result.status = true;
90
+ result.cells = this.tableData.rows[i];
91
+ result.rowIndex = i;
92
+ result.cellIndex = index;
93
+ return result;
94
+ }
95
+ }
96
+ // ts-ignore
97
+ result.error = "Row not found";
98
+ return result;
99
+ case "VALIDATE_CELL": {
100
+ if (
101
+ //!analyzeObject.column_name ||
102
+ !analyzeObject.row_anchor_value ||
103
+ !analyzeObject.expected_value) {
104
+ result.error = "Missing parameters, expected: row_anchor_value, expected_value";
105
+ return result;
106
+ }
107
+ // find all the rows that contain the row_anchor_value
108
+ let rows = [];
109
+ for (let i = 0; i < this.tableData.rows.length; i++) {
110
+ if (_searchStringArrayInCellsArray([analyzeObject.row_anchor_value], this.tableData.rows[i].children) !== -1) {
111
+ rows.push(this.tableData.rows[i]);
112
+ }
113
+ }
114
+ if (rows.length === 0) {
115
+ result.error = "Row containing the anchor value not found";
116
+ return result;
117
+ }
118
+ // within the found rows find a cell with the expected value
119
+ for (let i = 0; i < rows.length; i++) {
120
+ const index = _searchStringArrayInCellsArray([analyzeObject.expected_value], rows[i].children);
121
+ if (index !== -1) {
122
+ result.status = true;
123
+ result.cells = rows[i].children[index];
124
+ result.rowIndex = i;
125
+ result.cellIndex = index;
126
+ return result;
127
+ }
128
+ }
129
+ result.error = "Cell not found";
130
+ return result;
131
+ }
132
+ // case "VALIDATE_CELL":
133
+ // for (let i = 0; i < tableData[0].length; i++) {
134
+ // if (tableData[0][i] === analyzeObject.column_name) {
135
+ // for (let j = 1; j < tableData.length; j++) {
136
+ // if (_compareStringArrayWithCellsArray([analyzeObject.column_search_name], tableData[j])) {
137
+ // return tableData[j][i] === analyzeObject.expected_value;
138
+ // }
139
+ // }
140
+ // }
141
+ // }
142
+ // return false;
143
+ default:
144
+ throw new Error("Unknown analyzeObject type: " + analyzeObject.type);
145
+ }
146
+ }
147
+ }
148
+ const _compareStringArrayWithCellsArray = (stringArray, cellsArray) => {
149
+ if (!stringArray || !cellsArray) {
150
+ return -1;
151
+ }
152
+ if (stringArray.length !== cellsArray.length) {
153
+ return -1;
154
+ }
155
+ let i = 0;
156
+ for (; i < stringArray.length; i++) {
157
+ if (stringArray[i] instanceof RegExp) {
158
+ // @ts-ignore
159
+ if (!stringArray[i].test(cellsArray[i].text)) {
160
+ return -1;
161
+ }
162
+ }
163
+ else {
164
+ if (stringArray[i] !== cellsArray[i].text) {
165
+ return -1;
166
+ }
167
+ }
168
+ }
169
+ return i - stringArray.length;
170
+ };
171
+ const _searchStringArrayInCellsArray = (stringArray, cellsArray) => {
172
+ if (!stringArray || !cellsArray) {
173
+ return -1;
174
+ }
175
+ if (stringArray.length > cellsArray.length) {
176
+ return -1;
177
+ }
178
+ // search using _compareStringArrayWithCellsArray
179
+ for (let i = 0; i < cellsArray.length - stringArray.length + 1; i++) {
180
+ const index = _compareStringArrayWithCellsArray(stringArray, cellsArray.slice(i, i + stringArray.length));
181
+ if (index !== -1) {
182
+ return index + i;
183
+ }
184
+ }
185
+ return -1;
186
+ };
187
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/table.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,10 @@ declare class TestContext {
10
10
  environment: Environment | null;
11
11
  reportFolder: string | null;
12
12
  api: Api | null;
13
+ navigate: boolean;
14
+ headless: boolean;
15
+ browserName: string | null;
16
+ browserObject: any;
13
17
  constructor();
14
18
  }
15
19
  export { TestContext };
@@ -1,13 +1,16 @@
1
1
  class TestContext {
2
- constructor() {
3
- this.stable = null;
4
- this.browser = null;
5
- this.playContext = null;
6
- this.page = null;
7
- this.environment = null;
8
- this.reportFolder = null;
9
- this.api = null;
10
- }
2
+ stable = null;
3
+ browser = null;
4
+ playContext = null;
5
+ page = null;
6
+ environment = null;
7
+ reportFolder = null;
8
+ api = null;
9
+ navigate = false;
10
+ headless = false;
11
+ browserName = null;
12
+ browserObject = null;
13
+ constructor() { }
11
14
  }
12
15
  export { TestContext };
13
16
  //# sourceMappingURL=test_context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test_context.js","sourceRoot":"","sources":["../../src/test_context.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW;IAQf;QAPA,WAAM,GAAyB,IAAI,CAAC;QACpC,YAAO,GAA6B,IAAI,CAAC;QACzC,gBAAW,GAA0B,IAAI,CAAC;QAC1C,SAAI,GAAgB,IAAI,CAAC;QACzB,gBAAW,GAAuB,IAAI,CAAC;QACvC,iBAAY,GAAkB,IAAI,CAAC;QACnC,QAAG,GAAe,IAAI,CAAC;IACR,CAAC;CACjB;AACD,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"test_context.js","sourceRoot":"","sources":["../../src/test_context.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW;IACf,MAAM,GAAyB,IAAI,CAAC;IACpC,OAAO,GAA6B,IAAI,CAAC;IACzC,WAAW,GAA0B,IAAI,CAAC;IAC1C,IAAI,GAAgB,IAAI,CAAC;IACzB,WAAW,GAAuB,IAAI,CAAC;IACvC,YAAY,GAAkB,IAAI,CAAC;IACnC,GAAG,GAAe,IAAI,CAAC;IACvB,QAAQ,GAAG,KAAK,CAAC;IACjB,QAAQ,GAAG,KAAK,CAAC;IACjB,WAAW,GAAkB,IAAI,CAAC;IAClC,aAAa,GAAQ,IAAI,CAAC;IAC1B,gBAAe,CAAC;CACjB;AACD,OAAO,EAAE,WAAW,EAAE,CAAC"}
package/lib/utils.d.ts CHANGED
@@ -1,3 +1,16 @@
1
1
  declare function encrypt(text: string, key?: string | null): string;
2
2
  declare function decrypt(encryptedText: string, key?: string | null, totpWait?: boolean): Promise<string>;
3
- export { encrypt, decrypt };
3
+ declare function replaceWithLocalTestData(value: string, world: any, _decrypt?: boolean, totpWait?: boolean, context?: any, stable?: any): Promise<string>;
4
+ declare function maskValue(value: string): string;
5
+ declare function _copyContext(from: any, to: any): void;
6
+ declare function scrollPageToLoadLazyElements(page: any): Promise<void>;
7
+ type Params = Record<string, string>;
8
+ declare function _fixUsingParams(text: string, _params: Params): string;
9
+ declare function getWebLogFile(logFolder: string): string;
10
+ declare function _fixLocatorUsingParams(locator: any, _params: Params): any;
11
+ declare function _isObject(value: any): any;
12
+ declare function scanAndManipulate(currentObj: any, _params: Params): void;
13
+ declare const KEYBOARD_EVENTS: string[];
14
+ declare function unEscapeString(str: string): string;
15
+ declare function _getServerUrl(): string;
16
+ export { encrypt, decrypt, replaceWithLocalTestData, maskValue, _copyContext, scrollPageToLoadLazyElements, _fixUsingParams, getWebLogFile, _fixLocatorUsingParams, _isObject, scanAndManipulate, KEYBOARD_EVENTS, unEscapeString, Params, _getServerUrl, };
package/lib/utils.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import CryptoJS from "crypto-js";
2
+ import objectPath from "object-path";
2
3
  import path from "path";
3
4
  import { TOTP } from "totp-generator";
5
+ import fs from "fs";
4
6
  // Function to encrypt a string
5
7
  function encrypt(text, key = null) {
6
8
  if (!key) {
@@ -22,14 +24,17 @@ async function decrypt(encryptedText, key = null, totpWait = true) {
22
24
  encryptedText = bytes.toString(CryptoJS.enc.Utf8);
23
25
  let { otp, expires } = TOTP.generate(encryptedText);
24
26
  if (totpWait) {
25
- // expires is in unix time, check if we have at least 25 seconds left, if it's less than wait for the expires time
26
- if (expires - Date.now() < 25000) {
27
+ // expires is in unix time, check if we have at least 10 seconds left, if it's less than wait for the expires time
28
+ if (expires - Date.now() < 10000) {
27
29
  await new Promise((resolve) => setTimeout(resolve, (expires - Date.now() + 1000) % 30000));
28
30
  ({ otp, expires } = TOTP.generate(encryptedText));
29
31
  }
30
32
  }
31
33
  return otp;
32
34
  }
35
+ if (encryptedText.startsWith("mask:")) {
36
+ return encryptedText.substring(5);
37
+ }
33
38
  const bytes = CryptoJS.AES.decrypt(encryptedText, key);
34
39
  return bytes.toString(CryptoJS.enc.Utf8);
35
40
  }
@@ -45,7 +50,301 @@ function _findKey() {
45
50
  // extract the base folder name
46
51
  return path.basename(folder);
47
52
  }
48
- // console.log(encrypt("Hello, World!", null));
49
- // console.log(decrypt("U2FsdGVkX1+6mavadgkMgJPIhR3IO1pDkx36TjTyoyE=", null));
50
- export { encrypt, decrypt };
53
+ function _getDataFile(world = null, context = null, stable = null) {
54
+ let dataFile = null;
55
+ if (world && world.reportFolder) {
56
+ dataFile = path.join(world.reportFolder, "data.json");
57
+ }
58
+ else if (stable && stable.reportFolder) {
59
+ dataFile = path.join(stable.reportFolder, "data.json");
60
+ }
61
+ else if (context && context.reportFolder) {
62
+ dataFile = path.join(context.reportFolder, "data.json");
63
+ }
64
+ else {
65
+ dataFile = "data.json";
66
+ }
67
+ return dataFile;
68
+ }
69
+ function _getTestData(world = null, context = null, stable = null) {
70
+ const dataFile = _getDataFile(world, context, stable);
71
+ let data = {};
72
+ if (fs.existsSync(dataFile)) {
73
+ data = JSON.parse(fs.readFileSync(dataFile, "utf8"));
74
+ }
75
+ return data;
76
+ }
77
+ async function replaceWithLocalTestData(value, world, _decrypt = true, totpWait = true, context = null, stable = null) {
78
+ if (!value) {
79
+ return value;
80
+ }
81
+ // find all the accurance of {{(.*?)}} and replace with the value
82
+ let regex = /{{(.*?)}}/g;
83
+ let matches = value.match(regex);
84
+ if (matches) {
85
+ const testData = _getTestData(world, context, stable);
86
+ for (let i = 0; i < matches.length; i++) {
87
+ let match = matches[i];
88
+ let key = match.substring(2, match.length - 2);
89
+ let newValue = objectPath.get(testData, key, null);
90
+ if (newValue !== null) {
91
+ value = value.replace(match, newValue);
92
+ }
93
+ }
94
+ }
95
+ if ((value.startsWith("secret:") || value.startsWith("totp:") || value.startsWith("mask:")) && _decrypt) {
96
+ return await decrypt(value, null, totpWait);
97
+ }
98
+ return value;
99
+ }
100
+ function maskValue(value) {
101
+ if (!value) {
102
+ return value;
103
+ }
104
+ if (value.startsWith("secret:")) {
105
+ return "secret:****";
106
+ }
107
+ if (value.startsWith("totp:")) {
108
+ return "totp:****";
109
+ }
110
+ if (value.startsWith("mask:")) {
111
+ return "mask:****";
112
+ }
113
+ return value;
114
+ }
115
+ function _copyContext(from, to) {
116
+ to.browser = from.browser;
117
+ to.page = from.page;
118
+ to.context = from.context;
119
+ }
120
+ async function scrollPageToLoadLazyElements(page) {
121
+ let lastHeight = await page.evaluate(() => document.body.scrollHeight);
122
+ let retry = 0;
123
+ while (true) {
124
+ await page.evaluate(() => window.scrollBy(0, window.innerHeight));
125
+ await new Promise((resolve) => setTimeout(resolve, 1000));
126
+ let newHeight = await page.evaluate(() => document.body.scrollHeight);
127
+ if (newHeight === lastHeight) {
128
+ break;
129
+ }
130
+ lastHeight = newHeight;
131
+ retry++;
132
+ if (retry > 10) {
133
+ break;
134
+ }
135
+ }
136
+ await page.evaluate(() => window.scrollTo(0, 0));
137
+ }
138
+ function _fixUsingParams(text, _params) {
139
+ if (!_params || typeof text !== "string") {
140
+ return text;
141
+ }
142
+ for (let key in _params) {
143
+ let regValue = key;
144
+ if (key.startsWith("_")) {
145
+ // remove the _ prefix
146
+ regValue = key.substring(1);
147
+ }
148
+ text = text.replaceAll(new RegExp("{" + regValue + "}", "g"), _params[key]);
149
+ }
150
+ return text;
151
+ }
152
+ function getWebLogFile(logFolder) {
153
+ if (!fs.existsSync(logFolder)) {
154
+ fs.mkdirSync(logFolder, { recursive: true });
155
+ }
156
+ let nextIndex = 1;
157
+ while (fs.existsSync(path.join(logFolder, nextIndex.toString() + ".json"))) {
158
+ nextIndex++;
159
+ }
160
+ const fileName = nextIndex + ".json";
161
+ return path.join(logFolder, fileName);
162
+ }
163
+ function _fixLocatorUsingParams(locator, _params) {
164
+ // check if not null
165
+ if (!locator) {
166
+ return locator;
167
+ }
168
+ // clone the locator
169
+ locator = JSON.parse(JSON.stringify(locator));
170
+ scanAndManipulate(locator, _params);
171
+ return locator;
172
+ }
173
+ function _isObject(value) {
174
+ return value && typeof value === "object" && value.constructor === Object;
175
+ }
176
+ function scanAndManipulate(currentObj, _params) {
177
+ for (const key in currentObj) {
178
+ if (typeof currentObj[key] === "string") {
179
+ // Perform string manipulation
180
+ currentObj[key] = _fixUsingParams(currentObj[key], _params);
181
+ }
182
+ else if (_isObject(currentObj[key])) {
183
+ // Recursively scan nested objects
184
+ scanAndManipulate(currentObj[key], _params);
185
+ }
186
+ }
187
+ }
188
+ const KEYBOARD_EVENTS = [
189
+ "ALT",
190
+ "AltGraph",
191
+ "CapsLock",
192
+ "Control",
193
+ "Fn",
194
+ "FnLock",
195
+ "Hyper",
196
+ "Meta",
197
+ "NumLock",
198
+ "ScrollLock",
199
+ "Shift",
200
+ "Super",
201
+ "Symbol",
202
+ "SymbolLock",
203
+ "Enter",
204
+ "Tab",
205
+ "ArrowDown",
206
+ "ArrowLeft",
207
+ "ArrowRight",
208
+ "ArrowUp",
209
+ "End",
210
+ "Home",
211
+ "PageDown",
212
+ "PageUp",
213
+ "Backspace",
214
+ "Clear",
215
+ "Copy",
216
+ "CrSel",
217
+ "Cut",
218
+ "Delete",
219
+ "EraseEof",
220
+ "ExSel",
221
+ "Insert",
222
+ "Paste",
223
+ "Redo",
224
+ "Undo",
225
+ "Accept",
226
+ "Again",
227
+ "Attn",
228
+ "Cancel",
229
+ "ContextMenu",
230
+ "Escape",
231
+ "Execute",
232
+ "Find",
233
+ "Finish",
234
+ "Help",
235
+ "Pause",
236
+ "Play",
237
+ "Props",
238
+ "Select",
239
+ "ZoomIn",
240
+ "ZoomOut",
241
+ "BrightnessDown",
242
+ "BrightnessUp",
243
+ "Eject",
244
+ "LogOff",
245
+ "Power",
246
+ "PowerOff",
247
+ "PrintScreen",
248
+ "Hibernate",
249
+ "Standby",
250
+ "WakeUp",
251
+ "AllCandidates",
252
+ "Alphanumeric",
253
+ "CodeInput",
254
+ "Compose",
255
+ "Convert",
256
+ "Dead",
257
+ "FinalMode",
258
+ "GroupFirst",
259
+ "GroupLast",
260
+ "GroupNext",
261
+ "GroupPrevious",
262
+ "ModeChange",
263
+ "NextCandidate",
264
+ "NonConvert",
265
+ "PreviousCandidate",
266
+ "Process",
267
+ "SingleCandidate",
268
+ "HangulMode",
269
+ "HanjaMode",
270
+ "JunjaMode",
271
+ "Eisu",
272
+ "Hankaku",
273
+ "Hiragana",
274
+ "HiraganaKatakana",
275
+ "KanaMode",
276
+ "KanjiMode",
277
+ "Katakana",
278
+ "Romaji",
279
+ "Zenkaku",
280
+ "ZenkakuHanaku",
281
+ "F1",
282
+ "F2",
283
+ "F3",
284
+ "F4",
285
+ "F5",
286
+ "F6",
287
+ "F7",
288
+ "F8",
289
+ "F9",
290
+ "F10",
291
+ "F11",
292
+ "F12",
293
+ "Soft1",
294
+ "Soft2",
295
+ "Soft3",
296
+ "Soft4",
297
+ "ChannelDown",
298
+ "ChannelUp",
299
+ "Close",
300
+ "MailForward",
301
+ "MailReply",
302
+ "MailSend",
303
+ "MediaFastForward",
304
+ "MediaPause",
305
+ "MediaPlay",
306
+ "MediaPlayPause",
307
+ "MediaRecord",
308
+ "MediaRewind",
309
+ "MediaStop",
310
+ "MediaTrackNext",
311
+ "MediaTrackPrevious",
312
+ "AudioBalanceLeft",
313
+ "AudioBalanceRight",
314
+ "AudioBassBoostDown",
315
+ "AudioBassBoostToggle",
316
+ "AudioBassBoostUp",
317
+ "AudioFaderFront",
318
+ "AudioFaderRear",
319
+ "AudioSurroundModeNext",
320
+ "AudioTrebleDown",
321
+ "AudioTrebleUp",
322
+ "AudioVolumeDown",
323
+ "AudioVolumeMute",
324
+ "AudioVolumeUp",
325
+ "MicrophoneToggle",
326
+ "MicrophoneVolumeDown",
327
+ "MicrophoneVolumeMute",
328
+ "MicrophoneVolumeUp",
329
+ "TV",
330
+ "TV3DMode",
331
+ "TVAntennaCable",
332
+ "TVAudioDescription",
333
+ ];
334
+ function unEscapeString(str) {
335
+ const placeholder = "__NEWLINE__";
336
+ str = str.replace(new RegExp(placeholder, "g"), "\n");
337
+ return str;
338
+ }
339
+ function _getServerUrl() {
340
+ let serviceUrl = "https://api.blinq.io";
341
+ if (process.env.NODE_ENV_BLINQ === "dev") {
342
+ serviceUrl = "https://dev.api.blinq.io";
343
+ }
344
+ else if (process.env.NODE_ENV_BLINQ === "stage") {
345
+ serviceUrl = "https://stage.api.blinq.io";
346
+ }
347
+ return serviceUrl;
348
+ }
349
+ export { encrypt, decrypt, replaceWithLocalTestData, maskValue, _copyContext, scrollPageToLoadLazyElements, _fixUsingParams, getWebLogFile, _fixLocatorUsingParams, _isObject, scanAndManipulate, KEYBOARD_EVENTS, unEscapeString, _getServerUrl, };
51
350
  //# sourceMappingURL=utils.js.map
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,+BAA+B;AAC/B,SAAS,OAAO,CAAC,IAAY,EAAE,MAAqB,IAAI;IACtD,IAAI,CAAC,GAAG,EAAE;QACR,GAAG,GAAG,QAAQ,EAAE,CAAC;KAClB;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AACpD,CAAC;AAED,+BAA+B;AAC/B,KAAK,UAAU,OAAO,CAAC,aAAqB,EAAE,MAAqB,IAAI,EAAE,WAAoB,IAAI;IAC/F,IAAI,CAAC,GAAG,EAAE;QACR,GAAG,GAAG,QAAQ,EAAE,CAAC;KAClB;IACD,IAAI,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QACvC,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KAC5C;IACD,IAAI,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QACrC,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QACvD,aAAa,GAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACpD,IAAG,QAAQ,EAAE;YACX,kHAAkH;YAClH,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE;gBAChC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAC3F,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;aACnD;SACF;QACD,OAAO,GAAG,CAAC;KACZ;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC;AACD,SAAS,QAAQ;IACf,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE;QAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;KAC/B;IACD,IAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;KAClD;IACC,+BAA+B;IAC/B,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC3B,+BAA+B;IAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AACD,+CAA+C;AAC/C,8EAA8E;AAC9E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "automation_model",
3
- "version": "1.0.407-dev",
3
+ "version": "1.0.407",
4
4
  "description": "An automation infrastructure module to be use for generative AI automation projects.",
5
5
  "main": "lib/index.js",
6
6
  "type": "module",
@@ -12,25 +12,28 @@
12
12
  "compile": "tsc",
13
13
  "pack": "mkdir build && mkdir build/bin && cp ./src/auto_page.js ./build/bin/auto_page.js && cp ./src/environment.js ./build/bin/environment.js && cp ./src/browser_manager.js ./build/bin/browser_manager.js && cp ./src/test_context.js ./build/bin/test_context.js && cp ./src/init_browser.js ./build/bin/init_browser.js && cp ./src/stable_browser.js ./build/bin/stable_browser.js && cp ./package.json ./build/package.json",
14
14
  "clean": "rimraf -g build && rimraf -g types",
15
- "build": "npm run clean && npm run compile && ncp package.json build/package.json",
16
- "test": "cross-env HEADLESS=true npx mocha --parallel --jobs=8 ./regression/ --timeout 120000",
15
+ "build": "npm run clean && npm run compile && ncp package.json build/package.json && mkdir build/lib/scripts && ncp scripts/axe.mini.js build/lib/scripts/axe.mini.js && ncp scripts/find_text.js build/lib/scripts/find_text.js",
16
+ "test": "cross-env HEADLESS=true npx mocha --parallel --jobs=8 ./regression/ --timeout 180000",
17
17
  "debug": "node tests/debug.test.js",
18
18
  "types": "tsc --declaration --allowJs --emitDeclarationOnly --outDir types",
19
- "regression": "cross-env HEADLESS=true npx mocha --parallel --jobs=8 ./regression/ --timeout 120000"
19
+ "regression": "cross-env HEADLESS=true npx mocha --bail --parallel --jobs=8 ./regression/ --timeout 120000",
20
+ "reg": "npm run build && npm run compile && npm run regression"
20
21
  },
21
22
  "author": "",
22
23
  "license": "ISC",
23
24
  "dependencies": {
24
- "@playwright/test": "^1.40.0",
25
- "axios": "^1.6.8",
25
+ "@playwright/test": "1.45.3",
26
+ "@types/jimp": "^0.2.28",
27
+ "axios": "^1.7.4",
26
28
  "crypto-js": "^4.2.0",
27
29
  "csv-parser": "^3.0.0",
28
30
  "dayjs": "^1.11.10",
31
+ "jimp": "^1.6.0",
29
32
  "object-path": "^0.11.8",
30
- "playwright": "^1.39.0",
33
+ "playwright": "1.45.3",
31
34
  "pureimage": "^0.4.13",
35
+ "readline": "^1.3.0",
32
36
  "regex-parser": "^2.2.11",
33
- "sharp": "^0.32.6",
34
37
  "totp-generator": "^1.0.0",
35
38
  "tunnel": "^0.0.6"
36
39
  },
@@ -39,10 +42,12 @@
39
42
  "@types/node": "^20.9.3",
40
43
  "@types/object-path": "^0.11.4",
41
44
  "@types/tunnel": "^0.0.7",
45
+ "chai": "^5.1.2",
42
46
  "cross-env": "^7.0.3",
43
47
  "husky": "^8.0.0",
44
48
  "lint-staged": "^15.2.7",
45
49
  "mocha": "^10.6.0",
50
+ "msw": "^2.6.8",
46
51
  "ncp": "^2.0.0",
47
52
  "prettier": "^3.3.2",
48
53
  "rimraf": "^5.0.5",