Poisoning the Pipeline: How the “Frank” Campaign Targeted Apple and Google via NPM Dependency Confusion