Skip to content

deps: clear open Dependabot alerts#26

Merged
rathboma merged 2 commits into
mainfrom
deps/dependabot-vuln-fixes
May 8, 2026
Merged

deps: clear open Dependabot alerts#26
rathboma merged 2 commits into
mainfrom
deps/dependabot-vuln-fixes

Conversation

@rathboma
Copy link
Copy Markdown
Contributor

@rathboma rathboma commented May 8, 2026

Summary

Clears all 18 open Dependabot alerts by bumping a few direct deps and adding a small resolutions block for the rest of the vulnerable transitive packages.

Direct bumps

  • testcontainers ^10 → ^11 in lib + postgres-server. Brings undici 7.x in place of 5.29, fixing four undici advisories.
  • express ^4.18.2 → ^4.22.1 in server. Relaxes the path-to-regexp pin to ~0.1.12 so the resolution to 0.1.13 applies cleanly.
  • @typescript-eslint/{eslint-plugin,parser} ^6.21.0 → ^7.18.0. Drops typescript-estree's exact pin on the vulnerable minimatch@9.0.3 — v7 uses ^9.0.4, which the resolution then steers to 9.0.9.

Root resolutions

  • follow-redirects ^1.16.0 (transitive via mongodb-memory-server)
  • qs ^6.14.2 (transitive via express/body-parser)
  • diff ^4.0.4 (transitive via ts-node)
  • lodash ^4.18.1 (transitive via archiver)
  • path-to-regexp 0.1.13 (transitive via express)
  • minimatch, pinned per parent so each major line collapses to a non-vulnerable version (3.1.5 / 5.1.9 / 9.0.9).

Why per-parent minimatch resolutions

A single global minimatch resolution to ^9 breaks the test runner. babel-plugin-istanbul (used by jest coverage) goes through test-excludeglob@7require('minimatch')(), and v9 dropped the default function export, so calling it as a function throws minimatch is not a function. The per-parent resolutions keep the v3 callers on the latest 3.x (3.1.5) and the v5/v9 callers on their respective patched lines.

Verified locally

  • yarn typecheck
  • yarn workspace @queryleaf/lib test:unit
  • yarn workspace @queryleaf/cli test
  • yarn workspace @queryleaf/server test:unit
  • yarn workspace @queryleaf/postgres-server test:unit (incl. server.test.ts which is the one that broke under the global resolution)
  • yarn lint runs with the same 147 pre-existing lint issues that exist on main — no new ones from the typescript-eslint v7 bump.

Test plan

  • CI green
  • Dependabot re-scans and clears the listed alerts

rathboma added 2 commits May 8, 2026 10:17
Bump direct deps and add yarn resolutions for vulnerable transitive
packages so the lockfile no longer carries ranges flagged by
Dependabot.

Direct bumps:
- testcontainers ^10 -> ^11 (lib + postgres-server) brings undici 7.x
  in place of 5.29, fixing four undici advisories.
- express ^4.18.2 -> ^4.22.1 (server) relaxes the path-to-regexp pin
  to ~0.1.12 so the resolution to 0.1.13 applies cleanly.
- @typescript-eslint/{eslint-plugin,parser} ^6.21.0 -> ^7.18.0 to drop
  typescript-estree's exact pin on the vulnerable minimatch 9.0.3.

Root-level resolutions:
- follow-redirects ^1.16.0 (mongodb-memory-server transitively)
- qs ^6.14.2
- diff ^4.0.4 (ts-node transitively)
- lodash ^4.18.1 (archiver transitively)
- path-to-regexp 0.1.13 (express transitively)
- minimatch — pinned per parent path so each major line collapses to
  a non-vulnerable version (3.1.5 / 5.1.9 / 9.0.9). A global override
  doesn't work here because some old consumers (test-exclude via
  babel-plugin-istanbul) still call require('minimatch') as a function,
  which only works on the v3 line.

Verified locally: yarn typecheck, all four packages' unit tests, and
yarn lint all run with the same 147 pre-existing lint issues that exist
on main and no new ones.
Both Node 18 (EOL Apr 2025) and Node 20 (maintenance only) lag behind
the dependency tree we now resolve to. Specifically, undici 7 (pulled
in by testcontainers 11) needs Node >= 20.18.1, and Node 18 errors out
on install. Move the matrix to currently-supported LTS lines (22, 24)
and update the publish workflow to match.
@rathboma rathboma merged commit 6c65305 into main May 8, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant