@interop/was-react 0.1.4 → 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 (72) 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/entityStore.d.ts +3 -2
  55. package/dist/storage/entityStore.d.ts.map +1 -1
  56. package/dist/storage/entityStore.js +28 -3
  57. package/dist/storage/entityStore.js.map +1 -1
  58. package/dist/storage/localStore.d.ts +7 -0
  59. package/dist/storage/localStore.d.ts.map +1 -1
  60. package/dist/storage/localStore.js +9 -0
  61. package/dist/storage/localStore.js.map +1 -1
  62. package/dist/sync/types.d.ts +5 -1
  63. package/dist/sync/types.d.ts.map +1 -1
  64. package/dist/sync/types.js.map +1 -1
  65. package/dist/sync/wasSyncPort.d.ts.map +1 -1
  66. package/dist/sync/wasSyncPort.js +19 -6
  67. package/dist/sync/wasSyncPort.js.map +1 -1
  68. package/package.json +1 -1
  69. package/dist/session/appReadyStore.d.ts +0 -10
  70. package/dist/session/appReadyStore.d.ts.map +0 -1
  71. package/dist/session/appReadyStore.js +0 -22
  72. package/dist/session/appReadyStore.js.map +0 -1
@@ -9,9 +9,8 @@
9
9
  * master seed on a new device.
10
10
  * 2. The grants request: DIDAuthentication + AuthorizationCapabilityQuery with
11
11
  * one capabilityQuery per collection (descriptor-object targets, which the
12
- * wallet resolves against the user's one Space and auto-provisions) plus a
13
- * read-only whole-space grant. The wallet force-caps whole-space grants to
14
- * GET/HEAD, so read-only is all that is ever requested there.
12
+ * wallet resolves against the user's one Space and auto-provisions). Only
13
+ * collection-scoped capabilities are requested -- no whole-space grant.
15
14
  *
16
15
  * `domain` must host-match the CHAPI requesting origin or the wallet refuses
17
16
  * to sign; `challenge` must be fresh per request (echoed into the DIDAuth
@@ -22,10 +21,6 @@ import type { IVPRDetails } from './walletRequestTypes.js';
22
21
  * Default read/write actions requested on each app collection.
23
22
  */
24
23
  export declare const RW_ACTIONS: string[];
25
- /**
26
- * The referenceId of the read-only whole-space grant.
27
- */
28
- export declare const SPACE_READ_REFERENCE_ID = "space-read";
29
24
  /**
30
25
  * A fresh nonce for a VPR challenge.
31
26
  */
@@ -48,8 +43,8 @@ export declare function buildSeedProbeVpr({ challenge, domain, credentialType, a
48
43
  }): IVPRDetails;
49
44
  /**
50
45
  * VPR #2: DIDAuthentication + AuthorizationCapabilityQuery -- one read/write
51
- * capabilityQuery per app collection (delegated to `controllerDid`), plus a
52
- * read-only whole-space grant.
46
+ * capabilityQuery per app collection (delegated to `controllerDid`). Only
47
+ * collection-scoped capabilities are requested.
53
48
  *
54
49
  * @param options {object}
55
50
  * @param options.challenge {string}
@@ -1 +1 @@
1
- {"version":3,"file":"loginRequest.d.ts","sourceRoot":"","sources":["../../src/auth/loginRequest.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAEV,WAAW,EACZ,MAAM,yBAAyB,CAAA;AAEhC;;GAEG;AACH,eAAO,MAAM,UAAU,UAA2C,CAAA;AAElE;;GAEG;AACH,eAAO,MAAM,uBAAuB,eAAe,CAAA;AAEnD;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,MAAM,EACN,cAAc,EACd,OAAO,EACR,EAAE;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,WAAW,CAkBd;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,MAAM,EACN,aAAa,EACb,WAAW,EACX,OAAO,EACP,OAAoB,EACrB,EAAE;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,GAAG,WAAW,CA6Bd"}
1
+ {"version":3,"file":"loginRequest.d.ts","sourceRoot":"","sources":["../../src/auth/loginRequest.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAEV,WAAW,EACZ,MAAM,yBAAyB,CAAA;AAEhC;;GAEG;AACH,eAAO,MAAM,UAAU,UAA2C,CAAA;AAElE;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,MAAM,EACN,cAAc,EACd,OAAO,EACR,EAAE;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,WAAW,CAkBd;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,MAAM,EACN,aAAa,EACb,WAAW,EACX,OAAO,EACP,OAAoB,EACrB,EAAE;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,GAAG,WAAW,CAsBd"}
@@ -2,10 +2,6 @@
2
2
  * Default read/write actions requested on each app collection.
3
3
  */
4
4
  export const RW_ACTIONS = ['GET', 'HEAD', 'PUT', 'POST', 'DELETE'];
5
- /**
6
- * The referenceId of the read-only whole-space grant.
7
- */
8
- export const SPACE_READ_REFERENCE_ID = 'space-read';
9
5
  /**
10
6
  * A fresh nonce for a VPR challenge.
11
7
  */
@@ -43,8 +39,8 @@ export function buildSeedProbeVpr({ challenge, domain, credentialType, appName }
43
39
  }
44
40
  /**
45
41
  * VPR #2: DIDAuthentication + AuthorizationCapabilityQuery -- one read/write
46
- * capabilityQuery per app collection (delegated to `controllerDid`), plus a
47
- * read-only whole-space grant.
42
+ * capabilityQuery per app collection (delegated to `controllerDid`). Only
43
+ * collection-scoped capabilities are requested.
48
44
  *
49
45
  * @param options {object}
50
46
  * @param options.challenge {string}
@@ -64,13 +60,6 @@ export function buildGrantsVpr({ challenge, domain, controllerDid, collections,
64
60
  allowedAction: actions,
65
61
  invocationTarget: { type: 'urn:was:collection', name: id }
66
62
  }));
67
- capabilityQuery.push({
68
- referenceId: SPACE_READ_REFERENCE_ID,
69
- reason: 'Read your storage space description.',
70
- controller: controllerDid,
71
- allowedAction: ['GET', 'HEAD'],
72
- invocationTarget: { type: 'urn:was:space' }
73
- });
74
63
  return {
75
64
  query: [
76
65
  {
@@ -1 +1 @@
1
- {"version":3,"file":"loginRequest.js","sourceRoot":"","sources":["../../src/auth/loginRequest.ts"],"names":[],"mappings":"AAwBA;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;AAElE;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAA;AAEnD;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,CAAC,UAAU,EAAE,CAAA;AAC5B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,SAAS,EACT,MAAM,EACN,cAAc,EACd,OAAO,EAMR;IACC,OAAO;QACL,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,mBAAmB;gBACzB,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aACrC;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,eAAe,EAAE;oBACf,MAAM,EAAE,eAAe,OAAO,iCAAiC;oBAC/D,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;iBAClC;aACF;SACF;QACD,SAAS;QACT,MAAM;KACP,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,SAAS,EACT,MAAM,EACN,aAAa,EACb,WAAW,EACX,OAAO,EACP,OAAO,GAAG,UAAU,EAQrB;IACC,MAAM,eAAe,GAA6B,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvE,WAAW,EAAE,EAAE;QACf,MAAM,EAAE,cAAc,OAAO,iBAAiB,EAAE,eAAe;QAC/D,UAAU,EAAE,aAAa;QACzB,aAAa,EAAE,OAAO;QACtB,gBAAgB,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,EAAE;KAC3D,CAAC,CAAC,CAAA;IACH,eAAe,CAAC,IAAI,CAAC;QACnB,WAAW,EAAE,uBAAuB;QACpC,MAAM,EAAE,sCAAsC;QAC9C,UAAU,EAAE,aAAa;QACzB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;QAC9B,gBAAgB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;KAC5C,CAAC,CAAA;IACF,OAAO;QACL,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,mBAAmB;gBACzB,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aACrC;YACD;gBACE,IAAI,EAAE,8BAA8B;gBACpC,eAAe;aAChB;SACF;QACD,SAAS;QACT,MAAM;KACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"loginRequest.js","sourceRoot":"","sources":["../../src/auth/loginRequest.ts"],"names":[],"mappings":"AAuBA;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;AAElE;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,CAAC,UAAU,EAAE,CAAA;AAC5B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,SAAS,EACT,MAAM,EACN,cAAc,EACd,OAAO,EAMR;IACC,OAAO;QACL,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,mBAAmB;gBACzB,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aACrC;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,eAAe,EAAE;oBACf,MAAM,EAAE,eAAe,OAAO,iCAAiC;oBAC/D,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;iBAClC;aACF;SACF;QACD,SAAS;QACT,MAAM;KACP,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,SAAS,EACT,MAAM,EACN,aAAa,EACb,WAAW,EACX,OAAO,EACP,OAAO,GAAG,UAAU,EAQrB;IACC,MAAM,eAAe,GAA6B,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvE,WAAW,EAAE,EAAE;QACf,MAAM,EAAE,cAAc,OAAO,iBAAiB,EAAE,eAAe;QAC/D,UAAU,EAAE,aAAa;QACzB,aAAa,EAAE,OAAO;QACtB,gBAAgB,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,EAAE;KAC3D,CAAC,CAAC,CAAA;IACH,OAAO;QACL,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,mBAAmB;gBACzB,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aACrC;YACD;gBACE,IAAI,EAAE,8BAA8B;gBACpC,eAAe;aAChB;SACF;QACD,SAAS;QACT,MAAM;KACP,CAAA;AACH,CAAC"}
@@ -105,8 +105,9 @@ export type IZcapQuery = {
105
105
  * (`controller`) wants on which storage target (`invocationTarget`), with an
106
106
  * optional human-readable `reason` and RP-chosen `referenceId`. The
107
107
  * `invocationTarget` is either a plain URL (satisfied only under the user's own
108
- * Space) or a wallet-defined descriptor object (`urn:was:collection` /
109
- * `urn:was:space`), resolved by `resolveInvocationTarget`.
108
+ * Space) or a wallet-defined descriptor object (`urn:was:collection`), resolved
109
+ * by `resolveInvocationTarget`. Login requests only ever ask for
110
+ * collection-scoped capabilities.
110
111
  */
111
112
  export type ICapabilityQueryDetail = {
112
113
  referenceId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"walletRequestTypes.d.ts","sourceRoot":"","sources":["../../src/auth/walletRequestTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"walletRequestTypes.d.ts","sourceRoot":"","sources":["../../src/auth/walletRequestTypes.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -96,6 +96,23 @@ export interface WasAppConfig {
96
96
  * The storage collections (logical key to WAS collection id).
97
97
  */
98
98
  collections: WasCollectionConfig[];
99
+ /**
100
+ * How the router treats the pre-connection `local` state. `'local-first'`
101
+ * renders the app immediately over the anonymous replica (connecting a wallet
102
+ * is a bonus); `'login-gated'` redirects to the login path until a wallet is
103
+ * connected. Only affects `ProtectedRoute` rendering, never the store's
104
+ * transitions (boot always opens a replica). Defaults to
105
+ * {@link DEFAULT_ONBOARDING}.
106
+ */
107
+ onboarding?: 'local-first' | 'login-gated';
108
+ /**
109
+ * Optional dev-fixtures hook, called once -- and only when a brand-new
110
+ * anonymous replica is first created (never on reload, since the anon seed
111
+ * persists). Fixtures write through the app's own entity stores, so apps gate
112
+ * this on dev themselves (e.g. `seedLocal: import.meta.env.DEV ? seed :
113
+ * undefined`) to keep fixtures out of production local-first apps.
114
+ */
115
+ seedLocal?: () => Promise<void>;
99
116
  /**
100
117
  * The seed-credential type name + vocabulary namespace.
101
118
  */
@@ -156,6 +173,11 @@ export type StoreRegistry = Record<string, StoreRegistryEntry>;
156
173
  * Default base name for the local RxDB database + session IndexedDB naming.
157
174
  */
158
175
  export declare const DEFAULT_DB_NAME = "was-react";
176
+ /**
177
+ * Default onboarding mode: `'login-gated'`, preserving the historical
178
+ * gate-on-connected behavior for apps that do not opt into local-first.
179
+ */
180
+ export declare const DEFAULT_ONBOARDING = "login-gated";
159
181
  /**
160
182
  * Default `localStorage` key prefix (e.g. `was-react:deviceId`).
161
183
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAExE;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;CACX;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,WAAW,EAAE,mBAAmB,EAAE,CAAA;IAClC;;OAEG;IACH,UAAU,EAAE,oBAAoB,CAAA;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,CAAA;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B;;;OAGG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACrC;;OAEG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5B;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;AAE9D;;GAEG;AACH,eAAO,MAAM,eAAe,cAAc,CAAA;AAE1C;;GAEG;AACH,eAAO,MAAM,0BAA0B,eAAe,CAAA;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,QAAQ,CAAA;AAEzC;;GAEG;AACH,eAAO,MAAM,yBAAyB,QAAiB,CAAA;AAEvD;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAAY,CAAA;AAEhD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,WAAW,EACX,EAAE,EACH,EAAE;IACD,WAAW,EAAE,mBAAmB,EAAE,CAAA;IAClC,EAAE,EAAE,MAAM,CAAA;CACX,GAAG,MAAM,GAAG,SAAS,CAErB"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAExE;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;CACX;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,WAAW,EAAE,mBAAmB,EAAE,CAAA;IAClC;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,aAAa,GAAG,aAAa,CAAA;IAC1C;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B;;OAEG;IACH,UAAU,EAAE,oBAAoB,CAAA;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,CAAA;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B;;;OAGG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACrC;;OAEG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5B;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;AAE9D;;GAEG;AACH,eAAO,MAAM,eAAe,cAAc,CAAA;AAE1C;;;GAGG;AACH,eAAO,MAAM,kBAAkB,gBAAgB,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,0BAA0B,eAAe,CAAA;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,QAAQ,CAAA;AAEzC;;GAEG;AACH,eAAO,MAAM,yBAAyB,QAAiB,CAAA;AAEvD;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAAY,CAAA;AAEhD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,WAAW,EACX,EAAE,EACH,EAAE;IACD,WAAW,EAAE,mBAAmB,EAAE,CAAA;IAClC,EAAE,EAAE,MAAM,CAAA;CACX,GAAG,MAAM,GAAG,SAAS,CAErB"}
package/dist/config.js CHANGED
@@ -2,6 +2,11 @@
2
2
  * Default base name for the local RxDB database + session IndexedDB naming.
3
3
  */
4
4
  export const DEFAULT_DB_NAME = 'was-react';
5
+ /**
6
+ * Default onboarding mode: `'login-gated'`, preserving the historical
7
+ * gate-on-connected behavior for apps that do not opt into local-first.
8
+ */
9
+ export const DEFAULT_ONBOARDING = 'login-gated';
5
10
  /**
6
11
  * Default `localStorage` key prefix (e.g. `was-react:deviceId`).
7
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AA+JA;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAA;AAE1C;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,YAAY,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,CAAA;AAEhD;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,WAAW,EACX,EAAE,EAIH;IACC,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAA;AACxD,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAgLA;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAA;AAE1C;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAA;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,YAAY,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,CAAA;AAEhD;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,WAAW,EACX,EAAE,EAIH;IACC,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAA;AACxD,CAAC"}
package/dist/grants.d.ts CHANGED
@@ -13,21 +13,23 @@ export interface ParsedGrants {
13
13
  byCollectionId: Record<string, IZcap>;
14
14
  }
15
15
  /**
16
- * One grant's target, split into server origin + space + collection. A space- or
17
- * collection-scoped target may omit `collectionId`.
16
+ * One grant's target, split into server origin + space + collection. Every
17
+ * routed grant is collection-scoped, so `collectionId` is always present.
18
18
  */
19
19
  interface ParsedTarget {
20
20
  serverUrl: string;
21
21
  spaceId: string;
22
- collectionId?: string;
22
+ collectionId: string;
23
23
  }
24
24
  /**
25
25
  * Parses a single `invocationTarget` URL into its WAS components. `serverUrl` is
26
26
  * the bare origin (`protocol//host`) with no trailing slash, matching the shape
27
27
  * the reference server validates `SERVER_URL` into; the path grammar itself is
28
- * owned by `@interop/was-client`'s `parseSpaceTarget`. A resource-depth target
29
- * still contributes its collection; a reserved sub-endpoint target (e.g.
30
- * `/space/:id/policy`) contributes only its server and space.
28
+ * owned by `@interop/was-client`'s `parseSpaceTarget`. A collection- or
29
+ * resource-depth target contributes its collection; a space-scoped or reserved
30
+ * sub-endpoint target (e.g. bare `/space/:id` or `/space/:id/policy`) carries no
31
+ * collection and is rejected -- login only ever requests collection-scoped
32
+ * capabilities.
31
33
  *
32
34
  * @param target {string} an absolute WAS URL
33
35
  * @returns {ParsedTarget}
@@ -36,8 +38,8 @@ export declare function parseInvocationTarget(target: string): ParsedTarget;
36
38
  /**
37
39
  * Parses a delegated grant set into the sync topology. Asserts a single server
38
40
  * origin and a single space across every grant, and routes each collection-scoped
39
- * grant to its WAS collection id. A space-scoped grant (no collection segment)
40
- * still contributes its server/space but is not added to the routing table.
41
+ * grant to its WAS collection id. Every grant must be collection-scoped; a
42
+ * space-scoped grant (no collection segment) is rejected.
41
43
  *
42
44
  * @param zcaps {IZcap[]} the delegated capabilities
43
45
  * @returns {ParsedGrants}
@@ -1 +1 @@
1
- {"version":3,"file":"grants.d.ts","sourceRoot":"","sources":["../src/grants.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAEzD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CACtC;AAED;;;GAGG;AACH,UAAU,YAAY;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAqBlE;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,CAkCxD"}
1
+ {"version":3,"file":"grants.d.ts","sourceRoot":"","sources":["../src/grants.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAEzD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CACtC;AAED;;;GAGG;AACH,UAAU,YAAY;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CA0BlE;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,CAgCxD"}
package/dist/grants.js CHANGED
@@ -20,9 +20,11 @@ import { parseSpaceTarget } from '@interop/was-client';
20
20
  * Parses a single `invocationTarget` URL into its WAS components. `serverUrl` is
21
21
  * the bare origin (`protocol//host`) with no trailing slash, matching the shape
22
22
  * the reference server validates `SERVER_URL` into; the path grammar itself is
23
- * owned by `@interop/was-client`'s `parseSpaceTarget`. A resource-depth target
24
- * still contributes its collection; a reserved sub-endpoint target (e.g.
25
- * `/space/:id/policy`) contributes only its server and space.
23
+ * owned by `@interop/was-client`'s `parseSpaceTarget`. A collection- or
24
+ * resource-depth target contributes its collection; a space-scoped or reserved
25
+ * sub-endpoint target (e.g. bare `/space/:id` or `/space/:id/policy`) carries no
26
+ * collection and is rejected -- login only ever requests collection-scoped
27
+ * capabilities.
26
28
  *
27
29
  * @param target {string} an absolute WAS URL
28
30
  * @returns {ParsedTarget}
@@ -40,10 +42,13 @@ export function parseInvocationTarget(target) {
40
42
  if (parsed === null) {
41
43
  throw new Error(`Grant invocationTarget is not a WAS space URL: "${target}".`);
42
44
  }
45
+ if (!('collectionId' in parsed)) {
46
+ throw new Error(`Grant invocationTarget is not collection-scoped: "${target}".`);
47
+ }
43
48
  return {
44
49
  serverUrl,
45
50
  spaceId: parsed.spaceId,
46
- ...('collectionId' in parsed && { collectionId: parsed.collectionId })
51
+ collectionId: parsed.collectionId
47
52
  };
48
53
  }
49
54
  /**
@@ -63,8 +68,8 @@ function invocationTargetOf(zcap) {
63
68
  /**
64
69
  * Parses a delegated grant set into the sync topology. Asserts a single server
65
70
  * origin and a single space across every grant, and routes each collection-scoped
66
- * grant to its WAS collection id. A space-scoped grant (no collection segment)
67
- * still contributes its server/space but is not added to the routing table.
71
+ * grant to its WAS collection id. Every grant must be collection-scoped; a
72
+ * space-scoped grant (no collection segment) is rejected.
68
73
  *
69
74
  * @param zcaps {IZcap[]} the delegated capabilities
70
75
  * @returns {ParsedGrants}
@@ -90,9 +95,7 @@ export function parseGrants(zcaps) {
90
95
  else if (spaceId !== parsed.spaceId) {
91
96
  throw new Error(`Grants span two spaces: "${spaceId}" vs "${parsed.spaceId}".`);
92
97
  }
93
- if (parsed.collectionId !== undefined) {
94
- byCollectionId[parsed.collectionId] = zcap;
95
- }
98
+ byCollectionId[parsed.collectionId] = zcap;
96
99
  }
97
100
  return {
98
101
  serverUrl: serverUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"grants.js","sourceRoot":"","sources":["../src/grants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AA2BtD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,IAAI,GAAQ,CAAA;IACZ,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,mDAAmD,MAAM,IAAI,CAC9D,CAAA;IACH,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,IAAI,EAAE,CAAA;IAChD,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAA;IACtD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,mDAAmD,MAAM,IAAI,CAC9D,CAAA;IACH,CAAC;IACD,OAAO;QACL,SAAS;QACT,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,GAAG,CAAC,cAAc,IAAI,MAAM,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;KACvE,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,IAAW;IACrC,MAAM,MAAM,GAAI,IAAuC,CAAC,gBAAgB,CAAA;IACxE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACxC,CAAC;IACD,IAAI,SAA6B,CAAA;IACjC,IAAI,OAA2B,CAAA;IAC/B,MAAM,cAAc,GAA0B,EAAE,CAAA;IAEhD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;QAC9B,CAAC;aAAM,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,6BAA6B,SAAS,SAAS,MAAM,CAAC,SAAS,IAAI,CACpE,CAAA;QACH,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC1B,CAAC;aAAM,IAAI,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,4BAA4B,OAAO,SAAS,MAAM,CAAC,OAAO,IAAI,CAC/D,CAAA;QACH,CAAC;QACD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACtC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAA;QAC5C,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,EAAE,SAAmB;QAC9B,OAAO,EAAE,OAAiB;QAC1B,cAAc;KACf,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"grants.js","sourceRoot":"","sources":["../src/grants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AA2BtD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,IAAI,GAAQ,CAAA;IACZ,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,mDAAmD,MAAM,IAAI,CAC9D,CAAA;IACH,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,IAAI,EAAE,CAAA;IAChD,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAA;IACtD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,mDAAmD,MAAM,IAAI,CAC9D,CAAA;IACH,CAAC;IACD,IAAI,CAAC,CAAC,cAAc,IAAI,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,qDAAqD,MAAM,IAAI,CAChE,CAAA;IACH,CAAC;IACD,OAAO;QACL,SAAS;QACT,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,IAAW;IACrC,MAAM,MAAM,GAAI,IAAuC,CAAC,gBAAgB,CAAA;IACxE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACxC,CAAC;IACD,IAAI,SAA6B,CAAA;IACjC,IAAI,OAA2B,CAAA;IAC/B,MAAM,cAAc,GAA0B,EAAE,CAAA;IAEhD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;QAC9B,CAAC;aAAM,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,6BAA6B,SAAS,SAAS,MAAM,CAAC,SAAS,IAAI,CACpE,CAAA;QACH,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC1B,CAAC;aAAM,IAAI,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,4BAA4B,OAAO,SAAS,MAAM,CAAC,OAAO,IAAI,CAC/D,CAAA;QACH,CAAC;QACD,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAA;IAC5C,CAAC;IAED,OAAO;QACL,SAAS,EAAE,SAAmB;QAC9B,OAAO,EAAE,OAAiB;QAC1B,cAAc;KACf,CAAA;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -19,7 +19,7 @@ export { issueSeedCredential, parseSeedCredential, findSeedCredential, wrapCrede
19
19
  export { initAppSession } from './identity/initAppSession.js';
20
20
  export { persistAppSession, restoreAppSession, clearAppSession, isExpired, isNearExpiry, earliestExpiry, type AppSessionRecord, type RestoredAppSession } from './identity/appSession.js';
21
21
  export { DEFAULT_MEDIATOR_BASE, loadChapi, chapiGet, chapiStore } from './auth/chapi.js';
22
- export { RW_ACTIONS, SPACE_READ_REFERENCE_ID, newChallenge, buildSeedProbeVpr, buildGrantsVpr } from './auth/loginRequest.js';
22
+ export { RW_ACTIONS, newChallenge, buildSeedProbeVpr, buildGrantsVpr } from './auth/loginRequest.js';
23
23
  export { verifyLoginPresentation, grantsOf, checkGrants, type CheckedGrants } from './auth/verifyResponse.js';
24
24
  export { loginWithWallet, requestGrants, LoginCancelledError, type LoginConfig, type LoginPhase, type LoginOutcome } from './auth/loginFlow.js';
25
25
  export type { WalletAPIMessage, IVPOffer, IVPRequest, IVPRDetails, IVPRQuery, IQueryByExample, IDIDAuthenticationQuery, IZcapQuery, ICapabilityQueryDetail, WalletResponse, WalletRequestProfile, IVerifiableCredential, IVerifiablePresentation, IZcap } from './auth/walletRequestTypes.js';
@@ -32,6 +32,6 @@ export { useSyncStatusStore, deriveSyncRollup, type SyncStatus } from './storage
32
32
  export { hydrateAll, clearAllEntityStores, patchFromChange, scheduleRehydrate, cancelScheduledRehydrates } from './storage/rehydrate.js';
33
33
  export { isAuthError, SyncController, createSyncController } from './storage/syncController.js';
34
34
  export { startWasSync } from './storage/wasSync.js';
35
- export { createAuthStore, useAppReady, type AuthStatus, type AuthState, type WasAuthStore } from './session/index.js';
36
- export { WasSessionProvider, WasSessionContext, useAuthStore, useSession, useLogin, useLogout, useReconnect, useSyncStatus, type SyncRollup } from './react/index.js';
35
+ export { createAuthStore, type SessionStatus, type AuthState, type WasAuthStore } from './session/index.js';
36
+ export { WasSessionProvider, WasSessionContext, useAuthStore, useSession, useLogin, useLogout, useClearData, useReconnect, useSyncStatus, type SyncRollup } from './react/index.js';
37
37
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -23,7 +23,7 @@ export { initAppSession } from './identity/initAppSession.js';
23
23
  export { persistAppSession, restoreAppSession, clearAppSession, isExpired, isNearExpiry, earliestExpiry } from './identity/appSession.js';
24
24
  // Auth: CHAPI bridge, VPR construction, response verification, login flow.
25
25
  export { DEFAULT_MEDIATOR_BASE, loadChapi, chapiGet, chapiStore } from './auth/chapi.js';
26
- export { RW_ACTIONS, SPACE_READ_REFERENCE_ID, newChallenge, buildSeedProbeVpr, buildGrantsVpr } from './auth/loginRequest.js';
26
+ export { RW_ACTIONS, newChallenge, buildSeedProbeVpr, buildGrantsVpr } from './auth/loginRequest.js';
27
27
  export { verifyLoginPresentation, grantsOf, checkGrants } from './auth/verifyResponse.js';
28
28
  export { loginWithWallet, requestGrants, LoginCancelledError } from './auth/loginFlow.js';
29
29
  // The collection-agnostic RxDB-WAS replication core.
@@ -39,8 +39,8 @@ export { useSyncStatusStore, deriveSyncRollup } from './storage/syncStatusStore.
39
39
  export { hydrateAll, clearAllEntityStores, patchFromChange, scheduleRehydrate, cancelScheduledRehydrates } from './storage/rehydrate.js';
40
40
  export { isAuthError, SyncController, createSyncController } from './storage/syncController.js';
41
41
  export { startWasSync } from './storage/wasSync.js';
42
- // Session lifecycle: the wallet-mode auth store factory + the app-ready gate.
43
- export { createAuthStore, useAppReady } from './session/index.js';
42
+ // Session lifecycle: the session auth store factory (the four-state machine).
43
+ export { createAuthStore } from './session/index.js';
44
44
  // React: the session provider + hooks.
45
- export { WasSessionProvider, WasSessionContext, useAuthStore, useSession, useLogin, useLogout, useReconnect, useSyncStatus } from './react/index.js';
45
+ export { WasSessionProvider, WasSessionContext, useAuthStore, useSession, useLogin, useLogout, useClearData, useReconnect, useSyncStatus } from './react/index.js';
46
46
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;GAQG;AAEH,0BAA0B;AAC1B,OAAO,EACL,eAAe,EACf,0BAA0B,EAC1B,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EAOnB,MAAM,aAAa,CAAA;AAEpB,oCAAoC;AACpC,OAAO,EACL,qBAAqB,EACrB,WAAW,EAEZ,MAAM,aAAa,CAAA;AAEpB,6DAA6D;AAC7D,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAGnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,oBAAoB,EAErB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,eAAe,EAAkB,MAAM,yBAAyB,CAAA;AACzE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAGjB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,YAAY,EACZ,cAAc,EAGf,MAAM,0BAA0B,CAAA;AAEjC,2EAA2E;AAC3E,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,QAAQ,EACR,UAAU,EACX,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,uBAAuB,EACvB,QAAQ,EACR,WAAW,EAEZ,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,eAAe,EACf,aAAa,EACb,mBAAmB,EAIpB,MAAM,qBAAqB,CAAA;AAkB5B,qDAAqD;AACrD,cAAc,iBAAiB,CAAA;AAE/B,0EAA0E;AAC1E,gFAAgF;AAChF,0BAA0B;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,WAAW,EACZ,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAoB,MAAM,0BAA0B,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAqB,MAAM,6BAA6B,CAAA;AAC/E,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAEjB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,WAAW,EACX,cAAc,EACd,oBAAoB,EACrB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,8EAA8E;AAC9E,OAAO,EACL,eAAe,EACf,WAAW,EAIZ,MAAM,oBAAoB,CAAA;AAE3B,uCAAuC;AACvC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,aAAa,EAEd,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;GAQG;AAEH,0BAA0B;AAC1B,OAAO,EACL,eAAe,EACf,0BAA0B,EAC1B,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EAOnB,MAAM,aAAa,CAAA;AAEpB,oCAAoC;AACpC,OAAO,EACL,qBAAqB,EACrB,WAAW,EAEZ,MAAM,aAAa,CAAA;AAEpB,6DAA6D;AAC7D,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAGnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,oBAAoB,EAErB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,eAAe,EAAkB,MAAM,yBAAyB,CAAA;AACzE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAGjB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,YAAY,EACZ,cAAc,EAGf,MAAM,0BAA0B,CAAA;AAEjC,2EAA2E;AAC3E,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,QAAQ,EACR,UAAU,EACX,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,uBAAuB,EACvB,QAAQ,EACR,WAAW,EAEZ,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,eAAe,EACf,aAAa,EACb,mBAAmB,EAIpB,MAAM,qBAAqB,CAAA;AAkB5B,qDAAqD;AACrD,cAAc,iBAAiB,CAAA;AAE/B,0EAA0E;AAC1E,gFAAgF;AAChF,0BAA0B;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,WAAW,EACZ,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAoB,MAAM,0BAA0B,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAqB,MAAM,6BAA6B,CAAA;AAC/E,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAEjB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,WAAW,EACX,cAAc,EACd,oBAAoB,EACrB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,8EAA8E;AAC9E,OAAO,EACL,eAAe,EAIhB,MAAM,oBAAoB,CAAA;AAE3B,uCAAuC;AACvC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,aAAa,EAEd,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @param props {object}
3
+ * @param props.open {boolean} whether the dialog is shown
4
+ * @param props.onClose {() => void} called after the reset completes and on a
5
+ * dismiss/cancel (which clears nothing)
6
+ * @returns {ReactNode}
7
+ */
8
+ export declare function ClearDataDialog({ open, onClose }: {
9
+ open: boolean;
10
+ onClose: () => void;
11
+ }): import("react").JSX.Element;
12
+ //# sourceMappingURL=ClearDataDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClearDataDialog.d.ts","sourceRoot":"","sources":["../../src/mui/ClearDataDialog.tsx"],"names":[],"mappings":"AAqBA;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,OAAO,EACR,EAAE;IACD,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,+BAgCA"}
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /*!
3
+ * Copyright (c) 2026 Interop Alliance. All rights reserved.
4
+ */
5
+ /**
6
+ * The clear-data confirmation dialog (local mode). A dumb presentational
7
+ * component over the store's `clearLocalData` action: it confirms the
8
+ * destructive reset -- deleting the local replica and minting a brand-new
9
+ * anonymous identity -- and nudges the user to export their data first, since a
10
+ * local-only, unsynced app has no server copy to recover from. Dismissing the
11
+ * dialog (backdrop / escape / Cancel) leaves the data untouched.
12
+ */
13
+ import { Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle } from '@mui/material';
14
+ import { useClearData } from '../react/hooks.js';
15
+ /**
16
+ * @param props {object}
17
+ * @param props.open {boolean} whether the dialog is shown
18
+ * @param props.onClose {() => void} called after the reset completes and on a
19
+ * dismiss/cancel (which clears nothing)
20
+ * @returns {ReactNode}
21
+ */
22
+ export function ClearDataDialog({ open, onClose }) {
23
+ const clearData = useClearData();
24
+ async function handleClear() {
25
+ await clearData();
26
+ onClose();
27
+ }
28
+ return (_jsxs(Dialog, { open: open, onClose: onClose, "data-testid": "clear-data-dialog", children: [_jsx(DialogTitle, { children: "Clear data" }), _jsx(DialogContent, { children: _jsx(DialogContentText, { children: "This permanently erases everything stored on this device and starts you over fresh. Your data lives only on this device, so once cleared it cannot be recovered -- export a copy first if you want to keep it." }) }), _jsxs(DialogActions, { children: [_jsx(Button, { onClick: onClose, "data-testid": "clear-data-cancel", children: "Cancel" }), _jsx(Button, { color: "error", onClick: () => void handleClear(), "data-testid": "clear-data-confirm", children: "Clear data" })] })] }));
29
+ }
30
+ //# sourceMappingURL=ClearDataDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClearDataDialog.js","sourceRoot":"","sources":["../../src/mui/ClearDataDialog.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH;;;;;;;GAOG;AACH,OAAO,EACL,MAAM,EACN,MAAM,EACN,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,WAAW,EACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,IAAI,EACJ,OAAO,EAIR;IACC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAEhC,KAAK,UAAU,WAAW;QACxB,MAAM,SAAS,EAAE,CAAA;QACjB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,CACL,MAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,iBAAc,mBAAmB,aACnE,KAAC,WAAW,6BAAyB,EACrC,KAAC,aAAa,cACZ,KAAC,iBAAiB,iOAIE,GACN,EAChB,MAAC,aAAa,eACZ,KAAC,MAAM,IAAC,OAAO,EAAE,OAAO,iBAAc,mBAAmB,uBAEhD,EACT,KAAC,MAAM,IACL,KAAK,EAAC,OAAO,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,WAAW,EAAE,iBACrB,oBAAoB,2BAGzB,IACK,IACT,CACV,CAAA;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @param props {object}
3
+ * @param props.open {boolean} whether the dialog is shown
4
+ * @param props.onClose {() => void} called after an action completes and on a
5
+ * dismiss/cancel (which runs no logout)
6
+ * @returns {ReactNode}
7
+ */
8
+ export declare function LogoutDialog({ open, onClose }: {
9
+ open: boolean;
10
+ onClose: () => void;
11
+ }): import("react").JSX.Element;
12
+ //# sourceMappingURL=LogoutDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogoutDialog.d.ts","sourceRoot":"","sources":["../../src/mui/LogoutDialog.tsx"],"names":[],"mappings":"AAqBA;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,OAAO,EACR,EAAE;IACD,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,+BAsCA"}
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /*!
3
+ * Copyright (c) 2026 Interop Alliance. All rights reserved.
4
+ */
5
+ /**
6
+ * The logout confirmation dialog (connected mode). A dumb presentational
7
+ * component over the store's `logout` action: it makes the keep-vs-wipe choice
8
+ * explicit -- log out but leave the local replica on this device, or log out and
9
+ * erase it -- since a shared machine and a personal one want opposite defaults.
10
+ * Dismissing the dialog (backdrop / escape / Cancel) cancels logout entirely; no
11
+ * action runs and the session stays connected.
12
+ */
13
+ import { Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle } from '@mui/material';
14
+ import { useLogout } from '../react/hooks.js';
15
+ /**
16
+ * @param props {object}
17
+ * @param props.open {boolean} whether the dialog is shown
18
+ * @param props.onClose {() => void} called after an action completes and on a
19
+ * dismiss/cancel (which runs no logout)
20
+ * @returns {ReactNode}
21
+ */
22
+ export function LogoutDialog({ open, onClose }) {
23
+ const logout = useLogout();
24
+ async function handleLogout(wipe) {
25
+ await logout({ wipe });
26
+ onClose();
27
+ }
28
+ return (_jsxs(Dialog, { open: open, onClose: onClose, "data-testid": "logout-dialog", children: [_jsx(DialogTitle, { children: "Log out" }), _jsx(DialogContent, { children: _jsx(DialogContentText, { children: "Keep your data on this device for next time, or erase it now. Erasing removes the local copy from this device only -- data already synced to your storage stays there and returns when you log back in." }) }), _jsxs(DialogActions, { children: [_jsx(Button, { onClick: onClose, "data-testid": "logout-cancel", children: "Cancel" }), _jsx(Button, { onClick: () => void handleLogout(false), "data-testid": "logout-keep", children: "Log out, keep data" }), _jsx(Button, { color: "error", onClick: () => void handleLogout(true), "data-testid": "logout-wipe", children: "Log out, erase data" })] })] }));
29
+ }
30
+ //# sourceMappingURL=LogoutDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogoutDialog.js","sourceRoot":"","sources":["../../src/mui/LogoutDialog.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH;;;;;;;GAOG;AACH,OAAO,EACL,MAAM,EACN,MAAM,EACN,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,WAAW,EACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE7C;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,IAAI,EACJ,OAAO,EAIR;IACC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,KAAK,UAAU,YAAY,CAAC,IAAa;QACvC,MAAM,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QACtB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,CACL,MAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,iBAAc,eAAe,aAC/D,KAAC,WAAW,0BAAsB,EAClC,KAAC,aAAa,cACZ,KAAC,iBAAiB,0NAIE,GACN,EAChB,MAAC,aAAa,eACZ,KAAC,MAAM,IAAC,OAAO,EAAE,OAAO,iBAAc,eAAe,uBAE5C,EACT,KAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,iBAC3B,aAAa,mCAGlB,EACT,KAAC,MAAM,IACL,KAAK,EAAC,OAAO,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,iBAC1B,aAAa,oCAGlB,IACK,IACT,CACV,CAAA;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @param props {object}
3
- * @param [props.loginPath] {string} where to send an unauthenticated visitor
4
- * (defaults to `/login`)
3
+ * @param [props.loginPath] {string} where to send a not-yet-connected visitor
4
+ * in a login-gated app (defaults to `/login`)
5
5
  * @returns {ReactNode}
6
6
  */
7
7
  export declare function ProtectedRoute({ loginPath }?: {
@@ -1 +1 @@
1
- {"version":3,"file":"ProtectedRoute.d.ts","sourceRoot":"","sources":["../../src/mui/ProtectedRoute.tsx"],"names":[],"mappings":"AAmCA;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC7B,SAAoB,EACrB,GAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAA;CACd,+BA+BL"}
1
+ {"version":3,"file":"ProtectedRoute.d.ts","sourceRoot":"","sources":["../../src/mui/ProtectedRoute.tsx"],"names":[],"mappings":"AA4CA;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC7B,SAAoB,EACrB,GAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAA;CACd,+BA0BL"}
@@ -3,17 +3,26 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  * Copyright (c) 2026 Interop Alliance. All rights reserved.
4
4
  */
5
5
  /**
6
- * The auth + hydration gate (wallet mode). Attempts the zero-popup session
7
- * restore; an unauthenticated visitor is redirected to the login path, and the
8
- * routed pages render only once the restored session has hydrated the stores.
6
+ * The router gate: a thin switch over the app's `onboarding` mode. While the
7
+ * session is booting it shows a spinner; a `local-first` app then always renders
8
+ * the routed pages (over the anonymous replica), while a `login-gated` app
9
+ * renders them only once the wallet is connected and otherwise redirects to the
10
+ * login path. Uses react-router's `Navigate` / `Outlet`.
9
11
  *
10
- * Apps with a local dev mode wrap their own gate; this component is wallet-mode
11
- * only. Uses react-router's `Navigate` / `Outlet`.
12
+ * Boot is kicked off by {@link WasSessionProvider} on mount, not here, so a
13
+ * local-first app that never mounts this component still boots.
14
+ *
15
+ * The fatal-error alert (`data-testid="bootstrap-error"`) is scoped to
16
+ * boot/storage failures ONLY: it renders solely while `status === 'boot'` with
17
+ * an `error`, which the store only produces when even the anonymous local
18
+ * replica cannot be opened. A failed or cancelled wallet login (or a reconnect
19
+ * failure) sets the store's `error` too, but only after `status` has left `boot`
20
+ * (to `local` / `reconnect`), so it never blanks a local-first app with this
21
+ * alert -- the login page surfaces that error instead.
12
22
  */
13
- import { useEffect } from 'react';
14
23
  import { Navigate, Outlet } from 'react-router';
15
24
  import { Alert, Box, CircularProgress, Typography } from '@mui/material';
16
- import { useAppReady, useAuthStore, useSession } from '../react/hooks.js';
25
+ import { useSession } from '../react/hooks.js';
17
26
  function CenteredSpinner({ label }) {
18
27
  return (_jsxs(Box, { sx: {
19
28
  display: 'flex',
@@ -26,29 +35,27 @@ function CenteredSpinner({ label }) {
26
35
  }
27
36
  /**
28
37
  * @param props {object}
29
- * @param [props.loginPath] {string} where to send an unauthenticated visitor
30
- * (defaults to `/login`)
38
+ * @param [props.loginPath] {string} where to send a not-yet-connected visitor
39
+ * in a login-gated app (defaults to `/login`)
31
40
  * @returns {ReactNode}
32
41
  */
33
42
  export function ProtectedRoute({ loginPath = '/login' } = {}) {
34
- const store = useAuthStore();
35
- const { status } = useSession();
36
- const { ready, error } = useAppReady();
37
- useEffect(() => {
38
- void store.getState().restore();
39
- }, [store]);
40
- if (error) {
43
+ const { status, onboarding, error } = useSession();
44
+ // Only a boot/storage failure (error present while still in `boot`) replaces
45
+ // the app with the fatal alert; a login/reconnect error never reaches here.
46
+ if (status === 'boot' && error) {
41
47
  return (_jsx(Box, { sx: { p: 4 }, children: _jsxs(Alert, { severity: "error", "data-testid": "bootstrap-error", children: ["Failed to open local storage: ", error] }) }));
42
48
  }
43
- if (status === 'idle' || status === 'restoring') {
44
- return _jsx(CenteredSpinner, { label: "Restoring your session..." });
49
+ if (status === 'boot') {
50
+ return _jsx(CenteredSpinner, { label: "Loading..." });
45
51
  }
46
- if (status !== 'authenticated') {
47
- return _jsx(Navigate, { to: loginPath, replace: true });
52
+ if (onboarding === 'local-first') {
53
+ return _jsx(Outlet, {});
48
54
  }
49
- if (!ready) {
50
- return _jsx(CenteredSpinner, { label: "Opening your storage..." });
55
+ // login-gated: the app is reachable only once a wallet is connected.
56
+ if (status === 'connected' || status === 'reconnect') {
57
+ return _jsx(Outlet, {});
51
58
  }
52
- return _jsx(Outlet, {});
59
+ return _jsx(Navigate, { to: loginPath, replace: true });
53
60
  }
54
61
  //# sourceMappingURL=ProtectedRoute.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProtectedRoute.js","sourceRoot":"","sources":["../../src/mui/ProtectedRoute.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH;;;;;;;GAOG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEzE,SAAS,eAAe,CAAC,EAAE,KAAK,EAAqB;IACnD,OAAO,CACL,MAAC,GAAG,IACF,EAAE,EAAE;YACF,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,GAAG,EAAE,CAAC;YACN,SAAS,EAAE,MAAM;SAClB,iBACW,mBAAmB,aAE/B,KAAC,gBAAgB,KAAG,EACpB,KAAC,UAAU,IAAC,KAAK,EAAC,gBAAgB,YAAE,KAAK,GAAc,IACnD,CACP,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,SAAS,GAAG,QAAQ,KAGlB,EAAE;IACJ,MAAM,KAAK,GAAG,YAAY,EAAE,CAAA;IAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAA;IAC/B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAAA;IAEtC,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAA;IACjC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,KAAC,GAAG,IAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,YACf,MAAC,KAAK,IAAC,QAAQ,EAAC,OAAO,iBAAa,iBAAiB,+CACpB,KAAK,IAC9B,GACJ,CACP,CAAA;IACH,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAChD,OAAO,KAAC,eAAe,IAAC,KAAK,EAAC,2BAA2B,GAAG,CAAA;IAC9D,CAAC;IACD,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QAC/B,OAAO,KAAC,QAAQ,IAAC,EAAE,EAAE,SAAS,EAAE,OAAO,SAAG,CAAA;IAC5C,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAC,eAAe,IAAC,KAAK,EAAC,yBAAyB,GAAG,CAAA;IAC5D,CAAC;IAED,OAAO,KAAC,MAAM,KAAG,CAAA;AACnB,CAAC"}
1
+ {"version":3,"file":"ProtectedRoute.js","sourceRoot":"","sources":["../../src/mui/ProtectedRoute.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,SAAS,eAAe,CAAC,EAAE,KAAK,EAAqB;IACnD,OAAO,CACL,MAAC,GAAG,IACF,EAAE,EAAE;YACF,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,GAAG,EAAE,CAAC;YACN,SAAS,EAAE,MAAM;SAClB,iBACW,mBAAmB,aAE/B,KAAC,gBAAgB,KAAG,EACpB,KAAC,UAAU,IAAC,KAAK,EAAC,gBAAgB,YAAE,KAAK,GAAc,IACnD,CACP,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,SAAS,GAAG,QAAQ,KAGlB,EAAE;IACJ,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,CAAA;IAElD,6EAA6E;IAC7E,4EAA4E;IAC5E,IAAI,MAAM,KAAK,MAAM,IAAI,KAAK,EAAE,CAAC;QAC/B,OAAO,CACL,KAAC,GAAG,IAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,YACf,MAAC,KAAK,IAAC,QAAQ,EAAC,OAAO,iBAAa,iBAAiB,+CACpB,KAAK,IAC9B,GACJ,CACP,CAAA;IACH,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,KAAC,eAAe,IAAC,KAAK,EAAC,YAAY,GAAG,CAAA;IAC/C,CAAC;IACD,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;QACjC,OAAO,KAAC,MAAM,KAAG,CAAA;IACnB,CAAC;IACD,qEAAqE;IACrE,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QACrD,OAAO,KAAC,MAAM,KAAG,CAAA;IACnB,CAAC;IACD,OAAO,KAAC,QAAQ,IAAC,EAAE,EAAE,SAAS,EAAE,OAAO,SAAG,CAAA;AAC5C,CAAC"}
@@ -9,4 +9,6 @@
9
9
  export { ProtectedRoute } from './ProtectedRoute.js';
10
10
  export { ReconnectBanner } from './ReconnectBanner.js';
11
11
  export { SyncStatusChip } from './SyncStatusChip.js';
12
+ export { LogoutDialog } from './LogoutDialog.js';
13
+ export { ClearDataDialog } from './ClearDataDialog.js';
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mui/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mui/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA"}
package/dist/mui/index.js CHANGED
@@ -9,4 +9,6 @@
9
9
  export { ProtectedRoute } from './ProtectedRoute.js';
10
10
  export { ReconnectBanner } from './ReconnectBanner.js';
11
11
  export { SyncStatusChip } from './SyncStatusChip.js';
12
+ export { LogoutDialog } from './LogoutDialog.js';
13
+ export { ClearDataDialog } from './ClearDataDialog.js';
12
14
  //# sourceMappingURL=index.js.map