@spine-event-engine/server 2.0.0-snapshot.2 → 2.0.0-snapshot.21

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 (227) hide show
  1. package/README.md +225 -518
  2. package/REFERENCE.md +498 -49
  3. package/dist/browser/browser-server.d.ts +95 -0
  4. package/dist/browser/browser-server.d.ts.map +1 -0
  5. package/dist/{server → browser}/browser-server.js +93 -7
  6. package/dist/browser/browser-server.js.map +1 -0
  7. package/dist/browser/durable-subscription-bindings.d.ts.map +1 -0
  8. package/dist/browser/durable-subscription-bindings.js.map +1 -0
  9. package/dist/browser/index.d.ts +12 -0
  10. package/dist/browser/index.d.ts.map +1 -0
  11. package/dist/browser/index.js +24 -0
  12. package/dist/browser/index.js.map +1 -0
  13. package/dist/browser/options.d.ts +183 -0
  14. package/dist/browser/options.d.ts.map +1 -0
  15. package/dist/browser/options.js +15 -0
  16. package/dist/browser/options.js.map +1 -0
  17. package/dist/bus/command-bus.d.ts +2 -0
  18. package/dist/bus/command-bus.d.ts.map +1 -1
  19. package/dist/bus/command-bus.js +36 -1
  20. package/dist/bus/command-bus.js.map +1 -1
  21. package/dist/bus/event-dispatcher-registry.d.ts +2 -2
  22. package/dist/bus/event-dispatcher-registry.js +3 -3
  23. package/dist/bus/event-dispatcher-registry.js.map +1 -1
  24. package/dist/context/bounded-context.d.ts +238 -83
  25. package/dist/context/bounded-context.d.ts.map +1 -1
  26. package/dist/context/bounded-context.js +1083 -286
  27. package/dist/context/bounded-context.js.map +1 -1
  28. package/dist/context/effective-tenant.d.ts +9 -0
  29. package/dist/context/effective-tenant.d.ts.map +1 -0
  30. package/dist/context/effective-tenant.js +58 -0
  31. package/dist/context/effective-tenant.js.map +1 -0
  32. package/dist/context/entity-inbox.d.ts.map +1 -1
  33. package/dist/context/entity-inbox.js +24 -17
  34. package/dist/context/entity-inbox.js.map +1 -1
  35. package/dist/context/local-inbox-handoff.d.ts +7 -3
  36. package/dist/context/local-inbox-handoff.d.ts.map +1 -1
  37. package/dist/context/local-inbox-handoff.js +32 -26
  38. package/dist/context/local-inbox-handoff.js.map +1 -1
  39. package/dist/context/projection-handoff.d.ts.map +1 -1
  40. package/dist/context/projection-handoff.js +36 -31
  41. package/dist/context/projection-handoff.js.map +1 -1
  42. package/dist/context/tenant-index.d.ts.map +1 -1
  43. package/dist/context/tenant-index.js +72 -2
  44. package/dist/context/tenant-index.js.map +1 -1
  45. package/dist/delivery/delivery-ports.d.ts +14 -4
  46. package/dist/delivery/delivery-ports.d.ts.map +1 -1
  47. package/dist/delivery/delivery.d.ts +19 -21
  48. package/dist/delivery/delivery.d.ts.map +1 -1
  49. package/dist/delivery/delivery.js +541 -158
  50. package/dist/delivery/delivery.js.map +1 -1
  51. package/dist/delivery/inbox-storage.d.ts +12 -3
  52. package/dist/delivery/inbox-storage.d.ts.map +1 -1
  53. package/dist/delivery/inbox-storage.js +160 -67
  54. package/dist/delivery/inbox-storage.js.map +1 -1
  55. package/dist/delivery/inbox.d.ts +9 -0
  56. package/dist/delivery/inbox.d.ts.map +1 -1
  57. package/dist/delivery/inbox.js +11 -0
  58. package/dist/delivery/inbox.js.map +1 -1
  59. package/dist/delivery/sharded-work-registry.d.ts.map +1 -1
  60. package/dist/delivery/sharded-work-registry.js +2 -1
  61. package/dist/delivery/sharded-work-registry.js.map +1 -1
  62. package/dist/entity/entity-metadata.d.ts +14 -5
  63. package/dist/entity/entity-metadata.d.ts.map +1 -1
  64. package/dist/entity/entity-metadata.js +38 -2
  65. package/dist/entity/entity-metadata.js.map +1 -1
  66. package/dist/entity/entity-storage-descriptor.d.ts +25 -5
  67. package/dist/entity/entity-storage-descriptor.d.ts.map +1 -1
  68. package/dist/entity/entity-storage-descriptor.js +69 -23
  69. package/dist/entity/entity-storage-descriptor.js.map +1 -1
  70. package/dist/entity/entity-transaction.d.ts +46 -42
  71. package/dist/entity/entity-transaction.d.ts.map +1 -1
  72. package/dist/entity/entity-transaction.js +130 -35
  73. package/dist/entity/entity-transaction.js.map +1 -1
  74. package/dist/entity/entity.d.ts +243 -98
  75. package/dist/entity/entity.d.ts.map +1 -1
  76. package/dist/entity/entity.js +405 -226
  77. package/dist/entity/entity.js.map +1 -1
  78. package/dist/entity/spec-scanner.d.ts +13 -1
  79. package/dist/entity/spec-scanner.d.ts.map +1 -1
  80. package/dist/entity/spec-scanner.js +20 -3
  81. package/dist/entity/spec-scanner.js.map +1 -1
  82. package/dist/handler/command-registration-readiness.d.ts +6 -6
  83. package/dist/handler/command-registration-readiness.d.ts.map +1 -1
  84. package/dist/handler/command-registration-readiness.js +4 -2
  85. package/dist/handler/command-registration-readiness.js.map +1 -1
  86. package/dist/handler/declared-rejections.d.ts +11 -0
  87. package/dist/handler/declared-rejections.d.ts.map +1 -0
  88. package/dist/handler/declared-rejections.js +34 -0
  89. package/dist/handler/declared-rejections.js.map +1 -0
  90. package/dist/handler/event-registration-readiness.d.ts +13 -56
  91. package/dist/handler/event-registration-readiness.d.ts.map +1 -1
  92. package/dist/handler/event-registration-readiness.js +23 -43
  93. package/dist/handler/event-registration-readiness.js.map +1 -1
  94. package/dist/handler/generated-handler-registry.d.ts +72 -33
  95. package/dist/handler/generated-handler-registry.d.ts.map +1 -1
  96. package/dist/handler/generated-handler-registry.js +421 -43
  97. package/dist/handler/generated-handler-registry.js.map +1 -1
  98. package/dist/handler/generated-registry-discovery.d.ts.map +1 -1
  99. package/dist/handler/generated-registry-discovery.js +2 -4
  100. package/dist/handler/generated-registry-discovery.js.map +1 -1
  101. package/dist/handler/handler-decorators.d.ts +91 -37
  102. package/dist/handler/handler-decorators.d.ts.map +1 -1
  103. package/dist/handler/handler-decorators.js +124 -31
  104. package/dist/handler/handler-decorators.js.map +1 -1
  105. package/dist/handler/handler-metadata.d.ts +105 -60
  106. package/dist/handler/handler-metadata.d.ts.map +1 -1
  107. package/dist/handler/handler-metadata.js +275 -57
  108. package/dist/handler/handler-metadata.js.map +1 -1
  109. package/dist/handler/registration-readiness-metadata.d.ts +4 -0
  110. package/dist/handler/registration-readiness-metadata.d.ts.map +1 -1
  111. package/dist/handler/registration-readiness-metadata.js +84 -2
  112. package/dist/handler/registration-readiness-metadata.js.map +1 -1
  113. package/dist/handler/standalone.d.ts +25 -0
  114. package/dist/handler/standalone.d.ts.map +1 -0
  115. package/dist/handler/standalone.js +38 -0
  116. package/dist/handler/standalone.js.map +1 -0
  117. package/dist/index.d.ts +9 -9
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.js +3 -3
  120. package/dist/index.js.map +1 -1
  121. package/dist/repository/command-routing.d.ts +63 -10
  122. package/dist/repository/command-routing.d.ts.map +1 -1
  123. package/dist/repository/command-routing.js +41 -8
  124. package/dist/repository/command-routing.js.map +1 -1
  125. package/dist/repository/event-routing.d.ts +64 -9
  126. package/dist/repository/event-routing.d.ts.map +1 -1
  127. package/dist/repository/event-routing.js +42 -7
  128. package/dist/repository/event-routing.js.map +1 -1
  129. package/dist/repository/primitive-id.d.ts +12 -23
  130. package/dist/repository/primitive-id.d.ts.map +1 -1
  131. package/dist/repository/primitive-id.js +2 -27
  132. package/dist/repository/primitive-id.js.map +1 -1
  133. package/dist/repository/repository.d.ts +317 -87
  134. package/dist/repository/repository.d.ts.map +1 -1
  135. package/dist/repository/repository.js +3746 -856
  136. package/dist/repository/repository.js.map +1 -1
  137. package/dist/repository/state-update-routing.d.ts +67 -8
  138. package/dist/repository/state-update-routing.d.ts.map +1 -1
  139. package/dist/repository/state-update-routing.js +45 -6
  140. package/dist/repository/state-update-routing.js.map +1 -1
  141. package/dist/runtime/runtime.js +1 -1
  142. package/dist/runtime/runtime.js.map +1 -1
  143. package/dist/runtime/signal-metadata.d.ts +22 -47
  144. package/dist/runtime/signal-metadata.d.ts.map +1 -1
  145. package/dist/runtime/signal-metadata.js +34 -69
  146. package/dist/runtime/signal-metadata.js.map +1 -1
  147. package/dist/runtime/signal-publisher.d.ts +144 -0
  148. package/dist/runtime/signal-publisher.d.ts.map +1 -0
  149. package/dist/runtime/signal-publisher.js +248 -0
  150. package/dist/runtime/signal-publisher.js.map +1 -0
  151. package/dist/runtime/standalone-handler-runtime.d.ts +130 -0
  152. package/dist/runtime/standalone-handler-runtime.d.ts.map +1 -0
  153. package/dist/runtime/standalone-handler-runtime.js +382 -0
  154. package/dist/runtime/standalone-handler-runtime.js.map +1 -0
  155. package/dist/server/environment-attachment.d.ts.map +1 -1
  156. package/dist/server/environment-attachment.js +2 -1
  157. package/dist/server/environment-attachment.js.map +1 -1
  158. package/dist/server/environment-delivery-worker.d.ts.map +1 -1
  159. package/dist/server/environment-delivery-worker.js +21 -12
  160. package/dist/server/environment-delivery-worker.js.map +1 -1
  161. package/dist/server/managed-server-application.d.ts +4 -1
  162. package/dist/server/managed-server-application.d.ts.map +1 -1
  163. package/dist/server/managed-server-application.js +2 -2
  164. package/dist/server/managed-server-application.js.map +1 -1
  165. package/dist/server/node-coordinator.js +2 -2
  166. package/dist/server/node-coordinator.js.map +1 -1
  167. package/dist/server/server-log.d.ts.map +1 -1
  168. package/dist/server/server-log.js +4 -0
  169. package/dist/server/server-log.js.map +1 -1
  170. package/dist/server/server.d.ts +9 -177
  171. package/dist/server/server.d.ts.map +1 -1
  172. package/dist/server/server.js +428 -178
  173. package/dist/server/server.js.map +1 -1
  174. package/dist/services/query-reader.d.ts +19 -0
  175. package/dist/services/query-reader.d.ts.map +1 -0
  176. package/dist/services/query-reader.js +43 -0
  177. package/dist/services/query-reader.js.map +1 -0
  178. package/dist/services/registered-targets.d.ts +73 -0
  179. package/dist/services/registered-targets.d.ts.map +1 -0
  180. package/dist/services/registered-targets.js +127 -0
  181. package/dist/services/registered-targets.js.map +1 -0
  182. package/dist/services/spine-services.d.ts +26 -12
  183. package/dist/services/spine-services.d.ts.map +1 -1
  184. package/dist/services/spine-services.js +1047 -969
  185. package/dist/services/spine-services.js.map +1 -1
  186. package/dist/spi/delivery.d.ts +5 -0
  187. package/dist/spi/delivery.d.ts.map +1 -0
  188. package/dist/spi/delivery.js +18 -0
  189. package/dist/spi/delivery.js.map +1 -0
  190. package/dist/spi/handler-registry.d.ts +8 -0
  191. package/dist/spi/handler-registry.d.ts.map +1 -0
  192. package/dist/spi/handler-registry.js +15 -0
  193. package/dist/spi/handler-registry.js.map +1 -0
  194. package/dist/stand/stand.d.ts +73 -1
  195. package/dist/stand/stand.d.ts.map +1 -1
  196. package/dist/stand/stand.js +221 -48
  197. package/dist/stand/stand.js.map +1 -1
  198. package/dist/stand/subscription-observer.d.ts.map +1 -1
  199. package/dist/stand/subscription-observer.js +5 -12
  200. package/dist/stand/subscription-observer.js.map +1 -1
  201. package/dist/stand/subscription-registry.js +1 -1
  202. package/dist/stand/subscription-registry.js.map +1 -1
  203. package/dist/testing/index.d.ts +25 -3
  204. package/dist/testing/index.d.ts.map +1 -1
  205. package/dist/testing/index.js +23 -3
  206. package/dist/testing/index.js.map +1 -1
  207. package/dist/tsconfig.tsbuildinfo +1 -1
  208. package/package.json +33 -23
  209. package/dist/handler/build-time-handler-analyzer.d.ts +0 -150
  210. package/dist/handler/build-time-handler-analyzer.d.ts.map +0 -1
  211. package/dist/handler/build-time-handler-analyzer.js +0 -1101
  212. package/dist/handler/build-time-handler-analyzer.js.map +0 -1
  213. package/dist/handler/generated-registry-writer.d.ts +0 -58
  214. package/dist/handler/generated-registry-writer.d.ts.map +0 -1
  215. package/dist/handler/generated-registry-writer.js +0 -458
  216. package/dist/handler/generated-registry-writer.js.map +0 -1
  217. package/dist/handler/handler-codegen.d.ts +0 -48
  218. package/dist/handler/handler-codegen.d.ts.map +0 -1
  219. package/dist/handler/handler-codegen.js +0 -214
  220. package/dist/handler/handler-codegen.js.map +0 -1
  221. package/dist/server/browser-server.d.ts +0 -49
  222. package/dist/server/browser-server.d.ts.map +0 -1
  223. package/dist/server/browser-server.js.map +0 -1
  224. package/dist/server/durable-subscription-bindings.d.ts.map +0 -1
  225. package/dist/server/durable-subscription-bindings.js.map +0 -1
  226. /package/dist/{server → browser}/durable-subscription-bindings.d.ts +0 -0
  227. /package/dist/{server → browser}/durable-subscription-bindings.js +0 -0
@@ -1,5 +1,5 @@
1
1
  import { type MessageShape } from "@bufbuild/protobuf";
2
- import { type ConstraintViolation } from "@spine-event-engine/proto";
2
+ import { type ConstraintViolation, type Version } from "@spine-event-engine/proto";
3
3
  import type { DescriptorMessageSchema } from "./entity-metadata.js";
4
4
  import { type StateTransitionResult } from "./entity-transition-validation.js";
5
5
  /**
@@ -16,28 +16,28 @@ export interface EntityTransactionLifecycleFlags {
16
16
  readonly deleted: boolean;
17
17
  }
18
18
  /**
19
- * Explicit version metadata carried by an entity transaction draft.
19
+ * Spine Version values captured before a transaction commits.
20
20
  */
21
- export interface EntityTransactionVersionMetadata<Version = unknown> {
21
+ export interface EntityTransactionVersionMetadata {
22
22
  /**
23
- * Caller-supplied previous committed version metadata.
23
+ * Version of the Entity before this transaction.
24
24
  */
25
25
  readonly previous: Version;
26
26
  /**
27
- * Caller-supplied draft version metadata.
27
+ * Version copied into the initial draft.
28
28
  */
29
29
  readonly draft: Version;
30
30
  }
31
31
  /**
32
- * Explicit version metadata returned by an accepted commit.
32
+ * Spine Version values before and after an accepted commit.
33
33
  */
34
- export interface CommittedVersionMetadata<Version = unknown> {
34
+ export interface CommittedVersionMetadata {
35
35
  /**
36
- * Caller-supplied previous committed version metadata.
36
+ * Version of the Entity before this transaction.
37
37
  */
38
38
  readonly previous: Version;
39
39
  /**
40
- * Draft metadata accepted by the commit boundary.
40
+ * Version calculated by the accepted commit.
41
41
  */
42
42
  readonly committed: Version;
43
43
  }
@@ -48,7 +48,7 @@ export type EntityTransactionStatus = "active" | "committed" | "rolled-back";
48
48
  /**
49
49
  * Transaction operation guarded by active-status checks.
50
50
  */
51
- export type EntityTransactionOperation = "archive" | "commit" | "markDeleted" | "requireActive" | "restore" | "rollback" | "tryUpdate" | "unarchive" | "update" | "updateVersionMetadata";
51
+ export type EntityTransactionOperation = "archive" | "commit" | "markDeleted" | "requireActive" | "restore" | "rollback" | "tryUpdate" | "unarchive" | "update";
52
52
  /**
53
53
  * Draft lifecycle reason that prevents active-only entity state mutation.
54
54
  */
@@ -56,13 +56,16 @@ export type DraftStateReason = "archived" | "deleted";
56
56
  /**
57
57
  * Updates an entity-state draft in place.
58
58
  *
59
+ * @typeParam Schema Generated schema describing the mutable draft state.
59
60
  * @param draft Live or scratch state draft to mutate synchronously.
60
61
  */
61
62
  export type EntityTransactionMutator<Schema extends DescriptorMessageSchema> = (draft: MessageShape<Schema>) => void;
62
63
  /**
63
64
  * Options for creating an {@link EntityTransaction}.
65
+ *
66
+ * @typeParam Schema Generated schema describing the Entity state.
64
67
  */
65
- export interface EntityTransactionOptions<Schema extends DescriptorMessageSchema, Version = unknown> {
68
+ export interface EntityTransactionOptions<Schema extends DescriptorMessageSchema> {
66
69
  /**
67
70
  * Generated Protobuf-ES schema describing the entity state.
68
71
  */
@@ -76,9 +79,9 @@ export interface EntityTransactionOptions<Schema extends DescriptorMessageSchema
76
79
  */
77
80
  readonly draft?: MessageShape<Schema>;
78
81
  /**
79
- * Explicit version metadata to carry through draft, commit, and rollback results.
82
+ * Spine Version snapshots supplied by framework transaction code.
80
83
  */
81
- readonly version: EntityTransactionVersionMetadata<Version>;
84
+ readonly version: EntityTransactionVersionMetadata;
82
85
  /**
83
86
  * Draft lifecycle flags. Defaults to active, not deleted.
84
87
  */
@@ -86,8 +89,10 @@ export interface EntityTransactionOptions<Schema extends DescriptorMessageSchema
86
89
  }
87
90
  /**
88
91
  * Result returned when a transaction commit is accepted.
92
+ *
93
+ * @typeParam Schema Generated schema describing the committed Entity state.
89
94
  */
90
- export interface EntityTransactionAcceptedCommit<Schema extends DescriptorMessageSchema, Version = unknown> {
95
+ export interface EntityTransactionAcceptedCommit<Schema extends DescriptorMessageSchema> {
91
96
  /**
92
97
  * Commit result discriminator.
93
98
  */
@@ -103,7 +108,7 @@ export interface EntityTransactionAcceptedCommit<Schema extends DescriptorMessag
103
108
  /**
104
109
  * Accepted commit version metadata.
105
110
  */
106
- readonly version: CommittedVersionMetadata<Version>;
111
+ readonly version: CommittedVersionMetadata;
107
112
  /**
108
113
  * Lifecycle flags accepted with the committed state.
109
114
  */
@@ -117,8 +122,10 @@ export interface EntityTransactionAcceptedCommit<Schema extends DescriptorMessag
117
122
  }
118
123
  /**
119
124
  * Result returned when a transaction commit is rejected by validation.
125
+ *
126
+ * @typeParam Schema Generated schema describing the rejected Entity state.
120
127
  */
121
- export interface EntityTransactionRejectedCommit<Schema extends DescriptorMessageSchema, Version = unknown> {
128
+ export interface EntityTransactionRejectedCommit<Schema extends DescriptorMessageSchema> {
122
129
  /**
123
130
  * Commit result discriminator.
124
131
  */
@@ -134,7 +141,7 @@ export interface EntityTransactionRejectedCommit<Schema extends DescriptorMessag
134
141
  /**
135
142
  * Draft version metadata that was not accepted.
136
143
  */
137
- readonly version: EntityTransactionVersionMetadata<Version>;
144
+ readonly version: EntityTransactionVersionMetadata;
138
145
  /**
139
146
  * Lifecycle flags that were not accepted.
140
147
  */
@@ -148,12 +155,16 @@ export interface EntityTransactionRejectedCommit<Schema extends DescriptorMessag
148
155
  }
149
156
  /**
150
157
  * Structured result returned by {@link EntityTransaction.commit}.
158
+ *
159
+ * @typeParam Schema Generated schema describing the transaction's state.
151
160
  */
152
- export type EntityTransactionCommitResult<Schema extends DescriptorMessageSchema, Version = unknown> = EntityTransactionAcceptedCommit<Schema, Version> | EntityTransactionRejectedCommit<Schema, Version>;
161
+ export type EntityTransactionCommitResult<Schema extends DescriptorMessageSchema> = EntityTransactionAcceptedCommit<Schema> | EntityTransactionRejectedCommit<Schema>;
153
162
  /**
154
163
  * Structured result returned by {@link EntityTransaction.rollback}.
164
+ *
165
+ * @typeParam Schema Generated schema describing the discarded draft state.
155
166
  */
156
- export interface EntityTransactionRollbackResult<Schema extends DescriptorMessageSchema, Version = unknown> {
167
+ export interface EntityTransactionRollbackResult<Schema extends DescriptorMessageSchema> {
157
168
  /**
158
169
  * Rollback result discriminator.
159
170
  */
@@ -169,7 +180,7 @@ export interface EntityTransactionRollbackResult<Schema extends DescriptorMessag
169
180
  /**
170
181
  * Draft version metadata that was discarded.
171
182
  */
172
- readonly version: EntityTransactionVersionMetadata<Version>;
183
+ readonly version: EntityTransactionVersionMetadata;
173
184
  /**
174
185
  * Lifecycle flags that were discarded.
175
186
  */
@@ -215,20 +226,22 @@ export declare class DraftStateError extends Error {
215
226
  constructor(reason: DraftStateReason);
216
227
  }
217
228
  /**
218
- * Framework-owned buffered transaction over one entity state draft.
229
+ * Framework transaction over one buffered Entity state draft.
219
230
  *
220
- * The transaction owns only in-memory draft/result data. It does not invoke
231
+ * The transaction manages only in-memory draft and result data. It does not invoke
221
232
  * handlers, write repositories, apply snapshots, dispatch messages, start
222
233
  * buses, or participate in async-local/global transaction state.
234
+ *
235
+ * @typeParam Schema Generated schema describing the Entity state.
223
236
  */
224
- export declare class EntityTransaction<Schema extends DescriptorMessageSchema, Version = unknown> {
237
+ export declare class EntityTransaction<Schema extends DescriptorMessageSchema> {
225
238
  #private;
226
239
  /**
227
240
  * Creates a transaction over previous state and a buffered draft.
228
241
  *
229
242
  * @param options State, version, and lifecycle inputs for the transaction.
230
243
  */
231
- constructor(options: EntityTransactionOptions<Schema, Version>);
244
+ constructor(options: EntityTransactionOptions<Schema>);
232
245
  /**
233
246
  * Gets the current lifecycle status of the transaction.
234
247
  *
@@ -248,11 +261,11 @@ export declare class EntityTransaction<Schema extends DescriptorMessageSchema, V
248
261
  */
249
262
  get currentDraft(): MessageShape<Schema>;
250
263
  /**
251
- * Gets explicit version metadata carried by the current draft.
264
+ * Gets independent copies of the initial Spine Version values.
252
265
  *
253
- * @returns The previous and draft version metadata.
266
+ * @returns Previous and initial draft Version snapshots.
254
267
  */
255
- get version(): EntityTransactionVersionMetadata<Version>;
268
+ get version(): EntityTransactionVersionMetadata;
256
269
  /**
257
270
  * Gets lifecycle flags carried by the current draft.
258
271
  *
@@ -331,27 +344,17 @@ export declare class EntityTransaction<Schema extends DescriptorMessageSchema, V
331
344
  * @returns The changed lifecycle flags.
332
345
  */
333
346
  restore(): EntityTransactionLifecycleFlags;
334
- /**
335
- * Updates caller-owned explicit draft version metadata.
336
- *
337
- * This helper does not compute version increments, timestamps, producer
338
- * metadata, or event versions. It preserves the transaction's `Version`
339
- * generic and returns a snapshot of the previous/draft metadata pair.
340
- *
341
- * @param draft Replacement caller-owned draft version metadata.
342
- * @returns The updated previous and draft metadata.
343
- */
344
- updateVersionMetadata(draft: Version): EntityTransactionVersionMetadata<Version>;
345
347
  /**
346
348
  * Validates and commits the current draft at this transaction boundary.
347
349
  *
348
350
  * Ordinary entity state validation failures are returned as rejected commit
349
351
  * results with validator violations. They do not throw and do not mark the
350
- * transaction committed.
352
+ * transaction committed. A no-op skips validation and preserves the version.
351
353
  *
354
+ * @param producedEvents Whether handling returned Events, requiring a version advance.
352
355
  * @returns An accepted commit or a validation-rejected result.
353
356
  */
354
- commit(): EntityTransactionCommitResult<Schema, Version>;
357
+ commit(producedEvents?: boolean): EntityTransactionCommitResult<Schema>;
355
358
  /**
356
359
  * Returns unaccepted draft evidence and closes the transaction.
357
360
  *
@@ -360,13 +363,14 @@ export declare class EntityTransaction<Schema extends DescriptorMessageSchema, V
360
363
  *
361
364
  * @returns The discarded draft and prior-state evidence.
362
365
  */
363
- rollback(): EntityTransactionRollbackResult<Schema, Version>;
366
+ rollback(): EntityTransactionRollbackResult<Schema>;
364
367
  }
365
368
  /**
366
369
  * Creates a transaction with inferred schema state typing.
367
370
  *
371
+ * @typeParam Schema Generated schema describing the transaction's state.
368
372
  * @param options State, version, and lifecycle inputs for the transaction.
369
373
  * @returns A new isolated entity transaction.
370
374
  */
371
- export declare function createEntityTransaction<Schema extends DescriptorMessageSchema, Version = unknown>(options: EntityTransactionOptions<Schema, Version>): EntityTransaction<Schema, Version>;
375
+ export declare function createEntityTransaction<Schema extends DescriptorMessageSchema>(options: EntityTransactionOptions<Schema>): EntityTransaction<Schema>;
372
376
  //# sourceMappingURL=entity-transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity-transaction.d.ts","sourceRoot":"","sources":["../../src/entity/entity-transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-transaction.d.ts","sourceRoot":"","sources":["../../src/entity/entity-transaction.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,8 @@
12
12
  * the License.
13
13
  */
14
14
  import { clone, create, fromBinary, toBinary } from "@bufbuild/protobuf";
15
- import { ConstraintViolationSchema } from "@spine-event-engine/proto";
15
+ import { TimestampSchema } from "@bufbuild/protobuf/wkt";
16
+ import { ConstraintViolationSchema, VersionSchema, } from "@spine-event-engine/proto";
16
17
  import { validateEntityStateTransition, } from "./entity-transition-validation.js";
17
18
  const noConstraintViolations = Object.freeze([]);
18
19
  /**
@@ -68,19 +69,23 @@ export class DraftStateError extends Error {
68
69
  }
69
70
  }
70
71
  /**
71
- * Framework-owned buffered transaction over one entity state draft.
72
+ * Framework transaction over one buffered Entity state draft.
72
73
  *
73
- * The transaction owns only in-memory draft/result data. It does not invoke
74
+ * The transaction manages only in-memory draft and result data. It does not invoke
74
75
  * handlers, write repositories, apply snapshots, dispatch messages, start
75
76
  * buses, or participate in async-local/global transaction state.
77
+ *
78
+ * @typeParam Schema Generated schema describing the Entity state.
76
79
  */
77
80
  export class EntityTransaction {
78
81
  #schema;
79
82
  #previous;
83
+ #initialDraft;
80
84
  #draft;
81
85
  #status = "active";
82
86
  #version;
83
87
  #lifecycle;
88
+ #initialLifecycle;
84
89
  /**
85
90
  * Creates a transaction over previous state and a buffered draft.
86
91
  *
@@ -93,14 +98,16 @@ export class EntityTransaction {
93
98
  ? undefined
94
99
  : TransactionDrafts.clone(options.schema, options.previous);
95
100
  this.#draft = TransactionDrafts.clone(options.schema, options.draft ?? options.previous ?? create(options.schema));
101
+ this.#initialDraft = TransactionDrafts.clone(options.schema, this.#draft);
96
102
  this.#version = {
97
- previous: options.version.previous,
98
- draft: options.version.draft,
103
+ previous: clone(VersionSchema, options.version.previous),
104
+ draft: clone(VersionSchema, options.version.draft),
99
105
  };
100
106
  this.#lifecycle = {
101
107
  archived: options.lifecycle?.archived ?? false,
102
108
  deleted: options.lifecycle?.deleted ?? false,
103
109
  };
110
+ this.#initialLifecycle = this.lifecycle;
104
111
  }
105
112
  /**
106
113
  * Gets the current lifecycle status of the transaction.
@@ -129,12 +136,15 @@ export class EntityTransaction {
129
136
  return TransactionDrafts.clone(this.#schema, this.#draft);
130
137
  }
131
138
  /**
132
- * Gets explicit version metadata carried by the current draft.
139
+ * Gets independent copies of the initial Spine Version values.
133
140
  *
134
- * @returns The previous and draft version metadata.
141
+ * @returns Previous and initial draft Version snapshots.
135
142
  */
136
143
  get version() {
137
- return { previous: this.#version.previous, draft: this.#version.draft };
144
+ return {
145
+ previous: clone(VersionSchema, this.#version.previous),
146
+ draft: clone(VersionSchema, this.#version.draft),
147
+ };
138
148
  }
139
149
  /**
140
150
  * Gets lifecycle flags carried by the current draft.
@@ -258,42 +268,23 @@ export class EntityTransaction {
258
268
  this.#replaceLifecycle("restore", { deleted: false });
259
269
  return this.lifecycle;
260
270
  }
261
- /**
262
- * Updates caller-owned explicit draft version metadata.
263
- *
264
- * This helper does not compute version increments, timestamps, producer
265
- * metadata, or event versions. It preserves the transaction's `Version`
266
- * generic and returns a snapshot of the previous/draft metadata pair.
267
- *
268
- * @param draft Replacement caller-owned draft version metadata.
269
- * @returns The updated previous and draft metadata.
270
- */
271
- updateVersionMetadata(draft) {
272
- this.#requireActiveStatus("updateVersionMetadata");
273
- this.#version = {
274
- previous: this.#version.previous,
275
- draft,
276
- };
277
- return this.version;
278
- }
279
271
  /**
280
272
  * Validates and commits the current draft at this transaction boundary.
281
273
  *
282
274
  * Ordinary entity state validation failures are returned as rejected commit
283
275
  * results with validator violations. They do not throw and do not mark the
284
- * transaction committed.
276
+ * transaction committed. A no-op skips validation and preserves the version.
285
277
  *
278
+ * @param producedEvents Whether handling returned Events, requiring a version advance.
286
279
  * @returns An accepted commit or a validation-rejected result.
287
280
  */
288
- commit() {
281
+ commit(producedEvents = false) {
289
282
  this.#requireActiveStatus("commit");
290
283
  const previous = this.previous;
291
284
  const next = this.currentDraft;
292
- const validation = validateEntityStateTransition({
293
- schema: this.#schema,
294
- previous,
295
- next,
296
- });
285
+ const validation = this.#changed(next, producedEvents)
286
+ ? validateEntityStateTransition({ schema: this.#schema, previous, next })
287
+ : { valid: true, violations: [], error: undefined };
297
288
  if (!validation.valid) {
298
289
  return {
299
290
  status: "rejected",
@@ -305,18 +296,53 @@ export class EntityTransaction {
305
296
  };
306
297
  }
307
298
  this.#status = "committed";
299
+ const committed = this.#commitVersion(next, producedEvents);
308
300
  return {
309
301
  status: "accepted",
310
302
  previous,
311
303
  next,
312
304
  version: {
313
- previous: this.#version.previous,
314
- committed: this.#version.draft,
305
+ previous: clone(VersionSchema, this.#version.previous),
306
+ committed,
315
307
  },
316
308
  lifecycle: this.lifecycle,
317
309
  validation,
318
310
  };
319
311
  }
312
+ /**
313
+ * Advances the Entity version once for a visible change or produced Events.
314
+ *
315
+ * @param next Accepted state.
316
+ * @param producedEvents Whether the handler produced Events.
317
+ * @returns The committed Spine Version.
318
+ */
319
+ #commitVersion(next, producedEvents) {
320
+ const version = this.#version.previous;
321
+ if (!this.#changed(next, producedEvents)) {
322
+ return clone(VersionSchema, version);
323
+ }
324
+ const milliseconds = Date.now();
325
+ return create(VersionSchema, {
326
+ number: version.number + 1,
327
+ timestamp: create(TimestampSchema, {
328
+ seconds: BigInt(Math.floor(milliseconds / 1_000)),
329
+ nanos: (milliseconds % 1_000) * 1_000_000,
330
+ }),
331
+ });
332
+ }
333
+ /**
334
+ * Tests whether a dispatch produced Events or changed state or lifecycle.
335
+ *
336
+ * @param next Draft state to compare with committed state or the initial new-Entity draft.
337
+ * @param producedEvents Whether the handler produced Events.
338
+ * @returns `true` when the dispatch requires a new Version.
339
+ */
340
+ #changed(next, producedEvents) {
341
+ return (producedEvents ||
342
+ !TransactionDrafts.equal(this.#schema, this.#previous ?? this.#initialDraft, next) ||
343
+ this.#lifecycle.archived !== this.#initialLifecycle.archived ||
344
+ this.#lifecycle.deleted !== this.#initialLifecycle.deleted);
345
+ }
320
346
  /**
321
347
  * Returns unaccepted draft evidence and closes the transaction.
322
348
  *
@@ -336,6 +362,12 @@ export class EntityTransaction {
336
362
  lifecycle: this.lifecycle,
337
363
  };
338
364
  }
365
+ /**
366
+ * Updates lifecycle flags while the transaction is active.
367
+ *
368
+ * @param operation Lifecycle operation used in an out-of-scope error.
369
+ * @param updates Flags to replace in the draft.
370
+ */
339
371
  #replaceLifecycle(operation, updates) {
340
372
  this.#requireActiveStatus(operation);
341
373
  this.#lifecycle = {
@@ -343,15 +375,28 @@ export class EntityTransaction {
343
375
  deleted: updates.deleted ?? this.#lifecycle.deleted,
344
376
  };
345
377
  }
378
+ /**
379
+ * Checks transaction status and lifecycle before state mutation.
380
+ *
381
+ * @param operation State mutation being attempted.
382
+ */
346
383
  #requireActiveForStateMutation(operation) {
347
384
  this.#requireActiveStatus(operation);
348
385
  this.#requireDraftAllowsStateMutation();
349
386
  }
387
+ /**
388
+ * Rejects operations after commit or rollback.
389
+ *
390
+ * @param operation Operation being attempted on the transaction.
391
+ */
350
392
  #requireActiveStatus(operation) {
351
393
  if (this.#status !== "active") {
352
394
  throw new EntityTransactionStateError(this.#status, operation);
353
395
  }
354
396
  }
397
+ /**
398
+ * Rejects state changes while the draft is archived or deleted.
399
+ */
355
400
  #requireDraftAllowsStateMutation() {
356
401
  if (this.#lifecycle.archived) {
357
402
  throw new DraftStateError("archived");
@@ -361,7 +406,13 @@ export class EntityTransaction {
361
406
  }
362
407
  }
363
408
  }
409
+ /**
410
+ * Reports an asynchronous state mutator where synchronous mutation is required.
411
+ */
364
412
  class AsyncMutatorError extends TypeError {
413
+ /**
414
+ * Creates the error raised when a state mutator returns a thenable.
415
+ */
365
416
  constructor() {
366
417
  super("Entity state mutators must be synchronous.");
367
418
  this.name = "AsyncMutatorError";
@@ -372,9 +423,38 @@ class AsyncMutatorError extends TypeError {
372
423
  * Clones transaction state, applies synchronous mutation, and captures immutable validation snapshots.
373
424
  */
374
425
  const TransactionDrafts = Object.freeze({
426
+ /**
427
+ * Copies a draft through its schema, omitting unknown wire fields.
428
+ *
429
+ * @typeParam Schema Generated schema describing the state.
430
+ * @param schema Schema used for encoding and decoding.
431
+ * @param state State message to copy.
432
+ * @returns An independent copy of the known state fields.
433
+ */
375
434
  clone(schema, state) {
376
435
  return fromBinary(schema, toBinary(schema, state, { writeUnknownFields: false }));
377
436
  },
437
+ /**
438
+ * Compares the encoded known fields of two drafts.
439
+ *
440
+ * @typeParam Schema Generated schema shared by both drafts.
441
+ * @param schema Schema used to encode the drafts.
442
+ * @param left First draft to compare.
443
+ * @param right Second draft to compare.
444
+ * @returns True when both drafts encode to the same known fields.
445
+ */
446
+ equal(schema, left, right) {
447
+ const first = toBinary(schema, left, { writeUnknownFields: false });
448
+ const second = toBinary(schema, right, { writeUnknownFields: false });
449
+ return first.length === second.length && first.every((value, index) => value === second[index]);
450
+ },
451
+ /**
452
+ * Applies a synchronous mutator and rejects a returned thenable.
453
+ *
454
+ * @typeParam Schema Generated schema describing the draft.
455
+ * @param mutator Operation that changes the draft in place.
456
+ * @param draft Mutable state supplied to the operation.
457
+ */
378
458
  invoke(mutator, draft) {
379
459
  const result = mutator(draft);
380
460
  if (!this.isThenable(result)) {
@@ -383,10 +463,24 @@ const TransactionDrafts = Object.freeze({
383
463
  void Promise.resolve(result).catch(() => undefined);
384
464
  throw new AsyncMutatorError();
385
465
  },
466
+ /**
467
+ * Tests whether a mutator result exposes a callable then method.
468
+ *
469
+ * @param value Result returned by a state mutator.
470
+ * @returns True for Promises and other thenable objects or functions.
471
+ */
386
472
  isThenable(value) {
387
473
  return (((typeof value === "object" && value !== null) || typeof value === "function") &&
388
474
  typeof value.then === "function");
389
475
  },
476
+ /**
477
+ * Marks a validation snapshot and its reachable values as frozen once each.
478
+ *
479
+ * @typeParam Value Validation snapshot type preserved by this operation.
480
+ * @param value Snapshot or nested value to freeze.
481
+ * @param seen Previously visited objects, used to stop cycles.
482
+ * @returns The frozen input value.
483
+ */
390
484
  freeze(value, seen = new WeakSet()) {
391
485
  if ((typeof value !== "object" && typeof value !== "function") || value === null) {
392
486
  return value;
@@ -404,6 +498,7 @@ const TransactionDrafts = Object.freeze({
404
498
  /**
405
499
  * Creates a transaction with inferred schema state typing.
406
500
  *
501
+ * @typeParam Schema Generated schema describing the transaction's state.
407
502
  * @param options State, version, and lifecycle inputs for the transaction.
408
503
  * @returns A new isolated entity transaction.
409
504
  */
@@ -1 +1 @@
1
- {"version":3,"file":"entity-transaction.js","sourceRoot":"","sources":["../../src/entity/entity-transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-transaction.js","sourceRoot":"","sources":["../../src/entity/entity-transaction.ts"],"names":[],"mappings":"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"}