{
  "version": 3,
  "sources": ["../../../../src/packages/which-version-is-pinned/index.ts"],
  "sourcesContent": ["import { parseRange } from 'semver-utils';\n\nexport type PinnedVersion = 'none' | 'patch' | 'minor' | 'major';\n\nexport function whichVersionIsPinned(spec: string): PinnedVersion | undefined {\n  const isWorkspaceProtocol = spec.startsWith('workspace:');\n\n  let newSpec = spec;\n\n  if (isWorkspaceProtocol) {\n    newSpec = newSpec.slice('workspace:'.length);\n  }\n\n  if (newSpec === '*') return isWorkspaceProtocol ? 'patch' : 'none';\n\n  if (newSpec.startsWith('npm:')) {\n    const index = newSpec.lastIndexOf('@');\n    newSpec = newSpec.slice(index + 1);\n  }\n\n  const parsedRange = parseRange(newSpec);\n\n  if (parsedRange.length !== 1) {\n    return undefined;\n  }\n\n  const versionObject = parsedRange[0];\n\n  switch (versionObject?.operator) {\n    case '~': {\n      return 'minor';\n    }\n\n    case '^': {\n      return 'major';\n    }\n\n    case undefined: {\n      if (typeof versionObject?.patch === 'string') {\n        return 'patch';\n      }\n\n      if (typeof versionObject?.minor === 'string') {\n        return 'minor';\n      }\n    }\n  }\n\n  return undefined;\n}\n"],
  "mappings": "AAAA,SAAS,kBAAkB;AAIpB,SAAS,qBAAqB,MAAyC;AAC5E,QAAM,sBAAsB,KAAK,WAAW,YAAY;AAExD,MAAI,UAAU;AAEd,MAAI,qBAAqB;AACvB,cAAU,QAAQ,MAAM,aAAa,MAAM;AAAA,EAC7C;AAEA,MAAI,YAAY,IAAK,QAAO,sBAAsB,UAAU;AAE5D,MAAI,QAAQ,WAAW,MAAM,GAAG;AAC9B,UAAM,QAAQ,QAAQ,YAAY,GAAG;AACrC,cAAU,QAAQ,MAAM,QAAQ,CAAC;AAAA,EACnC;AAEA,QAAM,cAAc,WAAW,OAAO;AAEtC,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO;AAAA,EACT;AAEA,QAAM,gBAAgB,YAAY,CAAC;AAEnC,UAAQ,eAAe,UAAU;AAAA,IAC/B,KAAK,KAAK;AACR,aAAO;AAAA,IACT;AAAA,IAEA,KAAK,KAAK;AACR,aAAO;AAAA,IACT;AAAA,IAEA,KAAK,QAAW;AACd,UAAI,OAAO,eAAe,UAAU,UAAU;AAC5C,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,eAAe,UAAU,UAAU;AAC5C,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
  "names": []
}
