summaryrefslogtreecommitdiff
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/index.js15
-rwxr-xr-xdeps/npm/node_modules/request/node_modules/qs/lib/parse.js155
-rwxr-xr-xdeps/npm/node_modules/request/node_modules/qs/lib/stringify.js55
-rwxr-xr-xdeps/npm/node_modules/request/node_modules/qs/lib/utils.js133
4 files changed, 358 insertions, 0 deletions
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
new file mode 100755
index 000000000..0e094933d
--- /dev/null
+++ b/deps/npm/node_modules/request/node_modules/qs/lib/index.js
@@ -0,0 +1,15 @@
+// Load modules
+
+var Stringify = require('./stringify');
+var Parse = require('./parse');
+
+
+// Declare internals
+
+var internals = {};
+
+
+module.exports = {
+ stringify: Stringify,
+ parse: Parse
+};
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
new file mode 100755
index 000000000..4a3fdd974
--- /dev/null
+++ b/deps/npm/node_modules/request/node_modules/qs/lib/parse.js
@@ -0,0 +1,155 @@
+// Load modules
+
+var Utils = require('./utils');
+
+
+// Declare internals
+
+var internals = {
+ delimiter: '&',
+ depth: 5,
+ arrayLimit: 20,
+ parametersLimit: 1000
+};
+
+
+internals.parseValues = function (str, delimiter) {
+
+ delimiter = typeof delimiter === 'string' ? delimiter : internals.delimiter;
+
+ var obj = {};
+ var parts = str.split(delimiter, internals.parametersLimit);
+
+ for (var i = 0, il = parts.length; i < il; ++i) {
+ var part = parts[i];
+ var pos = part.indexOf(']=') === -1 ? part.indexOf('=') : part.indexOf(']=') + 1;
+
+ if (pos === -1) {
+ obj[Utils.decode(part)] = '';
+ }
+ else {
+ var key = Utils.decode(part.slice(0, pos));
+ var val = Utils.decode(part.slice(pos + 1));
+
+ if (!obj[key]) {
+ obj[key] = val;
+ }
+ else {
+ obj[key] = [].concat(obj[key]).concat(val);
+ }
+ }
+ }
+
+ return obj;
+};
+
+
+internals.parseObject = function (chain, val) {
+
+ if (!chain.length) {
+ return val;
+ }
+
+ var root = chain.shift();
+
+ var obj = {};
+ if (root === '[]') {
+ obj = [];
+ obj = obj.concat(internals.parseObject(chain, val));
+ }
+ else {
+ var cleanRoot = root[0] === '[' && root[root.length - 1] === ']' ? root.slice(1, root.length - 1) : root;
+ var index = parseInt(cleanRoot, 10);
+ if (!isNaN(index) &&
+ root !== cleanRoot &&
+ index <= internals.arrayLimit) {
+
+ obj = [];
+ obj[index] = internals.parseObject(chain, val);
+ }
+ else {
+ obj[cleanRoot] = internals.parseObject(chain, val);
+ }
+ }
+
+ return obj;
+};
+
+
+internals.parseKeys = function (key, val, depth) {
+
+ if (!key) {
+ return;
+ }
+
+ // The regex chunks
+
+ var parent = /^([^\[\]]*)/;
+ var child = /(\[[^\[\]]*\])/g;
+
+ // Get the parent
+
+ var segment = parent.exec(key);
+
+ // Don't allow them to overwrite object prototype properties
+
+ if (Object.prototype.hasOwnProperty(segment[1])) {
+ return;
+ }
+
+ // Stash the parent if it exists
+
+ var keys = [];
+ if (segment[1]) {
+ keys.push(segment[1]);
+ }
+
+ // Loop through children appending to the array until we hit depth
+
+ var i = 0;
+ while ((segment = child.exec(key)) !== null && i < depth) {
+
+ ++i;
+ if (!Object.prototype.hasOwnProperty(segment[1].replace(/\[|\]/g, ''))) {
+ keys.push(segment[1]);
+ }
+ }
+
+ // If there's a remainder, just add whatever is left
+
+ if (segment) {
+ keys.push('[' + key.slice(segment.index) + ']');
+ }
+
+ return internals.parseObject(keys, val);
+};
+
+
+module.exports = function (str, depth, delimiter) {
+
+ if (str === '' ||
+ str === null ||
+ typeof str === 'undefined') {
+
+ return {};
+ }
+
+ if (typeof depth !== 'number') {
+ delimiter = depth;
+ depth = internals.depth;
+ }
+
+ var tempObj = typeof str === 'string' ? internals.parseValues(str, delimiter) : Utils.clone(str);
+ var obj = {};
+
+ // Iterate over the keys and setup the new object
+ //
+ for (var key in tempObj) {
+ if (tempObj.hasOwnProperty(key)) {
+ var newObj = internals.parseKeys(key, tempObj[key], depth);
+ obj = Utils.merge(obj, newObj);
+ }
+ }
+
+ 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
new file mode 100755
index 000000000..1cc3df9fc
--- /dev/null
+++ b/deps/npm/node_modules/request/node_modules/qs/lib/stringify.js
@@ -0,0 +1,55 @@
+// Load modules
+
+
+// Declare internals
+
+var internals = {
+ delimiter: '&'
+};
+
+
+internals.stringify = function (obj, prefix) {
+
+ if (Buffer.isBuffer(obj)) {
+ obj = obj.toString();
+ }
+ else if (obj instanceof Date) {
+ obj = obj.toISOString();
+ }
+ else if (obj === null) {
+ obj = '';
+ }
+
+ if (typeof obj === 'string' ||
+ typeof obj === 'number' ||
+ typeof obj === 'boolean') {
+
+ return [encodeURIComponent(prefix) + '=' + encodeURIComponent(obj)];
+ }
+
+ var values = [];
+
+ for (var key in obj) {
+ if (obj.hasOwnProperty(key)) {
+ values = values.concat(internals.stringify(obj[key], prefix + '[' + key + ']'));
+ }
+ }
+
+ return values;
+};
+
+
+module.exports = function (obj, delimiter) {
+
+ delimiter = typeof delimiter === 'undefined' ? internals.delimiter : delimiter;
+
+ var keys = [];
+
+ for (var key in obj) {
+ if (obj.hasOwnProperty(key)) {
+ keys = keys.concat(internals.stringify(obj[key], key));
+ }
+ }
+
+ 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
new file mode 100755
index 000000000..3f5c149d5
--- /dev/null
+++ b/deps/npm/node_modules/request/node_modules/qs/lib/utils.js
@@ -0,0 +1,133 @@
+// Load modules
+
+
+// Declare internals
+
+var internals = {};
+
+
+exports.arrayToObject = function (source) {
+
+ var obj = {};
+ for (var i = 0, il = source.length; i < il; ++i) {
+ if (typeof source[i] !== 'undefined') {
+
+ obj[i] = source[i];
+ }
+ }
+
+ return obj;
+};
+
+
+exports.clone = function (source) {
+
+ if (typeof source !== 'object' ||
+ source === null) {
+
+ return source;
+ }
+
+ if (Buffer.isBuffer(source)) {
+ return source.toString();
+ }
+
+ var obj = Array.isArray(source) ? [] : {};
+ for (var i in source) {
+ if (source.hasOwnProperty(i)) {
+ obj[i] = exports.clone(source[i]);
+ }
+ }
+
+ return obj;
+};
+
+
+exports.merge = function (target, source) {
+
+ if (!source) {
+ return target;
+ }
+
+ var obj = exports.clone(target);
+
+ if (Array.isArray(source)) {
+ for (var i = 0, il = source.length; i < il; ++i) {
+ if (typeof source[i] !== 'undefined') {
+ if (typeof obj[i] === 'object') {
+ obj[i] = exports.merge(obj[i], source[i]);
+ }
+ else {
+ obj[i] = source[i];
+ }
+ }
+ }
+
+ return obj;
+ }
+
+ if (Array.isArray(obj)) {
+ obj = exports.arrayToObject(obj);
+ }
+
+ var keys = Object.keys(source);
+ for (var k = 0, kl = keys.length; k < kl; ++k) {
+ var key = keys[k];
+ var value = source[key];
+
+ if (value &&
+ typeof value === 'object') {
+
+ if (!obj[key]) {
+ obj[key] = exports.clone(value);
+ }
+ else {
+ obj[key] = exports.merge(obj[key], value);
+ }
+ }
+ else {
+ obj[key] = value;
+ }
+ }
+
+ return obj;
+};
+
+
+exports.decode = function (str) {
+
+ try {
+ return decodeURIComponent(str.replace(/\+/g, ' '));
+ } catch (e) {
+ return str;
+ }
+};
+
+
+exports.compact = function (obj) {
+
+ if (typeof obj !== 'object' || obj === null) {
+ return obj;
+ }
+
+ var compacted = {};
+
+ for (var key in obj) {
+ if (obj.hasOwnProperty(key)) {
+ if (Array.isArray(obj[key])) {
+ compacted[key] = [];
+
+ for (var i = 0, l = obj[key].length; i < l; i++) {
+ if (typeof obj[key][i] !== 'undefined') {
+ compacted[key].push(obj[key][i]);
+ }
+ }
+ }
+ else {
+ compacted[key] = exports.compact(obj[key]);
+ }
+ }
+ }
+
+ return compacted;
+};