qs 6.5.1 → 6.5.2

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/.eslintrc CHANGED
@@ -4,7 +4,7 @@
4
4
  "extends": "@ljharb",
5
5
 
6
6
  "rules": {
7
- "complexity": [2, 28],
7
+ "complexity": 0,
8
8
  "consistent-return": 1,
9
9
  "func-name-matching": 0,
10
10
  "id-length": [2, { "min": 1, "max": 25, "properties": "never" }],
package/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## **6.5.2**
2
+ - [Fix] use `safer-buffer` instead of `Buffer` constructor
3
+ - [Refactor] utils: `module.exports` one thing, instead of mutating `exports` (#230)
4
+ - [Dev Deps] update `browserify`, `eslint`, `iconv-lite`, `safer-buffer`, `tape`, `browserify`
5
+
1
6
  ## **6.5.1**
2
7
  - [Fix] Fix parsing & compacting very deep objects (#224)
3
8
  - [Refactor] name utils functions
package/dist/qs.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Qs = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
1
+ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Qs = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
2
2
  'use strict';
3
3
 
4
4
  var replace = String.prototype.replace;
@@ -456,7 +456,7 @@ var compactQueue = function compactQueue(queue) {
456
456
  return obj;
457
457
  };
458
458
 
459
- exports.arrayToObject = function arrayToObject(source, options) {
459
+ var arrayToObject = function arrayToObject(source, options) {
460
460
  var obj = options && options.plainObjects ? Object.create(null) : {};
461
461
  for (var i = 0; i < source.length; ++i) {
462
462
  if (typeof source[i] !== 'undefined') {
@@ -467,7 +467,7 @@ exports.arrayToObject = function arrayToObject(source, options) {
467
467
  return obj;
468
468
  };
469
469
 
470
- exports.merge = function merge(target, source, options) {
470
+ var merge = function merge(target, source, options) {
471
471
  if (!source) {
472
472
  return target;
473
473
  }
@@ -492,14 +492,14 @@ exports.merge = function merge(target, source, options) {
492
492
 
493
493
  var mergeTarget = target;
494
494
  if (Array.isArray(target) && !Array.isArray(source)) {
495
- mergeTarget = exports.arrayToObject(target, options);
495
+ mergeTarget = arrayToObject(target, options);
496
496
  }
497
497
 
498
498
  if (Array.isArray(target) && Array.isArray(source)) {
499
499
  source.forEach(function (item, i) {
500
500
  if (has.call(target, i)) {
501
501
  if (target[i] && typeof target[i] === 'object') {
502
- target[i] = exports.merge(target[i], item, options);
502
+ target[i] = merge(target[i], item, options);
503
503
  } else {
504
504
  target.push(item);
505
505
  }
@@ -514,7 +514,7 @@ exports.merge = function merge(target, source, options) {
514
514
  var value = source[key];
515
515
 
516
516
  if (has.call(acc, key)) {
517
- acc[key] = exports.merge(acc[key], value, options);
517
+ acc[key] = merge(acc[key], value, options);
518
518
  } else {
519
519
  acc[key] = value;
520
520
  }
@@ -522,14 +522,14 @@ exports.merge = function merge(target, source, options) {
522
522
  }, mergeTarget);
523
523
  };
524
524
 
525
- exports.assign = function assignSingleSource(target, source) {
525
+ var assign = function assignSingleSource(target, source) {
526
526
  return Object.keys(source).reduce(function (acc, key) {
527
527
  acc[key] = source[key];
528
528
  return acc;
529
529
  }, target);
530
530
  };
531
531
 
532
- exports.decode = function (str) {
532
+ var decode = function (str) {
533
533
  try {
534
534
  return decodeURIComponent(str.replace(/\+/g, ' '));
535
535
  } catch (e) {
@@ -537,7 +537,7 @@ exports.decode = function (str) {
537
537
  }
538
538
  };
539
539
 
540
- exports.encode = function encode(str) {
540
+ var encode = function encode(str) {
541
541
  // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
542
542
  // It has been adapted here for stricter adherence to RFC 3986
543
543
  if (str.length === 0) {
@@ -589,7 +589,7 @@ exports.encode = function encode(str) {
589
589
  return out;
590
590
  };
591
591
 
592
- exports.compact = function compact(value) {
592
+ var compact = function compact(value) {
593
593
  var queue = [{ obj: { o: value }, prop: 'o' }];
594
594
  var refs = [];
595
595
 
@@ -611,11 +611,11 @@ exports.compact = function compact(value) {
611
611
  return compactQueue(queue);
612
612
  };
613
613
 
614
- exports.isRegExp = function isRegExp(obj) {
614
+ var isRegExp = function isRegExp(obj) {
615
615
  return Object.prototype.toString.call(obj) === '[object RegExp]';
616
616
  };
617
617
 
618
- exports.isBuffer = function isBuffer(obj) {
618
+ var isBuffer = function isBuffer(obj) {
619
619
  if (obj === null || typeof obj === 'undefined') {
620
620
  return false;
621
621
  }
@@ -623,5 +623,16 @@ exports.isBuffer = function isBuffer(obj) {
623
623
  return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
624
624
  };
625
625
 
626
+ module.exports = {
627
+ arrayToObject: arrayToObject,
628
+ assign: assign,
629
+ compact: compact,
630
+ decode: decode,
631
+ encode: encode,
632
+ isBuffer: isBuffer,
633
+ isRegExp: isRegExp,
634
+ merge: merge
635
+ };
636
+
626
637
  },{}]},{},[2])(2)
627
- });
638
+ });
package/lib/utils.js CHANGED
@@ -34,7 +34,7 @@ var compactQueue = function compactQueue(queue) {
34
34
  return obj;
35
35
  };
36
36
 
37
- exports.arrayToObject = function arrayToObject(source, options) {
37
+ var arrayToObject = function arrayToObject(source, options) {
38
38
  var obj = options && options.plainObjects ? Object.create(null) : {};
39
39
  for (var i = 0; i < source.length; ++i) {
40
40
  if (typeof source[i] !== 'undefined') {
@@ -45,7 +45,7 @@ exports.arrayToObject = function arrayToObject(source, options) {
45
45
  return obj;
46
46
  };
47
47
 
48
- exports.merge = function merge(target, source, options) {
48
+ var merge = function merge(target, source, options) {
49
49
  if (!source) {
50
50
  return target;
51
51
  }
@@ -70,14 +70,14 @@ exports.merge = function merge(target, source, options) {
70
70
 
71
71
  var mergeTarget = target;
72
72
  if (Array.isArray(target) && !Array.isArray(source)) {
73
- mergeTarget = exports.arrayToObject(target, options);
73
+ mergeTarget = arrayToObject(target, options);
74
74
  }
75
75
 
76
76
  if (Array.isArray(target) && Array.isArray(source)) {
77
77
  source.forEach(function (item, i) {
78
78
  if (has.call(target, i)) {
79
79
  if (target[i] && typeof target[i] === 'object') {
80
- target[i] = exports.merge(target[i], item, options);
80
+ target[i] = merge(target[i], item, options);
81
81
  } else {
82
82
  target.push(item);
83
83
  }
@@ -92,7 +92,7 @@ exports.merge = function merge(target, source, options) {
92
92
  var value = source[key];
93
93
 
94
94
  if (has.call(acc, key)) {
95
- acc[key] = exports.merge(acc[key], value, options);
95
+ acc[key] = merge(acc[key], value, options);
96
96
  } else {
97
97
  acc[key] = value;
98
98
  }
@@ -100,14 +100,14 @@ exports.merge = function merge(target, source, options) {
100
100
  }, mergeTarget);
101
101
  };
102
102
 
103
- exports.assign = function assignSingleSource(target, source) {
103
+ var assign = function assignSingleSource(target, source) {
104
104
  return Object.keys(source).reduce(function (acc, key) {
105
105
  acc[key] = source[key];
106
106
  return acc;
107
107
  }, target);
108
108
  };
109
109
 
110
- exports.decode = function (str) {
110
+ var decode = function (str) {
111
111
  try {
112
112
  return decodeURIComponent(str.replace(/\+/g, ' '));
113
113
  } catch (e) {
@@ -115,7 +115,7 @@ exports.decode = function (str) {
115
115
  }
116
116
  };
117
117
 
118
- exports.encode = function encode(str) {
118
+ var encode = function encode(str) {
119
119
  // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
120
120
  // It has been adapted here for stricter adherence to RFC 3986
121
121
  if (str.length === 0) {
@@ -167,7 +167,7 @@ exports.encode = function encode(str) {
167
167
  return out;
168
168
  };
169
169
 
170
- exports.compact = function compact(value) {
170
+ var compact = function compact(value) {
171
171
  var queue = [{ obj: { o: value }, prop: 'o' }];
172
172
  var refs = [];
173
173
 
@@ -189,14 +189,25 @@ exports.compact = function compact(value) {
189
189
  return compactQueue(queue);
190
190
  };
191
191
 
192
- exports.isRegExp = function isRegExp(obj) {
192
+ var isRegExp = function isRegExp(obj) {
193
193
  return Object.prototype.toString.call(obj) === '[object RegExp]';
194
194
  };
195
195
 
196
- exports.isBuffer = function isBuffer(obj) {
196
+ var isBuffer = function isBuffer(obj) {
197
197
  if (obj === null || typeof obj === 'undefined') {
198
198
  return false;
199
199
  }
200
200
 
201
201
  return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
202
202
  };
203
+
204
+ module.exports = {
205
+ arrayToObject: arrayToObject,
206
+ assign: assign,
207
+ compact: compact,
208
+ decode: decode,
209
+ encode: encode,
210
+ isBuffer: isBuffer,
211
+ isRegExp: isRegExp,
212
+ merge: merge
213
+ };
package/package.json CHANGED
@@ -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.5.1",
5
+ "version": "6.5.2",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/ljharb/qs.git"
@@ -25,16 +25,17 @@
25
25
  "dependencies": {},
26
26
  "devDependencies": {
27
27
  "@ljharb/eslint-config": "^12.2.1",
28
- "browserify": "^14.4.0",
28
+ "browserify": "^16.2.0",
29
29
  "covert": "^1.1.0",
30
30
  "editorconfig-tools": "^0.1.1",
31
- "eslint": "^4.6.1",
31
+ "eslint": "^4.19.1",
32
32
  "evalmd": "^0.0.17",
33
- "iconv-lite": "^0.4.18",
33
+ "iconv-lite": "^0.4.21",
34
34
  "mkdirp": "^0.5.1",
35
35
  "qs-iconv": "^1.0.4",
36
36
  "safe-publish-latest": "^1.1.1",
37
- "tape": "^4.8.0"
37
+ "safer-buffer": "^2.1.2",
38
+ "tape": "^4.9.0"
38
39
  },
39
40
  "scripts": {
40
41
  "prepublish": "safe-publish-latest && npm run dist",
package/test/parse.js CHANGED
@@ -4,6 +4,7 @@ var test = require('tape');
4
4
  var qs = require('../');
5
5
  var utils = require('../lib/utils');
6
6
  var iconv = require('iconv-lite');
7
+ var SaferBuffer = require('safer-buffer').Buffer;
7
8
 
8
9
  test('parse()', function (t) {
9
10
  t.test('parses a simple string', function (st) {
@@ -231,7 +232,7 @@ test('parse()', function (t) {
231
232
  });
232
233
 
233
234
  t.test('parses buffers correctly', function (st) {
234
- var b = new Buffer('test');
235
+ var b = SaferBuffer.from('test');
235
236
  st.deepEqual(qs.parse({ a: b }), { a: b });
236
237
  st.end();
237
238
  });
@@ -539,7 +540,7 @@ test('parse()', function (t) {
539
540
  result.push(parseInt(parts[1], 16));
540
541
  parts = reg.exec(str);
541
542
  }
542
- return iconv.decode(new Buffer(result), 'shift_jis').toString();
543
+ return iconv.decode(SaferBuffer.from(result), 'shift_jis').toString();
543
544
  }
544
545
  }), { 県: '大阪府' });
545
546
  st.end();
package/test/stringify.js CHANGED
@@ -4,6 +4,7 @@ var test = require('tape');
4
4
  var qs = require('../');
5
5
  var utils = require('../lib/utils');
6
6
  var iconv = require('iconv-lite');
7
+ var SaferBuffer = require('safer-buffer').Buffer;
7
8
 
8
9
  test('stringify()', function (t) {
9
10
  t.test('stringifies a querystring object', function (st) {
@@ -336,8 +337,8 @@ test('stringify()', function (t) {
336
337
  });
337
338
 
338
339
  t.test('stringifies buffer values', function (st) {
339
- st.equal(qs.stringify({ a: new Buffer('test') }), 'a=test');
340
- st.equal(qs.stringify({ a: { b: new Buffer('test') } }), 'a%5Bb%5D=test');
340
+ st.equal(qs.stringify({ a: SaferBuffer.from('test') }), 'a=test');
341
+ st.equal(qs.stringify({ a: { b: SaferBuffer.from('test') } }), 'a%5Bb%5D=test');
341
342
  st.end();
342
343
  });
343
344
 
@@ -481,7 +482,7 @@ test('stringify()', function (t) {
481
482
  });
482
483
 
483
484
  t.test('can use custom encoder for a buffer object', { skip: typeof Buffer === 'undefined' }, function (st) {
484
- st.equal(qs.stringify({ a: new Buffer([1]) }, {
485
+ st.equal(qs.stringify({ a: SaferBuffer.from([1]) }, {
485
486
  encoder: function (buffer) {
486
487
  if (typeof buffer === 'string') {
487
488
  return buffer;