From 5f4676af17daa9bd463d7ec4c85db7aeaeac62db Mon Sep 17 00:00:00 2001 From: panteliselef Date: Wed, 14 Aug 2024 13:03:56 +0300 Subject: [PATCH 1/2] fix(clerk-expo): Export `useLocalCredentials` from a submodule Turns out that tree shaking does not work as expected, and when importing any hook into an app that does not have `expo-local-authentication` installed the app will break due to the missing dependency. --- .changeset/olive-snakes-judge.md | 6 ++++++ packages/expo/local-credentials/package.json | 4 ++++ packages/expo/package.json | 7 ++++++- packages/expo/src/hooks/index.ts | 1 - .../useLocalCredentials => local-credentials}/index.tsx | 0 .../src/local-credentials/useLocalCredentials/index.tsx | 1 + .../useLocalCredentials/shared.ts | 0 .../useLocalCredentials/useLocalCredentials.ts | 0 .../useLocalCredentials/useLocalCredentials.web.ts | 0 9 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 .changeset/olive-snakes-judge.md create mode 100644 packages/expo/local-credentials/package.json rename packages/expo/src/{hooks/useLocalCredentials => local-credentials}/index.tsx (100%) create mode 100644 packages/expo/src/local-credentials/useLocalCredentials/index.tsx rename packages/expo/src/{hooks => local-credentials}/useLocalCredentials/shared.ts (100%) rename packages/expo/src/{hooks => local-credentials}/useLocalCredentials/useLocalCredentials.ts (100%) rename packages/expo/src/{hooks => local-credentials}/useLocalCredentials/useLocalCredentials.web.ts (100%) diff --git a/.changeset/olive-snakes-judge.md b/.changeset/olive-snakes-judge.md new file mode 100644 index 00000000000..962ba0ac0fc --- /dev/null +++ b/.changeset/olive-snakes-judge.md @@ -0,0 +1,6 @@ +--- +"@clerk/clerk-expo": minor +--- + +**Breaking**: Export `useLocalCredentials` from a submodule. +This is a necessary breaking change that addresses the issue introduced in [#3663](https://github.com/clerk/javascript/pull/3663) diff --git a/packages/expo/local-credentials/package.json b/packages/expo/local-credentials/package.json new file mode 100644 index 00000000000..4bc21a2b079 --- /dev/null +++ b/packages/expo/local-credentials/package.json @@ -0,0 +1,4 @@ +{ + "main": "../dist/local-credentials/index.js", + "types": "../dist/local-credentials/index.d.ts" +} diff --git a/packages/expo/package.json b/packages/expo/package.json index 436050b4339..d37b47ce82b 100644 --- a/packages/expo/package.json +++ b/packages/expo/package.json @@ -31,6 +31,10 @@ "./web": { "types": "./dist/web/index.d.ts", "default": "./dist/web/index.js" + }, + "./local-credentials": { + "types": "./dist/local-credentials/index.d.ts", + "default": "./dist/local-credentials/index.js" } }, "main": "./dist/index.js", @@ -38,7 +42,8 @@ "types": "./dist/index.d.ts", "files": [ "dist", - "web" + "web", + "local-credentials" ], "scripts": { "build": "tsup", diff --git a/packages/expo/src/hooks/index.ts b/packages/expo/src/hooks/index.ts index d5bd5f1a91b..969e644bfb9 100644 --- a/packages/expo/src/hooks/index.ts +++ b/packages/expo/src/hooks/index.ts @@ -12,4 +12,3 @@ export { } from '@clerk/clerk-react'; export * from './useOAuth'; -export * from './useLocalCredentials'; diff --git a/packages/expo/src/hooks/useLocalCredentials/index.tsx b/packages/expo/src/local-credentials/index.tsx similarity index 100% rename from packages/expo/src/hooks/useLocalCredentials/index.tsx rename to packages/expo/src/local-credentials/index.tsx diff --git a/packages/expo/src/local-credentials/useLocalCredentials/index.tsx b/packages/expo/src/local-credentials/useLocalCredentials/index.tsx new file mode 100644 index 00000000000..3548abc9206 --- /dev/null +++ b/packages/expo/src/local-credentials/useLocalCredentials/index.tsx @@ -0,0 +1 @@ +export { useLocalCredentials } from './useLocalCredentials'; diff --git a/packages/expo/src/hooks/useLocalCredentials/shared.ts b/packages/expo/src/local-credentials/useLocalCredentials/shared.ts similarity index 100% rename from packages/expo/src/hooks/useLocalCredentials/shared.ts rename to packages/expo/src/local-credentials/useLocalCredentials/shared.ts diff --git a/packages/expo/src/hooks/useLocalCredentials/useLocalCredentials.ts b/packages/expo/src/local-credentials/useLocalCredentials/useLocalCredentials.ts similarity index 100% rename from packages/expo/src/hooks/useLocalCredentials/useLocalCredentials.ts rename to packages/expo/src/local-credentials/useLocalCredentials/useLocalCredentials.ts diff --git a/packages/expo/src/hooks/useLocalCredentials/useLocalCredentials.web.ts b/packages/expo/src/local-credentials/useLocalCredentials/useLocalCredentials.web.ts similarity index 100% rename from packages/expo/src/hooks/useLocalCredentials/useLocalCredentials.web.ts rename to packages/expo/src/local-credentials/useLocalCredentials/useLocalCredentials.web.ts From 60befeb01d5c83303acbac3c181266edbd1d9e55 Mon Sep 17 00:00:00 2001 From: panteliselef Date: Thu, 15 Aug 2024 19:33:32 +0300 Subject: [PATCH 2/2] Update .changeset/olive-snakes-judge.md Co-authored-by: Lennart --- .changeset/olive-snakes-judge.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.changeset/olive-snakes-judge.md b/.changeset/olive-snakes-judge.md index 962ba0ac0fc..aaf6c60428a 100644 --- a/.changeset/olive-snakes-judge.md +++ b/.changeset/olive-snakes-judge.md @@ -2,5 +2,13 @@ "@clerk/clerk-expo": minor --- -**Breaking**: Export `useLocalCredentials` from a submodule. -This is a necessary breaking change that addresses the issue introduced in [#3663](https://github.com/clerk/javascript/pull/3663) +Change the export of `useLocalCredentials` hook from `@clerk/clerk-expo` to `@clerk/clerk-expo/local-credentials`. + +In `@clerk/clerk-expo@2.1.0` a new hook called `useLocalCredentials` was introduced ([PR 3663](https://github.com/clerk/javascript/pull/3663)). This hook is optional, but Expo's bundler has problems tree-shaking this codepath so users were still required to install its peer dependencies even if they didn't use that hook. + +For this **breaking** change, update your import as following: + +```diff +- import { useLocalCredentials } from "@clerk/clerk-expo" ++ import { useLocalCredentials } from "@clerk/clerk-expo/local-credentials" +```