automation_model 1.0.428-dev → 1.0.428

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 (60) hide show
  1. package/README.md +130 -0
  2. package/lib/api.d.ts +43 -1
  3. package/lib/api.js +242 -41
  4. package/lib/api.js.map +1 -1
  5. package/lib/auto_page.d.ts +5 -2
  6. package/lib/auto_page.js +173 -46
  7. package/lib/auto_page.js.map +1 -1
  8. package/lib/browser_manager.d.ts +7 -3
  9. package/lib/browser_manager.js +157 -49
  10. package/lib/browser_manager.js.map +1 -1
  11. package/lib/bruno.d.ts +1 -0
  12. package/lib/bruno.js +301 -0
  13. package/lib/bruno.js.map +1 -0
  14. package/lib/command_common.d.ts +6 -0
  15. package/lib/command_common.js +198 -0
  16. package/lib/command_common.js.map +1 -0
  17. package/lib/environment.d.ts +3 -0
  18. package/lib/environment.js +5 -2
  19. package/lib/environment.js.map +1 -1
  20. package/lib/error-messages.d.ts +6 -0
  21. package/lib/error-messages.js +206 -0
  22. package/lib/error-messages.js.map +1 -0
  23. package/lib/generation_scripts.d.ts +4 -0
  24. package/lib/generation_scripts.js +2 -0
  25. package/lib/generation_scripts.js.map +1 -0
  26. package/lib/index.d.ts +2 -0
  27. package/lib/index.js +2 -0
  28. package/lib/index.js.map +1 -1
  29. package/lib/init_browser.d.ts +5 -2
  30. package/lib/init_browser.js +124 -7
  31. package/lib/init_browser.js.map +1 -1
  32. package/lib/locate_element.d.ts +7 -0
  33. package/lib/locate_element.js +215 -0
  34. package/lib/locate_element.js.map +1 -0
  35. package/lib/locator.d.ts +36 -0
  36. package/lib/locator.js +165 -0
  37. package/lib/locator.js.map +1 -1
  38. package/lib/locator_log.d.ts +26 -0
  39. package/lib/locator_log.js +69 -0
  40. package/lib/locator_log.js.map +1 -0
  41. package/lib/network.d.ts +3 -0
  42. package/lib/network.js +183 -0
  43. package/lib/network.js.map +1 -0
  44. package/lib/scripts/axe.mini.js +12 -0
  45. package/lib/stable_browser.d.ts +104 -36
  46. package/lib/stable_browser.js +1806 -1244
  47. package/lib/stable_browser.js.map +1 -1
  48. package/lib/table.d.ts +13 -0
  49. package/lib/table.js +187 -0
  50. package/lib/table.js.map +1 -0
  51. package/lib/table_helper.d.ts +19 -0
  52. package/lib/table_helper.js +116 -0
  53. package/lib/table_helper.js.map +1 -0
  54. package/lib/test_context.d.ts +6 -0
  55. package/lib/test_context.js +14 -10
  56. package/lib/test_context.js.map +1 -1
  57. package/lib/utils.d.ts +22 -2
  58. package/lib/utils.js +664 -11
  59. package/lib/utils.js.map +1 -1
  60. package/package.json +14 -8
package/README.md ADDED
@@ -0,0 +1,130 @@
1
+ # Stable API Description
2
+
3
+ This API is built on top of Playwright to control browsers. The most common commands are:
4
+
5
+ - `click`
6
+ - `clickType`
7
+ - `verifyTextExistInPage`
8
+
9
+ ## Parameters
10
+
11
+ - **selectors** - An object that can contain the name of the element as well as multiple selectors (CSS, ARIA, etc.) used to locate the element.
12
+ - **world** - Used as part of `cucumber-js`.
13
+ - **\_params** - An object that includes the original function parameters (used in dynamic selectors).
14
+ - **options** - Can be used to set the timeout (`{timeout: 30000}` is the default).
15
+ - **climb** - After finding the element using the selectors, will climb the DOM.
16
+
17
+ Unless stated otherwise, the APIs will return an information object and will throw an error in case of failure.
18
+
19
+ ## Function List
20
+
21
+ ```javascript
22
+ async goto(url: string, world);
23
+ /* Use AI to identify an element and click on it */
24
+ async simpleClick(elementDescription, _params, options = {}, world);
25
+ async simpleClickType(elementDescription, value, _params, options = {}, world);
26
+ async click(selectors, _params, options = {}, world);
27
+ /* Return true/false */
28
+ async waitForElement(selectors, _params, options = {}, world);
29
+ async setCheck(selectors, checked = true, _params, options = {}, world);
30
+ async hover(selectors, _params, options = {}, world);
31
+ async selectOption(selectors, values, _params, options = {}, world);
32
+ async type(_value, _params, options = {}, world);
33
+ async setDateTime(selectors, value, format, enter = false, _params, options = {}, world);
34
+ /* Use to populate text fields */
35
+ async clickType(selectors, _value, enter = false, _params, options = {}, world);
36
+ /* Return the text */
37
+ async _getText(selectors, climb, _params, options = {}, info, world);
38
+ async containsText(selectors, text, climb, _params, options = {}, world);
39
+ setTestData(testData, world);
40
+ getTestData(world);
41
+ async verifyElementExistInPage(selectors, _params, options = {}, world);
42
+ async extractAttribute(selectors, attribute, variable, _params, options = {}, world);
43
+ async verifyAttribute(selectors, attribute, value, _params, options = {}, world);
44
+ async verifyPagePath(pathPart, options = {}, world);
45
+ async verifyTextExistInPage(text, options = {}, world);
46
+ async waitForTextToDisappear(text, options = {}, world);
47
+ async verifyTextRelatedToText(textAnchor, climb, textToVerify, options = {}, world);
48
+ async visualVerification(text, options = {}, world);
49
+ async waitForPageLoad(options = {}, world);
50
+ async closePage(options = {}, world);
51
+ saveTestDataAsGlobal(options, world);
52
+ async setViewportSize(width, height, options = {}, world);
53
+ async reloadPage(options = {}, world);
54
+ /* Return the ARIA snapshot as string */
55
+ async getAriaSnapshot();
56
+ ```
57
+
58
+ ## Code Use Cases
59
+
60
+ ### Original Function
61
+
62
+ ```javascript
63
+ async function login_with_user_and_password(_username, _password) {
64
+ const _params = { _username, _password };
65
+ // Fill Username textbox with "_username"
66
+ await context.web.clickType(elements["textbox_username"], _username, false, _params, null, this);
67
+ // Fill Password textbox with "_password"
68
+ await context.web.clickType(elements["textbox_password"], _password, false, _params, null, this);
69
+ // Click on Login button
70
+ await context.web.click(elements["button_login"], _params, null, this);
71
+ }
72
+ ```
73
+
74
+ ### Example 1: Continue execution if step fails
75
+
76
+ ```javascript
77
+ async function login_with_user_and_password(_username, _password) {
78
+ const _params = { _username, _password };
79
+ try {
80
+ await context.web.clickType(elements["textbox_username"], _username, false, _params, null, this);
81
+ await context.web.clickType(elements["textbox_password"], _password, false, _params, null, this);
82
+ await context.web.click(elements["button_login"], _params, null, this);
83
+ } catch (error) {}
84
+ }
85
+ ```
86
+
87
+ ### Example 2: Perform action only if "textbox_username" is found
88
+
89
+ ```javascript
90
+ async function login_with_user_and_password(_username, _password) {
91
+ const _params = { _username, _password };
92
+ if (await context.web.waitForElement(elements["textbox_username"], _params, { timeout: 4000 }, this)) {
93
+ await context.web.clickType(elements["textbox_username"], _username, false, _params, null, this);
94
+ await context.web.clickType(elements["textbox_password"], _password, false, _params, null, this);
95
+ await context.web.click(elements["button_login"], _params, null, this);
96
+ }
97
+ }
98
+ ```
99
+
100
+ ### Example 3: Retry step if it fails
101
+
102
+ ```javascript
103
+ async function login_with_user_and_password(_username, _password) {
104
+ const _params = { _username, _password };
105
+ const maxRetry = 2;
106
+ for (let i = 0; i < maxRetry; i++) {
107
+ try {
108
+ await context.web.clickType(elements["textbox_username"], _username, false, _params, null, this);
109
+ await context.web.clickType(elements["textbox_password"], _password, false, _params, null, this);
110
+ await context.web.click(elements["button_login"], _params, null, this);
111
+ break;
112
+ } catch (error) {
113
+ if (i === maxRetry - 1) {
114
+ throw error;
115
+ }
116
+ }
117
+ }
118
+ }
119
+ ```
120
+
121
+ ### Example 4: Set click timeout to 2 minutes
122
+
123
+ ```javascript
124
+ async function login_with_user_and_password(_username, _password) {
125
+ const _params = { _username, _password };
126
+ await context.web.clickType(elements["textbox_username"], _username, false, _params, { timeout: 120000 }, this);
127
+ await context.web.clickType(elements["textbox_password"], _password, false, _params, { timeout: 120000 }, this);
128
+ await context.web.click(elements["button_login"], _params, { timeout: 120000 }, this);
129
+ }
130
+ ```
package/lib/api.d.ts CHANGED
@@ -1,5 +1,47 @@
1
1
  /// <reference types="node" />
2
2
  import { AxiosRequestConfig, AxiosResponse } from "axios";
3
+ interface Config {
4
+ url: string;
5
+ method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "OPTIONS" | "HEAD";
6
+ headers: {
7
+ key: string;
8
+ value: string;
9
+ enabled: boolean;
10
+ }[];
11
+ bodyType: "raw" | "none";
12
+ body: string;
13
+ queryParams: {
14
+ key: string;
15
+ value: string;
16
+ }[];
17
+ settings: {
18
+ removeRefererHeader: boolean;
19
+ strictHttpParser: boolean;
20
+ encodeUrl: boolean;
21
+ disableCookieJar: boolean;
22
+ useServerCipherSuite: boolean;
23
+ maxRedirects: number;
24
+ };
25
+ tests: {
26
+ pattern: string;
27
+ value: string | number | boolean;
28
+ operator: "eq" | "ne" | "gt" | "lt" | "gte" | "lte" | "mat";
29
+ pass: boolean;
30
+ fail?: boolean;
31
+ receivedValue?: any;
32
+ }[] | null | undefined;
33
+ tokens: {
34
+ token: string;
35
+ username: string;
36
+ password: string;
37
+ };
38
+ authType: "Bearer" | "Basic" | "None";
39
+ isStaticToken: boolean;
40
+ status: number;
41
+ }
42
+ interface Param {
43
+ [key: string]: string;
44
+ }
3
45
  declare class Api {
4
46
  logger: any;
5
47
  private axiosClient;
@@ -7,7 +49,7 @@ declare class Api {
7
49
  getProxyObject(proxy?: string): import("http").Agent | null;
8
50
  axiosClientRequest<T = any>(config: AxiosRequestConfig): Promise<AxiosResponse<T, any>>;
9
51
  setProxy(proxy?: string): void;
10
- request<T = any>(config: AxiosRequestConfig): Promise<AxiosResponse<T, any>>;
52
+ request<T = any>(config: Config, params: Param, testData: any, world: any): Promise<AxiosResponse<T, any>>;
11
53
  requestWithAuth(methodName: string, world: any, token: string, params: any): Promise<any>;
12
54
  }
13
55
  export { Api };
package/lib/api.js CHANGED
@@ -3,7 +3,12 @@ import { existsSync, readFileSync } from "fs";
3
3
  import path from "path";
4
4
  import tunnel from "tunnel";
5
5
  import objectPath from "object-path";
6
+ import { _commandFinally } from "./command_common.js";
7
+ import { getHumanReadableErrorMessage } from "./error-messages.js";
8
+ import { tryParseJson, replaceWithLocalTestData } from "./utils.js";
6
9
  class Api {
10
+ logger;
11
+ axiosClient;
7
12
  constructor(logger) {
8
13
  this.logger = logger;
9
14
  if (!logger) {
@@ -75,27 +80,200 @@ class Api {
75
80
  this.logger.info(agent);
76
81
  this.axiosClient = axios.create({ proxy: false, httpsAgent: agent });
77
82
  }
78
- async request(config) {
79
- return await this.axiosClientRequest(config);
83
+ async request(config, params, testData, world) {
84
+ // return await this.axiosClientRequest<T>(config);
85
+ const startTime = Date.now();
86
+ let result = null;
87
+ const state = {
88
+ startTime,
89
+ params,
90
+ testData,
91
+ world,
92
+ element_name: "API",
93
+ type: "api_test",
94
+ text: `Api test`,
95
+ info: {},
96
+ };
97
+ const info = {
98
+ tests: config.tests,
99
+ testsPassed: 0,
100
+ failCause: {},
101
+ };
102
+ info.tests?.forEach((test) => {
103
+ test.fail = true;
104
+ });
105
+ state.info = info;
106
+ let error = null;
107
+ const fixedUrl = await repStrWParamTData(config.url, params, testData, world);
108
+ const fixedQueryParams = config.queryParams.map(async (param) => {
109
+ return {
110
+ key: await repStrWParamTData(param.key, params, testData, world),
111
+ value: await repStrWParamTData(param.value, params, testData, world),
112
+ };
113
+ });
114
+ const fixedReqHeaders = config.headers.map(async (header) => {
115
+ return {
116
+ key: await repStrWParamTData(header.key, params, testData, world),
117
+ value: await repStrWParamTData(header.value, params, testData, world),
118
+ enabled: header.enabled,
119
+ };
120
+ });
121
+ if (config.authType === "Bearer") {
122
+ //@ts-ignore
123
+ config.tokens.token = await repStrWParamTData(config.tokens.token, params, testData, world);
124
+ }
125
+ else if (config.authType === "Basic") {
126
+ //@ts-ignore
127
+ config.tokens.username = await repStrWParamTData(config.tokens.username, params, testData, world);
128
+ //@ts-ignore
129
+ config.tokens.password = await repStrWParamTData(config.tokens.password, params, testData, world);
130
+ }
131
+ if (config.bodyType === "raw") {
132
+ config.body = tryParseJson(await repStrWParamTData(config.body, params, testData, world));
133
+ }
134
+ let formattedUrl;
135
+ const urlObj = new URL(fixedUrl);
136
+ const existingParams = new URLSearchParams(urlObj.search);
137
+ if (existingParams.size > 0) {
138
+ formattedUrl =
139
+ (await Promise.all(fixedQueryParams)).filter(async (data) => !!data.key).length > 0
140
+ ? `${fixedUrl}&${(await Promise.all(fixedQueryParams)).map((param) => `${encodeURIComponent(param.key)}=${encodeURIComponent(param.value)}`).join("&")}`
141
+ : fixedUrl;
142
+ }
143
+ else {
144
+ formattedUrl =
145
+ (await Promise.all(fixedQueryParams)).filter(async (data) => !!data.key).length > 0
146
+ ? `${fixedUrl}?${(await Promise.all(fixedQueryParams)).map((param) => `${encodeURIComponent(param.key)}=${encodeURIComponent(param.value)}`).join("&")}`
147
+ : fixedUrl;
148
+ }
149
+ const axiosConfig = {
150
+ method: config.method,
151
+ url: formattedUrl,
152
+ headers: (await Promise.all(fixedReqHeaders)).reduce((acc, header) => {
153
+ if (header.enabled && header.key.length > 0)
154
+ acc[header.key] = header.value;
155
+ return acc;
156
+ }, {}),
157
+ data: config.bodyType === "raw" ? config.body : undefined,
158
+ maxRedirects: config.settings.maxRedirects,
159
+ validateStatus: config.settings.strictHttpParser ? (status) => status >= 200 && status < 300 : null,
160
+ };
161
+ if (config.authType === "Bearer") {
162
+ //@ts-ignore
163
+ axiosConfig.headers["Authorization"] = `Bearer ${config.tokens.token}`;
164
+ }
165
+ else if (config.authType === "Basic" && config.tokens.username && config.tokens.password) {
166
+ //@ts-ignore
167
+ axiosConfig.headers["Authorization"] = `Basic ${btoa(`${config.tokens.username}:${config.tokens.password}`)}`;
168
+ }
169
+ // const tests = config.tests;
170
+ // let testsPassed = 0;
171
+ let res = {};
172
+ try {
173
+ res = await this.axiosClientRequest(axiosConfig);
174
+ if (res.status != config.status) {
175
+ throw new Error(`The returned status code ${res.status} doesn't match the saved status code ${config.status}`);
176
+ }
177
+ if (info.tests) {
178
+ info.tests?.forEach((test) => {
179
+ test.fail = true;
180
+ const receivedValue = getValue(res.data, test.pattern);
181
+ test.receivedValue = receivedValue;
182
+ switch (test.operator) {
183
+ case "eq":
184
+ test.fail = receivedValue !== test.value;
185
+ break;
186
+ case "ne":
187
+ test.fail = receivedValue === test.value;
188
+ break;
189
+ case "gt":
190
+ test.fail = receivedValue <= test.value;
191
+ break;
192
+ case "lt":
193
+ test.fail = receivedValue >= test.value;
194
+ break;
195
+ case "gte":
196
+ test.fail = receivedValue < test.value;
197
+ break;
198
+ case "lte":
199
+ test.fail = receivedValue > test.value;
200
+ break;
201
+ case "mat":
202
+ test.fail = !new RegExp(test.value).test(receivedValue);
203
+ break;
204
+ default:
205
+ test.fail = true;
206
+ break;
207
+ }
208
+ });
209
+ const testsFailed = info.tests.filter((test) => test.fail);
210
+ info.testsPassed = info.tests.length - testsFailed.length;
211
+ state.info.headers = res.headers;
212
+ state.info.status = res.status;
213
+ state.info.data = res.data;
214
+ if (testsFailed.length > 0) {
215
+ throw new Error("Tests failed");
216
+ }
217
+ }
218
+ return res;
219
+ }
220
+ catch (e) {
221
+ error = e;
222
+ process.env.NO_RETRAIN = "false";
223
+ this.logger.error("Error while sending request " + error.message ? error.message : error.code);
224
+ error.stack = "";
225
+ state.info.failCause.fail = true;
226
+ const errorClassification = getHumanReadableErrorMessage(error, state.info);
227
+ state.info.errorType = errorClassification.errorType;
228
+ state.info.errorMessage = errorClassification.errorMessage;
229
+ Object.assign(error, { info: state.info });
230
+ state.error = error;
231
+ state.commandError = true;
232
+ throw error;
233
+ }
234
+ finally {
235
+ const statusText = res.statusText ? res.statusText : error ? error.code : null;
236
+ state.info.statusText = statusText;
237
+ await _commandFinally(state, this);
238
+ }
80
239
  }
81
240
  async requestWithAuth(methodName, world, token, params) {
82
241
  const startTime = Date.now();
83
- let error = null, tests = {}, res = null, testsPassed = 0;
242
+ let error = null,
243
+ // tests: any = {},
244
+ res = null;
245
+ // testsPassed = 0;
246
+ const state = {
247
+ startTime,
248
+ params,
249
+ world,
250
+ element_name: "API",
251
+ type: "api_test",
252
+ text: `Api test for ${methodName}`,
253
+ info: {},
254
+ };
84
255
  const apiFilePath = path.join("./features", "apis", methodName + ".json");
256
+ let result = null;
85
257
  if (existsSync(apiFilePath)) {
86
258
  try {
87
259
  const apiRequests = JSON.parse(readFileSync(apiFilePath, "utf8"));
260
+ const info = {
261
+ tests: apiRequests.tests,
262
+ testsPassed: 0,
263
+ failCause: {},
264
+ };
265
+ state.info = info;
88
266
  const useAuthHeaders = apiRequests.useAuthHeaders;
89
267
  const config = JSON.parse(apiRequests.config);
90
268
  if (useAuthHeaders) {
91
- config.headers = Object.assign(Object.assign({}, config.headers), { Authorization: token });
269
+ config.headers = {
270
+ ...config.headers,
271
+ Authorization: token,
272
+ };
92
273
  }
93
274
  res = await this.axiosClientRequest(JSON.parse(apiRequests.config));
94
- if (res.status != 200) {
95
- throw new Error("Request failed with status code " + res.status);
96
- }
97
- tests = apiRequests.tests;
98
- tests === null || tests === void 0 ? void 0 : tests.forEach((test) => {
275
+ info.tests = apiRequests.tests;
276
+ info.tests?.forEach((test) => {
99
277
  test.fail = true;
100
278
  const path = test === null || test === void 0 ? void 0 : test.pattern.split(".");
101
279
  let lengthExists = false;
@@ -104,7 +282,7 @@ class Api {
104
282
  lengthExists = true;
105
283
  }
106
284
  const value = objectPath.get(res.data, path.join("."));
107
- if (lengthExists && (value === null || value === void 0 ? void 0 : value.length) == test.value) {
285
+ if (lengthExists && value?.length == test.value) {
108
286
  test.fail = false;
109
287
  }
110
288
  else if (Array.isArray(value)) {
@@ -113,50 +291,73 @@ class Api {
113
291
  else if (value == test.value) {
114
292
  test.fail = false;
115
293
  }
116
- if (test.fail) {
117
- test.newValue = value;
118
- throw new Error("Test failed");
119
- }
294
+ test.receivedValue = value;
120
295
  });
121
- const testsFailed = tests.filter((test) => test.fail);
122
- testsPassed = tests.length - testsFailed.length;
296
+ const statusCode = config.status || 200;
297
+ if (res.status != statusCode) {
298
+ throw new Error(`The returned status code ${res.status} doesn't match the saved status code ${statusCode}`);
299
+ }
300
+ const testsFailed = info.tests.filter((test) => test.fail);
301
+ info.testsPassed = info.tests.length - testsFailed.length;
302
+ state.info.headers = res.headers;
303
+ state.info.status = res.status;
304
+ state.info.data = res.data;
123
305
  if (testsFailed.length > 0) {
124
306
  throw new Error("Tests failed");
125
307
  }
126
- return res.data;
308
+ return res;
127
309
  }
128
310
  catch (e) {
129
311
  error = e;
312
+ process.env.NO_RETRAIN = "false";
313
+ this.logger.error("Error while sending request " + error.message ? error.message : error.code);
314
+ error.stack = "";
315
+ state.info.failCause.fail = true;
316
+ const errorClassification = getHumanReadableErrorMessage(error, state.info);
317
+ state.info.errorType = errorClassification.errorType;
318
+ state.info.errorMessage = errorClassification.errorMessage;
319
+ Object.assign(error, { info: state.info });
320
+ state.error = error;
321
+ state.commandError = true;
322
+ if (error?.stack) {
323
+ error.stack = "";
324
+ }
130
325
  throw error;
131
326
  }
132
327
  finally {
133
- const endTime = Date.now();
134
- const properties = {
135
- element_name: "API",
136
- type: "api_test",
137
- text: `Api test for ${methodName}`,
138
- result: error
139
- ? {
140
- status: "FAILED",
141
- startTime,
142
- endTime,
143
- }
144
- : {
145
- status: "PASSED",
146
- startTime,
147
- endTime,
148
- },
149
- info: { tests, testsPassed, headers: res.headers },
150
- };
151
- if (world && world.attach) {
152
- world.attach(JSON.stringify(properties), {
153
- mediaType: "application/json",
154
- });
155
- }
156
- return null;
328
+ const statusText = res.statusText ? res.statusText : error ? error.code : null;
329
+ state.info.statusText = statusText;
330
+ await _commandFinally(state, this);
157
331
  }
158
332
  }
159
333
  }
160
334
  }
335
+ const repStrWParamTData = async (str, params, testData, world) => {
336
+ let newStr = str;
337
+ Object.keys(params).forEach((key) => {
338
+ newStr = newStr.replaceAll(`<${key.slice(1)}>`, params[key]);
339
+ });
340
+ newStr = await replaceWithLocalTestData(newStr, world, true, true, world.context);
341
+ return newStr;
342
+ };
343
+ const getValue = (data, pattern) => {
344
+ const path = pattern.split(".");
345
+ let lengthExists = false;
346
+ if (path[path.length - 1] === "length") {
347
+ path.pop();
348
+ lengthExists = true;
349
+ }
350
+ const value = objectPath.get(data, pattern);
351
+ if (lengthExists && Array.isArray(value)) {
352
+ return value?.length;
353
+ }
354
+ else if (hasValue(value)) {
355
+ return value;
356
+ }
357
+ return undefined;
358
+ };
359
+ const hasValue = (value) => {
360
+ return value !== undefined;
361
+ };
161
362
  export { Api };
162
363
  //# sourceMappingURL=api.js.map
package/lib/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAwB,MAAM,QAAQ,CAAC;AAC9C,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,MAAM,GAAG;IAEP,YAAmB,MAAW;QAAX,WAAM,GAAN,MAAM,CAAK;QAC5B,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;SACvB;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC1B;QACD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;YAC9B,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IACD,cAAc,CAAC,KAAc;QAC3B,IAAI,CAAC,KAAK,EAAE;YACV,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;SAC3B;QACD,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,IAAI,CAAC;SACb;QAED,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3B,MAAM,WAAW,GAAiB;gBAChC,IAAI,EAAE,GAAG,CAAC,QAAQ;gBAClB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;aACvB,CAAC;YAEF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;YAEnC,IAAI,QAAQ,IAAI,QAAQ,EAAE;gBACxB,WAAW,CAAC,SAAS,GAAG,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;aACnD;YACD,OAAO,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;SACrD;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAU,MAA0B;QACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAI,MAAM,CAAC,CAAC;gBACxC,sCAAsC;gBACtC,yBAAyB;gBACzB,OAAO,GAAG,CAAC;aACZ;YAAC,OAAO,KAAU,EAAE;gBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,EAAE;oBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;oBAClE,MAAM,KAAK,CAAC;iBACb;gBAED,IACE,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;oBAC3E,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,EACpE;oBACA,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAC;oBAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;iBAChG;aACF;SACF;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC,mDAAmD;IACzG,CAAC;IACM,QAAQ,CAAC,KAAc;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;IACM,KAAK,CAAC,OAAO,CAAU,MAA0B;QACtD,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAI,MAAM,CAAC,CAAC;IAClD,CAAC;IACD,KAAK,CAAC,eAAe,CACnB,UAAkB,EAClB,KAAU,EACV,KAAa,EACb,MAAW;QAEX,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,KAAK,GAAG,IAAI,EACd,KAAK,GAAQ,EAAE,EACf,GAAG,GAAQ,IAAI,EACf,WAAW,GAAG,CAAC,CAAC;QAClB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC;QAC1E,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE;YAC3B,IAAI;gBACF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;gBAClE,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;gBAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,cAAc,EAAE;oBAClB,MAAM,CAAC,OAAO,mCACT,MAAM,CAAC,OAAO,KACjB,aAAa,EAAE,KAAK,GACrB,CAAC;iBACH;gBACD,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpE,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;oBACrB,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;iBAClE;gBACD,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;gBAC1B,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;oBAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;oBACjB,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACjF,IAAI,YAAY,GAAG,KAAK,CAAC;oBACzB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE;wBACtC,IAAI,CAAC,GAAG,EAAE,CAAC;wBACX,YAAY,GAAG,IAAI,CAAC;qBACrB;oBACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvD,IAAI,YAAY,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,KAAI,IAAI,CAAC,KAAK,EAAE;wBAC/C,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;qBACnB;yBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC;qBACpC;yBAAM,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;wBAC9B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;qBACnB;oBACD,IAAI,IAAI,CAAC,IAAI,EAAE;wBACb,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;wBACtB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;qBAChC;gBACH,CAAC,CAAC,CAAC;gBACH,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;gBAChD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;iBACjC;gBACD,OAAO,GAAG,CAAC,IAAI,CAAC;aACjB;YAAC,OAAO,CAAC,EAAE;gBACV,KAAK,GAAG,CAAC,CAAC;gBACV,MAAM,KAAK,CAAC;aACb;oBAAS;gBACR,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC3B,MAAM,UAAU,GAAG;oBACjB,YAAY,EAAE,KAAK;oBACnB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,gBAAgB,UAAU,EAAE;oBAClC,MAAM,EAAE,KAAK;wBACX,CAAC,CAAC;4BACE,MAAM,EAAE,QAAQ;4BAChB,SAAS;4BACT,OAAO;yBACR;wBACH,CAAC,CAAC;4BACE,MAAM,EAAE,QAAQ;4BAChB,SAAS;4BACT,OAAO;yBACR;oBACL,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;iBACnD,CAAC;gBACF,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;oBACzB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;wBACvC,SAAS,EAAE,kBAAkB;qBAC9B,CAAC,CAAC;iBACJ;gBACD,OAAO,IAAI,CAAC;aACb;SACF;IACH,CAAC;CACF;AAED,OAAO,EAAE,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
+ import { InitScripts } from "./generation_scripts.js";
1
2
  declare const navigate: (path?: string) => Promise<void>;
2
- declare const initContext: (path: string, doNavigate?: boolean, headless?: boolean, world?: any, moveToRight?: number) => Promise<any>;
3
+ declare const initContext: (path: string, doNavigate?: boolean, headless?: boolean, world?: any, moveToRight?: number, initScript?: InitScripts | null, envName?: string | null) => Promise<any>;
3
4
  declare const closeContext: () => Promise<void>;
4
- export { initContext, navigate, closeContext };
5
+ declare const getTestData: (currentEnv: string, world: any, dataFile?: string, feature?: string, scenario?: string) => Promise<void>;
6
+ declare const resetTestData: (envPath: string, world: any) => Promise<void>;
7
+ export { initContext, navigate, closeContext, resetTestData, getTestData };