@zlink-systems/framework 0.10.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 (1121) hide show
  1. package/LICENSE +105 -0
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/contracts/Actors/ZLinkActor.d.ts +7 -0
  4. package/dist/contracts/Actors/ZLinkActor.js +2 -0
  5. package/dist/contracts/Actors/ZLinkActorClient.d.ts +15 -0
  6. package/dist/contracts/Actors/ZLinkActorClient.js +2 -0
  7. package/dist/contracts/Actors/ZLinkActorContext.d.ts +14 -0
  8. package/dist/contracts/Actors/ZLinkActorContext.js +2 -0
  9. package/dist/contracts/Actors/ZLinkActorFactory.d.ts +34 -0
  10. package/dist/contracts/Actors/ZLinkActorFactory.js +2 -0
  11. package/dist/contracts/Actors/ZLinkActorManager.d.ts +34 -0
  12. package/dist/contracts/Actors/ZLinkActorManager.js +2 -0
  13. package/dist/contracts/Actors/index.d.ts +5 -0
  14. package/dist/contracts/Actors/index.js +21 -0
  15. package/dist/contracts/Channels/Calls.d.ts +28 -0
  16. package/dist/contracts/Channels/Calls.js +2 -0
  17. package/dist/contracts/Channels/IZLinkChannelClient.d.ts +5 -0
  18. package/dist/contracts/Channels/IZLinkChannelClient.js +2 -0
  19. package/dist/contracts/Channels/IZLinkFanoutClient.d.ts +11 -0
  20. package/dist/contracts/Channels/IZLinkFanoutClient.js +2 -0
  21. package/dist/contracts/Channels/RouteCalls.d.ts +11 -0
  22. package/dist/contracts/Channels/RouteCalls.js +2 -0
  23. package/dist/contracts/Channels/index.d.ts +4 -0
  24. package/dist/contracts/Channels/index.js +20 -0
  25. package/dist/contracts/Codecs/IZLinkCodecRegistryBuilder.d.ts +14 -0
  26. package/dist/contracts/Codecs/IZLinkCodecRegistryBuilder.js +2 -0
  27. package/dist/contracts/Codecs/ZLinkMessageSerializer.d.ts +5 -0
  28. package/dist/contracts/Codecs/ZLinkMessageSerializer.js +2 -0
  29. package/dist/contracts/Codecs/index.d.ts +2 -0
  30. package/dist/contracts/Codecs/index.js +18 -0
  31. package/dist/contracts/Common/ActorRef.d.ts +7 -0
  32. package/dist/contracts/Common/ActorRef.js +2 -0
  33. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  34. package/dist/contracts/Common/CoreTypes.js +2 -0
  35. package/dist/contracts/Common/Message.d.ts +9 -0
  36. package/dist/contracts/Common/Message.js +2 -0
  37. package/dist/contracts/Common/ZLinkEncodedPayload.d.ts +12 -0
  38. package/dist/contracts/Common/ZLinkEncodedPayload.js +41 -0
  39. package/dist/contracts/Common/ZLinkMessage.d.ts +25 -0
  40. package/dist/contracts/Common/ZLinkMessage.js +127 -0
  41. package/dist/contracts/Common/ZLinkMessageMetadata.d.ts +10 -0
  42. package/dist/contracts/Common/ZLinkMessageMetadata.js +49 -0
  43. package/dist/contracts/Common/ZLinkProviderResolver.d.ts +5 -0
  44. package/dist/contracts/Common/ZLinkProviderResolver.js +2 -0
  45. package/dist/contracts/Common/encoded-payload-storage.d.ts +3 -0
  46. package/dist/contracts/Common/encoded-payload-storage.js +18 -0
  47. package/dist/contracts/Common/index.d.ts +5 -0
  48. package/dist/contracts/Common/index.js +24 -0
  49. package/dist/contracts/Configuration/Builders.d.ts +153 -0
  50. package/dist/contracts/Configuration/Builders.js +2 -0
  51. package/dist/contracts/Configuration/CodecContentType.d.ts +2 -0
  52. package/dist/contracts/Configuration/CodecContentType.js +68 -0
  53. package/dist/contracts/Configuration/CodecSerializerSelection.d.ts +9 -0
  54. package/dist/contracts/Configuration/CodecSerializerSelection.js +15 -0
  55. package/dist/contracts/Configuration/Configs.d.ts +23 -0
  56. package/dist/contracts/Configuration/Configs.js +2 -0
  57. package/dist/contracts/Configuration/ConfigurationException.d.ts +3 -0
  58. package/dist/contracts/Configuration/ConfigurationException.js +10 -0
  59. package/dist/contracts/Configuration/Connections.d.ts +5 -0
  60. package/dist/contracts/Configuration/Connections.js +2 -0
  61. package/dist/contracts/Configuration/DiagnosticsValidation.d.ts +3 -0
  62. package/dist/contracts/Configuration/DiagnosticsValidation.js +23 -0
  63. package/dist/contracts/Configuration/EndpointNotation.d.ts +77 -0
  64. package/dist/contracts/Configuration/EndpointNotation.js +218 -0
  65. package/dist/contracts/Configuration/InternalDefaults.d.ts +7 -0
  66. package/dist/contracts/Configuration/InternalDefaults.js +47 -0
  67. package/dist/contracts/Configuration/ObjectRoles.d.ts +38 -0
  68. package/dist/contracts/Configuration/ObjectRoles.js +13 -0
  69. package/dist/contracts/Configuration/Registration.d.ts +11 -0
  70. package/dist/contracts/Configuration/Registration.js +162 -0
  71. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +14 -0
  72. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +61 -0
  73. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +61 -0
  74. package/dist/contracts/Configuration/RegistrationBuilders.js +1181 -0
  75. package/dist/contracts/Configuration/RegistrationCodecRegistry.d.ts +19 -0
  76. package/dist/contracts/Configuration/RegistrationCodecRegistry.js +79 -0
  77. package/dist/contracts/Configuration/RegistrationNormalizers.d.ts +23 -0
  78. package/dist/contracts/Configuration/RegistrationNormalizers.js +319 -0
  79. package/dist/contracts/Configuration/RegistrationTypes.d.ts +414 -0
  80. package/dist/contracts/Configuration/RegistrationTypes.js +2 -0
  81. package/dist/contracts/Configuration/RegistrationValidators.d.ts +2 -0
  82. package/dist/contracts/Configuration/RegistrationValidators.js +461 -0
  83. package/dist/contracts/Configuration/RouteChannelInternalState.d.ts +10 -0
  84. package/dist/contracts/Configuration/RouteChannelInternalState.js +39 -0
  85. package/dist/contracts/Configuration/RuntimeEndpointConnections.d.ts +9 -0
  86. package/dist/contracts/Configuration/RuntimeEndpointConnections.js +80 -0
  87. package/dist/contracts/Configuration/SendTimeoutValidation.d.ts +2 -0
  88. package/dist/contracts/Configuration/SendTimeoutValidation.js +16 -0
  89. package/dist/contracts/Configuration/TimerRegistrationValidator.d.ts +2 -0
  90. package/dist/contracts/Configuration/TimerRegistrationValidator.js +24 -0
  91. package/dist/contracts/Configuration/index.d.ts +5 -0
  92. package/dist/contracts/Configuration/index.js +18 -0
  93. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +181 -0
  94. package/dist/contracts/Dispatch/ZLinkDispatchOptions.js +89 -0
  95. package/dist/contracts/Dispatch/ZLinkFlowOrigin.d.ts +1 -0
  96. package/dist/contracts/Dispatch/ZLinkFlowOrigin.js +2 -0
  97. package/dist/contracts/Dispatch/index.d.ts +2 -0
  98. package/dist/contracts/Dispatch/index.js +18 -0
  99. package/dist/contracts/Errors/ZLinkFrameworkException.d.ts +20 -0
  100. package/dist/contracts/Errors/ZLinkFrameworkException.js +29 -0
  101. package/dist/contracts/Errors/index.d.ts +1 -0
  102. package/dist/contracts/Errors/index.js +6 -0
  103. package/dist/contracts/Eventing/Metrics.d.ts +29 -0
  104. package/dist/contracts/Eventing/Metrics.js +4 -0
  105. package/dist/contracts/Eventing/index.d.ts +1 -0
  106. package/dist/contracts/Eventing/index.js +17 -0
  107. package/dist/contracts/Handlers/Attributes.d.ts +24 -0
  108. package/dist/contracts/Handlers/Attributes.js +84 -0
  109. package/dist/contracts/Handlers/Contexts.d.ts +18 -0
  110. package/dist/contracts/Handlers/Contexts.js +2 -0
  111. package/dist/contracts/Handlers/IZLinkChannelHandlers.d.ts +43 -0
  112. package/dist/contracts/Handlers/IZLinkChannelHandlers.js +2 -0
  113. package/dist/contracts/Handlers/IZLinkHandlerFilter.d.ts +15 -0
  114. package/dist/contracts/Handlers/IZLinkHandlerFilter.js +11 -0
  115. package/dist/contracts/Handlers/JsonContract.d.ts +46 -0
  116. package/dist/contracts/Handlers/JsonContract.js +137 -0
  117. package/dist/contracts/Handlers/ZLinkHandlerFilterNext.d.ts +1 -0
  118. package/dist/contracts/Handlers/ZLinkHandlerFilterNext.js +2 -0
  119. package/dist/contracts/Handlers/index.d.ts +5 -0
  120. package/dist/contracts/Handlers/index.js +33 -0
  121. package/dist/contracts/Locations/ActorTransfer.d.ts +41 -0
  122. package/dist/contracts/Locations/ActorTransfer.js +2 -0
  123. package/dist/contracts/Locations/Authority.d.ts +296 -0
  124. package/dist/contracts/Locations/Authority.js +17 -0
  125. package/dist/contracts/Locations/Diagnostics.d.ts +42 -0
  126. package/dist/contracts/Locations/Diagnostics.js +12 -0
  127. package/dist/contracts/Locations/Keys.d.ts +86 -0
  128. package/dist/contracts/Locations/Keys.js +2 -0
  129. package/dist/contracts/Locations/Models.d.ts +7 -0
  130. package/dist/contracts/Locations/Models.js +23 -0
  131. package/dist/contracts/Locations/Options.d.ts +23 -0
  132. package/dist/contracts/Locations/Options.js +20 -0
  133. package/dist/contracts/Locations/Readiness.d.ts +5 -0
  134. package/dist/contracts/Locations/Readiness.js +2 -0
  135. package/dist/contracts/Locations/RelocationStore.d.ts +38 -0
  136. package/dist/contracts/Locations/RelocationStore.js +2 -0
  137. package/dist/contracts/Locations/Resolvers.d.ts +4 -0
  138. package/dist/contracts/Locations/Resolvers.js +2 -0
  139. package/dist/contracts/Locations/Rows.d.ts +152 -0
  140. package/dist/contracts/Locations/Rows.js +19 -0
  141. package/dist/contracts/Locations/RuntimeQuery.d.ts +25 -0
  142. package/dist/contracts/Locations/RuntimeQuery.js +2 -0
  143. package/dist/contracts/Locations/Stores.d.ts +88 -0
  144. package/dist/contracts/Locations/Stores.js +2 -0
  145. package/dist/contracts/Locations/Values.d.ts +27 -0
  146. package/dist/contracts/Locations/Values.js +36 -0
  147. package/dist/contracts/Locations/Watch.d.ts +14 -0
  148. package/dist/contracts/Locations/Watch.js +12 -0
  149. package/dist/contracts/Locations/Writes.d.ts +48 -0
  150. package/dist/contracts/Locations/Writes.js +15 -0
  151. package/dist/contracts/Locations/index.d.ts +12 -0
  152. package/dist/contracts/Locations/index.js +30 -0
  153. package/dist/contracts/RouteMesh/Contracts.d.ts +102 -0
  154. package/dist/contracts/RouteMesh/Contracts.js +39 -0
  155. package/dist/contracts/RouteMesh/RuntimeTopology.d.ts +165 -0
  156. package/dist/contracts/RouteMesh/RuntimeTopology.js +38 -0
  157. package/dist/contracts/RouteMesh/index.d.ts +2 -0
  158. package/dist/contracts/RouteMesh/index.js +18 -0
  159. package/dist/contracts/Spots/Builders.d.ts +10 -0
  160. package/dist/contracts/Spots/Builders.js +2 -0
  161. package/dist/contracts/Spots/Contracts.d.ts +110 -0
  162. package/dist/contracts/Spots/Contracts.js +9 -0
  163. package/dist/contracts/Spots/SpotKind.d.ts +8 -0
  164. package/dist/contracts/Spots/SpotKind.js +28 -0
  165. package/dist/contracts/Spots/ZLinkSpot.d.ts +62 -0
  166. package/dist/contracts/Spots/ZLinkSpot.js +15 -0
  167. package/dist/contracts/Spots/index.d.ts +3 -0
  168. package/dist/contracts/Spots/index.js +19 -0
  169. package/dist/contracts/Streams/BoundSessionContracts.d.ts +8 -0
  170. package/dist/contracts/Streams/BoundSessionContracts.js +2 -0
  171. package/dist/contracts/Streams/IZLinkSession.d.ts +44 -0
  172. package/dist/contracts/Streams/IZLinkSession.js +2 -0
  173. package/dist/contracts/Streams/IZLinkSessionActor.d.ts +15 -0
  174. package/dist/contracts/Streams/IZLinkSessionActor.js +2 -0
  175. package/dist/contracts/Streams/IZLinkSessionPacketHandler.d.ts +9 -0
  176. package/dist/contracts/Streams/IZLinkSessionPacketHandler.js +2 -0
  177. package/dist/contracts/Streams/IZLinkStream.d.ts +9 -0
  178. package/dist/contracts/Streams/IZLinkStream.js +2 -0
  179. package/dist/contracts/Streams/ZLinkMessageMetadata.d.ts +1 -0
  180. package/dist/contracts/Streams/ZLinkMessageMetadata.js +2 -0
  181. package/dist/contracts/Streams/ZLinkStreamCompression.d.ts +8 -0
  182. package/dist/contracts/Streams/ZLinkStreamCompression.js +2 -0
  183. package/dist/contracts/Streams/ZLinkStreamError.d.ts +8 -0
  184. package/dist/contracts/Streams/ZLinkStreamError.js +8 -0
  185. package/dist/contracts/Streams/index.d.ts +8 -0
  186. package/dist/contracts/Streams/index.js +24 -0
  187. package/dist/contracts/Timers/IZLinkTimer.d.ts +5 -0
  188. package/dist/contracts/Timers/IZLinkTimer.js +2 -0
  189. package/dist/contracts/Timers/ZLinkTimerOptions.d.ts +10 -0
  190. package/dist/contracts/Timers/ZLinkTimerOptions.js +9 -0
  191. package/dist/contracts/Timers/ZLinkTimerTick.d.ts +12 -0
  192. package/dist/contracts/Timers/ZLinkTimerTick.js +2 -0
  193. package/dist/contracts/Timers/index.d.ts +3 -0
  194. package/dist/contracts/Timers/index.js +19 -0
  195. package/dist/contracts/index.d.ts +25 -0
  196. package/dist/contracts/index.js +45 -0
  197. package/dist/index.d.ts +1 -0
  198. package/dist/index.js +17 -0
  199. package/dist/internal.d.ts +26 -0
  200. package/dist/internal.js +48 -0
  201. package/dist/location-store-integration.d.ts +5 -0
  202. package/dist/location-store-integration.js +31 -0
  203. package/dist/nest-integration.d.ts +49 -0
  204. package/dist/nest-integration.js +143 -0
  205. package/dist/runtime/abort.d.ts +13 -0
  206. package/dist/runtime/abort.js +71 -0
  207. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +33 -0
  208. package/dist/runtime/actors/actor-authority-payload-codec.js +366 -0
  209. package/dist/runtime/actors/actor-authority-publication.d.ts +28 -0
  210. package/dist/runtime/actors/actor-authority-publication.js +207 -0
  211. package/dist/runtime/actors/actor-client.d.ts +36 -0
  212. package/dist/runtime/actors/actor-client.js +612 -0
  213. package/dist/runtime/actors/actor-context.d.ts +26 -0
  214. package/dist/runtime/actors/actor-context.js +433 -0
  215. package/dist/runtime/actors/actor-creation.d.ts +19 -0
  216. package/dist/runtime/actors/actor-creation.js +158 -0
  217. package/dist/runtime/actors/actor-execution-context.d.ts +6 -0
  218. package/dist/runtime/actors/actor-execution-context.js +27 -0
  219. package/dist/runtime/actors/actor-handoff.d.ts +191 -0
  220. package/dist/runtime/actors/actor-handoff.js +1252 -0
  221. package/dist/runtime/actors/actor-join-deferred-scope.d.ts +11 -0
  222. package/dist/runtime/actors/actor-join-deferred-scope.js +144 -0
  223. package/dist/runtime/actors/actor-join-relocation.d.ts +38 -0
  224. package/dist/runtime/actors/actor-join-relocation.js +2 -0
  225. package/dist/runtime/actors/actor-lifecycle-snapshot.d.ts +21 -0
  226. package/dist/runtime/actors/actor-lifecycle-snapshot.js +58 -0
  227. package/dist/runtime/actors/actor-local-native-join.d.ts +27 -0
  228. package/dist/runtime/actors/actor-local-native-join.js +409 -0
  229. package/dist/runtime/actors/actor-mailbox.d.ts +10 -0
  230. package/dist/runtime/actors/actor-mailbox.js +53 -0
  231. package/dist/runtime/actors/actor-message-follow-context.d.ts +46 -0
  232. package/dist/runtime/actors/actor-message-follow-context.js +257 -0
  233. package/dist/runtime/actors/actor-native-lookup.d.ts +4 -0
  234. package/dist/runtime/actors/actor-native-lookup.js +30 -0
  235. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +73 -0
  236. package/dist/runtime/actors/actor-packet-relay-wire.js +144 -0
  237. package/dist/runtime/actors/actor-remote-joiner.d.ts +37 -0
  238. package/dist/runtime/actors/actor-remote-joiner.js +122 -0
  239. package/dist/runtime/actors/actor-remote-wire.d.ts +73 -0
  240. package/dist/runtime/actors/actor-remote-wire.js +84 -0
  241. package/dist/runtime/actors/actor-retry-delay.d.ts +5 -0
  242. package/dist/runtime/actors/actor-retry-delay.js +40 -0
  243. package/dist/runtime/actors/actor-routed-join-transport.d.ts +33 -0
  244. package/dist/runtime/actors/actor-routed-join-transport.js +2 -0
  245. package/dist/runtime/actors/actor-routed-json-request.d.ts +11 -0
  246. package/dist/runtime/actors/actor-routed-json-request.js +39 -0
  247. package/dist/runtime/actors/actor-runtime-contracts.d.ts +63 -0
  248. package/dist/runtime/actors/actor-runtime-contracts.js +2 -0
  249. package/dist/runtime/actors/actor-runtime-state.d.ts +152 -0
  250. package/dist/runtime/actors/actor-runtime-state.js +545 -0
  251. package/dist/runtime/actors/actor-source-transfer.d.ts +27 -0
  252. package/dist/runtime/actors/actor-source-transfer.js +2 -0
  253. package/dist/runtime/actors/actor-transfer-registry.d.ts +18 -0
  254. package/dist/runtime/actors/actor-transfer-registry.js +71 -0
  255. package/dist/runtime/actors/actor-transport-delivery-gate.d.ts +6 -0
  256. package/dist/runtime/actors/actor-transport-delivery-gate.js +4 -0
  257. package/dist/runtime/actors/bound-session-wire.d.ts +81 -0
  258. package/dist/runtime/actors/bound-session-wire.js +184 -0
  259. package/dist/runtime/actors/deferred-join-accepted-journal.d.ts +47 -0
  260. package/dist/runtime/actors/deferred-join-accepted-journal.js +962 -0
  261. package/dist/runtime/actors/index.d.ts +79 -0
  262. package/dist/runtime/actors/index.js +639 -0
  263. package/dist/runtime/actors/post-commit-actor-binder.d.ts +18 -0
  264. package/dist/runtime/actors/post-commit-actor-binder.js +68 -0
  265. package/dist/runtime/actors/post-commit-actor-location.d.ts +19 -0
  266. package/dist/runtime/actors/post-commit-actor-location.js +72 -0
  267. package/dist/runtime/actors/spot-actor-dispatch.d.ts +59 -0
  268. package/dist/runtime/actors/spot-actor-dispatch.js +179 -0
  269. package/dist/runtime/actors/transferred-actor-rollback.d.ts +16 -0
  270. package/dist/runtime/actors/transferred-actor-rollback.js +91 -0
  271. package/dist/runtime/admission.d.ts +20 -0
  272. package/dist/runtime/admission.js +166 -0
  273. package/dist/runtime/application-jobs/application-ingress-record-owner.d.ts +57 -0
  274. package/dist/runtime/application-jobs/application-ingress-record-owner.js +185 -0
  275. package/dist/runtime/application-jobs/application-job-queue-handler-start-gate.d.ts +8 -0
  276. package/dist/runtime/application-jobs/application-job-queue-handler-start-gate.js +8 -0
  277. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +17 -0
  278. package/dist/runtime/application-jobs/application-job-queue-scope.js +57 -0
  279. package/dist/runtime/application-jobs/contracts.d.ts +19 -0
  280. package/dist/runtime/application-jobs/contracts.js +2 -0
  281. package/dist/runtime/application-jobs/receive-flow-controller.d.ts +32 -0
  282. package/dist/runtime/application-jobs/receive-flow-controller.js +165 -0
  283. package/dist/runtime/backend/contracts/index.d.ts +487 -0
  284. package/dist/runtime/backend/contracts/index.js +29 -0
  285. package/dist/runtime/backend/index.d.ts +9 -0
  286. package/dist/runtime/backend/index.js +25 -0
  287. package/dist/runtime/backend/mesh-actor-session-node-adapter.d.ts +3 -0
  288. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +51 -0
  289. package/dist/runtime/backend/mesh-completion-table.d.ts +34 -0
  290. package/dist/runtime/backend/mesh-completion-table.js +124 -0
  291. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +48 -0
  292. package/dist/runtime/backend/mesh-dispatch-pump.js +322 -0
  293. package/dist/runtime/backend/mesh-record-dispatcher.d.ts +19 -0
  294. package/dist/runtime/backend/mesh-record-dispatcher.js +53 -0
  295. package/dist/runtime/backend/node/index.d.ts +4 -0
  296. package/dist/runtime/backend/node/index.js +22 -0
  297. package/dist/runtime/backend/node/node-backend-adapter-factory.d.ts +12 -0
  298. package/dist/runtime/backend/node/node-backend-adapter-factory.js +161 -0
  299. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +52 -0
  300. package/dist/runtime/backend/node/node-backend-adapter-support.js +203 -0
  301. package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +13 -0
  302. package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +52 -0
  303. package/dist/runtime/backend/node/node-mesh-backend-adapter.d.ts +11 -0
  304. package/dist/runtime/backend/node/node-mesh-backend-adapter.js +23 -0
  305. package/dist/runtime/backend/node/node-monitor-backend-adapter.d.ts +6 -0
  306. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +38 -0
  307. package/dist/runtime/backend/node/node-raw-binding-port.d.ts +8 -0
  308. package/dist/runtime/backend/node/node-raw-binding-port.js +411 -0
  309. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +266 -0
  310. package/dist/runtime/backend/node/node-raw-mesh-backend.js +1707 -0
  311. package/dist/runtime/backend/node/node-socket-backend-adapter.d.ts +9 -0
  312. package/dist/runtime/backend/node/node-socket-backend-adapter.js +286 -0
  313. package/dist/runtime/backend/node-backend-adapter.d.ts +9 -0
  314. package/dist/runtime/backend/node-backend-adapter.js +12 -0
  315. package/dist/runtime/backend/raw-binding-port.d.ts +58 -0
  316. package/dist/runtime/backend/raw-binding-port.js +2 -0
  317. package/dist/runtime/backend/runtime-message.d.ts +14 -0
  318. package/dist/runtime/backend/runtime-message.js +44 -0
  319. package/dist/runtime/backend/runtime-values.d.ts +78 -0
  320. package/dist/runtime/backend/runtime-values.js +66 -0
  321. package/dist/runtime/channels/channel-autoconnect.d.ts +14 -0
  322. package/dist/runtime/channels/channel-autoconnect.js +23 -0
  323. package/dist/runtime/channels/channel-clients.d.ts +50 -0
  324. package/dist/runtime/channels/channel-clients.js +329 -0
  325. package/dist/runtime/channels/channel-dispatch-pipeline.d.ts +76 -0
  326. package/dist/runtime/channels/channel-dispatch-pipeline.js +237 -0
  327. package/dist/runtime/channels/channel-dispatch-services.d.ts +52 -0
  328. package/dist/runtime/channels/channel-dispatch-services.js +132 -0
  329. package/dist/runtime/channels/channel-dispatchers.d.ts +125 -0
  330. package/dist/runtime/channels/channel-dispatchers.js +575 -0
  331. package/dist/runtime/channels/channel-envelope-inspection.d.ts +25 -0
  332. package/dist/runtime/channels/channel-envelope-inspection.js +96 -0
  333. package/dist/runtime/channels/channel-envelope.d.ts +73 -0
  334. package/dist/runtime/channels/channel-envelope.js +546 -0
  335. package/dist/runtime/channels/channel-framework-packets.d.ts +2 -0
  336. package/dist/runtime/channels/channel-framework-packets.js +6 -0
  337. package/dist/runtime/channels/channel-multipart.d.ts +16 -0
  338. package/dist/runtime/channels/channel-multipart.js +31 -0
  339. package/dist/runtime/channels/channel-outbound-operations.d.ts +33 -0
  340. package/dist/runtime/channels/channel-outbound-operations.js +343 -0
  341. package/dist/runtime/channels/channel-receive-loops.d.ts +151 -0
  342. package/dist/runtime/channels/channel-receive-loops.js +728 -0
  343. package/dist/runtime/channels/channel-receive-task-tracker.d.ts +14 -0
  344. package/dist/runtime/channels/channel-receive-task-tracker.js +37 -0
  345. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +77 -0
  346. package/dist/runtime/channels/channel-runtime-lifecycle.js +630 -0
  347. package/dist/runtime/channels/channel-runtime-manager.d.ts +84 -0
  348. package/dist/runtime/channels/channel-runtime-manager.js +193 -0
  349. package/dist/runtime/channels/channel-socket-options.d.ts +18 -0
  350. package/dist/runtime/channels/channel-socket-options.js +119 -0
  351. package/dist/runtime/channels/channel-socket-registry.d.ts +157 -0
  352. package/dist/runtime/channels/channel-socket-registry.js +1428 -0
  353. package/dist/runtime/channels/channel-transports.d.ts +126 -0
  354. package/dist/runtime/channels/channel-transports.js +448 -0
  355. package/dist/runtime/channels/client-server-location-runtime.d.ts +41 -0
  356. package/dist/runtime/channels/client-server-location-runtime.js +465 -0
  357. package/dist/runtime/channels/client-server-service-wire.d.ts +48 -0
  358. package/dist/runtime/channels/client-server-service-wire.js +306 -0
  359. package/dist/runtime/channels/dispatch-error-reporter.d.ts +22 -0
  360. package/dist/runtime/channels/dispatch-error-reporter.js +133 -0
  361. package/dist/runtime/channels/fanout-location-runtime.d.ts +38 -0
  362. package/dist/runtime/channels/fanout-location-runtime.js +356 -0
  363. package/dist/runtime/channels/fanout-service-wire.d.ts +12 -0
  364. package/dist/runtime/channels/fanout-service-wire.js +29 -0
  365. package/dist/runtime/channels/handler-filter-scope.d.ts +8 -0
  366. package/dist/runtime/channels/handler-filter-scope.js +11 -0
  367. package/dist/runtime/channels/index.d.ts +9 -0
  368. package/dist/runtime/channels/index.js +30 -0
  369. package/dist/runtime/channels/local-spot-route-transport.d.ts +9 -0
  370. package/dist/runtime/channels/local-spot-route-transport.js +40 -0
  371. package/dist/runtime/channels/route-disconnected-error.d.ts +3 -0
  372. package/dist/runtime/channels/route-disconnected-error.js +10 -0
  373. package/dist/runtime/channels/route-member-snapshot.d.ts +10 -0
  374. package/dist/runtime/channels/route-member-snapshot.js +55 -0
  375. package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +12 -0
  376. package/dist/runtime/channels/router-socket-spot-route-transport.js +43 -0
  377. package/dist/runtime/channels/source-spot-router.d.ts +10 -0
  378. package/dist/runtime/channels/source-spot-router.js +46 -0
  379. package/dist/runtime/channels/spot-direct-envelope.d.ts +5 -0
  380. package/dist/runtime/channels/spot-direct-envelope.js +29 -0
  381. package/dist/runtime/channels/spot-node-route-transport.d.ts +13 -0
  382. package/dist/runtime/channels/spot-node-route-transport.js +60 -0
  383. package/dist/runtime/channels/spot-route-bridge-transport.d.ts +14 -0
  384. package/dist/runtime/channels/spot-route-bridge-transport.js +58 -0
  385. package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +50 -0
  386. package/dist/runtime/channels/spot-route-dispatch-strategy.js +128 -0
  387. package/dist/runtime/channels/spot-route-target-resolver.d.ts +16 -0
  388. package/dist/runtime/channels/spot-route-target-resolver.js +92 -0
  389. package/dist/runtime/codecs/index.d.ts +14 -0
  390. package/dist/runtime/codecs/index.js +44 -0
  391. package/dist/runtime/configuration/index.d.ts +1 -0
  392. package/dist/runtime/configuration/index.js +17 -0
  393. package/dist/runtime/diagnostics/dispatch-error-port.d.ts +8 -0
  394. package/dist/runtime/diagnostics/dispatch-error-port.js +2 -0
  395. package/dist/runtime/diagnostics/flow-context.d.ts +21 -0
  396. package/dist/runtime/diagnostics/flow-context.js +68 -0
  397. package/dist/runtime/diagnostics/index.d.ts +82 -0
  398. package/dist/runtime/diagnostics/index.js +335 -0
  399. package/dist/runtime/diagnostics/internal-event-contracts.d.ts +139 -0
  400. package/dist/runtime/diagnostics/internal-event-contracts.js +68 -0
  401. package/dist/runtime/diagnostics/message-flow.d.ts +55 -0
  402. package/dist/runtime/diagnostics/message-flow.js +420 -0
  403. package/dist/runtime/diagnostics/runtime-metrics.d.ts +123 -0
  404. package/dist/runtime/diagnostics/runtime-metrics.js +454 -0
  405. package/dist/runtime/diagnostics/runtime-observation-queue.d.ts +58 -0
  406. package/dist/runtime/diagnostics/runtime-observation-queue.js +324 -0
  407. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +33 -0
  408. package/dist/runtime/diagnostics/topology-runtime-projections.js +255 -0
  409. package/dist/runtime/execution/index.d.ts +114 -0
  410. package/dist/runtime/execution/index.js +363 -0
  411. package/dist/runtime/execution/serial-execution-queue.d.ts +94 -0
  412. package/dist/runtime/execution/serial-execution-queue.js +411 -0
  413. package/dist/runtime/execution/serial-work-size.d.ts +4 -0
  414. package/dist/runtime/execution/serial-work-size.js +28 -0
  415. package/dist/runtime/execution/state-lane.d.ts +28 -0
  416. package/dist/runtime/execution/state-lane.js +105 -0
  417. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +72 -0
  418. package/dist/runtime/foundation/actor-join-recovery-codec.js +333 -0
  419. package/dist/runtime/foundation/event-loop-resources.d.ts +37 -0
  420. package/dist/runtime/foundation/event-loop-resources.js +163 -0
  421. package/dist/runtime/foundation/index.d.ts +18 -0
  422. package/dist/runtime/foundation/index.js +34 -0
  423. package/dist/runtime/foundation/message-follow-suppression-registry.d.ts +38 -0
  424. package/dist/runtime/foundation/message-follow-suppression-registry.js +89 -0
  425. package/dist/runtime/foundation/operation-identity.d.ts +12 -0
  426. package/dist/runtime/foundation/operation-identity.js +33 -0
  427. package/dist/runtime/foundation/operation-registry.d.ts +42 -0
  428. package/dist/runtime/foundation/operation-registry.js +146 -0
  429. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +143 -0
  430. package/dist/runtime/foundation/raw-service-mesh-runtime.js +1349 -0
  431. package/dist/runtime/foundation/route-mesh-connection-policy.d.ts +3 -0
  432. package/dist/runtime/foundation/route-mesh-connection-policy.js +13 -0
  433. package/dist/runtime/foundation/runtime-state-projections.d.ts +13 -0
  434. package/dist/runtime/foundation/runtime-state-projections.js +44 -0
  435. package/dist/runtime/foundation/service-authority-payload-codec.d.ts +56 -0
  436. package/dist/runtime/foundation/service-authority-payload-codec.js +411 -0
  437. package/dist/runtime/foundation/service-discovery-registry.d.ts +42 -0
  438. package/dist/runtime/foundation/service-discovery-registry.js +175 -0
  439. package/dist/runtime/foundation/service-instance-activation-recovery-codec.d.ts +19 -0
  440. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +287 -0
  441. package/dist/runtime/foundation/service-liveness-registry.d.ts +28 -0
  442. package/dist/runtime/foundation/service-liveness-registry.js +109 -0
  443. package/dist/runtime/foundation/service-mailbox.d.ts +60 -0
  444. package/dist/runtime/foundation/service-mailbox.js +283 -0
  445. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +45 -0
  446. package/dist/runtime/foundation/service-maintenance-runtime.js +198 -0
  447. package/dist/runtime/foundation/service-metadata-codec.d.ts +2 -0
  448. package/dist/runtime/foundation/service-metadata-codec.js +69 -0
  449. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +35 -0
  450. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +139 -0
  451. package/dist/runtime/foundation/service-relocation-coordinator.d.ts +19 -0
  452. package/dist/runtime/foundation/service-relocation-coordinator.js +16 -0
  453. package/dist/runtime/foundation/service-relocation-object-owner.d.ts +71 -0
  454. package/dist/runtime/foundation/service-relocation-object-owner.js +242 -0
  455. package/dist/runtime/foundation/service-relocation-runtime.d.ts +143 -0
  456. package/dist/runtime/foundation/service-relocation-runtime.js +1080 -0
  457. package/dist/runtime/foundation/service-runtime-contracts.d.ts +332 -0
  458. package/dist/runtime/foundation/service-runtime-contracts.js +66 -0
  459. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +23 -0
  460. package/dist/runtime/foundation/service-session-binding-ingress-port.js +11 -0
  461. package/dist/runtime/foundation/service-stateful-registry.d.ts +142 -0
  462. package/dist/runtime/foundation/service-stateful-registry.js +465 -0
  463. package/dist/runtime/foundation/service-stateful-runtime.d.ts +393 -0
  464. package/dist/runtime/foundation/service-stateful-runtime.js +3898 -0
  465. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +597 -0
  466. package/dist/runtime/foundation/service-stateful-wire-codec.js +2006 -0
  467. package/dist/runtime/foundation/service-topology-registry.d.ts +68 -0
  468. package/dist/runtime/foundation/service-topology-registry.js +393 -0
  469. package/dist/runtime/foundation/service-weighted-selection.d.ts +14 -0
  470. package/dist/runtime/foundation/service-weighted-selection.js +128 -0
  471. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +10 -0
  472. package/dist/runtime/foundation/service-wire-binary-primitives.js +53 -0
  473. package/dist/runtime/foundation/service-wire-codec.d.ts +22 -0
  474. package/dist/runtime/foundation/service-wire-codec.js +67 -0
  475. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +110 -0
  476. package/dist/runtime/foundation/service-wire-constants.generated.js +132 -0
  477. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +102 -0
  478. package/dist/runtime/foundation/service-wire-m6a-codec.js +568 -0
  479. package/dist/runtime/framework-errors-internal.d.ts +95 -0
  480. package/dist/runtime/framework-errors-internal.js +301 -0
  481. package/dist/runtime/handlers/handler-instance-scope.d.ts +11 -0
  482. package/dist/runtime/handlers/handler-instance-scope.js +284 -0
  483. package/dist/runtime/handlers/index.d.ts +13 -0
  484. package/dist/runtime/handlers/index.js +57 -0
  485. package/dist/runtime/host/actor-packet-relay.d.ts +60 -0
  486. package/dist/runtime/host/actor-packet-relay.js +664 -0
  487. package/dist/runtime/host/actor-placement-coordinator.d.ts +32 -0
  488. package/dist/runtime/host/actor-placement-coordinator.js +386 -0
  489. package/dist/runtime/host/actor-runtime-options-factory.d.ts +65 -0
  490. package/dist/runtime/host/actor-runtime-options-factory.js +160 -0
  491. package/dist/runtime/host/actor-transfer-authority-runtime.d.ts +26 -0
  492. package/dist/runtime/host/actor-transfer-authority-runtime.js +138 -0
  493. package/dist/runtime/host/actor-transfer-runtime.d.ts +149 -0
  494. package/dist/runtime/host/actor-transfer-runtime.js +1245 -0
  495. package/dist/runtime/host/application-job-queue.d.ts +99 -0
  496. package/dist/runtime/host/application-job-queue.js +409 -0
  497. package/dist/runtime/host/bound-session-relay.d.ts +41 -0
  498. package/dist/runtime/host/bound-session-relay.js +52 -0
  499. package/dist/runtime/host/bounded-replay-map.d.ts +12 -0
  500. package/dist/runtime/host/bounded-replay-map.js +42 -0
  501. package/dist/runtime/host/channel-runtime-options-factory.d.ts +22 -0
  502. package/dist/runtime/host/channel-runtime-options-factory.js +76 -0
  503. package/dist/runtime/host/entry-actor-runtime.d.ts +30 -0
  504. package/dist/runtime/host/entry-actor-runtime.js +80 -0
  505. package/dist/runtime/host/host-capacity-status.d.ts +11 -0
  506. package/dist/runtime/host/host-capacity-status.js +85 -0
  507. package/dist/runtime/host/index.d.ts +188 -0
  508. package/dist/runtime/host/index.js +2552 -0
  509. package/dist/runtime/host/instance-activation-authority.d.ts +33 -0
  510. package/dist/runtime/host/instance-activation-authority.js +496 -0
  511. package/dist/runtime/host/location-runtime-owner.d.ts +48 -0
  512. package/dist/runtime/host/location-runtime-owner.js +227 -0
  513. package/dist/runtime/host/mesh-router-resolver.d.ts +16 -0
  514. package/dist/runtime/host/mesh-router-resolver.js +108 -0
  515. package/dist/runtime/host/relocation-direct-transfer.d.ts +81 -0
  516. package/dist/runtime/host/relocation-direct-transfer.js +240 -0
  517. package/dist/runtime/host/relocation-integrity-fault-gate.d.ts +6 -0
  518. package/dist/runtime/host/relocation-integrity-fault-gate.js +5 -0
  519. package/dist/runtime/host/relocation-state-adapter.d.ts +8 -0
  520. package/dist/runtime/host/relocation-state-adapter.js +13 -0
  521. package/dist/runtime/host/remote-actor-join-receiver.d.ts +47 -0
  522. package/dist/runtime/host/remote-actor-join-receiver.js +161 -0
  523. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +29 -0
  524. package/dist/runtime/host/remote-actor-packet-target-store.js +185 -0
  525. package/dist/runtime/host/remote-bound-session-relay.d.ts +58 -0
  526. package/dist/runtime/host/remote-bound-session-relay.js +540 -0
  527. package/dist/runtime/host/route-mesh-runtime-options.d.ts +9 -0
  528. package/dist/runtime/host/route-mesh-runtime-options.js +41 -0
  529. package/dist/runtime/host/route-mesh-runtime.d.ts +76 -0
  530. package/dist/runtime/host/route-mesh-runtime.js +746 -0
  531. package/dist/runtime/host/runtime-shutdown.d.ts +33 -0
  532. package/dist/runtime/host/runtime-shutdown.js +68 -0
  533. package/dist/runtime/host/service-relocation-control.d.ts +7 -0
  534. package/dist/runtime/host/service-relocation-control.js +24 -0
  535. package/dist/runtime/host/service-relocation-host-runtime.d.ts +241 -0
  536. package/dist/runtime/host/service-relocation-host-runtime.js +4113 -0
  537. package/dist/runtime/host/spot-address-transport.d.ts +47 -0
  538. package/dist/runtime/host/spot-address-transport.js +601 -0
  539. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +38 -0
  540. package/dist/runtime/host/spot-node-runtime-options-factory.js +36 -0
  541. package/dist/runtime/host/spot-runtime-options-factory.d.ts +48 -0
  542. package/dist/runtime/host/spot-runtime-options-factory.js +169 -0
  543. package/dist/runtime/host/stateful-authority-route-runtime.d.ts +34 -0
  544. package/dist/runtime/host/stateful-authority-route-runtime.js +440 -0
  545. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +69 -0
  546. package/dist/runtime/host/user-spot-creation-coordinator.js +759 -0
  547. package/dist/runtime/locations/actor-location-claims.d.ts +43 -0
  548. package/dist/runtime/locations/actor-location-claims.js +319 -0
  549. package/dist/runtime/locations/actor-session-route-claims.d.ts +10 -0
  550. package/dist/runtime/locations/actor-session-route-claims.js +51 -0
  551. package/dist/runtime/locations/aggregate-inventory-store.d.ts +18 -0
  552. package/dist/runtime/locations/aggregate-inventory-store.js +399 -0
  553. package/dist/runtime/locations/authority-key-codec.d.ts +6 -0
  554. package/dist/runtime/locations/authority-key-codec.js +78 -0
  555. package/dist/runtime/locations/auto-connect-loop.d.ts +37 -0
  556. package/dist/runtime/locations/auto-connect-loop.js +112 -0
  557. package/dist/runtime/locations/auto-connect-planner.d.ts +9 -0
  558. package/dist/runtime/locations/auto-connect-planner.js +137 -0
  559. package/dist/runtime/locations/auto-connect-reconciler.d.ts +57 -0
  560. package/dist/runtime/locations/auto-connect-reconciler.js +358 -0
  561. package/dist/runtime/locations/auto-connect-types.d.ts +42 -0
  562. package/dist/runtime/locations/auto-connect-types.js +2 -0
  563. package/dist/runtime/locations/auto-connect.d.ts +4 -0
  564. package/dist/runtime/locations/auto-connect.js +20 -0
  565. package/dist/runtime/locations/canonical-codec.d.ts +7 -0
  566. package/dist/runtime/locations/canonical-codec.js +48 -0
  567. package/dist/runtime/locations/domain-store-contract.d.ts +34 -0
  568. package/dist/runtime/locations/domain-store-contract.js +2 -0
  569. package/dist/runtime/locations/in-memory-authority-store.d.ts +51 -0
  570. package/dist/runtime/locations/in-memory-authority-store.js +895 -0
  571. package/dist/runtime/locations/in-memory-location-store.d.ts +78 -0
  572. package/dist/runtime/locations/in-memory-location-store.js +1008 -0
  573. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +19 -0
  574. package/dist/runtime/locations/in-memory-provider-location-store.js +183 -0
  575. package/dist/runtime/locations/index.d.ts +11 -0
  576. package/dist/runtime/locations/index.js +27 -0
  577. package/dist/runtime/locations/internal-location-contracts.d.ts +7 -0
  578. package/dist/runtime/locations/internal-location-contracts.js +21 -0
  579. package/dist/runtime/locations/internal-store-contracts.d.ts +35 -0
  580. package/dist/runtime/locations/internal-store-contracts.js +2 -0
  581. package/dist/runtime/locations/key-codec.d.ts +13 -0
  582. package/dist/runtime/locations/key-codec.js +41 -0
  583. package/dist/runtime/locations/lease-tracker.d.ts +36 -0
  584. package/dist/runtime/locations/lease-tracker.js +155 -0
  585. package/dist/runtime/locations/lifecycle-runtime.d.ts +19 -0
  586. package/dist/runtime/locations/lifecycle-runtime.js +2 -0
  587. package/dist/runtime/locations/lifecycle.d.ts +40 -0
  588. package/dist/runtime/locations/lifecycle.js +120 -0
  589. package/dist/runtime/locations/location-store-repository.d.ts +72 -0
  590. package/dist/runtime/locations/location-store-repository.js +3198 -0
  591. package/dist/runtime/locations/relocation-blob.d.ts +7 -0
  592. package/dist/runtime/locations/relocation-blob.js +24 -0
  593. package/dist/runtime/locations/resolvers.d.ts +145 -0
  594. package/dist/runtime/locations/resolvers.js +693 -0
  595. package/dist/runtime/locations/runtime.d.ts +144 -0
  596. package/dist/runtime/locations/runtime.js +792 -0
  597. package/dist/runtime/locations/spot-location-claims.d.ts +36 -0
  598. package/dist/runtime/locations/spot-location-claims.js +305 -0
  599. package/dist/runtime/messaging/creation-payload-codec.d.ts +4 -0
  600. package/dist/runtime/messaging/creation-payload-codec.js +40 -0
  601. package/dist/runtime/messaging/framework-json-v1.d.ts +7 -0
  602. package/dist/runtime/messaging/framework-json-v1.js +296 -0
  603. package/dist/runtime/messaging/index.d.ts +1 -0
  604. package/dist/runtime/messaging/index.js +2 -0
  605. package/dist/runtime/messaging/packet-name.d.ts +4 -0
  606. package/dist/runtime/messaging/packet-name.js +79 -0
  607. package/dist/runtime/messaging/payload-codec.d.ts +25 -0
  608. package/dist/runtime/messaging/payload-codec.js +255 -0
  609. package/dist/runtime/messaging/submission-result.d.ts +15 -0
  610. package/dist/runtime/messaging/submission-result.js +37 -0
  611. package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +395 -0
  612. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +645 -0
  613. package/dist/runtime/routing-id.d.ts +8 -0
  614. package/dist/runtime/routing-id.js +112 -0
  615. package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +124 -0
  616. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +269 -0
  617. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +33 -0
  618. package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +94 -0
  619. package/dist/runtime/spots/index.d.ts +247 -0
  620. package/dist/runtime/spots/index.js +2090 -0
  621. package/dist/runtime/spots/spot-activation-registry.d.ts +47 -0
  622. package/dist/runtime/spots/spot-activation-registry.js +272 -0
  623. package/dist/runtime/spots/spot-activation-state.d.ts +104 -0
  624. package/dist/runtime/spots/spot-activation-state.js +288 -0
  625. package/dist/runtime/spots/spot-activation.d.ts +89 -0
  626. package/dist/runtime/spots/spot-activation.js +601 -0
  627. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +20 -0
  628. package/dist/runtime/spots/spot-actor-admission-coordinator.js +194 -0
  629. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +83 -0
  630. package/dist/runtime/spots/spot-actor-join-dispatch.js +185 -0
  631. package/dist/runtime/spots/spot-actor-lifecycle-drain.d.ts +22 -0
  632. package/dist/runtime/spots/spot-actor-lifecycle-drain.js +51 -0
  633. package/dist/runtime/spots/spot-actor-membership.d.ts +39 -0
  634. package/dist/runtime/spots/spot-actor-membership.js +179 -0
  635. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +91 -0
  636. package/dist/runtime/spots/spot-actor-packet-dispatch.js +315 -0
  637. package/dist/runtime/spots/spot-actor-packet-drain.d.ts +40 -0
  638. package/dist/runtime/spots/spot-actor-packet-drain.js +235 -0
  639. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +18 -0
  640. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +110 -0
  641. package/dist/runtime/spots/spot-closing.d.ts +2 -0
  642. package/dist/runtime/spots/spot-closing.js +30 -0
  643. package/dist/runtime/spots/spot-context.d.ts +46 -0
  644. package/dist/runtime/spots/spot-context.js +113 -0
  645. package/dist/runtime/spots/spot-entry-activation.d.ts +107 -0
  646. package/dist/runtime/spots/spot-entry-activation.js +342 -0
  647. package/dist/runtime/spots/spot-handle.d.ts +28 -0
  648. package/dist/runtime/spots/spot-handle.js +38 -0
  649. package/dist/runtime/spots/spot-handler-registry.d.ts +52 -0
  650. package/dist/runtime/spots/spot-handler-registry.js +155 -0
  651. package/dist/runtime/spots/spot-lifecycle-metrics.d.ts +8 -0
  652. package/dist/runtime/spots/spot-lifecycle-metrics.js +16 -0
  653. package/dist/runtime/spots/spot-location-claim.d.ts +25 -0
  654. package/dist/runtime/spots/spot-location-claim.js +55 -0
  655. package/dist/runtime/spots/spot-manager-internal-contracts.d.ts +10 -0
  656. package/dist/runtime/spots/spot-manager-internal-contracts.js +2 -0
  657. package/dist/runtime/spots/spot-manager-public.d.ts +32 -0
  658. package/dist/runtime/spots/spot-manager-public.js +219 -0
  659. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +26 -0
  660. package/dist/runtime/spots/spot-native-actor-join-admission.js +105 -0
  661. package/dist/runtime/spots/spot-native-flags.d.ts +2 -0
  662. package/dist/runtime/spots/spot-native-flags.js +5 -0
  663. package/dist/runtime/spots/spot-node-autoconnect.d.ts +23 -0
  664. package/dist/runtime/spots/spot-node-autoconnect.js +246 -0
  665. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +137 -0
  666. package/dist/runtime/spots/spot-node-runtime-manager.js +1111 -0
  667. package/dist/runtime/spots/spot-outbound.d.ts +78 -0
  668. package/dist/runtime/spots/spot-outbound.js +460 -0
  669. package/dist/runtime/spots/spot-provider.d.ts +4 -0
  670. package/dist/runtime/spots/spot-provider.js +28 -0
  671. package/dist/runtime/spots/spot-publisher-transport.d.ts +14 -0
  672. package/dist/runtime/spots/spot-publisher-transport.js +28 -0
  673. package/dist/runtime/spots/spot-remote-codec.d.ts +50 -0
  674. package/dist/runtime/spots/spot-remote-codec.js +190 -0
  675. package/dist/runtime/spots/spot-remote-route-codec.d.ts +47 -0
  676. package/dist/runtime/spots/spot-remote-route-codec.js +168 -0
  677. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +25 -0
  678. package/dist/runtime/spots/spot-route-packet-dispatch.js +238 -0
  679. package/dist/runtime/spots/spot-route-replies.d.ts +17 -0
  680. package/dist/runtime/spots/spot-route-replies.js +76 -0
  681. package/dist/runtime/spots/spot-route-reply-wire.d.ts +10 -0
  682. package/dist/runtime/spots/spot-route-reply-wire.js +6 -0
  683. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +36 -0
  684. package/dist/runtime/spots/spot-routed-actor-admission.js +240 -0
  685. package/dist/runtime/spots/spot-routed-bound-session-dispatch.d.ts +19 -0
  686. package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +46 -0
  687. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +54 -0
  688. package/dist/runtime/spots/spot-routed-frame-dispatch.js +162 -0
  689. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +43 -0
  690. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +152 -0
  691. package/dist/runtime/spots/spot-routing-internal.d.ts +28 -0
  692. package/dist/runtime/spots/spot-routing-internal.js +2 -0
  693. package/dist/runtime/spots/spot-runtime-ports.d.ts +64 -0
  694. package/dist/runtime/spots/spot-runtime-ports.js +2 -0
  695. package/dist/runtime/spots/spot-serial-executor.d.ts +38 -0
  696. package/dist/runtime/spots/spot-serial-executor.js +133 -0
  697. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +54 -0
  698. package/dist/runtime/spots/spot-serial-turn-executor.js +219 -0
  699. package/dist/runtime/spots/spot-subscription-dispatch.d.ts +32 -0
  700. package/dist/runtime/spots/spot-subscription-dispatch.js +194 -0
  701. package/dist/runtime/spots/spot-timer.d.ts +110 -0
  702. package/dist/runtime/spots/spot-timer.js +419 -0
  703. package/dist/runtime/streams/actor-session-binding-registry.d.ts +193 -0
  704. package/dist/runtime/streams/actor-session-binding-registry.js +1127 -0
  705. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +20 -0
  706. package/dist/runtime/streams/actor-session-binding-runtime-owner.js +19 -0
  707. package/dist/runtime/streams/actor-session-lifecycle-coordinator.d.ts +4 -0
  708. package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +24 -0
  709. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +29 -0
  710. package/dist/runtime/streams/bound-actor-relay-sender.js +181 -0
  711. package/dist/runtime/streams/bound-session-response-target.d.ts +25 -0
  712. package/dist/runtime/streams/bound-session-response-target.js +54 -0
  713. package/dist/runtime/streams/bound-session-service.d.ts +48 -0
  714. package/dist/runtime/streams/bound-session-service.js +201 -0
  715. package/dist/runtime/streams/index.d.ts +152 -0
  716. package/dist/runtime/streams/index.js +338 -0
  717. package/dist/runtime/streams/managed-stream.d.ts +53 -0
  718. package/dist/runtime/streams/managed-stream.js +329 -0
  719. package/dist/runtime/streams/native-fallback-bound-session.d.ts +24 -0
  720. package/dist/runtime/streams/native-fallback-bound-session.js +201 -0
  721. package/dist/runtime/streams/protocol.d.ts +67 -0
  722. package/dist/runtime/streams/protocol.js +244 -0
  723. package/dist/runtime/streams/session-actor-coordinator.d.ts +56 -0
  724. package/dist/runtime/streams/session-actor-coordinator.js +371 -0
  725. package/dist/runtime/streams/session-calls.d.ts +59 -0
  726. package/dist/runtime/streams/session-calls.js +123 -0
  727. package/dist/runtime/streams/session-context.d.ts +108 -0
  728. package/dist/runtime/streams/session-context.js +377 -0
  729. package/dist/runtime/streams/session-local-actors.d.ts +10 -0
  730. package/dist/runtime/streams/session-local-actors.js +26 -0
  731. package/dist/runtime/streams/session-provider.d.ts +4 -0
  732. package/dist/runtime/streams/session-provider.js +30 -0
  733. package/dist/runtime/streams/session-requests.d.ts +25 -0
  734. package/dist/runtime/streams/session-requests.js +100 -0
  735. package/dist/runtime/streams/session-serial-executor.d.ts +12 -0
  736. package/dist/runtime/streams/session-serial-executor.js +58 -0
  737. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +62 -0
  738. package/dist/runtime/streams/stream-binding-runtime-ports.js +2 -0
  739. package/dist/runtime/streams/stream-frame-factory.d.ts +44 -0
  740. package/dist/runtime/streams/stream-frame-factory.js +149 -0
  741. package/dist/runtime/streams/stream-message-utils.d.ts +5 -0
  742. package/dist/runtime/streams/stream-message-utils.js +74 -0
  743. package/dist/runtime/streams/stream-session-runtime.d.ts +166 -0
  744. package/dist/runtime/streams/stream-session-runtime.js +1144 -0
  745. package/dist/runtime/workers/index.d.ts +38 -0
  746. package/dist/runtime/workers/index.js +474 -0
  747. package/package.json +19 -0
  748. package/src/contracts/Actors/ZLinkActor.ts +8 -0
  749. package/src/contracts/Actors/ZLinkActorClient.ts +18 -0
  750. package/src/contracts/Actors/ZLinkActorContext.ts +15 -0
  751. package/src/contracts/Actors/ZLinkActorFactory.ts +41 -0
  752. package/src/contracts/Actors/ZLinkActorManager.ts +31 -0
  753. package/src/contracts/Actors/index.ts +5 -0
  754. package/src/contracts/Channels/Calls.ts +33 -0
  755. package/src/contracts/Channels/IZLinkChannelClient.ts +6 -0
  756. package/src/contracts/Channels/IZLinkFanoutClient.ts +13 -0
  757. package/src/contracts/Channels/RouteCalls.ts +13 -0
  758. package/src/contracts/Channels/index.ts +4 -0
  759. package/src/contracts/Codecs/IZLinkCodecRegistryBuilder.ts +22 -0
  760. package/src/contracts/Codecs/ZLinkMessageSerializer.ts +6 -0
  761. package/src/contracts/Codecs/index.ts +2 -0
  762. package/src/contracts/Common/ActorRef.ts +8 -0
  763. package/src/contracts/Common/CoreTypes.ts +6 -0
  764. package/src/contracts/Common/Message.ts +9 -0
  765. package/src/contracts/Common/ZLinkEncodedPayload.ts +47 -0
  766. package/src/contracts/Common/ZLinkMessage.ts +135 -0
  767. package/src/contracts/Common/ZLinkMessageMetadata.ts +77 -0
  768. package/src/contracts/Common/ZLinkProviderResolver.ts +6 -0
  769. package/src/contracts/Common/encoded-payload-storage.ts +16 -0
  770. package/src/contracts/Common/index.ts +5 -0
  771. package/src/contracts/Configuration/Builders.ts +200 -0
  772. package/src/contracts/Configuration/CodecContentType.ts +68 -0
  773. package/src/contracts/Configuration/CodecSerializerSelection.ts +28 -0
  774. package/src/contracts/Configuration/Configs.ts +27 -0
  775. package/src/contracts/Configuration/ConfigurationException.ts +6 -0
  776. package/src/contracts/Configuration/Connections.ts +5 -0
  777. package/src/contracts/Configuration/DiagnosticsValidation.ts +25 -0
  778. package/src/contracts/Configuration/EndpointNotation.ts +232 -0
  779. package/src/contracts/Configuration/InternalDefaults.ts +13 -0
  780. package/src/contracts/Configuration/ObjectRoles.ts +47 -0
  781. package/src/contracts/Configuration/Registration.ts +191 -0
  782. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +76 -0
  783. package/src/contracts/Configuration/RegistrationBuilders.ts +1705 -0
  784. package/src/contracts/Configuration/RegistrationCodecRegistry.ts +118 -0
  785. package/src/contracts/Configuration/RegistrationNormalizers.ts +404 -0
  786. package/src/contracts/Configuration/RegistrationTypes.ts +499 -0
  787. package/src/contracts/Configuration/RegistrationValidators.ts +698 -0
  788. package/src/contracts/Configuration/RouteChannelInternalState.ts +50 -0
  789. package/src/contracts/Configuration/RuntimeEndpointConnections.ts +91 -0
  790. package/src/contracts/Configuration/SendTimeoutValidation.ts +15 -0
  791. package/src/contracts/Configuration/TimerRegistrationValidator.ts +37 -0
  792. package/src/contracts/Configuration/index.ts +35 -0
  793. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +222 -0
  794. package/src/contracts/Dispatch/ZLinkFlowOrigin.ts +1 -0
  795. package/src/contracts/Dispatch/index.ts +2 -0
  796. package/src/contracts/Errors/ZLinkFrameworkException.ts +27 -0
  797. package/src/contracts/Errors/index.ts +4 -0
  798. package/src/contracts/Eventing/Metrics.ts +27 -0
  799. package/src/contracts/Eventing/index.ts +1 -0
  800. package/src/contracts/Handlers/Attributes.ts +111 -0
  801. package/src/contracts/Handlers/Contexts.ts +21 -0
  802. package/src/contracts/Handlers/IZLinkChannelHandlers.ts +69 -0
  803. package/src/contracts/Handlers/IZLinkHandlerFilter.ts +22 -0
  804. package/src/contracts/Handlers/JsonContract.ts +172 -0
  805. package/src/contracts/Handlers/ZLinkHandlerFilterNext.ts +1 -0
  806. package/src/contracts/Handlers/index.ts +17 -0
  807. package/src/contracts/Locations/ActorTransfer.ts +84 -0
  808. package/src/contracts/Locations/Authority.ts +308 -0
  809. package/src/contracts/Locations/Diagnostics.ts +48 -0
  810. package/src/contracts/Locations/Keys.ts +93 -0
  811. package/src/contracts/Locations/Models.ts +7 -0
  812. package/src/contracts/Locations/Options.ts +42 -0
  813. package/src/contracts/Locations/Readiness.ts +11 -0
  814. package/src/contracts/Locations/RelocationStore.ts +51 -0
  815. package/src/contracts/Locations/Resolvers.ts +8 -0
  816. package/src/contracts/Locations/Rows.ts +164 -0
  817. package/src/contracts/Locations/RuntimeQuery.ts +56 -0
  818. package/src/contracts/Locations/Stores.ts +92 -0
  819. package/src/contracts/Locations/Values.ts +32 -0
  820. package/src/contracts/Locations/Watch.ts +16 -0
  821. package/src/contracts/Locations/Writes.ts +56 -0
  822. package/src/contracts/Locations/index.ts +48 -0
  823. package/src/contracts/RouteMesh/Contracts.ts +145 -0
  824. package/src/contracts/RouteMesh/RuntimeTopology.ts +201 -0
  825. package/src/contracts/RouteMesh/index.ts +2 -0
  826. package/src/contracts/Spots/Builders.ts +11 -0
  827. package/src/contracts/Spots/Contracts.ts +150 -0
  828. package/src/contracts/Spots/SpotKind.ts +24 -0
  829. package/src/contracts/Spots/ZLinkSpot.ts +88 -0
  830. package/src/contracts/Spots/index.ts +3 -0
  831. package/src/contracts/Streams/BoundSessionContracts.ts +9 -0
  832. package/src/contracts/Streams/IZLinkSession.ts +52 -0
  833. package/src/contracts/Streams/IZLinkSessionActor.ts +17 -0
  834. package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +11 -0
  835. package/src/contracts/Streams/IZLinkStream.ts +10 -0
  836. package/src/contracts/Streams/ZLinkMessageMetadata.ts +1 -0
  837. package/src/contracts/Streams/ZLinkStreamCompression.ts +9 -0
  838. package/src/contracts/Streams/ZLinkStreamError.ts +9 -0
  839. package/src/contracts/Streams/index.ts +8 -0
  840. package/src/contracts/Timers/IZLinkTimer.ts +5 -0
  841. package/src/contracts/Timers/ZLinkTimerOptions.ts +11 -0
  842. package/src/contracts/Timers/ZLinkTimerTick.ts +12 -0
  843. package/src/contracts/Timers/index.ts +3 -0
  844. package/src/contracts/index.ts +71 -0
  845. package/src/index.ts +1 -0
  846. package/src/internal.ts +29 -0
  847. package/src/location-store-integration.ts +51 -0
  848. package/src/nest-integration.ts +251 -0
  849. package/src/runtime/abort.ts +70 -0
  850. package/src/runtime/actors/actor-authority-payload-codec.ts +454 -0
  851. package/src/runtime/actors/actor-authority-publication.ts +277 -0
  852. package/src/runtime/actors/actor-client.ts +1018 -0
  853. package/src/runtime/actors/actor-context.ts +583 -0
  854. package/src/runtime/actors/actor-creation.ts +254 -0
  855. package/src/runtime/actors/actor-execution-context.ts +38 -0
  856. package/src/runtime/actors/actor-handoff.ts +1911 -0
  857. package/src/runtime/actors/actor-join-deferred-scope.ts +183 -0
  858. package/src/runtime/actors/actor-join-relocation.ts +39 -0
  859. package/src/runtime/actors/actor-lifecycle-snapshot.ts +90 -0
  860. package/src/runtime/actors/actor-local-native-join.ts +725 -0
  861. package/src/runtime/actors/actor-mailbox.ts +92 -0
  862. package/src/runtime/actors/actor-message-follow-context.ts +347 -0
  863. package/src/runtime/actors/actor-native-lookup.ts +38 -0
  864. package/src/runtime/actors/actor-packet-relay-wire.ts +223 -0
  865. package/src/runtime/actors/actor-remote-joiner.ts +238 -0
  866. package/src/runtime/actors/actor-remote-wire.ts +169 -0
  867. package/src/runtime/actors/actor-retry-delay.ts +37 -0
  868. package/src/runtime/actors/actor-routed-join-transport.ts +58 -0
  869. package/src/runtime/actors/actor-routed-json-request.ts +44 -0
  870. package/src/runtime/actors/actor-runtime-contracts.ts +126 -0
  871. package/src/runtime/actors/actor-runtime-state.ts +805 -0
  872. package/src/runtime/actors/actor-source-transfer.ts +62 -0
  873. package/src/runtime/actors/actor-transfer-registry.ts +112 -0
  874. package/src/runtime/actors/actor-transport-delivery-gate.ts +17 -0
  875. package/src/runtime/actors/bound-session-wire.ts +257 -0
  876. package/src/runtime/actors/deferred-join-accepted-journal.ts +1319 -0
  877. package/src/runtime/actors/index.ts +972 -0
  878. package/src/runtime/actors/post-commit-actor-binder.ts +70 -0
  879. package/src/runtime/actors/post-commit-actor-location.ts +114 -0
  880. package/src/runtime/actors/spot-actor-dispatch.ts +362 -0
  881. package/src/runtime/actors/transferred-actor-rollback.ts +123 -0
  882. package/src/runtime/admission.ts +192 -0
  883. package/src/runtime/application-jobs/application-ingress-record-owner.ts +216 -0
  884. package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +10 -0
  885. package/src/runtime/application-jobs/application-job-queue-scope.ts +64 -0
  886. package/src/runtime/application-jobs/contracts.ts +26 -0
  887. package/src/runtime/application-jobs/receive-flow-controller.ts +188 -0
  888. package/src/runtime/backend/contracts/index.ts +765 -0
  889. package/src/runtime/backend/index.ts +9 -0
  890. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +73 -0
  891. package/src/runtime/backend/mesh-completion-table.ts +165 -0
  892. package/src/runtime/backend/mesh-dispatch-pump.ts +363 -0
  893. package/src/runtime/backend/mesh-record-dispatcher.ts +65 -0
  894. package/src/runtime/backend/node/index.ts +4 -0
  895. package/src/runtime/backend/node/node-backend-adapter-factory.ts +204 -0
  896. package/src/runtime/backend/node/node-backend-adapter-support.ts +257 -0
  897. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +133 -0
  898. package/src/runtime/backend/node/node-mesh-backend-adapter.ts +44 -0
  899. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +39 -0
  900. package/src/runtime/backend/node/node-raw-binding-port.contract.ts +21 -0
  901. package/src/runtime/backend/node/node-raw-binding-port.ts +518 -0
  902. package/src/runtime/backend/node/node-raw-mesh-backend.ts +2669 -0
  903. package/src/runtime/backend/node/node-socket-backend-adapter.ts +372 -0
  904. package/src/runtime/backend/node-backend-adapter.ts +19 -0
  905. package/src/runtime/backend/raw-binding-port.ts +69 -0
  906. package/src/runtime/backend/runtime-message.ts +51 -0
  907. package/src/runtime/backend/runtime-values.ts +107 -0
  908. package/src/runtime/channels/channel-autoconnect.ts +46 -0
  909. package/src/runtime/channels/channel-clients.ts +527 -0
  910. package/src/runtime/channels/channel-dispatch-pipeline.ts +408 -0
  911. package/src/runtime/channels/channel-dispatch-services.ts +234 -0
  912. package/src/runtime/channels/channel-dispatchers.ts +790 -0
  913. package/src/runtime/channels/channel-envelope-inspection.ts +125 -0
  914. package/src/runtime/channels/channel-envelope.ts +743 -0
  915. package/src/runtime/channels/channel-framework-packets.ts +8 -0
  916. package/src/runtime/channels/channel-multipart.ts +61 -0
  917. package/src/runtime/channels/channel-outbound-operations.ts +584 -0
  918. package/src/runtime/channels/channel-receive-loops.ts +901 -0
  919. package/src/runtime/channels/channel-receive-task-tracker.ts +39 -0
  920. package/src/runtime/channels/channel-runtime-lifecycle.ts +969 -0
  921. package/src/runtime/channels/channel-runtime-manager.ts +444 -0
  922. package/src/runtime/channels/channel-socket-options.ts +153 -0
  923. package/src/runtime/channels/channel-socket-registry.ts +1837 -0
  924. package/src/runtime/channels/channel-transports.ts +1154 -0
  925. package/src/runtime/channels/client-server-location-runtime.ts +576 -0
  926. package/src/runtime/channels/client-server-service-wire.ts +390 -0
  927. package/src/runtime/channels/dispatch-error-reporter.ts +165 -0
  928. package/src/runtime/channels/fanout-location-runtime.ts +459 -0
  929. package/src/runtime/channels/fanout-service-wire.ts +43 -0
  930. package/src/runtime/channels/handler-filter-scope.ts +29 -0
  931. package/src/runtime/channels/index.ts +45 -0
  932. package/src/runtime/channels/local-spot-route-transport.ts +59 -0
  933. package/src/runtime/channels/route-disconnected-error.ts +6 -0
  934. package/src/runtime/channels/route-member-snapshot.ts +55 -0
  935. package/src/runtime/channels/router-socket-spot-route-transport.ts +77 -0
  936. package/src/runtime/channels/source-spot-router.ts +89 -0
  937. package/src/runtime/channels/spot-direct-envelope.ts +44 -0
  938. package/src/runtime/channels/spot-node-route-transport.ts +92 -0
  939. package/src/runtime/channels/spot-route-bridge-transport.ts +75 -0
  940. package/src/runtime/channels/spot-route-dispatch-strategy.ts +329 -0
  941. package/src/runtime/channels/spot-route-target-resolver.ts +101 -0
  942. package/src/runtime/codecs/index.ts +69 -0
  943. package/src/runtime/configuration/index.ts +1 -0
  944. package/src/runtime/diagnostics/dispatch-error-port.ts +8 -0
  945. package/src/runtime/diagnostics/flow-context.ts +84 -0
  946. package/src/runtime/diagnostics/index.ts +441 -0
  947. package/src/runtime/diagnostics/internal-event-contracts.ts +135 -0
  948. package/src/runtime/diagnostics/message-flow.ts +560 -0
  949. package/src/runtime/diagnostics/runtime-metrics.ts +601 -0
  950. package/src/runtime/diagnostics/runtime-observation-queue.ts +362 -0
  951. package/src/runtime/diagnostics/topology-runtime-projections.ts +298 -0
  952. package/src/runtime/execution/index.ts +466 -0
  953. package/src/runtime/execution/serial-execution-queue.ts +534 -0
  954. package/src/runtime/execution/serial-work-size.ts +31 -0
  955. package/src/runtime/execution/state-lane.ts +116 -0
  956. package/src/runtime/foundation/actor-join-recovery-codec.ts +465 -0
  957. package/src/runtime/foundation/event-loop-resources.ts +162 -0
  958. package/src/runtime/foundation/index.ts +18 -0
  959. package/src/runtime/foundation/message-follow-suppression-registry.ts +130 -0
  960. package/src/runtime/foundation/operation-identity.ts +49 -0
  961. package/src/runtime/foundation/operation-registry.ts +162 -0
  962. package/src/runtime/foundation/raw-service-mesh-runtime.ts +1771 -0
  963. package/src/runtime/foundation/route-mesh-connection-policy.ts +28 -0
  964. package/src/runtime/foundation/runtime-state-projections.ts +68 -0
  965. package/src/runtime/foundation/service-authority-payload-codec.ts +566 -0
  966. package/src/runtime/foundation/service-discovery-registry.ts +263 -0
  967. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +329 -0
  968. package/src/runtime/foundation/service-liveness-registry.ts +144 -0
  969. package/src/runtime/foundation/service-mailbox.ts +369 -0
  970. package/src/runtime/foundation/service-maintenance-runtime.ts +242 -0
  971. package/src/runtime/foundation/service-metadata-codec.ts +75 -0
  972. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +218 -0
  973. package/src/runtime/foundation/service-relocation-coordinator.ts +37 -0
  974. package/src/runtime/foundation/service-relocation-object-owner.ts +428 -0
  975. package/src/runtime/foundation/service-relocation-runtime.ts +1407 -0
  976. package/src/runtime/foundation/service-runtime-contracts.ts +423 -0
  977. package/src/runtime/foundation/service-session-binding-ingress-port.ts +45 -0
  978. package/src/runtime/foundation/service-stateful-registry.ts +664 -0
  979. package/src/runtime/foundation/service-stateful-runtime.ts +5753 -0
  980. package/src/runtime/foundation/service-stateful-wire-codec.ts +3008 -0
  981. package/src/runtime/foundation/service-topology-registry.ts +599 -0
  982. package/src/runtime/foundation/service-weighted-selection.ts +166 -0
  983. package/src/runtime/foundation/service-wire-binary-primitives.ts +80 -0
  984. package/src/runtime/foundation/service-wire-codec.ts +91 -0
  985. package/src/runtime/foundation/service-wire-constants.generated.ts +131 -0
  986. package/src/runtime/foundation/service-wire-m6a-codec.ts +647 -0
  987. package/src/runtime/framework-errors-internal.ts +338 -0
  988. package/src/runtime/handlers/handler-instance-scope.ts +372 -0
  989. package/src/runtime/handlers/index.ts +93 -0
  990. package/src/runtime/host/actor-packet-relay.ts +1070 -0
  991. package/src/runtime/host/actor-placement-coordinator.ts +573 -0
  992. package/src/runtime/host/actor-runtime-options-factory.ts +282 -0
  993. package/src/runtime/host/actor-transfer-authority-runtime.ts +225 -0
  994. package/src/runtime/host/actor-transfer-runtime.ts +1958 -0
  995. package/src/runtime/host/application-job-queue.ts +518 -0
  996. package/src/runtime/host/bound-session-relay.ts +94 -0
  997. package/src/runtime/host/bounded-replay-map.ts +42 -0
  998. package/src/runtime/host/channel-runtime-options-factory.ts +104 -0
  999. package/src/runtime/host/entry-actor-runtime.ts +115 -0
  1000. package/src/runtime/host/host-capacity-status.ts +103 -0
  1001. package/src/runtime/host/index.ts +3492 -0
  1002. package/src/runtime/host/instance-activation-authority.ts +658 -0
  1003. package/src/runtime/host/location-runtime-owner.ts +313 -0
  1004. package/src/runtime/host/mesh-router-resolver.ts +114 -0
  1005. package/src/runtime/host/relocation-direct-transfer.ts +273 -0
  1006. package/src/runtime/host/relocation-integrity-fault-gate.ts +8 -0
  1007. package/src/runtime/host/relocation-state-adapter.ts +24 -0
  1008. package/src/runtime/host/remote-actor-join-receiver.ts +264 -0
  1009. package/src/runtime/host/remote-actor-packet-target-store.ts +244 -0
  1010. package/src/runtime/host/remote-bound-session-relay.ts +900 -0
  1011. package/src/runtime/host/route-mesh-runtime-options.ts +46 -0
  1012. package/src/runtime/host/route-mesh-runtime.ts +891 -0
  1013. package/src/runtime/host/runtime-shutdown.ts +101 -0
  1014. package/src/runtime/host/service-relocation-control.ts +28 -0
  1015. package/src/runtime/host/service-relocation-host-runtime.ts +5817 -0
  1016. package/src/runtime/host/spot-address-transport.ts +997 -0
  1017. package/src/runtime/host/spot-node-runtime-options-factory.ts +82 -0
  1018. package/src/runtime/host/spot-runtime-options-factory.ts +286 -0
  1019. package/src/runtime/host/stateful-authority-route-runtime.ts +662 -0
  1020. package/src/runtime/host/user-spot-creation-coordinator.ts +1176 -0
  1021. package/src/runtime/locations/actor-location-claims.ts +426 -0
  1022. package/src/runtime/locations/actor-session-route-claims.ts +64 -0
  1023. package/src/runtime/locations/aggregate-inventory-store.ts +581 -0
  1024. package/src/runtime/locations/authority-key-codec.ts +80 -0
  1025. package/src/runtime/locations/auto-connect-loop.ts +131 -0
  1026. package/src/runtime/locations/auto-connect-planner.ts +178 -0
  1027. package/src/runtime/locations/auto-connect-reconciler.ts +425 -0
  1028. package/src/runtime/locations/auto-connect-types.ts +62 -0
  1029. package/src/runtime/locations/auto-connect.ts +4 -0
  1030. package/src/runtime/locations/canonical-codec.ts +54 -0
  1031. package/src/runtime/locations/domain-store-contract.ts +149 -0
  1032. package/src/runtime/locations/in-memory-authority-store.ts +1172 -0
  1033. package/src/runtime/locations/in-memory-location-store.ts +1467 -0
  1034. package/src/runtime/locations/in-memory-provider-location-store.ts +213 -0
  1035. package/src/runtime/locations/index.ts +11 -0
  1036. package/src/runtime/locations/internal-location-contracts.ts +22 -0
  1037. package/src/runtime/locations/internal-store-contracts.ts +90 -0
  1038. package/src/runtime/locations/key-codec.ts +61 -0
  1039. package/src/runtime/locations/lease-tracker.ts +221 -0
  1040. package/src/runtime/locations/lifecycle-runtime.ts +44 -0
  1041. package/src/runtime/locations/lifecycle.ts +272 -0
  1042. package/src/runtime/locations/location-store-repository.ts +4211 -0
  1043. package/src/runtime/locations/relocation-blob.ts +36 -0
  1044. package/src/runtime/locations/resolvers.ts +1054 -0
  1045. package/src/runtime/locations/runtime.ts +1126 -0
  1046. package/src/runtime/locations/spot-location-claims.ts +435 -0
  1047. package/src/runtime/messaging/creation-payload-codec.ts +59 -0
  1048. package/src/runtime/messaging/framework-json-v1.ts +307 -0
  1049. package/src/runtime/messaging/index.ts +1 -0
  1050. package/src/runtime/messaging/packet-name.ts +94 -0
  1051. package/src/runtime/messaging/payload-codec.ts +418 -0
  1052. package/src/runtime/messaging/submission-result.ts +61 -0
  1053. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +189 -0
  1054. package/src/runtime/routing-id.ts +125 -0
  1055. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +418 -0
  1056. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +147 -0
  1057. package/src/runtime/spots/index.ts +3303 -0
  1058. package/src/runtime/spots/spot-activation-registry.ts +335 -0
  1059. package/src/runtime/spots/spot-activation-state.ts +414 -0
  1060. package/src/runtime/spots/spot-activation.ts +1027 -0
  1061. package/src/runtime/spots/spot-actor-admission-coordinator.ts +354 -0
  1062. package/src/runtime/spots/spot-actor-join-dispatch.ts +303 -0
  1063. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +79 -0
  1064. package/src/runtime/spots/spot-actor-membership.ts +266 -0
  1065. package/src/runtime/spots/spot-actor-packet-dispatch.ts +593 -0
  1066. package/src/runtime/spots/spot-actor-packet-drain.ts +328 -0
  1067. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +162 -0
  1068. package/src/runtime/spots/spot-closing.ts +34 -0
  1069. package/src/runtime/spots/spot-context.ts +259 -0
  1070. package/src/runtime/spots/spot-entry-activation.ts +551 -0
  1071. package/src/runtime/spots/spot-handle.ts +101 -0
  1072. package/src/runtime/spots/spot-handler-registry.ts +273 -0
  1073. package/src/runtime/spots/spot-lifecycle-metrics.ts +15 -0
  1074. package/src/runtime/spots/spot-location-claim.ts +86 -0
  1075. package/src/runtime/spots/spot-manager-internal-contracts.ts +11 -0
  1076. package/src/runtime/spots/spot-manager-public.ts +361 -0
  1077. package/src/runtime/spots/spot-native-actor-join-admission.ts +151 -0
  1078. package/src/runtime/spots/spot-native-flags.ts +4 -0
  1079. package/src/runtime/spots/spot-node-autoconnect.ts +325 -0
  1080. package/src/runtime/spots/spot-node-runtime-manager.ts +1573 -0
  1081. package/src/runtime/spots/spot-outbound.ts +761 -0
  1082. package/src/runtime/spots/spot-provider.ts +36 -0
  1083. package/src/runtime/spots/spot-publisher-transport.ts +69 -0
  1084. package/src/runtime/spots/spot-remote-codec.ts +308 -0
  1085. package/src/runtime/spots/spot-remote-route-codec.ts +284 -0
  1086. package/src/runtime/spots/spot-route-packet-dispatch.ts +359 -0
  1087. package/src/runtime/spots/spot-route-replies.ts +126 -0
  1088. package/src/runtime/spots/spot-route-reply-wire.ts +15 -0
  1089. package/src/runtime/spots/spot-routed-actor-admission.ts +351 -0
  1090. package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +132 -0
  1091. package/src/runtime/spots/spot-routed-frame-dispatch.ts +250 -0
  1092. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +254 -0
  1093. package/src/runtime/spots/spot-routing-internal.ts +33 -0
  1094. package/src/runtime/spots/spot-runtime-ports.ts +196 -0
  1095. package/src/runtime/spots/spot-serial-executor.ts +170 -0
  1096. package/src/runtime/spots/spot-serial-turn-executor.ts +319 -0
  1097. package/src/runtime/spots/spot-subscription-dispatch.ts +252 -0
  1098. package/src/runtime/spots/spot-timer.ts +609 -0
  1099. package/src/runtime/streams/actor-session-binding-registry.ts +1691 -0
  1100. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +78 -0
  1101. package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +20 -0
  1102. package/src/runtime/streams/bound-actor-relay-sender.ts +275 -0
  1103. package/src/runtime/streams/bound-session-response-target.ts +91 -0
  1104. package/src/runtime/streams/bound-session-service.ts +500 -0
  1105. package/src/runtime/streams/index.ts +706 -0
  1106. package/src/runtime/streams/managed-stream.ts +509 -0
  1107. package/src/runtime/streams/native-fallback-bound-session.ts +321 -0
  1108. package/src/runtime/streams/protocol.ts +291 -0
  1109. package/src/runtime/streams/session-actor-coordinator.ts +605 -0
  1110. package/src/runtime/streams/session-calls.ts +221 -0
  1111. package/src/runtime/streams/session-context.ts +609 -0
  1112. package/src/runtime/streams/session-local-actors.ts +30 -0
  1113. package/src/runtime/streams/session-provider.ts +50 -0
  1114. package/src/runtime/streams/session-requests.ts +109 -0
  1115. package/src/runtime/streams/session-serial-executor.ts +97 -0
  1116. package/src/runtime/streams/stream-binding-runtime-ports.ts +106 -0
  1117. package/src/runtime/streams/stream-frame-factory.ts +255 -0
  1118. package/src/runtime/streams/stream-message-utils.ts +89 -0
  1119. package/src/runtime/streams/stream-session-runtime.ts +1420 -0
  1120. package/src/runtime/workers/index.ts +580 -0
  1121. package/tsconfig.json +17 -0
@@ -0,0 +1,2006 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.M6bServiceWireFlag = exports.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES = exports.RELOCATION_PAYLOAD_CHUNK_COUNT_MAX = exports.RELOCATION_PAYLOAD_TOTAL_LENGTH_MAX = exports.M6bServiceWireCommand = void 0;
4
+ exports.serviceSessionRelocationIdentityKey = serviceSessionRelocationIdentityKey;
5
+ exports.encodeSpotHeader = encodeSpotHeader;
6
+ exports.encodeActorHeader = encodeActorHeader;
7
+ exports.encodeLogicalMulticastHeader = encodeLogicalMulticastHeader;
8
+ exports.encodeActorLookupHeader = encodeActorLookupHeader;
9
+ exports.encodeActorDestroyHeader = encodeActorDestroyHeader;
10
+ exports.encodeBoundSessionSendHeader = encodeBoundSessionSendHeader;
11
+ exports.encodeBoundSessionBindHeader = encodeBoundSessionBindHeader;
12
+ exports.encodeBoundSessionReplacedHeader = encodeBoundSessionReplacedHeader;
13
+ exports.encodeSessionRelocationSeal = encodeSessionRelocationSeal;
14
+ exports.decodeSessionRelocationSeal = decodeSessionRelocationSeal;
15
+ exports.encodeSessionRelocationSealed = encodeSessionRelocationSealed;
16
+ exports.decodeSessionRelocationSealed = decodeSessionRelocationSealed;
17
+ exports.encodeSessionRelocationRoute = encodeSessionRelocationRoute;
18
+ exports.decodeSessionRelocationRoute = decodeSessionRelocationRoute;
19
+ exports.encodeInstanceSpotHeader = encodeInstanceSpotHeader;
20
+ exports.encodeInstanceSpotActivationHeader = encodeInstanceSpotActivationHeader;
21
+ exports.encodeUserSpotCreateHeader = encodeUserSpotCreateHeader;
22
+ exports.encodeActorCreateHeader = encodeActorCreateHeader;
23
+ exports.encodeUserSpotCloseHeader = encodeUserSpotCloseHeader;
24
+ exports.encodeMessageFollowHeader = encodeMessageFollowHeader;
25
+ exports.decodeStatefulHeader = decodeStatefulHeader;
26
+ exports.encodeStatefulReply = encodeStatefulReply;
27
+ exports.encodeMaintenanceRelocationControl = encodeMaintenanceRelocationControl;
28
+ exports.decodeMaintenanceRelocationControl = decodeMaintenanceRelocationControl;
29
+ exports.encodeMaintenanceReplyRelay = encodeMaintenanceReplyRelay;
30
+ exports.decodeMaintenanceReplyRelay = decodeMaintenanceReplyRelay;
31
+ exports.encodeMaintenanceReplyRelayAck = encodeMaintenanceReplyRelayAck;
32
+ exports.decodeMaintenanceReplyRelayAck = decodeMaintenanceReplyRelayAck;
33
+ exports.decodeStatefulReply = decodeStatefulReply;
34
+ exports.sessionBindingFromWire = sessionBindingFromWire;
35
+ exports.decodeServiceWireFrozenRecord = decodeServiceWireFrozenRecord;
36
+ exports.decodeServiceWireFrozenRecordPrefix = decodeServiceWireFrozenRecordPrefix;
37
+ exports.encodeServiceWireFrozenRecord = encodeServiceWireFrozenRecord;
38
+ exports.encodeServiceWireFrozenActorApplicationRecord = encodeServiceWireFrozenActorApplicationRecord;
39
+ const service_runtime_contracts_1 = require("./service-runtime-contracts");
40
+ const service_wire_m6a_codec_1 = require("./service-wire-m6a-codec");
41
+ const framework_errors_internal_1 = require("../framework-errors-internal");
42
+ const routing_id_1 = require("../routing-id");
43
+ const service_wire_constants_generated_1 = require("./service-wire-constants.generated");
44
+ const service_wire_binary_primitives_1 = require("./service-wire-binary-primitives");
45
+ const service_wire_pilot_codec_generated_1 = require("../protocol/service_wire_pilot_codec.generated");
46
+ const PREFIX_SIZE = 5;
47
+ const MAGIC_0 = service_wire_constants_generated_1.SERVICE_WIRE_MAGIC[0];
48
+ const MAGIC_1 = service_wire_constants_generated_1.SERVICE_WIRE_MAGIC[1];
49
+ const MAJOR = service_wire_constants_generated_1.SERVICE_WIRE_MAJOR;
50
+ exports.M6bServiceWireCommand = service_wire_constants_generated_1.ServiceWireCommand;
51
+ /** Shared CRC-32C wire bounds for the direct relocation payload transfer. */
52
+ exports.RELOCATION_PAYLOAD_TOTAL_LENGTH_MAX = 274877906944n;
53
+ exports.RELOCATION_PAYLOAD_CHUNK_COUNT_MAX = 4096;
54
+ exports.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES = 67_108_864;
55
+ exports.M6bServiceWireFlag = service_wire_constants_generated_1.ServiceWireFlag;
56
+ function serviceSessionRelocationIdentityKey(value) {
57
+ const actor = 'targetNodeGeneration' in value.actor
58
+ ? value.actor.actor
59
+ : value.actor;
60
+ // Session owner가 seal을 대조할 때 쓰는 값만 넣는다 — Session과 Actor binding
61
+ // §8.1 "Session owner는 다음 값만 검증한다". coordinator identity는 transport가
62
+ // 검증하는 wire fence이므로 여기서 다시 대조하지 않는다.
63
+ return [
64
+ value.relocation.high.toString(),
65
+ value.relocation.low.toString(),
66
+ actor.actorId,
67
+ actor.generation.toString(),
68
+ value.session.sessionRid,
69
+ value.session.bindingGeneration.toString()
70
+ ].join(':');
71
+ }
72
+ function toGeneratedRoutingId(value, field) {
73
+ return (0, service_wire_binary_primitives_1.encodeServiceWireRoutingId)(value, field, 0xff, fail);
74
+ }
75
+ function fromGeneratedRoutingId(value, field) {
76
+ return (0, service_wire_binary_primitives_1.decodeServiceWireRoutingId)(value, field, 0xff, fail);
77
+ }
78
+ function toGeneratedReservation(value) {
79
+ return {
80
+ ...value,
81
+ targetNodeRid: toGeneratedRoutingId(value.targetNodeRid, 'targetNodeRid')
82
+ };
83
+ }
84
+ function fromGeneratedReservation(value) {
85
+ return {
86
+ ...value,
87
+ targetNodeRid: fromGeneratedRoutingId(value.targetNodeRid, 'targetNodeRid')
88
+ };
89
+ }
90
+ function toGeneratedUserSpotCreate(value) {
91
+ return {
92
+ ...value,
93
+ sourceNodeRid: toGeneratedRoutingId(value.sourceNodeRid, 'sourceNodeRid'),
94
+ reservation: toGeneratedReservation(value.reservation)
95
+ };
96
+ }
97
+ function fromGeneratedUserSpotCreate(value) {
98
+ return {
99
+ kind: 'userSpotCreate',
100
+ ...value,
101
+ sourceNodeRid: fromGeneratedRoutingId(value.sourceNodeRid, 'sourceNodeRid'),
102
+ reservation: fromGeneratedReservation(value.reservation)
103
+ };
104
+ }
105
+ function toGeneratedUserSpotClose(value) {
106
+ return {
107
+ ...value,
108
+ sourceNodeRid: toGeneratedRoutingId(value.sourceNodeRid, 'sourceNodeRid'),
109
+ target: {
110
+ spotId: value.target.spotId,
111
+ objectGeneration: value.target.objectGeneration,
112
+ targetNodeRid: toGeneratedRoutingId(value.target.targetNodeRid, 'targetNodeRid'),
113
+ targetNodeGeneration: value.target.targetNodeGeneration,
114
+ expectedAuthorityOwnerGeneration: value.target.authorityOwnerGeneration,
115
+ expectedStoreVersion: value.target.expectedStoreVersion
116
+ }
117
+ };
118
+ }
119
+ function fromGeneratedUserSpotClose(value) {
120
+ return {
121
+ kind: 'userSpotClose',
122
+ correlation: value.correlation,
123
+ operation: value.operation,
124
+ sourceNodeRid: fromGeneratedRoutingId(value.sourceNodeRid, 'sourceNodeRid'),
125
+ sourceNodeGeneration: value.sourceNodeGeneration,
126
+ target: {
127
+ spotId: value.target.spotId,
128
+ objectGeneration: value.target.objectGeneration,
129
+ targetNodeRid: fromGeneratedRoutingId(value.target.targetNodeRid, 'targetNodeRid'),
130
+ targetNodeGeneration: value.target.targetNodeGeneration,
131
+ authorityOwnerGeneration: value.target.expectedAuthorityOwnerGeneration,
132
+ expectedStoreVersion: value.target.expectedStoreVersion
133
+ },
134
+ deadlineUnixMs: value.deadlineUnixMs
135
+ };
136
+ }
137
+ function toGeneratedActorCreate(value) {
138
+ return {
139
+ ...value,
140
+ sourceNodeRid: toGeneratedRoutingId(value.sourceNodeRid, 'sourceNodeRid'),
141
+ reservation: toGeneratedReservation(value.reservation)
142
+ };
143
+ }
144
+ function fromGeneratedActorCreate(value) {
145
+ return {
146
+ kind: 'actorCreate',
147
+ ...value,
148
+ sourceNodeRid: fromGeneratedRoutingId(value.sourceNodeRid, 'sourceNodeRid'),
149
+ reservation: fromGeneratedReservation(value.reservation)
150
+ };
151
+ }
152
+ function toGeneratedCoordinatorFence(value) {
153
+ return {
154
+ coordinatorOwnerId: value.ownerId,
155
+ coordinatorLeaseGeneration: value.leaseGeneration,
156
+ coordinatorNodeRid: toGeneratedRoutingId(value.nodeRid, 'coordinatorNodeRid'),
157
+ coordinatorNodeGeneration: value.nodeGeneration,
158
+ expectedAuthorityStoreVersion: value.expectedAuthorityStoreVersion
159
+ };
160
+ }
161
+ function fromGeneratedCoordinatorFence(value) {
162
+ return {
163
+ ownerId: value.coordinatorOwnerId,
164
+ leaseGeneration: value.coordinatorLeaseGeneration,
165
+ nodeRid: fromGeneratedRoutingId(value.coordinatorNodeRid, 'coordinatorNodeRid'),
166
+ nodeGeneration: value.coordinatorNodeGeneration,
167
+ expectedAuthorityStoreVersion: value.expectedAuthorityStoreVersion
168
+ };
169
+ }
170
+ function toGeneratedTargetFence(value) {
171
+ return {
172
+ targetNodeRid: toGeneratedRoutingId(value.nodeRid, 'targetNodeRid'),
173
+ targetNodeGeneration: value.nodeGeneration,
174
+ targetOwnerId: value.ownerId,
175
+ targetOwnerLeaseGeneration: value.ownerLeaseGeneration
176
+ };
177
+ }
178
+ function fromGeneratedTargetFence(value) {
179
+ return {
180
+ nodeRid: fromGeneratedRoutingId(value.targetNodeRid, 'targetNodeRid'),
181
+ nodeGeneration: value.targetNodeGeneration,
182
+ ownerId: value.targetOwnerId,
183
+ ownerLeaseGeneration: value.targetOwnerLeaseGeneration
184
+ };
185
+ }
186
+ function toGeneratedRequestSourceFence(value) {
187
+ return {
188
+ sourceOwnerId: value.ownerId,
189
+ sourceOwnerLeaseGeneration: value.leaseGeneration,
190
+ sourceNodeRid: toGeneratedRoutingId(value.nodeRid, 'sourceNodeRid'),
191
+ sourceNodeGeneration: value.nodeGeneration
192
+ };
193
+ }
194
+ function fromGeneratedRequestSourceFence(value) {
195
+ return {
196
+ ownerId: value.sourceOwnerId,
197
+ leaseGeneration: value.sourceOwnerLeaseGeneration,
198
+ nodeRid: fromGeneratedRoutingId(value.sourceNodeRid, 'sourceNodeRid'),
199
+ nodeGeneration: value.sourceNodeGeneration
200
+ };
201
+ }
202
+ function toGeneratedRelocationObject(value) {
203
+ switch (value.kind) {
204
+ case 'actor':
205
+ return {
206
+ objectKind: 'actor',
207
+ actorId: value.actorId,
208
+ objectGeneration: value.objectGeneration,
209
+ expectedAuthorityOwnerGeneration: value.expectedAuthorityOwnerGeneration
210
+ };
211
+ case 'userSpot':
212
+ return {
213
+ objectKind: 'userSpot',
214
+ spotId: value.spotId,
215
+ objectGeneration: value.objectGeneration,
216
+ expectedAuthorityOwnerGeneration: value.expectedAuthorityOwnerGeneration
217
+ };
218
+ case 'instanceSpot':
219
+ return {
220
+ objectKind: 'instanceSpot',
221
+ instanceType: value.stableType,
222
+ spotId: value.spotId,
223
+ objectGeneration: value.objectGeneration
224
+ };
225
+ }
226
+ }
227
+ function fromGeneratedRelocationObject(value) {
228
+ switch (value.objectKind) {
229
+ case 'actor':
230
+ return {
231
+ kind: 'actor',
232
+ actorId: value.actorId,
233
+ objectGeneration: value.objectGeneration,
234
+ expectedAuthorityOwnerGeneration: value.expectedAuthorityOwnerGeneration
235
+ };
236
+ case 'userSpot':
237
+ return {
238
+ kind: 'userSpot',
239
+ spotId: value.spotId,
240
+ objectGeneration: value.objectGeneration,
241
+ expectedAuthorityOwnerGeneration: value.expectedAuthorityOwnerGeneration
242
+ };
243
+ case 'instanceSpot':
244
+ return {
245
+ kind: 'instanceSpot',
246
+ stableType: value.instanceType,
247
+ spotId: value.spotId,
248
+ objectGeneration: value.objectGeneration
249
+ };
250
+ }
251
+ }
252
+ function toGeneratedRouteFence(value) {
253
+ return {
254
+ id: value.actor.actorId,
255
+ generation: value.actor.generation,
256
+ targetNodeRid: toGeneratedRoutingId(value.actor.nodeRid, 'targetNodeRid'),
257
+ targetNodeGeneration: value.targetNodeGeneration,
258
+ expectedAuthorityOwnerGeneration: value.authorityOwnerGeneration,
259
+ expectedOwnerLeaseGeneration: value.ownerLeaseGeneration
260
+ };
261
+ }
262
+ function fromGeneratedRouteFence(value) {
263
+ return {
264
+ actor: {
265
+ actorId: value.id,
266
+ generation: value.generation,
267
+ nodeRid: fromGeneratedRoutingId(value.targetNodeRid, 'targetNodeRid')
268
+ },
269
+ targetNodeGeneration: value.targetNodeGeneration,
270
+ authorityOwnerGeneration: value.expectedAuthorityOwnerGeneration,
271
+ ownerLeaseGeneration: value.expectedOwnerLeaseGeneration
272
+ };
273
+ }
274
+ function toGeneratedSessionOwnerFence(value) {
275
+ return {
276
+ sessionOwnerNodeRid: toGeneratedRoutingId(value.sessionOwnerNodeRid, 'sessionOwnerNodeRid'),
277
+ sessionOwnerNodeGeneration: value.sessionOwnerNodeGeneration,
278
+ sessionOwnerId: value.sessionOwnerId,
279
+ sessionOwnerLeaseGeneration: value.sessionOwnerLeaseGeneration,
280
+ sessionRid: toGeneratedRoutingId(value.sessionRid, 'sessionRid'),
281
+ bindingGeneration: value.bindingGeneration
282
+ };
283
+ }
284
+ function fromGeneratedSessionOwnerFence(value) {
285
+ return {
286
+ sessionOwnerNodeRid: fromGeneratedRoutingId(value.sessionOwnerNodeRid, 'sessionOwnerNodeRid'),
287
+ sessionOwnerNodeGeneration: value.sessionOwnerNodeGeneration,
288
+ sessionOwnerId: value.sessionOwnerId,
289
+ sessionOwnerLeaseGeneration: value.sessionOwnerLeaseGeneration,
290
+ sessionRid: fromGeneratedRoutingId(value.sessionRid, 'sessionRid'),
291
+ bindingGeneration: value.bindingGeneration
292
+ };
293
+ }
294
+ function toGeneratedSessionRelocationSeal(value) {
295
+ return {
296
+ relocation: value.relocation,
297
+ coordinator: toGeneratedCoordinatorFence(value.coordinator),
298
+ senderRole: value.senderRole,
299
+ actor: toGeneratedRouteFence(value.actor),
300
+ ...toGeneratedSessionOwnerFence(value.session)
301
+ };
302
+ }
303
+ function fromGeneratedSessionRelocationSeal(value) {
304
+ return {
305
+ relocation: value.relocation,
306
+ coordinator: fromGeneratedCoordinatorFence(value.coordinator),
307
+ senderRole: value.senderRole,
308
+ actor: fromGeneratedRouteFence(value.actor),
309
+ session: fromGeneratedSessionOwnerFence(value)
310
+ };
311
+ }
312
+ function toGeneratedSessionRelocationSealed(value) {
313
+ return {
314
+ relocation: value.relocation,
315
+ coordinator: toGeneratedCoordinatorFence(value.coordinator),
316
+ actor: toGeneratedRouteFence(value.actor),
317
+ ...toGeneratedSessionOwnerFence(value.session)
318
+ };
319
+ }
320
+ function fromGeneratedSessionRelocationSealed(value) {
321
+ return {
322
+ relocation: value.relocation,
323
+ coordinator: fromGeneratedCoordinatorFence(value.coordinator),
324
+ actor: fromGeneratedRouteFence(value.actor),
325
+ session: fromGeneratedSessionOwnerFence(value)
326
+ };
327
+ }
328
+ function toGeneratedSessionRelocationRoute(value) {
329
+ const route = value.route.action === 'commit'
330
+ ? {
331
+ ...value.route,
332
+ targetNodeRid: toGeneratedRoutingId(value.route.targetNodeRid, 'targetNodeRid')
333
+ }
334
+ : value.route;
335
+ return {
336
+ relocation: value.relocation,
337
+ coordinator: toGeneratedCoordinatorFence(value.coordinator),
338
+ senderRole: value.senderRole,
339
+ actor: {
340
+ actorId: value.actor.actorId,
341
+ objectGeneration: value.actor.generation
342
+ },
343
+ ...toGeneratedSessionOwnerFence(value.session),
344
+ route
345
+ };
346
+ }
347
+ function fromGeneratedSessionRelocationRoute(value) {
348
+ const common = {
349
+ relocation: value.relocation,
350
+ coordinator: fromGeneratedCoordinatorFence(value.coordinator),
351
+ actor: { actorId: value.actor.actorId, generation: value.actor.objectGeneration, nodeRid: '' },
352
+ session: fromGeneratedSessionOwnerFence(value)
353
+ };
354
+ return value.route.action === 'commit'
355
+ ? {
356
+ ...common,
357
+ senderRole: value.senderRole,
358
+ route: {
359
+ ...value.route,
360
+ targetNodeRid: fromGeneratedRoutingId(value.route.targetNodeRid, 'targetNodeRid')
361
+ }
362
+ }
363
+ : {
364
+ ...common,
365
+ senderRole: value.senderRole,
366
+ route: value.route
367
+ };
368
+ }
369
+ function toGeneratedRelocationBase(value) {
370
+ return {
371
+ relocation: value.relocation,
372
+ targetAttemptGeneration: value.targetAttemptGeneration,
373
+ coordinator: toGeneratedCoordinatorFence(value.coordinator)
374
+ };
375
+ }
376
+ function fromGeneratedRelocationBase(value) {
377
+ return {
378
+ relocation: value.relocation,
379
+ targetAttemptGeneration: value.targetAttemptGeneration,
380
+ coordinator: fromGeneratedCoordinatorFence(value.coordinator)
381
+ };
382
+ }
383
+ function fromGeneratedRelocationPrepare(value) {
384
+ return {
385
+ kind: 'prepare',
386
+ ...fromGeneratedRelocationBase(value),
387
+ target: fromGeneratedTargetFence(value.target),
388
+ initiatorRole: value.initiatorRole,
389
+ object: fromGeneratedRelocationObject(value.object),
390
+ sourceNodeRid: fromGeneratedRoutingId(value.sourceNodeRid, 'sourceNodeRid'),
391
+ sourceNodeGeneration: value.sourceNodeGeneration,
392
+ payloadTotalLength: value.payloadTotalLength,
393
+ payloadChunkCount: value.payloadChunkCount,
394
+ payloadChecksumCrc32c: value.payloadChecksumCrc32c,
395
+ applicationVersion: value.applicationVersion
396
+ };
397
+ }
398
+ function fromGeneratedRelocationReady(value) {
399
+ return {
400
+ kind: 'ready',
401
+ ...fromGeneratedRelocationBase(value),
402
+ target: fromGeneratedTargetFence(value.target),
403
+ object: fromGeneratedRelocationObject(value.object),
404
+ senderRole: value.senderRole
405
+ };
406
+ }
407
+ function fromGeneratedRelocationFailed(value) {
408
+ return {
409
+ kind: 'failed',
410
+ ...fromGeneratedRelocationBase(value),
411
+ target: fromGeneratedTargetFence(value.target),
412
+ object: fromGeneratedRelocationObject(value.object),
413
+ senderRole: value.senderRole,
414
+ failureCode: value.failureCode
415
+ };
416
+ }
417
+ function fromGeneratedRelocationData(value) {
418
+ return {
419
+ kind: 'data',
420
+ ...fromGeneratedRelocationBase(value),
421
+ senderRole: value.senderRole,
422
+ object: fromGeneratedRelocationObject(value.object),
423
+ frozenRecord: decodeServiceWireFrozenRecord(value.record)
424
+ };
425
+ }
426
+ function fromGeneratedRelocationCutover(value) {
427
+ return {
428
+ kind: 'cutover',
429
+ ...fromGeneratedRelocationBase(value),
430
+ senderRole: value.senderRole,
431
+ object: fromGeneratedRelocationObject(value.object),
432
+ boundaryRecordCount: value.boundaryRecordCount,
433
+ boundaryChecksumCrc32c: value.boundaryChecksumCrc32c
434
+ };
435
+ }
436
+ function fromGeneratedRelocationState(value) {
437
+ return {
438
+ kind: 'state',
439
+ ...fromGeneratedRelocationBase(value),
440
+ senderRole: value.senderRole,
441
+ object: fromGeneratedRelocationObject(value.object),
442
+ chunkOrdinal: value.chunkOrdinal,
443
+ chunkData: Buffer.from(value.chunkData)
444
+ };
445
+ }
446
+ function toGeneratedReplyRelay(value) {
447
+ return {
448
+ operation: value.operation,
449
+ replyRouteId: value.replyRouteId,
450
+ context: {
451
+ contextKind: 'maintenanceRelocation',
452
+ relocation: value.relocation,
453
+ targetAttemptGeneration: value.targetAttemptGeneration,
454
+ coordinator: toGeneratedCoordinatorFence(value.coordinator),
455
+ participantId: value.participantId,
456
+ sequence: value.sequence
457
+ },
458
+ terminalResult: value.terminalResult,
459
+ failureCode: value.failureCode,
460
+ ...(value.payload === undefined ? {} : {
461
+ payload: {
462
+ packetName: value.payload.packetName,
463
+ contentType: value.payload.contentType,
464
+ payload: value.payload.bytes
465
+ }
466
+ })
467
+ };
468
+ }
469
+ function fromGeneratedReplyRelay(value) {
470
+ if (value.context.contextKind !== 'maintenanceRelocation') {
471
+ fail('replyRelay context must be maintenanceRelocation.');
472
+ }
473
+ return {
474
+ relocation: value.context.relocation,
475
+ targetAttemptGeneration: value.context.targetAttemptGeneration,
476
+ coordinator: fromGeneratedCoordinatorFence(value.context.coordinator),
477
+ operation: value.operation,
478
+ replyRouteId: value.replyRouteId,
479
+ participantId: value.context.participantId,
480
+ sequence: value.context.sequence,
481
+ terminalResult: value.terminalResult,
482
+ failureCode: value.failureCode,
483
+ ...(value.payload === undefined ? {} : {
484
+ payload: {
485
+ packetName: value.payload.packetName,
486
+ contentType: value.payload.contentType,
487
+ bytes: Buffer.from(value.payload.payload)
488
+ }
489
+ })
490
+ };
491
+ }
492
+ function encodeSpotHeader(kind, sourceSpotId, target, correlation) {
493
+ return concat(prefix(kind === 'spotSend'
494
+ ? exports.M6bServiceWireCommand.spotSend
495
+ : exports.M6bServiceWireCommand.spotRequest), ...(kind === 'spotRequest' ? [u64(requirePositive(correlation, 'correlation'))] : []), rid(sourceSpotId, 'sourceSpotId'), directSpotFence(target));
496
+ }
497
+ function encodeActorHeader(kind, target, correlation, sourceActor, boundSession) {
498
+ const flags = boundSession === undefined
499
+ ? 0
500
+ : exports.M6bServiceWireFlag.boundSession | exports.M6bServiceWireFlag.sourceSpotId;
501
+ return concat(prefix(kind === 'actorSend'
502
+ ? exports.M6bServiceWireCommand.actorSend
503
+ : exports.M6bServiceWireCommand.actorRequest, flags), ...(kind === 'actorRequest' ? [u64(requirePositive(correlation, 'correlation'))] : []), optionalActor(sourceActor), actorFence(target), ...(boundSession === undefined
504
+ ? []
505
+ : [
506
+ rid(boundSession.sessionRid, 'sourceSessionRid'),
507
+ u64(boundSession.bindingGeneration),
508
+ u64(boundSession.sequence)
509
+ ]));
510
+ }
511
+ function encodeLogicalMulticastHeader(channelName, topic, sourceSpotId) {
512
+ return concat(prefix(exports.M6bServiceWireCommand.logicalMulticast), text8(channelName, 'channelName'), text8(topic, 'topic'), rid(sourceSpotId, 'sourceSpotId'));
513
+ }
514
+ function encodeActorLookupHeader(correlation, actorId) {
515
+ return concat(prefix(exports.M6bServiceWireCommand.actorLookup), u64(correlation), text8(actorId, 'actorId'));
516
+ }
517
+ function encodeActorDestroyHeader(correlation, actor) {
518
+ return concat(prefix(exports.M6bServiceWireCommand.actorDestroy), u64(correlation), actorFence(actor));
519
+ }
520
+ function encodeBoundSessionSendHeader(actor, expectedBindingGeneration) {
521
+ return concat(prefix(exports.M6bServiceWireCommand.boundSessionSend), actorFence(actor), u64(expectedBindingGeneration));
522
+ }
523
+ function encodeBoundSessionBindHeader(correlation, actor, sessionRid, binding) {
524
+ const body = binding.state === 'active'
525
+ ? u64(binding.generation)
526
+ : u64(binding.retiredGeneration);
527
+ return concat(prefix(exports.M6bServiceWireCommand.boundSessionBind), u64(correlation), actorFence(actor), rid(sessionRid, 'sessionRid'), Buffer.of(binding.state === 'active' ? 1 : 2), u16(body.byteLength), body);
528
+ }
529
+ function encodeBoundSessionReplacedHeader(actorAuthority, retiredSession) {
530
+ return concat(prefix(exports.M6bServiceWireCommand.boundSessionReplaced), actorAuthorityFence(actorAuthority), rid(retiredSession.sessionOwnerNodeRid, 'sessionOwnerNodeRid'), u64(retiredSession.sessionOwnerNodeGeneration), text8(retiredSession.sessionOwnerId, 'sessionOwnerId'), u64(retiredSession.sessionOwnerLeaseGeneration), rid(retiredSession.sessionRid, 'sessionRid'), u64(retiredSession.retiredBindingGeneration));
531
+ }
532
+ /** Encodes canonical service-wire command 42. */
533
+ function encodeSessionRelocationSeal(value) {
534
+ return Buffer.from((0, service_wire_pilot_codec_generated_1.encodeSessionRelocationSeal42)(toGeneratedSessionRelocationSeal(value)));
535
+ }
536
+ /** Decodes canonical service-wire command 42. */
537
+ function decodeSessionRelocationSeal(frame) {
538
+ return fromGeneratedSessionRelocationSeal((0, service_wire_pilot_codec_generated_1.decodeSessionRelocationSeal42)(frame));
539
+ }
540
+ /** Encodes canonical service-wire command 43. */
541
+ function encodeSessionRelocationSealed(value) {
542
+ return Buffer.from((0, service_wire_pilot_codec_generated_1.encodeSessionRelocationSealed43)(toGeneratedSessionRelocationSealed(value)));
543
+ }
544
+ /** Decodes canonical service-wire command 43. */
545
+ function decodeSessionRelocationSealed(frame) {
546
+ return fromGeneratedSessionRelocationSealed((0, service_wire_pilot_codec_generated_1.decodeSessionRelocationSealed43)(frame));
547
+ }
548
+ /** Encodes canonical service-wire command 44. */
549
+ function encodeSessionRelocationRoute(value) {
550
+ return Buffer.from((0, service_wire_pilot_codec_generated_1.encodeSessionRelocationRoute44)(toGeneratedSessionRelocationRoute(value)));
551
+ }
552
+ /** Decodes canonical service-wire command 44. */
553
+ function decodeSessionRelocationRoute(frame) {
554
+ return fromGeneratedSessionRelocationRoute((0, service_wire_pilot_codec_generated_1.decodeSessionRelocationRoute44)(frame));
555
+ }
556
+ function encodeInstanceSpotHeader(route, sourceNodeGeneration, sourceNodeRid, sourceSpotId, operationKind, operation, replyRouteId, hasMetadata = false) {
557
+ const routeBody = concat(rid(route.targetNodeRid, 'targetNodeRid'), u64(route.targetNodeGeneration), rid(route.targetSpotId, 'targetSpotId'), u64(route.objectGeneration), text8(route.ownerId, 'ownerId'), u64(route.authorityOwnerGeneration), u64(route.leaseGeneration), text16(route.storeVersion, 'storeVersion'));
558
+ if (operationKind === 'send'
559
+ && (operation.high !== 0n || operation.low !== 0n || replyRouteId !== undefined)) {
560
+ throw new RangeError('Instance Spot send must not carry an operation or reply route.');
561
+ }
562
+ if (operationKind === 'request' && operation.high === 0n && operation.low === 0n) {
563
+ throw new RangeError('Instance Spot request requires a non-zero operation.');
564
+ }
565
+ return concat(prefix(exports.M6bServiceWireCommand.instanceSpot, hasMetadata ? exports.M6bServiceWireFlag.metadata : 0), Buffer.of(1), u16(routeBody.byteLength), routeBody, u64Any(sourceNodeGeneration), rid(sourceNodeRid, 'sourceNodeRid'), optionalRid(sourceSpotId), Buffer.of(operationKind === 'send' ? 1 : 2), u64Any(operation.high), u64Any(operation.low), ...(operationKind === 'request'
566
+ ? [u64(requirePositive(replyRouteId, 'replyRouteId'))]
567
+ : []));
568
+ }
569
+ function encodeInstanceSpotActivationHeader(target, sourceNodeGeneration, sourceNodeRid, sourceSpotId, operationKind, operation, deadlineUnixMs, replyRouteId, hasMetadata = false) {
570
+ if (operation.high === 0n && operation.low === 0n) {
571
+ throw new RangeError('Instance Spot activation requires a non-zero operation identity.');
572
+ }
573
+ if (deadlineUnixMs <= 0n) {
574
+ throw new RangeError('Instance Spot activation requires a positive deadline.');
575
+ }
576
+ if (operationKind === 'send' && replyRouteId !== undefined) {
577
+ throw new RangeError('Instance Spot send must not carry a reply route.');
578
+ }
579
+ const targetBody = concat(rid(target.targetNodeRid, 'targetNodeRid'), u64(target.targetNodeGeneration), rid(target.targetSpotId, 'targetSpotId'), text16(target.stableType, 'stableType'), text16(target.descriptorVersion, 'descriptorVersion'));
580
+ return concat(prefix(exports.M6bServiceWireCommand.instanceSpot, hasMetadata ? exports.M6bServiceWireFlag.metadata : 0), Buffer.of(2), u16(targetBody.byteLength), targetBody, u64Any(sourceNodeGeneration), rid(sourceNodeRid, 'sourceNodeRid'), optionalRid(sourceSpotId), Buffer.of(operationKind === 'send' ? 1 : 2), u64Any(operation.high), u64Any(operation.low), u64(deadlineUnixMs), ...(operationKind === 'request'
581
+ ? [u64(requirePositive(replyRouteId, 'replyRouteId'))]
582
+ : []));
583
+ }
584
+ function encodeUserSpotCreateHeader(record) {
585
+ return Buffer.from((0, service_wire_pilot_codec_generated_1.encodeUserSpotCreate47)(toGeneratedUserSpotCreate(record)));
586
+ }
587
+ function encodeActorCreateHeader(record) {
588
+ return Buffer.from((0, service_wire_pilot_codec_generated_1.encodeActorCreate49)(toGeneratedActorCreate(record)));
589
+ }
590
+ function encodeUserSpotCloseHeader(record) {
591
+ return Buffer.from((0, service_wire_pilot_codec_generated_1.encodeUserSpotClose48)(toGeneratedUserSpotClose(record)));
592
+ }
593
+ function encodeMessageFollowHeader(record) {
594
+ validateMessageFollowRecord(record);
595
+ const body = concat(messageFollowRoute(record.source), messageFollowRoute(record.target), Buffer.of(record.hopCount), u32(record.queuedMessages, 'queuedMessages'), u32(record.queuedBytes, 'queuedBytes'), u64Any(record.originalOperation.high), u64Any(record.originalOperation.low), u64Any(record.originalReplyRouteId));
596
+ if (body.byteLength > 16 * 1024 * 1024) {
597
+ throw new RangeError('Message Follow body exceeds 16 MiB.');
598
+ }
599
+ return concat(prefix(exports.M6bServiceWireCommand.messageFollow), Buffer.of(1), u32(body.byteLength, 'messageFollow.length'), body);
600
+ }
601
+ function decodeStatefulHeader(frame) {
602
+ switch (frame[3]) {
603
+ case exports.M6bServiceWireCommand.userSpotCreate:
604
+ return fromGeneratedUserSpotCreate((0, service_wire_pilot_codec_generated_1.decodeUserSpotCreate47)(frame));
605
+ case exports.M6bServiceWireCommand.userSpotClose:
606
+ return fromGeneratedUserSpotClose((0, service_wire_pilot_codec_generated_1.decodeUserSpotClose48)(frame));
607
+ case exports.M6bServiceWireCommand.actorCreate:
608
+ return fromGeneratedActorCreate((0, service_wire_pilot_codec_generated_1.decodeActorCreate49)(frame));
609
+ }
610
+ const reader = new Reader(frame);
611
+ const command = reader.prefix();
612
+ switch (command.command) {
613
+ case exports.M6bServiceWireCommand.spotSend:
614
+ case exports.M6bServiceWireCommand.spotRequest: {
615
+ requireFlags(command.flags, 0);
616
+ const request = command.command === exports.M6bServiceWireCommand.spotRequest;
617
+ const correlation = request ? reader.nonZeroU64('correlation') : undefined;
618
+ const sourceSpotId = reader.rid('sourceSpotId');
619
+ const target = reader.directSpotFence();
620
+ reader.end();
621
+ return {
622
+ kind: request ? 'spotRequest' : 'spotSend',
623
+ ...(correlation === undefined ? {} : { correlation }),
624
+ sourceSpotId,
625
+ target
626
+ };
627
+ }
628
+ case exports.M6bServiceWireCommand.actorSend:
629
+ case exports.M6bServiceWireCommand.actorRequest: {
630
+ const request = command.command === exports.M6bServiceWireCommand.actorRequest;
631
+ const hasBinding = command.flags !== 0;
632
+ requireFlags(command.flags, hasBinding
633
+ ? exports.M6bServiceWireFlag.boundSession | exports.M6bServiceWireFlag.sourceSpotId
634
+ : 0);
635
+ const correlation = request ? reader.nonZeroU64('correlation') : undefined;
636
+ const sourceActor = reader.optionalActor();
637
+ const target = reader.actorFence();
638
+ const boundSession = hasBinding
639
+ ? {
640
+ sessionRid: reader.rid('sourceSessionRid'),
641
+ bindingGeneration: reader.nonZeroU64('sourceBindingGeneration'),
642
+ sequence: reader.nonZeroU64('sourceSessionSequence')
643
+ }
644
+ : undefined;
645
+ reader.end();
646
+ return {
647
+ kind: request ? 'actorRequest' : 'actorSend',
648
+ ...(correlation === undefined ? {} : { correlation }),
649
+ ...(sourceActor === undefined ? {} : { sourceActor }),
650
+ target,
651
+ ...(boundSession === undefined ? {} : { boundSession })
652
+ };
653
+ }
654
+ case exports.M6bServiceWireCommand.logicalMulticast: {
655
+ requireFlags(command.flags, 0);
656
+ const result = {
657
+ kind: 'logicalMulticast',
658
+ channelName: reader.text8('channelName'),
659
+ topic: reader.text8('topic'),
660
+ sourceSpotId: reader.rid('sourceSpotId')
661
+ };
662
+ reader.end();
663
+ return result;
664
+ }
665
+ case exports.M6bServiceWireCommand.actorLookup: {
666
+ requireFlags(command.flags, 0);
667
+ const result = {
668
+ kind: 'actorLookup',
669
+ correlation: reader.nonZeroU64('correlation'),
670
+ actorId: reader.text8('actorId')
671
+ };
672
+ reader.end();
673
+ return result;
674
+ }
675
+ case exports.M6bServiceWireCommand.actorDestroy: {
676
+ requireFlags(command.flags, 0);
677
+ const result = {
678
+ kind: 'actorDestroy',
679
+ correlation: reader.nonZeroU64('correlation'),
680
+ actor: reader.actorFence()
681
+ };
682
+ reader.end();
683
+ return result;
684
+ }
685
+ case exports.M6bServiceWireCommand.actorJoin: {
686
+ // Command 28 is canonical-only; the generated codec owns its validation.
687
+ const decoded = (0, service_wire_pilot_codec_generated_1.decodeActorJoin28)([frame]);
688
+ return {
689
+ kind: 'actorJoin',
690
+ correlation: decoded.correlation,
691
+ actor: {
692
+ actor: {
693
+ actorId: decoded.actor.id,
694
+ generation: decoded.actor.generation,
695
+ nodeRid: Buffer.from(decoded.actor.targetNodeRid).toString('utf8')
696
+ },
697
+ targetNodeGeneration: decoded.actor.targetNodeGeneration,
698
+ authorityOwnerGeneration: decoded.actor.expectedAuthorityOwnerGeneration,
699
+ ownerLeaseGeneration: decoded.actor.expectedOwnerLeaseGeneration
700
+ },
701
+ entry: decoded.entry,
702
+ target: {
703
+ spot: {
704
+ spotId: decoded.targetSpot.id,
705
+ generation: decoded.targetSpot.generation
706
+ },
707
+ targetNodeRid: Buffer.from(decoded.targetSpot.targetNodeRid).toString('utf8'),
708
+ targetNodeGeneration: decoded.targetSpot.targetNodeGeneration,
709
+ authorityOwnerGeneration: decoded.targetSpot.expectedAuthorityOwnerGeneration,
710
+ ownerLeaseGeneration: decoded.targetSpot.expectedOwnerLeaseGeneration
711
+ }
712
+ };
713
+ }
714
+ case exports.M6bServiceWireCommand.boundSessionSend: {
715
+ requireFlags(command.flags, 0);
716
+ const actor = reader.actorFence();
717
+ const expectedBindingGeneration = reader.nonZeroU64('expectedBindingGeneration');
718
+ reader.end();
719
+ return { kind: 'boundSessionSend', actor, expectedBindingGeneration };
720
+ }
721
+ case exports.M6bServiceWireCommand.boundSessionBind: {
722
+ requireFlags(command.flags, 0);
723
+ const correlation = reader.nonZeroU64('correlation');
724
+ const actor = reader.actorFence();
725
+ const sessionRid = reader.rid('sessionRid');
726
+ const state = reader.u8('bindingState');
727
+ const bodyLength = reader.u16('bindingBodyLength');
728
+ if (bodyLength !== 8)
729
+ fail('Binding transition body must contain one u64.');
730
+ const generation = reader.nonZeroU64('bindingGeneration');
731
+ reader.end();
732
+ if (state !== 1 && state !== 2)
733
+ fail('Unknown binding transition state.');
734
+ return {
735
+ kind: 'boundSessionBind',
736
+ correlation,
737
+ actor,
738
+ sessionRid,
739
+ binding: state === 1
740
+ ? { state: 'active', generation }
741
+ : { state: 'tombstone', retiredGeneration: generation }
742
+ };
743
+ }
744
+ case exports.M6bServiceWireCommand.boundSessionReplaced: {
745
+ requireFlags(command.flags, 0);
746
+ const actor = reader.actorRef('actorAuthority.actor');
747
+ const targetNodeRid = reader.rid('actorAuthority.targetNodeRid');
748
+ const actorAuthority = {
749
+ actor: { ...actor, nodeRid: targetNodeRid },
750
+ targetNodeGeneration: reader.nonZeroU64('actorAuthority.targetNodeGeneration'),
751
+ authorityOwnerGeneration: reader.nonZeroU64('actorAuthority.expectedAuthorityOwnerGeneration'),
752
+ ownerLeaseGeneration: reader.nonZeroU64('actorAuthority.expectedOwnerLeaseGeneration')
753
+ };
754
+ const retiredSession = {
755
+ sessionOwnerNodeRid: reader.rid('sessionOwnerNodeRid'),
756
+ sessionOwnerNodeGeneration: reader.nonZeroU64('sessionOwnerNodeGeneration'),
757
+ sessionOwnerId: reader.text8('sessionOwnerId'),
758
+ sessionOwnerLeaseGeneration: reader.nonZeroU64('sessionOwnerLeaseGeneration'),
759
+ sessionRid: reader.rid('sessionRid'),
760
+ retiredBindingGeneration: reader.nonZeroU64('retiredBindingGeneration')
761
+ };
762
+ reader.end();
763
+ return { kind: 'boundSessionReplaced', actorAuthority, retiredSession };
764
+ }
765
+ case exports.M6bServiceWireCommand.instanceSpot: {
766
+ if ((command.flags & ~exports.M6bServiceWireFlag.metadata) !== 0) {
767
+ fail(`Invalid command flags '${command.flags}'.`);
768
+ }
769
+ const version = reader.u8('instanceRoute.version');
770
+ if (version !== 1 && version !== 2)
771
+ fail('Unsupported Instance route version.');
772
+ const routeLength = reader.u16('instanceRoute.length');
773
+ const routeEnd = reader.offset + routeLength;
774
+ const commonTarget = {
775
+ targetNodeRid: reader.rid('targetNodeRid'),
776
+ targetNodeGeneration: reader.nonZeroU64('targetNodeGeneration'),
777
+ targetSpotId: reader.rid('targetSpotId')
778
+ };
779
+ const route = version === 1
780
+ ? {
781
+ ...commonTarget,
782
+ objectGeneration: reader.nonZeroU64('objectGeneration'),
783
+ ownerId: reader.text8('ownerId'),
784
+ authorityOwnerGeneration: reader.nonZeroU64('authorityOwnerGeneration'),
785
+ leaseGeneration: reader.nonZeroU64('leaseGeneration'),
786
+ storeVersion: reader.text16('storeVersion')
787
+ }
788
+ : undefined;
789
+ const target = version === 2
790
+ ? {
791
+ ...commonTarget,
792
+ stableType: reader.text16('stableType'),
793
+ descriptorVersion: reader.text16('descriptorVersion')
794
+ }
795
+ : undefined;
796
+ if (reader.offset !== routeEnd)
797
+ fail('Invalid Instance route body length.');
798
+ const sourceNodeGeneration = reader.nonZeroU64('sourceNodeGeneration');
799
+ const sourceNodeRid = reader.rid('sourceNodeRid');
800
+ const sourceSpotId = reader.optionalRid('sourceSpotId');
801
+ const operationValue = reader.u8('operationKind');
802
+ if (operationValue !== 1 && operationValue !== 2)
803
+ fail('Unknown Instance operation kind.');
804
+ const operation = {
805
+ high: reader.u64('operation.high'),
806
+ low: reader.u64('operation.low')
807
+ };
808
+ const operationKind = operationValue === 1 ? 'send' : 'request';
809
+ if (version === 1 && ((operationKind === 'send' && (operation.high !== 0n || operation.low !== 0n))
810
+ || (operationKind === 'request' && operation.high === 0n && operation.low === 0n))) {
811
+ fail('Invalid Instance operation identity.');
812
+ }
813
+ if (version === 2 && operation.high === 0n && operation.low === 0n) {
814
+ fail('Instance activation requires a non-zero operation identity.');
815
+ }
816
+ const deadlineUnixMs = version === 2
817
+ ? reader.nonZeroU64('deadlineUnixMs')
818
+ : undefined;
819
+ const replyRouteId = operationKind === 'request'
820
+ ? reader.nonZeroU64('replyRouteId')
821
+ : undefined;
822
+ reader.end();
823
+ const common = {
824
+ kind: 'instanceSpot',
825
+ sourceNodeGeneration,
826
+ sourceNodeRid,
827
+ ...(sourceSpotId === undefined ? {} : { sourceSpotId }),
828
+ operationKind,
829
+ operation,
830
+ ...(replyRouteId === undefined ? {} : { replyRouteId })
831
+ };
832
+ return version === 1
833
+ ? { ...common, activation: 'ready', route: route }
834
+ : {
835
+ ...common,
836
+ activation: 'missing',
837
+ target: target,
838
+ deadlineUnixMs: deadlineUnixMs
839
+ };
840
+ }
841
+ case exports.M6bServiceWireCommand.messageFollow: {
842
+ requireFlags(command.flags, 0);
843
+ if (reader.u8('messageFollow.version') !== 1) {
844
+ fail('Unsupported Message Follow version.');
845
+ }
846
+ const length = reader.u32('messageFollow.length');
847
+ const end = reader.offset + length;
848
+ if (length > 16 * 1024 * 1024 || end > reader.bytes.byteLength) {
849
+ fail('Invalid Message Follow body length.');
850
+ }
851
+ const record = {
852
+ kind: 'messageFollow',
853
+ source: reader.messageFollowRoute('source'),
854
+ target: reader.messageFollowRoute('target'),
855
+ hopCount: reader.u8('hopCount'),
856
+ queuedMessages: reader.u32('queuedMessages'),
857
+ queuedBytes: reader.u32('queuedBytes'),
858
+ originalOperation: reader.operationId('originalOperation'),
859
+ originalReplyRouteId: reader.u64('originalReplyRouteId')
860
+ };
861
+ if (reader.offset !== end)
862
+ fail('Invalid Message Follow body length.');
863
+ reader.end();
864
+ validateMessageFollowRecord(record, fail);
865
+ return record;
866
+ }
867
+ default:
868
+ fail(`Command '${command.command}' is not owned by the M6B codec.`);
869
+ }
870
+ }
871
+ function encodeStatefulReply(correlation, terminalResult, failureCode, tail) {
872
+ const tailBytes = tail === undefined ? Buffer.alloc(0) : encodeReplyTail(tail);
873
+ return concat(prefix(20), u64(correlation), u32(terminalResult, 'terminalResult'), u32(failureCode, 'failureCode'), tailBytes);
874
+ }
875
+ /** Encodes canonical maintenance relocation commands 30, 31, 34, 40, 52, and 53. */
876
+ function encodeMaintenanceRelocationControl(value) {
877
+ switch (value.kind) {
878
+ case 'prepare':
879
+ return Buffer.from((0, service_wire_pilot_codec_generated_1.encodeRelocationPrepare40)({
880
+ ...toGeneratedRelocationBase(value),
881
+ target: toGeneratedTargetFence(value.target),
882
+ initiatorRole: value.initiatorRole,
883
+ object: toGeneratedRelocationObject(value.object),
884
+ sourceNodeRid: toGeneratedRoutingId(value.sourceNodeRid, 'sourceNodeRid'),
885
+ sourceNodeGeneration: value.sourceNodeGeneration,
886
+ payloadTotalLength: value.payloadTotalLength,
887
+ payloadChunkCount: value.payloadChunkCount,
888
+ payloadChecksumCrc32c: value.payloadChecksumCrc32c,
889
+ applicationVersion: value.applicationVersion
890
+ }));
891
+ case 'ready':
892
+ return Buffer.from((0, service_wire_pilot_codec_generated_1.encodeRelocationReady30)({
893
+ ...toGeneratedRelocationBase(value),
894
+ target: toGeneratedTargetFence(value.target),
895
+ object: toGeneratedRelocationObject(value.object),
896
+ senderRole: value.senderRole
897
+ }));
898
+ case 'failed':
899
+ return Buffer.from((0, service_wire_pilot_codec_generated_1.encodeRelocationFailed53)({
900
+ ...toGeneratedRelocationBase(value),
901
+ target: toGeneratedTargetFence(value.target),
902
+ object: toGeneratedRelocationObject(value.object),
903
+ senderRole: value.senderRole,
904
+ failureCode: value.failureCode
905
+ }));
906
+ case 'data':
907
+ return Buffer.from((0, service_wire_pilot_codec_generated_1.encodeRelocationData31)({
908
+ ...toGeneratedRelocationBase(value),
909
+ senderRole: value.senderRole,
910
+ object: toGeneratedRelocationObject(value.object),
911
+ record: encodeServiceWireFrozenRecord(value.frozenRecord)
912
+ }));
913
+ case 'cutover':
914
+ return Buffer.from((0, service_wire_pilot_codec_generated_1.encodeRelocationCutover34)({
915
+ ...toGeneratedRelocationBase(value),
916
+ senderRole: value.senderRole,
917
+ object: toGeneratedRelocationObject(value.object),
918
+ boundaryRecordCount: value.boundaryRecordCount,
919
+ boundaryChecksumCrc32c: value.boundaryChecksumCrc32c
920
+ }));
921
+ case 'state':
922
+ return Buffer.from((0, service_wire_pilot_codec_generated_1.encodeRelocationState52)({
923
+ ...toGeneratedRelocationBase(value),
924
+ senderRole: value.senderRole,
925
+ object: toGeneratedRelocationObject(value.object),
926
+ chunkOrdinal: value.chunkOrdinal,
927
+ chunkData: value.chunkData
928
+ }));
929
+ }
930
+ }
931
+ /** Decodes canonical maintenance relocation commands and rejects malformed vectors. */
932
+ function decodeMaintenanceRelocationControl(frame) {
933
+ switch (frame[3]) {
934
+ case exports.M6bServiceWireCommand.relocationPrepare:
935
+ return fromGeneratedRelocationPrepare((0, service_wire_pilot_codec_generated_1.decodeRelocationPrepare40)(frame));
936
+ case exports.M6bServiceWireCommand.relocationReady:
937
+ return fromGeneratedRelocationReady((0, service_wire_pilot_codec_generated_1.decodeRelocationReady30)(frame));
938
+ case exports.M6bServiceWireCommand.relocationFailed:
939
+ return fromGeneratedRelocationFailed((0, service_wire_pilot_codec_generated_1.decodeRelocationFailed53)(frame));
940
+ case exports.M6bServiceWireCommand.relocationData:
941
+ return fromGeneratedRelocationData((0, service_wire_pilot_codec_generated_1.decodeRelocationData31)(frame));
942
+ case exports.M6bServiceWireCommand.relocationCutover:
943
+ return fromGeneratedRelocationCutover((0, service_wire_pilot_codec_generated_1.decodeRelocationCutover34)(frame));
944
+ case exports.M6bServiceWireCommand.relocationState:
945
+ return fromGeneratedRelocationState((0, service_wire_pilot_codec_generated_1.decodeRelocationState52)(frame));
946
+ default:
947
+ fail(`Unsupported maintenance relocation command '${frame.length > 3 ? frame[3] : -1}'.`);
948
+ }
949
+ }
950
+ /** Encodes canonical service-wire command 33 for a maintenance terminal relay. */
951
+ function encodeMaintenanceReplyRelay(value) {
952
+ return (0, service_wire_pilot_codec_generated_1.encodeReplyRelay33)(toGeneratedReplyRelay(value)).map(Buffer.from);
953
+ }
954
+ /** Decodes canonical service-wire command 33 and rejects non-maintenance contexts. */
955
+ function decodeMaintenanceReplyRelay(frames) {
956
+ return fromGeneratedReplyRelay((0, service_wire_pilot_codec_generated_1.decodeReplyRelay33)(frames));
957
+ }
958
+ /** Encodes canonical service-wire command 46. */
959
+ function encodeMaintenanceReplyRelayAck(value) {
960
+ return Buffer.from((0, service_wire_pilot_codec_generated_1.encodeReplyRelayAck46)({
961
+ relocation: value.relocation,
962
+ coordinator: toGeneratedCoordinatorFence(value.coordinator),
963
+ operation: value.operation,
964
+ replyRouteId: value.replyRouteId,
965
+ requestSource: toGeneratedRequestSourceFence(value.requestSource),
966
+ status: value.status
967
+ }));
968
+ }
969
+ /** Decodes canonical service-wire command 46. */
970
+ function decodeMaintenanceReplyRelayAck(frame) {
971
+ const value = (0, service_wire_pilot_codec_generated_1.decodeReplyRelayAck46)(frame);
972
+ return {
973
+ relocation: value.relocation,
974
+ coordinator: fromGeneratedCoordinatorFence(value.coordinator),
975
+ operation: value.operation,
976
+ replyRouteId: value.replyRouteId,
977
+ requestSource: fromGeneratedRequestSourceFence(value.requestSource),
978
+ status: value.status
979
+ };
980
+ }
981
+ function decodeStatefulReply(frame, expectedCorrelation, operationKind, hasPayload = false) {
982
+ const reader = new Reader(frame);
983
+ const command = reader.prefix();
984
+ if (command.command !== 20 || command.flags !== 0)
985
+ fail('Invalid stateful reply prefix.');
986
+ const correlation = reader.nonZeroU64('correlation');
987
+ if (correlation !== expectedCorrelation)
988
+ fail('Stateful reply correlation mismatch.');
989
+ const terminalResult = reader.u32('terminalResult');
990
+ const failureCode = reader.u32('failureCode');
991
+ validateReplyTerminal(terminalResult, failureCode, hasPayload);
992
+ let tail;
993
+ if (terminalResult === 0) {
994
+ if (operationKind === 'actorLookup') {
995
+ tail = {
996
+ kind: 'actorLookup',
997
+ actor: reader.actorRef('actor'),
998
+ spot: {
999
+ spotId: reader.rid('spotId'),
1000
+ generation: reader.nonZeroU64('spotGeneration')
1001
+ },
1002
+ membershipEpoch: reader.nonZeroU64('membershipEpoch'),
1003
+ authorityOwnerGeneration: reader.nonZeroU64('authorityOwnerGeneration')
1004
+ };
1005
+ }
1006
+ else if (operationKind === 'actorJoin') {
1007
+ const joinResult = reader.u32('joinResult');
1008
+ if (joinResult !== 0 && joinResult !== 1)
1009
+ fail('Invalid actor join result.');
1010
+ const bodyLength = reader.u16('joinBodyLength');
1011
+ const bodyEnd = reader.offset + bodyLength;
1012
+ let spot;
1013
+ if (joinResult === 0) {
1014
+ spot = reader.spotRef();
1015
+ const membershipEpoch = reader.nonZeroU64('membershipEpoch');
1016
+ // Tolerant of frames from an unpatched encoder that stops after
1017
+ // membershipEpoch: 0 means "not advertised".
1018
+ const receiveChunkLimitBytes = reader.offset === bodyEnd
1019
+ ? 0
1020
+ : (() => {
1021
+ const value = reader.u32('receiveChunkLimitBytes');
1022
+ if (value > exports.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES) {
1023
+ fail('receiveChunkLimitBytes exceeds the relocation state chunk data bound.');
1024
+ }
1025
+ return value;
1026
+ })();
1027
+ if (reader.offset !== bodyEnd)
1028
+ fail('Invalid actor join body length.');
1029
+ tail = { kind: 'actorJoin', joinResult, spot, membershipEpoch, receiveChunkLimitBytes };
1030
+ }
1031
+ else {
1032
+ const hasSpot = reader.bool8('hasSpot');
1033
+ const optionalLength = reader.u16('optionalSpotLength');
1034
+ const optionalEnd = reader.offset + optionalLength;
1035
+ if (hasSpot)
1036
+ spot = reader.spotRef();
1037
+ if (reader.offset !== optionalEnd)
1038
+ fail('Invalid optional Spot body length.');
1039
+ if (reader.offset !== bodyEnd)
1040
+ fail('Invalid actor join body length.');
1041
+ tail = { kind: 'actorJoin', joinResult, ...(spot === undefined ? {} : { spot }) };
1042
+ }
1043
+ }
1044
+ else if (operationKind === 'streamBind') {
1045
+ tail = {
1046
+ kind: 'streamBind',
1047
+ bindingGeneration: reader.nonZeroU64('bindingGeneration'),
1048
+ authorityOwnerGeneration: reader.nonZeroU64('authorityOwnerGeneration')
1049
+ };
1050
+ }
1051
+ else if (operationKind === 'userSpotCreate') {
1052
+ const createResult = reader.u8('createResult');
1053
+ if (createResult < 1 || createResult > 3)
1054
+ fail('Invalid User Spot create result.');
1055
+ tail = {
1056
+ kind: 'userSpotCreate',
1057
+ createResult: ['existing', 'created', 'rejected'][createResult - 1],
1058
+ spotId: reader.rid('spotId'),
1059
+ objectGeneration: reader.nonZeroU64('objectGeneration')
1060
+ };
1061
+ }
1062
+ else if (operationKind === 'userSpotClose') {
1063
+ tail = {
1064
+ kind: 'userSpotClose',
1065
+ closed: reader.bool8('closed')
1066
+ };
1067
+ }
1068
+ else if (operationKind === 'actorCreate') {
1069
+ const createResult = reader.u8('createResult');
1070
+ if (createResult < 1 || createResult > 3)
1071
+ fail('Invalid Actor create result.');
1072
+ const length = reader.u16('creationLength');
1073
+ const end = reader.offset + length;
1074
+ if (end > reader.bytes.byteLength)
1075
+ fail('Truncated Actor create terminal.');
1076
+ const result = ['existing', 'created', 'rejected'][createResult - 1];
1077
+ const actor = result === 'rejected'
1078
+ ? undefined
1079
+ : {
1080
+ nodeRid: reader.rid('actor.nodeRid'),
1081
+ actorId: reader.text8('actor.actorId'),
1082
+ generation: reader.nonZeroU64('actor.objectGeneration')
1083
+ };
1084
+ if (reader.offset !== end)
1085
+ fail('Invalid Actor create terminal length.');
1086
+ tail = {
1087
+ kind: 'actorCreate',
1088
+ createResult: result,
1089
+ ...(actor === undefined ? {} : { actor })
1090
+ };
1091
+ }
1092
+ }
1093
+ reader.end();
1094
+ return {
1095
+ correlation,
1096
+ terminalResult,
1097
+ failureCode,
1098
+ ...(tail === undefined ? {} : { tail })
1099
+ };
1100
+ }
1101
+ function sessionBindingFromWire(actor, sessionRid, sessionOwnerNodeRid, generation, membershipEpoch, sessionOwnerNodeGeneration, sessionOwnerId, sessionOwnerLeaseGeneration) {
1102
+ return {
1103
+ actor,
1104
+ sessionRid,
1105
+ sessionOwnerNodeRid,
1106
+ ...(sessionOwnerNodeGeneration === undefined ? {} : { sessionOwnerNodeGeneration }),
1107
+ ...(sessionOwnerId === undefined ? {} : { sessionOwnerId }),
1108
+ ...(sessionOwnerLeaseGeneration === undefined ? {} : { sessionOwnerLeaseGeneration }),
1109
+ bindingGeneration: generation,
1110
+ membershipEpoch
1111
+ };
1112
+ }
1113
+ function encodeReplyTail(tail) {
1114
+ switch (tail.kind) {
1115
+ case 'actorLookup':
1116
+ return concat(actorRef(tail.actor), rid(tail.spot.spotId, 'spotId'), u64(tail.spot.generation), u64(tail.membershipEpoch), u64(tail.authorityOwnerGeneration));
1117
+ case 'actorJoin': {
1118
+ if (tail.joinResult === 0) {
1119
+ if (tail.spot === undefined)
1120
+ fail('Accepted actor join requires a SpotRef.');
1121
+ if (tail.membershipEpoch === undefined) {
1122
+ fail('Accepted actor join requires a membership epoch.');
1123
+ }
1124
+ const receiveChunkLimitBytes = tail.receiveChunkLimitBytes ?? 0;
1125
+ if (receiveChunkLimitBytes < 0
1126
+ || receiveChunkLimitBytes > exports.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES) {
1127
+ fail('receiveChunkLimitBytes exceeds the relocation state chunk data bound.');
1128
+ }
1129
+ const body = concat(spotRef(tail.spot), u64(tail.membershipEpoch), u32(receiveChunkLimitBytes, 'receiveChunkLimitBytes'));
1130
+ return concat(u32(0, 'joinResult'), u16(body.byteLength), body);
1131
+ }
1132
+ const optional = tail.spot === undefined
1133
+ ? concat(Buffer.of(0), u16(0))
1134
+ : (() => {
1135
+ const body = spotRef(tail.spot);
1136
+ return concat(Buffer.of(1), u16(body.byteLength), body);
1137
+ })();
1138
+ return concat(u32(1, 'joinResult'), u16(optional.byteLength), optional);
1139
+ }
1140
+ case 'streamBind':
1141
+ return concat(u64(tail.bindingGeneration), u64(tail.authorityOwnerGeneration));
1142
+ case 'userSpotCreate':
1143
+ return concat(Buffer.of(['existing', 'created', 'rejected'].indexOf(tail.createResult) + 1), rid(tail.spotId, 'spotId'), u64(tail.objectGeneration));
1144
+ case 'userSpotClose':
1145
+ return Buffer.of(tail.closed ? 1 : 0);
1146
+ case 'actorCreate': {
1147
+ const selected = tail.actor === undefined
1148
+ ? Buffer.alloc(0)
1149
+ : concat(rid(tail.actor.nodeRid, 'actor.nodeRid'), text8(tail.actor.actorId, 'actor.actorId'), u64(tail.actor.generation));
1150
+ return concat(Buffer.of(['existing', 'created', 'rejected'].indexOf(tail.createResult) + 1), u16(selected.byteLength), selected);
1151
+ }
1152
+ }
1153
+ }
1154
+ function wireId(value, name) {
1155
+ if (value.high === 0n && value.low === 0n) {
1156
+ throw new RangeError(`${name} must not be zero.`);
1157
+ }
1158
+ return concat(u64Any(value.high), u64Any(value.low));
1159
+ }
1160
+ function validateReplyTerminal(terminalResult, failureCode, hasPayload) {
1161
+ if (hasPayload && terminalResult !== 0) {
1162
+ throw new RangeError('Failed stateful reply must not carry a payload.');
1163
+ }
1164
+ if (!(0, framework_errors_internal_1.isCanonicalWireReplyTerminal)(terminalResult, failureCode)) {
1165
+ throw new RangeError('Stateful reply terminalResult does not match its framework failureCode.');
1166
+ }
1167
+ }
1168
+ function validateRelocationPhase(value) {
1169
+ const phases = ['none', 'preparing', 'captured', 'prepared', 'committed',
1170
+ 'activating', 'activated', 'cleaning', 'completed', 'aborted'];
1171
+ if (!Number.isInteger(value) || value < 0 || value >= phases.length) {
1172
+ fail('Invalid relocationData control phase.');
1173
+ }
1174
+ }
1175
+ function applicationPayload(value) {
1176
+ const body = concat(text8(value.packetName, 'packetName'), text8(value.contentType, 'contentType'), u32(value.bytes.byteLength, 'payload.length'), value.bytes);
1177
+ return concat(Buffer.of(1), u32(body.byteLength, 'applicationPayload.length'), body);
1178
+ }
1179
+ function prefix(command, flags = 0) {
1180
+ return Buffer.from([MAGIC_0, MAGIC_1, MAJOR, command, flags]);
1181
+ }
1182
+ function actorFence(value) {
1183
+ return concat(actorRef(value.actor), rid(value.actor.nodeRid, 'targetNodeRid'), u64(value.targetNodeGeneration), u64(value.authorityOwnerGeneration), u64(value.ownerLeaseGeneration));
1184
+ }
1185
+ function actorAuthorityFence(value) {
1186
+ return concat(actorRef(value.actor), rid(value.actor.nodeRid, 'targetNodeRid'), u64(value.targetNodeGeneration), u64(value.authorityOwnerGeneration), u64(value.ownerLeaseGeneration));
1187
+ }
1188
+ function spotFence(value) {
1189
+ return concat(spotRef(value.spot), rid(value.targetNodeRid, 'targetNodeRid'), u64(value.targetNodeGeneration), u64(value.authorityOwnerGeneration), u64(value.ownerLeaseGeneration));
1190
+ }
1191
+ function directSpotFence(value) {
1192
+ return concat(spotFence(value), text16(value.storeVersion, 'storeVersion'));
1193
+ }
1194
+ function messageFollowRoute(value) {
1195
+ const body = value.kind === 'actor'
1196
+ ? concat(actorRef(value.actor), rid(value.targetNodeRid, 'targetNodeRid'), u64(value.targetNodeGeneration), u64(value.authorityOwnerGeneration), u64(value.ownerLeaseGeneration))
1197
+ : concat(spotRef(value.spot), rid(value.targetNodeRid, 'targetNodeRid'), u64(value.targetNodeGeneration), u64(value.authorityOwnerGeneration), u64(value.ownerLeaseGeneration));
1198
+ return concat(Buffer.of(value.kind === 'actor' ? 1 : 2), u16(body.byteLength), body);
1199
+ }
1200
+ function validateMessageFollowRecord(value, invalid = (message) => { throw new RangeError(message); }) {
1201
+ if (value.source.kind !== value.target.kind) {
1202
+ invalid('Message Follow source and target object kinds differ.');
1203
+ }
1204
+ const sameObject = value.source.kind === 'actor' && value.target.kind === 'actor'
1205
+ ? value.source.actor.actorId === value.target.actor.actorId
1206
+ && value.source.actor.generation === value.target.actor.generation
1207
+ : value.source.kind === 'spot' && value.target.kind === 'spot'
1208
+ ? value.source.spot.spotId === value.target.spot.spotId
1209
+ && value.source.spot.generation === value.target.spot.generation
1210
+ : false;
1211
+ if (!sameObject)
1212
+ invalid('Message Follow source and target object identities differ.');
1213
+ if (!Number.isInteger(value.hopCount) || value.hopCount < 1 || value.hopCount > 8) {
1214
+ invalid('Message Follow hopCount must be in 1..8.');
1215
+ }
1216
+ if (!Number.isInteger(value.queuedMessages)
1217
+ || value.queuedMessages < 0
1218
+ || value.queuedMessages > 0xffff_ffff) {
1219
+ invalid('Message Follow queuedMessages must be a u32.');
1220
+ }
1221
+ if (!Number.isInteger(value.queuedBytes)
1222
+ || value.queuedBytes < 0
1223
+ || value.queuedBytes > 0xffff_ffff) {
1224
+ invalid('Message Follow queuedBytes must be a u32.');
1225
+ }
1226
+ if (value.originalOperation.high === 0n && value.originalOperation.low === 0n) {
1227
+ invalid('Message Follow originalOperation must not be zero.');
1228
+ }
1229
+ if (value.originalReplyRouteId < 0n
1230
+ || value.originalReplyRouteId > 0xffffffffffffffffn) {
1231
+ invalid('Message Follow originalReplyRouteId must be a u64.');
1232
+ }
1233
+ }
1234
+ function actorRef(value) {
1235
+ return concat(text8(value.actorId, 'actorId'), u64(value.generation));
1236
+ }
1237
+ function optionalActor(value) {
1238
+ return value === undefined
1239
+ ? Buffer.of(0)
1240
+ : concat(text8(value.actorId, 'sourceActorId'), u64(value.generation));
1241
+ }
1242
+ function spotRef(value) {
1243
+ return concat(rid(value.spotId, 'spotId'), u64(value.generation));
1244
+ }
1245
+ function rid(value, name) {
1246
+ const bytes = (0, service_wire_binary_primitives_1.encodeServiceWireRoutingId)(value, name, 0xff, outOfRange);
1247
+ return concat(Buffer.of(bytes.byteLength), bytes);
1248
+ }
1249
+ function text8(value, name) {
1250
+ return sized8(value, name);
1251
+ }
1252
+ function text16(value, name) {
1253
+ const bytes = (0, service_wire_binary_primitives_1.encodeCanonicalServiceWireText)(value, name, 0xffff, outOfRange);
1254
+ return concat(u16(bytes.byteLength), bytes);
1255
+ }
1256
+ function optionalRid(value) {
1257
+ return value === undefined ? Buffer.of(0) : rid(value, 'sourceSpotId');
1258
+ }
1259
+ function sized8(value, name) {
1260
+ const bytes = (0, service_wire_binary_primitives_1.encodeCanonicalServiceWireText)(value, name, 0xff, outOfRange);
1261
+ return concat(Buffer.of(bytes.byteLength), bytes);
1262
+ }
1263
+ function u16(value) {
1264
+ if (!Number.isInteger(value) || value < 0 || value > 0xffff)
1265
+ fail('u16 value is out of range.');
1266
+ const result = Buffer.alloc(2);
1267
+ result.writeUInt16BE(value);
1268
+ return result;
1269
+ }
1270
+ function u32(value, name) {
1271
+ if (!Number.isInteger(value) || value < 0 || value > 0xffff_ffff) {
1272
+ throw new RangeError(`${name} must be a u32.`);
1273
+ }
1274
+ const result = Buffer.alloc(4);
1275
+ result.writeUInt32BE(value);
1276
+ return result;
1277
+ }
1278
+ function u64(value) {
1279
+ requirePositive(value, 'u64');
1280
+ const result = Buffer.alloc(8);
1281
+ result.writeBigUInt64BE(value);
1282
+ return result;
1283
+ }
1284
+ function u64Any(value) {
1285
+ if (value < 0n || value > 0xffffffffffffffffn) {
1286
+ throw new RangeError('u64 value is out of range.');
1287
+ }
1288
+ const result = Buffer.alloc(8);
1289
+ result.writeBigUInt64BE(value);
1290
+ return result;
1291
+ }
1292
+ function requirePositive(value, name) {
1293
+ if (value === undefined || value < 1n || value > 0xffffffffffffffffn) {
1294
+ throw new RangeError(`${name} must be a non-zero u64.`);
1295
+ }
1296
+ return value;
1297
+ }
1298
+ function requireFlags(actual, expected) {
1299
+ if (actual !== expected)
1300
+ fail(`Invalid command flags '${actual}'.`);
1301
+ }
1302
+ function concat(...parts) {
1303
+ return Buffer.concat(parts.map(part => Buffer.from(part)));
1304
+ }
1305
+ function fail(message) {
1306
+ throw new service_wire_m6a_codec_1.ServiceWireProtocolError(message);
1307
+ }
1308
+ function outOfRange(message) {
1309
+ throw new RangeError(message);
1310
+ }
1311
+ class Reader {
1312
+ bytes;
1313
+ offset = 0;
1314
+ constructor(value) {
1315
+ this.bytes = Buffer.from(value);
1316
+ }
1317
+ get remaining() {
1318
+ return this.bytes.byteLength - this.offset;
1319
+ }
1320
+ takeRemaining() {
1321
+ const value = Buffer.from(this.bytes.subarray(this.offset));
1322
+ this.offset = this.bytes.byteLength;
1323
+ return value;
1324
+ }
1325
+ prefix() {
1326
+ this.need(PREFIX_SIZE, 'prefix');
1327
+ if (this.bytes[this.offset] !== MAGIC_0
1328
+ || this.bytes[this.offset + 1] !== MAGIC_1
1329
+ || this.bytes[this.offset + 2] !== MAJOR) {
1330
+ fail('Invalid service wire prefix.');
1331
+ }
1332
+ const command = this.bytes[this.offset + 3];
1333
+ const flags = this.bytes[this.offset + 4];
1334
+ this.offset += PREFIX_SIZE;
1335
+ return { command, flags };
1336
+ }
1337
+ u8(name) {
1338
+ this.need(1, name);
1339
+ return this.bytes[this.offset++];
1340
+ }
1341
+ bool8(name) {
1342
+ const value = this.u8(name);
1343
+ if (value !== 0 && value !== 1)
1344
+ fail(`${name} must be bool8.`);
1345
+ return value === 1;
1346
+ }
1347
+ u16(name) {
1348
+ this.need(2, name);
1349
+ const value = this.bytes.readUInt16BE(this.offset);
1350
+ this.offset += 2;
1351
+ return value;
1352
+ }
1353
+ u32(name) {
1354
+ this.need(4, name);
1355
+ const value = this.bytes.readUInt32BE(this.offset);
1356
+ this.offset += 4;
1357
+ return value;
1358
+ }
1359
+ nonZeroU64(name) {
1360
+ this.need(8, name);
1361
+ const value = this.bytes.readBigUInt64BE(this.offset);
1362
+ this.offset += 8;
1363
+ if (value === 0n)
1364
+ fail(`${name} must be a non-zero u64.`);
1365
+ return value;
1366
+ }
1367
+ u64(name) {
1368
+ this.need(8, name);
1369
+ const value = this.bytes.readBigUInt64BE(this.offset);
1370
+ this.offset += 8;
1371
+ return value;
1372
+ }
1373
+ operationId(name) {
1374
+ const value = {
1375
+ high: this.u64(`${name}.high`),
1376
+ low: this.u64(`${name}.low`)
1377
+ };
1378
+ if (value.high === 0n && value.low === 0n)
1379
+ fail(`${name} must not be zero.`);
1380
+ return value;
1381
+ }
1382
+ rid(name) {
1383
+ return this.opaque8(name);
1384
+ }
1385
+ text8(name) {
1386
+ return this.sized8(name);
1387
+ }
1388
+ text16(name) {
1389
+ const length = this.u16(`${name}.length`);
1390
+ if (length === 0)
1391
+ fail(`${name} must not be empty.`);
1392
+ this.need(length, name);
1393
+ const bytes = this.bytes.subarray(this.offset, this.offset + length);
1394
+ this.offset += length;
1395
+ return (0, service_wire_binary_primitives_1.decodeCanonicalServiceWireText)(bytes, name, fail);
1396
+ }
1397
+ optionalRid(name) {
1398
+ const length = this.u8(`${name}.length`);
1399
+ if (length === 0)
1400
+ return undefined;
1401
+ this.need(length, name);
1402
+ const bytes = this.bytes.subarray(this.offset, this.offset + length);
1403
+ this.offset += length;
1404
+ return (0, service_wire_binary_primitives_1.decodeServiceWireRoutingId)(bytes, name, 0xff, fail);
1405
+ }
1406
+ actorRef(name) {
1407
+ return {
1408
+ nodeRid: '',
1409
+ actorId: this.text8(`${name}.actorId`),
1410
+ generation: this.nonZeroU64(`${name}.generation`)
1411
+ };
1412
+ }
1413
+ optionalActor() {
1414
+ const length = this.u8('sourceActorId.length');
1415
+ if (length === 0)
1416
+ return undefined;
1417
+ this.need(length, 'sourceActorId');
1418
+ const bytes = this.bytes.subarray(this.offset, this.offset + length);
1419
+ this.offset += length;
1420
+ const actorId = (0, service_wire_binary_primitives_1.decodeCanonicalServiceWireText)(bytes, 'sourceActorId', fail);
1421
+ return {
1422
+ nodeRid: '',
1423
+ actorId,
1424
+ generation: this.nonZeroU64('sourceActorGeneration')
1425
+ };
1426
+ }
1427
+ spotRef() {
1428
+ return {
1429
+ spotId: this.rid('spotId'),
1430
+ generation: this.nonZeroU64('spotGeneration')
1431
+ };
1432
+ }
1433
+ actorFence() {
1434
+ const actor = this.actorRef('actor');
1435
+ const targetNodeRid = this.rid('targetNodeRid');
1436
+ return {
1437
+ actor: { ...actor, nodeRid: targetNodeRid },
1438
+ targetNodeGeneration: this.nonZeroU64('targetNodeGeneration'),
1439
+ authorityOwnerGeneration: this.nonZeroU64('authorityOwnerGeneration'),
1440
+ ownerLeaseGeneration: this.nonZeroU64('ownerLeaseGeneration')
1441
+ };
1442
+ }
1443
+ spotFence() {
1444
+ const spot = this.spotRef();
1445
+ return {
1446
+ spot,
1447
+ targetNodeRid: this.rid('targetNodeRid'),
1448
+ targetNodeGeneration: this.nonZeroU64('targetNodeGeneration'),
1449
+ authorityOwnerGeneration: this.nonZeroU64('authorityOwnerGeneration'),
1450
+ ownerLeaseGeneration: this.nonZeroU64('ownerLeaseGeneration')
1451
+ };
1452
+ }
1453
+ directSpotFence() {
1454
+ return {
1455
+ ...this.spotFence(),
1456
+ storeVersion: this.text16('storeVersion')
1457
+ };
1458
+ }
1459
+ messageFollowRoute(name) {
1460
+ const kind = this.u8(`${name}.objectKind`);
1461
+ const length = this.u16(`${name}.length`);
1462
+ const end = this.offset + length;
1463
+ if (end > this.bytes.byteLength)
1464
+ fail(`Truncated Message Follow ${name} route.`);
1465
+ let value;
1466
+ if (kind === 1) {
1467
+ const actor = this.actorRef(`${name}.actor`);
1468
+ value = {
1469
+ kind: 'actor',
1470
+ actor,
1471
+ targetNodeRid: this.rid(`${name}.targetNodeRid`),
1472
+ targetNodeGeneration: this.nonZeroU64(`${name}.targetNodeGeneration`),
1473
+ authorityOwnerGeneration: this.nonZeroU64(`${name}.authorityOwnerGeneration`),
1474
+ ownerLeaseGeneration: this.nonZeroU64(`${name}.ownerLeaseGeneration`)
1475
+ };
1476
+ }
1477
+ else if (kind === 2) {
1478
+ value = {
1479
+ kind: 'spot',
1480
+ spot: this.spotRef(),
1481
+ targetNodeRid: this.rid(`${name}.targetNodeRid`),
1482
+ targetNodeGeneration: this.nonZeroU64(`${name}.targetNodeGeneration`),
1483
+ authorityOwnerGeneration: this.nonZeroU64(`${name}.authorityOwnerGeneration`),
1484
+ ownerLeaseGeneration: this.nonZeroU64(`${name}.ownerLeaseGeneration`)
1485
+ };
1486
+ }
1487
+ else {
1488
+ fail(`Unknown Message Follow ${name} object kind.`);
1489
+ }
1490
+ if (this.offset !== end)
1491
+ fail(`Invalid Message Follow ${name} route length.`);
1492
+ return value;
1493
+ }
1494
+ end() {
1495
+ if (this.remaining !== 0)
1496
+ fail('Service wire record has trailing bytes.');
1497
+ }
1498
+ sized8(name) {
1499
+ const length = this.u8(`${name}.length`);
1500
+ if (length === 0)
1501
+ fail(`${name} must not be empty.`);
1502
+ this.need(length, name);
1503
+ const bytes = this.bytes.subarray(this.offset, this.offset + length);
1504
+ this.offset += length;
1505
+ return (0, service_wire_binary_primitives_1.decodeCanonicalServiceWireText)(bytes, name, fail);
1506
+ }
1507
+ opaque8(name) {
1508
+ const length = this.u8(`${name}.length`);
1509
+ if (length === 0)
1510
+ fail(`${name} must not be empty.`);
1511
+ this.need(length, name);
1512
+ const bytes = this.bytes.subarray(this.offset, this.offset + length);
1513
+ this.offset += length;
1514
+ return (0, service_wire_binary_primitives_1.decodeServiceWireRoutingId)(bytes, name, 0xff, fail);
1515
+ }
1516
+ need(count, name) {
1517
+ if (count < 0 || count > this.remaining)
1518
+ fail(`Truncated ${name}.`);
1519
+ }
1520
+ }
1521
+ function decodeServiceWireFrozenRecord(bytes) {
1522
+ const reader = new FrozenReader(bytes);
1523
+ const record = decodeServiceWireFrozenRecordFrom(reader);
1524
+ reader.end('frozen record');
1525
+ return { ...record, canonicalBytes: Buffer.from(bytes) };
1526
+ }
1527
+ /**
1528
+ * Consumes exactly one canonical frozen record at `offset`. Relocation
1529
+ * saved-work is a vector of back-to-back records, so its boundary is the
1530
+ * record grammar itself rather than an enclosing length field.
1531
+ */
1532
+ function decodeServiceWireFrozenRecordPrefix(bytes, offset = 0) {
1533
+ if (!Number.isSafeInteger(offset) || offset < 0 || offset >= bytes.byteLength) {
1534
+ fail('Frozen record offset is outside the encoded bytes.');
1535
+ }
1536
+ const reader = new FrozenReader(bytes.subarray(offset));
1537
+ const record = decodeServiceWireFrozenRecordFrom(reader);
1538
+ return {
1539
+ record: { ...record, canonicalBytes: Buffer.from(bytes.subarray(offset, offset + reader.position)) },
1540
+ length: reader.position
1541
+ };
1542
+ }
1543
+ function decodeServiceWireFrozenRecordFrom(reader) {
1544
+ const recordKind = reader.u8('recordKind');
1545
+ if (recordKind < 1 || recordKind > 14)
1546
+ fail('Invalid frozen record kind.');
1547
+ const sourceKind = reader.u8('sourceKind');
1548
+ if (sourceKind < 1 || sourceKind > 4)
1549
+ fail('Invalid frozen source kind.');
1550
+ const sourceReader = reader.body16('frozen source');
1551
+ const source = {
1552
+ nodeRid: sourceReader.rid8('sourceNodeRid'),
1553
+ nodeGeneration: sourceReader.nonZeroU64('sourceNodeGeneration'),
1554
+ ownerId: sourceReader.text8('sourceOwnerId'),
1555
+ leaseGeneration: sourceReader.nonZeroU64('sourceOwnerLeaseGeneration')
1556
+ };
1557
+ let sourceSpotId;
1558
+ let sourceActor;
1559
+ let sourceSessionRid;
1560
+ let sourceBindingGeneration;
1561
+ let sourceSessionSequence;
1562
+ if (sourceKind === 2) {
1563
+ sourceSpotId = sourceReader.text8('sourceSpotId');
1564
+ }
1565
+ else if (sourceKind === 3 || sourceKind === 4) {
1566
+ sourceActor = {
1567
+ actorId: sourceReader.text8('sourceActorId'),
1568
+ generation: sourceReader.nonZeroU64('sourceActorGeneration')
1569
+ };
1570
+ if (sourceKind === 4) {
1571
+ sourceSessionRid = sourceReader.rid8('sourceSessionRid');
1572
+ sourceBindingGeneration = sourceReader.nonZeroU64('sourceBindingGeneration');
1573
+ sourceSessionSequence = sourceReader.nonZeroU64('sourceSessionSequence');
1574
+ }
1575
+ }
1576
+ sourceReader.end('frozen source');
1577
+ if ([8, 12, 13].includes(recordKind) && sourceKind !== 1) {
1578
+ fail('Infrastructure frozen record requires a node source.');
1579
+ }
1580
+ const hasMetadata = reader.bool8('hasMetadata');
1581
+ if (hasMetadata) {
1582
+ if (!((recordKind >= 1 && recordKind <= 7)
1583
+ || recordKind === 9 || recordKind === 10 || recordKind === 14)) {
1584
+ fail('Metadata is forbidden for this frozen record kind.');
1585
+ }
1586
+ reader.metadata();
1587
+ }
1588
+ const operationId = {
1589
+ high: reader.u64('operationId.high'),
1590
+ low: reader.u64('operationId.low')
1591
+ };
1592
+ const operationKind = reader.u32('operationKind');
1593
+ if (operationKind > 15)
1594
+ fail('Invalid frozen operation kind.');
1595
+ const replyReader = reader.body16('frozen reply route');
1596
+ const requiresReply = (0, service_runtime_contracts_1.operationRequiresReply)(operationKind);
1597
+ const replyRouteId = requiresReply
1598
+ ? replyReader.nonZeroU64('replyRouteId')
1599
+ : undefined;
1600
+ replyReader.end('frozen reply route');
1601
+ const body = reader.frozenBody(recordKind);
1602
+ validateFrozenOperationMatrix(recordKind, operationKind, operationId, replyRouteId, body.instanceOperationKind);
1603
+ return {
1604
+ recordKind,
1605
+ sourceKind,
1606
+ source,
1607
+ ...(sourceSpotId === undefined ? {} : { sourceSpotId }),
1608
+ ...(sourceActor === undefined ? {} : { sourceActor }),
1609
+ ...(sourceSessionRid === undefined ? {} : { sourceSessionRid }),
1610
+ ...(sourceBindingGeneration === undefined ? {} : { sourceBindingGeneration }),
1611
+ ...(sourceSessionSequence === undefined ? {} : { sourceSessionSequence }),
1612
+ hasMetadata,
1613
+ operationId,
1614
+ operationKind,
1615
+ ...(replyRouteId === undefined ? {} : { replyRouteId }),
1616
+ ...(body.target === undefined ? {} : { target: body.target }),
1617
+ ...(body.applicationPayload === undefined
1618
+ ? {}
1619
+ : { applicationPayload: body.applicationPayload }),
1620
+ canonicalBytes: Buffer.alloc(0)
1621
+ };
1622
+ }
1623
+ function encodeServiceWireFrozenRecord(record) {
1624
+ if (record.canonicalBytes.byteLength === 0) {
1625
+ throw new RangeError('Canonical frozen record bytes must not be empty.');
1626
+ }
1627
+ const decoded = decodeServiceWireFrozenRecord(record.canonicalBytes);
1628
+ if (!sameFrozenRecordSummary(decoded, record)) {
1629
+ throw new RangeError('Frozen record summary does not match its canonical bytes.');
1630
+ }
1631
+ return Buffer.from(record.canonicalBytes);
1632
+ }
1633
+ function encodeServiceWireFrozenActorApplicationRecord(input) {
1634
+ const request = input.replyRouteId !== undefined;
1635
+ const sourceBody = concat(rid(input.source.nodeRid, 'sourceNodeRid'), u64(input.source.nodeGeneration), text8(input.source.ownerId, 'sourceOwnerId'), u64(input.source.leaseGeneration));
1636
+ const replyBody = request ? u64(input.replyRouteId) : Buffer.alloc(0);
1637
+ const bytes = concat(Buffer.of(request ? 10 : 9), Buffer.of(1), u16(sourceBody.byteLength), sourceBody, Buffer.of(0), wireId(input.operationId, 'operationId'), u32(request ? 4 : 0, 'operationKind'), u16(replyBody.byteLength), replyBody, text8(input.target.actorId, 'targetActorId'), u64(input.target.objectGeneration), rid(input.target.nodeRid, 'targetNodeRid'), u64(input.target.nodeGeneration), u64(input.target.authorityOwnerGeneration), u64(input.target.ownerLeaseGeneration), applicationPayload(input.payload));
1638
+ return decodeServiceWireFrozenRecord(bytes);
1639
+ }
1640
+ function sameFrozenRecordSummary(left, right) {
1641
+ return left.recordKind === right.recordKind
1642
+ && left.sourceKind === right.sourceKind
1643
+ && (0, routing_id_1.routingIdsEqual)(left.source.nodeRid, right.source.nodeRid)
1644
+ && left.source.nodeGeneration === right.source.nodeGeneration
1645
+ && left.source.ownerId === right.source.ownerId
1646
+ && left.source.leaseGeneration === right.source.leaseGeneration
1647
+ && left.sourceSpotId === right.sourceSpotId
1648
+ && left.sourceActor?.actorId === right.sourceActor?.actorId
1649
+ && left.sourceActor?.generation === right.sourceActor?.generation
1650
+ && left.sourceSessionRid === right.sourceSessionRid
1651
+ && left.sourceBindingGeneration === right.sourceBindingGeneration
1652
+ && left.sourceSessionSequence === right.sourceSessionSequence
1653
+ && left.hasMetadata === right.hasMetadata
1654
+ && left.operationId.high === right.operationId.high
1655
+ && left.operationId.low === right.operationId.low
1656
+ && left.operationKind === right.operationKind
1657
+ && left.replyRouteId === right.replyRouteId
1658
+ && left.canonicalBytes.equals(right.canonicalBytes);
1659
+ }
1660
+ function validateFrozenOperationMatrix(recordKind, operationKind, operationId, replyRouteId, instanceOperationKind) {
1661
+ const zero = operationId.high === 0n && operationId.low === 0n;
1662
+ let valid = false;
1663
+ if ([1, 3, 7, 12, 13].includes(recordKind))
1664
+ valid = operationKind === 0 && zero;
1665
+ else if (recordKind === 2)
1666
+ valid = operationKind === 1 && !zero;
1667
+ else if (recordKind === 4)
1668
+ valid = operationKind === 2 && !zero;
1669
+ else if (recordKind === 5 || recordKind === 9)
1670
+ valid = operationKind === 0 && !zero;
1671
+ else if (recordKind === 6)
1672
+ valid = operationKind === 3 && !zero;
1673
+ else if (recordKind === 10)
1674
+ valid = operationKind === 4 && !zero;
1675
+ else if (recordKind === 8) {
1676
+ valid = operationKind === 0 && zero
1677
+ || [6, 7, 8].includes(operationKind) && !zero;
1678
+ }
1679
+ else if (recordKind === 11)
1680
+ valid = operationKind >= 1 && operationKind <= 15 && !zero;
1681
+ else if (recordKind === 14 && instanceOperationKind !== undefined) {
1682
+ valid = instanceOperationKind === 1
1683
+ ? operationKind === 0 && zero
1684
+ : operationKind === 12 && !zero;
1685
+ }
1686
+ if (!valid)
1687
+ fail('Frozen record kind, operation kind, and operation ID do not match.');
1688
+ if ((0, service_runtime_contracts_1.operationRequiresReply)(operationKind) !== (replyRouteId !== undefined)) {
1689
+ fail('Frozen reply route does not match the operation kind.');
1690
+ }
1691
+ }
1692
+ class FrozenReader {
1693
+ offset = 0;
1694
+ bytes;
1695
+ constructor(bytes) {
1696
+ this.bytes = Buffer.isBuffer(bytes)
1697
+ ? bytes
1698
+ : Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
1699
+ }
1700
+ get remaining() {
1701
+ return this.bytes.byteLength - this.offset;
1702
+ }
1703
+ get position() {
1704
+ return this.offset;
1705
+ }
1706
+ u8(name) {
1707
+ this.need(1, name);
1708
+ return this.bytes[this.offset++];
1709
+ }
1710
+ bool8(name) {
1711
+ const value = this.u8(name);
1712
+ if (value !== 0 && value !== 1)
1713
+ fail(`${name} must be bool8.`);
1714
+ return value === 1;
1715
+ }
1716
+ u16(name) {
1717
+ this.need(2, name);
1718
+ const value = this.bytes.readUInt16BE(this.offset);
1719
+ this.offset += 2;
1720
+ return value;
1721
+ }
1722
+ u32(name) {
1723
+ this.need(4, name);
1724
+ const value = this.bytes.readUInt32BE(this.offset);
1725
+ this.offset += 4;
1726
+ return value;
1727
+ }
1728
+ u64(name) {
1729
+ this.need(8, name);
1730
+ const value = this.bytes.readBigUInt64BE(this.offset);
1731
+ this.offset += 8;
1732
+ return value;
1733
+ }
1734
+ nonZeroU64(name) {
1735
+ const value = this.u64(name);
1736
+ if (value === 0n)
1737
+ fail(`${name} must be a non-zero u64.`);
1738
+ return value;
1739
+ }
1740
+ text8(name) {
1741
+ const length = this.u8(`${name}.length`);
1742
+ if (length === 0)
1743
+ fail(`${name} must not be empty.`);
1744
+ return this.textBody(length, name);
1745
+ }
1746
+ rid8(name) {
1747
+ const length = this.u8(`${name}.length`);
1748
+ if (length === 0)
1749
+ fail(`${name} must not be empty.`);
1750
+ this.need(length, name);
1751
+ const bytes = this.bytes.subarray(this.offset, this.offset + length);
1752
+ this.offset += length;
1753
+ return (0, service_wire_binary_primitives_1.decodeServiceWireRoutingId)(bytes, name, 0xff, fail);
1754
+ }
1755
+ text16(name, allowEmpty = false) {
1756
+ const length = this.u16(`${name}.length`);
1757
+ if (!allowEmpty && length === 0)
1758
+ fail(`${name} must not be empty.`);
1759
+ return this.textBody(length, name);
1760
+ }
1761
+ body16(name) {
1762
+ const length = this.u16(`${name}.length`);
1763
+ this.need(length, name);
1764
+ const body = this.bytes.subarray(this.offset, this.offset + length);
1765
+ this.offset += length;
1766
+ return new FrozenReader(body);
1767
+ }
1768
+ applicationPayload() {
1769
+ if (this.u8('applicationPayload.version') !== 1) {
1770
+ fail('Application payload envelope version must be one.');
1771
+ }
1772
+ const body = this.body32('application payload');
1773
+ const packetName = body.text8('packetName');
1774
+ const contentType = body.text8('contentType');
1775
+ const payloadLength = body.u32('payloadLength');
1776
+ const bytes = body.take(payloadLength, 'payload');
1777
+ body.end('application payload');
1778
+ return { packetName, contentType, bytes };
1779
+ }
1780
+ metadata() {
1781
+ const start = this.offset;
1782
+ if (this.u8('metadata.version') !== 1)
1783
+ fail('Metadata frame version must be one.');
1784
+ const count = this.u8('metadata.count');
1785
+ const keys = new Set();
1786
+ for (let index = 0; index < count; index++) {
1787
+ const key = this.text8('metadata.key');
1788
+ if (keys.has(key))
1789
+ fail('Metadata keys must be unique.');
1790
+ keys.add(key);
1791
+ this.text16('metadata.value', true);
1792
+ if (this.offset - start > 1024)
1793
+ fail('Metadata frame exceeds 1024 encoded bytes.');
1794
+ }
1795
+ }
1796
+ frozenBody(recordKind) {
1797
+ if (recordKind === 1 || recordKind === 2) {
1798
+ return { applicationPayload: this.applicationPayload() };
1799
+ }
1800
+ else if (recordKind === 3 || recordKind === 4) {
1801
+ this.text8('channelName');
1802
+ return { applicationPayload: this.applicationPayload() };
1803
+ }
1804
+ else if (recordKind === 5 || recordKind === 6) {
1805
+ return {
1806
+ target: this.spotRoute(),
1807
+ applicationPayload: this.applicationPayload()
1808
+ };
1809
+ }
1810
+ else if (recordKind === 7) {
1811
+ this.text8('channelName');
1812
+ this.text8('topic');
1813
+ return { applicationPayload: this.applicationPayload() };
1814
+ }
1815
+ else if (recordKind === 8)
1816
+ this.actorControl();
1817
+ else if (recordKind === 9 || recordKind === 10) {
1818
+ return {
1819
+ target: this.actorRoute(),
1820
+ applicationPayload: this.applicationPayload()
1821
+ };
1822
+ }
1823
+ else if (recordKind === 11) {
1824
+ const terminalResult = this.u32('terminalResult');
1825
+ const failureCode = this.u32('failureCode');
1826
+ const hasPayload = this.bool8('hasPayload');
1827
+ validateReplyTerminal(terminalResult, failureCode, hasPayload);
1828
+ return hasPayload
1829
+ ? { applicationPayload: this.applicationPayload() }
1830
+ : {};
1831
+ }
1832
+ else if (recordKind === 12)
1833
+ this.sendReadyDestination();
1834
+ else if (recordKind === 13) {
1835
+ validateRelocationPhase(this.u8('phase'));
1836
+ const role = this.u8('role');
1837
+ if (role < 1 || role > 3)
1838
+ fail('Invalid relocation control role.');
1839
+ const relocation = { high: this.u64('relocation.high'), low: this.u64('relocation.low') };
1840
+ if (relocation.high === 0n && relocation.low === 0n)
1841
+ fail('Relocation ID must not be zero.');
1842
+ this.relocationObject();
1843
+ validateReplyTerminal(this.u32('terminalResult'), this.u32('failureCode'), false);
1844
+ }
1845
+ else if (recordKind === 14) {
1846
+ this.instanceRoute();
1847
+ this.nonZeroU64('instanceSourceNodeGeneration');
1848
+ const operationKind = this.u8('instanceOperationKind');
1849
+ if (operationKind < 1 || operationKind > 2)
1850
+ fail('Invalid Instance activation operation kind.');
1851
+ const applicationPayload = this.applicationPayload();
1852
+ return { instanceOperationKind: operationKind, applicationPayload };
1853
+ }
1854
+ return {};
1855
+ }
1856
+ spotRoute() {
1857
+ const spot = this.spotIdentity();
1858
+ return {
1859
+ kind: 'spot',
1860
+ ...spot,
1861
+ targetNodeRid: this.rid8('targetNodeRid'),
1862
+ targetNodeGeneration: this.nonZeroU64('targetNodeGeneration'),
1863
+ authorityOwnerGeneration: this.nonZeroU64('expectedAuthorityOwnerGeneration'),
1864
+ ownerLeaseGeneration: this.nonZeroU64('expectedOwnerLeaseGeneration')
1865
+ };
1866
+ }
1867
+ actorRoute() {
1868
+ const actor = this.actorIdentity();
1869
+ return {
1870
+ kind: 'actor',
1871
+ ...actor,
1872
+ targetNodeRid: this.rid8('targetNodeRid'),
1873
+ targetNodeGeneration: this.nonZeroU64('targetNodeGeneration'),
1874
+ authorityOwnerGeneration: this.nonZeroU64('expectedAuthorityOwnerGeneration'),
1875
+ ownerLeaseGeneration: this.nonZeroU64('expectedOwnerLeaseGeneration')
1876
+ };
1877
+ }
1878
+ actorIdentity() {
1879
+ return {
1880
+ actorId: this.text8('actorId'),
1881
+ generation: this.nonZeroU64('actorGeneration')
1882
+ };
1883
+ }
1884
+ spotIdentity() {
1885
+ return {
1886
+ spotId: this.text8('spotId'),
1887
+ generation: this.nonZeroU64('spotGeneration')
1888
+ };
1889
+ }
1890
+ membershipSnapshot() {
1891
+ this.actorIdentity();
1892
+ this.spotIdentity();
1893
+ }
1894
+ optionalMembershipSnapshot() {
1895
+ const present = this.bool8('hasMembership');
1896
+ const body = this.body16('optionalMembership');
1897
+ if (present)
1898
+ body.membershipSnapshot();
1899
+ body.end('optional membership');
1900
+ }
1901
+ actorControl() {
1902
+ const lifecycle = this.u8('actorLifecycleKind');
1903
+ if (lifecycle < 1 || lifecycle > 5)
1904
+ fail('Invalid Actor lifecycle kind.');
1905
+ const body = this.body16('actorControl');
1906
+ if (lifecycle === 1 || lifecycle === 4 || lifecycle === 5)
1907
+ body.membershipSnapshot();
1908
+ else if (lifecycle === 2) {
1909
+ body.optionalMembershipSnapshot();
1910
+ body.membershipSnapshot();
1911
+ }
1912
+ else {
1913
+ body.membershipSnapshot();
1914
+ body.membershipSnapshot();
1915
+ }
1916
+ body.end('Actor control');
1917
+ }
1918
+ sendReadyDestination() {
1919
+ const kind = this.u8('destinationKind');
1920
+ if (kind < 1 || kind > 5)
1921
+ fail('Invalid send-ready destination kind.');
1922
+ const body = this.body16('send-ready destination');
1923
+ if (kind === 1 || kind === 2)
1924
+ body.text8('destination');
1925
+ else if (kind === 3)
1926
+ body.spotRoute();
1927
+ else {
1928
+ body.actorRoute();
1929
+ if (kind === 5)
1930
+ body.nonZeroU64('bindingGeneration');
1931
+ }
1932
+ body.end('send-ready destination');
1933
+ }
1934
+ instanceRoute() {
1935
+ const kind = this.u8('instanceRouteKind');
1936
+ if (kind < 1 || kind > 2)
1937
+ fail('Invalid Instance route kind.');
1938
+ const body = this.body16('Instance route');
1939
+ body.rid8('targetNodeRid');
1940
+ body.nonZeroU64('targetNodeGeneration');
1941
+ body.text8('targetSpotId');
1942
+ if (kind === 1) {
1943
+ body.nonZeroU64('objectGeneration');
1944
+ body.text8('ownerId');
1945
+ body.nonZeroU64('authorityOwnerGeneration');
1946
+ body.nonZeroU64('leaseGeneration');
1947
+ body.text16('storeVersion');
1948
+ }
1949
+ else {
1950
+ body.text8('targetMeshName');
1951
+ body.text8('stableType');
1952
+ body.text8('targetDescriptorVersion');
1953
+ body.nonZeroU64('deadlineUnixMs');
1954
+ }
1955
+ body.end('Instance route');
1956
+ }
1957
+ relocationObject() {
1958
+ const kind = this.u8('relocationObjectKind');
1959
+ const body = this.body16('relocation object');
1960
+ if (kind === 1) {
1961
+ body.text8('actorId');
1962
+ body.nonZeroU64('actorGeneration');
1963
+ body.nonZeroU64('expectedAuthorityOwnerGeneration');
1964
+ }
1965
+ else if (kind === 2) {
1966
+ body.text8('spotId');
1967
+ body.nonZeroU64('spotGeneration');
1968
+ body.nonZeroU64('expectedAuthorityOwnerGeneration');
1969
+ }
1970
+ else if (kind === 3) {
1971
+ body.text8('stableType');
1972
+ body.text8('spotId');
1973
+ body.nonZeroU64('objectGeneration');
1974
+ }
1975
+ else
1976
+ fail('Invalid relocation object kind.');
1977
+ body.end('relocation object');
1978
+ }
1979
+ body32(name) {
1980
+ const length = this.u32(`${name}.length`);
1981
+ this.need(length, name);
1982
+ const body = this.bytes.subarray(this.offset, this.offset + length);
1983
+ this.offset += length;
1984
+ return new FrozenReader(body);
1985
+ }
1986
+ take(length, name) {
1987
+ this.need(length, name);
1988
+ const value = Buffer.from(this.bytes.subarray(this.offset, this.offset + length));
1989
+ this.offset += length;
1990
+ return value;
1991
+ }
1992
+ textBody(length, name) {
1993
+ this.need(length, name);
1994
+ const bytes = this.bytes.subarray(this.offset, this.offset + length);
1995
+ this.offset += length;
1996
+ return (0, service_wire_binary_primitives_1.decodeCanonicalServiceWireText)(bytes, name, fail);
1997
+ }
1998
+ need(length, name) {
1999
+ if (length < 0 || length > this.remaining)
2000
+ fail(`Truncated ${name}.`);
2001
+ }
2002
+ end(name) {
2003
+ if (this.remaining !== 0)
2004
+ fail(`${name} has trailing bytes.`);
2005
+ }
2006
+ }