@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
@@ -4,3 +4,9 @@ export type RoutingId = string;
4
4
  export type ActorId = string;
5
5
  /** Global logical Spot identity. It is not a transport RoutingId. */
6
6
  export type SpotId = string;
7
+ export declare const ZLINK_MAX_ACTOR_ID_BYTES = 255;
8
+ export declare const ZLINK_MAX_SPOT_ID_BYTES = 255;
9
+ export declare const ZLINK_MAX_ROUTING_ID_BYTES = 255;
10
+ export declare const ZLINK_MAX_STABLE_TYPE_BYTES = 255;
11
+ export declare const ZLINK_MAX_MESH_NAME_BYTES = 255;
12
+ export declare const ZLINK_MAX_IDENTITY_TEXT_BYTES = 255;
@@ -1,2 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZLINK_MAX_IDENTITY_TEXT_BYTES = exports.ZLINK_MAX_MESH_NAME_BYTES = exports.ZLINK_MAX_STABLE_TYPE_BYTES = exports.ZLINK_MAX_ROUTING_ID_BYTES = exports.ZLINK_MAX_SPOT_ID_BYTES = exports.ZLINK_MAX_ACTOR_ID_BYTES = void 0;
4
+ exports.ZLINK_MAX_ACTOR_ID_BYTES = 255;
5
+ exports.ZLINK_MAX_SPOT_ID_BYTES = 255;
6
+ exports.ZLINK_MAX_ROUTING_ID_BYTES = 255;
7
+ exports.ZLINK_MAX_STABLE_TYPE_BYTES = 255;
8
+ exports.ZLINK_MAX_MESH_NAME_BYTES = 255;
9
+ exports.ZLINK_MAX_IDENTITY_TEXT_BYTES = 255;
@@ -1,5 +1,5 @@
1
1
  export * from './ActorRef';
2
- export * from './CoreTypes';
2
+ export type { Type, RoutingId, ActorId, SpotId } from './CoreTypes';
3
3
  export * from './ZLinkEncodedPayload';
4
4
  export * from './ZLinkMessageMetadata';
5
5
  export { ZLinkMessage, isZLinkMessage } from './ZLinkMessage';
@@ -16,7 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.isZLinkMessage = exports.ZLinkMessage = void 0;
18
18
  __exportStar(require("./ActorRef"), exports);
19
- __exportStar(require("./CoreTypes"), exports);
20
19
  __exportStar(require("./ZLinkEncodedPayload"), exports);
21
20
  __exportStar(require("./ZLinkMessageMetadata"), exports);
22
21
  var ZLinkMessage_1 = require("./ZLinkMessage");
@@ -1,6 +1,14 @@
1
1
  /** Default complete header plus payload size accepted by a StreamNode. */
2
2
  export declare const DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE: number;
3
+ /** service-wire 스키마가 정한 relocation chunk payload의 바이트 상한입니다. */
4
+ export declare const RELOCATION_STATE_CHUNK_DATA_MAX_BYTES = 67108864;
5
+ /** Default MeshNode pending activation limit (spec 03-mesh-node §5.1). */
6
+ export declare const DEFAULT_ACTIVATION_CONCURRENCY_LIMIT = 128;
3
7
  /** Defaults shared by registration normalization and the runtime worker pool. */
4
8
  export declare const DEFAULT_WORKER_MIN_THREADS = 0;
5
9
  export declare const DEFAULT_WORKER_IDLE_TIMEOUT_MS = 30000;
6
10
  export declare function defaultWorkerMaxThreads(): number;
11
+ export declare const ZLINK_RELOCATION_MAX_BLOB_REFERENCE_BYTES = 4096;
12
+ export declare const AUTHORITY_ENVELOPE_MAX_BYTES: number;
13
+ export declare const CREATION_INTENT_MAX_BYTES: number;
14
+ export declare const CREATION_TERMINAL_ENVELOPE_MAX_BYTES: number;
@@ -33,14 +33,22 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.DEFAULT_WORKER_IDLE_TIMEOUT_MS = exports.DEFAULT_WORKER_MIN_THREADS = exports.DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE = void 0;
36
+ exports.CREATION_TERMINAL_ENVELOPE_MAX_BYTES = exports.CREATION_INTENT_MAX_BYTES = exports.AUTHORITY_ENVELOPE_MAX_BYTES = exports.ZLINK_RELOCATION_MAX_BLOB_REFERENCE_BYTES = exports.DEFAULT_WORKER_IDLE_TIMEOUT_MS = exports.DEFAULT_WORKER_MIN_THREADS = exports.DEFAULT_ACTIVATION_CONCURRENCY_LIMIT = exports.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES = exports.DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE = void 0;
37
37
  exports.defaultWorkerMaxThreads = defaultWorkerMaxThreads;
38
38
  const os = __importStar(require("node:os"));
39
39
  /** Default complete header plus payload size accepted by a StreamNode. */
40
40
  exports.DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE = 64 * 1024;
41
+ /** service-wire 스키마가 정한 relocation chunk payload의 바이트 상한입니다. */
42
+ exports.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES = 67_108_864;
43
+ /** Default MeshNode pending activation limit (spec 03-mesh-node §5.1). */
44
+ exports.DEFAULT_ACTIVATION_CONCURRENCY_LIMIT = 128;
41
45
  /** Defaults shared by registration normalization and the runtime worker pool. */
42
46
  exports.DEFAULT_WORKER_MIN_THREADS = 0;
43
47
  exports.DEFAULT_WORKER_IDLE_TIMEOUT_MS = 30_000;
44
48
  function defaultWorkerMaxThreads() {
45
49
  return Math.max(2, os.availableParallelism());
46
50
  }
51
+ exports.ZLINK_RELOCATION_MAX_BLOB_REFERENCE_BYTES = 4096;
52
+ exports.AUTHORITY_ENVELOPE_MAX_BYTES = 1024 * 1024;
53
+ exports.CREATION_INTENT_MAX_BYTES = 1024 * 1024;
54
+ exports.CREATION_TERMINAL_ENVELOPE_MAX_BYTES = 1024 * 1024;
@@ -1,11 +1,22 @@
1
1
  import type { ZLinkFrameworkOptions } from '../../contracts';
2
+ import { ZLinkApplicationJobQueueProfile } from '../Dispatch';
3
+ import type { ZLinkFrameworkRegistration, ZLinkFrameworkRegistrationOptions } from './RegistrationTypes';
4
+ import { validateFrameworkRegistration } from './RegistrationValidators';
5
+ export declare const DEFAULT_REQUEST_TIMEOUT_MS = 30000;
2
6
  export { ZLinkConfigurationException } from './ConfigurationException';
3
7
  export { createFrameworkOptions } from './RegistrationBuilders';
4
8
  export { hasActorManager, hasSpotNode, hasSpotPublisherClient, requirePositiveInteger } from './RegistrationNormalizers';
5
- import type { ZLinkFrameworkRegistration, ZLinkFrameworkRegistrationOptions } from './RegistrationTypes';
6
9
  export * from './RegistrationTypes';
7
- import { validateFrameworkRegistration } from './RegistrationValidators';
8
10
  export { validateFrameworkRegistration };
9
11
  export { normalizeEndpoint, buildAdvertisedEndpoint, parseEndpointHostPort } from './EndpointNotation';
12
+ export declare const DEFAULT_SESSION_REPLACEMENT_CALLBACK_TIMEOUT_MS = 30000;
10
13
  export declare function createFrameworkRegistration(options?: ZLinkFrameworkRegistrationOptions): ZLinkFrameworkRegistration;
14
+ export declare function normalizeFrameworkRegistration(options: ZLinkFrameworkRegistrationOptions): ZLinkFrameworkRegistration;
15
+ export declare const MAX_QUEUED_APPLICATION_JOBS = 2147483647n;
16
+ export declare const DEFAULT_PAUSE_THRESHOLD_PERCENT = 80;
17
+ export declare const DEFAULT_RESUME_THRESHOLD_PERCENT = 60;
18
+ export declare const APPLICATION_JOB_QUEUE_PERCENT_SCALE = 100;
19
+ export declare function isKnownApplicationJobQueueProfile(value: unknown): value is ZLinkApplicationJobQueueProfile;
20
+ export declare function validateApplicationJobQueueMaximum(value: bigint | undefined, createError: (message: string) => Error): void;
21
+ export declare function validateApplicationJobQueuePressureThresholds(pause: number, resume: number, createError: (message: string) => Error): void;
11
22
  export declare function createFrameworkRegistrationWithBuilder(configure: (options: ZLinkFrameworkOptions) => void): ZLinkFrameworkRegistration;
@@ -14,32 +14,44 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.parseEndpointHostPort = exports.buildAdvertisedEndpoint = exports.normalizeEndpoint = exports.validateFrameworkRegistration = exports.requirePositiveInteger = exports.hasSpotPublisherClient = exports.hasSpotNode = exports.hasActorManager = exports.createFrameworkOptions = exports.ZLinkConfigurationException = void 0;
17
+ exports.APPLICATION_JOB_QUEUE_PERCENT_SCALE = exports.DEFAULT_RESUME_THRESHOLD_PERCENT = exports.DEFAULT_PAUSE_THRESHOLD_PERCENT = exports.MAX_QUEUED_APPLICATION_JOBS = exports.DEFAULT_SESSION_REPLACEMENT_CALLBACK_TIMEOUT_MS = exports.parseEndpointHostPort = exports.buildAdvertisedEndpoint = exports.normalizeEndpoint = exports.validateFrameworkRegistration = exports.requirePositiveInteger = exports.hasSpotPublisherClient = exports.hasSpotNode = exports.hasActorManager = exports.createFrameworkOptions = exports.ZLinkConfigurationException = exports.DEFAULT_REQUEST_TIMEOUT_MS = void 0;
18
18
  exports.createFrameworkRegistration = createFrameworkRegistration;
19
+ exports.normalizeFrameworkRegistration = normalizeFrameworkRegistration;
20
+ exports.isKnownApplicationJobQueueProfile = isKnownApplicationJobQueueProfile;
21
+ exports.validateApplicationJobQueueMaximum = validateApplicationJobQueueMaximum;
22
+ exports.validateApplicationJobQueuePressureThresholds = validateApplicationJobQueuePressureThresholds;
19
23
  exports.createFrameworkRegistrationWithBuilder = createFrameworkRegistrationWithBuilder;
24
+ const zlink_1 = require("@zlink-systems/zlink");
25
+ const CoreTypes_1 = require("../Common/CoreTypes");
20
26
  const Dispatch_1 = require("../Dispatch");
27
+ const Options_1 = require("../Locations/Options");
28
+ const RegistrationBuilders_1 = require("./RegistrationBuilders");
29
+ const RegistrationCodecRegistry_1 = require("./RegistrationCodecRegistry");
30
+ const RegistrationNormalizers_1 = require("./RegistrationNormalizers");
31
+ const RegistrationValidators_1 = require("./RegistrationValidators");
32
+ Object.defineProperty(exports, "validateFrameworkRegistration", { enumerable: true, get: function () { return RegistrationValidators_1.validateFrameworkRegistration; } });
33
+ exports.DEFAULT_REQUEST_TIMEOUT_MS = 30_000;
21
34
  var ConfigurationException_1 = require("./ConfigurationException");
22
35
  Object.defineProperty(exports, "ZLinkConfigurationException", { enumerable: true, get: function () { return ConfigurationException_1.ZLinkConfigurationException; } });
23
- const RegistrationBuilders_1 = require("./RegistrationBuilders");
24
36
  var RegistrationBuilders_2 = require("./RegistrationBuilders");
25
37
  Object.defineProperty(exports, "createFrameworkOptions", { enumerable: true, get: function () { return RegistrationBuilders_2.createFrameworkOptions; } });
26
- const RegistrationCodecRegistry_1 = require("./RegistrationCodecRegistry");
27
- const RegistrationNormalizers_1 = require("./RegistrationNormalizers");
28
38
  var RegistrationNormalizers_2 = require("./RegistrationNormalizers");
29
39
  Object.defineProperty(exports, "hasActorManager", { enumerable: true, get: function () { return RegistrationNormalizers_2.hasActorManager; } });
30
40
  Object.defineProperty(exports, "hasSpotNode", { enumerable: true, get: function () { return RegistrationNormalizers_2.hasSpotNode; } });
31
41
  Object.defineProperty(exports, "hasSpotPublisherClient", { enumerable: true, get: function () { return RegistrationNormalizers_2.hasSpotPublisherClient; } });
32
42
  Object.defineProperty(exports, "requirePositiveInteger", { enumerable: true, get: function () { return RegistrationNormalizers_2.requirePositiveInteger; } });
33
43
  __exportStar(require("./RegistrationTypes"), exports);
34
- const RegistrationValidators_1 = require("./RegistrationValidators");
35
- Object.defineProperty(exports, "validateFrameworkRegistration", { enumerable: true, get: function () { return RegistrationValidators_1.validateFrameworkRegistration; } });
36
44
  var EndpointNotation_1 = require("./EndpointNotation");
37
45
  Object.defineProperty(exports, "normalizeEndpoint", { enumerable: true, get: function () { return EndpointNotation_1.normalizeEndpoint; } });
38
46
  Object.defineProperty(exports, "buildAdvertisedEndpoint", { enumerable: true, get: function () { return EndpointNotation_1.buildAdvertisedEndpoint; } });
39
47
  Object.defineProperty(exports, "parseEndpointHostPort", { enumerable: true, get: function () { return EndpointNotation_1.parseEndpointHostPort; } });
40
- const DEFAULT_MESSAGE_FOLLOW_DURATION_MS = 30_000;
41
- const DEFAULT_SESSION_REPLACEMENT_CALLBACK_TIMEOUT_MS = 30_000;
48
+ exports.DEFAULT_SESSION_REPLACEMENT_CALLBACK_TIMEOUT_MS = 30_000;
42
49
  function createFrameworkRegistration(options = {}) {
50
+ const registration = normalizeFrameworkRegistration(options);
51
+ (0, RegistrationValidators_1.validateFrameworkRegistration)(registration, options);
52
+ return registration;
53
+ }
54
+ function normalizeFrameworkRegistration(options) {
43
55
  const codecRegistry = (0, RegistrationCodecRegistry_1.createCodecRegistry)(options.codecs);
44
56
  const network = (0, RegistrationNormalizers_1.normalizeNetworkOptions)(options.network);
45
57
  const routeChannelOptions = (0, RegistrationNormalizers_1.toRouteChannelOptions)(options);
@@ -53,8 +65,8 @@ function createFrameworkRegistration(options = {}) {
53
65
  requestTimeoutMs: (0, RegistrationNormalizers_1.normalizeOptionalPositiveInteger)(options.requestTimeoutMs, 'requestTimeoutMs'),
54
66
  actorFactories: (0, RegistrationNormalizers_1.actorFactoriesFromSpotNodes)(spotNodes),
55
67
  actorTransferTimeoutMs: (0, RegistrationNormalizers_1.normalizeOptionalPositiveInteger)(options.actorTransferTimeoutMs, 'actorTransferTimeoutMs'),
56
- messageFollowDurationMs: normalizeNonNegativeInteger(options.messageFollowDurationMs, 'messageFollowDurationMs', DEFAULT_MESSAGE_FOLLOW_DURATION_MS),
57
- sessionReplacementCallbackTimeoutMs: normalizePositiveInteger(options.sessionReplacementCallbackTimeoutMs, 'sessionReplacementCallbackTimeoutMs', DEFAULT_SESSION_REPLACEMENT_CALLBACK_TIMEOUT_MS),
68
+ messageFollowDurationMs: normalizeNonNegativeInteger(options.messageFollowDurationMs, 'messageFollowDurationMs', Options_1.zlinkDefaultLocationOptions.messageFollowDurationMs),
69
+ sessionReplacementCallbackTimeoutMs: normalizePositiveInteger(options.sessionReplacementCallbackTimeoutMs, 'sessionReplacementCallbackTimeoutMs', exports.DEFAULT_SESSION_REPLACEMENT_CALLBACK_TIMEOUT_MS),
58
70
  spotFactories: (0, RegistrationNormalizers_1.toSpotFactorySet)(options.spotFactories, spotNodes),
59
71
  channels: (0, RegistrationNormalizers_1.toChannelMap)(options.channels, network),
60
72
  channelClients: (0, RegistrationNormalizers_1.channelNamesWith)(options.channels, (channel) => channel.client !== undefined),
@@ -73,36 +85,42 @@ function createFrameworkRegistration(options = {}) {
73
85
  applicationJobQueue: normalizeApplicationJobQueue(options.applicationJobQueue),
74
86
  locations: (0, RegistrationNormalizers_1.normalizeLocationRegistration)(options.locations)
75
87
  };
76
- (0, RegistrationValidators_1.validateFrameworkRegistration)(registration, options);
77
88
  return registration;
78
89
  }
79
- function normalizeApplicationJobQueue(value) {
80
- const profile = value?.profile ?? Dispatch_1.ZLinkApplicationJobQueueProfile.Balanced;
81
- if (!Object.values(Dispatch_1.ZLinkApplicationJobQueueProfile).includes(profile)) {
82
- throw new TypeError('applicationJobQueue.profile must be a supported profile.');
90
+ exports.MAX_QUEUED_APPLICATION_JOBS = 2147483647n;
91
+ exports.DEFAULT_PAUSE_THRESHOLD_PERCENT = 80;
92
+ exports.DEFAULT_RESUME_THRESHOLD_PERCENT = 60;
93
+ exports.APPLICATION_JOB_QUEUE_PERCENT_SCALE = 100;
94
+ function isKnownApplicationJobQueueProfile(value) {
95
+ return Object.values(Dispatch_1.ZLinkApplicationJobQueueProfile).includes(value);
96
+ }
97
+ function validateApplicationJobQueueMaximum(value, createError) {
98
+ if (value !== undefined &&
99
+ (typeof value !== 'bigint' || value < 1n || value > exports.MAX_QUEUED_APPLICATION_JOBS)) {
100
+ throw createError(`maxQueuedApplicationJobs must be a bigint in the range 1..${exports.MAX_QUEUED_APPLICATION_JOBS}.`);
83
101
  }
84
- const maxQueuedApplicationJobs = value?.maxQueuedApplicationJobs;
85
- if (maxQueuedApplicationJobs !== undefined &&
86
- (typeof maxQueuedApplicationJobs !== 'bigint' ||
87
- maxQueuedApplicationJobs < 1n ||
88
- maxQueuedApplicationJobs > 2147483647n)) {
89
- throw new TypeError('applicationJobQueue.maxQueuedApplicationJobs must be a bigint in the range 1..2147483647.');
102
+ }
103
+ function validateApplicationJobQueuePressureThresholds(pause, resume, createError) {
104
+ if (!Number.isInteger(pause) || pause < 1 || pause > exports.APPLICATION_JOB_QUEUE_PERCENT_SCALE) {
105
+ throw createError(`pauseThresholdPercent must be an integer in the range 1..${exports.APPLICATION_JOB_QUEUE_PERCENT_SCALE}.`);
90
106
  }
91
- const pauseThresholdPercent = value?.pauseThresholdPercent ?? 80;
92
- const resumeThresholdPercent = value?.resumeThresholdPercent ?? 60;
93
- if (!Number.isInteger(pauseThresholdPercent) ||
94
- pauseThresholdPercent < 1 ||
95
- pauseThresholdPercent > 100) {
96
- throw new TypeError('applicationJobQueue.pauseThresholdPercent must be an integer in the range 1..100.');
107
+ if (!Number.isInteger(resume) || resume < 0 || resume >= exports.APPLICATION_JOB_QUEUE_PERCENT_SCALE) {
108
+ throw createError(`resumeThresholdPercent must be an integer in the range 0..${exports.APPLICATION_JOB_QUEUE_PERCENT_SCALE - 1}.`);
97
109
  }
98
- if (!Number.isInteger(resumeThresholdPercent) ||
99
- resumeThresholdPercent < 0 ||
100
- resumeThresholdPercent > 99) {
101
- throw new TypeError('applicationJobQueue.resumeThresholdPercent must be an integer in the range 0..99.');
110
+ if (resume >= pause) {
111
+ throw createError('resumeThresholdPercent must be less than pauseThresholdPercent.');
102
112
  }
103
- if (resumeThresholdPercent >= pauseThresholdPercent) {
104
- throw new TypeError('applicationJobQueue.resumeThresholdPercent must be less than pauseThresholdPercent.');
113
+ }
114
+ function normalizeApplicationJobQueue(value) {
115
+ const profile = value?.profile ?? Dispatch_1.ZLinkApplicationJobQueueProfile.Balanced;
116
+ if (!isKnownApplicationJobQueueProfile(profile)) {
117
+ throw new TypeError('applicationJobQueue.profile must be a supported profile.');
105
118
  }
119
+ const maxQueuedApplicationJobs = value?.maxQueuedApplicationJobs;
120
+ validateApplicationJobQueueMaximum(maxQueuedApplicationJobs, (message) => new TypeError(`applicationJobQueue.${message}`));
121
+ const pauseThresholdPercent = value?.pauseThresholdPercent ?? exports.DEFAULT_PAUSE_THRESHOLD_PERCENT;
122
+ const resumeThresholdPercent = value?.resumeThresholdPercent ?? exports.DEFAULT_RESUME_THRESHOLD_PERCENT;
123
+ validateApplicationJobQueuePressureThresholds(pauseThresholdPercent, resumeThresholdPercent, (message) => new TypeError(`applicationJobQueue.${message}`));
106
124
  return Object.freeze({
107
125
  profile,
108
126
  maxQueuedApplicationJobs,
@@ -114,7 +132,8 @@ function normalizeCoreHwm(value) {
114
132
  if (value === undefined)
115
133
  return undefined;
116
134
  const { profile, memoryLimitBytes, budgetBytes } = value;
117
- if (profile !== undefined && (!Number.isInteger(profile) || profile < 0 || profile > 3)) {
135
+ if (profile !== undefined &&
136
+ (!Number.isInteger(profile) || profile < 0 || profile > zlink_1.AutoHwmProfile.Throughput)) {
118
137
  throw new TypeError('coreHwm.profile must be a Core Auto HWM profile value.');
119
138
  }
120
139
  for (const [name, bytes] of [
@@ -139,8 +158,11 @@ function normalizeMaintenanceWave(value) {
139
158
  if (value === undefined)
140
159
  return undefined;
141
160
  const byteLength = typeof value === 'string' ? new TextEncoder().encode(value).byteLength : 0;
142
- if (typeof value !== 'string' || byteLength === 0 || byteLength > 255 || value.includes('\0')) {
143
- throw new TypeError('maintenanceWave must be a 1..255 byte UTF-8 string without NUL.');
161
+ if (typeof value !== 'string' ||
162
+ byteLength === 0 ||
163
+ byteLength > CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES ||
164
+ value.includes('\0')) {
165
+ throw new TypeError(`maintenanceWave must be a 1..${CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES} byte UTF-8 string without NUL.`);
144
166
  }
145
167
  return value;
146
168
  }
@@ -1,4 +1,16 @@
1
- import type { Type, ZLinkEntrySpot, ZLinkSpot } from '../../contracts';
1
+ import type { Type, ZLinkEntrySpot, ZLinkSpot, ZLinkRelocationStore } from '../../contracts';
2
+ export declare const MAX_LISTENER_PORT = 65535;
3
+ export declare function registerRelocationStore(options: {
4
+ relocationStoreInstance?: ZLinkRelocationStore;
5
+ }, store: ZLinkRelocationStore): void;
6
+ export declare function isValidListenerPort(value: number): boolean;
7
+ export declare const ZLINK_MAX_CAPACITY = 2147483647;
8
+ export declare function isValidPositiveCapacity(value: number): boolean;
9
+ export declare function isValidCapacity(value: number): boolean;
10
+ export declare const ZLINK_DEFAULT_PUBLIC_WEIGHT = 100;
11
+ export declare const ZLINK_MAX_PUBLIC_WEIGHT = 10000;
12
+ export declare function isValidPublicWeight(value: number): boolean;
13
+ export declare function requirePublicWeight(value: number, label: string): number;
2
14
  export declare function validateMessageFollowDuration(timeoutMs: number): number;
3
15
  export declare function validateActorTransferTimeout(timeoutMs: number): number;
4
16
  export declare function validateSessionReplacementCallbackTimeout(timeoutMs: number): number;
@@ -1,5 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZLINK_MAX_PUBLIC_WEIGHT = exports.ZLINK_DEFAULT_PUBLIC_WEIGHT = exports.ZLINK_MAX_CAPACITY = exports.MAX_LISTENER_PORT = void 0;
4
+ exports.registerRelocationStore = registerRelocationStore;
5
+ exports.isValidListenerPort = isValidListenerPort;
6
+ exports.isValidPositiveCapacity = isValidPositiveCapacity;
7
+ exports.isValidCapacity = isValidCapacity;
8
+ exports.isValidPublicWeight = isValidPublicWeight;
9
+ exports.requirePublicWeight = requirePublicWeight;
3
10
  exports.validateMessageFollowDuration = validateMessageFollowDuration;
4
11
  exports.validateActorTransferTimeout = validateActorTransferTimeout;
5
12
  exports.validateSessionReplacementCallbackTimeout = validateSessionReplacementCallbackTimeout;
@@ -7,7 +14,36 @@ exports.registerEntrySpot = registerEntrySpot;
7
14
  exports.registerSpotFactory = registerSpotFactory;
8
15
  exports.registerActorFactory = registerActorFactory;
9
16
  exports.validateRoutingIdPrefix = validateRoutingIdPrefix;
17
+ const CoreTypes_1 = require("../Common/CoreTypes");
10
18
  const ConfigurationException_1 = require("./ConfigurationException");
19
+ exports.MAX_LISTENER_PORT = 65_535;
20
+ function registerRelocationStore(options, store) {
21
+ if (options.relocationStoreInstance !== undefined) {
22
+ throw new ConfigurationException_1.ZLinkConfigurationException('Relocation Store is already registered.');
23
+ }
24
+ options.relocationStoreInstance = store;
25
+ }
26
+ function isValidListenerPort(value) {
27
+ return Number.isInteger(value) && value >= 0 && value <= exports.MAX_LISTENER_PORT;
28
+ }
29
+ exports.ZLINK_MAX_CAPACITY = 0x7fff_ffff;
30
+ function isValidPositiveCapacity(value) {
31
+ return Number.isSafeInteger(value) && value > 0 && value <= exports.ZLINK_MAX_CAPACITY;
32
+ }
33
+ function isValidCapacity(value) {
34
+ return Number.isSafeInteger(value) && value >= 0 && value <= exports.ZLINK_MAX_CAPACITY;
35
+ }
36
+ exports.ZLINK_DEFAULT_PUBLIC_WEIGHT = 100;
37
+ exports.ZLINK_MAX_PUBLIC_WEIGHT = 10_000;
38
+ function isValidPublicWeight(value) {
39
+ return Number.isInteger(value) && value >= 0 && value <= exports.ZLINK_MAX_PUBLIC_WEIGHT;
40
+ }
41
+ function requirePublicWeight(value, label) {
42
+ if (!isValidPublicWeight(value)) {
43
+ throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be an integer in 0..${exports.ZLINK_MAX_PUBLIC_WEIGHT}.`);
44
+ }
45
+ return value;
46
+ }
11
47
  function validateMessageFollowDuration(timeoutMs) {
12
48
  if (!Number.isSafeInteger(timeoutMs) || timeoutMs < 0) {
13
49
  throw new ConfigurationException_1.ZLinkConfigurationException('Message Follow duration must be a non-negative safe integer.');
@@ -54,7 +90,8 @@ function validateRoutingIdPrefix(prefix) {
54
90
  if (prefix.trim().length === 0 || prefix !== prefix.trim()) {
55
91
  throw new ConfigurationException_1.ZLinkConfigurationException('Routing-id prefix must not be empty or padded.');
56
92
  }
57
- if (Buffer.byteLength(`${prefix}-00000000-0000-0000-0000-000000000000`, 'utf8') > 255) {
93
+ if (Buffer.byteLength(`${prefix}-00000000-0000-0000-0000-000000000000`, 'utf8') >
94
+ CoreTypes_1.ZLINK_MAX_ROUTING_ID_BYTES) {
58
95
  throw new ConfigurationException_1.ZLinkConfigurationException('Routing-id prefix is too long for a generated routing id.');
59
96
  }
60
97
  return prefix;
@@ -1,8 +1,7 @@
1
1
  import type { ZLinkFrameworkOptions, ZLinkLocationOptionValues, ZLinkStreamCompressionBuilder, ZLinkStreamCompressionCodec } from '../../contracts';
2
- import type { ZLinkDispatchOptions, ZLinkDispatchOptionsBuilder, ZLinkInboundDispatchOptions, ZLinkMessageFlowLogMode } from '../Dispatch';
3
- import { ZLinkApplicationJobQueueProfile, ZLinkCoreHwmProfile } from '../Dispatch';
2
+ import { type ZLinkDispatchOptions, type ZLinkDispatchOptionsBuilder, type ZLinkInboundDispatchOptions, type ZLinkMessageFlowLogMode, ZLinkApplicationJobQueueProfile, ZLinkCoreHwmProfile } from '../Dispatch';
4
3
  import type { ZLinkLocationOptions } from '../Locations';
5
- import type { ZLinkApplicationJobQueueOptions, ZLinkFrameworkRegistrationOptions, ZLinkCoreHwmOptions } from './RegistrationTypes';
4
+ import type { ZLinkApplicationJobQueueOptions, ZLinkCoreHwmOptions, ZLinkFrameworkRegistrationOptions } from './RegistrationTypes';
6
5
  export declare function createFrameworkOptions(configure: (options: ZLinkFrameworkOptions) => void): ZLinkFrameworkRegistrationOptions;
7
6
  export declare class DefaultDispatchOptionsBuilder implements ZLinkDispatchOptionsBuilder {
8
7
  private readonly dispatch;
@@ -2,19 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DefaultStreamCompressionBuilder = exports.DefaultLocationOptionsBuilder = exports.DefaultInboundDispatchOptionsBuilder = exports.DefaultDispatchOptionsBuilder = void 0;
4
4
  exports.createFrameworkOptions = createFrameworkOptions;
5
- const ObjectRoles_1 = require("./ObjectRoles");
6
- const Attributes_1 = require("../Handlers/Attributes");
7
- const Dispatch_1 = require("../Dispatch");
8
5
  const zlink_1 = require("@zlink-systems/zlink");
9
- const RuntimeEndpointConnections_1 = require("./RuntimeEndpointConnections");
6
+ const CoreTypes_1 = require("../Common/CoreTypes");
7
+ const Dispatch_1 = require("../Dispatch");
8
+ const Attributes_1 = require("../Handlers/Attributes");
10
9
  const ConfigurationException_1 = require("./ConfigurationException");
11
- const RegistrationCodecRegistry_1 = require("./RegistrationCodecRegistry");
12
- const RegistrationNormalizers_1 = require("./RegistrationNormalizers");
10
+ const DiagnosticsValidation_1 = require("./DiagnosticsValidation");
13
11
  const EndpointNotation_1 = require("./EndpointNotation");
12
+ const FanoutTopic_1 = require("./FanoutTopic");
14
13
  const InternalDefaults_1 = require("./InternalDefaults");
14
+ const ObjectRoles_1 = require("./ObjectRoles");
15
15
  const RegistrationBuilderPolicy_1 = require("./RegistrationBuilderPolicy");
16
- const DiagnosticsValidation_1 = require("./DiagnosticsValidation");
17
- const FanoutTopic_1 = require("./FanoutTopic");
16
+ const RegistrationCodecRegistry_1 = require("./RegistrationCodecRegistry");
17
+ const RegistrationNormalizers_1 = require("./RegistrationNormalizers");
18
+ const RuntimeEndpointConnections_1 = require("./RuntimeEndpointConnections");
18
19
  function createFrameworkOptions(configure) {
19
20
  const builder = new ZLinkFrameworkOptionsBuilder();
20
21
  configure(builder);
@@ -54,7 +55,7 @@ class ZLinkFrameworkOptionsBuilder {
54
55
  }
55
56
  addRelocationStore(store) {
56
57
  this.options.locations ??= { options: {} };
57
- this.options.locations.relocationStoreInstance = store;
58
+ (0, RegistrationBuilderPolicy_1.registerRelocationStore)(this.options.locations, store);
58
59
  return this;
59
60
  }
60
61
  setApplicationVersion(version) {
@@ -470,8 +471,8 @@ class DefaultClientServerChannelServerBuilder {
470
471
  this.channel = channel;
471
472
  }
472
473
  listen(port = 0) {
473
- if (!Number.isInteger(port) || port < 0 || port > 65_535) {
474
- throw new ConfigurationException_1.ZLinkConfigurationException(`ClientServer channel '${this.name}' port must be between 0 and 65535.`);
474
+ if (!(0, RegistrationBuilderPolicy_1.isValidListenerPort)(port)) {
475
+ throw new ConfigurationException_1.ZLinkConfigurationException(`ClientServer channel '${this.name}' port must be between 0 and ${RegistrationBuilderPolicy_1.MAX_LISTENER_PORT}.`);
475
476
  }
476
477
  this.server.port = port;
477
478
  this.updateBind();
@@ -490,7 +491,7 @@ class DefaultClientServerChannelServerBuilder {
490
491
  return this;
491
492
  }
492
493
  setWeight(weight) {
493
- this.server.weight = requirePublicWeight(weight, `ClientServer channel '${this.name}' weight`);
494
+ this.server.weight = (0, RegistrationBuilderPolicy_1.requirePublicWeight)(weight, `ClientServer channel '${this.name}' weight`);
494
495
  return this;
495
496
  }
496
497
  addHandlerGroup(groupName) {
@@ -695,8 +696,8 @@ class DefaultMeshNodeBuilder {
695
696
  this.node.router.port = undefined;
696
697
  return this;
697
698
  }
698
- if (!Number.isInteger(endpointOrPort) || endpointOrPort < 0 || endpointOrPort > 65_535) {
699
- throw new ConfigurationException_1.ZLinkConfigurationException(`RouteMesh '${this.name}' port must be between 0 and 65535.`);
699
+ if (!(0, RegistrationBuilderPolicy_1.isValidListenerPort)(endpointOrPort)) {
700
+ throw new ConfigurationException_1.ZLinkConfigurationException(`RouteMesh '${this.name}' port must be between 0 and ${RegistrationBuilderPolicy_1.MAX_LISTENER_PORT}.`);
700
701
  }
701
702
  this.node.router.port = endpointOrPort;
702
703
  this.updateBind();
@@ -725,7 +726,7 @@ class DefaultMeshNodeBuilder {
725
726
  return this;
726
727
  }
727
728
  setPlacementWeight(weight) {
728
- this.node.placementWeight = requirePublicWeight(weight, 'Placement weight');
729
+ this.node.placementWeight = (0, RegistrationBuilderPolicy_1.requirePublicWeight)(weight, 'Placement weight');
729
730
  return this;
730
731
  }
731
732
  setActorLimit(limit) {
@@ -1040,7 +1041,7 @@ class DefaultMeshChannelServerBuilder {
1040
1041
  this.channel = channel;
1041
1042
  }
1042
1043
  setWeight(weight) {
1043
- this.channel.weight = requirePublicWeight(weight, 'Mesh channel weight');
1044
+ this.channel.weight = (0, RegistrationBuilderPolicy_1.requirePublicWeight)(weight, 'Mesh channel weight');
1044
1045
  return this;
1045
1046
  }
1046
1047
  addHandlerGroup(groupName) {
@@ -1110,20 +1111,20 @@ function endpointList(endpoint) {
1110
1111
  }
1111
1112
  function requireStableObjectType(value, label) {
1112
1113
  const byteLength = Buffer.byteLength(value, 'utf8');
1113
- if (byteLength < 1 || byteLength > 255 || value.includes('\0')) {
1114
- throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must contain 1..255 UTF-8 bytes and no NUL.`);
1114
+ if (byteLength < 1 || byteLength > CoreTypes_1.ZLINK_MAX_STABLE_TYPE_BYTES || value.includes('\0')) {
1115
+ throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must contain 1..${CoreTypes_1.ZLINK_MAX_STABLE_TYPE_BYTES} UTF-8 bytes and no NUL.`);
1115
1116
  }
1116
1117
  return value;
1117
1118
  }
1118
1119
  function requirePositiveCapacity(value, label) {
1119
- if (!Number.isSafeInteger(value) || value <= 0 || value > 0x7fff_ffff) {
1120
- throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be an integer in 1..2147483647.`);
1120
+ if (!(0, RegistrationBuilderPolicy_1.isValidPositiveCapacity)(value)) {
1121
+ throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be an integer in 1..${RegistrationBuilderPolicy_1.ZLINK_MAX_CAPACITY}.`);
1121
1122
  }
1122
1123
  return value;
1123
1124
  }
1124
1125
  function requireCapacity(value, label) {
1125
- if (!Number.isSafeInteger(value) || value < 0 || value > 0x7fff_ffff) {
1126
- throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be an integer in 0..2147483647.`);
1126
+ if (!(0, RegistrationBuilderPolicy_1.isValidCapacity)(value)) {
1127
+ throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be an integer in 0..${RegistrationBuilderPolicy_1.ZLINK_MAX_CAPACITY}.`);
1127
1128
  }
1128
1129
  return value;
1129
1130
  }
@@ -1133,12 +1134,6 @@ function requireNonNegativeSafeInteger(value, label) {
1133
1134
  }
1134
1135
  return value;
1135
1136
  }
1136
- function requirePublicWeight(value, label) {
1137
- if (!Number.isInteger(value) || value < 0 || value > 10_000) {
1138
- throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be an integer in 0..10000.`);
1139
- }
1140
- return value;
1141
- }
1142
1137
  function requireFactoryConfigure(configure) {
1143
1138
  if (typeof configure !== 'function') {
1144
1139
  throw new ConfigurationException_1.ZLinkConfigurationException('Object factory requires a configure callback.');
@@ -1162,8 +1157,8 @@ function validateUserSpotFactoryOptions(options) {
1162
1157
  }
1163
1158
  }
1164
1159
  function validateStableTypeLimit(value) {
1165
- if (value !== undefined && (!Number.isInteger(value) || value < 0 || value > 2_147_483_647)) {
1166
- throw new ConfigurationException_1.ZLinkConfigurationException('stableTypeLimit must be an integer from 0 through 2147483647.');
1160
+ if (value !== undefined && !(0, RegistrationBuilderPolicy_1.isValidCapacity)(value)) {
1161
+ throw new ConfigurationException_1.ZLinkConfigurationException(`stableTypeLimit must be an integer from 0 through ${RegistrationBuilderPolicy_1.ZLINK_MAX_CAPACITY}.`);
1167
1162
  }
1168
1163
  }
1169
1164
  function rejectDuplicateObjectType(registrations, stableType, meshName) {
@@ -1180,8 +1175,8 @@ function requireRegistrationName(value, label) {
1180
1175
  }
1181
1176
  }
1182
1177
  function requireListenerPort(value, label) {
1183
- if (!Number.isInteger(value) || value < 0 || value > 65_535) {
1184
- throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be between 0 and 65535.`);
1178
+ if (!(0, RegistrationBuilderPolicy_1.isValidListenerPort)(value)) {
1179
+ throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be between 0 and ${RegistrationBuilderPolicy_1.MAX_LISTENER_PORT}.`);
1185
1180
  }
1186
1181
  return value;
1187
1182
  }
@@ -169,6 +169,7 @@ export interface ZLinkClientCapabilityOptions {
169
169
  readonly maxMessageSize?: number;
170
170
  }
171
171
  export interface ZLinkPublisherCapabilityOptions {
172
+ readonly sendTimeoutMs?: number;
172
173
  readonly bind?: string;
173
174
  readonly bindHost?: string;
174
175
  readonly advertiseHost?: string;
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateFrameworkRegistration = validateFrameworkRegistration;
4
+ const Locations_1 = require("../Locations");
4
5
  const ConfigurationException_1 = require("./ConfigurationException");
6
+ const FanoutTopic_1 = require("./FanoutTopic");
7
+ const InternalDefaults_1 = require("./InternalDefaults");
8
+ const RegistrationBuilderPolicy_1 = require("./RegistrationBuilderPolicy");
5
9
  const RegistrationNormalizers_1 = require("./RegistrationNormalizers");
6
10
  const RouteChannelInternalState_1 = require("./RouteChannelInternalState");
7
- const TimerRegistrationValidator_1 = require("./TimerRegistrationValidator");
8
- const Locations_1 = require("../Locations");
9
11
  const SendTimeoutValidation_1 = require("./SendTimeoutValidation");
10
- const FanoutTopic_1 = require("./FanoutTopic");
12
+ const TimerRegistrationValidator_1 = require("./TimerRegistrationValidator");
13
+ const ROUTE_CACHE_FOLLOW_MARGIN_MS = 5000;
11
14
  function validateFrameworkRegistration(registration, _options = {}) {
12
15
  validateListenerNetworkIdentity('process network', registration.network.bindHost, registration.network.advertiseHost);
13
16
  const actorCapableSpotNodes = [...registration.spotNodes.values()].filter((spotNode) => toActorFactoryCount(spotNode.actorFactories) > 0);
@@ -88,9 +91,10 @@ function validateLocationRegistration(registration) {
88
91
  throw new ConfigurationException_1.ZLinkConfigurationException(`${name} must be a finite positive number.`);
89
92
  }
90
93
  }
91
- if (options.ownerLeaseRenewIntervalMs + options.ownerLeaseRenewTimeoutMs >=
94
+ if (Math.max(options.ownerLeaseRenewIntervalMs, options.ownerLeaseRenewTimeoutMs) +
95
+ options.ownerLeaseRenewTimeoutMs >=
92
96
  options.ownerLeaseTtlMs - options.ownerLeaseFencingMarginMs) {
93
- throw new ConfigurationException_1.ZLinkConfigurationException('ownerLeaseRenewIntervalMs + ownerLeaseRenewTimeoutMs must be less than ownerLeaseTtlMs - ownerLeaseFencingMarginMs.');
97
+ throw new ConfigurationException_1.ZLinkConfigurationException('max(ownerLeaseRenewIntervalMs, ownerLeaseRenewTimeoutMs) + ownerLeaseRenewTimeoutMs must be less than ownerLeaseTtlMs - ownerLeaseFencingMarginMs.');
94
98
  }
95
99
  for (const [name, value] of Object.entries({
96
100
  relocationCutoverWaitTimeoutMs: options.relocationCutoverWaitTimeoutMs,
@@ -100,8 +104,8 @@ function validateLocationRegistration(registration) {
100
104
  throw new ConfigurationException_1.ZLinkConfigurationException(`${name} must be a positive integer.`);
101
105
  }
102
106
  }
103
- if (options.relocationPayloadChunkLimitBytes > 67_108_864) {
104
- throw new ConfigurationException_1.ZLinkConfigurationException('relocationPayloadChunkLimitBytes must not exceed the 64 MiB wire chunk bound.');
107
+ if (options.relocationPayloadChunkLimitBytes > InternalDefaults_1.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES) {
108
+ throw new ConfigurationException_1.ZLinkConfigurationException(`relocationPayloadChunkLimitBytes must not exceed the ${InternalDefaults_1.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES / (1024 * 1024)} MiB wire chunk bound.`);
105
109
  }
106
110
  for (const [name, value] of Object.entries({
107
111
  relocationInFlightPayloadBudgetBytes: options.relocationInFlightPayloadBudgetBytes,
@@ -121,8 +125,8 @@ function validateLocationRegistration(registration) {
121
125
  }
122
126
  if (options.routeCacheMaxAgeMs > 0 &&
123
127
  options.messageFollowDurationMs > 0 &&
124
- options.routeCacheMaxAgeMs > options.messageFollowDurationMs - 5000) {
125
- throw new ConfigurationException_1.ZLinkConfigurationException('routeCacheMaxAgeMs must be at least 5000 ms shorter than messageFollowDurationMs.');
128
+ options.routeCacheMaxAgeMs > options.messageFollowDurationMs - ROUTE_CACHE_FOLLOW_MARGIN_MS) {
129
+ throw new ConfigurationException_1.ZLinkConfigurationException(`routeCacheMaxAgeMs must be at least ${ROUTE_CACHE_FOLLOW_MARGIN_MS} ms shorter than messageFollowDurationMs.`);
126
130
  }
127
131
  }
128
132
  function requireNonNegativeInteger(label, value) {
@@ -164,6 +168,7 @@ function validateChannelCapabilities(channels, peerLocationConfigured) {
164
168
  requireSocketOptions(`channel '${channelName}' server`, channel.server);
165
169
  }
166
170
  if (channel.publisher !== undefined) {
171
+ (0, SendTimeoutValidation_1.requireValidSendTimeoutMs)(`channel '${channelName}' publisher sendTimeoutMs`, channel.publisher.sendTimeoutMs);
167
172
  requireEndpoint(`channel '${channelName}' publisher`, channel.publisher.bind);
168
173
  validateListenerNetworkIdentity(`channel '${channelName}' publisher`, channel.publisher.bindHost, channel.publisher.advertiseHost);
169
174
  validateFanoutPublisherIdentity(channelName, channel.routingId, channel.routingIdPrefix, peerLocationConfigured);
@@ -446,9 +451,7 @@ function requirePeerWeight(label, value) {
446
451
  if (value === undefined) {
447
452
  return;
448
453
  }
449
- if (!Number.isInteger(value) || value < 0 || value > 10_000) {
450
- throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be an integer in 0..10000.`);
451
- }
454
+ (0, RegistrationBuilderPolicy_1.requirePublicWeight)(value, label);
452
455
  }
453
456
  function requireSocketOptions(label, options) {
454
457
  requireNonNegativeInteger(`${label} sendHighWaterMark`, options.sendHighWaterMark);
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateTimerRegistration = validateTimerRegistration;
4
4
  const Timers_1 = require("../Timers");
5
5
  const ConfigurationException_1 = require("./ConfigurationException");
6
+ const MAX_TIMER_CATCH_UP_TICKS = 2_147_483_647;
6
7
  function validateTimerRegistration(name, periodMs, options) {
7
8
  if (name.trim().length === 0) {
8
9
  throw new ConfigurationException_1.ZLinkConfigurationException('SPOT timer name must not be empty.');
@@ -18,7 +19,7 @@ function validateTimerRegistration(name, periodMs, options) {
18
19
  (options.maxCatchUpTicks === undefined ||
19
20
  !Number.isInteger(options.maxCatchUpTicks) ||
20
21
  options.maxCatchUpTicks < 1 ||
21
- options.maxCatchUpTicks > 2_147_483_647)) {
22
- throw new ConfigurationException_1.ZLinkConfigurationException('SPOT timer MaxCatchUpTicks must be an integer from 1 through 2,147,483,647.');
22
+ options.maxCatchUpTicks > MAX_TIMER_CATCH_UP_TICKS)) {
23
+ throw new ConfigurationException_1.ZLinkConfigurationException(`SPOT timer MaxCatchUpTicks must be an integer from 1 through ${MAX_TIMER_CATCH_UP_TICKS.toLocaleString('en-US')}.`);
23
24
  }
24
25
  }
@@ -162,7 +162,7 @@ export declare enum ZLinkDispatchMessageKind {
162
162
  ActorRequest = "actorRequest",
163
163
  ActorSend = "actorSend"
164
164
  }
165
- export type ZLinkDispatchErrorReason = 'no_handler' | 'decode_error' | 'handler_exception' | 'invalid_frame' | 'reply_path_missing' | 'unexpected_reply' | 'backpressure' | 'stale_target' | 'shutdown';
165
+ export type ZLinkDispatchErrorReason = 'no_handler' | 'decode_error' | 'handler_exception' | 'invalid_frame' | 'reply_path_missing' | 'unexpected_reply' | 'backpressure' | 'target_closed' | 'stale_target' | 'shutdown';
166
166
  export type ZLinkDispatchErrorAction = 'reply_error' | 'fail_caller' | 'drop';
167
167
  export declare enum ZLinkRuntimeDispatchErrorReason {
168
168
  HandlerMissing = "no_handler",