can't believe i spent the last 3 hours debugging and it was all because of a rogue transitive dependency in npm, seriously who thought semver was a good idea