Skip to content

Releases: clerk/javascript

@clerk/[email protected]

23 Oct 20:12
46e54ed
Compare
Choose a tag to compare

Patch Changes

  • Updating the CLI output to match the DX of core-1 to core-2 migration (#4393) by @jacekradko

@clerk/[email protected]

23 Oct 01:54
3d5512f
Compare
Choose a tag to compare

Patch Changes

@clerk/[email protected]

23 Oct 00:36
180f5a5
Compare
Choose a tag to compare

Minor Changes

  • @clerk/nextjs: Converting auth() and clerkClient() interfaces to be async (#4366) by @jacekradko

    @clerk/upgrade: Adding required codemod for @clerk/nextjs breaking changes

    Migration guide

    auth() is now async

    Previously the auth() method from @clerk/nextjs/server was synchronous.

    import { auth } from "@clerk/nextjs/server";
    
    export function GET() {
      const { userId } = auth();
      return new Response(JSON.stringify({ userId }));
    }

    The auth method now becomes asynchronous. You will need to make the following changes to the snippet above to make it compatible.

    - export function GET() {
    + export async function GET() {
    -   const { userId } = auth();
    +   const { userId } = await auth();
      return new Response(JSON.stringify({ userId }));
    }

    Clerk middleware auth is now async

    import { clerkClient, clerkMiddleware } from '@clerk/nextjs/server';
    import { NextResponse } from 'next/server';
    
    export default clerkMiddleware(async (auth, request) => {
      const resolvedAuth = await auth();
    
      const count = await resolvedAuth.users.getCount();
    
      if (count) {
        return NextResponse.redirect(new URL('/new-url', request.url));
      }
    });
    
    export const config = {
      matcher: [...],
    };

    clerkClient() is now async

    Previously the clerkClient() method from @clerk/nextjs/server was synchronous.

    import { clerkClient, clerkMiddleware } from '@clerk/nextjs/server';
    import { NextResponse } from 'next/server';
    
    export default clerkMiddleware((auth, request) => {
      const client = clerkClient();
    
      const count = await client.users?.getCount();
    
      if (count) {
        return NextResponse.redirect(new URL('/new-url', request.url));
      }
    });
    
    export const config = {
      matcher: [...],
    };

    The method now becomes async. You will need to make the following changes to the snippet above to make it compatible.

    - export default clerkMiddleware((auth, request) => {
    - const client = clerkClient();
    + export default clerkMiddleware(async (auth, request) => {
    + const client = await clerkClient();
      const count = await client.users?.getCount();
    
      if (count) {
    }

@clerk/[email protected]

23 Oct 20:11
46e54ed
Compare
Choose a tag to compare

Patch Changes

@clerk/[email protected]

23 Oct 20:12
46e54ed
Compare
Choose a tag to compare

Minor Changes

  • Adding experimental support for legal consent for <SignUp/> component (#4337) by @octoper

@clerk/[email protected]

23 Oct 00:36
180f5a5
Compare
Choose a tag to compare

Minor Changes

  • Add experimental support for new UI components (#4114) by @BRKalow

Patch Changes

  • Fix SignInProps/SignUpProps __experimental type to allow for arbitrary properties (#4114) by @BRKalow

@clerk/[email protected]

23 Oct 20:11
46e54ed
Compare
Choose a tag to compare

Patch Changes

@clerk/[email protected]

23 Oct 00:36
180f5a5
Compare
Choose a tag to compare

Patch Changes

@clerk/[email protected]

23 Oct 20:12
46e54ed
Compare
Choose a tag to compare

Patch Changes

@clerk/[email protected]

23 Oct 00:36
180f5a5
Compare
Choose a tag to compare