mindoodb 0.0.35 → 0.0.37
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 +31 -9
- package/dist/core/BaseMindooDB.d.ts +30 -0
- package/dist/core/BaseMindooDB.d.ts.map +1 -1
- package/dist/core/BaseMindooDB.js +143 -20
- package/dist/core/BaseMindooDB.js.map +1 -1
- package/dist/core/BaseMindooTenant.d.ts +31 -0
- package/dist/core/BaseMindooTenant.d.ts.map +1 -1
- package/dist/core/BaseMindooTenant.js +130 -2
- package/dist/core/BaseMindooTenant.js.map +1 -1
- package/dist/core/types.d.ts +68 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -217,20 +217,39 @@ Keys are distributed offline (e.g. password protected via email or a shared driv
|
|
|
217
217
|
- **Signatures**: Ed25519 on every change - proves who wrote it
|
|
218
218
|
- **Encryption**: AES-256-GCM - servers see only ciphertext
|
|
219
219
|
- **Integrity**: Changes are hash-chained - tampering breaks the chain
|
|
220
|
+
- **Trusted time**: when a sync server accepts an entry it signs a **witness receipt** attesting *when* it was accepted - a clock no client can rewind
|
|
221
|
+
|
|
222
|
+
### Encryption-based Access Control
|
|
223
|
+
Read access is governed by **key possession**, not server-side permissions. If you hold the key you can decrypt; if you don't, the document stays ciphertext wherever it travels (server, peer, or relay):
|
|
224
|
+
|
|
225
|
+
| Key | Scope |
|
|
226
|
+
|-----|-------|
|
|
227
|
+
| **`default` key** | Tenant-wide data; shared with every member during onboarding |
|
|
228
|
+
| **Named keys** | Need-to-know documents; shared only with the users you choose |
|
|
229
|
+
| **`$publicinfos` key** | Encrypts directory access-control metadata so servers can validate signing keys without seeing usernames or business data |
|
|
230
|
+
|
|
231
|
+
Rotating a named key is the cryptographic cutoff for read access: re-encrypt under a new key and withhold it from anyone who should no longer see the data.
|
|
232
|
+
|
|
233
|
+
### Write Governance (opt-in)
|
|
234
|
+
On top of the encryption model, MindooDB adds fine-grained, **admin-signed** control over write operations (`doc_create`, `doc_change`, `doc_delete`, `doc_undelete`, `doc_snapshot`). Policies, rules, groups, and grants are append-only documents in the directory database that every participant already syncs:
|
|
235
|
+
- **Two tiers**: identity / database / operation rules are cryptographically enforced by the server *and* clients (Tier 1); document-content rules are re-checked by every honest client on receipt and a violation is quarantined, never materialized (Tier 2).
|
|
236
|
+
- **Offline-honest**: every change is judged against the policy in force at its **trusted time** (from the witness receipt), so replicas always agree and an offline client cannot rewind its clock to slip a change past a rule.
|
|
237
|
+
- **Reproducible & auditable**: because policy is versioned, append-only data, you can replay *who was allowed to do what, and when* for any point in the past.
|
|
238
|
+
|
|
239
|
+
Governance stays **opt-in and backward-compatible**: a tenant behaves exactly as before until an admin writes a policy, and pre-existing data is never retroactively invalidated. See: [Access Control & Governance](./docs/accesscontrol.md)
|
|
220
240
|
|
|
221
241
|
### User Revocation
|
|
222
|
-
Revoked users:
|
|
242
|
+
Revocation is performed by **removing a user's keys** from the admin-signed grant document — there are no separate revocation records. Revoked users:
|
|
223
243
|
- ❌ Cannot sync with peers or servers
|
|
224
|
-
- ❌ Cannot make new changes (signatures rejected)
|
|
225
|
-
-
|
|
226
|
-
|
|
227
|
-
MindooDB includes **revocation timestamp protection** to prevent backdated changes from revoked users. See: [Revocation Protection](./docs/revocation-timestamp-protection.md)
|
|
244
|
+
- ❌ Cannot make new changes (signatures rejected; trusted time prevents backdating around the revocation)
|
|
245
|
+
- ❌ Stop receiving future documents encrypted with keys they no longer hold (the server withholds them; honest clients drop revoked keys on the next directory pull)
|
|
246
|
+
- ⚠️ May still hold previously-synced local data — mitigate with named keys (smaller blast radius) and key rotation, or issue an explicit **remote device wipe** that drops the tenant from a device the next time it connects
|
|
228
247
|
|
|
229
248
|
### Audit Trail
|
|
230
|
-
Append-only storage means nothing is
|
|
231
|
-
- Complete history of who changed what and when
|
|
232
|
-
- Cryptographic proof of all operations
|
|
233
|
-
- GDPR
|
|
249
|
+
Append-only storage means nothing is silently lost:
|
|
250
|
+
- Complete, hash-chained history of who changed what and when
|
|
251
|
+
- Cryptographic proof of all operations, reproducible for any point in time
|
|
252
|
+
- GDPR-style erasure via `purgeDocHistory()` when legally required
|
|
234
253
|
|
|
235
254
|
## Supported Platforms
|
|
236
255
|
|
|
@@ -247,6 +266,7 @@ Append-only storage means nothing is ever deleted:
|
|
|
247
266
|
- **Audit-Critical Systems**: Tamperproof history meets compliance requirements
|
|
248
267
|
- **Local-First Apps**: Full functionality without network; sync when connected
|
|
249
268
|
- **Mobile Apps**: End-to-end encrypted sync with native performance
|
|
269
|
+
- **Data Migration**: Import existing records with their original creation dates so [Time Travel](./docs/timetravel.md) reflects real history — see the [mindoodb-data-import](https://github.com/klehmann/mindoodb-data-import) example CLI (backdated import + server push)
|
|
250
270
|
|
|
251
271
|
See: [Use Cases Documentation](./docs/usecases/README.md)
|
|
252
272
|
|
|
@@ -261,8 +281,10 @@ See: [Use Cases Documentation](./docs/usecases/README.md)
|
|
|
261
281
|
- [Full-Text Search](./docs/fulltext-search.md) — Client-side encrypted full-text index, `db.searchText()`, the query `text` clause, attachment text extraction
|
|
262
282
|
- [Data Indexing](./docs/dataindexing.md) — Incremental indexing and search integration
|
|
263
283
|
- [Time Travel](./docs/timetravel.md) — Historical document retrieval and history traversal
|
|
284
|
+
- [Access Control & Governance](./docs/accesscontrol.md) — Encryption-key read access, admin-signed write policies, the two-tier model, witness receipts and trusted-time enforcement
|
|
264
285
|
- [P2P Sync](./docs/p2psync.md) — Peer-to-peer synchronization
|
|
265
286
|
- [Attachments](./docs/attachments.md) — File storage and streaming
|
|
287
|
+
- [Data Import Example](https://github.com/klehmann/mindoodb-data-import) — CLI tool that imports external data into MindooDB with historical `createdAt` timestamps for Time Travel
|
|
266
288
|
|
|
267
289
|
## Testing
|
|
268
290
|
|
|
@@ -266,10 +266,24 @@ export declare class BaseMindooDB implements MindooDB {
|
|
|
266
266
|
private metadataVisibleAtTimeTravelDate;
|
|
267
267
|
private applyTimeTravelFilter;
|
|
268
268
|
private mergeTimeTravelScanFilters;
|
|
269
|
+
/**
|
|
270
|
+
* Compute the cache prefix for this database. Time-travel instances get a
|
|
271
|
+
* cutoff-scoped prefix (`.../tt/<timeTravelDate>`) so their persisted
|
|
272
|
+
* state (doc cache, metadata checkpoint, summary buckets) is isolated per
|
|
273
|
+
* cutoff and can never collide with — or leak into — the live cache.
|
|
274
|
+
*/
|
|
275
|
+
private computeCachePrefix;
|
|
269
276
|
/**
|
|
270
277
|
* Attach a CacheManager so this DB participates in periodic cache flushing.
|
|
271
278
|
*/
|
|
272
279
|
setCacheManager(cacheManager: CacheManager): void;
|
|
280
|
+
/**
|
|
281
|
+
* Detach this DB (and its summary/full-text cacheables) from the
|
|
282
|
+
* CacheManager WITHOUT flushing pending state. Used by the tenant's
|
|
283
|
+
* time-travel cache purge: the persisted records are about to be
|
|
284
|
+
* deleted, so a deregister-triggered flush would only resurrect them.
|
|
285
|
+
*/
|
|
286
|
+
detachCacheManagerForPurge(): void;
|
|
273
287
|
/**
|
|
274
288
|
* Get (lazily creating) the document summary buffer for this database.
|
|
275
289
|
*
|
|
@@ -672,6 +686,22 @@ export declare class BaseMindooDB implements MindooDB {
|
|
|
672
686
|
* then processes only the delta. Falls back to full rebuild on cache miss.
|
|
673
687
|
*/
|
|
674
688
|
initialize(): Promise<void>;
|
|
689
|
+
/**
|
|
690
|
+
* Open-time probe for summary auto-activation on time-travel snapshots.
|
|
691
|
+
*
|
|
692
|
+
* Live databases activate their summary buffer through coalesced change
|
|
693
|
+
* events ({@link handleChangesForSummaryAutoUpdate}) or an explicit
|
|
694
|
+
* {@link getSummaryStore} call. A time-travel snapshot is read-only and
|
|
695
|
+
* never receives change events, so without an open-time probe a snapshot
|
|
696
|
+
* whose setup document (as of the cutoff) configures a summary would
|
|
697
|
+
* never build one — every summary-first query/view would pay the full
|
|
698
|
+
* catch-up on first use. Fired once (fire-and-forget) at the end of
|
|
699
|
+
* {@link initialize}; the single `update()` run materializes the
|
|
700
|
+
* documents at the cutoff and fills the buffer (restoring a persisted
|
|
701
|
+
* state first when a CacheManager is attached, see
|
|
702
|
+
* `persistTimeTravelCache`).
|
|
703
|
+
*/
|
|
704
|
+
private probeSummarySetupAtOpen;
|
|
675
705
|
/**
|
|
676
706
|
* Open-time probe for full-text auto-activation. Without it, a
|
|
677
707
|
* database whose synced `fulltextSetup` is already enabled would not
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseMindooDB.d.ts","sourceRoot":"","sources":["../../src/core/BaseMindooDB.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseMindooDB.d.ts","sourceRoot":"","sources":["../../src/core/BaseMindooDB.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,QAAQ,EACR,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,aAAa,EAGb,4BAA4B,EAC5B,yBAAyB,EACzB,sCAAsC,EAEtC,uBAAuB,EACvB,6BAA6B,EAC7B,+BAA+B,EAC/B,yBAAyB,EACzB,8BAA8B,EAG9B,sBAAsB,EACtB,6BAA6B,EAG7B,sBAAsB,EACtB,SAAS,EAOT,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EAIpB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,cAAc,EAEd,mBAAmB,EACnB,0BAA0B,EAC1B,uCAAuC,EACvC,WAAW,EACX,UAAU,EAEV,0BAA0B,EAC1B,yBAAyB,EAEzB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,EAE1B,eAAe,EACf,qBAAqB,EAErB,4BAA4B,EAC5B,wBAAwB,EAGxB,gBAAgB,EAGjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,KAAK,EACV,qBAAqB,EAMtB,MAAM,0BAA0B,CAAC;AAmClC,OAAO,EACL,gBAAgB,EAEjB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,EAAY,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,MAAM,EAA8C,MAAM,WAAW,CAAC;AAE/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAM9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,KAAK,EACV,uBAAuB,EACvB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAoD,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAExG,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAExF,OAAO,KAAK,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEzF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AA2MjG;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,sEAAsE;AACtE,eAAO,MAAM,kCAAkC,yBAK7C,CAAC;AAYH;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,YAAa,YAAW,QAAQ;IAC3C,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,eAAe,CAAwB;IAC/C;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAA0B;IAC/C;;;OAGG;IACH,OAAO,CAAC,cAAc,CAA+C;IACrE;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,cAAc,CAAS;IAG/B,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAI/C,OAAO,CAAC,KAAK,CAA4B;IAGzC,OAAO,CAAC,WAAW,CAAkC;IACrD;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,aAAa,CAAa;IAGlC,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,mBAAmB,CAAkD;IAC7E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IACnD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAU;IACvD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB,CAA6B;IAG7D,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,oBAAoB,CAAgC;IAE5D;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,eAAe,CAGT;IAEd;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB,CAA2C;IACvE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAO;IAC9C;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAO;IAI9C,OAAO,CAAC,sBAAsB,CAA+C;IAC7E,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,mBAAmB,CAAC,CAAsB;IAIlD,OAAO,CAAC,cAAc,CAAqC;IAG3D,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,WAAW,CAAuB;IAC1C;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAAqC;IACzD;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAAsC;IAC3D;;;;OAIG;IACH,OAAO,CAAC,wBAAwB,CAAiC;IAOjE,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,0BAA0B,CAAoC;IACtE,OAAO,CAAC,iBAAiB,CAA8C;IACvE,gFAAgF;IAChF,OAAO,CAAC,uBAAuB,CAAa;IAQ5C,OAAO,CAAC,wBAAwB,CAAiB;IACjD,OAAO,CAAC,wBAAwB,CAAkB;IAClD,OAAO,CAAC,wBAAwB,CAAkB;IAClD,yEAAyE;IACzE,OAAO,CAAC,kBAAkB,CAAkB;IAO5C,OAAO,CAAC,yBAAyB,CAAiB;IAClD,OAAO,CAAC,yBAAyB,CAAkB;IACnD,OAAO,CAAC,yBAAyB,CAAkB;IACnD,6EAA6E;IAC7E,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,cAAc,CAAkB;IACxC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB,CAA6B;IAExD;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,+BAA+B,CAAuB;IAK9D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAA8B;IACnD;;;OAGG;IACH,OAAO,CAAC,WAAW,CAAgC;IACnD;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc,CAAyC;gBAG7D,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,qBAAqB,EAC5B,eAAe,EAAE,qBAAqB,EACtC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,mBAAmB,CAAC,EAAE,mBAAmB,EACzC,cAAc,CAAC,EAAE,cAAc,EAC/B,WAAW,GAAE,OAAe,EAC5B,MAAM,CAAC,EAAE,MAAM,EACf,mBAAmB,CAAC,EAAE,mBAAmB,EACzC,cAAc,GAAE,MAAM,GAAG,IAAW;IA+EtC;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAItB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAIzB,aAAa,IAAI,OAAO;IAIxB,gBAAgB,IAAI,OAAO;IAI3B,UAAU,IAAI,OAAO;IAIrB,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAIlC,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,+BAA+B;IAIvC,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,0BAA0B;IAkBlC;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAUjD;;;;;OAKG;IACH,0BAA0B,IAAI,IAAI;IAqBlC;;;;;;;;;OASG;IACH,eAAe,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,oBAAoB;IAY7D;;;;;;OAMG;IACG,eAAe,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAYtD;;;;;;;;;;OAUG;IACG,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlE;;;;;;;;;OASG;IACH,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAOnD;;;;;;OAMG;IACH,OAAO,CAAC,iCAAiC;IAuBzC,uEAAuE;YACzD,2BAA2B;IAezC;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAwBjC;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,qBAAqB;IAchE;;;;OAIG;IACG,gBAAgB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAYxD;;;;;;;;;;;;OAYG;IACG,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBpE;;;;;;;OAOG;IACG,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAY5D;;;;;;;;OAQG;IACG,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBxE;;;;;;;;OAQG;IACH,+BAA+B,CAAC,SAAS,EAAE,uBAAuB,GAAG,MAAM,IAAI;IAU/E;;;;;;;;;OASG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAI/F;;;;;;OAMG;IACH,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAOpD;;;;;OAKG;IACH,OAAO,CAAC,kCAAkC;IAoB1C,sEAAsE;YACxD,4BAA4B;IAmB1C;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAwBlC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAOzD,mEAAmE;IACnE,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,0BAA0B;IAYlC;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,sBAAsB;IA+B9B;;;;;OAKG;IACG,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIzF;;;;;OAKG;IACG,SAAS,CACb,UAAU,EAAE,yBAAyB,EACrC,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,oBAAoB,CAAC;IAShC;;;;;OAKG;IACH,SAAS,CACP,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,EAC7C,OAAO,CAAC,EAAE,kBAAkB,GAAG;QAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,GACpE,uBAAuB;IAU1B,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,OAAO;IAIxB,UAAU,IAAI,IAAI;IAQlB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,mBAAmB;YAKb,mBAAmB;IAKjC;;;;;;;;;;;;;;;;;OAiBG;YACW,uBAAuB;IA0CrC;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAiBpC;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB3D;;;;;;;;;;;;;;;;;OAiBG;YACW,oBAAoB;IA8ClC,OAAO,CAAC,wBAAwB;IAqChC;;OAEG;IACG,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAyKhE;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAmCtB;;;OAGG;YACW,oBAAoB;IAiClC;;;;;;;OAOG;YACW,6BAA6B;IAsB3C;;;;;;;;OAQG;IACH,OAAO,CAAC,qBAAqB;IAe7B;;;;;;OAMG;YACW,2BAA2B;IAgBzC;;;;;;;;OAQG;YACW,yBAAyB;IAyBvC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,OAAO,CAAC,WAAW;IAqGnB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAY3B,qFAAqF;IACrF,OAAO,CAAC,qBAAqB;IAU7B;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,oCAAoC;IAO5C,OAAO,CAAC,gCAAgC;IAWxC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAQlC;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IAatC;;;;;;OAMG;YACW,qCAAqC;IAcnD;;;;;OAKG;YACW,2BAA2B;IA0BzC;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,4BAA4B;IAuBpC,OAAO,CAAC,4BAA4B;IAYpC;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA+CjC;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,uBAAuB;IA4B/B;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAchC;;;OAGG;YACW,+BAA+B;IAO7C;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B;IASvC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,gCAAgC;IA6BxC;;;;;;;;;;;;;;;;;OAiBG;YACW,yBAAyB;IAuBvC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;YA8EtC,+BAA+B;IA6C7C;;;;;;;;;;OAUG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;YAWzB,wBAAwB;IAkPtC,OAAO,CAAC,kBAAkB;YAIZ,eAAe;YAwCf,0BAA0B;IAiDxC;;;;;OAKG;YACW,oBAAoB;IAclC,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAMxC;;;;;OAKG;YACW,gBAAgB;IAY9B,oEAAoE;IACpE,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAIhC,6EAA6E;IAC7E,OAAO,CAAC,iBAAiB;IAOzB,kEAAkE;IAClE,OAAO,CAAC,kBAAkB;IAmB1B;;;;OAIG;YACW,gBAAgB;IA6B9B;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gCAAgC,CAAO;IAE/D;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uCAAuC,CAAK;IAEpE,OAAO,CAAC,wBAAwB;IAahC;;;;;;;;;;;;;;;;;OAiBG;YACW,wBAAwB;IAyItC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;YAenB,oBAAoB;YAyBpB,wBAAwB;IAwPtC;;;;;;;;;;;;;;;OAeG;YACW,yBAAyB;IAsJvC,QAAQ,IAAI,qBAAqB;IAIjC,kBAAkB,IAAI,qBAAqB;IAIrC,kCAAkC,CACtC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,OAAO,CAAC,uCAAuC,CAAC;IA2DnD,SAAS,IAAI,YAAY;IAInB,cAAc,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAIjE;;OAEG;IACG,uBAAuB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAI3E;;OAEG;IACG,4BAA4B,CAChC,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,MAAM,EAC1B,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,SAAS,CAAC;IAIrB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA8GpE;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAQ/B;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;;;;;;;;;;;;;;;OAgBG;YACW,sBAAsB;IAuQpC;;;;;;;;;;OAUG;YACW,0BAA0B;IAmMlC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAc9C,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAsLlF,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,qBAAqB,EAAE,IAAI,EAAE,OAAO,CAAC;IAyI3F,2BAA2B,CAChC,MAAM,EAAE,cAAc,GAAG,IAAI,GAC5B,cAAc,CAAC,oBAAoB,EAAE,IAAI,EAAE,OAAO,CAAC;IAI/C,wBAAwB,CAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,cAAc,GAAG,IAAI,GAC5B,cAAc,CAAC,oBAAoB,EAAE,IAAI,EAAE,OAAO,CAAC;IAItD;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;YACY,wBAAwB;IAoCvC;;;;;;;;;OASG;YACW,uBAAuB;IAkFrC,6DAA6D;IAC7D,OAAO,CAAC,mBAAmB;IAM3B,+EAA+E;IAC/E,OAAO,CAAC,oBAAoB;IAQ5B;;;;;OAKG;YACY,gBAAgB;IAuJ/B;;;;;;;;;OASG;YACW,gBAAgB;IA0D9B,yDAAyD;IACzD,OAAO,CAAC,UAAU;IAYlB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAc3B,6EAA6E;YAC/D,mBAAmB;IA4CjC;;;;OAIG;YACW,kBAAkB;IA0ChC,yEAAyE;IACzE,OAAO,CAAC,oBAAoB;IAS5B,6EAA6E;IAC7E,OAAO,CAAC,oBAAoB;IAYtB,sBAAsB,CAC1B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,yBAAyB,CAAC;IA0D/B,6BAA6B,CACjC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,4BAA4B,GACtC,OAAO,CAAC,yBAAyB,CAAC;IAuBrC;;;OAGG;YACW,uBAAuB;IAyC/B,gCAAgC,CACpC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,sCAAsC,GAAG,IAAI,CAAC;IAkDnD,oCAAoC,CACxC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,4BAA4B,EACvC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,sCAAsC,GAAG,IAAI,CAAC;IAqDnD,wBAAwB,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAqE1C;;;;;;;;;;;;;;;;OAgBG;IACI,wBAAwB,CAC7B,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,GAAE,+BAAoC,GAC5C,cAAc,CAAC,6BAA6B,EAAE,IAAI,EAAE,OAAO,CAAC;IAqG/D;;;;;;;;;;;OAWG;IACG,yBAAyB,CAC7B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,sBAAsB,CAAC;IA2ClC;;;;;;;;;;;;;;;OAeG;IACG,6BAA6B,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,8BAA8B,EAAE,GACxC,OAAO,CAAC,yBAAyB,EAAE,CAAC;IA6GvC;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAiBlC;;;;;;;;OAQG;IACH,OAAO,CAAC,+BAA+B;IA2FvC;;;OAGG;IACG,yBAAyB,IAAI,OAAO,CAAC,sBAAsB,CAAC;IASlE;;;;;OAKG;YACW,sCAAsC;IAsBpD;;;OAGG;YACW,uBAAuB;IAcrC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;YACW,+BAA+B;IAkM7C;;;;;OAKG;IACH,OAAO,CAAC,6BAA6B;IAmBrC;;;;;;;;;;OAUG;YACW,yBAAyB;IA6CvC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,2BAA2B;IAkBnC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAI9B;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAY5B;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAIvB;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IAI9B;;;;;;;;;OASG;IACH,OAAO,CAAC,yBAAyB;IAgBjC;;;;;;;OAOG;IACH,OAAO,CAAC,yBAAyB;IAajC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,4BAA4B;IAYpC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,sCAAsC;IA4C9C;;;;;;;;;OASG;IACH,OAAO,CAAC,iCAAiC;IA4BzC;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,uBAAuB;IAmC/B;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;IAMtC;;;;;;;OAOG;YACW,6BAA6B;IAe3C;;;;;;OAMG;YACW,0BAA0B;IA4ClC,iBAAiB,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IActE,qBAAqB,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAY1E,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAkFlE,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/E;;;;;;;;;;;;;OAaG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8D7E,4BAA4B,CAChC,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,IAAI,CAAC;IAIV,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;YASrE,8BAA8B;IAoB5C;;;;;;OAMG;YACW,mBAAmB;IAkBjC;;;;;OAKG;YACW,qBAAqB;IA+InC;;;;;;;;;OASG;YACW,0BAA0B;IAyCxC;;;;OAIG;YACW,iBAAiB;YAmBjB,mBAAmB;IAuB3B,SAAS,CACb,GAAG,EAAE,SAAS,EACd,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACpD,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC;IAUV,uBAAuB,CAC3B,GAAG,EAAE,SAAS,EACd,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACpD,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,IAAI,CAAC;IAIV,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgFtF,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAiGlG,uBAAuB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA6G3G,mBAAmB,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA4BlG,uBAAuB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,uBAAuB,CAAC;IASzE,qBAAqB,CACzB,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,0BAA0B,CAAC;YAkHxB,0BAA0B;IAmBlC,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC;YAsE9E,iBAAiB;IA6d/B,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,iBAAiB;IAyEzB,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,yBAAyB;IAmCjC,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,sBAAsB;IAsB9B,OAAO,CAAC,wBAAwB;IA8ChC,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,oBAAoB;IA8B5B,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,kBAAkB;IAW1B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,cAAc;IAyBtB;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,gCAAgC;IAoBxC,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,gCAAgC;IAKxC,OAAO,CAAC,kBAAkB;YAyBZ,qBAAqB;YAwCrB,+BAA+B;YAmH/B,wBAAwB;IAgEtC;;;;OAIG;YACW,6BAA6B;YAsG7B,uBAAuB;IA6DrC,OAAO,CAAC,sBAAsB;IAgD9B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,kBAAkB;IAwB1B;;;;;OAKG;YACW,4BAA4B;IAuB1C;;;;;OAKG;IACH,OAAO,CAAC,0BAA0B;IAOlC;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAiDhC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAM9B;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAgD9B;;;;;OAKG;YACW,2BAA2B;IAwHlC,0BAA0B,CAC/B,MAAM,EAAE,oBAAoB,GAAG,IAAI,EACnC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,cAAc,CAAC,0BAA0B,EAAE,IAAI,EAAE,OAAO,CAAC;IAyC5D,qBAAqB,IAAI,oBAAoB,GAAG,IAAI;IAYpD;;;;OAIG;IACH,iBAAiB,CACf,MAAM,EAAE,oBAAoB,GAAG,IAAI,EACnC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,MAAM;IAoBF,mBAAmB,CACxB,MAAM,EAAE,oBAAoB,GAAG,IAAI,EACnC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,cAAc,CAAC,oBAAoB,EAAE,IAAI,EAAE,OAAO,CAAC;IAsItD;;;OAGG;YACW,+BAA+B;IA+L7C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;YACW,aAAa;IA8I3B;;;;;OAKG;IACH,eAAe,IAAI,OAAO;IAI1B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,qBAAqB,CAAC,OAAO,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC5E;;;;;;;;;;;OAWG;IACH,2BAA2B,IAAI,wBAAwB,GAAG,IAAI;IAI9D;;;;OAIG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3C;;;;;;;;OAQG;YACW,mBAAmB;IAgGjC;;;;;OAKG;IACH,gBAAgB,IAAI,SAAS,gBAAgB,EAAE;IAI/C;;;;;;;OAOG;YACW,aAAa;IA+B3B;;;;;;;;;;;;;;;;;OAiBG;YACW,kBAAkB;IAehC;;;;;;;;OAQG;YACW,kBAAkB;IAehC;;;;;;;;OAQG;YACW,yBAAyB;IAiDvC;8EAC0E;IAC1E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAI/C;IAEF;;;;;OAKG;IACG,SAAS,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,cAAc,CAAC;IAsBrE;;;;;OAKG;IACG,SAAS,CACb,GAAG,EAAE,SAAS,EACd,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC,cAAc,CAAC;IAiB1B;;;OAGG;IACG,SAAS,CACb,GAAG,EAAE,SAAS,EACd,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC,cAAc,CAAC;IAiB1B;;;OAGG;IACG,WAAW,CACf,GAAG,EAAE,SAAS,EACd,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC,cAAc,CAAC;IAiB1B;;;;;;OAMG;YACW,wBAAwB;IAetC,gEAAgE;IAChE,OAAO,CAAC,gBAAgB;IAOxB;;;;;;;;;;;;;;;;OAgBG;YACW,iCAAiC;IAyO/C;;OAEG;YACW,oBAAoB;IAgblC;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAwC5B;;;OAGG;IACH,OAAO,CAAC,YAAY;IA+GpB;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAcvB;;OAEG;YACW,wBAAwB;IAQtC,OAAO,CAAC,uBAAuB;YAUjB,kBAAkB;YA2BlB,sBAAsB;IAyBpC;;OAEG;YACW,qBAAqB;YAUrB,2BAA2B;IAgCzC;;OAEG;YACW,0BAA0B;YAgB1B,gCAAgC;IAyC9C;;OAEG;YACY,wBAAwB;YAWxB,8BAA8B;IAyC7C;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAInC;;OAEG;YACW,qBAAqB;IAgFnC,OAAO,CAAC,+BAA+B;YAIzB,mBAAmB;YAyBnB,mCAAmC;YAmCnC,kCAAkC;YAQlC,iCAAiC;IAc/C;;;OAGG;YACW,2BAA2B;IA+IzC;;OAEG;YACW,0BAA0B;IAsExC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,YAAY;IAYpB;;;;;;;OAOG;YACW,+BAA+B;IA4E7C;;;;;;;;;;;;;;;OAeG;IACG,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA+F3G;;;;;;;;;;;;;;OAcG;IACG,aAAa,CAAC,MAAM,EAAE,qBAAqB,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CA4D1G"}
|
|
@@ -426,19 +426,55 @@ class BaseMindooDB {
|
|
|
426
426
|
// ---------------------------------------------------------------------------
|
|
427
427
|
// Local cache support (ICacheable)
|
|
428
428
|
// ---------------------------------------------------------------------------
|
|
429
|
+
/**
|
|
430
|
+
* Compute the cache prefix for this database. Time-travel instances get a
|
|
431
|
+
* cutoff-scoped prefix (`.../tt/<timeTravelDate>`) so their persisted
|
|
432
|
+
* state (doc cache, metadata checkpoint, summary buckets) is isolated per
|
|
433
|
+
* cutoff and can never collide with — or leak into — the live cache.
|
|
434
|
+
*/
|
|
435
|
+
computeCachePrefix() {
|
|
436
|
+
const cacheIdentity = this.store.getCacheIdentity?.() ?? this.store.getId();
|
|
437
|
+
const base = `${this.tenant.getId()}/${cacheIdentity}`;
|
|
438
|
+
return this.timeTravelDate == null ? base : `${base}/tt/${this.timeTravelDate}`;
|
|
439
|
+
}
|
|
429
440
|
/**
|
|
430
441
|
* Attach a CacheManager so this DB participates in periodic cache flushing.
|
|
431
442
|
*/
|
|
432
443
|
setCacheManager(cacheManager) {
|
|
433
444
|
this.cacheManager = cacheManager;
|
|
434
|
-
|
|
435
|
-
this.cachePrefix = `${this.tenant.getId()}/${cacheIdentity}`;
|
|
445
|
+
this.cachePrefix = this.computeCachePrefix();
|
|
436
446
|
cacheManager.register(this);
|
|
437
447
|
// A summary store created before the cache manager was attached picks
|
|
438
448
|
// up persistence now.
|
|
439
449
|
this.summaryStore?.attachCache(cacheManager, `${this.getCachePrefix()}/summary`);
|
|
440
450
|
this.fulltextIndex?.attachCache(cacheManager, `${this.getCachePrefix()}/fulltext`);
|
|
441
451
|
}
|
|
452
|
+
/**
|
|
453
|
+
* Detach this DB (and its summary/full-text cacheables) from the
|
|
454
|
+
* CacheManager WITHOUT flushing pending state. Used by the tenant's
|
|
455
|
+
* time-travel cache purge: the persisted records are about to be
|
|
456
|
+
* deleted, so a deregister-triggered flush would only resurrect them.
|
|
457
|
+
*/
|
|
458
|
+
detachCacheManagerForPurge() {
|
|
459
|
+
const cacheManager = this.cacheManager;
|
|
460
|
+
if (!cacheManager) {
|
|
461
|
+
return;
|
|
462
|
+
}
|
|
463
|
+
// Drop dirty markers first so CacheManager.deregister() skips its
|
|
464
|
+
// flush-before-remove step.
|
|
465
|
+
this.dirtyDocIds.clear();
|
|
466
|
+
this.cacheMetaDirty = false;
|
|
467
|
+
this.summaryStore?.clearDirty();
|
|
468
|
+
this.fulltextIndex?.clearDirty();
|
|
469
|
+
void cacheManager.deregister(this);
|
|
470
|
+
if (this.summaryStore) {
|
|
471
|
+
void cacheManager.deregister(this.summaryStore);
|
|
472
|
+
}
|
|
473
|
+
if (this.fulltextIndex) {
|
|
474
|
+
void cacheManager.deregister(this.fulltextIndex);
|
|
475
|
+
}
|
|
476
|
+
this.cacheManager = null;
|
|
477
|
+
}
|
|
442
478
|
/**
|
|
443
479
|
* Get (lazily creating) the document summary buffer for this database.
|
|
444
480
|
*
|
|
@@ -859,7 +895,9 @@ class BaseMindooDB {
|
|
|
859
895
|
}
|
|
860
896
|
this.changeNotifyTimer = setTimeout(() => {
|
|
861
897
|
this.changeNotifyTimer = null;
|
|
862
|
-
|
|
898
|
+
// Timer-based emission only runs outside a change-notification hold,
|
|
899
|
+
// i.e. it coalesces local writes committed this event-loop turn.
|
|
900
|
+
this.emitPendingChangeEvent("local");
|
|
863
901
|
}, 0);
|
|
864
902
|
}
|
|
865
903
|
/**
|
|
@@ -872,10 +910,11 @@ class BaseMindooDB {
|
|
|
872
910
|
endChangeNotificationHold() {
|
|
873
911
|
this.changeNotificationHolds = Math.max(0, this.changeNotificationHolds - 1);
|
|
874
912
|
if (this.changeNotificationHolds === 0) {
|
|
875
|
-
|
|
913
|
+
// A hold wraps a sync-ingest batch, so the released batch is ingest.
|
|
914
|
+
this.emitPendingChangeEvent("ingest");
|
|
876
915
|
}
|
|
877
916
|
}
|
|
878
|
-
emitPendingChangeEvent() {
|
|
917
|
+
emitPendingChangeEvent(origin) {
|
|
879
918
|
if (this.changeNotificationHolds > 0) {
|
|
880
919
|
return;
|
|
881
920
|
}
|
|
@@ -894,6 +933,7 @@ class BaseMindooDB {
|
|
|
894
933
|
const event = {
|
|
895
934
|
changes,
|
|
896
935
|
cursor: this.getLatestChangeCursor(),
|
|
936
|
+
origin,
|
|
897
937
|
};
|
|
898
938
|
for (const listener of this.changeListeners) {
|
|
899
939
|
try {
|
|
@@ -933,7 +973,7 @@ class BaseMindooDB {
|
|
|
933
973
|
return (0, queryLive_1.executeQueryLive)(this, this.getSummaryStore(), query, onResult, options);
|
|
934
974
|
}
|
|
935
975
|
getCachePrefix() {
|
|
936
|
-
return this.cachePrefix ??
|
|
976
|
+
return this.cachePrefix ?? this.computeCachePrefix();
|
|
937
977
|
}
|
|
938
978
|
hasDirtyState() {
|
|
939
979
|
return this.dirtyDocIds.size > 0 || this.cacheMetaDirty;
|
|
@@ -1768,6 +1808,7 @@ class BaseMindooDB {
|
|
|
1768
1808
|
await this.reconcileRestoredIndexWithStore();
|
|
1769
1809
|
}
|
|
1770
1810
|
this.probeFulltextSetupAtOpen();
|
|
1811
|
+
this.probeSummarySetupAtOpen();
|
|
1771
1812
|
return;
|
|
1772
1813
|
}
|
|
1773
1814
|
}
|
|
@@ -1777,6 +1818,50 @@ class BaseMindooDB {
|
|
|
1777
1818
|
// record the current fingerprint for the next warm start.
|
|
1778
1819
|
this.markKeyBagFingerprintReconciled(await this.computeCurrentKeyBagFingerprint());
|
|
1779
1820
|
this.probeFulltextSetupAtOpen();
|
|
1821
|
+
this.probeSummarySetupAtOpen();
|
|
1822
|
+
}
|
|
1823
|
+
/**
|
|
1824
|
+
* Open-time probe for summary auto-activation on time-travel snapshots.
|
|
1825
|
+
*
|
|
1826
|
+
* Live databases activate their summary buffer through coalesced change
|
|
1827
|
+
* events ({@link handleChangesForSummaryAutoUpdate}) or an explicit
|
|
1828
|
+
* {@link getSummaryStore} call. A time-travel snapshot is read-only and
|
|
1829
|
+
* never receives change events, so without an open-time probe a snapshot
|
|
1830
|
+
* whose setup document (as of the cutoff) configures a summary would
|
|
1831
|
+
* never build one — every summary-first query/view would pay the full
|
|
1832
|
+
* catch-up on first use. Fired once (fire-and-forget) at the end of
|
|
1833
|
+
* {@link initialize}; the single `update()` run materializes the
|
|
1834
|
+
* documents at the cutoff and fills the buffer (restoring a persisted
|
|
1835
|
+
* state first when a CacheManager is attached, see
|
|
1836
|
+
* `persistTimeTravelCache`).
|
|
1837
|
+
*/
|
|
1838
|
+
probeSummarySetupAtOpen() {
|
|
1839
|
+
if (!this.isTimeTravelMode()) {
|
|
1840
|
+
return;
|
|
1841
|
+
}
|
|
1842
|
+
if (!this.summaryAutoUpdateEnabled || this.summarySetupProbed || this.summaryStore) {
|
|
1843
|
+
return;
|
|
1844
|
+
}
|
|
1845
|
+
if (this._isAdminOnlyDb || this.store.getId() === "directory") {
|
|
1846
|
+
return;
|
|
1847
|
+
}
|
|
1848
|
+
this.summarySetupProbed = true;
|
|
1849
|
+
void (async () => {
|
|
1850
|
+
try {
|
|
1851
|
+
const config = await this.getSummarySetup();
|
|
1852
|
+
if (config === null || this.summaryStore) {
|
|
1853
|
+
return;
|
|
1854
|
+
}
|
|
1855
|
+
// No explicit config: the store adopts the setup-document config on
|
|
1856
|
+
// its first update run (seedConfigFromSetupDoc), mirroring
|
|
1857
|
+
// activateSummaryFromSetupDoc for live databases.
|
|
1858
|
+
const summary = this.getSummaryStore();
|
|
1859
|
+
await summary.update();
|
|
1860
|
+
}
|
|
1861
|
+
catch (error) {
|
|
1862
|
+
this.logger.warn(`Time-travel summary activation failed: ${error}`);
|
|
1863
|
+
}
|
|
1864
|
+
})();
|
|
1780
1865
|
}
|
|
1781
1866
|
/**
|
|
1782
1867
|
* Open-time probe for full-text auto-activation. Without it, a
|
|
@@ -2465,7 +2550,7 @@ class BaseMindooDB {
|
|
|
2465
2550
|
*/
|
|
2466
2551
|
async transferEntriesInBatches(sourceStore, targetStore, entryIds, options, state) {
|
|
2467
2552
|
if (entryIds.length === 0) {
|
|
2468
|
-
return { transferred: state.transferred, cancelled: false, rejected: [] };
|
|
2553
|
+
return { transferred: state.transferred, transferredBytes: state.transferredBytes, cancelled: false, rejected: [] };
|
|
2469
2554
|
}
|
|
2470
2555
|
const onProgress = options?.onProgress;
|
|
2471
2556
|
const signal = options?.signal;
|
|
@@ -2477,6 +2562,7 @@ class BaseMindooDB {
|
|
|
2477
2562
|
// receipts are applied per batch and are order-independent.
|
|
2478
2563
|
const maxConcurrent = Math.min(Math.max(1, Math.floor(options?.maxConcurrentBatches ?? BaseMindooDB.DEFAULT_MAX_CONCURRENT_TRANSFER_BATCHES)), totalTransferBatches);
|
|
2479
2564
|
let transferred = state.transferred;
|
|
2565
|
+
let transferredBytes = state.transferredBytes;
|
|
2480
2566
|
let cancelled = false;
|
|
2481
2567
|
let firstError = null;
|
|
2482
2568
|
let nextBatchIndex = 0;
|
|
@@ -2502,6 +2588,7 @@ class BaseMindooDB {
|
|
|
2502
2588
|
phase: "transferring",
|
|
2503
2589
|
message: `Transferring batch ${currentTransferBatch}/${totalTransferBatches} (${batchIds.length} entries, ${pageSummary}scanned ${state.scanned})...`,
|
|
2504
2590
|
transferredEntries: transferred,
|
|
2591
|
+
transferredBytes,
|
|
2505
2592
|
scannedEntries: state.scanned,
|
|
2506
2593
|
totalSourceEntries: state.totalSourceEntries,
|
|
2507
2594
|
currentPage: state.currentPage,
|
|
@@ -2526,10 +2613,17 @@ class BaseMindooDB {
|
|
|
2526
2613
|
if (receipts.length > 0 && sourceStore.applyWitnessReceipts) {
|
|
2527
2614
|
await sourceStore.applyWitnessReceipts(receipts);
|
|
2528
2615
|
}
|
|
2529
|
-
|
|
2616
|
+
const rejectedIds = batchRejected.length > 0 ? new Set(batchRejected.map((entry) => entry.id)) : null;
|
|
2617
|
+
if (rejectedIds) {
|
|
2530
2618
|
rejected.push(...batchRejected);
|
|
2531
2619
|
this.logger.warn(`Target rejected ${batchRejected.length} of ${batchEntries.length} entries in transfer batch ${currentTransferBatch}/${totalTransferBatches}`);
|
|
2532
2620
|
}
|
|
2621
|
+
for (const entry of batchEntries) {
|
|
2622
|
+
if (rejectedIds?.has(entry.id)) {
|
|
2623
|
+
continue;
|
|
2624
|
+
}
|
|
2625
|
+
transferredBytes += entry.encryptedSize ?? entry.encryptedData.length;
|
|
2626
|
+
}
|
|
2533
2627
|
transferred += batchEntries.length - batchRejected.length;
|
|
2534
2628
|
}
|
|
2535
2629
|
catch (error) {
|
|
@@ -2546,6 +2640,7 @@ class BaseMindooDB {
|
|
|
2546
2640
|
phase: "transferring",
|
|
2547
2641
|
message: `Transferred ${transferred} entries after batch ${currentTransferBatch}/${totalTransferBatches}`,
|
|
2548
2642
|
transferredEntries: transferred,
|
|
2643
|
+
transferredBytes,
|
|
2549
2644
|
scannedEntries: state.scanned,
|
|
2550
2645
|
totalSourceEntries: state.totalSourceEntries,
|
|
2551
2646
|
currentPage: state.currentPage,
|
|
@@ -2557,12 +2652,12 @@ class BaseMindooDB {
|
|
|
2557
2652
|
};
|
|
2558
2653
|
await Promise.all(Array.from({ length: maxConcurrent }, () => runWorker()));
|
|
2559
2654
|
if (signal?.aborted || cancelled) {
|
|
2560
|
-
return { transferred, cancelled: true, rejected };
|
|
2655
|
+
return { transferred, transferredBytes, cancelled: true, rejected };
|
|
2561
2656
|
}
|
|
2562
2657
|
if (firstError) {
|
|
2563
2658
|
throw firstError;
|
|
2564
2659
|
}
|
|
2565
|
-
return { transferred, cancelled: false, rejected };
|
|
2660
|
+
return { transferred, transferredBytes, cancelled: false, rejected };
|
|
2566
2661
|
}
|
|
2567
2662
|
/**
|
|
2568
2663
|
* Normalize the polymorphic putEntries result (`void`, receipts array, or
|
|
@@ -2604,6 +2699,7 @@ class BaseMindooDB {
|
|
|
2604
2699
|
}
|
|
2605
2700
|
async syncEntriesFromStoreImpl(sourceStore, targetStore, options) {
|
|
2606
2701
|
let transferred = 0;
|
|
2702
|
+
let transferredBytes = 0;
|
|
2607
2703
|
let scanned = 0;
|
|
2608
2704
|
// Per-entry rejections reported by a witnessing target (sync-v5): the
|
|
2609
2705
|
// sync completes; rejected entries are surfaced to the caller as warnings.
|
|
@@ -2687,7 +2783,7 @@ class BaseMindooDB {
|
|
|
2687
2783
|
if (signal?.aborted) {
|
|
2688
2784
|
discardPrefetch();
|
|
2689
2785
|
persistScanCursor(cursor);
|
|
2690
|
-
return { transferred, scanned, cancelled: true, rejected };
|
|
2786
|
+
return { transferred, transferredBytes, scanned, cancelled: true, rejected };
|
|
2691
2787
|
}
|
|
2692
2788
|
const page = nextPagePromise
|
|
2693
2789
|
? await nextPagePromise
|
|
@@ -2700,7 +2796,7 @@ class BaseMindooDB {
|
|
|
2700
2796
|
if (signal?.aborted) {
|
|
2701
2797
|
discardPrefetch();
|
|
2702
2798
|
persistScanCursor(cursor);
|
|
2703
|
-
return { transferred, scanned, cancelled: true, rejected };
|
|
2799
|
+
return { transferred, transferredBytes, scanned, cancelled: true, rejected };
|
|
2704
2800
|
}
|
|
2705
2801
|
if (page.entries.length > 0) {
|
|
2706
2802
|
onProgress?.({
|
|
@@ -2716,23 +2812,25 @@ class BaseMindooDB {
|
|
|
2716
2812
|
if (signal?.aborted) {
|
|
2717
2813
|
discardPrefetch();
|
|
2718
2814
|
persistScanCursor(cursor);
|
|
2719
|
-
return { transferred, scanned, cancelled: true, rejected };
|
|
2815
|
+
return { transferred, transferredBytes, scanned, cancelled: true, rejected };
|
|
2720
2816
|
}
|
|
2721
2817
|
if (missingIds.length > 0) {
|
|
2722
2818
|
const transferResult = await this.transferEntriesInBatches(sourceStore, targetStore, missingIds, options, {
|
|
2723
2819
|
transferred,
|
|
2820
|
+
transferredBytes,
|
|
2724
2821
|
scanned,
|
|
2725
2822
|
totalSourceEntries: totalSourceEstimate,
|
|
2726
2823
|
currentPage,
|
|
2727
2824
|
});
|
|
2728
2825
|
transferred = transferResult.transferred;
|
|
2826
|
+
transferredBytes = transferResult.transferredBytes;
|
|
2729
2827
|
rejected.push(...transferResult.rejected);
|
|
2730
2828
|
if (transferResult.cancelled) {
|
|
2731
2829
|
// The current page's transfer did not complete: persist the
|
|
2732
2830
|
// boundary of the last fully transferred page instead.
|
|
2733
2831
|
discardPrefetch();
|
|
2734
2832
|
persistScanCursor(cursor);
|
|
2735
|
-
return { transferred, scanned, cancelled: true, rejected };
|
|
2833
|
+
return { transferred, transferredBytes, scanned, cancelled: true, rejected };
|
|
2736
2834
|
}
|
|
2737
2835
|
}
|
|
2738
2836
|
}
|
|
@@ -2740,6 +2838,7 @@ class BaseMindooDB {
|
|
|
2740
2838
|
phase: 'transferring',
|
|
2741
2839
|
message: `Transferred ${transferred} entries (page ${currentPage}, scanned ${scanned})`,
|
|
2742
2840
|
transferredEntries: transferred,
|
|
2841
|
+
transferredBytes,
|
|
2743
2842
|
scannedEntries: scanned,
|
|
2744
2843
|
totalSourceEntries: totalSourceEstimate,
|
|
2745
2844
|
currentPage,
|
|
@@ -2750,7 +2849,7 @@ class BaseMindooDB {
|
|
|
2750
2849
|
}
|
|
2751
2850
|
}
|
|
2752
2851
|
persistScanCursor(cursor);
|
|
2753
|
-
return { transferred, scanned, cancelled: false, rejected };
|
|
2852
|
+
return { transferred, transferredBytes, scanned, cancelled: false, rejected };
|
|
2754
2853
|
}
|
|
2755
2854
|
onProgress?.({
|
|
2756
2855
|
phase: 'preparing',
|
|
@@ -2775,23 +2874,27 @@ class BaseMindooDB {
|
|
|
2775
2874
|
});
|
|
2776
2875
|
const transferResult = await this.transferEntriesInBatches(sourceStore, targetStore, sourceNewMetadata.map((m) => m.id), options, {
|
|
2777
2876
|
transferred,
|
|
2877
|
+
transferredBytes,
|
|
2778
2878
|
scanned: sourceNewMetadata.length,
|
|
2779
2879
|
totalSourceEntries: sourceNewMetadata.length,
|
|
2780
2880
|
});
|
|
2781
2881
|
transferred = transferResult.transferred;
|
|
2882
|
+
transferredBytes = transferResult.transferredBytes;
|
|
2782
2883
|
rejected.push(...transferResult.rejected);
|
|
2783
2884
|
if (transferResult.cancelled) {
|
|
2784
|
-
return { transferred, scanned: sourceNewMetadata.length, cancelled: true, rejected };
|
|
2885
|
+
return { transferred, transferredBytes, scanned: sourceNewMetadata.length, cancelled: true, rejected };
|
|
2785
2886
|
}
|
|
2786
2887
|
onProgress?.({
|
|
2787
2888
|
phase: 'transferring',
|
|
2788
2889
|
message: `Transferred ${transferred} entries`,
|
|
2789
2890
|
transferredEntries: transferred,
|
|
2891
|
+
transferredBytes,
|
|
2790
2892
|
scannedEntries: sourceNewMetadata.length,
|
|
2791
2893
|
totalSourceEntries: sourceNewMetadata.length,
|
|
2792
2894
|
});
|
|
2793
2895
|
return {
|
|
2794
2896
|
transferred,
|
|
2897
|
+
transferredBytes,
|
|
2795
2898
|
scanned: sourceNewMetadata.length,
|
|
2796
2899
|
cancelled: false,
|
|
2797
2900
|
rejected,
|
|
@@ -2883,10 +2986,11 @@ class BaseMindooDB {
|
|
|
2883
2986
|
// ── Phase 5: transfer missing entries in pages ───────────────────
|
|
2884
2987
|
const pageSize = options?.pageSize ?? 500;
|
|
2885
2988
|
let transferred = 0;
|
|
2989
|
+
let transferredBytes = 0;
|
|
2886
2990
|
const rejected = [];
|
|
2887
2991
|
for (let offset = 0; offset < missingIds.length; offset += pageSize) {
|
|
2888
2992
|
if (options?.signal?.aborted) {
|
|
2889
|
-
return { transferred, scanned: allNeededArray.length, cancelled: true, rejected };
|
|
2993
|
+
return { transferred, transferredBytes, scanned: allNeededArray.length, cancelled: true, rejected };
|
|
2890
2994
|
}
|
|
2891
2995
|
const batch = missingIds.slice(offset, offset + pageSize);
|
|
2892
2996
|
const entries = await sourceStore.getEntries(batch);
|
|
@@ -2902,22 +3006,30 @@ class BaseMindooDB {
|
|
|
2902
3006
|
if (receipts.length > 0 && sourceStore.applyWitnessReceipts) {
|
|
2903
3007
|
await sourceStore.applyWitnessReceipts(receipts);
|
|
2904
3008
|
}
|
|
2905
|
-
|
|
3009
|
+
const rejectedIds = batchRejected.length > 0 ? new Set(batchRejected.map((entry) => entry.id)) : null;
|
|
3010
|
+
if (rejectedIds) {
|
|
2906
3011
|
rejected.push(...batchRejected);
|
|
2907
3012
|
this.logger.warn(`Dense sync: target rejected ${batchRejected.length} of ${entries.length} entries in batch at offset ${offset}`);
|
|
2908
3013
|
}
|
|
3014
|
+
for (const entry of entries) {
|
|
3015
|
+
if (rejectedIds?.has(entry.id)) {
|
|
3016
|
+
continue;
|
|
3017
|
+
}
|
|
3018
|
+
transferredBytes += entry.encryptedSize ?? entry.encryptedData.length;
|
|
3019
|
+
}
|
|
2909
3020
|
transferred += entries.length - batchRejected.length;
|
|
2910
3021
|
onProgress?.({
|
|
2911
3022
|
phase: "transferring",
|
|
2912
3023
|
message: `Dense sync: transferred ${transferred}/${missingIds.length} entries`,
|
|
2913
3024
|
transferredEntries: transferred,
|
|
3025
|
+
transferredBytes,
|
|
2914
3026
|
scannedEntries: allNeededArray.length,
|
|
2915
3027
|
totalSourceEntries: allNeededArray.length,
|
|
2916
3028
|
});
|
|
2917
3029
|
}
|
|
2918
3030
|
this.logger.info(`Dense sync complete: transferred ${transferred} entries` +
|
|
2919
3031
|
(rejected.length > 0 ? `, ${rejected.length} rejected by target` : ""));
|
|
2920
|
-
return { transferred, scanned: allNeededArray.length, cancelled: false, rejected };
|
|
3032
|
+
return { transferred, transferredBytes, scanned: allNeededArray.length, cancelled: false, rejected };
|
|
2921
3033
|
}
|
|
2922
3034
|
getStore() {
|
|
2923
3035
|
return this.store;
|
|
@@ -10084,23 +10196,26 @@ class BaseMindooDB {
|
|
|
10084
10196
|
const restoreAuthOverride = await this.applyNetworkAuthOverrideForSync(remoteStore, options);
|
|
10085
10197
|
try {
|
|
10086
10198
|
const syncResult = await this.syncEntriesFromStore(remoteStore, localStore, options);
|
|
10199
|
+
const transferredBytes = syncResult.transferredBytes ?? 0;
|
|
10087
10200
|
this.logger.debug(`Transferred ${syncResult.transferred} entries from remote store`);
|
|
10088
10201
|
if (syncResult.cancelled) {
|
|
10089
10202
|
this.logger.info(`Pull cancelled after transferring ${syncResult.transferred} entries`);
|
|
10090
10203
|
return {
|
|
10091
10204
|
transferredEntries: syncResult.transferred,
|
|
10205
|
+
transferredBytes,
|
|
10092
10206
|
scannedEntries: syncResult.scanned,
|
|
10093
10207
|
cancelled: true,
|
|
10094
10208
|
};
|
|
10095
10209
|
}
|
|
10096
10210
|
if (syncResult.transferred === 0) {
|
|
10097
10211
|
this.logger.debug(`No new entries to pull`);
|
|
10098
|
-
return { transferredEntries: 0, scannedEntries: syncResult.scanned, cancelled: false };
|
|
10212
|
+
return { transferredEntries: 0, transferredBytes, scannedEntries: syncResult.scanned, cancelled: false };
|
|
10099
10213
|
}
|
|
10100
10214
|
options?.onProgress?.({
|
|
10101
10215
|
phase: 'processing',
|
|
10102
10216
|
message: `Processing ${syncResult.transferred} new entries...`,
|
|
10103
10217
|
transferredEntries: syncResult.transferred,
|
|
10218
|
+
transferredBytes,
|
|
10104
10219
|
scannedEntries: syncResult.scanned,
|
|
10105
10220
|
});
|
|
10106
10221
|
// Sync the local store to process the new entries
|
|
@@ -10109,6 +10224,7 @@ class BaseMindooDB {
|
|
|
10109
10224
|
this.logger.info(`Pull cancelled before local processing after transferring ${syncResult.transferred} entries`);
|
|
10110
10225
|
return {
|
|
10111
10226
|
transferredEntries: syncResult.transferred,
|
|
10227
|
+
transferredBytes,
|
|
10112
10228
|
scannedEntries: syncResult.scanned,
|
|
10113
10229
|
cancelled: true,
|
|
10114
10230
|
};
|
|
@@ -10130,6 +10246,7 @@ class BaseMindooDB {
|
|
|
10130
10246
|
this.logger.info(`Pull cancelled after local processing for ${storeKind} entries`);
|
|
10131
10247
|
return {
|
|
10132
10248
|
transferredEntries: syncResult.transferred,
|
|
10249
|
+
transferredBytes,
|
|
10133
10250
|
scannedEntries: syncResult.scanned,
|
|
10134
10251
|
cancelled: true,
|
|
10135
10252
|
};
|
|
@@ -10139,10 +10256,12 @@ class BaseMindooDB {
|
|
|
10139
10256
|
phase: 'complete',
|
|
10140
10257
|
message: `Pull complete: ${syncResult.transferred} ${storeKind} entries synced`,
|
|
10141
10258
|
transferredEntries: syncResult.transferred,
|
|
10259
|
+
transferredBytes,
|
|
10142
10260
|
scannedEntries: syncResult.scanned,
|
|
10143
10261
|
});
|
|
10144
10262
|
return {
|
|
10145
10263
|
transferredEntries: syncResult.transferred,
|
|
10264
|
+
transferredBytes,
|
|
10146
10265
|
scannedEntries: syncResult.scanned,
|
|
10147
10266
|
cancelled: false,
|
|
10148
10267
|
};
|
|
@@ -10178,6 +10297,7 @@ class BaseMindooDB {
|
|
|
10178
10297
|
const restoreAuthOverride = await this.applyNetworkAuthOverrideForSync(remoteStore, options);
|
|
10179
10298
|
try {
|
|
10180
10299
|
const syncResult = await this.syncEntriesFromStore(localStore, remoteStore, options);
|
|
10300
|
+
const transferredBytes = syncResult.transferredBytes ?? 0;
|
|
10181
10301
|
this.logger.debug(`Transferred ${syncResult.transferred} entries to remote store`);
|
|
10182
10302
|
const rejectedEntries = syncResult.rejected ?? [];
|
|
10183
10303
|
if (rejectedEntries.length > 0) {
|
|
@@ -10188,6 +10308,7 @@ class BaseMindooDB {
|
|
|
10188
10308
|
this.logger.info(`Push cancelled after transferring ${syncResult.transferred} entries`);
|
|
10189
10309
|
return {
|
|
10190
10310
|
transferredEntries: syncResult.transferred,
|
|
10311
|
+
transferredBytes,
|
|
10191
10312
|
scannedEntries: syncResult.scanned,
|
|
10192
10313
|
cancelled: true,
|
|
10193
10314
|
...(rejectedEntries.length > 0 ? { rejectedEntries } : {}),
|
|
@@ -10203,10 +10324,12 @@ class BaseMindooDB {
|
|
|
10203
10324
|
phase: 'complete',
|
|
10204
10325
|
message: `Push complete: ${syncResult.transferred} entries transferred`,
|
|
10205
10326
|
transferredEntries: syncResult.transferred,
|
|
10327
|
+
transferredBytes,
|
|
10206
10328
|
scannedEntries: syncResult.scanned,
|
|
10207
10329
|
});
|
|
10208
10330
|
return {
|
|
10209
10331
|
transferredEntries: syncResult.transferred,
|
|
10332
|
+
transferredBytes,
|
|
10210
10333
|
scannedEntries: syncResult.scanned,
|
|
10211
10334
|
cancelled: false,
|
|
10212
10335
|
...(rejectedEntries.length > 0 ? { rejectedEntries } : {}),
|