Skip to content

fix(backend): Type JwtTemplatesApi.list as PaginatedResourceResponse (Core 2)#7868

Merged
thiskevinwang merged 4 commits intorelease/core-2from
cherry-pick/6fb0c85ba
Feb 18, 2026
Merged

fix(backend): Type JwtTemplatesApi.list as PaginatedResourceResponse (Core 2)#7868
thiskevinwang merged 4 commits intorelease/core-2from
cherry-pick/6fb0c85ba

Conversation

@thiskevinwang
Copy link
Member

@thiskevinwang thiskevinwang commented Feb 17, 2026

gcp 6fb0c85ba

@vercel
Copy link

vercel bot commented Feb 17, 2026

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

Project Deployment Actions Updated (UTC)
clerk-js-sandbox Ready Ready Preview, Comment Feb 18, 2026 9:01pm

Request Review

@changeset-bot
Copy link

changeset-bot bot commented Feb 17, 2026

🦋 Changeset detected

Latest commit: b7bae09

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

This PR includes changesets to release 11 packages
Name Type
@clerk/backend Patch
@clerk/agent-toolkit Patch
@clerk/astro Patch
@clerk/express Patch
@clerk/fastify Patch
@clerk/nextjs Patch
@clerk/nuxt Patch
@clerk/react-router Patch
@clerk/remix Patch
@clerk/tanstack-react-start Patch
@clerk/testing Patch

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 17, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This is a major release transitioning to the Core 2 release branch (release/core-2) that introduces Solana Web3 authentication support, organization creation defaults with gating, role set migration alerts, extensive API enhancements, and comprehensive localization updates across 40+ language variants.

Changes

Cohort / File(s) Summary
Release branch configuration
.changeset/config.json, .github/workflows/ci.yml, .github/workflows/release.yml, .changeset/thick-points-watch.md
Updated base branch from origin/main to origin/release/core-2; adjusted workflow triggers and changesets accordingly. Removed legacy workflows (nightly-checks, preview.retheme, release-canary).
Solana Web3 core implementation
packages/clerk-js/src/utils/web3.ts, packages/clerk-js/src/utils/injectedWeb3SolanaProviders.ts, packages/clerk-js/src/core/clerk.ts
Added Solana wallet provider detection, signature generation (generateSignatureWithSolana, getSolanaIdentifier), and wallet adapter integration via @solana/wallet-adapter packages. Extended Clerk class with authenticateWithSolana method.
Solana Web3 UI components
packages/clerk-js/src/ui/elements/Web3SolanaWalletButtons.tsx, packages/clerk-js/src/ui/components/UserProfile/Web3SelectSolanaWalletScreen.tsx, packages/clerk-js/src/ui/components/SignIn/SignInFactorOneSolanaWalletsCard.tsx, packages/clerk-js/src/ui/components/SignUp/SignUpStartSolanaWalletsCard.tsx
New UI cards and button groups for Solana wallet selection and authentication across sign-in/sign-up/profile flows. Includes lazy-loaded wallet buttons with error handling and loading states.
Sign-in/Sign-up flow updates
packages/clerk-js/src/core/resources/SignIn.ts, packages/clerk-js/src/core/resources/SignUp.ts, packages/clerk-js/src/ui/components/SignIn/index.tsx, packages/clerk-js/src/ui/components/SignUp/index.tsx
Added Solana authentication paths via authenticateWithSolana, route handling for choose-wallet flow, and unsafeMetadata propagation through sign-up/transfer flows.
Organization creation defaults
packages/clerk-js/src/core/resources/OrganizationCreationDefaults.ts, packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/CreateOrganizationScreen.tsx, packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/OrganizationCreationDefaultsAlert.tsx
New resource class to fetch and manage organization creation defaults; UI alerts and form prefilling based on defaults; logo upload integration via OrganizationProfileAvatarUploader.
Role migration and organization gating
packages/clerk-js/src/ui/components/OrganizationProfile/OrganizationMembers.tsx, packages/clerk-js/src/ui/hooks/useFetchRoles.ts, packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/ChooseOrganizationScreen.tsx
Added useFetchRoles hook with hasRoleSetMigration flag; conditional UI disabling during role migration; organization creation disable state detection and UI branching.
API endpoint enhancements
packages/backend/src/api/endpoints/APIKeysApi.ts, packages/backend/src/api/endpoints/UserApi.ts, packages/backend/src/api/endpoints/JwtTemplatesApi.ts, packages/backend/src/api/endpoints/InvitationApi.ts, packages/backend/src/api/endpoints/WaitlistEntryApi.ts
Added APIKey get, update, delete methods with optional revocation reason; renamed __experimental_passwordCompromised to setPasswordCompromised; added lastSignInAtAfter/lastSignInAtBefore filters; corrected JwtTemplatesApi.list return type; added WaitlistEntryApi.createBulk.
Resource model updates
packages/backend/src/api/resources/ExternalAccount.ts, packages/backend/src/api/resources/OauthAccessToken.ts, packages/backend/src/api/resources/JSON.ts, packages/clerk-js/src/core/resources/PublicUserData.ts
Added providerUserId field to ExternalAccount (deprecating externalId); extended OauthAccessToken with constructor parameters and idToken field; added username to PublicUserData; added id_token to OauthAccessTokenJSON.
Session and token management
packages/clerk-js/src/core/resources/Session.ts, packages/clerk-js/src/core/resources/Token.ts, packages/backend/src/tokens/request.ts, packages/backend/src/tokens/handshake.ts
Modified Token.create signature from skipCache boolean to search object; added expired token retry logic in Session._getToken; added OAuth JWT rejection in request authentication; added session token propagation in handshake redirect URL.
Authentication and environment handling
packages/clerk-js/src/core/clerk.ts, packages/clerk-js/src/core/auth/cookies/requireSameSiteNone.ts, packages/clerk-js/src/core/auth/cookies/clientUat.ts, packages/clerk-js/src/core/auth/cookies/devBrowser.ts, packages/clerk-js/src/core/auth/cookies/session.ts
Added window.location guards for React Native environments; introduced SameSite=None cookie handling via requiresSameSiteNone utility for third-party domains; updated cookie attributes for .replit.dev origins.
UI element enhancements
packages/clerk-js/src/ui/elements/Avatar.tsx, packages/clerk-js/src/ui/elements/OrganizationAvatar.tsx, packages/clerk-js/src/ui/elements/Select.tsx, packages/clerk-js/src/ui/elements/WalletInitialIcon.tsx, packages/clerk-js/src/ui/elements/Alert.tsx
Added showLoadingSpinner prop to Avatar for image loading states; simplified Select placeholder rendering; added WalletInitialIcon component; refactored Alert styling logic.
KeylessPrompt refactor
packages/clerk-js/src/ui/components/devPrompts/KeylessPrompt/index.tsx, packages/clerk-js/src/ui/components/devPrompts/KeylessPrompt/__tests__/KeylessPrompt.test.tsx
Extracted state and content resolution logic into testable functions (getCurrentState, getResolvedContent); removed Portal usage; replaced Portal-based rendering with direct JSX; added comprehensive test suite.
EnableOrganizationsPrompt update
packages/clerk-js/src/ui/components/devPrompts/EnableOrganizationsPrompt/index.tsx
Replaced toggle UI with radio group for personal account settings; added dynamic default organization name fetching and interpolation; updated component return types to JSX.Element.
Test infrastructure
packages/backend/src/api/__tests__/APIKeysApi.test.ts, packages/backend/src/tokens/__tests__/request.test.ts, integration/tests/astro/billingStore.test.ts, integration/tests/middleware-placement.test.ts
Added comprehensive API key CRUD tests; extended token request tests for OAuth JWT rejection and session token acceptance; added Astro billing store test; added Next.js version-dependent middleware tests.
Integration templates
integration/templates/astro-node/src/pages/billing/billing-store.astro, integration/templates/astro-node/src/pages/prerendered.astro, integration/templates/tanstack-react-start/...
Added Astro billing store page with custom pricing-table Web component; added prerendered page example; updated TanStack React Start packages and routes structure; added Vite alias for use-sync-external-store.
Localization across 40+ languages
packages/localizations/src/en-US.ts, packages/localizations/src/es-ES.ts, packages/localizations/src/fr-FR.ts, + 37 others
Added Solana Web3 UI strings (web3Solana, web3SolanaWalletButtons, web3SelectSolanaWalletScreen) across all locales; expanded organization flow messaging (organizationCreationDisabled, organizationAlreadyExists); added role migration alerts; added new error keys; updated form field placeholders and validation messages. Extensive content additions with some locales reaching 600+ lines changed.
Package metadata and changelogs
packages/*/package.json, packages/*/CHANGELOG.md, integration/presets/envs.ts, packages/clerk-js/bundlewatch.config.json
Version bumps across all major packages (clerk-js, backend, astro, etc.); changelog entries documenting dependency updates and feature additions; removed CLERK_API_URL from integration test environment config; updated bundle size thresholds for new billing/Solana components.
Utility and helper updates
packages/clerk-js/src/utils/thirdPartyDomains.ts, packages/clerk-js/src/utils/injectedWeb3EthProviders.ts, packages/clerk-js/src/utils/captcha/turnstile.ts, packages/backend/src/constants.ts
New third-party domains utility for SameSite cookie handling; renamed Web3 Eth provider classes for clarity; added diagnostic logging to Turnstile captcha flow; added Session query parameter constant.
Astro component integration
packages/astro/src/astro-components/control/Protect.astro, packages/astro/src/astro-components/control/SignedIn.astro, packages/astro/src/astro-components/control/SignedOut.astro, packages/astro/src/integration/snippets.ts
Added runtime isStatic prop detection with fallback to Astro.locals.auth; introduced before-hydration and page-load script builders with Astro View Transitions support; added protect-fallback slot handling.
Astro integration and stores
packages/astro/src/stores/external.ts, packages/astro/src/integration/create-integration.ts
Added new $billingStore computed store exposing clerk.billing; refactored integration to use extracted snippet builders instead of inlined scripts.
Backend testing and utilities
integration/testUtils/usersService.ts, packages/backend/src/api/__tests__/factory.test.ts, packages/backend/src/tokens/__tests__/clerkRequest.test.ts, packages/backend/src/tokens/__tests__/handshake.test.ts
Updated FakeAPIKey.revoke to accept optional reason parameter; renamed UserService.passwordCompromised to setPasswordCompromised; added duck-typing tests for ClerkRequest creation; extended factory tests for user list filtering and waitlist bulk operations.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested labels

clerk-js, localizations

Suggested reviewers

  • dstaley
  • jacekradko

Poem

🐰 A rabbit's tale of changes grand,
With Solana wallets across the land,
Organizations now gated with care,
Web3 threads weave everywhere!
From locales far to the UI near,
The Core 2 release draws ever clear! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 3

❌ Failed checks (1 warning, 2 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 60.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Linked Issues check ❓ Inconclusive The linked issue CORE-3 provides minimal guidance with only a vague statement that the changes were intentional. The PR's substantive changes (backend API updates, Solana support, workflow modifications, localization additions) cannot be meaningfully validated against this issue. Provide more detailed objectives or requirements in the linked issue to enable proper validation of the PR's scope and implementation.
Out of Scope Changes check ❓ Inconclusive The PR contains numerous changes beyond the stated title, including Solana Web3 support, organization creation defaults, CI/workflow updates, and extensive localization additions. While these align with a Core 2 release branch, the title focuses narrowly on JwtTemplatesApi.list typing. Clarify whether all included changes (Solana, organization defaults, workflows, localizations) are intentionally part of Core 2 scope or if the PR should be narrowed to focus on the titled change.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title clearly summarizes the main change: fixing the type of JwtTemplatesApi.list to return PaginatedResourceResponse, which aligns with the primary changeset objective.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch cherry-pick/6fb0c85ba

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

@thiskevinwang thiskevinwang changed the title fix(backend): type JwtTemplatesApi.list as PaginatedResourceResponse (Core 2) fix(backend): Type JwtTemplatesApi.list as PaginatedResourceResponse (Core 2) Feb 17, 2026
@thiskevinwang thiskevinwang enabled auto-merge (squash) February 17, 2026 22:05
@thiskevinwang thiskevinwang requested a review from a team February 17, 2026 22:57
@pkg-pr-new
Copy link

pkg-pr-new bot commented Feb 17, 2026

Open in StackBlitz

@clerk/agent-toolkit

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

@clerk/astro

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

@clerk/backend

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

@clerk/chrome-extension

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

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@7868

@clerk/dev-cli

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

@clerk/elements

npm i https://pkg.pr.new/@clerk/elements@7868

@clerk/clerk-expo

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

@clerk/expo-passkeys

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

@clerk/express

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

@clerk/fastify

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

@clerk/localizations

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

@clerk/nextjs

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

@clerk/nuxt

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

@clerk/clerk-react

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

@clerk/react-router

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

@clerk/remix

npm i https://pkg.pr.new/@clerk/remix@7868

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@7868

@clerk/tanstack-react-start

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

@clerk/testing

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

@clerk/themes

npm i https://pkg.pr.new/@clerk/themes@7868

@clerk/types

npm i https://pkg.pr.new/@clerk/types@7868

@clerk/upgrade

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

@clerk/vue

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

commit: b7bae09

@thiskevinwang thiskevinwang merged commit 2471e31 into release/core-2 Feb 18, 2026
43 checks passed
@thiskevinwang thiskevinwang deleted the cherry-pick/6fb0c85ba branch February 18, 2026 21:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

Comments