chore(deps): bump qs from 6.15.2 to 6.16.0 - #6128
Conversation
Bumps [qs](https://github.com/ljharb/qs) from 6.15.2 to 6.16.0. - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](ljharb/qs@v6.15.2...v6.16.0) --- updated-dependencies: - dependency-name: qs dependency-version: 6.16.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
🟡 Waiting for changesLast updated: 2026-09-03 05:48 UTC |
rtibblesbot
left a comment
There was a problem hiding this comment.
PR #6128 — qs 6.15.2 → 6.16.0 (spans 6.15.3), minor, production dependency (package.json dependencies). CI passing (Frontend tests, Build frontend assets, Browser smoke test, All file linting).
Breaking changes: none.
Peer dependencies: none added. qs gains a direct dep on es-define-property, already in the tree; lockfile churn is confined to qs and side-channel.
Security fixes (both first patched in 6.16.0, so 6.15.2 was affected):
GHSA-4mjr-xmp4-gh2g(medium) —stringifycallsutils.isBuffer()on every value, which invokesobj.constructor.isBuffer(obj)without checking it is callable →TypeError.GHSA-x5fp-wj9c-mxmx(medium) — bracket-key input bypassesarrayLimit/throwOnLimitExceededwhencomma: true.
Compatibility: qs is imported in one place — contentcuration/contentcuration/frontend/shared/client.js:3, for qs.stringify(params, { arrayFormat: 'comma', encoder }). No code changes required.
- New
stringifydepthoption defaults toInfinity— prior behaviour. - Remaining
stringifyfixes are gated onfilter/allowEmptyArrays/encodeDotInKeys, none of which Studio sets;parsefixes are unreachable (Studio never callsparse). - One change can reach Studio's output: 6.15.3's "respect encoding of surrogate pairs across chunks" (#559).
client.jsdelegates todefaultEncoder, so a param over 1024 chars containing astral characters now encodes correctly instead of splitting the pair. Strictly a correction.
suggestion — pnpm-lock.yaml: transitive qs (via body-parser/express) lands on 6.15.3, still inside both advisory ranges. Both reach the tree only through webpack-dev-server, a devDependency, so nothing shipped is exposed — no action needed here, but Dependabot alerts will likely keep flagging qs. A pnpm.overrides pin to ^6.16.0 would silence it if that becomes noisy.
Note: jest_config/globalMocks/client.js:45 replaces paramsSerializer with JSON.stringify, so the Frontend tests job never exercises the real serializer; Build frontend assets + Browser smoke test are the load-bearing signal.
@rtibblesbot's comments are generated by an LLM, and should be evaluated accordingly
How was this generated?
Ran a dependency-update review pipeline over the version bump:
- Classified the bump by semver (patch / minor / major) and dependency type (production vs. development)
- Extracted the changelog and release notes across the version range
- Assessed compatibility with this project's usage and whether any code changes are required
- Treated CI as the primary safety net
- Scaled the review depth to the update's risk
- Chose the verdict from semver risk, changelog findings, and CI status
Bumps qs from 6.15.2 to 6.16.0.
Changelog
Sourced from qs's changelog.
Commits
bb9379ev6.16.062fd254[Fix] stringify: serialize Date values when a filter is provided8859c37[Fix]parse: enforcearrayLimiton comma groups under[]=when `throwOn...8079adc[Tests]parse: remove a test that pinned[]=comma groups escaping `array...d56f48c[Fix]parse: flatten a collection appended to an overflowed arraye83d321[Fix]utils:isBuffer: do not invoke a non-callableconstructor.isBuffer7e87a07[Dev Deps] update@ljharb/eslint-config,eslint9a76af2[Dev Deps] updateeslint,evalmd3a890d4[Dev Deps] updateeslint,evalmdb433a9b[Fix]stringify: do not letallowEmptyArraysskip cycle detection (or dro...Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)You can disable automated security fix PRs for this repo from the Security Alerts page.