@atlasauth/react 0.4.1 → 0.6.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.
@@ -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
- const baseUrl = props.frontendApi ?? '';
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,13 @@ 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 browser signed out of (shared by every tab, per Frontend
39
+ // API): never re-adopted from a still-valid refresh cookie, even when the
40
+ // revoke did not reach the server — not by a reload, nor by a tab opened later.
41
+ const tombstones = (0, react_1.useRef)(null);
42
+ if (!tombstones.current)
43
+ tombstones.current = new js_1.SessionTombstones({ frontendApi: baseUrl });
44
+ const sessionIdRef = (0, react_1.useRef)(null);
32
45
  /**
33
46
  * Captured synchronously during the first render (not in an effect) so it is
34
47
  * already in context before <SignIn> reads it — a needs_second_factor redirect
@@ -56,6 +69,10 @@ function AtlasProvider(props) {
56
69
  });
57
70
  }, [baseUrl, doFetch, publishableKey]);
58
71
  const applyToken = (0, react_1.useCallback)((jwt, sessionId) => {
72
+ // A refresh that was in flight when the user signed out must not put the
73
+ // signed-out session's token back.
74
+ if (tombstones.current?.has(sessionId))
75
+ return;
59
76
  const expiresAt = (0, js_1.readExpiry)(jwt);
60
77
  if (!expiresAt)
61
78
  return;
@@ -68,7 +85,21 @@ function AtlasProvider(props) {
68
85
  if (!response.ok)
69
86
  throw new Error('boot failed');
70
87
  const body = (await response.json());
71
- if (!body.session || !body.user) {
88
+ const tombstoned = body.session ? tombstones.current?.has(body.session.id) : false;
89
+ if (tombstoned && body.session) {
90
+ // The browser still holds a refresh cookie for a session this tab signed
91
+ // out of (the revoke never landed). Stay signed out, and try the revoke
92
+ // again in the background — when it lands the server clears the cookies
93
+ // (or promotes a parked account, which the next re-check adopts), and
94
+ // the tombstone has done its job.
95
+ const staleId = body.session.id;
96
+ void (0, js_1.revokeSession)(call, staleId, { retries: 0 }).then((outcome) => {
97
+ if (outcome.revoked)
98
+ tombstones.current?.remove(staleId);
99
+ });
100
+ }
101
+ if (!body.session || !body.user || tombstoned) {
102
+ sessionIdRef.current = null;
72
103
  cache.current.clear();
73
104
  setStatus('signed_out');
74
105
  setUser(null);
@@ -78,6 +109,7 @@ function AtlasProvider(props) {
78
109
  setMemberships([]);
79
110
  return;
80
111
  }
112
+ sessionIdRef.current = body.session.id;
81
113
  setUser(body.user);
82
114
  setSession(body.session);
83
115
  // §L1 the multi-session list, active first. Older servers omit it; fall
@@ -138,9 +170,13 @@ function AtlasProvider(props) {
138
170
  };
139
171
  }, [status, claims, refresh]);
140
172
  /** §R3.2 tell sibling tabs that auth changed here, so they re-check. */
141
- const announceSessionChange = (0, react_1.useCallback)(() => {
142
- channel.current?.post({ type: SESSION_SIGNAL });
173
+ const announceSessionChange = (0, react_1.useCallback)((signedOut) => {
174
+ const message = signedOut?.length
175
+ ? { type: SESSION_SIGNAL, signedOut }
176
+ : { type: SESSION_SIGNAL };
177
+ channel.current?.post(message);
143
178
  }, []);
179
+ const broadcastSessionChange = (0, react_1.useCallback)(() => announceSessionChange(), [announceSessionChange]);
144
180
  // Keep refs current for the once-mounted tab-propagation effect below, so it
145
181
  // reads live `status`/`reload` without re-subscribing every render.
146
182
  (0, react_1.useEffect)(() => {
@@ -172,8 +208,26 @@ function AtlasProvider(props) {
172
208
  const ch = (0, js_1.bestChannel)('atlas-session');
173
209
  channel.current = ch;
174
210
  const unsub = ch?.subscribe((msg) => {
175
- if (msg?.type === SESSION_SIGNAL)
211
+ const signal = msg;
212
+ if (signal?.type !== SESSION_SIGNAL)
213
+ return;
214
+ // Learn the sessions a sibling signed out of BEFORE re-checking, so this
215
+ // tab cannot re-adopt one from a refresh cookie the revoke did not clear.
216
+ if (Array.isArray(signal.signedOut)) {
217
+ const ids = signal.signedOut.filter((id) => typeof id === 'string');
218
+ tombstones.current?.add(...ids);
219
+ if (sessionIdRef.current && ids.includes(sessionIdRef.current))
220
+ cache.current.clear();
221
+ }
222
+ void reloadRef.current();
223
+ });
224
+ // Another tab signed out of THIS session (its tombstone reached the shared
225
+ // store before, or without, its broadcast): drop the token and re-check.
226
+ const unsubTombstones = tombstones.current?.subscribe((ids) => {
227
+ if (sessionIdRef.current && ids.includes(sessionIdRef.current)) {
228
+ cache.current.clear();
176
229
  void reloadRef.current();
230
+ }
177
231
  });
178
232
  const onVisible = () => {
179
233
  if (document.visibilityState === 'visible' && statusRef.current !== 'signed_in') {
@@ -184,6 +238,7 @@ function AtlasProvider(props) {
184
238
  window.addEventListener('focus', onVisible);
185
239
  return () => {
186
240
  unsub?.();
241
+ unsubTombstones?.();
187
242
  ch?.close();
188
243
  channel.current = null;
189
244
  document.removeEventListener('visibilitychange', onVisible);
@@ -196,17 +251,40 @@ function AtlasProvider(props) {
196
251
  * scrub the URL so a reload can't replay it, THEN boot. A redirect that only
197
252
  * carries a `__atlas_status` (a second factor is still owed) has no ticket, so
198
253
  * nothing is exchanged and the app boots signed-out — exactly as intended.
254
+ *
255
+ * §oauth popup mode: this page may also be running INSIDE the sign-in popup.
256
+ * - As the landing of a popup whose opener was severed by a
257
+ * Cross-Origin-Opener-Policy (`#atlas_popup_result=…`): relay the result
258
+ * to the opener over BroadcastChannel and close. If no opener takes it
259
+ * (its tab is gone), finish the sign-in here like a redirect.
260
+ * - After finishing a sign-in here (the redirect flow ran in the popup): tell
261
+ * the waiting opener and close the popup.
199
262
  */
200
263
  (0, react_1.useEffect)(() => {
201
- const result = typeof window !== 'undefined' ? (0, js_1.readRedirectResult)(window.location.search) : null;
264
+ const fromUrl = typeof window !== 'undefined' ? (0, js_1.readRedirectResult)(window.location.search) : null;
202
265
  void (async () => {
266
+ let result = fromUrl;
267
+ const landing = typeof window !== 'undefined' ? await (0, js_1.completeOAuthPopupLanding)().catch(() => null) : null;
268
+ if (landing && !landing.delivered) {
269
+ const outcome = (0, js_1.mapOAuthPopupPayload)(landing.payload);
270
+ if (outcome?.ticket && outcome.attemptId) {
271
+ result = { attemptId: outcome.attemptId, ticket: outcome.ticket };
272
+ }
273
+ else if (outcome?.continuationUrl) {
274
+ // A second factor / connect / provider error: the redirect flow's page.
275
+ window.location.replace(outcome.continuationUrl);
276
+ return;
277
+ }
278
+ }
279
+ let exchanged = false;
203
280
  if (result?.ticket) {
204
- await call('/v1/client/tickets/exchange', {
281
+ const response = await call('/v1/client/tickets/exchange', {
205
282
  method: 'POST',
206
283
  body: JSON.stringify({ attempt_id: result.attemptId, ticket: result.ticket }),
207
284
  }).catch(() => undefined);
285
+ exchanged = !!response?.ok;
208
286
  }
209
- if (result && typeof window !== 'undefined') {
287
+ if (fromUrl && typeof window !== 'undefined') {
210
288
  window.history.replaceState({}, document.title, (0, js_1.stripRedirectParams)(window.location.href));
211
289
  }
212
290
  await reload();
@@ -214,6 +292,9 @@ function AtlasProvider(props) {
214
292
  // (e.g. the one that opened the Google window) so it leaves the form too.
215
293
  if (result?.ticket)
216
294
  announceSessionChange();
295
+ // Signed in inside the Atlas popup: hand back to the opener and close.
296
+ if (exchanged)
297
+ void (0, js_1.closeOAuthPopupAfterSignIn)();
217
298
  })();
218
299
  // Runs once on mount (empty deps): the redirect is handled exactly once, and
219
300
  // re-running would only re-read an already-scrubbed URL. `reload`/`call` are
@@ -237,26 +318,56 @@ function AtlasProvider(props) {
237
318
  const fapiClient = (0, react_1.useMemo)(() => new js_1.FapiClient({ publishableKey, baseUrl, fetchImpl: doFetch }), [publishableKey, baseUrl, doFetch]);
238
319
  const getProviderToken = (0, react_1.useCallback)((provider) => (0, js_1.getProviderToken)(fapiClient, provider), [fapiClient]);
239
320
  const signOut = (0, react_1.useCallback)(async (options) => {
240
- const current = cache.current.peek();
241
- if (current) {
242
- const revoked = await call(`/v1/client/sessions/${current.sessionId}/revoke`, {
243
- method: 'POST',
244
- }).catch(() => undefined);
321
+ // The session to end: from the token cache, else the booted session, else
322
+ // (no state yet — e.g. called before boot finished) whatever session the
323
+ // browser's cookies carry. The revoke route works from the cookies, so a
324
+ // missing in-memory token never skips the server-side sign-out.
325
+ let sessionId = cache.current.peek()?.sessionId ?? sessionIdRef.current;
326
+ let outcome = { revoked: true, status: 200 };
327
+ if (!sessionId) {
328
+ try {
329
+ const response = await call('/v1/client');
330
+ if (!response.ok)
331
+ throw new Error('boot failed');
332
+ const body = (await response.json());
333
+ sessionId = body.session?.id ?? null;
334
+ }
335
+ catch {
336
+ outcome = { revoked: false, status: 0 };
337
+ }
338
+ }
339
+ if (sessionId) {
340
+ // Remember it first: from here on nothing in this tab may re-adopt it.
341
+ tombstones.current?.add(sessionId);
342
+ outcome = await (0, js_1.revokeSession)(call, sessionId);
245
343
  // OIDC Front-Channel Logout: let the apps signed in through this session
246
344
  // clear theirs in this browser (hidden iframes, capped at 5 s). Best-effort.
247
345
  if (options?.frontchannel !== false)
248
- await (0, js_1.runFrontChannelLogoutFromResponse)(revoked);
346
+ await (0, js_1.runFrontChannelLogoutFromResponse)(outcome.response);
249
347
  }
348
+ sessionIdRef.current = null;
250
349
  cache.current.clear();
251
350
  setStatus('signed_out');
252
351
  setUser(null);
253
352
  setSession(null);
353
+ setSessions([]);
254
354
  setClaims(null);
255
355
  setMemberships([]);
356
+ // §L1 the server promoted another account signed in on this browser: adopt
357
+ // it deliberately (the revoke response already set its cookies).
358
+ if (outcome.activeSessionId && !tombstones.current?.has(outcome.activeSessionId)) {
359
+ await reload();
360
+ }
256
361
  // §R3.2 sign every sibling tab out too, so a shared device doesn't leave a
257
362
  // live-looking session in another tab after the user signed out here.
258
- announceSessionChange();
259
- }, [announceSessionChange, call]);
363
+ announceSessionChange(sessionId ? [sessionId] : undefined);
364
+ if (!outcome.revoked && options?.strict) {
365
+ throw new js_1.SignOutError(sessionId ?? '', outcome.status);
366
+ }
367
+ return outcome.activeSessionId
368
+ ? { revoked: outcome.revoked, activeSessionId: outcome.activeSessionId }
369
+ : { revoked: outcome.revoked };
370
+ }, [announceSessionChange, call, reload]);
260
371
  const setActiveOrganization = (0, react_1.useCallback)(async (organizationId) => {
261
372
  const current = cache.current.peek();
262
373
  if (!current)
@@ -289,7 +400,15 @@ function AtlasProvider(props) {
289
400
  // §R3.2 the active account is session state other tabs reflect — nudge them.
290
401
  announceSessionChange();
291
402
  }, [announceSessionChange, applyToken, call, reload]);
292
- const catalog = (0, react_1.useMemo)(() => (localization ? (0, i18n_1.withFallback)(localization) : i18n_1.EN_US), [localization]);
403
+ const catalog = (0, react_1.useMemo)(() => {
404
+ // A built-in language bundle, then the app's own overrides key by key.
405
+ const base = locale ? (0, localizations_1.resolveLocale)(locale) : undefined;
406
+ if (locale && !base)
407
+ warnUnknownLocale(locale);
408
+ if (!base && !localization)
409
+ return i18n_1.EN_US;
410
+ return (0, i18n_1.withFallback)({ ...base, ...localization });
411
+ }, [locale, localization]);
293
412
  // §onSignedIn: fire once on a genuine signed_out → signed_in transition (a NEW
294
413
  // sign-in, including the post-popup re-boot), never on a cached-boot load. Uses
295
414
  // a ref for the callback so a new function identity each render can't re-fire it.
@@ -314,17 +433,21 @@ function AtlasProvider(props) {
314
433
  claims,
315
434
  memberships,
316
435
  appearance,
436
+ instanceSettings,
317
437
  catalog,
318
438
  pendingAttempt,
319
439
  getToken,
320
440
  getProviderToken,
321
441
  signOut,
442
+ broadcastSessionChange,
322
443
  setActiveOrganization,
323
444
  setActiveSession,
324
445
  reload,
325
446
  }), [
326
447
  appearance,
448
+ instanceSettings,
327
449
  baseUrl,
450
+ broadcastSessionChange,
328
451
  publishableKey,
329
452
  props.oauthMode,
330
453
  catalog,
@@ -350,20 +473,24 @@ function AtlasProvider(props) {
350
473
  const [instanceDesign, setInstanceDesign] = (0, react_1.useState)(null);
351
474
  const wantsInstanceDesign = appearance?.instanceDesign !== false;
352
475
  (0, react_1.useEffect)(() => {
353
- if (!wantsInstanceDesign)
354
- return;
355
476
  let alive = true;
356
477
  void (async () => {
357
478
  try {
358
479
  const response = await call('/v1/appearance');
359
480
  if (!response.ok)
360
481
  return;
361
- const design = (0, appearance_1.instanceDesignFrom)(await response.json());
362
- if (alive)
363
- setInstanceDesign(design);
482
+ const body = await response.json();
483
+ if (!alive)
484
+ return;
485
+ // The sign-in / sign-up settings (captcha, fields, consent) are read even
486
+ // when the app opted out of the dashboard DESIGN: they are behaviour, not
487
+ // styling, and the server enforces them either way.
488
+ setInstanceSettings((0, instance_settings_1.instanceSettingsFrom)(body));
489
+ if (wantsInstanceDesign)
490
+ setInstanceDesign((0, appearance_1.instanceDesignFrom)(body));
364
491
  }
365
492
  catch {
366
- // No dashboard design is the safe fallback.
493
+ // No dashboard design / default settings are the safe fallback.
367
494
  }
368
495
  })();
369
496
  return () => {
@@ -386,6 +513,13 @@ function useAtlas() {
386
513
  }
387
514
  return value;
388
515
  }
516
+ const warnedLocales = new Set();
517
+ function warnUnknownLocale(locale) {
518
+ if (warnedLocales.has(locale) || typeof console === 'undefined')
519
+ return;
520
+ warnedLocales.add(locale);
521
+ console.warn(`[Atlas] No built-in strings for locale "${locale}"; falling back to English.`);
522
+ }
389
523
  function decodeClaims(jwt) {
390
524
  const parts = jwt.split('.');
391
525
  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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"}
@@ -0,0 +1,63 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type CreateUserApiKeyInput, type CreatedUserApiKey, type UserApiKey } from '@atlasauth/js';
3
+ import { useReverification } from './reverification';
4
+ /**
5
+ * End-user API key self-service — the signed-in user's OWN `ak_` keys (or, with
6
+ * `organizationId`, their active organization's), over `/v1/client/me/api_keys`.
7
+ *
8
+ * `useApiKeys()` is the headless half: list + create + rename + revoke, with the
9
+ * step-up wired in — creating a key on a stale session parks the call and flips
10
+ * `reverification.needsReverification`; `completeReverification({ strategy:
11
+ * 'password', password })` re-authenticates in place and finishes the create.
12
+ * `<ApiKeys/>` is the drop-in UI built on it.
13
+ */
14
+ export type ApiKeysStatus = 'loading' | 'ready' | 'disabled' | 'error';
15
+ export interface UseApiKeysResult {
16
+ status: ApiKeysStatus;
17
+ keys: UserApiKey[];
18
+ /** The scopes / claim names a new key may carry (instance allowlists). */
19
+ allowedScopes: string[];
20
+ allowedClaims: string[];
21
+ maxActiveKeys: number;
22
+ activeCount: number;
23
+ error: string | null;
24
+ reload(): Promise<void>;
25
+ /** Create a key. Resolves with the one-time `secret`; parks for reverification on a stale session. */
26
+ createKey(input?: Omit<CreateUserApiKeyInput, 'organizationId'>): Promise<CreatedUserApiKey>;
27
+ renameKey(id: string, name: string | null): Promise<UserApiKey>;
28
+ revokeKey(id: string): Promise<void>;
29
+ reverification: ReturnType<typeof useReverification>;
30
+ }
31
+ export declare function useApiKeys(options?: {
32
+ organizationId?: string;
33
+ }): UseApiKeysResult;
34
+ /** What a claims slot receives: the draft claims and a setter, scoped to the allowlist. */
35
+ export interface ApiKeyClaimsFieldsContext {
36
+ claims: Record<string, unknown>;
37
+ /** Set (or, with `undefined`, remove) one claim on the key being created. */
38
+ setClaim(name: string, value: unknown): void;
39
+ /** The claim names the application lets a user set. Others are refused by the server. */
40
+ allowedClaims: string[];
41
+ }
42
+ export interface ApiKeysProps {
43
+ /** Manage this (active) organization's keys instead of the user's own. */
44
+ organizationId?: string;
45
+ /**
46
+ * Extra create-form fields whose values go into the key's `claims` — e.g. a
47
+ * spend limit. Only claim names the application allows are accepted.
48
+ */
49
+ renderClaimsFields?: (ctx: ApiKeyClaimsFieldsContext) => ReactNode;
50
+ /** Alias of `renderClaimsFields`. */
51
+ claimsForm?: (ctx: ApiKeyClaimsFieldsContext) => ReactNode;
52
+ /** Called with the newly created key (including its one-time `secret`). */
53
+ onCreate?: (key: CreatedUserApiKey) => void;
54
+ /** Expiry choices offered, in days. `0` means never. Default `[0, 30, 90, 365]`. */
55
+ expiryOptionsDays?: number[];
56
+ }
57
+ /**
58
+ * Drop-in API key manager: list, create (with the reverification prompt when the
59
+ * session is stale), show the new secret once with a copy button, rename, and
60
+ * revoke with a confirmation step.
61
+ */
62
+ export declare function ApiKeys(props: ApiKeysProps): import("react").JSX.Element | null;
63
+ export type { CreateUserApiKeyInput, CreatedUserApiKey, UserApiKey } from '@atlasauth/js';