qs upgraden van 5.x naar 6.x
Vergelijking van de publieke API van qs 5.2.1 en 6.17.1, automatisch berekend uit hun TypeScript-types. Een gewijzigde signatuur is een mogelijke brekende wijziging, geen zekerheid.
Samenvatting
| Verwijderde importpaden | 0 |
|---|---|
| Verwijderde exports | 0 |
| Gewijzigde signaturen | 0 |
| Verwijderde leden van klassen of interfaces | 0 |
| Gewijzigde leden van klassen of interfaces | 0 |
| Nieuw als verouderd gemarkeerd | 0 |
| Gewijzigde vereisten (engines, peer-afhankelijkheden) | 0 |
| Nieuwe exports | 0 |
Verwijderde exports
Niets gevonden.
Gewijzigde signaturen
Niets gevonden.
Verwijderde leden van klassen of interfaces
Niets gevonden.
Gewijzigde leden van klassen of interfaces
Niets gevonden.
Nieuw als verouderd gemarkeerd
Niets gevonden.
Gewijzigde vereisten (engines, peer-afhankelijkheden)
Niets gevonden.
Changelog tussen deze versies
Tekst gepubliceerd door de pakketauteurs, ongewijzigd weergegeven.
6.17.1
- [Fix] `parse`: `interpretNumericEntities`: decode code points above U+FFFF as surrogate pairs (#640)
- [Fix] `parse`: respect `plainObjects` for `[]` with `parseArrays: false` (#639)
- [Fix] `utils`: `merge`: count the elements of a sparse array against `arrayLimit`, not its holes
- [Fix] `parse`: guard bracket-wrapped prototype keys at depth 0 (#638)
- [Refactor] `parse`: extract wrapping-bracket stripping helper
- [readme] document that `depth: 0` and `depth: false` keep keys flat
- [Tests] `parse`: pin depth-0 bracket stripping and prototype keys kept by `allowPrototypes`/`plainObjects`6.17.0
- [New] `stringify`: add `WHATWG` format (#623)
- [Fix] `stringify`: do not sort the caller's `filter` array in place (#637)
- [Fix] `parse`: copy an own `__proto__` key as data (#636)
- [Fix] `parse`: decode percent-encoded dots case-insensitively (#635)
- [Fix] `stringify`: encode keys when `allowEmptyArrays` is set (#561)
- [Fix] `parse`: preserve comma arrays when interpreting numeric entities (#630)
- [Fix] `parse`: allow scalar fields with a zero array limit (#627)
- [Fix] `parse`: do not count an existing comma array toward `arrayLimit` when `duplicates` discards or replaces it
- [Fix] `utils`: `encode`: encode lone surrogates as U+FFFD instead of consuming the next code unit (#624)
- [eslint] fix indentation
- [readme] document the encoder's `format` argument
- [meta] add changelog acknowledgement
- [meta] fix changelog indents
- [Dev Deps] update `eslint`, `evalmd`, `npmignore`
- [Tests] `stringify`: pin `allowEmptyArrays` output for keys that need no encoding
- [Tests] `stringify`: pin `sort` order for nested keys selected by an array `filter`
- [Tests] `parse`: cover `interpretNumericEntities` across value shapes, keys, and the charset sentinel
- [Tests] `parse`: cover more input that builds no array at a zero or negative `arrayLimit`
- [Tests] `parse`: cover `comma` with a zero or negative `arrayLimit`, and combining a full comma array
- [Tests] `parse`: pin the behavior of a zero or negative `arrayLimit`
- [Tests] `utils`/`stringify`: pin `~`, `*`, and parens encoding in RFC3986 and RFC17386.16.2
- [Fix] `stringify`: encode keys when `allowEmptyArrays` is set (#561)
- [meta] use double quotes for better OS support
- [Dev Deps] update `evalmd`, `npmignore`
- [Tests] `stringify`: pin `allowEmptyArrays` output for keys that need no encoding6.16.1
- [Fix] `parse`: do not mutate an object input
- [Fix] `stringify`: stop re-encoding structural separator dots when `encodeDotInKeys` is set (#564)
- [Fix] `stringify`: `arrayFormat: 'comma'`: pass the full encoder arguments with `encodeValuesOnly`
- [Fix] `utils`: encode `+` as `%2B` in iso-8859-1 mode so values round-trip (#565)
- [Fix] parse: only convert top-level dots to brackets when allowDots is on (#621)
- [Fix] `stringify`: ignore inherited array format names (#622)
- [Fix] `stringify`: `arrayFormat: 'comma'`: do not throw on elements with no callable `toString`
- [Fix] `utils`: `merge`: seed an overflow container's index from its own keys, not just the source
- [Fix] `utils`: `merge`: keep a `strictMerge` conflict container's index and `arrayLimit` correct
- [Fix] `parse`: only treat `[]` as array syntax when it ends the key
- [Perf] `decode`: skip decoders when there is no percent sign (#583)
- [Robustness] `utils`: `merge`: apply `arrayLimit` to the two-element array built for colliding values
- [Robustness] `parse`: bound the nesting added by repeated `strictMerge` conflicts (credit @Yeaseen)
- [Docs] document that `qs` and flat parsers disagree about parameter names
- [Docs] clarify that `throwOnLimitExceeded` limits each array, not the total number of values
- [Docs] clarify 6.14.1/6.15.2 parse bracket behavior change (#567, #568)
- [meta] fix changelog indents
- [actions] set least-privilege `cache-mode`
- [Tests] `utils`: `decode`: add missing cases
- [Tests] `parse`: characterize the `]=` split when an `=` precedes any bracket group (#620)
- [Tests] `parse`: `allowDots`: cover stray close brackets before a dot
- [Dev Deps] update `@ljharb/eslint-config`, `eslint`, `tape`6.16.0
- [New] `stringify`: add a `depth` option to bound recursion depth (default `Infinity`)
- [Fix] stringify: serialize Date values when a filter is provided
- [Fix] `parse`: enforce `arrayLimit` on comma groups under `[]=` when `throwOnLimitExceeded` is set
- [Fix] `parse`: flatten a collection appended to an overflowed array (#571)
- [Fix] `utils`: `isBuffer`: do not invoke a non-callable `constructor.isBuffer`
- [Fix] `stringify`: do not let `allowEmptyArrays` skip cycle detection (or drop own keys) on an empty array with own properties
- [Fix] `stringify`: encode dots in a top-level key with a primitive value when encodeDotInKeys is set (#562)
- [Docs] threat model: clarify `stringify` deep-nesting DoS is caller-bounded
- [Docs] clarify `arrayLimit` is a representation threshold, not an element-count cap
- [Tests] `parse`: remove a test that pinned `[]=` comma groups escaping `arrayLimit`
- [Tests] `stringify`: pin current `encodeDotInKeys` separator-dot behavior
- [Dev Deps] update `@ljharb/eslint-config`, `eslint`
- [Dev Deps] update `eslint`, `evalmd`6.15.4
- [Fix] `stringify`: encode keys when `allowEmptyArrays` is set (#561)
- [meta] use double quotes for better OS support
- [Dev Deps] update `@ljharb/eslint-config`, `evalmd`, `npmignore`, `tape`
- [Tests] `stringify`: pin `allowEmptyArrays` output for keys that need no encoding6.15.3
- [Fix] `parse`: enforce `throwOnLimitExceeded` for cumulative array growth via `combine`/`merge`
- [Fix] `utils`: respect encoding of surrogate pairs across chunks (#559)
- [Robustness] `parse`: throw the `arrayLimit` error before splitting oversized comma values
- [Robustness] `utils.merge` / `utils.assign`: avoid invoking `__proto__` setter when copying own properties
- [Robustness] `utils`: enforce `arrayLimit` consistently across `merge`'s array paths
- [Perf] `utils`: make `compact` O(n) via a side-channel visited-set instead of `Array.indexOf`
- [Deps] update `side-channel`
- [Dev Deps] update `eslint`, `mock-property`, `tape`
- [Tests] `parse`: characterize current lenient handling of unbalanced bracket keys (#558)6.15.2
- [Fix] `stringify`: skip null/undefined entries in `arrayFormat: 'comma'` + `encodeValuesOnly` instead of crashing in `encoder`
- [Fix] `stringify`: use configured `delimiter` after `charsetSentinel` (#555)
- [Fix] `stringify`: apply `formatter` to encoded key under `strictNullHandling` (#554)
- [Fix] `stringify`: skip null/undefined filter-array entries instead of crashing in `encoder` (#551)
- [Fix] `parse`: handle nested bracket groups and add regression tests (#530); changes output for some unbalanced bracket keys (see #558)
- [readme] fix grammar (#550)
- [Dev Deps] update `@ljharb/eslint-config`
- [Tests] add regression tests for keys containing percent-encoded bracket text6.15.1
- [Fix] `parse`: `parameterLimit: Infinity` with `throwOnLimitExceeded: true` silently drops all parameters
- [Deps] update `@ljharb/eslint-config`
- [Dev Deps] update `@ljharb/eslint-config`, `iconv-lite`
- [Tests] increase coverage6.15.0
- [New] `parse`: add `strictMerge` option to wrap object/primitive conflicts in an array (#425, #122)
- [Fix] `duplicates` option should not apply to bracket notation keys (#514)6.14.3
- [Fix] `stringify`: encode keys when `allowEmptyArrays` is set (#561)
- [meta] use double quotes for better OS support
- [Deps] update `side-channel`
- [Dev Deps] update `@ljharb/eslint-config`, `es-value-fixtures`, `eslint`, `evalmd`, `mock-property`, `npmignore`, `tape`
- [Tests] `stringify`: pin `allowEmptyArrays` output for keys that need no encoding6.14.2
- [Fix] `parse`: mark overflow objects for indexed notation exceeding `arrayLimit` (#546)
- [Fix] `arrayLimit` means max count, not max index, in `combine`/`merge`/`parseArrayValue`
- [Fix] `parse`: throw on `arrayLimit` exceeded with indexed notation when `throwOnLimitExceeded` is true (#529)
- [Fix] `parse`: enforce `arrayLimit` on `comma`-parsed values
- [Fix] `parse`: fix error message to reflect arrayLimit as max index; remove extraneous comments (#545)
- [Robustness] avoid `.push`, use `void`
- [readme] document that `addQueryPrefix` does not add `?` to empty output (#418)
- [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
- [readme] replace runkit CI badge with shields.io check-runs badge
- [meta] fix changelog typo (`arrayLength` → `arrayLimit`)
- [actions] fix rebase workflow permissions6.14.1
- [Fix] ensure `arrayLimit` applies to `[]` notation as well
- [Fix] `parse`: when a custom decoder returns `null` for a key, ignore that key
- [Refactor] `parse`: extract key segment splitting helper
- [meta] add threat model
- [actions] add workflow permissions
- [Tests] `stringify`: increase coverage
- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `npmignore`, `es-value-fixtures`, `for-each`, `object-inspect`6.14.0
- [New] `parse`: add `throwOnParameterLimitExceeded` option (#517)
- [Refactor] `parse`: use `utils.combine` more
- [patch] `parse`: add explicit `throwOnLimitExceeded` default
- [actions] use shared action; re-add finishers
- [meta] Fix changelog formatting bug
- [Deps] update `side-channel`
- [Dev Deps] update `es-value-fixtures`, `has-bigints`, `has-proto`, `has-symbols`
- [Tests] increase coverage6.13.4
- [Fix] `stringify`: encode keys when `allowEmptyArrays` is set (#561)
- [meta] use double quotes for better OS support
- [Deps] update `side-channel`
- [Dev Deps] update `@ljharb/eslint-config`, `es-value-fixtures`, `eslint`, `evalmd`, `for-each`, `has-symbols`, `mock-property`, `npmignore`, `object-inspect`, `tape`
- [Tests] `stringify`: pin `allowEmptyArrays` output for keys that need no encoding6.13.3
[Fix] fix regressions from robustness refactor
[actions] update reusable workflows6.13.2
- [Robustness] avoid `.push`, use `void`
- [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
- [readme] document that `addQueryPrefix` does not add `?` to empty output (#418)
- [readme] replace runkit CI badge with shields.io check-runs badge
- [actions] fix rebase workflow permissions6.13.1
- [Fix] `stringify`: avoid a crash when a `filter` key is `null`
- [Fix] `utils.merge`: functions should not be stringified into keys
- [Fix] `parse`: avoid a crash with interpretNumericEntities: true, comma: true, and iso charset
- [Fix] `stringify`: ensure a non-string `filter` does not crash
- [Refactor] use `__proto__` syntax instead of `Object.create` for null objects
- [Refactor] misc cleanup
- [Tests] `utils.merge`: add some coverage
- [Tests] fix a test case
- [actions] split out node 10-20, and 20+
- [Dev Deps] update `es-value-fixtures`, `mock-property`, `object-inspect`, `tape`6.13.0
- [New] `parse`: add `strictDepth` option (#511)
- [Tests] use `npm audit` instead of `aud`6.12.6
- [Fix] `stringify`: encode keys when `allowEmptyArrays` is set (#561)
- [meta] use `npm audit` instead of `aud`
- [Deps] update `side-channel`
- [Dev Deps] update `@ljharb/eslint-config`, `es-value-fixtures`, `eslint`, `evalmd`, `for-each`, `has-symbols`, `mock-property`, `npmignore`, `object-inspect`, `tape`
- [Tests] `stringify`: pin `allowEmptyArrays` output for keys that need no encoding6.12.5
- [Fix] fix regressions from robustness refactor
- [actions] update reusable workflows6.12.4
- [Robustness] avoid `.push`, use `void`
- [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
- [readme] document that `addQueryPrefix` does not add `?` to empty output (#418)
- [readme] replace runkit CI badge with shields.io check-runs badge
- [actions] fix rebase workflow permissions6.12.3
- [Fix] `parse`: properly account for `strictNullHandling` when `allowEmptyArrays`
- [meta] fix changelog indentation6.12.2
- [Fix] `parse`: parse encoded square brackets (#506)
- [readme] add CII best practices badgeGeef je AI-agent deze feiten
Vigia is een gratis MCP-server: je coding-agent controleert versies, breaking changes en kwetsbaarheden voordat hij code schrijft. Geen account, geen API-sleutel.
claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp
Toevoegen aan CursorToevoegen aan VS Code★ Ster op GitHub
Elke andere MCP-client
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }Agent-skill (SKILL.md): vertelt de agent wanneer hij Vigia moet gebruiken · GitHub Action voor pull requests
Veelgestelde vragen
Wat zijn de brekende wijzigingen bij het upgraden van qs van 5 naar 6?
Tussen qs 5.2.1 en 6.17.1 vond Vigia 0 verwijderde exports, 0 gewijzigde signaturen en 0 verwijderde of gewijzigde leden van klassen of interfaces.
Wat is verouderd in qs 6?
0 exports of leden zijn in qs 6.17.1 nieuw als verouderd gemarkeerd.
Voor agents
GET https://vigia.coredls.cloud/v1/packages/npm/qs/upgrade?from=5.2.1&to=6.17.1