From c695529089f55baef72b86e3b73b8cd9f4f58e6d Mon Sep 17 00:00:00 2001
From: Peter Perlepes
Date: Tue, 3 May 2022 13:52:37 +0300
Subject: [PATCH 1/7] feat(nextjs,clerk-sdk-node,remix): Add claims attribute
to req.auth
---
.../backend-core/src/util/createGetToken.ts | 1 +
packages/edge/src/vercel-edge/index.ts | 9 +++++-
packages/edge/src/vercel-edge/types.ts | 4 ++-
.../edge/src/vercel-edge/utils/getAuthData.ts | 29 -------------------
.../utils/injectAuthIntoRequest.ts | 3 +-
packages/gatsby-plugin-clerk/src/ssr/utils.ts | 2 ++
packages/nextjs/src/middleware/types.ts | 1 +
.../src/middleware/utils/getAuthData.ts | 2 +-
.../middleware/utils/injectAuthIntoRequest.ts | 4 +--
packages/remix/src/ssr/getAuthData.ts | 3 +-
packages/sdk-node/src/Clerk.ts | 4 +++
.../sdk-node/src/__tests__/middleware.test.ts | 2 ++
packages/types/src/ssr.ts | 1 +
13 files changed, 29 insertions(+), 36 deletions(-)
delete mode 100644 packages/edge/src/vercel-edge/utils/getAuthData.ts
diff --git a/packages/backend-core/src/util/createGetToken.ts b/packages/backend-core/src/util/createGetToken.ts
index efd70f91f7c..54bb080b59c 100644
--- a/packages/backend-core/src/util/createGetToken.ts
+++ b/packages/backend-core/src/util/createGetToken.ts
@@ -45,5 +45,6 @@ export const createSignedOutState = () => {
userId: null,
user: null,
getToken: signedOutGetToken,
+ claims: null,
};
};
diff --git a/packages/edge/src/vercel-edge/index.ts b/packages/edge/src/vercel-edge/index.ts
index 520049ea8f4..18ccf786a32 100644
--- a/packages/edge/src/vercel-edge/index.ts
+++ b/packages/edge/src/vercel-edge/index.ts
@@ -122,7 +122,14 @@ export function withEdgeMiddlewareAuth(
fetcher: (...args) => ClerkAPI.sessions.getToken(...args),
});
- const authRequest = injectAuthIntoRequest(req, { user, session, sessionId, userId, getToken });
+ const authRequest = injectAuthIntoRequest(req, {
+ user,
+ session,
+ sessionId,
+ userId,
+ getToken,
+ claims: sessionClaims as Record,
+ });
return handler(authRequest, event);
};
}
diff --git a/packages/edge/src/vercel-edge/types.ts b/packages/edge/src/vercel-edge/types.ts
index 4446dd5c66e..b7b4d350ffb 100644
--- a/packages/edge/src/vercel-edge/types.ts
+++ b/packages/edge/src/vercel-edge/types.ts
@@ -1,6 +1,6 @@
import type { Session, User } from '@clerk/backend-core';
-import type { NextFetchEvent, NextRequest, NextResponse } from 'next/server';
import { ServerGetToken } from '@clerk/types';
+import type { NextFetchEvent, NextRequest, NextResponse } from 'next/server';
export type WithEdgeMiddlewareAuthOptions = {
loadUser?: boolean;
@@ -37,6 +37,7 @@ export type EdgeMiddlewareAuth = {
sessionId: string | null;
userId: string | null;
getToken: ServerGetToken;
+ claims: Record | null;
};
export type AuthData = {
@@ -45,4 +46,5 @@ export type AuthData = {
userId: string | null;
user: User | undefined | null;
getToken: ServerGetToken;
+ claims: Record | null;
};
diff --git a/packages/edge/src/vercel-edge/utils/getAuthData.ts b/packages/edge/src/vercel-edge/utils/getAuthData.ts
deleted file mode 100644
index 123f3917225..00000000000
--- a/packages/edge/src/vercel-edge/utils/getAuthData.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { createGetToken, JWTPayload } from '@clerk/backend-core';
-import { NextRequest } from 'next/server';
-
-import { ClerkAPI } from '../ClerkAPI';
-import { AuthData, WithEdgeMiddlewareAuthOptions } from '../types';
-
-/**
- * @internal
- */
-export async function getAuthData(
- req: NextRequest,
- { sid, sub, loadSession, loadUser }: WithEdgeMiddlewareAuthOptions & JWTPayload,
-): Promise {
- const [user, session] = await Promise.all([
- loadUser ? ClerkAPI.users.getUser(sub as string) : Promise.resolve(undefined),
- loadSession ? ClerkAPI.sessions.getSession(sid as string) : Promise.resolve(undefined),
- ]);
-
- const sessionId = sid;
- const userId = sub;
- const getToken = createGetToken({
- sessionId,
- cookieToken: req.cookies['__session'],
- headerToken: req.headers.get('authorization')?.replace('Bearer ', ''),
- fetcher: (...args) => ClerkAPI.sessions.getToken(...args),
- });
-
- return { sessionId, userId, getToken, user, session };
-}
diff --git a/packages/edge/src/vercel-edge/utils/injectAuthIntoRequest.ts b/packages/edge/src/vercel-edge/utils/injectAuthIntoRequest.ts
index 36a62d3ea7f..1df52a93990 100644
--- a/packages/edge/src/vercel-edge/utils/injectAuthIntoRequest.ts
+++ b/packages/edge/src/vercel-edge/utils/injectAuthIntoRequest.ts
@@ -3,11 +3,12 @@ import { NextRequest } from 'next/server';
import { AuthData, RequestWithAuth } from '../types';
export function injectAuthIntoRequest(req: NextRequest, authData: AuthData): RequestWithAuth {
- const { user, session, userId, sessionId, getToken } = authData;
+ const { user, session, userId, sessionId, getToken, claims } = authData;
const auth = {
userId,
sessionId,
getToken,
+ claims,
};
/* Object.assign is used here as NextRequest properties also include Symbols */
diff --git a/packages/gatsby-plugin-clerk/src/ssr/utils.ts b/packages/gatsby-plugin-clerk/src/ssr/utils.ts
index 4155e56397a..6b7c8dadae0 100644
--- a/packages/gatsby-plugin-clerk/src/ssr/utils.ts
+++ b/packages/gatsby-plugin-clerk/src/ssr/utils.ts
@@ -9,6 +9,8 @@ import { GetServerDataPropsWithAuth } from './types';
*/
export function injectAuthIntoContext(context: GetServerDataProps, authData: AuthData): GetServerDataPropsWithAuth {
const { user, session, ...auth } = authData || {};
+ // FIXME: Add auth.claims addition
+ // @ts-ignore
return { ...context, auth, user, session };
}
diff --git a/packages/nextjs/src/middleware/types.ts b/packages/nextjs/src/middleware/types.ts
index 75f98ed2578..f17c0f30970 100644
--- a/packages/nextjs/src/middleware/types.ts
+++ b/packages/nextjs/src/middleware/types.ts
@@ -24,6 +24,7 @@ export type AuthData = {
userId: string | null;
user: User | undefined | null;
getToken: (...args: any) => Promise;
+ claims: Record | null;
};
export type ContextWithAuth = GetServerSidePropsContext & {
diff --git a/packages/nextjs/src/middleware/utils/getAuthData.ts b/packages/nextjs/src/middleware/utils/getAuthData.ts
index 0b7d9dab2b6..7f7f4b57a65 100644
--- a/packages/nextjs/src/middleware/utils/getAuthData.ts
+++ b/packages/nextjs/src/middleware/utils/getAuthData.ts
@@ -59,7 +59,7 @@ export async function getAuthData(
loadSession ? sessions.getSession(sessionId) : Promise.resolve(undefined),
]);
- return { sessionId, userId, user, session, getToken };
+ return { sessionId, userId, user, session, getToken, claims: sessionClaims };
} catch (err) {
return createSignedOutState();
}
diff --git a/packages/nextjs/src/middleware/utils/injectAuthIntoRequest.ts b/packages/nextjs/src/middleware/utils/injectAuthIntoRequest.ts
index 5ef4dda0469..583bdffb88b 100644
--- a/packages/nextjs/src/middleware/utils/injectAuthIntoRequest.ts
+++ b/packages/nextjs/src/middleware/utils/injectAuthIntoRequest.ts
@@ -7,8 +7,8 @@ import { AuthData, ContextWithAuth } from '../types';
* @internal
*/
export function injectAuthIntoRequest(ctx: GetServerSidePropsContext, authData: AuthData): ContextWithAuth {
- const { user, session, userId, sessionId, getToken } = authData;
- (ctx.req as any).auth = { userId, sessionId, getToken };
+ const { user, session, userId, sessionId, getToken, claims } = authData;
+ (ctx.req as any).auth = { userId, sessionId, getToken, claims };
(ctx.req as any).user = user;
(ctx.req as any).session = session;
return ctx as ContextWithAuth;
diff --git a/packages/remix/src/ssr/getAuthData.ts b/packages/remix/src/ssr/getAuthData.ts
index 033d48fc8ce..338f48b81a0 100644
--- a/packages/remix/src/ssr/getAuthData.ts
+++ b/packages/remix/src/ssr/getAuthData.ts
@@ -11,6 +11,7 @@ export type AuthData = {
userId: string | null;
user: User | undefined | null;
getToken: ServerGetToken;
+ claims: Record | null;
};
/**
@@ -64,7 +65,7 @@ export async function getAuthData(
fetcher: (...args) => sessions.getToken(...args),
});
- return { authData: { sessionId, userId, user, session, getToken } };
+ return { authData: { sessionId, userId, user, session, getToken, claims: sessionClaims } };
} catch (e) {
return { authData: createSignedOutState() };
}
diff --git a/packages/sdk-node/src/Clerk.ts b/packages/sdk-node/src/Clerk.ts
index f088a7bbfc4..b1049872bf3 100644
--- a/packages/sdk-node/src/Clerk.ts
+++ b/packages/sdk-node/src/Clerk.ts
@@ -43,6 +43,7 @@ export type WithAuthProp = T & {
sessionId: string | null;
userId: string | null;
getToken: ServerGetToken;
+ claims: Record | null;
};
};
@@ -51,6 +52,7 @@ export type RequireAuthProp = T & {
sessionId: string;
userId: string;
getToken: ServerGetToken;
+ claims: Record;
};
};
@@ -290,6 +292,7 @@ export default class Clerk extends ClerkBackendAPI {
sessionId: sessionClaims?.sid,
fetcher: (...args) => this.sessions.getToken(...args),
}),
+ claims: sessionClaims,
};
return next();
@@ -305,6 +308,7 @@ export default class Clerk extends ClerkBackendAPI {
userId: null,
sessionId: null,
getToken: createSignedOutState().getToken,
+ claims: null,
};
// Call onError if provided
diff --git a/packages/sdk-node/src/__tests__/middleware.test.ts b/packages/sdk-node/src/__tests__/middleware.test.ts
index 81fa5e50265..d253503109e 100644
--- a/packages/sdk-node/src/__tests__/middleware.test.ts
+++ b/packages/sdk-node/src/__tests__/middleware.test.ts
@@ -32,12 +32,14 @@ const mockAuthProp = {
getToken: mockGetToken,
userId: 'user_id',
sessionId: 'session_id',
+ claims: mockGetAuthStateClaims,
};
const mockAuthSignedOutProp = {
getToken: mockGetToken,
userId: null,
sessionId: null,
+ claims: null,
};
const mockToken = jwt.sign(mockGetAuthStateClaims, 'mock-secret');
diff --git a/packages/types/src/ssr.ts b/packages/types/src/ssr.ts
index 690d01481d2..7b4ea481e76 100644
--- a/packages/types/src/ssr.ts
+++ b/packages/types/src/ssr.ts
@@ -9,6 +9,7 @@ export type ServerSideAuth = {
sessionId: string | null;
userId: string | null;
getToken: ServerGetToken;
+ claims: Record | null;
};
type SsrSessionState =
From ad496f95b27dd6286f94399d485bbcd774d90a2d Mon Sep 17 00:00:00 2001
From: Giannis Katsanos
Date: Thu, 5 May 2022 12:19:56 +0300
Subject: [PATCH 2/7] feat(backend-core): Update organization metadata
Added a new method in the organizations API to update and merge
organization metadata. The method name is updateOrganizationMetadata. It
triggers a PATCH /v1/organizations/:id/metadata request to the Clerk API
and accepts publicMetadata and privateMetadata parameters.
The metadata will be merged with any existing metadata on the
organization.
---
packages/backend-core/API.md | 19 ++++++++++
.../__tests__/apis/OrganizationApi.test.ts | 37 +++++++++++++++++++
.../src/api/collection/OrganizationApi.ts | 12 ++++++
3 files changed, 68 insertions(+)
diff --git a/packages/backend-core/API.md b/packages/backend-core/API.md
index f71a97a0ca0..72352a6cd80 100644
--- a/packages/backend-core/API.md
+++ b/packages/backend-core/API.md
@@ -20,6 +20,7 @@ Reference of the methods supported in the Clerk Backend API wrapper. [API refere
- [revokeInvitation(invitationId)](#revokeinvitationinvitationId)
- [Organization operations](#organization-operations)
- [createOrganization(params)](#createorganizationparams)
+ - [updateOrganizationMetadata(params)](#updateorganizationmetadataparams)
- [Session operations](#session-operations)
- [getSessionList({ clientId, userId })](#getsessionlist-clientid-userid-)
- [getSession(sessionId)](#getsessionsessionid)
@@ -170,6 +171,24 @@ const organization = await clerkAPI.organizations.createOrganization({
});
```
+#### updateOrganizationMetadata(params)
+
+Update an organization's metadata attributes by merging existing values with the provided parameters.
+
+You can remove metadata keys at any level by setting their value to `null`.
+
+Available parameters are:
+
+- _publicMetadata_ Metadata saved on the organization, that is visible to both your Frontend and Backend APIs.
+- _privateMetadata_ Metadata saved on the organization, that is only visible to your Backend API.
+
+```js
+const organization = await clerkAPI.organizations.updateOrganizationMetadata({
+ publicMetadata: { color: 'blue' },
+ privateMetadata: { sandbox_mode: true },
+});
+```
+
## Session operations
Session operations are exposed by the `sessions` sub-api (`clerkAPI.sessions`).
diff --git a/packages/backend-core/src/__tests__/apis/OrganizationApi.test.ts b/packages/backend-core/src/__tests__/apis/OrganizationApi.test.ts
index 7e44b3fd12d..ec6abe51abd 100644
--- a/packages/backend-core/src/__tests__/apis/OrganizationApi.test.ts
+++ b/packages/backend-core/src/__tests__/apis/OrganizationApi.test.ts
@@ -49,3 +49,40 @@ test('createOrganization() creates an organization', async () => {
}),
);
});
+
+test('updateOrganizationMetadata() updates organization metadata', async () => {
+ const id = 'org_randomid';
+ const publicMetadata = { hello: 'world' };
+ const privateMetadata = { goodbye: 'world' };
+ const resJSON = {
+ object: 'organization',
+ id,
+ name: 'Org',
+ public_metadata: publicMetadata,
+ private_metadata: privateMetadata,
+ created_at: 1611948436,
+ updated_at: 1611948436,
+ };
+
+ nock('https://api.clerk.dev')
+ .patch(`/v1/organizations/${id}/metadata`, {
+ public_metadata: JSON.stringify(publicMetadata),
+ private_metadata: JSON.stringify(privateMetadata),
+ })
+ .reply(200, resJSON);
+
+ const organization = await TestBackendAPIClient.organizations.updateOrganizationMetadata(id, {
+ publicMetadata,
+ privateMetadata,
+ });
+ expect(organization).toEqual(
+ new Organization({
+ id,
+ name: resJSON.name,
+ publicMetadata,
+ privateMetadata,
+ createdAt: resJSON.created_at,
+ updatedAt: resJSON.updated_at,
+ }),
+ );
+});
diff --git a/packages/backend-core/src/api/collection/OrganizationApi.ts b/packages/backend-core/src/api/collection/OrganizationApi.ts
index 135aaf504a6..c8bbba12d69 100644
--- a/packages/backend-core/src/api/collection/OrganizationApi.ts
+++ b/packages/backend-core/src/api/collection/OrganizationApi.ts
@@ -19,6 +19,8 @@ type OrganizationMetadataRequestBody = {
privateMetadata?: string;
};
+type UpdateMetadataParams = OrganizationMetadataParams;
+
export class OrganizationApi extends AbstractApi {
public async createOrganization(params: CreateParams) {
const { publicMetadata, privateMetadata } = params;
@@ -34,6 +36,16 @@ export class OrganizationApi extends AbstractApi {
},
});
}
+
+ public async updateOrganizationMetadata(organizationId: string, params: UpdateMetadataParams) {
+ this.requireId(organizationId);
+
+ return this._restClient.makeRequest({
+ method: 'PATCH',
+ path: `${basePath}/${organizationId}/metadata`,
+ bodyParams: stringifyMetadataParams(params),
+ });
+ }
}
function stringifyMetadataParams(
From 9e55b7c2cafdcbcf6d8c210e668a22e07580cdb6 Mon Sep 17 00:00:00 2001
From: Nikos Douvlis
Date: Thu, 5 May 2022 21:51:21 +0300
Subject: [PATCH 3/7] fix(clerk-react): Pass initialState directly to
ClerkContextProvider
---
packages/react/src/contexts/ClerkContextProvider.tsx | 9 +++------
packages/react/src/contexts/ClerkProvider.tsx | 5 +++--
packages/react/src/isomorphicClerk.ts | 7 +------
3 files changed, 7 insertions(+), 14 deletions(-)
diff --git a/packages/react/src/contexts/ClerkContextProvider.tsx b/packages/react/src/contexts/ClerkContextProvider.tsx
index 3e42636d9ed..0c12437be12 100644
--- a/packages/react/src/contexts/ClerkContextProvider.tsx
+++ b/packages/react/src/contexts/ClerkContextProvider.tsx
@@ -10,20 +10,17 @@ import { UserContext } from './UserContext';
type ClerkContextWrapperProps = {
isomorphicClerk: IsomorphicClerk;
+ initialState: InitialState | undefined;
children: React.ReactNode;
clerkLoaded: boolean;
};
type ClerkContextProviderState = Resources;
-export function ClerkContextProvider({
- isomorphicClerk,
- children,
- clerkLoaded,
-}: ClerkContextWrapperProps): JSX.Element | null {
+export function ClerkContextProvider(props: ClerkContextWrapperProps): JSX.Element | null {
+ const { isomorphicClerk, children, clerkLoaded, initialState } = props;
const clerk = isomorphicClerk;
- const initialState = clerk.initialState;
const [state, setState] = React.useState({
client: clerk.client as ClientResource,
session: clerk.session,
diff --git a/packages/react/src/contexts/ClerkProvider.tsx b/packages/react/src/contexts/ClerkProvider.tsx
index d85b5ec1ddd..fa124c3e74c 100644
--- a/packages/react/src/contexts/ClerkProvider.tsx
+++ b/packages/react/src/contexts/ClerkProvider.tsx
@@ -18,8 +18,8 @@ function ClerkProviderBase(props: ClerkProviderProps): JSX.Element {
const [clerkLoaded, setClerkLoaded] = useState(false);
const clerk = useMemo(() => {
- const { frontendApi = '', Clerk: ClerkConstructor, initialState, ...options } = props;
- return IsomorphicClerk.getOrCreateInstance({ frontendApi, options, Clerk: ClerkConstructor, initialState });
+ const { frontendApi = '', Clerk: ClerkConstructor, ...options } = props;
+ return IsomorphicClerk.getOrCreateInstance({ frontendApi, options, Clerk: ClerkConstructor });
}, []);
useEffect(() => {
@@ -29,6 +29,7 @@ function ClerkProviderBase(props: ClerkProviderProps): JSX.Element {
return (
diff --git a/packages/react/src/isomorphicClerk.ts b/packages/react/src/isomorphicClerk.ts
index 17ec79d976c..cb390cf7070 100644
--- a/packages/react/src/isomorphicClerk.ts
+++ b/packages/react/src/isomorphicClerk.ts
@@ -5,7 +5,6 @@ import type {
CreateOrganizationParams,
HandleMagicLinkVerificationParams,
HandleOAuthCallbackParams,
- InitialState,
OrganizationMembershipResource,
OrganizationResource,
RedirectOptions,
@@ -39,7 +38,6 @@ type NewIsomorphicClerkParams = {
frontendApi: string;
options: IsomorphicClerkOptions;
Clerk: ClerkProp | null;
- initialState?: InitialState;
};
export default class IsomorphicClerk {
@@ -59,8 +57,6 @@ export default class IsomorphicClerk {
#loaded = false;
- initialState: InitialState | undefined;
-
get loaded(): boolean {
return this.#loaded;
}
@@ -79,11 +75,10 @@ export default class IsomorphicClerk {
throw new Error('An IsomorphicClerk instance already exists. Use IsomorphicClerk.getOrCreateInstance instead');
}
- const { Clerk = null, frontendApi, initialState, options = {} } = params || {};
+ const { Clerk = null, frontendApi, options = {} } = params || {};
this.frontendApi = frontendApi;
this.options = options;
this.Clerk = Clerk;
- this.initialState = initialState;
this.mode = inClientSide() ? 'browser' : 'server';
}
From 91b62175cadd82b38747cc6d7a0216f42c89b5fe Mon Sep 17 00:00:00 2001
From: Nikos Douvlis
Date: Fri, 6 May 2022 00:29:47 +0300
Subject: [PATCH 4/7] fix(clerk-react): Make isomorphicClerk loading idempotent
---
.../src/contexts/ClerkContextProvider.tsx | 24 +++++++++++++------
packages/react/src/contexts/ClerkProvider.tsx | 21 ++++------------
packages/react/src/isomorphicClerk.ts | 7 +++---
3 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/packages/react/src/contexts/ClerkContextProvider.tsx b/packages/react/src/contexts/ClerkContextProvider.tsx
index 0c12437be12..02d766e5f5b 100644
--- a/packages/react/src/contexts/ClerkContextProvider.tsx
+++ b/packages/react/src/contexts/ClerkContextProvider.tsx
@@ -1,25 +1,24 @@
import { ActiveSessionResource, ClientResource, InitialState, Resources, UserResource } from '@clerk/types';
import React from 'react';
-import IsomorphicClerk from '../isomorphicClerk';
+import IsomorphicClerk, { NewIsomorphicClerkParams } from '../isomorphicClerk';
import { AuthContext } from './AuthContext';
import { ClientContext } from './ClientContext';
import { IsomorphicClerkContext } from './IsomorphicClerkContext';
import { SessionContext } from './SessionContext';
import { UserContext } from './UserContext';
-type ClerkContextWrapperProps = {
- isomorphicClerk: IsomorphicClerk;
+type ClerkContextProvider = {
+ isomorphicClerkOptions: NewIsomorphicClerkParams;
initialState: InitialState | undefined;
children: React.ReactNode;
- clerkLoaded: boolean;
};
type ClerkContextProviderState = Resources;
-export function ClerkContextProvider(props: ClerkContextWrapperProps): JSX.Element | null {
- const { isomorphicClerk, children, clerkLoaded, initialState } = props;
- const clerk = isomorphicClerk;
+export function ClerkContextProvider(props: ClerkContextProvider): JSX.Element | null {
+ const { isomorphicClerkOptions, initialState, children } = props;
+ const { isomorphicClerk: clerk, loaded: clerkLoaded } = useLoadedIsomorphicClerk(isomorphicClerkOptions);
const [state, setState] = React.useState({
client: clerk.client as ClientResource,
@@ -62,6 +61,17 @@ export function ClerkContextProvider(props: ClerkContextWrapperProps): JSX.Eleme
);
}
+const useLoadedIsomorphicClerk = (options: NewIsomorphicClerkParams) => {
+ const [loaded, setLoaded] = React.useState(false);
+ const isomorphicClerk = React.useMemo(() => IsomorphicClerk.getOrCreateInstance(options), []);
+
+ React.useEffect(() => {
+ isomorphicClerk.addOnLoaded(() => setLoaded(true));
+ }, []);
+
+ return { isomorphicClerk, loaded };
+};
+
// This should be provided from isomorphicClerk
// TODO: move inside isomorphicClerk
function deriveState(
diff --git a/packages/react/src/contexts/ClerkProvider.tsx b/packages/react/src/contexts/ClerkProvider.tsx
index fa124c3e74c..bb78782d808 100644
--- a/packages/react/src/contexts/ClerkProvider.tsx
+++ b/packages/react/src/contexts/ClerkProvider.tsx
@@ -1,8 +1,7 @@
import { InitialState } from '@clerk/types';
-import React, { useEffect, useMemo, useState } from 'react';
+import React from 'react';
import { multipleClerkProvidersError } from '../errors';
-import IsomorphicClerk from '../isomorphicClerk';
import type { IsomorphicClerkOptions } from '../types';
import { withMaxAllowedInstancesGuard } from '../utils';
import { ClerkContextProvider } from './ClerkContextProvider';
@@ -15,25 +14,15 @@ export interface ClerkProviderProps extends IsomorphicClerkOptions {
}
function ClerkProviderBase(props: ClerkProviderProps): JSX.Element {
- const [clerkLoaded, setClerkLoaded] = useState(false);
-
- const clerk = useMemo(() => {
- const { frontendApi = '', Clerk: ClerkConstructor, ...options } = props;
- return IsomorphicClerk.getOrCreateInstance({ frontendApi, options, Clerk: ClerkConstructor });
- }, []);
-
- useEffect(() => {
- void clerk.loadClerkJS().then(() => setClerkLoaded(true));
- }, []);
+ const { initialState, children, Clerk, frontendApi, ...options } = props;
return (
- {props.children}
+ {children}
);
diff --git a/packages/react/src/isomorphicClerk.ts b/packages/react/src/isomorphicClerk.ts
index cb390cf7070..98c2ce65761 100644
--- a/packages/react/src/isomorphicClerk.ts
+++ b/packages/react/src/isomorphicClerk.ts
@@ -34,14 +34,14 @@ type MethodName = {
}[keyof T];
type MethodCallback = () => void;
-type NewIsomorphicClerkParams = {
+export type NewIsomorphicClerkParams = {
frontendApi: string;
options: IsomorphicClerkOptions;
Clerk: ClerkProp | null;
};
export default class IsomorphicClerk {
- private mode: string;
+ private mode: 'browser' | 'server';
private frontendApi: string;
private options: IsomorphicClerkOptions;
private Clerk: ClerkProp;
@@ -80,10 +80,11 @@ export default class IsomorphicClerk {
this.options = options;
this.Clerk = Clerk;
this.mode = inClientSide() ? 'browser' : 'server';
+ void this.loadClerkJS();
}
async loadClerkJS(): Promise {
- if (this.#loaded) {
+ if (this.mode !== 'browser' || this.#loaded) {
return;
}
From d22b808cf9eee2570be83f247fd25543a0202fd6 Mon Sep 17 00:00:00 2001
From: Nikos Douvlis
Date: Fri, 6 May 2022 01:03:13 +0300
Subject: [PATCH 5/7] fix(clerk-react): Make getOrCreateInstance handle both
SSR and CSR instantiation
---
packages/react/src/isomorphicClerk.ts | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/packages/react/src/isomorphicClerk.ts b/packages/react/src/isomorphicClerk.ts
index 98c2ce65761..516ba6cc5d2 100644
--- a/packages/react/src/isomorphicClerk.ts
+++ b/packages/react/src/isomorphicClerk.ts
@@ -64,17 +64,16 @@ export default class IsomorphicClerk {
static #instance: IsomorphicClerk;
static getOrCreateInstance(params: NewIsomorphicClerkParams) {
- if (!this.#instance) {
+ // During SSR: a new instance should be created for every request
+ // During CSR: use the cached instance for the whole lifetime of the app
+ // This method should be idempotent in both scenarios
+ if (!inClientSide() || !this.#instance) {
this.#instance = new IsomorphicClerk(params);
}
return this.#instance;
}
constructor(params: NewIsomorphicClerkParams) {
- if (IsomorphicClerk.#instance) {
- throw new Error('An IsomorphicClerk instance already exists. Use IsomorphicClerk.getOrCreateInstance instead');
- }
-
const { Clerk = null, frontendApi, options = {} } = params || {};
this.frontendApi = frontendApi;
this.options = options;
From 6da7041e06b467616390516ce941f05789147150 Mon Sep 17 00:00:00 2001
From: Nikos Douvlis
Date: Fri, 6 May 2022 01:08:12 +0300
Subject: [PATCH 6/7] chore(release): Publish
- @clerk/clerk-expo@0.9.19-staging.0
- @clerk/nextjs@3.5.2-staging.0
- @clerk/clerk-react@3.2.13-staging.0
- @clerk/remix@0.3.17-staging.0
---
package-lock.json | 44 ++++++++++++++++++++++++++++--------
packages/expo/CHANGELOG.md | 4 ++++
packages/expo/package.json | 4 ++--
packages/nextjs/CHANGELOG.md | 4 ++++
packages/nextjs/package.json | 4 ++--
packages/react/CHANGELOG.md | 8 +++++++
packages/react/package.json | 2 +-
packages/react/src/info.ts | 2 +-
packages/remix/CHANGELOG.md | 4 ++++
packages/remix/package.json | 4 ++--
10 files changed, 62 insertions(+), 18 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 865501923bb..14c0b6323be 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -34892,11 +34892,11 @@
},
"packages/expo": {
"name": "@clerk/clerk-expo",
- "version": "0.9.18",
+ "version": "0.9.19-staging.0",
"license": "MIT",
"dependencies": {
"@clerk/clerk-js": "^3.10.0",
- "@clerk/clerk-react": "^3.2.12",
+ "@clerk/clerk-react": "^3.2.13-staging.0",
"base-64": "^1.0.0"
},
"devDependencies": {
@@ -34958,6 +34958,21 @@
"tslib": "^2.3.1"
}
},
+ "packages/gatsby-plugin-clerk/node_modules/@clerk/clerk-react": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmjs.org/@clerk/clerk-react/-/clerk-react-3.2.11.tgz",
+ "integrity": "sha512-rtTUagchK0029yz7hU5GVNcuihX5N3Wo4KIVg7W6DtS+zJC1Jr6CePGf7EARCLJAZsrkL8SaGJ+uisA1pfsPGw==",
+ "dependencies": {
+ "@clerk/types": "^2.8.0",
+ "tslib": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "react": ">=16"
+ }
+ },
"packages/gatsby-plugin-clerk/node_modules/@clerk/clerk-sdk-node": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/@clerk/clerk-sdk-node/-/clerk-sdk-node-3.3.5.tgz",
@@ -35045,10 +35060,10 @@
},
"packages/nextjs": {
"name": "@clerk/nextjs",
- "version": "3.5.1",
+ "version": "3.5.2-staging.0",
"license": "MIT",
"dependencies": {
- "@clerk/clerk-react": "^3.2.12",
+ "@clerk/clerk-react": "^3.2.13-staging.0",
"@clerk/clerk-sdk-node": "^3.3.11",
"@clerk/edge": "^1.3.8",
"@clerk/types": "^2.9.0",
@@ -35081,7 +35096,7 @@
},
"packages/react": {
"name": "@clerk/clerk-react",
- "version": "3.2.12",
+ "version": "3.2.13-staging.0",
"license": "MIT",
"dependencies": {
"@clerk/types": "^2.9.0",
@@ -35121,10 +35136,10 @@
},
"packages/remix": {
"name": "@clerk/remix",
- "version": "0.3.16",
+ "version": "0.3.17-staging.0",
"license": "MIT",
"dependencies": {
- "@clerk/clerk-react": "^3.2.12",
+ "@clerk/clerk-react": "^3.2.13-staging.0",
"@clerk/clerk-sdk-node": "^3.3.11",
"@clerk/types": "^2.9.0",
"cookie": "^0.5.0",
@@ -36580,7 +36595,7 @@
"version": "file:packages/expo",
"requires": {
"@clerk/clerk-js": "^3.10.0",
- "@clerk/clerk-react": "^3.2.12",
+ "@clerk/clerk-react": "^3.2.13-staging.0",
"@clerk/types": "^2.9.0",
"@types/jest": "^27.4.0",
"@types/node": "^16.11.9",
@@ -36807,7 +36822,7 @@
"@clerk/nextjs": {
"version": "file:packages/nextjs",
"requires": {
- "@clerk/clerk-react": "^3.2.12",
+ "@clerk/clerk-react": "^3.2.13-staging.0",
"@clerk/clerk-sdk-node": "^3.3.11",
"@clerk/edge": "^1.3.8",
"@clerk/types": "^2.9.0",
@@ -36835,7 +36850,7 @@
"@clerk/remix": {
"version": "file:packages/remix",
"requires": {
- "@clerk/clerk-react": "^3.2.12",
+ "@clerk/clerk-react": "^3.2.13-staging.0",
"@clerk/clerk-sdk-node": "^3.3.11",
"@clerk/types": "^2.9.0",
"@types/cookie": "^0.5.0",
@@ -49666,6 +49681,15 @@
"tslib": "^2.3.1"
}
},
+ "@clerk/clerk-react": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmjs.org/@clerk/clerk-react/-/clerk-react-3.2.11.tgz",
+ "integrity": "sha512-rtTUagchK0029yz7hU5GVNcuihX5N3Wo4KIVg7W6DtS+zJC1Jr6CePGf7EARCLJAZsrkL8SaGJ+uisA1pfsPGw==",
+ "requires": {
+ "@clerk/types": "^2.8.0",
+ "tslib": "^2.3.1"
+ }
+ },
"@clerk/clerk-sdk-node": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/@clerk/clerk-sdk-node/-/clerk-sdk-node-3.3.5.tgz",
diff --git a/packages/expo/CHANGELOG.md b/packages/expo/CHANGELOG.md
index debb00add12..e9778daf699 100644
--- a/packages/expo/CHANGELOG.md
+++ b/packages/expo/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [0.9.19-staging.0](https://github.com/clerkinc/javascript/compare/@clerk/clerk-expo@0.9.18...@clerk/clerk-expo@0.9.19-staging.0) (2022-05-05)
+
+**Note:** Version bump only for package @clerk/clerk-expo
+
### [0.9.18](https://github.com/clerkinc/javascript/compare/@clerk/clerk-expo@0.9.18-staging.0...@clerk/clerk-expo@0.9.18) (2022-05-05)
**Note:** Version bump only for package @clerk/clerk-expo
diff --git a/packages/expo/package.json b/packages/expo/package.json
index ba085561389..eb51388fd5b 100644
--- a/packages/expo/package.json
+++ b/packages/expo/package.json
@@ -1,6 +1,6 @@
{
"name": "@clerk/clerk-expo",
- "version": "0.9.18",
+ "version": "0.9.19-staging.0",
"license": "MIT",
"description": "Clerk.dev React Native/Expo library",
"keywords": [
@@ -27,7 +27,7 @@
},
"dependencies": {
"@clerk/clerk-js": "^3.10.0",
- "@clerk/clerk-react": "^3.2.12",
+ "@clerk/clerk-react": "^3.2.13-staging.0",
"base-64": "^1.0.0"
},
"devDependencies": {
diff --git a/packages/nextjs/CHANGELOG.md b/packages/nextjs/CHANGELOG.md
index c513bd7463e..29c98f359ef 100644
--- a/packages/nextjs/CHANGELOG.md
+++ b/packages/nextjs/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [3.5.2-staging.0](https://github.com/clerkinc/javascript/compare/@clerk/nextjs@3.5.1...@clerk/nextjs@3.5.2-staging.0) (2022-05-05)
+
+**Note:** Version bump only for package @clerk/nextjs
+
### [3.5.1](https://github.com/clerkinc/javascript/compare/@clerk/nextjs@3.5.1-staging.0...@clerk/nextjs@3.5.1) (2022-05-05)
**Note:** Version bump only for package @clerk/nextjs
diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json
index dcd5d8020d1..f368fd1ae6d 100644
--- a/packages/nextjs/package.json
+++ b/packages/nextjs/package.json
@@ -1,6 +1,6 @@
{
"name": "@clerk/nextjs",
- "version": "3.5.1",
+ "version": "3.5.2-staging.0",
"license": "MIT",
"description": "Clerk.dev SDK for NextJS",
"keywords": [
@@ -32,7 +32,7 @@
"dev": "tsc -p tsconfig.build.json --watch"
},
"dependencies": {
- "@clerk/clerk-react": "^3.2.12",
+ "@clerk/clerk-react": "^3.2.13-staging.0",
"@clerk/clerk-sdk-node": "^3.3.11",
"@clerk/edge": "^1.3.8",
"@clerk/types": "^2.9.0",
diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md
index fc020ca4dff..fae8625f84c 100644
--- a/packages/react/CHANGELOG.md
+++ b/packages/react/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [3.2.13-staging.0](https://github.com/clerkinc/javascript/compare/@clerk/clerk-react@3.2.12...@clerk/clerk-react@3.2.13-staging.0) (2022-05-05)
+
+### Bug Fixes
+
+- **clerk-react:** Make getOrCreateInstance handle both SSR and CSR instantiation ([8f9481c](https://github.com/clerkinc/javascript/commit/8f9481cf088c63b3cd3192cb1396596a98b11980))
+- **clerk-react:** Make isomorphicClerk loading idempotent ([221919c](https://github.com/clerkinc/javascript/commit/221919ceab5ad1631073f8ba7564c869ebf7a890))
+- **clerk-react:** Pass initialState directly to ClerkContextProvider ([cb777d4](https://github.com/clerkinc/javascript/commit/cb777d4651710fda248036fdc5398e0dac7aa337))
+
### [3.2.12](https://github.com/clerkinc/javascript/compare/@clerk/clerk-react@3.2.12-staging.0...@clerk/clerk-react@3.2.12) (2022-05-05)
**Note:** Version bump only for package @clerk/clerk-react
diff --git a/packages/react/package.json b/packages/react/package.json
index 23d0b9ef577..63747db1e0e 100644
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -1,6 +1,6 @@
{
"name": "@clerk/clerk-react",
- "version": "3.2.12",
+ "version": "3.2.13-staging.0",
"license": "MIT",
"description": "Clerk.dev React library",
"keywords": [
diff --git a/packages/react/src/info.ts b/packages/react/src/info.ts
index 358fb5bbddb..7a3ec7960bf 100644
--- a/packages/react/src/info.ts
+++ b/packages/react/src/info.ts
@@ -1,3 +1,3 @@
/** DO NOT EDIT: This file is automatically generated by ../scripts/info.js */
-export const LIB_VERSION = '3.2.12';
+export const LIB_VERSION = '3.2.13-staging.0';
export const LIB_NAME = '@clerk/clerk-react';
diff --git a/packages/remix/CHANGELOG.md b/packages/remix/CHANGELOG.md
index 4bf92980237..9b0582c7d95 100644
--- a/packages/remix/CHANGELOG.md
+++ b/packages/remix/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [0.3.17-staging.0](https://github.com/clerkinc/javascript/compare/@clerk/remix@0.3.16...@clerk/remix@0.3.17-staging.0) (2022-05-05)
+
+**Note:** Version bump only for package @clerk/remix
+
### [0.3.16](https://github.com/clerkinc/javascript/compare/@clerk/remix@0.3.16-staging.0...@clerk/remix@0.3.16) (2022-05-05)
**Note:** Version bump only for package @clerk/remix
diff --git a/packages/remix/package.json b/packages/remix/package.json
index bc27a427567..8bf490418e5 100644
--- a/packages/remix/package.json
+++ b/packages/remix/package.json
@@ -1,6 +1,6 @@
{
"name": "@clerk/remix",
- "version": "0.3.16",
+ "version": "0.3.17-staging.0",
"license": "MIT",
"description": "Clerk.dev SDK for Remix",
"keywords": [
@@ -32,7 +32,7 @@
"dev": "tsc -p tsconfig.build.json --watch"
},
"dependencies": {
- "@clerk/clerk-react": "^3.2.12",
+ "@clerk/clerk-react": "^3.2.13-staging.0",
"@clerk/clerk-sdk-node": "^3.3.11",
"@clerk/types": "^2.9.0",
"cookie": "^0.5.0",
From fa2f20ba6fec276bdb12100f60222519b4571a3f Mon Sep 17 00:00:00 2001
From: Nikos Douvlis
Date: Fri, 6 May 2022 13:52:45 +0300
Subject: [PATCH 7/7] chore(release): Publish
- @clerk/backend-core@1.6.0
- @clerk/clerk-js@3.10.1
- @clerk/edge@1.4.0
- @clerk/clerk-expo@0.9.19
- @clerk/nextjs@3.6.0
- @clerk/clerk-react@3.2.13
- @clerk/remix@0.4.0
- @clerk/clerk-sdk-node@3.4.0
- @clerk/shared@0.2.2
- @clerk/types@2.10.0
---
package-lock.json | 116 ++++++++++++-----------------
packages/backend-core/CHANGELOG.md | 7 ++
packages/backend-core/package.json | 4 +-
packages/clerk-js/CHANGELOG.md | 4 +
packages/clerk-js/package.json | 6 +-
packages/edge/CHANGELOG.md | 6 ++
packages/edge/package.json | 4 +-
packages/edge/src/info.ts | 2 +-
packages/expo/CHANGELOG.md | 4 +
packages/expo/package.json | 8 +-
packages/nextjs/CHANGELOG.md | 6 ++
packages/nextjs/package.json | 10 +--
packages/react/CHANGELOG.md | 8 ++
packages/react/package.json | 4 +-
packages/react/src/info.ts | 2 +-
packages/remix/CHANGELOG.md | 6 ++
packages/remix/package.json | 8 +-
packages/sdk-node/CHANGELOG.md | 6 ++
packages/sdk-node/package.json | 6 +-
packages/sdk-node/src/info.ts | 2 +-
packages/shared/CHANGELOG.md | 4 +
packages/shared/package.json | 4 +-
packages/types/CHANGELOG.md | 6 ++
packages/types/package.json | 2 +-
24 files changed, 134 insertions(+), 101 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 14c0b6323be..2dff61903da 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -34730,10 +34730,10 @@
},
"packages/backend-core": {
"name": "@clerk/backend-core",
- "version": "1.5.6",
+ "version": "1.6.0",
"license": "MIT",
"dependencies": {
- "@clerk/types": "^2.9.0",
+ "@clerk/types": "^2.10.0",
"camelcase-keys": "^7.0.1",
"query-string": "^7.0.1",
"snakecase-keys": "^5.1.2",
@@ -34760,10 +34760,10 @@
},
"packages/clerk-js": {
"name": "@clerk/clerk-js",
- "version": "3.10.0",
+ "version": "3.10.1",
"license": "MIT",
"dependencies": {
- "@clerk/types": "^2.9.0",
+ "@clerk/types": "^2.10.0",
"@popperjs/core": "^2.4.4",
"browser-tabs-lock": "^1.2.15",
"classnames": "^2.3.1",
@@ -34783,7 +34783,7 @@
"@babel/preset-env": "^7.12.1",
"@babel/preset-react": "^7.12.5",
"@babel/preset-typescript": "^7.12.1",
- "@clerk/shared": "^0.2.1",
+ "@clerk/shared": "^0.2.2",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.2",
"@svgr/webpack": "^6.2.1",
"@testing-library/dom": "^7.28.1",
@@ -34866,10 +34866,10 @@
},
"packages/edge": {
"name": "@clerk/edge",
- "version": "1.3.8",
+ "version": "1.4.0",
"license": "MIT",
"dependencies": {
- "@clerk/backend-core": "^1.5.6",
+ "@clerk/backend-core": "^1.6.0",
"@peculiar/webcrypto": "^1.2.3",
"next": "^12.0.7"
},
@@ -34892,15 +34892,15 @@
},
"packages/expo": {
"name": "@clerk/clerk-expo",
- "version": "0.9.19-staging.0",
+ "version": "0.9.19",
"license": "MIT",
"dependencies": {
- "@clerk/clerk-js": "^3.10.0",
- "@clerk/clerk-react": "^3.2.13-staging.0",
+ "@clerk/clerk-js": "^3.10.1",
+ "@clerk/clerk-react": "^3.2.13",
"base-64": "^1.0.0"
},
"devDependencies": {
- "@clerk/types": "^2.9.0",
+ "@clerk/types": "^2.10.0",
"@types/jest": "^27.4.0",
"@types/node": "^16.11.9",
"@types/react": "^17.0.39",
@@ -34958,21 +34958,6 @@
"tslib": "^2.3.1"
}
},
- "packages/gatsby-plugin-clerk/node_modules/@clerk/clerk-react": {
- "version": "3.2.11",
- "resolved": "https://registry.npmjs.org/@clerk/clerk-react/-/clerk-react-3.2.11.tgz",
- "integrity": "sha512-rtTUagchK0029yz7hU5GVNcuihX5N3Wo4KIVg7W6DtS+zJC1Jr6CePGf7EARCLJAZsrkL8SaGJ+uisA1pfsPGw==",
- "dependencies": {
- "@clerk/types": "^2.8.0",
- "tslib": "^2.3.1"
- },
- "engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "react": ">=16"
- }
- },
"packages/gatsby-plugin-clerk/node_modules/@clerk/clerk-sdk-node": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/@clerk/clerk-sdk-node/-/clerk-sdk-node-3.3.5.tgz",
@@ -35060,13 +35045,13 @@
},
"packages/nextjs": {
"name": "@clerk/nextjs",
- "version": "3.5.2-staging.0",
+ "version": "3.6.0",
"license": "MIT",
"dependencies": {
- "@clerk/clerk-react": "^3.2.13-staging.0",
- "@clerk/clerk-sdk-node": "^3.3.11",
- "@clerk/edge": "^1.3.8",
- "@clerk/types": "^2.9.0",
+ "@clerk/clerk-react": "^3.2.13",
+ "@clerk/clerk-sdk-node": "^3.4.0",
+ "@clerk/edge": "^1.4.0",
+ "@clerk/types": "^2.10.0",
"tslib": "^2.3.1"
},
"devDependencies": {
@@ -35096,10 +35081,10 @@
},
"packages/react": {
"name": "@clerk/clerk-react",
- "version": "3.2.13-staging.0",
+ "version": "3.2.13",
"license": "MIT",
"dependencies": {
- "@clerk/types": "^2.9.0",
+ "@clerk/types": "^2.10.0",
"tslib": "^2.3.1"
},
"devDependencies": {
@@ -35136,12 +35121,12 @@
},
"packages/remix": {
"name": "@clerk/remix",
- "version": "0.3.17-staging.0",
+ "version": "0.4.0",
"license": "MIT",
"dependencies": {
- "@clerk/clerk-react": "^3.2.13-staging.0",
- "@clerk/clerk-sdk-node": "^3.3.11",
- "@clerk/types": "^2.9.0",
+ "@clerk/clerk-react": "^3.2.13",
+ "@clerk/clerk-sdk-node": "^3.4.0",
+ "@clerk/types": "^2.10.0",
"cookie": "^0.5.0",
"tslib": "^2.3.1"
},
@@ -35188,11 +35173,11 @@
},
"packages/sdk-node": {
"name": "@clerk/clerk-sdk-node",
- "version": "3.3.11",
+ "version": "3.4.0",
"license": "MIT",
"dependencies": {
- "@clerk/backend-core": "^1.5.6",
- "@clerk/types": "^2.9.0",
+ "@clerk/backend-core": "^1.6.0",
+ "@clerk/types": "^2.10.0",
"@peculiar/webcrypto": "^1.2.3",
"camelcase-keys": "^6.2.2",
"cookies": "^0.8.0",
@@ -35265,12 +35250,12 @@
},
"packages/shared": {
"name": "@clerk/shared",
- "version": "0.2.1",
+ "version": "0.2.2",
"devDependencies": {
"@babel/core": "^7.13.14",
"@babel/preset-env": "^7.13.12",
"@babel/preset-react": "^7.13.13",
- "@clerk/types": "^2.9.0",
+ "@clerk/types": "^2.10.0",
"@popperjs/core": "^2.5.4",
"@sentry/browser": "^6.3.0",
"@svgr/webpack": "^6.2.1",
@@ -35324,7 +35309,7 @@
},
"packages/types": {
"name": "@clerk/types",
- "version": "2.9.0",
+ "version": "2.10.0",
"license": "MIT",
"devDependencies": {
"@types/jest": "^27.4.0",
@@ -36566,7 +36551,7 @@
"@clerk/backend-core": {
"version": "file:packages/backend-core",
"requires": {
- "@clerk/types": "^2.9.0",
+ "@clerk/types": "^2.10.0",
"@peculiar/webcrypto": "^1.3.2",
"@types/jest": "^27.4.0",
"@types/node": "^16.11.12",
@@ -36594,9 +36579,9 @@
"@clerk/clerk-expo": {
"version": "file:packages/expo",
"requires": {
- "@clerk/clerk-js": "^3.10.0",
- "@clerk/clerk-react": "^3.2.13-staging.0",
- "@clerk/types": "^2.9.0",
+ "@clerk/clerk-js": "^3.10.1",
+ "@clerk/clerk-react": "^3.2.13",
+ "@clerk/types": "^2.10.0",
"@types/jest": "^27.4.0",
"@types/node": "^16.11.9",
"@types/react": "^17.0.39",
@@ -36627,8 +36612,8 @@
"@babel/preset-env": "^7.12.1",
"@babel/preset-react": "^7.12.5",
"@babel/preset-typescript": "^7.12.1",
- "@clerk/shared": "^0.2.1",
- "@clerk/types": "^2.9.0",
+ "@clerk/shared": "^0.2.2",
+ "@clerk/types": "^2.10.0",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.2",
"@popperjs/core": "^2.4.4",
"@svgr/webpack": "^6.2.1",
@@ -36712,7 +36697,7 @@
"@clerk/clerk-react": {
"version": "file:packages/react",
"requires": {
- "@clerk/types": "^2.9.0",
+ "@clerk/types": "^2.10.0",
"@testing-library/dom": "^7.28.1",
"@testing-library/jest-dom": "^5.11.6",
"@testing-library/react": "^11.2.1",
@@ -36744,8 +36729,8 @@
"@clerk/clerk-sdk-node": {
"version": "file:packages/sdk-node",
"requires": {
- "@clerk/backend-core": "^1.5.6",
- "@clerk/types": "^2.9.0",
+ "@clerk/backend-core": "^1.6.0",
+ "@clerk/types": "^2.10.0",
"@peculiar/webcrypto": "^1.2.3",
"@types/cookies": "^0.7.7",
"@types/express": "^4.17.11",
@@ -36801,7 +36786,7 @@
"@clerk/edge": {
"version": "file:packages/edge",
"requires": {
- "@clerk/backend-core": "^1.5.6",
+ "@clerk/backend-core": "^1.6.0",
"@peculiar/webcrypto": "^1.2.3",
"@types/jest": "^27.4.0",
"@types/node": "^16.11.12",
@@ -36822,10 +36807,10 @@
"@clerk/nextjs": {
"version": "file:packages/nextjs",
"requires": {
- "@clerk/clerk-react": "^3.2.13-staging.0",
- "@clerk/clerk-sdk-node": "^3.3.11",
- "@clerk/edge": "^1.3.8",
- "@clerk/types": "^2.9.0",
+ "@clerk/clerk-react": "^3.2.13",
+ "@clerk/clerk-sdk-node": "^3.4.0",
+ "@clerk/edge": "^1.4.0",
+ "@clerk/types": "^2.10.0",
"@types/jest": "^27.4.0",
"@types/node": "^16.11.9",
"@types/react": "^17.0.39",
@@ -36850,9 +36835,9 @@
"@clerk/remix": {
"version": "file:packages/remix",
"requires": {
- "@clerk/clerk-react": "^3.2.13-staging.0",
- "@clerk/clerk-sdk-node": "^3.3.11",
- "@clerk/types": "^2.9.0",
+ "@clerk/clerk-react": "^3.2.13",
+ "@clerk/clerk-sdk-node": "^3.4.0",
+ "@clerk/types": "^2.10.0",
"@types/cookie": "^0.5.0",
"@types/jest": "^27.4.0",
"@types/node": "^16.11.9",
@@ -36892,7 +36877,7 @@
"@babel/core": "^7.13.14",
"@babel/preset-env": "^7.13.12",
"@babel/preset-react": "^7.13.13",
- "@clerk/types": "^2.9.0",
+ "@clerk/types": "^2.10.0",
"@popperjs/core": "^2.5.4",
"@sentry/browser": "^6.3.0",
"@svgr/webpack": "^6.2.1",
@@ -49681,15 +49666,6 @@
"tslib": "^2.3.1"
}
},
- "@clerk/clerk-react": {
- "version": "3.2.11",
- "resolved": "https://registry.npmjs.org/@clerk/clerk-react/-/clerk-react-3.2.11.tgz",
- "integrity": "sha512-rtTUagchK0029yz7hU5GVNcuihX5N3Wo4KIVg7W6DtS+zJC1Jr6CePGf7EARCLJAZsrkL8SaGJ+uisA1pfsPGw==",
- "requires": {
- "@clerk/types": "^2.8.0",
- "tslib": "^2.3.1"
- }
- },
"@clerk/clerk-sdk-node": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/@clerk/clerk-sdk-node/-/clerk-sdk-node-3.3.5.tgz",
diff --git a/packages/backend-core/CHANGELOG.md b/packages/backend-core/CHANGELOG.md
index ae7fa7de687..b9999d00bbf 100644
--- a/packages/backend-core/CHANGELOG.md
+++ b/packages/backend-core/CHANGELOG.md
@@ -3,6 +3,13 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.6.0](https://github.com/clerkinc/javascript/compare/@clerk/backend-core@1.5.6...@clerk/backend-core@1.6.0) (2022-05-06)
+
+### Features
+
+- **backend-core:** Update organization metadata ([ad496f9](https://github.com/clerkinc/javascript/commit/ad496f95b27dd6286f94399d485bbcd774d90a2d))
+- **nextjs,clerk-sdk-node,remix:** Add claims attribute to req.auth ([c695529](https://github.com/clerkinc/javascript/commit/c695529089f55baef72b86e3b73b8cd9f4f58e6d))
+
### [1.5.6](https://github.com/clerkinc/javascript/compare/@clerk/backend-core@1.5.6-staging.0...@clerk/backend-core@1.5.6) (2022-05-05)
**Note:** Version bump only for package @clerk/backend-core
diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json
index b81254b5b8a..123cd84e96d 100644
--- a/packages/backend-core/package.json
+++ b/packages/backend-core/package.json
@@ -1,6 +1,6 @@
{
"name": "@clerk/backend-core",
- "version": "1.5.6",
+ "version": "1.6.0",
"license": "MIT",
"description": "Clerk Backend API core resources and authentication utilities for JavaScript environments.",
"scripts": {
@@ -12,7 +12,7 @@
"main": "dist/cjs/index.js",
"module": "dist/mjs/index.js",
"dependencies": {
- "@clerk/types": "^2.9.0",
+ "@clerk/types": "^2.10.0",
"camelcase-keys": "^7.0.1",
"query-string": "^7.0.1",
"snakecase-keys": "^5.1.2",
diff --git a/packages/clerk-js/CHANGELOG.md b/packages/clerk-js/CHANGELOG.md
index f1f557b9d50..a96b26140ff 100644
--- a/packages/clerk-js/CHANGELOG.md
+++ b/packages/clerk-js/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [3.10.1](https://github.com/clerkinc/javascript/compare/@clerk/clerk-js@3.10.0...@clerk/clerk-js@3.10.1) (2022-05-06)
+
+**Note:** Version bump only for package @clerk/clerk-js
+
## [3.10.0](https://github.com/clerkinc/javascript/compare/@clerk/clerk-js@3.10.0-staging.0...@clerk/clerk-js@3.10.0) (2022-05-05)
**Note:** Version bump only for package @clerk/clerk-js
diff --git a/packages/clerk-js/package.json b/packages/clerk-js/package.json
index 085db9a59e2..05a7b57e4a0 100644
--- a/packages/clerk-js/package.json
+++ b/packages/clerk-js/package.json
@@ -1,6 +1,6 @@
{
"name": "@clerk/clerk-js",
- "version": "3.10.0",
+ "version": "3.10.1",
"license": "MIT",
"description": "Clerk.dev JS library",
"keywords": [
@@ -38,7 +38,7 @@
"test:coverage": "jest --collectCoverage"
},
"dependencies": {
- "@clerk/types": "^2.9.0",
+ "@clerk/types": "^2.10.0",
"@popperjs/core": "^2.4.4",
"browser-tabs-lock": "^1.2.15",
"classnames": "^2.3.1",
@@ -58,7 +58,7 @@
"@babel/preset-env": "^7.12.1",
"@babel/preset-react": "^7.12.5",
"@babel/preset-typescript": "^7.12.1",
- "@clerk/shared": "^0.2.1",
+ "@clerk/shared": "^0.2.2",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.2",
"@svgr/webpack": "^6.2.1",
"@testing-library/dom": "^7.28.1",
diff --git a/packages/edge/CHANGELOG.md b/packages/edge/CHANGELOG.md
index f63bf4d59ba..de98f787810 100644
--- a/packages/edge/CHANGELOG.md
+++ b/packages/edge/CHANGELOG.md
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.4.0](https://github.com/clerkinc/javascript/compare/@clerk/edge@1.3.8...@clerk/edge@1.4.0) (2022-05-06)
+
+### Features
+
+- **nextjs,clerk-sdk-node,remix:** Add claims attribute to req.auth ([c695529](https://github.com/clerkinc/javascript/commit/c695529089f55baef72b86e3b73b8cd9f4f58e6d))
+
### [1.3.8](https://github.com/clerkinc/javascript/compare/@clerk/edge@1.3.8-staging.0...@clerk/edge@1.3.8) (2022-05-05)
**Note:** Version bump only for package @clerk/edge
diff --git a/packages/edge/package.json b/packages/edge/package.json
index 326db4c0845..ab999fb8605 100644
--- a/packages/edge/package.json
+++ b/packages/edge/package.json
@@ -1,6 +1,6 @@
{
"name": "@clerk/edge",
- "version": "1.3.8",
+ "version": "1.4.0",
"license": "MIT",
"description": "Clerk SDK for serverless and edge environments",
"keywords": [
@@ -36,7 +36,7 @@
"build": "node ./scripts/info.cjs && tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json && ./moduleTypeFix"
},
"dependencies": {
- "@clerk/backend-core": "^1.5.6",
+ "@clerk/backend-core": "^1.6.0",
"@peculiar/webcrypto": "^1.2.3",
"next": "^12.0.7"
},
diff --git a/packages/edge/src/info.ts b/packages/edge/src/info.ts
index fd2bd57d246..3e21203df16 100644
--- a/packages/edge/src/info.ts
+++ b/packages/edge/src/info.ts
@@ -1,3 +1,3 @@
/** DO NOT EDIT: This file is automatically generated by ../scripts/info.js */
-export const LIB_VERSION = '1.3.8';
+export const LIB_VERSION = '1.4.0';
export const LIB_NAME = '@clerk/edge';
diff --git a/packages/expo/CHANGELOG.md b/packages/expo/CHANGELOG.md
index e9778daf699..36e62dec08b 100644
--- a/packages/expo/CHANGELOG.md
+++ b/packages/expo/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [0.9.19](https://github.com/clerkinc/javascript/compare/@clerk/clerk-expo@0.9.18...@clerk/clerk-expo@0.9.19) (2022-05-06)
+
+**Note:** Version bump only for package @clerk/clerk-expo
+
### [0.9.19-staging.0](https://github.com/clerkinc/javascript/compare/@clerk/clerk-expo@0.9.18...@clerk/clerk-expo@0.9.19-staging.0) (2022-05-05)
**Note:** Version bump only for package @clerk/clerk-expo
diff --git a/packages/expo/package.json b/packages/expo/package.json
index eb51388fd5b..23c00815ef5 100644
--- a/packages/expo/package.json
+++ b/packages/expo/package.json
@@ -1,6 +1,6 @@
{
"name": "@clerk/clerk-expo",
- "version": "0.9.19-staging.0",
+ "version": "0.9.19",
"license": "MIT",
"description": "Clerk.dev React Native/Expo library",
"keywords": [
@@ -26,12 +26,12 @@
"dev": "tsc -p tsconfig.build.json --watch"
},
"dependencies": {
- "@clerk/clerk-js": "^3.10.0",
- "@clerk/clerk-react": "^3.2.13-staging.0",
+ "@clerk/clerk-js": "^3.10.1",
+ "@clerk/clerk-react": "^3.2.13",
"base-64": "^1.0.0"
},
"devDependencies": {
- "@clerk/types": "^2.9.0",
+ "@clerk/types": "^2.10.0",
"@types/jest": "^27.4.0",
"@types/node": "^16.11.9",
"@types/react": "^17.0.39",
diff --git a/packages/nextjs/CHANGELOG.md b/packages/nextjs/CHANGELOG.md
index 29c98f359ef..1b3aae57205 100644
--- a/packages/nextjs/CHANGELOG.md
+++ b/packages/nextjs/CHANGELOG.md
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [3.6.0](https://github.com/clerkinc/javascript/compare/@clerk/nextjs@3.5.1...@clerk/nextjs@3.6.0) (2022-05-06)
+
+### Features
+
+- **nextjs,clerk-sdk-node,remix:** Add claims attribute to req.auth ([c695529](https://github.com/clerkinc/javascript/commit/c695529089f55baef72b86e3b73b8cd9f4f58e6d))
+
### [3.5.2-staging.0](https://github.com/clerkinc/javascript/compare/@clerk/nextjs@3.5.1...@clerk/nextjs@3.5.2-staging.0) (2022-05-05)
**Note:** Version bump only for package @clerk/nextjs
diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json
index f368fd1ae6d..0a06b8acfcd 100644
--- a/packages/nextjs/package.json
+++ b/packages/nextjs/package.json
@@ -1,6 +1,6 @@
{
"name": "@clerk/nextjs",
- "version": "3.5.2-staging.0",
+ "version": "3.6.0",
"license": "MIT",
"description": "Clerk.dev SDK for NextJS",
"keywords": [
@@ -32,10 +32,10 @@
"dev": "tsc -p tsconfig.build.json --watch"
},
"dependencies": {
- "@clerk/clerk-react": "^3.2.13-staging.0",
- "@clerk/clerk-sdk-node": "^3.3.11",
- "@clerk/edge": "^1.3.8",
- "@clerk/types": "^2.9.0",
+ "@clerk/clerk-react": "^3.2.13",
+ "@clerk/clerk-sdk-node": "^3.4.0",
+ "@clerk/edge": "^1.4.0",
+ "@clerk/types": "^2.10.0",
"tslib": "^2.3.1"
},
"devDependencies": {
diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md
index fae8625f84c..3fe2a9ce275 100644
--- a/packages/react/CHANGELOG.md
+++ b/packages/react/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [3.2.13](https://github.com/clerkinc/javascript/compare/@clerk/clerk-react@3.2.12...@clerk/clerk-react@3.2.13) (2022-05-06)
+
+### Bug Fixes
+
+- **clerk-react:** Make getOrCreateInstance handle both SSR and CSR instantiation ([d22b808](https://github.com/clerkinc/javascript/commit/d22b808cf9eee2570be83f247fd25543a0202fd6))
+- **clerk-react:** Make isomorphicClerk loading idempotent ([91b6217](https://github.com/clerkinc/javascript/commit/91b62175cadd82b38747cc6d7a0216f42c89b5fe))
+- **clerk-react:** Pass initialState directly to ClerkContextProvider ([9e55b7c](https://github.com/clerkinc/javascript/commit/9e55b7c2cafdcbcf6d8c210e668a22e07580cdb6))
+
### [3.2.13-staging.0](https://github.com/clerkinc/javascript/compare/@clerk/clerk-react@3.2.12...@clerk/clerk-react@3.2.13-staging.0) (2022-05-05)
### Bug Fixes
diff --git a/packages/react/package.json b/packages/react/package.json
index 63747db1e0e..362b6b77381 100644
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -1,6 +1,6 @@
{
"name": "@clerk/clerk-react",
- "version": "3.2.13-staging.0",
+ "version": "3.2.13",
"license": "MIT",
"description": "Clerk.dev React library",
"keywords": [
@@ -28,7 +28,7 @@
"test": "jest"
},
"dependencies": {
- "@clerk/types": "^2.9.0",
+ "@clerk/types": "^2.10.0",
"tslib": "^2.3.1"
},
"devDependencies": {
diff --git a/packages/react/src/info.ts b/packages/react/src/info.ts
index 7a3ec7960bf..d99b6d377f6 100644
--- a/packages/react/src/info.ts
+++ b/packages/react/src/info.ts
@@ -1,3 +1,3 @@
/** DO NOT EDIT: This file is automatically generated by ../scripts/info.js */
-export const LIB_VERSION = '3.2.13-staging.0';
+export const LIB_VERSION = '3.2.13';
export const LIB_NAME = '@clerk/clerk-react';
diff --git a/packages/remix/CHANGELOG.md b/packages/remix/CHANGELOG.md
index 9b0582c7d95..78fd1e0cfe2 100644
--- a/packages/remix/CHANGELOG.md
+++ b/packages/remix/CHANGELOG.md
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.4.0](https://github.com/clerkinc/javascript/compare/@clerk/remix@0.3.16...@clerk/remix@0.4.0) (2022-05-06)
+
+### Features
+
+- **nextjs,clerk-sdk-node,remix:** Add claims attribute to req.auth ([c695529](https://github.com/clerkinc/javascript/commit/c695529089f55baef72b86e3b73b8cd9f4f58e6d))
+
### [0.3.17-staging.0](https://github.com/clerkinc/javascript/compare/@clerk/remix@0.3.16...@clerk/remix@0.3.17-staging.0) (2022-05-05)
**Note:** Version bump only for package @clerk/remix
diff --git a/packages/remix/package.json b/packages/remix/package.json
index 8bf490418e5..009d3a1b88b 100644
--- a/packages/remix/package.json
+++ b/packages/remix/package.json
@@ -1,6 +1,6 @@
{
"name": "@clerk/remix",
- "version": "0.3.17-staging.0",
+ "version": "0.4.0",
"license": "MIT",
"description": "Clerk.dev SDK for Remix",
"keywords": [
@@ -32,9 +32,9 @@
"dev": "tsc -p tsconfig.build.json --watch"
},
"dependencies": {
- "@clerk/clerk-react": "^3.2.13-staging.0",
- "@clerk/clerk-sdk-node": "^3.3.11",
- "@clerk/types": "^2.9.0",
+ "@clerk/clerk-react": "^3.2.13",
+ "@clerk/clerk-sdk-node": "^3.4.0",
+ "@clerk/types": "^2.10.0",
"cookie": "^0.5.0",
"tslib": "^2.3.1"
},
diff --git a/packages/sdk-node/CHANGELOG.md b/packages/sdk-node/CHANGELOG.md
index c233f8c0ebd..d0448df1e03 100644
--- a/packages/sdk-node/CHANGELOG.md
+++ b/packages/sdk-node/CHANGELOG.md
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [3.4.0](https://github.com/clerkinc/javascript/compare/@clerk/clerk-sdk-node@3.3.11...@clerk/clerk-sdk-node@3.4.0) (2022-05-06)
+
+### Features
+
+- **nextjs,clerk-sdk-node,remix:** Add claims attribute to req.auth ([c695529](https://github.com/clerkinc/javascript/commit/c695529089f55baef72b86e3b73b8cd9f4f58e6d))
+
### [3.3.11](https://github.com/clerkinc/javascript/compare/@clerk/clerk-sdk-node@3.3.11-staging.0...@clerk/clerk-sdk-node@3.3.11) (2022-05-05)
**Note:** Version bump only for package @clerk/clerk-sdk-node
diff --git a/packages/sdk-node/package.json b/packages/sdk-node/package.json
index e20f5baa2b9..eac0ced123b 100644
--- a/packages/sdk-node/package.json
+++ b/packages/sdk-node/package.json
@@ -1,5 +1,5 @@
{
- "version": "3.3.11",
+ "version": "3.4.0",
"license": "MIT",
"main": "dist/index.js",
"module": "esm/index.js",
@@ -47,8 +47,8 @@
"typescript": "^4.6.2"
},
"dependencies": {
- "@clerk/backend-core": "^1.5.6",
- "@clerk/types": "^2.9.0",
+ "@clerk/backend-core": "^1.6.0",
+ "@clerk/types": "^2.10.0",
"@peculiar/webcrypto": "^1.2.3",
"camelcase-keys": "^6.2.2",
"cookies": "^0.8.0",
diff --git a/packages/sdk-node/src/info.ts b/packages/sdk-node/src/info.ts
index 2e61f9e0ee2..543517c67d8 100644
--- a/packages/sdk-node/src/info.ts
+++ b/packages/sdk-node/src/info.ts
@@ -1,3 +1,3 @@
/** DO NOT EDIT: This file is automatically generated by ../scripts/info.js */
-export const LIB_VERSION = '3.3.11';
+export const LIB_VERSION = '3.4.0';
export const LIB_NAME = '@clerk/clerk-sdk-node';
diff --git a/packages/shared/CHANGELOG.md b/packages/shared/CHANGELOG.md
index e3ea5ac93bb..6a55371beae 100644
--- a/packages/shared/CHANGELOG.md
+++ b/packages/shared/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [0.2.2](https://github.com/clerkinc/clerk_docker/compare/@clerk/shared@0.2.1...@clerk/shared@0.2.2) (2022-05-06)
+
+**Note:** Version bump only for package @clerk/shared
+
### [0.2.1](https://github.com/clerkinc/clerk_docker/compare/@clerk/shared@0.2.1-staging.0...@clerk/shared@0.2.1) (2022-05-05)
**Note:** Version bump only for package @clerk/shared
diff --git a/packages/shared/package.json b/packages/shared/package.json
index 660daa0df08..7af97a5285a 100644
--- a/packages/shared/package.json
+++ b/packages/shared/package.json
@@ -1,6 +1,6 @@
{
"name": "@clerk/shared",
- "version": "0.2.1",
+ "version": "0.2.2",
"private": true,
"main": "index.js",
"module": "index.js",
@@ -26,7 +26,7 @@
"@babel/core": "^7.13.14",
"@babel/preset-env": "^7.13.12",
"@babel/preset-react": "^7.13.13",
- "@clerk/types": "^2.9.0",
+ "@clerk/types": "^2.10.0",
"@popperjs/core": "^2.5.4",
"@sentry/browser": "^6.3.0",
"@svgr/webpack": "^6.2.1",
diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md
index 97624e8de2e..990044dcd45 100644
--- a/packages/types/CHANGELOG.md
+++ b/packages/types/CHANGELOG.md
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [2.10.0](https://github.com/clerkinc/javascript/compare/@clerk/types@2.9.0...@clerk/types@2.10.0) (2022-05-06)
+
+### Features
+
+- **nextjs,clerk-sdk-node,remix:** Add claims attribute to req.auth ([c695529](https://github.com/clerkinc/javascript/commit/c695529089f55baef72b86e3b73b8cd9f4f58e6d))
+
## [2.9.0](https://github.com/clerkinc/javascript/compare/@clerk/types@2.9.0-staging.0...@clerk/types@2.9.0) (2022-05-05)
**Note:** Version bump only for package @clerk/types
diff --git a/packages/types/package.json b/packages/types/package.json
index 54e6d3cbe24..34c9dbc0554 100644
--- a/packages/types/package.json
+++ b/packages/types/package.json
@@ -1,6 +1,6 @@
{
"name": "@clerk/types",
- "version": "2.9.0",
+ "version": "2.10.0",
"license": "MIT",
"description": "Typings for Clerk libraries.",
"keywords": [