{“ast”:null,“code”:“// Copyright Joyent, Inc. and other Node contributors.n//n// Permission is hereby granted, free of charge, to any person obtaining an// copy of this software and associated documentation files (then// "Software"), to deal in the Software without restriction, includingn// without limitation the rights to use, copy, modify, merge, publish,n// distribute, sublicense, and/or sell copies of the Software, and to permitn// persons to whom the Software is furnished to do so, subject to then// following conditions:n//n// The above copyright notice and this permission notice shall be includedn// in all copies or substantial portions of the Software.n//n// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESSn// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OFn// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. INn// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT ORn// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THEn// USE OR OTHER DEALINGS IN THE SOFTWARE.n'use strict'; // If obj.hasOwnProperty has been overridden, then callingn// obj.hasOwnProperty(prop) will break.n// See: github.com/joyent/node/issues/1707nnfunction hasOwnProperty(obj, prop) {n return Object.prototype.hasOwnProperty.call(obj, prop);n}nnmodule.exports = function (qs, sep, eq, options) {n sep = sep || '&';n eq = eq || '=';n var obj = {};nn if (typeof qs !== 'string' || qs.length === 0) {n return obj;n }nn var regexp = /+/g;n qs = qs.split(sep);n var maxKeys = 1000;nn if (options && typeof options.maxKeys === 'number') {n maxKeys = options.maxKeys;n }nn var len = qs.length; // maxKeys <= 0 means that we should not limit keys countnn if (maxKeys > 0 && len > maxKeys) {n len = maxKeys;n }nn for (var i = 0; i < len; ++i) {n var x = qs.replace(regexp, '%20'),n idx = x.indexOf(eq),n kstr,n vstr,n k,n v;nn if (idx >= 0) {n kstr = x.substr(0, idx);n vstr = x.substr(idx + 1);n } else {n kstr = x;n vstr = '';n }nn k = decodeURIComponent(kstr);n v = decodeURIComponent(vstr);nn if (!hasOwnProperty(obj, k)) {n obj = v;n } else if (isArray(obj)) {n obj.push(v);n } else {n obj = [obj, v];n }n }nn return obj;n};nnvar isArray = Array.isArray || function (xs) {n return Object.prototype.toString.call(xs) === '[object Array]';n};”,“map”:null,“metadata”:{},“sourceType”:“module”}