dyna-record 0.6.2 → 0.6.3

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/README.md CHANGED
@@ -671,6 +671,7 @@ The type system validates:
671
671
  - **Filter attribute keys**: Only attributes that exist on the entity or its related entities are accepted. Relationship property names, partition keys, and sort keys are excluded.
672
672
  - **`type` field values**: The `type` field only accepts entity names from the partition — the entity itself and its declared relationships. Entities from other tables or unrelated entities on the same table are rejected.
673
673
  - **Sort key values**: Both `skCondition` and the `sk` property in key conditions only accept entity names from the partition. This matches dyna-record's single-table design where sort key values always start with an entity class name.
674
+ - **SK-scoped filters**: When `skCondition` narrows to specific entities, the `filter` parameter is scoped to only those entities' attributes. For example, `skCondition: { $beginsWith: "Order" }` restricts the filter to Order's attributes — using `lastFour` (a PaymentMethod attribute) produces a compile error.
674
675
  - **`type` narrowing in `$or`**: Each `$or` element is independently narrowed. When an `$or` block specifies `type: "Order"`, only Order's attributes are allowed in that block.
675
676
  - **Dot-path keys**: Nested `@ObjectAttribute` fields are available as typed filter keys using dot notation (e.g., `"address.city"`).
676
677
 
@@ -798,7 +799,73 @@ const specific = await Customer.query("123", { skCondition: "Order#123" });
798
799
  // specific is QueryResults<Customer> (full union)
799
800
  ```
800
801
 
801
- When using the object key form (`{ pk: "...", sk: "..." }`), sort key values are **validated** but the return type is **not narrowed**. Use `filter: { type: "Order" }` alongside key conditions for return type narrowing:
802
+ ##### `$beginsWith` prefix matching
803
+
804
+ `$beginsWith` also accepts partial entity name prefixes that match multiple entity types. When a prefix matches more than one entity name, the return type and filter are scoped to the union of all matching entities:
805
+
806
+ ```typescript
807
+ // "C" matches both "Customer" and "ContactInformation"
808
+ const results = await Customer.query("123", {
809
+ skCondition: { $beginsWith: "C" }
810
+ });
811
+ // results is Array<EntityAttributesInstance<Customer> | EntityAttributesInstance<ContactInformation>>
812
+
813
+ // When one entity name is a prefix of another (e.g., PaymentMethod / PaymentMethodProvider):
814
+ const results = await PaymentMethod.query("123", {
815
+ skCondition: { $beginsWith: "PaymentMethod" }
816
+ });
817
+ // results includes both PaymentMethod and PaymentMethodProvider
818
+
819
+ // Longer prefix narrows further
820
+ const results = await PaymentMethod.query("123", {
821
+ skCondition: { $beginsWith: "PaymentMethodP" }
822
+ });
823
+ // results is Array<EntityAttributesInstance<PaymentMethodProvider>>
824
+
825
+ // Prefixes that don't match any entity name are rejected
826
+ await Customer.query("123", {
827
+ skCondition: { $beginsWith: "X" } // Compile error
828
+ });
829
+ ```
830
+
831
+ ##### SK-scoped filter validation
832
+
833
+ When `skCondition` narrows to specific entities, the `filter` parameter is automatically scoped to only those entities' attributes. This prevents filtering on attributes from entities that can't appear in the results:
834
+
835
+ ```typescript
836
+ // SK narrows to Order — filter accepts only Order attributes (+ default fields)
837
+ await Customer.query("123", {
838
+ skCondition: { $beginsWith: "Order" },
839
+ filter: { orderDate: "2023", customerId: "c1" } // OK: both are Order attributes
840
+ });
841
+
842
+ // Error: lastFour is a PaymentMethod attribute, not available when SK scopes to Order
843
+ await Customer.query("123", {
844
+ skCondition: { $beginsWith: "Order" },
845
+ filter: { lastFour: "1234" } // Compile error
846
+ });
847
+
848
+ // $or blocks are also scoped by SK
849
+ await Customer.query("123", {
850
+ skCondition: { $beginsWith: "Order" },
851
+ filter: {
852
+ $or: [
853
+ { type: "Order", orderDate: "2023" }, // OK
854
+ { type: "PaymentMethod", lastFour: "1234" } // Compile error: PaymentMethod outside SK scope
855
+ ]
856
+ }
857
+ });
858
+
859
+ // When $beginsWith matches multiple entities, filter accepts attributes from all matches
860
+ await Customer.query("123", {
861
+ skCondition: { $beginsWith: "C" }, // matches Customer and ContactInformation
862
+ filter: { name: "John", email: "j@test.com" } // OK: name is on Customer, email on ContactInformation
863
+ });
864
+ ```
865
+
866
+ ##### Object key form (`{ pk, sk }`)
867
+
868
+ When using the object key form, sort key values are **validated** but the return type is **not narrowed**. Use `filter: { type: "Order" }` alongside key conditions for return type narrowing:
802
869
 
803
870
  ```typescript
804
871
  // sk is validated but does NOT narrow the return type
@@ -818,6 +885,8 @@ const orders = await Customer.query(
818
885
  > **Filter key narrowing:** When no `type` is specified, the return type automatically narrows based on which entities have the filtered attributes. For example, `filter: { orderDate: "2023" }` narrows to `Order` if only `Order` has `orderDate`. In `$or` blocks, each element narrows independently — by `type` if present, or by filter keys otherwise — and the return type is the union across all blocks.
819
886
  >
820
887
  > **AND intersection:** Since DynamoDB ANDs top-level filter conditions with `$or` blocks, the return type reflects this. When both top-level conditions and `$or` blocks independently narrow to specific entity sets, the return type is their intersection. If no entity satisfies both (e.g., `{ orderDate: "2023", $or: [{ lastFour: "1234" }] }` where `orderDate` is on `Order` and `lastFour` is on `PaymentMethod`), the return type is `never[]` — correctly indicating that no records can match.
888
+ >
889
+ > **SK intersection:** `skCondition` is always intersected with filter-based narrowing because it is a DynamoDB key condition that physically limits which items are scanned. When both `skCondition` and a filter narrow to different entity sets, the return type is their intersection.
821
890
 
822
891
  ### Querying on an index
823
892
 
@@ -1,5 +1,5 @@
1
1
  import { type TableMetadata } from "./metadata";
2
- import { type FindByIdOptions, type FindByIdIncludesRes, type EntityKeyConditions, type QueryResults, Create, type CreateOptions, type UpdateOptions, type EntityAttributesInstance, type IncludedAssociations, type IndexKeyConditions, type OptionsWithoutIndex, type OptionsWithIndex, type TypedFilterParams, type TypedSortKeyCondition, type InferQueryResults } from "./operations";
2
+ import { type FindByIdOptions, type FindByIdIncludesRes, type EntityKeyConditions, type QueryResults, Create, type CreateOptions, type UpdateOptions, type EntityAttributesInstance, type IncludedAssociations, type IndexKeyConditions, type OptionsWithoutIndex, type OptionsWithIndex, type TypedFilterParams, type TypedSortKeyCondition, type InferQueryResults, type SKScopedFilterParams } from "./operations";
3
3
  import type { DynamoTableItem, EntityClass, Optional } from "./types";
4
4
  interface DynaRecordBase {
5
5
  id: string;
@@ -93,13 +93,24 @@ declare abstract class DynaRecord implements DynaRecordBase {
93
93
  * sort key format where SK values always start with an entity class name. Unrelated entities
94
94
  * and entities from other tables are rejected at compile time.
95
95
  *
96
+ * **SK-scoped filter:** When `skCondition` narrows to specific entities, the `filter`
97
+ * parameter is scoped to only those entities' attributes. For example,
98
+ * `skCondition: { $beginsWith: "Order" }` restricts the filter to Order's attributes —
99
+ * using attributes from other entities (e.g., `lastFour` from PaymentMethod) produces a
100
+ * compile error.
101
+ *
102
+ * **`$beginsWith` prefix matching:** `$beginsWith` accepts partial entity name prefixes
103
+ * that match multiple entity types. For example, `$beginsWith: "Inv"` matches both
104
+ * "Invoice" and "Inventory". The return type and filter are scoped to the union of
105
+ * all matching entities.
106
+ *
96
107
  * **Return type narrowing:** The return type narrows automatically based on:
97
108
  * - Top-level filter `type`: `type: "Order"` → `Array<EntityAttributesInstance<Order>>`
98
109
  * - Top-level filter `type` array: `type: ["Order", "PaymentMethod"]` → union of both
99
110
  * - Top-level filter keys: `{ orderDate: "2023" }` → narrows to entities that have `orderDate`
100
111
  * - `$or` elements: each block narrows by `type` (if present) or by filter keys; return type is the union
101
112
  * - AND intersection: when top-level conditions and `$or` both narrow, the return type is their intersection. Empty intersection → `never[]`.
102
- * - `skCondition` option: `skCondition: "Order"` or `skCondition: { $beginsWith: "Order" }` → narrows to Order
113
+ * - `skCondition` option: always intersected with filter narrowing. `skCondition: "Order"` or `{ $beginsWith: "Order" }` → narrows to Order. `{ $beginsWith: "Inv" }` → narrows to all entities starting with "Inv".
103
114
  * - No type/keys/SK specified → union of T and all related entities (e.g., `Customer | Order | PaymentMethod | ContactInformation`)
104
115
  *
105
116
  * Note: When using the object key form (`{ pk: "...", sk: "Order" }`), the `sk` value is
@@ -108,20 +119,20 @@ declare abstract class DynaRecord implements DynaRecordBase {
108
119
  * return type narrowing.
109
120
  *
110
121
  * @template T - The entity type being queried.
111
- * @template F - The inferred filter type, captured via `const` generic for literal type inference.
112
122
  * @template SK - The inferred sort key condition type, captured via `const` generic for literal type inference.
123
+ * @template F - The inferred filter type, captured via `const` generic. Constrained by {@link SKScopedFilterParams} — when SK narrows, only matched entities' attributes are accepted.
113
124
  * @param {string | EntityKeyConditions<T>} key - Entity Id (string) or an object with PartitionKey and optional SortKey conditions.
114
125
  * @param {Object=} options - QueryOptions. Supports typed filter, consistentRead and skCondition. indexName is not supported.
115
- * @param {TypedFilterParams<T>=} options.filter - Typed filter conditions. Keys are validated against partition entity attributes. The `type` field accepts valid entity class names.
116
- * @param {TypedSortKeyCondition<T>=} options.skCondition - Sort key condition. Only accepts valid entity names from the partition. Narrows the return type when matching an exact entity name.
117
- * @returns A promise resolving to query results. The return type narrows based on the filter's `type` value or `skCondition`.
126
+ * @param {SKScopedFilterParams<T, SK>=} options.filter - Typed filter conditions. Keys are validated against partition entity attributes, scoped by `skCondition` when present. The `type` field accepts valid entity class names within the SK scope.
127
+ * @param {TypedSortKeyCondition<T>=} options.skCondition - Sort key condition. Accepts entity names, entity-name-prefixed strings, or `$beginsWith` with exact names or partial prefixes. Narrows the return type and scopes the filter to matched entities.
128
+ * @returns A promise resolving to query results. The return type narrows based on the filter's `type` value, filter keys, and `skCondition`.
118
129
  *
119
130
  * @example By entity ID
120
131
  * ```typescript
121
132
  * const results = await Customer.query("123");
122
133
  * ```
123
134
  *
124
- * @example With skCondition (narrows return type to Order)
135
+ * @example With skCondition (narrows return type and scopes filter to Order)
125
136
  * ```typescript
126
137
  * const orders = await Customer.query("123", { skCondition: "Order" });
127
138
  * // orders is Array<EntityAttributesInstance<Order>>
@@ -133,12 +144,21 @@ declare abstract class DynaRecord implements DynaRecordBase {
133
144
  * // orders is Array<EntityAttributesInstance<Order>>
134
145
  * ```
135
146
  *
136
- * @example With typed filter (narrows return type)
147
+ * @example $beginsWith prefix matching multiple entities
148
+ * ```typescript
149
+ * const results = await Customer.query("123", { skCondition: { $beginsWith: "C" } });
150
+ * // results includes Customer and ContactInformation (both start with "C")
151
+ * // filter accepts attributes from both entities
152
+ * ```
153
+ *
154
+ * @example SK-scoped filter (only Order attributes accepted)
137
155
  * ```typescript
138
156
  * const orders = await Customer.query("123", {
157
+ * skCondition: { $beginsWith: "Order" },
139
158
  * filter: { type: "Order", orderDate: "2023-01-01" }
140
159
  * });
141
160
  * // orders is Array<EntityAttributesInstance<Order>>
161
+ * // filter: { lastFour: "1234" } would be a compile error (PaymentMethod attribute)
142
162
  * ```
143
163
  *
144
164
  * @example By primary key (sk validated, return type NOT narrowed)
@@ -161,7 +181,7 @@ declare abstract class DynaRecord implements DynaRecordBase {
161
181
  * const results = await Customer.query("123", { consistentRead: true });
162
182
  * ```
163
183
  */
164
- static query<T extends DynaRecord, const F extends TypedFilterParams<T> = TypedFilterParams<T>, const SK extends TypedSortKeyCondition<T> = TypedSortKeyCondition<T>>(this: EntityClass<T>, key: string, options?: OptionsWithoutIndex<T> & {
184
+ static query<T extends DynaRecord, const SK extends TypedSortKeyCondition<T> = TypedSortKeyCondition<T>, const F extends SKScopedFilterParams<T, SK> = SKScopedFilterParams<T, SK>>(this: EntityClass<T>, key: string, options?: OptionsWithoutIndex<T, SK> & {
165
185
  filter?: F;
166
186
  skCondition?: SK;
167
187
  }): Promise<InferQueryResults<T, F, SK>>;
@@ -1 +1 @@
1
- {"version":3,"file":"DynaRecord.d.ts","sourceRoot":"","sources":["../../src/DynaRecord.ts"],"names":[],"mappings":"AAAA,OAAiB,EAAsB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAE9E,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EAExB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,MAAM,EACN,KAAK,aAAa,EAElB,KAAK,aAAa,EAGlB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EAErB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGtE,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,uBAAe,UAAW,YAAW,cAAc;IACjD;;OAEG;IACH,SACgB,EAAE,EAAE,MAAM,CAAC;IAE3B;;;;;;OAMG;IACH,SACgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,SACgB,SAAS,EAAE,IAAI,CAAC;IAEhC;;OAEG;IACH,SACgB,SAAS,EAAE,IAAI,CAAC;IAEhC;;;;;;;;;;;;;;;;;;;;;;OAsBG;WAEiB,QAAQ,CAAC,CAAC,SAAS,UAAU,EAC/C,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,SAAS,GAClB,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;WAG7B,QAAQ,CAC1B,CAAC,SAAS,UAAU,EACpB,GAAG,SAAS,oBAAoB,CAAC,CAAC,CAAC,GAAG,EAAE,EAExC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,GAC/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAgBjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmFG;WAEiB,KAAK,CACvB,CAAC,SAAS,UAAU,EACpB,KAAK,CAAC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAC3D,KAAK,CAAC,EAAE,SAAS,qBAAqB,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAEpE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG;QACjC,MAAM,CAAC,EAAE,CAAC,CAAC;QACX,WAAW,CAAC,EAAE,EAAE,CAAC;KAClB,GACA,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;WAGnB,KAAK,CACvB,CAAC,SAAS,UAAU,EACpB,KAAK,CAAC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAE3D,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC3B,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG;QAAE,MAAM,CAAC,EAAE,CAAC,CAAA;KAAE,GACrE,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnC;;;;;;;;;;;;;;;OAeG;WACiB,KAAK,CAAC,CAAC,SAAS,UAAU,EAC5C,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC1B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAW3B;;;;;;;;;;;;;;;;;;OAkBG;WACiB,MAAM,CAAC,CAAC,SAAS,UAAU,EAC7C,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAC5B,OAAO,CAAC,EAAE;QAAE,yBAAyB,CAAC,EAAE,OAAO,CAAA;KAAE,GAChD,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAKxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;WACiB,MAAM,CAAC,CAAC,SAAS,UAAU,EAC7C,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAC5B,OAAO,CAAC,EAAE;QAAE,yBAAyB,CAAC,EAAE,OAAO,CAAA;KAAE,GAChD,OAAO,CAAC,IAAI,CAAC;IAKhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACU,MAAM,CAAC,CAAC,SAAS,IAAI,EAChC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAC5B,OAAO,CAAC,EAAE;QAAE,yBAAyB,CAAC,EAAE,OAAO,CAAA;KAAE,GAChD,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAuBvC;;;;;;;;;;OAUG;WACiB,MAAM,CAAC,CAAC,SAAS,UAAU,EAC7C,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC;IAKhB;;;;;;;;;OASG;WACW,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAKnD;;OAEG;WACW,iBAAiB,CAAC,CAAC,SAAS,UAAU,EAClD,IAAI,EAAE,UAAU,CAAC,EACjB,SAAS,EAAE,eAAe,GACzB,wBAAwB,CAAC,CAAC,CAAC;IAW9B;;;OAGG;IACI,iBAAiB,IAAI,MAAM;IAIlC;;;;;;;;;;;;OAYG;WACW,QAAQ,IAAI,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;CAK9D;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"DynaRecord.d.ts","sourceRoot":"","sources":["../../src/DynaRecord.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,6 @@ export * from "./decorators";
2
2
  export * from "./errors";
3
3
  export * from "./relationships";
4
4
  export * from "./dynamo-utils/errors";
5
- export type { EntityAttributesOnly, EntityAttributesInstance as EntityInstance, FindByIdIncludesRes, TypedFilterParams, TypedSortKeyCondition, InferQueryResults, PartitionEntityNames } from "./operations";
5
+ export type { EntityAttributesOnly, EntityAttributesInstance as EntityInstance, FindByIdIncludesRes, TypedFilterParams, TypedSortKeyCondition, SKScopedFilterParams, InferQueryResults, PartitionEntityNames } from "./operations";
6
6
  export type { PartitionKey, SortKey, ForeignKey, NullableForeignKey } from "./types";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AAEtC,YAAY,EACV,oBAAoB,EACpB,wBAAwB,IAAI,cAAc,EAC1C,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,YAAY,EACZ,OAAO,EACP,UAAU,EACV,kBAAkB,EACnB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AAEtC,YAAY,EACV,oBAAoB,EACpB,wBAAwB,IAAI,cAAc,EAC1C,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,YAAY,EACZ,OAAO,EACP,UAAU,EACV,kBAAkB,EACnB,MAAM,SAAS,CAAC"}
@@ -31,8 +31,8 @@ export type QueryOptions = QueryBuilderOptions & {
31
31
  * @template T - The entity type being queried. Defaults to `DynaRecord` for backward
32
32
  * compatibility in generic contexts.
33
33
  */
34
- export type OptionsWithoutIndex<T extends DynaRecord = DynaRecord> = Omit<QueryOptions, "indexName" | "filter" | "skCondition"> & {
35
- filter?: TypedFilterParams<T>;
34
+ export type OptionsWithoutIndex<T extends DynaRecord = DynaRecord, SK = unknown> = Omit<QueryOptions, "indexName" | "filter" | "skCondition"> & {
35
+ filter?: SKScopedFilterParams<T, SK>;
36
36
  };
37
37
  /**
38
38
  * Options for querying on an index. Consistent reads are not allowed
@@ -135,11 +135,6 @@ export type PartitionEntities<T extends DynaRecord> = T | RelationshipEntities<T
135
135
  * Falls back to `string` if any entity lacks `declare readonly type`.
136
136
  */
137
137
  export type PartitionEntityNames<T extends DynaRecord> = PartitionEntities<T>["type"];
138
- /**
139
- * Union of EntityFilterableKeys<E> for each entity E in PartitionEntities<T>.
140
- * This is the full set of valid filter keys when no `type` narrowing is applied.
141
- */
142
- export type AllPartitionFilterableKeys<T extends DynaRecord> = PartitionEntities<T> extends infer E ? E extends DynaRecord ? EntityFilterableKeys<E> : never : never;
143
138
  /**
144
139
  * Maps a union of string keys to an optional FilterTypes record.
145
140
  * Shared helper for building filter records from key unions.
@@ -156,38 +151,56 @@ type FilterRecord<Keys extends string> = {
156
151
  */
157
152
  export type EntityFilterRecord<E extends DynaRecord> = FilterRecord<EntityFilterableKeys<E>>;
158
153
  /**
159
- * Filter record for all entities in a partition (union of all filter keys).
160
- *
161
- * @template T - The root entity whose partition defines the filter keys.
154
+ * Union of filterable keys across a set of entities (distributive).
162
155
  */
163
- type FullPartitionFilterRecord<T extends DynaRecord> = FilterRecord<AllPartitionFilterableKeys<T>>;
156
+ type FilterableKeysFor<Entities extends DynaRecord> = Entities extends DynaRecord ? EntityFilterableKeys<Entities> : never;
164
157
  /**
165
- * Discriminated union enabling per-block `type` narrowing.
166
- * When type is a single string literal, only that entity's attributes are allowed.
167
- * When type is an array or absent, all partition attributes are allowed.
168
- * The `type` field is handled separately from other filter keys to enable narrowing.
158
+ * Discriminated union enabling per-block `type` narrowing, scoped to a set
159
+ * of entities. When type is a single string literal, only that entity's
160
+ * attributes are allowed. When type is an array or absent, all scoped
161
+ * entity attributes are allowed.
162
+ *
163
+ * @template Entities - The union of entity types whose attributes are accepted.
169
164
  */
170
- export type TypedAndFilter<T extends DynaRecord> = (PartitionEntities<T> extends infer E ? E extends DynaRecord ? {
165
+ type AndFilterForEntities<Entities extends DynaRecord> = (Entities extends infer E extends DynaRecord ? {
171
166
  type: E["type"];
172
- } & EntityFilterRecord<E> : never : never) | ({
173
- type: PartitionEntityNames<T>[];
174
- } & FullPartitionFilterRecord<T>) | ({
167
+ } & EntityFilterRecord<E> : never) | ({
168
+ type: Entities["type"][];
169
+ } & FilterRecord<FilterableKeysFor<Entities>>) | ({
175
170
  type?: never;
176
- } & FullPartitionFilterRecord<T>);
171
+ } & FilterRecord<FilterableKeysFor<Entities>>);
177
172
  /**
178
- * Typed `$or` filter block for partition queries.
179
- * Each `$or` element is independently narrowed: when a block specifies
180
- * `type: "Order"`, only Order's attributes are accepted in that block.
181
- *
182
- * @template T - The root entity whose partition defines valid filter keys and type values.
173
+ * Typed `$or` filter scoped to a set of entities.
183
174
  */
184
- export type TypedOrFilter<T extends DynaRecord> = {
185
- $or?: TypedAndFilter<T>[];
175
+ type OrFilterForEntities<Entities extends DynaRecord> = {
176
+ $or?: AndFilterForEntities<Entities>[];
186
177
  };
187
178
  /**
188
- * Top-level filter combining AND and OR.
179
+ * Full filter params (AND + OR) scoped to a set of entities.
180
+ */
181
+ type FilterParamsForEntities<Entities extends DynaRecord> = AndFilterForEntities<Entities> & OrFilterForEntities<Entities>;
182
+ /**
183
+ * Top-level filter combining AND and OR for a full partition.
184
+ * Alias for {@link FilterParamsForEntities} applied to {@link PartitionEntities}.
185
+ */
186
+ export type TypedFilterParams<T extends DynaRecord> = FilterParamsForEntities<PartitionEntities<T>>;
187
+ /**
188
+ * Generates all non-empty prefixes of a string literal type.
189
+ * E.g. `Prefixes<"Order">` → `"O" | "Or" | "Ord" | "Orde" | "Order"`.
190
+ * Distributes over unions: `Prefixes<"A" | "B">` → prefixes of both.
191
+ *
192
+ * **Recursion limit:** This type recurses once per character. TypeScript's
193
+ * template literal recursion limit is ~24 characters per string. Entity class
194
+ * names should stay under this limit to avoid "Type instantiation is
195
+ * excessively deep" errors.
196
+ */
197
+ type Prefixes<S extends string, Acc extends string = ""> = S extends `${infer Head}${infer Tail}` ? `${Acc}${Head}` | Prefixes<Tail, `${Acc}${Head}`> : never;
198
+ /**
199
+ * Finds partition entity names that start with a given prefix string.
200
+ * E.g. if partition has "Invoice" and "Inventory", `EntityNamesStartingWith<T, "Inv">`
201
+ * returns `"Invoice" | "Inventory"`.
189
202
  */
190
- export type TypedFilterParams<T extends DynaRecord> = TypedAndFilter<T> & TypedOrFilter<T>;
203
+ type EntityNamesStartingWith<T extends DynaRecord, Prefix extends string> = Extract<PartitionEntityNames<T>, `${Prefix}${string}`>;
191
204
  /**
192
205
  * Typed sort key condition for querying within an entity's partition.
193
206
  *
@@ -201,28 +214,45 @@ export type TypedFilterParams<T extends DynaRecord> = TypedAndFilter<T> & TypedO
201
214
  * entity's own name or its related entity names (or prefixes thereof). Unrelated
202
215
  * entities and entities from other tables are rejected at compile time.
203
216
  *
217
+ * The `$beginsWith` variant also accepts partial entity name prefixes — e.g.
218
+ * `$beginsWith: "Inv"` is valid when the partition contains "Invoice" and "Inventory",
219
+ * since DynamoDB's `begins_with` would match both entity types.
220
+ *
204
221
  * @template T - The entity type being queried.
205
222
  */
206
223
  export type TypedSortKeyCondition<T extends DynaRecord> = PartitionEntityNames<T> | `${PartitionEntityNames<T>}${string}` | {
207
- $beginsWith: PartitionEntityNames<T> | `${PartitionEntityNames<T>}${string}`;
224
+ $beginsWith: PartitionEntityNames<T> | `${PartitionEntityNames<T>}${string}` | Prefixes<PartitionEntityNames<T>>;
208
225
  };
209
226
  /**
210
- * Extracts the entity name from a typed sort key condition for return type narrowing.
227
+ * Extracts entity names from a typed sort key condition for return type narrowing.
211
228
  *
212
229
  * Narrows when:
213
230
  * - SK is an exact entity name: `"Order"` → `"Order"`
214
231
  * - SK is `{ $beginsWith: "Order" }` → `"Order"`
232
+ * - SK is `{ $beginsWith: "Inv" }` → `"Invoice" | "Inventory"` (prefix matches multiple)
233
+ * - SK is `{ $beginsWith: "PaymentMethod" }` → `"PaymentMethod" | "PaymentMethodProvider"`
234
+ * (when one entity name is a prefix of another)
215
235
  *
216
236
  * Does not narrow when:
217
237
  * - SK is a prefixed string like `"Order#123"` (can't parse the delimiter at type level)
218
- * - SK is `{ $beginsWith: "Order#..." }` (specific prefix, not just entity name)
238
+ * - SK is `{ $beginsWith: "Order#..." }` (specific prefix past entity name boundary)
219
239
  *
220
240
  * @template T - The entity type being queried.
221
241
  * @template SK - The inferred sort key condition literal type.
222
242
  */
223
243
  export type ExtractEntityFromSK<T extends DynaRecord, SK> = SK extends {
224
- $beginsWith: infer V extends PartitionEntityNames<T>;
225
- } ? V : SK extends PartitionEntityNames<T> ? SK : never;
244
+ $beginsWith: infer V extends string;
245
+ } ? EntityNamesStartingWith<T, V> : SK extends PartitionEntityNames<T> ? SK : never;
246
+ /**
247
+ * Computes the filter type based on SK narrowing. When `skCondition` narrows to
248
+ * specific entities, only those entities' attributes are accepted in the filter.
249
+ * When SK doesn't narrow (no skCondition, suffixed string, etc.), falls back to
250
+ * the full {@link TypedFilterParams}.
251
+ *
252
+ * @template T - The root entity being queried.
253
+ * @template SK - The inferred sort key condition type.
254
+ */
255
+ export type SKScopedFilterParams<T extends DynaRecord, SK> = ExtractEntityFromSK<T, SK> extends infer Names ? ShouldNarrow<T, Names> extends true ? FilterParamsForEntities<ResolveEntityByName<T, Names & string>> : TypedFilterParams<T> : TypedFilterParams<T>;
226
256
  /**
227
257
  * Extracts string values from a type that may be a string or an array of strings.
228
258
  * Returns the literal string if single value, array element types if array, or `never`.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/operations/Query/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/operations/Query/types.ts"],"names":[],"mappings":"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"}
@@ -105,7 +105,7 @@ export type ObjectDotPaths<T extends DynaRecord> = {
105
105
  * - Relationship properties (via {@link EntityAttributesOnly})
106
106
  * - Function fields (via {@link EntityAttributesOnly})
107
107
  * - PartitionKeyAttribute and SortKeyAttribute
108
- * - `type` (handled separately by {@link TypedAndFilter} for discriminated union narrowing)
108
+ * - `type` (handled separately by {@link AndFilterForEntities} for discriminated union narrowing)
109
109
  */
110
110
  export type EntityFilterableKeys<T extends DynaRecord> = Exclude<keyof EntityAttributesOnly<T> & string, PartitionKeyAttribute<T> | SortKeyAttribute<T> | "type"> | ObjectDotPaths<T>;
111
111
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dyna-record",
3
- "version": "0.6.2",
3
+ "version": "0.6.3",
4
4
  "description": "Typescript Data Modeler and ORM for Dynamo",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",