@zlink-systems/framework 0.21.0 → 0.23.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 (516) 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/Dispatch/ZLinkDispatchOptions.d.ts +1 -0
  13. package/dist/contracts/Handlers/JsonContract.js +23 -11
  14. package/dist/contracts/Spots/SpotKind.js +16 -8
  15. package/dist/contracts/Streams/IZLinkSession.d.ts +2 -1
  16. package/dist/location-store-integration.js +16 -16
  17. package/dist/nest-integration.js +17 -11
  18. package/dist/runtime/abort.js +9 -5
  19. package/dist/runtime/actors/actor-authority-payload-codec.js +12 -16
  20. package/dist/runtime/actors/actor-authority-publication.js +18 -17
  21. package/dist/runtime/actors/actor-client.js +83 -63
  22. package/dist/runtime/actors/actor-context.js +28 -22
  23. package/dist/runtime/actors/actor-creation.js +4 -3
  24. package/dist/runtime/actors/actor-handoff.js +89 -92
  25. package/dist/runtime/actors/actor-join-deferred-scope.d.ts +0 -1
  26. package/dist/runtime/actors/actor-join-deferred-scope.js +0 -18
  27. package/dist/runtime/actors/actor-local-native-join.js +18 -19
  28. package/dist/runtime/actors/actor-mailbox.js +1 -1
  29. package/dist/runtime/actors/actor-message-follow-context.js +24 -21
  30. package/dist/runtime/actors/actor-packet-relay-wire.js +1 -3
  31. package/dist/runtime/actors/actor-remote-joiner.js +20 -17
  32. package/dist/runtime/actors/actor-remote-wire.js +6 -7
  33. package/dist/runtime/actors/actor-runtime-state.js +87 -81
  34. package/dist/runtime/actors/actor-transfer-registry.js +3 -5
  35. package/dist/runtime/actors/bound-session-wire.js +14 -9
  36. package/dist/runtime/actors/deferred-join-accepted-journal.js +160 -130
  37. package/dist/runtime/actors/index.js +2 -5
  38. package/dist/runtime/actors/post-commit-actor-binder.js +3 -6
  39. package/dist/runtime/actors/post-commit-actor-location.js +1 -1
  40. package/dist/runtime/actors/spot-actor-dispatch.js +5 -5
  41. package/dist/runtime/actors/transferred-actor-rollback.js +4 -4
  42. package/dist/runtime/admission.js +2 -6
  43. package/dist/runtime/application-jobs/application-ingress-record-owner.js +2 -6
  44. package/dist/runtime/application-jobs/receive-flow-controller.js +11 -12
  45. package/dist/runtime/backend/contracts/index.d.ts +1 -0
  46. package/dist/runtime/backend/mesh-completion-table.js +1 -3
  47. package/dist/runtime/backend/mesh-dispatch-pump.js +12 -16
  48. package/dist/runtime/backend/node/node-backend-adapter-factory.js +1 -3
  49. package/dist/runtime/backend/node/node-backend-adapter-support.js +26 -17
  50. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +4 -3
  51. package/dist/runtime/backend/node/node-raw-binding-port.js +7 -6
  52. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +3 -0
  53. package/dist/runtime/backend/node/node-raw-mesh-backend.js +134 -118
  54. package/dist/runtime/backend/node/node-socket-backend-adapter.js +12 -13
  55. package/dist/runtime/backend/runtime-message.js +3 -3
  56. package/dist/runtime/backend/runtime-values.d.ts +2 -2
  57. package/dist/runtime/backend/runtime-values.js +4 -5
  58. package/dist/runtime/channels/channel-clients.js +27 -24
  59. package/dist/runtime/channels/channel-dispatch-pipeline.js +12 -20
  60. package/dist/runtime/channels/channel-dispatch-services.js +7 -4
  61. package/dist/runtime/channels/channel-dispatchers.js +9 -9
  62. package/dist/runtime/channels/channel-envelope-inspection.js +16 -13
  63. package/dist/runtime/channels/channel-envelope.js +83 -47
  64. package/dist/runtime/channels/channel-outbound-operations.js +8 -8
  65. package/dist/runtime/channels/channel-receive-loops.js +20 -22
  66. package/dist/runtime/channels/channel-receive-task-tracker.js +1 -1
  67. package/dist/runtime/channels/channel-runtime-lifecycle.js +61 -56
  68. package/dist/runtime/channels/channel-runtime-manager.js +18 -9
  69. package/dist/runtime/channels/channel-socket-registry.js +126 -123
  70. package/dist/runtime/channels/channel-transports.js +46 -42
  71. package/dist/runtime/channels/client-server-location-runtime.js +32 -40
  72. package/dist/runtime/channels/client-server-service-wire.js +29 -22
  73. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -0
  74. package/dist/runtime/channels/dispatch-error-reporter.js +9 -39
  75. package/dist/runtime/channels/fanout-location-runtime.js +34 -47
  76. package/dist/runtime/channels/fanout-service-wire.js +3 -5
  77. package/dist/runtime/channels/local-spot-route-transport.js +7 -1
  78. package/dist/runtime/channels/route-member-snapshot.js +3 -3
  79. package/dist/runtime/channels/source-spot-router.js +6 -2
  80. package/dist/runtime/channels/spot-route-bridge-transport.js +5 -2
  81. package/dist/runtime/channels/spot-route-dispatch-strategy.js +2 -2
  82. package/dist/runtime/channels/spot-route-target-resolver.js +6 -6
  83. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +6 -0
  84. package/dist/runtime/diagnostics/dispatch-error-details.js +55 -0
  85. package/dist/runtime/diagnostics/flow-context.d.ts +2 -1
  86. package/dist/runtime/diagnostics/flow-context.js +2 -2
  87. package/dist/runtime/diagnostics/index.js +38 -10
  88. package/dist/runtime/diagnostics/message-flow.js +58 -42
  89. package/dist/runtime/diagnostics/runtime-metrics.js +18 -9
  90. package/dist/runtime/diagnostics/runtime-observation-queue.js +8 -10
  91. package/dist/runtime/diagnostics/topology-runtime-projections.js +17 -10
  92. package/dist/runtime/execution/index.js +7 -6
  93. package/dist/runtime/execution/serial-execution-queue.js +12 -18
  94. package/dist/runtime/execution/state-lane.js +2 -2
  95. package/dist/runtime/foundation/actor-join-recovery-codec.js +31 -27
  96. package/dist/runtime/foundation/event-loop-resources.js +4 -4
  97. package/dist/runtime/foundation/message-follow-suppression-registry.js +4 -4
  98. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +4 -2
  99. package/dist/runtime/foundation/raw-service-mesh-runtime.js +169 -144
  100. package/dist/runtime/foundation/route-mesh-connection-policy.js +4 -4
  101. package/dist/runtime/foundation/runtime-state-projections.js +22 -11
  102. package/dist/runtime/foundation/service-authority-payload-codec.js +13 -15
  103. package/dist/runtime/foundation/service-discovery-registry.js +35 -33
  104. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +20 -22
  105. package/dist/runtime/foundation/service-liveness-registry.js +16 -12
  106. package/dist/runtime/foundation/service-maintenance-runtime.js +2 -4
  107. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +24 -24
  108. package/dist/runtime/foundation/service-relocation-object-owner.js +6 -6
  109. package/dist/runtime/foundation/service-relocation-runtime.js +137 -94
  110. package/dist/runtime/foundation/service-runtime-contracts.js +5 -5
  111. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +1 -0
  112. package/dist/runtime/foundation/service-stateful-registry.js +24 -23
  113. package/dist/runtime/foundation/service-stateful-runtime.d.ts +4 -0
  114. package/dist/runtime/foundation/service-stateful-runtime.js +461 -439
  115. package/dist/runtime/foundation/service-stateful-wire-codec.js +95 -98
  116. package/dist/runtime/foundation/service-topology-registry.d.ts +1 -0
  117. package/dist/runtime/foundation/service-topology-registry.js +105 -96
  118. package/dist/runtime/foundation/service-weighted-selection.js +6 -11
  119. package/dist/runtime/foundation/service-wire-binary-primitives.js +5 -6
  120. package/dist/runtime/foundation/service-wire-m6a-codec.js +46 -35
  121. package/dist/runtime/framework-errors-internal.js +7 -10
  122. package/dist/runtime/handlers/handler-instance-scope.js +4 -5
  123. package/dist/runtime/handlers/index.js +3 -1
  124. package/dist/runtime/host/actor-packet-relay.js +74 -70
  125. package/dist/runtime/host/actor-placement-coordinator.js +29 -31
  126. package/dist/runtime/host/actor-runtime-options-factory.js +12 -14
  127. package/dist/runtime/host/actor-transfer-authority-runtime.js +7 -9
  128. package/dist/runtime/host/actor-transfer-runtime.js +176 -153
  129. package/dist/runtime/host/application-job-queue.js +18 -22
  130. package/dist/runtime/host/bound-session-relay.js +3 -1
  131. package/dist/runtime/host/channel-runtime-options-factory.js +31 -14
  132. package/dist/runtime/host/host-capacity-status.js +8 -4
  133. package/dist/runtime/host/index.js +245 -228
  134. package/dist/runtime/host/instance-activation-authority.js +93 -96
  135. package/dist/runtime/host/location-runtime-owner.js +16 -14
  136. package/dist/runtime/host/mesh-router-resolver.js +11 -13
  137. package/dist/runtime/host/relocation-direct-transfer.js +10 -9
  138. package/dist/runtime/host/remote-actor-join-receiver.js +20 -15
  139. package/dist/runtime/host/remote-actor-packet-target-store.js +18 -22
  140. package/dist/runtime/host/remote-bound-session-relay.js +97 -73
  141. package/dist/runtime/host/route-mesh-runtime.js +64 -69
  142. package/dist/runtime/host/runtime-shutdown.js +1 -2
  143. package/dist/runtime/host/service-relocation-host-runtime.js +586 -511
  144. package/dist/runtime/host/spot-address-transport.js +69 -71
  145. package/dist/runtime/host/spot-runtime-options-factory.js +30 -29
  146. package/dist/runtime/host/stateful-authority-route-runtime.js +65 -68
  147. package/dist/runtime/host/user-spot-creation-coordinator.js +61 -67
  148. package/dist/runtime/locations/actor-location-claims.js +26 -20
  149. package/dist/runtime/locations/aggregate-inventory-store.js +72 -75
  150. package/dist/runtime/locations/authority-key-codec.js +7 -7
  151. package/dist/runtime/locations/auto-connect-loop.js +3 -3
  152. package/dist/runtime/locations/auto-connect-planner.js +25 -19
  153. package/dist/runtime/locations/auto-connect-reconciler.js +51 -31
  154. package/dist/runtime/locations/in-memory-authority-store.js +128 -118
  155. package/dist/runtime/locations/in-memory-location-store.js +195 -168
  156. package/dist/runtime/locations/in-memory-provider-location-store.js +8 -10
  157. package/dist/runtime/locations/key-codec.js +1 -1
  158. package/dist/runtime/locations/lease-tracker.js +23 -21
  159. package/dist/runtime/locations/lifecycle.js +4 -5
  160. package/dist/runtime/locations/location-store-repository.js +368 -324
  161. package/dist/runtime/locations/opaque-record-key.js +2 -2
  162. package/dist/runtime/locations/resolvers.js +73 -82
  163. package/dist/runtime/locations/runtime.js +68 -63
  164. package/dist/runtime/locations/spot-location-claims.js +39 -35
  165. package/dist/runtime/messaging/framework-json-v1.js +7 -7
  166. package/dist/runtime/messaging/packet-name.js +7 -6
  167. package/dist/runtime/messaging/payload-codec.js +21 -18
  168. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +30 -2
  169. package/dist/runtime/protocol/service_wire_codec.generated.js +1671 -234
  170. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +20 -18
  171. package/dist/runtime/routing-id.js +3 -5
  172. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +35 -31
  173. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +1 -2
  174. package/dist/runtime/spots/index.js +209 -220
  175. package/dist/runtime/spots/spot-activation-registry.js +15 -14
  176. package/dist/runtime/spots/spot-activation-state.js +17 -15
  177. package/dist/runtime/spots/spot-activation.js +33 -16
  178. package/dist/runtime/spots/spot-actor-admission-coordinator.js +18 -15
  179. package/dist/runtime/spots/spot-actor-membership.js +1 -3
  180. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +2 -1
  181. package/dist/runtime/spots/spot-actor-packet-dispatch.js +29 -21
  182. package/dist/runtime/spots/spot-actor-packet-drain.js +14 -10
  183. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +10 -6
  184. package/dist/runtime/spots/spot-closing.js +3 -7
  185. package/dist/runtime/spots/spot-context.js +2 -2
  186. package/dist/runtime/spots/spot-entry-activation.js +13 -14
  187. package/dist/runtime/spots/spot-handle.js +6 -3
  188. package/dist/runtime/spots/spot-handler-registry.js +12 -12
  189. package/dist/runtime/spots/spot-manager-public.js +5 -6
  190. package/dist/runtime/spots/spot-native-actor-join-admission.js +4 -3
  191. package/dist/runtime/spots/spot-node-autoconnect.js +15 -18
  192. package/dist/runtime/spots/spot-node-runtime-manager.js +79 -86
  193. package/dist/runtime/spots/spot-outbound.js +10 -14
  194. package/dist/runtime/spots/spot-remote-codec.js +22 -26
  195. package/dist/runtime/spots/spot-remote-route-codec.js +5 -7
  196. package/dist/runtime/spots/spot-route-packet-dispatch.js +17 -15
  197. package/dist/runtime/spots/spot-route-replies.js +4 -6
  198. package/dist/runtime/spots/spot-routed-actor-admission.js +9 -7
  199. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +2 -3
  200. package/dist/runtime/spots/spot-routed-frame-dispatch.js +5 -5
  201. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +14 -10
  202. package/dist/runtime/spots/spot-serial-executor.js +5 -8
  203. package/dist/runtime/spots/spot-serial-turn-executor.js +4 -6
  204. package/dist/runtime/spots/spot-subscription-dispatch.js +6 -6
  205. package/dist/runtime/spots/spot-timer.js +26 -30
  206. package/dist/runtime/streams/actor-session-binding-registry.d.ts +21 -8
  207. package/dist/runtime/streams/actor-session-binding-registry.js +168 -148
  208. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -0
  209. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +3 -1
  210. package/dist/runtime/streams/bound-actor-relay-sender.js +20 -17
  211. package/dist/runtime/streams/bound-session-response-target.js +8 -1
  212. package/dist/runtime/streams/bound-session-service.d.ts +1 -0
  213. package/dist/runtime/streams/bound-session-service.js +14 -12
  214. package/dist/runtime/streams/index.js +28 -20
  215. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  216. package/dist/runtime/streams/managed-stream.js +52 -31
  217. package/dist/runtime/streams/native-fallback-bound-session.js +21 -17
  218. package/dist/runtime/streams/protocol.d.ts +5 -1
  219. package/dist/runtime/streams/protocol.js +68 -20
  220. package/dist/runtime/streams/session-actor-coordinator.js +37 -41
  221. package/dist/runtime/streams/session-context.d.ts +9 -2
  222. package/dist/runtime/streams/session-context.js +50 -32
  223. package/dist/runtime/streams/session-local-actors.d.ts +3 -1
  224. package/dist/runtime/streams/session-local-actors.js +17 -2
  225. package/dist/runtime/streams/session-provider.js +2 -2
  226. package/dist/runtime/streams/session-serial-executor.js +1 -2
  227. package/dist/runtime/streams/stream-frame-factory.d.ts +1 -1
  228. package/dist/runtime/streams/stream-frame-factory.js +14 -7
  229. package/dist/runtime/streams/stream-session-runtime.js +112 -78
  230. package/dist/runtime/workers/index.js +15 -4
  231. package/package.json +3 -3
  232. package/src/contracts/Channels/RouteCalls.ts +6 -1
  233. package/src/contracts/Common/ZLinkMessage.ts +5 -5
  234. package/src/contracts/Common/ZLinkMessageMetadata.ts +4 -3
  235. package/src/contracts/Configuration/Builders.ts +14 -14
  236. package/src/contracts/Configuration/CodecContentType.ts +8 -10
  237. package/src/contracts/Configuration/DiagnosticsValidation.ts +1 -6
  238. package/src/contracts/Configuration/EndpointNotation.ts +11 -11
  239. package/src/contracts/Configuration/ObjectRoles.ts +1 -3
  240. package/src/contracts/Configuration/Registration.ts +46 -17
  241. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +10 -8
  242. package/src/contracts/Configuration/RegistrationBuilders.ts +107 -96
  243. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +9 -3
  244. package/src/contracts/Configuration/RegistrationNormalizers.ts +116 -84
  245. package/src/contracts/Configuration/RegistrationTypes.ts +21 -25
  246. package/src/contracts/Configuration/RegistrationValidators.ts +122 -73
  247. package/src/contracts/Configuration/RouteChannelInternalState.ts +1 -4
  248. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +4 -1
  249. package/src/contracts/Configuration/SendTimeoutValidation.ts +6 -4
  250. package/src/contracts/Configuration/TimerRegistrationValidator.ts +8 -13
  251. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +2 -6
  252. package/src/contracts/Errors/index.ts +1 -4
  253. package/src/contracts/Handlers/Attributes.ts +15 -9
  254. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +24 -4
  255. package/src/contracts/Handlers/JsonContract.ts +53 -19
  256. package/src/contracts/Locations/ActorTransfer.ts +1 -5
  257. package/src/contracts/Locations/Authority.ts +4 -11
  258. package/src/contracts/Locations/Keys.ts +6 -1
  259. package/src/contracts/Locations/Options.ts +3 -2
  260. package/src/contracts/Locations/RelocationStore.ts +1 -4
  261. package/src/contracts/Locations/Resolvers.ts +5 -5
  262. package/src/contracts/Locations/RuntimeQuery.ts +6 -2
  263. package/src/contracts/Locations/Stores.ts +1 -2
  264. package/src/contracts/Locations/index.ts +2 -8
  265. package/src/contracts/RouteMesh/Contracts.ts +1 -7
  266. package/src/contracts/RouteMesh/RuntimeTopology.ts +1 -4
  267. package/src/contracts/Spots/Contracts.ts +2 -8
  268. package/src/contracts/Spots/SpotKind.ts +16 -8
  269. package/src/contracts/Spots/ZLinkSpot.ts +8 -11
  270. package/src/contracts/Streams/IZLinkSession.ts +2 -2
  271. package/src/contracts/Streams/IZLinkSessionActor.ts +5 -1
  272. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +5 -1
  273. package/src/internal.ts +5 -4
  274. package/src/location-store-integration.ts +24 -16
  275. package/src/nest-integration.ts +40 -25
  276. package/src/runtime/abort.ts +10 -4
  277. package/src/runtime/actors/actor-authority-payload-codec.ts +20 -29
  278. package/src/runtime/actors/actor-authority-publication.ts +92 -77
  279. package/src/runtime/actors/actor-client.ts +162 -133
  280. package/src/runtime/actors/actor-context.ts +142 -134
  281. package/src/runtime/actors/actor-creation.ts +47 -44
  282. package/src/runtime/actors/actor-execution-context.ts +6 -4
  283. package/src/runtime/actors/actor-handoff.ts +269 -293
  284. package/src/runtime/actors/actor-join-deferred-scope.ts +1 -32
  285. package/src/runtime/actors/actor-lifecycle-snapshot.ts +5 -8
  286. package/src/runtime/actors/actor-local-native-join.ts +131 -159
  287. package/src/runtime/actors/actor-mailbox.ts +16 -19
  288. package/src/runtime/actors/actor-message-follow-context.ts +46 -36
  289. package/src/runtime/actors/actor-packet-relay-wire.ts +32 -21
  290. package/src/runtime/actors/actor-remote-joiner.ts +50 -54
  291. package/src/runtime/actors/actor-remote-wire.ts +9 -13
  292. package/src/runtime/actors/actor-routed-join-transport.ts +10 -2
  293. package/src/runtime/actors/actor-runtime-contracts.ts +2 -5
  294. package/src/runtime/actors/actor-runtime-state.ts +127 -124
  295. package/src/runtime/actors/actor-transfer-registry.ts +9 -14
  296. package/src/runtime/actors/actor-transport-delivery-gate.ts +4 -6
  297. package/src/runtime/actors/bound-session-wire.ts +37 -17
  298. package/src/runtime/actors/deferred-join-accepted-journal.ts +353 -326
  299. package/src/runtime/actors/index.ts +43 -86
  300. package/src/runtime/actors/post-commit-actor-binder.ts +10 -10
  301. package/src/runtime/actors/post-commit-actor-location.ts +30 -23
  302. package/src/runtime/actors/spot-actor-dispatch.ts +78 -53
  303. package/src/runtime/actors/transferred-actor-rollback.ts +18 -13
  304. package/src/runtime/admission.ts +9 -9
  305. package/src/runtime/application-jobs/application-ingress-record-owner.ts +5 -15
  306. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +3 -2
  307. package/src/runtime/application-jobs/receive-flow-controller.ts +17 -14
  308. package/src/runtime/backend/contracts/index.ts +77 -52
  309. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -14
  310. package/src/runtime/backend/mesh-completion-table.ts +6 -9
  311. package/src/runtime/backend/mesh-dispatch-pump.ts +38 -30
  312. package/src/runtime/backend/node/node-backend-adapter-factory.ts +23 -21
  313. package/src/runtime/backend/node/node-backend-adapter-support.ts +36 -22
  314. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +59 -58
  315. package/src/runtime/backend/node/node-event-loop-poller.ts +2 -10
  316. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +12 -5
  317. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +4 -3
  318. package/src/runtime/backend/node/node-raw-binding-port.ts +29 -29
  319. package/src/runtime/backend/node/node-raw-mesh-backend.ts +370 -390
  320. package/src/runtime/backend/node/node-socket-backend-adapter.ts +101 -54
  321. package/src/runtime/backend/runtime-message.ts +5 -3
  322. package/src/runtime/backend/runtime-values.ts +10 -7
  323. package/src/runtime/channels/channel-autoconnect.ts +1 -4
  324. package/src/runtime/channels/channel-clients.ts +93 -73
  325. package/src/runtime/channels/channel-dispatch-pipeline.ts +44 -44
  326. package/src/runtime/channels/channel-dispatch-services.ts +51 -49
  327. package/src/runtime/channels/channel-dispatchers.ts +152 -96
  328. package/src/runtime/channels/channel-envelope-inspection.ts +20 -16
  329. package/src/runtime/channels/channel-envelope.ts +256 -150
  330. package/src/runtime/channels/channel-multipart.ts +13 -5
  331. package/src/runtime/channels/channel-outbound-operations.ts +37 -41
  332. package/src/runtime/channels/channel-receive-loops.ts +102 -98
  333. package/src/runtime/channels/channel-receive-task-tracker.ts +1 -1
  334. package/src/runtime/channels/channel-runtime-lifecycle.ts +248 -190
  335. package/src/runtime/channels/channel-runtime-manager.ts +63 -37
  336. package/src/runtime/channels/channel-socket-options.ts +3 -10
  337. package/src/runtime/channels/channel-socket-registry.ts +331 -273
  338. package/src/runtime/channels/channel-transports.ts +218 -206
  339. package/src/runtime/channels/client-server-location-runtime.ts +116 -100
  340. package/src/runtime/channels/client-server-service-wire.ts +37 -36
  341. package/src/runtime/channels/dispatch-error-reporter.ts +12 -47
  342. package/src/runtime/channels/fanout-location-runtime.ts +91 -94
  343. package/src/runtime/channels/fanout-service-wire.ts +5 -12
  344. package/src/runtime/channels/handler-filter-scope.ts +1 -4
  345. package/src/runtime/channels/index.ts +1 -4
  346. package/src/runtime/channels/local-spot-route-transport.ts +20 -5
  347. package/src/runtime/channels/route-member-snapshot.ts +11 -5
  348. package/src/runtime/channels/router-socket-spot-route-transport.ts +1 -7
  349. package/src/runtime/channels/source-spot-router.ts +26 -22
  350. package/src/runtime/channels/spot-direct-envelope.ts +10 -8
  351. package/src/runtime/channels/spot-node-route-transport.ts +13 -16
  352. package/src/runtime/channels/spot-route-bridge-transport.ts +26 -9
  353. package/src/runtime/channels/spot-route-dispatch-strategy.ts +40 -13
  354. package/src/runtime/channels/spot-route-target-resolver.ts +18 -9
  355. package/src/runtime/codecs/index.ts +3 -2
  356. package/src/runtime/diagnostics/dispatch-error-details.ts +62 -0
  357. package/src/runtime/diagnostics/flow-context.ts +18 -7
  358. package/src/runtime/diagnostics/index.ts +96 -61
  359. package/src/runtime/diagnostics/internal-event-contracts.ts +87 -33
  360. package/src/runtime/diagnostics/message-flow.ts +107 -79
  361. package/src/runtime/diagnostics/runtime-metrics.ts +46 -24
  362. package/src/runtime/diagnostics/runtime-observation-queue.ts +17 -28
  363. package/src/runtime/diagnostics/topology-runtime-projections.ts +62 -43
  364. package/src/runtime/execution/index.ts +18 -26
  365. package/src/runtime/execution/serial-execution-queue.ts +31 -40
  366. package/src/runtime/execution/state-lane.ts +2 -2
  367. package/src/runtime/foundation/actor-join-recovery-codec.ts +69 -55
  368. package/src/runtime/foundation/event-loop-resources.ts +8 -4
  369. package/src/runtime/foundation/message-follow-suppression-registry.ts +7 -14
  370. package/src/runtime/foundation/operation-identity.ts +1 -2
  371. package/src/runtime/foundation/operation-registry.ts +8 -2
  372. package/src/runtime/foundation/raw-service-mesh-runtime.ts +364 -396
  373. package/src/runtime/foundation/route-mesh-connection-policy.ts +7 -8
  374. package/src/runtime/foundation/runtime-state-projections.ts +24 -23
  375. package/src/runtime/foundation/service-authority-payload-codec.ts +54 -57
  376. package/src/runtime/foundation/service-discovery-registry.ts +67 -59
  377. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +28 -29
  378. package/src/runtime/foundation/service-liveness-registry.ts +18 -13
  379. package/src/runtime/foundation/service-mailbox.ts +14 -14
  380. package/src/runtime/foundation/service-maintenance-runtime.ts +22 -21
  381. package/src/runtime/foundation/service-metadata-codec.ts +2 -9
  382. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +39 -36
  383. package/src/runtime/foundation/service-relocation-coordinator.ts +1 -4
  384. package/src/runtime/foundation/service-relocation-object-owner.ts +40 -58
  385. package/src/runtime/foundation/service-relocation-runtime.ts +292 -216
  386. package/src/runtime/foundation/service-runtime-contracts.ts +8 -8
  387. package/src/runtime/foundation/service-session-binding-ingress-port.ts +2 -4
  388. package/src/runtime/foundation/service-stateful-registry.ts +69 -59
  389. package/src/runtime/foundation/service-stateful-runtime.ts +1233 -1112
  390. package/src/runtime/foundation/service-stateful-wire-codec.ts +318 -270
  391. package/src/runtime/foundation/service-topology-registry.ts +170 -159
  392. package/src/runtime/foundation/service-weighted-selection.ts +9 -15
  393. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -12
  394. package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -47
  395. package/src/runtime/framework-errors-internal.ts +31 -30
  396. package/src/runtime/handlers/handler-instance-scope.ts +18 -29
  397. package/src/runtime/handlers/index.ts +18 -8
  398. package/src/runtime/host/actor-packet-relay.ts +290 -261
  399. package/src/runtime/host/actor-placement-coordinator.ts +165 -150
  400. package/src/runtime/host/actor-runtime-options-factory.ts +89 -87
  401. package/src/runtime/host/actor-transfer-authority-runtime.ts +46 -38
  402. package/src/runtime/host/actor-transfer-runtime.ts +391 -395
  403. package/src/runtime/host/application-job-queue.ts +32 -48
  404. package/src/runtime/host/bound-session-relay.ts +7 -9
  405. package/src/runtime/host/channel-runtime-options-factory.ts +75 -35
  406. package/src/runtime/host/host-capacity-status.ts +10 -9
  407. package/src/runtime/host/index.ts +861 -789
  408. package/src/runtime/host/instance-activation-authority.ts +125 -143
  409. package/src/runtime/host/location-runtime-owner.ts +38 -26
  410. package/src/runtime/host/mesh-router-resolver.ts +30 -23
  411. package/src/runtime/host/relocation-direct-transfer.ts +15 -15
  412. package/src/runtime/host/relocation-integrity-fault-gate.ts +3 -2
  413. package/src/runtime/host/remote-actor-join-receiver.ts +43 -34
  414. package/src/runtime/host/remote-actor-packet-target-store.ts +54 -52
  415. package/src/runtime/host/remote-bound-session-relay.ts +274 -247
  416. package/src/runtime/host/route-mesh-runtime-options.ts +1 -3
  417. package/src/runtime/host/route-mesh-runtime.ts +227 -181
  418. package/src/runtime/host/runtime-shutdown.ts +4 -3
  419. package/src/runtime/host/service-relocation-control.ts +14 -5
  420. package/src/runtime/host/service-relocation-host-runtime.ts +1388 -1165
  421. package/src/runtime/host/spot-address-transport.ts +284 -237
  422. package/src/runtime/host/spot-node-runtime-options-factory.ts +14 -8
  423. package/src/runtime/host/spot-runtime-options-factory.ts +71 -62
  424. package/src/runtime/host/stateful-authority-route-runtime.ts +117 -116
  425. package/src/runtime/host/user-spot-creation-coordinator.ts +225 -220
  426. package/src/runtime/locations/actor-location-claims.ts +61 -49
  427. package/src/runtime/locations/actor-session-route-claims.ts +1 -4
  428. package/src/runtime/locations/aggregate-inventory-store.ts +105 -134
  429. package/src/runtime/locations/authority-key-codec.ts +13 -10
  430. package/src/runtime/locations/auto-connect-loop.ts +14 -11
  431. package/src/runtime/locations/auto-connect-planner.ts +42 -31
  432. package/src/runtime/locations/auto-connect-reconciler.ts +106 -63
  433. package/src/runtime/locations/canonical-codec.ts +3 -1
  434. package/src/runtime/locations/creation-operation-id.ts +4 -3
  435. package/src/runtime/locations/domain-store-contract.ts +13 -7
  436. package/src/runtime/locations/in-memory-authority-store.ts +232 -199
  437. package/src/runtime/locations/in-memory-location-store.ts +432 -250
  438. package/src/runtime/locations/in-memory-provider-location-store.ts +16 -17
  439. package/src/runtime/locations/internal-store-contracts.ts +95 -38
  440. package/src/runtime/locations/key-codec.ts +3 -4
  441. package/src/runtime/locations/lease-tracker.ts +36 -27
  442. package/src/runtime/locations/lifecycle-runtime.ts +15 -3
  443. package/src/runtime/locations/lifecycle.ts +33 -28
  444. package/src/runtime/locations/location-store-repository.ts +1329 -1185
  445. package/src/runtime/locations/opaque-record-key.ts +4 -9
  446. package/src/runtime/locations/resolvers.ts +201 -178
  447. package/src/runtime/locations/runtime.ts +251 -159
  448. package/src/runtime/locations/spot-location-claims.ts +110 -112
  449. package/src/runtime/messaging/creation-payload-codec.ts +4 -1
  450. package/src/runtime/messaging/framework-json-v1.ts +34 -15
  451. package/src/runtime/messaging/packet-name.ts +8 -6
  452. package/src/runtime/messaging/payload-codec.ts +70 -50
  453. package/src/runtime/messaging/submission-result.ts +6 -9
  454. package/src/runtime/protocol/service_wire_codec.generated.ts +1376 -159
  455. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +19 -18
  456. package/src/runtime/routing-id.ts +10 -7
  457. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +56 -62
  458. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +23 -20
  459. package/src/runtime/spots/index.ts +595 -564
  460. package/src/runtime/spots/spot-activation-registry.ts +38 -34
  461. package/src/runtime/spots/spot-activation-state.ts +43 -51
  462. package/src/runtime/spots/spot-activation.ts +179 -116
  463. package/src/runtime/spots/spot-actor-admission-coordinator.ts +110 -78
  464. package/src/runtime/spots/spot-actor-join-dispatch.ts +57 -41
  465. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +5 -7
  466. package/src/runtime/spots/spot-actor-membership.ts +25 -27
  467. package/src/runtime/spots/spot-actor-packet-dispatch.ts +196 -148
  468. package/src/runtime/spots/spot-actor-packet-drain.ts +56 -42
  469. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +37 -39
  470. package/src/runtime/spots/spot-closing.ts +11 -12
  471. package/src/runtime/spots/spot-context.ts +46 -26
  472. package/src/runtime/spots/spot-entry-activation.ts +84 -65
  473. package/src/runtime/spots/spot-handle.ts +17 -15
  474. package/src/runtime/spots/spot-handler-registry.ts +44 -31
  475. package/src/runtime/spots/spot-location-claim.ts +5 -4
  476. package/src/runtime/spots/spot-manager-public.ts +62 -82
  477. package/src/runtime/spots/spot-native-actor-join-admission.ts +20 -16
  478. package/src/runtime/spots/spot-node-autoconnect.ts +54 -61
  479. package/src/runtime/spots/spot-node-runtime-manager.ts +235 -222
  480. package/src/runtime/spots/spot-outbound.ts +47 -59
  481. package/src/runtime/spots/spot-publisher-transport.ts +5 -4
  482. package/src/runtime/spots/spot-remote-codec.ts +66 -65
  483. package/src/runtime/spots/spot-remote-route-codec.ts +61 -41
  484. package/src/runtime/spots/spot-route-packet-dispatch.ts +129 -95
  485. package/src/runtime/spots/spot-route-replies.ts +23 -24
  486. package/src/runtime/spots/spot-route-reply-wire.ts +3 -2
  487. package/src/runtime/spots/spot-routed-actor-admission.ts +37 -27
  488. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +13 -18
  489. package/src/runtime/spots/spot-routed-frame-dispatch.ts +18 -15
  490. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +35 -26
  491. package/src/runtime/spots/spot-routing-internal.ts +1 -4
  492. package/src/runtime/spots/spot-runtime-ports.ts +5 -5
  493. package/src/runtime/spots/spot-serial-executor.ts +5 -9
  494. package/src/runtime/spots/spot-serial-turn-executor.ts +19 -26
  495. package/src/runtime/spots/spot-subscription-dispatch.ts +58 -47
  496. package/src/runtime/spots/spot-timer.ts +103 -91
  497. package/src/runtime/streams/actor-session-binding-registry.ts +421 -292
  498. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +8 -4
  499. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +3 -1
  500. package/src/runtime/streams/bound-actor-relay-sender.ts +60 -50
  501. package/src/runtime/streams/bound-session-response-target.ts +39 -9
  502. package/src/runtime/streams/bound-session-service.ts +52 -42
  503. package/src/runtime/streams/index.ts +183 -100
  504. package/src/runtime/streams/managed-stream.ts +123 -90
  505. package/src/runtime/streams/native-fallback-bound-session.ts +57 -52
  506. package/src/runtime/streams/protocol.ts +115 -46
  507. package/src/runtime/streams/session-actor-coordinator.ts +109 -93
  508. package/src/runtime/streams/session-calls.ts +2 -8
  509. package/src/runtime/streams/session-context.ts +96 -51
  510. package/src/runtime/streams/session-local-actors.ts +19 -3
  511. package/src/runtime/streams/session-provider.ts +5 -7
  512. package/src/runtime/streams/session-serial-executor.ts +7 -6
  513. package/src/runtime/streams/stream-binding-runtime-ports.ts +79 -29
  514. package/src/runtime/streams/stream-frame-factory.ts +59 -40
  515. package/src/runtime/streams/stream-session-runtime.ts +317 -214
  516. package/src/runtime/workers/index.ts +68 -29
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZLinkStreamSessionNodeRuntime = exports.ZLinkStreamSessionRuntime = void 0;
4
4
  const framework_errors_internal_1 = require("../framework-errors-internal");
5
- const contracts_1 = require("../../contracts");
6
5
  const internal_event_contracts_1 = require("../diagnostics/internal-event-contracts");
7
6
  const ZLinkDispatchOptions_1 = require("../../contracts/Dispatch/ZLinkDispatchOptions");
8
7
  const abort_1 = require("../abort");
9
8
  const channels_1 = require("../channels");
9
+ const bound_session_response_target_1 = require("./bound-session-response-target");
10
10
  const diagnostics_1 = require("../diagnostics");
11
11
  const payload_codec_1 = require("../messaging/payload-codec");
12
12
  const protocol_1 = require("./protocol");
@@ -122,12 +122,14 @@ class ZLinkStreamSessionRuntime {
122
122
  terminalOwner?.close();
123
123
  };
124
124
  if (decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Control) {
125
- if ((0, protocol_1.messageToBytes)(payload).length === 0
126
- && (decodedHeader.name === protocol_1.ZLINK_STREAM_HEARTBEAT_PONG
127
- || decodedHeader.name === protocol_1.ZLINK_STREAM_HEARTBEAT_PING)) {
128
- void this.handleControl(decodedHeader, payload).catch(error => {
125
+ if ((0, protocol_1.messageToBytes)(payload).length === 0 &&
126
+ (decodedHeader.name === protocol_1.ZLINK_STREAM_HEARTBEAT_PONG ||
127
+ decodedHeader.name === protocol_1.ZLINK_STREAM_HEARTBEAT_PING)) {
128
+ void this.handleControl(decodedHeader, payload)
129
+ .catch((error) => {
129
130
  this.options.onError?.(error);
130
- }).finally(() => {
131
+ })
132
+ .finally(() => {
131
133
  applicationJobPermit?.releaseAfterInternalProcessing();
132
134
  payload.close();
133
135
  releaseTerminal();
@@ -152,8 +154,8 @@ class ZLinkStreamSessionRuntime {
152
154
  }, () => this.traceShutdownDrop(decodedHeader));
153
155
  return;
154
156
  }
155
- if (decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Response
156
- || decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Error) {
157
+ if (decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Response ||
158
+ decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Error) {
157
159
  this.enqueueInfrastructure(async () => {
158
160
  try {
159
161
  await this.dispatchPacket(payload, decodedHeader);
@@ -211,12 +213,12 @@ class ZLinkStreamSessionRuntime {
211
213
  if (forcedClose)
212
214
  return;
213
215
  this.livenessClock.setTimer(() => {
214
- if (this.disposed
215
- || this.disconnected
216
- || !this.context.isExactRetiredActorBinding(actor, retiredSession)) {
216
+ if (this.disposed ||
217
+ this.disconnected ||
218
+ !this.context.isExactRetiredActorBinding(actor, retiredSession)) {
217
219
  return;
218
220
  }
219
- void this.close().catch(error => this.options.onError?.(error));
221
+ void this.close().catch((error) => this.options.onError?.(error));
220
222
  }, ZLINK_STREAM_ACTOR_BINDING_REPLACEMENT_CLOSE_DELAY_MS);
221
223
  };
222
224
  const completeCallback = () => {
@@ -239,15 +241,14 @@ class ZLinkStreamSessionRuntime {
239
241
  completeCallback();
240
242
  };
241
243
  callbackDeadlineTimer = this.livenessClock.setTimer(() => {
242
- if (this.disposed
243
- || this.disconnected
244
- || !this.context.isExactRetiredActorBinding(actor, retiredSession)) {
244
+ if (this.disposed ||
245
+ this.disconnected ||
246
+ !this.context.isExactRetiredActorBinding(actor, retiredSession)) {
245
247
  return;
246
248
  }
247
249
  forcedClose = true;
248
- void this.close().catch(error => this.options.onError?.(error));
249
- }, this.options.replacementCallbackTimeoutMs
250
- ?? ZLINK_STREAM_ACTOR_BINDING_REPLACEMENT_CALLBACK_TIMEOUT_MS);
250
+ void this.close().catch((error) => this.options.onError?.(error));
251
+ }, this.options.replacementCallbackTimeoutMs ?? ZLINK_STREAM_ACTOR_BINDING_REPLACEMENT_CALLBACK_TIMEOUT_MS);
251
252
  const callback = session.onActorBindingReplaced;
252
253
  if (callback === undefined) {
253
254
  completeCallback();
@@ -328,6 +329,40 @@ class ZLinkStreamSessionRuntime {
328
329
  if (this.context.tryCompleteResponse(decodedHeader, dispatchPayload)) {
329
330
  return;
330
331
  }
332
+ const dispatchActor = this.context.actorForSlot(decodedHeader.actorSlot);
333
+ if (decodedHeader.actorSlot !== undefined && dispatchActor === undefined) {
334
+ const staleFlowEnabled = this.options.dispatchErrors?.flow.flowCreationEnabled() ?? true;
335
+ await (0, flow_context_1.runWithFlow)((0, flow_context_1.createInboundFlow)(decodedHeader.flowId, decodedHeader.flowOrigin, staleFlowEnabled, staleFlowEnabled ? this.stream.sessionId : undefined), async () => {
336
+ if (decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Request) {
337
+ const error = (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.InvalidOperation, 'Actor slot is not a current binding.');
338
+ this.options.dispatchErrors?.report({
339
+ surface: ZLinkDispatchOptions_1.ZLinkDispatchErrorSurface.StreamSession,
340
+ messageKind: ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Request,
341
+ reason: ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.StaleTarget,
342
+ action: ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorAction.ReplyError,
343
+ packetName: decodedHeader.name,
344
+ sourceRid: this.context.routingId === undefined ? undefined : String(this.context.routingId),
345
+ correlationId: decodedHeader.correlationId,
346
+ flowId: decodedHeader.flowId,
347
+ flowOrigin: decodedHeader.flowOrigin,
348
+ error
349
+ });
350
+ await this.replyDispatchError(decodedHeader, error);
351
+ }
352
+ else {
353
+ (0, diagnostics_1.flowIfEnabled)(this.options.dispatchErrors?.flow, ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Dropped)?.trace({
354
+ outcome: ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Dropped,
355
+ surface: ZLinkDispatchOptions_1.ZLinkDispatchErrorSurface.StreamSession,
356
+ messageKind: ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send,
357
+ packetName: decodedHeader.name,
358
+ correlationId: decodedHeader.correlationId,
359
+ sourceRid: this.context.routingId === undefined ? undefined : String(this.context.routingId),
360
+ errorReason: ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.StaleTarget
361
+ });
362
+ }
363
+ });
364
+ return;
365
+ }
331
366
  this.context.enterDispatch(decodedHeader);
332
367
  enteredDispatch = true;
333
368
  const session = await this.requireSession();
@@ -336,7 +371,8 @@ class ZLinkStreamSessionRuntime {
336
371
  : ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send;
337
372
  const streamCorr = decodedHeader.correlationId;
338
373
  const inboundHeader = decodedHeader;
339
- await (0, flow_context_1.runWithFlow)((0, flow_context_1.createInboundFlow)(inboundHeader.flowId, inboundHeader.flowOrigin, this.options.dispatchErrors?.flow.flowCreationEnabled() ?? true), async () => {
374
+ const flowEnabled = this.options.dispatchErrors?.flow.flowCreationEnabled() ?? true;
375
+ await (0, flow_context_1.runWithFlow)((0, flow_context_1.createInboundFlow)(inboundHeader.flowId, inboundHeader.flowOrigin, flowEnabled, flowEnabled ? this.stream.sessionId : undefined), async () => {
340
376
  (0, diagnostics_1.flowIfEnabled)(this.options.dispatchErrors?.flow, ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Received)?.trace({
341
377
  outcome: ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Received,
342
378
  surface: ZLinkDispatchOptions_1.ZLinkDispatchErrorSurface.StreamSession,
@@ -362,7 +398,7 @@ class ZLinkStreamSessionRuntime {
362
398
  correlationId: streamCorr,
363
399
  sourceRid: this.context.routingId === undefined ? undefined : String(this.context.routingId)
364
400
  });
365
- await session.onDispatch?.((0, session_context_1.createSessionDispatchContext)(inboundHeader), (0, payload_codec_1.wrapFrameworkPayloadMessage)(dispatchPayload, this.options.messageSerializers, (0, protocol_1.streamCodecContentType)(inboundHeader.codec), inboundHeader.name));
401
+ await session.onDispatch?.((0, session_context_1.createSessionDispatchContext)(inboundHeader, dispatchActor), (0, payload_codec_1.wrapFrameworkPayloadMessage)(dispatchPayload, this.options.messageSerializers, (0, protocol_1.streamCodecContentType)(inboundHeader.codec), inboundHeader.name));
366
402
  if (streamKind === ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send) {
367
403
  (0, diagnostics_1.flowIfEnabled)(this.options.dispatchErrors?.flow, ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Completed)?.trace({
368
404
  outcome: ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Completed,
@@ -429,7 +465,7 @@ class ZLinkStreamSessionRuntime {
429
465
  }
430
466
  this.livenessTimer = this.livenessClock.setTimer(() => {
431
467
  this.livenessTimer = undefined;
432
- this.serial.executeInfrastructure(async () => this.runLivenessCheck(), {}, error => this.options.onError?.(error));
468
+ this.serial.executeInfrastructure(async () => this.runLivenessCheck(), {}, (error) => this.options.onError?.(error));
433
469
  }, ZLINK_STREAM_HEARTBEAT_INTERVAL_MS);
434
470
  }
435
471
  async runLivenessCheck() {
@@ -441,8 +477,8 @@ class ZLinkStreamSessionRuntime {
441
477
  await this.closeForLiveness(protocol_1.ZLinkStreamCloseReasonCode.IdleTimeout, 'idle_timeout', 'Application idle timeout.');
442
478
  return;
443
479
  }
444
- if (this.awaitingPongSince !== undefined
445
- && now - this.awaitingPongSince >= ZLINK_STREAM_HEARTBEAT_TIMEOUT_MS) {
480
+ if (this.awaitingPongSince !== undefined &&
481
+ now - this.awaitingPongSince >= ZLINK_STREAM_HEARTBEAT_TIMEOUT_MS) {
446
482
  await this.closeForLiveness(protocol_1.ZLinkStreamCloseReasonCode.HeartbeatTimeout, 'heartbeat_timeout', 'Heartbeat timeout.');
447
483
  return;
448
484
  }
@@ -477,14 +513,7 @@ class ZLinkStreamSessionRuntime {
477
513
  // record (spec 26 §2.2) and confuse the peer's reply matching.
478
514
  return;
479
515
  }
480
- const message = this.context.createJsonReplyFrameMessage(header, protocol_1.ZLinkStreamMessageKind.Error, new Map(), false, {
481
- code: error instanceof contracts_1.ZLinkFrameworkException
482
- ? contracts_1.ZLinkFrameworkErrorKind[error.kind]
483
- : error instanceof Error
484
- ? error.constructor.name
485
- : 'RemoteError',
486
- message: error instanceof Error ? error.message : String(error)
487
- });
516
+ const message = this.context.createJsonReplyFrameMessage(header, protocol_1.ZLinkStreamMessageKind.Error, new Map(), false, (0, bound_session_response_target_1.boundSessionErrorPayload)(error));
488
517
  try {
489
518
  if (!this.context.stream.writeRaw(message, ZLINK_SEND_DONT_WAIT)) {
490
519
  throw new Error('Client stream error reply send failed.');
@@ -505,8 +534,7 @@ class ZLinkStreamSessionRuntime {
505
534
  * languages' write-path trace.
506
535
  */
507
536
  traceFrameWritten(kind, packetName, correlationId) {
508
- const reply = kind === protocol_1.ZLinkStreamMessageKind.Response
509
- || kind === protocol_1.ZLinkStreamMessageKind.Error;
537
+ const reply = kind === protocol_1.ZLinkStreamMessageKind.Response || kind === protocol_1.ZLinkStreamMessageKind.Error;
510
538
  const outcome = reply ? ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Replied : ZLinkDispatchOptions_1.ZLinkRuntimeMessageFlowOutcome.Sent;
511
539
  (0, diagnostics_1.flowIfEnabled)(this.options.dispatchErrors?.flow, outcome)?.trace({
512
540
  outcome,
@@ -518,7 +546,8 @@ class ZLinkStreamSessionRuntime {
518
546
  : ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send,
519
547
  packetName: packetName.length === 0 ? undefined : packetName,
520
548
  correlationId,
521
- sourceRid: this.context.routingId === undefined ? undefined : String(this.context.routingId)
549
+ sourceRid: this.context.routingId === undefined ? undefined : String(this.context.routingId),
550
+ streamSessionId: this.stream.sessionId
522
551
  });
523
552
  }
524
553
  async complete(error, notifyDisconnected) {
@@ -547,14 +576,16 @@ class ZLinkStreamSessionRuntime {
547
576
  return;
548
577
  this.disconnectQueued = true;
549
578
  this.stopLivenessChecks();
550
- void this.serial.executeFinal(async () => {
579
+ void this.serial
580
+ .executeFinal(async () => {
551
581
  this.disconnectQueued = false;
552
582
  if (this.disconnected)
553
583
  return;
554
584
  this.stream.markTransportClosed();
555
585
  this.disconnected = true;
556
586
  await this.complete(error, true);
557
- }).catch(() => {
587
+ })
588
+ .catch(() => {
558
589
  this.disconnectQueued = false;
559
590
  });
560
591
  }
@@ -625,6 +656,7 @@ class ZLinkStreamSessionRuntime {
625
656
  packetName: header.name === '' ? undefined : header.name,
626
657
  correlationId: header.correlationId,
627
658
  sourceRid: this.context.routingId === undefined ? undefined : String(this.context.routingId),
659
+ streamSessionId: this.stream.sessionId,
628
660
  flowId: flowEnabled ? header.flowId : undefined,
629
661
  flowOrigin: flowEnabled ? header.flowOrigin : undefined,
630
662
  errorReason: ZLinkDispatchOptions_1.ZLinkRuntimeDispatchErrorReason.Shutdown
@@ -634,11 +666,16 @@ class ZLinkStreamSessionRuntime {
634
666
  exports.ZLinkStreamSessionRuntime = ZLinkStreamSessionRuntime;
635
667
  function streamShutdownDropMessageKind(kind) {
636
668
  switch (kind) {
637
- case protocol_1.ZLinkStreamMessageKind.Request: return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Request;
638
- case protocol_1.ZLinkStreamMessageKind.Response: return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Response;
639
- case protocol_1.ZLinkStreamMessageKind.Error: return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Error;
640
- case protocol_1.ZLinkStreamMessageKind.Control: return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Control;
641
- default: return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send;
669
+ case protocol_1.ZLinkStreamMessageKind.Request:
670
+ return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Request;
671
+ case protocol_1.ZLinkStreamMessageKind.Response:
672
+ return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Response;
673
+ case protocol_1.ZLinkStreamMessageKind.Error:
674
+ return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Error;
675
+ case protocol_1.ZLinkStreamMessageKind.Control:
676
+ return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Control;
677
+ default:
678
+ return ZLinkDispatchOptions_1.ZLinkDispatchMessageKind.Send;
642
679
  }
643
680
  }
644
681
  class ZLinkStreamSessionNodeRuntime {
@@ -668,17 +705,15 @@ class ZLinkStreamSessionNodeRuntime {
668
705
  return;
669
706
  }
670
707
  const monitor = this.options.monitor;
671
- monitor?.onEvent(event => this.onMonitorEvent(event));
672
- const running = this.runReceiveLoop(this.receiveAbortController.signal)
673
- .catch((error) => {
708
+ monitor?.onEvent((event) => this.onMonitorEvent(event));
709
+ const running = this.runReceiveLoop(this.receiveAbortController.signal).catch((error) => {
674
710
  if (!this.stopped) {
675
711
  this.options.onError?.(error);
676
712
  }
677
713
  });
678
714
  this.receiveLoop = running;
679
715
  if (monitor !== undefined) {
680
- this.monitorLoop = this.runMonitorLoop(monitor, this.receiveAbortController.signal)
681
- .catch((error) => {
716
+ this.monitorLoop = this.runMonitorLoop(monitor, this.receiveAbortController.signal).catch((error) => {
682
717
  if (!this.stopped) {
683
718
  this.options.onError?.(error);
684
719
  }
@@ -809,8 +844,8 @@ class ZLinkStreamSessionNodeRuntime {
809
844
  continue;
810
845
  }
811
846
  this.receiveWorkSinceYield += 1;
812
- if (this.receiveWorkSinceYield >= ZLINK_STREAM_RECEIVE_FRAME_BATCH_LIMIT
813
- && !this.isReceiveStopped(signal)) {
847
+ if (this.receiveWorkSinceYield >= ZLINK_STREAM_RECEIVE_FRAME_BATCH_LIMIT &&
848
+ !this.isReceiveStopped(signal)) {
814
849
  this.receiveWorkSinceYield = 0;
815
850
  await new Promise((resolve) => setImmediate(resolve));
816
851
  }
@@ -835,16 +870,16 @@ class ZLinkStreamSessionNodeRuntime {
835
870
  this.applyPendingConnectionMetadata(session);
836
871
  const decodedHeader = (0, protocol_1.decodeStreamHeader)(header.data(), this.options.dispatchErrors?.flow.flowCreationEnabled() ?? true);
837
872
  payload = (0, stream_message_utils_1.ownedMessage)(body.data());
838
- const terminalCompletion = decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Response
839
- || decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Error;
873
+ const terminalCompletion = decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Response ||
874
+ decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Error;
840
875
  const applicationPermit = terminalCompletion ? undefined : permit;
841
876
  if (terminalCompletion) {
842
877
  permit.releaseAfterInternalProcessing();
843
878
  releasePermitOnFailure = false;
844
879
  }
845
880
  else {
846
- if (decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Send
847
- || decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Request) {
881
+ if (decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Send ||
882
+ decodedHeader.kind === protocol_1.ZLinkStreamMessageKind.Request) {
848
883
  permit.markApplicationQueued();
849
884
  }
850
885
  }
@@ -949,8 +984,7 @@ class ZLinkStreamSessionNodeRuntime {
949
984
  session.enqueueDisconnected(error);
950
985
  return;
951
986
  }
952
- if (event.routingId === undefined
953
- && !streamMonitorHasEndpoint(event)) {
987
+ if (event.routingId === undefined && !streamMonitorHasEndpoint(event)) {
954
988
  this.enqueueEndpointlessDisconnect(error);
955
989
  }
956
990
  }
@@ -960,9 +994,9 @@ class ZLinkStreamSessionNodeRuntime {
960
994
  }
961
995
  }
962
996
  applyPendingConnectionMetadata(session) {
963
- if (session.stream.localAddr !== undefined
964
- || session.stream.remoteAddr !== undefined
965
- || this.pendingConnectionMetadataCount === 0) {
997
+ if (session.stream.localAddr !== undefined ||
998
+ session.stream.remoteAddr !== undefined ||
999
+ this.pendingConnectionMetadataCount === 0) {
966
1000
  return;
967
1001
  }
968
1002
  const metadata = this.takePendingConnectionMetadata();
@@ -975,16 +1009,16 @@ class ZLinkStreamSessionNodeRuntime {
975
1009
  hasPendingConnectionMetadata(endpointKey) {
976
1010
  for (let index = this.pendingConnectionMetadataHead; index < this.pendingConnectionMetadata.length; index += 1) {
977
1011
  const metadata = this.pendingConnectionMetadata[index];
978
- if (metadata !== undefined
979
- && streamMonitorEndpointKey(metadata.localAddr, metadata.remoteAddr) === endpointKey) {
1012
+ if (metadata !== undefined &&
1013
+ streamMonitorEndpointKey(metadata.localAddr, metadata.remoteAddr) === endpointKey) {
980
1014
  return true;
981
1015
  }
982
1016
  }
983
1017
  return false;
984
1018
  }
985
1019
  takePendingConnectionMetadata() {
986
- while (this.pendingConnectionMetadataHead < this.pendingConnectionMetadata.length
987
- && this.pendingConnectionMetadata[this.pendingConnectionMetadataHead] === undefined) {
1020
+ while (this.pendingConnectionMetadataHead < this.pendingConnectionMetadata.length &&
1021
+ this.pendingConnectionMetadata[this.pendingConnectionMetadataHead] === undefined) {
988
1022
  this.pendingConnectionMetadataHead += 1;
989
1023
  }
990
1024
  const metadata = this.pendingConnectionMetadata[this.pendingConnectionMetadataHead];
@@ -1001,8 +1035,8 @@ class ZLinkStreamSessionNodeRuntime {
1001
1035
  this.pendingConnectionMetadata.length = 0;
1002
1036
  this.pendingConnectionMetadataHead = 0;
1003
1037
  }
1004
- else if (this.pendingConnectionMetadataHead >= 1024
1005
- && this.pendingConnectionMetadataHead * 2 >= this.pendingConnectionMetadata.length) {
1038
+ else if (this.pendingConnectionMetadataHead >= 1024 &&
1039
+ this.pendingConnectionMetadataHead * 2 >= this.pendingConnectionMetadata.length) {
1006
1040
  this.pendingConnectionMetadata.splice(0, this.pendingConnectionMetadataHead);
1007
1041
  this.pendingConnectionMetadataHead = 0;
1008
1042
  }
@@ -1012,8 +1046,8 @@ class ZLinkStreamSessionNodeRuntime {
1012
1046
  this.unaddressedMonitorSessionCount += 1;
1013
1047
  }
1014
1048
  takeUnaddressedMonitorSession() {
1015
- while (this.unaddressedMonitorSessionHead < this.unaddressedMonitorSessions.length
1016
- && this.unaddressedMonitorSessions[this.unaddressedMonitorSessionHead] === undefined) {
1049
+ while (this.unaddressedMonitorSessionHead < this.unaddressedMonitorSessions.length &&
1050
+ this.unaddressedMonitorSessions[this.unaddressedMonitorSessionHead] === undefined) {
1017
1051
  this.unaddressedMonitorSessionHead += 1;
1018
1052
  }
1019
1053
  const sessionId = this.unaddressedMonitorSessions[this.unaddressedMonitorSessionHead];
@@ -1026,8 +1060,8 @@ class ZLinkStreamSessionNodeRuntime {
1026
1060
  this.unaddressedMonitorSessions.length = 0;
1027
1061
  this.unaddressedMonitorSessionHead = 0;
1028
1062
  }
1029
- else if (this.unaddressedMonitorSessionHead >= 1024
1030
- && this.unaddressedMonitorSessionHead * 2 >= this.unaddressedMonitorSessions.length) {
1063
+ else if (this.unaddressedMonitorSessionHead >= 1024 &&
1064
+ this.unaddressedMonitorSessionHead * 2 >= this.unaddressedMonitorSessions.length) {
1031
1065
  this.unaddressedMonitorSessions.splice(0, this.unaddressedMonitorSessionHead);
1032
1066
  this.unaddressedMonitorSessionHead = 0;
1033
1067
  }
@@ -1035,9 +1069,9 @@ class ZLinkStreamSessionNodeRuntime {
1035
1069
  }
1036
1070
  firstUnaddressedSession() {
1037
1071
  for (const session of this.sessions.values()) {
1038
- if (!session.isDisconnected
1039
- && session.stream.localAddr === undefined
1040
- && session.stream.remoteAddr === undefined) {
1072
+ if (!session.isDisconnected &&
1073
+ session.stream.localAddr === undefined &&
1074
+ session.stream.remoteAddr === undefined) {
1041
1075
  return session;
1042
1076
  }
1043
1077
  }
@@ -1073,9 +1107,9 @@ class ZLinkStreamSessionNodeRuntime {
1073
1107
  let match;
1074
1108
  let matchCount = 0;
1075
1109
  for (const session of this.sessions.values()) {
1076
- if (session.isDisconnected
1077
- || session.stream.localAddr !== event.localAddr
1078
- || session.stream.remoteAddr !== event.remoteAddr) {
1110
+ if (session.isDisconnected ||
1111
+ session.stream.localAddr !== event.localAddr ||
1112
+ session.stream.remoteAddr !== event.remoteAddr) {
1079
1113
  continue;
1080
1114
  }
1081
1115
  match = session;
@@ -1120,11 +1154,11 @@ class ZLinkStreamSessionNodeRuntime {
1120
1154
  // queued. Wake the recv loop instead of waiting for its idle backoff.
1121
1155
  this.wakeReceiveLoop();
1122
1156
  setImmediate(() => {
1123
- if (pending.cancelled
1124
- || this.stopped
1125
- || this.pendingEndpointlessDisconnect !== pending
1126
- || this.activityVersion !== pending.activityVersion
1127
- || this.sessions.get(pending.session.stream.sessionId) !== pending.session) {
1157
+ if (pending.cancelled ||
1158
+ this.stopped ||
1159
+ this.pendingEndpointlessDisconnect !== pending ||
1160
+ this.activityVersion !== pending.activityVersion ||
1161
+ this.sessions.get(pending.session.stream.sessionId) !== pending.session) {
1128
1162
  return;
1129
1163
  }
1130
1164
  this.pendingEndpointlessDisconnect = undefined;
@@ -89,7 +89,8 @@ class ZLinkCpuWorkerPool {
89
89
  try {
90
90
  this.ensureMinimumSlots();
91
91
  while (this.queueCount > 0) {
92
- const slot = this.findIdleSlot() ?? (this.slots.size < this.options.maxThreads ? this.createSlot() : undefined);
92
+ const slot = this.findIdleSlot() ??
93
+ (this.slots.size < this.options.maxThreads ? this.createSlot() : undefined);
93
94
  if (slot === undefined)
94
95
  return;
95
96
  const job = this.takeQueuedJob();
@@ -241,7 +242,9 @@ class ZLinkCpuWorkerPool {
241
242
  clearTimeout(slot.idleTimer);
242
243
  slot.idleTimer = setTimeout(() => {
243
244
  slot.idleTimer = undefined;
244
- if (slot.job === undefined && !slot.terminating && this.slots.size > this.options.minThreads) {
245
+ if (slot.job === undefined &&
246
+ !slot.terminating &&
247
+ this.slots.size > this.options.minThreads) {
245
248
  this.terminateSlot(slot);
246
249
  }
247
250
  }, this.options.idleTimeoutMs);
@@ -357,7 +360,9 @@ class ZLinkIoWorkerRuntime {
357
360
  };
358
361
  signal.addEventListener('abort', abortListener, { once: true });
359
362
  }
360
- Promise.resolve().then(() => work(controller.signal)).then((value) => settle(() => resolve(value)), (error) => settle(() => reject(workerFailed(error))));
363
+ Promise.resolve()
364
+ .then(() => work(controller.signal))
365
+ .then((value) => settle(() => resolve(value)), (error) => settle(() => reject(workerFailed(error))));
361
366
  });
362
367
  }
363
368
  }
@@ -438,7 +443,13 @@ class ZLinkSerialDeliveredPromise {
438
443
  return this.then(undefined, onrejected);
439
444
  }
440
445
  finally(onfinally) {
441
- return this.then((value) => this.serial.execute(() => { onfinally?.(); return value; }), (reason) => this.serial.execute(() => { onfinally?.(); throw reason; }));
446
+ return this.then((value) => this.serial.execute(() => {
447
+ onfinally?.();
448
+ return value;
449
+ }), (reason) => this.serial.execute(() => {
450
+ onfinally?.();
451
+ throw reason;
452
+ }));
442
453
  }
443
454
  }
444
455
  function workerTimedOut(timeoutMs) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zlink-systems/framework",
3
- "version": "0.21.0",
3
+ "version": "0.23.0",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "repository": {
6
6
  "type": "git",
@@ -19,7 +19,7 @@
19
19
  "dependencies": {
20
20
  "@opentelemetry/api": "^1.9.1",
21
21
  "@opentelemetry/api-logs": "^0.221.0",
22
- "@zlink-systems/stream-wire": "0.21.0",
23
- "@zlink-systems/zlink": "1.2.1"
22
+ "@zlink-systems/stream-wire": "0.23.0",
23
+ "@zlink-systems/zlink": "1.4.0"
24
24
  }
25
25
  }
@@ -1,5 +1,10 @@
1
1
  import type { RoutingId } from '../Common';
2
- import type { ZLinkChannelRequestCall, ZLinkPublishCall, ZLinkRequestCall, ZLinkSendCall } from './Calls';
2
+ import type {
3
+ ZLinkChannelRequestCall,
4
+ ZLinkPublishCall,
5
+ ZLinkRequestCall,
6
+ ZLinkSendCall
7
+ } from './Calls';
3
8
 
4
9
  export interface ZLinkRouteClient {
5
10
  sendToNode(meshName: string, targetNodeRid: RoutingId, message: unknown): ZLinkSendCall;
@@ -108,11 +108,11 @@ export function readZLinkMessageDeclaredType(message: ZLinkMessage): Type | unde
108
108
  */
109
109
  export function materializeZLinkMessageValue<T>(value: T, type?: Type<T>): T {
110
110
  if (
111
- type === undefined
112
- || (type as unknown) === Object
113
- || value === null
114
- || typeof value !== 'object'
115
- || Array.isArray(value)
111
+ type === undefined ||
112
+ (type as unknown) === Object ||
113
+ value === null ||
114
+ typeof value !== 'object' ||
115
+ Array.isArray(value)
116
116
  ) {
117
117
  return value;
118
118
  }
@@ -26,7 +26,7 @@ class ImmutableMetadataMap implements ReadonlyMap<string, string> {
26
26
  constructor(values: ReadonlyMap<string, string> | Readonly<Record<string, string>>) {
27
27
  this.#values = new Map(
28
28
  typeof (values as ReadonlyMap<string, string>)[Symbol.iterator] === 'function'
29
- ? values as ReadonlyMap<string, string>
29
+ ? (values as ReadonlyMap<string, string>)
30
30
  : Object.entries(values)
31
31
  );
32
32
  }
@@ -67,8 +67,9 @@ class ImmutableMetadataMap implements ReadonlyMap<string, string> {
67
67
  }
68
68
  }
69
69
 
70
- export const ZLinkMessageMetadataEmpty: ZLinkMessageMetadata =
71
- Object.freeze(new ImmutableZLinkMessageMetadata());
70
+ export const ZLinkMessageMetadataEmpty: ZLinkMessageMetadata = Object.freeze(
71
+ new ImmutableZLinkMessageMetadata()
72
+ );
72
73
 
73
74
  export function zlinkMessageMetadata(
74
75
  values: ReadonlyMap<string, string> | Readonly<Record<string, string>>
@@ -1,18 +1,10 @@
1
1
  import type { ZLinkActor, ZLinkActorFactory } from '../Actors';
2
- import type {
3
- ZLinkEntrySpot,
4
- ZLinkInstanceSpot,
5
- ZLinkSpot
6
- } from '../Spots';
2
+ import type { ZLinkEntrySpot, ZLinkInstanceSpot, ZLinkSpot } from '../Spots';
7
3
  import type { ZLinkSession, ZLinkSessionFactory, ZLinkStreamCompressionCodec } from '../Streams';
8
4
  import type { ZLinkEndpointConnections } from './Connections';
9
5
  import type { ZLinkCodecRegistryBuilder } from '../Codecs';
10
6
  import type { ZLinkDispatchOptionsBuilder, ZLinkInboundDispatchOptions } from '../Dispatch';
11
- import type {
12
- ZLinkLocationOptions,
13
- ZLinkLocationStore,
14
- ZLinkRelocationStore
15
- } from '../Locations';
7
+ import type { ZLinkLocationOptions, ZLinkLocationStore, ZLinkRelocationStore } from '../Locations';
16
8
  import type { RoutingId, Type } from '../Common';
17
9
  import type { ZLinkWorkerOptions } from './RegistrationTypes';
18
10
  import type { ZLinkSpotPublisherConfig } from './Configs';
@@ -71,7 +63,9 @@ export interface ZLinkClientServerChannelServerBuilder {
71
63
  setWeight(weight: number): this;
72
64
  addHandlerGroup(groupName: string): this;
73
65
  addSendHandler<TMessage>(handlerType: Type<ZLinkSendHandler<TMessage>>): this;
74
- addRequestHandler<TRequest, TReply>(handlerType: Type<ZLinkRequestHandler<TRequest, TReply>>): this;
66
+ addRequestHandler<TRequest, TReply>(
67
+ handlerType: Type<ZLinkRequestHandler<TRequest, TReply>>
68
+ ): this;
75
69
  }
76
70
 
77
71
  export interface ZLinkMeshPeerConnection {
@@ -97,7 +91,9 @@ export interface ZLinkMeshChannelServerBuilder {
97
91
  setWeight(weight: number): this;
98
92
  addHandlerGroup(groupName: string): this;
99
93
  addSendHandler<TMessage>(handlerType: Type<ZLinkSendHandler<TMessage>>): this;
100
- addRequestHandler<TRequest, TReply>(handlerType: Type<ZLinkRequestHandler<TRequest, TReply>>): this;
94
+ addRequestHandler<TRequest, TReply>(
95
+ handlerType: Type<ZLinkRequestHandler<TRequest, TReply>>
96
+ ): this;
101
97
  }
102
98
 
103
99
  export interface ZLinkMeshNodeSocketConfig {
@@ -130,7 +126,9 @@ export interface ZLinkMeshNodeBuilder {
130
126
  setDefaultRequestTimeout(timeoutMs: number): this;
131
127
  objects(): ZLinkMeshObjectRoleBuilder;
132
128
  addRouteSendHandler<TMessage>(handlerType: Type<ZLinkRouteSendHandler<TMessage>>): this;
133
- addRouteRequestHandler<TRequest, TReply>(handlerType: Type<ZLinkRouteRequestHandler<TRequest, TReply>>): this;
129
+ addRouteRequestHandler<TRequest, TReply>(
130
+ handlerType: Type<ZLinkRouteRequestHandler<TRequest, TReply>>
131
+ ): this;
134
132
  }
135
133
 
136
134
  export interface ZLinkNetworkOptions {
@@ -196,5 +194,7 @@ export interface ZLinkStreamNodeBuilder {
196
194
  configureSocket(): ZLinkStreamSocketConfig;
197
195
  enableActorDispatch(): this;
198
196
  setTlsServer(certificatePath: string, keyPath: string, requireClientCertificate?: boolean): this;
199
- registerSession<TSession extends ZLinkSession>(sessionType: Type<TSession> | Type<ZLinkSessionFactory<TSession>>): this;
197
+ registerSession<TSession extends ZLinkSession>(
198
+ sessionType: Type<TSession> | Type<ZLinkSessionFactory<TSession>>
199
+ ): this;
200
200
  }
@@ -1,8 +1,6 @@
1
1
  import { ZLinkConfigurationException } from './ConfigurationException';
2
2
 
3
- const mediaTypePunctuation = new Set(
4
- [..."!#$%&'*+-.^_`|~"].map((value) => value.charCodeAt(0))
5
- );
3
+ const mediaTypePunctuation = new Set([..."!#$%&'*+-.^_`|~"].map((value) => value.charCodeAt(0)));
6
4
 
7
5
  export function normalizeCodecContentType(contentType: string): string {
8
6
  if (typeof contentType !== 'string') {
@@ -27,9 +25,7 @@ export function normalizeCodecContentType(contentType: string): string {
27
25
  continue;
28
26
  }
29
27
  if (!isTokenCharacter(code)) throw invalidContentType();
30
- normalized += code >= 0x41 && code <= 0x5a
31
- ? String.fromCharCode(code + 0x20)
32
- : value[index]!;
28
+ normalized += code >= 0x41 && code <= 0x5a ? String.fromCharCode(code + 0x20) : value[index]!;
33
29
  }
34
30
  if (slash === -1) throw invalidContentType();
35
31
  return normalized;
@@ -55,10 +51,12 @@ function isOuterWhitespace(code: number): boolean {
55
51
  }
56
52
 
57
53
  function isTokenCharacter(code: number): boolean {
58
- return (code >= 0x30 && code <= 0x39)
59
- || (code >= 0x41 && code <= 0x5a)
60
- || (code >= 0x61 && code <= 0x7a)
61
- || mediaTypePunctuation.has(code);
54
+ return (
55
+ (code >= 0x30 && code <= 0x39) ||
56
+ (code >= 0x41 && code <= 0x5a) ||
57
+ (code >= 0x61 && code <= 0x7a) ||
58
+ mediaTypePunctuation.has(code)
59
+ );
62
60
  }
63
61
 
64
62
  function invalidContentType(): ZLinkConfigurationException {
@@ -1,12 +1,7 @@
1
1
  import type { ZLinkMessageFlowLogMode } from '../Dispatch';
2
2
  import { ZLinkConfigurationException } from './ConfigurationException';
3
3
 
4
- const MESSAGE_FLOW_MODES: ReadonlySet<string> = new Set([
5
- 'off',
6
- 'errors',
7
- 'normal',
8
- 'detailed'
9
- ]);
4
+ const MESSAGE_FLOW_MODES: ReadonlySet<string> = new Set(['off', 'errors', 'normal', 'detailed']);
10
5
 
11
6
  export function requireMessageFlowLogMode(value: unknown): ZLinkMessageFlowLogMode {
12
7
  if (typeof value !== 'string' || !MESSAGE_FLOW_MODES.has(value)) {