{
  "version": 3,
  "sources": ["../../../../src/packages/lockfile.utils/pkgSnapshotToResolution.ts"],
  "sourcesContent": ["import url from 'node:url';\nimport type { PackageSnapshot } from '../lockfile.types/index.ts';\nimport type { Resolution } from '../resolver-base/index.ts';\nimport type { Registries } from '../types/index.ts';\nimport * as dp from '../dependency-path/index.ts';\nimport getNpmTarballUrl from 'get-npm-tarball-url';\nimport { isGitHostedPkgUrl } from '../pick-fetcher/index.ts';\nimport { nameVerFromPkgSnapshot } from './nameVerFromPkgSnapshot.ts';\n\nexport function pkgSnapshotToResolution(\n  depPath: string,\n  pkgSnapshot: PackageSnapshot,\n  registries: Registries\n): Resolution | undefined {\n  if (\n    typeof pkgSnapshot.resolution !== 'undefined' &&\n    ('type' in pkgSnapshot.resolution ||\n      pkgSnapshot.resolution.tarball?.startsWith('file:') === true ||\n      isGitHostedPkgUrl(pkgSnapshot.resolution.tarball))\n  ) {\n    return pkgSnapshot.resolution;\n  }\n\n  const { name } = nameVerFromPkgSnapshot(depPath, pkgSnapshot);\n\n  let registry =\n    name !== '' && name.startsWith('@')\n      ? (registries[name.split('/')[0] ?? ''] ?? '')\n      : '';\n\n  if (!registry) {\n    registry = registries.default;\n  }\n\n  const tarball =\n    typeof pkgSnapshot.resolution?.tarball === 'undefined' ||\n    pkgSnapshot.resolution.tarball === ''\n      ? getTarball(registry, depPath)\n      : new url.URL(\n          pkgSnapshot.resolution.tarball,\n          registry.endsWith('/') ? registry : `${registry}/`\n        ).toString();\n\n  return {\n    ...pkgSnapshot.resolution,\n    tarball,\n  };\n}\n\nfunction getTarball(registry: string, depPath: string): string {\n  const { name, version } = dp.parse(depPath);\n\n  if (typeof name === 'undefined' || typeof version === 'undefined') {\n    throw new Error(`Couldn't get tarball URL from dependency path ${depPath}`);\n  }\n\n  return getNpmTarballUrl(name, version, { registry });\n}\n"],
  "mappings": "AAAA,OAAO,SAAS;AAIhB,YAAY,QAAQ;AACpB,OAAO,sBAAsB;AAC7B,SAAS,yBAAyB;AAClC,SAAS,8BAA8B;AAEhC,SAAS,wBACd,SACA,aACA,YACwB;AACxB,MACE,OAAO,YAAY,eAAe,gBACjC,UAAU,YAAY,cACrB,YAAY,WAAW,SAAS,WAAW,OAAO,MAAM,QACxD,kBAAkB,YAAY,WAAW,OAAO,IAClD;AACA,WAAO,YAAY;AAAA,EACrB;AAEA,QAAM,EAAE,KAAK,IAAI,uBAAuB,SAAS,WAAW;AAE5D,MAAI,WACF,SAAS,MAAM,KAAK,WAAW,GAAG,IAC7B,WAAW,KAAK,MAAM,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,KACzC;AAEN,MAAI,CAAC,UAAU;AACb,eAAW,WAAW;AAAA,EACxB;AAEA,QAAM,UACJ,OAAO,YAAY,YAAY,YAAY,eAC3C,YAAY,WAAW,YAAY,KAC/B,WAAW,UAAU,OAAO,IAC5B,IAAI,IAAI;AAAA,IACN,YAAY,WAAW;AAAA,IACvB,SAAS,SAAS,GAAG,IAAI,WAAW,GAAG,QAAQ;AAAA,EACjD,EAAE,SAAS;AAEjB,SAAO;AAAA,IACL,GAAG,YAAY;AAAA,IACf;AAAA,EACF;AACF;AAEA,SAAS,WAAW,UAAkB,SAAyB;AAC7D,QAAM,EAAE,MAAM,QAAQ,IAAI,GAAG,MAAM,OAAO;AAE1C,MAAI,OAAO,SAAS,eAAe,OAAO,YAAY,aAAa;AACjE,UAAM,IAAI,MAAM,iDAAiD,OAAO,EAAE;AAAA,EAC5E;AAEA,SAAO,iBAAiB,MAAM,SAAS,EAAE,SAAS,CAAC;AACrD;",
  "names": []
}
