cry-db 2.6.1 → 2.6.2
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/CHANGELOG.md +567 -0
- package/CLAUDE.md +202 -0
- package/dist/mongo.d.mts.map +1 -1
- package/dist/mongo.mjs +27 -20
- package/dist/mongo.mjs.map +1 -1
- package/dist/types.d.mts +3 -0
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/package.json +5 -2
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"`.
|
package/dist/mongo.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongo.d.mts","sourceRoot":"","sources":["../src/mongo.mts"],"names":[],"mappings":"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
|
|
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.
|
|
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("
|
|
1301
|
-
channel: `
|
|
1294
|
+
this.emit("publishBracketed", {
|
|
1295
|
+
channel: `dbbracketed/${dbName}/${collection}`,
|
|
1302
1296
|
payload,
|
|
1303
1297
|
});
|
|
1304
1298
|
}
|
|
1305
|
-
if (this.
|
|
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("
|
|
1321
|
-
channel: `
|
|
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,
|