Skip to content

chore(deps): override deepmerge-ts to clear the stack-exhaustion advisory - #58

Merged
jfrench9 merged 1 commit into
mainfrom
chore/override-deepmerge-ts
Sep 1, 2026
Merged

chore(deps): override deepmerge-ts to clear the stack-exhaustion advisory#58
jfrench9 merged 1 commit into
mainfrom
chore/override-deepmerge-ts

Conversation

@jfrench9

@jfrench9 jfrench9 commented Sep 1, 2026

Copy link
Copy Markdown
Member

Summary

Clears the two high-severity npm audit findings in this repo with a one-line overrides entry. npm audit goes from 2 high → 0.

Changes

  • package.json — added "deepmerge-ts": "^8.0.1" to the existing overrides block.

Both findings trace to a single path:

flowbite-react@0.12.17 → deepmerge-ts@7.1.5   (vulnerable: <8.0.0)

npm's own suggested fix is a semver-major downgrade to flowbite-react@0.10.2, which is worse than the problem. And there's nothing to wait for upstream: 0.12.17 is the latest release, and it pins deepmerge-ts to the exact version 7.1.5, not a range — so no amount of updating moves it.

Hence the override. This isn't speculative: robosystems-app already carries "deepmerge-ts": "^8.0.1" and runs the same flowbite-react@0.12.17 against deepmerge-ts 8.x in production. This repo simply never got the entry, though it already had an overrides block for sharp and next/postcss.

Resolves to deepmerge-ts@8.0.2; flowbite-react stays on 0.12.17.

package-lock.json is gitignored here, so package.json is the whole of the change and CI resolves it fresh.

Consumer Impact

INTERNAL. No export, prop contract, rendered structure, or peer range changes. Nothing in the emitted surface moves, and no packaging characteristic is touched — directives, ESM-only, publish-from-dist layout, sideEffects, and peers-staying-peers are all unaffected.

One point worth being precise about rather than overstating: npm honours overrides only at an install root, so this fixes this repo's CI and dev installs, not anything consuming @robosystems/core as a library. The three apps each need their own entry — and all three already have one, which is exactly why they report 0 vulnerabilities today while this repo reported 2. So no app has to do anything on their next bump.

Same shape as the js-yaml override in the TypeScript client.

Testing

Full gate, all green:

  • npm run typecheck — clean (exit 0)
  • npm run lint — clean (exit 0; 12 pre-existing warnings, unchanged)
  • npm test43 files, 492 passed, 16 skipped
  • npm run build — clean (exit 0)
  • npm audit2 high → 0

Verified flowbite-react still resolves to 0.12.17 with deepmerge-ts 8.0.2 under it, so the override doesn't silently drag the component library backwards. The pre-commit hook ran format:check, lint, typecheck and the suite again independently.

…sory

`npm audit` reports two high findings here — deepmerge-ts, and
flowbite-react as its only path to us:

    flowbite-react@0.12.17 -> deepmerge-ts@7.1.5   (vulnerable: <8.0.0)

npm's own suggested fix is a semver-major *downgrade* to
flowbite-react@0.10.2, which is worse than the problem. And there is
nothing to wait for upstream: 0.12.17 is the latest release and it pins
deepmerge-ts to the exact version 7.1.5, not a range.

So: override. This is not speculative — robosystems-app already carries
`"deepmerge-ts": "^8.0.1"` and runs the same flowbite-react 0.12.17
against deepmerge-ts 8.x in production. This repo simply never got the
entry; it already had an overrides block for sharp and next/postcss.

Resolves to deepmerge-ts 8.0.2, flowbite-react unchanged at 0.12.17.
npm audit goes from 2 high to 0.

Scope worth being precise about: npm honours `overrides` only at an
install root, so this fixes this repo's own CI and dev installs, not
anything consuming @robosystems/core as a library. Consumers carry their
own copy — the three apps already do. Same shape as the js-yaml override
in the TypeScript client.

package-lock.json is gitignored here, so package.json is the whole of
the change and CI resolves it fresh.

Gate green: typecheck, eslint, 492 tests (16 skipped) across 43 files,
build.
@jfrench9
jfrench9 merged commit 85ee6c6 into main Sep 1, 2026
5 checks passed
@jfrench9
jfrench9 deleted the chore/override-deepmerge-ts branch September 1, 2026 21:33
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