@atlasauth/react 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/AtlasProvider.d.ts +8 -1
  3. package/dist/AtlasProvider.js +54 -4
  4. package/dist/AtlasProvider.js.map +1 -1
  5. package/dist/account.d.ts +19 -1
  6. package/dist/account.js +121 -16
  7. package/dist/account.js.map +1 -1
  8. package/dist/active-atlas.d.ts +29 -0
  9. package/dist/active-atlas.js +40 -0
  10. package/dist/active-atlas.js.map +1 -0
  11. package/dist/billing.d.ts +55 -1
  12. package/dist/billing.js +115 -8
  13. package/dist/billing.js.map +1 -1
  14. package/dist/captcha.js +1 -1
  15. package/dist/captcha.js.map +1 -1
  16. package/dist/compat.d.ts +307 -0
  17. package/dist/compat.js +387 -0
  18. package/dist/compat.js.map +1 -0
  19. package/dist/components.d.ts +10 -4
  20. package/dist/components.js +15 -1
  21. package/dist/components.js.map +1 -1
  22. package/dist/device-authorization.d.ts +42 -0
  23. package/dist/device-authorization.js +137 -0
  24. package/dist/device-authorization.js.map +1 -0
  25. package/dist/flow.d.ts +33 -9
  26. package/dist/flow.js +130 -11
  27. package/dist/flow.js.map +1 -1
  28. package/dist/i18n.js +68 -0
  29. package/dist/i18n.js.map +1 -1
  30. package/dist/impersonation.d.ts +25 -0
  31. package/dist/impersonation.js +52 -0
  32. package/dist/impersonation.js.map +1 -0
  33. package/dist/index.js +3 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/mfa-steps.d.ts +53 -0
  36. package/dist/mfa-steps.js +148 -0
  37. package/dist/mfa-steps.js.map +1 -0
  38. package/dist/organization.d.ts +82 -1
  39. package/dist/organization.js +222 -4
  40. package/dist/organization.js.map +1 -1
  41. package/dist/reverification.d.ts +19 -0
  42. package/dist/reverification.js +49 -1
  43. package/dist/reverification.js.map +1 -1
  44. package/dist/sign-in.js +2 -2
  45. package/dist/sign-in.js.map +1 -1
  46. package/dist/sign-up.d.ts +6 -0
  47. package/dist/sign-up.js +69 -13
  48. package/dist/sign-up.js.map +1 -1
  49. package/dist/styles.js +8 -0
  50. package/dist/styles.js.map +1 -1
  51. package/dist/types.d.ts +52 -0
  52. package/dist/version.d.ts +1 -1
  53. package/dist/version.js +1 -1
  54. package/package.json +15 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # @atlasauth/react changelog
2
2
 
3
+ ## 0.15.0 — 2026-10-24
4
+
5
+ ### Added
6
+
7
+ - `@atlasauth/react/compat`: drop-in compat helpers for apps migrated from Auth.js, Auth0, Supabase Auth and Better Auth (what `atlas migrate code` rewrites onto): `useNextAuthSession`, `nextAuthSignIn`, `nextAuthSignOut`, `getNextAuthSession`, `useAuth0Compat`, `useAuth0UserCompat`, `withAuthenticationRequiredCompat`, `getSupabaseUserCompat`, `getSupabaseSessionCompat`, `supabaseSignOutCompat`, `supabaseSignInWithOAuthCompat`, `onSupabaseAuthStateChangeCompat`, `useSupabaseUserCompat`, `useSupabaseSessionCompat`, `createBetterAuthCompatClient`, plus `signInRedirect` and the pure projections. The imperative ones act on the mounted `<AtlasProvider>` (`getActiveAtlas()`).
8
+ - `<DeviceAuthorization/>` and `useDeviceAuthorization()`: approve a TV / console / CLI sign-in (RFC 8628) on your own page — enter or scan the code, see the app and the access it asks for, Allow or Deny, with the "Confirm it's you" prompt when the app requires a recent re-authentication. Reads `?user_code=` from the page URL. New strings (`deviceAuth.*`) are in the catalog and in every `@atlasauth/localizations` bundle.
9
+ - `signOut()` follows SAML Single Logout (`saml_logout_url`) as well as upstream (RP-initiated) logout, with the same options and precedence as `@atlasauth/js` (`samlLogout`, `samlLogoutRedirectUrl`, `SignOutResult.samlLogoutUrl`; the upstream URL wins when both are returned).
10
+ - WebAuthn PRF: `passkeyPrf` / `onPasskeyExtensionResults` on `<SignIn>` / `<SignUp>`, and `prf` / `onExtensionResults` on `<ManagePasskeys>` (`ManagePasskeysProps`) when a passkey is added. The outputs never reach Atlas.
11
+ - Billing: `useBilling()` returns `subscriptions` and `addons` (live add-on subscriptions), `changePlan` / `cancel` / `restore` take `subscriptionId`, and `check(feature, { required })` asks whether the subject may use a feature (`AtlasFeatureCheck`). Plans and subscriptions carry `provider`, `kind` and the trial / annual fields.
12
+ - `custom_data` on the session resource (read-only on the client).
13
+ - `<SignIn>` / `<SignUp>` captchas support CaptchaFox and Vercel BotID.
14
+
15
+ ## 0.14.0 — 2026-10-23
16
+
17
+ ### Added
18
+
19
+ - `<OrganizationAuditLog/>` and `useOrganizationAuditLog()`: the active organization's audit trail for its admins.
20
+ - **Recovery codes after enrolment.** Setting up a second factor at sign-in now shows the account's one-time recovery codes before the sign-in finishes, as the hosted page does: copy them, download them as a .txt file, then "I've saved my codes" continues. Before, the sign-in completed straight away and the codes were never shown. The codes are kept in memory only, never on the attempt or in storage. New strings (`mfa.recoveryCodesTitle`, `mfa.recoveryCodesHelp`, `mfa.recoveryCodesCopy`, `mfa.recoveryCodesCopied`, `mfa.recoveryCodesDownload`, `mfa.recoveryCodesSaved`) are in the catalog and in every `@atlasauth/localizations` bundle.
21
+ - **MFA enrolment at sign-in works end to end.** When the app requires a second factor and the account has none, `<SignIn>` now fetches the authenticator setup and shows its QR code and the setup key, then asks for the code (one or two, as the app requires). Before, the step asked for codes without ever showing the setup.
22
+ - **Text-message enrolment** where the app offers texted codes and can send them: the user picks "Use text messages", enters a phone number, and confirms with the texted code. When both methods are offered the user chooses, and can switch.
23
+ - **"Text me a code instead"** at the second-factor step where the app offers texted codes, beside the existing "Email me a code instead".
24
+ - The new strings are in the catalog (`mfa.enrollChoose`, `mfa.enrollTotpOption`, `mfa.enrollSmsOption`, `mfa.enrollScan`, `mfa.enrollQrAlt`, `mfa.enrollSetupKey`, `mfa.enrollPreparing`, `mfa.phoneLabel`, `mfa.phoneHint`, `mfa.sendCode`, `mfa.codeTextedTo`, `mfa.smsCodeOption`) and in every `@atlasauth/localizations` bundle.
25
+ - Texted codes are offered only where the server says the app can text (`account.mfa` on `/v1/appearance`). A server that does not say gets the authenticator app only.
26
+
27
+ ### Changed
28
+
29
+ - Built on `@atlasauth/js` 0.16.0.
30
+
3
31
  ## 0.13.0
4
32
 
5
33
  ### Added
@@ -1,5 +1,5 @@
1
1
  import { type ReactNode } from 'react';
2
- import { type ProviderToken, type SignOutOptions, type SignOutResult, type TombstoneStore, type AtlasInitialState, type SignOutEvent, type SignOutListener, type ReferralConsent } from '@atlasauth/js';
2
+ import { type EndImpersonationResult, type ProviderToken, type SignOutOptions, type SignOutResult, type TombstoneStore, type AtlasInitialState, type SignOutEvent, type SignOutListener, type ReferralConsent } from '@atlasauth/js';
3
3
  import { type SupportedLocale } from '@atlasauth/localizations';
4
4
  import { type Appearance } from './appearance';
5
5
  import { type Catalog } from './i18n';
@@ -123,6 +123,13 @@ interface AtlasContextValue {
123
123
  setActiveSession(session: string | {
124
124
  id: string;
125
125
  }): Promise<void>;
126
+ /**
127
+ * End the active impersonation ("return to admin"). When the impersonation
128
+ * began in a browser where the impersonator was signed in, their own session
129
+ * becomes active again with no sign-in (`resumed: true`); otherwise another
130
+ * account signed in here is promoted, or the browser is signed out.
131
+ */
132
+ endImpersonation(): Promise<EndImpersonationResult>;
126
133
  /** Re-boot from the Frontend API. Resolves true when a session now exists in this browser. */
127
134
  reload(): Promise<boolean>;
128
135
  }
@@ -8,6 +8,7 @@ const react_1 = require("react");
8
8
  const js_1 = require("@atlasauth/js");
9
9
  const referral_1 = require("./referral");
10
10
  const version_1 = require("./version");
11
+ const active_atlas_1 = require("./active-atlas");
11
12
  const localizations_1 = require("@atlasauth/localizations");
12
13
  const appearance_1 = require("./appearance");
13
14
  const styles_1 = require("./styles");
@@ -405,7 +406,10 @@ function AtlasProvider(props) {
405
406
  if (sessionId) {
406
407
  // Remember it first: from here on nothing in this tab may re-adopt it.
407
408
  tombstones.current?.add(sessionId);
408
- outcome = await (0, js_1.revokeSession)(call, sessionId);
409
+ outcome = await (0, js_1.revokeSession)(call, sessionId, {
410
+ ...(options?.returnUrl ? { returnUrl: options.returnUrl } : {}),
411
+ ...(options?.samlLogoutRedirectUrl ? { samlLogoutRedirectUrl: options.samlLogoutRedirectUrl } : {}),
412
+ });
409
413
  // OIDC Front-Channel Logout: let the apps signed in through this session
410
414
  // clear theirs in this browser (hidden iframes, capped at 5 s). Best-effort.
411
415
  if (options?.frontchannel !== false)
@@ -430,9 +434,28 @@ function AtlasProvider(props) {
430
434
  if (!outcome.revoked && options?.strict) {
431
435
  throw new js_1.SignOutError(sessionId ?? '', outcome.status);
432
436
  }
433
- return outcome.activeSessionId
434
- ? { revoked: outcome.revoked, activeSessionId: outcome.activeSessionId }
435
- : { revoked: outcome.revoked };
437
+ // Upstream (RP-initiated) logout: signed out locally, now end the upstream
438
+ // provider's session too — unless the app handles it itself.
439
+ // A browser follows one logout redirect: the upstream provider's first
440
+ // (it has no server-to-server fallback), else SAML Single Logout — not
441
+ // when another account was promoted (the user is still signed in here).
442
+ const followedUpstream = outcome.upstreamLogoutUrl && options?.upstreamLogout !== false
443
+ ? (0, js_1.followUpstreamLogout)(outcome.upstreamLogoutUrl)
444
+ : false;
445
+ if (!followedUpstream &&
446
+ outcome.samlLogoutUrl &&
447
+ options?.samlLogout !== false &&
448
+ !outcome.activeSessionId &&
449
+ typeof window !== 'undefined' &&
450
+ typeof window.location?.assign === 'function') {
451
+ window.location.assign(outcome.samlLogoutUrl);
452
+ }
453
+ return {
454
+ revoked: outcome.revoked,
455
+ ...(outcome.activeSessionId ? { activeSessionId: outcome.activeSessionId } : {}),
456
+ ...(outcome.upstreamLogoutUrl ? { upstreamLogoutUrl: outcome.upstreamLogoutUrl } : {}),
457
+ ...(outcome.samlLogoutUrl ? { samlLogoutUrl: outcome.samlLogoutUrl } : {}),
458
+ };
436
459
  }, [announceSessionChange, call, reload]);
437
460
  const setActiveOrganization = (0, react_1.useCallback)(async (organizationId) => {
438
461
  const current = cache.current.peek();
@@ -466,6 +489,25 @@ function AtlasProvider(props) {
466
489
  // §R3.2 the active account is session state other tabs reflect — nudge them.
467
490
  announceSessionChange();
468
491
  }, [announceSessionChange, applyToken, call, reload]);
492
+ const endImpersonation = (0, react_1.useCallback)(async () => {
493
+ const sessionId = cache.current.peek()?.sessionId ?? sessionIdRef.current;
494
+ if (!sessionId)
495
+ return { ended: false, resumed: false, status: 0 };
496
+ const outcome = await (0, js_1.endImpersonation)(call, sessionId);
497
+ if (!outcome.ended)
498
+ return outcome;
499
+ // The impersonation session is over: never re-adopt it from a stale cookie.
500
+ tombstones.current?.add(sessionId);
501
+ if (outcome.activeSessionId && outcome.jwt) {
502
+ applyToken(outcome.jwt, outcome.activeSessionId);
503
+ }
504
+ else if (!outcome.activeSessionId) {
505
+ notifier.current?.expect('user');
506
+ }
507
+ await reload();
508
+ announceSessionChange([sessionId]);
509
+ return outcome;
510
+ }, [announceSessionChange, applyToken, call, reload]);
469
511
  const catalog = (0, react_1.useMemo)(() => {
470
512
  // A built-in language bundle, then the app's own overrides key by key.
471
513
  const base = locale ? (0, localizations_1.resolveLocale)(locale) : undefined;
@@ -554,6 +596,7 @@ function AtlasProvider(props) {
554
596
  broadcastSessionChange,
555
597
  setActiveOrganization,
556
598
  setActiveSession,
599
+ endImpersonation,
557
600
  reload,
558
601
  }), [
559
602
  appearance,
@@ -579,10 +622,17 @@ function AtlasProvider(props) {
579
622
  sessions,
580
623
  setActiveOrganization,
581
624
  setActiveSession,
625
+ endImpersonation,
582
626
  signOut,
583
627
  status,
584
628
  user,
585
629
  ]);
630
+ // The imperative compat helpers (`nextAuthSignOut()`, `getSupabaseUserCompat()`,
631
+ // …) act on the mounted provider without a hook: publish its state to them.
632
+ (0, react_1.useEffect)(() => {
633
+ (0, active_atlas_1.publishActiveAtlas)(value);
634
+ }, [value]);
635
+ (0, react_1.useEffect)(() => () => (0, active_atlas_1.publishActiveAtlas)(null), []);
586
636
  /**
587
637
  * The design configured in the Atlas dashboard, from `GET /v1/appearance`.
588
638
  * Best-effort: a failure (older server, network) leaves it null and the
@@ -1 +1 @@
1
- {"version":3,"file":"AtlasProvider.js","sourceRoot":"","sources":["../src/AtlasProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AtlasProvider.js","sourceRoot":"","sources":["../src/AtlasProvider.tsx"],"names":[],"mappings":"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"}
package/dist/account.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type ReactNode } from 'react';
2
+ import { type PasskeyExtensionResults, type PasskeyPrfRequest } from '@atlasauth/js';
2
3
  /**
3
4
  * §2 The signed-in user's active devices, with per-device and "sign out everyone
4
5
  * else" revocation. A drop-in for a settings page — the composable half of the
@@ -27,7 +28,24 @@ export declare function ManageMfa(): import("react").JSX.Element;
27
28
  * removal, in one composable drop-in. Nothing renders the "Add" affordance when the
28
29
  * runtime has no WebAuthn support, so it degrades cleanly on older browsers.
29
30
  */
30
- export declare function ManagePasskeys(): import("react").JSX.Element;
31
+ export interface ManagePasskeysProps {
32
+ /**
33
+ * Request the WebAuthn `prf` extension when a passkey is added: a secret
34
+ * derived from the passkey and your salt, for client-side encryption keys. It
35
+ * never reaches Atlas.
36
+ */
37
+ prf?: PasskeyPrfRequest;
38
+ /** Receives the new passkey's client extension results (PRF support and outputs). */
39
+ onExtensionResults?: (results: PasskeyExtensionResults) => void;
40
+ }
41
+ export declare function ManagePasskeys({ prf, onExtensionResults }?: ManagePasskeysProps): import("react").JSX.Element;
42
+ /**
43
+ * Manage phone numbers: add one (a code is texted to it), verify it, pick the
44
+ * primary, remove one. Adding, re-pointing the primary and removing need a recent
45
+ * sign-in; a stale session gets the "Confirm it's you" prompt and the action
46
+ * retries once the user re-authenticates.
47
+ */
48
+ export declare function ManagePhoneNumbers(): import("react").JSX.Element;
31
49
  /**
32
50
  * §2 The drop-in post-login account surface. Composes the account-management
33
51
  * pieces (profile, 2FA, passkeys, devices). Each piece is also exported on its own
package/dist/account.js CHANGED
@@ -5,6 +5,7 @@ exports.ActiveSessions = ActiveSessions;
5
5
  exports.ProfileCard = ProfileCard;
6
6
  exports.ManageMfa = ManageMfa;
7
7
  exports.ManagePasskeys = ManagePasskeys;
8
+ exports.ManagePhoneNumbers = ManagePhoneNumbers;
8
9
  exports.UserProfile = UserProfile;
9
10
  const jsx_runtime_1 = require("react/jsx-runtime");
10
11
  const react_1 = require("react");
@@ -12,6 +13,7 @@ const js_1 = require("@atlasauth/js");
12
13
  const AtlasProvider_1 = require("./AtlasProvider");
13
14
  const hooks_1 = require("./hooks");
14
15
  const components_shared_1 = require("./components-shared");
16
+ const reverification_1 = require("./reverification");
15
17
  /**
16
18
  * §2 The signed-in user's active devices, with per-device and "sign out everyone
17
19
  * else" revocation. A drop-in for a settings page — the composable half of the
@@ -130,6 +132,9 @@ function ManageMfa() {
130
132
  const [backupCodes, setBackupCodes] = (0, react_1.useState)(null);
131
133
  const [error, setError] = (0, react_1.useState)(null);
132
134
  const [busy, setBusy] = (0, react_1.useState)(false);
135
+ // Turning 2FA off (and, when the app enabled it, turning it on) needs a recent
136
+ // sign-in; a stale session parks the call behind the "Confirm it's you" prompt.
137
+ const reverification = (0, reverification_1.useReverification)();
133
138
  const load = (0, react_1.useCallback)(async () => {
134
139
  const res = await client.get('/v1/client/me/mfa');
135
140
  setFactors(res.data?.data ?? []);
@@ -143,7 +148,16 @@ function ManageMfa() {
143
148
  setError(null);
144
149
  setBackupCodes(null);
145
150
  setBusy(true);
146
- const res = await client.post('/v1/client/me/mfa/totp');
151
+ let res;
152
+ try {
153
+ res = await reverification.withReverification(() => client.post('/v1/client/me/mfa/totp'));
154
+ }
155
+ catch (err) {
156
+ setBusy(false);
157
+ if (!(0, reverification_1.isReverificationCancelled)(err))
158
+ setError('Could not start enrollment.');
159
+ return;
160
+ }
147
161
  setBusy(false);
148
162
  if (!res.ok || !res.data) {
149
163
  setError(res.errors[0] ? errorText(res.errors[0]) : 'Could not start enrollment.');
@@ -169,21 +183,23 @@ function ManageMfa() {
169
183
  await load();
170
184
  };
171
185
  const disable = async (id) => {
186
+ setError(null);
172
187
  setBusy(true);
173
- await client.request(`/v1/client/me/mfa/${id}`, { method: 'DELETE' }).catch(() => undefined);
188
+ try {
189
+ const res = await reverification.withReverification(() => client.request(`/v1/client/me/mfa/${id}`, { method: 'DELETE' }));
190
+ if (!res.ok)
191
+ setError(res.errors[0] ? errorText(res.errors[0]) : 'Could not turn off two-factor.');
192
+ }
193
+ catch (err) {
194
+ if (!(0, reverification_1.isReverificationCancelled)(err))
195
+ setError('Could not turn off two-factor.');
196
+ }
174
197
  await load();
175
198
  setBusy(false);
176
199
  };
177
- return ((0, jsx_runtime_1.jsxs)("section", { className: cardClass, "data-atlas": "manage-mfa", children: [(0, jsx_runtime_1.jsx)("h2", { className: cls('sectionTitle', 'atlas-section-title'), children: "Two-factor authentication" }), totp ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("p", { className: cls('text', 'atlas-text'), children: ["Authenticator app is on.", remaining != null ? ` ${remaining} backup codes remaining.` : ''] }), (0, jsx_runtime_1.jsx)("button", { className: cls('formButtonSecondary', 'atlas-button-secondary'), type: "button", disabled: busy, onClick: () => void disable(totp.id), children: "Turn off" })] })) : enroll ? ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("p", { className: cls('text', 'atlas-text'), children: "Add this to your authenticator app \u2014 scan the QR you render from the URI, or enter the key:" }), (0, jsx_runtime_1.jsx)("code", { "data-atlas": "totp-secret", children: enroll.secret }), (0, jsx_runtime_1.jsx)("p", { className: cls('text', 'atlas-text'), children: (0, jsx_runtime_1.jsx)("a", { className: cls('link', 'atlas-link'), href: enroll.uri, children: "Open in an authenticator app" }) }), codes.map((c, i) => ((0, jsx_runtime_1.jsx)("input", { className: cls('formFieldInput', 'atlas-account-input'), inputMode: "numeric", autoComplete: "one-time-code", value: c, placeholder: enroll.requiredCodes > 1 ? `Code ${i + 1}` : 'Enter the 6-digit code', onChange: (e) => setCodes((prev) => prev.map((v, j) => (j === i ? e.target.value : v))) }, i))), (0, jsx_runtime_1.jsx)("button", { className: cls('formButtonSecondary', 'atlas-button-secondary'), type: "button", disabled: busy, onClick: () => void verify(), children: "Verify & enable" })] })) : backupCodes ? ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("p", { className: cls('text', 'atlas-text'), children: "Two-factor is on. Save these backup codes now \u2014 they are shown only once:" }), (0, jsx_runtime_1.jsx)("ul", { className: cls('list', 'atlas-list'), "data-atlas": "backup-codes", children: backupCodes.map((c) => ((0, jsx_runtime_1.jsx)("li", { className: cls('listItem', 'atlas-list-item'), children: (0, jsx_runtime_1.jsx)("code", { children: c }) }, c))) })] })) : ((0, jsx_runtime_1.jsx)("button", { className: cls('formButtonSecondary', 'atlas-button-secondary'), type: "button", disabled: busy, onClick: () => void startEnroll(), children: "Enable authenticator app" })), error ? ((0, jsx_runtime_1.jsx)("p", { className: cls('alert', 'atlas-alert'), "data-atlas": "mfa-error", role: "alert", children: error })) : null] }));
200
+ return ((0, jsx_runtime_1.jsxs)("section", { className: cardClass, "data-atlas": "manage-mfa", children: [(0, jsx_runtime_1.jsx)("h2", { className: cls('sectionTitle', 'atlas-section-title'), children: "Two-factor authentication" }), totp ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("p", { className: cls('text', 'atlas-text'), children: ["Authenticator app is on.", remaining != null ? ` ${remaining} backup codes remaining.` : ''] }), (0, jsx_runtime_1.jsx)("button", { className: cls('formButtonSecondary', 'atlas-button-secondary'), type: "button", disabled: busy, onClick: () => void disable(totp.id), children: "Turn off" })] })) : enroll ? ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("p", { className: cls('text', 'atlas-text'), children: "Add this to your authenticator app \u2014 scan the QR you render from the URI, or enter the key:" }), (0, jsx_runtime_1.jsx)("code", { "data-atlas": "totp-secret", children: enroll.secret }), (0, jsx_runtime_1.jsx)("p", { className: cls('text', 'atlas-text'), children: (0, jsx_runtime_1.jsx)("a", { className: cls('link', 'atlas-link'), href: enroll.uri, children: "Open in an authenticator app" }) }), codes.map((c, i) => ((0, jsx_runtime_1.jsx)("input", { className: cls('formFieldInput', 'atlas-account-input'), inputMode: "numeric", autoComplete: "one-time-code", value: c, placeholder: enroll.requiredCodes > 1 ? `Code ${i + 1}` : 'Enter the 6-digit code', onChange: (e) => setCodes((prev) => prev.map((v, j) => (j === i ? e.target.value : v))) }, i))), (0, jsx_runtime_1.jsx)("button", { className: cls('formButtonSecondary', 'atlas-button-secondary'), type: "button", disabled: busy, onClick: () => void verify(), children: "Verify & enable" })] })) : backupCodes ? ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("p", { className: cls('text', 'atlas-text'), children: "Two-factor is on. Save these backup codes now \u2014 they are shown only once:" }), (0, jsx_runtime_1.jsx)("ul", { className: cls('list', 'atlas-list'), "data-atlas": "backup-codes", children: backupCodes.map((c) => ((0, jsx_runtime_1.jsx)("li", { className: cls('listItem', 'atlas-list-item'), children: (0, jsx_runtime_1.jsx)("code", { children: c }) }, c))) })] })) : ((0, jsx_runtime_1.jsx)("button", { className: cls('formButtonSecondary', 'atlas-button-secondary'), type: "button", disabled: busy, onClick: () => void startEnroll(), children: "Enable authenticator app" })), (0, jsx_runtime_1.jsx)(reverification_1.ReverificationPrompt, { reverification: reverification, name: "mfa-reverification" }), error ? ((0, jsx_runtime_1.jsx)("p", { className: cls('alert', 'atlas-alert'), "data-atlas": "mfa-error", role: "alert", children: error })) : null] }));
178
201
  }
179
- /**
180
- * §2 Manage passkeys (WebAuthn). Lists the user's registered credentials and runs
181
- * the full add ceremony — `POST /passkeys/begin` → `navigator.credentials.create`
182
- * (via the SDK's {@link createPasskey}) → `POST /passkeys/finish` — plus rename-free
183
- * removal, in one composable drop-in. Nothing renders the "Add" affordance when the
184
- * runtime has no WebAuthn support, so it degrades cleanly on older browsers.
185
- */
186
- function ManagePasskeys() {
202
+ function ManagePasskeys({ prf, onExtensionResults } = {}) {
187
203
  const client = (0, components_shared_1.useMeClient)();
188
204
  const errorText = (0, components_shared_1.useErrorText)();
189
205
  const cardClass = (0, components_shared_1.useClass)('card', 'atlas-card');
@@ -193,6 +209,8 @@ function ManagePasskeys() {
193
209
  const [error, setError] = (0, react_1.useState)(null);
194
210
  const [busy, setBusy] = (0, react_1.useState)(false);
195
211
  const supported = (0, js_1.passkeysSupported)();
212
+ // Adding or removing a passkey needs a recent sign-in (STEP_UP_REQUIRED otherwise).
213
+ const reverification = (0, reverification_1.useReverification)();
196
214
  const load = (0, react_1.useCallback)(async () => {
197
215
  const res = await client.get('/v1/client/me/passkeys');
198
216
  setPasskeys(res.data?.data ?? []);
@@ -204,12 +222,16 @@ function ManagePasskeys() {
204
222
  setError(null);
205
223
  setBusy(true);
206
224
  try {
207
- const begin = await client.post('/v1/client/me/passkeys/begin');
225
+ const begin = await reverification.withReverification(() => client.post('/v1/client/me/passkeys/begin'));
208
226
  if (!begin.ok || !begin.data) {
209
227
  setError(begin.errors[0] ? errorText(begin.errors[0]) : 'Could not start passkey setup.');
210
228
  return;
211
229
  }
212
- const body = await (0, js_1.createPasskey)(begin.data, { name: name.trim() || undefined });
230
+ const body = await (0, js_1.createPasskey)(begin.data, {
231
+ name: name.trim() || undefined,
232
+ ...(prf ? { prf } : {}),
233
+ ...(onExtensionResults ? { onExtensionResults } : {}),
234
+ });
213
235
  const finish = await client.post('/v1/client/me/passkeys/finish', body);
214
236
  if (!finish.ok) {
215
237
  setError(finish.errors[0] ? errorText(finish.errors[0]) : 'Could not save the passkey.');
@@ -226,15 +248,98 @@ function ManagePasskeys() {
226
248
  }
227
249
  };
228
250
  const remove = async (id) => {
251
+ setError(null);
229
252
  setBusy(true);
230
- await client.request(`/v1/client/me/passkeys/${id}`, { method: 'DELETE' }).catch(() => undefined);
253
+ try {
254
+ const res = await reverification.withReverification(() => client.request(`/v1/client/me/passkeys/${id}`, { method: 'DELETE' }));
255
+ if (!res.ok)
256
+ setError(res.errors[0] ? errorText(res.errors[0]) : 'Could not remove the passkey.');
257
+ }
258
+ catch (err) {
259
+ if (!(0, reverification_1.isReverificationCancelled)(err))
260
+ setError('Could not remove the passkey.');
261
+ }
231
262
  await load();
232
263
  setBusy(false);
233
264
  };
234
265
  const fmt = (ms) => (ms ? new Date(ms).toLocaleDateString() : null);
235
266
  return ((0, jsx_runtime_1.jsxs)("section", { className: cardClass, "data-atlas": "manage-passkeys", children: [(0, jsx_runtime_1.jsx)("h2", { className: cls('sectionTitle', 'atlas-section-title'), children: "Passkeys" }), (0, jsx_runtime_1.jsx)("ul", { className: cls('list', 'atlas-list'), "data-atlas": "passkey-list", children: passkeys.map((pk) => ((0, jsx_runtime_1.jsxs)("li", { className: cls('listItem', 'atlas-list-item'), children: [(0, jsx_runtime_1.jsx)("strong", { children: pk.name || 'Passkey' }), (0, jsx_runtime_1.jsx)("div", { children: [pk.last_used_at ? `Last used ${fmt(pk.last_used_at)}` : `Added ${fmt(pk.created_at)}`]
236
267
  .filter(Boolean)
237
- .join(' · ') }), (0, jsx_runtime_1.jsx)("button", { className: cls('formButtonSecondary', 'atlas-button-secondary'), type: "button", disabled: busy, onClick: () => void remove(pk.id), children: "Remove" })] }, pk.id))) }), supported ? ((0, jsx_runtime_1.jsxs)("div", { "data-atlas": "passkey-add", children: [(0, jsx_runtime_1.jsx)("input", { className: cls('formFieldInput', 'atlas-account-input'), value: name, placeholder: "Name this device (optional)", onChange: (e) => setName(e.target.value) }), (0, jsx_runtime_1.jsx)("button", { className: cls('formButtonSecondary', 'atlas-button-secondary'), type: "button", disabled: busy, onClick: () => void add(), children: "Add a passkey" })] })) : ((0, jsx_runtime_1.jsx)("p", { className: cls('text', 'atlas-text'), children: "Passkeys are not supported in this browser." })), error ? ((0, jsx_runtime_1.jsx)("p", { className: cls('alert', 'atlas-alert'), "data-atlas": "passkey-error", role: "alert", children: error })) : null] }));
268
+ .join(' · ') }), (0, jsx_runtime_1.jsx)("button", { className: cls('formButtonSecondary', 'atlas-button-secondary'), type: "button", disabled: busy, onClick: () => void remove(pk.id), children: "Remove" })] }, pk.id))) }), supported ? ((0, jsx_runtime_1.jsxs)("div", { "data-atlas": "passkey-add", children: [(0, jsx_runtime_1.jsx)("input", { className: cls('formFieldInput', 'atlas-account-input'), value: name, placeholder: "Name this device (optional)", onChange: (e) => setName(e.target.value) }), (0, jsx_runtime_1.jsx)("button", { className: cls('formButtonSecondary', 'atlas-button-secondary'), type: "button", disabled: busy, onClick: () => void add(), children: "Add a passkey" })] })) : ((0, jsx_runtime_1.jsx)("p", { className: cls('text', 'atlas-text'), children: "Passkeys are not supported in this browser." })), (0, jsx_runtime_1.jsx)(reverification_1.ReverificationPrompt, { reverification: reverification, name: "passkey-reverification" }), error ? ((0, jsx_runtime_1.jsx)("p", { className: cls('alert', 'atlas-alert'), "data-atlas": "passkey-error", role: "alert", children: error })) : null] }));
269
+ }
270
+ /**
271
+ * Manage phone numbers: add one (a code is texted to it), verify it, pick the
272
+ * primary, remove one. Adding, re-pointing the primary and removing need a recent
273
+ * sign-in; a stale session gets the "Confirm it's you" prompt and the action
274
+ * retries once the user re-authenticates.
275
+ */
276
+ function ManagePhoneNumbers() {
277
+ const client = (0, components_shared_1.useMeClient)();
278
+ const errorText = (0, components_shared_1.useErrorText)();
279
+ const cardClass = (0, components_shared_1.useClass)('card', 'atlas-card');
280
+ const cls = (0, components_shared_1.useClasses)();
281
+ const reverification = (0, reverification_1.useReverification)();
282
+ const [phones, setPhones] = (0, react_1.useState)([]);
283
+ const [draft, setDraft] = (0, react_1.useState)('');
284
+ const [verifying, setVerifying] = (0, react_1.useState)(null);
285
+ const [code, setCode] = (0, react_1.useState)('');
286
+ const [error, setError] = (0, react_1.useState)(null);
287
+ const [busy, setBusy] = (0, react_1.useState)(false);
288
+ const load = (0, react_1.useCallback)(async () => {
289
+ try {
290
+ setPhones(await (0, js_1.listPhoneNumbers)(client));
291
+ }
292
+ catch {
293
+ setPhones([]);
294
+ }
295
+ }, [client]);
296
+ (0, react_1.useEffect)(() => {
297
+ void load();
298
+ }, [load]);
299
+ const run = async (action, fallback) => {
300
+ setError(null);
301
+ setBusy(true);
302
+ try {
303
+ await reverification.withReverification(action);
304
+ return true;
305
+ }
306
+ catch (err) {
307
+ if (!(0, reverification_1.isReverificationCancelled)(err))
308
+ setError(err instanceof Error ? errorText(err) : fallback);
309
+ return false;
310
+ }
311
+ finally {
312
+ setBusy(false);
313
+ await load();
314
+ }
315
+ };
316
+ const add = async () => {
317
+ const value = draft.trim();
318
+ if (!value)
319
+ return;
320
+ let added;
321
+ const ok = await run(async () => {
322
+ added = await (0, js_1.addPhoneNumber)(client, value);
323
+ }, 'Could not add that number.');
324
+ if (ok && added) {
325
+ setDraft('');
326
+ setCode('');
327
+ setVerifying(added.id);
328
+ }
329
+ };
330
+ const confirm = async () => {
331
+ if (!verifying)
332
+ return;
333
+ const ok = await run(() => (0, js_1.attemptPhoneNumberVerification)(client, verifying, code), 'That code was not accepted.');
334
+ if (ok)
335
+ setVerifying(null);
336
+ };
337
+ return ((0, jsx_runtime_1.jsxs)("section", { className: cardClass, "data-atlas": "manage-phone-numbers", children: [(0, jsx_runtime_1.jsx)("h2", { className: cls('sectionTitle', 'atlas-section-title'), children: "Phone numbers" }), (0, jsx_runtime_1.jsx)("ul", { className: cls('list', 'atlas-list'), "data-atlas": "phone-list", children: phones.map((phone) => ((0, jsx_runtime_1.jsxs)("li", { className: cls('listItem', 'atlas-list-item'), children: [phone.phone_number, phone.verified ? null : (0, jsx_runtime_1.jsx)("em", { children: " \u2014 unverified" }), phone.primary ? (0, jsx_runtime_1.jsx)("em", { children: " \u2014 primary" }) : null, phone.verified ? null : verifying === phone.id ? ((0, jsx_runtime_1.jsxs)("span", { "data-atlas": "phone-verify", children: [(0, jsx_runtime_1.jsx)("input", { className: cls('formFieldInput', 'atlas-account-input'), inputMode: "numeric", autoComplete: "one-time-code", placeholder: "Code from the text", value: code, onChange: (e) => setCode(e.target.value) }), (0, jsx_runtime_1.jsx)("button", { className: cls('formButtonSecondary', 'atlas-button-secondary'), type: "button", disabled: busy, onClick: () => void confirm(), children: "Confirm" })] })) : ((0, jsx_runtime_1.jsx)("button", { className: cls('formButtonSecondary', 'atlas-button-secondary'), type: "button", disabled: busy, onClick: () => void run(() => (0, js_1.preparePhoneNumberVerification)(client, phone.id), 'Could not send a code.').then((ok) => {
338
+ if (ok) {
339
+ setCode('');
340
+ setVerifying(phone.id);
341
+ }
342
+ }), children: "Verify" })), phone.verified && !phone.primary ? ((0, jsx_runtime_1.jsx)("button", { className: cls('formButtonSecondary', 'atlas-button-secondary'), type: "button", disabled: busy, onClick: () => void run(() => (0, js_1.setPrimaryPhoneNumber)(client, phone.id), 'Could not change the primary number.'), children: "Make primary" })) : null, (0, jsx_runtime_1.jsx)("button", { className: cls('formButtonSecondary', 'atlas-button-secondary'), type: "button", disabled: busy, onClick: () => void run(() => (0, js_1.removePhoneNumber)(client, phone.id), 'Could not remove that number.'), children: "Remove" })] }, phone.id))) }), (0, jsx_runtime_1.jsxs)("div", { "data-atlas": "phone-add", children: [(0, jsx_runtime_1.jsx)("input", { className: cls('formFieldInput', 'atlas-account-input'), type: "tel", autoComplete: "tel", placeholder: "+15551234567", value: draft, onChange: (e) => setDraft(e.target.value) }), (0, jsx_runtime_1.jsx)("button", { className: cls('formButtonSecondary', 'atlas-button-secondary'), type: "button", disabled: busy, onClick: () => void add(), children: "Add phone number" })] }), (0, jsx_runtime_1.jsx)(reverification_1.ReverificationPrompt, { reverification: reverification, name: "phone-reverification" }), error ? ((0, jsx_runtime_1.jsx)("p", { className: cls('alert', 'atlas-alert'), "data-atlas": "phone-error", role: "alert", children: error })) : null] }));
238
343
  }
239
344
  /** A custom content tab inside `<UserProfile>`. Renders nothing on its own. */
240
345
  function UserProfilePage(_props) {
@@ -256,7 +361,7 @@ function UserProfile({ children } = {}) {
256
361
  const [tab, setTab] = (0, react_1.useState)(0);
257
362
  if (!user)
258
363
  return null;
259
- return ((0, jsx_runtime_1.jsxs)("div", { className: cardClass, "data-atlas": "user-profile", children: [(0, jsx_runtime_1.jsx)("h1", { className: cls('headerTitle', 'atlas-heading'), children: t('userProfile.title') }), pages.length || links.length ? ((0, jsx_runtime_1.jsxs)("nav", { className: cls('tabs', 'atlas-tabs'), role: "tablist", children: [(0, jsx_runtime_1.jsx)("button", { className: tabClass, role: "tab", "aria-selected": tab === 0, onClick: () => setTab(0), children: t('userProfile.title') }), pages.map((p, i) => ((0, jsx_runtime_1.jsxs)("button", { className: tabClass, role: "tab", "aria-selected": tab === i + 1, onClick: () => setTab(i + 1), children: [p.labelIcon, p.label] }, `p${i}`))), links.map((l, i) => ((0, jsx_runtime_1.jsxs)("a", { className: tabClass, href: l.url, children: [l.labelIcon, l.label] }, `l${i}`)))] })) : null, tab === 0 ? ((0, jsx_runtime_1.jsxs)("div", { "data-atlas": "user-profile-account", role: "tabpanel", children: [(0, jsx_runtime_1.jsx)(ProfileCard, {}), (0, jsx_runtime_1.jsx)(ManageMfa, {}), (0, jsx_runtime_1.jsx)(ManagePasskeys, {}), (0, jsx_runtime_1.jsx)(ActiveSessions, {})] })) : ((0, jsx_runtime_1.jsx)("div", { "data-atlas": "user-profile-custom", role: "tabpanel", children: pages[tab - 1]?.children }))] }));
364
+ return ((0, jsx_runtime_1.jsxs)("div", { className: cardClass, "data-atlas": "user-profile", children: [(0, jsx_runtime_1.jsx)("h1", { className: cls('headerTitle', 'atlas-heading'), children: t('userProfile.title') }), pages.length || links.length ? ((0, jsx_runtime_1.jsxs)("nav", { className: cls('tabs', 'atlas-tabs'), role: "tablist", children: [(0, jsx_runtime_1.jsx)("button", { className: tabClass, role: "tab", "aria-selected": tab === 0, onClick: () => setTab(0), children: t('userProfile.title') }), pages.map((p, i) => ((0, jsx_runtime_1.jsxs)("button", { className: tabClass, role: "tab", "aria-selected": tab === i + 1, onClick: () => setTab(i + 1), children: [p.labelIcon, p.label] }, `p${i}`))), links.map((l, i) => ((0, jsx_runtime_1.jsxs)("a", { className: tabClass, href: l.url, children: [l.labelIcon, l.label] }, `l${i}`)))] })) : null, tab === 0 ? ((0, jsx_runtime_1.jsxs)("div", { "data-atlas": "user-profile-account", role: "tabpanel", children: [(0, jsx_runtime_1.jsx)(ProfileCard, {}), (0, jsx_runtime_1.jsx)(ManagePhoneNumbers, {}), (0, jsx_runtime_1.jsx)(ManageMfa, {}), (0, jsx_runtime_1.jsx)(ManagePasskeys, {}), (0, jsx_runtime_1.jsx)(ActiveSessions, {})] })) : ((0, jsx_runtime_1.jsx)("div", { "data-atlas": "user-profile-custom", role: "tabpanel", children: pages[tab - 1]?.children }))] }));
260
365
  }
261
366
  UserProfile.Page = UserProfilePage;
262
367
  UserProfile.Link = UserProfileLink;