automation_model 1.0.471-dev → 1.0.471-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 (43) hide show
  1. package/lib/api.d.ts +42 -1
  2. package/lib/api.js +221 -47
  3. package/lib/api.js.map +1 -1
  4. package/lib/auto_page.js +38 -16
  5. package/lib/auto_page.js.map +1 -1
  6. package/lib/browser_manager.d.ts +5 -3
  7. package/lib/browser_manager.js +65 -18
  8. package/lib/browser_manager.js.map +1 -1
  9. package/lib/command_common.d.ts +6 -0
  10. package/lib/command_common.js +148 -0
  11. package/lib/command_common.js.map +1 -0
  12. package/lib/environment.js +5 -3
  13. package/lib/environment.js.map +1 -1
  14. package/lib/error-messages.d.ts +6 -0
  15. package/lib/error-messages.js +188 -0
  16. package/lib/error-messages.js.map +1 -0
  17. package/lib/index.d.ts +1 -0
  18. package/lib/index.js +1 -0
  19. package/lib/index.js.map +1 -1
  20. package/lib/init_browser.d.ts +1 -1
  21. package/lib/init_browser.js +31 -4
  22. package/lib/init_browser.js.map +1 -1
  23. package/lib/locate_element.js +5 -3
  24. package/lib/locate_element.js.map +1 -1
  25. package/lib/locator.d.ts +36 -0
  26. package/lib/locator.js +165 -0
  27. package/lib/locator.js.map +1 -1
  28. package/lib/network.d.ts +3 -0
  29. package/lib/network.js +144 -0
  30. package/lib/network.js.map +1 -0
  31. package/lib/stable_browser.d.ts +25 -19
  32. package/lib/stable_browser.js +633 -812
  33. package/lib/stable_browser.js.map +1 -1
  34. package/lib/table.d.ts +13 -0
  35. package/lib/table.js +187 -0
  36. package/lib/table.js.map +1 -0
  37. package/lib/test_context.d.ts +1 -0
  38. package/lib/test_context.js +12 -12
  39. package/lib/test_context.js.map +1 -1
  40. package/lib/utils.d.ts +3 -1
  41. package/lib/utils.js +68 -1
  42. package/lib/utils.js.map +1 -1
  43. package/package.json +5 -4
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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"}
@@ -13,6 +13,7 @@ declare class TestContext {
13
13
  navigate: boolean;
14
14
  headless: boolean;
15
15
  browserName: string | null;
16
+ browserObject: any;
16
17
  constructor();
17
18
  }
18
19
  export { TestContext };
@@ -1,16 +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
- this.navigate = false;
11
- this.headless = false;
12
- this.browserName = null;
13
- }
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() { }
14
14
  }
15
15
  export { TestContext };
16
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;IAWf;QAVA,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;QACvB,aAAQ,GAAG,KAAK,CAAC;QACjB,aAAQ,GAAG,KAAK,CAAC;QACjB,gBAAW,GAAkB,IAAI,CAAC;IACnB,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,5 @@
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
+ export { encrypt, decrypt, replaceWithLocalTestData, maskValue };
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) {
@@ -30,6 +32,9 @@ async function decrypt(encryptedText, key = null, totpWait = true) {
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,69 @@ function _findKey() {
45
50
  // extract the base folder name
46
51
  return path.basename(folder);
47
52
  }
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
+ }
48
115
  // console.log(encrypt("Hello, World!", null));
49
116
  // console.log(decrypt("U2FsdGVkX1+6mavadgkMgJPIhR3IO1pDkx36TjTyoyE=", null));
50
- export { encrypt, decrypt };
117
+ export { encrypt, decrypt, replaceWithLocalTestData, maskValue };
51
118
  //# 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,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE;YACZ,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,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;KAChD;IACD,+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,13 +1,12 @@
1
1
  {
2
2
  "name": "automation_model",
3
- "version": "1.0.471-dev",
3
+ "version": "1.0.471-stage",
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",
7
7
  "types": "lib/index.d.ts",
8
8
  "directories": {
9
- "lib": "lib",
10
- "patches": "patches"
9
+ "lib": "lib"
11
10
  },
12
11
  "scripts": {
13
12
  "compile": "tsc",
@@ -17,7 +16,7 @@
17
16
  "test": "cross-env HEADLESS=true npx mocha --parallel --jobs=8 ./regression/ --timeout 180000",
18
17
  "debug": "node tests/debug.test.js",
19
18
  "types": "tsc --declaration --allowJs --emitDeclarationOnly --outDir types",
20
- "regression": "cross-env HEADLESS=true npx mocha --parallel --jobs=8 ./regression/ --timeout 120000"
19
+ "regression": "cross-env HEADLESS=true npx mocha --parallel --jobs=12 ./regression/ --timeout 120000"
21
20
  },
22
21
  "author": "",
23
22
  "license": "ISC",
@@ -42,10 +41,12 @@
42
41
  "@types/node": "^20.9.3",
43
42
  "@types/object-path": "^0.11.4",
44
43
  "@types/tunnel": "^0.0.7",
44
+ "chai": "^5.1.2",
45
45
  "cross-env": "^7.0.3",
46
46
  "husky": "^8.0.0",
47
47
  "lint-staged": "^15.2.7",
48
48
  "mocha": "^10.6.0",
49
+ "msw": "^2.6.8",
49
50
  "ncp": "^2.0.0",
50
51
  "prettier": "^3.3.2",
51
52
  "rimraf": "^5.0.5",