From 5d379bcbfeec074cb9b9c7c18f84158af22caa61 Mon Sep 17 00:00:00 2001 From: Dimitris Klouvas Date: Thu, 26 Oct 2023 11:05:16 -0700 Subject: [PATCH 001/202] fix(clerk-sdk-node): Fix types of ClerkExpressWithAuth/ClerkExpressRequireAuth args (#1939) https://github.com/clerkinc/javascript/issues/1938 --- .changeset/tasty-countries-walk.md | 5 +++++ packages/sdk-node/src/clerkClient.ts | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/tasty-countries-walk.md diff --git a/.changeset/tasty-countries-walk.md b/.changeset/tasty-countries-walk.md new file mode 100644 index 00000000000..f6ceef5af0a --- /dev/null +++ b/.changeset/tasty-countries-walk.md @@ -0,0 +1,5 @@ +--- +'@clerk/clerk-sdk-node': patch +--- + +Fix types of ClerkExpressWithAuth/ClerkExpressRequireAuth args diff --git a/packages/sdk-node/src/clerkClient.ts b/packages/sdk-node/src/clerkClient.ts index 6f9cc6a35b8..b562f450791 100644 --- a/packages/sdk-node/src/clerkClient.ts +++ b/packages/sdk-node/src/clerkClient.ts @@ -75,13 +75,13 @@ export const clerkClient = new Proxy(clerkClientSingleton, { /** * Stand-alone express middlewares bound to the pre-initialised clerkClient */ -export const ClerkExpressRequireAuth = (...args: any) => { +export const ClerkExpressRequireAuth = (...args: Parameters>) => { const env = { ...loadApiEnv(), ...loadClientEnv() }; const fn = createClerkExpressRequireAuth({ clerkClient, ...env }); return fn(...args); }; -export const ClerkExpressWithAuth = (...args: any) => { +export const ClerkExpressWithAuth = (...args: Parameters>) => { const env = { ...loadApiEnv(), ...loadClientEnv() }; const fn = createClerkExpressWithAuth({ clerkClient, ...env }); return fn(...args); From 22320081a3502763b5e50d4052da2cc105c49029 Mon Sep 17 00:00:00 2001 From: Dimitris Klouvas Date: Thu, 26 Oct 2023 11:59:15 -0700 Subject: [PATCH 002/202] chore(repo): Apply v4 Version packages specific changes (#1943) * chore(repo): Avoid having a main-v4 local branch to create changeset * chore(repo): Differentiate version packages PR of v4 * chore(repo): Add changeset --- .changeset/chilly-paws-develop.md | 2 ++ .changeset/config.json | 2 +- .github/workflows/release-prod.yml | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 .changeset/chilly-paws-develop.md diff --git a/.changeset/chilly-paws-develop.md b/.changeset/chilly-paws-develop.md new file mode 100644 index 00000000000..a845151cc84 --- /dev/null +++ b/.changeset/chilly-paws-develop.md @@ -0,0 +1,2 @@ +--- +--- diff --git a/.changeset/config.json b/.changeset/config.json index 422e372038b..2089feb5e41 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -10,7 +10,7 @@ "fixed": [], "linked": [], "access": "public", - "baseBranch": "main-v4", + "baseBranch": "origin/main-v4", "updateInternalDependencies": "patch", "ignore": [], "snapshot": { diff --git a/.github/workflows/release-prod.yml b/.github/workflows/release-prod.yml index 5bfc6ca686d..bb23d78544b 100644 --- a/.github/workflows/release-prod.yml +++ b/.github/workflows/release-prod.yml @@ -39,7 +39,7 @@ jobs: id: changesets uses: changesets/action@v1 with: - title: Version Packages + title: Version Packages - V4 commit: "chore(repo): Version packages" publish: npm run release env: From 088724324403dbbb06f28ba6538b8bec1fd7ae9f Mon Sep 17 00:00:00 2001 From: George Desipris <73396808+desiprisg@users.noreply.github.com> Date: Fri, 27 Oct 2023 00:28:20 +0300 Subject: [PATCH 003/202] fix(backend): Support NextJS 14 (#1948) * fix(backend): Fix for next 14 fetch bind issue * fix(nextjs): Use named imports for fetch runtime polyfill Next14 seems to have changed the way it handles default exports when using the webpack bundler for some of their build variants when using `npm run dev`. This commit ensures that we no longer use the default export in an effort to improve compat between the different nextjs versions. More information can be found here: https://esbuild.github.io/content-types/#default-interop and here: https://github.com/clerkinc/javascript/pull/612 * Create late-dolphins-peel.md --------- Co-authored-by: Nikos Douvlis --- .changeset/late-dolphins-peel.md | 5 +++++ packages/backend/src/runtime/browser/fetch.mjs | 1 + packages/backend/src/runtime/index.ts | 4 ++-- packages/backend/src/runtime/node/fetch.js | 1 + 4 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 .changeset/late-dolphins-peel.md diff --git a/.changeset/late-dolphins-peel.md b/.changeset/late-dolphins-peel.md new file mode 100644 index 00000000000..04e3344490e --- /dev/null +++ b/.changeset/late-dolphins-peel.md @@ -0,0 +1,5 @@ +--- +"@clerk/backend": minor +--- + +Add support for NextJS 14 diff --git a/packages/backend/src/runtime/browser/fetch.mjs b/packages/backend/src/runtime/browser/fetch.mjs index 86ef402b1ce..3c3e70ae40f 100644 --- a/packages/backend/src/runtime/browser/fetch.mjs +++ b/packages/backend/src/runtime/browser/fetch.mjs @@ -5,3 +5,4 @@ export const RuntimeHeaders = Headers; export const RuntimeRequest = Request; export const RuntimeResponse = Response; export const RuntimeAbortController = AbortController; +export const RuntimeFetch = fetch; diff --git a/packages/backend/src/runtime/index.ts b/packages/backend/src/runtime/index.ts index f77338cb6d5..89a1d7c1a77 100644 --- a/packages/backend/src/runtime/index.ts +++ b/packages/backend/src/runtime/index.ts @@ -18,7 +18,7 @@ import crypto from '#crypto'; import * as fetchApisPolyfill from '#fetch'; const { - default: fetch, + RuntimeFetch, RuntimeAbortController, RuntimeBlob, RuntimeFormData, @@ -44,7 +44,7 @@ type Runtime = { // The globalThis object is supported for Node >= 12.0. // // https://github.com/supabase/supabase/issues/4417 -const globalFetch = fetch.bind(globalThis); +const globalFetch = RuntimeFetch.bind(globalThis); // DO NOT CHANGE: Runtime needs to be imported as a default export so that we can stub its dependencies with Sinon.js // For more information refer to https://sinonjs.org/how-to/stub-dependency/ const runtime: Runtime = { diff --git a/packages/backend/src/runtime/node/fetch.js b/packages/backend/src/runtime/node/fetch.js index 58b33cabadc..38f0e8de6ea 100644 --- a/packages/backend/src/runtime/node/fetch.js +++ b/packages/backend/src/runtime/node/fetch.js @@ -8,3 +8,4 @@ module.exports.RuntimeHeaders = Headers; module.exports.RuntimeRequest = Request; module.exports.RuntimeResponse = Response; module.exports.RuntimeAbortController = AbortController; +module.exports.RuntimeFetch = fetch; From 7bcc4a76f108180037cd1b0486d77fea5c746795 Mon Sep 17 00:00:00 2001 From: Nikos Douvlis Date: Fri, 27 Oct 2023 00:32:03 +0300 Subject: [PATCH 004/202] chore(repo): Update changeset --- .changeset/late-dolphins-peel.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.changeset/late-dolphins-peel.md b/.changeset/late-dolphins-peel.md index 04e3344490e..a9a08b1a3a9 100644 --- a/.changeset/late-dolphins-peel.md +++ b/.changeset/late-dolphins-peel.md @@ -1,5 +1,6 @@ --- "@clerk/backend": minor +"@clerk/nextjs": minor --- Add support for NextJS 14 From ff3a775c816e7f282ab49a1544fde41deeaf205d Mon Sep 17 00:00:00 2001 From: Clerk Cookie <136073014+clerk-cookie@users.noreply.github.com> Date: Thu, 26 Oct 2023 16:40:15 -0500 Subject: [PATCH 005/202] chore(repo): Version packages (#1936) Co-authored-by: github-actions[bot] --- .changeset/chilly-paws-develop.md | 2 -- .changeset/late-dolphins-peel.md | 6 ------ .changeset/odd-lemons-reply.md | 2 -- .changeset/red-monkeys-sing.md | 5 ----- .changeset/silly-icons-kick.md | 3 --- .changeset/slimy-singers-glow.md | 5 ----- .changeset/tasty-countries-walk.md | 5 ----- packages/backend/CHANGELOG.md | 6 ++++++ packages/backend/package.json | 2 +- packages/chrome-extension/CHANGELOG.md | 7 +++++++ packages/chrome-extension/package.json | 4 ++-- packages/clerk-js/CHANGELOG.md | 6 ++++++ packages/clerk-js/package.json | 2 +- packages/expo/CHANGELOG.md | 7 +++++++ packages/expo/package.json | 4 ++-- packages/fastify/CHANGELOG.md | 7 +++++++ packages/fastify/package.json | 4 ++-- packages/gatsby-plugin-clerk/CHANGELOG.md | 8 ++++++++ packages/gatsby-plugin-clerk/package.json | 6 +++--- packages/nextjs/CHANGELOG.md | 12 ++++++++++++ packages/nextjs/package.json | 6 +++--- packages/remix/CHANGELOG.md | 7 +++++++ packages/remix/package.json | 4 ++-- packages/sdk-node/CHANGELOG.md | 9 +++++++++ packages/sdk-node/package.json | 4 ++-- 25 files changed, 87 insertions(+), 46 deletions(-) delete mode 100644 .changeset/chilly-paws-develop.md delete mode 100644 .changeset/late-dolphins-peel.md delete mode 100644 .changeset/odd-lemons-reply.md delete mode 100644 .changeset/red-monkeys-sing.md delete mode 100644 .changeset/silly-icons-kick.md delete mode 100644 .changeset/slimy-singers-glow.md delete mode 100644 .changeset/tasty-countries-walk.md diff --git a/.changeset/chilly-paws-develop.md b/.changeset/chilly-paws-develop.md deleted file mode 100644 index a845151cc84..00000000000 --- a/.changeset/chilly-paws-develop.md +++ /dev/null @@ -1,2 +0,0 @@ ---- ---- diff --git a/.changeset/late-dolphins-peel.md b/.changeset/late-dolphins-peel.md deleted file mode 100644 index a9a08b1a3a9..00000000000 --- a/.changeset/late-dolphins-peel.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@clerk/backend": minor -"@clerk/nextjs": minor ---- - -Add support for NextJS 14 diff --git a/.changeset/odd-lemons-reply.md b/.changeset/odd-lemons-reply.md deleted file mode 100644 index a845151cc84..00000000000 --- a/.changeset/odd-lemons-reply.md +++ /dev/null @@ -1,2 +0,0 @@ ---- ---- diff --git a/.changeset/red-monkeys-sing.md b/.changeset/red-monkeys-sing.md deleted file mode 100644 index 2dacb87ff3d..00000000000 --- a/.changeset/red-monkeys-sing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- ---- - -Introduce `@canary` releases and change current LTS branch to `main-v4` to be used as -base branch for `@staging` and `@latest` releases until next major version is stable. diff --git a/.changeset/silly-icons-kick.md b/.changeset/silly-icons-kick.md deleted file mode 100644 index ec380ec43f2..00000000000 --- a/.changeset/silly-icons-kick.md +++ /dev/null @@ -1,3 +0,0 @@ ---- ---- - diff --git a/.changeset/slimy-singers-glow.md b/.changeset/slimy-singers-glow.md deleted file mode 100644 index f116930380c..00000000000 --- a/.changeset/slimy-singers-glow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@clerk/clerk-js': minor ---- - -Greatly improve the UX when users are creating their passwords. The hints below the input fields now have smoother animations and show more types of feedback based on different conditions. Additionally, the password validation is now debounced. diff --git a/.changeset/tasty-countries-walk.md b/.changeset/tasty-countries-walk.md deleted file mode 100644 index f6ceef5af0a..00000000000 --- a/.changeset/tasty-countries-walk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@clerk/clerk-sdk-node': patch ---- - -Fix types of ClerkExpressWithAuth/ClerkExpressRequireAuth args diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index d3def142924..b45e2024162 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log +## 0.32.0 + +### Minor Changes + +- Add support for NextJS 14 ([#1948](https://github.com/clerkinc/javascript/pull/1948)) by [@desiprisg](https://github.com/desiprisg) + ## 0.31.3 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index 4931f8d0b2a..b7c4b875774 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/backend", - "version": "0.31.3", + "version": "0.32.0", "license": "MIT", "description": "Clerk Backend SDK - REST Client for Backend API & JWT verification utilities", "types": "./dist/types/index.d.ts", diff --git a/packages/chrome-extension/CHANGELOG.md b/packages/chrome-extension/CHANGELOG.md index cd83b280d99..c7c5a823425 100644 --- a/packages/chrome-extension/CHANGELOG.md +++ b/packages/chrome-extension/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## 0.4.11 + +### Patch Changes + +- Updated dependencies [[`9e57e94d2`](https://github.com/clerkinc/javascript/commit/9e57e94d25b96c11889f49e7e4d4827e5134927d)]: + - @clerk/clerk-js@4.64.0 + ## 0.4.10 ### Patch Changes diff --git a/packages/chrome-extension/package.json b/packages/chrome-extension/package.json index 164194a93d9..8c682fb52eb 100644 --- a/packages/chrome-extension/package.json +++ b/packages/chrome-extension/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/chrome-extension", - "version": "0.4.10", + "version": "0.4.11", "license": "MIT", "description": "Clerk SDK for Chrome extensions", "keywords": [ @@ -35,7 +35,7 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@clerk/clerk-js": "4.63.0", + "@clerk/clerk-js": "4.64.0", "@clerk/clerk-react": "4.27.0" }, "devDependencies": { diff --git a/packages/clerk-js/CHANGELOG.md b/packages/clerk-js/CHANGELOG.md index 0962bff8c0b..16e9ed8bfdd 100644 --- a/packages/clerk-js/CHANGELOG.md +++ b/packages/clerk-js/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log +## 4.64.0 + +### Minor Changes + +- Greatly improve the UX when users are creating their passwords. The hints below the input fields now have smoother animations and show more types of feedback based on different conditions. Additionally, the password validation is now debounced. ([#1776](https://github.com/clerkinc/javascript/pull/1776)) by [@desiprisg](https://github.com/desiprisg) + ## 4.63.0 ### Minor Changes diff --git a/packages/clerk-js/package.json b/packages/clerk-js/package.json index 253358ded86..9b8b079a77a 100644 --- a/packages/clerk-js/package.json +++ b/packages/clerk-js/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/clerk-js", - "version": "4.63.0", + "version": "4.64.0", "license": "MIT", "description": "Clerk JS library", "keywords": [ diff --git a/packages/expo/CHANGELOG.md b/packages/expo/CHANGELOG.md index a61624571c9..994b2c9d4ac 100644 --- a/packages/expo/CHANGELOG.md +++ b/packages/expo/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## 0.19.13 + +### Patch Changes + +- Updated dependencies [[`9e57e94d2`](https://github.com/clerkinc/javascript/commit/9e57e94d25b96c11889f49e7e4d4827e5134927d)]: + - @clerk/clerk-js@4.64.0 + ## 0.19.12 ### Patch Changes diff --git a/packages/expo/package.json b/packages/expo/package.json index 1ea8cc5d00a..c2764195bc3 100644 --- a/packages/expo/package.json +++ b/packages/expo/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/clerk-expo", - "version": "0.19.12", + "version": "0.19.13", "license": "MIT", "description": "Clerk React Native/Expo library", "keywords": [ @@ -30,7 +30,7 @@ "lint": "eslint src/" }, "dependencies": { - "@clerk/clerk-js": "4.63.0", + "@clerk/clerk-js": "4.64.0", "@clerk/clerk-react": "4.27.0", "@clerk/shared": "1.0.0", "base-64": "1.0.0", diff --git a/packages/fastify/CHANGELOG.md b/packages/fastify/CHANGELOG.md index b30c8d88da0..1ec8e3181ee 100644 --- a/packages/fastify/CHANGELOG.md +++ b/packages/fastify/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## 0.6.18 + +### Patch Changes + +- Updated dependencies [[`088724324`](https://github.com/clerkinc/javascript/commit/088724324403dbbb06f28ba6538b8bec1fd7ae9f)]: + - @clerk/backend@0.32.0 + ## 0.6.17 ### Patch Changes diff --git a/packages/fastify/package.json b/packages/fastify/package.json index 5b3ffefdcf3..6183d55bec4 100644 --- a/packages/fastify/package.json +++ b/packages/fastify/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/fastify", - "version": "0.6.17", + "version": "0.6.18", "license": "MIT", "description": "Clerk SDK for Fastify", "keywords": [ @@ -30,7 +30,7 @@ "test:cache:clear": "jest --clearCache --useStderr" }, "dependencies": { - "@clerk/backend": "0.31.3", + "@clerk/backend": "0.32.0", "@clerk/shared": "1.0.0", "@clerk/types": "3.57.0", "cookies": "0.8.0" diff --git a/packages/gatsby-plugin-clerk/CHANGELOG.md b/packages/gatsby-plugin-clerk/CHANGELOG.md index 859081ad37d..b6f3e0a03b9 100644 --- a/packages/gatsby-plugin-clerk/CHANGELOG.md +++ b/packages/gatsby-plugin-clerk/CHANGELOG.md @@ -1,5 +1,13 @@ # Change Log +## 4.4.19 + +### Patch Changes + +- Updated dependencies [[`088724324`](https://github.com/clerkinc/javascript/commit/088724324403dbbb06f28ba6538b8bec1fd7ae9f), [`5d379bcbf`](https://github.com/clerkinc/javascript/commit/5d379bcbfeec074cb9b9c7c18f84158af22caa61)]: + - @clerk/backend@0.32.0 + - @clerk/clerk-sdk-node@4.12.17 + ## 4.4.18 ### Patch Changes diff --git a/packages/gatsby-plugin-clerk/package.json b/packages/gatsby-plugin-clerk/package.json index c5e9c368135..4527f75de29 100644 --- a/packages/gatsby-plugin-clerk/package.json +++ b/packages/gatsby-plugin-clerk/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-plugin-clerk", - "version": "4.4.18", + "version": "4.4.19", "license": "MIT", "description": "Clerk SDK for Gatsby", "keywords": [ @@ -35,9 +35,9 @@ "lint": "eslint src/" }, "dependencies": { - "@clerk/backend": "0.31.3", + "@clerk/backend": "0.32.0", "@clerk/clerk-react": "4.27.0", - "@clerk/clerk-sdk-node": "4.12.16", + "@clerk/clerk-sdk-node": "4.12.17", "@clerk/types": "3.57.0", "cookie": "0.5.0", "tslib": "2.4.1" diff --git a/packages/nextjs/CHANGELOG.md b/packages/nextjs/CHANGELOG.md index 83b783582ed..6b3c2f0329d 100644 --- a/packages/nextjs/CHANGELOG.md +++ b/packages/nextjs/CHANGELOG.md @@ -1,5 +1,17 @@ # Change Log +## 4.26.0 + +### Minor Changes + +- Add support for NextJS 14 ([#1948](https://github.com/clerkinc/javascript/pull/1948)) by [@desiprisg](https://github.com/desiprisg) + +### Patch Changes + +- Updated dependencies [[`088724324`](https://github.com/clerkinc/javascript/commit/088724324403dbbb06f28ba6538b8bec1fd7ae9f), [`5d379bcbf`](https://github.com/clerkinc/javascript/commit/5d379bcbfeec074cb9b9c7c18f84158af22caa61)]: + - @clerk/backend@0.32.0 + - @clerk/clerk-sdk-node@4.12.17 + ## 4.25.7 ### Patch Changes diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index 234ae993e01..982fee58a6a 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/nextjs", - "version": "4.25.7", + "version": "4.26.0", "license": "MIT", "description": "Clerk SDK for NextJS", "keywords": [ @@ -78,9 +78,9 @@ "test:ci": "jest --maxWorkers=70%" }, "dependencies": { - "@clerk/backend": "0.31.3", + "@clerk/backend": "0.32.0", "@clerk/clerk-react": "4.27.0", - "@clerk/clerk-sdk-node": "4.12.16", + "@clerk/clerk-sdk-node": "4.12.17", "@clerk/shared": "1.0.0", "@clerk/types": "3.57.0", "path-to-regexp": "6.2.1", diff --git a/packages/remix/CHANGELOG.md b/packages/remix/CHANGELOG.md index e8bc708c4f3..be15f858985 100644 --- a/packages/remix/CHANGELOG.md +++ b/packages/remix/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## 3.1.1 + +### Patch Changes + +- Updated dependencies [[`088724324`](https://github.com/clerkinc/javascript/commit/088724324403dbbb06f28ba6538b8bec1fd7ae9f)]: + - @clerk/backend@0.32.0 + ## 3.1.0 ### Minor Changes diff --git a/packages/remix/package.json b/packages/remix/package.json index cbd2b136838..0edcd3d0ebf 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/remix", - "version": "3.1.0", + "version": "3.1.1", "license": "MIT", "description": "Clerk SDK for Remix", "keywords": [ @@ -60,7 +60,7 @@ "lint:attw": "attw --pack ." }, "dependencies": { - "@clerk/backend": "0.31.3", + "@clerk/backend": "0.32.0", "@clerk/clerk-react": "4.27.0", "@clerk/shared": "1.0.0", "@clerk/types": "3.57.0", diff --git a/packages/sdk-node/CHANGELOG.md b/packages/sdk-node/CHANGELOG.md index 7b3c39b428d..3e805cfb52f 100644 --- a/packages/sdk-node/CHANGELOG.md +++ b/packages/sdk-node/CHANGELOG.md @@ -1,5 +1,14 @@ # Change Log +## 4.12.17 + +### Patch Changes + +- Fix types of ClerkExpressWithAuth/ClerkExpressRequireAuth args ([#1939](https://github.com/clerkinc/javascript/pull/1939)) by [@dimkl](https://github.com/dimkl) + +- Updated dependencies [[`088724324`](https://github.com/clerkinc/javascript/commit/088724324403dbbb06f28ba6538b8bec1fd7ae9f)]: + - @clerk/backend@0.32.0 + ## 4.12.16 ### Patch Changes diff --git a/packages/sdk-node/package.json b/packages/sdk-node/package.json index 4b46da392ed..44982335164 100644 --- a/packages/sdk-node/package.json +++ b/packages/sdk-node/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/clerk-sdk-node", - "version": "4.12.16", + "version": "4.12.17", "license": "MIT", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -60,7 +60,7 @@ "typescript": "*" }, "dependencies": { - "@clerk/backend": "0.31.3", + "@clerk/backend": "0.32.0", "@clerk/shared": "1.0.0", "@clerk/types": "3.57.0", "@types/cookies": "0.7.7", From 29a5f56416db5e802ee38512205e5092d9b0b420 Mon Sep 17 00:00:00 2001 From: Lennart Date: Thu, 26 Oct 2023 15:21:44 -0700 Subject: [PATCH 006/202] fix(shared): Improve expo compat (#1950) * fix(shared): Remove "module" from package.json * chore(repo): Add subpath workaround script * chore(shared): Add script to shared * Create wise-houses-shop.md * chore(*): Fix stuff * chore(repo): Improve script * chore(repo): Scripting * Update wise-houses-shop.md --- .changeset/wise-houses-shop.md | 5 +++ packages/shared/.gitignore | 19 ++++++++++++ packages/shared/package.json | 2 +- packages/shared/subpaths.mjs | 25 +++++++++++++++ scripts/subpath-workaround.mjs | 57 ++++++++++++++++++++++++++++++++++ 5 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 .changeset/wise-houses-shop.md create mode 100644 packages/shared/.gitignore create mode 100644 packages/shared/subpaths.mjs create mode 100644 scripts/subpath-workaround.mjs diff --git a/.changeset/wise-houses-shop.md b/.changeset/wise-houses-shop.md new file mode 100644 index 00000000000..f9844cabd2f --- /dev/null +++ b/.changeset/wise-houses-shop.md @@ -0,0 +1,5 @@ +--- +"@clerk/shared": patch +--- + +Improve compatibility with Expo diff --git a/packages/shared/.gitignore b/packages/shared/.gitignore new file mode 100644 index 00000000000..45af1b0ba8a --- /dev/null +++ b/packages/shared/.gitignore @@ -0,0 +1,19 @@ +browser +callWithRetry +color +cookie +date +deprecated +error +file +globs +handleValueOrFn +isomorphicAtob +keys +loadScript +localStorageBroadcastChannel +poller +proxy +underscore +url +react \ No newline at end of file diff --git a/packages/shared/package.json b/packages/shared/package.json index 11a2a911c85..ce76bcf815f 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -7,7 +7,6 @@ "dist" ], "main": "./dist/index.js", - "module": "./dist/index.mjs", "exports": { ".": { "import": { @@ -45,6 +44,7 @@ "dev": "tsup --watch", "dev:publish": "npm run dev -- --env.publish", "publish:local": "npx yalc push --replace --sig", + "postbuild": "node ../../scripts/subpath-workaround.mjs shared", "clean": "rimraf ./dist", "lint": "eslint src/", "lint:publint": "publint", diff --git a/packages/shared/subpaths.mjs b/packages/shared/subpaths.mjs new file mode 100644 index 00000000000..6a1c22d8ec1 --- /dev/null +++ b/packages/shared/subpaths.mjs @@ -0,0 +1,25 @@ +// This file is a helper for the "subpath-workaround.mjs" script +// We have to polyfill our "exports" subpaths :cry: + +export const subpathNames = [ + 'browser', + 'callWithRetry', + 'color', + 'cookie', + 'date', + 'deprecated', + 'error', + 'file', + 'globs', + 'handleValueOrFn', + 'isomorphicAtob', + 'keys', + 'loadScript', + 'localStorageBroadcastChannel', + 'poller', + 'proxy', + 'underscore', + 'url', +]; + +export const subpathFoldersBarrel = ['react']; diff --git a/scripts/subpath-workaround.mjs b/scripts/subpath-workaround.mjs new file mode 100644 index 00000000000..8c3c507256a --- /dev/null +++ b/scripts/subpath-workaround.mjs @@ -0,0 +1,57 @@ +#!/usr/bin/env zx + +import 'zx/globals'; + +import fs from 'fs'; + +const loadJSON = path => JSON.parse(fs.readFileSync(new URL(path, import.meta.url))); +const writeJSON = (path, contents) => + fs.writeFileSync(new URL(path, import.meta.url), JSON.stringify(contents, null, 2)); + +const pkgJsonPlaceholder = name => ({ + main: `../dist/${name}.js`, +}); +const pkgJsonBarrelPlaceholder = name => ({ + main: `../dist/${name}/index.js`, +}); + +async function run() { + const pkgName = argv._[0]; + console.log(`Loading package.json for ${pkgName}`); + const pkgFile = loadJSON(`../packages/${pkgName}/package.json`); + const subpathHelperFile = await import(`../packages/${pkgName}/subpaths.mjs`); + + console.log( + `Found ${subpathHelperFile.subpathNames.length} subpaths and ${subpathHelperFile.subpathFoldersBarrel.length} subpath barrels`, + ); + + // Check if pkgFile.files already contains the subpaths. This means that the script has already been run and we should exit early + const subpathsAlreadyAdded = subpathHelperFile.subpathNames.some(name => pkgFile.files.includes(name)); + + if (subpathsAlreadyAdded) { + return console.log(`Subpaths already added to ${pkgName} package.json. Exiting early`); + } + + // Add all subpaths to the "files" property on package.json + pkgFile.files = [...pkgFile.files, ...subpathHelperFile.subpathNames, ...subpathHelperFile.subpathFoldersBarrel]; + + writeJSON(`../packages/${pkgName}/package.json`, pkgFile); + + console.log(`Overwrote package.json for ${pkgName} with subpaths`); + + // Create directories for each subpath name using the pkgJsonPlaceholder + subpathHelperFile.subpathNames.forEach(name => { + fs.mkdirSync(new URL(`../packages/${pkgName}/${name}`, import.meta.url)); + writeJSON(`../packages/${pkgName}/${name}/package.json`, pkgJsonPlaceholder(name)); + }); + + // Create directories for each subpath barrel file using the pkgJsonBarrelPlaceholder + subpathHelperFile.subpathFoldersBarrel.forEach(name => { + fs.mkdirSync(new URL(`../packages/${pkgName}/${name}`, import.meta.url)); + writeJSON(`../packages/${pkgName}/${name}/package.json`, pkgJsonBarrelPlaceholder(name)); + }); + + console.log('Successfully created subpath directories with placeholder files'); +} + +await run(); From 7dfb3e6be3722191cbf92936c1f09b117a885abb Mon Sep 17 00:00:00 2001 From: Clerk Cookie <136073014+clerk-cookie@users.noreply.github.com> Date: Thu, 26 Oct 2023 17:26:23 -0500 Subject: [PATCH 007/202] chore(repo): Version packages (#1952) Co-authored-by: github-actions[bot] --- .changeset/wise-houses-shop.md | 5 ----- packages/backend/CHANGELOG.md | 7 +++++++ packages/backend/package.json | 4 ++-- packages/chrome-extension/CHANGELOG.md | 8 ++++++++ packages/chrome-extension/package.json | 6 +++--- packages/clerk-js/CHANGELOG.md | 7 +++++++ packages/clerk-js/package.json | 4 ++-- packages/expo/CHANGELOG.md | 9 +++++++++ packages/expo/package.json | 8 ++++---- packages/fastify/CHANGELOG.md | 8 ++++++++ packages/fastify/package.json | 6 +++--- packages/gatsby-plugin-clerk/CHANGELOG.md | 9 +++++++++ packages/gatsby-plugin-clerk/package.json | 8 ++++---- packages/nextjs/CHANGELOG.md | 10 ++++++++++ packages/nextjs/package.json | 10 +++++----- packages/react/CHANGELOG.md | 7 +++++++ packages/react/package.json | 4 ++-- packages/remix/CHANGELOG.md | 9 +++++++++ packages/remix/package.json | 8 ++++---- packages/sdk-node/CHANGELOG.md | 8 ++++++++ packages/sdk-node/package.json | 6 +++--- packages/shared/CHANGELOG.md | 6 ++++++ packages/shared/package.json | 2 +- 23 files changed, 121 insertions(+), 38 deletions(-) delete mode 100644 .changeset/wise-houses-shop.md diff --git a/.changeset/wise-houses-shop.md b/.changeset/wise-houses-shop.md deleted file mode 100644 index f9844cabd2f..00000000000 --- a/.changeset/wise-houses-shop.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@clerk/shared": patch ---- - -Improve compatibility with Expo diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index b45e2024162..1a2c99577b0 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## 0.32.1 + +### Patch Changes + +- Updated dependencies [[`29a5f5641`](https://github.com/clerkinc/javascript/commit/29a5f56416db5e802ee38512205e5092d9b0b420)]: + - @clerk/shared@1.0.1 + ## 0.32.0 ### Minor Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index b7c4b875774..dcd63ac6bd7 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/backend", - "version": "0.32.0", + "version": "0.32.1", "license": "MIT", "description": "Clerk Backend SDK - REST Client for Backend API & JWT verification utilities", "types": "./dist/types/index.d.ts", @@ -46,7 +46,7 @@ "test:cloudflare-workerd": "tests/cloudflare-workerd/run.sh" }, "dependencies": { - "@clerk/shared": "1.0.0", + "@clerk/shared": "1.0.1", "@clerk/types": "3.57.0", "@peculiar/webcrypto": "1.4.1", "@types/node": "16.18.6", diff --git a/packages/chrome-extension/CHANGELOG.md b/packages/chrome-extension/CHANGELOG.md index c7c5a823425..24bb2310263 100644 --- a/packages/chrome-extension/CHANGELOG.md +++ b/packages/chrome-extension/CHANGELOG.md @@ -1,5 +1,13 @@ # Change Log +## 0.4.12 + +### Patch Changes + +- Updated dependencies []: + - @clerk/clerk-js@4.64.1 + - @clerk/clerk-react@4.27.1 + ## 0.4.11 ### Patch Changes diff --git a/packages/chrome-extension/package.json b/packages/chrome-extension/package.json index 8c682fb52eb..65a8a1c0e53 100644 --- a/packages/chrome-extension/package.json +++ b/packages/chrome-extension/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/chrome-extension", - "version": "0.4.11", + "version": "0.4.12", "license": "MIT", "description": "Clerk SDK for Chrome extensions", "keywords": [ @@ -35,8 +35,8 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@clerk/clerk-js": "4.64.0", - "@clerk/clerk-react": "4.27.0" + "@clerk/clerk-js": "4.64.1", + "@clerk/clerk-react": "4.27.1" }, "devDependencies": { "@types/chrome": "*", diff --git a/packages/clerk-js/CHANGELOG.md b/packages/clerk-js/CHANGELOG.md index 16e9ed8bfdd..864642401ec 100644 --- a/packages/clerk-js/CHANGELOG.md +++ b/packages/clerk-js/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## 4.64.1 + +### Patch Changes + +- Updated dependencies [[`29a5f5641`](https://github.com/clerkinc/javascript/commit/29a5f56416db5e802ee38512205e5092d9b0b420)]: + - @clerk/shared@1.0.1 + ## 4.64.0 ### Minor Changes diff --git a/packages/clerk-js/package.json b/packages/clerk-js/package.json index 9b8b079a77a..5905b45f876 100644 --- a/packages/clerk-js/package.json +++ b/packages/clerk-js/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/clerk-js", - "version": "4.64.0", + "version": "4.64.1", "license": "MIT", "description": "Clerk JS library", "keywords": [ @@ -44,7 +44,7 @@ }, "dependencies": { "@clerk/localizations": "1.26.7", - "@clerk/shared": "1.0.0", + "@clerk/shared": "1.0.1", "@clerk/types": "3.57.0", "@emotion/cache": "11.11.0", "@emotion/react": "11.11.1", diff --git a/packages/expo/CHANGELOG.md b/packages/expo/CHANGELOG.md index 994b2c9d4ac..e4dad0e937d 100644 --- a/packages/expo/CHANGELOG.md +++ b/packages/expo/CHANGELOG.md @@ -1,5 +1,14 @@ # Change Log +## 0.19.14 + +### Patch Changes + +- Updated dependencies [[`29a5f5641`](https://github.com/clerkinc/javascript/commit/29a5f56416db5e802ee38512205e5092d9b0b420)]: + - @clerk/shared@1.0.1 + - @clerk/clerk-js@4.64.1 + - @clerk/clerk-react@4.27.1 + ## 0.19.13 ### Patch Changes diff --git a/packages/expo/package.json b/packages/expo/package.json index c2764195bc3..b77cbf19889 100644 --- a/packages/expo/package.json +++ b/packages/expo/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/clerk-expo", - "version": "0.19.13", + "version": "0.19.14", "license": "MIT", "description": "Clerk React Native/Expo library", "keywords": [ @@ -30,9 +30,9 @@ "lint": "eslint src/" }, "dependencies": { - "@clerk/clerk-js": "4.64.0", - "@clerk/clerk-react": "4.27.0", - "@clerk/shared": "1.0.0", + "@clerk/clerk-js": "4.64.1", + "@clerk/clerk-react": "4.27.1", + "@clerk/shared": "1.0.1", "base-64": "1.0.0", "react-native-url-polyfill": "2.0.0" }, diff --git a/packages/fastify/CHANGELOG.md b/packages/fastify/CHANGELOG.md index 1ec8e3181ee..b0900edc9e1 100644 --- a/packages/fastify/CHANGELOG.md +++ b/packages/fastify/CHANGELOG.md @@ -1,5 +1,13 @@ # Change Log +## 0.6.19 + +### Patch Changes + +- Updated dependencies [[`29a5f5641`](https://github.com/clerkinc/javascript/commit/29a5f56416db5e802ee38512205e5092d9b0b420)]: + - @clerk/shared@1.0.1 + - @clerk/backend@0.32.1 + ## 0.6.18 ### Patch Changes diff --git a/packages/fastify/package.json b/packages/fastify/package.json index 6183d55bec4..0e415bae9d5 100644 --- a/packages/fastify/package.json +++ b/packages/fastify/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/fastify", - "version": "0.6.18", + "version": "0.6.19", "license": "MIT", "description": "Clerk SDK for Fastify", "keywords": [ @@ -30,8 +30,8 @@ "test:cache:clear": "jest --clearCache --useStderr" }, "dependencies": { - "@clerk/backend": "0.32.0", - "@clerk/shared": "1.0.0", + "@clerk/backend": "0.32.1", + "@clerk/shared": "1.0.1", "@clerk/types": "3.57.0", "cookies": "0.8.0" }, diff --git a/packages/gatsby-plugin-clerk/CHANGELOG.md b/packages/gatsby-plugin-clerk/CHANGELOG.md index b6f3e0a03b9..8e52dad91c9 100644 --- a/packages/gatsby-plugin-clerk/CHANGELOG.md +++ b/packages/gatsby-plugin-clerk/CHANGELOG.md @@ -1,5 +1,14 @@ # Change Log +## 4.4.20 + +### Patch Changes + +- Updated dependencies []: + - @clerk/backend@0.32.1 + - @clerk/clerk-react@4.27.1 + - @clerk/clerk-sdk-node@4.12.18 + ## 4.4.19 ### Patch Changes diff --git a/packages/gatsby-plugin-clerk/package.json b/packages/gatsby-plugin-clerk/package.json index 4527f75de29..5687260eba2 100644 --- a/packages/gatsby-plugin-clerk/package.json +++ b/packages/gatsby-plugin-clerk/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-plugin-clerk", - "version": "4.4.19", + "version": "4.4.20", "license": "MIT", "description": "Clerk SDK for Gatsby", "keywords": [ @@ -35,9 +35,9 @@ "lint": "eslint src/" }, "dependencies": { - "@clerk/backend": "0.32.0", - "@clerk/clerk-react": "4.27.0", - "@clerk/clerk-sdk-node": "4.12.17", + "@clerk/backend": "0.32.1", + "@clerk/clerk-react": "4.27.1", + "@clerk/clerk-sdk-node": "4.12.18", "@clerk/types": "3.57.0", "cookie": "0.5.0", "tslib": "2.4.1" diff --git a/packages/nextjs/CHANGELOG.md b/packages/nextjs/CHANGELOG.md index 6b3c2f0329d..0fc81415b4e 100644 --- a/packages/nextjs/CHANGELOG.md +++ b/packages/nextjs/CHANGELOG.md @@ -1,5 +1,15 @@ # Change Log +## 4.26.1 + +### Patch Changes + +- Updated dependencies [[`29a5f5641`](https://github.com/clerkinc/javascript/commit/29a5f56416db5e802ee38512205e5092d9b0b420)]: + - @clerk/shared@1.0.1 + - @clerk/backend@0.32.1 + - @clerk/clerk-react@4.27.1 + - @clerk/clerk-sdk-node@4.12.18 + ## 4.26.0 ### Minor Changes diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index 982fee58a6a..c981b5515c1 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/nextjs", - "version": "4.26.0", + "version": "4.26.1", "license": "MIT", "description": "Clerk SDK for NextJS", "keywords": [ @@ -78,10 +78,10 @@ "test:ci": "jest --maxWorkers=70%" }, "dependencies": { - "@clerk/backend": "0.32.0", - "@clerk/clerk-react": "4.27.0", - "@clerk/clerk-sdk-node": "4.12.17", - "@clerk/shared": "1.0.0", + "@clerk/backend": "0.32.1", + "@clerk/clerk-react": "4.27.1", + "@clerk/clerk-sdk-node": "4.12.18", + "@clerk/shared": "1.0.1", "@clerk/types": "3.57.0", "path-to-regexp": "6.2.1", "tslib": "2.4.1" diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index b09be1c76d8..8d3a0c15d38 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## 4.27.1 + +### Patch Changes + +- Updated dependencies [[`29a5f5641`](https://github.com/clerkinc/javascript/commit/29a5f56416db5e802ee38512205e5092d9b0b420)]: + - @clerk/shared@1.0.1 + ## 4.27.0 ### Minor Changes diff --git a/packages/react/package.json b/packages/react/package.json index 3af333a4890..e7cacb4a957 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/clerk-react", - "version": "4.27.0", + "version": "4.27.1", "license": "MIT", "description": "Clerk React library", "keywords": [ @@ -47,7 +47,7 @@ "test:ci": "jest --maxWorkers=70%" }, "dependencies": { - "@clerk/shared": "1.0.0", + "@clerk/shared": "1.0.1", "@clerk/types": "3.57.0", "tslib": "2.4.1" }, diff --git a/packages/remix/CHANGELOG.md b/packages/remix/CHANGELOG.md index be15f858985..66b820994d0 100644 --- a/packages/remix/CHANGELOG.md +++ b/packages/remix/CHANGELOG.md @@ -1,5 +1,14 @@ # Change Log +## 3.1.2 + +### Patch Changes + +- Updated dependencies [[`29a5f5641`](https://github.com/clerkinc/javascript/commit/29a5f56416db5e802ee38512205e5092d9b0b420)]: + - @clerk/shared@1.0.1 + - @clerk/backend@0.32.1 + - @clerk/clerk-react@4.27.1 + ## 3.1.1 ### Patch Changes diff --git a/packages/remix/package.json b/packages/remix/package.json index 0edcd3d0ebf..c7e27db5f0f 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/remix", - "version": "3.1.1", + "version": "3.1.2", "license": "MIT", "description": "Clerk SDK for Remix", "keywords": [ @@ -60,9 +60,9 @@ "lint:attw": "attw --pack ." }, "dependencies": { - "@clerk/backend": "0.32.0", - "@clerk/clerk-react": "4.27.0", - "@clerk/shared": "1.0.0", + "@clerk/backend": "0.32.1", + "@clerk/clerk-react": "4.27.1", + "@clerk/shared": "1.0.1", "@clerk/types": "3.57.0", "cookie": "0.5.0", "tslib": "2.4.1" diff --git a/packages/sdk-node/CHANGELOG.md b/packages/sdk-node/CHANGELOG.md index 3e805cfb52f..e1bf0edb7c8 100644 --- a/packages/sdk-node/CHANGELOG.md +++ b/packages/sdk-node/CHANGELOG.md @@ -1,5 +1,13 @@ # Change Log +## 4.12.18 + +### Patch Changes + +- Updated dependencies [[`29a5f5641`](https://github.com/clerkinc/javascript/commit/29a5f56416db5e802ee38512205e5092d9b0b420)]: + - @clerk/shared@1.0.1 + - @clerk/backend@0.32.1 + ## 4.12.17 ### Patch Changes diff --git a/packages/sdk-node/package.json b/packages/sdk-node/package.json index 44982335164..b451afab2f8 100644 --- a/packages/sdk-node/package.json +++ b/packages/sdk-node/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/clerk-sdk-node", - "version": "4.12.17", + "version": "4.12.18", "license": "MIT", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -60,8 +60,8 @@ "typescript": "*" }, "dependencies": { - "@clerk/backend": "0.32.0", - "@clerk/shared": "1.0.0", + "@clerk/backend": "0.32.1", + "@clerk/shared": "1.0.1", "@clerk/types": "3.57.0", "@types/cookies": "0.7.7", "@types/express": "4.17.14", diff --git a/packages/shared/CHANGELOG.md b/packages/shared/CHANGELOG.md index 2272a02f28d..405e4c9194e 100644 --- a/packages/shared/CHANGELOG.md +++ b/packages/shared/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log +## 1.0.1 + +### Patch Changes + +- Improve compatibility with Expo ([#1950](https://github.com/clerkinc/javascript/pull/1950)) by [@LekoArts](https://github.com/LekoArts) + ## 1.0.0 ### Major Changes diff --git a/packages/shared/package.json b/packages/shared/package.json index ce76bcf815f..eea3ba840a8 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/shared", - "version": "1.0.0", + "version": "1.0.1", "description": "Internal package utils used by the Clerk SDKs", "sideEffects": false, "files": [ From bc19fe025d8b1ee9339dcffdb1dd785d00c4e766 Mon Sep 17 00:00:00 2001 From: Nikos Polykandriotis Date: Mon, 30 Oct 2023 15:26:42 +0200 Subject: [PATCH 008/202] chore(backend,shared): Include clerkTraceId for backend api errors (#1894) clerkTraceId is used when available and defaults to cloudflares CF Ray id when its missing. --- .changeset/sour-comics-stare.md | 7 +++++ packages/backend/src/api/factory.test.ts | 30 +++++++++++++++++-- packages/backend/src/api/request.ts | 38 +++++++++++------------- packages/backend/src/util/mockFetch.ts | 12 +++++++- packages/shared/src/error.ts | 15 ++++++++-- 5 files changed, 75 insertions(+), 27 deletions(-) create mode 100644 .changeset/sour-comics-stare.md diff --git a/.changeset/sour-comics-stare.md b/.changeset/sour-comics-stare.md new file mode 100644 index 00000000000..4a2d4650078 --- /dev/null +++ b/.changeset/sour-comics-stare.md @@ -0,0 +1,7 @@ +--- +'@clerk/backend': patch +'@clerk/shared': patch +--- + +Add clerkTraceId to ClerkBackendApiResponse and ClerkAPIResponseError to allow for better tracing and debugging API error responses. +Uses `clerk_trace_id` when available in a response and defaults to [`cf-ray` identifier](https://developers.cloudflare.com/fundamentals/reference/cloudflare-ray-id/) if missing. diff --git a/packages/backend/src/api/factory.test.ts b/packages/backend/src/api/factory.test.ts index 04affe51e58..a7d373569e6 100644 --- a/packages/backend/src/api/factory.test.ts +++ b/packages/backend/src/api/factory.test.ts @@ -4,7 +4,7 @@ import sinon from 'sinon'; import emailJson from '../fixtures/responses/email.json'; import userJson from '../fixtures/responses/user.json'; import runtime from '../runtime'; -import { jsonNotOk, jsonOk } from '../util/mockFetch'; +import { jsonError, jsonNotOk, jsonOk } from '../util/mockFetch'; import { createBackendApiClient } from './factory'; export default (QUnit: QUnit) => { @@ -151,12 +151,14 @@ export default (QUnit: QUnit) => { test('executes a failed backend API request and parses the error response', async assert => { const mockErrorPayload = { code: 'whatever_error', message: 'whatever error', meta: {} }; + const traceId = 'trace_id_123'; fakeFetch = sinon.stub(runtime, 'fetch'); - fakeFetch.onCall(0).returns(jsonNotOk({ errors: [mockErrorPayload] })); + fakeFetch.onCall(0).returns(jsonNotOk({ errors: [mockErrorPayload], clerk_trace_id: traceId })); try { await apiClient.users.getUser('user_deadbeef'); } catch (e: any) { + assert.equal(e.clerkTraceId, traceId); assert.equal(e.clerkError, true); assert.equal(e.status, 422); assert.equal(e.errors[0].code, 'whatever_error'); @@ -174,6 +176,30 @@ export default (QUnit: QUnit) => { ); }); + test('executes a failed backend API request and include cf ray id when trace not present', async assert => { + fakeFetch = sinon.stub(runtime, 'fetch'); + fakeFetch.onCall(0).returns(jsonError({ errors: [] })); + + try { + await apiClient.users.getUser('user_deadbeef'); + } catch (e: any) { + assert.equal(e.clerkError, true); + assert.equal(e.status, 500); + assert.equal(e.clerkTraceId, 'mock_cf_ray'); + } + + assert.ok( + fakeFetch.calledOnceWith('https://api.clerk.test/v1/users/user_deadbeef', { + method: 'GET', + headers: { + Authorization: 'Bearer deadbeef', + 'Content-Type': 'application/json', + 'Clerk-Backend-SDK': '@clerk/backend', + }, + }), + ); + }); + test('executes a successful backend API request to delete a domain', async assert => { const domainId = 'dmn_123'; const fakeResponse = { diff --git a/packages/backend/src/api/request.ts b/packages/backend/src/api/request.ts index fee69a39486..0cadfd69a23 100644 --- a/packages/backend/src/api/request.ts +++ b/packages/backend/src/api/request.ts @@ -1,3 +1,4 @@ +import { ClerkAPIResponseError } from '@clerk/shared/error'; import type { ClerkAPIError, ClerkAPIErrorJSON } from '@clerk/types'; import deepmerge from 'deepmerge'; import snakecaseKeys from 'snakecase-keys'; @@ -37,6 +38,7 @@ export type ClerkBackendApiResponse = | { data: null; errors: ClerkAPIError[]; + clerkTraceId?: string; }; export type RequestFunction = ReturnType; @@ -52,13 +54,14 @@ const withLegacyReturn = (cb: any): LegacyRequestFunction => async (...args) => { // @ts-ignore - const { data, errors, status, statusText } = await cb(...args); + const { data, errors, status, statusText, clerkTraceId } = await cb(...args); if (errors === null) { return data; } else { throw new ClerkAPIResponseError(statusText || '', { data: errors, status: status || '', + clerkTraceId, }); } }; @@ -161,6 +164,7 @@ export function buildRequest(options: CreateBackendApiOptions) { message: err.message || 'Unexpected error', }, ], + clerkTraceId: getTraceId(err, res?.headers), }; } @@ -171,6 +175,7 @@ export function buildRequest(options: CreateBackendApiOptions) { // @ts-expect-error status: res?.status, statusText: res?.statusText, + clerkTraceId: getTraceId(err, res?.headers), }; } }; @@ -178,6 +183,17 @@ export function buildRequest(options: CreateBackendApiOptions) { return withLegacyReturn(request); } +// Returns either clerk_trace_id if present in response json, otherwise defaults to CF-Ray header +// If the request failed before receiving a response, returns undefined +function getTraceId(data: unknown, headers?: Headers): string { + if (data && typeof data === 'object' && 'clerk_trace_id' in data && typeof data.clerk_trace_id === 'string') { + return data.clerk_trace_id; + } + + const cfRay = headers?.get('cf-ray'); + return cfRay || ''; +} + function parseErrors(data: unknown): ClerkAPIError[] { if (!!data && typeof data === 'object' && 'errors' in data) { const errors = data.errors as ClerkAPIErrorJSON[]; @@ -197,23 +213,3 @@ function parseError(error: ClerkAPIErrorJSON): ClerkAPIError { }, }; } - -class ClerkAPIResponseError extends Error { - clerkError: true; - - status: number; - message: string; - - errors: ClerkAPIError[]; - - constructor(message: string, { data, status }: { data: ClerkAPIError[]; status: number }) { - super(message); - - Object.setPrototypeOf(this, ClerkAPIResponseError.prototype); - - this.clerkError = true; - this.message = message; - this.status = status; - this.errors = data; - } -} diff --git a/packages/backend/src/util/mockFetch.ts b/packages/backend/src/util/mockFetch.ts index 387c18cbd4e..89cf9f5e686 100644 --- a/packages/backend/src/util/mockFetch.ts +++ b/packages/backend/src/util/mockFetch.ts @@ -42,4 +42,14 @@ export function jsonError(body: unknown, status = 500) { return Promise.resolve(mockResponse); } -const mockHeadersGet = (key: string) => (key === constants.Headers.ContentType ? constants.ContentTypes.Json : null); +const mockHeadersGet = (key: string) => { + if (key === constants.Headers.ContentType) { + return constants.ContentTypes.Json; + } + + if (key === 'cf-ray') { + return 'mock_cf_ray'; + } + + return null; +}; diff --git a/packages/shared/src/error.ts b/packages/shared/src/error.ts index 1c6539b1231..38cb1927d33 100644 --- a/packages/shared/src/error.ts +++ b/packages/shared/src/error.ts @@ -22,6 +22,7 @@ export function isNetworkError(e: any): boolean { interface ClerkAPIResponseOptions { data: ClerkAPIErrorJSON[]; status: number; + clerkTraceId?: string; } // For a comprehensive Metamask error list, please see @@ -88,24 +89,32 @@ export class ClerkAPIResponseError extends Error { status: number; message: string; + clerkTraceId?: string; errors: ClerkAPIError[]; - constructor(message: string, { data, status }: ClerkAPIResponseOptions) { + constructor(message: string, { data, status, clerkTraceId }: ClerkAPIResponseOptions) { super(message); Object.setPrototypeOf(this, ClerkAPIResponseError.prototype); this.status = status; this.message = message; + this.clerkTraceId = clerkTraceId; this.clerkError = true; this.errors = parseErrors(data); } public toString = () => { - return `[${this.name}]\nMessage:${this.message}\nStatus:${this.status}\nSerialized errors: ${this.errors.map(e => - JSON.stringify(e), + let message = `[${this.name}]\nMessage:${this.message}\nStatus:${this.status}\nSerialized errors: ${this.errors.map( + e => JSON.stringify(e), )}`; + + if (this.clerkTraceId) { + message += `\nClerk Trace ID: ${this.clerkTraceId}`; + } + + return message; }; } From fb89c9a9004d60ee11bfce4bc265402550f46449 Mon Sep 17 00:00:00 2001 From: George Desipris <73396808+desiprisg@users.noreply.github.com> Date: Mon, 30 Oct 2023 06:36:27 -0700 Subject: [PATCH 009/202] fix(clerk-js): Deconstruct new feedback props to avoid prop polluting (#1951) --- .changeset/green-spies-leave.md | 5 +++++ .../ui/components/OrganizationProfile/InviteMembersForm.tsx | 4 ++++ 2 files changed, 9 insertions(+) create mode 100644 .changeset/green-spies-leave.md diff --git a/.changeset/green-spies-leave.md b/.changeset/green-spies-leave.md new file mode 100644 index 00000000000..ed8b9bc934f --- /dev/null +++ b/.changeset/green-spies-leave.md @@ -0,0 +1,5 @@ +--- +'@clerk/clerk-js': patch +--- + +Avoid passing some of the new feedback properties down to the HTML basic elements to avoid react warnings in the console. diff --git a/packages/clerk-js/src/ui/components/OrganizationProfile/InviteMembersForm.tsx b/packages/clerk-js/src/ui/components/OrganizationProfile/InviteMembersForm.tsx index 5f8fa230468..5321e5a770f 100644 --- a/packages/clerk-js/src/ui/components/OrganizationProfile/InviteMembersForm.tsx +++ b/packages/clerk-js/src/ui/components/OrganizationProfile/InviteMembersForm.tsx @@ -56,9 +56,13 @@ export const InviteMembersForm = (props: InviteMembersFormProps) => { setError, setWarning, setSuccess, + setInfo, validatePassword, setHasPassedComplexity, hasPassedComplexity, + feedback, + feedbackType, + clearFeedback, ...restEmailAddressProps }, } = emailAddressField; From 1a95065eba3809bfecd0a6584b6a1465d172b36c Mon Sep 17 00:00:00 2001 From: panteliselef Date: Mon, 30 Oct 2023 09:57:27 -0700 Subject: [PATCH 010/202] fix(nextjs): Deprecate user, session, organization from auth() (#1960) --- .changeset/three-rings-wash.md | 5 ++++ packages/nextjs/src/server/getAuth.ts | 40 +++++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 .changeset/three-rings-wash.md diff --git a/.changeset/three-rings-wash.md b/.changeset/three-rings-wash.md new file mode 100644 index 00000000000..59ce3fbdea6 --- /dev/null +++ b/.changeset/three-rings-wash.md @@ -0,0 +1,5 @@ +--- +'@clerk/nextjs': patch +--- + +Deprecate `user`, `session`, and `organization` resources from the returned value of `auth()`. diff --git a/packages/nextjs/src/server/getAuth.ts b/packages/nextjs/src/server/getAuth.ts index 21104a0483b..a93e1ae5eaa 100644 --- a/packages/nextjs/src/server/getAuth.ts +++ b/packages/nextjs/src/server/getAuth.ts @@ -1,4 +1,4 @@ -import type { Organization, Session, SignedInAuthObject, SignedOutAuthObject, User } from '@clerk/backend'; +import type { AuthObject, Organization, Session, SignedInAuthObject, SignedOutAuthObject, User } from '@clerk/backend'; import { AuthStatus, constants, @@ -8,6 +8,7 @@ import { signedInAuthObject, signedOutAuthObject, } from '@clerk/backend'; +import { deprecatedObjectProperty } from '@clerk/shared'; import type { SecretKeyOrApiKey } from '@clerk/types'; import { withLogger } from '../utils/debugLogger'; @@ -18,6 +19,21 @@ import { getAuthKeyFromRequest, getCookie, getHeader, injectSSRStateIntoObject } type GetAuthOpts = Partial; +type AuthObjectWithDeprecatedResources = Omit & { + /** + * @deprecated This will be removed in the next major version + */ + user: T['user']; + /** + * @deprecated This will be removed in the next major version + */ + organization: T['organization']; + /** + * @deprecated This will be removed in the next major version + */ + session: T['session']; +}; + export const createGetAuth = ({ debugLoggerName, noAuthStatusMessage, @@ -26,7 +42,10 @@ export const createGetAuth = ({ debugLoggerName: string; }) => withLogger(debugLoggerName, logger => { - return (req: RequestLike, opts?: GetAuthOpts): SignedInAuthObject | SignedOutAuthObject => { + return ( + req: RequestLike, + opts?: GetAuthOpts, + ): AuthObjectWithDeprecatedResources => { const debug = getHeader(req, constants.Headers.EnableDebug) === 'true'; if (debug) { logger.enable(); @@ -61,7 +80,22 @@ export const createGetAuth = ({ const jwt = parseJwt(req); logger.debug('JWT debug', jwt.raw.text); - return signedInAuthObject(jwt.payload, { ...options, token: jwt.raw.text }); + + const signedIn = signedInAuthObject(jwt.payload, { ...options, token: jwt.raw.text }); + + if (signedIn.user) { + deprecatedObjectProperty(signedIn, 'user', 'Use `clerkClient.users.getUser` instead.'); + } + + if (signedIn.organization) { + deprecatedObjectProperty(signedIn, 'organization', 'Use `clerkClient.organizations.getOrganization` instead.'); + } + + if (signedIn.session) { + deprecatedObjectProperty(signedIn, 'session', 'Use `clerkClient.sessions.getSession` instead.'); + } + + return signedIn; }; }); From a8d7a687e7771f24735ca6ff05da86441193a591 Mon Sep 17 00:00:00 2001 From: Clerk Cookie <136073014+clerk-cookie@users.noreply.github.com> Date: Tue, 31 Oct 2023 05:32:31 -0500 Subject: [PATCH 011/202] fix(shared): Remove "sideEffects" and fix postbuild script (#1974) (#1983) * fix(clerk-expo,shared): Bundle shared in expo * Revert "fix(clerk-expo,shared): Bundle shared in expo" This reverts commit c1e02797f2c3892a50f5158dd92aabc01f848838. * fix(shared): Add files key and fix script * chore(repo): Linting * fix(shared): Add package.json to exports (cherry picked from commit a68eb3083ff68459cd33098e2df190a5ba26c841) Co-authored-by: Lennart --- .changeset/fair-cameras-boil.md | 5 +++++ packages/shared/package.json | 25 ++++++++++++++++++++++--- scripts/subpath-workaround.mjs | 25 ++++++++++++------------- 3 files changed, 39 insertions(+), 16 deletions(-) create mode 100644 .changeset/fair-cameras-boil.md diff --git a/.changeset/fair-cameras-boil.md b/.changeset/fair-cameras-boil.md new file mode 100644 index 00000000000..23fa2a1286d --- /dev/null +++ b/.changeset/fair-cameras-boil.md @@ -0,0 +1,5 @@ +--- +'@clerk/shared': patch +--- + +Remove `"sideEffects": "false"` since the package has side-effects \ No newline at end of file diff --git a/packages/shared/package.json b/packages/shared/package.json index eea3ba840a8..366fa071f82 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -2,9 +2,27 @@ "name": "@clerk/shared", "version": "1.0.1", "description": "Internal package utils used by the Clerk SDKs", - "sideEffects": false, "files": [ - "dist" + "dist", + "browser", + "callWithRetry", + "color", + "cookie", + "date", + "deprecated", + "error", + "file", + "globs", + "handleValueOrFn", + "isomorphicAtob", + "keys", + "loadScript", + "localStorageBroadcastChannel", + "poller", + "proxy", + "underscore", + "url", + "react" ], "main": "./dist/index.js", "exports": { @@ -37,7 +55,8 @@ "types": "./dist/react/index.d.ts", "default": "./dist/react/index.js" } - } + }, + "./package.json": "./package.json" }, "scripts": { "build": "tsup", diff --git a/scripts/subpath-workaround.mjs b/scripts/subpath-workaround.mjs index 8c3c507256a..790e2805ca3 100644 --- a/scripts/subpath-workaround.mjs +++ b/scripts/subpath-workaround.mjs @@ -25,29 +25,28 @@ async function run() { `Found ${subpathHelperFile.subpathNames.length} subpaths and ${subpathHelperFile.subpathFoldersBarrel.length} subpath barrels`, ); - // Check if pkgFile.files already contains the subpaths. This means that the script has already been run and we should exit early - const subpathsAlreadyAdded = subpathHelperFile.subpathNames.some(name => pkgFile.files.includes(name)); + const allFilesNames = [...subpathHelperFile.subpathNames, ...subpathHelperFile.subpathFoldersBarrel, 'dist']; + const hasAllSubpathsInFiles = pkgFile.files.every(name => allFilesNames.includes(name)); - if (subpathsAlreadyAdded) { - return console.log(`Subpaths already added to ${pkgName} package.json. Exiting early`); + if (!hasAllSubpathsInFiles) { + throw new Error('Not all subpaths from the package.json "files" array are in the subpaths.mjs'); } - // Add all subpaths to the "files" property on package.json - pkgFile.files = [...pkgFile.files, ...subpathHelperFile.subpathNames, ...subpathHelperFile.subpathFoldersBarrel]; - - writeJSON(`../packages/${pkgName}/package.json`, pkgFile); - - console.log(`Overwrote package.json for ${pkgName} with subpaths`); - // Create directories for each subpath name using the pkgJsonPlaceholder subpathHelperFile.subpathNames.forEach(name => { - fs.mkdirSync(new URL(`../packages/${pkgName}/${name}`, import.meta.url)); + const dir = new URL(`../packages/${pkgName}/${name}`, import.meta.url); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } writeJSON(`../packages/${pkgName}/${name}/package.json`, pkgJsonPlaceholder(name)); }); // Create directories for each subpath barrel file using the pkgJsonBarrelPlaceholder subpathHelperFile.subpathFoldersBarrel.forEach(name => { - fs.mkdirSync(new URL(`../packages/${pkgName}/${name}`, import.meta.url)); + const dir = new URL(`../packages/${pkgName}/${name}`, import.meta.url); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } writeJSON(`../packages/${pkgName}/${name}/package.json`, pkgJsonBarrelPlaceholder(name)); }); From 7b91aca548f323891888180c0ac9b54d3143151c Mon Sep 17 00:00:00 2001 From: Clerk Cookie <136073014+clerk-cookie@users.noreply.github.com> Date: Tue, 31 Oct 2023 08:54:01 -0500 Subject: [PATCH 012/202] Added style for prefers-color-scheme to interstitial head (#1935) (#1985) * Added style for prefers-color-scheme to interstitial head This checks if the user prefers dark color schemes, and then sets the body to black. This could reduce 'flashes of white'. * feat(backend): Added prefers-color-scheme to interstitial (cherry picked from commit 8b6b094b9c7d09eeae90f8bdfac44d53513aa63d) Co-authored-by: Roy Anger --- .changeset/flat-pots-hear.md | 5 +++++ packages/backend/src/tokens/interstitial.ts | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 .changeset/flat-pots-hear.md diff --git a/.changeset/flat-pots-hear.md b/.changeset/flat-pots-hear.md new file mode 100644 index 00000000000..0fea9b13b1b --- /dev/null +++ b/.changeset/flat-pots-hear.md @@ -0,0 +1,5 @@ +--- +'@clerk/backend': minor +--- + +Added prefers-color-scheme to interstitial diff --git a/packages/backend/src/tokens/interstitial.ts b/packages/backend/src/tokens/interstitial.ts index 5d0e1b93d84..31db9e6b274 100644 --- a/packages/backend/src/tokens/interstitial.ts +++ b/packages/backend/src/tokens/interstitial.ts @@ -58,6 +58,13 @@ export function loadInterstitialFromLocal(options: Omit +