consider allowing `semver.satisfies(obj.version, '~' + version)`