automation_model 1.0.598-dev → 1.0.598-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.
@@ -16,9 +16,12 @@ class BrowserManager {
16
16
  }
17
17
  async closeBrowser(browser) {
18
18
  if (!browser && this.browsers.length > 0) {
19
- browser = this.browsers[0];
19
+ for (let i = 0; i < this.browsers.length; i++) {
20
+ await this.browsers[i].close();
21
+ }
22
+ this.browsers = [];
20
23
  }
21
- if (browser) {
24
+ if (browser && !process.env.IGNORE_BROWSER_CLOSE) {
22
25
  await browser.close();
23
26
  for (let i = 0; i < this.browsers.length; i++) {
24
27
  if (this.browsers[i].browser === browser || this.browsers[i] === browser) {
@@ -67,14 +70,23 @@ class Browser {
67
70
  let viewport = null;
68
71
  if (process.env.HEADLESS === "true") {
69
72
  headless = true;
73
+ this.headless = true;
70
74
  }
71
75
  else if (process.env.HEADLESS === "false") {
72
76
  headless = false;
77
+ this.headless = false;
73
78
  }
74
79
  if (process.env.VIEWPORT) {
75
80
  let viewportParts = process.env.VIEWPORT.split(",");
76
81
  viewport = { width: parseInt(viewportParts[0]), height: parseInt(viewportParts[1]) };
77
82
  }
83
+ else if (!aiConfig.noViewport) {
84
+ viewport = { width: 1280, height: 800 };
85
+ }
86
+ const args = ["--ignore-https-errors", "--ignore-certificate-errors"];
87
+ if (process.env.CDP_LISTEN_PORT) {
88
+ args.push(`--remote-debugging-port=${process.env.CDP_LISTEN_PORT}`);
89
+ }
78
90
  if (!extensionPath && userDataDirPath) {
79
91
  this.context = await chromium.launchPersistentContext(userDataDirPath, {
80
92
  headless: false,
@@ -102,7 +114,7 @@ class Browser {
102
114
  this.browser = await firefox.launch({
103
115
  headless: headless,
104
116
  timeout: 0,
105
- args: ["--ignore-https-errors", "--ignore-certificate-errors"],
117
+ args,
106
118
  //downloadsPath: downloadsPath,
107
119
  });
108
120
  }
@@ -110,7 +122,7 @@ class Browser {
110
122
  this.browser = await webkit.launch({
111
123
  headless: headless,
112
124
  timeout: 0,
113
- args: ["--ignore-https-errors", "--ignore-certificate-errors"],
125
+ args,
114
126
  //downloadsPath: downloadsPath,
115
127
  });
116
128
  }
@@ -119,19 +131,24 @@ class Browser {
119
131
  this.browser = await chromium.launch({
120
132
  headless: headless,
121
133
  timeout: 0,
122
- args: ["--ignore-https-errors", "--ignore-certificate-errors"],
134
+ args,
123
135
  channel: channel,
124
136
  //downloadsPath: downloadsPath,
125
137
  });
126
138
  }
127
139
  }
128
140
  else {
129
- this.browser = await chromium.launch({
130
- headless: headless,
131
- timeout: 0,
132
- args: ["--ignore-https-errors", "--ignore-certificate-errors"],
133
- //downloadsPath: downloadsPath,
134
- });
141
+ if (process.env.CDP_CONNECT_URL) {
142
+ this.browser = await chromium.connectOverCDP(process.env.CDP_CONNECT_URL);
143
+ }
144
+ else {
145
+ this.browser = await chromium.launch({
146
+ headless: headless,
147
+ timeout: 0,
148
+ args,
149
+ //downloadsPath: downloadsPath,
150
+ });
151
+ }
135
152
  }
136
153
  // downloadsPath
137
154
  let contextOptions = {};
@@ -150,11 +167,21 @@ class Browser {
150
167
  if (viewport) {
151
168
  contextOptions.viewport = viewport;
152
169
  }
170
+ else {
171
+ if (!this.headless) {
172
+ contextOptions.viewport = null;
173
+ }
174
+ }
153
175
  if (userAgent) {
154
176
  contextOptions.userAgent = userAgent;
155
177
  }
156
178
  if (!this.context && this.browser) {
157
- this.context = await this.browser.newContext(contextOptions);
179
+ if (this.browser.contexts().length > 0) {
180
+ this.context = this.browser.contexts()[this.browser.contexts().length - 1];
181
+ }
182
+ else {
183
+ this.context = await this.browser.newContext(contextOptions);
184
+ }
158
185
  }
159
186
  }
160
187
  if ((process.env.TRACE === "true" || aiConfig.trace === true) && this.context) {
@@ -204,12 +231,22 @@ class Browser {
204
231
  await this.context?.addInitScript({
205
232
  content: axeMinJsContent,
206
233
  });
207
- this.page = await this.context.newPage();
234
+ if (this.context && this.context.pages().length > 0) {
235
+ this.page = this.context.pages()[this.context.pages().length - 1];
236
+ }
237
+ else {
238
+ this.page = await this.context.newPage();
239
+ }
240
+ if (this.context) {
241
+ this.context.on("close", () => {
242
+ this.context.isClosed = true;
243
+ });
244
+ }
208
245
  }
209
246
  async close() {
210
- // if (this.context && this.trace) {
211
- // await this.context.tracing.stop({ path: traceFile });
212
- // }
247
+ if (process.env.IGNORE_BROWSER_CLOSE === "true") {
248
+ return;
249
+ }
213
250
  if (this.browser !== null) {
214
251
  await this.browser.close();
215
252
  this.browser = null;
@@ -1 +1 @@
1
- {"version":3,"file":"browser_manager.js","sourceRoot":"","sources":["../../src/browser_manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser_manager.js","sourceRoot":"","sources":["../../src/browser_manager.ts"],"names":[],"mappings":"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"}
package/lib/bruno.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare function loadBrunoParams(context: any, environmentName: any): Promise<void>;
2
+ export declare function executeBrunoRequest(requestName: string, options: any, context: any, world: any): Promise<any[] | undefined>;
package/lib/bruno.js ADDED
@@ -0,0 +1,371 @@
1
+ import path from "path";
2
+ import fs from "fs";
3
+ import { spawn } from "child_process";
4
+ import { _commandError, _commandFinally, _preCommand } from "./command_common.js";
5
+ import { Types } from "./stable_browser.js";
6
+ import objectPath from "object-path";
7
+ //@ts-ignore
8
+ import { bruToEnvJsonV2 } from "@usebruno/lang";
9
+ export async function loadBrunoParams(context, environmentName) {
10
+ // check if bruno/environment folder exists
11
+ // if exists find an environment that matches the current environment
12
+ const brunoEnvironmentsFolder = path.join(process.cwd(), "bruno", "environments");
13
+ if (!fs.existsSync(brunoEnvironmentsFolder)) {
14
+ return;
15
+ }
16
+ const envFiles = fs.readdirSync(brunoEnvironmentsFolder);
17
+ for (const envFile of envFiles) {
18
+ if (envFile.endsWith(".bru")) {
19
+ //rename it to end with .bruEnv
20
+ fs.renameSync(path.join(brunoEnvironmentsFolder, envFile), path.join(brunoEnvironmentsFolder, envFile.replace(".bru", ".bruEnv")));
21
+ }
22
+ }
23
+ const envFile = path.join(brunoEnvironmentsFolder, `${environmentName}.bruEnv`);
24
+ if (!fs.existsSync(envFile)) {
25
+ return;
26
+ }
27
+ const envFileContent = fs.readFileSync(envFile, "utf-8");
28
+ try {
29
+ const envJson = bruToEnvJsonV2(envFileContent);
30
+ if (!envJson) {
31
+ return;
32
+ }
33
+ const variables = envJson.variables;
34
+ for (const variable of variables) {
35
+ if (variable.enabled && variable.value) {
36
+ context.web.setTestData({ [variable.name]: variable.value }, context.web);
37
+ }
38
+ }
39
+ }
40
+ catch (e) {
41
+ console.error("Error parsing Bruno environment file", e);
42
+ }
43
+ }
44
+ export async function executeBrunoRequest(requestName, options, context, world) {
45
+ if (!options) {
46
+ options = {};
47
+ }
48
+ const state = {
49
+ locate: false,
50
+ scroll: false,
51
+ screenshot: false,
52
+ highlight: false,
53
+ throwError: true,
54
+ operation: "bruno",
55
+ text: "bruno " + requestName,
56
+ _text: "bruno " + requestName,
57
+ options: options,
58
+ type: Types.BRUNO,
59
+ world: world,
60
+ };
61
+ await _preCommand(state, context.web);
62
+ const filesToDelete = [];
63
+ try {
64
+ let brunoFolder = options.brunoFolder || path.join(process.cwd(), "bruno");
65
+ if (!brunoFolder) {
66
+ throw new Error("brunoFolder is not defined, place your bruno folder in the current working directory.");
67
+ }
68
+ // generate a temporary folder .tmp under the project root
69
+ const resultFolder = path.join(process.cwd(), ".tmp");
70
+ if (!fs.existsSync(resultFolder)) {
71
+ fs.mkdirSync(resultFolder);
72
+ }
73
+ const runtimeFolder = process.cwd();
74
+ // link node_modules to the runtime folder
75
+ //const nodeModulesFolder = path.join(process.cwd(), "node_modules");
76
+ // if (fs.existsSync(nodeModulesFolder)) {
77
+ // // check if the node_modules folder exists
78
+ // const runtimeNodeModulesFolder = path.join(runtimeFolder, "node_modules");
79
+ // if (!fs.existsSync(runtimeNodeModulesFolder)) {
80
+ // // create a symbolic link to the node_modules folder
81
+ // fs.symlinkSync(nodeModulesFolder, runtimeNodeModulesFolder, "dir");
82
+ // }
83
+ // }
84
+ // identify the bruno file
85
+ const brunoFile = path.join(brunoFolder, `${requestName}.bru`);
86
+ // check if the bruno file exists
87
+ if (!fs.existsSync(brunoFile)) {
88
+ throw new Error(`Bruno file not found: ${brunoFile}`);
89
+ }
90
+ const brunoConfigFile = path.join(brunoFolder, "bruno.json");
91
+ let brunoConfig = {
92
+ version: "1",
93
+ name: "blinq",
94
+ type: "collection",
95
+ ignore: ["node_modules", ".git"],
96
+ };
97
+ // check if the bruno config file exists and copy it to the runtime folder
98
+ if (fs.existsSync(brunoConfigFile)) {
99
+ // read the bruno config file
100
+ brunoConfig = JSON.parse(fs.readFileSync(brunoConfigFile, "utf-8"));
101
+ if (!brunoConfig.scripts) {
102
+ brunoConfig.scripts = {
103
+ filesystemAccess: {
104
+ allow: true,
105
+ },
106
+ };
107
+ }
108
+ }
109
+ const brunoConfigFileName = path.join(runtimeFolder, "bruno.json");
110
+ const brunoConfigFileBackup = path.join(resultFolder, "bruno.json");
111
+ filesToDelete.push(brunoConfigFileName);
112
+ fs.writeFileSync(brunoConfigFileName, JSON.stringify(brunoConfig, null, 2));
113
+ fs.writeFileSync(brunoConfigFileBackup, JSON.stringify(brunoConfig, null, 2));
114
+ let expectRuntime = false;
115
+ // read the bruno file
116
+ let brunoFileContent = fs.readFileSync(brunoFile, "utf-8");
117
+ // populate runtime variables
118
+ brunoFileContent = await context.web._replaceWithLocalData(brunoFileContent, world);
119
+ // inject code to extract runtime variables
120
+ // first find the script:post-response
121
+ const scriptPostResponse = brunoFileContent.indexOf("script:post-response {");
122
+ if (scriptPostResponse !== -1) {
123
+ // need to search a new line follow by }
124
+ // find the end of the script
125
+ const scriptEnd = brunoFileContent.indexOf("\n}", scriptPostResponse);
126
+ // extract the script
127
+ const script = brunoFileContent.substring(scriptPostResponse, scriptEnd + 2);
128
+ // extract all the variables key names: bru.setVar("key", value)
129
+ const regex = /bru\.setVar\("([^"]+)",/g;
130
+ const variables = [];
131
+ let match;
132
+ while ((match = regex.exec(script)) !== null) {
133
+ // check if the variable is already in the list
134
+ if (!variables.includes(match[1])) {
135
+ variables.push(match[1]);
136
+ }
137
+ }
138
+ // check if the variables are not empty
139
+ if (variables.length > 0) {
140
+ expectRuntime = true;
141
+ let scriptVariables = "const runtimeVariables = {};\n";
142
+ // iterate over the variables and create a script to extract them
143
+ for (const variable of variables) {
144
+ scriptVariables += ` runtimeVariables["${variable}"] = bru.getVar("${variable}");\n`;
145
+ }
146
+ // check if the variable is not empty
147
+ // replace the script with the modified one
148
+ brunoFileContent = brunoFileContent.replace(script, `script:post-response {
149
+ const fs = require('fs');
150
+ // inject code to extract runtime variables
151
+ ${script.substring(script.indexOf("{") + 1, script.lastIndexOf("}"))}
152
+ // write the runtime variables to a file
153
+ ${scriptVariables}
154
+ fs.writeFileSync("${path.join(runtimeFolder, "runtime.json")}", JSON.stringify(runtimeVariables, null, 2));
155
+ }`);
156
+ }
157
+ }
158
+ // write the bruno file to the runtime folder
159
+ const executeBruFile = path.join(runtimeFolder, `${requestName}.bru`);
160
+ const executeBruFileBackup = path.join(resultFolder, `${requestName}.bru`);
161
+ filesToDelete.push(executeBruFile);
162
+ fs.writeFileSync(executeBruFile, brunoFileContent);
163
+ fs.writeFileSync(executeBruFileBackup, brunoFileContent);
164
+ const outputFile = path.join(resultFolder, `bruno_${context.web.stepIndex ? context.web.stepIndex : 0}.json`);
165
+ if (fs.existsSync(outputFile)) {
166
+ // remove the file if it exists
167
+ fs.unlinkSync(outputFile);
168
+ }
169
+ // if the runtime.json file exists, remove it
170
+ const runtimeFile = path.join(runtimeFolder, "runtime.json");
171
+ filesToDelete.push(runtimeFile);
172
+ if (fs.existsSync(runtimeFile)) {
173
+ // remove the file if it exists
174
+ fs.unlinkSync(runtimeFile);
175
+ }
176
+ const commandOptions = {
177
+ cwd: runtimeFolder,
178
+ env: {
179
+ ...process.env,
180
+ },
181
+ stdio: "pipe",
182
+ encoding: "utf-8",
183
+ };
184
+ const brunoFilePath = path.join(runtimeFolder, `${requestName}.bru`);
185
+ const args = ["bru", "run", "--reporter-json", outputFile];
186
+ // check if options.brunoArgs is defined
187
+ if (options.brunoArgs) {
188
+ // check if options.brunoArgs is an array
189
+ if (Array.isArray(options.brunoArgs)) {
190
+ // add the args to the command
191
+ args.push(...options.brunoArgs);
192
+ }
193
+ }
194
+ args.push(brunoFilePath);
195
+ const { stdout, stderr } = await runCommand(args, commandOptions);
196
+ // check if the command was successful
197
+ if (!fs.existsSync(outputFile)) {
198
+ if (stderr) {
199
+ console.error(`Error executing Bruno request: ${stderr}`);
200
+ }
201
+ if (stdout) {
202
+ console.log(`Bruno request executed successfully: ${stdout}`);
203
+ }
204
+ throw new Error(`Bruno request failed: ${stderr}`);
205
+ }
206
+ // read the output file
207
+ const result = JSON.parse(fs.readFileSync(outputFile, "utf-8"));
208
+ if (world && world.attach) {
209
+ await world.attach(JSON.stringify(fs.readFileSync(outputFile, "utf-8")), "application/json+bruno");
210
+ }
211
+ if (context.reportFolder) {
212
+ // copy the output file to the report folder
213
+ const reportFile = path.join(context.reportFolder, `bruno_${context.web.stepIndex ? context.web.stepIndex : 0}.json`);
214
+ fs.copyFileSync(outputFile, reportFile);
215
+ }
216
+ // validate result: totlaRequests === passedRequests, totalAssertions === passedAssertions, totalTests === passedTests
217
+ /*
218
+ [
219
+ {
220
+ "iterationIndex": 0,
221
+ "summary": {
222
+ "totalRequests": 1,
223
+ "passedRequests": 1,
224
+ "failedRequests": 0,
225
+ "skippedRequests": 0,
226
+ "totalAssertions": 0,
227
+ "passedAssertions": 0,
228
+ "failedAssertions": 0,
229
+ "totalTests": 1,
230
+ "passedTests": 1,
231
+ "failedTests": 0
232
+ },
233
+ */
234
+ if (result &&
235
+ result.length > 0 &&
236
+ result[0] &&
237
+ result[0].results &&
238
+ result[0].results.length > 0 &&
239
+ result[0].results[0].error) {
240
+ console.error(`Error executing Bruno request: ${result[0].results[0].error}`);
241
+ throw new Error(`Bruno request failed: ${result[0].results[0].error}`);
242
+ }
243
+ if (!result || !Array.isArray(result) || result.length === 0) {
244
+ throw new Error(`Bruno request failed: ${stderr}`);
245
+ }
246
+ const summary = result[0].summary;
247
+ if (summary.totalRequests !== summary.passedRequests) {
248
+ throw new Error(`Bruno request failed: ${stderr}`);
249
+ }
250
+ if (summary.totalAssertions !== summary.passedAssertions) {
251
+ let assertionError = "";
252
+ if (result[0].results && result[0].results.length > 0 && result[0].results[0].assertionResults) {
253
+ for (const assertion of result[0].results[0].assertionResults) {
254
+ if (assertion.error) {
255
+ assertionError += assertion.error + "\n";
256
+ }
257
+ }
258
+ }
259
+ throw new Error(`Bruno request failed: ${assertionError}`);
260
+ }
261
+ let testsError = "";
262
+ if (summary.totalTests !== summary.passedTests) {
263
+ testsError = "";
264
+ if (result[0].results && result[0].results.length > 0 && result[0].results[0].testResults) {
265
+ for (const testResult of result[0].results[0].testResults) {
266
+ if (testResult.error) {
267
+ testsError += testResult.error + "\n";
268
+ }
269
+ }
270
+ }
271
+ throw new Error(`Bruno tests failed: ${testsError}`);
272
+ }
273
+ console.log(requestName + " - request executed successfully");
274
+ console.log(`requests: ${summary.passedRequests}/${summary.totalRequests}`);
275
+ if (summary.totalAssertions > 0) {
276
+ console.log(`assertions: ${summary.passedAssertions}/${summary.totalAssertions}`);
277
+ }
278
+ if (summary.totalTests > 0) {
279
+ console.log(`tests: ${summary.passedTests}/${summary.totalTests}`);
280
+ }
281
+ if (!options.brunoScope) {
282
+ options.brunoScope = "bruno";
283
+ }
284
+ const data = {};
285
+ let scope = options.brunoScope;
286
+ data[scope] = result[0].results[0];
287
+ // check for vars:post-response {
288
+ const varsPostResponse = brunoFileContent.indexOf("vars:post-response {");
289
+ if (varsPostResponse !== -1) {
290
+ // need to search a new line follow by }
291
+ const varsEnd = brunoFileContent.indexOf("\n}", varsPostResponse);
292
+ // extract the script remove the open { and the close }
293
+ const script = brunoFileContent.substring(varsPostResponse + 20, varsEnd);
294
+ // the result loolks like this:
295
+ // aaaa: res.body.data.guid
296
+ // bbbb: res.body.data.guid2
297
+ const lines = script.split("\n");
298
+ for (const line of lines) {
299
+ const trimmedLine = line.trim();
300
+ if (trimmedLine.length === 0) {
301
+ continue;
302
+ }
303
+ // split the line by :
304
+ const parts = trimmedLine.split(":");
305
+ if (parts.length !== 2) {
306
+ continue;
307
+ }
308
+ const key = parts[0].trim();
309
+ let opath = parts[1].trim();
310
+ // check if the value is a variable
311
+ let path = opath.replace(/res\.body\./g, "response.").split(".");
312
+ const value = objectPath.get(result[0].results[0], path);
313
+ if (value) {
314
+ data[key] = value;
315
+ }
316
+ }
317
+ }
318
+ context.web.setTestData(data, world);
319
+ // if the expectRuntime is true, read the runtime.json file
320
+ if (expectRuntime) {
321
+ // check if the runtime.json file exists
322
+ if (fs.existsSync(runtimeFile)) {
323
+ // read the runtime.json file
324
+ const runtimeData = JSON.parse(fs.readFileSync(runtimeFile, "utf-8"));
325
+ // set test data
326
+ context.web.setTestData(runtimeData, world);
327
+ }
328
+ }
329
+ return result;
330
+ }
331
+ catch (error) {
332
+ await _commandError(state, error, context.web);
333
+ }
334
+ finally {
335
+ // delete the files to delete
336
+ for (const file of filesToDelete) {
337
+ if (fs.existsSync(file)) {
338
+ fs.unlinkSync(file);
339
+ }
340
+ }
341
+ await _commandFinally(state, context.web);
342
+ }
343
+ }
344
+ const runCommand = async (args, options) => {
345
+ return new Promise((resolve, reject) => {
346
+ const _cmd = process.platform === "win32" ? "npx.cmd" : "npx";
347
+ const _options = process.platform === "win32" ? { ...options, shell: true } : options;
348
+ const child = spawn(_cmd, args, _options);
349
+ let stdout = "";
350
+ let stderr = "";
351
+ child.stdout?.on("data", (data) => {
352
+ stdout += data.toString();
353
+ //process.stdout.write(data);
354
+ });
355
+ child.stderr?.on("data", (data) => {
356
+ stderr += data.toString();
357
+ process.stderr.write(data);
358
+ });
359
+ child.on("error", (err) => {
360
+ reject(err);
361
+ });
362
+ child.on("close", (code) => {
363
+ // if (code !== 0) {
364
+ // reject(new Error(`Process exited with code ${code}: ${stderr}`));
365
+ // } else {
366
+ resolve({ stdout, stderr });
367
+ //}
368
+ });
369
+ });
370
+ };
371
+ //# sourceMappingURL=bruno.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bruno.js","sourceRoot":"","sources":["../../src/bruno.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- export declare function _preCommand(state: any, stable: any): Promise<void>;
2
- export declare function _commandError(state: any, error: any, stable: any): Promise<void>;
3
- export declare function _screenshot(state: any, stable: any, specificElement?: any): Promise<void>;
4
- export declare function _commandFinally(state: any, stable: any): void;
1
+ export declare function _preCommand(state: any, web: any): Promise<void>;
2
+ export declare function _commandError(state: any, error: any, web: any): Promise<void>;
3
+ export declare function _screenshot(state: any, web: any, specificElement?: any): Promise<void>;
4
+ export declare function _commandFinally(state: any, web: any): Promise<void>;
5
5
  export declare function _validateSelectors(selectors: any): void;
6
6
  export declare function _reportToWorld(world: any, properties: any): void;