@clerk/shared 3.31.0 → 3.31.1-snapshot.v20251105162613

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.
Files changed (33) hide show
  1. package/dist/runtime/color-CPeLVdj4.d.mts.map +1 -1
  2. package/dist/runtime/date-DDNRUU0r.d.ts.map +1 -1
  3. package/dist/runtime/error-N5pE9_pc.d.mts.map +1 -1
  4. package/dist/runtime/globs.d.mts.map +1 -1
  5. package/dist/runtime/globs.d.ts.map +1 -1
  6. package/dist/runtime/index-QKCu8BC3.d.ts.map +1 -1
  7. package/dist/runtime/index.js +2 -2
  8. package/dist/runtime/index.mjs +2 -2
  9. package/dist/runtime/{loadClerkJsScript-B6B9VpJL.mjs → loadClerkJsScript-CqAq0B5f.mjs} +2 -2
  10. package/dist/runtime/{loadClerkJsScript-B6B9VpJL.mjs.map → loadClerkJsScript-CqAq0B5f.mjs.map} +1 -1
  11. package/dist/runtime/{loadClerkJsScript-BIPE-l3G.js → loadClerkJsScript-SFD6IA1A.js} +2 -2
  12. package/dist/runtime/{loadClerkJsScript-BIPE-l3G.js.map → loadClerkJsScript-SFD6IA1A.js.map} +1 -1
  13. package/dist/runtime/loadClerkJsScript.js +2 -2
  14. package/dist/runtime/loadClerkJsScript.mjs +2 -2
  15. package/dist/runtime/pathMatcher-CFwDMx3z.d.ts.map +1 -1
  16. package/dist/runtime/pathMatcher-n7OPVmtA.d.mts.map +1 -1
  17. package/dist/runtime/poller-CIrx6NwR.d.ts.map +1 -1
  18. package/dist/runtime/poller-Cn-a74Uo.d.mts.map +1 -1
  19. package/dist/runtime/react/index.js +5 -1
  20. package/dist/runtime/react/index.js.map +1 -1
  21. package/dist/runtime/react/index.mjs +5 -1
  22. package/dist/runtime/react/index.mjs.map +1 -1
  23. package/dist/runtime/url-2rfd29Os.d.mts.map +1 -1
  24. package/dist/runtime/url-Ms4rigVZ.d.ts.map +1 -1
  25. package/dist/runtime/{versionSelector-BKo0Znsl.js → versionSelector-2V8yqqgZ.js} +3 -3
  26. package/dist/runtime/{versionSelector-BKo0Znsl.js.map → versionSelector-2V8yqqgZ.js.map} +1 -1
  27. package/dist/runtime/{versionSelector-Ctjkw92Q.mjs → versionSelector-w-Zk-G-8.mjs} +3 -3
  28. package/dist/runtime/{versionSelector-Ctjkw92Q.mjs.map → versionSelector-w-Zk-G-8.mjs.map} +1 -1
  29. package/dist/runtime/versionSelector.js +1 -1
  30. package/dist/runtime/versionSelector.mjs +1 -1
  31. package/dist/types/index.d.mts.map +1 -1
  32. package/dist/types/index.d.ts.map +1 -1
  33. package/package.json +1 -1
@@ -22,8 +22,8 @@ require('./retry-rhkPbMCS.js');
22
22
  const require_loadScript = require('./loadScript-CRbXHvGF.js');
23
23
  const require_proxy = require('./proxy-B_Yui2Mf.js');
24
24
  const require_url = require('./url-DngZvS9Y.js');
25
- const require_versionSelector = require('./versionSelector-BKo0Znsl.js');
26
- const require_loadClerkJsScript = require('./loadClerkJsScript-BIPE-l3G.js');
25
+ const require_versionSelector = require('./versionSelector-2V8yqqgZ.js');
26
+ const require_loadClerkJsScript = require('./loadClerkJsScript-SFD6IA1A.js');
27
27
  const require_localStorageBroadcastChannel = require('./localStorageBroadcastChannel-BSJY81in.js');
28
28
  const require_workerTimers = require('./workerTimers-CyP1YqyG.js');
29
29
  const require_poller = require('./poller-QBwri4RY.js');
@@ -22,8 +22,8 @@ import "./retry-DAlTROH9.mjs";
22
22
  import { loadScript } from "./loadScript-Bll0Ohcb.mjs";
23
23
  import { isHttpOrHttps, isProxyUrlRelative, isValidProxyUrl, proxyUrlToAbsoluteURL } from "./proxy-Bq8EHApG.mjs";
24
24
  import { addClerkPrefix, cleanDoubleSlashes, getClerkJsMajorVersionOrTag, getScriptUrl, hasLeadingSlash, hasTrailingSlash, isAbsoluteUrl, isCurrentDevAccountPortalOrigin, isLegacyDevAccountPortalOrigin, isNonEmptyURL, joinURL, parseSearchParams, stripScheme, withLeadingSlash, withTrailingSlash, withoutLeadingSlash, withoutTrailingSlash } from "./url-BuzaT2V9.mjs";
25
- import { versionSelector } from "./versionSelector-Ctjkw92Q.mjs";
26
- import { buildClerkJsScriptAttributes, clerkJsScriptUrl, loadClerkJsScript, setClerkJsLoadingErrorPackageName } from "./loadClerkJsScript-B6B9VpJL.mjs";
25
+ import { versionSelector } from "./versionSelector-w-Zk-G-8.mjs";
26
+ import { buildClerkJsScriptAttributes, clerkJsScriptUrl, loadClerkJsScript, setClerkJsLoadingErrorPackageName } from "./loadClerkJsScript-CqAq0B5f.mjs";
27
27
  import { LocalStorageBroadcastChannel } from "./localStorageBroadcastChannel-sPutPiqo.mjs";
28
28
  import { createWorkerTimers } from "./workerTimers-SDJuCuGo.mjs";
29
29
  import { Poller } from "./poller-Co9NmMWr.mjs";
@@ -3,7 +3,7 @@ import { ClerkRuntimeError, buildErrorThrower } from "./error-B2RA62bv.mjs";
3
3
  import { loadScript } from "./loadScript-Bll0Ohcb.mjs";
4
4
  import { isValidProxyUrl, proxyUrlToAbsoluteURL } from "./proxy-Bq8EHApG.mjs";
5
5
  import { addClerkPrefix } from "./url-BuzaT2V9.mjs";
6
- import { versionSelector } from "./versionSelector-Ctjkw92Q.mjs";
6
+ import { versionSelector } from "./versionSelector-w-Zk-G-8.mjs";
7
7
 
8
8
  //#region src/loadClerkJsScript.ts
9
9
  const ERROR_CODE = "failed_to_load_clerk_js";
@@ -168,4 +168,4 @@ const applyClerkJsScriptAttributes = (options) => (script) => {
168
168
 
169
169
  //#endregion
170
170
  export { buildClerkJsScriptAttributes, clerkJsScriptUrl, loadClerkJsScript, setClerkJsLoadingErrorPackageName };
171
- //# sourceMappingURL=loadClerkJsScript-B6B9VpJL.mjs.map
171
+ //# sourceMappingURL=loadClerkJsScript-CqAq0B5f.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"loadClerkJsScript-B6B9VpJL.mjs","names":["packageName: string","timeoutMs: number","timeoutId: ReturnType<typeof setTimeout>","pollInterval: ReturnType<typeof setInterval>","timeoutId","pollInterval","opts?: LoadClerkJsScriptOptions","opts: LoadClerkJsScriptOptions","options: LoadClerkJsScriptOptions","obj: Record<string, string>","script: HTMLScriptElement"],"sources":["../../src/loadClerkJsScript.ts"],"sourcesContent":["import { buildErrorThrower, ClerkRuntimeError } from './error';\nimport { createDevOrStagingUrlCache, parsePublishableKey } from './keys';\nimport { loadScript } from './loadScript';\nimport { isValidProxyUrl, proxyUrlToAbsoluteURL } from './proxy';\nimport type { ClerkOptions, SDKMetadata, Without } from './types';\nimport { addClerkPrefix } from './url';\nimport { versionSelector } from './versionSelector';\n\nconst ERROR_CODE = 'failed_to_load_clerk_js';\nconst ERROR_CODE_TIMEOUT = 'failed_to_load_clerk_js_timeout';\nconst FAILED_TO_LOAD_ERROR = 'Failed to load Clerk';\n\nconst { isDevOrStagingUrl } = createDevOrStagingUrlCache();\n\nconst errorThrower = buildErrorThrower({ packageName: '@clerk/shared' });\n\n/**\n * Sets the package name for error messages during ClerkJS script loading.\n *\n * @param packageName - The name of the package to use in error messages (e.g., '@clerk/clerk-react').\n * @example\n * ```typescript\n * setClerkJsLoadingErrorPackageName('@clerk/clerk-react');\n * ```\n */\nexport function setClerkJsLoadingErrorPackageName(packageName: string) {\n errorThrower.setPackageName({ packageName });\n}\n\ntype LoadClerkJsScriptOptions = Without<ClerkOptions, 'isSatellite'> & {\n publishableKey: string;\n clerkJSUrl?: string;\n clerkJSVariant?: 'headless' | '';\n clerkJSVersion?: string;\n sdkMetadata?: SDKMetadata;\n proxyUrl?: string;\n domain?: string;\n nonce?: string;\n /**\n * Timeout in milliseconds to wait for clerk-js to load before considering it failed.\n *\n * @default 15000 (15 seconds)\n */\n scriptLoadTimeout?: number;\n};\n\n/**\n * Validates that window.Clerk exists and is properly initialized.\n * This ensures we don't have false positives where the script loads but Clerk is malformed.\n *\n * @returns `true` if window.Clerk exists and has the expected structure with a load method.\n */\nfunction isClerkProperlyLoaded(): boolean {\n if (typeof window === 'undefined' || !(window as any).Clerk) {\n return false;\n }\n\n // Basic validation that window.Clerk has the expected structure\n const clerk = (window as any).Clerk;\n return typeof clerk === 'object' && typeof clerk.load === 'function';\n}\n\n/**\n * Waits for Clerk to be properly loaded with a timeout mechanism.\n * Uses polling to check if Clerk becomes available within the specified timeout.\n *\n * @param timeoutMs - Maximum time to wait in milliseconds.\n * @returns Promise that resolves with null if Clerk loads successfully, or rejects with an error if timeout is reached.\n */\nfunction waitForClerkWithTimeout(timeoutMs: number): Promise<HTMLScriptElement | null> {\n return new Promise((resolve, reject) => {\n let resolved = false;\n\n const cleanup = (timeoutId: ReturnType<typeof setTimeout>, pollInterval: ReturnType<typeof setInterval>) => {\n clearTimeout(timeoutId);\n clearInterval(pollInterval);\n };\n\n const checkAndResolve = () => {\n if (resolved) {\n return;\n }\n\n if (isClerkProperlyLoaded()) {\n resolved = true;\n cleanup(timeoutId, pollInterval);\n resolve(null);\n }\n };\n\n const handleTimeout = () => {\n if (resolved) {\n return;\n }\n\n resolved = true;\n cleanup(timeoutId, pollInterval);\n\n if (!isClerkProperlyLoaded()) {\n reject(new ClerkRuntimeError(FAILED_TO_LOAD_ERROR, { code: ERROR_CODE_TIMEOUT }));\n } else {\n resolve(null);\n }\n };\n\n const timeoutId = setTimeout(handleTimeout, timeoutMs);\n\n checkAndResolve();\n\n const pollInterval = setInterval(() => {\n if (resolved) {\n clearInterval(pollInterval);\n return;\n }\n checkAndResolve();\n }, 100);\n });\n}\n\n/**\n * Hotloads the Clerk JS script with robust failure detection.\n *\n * Uses a timeout-based approach to ensure absolute certainty about load success/failure.\n * If the script fails to load within the timeout period, or loads but doesn't create\n * a proper Clerk instance, the promise rejects with an error.\n *\n * @param opts - The options used to build the Clerk JS script URL and load the script.\n * Must include a `publishableKey` if no existing script is found.\n * @returns Promise that resolves with null if Clerk loads successfully, or rejects with an error.\n *\n * @example\n * ```typescript\n * try {\n * await loadClerkJsScript({ publishableKey: 'pk_test_...' });\n * console.log('Clerk loaded successfully');\n * } catch (error) {\n * console.error('Failed to load Clerk:', error.message);\n * }\n * ```\n */\nconst loadClerkJsScript = async (opts?: LoadClerkJsScriptOptions): Promise<HTMLScriptElement | null> => {\n const timeout = opts?.scriptLoadTimeout ?? 15000;\n\n if (isClerkProperlyLoaded()) {\n return null;\n }\n\n const existingScript = document.querySelector<HTMLScriptElement>('script[data-clerk-js-script]');\n\n if (existingScript) {\n return waitForClerkWithTimeout(timeout);\n }\n\n if (!opts?.publishableKey) {\n errorThrower.throwMissingPublishableKeyError();\n return null;\n }\n\n const loadPromise = waitForClerkWithTimeout(timeout);\n\n loadScript(clerkJsScriptUrl(opts), {\n async: true,\n crossOrigin: 'anonymous',\n nonce: opts.nonce,\n beforeLoad: applyClerkJsScriptAttributes(opts),\n }).catch(error => {\n throw new ClerkRuntimeError(FAILED_TO_LOAD_ERROR + (error.message ? `, ${error.message}` : ''), {\n code: ERROR_CODE,\n cause: error,\n });\n });\n\n return loadPromise;\n};\n\n/**\n * Generates a Clerk JS script URL based on the provided options.\n *\n * @param opts - The options to use when building the Clerk JS script URL.\n * @returns The complete URL to the Clerk JS script.\n *\n * @example\n * ```typescript\n * const url = clerkJsScriptUrl({ publishableKey: 'pk_test_...' });\n * // Returns: \"https://example.clerk.accounts.dev/npm/@clerk/clerk-js@5/dist/clerk.browser.js\"\n * ```\n */\nconst clerkJsScriptUrl = (opts: LoadClerkJsScriptOptions) => {\n const { clerkJSUrl, clerkJSVariant, clerkJSVersion, proxyUrl, domain, publishableKey } = opts;\n\n if (clerkJSUrl) {\n return clerkJSUrl;\n }\n\n let scriptHost = '';\n if (!!proxyUrl && isValidProxyUrl(proxyUrl)) {\n scriptHost = proxyUrlToAbsoluteURL(proxyUrl).replace(/http(s)?:\\/\\//, '');\n } else if (domain && !isDevOrStagingUrl(parsePublishableKey(publishableKey)?.frontendApi || '')) {\n scriptHost = addClerkPrefix(domain);\n } else {\n scriptHost = parsePublishableKey(publishableKey)?.frontendApi || '';\n }\n\n const variant = clerkJSVariant ? `${clerkJSVariant.replace(/\\.+$/, '')}.` : '';\n const version = versionSelector(clerkJSVersion);\n return `https://${scriptHost}/npm/@clerk/clerk-js@${version}/dist/clerk.${variant}browser.js`;\n};\n\n/**\n * Builds an object of Clerk JS script attributes based on the provided options.\n *\n * @param options - The options containing the values for script attributes.\n * @returns An object containing data attributes to be applied to the script element.\n */\nconst buildClerkJsScriptAttributes = (options: LoadClerkJsScriptOptions) => {\n const obj: Record<string, string> = {};\n\n if (options.publishableKey) {\n obj['data-clerk-publishable-key'] = options.publishableKey;\n }\n\n if (options.proxyUrl) {\n obj['data-clerk-proxy-url'] = options.proxyUrl;\n }\n\n if (options.domain) {\n obj['data-clerk-domain'] = options.domain;\n }\n\n if (options.nonce) {\n obj.nonce = options.nonce;\n }\n\n return obj;\n};\n\n/**\n * Returns a function that applies Clerk JS script attributes to a script element.\n *\n * @param options - The options containing the values for script attributes.\n * @returns A function that accepts a script element and applies the attributes to it.\n */\nconst applyClerkJsScriptAttributes = (options: LoadClerkJsScriptOptions) => (script: HTMLScriptElement) => {\n const attributes = buildClerkJsScriptAttributes(options);\n for (const attribute in attributes) {\n script.setAttribute(attribute, attributes[attribute]);\n }\n};\n\nexport { buildClerkJsScriptAttributes, clerkJsScriptUrl, loadClerkJsScript };\nexport type { LoadClerkJsScriptOptions };\n"],"mappings":"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"}
1
+ {"version":3,"file":"loadClerkJsScript-CqAq0B5f.mjs","names":["packageName: string","timeoutMs: number","timeoutId: ReturnType<typeof setTimeout>","pollInterval: ReturnType<typeof setInterval>","timeoutId","pollInterval","opts?: LoadClerkJsScriptOptions","opts: LoadClerkJsScriptOptions","options: LoadClerkJsScriptOptions","obj: Record<string, string>","script: HTMLScriptElement"],"sources":["../../src/loadClerkJsScript.ts"],"sourcesContent":["import { buildErrorThrower, ClerkRuntimeError } from './error';\nimport { createDevOrStagingUrlCache, parsePublishableKey } from './keys';\nimport { loadScript } from './loadScript';\nimport { isValidProxyUrl, proxyUrlToAbsoluteURL } from './proxy';\nimport type { ClerkOptions, SDKMetadata, Without } from './types';\nimport { addClerkPrefix } from './url';\nimport { versionSelector } from './versionSelector';\n\nconst ERROR_CODE = 'failed_to_load_clerk_js';\nconst ERROR_CODE_TIMEOUT = 'failed_to_load_clerk_js_timeout';\nconst FAILED_TO_LOAD_ERROR = 'Failed to load Clerk';\n\nconst { isDevOrStagingUrl } = createDevOrStagingUrlCache();\n\nconst errorThrower = buildErrorThrower({ packageName: '@clerk/shared' });\n\n/**\n * Sets the package name for error messages during ClerkJS script loading.\n *\n * @param packageName - The name of the package to use in error messages (e.g., '@clerk/clerk-react').\n * @example\n * ```typescript\n * setClerkJsLoadingErrorPackageName('@clerk/clerk-react');\n * ```\n */\nexport function setClerkJsLoadingErrorPackageName(packageName: string) {\n errorThrower.setPackageName({ packageName });\n}\n\ntype LoadClerkJsScriptOptions = Without<ClerkOptions, 'isSatellite'> & {\n publishableKey: string;\n clerkJSUrl?: string;\n clerkJSVariant?: 'headless' | '';\n clerkJSVersion?: string;\n sdkMetadata?: SDKMetadata;\n proxyUrl?: string;\n domain?: string;\n nonce?: string;\n /**\n * Timeout in milliseconds to wait for clerk-js to load before considering it failed.\n *\n * @default 15000 (15 seconds)\n */\n scriptLoadTimeout?: number;\n};\n\n/**\n * Validates that window.Clerk exists and is properly initialized.\n * This ensures we don't have false positives where the script loads but Clerk is malformed.\n *\n * @returns `true` if window.Clerk exists and has the expected structure with a load method.\n */\nfunction isClerkProperlyLoaded(): boolean {\n if (typeof window === 'undefined' || !(window as any).Clerk) {\n return false;\n }\n\n // Basic validation that window.Clerk has the expected structure\n const clerk = (window as any).Clerk;\n return typeof clerk === 'object' && typeof clerk.load === 'function';\n}\n\n/**\n * Waits for Clerk to be properly loaded with a timeout mechanism.\n * Uses polling to check if Clerk becomes available within the specified timeout.\n *\n * @param timeoutMs - Maximum time to wait in milliseconds.\n * @returns Promise that resolves with null if Clerk loads successfully, or rejects with an error if timeout is reached.\n */\nfunction waitForClerkWithTimeout(timeoutMs: number): Promise<HTMLScriptElement | null> {\n return new Promise((resolve, reject) => {\n let resolved = false;\n\n const cleanup = (timeoutId: ReturnType<typeof setTimeout>, pollInterval: ReturnType<typeof setInterval>) => {\n clearTimeout(timeoutId);\n clearInterval(pollInterval);\n };\n\n const checkAndResolve = () => {\n if (resolved) {\n return;\n }\n\n if (isClerkProperlyLoaded()) {\n resolved = true;\n cleanup(timeoutId, pollInterval);\n resolve(null);\n }\n };\n\n const handleTimeout = () => {\n if (resolved) {\n return;\n }\n\n resolved = true;\n cleanup(timeoutId, pollInterval);\n\n if (!isClerkProperlyLoaded()) {\n reject(new ClerkRuntimeError(FAILED_TO_LOAD_ERROR, { code: ERROR_CODE_TIMEOUT }));\n } else {\n resolve(null);\n }\n };\n\n const timeoutId = setTimeout(handleTimeout, timeoutMs);\n\n checkAndResolve();\n\n const pollInterval = setInterval(() => {\n if (resolved) {\n clearInterval(pollInterval);\n return;\n }\n checkAndResolve();\n }, 100);\n });\n}\n\n/**\n * Hotloads the Clerk JS script with robust failure detection.\n *\n * Uses a timeout-based approach to ensure absolute certainty about load success/failure.\n * If the script fails to load within the timeout period, or loads but doesn't create\n * a proper Clerk instance, the promise rejects with an error.\n *\n * @param opts - The options used to build the Clerk JS script URL and load the script.\n * Must include a `publishableKey` if no existing script is found.\n * @returns Promise that resolves with null if Clerk loads successfully, or rejects with an error.\n *\n * @example\n * ```typescript\n * try {\n * await loadClerkJsScript({ publishableKey: 'pk_test_...' });\n * console.log('Clerk loaded successfully');\n * } catch (error) {\n * console.error('Failed to load Clerk:', error.message);\n * }\n * ```\n */\nconst loadClerkJsScript = async (opts?: LoadClerkJsScriptOptions): Promise<HTMLScriptElement | null> => {\n const timeout = opts?.scriptLoadTimeout ?? 15000;\n\n if (isClerkProperlyLoaded()) {\n return null;\n }\n\n const existingScript = document.querySelector<HTMLScriptElement>('script[data-clerk-js-script]');\n\n if (existingScript) {\n return waitForClerkWithTimeout(timeout);\n }\n\n if (!opts?.publishableKey) {\n errorThrower.throwMissingPublishableKeyError();\n return null;\n }\n\n const loadPromise = waitForClerkWithTimeout(timeout);\n\n loadScript(clerkJsScriptUrl(opts), {\n async: true,\n crossOrigin: 'anonymous',\n nonce: opts.nonce,\n beforeLoad: applyClerkJsScriptAttributes(opts),\n }).catch(error => {\n throw new ClerkRuntimeError(FAILED_TO_LOAD_ERROR + (error.message ? `, ${error.message}` : ''), {\n code: ERROR_CODE,\n cause: error,\n });\n });\n\n return loadPromise;\n};\n\n/**\n * Generates a Clerk JS script URL based on the provided options.\n *\n * @param opts - The options to use when building the Clerk JS script URL.\n * @returns The complete URL to the Clerk JS script.\n *\n * @example\n * ```typescript\n * const url = clerkJsScriptUrl({ publishableKey: 'pk_test_...' });\n * // Returns: \"https://example.clerk.accounts.dev/npm/@clerk/clerk-js@5/dist/clerk.browser.js\"\n * ```\n */\nconst clerkJsScriptUrl = (opts: LoadClerkJsScriptOptions) => {\n const { clerkJSUrl, clerkJSVariant, clerkJSVersion, proxyUrl, domain, publishableKey } = opts;\n\n if (clerkJSUrl) {\n return clerkJSUrl;\n }\n\n let scriptHost = '';\n if (!!proxyUrl && isValidProxyUrl(proxyUrl)) {\n scriptHost = proxyUrlToAbsoluteURL(proxyUrl).replace(/http(s)?:\\/\\//, '');\n } else if (domain && !isDevOrStagingUrl(parsePublishableKey(publishableKey)?.frontendApi || '')) {\n scriptHost = addClerkPrefix(domain);\n } else {\n scriptHost = parsePublishableKey(publishableKey)?.frontendApi || '';\n }\n\n const variant = clerkJSVariant ? `${clerkJSVariant.replace(/\\.+$/, '')}.` : '';\n const version = versionSelector(clerkJSVersion);\n return `https://${scriptHost}/npm/@clerk/clerk-js@${version}/dist/clerk.${variant}browser.js`;\n};\n\n/**\n * Builds an object of Clerk JS script attributes based on the provided options.\n *\n * @param options - The options containing the values for script attributes.\n * @returns An object containing data attributes to be applied to the script element.\n */\nconst buildClerkJsScriptAttributes = (options: LoadClerkJsScriptOptions) => {\n const obj: Record<string, string> = {};\n\n if (options.publishableKey) {\n obj['data-clerk-publishable-key'] = options.publishableKey;\n }\n\n if (options.proxyUrl) {\n obj['data-clerk-proxy-url'] = options.proxyUrl;\n }\n\n if (options.domain) {\n obj['data-clerk-domain'] = options.domain;\n }\n\n if (options.nonce) {\n obj.nonce = options.nonce;\n }\n\n return obj;\n};\n\n/**\n * Returns a function that applies Clerk JS script attributes to a script element.\n *\n * @param options - The options containing the values for script attributes.\n * @returns A function that accepts a script element and applies the attributes to it.\n */\nconst applyClerkJsScriptAttributes = (options: LoadClerkJsScriptOptions) => (script: HTMLScriptElement) => {\n const attributes = buildClerkJsScriptAttributes(options);\n for (const attribute in attributes) {\n script.setAttribute(attribute, attributes[attribute]);\n }\n};\n\nexport { buildClerkJsScriptAttributes, clerkJsScriptUrl, loadClerkJsScript };\nexport type { LoadClerkJsScriptOptions };\n"],"mappings":"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"}
@@ -3,7 +3,7 @@ const require_error = require('./error-B8rjBHwB.js');
3
3
  const require_loadScript = require('./loadScript-CRbXHvGF.js');
4
4
  const require_proxy = require('./proxy-B_Yui2Mf.js');
5
5
  const require_url = require('./url-DngZvS9Y.js');
6
- const require_versionSelector = require('./versionSelector-BKo0Znsl.js');
6
+ const require_versionSelector = require('./versionSelector-2V8yqqgZ.js');
7
7
 
8
8
  //#region src/loadClerkJsScript.ts
9
9
  const ERROR_CODE = "failed_to_load_clerk_js";
@@ -191,4 +191,4 @@ Object.defineProperty(exports, 'setClerkJsLoadingErrorPackageName', {
191
191
  return setClerkJsLoadingErrorPackageName;
192
192
  }
193
193
  });
194
- //# sourceMappingURL=loadClerkJsScript-BIPE-l3G.js.map
194
+ //# sourceMappingURL=loadClerkJsScript-SFD6IA1A.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loadClerkJsScript-BIPE-l3G.js","names":["packageName: string","timeoutMs: number","timeoutId: ReturnType<typeof setTimeout>","pollInterval: ReturnType<typeof setInterval>","timeoutId","pollInterval","ClerkRuntimeError","opts?: LoadClerkJsScriptOptions","opts: LoadClerkJsScriptOptions","options: LoadClerkJsScriptOptions","obj: Record<string, string>","script: HTMLScriptElement"],"sources":["../../src/loadClerkJsScript.ts"],"sourcesContent":["import { buildErrorThrower, ClerkRuntimeError } from './error';\nimport { createDevOrStagingUrlCache, parsePublishableKey } from './keys';\nimport { loadScript } from './loadScript';\nimport { isValidProxyUrl, proxyUrlToAbsoluteURL } from './proxy';\nimport type { ClerkOptions, SDKMetadata, Without } from './types';\nimport { addClerkPrefix } from './url';\nimport { versionSelector } from './versionSelector';\n\nconst ERROR_CODE = 'failed_to_load_clerk_js';\nconst ERROR_CODE_TIMEOUT = 'failed_to_load_clerk_js_timeout';\nconst FAILED_TO_LOAD_ERROR = 'Failed to load Clerk';\n\nconst { isDevOrStagingUrl } = createDevOrStagingUrlCache();\n\nconst errorThrower = buildErrorThrower({ packageName: '@clerk/shared' });\n\n/**\n * Sets the package name for error messages during ClerkJS script loading.\n *\n * @param packageName - The name of the package to use in error messages (e.g., '@clerk/clerk-react').\n * @example\n * ```typescript\n * setClerkJsLoadingErrorPackageName('@clerk/clerk-react');\n * ```\n */\nexport function setClerkJsLoadingErrorPackageName(packageName: string) {\n errorThrower.setPackageName({ packageName });\n}\n\ntype LoadClerkJsScriptOptions = Without<ClerkOptions, 'isSatellite'> & {\n publishableKey: string;\n clerkJSUrl?: string;\n clerkJSVariant?: 'headless' | '';\n clerkJSVersion?: string;\n sdkMetadata?: SDKMetadata;\n proxyUrl?: string;\n domain?: string;\n nonce?: string;\n /**\n * Timeout in milliseconds to wait for clerk-js to load before considering it failed.\n *\n * @default 15000 (15 seconds)\n */\n scriptLoadTimeout?: number;\n};\n\n/**\n * Validates that window.Clerk exists and is properly initialized.\n * This ensures we don't have false positives where the script loads but Clerk is malformed.\n *\n * @returns `true` if window.Clerk exists and has the expected structure with a load method.\n */\nfunction isClerkProperlyLoaded(): boolean {\n if (typeof window === 'undefined' || !(window as any).Clerk) {\n return false;\n }\n\n // Basic validation that window.Clerk has the expected structure\n const clerk = (window as any).Clerk;\n return typeof clerk === 'object' && typeof clerk.load === 'function';\n}\n\n/**\n * Waits for Clerk to be properly loaded with a timeout mechanism.\n * Uses polling to check if Clerk becomes available within the specified timeout.\n *\n * @param timeoutMs - Maximum time to wait in milliseconds.\n * @returns Promise that resolves with null if Clerk loads successfully, or rejects with an error if timeout is reached.\n */\nfunction waitForClerkWithTimeout(timeoutMs: number): Promise<HTMLScriptElement | null> {\n return new Promise((resolve, reject) => {\n let resolved = false;\n\n const cleanup = (timeoutId: ReturnType<typeof setTimeout>, pollInterval: ReturnType<typeof setInterval>) => {\n clearTimeout(timeoutId);\n clearInterval(pollInterval);\n };\n\n const checkAndResolve = () => {\n if (resolved) {\n return;\n }\n\n if (isClerkProperlyLoaded()) {\n resolved = true;\n cleanup(timeoutId, pollInterval);\n resolve(null);\n }\n };\n\n const handleTimeout = () => {\n if (resolved) {\n return;\n }\n\n resolved = true;\n cleanup(timeoutId, pollInterval);\n\n if (!isClerkProperlyLoaded()) {\n reject(new ClerkRuntimeError(FAILED_TO_LOAD_ERROR, { code: ERROR_CODE_TIMEOUT }));\n } else {\n resolve(null);\n }\n };\n\n const timeoutId = setTimeout(handleTimeout, timeoutMs);\n\n checkAndResolve();\n\n const pollInterval = setInterval(() => {\n if (resolved) {\n clearInterval(pollInterval);\n return;\n }\n checkAndResolve();\n }, 100);\n });\n}\n\n/**\n * Hotloads the Clerk JS script with robust failure detection.\n *\n * Uses a timeout-based approach to ensure absolute certainty about load success/failure.\n * If the script fails to load within the timeout period, or loads but doesn't create\n * a proper Clerk instance, the promise rejects with an error.\n *\n * @param opts - The options used to build the Clerk JS script URL and load the script.\n * Must include a `publishableKey` if no existing script is found.\n * @returns Promise that resolves with null if Clerk loads successfully, or rejects with an error.\n *\n * @example\n * ```typescript\n * try {\n * await loadClerkJsScript({ publishableKey: 'pk_test_...' });\n * console.log('Clerk loaded successfully');\n * } catch (error) {\n * console.error('Failed to load Clerk:', error.message);\n * }\n * ```\n */\nconst loadClerkJsScript = async (opts?: LoadClerkJsScriptOptions): Promise<HTMLScriptElement | null> => {\n const timeout = opts?.scriptLoadTimeout ?? 15000;\n\n if (isClerkProperlyLoaded()) {\n return null;\n }\n\n const existingScript = document.querySelector<HTMLScriptElement>('script[data-clerk-js-script]');\n\n if (existingScript) {\n return waitForClerkWithTimeout(timeout);\n }\n\n if (!opts?.publishableKey) {\n errorThrower.throwMissingPublishableKeyError();\n return null;\n }\n\n const loadPromise = waitForClerkWithTimeout(timeout);\n\n loadScript(clerkJsScriptUrl(opts), {\n async: true,\n crossOrigin: 'anonymous',\n nonce: opts.nonce,\n beforeLoad: applyClerkJsScriptAttributes(opts),\n }).catch(error => {\n throw new ClerkRuntimeError(FAILED_TO_LOAD_ERROR + (error.message ? `, ${error.message}` : ''), {\n code: ERROR_CODE,\n cause: error,\n });\n });\n\n return loadPromise;\n};\n\n/**\n * Generates a Clerk JS script URL based on the provided options.\n *\n * @param opts - The options to use when building the Clerk JS script URL.\n * @returns The complete URL to the Clerk JS script.\n *\n * @example\n * ```typescript\n * const url = clerkJsScriptUrl({ publishableKey: 'pk_test_...' });\n * // Returns: \"https://example.clerk.accounts.dev/npm/@clerk/clerk-js@5/dist/clerk.browser.js\"\n * ```\n */\nconst clerkJsScriptUrl = (opts: LoadClerkJsScriptOptions) => {\n const { clerkJSUrl, clerkJSVariant, clerkJSVersion, proxyUrl, domain, publishableKey } = opts;\n\n if (clerkJSUrl) {\n return clerkJSUrl;\n }\n\n let scriptHost = '';\n if (!!proxyUrl && isValidProxyUrl(proxyUrl)) {\n scriptHost = proxyUrlToAbsoluteURL(proxyUrl).replace(/http(s)?:\\/\\//, '');\n } else if (domain && !isDevOrStagingUrl(parsePublishableKey(publishableKey)?.frontendApi || '')) {\n scriptHost = addClerkPrefix(domain);\n } else {\n scriptHost = parsePublishableKey(publishableKey)?.frontendApi || '';\n }\n\n const variant = clerkJSVariant ? `${clerkJSVariant.replace(/\\.+$/, '')}.` : '';\n const version = versionSelector(clerkJSVersion);\n return `https://${scriptHost}/npm/@clerk/clerk-js@${version}/dist/clerk.${variant}browser.js`;\n};\n\n/**\n * Builds an object of Clerk JS script attributes based on the provided options.\n *\n * @param options - The options containing the values for script attributes.\n * @returns An object containing data attributes to be applied to the script element.\n */\nconst buildClerkJsScriptAttributes = (options: LoadClerkJsScriptOptions) => {\n const obj: Record<string, string> = {};\n\n if (options.publishableKey) {\n obj['data-clerk-publishable-key'] = options.publishableKey;\n }\n\n if (options.proxyUrl) {\n obj['data-clerk-proxy-url'] = options.proxyUrl;\n }\n\n if (options.domain) {\n obj['data-clerk-domain'] = options.domain;\n }\n\n if (options.nonce) {\n obj.nonce = options.nonce;\n }\n\n return obj;\n};\n\n/**\n * Returns a function that applies Clerk JS script attributes to a script element.\n *\n * @param options - The options containing the values for script attributes.\n * @returns A function that accepts a script element and applies the attributes to it.\n */\nconst applyClerkJsScriptAttributes = (options: LoadClerkJsScriptOptions) => (script: HTMLScriptElement) => {\n const attributes = buildClerkJsScriptAttributes(options);\n for (const attribute in attributes) {\n script.setAttribute(attribute, attributes[attribute]);\n }\n};\n\nexport { buildClerkJsScriptAttributes, clerkJsScriptUrl, loadClerkJsScript };\nexport type { LoadClerkJsScriptOptions };\n"],"mappings":"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"}
1
+ {"version":3,"file":"loadClerkJsScript-SFD6IA1A.js","names":["packageName: string","timeoutMs: number","timeoutId: ReturnType<typeof setTimeout>","pollInterval: ReturnType<typeof setInterval>","timeoutId","pollInterval","ClerkRuntimeError","opts?: LoadClerkJsScriptOptions","opts: LoadClerkJsScriptOptions","options: LoadClerkJsScriptOptions","obj: Record<string, string>","script: HTMLScriptElement"],"sources":["../../src/loadClerkJsScript.ts"],"sourcesContent":["import { buildErrorThrower, ClerkRuntimeError } from './error';\nimport { createDevOrStagingUrlCache, parsePublishableKey } from './keys';\nimport { loadScript } from './loadScript';\nimport { isValidProxyUrl, proxyUrlToAbsoluteURL } from './proxy';\nimport type { ClerkOptions, SDKMetadata, Without } from './types';\nimport { addClerkPrefix } from './url';\nimport { versionSelector } from './versionSelector';\n\nconst ERROR_CODE = 'failed_to_load_clerk_js';\nconst ERROR_CODE_TIMEOUT = 'failed_to_load_clerk_js_timeout';\nconst FAILED_TO_LOAD_ERROR = 'Failed to load Clerk';\n\nconst { isDevOrStagingUrl } = createDevOrStagingUrlCache();\n\nconst errorThrower = buildErrorThrower({ packageName: '@clerk/shared' });\n\n/**\n * Sets the package name for error messages during ClerkJS script loading.\n *\n * @param packageName - The name of the package to use in error messages (e.g., '@clerk/clerk-react').\n * @example\n * ```typescript\n * setClerkJsLoadingErrorPackageName('@clerk/clerk-react');\n * ```\n */\nexport function setClerkJsLoadingErrorPackageName(packageName: string) {\n errorThrower.setPackageName({ packageName });\n}\n\ntype LoadClerkJsScriptOptions = Without<ClerkOptions, 'isSatellite'> & {\n publishableKey: string;\n clerkJSUrl?: string;\n clerkJSVariant?: 'headless' | '';\n clerkJSVersion?: string;\n sdkMetadata?: SDKMetadata;\n proxyUrl?: string;\n domain?: string;\n nonce?: string;\n /**\n * Timeout in milliseconds to wait for clerk-js to load before considering it failed.\n *\n * @default 15000 (15 seconds)\n */\n scriptLoadTimeout?: number;\n};\n\n/**\n * Validates that window.Clerk exists and is properly initialized.\n * This ensures we don't have false positives where the script loads but Clerk is malformed.\n *\n * @returns `true` if window.Clerk exists and has the expected structure with a load method.\n */\nfunction isClerkProperlyLoaded(): boolean {\n if (typeof window === 'undefined' || !(window as any).Clerk) {\n return false;\n }\n\n // Basic validation that window.Clerk has the expected structure\n const clerk = (window as any).Clerk;\n return typeof clerk === 'object' && typeof clerk.load === 'function';\n}\n\n/**\n * Waits for Clerk to be properly loaded with a timeout mechanism.\n * Uses polling to check if Clerk becomes available within the specified timeout.\n *\n * @param timeoutMs - Maximum time to wait in milliseconds.\n * @returns Promise that resolves with null if Clerk loads successfully, or rejects with an error if timeout is reached.\n */\nfunction waitForClerkWithTimeout(timeoutMs: number): Promise<HTMLScriptElement | null> {\n return new Promise((resolve, reject) => {\n let resolved = false;\n\n const cleanup = (timeoutId: ReturnType<typeof setTimeout>, pollInterval: ReturnType<typeof setInterval>) => {\n clearTimeout(timeoutId);\n clearInterval(pollInterval);\n };\n\n const checkAndResolve = () => {\n if (resolved) {\n return;\n }\n\n if (isClerkProperlyLoaded()) {\n resolved = true;\n cleanup(timeoutId, pollInterval);\n resolve(null);\n }\n };\n\n const handleTimeout = () => {\n if (resolved) {\n return;\n }\n\n resolved = true;\n cleanup(timeoutId, pollInterval);\n\n if (!isClerkProperlyLoaded()) {\n reject(new ClerkRuntimeError(FAILED_TO_LOAD_ERROR, { code: ERROR_CODE_TIMEOUT }));\n } else {\n resolve(null);\n }\n };\n\n const timeoutId = setTimeout(handleTimeout, timeoutMs);\n\n checkAndResolve();\n\n const pollInterval = setInterval(() => {\n if (resolved) {\n clearInterval(pollInterval);\n return;\n }\n checkAndResolve();\n }, 100);\n });\n}\n\n/**\n * Hotloads the Clerk JS script with robust failure detection.\n *\n * Uses a timeout-based approach to ensure absolute certainty about load success/failure.\n * If the script fails to load within the timeout period, or loads but doesn't create\n * a proper Clerk instance, the promise rejects with an error.\n *\n * @param opts - The options used to build the Clerk JS script URL and load the script.\n * Must include a `publishableKey` if no existing script is found.\n * @returns Promise that resolves with null if Clerk loads successfully, or rejects with an error.\n *\n * @example\n * ```typescript\n * try {\n * await loadClerkJsScript({ publishableKey: 'pk_test_...' });\n * console.log('Clerk loaded successfully');\n * } catch (error) {\n * console.error('Failed to load Clerk:', error.message);\n * }\n * ```\n */\nconst loadClerkJsScript = async (opts?: LoadClerkJsScriptOptions): Promise<HTMLScriptElement | null> => {\n const timeout = opts?.scriptLoadTimeout ?? 15000;\n\n if (isClerkProperlyLoaded()) {\n return null;\n }\n\n const existingScript = document.querySelector<HTMLScriptElement>('script[data-clerk-js-script]');\n\n if (existingScript) {\n return waitForClerkWithTimeout(timeout);\n }\n\n if (!opts?.publishableKey) {\n errorThrower.throwMissingPublishableKeyError();\n return null;\n }\n\n const loadPromise = waitForClerkWithTimeout(timeout);\n\n loadScript(clerkJsScriptUrl(opts), {\n async: true,\n crossOrigin: 'anonymous',\n nonce: opts.nonce,\n beforeLoad: applyClerkJsScriptAttributes(opts),\n }).catch(error => {\n throw new ClerkRuntimeError(FAILED_TO_LOAD_ERROR + (error.message ? `, ${error.message}` : ''), {\n code: ERROR_CODE,\n cause: error,\n });\n });\n\n return loadPromise;\n};\n\n/**\n * Generates a Clerk JS script URL based on the provided options.\n *\n * @param opts - The options to use when building the Clerk JS script URL.\n * @returns The complete URL to the Clerk JS script.\n *\n * @example\n * ```typescript\n * const url = clerkJsScriptUrl({ publishableKey: 'pk_test_...' });\n * // Returns: \"https://example.clerk.accounts.dev/npm/@clerk/clerk-js@5/dist/clerk.browser.js\"\n * ```\n */\nconst clerkJsScriptUrl = (opts: LoadClerkJsScriptOptions) => {\n const { clerkJSUrl, clerkJSVariant, clerkJSVersion, proxyUrl, domain, publishableKey } = opts;\n\n if (clerkJSUrl) {\n return clerkJSUrl;\n }\n\n let scriptHost = '';\n if (!!proxyUrl && isValidProxyUrl(proxyUrl)) {\n scriptHost = proxyUrlToAbsoluteURL(proxyUrl).replace(/http(s)?:\\/\\//, '');\n } else if (domain && !isDevOrStagingUrl(parsePublishableKey(publishableKey)?.frontendApi || '')) {\n scriptHost = addClerkPrefix(domain);\n } else {\n scriptHost = parsePublishableKey(publishableKey)?.frontendApi || '';\n }\n\n const variant = clerkJSVariant ? `${clerkJSVariant.replace(/\\.+$/, '')}.` : '';\n const version = versionSelector(clerkJSVersion);\n return `https://${scriptHost}/npm/@clerk/clerk-js@${version}/dist/clerk.${variant}browser.js`;\n};\n\n/**\n * Builds an object of Clerk JS script attributes based on the provided options.\n *\n * @param options - The options containing the values for script attributes.\n * @returns An object containing data attributes to be applied to the script element.\n */\nconst buildClerkJsScriptAttributes = (options: LoadClerkJsScriptOptions) => {\n const obj: Record<string, string> = {};\n\n if (options.publishableKey) {\n obj['data-clerk-publishable-key'] = options.publishableKey;\n }\n\n if (options.proxyUrl) {\n obj['data-clerk-proxy-url'] = options.proxyUrl;\n }\n\n if (options.domain) {\n obj['data-clerk-domain'] = options.domain;\n }\n\n if (options.nonce) {\n obj.nonce = options.nonce;\n }\n\n return obj;\n};\n\n/**\n * Returns a function that applies Clerk JS script attributes to a script element.\n *\n * @param options - The options containing the values for script attributes.\n * @returns A function that accepts a script element and applies the attributes to it.\n */\nconst applyClerkJsScriptAttributes = (options: LoadClerkJsScriptOptions) => (script: HTMLScriptElement) => {\n const attributes = buildClerkJsScriptAttributes(options);\n for (const attribute in attributes) {\n script.setAttribute(attribute, attributes[attribute]);\n }\n};\n\nexport { buildClerkJsScriptAttributes, clerkJsScriptUrl, loadClerkJsScript };\nexport type { LoadClerkJsScriptOptions };\n"],"mappings":"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"}
@@ -8,8 +8,8 @@ require('./retry-rhkPbMCS.js');
8
8
  require('./loadScript-CRbXHvGF.js');
9
9
  require('./proxy-B_Yui2Mf.js');
10
10
  require('./url-DngZvS9Y.js');
11
- require('./versionSelector-BKo0Znsl.js');
12
- const require_loadClerkJsScript = require('./loadClerkJsScript-BIPE-l3G.js');
11
+ require('./versionSelector-2V8yqqgZ.js');
12
+ const require_loadClerkJsScript = require('./loadClerkJsScript-SFD6IA1A.js');
13
13
 
14
14
  exports.buildClerkJsScriptAttributes = require_loadClerkJsScript.buildClerkJsScriptAttributes;
15
15
  exports.clerkJsScriptUrl = require_loadClerkJsScript.clerkJsScriptUrl;
@@ -8,7 +8,7 @@ import "./retry-DAlTROH9.mjs";
8
8
  import "./loadScript-Bll0Ohcb.mjs";
9
9
  import "./proxy-Bq8EHApG.mjs";
10
10
  import "./url-BuzaT2V9.mjs";
11
- import "./versionSelector-Ctjkw92Q.mjs";
12
- import { buildClerkJsScriptAttributes, clerkJsScriptUrl, loadClerkJsScript, setClerkJsLoadingErrorPackageName } from "./loadClerkJsScript-B6B9VpJL.mjs";
11
+ import "./versionSelector-w-Zk-G-8.mjs";
12
+ import { buildClerkJsScriptAttributes, clerkJsScriptUrl, loadClerkJsScript, setClerkJsLoadingErrorPackageName } from "./loadClerkJsScript-CqAq0B5f.mjs";
13
13
 
14
14
  export { buildClerkJsScriptAttributes, clerkJsScriptUrl, loadClerkJsScript, setClerkJsLoadingErrorPackageName };
@@ -1 +1 @@
1
- {"version":3,"file":"pathMatcher-CFwDMx3z.d.ts","names":[],"sources":["../../src/pathMatcher.ts"],"sourcesContent":[],"mappings":";;;KAGY,yCAAyC;KACzC,WAAA,GAAc,aAAa;AAD3B,KAEA,gBAAA,GAAmB,KAFI,CAEE,MAFF,GAEW,WAFQ,CAAA,GAEO,MAFP,GAEgB,WAFhB;AACtD;AACA;;;;;AAAsE,cAYzD,iBAZyD,EAAA,CAAA,QAAA,EAY1B,gBAZ0B,EAAA,GAAA,CAAA,QAAA,EAAA,MAAA,EAAA,GAAA,OAAA"}
1
+ {"version":3,"file":"pathMatcher-CFwDMx3z.d.ts","names":[],"sources":["../../src/pathMatcher.ts"],"sourcesContent":[],"mappings":";;;KAGY,yCAAyC;KACzC,WAAA,GAAc,aAAa;AAD3B,KAEA,gBAAA,GAAmB,KAFI,CAEE,MAFgB,GAEP,WAFQ,CAAA,GAEO,MAFP,GAEgB,WAFhB;AACtD;AACA;;;;;AAAsE,cAYzD,iBAZyD,EAAA,CAAA,QAAA,EAY1B,gBAZ0B,EAAA,GAAA,CAAA,QAAA,EAAA,MAAA,EAAA,GAAA,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"pathMatcher-n7OPVmtA.d.mts","names":[],"sources":["../../src/pathMatcher.ts"],"sourcesContent":[],"mappings":";;;KAGY,yCAAyC;KACzC,WAAA,GAAc,aAAa;AAD3B,KAEA,gBAAA,GAAmB,KAFI,CAEE,MAFgB,GAEP,WAFQ,CAAA,GAEO,MAFP,GAEgB,WAFhB;AACtD;AACA;;;;;AAAsE,cAYzD,iBAZyD,EAAA,CAAA,QAAA,EAY1B,gBAZ0B,EAAA,GAAA,CAAA,QAAA,EAAA,MAAA,EAAA,GAAA,OAAA"}
1
+ {"version":3,"file":"pathMatcher-n7OPVmtA.d.mts","names":[],"sources":["../../src/pathMatcher.ts"],"sourcesContent":[],"mappings":";;;KAGY,yCAAyC;KACzC,WAAA,GAAc,aAAa;AAD3B,KAEA,gBAAA,GAAmB,KAFI,CAEE,MAFF,GAEW,WAFQ,CAAA,GAEO,MAFP,GAEgB,WAFhB;AACtD;AACA;;;;;AAAsE,cAYzD,iBAZyD,EAAA,CAAA,QAAA,EAY1B,gBAZ0B,EAAA,GAAA,CAAA,QAAA,EAAA,MAAA,EAAA,GAAA,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"poller-CIrx6NwR.d.ts","names":[],"sources":["../../src/poller.ts"],"sourcesContent":[],"mappings":";KAEY,UAAA;AAAA,KACA,cAAA,GADU,CAAA,IAAA,EACc,UADd,EAAA,GAC6B,OAD7B,CAAA,OAAA,CAAA;AACV,KACA,SAAA,GADc,CAAA,EAAA,EACG,cADO,EAAA,GACY,OADU,CAAA,IAAA,CAAA;AAC1D,KAEK,aAAA,GAFgB;EAEhB,SAAA,EAAA,MAAa;AAIlB,CAAA;AAKgB,KALJ,MAAA,GAKU;EAAG,GAAA,EAJlB,SAIkB;EAAa,IAAA,EAH9B,UAG8B;CAAsC;AAAM,iBAAlE,MAAA,CAAkE;EAAA;AAAA,CAAA,CAAA,EAA5C,aAA4C,CAAA,EAAN,MAAM"}
1
+ {"version":3,"file":"poller-CIrx6NwR.d.ts","names":[],"sources":["../../src/poller.ts"],"sourcesContent":[],"mappings":";KAEY,UAAA;AAAA,KACA,cAAA,GADU,CAAA,IAAA,EACc,UADd,EAAA,GAC6B,OAD7B,CAAA,OAAA,CAAA;AACV,KACA,SAAA,GADc,CAAA,EAAA,EACG,cADO,EAAe,GACH,OADU,CAAA,IAAA,CAAA;AAC1D,KAEK,aAAA,GAFgB;EAEhB,SAAA,EAAA,MAAa;AAIlB,CAAA;AAKgB,KALJ,MAAA,GAKU;EAAG,GAAA,EAJlB,SAIkB;EAAa,IAAA,EAH9B,UAG8B;CAAsC;AAAM,iBAAlE,MAAA,CAAkE;EAAA;AAAA,CAAA,CAAA,EAA5C,aAA4C,CAAA,EAAN,MAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"poller-Cn-a74Uo.d.mts","names":[],"sources":["../../src/poller.ts"],"sourcesContent":[],"mappings":";KAEY,UAAA;AAAA,KACA,cAAA,GADU,CAAA,IAAA,EACc,UADd,EAAA,GAC6B,OAD7B,CAAA,OAAA,CAAA;AACV,KACA,SAAA,GADc,CAAA,EAAA,EACG,cADO,EAAe,GACH,OADU,CAAA,IAAA,CAAA;AAC1D,KAEK,aAAA,GAFgB;EAEhB,SAAA,EAAA,MAAa;AAIlB,CAAA;AAKgB,KALJ,MAAA,GAKU;EAAG,GAAA,EAJlB,SAIkB;EAAa,IAAA,EAH9B,UAG8B;CAAsC;AAAM,iBAAlE,MAAA,CAAkE;EAAA;AAAA,CAAA,CAAA,EAA5C,aAA4C,CAAA,EAAN,MAAM"}
1
+ {"version":3,"file":"poller-Cn-a74Uo.d.mts","names":[],"sources":["../../src/poller.ts"],"sourcesContent":[],"mappings":";KAEY,UAAA;AAAA,KACA,cAAA,GADU,CAAA,IAAA,EACc,UADd,EAAA,GAC6B,OAD7B,CAAA,OAAA,CAAA;AACV,KACA,SAAA,GADc,CAAA,EAAA,EACG,cADO,EAAA,GACY,OADU,CAAA,IAAA,CAAA;AAC1D,KAEK,aAAA,GAFgB;EAEhB,SAAA,EAAA,MAAa;AAIlB,CAAA;AAKgB,KALJ,MAAA,GAKU;EAAG,GAAA,EAJlB,SAIkB;EAAa,IAAA,EAH9B,UAG8B;CAAsC;AAAM,iBAAlE,MAAA,CAAkE;EAAA;AAAA,CAAA,CAAA,EAA5C,aAA4C,CAAA,EAAN,MAAM"}
@@ -217,6 +217,10 @@ const cachingSWROptions = {
217
217
  dedupingInterval: 1e3 * 60,
218
218
  focusThrottleInterval: 1e3 * 60 * 2
219
219
  };
220
+ const cachingSWRInfiniteOptions = {
221
+ ...cachingSWROptions,
222
+ revalidateFirstPage: false
223
+ };
220
224
  /**
221
225
  * A flexible pagination hook that supports both traditional pagination and infinite loading.
222
226
  * It provides a unified API for handling paginated data fetching, with built-in caching through SWR.
@@ -274,7 +278,7 @@ const usePagesOrInfinite = (params, fetcher, config, cacheKeys) => {
274
278
  }, (cacheKeyParams) => {
275
279
  const requestParams = getDifferentKeys(cacheKeyParams, cacheKeys);
276
280
  return fetcher?.(requestParams);
277
- }, cachingSWROptions);
281
+ }, cachingSWRInfiniteOptions);
278
282
  const page = (0, react.useMemo)(() => {
279
283
  if (triggerInfinite) return size;
280
284
  return paginatedPage;