It’s not about revenue, it’s about making spam unprofitable. Charging 0.25$usd is enough to make spam not worth it.
It also attaches an identity to the posting.
It also attaches an identity to the posting.
Anyway, involving humans (funded by NPM's commercial revenue) doesn't reduce the options to "letting the spam happen and dealing it after the fact" or "holding all submissions until a human reviews [them]".
If I was trying to solve this problem, I'd be open to a solution that tried to automatically classify submissions as either legitimate or spammy, with an associated confidence level. If the confidence level fell below a given threshold then I'd involve a human.