$ shellfirm
Protection Coverage

npm / yarn / pnpm

Protection patterns for npm, yarn, and pnpm package manager operations

The npm check group covers destructive package manager operations that can break downstream dependents.

npm checks

Unpublish (npm)

IDnpm:unpublish
SeverityCritical

Unpublishing a package removes it from the registry, breaking every project that depends on it. The left-pad incident proved how devastating this can be.

# Triggers
npm unpublish
npm unpublish my-package
npm unpublish my-package@1.0.0
npm unpublish --force

# Does NOT trigger
npm publish
npm install
npm list

Deprecate (npm)

IDnpm:deprecate
SeverityHigh

Marks a package as deprecated for all users, showing a warning on every install.

# Triggers
npm deprecate my-package "this package is deprecated"
npm deprecate my-package@1.x "use v2 instead"

# Does NOT trigger
npm info my-package

Unpublish (yarn)

IDnpm:yarn_unpublish
SeverityCritical
# Triggers
yarn npm unpublish
yarn npm unpublish my-package
yarn npm unpublish my-package --force

# Does NOT trigger
yarn npm publish
yarn install

Unpublish (pnpm)

IDnpm:pnpm_unpublish
SeverityCritical
# Triggers
pnpm unpublish
pnpm unpublish my-package
pnpm unpublish my-package@1.0.0 --force

# Does NOT trigger
pnpm publish
pnpm install

Summary table

IDCommandSeverity
npm:unpublishnpm unpublishCritical
npm:deprecatenpm deprecateHigh
npm:yarn_unpublishyarn npm unpublishCritical
npm:pnpm_unpublishpnpm unpublishCritical