@usebruno/js 0.12.0 → 0.13.0

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usebruno/js",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "license": "MIT",
5
5
  "main": "src/index.js",
6
6
  "files": [
package/src/bru.js CHANGED
@@ -11,11 +11,13 @@ class Bru {
11
11
  processEnvVars,
12
12
  collectionPath,
13
13
  historyLogger,
14
- setHtmlVisualizationString
14
+ setHtmlVisualizationString,
15
+ secretVariables
15
16
  ) {
16
17
  this.envVariables = envVariables;
17
18
  this.collectionVariables = collectionVariables;
18
19
  this.processEnvVars = cloneDeep(processEnvVars || {});
20
+ this.secretVariables = cloneDeep(secretVariables || {});
19
21
  this.collectionPath = collectionPath;
20
22
  this.historyLogger = historyLogger;
21
23
  this.setHtmlVisualizationString = setHtmlVisualizationString;
@@ -112,6 +114,10 @@ class Bru {
112
114
  visualize(htmlString) {
113
115
  this.setHtmlVisualizationString(htmlString);
114
116
  }
117
+
118
+ getSecretVar(key) {
119
+ return this.secretVariables?.[`$secrets.${key}`];
120
+ }
115
121
  }
116
122
 
117
123
  module.exports = Bru;
@@ -199,13 +199,30 @@ const evaluateRhsOperand = (rhsOperand, operator, context) => {
199
199
  };
200
200
 
201
201
  class AssertRuntime {
202
- runAssertions(assertions, request, response, envVariables, collectionVariables, collectionPath, historyLogger) {
202
+ runAssertions(
203
+ assertions,
204
+ request,
205
+ response,
206
+ envVariables,
207
+ collectionVariables,
208
+ collectionPath,
209
+ historyLogger,
210
+ secretVariables
211
+ ) {
203
212
  const enabledAssertions = _.filter(assertions, (a) => a.enabled);
204
213
  if (!enabledAssertions.length) {
205
214
  return [];
206
215
  }
207
216
 
208
- const bru = new Bru(envVariables, collectionVariables);
217
+ const bru = new Bru(
218
+ envVariables,
219
+ collectionVariables,
220
+ undefined, // processEnvVars,
221
+ undefined, // collectionPath,
222
+ undefined, // historyLogger,
223
+ undefined, // setHtmlVisualizationString,
224
+ secretVariables
225
+ );
209
226
  const req = new BrunoRequest(request, historyLogger);
210
227
  const res = createResponseParser(response);
211
228
 
@@ -27,7 +27,7 @@ const axios = require('axios');
27
27
  const fetch = require('node-fetch');
28
28
  const chai = require('chai');
29
29
  const CryptoJS = require('crypto-js');
30
- const NodeVault = require('node-vault');
30
+ const NodeSecrets = require('node-vault');
31
31
 
32
32
  class ScriptRuntime {
33
33
  constructor() {}
@@ -43,7 +43,8 @@ class ScriptRuntime {
43
43
  onConsoleLog,
44
44
  processEnvVars,
45
45
  scriptingConfig,
46
- historyLogger
46
+ historyLogger,
47
+ secretVariables
47
48
  ) {
48
49
  let htmlVisualizationString;
49
50
  let setHtmlVisualizationString = (htmlString) => {
@@ -55,7 +56,8 @@ class ScriptRuntime {
55
56
  processEnvVars,
56
57
  collectionPath,
57
58
  historyLogger,
58
- setHtmlVisualizationString
59
+ setHtmlVisualizationString,
60
+ secretVariables
59
61
  );
60
62
  const req = new BrunoRequest(request, historyLogger);
61
63
  const allowScriptFilesystemAccess = get(scriptingConfig, 'filesystemAccess.allow', false);
@@ -128,7 +130,7 @@ class ScriptRuntime {
128
130
  'crypto-js': CryptoJS,
129
131
  ...whitelistedModules,
130
132
  fs: allowScriptFilesystemAccess ? fs : undefined,
131
- 'node-vault': NodeVault
133
+ 'node-vault': NodeSecrets
132
134
  }
133
135
  }
134
136
  });
@@ -153,7 +155,8 @@ class ScriptRuntime {
153
155
  onConsoleLog,
154
156
  processEnvVars,
155
157
  scriptingConfig,
156
- historyLogger
158
+ historyLogger,
159
+ secretVariables
157
160
  ) {
158
161
  let htmlVisualizationString;
159
162
  let setHtmlVisualizationString = (htmlString) => {
@@ -165,7 +168,8 @@ class ScriptRuntime {
165
168
  processEnvVars,
166
169
  collectionPath,
167
170
  historyLogger,
168
- setHtmlVisualizationString
171
+ setHtmlVisualizationString,
172
+ secretVariables
169
173
  );
170
174
  const req = new BrunoRequest(request, historyLogger);
171
175
  const res = new BrunoResponse(response);
@@ -233,7 +237,7 @@ class ScriptRuntime {
233
237
  'crypto-js': CryptoJS,
234
238
  ...whitelistedModules,
235
239
  fs: allowScriptFilesystemAccess ? fs : undefined,
236
- 'node-vault': NodeVault
240
+ 'node-vault': NodeSecrets
237
241
  }
238
242
  }
239
243
  });
@@ -29,7 +29,7 @@ const nanoid = require('nanoid');
29
29
  const axios = require('axios');
30
30
  const fetch = require('node-fetch');
31
31
  const CryptoJS = require('crypto-js');
32
- const NodeVault = require('node-vault');
32
+ const NodeSecrets = require('node-vault');
33
33
 
34
34
  class TestRuntime {
35
35
  constructor() {}
@@ -44,9 +44,18 @@ class TestRuntime {
44
44
  onConsoleLog,
45
45
  processEnvVars,
46
46
  scriptingConfig,
47
- historyLogger
47
+ historyLogger,
48
+ secretVariables
48
49
  ) {
49
- const bru = new Bru(envVariables, collectionVariables, processEnvVars, collectionPath, historyLogger);
50
+ const bru = new Bru(
51
+ envVariables,
52
+ collectionVariables,
53
+ processEnvVars,
54
+ collectionPath,
55
+ historyLogger,
56
+ undefined, // setHtmlVisualizationString
57
+ secretVariables
58
+ );
50
59
  const req = new BrunoRequest(request, historyLogger);
51
60
  const res = new BrunoResponse(response);
52
61
  const allowScriptFilesystemAccess = get(scriptingConfig, 'filesystemAccess.allow', false);
@@ -135,7 +144,7 @@ class TestRuntime {
135
144
  'crypto-js': CryptoJS,
136
145
  ...whitelistedModules,
137
146
  fs: allowScriptFilesystemAccess ? fs : undefined,
138
- 'node-vault': NodeVault
147
+ 'node-vault': NodeSecrets
139
148
  }
140
149
  }
141
150
  });
@@ -4,13 +4,30 @@ const BrunoRequest = require('../bruno-request');
4
4
  const { evaluateJsTemplateLiteral, evaluateJsExpression, createResponseParser } = require('../utils');
5
5
 
6
6
  class VarsRuntime {
7
- runPreRequestVars(vars, request, envVariables, collectionVariables, collectionPath, processEnvVars, historyLogger) {
7
+ runPreRequestVars(
8
+ vars,
9
+ request,
10
+ envVariables,
11
+ collectionVariables,
12
+ collectionPath,
13
+ processEnvVars,
14
+ historyLogger,
15
+ secretVars = {}
16
+ ) {
8
17
  const enabledVars = _.filter(vars, (v) => v.enabled);
9
18
  if (!enabledVars.length) {
10
19
  return;
11
20
  }
12
21
 
13
- const bru = new Bru(envVariables, collectionVariables, processEnvVars, null, historyLogger);
22
+ const bru = new Bru(
23
+ envVariables,
24
+ collectionVariables,
25
+ processEnvVars,
26
+ null,
27
+ historyLogger,
28
+ undefined, // setHtmlVisualizationString
29
+ secretVars
30
+ );
14
31
  const req = new BrunoRequest(request, historyLogger);
15
32
 
16
33
  const bruContext = {
@@ -21,6 +38,7 @@ class VarsRuntime {
21
38
  const context = {
22
39
  ...envVariables,
23
40
  ...collectionVariables,
41
+ ...secretVars,
24
42
  ...bruContext
25
43
  };
26
44
 
@@ -42,14 +60,23 @@ class VarsRuntime {
42
60
  collectionVariables,
43
61
  collectionPath,
44
62
  processEnvVars,
45
- historyLogger
63
+ historyLogger,
64
+ secretVars = {}
46
65
  ) {
47
66
  const enabledVars = _.filter(vars, (v) => v.enabled);
48
67
  if (!enabledVars.length) {
49
68
  return;
50
69
  }
51
70
 
52
- const bru = new Bru(envVariables, collectionVariables, processEnvVars, null, historyLogger);
71
+ const bru = new Bru(
72
+ envVariables,
73
+ collectionVariables,
74
+ processEnvVars,
75
+ null,
76
+ historyLogger,
77
+ undefined, // setHtmlVisualizationString
78
+ secretVars
79
+ );
53
80
  const req = new BrunoRequest(request, historyLogger);
54
81
  const res = createResponseParser(response);
55
82
 
@@ -62,6 +89,7 @@ class VarsRuntime {
62
89
  const context = {
63
90
  ...envVariables,
64
91
  ...collectionVariables,
92
+ ...secretVars,
65
93
  ...bruContext
66
94
  };
67
95