@clerk/shared 3.41.0 → 3.41.1

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 (102) hide show
  1. package/dist/runtime/alternativePhoneCode.d.mts +1 -1
  2. package/dist/runtime/alternativePhoneCode.d.ts +1 -1
  3. package/dist/runtime/authorization-errors.d.mts +1 -1
  4. package/dist/runtime/authorization-errors.d.ts +1 -1
  5. package/dist/runtime/authorization.d.mts +1 -1
  6. package/dist/runtime/authorization.d.ts +1 -1
  7. package/dist/runtime/authorization.d.ts.map +1 -1
  8. package/dist/runtime/clerkEventBus.d.mts +1 -1
  9. package/dist/runtime/clerkEventBus.d.ts +1 -1
  10. package/dist/runtime/{color-DzzuOZXY.d.mts → color-BLLAl-EC.d.mts} +2 -2
  11. package/dist/runtime/{color-DzzuOZXY.d.mts.map → color-BLLAl-EC.d.mts.map} +1 -1
  12. package/dist/runtime/{color-8S7t62d5.d.ts → color-DOtT8qir.d.ts} +2 -2
  13. package/dist/runtime/{color-8S7t62d5.d.ts.map → color-DOtT8qir.d.ts.map} +1 -1
  14. package/dist/runtime/color.d.mts +2 -2
  15. package/dist/runtime/color.d.ts +2 -2
  16. package/dist/runtime/{deriveState-CFNVKP25.d.mts → deriveState-BOtpW9a_.d.mts} +2 -2
  17. package/dist/runtime/{deriveState-CFNVKP25.d.mts.map → deriveState-BOtpW9a_.d.mts.map} +1 -1
  18. package/dist/runtime/{deriveState-BtLYWDDj.d.ts → deriveState-CRY7AL8U.d.ts} +2 -2
  19. package/dist/runtime/{deriveState-BtLYWDDj.d.ts.map → deriveState-CRY7AL8U.d.ts.map} +1 -1
  20. package/dist/runtime/deriveState.d.mts +2 -2
  21. package/dist/runtime/deriveState.d.ts +2 -2
  22. package/dist/runtime/{error-CGv_4FAo.d.mts → error-BN1GdoFe.d.mts} +40 -3
  23. package/dist/runtime/error-BN1GdoFe.d.mts.map +1 -0
  24. package/dist/runtime/{error-BnX8aVrJ.d.ts → error-Ctf6feLU.d.ts} +40 -3
  25. package/dist/runtime/error-Ctf6feLU.d.ts.map +1 -0
  26. package/dist/runtime/{error-D39v7XzC.js → error-DIeXY7Ki.js} +47 -1
  27. package/dist/runtime/error-DIeXY7Ki.js.map +1 -0
  28. package/dist/runtime/{error-BM5ymPR0.mjs → error-Dl9xmUf3.mjs} +42 -2
  29. package/dist/runtime/error-Dl9xmUf3.mjs.map +1 -0
  30. package/dist/runtime/error.d.mts +3 -3
  31. package/dist/runtime/error.d.ts +3 -3
  32. package/dist/runtime/error.js +2 -1
  33. package/dist/runtime/error.mjs +2 -2
  34. package/dist/runtime/{index-CPc_EgSw.d.ts → index-BnRZtxqr.d.mts} +2 -2
  35. package/dist/runtime/{index-CPc_EgSw.d.ts.map → index-BnRZtxqr.d.mts.map} +1 -1
  36. package/dist/runtime/{index-DYtkcqA3.d.mts → index-kcd5CugB.d.ts} +2 -2
  37. package/dist/runtime/index-kcd5CugB.d.ts.map +1 -0
  38. package/dist/runtime/index.d.mts +8 -8
  39. package/dist/runtime/index.d.ts +8 -8
  40. package/dist/runtime/index.js +4 -3
  41. package/dist/runtime/index.mjs +4 -4
  42. package/dist/runtime/jwtPayloadParser.d.mts +1 -1
  43. package/dist/runtime/jwtPayloadParser.d.ts +1 -1
  44. package/dist/runtime/{keys-C5bld2M1.d.ts → keys-CPkJ1cer.d.ts} +2 -2
  45. package/dist/runtime/{keys-C5bld2M1.d.ts.map → keys-CPkJ1cer.d.ts.map} +1 -1
  46. package/dist/runtime/{keys-DH8NA1KF.d.mts → keys-CrHz1jNi.d.mts} +2 -2
  47. package/dist/runtime/{keys-DH8NA1KF.d.mts.map → keys-CrHz1jNi.d.mts.map} +1 -1
  48. package/dist/runtime/keys.d.mts +2 -2
  49. package/dist/runtime/keys.d.ts +2 -2
  50. package/dist/runtime/{loadClerkJsScript-3B_eQAyq.d.ts → loadClerkJsScript-Dra6zdsP.d.ts} +2 -2
  51. package/dist/runtime/{loadClerkJsScript-3B_eQAyq.d.ts.map → loadClerkJsScript-Dra6zdsP.d.ts.map} +1 -1
  52. package/dist/runtime/{loadClerkJsScript-BisJ740V.d.mts → loadClerkJsScript-hLO3uTCg.d.mts} +2 -2
  53. package/dist/runtime/{loadClerkJsScript-BisJ740V.d.mts.map → loadClerkJsScript-hLO3uTCg.d.mts.map} +1 -1
  54. package/dist/runtime/{loadClerkJsScript-Dyi6lyld.mjs → loadClerkJsScript-qRGdRMGp.mjs} +3 -3
  55. package/dist/runtime/{loadClerkJsScript-Dyi6lyld.mjs.map → loadClerkJsScript-qRGdRMGp.mjs.map} +1 -1
  56. package/dist/runtime/{loadClerkJsScript-Cd_Avbun.js → loadClerkJsScript-riYcpx0H.js} +3 -3
  57. package/dist/runtime/{loadClerkJsScript-Cd_Avbun.js.map → loadClerkJsScript-riYcpx0H.js.map} +1 -1
  58. package/dist/runtime/loadClerkJsScript.d.mts +2 -2
  59. package/dist/runtime/loadClerkJsScript.d.ts +2 -2
  60. package/dist/runtime/loadClerkJsScript.js +3 -3
  61. package/dist/runtime/loadClerkJsScript.mjs +3 -3
  62. package/dist/runtime/oauth.d.mts +1 -1
  63. package/dist/runtime/oauth.d.ts +1 -1
  64. package/dist/runtime/organization.d.mts +1 -1
  65. package/dist/runtime/organization.d.ts +1 -1
  66. package/dist/runtime/{pathMatcher-CHniDLBu.d.mts → pathMatcher-B-p8iMDM.d.mts} +2 -2
  67. package/dist/runtime/pathMatcher-B-p8iMDM.d.mts.map +1 -0
  68. package/dist/runtime/{pathMatcher-BE8GlcoX.d.ts → pathMatcher-BqJAEZXr.d.ts} +2 -2
  69. package/dist/runtime/{pathMatcher-BE8GlcoX.d.ts.map → pathMatcher-BqJAEZXr.d.ts.map} +1 -1
  70. package/dist/runtime/pathMatcher.d.mts +2 -2
  71. package/dist/runtime/pathMatcher.d.ts +2 -2
  72. package/dist/runtime/react/index.d.mts +8 -8
  73. package/dist/runtime/react/index.d.mts.map +1 -1
  74. package/dist/runtime/react/index.d.ts +8 -8
  75. package/dist/runtime/react/index.js +1 -1
  76. package/dist/runtime/react/index.mjs +1 -1
  77. package/dist/runtime/router.d.mts +1 -1
  78. package/dist/runtime/router.d.ts +1 -1
  79. package/dist/runtime/saml.d.mts +1 -1
  80. package/dist/runtime/saml.d.ts +1 -1
  81. package/dist/runtime/telemetry.d.mts +1 -1
  82. package/dist/runtime/telemetry.d.ts +1 -1
  83. package/dist/runtime/types/index.d.mts +1 -1
  84. package/dist/runtime/types/index.d.ts +1 -1
  85. package/dist/runtime/{versionSelector-CDc-w_ek.mjs → versionSelector-D29MCAQA.mjs} +3 -3
  86. package/dist/runtime/{versionSelector-CDc-w_ek.mjs.map → versionSelector-D29MCAQA.mjs.map} +1 -1
  87. package/dist/runtime/{versionSelector-BTGUbrgt.js → versionSelector-ySDLH9qB.js} +3 -3
  88. package/dist/runtime/{versionSelector-BTGUbrgt.js.map → versionSelector-ySDLH9qB.js.map} +1 -1
  89. package/dist/runtime/versionSelector.js +1 -1
  90. package/dist/runtime/versionSelector.mjs +1 -1
  91. package/dist/runtime/web3.d.mts +1 -1
  92. package/dist/runtime/web3.d.ts +1 -1
  93. package/dist/types/index.d.mts +1 -1
  94. package/dist/types/index.d.mts.map +1 -1
  95. package/dist/types/index.d.ts +1 -1
  96. package/package.json +3 -3
  97. package/dist/runtime/error-BM5ymPR0.mjs.map +0 -1
  98. package/dist/runtime/error-BnX8aVrJ.d.ts.map +0 -1
  99. package/dist/runtime/error-CGv_4FAo.d.mts.map +0 -1
  100. package/dist/runtime/error-D39v7XzC.js.map +0 -1
  101. package/dist/runtime/index-DYtkcqA3.d.mts.map +0 -1
  102. package/dist/runtime/pathMatcher-CHniDLBu.d.mts.map +0 -1
@@ -2015,7 +2015,7 @@ declare global {
2015
2015
  /**
2016
2016
  * The `User` object holds all of the information for a single user of your application and provides a set of methods to manage their account.
2017
2017
  *
2018
- * A user can be contacted at their primary email address or primary phone number. They can have more than one registered email address, but only one of them will be their primary email address. This goes for phone numbers as well; a user can have more than one, but only one phone number will be their primary. At the same time, a user can also have one or more external accounts by connecting to [social providers](https://clerk.com/docs/guides/configure/auth-strategies/social-connections/all-providers) such as Google, Apple, Facebook, and many more.
2018
+ * A user can be contacted at their primary email address or primary phone number. They can have more than one registered email address, but only one of them will be their primary email address. This goes for phone numbers as well; a user can have more than one, but only one phone number will be their primary. At the same time, a user can also have one or more external accounts by connecting to [social providers](https://clerk.com/docs/guides/configure/auth-strategies/social-connections/overview) such as Google, Apple, Facebook, and many more.
2019
2019
  *
2020
2020
  * Finally, a `User` object holds profile data like the user's name, profile picture, and a set of [metadata](/docs/guides/users/extending) that can be used internally to store arbitrary information. The metadata are split into `publicMetadata` and `privateMetadata`. Both types are set from the [Backend API](https://clerk.com/docs/reference/backend-api){{ target: '_blank' }}, but public metadata can also be accessed from the [Frontend API](https://clerk.com/docs/reference/frontend-api){{ target: '_blank' }}.
2021
2021
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clerk/shared",
3
- "version": "3.41.0",
3
+ "version": "3.41.1",
4
4
  "description": "Internal package utils used by the Clerk SDKs",
5
5
  "repository": {
6
6
  "type": "git",
@@ -153,8 +153,8 @@
153
153
  "rolldown": "1.0.0-beta.43"
154
154
  },
155
155
  "peerDependencies": {
156
- "react": "^18.0.0 || ^19.0.0 || ^19.0.0-0",
157
- "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-0"
156
+ "react": "^18.0.0 || ~19.0.3 || ~19.1.4 || ~19.2.3 || ~19.3.0-0",
157
+ "react-dom": "^18.0.0 || ~19.0.3 || ~19.1.4 || ~19.2.3 || ~19.3.0-0"
158
158
  },
159
159
  "peerDependenciesMeta": {
160
160
  "react": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-BM5ymPR0.mjs","names":["packageName","customMessages"],"sources":["../../src/errors/createErrorTypeGuard.ts","../../src/errors/clerkApiError.ts","../../src/errors/parseError.ts","../../src/errors/clerkError.ts","../../src/errors/clerkApiResponseError.ts","../../src/errors/errorThrower.ts","../../src/errors/emailLinkError.ts","../../src/errors/clerkRuntimeError.ts","../../src/errors/webAuthNError.ts","../../src/errors/helpers.ts","../../src/errors/globalHookError.ts"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\n\ntype Value = unknown;\n\n/**\n * Creates a type guard function for any error class.\n * The returned function can be called as a standalone function or as a method on an error object.\n *\n * @example\n * ```typescript\n * class MyError extends Error {}\n * const isMyError = createErrorTypeGuard(MyError);\n *\n * // As a standalone function\n * if (isMyError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isMyError()) { ... }\n * ```\n */\nexport function createErrorTypeGuard<T extends new (...args: any[]) => Value>(\n ErrorClass: T & { kind?: string },\n): {\n (error: Value): error is InstanceType<T>;\n (this: Value): this is InstanceType<T>;\n} {\n function typeGuard(this: Value, error?: Value): error is InstanceType<T> {\n const target = error ?? this;\n if (!target) {\n throw new TypeError(`${ErrorClass.kind || ErrorClass.name} type guard requires an error object`);\n }\n // Use duck-typing with 'kind' property to handle cross-bundle scenarios\n // where instanceof fails due to different class instances\n if (ErrorClass.kind && typeof target === 'object' && target !== null && 'constructor' in target) {\n const targetConstructor = (target as { constructor?: { kind?: string } }).constructor;\n if (targetConstructor?.kind === ErrorClass.kind) {\n return true;\n }\n }\n return target instanceof ErrorClass;\n }\n\n return typeGuard as {\n (error: Value): error is InstanceType<T>;\n (this: Value): this is InstanceType<T>;\n };\n}\n","import type { ClerkAPIError as ClerkAPIErrorInterface, ClerkAPIErrorJSON } from '../types';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\nexport type ClerkAPIErrorMeta = Record<string, unknown>;\n\n/**\n * This error contains the specific error message, code, and any additional metadata that was returned by the Clerk API.\n */\nexport class ClerkAPIError<Meta extends ClerkAPIErrorMeta = any> implements ClerkAPIErrorInterface {\n // TODO: Update kind to match class name in Core 3\n static kind = 'ClerkApiError';\n readonly code: string;\n readonly message: string;\n readonly longMessage: string | undefined;\n readonly meta: Meta;\n\n constructor(json: ClerkAPIErrorJSON) {\n const parsedError = {\n code: json.code,\n message: json.message,\n longMessage: json.long_message,\n meta: {\n paramName: json.meta?.param_name,\n sessionId: json.meta?.session_id,\n emailAddresses: json.meta?.email_addresses,\n identifiers: json.meta?.identifiers,\n zxcvbn: json.meta?.zxcvbn,\n plan: json.meta?.plan,\n isPlanUpgradePossible: json.meta?.is_plan_upgrade_possible,\n } as unknown as Meta,\n };\n this.code = parsedError.code;\n this.message = parsedError.message;\n this.longMessage = parsedError.longMessage;\n this.meta = parsedError.meta;\n }\n}\n\n/**\n * Type guard to check if a value is a ClerkAPIError instance.\n */\nexport const isClerkAPIError = createErrorTypeGuard(ClerkAPIError);\n","import type { ClerkAPIError as ClerkAPIErrorInterface, ClerkAPIErrorJSON } from '../types';\nimport { ClerkAPIError } from './clerkApiError';\n\n/**\n * Parses an array of ClerkAPIErrorJSON objects into an array of ClerkAPIError objects.\n *\n * @internal\n */\nexport function parseErrors(data: ClerkAPIErrorJSON[] = []): ClerkAPIErrorInterface[] {\n return data.length > 0 ? data.map(e => new ClerkAPIError(e)) : [];\n}\n\n/**\n * Parses a ClerkAPIErrorJSON object into a ClerkAPIError object.\n *\n * @deprecated Use `ClerkAPIError` class instead\n *\n * @internal\n */\nexport function parseError(error: ClerkAPIErrorJSON): ClerkAPIErrorInterface {\n return new ClerkAPIError(error);\n}\n\n/**\n * Converts a ClerkAPIError object into a ClerkAPIErrorJSON object.\n *\n * @internal\n */\nexport function errorToJSON(error: ClerkAPIError | null): ClerkAPIErrorJSON {\n return {\n code: error?.code || '',\n message: error?.message || '',\n long_message: error?.longMessage,\n meta: {\n param_name: error?.meta?.paramName,\n session_id: error?.meta?.sessionId,\n email_addresses: error?.meta?.emailAddresses,\n identifiers: error?.meta?.identifiers,\n zxcvbn: error?.meta?.zxcvbn,\n plan: error?.meta?.plan,\n is_plan_upgrade_possible: error?.meta?.isPlanUpgradePossible,\n },\n };\n}\n","import { createErrorTypeGuard } from './createErrorTypeGuard';\n\nexport interface ClerkErrorParams {\n /**\n * A message that describes the error. This is typically intented to be showed to the developers.\n * It should not be shown to the user or parsed directly as the message contents are not guaranteed\n * to be stable - use the `code` property instead.\n */\n message: string;\n /**\n * A machine-stable code that identifies the error.\n */\n code: string;\n /**\n * A user-friendly message that describes the error and can be displayed to the user.\n * This message defaults to English but can be usually translated to the user's language\n * by matching the `code` property to a localized message.\n */\n longMessage?: string;\n /**\n * The cause of the error, typically an `Error` instance that was caught and wrapped by the Clerk error handler.\n */\n cause?: Error;\n /**\n * A URL to the documentation for the error.\n */\n docsUrl?: string;\n}\n\n/**\n * A temporary placeholder, this will eventually be replaced with a\n * build-time flag that will actually perform DCE.\n */\nconst __DEV__ = true;\n\nexport class ClerkError extends Error {\n static kind = 'ClerkError';\n readonly clerkError = true as const;\n readonly code: string;\n readonly longMessage: string | undefined;\n readonly docsUrl: string | undefined;\n readonly cause: Error | undefined;\n\n get name() {\n return this.constructor.name;\n }\n\n constructor(opts: ClerkErrorParams) {\n super(new.target.formatMessage(new.target.kind, opts.message, opts.code, opts.docsUrl), { cause: opts.cause });\n Object.setPrototypeOf(this, ClerkError.prototype);\n this.code = opts.code;\n this.docsUrl = opts.docsUrl;\n this.longMessage = opts.longMessage;\n this.cause = opts.cause;\n }\n\n public toString() {\n return `[${this.name}]\\nMessage:${this.message}`;\n }\n\n protected static formatMessage(name: string, msg: string, code: string, docsUrl: string | undefined) {\n // Keeping the Clerk prefix for backward compatibility\n // msg = `${name}: ${msg.trim()}\\n\\n(code=\"${code}\")\\n\\n`;\n // We can remove the Clerk prefix in the next major version\n const prefix = 'Clerk:';\n const regex = new RegExp(prefix.replace(' ', '\\\\s*'), 'i');\n msg = msg.replace(regex, '');\n msg = `${prefix} ${msg.trim()}\\n\\n(code=\"${code}\")\\n\\n`;\n if (__DEV__ && docsUrl) {\n msg += `\\n\\nDocs: ${docsUrl}`;\n }\n return msg;\n }\n}\n\n/**\n * Type guard to check if a value is a ClerkError instance.\n */\nexport function isClerkError(val: unknown): val is ClerkError {\n const typeguard = createErrorTypeGuard(ClerkError);\n // Ths is the base error so we're being more defensive about the type guard\n return typeguard(val) || (!!val && typeof val === 'object' && 'clerkError' in val && val.clerkError === true);\n}\n","import type { ClerkAPIErrorJSON, ClerkAPIResponseError as ClerkAPIResponseErrorInterface } from '../types';\nimport { ClerkAPIError } from './clerkApiError';\nimport type { ClerkErrorParams } from './clerkError';\nimport { ClerkError } from './clerkError';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\ninterface ClerkAPIResponseOptions extends Omit<ClerkErrorParams, 'message' | 'code'> {\n data: ClerkAPIErrorJSON[];\n status: number;\n clerkTraceId?: string;\n retryAfter?: number;\n}\n\nexport class ClerkAPIResponseError extends ClerkError implements ClerkAPIResponseErrorInterface {\n static kind = 'ClerkAPIResponseError';\n status: number;\n clerkTraceId?: string;\n retryAfter?: number;\n errors: ClerkAPIError[];\n\n constructor(message: string, options: ClerkAPIResponseOptions) {\n const { data: errorsJson, status, clerkTraceId, retryAfter } = options;\n super({ ...options, message, code: 'api_response_error' });\n Object.setPrototypeOf(this, ClerkAPIResponseError.prototype);\n this.status = status;\n this.clerkTraceId = clerkTraceId;\n this.retryAfter = retryAfter;\n this.errors = (errorsJson || []).map(e => new ClerkAPIError(e));\n }\n\n public toString() {\n let message = `[${this.name}]\\nMessage:${this.message}\\nStatus:${this.status}\\nSerialized errors: ${this.errors.map(\n e => JSON.stringify(e),\n )}`;\n\n if (this.clerkTraceId) {\n message += `\\nClerk Trace ID: ${this.clerkTraceId}`;\n }\n\n return message;\n }\n\n // Override formatMessage to keep it unformatted for backward compatibility\n protected static override formatMessage(name: string, msg: string, _: string, __: string | undefined) {\n return msg;\n }\n}\n\n/**\n * Type guard to check if an error is a ClerkAPIResponseError.\n * Can be called as a standalone function or as a method on an error object.\n *\n * @example\n * // As a standalone function\n * if (isClerkAPIResponseError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isClerkAPIResponseError()) { ... }\n */\nexport const isClerkAPIResponseError = createErrorTypeGuard(ClerkAPIResponseError);\n","const DefaultMessages = Object.freeze({\n InvalidProxyUrlErrorMessage: `The proxyUrl passed to Clerk is invalid. The expected value for proxyUrl is an absolute URL or a relative path with a leading '/'. (key={{url}})`,\n InvalidPublishableKeyErrorMessage: `The publishableKey passed to Clerk is invalid. You can get your Publishable key at https://dashboard.clerk.com/last-active?path=api-keys. (key={{key}})`,\n MissingPublishableKeyErrorMessage: `Missing publishableKey. You can get your key at https://dashboard.clerk.com/last-active?path=api-keys.`,\n MissingSecretKeyErrorMessage: `Missing secretKey. You can get your key at https://dashboard.clerk.com/last-active?path=api-keys.`,\n MissingClerkProvider: `{{source}} can only be used within the <ClerkProvider /> component. Learn more: https://clerk.com/docs/components/clerk-provider`,\n});\n\ntype MessageKeys = keyof typeof DefaultMessages;\n\ntype Messages = Record<MessageKeys, string>;\n\ntype CustomMessages = Partial<Messages>;\n\nexport type ErrorThrowerOptions = {\n packageName: string;\n customMessages?: CustomMessages;\n};\n\nexport interface ErrorThrower {\n setPackageName(options: ErrorThrowerOptions): ErrorThrower;\n\n setMessages(options: ErrorThrowerOptions): ErrorThrower;\n\n throwInvalidPublishableKeyError(params: { key?: string }): never;\n\n throwInvalidProxyUrl(params: { url?: string }): never;\n\n throwMissingPublishableKeyError(): never;\n\n throwMissingSecretKeyError(): never;\n\n throwMissingClerkProviderError(params: { source?: string }): never;\n\n throw(message: string): never;\n}\n\n/**\n * Builds an error thrower.\n *\n * @internal\n */\nexport function buildErrorThrower({ packageName, customMessages }: ErrorThrowerOptions): ErrorThrower {\n let pkg = packageName;\n\n /**\n * Builds a message from a raw message and replacements.\n *\n * @internal\n */\n function buildMessage(rawMessage: string, replacements?: Record<string, string | number>) {\n if (!replacements) {\n return `${pkg}: ${rawMessage}`;\n }\n\n let msg = rawMessage;\n const matches = rawMessage.matchAll(/{{([a-zA-Z0-9-_]+)}}/g);\n\n for (const match of matches) {\n const replacement = (replacements[match[1]] || '').toString();\n msg = msg.replace(`{{${match[1]}}}`, replacement);\n }\n\n return `${pkg}: ${msg}`;\n }\n\n const messages = {\n ...DefaultMessages,\n ...customMessages,\n };\n\n return {\n setPackageName({ packageName }: ErrorThrowerOptions): ErrorThrower {\n if (typeof packageName === 'string') {\n pkg = packageName;\n }\n return this;\n },\n\n setMessages({ customMessages }: ErrorThrowerOptions): ErrorThrower {\n Object.assign(messages, customMessages || {});\n return this;\n },\n\n throwInvalidPublishableKeyError(params: { key?: string }): never {\n throw new Error(buildMessage(messages.InvalidPublishableKeyErrorMessage, params));\n },\n\n throwInvalidProxyUrl(params: { url?: string }): never {\n throw new Error(buildMessage(messages.InvalidProxyUrlErrorMessage, params));\n },\n\n throwMissingPublishableKeyError(): never {\n throw new Error(buildMessage(messages.MissingPublishableKeyErrorMessage));\n },\n\n throwMissingSecretKeyError(): never {\n throw new Error(buildMessage(messages.MissingSecretKeyErrorMessage));\n },\n\n throwMissingClerkProviderError(params: { source?: string }): never {\n throw new Error(buildMessage(messages.MissingClerkProvider, params));\n },\n\n throw(message: string): never {\n throw new Error(buildMessage(message));\n },\n };\n}\n","export class EmailLinkError extends Error {\n code: string;\n\n constructor(code: string) {\n super(code);\n this.code = code;\n this.name = 'EmailLinkError' as const;\n Object.setPrototypeOf(this, EmailLinkError.prototype);\n }\n}\n\n/**\n * @deprecated Use `EmailLinkErrorCodeStatus` instead.\n *\n * @internal\n */\nexport const EmailLinkErrorCode = {\n Expired: 'expired',\n Failed: 'failed',\n ClientMismatch: 'client_mismatch',\n};\n\nexport const EmailLinkErrorCodeStatus = {\n Expired: 'expired',\n Failed: 'failed',\n ClientMismatch: 'client_mismatch',\n} as const;\n","import type { ClerkErrorParams } from './clerkError';\nimport { ClerkError } from './clerkError';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\ntype ClerkRuntimeErrorOptions = Omit<ClerkErrorParams, 'message'>;\n\n/**\n * Custom error class for representing Clerk runtime errors.\n *\n * @class ClerkRuntimeError\n *\n * @example\n * throw new ClerkRuntimeError('An error occurred', { code: 'password_invalid' });\n */\nexport class ClerkRuntimeError extends ClerkError {\n static kind = 'ClerkRuntimeError';\n /**\n * @deprecated Use `clerkError` property instead. This property is maintained for backward compatibility.\n */\n readonly clerkRuntimeError = true as const;\n\n constructor(message: string, options: ClerkRuntimeErrorOptions) {\n super({ ...options, message });\n Object.setPrototypeOf(this, ClerkRuntimeError.prototype);\n }\n}\n\n/**\n * Type guard to check if an error is a ClerkRuntimeError.\n * Can be called as a standalone function or as a method on an error object.\n *\n * @example\n * // As a standalone function\n * if (isClerkRuntimeError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isClerkRuntimeError()) { ... }\n */\nexport const isClerkRuntimeError = createErrorTypeGuard(ClerkRuntimeError);\n","import { ClerkRuntimeError } from './clerkRuntimeError';\n\ntype ClerkWebAuthnErrorCode =\n // Generic\n | 'passkey_not_supported'\n | 'passkey_pa_not_supported'\n | 'passkey_invalid_rpID_or_domain'\n | 'passkey_already_exists'\n | 'passkey_operation_aborted'\n // Retrieval\n | 'passkey_retrieval_cancelled'\n | 'passkey_retrieval_failed'\n // Registration\n | 'passkey_registration_cancelled'\n | 'passkey_registration_failed';\n\nexport class ClerkWebAuthnError extends ClerkRuntimeError {\n /**\n * A unique code identifying the error, can be used for localization.\n */\n code: ClerkWebAuthnErrorCode;\n\n constructor(message: string, { code }: { code: ClerkWebAuthnErrorCode }) {\n super(message, { code });\n this.code = code;\n }\n}\n","import type { ClerkAPIResponseError } from './clerkApiResponseError';\nimport { isClerkAPIResponseError } from './clerkApiResponseError';\nimport type { ClerkRuntimeError } from './clerkRuntimeError';\nimport { isClerkRuntimeError } from './clerkRuntimeError';\nimport type { EmailLinkError } from './emailLinkError';\nimport type { MetamaskError } from './metamaskError';\n\n/**\n * Checks if the provided error object is an unauthorized error.\n *\n * @internal\n *\n * @deprecated This is no longer used, and will be removed in the next major version.\n */\nexport function isUnauthorizedError(e: any): boolean {\n const status = e?.status;\n const code = e?.errors?.[0]?.code;\n return code === 'authentication_invalid' && status === 401;\n}\n\n/**\n * Checks if the provided error object is a captcha error.\n *\n * @internal\n */\nexport function isCaptchaError(e: ClerkAPIResponseError): boolean {\n return ['captcha_invalid', 'captcha_not_enabled', 'captcha_missing_token'].includes(e.errors[0].code);\n}\n\n/**\n * Checks if the provided error is a 4xx error.\n *\n * @internal\n */\nexport function is4xxError(e: any): boolean {\n const status = e?.status;\n return !!status && status >= 400 && status < 500;\n}\n\n/**\n * Checks if the provided error is a network error.\n *\n * @internal\n */\nexport function isNetworkError(e: any): boolean {\n // TODO: revise during error handling epic\n const message = (`${e.message}${e.name}` || '').toLowerCase().replace(/\\s+/g, '');\n return message.includes('networkerror');\n}\n\n/**\n * Checks if the provided error is either a ClerkAPIResponseError, a ClerkRuntimeError, or a MetamaskError.\n *\n * @internal\n */\nexport function isKnownError(error: any): error is ClerkAPIResponseError | ClerkRuntimeError | MetamaskError {\n return isClerkAPIResponseError(error) || isMetamaskError(error) || isClerkRuntimeError(error);\n}\n\n/**\n * Checks if the provided error is a Clerk runtime error indicating a reverification was cancelled.\n *\n * @internal\n */\nexport function isReverificationCancelledError(err: any) {\n return isClerkRuntimeError(err) && err.code === 'reverification_cancelled';\n}\n\n/**\n * Checks if the provided error is a Metamask error.\n *\n * @internal\n */\nexport function isMetamaskError(err: any): err is MetamaskError {\n return 'code' in err && [4001, 32602, 32603].includes(err.code) && 'message' in err;\n}\n\n/**\n * Checks if the provided error is clerk api response error indicating a user is locked.\n *\n * @internal\n */\nexport function isUserLockedError(err: any) {\n return isClerkAPIResponseError(err) && err.errors?.[0]?.code === 'user_locked';\n}\n\n/**\n * Checks if the provided error is a clerk api response error indicating a password was pwned.\n *\n * @internal\n */\nexport function isPasswordPwnedError(err: any) {\n return isClerkAPIResponseError(err) && err.errors?.[0]?.code === 'form_password_pwned';\n}\n\n/**\n * Checks if the provided error is a clerk api response error indicating a password was compromised.\n *\n * @internal\n */\nexport function isPasswordCompromisedError(err: any) {\n return isClerkAPIResponseError(err) && err.errors?.[0]?.code === 'form_password_compromised';\n}\n\n/**\n * Checks if the provided error is an EmailLinkError.\n *\n * @internal\n */\nexport function isEmailLinkError(err: Error): err is EmailLinkError {\n return err.name === 'EmailLinkError';\n}\n","import { isClerkAPIResponseError } from './clerkApiResponseError';\nimport type { ClerkError } from './clerkError';\nimport { isClerkRuntimeError } from './clerkRuntimeError';\n\n/**\n * Creates a ClerkGlobalHookError object from a ClerkError instance.\n * It's a wrapper for all the different instances of Clerk errors that can\n * be returned when using Clerk hooks.\n */\nexport function createClerkGlobalHookError(error: ClerkError) {\n const predicates = {\n isClerkAPIResponseError,\n isClerkRuntimeError,\n } as const;\n\n for (const [name, fn] of Object.entries(predicates)) {\n Object.assign(error, { [name]: fn });\n }\n\n return error as ClerkError & typeof predicates;\n}\n\nexport type ClerkGlobalHookError = ReturnType<typeof createClerkGlobalHookError>;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-BnX8aVrJ.d.ts","names":[],"sources":["../../src/errors/parseError.ts","../../src/errors/errorThrower.ts","../../src/errors/emailLinkError.ts","../../src/errors/metamaskError.ts","../../src/errors/webAuthNError.ts","../../src/errors/helpers.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-CGv_4FAo.d.mts","names":[],"sources":["../../src/errors/parseError.ts","../../src/errors/errorThrower.ts","../../src/errors/emailLinkError.ts","../../src/errors/metamaskError.ts","../../src/errors/webAuthNError.ts","../../src/errors/helpers.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-D39v7XzC.js","names":["packageName","customMessages"],"sources":["../../src/errors/createErrorTypeGuard.ts","../../src/errors/clerkApiError.ts","../../src/errors/parseError.ts","../../src/errors/clerkError.ts","../../src/errors/clerkApiResponseError.ts","../../src/errors/errorThrower.ts","../../src/errors/emailLinkError.ts","../../src/errors/clerkRuntimeError.ts","../../src/errors/webAuthNError.ts","../../src/errors/helpers.ts","../../src/errors/globalHookError.ts"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\n\ntype Value = unknown;\n\n/**\n * Creates a type guard function for any error class.\n * The returned function can be called as a standalone function or as a method on an error object.\n *\n * @example\n * ```typescript\n * class MyError extends Error {}\n * const isMyError = createErrorTypeGuard(MyError);\n *\n * // As a standalone function\n * if (isMyError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isMyError()) { ... }\n * ```\n */\nexport function createErrorTypeGuard<T extends new (...args: any[]) => Value>(\n ErrorClass: T & { kind?: string },\n): {\n (error: Value): error is InstanceType<T>;\n (this: Value): this is InstanceType<T>;\n} {\n function typeGuard(this: Value, error?: Value): error is InstanceType<T> {\n const target = error ?? this;\n if (!target) {\n throw new TypeError(`${ErrorClass.kind || ErrorClass.name} type guard requires an error object`);\n }\n // Use duck-typing with 'kind' property to handle cross-bundle scenarios\n // where instanceof fails due to different class instances\n if (ErrorClass.kind && typeof target === 'object' && target !== null && 'constructor' in target) {\n const targetConstructor = (target as { constructor?: { kind?: string } }).constructor;\n if (targetConstructor?.kind === ErrorClass.kind) {\n return true;\n }\n }\n return target instanceof ErrorClass;\n }\n\n return typeGuard as {\n (error: Value): error is InstanceType<T>;\n (this: Value): this is InstanceType<T>;\n };\n}\n","import type { ClerkAPIError as ClerkAPIErrorInterface, ClerkAPIErrorJSON } from '../types';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\nexport type ClerkAPIErrorMeta = Record<string, unknown>;\n\n/**\n * This error contains the specific error message, code, and any additional metadata that was returned by the Clerk API.\n */\nexport class ClerkAPIError<Meta extends ClerkAPIErrorMeta = any> implements ClerkAPIErrorInterface {\n // TODO: Update kind to match class name in Core 3\n static kind = 'ClerkApiError';\n readonly code: string;\n readonly message: string;\n readonly longMessage: string | undefined;\n readonly meta: Meta;\n\n constructor(json: ClerkAPIErrorJSON) {\n const parsedError = {\n code: json.code,\n message: json.message,\n longMessage: json.long_message,\n meta: {\n paramName: json.meta?.param_name,\n sessionId: json.meta?.session_id,\n emailAddresses: json.meta?.email_addresses,\n identifiers: json.meta?.identifiers,\n zxcvbn: json.meta?.zxcvbn,\n plan: json.meta?.plan,\n isPlanUpgradePossible: json.meta?.is_plan_upgrade_possible,\n } as unknown as Meta,\n };\n this.code = parsedError.code;\n this.message = parsedError.message;\n this.longMessage = parsedError.longMessage;\n this.meta = parsedError.meta;\n }\n}\n\n/**\n * Type guard to check if a value is a ClerkAPIError instance.\n */\nexport const isClerkAPIError = createErrorTypeGuard(ClerkAPIError);\n","import type { ClerkAPIError as ClerkAPIErrorInterface, ClerkAPIErrorJSON } from '../types';\nimport { ClerkAPIError } from './clerkApiError';\n\n/**\n * Parses an array of ClerkAPIErrorJSON objects into an array of ClerkAPIError objects.\n *\n * @internal\n */\nexport function parseErrors(data: ClerkAPIErrorJSON[] = []): ClerkAPIErrorInterface[] {\n return data.length > 0 ? data.map(e => new ClerkAPIError(e)) : [];\n}\n\n/**\n * Parses a ClerkAPIErrorJSON object into a ClerkAPIError object.\n *\n * @deprecated Use `ClerkAPIError` class instead\n *\n * @internal\n */\nexport function parseError(error: ClerkAPIErrorJSON): ClerkAPIErrorInterface {\n return new ClerkAPIError(error);\n}\n\n/**\n * Converts a ClerkAPIError object into a ClerkAPIErrorJSON object.\n *\n * @internal\n */\nexport function errorToJSON(error: ClerkAPIError | null): ClerkAPIErrorJSON {\n return {\n code: error?.code || '',\n message: error?.message || '',\n long_message: error?.longMessage,\n meta: {\n param_name: error?.meta?.paramName,\n session_id: error?.meta?.sessionId,\n email_addresses: error?.meta?.emailAddresses,\n identifiers: error?.meta?.identifiers,\n zxcvbn: error?.meta?.zxcvbn,\n plan: error?.meta?.plan,\n is_plan_upgrade_possible: error?.meta?.isPlanUpgradePossible,\n },\n };\n}\n","import { createErrorTypeGuard } from './createErrorTypeGuard';\n\nexport interface ClerkErrorParams {\n /**\n * A message that describes the error. This is typically intented to be showed to the developers.\n * It should not be shown to the user or parsed directly as the message contents are not guaranteed\n * to be stable - use the `code` property instead.\n */\n message: string;\n /**\n * A machine-stable code that identifies the error.\n */\n code: string;\n /**\n * A user-friendly message that describes the error and can be displayed to the user.\n * This message defaults to English but can be usually translated to the user's language\n * by matching the `code` property to a localized message.\n */\n longMessage?: string;\n /**\n * The cause of the error, typically an `Error` instance that was caught and wrapped by the Clerk error handler.\n */\n cause?: Error;\n /**\n * A URL to the documentation for the error.\n */\n docsUrl?: string;\n}\n\n/**\n * A temporary placeholder, this will eventually be replaced with a\n * build-time flag that will actually perform DCE.\n */\nconst __DEV__ = true;\n\nexport class ClerkError extends Error {\n static kind = 'ClerkError';\n readonly clerkError = true as const;\n readonly code: string;\n readonly longMessage: string | undefined;\n readonly docsUrl: string | undefined;\n readonly cause: Error | undefined;\n\n get name() {\n return this.constructor.name;\n }\n\n constructor(opts: ClerkErrorParams) {\n super(new.target.formatMessage(new.target.kind, opts.message, opts.code, opts.docsUrl), { cause: opts.cause });\n Object.setPrototypeOf(this, ClerkError.prototype);\n this.code = opts.code;\n this.docsUrl = opts.docsUrl;\n this.longMessage = opts.longMessage;\n this.cause = opts.cause;\n }\n\n public toString() {\n return `[${this.name}]\\nMessage:${this.message}`;\n }\n\n protected static formatMessage(name: string, msg: string, code: string, docsUrl: string | undefined) {\n // Keeping the Clerk prefix for backward compatibility\n // msg = `${name}: ${msg.trim()}\\n\\n(code=\"${code}\")\\n\\n`;\n // We can remove the Clerk prefix in the next major version\n const prefix = 'Clerk:';\n const regex = new RegExp(prefix.replace(' ', '\\\\s*'), 'i');\n msg = msg.replace(regex, '');\n msg = `${prefix} ${msg.trim()}\\n\\n(code=\"${code}\")\\n\\n`;\n if (__DEV__ && docsUrl) {\n msg += `\\n\\nDocs: ${docsUrl}`;\n }\n return msg;\n }\n}\n\n/**\n * Type guard to check if a value is a ClerkError instance.\n */\nexport function isClerkError(val: unknown): val is ClerkError {\n const typeguard = createErrorTypeGuard(ClerkError);\n // Ths is the base error so we're being more defensive about the type guard\n return typeguard(val) || (!!val && typeof val === 'object' && 'clerkError' in val && val.clerkError === true);\n}\n","import type { ClerkAPIErrorJSON, ClerkAPIResponseError as ClerkAPIResponseErrorInterface } from '../types';\nimport { ClerkAPIError } from './clerkApiError';\nimport type { ClerkErrorParams } from './clerkError';\nimport { ClerkError } from './clerkError';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\ninterface ClerkAPIResponseOptions extends Omit<ClerkErrorParams, 'message' | 'code'> {\n data: ClerkAPIErrorJSON[];\n status: number;\n clerkTraceId?: string;\n retryAfter?: number;\n}\n\nexport class ClerkAPIResponseError extends ClerkError implements ClerkAPIResponseErrorInterface {\n static kind = 'ClerkAPIResponseError';\n status: number;\n clerkTraceId?: string;\n retryAfter?: number;\n errors: ClerkAPIError[];\n\n constructor(message: string, options: ClerkAPIResponseOptions) {\n const { data: errorsJson, status, clerkTraceId, retryAfter } = options;\n super({ ...options, message, code: 'api_response_error' });\n Object.setPrototypeOf(this, ClerkAPIResponseError.prototype);\n this.status = status;\n this.clerkTraceId = clerkTraceId;\n this.retryAfter = retryAfter;\n this.errors = (errorsJson || []).map(e => new ClerkAPIError(e));\n }\n\n public toString() {\n let message = `[${this.name}]\\nMessage:${this.message}\\nStatus:${this.status}\\nSerialized errors: ${this.errors.map(\n e => JSON.stringify(e),\n )}`;\n\n if (this.clerkTraceId) {\n message += `\\nClerk Trace ID: ${this.clerkTraceId}`;\n }\n\n return message;\n }\n\n // Override formatMessage to keep it unformatted for backward compatibility\n protected static override formatMessage(name: string, msg: string, _: string, __: string | undefined) {\n return msg;\n }\n}\n\n/**\n * Type guard to check if an error is a ClerkAPIResponseError.\n * Can be called as a standalone function or as a method on an error object.\n *\n * @example\n * // As a standalone function\n * if (isClerkAPIResponseError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isClerkAPIResponseError()) { ... }\n */\nexport const isClerkAPIResponseError = createErrorTypeGuard(ClerkAPIResponseError);\n","const DefaultMessages = Object.freeze({\n InvalidProxyUrlErrorMessage: `The proxyUrl passed to Clerk is invalid. The expected value for proxyUrl is an absolute URL or a relative path with a leading '/'. (key={{url}})`,\n InvalidPublishableKeyErrorMessage: `The publishableKey passed to Clerk is invalid. You can get your Publishable key at https://dashboard.clerk.com/last-active?path=api-keys. (key={{key}})`,\n MissingPublishableKeyErrorMessage: `Missing publishableKey. You can get your key at https://dashboard.clerk.com/last-active?path=api-keys.`,\n MissingSecretKeyErrorMessage: `Missing secretKey. You can get your key at https://dashboard.clerk.com/last-active?path=api-keys.`,\n MissingClerkProvider: `{{source}} can only be used within the <ClerkProvider /> component. Learn more: https://clerk.com/docs/components/clerk-provider`,\n});\n\ntype MessageKeys = keyof typeof DefaultMessages;\n\ntype Messages = Record<MessageKeys, string>;\n\ntype CustomMessages = Partial<Messages>;\n\nexport type ErrorThrowerOptions = {\n packageName: string;\n customMessages?: CustomMessages;\n};\n\nexport interface ErrorThrower {\n setPackageName(options: ErrorThrowerOptions): ErrorThrower;\n\n setMessages(options: ErrorThrowerOptions): ErrorThrower;\n\n throwInvalidPublishableKeyError(params: { key?: string }): never;\n\n throwInvalidProxyUrl(params: { url?: string }): never;\n\n throwMissingPublishableKeyError(): never;\n\n throwMissingSecretKeyError(): never;\n\n throwMissingClerkProviderError(params: { source?: string }): never;\n\n throw(message: string): never;\n}\n\n/**\n * Builds an error thrower.\n *\n * @internal\n */\nexport function buildErrorThrower({ packageName, customMessages }: ErrorThrowerOptions): ErrorThrower {\n let pkg = packageName;\n\n /**\n * Builds a message from a raw message and replacements.\n *\n * @internal\n */\n function buildMessage(rawMessage: string, replacements?: Record<string, string | number>) {\n if (!replacements) {\n return `${pkg}: ${rawMessage}`;\n }\n\n let msg = rawMessage;\n const matches = rawMessage.matchAll(/{{([a-zA-Z0-9-_]+)}}/g);\n\n for (const match of matches) {\n const replacement = (replacements[match[1]] || '').toString();\n msg = msg.replace(`{{${match[1]}}}`, replacement);\n }\n\n return `${pkg}: ${msg}`;\n }\n\n const messages = {\n ...DefaultMessages,\n ...customMessages,\n };\n\n return {\n setPackageName({ packageName }: ErrorThrowerOptions): ErrorThrower {\n if (typeof packageName === 'string') {\n pkg = packageName;\n }\n return this;\n },\n\n setMessages({ customMessages }: ErrorThrowerOptions): ErrorThrower {\n Object.assign(messages, customMessages || {});\n return this;\n },\n\n throwInvalidPublishableKeyError(params: { key?: string }): never {\n throw new Error(buildMessage(messages.InvalidPublishableKeyErrorMessage, params));\n },\n\n throwInvalidProxyUrl(params: { url?: string }): never {\n throw new Error(buildMessage(messages.InvalidProxyUrlErrorMessage, params));\n },\n\n throwMissingPublishableKeyError(): never {\n throw new Error(buildMessage(messages.MissingPublishableKeyErrorMessage));\n },\n\n throwMissingSecretKeyError(): never {\n throw new Error(buildMessage(messages.MissingSecretKeyErrorMessage));\n },\n\n throwMissingClerkProviderError(params: { source?: string }): never {\n throw new Error(buildMessage(messages.MissingClerkProvider, params));\n },\n\n throw(message: string): never {\n throw new Error(buildMessage(message));\n },\n };\n}\n","export class EmailLinkError extends Error {\n code: string;\n\n constructor(code: string) {\n super(code);\n this.code = code;\n this.name = 'EmailLinkError' as const;\n Object.setPrototypeOf(this, EmailLinkError.prototype);\n }\n}\n\n/**\n * @deprecated Use `EmailLinkErrorCodeStatus` instead.\n *\n * @internal\n */\nexport const EmailLinkErrorCode = {\n Expired: 'expired',\n Failed: 'failed',\n ClientMismatch: 'client_mismatch',\n};\n\nexport const EmailLinkErrorCodeStatus = {\n Expired: 'expired',\n Failed: 'failed',\n ClientMismatch: 'client_mismatch',\n} as const;\n","import type { ClerkErrorParams } from './clerkError';\nimport { ClerkError } from './clerkError';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\ntype ClerkRuntimeErrorOptions = Omit<ClerkErrorParams, 'message'>;\n\n/**\n * Custom error class for representing Clerk runtime errors.\n *\n * @class ClerkRuntimeError\n *\n * @example\n * throw new ClerkRuntimeError('An error occurred', { code: 'password_invalid' });\n */\nexport class ClerkRuntimeError extends ClerkError {\n static kind = 'ClerkRuntimeError';\n /**\n * @deprecated Use `clerkError` property instead. This property is maintained for backward compatibility.\n */\n readonly clerkRuntimeError = true as const;\n\n constructor(message: string, options: ClerkRuntimeErrorOptions) {\n super({ ...options, message });\n Object.setPrototypeOf(this, ClerkRuntimeError.prototype);\n }\n}\n\n/**\n * Type guard to check if an error is a ClerkRuntimeError.\n * Can be called as a standalone function or as a method on an error object.\n *\n * @example\n * // As a standalone function\n * if (isClerkRuntimeError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isClerkRuntimeError()) { ... }\n */\nexport const isClerkRuntimeError = createErrorTypeGuard(ClerkRuntimeError);\n","import { ClerkRuntimeError } from './clerkRuntimeError';\n\ntype ClerkWebAuthnErrorCode =\n // Generic\n | 'passkey_not_supported'\n | 'passkey_pa_not_supported'\n | 'passkey_invalid_rpID_or_domain'\n | 'passkey_already_exists'\n | 'passkey_operation_aborted'\n // Retrieval\n | 'passkey_retrieval_cancelled'\n | 'passkey_retrieval_failed'\n // Registration\n | 'passkey_registration_cancelled'\n | 'passkey_registration_failed';\n\nexport class ClerkWebAuthnError extends ClerkRuntimeError {\n /**\n * A unique code identifying the error, can be used for localization.\n */\n code: ClerkWebAuthnErrorCode;\n\n constructor(message: string, { code }: { code: ClerkWebAuthnErrorCode }) {\n super(message, { code });\n this.code = code;\n }\n}\n","import type { ClerkAPIResponseError } from './clerkApiResponseError';\nimport { isClerkAPIResponseError } from './clerkApiResponseError';\nimport type { ClerkRuntimeError } from './clerkRuntimeError';\nimport { isClerkRuntimeError } from './clerkRuntimeError';\nimport type { EmailLinkError } from './emailLinkError';\nimport type { MetamaskError } from './metamaskError';\n\n/**\n * Checks if the provided error object is an unauthorized error.\n *\n * @internal\n *\n * @deprecated This is no longer used, and will be removed in the next major version.\n */\nexport function isUnauthorizedError(e: any): boolean {\n const status = e?.status;\n const code = e?.errors?.[0]?.code;\n return code === 'authentication_invalid' && status === 401;\n}\n\n/**\n * Checks if the provided error object is a captcha error.\n *\n * @internal\n */\nexport function isCaptchaError(e: ClerkAPIResponseError): boolean {\n return ['captcha_invalid', 'captcha_not_enabled', 'captcha_missing_token'].includes(e.errors[0].code);\n}\n\n/**\n * Checks if the provided error is a 4xx error.\n *\n * @internal\n */\nexport function is4xxError(e: any): boolean {\n const status = e?.status;\n return !!status && status >= 400 && status < 500;\n}\n\n/**\n * Checks if the provided error is a network error.\n *\n * @internal\n */\nexport function isNetworkError(e: any): boolean {\n // TODO: revise during error handling epic\n const message = (`${e.message}${e.name}` || '').toLowerCase().replace(/\\s+/g, '');\n return message.includes('networkerror');\n}\n\n/**\n * Checks if the provided error is either a ClerkAPIResponseError, a ClerkRuntimeError, or a MetamaskError.\n *\n * @internal\n */\nexport function isKnownError(error: any): error is ClerkAPIResponseError | ClerkRuntimeError | MetamaskError {\n return isClerkAPIResponseError(error) || isMetamaskError(error) || isClerkRuntimeError(error);\n}\n\n/**\n * Checks if the provided error is a Clerk runtime error indicating a reverification was cancelled.\n *\n * @internal\n */\nexport function isReverificationCancelledError(err: any) {\n return isClerkRuntimeError(err) && err.code === 'reverification_cancelled';\n}\n\n/**\n * Checks if the provided error is a Metamask error.\n *\n * @internal\n */\nexport function isMetamaskError(err: any): err is MetamaskError {\n return 'code' in err && [4001, 32602, 32603].includes(err.code) && 'message' in err;\n}\n\n/**\n * Checks if the provided error is clerk api response error indicating a user is locked.\n *\n * @internal\n */\nexport function isUserLockedError(err: any) {\n return isClerkAPIResponseError(err) && err.errors?.[0]?.code === 'user_locked';\n}\n\n/**\n * Checks if the provided error is a clerk api response error indicating a password was pwned.\n *\n * @internal\n */\nexport function isPasswordPwnedError(err: any) {\n return isClerkAPIResponseError(err) && err.errors?.[0]?.code === 'form_password_pwned';\n}\n\n/**\n * Checks if the provided error is a clerk api response error indicating a password was compromised.\n *\n * @internal\n */\nexport function isPasswordCompromisedError(err: any) {\n return isClerkAPIResponseError(err) && err.errors?.[0]?.code === 'form_password_compromised';\n}\n\n/**\n * Checks if the provided error is an EmailLinkError.\n *\n * @internal\n */\nexport function isEmailLinkError(err: Error): err is EmailLinkError {\n return err.name === 'EmailLinkError';\n}\n","import { isClerkAPIResponseError } from './clerkApiResponseError';\nimport type { ClerkError } from './clerkError';\nimport { isClerkRuntimeError } from './clerkRuntimeError';\n\n/**\n * Creates a ClerkGlobalHookError object from a ClerkError instance.\n * It's a wrapper for all the different instances of Clerk errors that can\n * be returned when using Clerk hooks.\n */\nexport function createClerkGlobalHookError(error: ClerkError) {\n const predicates = {\n isClerkAPIResponseError,\n isClerkRuntimeError,\n } as const;\n\n for (const [name, fn] of Object.entries(predicates)) {\n Object.assign(error, { [name]: fn });\n }\n\n return error as ClerkError & typeof predicates;\n}\n\nexport type ClerkGlobalHookError = ReturnType<typeof createClerkGlobalHookError>;\n"],"mappings":"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"}