{
  "version": 3,
  "sources": ["../../../../src/packages/resolve-dependencies/wantedDepIsLocallyAvailable.ts"],
  "sourcesContent": ["import { parsePref, type RegistryPackageSpec } from '../npm-resolver/index.ts';\nimport type {\n  WorkspacePackages,\n  WorkspacePackagesByVersion,\n} from '../resolver-base/index.ts';\nimport semver from 'semver';\nimport type { WantedDependency } from './index.ts';\n\nexport function wantedDepIsLocallyAvailable(\n  workspacePackages: WorkspacePackages,\n  wantedDependency: WantedDependency,\n  opts: {\n    defaultTag: string;\n    registry: string;\n  }\n): boolean {\n  if (typeof wantedDependency.pref === 'undefined') {\n    return false;\n  }\n\n  const spec = parsePref(\n    wantedDependency.pref,\n    wantedDependency.alias,\n    opts.defaultTag || 'latest',\n    opts.registry\n  );\n\n  if (spec == null) {\n    return false;\n  }\n\n  const sn = workspacePackages.has(spec.name);\n\n  if (!sn) {\n    return false;\n  }\n\n  const versions = workspacePackages.get(spec.name);\n\n  if (typeof versions === 'undefined') {\n    return false;\n  }\n\n  return pickMatchingLocalVersionOrNull(versions, spec) !== null;\n}\n\n// TODO: move this function to separate package or import from @pnpm/npm-resolver\nfunction pickMatchingLocalVersionOrNull(\n  versions: WorkspacePackagesByVersion,\n  spec: RegistryPackageSpec\n): string | null {\n  const localVersions = Object.keys(versions);\n\n  switch (spec.type) {\n    case 'tag': {\n      return semver.maxSatisfying(localVersions, '*');\n    }\n\n    case 'version': {\n      return versions.has(spec.fetchSpec) ? spec.fetchSpec : null;\n    }\n\n    case 'range': {\n      return semver.maxSatisfying(localVersions, spec.fetchSpec, true);\n    }\n\n    default: {\n      return null;\n    }\n  }\n}\n"],
  "mappings": "AAAA,SAAS,iBAA2C;AAKpD,OAAO,YAAY;AAGZ,SAAS,4BACd,mBACA,kBACA,MAIS;AACT,MAAI,OAAO,iBAAiB,SAAS,aAAa;AAChD,WAAO;AAAA,EACT;AAEA,QAAM,OAAO;AAAA,IACX,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,KAAK,cAAc;AAAA,IACnB,KAAK;AAAA,EACP;AAEA,MAAI,QAAQ,MAAM;AAChB,WAAO;AAAA,EACT;AAEA,QAAM,KAAK,kBAAkB,IAAI,KAAK,IAAI;AAE1C,MAAI,CAAC,IAAI;AACP,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,kBAAkB,IAAI,KAAK,IAAI;AAEhD,MAAI,OAAO,aAAa,aAAa;AACnC,WAAO;AAAA,EACT;AAEA,SAAO,+BAA+B,UAAU,IAAI,MAAM;AAC5D;AAGA,SAAS,+BACP,UACA,MACe;AACf,QAAM,gBAAgB,OAAO,KAAK,QAAQ;AAE1C,UAAQ,KAAK,MAAM;AAAA,IACjB,KAAK,OAAO;AACV,aAAO,OAAO,cAAc,eAAe,GAAG;AAAA,IAChD;AAAA,IAEA,KAAK,WAAW;AACd,aAAO,SAAS,IAAI,KAAK,SAAS,IAAI,KAAK,YAAY;AAAA,IACzD;AAAA,IAEA,KAAK,SAAS;AACZ,aAAO,OAAO,cAAc,eAAe,KAAK,WAAW,IAAI;AAAA,IACjE;AAAA,IAEA,SAAS;AACP,aAAO;AAAA,IACT;AAAA,EACF;AACF;",
  "names": []
}
