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 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
- - ⚠️ Can currently read previously-synced local data (planned: data wipe on first connect after revocation)
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 ever deleted:
231
- - Complete history of who changed what and when
232
- - Cryptographic proof of all operations
233
- - GDPR compliance via `purgeDocHistory()` when legally required
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":"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;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAWjD;;;;;;;;;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;IAUlC;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,sBAAsB;IA8B9B;;;;;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;IA6CjC;;;;;;;;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;IA6HtC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;YAenB,oBAAoB;YAyBpB,wBAAwB;IAgPtC;;;;;;;;;;;;;;;OAeG;YACW,yBAAyB;IA4IvC,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;IAwF3G;;;;;;;;;;;;;;OAcG;IACG,aAAa,CAAC,MAAM,EAAE,qBAAqB,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAwD1G"}
1
+ {"version":3,"file":"BaseMindooDB.d.ts","sourceRoot":"","sources":["../../src/core/BaseMindooDB.ts"],"names":[],"mappings":"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"}
@@ -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
- const cacheIdentity = this.store.getCacheIdentity?.() ?? this.store.getId();
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
- this.emitPendingChangeEvent();
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
- this.emitPendingChangeEvent();
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 ?? `${this.tenant.getId()}/${this.store.getId()}`;
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
- if (batchRejected.length > 0) {
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
- if (batchRejected.length > 0) {
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 } : {}),