effect-dynamodb 1.15.0 → 1.16.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 (60) hide show
  1. package/dist/Aggregate.d.ts +1 -1
  2. package/dist/Aggregate.d.ts.map +1 -1
  3. package/dist/Aggregate.js +326 -67
  4. package/dist/Aggregate.js.map +1 -1
  5. package/dist/Batch.d.ts +10 -2
  6. package/dist/Batch.d.ts.map +1 -1
  7. package/dist/Batch.js +45 -6
  8. package/dist/Batch.js.map +1 -1
  9. package/dist/Collection.d.ts +0 -7
  10. package/dist/Collection.d.ts.map +1 -1
  11. package/dist/Collection.js +84 -2
  12. package/dist/Collection.js.map +1 -1
  13. package/dist/DynamoClient.d.ts +3 -1
  14. package/dist/DynamoClient.d.ts.map +1 -1
  15. package/dist/DynamoClient.js +253 -26
  16. package/dist/DynamoClient.js.map +1 -1
  17. package/dist/Entity.d.ts +87 -6
  18. package/dist/Entity.d.ts.map +1 -1
  19. package/dist/Entity.js +413 -144
  20. package/dist/Entity.js.map +1 -1
  21. package/dist/EventStore.d.ts.map +1 -1
  22. package/dist/EventStore.js +49 -17
  23. package/dist/EventStore.js.map +1 -1
  24. package/dist/Query.d.ts +56 -5
  25. package/dist/Query.d.ts.map +1 -1
  26. package/dist/Query.js +206 -30
  27. package/dist/Query.js.map +1 -1
  28. package/dist/Transaction.d.ts +2 -2
  29. package/dist/Transaction.d.ts.map +1 -1
  30. package/dist/Transaction.js +29 -9
  31. package/dist/Transaction.js.map +1 -1
  32. package/dist/internal/BoundCrud.d.ts +76 -9
  33. package/dist/internal/BoundCrud.d.ts.map +1 -1
  34. package/dist/internal/BoundCrud.js +22 -1
  35. package/dist/internal/BoundCrud.js.map +1 -1
  36. package/dist/internal/BoundQuery.d.ts +75 -13
  37. package/dist/internal/BoundQuery.d.ts.map +1 -1
  38. package/dist/internal/BoundQuery.js +85 -11
  39. package/dist/internal/BoundQuery.js.map +1 -1
  40. package/dist/internal/BoundVectorQuery.d.ts +9 -0
  41. package/dist/internal/BoundVectorQuery.d.ts.map +1 -1
  42. package/dist/internal/BoundVectorQuery.js +3 -2
  43. package/dist/internal/BoundVectorQuery.js.map +1 -1
  44. package/dist/internal/EntityCombinators.d.ts +31 -5
  45. package/dist/internal/EntityCombinators.d.ts.map +1 -1
  46. package/dist/internal/EntityCombinators.js +7 -7
  47. package/dist/internal/EntityCombinators.js.map +1 -1
  48. package/dist/internal/EntityOps.d.ts +14 -1
  49. package/dist/internal/EntityOps.d.ts.map +1 -1
  50. package/dist/internal/EntityOps.js +4 -1
  51. package/dist/internal/EntityOps.js.map +1 -1
  52. package/dist/internal/TransactWriteOps.d.ts +44 -5
  53. package/dist/internal/TransactWriteOps.d.ts.map +1 -1
  54. package/dist/internal/TransactWriteOps.js +98 -20
  55. package/dist/internal/TransactWriteOps.js.map +1 -1
  56. package/dist/internal/TransactableOps.d.ts +69 -1
  57. package/dist/internal/TransactableOps.d.ts.map +1 -1
  58. package/dist/internal/TransactableOps.js +138 -4
  59. package/dist/internal/TransactableOps.js.map +1 -1
  60. package/package.json +2 -2
package/dist/Query.js CHANGED
@@ -13,6 +13,13 @@ import { DynamoClient } from "./DynamoClient.js";
13
13
  import { compileExpr } from "./internal/Expr.js";
14
14
  import { compilePath } from "./internal/PathBuilder.js";
15
15
  import { fromAttributeMap, toAttributeValue } from "./Marshaller.js";
16
+ /** @internal Dedupe + drop absent entries from a caller-supplied key field list. */
17
+ const normalizeKeyFields = (fields) => {
18
+ if (!fields)
19
+ return undefined;
20
+ const out = [...new Set(fields.filter((f) => typeof f === "string" && f !== ""))];
21
+ return out.length > 0 ? out : undefined;
22
+ };
16
23
  // ---------------------------------------------------------------------------
17
24
  // Query<A> interface
18
25
  // ---------------------------------------------------------------------------
@@ -44,6 +51,7 @@ export const make = (config) => new QueryImpl({
44
51
  exprFilters: [],
45
52
  entityTypes: config.entityTypes,
46
53
  limitValue: undefined,
54
+ pageSizeValue: undefined,
47
55
  maxPagesValue: undefined,
48
56
  scanForward: true,
49
57
  consistentRead: false,
@@ -54,6 +62,7 @@ export const make = (config) => new QueryImpl({
54
62
  projectionPaths: undefined,
55
63
  decoder: config.decoder,
56
64
  resolveTableName: config.resolveTableName,
65
+ keyFields: normalizeKeyFields(config.keyFields),
57
66
  });
58
67
  /**
59
68
  * Create a scan-mode Query. Shares all combinators and terminals with Query
@@ -70,6 +79,7 @@ export const makeScan = (config) => new QueryImpl({
70
79
  exprFilters: [],
71
80
  entityTypes: config.entityTypes,
72
81
  limitValue: undefined,
82
+ pageSizeValue: undefined,
73
83
  maxPagesValue: undefined,
74
84
  scanForward: true,
75
85
  consistentRead: false,
@@ -80,6 +90,7 @@ export const makeScan = (config) => new QueryImpl({
80
90
  projectionPaths: undefined,
81
91
  decoder: config.decoder,
82
92
  resolveTableName: config.resolveTableName,
93
+ keyFields: normalizeKeyFields(config.keyFields),
83
94
  });
84
95
  // ---------------------------------------------------------------------------
85
96
  // Cursor encoding (internal)
@@ -103,12 +114,33 @@ export const where = Function.dual(2, (self, condition) => {
103
114
  });
104
115
  });
105
116
  /**
106
- * Set the maximum number of items per DynamoDB page.
117
+ * Return **at most `n` items** — a contract on results, not on round trips.
118
+ *
119
+ * The query accumulates across as many DynamoDB requests as it takes to reach
120
+ * `n` accepted items (or to exhaust the key range). Under a `FilterExpression`
121
+ * DynamoDB's own `Limit` bounds rows *examined* before the filter runs, so it
122
+ * cannot express this — {@link pageSize} is the knob that sets `Limit`, and
123
+ * {@link maxPages} stays the hard stop on the number of requests.
124
+ *
125
+ * ```ts
126
+ * query.pipe(Query.limit(3), Query.collect) // 3 items
127
+ * query.pipe(Query.pageSize(50), Query.limit(120), Query.collect) // 120 items, requests of ≤50
128
+ * ```
107
129
  */
108
130
  export const limit = Function.dual(2, (self, n) => new QueryImpl({
109
131
  ...self._state,
110
132
  limitValue: n,
111
133
  }));
134
+ /**
135
+ * Fetch in batches of `n` — sets DynamoDB's `Limit` (rows examined per request).
136
+ * A contract on round trips, not on what comes back: a request under a
137
+ * `FilterExpression` may return fewer than `n` items, and pagination continues
138
+ * until the key range is exhausted (or {@link limit} / {@link maxPages} stops it).
139
+ */
140
+ export const pageSize = Function.dual(2, (self, n) => new QueryImpl({
141
+ ...self._state,
142
+ pageSizeValue: n,
143
+ }));
112
144
  /**
113
145
  * Reverse the sort order (sets ScanIndexForward = false).
114
146
  */
@@ -207,23 +239,26 @@ const buildFilterClauses = (state) => {
207
239
  // ---------------------------------------------------------------------------
208
240
  // Internal: build projection expression from state
209
241
  // ---------------------------------------------------------------------------
210
- const buildProjection = (state, names) => {
242
+ const buildProjection = (state, names, extraFields = []) => {
211
243
  if (state.projectionPaths && state.projectionPaths.length > 0) {
212
244
  const counter = { value: 0 };
213
245
  const projParts = [];
214
246
  for (const segments of state.projectionPaths) {
215
247
  projParts.push(compilePath(segments, names, "proj", counter));
216
248
  }
249
+ for (const field of extraFields) {
250
+ projParts.push(compilePath([field], names, "proj", counter));
251
+ }
217
252
  return projParts.join(", ");
218
253
  }
219
254
  if (state.projection && state.projection.length > 0) {
220
- const proj = Projection.projection(state.projection);
255
+ const proj = Projection.projection([...state.projection, ...extraFields]);
221
256
  Object.assign(names, proj.names);
222
257
  return proj.expression;
223
258
  }
224
259
  return undefined;
225
260
  };
226
- const buildCommandInput = (state) => {
261
+ const buildCommandInput = (state, extraProjectionFields = []) => {
227
262
  const fc = buildFilterClauses(state);
228
263
  const names = { ...fc.names };
229
264
  const values = { ...fc.values };
@@ -268,7 +303,7 @@ const buildCommandInput = (state) => {
268
303
  }
269
304
  }
270
305
  }
271
- const projectionExpression = buildProjection(state, names);
306
+ const projectionExpression = buildProjection(state, names, extraProjectionFields);
272
307
  return {
273
308
  KeyConditionExpression: keyCondition,
274
309
  FilterExpression: fc.filterClauses.length > 0 ? fc.filterClauses.join(" AND ") : undefined,
@@ -280,9 +315,12 @@ const buildCommandInput = (state) => {
280
315
  };
281
316
  /**
282
317
  * @internal Build the full DynamoDB command parameters from state and table name.
318
+ *
319
+ * `Limit` is NOT derived from state here — it is per-request (it shrinks as a
320
+ * `limit` budget is consumed) and is always supplied through `overrides`.
283
321
  */
284
- const buildDynamoCommand = (state, tableName, overrides) => {
285
- const input = buildCommandInput(state);
322
+ const buildDynamoCommand = (state, tableName, overrides, extraProjectionFields = []) => {
323
+ const input = buildCommandInput(state, extraProjectionFields);
286
324
  return {
287
325
  TableName: tableName,
288
326
  IndexName: state.indexName,
@@ -292,16 +330,80 @@ const buildDynamoCommand = (state, tableName, overrides) => {
292
330
  ExpressionAttributeNames: input.ExpressionAttributeNames,
293
331
  ExpressionAttributeValues: input.ExpressionAttributeValues,
294
332
  ConsistentRead: input.ConsistentRead,
295
- Limit: state.limitValue,
333
+ Limit: computeRequestLimit(state, state.limitValue),
296
334
  ScanIndexForward: state.isScan ? undefined : state.scanForward,
297
335
  ...overrides,
298
336
  };
299
337
  };
300
338
  // ---------------------------------------------------------------------------
339
+ // Internal: limit / pageSize execution helpers
340
+ // ---------------------------------------------------------------------------
341
+ /**
342
+ * @internal DynamoDB `Limit` for the next request.
343
+ *
344
+ * - `pageSize` always wins as the round-trip budget when it is set.
345
+ * - With a `limit` budget and NO user filter, every examined row is an accepted
346
+ * row, so the budget can be handed to DynamoDB directly (bounded by pageSize).
347
+ * The `__edd_e__` ownership filter is not counted here: it only ever rejects
348
+ * foreign items, which the accumulate loop handles by fetching another page.
349
+ * - With a user filter, `limit` cannot be expressed as `Limit` at all (it bounds
350
+ * rows examined, and the filter runs after), so the request asks for
351
+ * `pageSize` — or, unset, a natural (1 MB) page.
352
+ */
353
+ const computeRequestLimit = (state, remaining) => {
354
+ const pageSize = state.pageSizeValue;
355
+ if (remaining === undefined)
356
+ return pageSize;
357
+ if (state.exprFilters.length > 0)
358
+ return pageSize;
359
+ return pageSize === undefined ? remaining : Math.min(pageSize, remaining);
360
+ };
361
+ /**
362
+ * @internal Attribute names that form a resume key for this response.
363
+ * The `LastEvaluatedKey`, when present, is authoritative about the key shape.
364
+ */
365
+ const resumeKeyNames = (state, lastEvaluatedKey) => lastEvaluatedKey != null ? Object.keys(lastEvaluatedKey) : state.keyFields;
366
+ /**
367
+ * @internal Rebuild a cursor from the last item actually returned, so the next
368
+ * page resumes after what the caller saw rather than after the last row the
369
+ * request examined. Returns `undefined` when the item does not carry the whole
370
+ * key (e.g. a projection dropped it) — the caller then falls back.
371
+ */
372
+ const cursorFromItem = (item, names) => {
373
+ if (!names || names.length === 0)
374
+ return undefined;
375
+ const key = {};
376
+ for (const name of names) {
377
+ const value = item[name];
378
+ if (value === undefined)
379
+ return undefined;
380
+ key[name] = value;
381
+ }
382
+ return encodeCursor(key);
383
+ };
384
+ /**
385
+ * @internal Key attributes to add to an active ProjectionExpression so an
386
+ * over-reading request can still rebuild an accurate cursor. They are stripped
387
+ * from the items handed back, so the caller sees exactly what it selected.
388
+ */
389
+ const cursorProjectionFields = (state) => {
390
+ if (state.limitValue === undefined || !state.keyFields)
391
+ return [];
392
+ const projected = new Set([
393
+ ...(state.projection ?? []),
394
+ ...(state.projectionPaths ?? []).map((segments) => String(segments[0])),
395
+ ]);
396
+ if (projected.size === 0)
397
+ return [];
398
+ return state.keyFields.filter((field) => !projected.has(field));
399
+ };
400
+ // ---------------------------------------------------------------------------
301
401
  // Terminals
302
402
  // ---------------------------------------------------------------------------
303
403
  /**
304
- * Execute the query and collect all pages into a single array.
404
+ * Execute the query and collect the results into a single array.
405
+ * Stops at {@link limit} items when one is set, otherwise reads to the end of
406
+ * the key range (or {@link maxPages} requests).
305
407
  */
306
408
  export const collect = (self) => Effect.gen(function* () {
307
409
  const stream = yield* paginateInternal(self);
@@ -309,8 +411,15 @@ export const collect = (self) => Effect.gen(function* () {
309
411
  return pages.flat();
310
412
  });
311
413
  /**
312
- * Execute a single DynamoDB page and return a {@link Page} with an opaque cursor.
313
- * Combine with {@link startFrom} to iterate through pages:
414
+ * Execute one page and return a {@link Page} with an opaque cursor.
415
+ *
416
+ * Without {@link limit}, a page is one DynamoDB request (of {@link pageSize}
417
+ * rows, when set). With `limit(n)`, a page is `n` items: the request loop
418
+ * accumulates until `n` items are accepted, the key range is exhausted, or
419
+ * {@link maxPages} requests have been made.
420
+ *
421
+ * The cursor resumes after the last item actually returned — a `null` cursor
422
+ * means genuinely exhausted. Combine with {@link startFrom} to iterate:
314
423
  *
315
424
  * ```ts
316
425
  * const first = yield* query.pipe(Query.limit(25), Query.execute)
@@ -323,59 +432,126 @@ export const execute = (self) => Effect.gen(function* () {
323
432
  const client = yield* DynamoClient;
324
433
  const state = self._state;
325
434
  const tableName = state.resolveTableName ? yield* state.resolveTableName : state.tableName;
326
- const cmd = buildDynamoCommand(state, tableName, {
327
- ExclusiveStartKey: state.exclusiveStartKey,
328
- });
329
- const result = state.isScan ? yield* client.scan(cmd) : yield* client.query(cmd);
330
- const rawItems = (result.Items ?? []).map((item) => fromAttributeMap(item));
331
- const items = yield* Effect.forEach(rawItems, (raw) => state.decoder(raw));
332
- const cursor = result.LastEvaluatedKey != null
333
- ? encodeCursor(result.LastEvaluatedKey)
334
- : null;
435
+ const limitValue = state.limitValue;
436
+ if (limitValue !== undefined && limitValue <= 0) {
437
+ return { items: [], cursor: null };
438
+ }
439
+ // Key attributes borrowed into an active projection so an over-reading
440
+ // request can still rebuild a cursor. Stripped again before decoding.
441
+ const borrowedFields = cursorProjectionFields(state);
442
+ const items = [];
443
+ let startKey = state.exclusiveStartKey;
444
+ let pageCount = 0;
445
+ let cursor = null;
446
+ while (true) {
447
+ pageCount++;
448
+ const remaining = limitValue === undefined ? undefined : limitValue - items.length;
449
+ const cmd = buildDynamoCommand(state, tableName, { ExclusiveStartKey: startKey, Limit: computeRequestLimit(state, remaining) }, borrowedFields);
450
+ const result = state.isScan ? yield* client.scan(cmd) : yield* client.query(cmd);
451
+ const returned = (result.Items ?? []);
452
+ const lastEvaluatedKey = result.LastEvaluatedKey;
453
+ const take = remaining === undefined ? returned.length : Math.min(remaining, returned.length);
454
+ for (let i = 0; i < take; i++) {
455
+ const raw = fromAttributeMap(returned[i]);
456
+ for (const field of borrowedFields)
457
+ delete raw[field];
458
+ items.push(yield* state.decoder(raw));
459
+ }
460
+ // Over-read: the surplus was discarded, so the cursor has to be rebuilt
461
+ // from the last item handed back rather than from LastEvaluatedKey.
462
+ if (take < returned.length) {
463
+ cursor =
464
+ cursorFromItem(returned[take - 1], resumeKeyNames(state, lastEvaluatedKey)) ??
465
+ (lastEvaluatedKey != null ? encodeCursor(lastEvaluatedKey) : null);
466
+ break;
467
+ }
468
+ const exhausted = lastEvaluatedKey == null;
469
+ const limitReached = limitValue !== undefined && items.length >= limitValue;
470
+ const maxPagesReached = state.maxPagesValue != null && pageCount >= state.maxPagesValue;
471
+ if (limitValue === undefined || exhausted || limitReached || maxPagesReached) {
472
+ cursor = lastEvaluatedKey != null ? encodeCursor(lastEvaluatedKey) : null;
473
+ break;
474
+ }
475
+ startKey = lastEvaluatedKey;
476
+ }
335
477
  return { items, cursor };
336
478
  });
337
479
  /**
338
480
  * Execute the query and return a Stream of page arrays.
481
+ * A page is one DynamoDB request (of {@link pageSize} rows, when set); the
482
+ * stream ends once {@link limit} items have been emitted in total, the key
483
+ * range is exhausted, or {@link maxPages} requests have been made.
339
484
  */
340
485
  export const paginate = (self) => paginateInternal(self);
341
486
  const paginateInternal = (self) => Effect.gen(function* () {
342
487
  const client = yield* DynamoClient;
343
488
  const state = self._state;
344
489
  const tableName = state.resolveTableName ? yield* state.resolveTableName : state.tableName;
345
- let pageCount = 0;
346
- return Stream.paginate(state.exclusiveStartKey, (exclusiveStartKey) => Effect.gen(function* () {
347
- pageCount++;
348
- const cmd = buildDynamoCommand(state, tableName, { ExclusiveStartKey: exclusiveStartKey });
490
+ const limitValue = state.limitValue;
491
+ if (limitValue !== undefined && limitValue <= 0) {
492
+ return Stream.empty;
493
+ }
494
+ return Stream.paginate({
495
+ key: state.exclusiveStartKey,
496
+ pageCount: 0,
497
+ emitted: 0,
498
+ }, (pageState) => Effect.gen(function* () {
499
+ const pageCount = pageState.pageCount + 1;
500
+ const remaining = limitValue === undefined ? undefined : limitValue - pageState.emitted;
501
+ const cmd = buildDynamoCommand(state, tableName, {
502
+ ExclusiveStartKey: pageState.key,
503
+ Limit: computeRequestLimit(state, remaining),
504
+ });
349
505
  const result = state.isScan ? yield* client.scan(cmd) : yield* client.query(cmd);
350
- const rawItems = (result.Items ?? []).map((item) => fromAttributeMap(item));
351
- const decoded = yield* Effect.forEach(rawItems, (raw) => state.decoder(raw));
352
- // Stop pagination if maxPages reached or no more pages
506
+ const returned = (result.Items ?? []);
507
+ const take = remaining === undefined ? returned.length : Math.min(remaining, returned.length);
508
+ const decoded = yield* Effect.forEach(returned.slice(0, take).map((item) => fromAttributeMap(item)), (raw) => state.decoder(raw));
509
+ const emitted = pageState.emitted + decoded.length;
353
510
  const hasMorePages = result.LastEvaluatedKey != null;
354
511
  const maxPagesReached = state.maxPagesValue != null && pageCount >= state.maxPagesValue;
355
- const nextKey = hasMorePages && !maxPagesReached ? Option.some(result.LastEvaluatedKey) : Option.none();
356
- return [[decoded], nextKey];
512
+ const limitReached = limitValue !== undefined && emitted >= limitValue;
513
+ const nextState = hasMorePages && !maxPagesReached && !limitReached
514
+ ? Option.some({
515
+ key: result.LastEvaluatedKey,
516
+ pageCount,
517
+ emitted,
518
+ })
519
+ : Option.none();
520
+ return [[decoded], nextState];
357
521
  }));
358
522
  });
359
523
  /**
360
524
  * Execute a count query. Uses `Select: "COUNT"` on DynamoDB — no items are returned.
361
- * Returns the total count across all pages (respects maxPages).
525
+ * Returns the total count across all requests (respects {@link maxPages}).
526
+ *
527
+ * {@link limit} caps the count, keeping `count()` equal to `collect().length`
528
+ * for the same query: `.limit(n).count()` returns `min(matching, n)` and stops
529
+ * counting once `n` is reached — which makes `.limit(1).count()` a cheap
530
+ * existence check. {@link pageSize} sets the rows examined per request.
362
531
  */
363
532
  export const count = (self) => Effect.gen(function* () {
364
533
  const client = yield* DynamoClient;
365
534
  const state = self._state;
366
535
  const tableName = state.resolveTableName ? yield* state.resolveTableName : state.tableName;
536
+ const limitValue = state.limitValue;
537
+ if (limitValue !== undefined && limitValue <= 0)
538
+ return 0;
367
539
  let total = 0;
368
540
  let pageCount = 0;
369
541
  let exclusiveStartKey;
370
542
  do {
371
543
  pageCount++;
544
+ const remaining = limitValue === undefined ? undefined : limitValue - total;
372
545
  const cmd = buildDynamoCommand(state, tableName, {
373
546
  ExclusiveStartKey: exclusiveStartKey,
374
547
  Select: "COUNT",
548
+ Limit: computeRequestLimit(state, remaining),
375
549
  });
376
550
  const result = state.isScan ? yield* client.scan(cmd) : yield* client.query(cmd);
377
551
  total += result.Count ?? 0;
378
552
  exclusiveStartKey = result.LastEvaluatedKey;
553
+ if (limitValue !== undefined && total >= limitValue)
554
+ return limitValue;
379
555
  if (state.maxPagesValue != null && pageCount >= state.maxPagesValue)
380
556
  break;
381
557
  } while (exclusiveStartKey != null);
package/dist/Query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Query.js","sourceRoot":"","sources":["../src/Query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Query.js","sourceRoot":"","sources":["../src/Query.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  * EntityDelete) instead of manual { entity, key/item } objects.
9
9
  * transactGet returns a typed tuple inferred per-position.
10
10
  */
11
- import { TransactionCancelled, type ValidationError } from "@effect-dynamodb/schema/Errors.js";
11
+ import { TransactionCancelled, UniqueConstraintViolation, type ValidationError } from "@effect-dynamodb/schema/Errors.js";
12
12
  import { Effect } from "effect";
13
13
  import { DynamoClient, type DynamoClientError } from "./DynamoClient.js";
14
14
  import type { EntityGet } from "./Entity.js";
@@ -60,5 +60,5 @@ export declare const transactGet: <const T extends ReadonlyArray<EntityGet<any,
60
60
  * ])
61
61
  * ```
62
62
  */
63
- export declare const transactWrite: (operations: ReadonlyArray<TransactWriteOp>) => Effect.Effect<void, DynamoClientError | ValidationError | TransactionCancelled, DynamoClient | TableConfig>;
63
+ export declare const transactWrite: (operations: ReadonlyArray<TransactWriteOp>) => Effect.Effect<void, DynamoClientError | ValidationError | TransactionCancelled | UniqueConstraintViolation, DynamoClient | TableConfig>;
64
64
  //# sourceMappingURL=Transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../src/Transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAIL,oBAAoB,EACpB,KAAK,eAAe,EACrB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAkB,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,OAAO,EAEL,KAAK,gBAAgB,EACrB,oBAAoB,EACpB,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAS7C,OAAO,EAAE,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,CAAA;AAE5E;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE;IAClB,CAAC,SAAS,EAAE,gBAAgB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,gBAAgB,CAAA;IAChG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,GAAG,gBAAgB,CAAA;CAe7F,CAAA;AAMD;;;GAGG;AACH,KAAK,iBAAiB,CAAC,CAAC,SAAS,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI;IAC/E,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;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,CAAC,CAAC,SAAS,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EACtF,OAAO,CAAC,KACP,MAAM,CAAC,MAAM,CACd,iBAAiB,CAAC,CAAC,CAAC,EACpB,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,EAC1D,YAAY,GAAG,WAAW,CAuExB,CAAA;AAMJ;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,GACxB,YAAY,aAAa,CAAC,eAAe,CAAC,KACzC,MAAM,CAAC,MAAM,CACd,IAAI,EACJ,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,EAC1D,YAAY,GAAG,WAAW,CAiCxB,CAAA"}
1
+ {"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../src/Transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAIL,oBAAoB,EACpB,yBAAyB,EACzB,KAAK,eAAe,EACrB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAkB,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,OAAO,EAEL,KAAK,gBAAgB,EACrB,oBAAoB,EACpB,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAS7C,OAAO,EAAE,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,CAAA;AAE5E;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE;IAClB,CAAC,SAAS,EAAE,gBAAgB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,gBAAgB,CAAA;IAChG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,GAAG,gBAAgB,CAAA;CAe7F,CAAA;AAMD;;;GAGG;AACH,KAAK,iBAAiB,CAAC,CAAC,SAAS,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI;IAC/E,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;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,CAAC,CAAC,SAAS,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EACtF,OAAO,CAAC,KACP,MAAM,CAAC,MAAM,CACd,iBAAiB,CAAC,CAAC,CAAC,EACpB,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,EAC1D,YAAY,GAAG,WAAW,CAuExB,CAAA;AAMJ;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,GACxB,YAAY,aAAa,CAAC,eAAe,CAAC,KACzC,MAAM,CAAC,MAAM,CACd,IAAI,EACJ,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,GAAG,yBAAyB,EACtF,YAAY,GAAG,WAAW,CA2DxB,CAAA"}
@@ -8,7 +8,7 @@
8
8
  * EntityDelete) instead of manual { entity, key/item } objects.
9
9
  * transactGet returns a typed tuple inferred per-position.
10
10
  */
11
- import { DynamoError, isAwsTransactionCancelled, TRANSACT_WRITE_ITEMS_LIMIT, TransactionCancelled, } from "@effect-dynamodb/schema/Errors.js";
11
+ import { DynamoError, isAwsTransactionCancelled, TRANSACT_WRITE_ITEMS_LIMIT, TransactionCancelled, UniqueConstraintViolation, } from "@effect-dynamodb/schema/Errors.js";
12
12
  import { Effect, Function as Fn } from "effect";
13
13
  import { DynamoClient } from "./DynamoClient.js";
14
14
  import { extractTransactable } from "./Entity.js";
@@ -129,22 +129,42 @@ export const transactGet = (items) => Effect.gen(function* () {
129
129
  export const transactWrite = (operations) => Effect.gen(function* () {
130
130
  if (operations.length === 0)
131
131
  return;
132
- if (operations.length > TRANSACT_WRITE_ITEMS_LIMIT) {
132
+ const client = yield* DynamoClient;
133
+ const { items: transactItems, provenance } = yield* buildTransactWriteItems(operations, "transactWrite");
134
+ // Counted AFTER expansion: one op can emit several items (a `unique` +
135
+ // `retain` put emits the item, a sentinel per constraint, and the snapshot),
136
+ // so `operations.length` would understate the request and let DynamoDB
137
+ // reject it with a far less useful message (#113).
138
+ if (transactItems.length > TRANSACT_WRITE_ITEMS_LIMIT) {
133
139
  return yield* Effect.fail(new DynamoError({
134
140
  operation: "TransactWriteItems",
135
- cause: new Error(`TransactWriteItems supports a maximum of ${TRANSACT_WRITE_ITEMS_LIMIT} items`),
141
+ cause: new Error(`TransactWriteItems supports a maximum of ${TRANSACT_WRITE_ITEMS_LIMIT} items; ` +
142
+ `${operations.length} operation(s) expanded to ${transactItems.length} items ` +
143
+ "(uniqueness sentinels and version snapshots each occupy one)"),
136
144
  }));
137
145
  }
138
- const client = yield* DynamoClient;
139
- const transactItems = yield* buildTransactWriteItems(operations, "transactWrite");
140
146
  yield* client.transactWriteItems({ TransactItems: transactItems }).pipe(Effect.mapError((error) => {
141
147
  if (isAwsTransactionCancelled(error.cause)) {
148
+ const rawReasons = error.cause.CancellationReasons ?? [];
149
+ // A failed sentinel is not a generic cancellation — it is precisely
150
+ // "this unique value is taken", which is what `Entity.put` reports for
151
+ // the same item. Attribute it through the provenance map rather than
152
+ // by position, because one op now spans several items.
153
+ for (let i = 0; i < rawReasons.length; i++) {
154
+ const from = provenance[i];
155
+ if (from?.kind === "sentinel" &&
156
+ rawReasons[i]?.Code === "ConditionalCheckFailed" &&
157
+ from.constraintName !== undefined) {
158
+ return new UniqueConstraintViolation({
159
+ entityType: from.entityType,
160
+ constraint: from.constraintName,
161
+ fields: from.fields ?? {},
162
+ });
163
+ }
164
+ }
142
165
  return new TransactionCancelled({
143
166
  operation: "TransactWriteItems",
144
- reasons: (error.cause.CancellationReasons ?? []).map((r) => ({
145
- code: r?.Code,
146
- message: r?.Message,
147
- })),
167
+ reasons: rawReasons.map((r) => ({ code: r?.Code, message: r?.Message })),
148
168
  cause: error.cause,
149
169
  });
150
170
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../src/Transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../src/Transaction.ts"],"names":[],"mappings":"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"}