@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.
- package/LICENSE +105 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/contracts/Actors/ZLinkActor.d.ts +7 -0
- package/dist/contracts/Actors/ZLinkActor.js +2 -0
- package/dist/contracts/Actors/ZLinkActorClient.d.ts +15 -0
- package/dist/contracts/Actors/ZLinkActorClient.js +2 -0
- package/dist/contracts/Actors/ZLinkActorContext.d.ts +14 -0
- package/dist/contracts/Actors/ZLinkActorContext.js +2 -0
- package/dist/contracts/Actors/ZLinkActorFactory.d.ts +34 -0
- package/dist/contracts/Actors/ZLinkActorFactory.js +2 -0
- package/dist/contracts/Actors/ZLinkActorManager.d.ts +34 -0
- package/dist/contracts/Actors/ZLinkActorManager.js +2 -0
- package/dist/contracts/Actors/index.d.ts +5 -0
- package/dist/contracts/Actors/index.js +21 -0
- package/dist/contracts/Channels/Calls.d.ts +28 -0
- package/dist/contracts/Channels/Calls.js +2 -0
- package/dist/contracts/Channels/IZLinkChannelClient.d.ts +5 -0
- package/dist/contracts/Channels/IZLinkChannelClient.js +2 -0
- package/dist/contracts/Channels/IZLinkFanoutClient.d.ts +11 -0
- package/dist/contracts/Channels/IZLinkFanoutClient.js +2 -0
- package/dist/contracts/Channels/RouteCalls.d.ts +11 -0
- package/dist/contracts/Channels/RouteCalls.js +2 -0
- package/dist/contracts/Channels/index.d.ts +4 -0
- package/dist/contracts/Channels/index.js +20 -0
- package/dist/contracts/Codecs/IZLinkCodecRegistryBuilder.d.ts +14 -0
- package/dist/contracts/Codecs/IZLinkCodecRegistryBuilder.js +2 -0
- package/dist/contracts/Codecs/ZLinkMessageSerializer.d.ts +5 -0
- package/dist/contracts/Codecs/ZLinkMessageSerializer.js +2 -0
- package/dist/contracts/Codecs/index.d.ts +2 -0
- package/dist/contracts/Codecs/index.js +18 -0
- package/dist/contracts/Common/ActorRef.d.ts +7 -0
- package/dist/contracts/Common/ActorRef.js +2 -0
- package/dist/contracts/Common/CoreTypes.d.ts +6 -0
- package/dist/contracts/Common/CoreTypes.js +2 -0
- package/dist/contracts/Common/Message.d.ts +9 -0
- package/dist/contracts/Common/Message.js +2 -0
- package/dist/contracts/Common/ZLinkEncodedPayload.d.ts +12 -0
- package/dist/contracts/Common/ZLinkEncodedPayload.js +41 -0
- package/dist/contracts/Common/ZLinkMessage.d.ts +25 -0
- package/dist/contracts/Common/ZLinkMessage.js +127 -0
- package/dist/contracts/Common/ZLinkMessageMetadata.d.ts +10 -0
- package/dist/contracts/Common/ZLinkMessageMetadata.js +49 -0
- package/dist/contracts/Common/ZLinkProviderResolver.d.ts +5 -0
- package/dist/contracts/Common/ZLinkProviderResolver.js +2 -0
- package/dist/contracts/Common/encoded-payload-storage.d.ts +3 -0
- package/dist/contracts/Common/encoded-payload-storage.js +18 -0
- package/dist/contracts/Common/index.d.ts +5 -0
- package/dist/contracts/Common/index.js +24 -0
- package/dist/contracts/Configuration/Builders.d.ts +153 -0
- package/dist/contracts/Configuration/Builders.js +2 -0
- package/dist/contracts/Configuration/CodecContentType.d.ts +2 -0
- package/dist/contracts/Configuration/CodecContentType.js +68 -0
- package/dist/contracts/Configuration/CodecSerializerSelection.d.ts +9 -0
- package/dist/contracts/Configuration/CodecSerializerSelection.js +15 -0
- package/dist/contracts/Configuration/Configs.d.ts +23 -0
- package/dist/contracts/Configuration/Configs.js +2 -0
- package/dist/contracts/Configuration/ConfigurationException.d.ts +3 -0
- package/dist/contracts/Configuration/ConfigurationException.js +10 -0
- package/dist/contracts/Configuration/Connections.d.ts +5 -0
- package/dist/contracts/Configuration/Connections.js +2 -0
- package/dist/contracts/Configuration/DiagnosticsValidation.d.ts +3 -0
- package/dist/contracts/Configuration/DiagnosticsValidation.js +23 -0
- package/dist/contracts/Configuration/EndpointNotation.d.ts +77 -0
- package/dist/contracts/Configuration/EndpointNotation.js +218 -0
- package/dist/contracts/Configuration/InternalDefaults.d.ts +7 -0
- package/dist/contracts/Configuration/InternalDefaults.js +47 -0
- package/dist/contracts/Configuration/ObjectRoles.d.ts +38 -0
- package/dist/contracts/Configuration/ObjectRoles.js +13 -0
- package/dist/contracts/Configuration/Registration.d.ts +11 -0
- package/dist/contracts/Configuration/Registration.js +162 -0
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +14 -0
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +61 -0
- package/dist/contracts/Configuration/RegistrationBuilders.d.ts +61 -0
- package/dist/contracts/Configuration/RegistrationBuilders.js +1181 -0
- package/dist/contracts/Configuration/RegistrationCodecRegistry.d.ts +19 -0
- package/dist/contracts/Configuration/RegistrationCodecRegistry.js +79 -0
- package/dist/contracts/Configuration/RegistrationNormalizers.d.ts +23 -0
- package/dist/contracts/Configuration/RegistrationNormalizers.js +319 -0
- package/dist/contracts/Configuration/RegistrationTypes.d.ts +414 -0
- package/dist/contracts/Configuration/RegistrationTypes.js +2 -0
- package/dist/contracts/Configuration/RegistrationValidators.d.ts +2 -0
- package/dist/contracts/Configuration/RegistrationValidators.js +461 -0
- package/dist/contracts/Configuration/RouteChannelInternalState.d.ts +10 -0
- package/dist/contracts/Configuration/RouteChannelInternalState.js +39 -0
- package/dist/contracts/Configuration/RuntimeEndpointConnections.d.ts +9 -0
- package/dist/contracts/Configuration/RuntimeEndpointConnections.js +80 -0
- package/dist/contracts/Configuration/SendTimeoutValidation.d.ts +2 -0
- package/dist/contracts/Configuration/SendTimeoutValidation.js +16 -0
- package/dist/contracts/Configuration/TimerRegistrationValidator.d.ts +2 -0
- package/dist/contracts/Configuration/TimerRegistrationValidator.js +24 -0
- package/dist/contracts/Configuration/index.d.ts +5 -0
- package/dist/contracts/Configuration/index.js +18 -0
- package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +181 -0
- package/dist/contracts/Dispatch/ZLinkDispatchOptions.js +89 -0
- package/dist/contracts/Dispatch/ZLinkFlowOrigin.d.ts +1 -0
- package/dist/contracts/Dispatch/ZLinkFlowOrigin.js +2 -0
- package/dist/contracts/Dispatch/index.d.ts +2 -0
- package/dist/contracts/Dispatch/index.js +18 -0
- package/dist/contracts/Errors/ZLinkFrameworkException.d.ts +20 -0
- package/dist/contracts/Errors/ZLinkFrameworkException.js +29 -0
- package/dist/contracts/Errors/index.d.ts +1 -0
- package/dist/contracts/Errors/index.js +6 -0
- package/dist/contracts/Eventing/Metrics.d.ts +29 -0
- package/dist/contracts/Eventing/Metrics.js +4 -0
- package/dist/contracts/Eventing/index.d.ts +1 -0
- package/dist/contracts/Eventing/index.js +17 -0
- package/dist/contracts/Handlers/Attributes.d.ts +24 -0
- package/dist/contracts/Handlers/Attributes.js +84 -0
- package/dist/contracts/Handlers/Contexts.d.ts +18 -0
- package/dist/contracts/Handlers/Contexts.js +2 -0
- package/dist/contracts/Handlers/IZLinkChannelHandlers.d.ts +43 -0
- package/dist/contracts/Handlers/IZLinkChannelHandlers.js +2 -0
- package/dist/contracts/Handlers/IZLinkHandlerFilter.d.ts +15 -0
- package/dist/contracts/Handlers/IZLinkHandlerFilter.js +11 -0
- package/dist/contracts/Handlers/JsonContract.d.ts +46 -0
- package/dist/contracts/Handlers/JsonContract.js +137 -0
- package/dist/contracts/Handlers/ZLinkHandlerFilterNext.d.ts +1 -0
- package/dist/contracts/Handlers/ZLinkHandlerFilterNext.js +2 -0
- package/dist/contracts/Handlers/index.d.ts +5 -0
- package/dist/contracts/Handlers/index.js +33 -0
- package/dist/contracts/Locations/ActorTransfer.d.ts +41 -0
- package/dist/contracts/Locations/ActorTransfer.js +2 -0
- package/dist/contracts/Locations/Authority.d.ts +296 -0
- package/dist/contracts/Locations/Authority.js +17 -0
- package/dist/contracts/Locations/Diagnostics.d.ts +42 -0
- package/dist/contracts/Locations/Diagnostics.js +12 -0
- package/dist/contracts/Locations/Keys.d.ts +86 -0
- package/dist/contracts/Locations/Keys.js +2 -0
- package/dist/contracts/Locations/Models.d.ts +7 -0
- package/dist/contracts/Locations/Models.js +23 -0
- package/dist/contracts/Locations/Options.d.ts +23 -0
- package/dist/contracts/Locations/Options.js +20 -0
- package/dist/contracts/Locations/Readiness.d.ts +5 -0
- package/dist/contracts/Locations/Readiness.js +2 -0
- package/dist/contracts/Locations/RelocationStore.d.ts +38 -0
- package/dist/contracts/Locations/RelocationStore.js +2 -0
- package/dist/contracts/Locations/Resolvers.d.ts +4 -0
- package/dist/contracts/Locations/Resolvers.js +2 -0
- package/dist/contracts/Locations/Rows.d.ts +152 -0
- package/dist/contracts/Locations/Rows.js +19 -0
- package/dist/contracts/Locations/RuntimeQuery.d.ts +25 -0
- package/dist/contracts/Locations/RuntimeQuery.js +2 -0
- package/dist/contracts/Locations/Stores.d.ts +88 -0
- package/dist/contracts/Locations/Stores.js +2 -0
- package/dist/contracts/Locations/Values.d.ts +27 -0
- package/dist/contracts/Locations/Values.js +36 -0
- package/dist/contracts/Locations/Watch.d.ts +14 -0
- package/dist/contracts/Locations/Watch.js +12 -0
- package/dist/contracts/Locations/Writes.d.ts +48 -0
- package/dist/contracts/Locations/Writes.js +15 -0
- package/dist/contracts/Locations/index.d.ts +12 -0
- package/dist/contracts/Locations/index.js +30 -0
- package/dist/contracts/RouteMesh/Contracts.d.ts +102 -0
- package/dist/contracts/RouteMesh/Contracts.js +39 -0
- package/dist/contracts/RouteMesh/RuntimeTopology.d.ts +165 -0
- package/dist/contracts/RouteMesh/RuntimeTopology.js +38 -0
- package/dist/contracts/RouteMesh/index.d.ts +2 -0
- package/dist/contracts/RouteMesh/index.js +18 -0
- package/dist/contracts/Spots/Builders.d.ts +10 -0
- package/dist/contracts/Spots/Builders.js +2 -0
- package/dist/contracts/Spots/Contracts.d.ts +110 -0
- package/dist/contracts/Spots/Contracts.js +9 -0
- package/dist/contracts/Spots/SpotKind.d.ts +8 -0
- package/dist/contracts/Spots/SpotKind.js +28 -0
- package/dist/contracts/Spots/ZLinkSpot.d.ts +62 -0
- package/dist/contracts/Spots/ZLinkSpot.js +15 -0
- package/dist/contracts/Spots/index.d.ts +3 -0
- package/dist/contracts/Spots/index.js +19 -0
- package/dist/contracts/Streams/BoundSessionContracts.d.ts +8 -0
- package/dist/contracts/Streams/BoundSessionContracts.js +2 -0
- package/dist/contracts/Streams/IZLinkSession.d.ts +44 -0
- package/dist/contracts/Streams/IZLinkSession.js +2 -0
- package/dist/contracts/Streams/IZLinkSessionActor.d.ts +15 -0
- package/dist/contracts/Streams/IZLinkSessionActor.js +2 -0
- package/dist/contracts/Streams/IZLinkSessionPacketHandler.d.ts +9 -0
- package/dist/contracts/Streams/IZLinkSessionPacketHandler.js +2 -0
- package/dist/contracts/Streams/IZLinkStream.d.ts +9 -0
- package/dist/contracts/Streams/IZLinkStream.js +2 -0
- package/dist/contracts/Streams/ZLinkMessageMetadata.d.ts +1 -0
- package/dist/contracts/Streams/ZLinkMessageMetadata.js +2 -0
- package/dist/contracts/Streams/ZLinkStreamCompression.d.ts +8 -0
- package/dist/contracts/Streams/ZLinkStreamCompression.js +2 -0
- package/dist/contracts/Streams/ZLinkStreamError.d.ts +8 -0
- package/dist/contracts/Streams/ZLinkStreamError.js +8 -0
- package/dist/contracts/Streams/index.d.ts +8 -0
- package/dist/contracts/Streams/index.js +24 -0
- package/dist/contracts/Timers/IZLinkTimer.d.ts +5 -0
- package/dist/contracts/Timers/IZLinkTimer.js +2 -0
- package/dist/contracts/Timers/ZLinkTimerOptions.d.ts +10 -0
- package/dist/contracts/Timers/ZLinkTimerOptions.js +9 -0
- package/dist/contracts/Timers/ZLinkTimerTick.d.ts +12 -0
- package/dist/contracts/Timers/ZLinkTimerTick.js +2 -0
- package/dist/contracts/Timers/index.d.ts +3 -0
- package/dist/contracts/Timers/index.js +19 -0
- package/dist/contracts/index.d.ts +25 -0
- package/dist/contracts/index.js +45 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +17 -0
- package/dist/internal.d.ts +26 -0
- package/dist/internal.js +48 -0
- package/dist/location-store-integration.d.ts +5 -0
- package/dist/location-store-integration.js +31 -0
- package/dist/nest-integration.d.ts +49 -0
- package/dist/nest-integration.js +143 -0
- package/dist/runtime/abort.d.ts +13 -0
- package/dist/runtime/abort.js +71 -0
- package/dist/runtime/actors/actor-authority-payload-codec.d.ts +33 -0
- package/dist/runtime/actors/actor-authority-payload-codec.js +366 -0
- package/dist/runtime/actors/actor-authority-publication.d.ts +28 -0
- package/dist/runtime/actors/actor-authority-publication.js +207 -0
- package/dist/runtime/actors/actor-client.d.ts +36 -0
- package/dist/runtime/actors/actor-client.js +612 -0
- package/dist/runtime/actors/actor-context.d.ts +26 -0
- package/dist/runtime/actors/actor-context.js +433 -0
- package/dist/runtime/actors/actor-creation.d.ts +19 -0
- package/dist/runtime/actors/actor-creation.js +158 -0
- package/dist/runtime/actors/actor-execution-context.d.ts +6 -0
- package/dist/runtime/actors/actor-execution-context.js +27 -0
- package/dist/runtime/actors/actor-handoff.d.ts +191 -0
- package/dist/runtime/actors/actor-handoff.js +1252 -0
- package/dist/runtime/actors/actor-join-deferred-scope.d.ts +11 -0
- package/dist/runtime/actors/actor-join-deferred-scope.js +144 -0
- package/dist/runtime/actors/actor-join-relocation.d.ts +38 -0
- package/dist/runtime/actors/actor-join-relocation.js +2 -0
- package/dist/runtime/actors/actor-lifecycle-snapshot.d.ts +21 -0
- package/dist/runtime/actors/actor-lifecycle-snapshot.js +58 -0
- package/dist/runtime/actors/actor-local-native-join.d.ts +27 -0
- package/dist/runtime/actors/actor-local-native-join.js +409 -0
- package/dist/runtime/actors/actor-mailbox.d.ts +10 -0
- package/dist/runtime/actors/actor-mailbox.js +53 -0
- package/dist/runtime/actors/actor-message-follow-context.d.ts +46 -0
- package/dist/runtime/actors/actor-message-follow-context.js +257 -0
- package/dist/runtime/actors/actor-native-lookup.d.ts +4 -0
- package/dist/runtime/actors/actor-native-lookup.js +30 -0
- package/dist/runtime/actors/actor-packet-relay-wire.d.ts +73 -0
- package/dist/runtime/actors/actor-packet-relay-wire.js +144 -0
- package/dist/runtime/actors/actor-remote-joiner.d.ts +37 -0
- package/dist/runtime/actors/actor-remote-joiner.js +122 -0
- package/dist/runtime/actors/actor-remote-wire.d.ts +73 -0
- package/dist/runtime/actors/actor-remote-wire.js +84 -0
- package/dist/runtime/actors/actor-retry-delay.d.ts +5 -0
- package/dist/runtime/actors/actor-retry-delay.js +40 -0
- package/dist/runtime/actors/actor-routed-join-transport.d.ts +33 -0
- package/dist/runtime/actors/actor-routed-join-transport.js +2 -0
- package/dist/runtime/actors/actor-routed-json-request.d.ts +11 -0
- package/dist/runtime/actors/actor-routed-json-request.js +39 -0
- package/dist/runtime/actors/actor-runtime-contracts.d.ts +63 -0
- package/dist/runtime/actors/actor-runtime-contracts.js +2 -0
- package/dist/runtime/actors/actor-runtime-state.d.ts +152 -0
- package/dist/runtime/actors/actor-runtime-state.js +545 -0
- package/dist/runtime/actors/actor-source-transfer.d.ts +27 -0
- package/dist/runtime/actors/actor-source-transfer.js +2 -0
- package/dist/runtime/actors/actor-transfer-registry.d.ts +18 -0
- package/dist/runtime/actors/actor-transfer-registry.js +71 -0
- package/dist/runtime/actors/actor-transport-delivery-gate.d.ts +6 -0
- package/dist/runtime/actors/actor-transport-delivery-gate.js +4 -0
- package/dist/runtime/actors/bound-session-wire.d.ts +81 -0
- package/dist/runtime/actors/bound-session-wire.js +184 -0
- package/dist/runtime/actors/deferred-join-accepted-journal.d.ts +47 -0
- package/dist/runtime/actors/deferred-join-accepted-journal.js +962 -0
- package/dist/runtime/actors/index.d.ts +79 -0
- package/dist/runtime/actors/index.js +639 -0
- package/dist/runtime/actors/post-commit-actor-binder.d.ts +18 -0
- package/dist/runtime/actors/post-commit-actor-binder.js +68 -0
- package/dist/runtime/actors/post-commit-actor-location.d.ts +19 -0
- package/dist/runtime/actors/post-commit-actor-location.js +72 -0
- package/dist/runtime/actors/spot-actor-dispatch.d.ts +59 -0
- package/dist/runtime/actors/spot-actor-dispatch.js +179 -0
- package/dist/runtime/actors/transferred-actor-rollback.d.ts +16 -0
- package/dist/runtime/actors/transferred-actor-rollback.js +91 -0
- package/dist/runtime/admission.d.ts +20 -0
- package/dist/runtime/admission.js +166 -0
- package/dist/runtime/application-jobs/application-ingress-record-owner.d.ts +57 -0
- package/dist/runtime/application-jobs/application-ingress-record-owner.js +185 -0
- package/dist/runtime/application-jobs/application-job-queue-handler-start-gate.d.ts +8 -0
- package/dist/runtime/application-jobs/application-job-queue-handler-start-gate.js +8 -0
- package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +17 -0
- package/dist/runtime/application-jobs/application-job-queue-scope.js +57 -0
- package/dist/runtime/application-jobs/contracts.d.ts +19 -0
- package/dist/runtime/application-jobs/contracts.js +2 -0
- package/dist/runtime/application-jobs/receive-flow-controller.d.ts +32 -0
- package/dist/runtime/application-jobs/receive-flow-controller.js +165 -0
- package/dist/runtime/backend/contracts/index.d.ts +487 -0
- package/dist/runtime/backend/contracts/index.js +29 -0
- package/dist/runtime/backend/index.d.ts +9 -0
- package/dist/runtime/backend/index.js +25 -0
- package/dist/runtime/backend/mesh-actor-session-node-adapter.d.ts +3 -0
- package/dist/runtime/backend/mesh-actor-session-node-adapter.js +51 -0
- package/dist/runtime/backend/mesh-completion-table.d.ts +34 -0
- package/dist/runtime/backend/mesh-completion-table.js +124 -0
- package/dist/runtime/backend/mesh-dispatch-pump.d.ts +48 -0
- package/dist/runtime/backend/mesh-dispatch-pump.js +322 -0
- package/dist/runtime/backend/mesh-record-dispatcher.d.ts +19 -0
- package/dist/runtime/backend/mesh-record-dispatcher.js +53 -0
- package/dist/runtime/backend/node/index.d.ts +4 -0
- package/dist/runtime/backend/node/index.js +22 -0
- package/dist/runtime/backend/node/node-backend-adapter-factory.d.ts +12 -0
- package/dist/runtime/backend/node/node-backend-adapter-factory.js +161 -0
- package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +52 -0
- package/dist/runtime/backend/node/node-backend-adapter-support.js +203 -0
- package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +13 -0
- package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +52 -0
- package/dist/runtime/backend/node/node-mesh-backend-adapter.d.ts +11 -0
- package/dist/runtime/backend/node/node-mesh-backend-adapter.js +23 -0
- package/dist/runtime/backend/node/node-monitor-backend-adapter.d.ts +6 -0
- package/dist/runtime/backend/node/node-monitor-backend-adapter.js +38 -0
- package/dist/runtime/backend/node/node-raw-binding-port.d.ts +8 -0
- package/dist/runtime/backend/node/node-raw-binding-port.js +411 -0
- package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +266 -0
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +1707 -0
- package/dist/runtime/backend/node/node-socket-backend-adapter.d.ts +9 -0
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +286 -0
- package/dist/runtime/backend/node-backend-adapter.d.ts +9 -0
- package/dist/runtime/backend/node-backend-adapter.js +12 -0
- package/dist/runtime/backend/raw-binding-port.d.ts +58 -0
- package/dist/runtime/backend/raw-binding-port.js +2 -0
- package/dist/runtime/backend/runtime-message.d.ts +14 -0
- package/dist/runtime/backend/runtime-message.js +44 -0
- package/dist/runtime/backend/runtime-values.d.ts +78 -0
- package/dist/runtime/backend/runtime-values.js +66 -0
- package/dist/runtime/channels/channel-autoconnect.d.ts +14 -0
- package/dist/runtime/channels/channel-autoconnect.js +23 -0
- package/dist/runtime/channels/channel-clients.d.ts +50 -0
- package/dist/runtime/channels/channel-clients.js +329 -0
- package/dist/runtime/channels/channel-dispatch-pipeline.d.ts +76 -0
- package/dist/runtime/channels/channel-dispatch-pipeline.js +237 -0
- package/dist/runtime/channels/channel-dispatch-services.d.ts +52 -0
- package/dist/runtime/channels/channel-dispatch-services.js +132 -0
- package/dist/runtime/channels/channel-dispatchers.d.ts +125 -0
- package/dist/runtime/channels/channel-dispatchers.js +575 -0
- package/dist/runtime/channels/channel-envelope-inspection.d.ts +25 -0
- package/dist/runtime/channels/channel-envelope-inspection.js +96 -0
- package/dist/runtime/channels/channel-envelope.d.ts +73 -0
- package/dist/runtime/channels/channel-envelope.js +546 -0
- package/dist/runtime/channels/channel-framework-packets.d.ts +2 -0
- package/dist/runtime/channels/channel-framework-packets.js +6 -0
- package/dist/runtime/channels/channel-multipart.d.ts +16 -0
- package/dist/runtime/channels/channel-multipart.js +31 -0
- package/dist/runtime/channels/channel-outbound-operations.d.ts +33 -0
- package/dist/runtime/channels/channel-outbound-operations.js +343 -0
- package/dist/runtime/channels/channel-receive-loops.d.ts +151 -0
- package/dist/runtime/channels/channel-receive-loops.js +728 -0
- package/dist/runtime/channels/channel-receive-task-tracker.d.ts +14 -0
- package/dist/runtime/channels/channel-receive-task-tracker.js +37 -0
- package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +77 -0
- package/dist/runtime/channels/channel-runtime-lifecycle.js +630 -0
- package/dist/runtime/channels/channel-runtime-manager.d.ts +84 -0
- package/dist/runtime/channels/channel-runtime-manager.js +193 -0
- package/dist/runtime/channels/channel-socket-options.d.ts +18 -0
- package/dist/runtime/channels/channel-socket-options.js +119 -0
- package/dist/runtime/channels/channel-socket-registry.d.ts +157 -0
- package/dist/runtime/channels/channel-socket-registry.js +1428 -0
- package/dist/runtime/channels/channel-transports.d.ts +126 -0
- package/dist/runtime/channels/channel-transports.js +448 -0
- package/dist/runtime/channels/client-server-location-runtime.d.ts +41 -0
- package/dist/runtime/channels/client-server-location-runtime.js +465 -0
- package/dist/runtime/channels/client-server-service-wire.d.ts +48 -0
- package/dist/runtime/channels/client-server-service-wire.js +306 -0
- package/dist/runtime/channels/dispatch-error-reporter.d.ts +22 -0
- package/dist/runtime/channels/dispatch-error-reporter.js +133 -0
- package/dist/runtime/channels/fanout-location-runtime.d.ts +38 -0
- package/dist/runtime/channels/fanout-location-runtime.js +356 -0
- package/dist/runtime/channels/fanout-service-wire.d.ts +12 -0
- package/dist/runtime/channels/fanout-service-wire.js +29 -0
- package/dist/runtime/channels/handler-filter-scope.d.ts +8 -0
- package/dist/runtime/channels/handler-filter-scope.js +11 -0
- package/dist/runtime/channels/index.d.ts +9 -0
- package/dist/runtime/channels/index.js +30 -0
- package/dist/runtime/channels/local-spot-route-transport.d.ts +9 -0
- package/dist/runtime/channels/local-spot-route-transport.js +40 -0
- package/dist/runtime/channels/route-disconnected-error.d.ts +3 -0
- package/dist/runtime/channels/route-disconnected-error.js +10 -0
- package/dist/runtime/channels/route-member-snapshot.d.ts +10 -0
- package/dist/runtime/channels/route-member-snapshot.js +55 -0
- package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +12 -0
- package/dist/runtime/channels/router-socket-spot-route-transport.js +43 -0
- package/dist/runtime/channels/source-spot-router.d.ts +10 -0
- package/dist/runtime/channels/source-spot-router.js +46 -0
- package/dist/runtime/channels/spot-direct-envelope.d.ts +5 -0
- package/dist/runtime/channels/spot-direct-envelope.js +29 -0
- package/dist/runtime/channels/spot-node-route-transport.d.ts +13 -0
- package/dist/runtime/channels/spot-node-route-transport.js +60 -0
- package/dist/runtime/channels/spot-route-bridge-transport.d.ts +14 -0
- package/dist/runtime/channels/spot-route-bridge-transport.js +58 -0
- package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +50 -0
- package/dist/runtime/channels/spot-route-dispatch-strategy.js +128 -0
- package/dist/runtime/channels/spot-route-target-resolver.d.ts +16 -0
- package/dist/runtime/channels/spot-route-target-resolver.js +92 -0
- package/dist/runtime/codecs/index.d.ts +14 -0
- package/dist/runtime/codecs/index.js +44 -0
- package/dist/runtime/configuration/index.d.ts +1 -0
- package/dist/runtime/configuration/index.js +17 -0
- package/dist/runtime/diagnostics/dispatch-error-port.d.ts +8 -0
- package/dist/runtime/diagnostics/dispatch-error-port.js +2 -0
- package/dist/runtime/diagnostics/flow-context.d.ts +21 -0
- package/dist/runtime/diagnostics/flow-context.js +68 -0
- package/dist/runtime/diagnostics/index.d.ts +82 -0
- package/dist/runtime/diagnostics/index.js +335 -0
- package/dist/runtime/diagnostics/internal-event-contracts.d.ts +139 -0
- package/dist/runtime/diagnostics/internal-event-contracts.js +68 -0
- package/dist/runtime/diagnostics/message-flow.d.ts +55 -0
- package/dist/runtime/diagnostics/message-flow.js +420 -0
- package/dist/runtime/diagnostics/runtime-metrics.d.ts +123 -0
- package/dist/runtime/diagnostics/runtime-metrics.js +454 -0
- package/dist/runtime/diagnostics/runtime-observation-queue.d.ts +58 -0
- package/dist/runtime/diagnostics/runtime-observation-queue.js +324 -0
- package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +33 -0
- package/dist/runtime/diagnostics/topology-runtime-projections.js +255 -0
- package/dist/runtime/execution/index.d.ts +114 -0
- package/dist/runtime/execution/index.js +363 -0
- package/dist/runtime/execution/serial-execution-queue.d.ts +94 -0
- package/dist/runtime/execution/serial-execution-queue.js +411 -0
- package/dist/runtime/execution/serial-work-size.d.ts +4 -0
- package/dist/runtime/execution/serial-work-size.js +28 -0
- package/dist/runtime/execution/state-lane.d.ts +28 -0
- package/dist/runtime/execution/state-lane.js +105 -0
- package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +72 -0
- package/dist/runtime/foundation/actor-join-recovery-codec.js +333 -0
- package/dist/runtime/foundation/event-loop-resources.d.ts +37 -0
- package/dist/runtime/foundation/event-loop-resources.js +163 -0
- package/dist/runtime/foundation/index.d.ts +18 -0
- package/dist/runtime/foundation/index.js +34 -0
- package/dist/runtime/foundation/message-follow-suppression-registry.d.ts +38 -0
- package/dist/runtime/foundation/message-follow-suppression-registry.js +89 -0
- package/dist/runtime/foundation/operation-identity.d.ts +12 -0
- package/dist/runtime/foundation/operation-identity.js +33 -0
- package/dist/runtime/foundation/operation-registry.d.ts +42 -0
- package/dist/runtime/foundation/operation-registry.js +146 -0
- package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +143 -0
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +1349 -0
- package/dist/runtime/foundation/route-mesh-connection-policy.d.ts +3 -0
- package/dist/runtime/foundation/route-mesh-connection-policy.js +13 -0
- package/dist/runtime/foundation/runtime-state-projections.d.ts +13 -0
- package/dist/runtime/foundation/runtime-state-projections.js +44 -0
- package/dist/runtime/foundation/service-authority-payload-codec.d.ts +56 -0
- package/dist/runtime/foundation/service-authority-payload-codec.js +411 -0
- package/dist/runtime/foundation/service-discovery-registry.d.ts +42 -0
- package/dist/runtime/foundation/service-discovery-registry.js +175 -0
- package/dist/runtime/foundation/service-instance-activation-recovery-codec.d.ts +19 -0
- package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +287 -0
- package/dist/runtime/foundation/service-liveness-registry.d.ts +28 -0
- package/dist/runtime/foundation/service-liveness-registry.js +109 -0
- package/dist/runtime/foundation/service-mailbox.d.ts +60 -0
- package/dist/runtime/foundation/service-mailbox.js +283 -0
- package/dist/runtime/foundation/service-maintenance-runtime.d.ts +45 -0
- package/dist/runtime/foundation/service-maintenance-runtime.js +198 -0
- package/dist/runtime/foundation/service-metadata-codec.d.ts +2 -0
- package/dist/runtime/foundation/service-metadata-codec.js +69 -0
- package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +35 -0
- package/dist/runtime/foundation/service-relocation-aggregate-committer.js +139 -0
- package/dist/runtime/foundation/service-relocation-coordinator.d.ts +19 -0
- package/dist/runtime/foundation/service-relocation-coordinator.js +16 -0
- package/dist/runtime/foundation/service-relocation-object-owner.d.ts +71 -0
- package/dist/runtime/foundation/service-relocation-object-owner.js +242 -0
- package/dist/runtime/foundation/service-relocation-runtime.d.ts +143 -0
- package/dist/runtime/foundation/service-relocation-runtime.js +1080 -0
- package/dist/runtime/foundation/service-runtime-contracts.d.ts +332 -0
- package/dist/runtime/foundation/service-runtime-contracts.js +66 -0
- package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +23 -0
- package/dist/runtime/foundation/service-session-binding-ingress-port.js +11 -0
- package/dist/runtime/foundation/service-stateful-registry.d.ts +142 -0
- package/dist/runtime/foundation/service-stateful-registry.js +465 -0
- package/dist/runtime/foundation/service-stateful-runtime.d.ts +393 -0
- package/dist/runtime/foundation/service-stateful-runtime.js +3898 -0
- package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +597 -0
- package/dist/runtime/foundation/service-stateful-wire-codec.js +2006 -0
- package/dist/runtime/foundation/service-topology-registry.d.ts +68 -0
- package/dist/runtime/foundation/service-topology-registry.js +393 -0
- package/dist/runtime/foundation/service-weighted-selection.d.ts +14 -0
- package/dist/runtime/foundation/service-weighted-selection.js +128 -0
- package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +10 -0
- package/dist/runtime/foundation/service-wire-binary-primitives.js +53 -0
- package/dist/runtime/foundation/service-wire-codec.d.ts +22 -0
- package/dist/runtime/foundation/service-wire-codec.js +67 -0
- package/dist/runtime/foundation/service-wire-constants.generated.d.ts +110 -0
- package/dist/runtime/foundation/service-wire-constants.generated.js +132 -0
- package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +102 -0
- package/dist/runtime/foundation/service-wire-m6a-codec.js +568 -0
- package/dist/runtime/framework-errors-internal.d.ts +95 -0
- package/dist/runtime/framework-errors-internal.js +301 -0
- package/dist/runtime/handlers/handler-instance-scope.d.ts +11 -0
- package/dist/runtime/handlers/handler-instance-scope.js +284 -0
- package/dist/runtime/handlers/index.d.ts +13 -0
- package/dist/runtime/handlers/index.js +57 -0
- package/dist/runtime/host/actor-packet-relay.d.ts +60 -0
- package/dist/runtime/host/actor-packet-relay.js +664 -0
- package/dist/runtime/host/actor-placement-coordinator.d.ts +32 -0
- package/dist/runtime/host/actor-placement-coordinator.js +386 -0
- package/dist/runtime/host/actor-runtime-options-factory.d.ts +65 -0
- package/dist/runtime/host/actor-runtime-options-factory.js +160 -0
- package/dist/runtime/host/actor-transfer-authority-runtime.d.ts +26 -0
- package/dist/runtime/host/actor-transfer-authority-runtime.js +138 -0
- package/dist/runtime/host/actor-transfer-runtime.d.ts +149 -0
- package/dist/runtime/host/actor-transfer-runtime.js +1245 -0
- package/dist/runtime/host/application-job-queue.d.ts +99 -0
- package/dist/runtime/host/application-job-queue.js +409 -0
- package/dist/runtime/host/bound-session-relay.d.ts +41 -0
- package/dist/runtime/host/bound-session-relay.js +52 -0
- package/dist/runtime/host/bounded-replay-map.d.ts +12 -0
- package/dist/runtime/host/bounded-replay-map.js +42 -0
- package/dist/runtime/host/channel-runtime-options-factory.d.ts +22 -0
- package/dist/runtime/host/channel-runtime-options-factory.js +76 -0
- package/dist/runtime/host/entry-actor-runtime.d.ts +30 -0
- package/dist/runtime/host/entry-actor-runtime.js +80 -0
- package/dist/runtime/host/host-capacity-status.d.ts +11 -0
- package/dist/runtime/host/host-capacity-status.js +85 -0
- package/dist/runtime/host/index.d.ts +188 -0
- package/dist/runtime/host/index.js +2552 -0
- package/dist/runtime/host/instance-activation-authority.d.ts +33 -0
- package/dist/runtime/host/instance-activation-authority.js +496 -0
- package/dist/runtime/host/location-runtime-owner.d.ts +48 -0
- package/dist/runtime/host/location-runtime-owner.js +227 -0
- package/dist/runtime/host/mesh-router-resolver.d.ts +16 -0
- package/dist/runtime/host/mesh-router-resolver.js +108 -0
- package/dist/runtime/host/relocation-direct-transfer.d.ts +81 -0
- package/dist/runtime/host/relocation-direct-transfer.js +240 -0
- package/dist/runtime/host/relocation-integrity-fault-gate.d.ts +6 -0
- package/dist/runtime/host/relocation-integrity-fault-gate.js +5 -0
- package/dist/runtime/host/relocation-state-adapter.d.ts +8 -0
- package/dist/runtime/host/relocation-state-adapter.js +13 -0
- package/dist/runtime/host/remote-actor-join-receiver.d.ts +47 -0
- package/dist/runtime/host/remote-actor-join-receiver.js +161 -0
- package/dist/runtime/host/remote-actor-packet-target-store.d.ts +29 -0
- package/dist/runtime/host/remote-actor-packet-target-store.js +185 -0
- package/dist/runtime/host/remote-bound-session-relay.d.ts +58 -0
- package/dist/runtime/host/remote-bound-session-relay.js +540 -0
- package/dist/runtime/host/route-mesh-runtime-options.d.ts +9 -0
- package/dist/runtime/host/route-mesh-runtime-options.js +41 -0
- package/dist/runtime/host/route-mesh-runtime.d.ts +76 -0
- package/dist/runtime/host/route-mesh-runtime.js +746 -0
- package/dist/runtime/host/runtime-shutdown.d.ts +33 -0
- package/dist/runtime/host/runtime-shutdown.js +68 -0
- package/dist/runtime/host/service-relocation-control.d.ts +7 -0
- package/dist/runtime/host/service-relocation-control.js +24 -0
- package/dist/runtime/host/service-relocation-host-runtime.d.ts +241 -0
- package/dist/runtime/host/service-relocation-host-runtime.js +4113 -0
- package/dist/runtime/host/spot-address-transport.d.ts +47 -0
- package/dist/runtime/host/spot-address-transport.js +601 -0
- package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +38 -0
- package/dist/runtime/host/spot-node-runtime-options-factory.js +36 -0
- package/dist/runtime/host/spot-runtime-options-factory.d.ts +48 -0
- package/dist/runtime/host/spot-runtime-options-factory.js +169 -0
- package/dist/runtime/host/stateful-authority-route-runtime.d.ts +34 -0
- package/dist/runtime/host/stateful-authority-route-runtime.js +440 -0
- package/dist/runtime/host/user-spot-creation-coordinator.d.ts +69 -0
- package/dist/runtime/host/user-spot-creation-coordinator.js +759 -0
- package/dist/runtime/locations/actor-location-claims.d.ts +43 -0
- package/dist/runtime/locations/actor-location-claims.js +319 -0
- package/dist/runtime/locations/actor-session-route-claims.d.ts +10 -0
- package/dist/runtime/locations/actor-session-route-claims.js +51 -0
- package/dist/runtime/locations/aggregate-inventory-store.d.ts +18 -0
- package/dist/runtime/locations/aggregate-inventory-store.js +399 -0
- package/dist/runtime/locations/authority-key-codec.d.ts +6 -0
- package/dist/runtime/locations/authority-key-codec.js +78 -0
- package/dist/runtime/locations/auto-connect-loop.d.ts +37 -0
- package/dist/runtime/locations/auto-connect-loop.js +112 -0
- package/dist/runtime/locations/auto-connect-planner.d.ts +9 -0
- package/dist/runtime/locations/auto-connect-planner.js +137 -0
- package/dist/runtime/locations/auto-connect-reconciler.d.ts +57 -0
- package/dist/runtime/locations/auto-connect-reconciler.js +358 -0
- package/dist/runtime/locations/auto-connect-types.d.ts +42 -0
- package/dist/runtime/locations/auto-connect-types.js +2 -0
- package/dist/runtime/locations/auto-connect.d.ts +4 -0
- package/dist/runtime/locations/auto-connect.js +20 -0
- package/dist/runtime/locations/canonical-codec.d.ts +7 -0
- package/dist/runtime/locations/canonical-codec.js +48 -0
- package/dist/runtime/locations/domain-store-contract.d.ts +34 -0
- package/dist/runtime/locations/domain-store-contract.js +2 -0
- package/dist/runtime/locations/in-memory-authority-store.d.ts +51 -0
- package/dist/runtime/locations/in-memory-authority-store.js +895 -0
- package/dist/runtime/locations/in-memory-location-store.d.ts +78 -0
- package/dist/runtime/locations/in-memory-location-store.js +1008 -0
- package/dist/runtime/locations/in-memory-provider-location-store.d.ts +19 -0
- package/dist/runtime/locations/in-memory-provider-location-store.js +183 -0
- package/dist/runtime/locations/index.d.ts +11 -0
- package/dist/runtime/locations/index.js +27 -0
- package/dist/runtime/locations/internal-location-contracts.d.ts +7 -0
- package/dist/runtime/locations/internal-location-contracts.js +21 -0
- package/dist/runtime/locations/internal-store-contracts.d.ts +35 -0
- package/dist/runtime/locations/internal-store-contracts.js +2 -0
- package/dist/runtime/locations/key-codec.d.ts +13 -0
- package/dist/runtime/locations/key-codec.js +41 -0
- package/dist/runtime/locations/lease-tracker.d.ts +36 -0
- package/dist/runtime/locations/lease-tracker.js +155 -0
- package/dist/runtime/locations/lifecycle-runtime.d.ts +19 -0
- package/dist/runtime/locations/lifecycle-runtime.js +2 -0
- package/dist/runtime/locations/lifecycle.d.ts +40 -0
- package/dist/runtime/locations/lifecycle.js +120 -0
- package/dist/runtime/locations/location-store-repository.d.ts +72 -0
- package/dist/runtime/locations/location-store-repository.js +3198 -0
- package/dist/runtime/locations/relocation-blob.d.ts +7 -0
- package/dist/runtime/locations/relocation-blob.js +24 -0
- package/dist/runtime/locations/resolvers.d.ts +145 -0
- package/dist/runtime/locations/resolvers.js +693 -0
- package/dist/runtime/locations/runtime.d.ts +144 -0
- package/dist/runtime/locations/runtime.js +792 -0
- package/dist/runtime/locations/spot-location-claims.d.ts +36 -0
- package/dist/runtime/locations/spot-location-claims.js +305 -0
- package/dist/runtime/messaging/creation-payload-codec.d.ts +4 -0
- package/dist/runtime/messaging/creation-payload-codec.js +40 -0
- package/dist/runtime/messaging/framework-json-v1.d.ts +7 -0
- package/dist/runtime/messaging/framework-json-v1.js +296 -0
- package/dist/runtime/messaging/index.d.ts +1 -0
- package/dist/runtime/messaging/index.js +2 -0
- package/dist/runtime/messaging/packet-name.d.ts +4 -0
- package/dist/runtime/messaging/packet-name.js +79 -0
- package/dist/runtime/messaging/payload-codec.d.ts +25 -0
- package/dist/runtime/messaging/payload-codec.js +255 -0
- package/dist/runtime/messaging/submission-result.d.ts +15 -0
- package/dist/runtime/messaging/submission-result.js +37 -0
- package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +395 -0
- package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +645 -0
- package/dist/runtime/routing-id.d.ts +8 -0
- package/dist/runtime/routing-id.js +112 -0
- package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +124 -0
- package/dist/runtime/spots/formal-remote-actor-admission-registry.js +269 -0
- package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +33 -0
- package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +94 -0
- package/dist/runtime/spots/index.d.ts +247 -0
- package/dist/runtime/spots/index.js +2090 -0
- package/dist/runtime/spots/spot-activation-registry.d.ts +47 -0
- package/dist/runtime/spots/spot-activation-registry.js +272 -0
- package/dist/runtime/spots/spot-activation-state.d.ts +104 -0
- package/dist/runtime/spots/spot-activation-state.js +288 -0
- package/dist/runtime/spots/spot-activation.d.ts +89 -0
- package/dist/runtime/spots/spot-activation.js +601 -0
- package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +20 -0
- package/dist/runtime/spots/spot-actor-admission-coordinator.js +194 -0
- package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +83 -0
- package/dist/runtime/spots/spot-actor-join-dispatch.js +185 -0
- package/dist/runtime/spots/spot-actor-lifecycle-drain.d.ts +22 -0
- package/dist/runtime/spots/spot-actor-lifecycle-drain.js +51 -0
- package/dist/runtime/spots/spot-actor-membership.d.ts +39 -0
- package/dist/runtime/spots/spot-actor-membership.js +179 -0
- package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +91 -0
- package/dist/runtime/spots/spot-actor-packet-dispatch.js +315 -0
- package/dist/runtime/spots/spot-actor-packet-drain.d.ts +40 -0
- package/dist/runtime/spots/spot-actor-packet-drain.js +235 -0
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +18 -0
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +110 -0
- package/dist/runtime/spots/spot-closing.d.ts +2 -0
- package/dist/runtime/spots/spot-closing.js +30 -0
- package/dist/runtime/spots/spot-context.d.ts +46 -0
- package/dist/runtime/spots/spot-context.js +113 -0
- package/dist/runtime/spots/spot-entry-activation.d.ts +107 -0
- package/dist/runtime/spots/spot-entry-activation.js +342 -0
- package/dist/runtime/spots/spot-handle.d.ts +28 -0
- package/dist/runtime/spots/spot-handle.js +38 -0
- package/dist/runtime/spots/spot-handler-registry.d.ts +52 -0
- package/dist/runtime/spots/spot-handler-registry.js +155 -0
- package/dist/runtime/spots/spot-lifecycle-metrics.d.ts +8 -0
- package/dist/runtime/spots/spot-lifecycle-metrics.js +16 -0
- package/dist/runtime/spots/spot-location-claim.d.ts +25 -0
- package/dist/runtime/spots/spot-location-claim.js +55 -0
- package/dist/runtime/spots/spot-manager-internal-contracts.d.ts +10 -0
- package/dist/runtime/spots/spot-manager-internal-contracts.js +2 -0
- package/dist/runtime/spots/spot-manager-public.d.ts +32 -0
- package/dist/runtime/spots/spot-manager-public.js +219 -0
- package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +26 -0
- package/dist/runtime/spots/spot-native-actor-join-admission.js +105 -0
- package/dist/runtime/spots/spot-native-flags.d.ts +2 -0
- package/dist/runtime/spots/spot-native-flags.js +5 -0
- package/dist/runtime/spots/spot-node-autoconnect.d.ts +23 -0
- package/dist/runtime/spots/spot-node-autoconnect.js +246 -0
- package/dist/runtime/spots/spot-node-runtime-manager.d.ts +137 -0
- package/dist/runtime/spots/spot-node-runtime-manager.js +1111 -0
- package/dist/runtime/spots/spot-outbound.d.ts +78 -0
- package/dist/runtime/spots/spot-outbound.js +460 -0
- package/dist/runtime/spots/spot-provider.d.ts +4 -0
- package/dist/runtime/spots/spot-provider.js +28 -0
- package/dist/runtime/spots/spot-publisher-transport.d.ts +14 -0
- package/dist/runtime/spots/spot-publisher-transport.js +28 -0
- package/dist/runtime/spots/spot-remote-codec.d.ts +50 -0
- package/dist/runtime/spots/spot-remote-codec.js +190 -0
- package/dist/runtime/spots/spot-remote-route-codec.d.ts +47 -0
- package/dist/runtime/spots/spot-remote-route-codec.js +168 -0
- package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +25 -0
- package/dist/runtime/spots/spot-route-packet-dispatch.js +238 -0
- package/dist/runtime/spots/spot-route-replies.d.ts +17 -0
- package/dist/runtime/spots/spot-route-replies.js +76 -0
- package/dist/runtime/spots/spot-route-reply-wire.d.ts +10 -0
- package/dist/runtime/spots/spot-route-reply-wire.js +6 -0
- package/dist/runtime/spots/spot-routed-actor-admission.d.ts +36 -0
- package/dist/runtime/spots/spot-routed-actor-admission.js +240 -0
- package/dist/runtime/spots/spot-routed-bound-session-dispatch.d.ts +19 -0
- package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +46 -0
- package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +54 -0
- package/dist/runtime/spots/spot-routed-frame-dispatch.js +162 -0
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +43 -0
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +152 -0
- package/dist/runtime/spots/spot-routing-internal.d.ts +28 -0
- package/dist/runtime/spots/spot-routing-internal.js +2 -0
- package/dist/runtime/spots/spot-runtime-ports.d.ts +64 -0
- package/dist/runtime/spots/spot-runtime-ports.js +2 -0
- package/dist/runtime/spots/spot-serial-executor.d.ts +38 -0
- package/dist/runtime/spots/spot-serial-executor.js +133 -0
- package/dist/runtime/spots/spot-serial-turn-executor.d.ts +54 -0
- package/dist/runtime/spots/spot-serial-turn-executor.js +219 -0
- package/dist/runtime/spots/spot-subscription-dispatch.d.ts +32 -0
- package/dist/runtime/spots/spot-subscription-dispatch.js +194 -0
- package/dist/runtime/spots/spot-timer.d.ts +110 -0
- package/dist/runtime/spots/spot-timer.js +419 -0
- package/dist/runtime/streams/actor-session-binding-registry.d.ts +193 -0
- package/dist/runtime/streams/actor-session-binding-registry.js +1127 -0
- package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +20 -0
- package/dist/runtime/streams/actor-session-binding-runtime-owner.js +19 -0
- package/dist/runtime/streams/actor-session-lifecycle-coordinator.d.ts +4 -0
- package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +24 -0
- package/dist/runtime/streams/bound-actor-relay-sender.d.ts +29 -0
- package/dist/runtime/streams/bound-actor-relay-sender.js +181 -0
- package/dist/runtime/streams/bound-session-response-target.d.ts +25 -0
- package/dist/runtime/streams/bound-session-response-target.js +54 -0
- package/dist/runtime/streams/bound-session-service.d.ts +48 -0
- package/dist/runtime/streams/bound-session-service.js +201 -0
- package/dist/runtime/streams/index.d.ts +152 -0
- package/dist/runtime/streams/index.js +338 -0
- package/dist/runtime/streams/managed-stream.d.ts +53 -0
- package/dist/runtime/streams/managed-stream.js +329 -0
- package/dist/runtime/streams/native-fallback-bound-session.d.ts +24 -0
- package/dist/runtime/streams/native-fallback-bound-session.js +201 -0
- package/dist/runtime/streams/protocol.d.ts +67 -0
- package/dist/runtime/streams/protocol.js +244 -0
- package/dist/runtime/streams/session-actor-coordinator.d.ts +56 -0
- package/dist/runtime/streams/session-actor-coordinator.js +371 -0
- package/dist/runtime/streams/session-calls.d.ts +59 -0
- package/dist/runtime/streams/session-calls.js +123 -0
- package/dist/runtime/streams/session-context.d.ts +108 -0
- package/dist/runtime/streams/session-context.js +377 -0
- package/dist/runtime/streams/session-local-actors.d.ts +10 -0
- package/dist/runtime/streams/session-local-actors.js +26 -0
- package/dist/runtime/streams/session-provider.d.ts +4 -0
- package/dist/runtime/streams/session-provider.js +30 -0
- package/dist/runtime/streams/session-requests.d.ts +25 -0
- package/dist/runtime/streams/session-requests.js +100 -0
- package/dist/runtime/streams/session-serial-executor.d.ts +12 -0
- package/dist/runtime/streams/session-serial-executor.js +58 -0
- package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +62 -0
- package/dist/runtime/streams/stream-binding-runtime-ports.js +2 -0
- package/dist/runtime/streams/stream-frame-factory.d.ts +44 -0
- package/dist/runtime/streams/stream-frame-factory.js +149 -0
- package/dist/runtime/streams/stream-message-utils.d.ts +5 -0
- package/dist/runtime/streams/stream-message-utils.js +74 -0
- package/dist/runtime/streams/stream-session-runtime.d.ts +166 -0
- package/dist/runtime/streams/stream-session-runtime.js +1144 -0
- package/dist/runtime/workers/index.d.ts +38 -0
- package/dist/runtime/workers/index.js +474 -0
- package/package.json +19 -0
- package/src/contracts/Actors/ZLinkActor.ts +8 -0
- package/src/contracts/Actors/ZLinkActorClient.ts +18 -0
- package/src/contracts/Actors/ZLinkActorContext.ts +15 -0
- package/src/contracts/Actors/ZLinkActorFactory.ts +41 -0
- package/src/contracts/Actors/ZLinkActorManager.ts +31 -0
- package/src/contracts/Actors/index.ts +5 -0
- package/src/contracts/Channels/Calls.ts +33 -0
- package/src/contracts/Channels/IZLinkChannelClient.ts +6 -0
- package/src/contracts/Channels/IZLinkFanoutClient.ts +13 -0
- package/src/contracts/Channels/RouteCalls.ts +13 -0
- package/src/contracts/Channels/index.ts +4 -0
- package/src/contracts/Codecs/IZLinkCodecRegistryBuilder.ts +22 -0
- package/src/contracts/Codecs/ZLinkMessageSerializer.ts +6 -0
- package/src/contracts/Codecs/index.ts +2 -0
- package/src/contracts/Common/ActorRef.ts +8 -0
- package/src/contracts/Common/CoreTypes.ts +6 -0
- package/src/contracts/Common/Message.ts +9 -0
- package/src/contracts/Common/ZLinkEncodedPayload.ts +47 -0
- package/src/contracts/Common/ZLinkMessage.ts +135 -0
- package/src/contracts/Common/ZLinkMessageMetadata.ts +77 -0
- package/src/contracts/Common/ZLinkProviderResolver.ts +6 -0
- package/src/contracts/Common/encoded-payload-storage.ts +16 -0
- package/src/contracts/Common/index.ts +5 -0
- package/src/contracts/Configuration/Builders.ts +200 -0
- package/src/contracts/Configuration/CodecContentType.ts +68 -0
- package/src/contracts/Configuration/CodecSerializerSelection.ts +28 -0
- package/src/contracts/Configuration/Configs.ts +27 -0
- package/src/contracts/Configuration/ConfigurationException.ts +6 -0
- package/src/contracts/Configuration/Connections.ts +5 -0
- package/src/contracts/Configuration/DiagnosticsValidation.ts +25 -0
- package/src/contracts/Configuration/EndpointNotation.ts +232 -0
- package/src/contracts/Configuration/InternalDefaults.ts +13 -0
- package/src/contracts/Configuration/ObjectRoles.ts +47 -0
- package/src/contracts/Configuration/Registration.ts +191 -0
- package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +76 -0
- package/src/contracts/Configuration/RegistrationBuilders.ts +1705 -0
- package/src/contracts/Configuration/RegistrationCodecRegistry.ts +118 -0
- package/src/contracts/Configuration/RegistrationNormalizers.ts +404 -0
- package/src/contracts/Configuration/RegistrationTypes.ts +499 -0
- package/src/contracts/Configuration/RegistrationValidators.ts +698 -0
- package/src/contracts/Configuration/RouteChannelInternalState.ts +50 -0
- package/src/contracts/Configuration/RuntimeEndpointConnections.ts +91 -0
- package/src/contracts/Configuration/SendTimeoutValidation.ts +15 -0
- package/src/contracts/Configuration/TimerRegistrationValidator.ts +37 -0
- package/src/contracts/Configuration/index.ts +35 -0
- package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +222 -0
- package/src/contracts/Dispatch/ZLinkFlowOrigin.ts +1 -0
- package/src/contracts/Dispatch/index.ts +2 -0
- package/src/contracts/Errors/ZLinkFrameworkException.ts +27 -0
- package/src/contracts/Errors/index.ts +4 -0
- package/src/contracts/Eventing/Metrics.ts +27 -0
- package/src/contracts/Eventing/index.ts +1 -0
- package/src/contracts/Handlers/Attributes.ts +111 -0
- package/src/contracts/Handlers/Contexts.ts +21 -0
- package/src/contracts/Handlers/IZLinkChannelHandlers.ts +69 -0
- package/src/contracts/Handlers/IZLinkHandlerFilter.ts +22 -0
- package/src/contracts/Handlers/JsonContract.ts +172 -0
- package/src/contracts/Handlers/ZLinkHandlerFilterNext.ts +1 -0
- package/src/contracts/Handlers/index.ts +17 -0
- package/src/contracts/Locations/ActorTransfer.ts +84 -0
- package/src/contracts/Locations/Authority.ts +308 -0
- package/src/contracts/Locations/Diagnostics.ts +48 -0
- package/src/contracts/Locations/Keys.ts +93 -0
- package/src/contracts/Locations/Models.ts +7 -0
- package/src/contracts/Locations/Options.ts +42 -0
- package/src/contracts/Locations/Readiness.ts +11 -0
- package/src/contracts/Locations/RelocationStore.ts +51 -0
- package/src/contracts/Locations/Resolvers.ts +8 -0
- package/src/contracts/Locations/Rows.ts +164 -0
- package/src/contracts/Locations/RuntimeQuery.ts +56 -0
- package/src/contracts/Locations/Stores.ts +92 -0
- package/src/contracts/Locations/Values.ts +32 -0
- package/src/contracts/Locations/Watch.ts +16 -0
- package/src/contracts/Locations/Writes.ts +56 -0
- package/src/contracts/Locations/index.ts +48 -0
- package/src/contracts/RouteMesh/Contracts.ts +145 -0
- package/src/contracts/RouteMesh/RuntimeTopology.ts +201 -0
- package/src/contracts/RouteMesh/index.ts +2 -0
- package/src/contracts/Spots/Builders.ts +11 -0
- package/src/contracts/Spots/Contracts.ts +150 -0
- package/src/contracts/Spots/SpotKind.ts +24 -0
- package/src/contracts/Spots/ZLinkSpot.ts +88 -0
- package/src/contracts/Spots/index.ts +3 -0
- package/src/contracts/Streams/BoundSessionContracts.ts +9 -0
- package/src/contracts/Streams/IZLinkSession.ts +52 -0
- package/src/contracts/Streams/IZLinkSessionActor.ts +17 -0
- package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +11 -0
- package/src/contracts/Streams/IZLinkStream.ts +10 -0
- package/src/contracts/Streams/ZLinkMessageMetadata.ts +1 -0
- package/src/contracts/Streams/ZLinkStreamCompression.ts +9 -0
- package/src/contracts/Streams/ZLinkStreamError.ts +9 -0
- package/src/contracts/Streams/index.ts +8 -0
- package/src/contracts/Timers/IZLinkTimer.ts +5 -0
- package/src/contracts/Timers/ZLinkTimerOptions.ts +11 -0
- package/src/contracts/Timers/ZLinkTimerTick.ts +12 -0
- package/src/contracts/Timers/index.ts +3 -0
- package/src/contracts/index.ts +71 -0
- package/src/index.ts +1 -0
- package/src/internal.ts +29 -0
- package/src/location-store-integration.ts +51 -0
- package/src/nest-integration.ts +251 -0
- package/src/runtime/abort.ts +70 -0
- package/src/runtime/actors/actor-authority-payload-codec.ts +454 -0
- package/src/runtime/actors/actor-authority-publication.ts +277 -0
- package/src/runtime/actors/actor-client.ts +1018 -0
- package/src/runtime/actors/actor-context.ts +583 -0
- package/src/runtime/actors/actor-creation.ts +254 -0
- package/src/runtime/actors/actor-execution-context.ts +38 -0
- package/src/runtime/actors/actor-handoff.ts +1911 -0
- package/src/runtime/actors/actor-join-deferred-scope.ts +183 -0
- package/src/runtime/actors/actor-join-relocation.ts +39 -0
- package/src/runtime/actors/actor-lifecycle-snapshot.ts +90 -0
- package/src/runtime/actors/actor-local-native-join.ts +725 -0
- package/src/runtime/actors/actor-mailbox.ts +92 -0
- package/src/runtime/actors/actor-message-follow-context.ts +347 -0
- package/src/runtime/actors/actor-native-lookup.ts +38 -0
- package/src/runtime/actors/actor-packet-relay-wire.ts +223 -0
- package/src/runtime/actors/actor-remote-joiner.ts +238 -0
- package/src/runtime/actors/actor-remote-wire.ts +169 -0
- package/src/runtime/actors/actor-retry-delay.ts +37 -0
- package/src/runtime/actors/actor-routed-join-transport.ts +58 -0
- package/src/runtime/actors/actor-routed-json-request.ts +44 -0
- package/src/runtime/actors/actor-runtime-contracts.ts +126 -0
- package/src/runtime/actors/actor-runtime-state.ts +805 -0
- package/src/runtime/actors/actor-source-transfer.ts +62 -0
- package/src/runtime/actors/actor-transfer-registry.ts +112 -0
- package/src/runtime/actors/actor-transport-delivery-gate.ts +17 -0
- package/src/runtime/actors/bound-session-wire.ts +257 -0
- package/src/runtime/actors/deferred-join-accepted-journal.ts +1319 -0
- package/src/runtime/actors/index.ts +972 -0
- package/src/runtime/actors/post-commit-actor-binder.ts +70 -0
- package/src/runtime/actors/post-commit-actor-location.ts +114 -0
- package/src/runtime/actors/spot-actor-dispatch.ts +362 -0
- package/src/runtime/actors/transferred-actor-rollback.ts +123 -0
- package/src/runtime/admission.ts +192 -0
- package/src/runtime/application-jobs/application-ingress-record-owner.ts +216 -0
- package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +10 -0
- package/src/runtime/application-jobs/application-job-queue-scope.ts +64 -0
- package/src/runtime/application-jobs/contracts.ts +26 -0
- package/src/runtime/application-jobs/receive-flow-controller.ts +188 -0
- package/src/runtime/backend/contracts/index.ts +765 -0
- package/src/runtime/backend/index.ts +9 -0
- package/src/runtime/backend/mesh-actor-session-node-adapter.ts +73 -0
- package/src/runtime/backend/mesh-completion-table.ts +165 -0
- package/src/runtime/backend/mesh-dispatch-pump.ts +363 -0
- package/src/runtime/backend/mesh-record-dispatcher.ts +65 -0
- package/src/runtime/backend/node/index.ts +4 -0
- package/src/runtime/backend/node/node-backend-adapter-factory.ts +204 -0
- package/src/runtime/backend/node/node-backend-adapter-support.ts +257 -0
- package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +133 -0
- package/src/runtime/backend/node/node-mesh-backend-adapter.ts +44 -0
- package/src/runtime/backend/node/node-monitor-backend-adapter.ts +39 -0
- package/src/runtime/backend/node/node-raw-binding-port.contract.ts +21 -0
- package/src/runtime/backend/node/node-raw-binding-port.ts +518 -0
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +2669 -0
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +372 -0
- package/src/runtime/backend/node-backend-adapter.ts +19 -0
- package/src/runtime/backend/raw-binding-port.ts +69 -0
- package/src/runtime/backend/runtime-message.ts +51 -0
- package/src/runtime/backend/runtime-values.ts +107 -0
- package/src/runtime/channels/channel-autoconnect.ts +46 -0
- package/src/runtime/channels/channel-clients.ts +527 -0
- package/src/runtime/channels/channel-dispatch-pipeline.ts +408 -0
- package/src/runtime/channels/channel-dispatch-services.ts +234 -0
- package/src/runtime/channels/channel-dispatchers.ts +790 -0
- package/src/runtime/channels/channel-envelope-inspection.ts +125 -0
- package/src/runtime/channels/channel-envelope.ts +743 -0
- package/src/runtime/channels/channel-framework-packets.ts +8 -0
- package/src/runtime/channels/channel-multipart.ts +61 -0
- package/src/runtime/channels/channel-outbound-operations.ts +584 -0
- package/src/runtime/channels/channel-receive-loops.ts +901 -0
- package/src/runtime/channels/channel-receive-task-tracker.ts +39 -0
- package/src/runtime/channels/channel-runtime-lifecycle.ts +969 -0
- package/src/runtime/channels/channel-runtime-manager.ts +444 -0
- package/src/runtime/channels/channel-socket-options.ts +153 -0
- package/src/runtime/channels/channel-socket-registry.ts +1837 -0
- package/src/runtime/channels/channel-transports.ts +1154 -0
- package/src/runtime/channels/client-server-location-runtime.ts +576 -0
- package/src/runtime/channels/client-server-service-wire.ts +390 -0
- package/src/runtime/channels/dispatch-error-reporter.ts +165 -0
- package/src/runtime/channels/fanout-location-runtime.ts +459 -0
- package/src/runtime/channels/fanout-service-wire.ts +43 -0
- package/src/runtime/channels/handler-filter-scope.ts +29 -0
- package/src/runtime/channels/index.ts +45 -0
- package/src/runtime/channels/local-spot-route-transport.ts +59 -0
- package/src/runtime/channels/route-disconnected-error.ts +6 -0
- package/src/runtime/channels/route-member-snapshot.ts +55 -0
- package/src/runtime/channels/router-socket-spot-route-transport.ts +77 -0
- package/src/runtime/channels/source-spot-router.ts +89 -0
- package/src/runtime/channels/spot-direct-envelope.ts +44 -0
- package/src/runtime/channels/spot-node-route-transport.ts +92 -0
- package/src/runtime/channels/spot-route-bridge-transport.ts +75 -0
- package/src/runtime/channels/spot-route-dispatch-strategy.ts +329 -0
- package/src/runtime/channels/spot-route-target-resolver.ts +101 -0
- package/src/runtime/codecs/index.ts +69 -0
- package/src/runtime/configuration/index.ts +1 -0
- package/src/runtime/diagnostics/dispatch-error-port.ts +8 -0
- package/src/runtime/diagnostics/flow-context.ts +84 -0
- package/src/runtime/diagnostics/index.ts +441 -0
- package/src/runtime/diagnostics/internal-event-contracts.ts +135 -0
- package/src/runtime/diagnostics/message-flow.ts +560 -0
- package/src/runtime/diagnostics/runtime-metrics.ts +601 -0
- package/src/runtime/diagnostics/runtime-observation-queue.ts +362 -0
- package/src/runtime/diagnostics/topology-runtime-projections.ts +298 -0
- package/src/runtime/execution/index.ts +466 -0
- package/src/runtime/execution/serial-execution-queue.ts +534 -0
- package/src/runtime/execution/serial-work-size.ts +31 -0
- package/src/runtime/execution/state-lane.ts +116 -0
- package/src/runtime/foundation/actor-join-recovery-codec.ts +465 -0
- package/src/runtime/foundation/event-loop-resources.ts +162 -0
- package/src/runtime/foundation/index.ts +18 -0
- package/src/runtime/foundation/message-follow-suppression-registry.ts +130 -0
- package/src/runtime/foundation/operation-identity.ts +49 -0
- package/src/runtime/foundation/operation-registry.ts +162 -0
- package/src/runtime/foundation/raw-service-mesh-runtime.ts +1771 -0
- package/src/runtime/foundation/route-mesh-connection-policy.ts +28 -0
- package/src/runtime/foundation/runtime-state-projections.ts +68 -0
- package/src/runtime/foundation/service-authority-payload-codec.ts +566 -0
- package/src/runtime/foundation/service-discovery-registry.ts +263 -0
- package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +329 -0
- package/src/runtime/foundation/service-liveness-registry.ts +144 -0
- package/src/runtime/foundation/service-mailbox.ts +369 -0
- package/src/runtime/foundation/service-maintenance-runtime.ts +242 -0
- package/src/runtime/foundation/service-metadata-codec.ts +75 -0
- package/src/runtime/foundation/service-relocation-aggregate-committer.ts +218 -0
- package/src/runtime/foundation/service-relocation-coordinator.ts +37 -0
- package/src/runtime/foundation/service-relocation-object-owner.ts +428 -0
- package/src/runtime/foundation/service-relocation-runtime.ts +1407 -0
- package/src/runtime/foundation/service-runtime-contracts.ts +423 -0
- package/src/runtime/foundation/service-session-binding-ingress-port.ts +45 -0
- package/src/runtime/foundation/service-stateful-registry.ts +664 -0
- package/src/runtime/foundation/service-stateful-runtime.ts +5753 -0
- package/src/runtime/foundation/service-stateful-wire-codec.ts +3008 -0
- package/src/runtime/foundation/service-topology-registry.ts +599 -0
- package/src/runtime/foundation/service-weighted-selection.ts +166 -0
- package/src/runtime/foundation/service-wire-binary-primitives.ts +80 -0
- package/src/runtime/foundation/service-wire-codec.ts +91 -0
- package/src/runtime/foundation/service-wire-constants.generated.ts +131 -0
- package/src/runtime/foundation/service-wire-m6a-codec.ts +647 -0
- package/src/runtime/framework-errors-internal.ts +338 -0
- package/src/runtime/handlers/handler-instance-scope.ts +372 -0
- package/src/runtime/handlers/index.ts +93 -0
- package/src/runtime/host/actor-packet-relay.ts +1070 -0
- package/src/runtime/host/actor-placement-coordinator.ts +573 -0
- package/src/runtime/host/actor-runtime-options-factory.ts +282 -0
- package/src/runtime/host/actor-transfer-authority-runtime.ts +225 -0
- package/src/runtime/host/actor-transfer-runtime.ts +1958 -0
- package/src/runtime/host/application-job-queue.ts +518 -0
- package/src/runtime/host/bound-session-relay.ts +94 -0
- package/src/runtime/host/bounded-replay-map.ts +42 -0
- package/src/runtime/host/channel-runtime-options-factory.ts +104 -0
- package/src/runtime/host/entry-actor-runtime.ts +115 -0
- package/src/runtime/host/host-capacity-status.ts +103 -0
- package/src/runtime/host/index.ts +3492 -0
- package/src/runtime/host/instance-activation-authority.ts +658 -0
- package/src/runtime/host/location-runtime-owner.ts +313 -0
- package/src/runtime/host/mesh-router-resolver.ts +114 -0
- package/src/runtime/host/relocation-direct-transfer.ts +273 -0
- package/src/runtime/host/relocation-integrity-fault-gate.ts +8 -0
- package/src/runtime/host/relocation-state-adapter.ts +24 -0
- package/src/runtime/host/remote-actor-join-receiver.ts +264 -0
- package/src/runtime/host/remote-actor-packet-target-store.ts +244 -0
- package/src/runtime/host/remote-bound-session-relay.ts +900 -0
- package/src/runtime/host/route-mesh-runtime-options.ts +46 -0
- package/src/runtime/host/route-mesh-runtime.ts +891 -0
- package/src/runtime/host/runtime-shutdown.ts +101 -0
- package/src/runtime/host/service-relocation-control.ts +28 -0
- package/src/runtime/host/service-relocation-host-runtime.ts +5817 -0
- package/src/runtime/host/spot-address-transport.ts +997 -0
- package/src/runtime/host/spot-node-runtime-options-factory.ts +82 -0
- package/src/runtime/host/spot-runtime-options-factory.ts +286 -0
- package/src/runtime/host/stateful-authority-route-runtime.ts +662 -0
- package/src/runtime/host/user-spot-creation-coordinator.ts +1176 -0
- package/src/runtime/locations/actor-location-claims.ts +426 -0
- package/src/runtime/locations/actor-session-route-claims.ts +64 -0
- package/src/runtime/locations/aggregate-inventory-store.ts +581 -0
- package/src/runtime/locations/authority-key-codec.ts +80 -0
- package/src/runtime/locations/auto-connect-loop.ts +131 -0
- package/src/runtime/locations/auto-connect-planner.ts +178 -0
- package/src/runtime/locations/auto-connect-reconciler.ts +425 -0
- package/src/runtime/locations/auto-connect-types.ts +62 -0
- package/src/runtime/locations/auto-connect.ts +4 -0
- package/src/runtime/locations/canonical-codec.ts +54 -0
- package/src/runtime/locations/domain-store-contract.ts +149 -0
- package/src/runtime/locations/in-memory-authority-store.ts +1172 -0
- package/src/runtime/locations/in-memory-location-store.ts +1467 -0
- package/src/runtime/locations/in-memory-provider-location-store.ts +213 -0
- package/src/runtime/locations/index.ts +11 -0
- package/src/runtime/locations/internal-location-contracts.ts +22 -0
- package/src/runtime/locations/internal-store-contracts.ts +90 -0
- package/src/runtime/locations/key-codec.ts +61 -0
- package/src/runtime/locations/lease-tracker.ts +221 -0
- package/src/runtime/locations/lifecycle-runtime.ts +44 -0
- package/src/runtime/locations/lifecycle.ts +272 -0
- package/src/runtime/locations/location-store-repository.ts +4211 -0
- package/src/runtime/locations/relocation-blob.ts +36 -0
- package/src/runtime/locations/resolvers.ts +1054 -0
- package/src/runtime/locations/runtime.ts +1126 -0
- package/src/runtime/locations/spot-location-claims.ts +435 -0
- package/src/runtime/messaging/creation-payload-codec.ts +59 -0
- package/src/runtime/messaging/framework-json-v1.ts +307 -0
- package/src/runtime/messaging/index.ts +1 -0
- package/src/runtime/messaging/packet-name.ts +94 -0
- package/src/runtime/messaging/payload-codec.ts +418 -0
- package/src/runtime/messaging/submission-result.ts +61 -0
- package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +189 -0
- package/src/runtime/routing-id.ts +125 -0
- package/src/runtime/spots/formal-remote-actor-admission-registry.ts +418 -0
- package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +147 -0
- package/src/runtime/spots/index.ts +3303 -0
- package/src/runtime/spots/spot-activation-registry.ts +335 -0
- package/src/runtime/spots/spot-activation-state.ts +414 -0
- package/src/runtime/spots/spot-activation.ts +1027 -0
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +354 -0
- package/src/runtime/spots/spot-actor-join-dispatch.ts +303 -0
- package/src/runtime/spots/spot-actor-lifecycle-drain.ts +79 -0
- package/src/runtime/spots/spot-actor-membership.ts +266 -0
- package/src/runtime/spots/spot-actor-packet-dispatch.ts +593 -0
- package/src/runtime/spots/spot-actor-packet-drain.ts +328 -0
- package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +162 -0
- package/src/runtime/spots/spot-closing.ts +34 -0
- package/src/runtime/spots/spot-context.ts +259 -0
- package/src/runtime/spots/spot-entry-activation.ts +551 -0
- package/src/runtime/spots/spot-handle.ts +101 -0
- package/src/runtime/spots/spot-handler-registry.ts +273 -0
- package/src/runtime/spots/spot-lifecycle-metrics.ts +15 -0
- package/src/runtime/spots/spot-location-claim.ts +86 -0
- package/src/runtime/spots/spot-manager-internal-contracts.ts +11 -0
- package/src/runtime/spots/spot-manager-public.ts +361 -0
- package/src/runtime/spots/spot-native-actor-join-admission.ts +151 -0
- package/src/runtime/spots/spot-native-flags.ts +4 -0
- package/src/runtime/spots/spot-node-autoconnect.ts +325 -0
- package/src/runtime/spots/spot-node-runtime-manager.ts +1573 -0
- package/src/runtime/spots/spot-outbound.ts +761 -0
- package/src/runtime/spots/spot-provider.ts +36 -0
- package/src/runtime/spots/spot-publisher-transport.ts +69 -0
- package/src/runtime/spots/spot-remote-codec.ts +308 -0
- package/src/runtime/spots/spot-remote-route-codec.ts +284 -0
- package/src/runtime/spots/spot-route-packet-dispatch.ts +359 -0
- package/src/runtime/spots/spot-route-replies.ts +126 -0
- package/src/runtime/spots/spot-route-reply-wire.ts +15 -0
- package/src/runtime/spots/spot-routed-actor-admission.ts +351 -0
- package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +132 -0
- package/src/runtime/spots/spot-routed-frame-dispatch.ts +250 -0
- package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +254 -0
- package/src/runtime/spots/spot-routing-internal.ts +33 -0
- package/src/runtime/spots/spot-runtime-ports.ts +196 -0
- package/src/runtime/spots/spot-serial-executor.ts +170 -0
- package/src/runtime/spots/spot-serial-turn-executor.ts +319 -0
- package/src/runtime/spots/spot-subscription-dispatch.ts +252 -0
- package/src/runtime/spots/spot-timer.ts +609 -0
- package/src/runtime/streams/actor-session-binding-registry.ts +1691 -0
- package/src/runtime/streams/actor-session-binding-runtime-owner.ts +78 -0
- package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +20 -0
- package/src/runtime/streams/bound-actor-relay-sender.ts +275 -0
- package/src/runtime/streams/bound-session-response-target.ts +91 -0
- package/src/runtime/streams/bound-session-service.ts +500 -0
- package/src/runtime/streams/index.ts +706 -0
- package/src/runtime/streams/managed-stream.ts +509 -0
- package/src/runtime/streams/native-fallback-bound-session.ts +321 -0
- package/src/runtime/streams/protocol.ts +291 -0
- package/src/runtime/streams/session-actor-coordinator.ts +605 -0
- package/src/runtime/streams/session-calls.ts +221 -0
- package/src/runtime/streams/session-context.ts +609 -0
- package/src/runtime/streams/session-local-actors.ts +30 -0
- package/src/runtime/streams/session-provider.ts +50 -0
- package/src/runtime/streams/session-requests.ts +109 -0
- package/src/runtime/streams/session-serial-executor.ts +97 -0
- package/src/runtime/streams/stream-binding-runtime-ports.ts +106 -0
- package/src/runtime/streams/stream-frame-factory.ts +255 -0
- package/src/runtime/streams/stream-message-utils.ts +89 -0
- package/src/runtime/streams/stream-session-runtime.ts +1420 -0
- package/src/runtime/workers/index.ts +580 -0
- package/tsconfig.json +17 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
// <auto-generated> DO NOT EDIT. schema-sha256: 5d3ed969afc7aca896489f6998b1b4ff659a6ee2e61a62e92fe5d4d81710b828
|
|
2
|
+
export interface ServiceWireRouteFence { readonly id: string; readonly generation: bigint; readonly targetNodeRid: Uint8Array; readonly targetNodeGeneration: bigint; readonly expectedAuthorityOwnerGeneration: bigint; readonly expectedOwnerLeaseGeneration: bigint; }
|
|
3
|
+
export interface ApplicationPayloadEnvelopeV1 { readonly packetName: string; readonly contentType: string; readonly payload: Uint8Array; }
|
|
4
|
+
export interface ActorJoin28 { readonly correlation: bigint; readonly actor: ServiceWireRouteFence; readonly entry: boolean; readonly targetSpot: ServiceWireRouteFence; readonly payload?: ApplicationPayloadEnvelopeV1; }
|
|
5
|
+
const text = new TextEncoder(); const decodeText = new TextDecoder("utf-8", { fatal: true });
|
|
6
|
+
function u64(out: number[], value: bigint): void { if (value < 0n || value > 0xffffffffffffffffn) throw new RangeError("u64"); for (let i=7;i>=0;i--) out.push(Number((value >> BigInt(i*8)) & 255n)); }
|
|
7
|
+
function read64(bytes: Uint8Array, at: { value: number }): bigint { if (at.value + 8 > bytes.length) throw new RangeError("truncated u64"); let r=0n; for(let i=0;i<8;i++) r=(r<<8n)|BigInt(bytes[at.value++]); return r; }
|
|
8
|
+
function u32(out: number[], value: number): void { if(!Number.isInteger(value)||value<0||value>0xffffffff)throw new RangeError("u32");out.push(value>>>24,(value>>>16)&255,(value>>>8)&255,value&255); }
|
|
9
|
+
function read32(bytes: Uint8Array, at: { value: number }): number { if(at.value+4>bytes.length)throw new RangeError("truncated u32");return ((bytes[at.value++]<<24)|(bytes[at.value++]<<16)|(bytes[at.value++]<<8)|bytes[at.value++])>>>0; }
|
|
10
|
+
function text8(out: number[], value: string): void { const b=text.encode(value); if(b.length===0 || b.length>255 || b.includes(0)) throw new RangeError("text8"); out.push(b.length,...b); }
|
|
11
|
+
function readText8(bytes: Uint8Array, at: { value: number }): string { const n=bytes[at.value++]; if(n===0 || at.value+n>bytes.length) throw new RangeError("truncated text8"); const b=bytes.slice(at.value,at.value+n); at.value+=n; if(b.includes(0))throw new RangeError("text8 NUL"); return decodeText.decode(b); }
|
|
12
|
+
function rid(out: number[], value: Uint8Array): void { if(value.length===0 || value.length>255) throw new RangeError("rid"); out.push(value.length,...value); }
|
|
13
|
+
function readRid(bytes: Uint8Array, at: { value: number }): Uint8Array { const n=bytes[at.value++]; if(n===0 || at.value+n>bytes.length) throw new RangeError("truncated rid"); const r=bytes.slice(at.value,at.value+n); at.value+=n; return r; }
|
|
14
|
+
function fence(out: number[], value: ServiceWireRouteFence): void { if(value.generation===0n||value.targetNodeGeneration===0n||value.expectedAuthorityOwnerGeneration===0n||value.expectedOwnerLeaseGeneration===0n)throw new RangeError("invalid fence");text8(out,value.id); u64(out,value.generation); rid(out,value.targetNodeRid); u64(out,value.targetNodeGeneration); u64(out,value.expectedAuthorityOwnerGeneration); u64(out,value.expectedOwnerLeaseGeneration); }
|
|
15
|
+
function readFence(bytes: Uint8Array, at: { value: number }): ServiceWireRouteFence { const value={ id:readText8(bytes,at), generation:read64(bytes,at), targetNodeRid:readRid(bytes,at), targetNodeGeneration:read64(bytes,at), expectedAuthorityOwnerGeneration:read64(bytes,at), expectedOwnerLeaseGeneration:read64(bytes,at) };if(value.generation===0n||value.targetNodeGeneration===0n||value.expectedAuthorityOwnerGeneration===0n||value.expectedOwnerLeaseGeneration===0n)throw new RangeError("invalid fence");return value; }
|
|
16
|
+
function encodePayload(value: ApplicationPayloadEnvelopeV1): Uint8Array { const body:number[]=[];text8(body,value.packetName);text8(body,value.contentType);u32(body,value.payload.length);body.push(...value.payload);const out=[1];u32(out,body.length);out.push(...body);return Uint8Array.from(out); }
|
|
17
|
+
function decodePayload(bytes: Uint8Array): ApplicationPayloadEnvelopeV1 { const at={value:0};if(bytes[at.value++]!==1)throw new RangeError("payload version");const length=read32(bytes,at);if(length!==bytes.length-at.value)throw new RangeError("payload length");const end=bytes.length;const packetName=readText8(bytes,at);const contentType=readText8(bytes,at);const length2=read32(bytes,at);if(length2!==end-at.value)throw new RangeError("payload bytes");const payload=bytes.slice(at.value);at.value=end;if(at.value!==end)throw new RangeError("payload trailing");return {packetName,contentType,payload}; }
|
|
18
|
+
export function encodeActorJoin28(value: ActorJoin28): readonly Uint8Array[] { const out=[90,77,1,28,0]; if(value.correlation===0n) throw new RangeError("correlation"); u64(out,value.correlation); fence(out,value.actor); out.push(value.entry?1:0); fence(out,value.targetSpot); return value.payload===undefined?[Uint8Array.from(out)]:[Uint8Array.from(out),encodePayload(value.payload)]; }
|
|
19
|
+
export function decodeActorJoin28(frames: readonly Uint8Array[]): ActorJoin28 { if(frames.length<1||frames.length>2)throw new RangeError("actorJoin frames");const bytes=frames[0]!; const at={value:0}; if(bytes.length<5 || bytes[at.value++]!==90 || bytes[at.value++]!==77 || bytes[at.value++]!==1 || bytes[at.value++]!==28 || bytes[at.value++]!==0) throw new RangeError("actorJoin header"); const correlation=read64(bytes,at); const actor=readFence(bytes,at); const entry=bytes[at.value++]; const targetSpot=readFence(bytes,at); if(correlation===0n || entry>1 || at.value!==bytes.length) throw new RangeError("actorJoin body"); const payload=frames.length===2?decodePayload(frames[1]!):undefined; return payload===undefined?{ correlation, actor, entry:entry===1, targetSpot }:{ correlation, actor, entry:entry===1, targetSpot,payload }; }
|
|
20
|
+
export type RelocationObjectIdentity = { readonly objectKind:"actor";readonly actorId:string;readonly objectGeneration:bigint;readonly expectedAuthorityOwnerGeneration:bigint; }|{ readonly objectKind:"userSpot";readonly spotId:string;readonly objectGeneration:bigint;readonly expectedAuthorityOwnerGeneration:bigint; }|{ readonly objectKind:"instanceSpot";readonly instanceType:string;readonly spotId:string;readonly objectGeneration:bigint; };
|
|
21
|
+
export interface RelocationEnvelopeV1 { readonly relocationHigh: bigint; readonly relocationLow: bigint; readonly object: RelocationObjectIdentity; readonly applicationVersion: bigint; readonly applicationStates: readonly { readonly participantId: bigint; readonly hasState: boolean; readonly payload: Uint8Array; }[]; readonly savedWork: readonly { readonly participantId: bigint; readonly order: bigint; readonly frozenRecord: Uint8Array; }[]; readonly timerRegistrations: readonly { readonly participantId: bigint; readonly name: string; readonly handlerType: string; readonly periodMilliseconds: bigint; readonly overrunPolicy: 1|2|3; readonly maxCatchUpTicks: bigint; readonly stopOnUnhandledException: boolean; readonly lastCompletedDeliveryIndex: bigint; readonly lastCompletedScheduledIndex: bigint; readonly nextScheduledAtUnixMilliseconds: bigint; }[]; readonly pendingTimerTicks: readonly { readonly participantId: bigint; readonly order: bigint; readonly timerName: string; readonly deliveryIndex: bigint; readonly scheduledIndex: bigint; readonly scheduledAtUnixMilliseconds: bigint; readonly skippedTicks: bigint; }[]; }
|
|
22
|
+
export interface RelocationDataChunkV1 { readonly order:number;readonly data:Uint8Array; }
|
|
23
|
+
export interface RelocationChunkEntryV1 { readonly order:number;readonly reference:string;readonly length:bigint;readonly checksumCrc32c:number; }
|
|
24
|
+
export interface RelocationManifestV1 { readonly logicalFormatVersion:1;readonly totalLength:bigint;readonly totalChecksumCrc32c:number;readonly inventoryDigestSha256:Uint8Array;readonly chunks:readonly RelocationChunkEntryV1[]; }
|
|
25
|
+
function bytes64(out:number[],v:Uint8Array):void{u64(out,BigInt(v.length));out.push(...v);}
|
|
26
|
+
function body16(out:number[],write:(b:number[])=>void):void{const b:number[]=[];write(b);if(b.length>65535)throw new RangeError("body16");out.push(b.length>>>8,b.length&255,...b);}
|
|
27
|
+
function body64(out:number[],write:(b:number[])=>void):void{const b:number[]=[];write(b);u64(out,BigInt(b.length));out.push(...b);}
|
|
28
|
+
function sorted<T>(v:readonly T[],compare:(a:T,b:T)=>number,name:string):void{for(let i=1;i<v.length;i++)if(compare(v[i-1],v[i])>=0)throw new RangeError(name);}
|
|
29
|
+
function read8(bytes:Uint8Array,at:{value:number}):number{if(at.value>=bytes.length)throw new RangeError("truncated u8");return bytes[at.value++]!;}
|
|
30
|
+
function read16(bytes:Uint8Array,at:{value:number}):number{if(at.value+2>bytes.length)throw new RangeError("truncated u16");return (bytes[at.value++]!<<8)|bytes[at.value++]!;}
|
|
31
|
+
function take(bytes:Uint8Array,at:{value:number},n:number,name:string):Uint8Array<ArrayBuffer>{if(!Number.isSafeInteger(n)||n<0||at.value+n>bytes.length)throw new RangeError("truncated "+name);const v=Uint8Array.from(bytes.subarray(at.value,at.value+n));at.value+=n;return v;}
|
|
32
|
+
function nonzero64(bytes:Uint8Array,at:{value:number},name:string):bigint{const v=read64(bytes,at);if(v===0n)throw new RangeError(name);return v;}
|
|
33
|
+
function readText16(bytes:Uint8Array,at:{value:number},minimum:number,maximum:number,name:string):string{const n=read16(bytes,at);if(n<minimum||n>maximum)throw new RangeError(name);const b=take(bytes,at,n,name);if(b.includes(0))throw new RangeError(name+" NUL");return decodeText.decode(b);}
|
|
34
|
+
function writeText16(out:number[],value:string,minimum:number,maximum:number,name:string):void{const b=text.encode(value);if(b.length<minimum||b.length>maximum||b.includes(0))throw new RangeError(name);out.push(b.length>>>8,b.length&255,...b);}
|
|
35
|
+
function boundedEnd(bytes:Uint8Array,at:{value:number},length:number,name:string):number{if(at.value+length>bytes.length)throw new RangeError("truncated "+name);return at.value+length;}
|
|
36
|
+
function exactEnd(at:{value:number},end:number,name:string):void{if(at.value!==end)throw new RangeError(name+" trailing");}
|
|
37
|
+
function skipRid(bytes:Uint8Array,at:{value:number}):void{const n=read8(bytes,at);if(n===0)throw new RangeError("rid minimumBytes");take(bytes,at,n,"rid");}
|
|
38
|
+
function skipFence(bytes:Uint8Array,at:{value:number}):void{readText8(bytes,at);nonzero64(bytes,at,"objectGeneration");skipRid(bytes,at);nonzero64(bytes,at,"targetNodeGeneration");nonzero64(bytes,at,"authorityOwnerGeneration");nonzero64(bytes,at,"ownerLeaseGeneration");}
|
|
39
|
+
function skipPayload(bytes:Uint8Array,at:{value:number}):void{if(read8(bytes,at)!==1)throw new RangeError("payload version");const end=boundedEnd(bytes,at,read32(bytes,at),"payload");readText8(bytes,at);readText8(bytes,at);take(bytes,at,read32(bytes,at),"payload bytes");exactEnd(at,end,"payload");}
|
|
40
|
+
function skipMembership(bytes:Uint8Array,at:{value:number}):void{readText8(bytes,at);nonzero64(bytes,at,"actor generation");readText8(bytes,at);nonzero64(bytes,at,"spot generation");}
|
|
41
|
+
function skipActorControl(bytes:Uint8Array,at:{value:number}):void{const kind=read8(bytes,at);const end=boundedEnd(bytes,at,read16(bytes,at),"actor control");if(kind===1||kind===4)skipMembership(bytes,at);else if(kind===2){const has=read8(bytes,at);const previousEnd=boundedEnd(bytes,at,read16(bytes,at),"optional membership");if(has===1)skipMembership(bytes,at);else if(has!==0)throw new RangeError("optional membership");exactEnd(at,previousEnd,"optional membership");skipMembership(bytes,at);}else if(kind===3){skipMembership(bytes,at);skipMembership(bytes,at);}else if(kind===5)skipMembership(bytes,at);else throw new RangeError("actor lifecycle kind");exactEnd(at,end,"actor control");}
|
|
42
|
+
function skipRelocationObject(bytes:Uint8Array,at:{value:number}):void{const kind=read8(bytes,at);const end=boundedEnd(bytes,at,read16(bytes,at),"relocation object");if(kind===1||kind===2){readText8(bytes,at);nonzero64(bytes,at,"object generation");nonzero64(bytes,at,"authority generation");}else if(kind===3){readText8(bytes,at);readText8(bytes,at);nonzero64(bytes,at,"object generation");}else throw new RangeError("object kind");exactEnd(at,end,"relocation object");}
|
|
43
|
+
function skipSendReady(bytes:Uint8Array,at:{value:number}):void{const kind=read8(bytes,at);const end=boundedEnd(bytes,at,read16(bytes,at),"send-ready destination");if(kind===1)skipRid(bytes,at);else if(kind===2)readText8(bytes,at);else if(kind===3||kind===4)skipFence(bytes,at);else if(kind===5){skipFence(bytes,at);nonzero64(bytes,at,"binding generation");}else throw new RangeError("destination kind");exactEnd(at,end,"send-ready destination");}
|
|
44
|
+
function skipRelocationControl(bytes:Uint8Array,at:{value:number}):void{if(read8(bytes,at)>9||![1,2,3].includes(read8(bytes,at)))throw new RangeError("relocation control");read64(bytes,at);read64(bytes,at);skipRelocationObject(bytes,at);read32(bytes,at);read32(bytes,at);}
|
|
45
|
+
function skipInstanceRoute(bytes:Uint8Array,at:{value:number}):void{const kind=read8(bytes,at);const end=boundedEnd(bytes,at,read16(bytes,at),"instance route");skipRid(bytes,at);nonzero64(bytes,at,"node generation");readText8(bytes,at);if(kind===1){nonzero64(bytes,at,"object generation");readText8(bytes,at);nonzero64(bytes,at,"authority generation");nonzero64(bytes,at,"lease generation");readText16(bytes,at,1,4096,"store version");}else if(kind===2){readText8(bytes,at);readText8(bytes,at);readText8(bytes,at);nonzero64(bytes,at,"deadline");}else throw new RangeError("instance route kind");exactEnd(at,end,"instance route");}
|
|
46
|
+
function skipFrozenSource(bytes:Uint8Array,at:{value:number}):void{const kind=read8(bytes,at);const end=boundedEnd(bytes,at,read16(bytes,at),"frozen source");skipRid(bytes,at);nonzero64(bytes,at,"source node generation");readText8(bytes,at);nonzero64(bytes,at,"source owner lease");if(kind===2)readText8(bytes,at);else if(kind===3||kind===4){readText8(bytes,at);nonzero64(bytes,at,"source actor generation");if(kind===4){skipRid(bytes,at);nonzero64(bytes,at,"binding generation");nonzero64(bytes,at,"session sequence");}}else if(kind!==1)throw new RangeError("source kind");exactEnd(at,end,"frozen source");}
|
|
47
|
+
function skipMetadata(bytes:Uint8Array,at:{value:number}):void{const start=at.value;if(read8(bytes,at)!==1)throw new RangeError("metadata version");const count=read8(bytes,at);const keys:string[]=[];for(let i=0;i<count;i++){keys.push(readText8(bytes,at));readText16(bytes,at,0,1024,"metadata value");}if(at.value-start>1024||new Set(keys).size!==keys.length)throw new RangeError("metadata");}
|
|
48
|
+
function skipFrozenBody(bytes:Uint8Array,at:{value:number},kind:number):void{if(kind===1||kind===2)skipPayload(bytes,at);else if(kind===3||kind===4){readText8(bytes,at);skipPayload(bytes,at);}else if(kind===5||kind===6){skipFence(bytes,at);skipPayload(bytes,at);}else if(kind===7){readText8(bytes,at);readText8(bytes,at);skipPayload(bytes,at);}else if(kind===8)skipActorControl(bytes,at);else if(kind===9||kind===10){skipFence(bytes,at);skipPayload(bytes,at);}else if(kind===11){read32(bytes,at);read32(bytes,at);const has=read8(bytes,at);if(has===1)skipPayload(bytes,at);else if(has!==0)throw new RangeError("completion payload");}else if(kind===12)skipSendReady(bytes,at);else if(kind===13)skipRelocationControl(bytes,at);else if(kind===14){skipInstanceRoute(bytes,at);nonzero64(bytes,at,"source node generation");if(![1,2].includes(read8(bytes,at)))throw new RangeError("instance operation");skipPayload(bytes,at);}else throw new RangeError("record kind");}
|
|
49
|
+
function skipFrozenRecord(bytes:Uint8Array,at:{value:number}):void{const kind=read8(bytes,at);if(kind<1||kind>14)throw new RangeError("record kind");skipFrozenSource(bytes,at);const hasMetadata=read8(bytes,at);if(hasMetadata===1)skipMetadata(bytes,at);else if(hasMetadata!==0)throw new RangeError("metadata flag");read64(bytes,at);read64(bytes,at);const operationKind=read32(bytes,at);if(operationKind>15)throw new RangeError("operation kind");const replyEnd=boundedEnd(bytes,at,read16(bytes,at),"reply route");if([1,2,3,4,12].includes(operationKind))nonzero64(bytes,at,"reply route");exactEnd(at,replyEnd,"reply route");skipFrozenBody(bytes,at,kind);}
|
|
50
|
+
function compareUtf8(a:string,b:string):number{const x=text.encode(a),y=text.encode(b),n=Math.min(x.length,y.length);for(let i=0;i<n;i++)if(x[i]!==y[i])return x[i]!-y[i]!;return x.length-y.length;}
|
|
51
|
+
function writeRelocationObject(out:number[],value:RelocationObjectIdentity):void{const kind=value.objectKind==="actor"?1:value.objectKind==="userSpot"?2:3;out.push(kind);body16(out,b=>{if(value.objectKind==="actor"){text8(b,value.actorId);if(value.objectGeneration===0n||value.expectedAuthorityOwnerGeneration===0n)throw new RangeError("object");u64(b,value.objectGeneration);u64(b,value.expectedAuthorityOwnerGeneration);}else if(value.objectKind==="userSpot"){text8(b,value.spotId);if(value.objectGeneration===0n||value.expectedAuthorityOwnerGeneration===0n)throw new RangeError("object");u64(b,value.objectGeneration);u64(b,value.expectedAuthorityOwnerGeneration);}else{text8(b,value.instanceType);text8(b,value.spotId);if(value.objectGeneration===0n)throw new RangeError("object");u64(b,value.objectGeneration);}});}
|
|
52
|
+
function readRelocationObject(bytes:Uint8Array,at:{value:number}):RelocationObjectIdentity{const kind=read8(bytes,at),end=boundedEnd(bytes,at,read16(bytes,at),"relocation object");let value:RelocationObjectIdentity;if(kind===1)value={objectKind:"actor",actorId:readText8(bytes,at),objectGeneration:nonzero64(bytes,at,"object generation"),expectedAuthorityOwnerGeneration:nonzero64(bytes,at,"authority generation")};else if(kind===2)value={objectKind:"userSpot",spotId:readText8(bytes,at),objectGeneration:nonzero64(bytes,at,"object generation"),expectedAuthorityOwnerGeneration:nonzero64(bytes,at,"authority generation")};else if(kind===3)value={objectKind:"instanceSpot",instanceType:readText8(bytes,at),spotId:readText8(bytes,at),objectGeneration:nonzero64(bytes,at,"object generation")};else throw new RangeError("object kind");exactEnd(at,end,"relocation object");return value;}
|
|
53
|
+
export function encodeRelocationEnvelopeV1(value:RelocationEnvelopeV1):Uint8Array{const out:number[]=[];if(value.relocationHigh===0n&&value.relocationLow===0n)throw new RangeError("relocation");u64(out,value.relocationHigh);u64(out,value.relocationLow);writeRelocationObject(out,value.object);if(value.applicationVersion<0n||value.applicationVersion>9223372036854775807n)throw new RangeError("application version");u64(out,value.applicationVersion);sorted(value.applicationStates,(a,b)=>a.participantId<b.participantId?-1:a.participantId>b.participantId?1:0,"applicationStates");if(value.applicationStates.length===0)throw new RangeError("applicationStates");u32(out,value.applicationStates.length);for(const s of value.applicationStates){if(s.participantId===0n)throw new RangeError("participant");u64(out,s.participantId);out.push(s.hasState?1:0);body64(out,b=>{if(s.hasState)bytes64(b,s.payload);else if(s.payload.length!==0)throw new RangeError("absent state payload");});}sorted(value.savedWork,(a,b)=>a.participantId===b.participantId?(a.order<b.order?-1:a.order>b.order?1:0):(a.participantId<b.participantId?-1:1),"savedWork");u32(out,value.savedWork.length);for(const w of value.savedWork){if(w.participantId===0n||w.order===0n)throw new RangeError("saved work");const at={value:0};skipFrozenRecord(w.frozenRecord,at);exactEnd(at,w.frozenRecord.length,"frozen record");u64(out,w.participantId);u64(out,w.order);out.push(...w.frozenRecord);}sorted(value.timerRegistrations,(a,b)=>a.participantId===b.participantId?compareUtf8(a.name,b.name):a.participantId<b.participantId?-1:1,"timerRegistrations");u32(out,value.timerRegistrations.length);for(const t of value.timerRegistrations){if(t.participantId===0n||t.periodMilliseconds===0n||t.maxCatchUpTicks===0n||t.overrunPolicy<1||t.overrunPolicy>3)throw new RangeError("timer");u64(out,t.participantId);text8(out,t.name);text8(out,t.handlerType);u64(out,t.periodMilliseconds);out.push(t.overrunPolicy);u64(out,t.maxCatchUpTicks);out.push(t.stopOnUnhandledException?1:0);u64(out,t.lastCompletedDeliveryIndex);u64(out,t.lastCompletedScheduledIndex);u64(out,t.nextScheduledAtUnixMilliseconds);}sorted(value.pendingTimerTicks,(a,b)=>a.participantId===b.participantId?(a.order<b.order?-1:a.order>b.order?1:0):(a.participantId<b.participantId?-1:1),"pendingTimerTicks");u32(out,value.pendingTimerTicks.length);for(const p of value.pendingTimerTicks){if(p.participantId===0n||p.order===0n||p.deliveryIndex===0n||p.scheduledIndex===0n)throw new RangeError("pending timer");u64(out,p.participantId);u64(out,p.order);text8(out,p.timerName);u64(out,p.deliveryIndex);u64(out,p.scheduledIndex);u64(out,p.scheduledAtUnixMilliseconds);u64(out,p.skippedTicks);}if(out.length>274877906944)throw new RangeError("relocation logical bytes");return Uint8Array.from(out);}
|
|
54
|
+
export function decodeRelocationEnvelopeV1(chunks:readonly Uint8Array[]):RelocationEnvelopeV1{const n=chunks.reduce((s,c)=>s+c.length,0);if(n>274877906944)throw new RangeError("relocation logical bytes");const bytes=new Uint8Array(n);let offset=0;for(const c of chunks){bytes.set(c,offset);offset+=c.length;}const at={value:0},relocationHigh=read64(bytes,at),relocationLow=read64(bytes,at);if(relocationHigh===0n&&relocationLow===0n)throw new RangeError("relocation");const object=readRelocationObject(bytes,at),applicationVersion=read64(bytes,at);if(applicationVersion>9223372036854775807n)throw new RangeError("application version");const applicationStates:RelocationEnvelopeV1["applicationStates"][number][]=[];const stateCount=read32(bytes,at);if(stateCount===0)throw new RangeError("applicationStates");for(let i=0,count=stateCount;i<count;i++){const participantId=nonzero64(bytes,at,"participant"),has=read8(bytes,at),end=boundedEnd(bytes,at,Number(read64(bytes,at)),"application state");if(has>1)throw new RangeError("application state");let payload=new Uint8Array();if(has===1)payload=take(bytes,at,Number(read64(bytes,at)),"state payload");exactEnd(at,end,"application state");applicationStates.push({participantId,hasState:has===1,payload});}const participants=new Set(applicationStates.map((s)=>s.participantId));const savedWork:RelocationEnvelopeV1["savedWork"][number][]=[];for(let i=0,count=read32(bytes,at);i<count;i++){const participantId=nonzero64(bytes,at,"participant");if(!participants.has(participantId))throw new RangeError("saved work participant");const order=nonzero64(bytes,at,"order"),start=at.value;skipFrozenRecord(bytes,at);savedWork.push({participantId,order,frozenRecord:bytes.slice(start,at.value)});}const timerRegistrations:RelocationEnvelopeV1["timerRegistrations"][number][]=[],registeredTimerNames=new Map<bigint,Set<string>>();for(let i=0,count=read32(bytes,at);i<count;i++){const participantId=nonzero64(bytes,at,"participant");if(!participants.has(participantId))throw new RangeError("timer participant");const name=readText8(bytes,at),handlerType=readText8(bytes,at),periodMilliseconds=nonzero64(bytes,at,"period"),overrunPolicy=read8(bytes,at);if(overrunPolicy<1||overrunPolicy>3)throw new RangeError("overrun policy");const maxCatchUpTicks=nonzero64(bytes,at,"catch-up"),stop=read8(bytes,at);if(stop>1)throw new RangeError("stop flag");let names=registeredTimerNames.get(participantId);if(names===undefined){names=new Set<string>();registeredTimerNames.set(participantId,names);}names.add(name);timerRegistrations.push({participantId,name,handlerType,periodMilliseconds,overrunPolicy:overrunPolicy as 1|2|3,maxCatchUpTicks,stopOnUnhandledException:stop===1,lastCompletedDeliveryIndex:read64(bytes,at),lastCompletedScheduledIndex:read64(bytes,at),nextScheduledAtUnixMilliseconds:read64(bytes,at)});}const pendingTimerTicks:RelocationEnvelopeV1["pendingTimerTicks"][number][]=[];for(let i=0,count=read32(bytes,at);i<count;i++){const participantId=nonzero64(bytes,at,"participant");if(!participants.has(participantId))throw new RangeError("pending timer participant");const order=nonzero64(bytes,at,"order"),timerName=readText8(bytes,at);if(registeredTimerNames.get(participantId)?.has(timerName)!==true)throw new RangeError("pending timer registration");pendingTimerTicks.push({participantId,order,timerName,deliveryIndex:nonzero64(bytes,at,"delivery"),scheduledIndex:nonzero64(bytes,at,"scheduled"),scheduledAtUnixMilliseconds:read64(bytes,at),skippedTicks:read64(bytes,at)});}exactEnd(at,bytes.length,"relocation envelope");sorted(applicationStates,(a,b)=>a.participantId<b.participantId?-1:a.participantId>b.participantId?1:0,"applicationStates");sorted(savedWork,(a,b)=>a.participantId===b.participantId?(a.order<b.order?-1:a.order>b.order?1:0):(a.participantId<b.participantId?-1:1),"savedWork");sorted(timerRegistrations,(a,b)=>a.participantId===b.participantId?compareUtf8(a.name,b.name):a.participantId<b.participantId?-1:1,"timerRegistrations");sorted(pendingTimerTicks,(a,b)=>a.participantId===b.participantId?(a.order<b.order?-1:a.order>b.order?1:0):(a.participantId<b.participantId?-1:1),"pendingTimerTicks");return{relocationHigh,relocationLow,object,applicationVersion,applicationStates,savedWork,timerRegistrations,pendingTimerTicks};}
|
|
55
|
+
function crc32c(bytes:Uint8Array):number{let crc=0xffffffff;for(const octet of bytes){crc^=octet;for(let bit=0;bit<8;bit++)crc=(crc>>>1)^((crc&1)!==0?0x82f63b78:0);}return(~crc)>>>0;}
|
|
56
|
+
function encodeDurable(magic:readonly number[],body:readonly number[],maximum:number):Uint8Array{const out=[...magic,1,0,0];u32(out,body.length);out.push(...body);if(out.length+4>maximum)throw new RangeError("durable format bytes");u32(out,crc32c(Uint8Array.from(out)));return Uint8Array.from(out);}
|
|
57
|
+
function decodeDurable(bytes:Uint8Array,magic:readonly number[],maximum:number):Uint8Array{if(bytes.length>maximum||bytes.length<15||magic.some((v,i)=>bytes[i]!==v)||bytes[4]!==1||bytes[5]!==0||bytes[6]!==0)throw new RangeError("durable header");const at={value:7},length=read32(bytes,at),end=boundedEnd(bytes,at,length,"durable body");if(end+4!==bytes.length)throw new RangeError("durable length");const body=bytes.slice(at.value,end);at.value=end;const expected=read32(bytes,at);if(crc32c(bytes.slice(0,end))!==expected)throw new RangeError("durable checksum");return body;}
|
|
58
|
+
export function encodeRelocationDataChunkV1(value:RelocationDataChunkV1):Uint8Array{const body:number[]=[];u32(body,value.order);if(value.data.length>67108864)throw new RangeError("chunk data");u32(body,value.data.length);body.push(...value.data);return encodeDurable([90,76,84,67],body,67108886);}
|
|
59
|
+
export function decodeRelocationDataChunkV1(bytes:Uint8Array):RelocationDataChunkV1{const body=decodeDurable(bytes,[90,76,84,67],67108886),at={value:0},order=read32(body,at),data=take(body,at,read32(body,at),"chunk data");exactEnd(at,body.length,"chunk");return{order,data};}
|
|
60
|
+
export function encodeRelocationManifestV1(value:RelocationManifestV1):Uint8Array{if(Number(value.logicalFormatVersion)!==1||value.totalLength>274877906944n||value.inventoryDigestSha256.length!==32||value.chunks.length>4096)throw new RangeError("manifest");sorted(value.chunks,(a,b)=>a.order-b.order,"manifest chunks");const body:number[]=[1];u64(body,value.totalLength);u32(body,value.totalChecksumCrc32c);body.push(32,...value.inventoryDigestSha256);u32(body,value.chunks.length);for(const chunk of value.chunks){if(chunk.length===0n)throw new RangeError("chunk length");u32(body,chunk.order);writeText16(body,chunk.reference,1,4096,"chunk reference");u64(body,chunk.length);u32(body,chunk.checksumCrc32c);}return encodeDurable([90,76,84,77],body,33554432);}
|
|
61
|
+
export function decodeRelocationManifestV1(bytes:Uint8Array):RelocationManifestV1{const body=decodeDurable(bytes,[90,76,84,77],33554432),at={value:0};if(read8(body,at)!==1)throw new RangeError("logical format version");const totalLength=read64(body,at);if(totalLength>274877906944n)throw new RangeError("logical length");const totalChecksumCrc32c=read32(body,at),digestLength=read8(body,at);if(digestLength!==32)throw new RangeError("inventory digest minimumBytes");const inventoryDigestSha256=take(body,at,digestLength,"inventory digest"),count=read32(body,at);if(count>4096)throw new RangeError("chunk count");const chunks:RelocationChunkEntryV1[]=[];for(let i=0;i<count;i++)chunks.push({order:read32(body,at),reference:readText16(body,at,1,4096,"chunk reference"),length:nonzero64(body,at,"chunk length"),checksumCrc32c:read32(body,at)});exactEnd(at,body.length,"manifest");sorted(chunks,(a,b)=>a.order-b.order,"manifest chunks");return{logicalFormatVersion:1,totalLength,totalChecksumCrc32c,inventoryDigestSha256,chunks};}
|
|
62
|
+
export interface LivenessProbe5 { readonly probeId: bigint; }
|
|
63
|
+
export function encodeLivenessProbe5(value: LivenessProbe5): Uint8Array { const out=[90,77,1,5,0]; if(value.probeId===0n) throw new RangeError("probeId"); u64(out,value.probeId); return Uint8Array.from(out); }
|
|
64
|
+
export function decodeLivenessProbe5(bytes: Uint8Array): LivenessProbe5 { const at={value:0}; if(bytes.length<5 || bytes[at.value++]!==90 || bytes[at.value++]!==77 || bytes[at.value++]!==1 || bytes[at.value++]!==5 || bytes[at.value++]!==0) throw new RangeError("livenessProbe header"); const probeId=read64(bytes,at); if(probeId===0n) throw new RangeError("probeId"); if(at.value!==bytes.length) throw new RangeError("livenessProbe trailing"); return { probeId }; }
|
|
65
|
+
export interface LivenessAck6 { readonly probeId: bigint; }
|
|
66
|
+
export function encodeLivenessAck6(value: LivenessAck6): Uint8Array { const out=[90,77,1,6,0]; if(value.probeId===0n) throw new RangeError("probeId"); u64(out,value.probeId); return Uint8Array.from(out); }
|
|
67
|
+
export function decodeLivenessAck6(bytes: Uint8Array): LivenessAck6 { const at={value:0}; if(bytes.length<5 || bytes[at.value++]!==90 || bytes[at.value++]!==77 || bytes[at.value++]!==1 || bytes[at.value++]!==6 || bytes[at.value++]!==0) throw new RangeError("livenessAck header"); const probeId=read64(bytes,at); if(probeId===0n) throw new RangeError("probeId"); if(at.value!==bytes.length) throw new RangeError("livenessAck trailing"); return { probeId }; }
|
|
68
|
+
export function encodeNodeSend16(): Uint8Array { const out=[90,77,1,16,0]; return Uint8Array.from(out); }
|
|
69
|
+
export function decodeNodeSend16(bytes: Uint8Array): void { const at={value:0}; if(bytes.length<5 || bytes[at.value++]!==90 || bytes[at.value++]!==77 || bytes[at.value++]!==1 || bytes[at.value++]!==16 || bytes[at.value++]!==0) throw new RangeError("nodeSend header"); if(at.value!==bytes.length) throw new RangeError("nodeSend trailing"); return undefined; }
|
|
70
|
+
export interface NodeRequest17 { readonly correlation: bigint; }
|
|
71
|
+
export function encodeNodeRequest17(value: NodeRequest17): Uint8Array { const out=[90,77,1,17,0]; if(value.correlation===0n) throw new RangeError("correlation"); u64(out,value.correlation); return Uint8Array.from(out); }
|
|
72
|
+
export function decodeNodeRequest17(bytes: Uint8Array): NodeRequest17 { const at={value:0}; if(bytes.length<5 || bytes[at.value++]!==90 || bytes[at.value++]!==77 || bytes[at.value++]!==1 || bytes[at.value++]!==17 || bytes[at.value++]!==0) throw new RangeError("nodeRequest header"); const correlation=read64(bytes,at); if(correlation===0n) throw new RangeError("correlation"); if(at.value!==bytes.length) throw new RangeError("nodeRequest trailing"); return { correlation }; }
|
|
73
|
+
export interface ChannelSend18 { readonly channelName: string; }
|
|
74
|
+
export function encodeChannelSend18(value: ChannelSend18): Uint8Array { const out=[90,77,1,18,0]; text8(out,value.channelName); return Uint8Array.from(out); }
|
|
75
|
+
export function decodeChannelSend18(bytes: Uint8Array): ChannelSend18 { const at={value:0}; if(bytes.length<5 || bytes[at.value++]!==90 || bytes[at.value++]!==77 || bytes[at.value++]!==1 || bytes[at.value++]!==18 || bytes[at.value++]!==0) throw new RangeError("channelSend header"); const channelName=readText8(bytes,at); if(at.value!==bytes.length) throw new RangeError("channelSend trailing"); return { channelName }; }
|
|
76
|
+
export interface ChannelRequest19 { readonly correlation: bigint; readonly channelName: string; }
|
|
77
|
+
export function encodeChannelRequest19(value: ChannelRequest19): Uint8Array { const out=[90,77,1,19,0]; if(value.correlation===0n) throw new RangeError("correlation"); u64(out,value.correlation); text8(out,value.channelName); return Uint8Array.from(out); }
|
|
78
|
+
export function decodeChannelRequest19(bytes: Uint8Array): ChannelRequest19 { const at={value:0}; if(bytes.length<5 || bytes[at.value++]!==90 || bytes[at.value++]!==77 || bytes[at.value++]!==1 || bytes[at.value++]!==19 || bytes[at.value++]!==0) throw new RangeError("channelRequest header"); const correlation=read64(bytes,at); if(correlation===0n) throw new RangeError("correlation"); const channelName=readText8(bytes,at); if(at.value!==bytes.length) throw new RangeError("channelRequest trailing"); return { correlation, channelName }; }
|
|
79
|
+
export interface LogicalMulticast23 { readonly channelName: string; readonly topic: string; readonly sourceSpotId: string; }
|
|
80
|
+
export function encodeLogicalMulticast23(value: LogicalMulticast23): Uint8Array { const out=[90,77,1,23,0]; text8(out,value.channelName); text8(out,value.topic); text8(out,value.sourceSpotId); return Uint8Array.from(out); }
|
|
81
|
+
export function decodeLogicalMulticast23(bytes: Uint8Array): LogicalMulticast23 { const at={value:0}; if(bytes.length<5 || bytes[at.value++]!==90 || bytes[at.value++]!==77 || bytes[at.value++]!==1 || bytes[at.value++]!==23 || bytes[at.value++]!==0) throw new RangeError("logicalMulticast header"); const channelName=readText8(bytes,at); const topic=readText8(bytes,at); const sourceSpotId=readText8(bytes,at); if(at.value!==bytes.length) throw new RangeError("logicalMulticast trailing"); return { channelName, topic, sourceSpotId }; }
|
|
82
|
+
export interface ActorLookup26 { readonly correlation: bigint; readonly actorId: string; }
|
|
83
|
+
export function encodeActorLookup26(value: ActorLookup26): Uint8Array { const out=[90,77,1,26,0]; if(value.correlation===0n) throw new RangeError("correlation"); u64(out,value.correlation); text8(out,value.actorId); return Uint8Array.from(out); }
|
|
84
|
+
export function decodeActorLookup26(bytes: Uint8Array): ActorLookup26 { const at={value:0}; if(bytes.length<5 || bytes[at.value++]!==90 || bytes[at.value++]!==77 || bytes[at.value++]!==1 || bytes[at.value++]!==26 || bytes[at.value++]!==0) throw new RangeError("actorLookup header"); const correlation=read64(bytes,at); if(correlation===0n) throw new RangeError("correlation"); const actorId=readText8(bytes,at); if(at.value!==bytes.length) throw new RangeError("actorLookup trailing"); return { correlation, actorId }; }
|
|
85
|
+
export interface ActorDestroy27 { readonly correlation: bigint; readonly actor: ServiceWireRouteFence; }
|
|
86
|
+
export function encodeActorDestroy27(value: ActorDestroy27): Uint8Array { const out=[90,77,1,27,0]; if(value.correlation===0n) throw new RangeError("correlation"); u64(out,value.correlation); fence(out,value.actor); return Uint8Array.from(out); }
|
|
87
|
+
export function decodeActorDestroy27(bytes: Uint8Array): ActorDestroy27 { const at={value:0}; if(bytes.length<5 || bytes[at.value++]!==90 || bytes[at.value++]!==77 || bytes[at.value++]!==1 || bytes[at.value++]!==27 || bytes[at.value++]!==0) throw new RangeError("actorDestroy header"); const correlation=read64(bytes,at); if(correlation===0n) throw new RangeError("correlation"); const actor=readFence(bytes,at); if(at.value!==bytes.length) throw new RangeError("actorDestroy trailing"); return { correlation, actor }; }
|
|
88
|
+
|
|
89
|
+
export interface ServiceWireOperationId { readonly high:bigint;readonly low:bigint; }
|
|
90
|
+
export interface ServiceWireRelocationId { readonly high:bigint;readonly low:bigint; }
|
|
91
|
+
export interface ServiceWireCoordinatorFence { readonly coordinatorOwnerId:string;readonly coordinatorLeaseGeneration:bigint;readonly coordinatorNodeRid:Uint8Array;readonly coordinatorNodeGeneration:bigint;readonly expectedAuthorityStoreVersion:string; }
|
|
92
|
+
export interface ServiceWireTargetFence { readonly targetNodeRid:Uint8Array;readonly targetNodeGeneration:bigint;readonly targetOwnerId:string;readonly targetOwnerLeaseGeneration:bigint; }
|
|
93
|
+
export interface ServiceWireActorRef { readonly actorId:string;readonly objectGeneration:bigint; }
|
|
94
|
+
export interface ServiceWireRequestSourceFence { readonly sourceOwnerId:string;readonly sourceOwnerLeaseGeneration:bigint;readonly sourceNodeRid:Uint8Array;readonly sourceNodeGeneration:bigint; }
|
|
95
|
+
export interface ServiceWireAuthorityFence { readonly objectGeneration:bigint;readonly ownerId:string;readonly authorityOwnerGeneration:bigint;readonly leaseGeneration:bigint;readonly storeVersion:string; }
|
|
96
|
+
export type ServiceWireRelocationRole="source"|"target"|"coordinator";
|
|
97
|
+
export type ServiceWireReplyRelayContext={readonly contextKind:"coldActivation";readonly completionKind:"readyBarrier"|"activationFailure";readonly authority:ServiceWireAuthorityFence}|{readonly contextKind:"maintenanceRelocation";readonly relocation:ServiceWireRelocationId;readonly targetAttemptGeneration:bigint;readonly coordinator:ServiceWireCoordinatorFence;readonly participantId:bigint;readonly sequence:bigint};
|
|
98
|
+
export type ServiceWireSessionRouteUpdate={readonly action:"commit";readonly previousAuthorityOwnerGeneration:bigint;readonly targetAuthorityOwnerGeneration:bigint;readonly targetNodeRid:Uint8Array;readonly targetNodeGeneration:bigint}|{readonly action:"abort";readonly currentAuthorityOwnerGeneration:bigint};
|
|
99
|
+
export interface ReplyRelay33 {readonly operation:ServiceWireOperationId;readonly replyRouteId:bigint;readonly context:ServiceWireReplyRelayContext;readonly terminalResult:number;readonly failureCode:number;readonly payload?:ApplicationPayloadEnvelopeV1;}
|
|
100
|
+
export interface ReplyRelayAck46 {readonly relocation:ServiceWireRelocationId;readonly coordinator:ServiceWireCoordinatorFence;readonly operation:ServiceWireOperationId;readonly replyRouteId:bigint;readonly requestSource:ServiceWireRequestSourceFence;readonly status:"terminalReceived"|"alreadyTerminal";}
|
|
101
|
+
export interface RelocationReady30 {readonly relocation:ServiceWireRelocationId;readonly targetAttemptGeneration:bigint;readonly coordinator:ServiceWireCoordinatorFence;readonly target:ServiceWireTargetFence;readonly object:RelocationObjectIdentity;readonly senderRole:ServiceWireRelocationRole;}
|
|
102
|
+
export interface RelocationData31 {readonly relocation:ServiceWireRelocationId;readonly targetAttemptGeneration:bigint;readonly coordinator:ServiceWireCoordinatorFence;readonly senderRole:ServiceWireRelocationRole;readonly object:RelocationObjectIdentity;readonly record:Uint8Array;}
|
|
103
|
+
export interface RelocationCutover34 {readonly relocation:ServiceWireRelocationId;readonly targetAttemptGeneration:bigint;readonly coordinator:ServiceWireCoordinatorFence;readonly senderRole:ServiceWireRelocationRole;readonly object:RelocationObjectIdentity;readonly boundaryRecordCount:bigint;readonly boundaryChecksumCrc32c:number;}
|
|
104
|
+
export interface RelocationPrepare40 {readonly relocation:ServiceWireRelocationId;readonly targetAttemptGeneration:bigint;readonly coordinator:ServiceWireCoordinatorFence;readonly target:ServiceWireTargetFence;readonly initiatorRole:ServiceWireRelocationRole;readonly object:RelocationObjectIdentity;readonly sourceNodeRid:Uint8Array;readonly sourceNodeGeneration:bigint;readonly payloadTotalLength:bigint;readonly payloadChunkCount:number;readonly payloadChecksumCrc32c:number;readonly applicationVersion:bigint;}
|
|
105
|
+
export interface SessionRelocationSeal42 {readonly relocation:ServiceWireRelocationId;readonly coordinator:ServiceWireCoordinatorFence;readonly senderRole:ServiceWireRelocationRole;readonly actor:ServiceWireRouteFence;readonly sessionOwnerNodeRid:Uint8Array;readonly sessionOwnerNodeGeneration:bigint;readonly sessionOwnerId:string;readonly sessionOwnerLeaseGeneration:bigint;readonly sessionRid:Uint8Array;readonly bindingGeneration:bigint;}
|
|
106
|
+
export type SessionRelocationSealed43=Omit<SessionRelocationSeal42,"senderRole">;
|
|
107
|
+
export interface SessionRelocationRoute44 {readonly relocation:ServiceWireRelocationId;readonly coordinator:ServiceWireCoordinatorFence;readonly senderRole:ServiceWireRelocationRole;readonly actor:ServiceWireActorRef;readonly sessionOwnerNodeRid:Uint8Array;readonly sessionOwnerNodeGeneration:bigint;readonly sessionOwnerId:string;readonly sessionOwnerLeaseGeneration:bigint;readonly sessionRid:Uint8Array;readonly bindingGeneration:bigint;readonly route:ServiceWireSessionRouteUpdate;}
|
|
108
|
+
export interface RelocationState52 {readonly relocation:ServiceWireRelocationId;readonly targetAttemptGeneration:bigint;readonly coordinator:ServiceWireCoordinatorFence;readonly senderRole:ServiceWireRelocationRole;readonly object:RelocationObjectIdentity;readonly chunkOrdinal:number;readonly chunkData:Uint8Array;}
|
|
109
|
+
export interface RelocationFailed53 {readonly relocation:ServiceWireRelocationId;readonly targetAttemptGeneration:bigint;readonly coordinator:ServiceWireCoordinatorFence;readonly target:ServiceWireTargetFence;readonly object:RelocationObjectIdentity;readonly senderRole:ServiceWireRelocationRole;readonly failureCode:number;}
|
|
110
|
+
function b3Header(id:number):number[]{return [90,77,1,id,0];}
|
|
111
|
+
function b3ReadHeader(bytes:Uint8Array,id:number,name:string):{value:number}{const at={value:0};if(bytes.length<5||bytes[at.value++]!==90||bytes[at.value++]!==77||bytes[at.value++]!==1||bytes[at.value++]!==id||bytes[at.value++]!==0)throw new RangeError(name+" header");return at;}
|
|
112
|
+
function b3WriteId(out:number[],v:ServiceWireOperationId|ServiceWireRelocationId,name:string):void{if(v.high===0n&&v.low===0n)throw new RangeError(name);u64(out,v.high);u64(out,v.low);}
|
|
113
|
+
function b3ReadId(bytes:Uint8Array,at:{value:number},name:string):ServiceWireRelocationId{const high=read64(bytes,at),low=read64(bytes,at);if(high===0n&&low===0n)throw new RangeError(name);return{high,low};}
|
|
114
|
+
function b3WriteCoordinator(out:number[],v:ServiceWireCoordinatorFence):void{text8(out,v.coordinatorOwnerId);if(v.coordinatorLeaseGeneration===0n||v.coordinatorNodeGeneration===0n)throw new RangeError("coordinator");u64(out,v.coordinatorLeaseGeneration);rid(out,v.coordinatorNodeRid);u64(out,v.coordinatorNodeGeneration);writeText16(out,v.expectedAuthorityStoreVersion,1,4096,"store version");}
|
|
115
|
+
function b3ReadCoordinator(bytes:Uint8Array,at:{value:number}):ServiceWireCoordinatorFence{return{coordinatorOwnerId:readText8(bytes,at),coordinatorLeaseGeneration:nonzero64(bytes,at,"coordinator lease"),coordinatorNodeRid:readRid(bytes,at),coordinatorNodeGeneration:nonzero64(bytes,at,"coordinator node"),expectedAuthorityStoreVersion:readText16(bytes,at,1,4096,"store version")};}
|
|
116
|
+
function b3WriteTarget(out:number[],v:ServiceWireTargetFence):void{rid(out,v.targetNodeRid);if(v.targetNodeGeneration===0n||v.targetOwnerLeaseGeneration===0n)throw new RangeError("target");u64(out,v.targetNodeGeneration);text8(out,v.targetOwnerId);u64(out,v.targetOwnerLeaseGeneration);}
|
|
117
|
+
function b3ReadTarget(bytes:Uint8Array,at:{value:number}):ServiceWireTargetFence{return{targetNodeRid:readRid(bytes,at),targetNodeGeneration:nonzero64(bytes,at,"target node"),targetOwnerId:readText8(bytes,at),targetOwnerLeaseGeneration:nonzero64(bytes,at,"target lease")};}
|
|
118
|
+
function b3WriteRole(out:number[],v:ServiceWireRelocationRole):void{out.push(({source:1,target:2,coordinator:3} satisfies Record<ServiceWireRelocationRole,number>)[v]);}
|
|
119
|
+
function b3ReadRole(bytes:Uint8Array,at:{value:number}):ServiceWireRelocationRole{const v=read8(bytes,at);if(v<1||v>3)throw new RangeError("role");return v===1?"source":v===2?"target":"coordinator";}
|
|
120
|
+
function b3WriteActorRef(out:number[],v:ServiceWireActorRef):void{text8(out,v.actorId);if(v.objectGeneration===0n)throw new RangeError("actor generation");u64(out,v.objectGeneration);}
|
|
121
|
+
function b3ReadActorRef(bytes:Uint8Array,at:{value:number}):ServiceWireActorRef{return{actorId:readText8(bytes,at),objectGeneration:nonzero64(bytes,at,"actor generation")};}
|
|
122
|
+
function b3WriteRequestSource(out:number[],v:ServiceWireRequestSourceFence):void{text8(out,v.sourceOwnerId);if(v.sourceOwnerLeaseGeneration===0n||v.sourceNodeGeneration===0n)throw new RangeError("request source");u64(out,v.sourceOwnerLeaseGeneration);rid(out,v.sourceNodeRid);u64(out,v.sourceNodeGeneration);}
|
|
123
|
+
function b3ReadRequestSource(bytes:Uint8Array,at:{value:number}):ServiceWireRequestSourceFence{return{sourceOwnerId:readText8(bytes,at),sourceOwnerLeaseGeneration:nonzero64(bytes,at,"source lease"),sourceNodeRid:readRid(bytes,at),sourceNodeGeneration:nonzero64(bytes,at,"source node")};}
|
|
124
|
+
function b3WriteAuthority(out:number[],v:ServiceWireAuthorityFence):void{if(v.objectGeneration===0n||v.authorityOwnerGeneration===0n||v.leaseGeneration===0n)throw new RangeError("authority");u64(out,v.objectGeneration);text8(out,v.ownerId);u64(out,v.authorityOwnerGeneration);u64(out,v.leaseGeneration);writeText16(out,v.storeVersion,1,4096,"store version");}
|
|
125
|
+
function b3ReadAuthority(bytes:Uint8Array,at:{value:number}):ServiceWireAuthorityFence{return{objectGeneration:nonzero64(bytes,at,"object generation"),ownerId:readText8(bytes,at),authorityOwnerGeneration:nonzero64(bytes,at,"authority generation"),leaseGeneration:nonzero64(bytes,at,"lease generation"),storeVersion:readText16(bytes,at,1,4096,"store version")};}
|
|
126
|
+
function b3WriteContext(out:number[],v:ServiceWireReplyRelayContext):void{out.push(v.contextKind==="coldActivation"?1:2);body16(out,b=>{if(v.contextKind==="coldActivation"){b.push(v.completionKind==="readyBarrier"?1:2);body16(b,x=>b3WriteAuthority(x,v.authority));}else{b3WriteId(b,v.relocation,"relocation");if(v.targetAttemptGeneration===0n||v.participantId===0n||v.sequence===0n)throw new RangeError("reply context");u64(b,v.targetAttemptGeneration);b3WriteCoordinator(b,v.coordinator);u64(b,v.participantId);u64(b,v.sequence);}});}
|
|
127
|
+
function b3ReadContext(bytes:Uint8Array,at:{value:number}):ServiceWireReplyRelayContext{const kind=read8(bytes,at),end=boundedEnd(bytes,at,read16(bytes,at),"reply context");let value:ServiceWireReplyRelayContext;if(kind===1){const completion=read8(bytes,at),inner=boundedEnd(bytes,at,read16(bytes,at),"cold activation");if(completion<1||completion>2)throw new RangeError("completion kind");const authority=b3ReadAuthority(bytes,at);exactEnd(at,inner,"cold activation");value={contextKind:"coldActivation",completionKind:completion===1?"readyBarrier":"activationFailure",authority};}else if(kind===2)value={contextKind:"maintenanceRelocation",relocation:b3ReadId(bytes,at,"relocation"),targetAttemptGeneration:nonzero64(bytes,at,"target attempt"),coordinator:b3ReadCoordinator(bytes,at),participantId:nonzero64(bytes,at,"participant"),sequence:nonzero64(bytes,at,"sequence")};else throw new RangeError("reply context kind");exactEnd(at,end,"reply context");return value;}
|
|
128
|
+
const b3FailureResults=new Map<number,number>([[1,102],[2,105],[3,107],[4,107],[5,105],[6,102],[7,107],[8,102],[9,102],[10,102],[11,102],[12,104],[13,105],[14,102],[15,106],[16,104],[17,105],[18,106],[19,105],[20,105],[21,107],[22,106],[33,107],[34,107],[35,105]]);
|
|
129
|
+
function b3ValidTerminal(result:number,failure:number,payload:boolean):void{const boundary=[101,103,108,109,110,111,112,113];if(result===0){if(failure!==0)throw new RangeError("terminal failure");return;}if(payload)throw new RangeError("failure payload");if(boundary.includes(result)){if(failure!==0)throw new RangeError("boundary failure");return;}if(b3FailureResults.get(failure)!==result)throw new RangeError("typed failure");}
|
|
130
|
+
function b3WriteRoute(out:number[],v:ServiceWireSessionRouteUpdate):void{out.push(v.action==="commit"?1:2);body16(out,b=>{if(v.action==="commit"){if(v.previousAuthorityOwnerGeneration===0n||v.targetAuthorityOwnerGeneration===0n||v.targetNodeGeneration===0n)throw new RangeError("route commit");u64(b,v.previousAuthorityOwnerGeneration);u64(b,v.targetAuthorityOwnerGeneration);rid(b,v.targetNodeRid);u64(b,v.targetNodeGeneration);}else{if(v.currentAuthorityOwnerGeneration===0n)throw new RangeError("route abort");u64(b,v.currentAuthorityOwnerGeneration);}});}
|
|
131
|
+
function b3ReadRoute(bytes:Uint8Array,at:{value:number}):ServiceWireSessionRouteUpdate{const action=read8(bytes,at),end=boundedEnd(bytes,at,read16(bytes,at),"session route");let value:ServiceWireSessionRouteUpdate;if(action===1)value={action:"commit",previousAuthorityOwnerGeneration:nonzero64(bytes,at,"previous authority"),targetAuthorityOwnerGeneration:nonzero64(bytes,at,"target authority"),targetNodeRid:readRid(bytes,at),targetNodeGeneration:nonzero64(bytes,at,"target node")};else if(action===2)value={action:"abort",currentAuthorityOwnerGeneration:nonzero64(bytes,at,"current authority")};else throw new RangeError("route action");exactEnd(at,end,"session route");return value;}
|
|
132
|
+
function b3WriteSession(out:number[],v:{readonly sessionOwnerNodeRid:Uint8Array;readonly sessionOwnerNodeGeneration:bigint;readonly sessionOwnerId:string;readonly sessionOwnerLeaseGeneration:bigint;readonly sessionRid:Uint8Array;readonly bindingGeneration:bigint}):void{rid(out,v.sessionOwnerNodeRid);if(v.sessionOwnerNodeGeneration===0n||v.sessionOwnerLeaseGeneration===0n||v.bindingGeneration===0n)throw new RangeError("session");u64(out,v.sessionOwnerNodeGeneration);text8(out,v.sessionOwnerId);u64(out,v.sessionOwnerLeaseGeneration);rid(out,v.sessionRid);u64(out,v.bindingGeneration);}
|
|
133
|
+
function b3ReadSession(bytes:Uint8Array,at:{value:number}){return{sessionOwnerNodeRid:readRid(bytes,at),sessionOwnerNodeGeneration:nonzero64(bytes,at,"session owner node"),sessionOwnerId:readText8(bytes,at),sessionOwnerLeaseGeneration:nonzero64(bytes,at,"session owner lease"),sessionRid:readRid(bytes,at),bindingGeneration:nonzero64(bytes,at,"binding generation")};}
|
|
134
|
+
function b3Finish(at:{value:number},bytes:Uint8Array,name:string):void{exactEnd(at,bytes.length,name);}
|
|
135
|
+
export function encodeReplyRelay33(v:ReplyRelay33):readonly Uint8Array[]{const o=b3Header(33);b3WriteId(o,v.operation,"operation");if(v.replyRouteId===0n)throw new RangeError("reply route");u64(o,v.replyRouteId);b3WriteContext(o,v.context);b3ValidTerminal(v.terminalResult,v.failureCode,v.payload!==undefined);if(v.context.contextKind==="coldActivation"&&v.context.completionKind==="activationFailure"&&v.terminalResult===0)throw new RangeError("activation failure terminal");u32(o,v.terminalResult);u32(o,v.failureCode);return v.payload===undefined?[Uint8Array.from(o)]:[Uint8Array.from(o),encodePayload(v.payload)];}
|
|
136
|
+
export function decodeReplyRelay33(frames:readonly Uint8Array[]):ReplyRelay33{if(frames.length<1||frames.length>2)throw new RangeError("replyRelay frames");const bytes=frames[0]!,at=b3ReadHeader(bytes,33,"replyRelay"),operation=b3ReadId(bytes,at,"operation"),replyRouteId=nonzero64(bytes,at,"reply route"),context=b3ReadContext(bytes,at),terminalResult=read32(bytes,at),failureCode=read32(bytes,at);b3Finish(at,bytes,"replyRelay");const payload=frames.length===2?decodePayload(frames[1]!):undefined;b3ValidTerminal(terminalResult,failureCode,payload!==undefined);if(context.contextKind==="coldActivation"&&context.completionKind==="activationFailure"&&terminalResult===0)throw new RangeError("activation failure terminal");return payload===undefined?{operation,replyRouteId,context,terminalResult,failureCode}:{operation,replyRouteId,context,terminalResult,failureCode,payload};}
|
|
137
|
+
export function encodeReplyRelayAck46(v:ReplyRelayAck46):Uint8Array{const o=b3Header(46);b3WriteId(o,v.relocation,"relocation");b3WriteCoordinator(o,v.coordinator);b3WriteId(o,v.operation,"operation");if(v.replyRouteId===0n)throw new RangeError("reply route");u64(o,v.replyRouteId);b3WriteRequestSource(o,v.requestSource);o.push(v.status==="terminalReceived"?1:2);return Uint8Array.from(o);}
|
|
138
|
+
export function decodeReplyRelayAck46(bytes:Uint8Array):ReplyRelayAck46{const at=b3ReadHeader(bytes,46,"replyRelayAck"),relocation=b3ReadId(bytes,at,"relocation"),coordinator=b3ReadCoordinator(bytes,at),operation=b3ReadId(bytes,at,"operation"),replyRouteId=nonzero64(bytes,at,"reply route"),requestSource=b3ReadRequestSource(bytes,at),status=read8(bytes,at);if(status<1||status>2)throw new RangeError("ack status");b3Finish(at,bytes,"replyRelayAck");return{relocation,coordinator,operation,replyRouteId,requestSource,status:status===1?"terminalReceived":"alreadyTerminal"};}
|
|
139
|
+
function b3WriteReadyBase(o:number[],v:RelocationReady30|RelocationFailed53):void{b3WriteId(o,v.relocation,"relocation");if(v.targetAttemptGeneration===0n)throw new RangeError("target attempt");u64(o,v.targetAttemptGeneration);b3WriteCoordinator(o,v.coordinator);b3WriteTarget(o,v.target);writeRelocationObject(o,v.object);b3WriteRole(o,v.senderRole);if(v.senderRole!=="target")throw new RangeError("sender role");}
|
|
140
|
+
function b3ReadReadyBase(bytes:Uint8Array,at:{value:number}){const relocation=b3ReadId(bytes,at,"relocation"),targetAttemptGeneration=nonzero64(bytes,at,"target attempt"),coordinator=b3ReadCoordinator(bytes,at),target=b3ReadTarget(bytes,at),object=readRelocationObject(bytes,at),senderRole=b3ReadRole(bytes,at);if(senderRole!=="target")throw new RangeError("sender role");return{relocation,targetAttemptGeneration,coordinator,target,object,senderRole};}
|
|
141
|
+
export function encodeRelocationReady30(v:RelocationReady30):Uint8Array{const o=b3Header(30);b3WriteReadyBase(o,v);return Uint8Array.from(o);}
|
|
142
|
+
export function decodeRelocationReady30(bytes:Uint8Array):RelocationReady30{const at=b3ReadHeader(bytes,30,"relocationReady"),v=b3ReadReadyBase(bytes,at);b3Finish(at,bytes,"relocationReady");return v;}
|
|
143
|
+
export function encodeRelocationFailed53(v:RelocationFailed53):Uint8Array{const o=b3Header(53);b3WriteReadyBase(o,v);if(!b3FailureResults.has(v.failureCode))throw new RangeError("failure code");u32(o,v.failureCode);return Uint8Array.from(o);}
|
|
144
|
+
export function decodeRelocationFailed53(bytes:Uint8Array):RelocationFailed53{const at=b3ReadHeader(bytes,53,"relocationFailed"),v=b3ReadReadyBase(bytes,at),failureCode=read32(bytes,at);if(!b3FailureResults.has(failureCode))throw new RangeError("failure code");b3Finish(at,bytes,"relocationFailed");return{...v,failureCode};}
|
|
145
|
+
function b3WriteSourceBase(o:number[],v:RelocationData31|RelocationCutover34|RelocationState52):void{b3WriteId(o,v.relocation,"relocation");if(v.targetAttemptGeneration===0n)throw new RangeError("target attempt");u64(o,v.targetAttemptGeneration);b3WriteCoordinator(o,v.coordinator);b3WriteRole(o,v.senderRole);if(v.senderRole!=="source")throw new RangeError("sender role");writeRelocationObject(o,v.object);}
|
|
146
|
+
function b3ReadSourceBase(bytes:Uint8Array,at:{value:number}){const relocation=b3ReadId(bytes,at,"relocation"),targetAttemptGeneration=nonzero64(bytes,at,"target attempt"),coordinator=b3ReadCoordinator(bytes,at),senderRole=b3ReadRole(bytes,at);if(senderRole!=="source")throw new RangeError("sender role");return{relocation,targetAttemptGeneration,coordinator,senderRole,object:readRelocationObject(bytes,at)};}
|
|
147
|
+
export function encodeRelocationData31(v:RelocationData31):Uint8Array{const o=b3Header(31);b3WriteSourceBase(o,v);const at={value:0};skipFrozenRecord(v.record,at);exactEnd(at,v.record.length,"frozen record");o.push(...v.record);return Uint8Array.from(o);}
|
|
148
|
+
export function decodeRelocationData31(bytes:Uint8Array):RelocationData31{const at=b3ReadHeader(bytes,31,"relocationData"),v=b3ReadSourceBase(bytes,at),start=at.value;skipFrozenRecord(bytes,at);const record=bytes.slice(start,at.value);b3Finish(at,bytes,"relocationData");return{...v,record};}
|
|
149
|
+
export function encodeRelocationCutover34(v:RelocationCutover34):Uint8Array{const o=b3Header(34);b3WriteSourceBase(o,v);if(v.boundaryRecordCount<0n||v.boundaryRecordCount>9223372036854775807n)throw new RangeError("boundary count");u64(o,v.boundaryRecordCount);u32(o,v.boundaryChecksumCrc32c);return Uint8Array.from(o);}
|
|
150
|
+
export function decodeRelocationCutover34(bytes:Uint8Array):RelocationCutover34{const at=b3ReadHeader(bytes,34,"relocationCutover"),v=b3ReadSourceBase(bytes,at),boundaryRecordCount=read64(bytes,at);if(boundaryRecordCount>9223372036854775807n)throw new RangeError("boundary count");const boundaryChecksumCrc32c=read32(bytes,at);b3Finish(at,bytes,"relocationCutover");return{...v,boundaryRecordCount,boundaryChecksumCrc32c};}
|
|
151
|
+
export function encodeRelocationState52(v:RelocationState52):Uint8Array{const o=b3Header(52);b3WriteSourceBase(o,v);if(v.chunkData.length>67108864)throw new RangeError("chunk data");u32(o,v.chunkOrdinal);u32(o,v.chunkData.length);o.push(...v.chunkData);return Uint8Array.from(o);}
|
|
152
|
+
export function decodeRelocationState52(bytes:Uint8Array):RelocationState52{const at=b3ReadHeader(bytes,52,"relocationState"),v=b3ReadSourceBase(bytes,at),chunkOrdinal=read32(bytes,at),length=read32(bytes,at);if(length>67108864)throw new RangeError("chunk data");const chunkData=take(bytes,at,length,"chunk data");b3Finish(at,bytes,"relocationState");return{...v,chunkOrdinal,chunkData};}
|
|
153
|
+
export function encodeRelocationPrepare40(v:RelocationPrepare40):Uint8Array{const o=b3Header(40);b3WriteId(o,v.relocation,"relocation");if(v.targetAttemptGeneration===0n||v.sourceNodeGeneration===0n)throw new RangeError("prepare");u64(o,v.targetAttemptGeneration);b3WriteCoordinator(o,v.coordinator);b3WriteTarget(o,v.target);b3WriteRole(o,v.initiatorRole);if(v.initiatorRole!=="source")throw new RangeError("initiator role");writeRelocationObject(o,v.object);rid(o,v.sourceNodeRid);u64(o,v.sourceNodeGeneration);if(v.payloadTotalLength<0n||v.payloadTotalLength>274877906944n||v.payloadChunkCount>4096||v.applicationVersion<0n||v.applicationVersion>9223372036854775807n)throw new RangeError("prepare bounds");u64(o,v.payloadTotalLength);u32(o,v.payloadChunkCount);u32(o,v.payloadChecksumCrc32c);u64(o,v.applicationVersion);return Uint8Array.from(o);}
|
|
154
|
+
export function decodeRelocationPrepare40(bytes:Uint8Array):RelocationPrepare40{const at=b3ReadHeader(bytes,40,"relocationPrepare"),relocation=b3ReadId(bytes,at,"relocation"),targetAttemptGeneration=nonzero64(bytes,at,"target attempt"),coordinator=b3ReadCoordinator(bytes,at),target=b3ReadTarget(bytes,at),initiatorRole=b3ReadRole(bytes,at);if(initiatorRole!=="source")throw new RangeError("initiator role");const object=readRelocationObject(bytes,at),sourceNodeRid=readRid(bytes,at),sourceNodeGeneration=nonzero64(bytes,at,"source node"),payloadTotalLength=read64(bytes,at),payloadChunkCount=read32(bytes,at),payloadChecksumCrc32c=read32(bytes,at),applicationVersion=read64(bytes,at);if(payloadTotalLength>274877906944n||payloadChunkCount>4096||applicationVersion>9223372036854775807n)throw new RangeError("prepare bounds");b3Finish(at,bytes,"relocationPrepare");return{relocation,targetAttemptGeneration,coordinator,target,initiatorRole,object,sourceNodeRid,sourceNodeGeneration,payloadTotalLength,payloadChunkCount,payloadChecksumCrc32c,applicationVersion};}
|
|
155
|
+
function b3WriteSealBase(o:number[],v:SessionRelocationSeal42|SessionRelocationSealed43,includeRole:boolean):void{b3WriteId(o,v.relocation,"relocation");b3WriteCoordinator(o,v.coordinator);if(includeRole){const role=(v as SessionRelocationSeal42).senderRole;b3WriteRole(o,role);if(role!=="source")throw new RangeError("sender role");}fence(o,v.actor);b3WriteSession(o,v);}
|
|
156
|
+
function b3ReadSealBase(bytes:Uint8Array,at:{value:number},includeRole:boolean){const relocation=b3ReadId(bytes,at,"relocation"),coordinator=b3ReadCoordinator(bytes,at);let senderRole:ServiceWireRelocationRole|undefined;if(includeRole){senderRole=b3ReadRole(bytes,at);if(senderRole!=="source")throw new RangeError("sender role");}const actor=readFence(bytes,at),session=b3ReadSession(bytes,at);return senderRole===undefined?{relocation,coordinator,actor,...session}:{relocation,coordinator,senderRole,actor,...session};}
|
|
157
|
+
export function encodeSessionRelocationSeal42(v:SessionRelocationSeal42):Uint8Array{const o=b3Header(42);b3WriteSealBase(o,v,true);return Uint8Array.from(o);}
|
|
158
|
+
export function decodeSessionRelocationSeal42(bytes:Uint8Array):SessionRelocationSeal42{const at=b3ReadHeader(bytes,42,"sessionRelocationSeal"),v=b3ReadSealBase(bytes,at,true) as SessionRelocationSeal42;b3Finish(at,bytes,"sessionRelocationSeal");return v;}
|
|
159
|
+
export function encodeSessionRelocationSealed43(v:SessionRelocationSealed43):Uint8Array{const o=b3Header(43);b3WriteSealBase(o,v,false);return Uint8Array.from(o);}
|
|
160
|
+
export function decodeSessionRelocationSealed43(bytes:Uint8Array):SessionRelocationSealed43{const at=b3ReadHeader(bytes,43,"sessionRelocationSealed"),v=b3ReadSealBase(bytes,at,false) as SessionRelocationSealed43;b3Finish(at,bytes,"sessionRelocationSealed");return v;}
|
|
161
|
+
export function encodeSessionRelocationRoute44(v:SessionRelocationRoute44):Uint8Array{const o=b3Header(44);b3WriteId(o,v.relocation,"relocation");b3WriteCoordinator(o,v.coordinator);b3WriteRole(o,v.senderRole);if((v.route.action==="commit"&&v.senderRole!=="target")||(v.route.action==="abort"&&v.senderRole!=="source"))throw new RangeError("route sender");b3WriteActorRef(o,v.actor);b3WriteSession(o,v);b3WriteRoute(o,v.route);return Uint8Array.from(o);}
|
|
162
|
+
export function decodeSessionRelocationRoute44(bytes:Uint8Array):SessionRelocationRoute44{const at=b3ReadHeader(bytes,44,"sessionRelocationRoute"),relocation=b3ReadId(bytes,at,"relocation"),coordinator=b3ReadCoordinator(bytes,at),senderRole=b3ReadRole(bytes,at),actor=b3ReadActorRef(bytes,at),session=b3ReadSession(bytes,at),route=b3ReadRoute(bytes,at);if((route.action==="commit"&&senderRole!=="target")||(route.action==="abort"&&senderRole!=="source"))throw new RangeError("route sender");b3Finish(at,bytes,"sessionRelocationRoute");return{relocation,coordinator,senderRole,actor,...session,route};}
|
|
163
|
+
|
|
164
|
+
export interface ServiceWireObjectReservationFence {readonly reservationId:string;readonly expectedStoreVersion:string;readonly objectGeneration:bigint;readonly authorityOwnerGeneration:bigint;readonly targetNodeRid:Uint8Array;readonly targetNodeGeneration:bigint;readonly targetOwnerId:string;readonly targetOwnerLeaseGeneration:bigint;readonly pendingCapacityDelta:number;}
|
|
165
|
+
export interface ServiceWireUserSpotCloseFenceV1 {readonly spotId:string;readonly objectGeneration:bigint;readonly targetNodeRid:Uint8Array;readonly targetNodeGeneration:bigint;readonly expectedAuthorityOwnerGeneration:bigint;readonly expectedStoreVersion:string;}
|
|
166
|
+
export interface UserSpotCreate47 {readonly correlation:bigint;readonly operation:ServiceWireOperationId;readonly sourceNodeRid:Uint8Array;readonly sourceNodeGeneration:bigint;readonly spotId:string;readonly stableType:string;readonly reservation:ServiceWireObjectReservationFence;readonly deadlineUnixMs:bigint;}
|
|
167
|
+
export interface UserSpotClose48 {readonly correlation:bigint;readonly operation:ServiceWireOperationId;readonly sourceNodeRid:Uint8Array;readonly sourceNodeGeneration:bigint;readonly target:ServiceWireUserSpotCloseFenceV1;readonly deadlineUnixMs:bigint;}
|
|
168
|
+
export interface ActorCreate49 {readonly correlation:bigint;readonly operation:ServiceWireOperationId;readonly sourceNodeRid:Uint8Array;readonly sourceNodeGeneration:bigint;readonly actorId:string;readonly stableType:string;readonly reservation:ServiceWireObjectReservationFence;readonly deadlineUnixMs:bigint;}
|
|
169
|
+
export interface ZljrNodeSourceV1 {readonly nodeRid:Uint8Array;readonly nodeGeneration:bigint;readonly ownerId:string;readonly ownerLeaseGeneration:bigint;}
|
|
170
|
+
export interface ZljrRecordV1 {readonly source:ZljrNodeSourceV1;readonly operation:ServiceWireOperationId;readonly metadata:Uint8Array;readonly request:Uint8Array;readonly reply:Uint8Array;}
|
|
171
|
+
function b4Header(id:number):number[]{return [90,77,1,id,0];}
|
|
172
|
+
function b4ReadHeader(bytes:Uint8Array,id:number,name:string):{value:number}{const at={value:0};if(bytes.length<5||bytes[at.value++]!==90||bytes[at.value++]!==77||bytes[at.value++]!==1||bytes[at.value++]!==id||bytes[at.value++]!==0)throw new RangeError(name+" header");return at;}
|
|
173
|
+
function b4Finish(at:{value:number},bytes:Uint8Array,name:string):void{if(at.value!==bytes.length)throw new RangeError(name+" trailing");}
|
|
174
|
+
function b4Reservation(out:number[],v:ServiceWireObjectReservationFence):void{text8(out,v.reservationId);writeText16(out,v.expectedStoreVersion,1,4096,"store version");if(v.objectGeneration===0n||v.authorityOwnerGeneration===0n||v.targetNodeGeneration===0n||v.targetOwnerLeaseGeneration===0n||!Number.isInteger(v.pendingCapacityDelta)||v.pendingCapacityDelta<1||v.pendingCapacityDelta>0xffffffff)throw new RangeError("reservation");u64(out,v.objectGeneration);u64(out,v.authorityOwnerGeneration);rid(out,v.targetNodeRid);u64(out,v.targetNodeGeneration);text8(out,v.targetOwnerId);u64(out,v.targetOwnerLeaseGeneration);u32(out,v.pendingCapacityDelta);}
|
|
175
|
+
function b4ReadReservation(bytes:Uint8Array,at:{value:number}):ServiceWireObjectReservationFence{return{reservationId:readText8(bytes,at),expectedStoreVersion:readText16(bytes,at,1,4096,"store version"),objectGeneration:nonzero64(bytes,at,"object generation"),authorityOwnerGeneration:nonzero64(bytes,at,"authority generation"),targetNodeRid:readRid(bytes,at),targetNodeGeneration:nonzero64(bytes,at,"target node generation"),targetOwnerId:readText8(bytes,at),targetOwnerLeaseGeneration:nonzero64(bytes,at,"target lease generation"),pendingCapacityDelta:(()=>{const v=read32(bytes,at);if(v===0)throw new RangeError("pending capacity");return v;})()};}
|
|
176
|
+
function b4Close(out:number[],v:ServiceWireUserSpotCloseFenceV1):void{const body:number[]=[];text8(body,v.spotId);if(v.objectGeneration===0n||v.targetNodeGeneration===0n||v.expectedAuthorityOwnerGeneration===0n)throw new RangeError("close fence");u64(body,v.objectGeneration);rid(body,v.targetNodeRid);u64(body,v.targetNodeGeneration);u64(body,v.expectedAuthorityOwnerGeneration);writeText16(body,v.expectedStoreVersion,1,4096,"store version");out.push(1);if(body.length>65535)throw new RangeError("close fence");out.push(body.length>>>8,body.length&255,...body);}
|
|
177
|
+
function b4ReadClose(bytes:Uint8Array,at:{value:number}):ServiceWireUserSpotCloseFenceV1{if(read8(bytes,at)!==1)throw new RangeError("close fence version");const end=boundedEnd(bytes,at,read16(bytes,at),"close fence");const value={spotId:readText8(bytes,at),objectGeneration:nonzero64(bytes,at,"object generation"),targetNodeRid:readRid(bytes,at),targetNodeGeneration:nonzero64(bytes,at,"target node generation"),expectedAuthorityOwnerGeneration:nonzero64(bytes,at,"authority generation"),expectedStoreVersion:readText16(bytes,at,1,4096,"store version")};exactEnd(at,end,"close fence");return value;}
|
|
178
|
+
function b4CommandBase(out:number[],v:{correlation:bigint;operation:ServiceWireOperationId;sourceNodeRid:Uint8Array;sourceNodeGeneration:bigint}):void{if(v.correlation===0n||v.sourceNodeGeneration===0n)throw new RangeError("command base");u64(out,v.correlation);b3WriteId(out,v.operation,"operation");rid(out,v.sourceNodeRid);u64(out,v.sourceNodeGeneration);}
|
|
179
|
+
function b4ReadCommandBase(bytes:Uint8Array,at:{value:number}):{correlation:bigint;operation:ServiceWireOperationId;sourceNodeRid:Uint8Array;sourceNodeGeneration:bigint}{return{correlation:nonzero64(bytes,at,"correlation"),operation:b3ReadId(bytes,at,"operation"),sourceNodeRid:readRid(bytes,at),sourceNodeGeneration:nonzero64(bytes,at,"source node generation")};}
|
|
180
|
+
export function encodeUserSpotCreate47(v:UserSpotCreate47):Uint8Array{const out=b4Header(47);b4CommandBase(out,v);text8(out,v.spotId);text8(out,v.stableType);b4Reservation(out,v.reservation);if(v.deadlineUnixMs===0n)throw new RangeError("deadline");u64(out,v.deadlineUnixMs);return Uint8Array.from(out);}
|
|
181
|
+
export function decodeUserSpotCreate47(bytes:Uint8Array):UserSpotCreate47{const at=b4ReadHeader(bytes,47,"userSpotCreate"),base=b4ReadCommandBase(bytes,at),spotId=readText8(bytes,at),stableType=readText8(bytes,at),reservation=b4ReadReservation(bytes,at),deadlineUnixMs=nonzero64(bytes,at,"deadline");b4Finish(at,bytes,"userSpotCreate");return{...base,spotId,stableType,reservation,deadlineUnixMs};}
|
|
182
|
+
export function encodeUserSpotClose48(v:UserSpotClose48):Uint8Array{const out=b4Header(48);b4CommandBase(out,v);b4Close(out,v.target);if(v.deadlineUnixMs===0n)throw new RangeError("deadline");u64(out,v.deadlineUnixMs);return Uint8Array.from(out);}
|
|
183
|
+
export function decodeUserSpotClose48(bytes:Uint8Array):UserSpotClose48{const at=b4ReadHeader(bytes,48,"userSpotClose"),base=b4ReadCommandBase(bytes,at),target=b4ReadClose(bytes,at),deadlineUnixMs=nonzero64(bytes,at,"deadline");b4Finish(at,bytes,"userSpotClose");return{...base,target,deadlineUnixMs};}
|
|
184
|
+
export function encodeActorCreate49(v:ActorCreate49):Uint8Array{const out=b4Header(49);b4CommandBase(out,v);text8(out,v.actorId);text8(out,v.stableType);b4Reservation(out,v.reservation);if(v.deadlineUnixMs===0n)throw new RangeError("deadline");u64(out,v.deadlineUnixMs);return Uint8Array.from(out);}
|
|
185
|
+
export function decodeActorCreate49(bytes:Uint8Array):ActorCreate49{const at=b4ReadHeader(bytes,49,"actorCreate"),base=b4ReadCommandBase(bytes,at),actorId=readText8(bytes,at),stableType=readText8(bytes,at),reservation=b4ReadReservation(bytes,at),deadlineUnixMs=nonzero64(bytes,at,"deadline");b4Finish(at,bytes,"actorCreate");return{...base,actorId,stableType,reservation,deadlineUnixMs};}
|
|
186
|
+
function b4ZljrPayload(v:ZljrRecordV1):Uint8Array{if(v.metadata.length>262144||v.request.length>1048576||v.reply.length>1048576)throw new RangeError("ZLJR length");const out=[90,76,74,82,1];u32(out,v.metadata.length);u32(out,v.request.length);u32(out,v.reply.length);out.push(...v.metadata,...v.request,...v.reply);return Uint8Array.from(out);}
|
|
187
|
+
function b4ReadZljrPayload(bytes:Uint8Array):{metadata:Uint8Array;request:Uint8Array;reply:Uint8Array}{const at={value:0};if(read32(bytes,at)!==0x5a4c4a52||read8(bytes,at)!==1)throw new RangeError("ZLJR header");const metadataLength=read32(bytes,at),requestLength=read32(bytes,at),replyLength=read32(bytes,at);if(metadataLength>262144||requestLength>1048576||replyLength>1048576)throw new RangeError("ZLJR length");const metadata=take(bytes,at,metadataLength,"ZLJR metadata"),request=take(bytes,at,requestLength,"ZLJR request"),reply=take(bytes,at,replyLength,"ZLJR reply");b4Finish(at,bytes,"ZLJR");return{metadata,request,reply};}
|
|
188
|
+
export function encodeZljrRecordV1(v:ZljrRecordV1):Uint8Array{if(v.source.nodeGeneration===0n||v.source.ownerLeaseGeneration===0n)throw new RangeError("ZLJR record");const source:number[]=[];rid(source,v.source.nodeRid);u64(source,v.source.nodeGeneration);text8(source,v.source.ownerId);u64(source,v.source.ownerLeaseGeneration);if(source.length>65535)throw new RangeError("ZLJR source");const payload=b4ZljrPayload(v),body:number[]=[];text8(body,"__zlink.actor.routed_join.recovery");text8(body,"application/x-zlink-actor-routed-join-recovery-v1");u32(body,payload.length);body.push(...payload);const out=[1,1,source.length>>>8,source.length&255,...source,0];u64(out,v.operation.high);u64(out,v.operation.low);u32(out,0);out.push(0,0,1);u32(out,body.length);out.push(...body);return Uint8Array.from(out);}
|
|
189
|
+
export function decodeZljrRecordV1(bytes:Uint8Array):ZljrRecordV1{const at={value:0};if(read8(bytes,at)!==1||read8(bytes,at)!==1)throw new RangeError("ZLJR frozen record");const sourceEnd=boundedEnd(bytes,at,read16(bytes,at),"ZLJR source"),nodeRid=readRid(bytes,at),nodeGeneration=nonzero64(bytes,at,"source node generation"),ownerId=readText8(bytes,at),ownerLeaseGeneration=nonzero64(bytes,at,"source owner lease");exactEnd(at,sourceEnd,"ZLJR source");if(read8(bytes,at)!==0)throw new RangeError("ZLJR metadata flag");const operation={high:read64(bytes,at),low:read64(bytes,at)};if(read32(bytes,at)!==0||read16(bytes,at)!==0||read8(bytes,at)!==1)throw new RangeError("ZLJR frozen record");const payloadEnd=boundedEnd(bytes,at,read32(bytes,at),"ZLJR payload"),packetName=readText8(bytes,at),contentType=readText8(bytes,at),payloadLength=read32(bytes,at);if(packetName!=="__zlink.actor.routed_join.recovery"||contentType!=="application/x-zlink-actor-routed-join-recovery-v1"||payloadLength!==payloadEnd-at.value)throw new RangeError("ZLJR payload");const payload=take(bytes,at,payloadLength,"ZLJR payload");exactEnd(at,payloadEnd,"ZLJR payload");b4Finish(at,bytes,"ZLJR record");return{source:{nodeRid,nodeGeneration,ownerId,ownerLeaseGeneration},operation,...b4ReadZljrPayload(payload)};}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import type { RoutingId } from '../contracts';
|
|
2
|
+
|
|
3
|
+
class ZLinkOpaqueRoutingId {
|
|
4
|
+
constructor(
|
|
5
|
+
private readonly text: string,
|
|
6
|
+
private readonly hex: string
|
|
7
|
+
) {}
|
|
8
|
+
|
|
9
|
+
toHex(): string {
|
|
10
|
+
return this.hex;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
toBytes(): Uint8Array {
|
|
14
|
+
return Buffer.from(this.hex, 'hex');
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
toString(): string {
|
|
18
|
+
return this.text;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function normalizeRoutingId(value: RoutingId | string): RoutingId {
|
|
23
|
+
const candidate = value as unknown;
|
|
24
|
+
if (candidate instanceof ZLinkOpaqueRoutingId) {
|
|
25
|
+
return candidate as unknown as RoutingId;
|
|
26
|
+
}
|
|
27
|
+
return String(value);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function normalizeOpaqueRoutingId(value: unknown): RoutingId {
|
|
31
|
+
if (typeof value === 'string') return value;
|
|
32
|
+
if (typeof value === 'object' && value !== null) {
|
|
33
|
+
const candidate = value as { toHex?: () => unknown; toString?: () => unknown };
|
|
34
|
+
if (typeof candidate.toHex === 'function') {
|
|
35
|
+
const hex = candidate.toHex.call(value);
|
|
36
|
+
if (typeof hex === 'string') {
|
|
37
|
+
return normalizeRoutingIdHex(hex);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (typeof candidate.toString === 'function') {
|
|
41
|
+
const text = candidate.toString.call(value);
|
|
42
|
+
if (typeof text === 'string' && text !== '[object Object]') return text;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
throw new TypeError('RoutingId must be a string or expose a string conversion.');
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export function decodeRoutingId(text: string, hex: unknown): RoutingId {
|
|
49
|
+
if (typeof hex !== 'string') {
|
|
50
|
+
return normalizeRoutingId(text);
|
|
51
|
+
}
|
|
52
|
+
const normalizedHex = normalizeRoutingIdHex(hex);
|
|
53
|
+
const bytes = Buffer.from(normalizedHex, 'hex');
|
|
54
|
+
const decoded = bytes.toString('utf8');
|
|
55
|
+
if (
|
|
56
|
+
Buffer.from(decoded, 'utf8').toString('hex') === normalizedHex
|
|
57
|
+
&& !/[\u0000-\u001f\u007f-\u009f]/u.test(decoded)
|
|
58
|
+
) {
|
|
59
|
+
return normalizeRoutingId(decoded);
|
|
60
|
+
}
|
|
61
|
+
return new ZLinkOpaqueRoutingId(text, normalizedHex) as unknown as RoutingId;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function routingIdWireHex(routingId: RoutingId): string | undefined {
|
|
65
|
+
const value = routingId as unknown as { toHex?: () => string };
|
|
66
|
+
return typeof value.toHex === 'function'
|
|
67
|
+
? value.toHex.call(routingId).toLowerCase()
|
|
68
|
+
: undefined;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export function encodeRoutingIdStorageHex(routingId: RoutingId): string {
|
|
72
|
+
const wireHex = routingIdWireHex(routingId);
|
|
73
|
+
if (wireHex !== undefined) {
|
|
74
|
+
return wireHex;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (typeof routingId !== 'string') {
|
|
78
|
+
throw new TypeError('RoutingId must be a string or expose toHex().');
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return Buffer.from(routingId, 'utf8').toString('hex');
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export function toBackendRoutingId(routingId: unknown): RoutingId {
|
|
85
|
+
if (typeof routingId === 'string') {
|
|
86
|
+
return routingId;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const value = routingId as unknown as {
|
|
90
|
+
toBytes?: () => Uint8Array;
|
|
91
|
+
toHex?: () => string;
|
|
92
|
+
};
|
|
93
|
+
if (typeof value.toBytes === 'function') {
|
|
94
|
+
const bytes = value.toBytes.call(routingId);
|
|
95
|
+
return new ZLinkOpaqueRoutingId(String(routingId), Buffer.from(bytes).toString('hex')) as unknown as RoutingId;
|
|
96
|
+
}
|
|
97
|
+
if (typeof value.toHex === 'function') {
|
|
98
|
+
return new ZLinkOpaqueRoutingId(
|
|
99
|
+
String(routingId),
|
|
100
|
+
normalizeRoutingIdHex(value.toHex.call(routingId))
|
|
101
|
+
) as unknown as RoutingId;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
throw new TypeError('RoutingId must be a string or expose toBytes() or toHex().');
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function normalizeRoutingIdHex(value: string): string {
|
|
108
|
+
const hex = value.toLowerCase();
|
|
109
|
+
if (hex.length === 0 || hex.length % 2 !== 0 || !/^[0-9a-f]+$/.test(hex)) {
|
|
110
|
+
throw new TypeError('RoutingId hex must contain a non-empty, even number of hexadecimal digits.');
|
|
111
|
+
}
|
|
112
|
+
return hex;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export function routingIdsEqual(
|
|
116
|
+
left: RoutingId | undefined,
|
|
117
|
+
right: RoutingId | undefined
|
|
118
|
+
): boolean {
|
|
119
|
+
if (left === undefined || right === undefined) {
|
|
120
|
+
return left === right;
|
|
121
|
+
}
|
|
122
|
+
if (left === right) return true;
|
|
123
|
+
if (typeof left === 'string' && typeof right === 'string') return false;
|
|
124
|
+
return encodeRoutingIdStorageHex(left) === encodeRoutingIdStorageHex(right);
|
|
125
|
+
}
|