Derive apiUrl from the publishable key using apiUrlFromPublishableKey(), matching the behavior of other Clerk SDKs (@clerk/nextjs, @clerk/astro, etc.). Staging publishable keys (with .accountsstage.dev) now automatically route to https://api.clerkstage.dev without requiring a manual NUXT_PUBLIC_CLERK_API_URL override. Explicit apiUrl configuration still takes priority. (#8208) by @wyattjoh
Updated dependencies [9a00a1c, 00715a6, 39ee042, b8c73d3, 1827b50, 7707a31, 849f198, 7c7d025]:
Add directory-level package.json fallback stubs for all subpath exports so that imports like @clerk/expo/token-cache resolve correctly in React Native bundlers that don't support the exports field (e.g., Metro without unstable_enablePackageExports). (#8172) by @jacekradko
Re-introduce two-way JS/native session sync for expo native components (#8088) by @chriscanin
Updated dependencies [9a00a1c, 00715a6, b8c73d3, 1827b50, 7707a31]:
Add support for seat-based billing plans in Clerk Billing. (#8006) by @dstaley
Add EnterpriseConnection resource (#8175) by @LauraBeatris
User.getEnterpriseConnections() was wrongly typed as returning EnterpriseAccountConnectionResource[], it now returns EnterpriseConnectionResource[]
Allow to link external accounts to enterprise accounts via UserProfile (#8091) by @NicolasLopes7
Improved error handling when creating API keys. (#8056) by @wobsoriano
Use distinct password placeholder for sign-up forms (#8082) by @wobsoriano
Add support for seat-based billing plans in Clerk Billing. (#8006) by @dstaley
Allow to link external accounts to enterprise accounts via UserProfile (#8091) by @NicolasLopes7
Using length token in minimum and maximum length for swedish translations. (#8167) by @DinoSourcesRex
Improved error handling when creating API keys. (#8056) by @wobsoriano
fix(localizations): add missing Hungarian translations for form placeholders and legal consent (#8080) by @tornaia
Use distinct password placeholder for sign-up forms (#8082) by @wobsoriano
Added missing Bulgarian translations for UserProfile component (#8174) by @NikolayDikov-work
Updated dependencies [9a00a1c, 00715a6, b8c73d3, 1827b50, 7707a31]:
Add support for seat-based billing plans in Clerk Billing. (#8006) by @dstaley
Add EnterpriseConnection resource (#8175) by @LauraBeatris
User.getEnterpriseConnections() was wrongly typed as returning EnterpriseAccountConnectionResource[], it now returns EnterpriseConnectionResource[]
Allow to link external accounts to enterprise accounts via UserProfile (#8091) by @NicolasLopes7
Fix frontend API proxy following redirects server-side instead of passing them to the browser. The proxy's fetch() call now uses redirect: 'manual' so that 3xx responses from FAPI (e.g. after OAuth callbacks) are returned to the client as-is, matching standard HTTP proxy behavior. (#8186) by @brkalow
Improve the built-in Clerk Frontend API proxy, adding support for abort signals and addressing a number of small edge cases. (#8163) by @brkalow
Add EnterpriseAccount and EnterpriseAccountConnection classes to @clerk/backend, restoring enterprise SSO account data on the User object that was lost when samlAccounts was removed in v3. (#8181) by @iagodahlem
Updated dependencies [9a00a1c, 00715a6, b8c73d3, 1827b50, 7707a31]:
Fix dev browser token being read from a stale non-partitioned cookie when partitionedCookies is enabled. The token is now kept in memory so FAPI requests always use the authoritative value. (#8161) by @brkalow
Fix satelliteAutoSync to default to false as documented. Previously, not passing the prop resulted in undefined, which was treated as true due to a strict equality check (=== false). This preserved Core 2 auto-sync behavior instead of the intended Core 3 default. The check is now !== true, so both undefined and false skip automatic satellite sync. (#8001) by @nikosdouvlis
Fix token cache refresh timer leak that caused accelerating token refresh requests after session.touch() or organization switching. (#8098) by @jacekradko
Skip expired_token retry flow when Session Minter is enabled. When sessionMinter is on, the token is sent in the POST body, so the retry-with-expired-token fallback is unnecessary. The retry flow is preserved for non-Session Minter mode. (#8108) by @nikosdouvlis
Send force_origin=true body param on /tokens requests when skipCache is true, so FAPI Proxy routes to origin instead of Session Minter. (#8106) by @nikosdouvlis
signOutOptions prop on <SignOutButton /> in favor of top-level redirectUrl and sessionId props. The signOutOptions prop still works but now emits a deprecation warning. (#8147) by @jacekradkoAdd the missing Dutch translation for organizationProfile.start.profileSection.primaryButton. (#7711) by @MaartenKoller
This updates the value from an empty string to "Profiel bijwerken" so the primary button label is shown correctly in the organization profile section.
No consumer code changes are required.