Skip to content

feat(shared,localizations): add reverification strings for resetting a breached password - #10440

Open
brunol95 wants to merge 1 commit into
mainfrom
bruno/core-3773-reverification-localizations
Open

brunol95 wants to merge 1 commit into
mainfrom
bruno/core-3773-reverification-localizations

Conversation

@brunol95

Copy link
Copy Markdown
Contributor

Description

When reverification rejects a password as breached or compromised, the modal only shows the error. Users whose password is their only way to verify can't make any protected change, including changing that password. #10396 lets them reset the password from the modal, as sign-in does.

This PR adds the strings for that flow: the breached and compromised screens, the new-password form, and the email and phone code screens. It's split from #10396 so the generated locale files stay out of that review.

To review: the types in packages/shared/src/types/localization.ts and the English copy in packages/localizations/src/en-US.ts. The other 48 locale files are undefined stubs from pnpm --filter @clerk/localizations generate. Nothing reads the keys until #10396 merges.

Part of CORE-3773

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected (@clerk/localizations)
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

🤖 Generated with Claude Code

…a breached password

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
clerk-js-sandbox Ready Ready Preview Oct 26, 2026 11:04pm UTC
swingset Ready Ready Preview Oct 26, 2026 11:04pm UTC

Request Review

@changeset-bot

changeset-bot Bot commented Oct 26, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 7d0b93c

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

This PR includes changesets to release 23 packages
Name Type
@clerk/shared Minor
@clerk/localizations Minor
@clerk/astro Patch
@clerk/backend Patch
@clerk/chrome-extension Patch
@clerk/clerk-js Patch
@clerk/electron Patch
@clerk/expo-passkeys Patch
@clerk/expo Patch
@clerk/express Patch
@clerk/fastify Patch
@clerk/hono Patch
@clerk/mosaic Patch
@clerk/msw Patch
@clerk/nextjs Patch
@clerk/nuxt Patch
@clerk/react-router Patch
@clerk/react Patch
@clerk/swingset Patch
@clerk/tanstack-react-start Patch
@clerk/testing Patch
@clerk/ui Patch
@clerk/vue 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

coderabbitai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 05b08b3 and 7d0b93c.

Files selected for processing: 51
  • .changeset/reverification-reset-password-localizations.md
  • packages/localizations/src/ar-SA.ts
  • packages/localizations/src/be-BY.ts
  • packages/localizations/src/bg-BG.ts
  • packages/localizations/src/bn-IN.ts
  • packages/localizations/src/ca-ES.ts
  • packages/localizations/src/cs-CZ.ts
  • packages/localizations/src/da-DK.ts
  • packages/localizations/src/de-DE.ts
  • packages/localizations/src/el-GR.ts
  • packages/localizations/src/en-GB.ts
  • packages/localizations/src/en-US.ts
  • packages/localizations/src/es-CR.ts
  • packages/localizations/src/es-ES.ts
  • packages/localizations/src/es-MX.ts
  • packages/localizations/src/es-UY.ts
  • packages/localizations/src/fa-IR.ts
  • packages/localizations/src/fi-FI.ts
  • packages/localizations/src/fr-FR.ts
  • packages/localizations/src/he-IL.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/hr-HR.ts
  • packages/localizations/src/hu-HU.ts
  • packages/localizations/src/id-ID.ts
  • packages/localizations/src/is-IS.ts
  • packages/localizations/src/it-IT.ts
  • packages/localizations/src/ja-JP.ts
  • packages/localizations/src/kk-KZ.ts
  • packages/localizations/src/ko-KR.ts
  • packages/localizations/src/mn-MN.ts
  • packages/localizations/src/ms-MY.ts
  • packages/localizations/src/nb-NO.ts
  • packages/localizations/src/nl-BE.ts
  • packages/localizations/src/nl-NL.ts
  • packages/localizations/src/pl-PL.ts
  • packages/localizations/src/pt-BR.ts
  • packages/localizations/src/pt-PT.ts
  • packages/localizations/src/ro-RO.ts
  • packages/localizations/src/ru-RU.ts
  • packages/localizations/src/sk-SK.ts
  • packages/localizations/src/sr-RS.ts
  • packages/localizations/src/sv-SE.ts
  • packages/localizations/src/ta-IN.ts
  • packages/localizations/src/te-IN.ts
  • packages/localizations/src/th-TH.ts
  • packages/localizations/src/tr-TR.ts
  • packages/localizations/src/uk-UA.ts
  • packages/localizations/src/vi-VN.ts
  • packages/localizations/src/zh-CN.ts
  • packages/localizations/src/zh-TW.ts
  • packages/shared/src/types/localization.ts
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

Included review availability: This review used your included allowance. 7 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 10 reviews per hour.

Walkthrough

The change adds shared localization keys for compromised and breached password prompts, password reset, alternative methods, and reset-code flows. English (US) adds string values. Other locale resources add the corresponding keys with values set to undefined. A changeset declares minor releases for @clerk/shared and @clerk/localizations.

Priority: Normal

Estimated code review effort: 2 (Simple) | ~12 minutes

Possibly related PRs

  • clerk/javascript#9344: Adds Ukrainian translations for reverification entries in the same password-reset and compromised-password localization area.
  • clerk/javascript#10396: Implements the password-reset reverification flow that uses these localization keys and English strings.

Suggested reviewers: alexcarpenter, dmoerner

Merge Risk: Minimal · up to 7d0b9

The localization API additions and their release note are consistent, with no actionable merge-blocking risk identified.

Pre-merge checks: Passed 5
Check name Status Explanation
Description check Passed The description clearly explains the new reverification localization strings, the affected flows, the generated locale stubs, and the relationship to the related implementation PR.
Title check Passed The title clearly identifies the addition of reverification strings for resetting a breached password. It matches the primary change, although the scope also includes compromised-password and reset-co…
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 41 files. (10 skipped: …
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title clearly identifies the addition of reverification strings for resetting a breached password. It matches the primary change, although the scope also includes compromised-password and reset-code strings.

Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 41 files. (10 skipped: 1 unsupported, 9 too large.)

Finishing Touches: 💡 1
🛠️ Fix failing CI checks: 💡
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Linked repositories: Some configured repositories could not be included in this review. Cross-repository analysis may be incomplete. Please check linked-repository access and settings.

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

@pkg-pr-new

pkg-pr-new Bot commented Oct 26, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

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

@clerk/backend

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

@clerk/chrome-extension

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

@clerk/clerk-js

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

@clerk/electron

npm i https://pkg.pr.new/@clerk/electron@10440

@clerk/electron-passkeys

npm i https://pkg.pr.new/@clerk/electron-passkeys@10440

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@10440

@clerk/expo

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

@clerk/expo-biometrics

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

@clerk/expo-google-signin

npm i https://pkg.pr.new/@clerk/expo-google-signin@10440

@clerk/expo-native-components

npm i https://pkg.pr.new/@clerk/expo-native-components@10440

@clerk/expo-passkeys

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

@clerk/express

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

@clerk/fastify

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

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@10440

@clerk/localizations

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

@clerk/mosaic

npm i https://pkg.pr.new/@clerk/mosaic@10440

@clerk/nextjs

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

@clerk/nuxt

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

@clerk/react

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

@clerk/react-router

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

@clerk/shared

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

@clerk/tanstack-react-start

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

@clerk/testing

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

@clerk/ui

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

@clerk/upgrade

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

@clerk/vue

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

commit: 7d0b93c

@github-actions

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-10-26T23:09:33.543Z

Summary

Metric Count
Packages analyzed 20
Packages with changes 1
🔴 Breaking changes 0
🟡 Non-breaking changes 1
🟢 Additions 0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/shared

Current version: 4.42.0
Recommended bump: MINOR → 4.43.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: __internal_LocalizationResource
// ... 627 unchanged lines elided ...
        subtitle: LocalizationValue;
        message: LocalizationValue;
      };
+     passwordPwned: {
+       title: LocalizationValue;
+       subtitle__saveNewPassword: LocalizationValue;
+     };
+     passwordCompromised: {
+       title: LocalizationValue;
+       subtitle__saveNewPassword: LocalizationValue;
+     };
+     resetPassword: {
+       title: LocalizationValue;
+       formButtonPrimary: LocalizationValue;
+     };
+     resetPasswordAlternativeMethods: {
+       blockButton__resetPassword: LocalizationValue;
+       label__alternativeMethods: LocalizationValue;
+     };
+     resetPasswordCode: {
+       title: LocalizationValue;
+       title__saveNewPassword_email: LocalizationValue;
+       title__saveNewPassword_phone: LocalizationValue;
+       subtitle_email: LocalizationValue;
+       subtitle_phone: LocalizationValue;
+       subtitle__saveNewPassword_email: LocalizationValue;
+       subtitle__saveNewPassword_phone: LocalizationValue;
+       formTitle: LocalizationValue;
+       resendButton: LocalizationValue;
+     };
    };
    userProfile: {
      mobileButton__menu: LocalizationValue;
// ... 1804 unchanged lines elided ...

Static analyzer: Breaking change in type alias __internal_LocalizationResource: Type changed: {locale:string;maintenanceMode:import("@clerk/shared").LocalizationValue;roles:{[r:string]:import("@clerk/shared").Loca… → {locale:string;maintenanceMode:import("@clerk/shared").LocalizationValue;roles:{[r:string]:import("@clerk/shared").Loca…

🤖 AI review (reclassified as non-breaking) (80%): The only visible difference is that the elided section grew from ~2357 to ~2384 lines, strongly indicating new localization keys were added to __internal_LocalizationResource. Because LocalizationResource is defined as DeepPartial<DeepLocalizationWithoutObjects<__internal_LocalizationResource>>, consumers only read or partially supply values from this type — all fields become optional — so adding new required fields to the source type does not break existing consumer code that already omits those fields.


Report generated by Break Check

Last ran on 7d0b93c.

This branch was successfully deployed

2 active deployments
Preview – swingset — 7d0b93c7 Deployed Oct 26, 2026 by vercel[bot]
Preview – clerk-js-sandbox — 7d0b93c7 Deployed Oct 26, 2026 by vercel[bot]
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.

1 participant