@zlink-systems/framework 0.30.3 → 0.32.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/ZLinkActor.d.ts +2 -0
- package/dist/contracts/Actors/ZLinkSessionBindingIdentity.d.ts +6 -0
- package/dist/contracts/Actors/ZLinkSessionBindingIdentity.js +2 -0
- package/dist/contracts/Actors/index.d.ts +1 -0
- package/dist/contracts/Actors/index.js +1 -0
- package/dist/contracts/Common/CoreTypes.d.ts +1 -0
- package/dist/contracts/Common/HandlerMessageType.d.ts +8 -0
- package/dist/contracts/Common/HandlerMessageType.js +41 -0
- package/dist/contracts/Common/ZLinkEncodedPayload.d.ts +1 -1
- package/dist/contracts/Common/ZLinkEncodedPayload.js +12 -20
- package/dist/contracts/Common/ZLinkMessage.js +11 -7
- package/dist/contracts/Common/encoded-payload-storage.d.ts +0 -2
- package/dist/contracts/Common/encoded-payload-storage.js +4 -16
- package/dist/contracts/Common/index.d.ts +1 -1
- package/dist/contracts/Common/payload-slab.d.ts +4 -0
- package/dist/contracts/Common/payload-slab.js +30 -0
- package/dist/contracts/Configuration/RegistrationBuilders.js +15 -9
- package/dist/contracts/Configuration/RegistrationTypes.d.ts +19 -0
- package/dist/contracts/Handlers/Contexts.d.ts +1 -0
- package/dist/contracts/Locations/Authority.d.ts +2 -0
- package/dist/internal.d.ts +9 -0
- package/dist/internal.js +23 -1
- package/dist/nest-integration.d.ts +1 -0
- package/dist/nest-integration.js +3 -1
- package/dist/runtime/actors/actor-client.d.ts +6 -2
- package/dist/runtime/actors/actor-client.js +120 -82
- package/dist/runtime/actors/actor-context.js +16 -5
- package/dist/runtime/actors/actor-execution-context.js +2 -2
- package/dist/runtime/actors/actor-handoff.d.ts +12 -1
- package/dist/runtime/actors/actor-handoff.js +79 -34
- package/dist/runtime/actors/actor-join-deferred-scope.js +6 -6
- package/dist/runtime/actors/actor-local-native-join.d.ts +2 -2
- package/dist/runtime/actors/actor-local-native-join.js +19 -17
- package/dist/runtime/actors/actor-mailbox.d.ts +1 -1
- package/dist/runtime/actors/actor-remote-joiner.d.ts +2 -2
- package/dist/runtime/actors/actor-remote-joiner.js +4 -4
- package/dist/runtime/actors/actor-routed-join-transport.d.ts +9 -3
- package/dist/runtime/actors/actor-routed-json-request.d.ts +3 -0
- package/dist/runtime/actors/actor-runtime-contracts.d.ts +2 -2
- package/dist/runtime/actors/actor-runtime-state.d.ts +1 -1
- package/dist/runtime/actors/spot-actor-dispatch.d.ts +9 -5
- package/dist/runtime/actors/spot-actor-dispatch.js +60 -38
- package/dist/runtime/admission.d.ts +6 -4
- package/dist/runtime/admission.js +21 -10
- package/dist/runtime/application-jobs/application-ingress-record-owner.d.ts +1 -0
- package/dist/runtime/application-jobs/application-ingress-record-owner.js +3 -0
- package/dist/runtime/backend/contracts/index.d.ts +26 -10
- package/dist/runtime/backend/mesh-completion-table.d.ts +7 -1
- package/dist/runtime/backend/mesh-completion-table.js +84 -20
- package/dist/runtime/backend/mesh-dispatch-pump.d.ts +19 -6
- package/dist/runtime/backend/mesh-dispatch-pump.js +246 -147
- package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +3 -2
- package/dist/runtime/backend/node/node-backend-adapter-support.js +27 -19
- package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +5 -2
- package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +70 -13
- package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
- package/dist/runtime/backend/node/node-event-loop-poller.js +4 -3
- package/dist/runtime/backend/node/node-mesh-backend-adapter.js +5 -1
- package/dist/runtime/backend/node/node-raw-binding-port.d.ts +7 -2
- package/dist/runtime/backend/node/node-raw-binding-port.js +99 -63
- package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +34 -16
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +210 -106
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +20 -6
- package/dist/runtime/backend/raw-binding-port.d.ts +6 -3
- package/dist/runtime/channels/channel-clients.js +3 -3
- package/dist/runtime/channels/channel-dispatch-pipeline.d.ts +11 -7
- package/dist/runtime/channels/channel-dispatch-pipeline.js +40 -22
- package/dist/runtime/channels/channel-dispatch-services.d.ts +3 -1
- package/dist/runtime/channels/channel-dispatch-services.js +7 -6
- package/dist/runtime/channels/channel-dispatchers.d.ts +13 -6
- package/dist/runtime/channels/channel-dispatchers.js +57 -36
- package/dist/runtime/channels/channel-envelope.d.ts +2 -2
- package/dist/runtime/channels/channel-envelope.js +609 -83
- package/dist/runtime/channels/channel-multipart.d.ts +1 -0
- package/dist/runtime/channels/channel-multipart.js +10 -6
- package/dist/runtime/channels/channel-outbound-operations.d.ts +6 -9
- package/dist/runtime/channels/channel-outbound-operations.js +107 -105
- package/dist/runtime/channels/channel-receive-loops.d.ts +9 -7
- package/dist/runtime/channels/channel-receive-loops.js +126 -90
- package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +23 -6
- package/dist/runtime/channels/channel-runtime-lifecycle.js +47 -38
- package/dist/runtime/channels/channel-runtime-manager.d.ts +13 -6
- package/dist/runtime/channels/channel-runtime-manager.js +32 -14
- package/dist/runtime/channels/channel-socket-registry.d.ts +28 -4
- package/dist/runtime/channels/channel-socket-registry.js +9 -1
- package/dist/runtime/channels/channel-transports.d.ts +23 -16
- package/dist/runtime/channels/channel-transports.js +139 -119
- package/dist/runtime/channels/dispatch-error-reporter.d.ts +4 -4
- package/dist/runtime/channels/dispatch-error-reporter.js +5 -5
- package/dist/runtime/channels/fanout-location-runtime.d.ts +1 -1
- package/dist/runtime/channels/local-spot-route-transport.d.ts +5 -2
- package/dist/runtime/channels/local-spot-route-transport.js +15 -18
- package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +6 -3
- package/dist/runtime/channels/router-socket-spot-route-transport.js +33 -19
- package/dist/runtime/channels/source-spot-router.d.ts +6 -3
- package/dist/runtime/channels/source-spot-router.js +34 -23
- package/dist/runtime/channels/spot-node-route-transport.d.ts +6 -3
- package/dist/runtime/channels/spot-node-route-transport.js +23 -17
- package/dist/runtime/channels/spot-route-bridge-transport.d.ts +6 -3
- package/dist/runtime/channels/spot-route-bridge-transport.js +38 -24
- package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +8 -4
- package/dist/runtime/channels/spot-route-dispatch-strategy.js +36 -23
- package/dist/runtime/diagnostics/dispatch-error-details.js +9 -3
- package/dist/runtime/diagnostics/message-flow-bootstrap.d.ts +1 -0
- package/dist/runtime/diagnostics/message-flow-bootstrap.js +8 -0
- package/dist/runtime/diagnostics/message-flow-delivery.d.ts +47 -0
- package/dist/runtime/diagnostics/message-flow-delivery.js +149 -0
- package/dist/runtime/diagnostics/message-flow-record.d.ts +50 -0
- package/dist/runtime/diagnostics/message-flow-record.js +228 -0
- package/dist/runtime/diagnostics/message-flow-worker.d.ts +1 -0
- package/dist/runtime/diagnostics/message-flow-worker.js +118 -0
- package/dist/runtime/diagnostics/message-flow.d.ts +7 -19
- package/dist/runtime/diagnostics/message-flow.js +42 -290
- package/dist/runtime/diagnostics/runtime-metrics.d.ts +4 -3
- package/dist/runtime/diagnostics/runtime-metrics.js +8 -4
- package/dist/runtime/execution/index.d.ts +1 -0
- package/dist/runtime/execution/index.js +6 -3
- package/dist/runtime/execution/serial-execution-queue.d.ts +26 -13
- package/dist/runtime/execution/serial-execution-queue.js +75 -71
- package/dist/runtime/foundation/durable-service-request.d.ts +12 -3
- package/dist/runtime/foundation/durable-service-request.js +158 -73
- package/dist/runtime/foundation/operation-registry.d.ts +33 -3
- package/dist/runtime/foundation/operation-registry.js +272 -33
- package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +62 -23
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +373 -194
- package/dist/runtime/foundation/request-runtime.d.ts +17 -0
- package/dist/runtime/foundation/request-runtime.js +163 -0
- package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
- package/dist/runtime/foundation/service-discovery-registry.js +6 -0
- package/dist/runtime/foundation/service-liveness-registry.d.ts +1 -1
- package/dist/runtime/foundation/service-mailbox.d.ts +4 -2
- package/dist/runtime/foundation/service-mailbox.js +4 -1
- package/dist/runtime/foundation/service-relocation-object-owner.d.ts +2 -2
- package/dist/runtime/foundation/service-relocation-object-owner.js +12 -5
- package/dist/runtime/foundation/service-runtime-contracts.d.ts +7 -2
- package/dist/runtime/foundation/service-stateful-registry.d.ts +6 -2
- package/dist/runtime/foundation/service-stateful-registry.js +38 -17
- package/dist/runtime/foundation/service-stateful-runtime.d.ts +91 -26
- package/dist/runtime/foundation/service-stateful-runtime.js +245 -120
- package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -0
- package/dist/runtime/foundation/service-stateful-wire-codec.js +15 -0
- package/dist/runtime/foundation/service-topology-registry.d.ts +2 -0
- package/dist/runtime/foundation/service-topology-registry.js +13 -3
- package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
- package/dist/runtime/foundation/service-wire-constants.generated.js +12 -0
- package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +5 -1
- package/dist/runtime/foundation/service-wire-m6a-codec.js +50 -15
- package/dist/runtime/host/actor-packet-relay.d.ts +5 -6
- package/dist/runtime/host/actor-packet-relay.js +58 -57
- package/dist/runtime/host/actor-placement-coordinator.d.ts +1 -1
- package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
- package/dist/runtime/host/actor-runtime-options-factory.js +3 -2
- package/dist/runtime/host/actor-transfer-runtime.d.ts +3 -3
- package/dist/runtime/host/application-job-queue.d.ts +7 -5
- package/dist/runtime/host/application-job-queue.js +33 -21
- package/dist/runtime/host/bound-session-relay.js +0 -1
- package/dist/runtime/host/channel-runtime-options-factory.d.ts +2 -0
- package/dist/runtime/host/channel-runtime-options-factory.js +1 -0
- package/dist/runtime/host/entry-actor-runtime.d.ts +5 -2
- package/dist/runtime/host/entry-actor-runtime.js +2 -2
- package/dist/runtime/host/index.d.ts +106 -37
- package/dist/runtime/host/index.js +303 -151
- package/dist/runtime/host/location-runtime-owner.d.ts +2 -2
- package/dist/runtime/host/location-runtime-owner.js +1 -1
- package/dist/runtime/host/service-relocation-host-runtime.d.ts +195 -45
- package/dist/runtime/host/service-relocation-host-runtime.js +257 -144
- package/dist/runtime/host/spot-address-transport.d.ts +3 -0
- package/dist/runtime/host/spot-address-transport.js +73 -76
- package/dist/runtime/host/spot-runtime-options-factory.js +2 -0
- package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -1
- package/dist/runtime/host/user-spot-creation-coordinator.js +49 -21
- package/dist/runtime/internal-observation.d.ts +1 -0
- package/dist/runtime/internal-observation.js +5 -0
- package/dist/runtime/locations/actor-location-claims.d.ts +1 -1
- package/dist/runtime/locations/actor-location-claims.js +15 -6
- package/dist/runtime/locations/auto-connect-loop.d.ts +0 -1
- package/dist/runtime/locations/auto-connect-loop.js +25 -19
- package/dist/runtime/locations/auto-connect-planner.js +2 -5
- package/dist/runtime/locations/auto-connect-reconciler.d.ts +1 -0
- package/dist/runtime/locations/auto-connect-reconciler.js +35 -23
- package/dist/runtime/locations/in-memory-authority-store.d.ts +1 -0
- package/dist/runtime/locations/in-memory-authority-store.js +15 -5
- package/dist/runtime/locations/in-memory-location-store.d.ts +0 -2
- package/dist/runtime/locations/in-memory-location-store.js +1 -38
- package/dist/runtime/locations/lifecycle.d.ts +1 -1
- package/dist/runtime/locations/lifecycle.js +2 -2
- package/dist/runtime/locations/location-store-repository.d.ts +0 -1
- package/dist/runtime/locations/location-store-repository.js +163 -246
- package/dist/runtime/locations/resolvers.d.ts +8 -1
- package/dist/runtime/locations/resolvers.js +16 -2
- package/dist/runtime/locations/runtime.d.ts +3 -3
- package/dist/runtime/locations/runtime.js +12 -16
- package/dist/runtime/messaging/creation-payload-codec.js +8 -7
- package/dist/runtime/messaging/framework-json-v1.d.ts +1 -1
- package/dist/runtime/messaging/framework-json-v1.js +6 -2
- package/dist/runtime/messaging/payload-codec.js +21 -35
- package/dist/runtime/messaging/request-deadline.d.ts +4 -2
- package/dist/runtime/messaging/request-deadline.js +40 -25
- package/dist/runtime/messaging/request-result.d.ts +14 -1
- package/dist/runtime/messaging/request-result.js +74 -13
- package/dist/runtime/protocol/service_wire_codec.generated.d.ts +4 -0
- package/dist/runtime/protocol/service_wire_codec.generated.js +17 -7
- package/dist/runtime/spots/index.d.ts +28 -7
- package/dist/runtime/spots/index.js +31 -6
- package/dist/runtime/spots/spot-activation-registry.d.ts +3 -2
- package/dist/runtime/spots/spot-activation-registry.js +13 -8
- package/dist/runtime/spots/spot-activation-state.d.ts +2 -0
- package/dist/runtime/spots/spot-activation-state.js +1 -0
- package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +9 -4
- package/dist/runtime/spots/spot-actor-admission-coordinator.js +33 -12
- package/dist/runtime/spots/spot-actor-ingress-admission.d.ts +40 -0
- package/dist/runtime/spots/spot-actor-ingress-admission.js +78 -0
- package/dist/runtime/spots/spot-actor-membership.js +3 -3
- package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +16 -43
- package/dist/runtime/spots/spot-actor-packet-dispatch.js +56 -113
- package/dist/runtime/spots/spot-actor-packet-drain.d.ts +1 -0
- package/dist/runtime/spots/spot-actor-packet-drain.js +12 -5
- package/dist/runtime/spots/spot-entry-activation.d.ts +4 -3
- package/dist/runtime/spots/spot-entry-activation.js +7 -12
- package/dist/runtime/spots/spot-handler-registry.d.ts +5 -1
- package/dist/runtime/spots/spot-handler-registry.js +31 -15
- package/dist/runtime/spots/spot-manager-public.js +3 -2
- package/dist/runtime/spots/spot-node-runtime-manager.d.ts +11 -6
- package/dist/runtime/spots/spot-node-runtime-manager.js +6 -1
- package/dist/runtime/spots/spot-outbound.d.ts +8 -2
- package/dist/runtime/spots/spot-outbound.js +5 -5
- package/dist/runtime/spots/spot-route-packet-dispatch.js +13 -8
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +3 -3
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +9 -5
- package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -2
- package/dist/runtime/spots/spot-serial-executor.d.ts +2 -1
- package/dist/runtime/spots/spot-serial-turn-executor.js +20 -26
- package/dist/runtime/spots/spot-subscription-dispatch.js +5 -2
- package/dist/runtime/spots/spot-timer.d.ts +1 -1
- package/dist/runtime/streams/actor-session-binding-registry.d.ts +11 -3
- package/dist/runtime/streams/actor-session-binding-registry.js +28 -0
- package/dist/runtime/streams/bound-actor-relay-sender.d.ts +2 -2
- package/dist/runtime/streams/bound-actor-relay-sender.js +3 -4
- package/dist/runtime/streams/bound-session-service.js +6 -7
- package/dist/runtime/streams/index.d.ts +3 -3
- package/dist/runtime/streams/index.js +22 -2
- package/dist/runtime/streams/managed-stream.js +2 -1
- package/dist/runtime/streams/session-calls.d.ts +1 -1
- package/dist/runtime/streams/session-calls.js +3 -9
- package/dist/runtime/streams/session-context.d.ts +2 -2
- package/dist/runtime/streams/session-context.js +2 -2
- package/dist/runtime/streams/stream-session-runtime.d.ts +1 -0
- package/dist/runtime/streams/stream-session-runtime.js +64 -33
- package/package.json +3 -3
- package/src/contracts/Actors/ZLinkActor.ts +6 -0
- package/src/contracts/Actors/ZLinkSessionBindingIdentity.ts +7 -0
- package/src/contracts/Actors/index.ts +1 -0
- package/src/contracts/Common/CoreTypes.ts +1 -0
- package/src/contracts/Common/HandlerMessageType.ts +50 -0
- package/src/contracts/Common/ZLinkEncodedPayload.ts +13 -25
- package/src/contracts/Common/ZLinkMessage.ts +11 -7
- package/src/contracts/Common/encoded-payload-storage.ts +4 -16
- package/src/contracts/Common/index.ts +1 -1
- package/src/contracts/Common/payload-slab.ts +29 -0
- package/src/contracts/Configuration/RegistrationBuilders.ts +29 -15
- package/src/contracts/Configuration/RegistrationTypes.ts +19 -0
- package/src/contracts/Handlers/Contexts.ts +1 -0
- package/src/contracts/Locations/Authority.ts +7 -1
- package/src/internal.ts +17 -0
- package/src/nest-integration.ts +1 -0
- package/src/runtime/actors/actor-client.ts +257 -163
- package/src/runtime/actors/actor-context.ts +26 -14
- package/src/runtime/actors/actor-execution-context.ts +2 -2
- package/src/runtime/actors/actor-handoff.ts +86 -51
- package/src/runtime/actors/actor-join-deferred-scope.ts +6 -6
- package/src/runtime/actors/actor-local-native-join.ts +38 -17
- package/src/runtime/actors/actor-mailbox.ts +1 -1
- package/src/runtime/actors/actor-remote-joiner.ts +8 -4
- package/src/runtime/actors/actor-routed-join-transport.ts +13 -5
- package/src/runtime/actors/actor-routed-json-request.ts +3 -0
- package/src/runtime/actors/actor-runtime-contracts.ts +4 -2
- package/src/runtime/actors/actor-runtime-state.ts +1 -1
- package/src/runtime/actors/spot-actor-dispatch.ts +70 -68
- package/src/runtime/admission.ts +42 -15
- package/src/runtime/application-jobs/application-ingress-record-owner.ts +4 -0
- package/src/runtime/backend/contracts/index.ts +77 -10
- package/src/runtime/backend/mesh-completion-table.ts +106 -15
- package/src/runtime/backend/mesh-dispatch-pump.ts +294 -146
- package/src/runtime/backend/node/node-backend-adapter-support.ts +42 -32
- package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +91 -34
- package/src/runtime/backend/node/node-event-loop-poller.ts +14 -5
- package/src/runtime/backend/node/node-mesh-backend-adapter.ts +5 -1
- package/src/runtime/backend/node/node-raw-binding-port.ts +180 -69
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +386 -157
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +56 -11
- package/src/runtime/backend/raw-binding-port.ts +13 -5
- package/src/runtime/channels/channel-clients.ts +26 -11
- package/src/runtime/channels/channel-dispatch-pipeline.ts +77 -65
- package/src/runtime/channels/channel-dispatch-services.ts +7 -12
- package/src/runtime/channels/channel-dispatchers.ts +93 -39
- package/src/runtime/channels/channel-envelope.ts +680 -144
- package/src/runtime/channels/channel-multipart.ts +17 -13
- package/src/runtime/channels/channel-outbound-operations.ts +204 -178
- package/src/runtime/channels/channel-receive-loops.ts +160 -107
- package/src/runtime/channels/channel-runtime-lifecycle.ts +64 -59
- package/src/runtime/channels/channel-runtime-manager.ts +74 -27
- package/src/runtime/channels/channel-socket-registry.ts +20 -5
- package/src/runtime/channels/channel-transports.ts +414 -287
- package/src/runtime/channels/dispatch-error-reporter.ts +4 -9
- package/src/runtime/channels/local-spot-route-transport.ts +27 -29
- package/src/runtime/channels/router-socket-spot-route-transport.ts +63 -32
- package/src/runtime/channels/source-spot-router.ts +75 -38
- package/src/runtime/channels/spot-node-route-transport.ts +67 -37
- package/src/runtime/channels/spot-route-bridge-transport.ts +62 -30
- package/src/runtime/channels/spot-route-dispatch-strategy.ts +105 -34
- package/src/runtime/diagnostics/dispatch-error-details.ts +10 -2
- package/src/runtime/diagnostics/message-flow-bootstrap.ts +6 -0
- package/src/runtime/diagnostics/message-flow-delivery.ts +171 -0
- package/src/runtime/diagnostics/message-flow-record.ts +295 -0
- package/src/runtime/diagnostics/message-flow-worker.ts +146 -0
- package/src/runtime/diagnostics/message-flow.ts +49 -362
- package/src/runtime/diagnostics/runtime-metrics.ts +10 -4
- package/src/runtime/execution/index.ts +6 -0
- package/src/runtime/execution/serial-execution-queue.ts +94 -96
- package/src/runtime/foundation/durable-service-request.ts +212 -89
- package/src/runtime/foundation/operation-registry.ts +287 -38
- package/src/runtime/foundation/raw-service-mesh-runtime.ts +617 -292
- package/src/runtime/foundation/request-runtime.ts +227 -0
- package/src/runtime/foundation/service-discovery-registry.ts +7 -0
- package/src/runtime/foundation/service-liveness-registry.ts +1 -1
- package/src/runtime/foundation/service-mailbox.ts +7 -2
- package/src/runtime/foundation/service-relocation-object-owner.ts +21 -6
- package/src/runtime/foundation/service-runtime-contracts.ts +12 -2
- package/src/runtime/foundation/service-stateful-registry.ts +52 -19
- package/src/runtime/foundation/service-stateful-runtime.ts +365 -198
- package/src/runtime/foundation/service-stateful-wire-codec.ts +18 -0
- package/src/runtime/foundation/service-topology-registry.ts +21 -3
- package/src/runtime/foundation/service-wire-constants.generated.ts +10 -0
- package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -17
- package/src/runtime/host/actor-packet-relay.ts +160 -156
- package/src/runtime/host/actor-placement-coordinator.ts +1 -1
- package/src/runtime/host/actor-runtime-options-factory.ts +7 -2
- package/src/runtime/host/actor-transfer-runtime.ts +3 -3
- package/src/runtime/host/application-job-queue.ts +56 -27
- package/src/runtime/host/bound-session-relay.ts +0 -1
- package/src/runtime/host/channel-runtime-options-factory.ts +3 -0
- package/src/runtime/host/entry-actor-runtime.ts +14 -6
- package/src/runtime/host/index.ts +388 -113
- package/src/runtime/host/location-runtime-owner.ts +3 -3
- package/src/runtime/host/service-relocation-host-runtime.ts +380 -252
- package/src/runtime/host/spot-address-transport.ts +110 -95
- package/src/runtime/host/spot-runtime-options-factory.ts +3 -0
- package/src/runtime/host/user-spot-creation-coordinator.ts +69 -22
- package/src/runtime/internal-observation.ts +2 -0
- package/src/runtime/locations/actor-location-claims.ts +42 -16
- package/src/runtime/locations/auto-connect-loop.ts +24 -16
- package/src/runtime/locations/auto-connect-planner.ts +2 -5
- package/src/runtime/locations/auto-connect-reconciler.ts +37 -24
- package/src/runtime/locations/in-memory-authority-store.ts +27 -7
- package/src/runtime/locations/in-memory-location-store.ts +1 -74
- package/src/runtime/locations/lifecycle.ts +4 -2
- package/src/runtime/locations/location-store-repository.ts +228 -308
- package/src/runtime/locations/resolvers.ts +20 -8
- package/src/runtime/locations/runtime.ts +16 -28
- package/src/runtime/messaging/creation-payload-codec.ts +12 -10
- package/src/runtime/messaging/framework-json-v1.ts +10 -1
- package/src/runtime/messaging/payload-codec.ts +50 -75
- package/src/runtime/messaging/request-deadline.ts +47 -39
- package/src/runtime/messaging/request-result.ts +88 -17
- 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/index.ts +57 -10
- package/src/runtime/spots/spot-activation-registry.ts +12 -8
- package/src/runtime/spots/spot-activation-state.ts +2 -0
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +62 -37
- package/src/runtime/spots/spot-actor-ingress-admission.ts +157 -0
- package/src/runtime/spots/spot-actor-membership.ts +8 -5
- package/src/runtime/spots/spot-actor-packet-dispatch.ts +122 -206
- package/src/runtime/spots/spot-actor-packet-drain.ts +21 -6
- package/src/runtime/spots/spot-entry-activation.ts +25 -35
- package/src/runtime/spots/spot-handler-registry.ts +72 -15
- package/src/runtime/spots/spot-manager-public.ts +4 -2
- package/src/runtime/spots/spot-node-runtime-manager.ts +16 -7
- package/src/runtime/spots/spot-outbound.ts +26 -10
- package/src/runtime/spots/spot-route-packet-dispatch.ts +18 -8
- package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +14 -8
- package/src/runtime/spots/spot-runtime-ports.ts +5 -2
- package/src/runtime/spots/spot-serial-executor.ts +1 -1
- package/src/runtime/spots/spot-serial-turn-executor.ts +25 -40
- package/src/runtime/spots/spot-subscription-dispatch.ts +9 -2
- package/src/runtime/spots/spot-timer.ts +1 -1
- package/src/runtime/streams/actor-session-binding-registry.ts +46 -3
- package/src/runtime/streams/bound-actor-relay-sender.ts +16 -5
- package/src/runtime/streams/bound-session-service.ts +10 -7
- package/src/runtime/streams/index.ts +30 -4
- package/src/runtime/streams/managed-stream.ts +2 -1
- package/src/runtime/streams/session-calls.ts +9 -14
- package/src/runtime/streams/session-context.ts +6 -11
- package/src/runtime/streams/stream-session-runtime.ts +79 -40
- package/dist/runtime/spots/spot-lifecycle-metrics.d.ts +0 -8
- package/dist/runtime/spots/spot-lifecycle-metrics.js +0 -17
- package/src/runtime/spots/spot-lifecycle-metrics.ts +0 -16
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ZLinkHandlerMessageType } from '../../contracts/Common/HandlerMessageType';
|
|
1
2
|
import type { ZLinkMeshDispatchAdmission } from '../admission';
|
|
2
3
|
import type {
|
|
3
4
|
RoutingId,
|
|
@@ -42,12 +43,14 @@ import { codecsForFrameworkPacket } from './channel-framework-packets';
|
|
|
42
43
|
import {
|
|
43
44
|
ZLinkChannelDispatchPipeline,
|
|
44
45
|
type ZLinkChannelDispatchFields,
|
|
46
|
+
type ZLinkOneWayDispatch,
|
|
45
47
|
type ZLinkRequestDispatch
|
|
46
48
|
} from './channel-dispatch-pipeline';
|
|
47
49
|
|
|
48
50
|
export interface ZLinkChannelRequestDispatcherOptions {
|
|
49
51
|
readonly meshName?: string;
|
|
50
52
|
readonly channelName: string;
|
|
53
|
+
readonly receivedAtClock?: () => Date;
|
|
51
54
|
/**
|
|
52
55
|
* Mesh channels use the routed message context so a handler can associate
|
|
53
56
|
* a report with the node that sent it.
|
|
@@ -55,8 +58,14 @@ export interface ZLinkChannelRequestDispatcherOptions {
|
|
|
55
58
|
readonly routeMesh?: boolean;
|
|
56
59
|
readonly codecs?: ZLinkChannelEnvelopeCodecRegistry;
|
|
57
60
|
readonly dispatchErrors: ZLinkDispatchErrorReporter;
|
|
58
|
-
readonly handlers: ReadonlyMap<
|
|
59
|
-
|
|
61
|
+
readonly handlers: ReadonlyMap<
|
|
62
|
+
string,
|
|
63
|
+
Pick<ZLinkRequestDispatch<ZLinkMessageContext>, 'handler' | 'messageType'>
|
|
64
|
+
>;
|
|
65
|
+
readonly sendHandlers?: ReadonlyMap<
|
|
66
|
+
string,
|
|
67
|
+
Pick<ZLinkOneWayDispatch<ZLinkMessageContext>, 'handler' | 'messageType'>
|
|
68
|
+
>;
|
|
60
69
|
readonly filters?: readonly ZLinkHandlerFilter[];
|
|
61
70
|
readonly unhandled?: ZLinkUnhandledDispatchOptions;
|
|
62
71
|
}
|
|
@@ -72,6 +81,7 @@ export interface ZLinkChannelSendHandler {
|
|
|
72
81
|
}
|
|
73
82
|
|
|
74
83
|
export interface ZLinkRouteHandlerRegistration {
|
|
84
|
+
readonly messageType?: ZLinkHandlerMessageType;
|
|
75
85
|
readonly kind: 'send' | 'request';
|
|
76
86
|
readonly packetName: string;
|
|
77
87
|
readonly handler: ZLinkRouteRuntimeSendHandler | ZLinkRouteRuntimeRequestHandler;
|
|
@@ -115,7 +125,8 @@ export class ZLinkChannelRequestDispatcher {
|
|
|
115
125
|
reply(routingId: unknown, replyToken: unknown): ZLinkMultipartReplyOperation;
|
|
116
126
|
},
|
|
117
127
|
signal?: AbortSignal,
|
|
118
|
-
decodedHeader?: ZLinkChannelEnvelopeHeader
|
|
128
|
+
decodedHeader?: ZLinkChannelEnvelopeHeader,
|
|
129
|
+
receivedAt: Date = this.options.receivedAtClock?.() ?? new Date()
|
|
119
130
|
): Promise<boolean | void> {
|
|
120
131
|
if (received.spotId !== null && received.spotId !== undefined) {
|
|
121
132
|
if (received.send === undefined) {
|
|
@@ -176,13 +187,15 @@ export class ZLinkChannelRequestDispatcher {
|
|
|
176
187
|
contentType: envelope.header.contentType,
|
|
177
188
|
packetName,
|
|
178
189
|
metadata: zlinkMessageMetadata(envelope.header.metadata),
|
|
179
|
-
correlationId
|
|
190
|
+
correlationId,
|
|
191
|
+
receivedAt
|
|
180
192
|
};
|
|
181
193
|
await this.pipeline.dispatchOneWay({
|
|
182
194
|
fields,
|
|
183
195
|
envelope,
|
|
184
196
|
codecs: this.options.codecs,
|
|
185
|
-
handler,
|
|
197
|
+
handler: handler?.handler,
|
|
198
|
+
messageType: handler?.messageType,
|
|
186
199
|
context,
|
|
187
200
|
signal
|
|
188
201
|
});
|
|
@@ -211,13 +224,15 @@ export class ZLinkChannelRequestDispatcher {
|
|
|
211
224
|
contentType: envelope.header.contentType,
|
|
212
225
|
packetName,
|
|
213
226
|
metadata: zlinkMessageMetadata(envelope.header.metadata),
|
|
214
|
-
correlationId
|
|
227
|
+
correlationId,
|
|
228
|
+
receivedAt
|
|
215
229
|
};
|
|
216
230
|
await this.pipeline.dispatchRequest({
|
|
217
231
|
fields: requestFields,
|
|
218
232
|
envelope,
|
|
219
233
|
codecs: this.options.codecs,
|
|
220
|
-
handler,
|
|
234
|
+
handler: handler?.handler,
|
|
235
|
+
messageType: handler?.messageType,
|
|
221
236
|
context,
|
|
222
237
|
signal,
|
|
223
238
|
missingHandlerMessage: `No channel request handler is registered for '${this.options.channelName}:${packetName}'.`,
|
|
@@ -276,6 +291,7 @@ export class ZLinkChannelRequestDispatcher {
|
|
|
276
291
|
}
|
|
277
292
|
const correlationId = envelope.header.correlationId ?? undefined;
|
|
278
293
|
if (envelope.header.kind === ZLinkChannelMessageKind.Command) {
|
|
294
|
+
const handler = this.options.sendHandlers?.get(packetName);
|
|
279
295
|
return this.pipeline.dispatchOneWay(
|
|
280
296
|
{
|
|
281
297
|
fields: {
|
|
@@ -287,8 +303,9 @@ export class ZLinkChannelRequestDispatcher {
|
|
|
287
303
|
},
|
|
288
304
|
envelope,
|
|
289
305
|
codecs: this.options.codecs,
|
|
290
|
-
handler:
|
|
291
|
-
|
|
306
|
+
handler: handler?.handler,
|
|
307
|
+
messageType: handler?.messageType,
|
|
308
|
+
context: this.createMeshContext(envelope, record.sourceNodeRid, record.receivedAt),
|
|
292
309
|
signal
|
|
293
310
|
},
|
|
294
311
|
admit
|
|
@@ -310,7 +327,7 @@ export class ZLinkChannelRequestDispatcher {
|
|
|
310
327
|
envelope,
|
|
311
328
|
this.options.codecs,
|
|
312
329
|
this.options.handlers.get(packetName),
|
|
313
|
-
this.createMeshContext(envelope, record.sourceNodeRid),
|
|
330
|
+
this.createMeshContext(envelope, record.sourceNodeRid, record.receivedAt),
|
|
314
331
|
signal,
|
|
315
332
|
record,
|
|
316
333
|
'channel',
|
|
@@ -333,7 +350,8 @@ export class ZLinkChannelRequestDispatcher {
|
|
|
333
350
|
|
|
334
351
|
private createMeshContext(
|
|
335
352
|
envelope: ReturnType<typeof decodeChannelEnvelope>,
|
|
336
|
-
sourceNodeRid: unknown
|
|
353
|
+
sourceNodeRid: unknown,
|
|
354
|
+
receivedAt?: Date
|
|
337
355
|
): ZLinkMessageContext {
|
|
338
356
|
const base = {
|
|
339
357
|
meshName: this.options.meshName,
|
|
@@ -341,7 +359,8 @@ export class ZLinkChannelRequestDispatcher {
|
|
|
341
359
|
contentType: envelope.header.contentType,
|
|
342
360
|
packetName: envelope.packetName!,
|
|
343
361
|
metadata: zlinkMessageMetadata(envelope.header.metadata),
|
|
344
|
-
correlationId: envelope.header.correlationId ?? undefined
|
|
362
|
+
correlationId: envelope.header.correlationId ?? undefined,
|
|
363
|
+
receivedAt: receivedAt ?? this.options.receivedAtClock?.() ?? new Date()
|
|
345
364
|
};
|
|
346
365
|
if (this.options.routeMesh !== true) {
|
|
347
366
|
return base;
|
|
@@ -366,7 +385,8 @@ class ZLinkMeshRequestDispatch<
|
|
|
366
385
|
readonly fields: ZLinkChannelDispatchFields,
|
|
367
386
|
readonly envelope: ReturnType<typeof decodeChannelEnvelope>,
|
|
368
387
|
readonly codecs: ZLinkChannelEnvelopeCodecRegistry | undefined,
|
|
369
|
-
readonly
|
|
388
|
+
private readonly registration:
|
|
389
|
+
Pick<ZLinkRequestDispatch<TContext>, 'handler' | 'messageType'> | undefined,
|
|
370
390
|
readonly context: TContext,
|
|
371
391
|
readonly signal: AbortSignal | undefined,
|
|
372
392
|
private readonly record: ReceiveRecord,
|
|
@@ -374,6 +394,14 @@ class ZLinkMeshRequestDispatch<
|
|
|
374
394
|
private readonly channelName: string
|
|
375
395
|
) {}
|
|
376
396
|
|
|
397
|
+
get handler(): ZLinkRequestDispatch<TContext>['handler'] {
|
|
398
|
+
return this.registration?.handler;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
get messageType(): ZLinkHandlerMessageType | undefined {
|
|
402
|
+
return this.registration?.messageType;
|
|
403
|
+
}
|
|
404
|
+
|
|
377
405
|
get missingHandlerMessage(): string {
|
|
378
406
|
return `No ${this.handlerSurface} request handler is registered for '${this.channelName}:${this.fields.packetName}'.`;
|
|
379
407
|
}
|
|
@@ -402,9 +430,13 @@ function requireMeshReplyAccepted(result: number): void {
|
|
|
402
430
|
export interface ZLinkChannelPublishDispatcherOptions {
|
|
403
431
|
readonly meshName?: string;
|
|
404
432
|
readonly channelName: string;
|
|
433
|
+
readonly receivedAtClock?: () => Date;
|
|
405
434
|
readonly codecs?: ZLinkChannelEnvelopeCodecRegistry;
|
|
406
435
|
readonly dispatchErrors: ZLinkDispatchErrorReporter;
|
|
407
|
-
readonly handlers: ReadonlyMap<
|
|
436
|
+
readonly handlers: ReadonlyMap<
|
|
437
|
+
string,
|
|
438
|
+
Pick<ZLinkOneWayDispatch<ZLinkPublishMessageContext>, 'handler' | 'messageType'>
|
|
439
|
+
>;
|
|
408
440
|
readonly filters?: readonly ZLinkHandlerFilter[];
|
|
409
441
|
readonly unhandled?: ZLinkUnhandledDispatchOptions;
|
|
410
442
|
readonly metrics?: ZLinkRuntimeMetrics;
|
|
@@ -430,7 +462,8 @@ export class ZLinkChannelPublishDispatcher {
|
|
|
430
462
|
async dispatch(
|
|
431
463
|
topicMessage: { readonly topic: string; readonly parts: readonly Message[] },
|
|
432
464
|
signal?: AbortSignal,
|
|
433
|
-
decodedHeader?: ZLinkChannelEnvelopeHeader
|
|
465
|
+
decodedHeader?: ZLinkChannelEnvelopeHeader,
|
|
466
|
+
receivedAt: Date = this.options.receivedAtClock?.() ?? new Date()
|
|
434
467
|
): Promise<void> {
|
|
435
468
|
if (topicMessage.parts.length === 0 || topicMessage.parts[0].data().length === 0) {
|
|
436
469
|
return;
|
|
@@ -482,13 +515,15 @@ export class ZLinkChannelPublishDispatcher {
|
|
|
482
515
|
topic: publishTopic,
|
|
483
516
|
source: publishSource,
|
|
484
517
|
metadata: zlinkMessageMetadata(envelope.header.metadata),
|
|
485
|
-
correlationId: publishCorr
|
|
518
|
+
correlationId: publishCorr,
|
|
519
|
+
receivedAt
|
|
486
520
|
};
|
|
487
521
|
await this.pipeline.dispatchOneWay({
|
|
488
522
|
fields,
|
|
489
523
|
envelope,
|
|
490
524
|
codecs: this.options.codecs,
|
|
491
|
-
handler,
|
|
525
|
+
handler: handler?.handler,
|
|
526
|
+
messageType: handler?.messageType,
|
|
492
527
|
context,
|
|
493
528
|
signal
|
|
494
529
|
});
|
|
@@ -497,6 +532,7 @@ export class ZLinkChannelPublishDispatcher {
|
|
|
497
532
|
|
|
498
533
|
export interface ZLinkRoutePacketDispatcherOptions {
|
|
499
534
|
readonly routerChannelId: string;
|
|
535
|
+
readonly receivedAtClock?: () => Date;
|
|
500
536
|
readonly codecs?: ZLinkChannelEnvelopeCodecRegistry;
|
|
501
537
|
readonly dispatchErrors: ZLinkDispatchErrorReporter;
|
|
502
538
|
readonly handlers: readonly ZLinkRouteHandlerRegistration[];
|
|
@@ -510,28 +546,34 @@ export function collectRouteChannelHandlers(
|
|
|
510
546
|
): ZLinkRouteHandlerRegistration[] {
|
|
511
547
|
return [
|
|
512
548
|
...(routeChannel.handlers ?? []),
|
|
513
|
-
...(routeChannel.sendHandlers ?? []).map((
|
|
549
|
+
...(routeChannel.sendHandlers ?? []).map((registration): ZLinkRouteHandlerRegistration => ({
|
|
514
550
|
kind: 'send',
|
|
515
|
-
|
|
516
|
-
handler: handler.handler
|
|
551
|
+
...registration
|
|
517
552
|
})),
|
|
518
|
-
...(routeChannel.requestHandlers ?? []).map((
|
|
553
|
+
...(routeChannel.requestHandlers ?? []).map((registration): ZLinkRouteHandlerRegistration => ({
|
|
519
554
|
kind: 'request',
|
|
520
|
-
|
|
521
|
-
handler: handler.handler
|
|
555
|
+
...registration
|
|
522
556
|
}))
|
|
523
557
|
];
|
|
524
558
|
}
|
|
525
559
|
|
|
526
560
|
export class ZLinkRoutePacketDispatcher {
|
|
527
|
-
private readonly sendHandlers = new Map<
|
|
528
|
-
|
|
561
|
+
private readonly sendHandlers = new Map<
|
|
562
|
+
string,
|
|
563
|
+
Pick<ZLinkOneWayDispatch<ZLinkRouteMessageContext>, 'handler' | 'messageType'>
|
|
564
|
+
>();
|
|
565
|
+
private readonly requestHandlers = new Map<
|
|
566
|
+
string,
|
|
567
|
+
Pick<ZLinkRequestDispatch<ZLinkRouteMessageContext>, 'handler' | 'messageType'>
|
|
568
|
+
>();
|
|
529
569
|
private readonly codecs?: ZLinkChannelEnvelopeCodecRegistry;
|
|
570
|
+
private readonly receivedAtClock: () => Date;
|
|
530
571
|
private readonly pipeline: ZLinkChannelDispatchPipeline;
|
|
531
572
|
|
|
532
573
|
constructor(options: ZLinkRoutePacketDispatcherOptions) {
|
|
533
574
|
this.routerChannelId = options.routerChannelId;
|
|
534
575
|
this.codecs = options.codecs;
|
|
576
|
+
this.receivedAtClock = options.receivedAtClock ?? (() => new Date());
|
|
535
577
|
this.dispatchErrors = options.dispatchErrors;
|
|
536
578
|
this.pipeline = new ZLinkChannelDispatchPipeline({
|
|
537
579
|
dispatchErrors: options.dispatchErrors,
|
|
@@ -548,7 +590,7 @@ export class ZLinkRoutePacketDispatcher {
|
|
|
548
590
|
`Duplicate routed handler '${options.routerChannelId}:${handler.kind}:${handler.packetName}'.`
|
|
549
591
|
);
|
|
550
592
|
}
|
|
551
|
-
target.set(handler.packetName, handler
|
|
593
|
+
target.set(handler.packetName, handler as never);
|
|
552
594
|
}
|
|
553
595
|
}
|
|
554
596
|
|
|
@@ -605,7 +647,8 @@ export class ZLinkRoutePacketDispatcher {
|
|
|
605
647
|
},
|
|
606
648
|
signal?: AbortSignal,
|
|
607
649
|
decodedHeader?: ZLinkChannelEnvelopeHeader,
|
|
608
|
-
infrastructureChecked = false
|
|
650
|
+
infrastructureChecked = false,
|
|
651
|
+
receivedAt: Date = this.receivedAtClock()
|
|
609
652
|
): Promise<boolean | void> {
|
|
610
653
|
const channelHeader =
|
|
611
654
|
decodedHeader ?? tryDecodeChannelHeader(received.parts, this.flowEnabled());
|
|
@@ -667,8 +710,9 @@ export class ZLinkRoutePacketDispatcher {
|
|
|
667
710
|
fields,
|
|
668
711
|
envelope,
|
|
669
712
|
codecs: codecsForFrameworkPacket(packetName, this.codecs),
|
|
670
|
-
handler,
|
|
671
|
-
|
|
713
|
+
handler: handler?.handler,
|
|
714
|
+
messageType: handler?.messageType,
|
|
715
|
+
context: this.createRouteContext(envelope, received.routingId, receivedAt),
|
|
672
716
|
signal
|
|
673
717
|
});
|
|
674
718
|
return;
|
|
@@ -705,8 +749,9 @@ export class ZLinkRoutePacketDispatcher {
|
|
|
705
749
|
fields: requestFields,
|
|
706
750
|
envelope,
|
|
707
751
|
codecs,
|
|
708
|
-
handler,
|
|
709
|
-
|
|
752
|
+
handler: handler?.handler,
|
|
753
|
+
messageType: handler?.messageType,
|
|
754
|
+
context: this.createRouteContext(envelope, received.routingId, receivedAt),
|
|
710
755
|
signal,
|
|
711
756
|
missingHandlerMessage: `No routed request handler is registered for '${this.routerChannelId}:${packetName}'.`,
|
|
712
757
|
writeReply: (reply) =>
|
|
@@ -769,7 +814,8 @@ export class ZLinkRoutePacketDispatcher {
|
|
|
769
814
|
sourceNodeRid,
|
|
770
815
|
record.sourceNodeRid,
|
|
771
816
|
signal,
|
|
772
|
-
admit
|
|
817
|
+
admit,
|
|
818
|
+
record.receivedAt ?? this.receivedAtClock()
|
|
773
819
|
);
|
|
774
820
|
}
|
|
775
821
|
if (envelope.header.kind !== ZLinkChannelMessageKind.Request) {
|
|
@@ -789,7 +835,7 @@ export class ZLinkRoutePacketDispatcher {
|
|
|
789
835
|
envelope,
|
|
790
836
|
codecsForFrameworkPacket(packetName, this.codecs),
|
|
791
837
|
this.requestHandlers.get(packetName),
|
|
792
|
-
this.createRouteContext(envelope, record.sourceNodeRid),
|
|
838
|
+
this.createRouteContext(envelope, record.sourceNodeRid, record.receivedAt),
|
|
793
839
|
signal,
|
|
794
840
|
record,
|
|
795
841
|
'routed',
|
|
@@ -804,6 +850,7 @@ export class ZLinkRoutePacketDispatcher {
|
|
|
804
850
|
sourceNodeRid: RoutingId,
|
|
805
851
|
signal?: AbortSignal
|
|
806
852
|
): Promise<void> {
|
|
853
|
+
const receivedAt = this.receivedAtClock();
|
|
807
854
|
if (parts.length === 0 || parts[0].data().length === 0) return;
|
|
808
855
|
let envelope: ReturnType<typeof decodeChannelEnvelope>;
|
|
809
856
|
try {
|
|
@@ -832,7 +879,9 @@ export class ZLinkRoutePacketDispatcher {
|
|
|
832
879
|
packetName,
|
|
833
880
|
String(sourceNodeRid),
|
|
834
881
|
sourceNodeRid,
|
|
835
|
-
signal
|
|
882
|
+
signal,
|
|
883
|
+
undefined,
|
|
884
|
+
receivedAt
|
|
836
885
|
);
|
|
837
886
|
}
|
|
838
887
|
|
|
@@ -842,8 +891,10 @@ export class ZLinkRoutePacketDispatcher {
|
|
|
842
891
|
sourceRid: string,
|
|
843
892
|
sourceNodeRid: unknown,
|
|
844
893
|
signal?: AbortSignal,
|
|
845
|
-
admit?: ZLinkMeshDispatchAdmission
|
|
894
|
+
admit?: ZLinkMeshDispatchAdmission,
|
|
895
|
+
receivedAt: Date = this.receivedAtClock()
|
|
846
896
|
): void | Promise<void> {
|
|
897
|
+
const handler = this.sendHandlers.get(packetName);
|
|
847
898
|
return this.pipeline.dispatchOneWay(
|
|
848
899
|
{
|
|
849
900
|
fields: {
|
|
@@ -856,8 +907,9 @@ export class ZLinkRoutePacketDispatcher {
|
|
|
856
907
|
},
|
|
857
908
|
envelope,
|
|
858
909
|
codecs: codecsForFrameworkPacket(packetName, this.codecs),
|
|
859
|
-
handler:
|
|
860
|
-
|
|
910
|
+
handler: handler?.handler,
|
|
911
|
+
messageType: handler?.messageType,
|
|
912
|
+
context: this.createRouteContext(envelope, sourceNodeRid, receivedAt),
|
|
861
913
|
signal
|
|
862
914
|
},
|
|
863
915
|
admit
|
|
@@ -873,7 +925,8 @@ export class ZLinkRoutePacketDispatcher {
|
|
|
873
925
|
|
|
874
926
|
private createRouteContext(
|
|
875
927
|
envelope: ReturnType<typeof decodeChannelEnvelope>,
|
|
876
|
-
sourceRid: unknown
|
|
928
|
+
sourceRid: unknown,
|
|
929
|
+
receivedAt: Date = this.receivedAtClock()
|
|
877
930
|
): ZLinkRouteMessageContext {
|
|
878
931
|
const sourceNodeRid = String(sourceRid ?? '');
|
|
879
932
|
return {
|
|
@@ -882,7 +935,8 @@ export class ZLinkRoutePacketDispatcher {
|
|
|
882
935
|
contentType: envelope.header.contentType,
|
|
883
936
|
sourceNodeRid,
|
|
884
937
|
metadata: zlinkMessageMetadata(envelope.header.metadata),
|
|
885
|
-
correlationId: envelope.header.correlationId ?? undefined
|
|
938
|
+
correlationId: envelope.header.correlationId ?? undefined,
|
|
939
|
+
receivedAt
|
|
886
940
|
};
|
|
887
941
|
}
|
|
888
942
|
}
|