From 495912fb2206e3ab57a76b08734625566e7187a6 Mon Sep 17 00:00:00 2001 From: Nikos Douvlis Date: Thu, 16 Oct 2025 11:20:55 +0300 Subject: [PATCH 1/2] fix(shared): Rename static properties from 'name' to 'kind' in error classes To fix local e2e errors where nextjs cannot assign static `name` prop --- packages/shared/src/errors/clerkApiError.ts | 2 +- packages/shared/src/errors/clerkApiResponseError.ts | 2 +- packages/shared/src/errors/clerkError.ts | 4 ++-- packages/shared/src/errors/clerkRuntimeError.ts | 2 +- packages/shared/src/errors/createErrorTypeGuard.ts | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/shared/src/errors/clerkApiError.ts b/packages/shared/src/errors/clerkApiError.ts index 1ed0e6783b3..6b0b18eaf26 100644 --- a/packages/shared/src/errors/clerkApiError.ts +++ b/packages/shared/src/errors/clerkApiError.ts @@ -8,7 +8,7 @@ export type ClerkApiErrorMeta = Record; * This error contains the specific error message, code, and any additional metadata that was returned by the Clerk API. */ export class ClerkAPIError implements ClerkAPIErrorInterface { - readonly name = 'ClerkApiError'; + static kind = 'ClerkApiError'; readonly code: string; readonly message: string; readonly longMessage: string | undefined; diff --git a/packages/shared/src/errors/clerkApiResponseError.ts b/packages/shared/src/errors/clerkApiResponseError.ts index 1bc9eb96560..149fd68803a 100644 --- a/packages/shared/src/errors/clerkApiResponseError.ts +++ b/packages/shared/src/errors/clerkApiResponseError.ts @@ -13,7 +13,7 @@ interface ClerkAPIResponseOptions extends Omit; * throw new ClerkRuntimeError('An error occurred', { code: 'password_invalid' }); */ export class ClerkRuntimeError extends ClerkError { - static name = 'ClerkRuntimeError'; + static kind = 'ClerkRuntimeError'; /** * @deprecated Use `clerkError` property instead. This property is maintained for backward compatibility. */ diff --git a/packages/shared/src/errors/createErrorTypeGuard.ts b/packages/shared/src/errors/createErrorTypeGuard.ts index 62a8cfd48ca..aa6afe5d96d 100644 --- a/packages/shared/src/errors/createErrorTypeGuard.ts +++ b/packages/shared/src/errors/createErrorTypeGuard.ts @@ -19,7 +19,7 @@ type Value = unknown; * ``` */ export function createErrorTypeGuard Value>( - ErrorClass: T, + ErrorClass: T & { kind?: string }, ): { (error: Value): error is InstanceType; (this: Value): this is InstanceType; @@ -27,7 +27,7 @@ export function createErrorTypeGuard Value>( function typeGuard(this: Value, error?: Value): error is InstanceType { const target = error ?? this; if (!target) { - throw new TypeError(`${ErrorClass.name} type guard requires an error object`); + throw new TypeError(`${ErrorClass.kind || ErrorClass.name} type guard requires an error object`); } return target instanceof ErrorClass; } From c1f6e90ac99c0afc21e19c6ea84561372b1aa70d Mon Sep 17 00:00:00 2001 From: Nikos Douvlis Date: Thu, 16 Oct 2025 11:40:12 +0300 Subject: [PATCH 2/2] Create twelve-horses-mix.md --- .changeset/twelve-horses-mix.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/twelve-horses-mix.md diff --git a/.changeset/twelve-horses-mix.md b/.changeset/twelve-horses-mix.md new file mode 100644 index 00000000000..3a872dd00a1 --- /dev/null +++ b/.changeset/twelve-horses-mix.md @@ -0,0 +1,5 @@ +--- +"@clerk/shared": patch +--- + +Rename static properties from 'name' to 'kind' in ClerkError class