{"version":3,"file":"versionSelector-BKoro1ZM.mjs","names":[],"sources":["../../src/versionSelector.ts"],"sourcesContent":["/**\n * This version selector is a bit complicated, so here is the flow:\n * 1. Use the clerkJSVersion prop on the provider\n * 2. Use the exact `@clerk/clerk-js` version if it is a `@snapshot` prerelease\n * 3. Use the prerelease tag of `@clerk/clerk-js` or the packageVersion provided\n * 4. Fallback to the major version of `@clerk/clerk-js` or the packageVersion provided\n *\n * @param clerkJSVersion - The optional clerkJSVersion prop on the provider\n * @param packageVersion - The version of `@clerk/clerk-js` that will be used if an explicit version is not provided\n * @returns The npm tag, version or major version to use\n */\nexport const versionSelector = (clerkJSVersion: string | undefined, packageVersion = JS_PACKAGE_VERSION) => {\n  if (clerkJSVersion) {\n    return clerkJSVersion;\n  }\n\n  const prereleaseTag = getPrereleaseTag(packageVersion);\n  if (prereleaseTag) {\n    if (prereleaseTag === 'snapshot') {\n      return packageVersion;\n    }\n\n    return prereleaseTag;\n  }\n\n  return getMajorVersion(packageVersion);\n};\n\nconst getPrereleaseTag = (packageVersion: string) =>\n  packageVersion\n    .trim()\n    .replace(/^v/, '')\n    .match(/-(.+?)(\\.|$)/)?.[1];\n\nexport const getMajorVersion = (packageVersion: string) => packageVersion.trim().replace(/^v/, '').split('.')[0];\n"],"mappings":";;;;;;;;;;;;AAWA,MAAa,mBAAmB,gBAAoC,6BAAwC;AAC1G,KAAI,eACF,QAAO;CAGT,MAAM,gBAAgB,iBAAiB,eAAe;AACtD,KAAI,eAAe;AACjB,MAAI,kBAAkB,WACpB,QAAO;AAGT,SAAO;;AAGT,QAAO,gBAAgB,eAAe;;AAGxC,MAAM,oBAAoB,mBACxB,eACG,MAAM,CACN,QAAQ,MAAM,GAAG,CACjB,MAAM,eAAe,GAAG;AAE7B,MAAa,mBAAmB,mBAA2B,eAAe,MAAM,CAAC,QAAQ,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC"}