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