chore(deps): patch the audited advisories and prepare the fastify release - #139
Merged
Merged
Conversation
pnpm audit reported ten advisories, all transitive through dev tooling (jest, supertest, tsup, changesets) or through express, which adopters supply themselves as a peer dependency. The published packages were never affected: `pnpm audit --prod` was clean before this change and stays clean after it. The direct devDependencies were already at their latest versions, so the vulnerable transitives were pinned by upstream ranges and needed overrides. Every override is a patch within the same major line: @babel/core 7.29.0 -> 7.29.7 body-parser 2.2.2 -> 2.3.0 brace-expansion 1.1.14 -> 1.1.17 esbuild 0.27.7 -> 0.28.1 form-data 4.0.5 -> 4.0.6 js-yaml 3.14.2 -> 3.15.0, 4.1.1 -> 4.3.0 That clears nine of the ten. The one left is the brace-expansion out-of-memory advisory, whose vulnerable range covers everything below 5.0.8. Only the 5.x line carries the fix, and 5.x is a relaunch exporting a named `expand` rather than the callable module its consumers require, so minimatch@3 throws on it. Upgrading jest does not help: jest 30 still resolves brace-expansion 2.1.3 and 1.1.17, both in range. It is dev-only and never reaches adopters. @seamless-auth/types moves to ^0.4.0, which the caret would not have reached on its own across a 0.x minor. That release only adds a z.infer alias for each exported schema that lacked one, so no import in core changed.
@seamless-auth/fastify is already configured to publish, and its first release puts it in front of adopters, so the repo docs should treat it like the other two packages. AGENTS.md now lists it among the published packages and in the architecture map. The core security policy enumerates the packages it covers, and a public adapter missing from that list would read as out of scope for vulnerability reports. CONTRIBUTING.md and SECURITY.md match the express adapter's copies; neither is in `files`, so they stay out of the published tarball.
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.
Dependency audit
pnpm auditreported ten advisories. Every one is transitive through dev tooling (jest, supertest, tsup, changesets) or throughexpress, which adopters supply themselves as a peer dependency. The published packages were never affected:pnpm audit --prod, which is what adopters actually install, was clean before this change and stays clean after it.The direct devDependencies were already at their latest versions, so the vulnerable transitives were pinned by upstream ranges and needed
pnpm.overrides. Every override is a patch within the same major line:The advisory left open
One high remains: the
brace-expansionout-of-memory advisory on the jest chain. Its vulnerable range is<=5.0.7, which covers every earlier major, so 5.0.8 is the only clearing version. That line is a relaunch with a breaking API, exporting a namedexpandinstead of the callable module its consumers require, sorequire('brace-expansion')returns a non-callable object andminimatch@3throws. Upgrading jest does not help either: jest 30 still resolves 2.1.3 and 1.1.17, both in range, andminimatch@10sidesteps the problem only by depending on a differently named fork.It is dev-only and never reaches adopters. Worth revisiting once the ecosystem migrates.
@seamless-auth/types0.4.0Bumped from
^0.3.0, which the caret would not have crossed on its own across a 0.x minor. I diffed the published tarballs: 0.4.0 only adds az.inferalias for each of the 43 exported schemas that lacked one. No existing export changed name or shape, so no import in core needed touching. Carries acorepatch changeset.Fastify release prep
@seamless-auth/fastifywas already configured to publish (publishConfig.access: public, plus an existing minor changeset), so nothing here unblocks the release. These are the gaps around it:AGENTS.mdlists it among the published packages and in the architecture map.CONTRIBUTING.mdandSECURITY.mdmatch the express adapter's copies. Neither is infiles, so they stay out of the published tarball.It versions independently of core and express, so
linkedis untouched.Verified release plan
Dry run of
changeset versionon a throwaway copy:Core and express land on 0.11.0 rather than 0.10.1 because pre-existing changesets already carry minor bumps; the types patch is absorbed into that.
npm pack --dry-runconfirms the fastify tarball carriesdist/, LICENSE, LICENSE.md, and README.md (31 files, 14.8 kB).Two notes for whoever cuts the release:
@seamless-auth/fastifyis a 404 on the registry today.createSeamlessConsoleProxystill has no Fastify equivalent. The existing changeset documents this, so it is a known gap rather than an oversight.Checks
pnpm buildpasses all three packages, including tsup on esbuild 0.28.1.pnpm testpasses 387 tests (core 214, express 150, fastify 23).pnpm install --frozen-lockfilesucceeds, so the lockfile is CI ready.pnpm audit --prod: no known vulnerabilities.