{
  "version": 3,
  "sources": ["../../../../src/packages/npm-resolver/parsePref.ts"],
  "sourcesContent": ["import parseNpmTarballUrl from 'parse-npm-tarball-url';\nimport getVersionSelectorType from 'version-selector-type';\n\nexport interface RegistryPackageSpec {\n  type: 'tag' | 'version' | 'range';\n  name: string;\n  fetchSpec: string;\n  normalizedPref?: string | undefined;\n}\n\nexport function parsePref(\n  pref: string,\n  alias: string | undefined,\n  defaultTag: string,\n  registry: string\n): RegistryPackageSpec | null {\n  let name = alias;\n\n  let newPref = pref;\n\n  if (pref.startsWith('npm:')) {\n    newPref = newPref.slice(4);\n\n    const index = newPref.lastIndexOf('@');\n\n    if (index < 1) {\n      name = newPref;\n      newPref = defaultTag;\n    } else {\n      name = newPref.slice(0, index);\n      newPref = newPref.slice(index + 1);\n    }\n  }\n\n  if (typeof name === 'string' && name !== '') {\n    const selector = getVersionSelectorType(newPref);\n\n    if (selector != null) {\n      return {\n        fetchSpec: selector.normalized,\n        name,\n        type: selector.type,\n      };\n    }\n  }\n\n  if (newPref.startsWith(registry)) {\n    const pkg = parseNpmTarballUrl.default(newPref);\n\n    if (pkg != null) {\n      return {\n        fetchSpec: pkg.version,\n        name: pkg.name,\n        normalizedPref: newPref,\n        type: 'version',\n      };\n    }\n  }\n  return null;\n}\n"],
  "mappings": "AAAA,OAAO,wBAAwB;AAC/B,OAAO,4BAA4B;AAS5B,SAAS,UACd,MACA,OACA,YACA,UAC4B;AAC5B,MAAI,OAAO;AAEX,MAAI,UAAU;AAEd,MAAI,KAAK,WAAW,MAAM,GAAG;AAC3B,cAAU,QAAQ,MAAM,CAAC;AAEzB,UAAM,QAAQ,QAAQ,YAAY,GAAG;AAErC,QAAI,QAAQ,GAAG;AACb,aAAO;AACP,gBAAU;AAAA,IACZ,OAAO;AACL,aAAO,QAAQ,MAAM,GAAG,KAAK;AAC7B,gBAAU,QAAQ,MAAM,QAAQ,CAAC;AAAA,IACnC;AAAA,EACF;AAEA,MAAI,OAAO,SAAS,YAAY,SAAS,IAAI;AAC3C,UAAM,WAAW,uBAAuB,OAAO;AAE/C,QAAI,YAAY,MAAM;AACpB,aAAO;AAAA,QACL,WAAW,SAAS;AAAA,QACpB;AAAA,QACA,MAAM,SAAS;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAEA,MAAI,QAAQ,WAAW,QAAQ,GAAG;AAChC,UAAM,MAAM,mBAAmB,QAAQ,OAAO;AAE9C,QAAI,OAAO,MAAM;AACf,aAAO;AAAA,QACL,WAAW,IAAI;AAAA,QACf,MAAM,IAAI;AAAA,QACV,gBAAgB;AAAA,QAChB,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;",
  "names": []
}
