{
  "version": 3,
  "sources": ["../../../../src/packages/manifest-utils/getPref.ts"],
  "sourcesContent": ["import { PnpmError } from '../error/index.ts';\n\nexport type PinnedVersion = 'major' | 'minor' | 'patch' | 'none';\n\nexport const getPrefix = (alias: string, name: string): string =>\n  alias !== name ? `npm:${name}@` : '';\n\nexport function getPref(\n  alias: string,\n  name: string,\n  version: string | undefined,\n  opts: {\n    pinnedVersion?: PinnedVersion;\n  }\n): string {\n  const prefix = getPrefix(alias, name);\n  return `${prefix}${createVersionSpec(version, { pinnedVersion: opts.pinnedVersion })}`;\n}\n\nexport function createVersionSpec(\n  version: string | undefined,\n  opts: {\n    pinnedVersion?: PinnedVersion | undefined;\n    rolling?: boolean | undefined;\n  }\n): string {\n  switch (opts.pinnedVersion ?? 'major') {\n    case 'none':\n    case 'major': {\n      if (opts.rolling === true) {\n        return '^';\n      }\n\n      return typeof version === 'string' ? `^${version}` : '*';\n    }\n\n    case 'minor': {\n      if (opts.rolling === true) {\n        return '~';\n      }\n      return typeof version === 'string' ? `~${version}` : '*';\n    }\n\n    case 'patch': {\n      if (opts.rolling === true) {\n        return '*';\n      }\n      return typeof version === 'string' ? `${version}` : '*';\n    }\n\n    default: {\n      throw new PnpmError(\n        'BAD_PINNED_VERSION',\n        `Cannot pin '${opts.pinnedVersion ?? 'undefined'}'`\n      );\n    }\n  }\n}\n"],
  "mappings": "AAAA,SAAS,iBAAiB;AAInB,MAAM,YAAY,CAAC,OAAe,SACvC,UAAU,OAAO,OAAO,IAAI,MAAM;AAE7B,SAAS,QACd,OACA,MACA,SACA,MAGQ;AACR,QAAM,SAAS,UAAU,OAAO,IAAI;AACpC,SAAO,GAAG,MAAM,GAAG,kBAAkB,SAAS,EAAE,eAAe,KAAK,cAAc,CAAC,CAAC;AACtF;AAEO,SAAS,kBACd,SACA,MAIQ;AACR,UAAQ,KAAK,iBAAiB,SAAS;AAAA,IACrC,KAAK;AAAA,IACL,KAAK,SAAS;AACZ,UAAI,KAAK,YAAY,MAAM;AACzB,eAAO;AAAA,MACT;AAEA,aAAO,OAAO,YAAY,WAAW,IAAI,OAAO,KAAK;AAAA,IACvD;AAAA,IAEA,KAAK,SAAS;AACZ,UAAI,KAAK,YAAY,MAAM;AACzB,eAAO;AAAA,MACT;AACA,aAAO,OAAO,YAAY,WAAW,IAAI,OAAO,KAAK;AAAA,IACvD;AAAA,IAEA,KAAK,SAAS;AACZ,UAAI,KAAK,YAAY,MAAM;AACzB,eAAO;AAAA,MACT;AACA,aAAO,OAAO,YAAY,WAAW,GAAG,OAAO,KAAK;AAAA,IACtD;AAAA,IAEA,SAAS;AACP,YAAM,IAAI;AAAA,QACR;AAAA,QACA,eAAe,KAAK,iBAAiB,WAAW;AAAA,MAClD;AAAA,IACF;AAAA,EACF;AACF;",
  "names": []
}
