@st-gr/sail-proxy 0.9.2 → 0.9.3
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/bundled/gateway/node_modules/.package-lock.json +132 -83
- package/bundled/gateway/node_modules/axios/CHANGELOG.md +0 -42
- package/bundled/gateway/node_modules/axios/README.md +237 -237
- package/bundled/gateway/node_modules/axios/dist/axios.js +21 -113
- package/bundled/gateway/node_modules/axios/dist/axios.js.map +1 -0
- package/bundled/gateway/node_modules/axios/dist/axios.min.js +2 -2
- package/bundled/gateway/node_modules/axios/dist/axios.min.js.map +1 -1
- package/bundled/gateway/node_modules/axios/dist/browser/axios.cjs +15 -121
- package/bundled/gateway/node_modules/axios/dist/browser/axios.cjs.map +1 -0
- package/bundled/gateway/node_modules/axios/dist/esm/axios.js +15 -121
- package/bundled/gateway/node_modules/axios/dist/esm/axios.js.map +1 -0
- package/bundled/gateway/node_modules/axios/dist/esm/axios.min.js +2 -2
- package/bundled/gateway/node_modules/axios/dist/esm/axios.min.js.map +1 -1
- package/bundled/gateway/node_modules/axios/dist/node/axios.cjs +107 -249
- package/bundled/gateway/node_modules/axios/dist/node/axios.cjs.map +1 -0
- package/bundled/gateway/node_modules/axios/index.d.cts +3 -8
- package/bundled/gateway/node_modules/axios/index.d.ts +1 -4
- package/bundled/gateway/node_modules/axios/lib/adapters/fetch.js +0 -79
- package/bundled/gateway/node_modules/axios/lib/adapters/http.js +118 -62
- package/bundled/gateway/node_modules/axios/lib/core/Axios.js +0 -1
- package/bundled/gateway/node_modules/axios/lib/core/AxiosHeaders.js +2 -2
- package/bundled/gateway/node_modules/axios/lib/defaults/transitional.js +0 -1
- package/bundled/gateway/node_modules/axios/lib/env/data.js +1 -1
- package/bundled/gateway/node_modules/axios/lib/helpers/buildURL.js +1 -1
- package/bundled/gateway/node_modules/axios/lib/helpers/formDataToStream.js +2 -2
- package/bundled/gateway/node_modules/axios/lib/helpers/resolveConfig.js +6 -12
- package/bundled/gateway/node_modules/axios/lib/helpers/toFormData.js +1 -1
- package/bundled/gateway/node_modules/axios/lib/utils.js +2 -23
- package/bundled/gateway/node_modules/axios/package.json +13 -29
- package/bundled/gateway/node_modules/body-parser/HISTORY.md +0 -14
- package/bundled/gateway/node_modules/body-parser/SECURITY.md +25 -0
- package/bundled/gateway/node_modules/body-parser/lib/types/json.js +5 -1
- package/bundled/gateway/node_modules/body-parser/lib/types/urlencoded.js +15 -7
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/.editorconfig +46 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/.eslintrc +38 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/.github/FUNDING.yml +12 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/.nycrc +13 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/CHANGELOG.md +600 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/LICENSE.md +29 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/README.md +709 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/dist/qs.js +90 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/lib/formats.js +23 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/lib/index.js +11 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/lib/parse.js +296 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/lib/stringify.js +351 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/lib/utils.js +265 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/package.json +91 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/test/empty-keys-cases.js +267 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/test/parse.js +1170 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/test/stringify.js +1298 -0
- package/bundled/gateway/node_modules/body-parser/node_modules/qs/test/utils.js +136 -0
- package/bundled/gateway/node_modules/body-parser/package.json +10 -9
- package/bundled/gateway/node_modules/cookie/index.js +35 -24
- package/bundled/gateway/node_modules/cookie/package.json +1 -1
- package/bundled/gateway/node_modules/cookie-signature/History.md +1 -5
- package/bundled/gateway/node_modules/cookie-signature/index.js +6 -6
- package/bundled/gateway/node_modules/cookie-signature/package.json +2 -2
- package/bundled/gateway/node_modules/express/History.md +0 -43
- package/bundled/gateway/node_modules/express/lib/response.js +0 -1
- package/bundled/gateway/node_modules/express/lib/utils.js +1 -2
- package/bundled/gateway/node_modules/express/node_modules/qs/.editorconfig +43 -0
- package/bundled/gateway/node_modules/express/node_modules/qs/.eslintrc +38 -0
- package/bundled/gateway/node_modules/express/node_modules/qs/.github/FUNDING.yml +12 -0
- package/bundled/gateway/node_modules/express/node_modules/qs/.nycrc +13 -0
- package/bundled/gateway/node_modules/express/node_modules/qs/CHANGELOG.md +546 -0
- package/bundled/gateway/node_modules/express/node_modules/qs/LICENSE.md +29 -0
- package/bundled/gateway/node_modules/express/node_modules/qs/README.md +625 -0
- package/bundled/gateway/node_modules/express/node_modules/qs/dist/qs.js +2054 -0
- package/bundled/gateway/node_modules/express/node_modules/qs/lib/formats.js +23 -0
- package/bundled/gateway/node_modules/express/node_modules/qs/lib/index.js +11 -0
- package/bundled/gateway/node_modules/express/node_modules/qs/lib/parse.js +263 -0
- package/bundled/gateway/node_modules/express/node_modules/qs/lib/stringify.js +326 -0
- package/bundled/gateway/node_modules/express/node_modules/qs/lib/utils.js +252 -0
- package/bundled/gateway/node_modules/express/node_modules/qs/package.json +77 -0
- package/bundled/gateway/node_modules/express/node_modules/qs/test/parse.js +855 -0
- package/bundled/gateway/node_modules/express/node_modules/qs/test/stringify.js +909 -0
- package/bundled/gateway/node_modules/express/node_modules/qs/test/utils.js +136 -0
- package/bundled/gateway/node_modules/express/package.json +17 -21
- package/bundled/gateway/node_modules/finalhandler/HISTORY.md +0 -21
- package/bundled/gateway/node_modules/finalhandler/README.md +2 -2
- package/bundled/gateway/node_modules/finalhandler/index.js +2 -7
- package/bundled/gateway/node_modules/finalhandler/node_modules/encodeurl/HISTORY.md +14 -0
- package/bundled/gateway/node_modules/finalhandler/node_modules/encodeurl/LICENSE +22 -0
- package/bundled/gateway/node_modules/finalhandler/node_modules/encodeurl/README.md +128 -0
- package/bundled/gateway/node_modules/finalhandler/node_modules/encodeurl/index.js +60 -0
- package/bundled/gateway/node_modules/finalhandler/node_modules/encodeurl/package.json +40 -0
- package/bundled/gateway/node_modules/finalhandler/package.json +9 -10
- package/bundled/gateway/node_modules/http-errors/HISTORY.md +0 -6
- package/bundled/gateway/node_modules/http-errors/index.js +3 -4
- package/bundled/gateway/node_modules/http-errors/package.json +8 -12
- package/bundled/gateway/node_modules/qs/CHANGELOG.md +0 -16
- package/bundled/gateway/node_modules/qs/README.md +1 -1
- package/bundled/gateway/node_modules/qs/dist/qs.js +15 -15
- package/bundled/gateway/node_modules/qs/eslint.config.mjs +0 -1
- package/bundled/gateway/node_modules/qs/lib/parse.js +24 -54
- package/bundled/gateway/node_modules/qs/lib/stringify.js +4 -11
- package/bundled/gateway/node_modules/qs/package.json +3 -3
- package/bundled/gateway/node_modules/qs/test/parse.js +0 -135
- package/bundled/gateway/node_modules/qs/test/stringify.js +0 -138
- package/bundled/gateway/node_modules/qs/test/utils.js +3 -31
- package/bundled/gateway/node_modules/raw-body/HISTORY.md +308 -0
- package/bundled/gateway/node_modules/raw-body/SECURITY.md +24 -0
- package/bundled/gateway/node_modules/raw-body/package.json +7 -5
- package/bundled/gateway/node_modules/send/HISTORY.md +7 -19
- package/bundled/gateway/node_modules/send/node_modules/encodeurl/HISTORY.md +14 -0
- package/bundled/gateway/node_modules/send/node_modules/encodeurl/LICENSE +22 -0
- package/bundled/gateway/node_modules/send/node_modules/encodeurl/README.md +128 -0
- package/bundled/gateway/node_modules/send/node_modules/encodeurl/index.js +60 -0
- package/bundled/gateway/node_modules/send/node_modules/encodeurl/package.json +40 -0
- package/bundled/gateway/node_modules/send/package.json +6 -6
- package/bundled/gateway/node_modules/serve-static/HISTORY.md +0 -16
- package/bundled/gateway/node_modules/serve-static/node_modules/encodeurl/HISTORY.md +14 -0
- package/bundled/gateway/node_modules/serve-static/node_modules/encodeurl/LICENSE +22 -0
- package/bundled/gateway/node_modules/serve-static/node_modules/encodeurl/README.md +128 -0
- package/bundled/gateway/node_modules/serve-static/node_modules/encodeurl/index.js +60 -0
- package/bundled/gateway/node_modules/serve-static/node_modules/encodeurl/package.json +40 -0
- package/bundled/gateway/node_modules/serve-static/package.json +3 -3
- package/bundled/gateway/node_modules/statuses/HISTORY.md +0 -5
- package/bundled/gateway/node_modules/statuses/README.md +0 -3
- package/bundled/gateway/node_modules/statuses/package.json +7 -7
- package/bundled/gateway/package-lock.json +137 -88
- package/bundled/gateway/package.json +23 -5
- package/bundled/ollama/node_modules/.package-lock.json +104 -85
- package/bundled/ollama/node_modules/axios/CHANGELOG.md +0 -42
- package/bundled/ollama/node_modules/axios/README.md +237 -237
- package/bundled/ollama/node_modules/axios/dist/axios.js +21 -113
- package/bundled/ollama/node_modules/axios/dist/axios.js.map +1 -0
- package/bundled/ollama/node_modules/axios/dist/axios.min.js +2 -2
- package/bundled/ollama/node_modules/axios/dist/axios.min.js.map +1 -1
- package/bundled/ollama/node_modules/axios/dist/browser/axios.cjs +15 -121
- package/bundled/ollama/node_modules/axios/dist/browser/axios.cjs.map +1 -0
- package/bundled/ollama/node_modules/axios/dist/esm/axios.js +15 -121
- package/bundled/ollama/node_modules/axios/dist/esm/axios.js.map +1 -0
- package/bundled/ollama/node_modules/axios/dist/esm/axios.min.js +2 -2
- package/bundled/ollama/node_modules/axios/dist/esm/axios.min.js.map +1 -1
- package/bundled/ollama/node_modules/axios/dist/node/axios.cjs +107 -249
- package/bundled/ollama/node_modules/axios/dist/node/axios.cjs.map +1 -0
- package/bundled/ollama/node_modules/axios/index.d.cts +3 -8
- package/bundled/ollama/node_modules/axios/index.d.ts +1 -4
- package/bundled/ollama/node_modules/axios/lib/adapters/fetch.js +0 -79
- package/bundled/ollama/node_modules/axios/lib/adapters/http.js +118 -62
- package/bundled/ollama/node_modules/axios/lib/core/Axios.js +0 -1
- package/bundled/ollama/node_modules/axios/lib/core/AxiosHeaders.js +2 -2
- package/bundled/ollama/node_modules/axios/lib/defaults/transitional.js +0 -1
- package/bundled/ollama/node_modules/axios/lib/env/data.js +1 -1
- package/bundled/ollama/node_modules/axios/lib/helpers/buildURL.js +1 -1
- package/bundled/ollama/node_modules/axios/lib/helpers/formDataToStream.js +2 -2
- package/bundled/ollama/node_modules/axios/lib/helpers/resolveConfig.js +6 -12
- package/bundled/ollama/node_modules/axios/lib/helpers/toFormData.js +1 -1
- package/bundled/ollama/node_modules/axios/lib/utils.js +2 -23
- package/bundled/ollama/node_modules/axios/package.json +13 -29
- package/bundled/ollama/node_modules/body-parser/HISTORY.md +0 -14
- package/bundled/ollama/node_modules/body-parser/SECURITY.md +25 -0
- package/bundled/ollama/node_modules/body-parser/lib/types/json.js +5 -1
- package/bundled/ollama/node_modules/body-parser/lib/types/urlencoded.js +15 -7
- package/bundled/ollama/node_modules/body-parser/package.json +10 -9
- package/bundled/ollama/node_modules/cookie/index.js +35 -24
- package/bundled/ollama/node_modules/cookie/package.json +1 -1
- package/bundled/ollama/node_modules/cookie-signature/History.md +1 -5
- package/bundled/ollama/node_modules/cookie-signature/index.js +6 -6
- package/bundled/ollama/node_modules/cookie-signature/package.json +2 -2
- package/bundled/ollama/node_modules/express/History.md +0 -43
- package/bundled/ollama/node_modules/express/lib/response.js +0 -1
- package/bundled/ollama/node_modules/express/lib/utils.js +1 -2
- package/bundled/ollama/node_modules/express/package.json +17 -21
- package/bundled/ollama/node_modules/finalhandler/HISTORY.md +0 -21
- package/bundled/ollama/node_modules/finalhandler/README.md +2 -2
- package/bundled/ollama/node_modules/finalhandler/index.js +2 -7
- package/bundled/ollama/node_modules/finalhandler/node_modules/encodeurl/HISTORY.md +14 -0
- package/bundled/ollama/node_modules/finalhandler/node_modules/encodeurl/LICENSE +22 -0
- package/bundled/ollama/node_modules/finalhandler/node_modules/encodeurl/README.md +128 -0
- package/bundled/ollama/node_modules/finalhandler/node_modules/encodeurl/index.js +60 -0
- package/bundled/ollama/node_modules/finalhandler/node_modules/encodeurl/package.json +40 -0
- package/bundled/ollama/node_modules/finalhandler/package.json +9 -10
- package/bundled/ollama/node_modules/http-errors/HISTORY.md +0 -6
- package/bundled/ollama/node_modules/http-errors/index.js +3 -4
- package/bundled/ollama/node_modules/http-errors/package.json +8 -12
- package/bundled/ollama/node_modules/qs/CHANGELOG.md +0 -16
- package/bundled/ollama/node_modules/qs/README.md +1 -1
- package/bundled/ollama/node_modules/qs/dist/qs.js +15 -15
- package/bundled/ollama/node_modules/qs/eslint.config.mjs +0 -1
- package/bundled/ollama/node_modules/qs/lib/parse.js +24 -54
- package/bundled/ollama/node_modules/qs/lib/stringify.js +4 -11
- package/bundled/ollama/node_modules/qs/package.json +3 -3
- package/bundled/ollama/node_modules/qs/test/parse.js +0 -135
- package/bundled/ollama/node_modules/qs/test/stringify.js +0 -138
- package/bundled/ollama/node_modules/qs/test/utils.js +3 -31
- package/bundled/ollama/node_modules/raw-body/HISTORY.md +308 -0
- package/bundled/ollama/node_modules/raw-body/SECURITY.md +24 -0
- package/bundled/ollama/node_modules/raw-body/package.json +7 -5
- package/bundled/ollama/node_modules/send/HISTORY.md +7 -19
- package/bundled/ollama/node_modules/send/node_modules/encodeurl/HISTORY.md +14 -0
- package/bundled/ollama/node_modules/send/node_modules/encodeurl/LICENSE +22 -0
- package/bundled/ollama/node_modules/send/node_modules/encodeurl/README.md +128 -0
- package/bundled/ollama/node_modules/send/node_modules/encodeurl/index.js +60 -0
- package/bundled/ollama/node_modules/send/node_modules/encodeurl/package.json +40 -0
- package/bundled/ollama/node_modules/send/package.json +6 -6
- package/bundled/ollama/node_modules/serve-static/HISTORY.md +0 -16
- package/bundled/ollama/node_modules/serve-static/node_modules/encodeurl/HISTORY.md +14 -0
- package/bundled/ollama/node_modules/serve-static/node_modules/encodeurl/LICENSE +22 -0
- package/bundled/ollama/node_modules/serve-static/node_modules/encodeurl/README.md +128 -0
- package/bundled/ollama/node_modules/serve-static/node_modules/encodeurl/index.js +60 -0
- package/bundled/ollama/node_modules/serve-static/node_modules/encodeurl/package.json +40 -0
- package/bundled/ollama/node_modules/serve-static/package.json +3 -3
- package/bundled/ollama/node_modules/statuses/HISTORY.md +0 -5
- package/bundled/ollama/node_modules/statuses/README.md +0 -3
- package/bundled/ollama/node_modules/statuses/package.json +7 -7
- package/bundled/ollama/package-lock.json +107 -88
- package/bundled/ollama/package.json +24 -4
- package/node_modules/@sap-llm-gateway/service-key-parser/package.json +1 -1
- package/package.json +2 -2
- package/bundled/gateway/node_modules/axios/lib/helpers/Http2Sessions.js +0 -119
- package/bundled/ollama/node_modules/axios/lib/helpers/Http2Sessions.js +0 -119
|
@@ -67,10 +67,10 @@ var parseValues = function parseQueryStringValues(str, options) {
|
|
|
67
67
|
var limit = options.parameterLimit === Infinity ? void undefined : options.parameterLimit;
|
|
68
68
|
var parts = cleanStr.split(
|
|
69
69
|
options.delimiter,
|
|
70
|
-
options.throwOnLimitExceeded
|
|
70
|
+
options.throwOnLimitExceeded ? limit + 1 : limit
|
|
71
71
|
);
|
|
72
72
|
|
|
73
|
-
if (options.throwOnLimitExceeded &&
|
|
73
|
+
if (options.throwOnLimitExceeded && parts.length > limit) {
|
|
74
74
|
throw new RangeError('Parameter limit exceeded. Only ' + limit + ' parameter' + (limit === 1 ? '' : 's') + ' allowed.');
|
|
75
75
|
}
|
|
76
76
|
|
|
@@ -214,12 +214,9 @@ var parseObject = function (chain, val, options, valuesParsed) {
|
|
|
214
214
|
return leaf;
|
|
215
215
|
};
|
|
216
216
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
var splitKeyIntoSegments = function splitKeyIntoSegments(originalKey, options) {
|
|
220
|
-
var key = options.allowDots ? originalKey.replace(/\.([^.[]+)/g, '[$1]') : originalKey;
|
|
217
|
+
var splitKeyIntoSegments = function splitKeyIntoSegments(givenKey, options) {
|
|
218
|
+
var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey;
|
|
221
219
|
|
|
222
|
-
// depth <= 0 keeps the whole key as one segment
|
|
223
220
|
if (options.depth <= 0) {
|
|
224
221
|
if (!options.plainObjects && has.call(Object.prototype, key)) {
|
|
225
222
|
if (!options.allowPrototypes) {
|
|
@@ -230,11 +227,14 @@ var splitKeyIntoSegments = function splitKeyIntoSegments(originalKey, options) {
|
|
|
230
227
|
return [key];
|
|
231
228
|
}
|
|
232
229
|
|
|
233
|
-
var
|
|
230
|
+
var brackets = /(\[[^[\]]*])/;
|
|
231
|
+
var child = /(\[[^[\]]*])/g;
|
|
232
|
+
|
|
233
|
+
var segment = brackets.exec(key);
|
|
234
|
+
var parent = segment ? key.slice(0, segment.index) : key;
|
|
235
|
+
|
|
236
|
+
var keys = [];
|
|
234
237
|
|
|
235
|
-
// parent before the first '[' (may be empty if key starts with '[')
|
|
236
|
-
var first = key.indexOf('[');
|
|
237
|
-
var parent = first >= 0 ? key.slice(0, first) : key;
|
|
238
238
|
if (parent) {
|
|
239
239
|
if (!options.plainObjects && has.call(Object.prototype, parent)) {
|
|
240
240
|
if (!options.allowPrototypes) {
|
|
@@ -242,62 +242,32 @@ var splitKeyIntoSegments = function splitKeyIntoSegments(originalKey, options) {
|
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
|
|
245
|
+
keys[keys.length] = parent;
|
|
246
246
|
}
|
|
247
247
|
|
|
248
|
-
var
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
while (open >= 0 && collected < options.depth) {
|
|
253
|
-
var level = 1;
|
|
254
|
-
var i = open + 1;
|
|
255
|
-
var close = -1;
|
|
256
|
-
|
|
257
|
-
// balance nested '[' and ']' inside this bracket group using a nesting level counter
|
|
258
|
-
while (i < n && close < 0) {
|
|
259
|
-
var cu = key.charCodeAt(i);
|
|
260
|
-
if (cu === 0x5B) { // '['
|
|
261
|
-
level += 1;
|
|
262
|
-
} else if (cu === 0x5D) { // ']'
|
|
263
|
-
level -= 1;
|
|
264
|
-
if (level === 0) {
|
|
265
|
-
close = i; // found matching close; loop will exit by condition
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
i += 1;
|
|
269
|
-
}
|
|
248
|
+
var i = 0;
|
|
249
|
+
while ((segment = child.exec(key)) !== null && i < options.depth) {
|
|
250
|
+
i += 1;
|
|
270
251
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
var seg = key.slice(open, close + 1);
|
|
279
|
-
// prototype guard for the content of this group
|
|
280
|
-
var content = seg.slice(1, -1);
|
|
281
|
-
if (!options.plainObjects && has.call(Object.prototype, content) && !options.allowPrototypes) {
|
|
282
|
-
return;
|
|
252
|
+
var segmentContent = segment[1].slice(1, -1);
|
|
253
|
+
if (!options.plainObjects && has.call(Object.prototype, segmentContent)) {
|
|
254
|
+
if (!options.allowPrototypes) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
283
257
|
}
|
|
284
258
|
|
|
285
|
-
|
|
286
|
-
collected += 1;
|
|
287
|
-
|
|
288
|
-
// find the next '[' after this balanced group
|
|
289
|
-
open = key.indexOf('[', close + 1);
|
|
259
|
+
keys[keys.length] = segment[1];
|
|
290
260
|
}
|
|
291
261
|
|
|
292
|
-
if (
|
|
262
|
+
if (segment) {
|
|
293
263
|
if (options.strictDepth === true) {
|
|
294
264
|
throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');
|
|
295
265
|
}
|
|
296
266
|
|
|
297
|
-
|
|
267
|
+
keys[keys.length] = '[' + key.slice(segment.index) + ']';
|
|
298
268
|
}
|
|
299
269
|
|
|
300
|
-
return
|
|
270
|
+
return keys;
|
|
301
271
|
};
|
|
302
272
|
|
|
303
273
|
var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {
|
|
@@ -118,7 +118,7 @@ var stringify = function stringify(
|
|
|
118
118
|
|
|
119
119
|
if (obj === null) {
|
|
120
120
|
if (strictNullHandling) {
|
|
121
|
-
return
|
|
121
|
+
return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
obj = '';
|
|
@@ -142,9 +142,7 @@ var stringify = function stringify(
|
|
|
142
142
|
if (generateArrayPrefix === 'comma' && isArray(obj)) {
|
|
143
143
|
// we need to join elements in
|
|
144
144
|
if (encodeValuesOnly && encoder) {
|
|
145
|
-
obj = utils.maybeMap(obj,
|
|
146
|
-
return v == null ? v : encoder(v);
|
|
147
|
-
});
|
|
145
|
+
obj = utils.maybeMap(obj, encoder);
|
|
148
146
|
}
|
|
149
147
|
objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];
|
|
150
148
|
} else if (isArray(filter)) {
|
|
@@ -314,11 +312,6 @@ module.exports = function (object, opts) {
|
|
|
314
312
|
var sideChannel = getSideChannel();
|
|
315
313
|
for (var i = 0; i < objKeys.length; ++i) {
|
|
316
314
|
var key = objKeys[i];
|
|
317
|
-
|
|
318
|
-
if (typeof key === 'undefined' || key === null) {
|
|
319
|
-
continue;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
315
|
var value = obj[key];
|
|
323
316
|
|
|
324
317
|
if (options.skipNulls && value === null) {
|
|
@@ -352,10 +345,10 @@ module.exports = function (object, opts) {
|
|
|
352
345
|
if (options.charsetSentinel) {
|
|
353
346
|
if (options.charset === 'iso-8859-1') {
|
|
354
347
|
// encodeURIComponent('✓'), the "numeric entity" representation of a checkmark
|
|
355
|
-
prefix += 'utf8=%26%2310003%3B'
|
|
348
|
+
prefix += 'utf8=%26%2310003%3B&';
|
|
356
349
|
} else {
|
|
357
350
|
// encodeURIComponent('✓')
|
|
358
|
-
prefix += 'utf8=%E2%9C%93'
|
|
351
|
+
prefix += 'utf8=%E2%9C%93&';
|
|
359
352
|
}
|
|
360
353
|
}
|
|
361
354
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "qs",
|
|
3
3
|
"description": "A querystring parser that supports nesting and arrays, with a depth limit",
|
|
4
4
|
"homepage": "https://github.com/ljharb/qs",
|
|
5
|
-
"version": "6.15.
|
|
5
|
+
"version": "6.15.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/ljharb/qs.git"
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@browserify/envify": "^6.0.0",
|
|
38
38
|
"@browserify/uglifyify": "^6.0.0",
|
|
39
|
-
"@ljharb/eslint-config": "^22.
|
|
39
|
+
"@ljharb/eslint-config": "^22.1.3",
|
|
40
40
|
"browserify": "^16.5.2",
|
|
41
41
|
"bundle-collapser": "^1.4.0",
|
|
42
42
|
"common-shakeify": "~1.0.0",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"has-property-descriptors": "^1.0.2",
|
|
52
52
|
"has-proto": "^1.2.0",
|
|
53
53
|
"has-symbols": "^1.1.0",
|
|
54
|
-
"iconv-lite": "^0.5.
|
|
54
|
+
"iconv-lite": "^0.5.1",
|
|
55
55
|
"in-publish": "^2.0.1",
|
|
56
56
|
"jackspeak": "=2.1.1",
|
|
57
57
|
"jiti": "^0.0.0",
|
|
@@ -210,21 +210,6 @@ test('parse()', function (t) {
|
|
|
210
210
|
t.test('uses original key when depth = 0', function (st) {
|
|
211
211
|
st.deepEqual(qs.parse('a[0]=b&a[1]=c', { depth: 0 }), { 'a[0]': 'b', 'a[1]': 'c' });
|
|
212
212
|
st.deepEqual(qs.parse('a[0][0]=b&a[0][1]=c&a[1]=d&e=2', { depth: 0 }), { 'a[0][0]': 'b', 'a[0][1]': 'c', 'a[1]': 'd', e: '2' });
|
|
213
|
-
st.deepEqual(qs.parse('a.b=c', { depth: 0, allowDots: true }), { 'a[b]': 'c' }, 'normalizes dots before applying depth-0 behavior');
|
|
214
|
-
st.deepEqual(qs.parse('toString=foo', { depth: 0 }), {}, 'respects prototype guard at depth 0');
|
|
215
|
-
st.deepEqual(qs.parse('toString=foo', { depth: 0, allowPrototypes: true }), { toString: 'foo' }, 'allows prototypes at depth 0 when enabled');
|
|
216
|
-
st.end();
|
|
217
|
-
});
|
|
218
|
-
|
|
219
|
-
t.test('ignores prototype keys when depth = 0 and allowPrototypes is false', function (st) {
|
|
220
|
-
st.deepEqual(qs.parse('toString=foo', { depth: 0 }), {});
|
|
221
|
-
st.deepEqual(qs.parse('hasOwnProperty=bar', { depth: 0 }), {});
|
|
222
|
-
st.deepEqual(qs.parse('toString=foo&a=b', { depth: 0 }), { a: 'b' });
|
|
223
|
-
st.end();
|
|
224
|
-
});
|
|
225
|
-
|
|
226
|
-
t.test('allows prototype keys when depth = 0 and allowPrototypes is true', function (st) {
|
|
227
|
-
st.deepEqual(qs.parse('toString=foo', { depth: 0, allowPrototypes: true }), { toString: 'foo' });
|
|
228
213
|
st.end();
|
|
229
214
|
});
|
|
230
215
|
|
|
@@ -266,52 +251,6 @@ test('parse()', function (t) {
|
|
|
266
251
|
st.end();
|
|
267
252
|
});
|
|
268
253
|
|
|
269
|
-
t.test('parses keys with literal [] inside a bracket group (#493)', function (st) {
|
|
270
|
-
// A bracket pair inside a bracket group should be treated literally as part of the key
|
|
271
|
-
st.deepEqual(
|
|
272
|
-
qs.parse('search[withbracket[]]=foobar'),
|
|
273
|
-
{ search: { 'withbracket[]': 'foobar' } },
|
|
274
|
-
'treats inner [] literally when inside a bracket group'
|
|
275
|
-
);
|
|
276
|
-
|
|
277
|
-
// Single-level variant
|
|
278
|
-
st.deepEqual(
|
|
279
|
-
qs.parse('a[b[]]=c'),
|
|
280
|
-
{ a: { 'b[]': 'c' } },
|
|
281
|
-
'keeps "b[]" as a literal key'
|
|
282
|
-
);
|
|
283
|
-
|
|
284
|
-
// Nested with an array push on the outer level
|
|
285
|
-
st.deepEqual(
|
|
286
|
-
qs.parse('list[][x[]]=y'),
|
|
287
|
-
{ list: [{ 'x[]': 'y' }] },
|
|
288
|
-
'preserves inner [] while still treating outer [] as array push'
|
|
289
|
-
);
|
|
290
|
-
|
|
291
|
-
// Multiple nested bracket pairs: inner [] remains literal as part of the key
|
|
292
|
-
st.deepEqual(
|
|
293
|
-
qs.parse('a[b[c[]]]=d'),
|
|
294
|
-
{ a: { 'b[c[]]': 'd' } },
|
|
295
|
-
'treats "b[c[]]" as a literal key inside the bracket group'
|
|
296
|
-
);
|
|
297
|
-
|
|
298
|
-
// Depth limits with literal brackets: preserve inner [] while limiting bracket-group parsing
|
|
299
|
-
st.deepEqual(
|
|
300
|
-
qs.parse('a[b[c[]]][d]=e', { depth: 1 }),
|
|
301
|
-
{ a: { 'b[c[]]': { '[d]': 'e' } } },
|
|
302
|
-
'respects depth: 1 and preserves literal inner [] in the parsed key'
|
|
303
|
-
);
|
|
304
|
-
|
|
305
|
-
// Unterminated inner bracket group is wrapped as a literal remainder segment
|
|
306
|
-
st.deepEqual(
|
|
307
|
-
qs.parse('a[[]b=c'),
|
|
308
|
-
{ a: { '[[]b': 'c' } },
|
|
309
|
-
'handles unterminated inner bracket groups without throwing'
|
|
310
|
-
);
|
|
311
|
-
|
|
312
|
-
st.end();
|
|
313
|
-
});
|
|
314
|
-
|
|
315
254
|
t.test('allows to specify array indices', function (st) {
|
|
316
255
|
st.deepEqual(qs.parse('a[1]=c&a[0]=b&a[2]=d'), { a: ['b', 'c', 'd'] });
|
|
317
256
|
st.deepEqual(qs.parse('a[1]=c&a[0]=b'), { a: ['b', 'c'] });
|
|
@@ -1135,15 +1074,6 @@ test('parse()', function (t) {
|
|
|
1135
1074
|
};
|
|
1136
1075
|
|
|
1137
1076
|
st.deepEqual(qs.parse('KeY=vAlUe', { decoder: decoder }), { key: 'VALUE' });
|
|
1138
|
-
|
|
1139
|
-
var noopDecoder = function () { return 'x'; };
|
|
1140
|
-
noopDecoder();
|
|
1141
|
-
st['throws'](
|
|
1142
|
-
function () { decoder('x', noopDecoder, 'utf-8', 'unknown'); },
|
|
1143
|
-
'this should never happen! type: unknown',
|
|
1144
|
-
'decoder throws for unexpected type'
|
|
1145
|
-
);
|
|
1146
|
-
|
|
1147
1077
|
st.end();
|
|
1148
1078
|
});
|
|
1149
1079
|
|
|
@@ -1173,14 +1103,6 @@ test('parse()', function (t) {
|
|
|
1173
1103
|
new RangeError('Parameter limit exceeded. Only 3 parameters allowed.'),
|
|
1174
1104
|
'throws error when parameter limit is exceeded'
|
|
1175
1105
|
);
|
|
1176
|
-
|
|
1177
|
-
sst['throws'](
|
|
1178
|
-
function () {
|
|
1179
|
-
qs.parse('a=1&b=2', { parameterLimit: 1, throwOnLimitExceeded: true });
|
|
1180
|
-
},
|
|
1181
|
-
new RangeError('Parameter limit exceeded. Only 1 parameter allowed.'),
|
|
1182
|
-
'throws error with singular "parameter" when parameterLimit is 1'
|
|
1183
|
-
);
|
|
1184
1106
|
sst.end();
|
|
1185
1107
|
});
|
|
1186
1108
|
|
|
@@ -1202,12 +1124,6 @@ test('parse()', function (t) {
|
|
|
1202
1124
|
sst.end();
|
|
1203
1125
|
});
|
|
1204
1126
|
|
|
1205
|
-
st.test('allows unlimited parameters when parameterLimit is Infinity and throwOnLimitExceeded is true', function (sst) {
|
|
1206
|
-
var result = qs.parse('a=1&b=2&c=3&d=4&e=5&f=6', { parameterLimit: Infinity, throwOnLimitExceeded: true });
|
|
1207
|
-
sst.deepEqual(result, { a: '1', b: '2', c: '3', d: '4', e: '5', f: '6' }, 'parses all parameters without truncation or throwing');
|
|
1208
|
-
sst.end();
|
|
1209
|
-
});
|
|
1210
|
-
|
|
1211
1127
|
st.end();
|
|
1212
1128
|
});
|
|
1213
1129
|
|
|
@@ -1273,14 +1189,6 @@ test('parse()', function (t) {
|
|
|
1273
1189
|
'throws error when a sparse index exceeds arrayLimit'
|
|
1274
1190
|
);
|
|
1275
1191
|
|
|
1276
|
-
sst['throws'](
|
|
1277
|
-
function () {
|
|
1278
|
-
qs.parse('a[2]=b', { arrayLimit: 1, throwOnLimitExceeded: true });
|
|
1279
|
-
},
|
|
1280
|
-
new RangeError('Array limit exceeded. Only 1 element allowed in an array.'),
|
|
1281
|
-
'throws error with singular "element" when arrayLimit is 1'
|
|
1282
|
-
);
|
|
1283
|
-
|
|
1284
1192
|
sst.end();
|
|
1285
1193
|
});
|
|
1286
1194
|
|
|
@@ -1298,17 +1206,6 @@ test('parse()', function (t) {
|
|
|
1298
1206
|
sst.end();
|
|
1299
1207
|
});
|
|
1300
1208
|
|
|
1301
|
-
st.test('throws when duplicate bracket keys exceed arrayLimit with throwOnLimitExceeded', function (sst) {
|
|
1302
|
-
sst['throws'](
|
|
1303
|
-
function () {
|
|
1304
|
-
qs.parse('a[]=1&a[]=2&a[]=3&a[]=4&a[]=5&a[]=6', { arrayLimit: 5, throwOnLimitExceeded: true });
|
|
1305
|
-
},
|
|
1306
|
-
new RangeError('Array limit exceeded. Only 5 elements allowed in an array.'),
|
|
1307
|
-
'throws error when duplicate bracket notation exceeds array limit'
|
|
1308
|
-
);
|
|
1309
|
-
sst.end();
|
|
1310
|
-
});
|
|
1311
|
-
|
|
1312
1209
|
st.end();
|
|
1313
1210
|
});
|
|
1314
1211
|
|
|
@@ -1565,14 +1462,6 @@ test('comma + arrayLimit', function (t) {
|
|
|
1565
1462
|
new RangeError('Array limit exceeded. Only 3 elements allowed in an array.'),
|
|
1566
1463
|
'throws error when comma-split exceeds array limit'
|
|
1567
1464
|
);
|
|
1568
|
-
|
|
1569
|
-
st['throws'](
|
|
1570
|
-
function () {
|
|
1571
|
-
qs.parse('a=1,2,3', { comma: true, arrayLimit: 1, throwOnLimitExceeded: true });
|
|
1572
|
-
},
|
|
1573
|
-
new RangeError('Array limit exceeded. Only 1 element allowed in an array.'),
|
|
1574
|
-
'throws error with singular "element" when arrayLimit is 1'
|
|
1575
|
-
);
|
|
1576
1465
|
st.end();
|
|
1577
1466
|
});
|
|
1578
1467
|
|
|
@@ -1675,29 +1564,5 @@ test('mixed array and object notation', function (t) {
|
|
|
1675
1564
|
st.end();
|
|
1676
1565
|
});
|
|
1677
1566
|
|
|
1678
|
-
t.test('uses existing array length for currentArrayLength when parsing object input with bracket keys', function (st) {
|
|
1679
|
-
var input = {};
|
|
1680
|
-
var arr = ['x', 'y'];
|
|
1681
|
-
arr.a = ['z', 'w'];
|
|
1682
|
-
input['a[]'] = arr;
|
|
1683
|
-
st.deepEqual(qs.parse(input), { a: ['x', 'y'] }, 'parses object input with bracket keys using existing array values');
|
|
1684
|
-
st.end();
|
|
1685
|
-
});
|
|
1686
|
-
|
|
1687
|
-
t.test('throws with singular message when object input bracket key exceeds arrayLimit of 1', function (st) {
|
|
1688
|
-
var input = {};
|
|
1689
|
-
var arr = ['x'];
|
|
1690
|
-
arr.a = ['z', 'w'];
|
|
1691
|
-
input['a[]'] = arr;
|
|
1692
|
-
st['throws'](
|
|
1693
|
-
function () {
|
|
1694
|
-
qs.parse(input, { throwOnLimitExceeded: true, arrayLimit: 1 });
|
|
1695
|
-
},
|
|
1696
|
-
new RangeError('Array limit exceeded. Only 1 element allowed in an array.'),
|
|
1697
|
-
'throws singular error for object input exceeding arrayLimit 1'
|
|
1698
|
-
);
|
|
1699
|
-
st.end();
|
|
1700
|
-
});
|
|
1701
|
-
|
|
1702
1567
|
t.end();
|
|
1703
1568
|
});
|
|
@@ -651,49 +651,6 @@ test('stringify()', function (t) {
|
|
|
651
651
|
st.end();
|
|
652
652
|
});
|
|
653
653
|
|
|
654
|
-
t.test('does not crash on null/undefined entries in arrayFormat=comma with encodeValuesOnly', function (st) {
|
|
655
|
-
st.doesNotThrow(
|
|
656
|
-
function () { qs.stringify({ a: [null, 'b'] }, { arrayFormat: 'comma', encodeValuesOnly: true }); },
|
|
657
|
-
'does not pass a raw null array entry to the encoder'
|
|
658
|
-
);
|
|
659
|
-
st.doesNotThrow(
|
|
660
|
-
function () { qs.stringify({ a: [undefined, 'b'] }, { arrayFormat: 'comma', encodeValuesOnly: true }); },
|
|
661
|
-
'does not pass a raw undefined array entry to the encoder'
|
|
662
|
-
);
|
|
663
|
-
st.doesNotThrow(
|
|
664
|
-
function () { qs.stringify({ a: [null] }, { arrayFormat: 'comma', encodeValuesOnly: true }); },
|
|
665
|
-
'does not crash on a single-null array'
|
|
666
|
-
);
|
|
667
|
-
|
|
668
|
-
st.equal(
|
|
669
|
-
qs.stringify({ a: [null, 'b'] }, { arrayFormat: 'comma', encodeValuesOnly: true }),
|
|
670
|
-
'a=,b',
|
|
671
|
-
'null entry joins as empty, comma stays unencoded under encodeValuesOnly'
|
|
672
|
-
);
|
|
673
|
-
st.equal(
|
|
674
|
-
qs.stringify({ a: [undefined, 'b'] }, { arrayFormat: 'comma', encodeValuesOnly: true }),
|
|
675
|
-
'a=,b',
|
|
676
|
-
'undefined entry joins as empty, comma stays unencoded under encodeValuesOnly'
|
|
677
|
-
);
|
|
678
|
-
st.equal(
|
|
679
|
-
qs.stringify({ a: [null] }, { arrayFormat: 'comma', encodeValuesOnly: true }),
|
|
680
|
-
'a=',
|
|
681
|
-
'single-null array stringifies as empty value'
|
|
682
|
-
);
|
|
683
|
-
st.equal(
|
|
684
|
-
qs.stringify({ a: [null] }, { arrayFormat: 'comma', encodeValuesOnly: true, strictNullHandling: true }),
|
|
685
|
-
'a',
|
|
686
|
-
'strictNullHandling drops the equals sign for a single-null array'
|
|
687
|
-
);
|
|
688
|
-
st.equal(
|
|
689
|
-
qs.stringify({ a: [null] }, { arrayFormat: 'comma', encodeValuesOnly: true, skipNulls: true }),
|
|
690
|
-
'',
|
|
691
|
-
'skipNulls drops a single-null array entirely'
|
|
692
|
-
);
|
|
693
|
-
|
|
694
|
-
st.end();
|
|
695
|
-
});
|
|
696
|
-
|
|
697
654
|
t.test('stringifies a null object', { skip: !hasProto }, function (st) {
|
|
698
655
|
st.equal(qs.stringify({ __proto__: null, a: 'b' }), 'a=b');
|
|
699
656
|
st.end();
|
|
@@ -868,35 +825,6 @@ test('stringify()', function (t) {
|
|
|
868
825
|
st.end();
|
|
869
826
|
});
|
|
870
827
|
|
|
871
|
-
t.test('skips null/undefined entries in filter=array', function (st) {
|
|
872
|
-
st.doesNotThrow(
|
|
873
|
-
function () { qs.stringify({ a: 'b', undefined: 'x' }, { filter: ['a', undefined] }); },
|
|
874
|
-
'does not pass a raw undefined filter entry to the encoder'
|
|
875
|
-
);
|
|
876
|
-
st.doesNotThrow(
|
|
877
|
-
function () { qs.stringify({ a: 'b', 'null': 'x' }, { filter: ['a', null] }); },
|
|
878
|
-
'does not pass a raw null filter entry to the encoder'
|
|
879
|
-
);
|
|
880
|
-
|
|
881
|
-
st.equal(
|
|
882
|
-
qs.stringify({ a: 'b', undefined: 'x', c: 'd' }, { filter: ['a', undefined, 'c'] }),
|
|
883
|
-
'a=b&c=d',
|
|
884
|
-
'undefined filter entry is skipped, remaining keys are kept'
|
|
885
|
-
);
|
|
886
|
-
st.equal(
|
|
887
|
-
qs.stringify({ a: 'b', 'null': 'x', c: 'd' }, { filter: ['a', null, 'c'] }),
|
|
888
|
-
'a=b&c=d',
|
|
889
|
-
'null filter entry is skipped, remaining keys are kept'
|
|
890
|
-
);
|
|
891
|
-
st.equal(
|
|
892
|
-
qs.stringify({ a: 'b', 'null': 'x' }, { filter: [null] }),
|
|
893
|
-
'',
|
|
894
|
-
'filter array containing only null yields empty string'
|
|
895
|
-
);
|
|
896
|
-
|
|
897
|
-
st.end();
|
|
898
|
-
});
|
|
899
|
-
|
|
900
828
|
t.test('supports custom representations when filter=function', function (st) {
|
|
901
829
|
var calls = 0;
|
|
902
830
|
var obj = { a: 'b', c: 'd', e: { f: new Date(1257894000000) } };
|
|
@@ -1183,28 +1111,6 @@ test('stringify()', function (t) {
|
|
|
1183
1111
|
st.end();
|
|
1184
1112
|
});
|
|
1185
1113
|
|
|
1186
|
-
t.test('strictNullHandling: applies the formatter to the encoded key (RFC1738)', function (st) {
|
|
1187
|
-
st.equal(
|
|
1188
|
-
qs.stringify(
|
|
1189
|
-
{ 'a b': null, 'c d': 'e f' },
|
|
1190
|
-
{ strictNullHandling: false, format: 'RFC1738' }
|
|
1191
|
-
),
|
|
1192
|
-
'a+b=&c+d=e+f',
|
|
1193
|
-
'without: as expected'
|
|
1194
|
-
);
|
|
1195
|
-
|
|
1196
|
-
st.equal(
|
|
1197
|
-
qs.stringify(
|
|
1198
|
-
{ 'a b': null, 'c d': 'e f' },
|
|
1199
|
-
{ strictNullHandling: true, format: 'RFC1738' }
|
|
1200
|
-
),
|
|
1201
|
-
'a+b&c+d=e+f',
|
|
1202
|
-
'with: as expected'
|
|
1203
|
-
);
|
|
1204
|
-
|
|
1205
|
-
st.end();
|
|
1206
|
-
});
|
|
1207
|
-
|
|
1208
1114
|
t.test('throws if an invalid charset is specified', function (st) {
|
|
1209
1115
|
st['throws'](function () {
|
|
1210
1116
|
qs.stringify({ a: 'b' }, { charset: 'foobar' });
|
|
@@ -1240,12 +1146,6 @@ test('stringify()', function (t) {
|
|
|
1240
1146
|
'adds the right sentinel when instructed to and the charset is iso-8859-1'
|
|
1241
1147
|
);
|
|
1242
1148
|
|
|
1243
|
-
st.equal(
|
|
1244
|
-
qs.stringify({ a: 1, b: 2 }, { charsetSentinel: true, delimiter: ';' }),
|
|
1245
|
-
'utf8=%E2%9C%93;a=1;b=2',
|
|
1246
|
-
'uses the configured delimiter after the sentinel'
|
|
1247
|
-
);
|
|
1248
|
-
|
|
1249
1149
|
st.end();
|
|
1250
1150
|
});
|
|
1251
1151
|
|
|
@@ -1288,15 +1188,6 @@ test('stringify()', function (t) {
|
|
|
1288
1188
|
};
|
|
1289
1189
|
|
|
1290
1190
|
st.deepEqual(qs.stringify({ KeY: 'vAlUe' }, { encoder: encoder }), 'key=VALUE');
|
|
1291
|
-
|
|
1292
|
-
var noopEncoder = function () { return 'x'; };
|
|
1293
|
-
noopEncoder();
|
|
1294
|
-
st['throws'](
|
|
1295
|
-
function () { encoder('x', noopEncoder, 'utf-8', 'unknown'); },
|
|
1296
|
-
'this should never happen! type: unknown',
|
|
1297
|
-
'encoder throws for unexpected type'
|
|
1298
|
-
);
|
|
1299
|
-
|
|
1300
1191
|
st.end();
|
|
1301
1192
|
});
|
|
1302
1193
|
|
|
@@ -1416,33 +1307,4 @@ test('stringifies empty keys', function (t) {
|
|
|
1416
1307
|
|
|
1417
1308
|
st.end();
|
|
1418
1309
|
});
|
|
1419
|
-
|
|
1420
|
-
t.test('round-trips keys containing percent-encoded bracket text', function (st) {
|
|
1421
|
-
var cases = [
|
|
1422
|
-
{ 'a%5Bb': 'c' },
|
|
1423
|
-
{ 'a%5Db': 'c' },
|
|
1424
|
-
{ 'a%255Bb': 'c' },
|
|
1425
|
-
{ 'a%255Db': 'c' },
|
|
1426
|
-
{ a: { 'b%5Bc': 'd' } },
|
|
1427
|
-
{ a: { 'b%255Bc': 'd' } },
|
|
1428
|
-
{ 'a%5B%255Bb': 'c' }
|
|
1429
|
-
];
|
|
1430
|
-
for (var i = 0; i < cases.length; i++) {
|
|
1431
|
-
st.deepEqual(
|
|
1432
|
-
qs.parse(qs.stringify(cases[i])),
|
|
1433
|
-
cases[i],
|
|
1434
|
-
'round-trips ' + JSON.stringify(cases[i])
|
|
1435
|
-
);
|
|
1436
|
-
}
|
|
1437
|
-
|
|
1438
|
-
st.end();
|
|
1439
|
-
});
|
|
1440
|
-
|
|
1441
|
-
t.test('parses input containing percent-encoded bracket text without mangling', function (st) {
|
|
1442
|
-
st.deepEqual(qs.parse('a%25255Bb=c'), { 'a%255Bb': 'c' }, 'a%25255Bb decodes to a%255Bb, not a%5Bb');
|
|
1443
|
-
st.deepEqual(qs.parse('a%25255Db=c'), { 'a%255Db': 'c' }, 'a%25255Db decodes to a%255Db, not a%5Db');
|
|
1444
|
-
st.deepEqual(qs.parse('a%5Bb%25255Bc%5D=d'), { a: { 'b%255Bc': 'd' } }, 'nested %25255B decodes to %255B inside segment, not %5B');
|
|
1445
|
-
|
|
1446
|
-
st.end();
|
|
1447
|
-
});
|
|
1448
1310
|
});
|
|
@@ -31,7 +31,6 @@ test('merge()', function (t) {
|
|
|
31
31
|
t.deepEqual(noOptionsNonObjectSource, { foo: 'baz', bar: true });
|
|
32
32
|
|
|
33
33
|
var func = function f() {};
|
|
34
|
-
func();
|
|
35
34
|
t.deepEqual(
|
|
36
35
|
utils.merge(func, { foo: 'bar' }),
|
|
37
36
|
[func, { foo: 'bar' }],
|
|
@@ -113,15 +112,6 @@ test('merge()', function (t) {
|
|
|
113
112
|
s2t.end();
|
|
114
113
|
});
|
|
115
114
|
|
|
116
|
-
st.test('merges overflow object into primitive with plainObjects', function (s2t) {
|
|
117
|
-
var overflow = utils.combine(['a'], 'b', 0, false);
|
|
118
|
-
s2t.ok(utils.isOverflow(overflow), 'overflow object is marked');
|
|
119
|
-
var merged = utils.merge('c', overflow, { plainObjects: true });
|
|
120
|
-
s2t.ok(utils.isOverflow(merged), 'result is also marked as overflow');
|
|
121
|
-
s2t.deepEqual(merged, { __proto__: null, 0: 'c', 1: 'a', 2: 'b' }, 'creates null-proto object with primitive at 0');
|
|
122
|
-
s2t.end();
|
|
123
|
-
});
|
|
124
|
-
|
|
125
115
|
st.test('merges overflow object with multiple values into primitive', function (s2t) {
|
|
126
116
|
// Create an overflow object via combine: 3 elements (indices 0-2) with limit 0
|
|
127
117
|
var overflow = utils.combine(['b', 'c'], 'd', 0, false);
|
|
@@ -138,21 +128,6 @@ test('merge()', function (t) {
|
|
|
138
128
|
s2t.end();
|
|
139
129
|
});
|
|
140
130
|
|
|
141
|
-
st.test('merges primitive into array that exceeds arrayLimit', function (s2t) {
|
|
142
|
-
var arr = ['a', 'b', 'c'];
|
|
143
|
-
var merged = utils.merge(arr, 'd', { arrayLimit: 1 });
|
|
144
|
-
s2t.ok(utils.isOverflow(merged), 'result is marked as overflow');
|
|
145
|
-
s2t.deepEqual(merged, { 0: 'a', 1: 'b', 2: 'c', 3: 'd' }, 'converts to overflow object with primitive appended');
|
|
146
|
-
s2t.end();
|
|
147
|
-
});
|
|
148
|
-
|
|
149
|
-
st.test('merges array into primitive that exceeds arrayLimit', function (s2t) {
|
|
150
|
-
var merged = utils.merge('a', ['b', 'c'], { arrayLimit: 1 });
|
|
151
|
-
s2t.ok(utils.isOverflow(merged), 'result is marked as overflow');
|
|
152
|
-
s2t.deepEqual(merged, { 0: 'a', 1: 'b', 2: 'c' }, 'converts to overflow object');
|
|
153
|
-
s2t.end();
|
|
154
|
-
});
|
|
155
|
-
|
|
156
131
|
st.end();
|
|
157
132
|
});
|
|
158
133
|
|
|
@@ -401,9 +376,7 @@ test('encode', function (t) {
|
|
|
401
376
|
});
|
|
402
377
|
|
|
403
378
|
test('isBuffer()', function (t) {
|
|
404
|
-
|
|
405
|
-
fn();
|
|
406
|
-
forEach([null, undefined, true, false, '', 'abc', 42, 0, NaN, {}, [], fn, /a/g], function (x) {
|
|
379
|
+
forEach([null, undefined, true, false, '', 'abc', 42, 0, NaN, {}, [], function () {}, /a/g], function (x) {
|
|
407
380
|
t.equal(utils.isBuffer(x), false, inspect(x) + ' is not a buffer');
|
|
408
381
|
});
|
|
409
382
|
|
|
@@ -413,9 +386,8 @@ test('isBuffer()', function (t) {
|
|
|
413
386
|
var saferBuffer = SaferBuffer.from('abc');
|
|
414
387
|
t.equal(utils.isBuffer(saferBuffer), true, 'SaferBuffer instance is a buffer');
|
|
415
388
|
|
|
416
|
-
var buffer =
|
|
417
|
-
t.
|
|
418
|
-
t.equal(utils.isBuffer(buffer), true, 'another Buffer instance is a buffer');
|
|
389
|
+
var buffer = Buffer.from && Buffer.alloc ? Buffer.from('abc') : new Buffer('abc');
|
|
390
|
+
t.equal(utils.isBuffer(buffer), true, 'real Buffer instance is a buffer');
|
|
419
391
|
t.end();
|
|
420
392
|
});
|
|
421
393
|
|