@bravely-studios/account-web 0.3.10 → 0.4.1

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 (36) hide show
  1. package/README.md +159 -5
  2. package/dist/ActivationStateMachine.d.ts +1 -1
  3. package/dist/ActivationStateMachine.d.ts.map +1 -1
  4. package/dist/ActivationStateMachine.js +6 -2
  5. package/dist/ActivationStateMachine.js.map +1 -1
  6. package/dist/BravelyAccountManager.d.ts +108 -2
  7. package/dist/BravelyAccountManager.d.ts.map +1 -1
  8. package/dist/BravelyAccountManager.js +376 -29
  9. package/dist/BravelyAccountManager.js.map +1 -1
  10. package/dist/components/BravelyProviderButtons.d.ts.map +1 -1
  11. package/dist/components/BravelyProviderButtons.js.map +1 -1
  12. package/dist/components/BravelySignInScreen.d.ts +65 -0
  13. package/dist/components/BravelySignInScreen.d.ts.map +1 -0
  14. package/dist/components/BravelySignInScreen.js +156 -0
  15. package/dist/components/BravelySignInScreen.js.map +1 -0
  16. package/dist/components/OfferSlotGrid.d.ts +228 -0
  17. package/dist/components/OfferSlotGrid.d.ts.map +1 -0
  18. package/dist/components/OfferSlotGrid.js +554 -0
  19. package/dist/components/OfferSlotGrid.js.map +1 -0
  20. package/dist/index.d.ts +5 -2
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +6 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/installMetrics.d.ts +40 -0
  25. package/dist/installMetrics.d.ts.map +1 -0
  26. package/dist/installMetrics.js +128 -0
  27. package/dist/installMetrics.js.map +1 -0
  28. package/dist/storage.d.ts +23 -10
  29. package/dist/storage.d.ts.map +1 -1
  30. package/dist/storage.js +52 -16
  31. package/dist/storage.js.map +1 -1
  32. package/dist/types.d.ts +8 -1
  33. package/dist/types.d.ts.map +1 -1
  34. package/dist/types.js +2 -1
  35. package/dist/types.js.map +1 -1
  36. package/package.json +1 -1
@@ -20,9 +20,18 @@ const KEY_BAS = "bas";
20
20
  const KEY_REFRESH = "refresh_token";
21
21
  const KEY_BA_ID = "ba_id";
22
22
  const KEY_EMAIL = "email";
23
+ const KEY_EXPIRES_AT = "expires_at";
23
24
  const KEY_DPOP_JKT = "dpop_jkt_thumbprint";
24
25
  const KEY_PKCE_VERIFIER = "pkce_verifier";
25
26
  const KEY_PKCE_STATE = "pkce_state";
27
+ /**
28
+ * Proactive refresh window (D4): when the BAS has less than this much life
29
+ * left (or is already past `expires_at`), the manager rotates the session in
30
+ * the background via `grant_type=refresh_token` instead of waiting for a 401.
31
+ * BAS access tokens live 14 days; 48h is comfortably inside that while still
32
+ * rotating well before expiry for any returning visitor.
33
+ */
34
+ export const PRE_EXPIRY_REFRESH_WINDOW_MS = 48 * 60 * 60 * 1000;
26
35
  export class BravelyAccountManager {
27
36
  cfg;
28
37
  storage;
@@ -50,6 +59,13 @@ export class BravelyAccountManager {
50
59
  * (e.g. after reading it from native bridge / first-launch storage).
51
60
  */
52
61
  installId = null;
62
+ /**
63
+ * Single-flight guard for the refresh grant: concurrent 401s / proactive
64
+ * refreshes join the in-flight rotation instead of racing the one-time-use
65
+ * refresh token (a second concurrent presentation of the same token would
66
+ * trip the server's family reuse detection and revoke the session).
67
+ */
68
+ refreshInFlight = null;
53
69
  constructor(config) {
54
70
  if (!config.authority)
55
71
  throw new Error("authority is required");
@@ -69,7 +85,7 @@ export class BravelyAccountManager {
69
85
  redirectUri,
70
86
  scope: config.scope ?? DEFAULT_SCOPE,
71
87
  libName: config.libName ?? "bravely-account-web",
72
- libVersion: config.libVersion ?? "0.3.9",
88
+ libVersion: config.libVersion ?? "0.4.1",
73
89
  };
74
90
  this.storage = config.storage ?? defaultStorage();
75
91
  // Optional PHASE-2 install→account reconciliation id. When the host omits
@@ -137,6 +153,16 @@ export class BravelyAccountManager {
137
153
  * Hydrate from persistent storage and (if a BAS is present) verify it
138
154
  * against the identity API. Call once on page load before rendering UI
139
155
  * that depends on `getState()`.
156
+ *
157
+ * D4 session-forever behavior:
158
+ * - A stored BAS yields `signed_in` immediately (cache-backed); the
159
+ * entitlement check runs in the background. Transport failures NEVER
160
+ * wipe tokens or flip the state to signed_out.
161
+ * - A BAS near/past `expires_at` triggers a background refresh-grant
162
+ * rotation (`PRE_EXPIRY_REFRESH_WINDOW_MS`).
163
+ * - No BAS but a stored refresh token → the session is resurrected via
164
+ * `grant_type=refresh_token` before giving up (sessions survive even
165
+ * if the access token row was lost).
140
166
  */
141
167
  async restore() {
142
168
  await this.cache.hydrate();
@@ -144,6 +170,25 @@ export class BravelyAccountManager {
144
170
  const baId = await this.storage.get(KEY_BA_ID);
145
171
  const email = await this.storage.get(KEY_EMAIL);
146
172
  if (!bas || !baId || !email) {
173
+ // No usable BAS triple — but a durable refresh token can still
174
+ // resurrect the session without any user interaction.
175
+ const refresh = await this.storage.get(KEY_REFRESH);
176
+ if (refresh) {
177
+ this.activation.transition("app_launched", { bas_present: true });
178
+ const outcome = await this.refreshSession();
179
+ if (outcome === "refreshed") {
180
+ // persistRefreshedToken set the signed_in state; run the
181
+ // authoritative entitlement check in the background.
182
+ void this.refreshEntitlements().catch(() => undefined);
183
+ return this.getState();
184
+ }
185
+ // definitive_failure already cleared storage; transient failures
186
+ // KEEP the refresh token for the next launch (never wipe on
187
+ // transport failure) — but without a BAS there is no session to
188
+ // serve, so surface signed_out + pending_user_action.
189
+ this.activation.transition("bas_invalid");
190
+ return this.setState({ kind: "signed_out" });
191
+ }
147
192
  this.activation.transition("app_launched_no_session", { bas_present: false });
148
193
  return this.setState({ kind: "signed_out" });
149
194
  }
@@ -160,6 +205,12 @@ export class BravelyAccountManager {
160
205
  this.activation.force("fresh_launch_restoration");
161
206
  }
162
207
  this.setState({ kind: "signed_in", ba_id: baId, email, bas, entitlements: cachedEntitlements });
208
+ // Pre-expiry rotation: refresh in the background when the BAS is inside
209
+ // the proactive window (or already expired). Single-flight, so the
210
+ // entitlement refresh below joining a 401-triggered rotation is safe.
211
+ if (await this.shouldProactivelyRefresh()) {
212
+ void this.refreshSession().catch(() => undefined);
213
+ }
163
214
  // Refresh in the background; failures fall back to cache.
164
215
  void this.refreshEntitlements().catch(() => {
165
216
  // Already handled by transition logic; nothing else to do.
@@ -223,6 +274,7 @@ export class BravelyAccountManager {
223
274
  async signOut() {
224
275
  try {
225
276
  const bas = await this.storage.get(KEY_BAS);
277
+ const refresh = await this.storage.get(KEY_REFRESH);
226
278
  if (bas) {
227
279
  // Fire-and-forget revoke; if the OAuth server doesn't have a revoke
228
280
  // endpoint yet (Gate 1), this is a no-op. Wrapped in try/catch so
@@ -230,7 +282,11 @@ export class BravelyAccountManager {
230
282
  await this.fetchWithDeprecation(`${this.cfg.authority}/oauth/revoke`, {
231
283
  method: "POST",
232
284
  headers: { "Content-Type": "application/x-www-form-urlencoded" },
233
- body: new URLSearchParams({ token: bas, client_id: this.cfg.appSlug }).toString(),
285
+ body: new URLSearchParams({
286
+ token: bas,
287
+ token_type_hint: "access_token",
288
+ client_id: this.cfg.appSlug,
289
+ }).toString(),
234
290
  }).catch((err) => {
235
291
  // Best-effort revoke; local sign-out proceeds regardless. Breadcrumb
236
292
  // the cause (never the token) so a server-side revoke regression is
@@ -238,19 +294,50 @@ export class BravelyAccountManager {
238
294
  this.log("signout_revoke_failed", { step: "oauth_revoke", error: errorMessage(err) });
239
295
  });
240
296
  }
297
+ // With sliding-365d refresh families (D4), explicit sign-out should
298
+ // also revoke the durable refresh family — RFC 7009 form, best-effort
299
+ // (the router's revocation endpoint is still pending; sending now means
300
+ // already-shipped libs revoke correctly the day it lands).
301
+ if (refresh) {
302
+ await this.fetchWithDeprecation(`${this.cfg.authority}/oauth/revoke`, {
303
+ method: "POST",
304
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
305
+ body: new URLSearchParams({
306
+ token: refresh,
307
+ token_type_hint: "refresh_token",
308
+ client_id: this.cfg.appSlug,
309
+ }).toString(),
310
+ }).catch((err) => {
311
+ this.log("signout_revoke_failed", {
312
+ step: "oauth_revoke_refresh",
313
+ error: errorMessage(err),
314
+ });
315
+ });
316
+ }
241
317
  }
242
318
  finally {
243
- await this.storage.remove(KEY_BAS);
244
- await this.storage.remove(KEY_REFRESH);
245
- await this.storage.remove(KEY_BA_ID);
246
- await this.storage.remove(KEY_EMAIL);
247
- await this.storage.remove(KEY_DPOP_JKT);
248
- await this.cache.invalidate();
249
- this.dpopKeypairPromise = null;
250
- this.dpopJktThumbprint = null;
251
- this.setState({ kind: "signed_out" });
319
+ await this.clearLocalSession();
252
320
  }
253
321
  }
322
+ /**
323
+ * Drop every locally-persisted session artifact and flip to `signed_out`.
324
+ * The DESTRUCTIVE half of sign-out — only ever called from explicit user
325
+ * sign-out or a DEFINITIVE auth failure (`invalid_grant` on the refresh
326
+ * grant, or a 401 that survived a successful refresh-and-retry). Transport
327
+ * failures must never reach this.
328
+ */
329
+ async clearLocalSession() {
330
+ await this.storage.remove(KEY_BAS);
331
+ await this.storage.remove(KEY_REFRESH);
332
+ await this.storage.remove(KEY_BA_ID);
333
+ await this.storage.remove(KEY_EMAIL);
334
+ await this.storage.remove(KEY_EXPIRES_AT);
335
+ await this.storage.remove(KEY_DPOP_JKT);
336
+ await this.cache.invalidate();
337
+ this.dpopKeypairPromise = null;
338
+ this.dpopJktThumbprint = null;
339
+ this.setState({ kind: "signed_out" });
340
+ }
254
341
  /**
255
342
  * Read entitlements, serving the cached row if fresh and refreshing
256
343
  * opportunistically. Always returns an array (possibly empty).
@@ -353,8 +440,9 @@ export class BravelyAccountManager {
353
440
  * introduced in the Mac/iOS v2 onboarding port.
354
441
  *
355
442
  * Throws if the user is not signed in (`not_signed_in`) or if the server
356
- * returns a non-2xx status. 401 is surfaced as a sign-out (matching the
357
- * pattern in `refreshEntitlements`).
443
+ * returns a non-2xx status. A definitive 401 (refresh-and-retry exhausted)
444
+ * is surfaced as `not_signed_in`; a 401 riding a transient refresh failure
445
+ * keeps the session and throws a plain request failure.
358
446
  */
359
447
  async getAccountEntitlements() {
360
448
  const bas = await this.requireBas();
@@ -362,8 +450,12 @@ export class BravelyAccountManager {
362
450
  method: "GET",
363
451
  });
364
452
  if (res.status === 401) {
365
- await this.signOut();
366
- throw new Error("not_signed_in");
453
+ // `fetchWithBas` already refreshed-and-retried; a surviving 401 either
454
+ // cleared the session (definitive ⇒ not_signed_in) or rode a transient
455
+ // refresh failure (session kept ⇒ plain request failure).
456
+ if (await this.sessionWasCleared())
457
+ throw new Error("not_signed_in");
458
+ throw new Error("getAccountEntitlements failed: 401");
367
459
  }
368
460
  if (!res.ok) {
369
461
  throw new Error(`getAccountEntitlements failed: ${res.status}`);
@@ -413,7 +505,11 @@ export class BravelyAccountManager {
413
505
  try {
414
506
  const url = new URL("/api/entitlements", this.cfg.identityOrigin);
415
507
  url.searchParams.set("app", this.cfg.appSlug);
416
- const res = await this.fetchWithBas(url.toString(), bas, {
508
+ // Re-read the BAS each attempt: a mid-poll refresh rotation (401
509
+ // refresh-then-retry inside fetchWithBas) replaces the stored token,
510
+ // and polling on with the stale capture would 401 every round.
511
+ const currentBas = (await this.storage.get(KEY_BAS)) ?? bas;
512
+ const res = await this.fetchWithBas(url.toString(), currentBas, {
417
513
  method: "GET",
418
514
  });
419
515
  if (res.ok) {
@@ -514,7 +610,12 @@ export class BravelyAccountManager {
514
610
  await this.persistToken(data);
515
611
  return this.getState();
516
612
  }
517
- async persistToken(data) {
613
+ /**
614
+ * Persist the token + identity rows shared by the sign-in and refresh
615
+ * legs (BAS, rotated refresh token, ba_id, email, expires_at, lib version
616
+ * policy). Returns the inline entitlement snapshot.
617
+ */
618
+ async persistSessionCore(data) {
518
619
  const bas = "access_token" in data ? data.access_token : data.bas;
519
620
  const refresh = data.refresh_token ?? null;
520
621
  await this.storage.set(KEY_BAS, bas);
@@ -522,11 +623,19 @@ export class BravelyAccountManager {
522
623
  await this.storage.set(KEY_REFRESH, refresh);
523
624
  await this.storage.set(KEY_BA_ID, data.bravely_account_id);
524
625
  await this.storage.set(KEY_EMAIL, data.email);
626
+ // Track the BAS expiry client-side so the proactive refresh loop can
627
+ // rotate before a 401 ever happens (D4).
628
+ if (data.expires_at) {
629
+ await this.storage.set(KEY_EXPIRES_AT, data.expires_at);
630
+ }
525
631
  if ("bravely_lib_version" in data && data.bravely_lib_version) {
526
632
  this.libVersionPolicy = data.bravely_lib_version;
527
633
  }
634
+ return { bas, entitlements: (data.active_entitlements ?? []) };
635
+ }
636
+ async persistToken(data) {
637
+ const { bas, entitlements } = await this.persistSessionCore(data);
528
638
  // Active entitlements ride along on Gate 1 BAS exchange (B6).
529
- const entitlements = (data.active_entitlements ?? []);
530
639
  await this.cache.update({ entitlements });
531
640
  this.setState({
532
641
  kind: "signed_in",
@@ -543,6 +652,172 @@ export class BravelyAccountManager {
543
652
  this.activation.transition("entitlement_check_success_none");
544
653
  }
545
654
  }
655
+ /**
656
+ * Persist a `grant_type=refresh_token` rotation result. Differs from the
657
+ * sign-in leg deliberately:
658
+ * - The inline entitlement snapshot is best-effort on the server (an RC
659
+ * hiccup yields `[]` so rotation never fails) — so an EMPTY snapshot
660
+ * must not downgrade the 72h offline cache mid-session. Non-empty
661
+ * snapshots update cache + state; empty ones leave the authoritative
662
+ * `/api/entitlements` check (which runs on every restore) in charge.
663
+ * - No `entitlement_check_*` activation events are fired here for the
664
+ * same reason; only `bas_found` advances the restore lane.
665
+ */
666
+ async persistRefreshedToken(data) {
667
+ const { bas, entitlements } = await this.persistSessionCore(data);
668
+ // Contract enforcement (router ≥1.6.0 always rotates): if a 200 refresh
669
+ // response somehow lacks the rotated token, the OLD token is spent
670
+ // server-side — presenting it again later would read as reuse and revoke
671
+ // the family. Drop it: the fresh BAS still serves its full window, and
672
+ // the next 401 walks the no_refresh_token lane instead of a false-reuse
673
+ // revoke.
674
+ if (!data.refresh_token) {
675
+ await this.storage.remove(KEY_REFRESH);
676
+ this.log("session_refresh_missing_rotated_token", { step: "oauth_refresh" });
677
+ }
678
+ if (entitlements.length > 0) {
679
+ await this.cache.update({ entitlements, dpopJktThumbprint: this.dpopJktThumbprint });
680
+ }
681
+ const effective = entitlements.length > 0
682
+ ? entitlements
683
+ : this.state.kind === "signed_in"
684
+ ? this.state.entitlements
685
+ : (this.cache.raw()?.entitlements ?? []);
686
+ this.setState({
687
+ kind: "signed_in",
688
+ ba_id: data.bravely_account_id,
689
+ email: data.email,
690
+ bas,
691
+ entitlements: effective,
692
+ });
693
+ this.activation.transition("bas_found");
694
+ }
695
+ /**
696
+ * True when the stored BAS is inside the proactive-refresh window (or past
697
+ * expiry). Unknown expiry (legacy rows) ⇒ false — the 401-retry path
698
+ * covers those sessions.
699
+ */
700
+ async shouldProactivelyRefresh() {
701
+ const expiresAt = await this.storage.get(KEY_EXPIRES_AT);
702
+ if (!expiresAt)
703
+ return false;
704
+ const parsed = Date.parse(expiresAt);
705
+ if (Number.isNaN(parsed))
706
+ return false;
707
+ return parsed - Date.now() < PRE_EXPIRY_REFRESH_WINDOW_MS;
708
+ }
709
+ /**
710
+ * Rotate the session via `POST {authority}/oauth/token` with
711
+ * `grant_type=refresh_token` (router ≥1.6.0). Single-flight: concurrent
712
+ * callers join the in-flight rotation (the refresh token is one-time-use;
713
+ * racing it would trip server-side reuse detection).
714
+ *
715
+ * Cross-TAB races are handled by two layers: (a) where available, a Web
716
+ * Lock (`bravely:session_refresh:<slug>`) serializes rotations across tabs
717
+ * sharing the same IndexedDB token; (b) the token is re-read inside the
718
+ * critical section, and if another tab already rotated (stored BAS changed
719
+ * while we waited) the rotation is skipped. Browsers without Web Locks
720
+ * fall back to the server's 30s idempotent-retry grace for near-
721
+ * simultaneous presentations of the same token.
722
+ *
723
+ * Destructive ONLY on a definitive rejection (`invalid_grant` / 401):
724
+ * transport failures, 5xx, and 429 keep every token in place.
725
+ */
726
+ refreshSession() {
727
+ if (!this.refreshInFlight) {
728
+ this.refreshInFlight = this.refreshSessionCrossTab().finally(() => {
729
+ this.refreshInFlight = null;
730
+ });
731
+ }
732
+ return this.refreshInFlight;
733
+ }
734
+ async refreshSessionCrossTab() {
735
+ const basBefore = await this.storage.get(KEY_BAS);
736
+ const run = async () => {
737
+ // Another tab may have rotated while we waited on the lock — adopt its
738
+ // result instead of spending a second rotation.
739
+ if (basBefore) {
740
+ const basNow = await this.storage.get(KEY_BAS);
741
+ if (basNow && basNow !== basBefore)
742
+ return "refreshed";
743
+ }
744
+ return this.doRefreshSession();
745
+ };
746
+ const locks = globalThis.navigator?.locks;
747
+ if (locks?.request) {
748
+ try {
749
+ return await locks.request(`bravely:session_refresh:${this.cfg.appSlug}`, run);
750
+ }
751
+ catch (error) {
752
+ // Lock machinery failure (not a refresh verdict) — fall through to
753
+ // the unlocked path rather than failing the rotation.
754
+ this.log("session_refresh_lock_error", {
755
+ step: "oauth_refresh",
756
+ error: errorMessage(error),
757
+ });
758
+ }
759
+ }
760
+ return run();
761
+ }
762
+ async doRefreshSession() {
763
+ const refresh = await this.storage.get(KEY_REFRESH);
764
+ if (!refresh)
765
+ return "no_refresh_token";
766
+ try {
767
+ const res = await this.fetchWithDeprecation(`${this.cfg.authority}/oauth/token`, {
768
+ method: "POST",
769
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
770
+ body: new URLSearchParams({
771
+ grant_type: "refresh_token",
772
+ refresh_token: refresh,
773
+ client_id: this.cfg.appSlug,
774
+ }).toString(),
775
+ });
776
+ if (res.ok) {
777
+ const data = (await res.json());
778
+ await this.persistRefreshedToken(data);
779
+ this.log("session_refreshed", { step: "oauth_refresh" });
780
+ return "refreshed";
781
+ }
782
+ let err = {};
783
+ try {
784
+ err = (await res.json());
785
+ }
786
+ catch {
787
+ /* ignore non-JSON error bodies */
788
+ }
789
+ // `invalid_grant` covers invalid / revoked / reuse-detected tokens —
790
+ // the server's uniform rejection. 401 = invalid_client-class failures.
791
+ // Both are definitive: the session cannot be recovered.
792
+ if (err.error === "invalid_grant" || res.status === 401) {
793
+ this.log("session_refresh_rejected", {
794
+ step: "oauth_refresh",
795
+ status: res.status,
796
+ error: err.error ?? null,
797
+ });
798
+ await this.clearLocalSession();
799
+ return "definitive_failure";
800
+ }
801
+ // 429 / 5xx / anything else: server-side trouble, NOT a verdict on the
802
+ // token. Keep the session and retry later.
803
+ this.log("session_refresh_http_error", {
804
+ step: "oauth_refresh",
805
+ status: res.status,
806
+ error: err.error ?? null,
807
+ });
808
+ return "transient_failure";
809
+ }
810
+ catch (error) {
811
+ // Network failure (offline) or the 426 kill-switch. Neither is a
812
+ // verdict on the refresh token — tokens are NEVER wiped on transport
813
+ // failure (D4).
814
+ this.log("session_refresh_network_error", {
815
+ step: "oauth_refresh",
816
+ error: errorMessage(error),
817
+ });
818
+ return "transient_failure";
819
+ }
820
+ }
546
821
  async refreshEntitlements() {
547
822
  const bas = await this.storage.get(KEY_BAS);
548
823
  if (!bas)
@@ -554,13 +829,26 @@ export class BravelyAccountManager {
554
829
  method: "GET",
555
830
  });
556
831
  if (res.status === 401) {
557
- // BAS invalid; treat as signed-out.
558
- this.log("entitlement_refresh_unauthorized", {
832
+ // `fetchWithBas` already ran refresh-then-retry-once and cleared the
833
+ // session iff the failure was definitive. Only mirror that verdict —
834
+ // never sign out on a 401 that rode a transient refresh failure.
835
+ if (await this.sessionWasCleared()) {
836
+ this.log("entitlement_refresh_unauthorized", {
837
+ step: "refresh_entitlements",
838
+ status: 401,
839
+ });
840
+ return [];
841
+ }
842
+ const cached = this.cache.getCached();
843
+ this.log("entitlement_refresh_unauthorized_transient", {
559
844
  step: "refresh_entitlements",
560
845
  status: 401,
846
+ entitlement_cache_present: !!cached,
847
+ });
848
+ this.activation.transition("entitlement_check_failure", {
849
+ entitlement_cache_present: !!cached,
561
850
  });
562
- await this.signOut();
563
- return [];
851
+ return cached?.entitlements ?? [];
564
852
  }
565
853
  if (!res.ok) {
566
854
  const cached = this.cache.getCached();
@@ -609,15 +897,74 @@ export class BravelyAccountManager {
609
897
  * the current router accepts Bearer on shared BAS endpoints, but attach a
610
898
  * real RFC 9449 proof in the `DPoP` header so Gate 2 traffic is already
611
899
  * exercising proof generation.
900
+ *
901
+ * D4 401 handling — refresh-then-retry-once: a 401 triggers ONE refresh
902
+ * grant; on success the request is retried with the new BAS. Destructive
903
+ * sign-out happens ONLY when the failure is definitive:
904
+ * - the refresh grant itself was rejected (`invalid_grant`/401), or
905
+ * - there is no refresh token to present, or
906
+ * - the retried request STILL came back 401 after a successful refresh.
907
+ * A transient refresh failure (offline/5xx/429) returns the original 401
908
+ * response WITHOUT touching the stored session — callers must treat a 401
909
+ * with the session still present as a transient failure (serve cache).
612
910
  */
613
911
  async fetchWithBas(input, bas, init = {}) {
614
- const method = init.method ?? "GET";
615
- const headers = new Headers(init.headers);
616
- headers.set("Authorization", `Bearer ${bas}`);
617
- const proof = await this.dpopProof(method, input, bas);
618
- if (proof)
619
- headers.set("DPoP", proof);
620
- return this.fetchWithDeprecation(input, { ...init, method, headers });
912
+ const doFetch = async (token) => {
913
+ const method = init.method ?? "GET";
914
+ const headers = new Headers(init.headers);
915
+ headers.set("Authorization", `Bearer ${token}`);
916
+ const proof = await this.dpopProof(method, input, token);
917
+ if (proof)
918
+ headers.set("DPoP", proof);
919
+ return this.fetchWithDeprecation(input, { ...init, method, headers });
920
+ };
921
+ const res = await doFetch(bas);
922
+ if (res.status !== 401)
923
+ return res;
924
+ // Another caller may have already rotated the session while this request
925
+ // was in flight (the caller captured a now-stale BAS). Retry with the
926
+ // current stored token before spending a rotation.
927
+ const current = await this.storage.get(KEY_BAS);
928
+ if (current && current !== bas) {
929
+ const retriedWithCurrent = await doFetch(current);
930
+ if (retriedWithCurrent.status !== 401)
931
+ return retriedWithCurrent;
932
+ // Still 401 — fall through to a real refresh with the live token.
933
+ }
934
+ const outcome = await this.refreshSession();
935
+ if (outcome === "refreshed") {
936
+ const rotated = await this.storage.get(KEY_BAS);
937
+ if (!rotated)
938
+ return res; // defensive; persistRefreshedToken always writes it
939
+ const retried = await doFetch(rotated);
940
+ if (retried.status === 401) {
941
+ // Fresh BAS minted seconds ago and still rejected — definitive.
942
+ this.log("bas_unauthorized_after_refresh", { step: "fetch_with_bas", status: 401 });
943
+ await this.clearLocalSession();
944
+ }
945
+ return retried;
946
+ }
947
+ if (outcome === "no_refresh_token" || outcome === "definitive_failure") {
948
+ // 401 with no recovery path (definitive_failure already cleared
949
+ // storage inside the refresh; the no-token path clears here).
950
+ if (outcome === "no_refresh_token") {
951
+ this.log("bas_unauthorized_no_refresh_token", { step: "fetch_with_bas", status: 401 });
952
+ await this.clearLocalSession();
953
+ }
954
+ return res;
955
+ }
956
+ // transient_failure: keep the session; surface the original 401.
957
+ return res;
958
+ }
959
+ /**
960
+ * True when a 401 response should be treated as a signed-out verdict:
961
+ * `fetchWithBas` has already run the refresh-then-retry dance and cleared
962
+ * local storage iff the failure was definitive. If the BAS row is still
963
+ * present, the 401 rode a TRANSIENT refresh failure — the session is kept
964
+ * and callers must degrade gracefully (serve cache) instead of signing out.
965
+ */
966
+ async sessionWasCleared() {
967
+ return (await this.storage.get(KEY_BAS)) === null;
621
968
  }
622
969
  async dpopProof(method, url, accessToken) {
623
970
  const keypair = await this.getDpopKeypair();
@@ -1 +1 @@
1
- {"version":3,"file":"BravelyAccountManager.js","sourceRoot":"","sources":["../src/BravelyAccountManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BravelyAccountManager.js","sourceRoot":"","sources":["../src/BravelyAccountManager.ts"],"names":[],"mappings":"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"}