@usebruno/js 0.26.0 → 0.27.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
package/src/bru.js
CHANGED
|
@@ -5,7 +5,7 @@ const { interpolate } = require('@usebruno/common');
|
|
|
5
5
|
const variableNameRegex = /^[\w-.]*$/;
|
|
6
6
|
|
|
7
7
|
class Bru {
|
|
8
|
-
constructor(envVariables, runtimeVariables, processEnvVars, collectionPath, historyLogger, setVisualizations, secretVariables, collectionVariables, folderVariables, requestVariables, globalEnvironmentVariables) {
|
|
8
|
+
constructor(envVariables, runtimeVariables, processEnvVars, collectionPath, historyLogger, setVisualizations, secretVariables, collectionVariables, folderVariables, requestVariables, globalEnvironmentVariables, oauth2CredentialVariables) {
|
|
9
9
|
this.envVariables = envVariables || {};
|
|
10
10
|
this.runtimeVariables = runtimeVariables || {};
|
|
11
11
|
this.processEnvVars = cloneDeep(processEnvVars || {});
|
|
@@ -14,6 +14,7 @@ class Bru {
|
|
|
14
14
|
this.folderVariables = folderVariables || {};
|
|
15
15
|
this.requestVariables = requestVariables || {};
|
|
16
16
|
this.globalEnvironmentVariables = globalEnvironmentVariables || {};
|
|
17
|
+
this.oauth2CredentialVariables = oauth2CredentialVariables || {};
|
|
17
18
|
this.collectionPath = collectionPath;
|
|
18
19
|
this.historyLogger = historyLogger;
|
|
19
20
|
this.setVisualizations = setVisualizations;
|
|
@@ -41,6 +42,7 @@ class Bru {
|
|
|
41
42
|
...this.envVariables,
|
|
42
43
|
...this.folderVariables,
|
|
43
44
|
...this.requestVariables,
|
|
45
|
+
...this.oauth2CredentialVariables,
|
|
44
46
|
...this.runtimeVariables,
|
|
45
47
|
process: {
|
|
46
48
|
env: {
|
|
@@ -105,6 +107,10 @@ class Bru {
|
|
|
105
107
|
this.globalEnvironmentVariables[key] = value;
|
|
106
108
|
}
|
|
107
109
|
|
|
110
|
+
getOauth2CredentialVar(key) {
|
|
111
|
+
return this._interpolate(this.oauth2CredentialVariables[key]);
|
|
112
|
+
}
|
|
113
|
+
|
|
108
114
|
hasVar(key) {
|
|
109
115
|
return Object.hasOwn(this.runtimeVariables, key);
|
|
110
116
|
}
|
package/src/bruno-request.js
CHANGED
|
@@ -13,6 +13,7 @@ class BrunoRequest {
|
|
|
13
13
|
* It must be noted that the user cannot set these properties directly.
|
|
14
14
|
* They should use the respective setter methods to set these properties.
|
|
15
15
|
*/
|
|
16
|
+
// todo: history logger needs to be properly refactored using the newer timeline implementation
|
|
16
17
|
constructor(req, historyLogger) {
|
|
17
18
|
this.req = req;
|
|
18
19
|
this.url = req.url;
|
|
@@ -246,6 +246,7 @@ class AssertRuntime {
|
|
|
246
246
|
|
|
247
247
|
runAssertions(assertions, request, response, envVariables, runtimeVariables, processEnvVars, historyLogger, secretVariables) {
|
|
248
248
|
const globalEnvironmentVariables = request?.globalEnvironmentVariables || {};
|
|
249
|
+
const oauth2CredentialVariables = request?.oauth2CredentialVariables || {};
|
|
249
250
|
const collectionVariables = request?.collectionVariables || {};
|
|
250
251
|
const folderVariables = request?.folderVariables || {};
|
|
251
252
|
const requestVariables = request?.requestVariables || {};
|
|
@@ -265,7 +266,8 @@ class AssertRuntime {
|
|
|
265
266
|
collectionVariables,
|
|
266
267
|
folderVariables,
|
|
267
268
|
requestVariables,
|
|
268
|
-
globalEnvironmentVariables
|
|
269
|
+
globalEnvironmentVariables,
|
|
270
|
+
oauth2CredentialVariables
|
|
269
271
|
);
|
|
270
272
|
const req = new BrunoRequest(request, historyLogger);
|
|
271
273
|
const res = createResponseParser(response);
|
|
@@ -282,6 +284,7 @@ class AssertRuntime {
|
|
|
282
284
|
...envVariables,
|
|
283
285
|
...folderVariables,
|
|
284
286
|
...requestVariables,
|
|
287
|
+
...oauth2CredentialVariables,
|
|
285
288
|
...runtimeVariables,
|
|
286
289
|
...processEnvVars,
|
|
287
290
|
...bruContext
|
|
@@ -57,11 +57,12 @@ class ScriptRuntime {
|
|
|
57
57
|
visualizations.push(data);
|
|
58
58
|
}
|
|
59
59
|
const globalEnvironmentVariables = request?.globalEnvironmentVariables || {};
|
|
60
|
+
const oauth2CredentialVariables = request?.oauth2CredentialVariables || {};
|
|
60
61
|
const collectionVariables = request?.collectionVariables || {};
|
|
61
62
|
const folderVariables = request?.folderVariables || {};
|
|
62
63
|
const requestVariables = request?.requestVariables || {};
|
|
63
|
-
const bru = new Bru(envVariables, runtimeVariables, processEnvVars, collectionPath, historyLogger, setVisualizations, secretVariables, collectionVariables, folderVariables, requestVariables, globalEnvironmentVariables);
|
|
64
|
-
const req = new BrunoRequest(request
|
|
64
|
+
const bru = new Bru(envVariables, runtimeVariables, processEnvVars, collectionPath, historyLogger, setVisualizations, secretVariables, collectionVariables, folderVariables, requestVariables, globalEnvironmentVariables, oauth2CredentialVariables);
|
|
65
|
+
const req = new BrunoRequest(request);
|
|
65
66
|
const allowScriptFilesystemAccess = get(scriptingConfig, 'filesystemAccess.allow', false);
|
|
66
67
|
const moduleWhitelist = get(scriptingConfig, 'moduleWhitelist', []);
|
|
67
68
|
const additionalContextRoots = get(scriptingConfig, 'additionalContextRoots', []);
|
|
@@ -129,6 +130,7 @@ class ScriptRuntime {
|
|
|
129
130
|
sandbox: context,
|
|
130
131
|
require: {
|
|
131
132
|
context: 'sandbox',
|
|
133
|
+
builtin: [ "*" ],
|
|
132
134
|
external: true,
|
|
133
135
|
root: [collectionPath, ...additionalContextRootsAbsolute],
|
|
134
136
|
mock: {
|
|
@@ -196,11 +198,12 @@ class ScriptRuntime {
|
|
|
196
198
|
visualizations.push(data);
|
|
197
199
|
}
|
|
198
200
|
const globalEnvironmentVariables = request?.globalEnvironmentVariables || {};
|
|
201
|
+
const oauth2CredentialVariables = request?.oauth2CredentialVariables || {};
|
|
199
202
|
const collectionVariables = request?.collectionVariables || {};
|
|
200
203
|
const folderVariables = request?.folderVariables || {};
|
|
201
204
|
const requestVariables = request?.requestVariables || {};
|
|
202
|
-
const bru = new Bru(envVariables, runtimeVariables, processEnvVars, collectionPath, historyLogger, setVisualizations, secretVariables, collectionVariables, folderVariables, requestVariables, globalEnvironmentVariables);
|
|
203
|
-
const req = new BrunoRequest(request
|
|
205
|
+
const bru = new Bru(envVariables, runtimeVariables, processEnvVars, collectionPath, historyLogger, setVisualizations, secretVariables, collectionVariables, folderVariables, requestVariables, globalEnvironmentVariables, oauth2CredentialVariables);
|
|
206
|
+
const req = new BrunoRequest(request);
|
|
204
207
|
const res = new BrunoResponse(response);
|
|
205
208
|
const allowScriptFilesystemAccess = get(scriptingConfig, 'filesystemAccess.allow', false);
|
|
206
209
|
const moduleWhitelist = get(scriptingConfig, 'moduleWhitelist', []);
|
|
@@ -265,6 +268,7 @@ class ScriptRuntime {
|
|
|
265
268
|
sandbox: context,
|
|
266
269
|
require: {
|
|
267
270
|
context: 'sandbox',
|
|
271
|
+
builtin: [ "*" ],
|
|
268
272
|
external: true,
|
|
269
273
|
root: [collectionPath],
|
|
270
274
|
mock: {
|
|
@@ -73,11 +73,12 @@ class TestRuntime {
|
|
|
73
73
|
runRequestByItemPathname
|
|
74
74
|
) {
|
|
75
75
|
const globalEnvironmentVariables = request?.globalEnvironmentVariables || {};
|
|
76
|
+
const oauth2CredentialVariables = request?.oauth2CredentialVariables || {};
|
|
76
77
|
const collectionVariables = request?.collectionVariables || {};
|
|
77
78
|
const folderVariables = request?.folderVariables || {};
|
|
78
79
|
const requestVariables = request?.requestVariables || {};
|
|
79
80
|
const assertionResults = request?.assertionResults || [];
|
|
80
|
-
const bru = new Bru(envVariables, runtimeVariables, processEnvVars, collectionPath, historyLogger, undefined, secretVariables, collectionVariables, folderVariables, requestVariables, globalEnvironmentVariables);
|
|
81
|
+
const bru = new Bru(envVariables, runtimeVariables, processEnvVars, collectionPath, historyLogger, undefined, secretVariables, collectionVariables, folderVariables, requestVariables, globalEnvironmentVariables, oauth2CredentialVariables);
|
|
81
82
|
const req = new BrunoRequest(request, historyLogger);
|
|
82
83
|
const res = new BrunoResponse(response);
|
|
83
84
|
const allowScriptFilesystemAccess = get(scriptingConfig, 'filesystemAccess.allow', false);
|
|
@@ -53,6 +53,12 @@ const addBruShimToContext = (vm, bru) => {
|
|
|
53
53
|
vm.setProp(bruObject, 'getGlobalEnvVar', getGlobalEnvVar);
|
|
54
54
|
getGlobalEnvVar.dispose();
|
|
55
55
|
|
|
56
|
+
let getOauth2CredentialVar = vm.newFunction('getOauth2CredentialVar', function (key) {
|
|
57
|
+
return marshallToVm(bru.getOauth2CredentialVar(vm.dump(key)), vm);
|
|
58
|
+
});
|
|
59
|
+
vm.setProp(bruObject, 'getOauth2CredentialVar', getOauth2CredentialVar);
|
|
60
|
+
getOauth2CredentialVar.dispose();
|
|
61
|
+
|
|
56
62
|
let setGlobalEnvVar = vm.newFunction('setGlobalEnvVar', function (key, value) {
|
|
57
63
|
bru.setGlobalEnvVar(vm.dump(key), vm.dump(value));
|
|
58
64
|
});
|