@interop/was-react 0.8.2 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -44
- package/dist/auth/chapi.d.ts.map +1 -1
- package/dist/auth/chapi.js +16 -5
- package/dist/auth/chapi.js.map +1 -1
- package/dist/auth/loginFlow.d.ts.map +1 -1
- package/dist/auth/loginFlow.js +55 -49
- package/dist/auth/loginFlow.js.map +1 -1
- package/dist/auth/verifyResponse.d.ts.map +1 -1
- package/dist/auth/verifyResponse.js +27 -10
- package/dist/auth/verifyResponse.js.map +1 -1
- package/dist/auth/walletRequestTypes.d.ts +9 -90
- package/dist/auth/walletRequestTypes.d.ts.map +1 -1
- package/dist/config.d.ts +9 -9
- package/dist/config.js +0 -0
- package/dist/dev/provisionDevGrants.d.ts.map +1 -1
- package/dist/dev/provisionDevGrants.js +18 -19
- package/dist/dev/provisionDevGrants.js.map +1 -1
- package/dist/grants.d.ts +19 -9
- package/dist/grants.d.ts.map +1 -1
- package/dist/grants.js +17 -2
- package/dist/grants.js.map +1 -1
- package/dist/identity/agents.d.ts +1 -1
- package/dist/identity/agents.d.ts.map +1 -1
- package/dist/identity/agents.js +10 -25
- package/dist/identity/agents.js.map +1 -1
- package/dist/identity/appSession.d.ts +27 -0
- package/dist/identity/appSession.d.ts.map +1 -1
- package/dist/identity/appSession.js +51 -13
- package/dist/identity/appSession.js.map +1 -1
- package/dist/identity/seedCredential.d.ts +7 -0
- package/dist/identity/seedCredential.d.ts.map +1 -1
- package/dist/identity/seedCredential.js +11 -14
- package/dist/identity/seedCredential.js.map +1 -1
- package/dist/identity/seedStore.d.ts +19 -0
- package/dist/identity/seedStore.d.ts.map +1 -1
- package/dist/identity/seedStore.js +40 -13
- package/dist/identity/seedStore.js.map +1 -1
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/dist/jsonLd.d.ts +19 -0
- package/dist/jsonLd.d.ts.map +1 -0
- package/dist/jsonLd.js +24 -0
- package/dist/jsonLd.js.map +1 -0
- package/dist/mui/AdoptDialog.d.ts.map +1 -1
- package/dist/mui/AdoptDialog.js +7 -3
- package/dist/mui/AdoptDialog.js.map +1 -1
- package/dist/mui/ClearDataDialog.d.ts.map +1 -1
- package/dist/mui/ClearDataDialog.js +12 -11
- package/dist/mui/ClearDataDialog.js.map +1 -1
- package/dist/mui/ConfirmDialog.d.ts +35 -0
- package/dist/mui/ConfirmDialog.d.ts.map +1 -0
- package/dist/mui/ConfirmDialog.js +18 -0
- package/dist/mui/ConfirmDialog.js.map +1 -0
- package/dist/mui/LogoutDialog.d.ts.map +1 -1
- package/dist/mui/LogoutDialog.js +7 -3
- package/dist/mui/LogoutDialog.js.map +1 -1
- package/dist/react/documentApp.d.ts +29 -0
- package/dist/react/documentApp.d.ts.map +1 -1
- package/dist/react/documentApp.js +9 -38
- package/dist/react/documentApp.js.map +1 -1
- package/dist/react/hooks.d.ts +13 -7
- package/dist/react/hooks.d.ts.map +1 -1
- package/dist/react/hooks.js +17 -11
- package/dist/react/hooks.js.map +1 -1
- package/dist/session/authStore.d.ts +9 -9
- package/dist/session/authStore.d.ts.map +1 -1
- package/dist/session/authStore.js +203 -112
- package/dist/session/authStore.js.map +1 -1
- package/dist/storage/adopt.d.ts +5 -1
- package/dist/storage/adopt.d.ts.map +1 -1
- package/dist/storage/adopt.js +8 -24
- package/dist/storage/adopt.js.map +1 -1
- package/dist/storage/entityStore.d.ts.map +1 -1
- package/dist/storage/entityStore.js +27 -20
- package/dist/storage/entityStore.js.map +1 -1
- package/dist/storage/localStore.d.ts +12 -6
- package/dist/storage/localStore.d.ts.map +1 -1
- package/dist/storage/localStore.js +146 -77
- package/dist/storage/localStore.js.map +1 -1
- package/dist/storage/rehydrate.d.ts.map +1 -1
- package/dist/storage/rehydrate.js +20 -4
- package/dist/storage/rehydrate.js.map +1 -1
- package/dist/storage/sharedCollectionReader.d.ts +1 -1
- package/dist/storage/sharedCollectionReader.d.ts.map +1 -1
- package/dist/storage/sharedCollectionReader.js +79 -64
- package/dist/storage/sharedCollectionReader.js.map +1 -1
- package/dist/storage/storageManager.d.ts +3 -1
- package/dist/storage/storageManager.d.ts.map +1 -1
- package/dist/storage/storageManager.js +20 -6
- package/dist/storage/storageManager.js.map +1 -1
- package/dist/storage/syncController.d.ts +1 -16
- package/dist/storage/syncController.d.ts.map +1 -1
- package/dist/storage/syncController.js +48 -37
- package/dist/storage/syncController.js.map +1 -1
- package/dist/storage/syncStatusStore.d.ts +8 -6
- package/dist/storage/syncStatusStore.d.ts.map +1 -1
- package/dist/storage/syncStatusStore.js +6 -6
- package/dist/storage/syncStatusStore.js.map +1 -1
- package/dist/storage/wasRemoteStore.d.ts +34 -2
- package/dist/storage/wasRemoteStore.d.ts.map +1 -1
- package/dist/storage/wasRemoteStore.js +45 -7
- package/dist/storage/wasRemoteStore.js.map +1 -1
- package/dist/storage/wasSync.d.ts.map +1 -1
- package/dist/storage/wasSync.js +47 -38
- package/dist/storage/wasSync.js.map +1 -1
- package/dist/sync/changesQuery.d.ts.map +1 -1
- package/dist/sync/changesQuery.js +2 -9
- package/dist/sync/changesQuery.js.map +1 -1
- package/dist/sync/docCipher.d.ts +23 -10
- package/dist/sync/docCipher.d.ts.map +1 -1
- package/dist/sync/docCipher.js +17 -11
- package/dist/sync/docCipher.js.map +1 -1
- package/dist/sync/feedMasterPort.d.ts +6 -0
- package/dist/sync/feedMasterPort.d.ts.map +1 -1
- package/dist/sync/feedMasterPort.js +82 -37
- package/dist/sync/feedMasterPort.js.map +1 -1
- package/dist/sync/index.d.ts +6 -5
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +6 -3
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/lww.d.ts +27 -18
- package/dist/sync/lww.d.ts.map +1 -1
- package/dist/sync/lww.js +35 -8
- package/dist/sync/lww.js.map +1 -1
- package/dist/sync/lwwConflictHandler.d.ts +15 -14
- package/dist/sync/lwwConflictHandler.d.ts.map +1 -1
- package/dist/sync/lwwConflictHandler.js +37 -26
- package/dist/sync/lwwConflictHandler.js.map +1 -1
- package/dist/sync/pushWrites.d.ts +9 -9
- package/dist/sync/pushWrites.d.ts.map +1 -1
- package/dist/sync/pushWrites.js +102 -68
- package/dist/sync/pushWrites.js.map +1 -1
- package/dist/sync/syncedDocSchema.d.ts.map +1 -1
- package/dist/sync/syncedDocSchema.js +3 -0
- package/dist/sync/syncedDocSchema.js.map +1 -1
- package/dist/sync/types.d.ts +115 -15
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/sync/types.js +36 -18
- package/dist/sync/types.js.map +1 -1
- package/dist/sync/wasSyncPort.d.ts +0 -11
- package/dist/sync/wasSyncPort.d.ts.map +1 -1
- package/dist/sync/wasSyncPort.js +20 -36
- package/dist/sync/wasSyncPort.js.map +1 -1
- package/package.json +6 -6
- package/dist/identity/initAppSession.d.ts +0 -27
- package/dist/identity/initAppSession.d.ts.map +0 -1
- package/dist/identity/initAppSession.js +0 -30
- package/dist/identity/initAppSession.js.map +0 -1
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
import { createRxDatabase, removeRxDatabase } from 'rxdb/plugins/core';
|
|
28
28
|
import { getRxStorageDexie } from 'rxdb/plugins/storage-dexie';
|
|
29
29
|
import { DEFAULT_DB_NAME, validateCollections, validateSharedCollections } from '../config.js';
|
|
30
|
-
import {
|
|
31
|
-
import { syncedDocSchema, createDocCipher, createPlaintextDocCodec, makeLwwConflictHandler, remotePayloadWins } from '../sync/index.js';
|
|
30
|
+
import { DescriptorRefreshPolicy } from '@interop/wallet-core/descriptors';
|
|
31
|
+
import { syncedDocSchema, createDocCipher, createPlaintextDocCodec, isUnknownEpochError, makeLwwConflictHandler, remotePayloadWins } from '../sync/index.js';
|
|
32
32
|
/**
|
|
33
33
|
* A stable, RxDB-safe database name per controller DID (FNV-1a hex), so two
|
|
34
34
|
* wallet users on one browser never collide on the same local database.
|
|
@@ -57,6 +57,9 @@ export class LocalStore {
|
|
|
57
57
|
#collections;
|
|
58
58
|
#ciphers;
|
|
59
59
|
#configs;
|
|
60
|
+
// The reverse of `#configs`: WAS collection id -> logical key, so a lookup by
|
|
61
|
+
// wire id (a fetched remote descriptor) costs no registry scan.
|
|
62
|
+
#keyByCollectionId;
|
|
60
63
|
// Per-collection logical-uuid -> envelope (RxDB primary key) index.
|
|
61
64
|
#index;
|
|
62
65
|
// The app's identity KAK and its resolver: the ONE key material every
|
|
@@ -67,19 +70,43 @@ export class LocalStore {
|
|
|
67
70
|
// The encryption descriptor each private collection's current cipher was built
|
|
68
71
|
// from (keyed by collection logical key), so a descriptor change can be detected.
|
|
69
72
|
#descriptors;
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
//
|
|
73
|
-
#
|
|
73
|
+
// Reads a private collection's fresh encryption descriptor (a live Collection
|
|
74
|
+
// Description read); injected once a remote store exists. Absent offline /
|
|
75
|
+
// local-only, in which case an unknown epoch simply propagates.
|
|
76
|
+
#descriptorSource;
|
|
77
|
+
// The once-per-collection-per-session unknown-epoch guard, and the in-flight
|
|
78
|
+
// refresh each collection's concurrent decrypts share (see `#spendRefresh`).
|
|
79
|
+
#refreshPolicy;
|
|
80
|
+
#refreshing = new Map();
|
|
74
81
|
constructor({ db, collections, ciphers, configs, keyAgreementKey, keyResolver, descriptors }) {
|
|
75
82
|
this.#db = db;
|
|
76
83
|
this.#collections = collections;
|
|
77
84
|
this.#ciphers = ciphers;
|
|
78
85
|
this.#configs = configs;
|
|
86
|
+
this.#keyByCollectionId = new Map(Object.entries(configs).map(([key, config]) => [config.id, key]));
|
|
79
87
|
this.#index = {};
|
|
80
88
|
this.#keyAgreementKey = keyAgreementKey;
|
|
81
89
|
this.#keyResolver = keyResolver;
|
|
82
90
|
this.#descriptors = descriptors;
|
|
91
|
+
// The whole swap an unknown epoch calls for, handed to the policy that
|
|
92
|
+
// rations it: re-read the collection's descriptor through the installed
|
|
93
|
+
// source and rebuild that collection's cipher from it. With no source, or
|
|
94
|
+
// a collection the registry does not carry, or a read that answers no
|
|
95
|
+
// descriptor, nothing is swapped and the retry fails as the first attempt
|
|
96
|
+
// did.
|
|
97
|
+
this.#refreshPolicy = new DescriptorRefreshPolicy({
|
|
98
|
+
refresh: async ({ collectionId }) => {
|
|
99
|
+
const key = this.#keyByCollectionId.get(collectionId);
|
|
100
|
+
const source = this.#descriptorSource;
|
|
101
|
+
if (key === undefined || !source) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const encryption = await source.collectionEncryption({ collectionId });
|
|
105
|
+
if (encryption) {
|
|
106
|
+
await this.rebuildCipher({ key, encryption });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
});
|
|
83
110
|
}
|
|
84
111
|
/**
|
|
85
112
|
* Opens (or creates) the store: builds one cipher per PRIVATE collection on
|
|
@@ -120,12 +147,15 @@ export class LocalStore {
|
|
|
120
147
|
const ciphers = {};
|
|
121
148
|
// The descriptor each private cipher was built from, keyed by logical key.
|
|
122
149
|
const builtDescriptors = {};
|
|
123
|
-
|
|
150
|
+
// Build every collection's cipher concurrently: each private one runs real
|
|
151
|
+
// asymmetric crypto (an ECDH unwrap of the epoch secret) on the boot
|
|
152
|
+
// critical path, and no collection's cipher depends on another's.
|
|
153
|
+
await Promise.all(collections.map(async ({ key, id, visibility }) => {
|
|
124
154
|
// A public collection is stored plaintext: no key derivation, no EDV
|
|
125
155
|
// cipher -- just the pass-through codec behind the same seam.
|
|
126
156
|
if (visibility === 'public') {
|
|
127
157
|
ciphers[key] = createPlaintextDocCodec({ collectionId: id });
|
|
128
|
-
|
|
158
|
+
return;
|
|
129
159
|
}
|
|
130
160
|
const encryption = descriptors[id];
|
|
131
161
|
ciphers[key] = await createDocCipher({
|
|
@@ -135,7 +165,7 @@ export class LocalStore {
|
|
|
135
165
|
...(encryption && { encryption })
|
|
136
166
|
});
|
|
137
167
|
builtDescriptors[key] = encryption;
|
|
138
|
-
}
|
|
168
|
+
}));
|
|
139
169
|
const db = await createRxDatabase({
|
|
140
170
|
name: dbName,
|
|
141
171
|
storage: storage ?? getRxStorageDexie(),
|
|
@@ -150,6 +180,12 @@ export class LocalStore {
|
|
|
150
180
|
// `updatedAt` (clientId tiebreak) rather than RxDB's default master-wins.
|
|
151
181
|
// On a public collection the codec is pass-through, so the handler reads
|
|
152
182
|
// those fields directly off the plaintext payload.
|
|
183
|
+
// The handler decrypts through the store's epoch-REFRESHING path once the
|
|
184
|
+
// instance exists (`storeHolder` is assigned below, before any replication
|
|
185
|
+
// can run), so a master written under an unseen key epoch triggers the
|
|
186
|
+
// one-shot descriptor re-read + cipher rebuild instead of scoring the
|
|
187
|
+
// master as undecryptable.
|
|
188
|
+
const storeHolder = { current: null };
|
|
153
189
|
const collectionsConfig = Object.fromEntries(collections.map(({ key }) => {
|
|
154
190
|
if (!ciphers[key]) {
|
|
155
191
|
throw new Error(`No cipher for collection "${key}".`);
|
|
@@ -160,20 +196,13 @@ export class LocalStore {
|
|
|
160
196
|
schema: syncedDocSchema(),
|
|
161
197
|
// Reads the CURRENT cipher for this key at decrypt time (not a
|
|
162
198
|
// captured reference), so a `rebuildCipher` after a descriptor change
|
|
163
|
-
// takes effect here too.
|
|
164
|
-
|
|
165
|
-
conflictHandler: makeLwwConflictHandler(envelope => {
|
|
166
|
-
const cipher = ciphers[key];
|
|
167
|
-
if (!cipher) {
|
|
168
|
-
throw new Error(`No cipher for collection "${key}".`);
|
|
169
|
-
}
|
|
170
|
-
return cipher.decrypt({ envelope });
|
|
171
|
-
})
|
|
199
|
+
// takes effect here too.
|
|
200
|
+
conflictHandler: makeLwwConflictHandler(envelope => storeHolder.current.decryptEnvelope(key, envelope))
|
|
172
201
|
}
|
|
173
202
|
];
|
|
174
203
|
}));
|
|
175
204
|
const collectionsMap = (await db.addCollections(collectionsConfig));
|
|
176
|
-
|
|
205
|
+
const store = new LocalStore({
|
|
177
206
|
db,
|
|
178
207
|
collections: collectionsMap,
|
|
179
208
|
ciphers,
|
|
@@ -182,6 +211,8 @@ export class LocalStore {
|
|
|
182
211
|
keyResolver,
|
|
183
212
|
descriptors: builtDescriptors
|
|
184
213
|
});
|
|
214
|
+
storeHolder.current = store;
|
|
215
|
+
return store;
|
|
185
216
|
}
|
|
186
217
|
#collection(key) {
|
|
187
218
|
const collection = this.#collections[key];
|
|
@@ -213,43 +244,73 @@ export class LocalStore {
|
|
|
213
244
|
return cipher;
|
|
214
245
|
}
|
|
215
246
|
/**
|
|
216
|
-
* Installs the
|
|
217
|
-
*
|
|
218
|
-
*
|
|
219
|
-
*
|
|
247
|
+
* Installs the encryption-descriptor source: one live Collection Description
|
|
248
|
+
* read per collection id. Called once a remote store exists; a decrypt that
|
|
249
|
+
* meets an unknown key epoch uses it to re-read the descriptor and rebuild
|
|
250
|
+
* that collection's cipher, at most once per collection per session.
|
|
220
251
|
*
|
|
221
|
-
* @param
|
|
252
|
+
* @param source {EncryptionDescriptorSource}
|
|
222
253
|
* @returns {void}
|
|
223
254
|
*/
|
|
224
|
-
|
|
225
|
-
this.#
|
|
255
|
+
setDescriptorSource(source) {
|
|
256
|
+
this.#descriptorSource = source;
|
|
226
257
|
}
|
|
227
258
|
/**
|
|
228
|
-
* Decrypts an at-rest envelope through the collection's cipher,
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
*
|
|
233
|
-
*
|
|
259
|
+
* Decrypts an at-rest envelope through the collection's cipher, recovering
|
|
260
|
+
* from a stale epoch descriptor: when the cipher reports an unknown epoch (an
|
|
261
|
+
* envelope written under an epoch this device has not seen -- a rekey on
|
|
262
|
+
* another device / a wallet revoke-rotation), spend the collection's one
|
|
263
|
+
* descriptor refresh and retry the decrypt once. A second failure propagates
|
|
264
|
+
* rather than looping, and so does an unknown epoch met after the refresh is
|
|
265
|
+
* spent.
|
|
234
266
|
*/
|
|
235
267
|
async #decryptWithRefresh(key, envelope) {
|
|
236
268
|
try {
|
|
237
269
|
return await this.#cipher(key).decrypt({ envelope });
|
|
238
270
|
}
|
|
239
271
|
catch (err) {
|
|
240
|
-
if (!(err
|
|
272
|
+
if (!isUnknownEpochError(err) || !this.#descriptorSource) {
|
|
241
273
|
throw err;
|
|
242
274
|
}
|
|
243
|
-
const { id } = this.collectionConfig(key);
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
// One retry only: a repeat UnknownEpochError propagates (no loop).
|
|
275
|
+
const { id: collectionId } = this.collectionConfig(key);
|
|
276
|
+
await this.#spendRefresh(collectionId);
|
|
277
|
+
// One retry, under the (possibly) swapped cipher. When the refresh was
|
|
278
|
+
// already spent this is a purely local re-attempt that fails the same
|
|
279
|
+
// way, so a genuinely foreign envelope still surfaces its unknown epoch
|
|
280
|
+
// and never buys a second description read.
|
|
250
281
|
return await this.#cipher(key).decrypt({ envelope });
|
|
251
282
|
}
|
|
252
283
|
}
|
|
284
|
+
/**
|
|
285
|
+
* Spends one collection's single unknown-epoch descriptor refresh for this
|
|
286
|
+
* session, resolving once it has been spent -- by this caller or by a
|
|
287
|
+
* concurrent one.
|
|
288
|
+
*
|
|
289
|
+
* `DescriptorRefreshPolicy` owns the once-per-collection-per-session guard
|
|
290
|
+
* (and the `reset` contract {@link applyRemoteDescriptor} honors); the promise
|
|
291
|
+
* memo on top of it is what makes CONCURRENT decrypts share the single
|
|
292
|
+
* re-read. {@link listEntities} decrypts a whole collection with
|
|
293
|
+
* `Promise.all`, so without it the first row to report an unknown epoch would
|
|
294
|
+
* win the guard and every other row would fail against the still-stale
|
|
295
|
+
* cipher, failing the hydrate outright. (Upstream's
|
|
296
|
+
* `createRefreshingEdvDocCipher` memoizes its own refresh the same way; the
|
|
297
|
+
* policy exposes no equivalent, because its `readWithRefresh` retries the
|
|
298
|
+
* whole read rather than one envelope.)
|
|
299
|
+
*/
|
|
300
|
+
#spendRefresh(collectionId) {
|
|
301
|
+
let pending = this.#refreshing.get(collectionId);
|
|
302
|
+
if (!pending) {
|
|
303
|
+
pending = this.#refreshPolicy.readWithRefresh({
|
|
304
|
+
collectionId,
|
|
305
|
+
// A read that only ever reports an unknown epoch: the value is not
|
|
306
|
+
// what is wanted here, the refresh is. The decrypt and its one retry
|
|
307
|
+
// stay at the call site, where the envelope is.
|
|
308
|
+
read: async () => ({ value: undefined, unknownEpoch: true })
|
|
309
|
+
});
|
|
310
|
+
this.#refreshing.set(collectionId, pending);
|
|
311
|
+
}
|
|
312
|
+
return pending;
|
|
313
|
+
}
|
|
253
314
|
/**
|
|
254
315
|
* Rebuilds one private collection's cipher from a new encryption descriptor, on
|
|
255
316
|
* the same identity KAK the store was opened with. A public (plaintext)
|
|
@@ -281,17 +342,22 @@ export class LocalStore {
|
|
|
281
342
|
* first-ever epochs), so subsequent writes stamp the current epoch. Returns
|
|
282
343
|
* whether a rebuild happened. Unknown / public collections are ignored.
|
|
283
344
|
*
|
|
345
|
+
* Installing a fresh descriptor here also RE-ARMS the collection's
|
|
346
|
+
* unknown-epoch refresh (the policy's documented `reset` contract): this path
|
|
347
|
+
* is the sync bootstrap's own install, so the next unknown epoch after it is
|
|
348
|
+
* evidence of a NEW rotation elsewhere and deserves its own re-read.
|
|
349
|
+
*
|
|
284
350
|
* @param options {object}
|
|
285
351
|
* @param options.collectionId {string} the WAS collection id
|
|
286
352
|
* @param options.encryption {CollectionEncryption} the fetched descriptor
|
|
287
353
|
* @returns {Promise<boolean>}
|
|
288
354
|
*/
|
|
289
355
|
async applyRemoteDescriptor({ collectionId, encryption }) {
|
|
290
|
-
const
|
|
291
|
-
if (
|
|
356
|
+
const key = this.#keyByCollectionId.get(collectionId);
|
|
357
|
+
if (key === undefined) {
|
|
292
358
|
return false;
|
|
293
359
|
}
|
|
294
|
-
const
|
|
360
|
+
const config = this.collectionConfig(key);
|
|
295
361
|
if (config.visibility === 'public') {
|
|
296
362
|
return false;
|
|
297
363
|
}
|
|
@@ -299,36 +365,23 @@ export class LocalStore {
|
|
|
299
365
|
return false;
|
|
300
366
|
}
|
|
301
367
|
await this.rebuildCipher({ key, encryption });
|
|
368
|
+
this.#refreshPolicy.reset({ collectionId });
|
|
369
|
+
this.#refreshing.delete(collectionId);
|
|
302
370
|
return true;
|
|
303
371
|
}
|
|
304
372
|
/**
|
|
305
|
-
*
|
|
306
|
-
*
|
|
373
|
+
* The `uuid -> envelopeId` index for one collection, built on first use.
|
|
374
|
+
* Building it IS hydration -- {@link listEntities} decrypts every live row and
|
|
375
|
+
* stores the index as a side effect -- so this delegates rather than running a
|
|
376
|
+
* second decrypt-and-index loop of its own.
|
|
307
377
|
*/
|
|
308
378
|
async #ensureIndex(key) {
|
|
309
379
|
const existing = this.#index[key];
|
|
310
380
|
if (existing) {
|
|
311
381
|
return existing;
|
|
312
382
|
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
// Decrypt rows concurrently: index building has no ordering dependency, so
|
|
316
|
-
// serializing the per-row WebCrypto work would only stall the unlock path.
|
|
317
|
-
const entries = await Promise.all(docs.map(async (doc) => {
|
|
318
|
-
const { id: envelopeId, data } = doc.toMutableJSON();
|
|
319
|
-
if (data === undefined) {
|
|
320
|
-
return null;
|
|
321
|
-
}
|
|
322
|
-
const payload = (await this.#decryptWithRefresh(key, data));
|
|
323
|
-
return { envelopeId, uuid: payload.id };
|
|
324
|
-
}));
|
|
325
|
-
for (const entry of entries) {
|
|
326
|
-
if (entry !== null) {
|
|
327
|
-
index.set(entry.uuid, entry.envelopeId);
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
this.#index[key] = index;
|
|
331
|
-
return index;
|
|
383
|
+
await this.listEntities(key);
|
|
384
|
+
return this.#index[key];
|
|
332
385
|
}
|
|
333
386
|
/**
|
|
334
387
|
* Encrypts `payload` into a fresh EDV envelope and inserts it as a new row.
|
|
@@ -339,14 +392,17 @@ export class LocalStore {
|
|
|
339
392
|
*/
|
|
340
393
|
async insertEntity(key, payload) {
|
|
341
394
|
const cipher = this.#cipher(key);
|
|
342
|
-
const { id: envelopeId, envelope } = await cipher.encrypt({
|
|
395
|
+
const { id: envelopeId, envelope, epoch } = await cipher.encrypt({
|
|
343
396
|
data: payload
|
|
344
397
|
});
|
|
345
398
|
await this.#collection(key).insert({
|
|
346
399
|
id: envelopeId,
|
|
347
400
|
updatedAt: new Date().toISOString(),
|
|
348
401
|
version: 0,
|
|
349
|
-
data: envelope
|
|
402
|
+
data: envelope,
|
|
403
|
+
// The epoch the envelope was sealed under rides the content push as the
|
|
404
|
+
// `WAS-Key-Epoch` header (absent on a single-recipient cipher).
|
|
405
|
+
...(epoch !== undefined && { epoch })
|
|
350
406
|
});
|
|
351
407
|
const index = await this.#ensureIndex(key);
|
|
352
408
|
index.set(payload.id, envelopeId);
|
|
@@ -386,14 +442,24 @@ export class LocalStore {
|
|
|
386
442
|
return;
|
|
387
443
|
}
|
|
388
444
|
const cipher = this.#cipher(key);
|
|
389
|
-
const { envelope } = await cipher.encryptUpdate({
|
|
445
|
+
const { envelope, epoch } = await cipher.encryptUpdate({
|
|
390
446
|
id: envelopeId,
|
|
391
447
|
data: payload,
|
|
392
448
|
current
|
|
393
449
|
});
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
450
|
+
// `incrementalModify` (not `incrementalPatch`): a re-encrypt under a
|
|
451
|
+
// single-recipient cipher must CLEAR a stale `epoch` stamp, and a patch
|
|
452
|
+
// cannot remove a field.
|
|
453
|
+
await doc.incrementalModify(docData => {
|
|
454
|
+
docData.data = envelope;
|
|
455
|
+
docData.updatedAt = new Date().toISOString();
|
|
456
|
+
if (epoch !== undefined) {
|
|
457
|
+
docData.epoch = epoch;
|
|
458
|
+
}
|
|
459
|
+
else {
|
|
460
|
+
delete docData.epoch;
|
|
461
|
+
}
|
|
462
|
+
return docData;
|
|
397
463
|
});
|
|
398
464
|
}
|
|
399
465
|
/**
|
|
@@ -443,8 +509,7 @@ export class LocalStore {
|
|
|
443
509
|
* @returns {Promise<number>}
|
|
444
510
|
*/
|
|
445
511
|
async countEntities(key) {
|
|
446
|
-
|
|
447
|
-
return docs.length;
|
|
512
|
+
return await this.#collection(key).count().exec();
|
|
448
513
|
}
|
|
449
514
|
/**
|
|
450
515
|
* Decrypts every live row of a collection into its plaintext payload, and
|
|
@@ -494,15 +559,19 @@ export class LocalStore {
|
|
|
494
559
|
async hydrateSingleton(key) {
|
|
495
560
|
const collection = this.#collection(key);
|
|
496
561
|
const rows = await collection.find().exec();
|
|
497
|
-
|
|
498
|
-
|
|
562
|
+
// Decrypt every row concurrently (same rationale as `listEntities`): the
|
|
563
|
+
// winner is picked from the whole decoded set afterwards, so payload order
|
|
564
|
+
// does not matter and serializing the per-row WebCrypto work would only add
|
|
565
|
+
// latency. The loser tombstoning below stays serial.
|
|
566
|
+
const decrypted = await Promise.all(rows.map(async (row) => {
|
|
499
567
|
const { id: envelopeId, data } = row.toMutableJSON();
|
|
500
568
|
if (data === undefined) {
|
|
501
|
-
|
|
569
|
+
return null;
|
|
502
570
|
}
|
|
503
571
|
const payload = (await this.#decryptWithRefresh(key, data));
|
|
504
|
-
|
|
505
|
-
}
|
|
572
|
+
return { envelopeId, payload };
|
|
573
|
+
}));
|
|
574
|
+
const decoded = decrypted.filter(entry => entry !== null);
|
|
506
575
|
const index = new Map();
|
|
507
576
|
this.#index[key] = index;
|
|
508
577
|
if (decoded.length === 0) {
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rehydrate.d.ts","sourceRoot":"","sources":["../../src/storage/rehydrate.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGjD;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAIlE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,aAAa,EACvB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE;IACL,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAC/D,GACA,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"rehydrate.d.ts","sourceRoot":"","sources":["../../src/storage/rehydrate.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGjD;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAIlE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,aAAa,EACvB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE;IACL,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAC/D,GACA,OAAO,CAAC,IAAI,CAAC,CAsDf;AAOD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,aAAa,EACvB,aAAa,EAAE,MAAM,GACpB,IAAI,CAqBN;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAKhD"}
|
|
@@ -44,29 +44,45 @@ export async function patchFromChange(registry, collectionKey, event) {
|
|
|
44
44
|
scheduleRehydrate(registry, collectionKey);
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
47
|
+
// Capture the store BEFORE the decrypt await. This patch is fired floating
|
|
48
|
+
// off the RxDB change stream, so a logout/login teardown can clear or SWAP
|
|
49
|
+
// the process-wide holder while the decrypt is in flight; re-resolving the
|
|
50
|
+
// holder after the await would either throw (an unhandled rejection) or --
|
|
51
|
+
// worse -- write the previous session's payload and envelope id into the
|
|
52
|
+
// NEW session's replica. The captured store plus the identity re-check
|
|
53
|
+
// below makes a patch that outlives its store a silent no-op.
|
|
54
|
+
if (!hasStore()) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const store = requireStore();
|
|
47
58
|
let payload;
|
|
48
59
|
try {
|
|
49
|
-
payload = await
|
|
60
|
+
payload = await store.decryptEnvelope(collectionKey, envelope);
|
|
50
61
|
}
|
|
51
62
|
catch {
|
|
52
63
|
scheduleRehydrate(registry, collectionKey);
|
|
53
64
|
return;
|
|
54
65
|
}
|
|
66
|
+
// Bail if the holder changed or closed across the await: this event belongs
|
|
67
|
+
// to the torn-down session, not the one now live.
|
|
68
|
+
if (!hasStore() || requireStore() !== store) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
55
71
|
if (deleted) {
|
|
56
72
|
// Only honor a tombstone for the envelope the entity currently lives in.
|
|
57
73
|
// A delete of a DIFFERENT envelope that decrypts to the same logical id is
|
|
58
74
|
// a stale duplicate being cleaned up (a reconciled singleton loser, or the
|
|
59
75
|
// pre-resurrection row of a locally re-created doc) -- dropping the live
|
|
60
76
|
// doc for it would undo the reconciliation/resurrection.
|
|
61
|
-
const mapped =
|
|
77
|
+
const mapped = store.envelopeIdFor(collectionKey, payload.id);
|
|
62
78
|
if (mapped !== undefined && mapped !== row.id) {
|
|
63
79
|
return;
|
|
64
80
|
}
|
|
65
|
-
|
|
81
|
+
store.forgetEnvelope(collectionKey, payload.id);
|
|
66
82
|
entry.drop(payload.id);
|
|
67
83
|
}
|
|
68
84
|
else {
|
|
69
|
-
|
|
85
|
+
store.rememberEnvelope(collectionKey, payload.id, row.id);
|
|
70
86
|
entry.upsert(payload);
|
|
71
87
|
}
|
|
72
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rehydrate.js","sourceRoot":"","sources":["../../src/storage/rehydrate.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAE5D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAuB;IACtD,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;AAC1E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAuB;IAC1D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,KAAK,EAAE,CAAA;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAuB,EACvB,aAAqB,EACrB,KAGC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAA;IACrC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAM;IACR,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAA;IAC9B,MAAM,QAAQ,GAAG,GAAG,EAAE,IAAI,CAAA;IAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAA;IACtE,IAAI,CAAC,GAAG,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,iBAAiB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAC1C,OAAM;IACR,CAAC;IACD,IAAI,OAAuB,CAAA;IAC3B,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"rehydrate.js","sourceRoot":"","sources":["../../src/storage/rehydrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IKeyAgreementKey, IKeyResolver } from '@interop/data-integrity-core';
|
|
2
2
|
import { type Json } from '../sync/index.js';
|
|
3
|
-
import type
|
|
3
|
+
import { type WasRemoteStore } from './wasRemoteStore.js';
|
|
4
4
|
/**
|
|
5
5
|
* Default page size for the `changes`-feed walk. The server clamps its own
|
|
6
6
|
* maximum, and a page shorter than what was asked for is the feed's end-of-walk
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharedCollectionReader.d.ts","sourceRoot":"","sources":["../../src/storage/sharedCollectionReader.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACb,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"sharedCollectionReader.d.ts","sourceRoot":"","sources":["../../src/storage/sharedCollectionReader.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACb,MAAM,8BAA8B,CAAA;AAMrC,OAAO,EAIL,KAAK,IAAI,EACV,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAE5B;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAA;AAU3C;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,IAAI,CAAA;CACX;AAED;;;;;GAKG;AACH,qBAAa,gCAAiC,SAAQ,KAAK;gBAC7C,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAI3D;AAED,qBAAa,sBAAsB;;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAgB7B,OAAO;IAiBP;;;;;;;;;;;;;;;;;OAiBG;WACU,IAAI,CAAC,EAChB,WAAW,EACX,eAAe,EACf,WAAW,EACX,YAAY,EACZ,QAAmC,EACpC,EAAE;QACD,WAAW,EAAE,cAAc,CAAA;QAC3B,eAAe,EAAE,gBAAgB,CAAA;QACjC,WAAW,EAAE,YAAY,CAAA;QACzB,YAAY,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAgBnC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IA8EvC;;;;;;;;OAQG;IACG,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;CA8EzD"}
|