diff options
Diffstat (limited to 'deps/npm/node_modules/request/node_modules/qs/lib')
5 files changed, 118 insertions, 32 deletions
diff --git a/deps/npm/node_modules/request/node_modules/qs/lib/formats.js b/deps/npm/node_modules/request/node_modules/qs/lib/formats.js new file mode 100644 index 0000000000..df45997529 --- /dev/null +++ b/deps/npm/node_modules/request/node_modules/qs/lib/formats.js @@ -0,0 +1,18 @@ +'use strict'; + +var replace = String.prototype.replace; +var percentTwenties = /%20/g; + +module.exports = { + 'default': 'RFC3986', + formatters: { + RFC1738: function (value) { + return replace.call(value, percentTwenties, '+'); + }, + RFC3986: function (value) { + return value; + } + }, + RFC1738: 'RFC1738', + RFC3986: 'RFC3986' +}; diff --git a/deps/npm/node_modules/request/node_modules/qs/lib/index.js b/deps/npm/node_modules/request/node_modules/qs/lib/index.js index 190195902a..0d6a97dcf0 100755 --- a/deps/npm/node_modules/request/node_modules/qs/lib/index.js +++ b/deps/npm/node_modules/request/node_modules/qs/lib/index.js @@ -1,9 +1,11 @@ 'use strict'; -var Stringify = require('./stringify'); -var Parse = require('./parse'); +var stringify = require('./stringify'); +var parse = require('./parse'); +var formats = require('./formats'); module.exports = { - stringify: Stringify, - parse: Parse + formats: formats, + parse: parse, + stringify: stringify }; 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 8b37cb3b29..97387a6a26 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 @@ -1,19 +1,19 @@ 'use strict'; -var Utils = require('./utils'); +var utils = require('./utils'); var has = Object.prototype.hasOwnProperty; var defaults = { + allowDots: false, + allowPrototypes: false, + arrayLimit: 20, + decoder: utils.decode, delimiter: '&', depth: 5, - arrayLimit: 20, parameterLimit: 1000, - strictNullHandling: false, plainObjects: false, - allowPrototypes: false, - allowDots: false, - decoder: Utils.decode + strictNullHandling: false }; var parseValues = function parseValues(str, options) { @@ -135,7 +135,7 @@ module.exports = function (str, opts) { throw new TypeError('Decoder has to be a function.'); } - options.delimiter = typeof options.delimiter === 'string' || Utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter; + 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; @@ -159,8 +159,8 @@ module.exports = function (str, opts) { for (var i = 0; i < keys.length; ++i) { var key = keys[i]; var newObj = parseKeys(key, tempObj[key], options); - obj = Utils.merge(obj, newObj, options); + obj = utils.merge(obj, newObj, options); } - return Utils.compact(obj); + return utils.compact(obj); }; 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 6e1c9a263c..88cd791064 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 @@ -1,6 +1,7 @@ 'use strict'; -var Utils = require('./utils'); +var utils = require('./utils'); +var formats = require('./formats'); var arrayPrefixGenerators = { brackets: function brackets(prefix) { @@ -14,20 +15,25 @@ var arrayPrefixGenerators = { } }; +var toISO = Date.prototype.toISOString; + var defaults = { delimiter: '&', - strictNullHandling: false, - skipNulls: false, encode: true, - encoder: Utils.encode + encoder: utils.encode, + serializeDate: function serializeDate(date) { + return toISO.call(date); + }, + skipNulls: false, + strictNullHandling: false }; -var stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots) { +var stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter) { var obj = object; if (typeof filter === 'function') { obj = filter(prefix, obj); } else if (obj instanceof Date) { - obj = obj.toISOString(); + obj = serializeDate(obj); } else if (obj === null) { if (strictNullHandling) { return encoder ? encoder(prefix) : prefix; @@ -36,11 +42,11 @@ var stringify = function stringify(object, prefix, generateArrayPrefix, strictNu obj = ''; } - if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || Utils.isBuffer(obj)) { + if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) { if (encoder) { - return [encoder(prefix) + '=' + encoder(obj)]; + return [formatter(encoder(prefix)) + '=' + formatter(encoder(obj))]; } - return [prefix + '=' + String(obj)]; + return [formatter(prefix) + '=' + formatter(String(obj))]; } var values = []; @@ -65,9 +71,33 @@ var stringify = function stringify(object, prefix, generateArrayPrefix, strictNu } if (Array.isArray(obj)) { - values = values.concat(stringify(obj[key], generateArrayPrefix(prefix, key), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots)); + values = values.concat(stringify( + obj[key], + generateArrayPrefix(prefix, key), + generateArrayPrefix, + strictNullHandling, + skipNulls, + encoder, + filter, + sort, + allowDots, + serializeDate, + formatter + )); } else { - values = values.concat(stringify(obj[key], prefix + (allowDots ? '.' + key : '[' + key + ']'), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots)); + values = values.concat(stringify( + obj[key], + prefix + (allowDots ? '.' + key : '[' + key + ']'), + generateArrayPrefix, + strictNullHandling, + skipNulls, + encoder, + filter, + sort, + allowDots, + serializeDate, + formatter + )); } } @@ -84,6 +114,13 @@ module.exports = function (object, opts) { 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 serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate; + if (typeof options.format === 'undefined') { + options.format = formats.default; + } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) { + throw new TypeError('Unknown format option provided.'); + } + var formatter = formats.formatters[options.format]; var objKeys; var filter; @@ -95,7 +132,8 @@ module.exports = function (object, opts) { filter = options.filter; obj = filter('', obj); } else if (Array.isArray(options.filter)) { - objKeys = filter = options.filter; + filter = options.filter; + objKeys = filter; } var keys = []; @@ -130,7 +168,19 @@ module.exports = function (object, opts) { continue; } - keys = keys.concat(stringify(obj[key], key, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots)); + keys = keys.concat(stringify( + obj[key], + key, + generateArrayPrefix, + strictNullHandling, + skipNulls, + encoder, + filter, + sort, + allowDots, + serializeDate, + formatter + )); } 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 2c5c8ee503..33c01c000d 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 @@ -1,16 +1,18 @@ 'use strict'; +var has = Object.prototype.hasOwnProperty; + var hexTable = (function () { - var array = new Array(256); + var array = []; for (var i = 0; i < 256; ++i) { - array[i] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase(); + array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase()); } return array; }()); exports.arrayToObject = function (source, options) { - var obj = options.plainObjects ? Object.create(null) : {}; + var obj = options && options.plainObjects ? Object.create(null) : {}; for (var i = 0; i < source.length; ++i) { if (typeof source[i] !== 'undefined') { obj[i] = source[i]; @@ -46,6 +48,21 @@ exports.merge = function (target, source, options) { mergeTarget = exports.arrayToObject(target, options); } + if (Array.isArray(target) && Array.isArray(source)) { + source.forEach(function (item, i) { + if (has.call(target, i)) { + if (target[i] && typeof target[i] === 'object') { + target[i] = exports.merge(target[i], item, options); + } else { + target.push(item); + } + } else { + target[i] = item; + } + }); + return target; + } + return Object.keys(source).reduce(function (acc, key) { var value = source[key]; @@ -143,10 +160,9 @@ exports.compact = function (obj, references) { } var keys = Object.keys(obj); - for (var j = 0; j < keys.length; ++j) { - var key = keys[j]; + keys.forEach(function (key) { obj[key] = exports.compact(obj[key], refs); - } + }); return obj; }; |