@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,552 @@
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 * as http2 from "node:http2";
15
+ import { randomUUID } from "node:crypto";
16
+ import { clone, create, fromBinary, toBinary } from "@bufbuild/protobuf";
17
+ import { EmptySchema } from "@bufbuild/protobuf/wkt";
18
+ import { Code, ConnectError, createClient } from "@connectrpc/connect";
19
+ import { connectNodeAdapter, createGrpcTransport, Http2SessionManager, } from "@connectrpc/connect-node";
20
+ import { BackendMembershipKernel, } from "@spine-event-engine/deployment/spi/backend-membership";
21
+ import { SUBSCRIPTION_ACTIVATION_HANDSHAKE_MS } from "@spine-event-engine/core/spi/subscription-lifecycle";
22
+ import { AckSchema, ResponseSchema, StatusSchema, } from "@spine-event-engine/proto";
23
+ import { QueryResponseSchema, CommandService, QueryService, SubscriptionIdSchema, SubscriptionSchema, SubscriptionService, SubscriptionUpdateSchema, } from "@spine-event-engine/proto/client";
24
+ const defaultHost = "127.0.0.1";
25
+ const defaultPort = 0;
26
+ const defaultMessageMaxBytes = 4_194_304;
27
+ const gracefulSessionDrainMs = 100;
28
+ const subscriptionQueueLimit = 100;
29
+ /**
30
+ * Hosts generated unary services in front of managed complete replicas.
31
+ *
32
+ * @internal
33
+ */
34
+ export class NodeCoordinator {
35
+ // prettier-ignore
36
+ #members;
37
+ #unaryKernel;
38
+ #subscriptionKernel;
39
+ #server;
40
+ #sessions;
41
+ #stopMembers;
42
+ #cancellations = new Map();
43
+ #pendingActivations = new Map();
44
+ /**
45
+ *
46
+ * Bound listener host.
47
+ */
48
+ host;
49
+ /**
50
+ *
51
+ * Bound listener port.
52
+ */
53
+ port;
54
+ /**
55
+ *
56
+ * Bound Connect/gRPC base URL.
57
+ */
58
+ baseUrl;
59
+ #close;
60
+ #membershipReconciliation = Promise.resolve();
61
+ constructor(options, server, address, sessions) {
62
+ this.#members = options.members;
63
+ this.#unaryKernel = new BackendMembershipKernel(NodeCoordinatorValues.unaryKernelOptions());
64
+ this.#subscriptionKernel = new BackendMembershipKernel(NodeCoordinatorValues.unaryKernelOptions(options.members));
65
+ this.#server = server;
66
+ this.#sessions = sessions;
67
+ this.host = address.address;
68
+ this.port = address.port;
69
+ this.baseUrl = `http://${NodeCoordinatorValues.formatHostForUrl(this.host)}:${this.port.toString()}`;
70
+ const reconcile = () => {
71
+ this.#membershipReconciliation = this.#membershipReconciliation
72
+ .then(() => this.#reconcile(), () => this.#reconcile())
73
+ .catch(() => undefined);
74
+ };
75
+ this.#stopMembers = [
76
+ options.members.onReadyMembersChange(reconcile),
77
+ options.members.onRelayMembersChange(reconcile),
78
+ ];
79
+ }
80
+ /**
81
+ * Opens one generated unary-service listener.
82
+ *
83
+ * @param options Supplies private membership and listener configuration.
84
+ * @returns The running private Coordinator.
85
+ */
86
+ static async open(options) {
87
+ const host = NodeCoordinatorValues.host(options.host ?? defaultHost);
88
+ const port = NodeCoordinatorValues.port(options.port ?? defaultPort);
89
+ const readMaxBytes = NodeCoordinatorValues.messageLimit(options.readMaxBytes ?? defaultMessageMaxBytes);
90
+ const writeMaxBytes = NodeCoordinatorValues.messageLimit(options.writeMaxBytes ?? defaultMessageMaxBytes);
91
+ // eslint-disable-next-line prefer-const -- routes capture the Coordinator before the listener exists.
92
+ let coordinator;
93
+ const sessions = new Set();
94
+ const server = http2.createServer(connectNodeAdapter({
95
+ routes: (router) => {
96
+ router.service(CommandService, {
97
+ post: async (command, context) => {
98
+ return coordinator.#post(command, context);
99
+ },
100
+ });
101
+ router.service(QueryService, {
102
+ read: async (query, context) => {
103
+ return coordinator.#read(query, context);
104
+ },
105
+ });
106
+ router.service(SubscriptionService, {
107
+ subscribe: (topic, context) => coordinator.#subscribe(topic, context),
108
+ activate: (subscription, context) => coordinator.#activate(subscription, context),
109
+ cancel: (subscription, context) => coordinator.#cancel(subscription, context),
110
+ });
111
+ },
112
+ readMaxBytes,
113
+ writeMaxBytes,
114
+ }));
115
+ server.on("session", (session) => {
116
+ sessions.add(session);
117
+ session.once("close", () => sessions.delete(session));
118
+ });
119
+ const address = await NodeCoordinatorValues.listen(server, host, port);
120
+ coordinator = new NodeCoordinator(options, server, address, sessions);
121
+ await coordinator.#reconcile();
122
+ return coordinator;
123
+ }
124
+ /**
125
+ * Stops public intake, active sessions, and private child clients.
126
+ *
127
+ * @returns Completion after bounded Coordinator cleanup.
128
+ */
129
+ close() {
130
+ this.#close ??= this.#closeOnce().catch((error) => {
131
+ this.#close = undefined;
132
+ throw error;
133
+ });
134
+ return this.#close;
135
+ }
136
+ /**
137
+ * Removes unary admission while retaining active subscription relays.
138
+ *
139
+ * @returns Completion after the unary member snapshot becomes empty.
140
+ */
141
+ beginDrain() {
142
+ return this.#unaryKernel.reconcile([]);
143
+ }
144
+ async #post(command, context) {
145
+ const request = {
146
+ kind: "command",
147
+ command,
148
+ context,
149
+ response: create(AckSchema),
150
+ };
151
+ await this.#forward(request);
152
+ return request.response;
153
+ }
154
+ async #read(query, context) {
155
+ const request = {
156
+ kind: "query",
157
+ query,
158
+ context,
159
+ response: create(QueryResponseSchema),
160
+ };
161
+ await this.#forward(request);
162
+ return request.response;
163
+ }
164
+ async #subscribe(topic, context) {
165
+ const subscription = create(SubscriptionSchema, {
166
+ id: create(SubscriptionIdSchema, { value: `s-${randomUUID()}` }),
167
+ topic,
168
+ });
169
+ try {
170
+ await this.#subscriptionKernel.subscribe(toBinary(SubscriptionSchema, subscription), context.signal);
171
+ }
172
+ catch (error) {
173
+ throw this.#availabilityError(error);
174
+ }
175
+ this.#schedulePendingActivation(subscription);
176
+ return subscription;
177
+ }
178
+ async *#activate(subscription, context) {
179
+ const definition = toBinary(SubscriptionSchema, subscription);
180
+ this.#clearPendingActivation(subscription);
181
+ const overflow = new AbortController();
182
+ const abort = () => {
183
+ overflow.abort();
184
+ };
185
+ context.signal.addEventListener("abort", abort, { once: true });
186
+ if (context.signal.aborted)
187
+ abort();
188
+ const updates = new SubscriptionUpdateQueue(subscriptionQueueLimit, abort);
189
+ const activation = this.#subscriptionKernel
190
+ .activate(definition, async (childUpdate) => {
191
+ const update = fromBinary(SubscriptionUpdateSchema, childUpdate);
192
+ update.subscription = clone(SubscriptionSchema, subscription);
193
+ await updates.push(update);
194
+ }, overflow.signal)
195
+ .finally(() => {
196
+ updates.close();
197
+ });
198
+ let failure;
199
+ try {
200
+ for await (const update of updates)
201
+ yield update;
202
+ }
203
+ catch (error) {
204
+ failure = NodeCoordinatorValues.error(error);
205
+ }
206
+ finally {
207
+ context.signal.removeEventListener("abort", abort);
208
+ overflow.abort();
209
+ updates.close();
210
+ await this.#finishActivation(definition, activation, failure);
211
+ }
212
+ }
213
+ async #finishActivation(definition, activation, previousFailure) {
214
+ const failures = previousFailure === undefined ? [] : [previousFailure];
215
+ try {
216
+ await activation;
217
+ }
218
+ catch (error) {
219
+ failures.push(NodeCoordinatorValues.error(error));
220
+ }
221
+ try {
222
+ await this.#cancelDefinition(definition, new AbortController().signal);
223
+ }
224
+ catch (error) {
225
+ failures.push(NodeCoordinatorValues.error(error));
226
+ }
227
+ const first = failures[0];
228
+ if (first !== undefined && failures.length === 1)
229
+ throw first;
230
+ if (failures.length > 1)
231
+ throw new AggregateError(failures, "Coordinator activation cleanup failed.");
232
+ }
233
+ async #cancel(subscription, context) {
234
+ this.#clearPendingActivation(subscription);
235
+ await this.#cancelDefinition(toBinary(SubscriptionSchema, subscription), context.signal);
236
+ return create(ResponseSchema, {
237
+ status: create(StatusSchema, { status: { case: "ok", value: create(EmptySchema) } }),
238
+ });
239
+ }
240
+ async #forward(request) {
241
+ try {
242
+ await this.#unaryKernel.forward(request);
243
+ }
244
+ catch (error) {
245
+ throw this.#availabilityError(error);
246
+ }
247
+ }
248
+ #availabilityError(error) {
249
+ return error instanceof Error && error.message === "backend membership is unavailable."
250
+ ? new ConnectError("No ready application replica is available.", Code.Unavailable)
251
+ : error;
252
+ }
253
+ #schedulePendingActivation(subscription) {
254
+ const id = NodeCoordinatorValues.requiredValue(subscription.id?.value, "Coordinator subscription definition is missing an ID.");
255
+ this.#clearPendingActivation(subscription);
256
+ const pending = {
257
+ definition: toBinary(SubscriptionSchema, subscription),
258
+ timer: setTimeout(() => {
259
+ void this.#expirePendingActivation(id, pending);
260
+ }, SUBSCRIPTION_ACTIVATION_HANDSHAKE_MS),
261
+ };
262
+ pending.timer.unref();
263
+ this.#pendingActivations.set(id, pending);
264
+ }
265
+ #cancelDefinition(definition, signal) {
266
+ const id = NodeCoordinatorValues.requiredValue(fromBinary(SubscriptionSchema, definition).id?.value, "Coordinator subscription definition is missing an ID.");
267
+ const active = this.#cancellations.get(id);
268
+ if (active !== undefined)
269
+ return active;
270
+ const cancellation = this.#subscriptionKernel.cancel(definition, signal).finally(() => {
271
+ if (this.#cancellations.get(id) === cancellation)
272
+ this.#cancellations.delete(id);
273
+ });
274
+ this.#cancellations.set(id, cancellation);
275
+ return cancellation;
276
+ }
277
+ #clearPendingActivation(subscription) {
278
+ const id = subscription.id?.value;
279
+ if (id === undefined)
280
+ return;
281
+ const pending = this.#pendingActivations.get(id);
282
+ if (pending === undefined)
283
+ return;
284
+ clearTimeout(pending.timer);
285
+ this.#pendingActivations.delete(id);
286
+ }
287
+ async #expirePendingActivation(id, pending) {
288
+ if (this.#pendingActivations.get(id) !== pending)
289
+ return;
290
+ try {
291
+ await this.#cancelDefinition(pending.definition, new AbortController().signal);
292
+ if (this.#pendingActivations.get(id) === pending)
293
+ this.#pendingActivations.delete(id);
294
+ }
295
+ catch {
296
+ if (this.#pendingActivations.get(id) === pending)
297
+ this.#schedulePendingActivation(fromBinary(SubscriptionSchema, pending.definition));
298
+ }
299
+ }
300
+ #reconcile() {
301
+ if (this.#members.onRelaySynchronized !== undefined)
302
+ return this.#subscriptionKernel
303
+ .reconcile(this.#members.relayMembers())
304
+ .then(() => Promise.resolve(this.#members.onRelaySynchronized?.()).then(() => this.#unaryKernel.reconcile(this.#members.readyMembers())));
305
+ return Promise.all([
306
+ this.#unaryKernel.reconcile(this.#members.readyMembers()),
307
+ this.#subscriptionKernel.reconcile(this.#members.relayMembers()),
308
+ ]).then(() => undefined);
309
+ }
310
+ async #closeOnce() {
311
+ this.#stopMembers.forEach((stop) => {
312
+ stop();
313
+ });
314
+ for (const pending of this.#pendingActivations.values())
315
+ clearTimeout(pending.timer);
316
+ this.#pendingActivations.clear();
317
+ await this.#membershipReconciliation;
318
+ const network = NodeCoordinatorValues.closeNetwork(this.#server, this.#sessions);
319
+ await Promise.all([network, this.#unaryKernel.close(), this.#subscriptionKernel.close()]);
320
+ }
321
+ }
322
+ /**
323
+ * Buffers bounded Coordinator subscription updates for one public stream.
324
+ *
325
+ * @internal
326
+ */
327
+ export class SubscriptionUpdateQueue {
328
+ #updates = [];
329
+ #waiters = [];
330
+ #delivered = [];
331
+ #limit;
332
+ #onOverflow;
333
+ #closed = false;
334
+ /**
335
+ * Creates one terminal bounded update queue.
336
+ *
337
+ * @param limit Limits retained updates before terminal closure.
338
+ * @param onOverflow Aborts the public relay when the queue reaches its bound.
339
+ */
340
+ constructor(limit, onOverflow = () => undefined) {
341
+ this.#limit = limit;
342
+ this.#onOverflow = onOverflow;
343
+ }
344
+ /**
345
+ * Queues one update or closes terminally when its bound is reached.
346
+ *
347
+ * @param update Supplies the update to deliver.
348
+ * @returns Completion after direct delivery, queue closure, or consumer delivery.
349
+ */
350
+ push(update) {
351
+ if (this.#closed)
352
+ return Promise.resolve();
353
+ const waiter = this.#waiters.shift();
354
+ if (waiter !== undefined) {
355
+ waiter({ value: update, done: false });
356
+ return Promise.resolve();
357
+ }
358
+ if (this.#updates.length >= this.#limit) {
359
+ this.#onOverflow();
360
+ this.close();
361
+ return Promise.resolve();
362
+ }
363
+ this.#updates.push(update);
364
+ return new Promise((resolve) => this.#delivered.push(resolve));
365
+ }
366
+ /**
367
+ * Closes the queue and releases all waiting producers and consumers.
368
+ */
369
+ close() {
370
+ if (this.#closed)
371
+ return;
372
+ this.#closed = true;
373
+ this.#updates.length = 0;
374
+ for (const waiter of this.#waiters.splice(0))
375
+ waiter({ value: undefined, done: true });
376
+ for (const delivered of this.#delivered.splice(0))
377
+ delivered();
378
+ }
379
+ /**
380
+ * Returns queued updates until the terminal close.
381
+ *
382
+ * @returns The asynchronous update iterator.
383
+ */
384
+ [Symbol.asyncIterator]() {
385
+ return {
386
+ next: () => {
387
+ const update = this.#updates.shift();
388
+ if (update !== undefined) {
389
+ this.#delivered.shift()?.();
390
+ return Promise.resolve({ value: update, done: false });
391
+ }
392
+ if (this.#closed)
393
+ return Promise.resolve({ value: undefined, done: true });
394
+ return new Promise((resolve) => this.#waiters.push(resolve));
395
+ },
396
+ };
397
+ }
398
+ }
399
+ const NodeCoordinatorValues = Object.freeze({
400
+ unaryKernelOptions(members) {
401
+ // The Coordinator deliberately uses only the kernel's member lifecycle and
402
+ // one-shot forwarding operations. Subscription fan-out is owned by T-0208.
403
+ return {
404
+ create: (member) => Promise.resolve(NodeCoordinatorValues.client(member, members)),
405
+ memberKey: (member) => `${member.slot.toString()}/${member.incarnation}`,
406
+ sameMember: (left, right) => left.endpoint === right.endpoint,
407
+ definitionKey: (definition) => fromBinary(SubscriptionSchema, definition).id?.value,
408
+ childDefinition: (definition, member) => {
409
+ const subscription = clone(SubscriptionSchema, fromBinary(SubscriptionSchema, definition));
410
+ const id = NodeCoordinatorValues.requiredValue(subscription.id, "Coordinator subscription definition is missing an ID.");
411
+ id.value = `${id.value}/${member.slot.toString()}-${member.incarnation}`;
412
+ return toBinary(SubscriptionSchema, subscription);
413
+ },
414
+ childSize: (child) => child.byteLength,
415
+ };
416
+ },
417
+ client(member, members) {
418
+ const manager = new Http2SessionManager(member.endpoint);
419
+ const transport = createGrpcTransport({ baseUrl: member.endpoint, sessionManager: manager });
420
+ return {
421
+ forward: async (request) => {
422
+ if (request.kind === "command") {
423
+ const response = await transport.unary(CommandService.method.post, request.context.signal, request.context.timeoutMs(), NodeCoordinatorValues.applicationHeaders(request.context.requestHeader), request.command);
424
+ NodeCoordinatorValues.responseMetadata(response.header, response.trailer, request.context);
425
+ request.response = response.message;
426
+ }
427
+ else {
428
+ const response = await transport.unary(QueryService.method.read, request.context.signal, request.context.timeoutMs(), NodeCoordinatorValues.applicationHeaders(request.context.requestHeader), request.query);
429
+ NodeCoordinatorValues.responseMetadata(response.header, response.trailer, request.context);
430
+ request.response = response.message;
431
+ }
432
+ return new Uint8Array();
433
+ },
434
+ close: () => {
435
+ manager.abort();
436
+ return Promise.resolve();
437
+ },
438
+ subscribe: async (definition, signal) => {
439
+ const subscription = fromBinary(SubscriptionSchema, definition);
440
+ const created = await createClient(SubscriptionService, transport).subscribe(NodeCoordinatorValues.requiredValue(subscription.topic, "Coordinator subscription definition is missing a Topic."), { signal });
441
+ return toBinary(SubscriptionSchema, created);
442
+ },
443
+ activate: async (child, updates, signal) => {
444
+ const subscription = fromBinary(SubscriptionSchema, child);
445
+ members?.onChildSubscriptionActivated?.(member, subscription);
446
+ for await (const update of createClient(SubscriptionService, transport).activate(subscription, { signal }))
447
+ await updates(toBinary(SubscriptionUpdateSchema, update));
448
+ },
449
+ dispose: async (child, signal) => {
450
+ const subscription = fromBinary(SubscriptionSchema, child);
451
+ members?.onChildSubscriptionCancelled?.(member, subscription);
452
+ await createClient(SubscriptionService, transport).cancel(subscription, { signal });
453
+ },
454
+ };
455
+ },
456
+ responseMetadata(headers, trailers, context) {
457
+ for (const [name, value] of NodeCoordinatorValues.applicationHeaders(headers))
458
+ context.responseHeader.append(name, value);
459
+ for (const [name, value] of NodeCoordinatorValues.applicationHeaders(trailers))
460
+ context.responseTrailer.append(name, value);
461
+ },
462
+ applicationHeaders(headers) {
463
+ const forwarded = new Headers(headers);
464
+ for (const name of [...forwarded.keys()]) {
465
+ if (name === "content-type" ||
466
+ name === "te" ||
467
+ name === "user-agent" ||
468
+ name.startsWith("grpc-") ||
469
+ name.startsWith("connect-"))
470
+ forwarded.delete(name);
471
+ }
472
+ return forwarded;
473
+ },
474
+ requiredValue(value, message) {
475
+ if (value === undefined)
476
+ throw new Error(message);
477
+ return value;
478
+ },
479
+ error(error) {
480
+ return error instanceof Error
481
+ ? error
482
+ : new Error("Coordinator subscription operation failed.", { cause: error });
483
+ },
484
+ host(value) {
485
+ const normalized = value.trim();
486
+ if (normalized.length === 0)
487
+ throw new Error("Server host must not be blank.");
488
+ return normalized;
489
+ },
490
+ formatHostForUrl(host) {
491
+ return host.includes(":") && !host.startsWith("[") ? `[${host}]` : host;
492
+ },
493
+ port(value) {
494
+ if (!Number.isSafeInteger(value) || value < 0 || value > 65_535)
495
+ throw new Error("Managed server port must be a safe integer between 0 and 65535.");
496
+ return value;
497
+ },
498
+ messageLimit(value) {
499
+ if (!Number.isSafeInteger(value) || value < 1 || value > 0xffff_ffff)
500
+ throw new Error("Managed server message limit must be a safe integer between 1 and 4294967295.");
501
+ return value;
502
+ },
503
+ listen(server, host, port) {
504
+ return new Promise((resolve, reject) => {
505
+ const onError = (error) => {
506
+ server.off("listening", onListening);
507
+ reject(error);
508
+ };
509
+ const onListening = () => {
510
+ server.off("error", onError);
511
+ resolve(server.address());
512
+ };
513
+ server.once("error", onError);
514
+ server.once("listening", onListening);
515
+ server.listen(port, host);
516
+ });
517
+ },
518
+ closeServer(server) {
519
+ return new Promise((resolve, reject) => {
520
+ if (!server.listening) {
521
+ resolve();
522
+ return;
523
+ }
524
+ server.close((error) => {
525
+ if (error === undefined)
526
+ resolve();
527
+ else
528
+ reject(error);
529
+ });
530
+ });
531
+ },
532
+ async closeNetwork(server, sessions) {
533
+ const closed = NodeCoordinatorValues.closeServer(server);
534
+ await Promise.all([...sessions].map((session) => NodeCoordinatorValues.closeSession(session)));
535
+ await closed;
536
+ },
537
+ closeSession(session) {
538
+ return new Promise((resolve) => {
539
+ const timer = setTimeout(() => {
540
+ session.destroy();
541
+ resolve();
542
+ }, gracefulSessionDrainMs);
543
+ timer.unref();
544
+ session.once("close", () => {
545
+ clearTimeout(timer);
546
+ resolve();
547
+ });
548
+ session.close();
549
+ });
550
+ },
551
+ });
552
+ //# sourceMappingURL=node-coordinator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-coordinator.js","sourceRoot":"","sources":["../../src/server/node-coordinator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { RunningServer } from "./server.js";
2
+ import type { ServerEnvironment } from "./server-environment.js";
3
+ import type { ILogLayer } from "loglayer";
4
+ /**
5
+ * Coordinates process-owned server shutdown without exposing lifecycle seams.
6
+ *
7
+ * @internal
8
+ */
9
+ export declare const ProcessServerCoordinator: Readonly<{
10
+ add(server: RunningServer, environment: ServerEnvironment | undefined, logger: ILogLayer | undefined, onRetired: () => void): RunningServer;
11
+ installSignals(): void;
12
+ onSignal(): void;
13
+ closeRunning(): Promise<void>;
14
+ }>;
15
+ //# sourceMappingURL=process-server-coordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-server-coordinator.d.ts","sourceRoot":"","sources":["../../src/server/process-server-coordinator.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAe1C;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC;IAC9C,GAAG,CACD,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,iBAAiB,GAAG,SAAS,EAC1C,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,IAAI,GACpB,aAAa,CAAC;IACjB,cAAc,IAAI,IAAI,CAAC;IACvB,QAAQ,IAAI,IAAI,CAAC;IACjB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B,CAsCC,CAAC"}