@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
@@ -25,9 +25,9 @@ class ServiceTopologyRegistry {
25
25
  }
26
26
  publishLocal(descriptor) {
27
27
  validateDescriptor(descriptor);
28
- if (descriptor.meshName !== this.local.meshName
29
- || descriptor.nodeRoutingId !== this.local.nodeRoutingId
30
- || descriptor.lifecycleGeneration !== this.local.lifecycleGeneration) {
28
+ if (descriptor.meshName !== this.local.meshName ||
29
+ descriptor.nodeRoutingId !== this.local.nodeRoutingId ||
30
+ descriptor.lifecycleGeneration !== this.local.lifecycleGeneration) {
31
31
  throw new TypeError('Published descriptor changes the local node identity.');
32
32
  }
33
33
  if (descriptor.descriptorRevision <= this.local.descriptorRevision) {
@@ -54,12 +54,11 @@ class ServiceTopologyRegistry {
54
54
  return 'meshMismatch';
55
55
  if (descriptor.nodeRoutingId === this.local.nodeRoutingId)
56
56
  return 'invalidDescriptor';
57
- if ((expected?.endpoint !== undefined
58
- && descriptor.advertisedEndpoint !== expected.endpoint)
59
- || (expected?.securityIdentity !== undefined
60
- && descriptor.securityIdentity !== expected.securityIdentity)
61
- || (expected?.lifecycleGeneration !== undefined
62
- && descriptor.lifecycleGeneration !== expected.lifecycleGeneration)) {
57
+ if ((expected?.endpoint !== undefined && descriptor.advertisedEndpoint !== expected.endpoint) ||
58
+ (expected?.securityIdentity !== undefined &&
59
+ descriptor.securityIdentity !== expected.securityIdentity) ||
60
+ (expected?.lifecycleGeneration !== undefined &&
61
+ descriptor.lifecycleGeneration !== expected.lifecycleGeneration)) {
63
62
  return 'invalidDescriptor';
64
63
  }
65
64
  if ((0, route_mesh_connection_policy_1.descriptorConnectionNotRequired)(this.local, descriptor)) {
@@ -71,30 +70,29 @@ class ServiceTopologyRegistry {
71
70
  }
72
71
  this.notRequiredByRid.delete(descriptor.nodeRoutingId);
73
72
  const current = this.peersByRid.get(descriptor.nodeRoutingId);
74
- if (current !== undefined
75
- && current.descriptor.lifecycleGeneration === descriptor.lifecycleGeneration
76
- && descriptor.descriptorRevision > current.descriptor.descriptorRevision
77
- && !sameImmutableDescriptor(current.descriptor, descriptor)) {
73
+ if (current !== undefined &&
74
+ current.descriptor.lifecycleGeneration === descriptor.lifecycleGeneration &&
75
+ descriptor.descriptorRevision > current.descriptor.descriptorRevision &&
76
+ !sameImmutableDescriptor(current.descriptor, descriptor)) {
78
77
  return 'invalidDescriptor';
79
78
  }
80
- if (current !== undefined
81
- && current.descriptor.lifecycleGeneration === descriptor.lifecycleGeneration
82
- && (current.descriptor.descriptorRevision > descriptor.descriptorRevision
83
- || (current.descriptor.descriptorRevision === descriptor.descriptorRevision
84
- && !sameServiceNodeDescriptor(current.descriptor, descriptor)))) {
79
+ if (current !== undefined &&
80
+ current.descriptor.lifecycleGeneration === descriptor.lifecycleGeneration &&
81
+ (current.descriptor.descriptorRevision > descriptor.descriptorRevision ||
82
+ (current.descriptor.descriptorRevision === descriptor.descriptorRevision &&
83
+ !sameServiceNodeDescriptor(current.descriptor, descriptor)))) {
85
84
  return 'staleDescriptor';
86
85
  }
87
- if (current !== undefined
88
- && current.descriptor.lifecycleGeneration === descriptor.lifecycleGeneration
89
- && current.descriptor.descriptorRevision === descriptor.descriptorRevision
90
- && sameServiceNodeDescriptor(current.descriptor, descriptor)
91
- && current.connectionId !== connectionId
86
+ if (current !== undefined &&
87
+ current.descriptor.lifecycleGeneration === descriptor.lifecycleGeneration &&
88
+ current.descriptor.descriptorRevision === descriptor.descriptorRevision &&
89
+ sameServiceNodeDescriptor(current.descriptor, descriptor) &&
90
+ current.connectionId !== connectionId &&
92
91
  // A fallback candidate is only a logical placeholder. Once the
93
92
  // monitor reports the physical connection, its evidence supersedes
94
93
  // candidate ordering so the request path uses the native route.
95
- && !(isUnmonitoredConnectionId(current.connectionId)
96
- && !isUnmonitoredConnectionId(connectionId))
97
- && compareConnectionCandidate(current.connectionDiscriminator, current.connectionId, connectionDiscriminator, connectionId) <= 0) {
94
+ !(isUnmonitoredConnectionId(current.connectionId) && !isUnmonitoredConnectionId(connectionId)) &&
95
+ compareConnectionCandidate(current.connectionDiscriminator, current.connectionId, connectionDiscriminator, connectionId) <= 0) {
98
96
  // Both manual directions can reach admission. The same comparison on
99
97
  // every retry keeps one physical candidate instead of replacing it in
100
98
  // arrival order.
@@ -138,9 +136,9 @@ class ServiceTopologyRegistry {
138
136
  const next = new Map();
139
137
  for (const descriptor of descriptors) {
140
138
  validateDescriptor(descriptor);
141
- if (descriptor.meshName === this.local.meshName
142
- && descriptor.nodeRoutingId !== this.local.nodeRoutingId
143
- && (0, route_mesh_connection_policy_1.descriptorConnectionNotRequired)(this.local, descriptor)) {
139
+ if (descriptor.meshName === this.local.meshName &&
140
+ descriptor.nodeRoutingId !== this.local.nodeRoutingId &&
141
+ (0, route_mesh_connection_policy_1.descriptorConnectionNotRequired)(this.local, descriptor)) {
144
142
  next.set(descriptor.nodeRoutingId, cloneDescriptor(descriptor));
145
143
  }
146
144
  }
@@ -153,9 +151,9 @@ class ServiceTopologyRegistry {
153
151
  }
154
152
  markNotRequired(descriptor) {
155
153
  validateDescriptor(descriptor);
156
- if (descriptor.meshName !== this.local.meshName
157
- || descriptor.nodeRoutingId === this.local.nodeRoutingId
158
- || !(0, route_mesh_connection_policy_1.descriptorConnectionNotRequired)(this.local, descriptor)) {
154
+ if (descriptor.meshName !== this.local.meshName ||
155
+ descriptor.nodeRoutingId === this.local.nodeRoutingId ||
156
+ !(0, route_mesh_connection_policy_1.descriptorConnectionNotRequired)(this.local, descriptor)) {
159
157
  return;
160
158
  }
161
159
  this.peersByRid.delete(descriptor.nodeRoutingId);
@@ -169,17 +167,15 @@ class ServiceTopologyRegistry {
169
167
  }
170
168
  knownDescriptor(nodeRoutingId) {
171
169
  const admitted = this.peersByRid.get(nodeRoutingId)?.descriptor;
172
- const descriptor = admitted
173
- ?? this.notRequiredByRid.get(nodeRoutingId)
174
- ?? this.knownByRid.get(nodeRoutingId);
170
+ const descriptor = admitted ?? this.notRequiredByRid.get(nodeRoutingId) ?? this.knownByRid.get(nodeRoutingId);
175
171
  return descriptor === undefined ? undefined : cloneDescriptor(descriptor);
176
172
  }
177
173
  remember(descriptor) {
178
174
  const current = this.knownByRid.get(descriptor.nodeRoutingId);
179
- if (current === undefined
180
- || descriptor.lifecycleGeneration !== current.lifecycleGeneration
181
- || (descriptor.lifecycleGeneration === current.lifecycleGeneration
182
- && descriptor.descriptorRevision >= current.descriptorRevision)) {
175
+ if (current === undefined ||
176
+ descriptor.lifecycleGeneration !== current.lifecycleGeneration ||
177
+ (descriptor.lifecycleGeneration === current.lifecycleGeneration &&
178
+ descriptor.descriptorRevision >= current.descriptorRevision)) {
183
179
  this.knownByRid.set(descriptor.nodeRoutingId, cloneDescriptor(descriptor));
184
180
  }
185
181
  }
@@ -191,73 +187,79 @@ class ServiceTopologyRegistry {
191
187
  connectionId: 'local',
192
188
  connectionDiscriminator: 'local'
193
189
  };
194
- return [local, ...this.peersByRid.values()].map(peer => ({
190
+ return [local, ...this.peersByRid.values()]
191
+ .map((peer) => ({
195
192
  peer: clonePeer(peer),
196
193
  channel: findChannel(peer.descriptor, channelName)
197
- })).filter((value) => value.channel !== undefined
198
- && value.peer.descriptor.state === 'serving'
199
- && value.channel.weight > 0);
200
- }, value => value.channel.weight, value => value.peer.descriptor.nodeRoutingId, (left, right) => compareOrdinal(left.peer.descriptor.nodeRoutingId, right.peer.descriptor.nodeRoutingId), value => isReady(value.peer))?.peer;
194
+ }))
195
+ .filter((value) => value.channel !== undefined &&
196
+ value.peer.descriptor.state === 'serving' &&
197
+ value.channel.weight > 0);
198
+ }, (value) => value.channel.weight, (value) => value.peer.descriptor.nodeRoutingId, (left, right) => compareOrdinal(left.peer.descriptor.nodeRoutingId, right.peer.descriptor.nodeRoutingId), (value) => isReady(value.peer))?.peer;
201
199
  }
202
200
  selectPlacement(isReady = () => true) {
203
- return this.selectWeightedCycle('placement', () => [...this.peersByRid.values()].filter(peer => {
201
+ return this.selectWeightedCycle('placement', () => [...this.peersByRid.values()]
202
+ .filter((peer) => {
204
203
  const descriptor = peer.descriptor;
205
- return descriptor.state === 'serving'
206
- && descriptor.objectRole === 'server'
207
- && descriptor.placementWeight > 0
208
- && descriptor.activeCapacityUsed < descriptor.activeCapacityLimit
209
- && descriptor.pendingCapacityUsed < descriptor.pendingCapacityLimit;
210
- }).map(clonePeer), peer => peer.descriptor.placementWeight, peer => peer.descriptor.nodeRoutingId, (left, right) => compareOrdinal(left.descriptor.nodeRoutingId, right.descriptor.nodeRoutingId), isReady);
204
+ return (descriptor.state === 'serving' &&
205
+ descriptor.objectRole === 'server' &&
206
+ descriptor.placementWeight > 0 &&
207
+ descriptor.activeCapacityUsed < descriptor.activeCapacityLimit &&
208
+ descriptor.pendingCapacityUsed < descriptor.pendingCapacityLimit);
209
+ })
210
+ .map(clonePeer), (peer) => peer.descriptor.placementWeight, (peer) => peer.descriptor.nodeRoutingId, (left, right) => compareOrdinal(left.descriptor.nodeRoutingId, right.descriptor.nodeRoutingId), isReady);
211
211
  }
212
212
  selectObjectPlacement(stableType, isReady = () => true) {
213
213
  requireText(stableType, 'stableType');
214
214
  return this.selectWeightedCycle(`object:${stableType}`, () => {
215
215
  const capability = `object-type:${stableType}`;
216
- return [this.local, ...this.peersByRid.values()].map(value => 'descriptor' in value ? value.descriptor : value).filter(descriptor => descriptor.state === 'serving'
217
- && descriptor.objectRole === 'server'
218
- && descriptor.placementWeight > 0
219
- && descriptor.activeCapacityUsed < descriptor.activeCapacityLimit
220
- && descriptor.pendingCapacityUsed < descriptor.pendingCapacityLimit
221
- && descriptor.protocolCapabilities.includes(capability)).map(cloneDescriptor);
222
- }, descriptor => descriptor.placementWeight, descriptor => descriptor.nodeRoutingId, (left, right) => compareOrdinal(left.nodeRoutingId, right.nodeRoutingId), isReady);
216
+ return [this.local, ...this.peersByRid.values()]
217
+ .map((value) => ('descriptor' in value ? value.descriptor : value))
218
+ .filter((descriptor) => descriptor.state === 'serving' &&
219
+ descriptor.objectRole === 'server' &&
220
+ descriptor.placementWeight > 0 &&
221
+ descriptor.activeCapacityUsed < descriptor.activeCapacityLimit &&
222
+ descriptor.pendingCapacityUsed < descriptor.pendingCapacityLimit &&
223
+ descriptor.protocolCapabilities.includes(capability))
224
+ .map(cloneDescriptor);
225
+ }, (descriptor) => descriptor.placementWeight, (descriptor) => descriptor.nodeRoutingId, (left, right) => compareOrdinal(left.nodeRoutingId, right.nodeRoutingId), isReady);
223
226
  }
224
227
  objectPlacementStatus(stableType, isReady = () => true) {
225
228
  requireText(stableType, 'stableType');
226
229
  const capability = `object-type:${stableType}`;
227
- const supported = [this.local, ...[...this.peersByRid.values()].map(peer => peer.descriptor)]
228
- .filter(descriptor => descriptor.state === 'serving'
229
- && descriptor.objectRole === 'server'
230
- && descriptor.protocolCapabilities.includes(capability));
230
+ const supported = [
231
+ this.local,
232
+ ...[...this.peersByRid.values()].map((peer) => peer.descriptor)
233
+ ].filter((descriptor) => descriptor.state === 'serving' &&
234
+ descriptor.objectRole === 'server' &&
235
+ descriptor.protocolCapabilities.includes(capability));
231
236
  if (supported.length === 0)
232
237
  return 'unsupported';
233
- const withCapacity = supported.filter(descriptor => descriptor.activeCapacityUsed < descriptor.activeCapacityLimit
234
- && descriptor.pendingCapacityUsed < descriptor.pendingCapacityLimit);
238
+ const withCapacity = supported.filter((descriptor) => descriptor.activeCapacityUsed < descriptor.activeCapacityLimit &&
239
+ descriptor.pendingCapacityUsed < descriptor.pendingCapacityLimit);
235
240
  if (withCapacity.length === 0)
236
241
  return 'capacity';
237
- const weighted = withCapacity.filter(descriptor => descriptor.placementWeight > 0);
242
+ const weighted = withCapacity.filter((descriptor) => descriptor.placementWeight > 0);
238
243
  if (weighted.length === 0)
239
244
  return 'unsupported';
240
245
  return weighted.some(isReady) ? 'available' : 'unavailable';
241
246
  }
242
247
  instanceSpotPlacementTypes() {
243
248
  const prefix = 'instance-spot-type:';
244
- return [...new Set([
245
- this.local,
246
- ...this.peersCore().map(peer => peer.descriptor)
247
- ]
248
- .filter(descriptor => descriptor.state === 'serving'
249
- && descriptor.objectRole === 'server')
250
- .flatMap(descriptor => descriptor.protocolCapabilities)
251
- .filter(capability => capability.startsWith(prefix))
252
- .map(capability => capability.slice(prefix.length))
253
- .filter(stableType => stableType.length > 0))]
254
- .sort();
249
+ return [
250
+ ...new Set([this.local, ...this.peersCore().map((peer) => peer.descriptor)]
251
+ .filter((descriptor) => descriptor.state === 'serving' && descriptor.objectRole === 'server')
252
+ .flatMap((descriptor) => descriptor.protocolCapabilities)
253
+ .filter((capability) => capability.startsWith(prefix))
254
+ .map((capability) => capability.slice(prefix.length))
255
+ .filter((stableType) => stableType.length > 0))
256
+ ].sort();
255
257
  }
256
258
  selectWeightedCycle(key, eligible, weight, identity, compare, accept = () => true) {
257
259
  let entry = this.selections.get(key);
258
260
  if (entry === undefined) {
259
261
  const selection = new service_weighted_selection_1.SmoothWeightedSelection(() => eligible()
260
- .map(value => ({
262
+ .map((value) => ({
261
263
  value,
262
264
  id: identity(value),
263
265
  weight: weight(value)
@@ -266,7 +268,7 @@ class ServiceTopologyRegistry {
266
268
  entry = { selection };
267
269
  this.selections.set(key, entry);
268
270
  }
269
- return entry.selection.select(value => accept(value));
271
+ return entry.selection.select((value) => accept(value));
270
272
  }
271
273
  rebuildSelections() {
272
274
  for (const entry of this.selections.values())
@@ -296,16 +298,16 @@ function validateDescriptor(descriptor) {
296
298
  validateCapacity(descriptor.pendingCapacityLimit, true, 'pendingCapacityLimit');
297
299
  validateCapacity(descriptor.activeCapacityUsed, true, 'activeCapacityUsed');
298
300
  validateCapacity(descriptor.pendingCapacityUsed, true, 'pendingCapacityUsed');
299
- if (descriptor.activeCapacityUsed > descriptor.activeCapacityLimit
300
- || descriptor.pendingCapacityUsed > descriptor.pendingCapacityLimit) {
301
+ if (descriptor.activeCapacityUsed > descriptor.activeCapacityLimit ||
302
+ descriptor.pendingCapacityUsed > descriptor.pendingCapacityLimit) {
301
303
  throw new RangeError('Descriptor capacity use exceeds its limit.');
302
304
  }
303
- validateSortedUnique(descriptor.channels, channel => {
305
+ validateSortedUnique(descriptor.channels, (channel) => {
304
306
  requireText(channel.name, 'channel.name');
305
307
  validatePublicWeight(channel.weight, 'channel.weight');
306
308
  return channel.name;
307
309
  }, 'channels');
308
- validateSortedUnique(descriptor.protocolCapabilities, capability => {
310
+ validateSortedUnique(descriptor.protocolCapabilities, (capability) => {
309
311
  requireText(capability, 'protocol capability');
310
312
  return capability;
311
313
  }, 'protocolCapabilities');
@@ -334,7 +336,7 @@ function validateSortedUnique(values, key, field) {
334
336
  }
335
337
  }
336
338
  function findChannel(descriptor, channelName) {
337
- return descriptor.channels.find(channel => channel.name === channelName);
339
+ return descriptor.channels.find((channel) => channel.name === channelName);
338
340
  }
339
341
  function requireText(value, field) {
340
342
  if (value.length === 0 || value.includes('\0')) {
@@ -344,7 +346,7 @@ function requireText(value, field) {
344
346
  function cloneDescriptor(descriptor) {
345
347
  return {
346
348
  ...descriptor,
347
- channels: descriptor.channels.map(channel => ({ ...channel })),
349
+ channels: descriptor.channels.map((channel) => ({ ...channel })),
348
350
  protocolCapabilities: [...descriptor.protocolCapabilities]
349
351
  };
350
352
  }
@@ -359,19 +361,18 @@ function sameServiceNodeDescriptor(left, right) {
359
361
  return JSON.stringify(toComparable(left)) === JSON.stringify(toComparable(right));
360
362
  }
361
363
  function sameImmutableDescriptor(left, right) {
362
- return left.advertisedEndpoint === right.advertisedEndpoint
363
- && left.securityIdentity === right.securityIdentity
364
- && left.applicationVersion === right.applicationVersion
365
- && arraysEqual(left.protocolCapabilities, right.protocolCapabilities)
366
- && left.objectRole === right.objectRole
367
- && left.activeCapacityLimit === right.activeCapacityLimit
368
- && left.pendingCapacityLimit === right.pendingCapacityLimit
369
- && left.channels.length === right.channels.length
370
- && left.channels.every((channel, index) => channel.name === right.channels[index]?.name);
364
+ return (left.advertisedEndpoint === right.advertisedEndpoint &&
365
+ left.securityIdentity === right.securityIdentity &&
366
+ left.applicationVersion === right.applicationVersion &&
367
+ arraysEqual(left.protocolCapabilities, right.protocolCapabilities) &&
368
+ left.objectRole === right.objectRole &&
369
+ left.activeCapacityLimit === right.activeCapacityLimit &&
370
+ left.pendingCapacityLimit === right.pendingCapacityLimit &&
371
+ left.channels.length === right.channels.length &&
372
+ left.channels.every((channel, index) => channel.name === right.channels[index]?.name));
371
373
  }
372
374
  function arraysEqual(left, right) {
373
- return left.length === right.length
374
- && left.every((value, index) => value === right[index]);
375
+ return left.length === right.length && left.every((value, index) => value === right[index]);
375
376
  }
376
377
  function isUnmonitoredConnectionId(connectionId) {
377
378
  return connectionId.startsWith('unmonitored:');
@@ -33,9 +33,7 @@ class SmoothWeightedSelection {
33
33
  for (let attempts = 0; attempts < this.plan.values.length; attempts += 1) {
34
34
  const cursor = this.plan.cursor;
35
35
  const selected = this.plan.values[cursor];
36
- const nextCursor = cursor + 1 < this.plan.values.length
37
- ? cursor + 1
38
- : this.plan.cycleStart;
36
+ const nextCursor = cursor + 1 < this.plan.values.length ? cursor + 1 : this.plan.cycleStart;
39
37
  this.plan.cursor = nextCursor;
40
38
  if (accept(selected))
41
39
  return selected;
@@ -45,15 +43,12 @@ class SmoothWeightedSelection {
45
43
  }
46
44
  exports.SmoothWeightedSelection = SmoothWeightedSelection;
47
45
  function buildSelectionPlan(eligible, current) {
48
- const candidates = eligible.map(candidate => ({
46
+ const candidates = eligible.map((candidate) => ({
49
47
  ...candidate,
50
48
  weight: BigInt(candidate.weight)
51
49
  }));
52
50
  const total = candidates.reduce((sum, candidate) => sum + candidate.weight, 0n);
53
- replaceState(current, new Map(candidates.map(candidate => [
54
- candidate.id,
55
- current.get(candidate.id) ?? 0n
56
- ])));
51
+ replaceState(current, new Map(candidates.map((candidate) => [candidate.id, current.get(candidate.id) ?? 0n])));
57
52
  if (total === 0n)
58
53
  return emptyCycle();
59
54
  const values = [];
@@ -62,12 +57,12 @@ function buildSelectionPlan(eligible, current) {
62
57
  const working = new Map(current);
63
58
  const startedAt = performance.now();
64
59
  for (;;) {
65
- if (values.length >= MAX_CYCLE_SEARCH_STEPS
66
- || performance.now() - startedAt >= MAX_CYCLE_SEARCH_MS) {
60
+ if (values.length >= MAX_CYCLE_SEARCH_STEPS ||
61
+ performance.now() - startedAt >= MAX_CYCLE_SEARCH_MS) {
67
62
  return { kind: 'direct', candidates };
68
63
  }
69
64
  const stateKey = candidates
70
- .map(candidate => `${candidate.id}\u0000${working.get(candidate.id) ?? 0n}`)
65
+ .map((candidate) => `${candidate.id}\u0000${working.get(candidate.id) ?? 0n}`)
71
66
  .join('\u0001');
72
67
  const cycleStart = seen.get(stateKey);
73
68
  if (cycleStart !== undefined) {
@@ -8,10 +8,10 @@ const routing_id_1 = require("../routing-id");
8
8
  /** Encodes text without silently replacing an unpaired UTF-16 surrogate. */
9
9
  function encodeCanonicalServiceWireText(value, field, maximumBytes, invalid) {
10
10
  const bytes = Buffer.from(value, 'utf8');
11
- if (bytes.byteLength < 1
12
- || bytes.byteLength > maximumBytes
13
- || value.includes('\0')
14
- || bytes.toString('utf8') !== value) {
11
+ if (bytes.byteLength < 1 ||
12
+ bytes.byteLength > maximumBytes ||
13
+ value.includes('\0') ||
14
+ bytes.toString('utf8') !== value) {
15
15
  invalid(`${field} must be 1..${maximumBytes} canonical UTF-8 bytes without NUL.`);
16
16
  }
17
17
  return bytes;
@@ -20,8 +20,7 @@ function encodeCanonicalServiceWireText(value, field, maximumBytes, invalid) {
20
20
  function decodeCanonicalServiceWireText(bytes, field, invalid) {
21
21
  const encoded = Buffer.from(bytes);
22
22
  const value = encoded.toString('utf8');
23
- if (value.includes('\0')
24
- || !Buffer.from(value, 'utf8').equals(encoded)) {
23
+ if (value.includes('\0') || !Buffer.from(value, 'utf8').equals(encoded)) {
25
24
  invalid(`${field} is not canonical UTF-8 without NUL.`);
26
25
  }
27
26
  return value;
@@ -46,7 +46,9 @@ function encodeNodeRequestHeader(correlation) {
46
46
  }
47
47
  function decodeNodeRequestHeader(frame) {
48
48
  const header = decodeHeader(frame);
49
- if (header.command !== exports.M6aServiceWireCommand.nodeRequest || header.flags !== 0 || frame.byteLength !== 13) {
49
+ if (header.command !== exports.M6aServiceWireCommand.nodeRequest ||
50
+ header.flags !== 0 ||
51
+ frame.byteLength !== 13) {
50
52
  fail('Invalid nodeRequest header.');
51
53
  }
52
54
  return readNonZeroU64(asBuffer(frame), PREFIX_SIZE, 'correlation');
@@ -96,7 +98,9 @@ function encodeReplyHeader(correlation, terminalResult = 0, failureCode = 0, tai
96
98
  }
97
99
  function decodeReplyHeader(frame) {
98
100
  const header = decodeHeader(frame);
99
- if (header.command !== exports.M6aServiceWireCommand.reply || header.flags !== 0 || frame.byteLength < 21) {
101
+ if (header.command !== exports.M6aServiceWireCommand.reply ||
102
+ header.flags !== 0 ||
103
+ frame.byteLength < 21) {
100
104
  fail('Invalid reply header.');
101
105
  }
102
106
  const bytes = asBuffer(frame);
@@ -117,10 +121,7 @@ function encodeApplicationPayload(payload) {
117
121
  const contentType = encodeText8(payload.contentType, 'contentType');
118
122
  if (payload.payload.byteLength > MAX_U32)
119
123
  fail('Application payload exceeds u32.');
120
- const bodyLength = packetName.byteLength
121
- + contentType.byteLength
122
- + 4
123
- + payload.payload.byteLength;
124
+ const bodyLength = packetName.byteLength + contentType.byteLength + 4 + payload.payload.byteLength;
124
125
  if (bodyLength > MAX_U32)
125
126
  fail('Application payload body exceeds u32.');
126
127
  const result = Buffer.alloc(5 + bodyLength);
@@ -154,10 +155,7 @@ function encodeMultipartApplicationPayload(parts, packetName, contentType) {
154
155
  if (multipartLength > MAX_U32)
155
156
  fail('Multipart payload exceeds u32.');
156
157
  }
157
- const bodyLength = packetNameBytes.byteLength
158
- + contentTypeBytes.byteLength
159
- + 4
160
- + multipartLength;
158
+ const bodyLength = packetNameBytes.byteLength + contentTypeBytes.byteLength + 4 + multipartLength;
161
159
  if (bodyLength > MAX_U32)
162
160
  fail('Application payload body exceeds u32.');
163
161
  const result = Buffer.alloc(5 + bodyLength);
@@ -239,7 +237,7 @@ function encodeRouteMeshAdmission(command, descriptor) {
239
237
  for (const channel of descriptor.channels) {
240
238
  routeParts.push(encodeText8(channel.name, 'channelName'), encodeU32(channel.weight));
241
239
  }
242
- const extension = concat(tlv(1, Buffer.of(stateToWire(descriptor.state))), tlv(2, encodeU64(descriptor.applicationVersion)), tlv(6, concat(encodeU16(descriptor.protocolCapabilities.length), ...descriptor.protocolCapabilities.map(value => encodeText8(value, 'protocolCapability')))), tlv(7, Buffer.of(roleToWire(descriptor.objectRole))), tlv(8, encodeU32(descriptor.placementWeight)), tlv(9, encodeU32(descriptor.activeCapacityLimit)), tlv(10, encodeU32(descriptor.pendingCapacityLimit)), tlv(11, encodeU32(descriptor.activeCapacityUsed)), tlv(12, encodeU32(descriptor.pendingCapacityUsed)), ...(descriptor.maintenanceWave === undefined
240
+ const extension = concat(tlv(1, Buffer.of(stateToWire(descriptor.state))), tlv(2, encodeU64(descriptor.applicationVersion)), tlv(6, concat(encodeU16(descriptor.protocolCapabilities.length), ...descriptor.protocolCapabilities.map((value) => encodeText8(value, 'protocolCapability')))), tlv(7, Buffer.of(roleToWire(descriptor.objectRole))), tlv(8, encodeU32(descriptor.placementWeight)), tlv(9, encodeU32(descriptor.activeCapacityLimit)), tlv(10, encodeU32(descriptor.pendingCapacityLimit)), tlv(11, encodeU32(descriptor.activeCapacityUsed)), tlv(12, encodeU32(descriptor.pendingCapacityUsed)), ...(descriptor.maintenanceWave === undefined
243
241
  ? []
244
242
  : [tlv(13, encodeText8(descriptor.maintenanceWave, 'maintenanceWave'))]));
245
243
  const route = concat(...routeParts, encodeU32(extension.byteLength), extension);
@@ -319,11 +317,11 @@ function decodeRouteMeshAdmission(frame, expectedCommand, sourceRoutingId) {
319
317
  value.end();
320
318
  }
321
319
  reader.end();
322
- if (state === undefined
323
- || applicationVersion === undefined
324
- || protocolCapabilities === undefined
325
- || objectRole === undefined
326
- || ![8, 9, 10, 11, 12].every(id => capacities.has(id))) {
320
+ if (state === undefined ||
321
+ applicationVersion === undefined ||
322
+ protocolCapabilities === undefined ||
323
+ objectRole === undefined ||
324
+ ![8, 9, 10, 11, 12].every((id) => capacities.has(id))) {
327
325
  fail('Descriptor extension omits a required field.');
328
326
  }
329
327
  const descriptor = {
@@ -355,7 +353,9 @@ function encodeReject(reason) {
355
353
  }
356
354
  function decodeReject(frame) {
357
355
  const header = decodeHeader(frame);
358
- if (header.command !== exports.M6aServiceWireCommand.reject || header.flags !== 0 || frame.byteLength !== 9) {
356
+ if (header.command !== exports.M6aServiceWireCommand.reject ||
357
+ header.flags !== 0 ||
358
+ frame.byteLength !== 9) {
359
359
  fail('Invalid reject record.');
360
360
  }
361
361
  const reason = asBuffer(frame).readUInt32BE(PREFIX_SIZE);
@@ -420,7 +420,7 @@ function tlv(id, value) {
420
420
  return concat(Buffer.of(id), encodeU32(value.byteLength), value);
421
421
  }
422
422
  function concat(...parts) {
423
- return Buffer.concat(parts.map(part => Buffer.from(part)));
423
+ return Buffer.concat(parts.map((part) => Buffer.from(part)));
424
424
  }
425
425
  function readNonZeroU64(bytes, offset, field) {
426
426
  const result = bytes.readBigUInt64BE(offset);
@@ -432,9 +432,9 @@ function asBuffer(value) {
432
432
  return Buffer.from(value.buffer, value.byteOffset, value.byteLength);
433
433
  }
434
434
  function validateAdmissionCommand(command) {
435
- if (command !== exports.M6aServiceWireCommand.hello
436
- && command !== exports.M6aServiceWireCommand.admit
437
- && command !== exports.M6aServiceWireCommand.update) {
435
+ if (command !== exports.M6aServiceWireCommand.hello &&
436
+ command !== exports.M6aServiceWireCommand.admit &&
437
+ command !== exports.M6aServiceWireCommand.update) {
438
438
  fail('Command is not an admission record.');
439
439
  }
440
440
  }
@@ -445,9 +445,9 @@ function validateReplyFields(correlation, terminal, failure) {
445
445
  // an unknown or mismatched pair is a protocol error before dispatch. The
446
446
  // generated predicate replaces the old broad-category check, which
447
447
  // accepted any typed pairing and wrongly rejected defined codes 33/34.
448
- if (correlation <= 0n
449
- || correlation > MAX_U64
450
- || !(0, service_wire_constants_generated_1.isValidServiceWireTerminalFailure)(terminal, failure)) {
448
+ if (correlation <= 0n ||
449
+ correlation > MAX_U64 ||
450
+ !(0, service_wire_constants_generated_1.isValidServiceWireTerminalFailure)(terminal, failure)) {
451
451
  fail('Invalid reply terminal fields.');
452
452
  }
453
453
  }
@@ -456,22 +456,33 @@ function stateToWire(value) {
456
456
  // is a host-internal transition and has the same remote admission meaning
457
457
  // as `draining`; the service wire does not expose a separate retiring value.
458
458
  switch (value) {
459
- case 'preparing': return 0;
460
- case 'serving': return 1;
459
+ case 'preparing':
460
+ return 0;
461
+ case 'serving':
462
+ return 1;
461
463
  case 'retiring':
462
- case 'draining': return 2;
463
- case 'stopped': return 3;
464
- case 'error': return 4;
464
+ case 'draining':
465
+ return 2;
466
+ case 'stopped':
467
+ return 3;
468
+ case 'error':
469
+ return 4;
465
470
  }
466
471
  }
467
472
  function stateFromWire(value) {
468
473
  switch (value) {
469
- case 0: return 'preparing';
470
- case 1: return 'serving';
471
- case 2: return 'draining';
472
- case 3: return 'stopped';
473
- case 4: return 'error';
474
- default: fail('Invalid runtime state.');
474
+ case 0:
475
+ return 'preparing';
476
+ case 1:
477
+ return 'serving';
478
+ case 2:
479
+ return 'draining';
480
+ case 3:
481
+ return 'stopped';
482
+ case 4:
483
+ return 'error';
484
+ default:
485
+ fail('Invalid runtime state.');
475
486
  }
476
487
  }
477
488
  function roleToWire(value) {
@@ -149,18 +149,17 @@ exports.ZLINK_FRAMEWORK_INTERNAL_ERROR_KIND_VALUES = Object.freeze({
149
149
  [ZLinkFrameworkInternalErrorKind.ActorRouteUnavailable]: 41
150
150
  });
151
151
  const INTERNAL_KIND_BY_WIRE_FAILURE_CODE = new Map([
152
- ...Object.entries(exports.ZLINK_FRAMEWORK_INTERNAL_ERROR_KIND_VALUES)
153
- .map(([kind, code]) => [code + 1, kind]),
152
+ ...Object.entries(exports.ZLINK_FRAMEWORK_INTERNAL_ERROR_KIND_VALUES).map(([kind, code]) => [code + 1, kind]),
154
153
  // Spec 32-framework-error-model:99-103 — a workerQueueFull(18) received in a
155
154
  // remote reply is the target's queue state and maps to Unavailable.
156
155
  [18, ZLinkFrameworkInternalErrorKind.RouteNotConnected]
157
156
  ]);
158
157
  const WIRE_TERMINAL_RESULT_BY_FAILURE_CODE = new Map([
159
- ...[1, 6, 8, 9, 10, 11, 14].map(code => [code, 102]),
160
- ...[2, 5, 13, 17, 19, 20, 35, 42].map(code => [code, 105]),
161
- ...[3, 4, 7, 21, 33, 34].map(code => [code, 107]),
162
- ...[12, 16].map(code => [code, 104]),
163
- ...[15, 18, 22].map(code => [code, 106])
158
+ ...[1, 6, 8, 9, 10, 11, 14].map((code) => [code, 102]),
159
+ ...[2, 5, 13, 17, 19, 20, 35, 42].map((code) => [code, 105]),
160
+ ...[3, 4, 7, 21, 33, 34].map((code) => [code, 107]),
161
+ ...[12, 16].map((code) => [code, 104]),
162
+ ...[15, 18, 22].map((code) => [code, 106])
164
163
  ]);
165
164
  const INTERNAL_KIND = new WeakMap();
166
165
  function createInternalFrameworkException(kind, message, causeOrRetry, cause) {
@@ -286,9 +285,7 @@ function internalFrameworkErrorKindFromWireReply(terminalResult, failureCode) {
286
285
  const expectedTerminalResult = WIRE_TERMINAL_RESULT_BY_FAILURE_CODE.get(failureCode);
287
286
  return expectedTerminalResult === terminalResult ? kind : undefined;
288
287
  }
289
- const BOUNDARY_WIRE_TERMINAL_RESULTS = new Set([
290
- 101, 103, 108, 109, 110, 111, 112, 113
291
- ]);
288
+ const BOUNDARY_WIRE_TERMINAL_RESULTS = new Set([101, 103, 108, 109, 110, 111, 112, 113]);
292
289
  /** Checks the terminal and failure-code pair before a transport maps it. */
293
290
  function isCanonicalWireReplyTerminal(terminalResult, failureCode) {
294
291
  if (terminalResult === 0)
@@ -73,9 +73,9 @@ function createHandlerInstanceScope(providerResolver, context) {
73
73
  return new DefaultHandlerInstanceScope(providerResolver);
74
74
  }
75
75
  function isHandlerInstanceScopeFactory(value) {
76
- return typeof value === 'object'
77
- && value !== null
78
- && typeof value.create === 'function';
76
+ return (typeof value === 'object' &&
77
+ value !== null &&
78
+ typeof value.create === 'function');
79
79
  }
80
80
  class DefaultHandlerInstanceScope {
81
81
  providerResolver;
@@ -133,8 +133,7 @@ class DefaultHandlerInstanceScope {
133
133
  async activate(type, activation) {
134
134
  let instance;
135
135
  try {
136
- instance = await this.providerResolver?.create?.(type)
137
- ?? new type();
136
+ instance = (await this.providerResolver?.create?.(type)) ?? new type();
138
137
  }
139
138
  catch (error) {
140
139
  activation.reject(error);
@@ -20,7 +20,9 @@ function exposeZLinkHandlers(handlerTypes, policy) {
20
20
  if (groups.size === 0) {
21
21
  return false;
22
22
  }
23
- return (0, Attributes_1.readZLinkDecoratorMetadata)(descriptor.handlerType).some((metadata) => metadata.kind === 'handlerGroup' && metadata.groupName !== undefined && groups.has(metadata.groupName));
23
+ return (0, Attributes_1.readZLinkDecoratorMetadata)(descriptor.handlerType).some((metadata) => metadata.kind === 'handlerGroup' &&
24
+ metadata.groupName !== undefined &&
25
+ groups.has(metadata.groupName));
24
26
  });
25
27
  }
26
28
  async function invokeZLinkHandlerFilters(filters, context, terminal, signal) {