@spine-event-engine/storage 2.0.0-snapshot.26 → 2.0.0-snapshot.29

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
@@ -1 +1 @@
1
- {"version":3,"file":"query-execution.js","sourceRoot":"","sources":["../../src/query/query-execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-execution.js","sourceRoot":"","sources":["../../src/query/query-execution.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,24 @@
1
- import type { RecordColumnType } from "./column-type.js";
1
+ import { type RecordColumnType } from "./column-type.js";
2
2
  /**
3
3
  * Converts one typed record-column value to its provider representation.
4
4
  *
5
5
  * @param value The typed Protobuf value.
6
6
  * @returns The provider representation.
7
+ * @typeParam R Stored Protobuf record type.
8
+ * @typeParam V Declared column value type.
7
9
  */
8
10
  export type ColumnTypeMapping<V, R> = (value: V) => R;
9
11
  /**
10
12
  * Supplies provider conversion rules for generated Protobuf column types.
13
+ *
14
+ * @typeParam R Stored Protobuf record type.
11
15
  */
12
16
  export interface ColumnMapping<R> {
13
17
  /**
14
18
  * Returns the conversion rule for a declared column type.
15
19
  * @param type The generated Protobuf column type.
16
20
  * @returns The provider conversion rule.
21
+ * @typeParam V Declared column value type.
17
22
  */
18
23
  of<V>(type: RecordColumnType<V>): ColumnTypeMapping<V, R>;
19
24
  /**
@@ -35,6 +40,8 @@ export declare const ColumnMappings: {
35
40
  * @param type The declared column type.
36
41
  * @param value The stored or queried value.
37
42
  * @returns The provider value.
43
+ * @typeParam R Stored Protobuf record type.
44
+ * @typeParam V Declared column value type.
38
45
  */
39
46
  readonly value: <V, R>(mapping: ColumnMapping<R>, type: RecordColumnType<V>, value: V | null | undefined) => R;
40
47
  };
@@ -1 +1 @@
1
- {"version":3,"file":"column-mapping.d.ts","sourceRoot":"","sources":["../../src/record/column-mapping.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC;IAG9B;;;;OAIG;IACH,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1D;;;OAGG;IACH,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;IAGzB;;;;;;;;;OASG;qBACG,CAAC,EAAE,CAAC,WACC,aAAa,CAAC,CAAC,CAAC,QACnB,gBAAgB,CAAC,CAAC,CAAC,SAClB,CAAC,GAAG,IAAI,GAAG,SAAS,KAC1B,CAAC;CAKI,CAAC"}
1
+ {"version":3,"file":"column-mapping.d.ts","sourceRoot":"","sources":["../../src/record/column-mapping.ts"],"names":[],"mappings":"AAcA,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEnF;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC;IAG9B;;;;;OAKG;IACH,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1D;;;OAGG;IACH,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;IAGzB;;;;;;;;;;;OAWG;qBACG,CAAC,EAAE,CAAC,WACC,aAAa,CAAC,CAAC,CAAC,QACnB,gBAAgB,CAAC,CAAC,CAAC,SAClB,CAAC,GAAG,IAAI,GAAG,SAAS,KAC1B,CAAC;CAMI,CAAC"}
@@ -11,6 +11,7 @@
11
11
  * or implied. See the License for the specific language governing permissions and limitations under
12
12
  * the License.
13
13
  */
14
+ import { FixedByteWidthValidation } from "./column-type.js";
14
15
  /**
15
16
  * Applies one provider mapping to stored and queried column values.
16
17
  */
@@ -25,8 +26,12 @@ export const ColumnMappings = {
25
26
  * @param type The declared column type.
26
27
  * @param value The stored or queried value.
27
28
  * @returns The provider value.
29
+ * @typeParam R Stored Protobuf record type.
30
+ * @typeParam V Declared column value type.
28
31
  */
29
32
  value(mapping, type, value) {
33
+ if (value !== null && value !== undefined)
34
+ FixedByteWidthValidation.require(type, value);
30
35
  return value === null || value === undefined
31
36
  ? mapping.ofNull()(null)
32
37
  : mapping.of(type)(value);
@@ -1 +1 @@
1
- {"version":3,"file":"column-mapping.js","sourceRoot":"","sources":["../../src/record/column-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAgCH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,kBAAkB;IAElB;;;;;;;;;OASG;IACH,KAAK,CACH,OAAyB,EACzB,IAAyB,EACzB,KAA2B;QAE3B,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAC1C,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;YACxB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACO,CAAC;AACX,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"column-mapping.js","sourceRoot":"","sources":["../../src/record/column-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,wBAAwB,EAAyB,MAAM,kBAAkB,CAAC;AAmCnF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,kBAAkB;IAElB;;;;;;;;;;;OAWG;IACH,KAAK,CACH,OAAyB,EACzB,IAAyB,EACzB,KAA2B;QAE3B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,wBAAwB,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzF,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAC1C,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;YACxB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACO,CAAC;AACX,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC"}
@@ -1,21 +1,44 @@
1
- import type { DescEnum, DescField, DescMessage, ScalarType } from "@bufbuild/protobuf";
1
+ import { ScalarType, type DescEnum, type DescField, type DescMessage } from "@bufbuild/protobuf";
2
2
  declare const columnValueType: unique symbol;
3
3
  /**
4
4
  * Generated Protobuf type retained for one materialized record column.
5
+ *
6
+ * @typeParam V Declared column value type.
5
7
  */
6
8
  export type RecordColumnType<V = unknown> = ({
7
9
  /**
8
- * Identifies a Protobuf scalar column.
10
+ * Identifies a Protobuf byte scalar column.
9
11
  */
10
12
  readonly kind: "scalar";
11
13
  /**
12
- * Protobuf scalar kind retained by the column.
14
+ * Retains the Protobuf BYTES scalar kind.
13
15
  */
14
- readonly scalar: ScalarType;
16
+ readonly scalar: ScalarType.BYTES;
15
17
  /**
16
18
  * Whether generated code represents a 64-bit value as a string.
17
19
  */
18
20
  readonly longAsString: boolean;
21
+ /**
22
+ * Exact byte width when this scalar is BYTES and was declared with fixedBytes.
23
+ */
24
+ readonly byteLength?: number;
25
+ } | {
26
+ /**
27
+ * Identifies a non-byte Protobuf scalar column.
28
+ */
29
+ readonly kind: "scalar";
30
+ /**
31
+ * Retains a scalar kind that cannot declare an exact byte width.
32
+ */
33
+ readonly scalar: Exclude<ScalarType, ScalarType.BYTES>;
34
+ /**
35
+ * Whether generated code represents a 64-bit value as a string.
36
+ */
37
+ readonly longAsString: boolean;
38
+ /**
39
+ * Prevents byte widths on non-byte scalar descriptors.
40
+ */
41
+ readonly byteLength?: never;
19
42
  } | {
20
43
  /**
21
44
  * Identifies a Protobuf enum column.
@@ -44,23 +67,32 @@ export type RecordColumnType<V = unknown> = ({
44
67
  * Creates record-column types from generated Protobuf descriptors.
45
68
  */
46
69
  export declare const ColumnTypes: {
70
+ /**
71
+ * Declares bytes with an exact stored and queried width.
72
+ * @param byteLength Positive safe-integer width.
73
+ * @returns Fixed-width byte column type.
74
+ */
75
+ readonly fixedBytes: (byteLength: number) => RecordColumnType<Uint8Array>;
47
76
  /**
48
77
  * Declares a scalar type for a derived column value.
49
78
  * @param scalar The Protobuf scalar type.
50
79
  * @param longAsString Whether a 64-bit value uses its generated string form.
51
80
  * @returns The scalar column type.
81
+ * @typeParam V Declared column value type.
52
82
  */
53
83
  readonly scalar: <V = unknown>(scalar: ScalarType, longAsString?: boolean) => RecordColumnType<V>;
54
84
  /**
55
85
  * Declares an enum type for a derived column value.
56
86
  * @param schema The generated enum descriptor.
57
87
  * @returns The enum column type.
88
+ * @typeParam V Declared column value type.
58
89
  */
59
90
  readonly enum: <V = unknown>(schema: DescEnum) => RecordColumnType<V>;
60
91
  /**
61
92
  * Declares a message type for a derived column value.
62
93
  * @param schema The generated message descriptor.
63
94
  * @returns The message column type.
95
+ * @typeParam V Declared column value type.
64
96
  */
65
97
  readonly message: <V = unknown>(schema: DescMessage) => RecordColumnType<V>;
66
98
  /**
@@ -68,8 +100,22 @@ export declare const ColumnTypes: {
68
100
  * @param field The generated field descriptor.
69
101
  * @returns The corresponding column type.
70
102
  * @throws Error when the field is repeated or a map.
103
+ * @typeParam V Declared column value type.
71
104
  */
72
105
  readonly fromField: <V = unknown>(field: DescField) => RecordColumnType<V>;
73
106
  };
107
+ /**
108
+ * Validates present values for fixed-width byte columns.
109
+ */
110
+ export declare const FixedByteWidthValidation: Readonly<{
111
+ /**
112
+ * Requires a present byte value to match its declared exact width.
113
+ *
114
+ * @param type Validated record-column descriptor.
115
+ * @param value Present stored or queried column value.
116
+ * @throws TypeError when a fixed-byte value is not bytes or has the wrong width.
117
+ */
118
+ require(type: RecordColumnType, value: unknown): void;
119
+ }>;
74
120
  export {};
75
121
  //# sourceMappingURL=column-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"column-type.d.ts","sourceRoot":"","sources":["../../src/record/column-type.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEvF,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,OAAO,IAAI,CACxC;IAGE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC,GACD;IAGE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB,GACD;IAGE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC/B,CACJ,GAAG;IAGF;;OAEG;IACH,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;IAGtB;;;;;OAKG;sBACI,CAAC,oBACE,UAAU,iBACH,OAAO,KACrB,gBAAgB,CAAC,CAAC,CAAC;IAItB;;;;OAIG;oBACE,CAAC,oBAAoB,QAAQ,KAAG,gBAAgB,CAAC,CAAC,CAAC;IAIxD;;;;OAIG;uBACK,CAAC,oBAAoB,WAAW,KAAG,gBAAgB,CAAC,CAAC,CAAC;IAI9D;;;;;OAKG;yBACO,CAAC,mBAAmB,SAAS,KAAG,gBAAgB,CAAC,CAAC,CAAC;CAiBrD,CAAC"}
1
+ {"version":3,"file":"column-type.d.ts","sourceRoot":"","sources":["../../src/record/column-type.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjG,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAE7C;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,OAAO,IAAI,CACxC;IAGE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,GACD;IAGE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAEvD;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;CAC7B,GACD;IAGE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB,GACD;IAGE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC/B,CACJ,GAAG;IAGF;;OAEG;IACH,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;IAGtB;;;;OAIG;sCACoB,MAAM,KAAG,gBAAgB,CAAC,UAAU,CAAC;IAM5D;;;;;;OAMG;sBACI,CAAC,oBAAoB,UAAU,iBAAiB,OAAO,KAAG,gBAAgB,CAAC,CAAC,CAAC;IAMpF;;;;;OAKG;oBACE,CAAC,oBAAoB,QAAQ,KAAG,gBAAgB,CAAC,CAAC,CAAC;IAIxD;;;;;OAKG;uBACK,CAAC,oBAAoB,WAAW,KAAG,gBAAgB,CAAC,CAAC,CAAC;IAI9D;;;;;;OAMG;yBACO,CAAC,mBAAmB,SAAS,KAAG,gBAAgB,CAAC,CAAC,CAAC;CAuBrD,CAAC;AAGX;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC;IAC9C;;;;;;OAMG;IACH,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CACvD,CAaC,CAAC"}
@@ -11,24 +11,39 @@
11
11
  * or implied. See the License for the specific language governing permissions and limitations under
12
12
  * the License.
13
13
  */
14
+ import { ScalarType } from "@bufbuild/protobuf";
14
15
  /**
15
16
  * Creates record-column types from generated Protobuf descriptors.
16
17
  */
17
18
  export const ColumnTypes = {
18
19
  // prettier-ignore
20
+ /**
21
+ * Declares bytes with an exact stored and queried width.
22
+ * @param byteLength Positive safe-integer width.
23
+ * @returns Fixed-width byte column type.
24
+ */
25
+ fixedBytes(byteLength) {
26
+ if (!Number.isSafeInteger(byteLength) || byteLength <= 0)
27
+ throw new RangeError("Fixed-byte width must be a positive safe integer.");
28
+ return Object.freeze({ kind: "scalar", scalar: ScalarType.BYTES, longAsString: false, byteLength });
29
+ },
19
30
  /**
20
31
  * Declares a scalar type for a derived column value.
21
32
  * @param scalar The Protobuf scalar type.
22
33
  * @param longAsString Whether a 64-bit value uses its generated string form.
23
34
  * @returns The scalar column type.
35
+ * @typeParam V Declared column value type.
24
36
  */
25
37
  scalar(scalar, longAsString) {
38
+ if (scalar === ScalarType.BYTES)
39
+ return Object.freeze({ kind: "scalar", scalar, longAsString: longAsString ?? false });
26
40
  return Object.freeze({ kind: "scalar", scalar, longAsString: longAsString ?? false });
27
41
  },
28
42
  /**
29
43
  * Declares an enum type for a derived column value.
30
44
  * @param schema The generated enum descriptor.
31
45
  * @returns The enum column type.
46
+ * @typeParam V Declared column value type.
32
47
  */
33
48
  enum(schema) {
34
49
  return Object.freeze({ kind: "enum", enum: schema });
@@ -37,6 +52,7 @@ export const ColumnTypes = {
37
52
  * Declares a message type for a derived column value.
38
53
  * @param schema The generated message descriptor.
39
54
  * @returns The message column type.
55
+ * @typeParam V Declared column value type.
40
56
  */
41
57
  message(schema) {
42
58
  return Object.freeze({ kind: "message", message: schema });
@@ -46,10 +62,17 @@ export const ColumnTypes = {
46
62
  * @param field The generated field descriptor.
47
63
  * @returns The corresponding column type.
48
64
  * @throws Error when the field is repeated or a map.
65
+ * @typeParam V Declared column value type.
49
66
  */
50
67
  fromField(field) {
51
68
  switch (field.fieldKind) {
52
69
  case "scalar":
70
+ if (field.scalar === ScalarType.BYTES)
71
+ return Object.freeze({
72
+ kind: "scalar",
73
+ scalar: field.scalar,
74
+ longAsString: field.longAsString,
75
+ });
53
76
  return Object.freeze({
54
77
  kind: "scalar",
55
78
  scalar: field.scalar,
@@ -66,4 +89,22 @@ export const ColumnTypes = {
66
89
  },
67
90
  };
68
91
  Object.freeze(ColumnTypes);
92
+ /**
93
+ * Validates present values for fixed-width byte columns.
94
+ */
95
+ export const FixedByteWidthValidation = Object.freeze({
96
+ /**
97
+ * Requires a present byte value to match its declared exact width.
98
+ *
99
+ * @param type Validated record-column descriptor.
100
+ * @param value Present stored or queried column value.
101
+ * @throws TypeError when a fixed-byte value is not bytes or has the wrong width.
102
+ */
103
+ require(type, value) {
104
+ if (type.kind !== "scalar" || type.byteLength === undefined)
105
+ return;
106
+ if (!(value instanceof Uint8Array) || value.byteLength !== type.byteLength)
107
+ throw new TypeError(`Fixed-byte column requires exactly ${String(type.byteLength)} bytes.`);
108
+ },
109
+ });
69
110
  //# sourceMappingURL=column-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"column-type.js","sourceRoot":"","sources":["../../src/record/column-type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA+DH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,kBAAkB;IAElB;;;;;OAKG;IACH,MAAM,CACJ,MAAkB,EAClB,YAAsB;QAEtB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,IAAI,KAAK,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAc,MAAgB;QAChC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAc,MAAmB;QACtC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAc,KAAgB;QACrC,QAAQ,KAAK,CAAC,SAAS,EAAE,CAAC;YACxB,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,MAAM,CAAC;oBACnB,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,YAAY,EAAE,KAAK,CAAC,YAAY;iBACjC,CAAC,CAAC;YACL,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,KAAK,SAAS;gBACZ,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACpE,KAAK,MAAM,CAAC;YACZ,KAAK,KAAK;gBACR,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,CAAC,IAAI,iCAAiC,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;CACO,CAAC;AACX,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"column-type.js","sourceRoot":"","sources":["../../src/record/column-type.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
- import type { RecordColumnType } from "./column-type.js";
1
+ import { type RecordColumnType } from "./column-type.js";
2
2
  /**
3
3
  * Queryable column calculated from a stored record.
4
+ *
5
+ * @typeParam R Stored Protobuf record type.
6
+ * @typeParam V Declared column value type.
4
7
  */
5
8
  export declare class RecordColumn<R extends object, V = unknown> {
6
9
  #private;
@@ -11,6 +14,8 @@ export declare class RecordColumn<R extends object, V = unknown> {
11
14
  * @param name The stable column name.
12
15
  * @param type The generated Protobuf value type.
13
16
  * @param read The record value reader.
17
+ * @throws TypeError when a non-byte descriptor declares a byte width.
18
+ * @throws RangeError when a byte width is not a positive safe integer.
14
19
  */
15
20
  constructor(name: string, type: RecordColumnType<V>, read: (record: R) => V);
16
21
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"record-column.d.ts","sourceRoot":"","sources":["../../src/record/record-column.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD;;GAEG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,OAAO;;IAUnD,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;IARpC;;;;;OAKG;gBAEQ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAClC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;IAKxB;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC;CAGtB"}
1
+ {"version":3,"file":"record-column.d.ts","sourceRoot":"","sources":["../../src/record/record-column.ts"],"names":[],"mappings":"AAeA,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEnF;;;;;GAKG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,OAAO;;IAYnD,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAVpC;;;;;;;OAOG;gBAEQ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAClC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;IAaxB;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC;CAKtB"}
@@ -11,8 +11,13 @@
11
11
  * or implied. See the License for the specific language governing permissions and limitations under
12
12
  * the License.
13
13
  */
14
+ import { ScalarType } from "@bufbuild/protobuf";
15
+ import { FixedByteWidthValidation } from "./column-type.js";
14
16
  /**
15
17
  * Queryable column calculated from a stored record.
18
+ *
19
+ * @typeParam R Stored Protobuf record type.
20
+ * @typeParam V Declared column value type.
16
21
  */
17
22
  export class RecordColumn {
18
23
  name;
@@ -23,10 +28,18 @@ export class RecordColumn {
23
28
  * @param name The stable column name.
24
29
  * @param type The generated Protobuf value type.
25
30
  * @param read The record value reader.
31
+ * @throws TypeError when a non-byte descriptor declares a byte width.
32
+ * @throws RangeError when a byte width is not a positive safe integer.
26
33
  */
27
34
  constructor(name, type, read) {
28
35
  this.name = name;
29
36
  this.type = type;
37
+ const byteLength = Reflect.get(type, "byteLength");
38
+ if (byteLength !== undefined && (type.kind !== "scalar" || type.scalar !== ScalarType.BYTES))
39
+ throw new TypeError("Only BYTES record columns may declare a byte width.");
40
+ if (byteLength !== undefined &&
41
+ (typeof byteLength !== "number" || !Number.isSafeInteger(byteLength) || byteLength <= 0))
42
+ throw new RangeError("Fixed-byte width must be a positive safe integer.");
30
43
  this.#read = read;
31
44
  }
32
45
  /**
@@ -35,7 +48,10 @@ export class RecordColumn {
35
48
  * @returns The column value.
36
49
  */
37
50
  valueIn(record) {
38
- return this.#read(record);
51
+ const value = this.#read(record);
52
+ if (value !== null && value !== undefined)
53
+ FixedByteWidthValidation.require(this.type, value);
54
+ return value;
39
55
  }
40
56
  }
41
57
  //# sourceMappingURL=record-column.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"record-column.js","sourceRoot":"","sources":["../../src/record/record-column.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH;;GAEG;AACH,MAAM,OAAO,YAAY;IAUZ;IACA;IAVF,KAAK,CAAmB;IAEjC;;;;;OAKG;IACH,YACW,IAAY,EACZ,IAAyB,EAClC,IAAsB;QAFb,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAqB;QAGlC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAS;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF"}
1
+ {"version":3,"file":"record-column.js","sourceRoot":"","sources":["../../src/record/record-column.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAyB,MAAM,kBAAkB,CAAC;AAEnF;;;;;GAKG;AACH,MAAM,OAAO,YAAY;IAYZ;IACA;IAZF,KAAK,CAAmB;IAEjC;;;;;;;OAOG;IACH,YACW,IAAY,EACZ,IAAyB,EAClC,IAAsB;QAFb,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAqB;QAGlC,MAAM,UAAU,GAAY,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC5D,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,KAAK,CAAC;YAC1F,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;QAC7E,IACE,UAAU,KAAK,SAAS;YACxB,CAAC,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,CAAC;YAExF,MAAM,IAAI,UAAU,CAAC,mDAAmD,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAS;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9F,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Declares a complete, non-unique ascending lookup index for one record family.
3
+ */
4
+ export interface RecordIndex {
5
+ /**
6
+ * Identifies this requirement within the record specification.
7
+ */
8
+ readonly name: string;
9
+ /**
10
+ * Lists declared column names in index order; `id` selects the storage slot ID.
11
+ */
12
+ readonly columns: readonly string[];
13
+ }
14
+ //# sourceMappingURL=record-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-index.d.ts","sourceRoot":"","sources":["../../src/record/record-index.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC"}
@@ -0,0 +1,15 @@
1
+ /*
2
+ * Copyright 2026, CodeMatters. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5
+ * in compliance with the License. You may obtain a copy of the License at
6
+ *
7
+ * https://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
10
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
+ * or implied. See the License for the specific language governing permissions and limitations under
12
+ * the License.
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=record-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-index.js","sourceRoot":"","sources":["../../src/record/record-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
@@ -1,8 +1,12 @@
1
1
  import type { Message } from "@bufbuild/protobuf";
2
2
  import type { GenMessage } from "@bufbuild/protobuf/codegenv2";
3
3
  import { RecordColumn } from "./record-column.js";
4
+ import type { RecordIndex } from "./record-index.js";
4
5
  /**
5
6
  * Configures one direct Protobuf record family and its identity.
7
+ *
8
+ * @typeParam I Record identifier type.
9
+ * @typeParam R Stored Protobuf record type.
6
10
  */
7
11
  export type RecordSpecOptions<I, R extends Message> = {
8
12
  /**
@@ -24,6 +28,10 @@ export type RecordSpecOptions<I, R extends Message> = {
24
28
  * Declared query columns materialized from each record.
25
29
  */
26
30
  readonly columns?: readonly RecordColumn<R>[];
31
+ /**
32
+ * Optional complete non-unique ascending physical lookup requirements.
33
+ */
34
+ readonly indexes?: readonly RecordIndex[];
27
35
  } & ([I] extends [Message] ? {
28
36
  /**
29
37
  * Generated schema for a message-valued identity.
@@ -39,13 +47,16 @@ export type RecordSpecOptions<I, R extends Message> = {
39
47
  });
40
48
  /**
41
49
  * Declarative specification for one identified Protobuf record type.
50
+ *
51
+ * @typeParam I Record identifier type.
52
+ * @typeParam R Stored Protobuf record type.
42
53
  */
43
54
  export declare class RecordSpec<I, R extends Message> {
44
55
  #private;
45
56
  /**
46
57
  * Creates a record specification.
47
58
  *
48
- * @throws Error if the ID type is invalid or two declared columns have the same name.
59
+ * @throws Error if the ID type, declared columns, or index requirements are invalid.
49
60
  * @param input The source, record, identity, and column definitions.
50
61
  */
51
62
  constructor(input: RecordSpecOptions<I, R>);
@@ -69,6 +80,11 @@ export declare class RecordSpec<I, R extends Message> {
69
80
  * @returns The declared record columns.
70
81
  */
71
82
  get columns(): readonly RecordColumn<R>[];
83
+ /**
84
+ * Returns detached immutable physical lookup requirements.
85
+ * @returns Complete ascending index declarations.
86
+ */
87
+ get indexes(): readonly RecordIndex[];
72
88
  /**
73
89
  * Copies an ID value according to this specification.
74
90
  * @param id The ID to clone.
@@ -1 +1 @@
1
- {"version":3,"file":"record-spec.d.ts","sourceRoot":"","sources":["../../src/record/record-spec.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMlD;;GAEG;AAEH,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,IAAI;IAEpD;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAEnC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;CAC/C,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GACtB;IAEE;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC,CAAC;AAOP;;GAEG;AACH,qBAAa,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO;;IAQ1C;;;;;OAKG;gBACS,KAAK,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IA8B1C;;;OAGG;IACH,IAAI,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC,CAEpC;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,CAAC,SAAS,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAEvD;IAED;;;OAGG;IACH,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,CAE9B;IAED;;;OAGG;IACH,IAAI,OAAO,IAAI,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAExC;IAED;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;IAMjB;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC;IAIzB;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC;IAIvB;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG;QACtB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACf,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;KACpB;CAeF"}
1
+ {"version":3,"file":"record-spec.d.ts","sourceRoot":"","sources":["../../src/record/record-spec.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAarD;;;;;GAKG;AAEH,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,IAAI;IAEpD;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAEnC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9C;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CAC3C,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GACtB;IAEE;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC,CAAC;AAOP;;;;;GAKG;AACH,qBAAa,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO;;IAe1C;;;;;OAKG;gBACS,KAAK,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IA+B1C;;;OAGG;IACH,IAAI,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC,CAEpC;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,CAAC,SAAS,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAEvD;IAED;;;OAGG;IACH,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,CAE9B;IAED;;;OAGG;IACH,IAAI,OAAO,IAAI,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAExC;IAED;;;OAGG;IACH,IAAI,OAAO,IAAI,SAAS,WAAW,EAAE,CAEpC;IAED;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;IAMjB;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC;IAIzB;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC;IAIvB;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG;QACtB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACf,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;KACpB;CAeF"}
@@ -16,9 +16,13 @@ import { RecordColumn } from "./record-column.js";
16
16
  const storageHost = globalThis;
17
17
  /**
18
18
  * Declarative specification for one identified Protobuf record type.
19
+ *
20
+ * @typeParam I Record identifier type.
21
+ * @typeParam R Stored Protobuf record type.
19
22
  */
20
23
  export class RecordSpec {
21
24
  #columns;
25
+ #indexes;
22
26
  #extractId;
23
27
  #idSchema;
24
28
  #idKind;
@@ -27,7 +31,7 @@ export class RecordSpec {
27
31
  /**
28
32
  * Creates a record specification.
29
33
  *
30
- * @throws Error if the ID type is invalid or two declared columns have the same name.
34
+ * @throws Error if the ID type, declared columns, or index requirements are invalid.
31
35
  * @param input The source, record, identity, and column definitions.
32
36
  */
33
37
  constructor(input) {
@@ -40,6 +44,7 @@ export class RecordSpec {
40
44
  }
41
45
  names.add(column.name);
42
46
  }
47
+ this.#indexes = RecordIndexes.capture(input.indexes ?? [], names);
43
48
  this.#extractId = input.extractId;
44
49
  if (runtimeInput.idSchema === undefined &&
45
50
  (runtimeInput.idKind === undefined || runtimeInput.idKind.trim().length === 0)) {
@@ -81,6 +86,13 @@ export class RecordSpec {
81
86
  get columns() {
82
87
  return this.#columns;
83
88
  }
89
+ /**
90
+ * Returns detached immutable physical lookup requirements.
91
+ * @returns Complete ascending index declarations.
92
+ */
93
+ get indexes() {
94
+ return this.#indexes;
95
+ }
84
96
  /**
85
97
  * Copies an ID value according to this specification.
86
98
  * @param id The ID to clone.
@@ -124,7 +136,47 @@ export class RecordSpec {
124
136
  };
125
137
  }
126
138
  }
139
+ /**
140
+ * Validates and detaches physical index declarations.
141
+ */
142
+ const RecordIndexes = Object.freeze({
143
+ /**
144
+ * Validates and detaches physical lookup requirements.
145
+ *
146
+ * @param columns Available declared column names.
147
+ * @param indexes Declared lookup index requirements.
148
+ * @returns Detached immutable index requirements.
149
+ */
150
+ capture(indexes, columns) {
151
+ const names = new Set();
152
+ const result = indexes.map((index) => {
153
+ if (index.name.trim().length === 0 || names.has(index.name))
154
+ throw new Error("Record indexes require distinct non-blank names.");
155
+ names.add(index.name);
156
+ if (index.columns.length === 0)
157
+ throw new Error(`Record index "${index.name}" requires at least one column.`);
158
+ const components = new Set();
159
+ for (const component of index.columns) {
160
+ if (components.has(component) ||
161
+ (component !== "id" && !columns.has(component)) ||
162
+ (component === "id" && columns.has("id")))
163
+ throw new Error(`Record index "${index.name}" has an invalid or ambiguous column "${component}".`);
164
+ components.add(component);
165
+ }
166
+ return Object.freeze({ name: index.name, columns: Object.freeze([...index.columns]) });
167
+ });
168
+ return Object.freeze(result);
169
+ },
170
+ });
127
171
  const RecordCloner = Object.freeze({
172
+ /**
173
+ * Copies a stored Protobuf record.
174
+ *
175
+ * @param record Stored Protobuf record.
176
+ * @param schema Generated Protobuf record schema.
177
+ * @returns Cloned Protobuf record.
178
+ * @typeParam R Stored Protobuf record type.
179
+ */
128
180
  message(schema, record) {
129
181
  const cloneMethod = this.findCloneMethod(record);
130
182
  if (cloneMethod !== undefined) {
@@ -137,6 +189,13 @@ const RecordCloner = Object.freeze({
137
189
  throw new Error("Storage record could not be cloned.");
138
190
  }
139
191
  },
192
+ /**
193
+ * Copies a stored or queried value.
194
+ *
195
+ * @param value Value to inspect or clone.
196
+ * @returns Cloned stored or queried value.
197
+ * @typeParam T Value type preserved through cloning.
198
+ */
140
199
  value(value) {
141
200
  const cloneMethod = this.findCloneMethod(value);
142
201
  if (cloneMethod !== undefined) {
@@ -149,6 +208,12 @@ const RecordCloner = Object.freeze({
149
208
  throw new Error("Storage value could not be cloned.");
150
209
  }
151
210
  },
211
+ /**
212
+ * Finds a record-supplied clone operation.
213
+ *
214
+ * @param value Value to inspect or clone.
215
+ * @returns Available record clone method, if any.
216
+ */
152
217
  findCloneMethod(value) {
153
218
  if (typeof value !== "object" || value === null)
154
219
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"record-spec.js","sourceRoot":"","sources":["../../src/record/record-spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record-spec.js","sourceRoot":"","sources":["../../src/record/record-spec.ts"],"names":[],"mappings":"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"}