effect-dynamodb 0.1.0

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 (171) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +69 -0
  3. package/dist/Aggregate.d.ts +210 -0
  4. package/dist/Aggregate.d.ts.map +1 -0
  5. package/dist/Aggregate.js +1169 -0
  6. package/dist/Aggregate.js.map +1 -0
  7. package/dist/Batch.d.ts +62 -0
  8. package/dist/Batch.d.ts.map +1 -0
  9. package/dist/Batch.js +218 -0
  10. package/dist/Batch.js.map +1 -0
  11. package/dist/Collection.d.ts +58 -0
  12. package/dist/Collection.d.ts.map +1 -0
  13. package/dist/Collection.js +195 -0
  14. package/dist/Collection.js.map +1 -0
  15. package/dist/Collections.d.ts +121 -0
  16. package/dist/Collections.d.ts.map +1 -0
  17. package/dist/Collections.js +121 -0
  18. package/dist/Collections.js.map +1 -0
  19. package/dist/DynamoClient.d.ts +317 -0
  20. package/dist/DynamoClient.d.ts.map +1 -0
  21. package/dist/DynamoClient.js +653 -0
  22. package/dist/DynamoClient.js.map +1 -0
  23. package/dist/DynamoModel.d.ts +278 -0
  24. package/dist/DynamoModel.d.ts.map +1 -0
  25. package/dist/DynamoModel.js +453 -0
  26. package/dist/DynamoModel.js.map +1 -0
  27. package/dist/DynamoSchema.d.ts +137 -0
  28. package/dist/DynamoSchema.d.ts.map +1 -0
  29. package/dist/DynamoSchema.js +188 -0
  30. package/dist/DynamoSchema.js.map +1 -0
  31. package/dist/Entity.d.ts +628 -0
  32. package/dist/Entity.d.ts.map +1 -0
  33. package/dist/Entity.js +2371 -0
  34. package/dist/Entity.js.map +1 -0
  35. package/dist/Errors.d.ts +227 -0
  36. package/dist/Errors.d.ts.map +1 -0
  37. package/dist/Errors.js +93 -0
  38. package/dist/Errors.js.map +1 -0
  39. package/dist/EventStore.d.ts +208 -0
  40. package/dist/EventStore.d.ts.map +1 -0
  41. package/dist/EventStore.js +333 -0
  42. package/dist/EventStore.js.map +1 -0
  43. package/dist/Expression.d.ts +50 -0
  44. package/dist/Expression.d.ts.map +1 -0
  45. package/dist/Expression.js +170 -0
  46. package/dist/Expression.js.map +1 -0
  47. package/dist/KeyComposer.d.ts +125 -0
  48. package/dist/KeyComposer.d.ts.map +1 -0
  49. package/dist/KeyComposer.js +257 -0
  50. package/dist/KeyComposer.js.map +1 -0
  51. package/dist/Marshaller.d.ts +30 -0
  52. package/dist/Marshaller.d.ts.map +1 -0
  53. package/dist/Marshaller.js +115 -0
  54. package/dist/Marshaller.js.map +1 -0
  55. package/dist/Projection.d.ts +28 -0
  56. package/dist/Projection.d.ts.map +1 -0
  57. package/dist/Projection.js +39 -0
  58. package/dist/Projection.js.map +1 -0
  59. package/dist/Query.d.ts +214 -0
  60. package/dist/Query.d.ts.map +1 -0
  61. package/dist/Query.js +397 -0
  62. package/dist/Query.js.map +1 -0
  63. package/dist/Table.d.ts +178 -0
  64. package/dist/Table.d.ts.map +1 -0
  65. package/dist/Table.js +211 -0
  66. package/dist/Table.js.map +1 -0
  67. package/dist/Transaction.d.ts +79 -0
  68. package/dist/Transaction.d.ts.map +1 -0
  69. package/dist/Transaction.js +215 -0
  70. package/dist/Transaction.js.map +1 -0
  71. package/dist/_AggregateCursor.d.ts +44 -0
  72. package/dist/_AggregateCursor.d.ts.map +1 -0
  73. package/dist/_AggregateCursor.js +18 -0
  74. package/dist/_AggregateCursor.js.map +1 -0
  75. package/dist/_AggregateEdges.d.ts +77 -0
  76. package/dist/_AggregateEdges.d.ts.map +1 -0
  77. package/dist/_AggregateEdges.js +41 -0
  78. package/dist/_AggregateEdges.js.map +1 -0
  79. package/dist/_AggregateSchemas.d.ts +69 -0
  80. package/dist/_AggregateSchemas.d.ts.map +1 -0
  81. package/dist/_AggregateSchemas.js +194 -0
  82. package/dist/_AggregateSchemas.js.map +1 -0
  83. package/dist/_AggregateTypes.d.ts +94 -0
  84. package/dist/_AggregateTypes.d.ts.map +1 -0
  85. package/dist/_AggregateTypes.js +7 -0
  86. package/dist/_AggregateTypes.js.map +1 -0
  87. package/dist/_EntityCombinators.d.ts +155 -0
  88. package/dist/_EntityCombinators.d.ts.map +1 -0
  89. package/dist/_EntityCombinators.js +158 -0
  90. package/dist/_EntityCombinators.js.map +1 -0
  91. package/dist/_EntityConfig.d.ts +100 -0
  92. package/dist/_EntityConfig.d.ts.map +1 -0
  93. package/dist/_EntityConfig.js +7 -0
  94. package/dist/_EntityConfig.js.map +1 -0
  95. package/dist/_EntityOps.d.ts +205 -0
  96. package/dist/_EntityOps.d.ts.map +1 -0
  97. package/dist/_EntityOps.js +137 -0
  98. package/dist/_EntityOps.js.map +1 -0
  99. package/dist/_EntitySchemas.d.ts +57 -0
  100. package/dist/_EntitySchemas.d.ts.map +1 -0
  101. package/dist/_EntitySchemas.js +298 -0
  102. package/dist/_EntitySchemas.js.map +1 -0
  103. package/dist/_EntityTypes.d.ts +81 -0
  104. package/dist/_EntityTypes.d.ts.map +1 -0
  105. package/dist/_EntityTypes.js +7 -0
  106. package/dist/_EntityTypes.js.map +1 -0
  107. package/dist/_sparse_check.d.ts +2 -0
  108. package/dist/_sparse_check.d.ts.map +1 -0
  109. package/dist/_sparse_check.js +193 -0
  110. package/dist/_sparse_check.js.map +1 -0
  111. package/dist/index.d.ts +35 -0
  112. package/dist/index.d.ts.map +1 -0
  113. package/dist/index.js +20 -0
  114. package/dist/index.js.map +1 -0
  115. package/dist/internal/AggregateCursor.d.ts +44 -0
  116. package/dist/internal/AggregateCursor.d.ts.map +1 -0
  117. package/dist/internal/AggregateCursor.js +18 -0
  118. package/dist/internal/AggregateCursor.js.map +1 -0
  119. package/dist/internal/AggregateEdges.d.ts +77 -0
  120. package/dist/internal/AggregateEdges.d.ts.map +1 -0
  121. package/dist/internal/AggregateEdges.js +41 -0
  122. package/dist/internal/AggregateEdges.js.map +1 -0
  123. package/dist/internal/AggregateSchemas.d.ts +69 -0
  124. package/dist/internal/AggregateSchemas.d.ts.map +1 -0
  125. package/dist/internal/AggregateSchemas.js +193 -0
  126. package/dist/internal/AggregateSchemas.js.map +1 -0
  127. package/dist/internal/AggregateTypes.d.ts +94 -0
  128. package/dist/internal/AggregateTypes.d.ts.map +1 -0
  129. package/dist/internal/AggregateTypes.js +7 -0
  130. package/dist/internal/AggregateTypes.js.map +1 -0
  131. package/dist/internal/BoundQuery.d.ts +107 -0
  132. package/dist/internal/BoundQuery.d.ts.map +1 -0
  133. package/dist/internal/BoundQuery.js +111 -0
  134. package/dist/internal/BoundQuery.js.map +1 -0
  135. package/dist/internal/EntityCombinators.d.ts +173 -0
  136. package/dist/internal/EntityCombinators.d.ts.map +1 -0
  137. package/dist/internal/EntityCombinators.js +183 -0
  138. package/dist/internal/EntityCombinators.js.map +1 -0
  139. package/dist/internal/EntityConfig.d.ts +100 -0
  140. package/dist/internal/EntityConfig.d.ts.map +1 -0
  141. package/dist/internal/EntityConfig.js +7 -0
  142. package/dist/internal/EntityConfig.js.map +1 -0
  143. package/dist/internal/EntityOps.d.ts +268 -0
  144. package/dist/internal/EntityOps.d.ts.map +1 -0
  145. package/dist/internal/EntityOps.js +153 -0
  146. package/dist/internal/EntityOps.js.map +1 -0
  147. package/dist/internal/EntitySchemas.d.ts +57 -0
  148. package/dist/internal/EntitySchemas.d.ts.map +1 -0
  149. package/dist/internal/EntitySchemas.js +299 -0
  150. package/dist/internal/EntitySchemas.js.map +1 -0
  151. package/dist/internal/EntityTypes.d.ts +128 -0
  152. package/dist/internal/EntityTypes.d.ts.map +1 -0
  153. package/dist/internal/EntityTypes.js +7 -0
  154. package/dist/internal/EntityTypes.js.map +1 -0
  155. package/dist/internal/Expr.d.ts +141 -0
  156. package/dist/internal/Expr.d.ts.map +1 -0
  157. package/dist/internal/Expr.js +332 -0
  158. package/dist/internal/Expr.js.map +1 -0
  159. package/dist/internal/PathBuilder.d.ts +88 -0
  160. package/dist/internal/PathBuilder.d.ts.map +1 -0
  161. package/dist/internal/PathBuilder.js +100 -0
  162. package/dist/internal/PathBuilder.js.map +1 -0
  163. package/dist/internal/TransactableOps.d.ts +25 -0
  164. package/dist/internal/TransactableOps.d.ts.map +1 -0
  165. package/dist/internal/TransactableOps.js +58 -0
  166. package/dist/internal/TransactableOps.js.map +1 -0
  167. package/dist/internal/sparse_check.d.ts +2 -0
  168. package/dist/internal/sparse_check.d.ts.map +1 -0
  169. package/dist/internal/sparse_check.js +196 -0
  170. package/dist/internal/sparse_check.js.map +1 -0
  171. package/package.json +71 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Aggregate.js","sourceRoot":"","sources":["../src/Aggregate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Batch — BatchGetItem and BatchWriteItem with auto-chunking and retry.
3
+ *
4
+ * DynamoDB limits: BatchGetItem max 100 keys, BatchWriteItem max 25 items.
5
+ * Both can return unprocessed items that must be retried.
6
+ *
7
+ * Accepts Entity operation intermediates directly (EntityGet, EntityPut, EntityDelete).
8
+ * Batch.get returns a typed tuple inferred per-position.
9
+ */
10
+ import { Effect } from "effect";
11
+ import { DynamoClient, type DynamoClientError } from "./DynamoClient.js";
12
+ import type { EntityDelete, EntityGet, EntityPut } from "./Entity.js";
13
+ import { type ValidationError } from "./Errors.js";
14
+ import type { TableConfig } from "./Table.js";
15
+ /**
16
+ * Optional retry configuration for batch operations.
17
+ * When omitted, defaults to 5 retries with 100ms base delay.
18
+ */
19
+ export interface BatchRetryConfig {
20
+ readonly maxRetries?: number | undefined;
21
+ readonly baseDelayMs?: number | undefined;
22
+ }
23
+ /**
24
+ * Map a tuple of EntityGet operations to a tuple of (A | undefined) results.
25
+ */
26
+ type BatchGetResult<T extends ReadonlyArray<EntityGet<any, any, any, any>>> = {
27
+ -readonly [K in keyof T]: T[K] extends EntityGet<infer A, any, any, any> ? A | undefined : never;
28
+ };
29
+ /**
30
+ * Batch-get up to any number of items across entities/tables.
31
+ * Auto-chunks at 100 items per request. Retries unprocessed keys
32
+ * with exponential backoff. Returns a typed tuple matching input positions.
33
+ *
34
+ * DynamoDB batchGetItem doesn't preserve order, so results are matched
35
+ * back to input positions by comparing composed primary key fields.
36
+ *
37
+ * ```typescript
38
+ * const [alice, bob, post] = yield* Batch.get([
39
+ * Users.get({ userId: "u-1" }),
40
+ * Users.get({ userId: "u-2" }),
41
+ * Posts.get({ postId: "p-1" }),
42
+ * ])
43
+ * // alice: User | undefined, bob: User | undefined, post: Post | undefined
44
+ * ```
45
+ */
46
+ export declare const get: <const T extends ReadonlyArray<EntityGet<any, any, any, any>>>(items: T, config?: BatchRetryConfig) => Effect.Effect<BatchGetResult<T>, DynamoClientError | ValidationError, DynamoClient | TableConfig>;
47
+ type BatchWriteOp = EntityPut<any, any, any, any> | EntityDelete<any, any>;
48
+ /**
49
+ * Batch-write any number of items across entities/tables.
50
+ * Auto-chunks at 25 items per request. Retries unprocessed items
51
+ * with exponential backoff.
52
+ *
53
+ * ```typescript
54
+ * yield* Batch.write([
55
+ * Users.put({ userId: "u-3", ... }),
56
+ * Posts.delete({ postId: "p-1" }),
57
+ * ])
58
+ * ```
59
+ */
60
+ export declare const write: (operations: ReadonlyArray<BatchWriteOp>, config?: BatchRetryConfig) => Effect.Effect<void, DynamoClientError | ValidationError, DynamoClient | TableConfig>;
61
+ export {};
62
+ //# sourceMappingURL=Batch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Batch.d.ts","sourceRoot":"","sources":["../src/Batch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAU,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE7E,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAO/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAO7C;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1C;AAMD;;GAEG;AACH,KAAK,cAAc,CAAC,CAAC,SAAS,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI;IAC5E,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,KAAK;CACjG,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,GAAG,GAAI,KAAK,CAAC,CAAC,SAAS,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAC9E,OAAO,CAAC,EACR,SAAS,gBAAgB,KACxB,MAAM,CAAC,MAAM,CACd,cAAc,CAAC,CAAC,CAAC,EACjB,iBAAiB,GAAG,eAAe,EACnC,YAAY,GAAG,WAAW,CAyHxB,CAAA;AAMJ,KAAK,YAAY,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAE1E;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,KAAK,GAChB,YAAY,aAAa,CAAC,YAAY,CAAC,EACvC,SAAS,gBAAgB,KACxB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,eAAe,EAAE,YAAY,GAAG,WAAW,CAqFlF,CAAA"}
package/dist/Batch.js ADDED
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Batch — BatchGetItem and BatchWriteItem with auto-chunking and retry.
3
+ *
4
+ * DynamoDB limits: BatchGetItem max 100 keys, BatchWriteItem max 25 items.
5
+ * Both can return unprocessed items that must be retried.
6
+ *
7
+ * Accepts Entity operation intermediates directly (EntityGet, EntityPut, EntityDelete).
8
+ * Batch.get returns a typed tuple inferred per-position.
9
+ */
10
+ import { Effect } from "effect";
11
+ import { DynamoClient } from "./DynamoClient.js";
12
+ import { extractTransactable } from "./Entity.js";
13
+ import { DynamoError } from "./Errors.js";
14
+ import { composePrimaryKey, resolveTableNames, validateAndBuildPutItem, } from "./internal/TransactableOps.js";
15
+ import { fromAttributeMap, toAttributeMap } from "./Marshaller.js";
16
+ const MAX_BATCH_GET = 100;
17
+ const MAX_BATCH_WRITE = 25;
18
+ const MAX_RETRIES = 5;
19
+ const BASE_DELAY_MS = 100;
20
+ /**
21
+ * Batch-get up to any number of items across entities/tables.
22
+ * Auto-chunks at 100 items per request. Retries unprocessed keys
23
+ * with exponential backoff. Returns a typed tuple matching input positions.
24
+ *
25
+ * DynamoDB batchGetItem doesn't preserve order, so results are matched
26
+ * back to input positions by comparing composed primary key fields.
27
+ *
28
+ * ```typescript
29
+ * const [alice, bob, post] = yield* Batch.get([
30
+ * Users.get({ userId: "u-1" }),
31
+ * Users.get({ userId: "u-2" }),
32
+ * Posts.get({ postId: "p-1" }),
33
+ * ])
34
+ * // alice: User | undefined, bob: User | undefined, post: Post | undefined
35
+ * ```
36
+ */
37
+ export const get = (items, config) => Effect.gen(function* () {
38
+ const maxRetries = config?.maxRetries ?? MAX_RETRIES;
39
+ const baseDelayMs = config?.baseDelayMs ?? BASE_DELAY_MS;
40
+ // Cast rationale: empty array [] is a valid tuple for any BatchGetResult<T>.
41
+ // TypeScript cannot infer that [] satisfies a mapped tuple type, so we cast.
42
+ if (items.length === 0)
43
+ return [];
44
+ const client = yield* DynamoClient;
45
+ // Extract entity info from each EntityGet intermediate
46
+ const infos = items.map((item) => {
47
+ const info = extractTransactable(item);
48
+ if (!info || info.opType !== "get") {
49
+ throw new Error("Batch.get requires EntityGet intermediates");
50
+ }
51
+ return info;
52
+ });
53
+ const tableNames = yield* resolveTableNames(infos);
54
+ // Build composed keys for each item and track the mapping
55
+ const itemKeys = [];
56
+ for (let i = 0; i < infos.length; i++) {
57
+ const info = infos[i];
58
+ const tableName = tableNames.get(info.entity);
59
+ const composed = composePrimaryKey(info.entity, info.key);
60
+ itemKeys.push({
61
+ tableName,
62
+ composedKey: composed,
63
+ marshalledKey: toAttributeMap(composed),
64
+ entity: info.entity,
65
+ index: i,
66
+ });
67
+ }
68
+ // Collect all responses by original index
69
+ const results = new Array(items.length).fill(undefined);
70
+ // Process in chunks of MAX_BATCH_GET
71
+ for (let chunkStart = 0; chunkStart < itemKeys.length; chunkStart += MAX_BATCH_GET) {
72
+ const chunk = itemKeys.slice(chunkStart, chunkStart + MAX_BATCH_GET);
73
+ // Build request grouped by table
74
+ let requestItems = {};
75
+ for (const item of chunk) {
76
+ if (!requestItems[item.tableName]) {
77
+ requestItems[item.tableName] = { Keys: [] };
78
+ }
79
+ requestItems[item.tableName].Keys.push(item.marshalledKey);
80
+ }
81
+ // Retry loop for unprocessed keys
82
+ let retries = 0;
83
+ while (Object.keys(requestItems).length > 0) {
84
+ const response = yield* client.batchGetItem({ RequestItems: requestItems });
85
+ // Process responses
86
+ if (response.Responses) {
87
+ for (const [tableName, tableItems] of Object.entries(response.Responses)) {
88
+ for (const responseItem of tableItems) {
89
+ const raw = fromAttributeMap(responseItem);
90
+ // Match to original position by primary key
91
+ const matched = chunk.find((item) => {
92
+ if (item.tableName !== tableName)
93
+ return false;
94
+ const primary = item.entity.indexes.primary;
95
+ return (raw[primary.pk.field] === item.composedKey[primary.pk.field] &&
96
+ raw[primary.sk.field] === item.composedKey[primary.sk.field]);
97
+ });
98
+ if (matched) {
99
+ const decoded = yield* matched.entity._decodeRecord(raw);
100
+ results[matched.index] = decoded;
101
+ }
102
+ }
103
+ }
104
+ }
105
+ // Check for unprocessed keys
106
+ const unprocessed = {};
107
+ if (response.UnprocessedKeys) {
108
+ for (const [tableName, tableKeys] of Object.entries(response.UnprocessedKeys)) {
109
+ if (tableKeys.Keys && tableKeys.Keys.length > 0) {
110
+ unprocessed[tableName] = { Keys: tableKeys.Keys };
111
+ }
112
+ }
113
+ }
114
+ if (Object.keys(unprocessed).length === 0)
115
+ break;
116
+ retries++;
117
+ if (retries > maxRetries) {
118
+ return yield* new DynamoError({
119
+ operation: "BatchGetItem",
120
+ cause: new Error(`Unprocessed keys remain after ${maxRetries} retries`),
121
+ });
122
+ }
123
+ // Exponential backoff
124
+ yield* Effect.sleep(`${baseDelayMs * 2 ** (retries - 1)} millis`);
125
+ requestItems = unprocessed;
126
+ }
127
+ }
128
+ // Cast rationale: results is built as Array<A | undefined> by matching DynamoDB
129
+ // responses back to input positions via primary key comparison. The mapped tuple
130
+ // type BatchGetResult<T> captures per-position entity types, but the runtime
131
+ // array construction can't express this statically.
132
+ return results;
133
+ });
134
+ /**
135
+ * Batch-write any number of items across entities/tables.
136
+ * Auto-chunks at 25 items per request. Retries unprocessed items
137
+ * with exponential backoff.
138
+ *
139
+ * ```typescript
140
+ * yield* Batch.write([
141
+ * Users.put({ userId: "u-3", ... }),
142
+ * Posts.delete({ postId: "p-1" }),
143
+ * ])
144
+ * ```
145
+ */
146
+ export const write = (operations, config) => Effect.gen(function* () {
147
+ if (operations.length === 0)
148
+ return;
149
+ const maxRetries = config?.maxRetries ?? MAX_RETRIES;
150
+ const baseDelayMs = config?.baseDelayMs ?? BASE_DELAY_MS;
151
+ const client = yield* DynamoClient;
152
+ // Build write requests
153
+ const writeRequests = [];
154
+ for (const op of operations) {
155
+ const info = extractTransactable(op);
156
+ if (!info) {
157
+ throw new Error("Batch.write: unrecognized operation type");
158
+ }
159
+ const entity = info.entity;
160
+ const { name: tableName } = yield* entity._tableTag;
161
+ if (info.opType === "put") {
162
+ const marshalledItem = yield* validateAndBuildPutItem(entity, info.input, "batchWrite.put");
163
+ writeRequests.push({
164
+ tableName,
165
+ request: { PutRequest: { Item: marshalledItem } },
166
+ });
167
+ }
168
+ else if (info.opType === "delete") {
169
+ const composed = composePrimaryKey(entity, info.key);
170
+ writeRequests.push({
171
+ tableName,
172
+ request: { DeleteRequest: { Key: toAttributeMap(composed) } },
173
+ });
174
+ }
175
+ else {
176
+ throw new Error(`Batch.write: unsupported operation type "${info.opType}". Use EntityPut or EntityDelete.`);
177
+ }
178
+ }
179
+ // Process in chunks of MAX_BATCH_WRITE
180
+ for (let chunkStart = 0; chunkStart < writeRequests.length; chunkStart += MAX_BATCH_WRITE) {
181
+ const chunk = writeRequests.slice(chunkStart, chunkStart + MAX_BATCH_WRITE);
182
+ // Group by table name
183
+ let requestItems = {};
184
+ for (const item of chunk) {
185
+ if (!requestItems[item.tableName]) {
186
+ requestItems[item.tableName] = [];
187
+ }
188
+ requestItems[item.tableName].push(item.request);
189
+ }
190
+ // Retry loop for unprocessed items
191
+ let retries = 0;
192
+ while (Object.keys(requestItems).length > 0) {
193
+ const response = yield* client.batchWriteItem({ RequestItems: requestItems });
194
+ // Check for unprocessed items
195
+ const unprocessed = {};
196
+ if (response.UnprocessedItems) {
197
+ for (const [tableName, tableItems] of Object.entries(response.UnprocessedItems)) {
198
+ if (tableItems.length > 0) {
199
+ unprocessed[tableName] = tableItems;
200
+ }
201
+ }
202
+ }
203
+ if (Object.keys(unprocessed).length === 0)
204
+ break;
205
+ retries++;
206
+ if (retries > maxRetries) {
207
+ return yield* new DynamoError({
208
+ operation: "BatchWriteItem",
209
+ cause: new Error(`Unprocessed items remain after ${maxRetries} retries`),
210
+ });
211
+ }
212
+ // Exponential backoff
213
+ yield* Effect.sleep(`${baseDelayMs * 2 ** (retries - 1)} millis`);
214
+ requestItems = unprocessed;
215
+ }
216
+ }
217
+ });
218
+ //# sourceMappingURL=Batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Batch.js","sourceRoot":"","sources":["../src/Batch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Collection — Multi-entity queries across a shared table/index.
3
+ *
4
+ * A Collection groups entities that share a common index. Querying a Collection
5
+ * returns items of all member entity types, each decoded through its own schema.
6
+ * Entity selectors narrow a collection query to a single entity type.
7
+ *
8
+ * Collections are built from Entity index definitions that share a `collection` name.
9
+ */
10
+ import { type Schema } from "effect";
11
+ import * as DynamoSchema from "./DynamoSchema.js";
12
+ import type { IndexDefinition } from "./KeyComposer.js";
13
+ import * as Query from "./Query.js";
14
+ import type { TableConfig } from "./Table.js";
15
+ /** Minimal structural type for entities used in Collections. */
16
+ interface CollectionEntity {
17
+ readonly _tag: "Entity";
18
+ readonly entityType: string;
19
+ readonly indexes: Record<string, IndexDefinition>;
20
+ readonly _schema: DynamoSchema.DynamoSchema;
21
+ readonly _tableTag: import("effect").Context.Service<TableConfig, TableConfig>;
22
+ readonly schemas: {
23
+ readonly recordSchema: Schema.Codec<any>;
24
+ };
25
+ readonly _decodeRecord: (raw: globalThis.Record<string, unknown>) => import("effect").Effect.Effect<any, import("./Errors.js").ValidationError>;
26
+ }
27
+ type EntityRecord<E extends CollectionEntity> = Schema.Schema.Type<E["schemas"]["recordSchema"]>;
28
+ type CollectionResult<TEntities extends Record<string, CollectionEntity>> = {
29
+ readonly [K in keyof TEntities]: Array<EntityRecord<TEntities[K]>>;
30
+ };
31
+ /**
32
+ * A Collection groups entities that share a common index for cross-entity queries.
33
+ * Querying a Collection returns items of all member entity types, each decoded
34
+ * through its own schema. Entity selectors narrow a query to a single entity type.
35
+ *
36
+ * Created via {@link make}.
37
+ *
38
+ * @typeParam TEntities - Map of entity names to Entity instances
39
+ */
40
+ export interface Collection<TEntities extends Record<string, CollectionEntity>> {
41
+ readonly _tag: "Collection";
42
+ readonly name: string;
43
+ readonly entities: TEntities;
44
+ /** Query all entities in the collection. Returns grouped results keyed by entity name. */
45
+ readonly query: (pkComposites: Record<string, unknown>) => Query.Query<CollectionResult<TEntities>>;
46
+ /** Entity selectors — narrow to a single entity type */
47
+ readonly [K: string]: unknown;
48
+ }
49
+ /**
50
+ * Create a Collection from a set of entities that share an index with a common collection name.
51
+ *
52
+ * @param name - The collection name (must match a `collection` property in an entity's index definition)
53
+ * @param entities - Map of entity names to Entity instances
54
+ * @returns A Collection with a `.query()` method and per-entity selector methods
55
+ */
56
+ export declare const make: <const TName extends string, const TEntities extends Record<string, CollectionEntity>>(name: TName, entities: TEntities) => Collection<TEntities> & { readonly [K in keyof TEntities]: (pkComposites: Record<string, unknown>) => Query.Query<EntityRecord<TEntities[K]>>; };
57
+ export {};
58
+ //# sourceMappingURL=Collection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../src/Collection.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC5C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAQ7C,gEAAgE;AAChE,UAAU,gBAAgB;IACxB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACjD,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,YAAY,CAAA;IAC3C,QAAQ,CAAC,SAAS,EAAE,OAAO,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IAC9E,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;KACzC,CAAA;IACD,QAAQ,CAAC,aAAa,EAAE,CACtB,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACpC,OAAO,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,aAAa,EAAE,eAAe,CAAC,CAAA;CAChF;AAMD,KAAK,YAAY,CAAC,CAAC,SAAS,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC,CAAA;AAEhG,KAAK,gBAAgB,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI;IAC1E,QAAQ,EAAE,CAAC,IAAI,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CACnE,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAC5E,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAE5B,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,EAAE,CACd,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAClC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAA;IAE7C,wDAAwD;IACxD,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAC9B;AAMD;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,GACf,KAAK,CAAC,KAAK,SAAS,MAAM,EAC1B,KAAK,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAExD,MAAM,KAAK,EACX,UAAU,SAAS,KAClB,UAAU,CAAC,SAAS,CAAC,GAAG,EACzB,QAAQ,EAAE,CAAC,IAAI,MAAM,SAAS,GAAG,CAC/B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAClC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAkO7C,CAAA"}