{
  "_args": [
    [
      {
        "raw": "query-string@^5.0.1",
        "scope": null,
        "escapedName": "query-string",
        "name": "query-string",
        "rawSpec": "^5.0.1",
        "spec": ">=5.0.1 <6.0.0",
        "type": "range"
      },
      "/home/zkochan/src/pnpm/packages/pnpm/node_modules/normalize-url"
    ]
  ],
  "_from": "query-string@>=5.0.1 <6.0.0",
  "_id": "query-string@5.1.1",
  "_inCache": true,
  "_location": "/query-string",
  "_nodeVersion": "8.9.4",
  "_npmOperationalInternal": {
    "host": "s3://npm-registry-packages",
    "tmp": "tmp/query-string_5.1.1_1521003106466_0.4587538452807758"
  },
  "_npmUser": {
    "name": "sindresorhus",
    "email": "sindresorhus@gmail.com"
  },
  "_npmVersion": "5.6.0",
  "_phantomChildren": {},
  "_requested": {
    "raw": "query-string@^5.0.1",
    "scope": null,
    "escapedName": "query-string",
    "name": "query-string",
    "rawSpec": "^5.0.1",
    "spec": ">=5.0.1 <6.0.0",
    "type": "range"
  },
  "_requiredBy": [
    "/normalize-url"
  ],
  "_resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
  "_shasum": "a78c012b71c17e05f2e3fa2319dd330682efb3cb",
  "_shrinkwrap": null,
  "_spec": "query-string@^5.0.1",
  "_where": "/home/zkochan/src/pnpm/packages/pnpm/node_modules/normalize-url",
  "author": {
    "name": "Sindre Sorhus",
    "email": "sindresorhus@gmail.com",
    "url": "sindresorhus.com"
  },
  "bugs": {
    "url": "https://github.com/sindresorhus/query-string/issues"
  },
  "dependencies": {
    "decode-uri-component": "^0.2.0",
    "object-assign": "^4.1.0",
    "strict-uri-encode": "^1.0.0"
  },
  "description": "Parse and stringify URL query strings",
  "devDependencies": {
    "ava": "^0.17.0",
    "xo": "^0.16.0"
  },
  "directories": {},
  "dist": {
    "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
    "shasum": "a78c012b71c17e05f2e3fa2319dd330682efb3cb",
    "tarball": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
    "fileCount": 4,
    "unpackedSize": 12666
  },
  "engines": {
    "node": ">=0.10.0"
  },
  "files": [
    "index.js"
  ],
  "gitHead": "8b5d5ec5e0503c892e779a0063bd1a06b841677d",
  "homepage": "https://github.com/sindresorhus/query-string#readme",
  "keywords": [
    "browser",
    "querystring",
    "query",
    "string",
    "qs",
    "param",
    "parameter",
    "url",
    "uri",
    "parse",
    "stringify",
    "encode",
    "decode"
  ],
  "license": "MIT",
  "maintainers": [
    {
      "name": "sindresorhus",
      "email": "sindresorhus@gmail.com"
    }
  ],
  "name": "query-string",
  "optionalDependencies": {},
  "readme": "# query-string [![Build Status](https://travis-ci.org/sindresorhus/query-string.svg?branch=master)](https://travis-ci.org/sindresorhus/query-string)\n\n> Parse and stringify URL [query strings](https://en.wikipedia.org/wiki/Query_string)\n\n---\n\n<p align=\"center\"><b>🔥 Want to strengthen your core JavaScript skills and master ES6?</b><br>I would personally recommend this awesome <a href=\"https://ES6.io/friend/AWESOME\">ES6 course</a> by Wes Bos.<br>Also check out his <a href=\"https://LearnNode.com/friend/AWESOME\">Node.js</a>, <a href=\"https://ReactForBeginners.com/friend/AWESOME\">React</a>, <a href=\"https://SublimeTextBook.com/friend/AWESOME\">Sublime</a> courses.</p>\n\n---\n\n\n## Install\n\n```\n$ npm install query-string\n```\n\n<a href=\"https://www.patreon.com/sindresorhus\">\n\t<img src=\"https://c5.patreon.com/external/logo/become_a_patron_button@2x.png\" width=\"160\">\n</a>\n\n\n## Usage\n\n```js\nconst queryString = require('query-string');\n\nconsole.log(location.search);\n//=> '?foo=bar'\n\nconst parsed = queryString.parse(location.search);\nconsole.log(parsed);\n//=> {foo: 'bar'}\n\nconsole.log(location.hash);\n//=> '#token=bada55cafe'\n\nconst parsedHash = queryString.parse(location.hash);\nconsole.log(parsedHash);\n//=> {token: 'bada55cafe'}\n\nparsed.foo = 'unicorn';\nparsed.ilike = 'pizza';\n\nconst stringified = queryString.stringify(parsed);\n//=> 'foo=unicorn&ilike=pizza'\n\nlocation.search = stringified;\n// note that `location.search` automatically prepends a question mark\nconsole.log(location.search);\n//=> '?foo=unicorn&ilike=pizza'\n```\n\n\n## API\n\n### .parse(*string*, *[options]*)\n\nParse a query string into an object. Leading `?` or `#` are ignored, so you can pass `location.search` or `location.hash` directly.\n\nThe returned object is created with [`Object.create(null)`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create) and thus does not have a `prototype`.\n\nURI components are decoded with [`decode-uri-component`](https://github.com/SamVerschueren/decode-uri-component).\n\n#### arrayFormat\n\nType: `string`<br>\nDefault: `'none'`\n\nSupports both `index` for an indexed array representation or `bracket` for a *bracketed* array representation.\n\n- `bracket`: stands for parsing correctly arrays with bracket representation on the query string, such as:\n\n```js\nqueryString.parse('foo[]=1&foo[]=2&foo[]=3', {arrayFormat: 'bracket'});\n//=> foo: [1,2,3]\n```\n\n- `index`: stands for parsing taking the index into account, such as:\n\n```js\nqueryString.parse('foo[0]=1&foo[1]=2&foo[3]=3', {arrayFormat: 'index'});\n//=> foo: [1,2,3]\n```\n\n- `none`: is the **default** option and removes any bracket representation, such as:\n\n```js\nqueryString.parse('foo=1&foo=2&foo=3');\n//=> foo: [1,2,3]\n```\n\n### .stringify(*object*, *[options]*)\n\nStringify an object into a query string, sorting the keys.\n\n#### strict\n\nType: `boolean`<br>\nDefault: `true`\n\nStrictly encode URI components with [strict-uri-encode](https://github.com/kevva/strict-uri-encode). It uses [encodeURIComponent](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent)\nif set to false. You probably [don't care](https://github.com/sindresorhus/query-string/issues/42) about this option.\n\n#### encode\n\nType: `boolean`<br>\nDefault: `true`\n\n[URL encode](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent) the keys and values.\n\n#### arrayFormat\n\nType: `string`<br>\nDefault: `'none'`\n\nSupports both `index` for an indexed array representation or `bracket` for a *bracketed* array representation.\n\n- `bracket`: stands for parsing correctly arrays with bracket representation on the query string, such as:\n\n```js\nqueryString.stringify({foo: [1,2,3]}, {arrayFormat: 'bracket'});\n// => foo[]=1&foo[]=2&foo[]=3\n```\n\n- `index`: stands for parsing taking the index into account, such as:\n\n```js\nqueryString.stringify({foo: [1,2,3]}, {arrayFormat: 'index'});\n// => foo[0]=1&foo[1]=2&foo[3]=3\n```\n\n- `none`: is the __default__ option and removes any bracket representation, such as:\n\n```js\nqueryString.stringify({foo: [1,2,3]});\n// => foo=1&foo=2&foo=3\n```\n\n#### sort\n\nType: `Function` `boolean`\n\nSupports both `Function` as a custom sorting function or `false` to disable sorting.\n\n```js\nconst order = ['c', 'a', 'b'];\nqueryString.stringify({ a: 1, b: 2, c: 3}, {\n\tsort: (m, n) => order.indexOf(m) >= order.indexOf(n)\n});\n// => 'c=3&a=1&b=2'\n```\n\n```js\nqueryString.stringify({ b: 1, c: 2, a: 3}, {sort: false});\n// => 'c=3&a=1&b=2'\n```\n\nIf omitted, keys are sorted using `Array#sort`, which means, converting them to strings and comparing strings in Unicode code point order.\n\n### .extract(*string*)\n\nExtract a query string from a URL that can be passed into `.parse()`.\n\n### .parseUrl(*string*, *[options]*)\n\nExtract the URL and the query string as an object.\n\nThe `options` are the same as for `.parse()`.\n\nReturns an object with a `url` and `query` property.\n\n```js\nqueryString.parseUrl('https://foo.bar?foo=bar');\n//=> {url: 'https://foo.bar', query: {foo: 'bar'}}\n```\n\n\n## Nesting\n\nThis module intentionally doesn't support nesting as it's not spec'd and varies between implementations, which causes a lot of [edge cases](https://github.com/visionmedia/node-querystring/issues).\n\nYou're much better off just converting the object to a JSON string:\n\n```js\nqueryString.stringify({\n\tfoo: 'bar',\n\tnested: JSON.stringify({\n\t\tunicorn: 'cake'\n\t})\n});\n//=> 'foo=bar&nested=%7B%22unicorn%22%3A%22cake%22%7D'\n```\n\nHowever, there is support for multiple instances of the same key:\n\n```js\nqueryString.parse('likes=cake&name=bob&likes=icecream');\n//=> {likes: ['cake', 'icecream'], name: 'bob'}\n\nqueryString.stringify({color: ['taupe', 'chartreuse'], id: '515'});\n//=> 'color=chartreuse&color=taupe&id=515'\n```\n\n\n## Falsy values\n\nSometimes you want to unset a key, or maybe just make it present without assigning a value to it. Here is how falsy values are stringified:\n\n```js\nqueryString.stringify({foo: false});\n//=> 'foo=false'\n\nqueryString.stringify({foo: null});\n//=> 'foo'\n\nqueryString.stringify({foo: undefined});\n//=> ''\n```\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
  "readmeFilename": "readme.md",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/sindresorhus/query-string.git"
  },
  "scripts": {
    "test": "xo && ava"
  },
  "version": "5.1.1"
}
