@zlink-systems/framework 0.21.0 → 0.22.0

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 (487) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/ZLinkMessage.js +5 -5
  3. package/dist/contracts/Configuration/CodecContentType.js +5 -7
  4. package/dist/contracts/Configuration/DiagnosticsValidation.js +1 -6
  5. package/dist/contracts/Configuration/EndpointNotation.js +4 -8
  6. package/dist/contracts/Configuration/Registration.js +14 -11
  7. package/dist/contracts/Configuration/RegistrationBuilders.js +32 -25
  8. package/dist/contracts/Configuration/RegistrationNormalizers.js +25 -26
  9. package/dist/contracts/Configuration/RegistrationValidators.js +36 -38
  10. package/dist/contracts/Configuration/SendTimeoutValidation.js +4 -4
  11. package/dist/contracts/Configuration/TimerRegistrationValidator.js +7 -7
  12. package/dist/contracts/Handlers/JsonContract.js +23 -11
  13. package/dist/contracts/Spots/SpotKind.js +16 -8
  14. package/dist/location-store-integration.js +16 -16
  15. package/dist/nest-integration.js +17 -11
  16. package/dist/runtime/abort.js +9 -5
  17. package/dist/runtime/actors/actor-authority-payload-codec.js +12 -16
  18. package/dist/runtime/actors/actor-authority-publication.js +18 -17
  19. package/dist/runtime/actors/actor-client.js +83 -63
  20. package/dist/runtime/actors/actor-context.js +24 -18
  21. package/dist/runtime/actors/actor-creation.js +4 -3
  22. package/dist/runtime/actors/actor-handoff.js +89 -92
  23. package/dist/runtime/actors/actor-local-native-join.js +18 -19
  24. package/dist/runtime/actors/actor-mailbox.js +1 -1
  25. package/dist/runtime/actors/actor-message-follow-context.js +24 -21
  26. package/dist/runtime/actors/actor-packet-relay-wire.js +1 -3
  27. package/dist/runtime/actors/actor-remote-joiner.js +20 -17
  28. package/dist/runtime/actors/actor-remote-wire.js +6 -7
  29. package/dist/runtime/actors/actor-runtime-state.js +87 -81
  30. package/dist/runtime/actors/actor-transfer-registry.js +3 -5
  31. package/dist/runtime/actors/bound-session-wire.js +14 -9
  32. package/dist/runtime/actors/deferred-join-accepted-journal.js +158 -124
  33. package/dist/runtime/actors/index.js +2 -5
  34. package/dist/runtime/actors/post-commit-actor-binder.js +3 -6
  35. package/dist/runtime/actors/post-commit-actor-location.js +1 -1
  36. package/dist/runtime/actors/spot-actor-dispatch.js +5 -5
  37. package/dist/runtime/actors/transferred-actor-rollback.js +4 -4
  38. package/dist/runtime/admission.js +2 -6
  39. package/dist/runtime/application-jobs/application-ingress-record-owner.js +2 -6
  40. package/dist/runtime/application-jobs/receive-flow-controller.js +11 -12
  41. package/dist/runtime/backend/mesh-completion-table.js +1 -3
  42. package/dist/runtime/backend/mesh-dispatch-pump.js +12 -16
  43. package/dist/runtime/backend/node/node-backend-adapter-factory.js +1 -3
  44. package/dist/runtime/backend/node/node-backend-adapter-support.js +26 -17
  45. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +4 -3
  46. package/dist/runtime/backend/node/node-raw-binding-port.js +7 -6
  47. package/dist/runtime/backend/node/node-raw-mesh-backend.js +116 -113
  48. package/dist/runtime/backend/node/node-socket-backend-adapter.js +12 -13
  49. package/dist/runtime/backend/runtime-message.js +3 -3
  50. package/dist/runtime/backend/runtime-values.d.ts +2 -2
  51. package/dist/runtime/backend/runtime-values.js +4 -5
  52. package/dist/runtime/channels/channel-clients.js +27 -24
  53. package/dist/runtime/channels/channel-dispatch-pipeline.js +10 -18
  54. package/dist/runtime/channels/channel-dispatch-services.js +7 -4
  55. package/dist/runtime/channels/channel-dispatchers.js +9 -9
  56. package/dist/runtime/channels/channel-envelope-inspection.js +16 -13
  57. package/dist/runtime/channels/channel-envelope.js +83 -47
  58. package/dist/runtime/channels/channel-outbound-operations.js +8 -8
  59. package/dist/runtime/channels/channel-receive-loops.js +20 -22
  60. package/dist/runtime/channels/channel-receive-task-tracker.js +1 -1
  61. package/dist/runtime/channels/channel-runtime-lifecycle.js +61 -56
  62. package/dist/runtime/channels/channel-runtime-manager.js +18 -9
  63. package/dist/runtime/channels/channel-socket-registry.js +126 -123
  64. package/dist/runtime/channels/channel-transports.js +43 -33
  65. package/dist/runtime/channels/client-server-location-runtime.js +32 -40
  66. package/dist/runtime/channels/client-server-service-wire.js +29 -22
  67. package/dist/runtime/channels/dispatch-error-reporter.js +9 -7
  68. package/dist/runtime/channels/fanout-location-runtime.js +34 -47
  69. package/dist/runtime/channels/fanout-service-wire.js +3 -5
  70. package/dist/runtime/channels/local-spot-route-transport.js +7 -1
  71. package/dist/runtime/channels/route-member-snapshot.js +3 -3
  72. package/dist/runtime/channels/source-spot-router.js +6 -2
  73. package/dist/runtime/channels/spot-route-bridge-transport.js +5 -2
  74. package/dist/runtime/channels/spot-route-dispatch-strategy.js +2 -2
  75. package/dist/runtime/channels/spot-route-target-resolver.js +6 -6
  76. package/dist/runtime/diagnostics/index.js +38 -10
  77. package/dist/runtime/diagnostics/message-flow.js +47 -39
  78. package/dist/runtime/diagnostics/runtime-metrics.js +18 -9
  79. package/dist/runtime/diagnostics/runtime-observation-queue.js +8 -10
  80. package/dist/runtime/diagnostics/topology-runtime-projections.js +17 -10
  81. package/dist/runtime/execution/index.js +7 -6
  82. package/dist/runtime/execution/serial-execution-queue.js +12 -18
  83. package/dist/runtime/execution/state-lane.js +2 -2
  84. package/dist/runtime/foundation/actor-join-recovery-codec.js +31 -23
  85. package/dist/runtime/foundation/event-loop-resources.js +4 -4
  86. package/dist/runtime/foundation/message-follow-suppression-registry.js +4 -4
  87. package/dist/runtime/foundation/raw-service-mesh-runtime.js +136 -136
  88. package/dist/runtime/foundation/route-mesh-connection-policy.js +4 -4
  89. package/dist/runtime/foundation/runtime-state-projections.js +22 -11
  90. package/dist/runtime/foundation/service-authority-payload-codec.js +13 -15
  91. package/dist/runtime/foundation/service-discovery-registry.js +35 -33
  92. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +20 -22
  93. package/dist/runtime/foundation/service-liveness-registry.js +16 -12
  94. package/dist/runtime/foundation/service-maintenance-runtime.js +2 -4
  95. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +24 -24
  96. package/dist/runtime/foundation/service-relocation-object-owner.js +6 -6
  97. package/dist/runtime/foundation/service-relocation-runtime.js +137 -94
  98. package/dist/runtime/foundation/service-runtime-contracts.js +5 -5
  99. package/dist/runtime/foundation/service-stateful-registry.js +24 -23
  100. package/dist/runtime/foundation/service-stateful-runtime.js +416 -438
  101. package/dist/runtime/foundation/service-stateful-wire-codec.js +95 -98
  102. package/dist/runtime/foundation/service-topology-registry.js +96 -95
  103. package/dist/runtime/foundation/service-weighted-selection.js +6 -11
  104. package/dist/runtime/foundation/service-wire-binary-primitives.js +5 -6
  105. package/dist/runtime/foundation/service-wire-m6a-codec.js +46 -35
  106. package/dist/runtime/framework-errors-internal.js +7 -10
  107. package/dist/runtime/handlers/handler-instance-scope.js +4 -5
  108. package/dist/runtime/handlers/index.js +3 -1
  109. package/dist/runtime/host/actor-packet-relay.js +74 -70
  110. package/dist/runtime/host/actor-placement-coordinator.js +29 -31
  111. package/dist/runtime/host/actor-runtime-options-factory.js +12 -14
  112. package/dist/runtime/host/actor-transfer-authority-runtime.js +7 -9
  113. package/dist/runtime/host/actor-transfer-runtime.js +176 -153
  114. package/dist/runtime/host/application-job-queue.js +18 -22
  115. package/dist/runtime/host/bound-session-relay.js +3 -1
  116. package/dist/runtime/host/channel-runtime-options-factory.js +31 -14
  117. package/dist/runtime/host/host-capacity-status.js +8 -4
  118. package/dist/runtime/host/index.js +244 -227
  119. package/dist/runtime/host/instance-activation-authority.js +93 -96
  120. package/dist/runtime/host/location-runtime-owner.js +16 -14
  121. package/dist/runtime/host/mesh-router-resolver.js +11 -13
  122. package/dist/runtime/host/relocation-direct-transfer.js +10 -9
  123. package/dist/runtime/host/remote-actor-join-receiver.js +20 -15
  124. package/dist/runtime/host/remote-actor-packet-target-store.js +18 -22
  125. package/dist/runtime/host/remote-bound-session-relay.js +97 -73
  126. package/dist/runtime/host/route-mesh-runtime.js +64 -69
  127. package/dist/runtime/host/runtime-shutdown.js +1 -2
  128. package/dist/runtime/host/service-relocation-host-runtime.js +586 -511
  129. package/dist/runtime/host/spot-address-transport.js +69 -71
  130. package/dist/runtime/host/spot-runtime-options-factory.js +30 -29
  131. package/dist/runtime/host/stateful-authority-route-runtime.js +65 -68
  132. package/dist/runtime/host/user-spot-creation-coordinator.js +61 -67
  133. package/dist/runtime/locations/actor-location-claims.js +26 -20
  134. package/dist/runtime/locations/aggregate-inventory-store.js +72 -75
  135. package/dist/runtime/locations/authority-key-codec.js +7 -7
  136. package/dist/runtime/locations/auto-connect-loop.js +3 -3
  137. package/dist/runtime/locations/auto-connect-planner.js +25 -19
  138. package/dist/runtime/locations/auto-connect-reconciler.js +51 -31
  139. package/dist/runtime/locations/in-memory-authority-store.js +128 -118
  140. package/dist/runtime/locations/in-memory-location-store.js +195 -168
  141. package/dist/runtime/locations/in-memory-provider-location-store.js +8 -10
  142. package/dist/runtime/locations/key-codec.js +1 -1
  143. package/dist/runtime/locations/lease-tracker.js +23 -21
  144. package/dist/runtime/locations/lifecycle.js +4 -5
  145. package/dist/runtime/locations/location-store-repository.js +368 -324
  146. package/dist/runtime/locations/opaque-record-key.js +2 -2
  147. package/dist/runtime/locations/resolvers.js +73 -82
  148. package/dist/runtime/locations/runtime.js +68 -63
  149. package/dist/runtime/locations/spot-location-claims.js +39 -35
  150. package/dist/runtime/messaging/framework-json-v1.js +7 -7
  151. package/dist/runtime/messaging/packet-name.js +7 -6
  152. package/dist/runtime/messaging/payload-codec.js +21 -18
  153. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +30 -2
  154. package/dist/runtime/protocol/service_wire_codec.generated.js +1671 -234
  155. package/dist/runtime/routing-id.js +3 -5
  156. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +35 -31
  157. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +1 -2
  158. package/dist/runtime/spots/index.js +208 -219
  159. package/dist/runtime/spots/spot-activation-registry.js +15 -14
  160. package/dist/runtime/spots/spot-activation-state.js +17 -15
  161. package/dist/runtime/spots/spot-activation.js +33 -16
  162. package/dist/runtime/spots/spot-actor-admission-coordinator.js +18 -15
  163. package/dist/runtime/spots/spot-actor-membership.js +1 -3
  164. package/dist/runtime/spots/spot-actor-packet-dispatch.js +23 -20
  165. package/dist/runtime/spots/spot-actor-packet-drain.js +12 -10
  166. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +10 -6
  167. package/dist/runtime/spots/spot-closing.js +3 -7
  168. package/dist/runtime/spots/spot-context.js +2 -2
  169. package/dist/runtime/spots/spot-entry-activation.js +13 -14
  170. package/dist/runtime/spots/spot-handle.js +6 -3
  171. package/dist/runtime/spots/spot-handler-registry.js +12 -12
  172. package/dist/runtime/spots/spot-manager-public.js +5 -6
  173. package/dist/runtime/spots/spot-native-actor-join-admission.js +4 -3
  174. package/dist/runtime/spots/spot-node-autoconnect.js +15 -18
  175. package/dist/runtime/spots/spot-node-runtime-manager.js +74 -85
  176. package/dist/runtime/spots/spot-outbound.js +10 -14
  177. package/dist/runtime/spots/spot-remote-codec.js +22 -26
  178. package/dist/runtime/spots/spot-remote-route-codec.js +5 -7
  179. package/dist/runtime/spots/spot-route-packet-dispatch.js +16 -14
  180. package/dist/runtime/spots/spot-route-replies.js +4 -6
  181. package/dist/runtime/spots/spot-routed-actor-admission.js +9 -7
  182. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +1 -2
  183. package/dist/runtime/spots/spot-routed-frame-dispatch.js +5 -5
  184. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +14 -10
  185. package/dist/runtime/spots/spot-serial-executor.js +5 -8
  186. package/dist/runtime/spots/spot-serial-turn-executor.js +4 -6
  187. package/dist/runtime/spots/spot-subscription-dispatch.js +5 -5
  188. package/dist/runtime/spots/spot-timer.js +25 -29
  189. package/dist/runtime/streams/actor-session-binding-registry.js +98 -107
  190. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +3 -1
  191. package/dist/runtime/streams/bound-actor-relay-sender.js +18 -16
  192. package/dist/runtime/streams/bound-session-service.js +8 -9
  193. package/dist/runtime/streams/index.js +20 -19
  194. package/dist/runtime/streams/managed-stream.js +32 -30
  195. package/dist/runtime/streams/native-fallback-bound-session.js +21 -17
  196. package/dist/runtime/streams/protocol.js +29 -18
  197. package/dist/runtime/streams/session-actor-coordinator.js +34 -37
  198. package/dist/runtime/streams/session-context.js +30 -28
  199. package/dist/runtime/streams/session-provider.js +2 -2
  200. package/dist/runtime/streams/session-serial-executor.js +1 -2
  201. package/dist/runtime/streams/stream-frame-factory.js +11 -5
  202. package/dist/runtime/streams/stream-session-runtime.js +70 -66
  203. package/dist/runtime/workers/index.js +15 -4
  204. package/package.json +2 -2
  205. package/src/contracts/Channels/RouteCalls.ts +6 -1
  206. package/src/contracts/Common/ZLinkMessage.ts +5 -5
  207. package/src/contracts/Common/ZLinkMessageMetadata.ts +4 -3
  208. package/src/contracts/Configuration/Builders.ts +14 -14
  209. package/src/contracts/Configuration/CodecContentType.ts +8 -10
  210. package/src/contracts/Configuration/DiagnosticsValidation.ts +1 -6
  211. package/src/contracts/Configuration/EndpointNotation.ts +11 -11
  212. package/src/contracts/Configuration/ObjectRoles.ts +1 -3
  213. package/src/contracts/Configuration/Registration.ts +46 -17
  214. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +10 -8
  215. package/src/contracts/Configuration/RegistrationBuilders.ts +107 -96
  216. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +9 -3
  217. package/src/contracts/Configuration/RegistrationNormalizers.ts +116 -84
  218. package/src/contracts/Configuration/RegistrationTypes.ts +21 -25
  219. package/src/contracts/Configuration/RegistrationValidators.ts +122 -73
  220. package/src/contracts/Configuration/RouteChannelInternalState.ts +1 -4
  221. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +4 -1
  222. package/src/contracts/Configuration/SendTimeoutValidation.ts +6 -4
  223. package/src/contracts/Configuration/TimerRegistrationValidator.ts +8 -13
  224. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -6
  225. package/src/contracts/Errors/index.ts +1 -4
  226. package/src/contracts/Handlers/Attributes.ts +15 -9
  227. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +24 -4
  228. package/src/contracts/Handlers/JsonContract.ts +53 -19
  229. package/src/contracts/Locations/ActorTransfer.ts +1 -5
  230. package/src/contracts/Locations/Authority.ts +4 -11
  231. package/src/contracts/Locations/Keys.ts +6 -1
  232. package/src/contracts/Locations/Options.ts +3 -2
  233. package/src/contracts/Locations/RelocationStore.ts +1 -4
  234. package/src/contracts/Locations/Resolvers.ts +5 -5
  235. package/src/contracts/Locations/RuntimeQuery.ts +6 -2
  236. package/src/contracts/Locations/Stores.ts +1 -2
  237. package/src/contracts/Locations/index.ts +2 -8
  238. package/src/contracts/RouteMesh/Contracts.ts +1 -7
  239. package/src/contracts/RouteMesh/RuntimeTopology.ts +1 -4
  240. package/src/contracts/Spots/Contracts.ts +2 -8
  241. package/src/contracts/Spots/SpotKind.ts +16 -8
  242. package/src/contracts/Spots/ZLinkSpot.ts +8 -11
  243. package/src/contracts/Streams/IZLinkSession.ts +0 -1
  244. package/src/contracts/Streams/IZLinkSessionActor.ts +5 -1
  245. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +5 -1
  246. package/src/internal.ts +5 -4
  247. package/src/location-store-integration.ts +24 -16
  248. package/src/nest-integration.ts +40 -25
  249. package/src/runtime/abort.ts +10 -4
  250. package/src/runtime/actors/actor-authority-payload-codec.ts +20 -29
  251. package/src/runtime/actors/actor-authority-publication.ts +92 -77
  252. package/src/runtime/actors/actor-client.ts +162 -133
  253. package/src/runtime/actors/actor-context.ts +138 -130
  254. package/src/runtime/actors/actor-creation.ts +47 -44
  255. package/src/runtime/actors/actor-execution-context.ts +6 -4
  256. package/src/runtime/actors/actor-handoff.ts +269 -293
  257. package/src/runtime/actors/actor-join-deferred-scope.ts +5 -4
  258. package/src/runtime/actors/actor-lifecycle-snapshot.ts +5 -8
  259. package/src/runtime/actors/actor-local-native-join.ts +131 -159
  260. package/src/runtime/actors/actor-mailbox.ts +16 -19
  261. package/src/runtime/actors/actor-message-follow-context.ts +46 -36
  262. package/src/runtime/actors/actor-packet-relay-wire.ts +32 -21
  263. package/src/runtime/actors/actor-remote-joiner.ts +50 -54
  264. package/src/runtime/actors/actor-remote-wire.ts +9 -13
  265. package/src/runtime/actors/actor-routed-join-transport.ts +10 -2
  266. package/src/runtime/actors/actor-runtime-contracts.ts +2 -5
  267. package/src/runtime/actors/actor-runtime-state.ts +127 -124
  268. package/src/runtime/actors/actor-transfer-registry.ts +9 -14
  269. package/src/runtime/actors/actor-transport-delivery-gate.ts +4 -6
  270. package/src/runtime/actors/bound-session-wire.ts +37 -17
  271. package/src/runtime/actors/deferred-join-accepted-journal.ts +351 -320
  272. package/src/runtime/actors/index.ts +43 -86
  273. package/src/runtime/actors/post-commit-actor-binder.ts +10 -10
  274. package/src/runtime/actors/post-commit-actor-location.ts +30 -23
  275. package/src/runtime/actors/spot-actor-dispatch.ts +78 -53
  276. package/src/runtime/actors/transferred-actor-rollback.ts +18 -13
  277. package/src/runtime/admission.ts +9 -9
  278. package/src/runtime/application-jobs/application-ingress-record-owner.ts +5 -15
  279. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +3 -2
  280. package/src/runtime/application-jobs/receive-flow-controller.ts +17 -14
  281. package/src/runtime/backend/contracts/index.ts +73 -52
  282. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -14
  283. package/src/runtime/backend/mesh-completion-table.ts +6 -9
  284. package/src/runtime/backend/mesh-dispatch-pump.ts +38 -30
  285. package/src/runtime/backend/node/node-backend-adapter-factory.ts +23 -21
  286. package/src/runtime/backend/node/node-backend-adapter-support.ts +36 -22
  287. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +59 -58
  288. package/src/runtime/backend/node/node-event-loop-poller.ts +2 -10
  289. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +12 -5
  290. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +4 -3
  291. package/src/runtime/backend/node/node-raw-binding-port.ts +29 -29
  292. package/src/runtime/backend/node/node-raw-mesh-backend.ts +335 -383
  293. package/src/runtime/backend/node/node-socket-backend-adapter.ts +101 -54
  294. package/src/runtime/backend/runtime-message.ts +5 -3
  295. package/src/runtime/backend/runtime-values.ts +10 -7
  296. package/src/runtime/channels/channel-autoconnect.ts +1 -4
  297. package/src/runtime/channels/channel-clients.ts +93 -73
  298. package/src/runtime/channels/channel-dispatch-pipeline.ts +40 -42
  299. package/src/runtime/channels/channel-dispatch-services.ts +51 -49
  300. package/src/runtime/channels/channel-dispatchers.ts +152 -96
  301. package/src/runtime/channels/channel-envelope-inspection.ts +20 -16
  302. package/src/runtime/channels/channel-envelope.ts +256 -150
  303. package/src/runtime/channels/channel-multipart.ts +13 -5
  304. package/src/runtime/channels/channel-outbound-operations.ts +37 -41
  305. package/src/runtime/channels/channel-receive-loops.ts +102 -98
  306. package/src/runtime/channels/channel-receive-task-tracker.ts +1 -1
  307. package/src/runtime/channels/channel-runtime-lifecycle.ts +248 -190
  308. package/src/runtime/channels/channel-runtime-manager.ts +63 -37
  309. package/src/runtime/channels/channel-socket-options.ts +3 -10
  310. package/src/runtime/channels/channel-socket-registry.ts +331 -273
  311. package/src/runtime/channels/channel-transports.ts +215 -197
  312. package/src/runtime/channels/client-server-location-runtime.ts +116 -100
  313. package/src/runtime/channels/client-server-service-wire.ts +37 -36
  314. package/src/runtime/channels/dispatch-error-reporter.ts +11 -8
  315. package/src/runtime/channels/fanout-location-runtime.ts +91 -94
  316. package/src/runtime/channels/fanout-service-wire.ts +5 -12
  317. package/src/runtime/channels/handler-filter-scope.ts +1 -4
  318. package/src/runtime/channels/index.ts +1 -4
  319. package/src/runtime/channels/local-spot-route-transport.ts +20 -5
  320. package/src/runtime/channels/route-member-snapshot.ts +11 -5
  321. package/src/runtime/channels/router-socket-spot-route-transport.ts +1 -7
  322. package/src/runtime/channels/source-spot-router.ts +26 -22
  323. package/src/runtime/channels/spot-direct-envelope.ts +10 -8
  324. package/src/runtime/channels/spot-node-route-transport.ts +13 -16
  325. package/src/runtime/channels/spot-route-bridge-transport.ts +26 -9
  326. package/src/runtime/channels/spot-route-dispatch-strategy.ts +40 -13
  327. package/src/runtime/channels/spot-route-target-resolver.ts +18 -9
  328. package/src/runtime/codecs/index.ts +3 -2
  329. package/src/runtime/diagnostics/flow-context.ts +12 -3
  330. package/src/runtime/diagnostics/index.ts +96 -61
  331. package/src/runtime/diagnostics/internal-event-contracts.ts +87 -33
  332. package/src/runtime/diagnostics/message-flow.ts +95 -76
  333. package/src/runtime/diagnostics/runtime-metrics.ts +46 -24
  334. package/src/runtime/diagnostics/runtime-observation-queue.ts +17 -28
  335. package/src/runtime/diagnostics/topology-runtime-projections.ts +62 -43
  336. package/src/runtime/execution/index.ts +18 -26
  337. package/src/runtime/execution/serial-execution-queue.ts +31 -40
  338. package/src/runtime/execution/state-lane.ts +2 -2
  339. package/src/runtime/foundation/actor-join-recovery-codec.ts +69 -51
  340. package/src/runtime/foundation/event-loop-resources.ts +8 -4
  341. package/src/runtime/foundation/message-follow-suppression-registry.ts +7 -14
  342. package/src/runtime/foundation/operation-identity.ts +1 -2
  343. package/src/runtime/foundation/operation-registry.ts +8 -2
  344. package/src/runtime/foundation/raw-service-mesh-runtime.ts +312 -385
  345. package/src/runtime/foundation/route-mesh-connection-policy.ts +7 -8
  346. package/src/runtime/foundation/runtime-state-projections.ts +24 -23
  347. package/src/runtime/foundation/service-authority-payload-codec.ts +54 -57
  348. package/src/runtime/foundation/service-discovery-registry.ts +67 -59
  349. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +28 -29
  350. package/src/runtime/foundation/service-liveness-registry.ts +18 -13
  351. package/src/runtime/foundation/service-mailbox.ts +14 -14
  352. package/src/runtime/foundation/service-maintenance-runtime.ts +22 -21
  353. package/src/runtime/foundation/service-metadata-codec.ts +2 -9
  354. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +39 -36
  355. package/src/runtime/foundation/service-relocation-coordinator.ts +1 -4
  356. package/src/runtime/foundation/service-relocation-object-owner.ts +40 -58
  357. package/src/runtime/foundation/service-relocation-runtime.ts +292 -216
  358. package/src/runtime/foundation/service-runtime-contracts.ts +8 -8
  359. package/src/runtime/foundation/service-session-binding-ingress-port.ts +1 -4
  360. package/src/runtime/foundation/service-stateful-registry.ts +69 -59
  361. package/src/runtime/foundation/service-stateful-runtime.ts +1174 -1112
  362. package/src/runtime/foundation/service-stateful-wire-codec.ts +318 -270
  363. package/src/runtime/foundation/service-topology-registry.ts +157 -159
  364. package/src/runtime/foundation/service-weighted-selection.ts +9 -15
  365. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -12
  366. package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -47
  367. package/src/runtime/framework-errors-internal.ts +31 -30
  368. package/src/runtime/handlers/handler-instance-scope.ts +18 -29
  369. package/src/runtime/handlers/index.ts +18 -8
  370. package/src/runtime/host/actor-packet-relay.ts +290 -261
  371. package/src/runtime/host/actor-placement-coordinator.ts +165 -150
  372. package/src/runtime/host/actor-runtime-options-factory.ts +89 -87
  373. package/src/runtime/host/actor-transfer-authority-runtime.ts +46 -38
  374. package/src/runtime/host/actor-transfer-runtime.ts +391 -395
  375. package/src/runtime/host/application-job-queue.ts +32 -48
  376. package/src/runtime/host/bound-session-relay.ts +7 -9
  377. package/src/runtime/host/channel-runtime-options-factory.ts +75 -35
  378. package/src/runtime/host/host-capacity-status.ts +10 -9
  379. package/src/runtime/host/index.ts +861 -789
  380. package/src/runtime/host/instance-activation-authority.ts +125 -143
  381. package/src/runtime/host/location-runtime-owner.ts +38 -26
  382. package/src/runtime/host/mesh-router-resolver.ts +30 -23
  383. package/src/runtime/host/relocation-direct-transfer.ts +15 -15
  384. package/src/runtime/host/relocation-integrity-fault-gate.ts +3 -2
  385. package/src/runtime/host/remote-actor-join-receiver.ts +43 -34
  386. package/src/runtime/host/remote-actor-packet-target-store.ts +54 -52
  387. package/src/runtime/host/remote-bound-session-relay.ts +274 -247
  388. package/src/runtime/host/route-mesh-runtime-options.ts +1 -3
  389. package/src/runtime/host/route-mesh-runtime.ts +227 -181
  390. package/src/runtime/host/runtime-shutdown.ts +4 -3
  391. package/src/runtime/host/service-relocation-control.ts +14 -5
  392. package/src/runtime/host/service-relocation-host-runtime.ts +1388 -1165
  393. package/src/runtime/host/spot-address-transport.ts +284 -237
  394. package/src/runtime/host/spot-node-runtime-options-factory.ts +14 -8
  395. package/src/runtime/host/spot-runtime-options-factory.ts +71 -62
  396. package/src/runtime/host/stateful-authority-route-runtime.ts +117 -116
  397. package/src/runtime/host/user-spot-creation-coordinator.ts +225 -220
  398. package/src/runtime/locations/actor-location-claims.ts +61 -49
  399. package/src/runtime/locations/actor-session-route-claims.ts +1 -4
  400. package/src/runtime/locations/aggregate-inventory-store.ts +105 -134
  401. package/src/runtime/locations/authority-key-codec.ts +13 -10
  402. package/src/runtime/locations/auto-connect-loop.ts +14 -11
  403. package/src/runtime/locations/auto-connect-planner.ts +42 -31
  404. package/src/runtime/locations/auto-connect-reconciler.ts +106 -63
  405. package/src/runtime/locations/canonical-codec.ts +3 -1
  406. package/src/runtime/locations/creation-operation-id.ts +4 -3
  407. package/src/runtime/locations/domain-store-contract.ts +13 -7
  408. package/src/runtime/locations/in-memory-authority-store.ts +232 -199
  409. package/src/runtime/locations/in-memory-location-store.ts +432 -250
  410. package/src/runtime/locations/in-memory-provider-location-store.ts +16 -17
  411. package/src/runtime/locations/internal-store-contracts.ts +95 -38
  412. package/src/runtime/locations/key-codec.ts +3 -4
  413. package/src/runtime/locations/lease-tracker.ts +36 -27
  414. package/src/runtime/locations/lifecycle-runtime.ts +15 -3
  415. package/src/runtime/locations/lifecycle.ts +33 -28
  416. package/src/runtime/locations/location-store-repository.ts +1329 -1185
  417. package/src/runtime/locations/opaque-record-key.ts +4 -9
  418. package/src/runtime/locations/resolvers.ts +201 -178
  419. package/src/runtime/locations/runtime.ts +251 -159
  420. package/src/runtime/locations/spot-location-claims.ts +110 -112
  421. package/src/runtime/messaging/creation-payload-codec.ts +4 -1
  422. package/src/runtime/messaging/framework-json-v1.ts +34 -15
  423. package/src/runtime/messaging/packet-name.ts +8 -6
  424. package/src/runtime/messaging/payload-codec.ts +70 -50
  425. package/src/runtime/messaging/submission-result.ts +6 -9
  426. package/src/runtime/protocol/service_wire_codec.generated.ts +1376 -159
  427. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  428. package/src/runtime/routing-id.ts +10 -7
  429. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +56 -62
  430. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +23 -20
  431. package/src/runtime/spots/index.ts +593 -563
  432. package/src/runtime/spots/spot-activation-registry.ts +38 -34
  433. package/src/runtime/spots/spot-activation-state.ts +43 -51
  434. package/src/runtime/spots/spot-activation.ts +179 -116
  435. package/src/runtime/spots/spot-actor-admission-coordinator.ts +110 -78
  436. package/src/runtime/spots/spot-actor-join-dispatch.ts +57 -41
  437. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +5 -7
  438. package/src/runtime/spots/spot-actor-membership.ts +25 -27
  439. package/src/runtime/spots/spot-actor-packet-dispatch.ts +184 -153
  440. package/src/runtime/spots/spot-actor-packet-drain.ts +54 -42
  441. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +37 -39
  442. package/src/runtime/spots/spot-closing.ts +11 -12
  443. package/src/runtime/spots/spot-context.ts +46 -26
  444. package/src/runtime/spots/spot-entry-activation.ts +84 -65
  445. package/src/runtime/spots/spot-handle.ts +17 -15
  446. package/src/runtime/spots/spot-handler-registry.ts +44 -31
  447. package/src/runtime/spots/spot-location-claim.ts +5 -4
  448. package/src/runtime/spots/spot-manager-public.ts +62 -82
  449. package/src/runtime/spots/spot-native-actor-join-admission.ts +20 -16
  450. package/src/runtime/spots/spot-node-autoconnect.ts +54 -61
  451. package/src/runtime/spots/spot-node-runtime-manager.ts +230 -221
  452. package/src/runtime/spots/spot-outbound.ts +47 -59
  453. package/src/runtime/spots/spot-publisher-transport.ts +5 -4
  454. package/src/runtime/spots/spot-remote-codec.ts +66 -65
  455. package/src/runtime/spots/spot-remote-route-codec.ts +61 -41
  456. package/src/runtime/spots/spot-route-packet-dispatch.ts +128 -95
  457. package/src/runtime/spots/spot-route-replies.ts +23 -24
  458. package/src/runtime/spots/spot-route-reply-wire.ts +3 -2
  459. package/src/runtime/spots/spot-routed-actor-admission.ts +37 -27
  460. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +11 -17
  461. package/src/runtime/spots/spot-routed-frame-dispatch.ts +18 -15
  462. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +35 -26
  463. package/src/runtime/spots/spot-routing-internal.ts +1 -4
  464. package/src/runtime/spots/spot-runtime-ports.ts +5 -5
  465. package/src/runtime/spots/spot-serial-executor.ts +5 -9
  466. package/src/runtime/spots/spot-serial-turn-executor.ts +19 -26
  467. package/src/runtime/spots/spot-subscription-dispatch.ts +56 -46
  468. package/src/runtime/spots/spot-timer.ts +98 -91
  469. package/src/runtime/streams/actor-session-binding-registry.ts +277 -235
  470. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +7 -4
  471. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +3 -1
  472. package/src/runtime/streams/bound-actor-relay-sender.ts +53 -51
  473. package/src/runtime/streams/bound-session-response-target.ts +29 -8
  474. package/src/runtime/streams/bound-session-service.ts +39 -39
  475. package/src/runtime/streams/index.ts +176 -100
  476. package/src/runtime/streams/managed-stream.ts +98 -87
  477. package/src/runtime/streams/native-fallback-bound-session.ts +57 -52
  478. package/src/runtime/streams/protocol.ts +73 -43
  479. package/src/runtime/streams/session-actor-coordinator.ts +97 -89
  480. package/src/runtime/streams/session-calls.ts +2 -8
  481. package/src/runtime/streams/session-context.ts +66 -48
  482. package/src/runtime/streams/session-provider.ts +5 -7
  483. package/src/runtime/streams/session-serial-executor.ts +7 -6
  484. package/src/runtime/streams/stream-binding-runtime-ports.ts +79 -29
  485. package/src/runtime/streams/stream-frame-factory.ts +55 -38
  486. package/src/runtime/streams/stream-session-runtime.ts +268 -210
  487. package/src/runtime/workers/index.ts +68 -29
@@ -22,7 +22,7 @@ class ZLinkReceiveRoundRobinCoordinator {
22
22
  return token;
23
23
  }
24
24
  setReady(token, ready) {
25
- const owner = this.owners.find(candidate => candidate.token === token);
25
+ const owner = this.owners.find((candidate) => candidate.token === token);
26
26
  if (owner !== undefined)
27
27
  owner.ready = ready;
28
28
  }
@@ -38,7 +38,7 @@ class ZLinkReceiveRoundRobinCoordinator {
38
38
  release(token) {
39
39
  if (this.active !== token)
40
40
  return;
41
- const index = this.owners.findIndex(owner => owner.token === token);
41
+ const index = this.owners.findIndex((owner) => owner.token === token);
42
42
  this.active = undefined;
43
43
  if (this.owners.length > 0)
44
44
  this.cursor = (index + 1) % this.owners.length;
@@ -47,7 +47,7 @@ class ZLinkReceiveRoundRobinCoordinator {
47
47
  return this.rawReceiveReservations.tryAcquire();
48
48
  }
49
49
  unregister(token) {
50
- const index = this.owners.findIndex(owner => owner.token === token);
50
+ const index = this.owners.findIndex((owner) => owner.token === token);
51
51
  if (index < 0)
52
52
  return;
53
53
  if (this.active === token)
@@ -152,7 +152,7 @@ class ZLinkChannelReceiveLoop {
152
152
  this.roundRobin?.setReady(this.receiveOwner, false);
153
153
  this.roundRobin?.release(this.receiveOwner);
154
154
  batch.reset();
155
- if (!await this.poller.waitForReadable(capacitySignal))
155
+ if (!(await this.poller.waitForReadable(capacitySignal)))
156
156
  break;
157
157
  continue;
158
158
  }
@@ -184,7 +184,7 @@ class ZLinkChannelReceiveLoop {
184
184
  this.roundRobin?.setReady(this.receiveOwner, false);
185
185
  this.roundRobin?.release(this.receiveOwner);
186
186
  batch.reset();
187
- if (!await this.poller.waitForReadable(capacitySignal))
187
+ if (!(await this.poller.waitForReadable(capacitySignal)))
188
188
  break;
189
189
  continue;
190
190
  }
@@ -277,8 +277,8 @@ class ZLinkChannelReceiveLoop {
277
277
  return { kind: 'consumed', closeReceived: true };
278
278
  }
279
279
  const decodedHeader = (0, channel_envelope_inspection_1.tryDecodeChannelHeader)(received.parts, this.dispatcher.flowEnabled?.() ?? true);
280
- if (decodedHeader === undefined
281
- && this.spotRouteBridge?.handleRouterReceived(this.channelName, received.routingId, 0n, received.parts) === true) {
280
+ if (decodedHeader === undefined &&
281
+ this.spotRouteBridge?.handleRouterReceived(this.channelName, received.routingId, 0n, received.parts) === true) {
282
282
  return { kind: 'consumed', closeReceived: false };
283
283
  }
284
284
  return { kind: 'application', decodedHeader };
@@ -342,7 +342,7 @@ class ZLinkSubscriberReceiveLoop {
342
342
  this.roundRobin?.setReady(this.receiveOwner, false);
343
343
  this.roundRobin?.release(this.receiveOwner);
344
344
  batch.reset();
345
- if (!await this.poller.waitForReadable(capacitySignal))
345
+ if (!(await this.poller.waitForReadable(capacitySignal)))
346
346
  break;
347
347
  continue;
348
348
  }
@@ -373,7 +373,7 @@ class ZLinkSubscriberReceiveLoop {
373
373
  this.roundRobin?.setReady(this.receiveOwner, false);
374
374
  this.roundRobin?.release(this.receiveOwner);
375
375
  batch.reset();
376
- if (!await this.poller.waitForReadable(capacitySignal))
376
+ if (!(await this.poller.waitForReadable(capacitySignal)))
377
377
  break;
378
378
  continue;
379
379
  }
@@ -454,11 +454,9 @@ class ZLinkSubscriberReceiveLoop {
454
454
  }
455
455
  classify(topicMessage) {
456
456
  const infrastructureResult = this.infrastructureHandler?.(topicMessage);
457
- const decodedHeader = typeof infrastructureResult === 'object'
458
- ? infrastructureResult.decodedHeader
459
- : undefined;
460
- if (infrastructureResult === true
461
- || (typeof infrastructureResult === 'object' && infrastructureResult.consumed)) {
457
+ const decodedHeader = typeof infrastructureResult === 'object' ? infrastructureResult.decodedHeader : undefined;
458
+ if (infrastructureResult === true ||
459
+ (typeof infrastructureResult === 'object' && infrastructureResult.consumed)) {
462
460
  return { kind: 'consumed' };
463
461
  }
464
462
  return { kind: 'application', decodedHeader };
@@ -518,7 +516,7 @@ class ZLinkRouteReceiveLoop {
518
516
  this.roundRobin?.setReady(this.receiveOwner, false);
519
517
  this.roundRobin?.release(this.receiveOwner);
520
518
  batch.reset();
521
- if (!await this.poller.waitForReadable(capacitySignal))
519
+ if (!(await this.poller.waitForReadable(capacitySignal)))
522
520
  break;
523
521
  continue;
524
522
  }
@@ -542,7 +540,7 @@ class ZLinkRouteReceiveLoop {
542
540
  this.roundRobin?.setReady(this.receiveOwner, false);
543
541
  this.roundRobin?.release(this.receiveOwner);
544
542
  batch.reset();
545
- if (!await this.poller.waitForReadable(capacitySignal))
543
+ if (!(await this.poller.waitForReadable(capacitySignal)))
546
544
  break;
547
545
  continue;
548
546
  }
@@ -566,7 +564,7 @@ class ZLinkRouteReceiveLoop {
566
564
  // Promise. Track that terminal without serializing the single route
567
565
  // receiver; the held reservation bounds pending infrastructure sends.
568
566
  this.inFlight.track(infrastructure
569
- .catch(error => {
567
+ .catch((error) => {
570
568
  received.close();
571
569
  throw error;
572
570
  })
@@ -656,12 +654,12 @@ class ZLinkReceiveBatchBudget {
656
654
  record(bytes) {
657
655
  this.messages += 1;
658
656
  this.bytes += bytes;
659
- return this.messages >= RECEIVE_BATCH_MESSAGE_LIMIT
660
- || this.bytes >= RECEIVE_BATCH_BYTE_LIMIT
661
- || performance.now() - this.startedAt >= RECEIVE_BATCH_TIME_LIMIT_MS;
657
+ return (this.messages >= RECEIVE_BATCH_MESSAGE_LIMIT ||
658
+ this.bytes >= RECEIVE_BATCH_BYTE_LIMIT ||
659
+ performance.now() - this.startedAt >= RECEIVE_BATCH_TIME_LIMIT_MS);
662
660
  }
663
661
  async yieldAndReset() {
664
- await new Promise(resolve => setImmediate(resolve));
662
+ await new Promise((resolve) => setImmediate(resolve));
665
663
  this.reset();
666
664
  }
667
665
  reset() {
@@ -671,7 +669,7 @@ class ZLinkReceiveBatchBudget {
671
669
  }
672
670
  }
673
671
  function waitReceiveLoopTurn() {
674
- return new Promise(resolve => setImmediate(resolve));
672
+ return new Promise((resolve) => setImmediate(resolve));
675
673
  }
676
674
  function messageBytes(parts) {
677
675
  return parts.reduce((sum, part) => sum + messagePartBytes(part), 0);
@@ -15,7 +15,7 @@ class ZLinkReceiveTaskTracker {
15
15
  }
16
16
  track(task, consumeError = true) {
17
17
  this.tasks.add(task);
18
- void task.then(() => this.complete(task), error => {
18
+ void task.then(() => this.complete(task), (error) => {
19
19
  this.complete(task);
20
20
  if (consumeError) {
21
21
  try {
@@ -37,9 +37,9 @@ class ZLinkChannelRuntimeLifecycle {
37
37
  }
38
38
  beginLocationAutoConnectCore() {
39
39
  const location = this.locationAutoConnect;
40
- if (location === undefined
41
- || this.clientServerLocation !== undefined
42
- || this.fanoutLocation !== undefined) {
40
+ if (location === undefined ||
41
+ this.clientServerLocation !== undefined ||
42
+ this.fanoutLocation !== undefined) {
43
43
  return undefined;
44
44
  }
45
45
  const clientServerLocation = hasClientServerLocationTopology(this.options.registration)
@@ -102,11 +102,7 @@ class ZLinkChannelRuntimeLifecycle {
102
102
  const channelReceivers = this.startChannelReceivers(taskRunner);
103
103
  const subscriberReceivers = this.startSubscriberReceivers(taskRunner);
104
104
  const routeReceivers = this.startRouteReceivers(taskRunner);
105
- const tasks = [
106
- ...channelReceivers,
107
- ...subscriberReceivers,
108
- ...routeReceivers
109
- ];
105
+ const tasks = [...channelReceivers, ...subscriberReceivers, ...routeReceivers];
110
106
  return tasks;
111
107
  }
112
108
  prepareMeshDispatch(taskRunner) {
@@ -128,10 +124,16 @@ class ZLinkChannelRuntimeLifecycle {
128
124
  packetName: registration.packetName,
129
125
  handler: this.options.dispatchServices.routeRequestHandler(registration.handlerType)
130
126
  })),
131
- ...[...this.options.internalRouteSendHandlers?.entries() ?? []].map(([packetName, handler]) => ({
132
- kind: 'send', packetName, handler
127
+ ...[...(this.options.internalRouteSendHandlers?.entries() ?? [])].map(([packetName, handler]) => ({
128
+ kind: 'send',
129
+ packetName,
130
+ handler
133
131
  })),
134
- ...[...this.options.internalRouteRequestHandlers?.entries() ?? []].map(([packetName, handler]) => ({ kind: 'request', packetName, handler }))
132
+ ...[...(this.options.internalRouteRequestHandlers?.entries() ?? [])].map(([packetName, handler]) => ({
133
+ kind: 'request',
134
+ packetName,
135
+ handler
136
+ }))
135
137
  ];
136
138
  if (routeHandlers.length > 0) {
137
139
  this.meshRouteDispatchers.set(meshName, new channel_dispatchers_1.ZLinkRoutePacketDispatcher({
@@ -144,7 +146,8 @@ class ZLinkChannelRuntimeLifecycle {
144
146
  }));
145
147
  }
146
148
  for (const [channelName, channel] of Object.entries(mesh.meshChannels ?? {})) {
147
- if ((channel.requestHandlers ?? []).length === 0 && (channel.sendHandlers ?? []).length === 0) {
149
+ if ((channel.requestHandlers ?? []).length === 0 &&
150
+ (channel.sendHandlers ?? []).length === 0) {
148
151
  continue;
149
152
  }
150
153
  this.meshChannelDispatchers.set(meshChannelKey(meshName, channelName), new channel_dispatchers_1.ZLinkChannelRequestDispatcher({
@@ -155,13 +158,14 @@ class ZLinkChannelRuntimeLifecycle {
155
158
  dispatchErrors: this.options.dispatchServices.dispatchErrorReporter(taskRunner.errorSink),
156
159
  handlers: new Map(channel.requestHandlers?.map((handler) => [
157
160
  handler.packetName,
158
- handler.handler
159
- ?? adaptRouteRequestHandler(this.options.dispatchServices.routeRequestHandler(handler.handlerType))
161
+ handler.handler ??
162
+ adaptRouteRequestHandler(this.options.dispatchServices.routeRequestHandler(handler.handlerType))
160
163
  ])),
161
164
  sendHandlers: new Map(channel.sendHandlers?.map((handler) => [
162
165
  handler.packetName,
163
- handler.handler
164
- ?? adaptRouteSendHandler(this.options.dispatchServices.routeSendHandler(handler.handlerType))
166
+ handler
167
+ .handler ??
168
+ adaptRouteSendHandler(this.options.dispatchServices.routeSendHandler(handler.handlerType))
165
169
  ])),
166
170
  filters: this.options.dispatchServices.handlerFilters(),
167
171
  unhandled: this.options.registration.dispatch?.unhandled
@@ -240,11 +244,10 @@ class ZLinkChannelRuntimeLifecycle {
240
244
  this.manualFanoutSubscriberOwners.clear();
241
245
  this.manualFanoutSubscribers.clear();
242
246
  const manualLoops = new Set(manualStates
243
- .map(state => state.active?.loop ?? state.stopping?.loop)
247
+ .map((state) => state.active?.loop ?? state.stopping?.loop)
244
248
  .filter((loop) => loop !== undefined));
245
- const subscriberLoops = [...this.subscriberReceiveLoops]
246
- .filter(loop => !manualLoops.has(loop));
247
- const manualTransitions = manualStates.map(state => this.drainManualFanoutSubscriberCore(state));
249
+ const subscriberLoops = [...this.subscriberReceiveLoops].filter((loop) => !manualLoops.has(loop));
250
+ const manualTransitions = manualStates.map((state) => this.drainManualFanoutSubscriberCore(state));
248
251
  const routeLoops = [...this.routeReceiveLoops];
249
252
  const clientServerLocation = this.clientServerLocation;
250
253
  const fanoutLocation = this.fanoutLocation;
@@ -295,17 +298,19 @@ class ZLinkChannelRuntimeLifecycle {
295
298
  dispatchErrors: this.options.dispatchServices.dispatchErrorReporter(taskRunner.errorSink),
296
299
  handlers: new Map(channel.requestHandlers?.map((handler) => [
297
300
  handler.packetName,
298
- handler.handler ?? this.options.dispatchServices.channelRequestHandler(requireChannelHandlerType(handler.handlerType, channelName, handler.packetName))
301
+ handler.handler ??
302
+ this.options.dispatchServices.channelRequestHandler(requireChannelHandlerType(handler.handlerType, channelName, handler.packetName))
299
303
  ])),
300
304
  sendHandlers: new Map(channel.sendHandlers?.map((handler) => [
301
305
  handler.packetName,
302
- handler.handler ?? this.options.dispatchServices.channelSendHandler(requireChannelHandlerType(handler.handlerType, channelName, handler.packetName))
306
+ handler.handler ??
307
+ this.options.dispatchServices.channelSendHandler(requireChannelHandlerType(handler.handlerType, channelName, handler.packetName))
303
308
  ])),
304
309
  filters: this.options.dispatchServices.handlerFilters(),
305
- unhandled: this.options.registration.dispatch?.unhandled,
310
+ unhandled: this.options.registration.dispatch?.unhandled
306
311
  });
307
312
  const spotRouteBridge = this.createSpotRouteBridgeForRouter(channelName, router);
308
- const loop = new channel_receive_loops_1.ZLinkChannelReceiveLoop(channelName, router, dispatcher, spotRouteBridge, (received, socket) => this.options.sockets.tryHandleClientServerControl(channelName, received, socket), this.options.adapter.createReadablePoller(router), this.options.applicationJobQueue, error => taskRunner.errorSink.reportRuntimeTaskException(`channel:${channelName}:dispatch`, error), this.receiveRoundRobin);
313
+ const loop = new channel_receive_loops_1.ZLinkChannelReceiveLoop(channelName, router, dispatcher, spotRouteBridge, (received, socket) => this.options.sockets.tryHandleClientServerControl(channelName, received, socket), this.options.adapter.createReadablePoller(router), this.options.applicationJobQueue, (error) => taskRunner.errorSink.reportRuntimeTaskException(`channel:${channelName}:dispatch`, error), this.receiveRoundRobin);
309
314
  this.channelReceiveLoops.push(loop);
310
315
  tasks.push(taskRunner.run(`channel:${channelName}`, (signal) => loop.run(signal)));
311
316
  }
@@ -333,8 +338,8 @@ class ZLinkChannelRuntimeLifecycle {
333
338
  const endpoints = endpointHandle.listConnections();
334
339
  this.manualFanoutSubscriberOwners.add(channel.subscriber);
335
340
  (0, RuntimeEndpointConnections_1.attachEndpointConnections)(channel.subscriber, {
336
- connect: endpoint => this.requestManualFanoutConnect(channelName, endpoint, taskRunner, dispatcher),
337
- disconnect: endpoint => this.requestManualFanoutDisconnect(channelName, endpoint)
341
+ connect: (endpoint) => this.requestManualFanoutConnect(channelName, endpoint, taskRunner, dispatcher),
342
+ disconnect: (endpoint) => this.requestManualFanoutDisconnect(channelName, endpoint)
338
343
  });
339
344
  for (const endpoint of endpoints) {
340
345
  const state = this.getOrCreateManualFanoutSubscriber(channelName, endpoint, this.nextManualFanoutIndex++, taskRunner, dispatcher);
@@ -371,8 +376,7 @@ class ZLinkChannelRuntimeLifecycle {
371
376
  this.enqueueManualFanoutTransition(state, async () => {
372
377
  if (!state.desired || state.active !== undefined || this.taskRunner !== taskRunner)
373
378
  return;
374
- void this.openManualFanoutSubscriber(state).catch(error => taskRunner.errorSink
375
- .reportRuntimeTaskException(`subscriber:${state.channelName}:manual:${state.index}:open`, error));
379
+ void this.openManualFanoutSubscriber(state).catch((error) => taskRunner.errorSink.reportRuntimeTaskException(`subscriber:${state.channelName}:manual:${state.index}:open`, error));
376
380
  });
377
381
  }
378
382
  requestManualFanoutDisconnect(channelName, endpoint) {
@@ -395,7 +399,7 @@ class ZLinkChannelRuntimeLifecycle {
395
399
  enqueueManualFanoutTransition(state, transition) {
396
400
  state.transition = state.transition
397
401
  .then(() => startOutsideStateLane(transition), () => startOutsideStateLane(transition))
398
- .catch(error => state.taskRunner.errorSink.reportRuntimeTaskException(`subscriber:${state.channelName}:manual:${state.index}:lifecycle`, error));
402
+ .catch((error) => state.taskRunner.errorSink.reportRuntimeTaskException(`subscriber:${state.channelName}:manual:${state.index}:lifecycle`, error));
399
403
  }
400
404
  openManualFanoutSubscriber(state) {
401
405
  const { channelName, endpoint, connectionId, taskRunner, dispatcher } = state;
@@ -410,14 +414,14 @@ class ZLinkChannelRuntimeLifecycle {
410
414
  const subscriber = this.options.sockets.openFanoutSubscriberConnection(channelName, connectionId, endpoint, {
411
415
  onReady() { },
412
416
  onTerminated: () => {
413
- if (this.disposed
414
- || (state.active?.token !== token && state.openingToken !== token)
415
- || reconnecting)
417
+ if (this.disposed ||
418
+ (state.active?.token !== token && state.openingToken !== token) ||
419
+ reconnecting)
416
420
  return;
417
421
  reconnecting = true;
418
422
  setImmediate(() => {
419
- if (this.disposed
420
- || (state.active?.token !== token && state.openingToken !== token)) {
423
+ if (this.disposed ||
424
+ (state.active?.token !== token && state.openingToken !== token)) {
421
425
  reconnecting = false;
422
426
  return;
423
427
  }
@@ -432,24 +436,23 @@ class ZLinkChannelRuntimeLifecycle {
432
436
  taskRunner.errorSink.reportRuntimeTaskException(`subscriber:${state.channelName}:manual:${state.index}:cleanup`, error);
433
437
  }
434
438
  if (this.shouldReconnectManualFanoutSubscriber(state)) {
435
- void this.openManualFanoutSubscriber(state).catch(error => taskRunner.errorSink
436
- .reportRuntimeTaskException(`subscriber:${state.channelName}:manual:${state.index}:reconnect`, error));
439
+ void this.openManualFanoutSubscriber(state).catch((error) => taskRunner.errorSink.reportRuntimeTaskException(`subscriber:${state.channelName}:manual:${state.index}:reconnect`, error));
437
440
  }
438
441
  });
439
442
  });
440
443
  }
441
444
  });
442
- loop = new channel_receive_loops_1.ZLinkSubscriberReceiveLoop(this.options.adapter, subscriber, dispatcher, this.options.applicationJobQueue, message => this.options.sockets.handleFanoutInboundResult(connectionId, message, subscriber), this.receiveRoundRobin, error => taskRunner.errorSink.reportRuntimeTaskException(`subscriber:${state.channelName}:manual:${state.index}:dispatch`, error));
445
+ loop = new channel_receive_loops_1.ZLinkSubscriberReceiveLoop(this.options.adapter, subscriber, dispatcher, this.options.applicationJobQueue, (message) => this.options.sockets.handleFanoutInboundResult(connectionId, message, subscriber), this.receiveRoundRobin, (error) => taskRunner.errorSink.reportRuntimeTaskException(`subscriber:${state.channelName}:manual:${state.index}:dispatch`, error));
443
446
  state.openingToken = undefined;
444
447
  state.active = { token, loop };
445
448
  this.subscriberReceiveLoops.push(loop);
446
- return taskRunner.run(`subscriber:${channelName}:manual:${state.index}`, signal => loop.run(signal));
449
+ return taskRunner.run(`subscriber:${channelName}:manual:${state.index}`, (signal) => loop.run(signal));
447
450
  }
448
451
  catch (error) {
449
452
  state.openingToken = undefined;
450
453
  return Promise.allSettled([
451
454
  this.options.sockets.closeFanoutSubscriberConnection(connectionId)
452
- ]).then(results => {
455
+ ]).then((results) => {
453
456
  const closeError = results[0].status === 'rejected' ? results[0].reason : undefined;
454
457
  if (closeError === undefined)
455
458
  throw error;
@@ -512,19 +515,15 @@ class ZLinkChannelRuntimeLifecycle {
512
515
  const dispatcher = new channel_dispatchers_1.ZLinkChannelPublishDispatcher({
513
516
  channelName,
514
517
  codecs: this.options.codecs,
515
- dispatchErrors: this.options.dispatchServices
516
- .dispatchErrorReporter(taskRunner.errorSink),
517
- handlers: new Map(channel.publishHandlers?.map(handler => [
518
- handler.packetName,
519
- handler.handler
520
- ])),
518
+ dispatchErrors: this.options.dispatchServices.dispatchErrorReporter(taskRunner.errorSink),
519
+ handlers: new Map(channel.publishHandlers?.map((handler) => [handler.packetName, handler.handler])),
521
520
  filters: this.options.dispatchServices.handlerFilters(),
522
521
  unhandled: this.options.registration.dispatch?.unhandled,
523
522
  metrics: this.options.dispatchServices.metrics()
524
523
  });
525
- const loop = new channel_receive_loops_1.ZLinkSubscriberReceiveLoop(this.options.adapter, subscriber, dispatcher, this.options.applicationJobQueue, message => this.options.sockets.handleFanoutInboundResult(connectionId, message, subscriber), undefined, error => taskRunner.errorSink.reportRuntimeTaskException(`subscriber:${channelName}:automatic:${connectionId}:dispatch`, error));
524
+ const loop = new channel_receive_loops_1.ZLinkSubscriberReceiveLoop(this.options.adapter, subscriber, dispatcher, this.options.applicationJobQueue, (message) => this.options.sockets.handleFanoutInboundResult(connectionId, message, subscriber), undefined, (error) => taskRunner.errorSink.reportRuntimeTaskException(`subscriber:${channelName}:automatic:${connectionId}:dispatch`, error));
526
525
  this.subscriberReceiveLoops.push(loop);
527
- void taskRunner.run(`subscriber:${channelName}:automatic:${connectionId}`, signal => loop.run(signal));
526
+ void taskRunner.run(`subscriber:${channelName}:automatic:${connectionId}`, (signal) => loop.run(signal));
528
527
  return async () => {
529
528
  await startOutsideStateLane(() => loop.stop());
530
529
  await this.lane.run(() => this.removeSubscriberReceiveLoopCore(loop));
@@ -546,10 +545,16 @@ class ZLinkChannelRuntimeLifecycle {
546
545
  const spotRouteBridge = this.createSpotRouteBridgeForRouter(routeChannel.routerChannelId, router);
547
546
  const handlers = [
548
547
  ...(0, channel_dispatchers_1.collectRouteChannelHandlers)(routeChannel),
549
- ...[...this.options.internalRouteSendHandlers?.entries() ?? []].map(([packetName, handler]) => ({
550
- kind: 'send', packetName, handler
548
+ ...[...(this.options.internalRouteSendHandlers?.entries() ?? [])].map(([packetName, handler]) => ({
549
+ kind: 'send',
550
+ packetName,
551
+ handler
551
552
  })),
552
- ...[...this.options.internalRouteRequestHandlers?.entries() ?? []].map(([packetName, handler]) => ({ kind: 'request', packetName, handler }))
553
+ ...[...(this.options.internalRouteRequestHandlers?.entries() ?? [])].map(([packetName, handler]) => ({
554
+ kind: 'request',
555
+ packetName,
556
+ handler
557
+ }))
553
558
  ];
554
559
  if (taskRunner === undefined) {
555
560
  throw new configuration_1.ZLinkConfigurationException(`Route channel '${routeChannel.routerChannelId}' dispatch requires a runtime task runner.`);
@@ -562,7 +567,7 @@ class ZLinkChannelRuntimeLifecycle {
562
567
  unhandled: this.options.registration.dispatch?.unhandled,
563
568
  spotRouteBridge
564
569
  });
565
- const loop = new channel_receive_loops_1.ZLinkRouteReceiveLoop(router, dispatcher, this.options.adapter.createReadablePoller(router), this.options.applicationJobQueue, this.receiveRoundRobin, error => taskRunner.errorSink.reportRuntimeTaskException(`route:${routeChannel.routerChannelId}:dispatch`, error));
570
+ const loop = new channel_receive_loops_1.ZLinkRouteReceiveLoop(router, dispatcher, this.options.adapter.createReadablePoller(router), this.options.applicationJobQueue, this.receiveRoundRobin, (error) => taskRunner.errorSink.reportRuntimeTaskException(`route:${routeChannel.routerChannelId}:dispatch`, error));
566
571
  this.routeReceiveLoops.push(loop);
567
572
  tasks.push(taskRunner.run(`route:${routeChannel.routerChannelId}`, (signal) => loop.run(signal)));
568
573
  }
@@ -608,8 +613,8 @@ function manualFanoutSubscriberKey(channelName, endpoint) {
608
613
  }
609
614
  function hasClientServerLocationTopology(registration) {
610
615
  for (const channel of registration.channels.values()) {
611
- if (channel.server !== undefined
612
- || (channel.client !== undefined && (channel.client.manualConnections?.length ?? 0) === 0)) {
616
+ if (channel.server !== undefined ||
617
+ (channel.client !== undefined && (channel.client.manualConnections?.length ?? 0) === 0)) {
613
618
  return true;
614
619
  }
615
620
  }
@@ -617,9 +622,9 @@ function hasClientServerLocationTopology(registration) {
617
622
  }
618
623
  function hasFanoutLocationTopology(registration) {
619
624
  for (const channel of registration.channels.values()) {
620
- if (channel.publisher !== undefined
621
- || (channel.subscriber !== undefined
622
- && (channel.subscriber.manualConnections?.length ?? 0) === 0)) {
625
+ if (channel.publisher !== undefined ||
626
+ (channel.subscriber !== undefined &&
627
+ (channel.subscriber.manualConnections?.length ?? 0) === 0)) {
623
628
  return true;
624
629
  }
625
630
  }
@@ -16,10 +16,12 @@ class ZLinkChannelRuntimeManager {
16
16
  lifecycle;
17
17
  constructor(registration, adapter, context, providerResolver, options = {}) {
18
18
  this.registration = registration;
19
- const applicationJobQueue = options.applicationJobQueue
20
- ?? new application_job_queue_1.ApplicationJobQueue((0, application_job_queue_1.resolveApplicationJobQueueConfiguration)());
19
+ const applicationJobQueue = options.applicationJobQueue ??
20
+ new application_job_queue_1.ApplicationJobQueue((0, application_job_queue_1.resolveApplicationJobQueueConfiguration)());
21
21
  this.sockets = new channel_socket_registry_1.ZLinkChannelSocketRegistry(registration, adapter, context, options.monitoringAdapter, options.oneWayFailureSink, applicationJobQueue);
22
- const codecs = { serializers: registration.messageSerializers };
22
+ const codecs = {
23
+ serializers: registration.messageSerializers
24
+ };
23
25
  const dispatchServices = new channel_dispatch_services_1.ZLinkChannelDispatchServices(registration, providerResolver, options.messageFlowModeCell);
24
26
  const spotRouteBridges = new Map();
25
27
  this.spotRoutes = new spot_route_dispatch_strategy_1.ZLinkSpotRouteDispatchStrategy({
@@ -41,7 +43,7 @@ class ZLinkChannelRuntimeManager {
41
43
  spotRoutes: this.spotRoutes,
42
44
  spotRouteBridges,
43
45
  internalRouteSendHandlers: options.internalRouteSendHandlers,
44
- internalRouteRequestHandlers: options.internalRouteRequestHandlers,
46
+ internalRouteRequestHandlers: options.internalRouteRequestHandlers
45
47
  });
46
48
  }
47
49
  clientServerTopology(channelName) {
@@ -49,9 +51,12 @@ class ZLinkChannelRuntimeManager {
49
51
  const client = channel?.client !== undefined;
50
52
  const server = channel?.server !== undefined;
51
53
  return {
52
- localRole: client && server ? 'clientAndServer'
53
- : client ? 'client'
54
- : server ? 'server'
54
+ localRole: client && server
55
+ ? 'clientAndServer'
56
+ : client
57
+ ? 'client'
58
+ : server
59
+ ? 'server'
55
60
  : undefined,
56
61
  descriptors: this.sockets.clientServerActiveTargets(channelName),
57
62
  pendingRequestCount: this.outbound.pendingRequestCount(channelName)
@@ -74,12 +79,16 @@ class ZLinkChannelRuntimeManager {
74
79
  observeClientServerTopology(channelName, changed) {
75
80
  const monitor = this.sockets.clientServerMonitoringSource(channelName);
76
81
  monitor.onEvent(changed);
77
- return () => { void monitor.dispose(); };
82
+ return () => {
83
+ void monitor.dispose();
84
+ };
78
85
  }
79
86
  observeFanoutTopology(channelName, changed) {
80
87
  const source = this.sockets.fanoutTopologyMonitoringSource(channelName);
81
88
  source.onChange(changed);
82
- return () => { void source.dispose(); };
89
+ return () => {
90
+ void source.dispose();
91
+ };
83
92
  }
84
93
  configureLocationAutoConnect(runtime, stores, options, events) {
85
94
  this.lifecycle.configureLocationAutoConnect(runtime, stores, options, events);