@atlasauth/react 0.4.1 → 0.5.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.
- package/CHANGELOG.md +196 -0
- package/dist/AtlasProvider.d.ts +48 -7
- package/dist/AtlasProvider.js +115 -22
- package/dist/AtlasProvider.js.map +1 -1
- package/dist/api-keys.d.ts +63 -0
- package/dist/api-keys.js +227 -0
- package/dist/api-keys.js.map +1 -0
- package/dist/appearance.d.ts +25 -0
- package/dist/appearance.js +56 -1
- package/dist/appearance.js.map +1 -1
- package/dist/captcha.d.ts +43 -0
- package/dist/captcha.js +109 -0
- package/dist/captcha.js.map +1 -0
- package/dist/components.d.ts +2 -0
- package/dist/components.js +4 -1
- package/dist/components.js.map +1 -1
- package/dist/contrast.d.ts +16 -0
- package/dist/contrast.js +57 -0
- package/dist/contrast.js.map +1 -0
- package/dist/flow.d.ts +17 -2
- package/dist/flow.js +88 -9
- package/dist/flow.js.map +1 -1
- package/dist/hooks.d.ts +7 -2
- package/dist/hooks.js.map +1 -1
- package/dist/i18n.js +44 -0
- package/dist/i18n.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/instance-settings.d.ts +7 -0
- package/dist/instance-settings.js +12 -0
- package/dist/instance-settings.js.map +1 -0
- package/dist/sign-in.js +3 -2
- package/dist/sign-in.js.map +1 -1
- package/dist/sign-up.d.ts +13 -0
- package/dist/sign-up.js +120 -2
- package/dist/sign-up.js.map +1 -1
- package/dist/styles.d.ts +14 -2
- package/dist/styles.js +30 -13
- package/dist/styles.js.map +1 -1
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,83 @@
|
|
|
1
1
|
# @atlasauth/react changelog
|
|
2
2
|
|
|
3
|
+
## 0.5.0
|
|
4
|
+
- **`<SignUp>` now creates accounts.** Its first step is a create-account form (the instance's
|
|
5
|
+
configured sign-up fields, email, password and the legal-consent row) that posts
|
|
6
|
+
`POST /v1/client/sign_ups`; the emailed-code step and completion then run through the shared flow.
|
|
7
|
+
Previously `<SignUp>` rendered the sign-in identifier step and could not create an account.
|
|
8
|
+
- **Captcha renders automatically.** When the instance turns captcha on for a flow, `<SignUp>` and
|
|
9
|
+
`<SignIn>` show the provider's widget (Turnstile, hCaptcha, reCAPTCHA v2/v3/Enterprise) in the
|
|
10
|
+
configured mode (`visible`, `managed`, or `invisible` — run on submit), send its token as
|
|
11
|
+
`captcha_token`, answer the sign-in `needs_captcha` step (continuing as soon as it is solved), and on
|
|
12
|
+
`CAPTCHA_REQUIRED` / `CAPTCHA_FAILED` show a localized message and a fresh widget.
|
|
13
|
+
- **Added** `useAtlas().instanceSettings: InstanceSettings | null` — the instance's public
|
|
14
|
+
`captchaFlows`, `signUpFields` and `legal` settings from `GET /v1/appearance`. The provider now
|
|
15
|
+
fetches `/v1/appearance` even with `appearance.instanceDesign: false` (the design is still not
|
|
16
|
+
applied then).
|
|
17
|
+
- **Added types** `InstanceSettings`, `PublicSignUpField`, and re-exported `FlowCaptcha`,
|
|
18
|
+
`CaptchaFlowKey`, `CaptchaWidgetMode` from `@atlasauth/js`.
|
|
19
|
+
- **Added catalog keys** (en-US): `signUp.emailLabel`, `signUp.passwordLabel`, `signUp.optionalField`,
|
|
20
|
+
`signUp.selectPlaceholder`, `signUp.consentAgree`, `signUp.consentNotice`, `signUp.terms`,
|
|
21
|
+
`signUp.privacy`, `signUp.and`, `captcha.prompt`, `captcha.required`, `captcha.failed`.
|
|
22
|
+
- `InstanceSettings`, `PublicSignUpField` and `localizeCaptchaErrors` now come from `@atlasauth/js`
|
|
23
|
+
(same shapes; one implementation shared with the other framework SDKs).
|
|
24
|
+
- **Added base classes** `atlas-captcha`, `atlas-consent`, `atlas-choices`, `atlas-choice` (new `ATLAS_FLOW_CSS` export, appended to `ATLAS_STYLES_CSS`; `ATLAS_BASE_CSS` is unchanged). The flow's inputs now carry `name` attributes.
|
|
25
|
+
- **Added base classes** `atlas-captcha`, `atlas-consent`, `atlas-choices`, `atlas-choice` (new `ATLAS_FLOW_CSS` export, appended to `ATLAS_STYLES_CSS`). The flow's inputs now carry `name` attributes.
|
|
26
|
+
- **`frontendApi` is validated at render.** A missing (`undefined`/`null`), non-string, blank or malformed value now
|
|
27
|
+
throws an **`AtlasConfigError`** (exported; `code: 'FRONTEND_API_REQUIRED' | 'FRONTEND_API_INVALID'`, type
|
|
28
|
+
`AtlasConfigErrorCode`) instead of silently sending every request to relative URLs on the app's own
|
|
29
|
+
origin. Accepted: an absolute `https:` URL (`http:` only for localhost / local development hosts), or
|
|
30
|
+
`"same-origin"` (exported as `SAME_ORIGIN_FRONTEND_API`) / a root-relative path such as `"/atlas"` for a
|
|
31
|
+
reverse proxy.
|
|
32
|
+
- **Deprecated:** `frontendApi=""` (the original same-origin spelling) still works as same-origin, with a one-time
|
|
33
|
+
console warning; use `"same-origin"` instead.
|
|
34
|
+
- **`signOut()` now resolves `SignOutResult`** — `{ revoked: boolean; activeSessionId?: string }` (was
|
|
35
|
+
`Promise<void>`; `await signOut()` keeps working). Changed on both `useAtlas()` and `useAuth()`
|
|
36
|
+
(`UseAuthReturn.signOut`).
|
|
37
|
+
- The revoke is retried once. If it still fails, the user is signed out locally anyway and the session id
|
|
38
|
+
is remembered (this tab + sibling tabs via the session broadcast), so focus, a sibling tab's signal or a
|
|
39
|
+
failed token refresh never re-adopt it from the still-valid refresh cookie; the next re-check retries the
|
|
40
|
+
revoke in the background.
|
|
41
|
+
- The revoke runs even when no token is cached (it falls back to the booted session, or asks the Frontend
|
|
42
|
+
API which session the browser's cookies carry).
|
|
43
|
+
- When the server promotes another account signed in on this browser, the provider adopts it and
|
|
44
|
+
`activeSessionId` names it.
|
|
45
|
+
- **New option `signOut({ strict: true })`** rejects with a **`SignOutError`** (exported;
|
|
46
|
+
`code: 'SIGN_OUT_REVOKE_FAILED'`, `sessionId`, `status`) after the local sign-out when the revoke fails.
|
|
47
|
+
- `sessions` is now cleared on sign-out too.
|
|
48
|
+
- **New `locale` prop on `<AtlasProvider>`** (`SupportedLocale | string`): `'en'`, `'en-US'`, `'es'`, `'es-ES'`,
|
|
49
|
+
`'fr'`, `'fr-FR'`, `'de'`, `'de-DE'`, `'pt'`, `'pt-BR'`, `'ja'`, `'ja-JP'`, `'nl'`, `'nl-NL'`, and regional
|
|
50
|
+
variants that fall back to their language. Unknown → English with a console warning. `localization` still
|
|
51
|
+
overrides key by key on top. Re-exported from `@atlasauth/localizations`: `resolveLocale`,
|
|
52
|
+
`LOCALIZATION_KEYS`, `missingKeys`, type `SupportedLocale`. New dependency: `@atlasauth/localizations`
|
|
53
|
+
(bundled statically: the catalogs are small, and a synchronous lookup means no English flash and identical
|
|
54
|
+
SSR output).
|
|
55
|
+
- **New context method `broadcastSessionChange()`** on `useAtlas()`: tells sibling tabs to re-check. The
|
|
56
|
+
built-in flows call it after completing a sign-in, so other tabs update immediately instead of on focus.
|
|
57
|
+
- **Popup OAuth:** a popup that closes without posting back but left a session behind (the browser severed
|
|
58
|
+
`window.opener`) now completes the sign-in in the opener (re-boot, `afterUrl`, sibling tabs) instead of
|
|
59
|
+
being treated as a cancel.
|
|
60
|
+
- **Accessibility / appearance:**
|
|
61
|
+
- New `appearance.variables.colorTextOnPrimary` (→ `--atlas-color-text-on-primary`): primary button and avatar
|
|
62
|
+
text. Defaults to white or near-black, whichever contrasts more with the resolved `colorPrimary` (was a
|
|
63
|
+
fixed `#fff`). The `dark` and `neobrutalist` themes now get dark button text.
|
|
64
|
+
- New `appearance.variables.colorFocusRing` (→ `--atlas-color-focus-ring`): a solid 2px `:focus-visible`
|
|
65
|
+
outline (2px offset) on inputs, buttons, social buttons, menu items, tabs and the avatar, replacing the
|
|
66
|
+
translucent glow. Defaults to the primary (`neobrutalist`: black).
|
|
67
|
+
- With a design active, explicit `colorTextOnPrimary` / `colorFocusRing` still win over the design's ink
|
|
68
|
+
and ring; design-mode focus is a solid outline too.
|
|
69
|
+
- Inputs are at least 16px (base and design mode), so iOS Safari no longer zooms on focus.
|
|
70
|
+
- `DesignTokens`, `DEFAULT_TOKENS` and `THEMES` gain both keys. The base stylesheet (`ATLAS_BASE_CSS`)
|
|
71
|
+
changed deliberately for these fixes.
|
|
72
|
+
- **`<ApiKeys/>` and `useApiKeys()`.** Let signed-in users manage their own API keys: list, create
|
|
73
|
+
(prompts for the password and retries when the server asks for a recent sign-in), show the new
|
|
74
|
+
secret once with a copy button, rename, and revoke after a confirmation. Props: `organizationId`,
|
|
75
|
+
`renderClaimsFields` (alias `claimsForm`) for extra fields that go into the key's `claims`,
|
|
76
|
+
`onCreate`, and `expiryOptionsDays`. Shows a key's `limits` when present.
|
|
77
|
+
- New exported types: `ApiKeysProps`, `ApiKeysStatus`, `ApiKeyClaimsFieldsContext`,
|
|
78
|
+
`UseApiKeysResult`, and re-exports of `UserApiKey`, `CreatedUserApiKey`, `CreateUserApiKeyInput`.
|
|
79
|
+
- New en-US catalog keys under `apiKeys.*` (32 keys).
|
|
80
|
+
|
|
3
81
|
## 0.4.1
|
|
4
82
|
- **Front-channel logout on sign-out.** `signOut()` now loads the `frontchannel_logout_urls` the
|
|
5
83
|
Frontend API returns (apps signed in with "Sign in with Atlas" through this session) in hidden,
|
|
@@ -33,6 +111,16 @@
|
|
|
33
111
|
- `useAuth()` has an exported return type, `UseAuthReturn`; annotate with it and TypeScript
|
|
34
112
|
rejects fields that don't exist.
|
|
35
113
|
|
|
114
|
+
## 0.3.0
|
|
115
|
+
- **Popup sign-in for "Sign in with Atlas".** New `signInWithAtlasPopup(opts)` signs in from a
|
|
116
|
+
popup with no full-page redirect and no callback page; the code is exchanged in the page with
|
|
117
|
+
PKCE. It rejects with `popup_closed` if the user closes the popup, and falls back to the
|
|
118
|
+
redirect flow when the popup is blocked.
|
|
119
|
+
- `<SignInWithAtlasButton>` accepts `uxMode: 'redirect' | 'popup'` (default `'redirect'`) and
|
|
120
|
+
`onSuccess(result)` for popup mode.
|
|
121
|
+
- The sign-in result (`AtlasIdResult`) now also includes `credential` (the id_token).
|
|
122
|
+
- Changed: the default issuer is `https://atlasauth.net`.
|
|
123
|
+
|
|
36
124
|
## 0.2.0
|
|
37
125
|
- **New: `<SignInWithAtlasButton>` + `completeSignInWithAtlas()`** — "Sign in with Atlas" for any
|
|
38
126
|
website via OIDC authorization-code + PKCE against `https://atlasauth.net`. Standalone: no
|
|
@@ -60,6 +148,9 @@
|
|
|
60
148
|
but never read; it now redirects after the session is established. No-op when unset.
|
|
61
149
|
- **Provider icons render at a real size** (D12). Brand marks (GitHub especially) carried only a
|
|
62
150
|
`viewBox` and collapsed to 0×0 in the SDK; they now have an intrinsic size plus a CSS rule.
|
|
151
|
+
- **`frontendApi` is now a REQUIRED prop on `<AtlasProvider>`**. It was silently
|
|
152
|
+
- **`<SignIn afterUrl>` / `<SignUp afterUrl>` now navigate** on completion. It was typed
|
|
153
|
+
- **Provider icons render at a real size**. Brand marks (GitHub especially) carried only a
|
|
63
154
|
|
|
64
155
|
## 0.1.29
|
|
65
156
|
- **Fix — the invisible Google overlay is no longer rendered at exactly `opacity:0`.** GSI's
|
|
@@ -124,6 +215,35 @@
|
|
|
124
215
|
Redirect for Google requires a `client_secret` to be configured on the provider.
|
|
125
216
|
- **Add `hideTitle` prop** to `<SignIn>` / `<SignUp>`. Set it when your page already renders its own "Sign in" heading above the panel, so the title doesn't appear twice.
|
|
126
217
|
|
|
218
|
+
## 0.1.23
|
|
219
|
+
- The headless `<SocialSignInButton provider="google">` (and `useSignIn()`) now use the same
|
|
220
|
+
in-page Google button as the built-in `<SignIn>`, so Google sign-in completes without a
|
|
221
|
+
redirect or a stranded tab. Other providers keep the popup / redirect flow.
|
|
222
|
+
|
|
223
|
+
## 0.1.22
|
|
224
|
+
- Social buttons in `<SignIn>` now show a provider icon: the built-in brand mark, or a custom
|
|
225
|
+
icon URL configured for the provider in the dashboard.
|
|
226
|
+
|
|
227
|
+
## 0.1.21
|
|
228
|
+
- Added: `onSignedIn(user)` prop on `<AtlasProvider>`. Fires once on a real signed-out →
|
|
229
|
+
signed-in transition (including after a popup sign-in), never when a session is restored on
|
|
230
|
+
page load.
|
|
231
|
+
|
|
232
|
+
## 0.1.20
|
|
233
|
+
- Social buttons in `<SignIn>` now use the per-instance button label configured in the
|
|
234
|
+
dashboard when one is set, instead of always "Continue with {provider}".
|
|
235
|
+
|
|
236
|
+
## 0.1.19
|
|
237
|
+
- Added: popup-mode social / OIDC sign-in. Set `oauthMode: 'popup' | 'redirect'` on
|
|
238
|
+
`<AtlasProvider>` as the app default or on `<SignIn>` to override; the default stays
|
|
239
|
+
`'redirect'`. A blocked popup falls back to redirect.
|
|
240
|
+
- Added: `useSignIn().startOauth({ provider, mode })` and a headless `<SocialSignInButton>`
|
|
241
|
+
with `onOpen`, `onError` and `onBlockedFallback` callbacks.
|
|
242
|
+
|
|
243
|
+
## 0.1.18
|
|
244
|
+
- Added: `hideTitle` prop on `<SignIn>` / `<SignUp>` to hide the panel's own heading when the
|
|
245
|
+
page already shows one.
|
|
246
|
+
|
|
127
247
|
## 0.1.17
|
|
128
248
|
- **Fix — SSR-safe base styles.** The base stylesheet is now rendered as a `<style id="atlas-base-styles">` in `AtlasProvider`'s own output, so prebuilt components are styled in server-rendered HTML **and** on the client (no flash of unstyled content on SSR/Next.js). `ATLAS_BASE_CSS` and `injectAtlasStyles` are exported for manual/advanced use.
|
|
129
249
|
- **Use `>= 0.1.17`** if you rely on the prebuilt components styling themselves. 0.1.15/0.1.16 did not ship usable CSS (see below).
|
|
@@ -137,3 +257,79 @@
|
|
|
137
257
|
---
|
|
138
258
|
|
|
139
259
|
Components are styled out of the box from 0.1.17 with no CSS import — see the guide: https://atlasauth.net/docs/react-appearance-and-styling
|
|
260
|
+
## 0.1.14
|
|
261
|
+
- Added: billing hooks `useBilling()`, `useCheckout()` and `useSubscription()` (user- or
|
|
262
|
+
organization-scoped via `{ orgId }`) and a `<PricingTable>` component; checkout and the billing
|
|
263
|
+
portal open on Stripe-hosted pages. New `CheckoutParams`, `AtlasBillingPlan` and
|
|
264
|
+
`AtlasBillingSubscription` types.
|
|
265
|
+
|
|
266
|
+
## 0.1.13
|
|
267
|
+
- Added: multiple signed-in accounts per browser. `useSessionList()` lists them and
|
|
268
|
+
`setActive({ session })` switches; `<UserButton>` lists other accounts for one-click
|
|
269
|
+
switching; `<MultisessionAppSupport>` remounts its children on a switch. New
|
|
270
|
+
`AtlasSessionResource` type.
|
|
271
|
+
- Added: extension points for prebuilt components — `<UserButton.MenuItems>` with
|
|
272
|
+
`<UserButton.Action>` / `<UserButton.Link>`, and `<UserProfile.Page>` / `<UserProfile.Link>`.
|
|
273
|
+
|
|
274
|
+
## 0.1.12
|
|
275
|
+
- Added: `useOrganizationList()`, `<CreateOrganization>` and `<OrganizationList>`.
|
|
276
|
+
- Added: `<Waitlist>` and `useWaitlist()`.
|
|
277
|
+
- Added: `useReverification()` — headless wrapper for step-up re-authentication.
|
|
278
|
+
|
|
279
|
+
## 0.1.11
|
|
280
|
+
- Added: `<SignInButton>`, `<SignUpButton>` and `<SignOutButton>` (new `AuthButtonProps` type),
|
|
281
|
+
`<RedirectToSignIn>` / `<RedirectToSignUp>`, `<UserAvatar>`, and the headless `useSignUp()`.
|
|
282
|
+
|
|
283
|
+
## 0.1.10
|
|
284
|
+
- Fixed: republished with resolved dependency versions; 0.1.9 was published with unresolved
|
|
285
|
+
workspace dependencies and could not be installed (deprecated on npm).
|
|
286
|
+
|
|
287
|
+
## 0.1.9
|
|
288
|
+
- Added: `<ManagePasskeys>` — list, add and remove passkeys; included in `<UserProfile>`. Shows a
|
|
289
|
+
"not supported" note when the browser has no WebAuthn.
|
|
290
|
+
|
|
291
|
+
## 0.1.8
|
|
292
|
+
- Added: `<ManageMfa>` — enrol an authenticator app (TOTP), verify, show backup codes and turn
|
|
293
|
+
2FA off; included in `<UserProfile>`.
|
|
294
|
+
|
|
295
|
+
## 0.1.7
|
|
296
|
+
- Added: `<ProfileCard>` (editable name, email addresses) and `<ActiveSessions>` (devices with
|
|
297
|
+
per-device sign-out and "sign out of all other devices"). `<UserProfile>` now composes them.
|
|
298
|
+
|
|
299
|
+
## 0.1.6
|
|
300
|
+
- `<SignIn>` now shows a button for every enabled social provider: Google in-page, the others
|
|
301
|
+
via redirect back to the current page.
|
|
302
|
+
|
|
303
|
+
## 0.1.5
|
|
304
|
+
- Sign-in, sign-out and organization switches now propagate to other open tabs, and a tab
|
|
305
|
+
re-checks the session on focus, so a tab that started a sign-in elsewhere updates itself.
|
|
306
|
+
|
|
307
|
+
## 0.1.4
|
|
308
|
+
- The Google button in `<SignIn>` now has default styling from the `--atlas-*` appearance
|
|
309
|
+
variables, so it looks like a button without any custom CSS.
|
|
310
|
+
|
|
311
|
+
## 0.1.3
|
|
312
|
+
- Changed: the Google button in `<SignIn>` is now your themed button (the `socialButton`
|
|
313
|
+
appearance element) with Google's real button overlaid invisibly, instead of Google's own
|
|
314
|
+
fixed-style button.
|
|
315
|
+
|
|
316
|
+
## 0.1.2
|
|
317
|
+
- Added: `<SignIn>` shows a native in-page Google button when the Google connection is enabled
|
|
318
|
+
with a client id; One Tap is opt-in via `googleOneTap`.
|
|
319
|
+
- Added: headless `useSignIn()` for apps that render their own Google button.
|
|
320
|
+
|
|
321
|
+
## 0.1.1
|
|
322
|
+
- First published release.
|
|
323
|
+
- `<AtlasProvider>` with `useAtlas()`, `useAuth()`, `useUser()`, `useSession()`,
|
|
324
|
+
`useOrganization()`.
|
|
325
|
+
- Components: `<SignIn>`, `<SignUp>`, `<UserButton>`, `<UserProfile>`,
|
|
326
|
+
`<OrganizationSwitcher>`, `<OrganizationProfile>`, `<SignedIn>`, `<SignedOut>`, `<Protect>`,
|
|
327
|
+
`<AtlasLoading>`, `<AtlasLoaded>`.
|
|
328
|
+
- Theming via `appearance` (design tokens, themes, per-element classes) and i18n.
|
|
329
|
+
- Silent cross-site session check: `useSilentAuth()`, plus `checkSession` /
|
|
330
|
+
`handleSilentCallback` re-exported from `@atlasauth/js`.
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
Components are styled out of the box from 0.1.17 with no CSS import — see the guide: https://atlasauth.net/docs/react-appearance-and-styling
|
|
335
|
+
|
package/dist/AtlasProvider.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import { type ProviderToken, type SignOutOptions } from '@atlasauth/js';
|
|
2
|
+
import { type ProviderToken, type SignOutOptions, type SignOutResult } from '@atlasauth/js';
|
|
3
|
+
import { type SupportedLocale } from '@atlasauth/localizations';
|
|
3
4
|
import { type Appearance } from './appearance';
|
|
4
5
|
import { type Catalog } from './i18n';
|
|
6
|
+
import { type InstanceSettings } from './instance-settings';
|
|
5
7
|
import type { AtlasOrganizationMembership, AtlasSession, AtlasSessionResource, AtlasUser, SessionClaims } from './types';
|
|
6
8
|
/**
|
|
7
9
|
* §10.1 `<AtlasProvider publishableKey>`.
|
|
@@ -27,6 +29,13 @@ interface AtlasContextValue {
|
|
|
27
29
|
claims: SessionClaims | null;
|
|
28
30
|
memberships: AtlasOrganizationMembership[];
|
|
29
31
|
appearance?: Appearance;
|
|
32
|
+
/**
|
|
33
|
+
* The instance's public sign-in / sign-up settings (per-flow captcha, sign-up
|
|
34
|
+
* fields, legal consent) from `GET /v1/appearance`. Null until loaded, or when
|
|
35
|
+
* the server could not be reached — the components then fall back to their
|
|
36
|
+
* defaults and the server still enforces every gate.
|
|
37
|
+
*/
|
|
38
|
+
instanceSettings: InstanceSettings | null;
|
|
30
39
|
/** §oauth popup mode — app-wide default for social/OIDC sign-in (see AtlasProviderProps). */
|
|
31
40
|
oauthMode?: 'popup' | 'redirect';
|
|
32
41
|
catalog: Catalog;
|
|
@@ -48,7 +57,24 @@ interface AtlasContextValue {
|
|
|
48
57
|
* server refreshes a stale token on read; the refresh token is never exposed.
|
|
49
58
|
*/
|
|
50
59
|
getProviderToken(provider: string): Promise<ProviderToken | null>;
|
|
51
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Sign out of the active session: revoke it on the Frontend API (retried
|
|
62
|
+
* once), run front-channel logout, drop local state and sign sibling tabs out.
|
|
63
|
+
*
|
|
64
|
+
* Resolves `{ revoked, activeSessionId? }`. `revoked: false` means the server
|
|
65
|
+
* could not confirm the revoke; the user is still signed out locally and this
|
|
66
|
+
* browser never re-adopts that session. `activeSessionId` is set when another
|
|
67
|
+
* account signed in on this browser was promoted (multi-session) — the
|
|
68
|
+
* provider adopts it. With `{ strict: true }` a failed revoke rejects with a
|
|
69
|
+
* `SignOutError` (after the local sign-out).
|
|
70
|
+
*/
|
|
71
|
+
signOut(options?: SignOutOptions): Promise<SignOutResult>;
|
|
72
|
+
/**
|
|
73
|
+
* Tell other tabs of this app that auth changed here, so they re-check.
|
|
74
|
+
* `reload()` deliberately does not do this (a received signal must not loop);
|
|
75
|
+
* call it after completing a sign-in yourself.
|
|
76
|
+
*/
|
|
77
|
+
broadcastSessionChange(): void;
|
|
52
78
|
setActiveOrganization(organizationId: string | null): Promise<void>;
|
|
53
79
|
/**
|
|
54
80
|
* §L1 switch which signed-in account is active on this browser (Clerk
|
|
@@ -74,15 +100,30 @@ export interface AtlasProviderProps {
|
|
|
74
100
|
* - on the hosted fleet, before you verify a custom domain, the shared host
|
|
75
101
|
* `https://atlasauth.net` (FAPI resolves the instance from the key);
|
|
76
102
|
* - once a custom domain is verified, that host, e.g. `https://auth.acme.com`;
|
|
77
|
-
* - `""`
|
|
78
|
-
* your own origin (requests then go to
|
|
103
|
+
* - `"same-origin"` (or a path such as `"/atlas"`) for a reverse-proxy setup
|
|
104
|
+
* where you serve FAPI under your own origin (requests then go to
|
|
105
|
+
* relative paths).
|
|
79
106
|
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
107
|
+
* `""` is the deprecated same-origin spelling: it still works, with a
|
|
108
|
+
* one-time console warning. Missing or malformed values throw an `AtlasConfigError`
|
|
109
|
+
* (`code: 'FRONTEND_API_REQUIRED'` / `'FRONTEND_API_INVALID'`) when the
|
|
110
|
+
* provider renders, instead of silently sending requests to the app's own
|
|
111
|
+
* origin. Plain `http:` is accepted only for localhost and local development
|
|
112
|
+
* hosts.
|
|
83
113
|
*/
|
|
84
114
|
frontendApi: string;
|
|
85
115
|
appearance?: Appearance;
|
|
116
|
+
/**
|
|
117
|
+
* The UI language, as a BCP-47 tag: `"en"`, `"en-US"`, `"es"`, `"es-ES"`,
|
|
118
|
+
* `"fr"`, `"fr-FR"`, `"de"`, `"de-DE"`, `"pt-BR"`, `"ja"`, `"nl"`, … A region
|
|
119
|
+
* the catalogs don't have falls back to its language (`"es-MX"` → Spanish);
|
|
120
|
+
* an unknown language falls back to English. Defaults to English.
|
|
121
|
+
*/
|
|
122
|
+
locale?: SupportedLocale | (string & {});
|
|
123
|
+
/**
|
|
124
|
+
* String overrides, key by key (`{ 'signIn.title': 'Welcome back' }`), or a
|
|
125
|
+
* whole bundle from `@atlasauth/localizations`. Applied on top of `locale`.
|
|
126
|
+
*/
|
|
86
127
|
localization?: Catalog;
|
|
87
128
|
/**
|
|
88
129
|
* §oauth popup mode — the app-wide default for social/OIDC sign-in. `"popup"`
|
package/dist/AtlasProvider.js
CHANGED
|
@@ -5,16 +5,20 @@ exports.useAtlas = useAtlas;
|
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
6
|
const react_1 = require("react");
|
|
7
7
|
const js_1 = require("@atlasauth/js");
|
|
8
|
+
const localizations_1 = require("@atlasauth/localizations");
|
|
8
9
|
const appearance_1 = require("./appearance");
|
|
9
10
|
const styles_1 = require("./styles");
|
|
10
11
|
const i18n_1 = require("./i18n");
|
|
12
|
+
const instance_settings_1 = require("./instance-settings");
|
|
11
13
|
const AtlasContext = (0, react_1.createContext)(null);
|
|
12
14
|
/** §R3.2 the cross-tab "auth changed here, re-check" signal. Carries no token —
|
|
13
15
|
* a receiving tab re-boots from the shared cookies, never from the channel. */
|
|
14
16
|
const SESSION_SIGNAL = 'atlas:session';
|
|
15
17
|
function AtlasProvider(props) {
|
|
16
|
-
const { publishableKey, children, appearance, localization } = props;
|
|
17
|
-
|
|
18
|
+
const { publishableKey, children, appearance, localization, locale } = props;
|
|
19
|
+
// Throws an AtlasConfigError at render for a missing/malformed value — the
|
|
20
|
+
// old silent `?? ''` fallback sent every request to the app's own origin.
|
|
21
|
+
const baseUrl = (0, react_1.useMemo)(() => (0, js_1.resolveFrontendApi)(props.frontendApi, { component: '<AtlasProvider>' }), [props.frontendApi]);
|
|
18
22
|
const doFetch = props.fetchImpl ?? fetch;
|
|
19
23
|
const [status, setStatus] = (0, react_1.useState)('loading');
|
|
20
24
|
const [user, setUser] = (0, react_1.useState)(null);
|
|
@@ -22,6 +26,8 @@ function AtlasProvider(props) {
|
|
|
22
26
|
const [sessions, setSessions] = (0, react_1.useState)([]);
|
|
23
27
|
const [claims, setClaims] = (0, react_1.useState)(null);
|
|
24
28
|
const [memberships, setMemberships] = (0, react_1.useState)([]);
|
|
29
|
+
// Filled from GET /v1/appearance (see the effect beside the dashboard design).
|
|
30
|
+
const [instanceSettings, setInstanceSettings] = (0, react_1.useState)(null);
|
|
25
31
|
const cache = (0, react_1.useRef)(new js_1.TokenCache());
|
|
26
32
|
const timer = (0, react_1.useRef)(null);
|
|
27
33
|
// §R3.2 cross-tab session channel + refs the tab-propagation effect reads
|
|
@@ -29,6 +35,12 @@ function AtlasProvider(props) {
|
|
|
29
35
|
const channel = (0, react_1.useRef)(null);
|
|
30
36
|
const statusRef = (0, react_1.useRef)('loading');
|
|
31
37
|
const reloadRef = (0, react_1.useRef)(() => Promise.resolve());
|
|
38
|
+
// Sessions this tab signed out of: never re-adopted from a still-valid
|
|
39
|
+
// refresh cookie, even when the revoke did not reach the server.
|
|
40
|
+
const tombstones = (0, react_1.useRef)(null);
|
|
41
|
+
if (!tombstones.current)
|
|
42
|
+
tombstones.current = new js_1.SessionTombstones();
|
|
43
|
+
const sessionIdRef = (0, react_1.useRef)(null);
|
|
32
44
|
/**
|
|
33
45
|
* Captured synchronously during the first render (not in an effect) so it is
|
|
34
46
|
* already in context before <SignIn> reads it — a needs_second_factor redirect
|
|
@@ -56,6 +68,10 @@ function AtlasProvider(props) {
|
|
|
56
68
|
});
|
|
57
69
|
}, [baseUrl, doFetch, publishableKey]);
|
|
58
70
|
const applyToken = (0, react_1.useCallback)((jwt, sessionId) => {
|
|
71
|
+
// A refresh that was in flight when the user signed out must not put the
|
|
72
|
+
// signed-out session's token back.
|
|
73
|
+
if (tombstones.current?.has(sessionId))
|
|
74
|
+
return;
|
|
59
75
|
const expiresAt = (0, js_1.readExpiry)(jwt);
|
|
60
76
|
if (!expiresAt)
|
|
61
77
|
return;
|
|
@@ -68,7 +84,16 @@ function AtlasProvider(props) {
|
|
|
68
84
|
if (!response.ok)
|
|
69
85
|
throw new Error('boot failed');
|
|
70
86
|
const body = (await response.json());
|
|
71
|
-
|
|
87
|
+
const tombstoned = body.session ? tombstones.current?.has(body.session.id) : false;
|
|
88
|
+
if (tombstoned && body.session) {
|
|
89
|
+
// The browser still holds a refresh cookie for a session this tab signed
|
|
90
|
+
// out of (the revoke never landed). Stay signed out, and try the revoke
|
|
91
|
+
// again in the background — when it lands the server clears the cookies
|
|
92
|
+
// (or promotes a parked account, which the next re-check adopts).
|
|
93
|
+
void (0, js_1.revokeSession)(call, body.session.id, { retries: 0 });
|
|
94
|
+
}
|
|
95
|
+
if (!body.session || !body.user || tombstoned) {
|
|
96
|
+
sessionIdRef.current = null;
|
|
72
97
|
cache.current.clear();
|
|
73
98
|
setStatus('signed_out');
|
|
74
99
|
setUser(null);
|
|
@@ -78,6 +103,7 @@ function AtlasProvider(props) {
|
|
|
78
103
|
setMemberships([]);
|
|
79
104
|
return;
|
|
80
105
|
}
|
|
106
|
+
sessionIdRef.current = body.session.id;
|
|
81
107
|
setUser(body.user);
|
|
82
108
|
setSession(body.session);
|
|
83
109
|
// §L1 the multi-session list, active first. Older servers omit it; fall
|
|
@@ -138,9 +164,13 @@ function AtlasProvider(props) {
|
|
|
138
164
|
};
|
|
139
165
|
}, [status, claims, refresh]);
|
|
140
166
|
/** §R3.2 tell sibling tabs that auth changed here, so they re-check. */
|
|
141
|
-
const announceSessionChange = (0, react_1.useCallback)(() => {
|
|
142
|
-
|
|
167
|
+
const announceSessionChange = (0, react_1.useCallback)((signedOut) => {
|
|
168
|
+
const message = signedOut?.length
|
|
169
|
+
? { type: SESSION_SIGNAL, signedOut }
|
|
170
|
+
: { type: SESSION_SIGNAL };
|
|
171
|
+
channel.current?.post(message);
|
|
143
172
|
}, []);
|
|
173
|
+
const broadcastSessionChange = (0, react_1.useCallback)(() => announceSessionChange(), [announceSessionChange]);
|
|
144
174
|
// Keep refs current for the once-mounted tab-propagation effect below, so it
|
|
145
175
|
// reads live `status`/`reload` without re-subscribing every render.
|
|
146
176
|
(0, react_1.useEffect)(() => {
|
|
@@ -172,8 +202,18 @@ function AtlasProvider(props) {
|
|
|
172
202
|
const ch = (0, js_1.bestChannel)('atlas-session');
|
|
173
203
|
channel.current = ch;
|
|
174
204
|
const unsub = ch?.subscribe((msg) => {
|
|
175
|
-
|
|
176
|
-
|
|
205
|
+
const signal = msg;
|
|
206
|
+
if (signal?.type !== SESSION_SIGNAL)
|
|
207
|
+
return;
|
|
208
|
+
// Learn the sessions a sibling signed out of BEFORE re-checking, so this
|
|
209
|
+
// tab cannot re-adopt one from a refresh cookie the revoke did not clear.
|
|
210
|
+
if (Array.isArray(signal.signedOut)) {
|
|
211
|
+
const ids = signal.signedOut.filter((id) => typeof id === 'string');
|
|
212
|
+
tombstones.current?.add(...ids);
|
|
213
|
+
if (sessionIdRef.current && ids.includes(sessionIdRef.current))
|
|
214
|
+
cache.current.clear();
|
|
215
|
+
}
|
|
216
|
+
void reloadRef.current();
|
|
177
217
|
});
|
|
178
218
|
const onVisible = () => {
|
|
179
219
|
if (document.visibilityState === 'visible' && statusRef.current !== 'signed_in') {
|
|
@@ -237,26 +277,56 @@ function AtlasProvider(props) {
|
|
|
237
277
|
const fapiClient = (0, react_1.useMemo)(() => new js_1.FapiClient({ publishableKey, baseUrl, fetchImpl: doFetch }), [publishableKey, baseUrl, doFetch]);
|
|
238
278
|
const getProviderToken = (0, react_1.useCallback)((provider) => (0, js_1.getProviderToken)(fapiClient, provider), [fapiClient]);
|
|
239
279
|
const signOut = (0, react_1.useCallback)(async (options) => {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
280
|
+
// The session to end: from the token cache, else the booted session, else
|
|
281
|
+
// (no state yet — e.g. called before boot finished) whatever session the
|
|
282
|
+
// browser's cookies carry. The revoke route works from the cookies, so a
|
|
283
|
+
// missing in-memory token never skips the server-side sign-out.
|
|
284
|
+
let sessionId = cache.current.peek()?.sessionId ?? sessionIdRef.current;
|
|
285
|
+
let outcome = { revoked: true, status: 200 };
|
|
286
|
+
if (!sessionId) {
|
|
287
|
+
try {
|
|
288
|
+
const response = await call('/v1/client');
|
|
289
|
+
if (!response.ok)
|
|
290
|
+
throw new Error('boot failed');
|
|
291
|
+
const body = (await response.json());
|
|
292
|
+
sessionId = body.session?.id ?? null;
|
|
293
|
+
}
|
|
294
|
+
catch {
|
|
295
|
+
outcome = { revoked: false, status: 0 };
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
if (sessionId) {
|
|
299
|
+
// Remember it first: from here on nothing in this tab may re-adopt it.
|
|
300
|
+
tombstones.current?.add(sessionId);
|
|
301
|
+
outcome = await (0, js_1.revokeSession)(call, sessionId);
|
|
245
302
|
// OIDC Front-Channel Logout: let the apps signed in through this session
|
|
246
303
|
// clear theirs in this browser (hidden iframes, capped at 5 s). Best-effort.
|
|
247
304
|
if (options?.frontchannel !== false)
|
|
248
|
-
await (0, js_1.runFrontChannelLogoutFromResponse)(
|
|
305
|
+
await (0, js_1.runFrontChannelLogoutFromResponse)(outcome.response);
|
|
249
306
|
}
|
|
307
|
+
sessionIdRef.current = null;
|
|
250
308
|
cache.current.clear();
|
|
251
309
|
setStatus('signed_out');
|
|
252
310
|
setUser(null);
|
|
253
311
|
setSession(null);
|
|
312
|
+
setSessions([]);
|
|
254
313
|
setClaims(null);
|
|
255
314
|
setMemberships([]);
|
|
315
|
+
// §L1 the server promoted another account signed in on this browser: adopt
|
|
316
|
+
// it deliberately (the revoke response already set its cookies).
|
|
317
|
+
if (outcome.activeSessionId && !tombstones.current?.has(outcome.activeSessionId)) {
|
|
318
|
+
await reload();
|
|
319
|
+
}
|
|
256
320
|
// §R3.2 sign every sibling tab out too, so a shared device doesn't leave a
|
|
257
321
|
// live-looking session in another tab after the user signed out here.
|
|
258
|
-
announceSessionChange();
|
|
259
|
-
|
|
322
|
+
announceSessionChange(sessionId ? [sessionId] : undefined);
|
|
323
|
+
if (!outcome.revoked && options?.strict) {
|
|
324
|
+
throw new js_1.SignOutError(sessionId ?? '', outcome.status);
|
|
325
|
+
}
|
|
326
|
+
return outcome.activeSessionId
|
|
327
|
+
? { revoked: outcome.revoked, activeSessionId: outcome.activeSessionId }
|
|
328
|
+
: { revoked: outcome.revoked };
|
|
329
|
+
}, [announceSessionChange, call, reload]);
|
|
260
330
|
const setActiveOrganization = (0, react_1.useCallback)(async (organizationId) => {
|
|
261
331
|
const current = cache.current.peek();
|
|
262
332
|
if (!current)
|
|
@@ -289,7 +359,15 @@ function AtlasProvider(props) {
|
|
|
289
359
|
// §R3.2 the active account is session state other tabs reflect — nudge them.
|
|
290
360
|
announceSessionChange();
|
|
291
361
|
}, [announceSessionChange, applyToken, call, reload]);
|
|
292
|
-
const catalog = (0, react_1.useMemo)(() =>
|
|
362
|
+
const catalog = (0, react_1.useMemo)(() => {
|
|
363
|
+
// A built-in language bundle, then the app's own overrides key by key.
|
|
364
|
+
const base = locale ? (0, localizations_1.resolveLocale)(locale) : undefined;
|
|
365
|
+
if (locale && !base)
|
|
366
|
+
warnUnknownLocale(locale);
|
|
367
|
+
if (!base && !localization)
|
|
368
|
+
return i18n_1.EN_US;
|
|
369
|
+
return (0, i18n_1.withFallback)({ ...base, ...localization });
|
|
370
|
+
}, [locale, localization]);
|
|
293
371
|
// §onSignedIn: fire once on a genuine signed_out → signed_in transition (a NEW
|
|
294
372
|
// sign-in, including the post-popup re-boot), never on a cached-boot load. Uses
|
|
295
373
|
// a ref for the callback so a new function identity each render can't re-fire it.
|
|
@@ -314,17 +392,21 @@ function AtlasProvider(props) {
|
|
|
314
392
|
claims,
|
|
315
393
|
memberships,
|
|
316
394
|
appearance,
|
|
395
|
+
instanceSettings,
|
|
317
396
|
catalog,
|
|
318
397
|
pendingAttempt,
|
|
319
398
|
getToken,
|
|
320
399
|
getProviderToken,
|
|
321
400
|
signOut,
|
|
401
|
+
broadcastSessionChange,
|
|
322
402
|
setActiveOrganization,
|
|
323
403
|
setActiveSession,
|
|
324
404
|
reload,
|
|
325
405
|
}), [
|
|
326
406
|
appearance,
|
|
407
|
+
instanceSettings,
|
|
327
408
|
baseUrl,
|
|
409
|
+
broadcastSessionChange,
|
|
328
410
|
publishableKey,
|
|
329
411
|
props.oauthMode,
|
|
330
412
|
catalog,
|
|
@@ -350,20 +432,24 @@ function AtlasProvider(props) {
|
|
|
350
432
|
const [instanceDesign, setInstanceDesign] = (0, react_1.useState)(null);
|
|
351
433
|
const wantsInstanceDesign = appearance?.instanceDesign !== false;
|
|
352
434
|
(0, react_1.useEffect)(() => {
|
|
353
|
-
if (!wantsInstanceDesign)
|
|
354
|
-
return;
|
|
355
435
|
let alive = true;
|
|
356
436
|
void (async () => {
|
|
357
437
|
try {
|
|
358
438
|
const response = await call('/v1/appearance');
|
|
359
439
|
if (!response.ok)
|
|
360
440
|
return;
|
|
361
|
-
const
|
|
362
|
-
if (alive)
|
|
363
|
-
|
|
441
|
+
const body = await response.json();
|
|
442
|
+
if (!alive)
|
|
443
|
+
return;
|
|
444
|
+
// The sign-in / sign-up settings (captcha, fields, consent) are read even
|
|
445
|
+
// when the app opted out of the dashboard DESIGN: they are behaviour, not
|
|
446
|
+
// styling, and the server enforces them either way.
|
|
447
|
+
setInstanceSettings((0, instance_settings_1.instanceSettingsFrom)(body));
|
|
448
|
+
if (wantsInstanceDesign)
|
|
449
|
+
setInstanceDesign((0, appearance_1.instanceDesignFrom)(body));
|
|
364
450
|
}
|
|
365
451
|
catch {
|
|
366
|
-
// No dashboard design
|
|
452
|
+
// No dashboard design / default settings are the safe fallback.
|
|
367
453
|
}
|
|
368
454
|
})();
|
|
369
455
|
return () => {
|
|
@@ -386,6 +472,13 @@ function useAtlas() {
|
|
|
386
472
|
}
|
|
387
473
|
return value;
|
|
388
474
|
}
|
|
475
|
+
const warnedLocales = new Set();
|
|
476
|
+
function warnUnknownLocale(locale) {
|
|
477
|
+
if (warnedLocales.has(locale) || typeof console === 'undefined')
|
|
478
|
+
return;
|
|
479
|
+
warnedLocales.add(locale);
|
|
480
|
+
console.warn(`[Atlas] No built-in strings for locale "${locale}"; falling back to English.`);
|
|
481
|
+
}
|
|
389
482
|
function decodeClaims(jwt) {
|
|
390
483
|
const parts = jwt.split('.');
|
|
391
484
|
if (parts.length !== 3)
|
|
@@ -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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"}
|