dead-deps — what happened to your dependencies

Is @hapi/joi still maintained?

No — @hapi/joi stopped being maintained around March 2020. The same project continues under the name joi.

Status
No longer maintained
Last maintained
March 2020
Use instead
joi on npm
Succession
Renamed package
Drop-in
yes — swap the import
Confidence
high

What should I use instead of @hapi/joi?

The same project continues under the name joi. joi is close enough to a drop-in replacement that most projects only change the dependency and the import.

How to migrate from @hapi/joi to joi

Replace the dependency with joi at version 17 or later and change require('@hapi/joi') to require('joi'); joi 17 is the same codebase, so schemas carry over unchanged.

Why @hapi/joi is on this list

Joi spent a period inside the @hapi scope and then moved back to the plain joi name when it became a standalone project again. @hapi/joi stopped at 17.1.1 in March 2020 with the npm notice "Switch to 'npm install joi'", and joi 17.1.1 was published under the unscoped name a few months later. Development continues there.

The succession is settled: primary sources agree and the ecosystem has already moved.

@hapi/joi alternatives

Beyond the primary recommendation, these are credible for @hapi/joi's use case:

Check your own project for @hapi/joi

npx dead-deps --all --min-state unmaintained

Run that in the directory holding your lockfile. If @hapi/joi is anywhere in your tree — a direct dependency or buried under something else — it appears in the report with this verdict, this successor and the same evidence links, alongside anything else that has stopped moving. Nothing is uploaded; the scan reads your lockfile locally and queries public registry metadata.

Exit code 1 means something was flagged, which makes npx dead-deps --min-state deprecated usable as a CI gate. See how verdicts are produced.

Evidence

Every claim on this page traces to a primary source. Check them:

See the full index of covered packages, or read the methodology for how a verdict is reached and why a quiet package is not a dead one.