diff --git a/.changeset/pretty-peas-search.md b/.changeset/pretty-peas-search.md new file mode 100644 index 00000000000..e40c7113291 --- /dev/null +++ b/.changeset/pretty-peas-search.md @@ -0,0 +1,5 @@ +--- +"@clerk/astro": patch +--- + +Fix incorrect authentication state when subscribing to client stores. diff --git a/package-lock.json b/package-lock.json index 5629e96b012..d7bebfcefc9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39015,20 +39015,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/nanostores": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/nanostores/-/nanostores-0.10.3.tgz", - "integrity": "sha512-Nii8O1XqmawqSCf9o2aWqVxhKRN01+iue9/VEd1TiJCr9VT5XxgPFbF1Edl1XN6pwJcZRsl8Ki+z01yb/T/C2g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "engines": { - "node": "^18.0.0 || >=20.0.0" - } - }, "node_modules/napi-build-utils": { "version": "1.0.2", "dev": true, @@ -51857,7 +51843,7 @@ "@clerk/shared": "2.5.2", "@clerk/types": "4.14.0", "nanoid": "5.0.7", - "nanostores": "0.10.3", + "nanostores": "0.11.2", "path-to-regexp": "6.2.2" }, "devDependencies": { @@ -51971,6 +51957,20 @@ "node": "^18 || >=20" } }, + "packages/astro/node_modules/nanostores": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/nanostores/-/nanostores-0.11.0.tgz", + "integrity": "sha512-fT2u3vmWmUt93G9dmUgpnbs3AAYJb6lzu7KrJ1FdC/rjFopGiboS3bfKYv6NNkuY6g6eiRakTR48wKSL/F5C+g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, "packages/backend": { "name": "@clerk/backend", "version": "1.7.0", diff --git a/packages/astro/package.json b/packages/astro/package.json index ec636e8d003..5ed154c0c29 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -83,7 +83,7 @@ "@clerk/shared": "2.5.2", "@clerk/types": "4.14.0", "nanoid": "5.0.7", - "nanostores": "0.10.3", + "nanostores": "0.11.2", "path-to-regexp": "6.2.2" }, "devDependencies": { diff --git a/packages/astro/src/stores/external.ts b/packages/astro/src/stores/external.ts index d122767c191..3ce77d20a8f 100644 --- a/packages/astro/src/stores/external.ts +++ b/packages/astro/src/stores/external.ts @@ -1,6 +1,6 @@ import { deriveState } from '@clerk/shared/deriveState'; import { eventMethodCalled } from '@clerk/shared/telemetry'; -import { computed, onMount, type Store } from 'nanostores'; +import { batched, computed, onMount, type Store } from 'nanostores'; import { $clerk, $csrState, $initialState } from './internal'; @@ -13,7 +13,7 @@ import { $clerk, $csrState, $initialState } from './internal'; * * $authStore.subscribe((auth) => console.log(auth.userId)) */ -export const $authStore = computed([$csrState, $initialState], (state, initialState) => { +export const $authStore = batched([$csrState, $initialState], (state, initialState) => { return deriveState( state.isLoaded, { diff --git a/packages/astro/src/stores/internal.ts b/packages/astro/src/stores/internal.ts index 2ac76f464f0..d9ea37d6902 100644 --- a/packages/astro/src/stores/internal.ts +++ b/packages/astro/src/stores/internal.ts @@ -16,10 +16,10 @@ export const $csrState = map<{ organization: OrganizationResource | undefined | null; }>({ isLoaded: false, - client: null, - user: null, - session: null, - organization: null, + client: undefined, + user: undefined, + session: undefined, + organization: undefined, }); export const $initialState = map();