@clerk/shared 3.25.0 → 3.26.0-canary.v20250916123724

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,6 +4,6 @@
4
4
  * @param publishableKey - The publishable key to parse.
5
5
  * @returns One of Clerk's API URLs.
6
6
  */
7
- declare const apiUrlFromPublishableKey: (publishableKey: string) => "https://api.clerk.com" | "https://api.lclclerk.com" | "https://api.clerkstage.dev";
7
+ declare const apiUrlFromPublishableKey: (publishableKey: string) => "https://api.lclclerk.com" | "https://api.clerkstage.dev" | "https://api.clerk.com";
8
8
 
9
9
  export { apiUrlFromPublishableKey };
@@ -4,6 +4,6 @@
4
4
  * @param publishableKey - The publishable key to parse.
5
5
  * @returns One of Clerk's API URLs.
6
6
  */
7
- declare const apiUrlFromPublishableKey: (publishableKey: string) => "https://api.clerk.com" | "https://api.lclclerk.com" | "https://api.clerkstage.dev";
7
+ declare const apiUrlFromPublishableKey: (publishableKey: string) => "https://api.lclclerk.com" | "https://api.clerkstage.dev" | "https://api.clerk.com";
8
8
 
9
9
  export { apiUrlFromPublishableKey };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  retry
3
- } from "./chunk-N2V3PKFE.mjs";
3
+ } from "./chunk-PL3YYI2I.mjs";
4
4
 
5
5
  // src/loadScript.ts
6
6
  var NO_DOCUMENT_ERROR = "loadScript cannot be called when document does not exist";
@@ -41,4 +41,4 @@ async function loadScript(src = "", opts) {
41
41
  export {
42
42
  loadScript
43
43
  };
44
- //# sourceMappingURL=chunk-CP4ZWFJI.mjs.map
44
+ //# sourceMappingURL=chunk-3P6KJCBG.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  versionSelector
3
- } from "./chunk-BLSTSB5L.mjs";
3
+ } from "./chunk-SDPWKSYB.mjs";
4
4
  import {
5
5
  isValidProxyUrl,
6
6
  proxyUrlToAbsoluteURL
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-IFTVZ2LQ.mjs";
11
11
  import {
12
12
  loadScript
13
- } from "./chunk-CP4ZWFJI.mjs";
13
+ } from "./chunk-3P6KJCBG.mjs";
14
14
  import {
15
15
  buildErrorThrower
16
16
  } from "./chunk-IQKZKT6G.mjs";
@@ -143,4 +143,4 @@ export {
143
143
  clerkJsScriptUrl,
144
144
  buildClerkJsScriptAttributes
145
145
  };
146
- //# sourceMappingURL=chunk-XHVMZXGE.mjs.map
146
+ //# sourceMappingURL=chunk-J7OOBZ2F.mjs.map
@@ -28,7 +28,7 @@ var createExponentialDelayAsyncFn = (opts) => {
28
28
  };
29
29
  var retry = async (callback, options = {}) => {
30
30
  let iterations = 0;
31
- const { shouldRetry, initialDelay, maxDelayBetweenRetries, factor, retryImmediately, jitter } = {
31
+ const { shouldRetry, initialDelay, maxDelayBetweenRetries, factor, retryImmediately, jitter, onBeforeRetry } = {
32
32
  ...defaultOptions,
33
33
  ...options
34
34
  };
@@ -46,6 +46,9 @@ var retry = async (callback, options = {}) => {
46
46
  if (!shouldRetry(e, iterations)) {
47
47
  throw e;
48
48
  }
49
+ if (onBeforeRetry) {
50
+ await onBeforeRetry(iterations);
51
+ }
49
52
  if (retryImmediately && iterations === 1) {
50
53
  await sleep(applyJitter(RETRY_IMMEDIATELY_DELAY, jitter));
51
54
  } else {
@@ -58,4 +61,4 @@ var retry = async (callback, options = {}) => {
58
61
  export {
59
62
  retry
60
63
  };
61
- //# sourceMappingURL=chunk-N2V3PKFE.mjs.map
64
+ //# sourceMappingURL=chunk-PL3YYI2I.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/retry.ts"],"sourcesContent":["type Milliseconds = number;\n\ntype RetryOptions = Partial<{\n /**\n * The initial delay before the first retry.\n *\n * @default 125\n */\n initialDelay: Milliseconds;\n /**\n * The maximum delay between retries.\n * The delay between retries will never exceed this value.\n * If set to 0, the delay will increase indefinitely.\n *\n * @default 0\n */\n maxDelayBetweenRetries: Milliseconds;\n /**\n * The multiplier for the exponential backoff.\n *\n * @default 2\n */\n factor: number;\n /**\n * A function to determine if the operation should be retried.\n * The callback accepts the error that was thrown and the number of iterations.\n * The iterations variable references the number of retries AFTER attempt\n * that caused the error and starts at 1 (as in, this is the 1st, 2nd, nth retry).\n *\n * @default (error, iterations) => iterations < 5\n */\n shouldRetry: (error: unknown, iterations: number) => boolean;\n /**\n * Controls whether the helper should retry the operation immediately once before applying exponential backoff.\n * The delay for the immediate retry is 100ms.\n *\n * @default false\n */\n retryImmediately: boolean;\n /**\n * If true, the intervals will be multiplied by a factor in the range of [1,2].\n *\n * @default true\n */\n jitter: boolean;\n\n /**\n * A callback that is invoked before each retry attempt.\n * The callback receives the iteration number (starting from 1 for the first retry).\n * This can be used to modify request parameters, add headers, etc.\n */\n onBeforeRetry?: (iteration: number) => void | Promise<void>;\n}>;\n\nconst defaultOptions = {\n initialDelay: 125,\n maxDelayBetweenRetries: 0,\n factor: 2,\n shouldRetry: (_: unknown, iteration: number) => iteration < 5,\n retryImmediately: false,\n jitter: true,\n};\n\nconst RETRY_IMMEDIATELY_DELAY = 100;\n\nconst sleep = async (ms: Milliseconds) => new Promise(s => setTimeout(s, ms));\n\nconst applyJitter = (delay: Milliseconds, jitter: boolean) => {\n return jitter ? delay * (1 + Math.random()) : delay;\n};\n\nconst createExponentialDelayAsyncFn = (\n opts: Required<Pick<RetryOptions, 'initialDelay' | 'maxDelayBetweenRetries' | 'factor' | 'jitter'>>,\n) => {\n let timesCalled = 0;\n\n const calculateDelayInMs = () => {\n const constant = opts.initialDelay;\n const base = opts.factor;\n let delay = constant * Math.pow(base, timesCalled);\n delay = applyJitter(delay, opts.jitter);\n return Math.min(opts.maxDelayBetweenRetries || delay, delay);\n };\n\n return async (): Promise<void> => {\n await sleep(calculateDelayInMs());\n timesCalled++;\n };\n};\n\n/**\n * Retries a callback until it succeeds or the shouldRetry function returns false.\n * See {@link RetryOptions} for the available options.\n */\nexport const retry = async <T>(callback: () => T | Promise<T>, options: RetryOptions = {}): Promise<T> => {\n let iterations = 0;\n const { shouldRetry, initialDelay, maxDelayBetweenRetries, factor, retryImmediately, jitter, onBeforeRetry } = {\n ...defaultOptions,\n ...options,\n };\n\n const delay = createExponentialDelayAsyncFn({\n initialDelay,\n maxDelayBetweenRetries,\n factor,\n jitter,\n });\n\n while (true) {\n try {\n return await callback();\n } catch (e) {\n iterations++;\n if (!shouldRetry(e, iterations)) {\n throw e;\n }\n\n if (onBeforeRetry) {\n await onBeforeRetry(iterations);\n }\n\n if (retryImmediately && iterations === 1) {\n await sleep(applyJitter(RETRY_IMMEDIATELY_DELAY, jitter));\n } else {\n await delay();\n }\n }\n }\n};\n"],"mappings":";AAsDA,IAAM,iBAAiB;AAAA,EACrB,cAAc;AAAA,EACd,wBAAwB;AAAA,EACxB,QAAQ;AAAA,EACR,aAAa,CAAC,GAAY,cAAsB,YAAY;AAAA,EAC5D,kBAAkB;AAAA,EAClB,QAAQ;AACV;AAEA,IAAM,0BAA0B;AAEhC,IAAM,QAAQ,OAAO,OAAqB,IAAI,QAAQ,OAAK,WAAW,GAAG,EAAE,CAAC;AAE5E,IAAM,cAAc,CAAC,OAAqB,WAAoB;AAC5D,SAAO,SAAS,SAAS,IAAI,KAAK,OAAO,KAAK;AAChD;AAEA,IAAM,gCAAgC,CACpC,SACG;AACH,MAAI,cAAc;AAElB,QAAM,qBAAqB,MAAM;AAC/B,UAAM,WAAW,KAAK;AACtB,UAAM,OAAO,KAAK;AAClB,QAAI,QAAQ,WAAW,KAAK,IAAI,MAAM,WAAW;AACjD,YAAQ,YAAY,OAAO,KAAK,MAAM;AACtC,WAAO,KAAK,IAAI,KAAK,0BAA0B,OAAO,KAAK;AAAA,EAC7D;AAEA,SAAO,YAA2B;AAChC,UAAM,MAAM,mBAAmB,CAAC;AAChC;AAAA,EACF;AACF;AAMO,IAAM,QAAQ,OAAU,UAAgC,UAAwB,CAAC,MAAkB;AACxG,MAAI,aAAa;AACjB,QAAM,EAAE,aAAa,cAAc,wBAAwB,QAAQ,kBAAkB,QAAQ,cAAc,IAAI;AAAA,IAC7G,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAEA,QAAM,QAAQ,8BAA8B;AAAA,IAC1C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,SAAO,MAAM;AACX,QAAI;AACF,aAAO,MAAM,SAAS;AAAA,IACxB,SAAS,GAAG;AACV;AACA,UAAI,CAAC,YAAY,GAAG,UAAU,GAAG;AAC/B,cAAM;AAAA,MACR;AAEA,UAAI,eAAe;AACjB,cAAM,cAAc,UAAU;AAAA,MAChC;AAEA,UAAI,oBAAoB,eAAe,GAAG;AACxC,cAAM,MAAM,YAAY,yBAAyB,MAAM,CAAC;AAAA,MAC1D,OAAO;AACL,cAAM,MAAM;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -1,12 +1,12 @@
1
1
  // src/versionSelector.ts
2
- var versionSelector = (clerkJSVersion, packageVersion = "5.93.0") => {
2
+ var versionSelector = (clerkJSVersion, packageVersion = "5.94.0-canary.v20250916123724") => {
3
3
  if (clerkJSVersion) {
4
4
  return clerkJSVersion;
5
5
  }
6
6
  const prereleaseTag = getPrereleaseTag(packageVersion);
7
7
  if (prereleaseTag) {
8
8
  if (prereleaseTag === "snapshot") {
9
- return "5.93.0";
9
+ return "5.94.0-canary.v20250916123724";
10
10
  }
11
11
  return prereleaseTag;
12
12
  }
@@ -19,4 +19,4 @@ export {
19
19
  versionSelector,
20
20
  getMajorVersion
21
21
  };
22
- //# sourceMappingURL=chunk-BLSTSB5L.mjs.map
22
+ //# sourceMappingURL=chunk-SDPWKSYB.mjs.map
@@ -1 +1 @@
1
- {"version":3,"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 * @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 JS_PACKAGE_VERSION;\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":";AAUO,IAAM,kBAAkB,CAAC,gBAAoC,iBAAiB,aAAuB;AAC1G,MAAI,gBAAgB;AAClB,WAAO;AAAA,EACT;AAEA,QAAM,gBAAgB,iBAAiB,cAAc;AACrD,MAAI,eAAe;AACjB,QAAI,kBAAkB,YAAY;AAChC,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAEA,SAAO,gBAAgB,cAAc;AACvC;AAEA,IAAM,mBAAmB,CAAC,mBACxB,eACG,KAAK,EACL,QAAQ,MAAM,EAAE,EAChB,MAAM,cAAc,IAAI,CAAC;AAEvB,IAAM,kBAAkB,CAAC,mBAA2B,eAAe,KAAK,EAAE,QAAQ,MAAM,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC;","names":[]}
1
+ {"version":3,"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 * @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 JS_PACKAGE_VERSION;\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":";AAUO,IAAM,kBAAkB,CAAC,gBAAoC,iBAAiB,oCAAuB;AAC1G,MAAI,gBAAgB;AAClB,WAAO;AAAA,EACT;AAEA,QAAM,gBAAgB,iBAAiB,cAAc;AACrD,MAAI,eAAe;AACjB,QAAI,kBAAkB,YAAY;AAChC,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAEA,SAAO,gBAAgB,cAAc;AACvC;AAEA,IAAM,mBAAmB,CAAC,mBACxB,eACG,KAAK,EACL,QAAQ,MAAM,EAAE,EAChB,MAAM,cAAc,IAAI,CAAC;AAEvB,IAAM,kBAAkB,CAAC,mBAA2B,eAAe,KAAK,EAAE,QAAQ,MAAM,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC;","names":[]}
package/dist/index.js CHANGED
@@ -1070,7 +1070,7 @@ var createExponentialDelayAsyncFn = (opts) => {
1070
1070
  };
1071
1071
  var retry = async (callback, options = {}) => {
1072
1072
  let iterations = 0;
1073
- const { shouldRetry, initialDelay, maxDelayBetweenRetries, factor, retryImmediately, jitter } = {
1073
+ const { shouldRetry, initialDelay, maxDelayBetweenRetries, factor, retryImmediately, jitter, onBeforeRetry } = {
1074
1074
  ...defaultOptions,
1075
1075
  ...options
1076
1076
  };
@@ -1088,6 +1088,9 @@ var retry = async (callback, options = {}) => {
1088
1088
  if (!shouldRetry(e, iterations)) {
1089
1089
  throw e;
1090
1090
  }
1091
+ if (onBeforeRetry) {
1092
+ await onBeforeRetry(iterations);
1093
+ }
1091
1094
  if (retryImmediately && iterations === 1) {
1092
1095
  await sleep(applyJitter(RETRY_IMMEDIATELY_DELAY, jitter));
1093
1096
  } else {
@@ -1278,14 +1281,14 @@ var ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\d+\-.]*?:/;
1278
1281
  var isAbsoluteUrl = (url) => ABSOLUTE_URL_REGEX.test(url);
1279
1282
 
1280
1283
  // src/versionSelector.ts
1281
- var versionSelector = (clerkJSVersion, packageVersion = "5.93.0") => {
1284
+ var versionSelector = (clerkJSVersion, packageVersion = "5.94.0-canary.v20250916123724") => {
1282
1285
  if (clerkJSVersion) {
1283
1286
  return clerkJSVersion;
1284
1287
  }
1285
1288
  const prereleaseTag = getPrereleaseTag(packageVersion);
1286
1289
  if (prereleaseTag) {
1287
1290
  if (prereleaseTag === "snapshot") {
1288
- return "5.93.0";
1291
+ return "5.94.0-canary.v20250916123724";
1289
1292
  }
1290
1293
  return prereleaseTag;
1291
1294
  }