add missing require('semver')