@spine-event-engine/storage 2.0.0-snapshot.25 → 2.0.0-snapshot.28

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.
Files changed (46) hide show
  1. package/README.md +41 -8
  2. package/REFERENCE.md +22 -2
  3. package/dist/index.d.ts +2 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/internal/entity-commit.d.ts +1 -1
  7. package/dist/internal/storage-preparation.d.ts +4 -0
  8. package/dist/internal/storage-preparation.d.ts.map +1 -1
  9. package/dist/internal/storage-preparation.js +18 -1
  10. package/dist/internal/storage-preparation.js.map +1 -1
  11. package/dist/memory/in-memory-storage-backend.js +2 -1
  12. package/dist/memory/in-memory-storage-backend.js.map +1 -1
  13. package/dist/memory/in-memory-storage-factory.d.ts +11 -0
  14. package/dist/memory/in-memory-storage-factory.d.ts.map +1 -1
  15. package/dist/memory/in-memory-storage-factory.js +14 -0
  16. package/dist/memory/in-memory-storage-factory.js.map +1 -1
  17. package/dist/query/query-execution.d.ts +9 -0
  18. package/dist/query/query-execution.d.ts.map +1 -1
  19. package/dist/query/query-execution.js +85 -3
  20. package/dist/query/query-execution.js.map +1 -1
  21. package/dist/record/column-mapping.d.ts +8 -1
  22. package/dist/record/column-mapping.d.ts.map +1 -1
  23. package/dist/record/column-mapping.js +5 -0
  24. package/dist/record/column-mapping.js.map +1 -1
  25. package/dist/record/column-type.d.ts +50 -4
  26. package/dist/record/column-type.d.ts.map +1 -1
  27. package/dist/record/column-type.js +41 -0
  28. package/dist/record/column-type.js.map +1 -1
  29. package/dist/record/record-column.d.ts +6 -1
  30. package/dist/record/record-column.d.ts.map +1 -1
  31. package/dist/record/record-column.js +17 -1
  32. package/dist/record/record-column.js.map +1 -1
  33. package/dist/record/record-index.d.ts +14 -0
  34. package/dist/record/record-index.d.ts.map +1 -0
  35. package/dist/record/record-index.js +15 -0
  36. package/dist/record/record-index.js.map +1 -0
  37. package/dist/record/record-spec.d.ts +17 -1
  38. package/dist/record/record-spec.d.ts.map +1 -1
  39. package/dist/record/record-spec.js +66 -1
  40. package/dist/record/record-spec.js.map +1 -1
  41. package/dist/storage/storage-factory.d.ts +24 -1
  42. package/dist/storage/storage-factory.d.ts.map +1 -1
  43. package/dist/storage/storage-factory.js +22 -1
  44. package/dist/storage/storage-factory.js.map +1 -1
  45. package/dist/tsconfig.tsbuildinfo +1 -1
  46. package/package.json +3 -3
package/README.md CHANGED
@@ -35,18 +35,43 @@ import { create } from "@bufbuild/protobuf";
35
35
  import { StringValueSchema } from "@bufbuild/protobuf/wkt";
36
36
  import { InMemoryStorageFactory, RecordSpec } from "@spine-event-engine/storage";
37
37
 
38
- const records = new InMemoryStorageFactory().createRecordStorage(
39
- { name: "Users", multitenant: false },
40
- new RecordSpec({
41
- recordType: StringValueSchema,
42
- idKind: "string",
43
- extractId: (user) => user.value,
44
- }),
45
- );
38
+ const factory = new InMemoryStorageFactory();
39
+ const context = { name: "Users", multitenant: false } as const;
40
+ const spec = new RecordSpec({
41
+ recordType: StringValueSchema,
42
+ idKind: "string",
43
+ extractId: (user) => user.value,
44
+ });
45
+ const records = factory.createRecordStorage(context, spec);
46
46
  await records.write(create(StringValueSchema, { value: "ava" }));
47
47
  console.log((await records.read("ava"))?.value);
48
48
  ```
49
49
 
50
+ Record handles prepare their physical family on access by default. When an
51
+ application has already prepared a family, pass
52
+ `{ prepareOnAccess: false }` as the fourth `createRecordStorage` argument. With
53
+ the context and spec above, omit the group by passing `undefined`:
54
+
55
+ ```ts
56
+ import { StringValueSchema } from "@bufbuild/protobuf/wkt";
57
+ import { InMemoryStorageFactory, RecordSpec } from "@spine-event-engine/storage";
58
+
59
+ const factory = new InMemoryStorageFactory();
60
+ const context = { name: "Users", multitenant: false } as const;
61
+ const spec = new RecordSpec({
62
+ recordType: StringValueSchema,
63
+ idKind: "string",
64
+ extractId: (user) => user.value,
65
+ });
66
+ const unpreparedRecords = factory.createRecordStorage(context, spec, undefined, {
67
+ prepareOnAccess: false,
68
+ });
69
+ ```
70
+
71
+ This setting applies only to that handle. The provider's explicit
72
+ `StoragePreparations` create/check operations remain available; a skipped
73
+ handle reports missing physical structures through ordinary data errors.
74
+
50
75
  For detailed query, lifecycle, and adapter notes, see
51
76
  [REFERENCE documentation for agents](REFERENCE.md).
52
77
 
@@ -123,6 +148,14 @@ const users = await records.query({
123
148
  });
124
149
  ```
125
150
 
151
+ `RecordSpec.indexes` can require ordered, non-unique physical lookup indexes;
152
+ `id` names the storage slot ID in an index. Use
153
+ `ColumnTypes.fixedBytes(width)` when a byte column has an exact persisted and
154
+ query width. Explicit or automatic preparation of indexed specifications
155
+ requires a provider that attests physical index checks. A handle with
156
+ `prepareOnAccess: false` skips preparation, while provider-local declaration
157
+ validation still applies.
158
+
126
159
  `InMemoryStorageFactory` creates a fresh backend by default. Pass the same
127
160
  `InMemoryStorageBackend` to separate factories only when they intentionally
128
161
  need to share rows. Query named columns, sort them, and limit the result; the
package/REFERENCE.md CHANGED
@@ -5,7 +5,8 @@ This reference is for coding agents working with the Spine TS storage contract.
5
5
  ## Public entry point
6
6
 
7
7
  Import public types from `@spine-event-engine/storage`. The entry point exports
8
- `StorageFactory`, `RecordStorage`, `RecordSpec`, `RecordSpecOptions`, `RecordColumn`, `RecordQuery`,
8
+ `StorageFactory`, `RecordStorage`, `RecordStorageOptions`, `RecordSpec`, `RecordSpecOptions`,
9
+ `RecordColumn`, `RecordIndex`, `RecordQuery`,
9
10
  `StorageGroup`, `ColumnTypes`, `ColumnMappings`, the exported
10
11
  column-mapping contracts, `InMemoryStorageFactory`,
11
12
  `InMemoryStorageBackend`, event-store types, normalized query policy/evaluator
@@ -121,7 +122,7 @@ retained private handles.
121
122
 
122
123
  ## Record storage
123
124
 
124
- `StorageFactory.createRecordStorage(context, spec, group?)` returns an
125
+ `StorageFactory.createRecordStorage(context, spec, group?, options?)` returns an
125
126
  independently closeable `RecordStorage`. A single-tenant context forbids a
126
127
  tenant ID. A multitenant context requires a complete generated `TenantId`.
127
128
  The Bounded Context name is diagnostic only. A `RecordSpec` fixes the
@@ -129,11 +130,30 @@ source type, stored record type, identity extractor, ID schema or primitive ID
129
130
  kind, and materialized columns. `sourceType` defaults to `recordType`; Entity
130
131
  record specifications use the entity state type as their source type.
131
132
  `RecordSpecOptions` is the public constructor-input contract for those fields.
133
+ Its optional `indexes` declare immutable, non-unique ascending lookup indexes
134
+ over ordered materialized columns; `id` selects the storage slot ID. Explicit
135
+ or automatic preparation of indexed specifications requires a provider that
136
+ attests physical index checks. A handle with `prepareOnAccess: false` skips
137
+ that preparation path; provider-local declaration validation still applies.
138
+ `ColumnTypes.fixedBytes(width)` declares an exact-width byte column, validated
139
+ on stored and queried values. The common query evaluator compares its bytes
140
+ in unsigned order.
132
141
  For generated application records, Proto `(column)` declarations determine the
133
142
  materialized fields. A field without that declaration remains only in the
134
143
  authoritative serialized record; providers do not infer columns from every
135
144
  field in the message.
136
145
 
146
+ `RecordStorageOptions.prepareOnAccess` is optional and defaults to `true`.
147
+ Pass `{ prepareOnAccess: false }` as the fourth argument when an application
148
+ has already prepared the physical family and wants data access without schema
149
+ creation or compatibility probes. The choice is fixed per handle, so another
150
+ handle on the same factory can still prepare the same family. Data operations
151
+ still use the provider connection and report missing structures normally.
152
+ Custom factories must implement the protected `onCreateUnprepared` hook to
153
+ support this choice; otherwise they reject it. The provider-only
154
+ `StoragePreparations` create/check operations remain available regardless of
155
+ the handle setting. Business storage retains its existing preparation path.
156
+
137
157
  `StorageGroup` is an optional external physical-family identity. It is not part
138
158
  of `RecordSpec`: use it only when records with an otherwise compatible layout
139
159
  must remain distinct. The in-memory provider keys physical identity by backend,
package/dist/index.d.ts CHANGED
@@ -13,9 +13,10 @@ export { ColumnMappings, type ColumnMapping, type ColumnTypeMapping, } from "./r
13
13
  export type { RecordContinuation, RecordContinuationValue, RecordFilter, RecordOrder, } from "./record/record-query.js";
14
14
  export { RecordQuery } from "./record/record-query.js";
15
15
  export { RecordSpec, type RecordSpecOptions } from "./record/record-spec.js";
16
+ export type { RecordIndex } from "./record/record-index.js";
16
17
  export { RecordStorage } from "./record/record-storage.js";
17
18
  export { StorageGroup } from "./record/storage-group.js";
18
19
  export type { RecordEntry } from "./record/record-storage.js";
19
20
  export type { Storage, StorageContext, StorageMode } from "./storage/storage.js";
20
- export { StorageFactory } from "./storage/storage-factory.js";
21
+ export { StorageFactory, type RecordStorageOptions } from "./storage/storage-factory.js";
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAClG,YAAY,EACV,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,YAAY,EACV,4BAA4B,EAC5B,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,iBAAiB,GACvB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAClG,YAAY,EACV,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,YAAY,EACV,4BAA4B,EAC5B,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,iBAAiB,GACvB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAgD,MAAM,wBAAwB,CAAC;AAKlG,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AAUpC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAyB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EACL,cAAc,GAGf,MAAM,4BAA4B,CAAC;AAOpC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAA0B,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAgD,MAAM,wBAAwB,CAAC;AAKlG,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AAUpC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAyB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EACL,cAAc,GAGf,MAAM,4BAA4B,CAAC;AAOpC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAA0B,MAAM,yBAAyB,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,cAAc,EAA6B,MAAM,8BAA8B,CAAC"}
@@ -99,7 +99,7 @@ export declare const EntityCommitSnapshots: Readonly<{
99
99
  /**
100
100
  * A provider handle for one bounded Entity scope.
101
101
  *
102
- * An ordinary `commit()` may retain a completed prefix when a later record fails. Replaying
102
+ * An ordinary `commit()` may retain a completed prefix when a later record fails. Retrying
103
103
  * the same captured input reuses versions and Event IDs. An Event's presence
104
104
  * alone does not establish that current state was saved.
105
105
  * `commitAgent()` conditionally commits the complete live Agent transition atomically.
@@ -20,6 +20,10 @@ export type EntityStoragePreparationInput<I, S extends Message> = Omit<EntitySto
20
20
  * Provider-only operations that establish physical storage requirements.
21
21
  */
22
22
  export interface StoragePreparation {
23
+ /**
24
+ * Attests that record preparation verifies declared physical indexes.
25
+ */
26
+ readonly supportsRecordIndexes?: boolean;
23
27
  /**
24
28
  * Prepares one ordinary record family.
25
29
  *
@@ -1 +1 @@
1
- {"version":3,"file":"storage-preparation.d.ts","sourceRoot":"","sources":["../../src/internal/storage-preparation.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExD;;;;;GAKG;AACH,MAAM,MAAM,6BAA6B,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,IAAI,IAAI,CACpE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EACxB,qBAAqB,GAAG,qBAAqB,CAC9C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;;OAUG;IACH,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EAChC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,KAAK,EAAE,YAAY,GAAG,SAAS,EAC/B,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;OAQG;IACH,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EAChC,KAAK,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1C,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;OAOG;IACH,mBAAmB,CAAC,CAAC,EACnB,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAClC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;OAOG;IACH,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EACrC,KAAK,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1C,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAID;;GAEG;AACH,UAAU,wBAAwB;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAEzE;;;;;OAKG;IACH,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,kBAAkB,CAAC;CAClD;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,wBAuBhC,CAAC"}
1
+ {"version":3,"file":"storage-preparation.d.ts","sourceRoot":"","sources":["../../src/internal/storage-preparation.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExD;;;;;GAKG;AACH,MAAM,MAAM,6BAA6B,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,IAAI,IAAI,CACpE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EACxB,qBAAqB,GAAG,qBAAqB,CAC9C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEzC;;;;;;;;;;OAUG;IACH,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EAChC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,KAAK,EAAE,YAAY,GAAG,SAAS,EAC/B,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;OAQG;IACH,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EAChC,KAAK,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1C,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;OAOG;IACH,mBAAmB,CAAC,CAAC,EACnB,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAClC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;OAOG;IACH,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EACrC,KAAK,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1C,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAID;;GAEG;AACH,UAAU,wBAAwB;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAEzE;;;;;OAKG;IACH,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,kBAAkB,CAAC;CAClD;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,wBAiDhC,CAAC"}
@@ -23,7 +23,24 @@ export const StoragePreparations = Object.freeze({
23
23
  * @param preparation Its preparation implementation.
24
24
  */
25
25
  register(factory, preparation) {
26
- preparations.set(factory, preparation);
26
+ const supportsRecordIndexes = preparation.supportsRecordIndexes === true;
27
+ preparations.set(factory, Object.freeze({
28
+ supportsRecordIndexes,
29
+ /**
30
+ * Rejects indexed record requirements without provider attestation.
31
+ *
32
+ * @typeParam I Record identifier type.
33
+ * @typeParam R Stored Protobuf record type.
34
+ */
35
+ prepareRecord(context, spec, group, mode) {
36
+ if (spec.indexes.length > 0 && !supportsRecordIndexes)
37
+ return Promise.reject(new Error("Storage provider does not support record indexes."));
38
+ return preparation.prepareRecord(context, spec, group, mode);
39
+ },
40
+ prepareEntity: preparation.prepareEntity.bind(preparation),
41
+ prepareAgentHistory: preparation.prepareAgentHistory.bind(preparation),
42
+ prepareAgentCommit: preparation.prepareAgentCommit.bind(preparation),
43
+ }));
27
44
  },
28
45
  /**
29
46
  * Finds a registered preparation port, rejecting unsupported providers.
@@ -1 +1 @@
1
- {"version":3,"file":"storage-preparation.js","sourceRoot":"","sources":["../../src/internal/storage-preparation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA0FH,MAAM,YAAY,GAAG,IAAI,OAAO,EAAsC,CAAC;AAuBvE;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA6B,MAAM,CAAC,MAAM,CAAC;IACzE;;;;;OAKG;IACH,QAAQ,CAAC,OAAuB,EAAE,WAA+B;QAC/D,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,OAAuB;QACzB,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,WAAW,KAAK,SAAS;YAC3B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,OAAO,WAAW,CAAC;IACrB,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"storage-preparation.js","sourceRoot":"","sources":["../../src/internal/storage-preparation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA+FH,MAAM,YAAY,GAAG,IAAI,OAAO,EAAsC,CAAC;AAuBvE;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA6B,MAAM,CAAC,MAAM,CAAC;IACzE;;;;;OAKG;IACH,QAAQ,CAAC,OAAuB,EAAE,WAA+B;QAC/D,MAAM,qBAAqB,GAAG,WAAW,CAAC,qBAAqB,KAAK,IAAI,CAAC;QACzE,YAAY,CAAC,GAAG,CACd,OAAO,EACP,MAAM,CAAC,MAAM,CAAC;YACZ,qBAAqB;YAErB;;;;;eAKG;YACH,aAAa,CACX,OAAuB,EACvB,IAAsB,EACtB,KAA+B,EAC/B,IAA4B;gBAE5B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,qBAAqB;oBACnD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAC;gBACxF,OAAO,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/D,CAAC;YACD,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;YAC1D,mBAAmB,EAAE,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC;YACtE,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;SACrE,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,OAAuB;QACzB,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,WAAW,KAAK,SAAS;YAC3B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,OAAO,WAAW,CAAC;IACrB,CAAC;CACF,CAAC,CAAC"}
@@ -159,6 +159,7 @@ const MemoryDefinitions = {
159
159
  spec.recordType.typeName,
160
160
  typeof id === "string" ? ["primitive", id] : ["message", id.typeName],
161
161
  this.columns(spec.columns),
162
+ spec.indexes.map(({ name, columns }) => [name, columns]),
162
163
  ]);
163
164
  },
164
165
  /**
@@ -177,7 +178,7 @@ const MemoryDefinitions = {
177
178
  type: [
178
179
  type.kind,
179
180
  type.kind === "scalar"
180
- ? [type.scalar, type.longAsString]
181
+ ? [type.scalar, type.longAsString, type.byteLength ?? null]
181
182
  : type.kind === "enum"
182
183
  ? type.enum.typeName
183
184
  : type.message.typeName,
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-storage-backend.js","sourceRoot":"","sources":["../../src/memory/in-memory-storage-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"in-memory-storage-backend.js","sourceRoot":"","sources":["../../src/memory/in-memory-storage-backend.ts"],"names":[],"mappings":"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"}
@@ -137,6 +137,17 @@ export declare class InMemoryStorageFactory extends StorageFactory implements Te
137
137
  * @returns The created record storage.
138
138
  */
139
139
  protected onCreateRecordStorage<I, R extends Message>(context: StorageContext, recordSpec: RecordSpec<I, R>, group?: StorageGroup): RecordStorage<I, R>;
140
+ /**
141
+ * Opens a memory handle without declaring or checking its family.
142
+ *
143
+ * @param context Complete storage context.
144
+ * @param recordSpec Record layout and source type.
145
+ * @param group Optional physical record family.
146
+ * @returns Independently closeable memory records.
147
+ * @typeParam I Typed record identifier.
148
+ * @typeParam R Stored Protobuf message.
149
+ */
150
+ protected onCreateUnprepared<I, R extends Message>(context: StorageContext, recordSpec: RecordSpec<I, R>, group?: StorageGroup): RecordStorage<I, R>;
140
151
  /**
141
152
  * Binds the tenant and record family to the shared memory backend.
142
153
  *
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-storage-factory.d.ts","sourceRoot":"","sources":["../../src/memory/in-memory-storage-factory.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAIlD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAEL,KAAK,aAAa,EAIlB,KAAK,qBAAqB,EAE3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGxE,OAAO,EAA8B,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEpG,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,8BAA8B,CAAC;AAQtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAGhG;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,cAAe,YAAW,qBAAqB;;IAWzF;;;;OAIG;gBACS,OAAO,GAAE,sBAAqD;IAmB1E;;;;OAIG;IACM,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzC;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IAgBrB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAcrB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IA0BrB;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAkBrB;;;;OAIG;IACH,aAAa,IAAI,aAAa;IAI9B;;;;OAIG;IACM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/B;;;;;OAKG;YACW,KAAK;IAanB;;;;;;;;OAQG;IACH,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IA6B5C;;;;;;;OAOG;IACH,SAAS,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EACtD,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC9B,mBAAmB;IActB;;;;;;OAMG;IACH,SAAS,CAAC,yBAAyB,CAAC,EAAE,EACpC,KAAK,EAAE,wBAAwB,CAAC,EAAE,CAAC,GAClC,mBAAmB,CAAC,EAAE,CAAC;IAM1B;;;;;;;;;OASG;IACH,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EAClD,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5B,KAAK,CAAC,EAAE,YAAY,GACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAOtB;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;CAkBtB"}
1
+ {"version":3,"file":"in-memory-storage-factory.d.ts","sourceRoot":"","sources":["../../src/memory/in-memory-storage-factory.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAIlD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAEL,KAAK,aAAa,EAIlB,KAAK,qBAAqB,EAE3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGxE,OAAO,EAA8B,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEpG,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,8BAA8B,CAAC;AAQtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAGhG;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,cAAe,YAAW,qBAAqB;;IAWzF;;;;OAIG;gBACS,OAAO,GAAE,sBAAqD;IAoB1E;;;;OAIG;IACM,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzC;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IAgBrB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAcrB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IA0BrB;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAkBrB;;;;OAIG;IACH,aAAa,IAAI,aAAa;IAI9B;;;;OAIG;IACM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/B;;;;;OAKG;YACW,KAAK;IAanB;;;;;;;;OAQG;IACH,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IA6B5C;;;;;;;OAOG;IACH,SAAS,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EACtD,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC9B,mBAAmB;IActB;;;;;;OAMG;IACH,SAAS,CAAC,yBAAyB,CAAC,EAAE,EACpC,KAAK,EAAE,wBAAwB,CAAC,EAAE,CAAC,GAClC,mBAAmB,CAAC,EAAE,CAAC;IAM1B;;;;;;;;;OASG;IACH,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EAClD,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5B,KAAK,CAAC,EAAE,YAAY,GACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAOtB;;;;;;;;;OASG;cACgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EACxD,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5B,KAAK,CAAC,EAAE,YAAY,GACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAMtB;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;CAkBtB"}
@@ -52,6 +52,7 @@ export class InMemoryStorageFactory extends StorageFactory {
52
52
  createEntityCommitStorage: (input) => this.createEntityCommitStorage(input),
53
53
  });
54
54
  StoragePreparations.register(this, {
55
+ supportsRecordIndexes: true,
55
56
  prepareRecord: (context, spec, group) => this.prepareRecord(context, spec, group),
56
57
  prepareEntity: (input) => this.prepareEntity(input),
57
58
  prepareAgentHistory: (input) => this.prepareAgentHistory(input),
@@ -307,6 +308,19 @@ export class InMemoryStorageFactory extends StorageFactory {
307
308
  this.declareRecord(context, recordSpec, group);
308
309
  return new InMemoryRecordStorage(context, recordSpec, () => this.tenantRecords(context, recordSpec, group));
309
310
  }
311
+ /**
312
+ * Opens a memory handle without declaring or checking its family.
313
+ *
314
+ * @param context Complete storage context.
315
+ * @param recordSpec Record layout and source type.
316
+ * @param group Optional physical record family.
317
+ * @returns Independently closeable memory records.
318
+ * @typeParam I Typed record identifier.
319
+ * @typeParam R Stored Protobuf message.
320
+ */
321
+ onCreateUnprepared(context, recordSpec, group) {
322
+ return new InMemoryRecordStorage(context, recordSpec, () => this.tenantRecords(context, recordSpec, group));
323
+ }
310
324
  /**
311
325
  * Binds the tenant and record family to the shared memory backend.
312
326
  *
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-storage-factory.js","sourceRoot":"","sources":["../../src/memory/in-memory-storage-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"in-memory-storage-factory.js","sourceRoot":"","sources":["../../src/memory/in-memory-storage-factory.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,9 @@ import type { NormalizedQueryPlan } from "./query-policy.js";
5
5
  export declare const defaultQueryCandidateLimit = 10000;
6
6
  /**
7
7
  * One materialized storage row accepted by the shared normalized evaluator.
8
+ *
9
+ * @typeParam Id Record identifier type.
10
+ * @typeParam Record Stored record type.
8
11
  */
9
12
  export interface NormalizedQueryEntry<Id, Record> {
10
13
  /**
@@ -36,6 +39,12 @@ export declare class QueryCandidateLimitError extends Error {
36
39
  * Shared complete in-process semantics for one validated normalized query plan.
37
40
  */
38
41
  export declare const StorageQueryEvaluator: Readonly<{
42
+ /**
43
+ * Applies one normalized plan to materialized rows.
44
+ *
45
+ * @typeParam Id Record identifier type.
46
+ * @typeParam Record Stored record type.
47
+ */
39
48
  evaluate<Id, Record>(entries: readonly NormalizedQueryEntry<Id, Record>[], plan: NormalizedQueryPlan<Id>): readonly NormalizedQueryEntry<Id, Record>[];
40
49
  }>;
41
50
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"query-execution.d.ts","sourceRoot":"","sources":["../../src/query/query-execution.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,EAAE,EAAE,MAAM;IAG9C;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IAQrC,QAAQ,CAAC,cAAc,EAAE,MAAM;IAL3C;;;;OAIG;gBACkB,cAAc,EAAE,MAAM;CAI5C;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,EACjB,OAAO,EAAE,SAAS,oBAAoB,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EACpD,IAAI,EAAE,mBAAmB,CAAC,EAAE,CAAC,GAC5B,SAAS,oBAAoB,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;CAChD,CAaC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC;IACxC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9C,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;CAChD,CAQC,CAAC"}
1
+ {"version":3,"file":"query-execution.d.ts","sourceRoot":"","sources":["../../src/query/query-execution.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB,CAAC,EAAE,EAAE,MAAM;IAG9C;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IAQrC,QAAQ,CAAC,cAAc,EAAE,MAAM;IAL3C;;;;OAIG;gBACkB,cAAc,EAAE,MAAM;CAI5C;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EACjB,OAAO,EAAE,SAAS,oBAAoB,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EACpD,IAAI,EAAE,mBAAmB,CAAC,EAAE,CAAC,GAC5B,SAAS,oBAAoB,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;CAChD,CAmBC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC;IACxC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9C,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;CAChD,CAQC,CAAC"}
@@ -36,6 +36,12 @@ export class QueryCandidateLimitError extends Error {
36
36
  * Shared complete in-process semantics for one validated normalized query plan.
37
37
  */
38
38
  export const StorageQueryEvaluator = Object.freeze({
39
+ /**
40
+ * Applies one normalized plan to materialized rows.
41
+ *
42
+ * @typeParam Id Record identifier type.
43
+ * @typeParam Record Stored record type.
44
+ */
39
45
  evaluate(entries, plan) {
40
46
  const predicate = plan.predicate;
41
47
  const matching = predicate === undefined
@@ -65,6 +71,12 @@ const QueryPredicateMatcher = {
65
71
  // prettier-ignore
66
72
  /**
67
73
  * Matches a row against one normalized predicate.
74
+ *
75
+ * @param entry Materialized storage row.
76
+ * @param predicate Normalized query predicate.
77
+ * @returns Whether the row matches the predicate.
78
+ * @typeParam Id Record identifier type.
79
+ * @typeParam Record Stored record type.
68
80
  */
69
81
  matches(entry, predicate) {
70
82
  switch (predicate.kind) {
@@ -79,7 +91,12 @@ const QueryPredicateMatcher = {
79
91
  }
80
92
  },
81
93
  /**
82
- * Evaluates one normalized comparison predicate.
94
+ * Matches one normalized comparison predicate.
95
+ *
96
+ * @param actual Materialized column value.
97
+ * @param expected Required comparison value.
98
+ * @param operator Normalized comparison operator.
99
+ * @returns Whether the comparison matches.
83
100
  */
84
101
  comparePredicate(actual, operator, expected) {
85
102
  if (operator === "equal")
@@ -97,6 +114,10 @@ const QueryPredicateMatcher = {
97
114
  },
98
115
  /**
99
116
  * Compares values using normalized query equality semantics.
117
+ *
118
+ * @param left Left value in the comparison.
119
+ * @param right Right value in the comparison.
120
+ * @returns Whether the normalized values are equal.
100
121
  */
101
122
  equalValues(left, right) {
102
123
  if (QueryOrdering.isMissing(left) || QueryOrdering.isMissing(right)) {
@@ -112,6 +133,13 @@ const QueryOrdering = {
112
133
  // prettier-ignore
113
134
  /**
114
135
  * Compares two rows by requested ordering and stable ID tie-breaker.
136
+ *
137
+ * @param left Left value in the comparison.
138
+ * @param plan Validated normalized query plan.
139
+ * @param right Right value in the comparison.
140
+ * @returns Requested row order with an ID tie-breaker.
141
+ * @typeParam Id Record identifier type.
142
+ * @typeParam Record Stored record type.
115
143
  */
116
144
  compareEntries(left, right, plan) {
117
145
  for (const order of plan.order ?? []) {
@@ -123,6 +151,10 @@ const QueryOrdering = {
123
151
  },
124
152
  /**
125
153
  * Compares values while placing missing values before present values.
154
+ *
155
+ * @param left Left value in the comparison.
156
+ * @param right Right value in the comparison.
157
+ * @returns Order with missing values first.
126
158
  */
127
159
  compareWithMissing(left, right) {
128
160
  if (QueryOrdering.isMissing(left) || QueryOrdering.isMissing(right)) {
@@ -134,8 +166,14 @@ const QueryOrdering = {
134
166
  },
135
167
  /**
136
168
  * Compares values supported by normalized query ordering.
169
+ *
170
+ * @param left Left value in the comparison.
171
+ * @param right Right value in the comparison.
172
+ * @returns Order of supported normalized values.
137
173
  */
138
174
  compareOrdered(left, right) {
175
+ if (left instanceof Uint8Array && right instanceof Uint8Array)
176
+ return QueryOrdering.compareBytes(left, right);
139
177
  if (typeof left === "number" && typeof right === "number")
140
178
  return QueryOrdering.compareNumber(left, right);
141
179
  if (typeof left === "bigint" && typeof right === "bigint") {
@@ -153,8 +191,29 @@ const QueryOrdering = {
153
191
  }
154
192
  throw new TypeError("Normalized query ordering value has an unsupported type.");
155
193
  },
194
+ /**
195
+ * Compares byte arrays by unsigned lexicographic value and then length.
196
+ *
197
+ * @param left Left value in the comparison.
198
+ * @param right Right value in the comparison.
199
+ * @returns Unsigned lexicographic order.
200
+ */
201
+ compareBytes(left, right) {
202
+ for (let index = 0; index < Math.min(left.length, right.length); index++) {
203
+ const difference = (left[index] ?? 0) - (right[index] ?? 0);
204
+ if (difference !== 0)
205
+ return difference < 0 ? -1 : 1;
206
+ }
207
+ return Math.sign(left.length - right.length);
208
+ },
156
209
  /**
157
210
  * Compares ordered-message major and minor components.
211
+ *
212
+ * @param leftMajor Major component of the left value.
213
+ * @param leftMinor Minor component of the left value.
214
+ * @param rightMajor Major component of the right value.
215
+ * @param rightMinor Minor component of the right value.
216
+ * @returns Major and minor component order.
158
217
  */
159
218
  comparePair(leftMajor, leftMinor, rightMajor, rightMinor) {
160
219
  const major = QueryOrdering.compareStable(leftMajor, rightMajor);
@@ -162,10 +221,16 @@ const QueryOrdering = {
162
221
  },
163
222
  /**
164
223
  * Compares values with a deterministic fallback for distinct shapes.
224
+ *
225
+ * @param left Left value in the comparison.
226
+ * @param right Right value in the comparison.
227
+ * @returns Deterministic order of both values.
165
228
  */
166
229
  compareStable(left, right) {
167
230
  if (QueryOrdering.isMissing(left) || QueryOrdering.isMissing(right))
168
231
  return QueryOrdering.compareWithMissing(left, right);
232
+ if (left instanceof Uint8Array && right instanceof Uint8Array)
233
+ return QueryOrdering.compareBytes(left, right);
169
234
  if (typeof left === typeof right && ["number", "bigint", "string"].includes(typeof left)) {
170
235
  return QueryOrdering.compareOrdered(left, right);
171
236
  }
@@ -173,6 +238,9 @@ const QueryOrdering = {
173
238
  },
174
239
  /**
175
240
  * Creates a deterministic value representation for equality and tie-breaking.
241
+ *
242
+ * @param value Value to inspect or clone.
243
+ * @returns Deterministic equality representation.
176
244
  */
177
245
  stableKey(value) {
178
246
  if (value instanceof Uint8Array)
@@ -189,7 +257,10 @@ const QueryOrdering = {
189
257
  .join(",")}}`;
190
258
  },
191
259
  /**
192
- * Identifies ordered Protobuf timestamp and version values.
260
+ * Determines whether a value is an ordered Protobuf timestamp or version.
261
+ *
262
+ * @param value Value to inspect or clone.
263
+ * @returns Whether the value is an ordered Protobuf message.
193
264
  */
194
265
  isOrderedMessage(value) {
195
266
  return (typeof value === "object" &&
@@ -199,6 +270,10 @@ const QueryOrdering = {
199
270
  },
200
271
  /**
201
272
  * Compares finite numeric values.
273
+ *
274
+ * @param left Left value in the comparison.
275
+ * @param right Right value in the comparison.
276
+ * @returns Numeric order.
202
277
  */
203
278
  compareNumber(left, right) {
204
279
  if (!Number.isFinite(left) || !Number.isFinite(right)) {
@@ -208,12 +283,19 @@ const QueryOrdering = {
208
283
  },
209
284
  /**
210
285
  * Compares text values in code-unit order.
286
+ *
287
+ * @param left Left value in the comparison.
288
+ * @param right Right value in the comparison.
289
+ * @returns Code-unit text order.
211
290
  */
212
291
  compareText(left, right) {
213
292
  return left < right ? -1 : left > right ? 1 : 0;
214
293
  },
215
294
  /**
216
- * Identifies absent normalized query values.
295
+ * Determines whether a normalized query value is absent.
296
+ *
297
+ * @param value Value to inspect or clone.
298
+ * @returns Whether the value is absent.
217
299
  */
218
300
  isMissing(value) {
219
301
  return value === undefined || value === null;