cry-db 2.6.1 → 2.6.3

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/CLAUDE.md ADDED
@@ -0,0 +1,202 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Commands
6
+
7
+ ```bash
8
+ # Build
9
+ npx tsc
10
+
11
+ # Test (all)
12
+ npm test
13
+
14
+ # Test (single file)
15
+ npx mocha --timeout 4000 test/<file>.mjs
16
+
17
+ # Publish
18
+ npm pub
19
+
20
+ # Speed benchmark (update / updateCollections)
21
+ node bench/speed.mjs # default: n=10000, batch=100, all modes/apis
22
+ node bench/speed.mjs --json # JSON output for diffing
23
+ node bench/speed.mjs --modes=bracket,raw --apis=update --collections=racuni
24
+ ```
25
+
26
+ `bench/speed.mjs` measures `update` and `updateCollections` against three
27
+ implementations:
28
+
29
+ - `bracket` — current bracket-by-`_id` syntax (`postavke[<id>].field`)
30
+ - `fullarray` — pre-bracket whole-array replacement (`postavke: [...]`)
31
+ - `raw` — direct `mongodb` driver (`$push`, `$set`+`arrayFilters`, `bulkWrite`)
32
+
33
+ Reads templates from `mongodb://127.0.0.1:27017/mozirje` (collections `racuni`,
34
+ `obiski`), writes to local `test` DB (collections `speedRacuni`, `speedObiski`,
35
+ dropped per cell). Workload per record: insert → add array element → set
36
+ `kolicina`. See `SPEED-MEASUREMENT.md` for results.
37
+
38
+ ## Architecture
39
+
40
+ This is a MongoDB wrapper library (`cry-db`) with a layered class hierarchy:
41
+
42
+ ```
43
+ Base → Db → Mongo
44
+
45
+ Repo<T> (single-collection type-safe wrapper)
46
+ ```
47
+
48
+ - **`Base`** (`src/base.mts`): MongoDB connection (lazy, cached), ObjectId/timestamp utilities.
49
+ - **`Db`** (`src/db.mts`): Database selection, collection/index management, backup/restore.
50
+ - **`Mongo`** (`src/mongo.mts`): Full CRUD, soft-delete, archive, block, sequences, auditing, publish events, transactions.
51
+ - **`Repo<T>`** (`src/repo.mts`): Convenience wrapper around `Mongo` bound to a single collection with generics.
52
+ - **`utils.mts`** (`src/utils.mts`): Pure, mongo-independent diff helpers (`computeObjDiff`, `applyObjDiff`, plus `deepEquals`/`setByPath`/`deleteByPath`/`tokenizePath`). Server-side counterpart of the cry-synced-db-client diff machinery; `computeObjDiff`/`applyObjDiff` are re-exported from `index.mts`.
53
+ - **`types.mts`**: All TypeScript types; read this first when adding new features.
54
+
55
+ ## Key Design Patterns
56
+
57
+ ### Feature Flags
58
+
59
+ Features are opt-in via configuration methods on `Mongo`/`Repo`:
60
+
61
+ - `useRevisions()` — enables `_rev` counter
62
+ - `useSoftDelete()` — enables soft-delete (`_deleted` field); `delete()` becomes reversible
63
+ - `useArchive()` — enables archive lifecycle (`_archived` field)
64
+ - `emitPublishEvents()` / `emitPublishRevEvents()` / `emitPublishBracketedEvents()` — event emission on writes
65
+ - `useAuditing()` / `auditToCollection()` — audit logging
66
+
67
+ ### Entity Metadata Fields (auto-managed)
68
+
69
+ - `_id`: ObjectId
70
+ - `_rev`: revision counter (if `useRevisions()`)
71
+ - `_ts`: timestamp on every write
72
+ - `_deleted`, `_archived`, `_blocked`: lifecycle flags (Date when set)
73
+
74
+ All query methods auto-filter deleted/archived records unless `returnDeleted`/`returnArchived` opts are passed. Blocked records are **never** filtered.
75
+
76
+ ### Sequences (auto-increment)
77
+
78
+ Fields with value `'SEQ_NEXT'` are replaced with the next sequence value before insert/update. Uses a dedicated `_sequences` collection. Batch inserts reserve ranges atomically.
79
+
80
+ ### ID Handling
81
+
82
+ `_toId()` and `replaceIds()` auto-convert strings (24-char hex), numbers, or entity objects to `ObjectId`. Always use these utilities — never assume the caller passes the right type.
83
+
84
+ ### Publish Events
85
+
86
+ Channel format: `"db/{database}/{collection}"` or `"db/{database}/{collection}/{id}"`.
87
+
88
+ - `emitPublishEvents()`: full document payloads
89
+ - `emitPublishRevEvents()`: revision-only (lighter, requires `useRevisions()`)
90
+ - `emitPublishBracketedEvents()`: client diff only (`rawUpdate` forwarded) on
91
+ `dbbracketed/{db}/{collection}`. Insert operations carry the full document.
92
+ Useful for consumers that apply deltas locally rather than replacing whole
93
+ parent arrays/objects.
94
+
95
+ ### Transactions
96
+
97
+ `withTransaction(async (client, session) => {...})` wraps operations in a MongoDB session. Requires a replica set.
98
+
99
+ ### `updateCollections` `mustRefresh`
100
+
101
+ Each `updates`/`deletes` entry carries `_rev` (the client's base revision). `updateCollections` returns `results.mustRefresh: (DbEntity & Obj)[]` — the **full, sanitized** post-write record for any entry the client must re-adopt: cry-db resolved a field (`SEQ_*`/`__hashed__`), a concurrent external write advanced the stored `_rev` beyond the client's base, or `_rev` was omitted (old-client fallback → `?? 0`). Invariant: every `mustRefresh._id` also appears in `inserted`/`updated`/`deleted` (it is supplementary, never the sole signal). Records are sanitized via `_buildMustRefreshRecord` (clones + `_processReturnedObject`), so `__hashed__` values never leave the server. Conflict detection requires `useRevisions()`; field-resolution refresh does not. Per-update SEQ/hash detection is captured in `updateResolvedFlags` **before** bulk sequence resolution mutates the updates. See `test/updateCollectionsMustRefresh.mjs`.
102
+
103
+ ### Bracket-by-`_id` array paths
104
+
105
+ Update paths of the form `arr[<id>].field` (sub-field), `arr[<id>] = [...]`
106
+ (terminal-bracket insert/replace), and `arr[<id>] = undefined` (terminal-bracket
107
+ remove) target array elements by `_id` instead of by position. Supported at
108
+ arbitrary nesting depth (`arr[A].sub[B].sub[C].field` and combinations
109
+ thereof). All processing lives in `Mongo._applyBracketProcessing` and its
110
+ helpers (`_extractArrayInserts`, `_extractArrayRemoves`,
111
+ `_extractArraySubFieldUpdates`, `_buildArrayTransformExpr`,
112
+ `_buildElementMergeExpr`).
113
+
114
+ Two execution paths inside `_applyBracketProcessing`:
115
+
116
+ - **arrayFilters fast path** — for pure sub-field updates with no
117
+ terminal-bracket operation anywhere. `_extractArrayFilters` translates
118
+ `arr[<id>]` to `arr.$[fN]` with matching `arrayFilters` entries
119
+ (supports nested-bracket sub-field paths via nested positional filters).
120
+ - **Pipeline form** — required when ANY terminal-bracket insert or remove
121
+ is present (mongo forbids `arrayFilters` on pipelines). A
122
+ filter+concat+map+switch expression per parent array field, composed
123
+ recursively for nested arrays inside per-element overlays.
124
+
125
+ Same-id overlap on inner level (nested terminal-bracket insert + nested
126
+ sub-field on same `_id`) surfaces as a `kind: 'overlap'` entry in the
127
+ returned `warnings` array — both ops still apply (insert is base, sub-field
128
+ overlays). See `test/bracketNestedSpec.mjs` and
129
+ `test/bracketNestedPermutations.mjs` for the full matrix.
130
+
131
+ ## Publishing package and updating related packages
132
+
133
+ When instructed explicitly publish this package and update related packages
134
+ execute and display progress for the following tasks, in the order listed:
135
+
136
+ ### 1. Publish `cry-db`
137
+
138
+ - git commit
139
+ - `npx tsc` (there is no `npm run build` script — use tsc directly)
140
+ - `npm version patch && npm pub`
141
+ - `git push`
142
+
143
+ ### 2. Update `cry-db-exec` (`/Users/primozk/devmt/db-exec`)
144
+
145
+ - `npm install cry-db@<new-version>`
146
+ - `npx tsc` (may emit a TS5107 deprecation warning for moduleResolution — this is expected, ignore it)
147
+ - git add `package.json package-lock.json`, commit
148
+ - `npm version patch && npm pub`
149
+ - `git push`
150
+
151
+ ### 3. Update `cry-synced-db-client` (`/Users/primozk/devmt/synced-db-client`)
152
+
153
+ - `npm install cry-db@<new-version>`
154
+ - `npx tsc` (build runs automatically via prepublishOnly with bun)
155
+ - git add `package.json package-lock.json`, commit
156
+ - `npm version patch && npm pub`
157
+ - `git push`
158
+
159
+ ### 4. Publish `cry-klikvet-logic` (`/Users/primozk/devmt/klikvet-logic`)
160
+
161
+ - `npm install cry-db@<new-version>`
162
+ - `npx tsc`
163
+ - git add `package.json package-lock.json`, commit
164
+ - `npm version patch && npm pub`
165
+ - `git push`
166
+
167
+ ### 5. Update `rdb2` (`/Users/primozk/devmt/rdb2`)
168
+
169
+ - `npm install cry-db@<new-version> cry-db-exec@<new-version>`
170
+ - git add `package.json package-lock.json`, commit
171
+ - `git push`
172
+ - `pm2 restart rdb2 --update-env`
173
+ - (no publish — rdb2 is not an npm package)
174
+
175
+ ### 6. Update `klikvetapp` (`/Users/primozk/devmt/klikvetapp`)
176
+
177
+ - `npm install cry-db@<new-version> cry-synced-db-client@<new-version> cry-klikvet-logic@<new-version>`
178
+ - (do not commit — leave for user to review)
179
+
180
+ ### Notes
181
+
182
+ - The npm registry may need a few seconds to propagate after publish. If `npm install` fails with ETARGET, verify with `npm view cry-db version` and retry.
183
+ - `cry-db-exec` has `cry-db` as a devDependency (`^` range).
184
+ - `cry-synced-db-client` has `cry-db` as a regular dependency.
185
+ - `cry-klikvet-logic` has `cry-db` as a regular dependency.
186
+
187
+ ## Environment Variables
188
+
189
+ | Variable | Default | Purpose |
190
+ |---|---|---|
191
+ | `MONGO_URL` | `mongodb://127.0.0.1:27017` | MongoDB connection string (`Base` constructor) |
192
+ | `MONGO_DB` | — | Default database name (`Db` constructor) |
193
+ | `APPNAME` | cwd dirname | MongoDB `appName` connection option |
194
+ | `AUDIT_COLLECTIONS` | — | Comma-separated collections to audit on startup |
195
+ | `REMOVE_FIELDS_FOR_FINDNEWER` | — | Comma-separated fields stripped from `findNewer*` results and publish events; also settable at runtime via `findNewerRemoveFields()` |
196
+ | `REMOVE_FIELDS_ALWAYS` | — | Comma-separated fields stripped from all `find*` results and publish events; also settable at runtime via `removeFieldsAlways()` |
197
+ | `MONGO_DEBUG_FINDNEWERMANY` | — | When set, logs debug output for `findNewerMany` queries |
198
+ | `MONGO_SERIALIZE_FIND_NEWER_MANY` | — | When set, runs `findNewerMany` queries sequentially instead of in parallel |
199
+
200
+ ## Module System
201
+
202
+ All source files use `.mts` extension (TypeScript ES modules). Output is `.mjs` in `dist/`. Imports must use explicit `.mjs` extensions in the compiled output — the tsconfig handles this via `"module": "NodeNext"`.
@@ -1 +1 @@
1
- {"version":3,"file":"mongo.d.mts","sourceRoot":"","sources":["../src/mongo.mts"],"names":[],"mappings":"AAaA,OAAO,EACN,UAAU,EAEV,gBAAgB,EAChB,aAAa,EAEb,eAAe,EAEf,WAAW,EAIX,SAAS,EAGT,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,EAAE,EAAO,MAAM,UAAU,CAAC;AACnC,OAAO,EACN,WAAW,EACX,SAAS,EACT,uBAAuB,EACvB,sBAAsB,EAItB,MAAM,EAEN,YAAY,EACZ,EAAE,EACF,UAAU,EAEV,UAAU,EAGV,kBAAkB,EAElB,UAAU,EAgBV,SAAS,EACT,SAAS,EAET,UAAU,EACV,aAAa,EACb,MAAM,aAAa,CAAC;AAuErB,eAAO,MAAM,EAAE,GAAI,OAAO,GAAG,KAAG,GAiB/B,CAAC;AAsDF,KAAK,WAAW,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAyB5D,qBAAa,KAAM,SAAQ,EAAE;IAC5B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,qBAAqB,CAAU;IACvC,OAAO,CAAC,wBAAwB,CAAU;IAC1C,OAAO,CAAC,8BAA8B,CAAU;IAChD,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,kBAAkB,CAAW;IACrC,OAAO,CAAC,uBAAuB,CAAW;IAC1C,OAAO,CAAC,sBAAsB,CAAc;IAC5C,OAAO,CAAC,mBAAmB,CAAc;IACzC,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,sBAAsB,CAAU;gBAE5B,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IA6BrC,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EACpC,GAAG,EAAE,CAAC,EACN,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,IAAI;IAKP,GAAG,CAAC,CAAC,SAAS,MAAM,kBAAkB,EACrC,GAAG,EAAE,CAAC,EACN,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,IAAI;IAKP,IAAI,CAAC,CAAC,SAAS,MAAM,kBAAkB,EACtC,GAAG,EAAE,CAAC,EACN,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,IAAI;IAKP,OAAO,CAAC,QAAQ,EAAE,MAAM;IAIxB,QAAQ,CAAC,GAAG,EAAE,MAAM;IAIpB,YAAY,CAAC,OAAO,EAAE,OAAO;IAI7B,aAAa;IAIb,aAAa,CAAC,OAAO,EAAE,OAAO;IAI9B,cAAc;IAId;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO;IAI3B,WAAW;IAIX,WAAW,CAAC,OAAO,EAAE,OAAO;IAI5B,YAAY;IAIZ,OAAO,CAAC,OAAO,EAAE,OAAO;IAIxB,QAAQ;IAIR,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAKpC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,UAAO;IAkB3C;;;OAGG;IACH,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE;IAM3D;;;OAGG;IACH,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE;IAMxD,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE;IAkBnD,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAU;IAI7C,iBAAiB,CAAC,OAAO,EAAE,OAAO;IAIlC,kBAAkB;IAIlB,oBAAoB,CAAC,OAAO,EAAE,OAAO;IASrC,mBAAmB,CAAC,OAAO,EAAE,OAAO;IASpC,qBAAqB;IAIrB,2BAA2B;IAI3B;;;OAGG;IACG,QAAQ,CAAC,CAAC,EACf,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,eAAoB,GACxB,OAAO,CAAC,CAAC,EAAE,CAAC;IAiBT,KAAK,CAAC,CAAC,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,SAAS,CAAC,CAAC,CAAM,EACxB,IAAI,GAAE,SAAc,GAClB,OAAO,CAAC,MAAM,CAAC;IAuBZ,IAAI,CAAC,CAAC,EACX,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,SAAS,CAAC,CAAC,CAAM,EACxB,IAAI,GAAE,SAAc,GAClB,OAAO,CAAC,CAAC,EAAE,CAAC;IA6BT,OAAO,CAAC,CAAC,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,SAAS,CAAC,CAAC,CAAM,EACxB,IAAI,GAAE,SAAc,GAClB,OAAO,CAAC,CAAC,EAAE,CAAC;IAqBT,SAAS,CAAC,CAAC,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,EAC7C,KAAK,GAAE,SAAS,CAAC,CAAC,CAAM,EACxB,IAAI,GAAE,SAAc,GAClB,OAAO,CAAC,CAAC,EAAE,CAAC;IAgCf;;;;;;;;OAQG;IACG,aAAa,CAAC,CAAC,EACpB,IAAI,GAAE,YAAY,CAAC,CAAC,CAAC,EAAO,EAC5B,WAAW,GAAE,SAAc,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IA2EjC;;;;;;;;;;;;;;OAcG;IACG,mBAAmB,CAAC,CAAC,EAC1B,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAK,EAC5B,OAAO,EAAE,CACR,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,GAAG,EAAE,EACZ,MAAM,CAAC,EAAE,MAAM,KACX,OAAO,CAAC,IAAI,CAAC,EAClB,SAAS,SAAM,EACf,WAAW,GAAE,SAAc,GACzB,OAAO,CAAC,IAAI,CAAC;IAsGV,gBAAgB,CACrB,WAAW,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAwC/B,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAqBzE,OAAO,CAAC,oBAAoB;IAmGtB,OAAO,CAAC,CAAC,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,UAAU,CAAC,EAAE,UAAU,EACvB,IAAI,GAAE,SAAc,GAClB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IA8Bd,QAAQ,CAAC,CAAC,EACf,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,EAAE,EACN,UAAU,CAAC,EAAE,UAAU,EACvB,IAAI,GAAE,SAAc,GAClB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAsCd,0BAA0B,CAC/B,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,UAAU,CAAA;KAAE,EAAE,EACrE,IAAI,GAAE,SAAc,GAClB,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IA+DhD,SAAS,CAAC,CAAC,EAChB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,EAAE,EAAE,EACT,UAAU,CAAC,EAAE,UAAU,EACvB,IAAI,GAAE,SAAc,GAClB,OAAO,CAAC,CAAC,EAAE,CAAC;IAoCT,SAAS,CAAC,CAAC,EAChB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EACrB,OAAO,GAAE,aAA2C,GAClD,OAAO,CAAC,CAAC,CAAC;IAqFP,IAAI,CAAC,CAAC,EACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EACrB,EAAE,GAAE,EAAE,GAAG,SAAqB,EAC9B,OAAO,GAAE,aAA2C,GAClD,OAAO,CAAC,CAAC,CAAC;IA2EP,MAAM,CAAC,CAAC,EACb,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAmEhC,MAAM,CAAC,CAAC,EACb,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EACrB,OAAO,GAAE,aAA2C,GAClD,OAAO,CAAC,CAAC,CAAC;IA6FP,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA2CtE;;;;;;;OAOG;IACG,iBAAiB,CACtB,kBAAkB,EAAE,uBAAuB,CAAC,GAAG,CAAC,EAAE,GAChD,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAqa9B,WAAW,CAAC,CAAC,SAAS,MAAM,EACjC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GACjB,OAAO,CAAC,CAAC,EAAE,CAAC;IAkJT,UAAU,CAAC,CAAC,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GACrB,OAAO,CAAC,CAAC,EAAE,CAAC;IA0ET,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA6DjE,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAoChE,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAkCxE;;;OAGG;IACG,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAmCxE;;;OAGG;IACG,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAiC1E;;OAEG;IACG,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ/D;;;OAGG;IACG,gBAAgB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IA4CtE;;OAEG;IACG,gBAAgB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAQjE;;;OAGG;IACG,kBAAkB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IA4ClE,aAAa,CAAC,CAAC,EACpB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,CAAC,CAAC;IAiCP,MAAM,CAAC,CAAC,EACb,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GACjB,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA0DhC,UAAU,CAAC,CAAC,EACjB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GACjB,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAiChC,QAAQ,CAAC,CAAC,EACf,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,aAAa,EAAE,MAAM,GAAG,MAAM,GAC5B,OAAO,CAAC,OAAO,CAAC;IA+Bb,SAAS,CAAC,CAAC,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,GAAE,gBAEL,GACC,OAAO,CAAC,CAAC,EAAE,CAAC;IA6BT,QAAQ,CAAC,CAAC,EACf,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,EACd,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAC1B,EAAE,CAAC,EAAE,EAAE;IAyCF,cAAc,CAAC,UAAU,EAAE,MAAM;IAajC,mBAAmB,CAAC,UAAU,EAAE,MAAM;IAYtC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE;IAsBrC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE;IAuBvC,gBAAgB,CAAC,UAAU,EAAE,MAAM;IAanC,UAAU,CACf,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,EAAE,GAAG,SAAS,GACjB,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA4BhC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA8B3E,OAAO,CAAC,UAAU;IAuCH,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC;IAM/B,KAAK,CAAC,KAAK,UAAO;IAuC3B,aAAa;IAMb,eAAe,CACpB,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,GACxE,OAAO,CAAC,GAAG,CAAC;IAqCT,gBAAgB;IA2BhB,iBAAiB;IAejB,gBAAgB;YAgBR,SAAS;IAmCjB,sBAAsB,CAC3B,UAAU,EAAE,MAAM,EAClB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,EACxD,cAAc,qBAAQ,EACtB,WAAW,EAAE,WAAW;YA8DX,uBAAuB;IAarC;;;OAGG;YACW,qBAAqB;IAiBnC;;;OAGG;YACW,qBAAqB;IAwEnC;;;;OAIG;YACW,qBAAqB;IA+CnC;;;OAGG;YACW,qBAAqB;IA4EnC,OAAO,CAAC,iBAAiB;YAaX,qBAAqB;YAgCrB,4BAA4B;IAwE1C,OAAO,CAAC,qBAAqB;IAoB7B;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,kBAAkB;IAuC1B;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,sBAAsB;YAMhB,gBAAgB;IA2D9B,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,mBAAmB;IAsF3B,OAAO,CAAC,IAAI;YASE,iBAAiB;IAuD/B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IA4D5B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,oBAAoB;IAgE5B;;;;;;;;OAQG;IACH;;;;;;;;;;;;;;;;OAgBG;IACH;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAIlC,qEAAqE;IACrE,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAInC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAmBhC,OAAO,CAAC,MAAM,CAAC,aAAa;IA8B5B;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAwBhC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,yCAAyC;IAkEjD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,oBAAoB;IAgE5B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,oBAAoB;IAyD5B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,4BAA4B;IAkGpC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAqCvC;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAuJrC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,uCAAuC;IAkCtD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,OAAO,CAAC,uBAAuB;YAucjB,kBAAkB;IAWhC;;;;;OAKG;IACH,OAAO,CAAC,0BAA0B;IAQlC,uGAAuG;IACvG,OAAO,CAAC,qBAAqB;IAU7B;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IAuB9B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;CA2BlC"}
1
+ {"version":3,"file":"mongo.d.mts","sourceRoot":"","sources":["../src/mongo.mts"],"names":[],"mappings":"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"}
package/dist/mongo.mjs CHANGED
@@ -1015,6 +1015,7 @@ export class Mongo extends Db {
1015
1015
  const dbName = this.db;
1016
1016
  const conn = await this.connect();
1017
1017
  const results = [];
1018
+ const pub_ts = Date.now();
1018
1019
  // Process each collection's batches
1019
1020
  for (const collectionRequest of collectionsBatches) {
1020
1021
  // Each collectionRequest is an array of { collection, batch } for the same collection
@@ -1274,19 +1275,9 @@ export class Mongo extends Db {
1274
1275
  // Emit batch events per collection
1275
1276
  if (batchData.length > 0) {
1276
1277
  this._stripFieldsFromBatch(batchData);
1277
- if (this.emittingPublishEvents) {
1278
- this.emit("publish", {
1279
- channel: `db/${dbName}/${collection}`,
1280
- payload: {
1281
- operation: "batch",
1282
- db: dbName,
1283
- collection,
1284
- data: batchData,
1285
- },
1286
- });
1287
- }
1288
- if (this.emittingPublishRevEvents) {
1278
+ if (this.emittingPublishBracketedEvents) {
1289
1279
  const payload = {
1280
+ pub_ts,
1290
1281
  operation: "batch",
1291
1282
  db: dbName,
1292
1283
  collection,
@@ -1295,15 +1286,31 @@ export class Mongo extends Db {
1295
1286
  _id: item.data._id,
1296
1287
  _ts: item.data._ts,
1297
1288
  _rev: item.data._rev,
1289
+ bracketedData: item.operation === "insert"
1290
+ ? item.data
1291
+ : item.rawUpdate,
1298
1292
  })),
1299
1293
  };
1300
- this.emit("publishRev", {
1301
- channel: `dbrev/${dbName}/${collection}`,
1294
+ this.emit("publishBracketed", {
1295
+ channel: `dbbracketed/${dbName}/${collection}`,
1302
1296
  payload,
1303
1297
  });
1304
1298
  }
1305
- if (this.emittingPublishBracketedEvents) {
1299
+ if (this.emittingPublishEvents) {
1300
+ this.emit("publish", {
1301
+ channel: `db/${dbName}/${collection}`,
1302
+ payload: {
1303
+ pub_ts,
1304
+ operation: "batch",
1305
+ db: dbName,
1306
+ collection,
1307
+ data: batchData,
1308
+ },
1309
+ });
1310
+ }
1311
+ if (this.emittingPublishRevEvents) {
1306
1312
  const payload = {
1313
+ pub_ts,
1307
1314
  operation: "batch",
1308
1315
  db: dbName,
1309
1316
  collection,
@@ -1312,13 +1319,10 @@ export class Mongo extends Db {
1312
1319
  _id: item.data._id,
1313
1320
  _ts: item.data._ts,
1314
1321
  _rev: item.data._rev,
1315
- bracketedData: item.operation === "insert"
1316
- ? item.data
1317
- : item.rawUpdate,
1318
1322
  })),
1319
1323
  };
1320
- this.emit("publishBracketed", {
1321
- channel: `dbbracketed/${dbName}/${collection}`,
1324
+ this.emit("publishRev", {
1325
+ channel: `dbrev/${dbName}/${collection}`,
1322
1326
  payload,
1323
1327
  });
1324
1328
  }
@@ -1342,6 +1346,7 @@ export class Mongo extends Db {
1342
1346
  });
1343
1347
  fjLog.debug("upsertBatch called", collection, batch);
1344
1348
  const dbName = this.db; // Capture db at operation start
1349
+ const pub_ts = Date.now();
1345
1350
  batch = this.replaceIds(batch);
1346
1351
  await Promise.all(batch.map((item) => this._processHashedKeys(item === null || item === void 0 ? void 0 : item.update)));
1347
1352
  let ret = await this.executeTransactionally(collection, async (conn, client) => {
@@ -1411,6 +1416,7 @@ export class Mongo extends Db {
1411
1416
  this.emit("publish", {
1412
1417
  channel: `db/${dbName}/${collection}`,
1413
1418
  payload: {
1419
+ pub_ts,
1414
1420
  operation: "batch",
1415
1421
  db: dbName,
1416
1422
  collection,
@@ -1420,6 +1426,7 @@ export class Mongo extends Db {
1420
1426
  }
1421
1427
  if (this.emittingPublishRevEvents) {
1422
1428
  const payload = {
1429
+ pub_ts,
1423
1430
  operation: "batch",
1424
1431
  db: dbName,
1425
1432
  collection,