{"ast":null,"code":"'use strict';\n\nvar utils = require(\"./utils\");\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar defaults = {\n  allowDots: false,\n  allowPrototypes: false,\n  allowSparse: false,\n  arrayLimit: 20,\n  charset: 'utf-8',\n  charsetSentinel: false,\n  comma: false,\n  decoder: utils.decode,\n  delimiter: '&',\n  depth: 5,\n  ignoreQueryPrefix: false,\n  interpretNumericEntities: false,\n  parameterLimit: 1000,\n  parseArrays: true,\n  plainObjects: false,\n  strictNullHandling: false\n};\n\nvar interpretNumericEntities = function interpretNumericEntities(str) {\n  return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n    return String.fromCharCode(parseInt(numberStr, 10));\n  });\n};\n\nvar parseArrayValue = function parseArrayValue(val, options) {\n  if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n    return val.split(',');\n  }\n\n  return val;\n};\n\nvar isoSentinel = 'utf8=%26%2310003%3B';\nvar charsetSentinel = 'utf8=%E2%9C%93';\n\nvar parseValues = function parseQueryStringValues(str, options) {\n  var obj = {};\n  var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n  var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n  var parts = cleanStr.split(options.delimiter, limit);\n  var skipIndex = -1;\n  var i;\n  var charset = options.charset;\n\n  if (options.charsetSentinel) {\n    for (i = 0; i < parts.length; ++i) {\n      if (parts[i].indexOf('utf8=') === 0) {\n        if (parts[i] === charsetSentinel) {\n          charset = 'utf-8';\n        } else if (parts[i] === isoSentinel) {\n          charset = 'iso-8859-1';\n        }\n\n        skipIndex = i;\n        i = parts.length;\n      }\n    }\n  }\n\n  for (i = 0; i < parts.length; ++i) {\n    if (i === skipIndex) {\n      continue;\n    }\n\n    var part = parts[i];\n    var bracketEqualsPos = part.indexOf(']=');\n    var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n    var key, val;\n\n    if (pos === -1) {\n      key = options.decoder(part, defaults.decoder, charset, 'key');\n      val = options.strictNullHandling ? null : '';\n    } else {\n      key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n      val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options), function (encodedVal) {\n        return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n      });\n    }\n\n    if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n      val = interpretNumericEntities(val);\n    }\n\n    if (part.indexOf('[]=') > -1) {\n      val = isArray(val) ? [val] : val;\n    }\n\n    if (has.call(obj, key)) {\n      obj[key] = utils.combine(obj[key], val);\n    } else {\n      obj[key] = val;\n    }\n  }\n\n  return obj;\n};\n\nvar parseObject = function parseObject(chain, val, options, valuesParsed) {\n  var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n  for (var i = chain.length - 1; i >= 0; --i) {\n    var obj;\n    var root = chain[i];\n\n    if (root === '[]' && options.parseArrays) {\n      obj = [].concat(leaf);\n    } else {\n      obj = options.plainObjects ? Object.create(null) : {};\n      var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n      var index = parseInt(cleanRoot, 10);\n\n      if (!options.parseArrays && cleanRoot === '') {\n        obj = {\n          0: leaf\n        };\n      } else if (!isNaN(index) && root !== cleanRoot && String(index) === cleanRoot && index >= 0 && options.parseArrays && index <= options.arrayLimit) {\n        obj = [];\n        obj[index] = leaf;\n      } else {\n        obj[cleanRoot] = leaf;\n      }\n    }\n\n    leaf = obj;\n  }\n\n  return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n  if (!givenKey) {\n    return;\n  }\n\n  var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n  var brackets = /(\\[[^[\\]]*])/;\n  var child = /(\\[[^[\\]]*])/g;\n  var segment = options.depth > 0 && brackets.exec(key);\n  var parent = segment ? key.slice(0, segment.index) : key;\n  var keys = [];\n\n  if (parent) {\n    if (!options.plainObjects && has.call(Object.prototype, parent)) {\n      if (!options.allowPrototypes) {\n        return;\n      }\n    }\n\n    keys.push(parent);\n  }\n\n  var i = 0;\n\n  while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n    i += 1;\n\n    if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n      if (!options.allowPrototypes) {\n        return;\n      }\n    }\n\n    keys.push(segment[1]);\n  }\n\n  if (segment) {\n    keys.push('[' + key.slice(segment.index) + ']');\n  }\n\n  return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n  if (!opts) {\n    return defaults;\n  }\n\n  if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n    throw new TypeError('Decoder has to be a function.');\n  }\n\n  if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n    throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n  }\n\n  var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n  return {\n    allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n    allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n    allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n    arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n    charset: charset,\n    charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n    comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n    decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n    delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n    depth: typeof opts.depth === 'number' || opts.depth === false ? +opts.depth : defaults.depth,\n    ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n    interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n    parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n    parseArrays: opts.parseArrays !== false,\n    plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n    strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n  };\n};\n\nmodule.exports = function (str, opts) {\n  var options = normalizeParseOptions(opts);\n\n  if (str === '' || str === null || typeof str === 'undefined') {\n    return options.plainObjects ? Object.create(null) : {};\n  }\n\n  var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n  var obj = options.plainObjects ? Object.create(null) : {};\n  var keys = Object.keys(tempObj);\n\n  for (var i = 0; i < keys.length; ++i) {\n    var key = keys[i];\n    var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n    obj = utils.merge(obj, newObj, options);\n  }\n\n  if (options.allowSparse === true) {\n    return obj;\n  }\n\n  return utils.compact(obj);\n};","map":{"version":3,"sources":["/Users/nishan/Desktop/oss/responsive-breakpoints/example/node_modules/expo-linking/node_modules/qs/lib/parse.js"],"names":["utils","require","has","Object","prototype","hasOwnProperty","isArray","Array","defaults","allowDots","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","decoder","decode","delimiter","depth","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictNullHandling","str","replace","$0","numberStr","String","fromCharCode","parseInt","parseArrayValue","val","options","indexOf","split","isoSentinel","parseValues","parseQueryStringValues","obj","cleanStr","limit","Infinity","undefined","parts","skipIndex","i","length","part","bracketEqualsPos","pos","key","slice","maybeMap","encodedVal","call","combine","parseObject","chain","valuesParsed","leaf","root","concat","create","cleanRoot","charAt","index","isNaN","parseKeys","parseQueryStringKeys","givenKey","brackets","child","segment","exec","parent","keys","push","normalizeParseOptions","opts","TypeError","isRegExp","module","exports","tempObj","newObj","merge","compact"],"mappings":"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","sourcesContent":["'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n    allowDots: false,\n    allowPrototypes: false,\n    allowSparse: false,\n    arrayLimit: 20,\n    charset: 'utf-8',\n    charsetSentinel: false,\n    comma: false,\n    decoder: utils.decode,\n    delimiter: '&',\n    depth: 5,\n    ignoreQueryPrefix: false,\n    interpretNumericEntities: false,\n    parameterLimit: 1000,\n    parseArrays: true,\n    plainObjects: false,\n    strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n    return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n        return String.fromCharCode(parseInt(numberStr, 10));\n    });\n};\n\nvar parseArrayValue = function (val, options) {\n    if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n        return val.split(',');\n    }\n\n    return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('&#10003;')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n    var obj = {};\n    var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n    var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n    var parts = cleanStr.split(options.delimiter, limit);\n    var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n    var i;\n\n    var charset = options.charset;\n    if (options.charsetSentinel) {\n        for (i = 0; i < parts.length; ++i) {\n            if (parts[i].indexOf('utf8=') === 0) {\n                if (parts[i] === charsetSentinel) {\n                    charset = 'utf-8';\n                } else if (parts[i] === isoSentinel) {\n                    charset = 'iso-8859-1';\n                }\n                skipIndex = i;\n                i = parts.length; // The eslint settings do not allow break;\n            }\n        }\n    }\n\n    for (i = 0; i < parts.length; ++i) {\n        if (i === skipIndex) {\n            continue;\n        }\n        var part = parts[i];\n\n        var bracketEqualsPos = part.indexOf(']=');\n        var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n        var key, val;\n        if (pos === -1) {\n            key = options.decoder(part, defaults.decoder, charset, 'key');\n            val = options.strictNullHandling ? null : '';\n        } else {\n            key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n            val = utils.maybeMap(\n                parseArrayValue(part.slice(pos + 1), options),\n                function (encodedVal) {\n                    return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n                }\n            );\n        }\n\n        if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n            val = interpretNumericEntities(val);\n        }\n\n        if (part.indexOf('[]=') > -1) {\n            val = isArray(val) ? [val] : val;\n        }\n\n        if (has.call(obj, key)) {\n            obj[key] = utils.combine(obj[key], val);\n        } else {\n            obj[key] = val;\n        }\n    }\n\n    return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n    var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n    for (var i = chain.length - 1; i >= 0; --i) {\n        var obj;\n        var root = chain[i];\n\n        if (root === '[]' && options.parseArrays) {\n            obj = [].concat(leaf);\n        } else {\n            obj = options.plainObjects ? Object.create(null) : {};\n            var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n            var index = parseInt(cleanRoot, 10);\n            if (!options.parseArrays && cleanRoot === '') {\n                obj = { 0: leaf };\n            } else if (\n                !isNaN(index)\n                && root !== cleanRoot\n                && String(index) === cleanRoot\n                && index >= 0\n                && (options.parseArrays && index <= options.arrayLimit)\n            ) {\n                obj = [];\n                obj[index] = leaf;\n            } else {\n                obj[cleanRoot] = leaf;\n            }\n        }\n\n        leaf = obj;\n    }\n\n    return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n    if (!givenKey) {\n        return;\n    }\n\n    // Transform dot notation to bracket notation\n    var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n    // The regex chunks\n\n    var brackets = /(\\[[^[\\]]*])/;\n    var child = /(\\[[^[\\]]*])/g;\n\n    // Get the parent\n\n    var segment = options.depth > 0 && brackets.exec(key);\n    var parent = segment ? key.slice(0, segment.index) : key;\n\n    // Stash the parent if it exists\n\n    var keys = [];\n    if (parent) {\n        // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n        if (!options.plainObjects && has.call(Object.prototype, parent)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        keys.push(parent);\n    }\n\n    // Loop through children appending to the array until we hit depth\n\n    var i = 0;\n    while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n        i += 1;\n        if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n        keys.push(segment[1]);\n    }\n\n    // If there's a remainder, just add whatever is left\n\n    if (segment) {\n        keys.push('[' + key.slice(segment.index) + ']');\n    }\n\n    return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n    if (!opts) {\n        return defaults;\n    }\n\n    if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n        throw new TypeError('Decoder has to be a function.');\n    }\n\n    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n        throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n    }\n    var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n    return {\n        allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n        allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n        allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n        arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n        charset: charset,\n        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n        comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n        decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n        delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n        // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n        depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n        ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n        interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n        parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n        parseArrays: opts.parseArrays !== false,\n        plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n    };\n};\n\nmodule.exports = function (str, opts) {\n    var options = normalizeParseOptions(opts);\n\n    if (str === '' || str === null || typeof str === 'undefined') {\n        return options.plainObjects ? Object.create(null) : {};\n    }\n\n    var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n    var obj = options.plainObjects ? Object.create(null) : {};\n\n    // Iterate over the keys and setup the new object\n\n    var keys = Object.keys(tempObj);\n    for (var i = 0; i < keys.length; ++i) {\n        var key = keys[i];\n        var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n        obj = utils.merge(obj, newObj, options);\n    }\n\n    if (options.allowSparse === true) {\n        return obj;\n    }\n\n    return utils.compact(obj);\n};\n"]},"metadata":{},"sourceType":"script"}