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

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 (354) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +569 -0
  3. package/REFERENCE.md +488 -0
  4. package/dist/bus/command-bus.d.ts +61 -0
  5. package/dist/bus/command-bus.d.ts.map +1 -0
  6. package/dist/bus/command-bus.js +201 -0
  7. package/dist/bus/command-bus.js.map +1 -0
  8. package/dist/bus/command-dispatcher-registry.d.ts +33 -0
  9. package/dist/bus/command-dispatcher-registry.d.ts.map +1 -0
  10. package/dist/bus/command-dispatcher-registry.js +75 -0
  11. package/dist/bus/command-dispatcher-registry.js.map +1 -0
  12. package/dist/bus/command-dispatcher.d.ts +25 -0
  13. package/dist/bus/command-dispatcher.d.ts.map +1 -0
  14. package/dist/bus/command-dispatcher.js +15 -0
  15. package/dist/bus/command-dispatcher.js.map +1 -0
  16. package/dist/bus/command-errors.d.ts +23 -0
  17. package/dist/bus/command-errors.d.ts.map +1 -0
  18. package/dist/bus/command-errors.js +52 -0
  19. package/dist/bus/command-errors.js.map +1 -0
  20. package/dist/bus/event-bus.d.ts +113 -0
  21. package/dist/bus/event-bus.d.ts.map +1 -0
  22. package/dist/bus/event-bus.js +518 -0
  23. package/dist/bus/event-bus.js.map +1 -0
  24. package/dist/bus/event-dispatcher-origin-schemas.d.ts +17 -0
  25. package/dist/bus/event-dispatcher-origin-schemas.d.ts.map +1 -0
  26. package/dist/bus/event-dispatcher-origin-schemas.js +32 -0
  27. package/dist/bus/event-dispatcher-origin-schemas.js.map +1 -0
  28. package/dist/bus/event-dispatcher-registry.d.ts +48 -0
  29. package/dist/bus/event-dispatcher-registry.d.ts.map +1 -0
  30. package/dist/bus/event-dispatcher-registry.js +176 -0
  31. package/dist/bus/event-dispatcher-registry.js.map +1 -0
  32. package/dist/bus/event-dispatcher.d.ts +48 -0
  33. package/dist/bus/event-dispatcher.d.ts.map +1 -0
  34. package/dist/bus/event-dispatcher.js +15 -0
  35. package/dist/bus/event-dispatcher.js.map +1 -0
  36. package/dist/context/bounded-context.d.ts +606 -0
  37. package/dist/context/bounded-context.d.ts.map +1 -0
  38. package/dist/context/bounded-context.js +1780 -0
  39. package/dist/context/bounded-context.js.map +1 -0
  40. package/dist/context/entity-inbox.d.ts +63 -0
  41. package/dist/context/entity-inbox.d.ts.map +1 -0
  42. package/dist/context/entity-inbox.js +380 -0
  43. package/dist/context/entity-inbox.js.map +1 -0
  44. package/dist/context/local-inbox-handoff.d.ts +244 -0
  45. package/dist/context/local-inbox-handoff.d.ts.map +1 -0
  46. package/dist/context/local-inbox-handoff.js +334 -0
  47. package/dist/context/local-inbox-handoff.js.map +1 -0
  48. package/dist/context/projection-handoff.d.ts +46 -0
  49. package/dist/context/projection-handoff.d.ts.map +1 -0
  50. package/dist/context/projection-handoff.js +172 -0
  51. package/dist/context/projection-handoff.js.map +1 -0
  52. package/dist/context/tenant-index.d.ts +41 -0
  53. package/dist/context/tenant-index.d.ts.map +1 -0
  54. package/dist/context/tenant-index.js +92 -0
  55. package/dist/context/tenant-index.js.map +1 -0
  56. package/dist/delivery/conditional-pickup.d.ts +25 -0
  57. package/dist/delivery/conditional-pickup.d.ts.map +1 -0
  58. package/dist/delivery/conditional-pickup.js +26 -0
  59. package/dist/delivery/conditional-pickup.js.map +1 -0
  60. package/dist/delivery/delivery-builder.d.ts +216 -0
  61. package/dist/delivery/delivery-builder.d.ts.map +1 -0
  62. package/dist/delivery/delivery-builder.js +323 -0
  63. package/dist/delivery/delivery-builder.js.map +1 -0
  64. package/dist/delivery/delivery-lease.d.ts +15 -0
  65. package/dist/delivery/delivery-lease.d.ts.map +1 -0
  66. package/dist/delivery/delivery-lease.js +44 -0
  67. package/dist/delivery/delivery-lease.js.map +1 -0
  68. package/dist/delivery/delivery-loop.d.ts +113 -0
  69. package/dist/delivery/delivery-loop.d.ts.map +1 -0
  70. package/dist/delivery/delivery-loop.js +119 -0
  71. package/dist/delivery/delivery-loop.js.map +1 -0
  72. package/dist/delivery/delivery-monitor.d.ts +165 -0
  73. package/dist/delivery/delivery-monitor.d.ts.map +1 -0
  74. package/dist/delivery/delivery-monitor.js +168 -0
  75. package/dist/delivery/delivery-monitor.js.map +1 -0
  76. package/dist/delivery/delivery-ports.d.ts +141 -0
  77. package/dist/delivery/delivery-ports.d.ts.map +1 -0
  78. package/dist/delivery/delivery-ports.js +15 -0
  79. package/dist/delivery/delivery-ports.js.map +1 -0
  80. package/dist/delivery/delivery-run-control.d.ts +50 -0
  81. package/dist/delivery/delivery-run-control.d.ts.map +1 -0
  82. package/dist/delivery/delivery-run-control.js +66 -0
  83. package/dist/delivery/delivery-run-control.js.map +1 -0
  84. package/dist/delivery/delivery-run-coordinator.d.ts +218 -0
  85. package/dist/delivery/delivery-run-coordinator.d.ts.map +1 -0
  86. package/dist/delivery/delivery-run-coordinator.js +609 -0
  87. package/dist/delivery/delivery-run-coordinator.js.map +1 -0
  88. package/dist/delivery/delivery-storage-error.d.ts +13 -0
  89. package/dist/delivery/delivery-storage-error.d.ts.map +1 -0
  90. package/dist/delivery/delivery-storage-error.js +30 -0
  91. package/dist/delivery/delivery-storage-error.js.map +1 -0
  92. package/dist/delivery/delivery-supervisor.d.ts +175 -0
  93. package/dist/delivery/delivery-supervisor.d.ts.map +1 -0
  94. package/dist/delivery/delivery-supervisor.js +469 -0
  95. package/dist/delivery/delivery-supervisor.js.map +1 -0
  96. package/dist/delivery/delivery-worker.d.ts +180 -0
  97. package/dist/delivery/delivery-worker.d.ts.map +1 -0
  98. package/dist/delivery/delivery-worker.js +232 -0
  99. package/dist/delivery/delivery-worker.js.map +1 -0
  100. package/dist/delivery/delivery.d.ts +238 -0
  101. package/dist/delivery/delivery.d.ts.map +1 -0
  102. package/dist/delivery/delivery.js +400 -0
  103. package/dist/delivery/delivery.js.map +1 -0
  104. package/dist/delivery/inbox-records.d.ts +19 -0
  105. package/dist/delivery/inbox-records.d.ts.map +1 -0
  106. package/dist/delivery/inbox-records.js +291 -0
  107. package/dist/delivery/inbox-records.js.map +1 -0
  108. package/dist/delivery/inbox-storage.d.ts +81 -0
  109. package/dist/delivery/inbox-storage.d.ts.map +1 -0
  110. package/dist/delivery/inbox-storage.js +353 -0
  111. package/dist/delivery/inbox-storage.js.map +1 -0
  112. package/dist/delivery/inbox.d.ts +263 -0
  113. package/dist/delivery/inbox.d.ts.map +1 -0
  114. package/dist/delivery/inbox.js +172 -0
  115. package/dist/delivery/inbox.js.map +1 -0
  116. package/dist/delivery/parked-delivery-obligations.d.ts +182 -0
  117. package/dist/delivery/parked-delivery-obligations.d.ts.map +1 -0
  118. package/dist/delivery/parked-delivery-obligations.js +390 -0
  119. package/dist/delivery/parked-delivery-obligations.js.map +1 -0
  120. package/dist/delivery/shard-index.d.ts +41 -0
  121. package/dist/delivery/shard-index.d.ts.map +1 -0
  122. package/dist/delivery/shard-index.js +67 -0
  123. package/dist/delivery/shard-index.js.map +1 -0
  124. package/dist/delivery/sharded-work-registry.d.ts +114 -0
  125. package/dist/delivery/sharded-work-registry.d.ts.map +1 -0
  126. package/dist/delivery/sharded-work-registry.js +360 -0
  127. package/dist/delivery/sharded-work-registry.js.map +1 -0
  128. package/dist/entity/entity-metadata.d.ts +173 -0
  129. package/dist/entity/entity-metadata.d.ts.map +1 -0
  130. package/dist/entity/entity-metadata.js +187 -0
  131. package/dist/entity/entity-metadata.js.map +1 -0
  132. package/dist/entity/entity-storage-descriptor.d.ts +64 -0
  133. package/dist/entity/entity-storage-descriptor.d.ts.map +1 -0
  134. package/dist/entity/entity-storage-descriptor.js +227 -0
  135. package/dist/entity/entity-storage-descriptor.js.map +1 -0
  136. package/dist/entity/entity-transaction.d.ts +372 -0
  137. package/dist/entity/entity-transaction.d.ts.map +1 -0
  138. package/dist/entity/entity-transaction.js +413 -0
  139. package/dist/entity/entity-transaction.js.map +1 -0
  140. package/dist/entity/entity-transition-validation.d.ts +47 -0
  141. package/dist/entity/entity-transition-validation.d.ts.map +1 -0
  142. package/dist/entity/entity-transition-validation.js +327 -0
  143. package/dist/entity/entity-transition-validation.js.map +1 -0
  144. package/dist/entity/entity.d.ts +499 -0
  145. package/dist/entity/entity.d.ts.map +1 -0
  146. package/dist/entity/entity.js +829 -0
  147. package/dist/entity/entity.js.map +1 -0
  148. package/dist/entity/implicit-required-id.d.ts +15 -0
  149. package/dist/entity/implicit-required-id.d.ts.map +1 -0
  150. package/dist/entity/implicit-required-id.js +123 -0
  151. package/dist/entity/implicit-required-id.js.map +1 -0
  152. package/dist/entity/spec-scanner.d.ts +14 -0
  153. package/dist/entity/spec-scanner.d.ts.map +1 -0
  154. package/dist/entity/spec-scanner.js +37 -0
  155. package/dist/entity/spec-scanner.js.map +1 -0
  156. package/dist/handler/build-time-handler-analyzer.d.ts +150 -0
  157. package/dist/handler/build-time-handler-analyzer.d.ts.map +1 -0
  158. package/dist/handler/build-time-handler-analyzer.js +1101 -0
  159. package/dist/handler/build-time-handler-analyzer.js.map +1 -0
  160. package/dist/handler/command-registration-readiness.d.ts +99 -0
  161. package/dist/handler/command-registration-readiness.d.ts.map +1 -0
  162. package/dist/handler/command-registration-readiness.js +118 -0
  163. package/dist/handler/command-registration-readiness.js.map +1 -0
  164. package/dist/handler/event-handler-filter.d.ts +43 -0
  165. package/dist/handler/event-handler-filter.d.ts.map +1 -0
  166. package/dist/handler/event-handler-filter.js +128 -0
  167. package/dist/handler/event-handler-filter.js.map +1 -0
  168. package/dist/handler/event-registration-readiness.d.ts +196 -0
  169. package/dist/handler/event-registration-readiness.d.ts.map +1 -0
  170. package/dist/handler/event-registration-readiness.js +187 -0
  171. package/dist/handler/event-registration-readiness.js.map +1 -0
  172. package/dist/handler/external.d.ts +10 -0
  173. package/dist/handler/external.d.ts.map +1 -0
  174. package/dist/handler/external.js +15 -0
  175. package/dist/handler/external.js.map +1 -0
  176. package/dist/handler/generated-handler-registry.d.ts +154 -0
  177. package/dist/handler/generated-handler-registry.d.ts.map +1 -0
  178. package/dist/handler/generated-handler-registry.js +223 -0
  179. package/dist/handler/generated-handler-registry.js.map +1 -0
  180. package/dist/handler/generated-registry-discovery.d.ts +94 -0
  181. package/dist/handler/generated-registry-discovery.d.ts.map +1 -0
  182. package/dist/handler/generated-registry-discovery.js +228 -0
  183. package/dist/handler/generated-registry-discovery.js.map +1 -0
  184. package/dist/handler/generated-registry-writer.d.ts +58 -0
  185. package/dist/handler/generated-registry-writer.d.ts.map +1 -0
  186. package/dist/handler/generated-registry-writer.js +458 -0
  187. package/dist/handler/generated-registry-writer.js.map +1 -0
  188. package/dist/handler/handler-codegen.d.ts +48 -0
  189. package/dist/handler/handler-codegen.d.ts.map +1 -0
  190. package/dist/handler/handler-codegen.js +214 -0
  191. package/dist/handler/handler-codegen.js.map +1 -0
  192. package/dist/handler/handler-decorators.d.ts +134 -0
  193. package/dist/handler/handler-decorators.d.ts.map +1 -0
  194. package/dist/handler/handler-decorators.js +239 -0
  195. package/dist/handler/handler-decorators.js.map +1 -0
  196. package/dist/handler/handler-metadata.d.ts +510 -0
  197. package/dist/handler/handler-metadata.d.ts.map +1 -0
  198. package/dist/handler/handler-metadata.js +391 -0
  199. package/dist/handler/handler-metadata.js.map +1 -0
  200. package/dist/handler/registration-readiness-metadata.d.ts +68 -0
  201. package/dist/handler/registration-readiness-metadata.d.ts.map +1 -0
  202. package/dist/handler/registration-readiness-metadata.js +170 -0
  203. package/dist/handler/registration-readiness-metadata.js.map +1 -0
  204. package/dist/handler/rejection-source.d.ts +11 -0
  205. package/dist/handler/rejection-source.d.ts.map +1 -0
  206. package/dist/handler/rejection-source.js +25 -0
  207. package/dist/handler/rejection-source.js.map +1 -0
  208. package/dist/index.d.ts +46 -0
  209. package/dist/index.d.ts.map +1 -0
  210. package/dist/index.js +54 -0
  211. package/dist/index.js.map +1 -0
  212. package/dist/integration/external-messages.d.ts +49 -0
  213. package/dist/integration/external-messages.d.ts.map +1 -0
  214. package/dist/integration/external-messages.js +112 -0
  215. package/dist/integration/external-messages.js.map +1 -0
  216. package/dist/integration/integration-broker.d.ts +74 -0
  217. package/dist/integration/integration-broker.d.ts.map +1 -0
  218. package/dist/integration/integration-broker.js +444 -0
  219. package/dist/integration/integration-broker.js.map +1 -0
  220. package/dist/integration/third-party-context.d.ts +56 -0
  221. package/dist/integration/third-party-context.d.ts.map +1 -0
  222. package/dist/integration/third-party-context.js +130 -0
  223. package/dist/integration/third-party-context.js.map +1 -0
  224. package/dist/repository/command-errors.d.ts +25 -0
  225. package/dist/repository/command-errors.d.ts.map +1 -0
  226. package/dist/repository/command-errors.js +43 -0
  227. package/dist/repository/command-errors.js.map +1 -0
  228. package/dist/repository/command-routing.d.ts +72 -0
  229. package/dist/repository/command-routing.d.ts.map +1 -0
  230. package/dist/repository/command-routing.js +98 -0
  231. package/dist/repository/command-routing.js.map +1 -0
  232. package/dist/repository/commit-fence.d.ts +22 -0
  233. package/dist/repository/commit-fence.d.ts.map +1 -0
  234. package/dist/repository/commit-fence.js +37 -0
  235. package/dist/repository/commit-fence.js.map +1 -0
  236. package/dist/repository/event-routing.d.ts +71 -0
  237. package/dist/repository/event-routing.d.ts.map +1 -0
  238. package/dist/repository/event-routing.js +96 -0
  239. package/dist/repository/event-routing.js.map +1 -0
  240. package/dist/repository/primitive-id.d.ts +86 -0
  241. package/dist/repository/primitive-id.d.ts.map +1 -0
  242. package/dist/repository/primitive-id.js +110 -0
  243. package/dist/repository/primitive-id.js.map +1 -0
  244. package/dist/repository/repository.d.ts +670 -0
  245. package/dist/repository/repository.d.ts.map +1 -0
  246. package/dist/repository/repository.js +3298 -0
  247. package/dist/repository/repository.js.map +1 -0
  248. package/dist/repository/routing-declarations.d.ts +75 -0
  249. package/dist/repository/routing-declarations.d.ts.map +1 -0
  250. package/dist/repository/routing-declarations.js +101 -0
  251. package/dist/repository/routing-declarations.js.map +1 -0
  252. package/dist/repository/state-update-routing.d.ts +66 -0
  253. package/dist/repository/state-update-routing.d.ts.map +1 -0
  254. package/dist/repository/state-update-routing.js +91 -0
  255. package/dist/repository/state-update-routing.js.map +1 -0
  256. package/dist/runtime/runtime.d.ts +156 -0
  257. package/dist/runtime/runtime.d.ts.map +1 -0
  258. package/dist/runtime/runtime.js +215 -0
  259. package/dist/runtime/runtime.js.map +1 -0
  260. package/dist/runtime/signal-intake.d.ts +84 -0
  261. package/dist/runtime/signal-intake.d.ts.map +1 -0
  262. package/dist/runtime/signal-intake.js +94 -0
  263. package/dist/runtime/signal-intake.js.map +1 -0
  264. package/dist/runtime/signal-metadata.d.ts +242 -0
  265. package/dist/runtime/signal-metadata.d.ts.map +1 -0
  266. package/dist/runtime/signal-metadata.js +368 -0
  267. package/dist/runtime/signal-metadata.js.map +1 -0
  268. package/dist/server/browser-server.d.ts +49 -0
  269. package/dist/server/browser-server.d.ts.map +1 -0
  270. package/dist/server/browser-server.js +633 -0
  271. package/dist/server/browser-server.js.map +1 -0
  272. package/dist/server/durable-subscription-bindings.d.ts +122 -0
  273. package/dist/server/durable-subscription-bindings.d.ts.map +1 -0
  274. package/dist/server/durable-subscription-bindings.js +524 -0
  275. package/dist/server/durable-subscription-bindings.js.map +1 -0
  276. package/dist/server/environment-attachment.d.ts +356 -0
  277. package/dist/server/environment-attachment.d.ts.map +1 -0
  278. package/dist/server/environment-attachment.js +2061 -0
  279. package/dist/server/environment-attachment.js.map +1 -0
  280. package/dist/server/environment-delivery-records.d.ts +77 -0
  281. package/dist/server/environment-delivery-records.d.ts.map +1 -0
  282. package/dist/server/environment-delivery-records.js +282 -0
  283. package/dist/server/environment-delivery-records.js.map +1 -0
  284. package/dist/server/environment-delivery-worker.d.ts +161 -0
  285. package/dist/server/environment-delivery-worker.d.ts.map +1 -0
  286. package/dist/server/environment-delivery-worker.js +664 -0
  287. package/dist/server/environment-delivery-worker.js.map +1 -0
  288. package/dist/server/environment.d.ts +43 -0
  289. package/dist/server/environment.d.ts.map +1 -0
  290. package/dist/server/environment.js +90 -0
  291. package/dist/server/environment.js.map +1 -0
  292. package/dist/server/managed-child-subscription.d.ts +11 -0
  293. package/dist/server/managed-child-subscription.d.ts.map +1 -0
  294. package/dist/server/managed-child-subscription.js +44 -0
  295. package/dist/server/managed-child-subscription.js.map +1 -0
  296. package/dist/server/managed-server-application.d.ts +324 -0
  297. package/dist/server/managed-server-application.d.ts.map +1 -0
  298. package/dist/server/managed-server-application.js +937 -0
  299. package/dist/server/managed-server-application.js.map +1 -0
  300. package/dist/server/node-coordinator.d.ts +191 -0
  301. package/dist/server/node-coordinator.d.ts.map +1 -0
  302. package/dist/server/node-coordinator.js +552 -0
  303. package/dist/server/node-coordinator.js.map +1 -0
  304. package/dist/server/process-server-coordinator.d.ts +15 -0
  305. package/dist/server/process-server-coordinator.d.ts.map +1 -0
  306. package/dist/server/process-server-coordinator.js +112 -0
  307. package/dist/server/process-server-coordinator.js.map +1 -0
  308. package/dist/server/reserved-spine-rpc-paths.json +8 -0
  309. package/dist/server/retryable-close.d.ts +28 -0
  310. package/dist/server/retryable-close.d.ts.map +1 -0
  311. package/dist/server/retryable-close.js +129 -0
  312. package/dist/server/retryable-close.js.map +1 -0
  313. package/dist/server/server-environment.d.ts +180 -0
  314. package/dist/server/server-environment.d.ts.map +1 -0
  315. package/dist/server/server-environment.js +418 -0
  316. package/dist/server/server-environment.js.map +1 -0
  317. package/dist/server/server-log.d.ts +18 -0
  318. package/dist/server/server-log.d.ts.map +1 -0
  319. package/dist/server/server-log.js +96 -0
  320. package/dist/server/server-log.js.map +1 -0
  321. package/dist/server/server.d.ts +389 -0
  322. package/dist/server/server.d.ts.map +1 -0
  323. package/dist/server/server.js +752 -0
  324. package/dist/server/server.js.map +1 -0
  325. package/dist/services/spine-services.d.ts +88 -0
  326. package/dist/services/spine-services.d.ts.map +1 -0
  327. package/dist/services/spine-services.js +1586 -0
  328. package/dist/services/spine-services.js.map +1 -0
  329. package/dist/stand/stand.d.ts +294 -0
  330. package/dist/stand/stand.d.ts.map +1 -0
  331. package/dist/stand/stand.js +680 -0
  332. package/dist/stand/stand.js.map +1 -0
  333. package/dist/stand/subscription-observer.d.ts +53 -0
  334. package/dist/stand/subscription-observer.d.ts.map +1 -0
  335. package/dist/stand/subscription-observer.js +444 -0
  336. package/dist/stand/subscription-observer.js.map +1 -0
  337. package/dist/stand/subscription-records.d.ts +12 -0
  338. package/dist/stand/subscription-records.d.ts.map +1 -0
  339. package/dist/stand/subscription-records.js +99 -0
  340. package/dist/stand/subscription-records.js.map +1 -0
  341. package/dist/stand/subscription-registry.d.ts +285 -0
  342. package/dist/stand/subscription-registry.d.ts.map +1 -0
  343. package/dist/stand/subscription-registry.js +403 -0
  344. package/dist/stand/subscription-registry.js.map +1 -0
  345. package/dist/stand/subscription-runtime.d.ts +102 -0
  346. package/dist/stand/subscription-runtime.d.ts.map +1 -0
  347. package/dist/stand/subscription-runtime.js +380 -0
  348. package/dist/stand/subscription-runtime.js.map +1 -0
  349. package/dist/testing/index.d.ts +14 -0
  350. package/dist/testing/index.d.ts.map +1 -0
  351. package/dist/testing/index.js +34 -0
  352. package/dist/testing/index.js.map +1 -0
  353. package/dist/tsconfig.tsbuildinfo +1 -0
  354. package/package.json +65 -0
@@ -0,0 +1,606 @@
1
+ import type { ILogLayer } from "loglayer";
2
+ import { type Command, type Event, type TenantId } from "@spine-event-engine/proto";
3
+ import { type StorageContext, type StorageFactory } from "@spine-event-engine/storage";
4
+ import { CommandBus } from "../bus/command-bus.js";
5
+ import type { CommandDispatcher } from "../bus/command-dispatcher.js";
6
+ import { EventBus, type EventSubscriber, type EventSubscription } from "../bus/event-bus.js";
7
+ import type { EventDispatcher } from "../bus/event-dispatcher.js";
8
+ import { type DeliveryEndpoint, type DeliveryReady, type OnDeliveryReady } from "./local-inbox-handoff.js";
9
+ import { type TenantIndex } from "./tenant-index.js";
10
+ import { Repository, type ConcreteRepositoryEntityType, type RepositoryEntityType, type RepositoryOptions, type RepositoryView } from "../repository/repository.js";
11
+ import { Stand } from "../stand/stand.js";
12
+ import { SubscriptionRuntime } from "../stand/subscription-runtime.js";
13
+ import { type StandSubscriptionRegistry } from "../stand/subscription-registry.js";
14
+ import type { DeliveryEndpointMessage } from "../delivery/delivery.js";
15
+ import { type DeliveryStrategy } from "../delivery/delivery-builder.js";
16
+ /**
17
+ * Tenant isolation mode declared by a bounded context specification.
18
+ */
19
+ export type TenantMode = "single-tenant" | "multitenant";
20
+ /**
21
+ * Immutable bounded context name value.
22
+ */
23
+ export interface BoundedContextName {
24
+ /**
25
+ * Non-empty, non-blank bounded context name that does not start with `__spine/`.
26
+ */
27
+ readonly value: string;
28
+ }
29
+ /**
30
+ * Small immutable bounded-context specification snapshot.
31
+ */
32
+ export interface ContextSpecSnapshot {
33
+ /**
34
+ * Bounded context name value.
35
+ */
36
+ readonly name: BoundedContextName;
37
+ /**
38
+ * Whether the context requires tenant isolation.
39
+ */
40
+ readonly multitenant: boolean;
41
+ /**
42
+ * Whether the context stores its domain event log.
43
+ */
44
+ readonly storesEvents: boolean;
45
+ }
46
+ /**
47
+ * Small built bounded-context metadata snapshot.
48
+ */
49
+ export interface BoundedContextSnapshot {
50
+ /**
51
+ * Bounded context name value.
52
+ */
53
+ readonly name: BoundedContextName;
54
+ /**
55
+ * Tenant isolation mode for the built context.
56
+ */
57
+ readonly tenantMode: TenantMode;
58
+ /**
59
+ * Context specification used to build the context.
60
+ */
61
+ readonly spec: ContextSpecSnapshot;
62
+ }
63
+ interface SystemPairingSnapshot {
64
+ readonly domain: BoundedContextSnapshot;
65
+ readonly system: ContextSpecSnapshot;
66
+ }
67
+ /**
68
+ * Selects a tenant-specific delivery startup scope.
69
+ */
70
+ export interface DeliveryTenantScope {
71
+ /**
72
+ * Identifies the tenant, or is absent for the single-tenant scope.
73
+ */
74
+ readonly tenantId?: TenantId;
75
+ }
76
+ /**
77
+ * Gives delivery infrastructure access to one built bounded context.
78
+ */
79
+ export interface ContextDeliveryDescriptor {
80
+ /**
81
+ * Creates storage used by the context's delivery routes.
82
+ */
83
+ readonly storageFactory: StorageFactory;
84
+ /**
85
+ * Lists tenant scopes that existing delivery work may require at startup.
86
+ *
87
+ * @returns Resolves to immutable tenant delivery scopes.
88
+ */
89
+ startupScopes(): Promise<readonly DeliveryTenantScope[]>;
90
+ /**
91
+ * Creates the storage context for a delivery scope.
92
+ *
93
+ * @param scope Selects the tenant scope to represent.
94
+ * @returns Returns the matching storage context.
95
+ */
96
+ storageContext(scope: DeliveryTenantScope): StorageContext;
97
+ /**
98
+ * Lists delivery endpoints registered by the context's local inboxes.
99
+ *
100
+ * @returns Returns immutable endpoint descriptions.
101
+ */
102
+ endpoints(): readonly DeliveryEndpoint[];
103
+ /**
104
+ * Dispatches a durable inbox message through its registered target.
105
+ *
106
+ * @param message Contains the delivery message to replay.
107
+ * @param tenantId Identifies the delivery tenant when the context is multitenant.
108
+ * @returns A promise that resolves after the message is replayed.
109
+ */
110
+ replay(message: DeliveryEndpointMessage, tenantId?: TenantId): Promise<void>;
111
+ /**
112
+ * Sets the observer for newly ready delivery routes.
113
+ *
114
+ * @param onReady Observes each route made ready by persistence.
115
+ * @returns Returns a function that removes the observer.
116
+ */
117
+ onReady(onReady: OnDeliveryReady): () => void;
118
+ /**
119
+ * Updates readiness ownership to use configured delivery routes.
120
+ *
121
+ * @param scopes Lists routes that may receive buffered readiness.
122
+ * @param onReady Observes readiness after routed ownership begins.
123
+ * @param options Allows an empty route set when `allowEmpty` is true.
124
+ * @returns A promise that resolves after the readiness transition completes.
125
+ */
126
+ transition(scopes: readonly DeliveryReady[], onReady: OnDeliveryReady, options?: {
127
+ readonly allowEmpty?: boolean;
128
+ readonly ports?: import("./local-inbox-handoff.js").EnvironmentDeliveryPorts;
129
+ }): Promise<void>;
130
+ }
131
+ /**
132
+ * Post-only command endpoint exposed by a built bounded context.
133
+ */
134
+ export interface CommandEndpoint {
135
+ /**
136
+ * Lists canonical command message type URLs accepted by this endpoint.
137
+ *
138
+ * @returns Returns immutable command type URLs.
139
+ */
140
+ acceptedCommandTypes(): readonly string[];
141
+ /**
142
+ * Posts a command into the context-owned command bus.
143
+ *
144
+ * @param command Contains the command to dispatch.
145
+ * @returns A promise that settles after queued command dispatch completes and may reject.
146
+ */
147
+ post(command: Command): Promise<void>;
148
+ }
149
+ /**
150
+ * Event endpoint exposed by a built bounded context for accepted-type listing and posting.
151
+ */
152
+ export interface EventEndpoint {
153
+ /**
154
+ * Lists canonical public event message type URLs accepted by this endpoint.
155
+ *
156
+ * @returns Returns immutable event type URLs.
157
+ */
158
+ acceptedEventTypes(): readonly string[];
159
+ /**
160
+ * Posts an event into the context-owned event bus.
161
+ *
162
+ * @param event Contains the event to dispatch.
163
+ * @returns A promise that settles after persistence and dispatch complete and may reject.
164
+ */
165
+ post(event: Event): Promise<void>;
166
+ }
167
+ /**
168
+ * Tenant-scoped options for the legacy-named local read-side reset/replay helper.
169
+ *
170
+ * Single-tenant contexts reject `tenantId`. Multitenant contexts require a
171
+ * complete generated `tenantId` and preserve its typed identity.
172
+ */
173
+ export interface ReadCatchUpOptions {
174
+ /**
175
+ * Tenant slice to rebuild for multitenant contexts.
176
+ */
177
+ readonly tenantId?: TenantId;
178
+ }
179
+ /**
180
+ * Summary from one legacy-named local read-side reset/replay run.
181
+ *
182
+ * The replay boundary covers only already-stored events routed to registered
183
+ * projection subscribers after `Stand.clear()` removes the target projection
184
+ * rows for the selected tenant slice.
185
+ */
186
+ export interface ReadCatchUpResult {
187
+ /**
188
+ * Number of already-stored events dispatched to at least one projection subscriber.
189
+ */
190
+ readonly replayedEventCount: number;
191
+ /**
192
+ * Number of cleared projection-state rows before replay.
193
+ */
194
+ readonly clearedEntityCount: number;
195
+ /**
196
+ * Unique projection state type URLs cleared once before replay.
197
+ */
198
+ readonly clearedStateTypes: readonly string[];
199
+ }
200
+ /**
201
+ * Observable failure from asynchronous event follow-up processing.
202
+ *
203
+ * This covers dispatch of already-stored events and independent follow-up
204
+ * posts whose acceptance, storage, or dispatch failed.
205
+ */
206
+ export interface StoredEventDispatchFailure {
207
+ /**
208
+ * Event snapshot associated with the failure; it may not have reached storage.
209
+ */
210
+ readonly event: Event;
211
+ /**
212
+ * Frozen scalar snapshot of the thrown failure.
213
+ */
214
+ readonly error: DispatchErrorSnapshot;
215
+ }
216
+ /**
217
+ * Copy-safe event follow-up error diagnostic.
218
+ */
219
+ export interface DispatchErrorSnapshot {
220
+ /**
221
+ * Error class/name, or a stable label for non-Error throws.
222
+ */
223
+ readonly name: string;
224
+ /**
225
+ * Bounded diagnostic message.
226
+ */
227
+ readonly message: string;
228
+ /**
229
+ * Bounded stack string when the thrown value is an Error with a stack.
230
+ */
231
+ readonly stack?: string;
232
+ }
233
+ /**
234
+ * Error thrown when a bounded context name cannot be accepted.
235
+ */
236
+ export declare class BoundedContextNameError extends Error {
237
+ /**
238
+ * Rejected raw value.
239
+ */
240
+ readonly value: unknown;
241
+ /**
242
+ * Creates a deterministic bounded-context name validation error.
243
+ *
244
+ * @param value Contains the rejected name value.
245
+ */
246
+ constructor(value: unknown);
247
+ }
248
+ interface FrameworkConstructionToken {
249
+ readonly frameworkConstructionToken: true;
250
+ }
251
+ interface BoundedContextAccess {
252
+ isBuilder(value: unknown): value is BoundedContextBuilder;
253
+ build(builder: BoundedContextBuilder, defaultStorageFactory: StorageFactory): Promise<BoundedContext>;
254
+ subscribeToEvent(context: BoundedContext, typeUrl: string, subscriber: EventSubscriber): EventSubscription;
255
+ postSystemEvent(context: BoundedContext, event: Event): Promise<void>;
256
+ systemPairing(context: BoundedContext): SystemPairingSnapshot;
257
+ tenantIndex(context: BoundedContext): TenantIndex;
258
+ storageFactory(context: BoundedContext): StorageFactory;
259
+ subscriptionRegistry(context: BoundedContext): StandSubscriptionRegistry;
260
+ consumeSubscription(context: BoundedContext, id: string, onUpdate: (update: import("@spine-event-engine/proto/client").SubscriptionUpdate) => void): Promise<import("../stand/stand.js").StandSubscription>;
261
+ installLogger(context: BoundedContext, logger: ILogLayer): void;
262
+ loggerFor(context: BoundedContext): ILogLayer;
263
+ recordDispatchFailure(context: BoundedContext, event: Event, error: unknown): void;
264
+ delivery(context: BoundedContext): ContextDeliveryDescriptor;
265
+ }
266
+ /**
267
+ * Represents a built bounded context and its command, event, repository, and read-side resources.
268
+ */
269
+ export declare class BoundedContext {
270
+ #private;
271
+ /**
272
+ * Creates a framework-owned bounded context.
273
+ *
274
+ * @param snapshot Contains the immutable context metadata.
275
+ * @param commandBus Dispatches commands accepted by this context.
276
+ * @param eventBus Dispatches events accepted by this context.
277
+ * @param systemEventBus Dispatches framework-only System events.
278
+ * @param stand Stores read-side state for this context.
279
+ * @param systemStand Stores read-side state for the paired System Context.
280
+ * @param subscriptionRuntime Coordinates pair-owned subscription delivery.
281
+ * @param systemSpec Contains paired System Context metadata.
282
+ * @param storageFactory Creates context storage.
283
+ * @param repositories Lists repositories to register.
284
+ * @param deliveryStrategy Selects immutable Entity Inbox shards.
285
+ * @param token Proves framework-controlled construction.
286
+ */
287
+ protected constructor(snapshot: BoundedContextSnapshot, commandBus: CommandBus, eventBus: EventBus, systemEventBus: EventBus, stand: Stand, systemStand: Stand, subscriptionRuntime: SubscriptionRuntime, systemSpec: ContextSpecSnapshot, storageFactory: StorageFactory, repositories: readonly RepositoryView[], deliveryStrategy: DeliveryStrategy, token: FrameworkConstructionToken);
288
+ /**
289
+ * Creates a builder for a context without tenant isolation.
290
+ *
291
+ * @param name Names the bounded context.
292
+ * @returns Returns a builder initialized with the supplied name.
293
+ */
294
+ static singleTenant(name: string): BoundedContextBuilder;
295
+ /**
296
+ * Creates a builder for a tenant-isolated context.
297
+ *
298
+ * @param name Names the bounded context.
299
+ * @returns Returns a builder initialized with the supplied name.
300
+ */
301
+ static multitenant(name: string): BoundedContextBuilder;
302
+ /**
303
+ * Returns the bounded context name.
304
+ *
305
+ * @returns Returns the immutable context name.
306
+ */
307
+ get name(): BoundedContextName;
308
+ /**
309
+ * Returns the context's tenant isolation mode.
310
+ *
311
+ * @returns Returns the configured tenant mode.
312
+ */
313
+ get tenantMode(): TenantMode;
314
+ /**
315
+ * Returns whether this context isolates data by tenant.
316
+ *
317
+ * @returns Returns true when the context is multitenant.
318
+ */
319
+ get isMultitenant(): boolean;
320
+ /**
321
+ * Returns a copy-safe specification used to build this context.
322
+ *
323
+ * @returns Returns the context specification.
324
+ */
325
+ get spec(): ContextSpec;
326
+ /**
327
+ * Returns a copy-safe immutable metadata snapshot.
328
+ *
329
+ * @returns Returns the context metadata snapshot.
330
+ */
331
+ get snapshot(): BoundedContextSnapshot;
332
+ /**
333
+ * Returns the command endpoint owned by this context.
334
+ *
335
+ * @returns Returns the context command endpoint.
336
+ */
337
+ commandBus(): CommandEndpoint;
338
+ /**
339
+ * Returns the event endpoint owned by this context.
340
+ *
341
+ * @returns Returns the context event endpoint.
342
+ */
343
+ eventBus(): EventEndpoint;
344
+ /**
345
+ * Returns the context-owned read-side Stand.
346
+ *
347
+ * @returns Returns the read-side state store.
348
+ */
349
+ stand(): Stand;
350
+ /**
351
+ * Lists copy-safe views of repositories registered with this context.
352
+ *
353
+ * @returns Returns immutable repository views.
354
+ */
355
+ registeredRepositories(): readonly RepositoryView[];
356
+ /**
357
+ * Returns copy-safe diagnostics for asynchronous event follow-up failures.
358
+ *
359
+ * Entries can describe already-stored event dispatch or an independent
360
+ * follow-up post that failed before storage.
361
+ *
362
+ * @returns Returns immutable failure diagnostics.
363
+ */
364
+ storedEventDispatchFailures(): readonly StoredEventDispatchFailure[];
365
+ /**
366
+ * Clears and locally replays every registered Projection from already-stored events.
367
+ *
368
+ * Despite its legacy name, this method is not Projection catch-up. It is a
369
+ * process-local maintenance helper and provides no Projection targeting,
370
+ * historical starting point, durable operation identity, progress,
371
+ * historical/live coordination, restart, resumption, or multi-node work.
372
+ *
373
+ * Supported boundary:
374
+ * - projection subscribers only;
375
+ * - already-stored events only;
376
+ * - clear then replay, with no event re-append;
377
+ * - single-tenant contexts reject `tenantId`;
378
+ * - multitenant contexts require the exact non-blank `tenantId`;
379
+ * - process-local sequential execution on the same EventBus runtime queue as
380
+ * live event intake and stored redispatch.
381
+ *
382
+ * Unsupported boundary:
383
+ * - Delivery jobs, schedulers, inbox lifecycle, retries, and transport
384
+ * topology;
385
+ * - durable live-traffic catch-up orchestration across processes.
386
+ *
387
+ * @param options Selects the tenant slice to rebuild.
388
+ * @returns Resolves to replay and clear counts for the selected slice.
389
+ */
390
+ catchUpReadSide(options?: ReadCatchUpOptions): Promise<ReadCatchUpResult>;
391
+ /**
392
+ * Closes context-owned buses, Stand, and repository storage/runtime bindings.
393
+ *
394
+ * Close is idempotent and returns the same close outcome on repeated calls.
395
+ * The context attempts every owned close hook; when any hook fails, the
396
+ * returned promise rejects with an `AggregateError` after the remaining hooks
397
+ * have also been attempted.
398
+ *
399
+ * @returns A promise that settles after all owned resources close.
400
+ */
401
+ close(): Promise<void>;
402
+ }
403
+ /**
404
+ * Exposes framework-only operations for built contexts and their builders.
405
+ */
406
+ export declare const boundedContextAccess: BoundedContextAccess;
407
+ /**
408
+ * Customizes a repository assembled from an Entity class and generated handlers.
409
+ *
410
+ * @typeParam EntityType - The Entity class added to a Bounded Context builder.
411
+ */
412
+ export type GeneratedRepositoryOptions<EntityType extends RepositoryEntityType & ConcreteRepositoryEntityType<EntityType>> = Readonly<Pick<RepositoryOptions<EntityType>, "commandRouting" | "eventRouting" | "stateUpdateRouting" | "stringifierRegistry">>;
413
+ /**
414
+ * Assembles a {@link BoundedContext} from repositories and dispatchers.
415
+ */
416
+ export declare class BoundedContextBuilder {
417
+ #private;
418
+ /**
419
+ * Creates a framework-owned context builder.
420
+ *
421
+ * @param specSnapshot Contains the initial context specification.
422
+ * @param token Proves framework-controlled construction.
423
+ */
424
+ protected constructor(specSnapshot: ContextSpecSnapshot, token: FrameworkConstructionToken);
425
+ /**
426
+ * Returns the name configured for the context to build.
427
+ *
428
+ * @returns Returns the immutable context name.
429
+ */
430
+ get name(): BoundedContextName;
431
+ /**
432
+ * Returns a copy-safe specification configured for the context.
433
+ *
434
+ * @returns Returns the context specification.
435
+ */
436
+ get spec(): ContextSpec;
437
+ /**
438
+ * Returns the tenant isolation mode configured for the context.
439
+ *
440
+ * @returns Returns the configured tenant mode.
441
+ */
442
+ get tenantMode(): TenantMode;
443
+ /**
444
+ * Returns whether this builder will create a tenant-isolated context.
445
+ *
446
+ * @returns Returns true when the built context will be multitenant.
447
+ */
448
+ isMultitenant(): boolean;
449
+ /**
450
+ * Adds an explicitly assembled repository.
451
+ *
452
+ * @param entry The repository to register.
453
+ * @returns This builder for further configuration.
454
+ */
455
+ add<EntityType extends RepositoryEntityType & ConcreteRepositoryEntityType<EntityType>>(entry: Repository<EntityType>): this;
456
+ /**
457
+ * Adds an Entity class whose repository is assembled from generated handlers.
458
+ *
459
+ * @param entry The Entity class to register.
460
+ * @param options Optional custom routing and field mappings for its generated repository.
461
+ * @returns This builder for further configuration.
462
+ */
463
+ add<EntityType extends RepositoryEntityType & ConcreteRepositoryEntityType<EntityType>>(entry: EntityType, options?: GeneratedRepositoryOptions<EntityType>): this;
464
+ /**
465
+ * Removes a repository from the context registration list.
466
+ *
467
+ * @param repository Identifies the repository to remove.
468
+ * @returns Returns this builder for further configuration.
469
+ */
470
+ remove<EntityType extends RepositoryEntityType & ConcreteRepositoryEntityType<EntityType>>(repository: Repository<EntityType>): this;
471
+ /**
472
+ * Adds a command dispatcher to the context being built.
473
+ *
474
+ * @param dispatcher Dispatches commands accepted by this context.
475
+ * @returns Returns this builder for further configuration.
476
+ */
477
+ addCommandDispatcher(dispatcher: CommandDispatcher): this;
478
+ /**
479
+ * Removes a command dispatcher from the context being built.
480
+ *
481
+ * @param dispatcher Identifies the dispatcher to remove.
482
+ * @returns Returns this builder for further configuration.
483
+ */
484
+ removeCommandDispatcher(dispatcher: CommandDispatcher): this;
485
+ /**
486
+ * Adds an event dispatcher to the context being built.
487
+ *
488
+ * @param dispatcher Dispatches events accepted by this context.
489
+ * @returns Returns this builder for further configuration.
490
+ */
491
+ addEventDispatcher(dispatcher: EventDispatcher): this;
492
+ /**
493
+ * Removes an event dispatcher from the context being built.
494
+ *
495
+ * @param dispatcher Identifies the dispatcher to remove.
496
+ * @returns Returns this builder for further configuration.
497
+ */
498
+ removeEventDispatcher(dispatcher: EventDispatcher): this;
499
+ /**
500
+ * Sets a storage factory for event, repository-state, and Stand storage.
501
+ *
502
+ * @param storageFactory Creates the context's persistent storage.
503
+ * @returns Returns this builder for further configuration.
504
+ */
505
+ withStorageFactory(storageFactory: StorageFactory): this;
506
+ /**
507
+ * Persists internal system events in the paired System Context storage.
508
+ *
509
+ * System events are forgotten by default. Enabling this option does not put
510
+ * them into the domain EventStore.
511
+ *
512
+ * @returns Returns this builder for further configuration.
513
+ */
514
+ persistSystemEvents(): this;
515
+ /**
516
+ * Sets a complete custom registry and transfers it to the first build attempt.
517
+ *
518
+ * The built context closes the registry. A failed first build also begins its
519
+ * closure, so callers must not reuse it.
520
+ *
521
+ * @param registry Stores this context's Stand subscription definitions.
522
+ * @returns Returns this builder for further configuration.
523
+ */
524
+ withSubscriptionRegistry(registry: StandSubscriptionRegistry): this;
525
+ /**
526
+ * Sets the target-to-shard strategy for the context-owned Entity Inbox.
527
+ *
528
+ * @param strategy Selects the durable shard for Aggregate and Process Manager targets.
529
+ * @returns Returns this builder for further configuration.
530
+ */
531
+ withDeliveryStrategy(strategy: DeliveryStrategy): this;
532
+ /**
533
+ * Sets a trusted compiled application root for generated handler metadata.
534
+ *
535
+ * @param root Names the compiled package or application root.
536
+ * @returns Returns this builder for further configuration.
537
+ */
538
+ withGeneratedRegistryRoot(root: string | URL): this;
539
+ /**
540
+ * Builds a context from explicitly added repositories and dispatchers.
541
+ *
542
+ * @returns Returns the built context.
543
+ */
544
+ build(): BoundedContext;
545
+ /**
546
+ * Builds a context after loading generated metadata for added entity classes.
547
+ *
548
+ * @returns Resolves to the built context.
549
+ */
550
+ buildAsync(): Promise<BoundedContext>;
551
+ private createEventStore;
552
+ }
553
+ /**
554
+ * Represents the immutable specification used by a context builder.
555
+ */
556
+ export declare class ContextSpec {
557
+ #private;
558
+ /**
559
+ * Creates a framework-owned context specification.
560
+ *
561
+ * @param snapshot Contains immutable specification values.
562
+ * @param token Proves framework-controlled construction.
563
+ */
564
+ protected constructor(snapshot: ContextSpecSnapshot, token: FrameworkConstructionToken);
565
+ /**
566
+ * Returns the bounded context name.
567
+ *
568
+ * @returns Returns the immutable context name.
569
+ */
570
+ get name(): BoundedContextName;
571
+ /**
572
+ * Returns whether the context requires tenant isolation.
573
+ *
574
+ * @returns Returns true when tenant isolation is required.
575
+ */
576
+ get multitenant(): boolean;
577
+ /**
578
+ * Returns the tenant mode derived from the multitenant setting.
579
+ *
580
+ * @returns Returns the derived tenant mode.
581
+ */
582
+ get tenantMode(): TenantMode;
583
+ /**
584
+ * Returns whether the context specification stores its domain event log.
585
+ *
586
+ * @returns Returns true when the context stores events.
587
+ */
588
+ get storesEvents(): boolean;
589
+ /**
590
+ * Returns a copy-safe immutable snapshot of this specification.
591
+ *
592
+ * @returns Returns the specification snapshot.
593
+ */
594
+ get snapshot(): ContextSpecSnapshot;
595
+ }
596
+ /**
597
+ * Exposes broker-only operations for the owning integration package.
598
+ *
599
+ * @internal
600
+ */
601
+ export declare const boundedContextIntegrationAccess: Readonly<{
602
+ publishImported(context: BoundedContext, event: Event): Promise<void>;
603
+ ready(context: BoundedContext): Promise<void>;
604
+ }>;
605
+ export {};
606
+ //# sourceMappingURL=bounded-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bounded-context.d.ts","sourceRoot":"","sources":["../../src/context/bounded-context.ts"],"names":[],"mappings":"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"}