{
  "version": 3,
  "sources": ["../../../../src/packages/tarball-resolver/index.ts"],
  "sourcesContent": ["import type {\n  ResolveResult,\n  WorkspaceResolveResult,\n} from '../resolver-base/index.ts';\nimport type { FetchFromRegistry } from '../fetching-types/index.ts';\nimport type { PkgResolutionId } from '../types/index.ts';\n\nexport async function resolveFromTarball(\n  fetchFromRegistry: FetchFromRegistry,\n  wantedDependency: { pref: string }\n): Promise<ResolveResult | WorkspaceResolveResult | null> {\n  if (\n    !wantedDependency.pref.startsWith('http:') &&\n    !wantedDependency.pref.startsWith('https:')\n  ) {\n    return null;\n  }\n\n  if (isRepository(wantedDependency.pref)) {\n    return null;\n  }\n\n  // If there are redirects, we want to get the final URL address\n  const { url: resolvedUrl } = await fetchFromRegistry(wantedDependency.pref, {\n    method: 'HEAD',\n  });\n\n  return {\n    id: resolvedUrl as PkgResolutionId,\n    normalizedPref: resolvedUrl,\n    resolution: {\n      tarball: resolvedUrl,\n    },\n    resolvedVia: 'url',\n  };\n}\n\nconst GIT_HOSTERS = new Set(['github.com', 'gitlab.com', 'bitbucket.org']);\n\nfunction isRepository(pref: string): boolean {\n  let newPref = pref;\n\n  const url = new URL(newPref);\n\n  if (url.hash !== '' && url.hash.includes('/')) {\n    url.hash = encodeURIComponent(url.hash.substring(1));\n\n    newPref = url.href;\n  }\n\n  if (newPref.endsWith('/')) {\n    newPref = newPref.slice(0, -1);\n  }\n\n  const parts = newPref.split('/');\n\n  return parts.length === 5 && GIT_HOSTERS.has(parts[2] ?? '');\n}\n"],
  "mappings": "AAOA,eAAsB,mBACpB,mBACA,kBACwD;AACxD,MACE,CAAC,iBAAiB,KAAK,WAAW,OAAO,KACzC,CAAC,iBAAiB,KAAK,WAAW,QAAQ,GAC1C;AACA,WAAO;AAAA,EACT;AAEA,MAAI,aAAa,iBAAiB,IAAI,GAAG;AACvC,WAAO;AAAA,EACT;AAGA,QAAM,EAAE,KAAK,YAAY,IAAI,MAAM,kBAAkB,iBAAiB,MAAM;AAAA,IAC1E,QAAQ;AAAA,EACV,CAAC;AAED,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,YAAY;AAAA,MACV,SAAS;AAAA,IACX;AAAA,IACA,aAAa;AAAA,EACf;AACF;AAEA,MAAM,cAAc,oBAAI,IAAI,CAAC,cAAc,cAAc,eAAe,CAAC;AAEzE,SAAS,aAAa,MAAuB;AAC3C,MAAI,UAAU;AAEd,QAAM,MAAM,IAAI,IAAI,OAAO;AAE3B,MAAI,IAAI,SAAS,MAAM,IAAI,KAAK,SAAS,GAAG,GAAG;AAC7C,QAAI,OAAO,mBAAmB,IAAI,KAAK,UAAU,CAAC,CAAC;AAEnD,cAAU,IAAI;AAAA,EAChB;AAEA,MAAI,QAAQ,SAAS,GAAG,GAAG;AACzB,cAAU,QAAQ,MAAM,GAAG,EAAE;AAAA,EAC/B;AAEA,QAAM,QAAQ,QAAQ,MAAM,GAAG;AAE/B,SAAO,MAAM,WAAW,KAAK,YAAY,IAAI,MAAM,CAAC,KAAK,EAAE;AAC7D;",
  "names": []
}
