@optimystic/db-core 0.5.1 → 0.6.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 (97) hide show
  1. package/dist/src/btree/btree.d.ts +2 -0
  2. package/dist/src/btree/btree.d.ts.map +1 -1
  3. package/dist/src/btree/btree.js +72 -52
  4. package/dist/src/btree/btree.js.map +1 -1
  5. package/dist/src/cluster/structs.d.ts +13 -0
  6. package/dist/src/cluster/structs.d.ts.map +1 -1
  7. package/dist/src/collection/collection.d.ts +3 -0
  8. package/dist/src/collection/collection.d.ts.map +1 -1
  9. package/dist/src/collection/collection.js +6 -0
  10. package/dist/src/collection/collection.js.map +1 -1
  11. package/dist/src/index.d.ts +1 -0
  12. package/dist/src/index.d.ts.map +1 -1
  13. package/dist/src/index.js +1 -0
  14. package/dist/src/index.js.map +1 -1
  15. package/dist/src/log/log.js +1 -1
  16. package/dist/src/log/log.js.map +1 -1
  17. package/dist/src/logger.d.ts +4 -0
  18. package/dist/src/logger.d.ts.map +1 -0
  19. package/dist/src/logger.js +8 -0
  20. package/dist/src/logger.js.map +1 -0
  21. package/dist/src/transaction/actions-engine.d.ts +1 -13
  22. package/dist/src/transaction/actions-engine.d.ts.map +1 -1
  23. package/dist/src/transaction/actions-engine.js +0 -7
  24. package/dist/src/transaction/actions-engine.js.map +1 -1
  25. package/dist/src/transaction/coordinator.d.ts +9 -1
  26. package/dist/src/transaction/coordinator.d.ts.map +1 -1
  27. package/dist/src/transaction/coordinator.js +77 -11
  28. package/dist/src/transaction/coordinator.js.map +1 -1
  29. package/dist/src/transaction/index.d.ts +4 -5
  30. package/dist/src/transaction/index.d.ts.map +1 -1
  31. package/dist/src/transaction/index.js +2 -2
  32. package/dist/src/transaction/index.js.map +1 -1
  33. package/dist/src/transaction/session.d.ts +7 -3
  34. package/dist/src/transaction/session.d.ts.map +1 -1
  35. package/dist/src/transaction/session.js +23 -10
  36. package/dist/src/transaction/session.js.map +1 -1
  37. package/dist/src/transaction/transaction.d.ts +21 -3
  38. package/dist/src/transaction/transaction.d.ts.map +1 -1
  39. package/dist/src/transaction/transaction.js +21 -7
  40. package/dist/src/transaction/transaction.js.map +1 -1
  41. package/dist/src/transaction/validator.d.ts +9 -2
  42. package/dist/src/transaction/validator.d.ts.map +1 -1
  43. package/dist/src/transaction/validator.js +26 -6
  44. package/dist/src/transaction/validator.js.map +1 -1
  45. package/dist/src/transactor/network-transactor.d.ts.map +1 -1
  46. package/dist/src/transactor/network-transactor.js +84 -9
  47. package/dist/src/transactor/network-transactor.js.map +1 -1
  48. package/dist/src/transactor/transactor-source.d.ts +4 -0
  49. package/dist/src/transactor/transactor-source.d.ts.map +1 -1
  50. package/dist/src/transactor/transactor-source.js +25 -9
  51. package/dist/src/transactor/transactor-source.js.map +1 -1
  52. package/dist/src/transform/atomic-proxy.d.ts +26 -0
  53. package/dist/src/transform/atomic-proxy.d.ts.map +1 -0
  54. package/dist/src/transform/atomic-proxy.js +47 -0
  55. package/dist/src/transform/atomic-proxy.js.map +1 -0
  56. package/dist/src/transform/cache-source.d.ts +3 -2
  57. package/dist/src/transform/cache-source.d.ts.map +1 -1
  58. package/dist/src/transform/cache-source.js +15 -3
  59. package/dist/src/transform/cache-source.js.map +1 -1
  60. package/dist/src/transform/index.d.ts +1 -0
  61. package/dist/src/transform/index.d.ts.map +1 -1
  62. package/dist/src/transform/index.js +1 -0
  63. package/dist/src/transform/index.js.map +1 -1
  64. package/dist/src/utility/batch-coordinator.d.ts.map +1 -1
  65. package/dist/src/utility/batch-coordinator.js +6 -1
  66. package/dist/src/utility/batch-coordinator.js.map +1 -1
  67. package/dist/src/utility/hash-string.d.ts +3 -6
  68. package/dist/src/utility/hash-string.d.ts.map +1 -1
  69. package/dist/src/utility/hash-string.js +8 -11
  70. package/dist/src/utility/hash-string.js.map +1 -1
  71. package/dist/src/utility/lru-map.d.ts +18 -0
  72. package/dist/src/utility/lru-map.d.ts.map +1 -0
  73. package/dist/src/utility/lru-map.js +52 -0
  74. package/dist/src/utility/lru-map.js.map +1 -0
  75. package/package.json +15 -8
  76. package/src/btree/btree.ts +71 -50
  77. package/src/cluster/structs.ts +11 -0
  78. package/src/collection/collection.ts +9 -0
  79. package/src/index.ts +1 -0
  80. package/src/log/log.ts +1 -1
  81. package/src/logger.ts +10 -0
  82. package/src/transaction/actions-engine.ts +0 -17
  83. package/src/transaction/coordinator.ts +87 -12
  84. package/src/transaction/index.ts +7 -6
  85. package/src/transaction/session.ts +34 -10
  86. package/src/transaction/transaction.ts +39 -10
  87. package/src/transaction/validator.ts +34 -7
  88. package/src/transactor/network-transactor.ts +92 -11
  89. package/src/transactor/transactor-source.ts +28 -9
  90. package/src/transform/atomic-proxy.ts +49 -0
  91. package/src/transform/cache-source.ts +18 -4
  92. package/src/transform/index.ts +1 -0
  93. package/src/utility/batch-coordinator.ts +7 -1
  94. package/src/utility/hash-string.ts +14 -17
  95. package/src/utility/lru-map.ts +55 -0
  96. package/dist/index.min.js +0 -9
  97. package/dist/index.min.js.map +0 -7
@@ -57,11 +57,4 @@ export class ActionsEngine {
57
57
  }
58
58
  }
59
59
  }
60
- /**
61
- * Helper to create an actions-based transaction statements array.
62
- * Each CollectionActions becomes a separate statement.
63
- */
64
- export function createActionsStatements(collections) {
65
- return collections.map(c => JSON.stringify(c));
66
- }
67
60
  //# sourceMappingURL=actions-engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions-engine.js","sourceRoot":"","sources":["../../../src/transaction/actions-engine.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEjD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,aAAa;IACL;IAApB,YAAoB,WAAmC;QAAnC,gBAAW,GAAX,WAAW,CAAwB;IAAG,CAAC;IAE3D,KAAK,CAAC,OAAO,CAAC,WAAwB;QACrC,IAAI,CAAC;YACJ,qDAAqD;YACrD,MAAM,UAAU,GAAwB,EAAE,CAAC;YAE3C,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;gBAChD,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAsB,CAAC;gBAErE,qBAAqB;gBACrB,IAAI,CAAC,iBAAiB,CAAC,YAAY,IAAI,OAAO,iBAAiB,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;oBAC3F,OAAO;wBACN,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,yCAAyC;qBAChD,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7E,OAAO;wBACN,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,iCAAiC,iBAAiB,CAAC,YAAY,mCAAmC;qBACzG,CAAC;gBACH,CAAC;gBAED,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAEnC,4DAA4D;gBAC5D,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;YAED,2CAA2C;YAC3C,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,UAAU;aACnB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aACjG,CAAC;QACH,CAAC;IACF,CAAC;CACD;AAUD;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAAgC;IACvE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"actions-engine.js","sourceRoot":"","sources":["../../../src/transaction/actions-engine.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEjD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,aAAa;IACL;IAApB,YAAoB,WAAmC;QAAnC,gBAAW,GAAX,WAAW,CAAwB;IAAG,CAAC;IAE3D,KAAK,CAAC,OAAO,CAAC,WAAwB;QACrC,IAAI,CAAC;YACJ,qDAAqD;YACrD,MAAM,UAAU,GAAwB,EAAE,CAAC;YAE3C,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;gBAChD,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAsB,CAAC;gBAErE,qBAAqB;gBACrB,IAAI,CAAC,iBAAiB,CAAC,YAAY,IAAI,OAAO,iBAAiB,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;oBAC3F,OAAO;wBACN,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,yCAAyC;qBAChD,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7E,OAAO;wBACN,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,iCAAiC,iBAAiB,CAAC,YAAY,mCAAmC;qBACzG,CAAC;gBACH,CAAC;gBAED,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAEnC,4DAA4D;gBAC5D,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;YAED,2CAA2C;YAC3C,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,UAAU;aACnB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aACjG,CAAC;QACH,CAAC;IACF,CAAC;CACD"}
@@ -1,5 +1,5 @@
1
1
  import type { ITransactor, CollectionId, Transforms } from "../index.js";
2
- import type { Transaction, ExecutionResult, ITransactionEngine, CollectionActions } from "./transaction.js";
2
+ import type { Transaction, ExecutionResult, ITransactionEngine, CollectionActions, ReadDependency } from "./transaction.js";
3
3
  import type { Collection } from "../collection/collection.js";
4
4
  import { TransactionContext } from "./context.js";
5
5
  /**
@@ -61,6 +61,14 @@ export declare class TransactionCoordinator {
61
61
  * cleaning up after validation or when starting a new transaction.
62
62
  */
63
63
  resetTransforms(): void;
64
+ /**
65
+ * Collect read dependencies from all participating collections.
66
+ */
67
+ getReadDependencies(): ReadDependency[];
68
+ /**
69
+ * Clear read dependencies from all collections.
70
+ */
71
+ clearReadDependencies(): void;
64
72
  /**
65
73
  * Compute hash of all operations in a transaction.
66
74
  * This hash is used for validation - validators re-execute the transaction
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/transaction/coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAW,YAAY,EAAE,UAAU,EAAiE,MAAM,aAAa,CAAC;AACjJ,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE5G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAalD;;;;;;;;;GASG;AACH,qBAAa,sBAAsB;IAEjC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,UAAU,EAAE,WAAW,EACvB,WAAW,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAGjE;;;;;;;;;OASG;IACG,YAAY,CACjB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAgBhB;;;;;;;;OAQG;IACG,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoErD;;;;;;;OAOG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/C;;;;;;OAMG;IACH,aAAa,IAAI,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC;IAe9C;;;;;OAKG;IACH,eAAe,IAAI,IAAI;IAMvB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAKtB;;;;;;;;OAQG;IACG,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAoC9E;;;;;;;;;OASG;IACG,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAsE7F;;;;OAIG;YACW,wBAAwB;IAyDtC;;;;;;;OAOG;YACW,qBAAqB;IAuCnC;;;;;;;OAOG;YACW,WAAW;IAgCzB;;;;;;;OAOG;YACW,SAAS;IAmDvB;;OAEG;YACW,WAAW;IAgDzB;;OAEG;YACW,WAAW;CAsBzB"}
1
+ {"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/transaction/coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAW,YAAY,EAAE,UAAU,EAAiE,MAAM,aAAa,CAAC;AACjJ,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE5H,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAgBlD;;;;;;;;;GASG;AACH,qBAAa,sBAAsB;IAEjC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,UAAU,EAAE,WAAW,EACvB,WAAW,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAGjE;;;;;;;;;OASG;IACG,YAAY,CACjB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAgBhB;;;;;;;;OAQG;IACG,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAwErD;;;;;;;OAOG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/C;;;;;;OAMG;IACH,aAAa,IAAI,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC;IAe9C;;;;;OAKG;IACH,eAAe,IAAI,IAAI;IAMvB;;OAEG;IACH,mBAAmB,IAAI,cAAc,EAAE;IAQvC;;OAEG;IACH,qBAAqB,IAAI,IAAI;IAM7B;;;;OAIG;YACW,cAAc;IAK5B;;;;;;;;OAQG;IACG,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkC9E;;;;;;;;;OASG;IACG,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAwG7F;;;;OAIG;YACW,wBAAwB;IAyDtC;;;;;;;OAOG;YACW,qBAAqB;IAmDnC;;;;;;;OAOG;YACW,WAAW;IAgCzB;;;;;;;OAOG;YACW,SAAS;IAuDvB;;OAEG;YACW,WAAW;IAgDzB;;OAEG;YACW,WAAW;CAsBzB"}
@@ -1,6 +1,8 @@
1
- import { createActionsStatements } from "./actions-engine.js";
2
- import { createTransactionStamp, createTransactionId } from "./transaction.js";
1
+ import { ActionsEngine } from "./actions-engine.js";
2
+ import { createActionsStatements, createTransactionStamp, createTransactionId, isTransactionExpired } from "./transaction.js";
3
3
  import { Log, blockIdsForTransforms, hashString } from "../index.js";
4
+ import { createLogger } from "../logger.js";
5
+ const log = createLogger('trx:coordinator');
4
6
  /**
5
7
  * Coordinates multi-collection transactions.
6
8
  *
@@ -52,6 +54,9 @@ export class TransactionCoordinator {
52
54
  * @param transaction - The transaction to commit
53
55
  */
54
56
  async commit(transaction) {
57
+ if (isTransactionExpired(transaction.stamp)) {
58
+ throw new Error(`Transaction expired at ${transaction.stamp.expiration}`);
59
+ }
55
60
  // Collect transforms and determine critical blocks for each affected collection
56
61
  const collectionData = Array.from(this.collections.entries())
57
62
  .map(([collectionId, collection]) => ({
@@ -89,7 +94,7 @@ export class TransactionCoordinator {
89
94
  ...Object.entries(transforms.updates ?? {}).map(([blockId, operations]) => ({ type: 'update', collectionId, blockId, operations })),
90
95
  ...(transforms.deletes ?? []).map(blockId => ({ type: 'delete', collectionId, blockId }))
91
96
  ]);
92
- const operationsHash = this.hashOperations(allOperations);
97
+ const operationsHash = await this.hashOperations(allOperations);
93
98
  // Execute consensus phases (GATHER, PEND, COMMIT)
94
99
  const coordResult = await this.coordinateTransaction(transaction, operationsHash, collectionTransforms, criticalBlocks);
95
100
  if (!coordResult.success) {
@@ -145,14 +150,32 @@ export class TransactionCoordinator {
145
150
  collection.tracker.reset();
146
151
  }
147
152
  }
153
+ /**
154
+ * Collect read dependencies from all participating collections.
155
+ */
156
+ getReadDependencies() {
157
+ const reads = [];
158
+ for (const collection of this.collections.values()) {
159
+ reads.push(...collection.getReadDependencies());
160
+ }
161
+ return reads;
162
+ }
163
+ /**
164
+ * Clear read dependencies from all collections.
165
+ */
166
+ clearReadDependencies() {
167
+ for (const collection of this.collections.values()) {
168
+ collection.clearReadDependencies();
169
+ }
170
+ }
148
171
  /**
149
172
  * Compute hash of all operations in a transaction.
150
173
  * This hash is used for validation - validators re-execute the transaction
151
174
  * and compare their computed operations hash with this one.
152
175
  */
153
- hashOperations(operations) {
176
+ async hashOperations(operations) {
154
177
  const operationsData = JSON.stringify(operations);
155
- return `ops:${hashString(operationsData)}`;
178
+ return `ops:${await hashString(operationsData)}`;
156
179
  }
157
180
  /**
158
181
  * Commit a transaction context.
@@ -172,17 +195,15 @@ export class TransactionCoordinator {
172
195
  const statements = createActionsStatements(collectionActions);
173
196
  const reads = context.getReads();
174
197
  // Create stamp from context
175
- const stamp = createTransactionStamp('local', // TODO: Get from context or coordinator
198
+ const stamp = await createTransactionStamp('local', // TODO: Get from context or coordinator
176
199
  Date.now(), '', // TODO: Get from engine
177
200
  context.engine);
178
201
  const transaction = {
179
202
  stamp,
180
203
  statements,
181
204
  reads,
182
- id: createTransactionId(stamp.id, statements, reads)
205
+ id: await createTransactionId(stamp.id, statements, reads)
183
206
  };
184
- // Create ActionsEngine for execution (TransactionContext only supports actions)
185
- const { ActionsEngine } = await import('./actions-engine.js');
186
207
  const engine = new ActionsEngine(this);
187
208
  // Execute through standard path
188
209
  return await this.execute(transaction, engine);
@@ -198,17 +219,26 @@ export class TransactionCoordinator {
198
219
  * @returns Execution result with actions and results
199
220
  */
200
221
  async execute(transaction, engine) {
222
+ const trxId = transaction.id;
223
+ const t0 = Date.now();
224
+ if (isTransactionExpired(transaction.stamp)) {
225
+ return { success: false, error: `Transaction expired at ${transaction.stamp.expiration}` };
226
+ }
201
227
  // 1. Validate engine matches transaction
202
228
  // Note: We don't enforce this strictly since the engine is passed in explicitly
203
229
  // The caller is responsible for ensuring the correct engine is used
230
+ const tEngine = Date.now();
204
231
  const result = await engine.execute(transaction);
232
+ const engineMs = Date.now() - tEngine;
205
233
  if (!result.success) {
234
+ log('execute:done trxId=%s engine=%dms success=false total=%dms', trxId, engineMs, Date.now() - t0);
206
235
  return result;
207
236
  }
208
237
  if (!result.actions || result.actions.length === 0) {
209
238
  return { success: true }; // Nothing to do
210
239
  }
211
240
  // 2. Apply actions to collections and collect transforms
241
+ const tApply = Date.now();
212
242
  const collectionTransforms = new Map();
213
243
  const criticalBlocks = new Map();
214
244
  const actionResults = new Map();
@@ -228,13 +258,34 @@ export class TransactionCoordinator {
228
258
  ...Object.entries(transforms.updates ?? {}).map(([blockId, operations]) => ({ type: 'update', collectionId, blockId, operations })),
229
259
  ...(transforms.deletes ?? []).map(blockId => ({ type: 'delete', collectionId, blockId }))
230
260
  ]);
231
- const operationsHash = this.hashOperations(allOperations);
261
+ const operationsHash = await this.hashOperations(allOperations);
262
+ const applyMs = Date.now() - tApply;
232
263
  // 4. Coordinate (GATHER if multi-collection)
264
+ const tCoord = Date.now();
233
265
  const coordResult = await this.coordinateTransaction(transaction, operationsHash, collectionTransforms, criticalBlocks);
266
+ const coordMs = Date.now() - tCoord;
234
267
  if (!coordResult.success) {
268
+ log('execute:done trxId=%s engine=%dms apply=%dms coordinate=%dms success=false total=%dms', trxId, engineMs, applyMs, coordMs, Date.now() - t0);
235
269
  return coordResult;
236
270
  }
237
- // 4. Return results from actions
271
+ // 5. Update actionContext and reset trackers after successful commit
272
+ for (const collectionActions of result.actions) {
273
+ const collection = this.collections.get(collectionActions.collectionId);
274
+ if (collection) {
275
+ const newRev = (collection['source'].actionContext?.rev ?? 0) + 1;
276
+ const actionId = transaction.id;
277
+ collection['source'].actionContext = {
278
+ committed: [
279
+ ...(collection['source'].actionContext?.committed ?? []),
280
+ { actionId, rev: newRev }
281
+ ],
282
+ rev: newRev,
283
+ };
284
+ collection.tracker.reset();
285
+ }
286
+ }
287
+ // 6. Return results from actions
288
+ log('execute:done trxId=%s engine=%dms apply=%dms coordinate=%dms total=%dms', trxId, engineMs, applyMs, coordMs, Date.now() - t0);
238
289
  return {
239
290
  success: true,
240
291
  actions: result.actions,
@@ -289,23 +340,34 @@ export class TransactionCoordinator {
289
340
  * @param criticalBlocks - Map of collectionId to its log tail blockId
290
341
  */
291
342
  async coordinateTransaction(transaction, operationsHash, collectionTransforms, criticalBlocks) {
343
+ const trxId = transaction.id;
344
+ const t0 = Date.now();
292
345
  // 1. GATHER phase: collect critical cluster nominees (skip if single collection)
293
346
  const criticalBlockIds = Array.from(criticalBlocks.values());
347
+ const tGather = Date.now();
294
348
  const superclusterNominees = await this.gatherPhase(criticalBlockIds);
349
+ const gatherMs = Date.now() - tGather;
295
350
  // 2. PEND phase: distribute to all block clusters
351
+ const tPend = Date.now();
296
352
  const pendResult = await this.pendPhase(transaction, operationsHash, collectionTransforms, superclusterNominees);
353
+ const pendMs = Date.now() - tPend;
297
354
  if (!pendResult.success) {
355
+ log('trx:phases trxId=%s gather=%dms pend=%dms (failed) total=%dms', trxId, gatherMs, pendMs, Date.now() - t0);
298
356
  return pendResult;
299
357
  }
300
358
  // 3. COMMIT phase: commit to all critical blocks
359
+ const tCommit = Date.now();
301
360
  const commitResult = await this.commitPhase(transaction.id, criticalBlockIds, pendResult.pendedBlockIds);
361
+ const commitMs = Date.now() - tCommit;
302
362
  if (!commitResult.success) {
303
363
  // Cancel pending actions on failure
304
364
  await this.cancelPhase(transaction.id, collectionTransforms);
365
+ log('trx:phases trxId=%s gather=%dms pend=%dms commit=%dms (failed) total=%dms', trxId, gatherMs, pendMs, commitMs, Date.now() - t0);
305
366
  return commitResult;
306
367
  }
307
368
  // 4. PROPAGATE and CHECKPOINT phases are handled by clusters automatically
308
369
  // (as per user's note: "managed by each cluster, the client doesn't have to worry about them")
370
+ log('trx:phases trxId=%s gather=%dms pend=%dms commit=%dms total=%dms', trxId, gatherMs, pendMs, commitMs, Date.now() - t0);
309
371
  return { success: true };
310
372
  }
311
373
  /**
@@ -372,6 +434,10 @@ export class TransactionCoordinator {
372
434
  // Pend the transaction
373
435
  const pendResult = await this.transactor.pend(pendRequest);
374
436
  if (!pendResult.success) {
437
+ // Cancel any already-pended collections before returning
438
+ for (const [pendedCollectionId, pendedBlockIdList] of pendedBlockIds.entries()) {
439
+ await this.transactor.cancel({ actionId, blockIds: pendedBlockIdList });
440
+ }
375
441
  return {
376
442
  success: false,
377
443
  error: `Pend failed for collection ${collectionId}: ${pendResult.reason}`
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/transaction/coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/transaction/coordinator.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
- export type { Transaction, TransactionStamp, ReadDependency, TransactionRef, ITransactionEngine, ExecutionResult, CollectionActions, ValidationResult, ITransactionValidator } from './transaction.js';
2
- export { createTransactionStamp, createTransactionId } from './transaction.js';
3
- export { ActionsEngine, ACTIONS_ENGINE_ID, createActionsStatements } from './actions-engine.js';
4
- export type { ActionsStatement } from './actions-engine.js';
1
+ export type { Transaction, TransactionStamp, ReadDependency, TransactionRef, ITransactionEngine, ExecutionResult, CollectionActions, ValidationResult, ITransactionValidator, ActionsStatement } from './transaction.js';
2
+ export { createTransactionStamp, createTransactionId, createActionsStatements, DEFAULT_TRANSACTION_TTL_MS, isTransactionExpired } from './transaction.js';
3
+ export { ActionsEngine, ACTIONS_ENGINE_ID, } from './actions-engine.js';
5
4
  export { TransactionCoordinator } from './coordinator.js';
6
5
  export { TransactionContext } from './context.js';
7
6
  export { TransactionSession } from './session.js';
8
7
  export { TransactionValidator } from './validator.js';
9
- export type { EngineRegistration, ValidationCoordinatorFactory } from './validator.js';
8
+ export type { EngineRegistration, ValidationCoordinatorFactory, BlockStateProvider } from './validator.js';
10
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transaction/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACN,sBAAsB,EACtB,mBAAmB,EACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACN,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transaction/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACN,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,EACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACN,aAAa,EACb,iBAAiB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,5 +1,5 @@
1
- export { createTransactionStamp, createTransactionId } from './transaction.js';
2
- export { ActionsEngine, ACTIONS_ENGINE_ID, createActionsStatements } from './actions-engine.js';
1
+ export { createTransactionStamp, createTransactionId, createActionsStatements, DEFAULT_TRANSACTION_TTL_MS, isTransactionExpired } from './transaction.js';
2
+ export { ActionsEngine, ACTIONS_ENGINE_ID, } from './actions-engine.js';
3
3
  export { TransactionCoordinator } from './coordinator.js';
4
4
  export { TransactionContext } from './context.js';
5
5
  export { TransactionSession } from './session.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transaction/index.ts"],"names":[],"mappings":"AAYA,OAAO,EACN,sBAAsB,EACtB,mBAAmB,EACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACN,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transaction/index.ts"],"names":[],"mappings":"AAaA,OAAO,EACN,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,EACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACN,aAAa,EACb,iBAAiB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -12,7 +12,7 @@ import type { ExecutionResult, ITransactionEngine, TransactionStamp, CollectionA
12
12
  * - The Transaction is then committed through coordinator.commit() for PEND/COMMIT orchestration
13
13
  *
14
14
  * Usage:
15
- * const session = new TransactionSession(coordinator, engine);
15
+ * const session = await TransactionSession.create(coordinator, engine);
16
16
  * await session.execute('INSERT INTO users (id, name) VALUES (?, ?)', [1, 'Alice']);
17
17
  * await session.execute('SELECT * FROM orders WHERE user_id = ?', [1]);
18
18
  * const result = await session.commit();
@@ -26,8 +26,12 @@ export declare class TransactionSession {
26
26
  private readonly stamp;
27
27
  private committed;
28
28
  private rolledBack;
29
- constructor(coordinator: TransactionCoordinator, engine: ITransactionEngine, peerId?: string, // TODO: Get from coordinator or config
30
- schemaHash?: string);
29
+ private constructor();
30
+ /**
31
+ * Create a new TransactionSession.
32
+ * Uses async factory because stamp creation requires SHA-256 hashing.
33
+ */
34
+ static create(coordinator: TransactionCoordinator, engine: ITransactionEngine, peerId?: string, schemaHash?: string, ttlMs?: number): Promise<TransactionSession>;
31
35
  /**
32
36
  * Execute a statement.
33
37
  *
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/transaction/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAe,eAAe,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG9H;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,kBAAkB;IAO7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;gBAGT,WAAW,EAAE,sBAAsB,EACnC,MAAM,EAAE,kBAAkB,EAC3C,MAAM,GAAE,MAAgB,EAAE,uCAAuC;IACjE,UAAU,GAAE,MAAW;IAWxB;;;;;;;;;OASG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA2C9G;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;IAuBxC;;;;;;OAMG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAc/B;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,QAAQ,IAAI,gBAAgB;IAI5B;;OAEG;IACH,aAAa,IAAI,SAAS,MAAM,EAAE;IAIlC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,YAAY,IAAI,OAAO;CAGvB"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/transaction/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAe,eAAe,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG9H;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,kBAAkB;IAO7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO;IAQP;;;OAGG;WACU,MAAM,CAClB,WAAW,EAAE,sBAAsB,EACnC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,GAAE,MAAgB,EACxB,UAAU,GAAE,MAAW,EACvB,KAAK,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC;IAW9B;;;;;;;;;OASG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA2C9G;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;IAgCxC;;;;;;OAMG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAe/B;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,QAAQ,IAAI,gBAAgB;IAI5B;;OAEG;IACH,aAAa,IAAI,SAAS,MAAM,EAAE;IAIlC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,YAAY,IAAI,OAAO;CAGvB"}
@@ -1,4 +1,4 @@
1
- import { createTransactionStamp, createTransactionId } from "./transaction.js";
1
+ import { createTransactionStamp, createTransactionId, isTransactionExpired } from "./transaction.js";
2
2
  /**
3
3
  * TransactionSession manages incremental transaction building.
4
4
  *
@@ -11,7 +11,7 @@ import { createTransactionStamp, createTransactionId } from "./transaction.js";
11
11
  * - The Transaction is then committed through coordinator.commit() for PEND/COMMIT orchestration
12
12
  *
13
13
  * Usage:
14
- * const session = new TransactionSession(coordinator, engine);
14
+ * const session = await TransactionSession.create(coordinator, engine);
15
15
  * await session.execute('INSERT INTO users (id, name) VALUES (?, ?)', [1, 'Alice']);
16
16
  * await session.execute('SELECT * FROM orders WHERE user_id = ?', [1]);
17
17
  * const result = await session.commit();
@@ -25,14 +25,19 @@ export class TransactionSession {
25
25
  stamp;
26
26
  committed = false;
27
27
  rolledBack = false;
28
- constructor(coordinator, engine, peerId = 'local', // TODO: Get from coordinator or config
29
- schemaHash = '' // TODO: Get from engine
30
- ) {
28
+ constructor(coordinator, engine, stamp) {
31
29
  this.coordinator = coordinator;
32
30
  this.engine = engine;
33
- // Create stamp at BEGIN (stable throughout transaction)
34
- this.stamp = createTransactionStamp(peerId, Date.now(), schemaHash, 'unknown' // TODO: Get engine ID from engine
35
- );
31
+ this.stamp = stamp;
32
+ }
33
+ /**
34
+ * Create a new TransactionSession.
35
+ * Uses async factory because stamp creation requires SHA-256 hashing.
36
+ */
37
+ static async create(coordinator, engine, peerId = 'local', schemaHash = '', ttlMs) {
38
+ const stamp = await createTransactionStamp(peerId, Date.now(), schemaHash, 'unknown', // TODO: Get engine ID from engine
39
+ ttlMs);
40
+ return new TransactionSession(coordinator, engine, stamp);
36
41
  }
37
42
  /**
38
43
  * Execute a statement.
@@ -96,15 +101,22 @@ export class TransactionSession {
96
101
  if (this.rolledBack) {
97
102
  return { success: false, error: 'Transaction already rolled back' };
98
103
  }
104
+ if (isTransactionExpired(this.stamp)) {
105
+ return { success: false, error: `Transaction expired at ${this.stamp.expiration}` };
106
+ }
107
+ // Collect read dependencies from all participating collections
108
+ const reads = this.coordinator.getReadDependencies();
99
109
  // Create the complete transaction
100
110
  const transaction = {
101
111
  stamp: this.stamp,
102
112
  statements: this.statements,
103
- reads: [], // TODO: Track reads during statement execution
104
- id: createTransactionId(this.stamp.id, this.statements, [])
113
+ reads,
114
+ id: await createTransactionId(this.stamp.id, this.statements, reads)
105
115
  };
106
116
  // Commit through coordinator (which will orchestrate PEND/COMMIT)
107
117
  await this.coordinator.commit(transaction);
118
+ // Clear read dependencies after successful commit
119
+ this.coordinator.clearReadDependencies();
108
120
  this.committed = true;
109
121
  return { success: true };
110
122
  }
@@ -124,6 +136,7 @@ export class TransactionSession {
124
136
  }
125
137
  // Rollback through coordinator
126
138
  await this.coordinator.rollback(this.stamp.id);
139
+ this.coordinator.clearReadDependencies();
127
140
  this.rolledBack = true;
128
141
  this.statements.length = 0;
129
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/transaction/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/transaction/session.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,8 @@ export type TransactionStamp = {
15
15
  schemaHash: string;
16
16
  /** Which engine (e.g., 'quereus@0.5.3', 'actions@1.0.0') */
17
17
  engineId: string;
18
+ /** Absolute ms epoch after which transaction is invalid */
19
+ expiration: number;
18
20
  /** Hash of the stamp fields (computed) - stable identifier throughout transaction */
19
21
  id: string;
20
22
  };
@@ -54,16 +56,20 @@ export type ReadDependency = {
54
56
  * Just the transaction ID - full transaction can be looked up separately if needed.
55
57
  */
56
58
  export type TransactionRef = string;
59
+ /** Default transaction time-to-live in milliseconds (30 seconds). */
60
+ export declare const DEFAULT_TRANSACTION_TTL_MS = 30000;
61
+ /** Check whether a transaction stamp has expired. */
62
+ export declare function isTransactionExpired(stamp: TransactionStamp): boolean;
57
63
  /**
58
64
  * Create a transaction stamp with computed id.
59
- * The id is a hash of the stamp fields.
65
+ * The id is a hash of the stamp fields (including expiration).
60
66
  */
61
- export declare function createTransactionStamp(peerId: string, timestamp: number, schemaHash: string, engineId: string): TransactionStamp;
67
+ export declare function createTransactionStamp(peerId: string, timestamp: number, schemaHash: string, engineId: string, ttlMs?: number): Promise<TransactionStamp>;
62
68
  /**
63
69
  * Create a transaction id from stamp id, statements, and reads.
64
70
  * This is the final transaction identity used in logs.
65
71
  */
66
- export declare function createTransactionId(stampId: string, statements: string[], reads: ReadDependency[]): string;
72
+ export declare function createTransactionId(stampId: string, statements: string[], reads: ReadDependency[]): Promise<string>;
67
73
  /**
68
74
  * Transaction engine interface.
69
75
  * Pluggable engines implement this to process transaction statements.
@@ -108,6 +114,18 @@ export type CollectionActions = {
108
114
  /** Actions to apply to this collection */
109
115
  actions: unknown[];
110
116
  };
117
+ /**
118
+ * Helper to create an actions-based transaction statements array.
119
+ * Each CollectionActions becomes a separate JSON-encoded statement.
120
+ */
121
+ export declare function createActionsStatements(collections: CollectionActions[]): string[];
122
+ /**
123
+ * Statement format for the actions engine (array of CollectionActions).
124
+ * @deprecated Use CollectionActions[] directly
125
+ */
126
+ export type ActionsStatement = {
127
+ collections: CollectionActions[];
128
+ };
111
129
  /**
112
130
  * Result of transaction validation.
113
131
  */
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC9B,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IAEf,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAElB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IAEnB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IAEjB,qFAAqF;IACrF,EAAE,EAAE,MAAM,CAAC;CACX,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IACzB,iDAAiD;IACjD,KAAK,EAAE,gBAAgB,CAAC;IAExB;;;;OAIG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;IAErB,2DAA2D;IAC3D,KAAK,EAAE,cAAc,EAAE,CAAC;IAExB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;CACX,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACd,gBAAgB,CAIlB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAAE,EACpB,KAAK,EAAE,cAAc,EAAE,GACrB,MAAM,CAGR;AAID;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IAClC;;;;;;;;;OASG;IACH,OAAO,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC7B,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,sEAAsE;IACtE,OAAO,CAAC,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC/B,4BAA4B;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,OAAO,EAAE,OAAO,EAAE,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC9B,mCAAmC;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACrC;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEtF;;;;;;OAMG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7D"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/transaction.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,33 @@
1
1
  import { hashString } from "../utility/hash-string.js";
2
+ /** Default transaction time-to-live in milliseconds (30 seconds). */
3
+ export const DEFAULT_TRANSACTION_TTL_MS = 30_000;
4
+ /** Check whether a transaction stamp has expired. */
5
+ export function isTransactionExpired(stamp) {
6
+ return Date.now() > stamp.expiration;
7
+ }
2
8
  /**
3
9
  * Create a transaction stamp with computed id.
4
- * The id is a hash of the stamp fields.
10
+ * The id is a hash of the stamp fields (including expiration).
5
11
  */
6
- export function createTransactionStamp(peerId, timestamp, schemaHash, engineId) {
7
- const stampData = JSON.stringify({ peerId, timestamp, schemaHash, engineId });
8
- const id = `stamp:${hashString(stampData)}`;
9
- return { peerId, timestamp, schemaHash, engineId, id };
12
+ export async function createTransactionStamp(peerId, timestamp, schemaHash, engineId, ttlMs = DEFAULT_TRANSACTION_TTL_MS) {
13
+ const expiration = timestamp + ttlMs;
14
+ const stampData = JSON.stringify({ peerId, timestamp, schemaHash, engineId, expiration });
15
+ const id = `stamp:${await hashString(stampData)}`;
16
+ return { peerId, timestamp, schemaHash, engineId, expiration, id };
10
17
  }
11
18
  /**
12
19
  * Create a transaction id from stamp id, statements, and reads.
13
20
  * This is the final transaction identity used in logs.
14
21
  */
15
- export function createTransactionId(stampId, statements, reads) {
22
+ export async function createTransactionId(stampId, statements, reads) {
16
23
  const txData = JSON.stringify({ stampId, statements, reads });
17
- return `tx:${hashString(txData)}`;
24
+ return `tx:${await hashString(txData)}`;
25
+ }
26
+ /**
27
+ * Helper to create an actions-based transaction statements array.
28
+ * Each CollectionActions becomes a separate JSON-encoded statement.
29
+ */
30
+ export function createActionsStatements(collections) {
31
+ return collections.map(c => JSON.stringify(c));
18
32
  }
19
33
  //# sourceMappingURL=transaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/transaction/transaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAmEvD;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACrC,MAAc,EACd,SAAiB,EACjB,UAAkB,EAClB,QAAgB;IAEhB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9E,MAAM,EAAE,GAAG,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;IAC5C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAClC,OAAe,EACf,UAAoB,EACpB,KAAuB;IAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,OAAO,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/transaction/transaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAsEvD,qEAAqE;AACrE,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAEjD,qDAAqD;AACrD,MAAM,UAAU,oBAAoB,CAAC,KAAuB;IAC3D,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC3C,MAAc,EACd,SAAiB,EACjB,UAAkB,EAClB,QAAgB,EAChB,QAAgB,0BAA0B;IAE1C,MAAM,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1F,MAAM,EAAE,GAAG,SAAS,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;IAClD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AACpE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,OAAe,EACf,UAAoB,EACpB,KAAuB;IAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,OAAO,MAAM,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;AACzC,CAAC;AAmDD;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAAgC;IACvE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC"}
@@ -1,5 +1,6 @@
1
- import type { CollectionId, Transforms } from '../index.js';
1
+ import type { BlockId, CollectionId, Transforms } from '../index.js';
2
2
  import type { Transaction, ITransactionEngine, ITransactionValidator, ValidationResult, CollectionActions } from './transaction.js';
3
+ import type { BlockActionState } from '../network/struct.js';
3
4
  /**
4
5
  * Engine registration for validation.
5
6
  */
@@ -21,6 +22,11 @@ export type ValidationCoordinatorFactory = () => {
21
22
  /** Dispose of the validation coordinator */
22
23
  dispose(): void;
23
24
  };
25
+ /**
26
+ * Provides current block state for read dependency validation.
27
+ * Returns the latest BlockActionState for a given block, or undefined if the block doesn't exist.
28
+ */
29
+ export type BlockStateProvider = (blockId: BlockId) => Promise<BlockActionState | undefined>;
24
30
  /**
25
31
  * Transaction validator implementation.
26
32
  *
@@ -30,7 +36,8 @@ export type ValidationCoordinatorFactory = () => {
30
36
  export declare class TransactionValidator implements ITransactionValidator {
31
37
  private readonly engines;
32
38
  private readonly createValidationCoordinator;
33
- constructor(engines: Map<string, EngineRegistration>, createValidationCoordinator: ValidationCoordinatorFactory);
39
+ private readonly blockStateProvider?;
40
+ constructor(engines: Map<string, EngineRegistration>, createValidationCoordinator: ValidationCoordinatorFactory, blockStateProvider?: BlockStateProvider | undefined);
34
41
  validate(transaction: Transaction, operationsHash: string): Promise<ValidationResult>;
35
42
  getSchemaHash(engineId: string): Promise<string | undefined>;
36
43
  /**