@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,389 @@
1
+ import type { AuthorizationPolicy, Clock, ContextResolver, OpaqueSessionCookies, SessionResolver, SubscriptionBindings } from "@spine-event-engine/auth";
2
+ import type { TypeRegistryLookup } from "@spine-event-engine/core";
3
+ import type { NodeDiscovery } from "@spine-event-engine/deployment";
4
+ import { BoundedContext, BoundedContextBuilder } from "../context/bounded-context.js";
5
+ import type { StandSubscriptionRegistry } from "../stand/subscription-registry.js";
6
+ import { type SpineServicesOptions } from "../services/spine-services.js";
7
+ /**
8
+ * Performs work coupled to listener readiness and network shutdown.
9
+ */
10
+ export interface ListenerLifecycle {
11
+ /**
12
+ * Starts after the native listener accepts connections.
13
+ *
14
+ * @returns A value or promise that settles after readiness work.
15
+ */
16
+ start(): unknown;
17
+ /**
18
+ * Completes before the native listener stops accepting connections.
19
+ *
20
+ * @returns A value or promise that settles after shutdown work.
21
+ */
22
+ close(): unknown;
23
+ }
24
+ /**
25
+ * Configures and starts local Spine Connect/gRPC-compatible services.
26
+ *
27
+ * A server assembles its bounded contexts, completes finite environment
28
+ * delivery recovery, and opens its generated services before accepting network
29
+ * requests. It also owns the ordered cleanup of contexts and resources added
30
+ * to this assembly.
31
+ */
32
+ export declare class Server {
33
+ #private;
34
+ /**
35
+ * Creates a server builder.
36
+ *
37
+ * @param options Configures local network, contexts, resources, and services.
38
+ */
39
+ constructor(options?: ServerOptions);
40
+ /**
41
+ * Creates a local-only server builder for one port.
42
+ *
43
+ * @param port Selects the listener port, or zero for an ephemeral port.
44
+ * @param options Supplies all server options except the port.
45
+ * @returns A configured server builder.
46
+ */
47
+ static atPort(port: number, options?: Omit<ServerOptions, "port">): Server;
48
+ /**
49
+ * Adds one bounded context or builder to the assembly.
50
+ *
51
+ * Builders assemble during {@link start} before recovery and listener open.
52
+ * They use {@link ServerEnvironment.storageFactory} unless a more specific
53
+ * `withStorageFactory(...)` factory is selected. The running server owns and
54
+ * closes added contexts only after services, sessions, and active work stop.
55
+ *
56
+ * @param context Supplies the context or builder to expose.
57
+ * @returns This server builder.
58
+ */
59
+ add(context: BoundedContext | BoundedContextBuilder): this;
60
+ /**
61
+ * Adds a framework closeable owned by this server assembly.
62
+ *
63
+ * @param resource Supplies the resource to close after contexts.
64
+ * @returns This server builder.
65
+ */
66
+ addResource(resource: {
67
+ close(): unknown;
68
+ }): this;
69
+ /**
70
+ * Adds work that starts after listener readiness and closes before network intake stops.
71
+ *
72
+ * Failed starts roll back admitted lifecycles in reverse admission order. A
73
+ * failed close remains retryable and prevents network shutdown until it settles.
74
+ *
75
+ * @param lifecycle Supplies listener-coupled lifecycle work, such as GCE registration.
76
+ * @returns This server builder.
77
+ */
78
+ addListenerLifecycle(lifecycle: ListenerLifecycle): this;
79
+ /**
80
+ * Starts the server after completing assembly and delivery recovery.
81
+ *
82
+ * Built contexts attach to delivery in deterministic input order before the
83
+ * generated services and listener open. A failed assembly or listener open
84
+ * leaves no listener and closes acquired resources. Network cleanup is a hard
85
+ * gate before delivery or dependencies close.
86
+ * It shares only a caller-managed active environment generation, rejects
87
+ * while run-managed ownership is active, installs no signal handlers, and
88
+ * never closes the environment.
89
+ * A later call after incomplete cleanup retries only that cleanup and leaves
90
+ * this server terminal. A fresh server may reuse the singleton environment.
91
+ * Concurrent callers share one start or cleanup attempt.
92
+ *
93
+ * @returns The running server once its listener accepts requests.
94
+ */
95
+ start(): Promise<RunningServer>;
96
+ /**
97
+ * Starts this server with process-owned `SIGINT` and `SIGTERM` shutdown.
98
+ *
99
+ * This is the normal application entry point. Embedded applications should
100
+ * use {@link start} and keep ownership of process signals themselves.
101
+ * Concurrent calls on one builder return one managed handle. Run-managed
102
+ * siblings share an active generation but reject while caller-managed
103
+ * ownership is active. The final local environment-owning run retirement
104
+ * permanently closes its environment; a standalone browser Gateway remains
105
+ * signal-managed but never owns or closes that environment. A failed final
106
+ * close stays retryable through `close()` or a later process signal.
107
+ * Caller-managed servers never close their environment.
108
+ *
109
+ * @returns The running server after its listener accepts requests.
110
+ */
111
+ run(): Promise<RunningServer>;
112
+ }
113
+ /**
114
+ * Options for building a local Spine HTTP/2 service host.
115
+ */
116
+ export interface ServerOptions {
117
+ /**
118
+ * Listener host. Defaults to local-only `127.0.0.1`.
119
+ *
120
+ * Use a broader host such as `0.0.0.0` only when callers should reach this
121
+ * process from outside the local machine.
122
+ */
123
+ readonly host?: string;
124
+ /**
125
+ * Listener port. Defaults to `0`, asking the OS for a free port.
126
+ */
127
+ readonly port?: number;
128
+ /**
129
+ * Maximum uncompressed bytes accepted for one RPC request message.
130
+ * Defaults to 4,194,304 bytes. Must be an integer from 1 through
131
+ * 4,294,967,295.
132
+ */
133
+ readonly readMaxBytes?: number;
134
+ /**
135
+ * Maximum uncompressed bytes emitted for one RPC or auth-callback response.
136
+ * Defaults to 4,194,304 bytes. Must be an integer from 1 through
137
+ * 4,294,967,295. An auth callback exceeding this bound receives 413.
138
+ */
139
+ readonly writeMaxBytes?: number;
140
+ /**
141
+ * Built bounded contexts or builders owned by this server assembly.
142
+ *
143
+ * Builders in this list are assembled during {@link Server.start} before
144
+ * listener open. They use {@link ServerEnvironment.storageFactory} unless
145
+ * `withStorageFactory(...)` already selected a more specific local factory.
146
+ */
147
+ readonly contexts?: readonly (BoundedContext | BoundedContextBuilder)[];
148
+ /**
149
+ * Service-level options for Command, Query, and Subscription routes.
150
+ */
151
+ readonly services?: Omit<SpineServicesOptions, "contexts">;
152
+ /**
153
+ * Extra framework-owned closeables to close after contexts become safe to close.
154
+ */
155
+ readonly resources?: readonly {
156
+ close(): unknown;
157
+ }[];
158
+ /**
159
+ * Browser admission and listener configuration. When present, the native
160
+ * HTTP/2 listener remains private on loopback and this public listener
161
+ * becomes the returned server URL.
162
+ */
163
+ readonly browser?: BrowserServerOptions;
164
+ }
165
+ /**
166
+ * Selects exactly one browser admission mode and its binding ownership.
167
+ *
168
+ * An authenticated listener supplies `sessions` and may supply named durable
169
+ * `bindings`. A public listener supplies `publicAccess: true`; it owns
170
+ * process-local bindings itself and therefore cannot accept `bindings`.
171
+ */
172
+ export type BrowserAdmission = {
173
+ /**
174
+ * Resolves authenticated application sessions from incoming credentials.
175
+ */
176
+ readonly sessions: SessionResolver;
177
+ /**
178
+ * Excludes non-session public admission from authenticated mode.
179
+ */
180
+ readonly publicAccess?: never;
181
+ /**
182
+ * Supplies named subscription bindings owned by the authenticated application.
183
+ */
184
+ readonly bindings?: SubscriptionBindings;
185
+ } | {
186
+ /**
187
+ * Excludes session resolution from public mode.
188
+ */
189
+ readonly sessions?: never;
190
+ /**
191
+ * Admits requests under the framework-owned non-session public principal.
192
+ */
193
+ readonly publicAccess: true;
194
+ /**
195
+ * Prevents callers from supplying bindings that public mode does not own.
196
+ */
197
+ readonly bindings?: never;
198
+ };
199
+ /**
200
+ * Selects one separately hosted Spine backend or a non-empty fixed node set.
201
+ */
202
+ export type BrowserBackend = {
203
+ /**
204
+ * Supplies one canonical backend HTTP(S) origin.
205
+ */
206
+ readonly baseUrl: string;
207
+ /**
208
+ * Excludes a multi-node backend list when one backend is supplied.
209
+ */
210
+ readonly baseUrls?: never;
211
+ } | {
212
+ /**
213
+ * Excludes a single backend origin when a fixed node set is supplied.
214
+ */
215
+ readonly baseUrl?: never;
216
+ /**
217
+ * Supplies a non-empty fixed set of canonical backend HTTP(S) origins.
218
+ */
219
+ readonly baseUrls: readonly string[];
220
+ };
221
+ /**
222
+ * Common collaborators for every browser Server admission mode.
223
+ *
224
+ * Pair these with exactly one {@link BrowserAdmission} to form
225
+ * {@link BrowserServerOptions}.
226
+ */
227
+ export interface BrowserServerCollaborators {
228
+ /**
229
+ * Public browser listener host. Defaults to the server host.
230
+ */
231
+ readonly host?: string;
232
+ /**
233
+ * Public browser listener port. Defaults to the server port.
234
+ */
235
+ readonly port?: number;
236
+ /**
237
+ * Selects one separately hosted Spine backend or a non-empty fixed node set.
238
+ *
239
+ * Each URL must be one canonical HTTP(S) origin without credentials, query,
240
+ * fragment, or a path beyond `/`. `baseUrl` and `baseUrls` are exclusive;
241
+ * fan-in is best effort, so clients re-query authoritative state after a
242
+ * duplicate update or generic loss notice.
243
+ */
244
+ readonly backend?: BrowserBackend;
245
+ /**
246
+ * Supplies changing complete membership for unary routing and native streams.
247
+ * Supplying discovery makes this a standalone Gateway, so the server does
248
+ * not assemble or own local contexts, services, resources, or listener
249
+ * lifecycles. When both backend and discovery are supplied, discovery is the
250
+ * active membership source and fixed backend values are not reconciled.
251
+ */
252
+ readonly discovery?: NodeDiscovery;
253
+ /**
254
+ * Application-owned, exact authentication endpoints exposed beside the fixed
255
+ * Spine RPC paths. These endpoints are not a general-purpose router.
256
+ */
257
+ readonly authRoutes?: readonly BrowserAuthRoute[];
258
+ /**
259
+ * Limits concurrently admitted application authentication requests across
260
+ * this listener. Defaults to 64 and must be a positive safe integer. Excess
261
+ * requests receive 503 before handler invocation; capacity recovers when an
262
+ * admitted request settles.
263
+ */
264
+ readonly maxActiveAuthRequests?: number;
265
+ /**
266
+ * Exact browser origins permitted to make RPC calls.
267
+ */
268
+ readonly origins: readonly string[];
269
+ /**
270
+ * Decodes application request content for authorization and actor resolution.
271
+ */
272
+ readonly registry?: TypeRegistryLookup;
273
+ /**
274
+ * Allows or rejects an admitted principal for each decoded request.
275
+ */
276
+ readonly authorize: AuthorizationPolicy["authorize"];
277
+ /**
278
+ * Independently resolves trusted actor and tenant context after authorization.
279
+ */
280
+ readonly contexts: ContextResolver;
281
+ /**
282
+ * Supplies trusted timestamps for gateway decisions.
283
+ */
284
+ readonly clock: Clock;
285
+ /**
286
+ * Enables strict opaque-cookie extraction alongside bearer credentials.
287
+ */
288
+ readonly cookies?: OpaqueSessionCookies;
289
+ }
290
+ /**
291
+ * Browser collaborators with exactly one admission and binding-ownership mode.
292
+ */
293
+ export type BrowserServerOptions = BrowserServerCollaborators & BrowserAdmission;
294
+ /**
295
+ * Configures one bounded application authentication request.
296
+ */
297
+ export interface BrowserAuthRoute {
298
+ /**
299
+ * Selects the accepted HTTP method.
300
+ */
301
+ readonly method: "GET" | "POST";
302
+ /**
303
+ * Selects the exact canonical request path.
304
+ */
305
+ readonly path: string;
306
+ /**
307
+ * Lists exact browser origins allowed for this route.
308
+ */
309
+ readonly origins: readonly string[];
310
+ /**
311
+ * Allows an OAuth callback without an Origin header.
312
+ */
313
+ readonly allowMissingOrigin?: boolean;
314
+ /**
315
+ * Limits accepted request-body bytes.
316
+ */
317
+ readonly maxRequestBytes: number;
318
+ /**
319
+ * Limits request processing time in milliseconds.
320
+ */
321
+ readonly timeoutMs: number;
322
+ /**
323
+ * Handles one admitted authentication request.
324
+ *
325
+ * @param request Supplies the bounded Fetch request.
326
+ * @param signal Signals timeout, disconnect, or gateway close.
327
+ * @returns Returns the application response.
328
+ */
329
+ readonly onRequest: (request: Request, signal: AbortSignal) => Response | Promise<Response>;
330
+ }
331
+ /**
332
+ * Running local Spine service host.
333
+ */
334
+ export interface RunningServer {
335
+ /**
336
+ * Host accepted by the listener.
337
+ */
338
+ readonly host: string;
339
+ /**
340
+ * Bound listener port.
341
+ */
342
+ readonly port: number;
343
+ /**
344
+ * Base URL for Connect gRPC-compatible clients.
345
+ */
346
+ readonly baseUrl: string;
347
+ /**
348
+ * Closes intake, delivery, contexts, and owned resources.
349
+ *
350
+ * It stops network intake and sessions, then drains
351
+ * accepted work before detaching delivery. A failed intake close blocks later
352
+ * phases until a retry. Sibling servers remain available. Caller-managed
353
+ * servers leave process-wide facilities available; closing the final
354
+ * run-managed server closes its environment. Concurrent calls share one
355
+ * attempt; later calls retry only unfinished cleanup, preserving stable
356
+ * flattened failure order.
357
+ *
358
+ * @returns A promise that settles after server-owned cleanup completes.
359
+ */
360
+ close(): Promise<void>;
361
+ }
362
+ /**
363
+ * Exposes framework-only facts about a local running server.
364
+ *
365
+ * @internal
366
+ */
367
+ export interface RunningServerAccess {
368
+ /**
369
+ * Returns registry persistence facts for a framework-owned running server.
370
+ *
371
+ * @param server Supplies the local running server.
372
+ * @returns The context registry facts, or undefined for an opaque server.
373
+ */
374
+ subscriptionRegistries(server: RunningServer): readonly StandSubscriptionRegistry[] | undefined;
375
+ /**
376
+ * Returns completion after draining Delivery before managed network close.
377
+ *
378
+ * @param server Supplies the local running server.
379
+ * @returns Completion after its Delivery attachment drains.
380
+ */
381
+ drainDelivery(server: RunningServer): Promise<void>;
382
+ }
383
+ /**
384
+ * Provides framework-only `RunningServer` context facts.
385
+ *
386
+ * @internal
387
+ */
388
+ export declare const runningServerAccess: RunningServerAccess;
389
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}