@interop/was-react 0.1.5 → 0.1.6

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 (62) hide show
  1. package/dist/auth/loginRequest.d.ts +4 -9
  2. package/dist/auth/loginRequest.d.ts.map +1 -1
  3. package/dist/auth/loginRequest.js +2 -13
  4. package/dist/auth/loginRequest.js.map +1 -1
  5. package/dist/auth/walletRequestTypes.d.ts +3 -2
  6. package/dist/auth/walletRequestTypes.d.ts.map +1 -1
  7. package/dist/config.d.ts +22 -0
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +5 -0
  10. package/dist/config.js.map +1 -1
  11. package/dist/grants.d.ts +10 -8
  12. package/dist/grants.d.ts.map +1 -1
  13. package/dist/grants.js +12 -9
  14. package/dist/grants.js.map +1 -1
  15. package/dist/index.d.ts +3 -3
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +4 -4
  18. package/dist/index.js.map +1 -1
  19. package/dist/mui/ClearDataDialog.d.ts +12 -0
  20. package/dist/mui/ClearDataDialog.d.ts.map +1 -0
  21. package/dist/mui/ClearDataDialog.js +30 -0
  22. package/dist/mui/ClearDataDialog.js.map +1 -0
  23. package/dist/mui/LogoutDialog.d.ts +12 -0
  24. package/dist/mui/LogoutDialog.d.ts.map +1 -0
  25. package/dist/mui/LogoutDialog.js +30 -0
  26. package/dist/mui/LogoutDialog.js.map +1 -0
  27. package/dist/mui/ProtectedRoute.d.ts +2 -2
  28. package/dist/mui/ProtectedRoute.d.ts.map +1 -1
  29. package/dist/mui/ProtectedRoute.js +30 -23
  30. package/dist/mui/ProtectedRoute.js.map +1 -1
  31. package/dist/mui/index.d.ts +2 -0
  32. package/dist/mui/index.d.ts.map +1 -1
  33. package/dist/mui/index.js +2 -0
  34. package/dist/mui/index.js.map +1 -1
  35. package/dist/react/WasSessionProvider.d.ts.map +1 -1
  36. package/dist/react/WasSessionProvider.js +8 -4
  37. package/dist/react/WasSessionProvider.js.map +1 -1
  38. package/dist/react/hooks.d.ts +19 -4
  39. package/dist/react/hooks.d.ts.map +1 -1
  40. package/dist/react/hooks.js +22 -6
  41. package/dist/react/hooks.js.map +1 -1
  42. package/dist/react/index.d.ts +1 -1
  43. package/dist/react/index.d.ts.map +1 -1
  44. package/dist/react/index.js +1 -1
  45. package/dist/react/index.js.map +1 -1
  46. package/dist/session/authStore.d.ts +84 -21
  47. package/dist/session/authStore.d.ts.map +1 -1
  48. package/dist/session/authStore.js +231 -79
  49. package/dist/session/authStore.js.map +1 -1
  50. package/dist/session/index.d.ts +3 -4
  51. package/dist/session/index.d.ts.map +1 -1
  52. package/dist/session/index.js +2 -3
  53. package/dist/session/index.js.map +1 -1
  54. package/dist/storage/localStore.d.ts +7 -0
  55. package/dist/storage/localStore.d.ts.map +1 -1
  56. package/dist/storage/localStore.js +9 -0
  57. package/dist/storage/localStore.js.map +1 -1
  58. package/package.json +1 -1
  59. package/dist/session/appReadyStore.d.ts +0 -10
  60. package/dist/session/appReadyStore.d.ts.map +0 -1
  61. package/dist/session/appReadyStore.js +0 -22
  62. package/dist/session/appReadyStore.js.map +0 -1
@@ -2,17 +2,24 @@
2
2
  * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
3
  */
4
4
  /**
5
- * The wallet-mode auth store (zustand): owns the session lifecycle -- hot
6
- * restore (zero popups), Login With Wallet, logout, and the expired-access
7
- * reconnect -- plus the open/hydrate/sync ordering.
5
+ * The session auth store (zustand): a four-state machine
6
+ * (`boot` | `local` | `connected` | `reconnect`) that owns the whole session
7
+ * lifecycle -- boot (hot restore or fall to an anonymous local replica), Login
8
+ * With Wallet, the non-CHAPI `connectWithGrants` path, logout, clear-data, and
9
+ * the expired-access reconnect -- plus the open/hydrate/sync ordering.
8
10
  *
9
- * On a successful login/restore it opens the encrypted {@link LocalStore} from
10
- * the session seed (a per-controller database name, so two wallet users on one
11
- * browser never collide), hydrates the entity stores, flips the shared
12
- * `useAppReady` gate, and starts WAS replication from the granted zcaps.
11
+ * `boot` attempts a zero-popup session restore. A restore hit opens the
12
+ * encrypted {@link LocalStore} under the session seed, hydrates the entity
13
+ * stores, starts WAS replication, and lands `connected`. A restore miss (or any
14
+ * error) opens the store under a persisted ANONYMOUS seed instead and lands
15
+ * `local`: a fully usable, encrypted, local-only replica with no remote. Both
16
+ * successors finish open+hydrate before leaving `boot`, so "app ready" is simply
17
+ * `status !== 'boot'`.
13
18
  *
14
- * `status` is the router gate: `ProtectedRoute` waits for the restore attempt to
15
- * settle before deciding between the app and the login page.
19
+ * Login (or `connectWithGrants`) tears the anonymous replica down and opens the
20
+ * connected replica under the wallet-derived seed. Logout returns to a fresh
21
+ * `local` (optionally wiping the connected replica); `clearLocalData` mints a
22
+ * brand-new anonymous seed and replica.
16
23
  *
17
24
  * The library cannot bind a module-level store to app config, so this is a
18
25
  * FACTORY: {@link createAuthStore} captures the app's {@link WasAppConfig} and
@@ -20,11 +27,11 @@
20
27
  * vanilla zustand store the hooks consume through context.
21
28
  */
22
29
  import { createStore } from 'zustand/vanilla';
23
- import { DEFAULT_DB_NAME, DEFAULT_EXPIRY_WARNING_MS, DEFAULT_EXPIRY_WATCH_MS } from '../config.js';
30
+ import { DEFAULT_DB_NAME, DEFAULT_EXPIRY_WARNING_MS, DEFAULT_EXPIRY_WATCH_MS, DEFAULT_ONBOARDING } from '../config.js';
24
31
  import { createDocumentLoader } from '../identity/documentLoader.js';
25
32
  import { initAppSession } from '../identity/initAppSession.js';
26
33
  import { createSeedStore } from '../identity/seedStore.js';
27
- import { clearAppSession, persistAppSession, restoreAppSession, isNearExpiry } from '../identity/appSession.js';
34
+ import { clearAppSession, persistAppSession, restoreAppSession, isNearExpiry, earliestExpiry } from '../identity/appSession.js';
28
35
  import { loginWithWallet, requestGrants, LoginCancelledError } from '../auth/loginFlow.js';
29
36
  import { parseGrants } from '../grants.js';
30
37
  import { LocalStore, dbNameForController } from '../storage/localStore.js';
@@ -34,9 +41,13 @@ import { startWasSync } from '../storage/wasSync.js';
34
41
  import { errorMessage } from '../sync/index.js';
35
42
  import { createSyncController } from '../storage/syncController.js';
36
43
  import { useSyncStatusStore } from '../storage/syncStatusStore.js';
37
- import { useAppReady } from './appReadyStore.js';
38
44
  /**
39
- * Builds the wallet-mode auth store bound to an app's config and store registry.
45
+ * A nominal far-future expiry (ms) for grants minted without one (dev/test).
46
+ * Well past the near-expiry warning, so the watch never fires against them.
47
+ */
48
+ const FAR_FUTURE_EXPIRY_MS = 100 * 365 * 24 * 60 * 60 * 1000;
49
+ /**
50
+ * Builds the session auth store bound to an app's config and store registry.
40
51
  * Call once (the React provider does) and share the returned store through
41
52
  * context; the hooks read it via `useStore`.
42
53
  *
@@ -52,7 +63,12 @@ import { useAppReady } from './appReadyStore.js';
52
63
  */
53
64
  export function createAuthStore({ config, registry, seedStore, storage }) {
54
65
  const dbName = config.dbName ?? DEFAULT_DB_NAME;
66
+ const onboarding = config.onboarding ?? DEFAULT_ONBOARDING;
55
67
  const sessionStore = seedStore ?? createSeedStore({ dbName: `${dbName}-session` });
68
+ // The anonymous-seed persistence for `local` mode: only a raw 32-byte seed,
69
+ // no session record, in its own IndexedDB so it never collides with the
70
+ // wallet session or a connected replica.
71
+ const anonStore = createSeedStore({ dbName: `${dbName}-anon` });
56
72
  const documentLoader = createDocumentLoader(config.wasServerUrl !== undefined
57
73
  ? { wasServerUrl: config.wasServerUrl }
58
74
  : {});
@@ -133,7 +149,7 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
133
149
  }
134
150
  /**
135
151
  * Persists the session record, kicks off background replication, and arms the
136
- * near-expiry watch. Shared by the login/restore activation and the reconnect
152
+ * near-expiry watch. Shared by the connected activation and the reconnect
137
153
  * re-grant paths (identical persist + begin-sync + arm sequence).
138
154
  *
139
155
  * @param options {object}
@@ -181,28 +197,78 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
181
197
  }
182
198
  }
183
199
  /**
184
- * Opens storage + hydrates + starts sync for a validated session, persists it,
185
- * and flips the ready gate. Shared by login and restore. Any failure after the
186
- * store is installed tears the store back down (so a later login never reuses a
187
- * half-open controller's database) and surfaces the open error before
188
- * rethrowing.
200
+ * Opens the encrypted replica under `seed` (a per-controller database name),
201
+ * installs it as the process-wide store, and hydrates every entity store.
202
+ * Shared by `openLocal` and the connected activation.
203
+ *
204
+ * @param options {object}
205
+ * @param options.seed {Uint8Array}
206
+ * @param options.controllerDid {string}
207
+ * @returns {Promise<void>}
189
208
  */
190
- async function activateSession(session) {
209
+ async function openAndHydrate({ seed, controllerDid }) {
210
+ const local = await LocalStore.init({
211
+ seed,
212
+ collections: config.collections,
213
+ dbName: dbNameForController({ dbName, controllerDid }),
214
+ ...(storage && { storage })
215
+ });
216
+ setLocalStore(local);
217
+ await hydrateAll(registry);
218
+ }
219
+ /**
220
+ * Loads the persisted anonymous seed, minting and persisting a fresh random
221
+ * one on first use. `created` is true only when a new seed was generated (the
222
+ * signal for the one-time `seedLocal` fixtures hook).
223
+ *
224
+ * @returns {Promise<{ seed: Uint8Array, created: boolean }>}
225
+ */
226
+ async function loadOrCreateAnonSeed() {
227
+ const existing = await anonStore.loadSeed();
228
+ if (existing) {
229
+ return { seed: existing, created: false };
230
+ }
231
+ const seed = crypto.getRandomValues(new Uint8Array(32));
232
+ await anonStore.saveSeed(seed);
233
+ return { seed, created: true };
234
+ }
235
+ /**
236
+ * Opens (or re-opens) the anonymous local replica and lands `local`. Seeds
237
+ * dev fixtures only when the anonymous seed was just minted (so they run once
238
+ * per fresh replica, never on reload).
239
+ *
240
+ * @returns {Promise<void>}
241
+ */
242
+ async function openLocal() {
243
+ const { seed, created } = await loadOrCreateAnonSeed();
244
+ const identity = await initAppSession({ seed });
245
+ await openAndHydrate({ seed, controllerDid: identity.controllerDid });
246
+ if (created && config.seedLocal) {
247
+ await config.seedLocal();
248
+ }
249
+ store.setState({
250
+ status: 'local',
251
+ controllerDid: identity.controllerDid,
252
+ expires: null,
253
+ accessExpired: false,
254
+ error: null
255
+ });
256
+ }
257
+ /**
258
+ * Opens the connected replica under the session seed, hydrates, persists the
259
+ * session, and starts sync. On any failure the store is torn back down and the
260
+ * anonymous local replica re-opened (so the app never dead-ends), then the
261
+ * error is surfaced and rethrown for the caller to finalize.
262
+ *
263
+ * @param session {ActiveSession}
264
+ * @returns {Promise<void>}
265
+ */
266
+ async function activateConnected(session) {
191
267
  try {
192
- if (!hasStore()) {
193
- const local = await LocalStore.init({
194
- seed: session.seed,
195
- collections: config.collections,
196
- dbName: dbNameForController({
197
- dbName,
198
- controllerDid: session.identity.controllerDid
199
- }),
200
- ...(storage && { storage })
201
- });
202
- setLocalStore(local);
203
- }
204
- await hydrateAll(registry);
205
- // Flip the ready gate only once the session is durably persisted.
268
+ await openAndHydrate({
269
+ seed: session.seed,
270
+ controllerDid: session.identity.controllerDid
271
+ });
206
272
  await persistAndStartSync({
207
273
  seed: session.seed,
208
274
  identity: session.identity,
@@ -210,19 +276,22 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
210
276
  grants: session.grants,
211
277
  expires: session.expires
212
278
  });
213
- useAppReady.getState().setReady();
214
279
  }
215
280
  catch (err) {
216
- await deactivateSession();
217
- const message = errorMessage(err);
218
- useAppReady.getState().setError(message);
281
+ await deactivateStore();
282
+ await openLocal();
283
+ store.setState({ error: errorMessage(err) });
219
284
  throw err;
220
285
  }
221
286
  }
222
287
  /**
223
- * Tears down storage + sync + entity stores (logout and re-login paths).
288
+ * Tears down the live replica + sync + entity stores WITHOUT touching either
289
+ * persisted seed (the anonymous seed and the session record survive). Closes
290
+ * the database; use {@link resetToFreshLocal} to delete it.
291
+ *
292
+ * @returns {Promise<void>}
224
293
  */
225
- async function deactivateSession() {
294
+ async function deactivateStore() {
226
295
  disarmExpiryWatch();
227
296
  cancelScheduledRehydrates();
228
297
  await stopController();
@@ -237,49 +306,97 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
237
306
  }
238
307
  clearAllEntityStores(registry);
239
308
  useSyncStatusStore.getState().reset();
240
- useAppReady.getState().reset();
309
+ }
310
+ /**
311
+ * Tears the current replica down and re-opens a fresh `local` replica. `wipe`
312
+ * (via `deleteDb`) deletes the current database rather than closing it (the
313
+ * logout-wipe and clear-data paths); `discardAnonSeed` drops the persisted
314
+ * anonymous seed BEFORE the re-open so `openLocal` mints a brand-new anonymous
315
+ * seed/DID + database (the clear-data path).
316
+ *
317
+ * @param options {object}
318
+ * @param options.deleteDb {boolean}
319
+ * @param [options.discardAnonSeed] {boolean}
320
+ * @returns {Promise<void>}
321
+ */
322
+ async function resetToFreshLocal({ deleteDb, discardAnonSeed = false }) {
323
+ disarmExpiryWatch();
324
+ cancelScheduledRehydrates();
325
+ await stopController();
326
+ if (hasStore()) {
327
+ try {
328
+ if (deleteDb) {
329
+ await requireStore().remove();
330
+ }
331
+ else {
332
+ await requireStore().close();
333
+ }
334
+ }
335
+ catch (err) {
336
+ console.warn('Error tearing down the local store:', err);
337
+ }
338
+ clearLocalStore();
339
+ }
340
+ clearAllEntityStores(registry);
341
+ useSyncStatusStore.getState().reset();
342
+ if (discardAnonSeed) {
343
+ await anonStore.clearSeedStore();
344
+ }
345
+ await openLocal();
346
+ }
347
+ /**
348
+ * The step-3 adoption seam: called from `login()` after the wallet returns
349
+ * identity + grants and before the connected replica opens. In step 2 it only
350
+ * tears the anonymous replica down; the anonymous seed and its IndexedDB are
351
+ * left intact (not migrated, not deleted) so a later step can adopt them.
352
+ *
353
+ * @returns {Promise<void>}
354
+ */
355
+ async function adoptLocalIntoConnected() {
356
+ await deactivateStore();
241
357
  }
242
358
  // Declared last so `prefer-const` is satisfied; the lifecycle closures above
243
359
  // only dereference `store` at call time, by which point it is assigned.
244
360
  const store = createStore()((set, get) => ({
245
- status: 'idle',
361
+ status: 'boot',
362
+ onboarding,
363
+ authenticating: false,
246
364
  phase: null,
247
365
  error: null,
248
366
  controllerDid: null,
249
367
  expires: null,
250
368
  accessExpired: false,
251
369
  reconnecting: false,
252
- restore: async () => {
253
- if (get().status !== 'idle') {
370
+ boot: async () => {
371
+ if (get().status !== 'boot') {
254
372
  return;
255
373
  }
256
- set({ status: 'restoring' });
257
374
  try {
258
375
  const restored = await restoreAppSession({ store: sessionStore });
259
376
  if (!restored) {
260
- set({ status: 'unauthenticated' });
377
+ await openLocal();
261
378
  return;
262
379
  }
263
380
  const identity = await initAppSession({ seed: restored.seed });
264
381
  if (identity.controllerDid !== restored.controllerDid) {
265
- // A corrupt record; treat as logged out.
382
+ // A corrupt record; treat as logged out and fall to local.
266
383
  await clearAppSession({ store: sessionStore });
267
- set({ status: 'unauthenticated' });
384
+ await openLocal();
268
385
  return;
269
386
  }
270
387
  const parsed = parseGrants(restored.grants);
271
388
  if (config.wasServerUrl !== undefined &&
272
389
  parsed.serverUrl !== config.wasServerUrl) {
273
390
  await clearAppSession({ store: sessionStore });
274
- set({ status: 'unauthenticated' });
391
+ await openLocal();
275
392
  return;
276
393
  }
277
394
  // Unlike login/reconnect (which run `checkGrants`), a hot restore trusts
278
395
  // the persisted grants; re-check that they still cover every configured
279
- // collection so a partially-covered grant set raises the reconnect banner
280
- // proactively rather than waiting for a per-collection 403 mid-session.
396
+ // collection so a partially-covered grant set raises the reconnect
397
+ // banner proactively rather than waiting for a per-collection 403.
281
398
  const uncovered = config.collections.filter(collection => parsed.byCollectionId[collection.id] === undefined);
282
- await activateSession({
399
+ await activateConnected({
283
400
  seed: restored.seed,
284
401
  identity,
285
402
  parsed,
@@ -287,7 +404,7 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
287
404
  expires: restored.expires
288
405
  });
289
406
  set({
290
- status: 'authenticated',
407
+ status: uncovered.length > 0 ? 'reconnect' : 'connected',
291
408
  controllerDid: identity.controllerDid,
292
409
  expires: restored.expires,
293
410
  error: null,
@@ -295,22 +412,39 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
295
412
  });
296
413
  }
297
414
  catch (err) {
298
- console.warn('Session restore failed:', err);
299
- set({ status: 'unauthenticated' });
415
+ console.warn('Session boot failed:', err);
416
+ // `activateConnected` already re-opens local on its own failure; only
417
+ // open local here for an earlier failure that never reached it.
418
+ if (get().status === 'boot') {
419
+ try {
420
+ await openLocal();
421
+ }
422
+ catch (localErr) {
423
+ // Even the anonymous local replica could not be opened: a genuine
424
+ // storage failure, the only case that leaves `status` at `boot`
425
+ // with an `error`. Surfacing it here (rather than a login/reconnect
426
+ // failure, which only ever sets `error` after `status` has left
427
+ // `boot`) is what lets `ProtectedRoute` scope its fatal alert to
428
+ // boot/storage failures alone.
429
+ set({ error: errorMessage(localErr) });
430
+ }
431
+ }
300
432
  }
301
433
  },
302
434
  login: async () => {
303
- const { status } = get();
304
- if (status === 'authenticating' || status === 'authenticated') {
435
+ if (get().authenticating || get().status === 'connected') {
305
436
  return;
306
437
  }
307
- set({ status: 'authenticating', error: null, phase: 'probing' });
438
+ set({ authenticating: true, error: null, phase: 'probing' });
308
439
  try {
309
440
  const outcome = await loginWithWallet({
310
441
  config: loginConfig,
311
442
  onPhase: phase => set({ phase })
312
443
  });
313
- await activateSession({
444
+ // The wallet succeeded: only now tear down the anonymous replica (a
445
+ // cancel above leaves `local` intact).
446
+ await adoptLocalIntoConnected();
447
+ await activateConnected({
314
448
  seed: outcome.seed,
315
449
  identity: outcome.identity,
316
450
  parsed: outcome.parsed,
@@ -318,7 +452,8 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
318
452
  expires: outcome.expires
319
453
  });
320
454
  set({
321
- status: 'authenticated',
455
+ status: 'connected',
456
+ authenticating: false,
322
457
  controllerDid: outcome.identity.controllerDid,
323
458
  expires: outcome.expires,
324
459
  phase: null,
@@ -332,12 +467,27 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
332
467
  : err instanceof Error
333
468
  ? `Login failed: ${err.message}`
334
469
  : 'Login failed.';
335
- set({ status: 'unauthenticated', phase: null, error: message });
470
+ set({ authenticating: false, phase: null, error: message });
336
471
  }
337
472
  },
473
+ connectWithGrants: async ({ seed, grants }) => {
474
+ const identity = await initAppSession({ seed });
475
+ const parsed = parseGrants(grants);
476
+ const expires = earliestExpiry(grants) ??
477
+ new Date(Date.now() + FAR_FUTURE_EXPIRY_MS).toISOString();
478
+ await deactivateStore();
479
+ await activateConnected({ seed, identity, parsed, grants, expires });
480
+ set({
481
+ status: 'connected',
482
+ controllerDid: identity.controllerDid,
483
+ expires,
484
+ error: null,
485
+ accessExpired: false
486
+ });
487
+ },
338
488
  reconnect: async () => {
339
489
  const { reconnecting, status } = get();
340
- if (reconnecting || status !== 'authenticated') {
490
+ if (reconnecting || status !== 'reconnect') {
341
491
  return;
342
492
  }
343
493
  set({ reconnecting: true, error: null });
@@ -362,6 +512,7 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
362
512
  expires: checked.expires
363
513
  });
364
514
  set({
515
+ status: 'connected',
365
516
  accessExpired: false,
366
517
  expires: checked.expires,
367
518
  reconnecting: false
@@ -372,32 +523,33 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
372
523
  set({ reconnecting: false, error: message });
373
524
  }
374
525
  },
375
- logout: async () => {
376
- await deactivateSession();
526
+ logout: async ({ wipe = false } = {}) => {
527
+ await resetToFreshLocal({ deleteDb: wipe });
377
528
  await clearAppSession({ store: sessionStore });
378
- set({
379
- status: 'unauthenticated',
380
- phase: null,
381
- error: null,
382
- controllerDid: null,
383
- expires: null,
384
- accessExpired: false,
385
- reconnecting: false
386
- });
529
+ // `resetToFreshLocal` already landed `local` (fresh anon replica); clear
530
+ // the remaining transients.
531
+ set({ phase: null, reconnecting: false });
532
+ },
533
+ clearLocalData: async () => {
534
+ await resetToFreshLocal({ deleteDb: true, discardAnonSeed: true });
535
+ set({ phase: null, reconnecting: false });
387
536
  },
388
537
  notifyAccessExpired: () => {
389
- if (!get().accessExpired) {
390
- set({ accessExpired: true });
538
+ if (get().status === 'connected') {
539
+ set({ status: 'reconnect', accessExpired: true });
391
540
  }
392
541
  },
393
542
  destroy: async () => {
394
- await deactivateSession();
395
- // Back to `idle` (not `unauthenticated`) and the record left intact: a
396
- // StrictMode remount's `restore()` re-opens the same session from disk.
543
+ await deactivateStore();
544
+ // Back to `boot` (not `local`) and both persisted seeds left intact: a
545
+ // StrictMode remount's `boot()` re-opens the same session (or local).
397
546
  set({
398
- status: 'idle',
547
+ status: 'boot',
548
+ authenticating: false,
399
549
  phase: null,
400
550
  error: null,
551
+ controllerDid: null,
552
+ expires: null,
401
553
  accessExpired: false,
402
554
  reconnecting: false
403
555
  });
@@ -1 +1 @@
1
- {"version":3,"file":"authStore.js","sourceRoot":"","sources":["../../src/session/authStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authStore.js","sourceRoot":"","sources":["../../src/session/authStore.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,8 @@
2
2
  * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
3
  */
4
4
  /**
5
- * The session lifecycle layer: the wallet-mode auth store factory and the shared
6
- * app-ready gate.
5
+ * The session lifecycle layer: the session auth store factory (the four-state
6
+ * `boot` | `local` | `connected` | `reconnect` machine).
7
7
  */
8
- export { createAuthStore, type AuthStatus, type AuthState, type WasAuthStore } from './authStore.js';
9
- export { useAppReady } from './appReadyStore.js';
8
+ export { createAuthStore, type SessionStatus, type AuthState, type WasAuthStore } from './authStore.js';
10
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;GAGG;AACH,OAAO,EACL,eAAe,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;GAGG;AACH,OAAO,EACL,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAA"}
@@ -2,9 +2,8 @@
2
2
  * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
3
  */
4
4
  /**
5
- * The session lifecycle layer: the wallet-mode auth store factory and the shared
6
- * app-ready gate.
5
+ * The session lifecycle layer: the session auth store factory (the four-state
6
+ * `boot` | `local` | `connected` | `reconnect` machine).
7
7
  */
8
8
  export { createAuthStore } from './authStore.js';
9
- export { useAppReady } from './appReadyStore.js';
10
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;GAGG;AACH,OAAO,EACL,eAAe,EAIhB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;GAGG;AACH,OAAO,EACL,eAAe,EAIhB,MAAM,gBAAgB,CAAA"}
@@ -192,6 +192,13 @@ export declare class LocalStore {
192
192
  * @returns {Promise<void>}
193
193
  */
194
194
  close(): Promise<void>;
195
+ /**
196
+ * Removes the database and all its data (the clear-data / logout-wipe path).
197
+ * Unlike {@link close}, this deletes the underlying Dexie/IndexedDB store.
198
+ *
199
+ * @returns {Promise<void>}
200
+ */
201
+ remove(): Promise<void>;
195
202
  }
196
203
  export {};
197
204
  //# sourceMappingURL=localStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"localStore.d.ts","sourceRoot":"","sources":["../../src/storage/localStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACxE,OAAO,EAKL,KAAK,IAAI,EACT,KAAK,SAAS,EAEf,MAAM,kBAAkB,CAAA;AAMzB,KAAK,aAAa,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnC;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,aAAa,EACd,EAAE;IACD,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;CACtB,GAAG,MAAM,CAOT;AAED;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,QAAQ,CAA2B;IAE3C,OAAO,CAAC,MAAM,CAAqC;IAEnD,OAAO;IAeP;;;;;;;;;;;;OAYG;WACU,IAAI,CAAC,EAChB,IAAI,EACJ,WAAW,EACX,OAAO,EACP,MAAwB,EACzB,EAAE;QACD,IAAI,EAAE,UAAU,CAAA;QAChB,WAAW,EAAE,mBAAmB,EAAE,CAAA;QAClC,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACrC,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,GAAG,OAAO,CAAC,UAAU,CAAC;IAkDvB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,OAAO;IAQf;;;OAGG;YACW,YAAY;IA+B1B;;;;;;OAMG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAetE;;;;;;;;OAQG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCtE;;;;;;;;;OASG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAStE;;;;;;OAMG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5D;;;;;;OAMG;IACG,YAAY,CAAC,CAAC,SAAS,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IA6BtE;;;;;;;;;;;;OAYG;IACG,gBAAgB,CACpB,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAC7D,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAwCjC;;;;;;;;OAQG;IACG,eAAe,CAAC,CAAC,SAAS,aAAa,EAC3C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,IAAI,GACb,OAAO,CAAC,CAAC,CAAC;IAIb;;;;;;;;;OASG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAIrE;;;;;;OAMG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI/C;;;;;;;;;OASG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI5D;;;;;;OAMG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC;IAIlD;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
1
+ {"version":3,"file":"localStore.d.ts","sourceRoot":"","sources":["../../src/storage/localStore.ts"],"names":[],"mappings":"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"}
@@ -413,5 +413,14 @@ export class LocalStore {
413
413
  async close() {
414
414
  await this._db.close();
415
415
  }
416
+ /**
417
+ * Removes the database and all its data (the clear-data / logout-wipe path).
418
+ * Unlike {@link close}, this deletes the underlying Dexie/IndexedDB store.
419
+ *
420
+ * @returns {Promise<void>}
421
+ */
422
+ async remove() {
423
+ await this._db.remove();
424
+ }
416
425
  }
417
426
  //# sourceMappingURL=localStore.js.map