@clerk/shared 3.28.0 → 3.28.1-canary.v20251016143055
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.
- package/dist/{chunk-LAUDJDHO.mjs → chunk-AXHU6TXE.mjs} +7 -7
- package/dist/chunk-AXHU6TXE.mjs.map +1 -0
- package/dist/{chunk-NCCT55PY.mjs → chunk-H3ZGMQBC.mjs} +3 -3
- package/dist/{chunk-57A2UL5K.mjs → chunk-Y3SCV4WN.mjs} +3 -3
- package/dist/{chunk-57A2UL5K.mjs.map → chunk-Y3SCV4WN.mjs.map} +1 -1
- package/dist/{clerkApiResponseError-CeAPWrkq.d.mts → clerkApiResponseError-CpTaa-eQ.d.mts} +3 -3
- package/dist/{clerkApiResponseError-CeAPWrkq.d.ts → clerkApiResponseError-CpTaa-eQ.d.ts} +3 -3
- package/dist/error.d.mts +2 -2
- package/dist/error.d.ts +2 -2
- package/dist/error.js +6 -6
- package/dist/error.js.map +1 -1
- package/dist/error.mjs +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -3
- package/dist/loadClerkJsScript.js +8 -8
- package/dist/loadClerkJsScript.js.map +1 -1
- package/dist/loadClerkJsScript.mjs +3 -3
- package/dist/react/index.d.mts +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.js +6 -6
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +1 -1
- package/dist/versionSelector.js +2 -2
- package/dist/versionSelector.js.map +1 -1
- package/dist/versionSelector.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-LAUDJDHO.mjs.map +0 -1
- /package/dist/{chunk-NCCT55PY.mjs.map → chunk-H3ZGMQBC.mjs.map} +0 -0
|
@@ -3,7 +3,7 @@ function createErrorTypeGuard(ErrorClass) {
|
|
|
3
3
|
function typeGuard(error) {
|
|
4
4
|
const target = error ?? this;
|
|
5
5
|
if (!target) {
|
|
6
|
-
throw new TypeError(`${ErrorClass.name} type guard requires an error object`);
|
|
6
|
+
throw new TypeError(`${ErrorClass.kind || ErrorClass.name} type guard requires an error object`);
|
|
7
7
|
}
|
|
8
8
|
return target instanceof ErrorClass;
|
|
9
9
|
}
|
|
@@ -12,7 +12,7 @@ function createErrorTypeGuard(ErrorClass) {
|
|
|
12
12
|
|
|
13
13
|
// src/errors/clerkApiError.ts
|
|
14
14
|
var ClerkAPIError = class {
|
|
15
|
-
|
|
15
|
+
static kind = "ClerkApiError";
|
|
16
16
|
code;
|
|
17
17
|
message;
|
|
18
18
|
longMessage;
|
|
@@ -70,7 +70,7 @@ function errorToJSON(error) {
|
|
|
70
70
|
// src/errors/clerkError.ts
|
|
71
71
|
var __DEV__ = true;
|
|
72
72
|
var ClerkError = class _ClerkError extends Error {
|
|
73
|
-
static
|
|
73
|
+
static kind = "ClerkError";
|
|
74
74
|
clerkError = true;
|
|
75
75
|
code;
|
|
76
76
|
longMessage;
|
|
@@ -80,7 +80,7 @@ var ClerkError = class _ClerkError extends Error {
|
|
|
80
80
|
return this.constructor.name;
|
|
81
81
|
}
|
|
82
82
|
constructor(opts) {
|
|
83
|
-
super(new.target.formatMessage(new.target.
|
|
83
|
+
super(new.target.formatMessage(new.target.kind, opts.message, opts.code, opts.docsUrl), { cause: opts.cause });
|
|
84
84
|
Object.setPrototypeOf(this, _ClerkError.prototype);
|
|
85
85
|
this.code = opts.code;
|
|
86
86
|
this.docsUrl = opts.docsUrl;
|
|
@@ -111,7 +111,7 @@ Docs: ${docsUrl}`;
|
|
|
111
111
|
|
|
112
112
|
// src/errors/clerkApiResponseError.ts
|
|
113
113
|
var ClerkAPIResponseError = class _ClerkAPIResponseError extends ClerkError {
|
|
114
|
-
static
|
|
114
|
+
static kind = "ClerkAPIResponseError";
|
|
115
115
|
status;
|
|
116
116
|
clerkTraceId;
|
|
117
117
|
retryAfter;
|
|
@@ -226,7 +226,7 @@ var EmailLinkErrorCodeStatus = {
|
|
|
226
226
|
|
|
227
227
|
// src/errors/clerkRuntimeError.ts
|
|
228
228
|
var ClerkRuntimeError = class _ClerkRuntimeError extends ClerkError {
|
|
229
|
-
static
|
|
229
|
+
static kind = "ClerkRuntimeError";
|
|
230
230
|
/**
|
|
231
231
|
* @deprecated Use `clerkError` property instead. This property is maintained for backward compatibility.
|
|
232
232
|
*/
|
|
@@ -317,4 +317,4 @@ export {
|
|
|
317
317
|
isPasswordPwnedError,
|
|
318
318
|
isEmailLinkError
|
|
319
319
|
};
|
|
320
|
-
//# sourceMappingURL=chunk-
|
|
320
|
+
//# sourceMappingURL=chunk-AXHU6TXE.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"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"],"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 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 '@clerk/types';\n\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 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 = this.parseJsonError(json);\n this.code = parsedError.code;\n this.message = parsedError.message;\n this.longMessage = parsedError.longMessage;\n this.meta = parsedError.meta;\n }\n\n private parseJsonError(json: ClerkAPIErrorJSON) {\n return {\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 }\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 '@clerk/types';\n\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 '@clerk/types';\n\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 type { ClerkRuntimeError } 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 ClerkAPIResponseError.\n *\n * @internal\n */\nexport function isClerkAPIResponseError(err: any): err is ClerkAPIResponseError {\n return err && 'clerkError' in err;\n}\n\n/**\n * Checks if the provided error object is an instance of ClerkRuntimeError.\n *\n * @param err - The error object to check.\n * @returns True if the error is a ClerkRuntimeError, false otherwise.\n *\n * @example\n * const error = new ClerkRuntimeError('An error occurred');\n * if (isClerkRuntimeError(error)) {\n * // Handle ClerkRuntimeError\n * console.error('ClerkRuntimeError:', error.message);\n * } else {\n * // Handle other errors\n * console.error('Other error:', error.message);\n * }\n */\nexport function isClerkRuntimeError(err: any): err is ClerkRuntimeError {\n return 'clerkRuntimeError' in err;\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 an EmailLinkError.\n *\n * @internal\n */\nexport function isEmailLinkError(err: Error): err is EmailLinkError {\n return err.name === 'EmailLinkError';\n}\n"],"mappings":"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","names":["packageName","customMessages","isClerkRuntimeError"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
versionSelector
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Y3SCV4WN.mjs";
|
|
4
4
|
import {
|
|
5
5
|
isValidProxyUrl,
|
|
6
6
|
proxyUrlToAbsoluteURL
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
import {
|
|
15
15
|
ClerkRuntimeError,
|
|
16
16
|
buildErrorThrower
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-AXHU6TXE.mjs";
|
|
18
18
|
import {
|
|
19
19
|
createDevOrStagingUrlCache,
|
|
20
20
|
parsePublishableKey
|
|
@@ -149,4 +149,4 @@ export {
|
|
|
149
149
|
clerkJsScriptUrl,
|
|
150
150
|
buildClerkJsScriptAttributes
|
|
151
151
|
};
|
|
152
|
-
//# sourceMappingURL=chunk-
|
|
152
|
+
//# sourceMappingURL=chunk-H3ZGMQBC.mjs.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// src/versionSelector.ts
|
|
2
|
-
var versionSelector = (clerkJSVersion, packageVersion = "5.101.
|
|
2
|
+
var versionSelector = (clerkJSVersion, packageVersion = "5.101.1-canary.v20251016143055") => {
|
|
3
3
|
if (clerkJSVersion) {
|
|
4
4
|
return clerkJSVersion;
|
|
5
5
|
}
|
|
6
6
|
const prereleaseTag = getPrereleaseTag(packageVersion);
|
|
7
7
|
if (prereleaseTag) {
|
|
8
8
|
if (prereleaseTag === "snapshot") {
|
|
9
|
-
return "5.101.
|
|
9
|
+
return "5.101.1-canary.v20251016143055";
|
|
10
10
|
}
|
|
11
11
|
return prereleaseTag;
|
|
12
12
|
}
|
|
@@ -19,4 +19,4 @@ export {
|
|
|
19
19
|
versionSelector,
|
|
20
20
|
getMajorVersion
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=chunk-
|
|
22
|
+
//# sourceMappingURL=chunk-Y3SCV4WN.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/versionSelector.ts"],"sourcesContent":["/**\n * This version selector is a bit complicated, so here is the flow:\n * 1. Use the clerkJSVersion prop on the provider\n * 2. Use the exact `@clerk/clerk-js` version if it is a `@snapshot` prerelease\n * 3. Use the prerelease tag of `@clerk/clerk-js` or the packageVersion provided\n * 4. Fallback to the major version of `@clerk/clerk-js` or the packageVersion provided\n * @param clerkJSVersion - The optional clerkJSVersion prop on the provider\n * @param packageVersion - The version of `@clerk/clerk-js` that will be used if an explicit version is not provided\n * @returns The npm tag, version or major version to use\n */\nexport const versionSelector = (clerkJSVersion: string | undefined, packageVersion = JS_PACKAGE_VERSION) => {\n if (clerkJSVersion) {\n return clerkJSVersion;\n }\n\n const prereleaseTag = getPrereleaseTag(packageVersion);\n if (prereleaseTag) {\n if (prereleaseTag === 'snapshot') {\n return JS_PACKAGE_VERSION;\n }\n\n return prereleaseTag;\n }\n\n return getMajorVersion(packageVersion);\n};\n\nconst getPrereleaseTag = (packageVersion: string) =>\n packageVersion\n .trim()\n .replace(/^v/, '')\n .match(/-(.+?)(\\.|$)/)?.[1];\n\nexport const getMajorVersion = (packageVersion: string) => packageVersion.trim().replace(/^v/, '').split('.')[0];\n"],"mappings":";AAUO,IAAM,kBAAkB,CAAC,gBAAoC,iBAAiB,
|
|
1
|
+
{"version":3,"sources":["../src/versionSelector.ts"],"sourcesContent":["/**\n * This version selector is a bit complicated, so here is the flow:\n * 1. Use the clerkJSVersion prop on the provider\n * 2. Use the exact `@clerk/clerk-js` version if it is a `@snapshot` prerelease\n * 3. Use the prerelease tag of `@clerk/clerk-js` or the packageVersion provided\n * 4. Fallback to the major version of `@clerk/clerk-js` or the packageVersion provided\n * @param clerkJSVersion - The optional clerkJSVersion prop on the provider\n * @param packageVersion - The version of `@clerk/clerk-js` that will be used if an explicit version is not provided\n * @returns The npm tag, version or major version to use\n */\nexport const versionSelector = (clerkJSVersion: string | undefined, packageVersion = JS_PACKAGE_VERSION) => {\n if (clerkJSVersion) {\n return clerkJSVersion;\n }\n\n const prereleaseTag = getPrereleaseTag(packageVersion);\n if (prereleaseTag) {\n if (prereleaseTag === 'snapshot') {\n return JS_PACKAGE_VERSION;\n }\n\n return prereleaseTag;\n }\n\n return getMajorVersion(packageVersion);\n};\n\nconst getPrereleaseTag = (packageVersion: string) =>\n packageVersion\n .trim()\n .replace(/^v/, '')\n .match(/-(.+?)(\\.|$)/)?.[1];\n\nexport const getMajorVersion = (packageVersion: string) => packageVersion.trim().replace(/^v/, '').split('.')[0];\n"],"mappings":";AAUO,IAAM,kBAAkB,CAAC,gBAAoC,iBAAiB,qCAAuB;AAC1G,MAAI,gBAAgB;AAClB,WAAO;AAAA,EACT;AAEA,QAAM,gBAAgB,iBAAiB,cAAc;AACrD,MAAI,eAAe;AACjB,QAAI,kBAAkB,YAAY;AAChC,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAEA,SAAO,gBAAgB,cAAc;AACvC;AAEA,IAAM,mBAAmB,CAAC,mBACxB,eACG,KAAK,EACL,QAAQ,MAAM,EAAE,EAChB,MAAM,cAAc,IAAI,CAAC;AAEvB,IAAM,kBAAkB,CAAC,mBAA2B,eAAe,KAAK,EAAE,QAAQ,MAAM,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC;","names":[]}
|
|
@@ -5,7 +5,7 @@ type ClerkApiErrorMeta = Record<string, unknown>;
|
|
|
5
5
|
* This error contains the specific error message, code, and any additional metadata that was returned by the Clerk API.
|
|
6
6
|
*/
|
|
7
7
|
declare class ClerkAPIError<Meta extends ClerkApiErrorMeta = any> implements ClerkAPIError$1 {
|
|
8
|
-
|
|
8
|
+
static kind: string;
|
|
9
9
|
readonly code: string;
|
|
10
10
|
readonly message: string;
|
|
11
11
|
readonly longMessage: string | undefined;
|
|
@@ -41,7 +41,7 @@ interface ClerkErrorParams {
|
|
|
41
41
|
docsUrl?: string;
|
|
42
42
|
}
|
|
43
43
|
declare class ClerkError extends Error {
|
|
44
|
-
static
|
|
44
|
+
static kind: string;
|
|
45
45
|
readonly clerkError: true;
|
|
46
46
|
readonly code: string;
|
|
47
47
|
readonly longMessage: string | undefined;
|
|
@@ -60,7 +60,7 @@ interface ClerkAPIResponseOptions extends Omit<ClerkErrorParams, 'message' | 'co
|
|
|
60
60
|
retryAfter?: number;
|
|
61
61
|
}
|
|
62
62
|
declare class ClerkAPIResponseError extends ClerkError implements ClerkAPIResponseError$1 {
|
|
63
|
-
static
|
|
63
|
+
static kind: string;
|
|
64
64
|
status: number;
|
|
65
65
|
clerkTraceId?: string;
|
|
66
66
|
retryAfter?: number;
|
|
@@ -5,7 +5,7 @@ type ClerkApiErrorMeta = Record<string, unknown>;
|
|
|
5
5
|
* This error contains the specific error message, code, and any additional metadata that was returned by the Clerk API.
|
|
6
6
|
*/
|
|
7
7
|
declare class ClerkAPIError<Meta extends ClerkApiErrorMeta = any> implements ClerkAPIError$1 {
|
|
8
|
-
|
|
8
|
+
static kind: string;
|
|
9
9
|
readonly code: string;
|
|
10
10
|
readonly message: string;
|
|
11
11
|
readonly longMessage: string | undefined;
|
|
@@ -41,7 +41,7 @@ interface ClerkErrorParams {
|
|
|
41
41
|
docsUrl?: string;
|
|
42
42
|
}
|
|
43
43
|
declare class ClerkError extends Error {
|
|
44
|
-
static
|
|
44
|
+
static kind: string;
|
|
45
45
|
readonly clerkError: true;
|
|
46
46
|
readonly code: string;
|
|
47
47
|
readonly longMessage: string | undefined;
|
|
@@ -60,7 +60,7 @@ interface ClerkAPIResponseOptions extends Omit<ClerkErrorParams, 'message' | 'co
|
|
|
60
60
|
retryAfter?: number;
|
|
61
61
|
}
|
|
62
62
|
declare class ClerkAPIResponseError extends ClerkError implements ClerkAPIResponseError$1 {
|
|
63
|
-
static
|
|
63
|
+
static kind: string;
|
|
64
64
|
status: number;
|
|
65
65
|
clerkTraceId?: string;
|
|
66
66
|
retryAfter?: number;
|
package/dist/error.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ClerkAPIErrorJSON, ClerkAPIError as ClerkAPIError$1 } from '@clerk/types';
|
|
2
|
-
import { C as ClerkAPIError, b as ClerkError, c as ClerkErrorParams, a as ClerkAPIResponseError } from './clerkApiResponseError-
|
|
2
|
+
import { C as ClerkAPIError, b as ClerkError, c as ClerkErrorParams, a as ClerkAPIResponseError } from './clerkApiResponseError-CpTaa-eQ.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Parses an array of ClerkAPIErrorJSON objects into an array of ClerkAPIError objects.
|
|
@@ -95,7 +95,7 @@ type ClerkRuntimeErrorOptions = Omit<ClerkErrorParams, 'message'>;
|
|
|
95
95
|
* throw new ClerkRuntimeError('An error occurred', { code: 'password_invalid' });
|
|
96
96
|
*/
|
|
97
97
|
declare class ClerkRuntimeError extends ClerkError {
|
|
98
|
-
static
|
|
98
|
+
static kind: string;
|
|
99
99
|
/**
|
|
100
100
|
* @deprecated Use `clerkError` property instead. This property is maintained for backward compatibility.
|
|
101
101
|
*/
|
package/dist/error.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ClerkAPIErrorJSON, ClerkAPIError as ClerkAPIError$1 } from '@clerk/types';
|
|
2
|
-
import { C as ClerkAPIError, b as ClerkError, c as ClerkErrorParams, a as ClerkAPIResponseError } from './clerkApiResponseError-
|
|
2
|
+
import { C as ClerkAPIError, b as ClerkError, c as ClerkErrorParams, a as ClerkAPIResponseError } from './clerkApiResponseError-CpTaa-eQ.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Parses an array of ClerkAPIErrorJSON objects into an array of ClerkAPIError objects.
|
|
@@ -95,7 +95,7 @@ type ClerkRuntimeErrorOptions = Omit<ClerkErrorParams, 'message'>;
|
|
|
95
95
|
* throw new ClerkRuntimeError('An error occurred', { code: 'password_invalid' });
|
|
96
96
|
*/
|
|
97
97
|
declare class ClerkRuntimeError extends ClerkError {
|
|
98
|
-
static
|
|
98
|
+
static kind: string;
|
|
99
99
|
/**
|
|
100
100
|
* @deprecated Use `clerkError` property instead. This property is maintained for backward compatibility.
|
|
101
101
|
*/
|
package/dist/error.js
CHANGED
|
@@ -51,7 +51,7 @@ function createErrorTypeGuard(ErrorClass) {
|
|
|
51
51
|
function typeGuard(error) {
|
|
52
52
|
const target = error ?? this;
|
|
53
53
|
if (!target) {
|
|
54
|
-
throw new TypeError(`${ErrorClass.name} type guard requires an error object`);
|
|
54
|
+
throw new TypeError(`${ErrorClass.kind || ErrorClass.name} type guard requires an error object`);
|
|
55
55
|
}
|
|
56
56
|
return target instanceof ErrorClass;
|
|
57
57
|
}
|
|
@@ -60,7 +60,7 @@ function createErrorTypeGuard(ErrorClass) {
|
|
|
60
60
|
|
|
61
61
|
// src/errors/clerkApiError.ts
|
|
62
62
|
var ClerkAPIError = class {
|
|
63
|
-
|
|
63
|
+
static kind = "ClerkApiError";
|
|
64
64
|
code;
|
|
65
65
|
message;
|
|
66
66
|
longMessage;
|
|
@@ -118,7 +118,7 @@ function errorToJSON(error) {
|
|
|
118
118
|
// src/errors/clerkError.ts
|
|
119
119
|
var __DEV__ = true;
|
|
120
120
|
var ClerkError = class _ClerkError extends Error {
|
|
121
|
-
static
|
|
121
|
+
static kind = "ClerkError";
|
|
122
122
|
clerkError = true;
|
|
123
123
|
code;
|
|
124
124
|
longMessage;
|
|
@@ -128,7 +128,7 @@ var ClerkError = class _ClerkError extends Error {
|
|
|
128
128
|
return this.constructor.name;
|
|
129
129
|
}
|
|
130
130
|
constructor(opts) {
|
|
131
|
-
super(new.target.formatMessage(new.target.
|
|
131
|
+
super(new.target.formatMessage(new.target.kind, opts.message, opts.code, opts.docsUrl), { cause: opts.cause });
|
|
132
132
|
Object.setPrototypeOf(this, _ClerkError.prototype);
|
|
133
133
|
this.code = opts.code;
|
|
134
134
|
this.docsUrl = opts.docsUrl;
|
|
@@ -159,7 +159,7 @@ Docs: ${docsUrl}`;
|
|
|
159
159
|
|
|
160
160
|
// src/errors/clerkApiResponseError.ts
|
|
161
161
|
var ClerkAPIResponseError = class _ClerkAPIResponseError extends ClerkError {
|
|
162
|
-
static
|
|
162
|
+
static kind = "ClerkAPIResponseError";
|
|
163
163
|
status;
|
|
164
164
|
clerkTraceId;
|
|
165
165
|
retryAfter;
|
|
@@ -274,7 +274,7 @@ var EmailLinkErrorCodeStatus = {
|
|
|
274
274
|
|
|
275
275
|
// src/errors/clerkRuntimeError.ts
|
|
276
276
|
var ClerkRuntimeError = class _ClerkRuntimeError extends ClerkError {
|
|
277
|
-
static
|
|
277
|
+
static kind = "ClerkRuntimeError";
|
|
278
278
|
/**
|
|
279
279
|
* @deprecated Use `clerkError` property instead. This property is maintained for backward compatibility.
|
|
280
280
|
*/
|
package/dist/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/error.ts","../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"],"sourcesContent":["export { errorToJSON, parseError, parseErrors } from './errors/parseError';\n\nexport { ClerkAPIError } from './errors/clerkApiError';\nexport { ClerkAPIResponseError } from './errors/clerkApiResponseError';\n\nexport { buildErrorThrower, type ErrorThrower, type ErrorThrowerOptions } from './errors/errorThrower';\n\nexport { EmailLinkError, EmailLinkErrorCode, EmailLinkErrorCodeStatus } from './errors/emailLinkError';\n\nexport type { MetamaskError } from './errors/metamaskError';\n\nexport { ClerkRuntimeError } from './errors/clerkRuntimeError';\n\nexport { ClerkWebAuthnError } from './errors/webAuthNError';\n\nexport {\n is4xxError,\n isCaptchaError,\n isClerkAPIResponseError,\n isClerkRuntimeError,\n isEmailLinkError,\n isKnownError,\n isMetamaskError,\n isNetworkError,\n isPasswordPwnedError,\n isReverificationCancelledError,\n isUnauthorizedError,\n isUserLockedError,\n} from './errors/helpers';\n","/* 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,\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.name} type guard requires an error object`);\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 '@clerk/types';\n\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 readonly name = '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 = this.parseJsonError(json);\n this.code = parsedError.code;\n this.message = parsedError.message;\n this.longMessage = parsedError.longMessage;\n this.meta = parsedError.meta;\n }\n\n private parseJsonError(json: ClerkAPIErrorJSON) {\n return {\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 }\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 '@clerk/types';\n\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 name = '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.name, 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 '@clerk/types';\n\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 name = '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 name = '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 type { ClerkRuntimeError } 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 ClerkAPIResponseError.\n *\n * @internal\n */\nexport function isClerkAPIResponseError(err: any): err is ClerkAPIResponseError {\n return err && 'clerkError' in err;\n}\n\n/**\n * Checks if the provided error object is an instance of ClerkRuntimeError.\n *\n * @param err - The error object to check.\n * @returns True if the error is a ClerkRuntimeError, false otherwise.\n *\n * @example\n * const error = new ClerkRuntimeError('An error occurred');\n * if (isClerkRuntimeError(error)) {\n * // Handle ClerkRuntimeError\n * console.error('ClerkRuntimeError:', error.message);\n * } else {\n * // Handle other errors\n * console.error('Other error:', error.message);\n * }\n */\nexport function isClerkRuntimeError(err: any): err is ClerkRuntimeError {\n return 'clerkRuntimeError' in err;\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 an EmailLinkError.\n *\n * @internal\n */\nexport function isEmailLinkError(err: Error): err is EmailLinkError {\n return err.name === 'EmailLinkError';\n}\n"],"mappings":"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","names":["isClerkRuntimeError","packageName","customMessages","isClerkRuntimeError"]}
|
|
1
|
+
{"version":3,"sources":["../src/error.ts","../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"],"sourcesContent":["export { errorToJSON, parseError, parseErrors } from './errors/parseError';\n\nexport { ClerkAPIError } from './errors/clerkApiError';\nexport { ClerkAPIResponseError } from './errors/clerkApiResponseError';\n\nexport { buildErrorThrower, type ErrorThrower, type ErrorThrowerOptions } from './errors/errorThrower';\n\nexport { EmailLinkError, EmailLinkErrorCode, EmailLinkErrorCodeStatus } from './errors/emailLinkError';\n\nexport type { MetamaskError } from './errors/metamaskError';\n\nexport { ClerkRuntimeError } from './errors/clerkRuntimeError';\n\nexport { ClerkWebAuthnError } from './errors/webAuthNError';\n\nexport {\n is4xxError,\n isCaptchaError,\n isClerkAPIResponseError,\n isClerkRuntimeError,\n isEmailLinkError,\n isKnownError,\n isMetamaskError,\n isNetworkError,\n isPasswordPwnedError,\n isReverificationCancelledError,\n isUnauthorizedError,\n isUserLockedError,\n} from './errors/helpers';\n","/* 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 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 '@clerk/types';\n\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 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 = this.parseJsonError(json);\n this.code = parsedError.code;\n this.message = parsedError.message;\n this.longMessage = parsedError.longMessage;\n this.meta = parsedError.meta;\n }\n\n private parseJsonError(json: ClerkAPIErrorJSON) {\n return {\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 }\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 '@clerk/types';\n\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 '@clerk/types';\n\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 type { ClerkRuntimeError } 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 ClerkAPIResponseError.\n *\n * @internal\n */\nexport function isClerkAPIResponseError(err: any): err is ClerkAPIResponseError {\n return err && 'clerkError' in err;\n}\n\n/**\n * Checks if the provided error object is an instance of ClerkRuntimeError.\n *\n * @param err - The error object to check.\n * @returns True if the error is a ClerkRuntimeError, false otherwise.\n *\n * @example\n * const error = new ClerkRuntimeError('An error occurred');\n * if (isClerkRuntimeError(error)) {\n * // Handle ClerkRuntimeError\n * console.error('ClerkRuntimeError:', error.message);\n * } else {\n * // Handle other errors\n * console.error('Other error:', error.message);\n * }\n */\nexport function isClerkRuntimeError(err: any): err is ClerkRuntimeError {\n return 'clerkRuntimeError' in err;\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 an EmailLinkError.\n *\n * @internal\n */\nexport function isEmailLinkError(err: Error): err is EmailLinkError {\n return err.name === 'EmailLinkError';\n}\n"],"mappings":"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","names":["isClerkRuntimeError","packageName","customMessages","isClerkRuntimeError"]}
|
package/dist/error.mjs
CHANGED
package/dist/index.d.mts
CHANGED
|
@@ -8,7 +8,7 @@ export { RelativeDateCase, addYears, dateTo12HourTime, differenceInCalendarDays,
|
|
|
8
8
|
export { deprecated, deprecatedObjectProperty, deprecatedProperty } from './deprecated.mjs';
|
|
9
9
|
export { deriveState } from './deriveState.mjs';
|
|
10
10
|
export { ClerkRuntimeError, ClerkWebAuthnError, EmailLinkError, EmailLinkErrorCode, EmailLinkErrorCodeStatus, ErrorThrower, ErrorThrowerOptions, MetamaskError, buildErrorThrower, errorToJSON, is4xxError, isCaptchaError, isClerkAPIResponseError, isClerkRuntimeError, isEmailLinkError, isKnownError, isMetamaskError, isNetworkError, isPasswordPwnedError, isReverificationCancelledError, isUnauthorizedError, isUserLockedError, parseError, parseErrors } from './error.mjs';
|
|
11
|
-
export { C as ClerkAPIError, a as ClerkAPIResponseError } from './clerkApiResponseError-
|
|
11
|
+
export { C as ClerkAPIError, a as ClerkAPIResponseError } from './clerkApiResponseError-CpTaa-eQ.mjs';
|
|
12
12
|
export { SupportedMimeType, extension, readJSONFile } from './file.mjs';
|
|
13
13
|
export { isomorphicAtob } from './isomorphicAtob.mjs';
|
|
14
14
|
export { isomorphicBtoa } from './isomorphicBtoa.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { RelativeDateCase, addYears, dateTo12HourTime, differenceInCalendarDays,
|
|
|
8
8
|
export { deprecated, deprecatedObjectProperty, deprecatedProperty } from './deprecated.js';
|
|
9
9
|
export { deriveState } from './deriveState.js';
|
|
10
10
|
export { ClerkRuntimeError, ClerkWebAuthnError, EmailLinkError, EmailLinkErrorCode, EmailLinkErrorCodeStatus, ErrorThrower, ErrorThrowerOptions, MetamaskError, buildErrorThrower, errorToJSON, is4xxError, isCaptchaError, isClerkAPIResponseError, isClerkRuntimeError, isEmailLinkError, isKnownError, isMetamaskError, isNetworkError, isPasswordPwnedError, isReverificationCancelledError, isUnauthorizedError, isUserLockedError, parseError, parseErrors } from './error.js';
|
|
11
|
-
export { C as ClerkAPIError, a as ClerkAPIResponseError } from './clerkApiResponseError-
|
|
11
|
+
export { C as ClerkAPIError, a as ClerkAPIResponseError } from './clerkApiResponseError-CpTaa-eQ.js';
|
|
12
12
|
export { SupportedMimeType, extension, readJSONFile } from './file.js';
|
|
13
13
|
export { isomorphicAtob } from './isomorphicAtob.js';
|
|
14
14
|
export { isomorphicBtoa } from './isomorphicBtoa.js';
|
package/dist/index.js
CHANGED
|
@@ -814,7 +814,7 @@ function createErrorTypeGuard(ErrorClass) {
|
|
|
814
814
|
function typeGuard(error) {
|
|
815
815
|
const target = error ?? this;
|
|
816
816
|
if (!target) {
|
|
817
|
-
throw new TypeError(`${ErrorClass.name} type guard requires an error object`);
|
|
817
|
+
throw new TypeError(`${ErrorClass.kind || ErrorClass.name} type guard requires an error object`);
|
|
818
818
|
}
|
|
819
819
|
return target instanceof ErrorClass;
|
|
820
820
|
}
|
|
@@ -823,7 +823,7 @@ function createErrorTypeGuard(ErrorClass) {
|
|
|
823
823
|
|
|
824
824
|
// src/errors/clerkApiError.ts
|
|
825
825
|
var ClerkAPIError = class {
|
|
826
|
-
|
|
826
|
+
static kind = "ClerkApiError";
|
|
827
827
|
code;
|
|
828
828
|
message;
|
|
829
829
|
longMessage;
|
|
@@ -881,7 +881,7 @@ function errorToJSON(error) {
|
|
|
881
881
|
// src/errors/clerkError.ts
|
|
882
882
|
var __DEV__ = true;
|
|
883
883
|
var ClerkError = class _ClerkError extends Error {
|
|
884
|
-
static
|
|
884
|
+
static kind = "ClerkError";
|
|
885
885
|
clerkError = true;
|
|
886
886
|
code;
|
|
887
887
|
longMessage;
|
|
@@ -891,7 +891,7 @@ var ClerkError = class _ClerkError extends Error {
|
|
|
891
891
|
return this.constructor.name;
|
|
892
892
|
}
|
|
893
893
|
constructor(opts) {
|
|
894
|
-
super(new.target.formatMessage(new.target.
|
|
894
|
+
super(new.target.formatMessage(new.target.kind, opts.message, opts.code, opts.docsUrl), { cause: opts.cause });
|
|
895
895
|
Object.setPrototypeOf(this, _ClerkError.prototype);
|
|
896
896
|
this.code = opts.code;
|
|
897
897
|
this.docsUrl = opts.docsUrl;
|
|
@@ -922,7 +922,7 @@ Docs: ${docsUrl}`;
|
|
|
922
922
|
|
|
923
923
|
// src/errors/clerkApiResponseError.ts
|
|
924
924
|
var ClerkAPIResponseError = class _ClerkAPIResponseError extends ClerkError {
|
|
925
|
-
static
|
|
925
|
+
static kind = "ClerkAPIResponseError";
|
|
926
926
|
status;
|
|
927
927
|
clerkTraceId;
|
|
928
928
|
retryAfter;
|
|
@@ -1037,7 +1037,7 @@ var EmailLinkErrorCodeStatus = {
|
|
|
1037
1037
|
|
|
1038
1038
|
// src/errors/clerkRuntimeError.ts
|
|
1039
1039
|
var ClerkRuntimeError = class _ClerkRuntimeError extends ClerkError {
|
|
1040
|
-
static
|
|
1040
|
+
static kind = "ClerkRuntimeError";
|
|
1041
1041
|
/**
|
|
1042
1042
|
* @deprecated Use `clerkError` property instead. This property is maintained for backward compatibility.
|
|
1043
1043
|
*/
|
|
@@ -1368,14 +1368,14 @@ var ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\d+\-.]*?:/;
|
|
|
1368
1368
|
var isAbsoluteUrl = (url) => ABSOLUTE_URL_REGEX.test(url);
|
|
1369
1369
|
|
|
1370
1370
|
// src/versionSelector.ts
|
|
1371
|
-
var versionSelector = (clerkJSVersion, packageVersion = "5.101.
|
|
1371
|
+
var versionSelector = (clerkJSVersion, packageVersion = "5.101.1-canary.v20251016143055") => {
|
|
1372
1372
|
if (clerkJSVersion) {
|
|
1373
1373
|
return clerkJSVersion;
|
|
1374
1374
|
}
|
|
1375
1375
|
const prereleaseTag = getPrereleaseTag(packageVersion);
|
|
1376
1376
|
if (prereleaseTag) {
|
|
1377
1377
|
if (prereleaseTag === "snapshot") {
|
|
1378
|
-
return "5.101.
|
|
1378
|
+
return "5.101.1-canary.v20251016143055";
|
|
1379
1379
|
}
|
|
1380
1380
|
return prereleaseTag;
|
|
1381
1381
|
}
|