fix: Allow quoting some special characters in names of multipart request body parts and headers in bru files

Fixes #571
This commit is contained in:
Mateusz Pietryga
2024-09-23 19:29:51 +02:00
parent b02f6b61ee
commit 8c6ce2e084
3 changed files with 35 additions and 7 deletions

View File

@@ -105,7 +105,7 @@ const jsonToBru = (json) => {
if (enabled(headers).length) {
bru += `\n${indentString(
enabled(headers)
.map((item) => `${item.name}: ${item.value}`)
.map((item) => `${quoteKey(item.name)}: ${item.value}`)
.join('\n')
)}`;
}
@@ -113,7 +113,7 @@ const jsonToBru = (json) => {
if (disabled(headers).length) {
bru += `\n${indentString(
disabled(headers)
.map((item) => `~${item.name}: ${item.value}`)
.map((item) => `~${quoteKey(item.name)}: ${item.value}`)
.join('\n')
)}`;
}
@@ -179,7 +179,7 @@ ${indentString(`domain: ${auth?.ntlm?.domain || ''}`)}
}
`;
}
}
if (auth && auth.oauth2) {
switch (auth?.oauth2?.grantType) {
@@ -272,14 +272,14 @@ ${indentString(body.sparql)}
if (enabled(body.formUrlEncoded).length) {
const enabledValues = enabled(body.formUrlEncoded)
.map((item) => `${item.name}: ${getValueString(item.value)}`)
.map((item) => `${quoteKey(item.name)}: ${getValueString(item.value)}`)
.join('\n');
bru += `${indentString(enabledValues)}\n`;
}
if (disabled(body.formUrlEncoded).length) {
const disabledValues = disabled(body.formUrlEncoded)
.map((item) => `~${item.name}: ${getValueString(item.value)}`)
.map((item) => `~${quoteKey(item.name)}: ${getValueString(item.value)}`)
.join('\n');
bru += `${indentString(disabledValues)}\n`;
}
@@ -300,14 +300,14 @@ ${indentString(body.sparql)}
item.contentType && item.contentType !== '' ? ' @contentType(' + item.contentType + ')' : '';
if (item.type === 'text') {
return `${enabled}${item.name}: ${getValueString(item.value)}${contentType}`;
return `${enabled}${quoteKey(item.name)}: ${getValueString(item.value)}${contentType}`;
}
if (item.type === 'file') {
let filepaths = item.value || [];
let filestr = filepaths.join('|');
const value = `@file(${filestr})`;
return `${enabled}${item.name}: ${value}${contentType}`;
return `${enabled}${quoteKey(item.name)}: ${value}${contentType}`;
}
})
.join('\n')

View File

@@ -96,13 +96,17 @@ body:sparql {
body:form-urlencoded {
apikey: secret
numbers: +91998877665
"colon:parameter": is allowed
~message: hello
~"disabled colon:parameter": is allowed
}
body:multipart-form {
apikey: secret
numbers: +91998877665
"colon:part": is allowed
~message: hello
~"disabled colon:part": is allowed
}
body:graphql {

View File

@@ -127,10 +127,20 @@
"value": "+91998877665",
"enabled": true
},
{
"name": "colon:parameter",
"value": "is allowed",
"enabled": true
},
{
"name": "message",
"value": "hello",
"enabled": false
},
{
"name": "disabled colon:parameter",
"value": "is allowed",
"enabled": false
}
],
"multipartForm": [
@@ -148,12 +158,26 @@
"enabled": true,
"type": "text"
},
{
"contentType": "",
"name": "colon:part",
"value": "is allowed",
"enabled": true,
"type": "text"
},
{
"contentType": "",
"name": "message",
"value": "hello",
"enabled": false,
"type": "text"
},
{
"contentType": "",
"name": "disabled colon:part",
"value": "is allowed",
"enabled": false,
"type": "text"
}
]
},