@zlink-systems/framework 0.20.0 → 0.22.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/Common/ZLinkMessage.js +5 -5
- package/dist/contracts/Configuration/CodecContentType.js +5 -7
- package/dist/contracts/Configuration/DiagnosticsValidation.js +1 -6
- package/dist/contracts/Configuration/EndpointNotation.js +4 -8
- package/dist/contracts/Configuration/Registration.js +14 -11
- package/dist/contracts/Configuration/RegistrationBuilders.js +32 -25
- package/dist/contracts/Configuration/RegistrationNormalizers.js +25 -26
- package/dist/contracts/Configuration/RegistrationValidators.js +36 -38
- package/dist/contracts/Configuration/SendTimeoutValidation.js +4 -4
- package/dist/contracts/Configuration/TimerRegistrationValidator.js +7 -7
- package/dist/contracts/Handlers/JsonContract.js +23 -11
- package/dist/contracts/Spots/SpotKind.js +16 -8
- package/dist/location-store-integration.js +16 -16
- package/dist/nest-integration.js +17 -11
- package/dist/runtime/abort.js +9 -5
- package/dist/runtime/actors/actor-authority-payload-codec.js +12 -16
- package/dist/runtime/actors/actor-authority-publication.js +18 -17
- package/dist/runtime/actors/actor-client.js +83 -63
- package/dist/runtime/actors/actor-context.js +24 -18
- package/dist/runtime/actors/actor-creation.js +4 -3
- package/dist/runtime/actors/actor-handoff.js +89 -92
- package/dist/runtime/actors/actor-local-native-join.js +18 -19
- package/dist/runtime/actors/actor-mailbox.js +1 -1
- package/dist/runtime/actors/actor-message-follow-context.js +24 -21
- package/dist/runtime/actors/actor-packet-relay-wire.js +1 -3
- package/dist/runtime/actors/actor-remote-joiner.js +20 -17
- package/dist/runtime/actors/actor-remote-wire.js +6 -7
- package/dist/runtime/actors/actor-runtime-state.js +87 -81
- package/dist/runtime/actors/actor-transfer-registry.js +3 -5
- package/dist/runtime/actors/bound-session-wire.js +14 -9
- package/dist/runtime/actors/deferred-join-accepted-journal.js +158 -124
- package/dist/runtime/actors/index.js +2 -5
- package/dist/runtime/actors/post-commit-actor-binder.js +3 -6
- package/dist/runtime/actors/post-commit-actor-location.js +1 -1
- package/dist/runtime/actors/spot-actor-dispatch.js +5 -5
- package/dist/runtime/actors/transferred-actor-rollback.js +4 -4
- package/dist/runtime/admission.js +2 -6
- package/dist/runtime/application-jobs/application-ingress-record-owner.js +2 -6
- package/dist/runtime/application-jobs/receive-flow-controller.js +11 -12
- package/dist/runtime/backend/mesh-completion-table.js +1 -3
- package/dist/runtime/backend/mesh-dispatch-pump.js +12 -16
- package/dist/runtime/backend/node/node-backend-adapter-factory.js +1 -3
- package/dist/runtime/backend/node/node-backend-adapter-support.js +26 -17
- package/dist/runtime/backend/node/node-mesh-backend-adapter.js +4 -3
- package/dist/runtime/backend/node/node-raw-binding-port.js +7 -6
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +116 -113
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +12 -13
- package/dist/runtime/backend/runtime-message.js +3 -3
- package/dist/runtime/backend/runtime-values.d.ts +2 -2
- package/dist/runtime/backend/runtime-values.js +4 -5
- package/dist/runtime/channels/channel-clients.js +27 -24
- package/dist/runtime/channels/channel-dispatch-pipeline.js +10 -18
- package/dist/runtime/channels/channel-dispatch-services.js +7 -4
- package/dist/runtime/channels/channel-dispatchers.js +9 -9
- package/dist/runtime/channels/channel-envelope-inspection.js +16 -13
- package/dist/runtime/channels/channel-envelope.js +83 -47
- package/dist/runtime/channels/channel-outbound-operations.js +8 -8
- package/dist/runtime/channels/channel-receive-loops.js +20 -22
- package/dist/runtime/channels/channel-receive-task-tracker.js +1 -1
- package/dist/runtime/channels/channel-runtime-lifecycle.js +61 -56
- package/dist/runtime/channels/channel-runtime-manager.js +18 -9
- package/dist/runtime/channels/channel-socket-registry.js +126 -123
- package/dist/runtime/channels/channel-transports.js +43 -33
- package/dist/runtime/channels/client-server-location-runtime.js +32 -40
- package/dist/runtime/channels/client-server-service-wire.js +29 -22
- package/dist/runtime/channels/dispatch-error-reporter.js +9 -7
- package/dist/runtime/channels/fanout-location-runtime.js +34 -47
- package/dist/runtime/channels/fanout-service-wire.js +3 -5
- package/dist/runtime/channels/local-spot-route-transport.js +7 -1
- package/dist/runtime/channels/route-member-snapshot.js +3 -3
- package/dist/runtime/channels/source-spot-router.js +6 -2
- package/dist/runtime/channels/spot-route-bridge-transport.js +5 -2
- package/dist/runtime/channels/spot-route-dispatch-strategy.js +2 -2
- package/dist/runtime/channels/spot-route-target-resolver.js +6 -6
- package/dist/runtime/diagnostics/index.js +38 -10
- package/dist/runtime/diagnostics/message-flow.js +47 -39
- package/dist/runtime/diagnostics/runtime-metrics.js +18 -9
- package/dist/runtime/diagnostics/runtime-observation-queue.js +8 -10
- package/dist/runtime/diagnostics/topology-runtime-projections.js +17 -10
- package/dist/runtime/execution/index.js +7 -6
- package/dist/runtime/execution/serial-execution-queue.js +12 -18
- package/dist/runtime/execution/state-lane.js +2 -2
- package/dist/runtime/foundation/actor-join-recovery-codec.js +31 -23
- package/dist/runtime/foundation/event-loop-resources.js +4 -4
- package/dist/runtime/foundation/message-follow-suppression-registry.js +4 -4
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +136 -136
- package/dist/runtime/foundation/route-mesh-connection-policy.js +4 -4
- package/dist/runtime/foundation/runtime-state-projections.js +22 -11
- package/dist/runtime/foundation/service-authority-payload-codec.js +13 -15
- package/dist/runtime/foundation/service-discovery-registry.js +35 -33
- package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +20 -22
- package/dist/runtime/foundation/service-liveness-registry.js +16 -12
- package/dist/runtime/foundation/service-maintenance-runtime.js +2 -4
- package/dist/runtime/foundation/service-relocation-aggregate-committer.js +24 -24
- package/dist/runtime/foundation/service-relocation-object-owner.js +6 -6
- package/dist/runtime/foundation/service-relocation-runtime.js +137 -94
- package/dist/runtime/foundation/service-runtime-contracts.js +5 -5
- package/dist/runtime/foundation/service-stateful-registry.js +24 -23
- package/dist/runtime/foundation/service-stateful-runtime.js +416 -438
- package/dist/runtime/foundation/service-stateful-wire-codec.js +95 -98
- package/dist/runtime/foundation/service-topology-registry.js +96 -95
- package/dist/runtime/foundation/service-weighted-selection.js +6 -11
- package/dist/runtime/foundation/service-wire-binary-primitives.js +5 -6
- package/dist/runtime/foundation/service-wire-m6a-codec.js +46 -35
- package/dist/runtime/framework-errors-internal.js +7 -10
- package/dist/runtime/handlers/handler-instance-scope.js +4 -5
- package/dist/runtime/handlers/index.js +3 -1
- package/dist/runtime/host/actor-packet-relay.js +74 -70
- package/dist/runtime/host/actor-placement-coordinator.js +29 -31
- package/dist/runtime/host/actor-runtime-options-factory.js +12 -14
- package/dist/runtime/host/actor-transfer-authority-runtime.js +7 -9
- package/dist/runtime/host/actor-transfer-runtime.js +176 -153
- package/dist/runtime/host/application-job-queue.js +18 -22
- package/dist/runtime/host/bound-session-relay.js +3 -1
- package/dist/runtime/host/channel-runtime-options-factory.js +31 -14
- package/dist/runtime/host/host-capacity-status.js +8 -4
- package/dist/runtime/host/index.js +244 -227
- package/dist/runtime/host/instance-activation-authority.js +93 -96
- package/dist/runtime/host/location-runtime-owner.js +16 -14
- package/dist/runtime/host/mesh-router-resolver.js +11 -13
- package/dist/runtime/host/relocation-direct-transfer.js +10 -9
- package/dist/runtime/host/remote-actor-join-receiver.js +20 -15
- package/dist/runtime/host/remote-actor-packet-target-store.js +18 -22
- package/dist/runtime/host/remote-bound-session-relay.js +97 -73
- package/dist/runtime/host/route-mesh-runtime.js +64 -69
- package/dist/runtime/host/runtime-shutdown.js +1 -2
- package/dist/runtime/host/service-relocation-host-runtime.js +586 -511
- package/dist/runtime/host/spot-address-transport.js +69 -71
- package/dist/runtime/host/spot-runtime-options-factory.js +30 -29
- package/dist/runtime/host/stateful-authority-route-runtime.js +65 -68
- package/dist/runtime/host/user-spot-creation-coordinator.js +61 -67
- package/dist/runtime/locations/actor-location-claims.js +26 -20
- package/dist/runtime/locations/aggregate-inventory-store.js +72 -75
- package/dist/runtime/locations/authority-key-codec.js +7 -7
- package/dist/runtime/locations/auto-connect-loop.js +3 -3
- package/dist/runtime/locations/auto-connect-planner.js +25 -19
- package/dist/runtime/locations/auto-connect-reconciler.js +51 -31
- package/dist/runtime/locations/in-memory-authority-store.js +128 -118
- package/dist/runtime/locations/in-memory-location-store.js +195 -168
- package/dist/runtime/locations/in-memory-provider-location-store.js +8 -10
- package/dist/runtime/locations/key-codec.js +1 -1
- package/dist/runtime/locations/lease-tracker.js +23 -21
- package/dist/runtime/locations/lifecycle.js +4 -5
- package/dist/runtime/locations/location-store-repository.js +368 -324
- package/dist/runtime/locations/opaque-record-key.js +2 -2
- package/dist/runtime/locations/resolvers.js +73 -82
- package/dist/runtime/locations/runtime.js +68 -63
- package/dist/runtime/locations/spot-location-claims.js +39 -35
- package/dist/runtime/messaging/framework-json-v1.js +7 -7
- package/dist/runtime/messaging/packet-name.js +7 -6
- package/dist/runtime/messaging/payload-codec.js +21 -18
- package/dist/runtime/protocol/service_wire_codec.generated.d.ts +30 -2
- package/dist/runtime/protocol/service_wire_codec.generated.js +1671 -234
- package/dist/runtime/routing-id.js +3 -5
- package/dist/runtime/spots/formal-remote-actor-admission-registry.js +35 -31
- package/dist/runtime/spots/formal-remote-actor-transfer-registry.js +1 -2
- package/dist/runtime/spots/index.js +208 -219
- package/dist/runtime/spots/spot-activation-registry.js +15 -14
- package/dist/runtime/spots/spot-activation-state.js +17 -15
- package/dist/runtime/spots/spot-activation.js +33 -16
- package/dist/runtime/spots/spot-actor-admission-coordinator.js +18 -15
- package/dist/runtime/spots/spot-actor-membership.js +1 -3
- package/dist/runtime/spots/spot-actor-packet-dispatch.js +23 -20
- package/dist/runtime/spots/spot-actor-packet-drain.js +12 -10
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +10 -6
- package/dist/runtime/spots/spot-closing.js +3 -7
- package/dist/runtime/spots/spot-context.js +2 -2
- package/dist/runtime/spots/spot-entry-activation.js +13 -14
- package/dist/runtime/spots/spot-handle.js +6 -3
- package/dist/runtime/spots/spot-handler-registry.js +12 -12
- package/dist/runtime/spots/spot-manager-public.js +5 -6
- package/dist/runtime/spots/spot-native-actor-join-admission.js +4 -3
- package/dist/runtime/spots/spot-node-autoconnect.js +15 -18
- package/dist/runtime/spots/spot-node-runtime-manager.js +74 -85
- package/dist/runtime/spots/spot-outbound.js +10 -14
- package/dist/runtime/spots/spot-remote-codec.js +22 -26
- package/dist/runtime/spots/spot-remote-route-codec.js +5 -7
- package/dist/runtime/spots/spot-route-packet-dispatch.js +16 -14
- package/dist/runtime/spots/spot-route-replies.js +4 -6
- package/dist/runtime/spots/spot-routed-actor-admission.js +9 -7
- package/dist/runtime/spots/spot-routed-bound-session-dispatch.js +1 -2
- package/dist/runtime/spots/spot-routed-frame-dispatch.js +5 -5
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +14 -10
- package/dist/runtime/spots/spot-serial-executor.js +5 -8
- package/dist/runtime/spots/spot-serial-turn-executor.js +4 -6
- package/dist/runtime/spots/spot-subscription-dispatch.js +5 -5
- package/dist/runtime/spots/spot-timer.js +25 -29
- package/dist/runtime/streams/actor-session-binding-registry.js +98 -107
- package/dist/runtime/streams/actor-session-lifecycle-coordinator.js +3 -1
- package/dist/runtime/streams/bound-actor-relay-sender.js +18 -16
- package/dist/runtime/streams/bound-session-service.js +8 -9
- package/dist/runtime/streams/index.js +20 -19
- package/dist/runtime/streams/managed-stream.js +32 -30
- package/dist/runtime/streams/native-fallback-bound-session.js +21 -17
- package/dist/runtime/streams/protocol.js +29 -18
- package/dist/runtime/streams/session-actor-coordinator.js +34 -37
- package/dist/runtime/streams/session-context.js +30 -28
- package/dist/runtime/streams/session-provider.js +2 -2
- package/dist/runtime/streams/session-serial-executor.js +1 -2
- package/dist/runtime/streams/stream-frame-factory.js +11 -5
- package/dist/runtime/streams/stream-session-runtime.js +70 -66
- package/dist/runtime/workers/index.js +15 -4
- package/package.json +2 -2
- package/src/contracts/Channels/RouteCalls.ts +6 -1
- package/src/contracts/Common/ZLinkMessage.ts +5 -5
- package/src/contracts/Common/ZLinkMessageMetadata.ts +4 -3
- package/src/contracts/Configuration/Builders.ts +14 -14
- package/src/contracts/Configuration/CodecContentType.ts +8 -10
- package/src/contracts/Configuration/DiagnosticsValidation.ts +1 -6
- package/src/contracts/Configuration/EndpointNotation.ts +11 -11
- package/src/contracts/Configuration/ObjectRoles.ts +1 -3
- package/src/contracts/Configuration/Registration.ts +46 -17
- package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +10 -8
- package/src/contracts/Configuration/RegistrationBuilders.ts +107 -96
- package/src/contracts/Configuration/RegistrationCodecRegistry.ts +9 -3
- package/src/contracts/Configuration/RegistrationNormalizers.ts +116 -84
- package/src/contracts/Configuration/RegistrationTypes.ts +21 -25
- package/src/contracts/Configuration/RegistrationValidators.ts +122 -73
- package/src/contracts/Configuration/RouteChannelInternalState.ts +1 -4
- package/src/contracts/Configuration/RuntimeEndpointConnections.ts +4 -1
- package/src/contracts/Configuration/SendTimeoutValidation.ts +6 -4
- package/src/contracts/Configuration/TimerRegistrationValidator.ts +8 -13
- package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -6
- package/src/contracts/Errors/index.ts +1 -4
- package/src/contracts/Handlers/Attributes.ts +15 -9
- package/src/contracts/Handlers/IZLinkChannelHandlers.ts +24 -4
- package/src/contracts/Handlers/JsonContract.ts +53 -19
- package/src/contracts/Locations/ActorTransfer.ts +1 -5
- package/src/contracts/Locations/Authority.ts +4 -11
- package/src/contracts/Locations/Keys.ts +6 -1
- package/src/contracts/Locations/Options.ts +3 -2
- package/src/contracts/Locations/RelocationStore.ts +1 -4
- package/src/contracts/Locations/Resolvers.ts +5 -5
- package/src/contracts/Locations/RuntimeQuery.ts +6 -2
- package/src/contracts/Locations/Stores.ts +1 -2
- package/src/contracts/Locations/index.ts +2 -8
- package/src/contracts/RouteMesh/Contracts.ts +1 -7
- package/src/contracts/RouteMesh/RuntimeTopology.ts +1 -4
- package/src/contracts/Spots/Contracts.ts +2 -8
- package/src/contracts/Spots/SpotKind.ts +16 -8
- package/src/contracts/Spots/ZLinkSpot.ts +8 -11
- package/src/contracts/Streams/IZLinkSession.ts +0 -1
- package/src/contracts/Streams/IZLinkSessionActor.ts +5 -1
- package/src/contracts/Streams/IZLinkSessionPacketHandler.ts +5 -1
- package/src/internal.ts +5 -4
- package/src/location-store-integration.ts +24 -16
- package/src/nest-integration.ts +40 -25
- package/src/runtime/abort.ts +10 -4
- package/src/runtime/actors/actor-authority-payload-codec.ts +20 -29
- package/src/runtime/actors/actor-authority-publication.ts +92 -77
- package/src/runtime/actors/actor-client.ts +162 -133
- package/src/runtime/actors/actor-context.ts +138 -130
- package/src/runtime/actors/actor-creation.ts +47 -44
- package/src/runtime/actors/actor-execution-context.ts +6 -4
- package/src/runtime/actors/actor-handoff.ts +269 -293
- package/src/runtime/actors/actor-join-deferred-scope.ts +5 -4
- package/src/runtime/actors/actor-lifecycle-snapshot.ts +5 -8
- package/src/runtime/actors/actor-local-native-join.ts +131 -159
- package/src/runtime/actors/actor-mailbox.ts +16 -19
- package/src/runtime/actors/actor-message-follow-context.ts +46 -36
- package/src/runtime/actors/actor-packet-relay-wire.ts +32 -21
- package/src/runtime/actors/actor-remote-joiner.ts +50 -54
- package/src/runtime/actors/actor-remote-wire.ts +9 -13
- package/src/runtime/actors/actor-routed-join-transport.ts +10 -2
- package/src/runtime/actors/actor-runtime-contracts.ts +2 -5
- package/src/runtime/actors/actor-runtime-state.ts +127 -124
- package/src/runtime/actors/actor-transfer-registry.ts +9 -14
- package/src/runtime/actors/actor-transport-delivery-gate.ts +4 -6
- package/src/runtime/actors/bound-session-wire.ts +37 -17
- package/src/runtime/actors/deferred-join-accepted-journal.ts +351 -320
- package/src/runtime/actors/index.ts +43 -86
- package/src/runtime/actors/post-commit-actor-binder.ts +10 -10
- package/src/runtime/actors/post-commit-actor-location.ts +30 -23
- package/src/runtime/actors/spot-actor-dispatch.ts +78 -53
- package/src/runtime/actors/transferred-actor-rollback.ts +18 -13
- package/src/runtime/admission.ts +9 -9
- package/src/runtime/application-jobs/application-ingress-record-owner.ts +5 -15
- package/src/runtime/application-jobs/application-job-queue-handler-start-gate.ts +3 -2
- package/src/runtime/application-jobs/receive-flow-controller.ts +17 -14
- package/src/runtime/backend/contracts/index.ts +73 -52
- package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -14
- package/src/runtime/backend/mesh-completion-table.ts +6 -9
- package/src/runtime/backend/mesh-dispatch-pump.ts +38 -30
- package/src/runtime/backend/node/node-backend-adapter-factory.ts +23 -21
- package/src/runtime/backend/node/node-backend-adapter-support.ts +36 -22
- package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +59 -58
- package/src/runtime/backend/node/node-event-loop-poller.ts +2 -10
- package/src/runtime/backend/node/node-mesh-backend-adapter.ts +12 -5
- package/src/runtime/backend/node/node-monitor-backend-adapter.ts +4 -3
- package/src/runtime/backend/node/node-raw-binding-port.ts +29 -29
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +335 -383
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +101 -54
- package/src/runtime/backend/runtime-message.ts +5 -3
- package/src/runtime/backend/runtime-values.ts +10 -7
- package/src/runtime/channels/channel-autoconnect.ts +1 -4
- package/src/runtime/channels/channel-clients.ts +93 -73
- package/src/runtime/channels/channel-dispatch-pipeline.ts +40 -42
- package/src/runtime/channels/channel-dispatch-services.ts +51 -49
- package/src/runtime/channels/channel-dispatchers.ts +152 -96
- package/src/runtime/channels/channel-envelope-inspection.ts +20 -16
- package/src/runtime/channels/channel-envelope.ts +256 -150
- package/src/runtime/channels/channel-multipart.ts +13 -5
- package/src/runtime/channels/channel-outbound-operations.ts +37 -41
- package/src/runtime/channels/channel-receive-loops.ts +102 -98
- package/src/runtime/channels/channel-receive-task-tracker.ts +1 -1
- package/src/runtime/channels/channel-runtime-lifecycle.ts +248 -190
- package/src/runtime/channels/channel-runtime-manager.ts +63 -37
- package/src/runtime/channels/channel-socket-options.ts +3 -10
- package/src/runtime/channels/channel-socket-registry.ts +331 -273
- package/src/runtime/channels/channel-transports.ts +215 -197
- package/src/runtime/channels/client-server-location-runtime.ts +116 -100
- package/src/runtime/channels/client-server-service-wire.ts +37 -36
- package/src/runtime/channels/dispatch-error-reporter.ts +11 -8
- package/src/runtime/channels/fanout-location-runtime.ts +91 -94
- package/src/runtime/channels/fanout-service-wire.ts +5 -12
- package/src/runtime/channels/handler-filter-scope.ts +1 -4
- package/src/runtime/channels/index.ts +1 -4
- package/src/runtime/channels/local-spot-route-transport.ts +20 -5
- package/src/runtime/channels/route-member-snapshot.ts +11 -5
- package/src/runtime/channels/router-socket-spot-route-transport.ts +1 -7
- package/src/runtime/channels/source-spot-router.ts +26 -22
- package/src/runtime/channels/spot-direct-envelope.ts +10 -8
- package/src/runtime/channels/spot-node-route-transport.ts +13 -16
- package/src/runtime/channels/spot-route-bridge-transport.ts +26 -9
- package/src/runtime/channels/spot-route-dispatch-strategy.ts +40 -13
- package/src/runtime/channels/spot-route-target-resolver.ts +18 -9
- package/src/runtime/codecs/index.ts +3 -2
- package/src/runtime/diagnostics/flow-context.ts +12 -3
- package/src/runtime/diagnostics/index.ts +96 -61
- package/src/runtime/diagnostics/internal-event-contracts.ts +87 -33
- package/src/runtime/diagnostics/message-flow.ts +95 -76
- package/src/runtime/diagnostics/runtime-metrics.ts +46 -24
- package/src/runtime/diagnostics/runtime-observation-queue.ts +17 -28
- package/src/runtime/diagnostics/topology-runtime-projections.ts +62 -43
- package/src/runtime/execution/index.ts +18 -26
- package/src/runtime/execution/serial-execution-queue.ts +31 -40
- package/src/runtime/execution/state-lane.ts +2 -2
- package/src/runtime/foundation/actor-join-recovery-codec.ts +69 -51
- package/src/runtime/foundation/event-loop-resources.ts +8 -4
- package/src/runtime/foundation/message-follow-suppression-registry.ts +7 -14
- package/src/runtime/foundation/operation-identity.ts +1 -2
- package/src/runtime/foundation/operation-registry.ts +8 -2
- package/src/runtime/foundation/raw-service-mesh-runtime.ts +312 -385
- package/src/runtime/foundation/route-mesh-connection-policy.ts +7 -8
- package/src/runtime/foundation/runtime-state-projections.ts +24 -23
- package/src/runtime/foundation/service-authority-payload-codec.ts +54 -57
- package/src/runtime/foundation/service-discovery-registry.ts +67 -59
- package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +28 -29
- package/src/runtime/foundation/service-liveness-registry.ts +18 -13
- package/src/runtime/foundation/service-mailbox.ts +14 -14
- package/src/runtime/foundation/service-maintenance-runtime.ts +22 -21
- package/src/runtime/foundation/service-metadata-codec.ts +2 -9
- package/src/runtime/foundation/service-relocation-aggregate-committer.ts +39 -36
- package/src/runtime/foundation/service-relocation-coordinator.ts +1 -4
- package/src/runtime/foundation/service-relocation-object-owner.ts +40 -58
- package/src/runtime/foundation/service-relocation-runtime.ts +292 -216
- package/src/runtime/foundation/service-runtime-contracts.ts +8 -8
- package/src/runtime/foundation/service-session-binding-ingress-port.ts +1 -4
- package/src/runtime/foundation/service-stateful-registry.ts +69 -59
- package/src/runtime/foundation/service-stateful-runtime.ts +1174 -1112
- package/src/runtime/foundation/service-stateful-wire-codec.ts +318 -270
- package/src/runtime/foundation/service-topology-registry.ts +157 -159
- package/src/runtime/foundation/service-weighted-selection.ts +9 -15
- package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -12
- package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -47
- package/src/runtime/framework-errors-internal.ts +31 -30
- package/src/runtime/handlers/handler-instance-scope.ts +18 -29
- package/src/runtime/handlers/index.ts +18 -8
- package/src/runtime/host/actor-packet-relay.ts +290 -261
- package/src/runtime/host/actor-placement-coordinator.ts +165 -150
- package/src/runtime/host/actor-runtime-options-factory.ts +89 -87
- package/src/runtime/host/actor-transfer-authority-runtime.ts +46 -38
- package/src/runtime/host/actor-transfer-runtime.ts +391 -395
- package/src/runtime/host/application-job-queue.ts +32 -48
- package/src/runtime/host/bound-session-relay.ts +7 -9
- package/src/runtime/host/channel-runtime-options-factory.ts +75 -35
- package/src/runtime/host/host-capacity-status.ts +10 -9
- package/src/runtime/host/index.ts +861 -789
- package/src/runtime/host/instance-activation-authority.ts +125 -143
- package/src/runtime/host/location-runtime-owner.ts +38 -26
- package/src/runtime/host/mesh-router-resolver.ts +30 -23
- package/src/runtime/host/relocation-direct-transfer.ts +15 -15
- package/src/runtime/host/relocation-integrity-fault-gate.ts +3 -2
- package/src/runtime/host/remote-actor-join-receiver.ts +43 -34
- package/src/runtime/host/remote-actor-packet-target-store.ts +54 -52
- package/src/runtime/host/remote-bound-session-relay.ts +274 -247
- package/src/runtime/host/route-mesh-runtime-options.ts +1 -3
- package/src/runtime/host/route-mesh-runtime.ts +227 -181
- package/src/runtime/host/runtime-shutdown.ts +4 -3
- package/src/runtime/host/service-relocation-control.ts +14 -5
- package/src/runtime/host/service-relocation-host-runtime.ts +1388 -1165
- package/src/runtime/host/spot-address-transport.ts +284 -237
- package/src/runtime/host/spot-node-runtime-options-factory.ts +14 -8
- package/src/runtime/host/spot-runtime-options-factory.ts +71 -62
- package/src/runtime/host/stateful-authority-route-runtime.ts +117 -116
- package/src/runtime/host/user-spot-creation-coordinator.ts +225 -220
- package/src/runtime/locations/actor-location-claims.ts +61 -49
- package/src/runtime/locations/actor-session-route-claims.ts +1 -4
- package/src/runtime/locations/aggregate-inventory-store.ts +105 -134
- package/src/runtime/locations/authority-key-codec.ts +13 -10
- package/src/runtime/locations/auto-connect-loop.ts +14 -11
- package/src/runtime/locations/auto-connect-planner.ts +42 -31
- package/src/runtime/locations/auto-connect-reconciler.ts +106 -63
- package/src/runtime/locations/canonical-codec.ts +3 -1
- package/src/runtime/locations/creation-operation-id.ts +4 -3
- package/src/runtime/locations/domain-store-contract.ts +13 -7
- package/src/runtime/locations/in-memory-authority-store.ts +232 -199
- package/src/runtime/locations/in-memory-location-store.ts +432 -250
- package/src/runtime/locations/in-memory-provider-location-store.ts +16 -17
- package/src/runtime/locations/internal-store-contracts.ts +95 -38
- package/src/runtime/locations/key-codec.ts +3 -4
- package/src/runtime/locations/lease-tracker.ts +36 -27
- package/src/runtime/locations/lifecycle-runtime.ts +15 -3
- package/src/runtime/locations/lifecycle.ts +33 -28
- package/src/runtime/locations/location-store-repository.ts +1329 -1185
- package/src/runtime/locations/opaque-record-key.ts +4 -9
- package/src/runtime/locations/resolvers.ts +201 -178
- package/src/runtime/locations/runtime.ts +251 -159
- package/src/runtime/locations/spot-location-claims.ts +110 -112
- package/src/runtime/messaging/creation-payload-codec.ts +4 -1
- package/src/runtime/messaging/framework-json-v1.ts +34 -15
- package/src/runtime/messaging/packet-name.ts +8 -6
- package/src/runtime/messaging/payload-codec.ts +70 -50
- package/src/runtime/messaging/submission-result.ts +6 -9
- package/src/runtime/protocol/service_wire_codec.generated.ts +1376 -159
- package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
- package/src/runtime/routing-id.ts +10 -7
- package/src/runtime/spots/formal-remote-actor-admission-registry.ts +56 -62
- package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +23 -20
- package/src/runtime/spots/index.ts +593 -563
- package/src/runtime/spots/spot-activation-registry.ts +38 -34
- package/src/runtime/spots/spot-activation-state.ts +43 -51
- package/src/runtime/spots/spot-activation.ts +179 -116
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +110 -78
- package/src/runtime/spots/spot-actor-join-dispatch.ts +57 -41
- package/src/runtime/spots/spot-actor-lifecycle-drain.ts +5 -7
- package/src/runtime/spots/spot-actor-membership.ts +25 -27
- package/src/runtime/spots/spot-actor-packet-dispatch.ts +184 -153
- package/src/runtime/spots/spot-actor-packet-drain.ts +54 -42
- package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +37 -39
- package/src/runtime/spots/spot-closing.ts +11 -12
- package/src/runtime/spots/spot-context.ts +46 -26
- package/src/runtime/spots/spot-entry-activation.ts +84 -65
- package/src/runtime/spots/spot-handle.ts +17 -15
- package/src/runtime/spots/spot-handler-registry.ts +44 -31
- package/src/runtime/spots/spot-location-claim.ts +5 -4
- package/src/runtime/spots/spot-manager-public.ts +62 -82
- package/src/runtime/spots/spot-native-actor-join-admission.ts +20 -16
- package/src/runtime/spots/spot-node-autoconnect.ts +54 -61
- package/src/runtime/spots/spot-node-runtime-manager.ts +230 -221
- package/src/runtime/spots/spot-outbound.ts +47 -59
- package/src/runtime/spots/spot-publisher-transport.ts +5 -4
- package/src/runtime/spots/spot-remote-codec.ts +66 -65
- package/src/runtime/spots/spot-remote-route-codec.ts +61 -41
- package/src/runtime/spots/spot-route-packet-dispatch.ts +128 -95
- package/src/runtime/spots/spot-route-replies.ts +23 -24
- package/src/runtime/spots/spot-route-reply-wire.ts +3 -2
- package/src/runtime/spots/spot-routed-actor-admission.ts +37 -27
- package/src/runtime/spots/spot-routed-bound-session-dispatch.ts +11 -17
- package/src/runtime/spots/spot-routed-frame-dispatch.ts +18 -15
- package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +35 -26
- package/src/runtime/spots/spot-routing-internal.ts +1 -4
- package/src/runtime/spots/spot-runtime-ports.ts +5 -5
- package/src/runtime/spots/spot-serial-executor.ts +5 -9
- package/src/runtime/spots/spot-serial-turn-executor.ts +19 -26
- package/src/runtime/spots/spot-subscription-dispatch.ts +56 -46
- package/src/runtime/spots/spot-timer.ts +98 -91
- package/src/runtime/streams/actor-session-binding-registry.ts +277 -235
- package/src/runtime/streams/actor-session-binding-runtime-owner.ts +7 -4
- package/src/runtime/streams/actor-session-lifecycle-coordinator.ts +3 -1
- package/src/runtime/streams/bound-actor-relay-sender.ts +53 -51
- package/src/runtime/streams/bound-session-response-target.ts +29 -8
- package/src/runtime/streams/bound-session-service.ts +39 -39
- package/src/runtime/streams/index.ts +176 -100
- package/src/runtime/streams/managed-stream.ts +98 -87
- package/src/runtime/streams/native-fallback-bound-session.ts +57 -52
- package/src/runtime/streams/protocol.ts +73 -43
- package/src/runtime/streams/session-actor-coordinator.ts +97 -89
- package/src/runtime/streams/session-calls.ts +2 -8
- package/src/runtime/streams/session-context.ts +66 -48
- package/src/runtime/streams/session-provider.ts +5 -7
- package/src/runtime/streams/session-serial-executor.ts +7 -6
- package/src/runtime/streams/stream-binding-runtime-ports.ts +79 -29
- package/src/runtime/streams/stream-frame-factory.ts +55 -38
- package/src/runtime/streams/stream-session-runtime.ts +268 -210
- package/src/runtime/workers/index.ts +68 -29
|
@@ -52,14 +52,18 @@ export function defineZLinkPacketJsonContract(
|
|
|
52
52
|
const contracts = packetJsonContracts();
|
|
53
53
|
const current = contracts.get(packetName);
|
|
54
54
|
if (current !== undefined && canonicalContract(current) !== canonicalContract(normalized)) {
|
|
55
|
-
throw new TypeError(
|
|
55
|
+
throw new TypeError(
|
|
56
|
+
`ZLink packet '${packetName}' has conflicting JSON contracts in one process.`
|
|
57
|
+
);
|
|
56
58
|
}
|
|
57
59
|
if (current !== undefined) return current;
|
|
58
60
|
contracts.set(packetName, normalized);
|
|
59
61
|
return normalized;
|
|
60
62
|
}
|
|
61
63
|
|
|
62
|
-
export function readZLinkPacketJsonContract(
|
|
64
|
+
export function readZLinkPacketJsonContract(
|
|
65
|
+
packetName: string
|
|
66
|
+
): ZLinkPacketJsonContract | undefined {
|
|
63
67
|
return packetJsonContracts().get(packetName);
|
|
64
68
|
}
|
|
65
69
|
|
|
@@ -72,10 +76,13 @@ function normalizeJsonSchema(
|
|
|
72
76
|
// the TypeScript signature describes the accepted shape.
|
|
73
77
|
const runtimeSchema: unknown = schema;
|
|
74
78
|
if (typeof runtimeSchema !== 'object' || runtimeSchema === null || depth > 64) {
|
|
75
|
-
throw new TypeError(
|
|
79
|
+
throw new TypeError(
|
|
80
|
+
'ZLink packet JSON schema must be an acyclic object with at most 64 levels.'
|
|
81
|
+
);
|
|
76
82
|
}
|
|
77
83
|
const normalizedSchema = runtimeSchema as ZLinkJsonSchema;
|
|
78
|
-
if (parents.has(normalizedSchema))
|
|
84
|
+
if (parents.has(normalizedSchema))
|
|
85
|
+
throw new TypeError('ZLink packet JSON schema must not contain a cycle.');
|
|
79
86
|
const nextParents = new Set(parents).add(normalizedSchema);
|
|
80
87
|
switch (normalizedSchema.type) {
|
|
81
88
|
case 'boolean':
|
|
@@ -88,9 +95,11 @@ function normalizeJsonSchema(
|
|
|
88
95
|
case 'bytes':
|
|
89
96
|
return Object.freeze({ type: normalizedSchema.type });
|
|
90
97
|
case 'enum': {
|
|
91
|
-
if (
|
|
92
|
-
|
|
93
|
-
|
|
98
|
+
if (
|
|
99
|
+
!Array.isArray(normalizedSchema.names) ||
|
|
100
|
+
normalizedSchema.names.length === 0 ||
|
|
101
|
+
normalizedSchema.names.some((name) => typeof name !== 'string' || name.length === 0)
|
|
102
|
+
) {
|
|
94
103
|
throw new TypeError('ZLink packet enum schema requires non-empty string names.');
|
|
95
104
|
}
|
|
96
105
|
if (new Set(normalizedSchema.names).size !== normalizedSchema.names.length) {
|
|
@@ -99,25 +108,45 @@ function normalizeJsonSchema(
|
|
|
99
108
|
return Object.freeze({ type: 'enum', names: Object.freeze([...normalizedSchema.names]) });
|
|
100
109
|
}
|
|
101
110
|
case 'nullable':
|
|
102
|
-
return Object.freeze({
|
|
111
|
+
return Object.freeze({
|
|
112
|
+
type: 'nullable',
|
|
113
|
+
value: normalizeJsonSchema(normalizedSchema.value, nextParents, depth + 1)
|
|
114
|
+
});
|
|
103
115
|
case 'array':
|
|
104
|
-
return Object.freeze({
|
|
116
|
+
return Object.freeze({
|
|
117
|
+
type: 'array',
|
|
118
|
+
items: normalizeJsonSchema(normalizedSchema.items, nextParents, depth + 1)
|
|
119
|
+
});
|
|
105
120
|
case 'record':
|
|
106
|
-
return Object.freeze({
|
|
121
|
+
return Object.freeze({
|
|
122
|
+
type: 'record',
|
|
123
|
+
values: normalizeJsonSchema(normalizedSchema.values, nextParents, depth + 1)
|
|
124
|
+
});
|
|
107
125
|
case 'object': {
|
|
108
126
|
const runtimeProperties: unknown = normalizedSchema.properties;
|
|
109
|
-
if (
|
|
127
|
+
if (
|
|
128
|
+
typeof runtimeProperties !== 'object' ||
|
|
129
|
+
runtimeProperties === null ||
|
|
130
|
+
Array.isArray(runtimeProperties)
|
|
131
|
+
) {
|
|
110
132
|
throw new TypeError('ZLink packet object schema properties must be an object.');
|
|
111
133
|
}
|
|
112
|
-
if (
|
|
113
|
-
|
|
134
|
+
if (
|
|
135
|
+
!Array.isArray(normalizedSchema.required) ||
|
|
136
|
+
normalizedSchema.required.some((name) => typeof name !== 'string' || name.length === 0)
|
|
137
|
+
) {
|
|
114
138
|
throw new TypeError('ZLink packet object schema required must contain property names.');
|
|
115
139
|
}
|
|
116
|
-
if (
|
|
140
|
+
if (
|
|
141
|
+
normalizedSchema.additionalProperties !== undefined &&
|
|
142
|
+
typeof normalizedSchema.additionalProperties !== 'boolean'
|
|
143
|
+
) {
|
|
117
144
|
throw new TypeError('ZLink packet object schema additionalProperties must be boolean.');
|
|
118
145
|
}
|
|
119
146
|
const properties: Record<string, ZLinkJsonSchema> = {};
|
|
120
|
-
for (const [name, property] of Object.entries(
|
|
147
|
+
for (const [name, property] of Object.entries(
|
|
148
|
+
runtimeProperties as Record<string, ZLinkJsonSchema>
|
|
149
|
+
)) {
|
|
121
150
|
if (name === '__proto__' || name === 'prototype' || name === 'constructor') {
|
|
122
151
|
throw new TypeError(`ZLink packet JSON property '${name}' is not allowed.`);
|
|
123
152
|
}
|
|
@@ -131,7 +160,9 @@ function normalizeJsonSchema(
|
|
|
131
160
|
throw new TypeError(`ZLink packet JSON property '${name}' is not allowed.`);
|
|
132
161
|
}
|
|
133
162
|
if (!Object.prototype.hasOwnProperty.call(properties, name)) {
|
|
134
|
-
throw new TypeError(
|
|
163
|
+
throw new TypeError(
|
|
164
|
+
`ZLink packet JSON required property '${name}' has no property schema.`
|
|
165
|
+
);
|
|
135
166
|
}
|
|
136
167
|
}
|
|
137
168
|
return Object.freeze({
|
|
@@ -144,12 +175,15 @@ function normalizeJsonSchema(
|
|
|
144
175
|
});
|
|
145
176
|
}
|
|
146
177
|
}
|
|
147
|
-
throw new TypeError(
|
|
178
|
+
throw new TypeError(
|
|
179
|
+
`ZLink packet JSON schema type '${String((normalizedSchema as { type?: unknown }).type)}' is not supported.`
|
|
180
|
+
);
|
|
148
181
|
}
|
|
149
182
|
|
|
150
183
|
function packetJsonContracts(): Map<string, ZLinkPacketJsonContract> {
|
|
151
184
|
const root = globalThis as typeof globalThis & Record<symbol, unknown>;
|
|
152
|
-
let contracts = root[ZLINK_PACKET_JSON_CONTRACTS] as
|
|
185
|
+
let contracts = root[ZLINK_PACKET_JSON_CONTRACTS] as
|
|
186
|
+
Map<string, ZLinkPacketJsonContract> | undefined;
|
|
153
187
|
if (contracts === undefined) {
|
|
154
188
|
contracts = new Map();
|
|
155
189
|
Object.defineProperty(root, ZLINK_PACKET_JSON_CONTRACTS, {
|
|
@@ -166,7 +200,7 @@ function canonicalContract(value: unknown): string {
|
|
|
166
200
|
if (Array.isArray(value)) return `[${value.map(canonicalContract).join(',')}]`;
|
|
167
201
|
if (typeof value !== 'object' || value === null) return JSON.stringify(value);
|
|
168
202
|
return `{${Object.entries(value as Record<string, unknown>)
|
|
169
|
-
.sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0)
|
|
203
|
+
.sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0))
|
|
170
204
|
.map(([key, item]) => `${JSON.stringify(key)}:${canonicalContract(item)}`)
|
|
171
205
|
.join(',')}}`;
|
|
172
206
|
}
|
|
@@ -3,11 +3,7 @@ import type { ActorRef, RoutingId } from '../Common';
|
|
|
3
3
|
export type ZLinkActorTransferState = 'prepared' | 'committed' | 'activated' | 'aborted';
|
|
4
4
|
|
|
5
5
|
export type ZLinkActorTransferWriteStatus =
|
|
6
|
-
| '
|
|
7
|
-
| 'notFound'
|
|
8
|
-
| 'ignoredStale'
|
|
9
|
-
| 'rejectedConflict'
|
|
10
|
-
| 'invalidState';
|
|
6
|
+
'stored' | 'notFound' | 'ignoredStale' | 'rejectedConflict' | 'invalidState';
|
|
11
7
|
|
|
12
8
|
export interface ZLinkActorTransferRecord {
|
|
13
9
|
readonly meshName: string;
|
|
@@ -64,8 +64,7 @@ export interface ZLinkAuthoritySnapshot {
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
export type ZLinkAuthorityReadResult =
|
|
67
|
-
|
|
68
|
-
| ZLinkAuthoritySnapshot;
|
|
67
|
+
{ readonly kind: 'missing'; readonly storeNow: Date } | ZLinkAuthoritySnapshot;
|
|
69
68
|
|
|
70
69
|
export type ZLinkAuthorityMutation =
|
|
71
70
|
| {
|
|
@@ -120,9 +119,7 @@ export interface ZLinkAuthorityPage {
|
|
|
120
119
|
readonly nextCursor?: ZLinkAuthorityScanCursor;
|
|
121
120
|
}
|
|
122
121
|
|
|
123
|
-
export type ZLinkAuthorityScanResult =
|
|
124
|
-
| ZLinkAuthorityPage
|
|
125
|
-
| { readonly kind: 'scanExpired' };
|
|
122
|
+
export type ZLinkAuthorityScanResult = ZLinkAuthorityPage | { readonly kind: 'scanExpired' };
|
|
126
123
|
|
|
127
124
|
export interface ZLinkObjectCreationKey {
|
|
128
125
|
readonly kind: ZLinkPlacementObjectKind;
|
|
@@ -249,9 +246,7 @@ export interface ZLinkObjectAbortRequest {
|
|
|
249
246
|
}
|
|
250
247
|
|
|
251
248
|
export type ZLinkObjectAbortResult =
|
|
252
|
-
| { readonly kind: '
|
|
253
|
-
| { readonly kind: 'alreadyAborted' }
|
|
254
|
-
| { readonly kind: 'stale' };
|
|
249
|
+
{ readonly kind: 'aborted' } | { readonly kind: 'alreadyAborted' } | { readonly kind: 'stale' };
|
|
255
250
|
|
|
256
251
|
export interface ZLinkAggregateId {
|
|
257
252
|
readonly value: string;
|
|
@@ -296,6 +291,4 @@ export type ZLinkAggregateCommitResult =
|
|
|
296
291
|
| { readonly kind: 'generationExhausted' };
|
|
297
292
|
|
|
298
293
|
export type ZLinkAggregateAbortResult =
|
|
299
|
-
| { readonly kind: '
|
|
300
|
-
| { readonly kind: 'alreadyAborted' }
|
|
301
|
-
| { readonly kind: 'stale' };
|
|
294
|
+
{ readonly kind: 'aborted' } | { readonly kind: 'alreadyAborted' } | { readonly kind: 'stale' };
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { RoutingId, SpotId } from '../Common';
|
|
2
2
|
import type { ZLinkSpotKind } from '../Spots';
|
|
3
|
-
import type {
|
|
3
|
+
import type {
|
|
4
|
+
ZLinkLocationAutoConnectType,
|
|
5
|
+
ZLinkLocationKind,
|
|
6
|
+
ZLinkLocationRole,
|
|
7
|
+
ZLinkRouteKind
|
|
8
|
+
} from './Values';
|
|
4
9
|
|
|
5
10
|
/**
|
|
6
11
|
* Peer identity is the full five-component tuple. Missing optional components
|
|
@@ -16,8 +16,9 @@ export interface ZLinkLocationOptions {
|
|
|
16
16
|
relocationNodeInFlightPayloadBudgetBytes(value: number): this;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
export type ZLinkLocationOptionOverrides =
|
|
20
|
-
|
|
19
|
+
export type ZLinkLocationOptionOverrides = Partial<ZLinkLocationOptionValues> & {
|
|
20
|
+
readonly listPageSize?: number;
|
|
21
|
+
};
|
|
21
22
|
|
|
22
23
|
export const zlinkRuntimeDefaultLocationOptions: Readonly<
|
|
23
24
|
ZLinkLocationOptionValues & { readonly listPageSize: number }
|
|
@@ -37,10 +37,7 @@ export interface ZLinkRelocationStore {
|
|
|
37
37
|
retentionMs: number,
|
|
38
38
|
signal?: AbortSignal
|
|
39
39
|
): Promise<ZLinkBlobPutResult>;
|
|
40
|
-
read(
|
|
41
|
-
reference: ZLinkBlobReference,
|
|
42
|
-
signal?: AbortSignal
|
|
43
|
-
): Promise<ZLinkBlobReadResult>;
|
|
40
|
+
read(reference: ZLinkBlobReference, signal?: AbortSignal): Promise<ZLinkBlobReadResult>;
|
|
44
41
|
renew(
|
|
45
42
|
reference: ZLinkBlobReference,
|
|
46
43
|
retentionMs: number,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
ZLinkPeerLocation,
|
|
3
|
-
ZLinkPeerLocationFilter,
|
|
4
|
-
} from './Models';
|
|
1
|
+
import type { ZLinkPeerLocation, ZLinkPeerLocationFilter } from './Models';
|
|
5
2
|
|
|
6
3
|
export interface ZLinkPeerLocationResolver {
|
|
7
|
-
listLivePeers(
|
|
4
|
+
listLivePeers(
|
|
5
|
+
filter: ZLinkPeerLocationFilter,
|
|
6
|
+
signal?: AbortSignal
|
|
7
|
+
): Promise<readonly ZLinkPeerLocation[]>;
|
|
8
8
|
}
|
|
@@ -6,7 +6,7 @@ import type {
|
|
|
6
6
|
ZLinkLocationTopologyEntry,
|
|
7
7
|
ZLinkLocationTopologyFilter,
|
|
8
8
|
ZLinkMeshNodeDescriptor,
|
|
9
|
-
ZLinkPageRequest
|
|
9
|
+
ZLinkPageRequest
|
|
10
10
|
} from './Models';
|
|
11
11
|
import type { ZLinkPlacementObjectKind } from './Authority';
|
|
12
12
|
|
|
@@ -52,5 +52,9 @@ export interface ZLinkLocationRuntimeQuery {
|
|
|
52
52
|
spotId: import('../Common').SpotId,
|
|
53
53
|
signal?: AbortSignal
|
|
54
54
|
): Promise<ZLinkLocationObjectEntry | undefined>;
|
|
55
|
-
listObjectLocations(
|
|
55
|
+
listObjectLocations(
|
|
56
|
+
filter: ZLinkLocationObjectFilter,
|
|
57
|
+
page?: ZLinkPageRequest,
|
|
58
|
+
signal?: AbortSignal
|
|
59
|
+
): Promise<ZLinkLocationPage<ZLinkLocationObjectEntry>>;
|
|
56
60
|
}
|
|
@@ -81,8 +81,7 @@ export interface ZLinkStoreScanPage {
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
export type ZLinkStoreScanResult =
|
|
84
|
-
|
|
85
|
-
| { readonly kind: 'expired' };
|
|
84
|
+
{ readonly kind: 'page'; readonly value: ZLinkStoreScanPage } | { readonly kind: 'expired' };
|
|
86
85
|
|
|
87
86
|
export interface ZLinkLocationStore {
|
|
88
87
|
read(key: ZLinkStoreKey, signal?: AbortSignal): Promise<ZLinkStoreReadResult>;
|
|
@@ -17,14 +17,8 @@ export type {
|
|
|
17
17
|
ZLinkStoreWriteRequest,
|
|
18
18
|
ZLinkStoreWriteResult
|
|
19
19
|
} from './Stores';
|
|
20
|
-
export {
|
|
21
|
-
|
|
22
|
-
ZLinkLocationRole
|
|
23
|
-
} from './Values';
|
|
24
|
-
export {
|
|
25
|
-
ZLinkFrameworkRuntimeState,
|
|
26
|
-
ZLinkObjectRole
|
|
27
|
-
} from './Rows';
|
|
20
|
+
export { ZLinkLocationKind, ZLinkLocationRole } from './Values';
|
|
21
|
+
export { ZLinkFrameworkRuntimeState, ZLinkObjectRole } from './Rows';
|
|
28
22
|
export type {
|
|
29
23
|
ZLinkClientServerServerDescriptor,
|
|
30
24
|
ZLinkFanoutPublisherDescriptor,
|
|
@@ -33,13 +33,7 @@ export type ZLinkMessageSurface =
|
|
|
33
33
|
| 'classic_fanout'
|
|
34
34
|
| 'actor_transfer';
|
|
35
35
|
|
|
36
|
-
export type ZLinkMessageKind =
|
|
37
|
-
| 'send'
|
|
38
|
-
| 'request'
|
|
39
|
-
| 'response'
|
|
40
|
-
| 'error'
|
|
41
|
-
| 'publish'
|
|
42
|
-
| 'control';
|
|
36
|
+
export type ZLinkMessageKind = 'send' | 'request' | 'response' | 'error' | 'publish' | 'control';
|
|
43
37
|
|
|
44
38
|
export type ZLinkRequestFailureReason = 'timeout' | 'cancelled' | 'shutdown';
|
|
45
39
|
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import type { RoutingId } from '../Common';
|
|
2
|
-
import type {
|
|
3
|
-
ZLinkApplicationJobQueueProfile,
|
|
4
|
-
ZLinkCoreHwmProfile
|
|
5
|
-
} from '../Dispatch';
|
|
2
|
+
import type { ZLinkApplicationJobQueueProfile, ZLinkCoreHwmProfile } from '../Dispatch';
|
|
6
3
|
import type {
|
|
7
4
|
ZLinkPeerState,
|
|
8
5
|
ZLinkTopologyReason,
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import type { ZLinkActor } from '../Actors';
|
|
2
2
|
import type { ZLinkChannelRequestCall, ZLinkPublishCall, ZLinkSendCall } from '../Channels';
|
|
3
|
-
import type {
|
|
4
|
-
RoutingId,
|
|
5
|
-
SpotId,
|
|
6
|
-
Type,
|
|
7
|
-
ZLinkMessageMetadata
|
|
8
|
-
} from '../Common';
|
|
3
|
+
import type { RoutingId, SpotId, Type, ZLinkMessageMetadata } from '../Common';
|
|
9
4
|
import type { ZLinkSpotTimerHandler } from '../Handlers';
|
|
10
5
|
import type { ZLinkTimer, ZLinkTimerOptions } from '../Timers';
|
|
11
6
|
import type {
|
|
@@ -67,8 +62,7 @@ export interface ZLinkSpotContext<
|
|
|
67
62
|
close(signal?: AbortSignal): Promise<boolean>;
|
|
68
63
|
}
|
|
69
64
|
|
|
70
|
-
export interface ZLinkInstanceSpotContext
|
|
71
|
-
extends ZLinkSpotCommonContext<ZLinkInstanceSpot> {
|
|
65
|
+
export interface ZLinkInstanceSpotContext extends ZLinkSpotCommonContext<ZLinkInstanceSpot> {
|
|
72
66
|
readonly handlers: ZLinkInstanceSpotHandlerRegistry;
|
|
73
67
|
close(signal?: AbortSignal): Promise<boolean>;
|
|
74
68
|
}
|
|
@@ -7,18 +7,26 @@ export enum ZLinkSpotKind {
|
|
|
7
7
|
|
|
8
8
|
export function zlinkSpotKindToWire(kind: ZLinkSpotKind): number {
|
|
9
9
|
switch (kind) {
|
|
10
|
-
case ZLinkSpotKind.Entry:
|
|
11
|
-
|
|
12
|
-
case ZLinkSpotKind.
|
|
13
|
-
|
|
10
|
+
case ZLinkSpotKind.Entry:
|
|
11
|
+
return 1;
|
|
12
|
+
case ZLinkSpotKind.User:
|
|
13
|
+
return 2;
|
|
14
|
+
case ZLinkSpotKind.Instance:
|
|
15
|
+
return 3;
|
|
16
|
+
default:
|
|
17
|
+
return 0;
|
|
14
18
|
}
|
|
15
19
|
}
|
|
16
20
|
|
|
17
21
|
export function zlinkSpotKindFromWire(value: number): ZLinkSpotKind {
|
|
18
22
|
switch (value) {
|
|
19
|
-
case 1:
|
|
20
|
-
|
|
21
|
-
case
|
|
22
|
-
|
|
23
|
+
case 1:
|
|
24
|
+
return ZLinkSpotKind.Entry;
|
|
25
|
+
case 2:
|
|
26
|
+
return ZLinkSpotKind.User;
|
|
27
|
+
case 3:
|
|
28
|
+
return ZLinkSpotKind.Instance;
|
|
29
|
+
default:
|
|
30
|
+
return ZLinkSpotKind.Invalid;
|
|
23
31
|
}
|
|
24
32
|
}
|
|
@@ -41,9 +41,7 @@ export interface ZLinkSpotRelocationReadyCall {
|
|
|
41
41
|
defer(): void;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
export interface ZLinkSpotActorMembershipLifecycle<
|
|
45
|
-
TActor extends ZLinkActor = ZLinkActor
|
|
46
|
-
> {
|
|
44
|
+
export interface ZLinkSpotActorMembershipLifecycle<TActor extends ZLinkActor = ZLinkActor> {
|
|
47
45
|
onJoinedActor(actor: TActor): Promise<void>;
|
|
48
46
|
onLeaveActor(actor: TActor): Promise<void>;
|
|
49
47
|
onDisconnectActor?(actor: TActor): Promise<void>;
|
|
@@ -58,8 +56,9 @@ export interface ZLinkUserSpotActorLifecycle<
|
|
|
58
56
|
onActorJoin(actorId: string, request: ZLinkMessage): Promise<ZLinkSpotActorJoinResult>;
|
|
59
57
|
}
|
|
60
58
|
|
|
61
|
-
export interface ZLinkSpot<
|
|
62
|
-
extends
|
|
59
|
+
export interface ZLinkSpot<
|
|
60
|
+
TActor extends ZLinkActor = ZLinkActor
|
|
61
|
+
> extends ZLinkUserSpotActorLifecycle<TActor> {
|
|
63
62
|
readonly context: ZLinkSpotContext<TActor>;
|
|
64
63
|
configure?(): void;
|
|
65
64
|
onCreate?(request: ZLinkMessage): Promise<ZLinkSpotCreateResponse>;
|
|
@@ -75,14 +74,12 @@ export interface ZLinkInstanceSpot {
|
|
|
75
74
|
onClosing?(context: ZLinkSpotClosingContext, cleanupSignal: AbortSignal): Promise<void>;
|
|
76
75
|
}
|
|
77
76
|
|
|
78
|
-
export interface ZLinkEntrySpot<
|
|
79
|
-
extends
|
|
77
|
+
export interface ZLinkEntrySpot<
|
|
78
|
+
TActor extends ZLinkActor = ZLinkActor
|
|
79
|
+
> extends ZLinkSpotActorMembershipLifecycle<TActor> {
|
|
80
80
|
readonly context: ZLinkEntrySpotContext<TActor>;
|
|
81
81
|
configure?(): void;
|
|
82
82
|
onInitialize?(): Promise<void>;
|
|
83
83
|
onClosing?(context: ZLinkSpotClosingContext, cleanupSignal: AbortSignal): Promise<void>;
|
|
84
|
-
onCreateActor?(
|
|
85
|
-
actor: TActor,
|
|
86
|
-
createRequest: ZLinkMessage
|
|
87
|
-
): Promise<ZLinkActorCreateResponse>;
|
|
84
|
+
onCreateActor?(actor: TActor, createRequest: ZLinkMessage): Promise<ZLinkActorCreateResponse>;
|
|
88
85
|
}
|
|
@@ -12,6 +12,10 @@ export interface ZLinkSessionActor {
|
|
|
12
12
|
readonly actorId: string;
|
|
13
13
|
readonly ref: ActorRef;
|
|
14
14
|
relay(payload: ZLinkMessage, signal?: AbortSignal): Promise<void>;
|
|
15
|
-
relay(
|
|
15
|
+
relay(
|
|
16
|
+
dispatch: ZLinkSessionDispatchContext,
|
|
17
|
+
payload: ZLinkMessage,
|
|
18
|
+
signal?: AbortSignal
|
|
19
|
+
): Promise<void>;
|
|
16
20
|
notifyDisconnected(signal?: AbortSignal): Promise<void>;
|
|
17
21
|
}
|
|
@@ -2,7 +2,11 @@ import type { Type, ZLinkMessage } from '../Common';
|
|
|
2
2
|
import type { ZLinkSessionDispatchContext } from './IZLinkSession';
|
|
3
3
|
|
|
4
4
|
export interface ZLinkSessionPacketHandler<TSessionContext, TMessage = ZLinkMessage> {
|
|
5
|
-
handle(
|
|
5
|
+
handle(
|
|
6
|
+
context: TSessionContext,
|
|
7
|
+
dispatch: ZLinkSessionDispatchContext,
|
|
8
|
+
message: TMessage
|
|
9
|
+
): Promise<void>;
|
|
6
10
|
}
|
|
7
11
|
|
|
8
12
|
export interface ZLinkSessionHandlerRegistry {
|
package/src/internal.ts
CHANGED
|
@@ -12,11 +12,12 @@ export * from './runtime/configuration';
|
|
|
12
12
|
export * from './runtime/locations';
|
|
13
13
|
export * from './runtime/locations/key-codec';
|
|
14
14
|
export * from './runtime/locations/canonical-codec';
|
|
15
|
-
export { ZLinkLocationAutoConnectType, ZLinkLocationKind, ZLinkRouteKind } from './contracts/Locations/Values';
|
|
16
15
|
export {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
ZLinkLocationAutoConnectType,
|
|
17
|
+
ZLinkLocationKind,
|
|
18
|
+
ZLinkRouteKind
|
|
19
|
+
} from './contracts/Locations/Values';
|
|
20
|
+
export { ZLinkLocationWriteIntent, ZLinkLocationWriteStatus } from './contracts/Locations/Writes';
|
|
20
21
|
export * from './runtime/channels';
|
|
21
22
|
export * from './runtime/backend';
|
|
22
23
|
export * from './runtime/codecs';
|
|
@@ -14,38 +14,46 @@ export function matchesPeerLocation(
|
|
|
14
14
|
row: ZLinkPeerLocation,
|
|
15
15
|
filter: ZLinkPeerLocationFilter
|
|
16
16
|
): boolean {
|
|
17
|
-
return (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
return (
|
|
18
|
+
(filter.autoConnectType === undefined || row.autoConnectType === filter.autoConnectType) &&
|
|
19
|
+
(filter.meshName === undefined || row.meshName === filter.meshName) &&
|
|
20
|
+
(filter.role === undefined || row.role === filter.role) &&
|
|
21
|
+
(filter.nodeRid === undefined || routingIdsEqual(row.nodeRid, filter.nodeRid)) &&
|
|
22
|
+
(filter.endpoint === undefined || row.endpoint === filter.endpoint)
|
|
23
|
+
);
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
export function matchesSpotLocation(
|
|
25
27
|
row: ZLinkSpotLocation,
|
|
26
28
|
filter: ZLinkSpotLocationFilter
|
|
27
29
|
): boolean {
|
|
28
|
-
return (
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
return (
|
|
31
|
+
(filter.meshName === undefined || row.meshName === filter.meshName) &&
|
|
32
|
+
(filter.spotType === undefined || row.spotType === filter.spotType) &&
|
|
33
|
+
(filter.nodeRid === undefined || routingIdsEqual(row.ownerNodeRid, filter.nodeRid)) &&
|
|
34
|
+
(filter.spotKind === undefined || row.spotKind === filter.spotKind)
|
|
35
|
+
);
|
|
32
36
|
}
|
|
33
37
|
|
|
34
38
|
export function matchesActorLocation(
|
|
35
39
|
row: ZLinkActorLocation,
|
|
36
40
|
filter: ZLinkActorLocationFilter
|
|
37
41
|
): boolean {
|
|
38
|
-
return (
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
return (
|
|
43
|
+
(filter.actorType === undefined || row.actorType === filter.actorType) &&
|
|
44
|
+
(filter.nodeRid === undefined || routingIdsEqual(row.ownerNodeRid, filter.nodeRid)) &&
|
|
45
|
+
(filter.spotId === undefined || row.spotId === filter.spotId) &&
|
|
46
|
+
(filter.locationKind === undefined || row.spotKind === filter.locationKind)
|
|
47
|
+
);
|
|
42
48
|
}
|
|
43
49
|
|
|
44
50
|
export function matchesRouteLocation(
|
|
45
51
|
row: ZLinkRouteLocation,
|
|
46
52
|
filter: ZLinkRouteLocationFilter
|
|
47
53
|
): boolean {
|
|
48
|
-
return (
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
return (
|
|
55
|
+
(filter.routeKind === undefined || row.routeKind === filter.routeKind) &&
|
|
56
|
+
(filter.ownerNodeRid === undefined || routingIdsEqual(row.ownerNodeRid, filter.ownerNodeRid)) &&
|
|
57
|
+
(filter.ownerId === undefined || row.ownerId === filter.ownerId)
|
|
58
|
+
);
|
|
51
59
|
}
|