fix(deps): pin qs >=6.16.0 (Dependabot #784, #785) - #292
Merged
Conversation
Dependabot alerts 785 and 784. `qs` is transitive, through
@react-native-community/cli-server-api > body-parser@1.20.6, which requests
`~6.15.1`.
- yarn.lock: 6.15.2 -> 6.16.0 (root `resolutions`)
- test-projects/rn-purchasely-test: 6.15.3 -> 6.16.0 (npm `overrides`)
The test project has no alert of its own yet, but it holds 6.15.3, which is
inside both advisory ranges (2.2.5 - 6.15.3). The same override closes it before
Dependabot raises a duplicate pair.
The resolution crosses the tilde of body-parser, so the load path is verified
locally: qs 6.16.0 keeps CommonJS (`main: lib/index.js`, no `type: module`),
`qs.parse('a[b]=1&c=2')` returns the nested object, and
`bodyParser.urlencoded({extended: true})` still builds its middleware.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
macminisupport
approved these changes
Sep 2, 2026
Contributor
|
| Filename | Overview |
|---|---|
| package.json | Adds a root Yarn resolution requiring qs 6.16.0 or newer; the regenerated Yarn lockfile is consistent with it. |
| yarn.lock | Resolves qs to 6.16.0 and includes its updated es-define-property and side-channel dependency tree. |
| test-projects/rn-purchasely-test/package.json | Adds the equivalent npm override for the standalone React Native test project. |
| test-projects/rn-purchasely-test/package-lock.json | Updates the test project’s sole qs installation from 6.15.3 to 6.16.0 with consistent integrity and dependency metadata. |
Reviews (1): Last reviewed commit: "fix(deps): pin qs >=6.16.0 (GHSA-x5fp-wj..." | Re-trigger Greptile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the two remaining open Dependabot alerts. They appeared while CI was running on #291, so they were not part of that batch.
isBufferqsis transitive. The single chain is@react-native-community/cli-server-api@20.1.0 > body-parser@1.20.6 > qs, so it reaches the Metro dev server only, never a publishedpackages/*.Change
Same pattern as #291 — the yarn
resolutionsin the rootpackage.jsonand the npmoverridesin the test project, then both lockfiles regenerated.yarn.locktest-projects/rn-purchasely-test/package-lock.jsonThe test project is included on purpose. It has no alert of its own yet, but it holds 6.15.3, which sits inside both advisory ranges (
2.2.5 - 6.15.3). Fixing it in the same PR stops Dependabot raising a duplicate pair against that lockfile in the coming days. Happy to drop that half if you would rather keep the PR to the two named alerts.Verification
The resolution crosses the
~6.15.1tilde thatbody-parserrequests, so the load path was checked rather than assumed:qs@6.16.0stays CommonJS —main: lib/index.js, no"type": "module". This is the opposite of thedecode-uri-componentcase in fix(deps): handle the 16 open Dependabot alerts #291, where every patched version was ESM only and the bump was therefore impossible.require('qs').parse('a[b]=1&c=2')→{"a":{"b":"1"},"c":"2"}require('body-parser')loads, andbodyParser.urlencoded({extended: true})still builds its middleware.Also green: 249 Jest tests,
yarn lint0 errors,yarn typecheckclean,npm ci --ignore-scriptsin the test project,lockfileVersionstill 3. A per-alert loop confirms the resolved version in each lockfile is at or above the patched version.The
yarn.lockdiff touchesqsplus its dependency tree (side-channel,side-channel-list). Nothing else moved.Alert state after this merges
Dependabot recomputes on the default branch, so #784 and #785 close on merge rather than now. That takes the repo to zero open Dependabot alerts: 15 fixed by #291, #777 dismissed as
not_used, and these last two fixed here.🤖 Generated with Claude Code