{
  "version": 3,
  "sources": ["../../../../src/packages/patching.config/getPatchInfo.ts"],
  "sourcesContent": ["import { PnpmError } from '../error/index.ts';\nimport type {\n  ExtendedPatchInfo,\n  PatchGroupRangeItem,\n  PatchGroupRecord,\n} from '../patching.types/index.ts';\nimport { satisfies } from 'semver';\n\nclass PatchKeyConflictError extends PnpmError {\n  constructor(\n    pkgName: string,\n    pkgVersion: string,\n    satisfied: Array<Pick<PatchGroupRangeItem, 'version'>>\n  ) {\n    const pkgId = `${pkgName}@${pkgVersion}`;\n    const satisfiedVersions = satisfied.map(({ version }) => version);\n    const message = `Unable to choose between ${satisfied.length} version ranges to patch ${pkgId}: ${satisfiedVersions.join(', ')}`;\n    super('PATCH_KEY_CONFLICT', message, {\n      hint: `Explicitly set the exact version (${pkgId}) to resolve conflict`,\n    });\n  }\n}\n\nexport function getPatchInfo(\n  patchFileGroups: PatchGroupRecord | undefined,\n  pkgName: string,\n  pkgVersion: string\n): ExtendedPatchInfo | undefined {\n  if (!patchFileGroups?.[pkgName]) return undefined;\n\n  const exactVersion = patchFileGroups[pkgName].exact[pkgVersion];\n  if (exactVersion) return exactVersion;\n\n  const satisfied = patchFileGroups[pkgName].range.filter((item) =>\n    satisfies(pkgVersion, item.version)\n  );\n  if (satisfied.length > 1) {\n    throw new PatchKeyConflictError(pkgName, pkgVersion, satisfied);\n  }\n  if (satisfied.length === 1) {\n    return satisfied[0]?.patch;\n  }\n\n  return patchFileGroups[pkgName].all;\n}\n"],
  "mappings": "AAAA,SAAS,iBAAiB;AAM1B,SAAS,iBAAiB;AAE1B,MAAM,8BAA8B,UAAU;AAAA,EAC5C,YACE,SACA,YACA,WACA;AACA,UAAM,QAAQ,GAAG,OAAO,IAAI,UAAU;AACtC,UAAM,oBAAoB,UAAU,IAAI,CAAC,EAAE,QAAQ,MAAM,OAAO;AAChE,UAAM,UAAU,4BAA4B,UAAU,MAAM,4BAA4B,KAAK,KAAK,kBAAkB,KAAK,IAAI,CAAC;AAC9H,UAAM,sBAAsB,SAAS;AAAA,MACnC,MAAM,qCAAqC,KAAK;AAAA,IAClD,CAAC;AAAA,EACH;AACF;AAEO,SAAS,aACd,iBACA,SACA,YAC+B;AAC/B,MAAI,CAAC,kBAAkB,OAAO,EAAG,QAAO;AAExC,QAAM,eAAe,gBAAgB,OAAO,EAAE,MAAM,UAAU;AAC9D,MAAI,aAAc,QAAO;AAEzB,QAAM,YAAY,gBAAgB,OAAO,EAAE,MAAM;AAAA,IAAO,CAAC,SACvD,UAAU,YAAY,KAAK,OAAO;AAAA,EACpC;AACA,MAAI,UAAU,SAAS,GAAG;AACxB,UAAM,IAAI,sBAAsB,SAAS,YAAY,SAAS;AAAA,EAChE;AACA,MAAI,UAAU,WAAW,GAAG;AAC1B,WAAO,UAAU,CAAC,GAAG;AAAA,EACvB;AAEA,SAAO,gBAAgB,OAAO,EAAE;AAClC;",
  "names": []
}
