{"_id":"koa-qs","_rev":"2906316","name":"koa-qs","description":"qs for koa","dist-tags":{"latest":"3.0.0"},"maintainers":[{"name":"aaron","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":""},{"name":"dead-horse","email":""},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":""},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"niftylettuce","email":""},{"name":"titanism","email":""},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"time":{"modified":"2022-12-14T07:20:07.000Z","created":"2013-12-19T10:06:53.505Z","3.0.0":"2020-05-27T06:21:30.845Z","2.0.0":"2015-02-28T04:36:11.886Z","1.1.0":"2015-02-27T09:43:40.090Z","1.0.1":"2014-09-16T06:59:05.099Z","1.0.0":"2013-12-19T10:06:53.505Z"},"users":{},"author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"repository":{"type":"git","url":"git+https://github.com/koajs/qs.git"},"versions":{"3.0.0":{"name":"koa-qs","description":"qs for koa","version":"3.0.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Nick Baugh","email":"niftylettuce@gmail.com","url":"http://niftylettuce.com/"},{"name":"Imed Jaberi","email":"imed_jebari@hotmail.fr","url":"https://www.3imed-jaberi.com/"}],"dependencies":{"merge-descriptors":"^1.0.1","qs":"^6.9.4"},"devDependencies":{"koa":"^2.11.0","koa-convert":"^1.2.0","mocha":"^7.1.2","nyc":"^15.0.1","rimraf":"^3.0.2","should":"^13.2.3","supertest":"^4.0.2","urllib":"^2.34.2"},"engines":{"node":">= 8"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/koajs/qs.git"},"scripts":{"ci":"npm run coverage","coverage":"nyc --reporter=lcov --reporter=text-lcov npm test","postcoverage":"nyc report","precoverage":"rimraf .nyc_output coverage","test":"mocha"},"gitHead":"255df004f0cd4fd39a9a5926e78076b39828332d","bugs":{"url":"https://github.com/koajs/qs/issues"},"homepage":"https://github.com/koajs/qs#readme","_id":"koa-qs@3.0.0","_nodeVersion":"12.16.1","_npmVersion":"6.13.7","_npmUser":{"name":"niftylettuce","email":"niftylettuce@gmail.com"},"dist":{"shasum":"390b0b5e9be0658b0f863ceb121da9a414b78d78","size":2976,"noattachment":false,"key":"/koa-qs/-/koa-qs-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/koa-qs/download/koa-qs-3.0.0.tgz"},"maintainers":[{"name":"aaron","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":""},{"name":"dead-horse","email":""},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":""},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"niftylettuce","email":""},{"name":"titanism","email":""},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/koa-qs_3.0.0_1590560490542_0.9951747887154376"},"_hasShrinkwrap":false,"publish_time":1590560490845,"_cnpm_publish_time":1590560490845,"_cnpmcore_publish_time":"2021-12-17T07:55:14.580Z"},"2.0.0":{"name":"koa-qs","description":"qs for koa","version":"2.0.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/koajs/qs"},"dependencies":{"merge-descriptors":"~0.0.2","qs":"~2.3.3"},"devDependencies":{"istanbul-harmony":"*","koa":"0","mocha":"2","should":"3","supertest":"0","urllib":"2"},"scripts":{"test":"NODE_ENV=test mocha --harmony --require should --reporter spec","test-cov":"NODE_ENV=test node --harmony ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --require should","test-travis":"NODE_ENV=test node --harmony ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha --report lcovonly -- --require should"},"engines":{"node":">= 0.11","iojs":">= 1.0.0"},"files":["index.js"],"gitHead":"5472d3bd84510e4ff5027aa189f15c2619ea7694","bugs":{"url":"https://github.com/koajs/qs/issues"},"homepage":"https://github.com/koajs/qs","_id":"koa-qs@2.0.0","_shasum":"18d16b43508a541f092e514351dc09563a48819f","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"fengmk2","email":"fengmk2@gmail.com"},"maintainers":[{"name":"aaron","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":""},{"name":"dead-horse","email":""},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":""},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"niftylettuce","email":""},{"name":"titanism","email":""},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"dist":{"shasum":"18d16b43508a541f092e514351dc09563a48819f","size":2907,"noattachment":false,"key":"/koa-qs/-/koa-qs-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/koa-qs/download/koa-qs-2.0.0.tgz"},"directories":{},"publish_time":1425098171886,"_hasShrinkwrap":false,"_cnpm_publish_time":1425098171886,"_cnpmcore_publish_time":"2021-12-17T07:55:14.845Z"},"1.1.0":{"name":"koa-qs","description":"qs for koa","version":"1.1.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/koajs/qs"},"dependencies":{"merge-descriptors":"~0.0.2"},"devDependencies":{"istanbul-harmony":"*","koa":"0","mocha":"1","qs":"*","should":"3","supertest":"0","urllib":"~2.3.0"},"peerDependencies":{"qs":"*"},"scripts":{"test":"NODE_ENV=test mocha --harmony --require should --reporter spec","test-cov":"NODE_ENV=test node --harmony ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --require should","test-travis":"NODE_ENV=test node --harmony ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha --report lcovonly -- --require should"},"engines":{"node":">= 0.11","iojs":">= 1.0.0"},"files":["index.js"],"gitHead":"4e1fd124911f03acf4f9ed07ba6822be07193fbd","bugs":{"url":"https://github.com/koajs/qs/issues"},"homepage":"https://github.com/koajs/qs","_id":"koa-qs@1.1.0","_shasum":"df076903f941f19a591bce8dd5319096a24fb6c5","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"fengmk2","email":"fengmk2@gmail.com"},"maintainers":[{"name":"aaron","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":""},{"name":"dead-horse","email":""},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":""},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"niftylettuce","email":""},{"name":"titanism","email":""},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"dist":{"shasum":"df076903f941f19a591bce8dd5319096a24fb6c5","size":2848,"noattachment":false,"key":"/koa-qs/-/koa-qs-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/koa-qs/download/koa-qs-1.1.0.tgz"},"directories":{},"publish_time":1425030220090,"_hasShrinkwrap":false,"_cnpm_publish_time":1425030220090,"_cnpmcore_publish_time":"2021-12-17T07:55:15.041Z"},"1.0.1":{"name":"koa-qs","description":"qs for koa","version":"1.0.1","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/koajs/qs"},"dependencies":{"merge-descriptors":"0.0.2"},"devDependencies":{"istanbul-harmony":"0","qs":"*","koa":"0","mocha":"1","should":"3","supertest":"0"},"peerDependencies":{"qs":"*"},"scripts":{"test":"NODE_ENV=test mocha --harmony-generators --require should --reporter spec","test-cov":"NODE_ENV=test node --harmony-generators ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --require should","test-travis":"NODE_ENV=test node --harmony-generators ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha --report lcovonly -- --require should"},"engines":{"node":">= 0.11"},"files":["index.js"],"gitHead":"f32f106f471665260b8754643d37bf77c79ab952","bugs":{"url":"https://github.com/koajs/qs/issues"},"homepage":"https://github.com/koajs/qs","_id":"koa-qs@1.0.1","_shasum":"d5b01fd2a2973b8943d75c8e3a50fbb8cbd39f77","_from":".","_npmVersion":"1.4.26","_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"maintainers":[{"name":"aaron","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":""},{"name":"dead-horse","email":""},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":""},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"niftylettuce","email":""},{"name":"titanism","email":""},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"dist":{"shasum":"d5b01fd2a2973b8943d75c8e3a50fbb8cbd39f77","size":1212,"noattachment":false,"key":"/koa-qs/-/koa-qs-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/koa-qs/download/koa-qs-1.0.1.tgz"},"directories":{},"publish_time":1410850745099,"_hasShrinkwrap":false,"_cnpm_publish_time":1410850745099,"_cnpmcore_publish_time":"2021-12-17T07:55:15.440Z"},"1.0.0":{"name":"koa-qs","description":"qs for koa","version":"1.0.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/funraiseme/simgr.git"},"bugs":{"url":"https://github.com/funraiseme/simgr/issues"},"dependencies":{"merge-descriptors":"0.0.2"},"devDependencies":{"qs":"*","koa":"*","mocha":"*","should":"*","supertest":"*"},"peerDependencies":{"qs":"*"},"scripts":{"test":"mocha --harmony --reporter spec --require should"},"engines":{"node":">= 0.11.3"},"readmeFilename":"README.md","homepage":"https://github.com/funraiseme/simgr","_id":"koa-qs@1.0.0","dist":{"shasum":"6bf9e12c1e8668df8f5b51a9bd51226c72eefeeb","size":1882,"noattachment":false,"key":"/koa-qs/-/koa-qs-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/koa-qs/download/koa-qs-1.0.0.tgz"},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"maintainers":[{"name":"aaron","email":"aaron.heckmann+github@gmail.com"},{"name":"coderhaoxin","email":""},{"name":"dead-horse","email":""},{"name":"dead_horse","email":"dead_horse@qq.com"},{"name":"eivifj","email":""},{"name":"fengmk2","email":"fengmk2@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"juliangruber","email":"julian@juliangruber.com"},{"name":"niftylettuce","email":""},{"name":"titanism","email":""},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1387447613505,"_hasShrinkwrap":false,"_cnpm_publish_time":1387447613505,"_cnpmcore_publish_time":"2021-12-17T07:55:15.704Z"}},"readme":"# Koa Querystring\n\n[![NPM version][npm-image]][npm-url]\n[![build status][travis-image]][travis-url]\n[![Test coverage][coveralls-image]][coveralls-url]\n[![David deps][david-image]][david-url]\n[![node version][node-image]][node-url]\n[![npm download][download-image]][download-url]\n\n[npm-image]: https://img.shields.io/npm/v/koa-qs.svg?style=flat-square\n[npm-url]: https://npmjs.org/package/koa-qs\n[travis-image]: https://img.shields.io/travis/koajs/qs.svg?style=flat-square\n[travis-url]: https://travis-ci.org/koajs/qs\n[coveralls-image]: https://img.shields.io/coveralls/koajs/qs.svg?style=flat-square\n[coveralls-url]: https://coveralls.io/r/koajs/qs?branch=master\n[david-image]: https://img.shields.io/david/koajs/qs.svg?style=flat-square\n[david-url]: https://david-dm.org/koajs/qs\n[node-image]: https://img.shields.io/badge/node.js-%3E=_8-green.svg?style=flat-square\n[node-url]: http://nodejs.org/download/\n[download-image]: https://img.shields.io/npm/dm/koa-qs.svg?style=flat-square\n[download-url]: https://npmjs.org/package/koa-qs\n\nBy default, Koa uses the native `querystring` module which does not provide nesting support.\nThis patches a koa app with nesting support via the [qs](https://github.com/ljharb/qs) support,\nwhich is also used by Connect and Express.\n\nSimply wrap a koa app with this module:\n\n```js\n// Koa 1.x.x\nconst koa = require('koa')\nconst app = koa()\nrequire('koa-qs')(app)\n// Koa 2.x.x\nconst Koa = require('koa')\nconst app = new Koa()\nrequire('koa-qs')(app)\n```\n\n## Optional parse mode\n\nThere're three parse mode.\n\n## `extended` mode\n\nThe default mode, use [qs] module.\n\n```js\nrequire('koa-qs')(app, 'extended')\n```\n\n## `simple` mode\n\nUse `querystring` module, same as koa does by default.\nIf you want to use this mode, don't use this module.\n\n## `strict` mode\n\nThis mode make `this.query.foo` return strict `array`.\n\n```js\nrequire('koa-qs')(app, 'strict')\n```\n\n#### What's different\n\nA normal request `GET /foo?p=a&q=foo&q=bar`.\n\n- before patch\n\n```js\nconsole.log('%j', this.query);\n{\n  \"p\": \"a\",\n  \"q\": [\"foo\", \"bar\"]\n}\n```\n\n- after patch\n\n```js\nconsole.log('%j', this.query);\n{\n  \"p\": [\"a\"],\n  \"q\": [\"foo\", \"bar\"]\n}\n```\n\n## `first` mode\n\nThis mode make `this.query.foo` return strict `string`. Disable multi values.\n\nIf querystring contains multi same name params, return the **first** item.\n\n```js\nrequire('koa-qs')(app, 'first')\n```\n\nIn 95% use cases, application only want `string` query params.\n\nThis patch can avoid some stupid `TypeError` and some security issues like [MongoDB inject](http://www.wooyun.org/bugs/wooyun-2010-086474)\nwhen the developers forget handling query params type check.\n\n#### What's different\n\nA normal request `GET /foo?p=a,b&p=b,c`.\n\n- before patch\n\n```js\nconsole.log('%j', this.query.p);\n[\"a,b\", \"b,c\"]\n```\n\n- after patch\n\n```js\nconsole.log('%j', this.query.p);\n\"a,b\"\n```\n\n## License\n\n[MIT](LICENSE)\n","_attachments":{},"homepage":"https://github.com/koajs/qs#readme","bugs":{"url":"https://github.com/koajs/qs/issues"},"license":"MIT"}