npm recently introduced staged publishing, and it directly targets the attack pattern behind most of the supply chain compromises we tracked this year.
Instead of npm publish pushing packages live instantly, npm stage publish puts them in a queue. A human with 2FA has to approve, preventing attackers from pushing malicious package versions with stolen tokens
We open-sourced a SAST rule that catches "npm publish" in your GitHub Actions workflows and flags it for migration.