@zlink-systems/framework 0.26.0 → 0.27.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 (521) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  3. package/dist/contracts/Common/CoreTypes.js +7 -0
  4. package/dist/contracts/Common/index.d.ts +1 -1
  5. package/dist/contracts/Common/index.js +0 -1
  6. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  7. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  8. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  9. package/dist/contracts/Configuration/Registration.js +58 -36
  10. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  11. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  12. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  13. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  14. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
  15. package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
  16. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  17. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  18. package/dist/contracts/Handlers/JsonContract.js +10 -4
  19. package/dist/contracts/Locations/Authority.d.ts +1 -1
  20. package/dist/contracts/Locations/Authority.js +3 -2
  21. package/dist/contracts/Locations/Options.js +1 -1
  22. package/dist/contracts/Locations/Stores.d.ts +12 -0
  23. package/dist/contracts/Locations/Stores.js +9 -0
  24. package/dist/contracts/Spots/Contracts.d.ts +1 -1
  25. package/dist/internal.d.ts +4 -0
  26. package/dist/internal.js +15 -1
  27. package/dist/nest-integration.d.ts +4 -2
  28. package/dist/nest-integration.js +14 -4
  29. package/dist/runtime/abort.d.ts +1 -0
  30. package/dist/runtime/abort.js +8 -5
  31. package/dist/runtime/activation-admission.d.ts +1 -2
  32. package/dist/runtime/activation-admission.js +2 -6
  33. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  34. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  35. package/dist/runtime/actors/actor-client.d.ts +2 -2
  36. package/dist/runtime/actors/actor-client.js +42 -143
  37. package/dist/runtime/actors/actor-context.d.ts +3 -5
  38. package/dist/runtime/actors/actor-context.js +13 -11
  39. package/dist/runtime/actors/actor-handoff.d.ts +4 -4
  40. package/dist/runtime/actors/actor-handoff.js +8 -8
  41. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  42. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  43. package/dist/runtime/actors/actor-local-native-join.js +83 -105
  44. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  45. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  46. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  47. package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
  48. package/dist/runtime/actors/actor-remote-joiner.js +5 -9
  49. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  50. package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
  51. package/dist/runtime/actors/actor-request-deadline.js +31 -0
  52. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  53. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  54. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  55. package/dist/runtime/actors/bound-session-wire.js +2 -7
  56. package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
  57. package/dist/runtime/actors/deferred-join-completion.js +1 -0
  58. package/dist/runtime/actors/index.d.ts +9 -7
  59. package/dist/runtime/actors/index.js +87 -69
  60. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  61. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  62. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  63. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  64. package/dist/runtime/admission.d.ts +2 -0
  65. package/dist/runtime/admission.js +7 -1
  66. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  67. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  68. package/dist/runtime/backend/contracts/index.d.ts +6 -23
  69. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
  70. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  71. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  72. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +1 -1
  73. package/dist/runtime/backend/node/node-backend-adapter-support.js +16 -6
  74. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  75. package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
  76. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  77. package/dist/runtime/backend/node/node-raw-binding-port.js +40 -16
  78. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
  79. package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
  80. package/dist/runtime/backend/node/node-socket-backend-adapter.js +3 -2
  81. package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
  82. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  83. package/dist/runtime/backend/runtime-values.js +2 -0
  84. package/dist/runtime/channels/channel-clients.d.ts +20 -8
  85. package/dist/runtime/channels/channel-clients.js +68 -52
  86. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  87. package/dist/runtime/channels/channel-envelope.js +47 -29
  88. package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
  89. package/dist/runtime/channels/channel-outbound-operations.js +9 -10
  90. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  91. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  92. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  93. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  94. package/dist/runtime/channels/channel-runtime-manager.js +5 -2
  95. package/dist/runtime/channels/channel-socket-options.js +3 -2
  96. package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
  97. package/dist/runtime/channels/channel-socket-registry.js +248 -174
  98. package/dist/runtime/channels/channel-transports.d.ts +11 -17
  99. package/dist/runtime/channels/channel-transports.js +68 -47
  100. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  101. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  102. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  103. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  104. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  105. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  106. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  107. package/dist/runtime/channels/fanout-location-runtime.js +130 -72
  108. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  109. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  110. package/dist/runtime/channels/spot-node-route-transport.js +3 -2
  111. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  112. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  113. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  114. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  115. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  116. package/dist/runtime/diagnostics/flow-context.js +16 -2
  117. package/dist/runtime/diagnostics/index.d.ts +4 -2
  118. package/dist/runtime/diagnostics/index.js +14 -4
  119. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  120. package/dist/runtime/diagnostics/message-flow.js +10 -19
  121. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  122. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  123. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  124. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  125. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  126. package/dist/runtime/disposal.d.ts +5 -0
  127. package/dist/runtime/disposal.js +22 -0
  128. package/dist/runtime/execution/index.d.ts +12 -9
  129. package/dist/runtime/execution/index.js +58 -14
  130. package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
  131. package/dist/runtime/execution/serial-execution-queue.js +54 -15
  132. package/dist/runtime/execution/state-lane.d.ts +8 -1
  133. package/dist/runtime/execution/state-lane.js +118 -3
  134. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  135. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  136. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  137. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  138. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  139. package/dist/runtime/foundation/operation-identity.js +9 -5
  140. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  141. package/dist/runtime/foundation/operation-registry.js +34 -44
  142. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
  143. package/dist/runtime/foundation/raw-service-mesh-runtime.js +62 -83
  144. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  145. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  146. package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
  147. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  148. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  149. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  150. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  151. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  152. package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
  153. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  154. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  155. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  156. package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
  157. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  158. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  159. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  160. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
  161. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  162. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  163. package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
  164. package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
  165. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
  166. package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
  167. package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
  168. package/dist/runtime/foundation/service-topology-registry.js +17 -32
  169. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  170. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  171. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  172. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  173. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  174. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  175. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  176. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  177. package/dist/runtime/framework-errors-internal.js +343 -122
  178. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  179. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  180. package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
  181. package/dist/runtime/host/actor-packet-relay.js +48 -91
  182. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  183. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  184. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  185. package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
  186. package/dist/runtime/host/actor-transfer-runtime.js +143 -176
  187. package/dist/runtime/host/application-job-queue.js +16 -33
  188. package/dist/runtime/host/bound-session-relay.js +1 -1
  189. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  190. package/dist/runtime/host/index.d.ts +14 -13
  191. package/dist/runtime/host/index.js +190 -157
  192. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  193. package/dist/runtime/host/instance-activation-authority.js +17 -45
  194. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  195. package/dist/runtime/host/location-runtime-owner.js +2 -2
  196. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  197. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  198. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  199. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  200. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  201. package/dist/runtime/host/remote-bound-session-relay.js +7 -20
  202. package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
  203. package/dist/runtime/host/route-mesh-runtime.js +171 -252
  204. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  205. package/dist/runtime/host/runtime-shutdown.js +18 -21
  206. package/dist/runtime/host/service-relocation-control.js +6 -1
  207. package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
  208. package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
  209. package/dist/runtime/host/spot-address-transport.d.ts +2 -3
  210. package/dist/runtime/host/spot-address-transport.js +34 -136
  211. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  212. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  213. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
  214. package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
  215. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
  216. package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
  217. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  218. package/dist/runtime/locations/authority-key-codec.js +4 -3
  219. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  220. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  221. package/dist/runtime/locations/creation-operation-id.js +6 -4
  222. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  223. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  224. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  225. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  226. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  227. package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
  228. package/dist/runtime/locations/key-codec.js +3 -2
  229. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  230. package/dist/runtime/locations/lease-tracker.js +7 -11
  231. package/dist/runtime/locations/lifecycle.d.ts +4 -9
  232. package/dist/runtime/locations/lifecycle.js +2 -31
  233. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  234. package/dist/runtime/locations/location-store-failure.js +7 -0
  235. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  236. package/dist/runtime/locations/location-store-pages.js +13 -0
  237. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  238. package/dist/runtime/locations/location-store-repository.js +303 -332
  239. package/dist/runtime/locations/relocation-blob.js +18 -5
  240. package/dist/runtime/locations/resolvers.d.ts +5 -5
  241. package/dist/runtime/locations/resolvers.js +37 -28
  242. package/dist/runtime/locations/runtime.d.ts +5 -4
  243. package/dist/runtime/locations/runtime.js +123 -92
  244. package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
  245. package/dist/runtime/locations/spot-location-claims.js +42 -1
  246. package/dist/runtime/messaging/payload-codec.js +26 -20
  247. package/dist/runtime/messaging/submission-result.d.ts +3 -0
  248. package/dist/runtime/messaging/submission-result.js +48 -0
  249. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
  250. package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
  251. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
  252. package/dist/runtime/spots/index.d.ts +14 -20
  253. package/dist/runtime/spots/index.js +302 -176
  254. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
  255. package/dist/runtime/spots/spot-activation-registry.js +14 -50
  256. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  257. package/dist/runtime/spots/spot-activation-state.js +2 -2
  258. package/dist/runtime/spots/spot-activation.d.ts +3 -4
  259. package/dist/runtime/spots/spot-activation.js +49 -32
  260. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  261. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  262. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  263. package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
  264. package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
  265. package/dist/runtime/spots/spot-actor-membership.js +22 -45
  266. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  267. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  268. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  269. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  270. package/dist/runtime/spots/spot-context.d.ts +2 -2
  271. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
  272. package/dist/runtime/spots/spot-entry-activation.js +9 -20
  273. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  274. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  275. package/dist/runtime/spots/spot-manager-public.js +5 -4
  276. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  277. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
  278. package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
  279. package/dist/runtime/spots/spot-outbound.d.ts +4 -3
  280. package/dist/runtime/spots/spot-outbound.js +9 -8
  281. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  282. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  283. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  284. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  285. package/dist/runtime/spots/spot-route-replies.js +3 -1
  286. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
  287. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
  288. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
  289. package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
  290. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  291. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  292. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
  293. package/dist/runtime/spots/spot-serial-executor.js +2 -2
  294. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
  295. package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
  296. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  297. package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
  298. package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
  299. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
  300. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
  301. package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
  302. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  303. package/dist/runtime/streams/bound-session-service.js +11 -1
  304. package/dist/runtime/streams/index.d.ts +14 -15
  305. package/dist/runtime/streams/index.js +20 -21
  306. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  307. package/dist/runtime/streams/managed-stream.js +17 -8
  308. package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
  309. package/dist/runtime/streams/protocol.d.ts +6 -33
  310. package/dist/runtime/streams/protocol.js +38 -110
  311. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  312. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  313. package/dist/runtime/streams/session-calls.d.ts +1 -1
  314. package/dist/runtime/streams/session-calls.js +5 -4
  315. package/dist/runtime/streams/session-context.d.ts +6 -6
  316. package/dist/runtime/streams/session-context.js +22 -4
  317. package/dist/runtime/streams/session-requests.js +2 -1
  318. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  319. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  320. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  321. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  322. package/dist/runtime/workers/index.d.ts +2 -2
  323. package/dist/runtime/workers/index.js +5 -4
  324. package/package.json +3 -3
  325. package/src/contracts/Common/CoreTypes.ts +7 -0
  326. package/src/contracts/Common/index.ts +1 -1
  327. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  328. package/src/contracts/Configuration/Registration.ts +92 -48
  329. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  330. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
  331. package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
  332. package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
  333. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  334. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  335. package/src/contracts/Handlers/JsonContract.ts +14 -4
  336. package/src/contracts/Locations/Authority.ts +7 -3
  337. package/src/contracts/Locations/Options.ts +1 -1
  338. package/src/contracts/Locations/Stores.ts +14 -0
  339. package/src/contracts/Spots/Contracts.ts +1 -1
  340. package/src/internal.ts +14 -0
  341. package/src/nest-integration.ts +28 -10
  342. package/src/runtime/abort.ts +6 -5
  343. package/src/runtime/activation-admission.ts +2 -8
  344. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  345. package/src/runtime/actors/actor-client.ts +77 -204
  346. package/src/runtime/actors/actor-context.ts +39 -33
  347. package/src/runtime/actors/actor-handoff.ts +24 -22
  348. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  349. package/src/runtime/actors/actor-local-native-join.ts +172 -174
  350. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  351. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  352. package/src/runtime/actors/actor-remote-joiner.ts +9 -11
  353. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  354. package/src/runtime/actors/actor-request-deadline.ts +49 -0
  355. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  356. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  357. package/src/runtime/actors/bound-session-wire.ts +2 -8
  358. package/src/runtime/actors/deferred-join-completion.ts +10 -6
  359. package/src/runtime/actors/index.ts +100 -79
  360. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  361. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  362. package/src/runtime/admission.ts +8 -1
  363. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  364. package/src/runtime/backend/contracts/index.ts +13 -29
  365. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
  366. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  367. package/src/runtime/backend/node/node-backend-adapter-support.ts +23 -6
  368. package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
  369. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  370. package/src/runtime/backend/node/node-raw-binding-port.ts +41 -20
  371. package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
  372. package/src/runtime/backend/node/node-socket-backend-adapter.ts +3 -2
  373. package/src/runtime/backend/raw-binding-port.ts +1 -1
  374. package/src/runtime/backend/runtime-values.ts +4 -1
  375. package/src/runtime/channels/channel-clients.ts +132 -85
  376. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  377. package/src/runtime/channels/channel-envelope.ts +58 -29
  378. package/src/runtime/channels/channel-outbound-operations.ts +10 -23
  379. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  380. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  381. package/src/runtime/channels/channel-runtime-manager.ts +6 -2
  382. package/src/runtime/channels/channel-socket-options.ts +8 -2
  383. package/src/runtime/channels/channel-socket-registry.ts +301 -192
  384. package/src/runtime/channels/channel-transports.ts +161 -112
  385. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  386. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  387. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  388. package/src/runtime/channels/fanout-location-runtime.ts +172 -91
  389. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  390. package/src/runtime/channels/spot-node-route-transport.ts +5 -2
  391. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  392. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  393. package/src/runtime/diagnostics/flow-context.ts +16 -2
  394. package/src/runtime/diagnostics/index.ts +27 -17
  395. package/src/runtime/diagnostics/message-flow.ts +15 -25
  396. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  397. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  398. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  399. package/src/runtime/disposal.ts +19 -0
  400. package/src/runtime/execution/index.ts +60 -20
  401. package/src/runtime/execution/serial-execution-queue.ts +131 -18
  402. package/src/runtime/execution/state-lane.ts +142 -4
  403. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  404. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  405. package/src/runtime/foundation/operation-identity.ts +11 -5
  406. package/src/runtime/foundation/operation-registry.ts +33 -50
  407. package/src/runtime/foundation/raw-service-mesh-runtime.ts +110 -111
  408. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  409. package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
  410. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  411. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  412. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  413. package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
  414. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  415. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  416. package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
  417. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  418. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  419. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
  420. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  421. package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
  422. package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
  423. package/src/runtime/foundation/service-topology-registry.ts +23 -32
  424. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  425. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  426. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  427. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  428. package/src/runtime/framework-errors-internal.ts +380 -134
  429. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  430. package/src/runtime/host/actor-packet-relay.ts +57 -147
  431. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  432. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  433. package/src/runtime/host/actor-transfer-runtime.ts +180 -260
  434. package/src/runtime/host/application-job-queue.ts +28 -34
  435. package/src/runtime/host/bound-session-relay.ts +1 -2
  436. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  437. package/src/runtime/host/index.ts +327 -296
  438. package/src/runtime/host/instance-activation-authority.ts +89 -109
  439. package/src/runtime/host/location-runtime-owner.ts +4 -2
  440. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  441. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  442. package/src/runtime/host/remote-bound-session-relay.ts +8 -41
  443. package/src/runtime/host/route-mesh-runtime.ts +228 -271
  444. package/src/runtime/host/runtime-shutdown.ts +17 -21
  445. package/src/runtime/host/service-relocation-control.ts +14 -1
  446. package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
  447. package/src/runtime/host/spot-address-transport.ts +73 -195
  448. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  449. package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
  450. package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
  451. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  452. package/src/runtime/locations/authority-key-codec.ts +7 -3
  453. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  454. package/src/runtime/locations/creation-operation-id.ts +6 -3
  455. package/src/runtime/locations/domain-store-contract.ts +12 -3
  456. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  457. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  458. package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
  459. package/src/runtime/locations/key-codec.ts +3 -2
  460. package/src/runtime/locations/lease-tracker.ts +8 -14
  461. package/src/runtime/locations/lifecycle.ts +13 -43
  462. package/src/runtime/locations/location-store-failure.ts +4 -0
  463. package/src/runtime/locations/location-store-pages.ts +18 -0
  464. package/src/runtime/locations/location-store-repository.ts +450 -478
  465. package/src/runtime/locations/relocation-blob.ts +17 -6
  466. package/src/runtime/locations/resolvers.ts +75 -49
  467. package/src/runtime/locations/runtime.ts +220 -110
  468. package/src/runtime/locations/spot-location-claims.ts +58 -1
  469. package/src/runtime/messaging/payload-codec.ts +35 -24
  470. package/src/runtime/messaging/submission-result.ts +57 -1
  471. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  472. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  473. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
  474. package/src/runtime/spots/index.ts +433 -229
  475. package/src/runtime/spots/spot-activation-registry.ts +30 -69
  476. package/src/runtime/spots/spot-activation-state.ts +2 -2
  477. package/src/runtime/spots/spot-activation.ts +67 -37
  478. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  479. package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
  480. package/src/runtime/spots/spot-actor-membership.ts +40 -72
  481. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  482. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  483. package/src/runtime/spots/spot-context.ts +3 -3
  484. package/src/runtime/spots/spot-entry-activation.ts +13 -30
  485. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  486. package/src/runtime/spots/spot-manager-public.ts +21 -17
  487. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  488. package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
  489. package/src/runtime/spots/spot-outbound.ts +45 -23
  490. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  491. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  492. package/src/runtime/spots/spot-route-replies.ts +6 -4
  493. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
  494. package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
  495. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  496. package/src/runtime/spots/spot-runtime-ports.ts +5 -27
  497. package/src/runtime/spots/spot-serial-executor.ts +2 -2
  498. package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
  499. package/src/runtime/spots/spot-timer.ts +3 -2
  500. package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
  501. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
  502. package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
  503. package/src/runtime/streams/bound-session-service.ts +21 -1
  504. package/src/runtime/streams/index.ts +76 -64
  505. package/src/runtime/streams/managed-stream.ts +29 -10
  506. package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
  507. package/src/runtime/streams/protocol.ts +34 -88
  508. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  509. package/src/runtime/streams/session-calls.ts +6 -5
  510. package/src/runtime/streams/session-context.ts +54 -10
  511. package/src/runtime/streams/session-requests.ts +2 -1
  512. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  513. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  514. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  515. package/src/runtime/workers/index.ts +13 -12
  516. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  517. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  518. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  519. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  520. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  521. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -1,64 +1,85 @@
1
+ import { AutoHwmProfile } from '@zlink-systems/zlink';
1
2
  import type {
2
3
  RoutingId,
3
4
  Type,
4
5
  ZLinkActor,
5
6
  ZLinkActorFactory,
7
+ ZLinkClientServerChannelClientBuilder,
8
+ ZLinkClientServerChannelRoleBuilder,
9
+ ZLinkClientServerChannelServerBuilder,
6
10
  ZLinkEntrySpot,
7
11
  ZLinkFanoutChannelBuilder,
8
12
  ZLinkFrameworkOptions,
13
+ ZLinkHandlerFilter,
14
+ ZLinkInstanceSpot,
15
+ ZLinkLocationOptionValues,
9
16
  ZLinkMeshChannelBuilder,
10
17
  ZLinkMeshChannelClientBuilder,
11
18
  ZLinkMeshChannelServerBuilder,
12
19
  ZLinkMeshNodeBuilder,
20
+ ZLinkMeshNodeSocketConfig,
13
21
  ZLinkMeshObjectClientBuilder,
14
22
  ZLinkMeshObjectRoleBuilder,
15
23
  ZLinkMeshObjectServerBuilder,
16
- ZLinkMeshNodeSocketConfig,
17
- ZLinkNetworkOptions,
18
24
  ZLinkMeshPeerConnection,
19
25
  ZLinkMeshPeerConnections,
20
- ZLinkLocationOptionValues,
21
- ZLinkSpotPublisherConfig,
22
- ZLinkHandlerFilter,
23
- ZLinkInstanceSpot,
26
+ ZLinkNetworkOptions,
27
+ ZLinkSession,
28
+ ZLinkSessionFactory,
24
29
  ZLinkSpot,
25
- ZLinkClientServerChannelClientBuilder,
26
- ZLinkClientServerChannelRoleBuilder,
27
- ZLinkClientServerChannelServerBuilder,
30
+ ZLinkSpotPublisherConfig,
28
31
  ZLinkStreamCompressionBuilder,
29
32
  ZLinkStreamCompressionCodec,
30
- ZLinkStreamSocketConfig,
31
33
  ZLinkStreamNodeBuilder,
32
- ZLinkSession,
33
- ZLinkSessionFactory
34
+ ZLinkStreamSocketConfig
34
35
  } from '../../contracts';
35
- import type {
36
- ZLinkActorFactoryBuilder,
37
- ZLinkActorRelocationAdapter,
38
- ZLinkInstanceSpotFactoryBuilder,
39
- ZLinkSpotRelocationAdapter,
40
- ZLinkUserSpotFactoryBuilder
41
- } from './ObjectRoles';
42
- import { ZLinkSpotRelocationCoordinationMode, ZLinkUserSpotExecutionMode } from './ObjectRoles';
43
- import type { ZLinkSpotNodeBuilder } from '../Spots/Builders';
44
- import { readZLinkDecoratorMetadata } from '../Handlers/Attributes';
45
36
  import type { ZLinkCodecRegistryBuilder } from '../Codecs';
46
- import type {
47
- ZLinkDispatchOptions,
48
- ZLinkDispatchOptionsBuilder,
49
- ZLinkInboundDispatchOptions,
50
- ZLinkMessageFlowLogMode
51
- } from '../Dispatch';
37
+ import { ZLINK_MAX_STABLE_TYPE_BYTES } from '../Common/CoreTypes';
52
38
  import {
39
+ type ZLinkDispatchOptions,
40
+ type ZLinkDispatchOptionsBuilder,
41
+ type ZLinkInboundDispatchOptions,
42
+ type ZLinkMessageFlowLogMode,
53
43
  ZLinkApplicationJobQueueProfile,
54
44
  ZLinkCoreHwmProfile,
55
45
  ZLinkUnhandledDispatchAction
56
46
  } from '../Dispatch';
57
- import { AutoHwmProfile } from '@zlink-systems/zlink';
58
- import { endpointConnections } from './RuntimeEndpointConnections';
59
- import type { ZLinkEndpointConnections } from './Connections';
47
+
48
+ import { readZLinkDecoratorMetadata } from '../Handlers/Attributes';
60
49
  import type { ZLinkLocationOptions, ZLinkLocationStore, ZLinkRelocationStore } from '../Locations';
50
+ import type { ZLinkSpotNodeBuilder } from '../Spots/Builders';
61
51
  import { ZLinkConfigurationException } from './ConfigurationException';
52
+ import type { ZLinkEndpointConnections } from './Connections';
53
+ import { requireMessageFlowLogMode, requireTraceSampleRate } from './DiagnosticsValidation';
54
+ import { normalizeEndpoint } from './EndpointNotation';
55
+ import { requirePublicFanoutTopic } from './FanoutTopic';
56
+ import { DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE } from './InternalDefaults';
57
+ import {
58
+ type ZLinkActorFactoryBuilder,
59
+ type ZLinkActorRelocationAdapter,
60
+ type ZLinkInstanceSpotFactoryBuilder,
61
+ type ZLinkSpotRelocationAdapter,
62
+ type ZLinkUserSpotFactoryBuilder,
63
+ ZLinkSpotRelocationCoordinationMode,
64
+ ZLinkUserSpotExecutionMode
65
+ } from './ObjectRoles';
66
+
67
+ import {
68
+ MAX_LISTENER_PORT,
69
+ ZLINK_MAX_CAPACITY,
70
+ isValidCapacity,
71
+ isValidListenerPort,
72
+ isValidPositiveCapacity,
73
+ registerActorFactory,
74
+ registerEntrySpot,
75
+ registerRelocationStore,
76
+ registerSpotFactory,
77
+ requirePublicWeight,
78
+ validateActorTransferTimeout,
79
+ validateMessageFollowDuration,
80
+ validateRoutingIdPrefix,
81
+ validateSessionReplacementCallbackTimeout
82
+ } from './RegistrationBuilderPolicy';
62
83
  import {
63
84
  RegistrationCodecRegistryBuilder,
64
85
  type MutableCodecRegistryOptions
@@ -68,14 +89,12 @@ import {
68
89
  normalizeOptionalPositiveInteger,
69
90
  typeMapToRecord
70
91
  } from './RegistrationNormalizers';
71
- import { normalizeEndpoint } from './EndpointNotation';
72
- import { DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE } from './InternalDefaults';
73
92
  import type {
74
- ZLinkChannelPublishHandlerRegistration,
75
93
  ZLinkActorFactoryConfiguration,
76
94
  ZLinkApplicationJobQueueOptions,
77
- ZLinkFrameworkRegistrationOptions,
95
+ ZLinkChannelPublishHandlerRegistration,
78
96
  ZLinkCoreHwmOptions,
97
+ ZLinkFrameworkRegistrationOptions,
79
98
  ZLinkInstanceSpotFactoryConfiguration,
80
99
  ZLinkRelocationConfiguration,
81
100
  ZLinkSpotRouterPeerConnectionOptions,
@@ -83,17 +102,7 @@ import type {
83
102
  ZLinkUserSpotFactoryConfiguration,
84
103
  ZLinkWorkerOptions
85
104
  } from './RegistrationTypes';
86
- import {
87
- validateRoutingIdPrefix,
88
- registerActorFactory,
89
- registerEntrySpot,
90
- registerSpotFactory,
91
- validateActorTransferTimeout,
92
- validateMessageFollowDuration,
93
- validateSessionReplacementCallbackTimeout
94
- } from './RegistrationBuilderPolicy';
95
- import { requireMessageFlowLogMode, requireTraceSampleRate } from './DiagnosticsValidation';
96
- import { requirePublicFanoutTopic } from './FanoutTopic';
105
+ import { endpointConnections } from './RuntimeEndpointConnections';
97
106
 
98
107
  export function createFrameworkOptions(
99
108
  configure: (options: ZLinkFrameworkOptions) => void
@@ -144,7 +153,7 @@ class ZLinkFrameworkOptionsBuilder implements ZLinkFrameworkOptions {
144
153
 
145
154
  addRelocationStore(store: ZLinkRelocationStore): this {
146
155
  this.options.locations ??= { options: {} };
147
- this.options.locations.relocationStoreInstance = store;
156
+ registerRelocationStore(this.options.locations, store);
148
157
  return this;
149
158
  }
150
159
 
@@ -617,9 +626,9 @@ class DefaultClientServerChannelServerBuilder implements ZLinkClientServerChanne
617
626
  ) {}
618
627
 
619
628
  listen(port = 0): this {
620
- if (!Number.isInteger(port) || port < 0 || port > 65_535) {
629
+ if (!isValidListenerPort(port)) {
621
630
  throw new ZLinkConfigurationException(
622
- `ClientServer channel '${this.name}' port must be between 0 and 65535.`
631
+ `ClientServer channel '${this.name}' port must be between 0 and ${MAX_LISTENER_PORT}.`
623
632
  );
624
633
  }
625
634
  this.server.port = port;
@@ -894,9 +903,9 @@ class DefaultMeshNodeBuilder implements ZLinkMeshNodeBuilder {
894
903
  this.node.router.port = undefined;
895
904
  return this;
896
905
  }
897
- if (!Number.isInteger(endpointOrPort) || endpointOrPort < 0 || endpointOrPort > 65_535) {
906
+ if (!isValidListenerPort(endpointOrPort)) {
898
907
  throw new ZLinkConfigurationException(
899
- `RouteMesh '${this.name}' port must be between 0 and 65535.`
908
+ `RouteMesh '${this.name}' port must be between 0 and ${MAX_LISTENER_PORT}.`
900
909
  );
901
910
  }
902
911
  this.node.router.port = endpointOrPort;
@@ -1431,22 +1440,28 @@ function endpointList(endpoint: string | readonly string[]): string[] {
1431
1440
 
1432
1441
  function requireStableObjectType(value: string, label: string): string {
1433
1442
  const byteLength = Buffer.byteLength(value, 'utf8');
1434
- if (byteLength < 1 || byteLength > 255 || value.includes('\0')) {
1435
- throw new ZLinkConfigurationException(`${label} must contain 1..255 UTF-8 bytes and no NUL.`);
1443
+ if (byteLength < 1 || byteLength > ZLINK_MAX_STABLE_TYPE_BYTES || value.includes('\0')) {
1444
+ throw new ZLinkConfigurationException(
1445
+ `${label} must contain 1..${ZLINK_MAX_STABLE_TYPE_BYTES} UTF-8 bytes and no NUL.`
1446
+ );
1436
1447
  }
1437
1448
  return value;
1438
1449
  }
1439
1450
 
1440
1451
  function requirePositiveCapacity(value: number, label: string): number {
1441
- if (!Number.isSafeInteger(value) || value <= 0 || value > 0x7fff_ffff) {
1442
- throw new ZLinkConfigurationException(`${label} must be an integer in 1..2147483647.`);
1452
+ if (!isValidPositiveCapacity(value)) {
1453
+ throw new ZLinkConfigurationException(
1454
+ `${label} must be an integer in 1..${ZLINK_MAX_CAPACITY}.`
1455
+ );
1443
1456
  }
1444
1457
  return value;
1445
1458
  }
1446
1459
 
1447
1460
  function requireCapacity(value: number, label: string): number {
1448
- if (!Number.isSafeInteger(value) || value < 0 || value > 0x7fff_ffff) {
1449
- throw new ZLinkConfigurationException(`${label} must be an integer in 0..2147483647.`);
1461
+ if (!isValidCapacity(value)) {
1462
+ throw new ZLinkConfigurationException(
1463
+ `${label} must be an integer in 0..${ZLINK_MAX_CAPACITY}.`
1464
+ );
1450
1465
  }
1451
1466
  return value;
1452
1467
  }
@@ -1458,13 +1473,6 @@ function requireNonNegativeSafeInteger(value: number, label: string): number {
1458
1473
  return value;
1459
1474
  }
1460
1475
 
1461
- function requirePublicWeight(value: number, label: string): number {
1462
- if (!Number.isInteger(value) || value < 0 || value > 10_000) {
1463
- throw new ZLinkConfigurationException(`${label} must be an integer in 0..10000.`);
1464
- }
1465
- return value;
1466
- }
1467
-
1468
1476
  function requireFactoryConfigure(
1469
1477
  configure: unknown
1470
1478
  ): asserts configure is (builder: unknown) => void {
@@ -1502,9 +1510,9 @@ function validateUserSpotFactoryOptions(
1502
1510
  }
1503
1511
 
1504
1512
  function validateStableTypeLimit(value: number | undefined): void {
1505
- if (value !== undefined && (!Number.isInteger(value) || value < 0 || value > 2_147_483_647)) {
1513
+ if (value !== undefined && !isValidCapacity(value)) {
1506
1514
  throw new ZLinkConfigurationException(
1507
- 'stableTypeLimit must be an integer from 0 through 2147483647.'
1515
+ `stableTypeLimit must be an integer from 0 through ${ZLINK_MAX_CAPACITY}.`
1508
1516
  );
1509
1517
  }
1510
1518
  }
@@ -1591,6 +1599,7 @@ interface MutableClientCapabilityOptions {
1591
1599
  }
1592
1600
 
1593
1601
  interface MutablePublisherCapabilityOptions {
1602
+ sendTimeoutMs?: number;
1594
1603
  bind?: string;
1595
1604
  bindHost?: string;
1596
1605
  advertiseHost?: string;
@@ -1705,8 +1714,8 @@ function requireRegistrationName(value: string, label: string): void {
1705
1714
  }
1706
1715
 
1707
1716
  function requireListenerPort(value: number, label: string): number {
1708
- if (!Number.isInteger(value) || value < 0 || value > 65_535) {
1709
- throw new ZLinkConfigurationException(`${label} must be between 0 and 65535.`);
1717
+ if (!isValidListenerPort(value)) {
1718
+ throw new ZLinkConfigurationException(`${label} must be between 0 and ${MAX_LISTENER_PORT}.`);
1710
1719
  }
1711
1720
  return value;
1712
1721
  }
@@ -198,6 +198,7 @@ export interface ZLinkClientCapabilityOptions {
198
198
  }
199
199
 
200
200
  export interface ZLinkPublisherCapabilityOptions {
201
+ readonly sendTimeoutMs?: number;
201
202
  readonly bind?: string;
202
203
  readonly bindHost?: string;
203
204
  readonly advertiseHost?: string;
@@ -1,12 +1,16 @@
1
1
  import type { Type, ZLinkSpot } from '../../contracts';
2
+ import { zlinkDefaultLocationOptions } from '../Locations';
2
3
  import { ZLinkConfigurationException } from './ConfigurationException';
4
+ import { requirePublicFanoutTopic } from './FanoutTopic';
5
+ import { RELOCATION_STATE_CHUNK_DATA_MAX_BYTES } from './InternalDefaults';
6
+ import { requirePublicWeight } from './RegistrationBuilderPolicy';
3
7
  import { requirePositiveInteger } from './RegistrationNormalizers';
4
8
  import type {
5
9
  ZLinkFrameworkRegistration,
6
10
  ZLinkFrameworkRegistrationOptions,
11
+ ZLinkMeshChannelOptions,
7
12
  ZLinkRouteChannelOptions,
8
13
  ZLinkRouteMeshChannelOptions,
9
- ZLinkMeshChannelOptions,
10
14
  ZLinkSpotNodeOptions,
11
15
  ZLinkSpotPubSubCapabilityOptions,
12
16
  ZLinkSpotRouterCapabilityOptions,
@@ -14,10 +18,9 @@ import type {
14
18
  ZLinkWorkerOptions
15
19
  } from './RegistrationTypes';
16
20
  import { isRouteClientEnabled, isRouteTransportDeclared } from './RouteChannelInternalState';
17
- import { validateTimerRegistration } from './TimerRegistrationValidator';
18
- import { zlinkDefaultLocationOptions } from '../Locations';
19
21
  import { requireValidSendTimeoutMs } from './SendTimeoutValidation';
20
- import { requirePublicFanoutTopic } from './FanoutTopic';
22
+ import { validateTimerRegistration } from './TimerRegistrationValidator';
23
+ const ROUTE_CACHE_FOLLOW_MARGIN_MS = 5000;
21
24
 
22
25
  export function validateFrameworkRegistration(
23
26
  registration: ZLinkFrameworkRegistration,
@@ -132,11 +135,12 @@ function validateLocationRegistration(registration: ZLinkFrameworkRegistration):
132
135
  }
133
136
  }
134
137
  if (
135
- options.ownerLeaseRenewIntervalMs + options.ownerLeaseRenewTimeoutMs >=
138
+ Math.max(options.ownerLeaseRenewIntervalMs, options.ownerLeaseRenewTimeoutMs) +
139
+ options.ownerLeaseRenewTimeoutMs >=
136
140
  options.ownerLeaseTtlMs - options.ownerLeaseFencingMarginMs
137
141
  ) {
138
142
  throw new ZLinkConfigurationException(
139
- 'ownerLeaseRenewIntervalMs + ownerLeaseRenewTimeoutMs must be less than ownerLeaseTtlMs - ownerLeaseFencingMarginMs.'
143
+ 'max(ownerLeaseRenewIntervalMs, ownerLeaseRenewTimeoutMs) + ownerLeaseRenewTimeoutMs must be less than ownerLeaseTtlMs - ownerLeaseFencingMarginMs.'
140
144
  );
141
145
  }
142
146
  for (const [name, value] of Object.entries({
@@ -147,9 +151,9 @@ function validateLocationRegistration(registration: ZLinkFrameworkRegistration):
147
151
  throw new ZLinkConfigurationException(`${name} must be a positive integer.`);
148
152
  }
149
153
  }
150
- if (options.relocationPayloadChunkLimitBytes > 67_108_864) {
154
+ if (options.relocationPayloadChunkLimitBytes > RELOCATION_STATE_CHUNK_DATA_MAX_BYTES) {
151
155
  throw new ZLinkConfigurationException(
152
- 'relocationPayloadChunkLimitBytes must not exceed the 64 MiB wire chunk bound.'
156
+ `relocationPayloadChunkLimitBytes must not exceed the ${RELOCATION_STATE_CHUNK_DATA_MAX_BYTES / (1024 * 1024)} MiB wire chunk bound.`
153
157
  );
154
158
  }
155
159
  for (const [name, value] of Object.entries({
@@ -173,10 +177,10 @@ function validateLocationRegistration(registration: ZLinkFrameworkRegistration):
173
177
  if (
174
178
  options.routeCacheMaxAgeMs > 0 &&
175
179
  options.messageFollowDurationMs > 0 &&
176
- options.routeCacheMaxAgeMs > options.messageFollowDurationMs - 5000
180
+ options.routeCacheMaxAgeMs > options.messageFollowDurationMs - ROUTE_CACHE_FOLLOW_MARGIN_MS
177
181
  ) {
178
182
  throw new ZLinkConfigurationException(
179
- 'routeCacheMaxAgeMs must be at least 5000 ms shorter than messageFollowDurationMs.'
183
+ `routeCacheMaxAgeMs must be at least ${ROUTE_CACHE_FOLLOW_MARGIN_MS} ms shorter than messageFollowDurationMs.`
180
184
  );
181
185
  }
182
186
  }
@@ -232,6 +236,10 @@ function validateChannelCapabilities(
232
236
  requireSocketOptions(`channel '${channelName}' server`, channel.server);
233
237
  }
234
238
  if (channel.publisher !== undefined) {
239
+ requireValidSendTimeoutMs(
240
+ `channel '${channelName}' publisher sendTimeoutMs`,
241
+ channel.publisher.sendTimeoutMs
242
+ );
235
243
  requireEndpoint(`channel '${channelName}' publisher`, channel.publisher.bind);
236
244
  validateListenerNetworkIdentity(
237
245
  `channel '${channelName}' publisher`,
@@ -714,9 +722,7 @@ function requirePeerWeight(label: string, value: number | undefined): void {
714
722
  if (value === undefined) {
715
723
  return;
716
724
  }
717
- if (!Number.isInteger(value) || value < 0 || value > 10_000) {
718
- throw new ZLinkConfigurationException(`${label} must be an integer in 0..10000.`);
719
- }
725
+ requirePublicWeight(value, label);
720
726
  }
721
727
 
722
728
  function requireSocketOptions(
@@ -1,6 +1,8 @@
1
1
  import { ZLinkTimerOverrunPolicy, type ZLinkTimerOptions } from '../Timers';
2
2
  import { ZLinkConfigurationException } from './ConfigurationException';
3
3
 
4
+ const MAX_TIMER_CATCH_UP_TICKS = 2_147_483_647;
5
+
4
6
  export function validateTimerRegistration(
5
7
  name: string,
6
8
  periodMs: number,
@@ -23,10 +25,10 @@ export function validateTimerRegistration(
23
25
  (options.maxCatchUpTicks === undefined ||
24
26
  !Number.isInteger(options.maxCatchUpTicks) ||
25
27
  options.maxCatchUpTicks < 1 ||
26
- options.maxCatchUpTicks > 2_147_483_647)
28
+ options.maxCatchUpTicks > MAX_TIMER_CATCH_UP_TICKS)
27
29
  ) {
28
30
  throw new ZLinkConfigurationException(
29
- 'SPOT timer MaxCatchUpTicks must be an integer from 1 through 2,147,483,647.'
31
+ `SPOT timer MaxCatchUpTicks must be an integer from 1 through ${MAX_TIMER_CATCH_UP_TICKS.toLocaleString('en-US')}.`
30
32
  );
31
33
  }
32
34
  }
@@ -194,6 +194,7 @@ export type ZLinkDispatchErrorReason =
194
194
  | 'reply_path_missing'
195
195
  | 'unexpected_reply'
196
196
  | 'backpressure'
197
+ | 'target_closed'
197
198
  | 'stale_target'
198
199
  | 'shutdown';
199
200
 
@@ -1,3 +1,5 @@
1
+ const MAX_CONTRACT_SCHEMA_DEPTH = 64;
2
+
1
3
  /** Describes the fields accepted by the default framework-json-v1 serializer. */
2
4
  export type ZLinkJsonSchema =
3
5
  | { readonly type: 'boolean' }
@@ -75,9 +77,13 @@ function normalizeJsonSchema(
75
77
  // Keep the runtime boundary defensive for JavaScript callers even though
76
78
  // the TypeScript signature describes the accepted shape.
77
79
  const runtimeSchema: unknown = schema;
78
- if (typeof runtimeSchema !== 'object' || runtimeSchema === null || depth > 64) {
80
+ if (
81
+ typeof runtimeSchema !== 'object' ||
82
+ runtimeSchema === null ||
83
+ depth > MAX_CONTRACT_SCHEMA_DEPTH
84
+ ) {
79
85
  throw new TypeError(
80
- 'ZLink packet JSON schema must be an acyclic object with at most 64 levels.'
86
+ `ZLink packet JSON schema must be an acyclic object with at most ${MAX_CONTRACT_SCHEMA_DEPTH} levels.`
81
87
  );
82
88
  }
83
89
  const normalizedSchema = runtimeSchema as ZLinkJsonSchema;
@@ -147,7 +153,7 @@ function normalizeJsonSchema(
147
153
  for (const [name, property] of Object.entries(
148
154
  runtimeProperties as Record<string, ZLinkJsonSchema>
149
155
  )) {
150
- if (name === '__proto__' || name === 'prototype' || name === 'constructor') {
156
+ if (isPrototypeKey(name)) {
151
157
  throw new TypeError(`ZLink packet JSON property '${name}' is not allowed.`);
152
158
  }
153
159
  properties[name] = normalizeJsonSchema(property, nextParents, depth + 1);
@@ -156,7 +162,7 @@ function normalizeJsonSchema(
156
162
  throw new TypeError('ZLink packet JSON required properties must be unique.');
157
163
  }
158
164
  for (const name of normalizedSchema.required) {
159
- if (name === '__proto__' || name === 'prototype' || name === 'constructor') {
165
+ if (isPrototypeKey(name)) {
160
166
  throw new TypeError(`ZLink packet JSON property '${name}' is not allowed.`);
161
167
  }
162
168
  if (!Object.prototype.hasOwnProperty.call(properties, name)) {
@@ -204,3 +210,7 @@ function canonicalContract(value: unknown): string {
204
210
  .map(([key, item]) => `${JSON.stringify(key)}:${canonicalContract(item)}`)
205
211
  .join(',')}}`;
206
212
  }
213
+
214
+ function isPrototypeKey(name: string): boolean {
215
+ return name === '__proto__' || name === 'prototype' || name === 'constructor';
216
+ }
@@ -70,7 +70,7 @@ export type ZLinkAuthorityMutation =
70
70
  | {
71
71
  readonly kind: 'put';
72
72
  readonly payload: Uint8Array;
73
- readonly generationTransition: 'preserve';
73
+ readonly generationTransition: 'preserve' | 'reincarnate';
74
74
  }
75
75
  | {
76
76
  /** Rebinds an authority retained by the same owner after lease recovery. */
@@ -101,13 +101,17 @@ export interface ZLinkAuthorityEntry {
101
101
  readonly snapshot: ZLinkAuthoritySnapshot;
102
102
  }
103
103
 
104
+ const ZLINK_AUTHORITY_MAX_SCAN_CURSOR_BYTES = 4096;
105
+
104
106
  export class ZLinkAuthorityScanCursor {
105
107
  private constructor(readonly encoded: string) {}
106
108
 
107
109
  static from(encoded: string): ZLinkAuthorityScanCursor {
108
110
  const byteLength = Buffer.byteLength(encoded, 'utf8');
109
- if (byteLength < 1 || byteLength > 4096) {
110
- throw new RangeError('Authority scan cursor must contain 1..4096 UTF-8 bytes.');
111
+ if (byteLength < 1 || byteLength > ZLINK_AUTHORITY_MAX_SCAN_CURSOR_BYTES) {
112
+ throw new RangeError(
113
+ `Authority scan cursor must contain 1..${ZLINK_AUTHORITY_MAX_SCAN_CURSOR_BYTES} UTF-8 bytes.`
114
+ );
111
115
  }
112
116
  return new ZLinkAuthorityScanCursor(encoded);
113
117
  }
@@ -26,7 +26,7 @@ export const zlinkRuntimeDefaultLocationOptions: Readonly<
26
26
  ownerLeaseRenewIntervalMs: 5000,
27
27
  ownerLeaseTtlMs: 15000,
28
28
  pollingIntervalMs: 1000,
29
- listPageSize: 1000,
29
+ listPageSize: 100,
30
30
  storeFailureGraceMs: 30000,
31
31
  ownerLeaseFencingMarginMs: 5000,
32
32
  ownerLeaseRenewTimeoutMs: 3000,
@@ -1,3 +1,12 @@
1
+ export const ZLINK_PROVIDER_MAX_PAGE_SIZE = 1000;
2
+ export const ZLINK_PROVIDER_MAX_KEY_BYTES = 1024;
3
+ export const ZLINK_PROVIDER_MAX_VALUE_BYTES = 1024 * 1024;
4
+ export const ZLINK_PROVIDER_MAX_VERSION_BYTES = 4096;
5
+ export const ZLINK_PROVIDER_MAX_WRITE_KEYS = 2048;
6
+ export const ZLINK_PROVIDER_MAX_WRITE_BYTES = 4 * 1024 * 1024;
7
+ export const ZLINK_PROVIDER_MAX_ENCODED_PAGE_BYTES = 4 * 1024 * 1024;
8
+ export const ZLINK_PROVIDER_MAX_SCAN_CURSOR_BYTES = 4096;
9
+
1
10
  declare const zlinkStoreKeyBrand: unique symbol;
2
11
  declare const zlinkStoreVersionBrand: unique symbol;
3
12
  declare const zlinkStoreScanCursorBrand: unique symbol;
@@ -34,6 +43,11 @@ export type ZLinkStoreCondition =
34
43
  readonly kind: 'version';
35
44
  readonly key: ZLinkStoreKey;
36
45
  readonly expected: ZLinkStoreVersion;
46
+ }
47
+ | {
48
+ readonly kind: 'value';
49
+ readonly key: ZLinkStoreKey;
50
+ readonly expected: Uint8Array;
37
51
  };
38
52
 
39
53
  export type ZLinkStoreMutation =
@@ -32,7 +32,7 @@ export interface ZLinkWorkerCall<T> {
32
32
  export interface ZLinkSpotCommonContext<TSpot = ZLinkSpot> {
33
33
  readonly meshName: string;
34
34
  readonly spotId: SpotId;
35
- readonly objectGeneration: number;
35
+ readonly objectGeneration: bigint;
36
36
  readonly nodeRid: RoutingId;
37
37
  readonly outbound: ZLinkSpotOutbound;
38
38
  addTimer<THandler extends ZLinkSpotTimerHandler<TSpot>>(
package/src/internal.ts CHANGED
@@ -29,3 +29,17 @@ export * from './runtime/foundation';
29
29
  export * from './runtime/foundation/service-authority-payload-codec';
30
30
  export * from './runtime/framework-errors-internal';
31
31
  export * from './contracts/Configuration/Registration';
32
+
33
+ export * from './contracts/Locations/Stores';
34
+ export { ZLINK_RELOCATION_MAX_BLOB_REFERENCE_BYTES } from './contracts/Configuration/InternalDefaults';
35
+ export { ZLINK_MAX_STABLE_TYPE_BYTES } from './contracts/Common/CoreTypes';
36
+ export {
37
+ MAX_LISTENER_PORT,
38
+ ZLINK_MAX_PUBLIC_WEIGHT,
39
+ ZLINK_MAX_CAPACITY,
40
+ isValidPublicWeight,
41
+ isValidPositiveCapacity,
42
+ isValidListenerPort,
43
+ isValidCapacity,
44
+ requirePublicWeight
45
+ } from './contracts/Configuration/RegistrationBuilderPolicy';
@@ -1,14 +1,17 @@
1
1
  export {
2
2
  ZLinkConfigurationException,
3
3
  createFrameworkRegistration,
4
+ normalizeFrameworkRegistration,
4
5
  hasActorManager,
5
6
  hasSpotNode,
6
7
  hasSpotPublisherClient
7
8
  } from './contracts/Configuration/Registration';
8
9
  export type * from './contracts/Configuration/RegistrationTypes';
9
10
  export type * from './contracts';
11
+ export { ZLinkSpotActorSend, ZLinkSpotActorRequest } from './contracts/Handlers/Attributes';
10
12
  export {
11
13
  registerActorFactory,
14
+ registerRelocationStore,
12
15
  validateRoutingIdPrefix,
13
16
  registerEntrySpot,
14
17
  registerSpotFactory,
@@ -73,6 +76,10 @@ export {
73
76
  registerHandlerFilterScope as registerIntegrationHandlerFilterScope,
74
77
  type ZLinkHandlerFilterScopeRunner
75
78
  } from './runtime/channels/handler-filter-scope';
79
+ export {
80
+ disposeOwnedInstance as disposeIntegrationHandler,
81
+ disposeOwnedInstances as disposeIntegrationHandlers
82
+ } from './runtime/handlers/handler-instance-scope';
76
83
 
77
84
  export interface ZLinkNestIntegrationRuntimeHost extends Pick<
78
85
  import('./contracts').ZLinkFrameworkRuntime,
@@ -134,7 +141,13 @@ export function createIntegrationChannelClient(
134
141
  registration: ZLinkFrameworkRegistration,
135
142
  runtime: ZLinkNestIntegrationRuntimeHost
136
143
  ): ZLinkChannelClient {
137
- return new DefaultZLinkChannelClient(registration, runtimeHost(runtime).channelTransport);
144
+ const host = runtimeHost(runtime);
145
+ return new DefaultZLinkChannelClient(
146
+ registration,
147
+ host.channelTransport,
148
+ host.routeTransport,
149
+ host.spotRouterChannelIdForMesh
150
+ );
138
151
  }
139
152
 
140
153
  export function createIntegrationFanoutClient(
@@ -152,7 +165,8 @@ export function createIntegrationRouteClient(
152
165
  return new DefaultZLinkRouteClient(
153
166
  registration,
154
167
  host.routeTransport,
155
- host.spotRouterChannelIdForMesh
168
+ host.spotRouterChannelIdForMesh,
169
+ host.channelTransport
156
170
  );
157
171
  }
158
172
 
@@ -180,14 +194,17 @@ export function createIntegrationActorManager(
180
194
  ): ZLinkActorManager {
181
195
  const host = runtimeHost(runtime);
182
196
  const runtimeOptions = host.createActorManagerOptions();
183
- const manager = new DefaultZLinkActorManager({
184
- actorFactories: registration.actorFactories,
185
- ...runtimeOptions,
186
- boundSessionFactory:
187
- runtimeOptions.boundSessionFactory ??
188
- host.boundSessionFactory.create.bind(host.boundSessionFactory),
189
- providerResolver
190
- });
197
+ const manager = new DefaultZLinkActorManager(
198
+ {
199
+ actorFactories: registration.actorFactories,
200
+ ...runtimeOptions,
201
+ boundSessionFactory:
202
+ runtimeOptions.boundSessionFactory ??
203
+ host.boundSessionFactory.create.bind(host.boundSessionFactory),
204
+ providerResolver
205
+ },
206
+ host.detachedTaskRunner()
207
+ );
191
208
  host.setActorManager(manager);
192
209
  return manager;
193
210
  }
@@ -229,6 +246,7 @@ export function createIntegrationSpotManager(
229
246
  ...(spotNode.spotActorRequestHandlers ?? [])
230
247
  ]),
231
248
  ...runtimeOptions,
249
+ detachedTaskRunner: host.detachedTaskRunner(),
232
250
  spotRouteResolver: runtimeOptions.spotRouteResolver,
233
251
  routedTransport: host.routeTransport,
234
252
  providerResolver,
@@ -38,15 +38,15 @@ export function throwIfAborted(signal: AbortSignal | undefined): void {
38
38
  }
39
39
  }
40
40
 
41
+ export function macrotaskBoundary(): Promise<void> {
42
+ return new Promise((resolve) => setImmediate(resolve));
43
+ }
44
+
41
45
  export function awaitWithAbort<T>(
42
46
  operation: Promise<T>,
43
47
  signal: AbortSignal | undefined,
44
48
  abortOperation?: () => void
45
49
  ): Promise<T> {
46
- if (signal?.aborted === true) {
47
- abortOperation?.();
48
- throw createAbortError();
49
- }
50
50
  if (signal === undefined) {
51
51
  return operation;
52
52
  }
@@ -63,7 +63,6 @@ export function awaitWithAbort<T>(
63
63
  abortOperation?.();
64
64
  reject(createAbortError());
65
65
  };
66
- signal.addEventListener('abort', abort, { once: true });
67
66
  operation.then(
68
67
  (value) => {
69
68
  if (settle()) resolve(value);
@@ -72,5 +71,7 @@ export function awaitWithAbort<T>(
72
71
  if (settle()) reject(error);
73
72
  }
74
73
  );
74
+ if (signal.aborted) abort();
75
+ else signal.addEventListener('abort', abort, { once: true });
75
76
  });
76
77
  }