@lossless.org/nosqldb 10.4.0 → 10.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Binary file
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "format": "tsrust.build-provenance.v2",
3
- "binarySha256": "31770f09ae1c249545227942c92be3e32cfb5f59a09b890ab8738b70f2dc73cd",
3
+ "binarySha256": "a2f4612af93f0ab25d3eb96a5b00757592425c4ff59077f80a9f8a11e9944c4a",
4
4
  "buildInfo": {
5
5
  "projectName": "@lossless.org/nosqldb",
6
- "projectVersion": "10.4.0",
7
- "gitCommit": "24ea908914d4553b3578c607ca50a27861e1cfde",
6
+ "projectVersion": "10.5.0",
7
+ "gitCommit": "90ec88ca54b51f16d21a0dfefe4b0624edd80d48",
8
8
  "gitDirty": false,
9
- "builtAt": "2026-09-22T14:53:07.033Z",
9
+ "builtAt": "2026-09-22T16:54:01.963Z",
10
10
  "tsrustVersion": "1.13.2",
11
11
  "binary": "rustdb",
12
12
  "target": "linux_amd64"
Binary file
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "format": "tsrust.build-provenance.v2",
3
- "binarySha256": "7eb59b0144c748c486af0b5adf73113961cea39d22798a6d1d6257cfa94f0c1f",
3
+ "binarySha256": "8529bfaf78fdfce93d8c858abf4a4c8c57f7fb3cd2b2ecf3b2de818a6fbd64d7",
4
4
  "buildInfo": {
5
5
  "projectName": "@lossless.org/nosqldb",
6
- "projectVersion": "10.4.0",
7
- "gitCommit": "24ea908914d4553b3578c607ca50a27861e1cfde",
6
+ "projectVersion": "10.5.0",
7
+ "gitCommit": "90ec88ca54b51f16d21a0dfefe4b0624edd80d48",
8
8
  "gitDirty": false,
9
- "builtAt": "2026-09-22T14:53:07.815Z",
9
+ "builtAt": "2026-09-22T16:54:02.755Z",
10
10
  "tsrustVersion": "1.13.2",
11
11
  "binary": "rustdb",
12
12
  "target": "linux_amd64_musl"
Binary file
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "format": "tsrust.build-provenance.v2",
3
- "binarySha256": "b4fe927c4f9b0d3c7f7bfbd76d60a6cb606691d21e552f83c2424120d6c48b70",
3
+ "binarySha256": "e0acfecaca84a85b9aa9883ac66ca9c61bfe57e07c4623b6727318be70a82574",
4
4
  "buildInfo": {
5
5
  "projectName": "@lossless.org/nosqldb",
6
- "projectVersion": "10.4.0",
7
- "gitCommit": "24ea908914d4553b3578c607ca50a27861e1cfde",
6
+ "projectVersion": "10.5.0",
7
+ "gitCommit": "90ec88ca54b51f16d21a0dfefe4b0624edd80d48",
8
8
  "gitDirty": false,
9
- "builtAt": "2026-09-22T14:53:07.423Z",
9
+ "builtAt": "2026-09-22T16:54:02.361Z",
10
10
  "tsrustVersion": "1.13.2",
11
11
  "binary": "rustdb",
12
12
  "target": "linux_arm64"
Binary file
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "format": "tsrust.build-provenance.v2",
3
- "binarySha256": "e74084637d8b8e9da01a20c0946ec25524a9b7d08caf789e65e64d39292396b5",
3
+ "binarySha256": "70ccdb65bea25865b0b115917e46b568f92aff570a1563c1fd0b0a6d9c529844",
4
4
  "buildInfo": {
5
5
  "projectName": "@lossless.org/nosqldb",
6
- "projectVersion": "10.4.0",
7
- "gitCommit": "24ea908914d4553b3578c607ca50a27861e1cfde",
6
+ "projectVersion": "10.5.0",
7
+ "gitCommit": "90ec88ca54b51f16d21a0dfefe4b0624edd80d48",
8
8
  "gitDirty": false,
9
- "builtAt": "2026-09-22T14:53:08.224Z",
9
+ "builtAt": "2026-09-22T16:54:03.157Z",
10
10
  "tsrustVersion": "1.13.2",
11
11
  "binary": "rustdb",
12
12
  "target": "linux_arm64_musl"
Binary file
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "format": "tsrust.build-provenance.v2",
3
- "binarySha256": "10d24aaf60614be79b6d5eb40af8d54fa55b09df533ba3b2e681d312dead41e5",
3
+ "binarySha256": "5c9f76a4d3cc2e6c251a46850d1decf6a931abd1dcadf3d4a4f845d5875d2b58",
4
4
  "buildInfo": {
5
5
  "projectName": "@lossless.org/nosqldb",
6
- "projectVersion": "10.4.0",
7
- "gitCommit": "24ea908914d4553b3578c607ca50a27861e1cfde",
6
+ "projectVersion": "10.5.0",
7
+ "gitCommit": "90ec88ca54b51f16d21a0dfefe4b0624edd80d48",
8
8
  "gitDirty": false,
9
- "builtAt": "2026-09-22T14:38:03.452Z",
9
+ "builtAt": "2026-09-22T16:40:00.585Z",
10
10
  "tsrustVersion": "1.13.2",
11
11
  "binary": "rustdb",
12
12
  "target": "macos_amd64"
Binary file
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "format": "tsrust.build-provenance.v2",
3
- "binarySha256": "458b9c061fc56aac6e8bce80ec3d1d0648979d69668c818dea5a1ee7644415cb",
3
+ "binarySha256": "942950f7ecdbbbfbd361c2ffa5b55d2d90649874eeff3a3bb8e74c277eceeab6",
4
4
  "buildInfo": {
5
5
  "projectName": "@lossless.org/nosqldb",
6
- "projectVersion": "10.4.0",
7
- "gitCommit": "24ea908914d4553b3578c607ca50a27861e1cfde",
6
+ "projectVersion": "10.5.0",
7
+ "gitCommit": "90ec88ca54b51f16d21a0dfefe4b0624edd80d48",
8
8
  "gitDirty": false,
9
- "builtAt": "2026-09-22T14:38:04.073Z",
9
+ "builtAt": "2026-09-22T16:40:01.298Z",
10
10
  "tsrustVersion": "1.13.2",
11
11
  "binary": "rustdb",
12
12
  "target": "macos_arm64"
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@lossless.org/nosqldb',
6
- version: '10.4.0',
6
+ version: '10.5.0',
7
7
  description: 'A MongoDB-compatible embedded database server with wire protocol support, backed by a high-performance Rust engine.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx1QkFBdUI7SUFDN0IsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHFIQUFxSDtDQUNuSSxDQUFBIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lossless.org/nosqldb",
3
- "version": "10.4.0",
3
+ "version": "10.5.0",
4
4
  "private": false,
5
5
  "description": "A MongoDB-compatible embedded database server with wire protocol support, backed by a high-performance Rust engine.",
6
6
  "exports": {
package/readme.md CHANGED
@@ -1325,6 +1325,12 @@ await collection.findOneAndReplace({ _id: id }, { name: 'Replaced' }, { returnDo
1325
1325
  { $currentDate: { lastModified: true } }
1326
1326
  ```
1327
1327
 
1328
+ Aggregation-pipeline updates are supported wherever the MongoDB driver accepts
1329
+ them (`updateOne`, `updateMany`, `findOneAndUpdate`, and upserts): the update
1330
+ may be an array of `$addFields`, `$set`, `$project`, `$unset`, `$replaceRoot`
1331
+ or `$replaceWith` stages, and any other stage is refused by name. The pipeline
1332
+ must produce exactly one document and cannot change `_id`.
1333
+
1328
1334
  ### Aggregation Pipeline
1329
1335
 
1330
1336
  ```typescript
@@ -1339,6 +1345,12 @@ const results = await collection.aggregate([
1339
1345
 
1340
1346
  **Supported stages:** `$match`, `$project`, `$group`, `$sort`, `$limit`, `$skip`, `$unwind`, `$lookup`, `$addFields`, `$count`, `$facet`, `$replaceRoot`, `$set`, `$unionWith`, `$out`, `$merge`
1341
1347
 
1348
+ **Supported expression operators:** `$eq`, `$and`, `$literal`, `$map`,
1349
+ `$objectToArray`, `$setEquals`, plus `$field` paths, `$$variable` references
1350
+ including `$$ROOT`, and documents or arrays of those. Every other operator is
1351
+ refused by name with `TypeMismatch` (code 14) before any document is read; the
1352
+ engine never treats an operator it cannot execute as a literal value.
1353
+
1342
1354
  `$lookup` supports the equality form and a bounded correlated pipeline form with
1343
1355
  `let`, an optional `$match` using `$expr`/`$and`/`$eq`, and an optional following
1344
1356
  `$limit`. Correlated string equality predicates can use a full-key or subset
@@ -1358,6 +1370,19 @@ is what lets `countDocuments(filter)` run against collections larger than it.
1358
1370
 
1359
1371
  **Group accumulators:** `$sum`, `$avg`, `$min`, `$max`, `$first`, `$last`, `$push`, `$addToSet`, `$count`
1360
1372
 
1373
+ `$group._id` accepts a literal (`null`, a number, a string), a `$field`
1374
+ reference, or a document of expressions: `{ _id: { owner: '$owner', repo:
1375
+ '$repo' } }` groups by the evaluated pair, one group per distinct composite
1376
+ key. Inside a composite `_id`, a member whose field is absent evaluates to
1377
+ `null` and stays part of the key, where MongoDB omits the member instead.
1378
+ Accumulator operands accept the same expression forms. A field reference
1379
+ resolves per document, and a missing field is not a value: `$sum`, `$avg`,
1380
+ `$min`, `$max`, `$push` and `$addToSet` skip it, while `$first` and `$last`
1381
+ record `null` for it. Every field beside `_id` must hold an accumulator
1382
+ document naming exactly one accumulator, such as `{ $sum: 1 }`, and an operator
1383
+ outside the two lists above is refused with `TypeMismatch` (code 14) when the
1384
+ stage is parsed.
1385
+
1361
1386
  ### Indexes
1362
1387
 
1363
1388
  ```typescript
@@ -1430,9 +1455,11 @@ Without a limit, exact counts continue to EOF. Hints, deadlines and empty-result
1430
1455
  shapes remain supported; signed BSON count overflow and resource exhaustion
1431
1456
  reject explicitly. Exact counts never substitute estimates, and transaction
1432
1457
  counts retain the snapshot admission limits described below.
1433
- Grouping accumulates one group at a time after an external sort; constant-key
1434
- groups stream directly. Group accumulator semantics follow the documented local
1435
- expression surface; this does not add the complete MongoDB aggregation language.
1458
+ Grouping accumulates one group at a time after an external sort over the group
1459
+ key; only keys with no field reference and no operator stream directly into a
1460
+ single group. Composite document keys sort and group like any other key. Group
1461
+ key and accumulator semantics follow the supported expression operators listed
1462
+ above; this does not add the complete MongoDB aggregation language.
1436
1463
  Unwind retains one input while expanding arrays across batches. Lookup scans
1437
1464
  bounded foreign pages or indexed candidates, then assembles one byte-bounded
1438
1465
  result document. Unindexed joins can still require repeated foreign scans.
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@lossless.org/nosqldb',
6
- version: '10.4.0',
6
+ version: '10.5.0',
7
7
  description: 'A MongoDB-compatible embedded database server with wire protocol support, backed by a high-performance Rust engine.'
8
8
  }