@zlink-systems/framework 0.26.0 → 0.28.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/dist/.tsbuildinfo +1 -1
- package/dist/contracts/Actors/ZLinkActorClient.d.ts +1 -1
- package/dist/contracts/Channels/Calls.d.ts +1 -1
- package/dist/contracts/Common/CoreTypes.d.ts +6 -0
- package/dist/contracts/Common/CoreTypes.js +7 -0
- package/dist/contracts/Common/index.d.ts +1 -1
- package/dist/contracts/Common/index.js +0 -1
- package/dist/contracts/Configuration/Builders.d.ts +0 -1
- package/dist/contracts/Configuration/Configs.d.ts +0 -1
- package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
- package/dist/contracts/Configuration/InternalDefaults.js +9 -1
- package/dist/contracts/Configuration/Registration.d.ts +13 -2
- package/dist/contracts/Configuration/Registration.js +58 -36
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
- package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
- package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
- package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -5
- package/dist/contracts/Configuration/RegistrationValidators.js +15 -14
- package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
- package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
- package/dist/contracts/Handlers/JsonContract.js +10 -4
- package/dist/contracts/Locations/Authority.d.ts +1 -1
- package/dist/contracts/Locations/Authority.js +3 -2
- package/dist/contracts/Locations/Options.js +1 -1
- package/dist/contracts/Locations/Stores.d.ts +12 -0
- package/dist/contracts/Locations/Stores.js +9 -0
- package/dist/contracts/Spots/Contracts.d.ts +2 -2
- package/dist/contracts/Streams/BoundSessionContracts.d.ts +1 -1
- package/dist/contracts/Streams/IZLinkSession.d.ts +2 -3
- package/dist/contracts/Streams/IZLinkSessionActor.d.ts +2 -2
- package/dist/internal.d.ts +4 -0
- package/dist/internal.js +15 -1
- package/dist/nest-integration.d.ts +4 -2
- package/dist/nest-integration.js +14 -4
- package/dist/runtime/abort.d.ts +1 -0
- package/dist/runtime/abort.js +8 -5
- package/dist/runtime/activation-admission.d.ts +1 -2
- package/dist/runtime/activation-admission.js +2 -6
- package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
- package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
- package/dist/runtime/actors/actor-client.d.ts +2 -2
- package/dist/runtime/actors/actor-client.js +49 -153
- package/dist/runtime/actors/actor-context.d.ts +3 -5
- package/dist/runtime/actors/actor-context.js +13 -11
- package/dist/runtime/actors/actor-handoff.d.ts +4 -4
- package/dist/runtime/actors/actor-handoff.js +8 -8
- package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
- package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
- package/dist/runtime/actors/actor-local-native-join.js +83 -105
- package/dist/runtime/actors/actor-native-lookup.js +2 -8
- package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
- package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
- package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
- package/dist/runtime/actors/actor-remote-joiner.js +5 -9
- package/dist/runtime/actors/actor-remote-wire.js +5 -3
- package/dist/runtime/actors/actor-request-deadline.d.ts +1 -0
- package/dist/runtime/actors/actor-request-deadline.js +6 -0
- package/dist/runtime/actors/actor-retry-delay.js +2 -1
- package/dist/runtime/actors/actor-routed-join-transport.d.ts +2 -3
- package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
- package/dist/runtime/actors/actor-runtime-state.js +70 -187
- package/dist/runtime/actors/bound-session-wire.js +2 -7
- package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
- package/dist/runtime/actors/deferred-join-completion.js +1 -0
- package/dist/runtime/actors/index.d.ts +9 -7
- package/dist/runtime/actors/index.js +87 -69
- package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
- package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
- package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
- package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
- package/dist/runtime/admission.d.ts +2 -0
- package/dist/runtime/admission.js +7 -1
- package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
- package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
- package/dist/runtime/backend/contracts/index.d.ts +7 -27
- package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
- package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
- package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
- package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +3 -1
- package/dist/runtime/backend/node/node-backend-adapter-support.js +51 -10
- package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +1 -1
- package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +1 -2
- package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
- package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
- package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
- package/dist/runtime/backend/node/node-raw-binding-port.js +41 -34
- package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
- package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
- package/dist/runtime/backend/runtime-values.d.ts +4 -1
- package/dist/runtime/backend/runtime-values.js +2 -0
- package/dist/runtime/channels/channel-clients.d.ts +20 -8
- package/dist/runtime/channels/channel-clients.js +73 -59
- package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
- package/dist/runtime/channels/channel-envelope.d.ts +1 -1
- package/dist/runtime/channels/channel-envelope.js +51 -39
- package/dist/runtime/channels/channel-outbound-operations.d.ts +5 -2
- package/dist/runtime/channels/channel-outbound-operations.js +25 -42
- package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
- package/dist/runtime/channels/channel-receive-loops.js +27 -6
- package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
- package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
- package/dist/runtime/channels/channel-runtime-manager.d.ts +4 -4
- package/dist/runtime/channels/channel-runtime-manager.js +13 -10
- package/dist/runtime/channels/channel-socket-options.js +3 -12
- package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
- package/dist/runtime/channels/channel-socket-registry.js +240 -177
- package/dist/runtime/channels/channel-transports.d.ts +21 -31
- package/dist/runtime/channels/channel-transports.js +80 -62
- package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
- package/dist/runtime/channels/client-server-location-runtime.js +10 -11
- package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
- package/dist/runtime/channels/client-server-service-wire.js +32 -11
- package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
- package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
- package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
- package/dist/runtime/channels/fanout-location-runtime.js +130 -72
- package/dist/runtime/channels/local-spot-route-transport.d.ts +1 -1
- package/dist/runtime/channels/local-spot-route-transport.js +1 -3
- package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +1 -1
- package/dist/runtime/channels/router-socket-spot-route-transport.js +2 -2
- package/dist/runtime/channels/source-spot-router.d.ts +1 -1
- package/dist/runtime/channels/source-spot-router.js +2 -4
- package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
- package/dist/runtime/channels/spot-direct-envelope.js +4 -3
- package/dist/runtime/channels/spot-node-route-transport.d.ts +1 -1
- package/dist/runtime/channels/spot-node-route-transport.js +5 -5
- package/dist/runtime/channels/spot-route-bridge-transport.d.ts +1 -1
- package/dist/runtime/channels/spot-route-bridge-transport.js +2 -2
- package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +2 -4
- package/dist/runtime/channels/spot-route-dispatch-strategy.js +11 -12
- package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
- package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
- package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
- package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
- package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
- package/dist/runtime/diagnostics/flow-context.js +16 -2
- package/dist/runtime/diagnostics/index.d.ts +4 -2
- package/dist/runtime/diagnostics/index.js +14 -4
- package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
- package/dist/runtime/diagnostics/message-flow.js +10 -19
- package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
- package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
- package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
- package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
- package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
- package/dist/runtime/disposal.d.ts +5 -0
- package/dist/runtime/disposal.js +22 -0
- package/dist/runtime/execution/index.d.ts +12 -9
- package/dist/runtime/execution/index.js +58 -14
- package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
- package/dist/runtime/execution/serial-execution-queue.js +54 -15
- package/dist/runtime/execution/state-lane.d.ts +8 -1
- package/dist/runtime/execution/state-lane.js +118 -3
- package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
- package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
- package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
- package/dist/runtime/foundation/event-loop-resources.js +6 -119
- package/dist/runtime/foundation/operation-identity.d.ts +2 -0
- package/dist/runtime/foundation/operation-identity.js +9 -5
- package/dist/runtime/foundation/operation-registry.d.ts +5 -7
- package/dist/runtime/foundation/operation-registry.js +34 -44
- package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +79 -94
- package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
- package/dist/runtime/foundation/runtime-state-projections.js +8 -0
- package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
- package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
- package/dist/runtime/foundation/service-discovery-registry.js +22 -3
- package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
- package/dist/runtime/foundation/service-liveness-registry.js +2 -1
- package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
- package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
- package/dist/runtime/foundation/service-metadata-codec.js +3 -3
- package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
- package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
- package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
- package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
- package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
- package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
- package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
- package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
- package/dist/runtime/foundation/service-stateful-registry.js +10 -2
- package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
- package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
- package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
- package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
- package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
- package/dist/runtime/foundation/service-topology-registry.js +17 -32
- package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
- package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
- package/dist/runtime/foundation/service-wire-codec.js +10 -8
- package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
- package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
- package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
- package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
- package/dist/runtime/framework-errors-internal.d.ts +2 -1
- package/dist/runtime/framework-errors-internal.js +343 -122
- package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
- package/dist/runtime/handlers/handler-instance-scope.js +61 -74
- package/dist/runtime/host/actor-packet-relay.d.ts +11 -8
- package/dist/runtime/host/actor-packet-relay.js +54 -99
- package/dist/runtime/host/actor-placement-coordinator.js +7 -5
- package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
- package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
- package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
- package/dist/runtime/host/actor-transfer-runtime.js +143 -176
- package/dist/runtime/host/application-job-queue.js +16 -33
- package/dist/runtime/host/bound-session-relay.js +1 -1
- package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
- package/dist/runtime/host/index.d.ts +14 -13
- package/dist/runtime/host/index.js +190 -171
- package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
- package/dist/runtime/host/instance-activation-authority.js +17 -45
- package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
- package/dist/runtime/host/location-runtime-owner.js +2 -2
- package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
- package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
- package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
- package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
- package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
- package/dist/runtime/host/remote-bound-session-relay.js +15 -28
- package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
- package/dist/runtime/host/route-mesh-runtime.js +171 -252
- package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
- package/dist/runtime/host/runtime-shutdown.js +18 -21
- package/dist/runtime/host/service-relocation-control.js +6 -1
- package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
- package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
- package/dist/runtime/host/spot-address-transport.d.ts +3 -12
- package/dist/runtime/host/spot-address-transport.js +78 -220
- package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
- package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
- package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
- package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
- package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
- package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
- package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
- package/dist/runtime/locations/authority-key-codec.js +4 -3
- package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
- package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
- package/dist/runtime/locations/creation-operation-id.js +6 -4
- package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
- package/dist/runtime/locations/in-memory-authority-store.js +31 -15
- package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
- package/dist/runtime/locations/in-memory-location-store.js +17 -14
- package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
- package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
- package/dist/runtime/locations/key-codec.js +3 -2
- package/dist/runtime/locations/lease-tracker.d.ts +3 -5
- package/dist/runtime/locations/lease-tracker.js +7 -11
- package/dist/runtime/locations/lifecycle.d.ts +4 -9
- package/dist/runtime/locations/lifecycle.js +2 -31
- package/dist/runtime/locations/location-store-failure.d.ts +2 -0
- package/dist/runtime/locations/location-store-failure.js +7 -0
- package/dist/runtime/locations/location-store-pages.d.ts +3 -0
- package/dist/runtime/locations/location-store-pages.js +13 -0
- package/dist/runtime/locations/location-store-repository.d.ts +5 -7
- package/dist/runtime/locations/location-store-repository.js +309 -336
- package/dist/runtime/locations/relocation-blob.js +18 -5
- package/dist/runtime/locations/resolvers.d.ts +5 -5
- package/dist/runtime/locations/resolvers.js +37 -28
- package/dist/runtime/locations/runtime.d.ts +5 -4
- package/dist/runtime/locations/runtime.js +123 -92
- package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
- package/dist/runtime/locations/spot-location-claims.js +42 -1
- package/dist/runtime/messaging/payload-codec.js +26 -20
- package/dist/runtime/messaging/request-deadline.d.ts +3 -0
- package/dist/runtime/messaging/request-deadline.js +39 -0
- package/dist/runtime/messaging/submission-result.d.ts +4 -0
- package/dist/runtime/messaging/submission-result.js +56 -1
- package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
- package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
- package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
- package/dist/runtime/spots/index.d.ts +14 -20
- package/dist/runtime/spots/index.js +302 -176
- package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
- package/dist/runtime/spots/spot-activation-registry.js +14 -50
- package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
- package/dist/runtime/spots/spot-activation-state.js +2 -2
- package/dist/runtime/spots/spot-activation.d.ts +3 -4
- package/dist/runtime/spots/spot-activation.js +49 -32
- package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
- package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
- package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
- package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
- package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
- package/dist/runtime/spots/spot-actor-membership.js +22 -45
- package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
- package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
- package/dist/runtime/spots/spot-context.d.ts +2 -2
- package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
- package/dist/runtime/spots/spot-entry-activation.js +9 -20
- package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
- package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
- package/dist/runtime/spots/spot-manager-public.js +5 -4
- package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
- package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
- package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
- package/dist/runtime/spots/spot-outbound.d.ts +7 -8
- package/dist/runtime/spots/spot-outbound.js +21 -23
- package/dist/runtime/spots/spot-remote-codec.js +5 -3
- package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
- package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
- package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
- package/dist/runtime/spots/spot-route-replies.js +3 -1
- package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
- package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
- package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
- package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
- package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
- package/dist/runtime/spots/spot-serial-executor.js +2 -2
- package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
- package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
- package/dist/runtime/spots/spot-timer.d.ts +3 -2
- package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
- package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
- package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
- package/dist/runtime/streams/bound-actor-relay-sender.d.ts +8 -4
- package/dist/runtime/streams/bound-actor-relay-sender.js +65 -41
- package/dist/runtime/streams/bound-session-service.d.ts +7 -0
- package/dist/runtime/streams/bound-session-service.js +12 -2
- package/dist/runtime/streams/index.d.ts +16 -17
- package/dist/runtime/streams/index.js +22 -23
- package/dist/runtime/streams/managed-stream.d.ts +5 -2
- package/dist/runtime/streams/managed-stream.js +20 -13
- package/dist/runtime/streams/native-fallback-bound-session.js +14 -19
- package/dist/runtime/streams/protocol.d.ts +6 -33
- package/dist/runtime/streams/protocol.js +38 -110
- package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
- package/dist/runtime/streams/session-actor-coordinator.js +12 -4
- package/dist/runtime/streams/session-calls.d.ts +6 -8
- package/dist/runtime/streams/session-calls.js +6 -22
- package/dist/runtime/streams/session-context.d.ts +10 -10
- package/dist/runtime/streams/session-context.js +25 -10
- package/dist/runtime/streams/session-requests.js +2 -1
- package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
- package/dist/runtime/streams/stream-frame-factory.js +2 -2
- package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
- package/dist/runtime/streams/stream-session-runtime.js +25 -33
- package/dist/runtime/workers/index.d.ts +2 -2
- package/dist/runtime/workers/index.js +5 -4
- package/package.json +3 -3
- package/src/contracts/Actors/ZLinkActorClient.ts +1 -1
- package/src/contracts/Channels/Calls.ts +1 -1
- package/src/contracts/Common/CoreTypes.ts +7 -0
- package/src/contracts/Common/index.ts +1 -1
- package/src/contracts/Configuration/Builders.ts +0 -1
- package/src/contracts/Configuration/Configs.ts +0 -1
- package/src/contracts/Configuration/InternalDefaults.ts +12 -0
- package/src/contracts/Configuration/Registration.ts +92 -48
- package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
- package/src/contracts/Configuration/RegistrationBuilders.ts +77 -71
- package/src/contracts/Configuration/RegistrationTypes.ts +1 -5
- package/src/contracts/Configuration/RegistrationValidators.ts +19 -17
- package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
- package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
- package/src/contracts/Handlers/JsonContract.ts +14 -4
- package/src/contracts/Locations/Authority.ts +7 -3
- package/src/contracts/Locations/Options.ts +1 -1
- package/src/contracts/Locations/Stores.ts +14 -0
- package/src/contracts/Spots/Contracts.ts +2 -2
- package/src/contracts/Streams/BoundSessionContracts.ts +1 -1
- package/src/contracts/Streams/IZLinkSession.ts +2 -3
- package/src/contracts/Streams/IZLinkSessionActor.ts +2 -6
- package/src/internal.ts +14 -0
- package/src/nest-integration.ts +28 -10
- package/src/runtime/abort.ts +6 -5
- package/src/runtime/activation-admission.ts +2 -8
- package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
- package/src/runtime/actors/actor-client.ts +85 -218
- package/src/runtime/actors/actor-context.ts +39 -33
- package/src/runtime/actors/actor-handoff.ts +24 -22
- package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
- package/src/runtime/actors/actor-local-native-join.ts +172 -174
- package/src/runtime/actors/actor-native-lookup.ts +2 -9
- package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
- package/src/runtime/actors/actor-remote-joiner.ts +9 -11
- package/src/runtime/actors/actor-remote-wire.ts +5 -3
- package/src/runtime/actors/actor-request-deadline.ts +4 -0
- package/src/runtime/actors/actor-retry-delay.ts +2 -1
- package/src/runtime/actors/actor-routed-join-transport.ts +3 -5
- package/src/runtime/actors/actor-runtime-state.ts +85 -247
- package/src/runtime/actors/bound-session-wire.ts +2 -8
- package/src/runtime/actors/deferred-join-completion.ts +10 -6
- package/src/runtime/actors/index.ts +100 -79
- package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
- package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
- package/src/runtime/admission.ts +8 -1
- package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
- package/src/runtime/backend/contracts/index.ts +14 -37
- package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
- package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
- package/src/runtime/backend/node/node-backend-adapter-support.ts +67 -10
- package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +0 -2
- package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
- package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
- package/src/runtime/backend/node/node-raw-binding-port.ts +44 -49
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +4 -3
- package/src/runtime/backend/raw-binding-port.ts +1 -1
- package/src/runtime/backend/runtime-values.ts +4 -1
- package/src/runtime/channels/channel-clients.ts +139 -102
- package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
- package/src/runtime/channels/channel-envelope.ts +74 -57
- package/src/runtime/channels/channel-outbound-operations.ts +40 -55
- package/src/runtime/channels/channel-receive-loops.ts +39 -7
- package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
- package/src/runtime/channels/channel-runtime-manager.ts +12 -30
- package/src/runtime/channels/channel-socket-options.ts +8 -15
- package/src/runtime/channels/channel-socket-registry.ts +291 -196
- package/src/runtime/channels/channel-transports.ts +168 -145
- package/src/runtime/channels/client-server-location-runtime.ts +17 -17
- package/src/runtime/channels/client-server-service-wire.ts +40 -12
- package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
- package/src/runtime/channels/fanout-location-runtime.ts +172 -91
- package/src/runtime/channels/local-spot-route-transport.ts +1 -5
- package/src/runtime/channels/router-socket-spot-route-transport.ts +2 -6
- package/src/runtime/channels/source-spot-router.ts +2 -9
- package/src/runtime/channels/spot-direct-envelope.ts +1 -1
- package/src/runtime/channels/spot-node-route-transport.ts +7 -9
- package/src/runtime/channels/spot-route-bridge-transport.ts +5 -12
- package/src/runtime/channels/spot-route-dispatch-strategy.ts +11 -30
- package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
- package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
- package/src/runtime/diagnostics/flow-context.ts +16 -2
- package/src/runtime/diagnostics/index.ts +27 -17
- package/src/runtime/diagnostics/message-flow.ts +15 -25
- package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
- package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
- package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
- package/src/runtime/disposal.ts +19 -0
- package/src/runtime/execution/index.ts +60 -20
- package/src/runtime/execution/serial-execution-queue.ts +131 -18
- package/src/runtime/execution/state-lane.ts +142 -4
- package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
- package/src/runtime/foundation/event-loop-resources.ts +5 -122
- package/src/runtime/foundation/operation-identity.ts +11 -5
- package/src/runtime/foundation/operation-registry.ts +33 -50
- package/src/runtime/foundation/raw-service-mesh-runtime.ts +127 -125
- package/src/runtime/foundation/runtime-state-projections.ts +9 -1
- package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
- package/src/runtime/foundation/service-discovery-registry.ts +32 -3
- package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
- package/src/runtime/foundation/service-liveness-registry.ts +2 -1
- package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
- package/src/runtime/foundation/service-metadata-codec.ts +2 -2
- package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
- package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
- package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
- package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
- package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
- package/src/runtime/foundation/service-stateful-registry.ts +14 -2
- package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
- package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
- package/src/runtime/foundation/service-topology-registry.ts +23 -32
- package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
- package/src/runtime/foundation/service-wire-codec.ts +15 -8
- package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
- package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
- package/src/runtime/framework-errors-internal.ts +380 -134
- package/src/runtime/handlers/handler-instance-scope.ts +68 -95
- package/src/runtime/host/actor-packet-relay.ts +63 -160
- package/src/runtime/host/actor-placement-coordinator.ts +8 -5
- package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
- package/src/runtime/host/actor-transfer-runtime.ts +180 -260
- package/src/runtime/host/application-job-queue.ts +28 -34
- package/src/runtime/host/bound-session-relay.ts +1 -2
- package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
- package/src/runtime/host/index.ts +327 -320
- package/src/runtime/host/instance-activation-authority.ts +89 -109
- package/src/runtime/host/location-runtime-owner.ts +4 -2
- package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
- package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
- package/src/runtime/host/remote-bound-session-relay.ts +16 -57
- package/src/runtime/host/route-mesh-runtime.ts +228 -271
- package/src/runtime/host/runtime-shutdown.ts +17 -21
- package/src/runtime/host/service-relocation-control.ts +14 -1
- package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
- package/src/runtime/host/spot-address-transport.ts +175 -356
- package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
- package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
- package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
- package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
- package/src/runtime/locations/authority-key-codec.ts +7 -3
- package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
- package/src/runtime/locations/creation-operation-id.ts +6 -3
- package/src/runtime/locations/domain-store-contract.ts +12 -3
- package/src/runtime/locations/in-memory-authority-store.ts +44 -15
- package/src/runtime/locations/in-memory-location-store.ts +50 -39
- package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
- package/src/runtime/locations/key-codec.ts +3 -2
- package/src/runtime/locations/lease-tracker.ts +8 -14
- package/src/runtime/locations/lifecycle.ts +13 -43
- package/src/runtime/locations/location-store-failure.ts +4 -0
- package/src/runtime/locations/location-store-pages.ts +18 -0
- package/src/runtime/locations/location-store-repository.ts +457 -482
- package/src/runtime/locations/relocation-blob.ts +17 -6
- package/src/runtime/locations/resolvers.ts +75 -49
- package/src/runtime/locations/runtime.ts +220 -110
- package/src/runtime/locations/spot-location-claims.ts +58 -1
- package/src/runtime/messaging/payload-codec.ts +35 -24
- package/src/runtime/messaging/request-deadline.ts +58 -0
- package/src/runtime/messaging/submission-result.ts +72 -2
- package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
- package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
- package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
- package/src/runtime/spots/index.ts +433 -229
- package/src/runtime/spots/spot-activation-registry.ts +30 -69
- package/src/runtime/spots/spot-activation-state.ts +2 -2
- package/src/runtime/spots/spot-activation.ts +67 -37
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
- package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
- package/src/runtime/spots/spot-actor-membership.ts +40 -72
- package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
- package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
- package/src/runtime/spots/spot-context.ts +3 -3
- package/src/runtime/spots/spot-entry-activation.ts +13 -30
- package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
- package/src/runtime/spots/spot-manager-public.ts +21 -17
- package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
- package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
- package/src/runtime/spots/spot-outbound.ts +59 -47
- package/src/runtime/spots/spot-remote-codec.ts +7 -3
- package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
- package/src/runtime/spots/spot-route-replies.ts +6 -4
- package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
- package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
- package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
- package/src/runtime/spots/spot-runtime-ports.ts +5 -27
- package/src/runtime/spots/spot-serial-executor.ts +2 -2
- package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
- package/src/runtime/spots/spot-timer.ts +3 -2
- package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
- package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
- package/src/runtime/streams/bound-actor-relay-sender.ts +98 -66
- package/src/runtime/streams/bound-session-service.ts +22 -2
- package/src/runtime/streams/index.ts +78 -68
- package/src/runtime/streams/managed-stream.ts +32 -23
- package/src/runtime/streams/native-fallback-bound-session.ts +14 -28
- package/src/runtime/streams/protocol.ts +34 -88
- package/src/runtime/streams/session-actor-coordinator.ts +17 -5
- package/src/runtime/streams/session-calls.ts +11 -36
- package/src/runtime/streams/session-context.ts +60 -25
- package/src/runtime/streams/session-requests.ts +2 -1
- package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
- package/src/runtime/streams/stream-frame-factory.ts +2 -3
- package/src/runtime/streams/stream-session-runtime.ts +57 -59
- package/src/runtime/workers/index.ts +13 -12
- package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
- package/dist/runtime/actors/post-commit-actor-location.js +0 -72
- package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
- package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
- package/src/runtime/actors/post-commit-actor-location.ts +0 -121
- package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
|
@@ -9,7 +9,6 @@ const actor_packet_relay_wire_1 = require("../actors/actor-packet-relay-wire");
|
|
|
9
9
|
const bound_session_wire_1 = require("../actors/bound-session-wire");
|
|
10
10
|
const actor_routed_json_request_1 = require("../actors/actor-routed-json-request");
|
|
11
11
|
const protocol_1 = require("./protocol");
|
|
12
|
-
const abort_1 = require("../abort");
|
|
13
12
|
const packet_name_1 = require("../messaging/packet-name");
|
|
14
13
|
const flow_context_1 = require("../diagnostics/flow-context");
|
|
15
14
|
class ZLinkNativeFallbackBoundSession {
|
|
@@ -45,8 +44,7 @@ class ZLinkNativeFallbackBoundSession {
|
|
|
45
44
|
return;
|
|
46
45
|
}
|
|
47
46
|
await this.options.routedTransport.sendToSpot(target, payload, {
|
|
48
|
-
packetName: actors_1.ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET
|
|
49
|
-
signal
|
|
47
|
+
packetName: actors_1.ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET
|
|
50
48
|
});
|
|
51
49
|
return;
|
|
52
50
|
}
|
|
@@ -80,29 +78,27 @@ class ZLinkNativeFallbackBoundSessionSendCall {
|
|
|
80
78
|
this.selectedPacketName = packetName;
|
|
81
79
|
return this;
|
|
82
80
|
}
|
|
83
|
-
async submit(
|
|
81
|
+
async submit() {
|
|
84
82
|
if (this.executed) {
|
|
85
83
|
(0, submission_result_1.throwAlreadySubmitted)('Bound session send call');
|
|
86
84
|
}
|
|
87
85
|
const packetName = (0, packet_name_1.resolveFrameworkPacketName)(this.message, this.selectedPacketName, 'Bound session');
|
|
88
86
|
this.executed = true;
|
|
89
|
-
|
|
90
|
-
const result = await this.execute(packetName, signal);
|
|
87
|
+
const result = await this.execute(packetName);
|
|
91
88
|
(0, submission_result_1.requireOneWayCompletion)(result, 'Bound session send', framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorSessionNotBound);
|
|
92
89
|
}
|
|
93
|
-
execute(packetName
|
|
90
|
+
execute(packetName) {
|
|
94
91
|
// Call-scoped flow (spec 27 §4): the relay JSON flow pair and any nested
|
|
95
92
|
// routed-transport envelope share one ambient flow that does not outlive
|
|
96
93
|
// this submit call.
|
|
97
|
-
return (0, flow_context_1.runWithOutboundFlow)(this.options.flowCreationEnabled?.() ?? true, () => this.executeScoped(packetName
|
|
94
|
+
return (0, flow_context_1.runWithOutboundFlow)(this.options.flowCreationEnabled?.() ?? true, () => this.executeScoped(packetName));
|
|
98
95
|
}
|
|
99
|
-
async executeScoped(packetName
|
|
96
|
+
async executeScoped(packetName) {
|
|
100
97
|
const localActor = this.options.localActorProvider?.() === true;
|
|
101
98
|
const remoteTarget = this.options.remoteBoundSessionTargetProvider();
|
|
102
|
-
const sealedRemoteTarget = remoteTarget?.relocationSealId !== undefined;
|
|
103
99
|
let nativeAttempted = false;
|
|
104
|
-
if (localActor
|
|
105
|
-
const result = await this.options.runtime.submitLocalBoundSession(this.options.actorId, this.message, packetName, this.selectedMetadata
|
|
100
|
+
if (localActor) {
|
|
101
|
+
const result = await this.options.runtime.submitLocalBoundSession(this.options.actorId, this.message, packetName, this.selectedMetadata);
|
|
106
102
|
if (result.status !== submission_result_1.ZLinkSubmitStatus.TargetNotFound) {
|
|
107
103
|
this.traceSubmitted(result, packetName);
|
|
108
104
|
return result;
|
|
@@ -116,7 +112,7 @@ class ZLinkNativeFallbackBoundSessionSendCall {
|
|
|
116
112
|
const bindingGeneration = currentBindingGeneration(actorRef);
|
|
117
113
|
if (actorRef !== undefined && node !== undefined && bindingGeneration !== undefined) {
|
|
118
114
|
nativeAttempted = true;
|
|
119
|
-
const result = await this.options.runtime.sendNativeBoundSession(node, actorRef, this.message, packetName, this.selectedMetadata
|
|
115
|
+
const result = await this.options.runtime.sendNativeBoundSession(node, actorRef, this.message, packetName, this.selectedMetadata);
|
|
120
116
|
if (result.status !== submission_result_1.ZLinkSubmitStatus.TargetNotFound) {
|
|
121
117
|
this.traceSubmitted(result, packetName);
|
|
122
118
|
return result;
|
|
@@ -136,7 +132,6 @@ class ZLinkNativeFallbackBoundSessionSendCall {
|
|
|
136
132
|
actorNodeRidHex: actorRef?.nodeRid?.toHex?.(),
|
|
137
133
|
actorGeneration: actorRef?.objectGeneration.toString(),
|
|
138
134
|
actorOwnershipGeneration: ownershipGeneration?.toString(),
|
|
139
|
-
relocationSealId: remoteTarget.relocationSealId,
|
|
140
135
|
message: this.message,
|
|
141
136
|
boundPacketName: packetName,
|
|
142
137
|
metadata: this.selectedMetadata,
|
|
@@ -152,12 +147,12 @@ class ZLinkNativeFallbackBoundSessionSendCall {
|
|
|
152
147
|
targetNodeRid: remoteTarget.targetNodeRid,
|
|
153
148
|
spotId: remoteTarget.spotId,
|
|
154
149
|
spotKind: contracts_1.ZLinkSpotKind.Entry
|
|
155
|
-
}, payload, { packetName: actors_1.ZLINK_REMOTE_BOUND_SESSION_SEND_PACKET
|
|
156
|
-
: await submit.call(this.options.routedTransport, remoteTarget.routerChannelId, String(remoteTarget.targetNodeRid), actors_1.ZLINK_REMOTE_BOUND_SESSION_SEND_PACKET, payload
|
|
150
|
+
}, payload, { packetName: actors_1.ZLINK_REMOTE_BOUND_SESSION_SEND_PACKET })
|
|
151
|
+
: await submit.call(this.options.routedTransport, remoteTarget.routerChannelId, String(remoteTarget.targetNodeRid), actors_1.ZLINK_REMOTE_BOUND_SESSION_SEND_PACKET, payload);
|
|
157
152
|
this.traceSubmitted(result, packetName);
|
|
158
153
|
return result;
|
|
159
154
|
}
|
|
160
|
-
const localResult = await this.options.runtime.submitLocalBoundSession(this.options.actorId, this.message, packetName, this.selectedMetadata
|
|
155
|
+
const localResult = await this.options.runtime.submitLocalBoundSession(this.options.actorId, this.message, packetName, this.selectedMetadata);
|
|
161
156
|
if (localResult.status !== submission_result_1.ZLinkSubmitStatus.TargetNotFound) {
|
|
162
157
|
this.traceSubmitted(localResult, packetName);
|
|
163
158
|
return localResult;
|
|
@@ -169,14 +164,14 @@ class ZLinkNativeFallbackBoundSessionSendCall {
|
|
|
169
164
|
actorRef !== undefined &&
|
|
170
165
|
node !== undefined &&
|
|
171
166
|
bindingGeneration !== undefined) {
|
|
172
|
-
const result = await this.options.runtime.sendNativeBoundSession(node, actorRef, this.message, packetName, this.selectedMetadata
|
|
167
|
+
const result = await this.options.runtime.sendNativeBoundSession(node, actorRef, this.message, packetName, this.selectedMetadata);
|
|
173
168
|
this.traceSubmitted(result, packetName);
|
|
174
169
|
return result;
|
|
175
170
|
}
|
|
176
171
|
if (localActor) {
|
|
177
172
|
throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorSessionNotBound, `No current session binding exists for actor '${this.options.actorId}'.`, true);
|
|
178
173
|
}
|
|
179
|
-
const result = await this.options.runtime.sendBoundSession(this.options.actorId, this.message, packetName, this.selectedMetadata
|
|
174
|
+
const result = await this.options.runtime.sendBoundSession(this.options.actorId, this.message, packetName, this.selectedMetadata);
|
|
180
175
|
this.traceSubmitted(result, packetName);
|
|
181
176
|
return result;
|
|
182
177
|
}
|
|
@@ -1,40 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ZlinkStreamCloseReasonCode as ZLinkStreamCloseReasonCode, ZlinkStreamCodec as ZLinkStreamCodec, ZlinkStreamHeaderFlags as ZLinkStreamHeaderFlags, ZlinkStreamMessageKind as ZLinkStreamMessageKind } from '@zlink-systems/stream-wire';
|
|
2
2
|
import type { ZLinkFlowOrigin } from '../../contracts';
|
|
3
|
+
import type { Message } from '../../contracts/Common/Message';
|
|
4
|
+
export { ZlinkStreamMessageKind as ZLinkStreamMessageKind, ZlinkStreamHeaderFlags as ZLinkStreamHeaderFlags, ZlinkStreamCloseReasonCode as ZLinkStreamCloseReasonCode } from '@zlink-systems/stream-wire';
|
|
3
5
|
export { utf8Decode, utf8Encode } from '@zlink-systems/stream-wire';
|
|
4
|
-
export
|
|
5
|
-
Raw = 0,
|
|
6
|
-
Json = 1,
|
|
7
|
-
MessagePack = 2,
|
|
8
|
-
Protobuf = 3
|
|
9
|
-
}
|
|
6
|
+
export { ZlinkStreamCodec as ZLinkStreamCodec } from '@zlink-systems/stream-wire';
|
|
10
7
|
export declare function streamCodecContentType(codec: ZLinkStreamCodec): string;
|
|
11
8
|
export declare function streamCodecForContentType(contentType: string): ZLinkStreamCodec;
|
|
12
|
-
export declare
|
|
13
|
-
|
|
14
|
-
Request = 2,
|
|
15
|
-
Response = 3,
|
|
16
|
-
Error = 4,
|
|
17
|
-
Control = 5
|
|
18
|
-
}
|
|
19
|
-
export declare enum ZLinkStreamHeaderFlags {
|
|
20
|
-
None = 0,
|
|
21
|
-
HasRequestSeq = 1,
|
|
22
|
-
HasMetadata = 2,
|
|
23
|
-
PayloadCompressed = 4,
|
|
24
|
-
HasCorrelationId = 8,
|
|
25
|
-
HasFlowId = 16,
|
|
26
|
-
HasActorSlot = 32
|
|
27
|
-
}
|
|
28
|
-
export declare enum ZLinkStreamCloseReasonCode {
|
|
29
|
-
ClientClose = 1,
|
|
30
|
-
IdleTimeout = 2,
|
|
31
|
-
HeartbeatTimeout = 3,
|
|
32
|
-
ServerDrain = 4,
|
|
33
|
-
ProtocolError = 5,
|
|
34
|
-
TransportError = 6
|
|
35
|
-
}
|
|
36
|
-
export declare const ZLINK_STREAM_HEARTBEAT_PING = "$zlink.heartbeat.ping";
|
|
37
|
-
export declare const ZLINK_STREAM_HEARTBEAT_PONG = "$zlink.heartbeat.pong";
|
|
9
|
+
export declare const ZLINK_STREAM_HEARTBEAT_PING: "$zlink.heartbeat.ping";
|
|
10
|
+
export declare const ZLINK_STREAM_HEARTBEAT_PONG: "$zlink.heartbeat.pong";
|
|
38
11
|
export interface ZLinkStreamFrameHeader {
|
|
39
12
|
readonly kind: ZLinkStreamMessageKind;
|
|
40
13
|
readonly codec: ZLinkStreamCodec;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ZLINK_STREAM_HEARTBEAT_PONG = exports.ZLINK_STREAM_HEARTBEAT_PING = exports.
|
|
3
|
+
exports.ZLINK_STREAM_HEARTBEAT_PONG = exports.ZLINK_STREAM_HEARTBEAT_PING = exports.ZLinkStreamCodec = exports.utf8Encode = exports.utf8Decode = exports.ZLinkStreamCloseReasonCode = exports.ZLinkStreamHeaderFlags = exports.ZLinkStreamMessageKind = void 0;
|
|
4
4
|
exports.streamCodecContentType = streamCodecContentType;
|
|
5
5
|
exports.streamCodecForContentType = streamCodecForContentType;
|
|
6
6
|
exports.resolvePacketName = resolvePacketName;
|
|
@@ -20,79 +20,30 @@ exports.createStreamReplyHeader = createStreamReplyHeader;
|
|
|
20
20
|
exports.messageToBytes = messageToBytes;
|
|
21
21
|
exports.lz4Pickle = lz4Pickle;
|
|
22
22
|
exports.lz4Unpickle = lz4Unpickle;
|
|
23
|
-
const packet_name_1 = require("../messaging/packet-name");
|
|
24
23
|
const stream_wire_1 = require("@zlink-systems/stream-wire");
|
|
24
|
+
const packet_name_1 = require("../messaging/packet-name");
|
|
25
25
|
const submission_result_1 = require("../messaging/submission-result");
|
|
26
26
|
var stream_wire_2 = require("@zlink-systems/stream-wire");
|
|
27
|
-
Object.defineProperty(exports, "
|
|
28
|
-
Object.defineProperty(exports, "
|
|
29
|
-
|
|
27
|
+
Object.defineProperty(exports, "ZLinkStreamMessageKind", { enumerable: true, get: function () { return stream_wire_2.ZlinkStreamMessageKind; } });
|
|
28
|
+
Object.defineProperty(exports, "ZLinkStreamHeaderFlags", { enumerable: true, get: function () { return stream_wire_2.ZlinkStreamHeaderFlags; } });
|
|
29
|
+
Object.defineProperty(exports, "ZLinkStreamCloseReasonCode", { enumerable: true, get: function () { return stream_wire_2.ZlinkStreamCloseReasonCode; } });
|
|
30
|
+
var stream_wire_3 = require("@zlink-systems/stream-wire");
|
|
31
|
+
Object.defineProperty(exports, "utf8Decode", { enumerable: true, get: function () { return stream_wire_3.utf8Decode; } });
|
|
32
|
+
Object.defineProperty(exports, "utf8Encode", { enumerable: true, get: function () { return stream_wire_3.utf8Encode; } });
|
|
30
33
|
const actorRequestDeadlineMetadataKey = '$zlink.actor-request-deadline-unix-ms';
|
|
31
34
|
// Shared empty metadata for the dominant no-metadata frame; ReadonlyMap
|
|
32
35
|
// keeps every consumer from mutating it.
|
|
33
36
|
const EMPTY_STREAM_METADATA = new Map();
|
|
34
|
-
var
|
|
35
|
-
(function (
|
|
36
|
-
ZLinkStreamCodec[ZLinkStreamCodec["Raw"] = 0] = "Raw";
|
|
37
|
-
ZLinkStreamCodec[ZLinkStreamCodec["Json"] = 1] = "Json";
|
|
38
|
-
ZLinkStreamCodec[ZLinkStreamCodec["MessagePack"] = 2] = "MessagePack";
|
|
39
|
-
ZLinkStreamCodec[ZLinkStreamCodec["Protobuf"] = 3] = "Protobuf";
|
|
40
|
-
})(ZLinkStreamCodec || (exports.ZLinkStreamCodec = ZLinkStreamCodec = {}));
|
|
37
|
+
var stream_wire_4 = require("@zlink-systems/stream-wire");
|
|
38
|
+
Object.defineProperty(exports, "ZLinkStreamCodec", { enumerable: true, get: function () { return stream_wire_4.ZlinkStreamCodec; } });
|
|
41
39
|
function streamCodecContentType(codec) {
|
|
42
|
-
|
|
43
|
-
case ZLinkStreamCodec.Json:
|
|
44
|
-
return 'application/json';
|
|
45
|
-
case ZLinkStreamCodec.MessagePack:
|
|
46
|
-
return 'application/x-msgpack';
|
|
47
|
-
case ZLinkStreamCodec.Protobuf:
|
|
48
|
-
return 'application/x-protobuf';
|
|
49
|
-
case ZLinkStreamCodec.Raw:
|
|
50
|
-
return 'application/octet-stream';
|
|
51
|
-
}
|
|
52
|
-
throw new TypeError(`Unsupported STREAM codec '${codec}'.`);
|
|
40
|
+
return (0, stream_wire_1.streamCodecContentType)(codec);
|
|
53
41
|
}
|
|
54
42
|
function streamCodecForContentType(contentType) {
|
|
55
|
-
|
|
56
|
-
case 'application/json':
|
|
57
|
-
return ZLinkStreamCodec.Json;
|
|
58
|
-
case 'application/x-msgpack':
|
|
59
|
-
return ZLinkStreamCodec.MessagePack;
|
|
60
|
-
case 'application/x-protobuf':
|
|
61
|
-
return ZLinkStreamCodec.Protobuf;
|
|
62
|
-
case 'application/octet-stream':
|
|
63
|
-
return ZLinkStreamCodec.Raw;
|
|
64
|
-
}
|
|
65
|
-
throw new TypeError(`Unsupported STREAM content type '${contentType}'.`);
|
|
43
|
+
return (0, stream_wire_1.streamCodecForContentType)(contentType);
|
|
66
44
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
ZLinkStreamMessageKind[ZLinkStreamMessageKind["Send"] = 1] = "Send";
|
|
70
|
-
ZLinkStreamMessageKind[ZLinkStreamMessageKind["Request"] = 2] = "Request";
|
|
71
|
-
ZLinkStreamMessageKind[ZLinkStreamMessageKind["Response"] = 3] = "Response";
|
|
72
|
-
ZLinkStreamMessageKind[ZLinkStreamMessageKind["Error"] = 4] = "Error";
|
|
73
|
-
ZLinkStreamMessageKind[ZLinkStreamMessageKind["Control"] = 5] = "Control";
|
|
74
|
-
})(ZLinkStreamMessageKind || (exports.ZLinkStreamMessageKind = ZLinkStreamMessageKind = {}));
|
|
75
|
-
var ZLinkStreamHeaderFlags;
|
|
76
|
-
(function (ZLinkStreamHeaderFlags) {
|
|
77
|
-
ZLinkStreamHeaderFlags[ZLinkStreamHeaderFlags["None"] = 0] = "None";
|
|
78
|
-
ZLinkStreamHeaderFlags[ZLinkStreamHeaderFlags["HasRequestSeq"] = 1] = "HasRequestSeq";
|
|
79
|
-
ZLinkStreamHeaderFlags[ZLinkStreamHeaderFlags["HasMetadata"] = 2] = "HasMetadata";
|
|
80
|
-
ZLinkStreamHeaderFlags[ZLinkStreamHeaderFlags["PayloadCompressed"] = 4] = "PayloadCompressed";
|
|
81
|
-
ZLinkStreamHeaderFlags[ZLinkStreamHeaderFlags["HasCorrelationId"] = 8] = "HasCorrelationId";
|
|
82
|
-
ZLinkStreamHeaderFlags[ZLinkStreamHeaderFlags["HasFlowId"] = 16] = "HasFlowId";
|
|
83
|
-
ZLinkStreamHeaderFlags[ZLinkStreamHeaderFlags["HasActorSlot"] = 32] = "HasActorSlot";
|
|
84
|
-
})(ZLinkStreamHeaderFlags || (exports.ZLinkStreamHeaderFlags = ZLinkStreamHeaderFlags = {}));
|
|
85
|
-
var ZLinkStreamCloseReasonCode;
|
|
86
|
-
(function (ZLinkStreamCloseReasonCode) {
|
|
87
|
-
ZLinkStreamCloseReasonCode[ZLinkStreamCloseReasonCode["ClientClose"] = 1] = "ClientClose";
|
|
88
|
-
ZLinkStreamCloseReasonCode[ZLinkStreamCloseReasonCode["IdleTimeout"] = 2] = "IdleTimeout";
|
|
89
|
-
ZLinkStreamCloseReasonCode[ZLinkStreamCloseReasonCode["HeartbeatTimeout"] = 3] = "HeartbeatTimeout";
|
|
90
|
-
ZLinkStreamCloseReasonCode[ZLinkStreamCloseReasonCode["ServerDrain"] = 4] = "ServerDrain";
|
|
91
|
-
ZLinkStreamCloseReasonCode[ZLinkStreamCloseReasonCode["ProtocolError"] = 5] = "ProtocolError";
|
|
92
|
-
ZLinkStreamCloseReasonCode[ZLinkStreamCloseReasonCode["TransportError"] = 6] = "TransportError";
|
|
93
|
-
})(ZLinkStreamCloseReasonCode || (exports.ZLinkStreamCloseReasonCode = ZLinkStreamCloseReasonCode = {}));
|
|
94
|
-
exports.ZLINK_STREAM_HEARTBEAT_PING = '$zlink.heartbeat.ping';
|
|
95
|
-
exports.ZLINK_STREAM_HEARTBEAT_PONG = '$zlink.heartbeat.pong';
|
|
45
|
+
exports.ZLINK_STREAM_HEARTBEAT_PING = stream_wire_1.ZlinkStreamControlPacket.HeartbeatPing;
|
|
46
|
+
exports.ZLINK_STREAM_HEARTBEAT_PONG = stream_wire_1.ZlinkStreamControlPacket.HeartbeatPong;
|
|
96
47
|
function resolvePacketName(message, explicitPacketName) {
|
|
97
48
|
const packetName = (0, packet_name_1.resolveFrameworkPacketName)(message, explicitPacketName, 'Stream');
|
|
98
49
|
if (packetName.trim().length === 0) {
|
|
@@ -110,50 +61,27 @@ function encodeStreamFrame(header, payload) {
|
|
|
110
61
|
}
|
|
111
62
|
function encodeStreamControlFrame(name) {
|
|
112
63
|
return encodeStreamFrame({
|
|
113
|
-
kind:
|
|
114
|
-
codec:
|
|
115
|
-
flags:
|
|
64
|
+
kind: stream_wire_1.ZlinkStreamMessageKind.Control,
|
|
65
|
+
codec: stream_wire_1.ZlinkStreamCodec.Raw,
|
|
66
|
+
flags: stream_wire_1.ZlinkStreamHeaderFlags.None,
|
|
116
67
|
name,
|
|
117
68
|
metadata: EMPTY_STREAM_METADATA
|
|
118
69
|
}, new Uint8Array());
|
|
119
70
|
}
|
|
120
71
|
function encodeActorBoundFrame(actorSlot, actorId) {
|
|
121
|
-
|
|
122
|
-
if (actorIdBytes.length < 1 || actorIdBytes.length > 0xff) {
|
|
123
|
-
throw new Error('Actor id length is invalid for a STREAM binding control packet.');
|
|
124
|
-
}
|
|
125
|
-
const payload = new Uint8Array(4 + actorIdBytes.length);
|
|
126
|
-
payload[0] = 1;
|
|
127
|
-
payload[1] = actorSlot >>> 8;
|
|
128
|
-
payload[2] = actorSlot & 0xff;
|
|
129
|
-
payload[3] = actorIdBytes.length;
|
|
130
|
-
payload.set(actorIdBytes, 4);
|
|
131
|
-
return encodeStreamFrame(controlHeader('$zlink.actor.bound'), payload);
|
|
72
|
+
return encodeStreamFrame(controlHeader(stream_wire_1.ZlinkStreamControlPacket.ActorBound), (0, stream_wire_1.encodeStreamWireActorBoundPayload)(actorSlot, actorId));
|
|
132
73
|
}
|
|
133
74
|
function encodeActorUnboundFrame(actorSlot) {
|
|
134
|
-
|
|
135
|
-
payload[0] = 1;
|
|
136
|
-
payload[1] = actorSlot >>> 8;
|
|
137
|
-
payload[2] = actorSlot & 0xff;
|
|
138
|
-
return encodeStreamFrame(controlHeader('$zlink.actor.unbound'), payload);
|
|
75
|
+
return encodeStreamFrame(controlHeader(stream_wire_1.ZlinkStreamControlPacket.ActorUnbound), (0, stream_wire_1.encodeStreamWireActorUnboundPayload)(actorSlot));
|
|
139
76
|
}
|
|
140
|
-
function encodeSessionClosingFrame(diagnostic = '', reason =
|
|
141
|
-
const diagnosticBytes = (0, stream_wire_1.utf8Encode)(diagnostic);
|
|
142
|
-
if (diagnosticBytes.length > 512)
|
|
143
|
-
throw new Error('Session-closing diagnostic is too large.');
|
|
144
|
-
const payload = new Uint8Array(4 + diagnosticBytes.length);
|
|
145
|
-
payload[0] = 1;
|
|
146
|
-
payload[1] = reason;
|
|
147
|
-
payload[2] = diagnosticBytes.length >>> 8;
|
|
148
|
-
payload[3] = diagnosticBytes.length & 0xff;
|
|
149
|
-
payload.set(diagnosticBytes, 4);
|
|
77
|
+
function encodeSessionClosingFrame(diagnostic = '', reason = stream_wire_1.ZlinkStreamCloseReasonCode.ServerDrain) {
|
|
150
78
|
return encodeStreamFrame({
|
|
151
|
-
kind:
|
|
152
|
-
codec:
|
|
153
|
-
flags:
|
|
154
|
-
name:
|
|
79
|
+
kind: stream_wire_1.ZlinkStreamMessageKind.Control,
|
|
80
|
+
codec: stream_wire_1.ZlinkStreamCodec.Raw,
|
|
81
|
+
flags: stream_wire_1.ZlinkStreamHeaderFlags.None,
|
|
82
|
+
name: stream_wire_1.ZlinkStreamControlPacket.SessionClosing,
|
|
155
83
|
metadata: new Map()
|
|
156
|
-
},
|
|
84
|
+
}, (0, stream_wire_1.encodeStreamWireSessionClosingPayload)(reason, diagnostic));
|
|
157
85
|
}
|
|
158
86
|
function decodeStreamFrame(frame) {
|
|
159
87
|
return (0, stream_wire_1.decodeStreamWireFrame)(frame);
|
|
@@ -167,7 +95,7 @@ function encodeStreamHeader(header) {
|
|
|
167
95
|
const hasCorrelation = header.correlationId !== undefined && header.correlationId.length > 0;
|
|
168
96
|
const hasFlow = header.flowId !== undefined || header.flowOrigin !== undefined;
|
|
169
97
|
const hasActorSlot = header.actorSlot !== undefined;
|
|
170
|
-
if (header.kind ===
|
|
98
|
+
if (header.kind === stream_wire_1.ZlinkStreamMessageKind.Control &&
|
|
171
99
|
(hasCorrelation || hasRequestSeq || hasMetadata || hasFlow || hasActorSlot)) {
|
|
172
100
|
throw new Error('Control packet must not contain a request sequence, metadata, correlation id, or flow id.');
|
|
173
101
|
}
|
|
@@ -190,12 +118,12 @@ function decodeStreamHeader(header, flowEnabled = true) {
|
|
|
190
118
|
const decoded = (0, stream_wire_1.decodeStreamWireHeader)(header, undefined, flowEnabled);
|
|
191
119
|
const kind = decoded.kind;
|
|
192
120
|
const flags = decoded.flags;
|
|
193
|
-
const hasRequestSeq = (flags &
|
|
194
|
-
const hasMetadata = (flags &
|
|
195
|
-
const hasCorrelation = (flags &
|
|
196
|
-
const hasFlow = (flags &
|
|
197
|
-
const hasActorSlot = (flags &
|
|
198
|
-
if (kind ===
|
|
121
|
+
const hasRequestSeq = (flags & stream_wire_1.ZlinkStreamHeaderFlags.HasRequestSeq) !== 0;
|
|
122
|
+
const hasMetadata = (flags & stream_wire_1.ZlinkStreamHeaderFlags.HasMetadata) !== 0;
|
|
123
|
+
const hasCorrelation = (flags & stream_wire_1.ZlinkStreamHeaderFlags.HasCorrelationId) !== 0;
|
|
124
|
+
const hasFlow = (flags & stream_wire_1.ZlinkStreamHeaderFlags.HasFlowId) !== 0;
|
|
125
|
+
const hasActorSlot = (flags & stream_wire_1.ZlinkStreamHeaderFlags.HasActorSlot) !== 0;
|
|
126
|
+
if (kind === stream_wire_1.ZlinkStreamMessageKind.Control &&
|
|
199
127
|
(hasCorrelation || hasRequestSeq || hasMetadata || hasFlow || hasActorSlot)) {
|
|
200
128
|
throw new Error('Control packet must not contain a request sequence, metadata, correlation id, or flow id.');
|
|
201
129
|
}
|
|
@@ -203,8 +131,8 @@ function decodeStreamHeader(header, flowEnabled = true) {
|
|
|
203
131
|
return {
|
|
204
132
|
kind,
|
|
205
133
|
codec: decoded.codec,
|
|
206
|
-
flags: (metadata.size === 0 ? flags & ~
|
|
207
|
-
(flowEnabled ? ~0 : ~
|
|
134
|
+
flags: (metadata.size === 0 ? flags & ~stream_wire_1.ZlinkStreamHeaderFlags.HasMetadata : flags) &
|
|
135
|
+
(flowEnabled ? ~0 : ~stream_wire_1.ZlinkStreamHeaderFlags.HasFlowId),
|
|
208
136
|
requestSeq: decoded.requestSeq,
|
|
209
137
|
name: decoded.name,
|
|
210
138
|
metadata,
|
|
@@ -254,9 +182,9 @@ function createStreamReplyHeader(requestHeader, kind, codec, flags, metadata, in
|
|
|
254
182
|
}
|
|
255
183
|
function controlHeader(name) {
|
|
256
184
|
return {
|
|
257
|
-
kind:
|
|
258
|
-
codec:
|
|
259
|
-
flags:
|
|
185
|
+
kind: stream_wire_1.ZlinkStreamMessageKind.Control,
|
|
186
|
+
codec: stream_wire_1.ZlinkStreamCodec.Raw,
|
|
187
|
+
flags: stream_wire_1.ZlinkStreamHeaderFlags.None,
|
|
260
188
|
name,
|
|
261
189
|
metadata: EMPTY_STREAM_METADATA
|
|
262
190
|
};
|
|
@@ -287,6 +215,6 @@ function messageToBytes(message) {
|
|
|
287
215
|
function lz4Pickle(payload) {
|
|
288
216
|
return (0, stream_wire_1.lz4PickleUncompressed)(payload);
|
|
289
217
|
}
|
|
290
|
-
function lz4Unpickle(payload, maxDecompressedSize = defaultMaxDecompressedPayloadSize) {
|
|
218
|
+
function lz4Unpickle(payload, maxDecompressedSize = stream_wire_1.defaultMaxDecompressedPayloadSize) {
|
|
291
219
|
return (0, stream_wire_1.lz4UnpicklePayload)(payload, maxDecompressedSize);
|
|
292
220
|
}
|
|
@@ -3,6 +3,7 @@ import type { ZLinkRuntimeMetrics } from '../diagnostics';
|
|
|
3
3
|
import { ZLinkActorSessionBindingRegistry, type ZLinkActorSessionAuthorityFence } from './actor-session-binding-registry';
|
|
4
4
|
import { ZLinkActorSessionLifecycleCoordinator } from './actor-session-lifecycle-coordinator';
|
|
5
5
|
import { DefaultZLinkSessionActor, DefaultZLinkSessionContext } from './session-context';
|
|
6
|
+
import type { ZLinkSessionBindingConfirmationOptions } from './stream-binding-runtime-ports';
|
|
6
7
|
export interface ZLinkSessionActorCoordinatorOptions {
|
|
7
8
|
readonly actorBindTimeoutMs?: number;
|
|
8
9
|
readonly actorRefResolver?: (actor: ZLinkActor) => ActorRef;
|
|
@@ -13,9 +14,7 @@ export interface ZLinkSessionActorCoordinatorOptions {
|
|
|
13
14
|
};
|
|
14
15
|
} | undefined;
|
|
15
16
|
readonly nativeActorMeshNameProvider?: () => string | undefined;
|
|
16
|
-
readonly confirmRemoteActorSessionBinding?: (actor: ActorRef, sessionRid: ActorRef['nodeRid'], signal?: AbortSignal, options?:
|
|
17
|
-
readonly waitForAcknowledgement?: boolean;
|
|
18
|
-
}) => Promise<void>;
|
|
17
|
+
readonly confirmRemoteActorSessionBinding?: (actor: ActorRef, sessionRid: ActorRef['nodeRid'], signal?: AbortSignal, options?: ZLinkSessionBindingConfirmationOptions) => Promise<void>;
|
|
19
18
|
readonly errorSink?: () => {
|
|
20
19
|
reportRuntimeTaskException(taskName: string, error: unknown): void;
|
|
21
20
|
} | undefined;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZLinkSessionActorCoordinator = void 0;
|
|
4
|
+
const bound_actor_relay_sender_1 = require("./bound-actor-relay-sender");
|
|
4
5
|
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
5
6
|
const contracts_1 = require("../../contracts");
|
|
6
7
|
const abort_1 = require("../abort");
|
|
@@ -75,7 +76,12 @@ class ZLinkSessionActorCoordinator {
|
|
|
75
76
|
if (confirmRemoteSessionBinding !== false &&
|
|
76
77
|
this.options.confirmRemoteActorSessionBinding !== undefined) {
|
|
77
78
|
const waitForAcknowledgement = previous === undefined && confirmRemoteSessionBinding !== 'send';
|
|
78
|
-
const confirmation = this.options.confirmRemoteActorSessionBinding(boundActorRef, this.actorBindingRoutingId(context), undefined, {
|
|
79
|
+
const confirmation = this.options.confirmRemoteActorSessionBinding(boundActorRef, this.actorBindingRoutingId(context), undefined, {
|
|
80
|
+
waitForAcknowledgement,
|
|
81
|
+
binding: context.stream instanceof managed_stream_1.ZLinkManagedStream
|
|
82
|
+
? context.stream.actorBinding(actorRef.actorId)
|
|
83
|
+
: undefined
|
|
84
|
+
});
|
|
79
85
|
const reportFailure = (error) => {
|
|
80
86
|
// A fire-and-forget route update retains the already-current binding;
|
|
81
87
|
// its failure is bounded diagnostics rather than a rollback. The
|
|
@@ -96,7 +102,7 @@ class ZLinkSessionActorCoordinator {
|
|
|
96
102
|
// the relay's typed failure for the caller.
|
|
97
103
|
try {
|
|
98
104
|
if (context.stream instanceof managed_stream_1.ZLinkManagedStream) {
|
|
99
|
-
await context.stream.unbindActor(actorRef.actorId, this.options.actorBindTimeoutMs ??
|
|
105
|
+
await context.stream.unbindActor(actorRef.actorId, this.options.actorBindTimeoutMs ?? bound_actor_relay_sender_1.DEFAULT_RELAY_ACTOR_BIND_TIMEOUT_MS);
|
|
100
106
|
}
|
|
101
107
|
}
|
|
102
108
|
catch (cleanupError) {
|
|
@@ -204,7 +210,9 @@ class ZLinkSessionActorCoordinator {
|
|
|
204
210
|
!(await this.routes.validateSeal(normalizedActorRef.actorId, options.releaseSeal.sealId))) {
|
|
205
211
|
throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale, `Actor '${normalizedActorRef.actorId}' route switch did not match its relocation seal.`, true);
|
|
206
212
|
}
|
|
207
|
-
route
|
|
213
|
+
// A location refresh never changes the route's Session binding
|
|
214
|
+
// generation; the native bind owns it.
|
|
215
|
+
route.actor.updateRef(withBindingGeneration(normalizedActorRef, bindingGenerationOf(route.actor.ref), undefined));
|
|
208
216
|
if (authorityFence !== undefined) {
|
|
209
217
|
await this.routes.updateAuthorityFence(normalizedActorRef.actorId, authorityFence);
|
|
210
218
|
}
|
|
@@ -265,7 +273,7 @@ class ZLinkSessionActorCoordinator {
|
|
|
265
273
|
return;
|
|
266
274
|
}
|
|
267
275
|
try {
|
|
268
|
-
await context.stream.bindActor(actorRef, this.options.actorBindTimeoutMs ??
|
|
276
|
+
await context.stream.bindActor(actorRef, this.options.actorBindTimeoutMs ?? bound_actor_relay_sender_1.DEFAULT_RELAY_ACTOR_BIND_TIMEOUT_MS, signal, context.actorBindingReplacedHandler, authorityFence);
|
|
269
277
|
}
|
|
270
278
|
catch (error) {
|
|
271
279
|
if (error instanceof contracts_1.ZLinkFrameworkException) {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { ZLinkBoundSessionSendCall, ZLinkSessionReplyCall, ZLinkSessionSendCall } from '../../contracts';
|
|
2
|
-
import type { ZLinkSubmitResult } from '../messaging/submission-result';
|
|
3
2
|
import type { Message } from '../../contracts/Common/Message';
|
|
3
|
+
import { type ZLinkSubmitResult } from '../messaging/submission-result';
|
|
4
4
|
import { type ZLinkStreamFrameHeader, ZLinkStreamMessageKind, type ZLinkStreamReplyMessageKind } from './protocol';
|
|
5
5
|
export interface ZLinkBoundSessionSendRuntime {
|
|
6
|
-
sendBoundSession(actorId: string, message: unknown, packetName: string | undefined, metadata: ReadonlyMap<string, string
|
|
6
|
+
sendBoundSession(actorId: string, message: unknown, packetName: string | undefined, metadata: ReadonlyMap<string, string>): Promise<ZLinkSubmitResult>;
|
|
7
7
|
}
|
|
8
8
|
export interface ZLinkSessionCallContext {
|
|
9
9
|
readonly stream: {
|
|
10
10
|
writeRaw(payload: Message): boolean;
|
|
11
|
-
submitRaw(payload: Message
|
|
11
|
+
submitRaw(payload: Message): Promise<ZLinkSubmitResult>;
|
|
12
12
|
};
|
|
13
13
|
readonly dispatchHeader: ZLinkStreamFrameHeader | undefined;
|
|
14
14
|
createJsonFrameMessage(kind: ZLinkStreamMessageKind, packetName: string, metadata: ReadonlyMap<string, string>, compressed: boolean, requestSeq: bigint | undefined, payload: unknown, correlationId?: string): Message;
|
|
@@ -31,7 +31,7 @@ export declare class DefaultZLinkBoundSessionSendCall implements ZLinkBoundSessi
|
|
|
31
31
|
constructor(runtime: ZLinkBoundSessionSendRuntime, actorId: string, message: unknown);
|
|
32
32
|
metadata(key: string, value: string): this;
|
|
33
33
|
packetName(packetName: string): this;
|
|
34
|
-
submit(
|
|
34
|
+
submit(): Promise<void>;
|
|
35
35
|
}
|
|
36
36
|
export declare class DefaultZLinkSessionSendCall implements ZLinkSessionSendCall {
|
|
37
37
|
private readonly context;
|
|
@@ -39,14 +39,12 @@ export declare class DefaultZLinkSessionSendCall implements ZLinkSessionSendCall
|
|
|
39
39
|
private selectedPacketName;
|
|
40
40
|
private readonly selectedMetadata;
|
|
41
41
|
private compressionEnabled;
|
|
42
|
-
private selectedTimeoutMs;
|
|
43
42
|
private executed;
|
|
44
43
|
constructor(context: ZLinkSessionCallContext, message: unknown);
|
|
45
44
|
metadata(key: string, value: string): this;
|
|
46
45
|
packetName(packetName: string): this;
|
|
47
46
|
compress(enabled?: boolean): this;
|
|
48
|
-
|
|
49
|
-
submit(signal?: AbortSignal): Promise<void>;
|
|
47
|
+
submit(): Promise<void>;
|
|
50
48
|
}
|
|
51
49
|
export declare class DefaultZLinkSessionReplyCall implements ZLinkSessionReplyCall {
|
|
52
50
|
private readonly context;
|
|
@@ -55,5 +53,5 @@ export declare class DefaultZLinkSessionReplyCall implements ZLinkSessionReplyCa
|
|
|
55
53
|
private executed;
|
|
56
54
|
constructor(context: ZLinkSessionCallContext, message: unknown);
|
|
57
55
|
compress(enabled?: boolean): this;
|
|
58
|
-
submit(
|
|
56
|
+
submit(): Promise<void>;
|
|
59
57
|
}
|
|
@@ -3,8 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DefaultZLinkSessionReplyCall = exports.DefaultZLinkSessionSendCall = exports.DefaultZLinkBoundSessionSendCall = void 0;
|
|
4
4
|
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
5
5
|
const submission_result_1 = require("../messaging/submission-result");
|
|
6
|
-
const abort_1 = require("../abort");
|
|
7
|
-
const configuration_1 = require("../configuration");
|
|
8
6
|
const protocol_1 = require("./protocol");
|
|
9
7
|
class DefaultZLinkBoundSessionSendCall {
|
|
10
8
|
runtime;
|
|
@@ -26,12 +24,11 @@ class DefaultZLinkBoundSessionSendCall {
|
|
|
26
24
|
this.selectedPacketName = packetName;
|
|
27
25
|
return this;
|
|
28
26
|
}
|
|
29
|
-
async submit(
|
|
27
|
+
async submit() {
|
|
30
28
|
(0, protocol_1.ensureSingleSubmit)(this.executed);
|
|
31
29
|
const packetName = (0, protocol_1.resolvePacketName)(this.message, this.selectedPacketName);
|
|
32
30
|
this.executed = true;
|
|
33
|
-
(
|
|
34
|
-
const result = await this.runtime.sendBoundSession(this.actorId, this.message, packetName, this.selectedMetadata, signal);
|
|
31
|
+
const result = await this.runtime.sendBoundSession(this.actorId, this.message, packetName, this.selectedMetadata);
|
|
35
32
|
(0, submission_result_1.requireOneWayCompletion)(result, 'Bound session send', framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorSessionNotBound);
|
|
36
33
|
}
|
|
37
34
|
}
|
|
@@ -42,7 +39,6 @@ class DefaultZLinkSessionSendCall {
|
|
|
42
39
|
selectedPacketName;
|
|
43
40
|
selectedMetadata = new Map();
|
|
44
41
|
compressionEnabled = false;
|
|
45
|
-
selectedTimeoutMs;
|
|
46
42
|
executed = false;
|
|
47
43
|
constructor(context, message) {
|
|
48
44
|
this.context = context;
|
|
@@ -60,21 +56,13 @@ class DefaultZLinkSessionSendCall {
|
|
|
60
56
|
this.compressionEnabled = enabled;
|
|
61
57
|
return this;
|
|
62
58
|
}
|
|
63
|
-
|
|
64
|
-
if (!Number.isInteger(timeoutMs) || timeoutMs < 1 || timeoutMs > 2_147_483_647) {
|
|
65
|
-
throw new configuration_1.ZLinkConfigurationException('STREAM session send timeout must be an integer from 1 through 2147483647 milliseconds.');
|
|
66
|
-
}
|
|
67
|
-
this.selectedTimeoutMs = timeoutMs;
|
|
68
|
-
return this;
|
|
69
|
-
}
|
|
70
|
-
async submit(signal) {
|
|
59
|
+
async submit() {
|
|
71
60
|
(0, protocol_1.ensureSingleSubmit)(this.executed);
|
|
72
61
|
const packetName = (0, protocol_1.resolvePacketName)(this.message, this.selectedPacketName);
|
|
73
62
|
this.executed = true;
|
|
74
|
-
(0, abort_1.throwIfAborted)(signal);
|
|
75
63
|
const message = this.context.createJsonFrameMessage(protocol_1.ZLinkStreamMessageKind.Send, packetName, this.selectedMetadata, this.compressionEnabled, undefined, this.message);
|
|
76
64
|
try {
|
|
77
|
-
const result = await this.context.stream.submitRaw(message
|
|
65
|
+
const result = await this.context.stream.submitRaw(message);
|
|
78
66
|
(0, submission_result_1.requireOneWayCompletion)(result, 'STREAM session send');
|
|
79
67
|
this.context.traceFrameWritten?.(protocol_1.ZLinkStreamMessageKind.Send, packetName, undefined);
|
|
80
68
|
}
|
|
@@ -97,7 +85,7 @@ class DefaultZLinkSessionReplyCall {
|
|
|
97
85
|
this.compressionEnabled = enabled;
|
|
98
86
|
return this;
|
|
99
87
|
}
|
|
100
|
-
async submit(
|
|
88
|
+
async submit() {
|
|
101
89
|
(0, protocol_1.ensureSingleSubmit)(this.executed);
|
|
102
90
|
this.executed = true;
|
|
103
91
|
const requestHeader = this.context.dispatchHeader;
|
|
@@ -105,13 +93,9 @@ class DefaultZLinkSessionReplyCall {
|
|
|
105
93
|
throw new Error('Reply is only available while handling a request packet.');
|
|
106
94
|
}
|
|
107
95
|
this.context.claimReply(requestHeader);
|
|
108
|
-
// Reply-token validity wins over caller cancellation. Claiming before the
|
|
109
|
-
// pre-cancel check keeps duplicate calls deterministic while still making
|
|
110
|
-
// a pre-cancelled first call perform no transport admission.
|
|
111
|
-
(0, abort_1.throwIfAborted)(signal);
|
|
112
96
|
const message = this.context.createJsonReplyFrameMessage(requestHeader, protocol_1.ZLinkStreamMessageKind.Response, new Map(), this.compressionEnabled, this.message);
|
|
113
97
|
try {
|
|
114
|
-
const result = await this.context.stream.submitRaw(message
|
|
98
|
+
const result = await this.context.stream.submitRaw(message);
|
|
115
99
|
(0, submission_result_1.requireOneWayCompletion)(result, 'STREAM session reply');
|
|
116
100
|
this.context.traceFrameWritten?.(protocol_1.ZLinkStreamMessageKind.Response, requestHeader.name, requestHeader.correlationId);
|
|
117
101
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import type { ActorRef, RoutingId,
|
|
2
|
-
import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
|
|
3
|
-
import type { ZLinkSubmitResult } from '../messaging/submission-result';
|
|
1
|
+
import type { ActorRef, RoutingId, ZLinkActor, ZLinkBoundSession, ZLinkMessage, ZLinkSessionActor, ZLinkSessionActors, ZLinkSessionClient, ZLinkSessionContext, ZLinkSessionDispatchContext, ZLinkSessionHandlerRegistry, ZLinkStream } from '../../contracts';
|
|
4
2
|
import type { Message } from '../../contracts/Common/Message';
|
|
5
|
-
import
|
|
6
|
-
import { DefaultZLinkBoundSessionSendCall } from './session-calls';
|
|
7
|
-
import { type ZLinkPendingSessionRequest } from './session-requests';
|
|
3
|
+
import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
|
|
8
4
|
import type { ServiceActorRef } from '../foundation/service-stateful-registry';
|
|
9
5
|
import type { ServiceRetiredBoundSessionRouteFence } from '../foundation/service-stateful-wire-codec';
|
|
6
|
+
import { type ZLinkSubmitResult } from '../messaging/submission-result';
|
|
7
|
+
import { ZLinkStreamMessageKind, type ZLinkStreamFrameHeader, type ZLinkStreamReplyMessageKind } from './protocol';
|
|
8
|
+
import { DefaultZLinkBoundSessionSendCall } from './session-calls';
|
|
9
|
+
import { type ZLinkPendingSessionRequest } from './session-requests';
|
|
10
10
|
export interface ZLinkSessionContextStream extends ZLinkStream {
|
|
11
11
|
writeRaw(payload: Message, flags?: number): boolean;
|
|
12
|
-
submitRaw(payload: Message
|
|
12
|
+
submitRaw(payload: Message): Promise<ZLinkSubmitResult>;
|
|
13
13
|
enqueueActorBound?(actorSlot: number, actorId: string): Promise<void>;
|
|
14
14
|
enqueueActorUnbound?(actorSlot: number): Promise<void>;
|
|
15
15
|
}
|
|
@@ -22,7 +22,7 @@ interface ZLinkSessionContextRuntime {
|
|
|
22
22
|
decompressPayload(payload: Message): Message;
|
|
23
23
|
bind(context: DefaultZLinkSessionContext, actor: ZLinkActor | ActorRef, signal?: AbortSignal): Promise<DefaultZLinkSessionActor>;
|
|
24
24
|
bindOrGet(context: DefaultZLinkSessionContext, actorRef: ActorRef, signal?: AbortSignal): Promise<DefaultZLinkSessionActor>;
|
|
25
|
-
relay(actor: DefaultZLinkSessionActor, payload: ZLinkMessage,
|
|
25
|
+
relay(actor: DefaultZLinkSessionActor, payload: ZLinkMessage, dispatchHeader?: ZLinkStreamFrameHeader): Promise<ZLinkSubmitResult>;
|
|
26
26
|
notifyDisconnected(actor: DefaultZLinkSessionActor, signal?: AbortSignal): Promise<void>;
|
|
27
27
|
}
|
|
28
28
|
export type ZLinkActorBindingReplacementHandler = (actor: ServiceActorRef, retiredSession: ServiceRetiredBoundSessionRouteFence) => void;
|
|
@@ -95,8 +95,8 @@ export declare class DefaultZLinkSessionActor implements ZLinkSessionActor {
|
|
|
95
95
|
constructor(runtime: ZLinkSessionContextRuntime, ref: ActorRef, bindingToken: string);
|
|
96
96
|
get ref(): ActorRef;
|
|
97
97
|
updateRef(ref: ActorRef): void;
|
|
98
|
-
relay(payload: ZLinkMessage
|
|
99
|
-
relay(dispatch: ZLinkSessionDispatchContext, payload: ZLinkMessage
|
|
98
|
+
relay(payload: ZLinkMessage): Promise<void>;
|
|
99
|
+
relay(dispatch: ZLinkSessionDispatchContext, payload: ZLinkMessage): Promise<void>;
|
|
100
100
|
notifyDisconnected(signal?: AbortSignal): Promise<void>;
|
|
101
101
|
}
|
|
102
102
|
export declare function createSessionDispatchContext(header: ZLinkStreamFrameHeader, actor?: DefaultZLinkSessionActor): ZLinkSessionDispatchContext;
|