@readme/httpsnippet 6.0.0 → 6.1.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/README.md +5 -3
- package/dist/helpers/escape.d.ts +46 -0
- package/dist/helpers/escape.js +101 -0
- package/dist/index.d.ts +11 -11
- package/dist/targets/c/libcurl/client.js +3 -1
- package/dist/targets/c/target.js +1 -0
- package/dist/targets/csharp/httpclient/client.js +2 -1
- package/dist/targets/csharp/restsharp/client.js +65 -11
- package/dist/targets/csharp/target.js +1 -0
- package/dist/targets/go/native/client.d.ts +1 -1
- package/dist/targets/go/native/client.js +22 -32
- package/dist/targets/go/target.js +1 -0
- package/dist/targets/java/asynchttp/client.js +2 -1
- package/dist/targets/java/nethttp/client.js +2 -1
- package/dist/targets/java/okhttp/client.js +2 -1
- package/dist/targets/java/unirest/client.js +2 -1
- package/dist/targets/javascript/axios/fixtures/application-json.js +1 -1
- package/dist/targets/javascript/axios/fixtures/headers.js +6 -1
- package/dist/targets/javascript/fetch/fixtures/application-json.js +1 -1
- package/dist/targets/javascript/fetch/fixtures/headers.d.ts +1 -0
- package/dist/targets/javascript/fetch/fixtures/headers.js +6 -1
- package/dist/targets/javascript/jquery/client.js +1 -1
- package/dist/targets/javascript/jquery/fixtures/application-json.js +1 -1
- package/dist/targets/javascript/jquery/fixtures/headers.d.ts +1 -0
- package/dist/targets/javascript/jquery/fixtures/headers.js +2 -1
- package/dist/targets/javascript/xhr/client.js +5 -3
- package/dist/targets/javascript/xhr/fixtures/application-json.js +1 -1
- package/dist/targets/javascript/xhr/fixtures/headers.js +1 -0
- package/dist/targets/kotlin/okhttp/client.js +2 -1
- package/dist/targets/node/axios/fixtures/application-json.js +1 -1
- package/dist/targets/node/axios/fixtures/headers.js +6 -1
- package/dist/targets/node/fetch/fixtures/application-json.js +1 -1
- package/dist/targets/node/fetch/fixtures/headers.js +6 -1
- package/dist/targets/node/native/client.js +5 -15
- package/dist/targets/node/native/fixtures/application-json.js +1 -1
- package/dist/targets/node/native/fixtures/headers.js +2 -1
- package/dist/targets/node/request/fixtures/application-json.js +1 -1
- package/dist/targets/node/request/fixtures/headers.js +6 -1
- package/dist/targets/node/unirest/fixtures/application-json.js +1 -1
- package/dist/targets/node/unirest/fixtures/headers.js +2 -1
- package/dist/targets/objc/nsurlsession/client.js +4 -3
- package/dist/targets/ocaml/cohttp/client.js +3 -2
- package/dist/targets/php/curl/client.d.ts +1 -1
- package/dist/targets/php/curl/client.js +20 -24
- package/dist/targets/php/guzzle/client.js +7 -5
- package/dist/targets/php/helpers.js +4 -1
- package/dist/targets/php/http1/client.js +15 -20
- package/dist/targets/php/http2/client.js +19 -23
- package/dist/targets/powershell/common.js +3 -2
- package/dist/targets/python/helpers.js +6 -12
- package/dist/targets/python/requests/client.js +13 -12
- package/dist/targets/r/httr/client.js +40 -26
- package/dist/targets/ruby/native/client.js +2 -4
- package/dist/targets/shell/curl/client.d.ts +2 -2
- package/dist/targets/shell/curl/client.js +12 -10
- package/dist/targets/swift/nsurlsession/client.js +4 -3
- package/dist/targets/targets.d.ts +7 -7
- package/package.json +7 -7
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
3
|
exports.http2 = void 0;
|
|
15
4
|
var code_builder_1 = require("../../../helpers/code-builder");
|
|
@@ -23,12 +12,14 @@ exports.http2 = {
|
|
|
23
12
|
description: 'PHP with pecl/http v2',
|
|
24
13
|
},
|
|
25
14
|
convert: function (_a, options) {
|
|
15
|
+
var _b;
|
|
26
16
|
var postData = _a.postData, headersObj = _a.headersObj, method = _a.method, queryObj = _a.queryObj, cookiesObj = _a.cookiesObj, url = _a.url;
|
|
27
|
-
|
|
28
|
-
var
|
|
17
|
+
if (options === void 0) { options = {}; }
|
|
18
|
+
var _c = options.closingTag, closingTag = _c === void 0 ? false : _c, _d = options.indent, indent = _d === void 0 ? ' ' : _d, _e = options.noTags, noTags = _e === void 0 ? false : _e, _f = options.shortTags, shortTags = _f === void 0 ? false : _f;
|
|
19
|
+
var _g = new code_builder_1.CodeBuilder({ indent: indent }), push = _g.push, blank = _g.blank, join = _g.join;
|
|
29
20
|
var hasBody = false;
|
|
30
|
-
if (!
|
|
31
|
-
push(
|
|
21
|
+
if (!noTags) {
|
|
22
|
+
push(shortTags ? '<?' : '<?php');
|
|
32
23
|
blank();
|
|
33
24
|
}
|
|
34
25
|
push('$client = new http\\Client;');
|
|
@@ -37,7 +28,7 @@ exports.http2 = {
|
|
|
37
28
|
switch (postData.mimeType) {
|
|
38
29
|
case 'application/x-www-form-urlencoded':
|
|
39
30
|
push('$body = new http\\Message\\Body;');
|
|
40
|
-
push("$body->append(new http\\QueryString(".concat((0, helpers_1.convertType)(postData.paramsObj,
|
|
31
|
+
push("$body->append(new http\\QueryString(".concat((0, helpers_1.convertType)(postData.paramsObj, indent), "));"));
|
|
41
32
|
blank();
|
|
42
33
|
hasBody = true;
|
|
43
34
|
break;
|
|
@@ -62,13 +53,13 @@ exports.http2 = {
|
|
|
62
53
|
fields_1[name] = value;
|
|
63
54
|
}
|
|
64
55
|
});
|
|
65
|
-
var field = Object.keys(fields_1).length ? (0, helpers_1.convertType)(fields_1,
|
|
66
|
-
var formValue = files_1.length ? (0, helpers_1.convertType)(files_1,
|
|
56
|
+
var field = Object.keys(fields_1).length ? (0, helpers_1.convertType)(fields_1, indent) : 'null';
|
|
57
|
+
var formValue = files_1.length ? (0, helpers_1.convertType)(files_1, indent) : 'null';
|
|
67
58
|
push('$body = new http\\Message\\Body;');
|
|
68
59
|
push("$body->addForm(".concat(field, ", ").concat(formValue, ");"));
|
|
69
60
|
// remove the contentType header
|
|
70
61
|
if ((0, headers_1.hasHeader)(headersObj, 'content-type')) {
|
|
71
|
-
if (
|
|
62
|
+
if ((_b = (0, headers_1.getHeader)(headersObj, 'content-type')) === null || _b === void 0 ? void 0 : _b.indexOf('boundary')) {
|
|
72
63
|
var headerName = (0, headers_1.getHeaderName)(headersObj, 'content-type');
|
|
73
64
|
if (headerName) {
|
|
74
65
|
delete headersObj[headerName];
|
|
@@ -79,6 +70,11 @@ exports.http2 = {
|
|
|
79
70
|
hasBody = true;
|
|
80
71
|
break;
|
|
81
72
|
}
|
|
73
|
+
case 'application/json':
|
|
74
|
+
push('$body = new http\\Message\\Body;');
|
|
75
|
+
push("$body->append(json_encode(".concat((0, helpers_1.convertType)(postData.jsonObj, indent), "));"));
|
|
76
|
+
hasBody = true;
|
|
77
|
+
break;
|
|
82
78
|
default:
|
|
83
79
|
if (postData.text) {
|
|
84
80
|
push('$body = new http\\Message\\Body;');
|
|
@@ -94,23 +90,23 @@ exports.http2 = {
|
|
|
94
90
|
blank();
|
|
95
91
|
}
|
|
96
92
|
if (Object.keys(queryObj).length) {
|
|
97
|
-
push("$request->setQuery(new http\\QueryString(".concat((0, helpers_1.convertType)(queryObj,
|
|
93
|
+
push("$request->setQuery(new http\\QueryString(".concat((0, helpers_1.convertType)(queryObj, indent), "));"));
|
|
98
94
|
blank();
|
|
99
95
|
}
|
|
100
96
|
if (Object.keys(headersObj).length) {
|
|
101
|
-
push("$request->setHeaders(".concat((0, helpers_1.convertType)(headersObj,
|
|
97
|
+
push("$request->setHeaders(".concat((0, helpers_1.convertType)(headersObj, indent), ");"));
|
|
102
98
|
blank();
|
|
103
99
|
}
|
|
104
100
|
if (Object.keys(cookiesObj).length) {
|
|
105
101
|
blank();
|
|
106
|
-
push("$client->setCookies(".concat((0, helpers_1.convertType)(cookiesObj,
|
|
102
|
+
push("$client->setCookies(".concat((0, helpers_1.convertType)(cookiesObj, indent), ");"));
|
|
107
103
|
blank();
|
|
108
104
|
}
|
|
109
105
|
push('$client->enqueue($request)->send();');
|
|
110
106
|
push('$response = $client->getResponse();');
|
|
111
107
|
blank();
|
|
112
108
|
push('echo $response->getBody();');
|
|
113
|
-
if (!
|
|
109
|
+
if (!noTags && closingTag) {
|
|
114
110
|
blank();
|
|
115
111
|
push('?>');
|
|
116
112
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generatePowershellConvert = void 0;
|
|
4
4
|
var code_builder_1 = require("../../helpers/code-builder");
|
|
5
|
+
var escape_1 = require("../../helpers/escape");
|
|
5
6
|
var headers_1 = require("../../helpers/headers");
|
|
6
7
|
var generatePowershellConvert = function (command) {
|
|
7
8
|
var convert = function (_a) {
|
|
@@ -20,7 +21,7 @@ var generatePowershellConvert = function (command) {
|
|
|
20
21
|
headers.forEach(function (key) {
|
|
21
22
|
if (key !== 'connection') {
|
|
22
23
|
// Not allowed
|
|
23
|
-
push("$headers.Add(\"".concat(key, "\", \"").concat(headersObj[key], "\")"));
|
|
24
|
+
push("$headers.Add(\"".concat(key, "\", \"").concat((0, escape_1.escapeString)(headersObj[key], { escapeChar: '`' }), "\")"));
|
|
24
25
|
}
|
|
25
26
|
});
|
|
26
27
|
commandOptions.push('-Headers $headers');
|
|
@@ -38,7 +39,7 @@ var generatePowershellConvert = function (command) {
|
|
|
38
39
|
commandOptions.push('-WebSession $session');
|
|
39
40
|
}
|
|
40
41
|
if (postData.text) {
|
|
41
|
-
commandOptions.push("-ContentType '".concat((0, headers_1.getHeader)(allHeaders, 'content-type'), "'"));
|
|
42
|
+
commandOptions.push("-ContentType '".concat((0, escape_1.escapeString)((0, headers_1.getHeader)(allHeaders, 'content-type'), { delimiter: "'", escapeChar: '`' }), "'"));
|
|
42
43
|
commandOptions.push("-Body '".concat(postData.text, "'"));
|
|
43
44
|
}
|
|
44
45
|
push("$response = ".concat(command, " -Uri '").concat(fullUrl, "' -Method ").concat(method, " ").concat(commandOptions.join(' ')).trim());
|
|
@@ -1,29 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.literalRepresentation = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Create an string of given length filled with blank spaces
|
|
6
|
-
*
|
|
7
|
-
* @param length Length of the array to return
|
|
8
|
-
* @param str String to pad out with
|
|
9
|
-
*/
|
|
10
|
-
function buildString(length, str) {
|
|
11
|
-
return str.repeat(length);
|
|
12
|
-
}
|
|
13
4
|
/**
|
|
14
5
|
* Create a string corresponding to a Dictionary or Array literal representation with pretty option
|
|
15
6
|
* and indentation.
|
|
16
7
|
*/
|
|
17
8
|
function concatValues(concatType, values, pretty, indentation, indentLevel) {
|
|
18
|
-
var currentIndent =
|
|
19
|
-
var closingBraceIndent =
|
|
9
|
+
var currentIndent = indentation.repeat(indentLevel);
|
|
10
|
+
var closingBraceIndent = indentation.repeat(indentLevel - 1);
|
|
20
11
|
var join = pretty ? ",\n".concat(currentIndent) : ', ';
|
|
21
12
|
var openingBrace = concatType === 'object' ? '{' : '[';
|
|
22
13
|
var closingBrace = concatType === 'object' ? '}' : ']';
|
|
23
14
|
if (pretty) {
|
|
24
15
|
return "".concat(openingBrace, "\n").concat(currentIndent).concat(values.join(join), "\n").concat(closingBraceIndent).concat(closingBrace);
|
|
25
16
|
}
|
|
26
|
-
|
|
17
|
+
if (concatType === 'object' && values.length > 0) {
|
|
18
|
+
return "".concat(openingBrace, " ").concat(values.join(join), " ").concat(closingBrace);
|
|
19
|
+
}
|
|
20
|
+
return "".concat(openingBrace).concat(values.join(join)).concat(closingBrace);
|
|
27
21
|
}
|
|
28
22
|
/**
|
|
29
23
|
* Create a valid Python string of a literal value according to its type.
|
|
@@ -13,8 +13,10 @@ var __assign = (this && this.__assign) || function () {
|
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.requests = void 0;
|
|
15
15
|
var code_builder_1 = require("../../../helpers/code-builder");
|
|
16
|
+
var escape_1 = require("../../../helpers/escape");
|
|
16
17
|
var headers_1 = require("../../../helpers/headers");
|
|
17
18
|
var helpers_1 = require("../helpers");
|
|
19
|
+
var builtInMethods = ['HEAD', 'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'];
|
|
18
20
|
exports.requests = {
|
|
19
21
|
info: {
|
|
20
22
|
key: 'requests',
|
|
@@ -94,6 +96,11 @@ exports.requests = {
|
|
|
94
96
|
});
|
|
95
97
|
break;
|
|
96
98
|
default: {
|
|
99
|
+
if (postData.mimeType === 'application/x-www-form-urlencoded' && postData.paramsObj) {
|
|
100
|
+
push("payload = ".concat((0, helpers_1.literalRepresentation)(postData.paramsObj, opts)));
|
|
101
|
+
hasPayload = true;
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
97
104
|
var stringPayload = JSON.stringify(postData.text);
|
|
98
105
|
if (stringPayload) {
|
|
99
106
|
push("payload = ".concat(stringPayload));
|
|
@@ -109,7 +116,7 @@ exports.requests = {
|
|
|
109
116
|
}
|
|
110
117
|
else if (headerCount === 1) {
|
|
111
118
|
Object.keys(headers).forEach(function (header) {
|
|
112
|
-
push("headers = {\"".concat(header, "\": \"").concat(headers[header], "\"}"));
|
|
119
|
+
push("headers = {\"".concat(header, "\": \"").concat((0, escape_1.escapeForDoubleQuotes)(headers[header]), "\"}"));
|
|
113
120
|
blank();
|
|
114
121
|
});
|
|
115
122
|
}
|
|
@@ -118,10 +125,10 @@ exports.requests = {
|
|
|
118
125
|
push('headers = {');
|
|
119
126
|
Object.keys(headers).forEach(function (header) {
|
|
120
127
|
if (count_1 !== headerCount) {
|
|
121
|
-
push("\"".concat(header, "\": \"").concat(headers[header], "\","), 1);
|
|
128
|
+
push("\"".concat(header, "\": \"").concat((0, escape_1.escapeForDoubleQuotes)(headers[header]), "\","), 1);
|
|
122
129
|
}
|
|
123
130
|
else {
|
|
124
|
-
push("\"".concat(header, "\": \"").concat(headers[header], "\""), 1);
|
|
131
|
+
push("\"".concat(header, "\": \"").concat((0, escape_1.escapeForDoubleQuotes)(headers[header]), "\""), 1);
|
|
125
132
|
}
|
|
126
133
|
count_1 += 1;
|
|
127
134
|
});
|
|
@@ -129,14 +136,9 @@ exports.requests = {
|
|
|
129
136
|
blank();
|
|
130
137
|
}
|
|
131
138
|
// Construct request
|
|
132
|
-
var request
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
request = "response = requests.".concat(method.toLowerCase(), "(url");
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
request = "response = requests.request(\"".concat(method, "\", url");
|
|
139
|
-
}
|
|
139
|
+
var request = builtInMethods.includes(method)
|
|
140
|
+
? "response = requests.".concat(method.toLowerCase(), "(url")
|
|
141
|
+
: "response = requests.request(\"".concat(method, "\", url");
|
|
140
142
|
if (hasPayload) {
|
|
141
143
|
if (jsonPayload) {
|
|
142
144
|
request += ', json=payload';
|
|
@@ -154,7 +156,6 @@ exports.requests = {
|
|
|
154
156
|
request += ')';
|
|
155
157
|
push(request);
|
|
156
158
|
blank();
|
|
157
|
-
// Print response
|
|
158
159
|
push('print(response.text)');
|
|
159
160
|
return join();
|
|
160
161
|
},
|
|
@@ -1,7 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
2
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
19
|
exports.httr = void 0;
|
|
4
20
|
var code_builder_1 = require("../../../helpers/code-builder");
|
|
21
|
+
var escape_1 = require("../../../helpers/escape");
|
|
22
|
+
var headers_1 = require("../../../helpers/headers");
|
|
5
23
|
exports.httr = {
|
|
6
24
|
info: {
|
|
7
25
|
key: 'httr',
|
|
@@ -68,40 +86,36 @@ exports.httr = {
|
|
|
68
86
|
}
|
|
69
87
|
}
|
|
70
88
|
// Construct headers
|
|
71
|
-
var
|
|
72
|
-
var
|
|
73
|
-
var
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
})
|
|
89
|
+
var cookieHeader = (0, headers_1.getHeader)(allHeaders, 'cookie');
|
|
90
|
+
var acceptHeader = (0, headers_1.getHeader)(allHeaders, 'accept');
|
|
91
|
+
var setCookies = cookieHeader
|
|
92
|
+
? "set_cookies(`".concat(String(cookieHeader).replace(/;/g, '", `').replace(/` /g, '`').replace(/[=]/g, '` = "'), "\")")
|
|
93
|
+
: undefined;
|
|
94
|
+
var setAccept = acceptHeader ? "accept(\"".concat((0, escape_1.escapeForDoubleQuotes)(acceptHeader), "\")") : undefined;
|
|
95
|
+
var setContentType = "content_type(\"".concat((0, escape_1.escapeForDoubleQuotes)(postData.mimeType), "\")");
|
|
96
|
+
var otherHeaders = Object.entries(allHeaders)
|
|
97
|
+
// These headers are all handled separately:
|
|
98
|
+
.filter(function (_a) {
|
|
99
|
+
var _b = __read(_a, 1), key = _b[0];
|
|
100
|
+
return !['cookie', 'accept', 'content-type'].includes(key.toLowerCase());
|
|
101
|
+
})
|
|
102
|
+
.map(function (_a) {
|
|
103
|
+
var _b = __read(_a, 2), key = _b[0], value = _b[1];
|
|
104
|
+
return "'".concat(key, "' = '").concat((0, escape_1.escapeForSingleQuotes)(value), "'");
|
|
105
|
+
})
|
|
106
|
+
.join(', ');
|
|
107
|
+
var setHeaders = otherHeaders ? "add_headers(".concat(otherHeaders, ")") : undefined;
|
|
88
108
|
// Construct request
|
|
89
109
|
var request = "response <- VERB(\"".concat(method, "\", url");
|
|
90
110
|
if (payload) {
|
|
91
111
|
request += ', body = payload';
|
|
92
112
|
}
|
|
93
|
-
if (headers.length) {
|
|
94
|
-
request += ", add_headers(".concat(headers.join(', '), ")");
|
|
95
|
-
}
|
|
96
113
|
if (queryString.length) {
|
|
97
114
|
request += ', query = queryString';
|
|
98
115
|
}
|
|
99
|
-
|
|
100
|
-
if (
|
|
101
|
-
request +=
|
|
102
|
-
}
|
|
103
|
-
if (typeof cookies !== 'undefined') {
|
|
104
|
-
request += cookies;
|
|
116
|
+
var headerAdditions = [setHeaders, setContentType, setAccept, setCookies].filter(function (x) { return !!x; }).join(', ');
|
|
117
|
+
if (headerAdditions) {
|
|
118
|
+
request += ", ".concat(headerAdditions);
|
|
105
119
|
}
|
|
106
120
|
if (postData.text || postData.jsonObj || postData.params) {
|
|
107
121
|
request += ', encode = encode';
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.native = void 0;
|
|
4
4
|
var code_builder_1 = require("../../../helpers/code-builder");
|
|
5
|
+
var escape_1 = require("../../../helpers/escape");
|
|
5
6
|
exports.native = {
|
|
6
7
|
info: {
|
|
7
8
|
key: 'native',
|
|
@@ -14,9 +15,6 @@ exports.native = {
|
|
|
14
15
|
var _b = new code_builder_1.CodeBuilder(), push = _b.push, blank = _b.blank, join = _b.join;
|
|
15
16
|
push("require 'uri'");
|
|
16
17
|
push("require 'net/http'");
|
|
17
|
-
if (uriObj.protocol === 'https:') {
|
|
18
|
-
push("require 'openssl'");
|
|
19
|
-
}
|
|
20
18
|
blank();
|
|
21
19
|
// To support custom methods we check for the supported methods
|
|
22
20
|
// and if doesn't exist then we build a custom class for it
|
|
@@ -55,7 +53,7 @@ exports.native = {
|
|
|
55
53
|
var headers = Object.keys(allHeaders);
|
|
56
54
|
if (headers.length) {
|
|
57
55
|
headers.forEach(function (key) {
|
|
58
|
-
push("request[\"".concat(key, "\"] = '").concat(allHeaders[key], "'"));
|
|
56
|
+
push("request[\"".concat(key, "\"] = '").concat((0, escape_1.escapeForSingleQuotes)(allHeaders[key]), "'"));
|
|
59
57
|
});
|
|
60
58
|
}
|
|
61
59
|
if (postData.text) {
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import type { Client } from '../../targets';
|
|
12
12
|
export interface CurlOptions {
|
|
13
|
-
short?: boolean;
|
|
14
13
|
binary?: boolean;
|
|
15
14
|
globOff?: boolean;
|
|
16
15
|
indent?: string | false;
|
|
17
|
-
|
|
16
|
+
prettifyJson?: boolean;
|
|
17
|
+
short?: boolean;
|
|
18
18
|
}
|
|
19
19
|
export declare const curl: Client<CurlOptions>;
|
|
@@ -19,14 +19,15 @@ var shell_1 = require("../../../helpers/shell");
|
|
|
19
19
|
* This is a const record with keys that correspond to the long names and values that correspond to the short names for cURL arguments.
|
|
20
20
|
*/
|
|
21
21
|
var params = {
|
|
22
|
-
globoff: 'g',
|
|
23
|
-
request: 'X',
|
|
24
|
-
'url ': '',
|
|
25
22
|
'http1.0': '0',
|
|
26
|
-
|
|
23
|
+
'url ': '',
|
|
27
24
|
cookie: 'b',
|
|
28
|
-
form: 'F',
|
|
29
25
|
data: 'd',
|
|
26
|
+
form: 'F',
|
|
27
|
+
globoff: 'g',
|
|
28
|
+
header: 'H',
|
|
29
|
+
insecure: 'k',
|
|
30
|
+
request: 'X',
|
|
30
31
|
};
|
|
31
32
|
var getArg = function (short) { return function (longName) {
|
|
32
33
|
if (short) {
|
|
@@ -49,16 +50,13 @@ exports.curl = {
|
|
|
49
50
|
var _b;
|
|
50
51
|
var fullUrl = _a.fullUrl, method = _a.method, httpVersion = _a.httpVersion, headersObj = _a.headersObj, allHeaders = _a.allHeaders, postData = _a.postData;
|
|
51
52
|
if (options === void 0) { options = {}; }
|
|
52
|
-
var _c = options.indent, indent = _c === void 0 ? ' ' : _c, _d = options.short, short = _d === void 0 ? false : _d, _e = options.binary, binary = _e === void 0 ? false : _e, _f = options.globOff, globOff = _f === void 0 ? false : _f
|
|
53
|
+
var _c = options.indent, indent = _c === void 0 ? ' ' : _c, _d = options.short, short = _d === void 0 ? false : _d, _e = options.binary, binary = _e === void 0 ? false : _e, _f = options.globOff, globOff = _f === void 0 ? false : _f;
|
|
53
54
|
// In the interest of having nicer looking snippets JSON should be indented separately from the
|
|
54
55
|
// main command argument indentation.
|
|
55
56
|
var indentJSON = ' ';
|
|
56
|
-
var
|
|
57
|
+
var _g = new code_builder_1.CodeBuilder(__assign(__assign({}, (typeof indent === 'string' ? { indent: indent } : {})), { join: indent !== false ? " \\\n".concat(indent) : ' ' })), push = _g.push, join = _g.join;
|
|
57
58
|
var arg = getArg(short);
|
|
58
59
|
var formattedUrl = (0, shell_1.quote)(fullUrl);
|
|
59
|
-
if (escapeBrackets) {
|
|
60
|
-
formattedUrl = formattedUrl.replace(/\[/g, '\\[').replace(/\]/g, '\\]');
|
|
61
|
-
}
|
|
62
60
|
push("curl ".concat(arg('request'), " ").concat(method));
|
|
63
61
|
if (globOff) {
|
|
64
62
|
formattedUrl = unescape(formattedUrl);
|
|
@@ -68,6 +66,10 @@ exports.curl = {
|
|
|
68
66
|
if (httpVersion === 'HTTP/1.0') {
|
|
69
67
|
push(arg('http1.0'));
|
|
70
68
|
}
|
|
69
|
+
if ((0, headers_1.getHeader)(allHeaders, 'accept-encoding')) {
|
|
70
|
+
// note: there is no shorthand for this cURL option
|
|
71
|
+
push('--compressed');
|
|
72
|
+
}
|
|
71
73
|
// if multipart form data, we want to remove the boundary
|
|
72
74
|
if (postData.mimeType === 'multipart/form-data') {
|
|
73
75
|
var contentTypeHeaderName = (0, headers_1.getHeaderName)(headersObj, 'content-type');
|
|
@@ -38,9 +38,10 @@ exports.nsurlsession = {
|
|
|
38
38
|
description: "Foundation's NSURLSession request",
|
|
39
39
|
},
|
|
40
40
|
convert: function (_a, options) {
|
|
41
|
+
var _b;
|
|
41
42
|
var allHeaders = _a.allHeaders, postData = _a.postData, fullUrl = _a.fullUrl, method = _a.method;
|
|
42
43
|
var opts = __assign({ indent: ' ', pretty: true, timeout: '10' }, options);
|
|
43
|
-
var
|
|
44
|
+
var _c = new code_builder_1.CodeBuilder({ indent: opts.indent }), push = _c.push, blank = _c.blank, join = _c.join;
|
|
44
45
|
// Markers for headers to be created as litteral objects and later be set on the NSURLRequest if exist
|
|
45
46
|
var req = {
|
|
46
47
|
hasHeaders: false,
|
|
@@ -61,8 +62,8 @@ exports.nsurlsession = {
|
|
|
61
62
|
// we make it easier for the user to edit it according to his or her needs after pasting.
|
|
62
63
|
// The user can just add/remove lines adding/removing body parameters.
|
|
63
64
|
blank();
|
|
64
|
-
if (postData.params) {
|
|
65
|
-
var
|
|
65
|
+
if ((_b = postData.params) === null || _b === void 0 ? void 0 : _b.length) {
|
|
66
|
+
var _d = __read(postData.params), head = _d[0], tail = _d.slice(1);
|
|
66
67
|
push("let postData = NSMutableData(data: \"".concat(head.name, "=").concat(head.value, "\".data(using: String.Encoding.utf8)!)"));
|
|
67
68
|
tail.forEach(function (_a) {
|
|
68
69
|
var name = _a.name, value = _a.value;
|
|
@@ -4,27 +4,27 @@ import type { Merge } from 'type-fest';
|
|
|
4
4
|
export type TargetId = keyof typeof targets;
|
|
5
5
|
export type ClientId = string;
|
|
6
6
|
export interface ClientInfo {
|
|
7
|
+
description: string;
|
|
7
8
|
key: ClientId;
|
|
8
|
-
title: string;
|
|
9
9
|
link: string;
|
|
10
|
-
|
|
10
|
+
title: string;
|
|
11
11
|
}
|
|
12
12
|
export type Converter<T extends Record<string, any>> = (request: Request, options?: Merge<CodeBuilderOptions, T>) => string;
|
|
13
13
|
export interface Client<T extends Record<string, any> = Record<string, any>> {
|
|
14
|
-
info: ClientInfo;
|
|
15
14
|
convert: Converter<T>;
|
|
15
|
+
info: ClientInfo;
|
|
16
16
|
}
|
|
17
17
|
export type Extension = `.${string}` | null;
|
|
18
18
|
export interface TargetInfo {
|
|
19
|
+
cli?: string;
|
|
20
|
+
default: string;
|
|
21
|
+
extname: Extension;
|
|
19
22
|
key: TargetId;
|
|
20
23
|
title: string;
|
|
21
|
-
extname: Extension;
|
|
22
|
-
default: string;
|
|
23
|
-
cli?: string;
|
|
24
24
|
}
|
|
25
25
|
export interface Target {
|
|
26
|
-
info: TargetInfo;
|
|
27
26
|
clientsById: Record<ClientId, Client>;
|
|
27
|
+
info: TargetInfo;
|
|
28
28
|
}
|
|
29
29
|
export declare const targets: {
|
|
30
30
|
c: Target;
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "6.
|
|
2
|
+
"version": "6.1.0",
|
|
3
3
|
"name": "@readme/httpsnippet",
|
|
4
4
|
"description": "HTTP Request snippet generator for *most* languages",
|
|
5
5
|
"homepage": "https://github.com/readmeio/httpsnippet",
|
|
@@ -57,20 +57,20 @@
|
|
|
57
57
|
"test": "jest --coverage"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@readme/eslint-config": "^10.
|
|
61
|
-
"@types/eslint": "^8.40.
|
|
60
|
+
"@readme/eslint-config": "^10.6.0",
|
|
61
|
+
"@types/eslint": "^8.40.2",
|
|
62
62
|
"@types/event-stream": "^4.0.1",
|
|
63
|
-
"@types/har-format": "^1.2.
|
|
63
|
+
"@types/har-format": "^1.2.11",
|
|
64
64
|
"@types/jest": "^29.5.2",
|
|
65
|
-
"@types/node": "^20.2
|
|
65
|
+
"@types/node": "^20.3.2",
|
|
66
66
|
"@types/qs": "^6.9.7",
|
|
67
67
|
"@types/stringify-object": "^4.0.2",
|
|
68
|
-
"eslint": "^8.
|
|
68
|
+
"eslint": "^8.43.0",
|
|
69
69
|
"jest": "^29.5.0",
|
|
70
70
|
"prettier": "^2.8.8",
|
|
71
71
|
"require-directory": "^2.1.1",
|
|
72
72
|
"ts-jest": "^29.1.0",
|
|
73
|
-
"type-fest": "^3.
|
|
73
|
+
"type-fest": "^3.12.0",
|
|
74
74
|
"typescript": "^5.1.3"
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|