aboutsummaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/request/node_modules/qs/lib
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/request/node_modules/qs/lib')
-rwxr-xr-xdeps/npm/node_modules/request/node_modules/qs/lib/parse.js82
-rwxr-xr-xdeps/npm/node_modules/request/node_modules/qs/lib/stringify.js66
-rwxr-xr-xdeps/npm/node_modules/request/node_modules/qs/lib/utils.js10
3 files changed, 84 insertions, 74 deletions
diff --git a/deps/npm/node_modules/request/node_modules/qs/lib/parse.js b/deps/npm/node_modules/request/node_modules/qs/lib/parse.js
index 9b6cbd2219..8b37cb3b29 100755
--- a/deps/npm/node_modules/request/node_modules/qs/lib/parse.js
+++ b/deps/npm/node_modules/request/node_modules/qs/lib/parse.js
@@ -2,7 +2,9 @@
var Utils = require('./utils');
-var internals = {
+var has = Object.prototype.hasOwnProperty;
+
+var defaults = {
delimiter: '&',
depth: 5,
arrayLimit: 20,
@@ -10,10 +12,11 @@ var internals = {
strictNullHandling: false,
plainObjects: false,
allowPrototypes: false,
- allowDots: false
+ allowDots: false,
+ decoder: Utils.decode
};
-internals.parseValues = function (str, options) {
+var parseValues = function parseValues(str, options) {
var obj = {};
var parts = str.split(options.delimiter, options.parameterLimit === Infinity ? undefined : options.parameterLimit);
@@ -21,28 +24,25 @@ internals.parseValues = function (str, options) {
var part = parts[i];
var pos = part.indexOf(']=') === -1 ? part.indexOf('=') : part.indexOf(']=') + 1;
+ var key, val;
if (pos === -1) {
- obj[Utils.decode(part)] = '';
-
- if (options.strictNullHandling) {
- obj[Utils.decode(part)] = null;
- }
+ key = options.decoder(part);
+ val = options.strictNullHandling ? null : '';
} else {
- var key = Utils.decode(part.slice(0, pos));
- var val = Utils.decode(part.slice(pos + 1));
-
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
- obj[key] = [].concat(obj[key]).concat(val);
- } else {
- obj[key] = val;
- }
+ key = options.decoder(part.slice(0, pos));
+ val = options.decoder(part.slice(pos + 1));
+ }
+ if (has.call(obj, key)) {
+ obj[key] = [].concat(obj[key]).concat(val);
+ } else {
+ obj[key] = val;
}
}
return obj;
};
-internals.parseObject = function (chain, val, options) {
+var parseObject = function parseObject(chain, val, options) {
if (!chain.length) {
return val;
}
@@ -52,7 +52,7 @@ internals.parseObject = function (chain, val, options) {
var obj;
if (root === '[]') {
obj = [];
- obj = obj.concat(internals.parseObject(chain, val, options));
+ obj = obj.concat(parseObject(chain, val, options));
} else {
obj = options.plainObjects ? Object.create(null) : {};
var cleanRoot = root[0] === '[' && root[root.length - 1] === ']' ? root.slice(1, root.length - 1) : root;
@@ -65,16 +65,16 @@ internals.parseObject = function (chain, val, options) {
(options.parseArrays && index <= options.arrayLimit)
) {
obj = [];
- obj[index] = internals.parseObject(chain, val, options);
+ obj[index] = parseObject(chain, val, options);
} else {
- obj[cleanRoot] = internals.parseObject(chain, val, options);
+ obj[cleanRoot] = parseObject(chain, val, options);
}
}
return obj;
};
-internals.parseKeys = function (givenKey, val, options) {
+var parseKeys = function parseKeys(givenKey, val, options) {
if (!givenKey) {
return;
}
@@ -97,7 +97,7 @@ internals.parseKeys = function (givenKey, val, options) {
if (segment[1]) {
// If we aren't using plain objects, optionally prefix keys
// that would overwrite object prototype properties
- if (!options.plainObjects && Object.prototype.hasOwnProperty(segment[1])) {
+ if (!options.plainObjects && has.call(Object.prototype, segment[1])) {
if (!options.allowPrototypes) {
return;
}
@@ -111,7 +111,7 @@ internals.parseKeys = function (givenKey, val, options) {
var i = 0;
while ((segment = child.exec(key)) !== null && i < options.depth) {
i += 1;
- if (!options.plainObjects && Object.prototype.hasOwnProperty(segment[1].replace(/\[|\]/g, ''))) {
+ if (!options.plainObjects && has.call(Object.prototype, segment[1].replace(/\[|\]/g, ''))) {
if (!options.allowPrototypes) {
continue;
}
@@ -125,30 +125,32 @@ internals.parseKeys = function (givenKey, val, options) {
keys.push('[' + key.slice(segment.index) + ']');
}
- return internals.parseObject(keys, val, options);
+ return parseObject(keys, val, options);
};
module.exports = function (str, opts) {
var options = opts || {};
- options.delimiter = typeof options.delimiter === 'string' || Utils.isRegExp(options.delimiter) ? options.delimiter : internals.delimiter;
- options.depth = typeof options.depth === 'number' ? options.depth : internals.depth;
- options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : internals.arrayLimit;
+
+ if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {
+ throw new TypeError('Decoder has to be a function.');
+ }
+
+ options.delimiter = typeof options.delimiter === 'string' || Utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;
+ options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;
+ options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;
options.parseArrays = options.parseArrays !== false;
- options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : internals.allowDots;
- options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : internals.plainObjects;
- options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : internals.allowPrototypes;
- options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : internals.parameterLimit;
- options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : internals.strictNullHandling;
-
- if (
- str === '' ||
- str === null ||
- typeof str === 'undefined'
- ) {
+ options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;
+ options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;
+ options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;
+ options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;
+ options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;
+ options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
+
+ if (str === '' || str === null || typeof str === 'undefined') {
return options.plainObjects ? Object.create(null) : {};
}
- var tempObj = typeof str === 'string' ? internals.parseValues(str, options) : str;
+ var tempObj = typeof str === 'string' ? parseValues(str, options) : str;
var obj = options.plainObjects ? Object.create(null) : {};
// Iterate over the keys and setup the new object
@@ -156,7 +158,7 @@ module.exports = function (str, opts) {
var keys = Object.keys(tempObj);
for (var i = 0; i < keys.length; ++i) {
var key = keys[i];
- var newObj = internals.parseKeys(key, tempObj[key], options);
+ var newObj = parseKeys(key, tempObj[key], options);
obj = Utils.merge(obj, newObj, options);
}
diff --git a/deps/npm/node_modules/request/node_modules/qs/lib/stringify.js b/deps/npm/node_modules/request/node_modules/qs/lib/stringify.js
index 892dad45a9..6e1c9a263c 100755
--- a/deps/npm/node_modules/request/node_modules/qs/lib/stringify.js
+++ b/deps/npm/node_modules/request/node_modules/qs/lib/stringify.js
@@ -2,45 +2,45 @@
var Utils = require('./utils');
-var internals = {
- delimiter: '&',
- arrayPrefixGenerators: {
- brackets: function (prefix) {
- return prefix + '[]';
- },
- indices: function (prefix, key) {
- return prefix + '[' + key + ']';
- },
- repeat: function (prefix) {
- return prefix;
- }
+var arrayPrefixGenerators = {
+ brackets: function brackets(prefix) {
+ return prefix + '[]';
+ },
+ indices: function indices(prefix, key) {
+ return prefix + '[' + key + ']';
},
+ repeat: function repeat(prefix) {
+ return prefix;
+ }
+};
+
+var defaults = {
+ delimiter: '&',
strictNullHandling: false,
skipNulls: false,
- encode: true
+ encode: true,
+ encoder: Utils.encode
};
-internals.stringify = function (object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encode, filter, sort, allowDots) {
+var stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots) {
var obj = object;
if (typeof filter === 'function') {
obj = filter(prefix, obj);
- } else if (Utils.isBuffer(obj)) {
- obj = String(obj);
} else if (obj instanceof Date) {
obj = obj.toISOString();
} else if (obj === null) {
if (strictNullHandling) {
- return encode ? Utils.encode(prefix) : prefix;
+ return encoder ? encoder(prefix) : prefix;
}
obj = '';
}
- if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean') {
- if (encode) {
- return [Utils.encode(prefix) + '=' + Utils.encode(obj)];
+ if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || Utils.isBuffer(obj)) {
+ if (encoder) {
+ return [encoder(prefix) + '=' + encoder(obj)];
}
- return [prefix + '=' + obj];
+ return [prefix + '=' + String(obj)];
}
var values = [];
@@ -65,9 +65,9 @@ internals.stringify = function (object, prefix, generateArrayPrefix, strictNullH
}
if (Array.isArray(obj)) {
- values = values.concat(internals.stringify(obj[key], generateArrayPrefix(prefix, key), generateArrayPrefix, strictNullHandling, skipNulls, encode, filter, sort, allowDots));
+ values = values.concat(stringify(obj[key], generateArrayPrefix(prefix, key), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots));
} else {
- values = values.concat(internals.stringify(obj[key], prefix + (allowDots ? '.' + key : '[' + key + ']'), generateArrayPrefix, strictNullHandling, skipNulls, encode, filter, sort, allowDots));
+ values = values.concat(stringify(obj[key], prefix + (allowDots ? '.' + key : '[' + key + ']'), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots));
}
}
@@ -77,14 +77,20 @@ internals.stringify = function (object, prefix, generateArrayPrefix, strictNullH
module.exports = function (object, opts) {
var obj = object;
var options = opts || {};
- var delimiter = typeof options.delimiter === 'undefined' ? internals.delimiter : options.delimiter;
- var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : internals.strictNullHandling;
- var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : internals.skipNulls;
- var encode = typeof options.encode === 'boolean' ? options.encode : internals.encode;
+ var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;
+ var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
+ var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;
+ var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;
+ var encoder = encode ? (typeof options.encoder === 'function' ? options.encoder : defaults.encoder) : null;
var sort = typeof options.sort === 'function' ? options.sort : null;
var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;
var objKeys;
var filter;
+
+ if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {
+ throw new TypeError('Encoder has to be a function.');
+ }
+
if (typeof options.filter === 'function') {
filter = options.filter;
obj = filter('', obj);
@@ -99,7 +105,7 @@ module.exports = function (object, opts) {
}
var arrayFormat;
- if (options.arrayFormat in internals.arrayPrefixGenerators) {
+ if (options.arrayFormat in arrayPrefixGenerators) {
arrayFormat = options.arrayFormat;
} else if ('indices' in options) {
arrayFormat = options.indices ? 'indices' : 'repeat';
@@ -107,7 +113,7 @@ module.exports = function (object, opts) {
arrayFormat = 'indices';
}
- var generateArrayPrefix = internals.arrayPrefixGenerators[arrayFormat];
+ var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];
if (!objKeys) {
objKeys = Object.keys(obj);
@@ -124,7 +130,7 @@ module.exports = function (object, opts) {
continue;
}
- keys = keys.concat(internals.stringify(obj[key], key, generateArrayPrefix, strictNullHandling, skipNulls, encode, filter, sort, allowDots));
+ keys = keys.concat(stringify(obj[key], key, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots));
}
return keys.join(delimiter);
diff --git a/deps/npm/node_modules/request/node_modules/qs/lib/utils.js b/deps/npm/node_modules/request/node_modules/qs/lib/utils.js
index 5d43356030..2c5c8ee503 100755
--- a/deps/npm/node_modules/request/node_modules/qs/lib/utils.js
+++ b/deps/npm/node_modules/request/node_modules/qs/lib/utils.js
@@ -46,7 +46,7 @@ exports.merge = function (target, source, options) {
mergeTarget = exports.arrayToObject(target, options);
}
- return Object.keys(source).reduce(function (acc, key) {
+ return Object.keys(source).reduce(function (acc, key) {
var value = source[key];
if (Object.prototype.hasOwnProperty.call(acc, key)) {
@@ -54,7 +54,7 @@ exports.merge = function (target, source, options) {
} else {
acc[key] = value;
}
- return acc;
+ return acc;
}, mergeTarget);
};
@@ -109,7 +109,7 @@ exports.encode = function (str) {
i += 1;
c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
- out += (hexTable[0xF0 | (c >> 18)] + hexTable[0x80 | ((c >> 12) & 0x3F)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);
+ out += hexTable[0xF0 | (c >> 18)] + hexTable[0x80 | ((c >> 12) & 0x3F)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)];
}
return out;
@@ -132,7 +132,9 @@ exports.compact = function (obj, references) {
var compacted = [];
for (var i = 0; i < obj.length; ++i) {
- if (typeof obj[i] !== 'undefined') {
+ if (obj[i] && typeof obj[i] === 'object') {
+ compacted.push(exports.compact(obj[i], refs));
+ } else if (typeof obj[i] !== 'undefined') {
compacted.push(obj[i]);
}
}