hunk.code_window: }
   function verify (spec: PackageSpec, packageJson: Package) {
     return packageJson.name === spec.name &&
       ((spec.type !== 'range' && spec.type !== 'version') ||
       semver.satisfies(packageJson.version, spec.spec, true))
   }
hunk.labels: keep keep keep keep replace replace keep
hunk.after_edit:     ((spec.type !== 'range' && spec.type !== 'version' && spec.type !== 'tag') ||
       packageJson.version === spec.spec)
  
hunk.file_path: src/install/isAvailable.ts
hunk.type: replace
file: import {Package} from '../types'
  
  export const delimiter = '+'
  
  export default (pkg: Package): string => pkg.name.replace('/', delimiter) + '@' + escapeVersion(pkg.version)
  
  function escapeVersion (version: string) {
    if (!version) return ''
    return version.replace(/[/\\:]/g, delimiter)
  }
  