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

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 (378) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +209 -0
  3. package/REFERENCE.md +760 -0
  4. package/dist/browser/browser-server.d.ts +95 -0
  5. package/dist/browser/browser-server.d.ts.map +1 -0
  6. package/dist/browser/browser-server.js +719 -0
  7. package/dist/browser/browser-server.js.map +1 -0
  8. package/dist/browser/durable-subscription-bindings.d.ts +122 -0
  9. package/dist/browser/durable-subscription-bindings.d.ts.map +1 -0
  10. package/dist/browser/durable-subscription-bindings.js +524 -0
  11. package/dist/browser/durable-subscription-bindings.js.map +1 -0
  12. package/dist/browser/index.d.ts +12 -0
  13. package/dist/browser/index.d.ts.map +1 -0
  14. package/dist/browser/index.js +24 -0
  15. package/dist/browser/index.js.map +1 -0
  16. package/dist/browser/options.d.ts +183 -0
  17. package/dist/browser/options.d.ts.map +1 -0
  18. package/dist/browser/options.js +15 -0
  19. package/dist/browser/options.js.map +1 -0
  20. package/dist/bus/command-bus.d.ts +63 -0
  21. package/dist/bus/command-bus.d.ts.map +1 -0
  22. package/dist/bus/command-bus.js +236 -0
  23. package/dist/bus/command-bus.js.map +1 -0
  24. package/dist/bus/command-dispatcher-registry.d.ts +33 -0
  25. package/dist/bus/command-dispatcher-registry.d.ts.map +1 -0
  26. package/dist/bus/command-dispatcher-registry.js +75 -0
  27. package/dist/bus/command-dispatcher-registry.js.map +1 -0
  28. package/dist/bus/command-dispatcher.d.ts +25 -0
  29. package/dist/bus/command-dispatcher.d.ts.map +1 -0
  30. package/dist/bus/command-dispatcher.js +15 -0
  31. package/dist/bus/command-dispatcher.js.map +1 -0
  32. package/dist/bus/command-errors.d.ts +23 -0
  33. package/dist/bus/command-errors.d.ts.map +1 -0
  34. package/dist/bus/command-errors.js +52 -0
  35. package/dist/bus/command-errors.js.map +1 -0
  36. package/dist/bus/event-bus.d.ts +113 -0
  37. package/dist/bus/event-bus.d.ts.map +1 -0
  38. package/dist/bus/event-bus.js +518 -0
  39. package/dist/bus/event-bus.js.map +1 -0
  40. package/dist/bus/event-dispatcher-origin-schemas.d.ts +17 -0
  41. package/dist/bus/event-dispatcher-origin-schemas.d.ts.map +1 -0
  42. package/dist/bus/event-dispatcher-origin-schemas.js +32 -0
  43. package/dist/bus/event-dispatcher-origin-schemas.js.map +1 -0
  44. package/dist/bus/event-dispatcher-registry.d.ts +48 -0
  45. package/dist/bus/event-dispatcher-registry.d.ts.map +1 -0
  46. package/dist/bus/event-dispatcher-registry.js +176 -0
  47. package/dist/bus/event-dispatcher-registry.js.map +1 -0
  48. package/dist/bus/event-dispatcher.d.ts +48 -0
  49. package/dist/bus/event-dispatcher.d.ts.map +1 -0
  50. package/dist/bus/event-dispatcher.js +15 -0
  51. package/dist/bus/event-dispatcher.js.map +1 -0
  52. package/dist/context/bounded-context.d.ts +592 -0
  53. package/dist/context/bounded-context.d.ts.map +1 -0
  54. package/dist/context/bounded-context.js +1897 -0
  55. package/dist/context/bounded-context.js.map +1 -0
  56. package/dist/context/entity-inbox.d.ts +63 -0
  57. package/dist/context/entity-inbox.d.ts.map +1 -0
  58. package/dist/context/entity-inbox.js +387 -0
  59. package/dist/context/entity-inbox.js.map +1 -0
  60. package/dist/context/local-inbox-handoff.d.ts +248 -0
  61. package/dist/context/local-inbox-handoff.d.ts.map +1 -0
  62. package/dist/context/local-inbox-handoff.js +340 -0
  63. package/dist/context/local-inbox-handoff.js.map +1 -0
  64. package/dist/context/projection-handoff.d.ts +46 -0
  65. package/dist/context/projection-handoff.d.ts.map +1 -0
  66. package/dist/context/projection-handoff.js +177 -0
  67. package/dist/context/projection-handoff.js.map +1 -0
  68. package/dist/context/tenant-index.d.ts +41 -0
  69. package/dist/context/tenant-index.d.ts.map +1 -0
  70. package/dist/context/tenant-index.js +93 -0
  71. package/dist/context/tenant-index.js.map +1 -0
  72. package/dist/delivery/conditional-pickup.d.ts +25 -0
  73. package/dist/delivery/conditional-pickup.d.ts.map +1 -0
  74. package/dist/delivery/conditional-pickup.js +26 -0
  75. package/dist/delivery/conditional-pickup.js.map +1 -0
  76. package/dist/delivery/delivery-builder.d.ts +216 -0
  77. package/dist/delivery/delivery-builder.d.ts.map +1 -0
  78. package/dist/delivery/delivery-builder.js +323 -0
  79. package/dist/delivery/delivery-builder.js.map +1 -0
  80. package/dist/delivery/delivery-lease.d.ts +15 -0
  81. package/dist/delivery/delivery-lease.d.ts.map +1 -0
  82. package/dist/delivery/delivery-lease.js +44 -0
  83. package/dist/delivery/delivery-lease.js.map +1 -0
  84. package/dist/delivery/delivery-loop.d.ts +113 -0
  85. package/dist/delivery/delivery-loop.d.ts.map +1 -0
  86. package/dist/delivery/delivery-loop.js +119 -0
  87. package/dist/delivery/delivery-loop.js.map +1 -0
  88. package/dist/delivery/delivery-monitor.d.ts +165 -0
  89. package/dist/delivery/delivery-monitor.d.ts.map +1 -0
  90. package/dist/delivery/delivery-monitor.js +168 -0
  91. package/dist/delivery/delivery-monitor.js.map +1 -0
  92. package/dist/delivery/delivery-ports.d.ts +151 -0
  93. package/dist/delivery/delivery-ports.d.ts.map +1 -0
  94. package/dist/delivery/delivery-ports.js +15 -0
  95. package/dist/delivery/delivery-ports.js.map +1 -0
  96. package/dist/delivery/delivery-run-control.d.ts +50 -0
  97. package/dist/delivery/delivery-run-control.d.ts.map +1 -0
  98. package/dist/delivery/delivery-run-control.js +66 -0
  99. package/dist/delivery/delivery-run-control.js.map +1 -0
  100. package/dist/delivery/delivery-run-coordinator.d.ts +218 -0
  101. package/dist/delivery/delivery-run-coordinator.d.ts.map +1 -0
  102. package/dist/delivery/delivery-run-coordinator.js +609 -0
  103. package/dist/delivery/delivery-run-coordinator.js.map +1 -0
  104. package/dist/delivery/delivery-storage-error.d.ts +13 -0
  105. package/dist/delivery/delivery-storage-error.d.ts.map +1 -0
  106. package/dist/delivery/delivery-storage-error.js +30 -0
  107. package/dist/delivery/delivery-storage-error.js.map +1 -0
  108. package/dist/delivery/delivery-supervisor.d.ts +175 -0
  109. package/dist/delivery/delivery-supervisor.d.ts.map +1 -0
  110. package/dist/delivery/delivery-supervisor.js +469 -0
  111. package/dist/delivery/delivery-supervisor.js.map +1 -0
  112. package/dist/delivery/delivery-worker.d.ts +180 -0
  113. package/dist/delivery/delivery-worker.d.ts.map +1 -0
  114. package/dist/delivery/delivery-worker.js +232 -0
  115. package/dist/delivery/delivery-worker.js.map +1 -0
  116. package/dist/delivery/delivery.d.ts +236 -0
  117. package/dist/delivery/delivery.d.ts.map +1 -0
  118. package/dist/delivery/delivery.js +539 -0
  119. package/dist/delivery/delivery.js.map +1 -0
  120. package/dist/delivery/inbox-records.d.ts +19 -0
  121. package/dist/delivery/inbox-records.d.ts.map +1 -0
  122. package/dist/delivery/inbox-records.js +291 -0
  123. package/dist/delivery/inbox-records.js.map +1 -0
  124. package/dist/delivery/inbox-storage.d.ts +83 -0
  125. package/dist/delivery/inbox-storage.d.ts.map +1 -0
  126. package/dist/delivery/inbox-storage.js +336 -0
  127. package/dist/delivery/inbox-storage.js.map +1 -0
  128. package/dist/delivery/inbox.d.ts +272 -0
  129. package/dist/delivery/inbox.d.ts.map +1 -0
  130. package/dist/delivery/inbox.js +183 -0
  131. package/dist/delivery/inbox.js.map +1 -0
  132. package/dist/delivery/parked-delivery-obligations.d.ts +182 -0
  133. package/dist/delivery/parked-delivery-obligations.d.ts.map +1 -0
  134. package/dist/delivery/parked-delivery-obligations.js +390 -0
  135. package/dist/delivery/parked-delivery-obligations.js.map +1 -0
  136. package/dist/delivery/shard-index.d.ts +41 -0
  137. package/dist/delivery/shard-index.d.ts.map +1 -0
  138. package/dist/delivery/shard-index.js +67 -0
  139. package/dist/delivery/shard-index.js.map +1 -0
  140. package/dist/delivery/sharded-work-registry.d.ts +114 -0
  141. package/dist/delivery/sharded-work-registry.d.ts.map +1 -0
  142. package/dist/delivery/sharded-work-registry.js +361 -0
  143. package/dist/delivery/sharded-work-registry.js.map +1 -0
  144. package/dist/entity/entity-metadata.d.ts +173 -0
  145. package/dist/entity/entity-metadata.d.ts.map +1 -0
  146. package/dist/entity/entity-metadata.js +187 -0
  147. package/dist/entity/entity-metadata.js.map +1 -0
  148. package/dist/entity/entity-storage-descriptor.d.ts +64 -0
  149. package/dist/entity/entity-storage-descriptor.d.ts.map +1 -0
  150. package/dist/entity/entity-storage-descriptor.js +227 -0
  151. package/dist/entity/entity-storage-descriptor.js.map +1 -0
  152. package/dist/entity/entity-transaction.d.ts +372 -0
  153. package/dist/entity/entity-transaction.d.ts.map +1 -0
  154. package/dist/entity/entity-transaction.js +413 -0
  155. package/dist/entity/entity-transaction.js.map +1 -0
  156. package/dist/entity/entity-transition-validation.d.ts +47 -0
  157. package/dist/entity/entity-transition-validation.d.ts.map +1 -0
  158. package/dist/entity/entity-transition-validation.js +327 -0
  159. package/dist/entity/entity-transition-validation.js.map +1 -0
  160. package/dist/entity/entity.d.ts +605 -0
  161. package/dist/entity/entity.d.ts.map +1 -0
  162. package/dist/entity/entity.js +981 -0
  163. package/dist/entity/entity.js.map +1 -0
  164. package/dist/entity/implicit-required-id.d.ts +15 -0
  165. package/dist/entity/implicit-required-id.d.ts.map +1 -0
  166. package/dist/entity/implicit-required-id.js +123 -0
  167. package/dist/entity/implicit-required-id.js.map +1 -0
  168. package/dist/entity/spec-scanner.d.ts +14 -0
  169. package/dist/entity/spec-scanner.d.ts.map +1 -0
  170. package/dist/entity/spec-scanner.js +37 -0
  171. package/dist/entity/spec-scanner.js.map +1 -0
  172. package/dist/handler/command-registration-readiness.d.ts +99 -0
  173. package/dist/handler/command-registration-readiness.d.ts.map +1 -0
  174. package/dist/handler/command-registration-readiness.js +120 -0
  175. package/dist/handler/command-registration-readiness.js.map +1 -0
  176. package/dist/handler/declared-rejections.d.ts +11 -0
  177. package/dist/handler/declared-rejections.d.ts.map +1 -0
  178. package/dist/handler/declared-rejections.js +34 -0
  179. package/dist/handler/declared-rejections.js.map +1 -0
  180. package/dist/handler/event-handler-filter.d.ts +43 -0
  181. package/dist/handler/event-handler-filter.d.ts.map +1 -0
  182. package/dist/handler/event-handler-filter.js +128 -0
  183. package/dist/handler/event-handler-filter.js.map +1 -0
  184. package/dist/handler/event-registration-readiness.d.ts +196 -0
  185. package/dist/handler/event-registration-readiness.d.ts.map +1 -0
  186. package/dist/handler/event-registration-readiness.js +187 -0
  187. package/dist/handler/event-registration-readiness.js.map +1 -0
  188. package/dist/handler/external.d.ts +10 -0
  189. package/dist/handler/external.d.ts.map +1 -0
  190. package/dist/handler/external.js +15 -0
  191. package/dist/handler/external.js.map +1 -0
  192. package/dist/handler/generated-handler-registry.d.ts +185 -0
  193. package/dist/handler/generated-handler-registry.d.ts.map +1 -0
  194. package/dist/handler/generated-handler-registry.js +439 -0
  195. package/dist/handler/generated-handler-registry.js.map +1 -0
  196. package/dist/handler/generated-registry-discovery.d.ts +94 -0
  197. package/dist/handler/generated-registry-discovery.d.ts.map +1 -0
  198. package/dist/handler/generated-registry-discovery.js +226 -0
  199. package/dist/handler/generated-registry-discovery.js.map +1 -0
  200. package/dist/handler/handler-decorators.d.ts +151 -0
  201. package/dist/handler/handler-decorators.d.ts.map +1 -0
  202. package/dist/handler/handler-decorators.js +275 -0
  203. package/dist/handler/handler-decorators.js.map +1 -0
  204. package/dist/handler/handler-metadata.d.ts +553 -0
  205. package/dist/handler/handler-metadata.d.ts.map +1 -0
  206. package/dist/handler/handler-metadata.js +437 -0
  207. package/dist/handler/handler-metadata.js.map +1 -0
  208. package/dist/handler/registration-readiness-metadata.d.ts +68 -0
  209. package/dist/handler/registration-readiness-metadata.d.ts.map +1 -0
  210. package/dist/handler/registration-readiness-metadata.js +171 -0
  211. package/dist/handler/registration-readiness-metadata.js.map +1 -0
  212. package/dist/handler/rejection-source.d.ts +11 -0
  213. package/dist/handler/rejection-source.d.ts.map +1 -0
  214. package/dist/handler/rejection-source.js +25 -0
  215. package/dist/handler/rejection-source.js.map +1 -0
  216. package/dist/handler/standalone.d.ts +25 -0
  217. package/dist/handler/standalone.d.ts.map +1 -0
  218. package/dist/handler/standalone.js +38 -0
  219. package/dist/handler/standalone.js.map +1 -0
  220. package/dist/index.d.ts +46 -0
  221. package/dist/index.d.ts.map +1 -0
  222. package/dist/index.js +54 -0
  223. package/dist/index.js.map +1 -0
  224. package/dist/integration/external-messages.d.ts +49 -0
  225. package/dist/integration/external-messages.d.ts.map +1 -0
  226. package/dist/integration/external-messages.js +112 -0
  227. package/dist/integration/external-messages.js.map +1 -0
  228. package/dist/integration/integration-broker.d.ts +74 -0
  229. package/dist/integration/integration-broker.d.ts.map +1 -0
  230. package/dist/integration/integration-broker.js +444 -0
  231. package/dist/integration/integration-broker.js.map +1 -0
  232. package/dist/integration/third-party-context.d.ts +56 -0
  233. package/dist/integration/third-party-context.d.ts.map +1 -0
  234. package/dist/integration/third-party-context.js +130 -0
  235. package/dist/integration/third-party-context.js.map +1 -0
  236. package/dist/repository/command-errors.d.ts +25 -0
  237. package/dist/repository/command-errors.d.ts.map +1 -0
  238. package/dist/repository/command-errors.js +43 -0
  239. package/dist/repository/command-errors.js.map +1 -0
  240. package/dist/repository/command-routing.d.ts +72 -0
  241. package/dist/repository/command-routing.d.ts.map +1 -0
  242. package/dist/repository/command-routing.js +98 -0
  243. package/dist/repository/command-routing.js.map +1 -0
  244. package/dist/repository/commit-fence.d.ts +22 -0
  245. package/dist/repository/commit-fence.d.ts.map +1 -0
  246. package/dist/repository/commit-fence.js +37 -0
  247. package/dist/repository/commit-fence.js.map +1 -0
  248. package/dist/repository/event-routing.d.ts +71 -0
  249. package/dist/repository/event-routing.d.ts.map +1 -0
  250. package/dist/repository/event-routing.js +96 -0
  251. package/dist/repository/event-routing.js.map +1 -0
  252. package/dist/repository/primitive-id.d.ts +75 -0
  253. package/dist/repository/primitive-id.d.ts.map +1 -0
  254. package/dist/repository/primitive-id.js +85 -0
  255. package/dist/repository/primitive-id.js.map +1 -0
  256. package/dist/repository/repository.d.ts +667 -0
  257. package/dist/repository/repository.d.ts.map +1 -0
  258. package/dist/repository/repository.js +3510 -0
  259. package/dist/repository/repository.js.map +1 -0
  260. package/dist/repository/routing-declarations.d.ts +75 -0
  261. package/dist/repository/routing-declarations.d.ts.map +1 -0
  262. package/dist/repository/routing-declarations.js +101 -0
  263. package/dist/repository/routing-declarations.js.map +1 -0
  264. package/dist/repository/state-update-routing.d.ts +66 -0
  265. package/dist/repository/state-update-routing.d.ts.map +1 -0
  266. package/dist/repository/state-update-routing.js +91 -0
  267. package/dist/repository/state-update-routing.js.map +1 -0
  268. package/dist/runtime/runtime.d.ts +156 -0
  269. package/dist/runtime/runtime.d.ts.map +1 -0
  270. package/dist/runtime/runtime.js +215 -0
  271. package/dist/runtime/runtime.js.map +1 -0
  272. package/dist/runtime/signal-intake.d.ts +84 -0
  273. package/dist/runtime/signal-intake.d.ts.map +1 -0
  274. package/dist/runtime/signal-intake.js +94 -0
  275. package/dist/runtime/signal-intake.js.map +1 -0
  276. package/dist/runtime/signal-metadata.d.ts +217 -0
  277. package/dist/runtime/signal-metadata.d.ts.map +1 -0
  278. package/dist/runtime/signal-metadata.js +333 -0
  279. package/dist/runtime/signal-metadata.js.map +1 -0
  280. package/dist/runtime/signal-publisher.d.ts +144 -0
  281. package/dist/runtime/signal-publisher.d.ts.map +1 -0
  282. package/dist/runtime/signal-publisher.js +248 -0
  283. package/dist/runtime/signal-publisher.js.map +1 -0
  284. package/dist/runtime/standalone-handler-runtime.d.ts +114 -0
  285. package/dist/runtime/standalone-handler-runtime.d.ts.map +1 -0
  286. package/dist/runtime/standalone-handler-runtime.js +307 -0
  287. package/dist/runtime/standalone-handler-runtime.js.map +1 -0
  288. package/dist/server/environment-attachment.d.ts +356 -0
  289. package/dist/server/environment-attachment.d.ts.map +1 -0
  290. package/dist/server/environment-attachment.js +2062 -0
  291. package/dist/server/environment-attachment.js.map +1 -0
  292. package/dist/server/environment-delivery-records.d.ts +77 -0
  293. package/dist/server/environment-delivery-records.d.ts.map +1 -0
  294. package/dist/server/environment-delivery-records.js +282 -0
  295. package/dist/server/environment-delivery-records.js.map +1 -0
  296. package/dist/server/environment-delivery-worker.d.ts +161 -0
  297. package/dist/server/environment-delivery-worker.d.ts.map +1 -0
  298. package/dist/server/environment-delivery-worker.js +673 -0
  299. package/dist/server/environment-delivery-worker.js.map +1 -0
  300. package/dist/server/environment.d.ts +43 -0
  301. package/dist/server/environment.d.ts.map +1 -0
  302. package/dist/server/environment.js +90 -0
  303. package/dist/server/environment.js.map +1 -0
  304. package/dist/server/managed-child-subscription.d.ts +11 -0
  305. package/dist/server/managed-child-subscription.d.ts.map +1 -0
  306. package/dist/server/managed-child-subscription.js +44 -0
  307. package/dist/server/managed-child-subscription.js.map +1 -0
  308. package/dist/server/managed-server-application.d.ts +327 -0
  309. package/dist/server/managed-server-application.d.ts.map +1 -0
  310. package/dist/server/managed-server-application.js +937 -0
  311. package/dist/server/managed-server-application.js.map +1 -0
  312. package/dist/server/node-coordinator.d.ts +191 -0
  313. package/dist/server/node-coordinator.d.ts.map +1 -0
  314. package/dist/server/node-coordinator.js +552 -0
  315. package/dist/server/node-coordinator.js.map +1 -0
  316. package/dist/server/process-server-coordinator.d.ts +15 -0
  317. package/dist/server/process-server-coordinator.d.ts.map +1 -0
  318. package/dist/server/process-server-coordinator.js +112 -0
  319. package/dist/server/process-server-coordinator.js.map +1 -0
  320. package/dist/server/reserved-spine-rpc-paths.json +8 -0
  321. package/dist/server/retryable-close.d.ts +28 -0
  322. package/dist/server/retryable-close.d.ts.map +1 -0
  323. package/dist/server/retryable-close.js +129 -0
  324. package/dist/server/retryable-close.js.map +1 -0
  325. package/dist/server/server-environment.d.ts +180 -0
  326. package/dist/server/server-environment.d.ts.map +1 -0
  327. package/dist/server/server-environment.js +418 -0
  328. package/dist/server/server-environment.js.map +1 -0
  329. package/dist/server/server-log.d.ts +18 -0
  330. package/dist/server/server-log.d.ts.map +1 -0
  331. package/dist/server/server-log.js +100 -0
  332. package/dist/server/server-log.js.map +1 -0
  333. package/dist/server/server.d.ts +221 -0
  334. package/dist/server/server.d.ts.map +1 -0
  335. package/dist/server/server.js +704 -0
  336. package/dist/server/server.js.map +1 -0
  337. package/dist/services/query-reader.d.ts +19 -0
  338. package/dist/services/query-reader.d.ts.map +1 -0
  339. package/dist/services/query-reader.js +43 -0
  340. package/dist/services/query-reader.js.map +1 -0
  341. package/dist/services/spine-services.d.ts +88 -0
  342. package/dist/services/spine-services.d.ts.map +1 -0
  343. package/dist/services/spine-services.js +1582 -0
  344. package/dist/services/spine-services.js.map +1 -0
  345. package/dist/spi/delivery.d.ts +5 -0
  346. package/dist/spi/delivery.d.ts.map +1 -0
  347. package/dist/spi/delivery.js +18 -0
  348. package/dist/spi/delivery.js.map +1 -0
  349. package/dist/spi/handler-registry.d.ts +8 -0
  350. package/dist/spi/handler-registry.d.ts.map +1 -0
  351. package/dist/spi/handler-registry.js +15 -0
  352. package/dist/spi/handler-registry.js.map +1 -0
  353. package/dist/stand/stand.d.ts +294 -0
  354. package/dist/stand/stand.d.ts.map +1 -0
  355. package/dist/stand/stand.js +681 -0
  356. package/dist/stand/stand.js.map +1 -0
  357. package/dist/stand/subscription-observer.d.ts +53 -0
  358. package/dist/stand/subscription-observer.d.ts.map +1 -0
  359. package/dist/stand/subscription-observer.js +444 -0
  360. package/dist/stand/subscription-observer.js.map +1 -0
  361. package/dist/stand/subscription-records.d.ts +12 -0
  362. package/dist/stand/subscription-records.d.ts.map +1 -0
  363. package/dist/stand/subscription-records.js +99 -0
  364. package/dist/stand/subscription-records.js.map +1 -0
  365. package/dist/stand/subscription-registry.d.ts +285 -0
  366. package/dist/stand/subscription-registry.d.ts.map +1 -0
  367. package/dist/stand/subscription-registry.js +403 -0
  368. package/dist/stand/subscription-registry.js.map +1 -0
  369. package/dist/stand/subscription-runtime.d.ts +102 -0
  370. package/dist/stand/subscription-runtime.d.ts.map +1 -0
  371. package/dist/stand/subscription-runtime.js +380 -0
  372. package/dist/stand/subscription-runtime.js.map +1 -0
  373. package/dist/testing/index.d.ts +36 -0
  374. package/dist/testing/index.d.ts.map +1 -0
  375. package/dist/testing/index.js +54 -0
  376. package/dist/testing/index.js.map +1 -0
  377. package/dist/tsconfig.tsbuildinfo +1 -0
  378. package/package.json +76 -0
@@ -0,0 +1,418 @@
1
+ /*
2
+ * Copyright 2026, CodeMatters. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5
+ * in compliance with the License. You may obtain a copy of the License at
6
+ *
7
+ * https://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
10
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
+ * or implied. See the License for the specific language governing permissions and limitations under
12
+ * the License.
13
+ */
14
+ import { InMemoryStorageFactory } from "@spine-event-engine/storage";
15
+ import { LogLayer, StructuredTransport } from "loglayer";
16
+ import { InMemoryTransportFactory } from "@spine-event-engine/transport";
17
+ import { spineCoreRegistry } from "@spine-event-engine/core";
18
+ import { RetryableCloseGroup } from "./retryable-close.js";
19
+ import { emitServerWarning } from "./server-log.js";
20
+ import { boundedContextAccess } from "../context/bounded-context.js";
21
+ import { EnvironmentDeliveryWorker } from "./environment-delivery-worker.js";
22
+ import { EnvironmentAttachments, } from "./environment-attachment.js";
23
+ import { Environment, EnvironmentTests, EnvironmentType } from "./environment.js";
24
+ const configuredSettings = new Map();
25
+ let resolvedEnvironment;
26
+ let resetInProgress;
27
+ /**
28
+ * Process-wide server facilities for the canonical {@link Environment}.
29
+ */
30
+ export class ServerEnvironment {
31
+ // prettier-ignore
32
+ /**
33
+ * The environment whose settings resolved these facilities.
34
+ */
35
+ environment;
36
+ /**
37
+ * Stable identity shared by every server in this singleton lifecycle.
38
+ */
39
+ nodeId;
40
+ /**
41
+ * Storage facility selected for server assembly, including server-added context builders.
42
+ */
43
+ storageFactory;
44
+ /**
45
+ * Message-channel factory selected for private bounded-context integration.
46
+ *
47
+ * This is either the configured override or one environment-owned
48
+ * `InMemoryTransportFactory` shared by every local broker in the process and
49
+ * closed once with the environment.
50
+ */
51
+ integrationChannelFactory;
52
+ /**
53
+ * Read-only application schema lookup used by private integration boundaries.
54
+ */
55
+ typeRegistry;
56
+ /**
57
+ * Optional closeable delivery owner selected for this environment.
58
+ */
59
+ delivery;
60
+ /**
61
+ * Optional tracing factory selected for this environment.
62
+ */
63
+ tracerFactory;
64
+ #ownedCloseables;
65
+ #closeGroup;
66
+ #close;
67
+ #deliveryOpen;
68
+ #deliveryOpened = false;
69
+ constructor(environment, settings) {
70
+ this.environment = environment;
71
+ this.nodeId = crypto.randomUUID();
72
+ this.storageFactory = settings.storageFactory;
73
+ this.integrationChannelFactory = settings.integrationChannelFactory;
74
+ this.typeRegistry = settings.typeRegistry;
75
+ this.delivery = settings.delivery;
76
+ this.tracerFactory = settings.tracerFactory;
77
+ environmentLoggers.set(this, settings.logger);
78
+ this.#ownedCloseables = ServerEnvironmentValues.facilitiesToClose(settings);
79
+ warnedVolatileRegistries.set(this, new WeakSet());
80
+ this.#closeGroup = new RetryableCloseGroup(this.#ownedCloseables, "ServerEnvironment close failed.");
81
+ environmentAttachments.set(this, new EnvironmentAttachments({
82
+ logger: ServerEnvironmentValues.loggerFor(this),
83
+ createWorker: () => {
84
+ const ports = ServerEnvironmentValues.ports(this.delivery);
85
+ return new EnvironmentDeliveryWorker({
86
+ ...(ports === undefined ? {} : { ports }),
87
+ nodeId: this.nodeId,
88
+ });
89
+ },
90
+ deliveryPorts: () => ServerEnvironmentValues.ports(this.delivery),
91
+ }));
92
+ deliveryOpeners.set(this, () => this.#openDelivery());
93
+ testAttachmentsInstallable.add(this);
94
+ Object.freeze(this);
95
+ }
96
+ /**
97
+ * Sets facilities for an environment type before first resolution.
98
+ *
99
+ * @param type Identifies the environment to configure.
100
+ * @returns A one-use configuration entry point.
101
+ */
102
+ static when(type) {
103
+ return Object.freeze({
104
+ use(settings) {
105
+ if (resetInProgress !== undefined) {
106
+ throw new Error("ServerEnvironment reset is in progress.");
107
+ }
108
+ if (resolvedEnvironment !== undefined) {
109
+ throw new Error("ServerEnvironment is already resolved and cannot be reconfigured.");
110
+ }
111
+ configuredSettings.set(type, settings);
112
+ },
113
+ });
114
+ }
115
+ /**
116
+ * Resolves this module graph's configured server facilities exactly once.
117
+ *
118
+ * @returns The process-wide server environment.
119
+ */
120
+ static instance() {
121
+ if (resetInProgress !== undefined) {
122
+ throw new Error("ServerEnvironment reset is in progress.");
123
+ }
124
+ return (resolvedEnvironment ??= this.#resolve());
125
+ }
126
+ static #resolve() {
127
+ const environment = Environment.instance();
128
+ const configured = configuredSettings.get(environment.type);
129
+ const settings = typeof configured === "function" ? configured() : configured;
130
+ const facilities = ServerEnvironmentValues.resolveFacilities(environment.type, settings ?? {});
131
+ return new ServerEnvironment(environment, facilities);
132
+ }
133
+ /**
134
+ * Closes this environment after all attached servers retire.
135
+ *
136
+ * Admission permanently closes the environment and prevents reuse. If it is
137
+ * in use, closure rejects without owned-facility teardown. Failed facility
138
+ * closes are retryable and already closed facilities are not closed again.
139
+ *
140
+ * @returns A promise that settles after the environment and owned facilities close.
141
+ *
142
+ */
143
+ close() {
144
+ testAttachmentsInstallable.delete(this);
145
+ this.#close ??= this.#attachments()
146
+ .admitPermanentClose()
147
+ .then(() => this.#closeGroup.close())
148
+ .catch((error) => {
149
+ this.#close = undefined;
150
+ throw error;
151
+ });
152
+ return this.#close;
153
+ }
154
+ #openDelivery() {
155
+ if (this.#deliveryOpened)
156
+ return Promise.resolve();
157
+ const opening = (this.#deliveryOpen ??= Promise.resolve()
158
+ .then(() => {
159
+ const delivery = ServerEnvironmentValues.openableDelivery(this.delivery);
160
+ if (delivery !== undefined) {
161
+ return delivery.open();
162
+ }
163
+ return undefined;
164
+ })
165
+ .then(() => {
166
+ this.#deliveryOpened = true;
167
+ }));
168
+ // spine-log-boundary: server.delivery_open_reset
169
+ void opening.catch(() => {
170
+ if (this.#deliveryOpen === opening)
171
+ this.#deliveryOpen = undefined;
172
+ });
173
+ return opening;
174
+ }
175
+ #attachments() {
176
+ const attachments = environmentAttachments.get(this);
177
+ if (attachments === undefined) {
178
+ throw new Error("ServerEnvironment attachments are not available.");
179
+ }
180
+ return attachments;
181
+ }
182
+ }
183
+ /**
184
+ * Provides controlled server-environment lifecycle operations for package owners.
185
+ *
186
+ * @internal
187
+ */
188
+ export const ServerEnvironmentLifecycle = Object.freeze({
189
+ // prettier-ignore
190
+ /**
191
+ * Resets singleton facilities to deterministic local defaults for the next package test.
192
+ */
193
+ resetForTest() {
194
+ const current = resetInProgress;
195
+ if (current !== undefined) {
196
+ return current;
197
+ }
198
+ const resolved = resolvedEnvironment;
199
+ const reset = Promise.resolve()
200
+ .then(() => resolved?.close())
201
+ .then(() => {
202
+ resolvedEnvironment = undefined;
203
+ configuredSettings.clear();
204
+ EnvironmentTests.reset();
205
+ })
206
+ .finally(() => {
207
+ resetInProgress = undefined;
208
+ });
209
+ resetInProgress = reset;
210
+ return reset;
211
+ },
212
+ });
213
+ const environmentAttachments = new WeakMap();
214
+ const environmentLoggers = new WeakMap();
215
+ const deliveryOpeners = new WeakMap();
216
+ const testAttachmentsInstallable = new WeakSet();
217
+ const warnedVolatileRegistries = new WeakMap();
218
+ /**
219
+ * Provides package-only environment delivery attachment access for server lifecycle owners.
220
+ *
221
+ * @internal
222
+ */
223
+ export const serverEnvironmentAccess = Object.freeze({
224
+ attach(environment, options) {
225
+ testAttachmentsInstallable.delete(environment);
226
+ const attachments = environmentAttachments.get(environment);
227
+ if (attachments === undefined) {
228
+ return Promise.reject(new TypeError("Attachment requires a ServerEnvironment instance."));
229
+ }
230
+ const openDelivery = deliveryOpeners.get(environment);
231
+ if (openDelivery === undefined) {
232
+ return Promise.reject(new TypeError("Attachment requires a ServerEnvironment instance."));
233
+ }
234
+ return openDelivery().then(() => attachments.attach(options));
235
+ },
236
+ failedStartPending(environment) {
237
+ const attachments = environmentAttachments.get(environment);
238
+ if (attachments === undefined) {
239
+ throw new TypeError("Failed-start observation requires a ServerEnvironment instance.");
240
+ }
241
+ return attachments.failedStartPending;
242
+ },
243
+ failedStartRetryPending(environment, error) {
244
+ const attachments = environmentAttachments.get(environment);
245
+ if (attachments === undefined) {
246
+ throw new TypeError("Failed-start retry observation requires a ServerEnvironment instance.");
247
+ }
248
+ return attachments.failedStartRetryPending(error);
249
+ },
250
+ retryFailedStart(environment) {
251
+ testAttachmentsInstallable.delete(environment);
252
+ const attachments = environmentAttachments.get(environment);
253
+ if (attachments === undefined) {
254
+ return Promise.reject(new TypeError("Rollback retry requires a ServerEnvironment instance."));
255
+ }
256
+ return attachments.retryFailedStart();
257
+ },
258
+ detach(environment, attachment) {
259
+ testAttachmentsInstallable.delete(environment);
260
+ const attachments = environmentAttachments.get(environment);
261
+ if (attachments === undefined) {
262
+ return Promise.reject(new TypeError("Detach requires a ServerEnvironment instance."));
263
+ }
264
+ return attachments.detach(attachment);
265
+ },
266
+ retryDetach(environment, attachment) {
267
+ testAttachmentsInstallable.delete(environment);
268
+ const attachments = environmentAttachments.get(environment);
269
+ if (attachments === undefined) {
270
+ return Promise.reject(new TypeError("Detach retry requires a ServerEnvironment instance."));
271
+ }
272
+ return attachments.retryDetach(attachment);
273
+ },
274
+ detachRetryPending(environment, attachment) {
275
+ const attachments = environmentAttachments.get(environment);
276
+ if (attachments === undefined) {
277
+ throw new TypeError("Detach-retry observation requires a ServerEnvironment instance.");
278
+ }
279
+ return attachments.detachRetryPending(attachment);
280
+ },
281
+ endpointSafe(environment, attachment) {
282
+ const attachments = environmentAttachments.get(environment);
283
+ if (attachments === undefined) {
284
+ throw new TypeError("Endpoint-safety observation requires a ServerEnvironment instance.");
285
+ }
286
+ return attachments.endpointSafe(attachment);
287
+ },
288
+ stopDelivery(environment) {
289
+ testAttachmentsInstallable.delete(environment);
290
+ const attachments = environmentAttachments.get(environment);
291
+ if (attachments === undefined) {
292
+ return Promise.reject(new TypeError("Delivery stop requires a ServerEnvironment instance."));
293
+ }
294
+ return attachments.stopDelivery();
295
+ },
296
+ retryDeliveryStop(environment) {
297
+ testAttachmentsInstallable.delete(environment);
298
+ const attachments = environmentAttachments.get(environment);
299
+ if (attachments === undefined) {
300
+ return Promise.reject(new TypeError("Delivery stop retry requires a ServerEnvironment instance."));
301
+ }
302
+ return attachments.retryDeliveryStop();
303
+ },
304
+ installTestAttachments(environment, createWorker) {
305
+ if (!environmentAttachments.has(environment)) {
306
+ throw new TypeError("Test attachments require a ServerEnvironment instance.");
307
+ }
308
+ if (!testAttachmentsInstallable.delete(environment)) {
309
+ throw new Error("Test attachments may only be installed before environment lifecycle use.");
310
+ }
311
+ environmentAttachments.set(environment, new EnvironmentAttachments({
312
+ logger: ServerEnvironmentValues.loggerFor(environment),
313
+ createWorker,
314
+ }));
315
+ },
316
+ loggerFor(environment) {
317
+ return ServerEnvironmentValues.loggerFor(environment);
318
+ },
319
+ warnVolatileRegistry(environment, context) {
320
+ if (environment.environment.type !== EnvironmentType.Production)
321
+ return;
322
+ if (boundedContextAccess.subscriptionRegistry(context).persistent)
323
+ return;
324
+ const warned = warnedVolatileRegistries.get(environment);
325
+ if (warned === undefined) {
326
+ throw new TypeError("Registry warning requires a ServerEnvironment instance.");
327
+ }
328
+ if (warned.has(context))
329
+ return;
330
+ warned.add(context);
331
+ // spine-log-boundary: server.volatile_subscription_registry
332
+ emitServerWarning(ServerEnvironmentValues.loggerFor(environment), "Stand subscription registry is not persistent.", { contextName: context.name.value, operation: "stand.registry", reasonCode: "volatile" });
333
+ },
334
+ });
335
+ /**
336
+ *
337
+ * @internal Groups private facility-assembly operations for the environment singleton.
338
+ */
339
+ const ServerEnvironmentValues = Object.freeze({
340
+ loggerFor(environment) {
341
+ const logger = environmentLoggers.get(environment);
342
+ if (logger === undefined)
343
+ throw new TypeError("ServerEnvironment logger is not available.");
344
+ return logger;
345
+ },
346
+ openableDelivery(delivery) {
347
+ if (delivery === undefined)
348
+ return undefined;
349
+ const candidate = delivery;
350
+ if (typeof candidate.open !== "function")
351
+ return undefined;
352
+ if (typeof candidate.close !== "function" ||
353
+ !("inbox" in candidate) ||
354
+ !("workRegistry" in candidate)) {
355
+ throw new TypeError("ServerEnvironmentDelivery requires inbox and workRegistry ports.");
356
+ }
357
+ return candidate;
358
+ },
359
+ ports(delivery) {
360
+ const remote = ServerEnvironmentValues.openableDelivery(delivery);
361
+ if (remote === undefined)
362
+ return undefined;
363
+ return {
364
+ inbox: remote.inbox,
365
+ workRegistry: remote.workRegistry,
366
+ ...(remote.source === undefined ? {} : { source: remote.source }),
367
+ };
368
+ },
369
+ facilitiesToClose(options) {
370
+ return Object.freeze([
371
+ ...(options.delivery === undefined ? [] : [options.delivery]),
372
+ options.integrationChannelFactory,
373
+ ...(options.tracerFactory === undefined ? [] : [options.tracerFactory]),
374
+ options.storageFactory,
375
+ ]);
376
+ },
377
+ logger(logger) {
378
+ return (logger ??
379
+ new LogLayer({
380
+ transport: new StructuredTransport({
381
+ logger: console,
382
+ level: "warn",
383
+ stringify: true,
384
+ messageField: "message",
385
+ dateField: "timestamp",
386
+ levelField: "severity",
387
+ levelFn: (level) => level.toUpperCase(),
388
+ }),
389
+ })).child();
390
+ },
391
+ resolveFacilities(type, settings) {
392
+ if (type === EnvironmentType.Production) {
393
+ if (settings.storageFactory === undefined) {
394
+ throw new Error("Production ServerEnvironment requires storageFactory.");
395
+ }
396
+ if (settings.typeRegistry === undefined) {
397
+ throw new Error("Production ServerEnvironment requires typeRegistry.");
398
+ }
399
+ return {
400
+ storageFactory: settings.storageFactory,
401
+ integrationChannelFactory: settings.integrationChannelFactory ?? new InMemoryTransportFactory(),
402
+ typeRegistry: settings.typeRegistry,
403
+ delivery: settings.delivery,
404
+ tracerFactory: settings.tracerFactory,
405
+ logger: ServerEnvironmentValues.logger(settings.logger),
406
+ };
407
+ }
408
+ return {
409
+ storageFactory: settings.storageFactory ?? new InMemoryStorageFactory(),
410
+ integrationChannelFactory: settings.integrationChannelFactory ?? new InMemoryTransportFactory(),
411
+ typeRegistry: settings.typeRegistry ?? spineCoreRegistry,
412
+ delivery: settings.delivery,
413
+ tracerFactory: settings.tracerFactory,
414
+ logger: ServerEnvironmentValues.logger(settings.logger),
415
+ };
416
+ },
417
+ });
418
+ //# sourceMappingURL=server-environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-environment.js","sourceRoot":"","sources":["../../src/server/server-environment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ILogLayer } from "loglayer";
2
+ /**
3
+ * Records one internal warning without allowing logging failures into runtime work.
4
+ *
5
+ * @param logger Receives the contained record.
6
+ * @param message Supplies the stable warning message.
7
+ * @param facts Supplies allowlisted structured facts.
8
+ */
9
+ export declare function emitServerWarning(logger: ILogLayer, message: string, facts: Readonly<Record<string, unknown>>): void;
10
+ /**
11
+ * Records one internal error without allowing logging failures into runtime work.
12
+ *
13
+ * @param logger Receives the contained record.
14
+ * @param message Supplies the stable error message.
15
+ * @param facts Supplies allowlisted structured facts.
16
+ */
17
+ export declare function emitServerError(logger: ILogLayer, message: string, facts: Readonly<Record<string, unknown>>): void;
18
+ //# sourceMappingURL=server-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-log.d.ts","sourceRoot":"","sources":["../../src/server/server-log.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AA8B1C;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACvC,IAAI,CAEN;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACvC,IAAI,CAEN"}
@@ -0,0 +1,100 @@
1
+ /*
2
+ * Copyright 2026, CodeMatters. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5
+ * in compliance with the License. You may obtain a copy of the License at
6
+ *
7
+ * https://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
10
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
+ * or implied. See the License for the specific language governing permissions and limitations under
12
+ * the License.
13
+ */
14
+ const allowedFields = new Set([
15
+ "tenantId",
16
+ "actorId",
17
+ "entityType",
18
+ "entityId",
19
+ "commandType",
20
+ "commandId",
21
+ "sourceCommandType",
22
+ "sourceCommandId",
23
+ "childCommandType",
24
+ "childCommandId",
25
+ "eventType",
26
+ "eventId",
27
+ "shardId",
28
+ "workerId",
29
+ "nodeId",
30
+ "subscriptionId",
31
+ "contextName",
32
+ "operation",
33
+ "reasonCode",
34
+ "slot",
35
+ "incarnation",
36
+ "attempt",
37
+ "delay",
38
+ "count",
39
+ ]);
40
+ const code = /^[a-z0-9][a-z0-9_.-]{0,63}$/;
41
+ /**
42
+ * Records one internal warning without allowing logging failures into runtime work.
43
+ *
44
+ * @param logger Receives the contained record.
45
+ * @param message Supplies the stable warning message.
46
+ * @param facts Supplies allowlisted structured facts.
47
+ */
48
+ export function emitServerWarning(logger, message, facts) {
49
+ emitServerLog(logger, "warn", message, facts);
50
+ }
51
+ /**
52
+ * Records one internal error without allowing logging failures into runtime work.
53
+ *
54
+ * @param logger Receives the contained record.
55
+ * @param message Supplies the stable error message.
56
+ * @param facts Supplies allowlisted structured facts.
57
+ */
58
+ export function emitServerError(logger, message, facts) {
59
+ emitServerLog(logger, "error", message, facts);
60
+ }
61
+ function emitServerLog(logger, level, message, facts) {
62
+ try {
63
+ const builder = logger.withMetadata(cleanFacts(facts));
64
+ const emit = level === "warn" ? builder.warn.bind(builder) : builder.error.bind(builder);
65
+ const emitted = emit(message);
66
+ if (isPromiseLike(emitted)) {
67
+ // spine-log-boundary: server.log_async_failure
68
+ void Promise.resolve(emitted).catch(() => undefined);
69
+ }
70
+ // spine-log-boundary: server.log_sync_failure
71
+ }
72
+ catch {
73
+ // Logging must not affect the containing runtime outcome.
74
+ }
75
+ }
76
+ function cleanFacts(facts) {
77
+ const cleaned = {};
78
+ for (const [key, value] of Object.entries(facts)) {
79
+ if (!allowedFields.has(key))
80
+ continue;
81
+ if (key === "count") {
82
+ if (Number.isInteger(value) && value >= 0 && value <= 2_147_483_647)
83
+ cleaned[key] = value;
84
+ continue;
85
+ }
86
+ if (typeof value !== "string" || Buffer.byteLength(value, "utf8") > 256)
87
+ continue;
88
+ if ((key === "operation" || key === "reasonCode") && !code.test(value))
89
+ continue;
90
+ cleaned[key] = value;
91
+ }
92
+ return cleaned;
93
+ }
94
+ function isPromiseLike(value) {
95
+ return ((typeof value === "object" || typeof value === "function") &&
96
+ value !== null &&
97
+ "then" in value &&
98
+ typeof value.then === "function");
99
+ }
100
+ //# sourceMappingURL=server-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-log.js","sourceRoot":"","sources":["../../src/server/server-log.ts"],"names":[],"mappings":"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"}