diff --git a/.changeset/calm-brooms-grab.md b/.changeset/calm-brooms-grab.md new file mode 100644 index 00000000000..9986d6c01c8 --- /dev/null +++ b/.changeset/calm-brooms-grab.md @@ -0,0 +1,5 @@ +--- +'@clerk/backend': minor +--- + +Added support for User `locale` diff --git a/packages/backend/src/api/endpoints/UserApi.ts b/packages/backend/src/api/endpoints/UserApi.ts index 4f8bbf7ef4b..06c8ae8e974 100644 --- a/packages/backend/src/api/endpoints/UserApi.ts +++ b/packages/backend/src/api/endpoints/UserApi.ts @@ -81,6 +81,8 @@ type CreateUserParams = { password?: string; firstName?: string; lastName?: string; + /** The locale of the user in BCP-47 format. */ + locale?: string; skipPasswordChecks?: boolean; skipPasswordRequirement?: boolean; skipLegalChecks?: boolean; @@ -149,6 +151,9 @@ type UpdateUserParams = { /** A custom timestamp denoting when the user accepted legal requirements, specified in RFC3339 format (e.g. 2012-10-20T07:15:20.902Z). */ legalAcceptedAt?: Date; + /** The locale of the user in BCP-47 format. */ + locale?: string; + /** If true, the user can delete themselves with the Frontend API. */ deleteSelfEnabled?: boolean; diff --git a/packages/backend/src/api/resources/JSON.ts b/packages/backend/src/api/resources/JSON.ts index cf70c1ff2b4..8e5ec664887 100644 --- a/packages/backend/src/api/resources/JSON.ts +++ b/packages/backend/src/api/resources/JSON.ts @@ -606,6 +606,10 @@ export interface UserJSON extends ClerkResourceJSON { create_organizations_limit: number | null; delete_self_enabled: boolean; legal_accepted_at: number | null; + /** + * The locale of the user in BCP-47 format. + */ + locale: string | null; } export interface VerificationJSON extends ClerkResourceJSON { diff --git a/packages/backend/src/api/resources/User.ts b/packages/backend/src/api/resources/User.ts index 925d4ab29ed..df05ef53466 100644 --- a/packages/backend/src/api/resources/User.ts +++ b/packages/backend/src/api/resources/User.ts @@ -144,6 +144,11 @@ export class User { * The unix timestamp of when the user accepted the legal requirements. `null` if [**Require express consent to legal documents**](https://clerk.com/docs/guides/secure/legal-compliance) is not enabled. */ readonly legalAcceptedAt: number | null, + + /** + * The locale of the user in BCP-47 format. + */ + readonly locale: string | null, ) {} static fromJSON(data: UserJSON): User { @@ -180,6 +185,7 @@ export class User { data.create_organizations_limit, data.delete_self_enabled, data.legal_accepted_at, + data.locale, ); res._raw = data; return res;