From 274a55e25715cd1a9de238f9f979898280dfc774 Mon Sep 17 00:00:00 2001 From: lohxt1 Date: Mon, 24 Mar 2025 15:46:31 +0530 Subject: [PATCH] folder level oauth2 save fn fix --- .../RequestPane/HttpRequestPane/index.js | 2 +- packages/bruno-lang/v2/src/bruToJson.js | 16 ++++----- .../bruno-lang/v2/src/collectionBruToJson.js | 16 ++++----- packages/bruno-lang/v2/src/jsonToBru.js | 14 ++++---- .../bruno-lang/v2/src/jsonToCollectionBru.js | 14 ++++---- packages/bruno-lang/v2/src/utils.js | 36 +++++++++++++++++++ 6 files changed, 67 insertions(+), 31 deletions(-) create mode 100644 packages/bruno-lang/v2/src/utils.js diff --git a/packages/bruno-app/src/components/RequestPane/HttpRequestPane/index.js b/packages/bruno-app/src/components/RequestPane/HttpRequestPane/index.js index 7bbc903b2..4c7e6029b 100644 --- a/packages/bruno-app/src/components/RequestPane/HttpRequestPane/index.js +++ b/packages/bruno-app/src/components/RequestPane/HttpRequestPane/index.js @@ -152,7 +152,7 @@ const HttpRequestPane = ({ item, collection, leftPaneWidth }) => {
selectTab('script')}> Script {(script.req || script.res) && ( - item.preScriptResponseErrorMessage || item.postResponseScriptErrorMessage ? + item.preRequestScriptErrorMessage || item.postResponseScriptErrorMessage ? : )} diff --git a/packages/bruno-lang/v2/src/bruToJson.js b/packages/bruno-lang/v2/src/bruToJson.js index 301d99fd4..4cc36f557 100644 --- a/packages/bruno-lang/v2/src/bruToJson.js +++ b/packages/bruno-lang/v2/src/bruToJson.js @@ -1,6 +1,6 @@ const ohm = require('ohm-js'); const _ = require('lodash'); -const { outdentString } = require('../../v1/src/utils'); +const { safeParseJson, outdentString } = require('./utils'); /** * A Bru file is made up of blocks. @@ -545,8 +545,8 @@ const sem = grammar.createSemantics().addAttribute('ast', { tokenPlacement: tokenPlacementKey?.value ? tokenPlacementKey.value : 'header', tokenHeaderPrefix: tokenHeaderPrefixKey?.value ? tokenHeaderPrefixKey.value : 'Bearer', tokenQueryKey: tokenQueryKeyKey?.value ? tokenQueryKeyKey.value : 'access_token', - autoFetchToken: autoFetchTokenKey ? JSON.parse(autoFetchTokenKey?.value) : true, - autoRefreshToken: autoRefreshTokenKey ? JSON.parse(autoRefreshTokenKey?.value) : true + autoFetchToken: autoFetchTokenKey ? safeParseJson(autoFetchTokenKey?.value) ?? true : true, + autoRefreshToken: autoRefreshTokenKey ? safeParseJson(autoRefreshTokenKey?.value) ?? true : true } : grantTypeKey?.value && grantTypeKey?.value == 'authorization_code' ? { @@ -559,14 +559,14 @@ const sem = grammar.createSemantics().addAttribute('ast', { clientSecret: clientSecretKey ? clientSecretKey.value : '', scope: scopeKey ? scopeKey.value : '', state: stateKey ? stateKey.value : '', - pkce: pkceKey ? JSON.parse(pkceKey?.value || false) : false, + pkce: pkceKey ? safeParseJson(pkceKey?.value) ?? false : false, credentialsPlacement: credentialsPlacementKey?.value ? credentialsPlacementKey.value : 'body', credentialsId: credentialsIdKey?.value ? credentialsIdKey.value : 'credentials', tokenPlacement: tokenPlacementKey?.value ? tokenPlacementKey.value : 'header', tokenHeaderPrefix: tokenHeaderPrefixKey?.value ? tokenHeaderPrefixKey.value : 'Bearer', tokenQueryKey: tokenQueryKeyKey?.value ? tokenQueryKeyKey.value : 'access_token', - autoFetchToken: autoFetchTokenKey ? JSON.parse(autoFetchTokenKey?.value) : true, - autoRefreshToken: autoRefreshTokenKey ? JSON.parse(autoRefreshTokenKey?.value) : true + autoFetchToken: autoFetchTokenKey ? safeParseJson(autoFetchTokenKey?.value) ?? true : true, + autoRefreshToken: autoRefreshTokenKey ? safeParseJson(autoRefreshTokenKey?.value) ?? true : true } : grantTypeKey?.value && grantTypeKey?.value == 'client_credentials' ? { @@ -581,8 +581,8 @@ const sem = grammar.createSemantics().addAttribute('ast', { tokenPlacement: tokenPlacementKey?.value ? tokenPlacementKey.value : 'header', tokenHeaderPrefix: tokenHeaderPrefixKey?.value ? tokenHeaderPrefixKey.value : 'Bearer', tokenQueryKey: tokenQueryKeyKey?.value ? tokenQueryKeyKey.value : 'access_token', - autoFetchToken: autoFetchTokenKey ? JSON.parse(autoFetchTokenKey?.value) : true, - autoRefreshToken: autoRefreshTokenKey ? JSON.parse(autoRefreshTokenKey?.value) : true + autoFetchToken: autoFetchTokenKey ? safeParseJson(autoFetchTokenKey?.value) ?? true : true, + autoRefreshToken: autoRefreshTokenKey ? safeParseJson(autoRefreshTokenKey?.value) ?? true : true } : {} } diff --git a/packages/bruno-lang/v2/src/collectionBruToJson.js b/packages/bruno-lang/v2/src/collectionBruToJson.js index 47046ba8b..d26580110 100644 --- a/packages/bruno-lang/v2/src/collectionBruToJson.js +++ b/packages/bruno-lang/v2/src/collectionBruToJson.js @@ -1,6 +1,6 @@ const ohm = require('ohm-js'); const _ = require('lodash'); -const { outdentString } = require('../../v1/src/utils'); +const { safeParseJson, outdentString } = require('./utils'); const grammar = ohm.grammar(`Bru { BruFile = (meta | query | headers | auth | auths | vars | script | tests | docs)* @@ -305,8 +305,8 @@ const sem = grammar.createSemantics().addAttribute('ast', { tokenPlacement: tokenPlacementKey?.value ? tokenPlacementKey.value : 'header', tokenHeaderPrefix: tokenHeaderPrefixKey?.value ? tokenHeaderPrefixKey.value : 'Bearer', tokenQueryKey: tokenQueryKeyKey?.value ? tokenQueryKeyKey.value : 'access_token', - autoFetchToken: autoFetchTokenKey ? JSON.parse(autoFetchTokenKey?.value) : true, - autoRefreshToken: autoRefreshTokenKey ? JSON.parse(autoRefreshTokenKey?.value) : true + autoFetchToken: autoFetchTokenKey ? safeParseJson(autoFetchTokenKey?.value) ?? true : true, + autoRefreshToken: autoRefreshTokenKey ? safeParseJson(autoRefreshTokenKey?.value) ?? true : true } : grantTypeKey?.value && grantTypeKey?.value == 'authorization_code' ? { @@ -319,14 +319,14 @@ const sem = grammar.createSemantics().addAttribute('ast', { clientSecret: clientSecretKey ? clientSecretKey.value : '', scope: scopeKey ? scopeKey.value : '', state: stateKey ? stateKey.value : '', - pkce: pkceKey ? JSON.parse(pkceKey?.value || false) : false, + pkce: pkceKey ? safeParseJson(pkceKey?.value) ?? false : false, credentialsPlacement: credentialsPlacementKey?.value ? credentialsPlacementKey.value : 'body', credentialsId: credentialsIdKey?.value ? credentialsIdKey.value : 'credentials', tokenPlacement: tokenPlacementKey?.value ? tokenPlacementKey.value : 'header', tokenHeaderPrefix: tokenHeaderPrefixKey?.value ? tokenHeaderPrefixKey.value : 'Bearer', tokenQueryKey: tokenQueryKeyKey?.value ? tokenQueryKeyKey.value : 'access_token', - autoFetchToken: autoFetchTokenKey ? JSON.parse(autoFetchTokenKey?.value) : true, - autoRefreshToken: autoRefreshTokenKey ? JSON.parse(autoRefreshTokenKey?.value) : true + autoFetchToken: autoFetchTokenKey ? safeParseJson(autoFetchTokenKey?.value) ?? true : true, + autoRefreshToken: autoRefreshTokenKey ? safeParseJson(autoRefreshTokenKey?.value) ?? true : true } : grantTypeKey?.value && grantTypeKey?.value == 'client_credentials' ? { @@ -341,8 +341,8 @@ const sem = grammar.createSemantics().addAttribute('ast', { tokenPlacement: tokenPlacementKey?.value ? tokenPlacementKey.value : 'header', tokenHeaderPrefix: tokenHeaderPrefixKey?.value ? tokenHeaderPrefixKey.value : 'Bearer', tokenQueryKey: tokenQueryKeyKey?.value ? tokenQueryKeyKey.value : 'access_token', - autoFetchToken: autoFetchTokenKey ? JSON.parse(autoFetchTokenKey?.value) : true, - autoRefreshToken: autoRefreshTokenKey ? JSON.parse(autoRefreshTokenKey?.value) : true + autoFetchToken: autoFetchTokenKey ? safeParseJson(autoFetchTokenKey?.value) ?? true : true, + autoRefreshToken: autoRefreshTokenKey ? safeParseJson(autoRefreshTokenKey?.value) ?? true : true } : {} } diff --git a/packages/bruno-lang/v2/src/jsonToBru.js b/packages/bruno-lang/v2/src/jsonToBru.js index 106cd706d..f9b5f84ed 100644 --- a/packages/bruno-lang/v2/src/jsonToBru.js +++ b/packages/bruno-lang/v2/src/jsonToBru.js @@ -1,6 +1,6 @@ const _ = require('lodash'); -const { indentString } = require('../../v1/src/utils'); +const { indentString } = require('./utils'); const enabled = (items = [], key = "enabled") => items.filter((item) => item[key]); const disabled = (items = [], key = "enabled") => items.filter((item) => !item[key]); @@ -196,8 +196,8 @@ ${indentString(`token_placement: ${auth?.oauth2?.tokenPlacement || ''}`)}${ }${ auth?.oauth2?.tokenPlacement !== 'header' ? '\n' + indentString(`token_query_key: ${auth?.oauth2?.tokenQueryKey || ''}`) : '' } -${indentString(`auto_fetch_token: ${(auth?.oauth2?.autoFetchToken|| false).toString()}`)} -${indentString(`auto_refresh_token: ${(auth?.oauth2?.autoRefreshToken || false).toString()}`)} +${indentString(`auto_fetch_token: ${(auth?.oauth2?.autoFetchToken ?? true).toString()}`)} +${indentString(`auto_refresh_token: ${(auth?.oauth2?.autoRefreshToken ?? true).toString()}`)} } `; @@ -221,8 +221,8 @@ ${indentString(`token_placement: ${auth?.oauth2?.tokenPlacement || ''}`)}${ }${ auth?.oauth2?.tokenPlacement !== 'header' ? '\n' + indentString(`token_query_key: ${auth?.oauth2?.tokenQueryKey || ''}`) : '' } -${indentString(`auto_fetch_token: ${(auth?.oauth2?.autoFetchToken|| false).toString()}`)} -${indentString(`auto_refresh_token: ${(auth?.oauth2?.autoRefreshToken || false).toString()}`)} +${indentString(`auto_fetch_token: ${(auth?.oauth2?.autoFetchToken ?? true).toString()}`)} +${indentString(`auto_refresh_token: ${(auth?.oauth2?.autoRefreshToken ?? true).toString()}`)} } `; @@ -242,8 +242,8 @@ ${indentString(`token_placement: ${auth?.oauth2?.tokenPlacement || ''}`)}${ }${ auth?.oauth2?.tokenPlacement !== 'header' ? '\n' + indentString(`token_query_key: ${auth?.oauth2?.tokenQueryKey || ''}`) : '' } -${indentString(`auto_fetch_token: ${(auth?.oauth2?.autoFetchToken|| false).toString()}`)} -${indentString(`auto_refresh_token: ${(auth?.oauth2?.autoRefreshToken || false).toString()}`)} +${indentString(`auto_fetch_token: ${(auth?.oauth2?.autoFetchToken ?? true).toString()}`)} +${indentString(`auto_refresh_token: ${(auth?.oauth2?.autoRefreshToken ?? true).toString()}`)} } `; diff --git a/packages/bruno-lang/v2/src/jsonToCollectionBru.js b/packages/bruno-lang/v2/src/jsonToCollectionBru.js index 220686283..9ba1d90b4 100644 --- a/packages/bruno-lang/v2/src/jsonToCollectionBru.js +++ b/packages/bruno-lang/v2/src/jsonToCollectionBru.js @@ -1,6 +1,6 @@ const _ = require('lodash'); -const { indentString } = require('../../v1/src/utils'); +const { indentString } = require('./utils'); const enabled = (items = []) => items.filter((item) => item.enabled); const disabled = (items = []) => items.filter((item) => !item.enabled); @@ -162,8 +162,8 @@ ${indentString(`token_placement: ${auth?.oauth2?.tokenPlacement || ''}`)}${ }${ auth?.oauth2?.tokenPlacement !== 'header' ? '\n' + indentString(`token_query_key: ${auth?.oauth2?.tokenQueryKey || ''}`) : '' } -${indentString(`auto_fetch_token: ${(auth?.oauth2?.autoFetchToken).toString()}`)} -${indentString(`auto_refresh_token: ${(auth?.oauth2?.autoRefreshToken).toString()}`)} +${indentString(`auto_fetch_token: ${(auth?.oauth2?.autoFetchToken ?? true).toString()}`)} +${indentString(`auto_refresh_token: ${(auth?.oauth2?.autoRefreshToken ?? true).toString()}`)} } `; @@ -187,8 +187,8 @@ ${indentString(`token_placement: ${auth?.oauth2?.tokenPlacement || ''}`)}${ }${ auth?.oauth2?.tokenPlacement !== 'header' ? '\n' + indentString(`token_query_key: ${auth?.oauth2?.tokenQueryKey || ''}`) : '' } -${indentString(`auto_fetch_token: ${(auth?.oauth2?.autoFetchToken).toString()}`)} -${indentString(`auto_refresh_token: ${(auth?.oauth2?.autoRefreshToken).toString()}`)} +${indentString(`auto_fetch_token: ${(auth?.oauth2?.autoFetchToken ?? true).toString()}`)} +${indentString(`auto_refresh_token: ${(auth?.oauth2?.autoRefreshToken ?? true).toString()}`)} } `; @@ -208,8 +208,8 @@ ${indentString(`token_placement: ${auth?.oauth2?.tokenPlacement || ''}`)}${ }${ auth?.oauth2?.tokenPlacement !== 'header' ? '\n' + indentString(`token_query_key: ${auth?.oauth2?.tokenQueryKey || ''}`) : '' } -${indentString(`auto_fetch_token: ${(auth?.oauth2?.autoFetchToken).toString()}`)} -${indentString(`auto_refresh_token: ${(auth?.oauth2?.autoRefreshToken).toString()}`)} +${indentString(`auto_fetch_token: ${(auth?.oauth2?.autoFetchToken ?? true).toString()}`)} +${indentString(`auto_refresh_token: ${(auth?.oauth2?.autoRefreshToken ?? true).toString()}`)} } `; diff --git a/packages/bruno-lang/v2/src/utils.js b/packages/bruno-lang/v2/src/utils.js new file mode 100644 index 000000000..74b22c952 --- /dev/null +++ b/packages/bruno-lang/v2/src/utils.js @@ -0,0 +1,36 @@ +// safely parse json +const safeParseJson = (json) => { + try { + return JSON.parse(json); + } catch (e) { + return null; + } +}; + +const indentString = (str) => { + if (!str || !str.length) { + return str || ''; + } + + return str + .split('\n') + .map((line) => ' ' + line) + .join('\n'); +}; + +const outdentString = (str) => { + if (!str || !str.length) { + return str || ''; + } + + return str + .split('\n') + .map((line) => line.replace(/^ /, '')) + .join('\n'); +}; + +module.exports = { + safeParseJson, + indentString, + outdentString +};