javascript icon indicating copy to clipboard operation
javascript copied to clipboard

feat(expo): Implement Google Sign-In support for Android and iOS

Open chriscanin opened this issue 1 month ago • 18 comments

Description

This PR implements native Google Sign-In support for Expo iOS and Android apps using the @react-native-google-signin/google-signin library. This provides a seamless native authentication experience for users signing in with their Google accounts.

What's New

  • New Hook: useSignInWithGoogle() - Provides native Google Sign-In functionality for iOS and Android
    • Platform-specific implementations for iOS (useSignInWithGoogle.ios.ts) and Android (useSignInWithGoogle.android.ts)
    • Automatic handling of sign-in/sign-up transfer flow
    • Graceful error handling including user cancellation detection
    • Support for custom unsafeMetadata during authentication

Key Features

  • Native UI: Uses platform-native Google Sign-In UI instead of web-based OAuth flow
  • Automatic Flow Detection: Seamlessly handles both new user sign-up and existing user sign-in
  • Error Handling: Comprehensive error handling for:
    • Missing credentials
    • User cancellation (codes SIGN_IN_CANCELLED and -5)
    • Play Services availability (Android)
  • Environment Variable Support: Reads credentials from both Expo config and environment variables
  • Full Test Coverage: Complete unit tests with 100% coverage for the new hook

Files Changed

  • packages/expo/src/hooks/useSignInWithGoogle.ts - Cross-platform stub with helpful error message
  • packages/expo/src/hooks/useSignInWithGoogle.ios.ts - iOS-specific implementation
  • packages/expo/src/hooks/useSignInWithGoogle.android.ts - Android-specific implementation
  • packages/expo/src/hooks/__tests__/useSignInWithGoogle.test.ts - Comprehensive unit tests
  • packages/expo/src/hooks/index.ts - Export new hook
  • packages/expo/package.json - Add optional peer dependency
  • packages/expo/vitest.setup.mts - Add test mocks for expo-modules-core

Implementation Details

iOS Implementation:

  • Uses expo-apple-authentication for native Sign-In
  • Supports oauth_token_apple strategy
  • Handles identity token exchange

Android Implementation:

  • Uses @react-native-google-signin/google-signin library
  • Configures with Web Client ID and Android Client ID
  • Checks Google Play Services availability
  • Handles google_one_tap strategy with ID token

Both implementations:

  • Automatically handle transfer flow when user doesn't exist
  • Return consistent API: { createdSessionId, setActive, signIn, signUp }
  • Support optional unsafeMetadata parameter

Breaking Changes

None - this is a new feature.

Test Plan

  1. Unit tests pass (pnpm test --filter @clerk/clerk-expo)
  2. Build succeeds (pnpm build)
  3. All 9 test cases pass including:
    • Successful sign-in for existing users
    • Transfer flow for new users
    • User cancellation handling (both error codes)
    • Play Services availability check (Android)
    • Missing ID token validation
    • Missing credentials validation
    • Clerk not loaded handling

Documentation

Related documentation PR: [Link to clerk-docs PR]

Checklist

  • [x] pnpm test runs as expected.
  • [x] pnpm build runs as expected.
  • [x] JSDoc comments have been added for the new hook and all exported functions
  • [x] Documentation has been created (see related PR in clerk-docs)

Type of change

  • [x] 🌟 New feature

Summary by CodeRabbit

  • New Features

    • Native Google Sign-In (One Tap) support for iOS and Android: configure, sign-in, create account, explicit sign-in, sign-out; iOS plugin can auto-configure URL scheme.
    • Cross-platform useSignInWithGoogle hook with shared flow and platform-specific adapters.
    • Public JS types, helpers and Expo module metadata for One Tap integration.
  • Tests

    • Unit tests covering Android sign-in hook flows.
  • Chores

    • Package metadata, build config and packaging updates; CocoaPods spec and Android build config added; gitignore updated.

✏️ Tip: You can customize this high-level summary in your review settings.

chriscanin avatar Nov 12 '25 19:11 chriscanin

🦋 Changeset detected

Latest commit: b192d3134d8f7ffd005063eecedcaaa1b546e8b5

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@clerk/expo Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

changeset-bot[bot] avatar Nov 12 '25 19:11 changeset-bot[bot]

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
clerk-js-sandbox Ready Ready Preview, Comment Dec 18, 2025 6:36pm

vercel[bot] avatar Nov 12 '25 19:11 vercel[bot]

📝 Walkthrough

Walkthrough

Adds native Google Sign-In support for Expo across Android and iOS. Android: new Gradle build script, minimal AndroidManifest, and a Kotlin Expo module using Credential Manager. iOS: Swift Expo module and a CocoaPods podspec. Adds a TypeScript bridge (ClerkGoogleOneTapSignIn), shared and platform-specific useSignInWithGoogle hooks, types, and unit tests. Introduces an Expo config plugin to inject an iOS URL scheme, updates package.json exports/files/peer‑dev deps, and adds expo-module.config.json and related packaging files.

Pre-merge checks

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 52.38% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main objective: implementing native Google Sign-In support for both Android and iOS platforms in the Expo package. It is specific, concise, and directly reflects the primary changes in the changeset.

📜 Recent review details

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 3514955402938f638855add5d8327d3be7642ac1 and b192d3134d8f7ffd005063eecedcaaa1b546e8b5.

📒 Files selected for processing (1)
  • packages/expo/package.json (4 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/expo/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (27)
  • GitHub Check: Static analysis
  • GitHub Check: Publish with pkg-pr-new
  • GitHub Check: Unit Tests (**)
  • GitHub Check: Integration Tests (tanstack-react-start, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 15)
  • GitHub Check: Integration Tests (custom, chrome)
  • GitHub Check: Integration Tests (nextjs, chrome, 16)
  • GitHub Check: Integration Tests (machine, chrome, RQ)
  • GitHub Check: Integration Tests (nextjs, chrome, 16, RQ)
  • GitHub Check: Integration Tests (quickstart, chrome, 15)
  • GitHub Check: Integration Tests (billing, chrome)
  • GitHub Check: Integration Tests (quickstart, chrome, 16)
  • GitHub Check: Integration Tests (react-router, chrome)
  • GitHub Check: Integration Tests (billing, chrome, RQ)
  • GitHub Check: Integration Tests (machine, chrome)
  • GitHub Check: Integration Tests (vue, chrome)
  • GitHub Check: Integration Tests (sessions, chrome)
  • GitHub Check: Integration Tests (astro, chrome)
  • GitHub Check: Integration Tests (localhost, chrome)
  • GitHub Check: Integration Tests (handshake, chrome)
  • GitHub Check: Integration Tests (nuxt, chrome)
  • GitHub Check: Integration Tests (generic, chrome)
  • GitHub Check: Integration Tests (handshake:staging, chrome)
  • GitHub Check: Integration Tests (express, chrome)
  • GitHub Check: Integration Tests (sessions:staging, chrome)
  • GitHub Check: Integration Tests (ap-flows, chrome)
  • GitHub Check: semgrep-cloud-platform/scan

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot] avatar Nov 12 '25 19:11 coderabbitai[bot]

Open in StackBlitz

@clerk/agent-toolkit

npm i https://pkg.pr.new/@clerk/agent-toolkit@7208
@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@7208
@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@7208
@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@7208
@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@7208
@clerk/dev-cli

npm i https://pkg.pr.new/@clerk/dev-cli@7208
@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@7208
@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@7208
@clerk/express

npm i https://pkg.pr.new/@clerk/express@7208
@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@7208
@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@7208
@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@7208
@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@7208
@clerk/react

npm i https://pkg.pr.new/@clerk/react@7208
@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@7208
@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@7208
@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@7208
@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@7208
@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@7208
@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@7208
@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@7208

commit: b192d31

pkg-pr-new[bot] avatar Nov 25 '25 21:11 pkg-pr-new[bot]

!snapshot

chriscanin avatar Dec 02 '25 21:12 chriscanin

!snapshot

chriscanin avatar Dec 05 '25 17:12 chriscanin

Hey @chriscanin - the snapshot version command generated the following package versions:

Package Version
@clerk/agent-toolkit 0.2.6-snapshot.v20251205170211
@clerk/astro 2.16.4-snapshot.v20251205170211
@clerk/backend 2.25.0-snapshot.v20251205170211
@clerk/chrome-extension 2.8.7-snapshot.v20251205170211
@clerk/clerk-js 5.112.0-snapshot.v20251205170211
@clerk/elements 0.23.87-snapshot.v20251205170211
@clerk/clerk-expo 2.20.0-snapshot.v20251205170211
@clerk/expo-passkeys 0.4.23-snapshot.v20251205170211
@clerk/express 1.7.54-snapshot.v20251205170211
@clerk/fastify 2.6.6-snapshot.v20251205170211
@clerk/localizations 3.29.0-snapshot.v20251205170211
@clerk/nextjs 6.35.6-snapshot.v20251205170211
@clerk/nuxt 1.13.4-snapshot.v20251205170211
@clerk/clerk-react 5.57.1-snapshot.v20251205170211
@clerk/react-router 2.3.1-snapshot.v20251205170211
@clerk/remix 4.13.21-snapshot.v20251205170211
@clerk/shared 3.37.0-snapshot.v20251205170211
@clerk/tanstack-react-start 0.27.6-snapshot.v20251205170211
@clerk/testing 1.13.20-snapshot.v20251205170211
@clerk/themes 2.4.41-snapshot.v20251205170211
@clerk/types 4.101.4-snapshot.v20251205170211
@clerk/vue 1.17.1-snapshot.v20251205170211

Tip: Use the snippet copy button below to quickly install the required packages. @clerk/agent-toolkit

npm i @clerk/[email protected] --save-exact

@clerk/astro

npm i @clerk/[email protected] --save-exact

@clerk/backend

npm i @clerk/[email protected] --save-exact

@clerk/chrome-extension

npm i @clerk/[email protected] --save-exact

@clerk/clerk-js

npm i @clerk/[email protected] --save-exact

@clerk/elements

npm i @clerk/[email protected] --save-exact

@clerk/clerk-expo

npm i @clerk/[email protected] --save-exact

@clerk/expo-passkeys

npm i @clerk/[email protected] --save-exact

@clerk/express

npm i @clerk/[email protected] --save-exact

@clerk/fastify

npm i @clerk/[email protected] --save-exact

@clerk/localizations

npm i @clerk/[email protected] --save-exact

@clerk/nextjs

npm i @clerk/[email protected] --save-exact

@clerk/nuxt

npm i @clerk/[email protected] --save-exact

@clerk/clerk-react

npm i @clerk/[email protected] --save-exact

@clerk/react-router

npm i @clerk/[email protected] --save-exact

@clerk/remix

npm i @clerk/[email protected] --save-exact

@clerk/shared

npm i @clerk/[email protected] --save-exact

@clerk/tanstack-react-start

npm i @clerk/[email protected] --save-exact

@clerk/testing

npm i @clerk/[email protected] --save-exact

@clerk/themes

npm i @clerk/[email protected] --save-exact

@clerk/types

npm i @clerk/[email protected] --save-exact

@clerk/vue

npm i @clerk/[email protected] --save-exact

clerk-cookie avatar Dec 05 '25 17:12 clerk-cookie

!snapshot

chriscanin avatar Dec 11 '25 03:12 chriscanin

!snapshot

chriscanin avatar Dec 16 '25 17:12 chriscanin

Hey @chriscanin - the snapshot version command generated the following package versions:

Package Version
@clerk/agent-toolkit 0.2.9-snapshot.v20251216175437
@clerk/astro 3.0.0-snapshot.v20251216175437
@clerk/backend 3.0.0-snapshot.v20251216175437
@clerk/chrome-extension 3.0.0-snapshot.v20251216175437
@clerk/clerk-js 3.0.0-snapshot.v20251216175437
@clerk/dev-cli 1.0.0-snapshot.v20251216175437
@clerk/expo 3.0.0-snapshot.v20251216175437
@clerk/expo-passkeys 1.0.0-snapshot.v20251216175437
@clerk/express 2.0.0-snapshot.v20251216175437
@clerk/fastify 2.6.9-snapshot.v20251216175437
@clerk/localizations 4.0.0-snapshot.v20251216175437
@clerk/nextjs 7.0.0-snapshot.v20251216175437
@clerk/nuxt 2.0.0-snapshot.v20251216175437
@clerk/react 6.0.0-snapshot.v20251216175437
@clerk/react-router 3.0.0-snapshot.v20251216175437
@clerk/shared 4.0.0-snapshot.v20251216175437
@clerk/tanstack-react-start 1.0.0-snapshot.v20251216175437
@clerk/testing 2.0.0-snapshot.v20251216175437
@clerk/ui 1.0.0-snapshot.v20251216175437
@clerk/upgrade 2.0.0-snapshot.v20251216175437
@clerk/vue 2.0.0-snapshot.v20251216175437

Tip: Use the snippet copy button below to quickly install the required packages. @clerk/agent-toolkit

npm i @clerk/[email protected] --save-exact

@clerk/astro

npm i @clerk/[email protected] --save-exact

@clerk/backend

npm i @clerk/[email protected] --save-exact

@clerk/chrome-extension

npm i @clerk/[email protected] --save-exact

@clerk/clerk-js

npm i @clerk/[email protected] --save-exact

@clerk/dev-cli

npm i @clerk/[email protected] --save-exact

@clerk/expo

npm i @clerk/[email protected] --save-exact

@clerk/expo-passkeys

npm i @clerk/[email protected] --save-exact

@clerk/express

npm i @clerk/[email protected] --save-exact

@clerk/fastify

npm i @clerk/[email protected] --save-exact

@clerk/localizations

npm i @clerk/[email protected] --save-exact

@clerk/nextjs

npm i @clerk/[email protected] --save-exact

@clerk/nuxt

npm i @clerk/[email protected] --save-exact

@clerk/react

npm i @clerk/[email protected] --save-exact

@clerk/react-router

npm i @clerk/[email protected] --save-exact

@clerk/shared

npm i @clerk/[email protected] --save-exact

@clerk/tanstack-react-start

npm i @clerk/[email protected] --save-exact

@clerk/testing

npm i @clerk/[email protected] --save-exact

@clerk/ui

npm i @clerk/[email protected] --save-exact

@clerk/upgrade

npm i @clerk/[email protected] --save-exact

@clerk/vue

npm i @clerk/[email protected] --save-exact

clerk-cookie avatar Dec 16 '25 17:12 clerk-cookie

!snapshot

chriscanin avatar Dec 17 '25 16:12 chriscanin

Hey @chriscanin - the snapshot version command generated the following package versions:

Package Version
@clerk/agent-toolkit 0.2.9-snapshot.v20251217165918
@clerk/astro 3.0.0-snapshot.v20251217165918
@clerk/backend 3.0.0-snapshot.v20251217165918
@clerk/chrome-extension 3.0.0-snapshot.v20251217165918
@clerk/clerk-js 6.0.0-snapshot.v20251217165918
@clerk/dev-cli 1.0.0-snapshot.v20251217165918
@clerk/expo 3.0.0-snapshot.v20251217165918
@clerk/expo-passkeys 1.0.0-snapshot.v20251217165918
@clerk/express 2.0.0-snapshot.v20251217165918
@clerk/fastify 2.6.9-snapshot.v20251217165918
@clerk/localizations 4.0.0-snapshot.v20251217165918
@clerk/nextjs 7.0.0-snapshot.v20251217165918
@clerk/nuxt 2.0.0-snapshot.v20251217165918
@clerk/react 6.0.0-snapshot.v20251217165918
@clerk/react-router 3.0.0-snapshot.v20251217165918
@clerk/shared 4.0.0-snapshot.v20251217165918
@clerk/tanstack-react-start 1.0.0-snapshot.v20251217165918
@clerk/testing 2.0.0-snapshot.v20251217165918
@clerk/ui 1.0.0-snapshot.v20251217165918
@clerk/upgrade 2.0.0-snapshot.v20251217165918
@clerk/vue 2.0.0-snapshot.v20251217165918

Tip: Use the snippet copy button below to quickly install the required packages. @clerk/agent-toolkit

npm i @clerk/[email protected] --save-exact

@clerk/astro

npm i @clerk/[email protected] --save-exact

@clerk/backend

npm i @clerk/[email protected] --save-exact

@clerk/chrome-extension

npm i @clerk/[email protected] --save-exact

@clerk/clerk-js

npm i @clerk/[email protected] --save-exact

@clerk/dev-cli

npm i @clerk/[email protected] --save-exact

@clerk/expo

npm i @clerk/[email protected] --save-exact

@clerk/expo-passkeys

npm i @clerk/[email protected] --save-exact

@clerk/express

npm i @clerk/[email protected] --save-exact

@clerk/fastify

npm i @clerk/[email protected] --save-exact

@clerk/localizations

npm i @clerk/[email protected] --save-exact

@clerk/nextjs

npm i @clerk/[email protected] --save-exact

@clerk/nuxt

npm i @clerk/[email protected] --save-exact

@clerk/react

npm i @clerk/[email protected] --save-exact

@clerk/react-router

npm i @clerk/[email protected] --save-exact

@clerk/shared

npm i @clerk/[email protected] --save-exact

@clerk/tanstack-react-start

npm i @clerk/[email protected] --save-exact

@clerk/testing

npm i @clerk/[email protected] --save-exact

@clerk/ui

npm i @clerk/[email protected] --save-exact

@clerk/upgrade

npm i @clerk/[email protected] --save-exact

@clerk/vue

npm i @clerk/[email protected] --save-exact

clerk-cookie avatar Dec 17 '25 17:12 clerk-cookie

!snapshot

chriscanin avatar Dec 17 '25 19:12 chriscanin

Hey @chriscanin - the snapshot version command generated the following package versions:

Package Version
@clerk/agent-toolkit 0.2.9-snapshot.v20251217194100
@clerk/astro 3.0.0-snapshot.v20251217194100
@clerk/backend 3.0.0-snapshot.v20251217194100
@clerk/chrome-extension 3.0.0-snapshot.v20251217194100
@clerk/clerk-js 6.0.0-snapshot.v20251217194100
@clerk/dev-cli 1.0.0-snapshot.v20251217194100
@clerk/expo 3.0.0-snapshot.v20251217194100
@clerk/expo-passkeys 1.0.0-snapshot.v20251217194100
@clerk/express 2.0.0-snapshot.v20251217194100
@clerk/fastify 2.6.9-snapshot.v20251217194100
@clerk/localizations 4.0.0-snapshot.v20251217194100
@clerk/nextjs 7.0.0-snapshot.v20251217194100
@clerk/nuxt 2.0.0-snapshot.v20251217194100
@clerk/react 6.0.0-snapshot.v20251217194100
@clerk/react-router 3.0.0-snapshot.v20251217194100
@clerk/shared 4.0.0-snapshot.v20251217194100
@clerk/tanstack-react-start 1.0.0-snapshot.v20251217194100
@clerk/testing 2.0.0-snapshot.v20251217194100
@clerk/ui 1.0.0-snapshot.v20251217194100
@clerk/upgrade 2.0.0-snapshot.v20251217194100
@clerk/vue 2.0.0-snapshot.v20251217194100

Tip: Use the snippet copy button below to quickly install the required packages. @clerk/agent-toolkit

npm i @clerk/[email protected] --save-exact

@clerk/astro

npm i @clerk/[email protected] --save-exact

@clerk/backend

npm i @clerk/[email protected] --save-exact

@clerk/chrome-extension

npm i @clerk/[email protected] --save-exact

@clerk/clerk-js

npm i @clerk/[email protected] --save-exact

@clerk/dev-cli

npm i @clerk/[email protected] --save-exact

@clerk/expo

npm i @clerk/[email protected] --save-exact

@clerk/expo-passkeys

npm i @clerk/[email protected] --save-exact

@clerk/express

npm i @clerk/[email protected] --save-exact

@clerk/fastify

npm i @clerk/[email protected] --save-exact

@clerk/localizations

npm i @clerk/[email protected] --save-exact

@clerk/nextjs

npm i @clerk/[email protected] --save-exact

@clerk/nuxt

npm i @clerk/[email protected] --save-exact

@clerk/react

npm i @clerk/[email protected] --save-exact

@clerk/react-router

npm i @clerk/[email protected] --save-exact

@clerk/shared

npm i @clerk/[email protected] --save-exact

@clerk/tanstack-react-start

npm i @clerk/[email protected] --save-exact

@clerk/testing

npm i @clerk/[email protected] --save-exact

@clerk/ui

npm i @clerk/[email protected] --save-exact

@clerk/upgrade

npm i @clerk/[email protected] --save-exact

@clerk/vue

npm i @clerk/[email protected] --save-exact

clerk-cookie avatar Dec 17 '25 19:12 clerk-cookie

!snapshot

chriscanin avatar Dec 18 '25 16:12 chriscanin

Hey @chriscanin - the snapshot version command generated the following package versions:

Package Version
@clerk/agent-toolkit 0.2.9-snapshot.v20251218165926
@clerk/astro 3.0.0-snapshot.v20251218165926
@clerk/backend 3.0.0-snapshot.v20251218165926
@clerk/chrome-extension 3.0.0-snapshot.v20251218165926
@clerk/clerk-js 6.0.0-snapshot.v20251218165926
@clerk/dev-cli 1.0.0-snapshot.v20251218165926
@clerk/expo 3.0.0-snapshot.v20251218165926
@clerk/expo-passkeys 1.0.0-snapshot.v20251218165926
@clerk/express 2.0.0-snapshot.v20251218165926
@clerk/fastify 2.6.9-snapshot.v20251218165926
@clerk/localizations 4.0.0-snapshot.v20251218165926
@clerk/nextjs 7.0.0-snapshot.v20251218165926
@clerk/nuxt 2.0.0-snapshot.v20251218165926
@clerk/react 6.0.0-snapshot.v20251218165926
@clerk/react-router 3.0.0-snapshot.v20251218165926
@clerk/shared 4.0.0-snapshot.v20251218165926
@clerk/tanstack-react-start 1.0.0-snapshot.v20251218165926
@clerk/testing 2.0.0-snapshot.v20251218165926
@clerk/ui 1.0.0-snapshot.v20251218165926
@clerk/upgrade 2.0.0-snapshot.v20251218165926
@clerk/vue 2.0.0-snapshot.v20251218165926

Tip: Use the snippet copy button below to quickly install the required packages. @clerk/agent-toolkit

npm i @clerk/[email protected] --save-exact

@clerk/astro

npm i @clerk/[email protected] --save-exact

@clerk/backend

npm i @clerk/[email protected] --save-exact

@clerk/chrome-extension

npm i @clerk/[email protected] --save-exact

@clerk/clerk-js

npm i @clerk/[email protected] --save-exact

@clerk/dev-cli

npm i @clerk/[email protected] --save-exact

@clerk/expo

npm i @clerk/[email protected] --save-exact

@clerk/expo-passkeys

npm i @clerk/[email protected] --save-exact

@clerk/express

npm i @clerk/[email protected] --save-exact

@clerk/fastify

npm i @clerk/[email protected] --save-exact

@clerk/localizations

npm i @clerk/[email protected] --save-exact

@clerk/nextjs

npm i @clerk/[email protected] --save-exact

@clerk/nuxt

npm i @clerk/[email protected] --save-exact

@clerk/react

npm i @clerk/[email protected] --save-exact

@clerk/react-router

npm i @clerk/[email protected] --save-exact

@clerk/shared

npm i @clerk/[email protected] --save-exact

@clerk/tanstack-react-start

npm i @clerk/[email protected] --save-exact

@clerk/testing

npm i @clerk/[email protected] --save-exact

@clerk/ui

npm i @clerk/[email protected] --save-exact

@clerk/upgrade

npm i @clerk/[email protected] --save-exact

@clerk/vue

npm i @clerk/[email protected] --save-exact

clerk-cookie avatar Dec 18 '25 17:12 clerk-cookie

!snapshot

chriscanin avatar Dec 18 '25 18:12 chriscanin

Hey @chriscanin - the snapshot version command generated the following package versions:

Package Version
@clerk/agent-toolkit 0.2.9-snapshot.v20251218183643
@clerk/astro 3.0.0-snapshot.v20251218183643
@clerk/backend 3.0.0-snapshot.v20251218183643
@clerk/chrome-extension 3.0.0-snapshot.v20251218183643
@clerk/clerk-js 6.0.0-snapshot.v20251218183643
@clerk/dev-cli 1.0.0-snapshot.v20251218183643
@clerk/expo 3.0.0-snapshot.v20251218183643
@clerk/expo-passkeys 1.0.0-snapshot.v20251218183643
@clerk/express 2.0.0-snapshot.v20251218183643
@clerk/fastify 2.6.9-snapshot.v20251218183643
@clerk/localizations 4.0.0-snapshot.v20251218183643
@clerk/nextjs 7.0.0-snapshot.v20251218183643
@clerk/nuxt 2.0.0-snapshot.v20251218183643
@clerk/react 6.0.0-snapshot.v20251218183643
@clerk/react-router 3.0.0-snapshot.v20251218183643
@clerk/shared 4.0.0-snapshot.v20251218183643
@clerk/tanstack-react-start 1.0.0-snapshot.v20251218183643
@clerk/testing 2.0.0-snapshot.v20251218183643
@clerk/ui 1.0.0-snapshot.v20251218183643
@clerk/upgrade 2.0.0-snapshot.v20251218183643
@clerk/vue 2.0.0-snapshot.v20251218183643

Tip: Use the snippet copy button below to quickly install the required packages. @clerk/agent-toolkit

npm i @clerk/[email protected] --save-exact

@clerk/astro

npm i @clerk/[email protected] --save-exact

@clerk/backend

npm i @clerk/[email protected] --save-exact

@clerk/chrome-extension

npm i @clerk/[email protected] --save-exact

@clerk/clerk-js

npm i @clerk/[email protected] --save-exact

@clerk/dev-cli

npm i @clerk/[email protected] --save-exact

@clerk/expo

npm i @clerk/[email protected] --save-exact

@clerk/expo-passkeys

npm i @clerk/[email protected] --save-exact

@clerk/express

npm i @clerk/[email protected] --save-exact

@clerk/fastify

npm i @clerk/[email protected] --save-exact

@clerk/localizations

npm i @clerk/[email protected] --save-exact

@clerk/nextjs

npm i @clerk/[email protected] --save-exact

@clerk/nuxt

npm i @clerk/[email protected] --save-exact

@clerk/react

npm i @clerk/[email protected] --save-exact

@clerk/react-router

npm i @clerk/[email protected] --save-exact

@clerk/shared

npm i @clerk/[email protected] --save-exact

@clerk/tanstack-react-start

npm i @clerk/[email protected] --save-exact

@clerk/testing

npm i @clerk/[email protected] --save-exact

@clerk/ui

npm i @clerk/[email protected] --save-exact

@clerk/upgrade

npm i @clerk/[email protected] --save-exact

@clerk/vue

npm i @clerk/[email protected] --save-exact

clerk-cookie avatar Dec 18 '25 18:12 clerk-cookie