NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1861 most downloaded on npm
Parse and stringify URL query strings
Last release 1 months ago
01 Sep 2026
Release timing varies
gaps range from 9 days to 8 months
Nearly every release is documented
notes for 57 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
92 releases · first in 2013
Fix stringifyUrl() dropping a leading # in the fragment identifier and throwing on some absolute URLs 47b5b30
stringifyUrl() dropping a leading # in the fragment identifier and throwing on some absolute URLs 47b5b30Update dependencies 55e453d v9.4.1...v9.5.0
One column per quarter.
Fix relative URLs with fragments 872fb6f
Improve performance 482b19a v9.3.1...v9.4.0
Fix custom type functions with array formats 720f2ff
Add replacer option to stringify() 509014d
Accept valueless parameters as true when using a boolean with types option (#410) 557a550
true when using a boolean with types option (#410) 557a550Fix stringifyUrl not respecting passed in options 38dae7b
Add support for boolean type in the types option (#407) 10d263a
Fix types option with arrayFormat: comma and one item in array (#406) 3e61882
Fix arrayFormat bracket-separator with a URL encoded value (#392) 19c43d4
arrayFormat bracket-separator with a URL encoded value (#392) 19c43d4Add `types` option to the .parse() method (#385) 672eb82
types option to the .parse() method (#385) 672eb82https://github.com/sindresorhus/query-string/compare/v9.0.0...v9.1.0
Fix passing empty fragmentIdentifier to stringifyUrl() cc232cb
fragmentIdentifier to stringifyUrl() cc232cbhttps://github.com/sindresorhus/query-string/compare/v8.2.0...v9.0.0
Allow BigInt as stringifiable value in the types (#377) 7f84490
https://github.com/sindresorhus/query-string/compare/v8.1.0...v8.2.0
Upgrade dependencies (#365) 20cc109
https://github.com/sindresorhus/query-string/compare/v8.0.3...v8.1.0
Fix typo in a TypeScript type 7bba5bb
https://github.com/sindresorhus/query-string/compare/v8.0.2...v8.0.3
Improve compatibility with bundlers (#361) 81f78e6
https://github.com/sindresorhus/query-string/compare/v8.0.1...v8.0.2
Fix TypeScript compatibility 76f8fc5
https://github.com/sindresorhus/query-string/compare/v8.0.0...v8.0.1
This package is now pure ESM. Please [read this](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c).
"module": "node16", "moduleResolution": "node16" to your tsconfig.json. (Example)fragmentIdentifier (#355) 16a7b8fhttps://github.com/sindresorhus/query-string/compare/v7.1.3...v8.0.0
Update dependencies (#354) e60e797
https://github.com/sindresorhus/query-string/compare/v7.1.2...v7.1.3
Update dependency (#353) d2c3596
https://github.com/sindresorhus/query-string/compare/v7.1.1...v7.1.2
Fix ParsedQuery type to allow null in array (#338) 5331579
ParsedQuery type to allow null in array (#338) 5331579https://github.com/sindresorhus/query-string/compare/v7.1.0...v7.1.1
Add support for parameters with an explicit :list marker (#335) 6d220e6
:list marker (#335) 6d220e6https://github.com/sindresorhus/query-string/compare/v7.0.1...v7.1.0
Don't encode the fragment identifier in .pick and .exclude (#320) fd3e779
.pick and .exclude (#320) fd3e779https://github.com/sindresorhus/query-string/compare/v7.0.0...v7.0.1
This is a breaking change to the default functionality of .stringify() for comma and separator array modes given that skipNull and skipEmptyString are…
.stringify() for comma and separator array modes given that skipNull and skipEmptyString are default false but the original functionality of .stringify() for these 2 modes behaved as though skipNull and skipEmptyString were true.arrayFormat: 'bracket-separator' (#276) b10bc19https://github.com/sindresorhus/query-string/compare/v6.14.1...v7.0.0
Fix TypeScript type for stringifyUrl() a6d4a3f
stringifyUrl() a6d4a3fhttps://github.com/sindresorhus/query-string/compare/v6.14.0...v6.14.1
Add `.pick()` and `.exclude()` (#282) 6ed5cb3
.pick() and .exclude() (#282) 6ed5cb3https://github.com/sindresorhus/query-string/compare/v6.13.8...v6.14.0
Work around TypeScript bug 94ebcd4
https://github.com/sindresorhus/query-string/compare/v6.13.7...v6.13.8
Allow readonly Stringifiable[] in StringifiableRecord (#291) 71d84b7
Stringifiable[] in StringifiableRecord (#291) 71d84b7https://github.com/sindresorhus/query-string/compare/v6.13.6...v6.13.7
When only receiving values with encoded array value, decode values (#287) b38f06c
https://github.com/sindresorhus/query-string/compare/v6.13.5...v6.13.6
Allow null and undefined in Stringifiable TypeScript type (#281) df4cbb3
null and undefined in Stringifiable TypeScript type (#281) df4cbb3https://github.com/sindresorhus/query-string/compare/v6.13.4...v6.13.5
Fix the TypeScript types for .stringify() and .stringifyUrl() (#279) 38906bc
.stringify() and .stringifyUrl() (#279) 38906bchttps://github.com/sindresorhus/query-string/compare/v6.13.3...v6.13.4
Fix the TypeScript type for the .stringifyUrl() method b15f945
.stringifyUrl() method b15f945https://github.com/sindresorhus/query-string/compare/v6.13.2...v6.13.3
Fix the ParsedQuery TypeScript type 56d2923
ParsedQuery TypeScript type 56d2923https://github.com/sindresorhus/query-string/compare/v6.13.1...v6.13.2
Fix sorting existing query params in URL when sort option is false (#265) 549d677
sort option is false (#265) 549d677https://github.com/sindresorhus/query-string/compare/v6.13.0...v6.13.1
Add support for parsing/stringifying fragment identifier (#222) ce06095
https://github.com/sindresorhus/query-string/compare/v6.12.1...v6.13.0
Fix value being decoded twice with arrayFormat option set to separator (#243) 3b4c295
arrayFormat option set to separator (#243) 3b4c295https://github.com/sindresorhus/query-string/compare/v6.12.0...v6.12.1
Add `skipEmptyString` option (#252) 20233a6
skipEmptyString option (#252) 20233a6https://github.com/sindresorhus/query-string/compare/v6.11.1...v6.12.0
Fix arrayFormatSeparator TypeScript type (#245) 338072a
arrayFormatSeparator TypeScript type (#245) 338072ahttps://github.com/sindresorhus/query-string/compare/v6.11.0...v6.11.1
Support custom array separator (#234) 7712622
arrayFormat: 'comma' (#236) a1d108fhttps://github.com/sindresorhus/query-string/compare/v6.10.1...v6.11.0
Fix issue with using Rollup b3179c4
https://github.com/sindresorhus/query-string/compare/v6.10.0...v6.10.1
Add `.stringifyUrl()` method (#217) 1604958
.stringifyUrl() method (#217) 1604958https://github.com/sindresorhus/query-string/compare/v6.9.0...v6.10.0
Add option to skip keys with the value of null in .stringify() (#215) 20d8069
null in .stringify() (#215) 20d8069+ to space when decode is true (#214) e20ab65https://github.com/sindresorhus/query-string/compare/v6.8.3...v6.9.0
Make parseNumbers and parseBooleans options work with arrayFormat (#202) d2451aa
parseNumbers and parseBooleans options work with arrayFormat (#202) d2451aahttps://github.com/sindresorhus/query-string/compare/v6.8.2...v6.8.3
Ensure empty string & spaces are parsed as string when parseNumber: true (#195) 504c29b
parseNumber: true (#195) 504c29bhttps://github.com/sindresorhus/query-string/compare/v6.8.1...v6.8.2
Fix using the parseNumbers and parseBooleans options together (#187) 90eb40e
parseNumbers and parseBooleans options together (#187) 90eb40ehttps://github.com/sindresorhus/query-string/compare/v6.8.0...v6.8.1
Add parseBooleans option to .parse() (#183) f958329
Enhancements:
parseBooleans option to .parse() (#183) f958329Fixes:
https://github.com/sindresorhus/query-string/compare/v6.7.0...v6.8.0
Add parseNumbers option to .parse() (#171) f7be831
parseNumbers option to .parse() (#171) f7be831https://github.com/sindresorhus/query-string/compare/v6.6.0...v6.7.0
Add sort option to .parse() (#177) b75ca4a
Enhancements:
sort option to .parse() (#177) b75ca4aFixes:
https://github.com/sindresorhus/query-string/compare/v6.5.0...v6.6.0
Support stringifying array containing value 0 (#173) 317cb36
.extract() (#174) 64a30dahttps://github.com/sindresorhus/query-string/compare/v6.4.2...v6.5.0
Correctly handle query strings that contain = (#169) 78e321c
= (#169) 78e321chttps://github.com/sindresorhus/query-string/compare/v6.4.0...v6.4.2
Add comma format to the arrayFormat option (#167) b22c2af
comma format to the arrayFormat option (#167) b22c2afParsedQuery TypeScript type (#170) 49d2203https://github.com/sindresorhus/query-string/compare/v6.3.0...v6.4.0
Add TypeScript definition (#168) 2c2e77a
https://github.com/sindresorhus/query-string/compare/v6.2.0...v6.3.0
Supports hash in parseUrl(). https://github.com/sindresorhus/query-string/commit/5b4ce872f826b7a919f6d062b728d0dc28c18291
parseUrl(). https://github.com/sindresorhus/query-string/commit/5b4ce872f826b7a919f6d062b728d0dc28c18291{sort: false}. https://github.com/sindresorhus/query-string/commit/b20493effe099e662df234110f2958bda2567a01https://github.com/sindresorhus/query-string/compare/v6.1.0...v6.2.0
Added decode option to .parse(). https://github.com/sindresorhus/query-string/commit/3fd6fd9c3ffb5232107e47afd787e43ed5df78c1
decode option to .parse(). https://github.com/sindresorhus/query-string/commit/3fd6fd9c3ffb5232107e47afd787e43ed5df78c1.stringify() for bracket mode with arrays containing null. https://github.com/sindresorhus/query-string/commit/e5a6c1f16d0a3483bbc03f2049d86398227941fbhttps://github.com/sindresorhus/query-string/compare/v6.0.0...v6.1.0
We now target Node.js 6 or later and the latest version of Chrome, Firefox, and Safari. If you want support for older browsers, use version 5: npm ins
We now target Node.js 6 or later and the latest version of Chrome, Firefox, and Safari. If you want support for older browsers, use version 5: npm install query-string@5. Same goes for Create React App v1 users (v2 works though), since it doesn't transpile node_modules.
https://github.com/sindresorhus/query-string/compare/v5.1.1...v6.0.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
We're now using a better decoder that can gracefully handle many invalid query string found in the wild. This is a major version just to be on the saf
We're now using a better decoder that can gracefully handle many invalid query string found in the wild. This is a major version just to be on the safe side. Most users should be unaffected by this. See: https://github.com/sindresorhus/query-string/commit/a69bdd57e216406be92cbbb72882395df927b01f
Your coding agent can read these notes before it upgrades. Set up the MCP server →