@interop/was-react 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mui/AdoptDialog.d.ts +12 -0
- package/dist/mui/AdoptDialog.d.ts.map +1 -0
- package/dist/mui/AdoptDialog.js +31 -0
- package/dist/mui/AdoptDialog.js.map +1 -0
- package/dist/mui/index.d.ts +1 -0
- package/dist/mui/index.d.ts.map +1 -1
- package/dist/mui/index.js +1 -0
- package/dist/mui/index.js.map +1 -1
- package/dist/react/hooks.d.ts +15 -2
- package/dist/react/hooks.d.ts.map +1 -1
- package/dist/react/hooks.js +15 -1
- package/dist/react/hooks.js.map +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/session/authStore.d.ts +32 -6
- package/dist/session/authStore.d.ts.map +1 -1
- package/dist/session/authStore.js +123 -19
- package/dist/session/authStore.js.map +1 -1
- package/dist/storage/adopt.d.ts +20 -0
- package/dist/storage/adopt.d.ts.map +1 -0
- package/dist/storage/adopt.js +78 -0
- package/dist/storage/adopt.js.map +1 -0
- package/dist/storage/entityStore.d.ts.map +1 -1
- package/dist/storage/entityStore.js +1 -15
- package/dist/storage/entityStore.js.map +1 -1
- package/dist/storage/localStore.d.ts +26 -3
- package/dist/storage/localStore.d.ts.map +1 -1
- package/dist/storage/localStore.js +26 -1
- package/dist/storage/localStore.js.map +1 -1
- package/dist/sync/index.d.ts +1 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +1 -1
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/lww.d.ts +12 -0
- package/dist/sync/lww.d.ts.map +1 -1
- package/dist/sync/lww.js +14 -0
- package/dist/sync/lww.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -33,5 +33,5 @@ export { hydrateAll, clearAllEntityStores, patchFromChange, scheduleRehydrate, c
|
|
|
33
33
|
export { isAuthError, SyncController, createSyncController } from './storage/syncController.js';
|
|
34
34
|
export { startWasSync } from './storage/wasSync.js';
|
|
35
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';
|
|
36
|
+
export { WasSessionProvider, WasSessionContext, useAuthStore, useSession, useLogin, useLogout, useClearData, useHasLocalData, useReconnect, useSyncStatus, type SyncRollup } from './react/index.js';
|
|
37
37
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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
|
@@ -42,5 +42,5 @@ export { startWasSync } from './storage/wasSync.js';
|
|
|
42
42
|
// Session lifecycle: the session auth store factory (the four-state machine).
|
|
43
43
|
export { createAuthStore } from './session/index.js';
|
|
44
44
|
// React: the session provider + hooks.
|
|
45
|
-
export { WasSessionProvider, WasSessionContext, useAuthStore, useSession, useLogin, useLogout, useClearData, useReconnect, useSyncStatus } from './react/index.js';
|
|
45
|
+
export { WasSessionProvider, WasSessionContext, useAuthStore, useSession, useLogin, useLogout, useClearData, useHasLocalData, 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,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"}
|
|
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,eAAe,EACf,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 before a chosen login starts and
|
|
5
|
+
* on a dismiss/cancel (which runs no login)
|
|
6
|
+
* @returns {ReactNode}
|
|
7
|
+
*/
|
|
8
|
+
export declare function AdoptDialog({ open, onClose }: {
|
|
9
|
+
open: boolean;
|
|
10
|
+
onClose: () => void;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=AdoptDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdoptDialog.d.ts","sourceRoot":"","sources":["../../src/mui/AdoptDialog.tsx"],"names":[],"mappings":"AAsBA;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,OAAO,EACR,EAAE;IACD,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,+BA+BA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
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 pre-login adoption choice dialog, shown by an app's login affordance when
|
|
7
|
+
* the anonymous `local` replica holds data (see `useHasLocalData`). "Bring my
|
|
8
|
+
* data" runs `login({ adopt: 'merge' })`: the local data is merged into the
|
|
9
|
+
* connected storage and the anonymous replica is then deleted. "Set it aside"
|
|
10
|
+
* runs `login({ adopt: 'leave' })`: the anonymous replica stays untouched on
|
|
11
|
+
* this device and returns after a logout. Dismissing the dialog (backdrop /
|
|
12
|
+
* escape / Cancel) runs no login at all.
|
|
13
|
+
*/
|
|
14
|
+
import { Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle } from '@mui/material';
|
|
15
|
+
import { useLogin } from '../react/hooks.js';
|
|
16
|
+
/**
|
|
17
|
+
* @param props {object}
|
|
18
|
+
* @param props.open {boolean} whether the dialog is shown
|
|
19
|
+
* @param props.onClose {() => void} called before a chosen login starts and
|
|
20
|
+
* on a dismiss/cancel (which runs no login)
|
|
21
|
+
* @returns {ReactNode}
|
|
22
|
+
*/
|
|
23
|
+
export function AdoptDialog({ open, onClose }) {
|
|
24
|
+
const { login } = useLogin();
|
|
25
|
+
function handleLogin(adopt) {
|
|
26
|
+
onClose();
|
|
27
|
+
void login({ adopt });
|
|
28
|
+
}
|
|
29
|
+
return (_jsxs(Dialog, { open: open, onClose: onClose, "data-testid": "adopt-dialog", children: [_jsx(DialogTitle, { children: "Bring your data with you?" }), _jsx(DialogContent, { children: _jsx(DialogContentText, { children: "You created data on this device before logging in. Bring it into your own storage so it syncs everywhere you log in, or set it aside -- it then stays on this device only and comes back if you log out." }) }), _jsxs(DialogActions, { children: [_jsx(Button, { onClick: onClose, "data-testid": "adopt-cancel", children: "Cancel" }), _jsx(Button, { onClick: () => handleLogin('leave'), "data-testid": "adopt-leave", children: "Set it aside" }), _jsx(Button, { onClick: () => handleLogin('merge'), "data-testid": "adopt-merge", children: "Bring my data" })] })] }));
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=AdoptDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdoptDialog.js","sourceRoot":"","sources":["../../src/mui/AdoptDialog.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH;;;;;;;;GAQG;AACH,OAAO,EACL,MAAM,EACN,MAAM,EACN,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,WAAW,EACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,IAAI,EACJ,OAAO,EAIR;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAA;IAE5B,SAAS,WAAW,CAAC,KAAwB;QAC3C,OAAO,EAAE,CAAA;QACT,KAAK,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IACvB,CAAC;IAED,OAAO,CACL,MAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,iBAAc,cAAc,aAC9D,KAAC,WAAW,4CAAwC,EACpD,KAAC,aAAa,cACZ,KAAC,iBAAiB,2NAIE,GACN,EAChB,MAAC,aAAa,eACZ,KAAC,MAAM,IAAC,OAAO,EAAE,OAAO,iBAAc,cAAc,uBAE3C,EACT,KAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,iBAAc,aAAa,6BAE7D,EACT,KAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,iBAAc,aAAa,8BAE7D,IACK,IACT,CACV,CAAA;AACH,CAAC"}
|
package/dist/mui/index.d.ts
CHANGED
|
@@ -11,4 +11,5 @@ export { ReconnectBanner } from './ReconnectBanner.js';
|
|
|
11
11
|
export { SyncStatusChip } from './SyncStatusChip.js';
|
|
12
12
|
export { LogoutDialog } from './LogoutDialog.js';
|
|
13
13
|
export { ClearDataDialog } from './ClearDataDialog.js';
|
|
14
|
+
export { AdoptDialog } from './AdoptDialog.js';
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/mui/index.d.ts.map
CHANGED
|
@@ -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;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,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;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/mui/index.js
CHANGED
|
@@ -11,4 +11,5 @@ export { ReconnectBanner } from './ReconnectBanner.js';
|
|
|
11
11
|
export { SyncStatusChip } from './SyncStatusChip.js';
|
|
12
12
|
export { LogoutDialog } from './LogoutDialog.js';
|
|
13
13
|
export { ClearDataDialog } from './ClearDataDialog.js';
|
|
14
|
+
export { AdoptDialog } from './AdoptDialog.js';
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
package/dist/mui/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","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"}
|
|
1
|
+
{"version":3,"file":"index.js","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;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/react/hooks.d.ts
CHANGED
|
@@ -27,12 +27,16 @@ export declare function useSession(): {
|
|
|
27
27
|
/**
|
|
28
28
|
* The login action plus the state the login page renders. `authenticating` is
|
|
29
29
|
* the in-flight flag (the `status` stays `local` during login); `status` is
|
|
30
|
-
* exposed so a login page can redirect once it reads `connected`.
|
|
30
|
+
* exposed so a login page can redirect once it reads `connected`. `login`
|
|
31
|
+
* accepts `{ adopt }` -- `'merge'` (default) migrates data created in `local`
|
|
32
|
+
* into the connected replica, `'leave'` sets it aside untouched.
|
|
31
33
|
*
|
|
32
34
|
* @returns {object}
|
|
33
35
|
*/
|
|
34
36
|
export declare function useLogin(): {
|
|
35
|
-
login: (
|
|
37
|
+
login: (options?: {
|
|
38
|
+
adopt?: 'merge' | 'leave';
|
|
39
|
+
}) => Promise<void>;
|
|
36
40
|
authenticating: boolean;
|
|
37
41
|
status: ReturnType<WasAuthStore['getState']>['status'];
|
|
38
42
|
phase: ReturnType<WasAuthStore['getState']>['phase'];
|
|
@@ -55,6 +59,15 @@ export declare function useLogout(): (options?: {
|
|
|
55
59
|
* @returns {() => Promise<void>}
|
|
56
60
|
*/
|
|
57
61
|
export declare function useClearData(): () => Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Whether the anonymous `local` replica currently holds any documents -- the
|
|
64
|
+
* check a login affordance runs at decision time (e.g. on the login button
|
|
65
|
+
* click) to choose between opening the adoption dialog and calling `login()`
|
|
66
|
+
* directly. Returns the async check, not a subscription.
|
|
67
|
+
*
|
|
68
|
+
* @returns {() => Promise<boolean>}
|
|
69
|
+
*/
|
|
70
|
+
export declare function useHasLocalData(): () => Promise<boolean>;
|
|
58
71
|
/**
|
|
59
72
|
* The expired-access reconnect: the banner flags plus the reconnect action.
|
|
60
73
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/react/hooks.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,+BAA+B,CAAA;AAEtC;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,YAAY,CAS3C;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI;IAC5B,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IACtD,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IAC9D,cAAc,EAAE,OAAO,CAAA;IACvB,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACpD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,EAAE,OAAO,CAAA;CACtB,CAgBA;AAED
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/react/hooks.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,+BAA+B,CAAA;AAEtC;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,YAAY,CAS3C;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI;IAC5B,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IACtD,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IAC9D,cAAc,EAAE,OAAO,CAAA;IACvB,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACpD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,EAAE,OAAO,CAAA;CACtB,CAgBA;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,IAAI;IAC1B,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,cAAc,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IACtD,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACpD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB,CAaA;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAG3E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,CAGlD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,IAAI,MAAM,OAAO,CAAC,OAAO,CAAC,CAGxD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI;IAC9B,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/B,CAWA;AAED;;;GAGG;AACH,YAAY,EAAE,UAAU,EAAE,CAAA;AAE1B;;;;;;;GAOG;AACH,wBAAgB,aAAa,IAAI;IAC/B,KAAK,EAAE,UAAU,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAKA"}
|
package/dist/react/hooks.js
CHANGED
|
@@ -48,7 +48,9 @@ export function useSession() {
|
|
|
48
48
|
/**
|
|
49
49
|
* The login action plus the state the login page renders. `authenticating` is
|
|
50
50
|
* the in-flight flag (the `status` stays `local` during login); `status` is
|
|
51
|
-
* exposed so a login page can redirect once it reads `connected`.
|
|
51
|
+
* exposed so a login page can redirect once it reads `connected`. `login`
|
|
52
|
+
* accepts `{ adopt }` -- `'merge'` (default) migrates data created in `local`
|
|
53
|
+
* into the connected replica, `'leave'` sets it aside untouched.
|
|
52
54
|
*
|
|
53
55
|
* @returns {object}
|
|
54
56
|
*/
|
|
@@ -84,6 +86,18 @@ export function useClearData() {
|
|
|
84
86
|
const store = useAuthStore();
|
|
85
87
|
return useStore(store, state => state.clearLocalData);
|
|
86
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Whether the anonymous `local` replica currently holds any documents -- the
|
|
91
|
+
* check a login affordance runs at decision time (e.g. on the login button
|
|
92
|
+
* click) to choose between opening the adoption dialog and calling `login()`
|
|
93
|
+
* directly. Returns the async check, not a subscription.
|
|
94
|
+
*
|
|
95
|
+
* @returns {() => Promise<boolean>}
|
|
96
|
+
*/
|
|
97
|
+
export function useHasLocalData() {
|
|
98
|
+
const store = useAuthStore();
|
|
99
|
+
return useStore(store, state => state.hasLocalData);
|
|
100
|
+
}
|
|
87
101
|
/**
|
|
88
102
|
* The expired-access reconnect: the banner flags plus the reconnect action.
|
|
89
103
|
*
|
package/dist/react/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/react/hooks.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAEjB,MAAM,+BAA+B,CAAA;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,yEAAyE;YACvE,sDAAsD,CACzD,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU;IAWxB,MAAM,KAAK,GAAG,YAAY,EAAE,CAAA;IAC5B,OAAO,QAAQ,CACb,KAAK,EACL,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,YAAY,EAAE,KAAK,CAAC,YAAY;KACjC,CAAC,CAAC,CACJ,CAAA;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/react/hooks.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAEjB,MAAM,+BAA+B,CAAA;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,yEAAyE;YACvE,sDAAsD,CACzD,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU;IAWxB,MAAM,KAAK,GAAG,YAAY,EAAE,CAAA;IAC5B,OAAO,QAAQ,CACb,KAAK,EACL,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,YAAY,EAAE,KAAK,CAAC,YAAY;KACjC,CAAC,CAAC,CACJ,CAAA;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ;IAOtB,MAAM,KAAK,GAAG,YAAY,EAAE,CAAA;IAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACnD,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,QAAQ,CACvD,KAAK,EACL,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC,CACJ,CAAA;IACD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,KAAK,GAAG,YAAY,EAAE,CAAA;IAC5B,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAG,YAAY,EAAE,CAAA;IAC5B,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;AACvD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,KAAK,GAAG,YAAY,EAAE,CAAA;IAC5B,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY;IAK1B,MAAM,KAAK,GAAG,YAAY,EAAE,CAAA;IAC5B,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC3D,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,QAAQ,CAC9C,KAAK,EACL,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,YAAY,EAAE,KAAK,CAAC,YAAY;KACjC,CAAC,CAAC,CACJ,CAAA;IACD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,CAAA;AACnD,CAAC;AAQD;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa;IAK3B,MAAM,MAAM,GAAG,kBAAkB,CAC/B,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CACnD,CAAA;IACD,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAA;AACjC,CAAC"}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
* `./mui` subpath.
|
|
8
8
|
*/
|
|
9
9
|
export { WasSessionProvider, WasSessionContext } from './WasSessionProvider.js';
|
|
10
|
-
export { useAuthStore, useSession, useLogin, useLogout, useClearData, useReconnect, useSyncStatus, type SyncRollup } from './hooks.js';
|
|
10
|
+
export { useAuthStore, useSession, useLogin, useLogout, useClearData, useHasLocalData, useReconnect, useSyncStatus, type SyncRollup } from './hooks.js';
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC/E,OAAO,EACL,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,KAAK,UAAU,EAChB,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC/E,OAAO,EACL,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,aAAa,EACb,KAAK,UAAU,EAChB,MAAM,YAAY,CAAA"}
|
package/dist/react/index.js
CHANGED
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
* `./mui` subpath.
|
|
8
8
|
*/
|
|
9
9
|
export { WasSessionProvider, WasSessionContext } from './WasSessionProvider.js';
|
|
10
|
-
export { useAuthStore, useSession, useLogin, useLogout, useClearData, useReconnect, useSyncStatus } from './hooks.js';
|
|
10
|
+
export { useAuthStore, useSession, useLogin, useLogout, useClearData, useHasLocalData, useReconnect, useSyncStatus } from './hooks.js';
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC/E,OAAO,EACL,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,aAAa,EAEd,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC/E,OAAO,EACL,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,aAAa,EAEd,MAAM,YAAY,CAAA"}
|
|
@@ -17,9 +17,14 @@
|
|
|
17
17
|
* `status !== 'boot'`.
|
|
18
18
|
*
|
|
19
19
|
* Login (or `connectWithGrants`) tears the anonymous replica down and opens the
|
|
20
|
-
* connected replica under the wallet-derived seed.
|
|
21
|
-
*
|
|
22
|
-
*
|
|
20
|
+
* connected replica under the wallet-derived seed. By default it ADOPTS the
|
|
21
|
+
* anonymous replica's data first (`adopt: 'merge'`): the decrypted payloads are
|
|
22
|
+
* collected before teardown, LWW-merged into the connected replica before its
|
|
23
|
+
* first hydrate/sync (so they reach the server as ordinary creates), and the
|
|
24
|
+
* anonymous seed + database are deleted once the activation lands. `adopt:
|
|
25
|
+
* 'leave'` sets the anonymous replica aside untouched instead (it returns after
|
|
26
|
+
* a logout). Logout returns to a fresh `local` (optionally wiping the connected
|
|
27
|
+
* replica); `clearLocalData` mints a brand-new anonymous seed and replica.
|
|
23
28
|
*
|
|
24
29
|
* The library cannot bind a module-level store to app config, so this is a
|
|
25
30
|
* FACTORY: {@link createAuthStore} captures the app's {@link WasAppConfig} and
|
|
@@ -81,21 +86,36 @@ export interface AuthState {
|
|
|
81
86
|
boot: () => Promise<void>;
|
|
82
87
|
/**
|
|
83
88
|
* Full Login With Wallet (first-run or returning). On success tears down the
|
|
84
|
-
* anonymous replica and opens the connected one.
|
|
89
|
+
* anonymous replica and opens the connected one. `adopt` decides what happens
|
|
90
|
+
* to data created in `local` before this login: `'merge'` (the default)
|
|
91
|
+
* LWW-merges it into the connected replica and then deletes the anonymous
|
|
92
|
+
* seed + database; `'leave'` sets the anonymous replica aside untouched (it
|
|
93
|
+
* returns after a logout). A cancel or failure leaves `local` intact either
|
|
94
|
+
* way.
|
|
95
|
+
*
|
|
96
|
+
* @param [options] {object}
|
|
97
|
+
* @param [options.adopt] {'merge' | 'leave'}
|
|
98
|
+
* @returns {Promise<void>}
|
|
85
99
|
*/
|
|
86
|
-
login: (
|
|
100
|
+
login: (options?: {
|
|
101
|
+
adopt?: 'merge' | 'leave';
|
|
102
|
+
}) => Promise<void>;
|
|
87
103
|
/**
|
|
88
104
|
* Non-CHAPI connect from an explicit seed + grants (dev/test and provisioned
|
|
89
|
-
* grants). Tears down the current replica and opens the connected one
|
|
105
|
+
* grants). Tears down the current replica and opens the connected one, with
|
|
106
|
+
* the same `adopt` choice (and `'merge'` default) as `login`, so this path
|
|
107
|
+
* exercises adoption exactly as a wallet login does.
|
|
90
108
|
*
|
|
91
109
|
* @param options {object}
|
|
92
110
|
* @param options.seed {Uint8Array}
|
|
93
111
|
* @param options.grants {IZcap[]}
|
|
112
|
+
* @param [options.adopt] {'merge' | 'leave'}
|
|
94
113
|
* @returns {Promise<void>}
|
|
95
114
|
*/
|
|
96
115
|
connectWithGrants: (options: {
|
|
97
116
|
seed: Uint8Array;
|
|
98
117
|
grants: IZcap[];
|
|
118
|
+
adopt?: 'merge' | 'leave';
|
|
99
119
|
}) => Promise<void>;
|
|
100
120
|
/**
|
|
101
121
|
* Re-run the grants flow with the existing seed (expired access).
|
|
@@ -118,6 +138,12 @@ export interface AuthState {
|
|
|
118
138
|
* `local`-mode "Clear data" button.
|
|
119
139
|
*/
|
|
120
140
|
clearLocalData: () => Promise<void>;
|
|
141
|
+
/**
|
|
142
|
+
* Whether the anonymous `local` replica currently holds any documents -- the
|
|
143
|
+
* check a login screen runs to decide whether to offer the adoption choice
|
|
144
|
+
* before `login()`. Always false outside `local`.
|
|
145
|
+
*/
|
|
146
|
+
hasLocalData: () => Promise<boolean>;
|
|
121
147
|
notifyAccessExpired: () => void;
|
|
122
148
|
/**
|
|
123
149
|
* Tears down the live replica (expiry watch, controller, local store) WITHOUT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authStore.d.ts","sourceRoot":"","sources":["../../src/session/authStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"authStore.d.ts","sourceRoot":"","sources":["../../src/session/authStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,cAAc,CAAA;AAIrB,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAQ1E,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,sBAAsB,CAAA;AAwB7B;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,CAAA;AAqBxE,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,aAAa,CAAA;IACrB;;;;OAIG;IACH,UAAU,EAAE,aAAa,GAAG,aAAa,CAAA;IACzC;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAA;IACvB;;OAEG;IACH,KAAK,EAAE,UAAU,GAAG,IAAI,CAAA;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB;;;OAGG;IACH,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,EAAE,OAAO,CAAA;IACrB;;;;OAIG;IACH,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB;;;;;;;;;;;;OAYG;IACH,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE;;;;;;;;;;;OAWG;IACH,iBAAiB,EAAE,CAAC,OAAO,EAAE;QAC3B,IAAI,EAAE,UAAU,CAAA;QAChB,MAAM,EAAE,KAAK,EAAE,CAAA;QACf,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;KAC1B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnB;;OAEG;IACH,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B;;;;;;;OAOG;IACH,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD;;;;OAIG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC;;;;OAIG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IACpC,mBAAmB,EAAE,MAAM,IAAI,CAAA;IAC/B;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;AAQ9C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,QAAQ,EACR,SAAS,EACT,OAAO,EACR,EAAE;IACD,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,EAAE,aAAa,CAAA;IACvB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;CACtC,GAAG,YAAY,CAgpBf"}
|
|
@@ -17,9 +17,14 @@
|
|
|
17
17
|
* `status !== 'boot'`.
|
|
18
18
|
*
|
|
19
19
|
* Login (or `connectWithGrants`) tears the anonymous replica down and opens the
|
|
20
|
-
* connected replica under the wallet-derived seed.
|
|
21
|
-
*
|
|
22
|
-
*
|
|
20
|
+
* connected replica under the wallet-derived seed. By default it ADOPTS the
|
|
21
|
+
* anonymous replica's data first (`adopt: 'merge'`): the decrypted payloads are
|
|
22
|
+
* collected before teardown, LWW-merged into the connected replica before its
|
|
23
|
+
* first hydrate/sync (so they reach the server as ordinary creates), and the
|
|
24
|
+
* anonymous seed + database are deleted once the activation lands. `adopt:
|
|
25
|
+
* 'leave'` sets the anonymous replica aside untouched instead (it returns after
|
|
26
|
+
* a logout). Logout returns to a fresh `local` (optionally wiping the connected
|
|
27
|
+
* replica); `clearLocalData` mints a brand-new anonymous seed and replica.
|
|
23
28
|
*
|
|
24
29
|
* The library cannot bind a module-level store to app config, so this is a
|
|
25
30
|
* FACTORY: {@link createAuthStore} captures the app's {@link WasAppConfig} and
|
|
@@ -37,6 +42,7 @@ import { parseGrants } from '../grants.js';
|
|
|
37
42
|
import { LocalStore, dbNameForController } from '../storage/localStore.js';
|
|
38
43
|
import { clearLocalStore, hasStore, requireStore, setLocalStore } from '../storage/storageManager.js';
|
|
39
44
|
import { cancelScheduledRehydrates, clearAllEntityStores, hydrateAll, patchFromChange } from '../storage/rehydrate.js';
|
|
45
|
+
import { mergeAdopted } from '../storage/adopt.js';
|
|
40
46
|
import { startWasSync } from '../storage/wasSync.js';
|
|
41
47
|
import { errorMessage } from '../sync/index.js';
|
|
42
48
|
import { createSyncController } from '../storage/syncController.js';
|
|
@@ -199,14 +205,18 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
|
|
|
199
205
|
/**
|
|
200
206
|
* Opens the encrypted replica under `seed` (a per-controller database name),
|
|
201
207
|
* installs it as the process-wide store, and hydrates every entity store.
|
|
202
|
-
* Shared by `openLocal` and the connected activation.
|
|
208
|
+
* Shared by `openLocal` and the connected activation. When `adopt` is given
|
|
209
|
+
* (a connected activation following a merge login), the collected anonymous
|
|
210
|
+
* payloads are LWW-merged in BEFORE the hydrate -- and before sync starts --
|
|
211
|
+
* so the entity stores and the first push both see them as ordinary rows.
|
|
203
212
|
*
|
|
204
213
|
* @param options {object}
|
|
205
214
|
* @param options.seed {Uint8Array}
|
|
206
215
|
* @param options.controllerDid {string}
|
|
216
|
+
* @param [options.adopt] {AdoptSource}
|
|
207
217
|
* @returns {Promise<void>}
|
|
208
218
|
*/
|
|
209
|
-
async function openAndHydrate({ seed, controllerDid }) {
|
|
219
|
+
async function openAndHydrate({ seed, controllerDid, adopt }) {
|
|
210
220
|
const local = await LocalStore.init({
|
|
211
221
|
seed,
|
|
212
222
|
collections: config.collections,
|
|
@@ -214,6 +224,9 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
|
|
|
214
224
|
...(storage && { storage })
|
|
215
225
|
});
|
|
216
226
|
setLocalStore(local);
|
|
227
|
+
if (adopt) {
|
|
228
|
+
await mergeAdopted({ store: local, entities: adopt.entities });
|
|
229
|
+
}
|
|
217
230
|
await hydrateAll(registry);
|
|
218
231
|
}
|
|
219
232
|
/**
|
|
@@ -267,7 +280,8 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
|
|
|
267
280
|
try {
|
|
268
281
|
await openAndHydrate({
|
|
269
282
|
seed: session.seed,
|
|
270
|
-
controllerDid: session.identity.controllerDid
|
|
283
|
+
controllerDid: session.identity.controllerDid,
|
|
284
|
+
...(session.adopt && { adopt: session.adopt })
|
|
271
285
|
});
|
|
272
286
|
await persistAndStartSync({
|
|
273
287
|
seed: session.seed,
|
|
@@ -345,15 +359,67 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
|
|
|
345
359
|
await openLocal();
|
|
346
360
|
}
|
|
347
361
|
/**
|
|
348
|
-
*
|
|
349
|
-
*
|
|
350
|
-
*
|
|
351
|
-
*
|
|
362
|
+
* Reads every decrypted payload out of the anonymous replica ahead of its
|
|
363
|
+
* teardown (adoption is a copy: the anonymous and connected replicas derive
|
|
364
|
+
* their ciphers from different seeds, so envelopes cannot move across).
|
|
365
|
+
* Returns null when there is nothing to adopt -- not in `local`, or every
|
|
366
|
+
* collection empty -- in which case the anonymous replica is simply left
|
|
367
|
+
* intact, exactly as an `adopt: 'leave'` login leaves it.
|
|
368
|
+
*
|
|
369
|
+
* Reads through a FRESH handle on the anonymous database (re-derived from
|
|
370
|
+
* the persisted anonymous seed), not the process-wide holder: a StrictMode
|
|
371
|
+
* double-boot can leave the holder as a closed duplicate (`closeDuplicates`),
|
|
372
|
+
* and this read must not be able to abort the connect.
|
|
373
|
+
*
|
|
374
|
+
* @returns {Promise<AdoptSource | null>}
|
|
375
|
+
*/
|
|
376
|
+
async function collectAdoptable() {
|
|
377
|
+
const { status, controllerDid } = store.getState();
|
|
378
|
+
if (status !== 'local' || controllerDid === null) {
|
|
379
|
+
return null;
|
|
380
|
+
}
|
|
381
|
+
const seed = await anonStore.loadSeed();
|
|
382
|
+
if (!seed) {
|
|
383
|
+
return null;
|
|
384
|
+
}
|
|
385
|
+
const anonLocal = await LocalStore.init({
|
|
386
|
+
seed,
|
|
387
|
+
collections: config.collections,
|
|
388
|
+
dbName: dbNameForController({ dbName, controllerDid }),
|
|
389
|
+
...(storage && { storage })
|
|
390
|
+
});
|
|
391
|
+
try {
|
|
392
|
+
const entities = {};
|
|
393
|
+
let total = 0;
|
|
394
|
+
for (const { key } of config.collections) {
|
|
395
|
+
const payloads = await anonLocal.listEntities(key);
|
|
396
|
+
if (payloads.length > 0) {
|
|
397
|
+
entities[key] = payloads;
|
|
398
|
+
total += payloads.length;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
return total > 0 ? { controllerDid, entities } : null;
|
|
402
|
+
}
|
|
403
|
+
finally {
|
|
404
|
+
await anonLocal.close();
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Deletes the adopted anonymous replica -- its persisted seed and its
|
|
409
|
+
* per-controller database -- so the data lives on only in the connected
|
|
410
|
+
* replica and a later logout lands in a genuinely fresh `local`. Called only
|
|
411
|
+
* after the connected activation has succeeded; any earlier failure leaves
|
|
412
|
+
* the anonymous replica intact for the fallback to re-open.
|
|
352
413
|
*
|
|
414
|
+
* @param controllerDid {string} the anonymous controller DID
|
|
353
415
|
* @returns {Promise<void>}
|
|
354
416
|
*/
|
|
355
|
-
async function
|
|
356
|
-
await
|
|
417
|
+
async function discardAnonReplica(controllerDid) {
|
|
418
|
+
await anonStore.clearSeedStore();
|
|
419
|
+
await LocalStore.removeDatabase({
|
|
420
|
+
dbName: dbNameForController({ dbName, controllerDid }),
|
|
421
|
+
...(storage && { storage })
|
|
422
|
+
});
|
|
357
423
|
}
|
|
358
424
|
// Declared last so `prefer-const` is satisfied; the lifecycle closures above
|
|
359
425
|
// only dereference `store` at call time, by which point it is assigned.
|
|
@@ -431,7 +497,7 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
|
|
|
431
497
|
}
|
|
432
498
|
}
|
|
433
499
|
},
|
|
434
|
-
login: async () => {
|
|
500
|
+
login: async ({ adopt = 'merge' } = {}) => {
|
|
435
501
|
if (get().authenticating || get().status === 'connected') {
|
|
436
502
|
return;
|
|
437
503
|
}
|
|
@@ -441,16 +507,24 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
|
|
|
441
507
|
config: loginConfig,
|
|
442
508
|
onPhase: phase => set({ phase })
|
|
443
509
|
});
|
|
444
|
-
// The wallet succeeded:
|
|
445
|
-
// cancel above leaves
|
|
446
|
-
|
|
510
|
+
// The wallet succeeded: collect the anonymous replica's payloads (merge
|
|
511
|
+
// only), then -- only now -- tear it down (a cancel above leaves
|
|
512
|
+
// `local` intact). The anonymous seed and database are deleted only
|
|
513
|
+
// after the activation lands, so a failure below still falls back to an
|
|
514
|
+
// intact `local`.
|
|
515
|
+
const source = adopt === 'merge' ? await collectAdoptable() : null;
|
|
516
|
+
await deactivateStore();
|
|
447
517
|
await activateConnected({
|
|
448
518
|
seed: outcome.seed,
|
|
449
519
|
identity: outcome.identity,
|
|
450
520
|
parsed: outcome.parsed,
|
|
451
521
|
grants: outcome.grants,
|
|
452
|
-
expires: outcome.expires
|
|
522
|
+
expires: outcome.expires,
|
|
523
|
+
...(source && { adopt: source })
|
|
453
524
|
});
|
|
525
|
+
if (source) {
|
|
526
|
+
await discardAnonReplica(source.controllerDid);
|
|
527
|
+
}
|
|
454
528
|
set({
|
|
455
529
|
status: 'connected',
|
|
456
530
|
authenticating: false,
|
|
@@ -470,13 +544,24 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
|
|
|
470
544
|
set({ authenticating: false, phase: null, error: message });
|
|
471
545
|
}
|
|
472
546
|
},
|
|
473
|
-
connectWithGrants: async ({ seed, grants }) => {
|
|
547
|
+
connectWithGrants: async ({ seed, grants, adopt = 'merge' }) => {
|
|
474
548
|
const identity = await initAppSession({ seed });
|
|
475
549
|
const parsed = parseGrants(grants);
|
|
476
550
|
const expires = earliestExpiry(grants) ??
|
|
477
551
|
new Date(Date.now() + FAR_FUTURE_EXPIRY_MS).toISOString();
|
|
552
|
+
const source = adopt === 'merge' ? await collectAdoptable() : null;
|
|
478
553
|
await deactivateStore();
|
|
479
|
-
await activateConnected({
|
|
554
|
+
await activateConnected({
|
|
555
|
+
seed,
|
|
556
|
+
identity,
|
|
557
|
+
parsed,
|
|
558
|
+
grants,
|
|
559
|
+
expires,
|
|
560
|
+
...(source && { adopt: source })
|
|
561
|
+
});
|
|
562
|
+
if (source) {
|
|
563
|
+
await discardAnonReplica(source.controllerDid);
|
|
564
|
+
}
|
|
480
565
|
set({
|
|
481
566
|
status: 'connected',
|
|
482
567
|
controllerDid: identity.controllerDid,
|
|
@@ -534,6 +619,25 @@ export function createAuthStore({ config, registry, seedStore, storage }) {
|
|
|
534
619
|
await resetToFreshLocal({ deleteDb: true, discardAnonSeed: true });
|
|
535
620
|
set({ phase: null, reconnecting: false });
|
|
536
621
|
},
|
|
622
|
+
hasLocalData: async () => {
|
|
623
|
+
if (get().status !== 'local' || !hasStore()) {
|
|
624
|
+
return false;
|
|
625
|
+
}
|
|
626
|
+
try {
|
|
627
|
+
for (const { key } of config.collections) {
|
|
628
|
+
if ((await requireStore().countEntities(key)) > 0) {
|
|
629
|
+
return true;
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
catch {
|
|
634
|
+
// The holder can be a closed duplicate after a StrictMode double-boot;
|
|
635
|
+
// false only skips the adoption prompt, and login's `'merge'` default
|
|
636
|
+
// still collects (through a fresh handle) whatever exists.
|
|
637
|
+
return false;
|
|
638
|
+
}
|
|
639
|
+
return false;
|
|
640
|
+
},
|
|
537
641
|
notifyAccessExpired: () => {
|
|
538
642
|
if (get().status === 'connected') {
|
|
539
643
|
set({ status: 'reconnect', accessExpired: true });
|
|
@@ -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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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { LocalStore } from './localStore.js';
|
|
2
|
+
/**
|
|
3
|
+
* Merges the collected anonymous-replica payloads into `store` (the already
|
|
4
|
+
* open connected replica) under the per-uuid LWW policy above. Runs before the
|
|
5
|
+
* first `hydrateAll`/sync start, so adopted rows enter the entity stores via
|
|
6
|
+
* normal hydration and reach the server as ordinary creates on first push.
|
|
7
|
+
*
|
|
8
|
+
* @param options {object}
|
|
9
|
+
* @param options.store {LocalStore} the open connected replica
|
|
10
|
+
* @param options.entities {Record<string, Array<{ id: string }>>} decrypted
|
|
11
|
+
* payloads per collection key, as collected from the anonymous replica
|
|
12
|
+
* @returns {Promise<void>}
|
|
13
|
+
*/
|
|
14
|
+
export declare function mergeAdopted({ store, entities }: {
|
|
15
|
+
store: LocalStore;
|
|
16
|
+
entities: Record<string, Array<{
|
|
17
|
+
id: string;
|
|
18
|
+
}>>;
|
|
19
|
+
}): Promise<void>;
|
|
20
|
+
//# sourceMappingURL=adopt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adopt.d.ts","sourceRoot":"","sources":["../../src/storage/adopt.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAmBjD;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,EACjC,KAAK,EACL,QAAQ,EACT,EAAE;IACD,KAAK,EAAE,UAAU,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;CAChD,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBhB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* The local-to-connected adoption merge: copies the anonymous replica's
|
|
6
|
+
* decrypted payloads into the freshly opened connected replica. A copy
|
|
7
|
+
* (decrypt with the anonymous cipher, re-encrypt with the connected cipher) is
|
|
8
|
+
* the only possible mechanism -- the two replicas derive their per-collection
|
|
9
|
+
* keys from different seeds, so envelopes are not portable across them.
|
|
10
|
+
*
|
|
11
|
+
* Merge policy, per logical uuid (deterministic, replica-independent):
|
|
12
|
+
* - no connected doc under that uuid: insert.
|
|
13
|
+
* - a connected doc exists: the adopted payload replaces it only when it wins
|
|
14
|
+
* the same last-write-wins rule replication runs ({@link remotePayloadWins});
|
|
15
|
+
* a connected doc without LWW fields always loses to a stamped adopted one.
|
|
16
|
+
*
|
|
17
|
+
* Adopted payloads missing `updatedAt`/`deviceId` are stamped at adoption time
|
|
18
|
+
* (the sync layer's conflict resolution requires them); payloads that already
|
|
19
|
+
* carry them keep their original values, so a doc edited long ago does not
|
|
20
|
+
* suddenly outrank fresher remote edits.
|
|
21
|
+
*/
|
|
22
|
+
import { uuidv7 } from 'uuidv7';
|
|
23
|
+
import { lwwFields, remotePayloadWins } from '../sync/lww.js';
|
|
24
|
+
import { getDeviceId } from './storageManager.js';
|
|
25
|
+
/**
|
|
26
|
+
* The one-per-merge stamp applied to payloads missing their LWW fields.
|
|
27
|
+
*
|
|
28
|
+
* @returns {{ updatedAt: string, deviceId: string }}
|
|
29
|
+
*/
|
|
30
|
+
function adoptionStamp() {
|
|
31
|
+
let deviceId;
|
|
32
|
+
try {
|
|
33
|
+
deviceId = getDeviceId();
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// No localStorage (non-browser environments): an unpersisted id still
|
|
37
|
+
// gives the LWW tiebreak a deterministic value for this merge.
|
|
38
|
+
deviceId = uuidv7();
|
|
39
|
+
}
|
|
40
|
+
return { updatedAt: new Date().toISOString(), deviceId };
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Merges the collected anonymous-replica payloads into `store` (the already
|
|
44
|
+
* open connected replica) under the per-uuid LWW policy above. Runs before the
|
|
45
|
+
* first `hydrateAll`/sync start, so adopted rows enter the entity stores via
|
|
46
|
+
* normal hydration and reach the server as ordinary creates on first push.
|
|
47
|
+
*
|
|
48
|
+
* @param options {object}
|
|
49
|
+
* @param options.store {LocalStore} the open connected replica
|
|
50
|
+
* @param options.entities {Record<string, Array<{ id: string }>>} decrypted
|
|
51
|
+
* payloads per collection key, as collected from the anonymous replica
|
|
52
|
+
* @returns {Promise<void>}
|
|
53
|
+
*/
|
|
54
|
+
export async function mergeAdopted({ store, entities }) {
|
|
55
|
+
let stamp = null;
|
|
56
|
+
for (const [key, payloads] of Object.entries(entities)) {
|
|
57
|
+
const existing = new Map((await store.listEntities(key)).map(doc => [doc.id, doc]));
|
|
58
|
+
for (const payload of payloads) {
|
|
59
|
+
let adopted = payload;
|
|
60
|
+
let adoptedLww = lwwFields(payload);
|
|
61
|
+
if (!adoptedLww) {
|
|
62
|
+
stamp ??= adoptionStamp();
|
|
63
|
+
adopted = { ...payload, ...stamp };
|
|
64
|
+
adoptedLww = stamp;
|
|
65
|
+
}
|
|
66
|
+
const current = existing.get(payload.id);
|
|
67
|
+
if (!current) {
|
|
68
|
+
await store.insertEntity(key, adopted);
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
const currentLww = lwwFields(current);
|
|
72
|
+
if (!currentLww || remotePayloadWins(adoptedLww, currentLww)) {
|
|
73
|
+
await store.updateEntity(key, adopted);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=adopt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adopt.js","sourceRoot":"","sources":["../../src/storage/adopt.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGjD;;;;GAIG;AACH,SAAS,aAAa;IACpB,IAAI,QAAgB,CAAA;IACpB,IAAI,CAAC;QACH,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;QACtE,+DAA+D;QAC/D,QAAQ,GAAG,MAAM,EAAE,CAAA;IACrB,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAA;AAC1D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EACjC,KAAK,EACL,QAAQ,EAIT;IACC,IAAI,KAAK,GAAmD,IAAI,CAAA;IAChE,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAC1D,CAAA;QACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,GAAG,OAAO,CAAA;YACrB,IAAI,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;YACnC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,KAAK,KAAK,aAAa,EAAE,CAAA;gBACzB,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,EAAE,CAAA;gBAClC,UAAU,GAAG,KAAK,CAAA;YACpB,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YACxC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;gBACtC,SAAQ;YACV,CAAC;YACD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;YACrC,IAAI,CAAC,UAAU,IAAI,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC7D,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YACxC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entityStore.d.ts","sourceRoot":"","sources":["../../src/storage/entityStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAU,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"entityStore.d.ts","sourceRoot":"","sources":["../../src/storage/entityStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAU,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAInE,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IACnD;;OAEG;IACH,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACpB;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B;;OAEG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC;;OAEG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC;;OAEG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC;;;;;OAKG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;IAC/B;;;;;;;OAOG;IACH,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;IACvB;;;OAGG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACxD,aAAa,EAAE,MAAM,GACpB,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAuGzC"}
|
|
@@ -19,21 +19,7 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import { create } from 'zustand';
|
|
21
21
|
import { requireStore } from './storageManager.js';
|
|
22
|
-
import { remotePayloadWins } from '../sync/lww.js';
|
|
23
|
-
/**
|
|
24
|
-
* Reads the LWW fields off a doc when it carries them. The store is generic
|
|
25
|
-
* over `{ id: string }`, so docs without `updatedAt`/`deviceId` are legal;
|
|
26
|
-
* for those the patch path falls back to blind last-patch-wins.
|
|
27
|
-
*
|
|
28
|
-
* @param doc {unknown}
|
|
29
|
-
* @returns {{ updatedAt: string, deviceId: string } | null}
|
|
30
|
-
*/
|
|
31
|
-
function lwwFields(doc) {
|
|
32
|
-
const { updatedAt, deviceId } = doc;
|
|
33
|
-
return typeof updatedAt === 'string' && typeof deviceId === 'string'
|
|
34
|
-
? { updatedAt, deviceId }
|
|
35
|
-
: null;
|
|
36
|
-
}
|
|
22
|
+
import { lwwFields, remotePayloadWins } from '../sync/lww.js';
|
|
37
23
|
/**
|
|
38
24
|
* Builds a zustand hook for the collection whose localStore key is `collectionKey`.
|
|
39
25
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entityStore.js","sourceRoot":"","sources":["../../src/storage/entityStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,MAAM,EAAqC,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"entityStore.js","sourceRoot":"","sources":["../../src/storage/entityStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,7 +82,7 @@ export declare class LocalStore {
|
|
|
82
82
|
* @param payload {EntityPayload} the plaintext entity (carries its own uuid)
|
|
83
83
|
* @returns {Promise<void>}
|
|
84
84
|
*/
|
|
85
|
-
insertEntity(key: string, payload:
|
|
85
|
+
insertEntity<T extends EntityPayload>(key: string, payload: T): Promise<void>;
|
|
86
86
|
/**
|
|
87
87
|
* Re-encrypts `payload` in place under its existing envelope id, advancing the
|
|
88
88
|
* envelope `sequence` (the mutable-head update). The row keeps its primary key;
|
|
@@ -92,7 +92,7 @@ export declare class LocalStore {
|
|
|
92
92
|
* @param payload {EntityPayload}
|
|
93
93
|
* @returns {Promise<void>}
|
|
94
94
|
*/
|
|
95
|
-
updateEntity(key: string, payload:
|
|
95
|
+
updateEntity<T extends EntityPayload>(key: string, payload: T): Promise<void>;
|
|
96
96
|
/**
|
|
97
97
|
* Inserts the entity if the collection has no row for its uuid yet, otherwise
|
|
98
98
|
* re-encrypts it in place. The hydration index is the source of truth for
|
|
@@ -103,7 +103,7 @@ export declare class LocalStore {
|
|
|
103
103
|
* @param payload {EntityPayload}
|
|
104
104
|
* @returns {Promise<void>}
|
|
105
105
|
*/
|
|
106
|
-
upsertEntity(key: string, payload:
|
|
106
|
+
upsertEntity<T extends EntityPayload>(key: string, payload: T): Promise<void>;
|
|
107
107
|
/**
|
|
108
108
|
* Tombstones the entity's row (RxDB soft delete) so the deletion replicates.
|
|
109
109
|
*
|
|
@@ -112,6 +112,15 @@ export declare class LocalStore {
|
|
|
112
112
|
* @returns {Promise<void>}
|
|
113
113
|
*/
|
|
114
114
|
deleteEntity(key: string, uuid: string): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* The number of live (non-tombstoned) rows in a collection, without
|
|
117
|
+
* decrypting any of them (e.g. the "is there anything to adopt?" check
|
|
118
|
+
* behind a pre-login adoption prompt).
|
|
119
|
+
*
|
|
120
|
+
* @param key {string}
|
|
121
|
+
* @returns {Promise<number>}
|
|
122
|
+
*/
|
|
123
|
+
countEntities(key: string): Promise<number>;
|
|
115
124
|
/**
|
|
116
125
|
* Decrypts every live row of a collection into its plaintext payload, and
|
|
117
126
|
* (re)builds the `uuid -> envelopeId` index as a side effect of hydration.
|
|
@@ -199,6 +208,20 @@ export declare class LocalStore {
|
|
|
199
208
|
* @returns {Promise<void>}
|
|
200
209
|
*/
|
|
201
210
|
remove(): Promise<void>;
|
|
211
|
+
/**
|
|
212
|
+
* Deletes a database and all its data by name, without opening it (the
|
|
213
|
+
* post-adoption cleanup of a replica that is already closed).
|
|
214
|
+
*
|
|
215
|
+
* @param options {object}
|
|
216
|
+
* @param options.dbName {string} the full per-controller database name
|
|
217
|
+
* @param [options.storage] {RxStorage<unknown, unknown>} defaults to
|
|
218
|
+
* Dexie/IndexedDB; must match the storage the database was created with
|
|
219
|
+
* @returns {Promise<void>}
|
|
220
|
+
*/
|
|
221
|
+
static removeDatabase({ dbName, storage }: {
|
|
222
|
+
dbName: string;
|
|
223
|
+
storage?: RxStorage<unknown, unknown>;
|
|
224
|
+
}): Promise<void>;
|
|
202
225
|
}
|
|
203
226
|
export {};
|
|
204
227
|
//# 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,
|
|
1
|
+
{"version":3,"file":"localStore.d.ts","sourceRoot":"","sources":["../../src/storage/localStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* SAME envelope id with `sequence`+1 (the mutable-head model); delete is an RxDB
|
|
21
21
|
* soft-delete tombstone.
|
|
22
22
|
*/
|
|
23
|
-
import { createRxDatabase } from 'rxdb/plugins/core';
|
|
23
|
+
import { createRxDatabase, removeRxDatabase } from 'rxdb/plugins/core';
|
|
24
24
|
import { getRxStorageDexie } from 'rxdb/plugins/storage-dexie';
|
|
25
25
|
import { DEFAULT_DB_NAME } from '../config.js';
|
|
26
26
|
import { syncedDocSchema, createDocCipher, makeLwwConflictHandler, remotePayloadWins } from '../sync/index.js';
|
|
@@ -262,6 +262,18 @@ export class LocalStore {
|
|
|
262
262
|
}
|
|
263
263
|
index.delete(uuid);
|
|
264
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* The number of live (non-tombstoned) rows in a collection, without
|
|
267
|
+
* decrypting any of them (e.g. the "is there anything to adopt?" check
|
|
268
|
+
* behind a pre-login adoption prompt).
|
|
269
|
+
*
|
|
270
|
+
* @param key {string}
|
|
271
|
+
* @returns {Promise<number>}
|
|
272
|
+
*/
|
|
273
|
+
async countEntities(key) {
|
|
274
|
+
const docs = await this._collection(key).find().exec();
|
|
275
|
+
return docs.length;
|
|
276
|
+
}
|
|
265
277
|
/**
|
|
266
278
|
* Decrypts every live row of a collection into its plaintext payload, and
|
|
267
279
|
* (re)builds the `uuid -> envelopeId` index as a side effect of hydration.
|
|
@@ -422,5 +434,18 @@ export class LocalStore {
|
|
|
422
434
|
async remove() {
|
|
423
435
|
await this._db.remove();
|
|
424
436
|
}
|
|
437
|
+
/**
|
|
438
|
+
* Deletes a database and all its data by name, without opening it (the
|
|
439
|
+
* post-adoption cleanup of a replica that is already closed).
|
|
440
|
+
*
|
|
441
|
+
* @param options {object}
|
|
442
|
+
* @param options.dbName {string} the full per-controller database name
|
|
443
|
+
* @param [options.storage] {RxStorage<unknown, unknown>} defaults to
|
|
444
|
+
* Dexie/IndexedDB; must match the storage the database was created with
|
|
445
|
+
* @returns {Promise<void>}
|
|
446
|
+
*/
|
|
447
|
+
static async removeDatabase({ dbName, storage }) {
|
|
448
|
+
await removeRxDatabase(dbName, storage ?? getRxStorageDexie());
|
|
449
|
+
}
|
|
425
450
|
}
|
|
426
451
|
//# sourceMappingURL=localStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localStore.js","sourceRoot":"","sources":["../../src/storage/localStore.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"localStore.js","sourceRoot":"","sources":["../../src/storage/localStore.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/index.d.ts
CHANGED
|
@@ -17,5 +17,5 @@ export { createWasSyncPort, errorStatus, errorMessage } from './wasSyncPort.js';
|
|
|
17
17
|
export { withFeedMasterRead } from './feedMasterPort.js';
|
|
18
18
|
export { createDocCipher, isEncryptedEnvelope, type DocCipher } from './docCipher.js';
|
|
19
19
|
export { makeLwwConflictHandler } from './lwwConflictHandler.js';
|
|
20
|
-
export { remotePayloadWins } from './lww.js';
|
|
20
|
+
export { lwwFields, remotePayloadWins } from './lww.js';
|
|
21
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/sync/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;GAMG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;GAMG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA"}
|
package/dist/sync/index.js
CHANGED
|
@@ -17,5 +17,5 @@ export { createWasSyncPort, errorStatus, errorMessage } from './wasSyncPort.js';
|
|
|
17
17
|
export { withFeedMasterRead } from './feedMasterPort.js';
|
|
18
18
|
export { createDocCipher, isEncryptedEnvelope } from './docCipher.js';
|
|
19
19
|
export { makeLwwConflictHandler } from './lwwConflictHandler.js';
|
|
20
|
-
export { remotePayloadWins } from './lww.js';
|
|
20
|
+
export { lwwFields, remotePayloadWins } from './lww.js';
|
|
21
21
|
//# sourceMappingURL=index.js.map
|
package/dist/sync/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;GAMG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EACL,iBAAiB,EACjB,UAAU,EAEX,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAQjB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EACL,eAAe,EACf,mBAAmB,EAEpB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;GAMG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EACL,iBAAiB,EACjB,UAAU,EAEX,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAQjB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EACL,eAAe,EACf,mBAAmB,EAEpB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA"}
|
package/dist/sync/lww.d.ts
CHANGED
|
@@ -26,4 +26,16 @@ export declare function remotePayloadWins(remote: {
|
|
|
26
26
|
updatedAt: string;
|
|
27
27
|
deviceId: string;
|
|
28
28
|
}): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Reads the LWW fields off a doc when it carries them. Storage payloads are
|
|
31
|
+
* generic over `{ id: string }`, so docs without `updatedAt`/`deviceId` are
|
|
32
|
+
* legal; callers fall back to their own rule for those.
|
|
33
|
+
*
|
|
34
|
+
* @param doc {unknown}
|
|
35
|
+
* @returns {{ updatedAt: string, deviceId: string } | null}
|
|
36
|
+
*/
|
|
37
|
+
export declare function lwwFields(doc: unknown): {
|
|
38
|
+
updatedAt: string;
|
|
39
|
+
deviceId: string;
|
|
40
|
+
} | null;
|
|
29
41
|
//# sourceMappingURL=lww.d.ts.map
|
package/dist/sync/lww.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lww.d.ts","sourceRoot":"","sources":["../../src/sync/lww.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;GAQG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC/C,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAKT"}
|
|
1
|
+
{"version":3,"file":"lww.d.ts","sourceRoot":"","sources":["../../src/sync/lww.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;GAQG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC/C,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAKT;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,OAAO,GACX;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQhD"}
|
package/dist/sync/lww.js
CHANGED
|
@@ -25,4 +25,18 @@ export function remotePayloadWins(remote, local) {
|
|
|
25
25
|
}
|
|
26
26
|
return remote.deviceId > local.deviceId;
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Reads the LWW fields off a doc when it carries them. Storage payloads are
|
|
30
|
+
* generic over `{ id: string }`, so docs without `updatedAt`/`deviceId` are
|
|
31
|
+
* legal; callers fall back to their own rule for those.
|
|
32
|
+
*
|
|
33
|
+
* @param doc {unknown}
|
|
34
|
+
* @returns {{ updatedAt: string, deviceId: string } | null}
|
|
35
|
+
*/
|
|
36
|
+
export function lwwFields(doc) {
|
|
37
|
+
const { updatedAt, deviceId } = doc;
|
|
38
|
+
return typeof updatedAt === 'string' && typeof deviceId === 'string'
|
|
39
|
+
? { updatedAt, deviceId }
|
|
40
|
+
: null;
|
|
41
|
+
}
|
|
28
42
|
//# sourceMappingURL=lww.js.map
|
package/dist/sync/lww.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lww.js","sourceRoot":"","sources":["../../src/sync/lww.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;GAQG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA+C,EAC/C,KAA8C;IAE9C,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;AACzC,CAAC"}
|
|
1
|
+
{"version":3,"file":"lww.js","sourceRoot":"","sources":["../../src/sync/lww.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;GAQG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA+C,EAC/C,KAA8C;IAE9C,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;AACzC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CACvB,GAAY;IAEZ,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,GAG/B,CAAA;IACD,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAClE,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE;QACzB,CAAC,CAAC,IAAI,CAAA;AACV,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@interop/was-react",
|
|
3
3
|
"description": "React library for building 'Bring Your Own Everything' (BYOE) apps on Wallet Attached Storage: DID Auth login via CHAPI wallet, local-first encrypted storage, and background sync to a WAS server.",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.7",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "pnpm run clear && tsc",
|