@readme/httpsnippet 5.1.1 → 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.
Files changed (93) hide show
  1. package/README.md +5 -3
  2. package/dist/helpers/escape.d.ts +46 -0
  3. package/dist/helpers/escape.js +101 -0
  4. package/dist/index.d.ts +11 -11
  5. package/dist/targets/c/libcurl/client.js +3 -1
  6. package/dist/targets/c/target.js +1 -0
  7. package/dist/targets/csharp/httpclient/client.js +2 -1
  8. package/dist/targets/csharp/restsharp/client.js +65 -11
  9. package/dist/targets/csharp/target.js +1 -0
  10. package/dist/targets/go/native/client.d.ts +1 -1
  11. package/dist/targets/go/native/client.js +22 -32
  12. package/dist/targets/go/target.js +1 -0
  13. package/dist/targets/java/asynchttp/client.js +2 -1
  14. package/dist/targets/java/nethttp/client.js +2 -1
  15. package/dist/targets/java/okhttp/client.js +2 -1
  16. package/dist/targets/java/unirest/client.js +2 -1
  17. package/dist/targets/javascript/axios/fixtures/application-json.js +1 -1
  18. package/dist/targets/javascript/axios/fixtures/headers.js +6 -1
  19. package/dist/targets/javascript/fetch/fixtures/application-form-encoded.d.ts +3 -3
  20. package/dist/targets/javascript/fetch/fixtures/application-json.d.ts +3 -3
  21. package/dist/targets/javascript/fetch/fixtures/application-json.js +1 -1
  22. package/dist/targets/javascript/fetch/fixtures/cookies.d.ts +2 -2
  23. package/dist/targets/javascript/fetch/fixtures/custom-method.d.ts +1 -1
  24. package/dist/targets/javascript/fetch/fixtures/full.d.ts +3 -3
  25. package/dist/targets/javascript/fetch/fixtures/headers.d.ts +3 -2
  26. package/dist/targets/javascript/fetch/fixtures/headers.js +6 -1
  27. package/dist/targets/javascript/fetch/fixtures/http-insecure.d.ts +1 -1
  28. package/dist/targets/javascript/fetch/fixtures/jsonObj-multiline.d.ts +3 -3
  29. package/dist/targets/javascript/fetch/fixtures/jsonObj-null-value.d.ts +3 -3
  30. package/dist/targets/javascript/fetch/fixtures/multipart-file.d.ts +1 -1
  31. package/dist/targets/javascript/fetch/fixtures/multipart-form-data-no-params.d.ts +2 -2
  32. package/dist/targets/javascript/fetch/fixtures/multipart-form-data.d.ts +1 -1
  33. package/dist/targets/javascript/fetch/fixtures/nested.d.ts +1 -1
  34. package/dist/targets/javascript/fetch/fixtures/postdata-malformed.d.ts +2 -2
  35. package/dist/targets/javascript/fetch/fixtures/query-encoded.d.ts +1 -1
  36. package/dist/targets/javascript/fetch/fixtures/query.d.ts +1 -1
  37. package/dist/targets/javascript/fetch/fixtures/short.d.ts +1 -1
  38. package/dist/targets/javascript/fetch/fixtures/text-plain.d.ts +3 -3
  39. package/dist/targets/javascript/jquery/client.js +1 -1
  40. package/dist/targets/javascript/jquery/fixtures/application-form-encoded.d.ts +7 -7
  41. package/dist/targets/javascript/jquery/fixtures/application-json.d.ts +7 -7
  42. package/dist/targets/javascript/jquery/fixtures/application-json.js +1 -1
  43. package/dist/targets/javascript/jquery/fixtures/cookies.d.ts +5 -5
  44. package/dist/targets/javascript/jquery/fixtures/custom-method.d.ts +5 -5
  45. package/dist/targets/javascript/jquery/fixtures/full.d.ts +6 -6
  46. package/dist/targets/javascript/jquery/fixtures/headers.d.ts +6 -5
  47. package/dist/targets/javascript/jquery/fixtures/headers.js +2 -1
  48. package/dist/targets/javascript/jquery/fixtures/http-insecure.d.ts +5 -5
  49. package/dist/targets/javascript/jquery/fixtures/jsonObj-multiline.d.ts +7 -7
  50. package/dist/targets/javascript/jquery/fixtures/jsonObj-null-value.d.ts +7 -7
  51. package/dist/targets/javascript/jquery/fixtures/multipart-data.d.ts +9 -9
  52. package/dist/targets/javascript/jquery/fixtures/multipart-file.d.ts +9 -9
  53. package/dist/targets/javascript/jquery/fixtures/multipart-form-data-no-params.d.ts +5 -5
  54. package/dist/targets/javascript/jquery/fixtures/multipart-form-data.d.ts +9 -9
  55. package/dist/targets/javascript/jquery/fixtures/nested.d.ts +5 -5
  56. package/dist/targets/javascript/jquery/fixtures/postdata-malformed.d.ts +5 -5
  57. package/dist/targets/javascript/jquery/fixtures/query-encoded.d.ts +5 -5
  58. package/dist/targets/javascript/jquery/fixtures/query.d.ts +5 -5
  59. package/dist/targets/javascript/jquery/fixtures/short.d.ts +5 -5
  60. package/dist/targets/javascript/jquery/fixtures/text-plain.d.ts +6 -6
  61. package/dist/targets/javascript/xhr/client.js +5 -3
  62. package/dist/targets/javascript/xhr/fixtures/application-json.js +1 -1
  63. package/dist/targets/javascript/xhr/fixtures/headers.js +1 -0
  64. package/dist/targets/kotlin/okhttp/client.js +2 -1
  65. package/dist/targets/node/axios/fixtures/application-json.js +1 -1
  66. package/dist/targets/node/axios/fixtures/headers.js +6 -1
  67. package/dist/targets/node/fetch/fixtures/application-json.js +1 -1
  68. package/dist/targets/node/fetch/fixtures/headers.js +6 -1
  69. package/dist/targets/node/native/client.js +5 -15
  70. package/dist/targets/node/native/fixtures/application-json.js +1 -1
  71. package/dist/targets/node/native/fixtures/headers.js +2 -1
  72. package/dist/targets/node/request/fixtures/application-json.js +1 -1
  73. package/dist/targets/node/request/fixtures/headers.js +6 -1
  74. package/dist/targets/node/unirest/fixtures/application-json.js +1 -1
  75. package/dist/targets/node/unirest/fixtures/headers.js +2 -1
  76. package/dist/targets/objc/nsurlsession/client.js +4 -3
  77. package/dist/targets/ocaml/cohttp/client.js +3 -2
  78. package/dist/targets/php/curl/client.d.ts +1 -1
  79. package/dist/targets/php/curl/client.js +20 -24
  80. package/dist/targets/php/guzzle/client.js +7 -5
  81. package/dist/targets/php/helpers.js +4 -1
  82. package/dist/targets/php/http1/client.js +15 -20
  83. package/dist/targets/php/http2/client.js +19 -23
  84. package/dist/targets/powershell/common.js +3 -2
  85. package/dist/targets/python/helpers.js +6 -12
  86. package/dist/targets/python/requests/client.js +13 -12
  87. package/dist/targets/r/httr/client.js +40 -26
  88. package/dist/targets/ruby/native/client.js +2 -4
  89. package/dist/targets/shell/curl/client.d.ts +2 -2
  90. package/dist/targets/shell/curl/client.js +12 -10
  91. package/dist/targets/swift/nsurlsession/client.js +4 -3
  92. package/dist/targets/targets.d.ts +7 -7
  93. package/package.json +12 -12
@@ -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
- // Method list pulled from their api reference https://docs.python-requests.org/en/latest/api/#requests.head
134
- if (['HEAD', 'GET', 'POST', 'PUT', 'PATCH', 'DELETE'].includes(method)) {
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 headers = [];
72
- var cookies;
73
- var accept;
74
- Object.keys(allHeaders).forEach(function (header) {
75
- if (header.toLowerCase() === 'accept') {
76
- accept = ", accept(\"".concat(allHeaders[header], "\")");
77
- }
78
- else if (header.toLowerCase() === 'cookie') {
79
- cookies = ", set_cookies(`".concat(String(allHeaders[header])
80
- .replace(/;/g, '", `')
81
- .replace(/` /g, '`')
82
- .replace(/[=]/g, '` = "'), "\")");
83
- }
84
- else if (header.toLowerCase() !== 'content-type') {
85
- headers.push("'".concat(header, "' = '").concat(allHeaders[header], "'"));
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
- request += ", content_type(\"".concat(postData.mimeType, "\")");
100
- if (typeof accept !== 'undefined') {
101
- request += accept;
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
- escapeBrackets?: boolean;
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
- header: 'H',
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, _g = options.escapeBrackets, escapeBrackets = _g === void 0 ? false : _g;
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 _h = new code_builder_1.CodeBuilder(__assign(__assign({}, (typeof indent === 'string' ? { indent: indent } : {})), { join: indent !== false ? " \\\n".concat(indent) : ' ' })), push = _h.push, join = _h.join;
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 _b = new code_builder_1.CodeBuilder({ indent: opts.indent }), push = _b.push, blank = _b.blank, join = _b.join;
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 _c = __read(postData.params), head = _c[0], tail = _c.slice(1);
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
- description: string;
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": "5.1.1",
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",
@@ -37,7 +37,7 @@
37
37
  "xmlhttprequest"
38
38
  ],
39
39
  "engines": {
40
- "node": ">=14"
40
+ "node": ">=16"
41
41
  },
42
42
  "files": [
43
43
  "dist"
@@ -57,26 +57,26 @@
57
57
  "test": "jest --coverage"
58
58
  },
59
59
  "devDependencies": {
60
- "@readme/eslint-config": "^10.5.2",
61
- "@types/eslint": "^8.37.0",
62
- "@types/event-stream": "^4.0.0",
63
- "@types/har-format": "^1.2.8",
64
- "@types/jest": "^29.5.1",
65
- "@types/node": "^18.16.3",
60
+ "@readme/eslint-config": "^10.6.0",
61
+ "@types/eslint": "^8.40.2",
62
+ "@types/event-stream": "^4.0.1",
63
+ "@types/har-format": "^1.2.11",
64
+ "@types/jest": "^29.5.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.39.0",
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.9.0",
74
- "typescript": "^5.0.4"
73
+ "type-fest": "^3.12.0",
74
+ "typescript": "^5.1.3"
75
75
  },
76
76
  "dependencies": {
77
77
  "event-stream": "4.0.1",
78
78
  "form-data": "^4.0.0",
79
- "qs": "^6.11.1",
79
+ "qs": "^6.11.2",
80
80
  "stringify-object": "^3.3.0"
81
81
  },
82
82
  "prettier": "@readme/eslint-config/prettier"