@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,112 @@
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 { emitServerError } from "./server-log.js";
15
+ const running = [];
16
+ let signalsInstalled = false;
17
+ let closingRunning;
18
+ /**
19
+ * Coordinates process-owned server shutdown without exposing lifecycle seams.
20
+ *
21
+ * @internal
22
+ */
23
+ export const ProcessServerCoordinator = Object.freeze({
24
+ add(server, environment, logger, onRetired) {
25
+ const record = { server, environment, logger, retirement: undefined };
26
+ running.push(record);
27
+ ProcessServerCoordinator.installSignals();
28
+ return {
29
+ host: server.host,
30
+ port: server.port,
31
+ baseUrl: server.baseUrl,
32
+ close: async () => {
33
+ await server.close();
34
+ await ProcessServerCoordinatorValues.retire(record);
35
+ onRetired();
36
+ },
37
+ };
38
+ },
39
+ installSignals() {
40
+ if (signalsInstalled)
41
+ return;
42
+ signalsInstalled = true;
43
+ process.on("SIGINT", ProcessServerCoordinator.onSignal);
44
+ process.on("SIGTERM", ProcessServerCoordinator.onSignal);
45
+ },
46
+ onSignal() {
47
+ void ProcessServerCoordinator.closeRunning();
48
+ },
49
+ closeRunning() {
50
+ closingRunning ??= ProcessServerCoordinatorValues.closeRunning().finally(() => {
51
+ closingRunning = undefined;
52
+ });
53
+ return closingRunning;
54
+ },
55
+ });
56
+ /**
57
+ * Groups private process-owned run retirement operations.
58
+ *
59
+ * @internal
60
+ */
61
+ const ProcessServerCoordinatorValues = Object.freeze({
62
+ async closeRunning() {
63
+ for (const record of [...running].reverse()) {
64
+ try {
65
+ await record.server.close();
66
+ await ProcessServerCoordinatorValues.retire(record);
67
+ // spine-log-boundary: server.process_shutdown_close
68
+ }
69
+ catch {
70
+ process.exitCode = 1;
71
+ if (record.logger !== undefined) {
72
+ emitServerError(record.logger, "Process-owned server shutdown failed.", {
73
+ operation: "server.process_shutdown",
74
+ reasonCode: "close_failed",
75
+ });
76
+ }
77
+ }
78
+ }
79
+ },
80
+ remove(record) {
81
+ const index = running.indexOf(record);
82
+ if (index >= 0)
83
+ running.splice(index, 1);
84
+ if (running.length > 0)
85
+ return;
86
+ process.off("SIGINT", ProcessServerCoordinator.onSignal);
87
+ process.off("SIGTERM", ProcessServerCoordinator.onSignal);
88
+ signalsInstalled = false;
89
+ },
90
+ retire(record) {
91
+ const current = record.retirement;
92
+ if (current !== undefined)
93
+ return current;
94
+ const retirement = Promise.resolve()
95
+ .then(async () => {
96
+ if (!running.includes(record))
97
+ return;
98
+ if (record.environment !== undefined &&
99
+ !running.some((candidate) => candidate !== record && candidate.environment !== undefined)) {
100
+ await record.environment.close();
101
+ }
102
+ ProcessServerCoordinatorValues.remove(record);
103
+ })
104
+ .catch((error) => {
105
+ record.retirement = undefined;
106
+ throw error;
107
+ });
108
+ record.retirement = retirement;
109
+ return retirement;
110
+ },
111
+ });
112
+ //# sourceMappingURL=process-server-coordinator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-server-coordinator.js","sourceRoot":"","sources":["../../src/server/process-server-coordinator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ [
2
+ "/spine.auth.AuthenticationService/ResolveContext",
3
+ "/spine.client.CommandService/Post",
4
+ "/spine.client.QueryService/Read",
5
+ "/spine.client.SubscriptionService/Subscribe",
6
+ "/spine.client.SubscriptionService/Activate",
7
+ "/spine.client.SubscriptionService/Cancel"
8
+ ]
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Closes resources in order and retains failures for a later retry.
3
+ */
4
+ export declare class RetryableCloseGroup {
5
+ #private;
6
+ /**
7
+ * Creates a retryable close sequence.
8
+ *
9
+ * @param closeables Supplies resources to close in order.
10
+ * @param message Describes a combined close failure.
11
+ */
12
+ constructor(closeables: readonly unknown[], message: string);
13
+ /**
14
+ * Closes each remaining resource and aggregates any failures.
15
+ *
16
+ * @returns A promise that settles after each remaining resource is attempted.
17
+ */
18
+ close(): Promise<void>;
19
+ }
20
+ /**
21
+ * Collects nested close failures without losing deterministic order.
22
+ *
23
+ * @internal
24
+ */
25
+ export declare const CloseErrors: {
26
+ readonly collect: (error: unknown, errors: unknown[]) => void;
27
+ };
28
+ //# sourceMappingURL=retryable-close.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryable-close.d.ts","sourceRoot":"","sources":["../../src/server/retryable-close.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,qBAAa,mBAAmB;;IAK9B;;;;;OAKG;gBACS,UAAU,EAAE,SAAS,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM;IAK3D;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA6B7B;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;CAgDrF,CAAC"}
@@ -0,0 +1,129 @@
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
+ /**
15
+ * Closes resources in order and retains failures for a later retry.
16
+ */
17
+ export class RetryableCloseGroup {
18
+ #closeables;
19
+ #message;
20
+ #closedIndexes = new Set();
21
+ /**
22
+ * Creates a retryable close sequence.
23
+ *
24
+ * @param closeables Supplies resources to close in order.
25
+ * @param message Describes a combined close failure.
26
+ */
27
+ constructor(closeables, message) {
28
+ this.#closeables = closeables;
29
+ this.#message = message;
30
+ }
31
+ /**
32
+ * Closes each remaining resource and aggregates any failures.
33
+ *
34
+ * @returns A promise that settles after each remaining resource is attempted.
35
+ */
36
+ async close() {
37
+ const errors = [];
38
+ for (const [index, closeable] of this.#closeables.entries()) {
39
+ if (this.#closedIndexes.has(index)) {
40
+ continue;
41
+ }
42
+ await this.#closeOne(closeable, index, errors);
43
+ }
44
+ if (errors.length > 0) {
45
+ throw new AggregateError(errors, this.#message);
46
+ }
47
+ }
48
+ async #closeOne(closeable, index, errors) {
49
+ try {
50
+ const close = RetryableCloseValues.closeMethod(closeable);
51
+ if (close === undefined) {
52
+ this.#closedIndexes.add(index);
53
+ return;
54
+ }
55
+ await close();
56
+ this.#closedIndexes.add(index);
57
+ }
58
+ catch (error) {
59
+ CloseErrors.collect(error, errors);
60
+ }
61
+ }
62
+ }
63
+ /**
64
+ * Collects nested close failures without losing deterministic order.
65
+ *
66
+ * @internal
67
+ */
68
+ export const CloseErrors = Object.freeze({
69
+ // prettier-ignore
70
+ /**
71
+ * Appends leaf close failures in stable aggregate order.
72
+ *
73
+ * @param error Supplies a direct or aggregate close failure.
74
+ * @param errors Receives flattened leaf failures.
75
+ */
76
+ collect(error, errors) {
77
+ const ancestors = new Set();
78
+ const work = [{ type: "visit", error }];
79
+ while (work.length > 0) {
80
+ const frame = work.pop();
81
+ if (frame === undefined) {
82
+ continue;
83
+ }
84
+ if (frame.type === "leave") {
85
+ ancestors.delete(frame.aggregate);
86
+ continue;
87
+ }
88
+ if (!(frame.error instanceof AggregateError)) {
89
+ errors.push(frame.error);
90
+ continue;
91
+ }
92
+ if (ancestors.has(frame.error)) {
93
+ errors.push(frame.error);
94
+ continue;
95
+ }
96
+ ancestors.add(frame.error);
97
+ const causes = [...frame.error.errors];
98
+ if (causes.length === 0) {
99
+ ancestors.delete(frame.error);
100
+ errors.push(frame.error);
101
+ continue;
102
+ }
103
+ work.push({ type: "leave", aggregate: frame.error });
104
+ for (let index = causes.length - 1; index >= 0; index -= 1) {
105
+ work.push({ type: "visit", error: causes[index] });
106
+ }
107
+ }
108
+ },
109
+ });
110
+ /**
111
+ *
112
+ * @internal Groups private close-operation reflection used by retryable shutdown.
113
+ */
114
+ const RetryableCloseValues = Object.freeze({
115
+ closeMethod(closeable) {
116
+ if (typeof closeable !== "object" || closeable === null) {
117
+ return undefined;
118
+ }
119
+ const close = Reflect.get(closeable, "close");
120
+ if (typeof close !== "function") {
121
+ return undefined;
122
+ }
123
+ return () => {
124
+ const result = Reflect.apply(close, closeable, []);
125
+ return result;
126
+ };
127
+ },
128
+ });
129
+ //# sourceMappingURL=retryable-close.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryable-close.js","sourceRoot":"","sources":["../../src/server/retryable-close.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,180 @@
1
+ import { type StorageFactory } from "@spine-event-engine/storage";
2
+ import { type ILogLayer } from "loglayer";
3
+ import { type TransportFactory } from "@spine-event-engine/transport";
4
+ import { type TypeRegistryLookup } from "@spine-event-engine/core";
5
+ import { type BoundedContext } from "../context/bounded-context.js";
6
+ import type { DeliveryInbox, DeliveryWorkRegistry } from "../delivery/delivery-ports.js";
7
+ import type { DeliverySource } from "../delivery/delivery-supervisor.js";
8
+ import { type EnvironmentAttachOptions, type EnvironmentAttachmentHandle, type EnvironmentGenerationWorker } from "./environment-attachment.js";
9
+ import { Environment, EnvironmentType } from "./environment.js";
10
+ /**
11
+ * Common closeable facility owned by a server environment.
12
+ */
13
+ export interface ServerEnvironmentCloseable {
14
+ /**
15
+ * Closes the facility.
16
+ *
17
+ * @returns An optional asynchronous close operation.
18
+ */
19
+ close(): unknown;
20
+ }
21
+ /**
22
+ * A closeable environment facility that must open before attachment admission.
23
+ */
24
+ export interface ServerEnvironmentDelivery extends ServerEnvironmentCloseable {
25
+ /**
26
+ * Opens the facility before the environment admits attachments.
27
+ *
28
+ * @returns An optional asynchronous open operation.
29
+ */
30
+ open(): unknown;
31
+ /**
32
+ * Supplies the inbox port used by environment delivery generations.
33
+ */
34
+ readonly inbox: DeliveryInbox;
35
+ /**
36
+ * Supplies the shard work-registry port used by environment delivery generations.
37
+ */
38
+ readonly workRegistry: DeliveryWorkRegistry;
39
+ /**
40
+ * Supplies the remote Admin source used to recover and observe shard work.
41
+ */
42
+ readonly source?: DeliverySource;
43
+ }
44
+ /**
45
+ * Facilities configured for one Node environment type.
46
+ */
47
+ export interface ServerEnvironmentSettings {
48
+ /**
49
+ * Storage facility selected for server assembly, including server-added context builders.
50
+ */
51
+ readonly storageFactory?: StorageFactory;
52
+ /**
53
+ * Optional message-channel factory for private bounded-context integration brokers.
54
+ *
55
+ * When omitted, this environment owns one `InMemoryTransportFactory` shared
56
+ * by every local broker in the process and closes it once with the environment.
57
+ */
58
+ readonly integrationChannelFactory?: TransportFactory;
59
+ /**
60
+ * Complete generated application schema lookup used for ThirdParty event encoding.
61
+ * Production requires it; local/test environments fall back to `spineCoreRegistry` only.
62
+ */
63
+ readonly typeRegistry?: TypeRegistryLookup;
64
+ /**
65
+ * Optional closeable delivery owner for durable delivery seams.
66
+ */
67
+ readonly delivery?: ServerEnvironmentCloseable;
68
+ /**
69
+ * Optional tracing factory placeholder for later tracing adapters.
70
+ */
71
+ readonly tracerFactory?: ServerEnvironmentCloseable;
72
+ /**
73
+ * Application-owned logger used by this environment and its attached runtime parts.
74
+ * The caller retains transport flush and close ownership.
75
+ */
76
+ readonly logger?: ILogLayer;
77
+ }
78
+ /**
79
+ * Creates facilities for the selected server environment.
80
+ *
81
+ * @returns The facilities selected for the environment.
82
+ */
83
+ export type ServerEnvironmentSettingsFactory = () => ServerEnvironmentSettings;
84
+ type SettingsInput = ServerEnvironmentSettings | ServerEnvironmentSettingsFactory;
85
+ /**
86
+ * Process-wide server facilities for the canonical {@link Environment}.
87
+ */
88
+ export declare class ServerEnvironment implements ServerEnvironmentCloseable {
89
+ #private;
90
+ /**
91
+ * The environment whose settings resolved these facilities.
92
+ */
93
+ readonly environment: Environment;
94
+ /**
95
+ * Stable identity shared by every server in this singleton lifecycle.
96
+ */
97
+ readonly nodeId: string;
98
+ /**
99
+ * Storage facility selected for server assembly, including server-added context builders.
100
+ */
101
+ readonly storageFactory: StorageFactory;
102
+ /**
103
+ * Message-channel factory selected for private bounded-context integration.
104
+ *
105
+ * This is either the configured override or one environment-owned
106
+ * `InMemoryTransportFactory` shared by every local broker in the process and
107
+ * closed once with the environment.
108
+ */
109
+ readonly integrationChannelFactory: TransportFactory;
110
+ /**
111
+ * Read-only application schema lookup used by private integration boundaries.
112
+ */
113
+ readonly typeRegistry: TypeRegistryLookup;
114
+ /**
115
+ * Optional closeable delivery owner selected for this environment.
116
+ */
117
+ readonly delivery: ServerEnvironmentCloseable | undefined;
118
+ /**
119
+ * Optional tracing factory selected for this environment.
120
+ */
121
+ readonly tracerFactory: ServerEnvironmentCloseable | undefined;
122
+ private constructor();
123
+ /**
124
+ * Sets facilities for an environment type before first resolution.
125
+ *
126
+ * @param type Identifies the environment to configure.
127
+ * @returns A one-use configuration entry point.
128
+ */
129
+ static when(type: EnvironmentType): {
130
+ use(settings: SettingsInput): void;
131
+ };
132
+ /**
133
+ * Resolves this module graph's configured server facilities exactly once.
134
+ *
135
+ * @returns The process-wide server environment.
136
+ */
137
+ static instance(): ServerEnvironment;
138
+ /**
139
+ * Closes this environment after all attached servers retire.
140
+ *
141
+ * Admission permanently closes the environment and prevents reuse. If it is
142
+ * in use, closure rejects without owned-facility teardown. Failed facility
143
+ * closes are retryable and already closed facilities are not closed again.
144
+ *
145
+ * @returns A promise that settles after the environment and owned facilities close.
146
+ *
147
+ */
148
+ close(): Promise<void>;
149
+ }
150
+ /**
151
+ * Provides controlled server-environment lifecycle operations for package owners.
152
+ *
153
+ * @internal
154
+ */
155
+ export declare const ServerEnvironmentLifecycle: {
156
+ readonly resetForTest: () => Promise<void>;
157
+ };
158
+ interface ServerEnvironmentAccess {
159
+ attach(environment: ServerEnvironment, options: EnvironmentAttachOptions): Promise<EnvironmentAttachmentHandle>;
160
+ failedStartPending(environment: ServerEnvironment): boolean;
161
+ failedStartRetryPending(environment: ServerEnvironment, error: unknown): boolean;
162
+ retryFailedStart(environment: ServerEnvironment): Promise<void>;
163
+ detach(environment: ServerEnvironment, attachment: EnvironmentAttachmentHandle): Promise<void>;
164
+ retryDetach(environment: ServerEnvironment, attachment: EnvironmentAttachmentHandle): Promise<void>;
165
+ detachRetryPending(environment: ServerEnvironment, attachment: EnvironmentAttachmentHandle): boolean;
166
+ endpointSafe(environment: ServerEnvironment, attachment: EnvironmentAttachmentHandle): boolean;
167
+ stopDelivery(environment: ServerEnvironment): Promise<void>;
168
+ retryDeliveryStop(environment: ServerEnvironment): Promise<void>;
169
+ installTestAttachments(environment: ServerEnvironment, createWorker: () => EnvironmentGenerationWorker): void;
170
+ loggerFor(environment: ServerEnvironment): ILogLayer;
171
+ warnVolatileRegistry(environment: ServerEnvironment, context: BoundedContext): void;
172
+ }
173
+ /**
174
+ * Provides package-only environment delivery attachment access for server lifecycle owners.
175
+ *
176
+ * @internal
177
+ */
178
+ export declare const serverEnvironmentAccess: ServerEnvironmentAccess;
179
+ export {};
180
+ //# sourceMappingURL=server-environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-environment.d.ts","sourceRoot":"","sources":["../../src/server/server-environment.ts"],"names":[],"mappings":"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"}