effect-dynamodb 1.21.0 → 1.23.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 (69) hide show
  1. package/README.md +2 -0
  2. package/dist/Aggregate.d.ts +9 -4
  3. package/dist/Aggregate.d.ts.map +1 -1
  4. package/dist/Aggregate.js +644 -219
  5. package/dist/Aggregate.js.map +1 -1
  6. package/dist/Batch.d.ts +7 -0
  7. package/dist/Batch.d.ts.map +1 -1
  8. package/dist/Batch.js +132 -7
  9. package/dist/Batch.js.map +1 -1
  10. package/dist/Collection.d.ts.map +1 -1
  11. package/dist/Collection.js +18 -32
  12. package/dist/Collection.js.map +1 -1
  13. package/dist/DynamoClient.d.ts +40 -3
  14. package/dist/DynamoClient.d.ts.map +1 -1
  15. package/dist/DynamoClient.js +72 -20
  16. package/dist/DynamoClient.js.map +1 -1
  17. package/dist/Entity.d.ts +138 -55
  18. package/dist/Entity.d.ts.map +1 -1
  19. package/dist/Entity.js +3061 -626
  20. package/dist/Entity.js.map +1 -1
  21. package/dist/EventStore.d.ts +30 -8
  22. package/dist/EventStore.d.ts.map +1 -1
  23. package/dist/EventStore.js +203 -155
  24. package/dist/EventStore.js.map +1 -1
  25. package/dist/Query.d.ts +75 -3
  26. package/dist/Query.d.ts.map +1 -1
  27. package/dist/Query.js +228 -30
  28. package/dist/Query.js.map +1 -1
  29. package/dist/Transaction.d.ts +13 -2
  30. package/dist/Transaction.d.ts.map +1 -1
  31. package/dist/Transaction.js +48 -38
  32. package/dist/Transaction.js.map +1 -1
  33. package/dist/index.d.ts +3 -3
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +1 -1
  36. package/dist/index.js.map +1 -1
  37. package/dist/internal/BoundCrud.d.ts +31 -20
  38. package/dist/internal/BoundCrud.d.ts.map +1 -1
  39. package/dist/internal/BoundCrud.js +1 -1
  40. package/dist/internal/BoundCrud.js.map +1 -1
  41. package/dist/internal/BoundQuery.d.ts +47 -2
  42. package/dist/internal/BoundQuery.d.ts.map +1 -1
  43. package/dist/internal/BoundQuery.js +182 -18
  44. package/dist/internal/BoundQuery.js.map +1 -1
  45. package/dist/internal/EntityCombinators.d.ts +32 -10
  46. package/dist/internal/EntityCombinators.d.ts.map +1 -1
  47. package/dist/internal/EntityCombinators.js +16 -7
  48. package/dist/internal/EntityCombinators.js.map +1 -1
  49. package/dist/internal/EntityOps.d.ts +44 -10
  50. package/dist/internal/EntityOps.d.ts.map +1 -1
  51. package/dist/internal/EntityOps.js +48 -5
  52. package/dist/internal/EntityOps.js.map +1 -1
  53. package/dist/internal/Expr.d.ts +23 -0
  54. package/dist/internal/Expr.d.ts.map +1 -1
  55. package/dist/internal/Expr.js +84 -9
  56. package/dist/internal/Expr.js.map +1 -1
  57. package/dist/internal/ItemSize.d.ts +38 -0
  58. package/dist/internal/ItemSize.d.ts.map +1 -0
  59. package/dist/internal/ItemSize.js +62 -0
  60. package/dist/internal/ItemSize.js.map +1 -0
  61. package/dist/internal/TransactWriteOps.d.ts +112 -19
  62. package/dist/internal/TransactWriteOps.d.ts.map +1 -1
  63. package/dist/internal/TransactWriteOps.js +210 -33
  64. package/dist/internal/TransactWriteOps.js.map +1 -1
  65. package/dist/internal/TransactableOps.d.ts +33 -14
  66. package/dist/internal/TransactableOps.d.ts.map +1 -1
  67. package/dist/internal/TransactableOps.js +46 -19
  68. package/dist/internal/TransactableOps.js.map +1 -1
  69. package/package.json +2 -2
@@ -9,6 +9,23 @@ import { ValidationError } from "@effect-dynamodb/schema/Errors.js";
9
9
  import * as KeyComposer from "@effect-dynamodb/schema/KeyComposer.js";
10
10
  import { DateTime, Effect, Schema } from "effect";
11
11
  import type { Entity } from "../Entity.js";
12
+ /**
13
+ * @internal Hidden per-incarnation token of a versioned entity (#133): set
14
+ * when an item is created, it tells an item apart from a deleted-and-recreated
15
+ * one at the same version. Named like
16
+ * `__edd_e__` so it cannot collide with a model field; never decoded.
17
+ */
18
+ export declare const INCARNATION_TOKEN = "__edd_i__";
19
+ /**
20
+ * @internal Hidden string set naming the unique-constraint fields an item
21
+ * holds a DEFAULT for (#133): a decoding-default field that is also an index
22
+ * composite is stored when omitted, but a default never creates a unique
23
+ * sentinel — so no sentinel is composed, rotated or deleted for a field
24
+ * listed here until a write supplies a value for it.
25
+ */
26
+ export declare const UNSENTINELED_DEFAULTS = "__edd_d__";
27
+ /** @internal A fresh incarnation token. */
28
+ export declare const freshIncarnationToken: Effect.Effect<string>;
12
29
  /**
13
30
  * Generate a wire-form timestamp value for the configured encoding from a
14
31
  * Clock-backed `now: DateTime.Utc` (resolved by the caller via `yield*
@@ -72,17 +89,16 @@ export declare const batchRejectReason: (entity: Entity, opType: "put" | "delete
72
89
  * writes an item with no embedding, so it silently drops out of the index.
73
90
  *
74
91
  * **The multi-item lifecycle features split by direction (#113).** `unique`,
75
- * `versioned: { retain }` and `softDelete` all need MORE than one item per write.
76
- * The line between "expand" and "reject" is whether the extra items are
77
- * derivable from the caller's payload or only from stored state:
92
+ * `versioned: { retain }` and `softDelete` all need MORE than one item per write:
78
93
  *
79
- * - **put** — the sentinel and the v1 snapshot come from the payload being
80
- * written. `transactWrite` expands into them (`Entity._buildPutSideItems`).
81
- * - **delete** — the sentinel to release is keyed by the *stored* item's unique
82
- * values, a retain snapshot copies the *stored* row, and a soft-delete
83
- * tombstone IS the stored row relocated to a new sort key. All three need a
84
- * read this path does not do (and a read would introduce a TOCTOU window that
85
- * only another ConditionCheck could close). Rejected with **EDD-9048**.
94
+ * - **put** — expanded. A put of a versioned or unique-constrained entity is
95
+ * planned exactly as `Entity.put` plans it (#133): the item is read, and the
96
+ * Put is guarded on what was read, beside its sentinel reservations and
97
+ * (owned) releases and its retain snapshot (`Entity._planPut`).
98
+ * - **delete** — rejected with **EDD-9048**. The sentinel to release is keyed by
99
+ * the *stored* item's unique values, a retain snapshot copies the *stored* row,
100
+ * and a soft-delete tombstone IS the stored row relocated to a new sort key;
101
+ * the transaction path builds a delete from its key alone.
86
102
  *
87
103
  * `Batch.write` rejects BOTH directions (**EDD-9049**) — see `batchRejectReason`.
88
104
  *
@@ -115,14 +131,17 @@ export declare const composePrimaryKey: (entity: Entity, key: Record<string, unk
115
131
  * are handled in the encode pass — no per-field serialization needed.
116
132
  *
117
133
  * Returns the unmarshalled `item` alongside the marshalled one, plus the `now`
118
- * the timestamps were generated from. `Entity._buildPutSideItems` needs both to
119
- * derive uniqueness sentinels and the v1 version snapshot from the same values
120
- * that were written (#113), and re-deriving `now` there would risk a skew
121
- * between an item's `createdAt` and its snapshot's TTL.
134
+ * the timestamps were generated from, and whether the input supplied
135
+ * `createdAt`. `Entity._planPut` needs them to derive uniqueness sentinels and
136
+ * the retain snapshot from the same values that were written (#113), and to
137
+ * keep a replaced item's `createdAt` (#133); re-deriving `now` there would risk
138
+ * a skew between an item's `createdAt` and its snapshot's TTL.
122
139
  */
123
140
  export declare const validateAndBuildPutItem: (entity: Entity, input: Record<string, unknown>, operation: string) => Effect.Effect<{
124
141
  readonly item: Record<string, unknown>;
125
142
  readonly marshalled: Record<string, import("@aws-sdk/client-dynamodb").AttributeValue>;
126
143
  readonly now: DateTime.Utc;
144
+ /** Whether the input supplied `createdAt` (a replacing put keeps the stored one otherwise). */
145
+ readonly createdAtSupplied: boolean;
127
146
  }, ValidationError>;
128
147
  //# sourceMappingURL=TransactableOps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransactableOps.d.ts","sourceRoot":"","sources":["../../src/internal/TransactableOps.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,WAAW,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAG1C;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B,GACrC,KAAK,QAAQ,CAAC,GAAG,EACjB,UAAU,cAAc,GAAG,IAAI,KAC9B,MAAM,GAAG,MAaX,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,KAAG,MAGzB,CAAA;AAY3B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,QAAQ,KAAK,GAAG,QAAQ,KAAG,MAAM,GAAG,SAcrF,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,QAAQ,KAAK,GAAG,QAAQ,EACxB,SAAS,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS;AAChD;;;;GAIG;AACH,QAAQ,OAAO,KACd,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAkFrC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,aAAa,CAAC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,wiBAU/E,CAAA;AAEJ;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,MAAM,EACd,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAaxB,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,GAClC,QAAQ,MAAM,EACd,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,WAAW,MAAM,KAChB,MAAM,CAAC,MAAM,CACd;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,0BAA0B,EAAE,cAAc,CAAC,CAAA;IACtF,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAA;CAC3B,EACD,eAAe,CA8Eb,CAAA"}
1
+ {"version":3,"file":"TransactableOps.d.ts","sourceRoot":"","sources":["../../src/internal/TransactableOps.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AAEnE,OAAO,KAAK,WAAW,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAG1C;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,cAAc,CAAA;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,cAAc,CAAA;AAIhD,2CAA2C;AAC3C,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAEvD,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B,GACrC,KAAK,QAAQ,CAAC,GAAG,EACjB,UAAU,cAAc,GAAG,IAAI,KAC9B,MAAM,GAAG,MAaX,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,KAAG,MAGzB,CAAA;AAY3B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,QAAQ,KAAK,GAAG,QAAQ,KAAG,MAAM,GAAG,SAcrF,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,QAAQ,KAAK,GAAG,QAAQ,EACxB,SAAS,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS;AAChD;;;;GAIG;AACH,QAAQ,OAAO,KACd,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAkFrC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,aAAa,CAAC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,wiBAU/E,CAAA;AAEJ;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,MAAM,EACd,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAaxB,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,uBAAuB,GAClC,QAAQ,MAAM,EACd,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,WAAW,MAAM,KAChB,MAAM,CAAC,MAAM,CACd;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,0BAA0B,EAAE,cAAc,CAAC,CAAA;IACtF,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAA;IAC1B,+FAA+F;IAC/F,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;CACpC,EACD,eAAe,CAoFb,CAAA"}
@@ -5,9 +5,28 @@
5
5
  * and put-item construction (validation + key composition + system fields).
6
6
  */
7
7
  import { ValidationError } from "@effect-dynamodb/schema/Errors.js";
8
+ import { makeDefaultCrypto } from "@effect-dynamodb/schema/internal/DefaultCrypto.js";
8
9
  import * as KeyComposer from "@effect-dynamodb/schema/KeyComposer.js";
9
10
  import { DateTime, Effect, Schema } from "effect";
10
11
  import { toAttributeMap } from "../Marshaller.js";
12
+ /**
13
+ * @internal Hidden per-incarnation token of a versioned entity (#133): set
14
+ * when an item is created, it tells an item apart from a deleted-and-recreated
15
+ * one at the same version. Named like
16
+ * `__edd_e__` so it cannot collide with a model field; never decoded.
17
+ */
18
+ export const INCARNATION_TOKEN = "__edd_i__";
19
+ /**
20
+ * @internal Hidden string set naming the unique-constraint fields an item
21
+ * holds a DEFAULT for (#133): a decoding-default field that is also an index
22
+ * composite is stored when omitted, but a default never creates a unique
23
+ * sentinel — so no sentinel is composed, rotated or deleted for a field
24
+ * listed here until a write supplies a value for it.
25
+ */
26
+ export const UNSENTINELED_DEFAULTS = "__edd_d__";
27
+ const incarnationCrypto = makeDefaultCrypto();
28
+ /** @internal A fresh incarnation token. */
29
+ export const freshIncarnationToken = Effect.orDie(incarnationCrypto.randomUUIDv4);
11
30
  /**
12
31
  * Generate a wire-form timestamp value for the configured encoding from a
13
32
  * Clock-backed `now: DateTime.Utc` (resolved by the caller via `yield*
@@ -106,17 +125,16 @@ export const batchRejectReason = (entity, opType) => {
106
125
  * writes an item with no embedding, so it silently drops out of the index.
107
126
  *
108
127
  * **The multi-item lifecycle features split by direction (#113).** `unique`,
109
- * `versioned: { retain }` and `softDelete` all need MORE than one item per write.
110
- * The line between "expand" and "reject" is whether the extra items are
111
- * derivable from the caller's payload or only from stored state:
128
+ * `versioned: { retain }` and `softDelete` all need MORE than one item per write:
112
129
  *
113
- * - **put** — the sentinel and the v1 snapshot come from the payload being
114
- * written. `transactWrite` expands into them (`Entity._buildPutSideItems`).
115
- * - **delete** — the sentinel to release is keyed by the *stored* item's unique
116
- * values, a retain snapshot copies the *stored* row, and a soft-delete
117
- * tombstone IS the stored row relocated to a new sort key. All three need a
118
- * read this path does not do (and a read would introduce a TOCTOU window that
119
- * only another ConditionCheck could close). Rejected with **EDD-9048**.
130
+ * - **put** — expanded. A put of a versioned or unique-constrained entity is
131
+ * planned exactly as `Entity.put` plans it (#133): the item is read, and the
132
+ * Put is guarded on what was read, beside its sentinel reservations and
133
+ * (owned) releases and its retain snapshot (`Entity._planPut`).
134
+ * - **delete** — rejected with **EDD-9048**. The sentinel to release is keyed by
135
+ * the *stored* item's unique values, a retain snapshot copies the *stored* row,
136
+ * and a soft-delete tombstone IS the stored row relocated to a new sort key;
137
+ * the transaction path builds a delete from its key alone.
120
138
  *
121
139
  * `Batch.write` rejects BOTH directions (**EDD-9049**) — see `batchRejectReason`.
122
140
  *
@@ -146,8 +164,8 @@ input) => {
146
164
  if (opType === "delete" && entity._multiItemWriteFeatures.length > 0) {
147
165
  return Effect.fail(fail(`[EDD-9048] deleting an entity configured with ${describeFeatures(entity._multiItemWriteFeatures)}`, "the extra items a delete must write are derived from the STORED item — the sentinel " +
148
166
  "to release is keyed by its unique values, a retain snapshot copies it, and a " +
149
- "soft-delete tombstone is that row relocated to a new sort key. This path never " +
150
- "reads, so it cannot build them. Run the delete as its own operation " +
167
+ "soft-delete tombstone is that row relocated to a new sort key. This path builds a " +
168
+ "delete from its key alone, so it cannot build them. Run the delete as its own operation " +
151
169
  "(db.entities.X.delete(...)), which reads the item first."));
152
170
  }
153
171
  // --- entity-configuration level -----------------------------------------
@@ -221,10 +239,11 @@ export const composePrimaryKey = (entity, key) => {
221
239
  * are handled in the encode pass — no per-field serialization needed.
222
240
  *
223
241
  * Returns the unmarshalled `item` alongside the marshalled one, plus the `now`
224
- * the timestamps were generated from. `Entity._buildPutSideItems` needs both to
225
- * derive uniqueness sentinels and the v1 version snapshot from the same values
226
- * that were written (#113), and re-deriving `now` there would risk a skew
227
- * between an item's `createdAt` and its snapshot's TTL.
242
+ * the timestamps were generated from, and whether the input supplied
243
+ * `createdAt`. `Entity._planPut` needs them to derive uniqueness sentinels and
244
+ * the retain snapshot from the same values that were written (#113), and to
245
+ * keep a replaced item's `createdAt` (#133); re-deriving `now` there would risk
246
+ * a skew between an item's `createdAt` and its snapshot's TTL.
228
247
  */
229
248
  export const validateAndBuildPutItem = (entity, input, operation) => Effect.gen(function* () {
230
249
  // Clock-backed time source resolved once per op; threaded into the sync
@@ -232,13 +251,18 @@ export const validateAndBuildPutItem = (entity, input, operation) => Effect.gen(
232
251
  const now = yield* DateTime.now;
233
252
  const inputSchema = entity.schemas.inputSchema;
234
253
  // Encode → fall back to decode-then-encode (mirrors Entity.put).
235
- const encoded = yield* Schema.encodeUnknownEffect(inputSchema)(input).pipe(Effect.catch(() => Schema.decodeUnknownEffect(inputSchema)(input).pipe(Effect.flatMap((decoded) => Schema.encodeUnknownEffect(inputSchema)(decoded)))), Effect.mapError((cause) => new ValidationError({
254
+ // Omitted decoding defaults are stored, exactly as `Entity.put` does.
255
+ const filled = yield* entity._fillDecodingDefaults(input);
256
+ const unsentineled = entity._unsentineledDefaults(input);
257
+ const encoded = yield* Schema.encodeUnknownEffect(inputSchema)(filled).pipe(Effect.catch(() => Schema.decodeUnknownEffect(inputSchema)(filled).pipe(Effect.flatMap((decoded) => Schema.encodeUnknownEffect(inputSchema)(decoded)))), Effect.mapError((cause) => new ValidationError({
236
258
  entityType: entity.entityType,
237
259
  operation,
238
260
  cause,
239
261
  })));
240
262
  const item = { ...encoded };
241
263
  item.__edd_e__ = entity.entityType;
264
+ if (unsentineled.length > 0)
265
+ item[UNSENTINELED_DEFAULTS] = new Set(unsentineled);
242
266
  // Same normalisation `Entity.put` applies. Without it a `BigIntFromString`
243
267
  // composite composed `txn_420` here and `txn_000…0420` there, so the two
244
268
  // APIs wrote two different rows for the same logical item and neither
@@ -250,6 +274,7 @@ export const validateAndBuildPutItem = (entity, input, operation) => Effect.gen(
250
274
  // (already encoded to wire by `Schema.encode`); else generate a wire
251
275
  // primitive directly.
252
276
  const sf = entity.systemFields;
277
+ const createdAtSupplied = sf.createdAt !== null && item[sf.createdAt] !== undefined;
253
278
  if (sf.createdAt) {
254
279
  if (item[sf.createdAt] === undefined) {
255
280
  item[sf.createdAt] = generateTimestampPrimitive(now, sf.createdAtEncoding);
@@ -262,11 +287,13 @@ export const validateAndBuildPutItem = (entity, input, operation) => Effect.gen(
262
287
  }
263
288
  if (sf.version)
264
289
  item[sf.version] = 1;
290
+ if (entity._incarnationToken)
291
+ item[INCARNATION_TOKEN] = yield* freshIncarnationToken;
265
292
  // Rename domain fields to their stored attribute names, in the same
266
293
  // position `Entity.put` does (after keys + system fields, before sparse
267
294
  // flattening). Omitting it gave a `field:`-renamed entity a differently
268
295
  // shaped item depending on whether `put` or `transactWrite` wrote it — and
269
- // `_buildPutSideItems` derives the v1 retain snapshot from this same item,
296
+ // `_planPut` derives the retain snapshot from this same item,
270
297
  // so the snapshot inherited the wrong shape too (#111).
271
298
  entity._renameToDynamo(item);
272
299
  // Flatten sparse-map fields into per-entry top-level attributes. Throws
@@ -281,6 +308,6 @@ export const validateAndBuildPutItem = (entity, input, operation) => Effect.gen(
281
308
  cause: e instanceof Error ? e.message : String(e),
282
309
  });
283
310
  }
284
- return { item, marshalled: toAttributeMap(item), now };
311
+ return { item, marshalled: toAttributeMap(item), now, createdAtSupplied };
285
312
  });
286
313
  //# sourceMappingURL=TransactableOps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransactableOps.js","sourceRoot":"","sources":["../../src/internal/TransactableOps.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,WAAW,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,GAAiB,EACjB,QAA+B,EACd,EAAE;IACnB,IAAI,CAAC,QAAQ;QAAE,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAC7C,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IACtC,QAAQ,QAAQ,CAAC,OAAO,EAAE,CAAC;QACzB,KAAK,QAAQ;YACX,iEAAiE;YACjE,mEAAmE;YACnE,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAChC,KAAK,SAAS;YACZ,OAAO,EAAE,CAAA;QACX,KAAK,cAAc;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;IAChC,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAU,EAAE,CAC3D,cAAc,SAAS,+DAA+D;IACtF,qFAAqF;IACrF,yBAAyB,CAAA;AAE3B,sEAAsE;AACtE,MAAM,gBAAgB,GAAG,CAAC,QAA2D,EAAU,EAAE;IAC/F,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,cAAc,CAChG,CAAA;IACD,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC;QACxB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE;QACZ,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAA;AAC1E,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAE,MAAwB,EAAsB,EAAE;IAChG,MAAM,QAAQ,GAAG,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;IAC3D,uEAAuE;IACvE,4EAA4E;IAC5E,yBAAyB;IACzB,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAChD,CAAA;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3C,OAAO,CACL,iCAAiC,MAAM,8BAA8B,gBAAgB,CAAC,QAAQ,CAAC,KAAK;QACpG,gFAAgF;QAChF,iFAAiF;QACjF,uEAAuE,CACxE,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAc,EACd,SAAiB,EACjB,MAAwB,EACxB,OAAgD;AAChD;;;;GAIG;AACH,KAAe,EACuB,EAAE;IACxC,MAAM,IAAI,GAAG,CAAC,UAAkB,EAAE,MAAc,EAAE,EAAE,CAClD,IAAI,eAAe,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS;QACT,KAAK,EAAE,GAAG,SAAS,KAAK,UAAU,4BAA4B,MAAM,EAAE;KACvE,CAAC,CAAA;IAEJ,4EAA4E;IAC5E,IAAI,MAAM,KAAK,KAAK,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,CACF,QAAQ,EACR,6EAA6E;YAC3E,8EAA8E;YAC9E,2EAA2E,CAC9E,CACF,CAAA;IACH,CAAC;IAED,4EAA4E;IAC5E,+DAA+D;IAC/D,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrE,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,CACF,iDAAiD,gBAAgB,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,EACnG,sFAAsF;YACpF,+EAA+E;YAC/E,iFAAiF;YACjF,sEAAsE;YACtE,0DAA0D,CAC7D,CACF,CAAA;IACH,CAAC;IAED,2EAA2E;IAC3E,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,CACF,OAAO,EACP,gFAAgF;YAC9E,sDAAsD,CACzD,CACF,CAAA;IACH,CAAC;IACD,4EAA4E;IAC5E,wEAAwE;IACxE,4EAA4E;IAC5E,8EAA8E;IAC9E,yEAAyE;IACzE,gDAAgD;IAChD,EAAE;IACF,8EAA8E;IAC9E,4EAA4E;IAC5E,wEAAwE;IACxE,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;QACnD,MAAM,OAAO,GAAI,MAAM,CAAC,WAA0C,CAAC,KAAK,CAAA;QACxE,MAAM,QAAQ,GACZ,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACb,KAA4C,CAAC,OAAO,CAAC,IAAI,IAAI,CAAA;QAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,CACF,6BAA6B,OAAO,IAAI,EACxC,8EAA8E;gBAC5E,IAAI,OAAO,6DAA6D;gBACxE,iCAAiC,CACpC,CACF,CAAA;QACH,CAAC;IACH,CAAC;IACD,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5E,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,CACF,gBAAgB,EAChB,kFAAkF;YAChF,yEAAyE,CAC5E,CACF,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAiD,EAAE,EAAE,CACrF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAA;YAC7C,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAC,CAAA;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,MAAc,EACd,GAA4B,EACH,EAAE;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAQ,CAAA;IACvC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAA;IAC7B,2EAA2E;IAC3E,8EAA8E;IAC9E,2EAA2E;IAC3E,0EAA0E;IAC1E,iDAAiD;IACjD,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC1C,OAAO;QACL,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,CAAC;QAC5F,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC;KAChG,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,MAAc,EACd,KAA8B,EAC9B,SAAiB,EAQjB,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,wEAAwE;IACxE,qEAAqE;IACrE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAA;IAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,WAAgC,CAAA;IACnE,iEAAiE;IACjE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CACxE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAChB,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CACjD,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAC9E,CACF,EACD,MAAM,CAAC,QAAQ,CACb,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,eAAe,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS;QACT,KAAK;KACN,CAAC,CACL,CACF,CAAA;IAED,MAAM,IAAI,GAA4B,EAAE,GAAI,OAAmC,EAAE,CAAA;IACjF,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAA;IAElC,2EAA2E;IAC3E,yEAAyE;IACzE,sEAAsE;IACtE,uDAAuD;IACvD,MAAM,IAAI,GAAG,WAAW,CAAC,cAAc,CACrC,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,UAAU,EACjB,CAAC,EACD,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,QAAQ,CAAC,OAAkC,CAAC,CACpD,CAAA;IACD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAEzB,0EAA0E;IAC1E,mEAAmE;IACnE,qEAAqE;IACrE,sBAAsB;IACtB,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAA;IAC9B,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,0BAA0B,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAA;QAC5E,CAAC;IACH,CAAC;IACD,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,0BAA0B,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAA;QAC5E,CAAC;IACH,CAAC;IACD,IAAI,EAAE,CAAC,OAAO;QAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAEpC,oEAAoE;IACpE,wEAAwE;IACxE,wEAAwE;IACxE,2EAA2E;IAC3E,2EAA2E;IAC3E,wDAAwD;IACxD,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IAE5B,wEAAwE;IACxE,sEAAsE;IACtE,IAAI,CAAC;QACH,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,KAAK,CAAC,CAAC,IAAI,eAAe,CAAC;YAChC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS;YACT,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;SAClD,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;AACxD,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"TransactableOps.js","sourceRoot":"","sources":["../../src/internal/TransactableOps.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "effect-dynamodb",
3
- "version": "1.21.0",
3
+ "version": "1.23.0",
4
4
  "description": "Effect TS ORM for DynamoDB — schema-driven entity modeling, single-table design, composite keys, transactions, and Stream-based pagination",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -48,7 +48,7 @@
48
48
  "dependencies": {
49
49
  "@aws-sdk/client-dynamodb": "^3.1104.0",
50
50
  "@aws-sdk/util-dynamodb": "^3.700.0",
51
- "@effect-dynamodb/schema": "^1.21.0"
51
+ "@effect-dynamodb/schema": "^1.23.0"
52
52
  },
53
53
  "peerDependencies": {
54
54
  "effect": "^4.0.0"