{"_id":"node-qs-serialization","_rev":"12-6184afb5cee023b164b931f9518483b8","name":"node-qs-serialization","dist-tags":{"latest":"1.1.0"},"versions":{"0.0.1":{"name":"node-qs-serialization","version":"0.0.1","keywords":["nodejs","jquery","deparam","param","querystring"],"author":{"name":"Edward Smit","email":"edwardsmit@xs4all.nl"},"license":"MIT","_id":"node-qs-serialization@0.0.1","maintainers":[{"name":"edwardsmit","email":"edwardsmit@xs4all.nl"}],"homepage":"https://github.com/edwardsmit/node-qs-serialization","bugs":{"url":"https://github.com/edwardsmit/node-qs-serialization/issues"},"dist":{"shasum":"d91a3eacafcdb3c0206797e4173e5076b3a46948","tarball":"https://registry.npmjs.org/node-qs-serialization/-/node-qs-serialization-0.0.1.tgz","integrity":"sha512-1CmaNd4rdXPRhNJEwUBl6T+UA/FLuQ375UN//M0IKzQAWvjJApQnlGCyGn5KXFbovc/tjqlKtrrDXvWksuIwWw==","signatures":[{"sig":"MEQCIDojlyIIcv5QJ6sjqNu4VT6VsMyNmGjXXK6rC90Bp+QqAiBjSywG799NHa8wt+KOviK7jJ7RtnCfxf3WwPukPKHrzw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"node-qs-serialization.js","_from":".","scripts":{"test":"mocha test"},"_npmUser":{"name":"edwardsmit","email":"edwardsmit@xs4all.nl"},"deprecated":"Use 1.0.0+ — fixes prototype-pollution and depth-DoS shapes; see https://github.com/edwardsmit/node-qs-serialization/releases/tag/v1.0.0","repository":{"url":"https://github.com/edwardsmit/node-qs-serialization.git","type":"git"},"_npmVersion":"1.4.3","description":"Serialization and deserialization of an URL its QueryString based on and compatible with jQuery's $.param method","directories":{},"dependencies":{"lodash":"^2.4.1"},"devDependencies":{"chai":"~1.7.2","grunt":"^0.4.4","mocha":"~1.12.0","matchdep":"^0.3.0","grunt-mocha-test":"^0.10.0","grunt-contrib-jshint":"~0.9.2"}},"0.0.2":{"name":"node-qs-serialization","version":"0.0.2","keywords":["nodejs","jquery","deparam","param","querystring"],"author":{"name":"Edward Smit","email":"edwardsmit@xs4all.nl"},"license":"MIT","_id":"node-qs-serialization@0.0.2","maintainers":[{"name":"edwardsmit","email":"edwardsmit@xs4all.nl"}],"homepage":"https://github.com/edwardsmit/node-qs-serialization","bugs":{"url":"https://github.com/edwardsmit/node-qs-serialization/issues"},"dist":{"shasum":"1fa37757c8dae3549d60ce0e834011fcdc0fdb56","tarball":"https://registry.npmjs.org/node-qs-serialization/-/node-qs-serialization-0.0.2.tgz","integrity":"sha512-YT8CU8gvLTnKcI8TjIDPvup1wU4zmC/tJdfHmGf1PiuRU9uavLjd259AKFwJEKoZqZQ7sknMq49pTiJHLjiiQg==","signatures":[{"sig":"MEYCIQCRx8fNHWT3VAEWNzZOMyYizgi7o5CVoG9Lbo9TEL7jaQIhANT7bUK4Mf8WU43q0sIL2AXX3Av8JfkNXQVxfO88kM1n","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha test"},"_npmUser":{"name":"edwardsmit","email":"edwardsmit@xs4all.nl"},"deprecated":"Use 1.0.0+ — fixes prototype-pollution and depth-DoS shapes; see https://github.com/edwardsmit/node-qs-serialization/releases/tag/v1.0.0","repository":{"url":"https://github.com/edwardsmit/node-qs-serialization.git","type":"git"},"_npmVersion":"1.4.3","description":"Serialization and deserialization of an URL its QueryString based on and compatible with jQuery's $.param method","directories":{},"dependencies":{},"devDependencies":{"chai":"~1.7.2","grunt":"^0.4.4","mocha":"~1.12.0","matchdep":"^0.3.0","grunt-mocha-test":"^0.10.0","grunt-jscs-checker":"^0.4.1","grunt-contrib-jshint":"^0.10.0"}},"1.0.0":{"name":"node-qs-serialization","version":"1.0.0","keywords":["nodejs","jquery","deparam","param","querystring"],"author":{"name":"Edward Smit","email":"edwardsmit@xs4all.nl"},"license":"MIT","_id":"node-qs-serialization@1.0.0","maintainers":[{"name":"edwardsmit","email":"npmjs@edwardsmit.com"}],"homepage":"https://github.com/edwardsmit/node-qs-serialization","bugs":{"url":"https://github.com/edwardsmit/node-qs-serialization/issues"},"dist":{"shasum":"fdcbc095f7ed420baf3ef4f36c6de54e02b356c6","tarball":"https://registry.npmjs.org/node-qs-serialization/-/node-qs-serialization-1.0.0.tgz","fileCount":7,"integrity":"sha512-CXLBox09RtY3yaNzWGdRZExqRh9PC4IsUNZ24WYIba0PjbTJWUSGqtyic3HBQZGaH4Z+opbBGIb7VTPNps0YiQ==","signatures":[{"sig":"MEUCIQDtvFwqxjxTI2dcn7zpXaAKwPq8Xw57IpFqjDV8HCmeBQIgI/0gb0rCQMqMmx05Xu4nwNMeSDjkIJ689f08BkGINuQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10981},"main":"index.js","engines":{"node":">=0.10"},"gitHead":"e37a79154c43ecd4f41d786c0d2c3142a1ad6f23","scripts":{"test":"mocha test","test:floor":"docker run --rm --platform linux/amd64 -v \"$PWD\":/app -w /app node:4 sh -c 'node test/smoke-floor.js'","test:smoke":"node test/smoke-floor.js"},"_npmUser":{"name":"edwardsmit","email":"npmjs@edwardsmit.com"},"repository":{"url":"git+https://github.com/edwardsmit/node-qs-serialization.git","type":"git"},"_npmVersion":"10.9.2","description":"Serialization and deserialization of an URL its QueryString based on and compatible with jQuery's $.param method","directories":{},"_nodeVersion":"23.11.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"chai":"~1.7.2","grunt":"^0.4.4","mocha":"~1.12.0","matchdep":"^0.3.0","grunt-mocha-test":"^0.10.0","grunt-jscs-checker":"^0.4.1","grunt-contrib-jshint":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/node-qs-serialization_1.0.0_1779259963756_0.6558561687623785","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Use 1.1.0+ — qs-backed deparam with the same API. See https://github.com/edwardsmit/node-qs-serialization/releases/tag/v1.1.0"},"1.1.0":{"name":"node-qs-serialization","version":"1.1.0","keywords":["nodejs","jquery","deparam","param","querystring"],"author":{"name":"Edward Smit","email":"edwardsmit@xs4all.nl"},"license":"MIT","_id":"node-qs-serialization@1.1.0","maintainers":[{"name":"edwardsmit","email":"npmjs@edwardsmit.com"}],"homepage":"https://github.com/edwardsmit/node-qs-serialization","bugs":{"url":"https://github.com/edwardsmit/node-qs-serialization/issues"},"dist":{"shasum":"5034735f86c1cdb98cf9f7af9d0e03ff862b95c3","tarball":"https://registry.npmjs.org/node-qs-serialization/-/node-qs-serialization-1.1.0.tgz","fileCount":7,"integrity":"sha512-KqRAJ8jNdBbzC+5tJz6KyKYcUR7IQ2jdufrj6vd0dtPbXSM2SNS+7/UPLxLS/lDEoc0V4wm65CXsJG0ycJFPLA==","signatures":[{"sig":"MEQCIFZIz8YPM6YeKliPjhaUjLd7fsCFc45FZ5G1oO7wgUSZAiBFYYIw93EaqK1T+lqqpIbwTXoOqpAE12PcHcna7RYujQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9523},"main":"index.js","engines":{"node":">=0.10"},"gitHead":"ed6dcfec1101eae586eccbfd0fb5d63a6711d25b","scripts":{"test":"mocha test","test:floor":"docker run --rm --platform linux/amd64 -v \"$PWD\":/app -w /app node:4 sh -c 'node test/smoke-floor.js'","test:smoke":"node test/smoke-floor.js"},"_npmUser":{"name":"edwardsmit","email":"npmjs@edwardsmit.com"},"repository":{"url":"git+https://github.com/edwardsmit/node-qs-serialization.git","type":"git"},"_npmVersion":"8.19.4","description":"Serialization and deserialization of an URL its QueryString based on and compatible with jQuery's $.param method","directories":{},"_nodeVersion":"16.20.2","dependencies":{"qs":"^6.15.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"~1.7.2","grunt":"^0.4.4","mocha":"~1.12.0","matchdep":"^0.3.0","grunt-mocha-test":"^0.10.0","grunt-jscs-checker":"^0.4.1","grunt-contrib-jshint":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/node-qs-serialization_1.1.0_1779267844598_0.6261928816173461","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2014-04-04T10:36:13.659Z","modified":"2026-05-20T09:05:04.012Z","0.0.1":"2014-04-04T10:36:13.659Z","0.0.2":"2014-04-05T12:44:52.559Z","1.0.0":"2026-05-20T06:52:43.925Z","1.1.0":"2026-05-20T09:04:04.735Z"},"bugs":{"url":"https://github.com/edwardsmit/node-qs-serialization/issues"},"author":{"name":"Edward Smit","email":"edwardsmit@xs4all.nl"},"license":"MIT","homepage":"https://github.com/edwardsmit/node-qs-serialization","keywords":["nodejs","jquery","deparam","param","querystring"],"repository":{"url":"git+https://github.com/edwardsmit/node-qs-serialization.git","type":"git"},"description":"Serialization and deserialization of an URL its QueryString based on and compatible with jQuery's $.param method","maintainers":[{"name":"edwardsmit","email":"npmjs@edwardsmit.com"}],"readme":"node-qs-serialization\n===================\nSerialization and deserialization of Javascript objects for use in the querystring part of an url.\nSlightly modified from jQuery's $.param function [$.param method](http://api.jquery.com/jQuery.param/) and Ben Alman's [jquery-bbq](https://github.com/cowboy/jquery-bbq/) with license info for both included.\n\n`deparam` delegates parsing to [`qs`](https://github.com/ljharb/qs) and adds an ISO-8859 percent-encoding fallback, type coercion, and per-parameter depth and prototype-key rejection on top. `param` is the original pure-JS jQuery-traditional serializer.\n\nparam serializes any Javascript object to a valid querystring.\ndeparam deserializes a provided querystring.\n\n```javascript\nvar param = require('node-qs-serialization').param;\nvar deparam = require('node-qs-serialization').deparam;\n\nvar paramStr = 'a[]=4&a[]=5&a[]=6&b[x][]=7&b[y]=8&b[z][]=9&b[z][]=0&b[z][]=true&b[z][]=false&b[z][]=undefined&b[z][]=&c=1';\nvar paramsObj = {\n    a: [4,5,6],\n    b:{\n        x:[7],\n        y:8,\n        z:[9,0,true,false,undefined,'']\n    },\n    c:1\n};\n\nparam(paramsObj).should.equal(paramStr);\ndeparam(paramStr).should.deep.equal(paramsObj);\n\n```\n\nInstall\n==============\n```\nnpm install node-qs-serialization\n```\n\n(Or from source: `npm install github:edwardsmit/node-qs-serialization`.)\n\nUsage\n===============\n```\nvar param = require('node-qs-serialization').param;\nvar deparam = require('node-qs-serialization').deparam;\nvar paramsObj = deparam(querystring);\nvar querystring = param(paramsObj);\n```\n\n### `deparam(querystring, coerce = true, maxDepth = 5)`\n\n- `coerce` — when `true` (default), strings `\"true\"`, `\"false\"`, `\"null\"`, `\"undefined\"` and numeric values are converted to their JS equivalents.\n- `maxDepth` — caps nested bracket depth (default `5`). Parameters whose key path exceeds this depth are silently dropped. Keys equal to `__proto__`, `constructor`, or `prototype` are always rejected to prevent prototype pollution.\n\nSecurity\n===============\nSee [SECURITY.md](./SECURITY.md) for disclosure policy.\n\nLicense\n===============\nMIT — see [LICENSE](./LICENSE) for full text including the attributions to jQuery and jquery-bbq from which `param` and `deparam` are adapted.\n","readmeFilename":"README.md","users":{"rafegoldberg":true}}