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

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
@@ -12,10 +12,11 @@
12
12
  * the License.
13
13
  */
14
14
  var _a;
15
- import { clone, create } from "@bufbuild/protobuf";
15
+ import { clone } from "@bufbuild/protobuf";
16
16
  import { TypeUrls } from "@spine-event-engine/core";
17
17
  import { TenantIdSchema, VersionSchema, } from "@spine-event-engine/proto";
18
- import { ColumnTypes, RecordColumn, RecordMask, RecordQuery, TenantBoundary, } from "@spine-event-engine/storage";
18
+ import { ColumnTypes, RecordColumn, RecordQuery, } from "@spine-event-engine/storage";
19
+ import { TenantBoundary } from "@spine-event-engine/storage/provider";
19
20
  import { EntityRecords, standEntityStorageDescriptor, } from "../entity/entity-storage-descriptor.js";
20
21
  import { SubscriptionObservers } from "./subscription-observer.js";
21
22
  const HANDLE_CLOSE_ERROR_LIMIT = 16;
@@ -70,7 +71,7 @@ export class Stand {
70
71
  constructor(options) {
71
72
  this.#context = _a.#cloneContext(options.context);
72
73
  this.#storageFactory = options.storageFactory;
73
- deferredUpdates.set(this, (schema, state, updateOptions) => this.#deferUpdate(schema, state, updateOptions));
74
+ deferredUpdates.set(this, (schema, state, updateOptions, metadata) => this.#deferUpdate(schema, state, updateOptions, metadata));
74
75
  currentReads.set(this, (schema, id, readOptions) => this.#readCurrent(schema, id, readOptions));
75
76
  }
76
77
  /**
@@ -123,6 +124,7 @@ export class Stand {
123
124
  /**
124
125
  * Reads the latest state for one entity ID.
125
126
  *
127
+ * @typeParam Schema The registered state schema.
126
128
  * @param schema The registered entity state schema.
127
129
  * @param id The entity ID to read.
128
130
  * @param options The tenant slice to read.
@@ -135,6 +137,7 @@ export class Stand {
135
137
  /**
136
138
  * Reads the latest state and its supplied version metadata for one entity ID.
137
139
  *
140
+ * @typeParam Schema The registered state schema.
138
141
  * @param schema The registered entity state schema.
139
142
  * @param id The entity ID to read.
140
143
  * @param options The tenant slice to read.
@@ -164,6 +167,7 @@ export class Stand {
164
167
  /**
165
168
  * Reads all latest states and version metadata in storage query order.
166
169
  *
170
+ * @typeParam Schema The registered state schema.
167
171
  * @param schema The registered entity state schema.
168
172
  * @param options The tenant slice to read.
169
173
  * @returns The current states and versions in query order.
@@ -174,6 +178,7 @@ export class Stand {
174
178
  /**
175
179
  * Finds latest states and version metadata in storage query order.
176
180
  *
181
+ * @typeParam Schema The registered state schema.
177
182
  * @param schema The registered entity state schema.
178
183
  * @param query The legacy record query to apply.
179
184
  * @param options The tenant slice to read.
@@ -187,7 +192,7 @@ export class Stand {
187
192
  const storage = this.#leaseCurrent(registration, tenantId);
188
193
  try {
189
194
  const stored = await storage.current.query(_a.#legacyPlan(query));
190
- const results = stored.map((entry) => this.#entryResult(registration, entry.record, query.mask));
195
+ const results = stored.map((entry) => this.#entryResult(registration, entry.record));
191
196
  return results.filter((result) => result !== undefined);
192
197
  }
193
198
  finally {
@@ -201,6 +206,7 @@ export class Stand {
201
206
  /**
202
207
  * Finds latest states through a normalized plan and retains versions.
203
208
  *
209
+ * @typeParam Schema The registered state schema.
204
210
  * @param schema The registered entity state schema.
205
211
  * @param plan The normalized storage query plan to apply.
206
212
  * @param options The tenant slice to read.
@@ -214,7 +220,7 @@ export class Stand {
214
220
  const storage = this.#leaseCurrent(registration, tenantId);
215
221
  try {
216
222
  const stored = await storage.current.query(plan);
217
- const results = stored.map((entry) => this.#entryResult(registration, entry.record, plan.mask?.paths));
223
+ const results = stored.map((entry) => this.#entryResult(registration, entry.record));
218
224
  return results.filter((result) => result !== undefined);
219
225
  }
220
226
  finally {
@@ -270,6 +276,7 @@ export class Stand {
270
276
  /**
271
277
  * Records one latest entity state and delivers an update to matching subscribers.
272
278
  *
279
+ * @typeParam Schema The registered state schema.
273
280
  * @param schema The registered entity state schema.
274
281
  * @param state The latest entity state to store.
275
282
  * @param options The tenant, version, and lifecycle metadata to store.
@@ -286,53 +293,43 @@ export class Stand {
286
293
  throw error;
287
294
  }
288
295
  }
289
- async #deferUpdate(schema, state, options) {
290
- return await this.#prepareUpdate(schema, state, options);
296
+ /**
297
+ * Prepares a repository update without notifying subscribers yet.
298
+ *
299
+ * @typeParam Schema The state message schema.
300
+ * @param schema Registered state schema.
301
+ * @param state State to persist.
302
+ * @param options Tenant and version metadata.
303
+ * @param metadata Repository-validated metadata for this schema, when available.
304
+ * @returns Deferred write and notification actions.
305
+ */
306
+ async #deferUpdate(schema, state, options, metadata) {
307
+ return await this.#prepareUpdate(schema, state, options, metadata);
291
308
  }
292
- async #prepareUpdate(schema, state, options) {
309
+ /**
310
+ * Reserves storage and captures subscribers for one state update.
311
+ *
312
+ * @typeParam Schema The state message schema.
313
+ * @param schema Registered state schema.
314
+ * @param state State to persist.
315
+ * @param options Tenant and version metadata.
316
+ * @param metadata Repository-validated metadata for this schema, when available.
317
+ * @returns Prepared write with cleanup actions.
318
+ */
319
+ async #prepareUpdate(schema, state, options, metadata) {
293
320
  const finish = this.#beginOperation();
294
321
  let storage;
295
322
  try {
296
323
  const registration = this.#registration(schema, "update");
324
+ if (metadata !== undefined && metadata.schema !== registration.schema)
325
+ throw new Error("Repository metadata does not match the Entity state schema.");
297
326
  const tenantId = this.#tenantId(options.tenantId);
327
+ const snapshot = _a.#snapshotUpdateOptions(options);
298
328
  const stateCopy = clone(schema, state);
299
329
  const id = _a.#readStateId(stateCopy, registration);
300
330
  storage = this.#leaseCurrent(registration, tenantId);
301
- const currentStorage = storage;
302
- const previous = this.#hasTenantSubscribers(registration, tenantId)
303
- ? await currentStorage.current.read(id)
304
- : undefined;
305
- const previousState = previous === undefined
306
- ? undefined
307
- : EntityRecords.unpack(registration.schema, previous).state;
308
- const subscribers = [...this.#tenantSubscribers(registration, this.#tenantKey(tenantId))];
309
- const record = EntityRecords.pack(registration.schema, id, stateCopy, options.version ?? 0n, options.lifecycle ?? { archived: false, deleted: false });
310
- let settled = false;
311
- const settle = () => {
312
- if (!settled) {
313
- settled = true;
314
- currentStorage.release();
315
- finish();
316
- }
317
- };
318
- return Object.freeze({
319
- cancel: settle,
320
- write: () => currentStorage.current.write(record),
321
- notify: () => {
322
- try {
323
- this.#notify(registration, {
324
- id,
325
- previousState,
326
- state: stateCopy,
327
- tenantId,
328
- version: options.version,
329
- }, subscribers);
330
- }
331
- finally {
332
- settle();
333
- }
334
- },
335
- });
331
+ const previousState = await this.#previousUpdateState(registration, tenantId, id, storage);
332
+ return this.#preparedUpdate(registration, { id, previousState, state: stateCopy, tenantId, version: snapshot.version }, snapshot, metadata, storage, finish);
336
333
  }
337
334
  catch (error) {
338
335
  storage?.release();
@@ -340,8 +337,89 @@ export class Stand {
340
337
  throw error;
341
338
  }
342
339
  }
340
+ /**
341
+ * Copies mutable Version and lifecycle input before update preparation awaits.
342
+ * @param options Update metadata supplied by the caller.
343
+ * @returns Detached metadata for packing and notification.
344
+ */
345
+ static #snapshotUpdateOptions(options) {
346
+ return {
347
+ ...(options.version === undefined ? {} : { version: clone(VersionSchema, options.version) }),
348
+ ...(options.lifecycle === undefined ? {} : { lifecycle: { ...options.lifecycle } }),
349
+ };
350
+ }
351
+ /**
352
+ * Reads the previous state only when a subscriber in this tenant needs it.
353
+ * @typeParam Schema Registered state schema.
354
+ * @param registration Registered state metadata.
355
+ * @param tenantId Tenant for this update.
356
+ * @param id Entity identifier.
357
+ * @param storage Leased current-record storage.
358
+ * @returns Previous state when a matching subscriber exists.
359
+ */
360
+ async #previousUpdateState(registration, tenantId, id, storage) {
361
+ if (!this.#hasTenantSubscribers(registration, tenantId))
362
+ return undefined;
363
+ const previous = await storage.current.read(id);
364
+ return previous === undefined
365
+ ? undefined
366
+ : EntityRecords.unpack(registration.schema, previous).state;
367
+ }
368
+ /**
369
+ * Captures the deferred write and subscriber notification actions.
370
+ * @typeParam Schema Registered state schema.
371
+ * @param registration Registered state metadata.
372
+ * @param update Detached state update for subscribers.
373
+ * @param options Version and lifecycle metadata to persist.
374
+ * @param metadata Repository-validated metadata for this schema, when available.
375
+ * @param storage Leased current-record storage.
376
+ * @param onFinish Completes the Stand operation.
377
+ * @returns Deferred actions for persistence and notification.
378
+ */
379
+ #preparedUpdate(registration, update, options, metadata, storage, onFinish) {
380
+ const subscribers = [
381
+ ...this.#tenantSubscribers(registration, this.#tenantKey(update.tenantId)),
382
+ ];
383
+ const record = EntityRecords.pack(registration.schema, update.id, update.state, options.version ?? 0n, options.lifecycle ?? { archived: false, deleted: false }, metadata?.idField);
384
+ const settle = _a.#settleUpdate(storage, onFinish);
385
+ return Object.freeze({
386
+ cancel: settle,
387
+ record,
388
+ write: () => storage.current.write(record),
389
+ notify: () => {
390
+ try {
391
+ this.#notify(registration, update, subscribers);
392
+ }
393
+ finally {
394
+ settle();
395
+ }
396
+ },
397
+ });
398
+ }
399
+ /**
400
+ * Closes a deferred update's lease and operation at most once.
401
+ * @param storage Leased current-record storage.
402
+ * @param onFinish Completes the Stand operation.
403
+ * @returns Idempotent cleanup action.
404
+ */
405
+ static #settleUpdate(storage, onFinish) {
406
+ let settled = false;
407
+ return () => {
408
+ if (settled)
409
+ return;
410
+ settled = true;
411
+ storage.release();
412
+ onFinish();
413
+ };
414
+ }
343
415
  /**
344
416
  * Repository-only full current-record read, including lifecycle metadata.
417
+ *
418
+ * @typeParam Schema The registered state schema.
419
+ * @param schema Registered state schema.
420
+ * @param id Entity ID to read.
421
+ * @param options Tenant selection.
422
+ * @returns Current stored state and lifecycle, if present.
345
423
  */
346
424
  async #readCurrent(schema, id, options) {
347
425
  const finish = this.#beginOperation();
@@ -373,6 +451,7 @@ export class Stand {
373
451
  /**
374
452
  * Subscribes to in-process updates for one registered state schema.
375
453
  *
454
+ * @typeParam Schema The registered state schema.
376
455
  * @param schema The registered entity state schema.
377
456
  * @param callback The function receiving matching state updates.
378
457
  * @param options The tenant slice to subscribe to.
@@ -439,6 +518,14 @@ export class Stand {
439
518
  if (errors.length > 0)
440
519
  throw new AggregateError(errors, "Stand close failed.");
441
520
  }
521
+ /**
522
+ * Resolves a registered state type for a Stand operation.
523
+ *
524
+ * @typeParam Schema The requested state schema.
525
+ * @param schema State schema to resolve.
526
+ * @param operation Operation named in an unknown-type error.
527
+ * @returns The matching registration.
528
+ */
442
529
  #registration(schema, operation) {
443
530
  this.#requireOpen();
444
531
  const typeUrl = TypeUrls.derive(schema);
@@ -484,7 +571,15 @@ export class Stand {
484
571
  },
485
572
  };
486
573
  }
487
- #entryResult(registration, current, maskPaths) {
574
+ /**
575
+ * Decodes a complete current state and its version.
576
+ *
577
+ * @typeParam Schema The decoded state schema.
578
+ * @param registration State registration.
579
+ * @param current Stored Entity record.
580
+ * @returns Current state and version unless deleted.
581
+ */
582
+ #entryResult(registration, current) {
488
583
  const value = EntityRecords.unpack(registration.schema, current);
489
584
  if (value.deleted)
490
585
  return undefined;
@@ -492,13 +587,29 @@ export class Stand {
492
587
  ? undefined
493
588
  : value.versionMessage;
494
589
  return Object.freeze({
495
- state: Object.assign(create(registration.schema), RecordMask.apply(clone(registration.schema, value.state), maskPaths)),
590
+ state: clone(registration.schema, value.state),
496
591
  ...(version === undefined ? {} : { version: clone(VersionSchema, version) }),
497
592
  });
498
593
  }
594
+ /**
595
+ * Decodes a complete current record.
596
+ *
597
+ * @typeParam Schema The decoded state schema.
598
+ * @param registration State registration.
599
+ * @param current Stored Entity record.
600
+ * @returns Current state and version unless deleted.
601
+ */
499
602
  #currentResult(registration, current) {
500
603
  return this.#entryResult(registration, current);
501
604
  }
605
+ /**
606
+ * Delivers one state update to the captured tenant subscribers.
607
+ *
608
+ * @typeParam Schema The updated state schema.
609
+ * @param registration State registration.
610
+ * @param input State and lifecycle details for the notification.
611
+ * @param captured Subscribers captured before persistence, if available.
612
+ */
502
613
  #notify(registration, input, captured) {
503
614
  const errors = [];
504
615
  const tenantKey = this.#tenantKey(input.tenantId);
@@ -531,6 +642,14 @@ export class Stand {
531
642
  }
532
643
  return false;
533
644
  }
645
+ /**
646
+ * Lists subscribers for the selected state type and tenant.
647
+ *
648
+ * @typeParam Schema The state schema.
649
+ * @param registration State registration.
650
+ * @param tenantKey Tenant key to match.
651
+ * @returns Matching subscribers.
652
+ */
534
653
  #tenantSubscribers(registration, tenantKey) {
535
654
  return [...registration.subscribers].filter((subscriber) => subscriber.tenantKey === tenantKey);
536
655
  }
@@ -577,6 +696,14 @@ export class Stand {
577
696
  finish?.();
578
697
  };
579
698
  }
699
+ /**
700
+ * Clones a state update before delivering it to subscribers.
701
+ *
702
+ * @typeParam Schema The updated state schema.
703
+ * @param registration State registration.
704
+ * @param input State and version values to clone.
705
+ * @returns Immutable update snapshot.
706
+ */
580
707
  static #createUpdate(registration, input) {
581
708
  const version = input.version === undefined ? undefined : clone(VersionSchema, input.version);
582
709
  return Object.freeze({
@@ -627,11 +754,19 @@ export class Stand {
627
754
  .map((sort) => ({ field: sort.field, direction: sort.direction ?? "asc" }))
628
755
  .map(({ field, direction }) => ({ column: field, direction })),
629
756
  }),
630
- ...(query.mask === undefined ? {} : { mask: { paths: query.mask } }),
631
757
  ...(query.limit === undefined ? {} : { limit: query.limit }),
632
758
  candidateLimit: 10_000,
633
759
  };
634
760
  }
761
+ /**
762
+ * Opens the storage provider's Entity-record seam.
763
+ *
764
+ * @typeParam I Entity identifier type.
765
+ * @typeParam S Entity state message type.
766
+ * @param factory Provider factory.
767
+ * @param input Entity storage descriptor.
768
+ * @returns Current-record storage and close handle.
769
+ */
635
770
  static #openStorage(factory, input) {
636
771
  const candidate = factory;
637
772
  if (candidate.createEntityStorage === undefined) {
@@ -650,6 +785,13 @@ _a = Stand;
650
785
  * @internal
651
786
  */
652
787
  export const standAccess = Object.freeze({
788
+ /**
789
+ * Finds observer metadata on the supplied Stand.
790
+ *
791
+ * @param stand Stand to inspect.
792
+ * @param typeUrl Candidate state type URL.
793
+ * @returns Observer metadata, if registered.
794
+ */
653
795
  observedState(stand, typeUrl) {
654
796
  if (!(stand instanceof Stand))
655
797
  throw new TypeError("State observation requires a Stand instance.");
@@ -657,22 +799,53 @@ export const standAccess = Object.freeze({
657
799
  return undefined;
658
800
  return stand.observedState(typeUrl);
659
801
  },
802
+ /**
803
+ * Attaches a subscription observer to a registered state type.
804
+ *
805
+ * @param stand Stand supplying state metadata.
806
+ * @param subscription Subscription definition.
807
+ * @param state Registered state metadata.
808
+ * @param systemEventBus Event bus for notifications.
809
+ * @param onUpdate Callback for delivered updates.
810
+ * @returns Subscription handle, if installed.
811
+ */
660
812
  observeState(stand, subscription, state, systemEventBus, onUpdate) {
661
813
  if (!(stand instanceof Stand))
662
814
  throw new TypeError("State observation requires a Stand instance.");
663
815
  return SubscriptionObservers.observeState(subscription, state, systemEventBus, onUpdate);
664
816
  },
817
+ /**
818
+ * Reads complete current state for repository restoration.
819
+ *
820
+ * @typeParam Schema The registered state schema.
821
+ * @param stand Stand to read.
822
+ * @param schema Registered state schema.
823
+ * @param id Entity ID to read.
824
+ * @param options Tenant selection.
825
+ * @returns Current state and lifecycle, if present.
826
+ */
665
827
  readCurrent(stand, schema, id, options) {
666
828
  const read = currentReads.get(stand);
667
829
  if (read === undefined)
668
830
  throw new TypeError("Stand current read requires a Stand instance.");
669
831
  return read(schema, id, options);
670
832
  },
671
- deferUpdate(stand, schema, state, options) {
833
+ /**
834
+ * Prepares a state update that notifies subscribers after persistence.
835
+ *
836
+ * @typeParam Schema The registered state schema.
837
+ * @param stand Stand to update.
838
+ * @param schema Registered state schema.
839
+ * @param state New state value.
840
+ * @param options Tenant and version metadata.
841
+ * @param metadata Repository-validated metadata for this schema, when available.
842
+ * @returns Deferred update actions.
843
+ */
844
+ deferUpdate(stand, schema, state, options, metadata) {
672
845
  const deferred = deferredUpdates.get(stand);
673
846
  if (deferred === undefined)
674
847
  throw new TypeError("Stand deferred update requires a Stand instance.");
675
- return deferred(schema, state, options);
848
+ return deferred(schema, state, options, metadata);
676
849
  },
677
850
  });
678
851
  const deferredUpdates = new WeakMap();
@@ -1 +1 @@
1
- {"version":3,"file":"stand.js","sourceRoot":"","sources":["../../src/stand/stand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stand.js","sourceRoot":"","sources":["../../src/stand/stand.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"subscription-observer.d.ts","sourceRoot":"","sources":["../../src/stand/subscription-observer.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAWrF,OAAO,EAUL,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,kCAAkC,CAAC;AAI1C,OAAO,EAAkB,KAAK,QAAQ,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK5F;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAGjC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAmBD;;;;;GAKG;AACH,qBAAa,qBAAqB;;IAGhC;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,YAAY,CACjB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,QAAQ,GAAG,SAAS,EACpC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,GAC7C,iBAAiB,GAAG,SAAS;IAiBhC;;;;;;;;;OASG;IACH,MAAM,CAAC,YAAY,CACjB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,kBAAkB,EACzB,cAAc,EAAE,QAAQ,GAAG,SAAS,EACpC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,GAC7C,iBAAiB,GAAG,SAAS;CA6fjC"}
1
+ {"version":3,"file":"subscription-observer.d.ts","sourceRoot":"","sources":["../../src/stand/subscription-observer.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAWrF,OAAO,EAUL,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAkB,KAAK,QAAQ,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK5F;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAGjC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAwBD;;;;;GAKG;AACH,qBAAa,qBAAqB;;IAGhC;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,YAAY,CACjB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,QAAQ,GAAG,SAAS,EACpC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,GAC7C,iBAAiB,GAAG,SAAS;IAiBhC;;;;;;;;;OASG;IACH,MAAM,CAAC,YAAY,CACjB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,kBAAkB,EACzB,cAAc,EAAE,QAAQ,GAAG,SAAS,EACpC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,GAC7C,iBAAiB,GAAG,SAAS;CA6ejC"}
@@ -15,10 +15,9 @@ import { clone, create, toBinary } from "@bufbuild/protobuf";
15
15
  import { AnySchema, BoolValueSchema, BytesValueSchema, DoubleValueSchema, FloatValueSchema, Int32ValueSchema, Int64ValueSchema, StringValueSchema, UInt32ValueSchema, UInt64ValueSchema, } from "@bufbuild/protobuf/wkt";
16
16
  import { AnyMessages, TypeUrls } from "@spine-event-engine/core";
17
17
  import { EventSchema, ResponseSchema, StatusSchema, TenantIdSchema, VersionSchema, } from "@spine-event-engine/proto";
18
- import { TenantBoundary } from "@spine-event-engine/storage";
18
+ import { TenantBoundary } from "@spine-event-engine/storage/provider";
19
19
  import { EntityStateUpdateSchema, EntityUpdatesSchema, EventUpdatesSchema, Filter_Operator, CompositeFilter_CompositeOperator, SubscriptionSchema, SubscriptionUpdateSchema, } from "@spine-event-engine/proto/client";
20
20
  import * as EntityLog from "@spine-event-engine/proto/generated/spine/system/server/entity_log_events_pb.js";
21
- import { RecordMask } from "@spine-event-engine/storage";
22
21
  import { eventBusAccess } from "../bus/event-bus.js";
23
22
  /**
24
23
  * Groups the internal operations that observe and render canonical Stand
@@ -212,7 +211,9 @@ export class SubscriptionObservers {
212
211
  kind: match === "state"
213
212
  ? {
214
213
  case: "state",
215
- value: AnyMessages.pack(state.schema, RecordMask.apply(clone(state.schema, update.state), matcher.mask), { validate: false }),
214
+ value: AnyMessages.pack(state.schema, clone(state.schema, update.state), {
215
+ validate: false,
216
+ }),
216
217
  }
217
218
  : { case: "noLongerMatching", value: true },
218
219
  }),
@@ -269,15 +270,13 @@ export class SubscriptionObservers {
269
270
  }
270
271
  static #createMatcher(subscription, state) {
271
272
  const target = subscription.topic?.target;
272
- const mask = SubscriptionObservers.#localMask(subscription, state.schema);
273
273
  if (target?.criterion.case !== "filters")
274
- return { mask, match: () => "state" };
274
+ return { match: () => "state" };
275
275
  const filters = target.criterion.value;
276
276
  const idField = SubscriptionObservers.#findField(state.schema, state.idField);
277
277
  const ids = filters.idFilter?.id.map((value) => SubscriptionObservers.#decodeId(value, idField?.message));
278
278
  const predicate = SubscriptionObservers.#createPredicate(filters.filter, state.schema);
279
279
  return {
280
- mask,
281
280
  match(update) {
282
281
  if (ids !== undefined &&
283
282
  !ids.some((id) => SubscriptionObservers.#equals(update.id, id, idField?.message))) {
@@ -312,12 +311,6 @@ export class SubscriptionObservers {
312
311
  const expected = SubscriptionObservers.#unpackValue(filter.value, path.leaf?.message);
313
312
  return (state) => SubscriptionObservers.#equals(SubscriptionObservers.#readPath(state, path.local), expected, path.leaf?.message);
314
313
  }
315
- static #localMask(subscription, schema) {
316
- const paths = subscription.topic?.fieldMask?.paths ?? [];
317
- return paths.length === 0
318
- ? undefined
319
- : paths.map((path) => SubscriptionObservers.#resolvePath(schema, path.split(".")).local.join("."));
320
- }
321
314
  static #resolvePath(schema, names) {
322
315
  let current = schema;
323
316
  let leaf;