From 492093c88d88831ca601c37d754140c30842e168 Mon Sep 17 00:00:00 2001 From: LekoArts Date: Mon, 27 May 2024 10:53:23 +0200 Subject: [PATCH 1/6] Improve router test coverage --- .../elements/src/react/router/__tests__/router.test.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/elements/src/react/router/__tests__/router.test.ts b/packages/elements/src/react/router/__tests__/router.test.ts index 954a345f7a1..834b8729a59 100644 --- a/packages/elements/src/react/router/__tests__/router.test.ts +++ b/packages/elements/src/react/router/__tests__/router.test.ts @@ -35,6 +35,15 @@ describe('createClerkRouter', () => { expect(clerkRouter.match(path)).toBe(true); }); + it('normalizes path arguments internally', () => { + const path = 'dashboard/'; + const clerkRouter = createClerkRouter(mockRouter, 'app/'); + + mockRouter.pathname.mockReturnValue('/app/dashboard'); + + expect(clerkRouter.match(path)).toBe(true); + }); + it('throws an error when no path is provided', () => { const clerkRouter = createClerkRouter(mockRouter, '/app'); From c7a1e1ebd9c36d80e6cd8c18683dc3ed3192b7f7 Mon Sep 17 00:00:00 2001 From: LekoArts Date: Mon, 27 May 2024 10:53:44 +0200 Subject: [PATCH 2/6] Add Next 15 RC to peerDeps --- packages/elements/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/elements/package.json b/packages/elements/package.json index 0915f12b908..5d5bfc28c21 100644 --- a/packages/elements/package.json +++ b/packages/elements/package.json @@ -95,7 +95,7 @@ "peerDependencies": { "@clerk/clerk-react": "^5.0.0", "@clerk/shared": "^2.0.0", - "next": "^13.5.4 || ^14.0.3", + "next": "^13.5.4 || ^14.0.3 || >=15.0.0-rc", "react": ">=18", "react-dom": ">=18" }, From f3d66737af5d3116bdfca8c7ff2dde3aa5ceecf5 Mon Sep 17 00:00:00 2001 From: LekoArts Date: Mon, 27 May 2024 11:20:34 +0200 Subject: [PATCH 3/6] Two smaller TODOs --- packages/elements/src/index.ts | 3 +-- .../machines/shared/shared.actors.ts | 20 +------------------ 2 files changed, 2 insertions(+), 21 deletions(-) diff --git a/packages/elements/src/index.ts b/packages/elements/src/index.ts index 7d21ce99b4b..1eb9b4dc1a7 100644 --- a/packages/elements/src/index.ts +++ b/packages/elements/src/index.ts @@ -1,6 +1,5 @@ -// TODO: Add link to docs throw new Error(`No exports are available from the top-level "@clerk/elements" package. Use specific subpath imports instead, e.g. "@clerk/elements/sign-in". Find all available exports in the documentation: -https://clerk.com/docs`); +https://clerk.com/docs/elements/overview`); diff --git a/packages/elements/src/internals/machines/shared/shared.actors.ts b/packages/elements/src/internals/machines/shared/shared.actors.ts index d431000fdd1..61f7692e40a 100644 --- a/packages/elements/src/internals/machines/shared/shared.actors.ts +++ b/packages/elements/src/internals/machines/shared/shared.actors.ts @@ -1,24 +1,6 @@ import type { Clerk, LoadedClerk } from '@clerk/types'; import type { EventObject } from 'xstate'; -import { fromCallback, fromPromise } from 'xstate'; - -import { ClerkElementsRuntimeError } from '~/internals/errors'; - -// TODO: Remove -/** @deprecated Use clerkLoader instead */ -export const waitForClerk = fromPromise(({ input: clerk }) => { - return new Promise((resolve, reject) => { - if (clerk.loaded) { - resolve(clerk as LoadedClerk); - } else if ('addOnLoaded' in clerk) { - // @ts-expect-error - Expects addOnLoaded from IsomorphicClerk. - // We don't want internals to rely on the @clerk/clerk-react package - clerk.addOnLoaded(() => resolve(clerk as LoadedClerk)); - } else { - reject(new ClerkElementsRuntimeError('Clerk client could not be loaded')); - } - }); -}); +import { fromCallback } from 'xstate'; export type ClerkLoaderEvents = { type: 'CLERK.READY' } | { type: 'CLERK.ERROR'; message: string }; From 8ec800fbeffa21666109024763b0a530ab776341 Mon Sep 17 00:00:00 2001 From: LekoArts Date: Mon, 27 May 2024 11:22:41 +0200 Subject: [PATCH 4/6] add changeset --- .changeset/good-paws-wonder.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/good-paws-wonder.md diff --git a/.changeset/good-paws-wonder.md b/.changeset/good-paws-wonder.md new file mode 100644 index 00000000000..536daa01909 --- /dev/null +++ b/.changeset/good-paws-wonder.md @@ -0,0 +1,5 @@ +--- +'@clerk/elements': patch +--- + +Widen optional peerDependency of `next` to include `>=15.0.0-rc`. This way you can use Next.js 15 with Clerk Elements without your package manager complaining. From fdc8868bfa4e29166879a2d9b4a4ed136c51f1d7 Mon Sep 17 00:00:00 2001 From: LekoArts Date: Mon, 27 May 2024 11:40:37 +0200 Subject: [PATCH 5/6] also update react --- packages/elements/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/elements/package.json b/packages/elements/package.json index 5d5bfc28c21..4fe6090df7f 100644 --- a/packages/elements/package.json +++ b/packages/elements/package.json @@ -95,9 +95,9 @@ "peerDependencies": { "@clerk/clerk-react": "^5.0.0", "@clerk/shared": "^2.0.0", - "next": "^13.5.4 || ^14.0.3 || >=15.0.0-rc", - "react": ">=18", - "react-dom": ">=18" + "next": "^13.5.4 || ^14.0.3 || ^15.0.0-rc", + "react": "^18.0.0 || ^19.0.0-beta", + "react-dom": "^18.0.0 || ^19.0.0-beta" }, "peerDependenciesMeta": { "next": { From efaf6a38cebcd1895b678ebc23d6fd11c3471932 Mon Sep 17 00:00:00 2001 From: Lennart Date: Mon, 27 May 2024 11:41:38 +0200 Subject: [PATCH 6/6] Update good-paws-wonder.md --- .changeset/good-paws-wonder.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/good-paws-wonder.md b/.changeset/good-paws-wonder.md index 536daa01909..147044325a4 100644 --- a/.changeset/good-paws-wonder.md +++ b/.changeset/good-paws-wonder.md @@ -2,4 +2,4 @@ '@clerk/elements': patch --- -Widen optional peerDependency of `next` to include `>=15.0.0-rc`. This way you can use Next.js 15 with Clerk Elements without your package manager complaining. +Widen optional peerDependency of `next` to include `>=15.0.0-rc`. This way you can use Next.js 15 with Clerk Elements without your package manager complaining. Also allow React 19.