@photon-grove/evt 0.1.2 → 0.2.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 (66) hide show
  1. package/README.md +15 -3
  2. package/dist/dynamodb/head.d.ts +6 -0
  3. package/dist/dynamodb/head.d.ts.map +1 -1
  4. package/dist/dynamodb/head.js +11 -0
  5. package/dist/dynamodb/head.js.map +1 -1
  6. package/dist/dynamodb/index.d.ts +1 -1
  7. package/dist/dynamodb/index.d.ts.map +1 -1
  8. package/dist/dynamodb/index.js +1 -1
  9. package/dist/dynamodb/index.js.map +1 -1
  10. package/dist/dynamodb/repository.d.ts +9 -2
  11. package/dist/dynamodb/repository.d.ts.map +1 -1
  12. package/dist/dynamodb/repository.js +114 -35
  13. package/dist/dynamodb/repository.js.map +1 -1
  14. package/dist/dynamodb/requests.d.ts +36 -5
  15. package/dist/dynamodb/requests.d.ts.map +1 -1
  16. package/dist/dynamodb/requests.js +56 -13
  17. package/dist/dynamodb/requests.js.map +1 -1
  18. package/dist/errors.d.ts +38 -4
  19. package/dist/errors.d.ts.map +1 -1
  20. package/dist/errors.js +45 -4
  21. package/dist/errors.js.map +1 -1
  22. package/dist/index.d.ts +3 -2
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +3 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/memory/repository.d.ts +3 -2
  27. package/dist/memory/repository.d.ts.map +1 -1
  28. package/dist/memory/repository.js +78 -29
  29. package/dist/memory/repository.js.map +1 -1
  30. package/dist/postgres/repository.d.ts +9 -2
  31. package/dist/postgres/repository.d.ts.map +1 -1
  32. package/dist/postgres/repository.js +107 -36
  33. package/dist/postgres/repository.js.map +1 -1
  34. package/dist/postgres/schema.d.ts.map +1 -1
  35. package/dist/postgres/schema.js +16 -0
  36. package/dist/postgres/schema.js.map +1 -1
  37. package/dist/repository.d.ts +75 -0
  38. package/dist/repository.d.ts.map +1 -1
  39. package/dist/repository.js +89 -3
  40. package/dist/repository.js.map +1 -1
  41. package/dist/staging.d.ts +28 -0
  42. package/dist/staging.d.ts.map +1 -0
  43. package/dist/staging.js +89 -0
  44. package/dist/staging.js.map +1 -0
  45. package/dist/store.d.ts +11 -1
  46. package/dist/store.d.ts.map +1 -1
  47. package/dist/store.js +30 -71
  48. package/dist/store.js.map +1 -1
  49. package/dist/transaction.d.ts +113 -0
  50. package/dist/transaction.d.ts.map +1 -0
  51. package/dist/transaction.js +207 -0
  52. package/dist/transaction.js.map +1 -0
  53. package/package.json +1 -1
  54. package/src/dynamodb/head.ts +15 -0
  55. package/src/dynamodb/index.ts +1 -0
  56. package/src/dynamodb/repository.ts +162 -41
  57. package/src/dynamodb/requests.ts +98 -14
  58. package/src/errors.ts +63 -4
  59. package/src/index.ts +16 -7
  60. package/src/memory/repository.ts +93 -32
  61. package/src/postgres/repository.ts +133 -48
  62. package/src/postgres/schema.ts +16 -0
  63. package/src/repository.ts +169 -2
  64. package/src/staging.ts +138 -0
  65. package/src/store.ts +47 -96
  66. package/src/transaction.ts +322 -0
package/README.md CHANGED
@@ -11,9 +11,9 @@ held to the fixtures Go and Rust generate, byte for byte.
11
11
  npm install @photon-grove/evt
12
12
  ```
13
13
 
14
- So far it has the core, the in-memory, DynamoDB and PostgreSQL backends, and the testing helpers.
15
- Commit-wide projectors, command outcomes and multi-stream transactions come in later releases, and
16
- the
14
+ So far it has the core, multi-stream transactions with read fences, the in-memory, DynamoDB and
15
+ PostgreSQL backends, and the testing helpers. Commit-wide projectors and command outcomes come in
16
+ later releases, and the
17
17
  [feature matrix](https://github.com/photon-grove/evt/blob/main/docs/reference/feature-matrix.md)
18
18
  tracks each one. The
19
19
  [getting started guide](https://github.com/photon-grove/evt/blob/main/docs/guide/getting-started.md#the-same-model-in-typescript)
@@ -141,6 +141,18 @@ of `AbortSignal`, which the DOM library, `@types/node`, and Bun's and Deno's typ
141
141
  - **Rebuilds.** While a projection rebuild holds the store, every commit fails with a
142
142
  `RebuildInProgressError`. It's retryable, so `executeWithRetry` runs the command again after its
143
143
  backoff, though a rebuild usually outlasts the default policy's attempts.
144
+ - **Transactions.** `store.transaction()` commits several streams at once. `read(aggregate, id)`
145
+ loads a stream of any aggregate type and returns a typed handle, `append(handle, events)` stages
146
+ the events decided for it, and `commit({metadata})` stamps one commit ID on every event and
147
+ writes them all atomically, with each stream's snapshot and projector operations, or writes
148
+ nothing. A stream read but never appended to is fenced at the head it was read at, so the commit
149
+ fails with a `FenceConflictError` once another writer moves it. `fence({entityId, entityType,
150
+ head})` adds a fence of your own on a stream the transaction doesn't read. A fence the engine
151
+ filled is retryable, and one the caller stamped isn't. A transaction commits once, and `execute`
152
+ stays the shortcut for a single stream. Underneath, every repository is a
153
+ `TransactionalRepository`, whose `commitTransaction({streams, fences})` takes the streams and
154
+ fences directly. A fence on an entity type with retention is refused with a
155
+ `RetentionConflictError`.
144
156
  - **Sequences** are `bigint`s, because Go and Rust store them as 64-bit integers.
145
157
 
146
158
  Errors are `EvtError`s with a `code`. `isConflict` and `isRetryable` tell them apart.
@@ -25,6 +25,12 @@ export interface HeadAction {
25
25
  * retention.
26
26
  */
27
27
  export declare function headUpdate(entityId: string, first: bigint, last: bigint, ttl?: number): HeadAction;
28
+ /** The condition of a fence on a stream with no head: it still has none. */
29
+ export declare const FENCE_ABSENT_CONDITION = "attribute_not_exists(head)";
30
+ /** The condition of a fence on a stream with a head: it still equals the one observed. */
31
+ export declare const FENCE_CONDITION = "head = :head";
32
+ /** The `ConditionCheck` a transaction fences a stream it read at `head` with. */
33
+ export declare function headFence(entityId: string, head: bigint): HeadAction;
28
34
  /**
29
35
  * An action's size in the commit budget, by the rule for any update, delete or condition check:
30
36
  * its key attributes plus its expression strings, name placeholders (the placeholder and the
@@ -1 +1 @@
1
- {"version":3,"file":"head.d.ts","sourceRoot":"","sources":["../../src/dynamodb/head.ts"],"names":[],"mappings":"AAQA,4EAA4E;AAC5E,eAAO,MAAM,WAAW,qBAAqB,CAAA;AAE7C,iGAAiG;AACjG,eAAO,MAAM,oBAAoB,gCAAgC,CAAA;AAEjE,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB,+BAA+B,CAAA;AAEjE,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,iBAAiB,CAAA;AAEnD,oFAAoF;AACpF,eAAO,MAAM,8BAA8B,gEACoB,CAAA;AAE/D,+DAA+D;AAC/D,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kEAAkE;IAClE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;IACzB,2DAA2D;IAC3D,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,GACX,UAAU,CA0BZ;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAazD"}
1
+ {"version":3,"file":"head.d.ts","sourceRoot":"","sources":["../../src/dynamodb/head.ts"],"names":[],"mappings":"AAQA,4EAA4E;AAC5E,eAAO,MAAM,WAAW,qBAAqB,CAAA;AAE7C,iGAAiG;AACjG,eAAO,MAAM,oBAAoB,gCAAgC,CAAA;AAEjE,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB,+BAA+B,CAAA;AAEjE,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,iBAAiB,CAAA;AAEnD,oFAAoF;AACpF,eAAO,MAAM,8BAA8B,gEACoB,CAAA;AAE/D,+DAA+D;AAC/D,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kEAAkE;IAClE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;IACzB,2DAA2D;IAC3D,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,GACX,UAAU,CA0BZ;AAED,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB,+BAA+B,CAAA;AAElE,0FAA0F;AAC1F,eAAO,MAAM,eAAe,iBAAiB,CAAA;AAE7C,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAMpE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAazD"}
@@ -43,6 +43,17 @@ export function headUpdate(entityId, first, last, ttl) {
43
43
  values,
44
44
  };
45
45
  }
46
+ /** The condition of a fence on a stream with no head: it still has none. */
47
+ export const FENCE_ABSENT_CONDITION = 'attribute_not_exists(head)';
48
+ /** The condition of a fence on a stream with a head: it still equals the one observed. */
49
+ export const FENCE_CONDITION = 'head = :head';
50
+ /** The `ConditionCheck` a transaction fences a stream it read at `head` with. */
51
+ export function headFence(entityId, head) {
52
+ const check = { entityId, updateExpression: null, names: [] };
53
+ return head === 0n
54
+ ? { ...check, conditionExpression: FENCE_ABSENT_CONDITION, values: [] }
55
+ : { ...check, conditionExpression: FENCE_CONDITION, values: [[':head', head]] };
56
+ }
46
57
  /**
47
58
  * An action's size in the commit budget, by the rule for any update, delete or condition check:
48
59
  * its key attributes plus its expression strings, name placeholders (the placeholder and the
@@ -1 +1 @@
1
- {"version":3,"file":"head.js","sourceRoot":"","sources":["../../src/dynamodb/head.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,4FAA4F;AAC5F,wFAAwF;AAExF,OAAO,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAA;AAChD,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAA;AACrC,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAC,MAAM,WAAW,CAAA;AAEjD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAA;AAE7C,iGAAiG;AACjG,MAAM,CAAC,MAAM,oBAAoB,GAAG,6BAA6B,CAAA;AAEjE,0FAA0F;AAC1F,MAAM,CAAC,MAAM,qBAAqB,GAAG,4BAA4B,CAAA;AAEjE,gGAAgG;AAChG,MAAM,CAAC,MAAM,qBAAqB,GAAG,cAAc,CAAA;AAEnD,oFAAoF;AACpF,MAAM,CAAC,MAAM,8BAA8B,GACzC,6DAA6D,CAAA;AAc/D;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,QAAgB,EAChB,KAAa,EACb,IAAY,EACZ,GAAY;IAEZ,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE,CAAA;IAC1B,MAAM,MAAM,GAAuB,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;IACpD,MAAM,KAAK,GAAuB,EAAE,CAAA;IAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAA;IACpC,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;QAC3B,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,IAAI,mBAAmB,GAAG,qBAAqB,CAAA;IAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,mBAAmB;YACjB,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,8BAA8B,CAAA;IAC9E,CAAC;IAED,OAAO;QACL,QAAQ;QACR,gBAAgB,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB;QACxE,mBAAmB;QACnB,KAAK;QACL,MAAM;KACP,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAkB;IAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAC,EAAE,EAAE,EAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAC,EAAE,EAAE,EAAE,EAAC,CAAC,EAAE,aAAa,CAAC,QAAQ,EAAE,EAAC,EAAC,CAAC,CAAA;IACnF,IAAI,IAAI,GACN,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAE1F,KAAK,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAC/C,IAAI,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC;IACD,KAAK,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClD,IAAI,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAA;IAC5D,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"head.js","sourceRoot":"","sources":["../../src/dynamodb/head.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@ export { type ConditionCheckAction, type DeleteAction, type DynamoClient, type E
3
3
  export { FEATURES_PK, REBUILD_LOCK_PK, manifestFromItem, markerItem } from './marker.js';
4
4
  export { DynamoRepository, type DynamoRepositoryOptions } from './repository.js';
5
5
  export { DYNAMODB_BACKEND, transactItemSize, viewProjector } from './views.js';
6
- export { type CommitTtl, type SnapshotTtl, commitTransaction, snapshotTransaction, } from './requests.js';
6
+ export { type CommitTtl, type SnapshotTtl, commitTransaction, snapshotTransaction, transactionItems, } from './requests.js';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dynamodb/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,IAAI,EACT,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,QAAQ,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAC,MAAM,aAAa,CAAA;AACtF,OAAO,EAAC,gBAAgB,EAAE,KAAK,uBAAuB,EAAC,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,YAAY,CAAA;AAC5E,OAAO,EACL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dynamodb/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,IAAI,EACT,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,QAAQ,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAC,MAAM,aAAa,CAAA;AACtF,OAAO,EAAC,gBAAgB,EAAE,KAAK,uBAAuB,EAAC,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,YAAY,CAAA;AAC5E,OAAO,EACL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,eAAe,CAAA"}
@@ -5,5 +5,5 @@ export {} from './client.js';
5
5
  export { FEATURES_PK, REBUILD_LOCK_PK, manifestFromItem, markerItem } from './marker.js';
6
6
  export { DynamoRepository } from './repository.js';
7
7
  export { DYNAMODB_BACKEND, transactItemSize, viewProjector } from './views.js';
8
- export { commitTransaction, snapshotTransaction, } from './requests.js';
8
+ export { commitTransaction, snapshotTransaction, transactionItems, } from './requests.js';
9
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dynamodb/index.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,+FAA+F;AAE/F,OAAO,EAGL,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,QAAQ,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EAcN,MAAM,aAAa,CAAA;AACpB,OAAO,EAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAC,MAAM,aAAa,CAAA;AACtF,OAAO,EAAC,gBAAgB,EAA+B,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,YAAY,CAAA;AAC5E,OAAO,EAGL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dynamodb/index.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,+FAA+F;AAE/F,OAAO,EAGL,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,QAAQ,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EAcN,MAAM,aAAa,CAAA;AACpB,OAAO,EAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAC,MAAM,aAAa,CAAA;AACtF,OAAO,EAAC,gBAAgB,EAA+B,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,YAAY,CAAA;AAC5E,OAAO,EAGL,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,eAAe,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import type { SerializedEvent, SerializedSnapshot } from '../event.js';
2
- import { type CallOptions, type Commit, type Repository, type StoreInitializer } from '../repository.js';
2
+ import { type CallOptions, type Commit, type StoreInitializer, type TransactionCommit, type TransactionalRepository } from '../repository.js';
3
3
  import type { DynamoClient } from './client.js';
4
4
  /** How a {@link DynamoRepository} reads and initializes its store. */
5
5
  export interface DynamoRepositoryOptions {
@@ -39,7 +39,7 @@ export interface DynamoRepositoryOptions {
39
39
  * declares a feature, the next write fails, validates the manifest again, and either refuses an
40
40
  * unsupported feature or fails once with a retryable {@link FeatureManifestChangedError}.
41
41
  */
42
- export declare class DynamoRepository implements Repository, StoreInitializer {
42
+ export declare class DynamoRepository implements TransactionalRepository, StoreInitializer {
43
43
  #private;
44
44
  constructor(client: DynamoClient, eventsTable: string, options?: DynamoRepositoryOptions);
45
45
  /** The events table this repository writes. */
@@ -51,6 +51,13 @@ export declare class DynamoRepository implements Repository, StoreInitializer {
51
51
  */
52
52
  initialize(options?: CallOptions): Promise<boolean>;
53
53
  commit(commit: Commit, options?: CallOptions): Promise<void>;
54
+ /**
55
+ * Commits every stream and checks every fence in one `TransactWriteItems` call: the control
56
+ * checks, the projector operations, each written stream's actions, then a check on each fenced
57
+ * stream's head. A fence on a type this repository retains is refused before any request, and
58
+ * one on a type the store's manifest retains after the marker's validation.
59
+ */
60
+ commitTransaction(transaction: TransactionCommit, options?: CallOptions): Promise<void>;
54
61
  events(entityId: string, options?: CallOptions): Promise<SerializedEvent[]>;
55
62
  eventsAfter(entityId: string, after: bigint, options?: CallOptions): Promise<SerializedEvent[]>;
56
63
  latest(entityId: string, n: number, options?: CallOptions): Promise<SerializedEvent[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/dynamodb/repository.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,aAAa,CAAA;AASpE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,gBAAgB,EAMtB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAC,YAAY,EAAqC,MAAM,aAAa,CAAA;AAsBjF,sEAAsE;AACtE,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1E;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,MAAM,CAAA;CACrB;AAoBD;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,YAAW,UAAU,EAAE,gBAAgB;;IAgBnE,YAAY,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,EAO3F;IAED,+CAA+C;IAC/C,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;;OAIG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBxD;IAEK,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BjE;IAEK,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAEhF;IAEK,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,EAAE,CAAC,CAa5B;IAEK,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAmB3F;IAEK,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAI1F;IAEK,WAAW,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAgEvF;IAEK,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA+C5F;CAukBF"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/dynamodb/repository.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,aAAa,CAAA;AASpE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,MAAM,EAEX,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAS7B,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAC,YAAY,EAAqC,MAAM,aAAa,CAAA;AAwBjF,sEAAsE;AACtE,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1E;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,MAAM,CAAA;CACrB;AAoBD;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,YAAW,uBAAuB,EAAE,gBAAgB;;IAgBhF,YAAY,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,EAO3F;IAED,+CAA+C;IAC/C,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;;OAIG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBxD;IAEK,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjE;IAED;;;;;OAKG;IACG,iBAAiB,CAAC,WAAW,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAM5F;IA4CK,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAEhF;IAEK,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,EAAE,CAAC,CAa5B;IAEK,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAmB3F;IAEK,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAI1F;IAEK,WAAW,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAsEvF;IAEK,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA+C5F;CAunBF"}
@@ -8,14 +8,14 @@
8
8
  // Pages, retries and the probe's reads each depend on the call before them, so they await in loops
9
9
  // on purpose.
10
10
  /* oxlint-disable no-await-in-loop */
11
- import { CompactionUncoveredError, ConflictError, EvtError, FeatureManifestChangedError, HistoryDependentProjectionError, RebuildInProgressError, SequenceGapError, StoreNotInitializedError, StreamHeadDriftError, StreamHeadsNotMigratedError, TransientError, } from '../errors.js';
11
+ import { CompactionUncoveredError, ConflictError, EvtError, FeatureManifestChangedError, FenceConflictError, HistoryDependentProjectionError, RebuildInProgressError, SequenceGapError, StoreNotInitializedError, StreamHeadDriftError, StreamHeadsNotMigratedError, TransientError, } from '../errors.js';
12
12
  import { STREAM_HEADS_FEATURE, STREAM_HEADS_VERSION, checkSupported, declaresStreamHeads, } from '../features.js';
13
13
  import { int64Argument } from '../fields.js';
14
- import { checkBudget, checkNotReserved, commitSizes, isReserved, validateCommit, } from '../repository.js';
14
+ import { checkBudget, checkFenceRetention, checkNotReserved, isReserved, normalizeTransaction, rankFailures, transactionSizes, validateCommit, } from '../repository.js';
15
15
  import { HEAD_SORT_KEY, eventFromItem, expiry, headFromItem, snapshotFromItem, sortKey, ttlFromItem, } from './item.js';
16
16
  import { FEATURES_PK, manifestFromItem, markerItem } from './marker.js';
17
17
  import { DYNAMODB_BACKEND, transactItemSize } from './views.js';
18
- import { commitTransaction, controlKey, headKey, projectorItems, snapshotTransaction, } from './requests.js';
18
+ import { controlKey, headKey, projectorItems, buildTransaction, snapshotTransaction, } from './requests.js';
19
19
  // A declaration is a read-modify-write; racing declarations retry this many times.
20
20
  const MAX_DECLARE_ATTEMPTS = 8;
21
21
  // Each page of a scan that only has to find one item.
@@ -95,27 +95,56 @@ export class DynamoRepository {
95
95
  options?.signal?.throwIfAborted();
96
96
  validateCommit(commit);
97
97
  checkNotReserved(commit.entityId);
98
- if (commit.events.length === 0) {
99
- return;
98
+ if (commit.events.length > 0) {
99
+ await this.#write(normalizeTransaction({ streams: [commit] }), options);
100
100
  }
101
- // One `ttl` for the whole commit, so its head's is never below one of its own items.
102
- const entityType = commit.events[0].entityType;
103
- const ttl = this.#ttlFor(entityType);
101
+ }
102
+ /**
103
+ * Commits every stream and checks every fence in one `TransactWriteItems` call: the control
104
+ * checks, the projector operations, each written stream's actions, then a check on each fenced
105
+ * stream's head. A fence on a type this repository retains is refused before any request, and
106
+ * one on a type the store's manifest retains after the marker's validation.
107
+ */
108
+ async commitTransaction(transaction, options) {
109
+ options?.signal?.throwIfAborted();
110
+ const normalized = normalizeTransaction(transaction);
111
+ if (normalized.streams.length > 0 || normalized.fences.length > 0) {
112
+ await this.#write(normalized, options);
113
+ }
114
+ }
115
+ async #write(transaction, options) {
116
+ // One `ttl` per entity type for the whole transaction, so a stream's head's is never below one
117
+ // of its own items.
118
+ const ttls = new Map();
119
+ const ttlFor = (entityType) => {
120
+ if (!ttls.has(entityType)) {
121
+ ttls.set(entityType, this.#ttlFor(entityType));
122
+ }
123
+ return ttls.get(entityType);
124
+ };
104
125
  // Every backend budgets a commit the same way, so an oversized one fails before any request.
105
126
  // The projector operations are sized from the actions this repository sends, which refuses a
106
127
  // group for another backend here too.
107
- const sizes = projectorItems(commit).map(transactItemSize);
108
- const group = { backend: DYNAMODB_BACKEND, operations: sizes, sizes };
109
- const budgeted = { ...commit, projections: [group] };
110
- checkBudget(commitSizes(budgeted, (type) => (type === entityType ? ttl : undefined)));
128
+ const sizes = projectorItems(transaction.projections).map(transactItemSize);
129
+ const projections = [{ backend: DYNAMODB_BACKEND, operations: sizes, sizes }];
130
+ checkBudget(transactionSizes({ ...transaction, projections }, ttlFor));
131
+ // A fence on a type this repository retains needs no request to refuse.
132
+ checkFenceRetention(transaction, (entityType) => this.#retention.has(entityType));
111
133
  const request = requestOptions(options);
112
134
  const version = await this.#markerVersion(request);
113
- const items = commitTransaction(this.#table, commit, version, this.#commitTtl(commit, ttl));
135
+ if (transaction.fences.length > 0) {
136
+ // The store's manifest may retain a type this repository doesn't. The marker check holds it
137
+ // at the version read here, or fails the transaction.
138
+ const manifest = await this.#readManifest(request);
139
+ const retention = manifest?.retention ?? [];
140
+ checkFenceRetention(transaction, (entityType) => retention.includes(entityType));
141
+ }
142
+ const { items, layout } = buildTransaction(this.#table, transaction, version, (commit) => this.#commitTtl(commit, ttlFor(commit.events[0].entityType)));
114
143
  try {
115
144
  await this.#client.transactWriteItems({ TransactItems: items }, request);
116
145
  }
117
146
  catch (error) {
118
- throw await this.#classifyCommit(commit, error, request);
147
+ throw await this.#classifyCommit(layout, error, request);
119
148
  }
120
149
  }
121
150
  async events(entityId, options) {
@@ -182,6 +211,9 @@ export class DynamoRepository {
182
211
  if (codes?.some((code) => THROTTLED.has(code))) {
183
212
  throw new TransientError('the snapshot write was throttled', { cause: error });
184
213
  }
214
+ if (codes?.includes('TransactionConflict')) {
215
+ throw new TransientError(`transaction conflict on ${snapshot.entityId}: another writer was committing at the same time`, { cause: error });
216
+ }
185
217
  throw error;
186
218
  }
187
219
  // The head guard failed. A refreshing guard can fail on its ttl clause alone, when another
@@ -363,15 +395,22 @@ export class DynamoRepository {
363
395
  }
364
396
  return new FeatureManifestChangedError({ cause });
365
397
  }
366
- async #classifyCommit(commit, error, request) {
398
+ // Maps a cancelled transaction to the error it reports. The control checks outrank everything.
399
+ // Then every failed stream and fence is classified, and the ranking reports the first drift, else
400
+ // the first gap, else the first other failure, in transaction order.
401
+ async #classifyCommit(layout, error, request) {
367
402
  const codes = cancellationCodes(error);
368
403
  if (codes === null) {
369
404
  return error;
370
405
  }
371
406
  const failed = codes.indexOf(CONDITION_FAILED);
372
407
  if (failed === -1) {
373
- if (codes.includes('TransactionConflict')) {
374
- return new ConflictError(commit.entityId, 'transaction conflict: another writer was committing at the same time');
408
+ // Another transaction was writing one of the items, perhaps one this commit never changes
409
+ // (a control check): nothing was written and nothing is known to be stale, so it is
410
+ // transient, like throttling, and never a conflict, as in Go and Rust.
411
+ const colliding = codes.indexOf('TransactionConflict');
412
+ if (colliding !== -1) {
413
+ return new TransientError(`transaction conflict on ${entityAt(layout, colliding)}: another writer was committing at the same time`, { cause: error });
375
414
  }
376
415
  if (codes.some((code) => THROTTLED.has(code))) {
377
416
  return new TransientError('the commit was throttled', { cause: error });
@@ -385,16 +424,42 @@ export class DynamoRepository {
385
424
  if (codes[1] === CONDITION_FAILED) {
386
425
  return new RebuildInProgressError();
387
426
  }
388
- // The projector operations, then the stream's head update, its event puts and its snapshot
389
- // put.
390
- const projected = projectorItems(commit).length;
391
- const head = 2 + projected;
392
- const eventsEnd = head + 1 + commit.events.length;
393
- const eventFailed = codes.slice(head + 1, eventsEnd).includes(CONDITION_FAILED);
427
+ const failures = [];
428
+ for (const stream of layout.streams) {
429
+ const failure = await this.#streamFailure(stream, codes, request);
430
+ if (failure !== null) {
431
+ failures.push(failure);
432
+ }
433
+ }
434
+ for (const { index, fence } of layout.fences) {
435
+ if (codes[index] !== CONDITION_FAILED) {
436
+ continue;
437
+ }
438
+ const verdict = await this.#probe(fence.entityId, false, request);
439
+ failures.push(verdict.drift ?? new FenceConflictError(fence.entityId, fence.head, fence.provenance));
440
+ }
441
+ const ranked = rankFailures(failures);
442
+ if (ranked !== undefined) {
443
+ return ranked;
444
+ }
445
+ // Only a projector operation's condition failed: its own error, as Go reports it.
446
+ if (failed < layout.projectorEnd) {
447
+ return error;
448
+ }
449
+ return new ConflictError(entityAt(layout, failed), 'conditional check failed: the sequence or snapshot changed since it was read');
450
+ }
451
+ // What a written stream contributes to a failed transaction, or null when none of its actions
452
+ // failed. A failed head update is classified by the probe. A head update that passed while an
453
+ // event put failed is an event above the head, unless retention explains it. A failed snapshot
454
+ // put alone is an ordinary conflict.
455
+ async #streamFailure(stream, codes, request) {
456
+ const { commit } = stream;
394
457
  const { entityId } = commit;
395
458
  const first = commit.events[0].sequence;
396
459
  const retained = this.#retention.has(commit.events[0].entityType);
397
- if (codes[head] === CONDITION_FAILED) {
460
+ const eventFailed = codes.slice(stream.head + 1, stream.eventsEnd).includes(CONDITION_FAILED);
461
+ const snapshotFailed = stream.snapshot !== null && codes[stream.snapshot] === CONDITION_FAILED;
462
+ if (codes[stream.head] === CONDITION_FAILED) {
398
463
  const verdict = await this.#probe(entityId, retained, request);
399
464
  if (verdict.drift) {
400
465
  return verdict.drift;
@@ -402,24 +467,21 @@ export class DynamoRepository {
402
467
  if (verdict.healthy && first > 1n && verdict.stored < first - 1n) {
403
468
  return new SequenceGapError(entityId, verdict.stored, first);
404
469
  }
470
+ return conflict(entityId);
405
471
  }
406
- else if (codes[head] === 'None' && eventFailed) {
407
- // The head update passed and an event put failed: an event sits above the head. With
408
- // retention, TTL can delete the head before an expired event, so a create passes its head
409
- // condition and fails on the leftover item: a conflict until TTL deletes the rest.
410
- // The probe already read the remaining items when it found the head item absent below the
411
- // head its log derives; read them only if it didn't.
472
+ if (eventFailed && codes[stream.head] === 'None') {
473
+ // With retention, TTL can delete the head before an expired event, so a create passes its
474
+ // head condition and fails on the leftover item: a conflict until TTL deletes the rest. The
475
+ // probe already read the remaining items when it found the head item absent below the head
476
+ // its log derives; read them only if it didn't.
412
477
  const verdict = await this.#probe(entityId, retained, request);
413
478
  const expired = retained && (verdict.expired ?? (await this.#remainingItemsExpired(entityId, request)));
414
479
  if (!expired) {
415
480
  return verdict.drift ?? drift(entityId, verdict.head, verdict.derived);
416
481
  }
482
+ return conflict(entityId);
417
483
  }
418
- // Only a projector operation's condition failed: its own error, as Go reports it.
419
- if (failed < head && !codes.slice(head).includes(CONDITION_FAILED)) {
420
- return error;
421
- }
422
- return new ConflictError(entityId, 'conditional check failed: the sequence or snapshot changed since it was read');
484
+ return eventFailed || snapshotFailed ? conflict(entityId) : null;
423
485
  }
424
486
  // Classifies a stream whose head update failed, as the failure-path probe does: a stored head
425
487
  // below the head its log derives is drift, an equal one is healthy, and one above it is either a
@@ -695,6 +757,23 @@ export class DynamoRepository {
695
757
  const CONDITION_FAILED = 'ConditionalCheckFailed';
696
758
  // The cancellation reasons of a transaction DynamoDB throttled, which Go and Rust retry too.
697
759
  const THROTTLED = new Set(['ThrottlingError', 'ProvisionedThroughputExceeded']);
760
+ function conflict(entityId) {
761
+ return new ConflictError(entityId, 'conditional check failed: the sequence or snapshot changed since it was read');
762
+ }
763
+ // The stream an action of a transaction belongs to, for a failure no stream check explains: the
764
+ // written or fenced stream at that index, or else the transaction's first.
765
+ function entityAt(layout, index) {
766
+ for (const stream of layout.streams) {
767
+ if (index >= stream.head && (index < stream.eventsEnd || index === stream.snapshot)) {
768
+ return stream.commit.entityId;
769
+ }
770
+ }
771
+ const fenced = layout.fences.find((each) => each.index === index);
772
+ if (fenced !== undefined) {
773
+ return fenced.fence.entityId;
774
+ }
775
+ return layout.streams[0]?.commit.entityId ?? layout.fences[0]?.fence.entityId ?? '';
776
+ }
698
777
  function drift(entityId, head, derived) {
699
778
  return new StreamHeadDriftError(entityId, head, derived);
700
779
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/dynamodb/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/dynamodb/repository.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { SerializedSnapshot } from '../event.js';
2
- import type { Commit } from '../repository.js';
2
+ import type { Commit, NormalizedTransaction, ProjectorGroup, ReadFence } from '../repository.js';
3
3
  import type { TransactItem } from './client.js';
4
4
  import { type Item } from './item.js';
5
5
  /** The marker check of a writer that validated the manifest at version `:v`. */
@@ -53,16 +53,47 @@ export interface SnapshotTtl {
53
53
  /**
54
54
  * The actions of a commit with at least one event, in order, by a writer that validated the
55
55
  * feature manifest at `markerVersion`. `ttl` is given only for a stream with retention. A projector
56
- * group for any backend but DynamoDB is refused. Exported for the compatibility fixtures: its
57
- * signature changes when commits span streams.
56
+ * group for any backend but DynamoDB is refused. Exported for the compatibility fixtures.
58
57
  */
59
58
  export declare function commitTransaction(table: string, commit: Commit, markerVersion: bigint, ttl?: CommitTtl): TransactItem[];
59
+ /** Where each stream's and fence's actions sit in a transaction, to classify a cancellation. */
60
+ export interface TransactionLayout {
61
+ /** The index after the control checks and the projector operations. */
62
+ readonly projectorEnd: number;
63
+ readonly streams: readonly StreamLayout[];
64
+ readonly fences: readonly {
65
+ readonly index: number;
66
+ readonly fence: ReadFence;
67
+ }[];
68
+ }
69
+ /** A written stream's actions in a transaction. */
70
+ export interface StreamLayout {
71
+ readonly commit: Commit;
72
+ /** The head update's index. Its event puts follow it. */
73
+ readonly head: number;
74
+ /** The index after its last event put. */
75
+ readonly eventsEnd: number;
76
+ /** The snapshot put's index, when it writes one. */
77
+ readonly snapshot: number | null;
78
+ }
79
+ /**
80
+ * The actions of a normalized transaction that writes or fences at least one stream, in order:
81
+ * the control checks, the projector operations in declaration order, every written stream's head
82
+ * update, event puts and snapshot put, then a check on every fenced stream's head. `ttl` gives a
83
+ * written stream's `ttl`s when it has retention. Exported for the compatibility fixtures.
84
+ */
85
+ export declare function transactionItems(table: string, transaction: NormalizedTransaction, markerVersion: bigint, ttl: (commit: Commit) => CommitTtl | undefined): TransactItem[];
86
+ /** {@link transactionItems}, with where each stream's and fence's actions sit. */
87
+ export declare function buildTransaction(table: string, transaction: NormalizedTransaction, markerVersion: bigint, ttl: (commit: Commit) => CommitTtl | undefined): {
88
+ items: TransactItem[];
89
+ layout: TransactionLayout;
90
+ };
60
91
  /**
61
92
  * The actions of a snapshot written outside a commit: the marker check, the head guard, and the
62
93
  * put, which never lowers the stored snapshot. It carries no rebuild-lock check. `ttl` is given
63
94
  * only for a stream with retention. Exported for the compatibility fixtures.
64
95
  */
65
96
  export declare function snapshotTransaction(table: string, snapshot: SerializedSnapshot, markerVersion: bigint, ttl?: SnapshotTtl): TransactItem[];
66
- /** The DynamoDB actions of a commit's projector groups, in order. */
67
- export declare function projectorItems(commit: Commit): TransactItem[];
97
+ /** The DynamoDB actions of projector groups, in order. */
98
+ export declare function projectorItems(groups: readonly ProjectorGroup[]): TransactItem[];
68
99
  //# sourceMappingURL=requests.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../src/dynamodb/requests.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAkB,kBAAkB,EAAC,MAAM,aAAa,CAAA;AAGpE,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAA;AAE7C,OAAO,EAAgB,KAAK,IAAI,EAA6C,MAAM,WAAW,CAAA;AAI9F,gFAAgF;AAChF,eAAO,MAAM,sBAAsB,6CAA6C,CAAA;AAEhF,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,6BAA6B,CAAA;AAEhE,0DAA0D;AAC1D,eAAO,MAAM,mBAAmB,6BAA6B,CAAA;AAE7D,8DAA8D;AAC9D,eAAO,MAAM,wBAAwB,8BAA8B,CAAA;AAEnE,uFAAuF;AACvF,eAAO,MAAM,uBAAuB,eAAe,CAAA;AAEnD,mEAAmE;AACnE,eAAO,MAAM,wBAAwB,iBAAiB,CAAA;AAEtD,0FAA0F;AAC1F,eAAO,MAAM,8BAA8B,+CAA+C,CAAA;AAE1F,kGAAkG;AAClG,eAAO,MAAM,8BAA8B,kBAAkB,CAAA;AAE7D,kGAAkG;AAClG,eAAO,MAAM,iCAAiC,gEACiB,CAAA;AAE/D,oFAAoF;AACpF,eAAO,MAAM,wBAAwB,uDAAuD,CAAA;AAE5F,2DAA2D;AAC3D,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,uCAAuC;AACvC,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CASxE;AAED,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAQ5D;AAED,0EAA0E;AAC1E,MAAM,WAAW,SAAS;IACxB,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,GAAG,CAAC,EAAE,SAAS,GACd,YAAY,EAAE,CA4BhB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,kBAAkB,EAC5B,aAAa,EAAE,MAAM,EACrB,GAAG,CAAC,EAAE,WAAW,GAChB,YAAY,EAAE,CAehB;AAuCD,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAa7D"}
1
+ {"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../src/dynamodb/requests.ts"],"names":[],"mappings":"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"}