@push.rocks/smartdb 5.5.2 → 5.6.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.
Binary file
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "format": "tsrust.build-provenance.v2",
3
- "binarySha256": "00320ccbef2538dfa9fba1da65bb5db3b1874aef58eb85cdf40f8f29f4822578",
3
+ "binarySha256": "5655214ec6aaa52a37a786e4401199ac0ed9049fdfe9e0aa772f9321068ca213",
4
4
  "buildInfo": {
5
5
  "projectName": "@push.rocks/smartdb",
6
- "projectVersion": "5.5.2",
7
- "gitCommit": "389db71389a45d42b0f205736ae52f55d593aeb3",
6
+ "projectVersion": "5.6.1",
7
+ "gitCommit": "ea0aa192b25f5cb4c03d0c3c428c7659de40d314",
8
8
  "gitDirty": false,
9
- "builtAt": "2026-09-04T18:59:43.562Z",
9
+ "builtAt": "2026-09-05T18:26:42.556Z",
10
10
  "tsrustVersion": "1.10.4",
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": "0efe48ad0d320b53e565e5ac16810bb8ca153b1d1c39cb86e971297e62931442",
3
+ "binarySha256": "74b7d64b133a2e8192eed352c53e67727833593417995610682b7f5eb90326f5",
4
4
  "buildInfo": {
5
5
  "projectName": "@push.rocks/smartdb",
6
- "projectVersion": "5.5.2",
7
- "gitCommit": "389db71389a45d42b0f205736ae52f55d593aeb3",
6
+ "projectVersion": "5.6.1",
7
+ "gitCommit": "ea0aa192b25f5cb4c03d0c3c428c7659de40d314",
8
8
  "gitDirty": false,
9
- "builtAt": "2026-09-04T19:00:17.487Z",
9
+ "builtAt": "2026-09-05T18:27:24.134Z",
10
10
  "tsrustVersion": "1.10.4",
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": "f309ef5182f62bd147bab7bfd39be556d1ec0fce1dede84b9c424f607fe0a8b5",
3
+ "binarySha256": "9ad5d9cd4e00896c71c8de557a8fd3ca548857a79be2d59af84121618ae0e5b6",
4
4
  "buildInfo": {
5
5
  "projectName": "@push.rocks/smartdb",
6
- "projectVersion": "5.5.2",
7
- "gitCommit": "389db71389a45d42b0f205736ae52f55d593aeb3",
6
+ "projectVersion": "5.6.1",
7
+ "gitCommit": "ea0aa192b25f5cb4c03d0c3c428c7659de40d314",
8
8
  "gitDirty": false,
9
- "builtAt": "2026-09-04T19:01:23.168Z",
9
+ "builtAt": "2026-09-05T18:28:28.488Z",
10
10
  "tsrustVersion": "1.10.4",
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": "6935370ae83f20f3dfd5e8167b68c9a60c656c17f8839a9b16c05e4009c27797",
3
+ "binarySha256": "144e6fcce955a5ae6e31ef95782a3f2c2931b7af4303102b27b082997b00f9b0",
4
4
  "buildInfo": {
5
5
  "projectName": "@push.rocks/smartdb",
6
- "projectVersion": "5.5.2",
7
- "gitCommit": "389db71389a45d42b0f205736ae52f55d593aeb3",
6
+ "projectVersion": "5.6.1",
7
+ "gitCommit": "ea0aa192b25f5cb4c03d0c3c428c7659de40d314",
8
8
  "gitDirty": false,
9
- "builtAt": "2026-09-04T19:02:04.202Z",
9
+ "builtAt": "2026-09-05T18:29:16.114Z",
10
10
  "tsrustVersion": "1.10.4",
11
11
  "binary": "rustdb",
12
12
  "target": "macos_arm64"
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@push.rocks/smartdb',
6
- version: '5.5.2',
6
+ version: '5.6.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxxQkFBcUI7SUFDM0IsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHFIQUFxSDtDQUNuSSxDQUFBIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@push.rocks/smartdb",
3
- "version": "5.5.2",
3
+ "version": "5.6.1",
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
@@ -869,6 +869,52 @@ validated no-op and index version `v: 2`. Unsupported options, including
869
869
  index in the request is created. TTL metadata is retained in the catalog;
870
870
  automatic TTL expiry is not implemented.
871
871
 
872
+ `find()` and collection `aggregate()` accept `hint` as an index name (including
873
+ `_id_`) or an exact ascending/descending key pattern. Key-pattern order matters;
874
+ if several indexes share a key pattern, use a name. The selected active scalar
875
+ index supplies every candidate, using safe full-key equality bounds or a full
876
+ scan of that index. The complete predicate still runs, and explicit sorting,
877
+ projection, skip, and limit retain their normal semantics. Index traversal uses
878
+ bounded pages under the namespace lock, so concurrent writes wait until the
879
+ hinted source read finishes. Unsorted results have no guaranteed BSON value order.
880
+
881
+ ```typescript
882
+ await collection.createIndex({ organizationId: 1, userId: 1 }, { name: 'organization_user' });
883
+ const page = await collection.find({ organizationId: 'org-1' }, {
884
+ hint: 'organization_user', sort: { userId: 1, _id: 1 }, skip: 20, limit: 10,
885
+ }).toArray();
886
+ const count = await collection.countDocuments({ organizationId: 'org-1' }, {
887
+ hint: 'organization_user',
888
+ });
889
+ ```
890
+
891
+ Unknown or quarantined indexes, malformed/ambiguous patterns, `$natural`, and
892
+ hints on missing collections or views fail explicitly. Forced multikey traversal
893
+ is unsupported and rejects; unhinted array queries keep their existing scan
894
+ behavior. Sparse hints intentionally exclude documents absent from that index,
895
+ including for empty filters and counts. A hint is never silently replaced by a
896
+ collection scan or another index.
897
+
898
+ Hinted transaction reads construct the selected index from the existing bounded
899
+ transaction snapshot plus buffered writes; they never fetch candidate documents
900
+ from live storage. Read-only aggregate source pipelines also use that transaction
901
+ view. Foreign-collection stages (`$lookup`, `$unionWith`) and writing stages
902
+ (`$out`, `$merge`), including stages inside `$facet`, reject within transactions.
903
+ Their existing nontransaction behavior is unchanged.
904
+
905
+ Count pipelines consisting of optional `$match`, optional `$skip`, optional positive
906
+ integer `$limit`, and `$count` (or the driver's equivalent constant-one `$group`)
907
+ stream candidates. With a limit they stop at that limit; without one they count
908
+ to the end of the selected source. They preserve hints,
909
+ deadlines, and empty-result shapes without materializing the matched set. Stage
910
+ dispatch, syntax, specifications, predicates, and streamed BSON processing consume
911
+ the same aggregation work budget as ordinary pipelines. This permits both bounded
912
+ and exact namespace inspection of collections larger than 10,000 documents or
913
+ 32 MiB. Work-budget exhaustion, deadlines and signed BSON count overflow reject
914
+ explicitly; exact counts never fall back to estimates. Generic pipelines retain their existing
915
+ materialization limits. Transactions still require the existing bounded base
916
+ snapshot; streaming counts do not bypass its 10,000-document / 32 MiB admission cap.
917
+
872
918
  ### Database & Admin
873
919
 
874
920
  ```typescript
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@push.rocks/smartdb',
6
- version: '5.5.2',
6
+ version: '5.6.1',
7
7
  description: 'A MongoDB-compatible embedded database server with wire protocol support, backed by a high-performance Rust engine.'
8
8
  }