@lossless.org/nosqldb 10.6.1 → 10.7.1
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/dist_rust/rustdb_linux_amd64 +0 -0
- package/dist_rust/rustdb_linux_amd64.tsrust-build.json +4 -4
- package/dist_rust/rustdb_linux_amd64_musl +0 -0
- package/dist_rust/rustdb_linux_amd64_musl.tsrust-build.json +4 -4
- package/dist_rust/rustdb_linux_arm64 +0 -0
- package/dist_rust/rustdb_linux_arm64.tsrust-build.json +4 -4
- package/dist_rust/rustdb_linux_arm64_musl +0 -0
- package/dist_rust/rustdb_linux_arm64_musl.tsrust-build.json +4 -4
- package/dist_rust/rustdb_macos_amd64 +0 -0
- package/dist_rust/rustdb_macos_amd64.tsrust-build.json +4 -4
- package/dist_rust/rustdb_macos_arm64 +0 -0
- package/dist_rust/rustdb_macos_arm64.tsrust-build.json +4 -4
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/ts_nosqldb/service-types.d.ts +6 -0
- package/package.json +1 -1
- package/readme.md +107 -5
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/ts_nosqldb/service-types.ts +6 -0
|
Binary file
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": "tsrust.build-provenance.v2",
|
|
3
|
-
"binarySha256": "
|
|
3
|
+
"binarySha256": "6689710534aa0e5c913a0618bbb8d4a89894f326e817f251d4c832f145054ce3",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.7.1",
|
|
7
|
+
"gitCommit": "fbc2af3b9b2791db6f0896f6b990038e1f733722",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
9
|
+
"builtAt": "2026-09-26T20:40:36.475Z",
|
|
10
10
|
"tsrustVersion": "1.15.1",
|
|
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": "
|
|
3
|
+
"binarySha256": "3af6fbdca2d70ed8ba9b54045ff7bce223187a42a172cc080baadb68034a7d6a",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.7.1",
|
|
7
|
+
"gitCommit": "fbc2af3b9b2791db6f0896f6b990038e1f733722",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
9
|
+
"builtAt": "2026-09-26T20:40:37.306Z",
|
|
10
10
|
"tsrustVersion": "1.15.1",
|
|
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": "
|
|
3
|
+
"binarySha256": "5f534b84c39d0013d4724a930ccae57842748d01d9f93f8a6c1c0ba416cb90ce",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.7.1",
|
|
7
|
+
"gitCommit": "fbc2af3b9b2791db6f0896f6b990038e1f733722",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
9
|
+
"builtAt": "2026-09-26T20:40:36.898Z",
|
|
10
10
|
"tsrustVersion": "1.15.1",
|
|
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": "
|
|
3
|
+
"binarySha256": "5d82aca1acb518acd86b8b879a3a1c8b68625f0793d8e96b3ce9d5c65e9e7297",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.7.1",
|
|
7
|
+
"gitCommit": "fbc2af3b9b2791db6f0896f6b990038e1f733722",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
9
|
+
"builtAt": "2026-09-26T20:40:37.725Z",
|
|
10
10
|
"tsrustVersion": "1.15.1",
|
|
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": "
|
|
3
|
+
"binarySha256": "2fd9b284e1b6a5a051a53645dc660e3e2accb4a15b25512072ed0196f1fe6c41",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.7.1",
|
|
7
|
+
"gitCommit": "fbc2af3b9b2791db6f0896f6b990038e1f733722",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
9
|
+
"builtAt": "2026-09-26T20:25:27.522Z",
|
|
10
10
|
"tsrustVersion": "1.15.1",
|
|
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": "
|
|
3
|
+
"binarySha256": "01ef95a56fe7b5944639eed54bdc964bd75c8251fbae17e003cb5b3afe543410",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@lossless.org/nosqldb",
|
|
6
|
-
"projectVersion": "10.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "10.7.1",
|
|
7
|
+
"gitCommit": "fbc2af3b9b2791db6f0896f6b990038e1f733722",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
9
|
+
"builtAt": "2026-09-26T20:25:28.100Z",
|
|
10
10
|
"tsrustVersion": "1.15.1",
|
|
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.
|
|
6
|
+
version: '10.7.1',
|
|
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=
|
|
@@ -282,6 +282,12 @@ export interface INoSqlDbDeleteDatabaseTenantResult {
|
|
|
282
282
|
}
|
|
283
283
|
export interface INoSqlDbDatabaseExportCollection {
|
|
284
284
|
name: string;
|
|
285
|
+
/**
|
|
286
|
+
* Collection options exactly as `listCollections` reports them
|
|
287
|
+
* (`validator`, `validationLevel`, `validationAction`). Present only when
|
|
288
|
+
* the collection has options; engines up to 10.6.1 refuse such an export.
|
|
289
|
+
*/
|
|
290
|
+
options?: Record<string, any>;
|
|
285
291
|
documents: Record<string, any>[];
|
|
286
292
|
indexes: Record<string, any>[];
|
|
287
293
|
}
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -1353,6 +1353,9 @@ await collection.findOneAndReplace({ _id: id }, { name: 'Replaced' }, { returnDo
|
|
|
1353
1353
|
// Array
|
|
1354
1354
|
{ tags: { $all: ['mongodb', 'database'] } }
|
|
1355
1355
|
{ scores: { $elemMatch: { $gte: 80, $lt: 90 } } }
|
|
1356
|
+
{ labels: { $not: { $elemMatch: { $nin: ['linux', 'gpu'] } } } }
|
|
1357
|
+
{ items: { $elemMatch: { sku: 'a', qty: { $gt: 2 } } } }
|
|
1358
|
+
{ items: { $all: [{ $elemMatch: { sku: 'a' } }, { $elemMatch: { qty: 0 } }] } }
|
|
1356
1359
|
{ tags: { $size: 3 } }
|
|
1357
1360
|
|
|
1358
1361
|
// Regex
|
|
@@ -1367,6 +1370,14 @@ await collection.findOneAndReplace({ _id: id }, { name: 'Replaced' }, { returnDo
|
|
|
1367
1370
|
code or an array of them, and matches an array field through its elements as
|
|
1368
1371
|
well as `'array'` itself.
|
|
1369
1372
|
|
|
1373
|
+
`$elemMatch` has MongoDB's two forms. An operand whose first key is a query
|
|
1374
|
+
operator applies its operators (`$eq`, `$ne`, `$gt`, `$gte`, `$lt`, `$lte`,
|
|
1375
|
+
`$in`, `$nin`, `$exists`, `$type`, `$regex`, `$size`, `$mod`, `$all`, `$not`,
|
|
1376
|
+
`$elemMatch`) to each element as a whole; any other operand is a query over
|
|
1377
|
+
each embedded document, and a nested array is matched as a document keyed by
|
|
1378
|
+
index. A dotted path tests every array it reaches on its own. `$expr` inside
|
|
1379
|
+
`$elemMatch` is refused with `BadValue` (2), as on MongoDB.
|
|
1380
|
+
|
|
1370
1381
|
`$expr` evaluates an aggregation expression per document in `find`, `count`,
|
|
1371
1382
|
`distinct`, `update`, `delete`, `findAndModify` and a `$match` stage, and
|
|
1372
1383
|
matches when the result is truthy. It accepts the operators listed under
|
|
@@ -1727,10 +1738,101 @@ await admin.ping();
|
|
|
1727
1738
|
await admin.serverStatus();
|
|
1728
1739
|
```
|
|
1729
1740
|
|
|
1730
|
-
NoSQLDB creates ordinary collections
|
|
1731
|
-
|
|
1732
|
-
indexes, encrypted fields, and all general
|
|
1733
|
-
are rejected before the database or
|
|
1741
|
+
NoSQLDB creates ordinary collections, collections with document validators (see
|
|
1742
|
+
below) and one deliberately restricted view form. Capped collections, collation,
|
|
1743
|
+
time-series collections, clustered indexes, encrypted fields, and all general
|
|
1744
|
+
view pipelines remain unsupported and are rejected before the database or
|
|
1745
|
+
namespace is created.
|
|
1746
|
+
|
|
1747
|
+
### Collection Validators
|
|
1748
|
+
|
|
1749
|
+
`create` and `collMod` accept MongoDB's `validator`, `validationLevel`
|
|
1750
|
+
(`strict`, `moderate`, `off`) and `validationAction` (`error`, `warn`), and
|
|
1751
|
+
`listCollections` reports them under `options` exactly as set:
|
|
1752
|
+
|
|
1753
|
+
```typescript
|
|
1754
|
+
await db.createCollection('ffb_ci_v2_runners', {
|
|
1755
|
+
validator: {
|
|
1756
|
+
$jsonSchema: {
|
|
1757
|
+
bsonType: 'object',
|
|
1758
|
+
required: ['revokedAt'],
|
|
1759
|
+
properties: { revokedAt: { bsonType: ['date', 'null'] } },
|
|
1760
|
+
},
|
|
1761
|
+
},
|
|
1762
|
+
validationLevel: 'strict',
|
|
1763
|
+
validationAction: 'error',
|
|
1764
|
+
});
|
|
1765
|
+
await db.command({ collMod: 'ffb_ci_v2_runners', validationLevel: 'moderate' });
|
|
1766
|
+
```
|
|
1767
|
+
|
|
1768
|
+
A validator is a query document. Its top level may hold one `$jsonSchema`;
|
|
1769
|
+
every other clause is an ordinary query predicate evaluated by the query
|
|
1770
|
+
engine, `$expr` with the command's `$$NOW` included. The `$jsonSchema` subset
|
|
1771
|
+
is `bsonType` (every BSON alias and `number`), `type` (`object`, `array`,
|
|
1772
|
+
`number`, `boolean`, `string`, `null`), `required`, `properties`,
|
|
1773
|
+
`additionalProperties` (boolean), `minProperties`, `maxProperties`, `enum`,
|
|
1774
|
+
`minimum`, `maximum`, `exclusiveMinimum`, `exclusiveMaximum`, `minLength`,
|
|
1775
|
+
`maxLength`, `pattern`, `items` (one schema), `minItems`, `maxItems`, `title`
|
|
1776
|
+
and `description`, with MongoDB's semantics: a keyword applies only to values
|
|
1777
|
+
of its kind and not at all when `bsonType`/`type` excludes that kind, `enum`
|
|
1778
|
+
compares numbers by value and embedded documents regardless of field order,
|
|
1779
|
+
NaN fails `minimum` and `maximum`, and lengths count code points. Everything
|
|
1780
|
+
else is refused when the validator is set, never ignored: `patternProperties`,
|
|
1781
|
+
`additionalItems`, `uniqueItems`, `dependencies`, `allOf`, `anyOf`, `oneOf`,
|
|
1782
|
+
`not`, `multipleOf`, `encrypt`, `encryptMetadata`, `items` as an array and
|
|
1783
|
+
`additionalProperties` as a schema answer `FailedToParse` (9) `$jsonSchema
|
|
1784
|
+
keyword '…' is not currently supported`, as MongoDB answers for `$ref`,
|
|
1785
|
+
`format`, `default`, `definitions`, `id` and `$schema`; `$jsonSchema` below the
|
|
1786
|
+
top level answers `BadValue` (2). Malformed validators answer MongoDB's codes
|
|
1787
|
+
(2, 9, 14, `Location51091` for an invalid `pattern`). `pattern` uses the same
|
|
1788
|
+
regular-expression dialect as `$regex`; constructs only PCRE supports are
|
|
1789
|
+
refused as invalid.
|
|
1790
|
+
|
|
1791
|
+
Every insert and update is validated: inserts, upserts, update operators,
|
|
1792
|
+
replacements, pipeline updates, `findAndModify`, bulk writes, `$merge` and
|
|
1793
|
+
`$out` output, inside and outside transactions. `strict` validates every
|
|
1794
|
+
written document; `moderate` skips updates to documents that did not satisfy
|
|
1795
|
+
the validator before the update; `off` validates nothing; a no-op update and a
|
|
1796
|
+
delete are never validated. A refused document answers
|
|
1797
|
+
`DocumentValidationFailure` (121), `errmsg: "Document failed validation"`, and
|
|
1798
|
+
MongoDB's `errInfo: { failingDocumentId, details }` — as a write error of
|
|
1799
|
+
`insert`/`update`, keeping ordered and unordered batch semantics, and as the
|
|
1800
|
+
command error of `findAndModify` and `aggregate`. A refused statement aborts
|
|
1801
|
+
its transaction. `details` has MongoDB's shape for every `$jsonSchema` keyword
|
|
1802
|
+
above and for `$and`, `$or`, `$nor`, `$not`, `$eq`, `$ne`, `$gt`, `$gte`,
|
|
1803
|
+
`$lt`, `$lte`, `$exists`, `$type`, `$in`, `$nin`, `$regex`, `$size`, `$all`,
|
|
1804
|
+
`$elemMatch`, `$mod` and `$expr`; other operators report only `operatorName`
|
|
1805
|
+
and `specifiedAs`. `validationAction: 'warn'` writes the document and logs a
|
|
1806
|
+
`Document would fail validation` warning with the namespace and `errInfo`.
|
|
1807
|
+
`bypassDocumentValidation` (a boolean or number) on `insert`, `update`,
|
|
1808
|
+
`findAndModify` and writing `aggregate` skips validation; with authentication
|
|
1809
|
+
it requires `dbAdmin` on the written database, as `collMod` does — `readWrite`
|
|
1810
|
+
alone is refused with `Unauthorized` (13), as in MongoDB's built-in roles.
|
|
1811
|
+
|
|
1812
|
+
`collMod` changes only the options it names; `validator: {}` removes the
|
|
1813
|
+
validator; a `null` option is absent; `collMod` without options answers
|
|
1814
|
+
`{ ok: 1 }`. A missing collection answers `NamespaceNotFound` (26), a view or
|
|
1815
|
+
`system.*` collection `InvalidOptions` (72), MongoDB's other `collMod` options
|
|
1816
|
+
(`index`, `viewOn`, `pipeline`, `expireAfterSeconds`, `timeseries`,
|
|
1817
|
+
`changeStreamPreAndPostImages`, `dryRun`, `cappedSize`, `cappedMax`, …)
|
|
1818
|
+
`InvalidOptions` (72) by name, and unknown fields `IDLUnknownField` (40415).
|
|
1819
|
+
Options persist with the collection, survive restarts and `renameCollection`,
|
|
1820
|
+
and `$out` keeps its target's options. The encoded options are limited to
|
|
1821
|
+
60 KiB (MongoDB has no separate limit); larger ones answer `InvalidOptions`
|
|
1822
|
+
(72). Canonical export writes a collection's `options` beside its documents and
|
|
1823
|
+
indexes only when it has options, import restores them, and the database
|
|
1824
|
+
content digest includes them only then, so digests of collections without
|
|
1825
|
+
options are unchanged. Engines up to 10.6.1 refuse a storage root or an export
|
|
1826
|
+
holding collection options instead of silently not enforcing them.
|
|
1827
|
+
|
|
1828
|
+
Differences from MongoDB 7: `create` on an existing collection answers
|
|
1829
|
+
`NamespaceExists` (48) even when the options are identical (MongoDB answers
|
|
1830
|
+
`ok`); a validator together with `viewOn` is refused (MongoDB ignores it); an
|
|
1831
|
+
invalid `pattern` at the schema root is refused (MongoDB never compiles it
|
|
1832
|
+
there);
|
|
1833
|
+
command errors say `Document failed validation` without MongoDB's
|
|
1834
|
+
`Plan executor error during …` prefix; the `warn` log carries `errInfo`, not
|
|
1835
|
+
the whole document.
|
|
1734
1836
|
|
|
1735
1837
|
### Restricted Deny-All Views
|
|
1736
1838
|
|
|
@@ -1814,7 +1916,7 @@ const names = await collection.distinct('name');
|
|
|
1814
1916
|
| **Indexes** | `createIndexes`, `dropIndexes`, `listIndexes` |
|
|
1815
1917
|
| **Sessions** | `startSession`, `endSessions`, `killSessions` |
|
|
1816
1918
|
| **Transactions** | `startTransaction`, `commitTransaction`, `abortTransaction` through driver sessions |
|
|
1817
|
-
| **Admin** | `ping`, `buildInfo`/`buildinfo`, `listDatabases`, `listCollections`, `drop`, `dropDatabase`, `create`, `serverStatus`, `dbStats`, `collStats`, `connectionStatus`, `renameCollection` |
|
|
1919
|
+
| **Admin** | `ping`, `buildInfo`/`buildinfo`, `listDatabases`, `listCollections`, `drop`, `dropDatabase`, `create`, `collMod` (validation options), `serverStatus`, `dbStats`, `collStats`, `connectionStatus`, `renameCollection` |
|
|
1818
1920
|
|
|
1819
1921
|
Advertises MongoDB wire protocol versions 0–21. The documented command surface is tested with the official `mongodb` Node.js driver version 7.5.x.
|
|
1820
1922
|
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -414,6 +414,12 @@ export interface INoSqlDbDeleteDatabaseTenantResult {
|
|
|
414
414
|
|
|
415
415
|
export interface INoSqlDbDatabaseExportCollection {
|
|
416
416
|
name: string;
|
|
417
|
+
/**
|
|
418
|
+
* Collection options exactly as `listCollections` reports them
|
|
419
|
+
* (`validator`, `validationLevel`, `validationAction`). Present only when
|
|
420
|
+
* the collection has options; engines up to 10.6.1 refuse such an export.
|
|
421
|
+
*/
|
|
422
|
+
options?: Record<string, any>;
|
|
417
423
|
documents: Record<string, any>[];
|
|
418
424
|
indexes: Record<string, any>[];
|
|
419
425
|
}
|