@zlink-systems/framework 0.25.0 → 0.27.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/Channels/IZLinkFanoutClient.d.ts +0 -6
- package/dist/contracts/Common/CoreTypes.d.ts +6 -0
- package/dist/contracts/Common/CoreTypes.js +7 -0
- package/dist/contracts/Common/index.d.ts +1 -1
- package/dist/contracts/Common/index.js +0 -1
- package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
- package/dist/contracts/Configuration/InternalDefaults.js +9 -1
- package/dist/contracts/Configuration/Registration.d.ts +13 -2
- package/dist/contracts/Configuration/Registration.js +58 -36
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
- package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
- package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
- package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
- package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
- package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
- package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
- package/dist/contracts/Handlers/JsonContract.js +10 -4
- package/dist/contracts/Locations/Authority.d.ts +1 -1
- package/dist/contracts/Locations/Authority.js +3 -2
- package/dist/contracts/Locations/Options.js +1 -1
- package/dist/contracts/Locations/Stores.d.ts +12 -0
- package/dist/contracts/Locations/Stores.js +9 -0
- package/dist/contracts/RouteMesh/RuntimeTopology.d.ts +8 -0
- package/dist/contracts/Spots/Contracts.d.ts +1 -1
- package/dist/internal.d.ts +5 -0
- package/dist/internal.js +16 -1
- package/dist/nest-integration.d.ts +4 -2
- package/dist/nest-integration.js +14 -4
- package/dist/runtime/abort.d.ts +1 -0
- package/dist/runtime/abort.js +8 -5
- package/dist/runtime/activation-admission.d.ts +28 -0
- package/dist/runtime/activation-admission.js +57 -0
- package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
- package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
- package/dist/runtime/actors/actor-client.d.ts +2 -2
- package/dist/runtime/actors/actor-client.js +42 -143
- package/dist/runtime/actors/actor-context.d.ts +3 -5
- package/dist/runtime/actors/actor-context.js +19 -17
- package/dist/runtime/actors/actor-handoff.d.ts +13 -7
- package/dist/runtime/actors/actor-handoff.js +36 -25
- package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
- package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
- package/dist/runtime/actors/actor-local-native-join.js +85 -123
- package/dist/runtime/actors/actor-native-lookup.js +2 -8
- package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
- package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
- package/dist/runtime/actors/actor-remote-joiner.d.ts +3 -3
- package/dist/runtime/actors/actor-remote-joiner.js +11 -17
- package/dist/runtime/actors/actor-remote-wire.js +5 -3
- package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
- package/dist/runtime/actors/actor-request-deadline.js +31 -0
- package/dist/runtime/actors/actor-retry-delay.js +2 -1
- package/dist/runtime/actors/actor-runtime-contracts.d.ts +4 -2
- package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
- package/dist/runtime/actors/actor-runtime-state.js +70 -187
- package/dist/runtime/actors/actor-source-transfer.d.ts +5 -5
- package/dist/runtime/actors/bound-session-wire.js +2 -7
- package/dist/runtime/actors/deferred-join-completion.d.ts +19 -0
- package/dist/runtime/actors/deferred-join-completion.js +21 -0
- package/dist/runtime/actors/index.d.ts +10 -8
- package/dist/runtime/actors/index.js +101 -73
- package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
- package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
- package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
- package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
- package/dist/runtime/admission.d.ts +7 -1
- package/dist/runtime/admission.js +11 -1
- package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
- package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
- package/dist/runtime/backend/contracts/index.d.ts +8 -33
- package/dist/runtime/backend/mesh-actor-session-node-adapter.js +3 -26
- package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
- package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
- package/dist/runtime/backend/node/node-backend-adapter-factory.d.ts +1 -2
- package/dist/runtime/backend/node/node-backend-adapter-factory.js +4 -18
- package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +7 -4
- package/dist/runtime/backend/node/node-backend-adapter-support.js +28 -34
- package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
- package/dist/runtime/backend/node/node-event-loop-poller.js +11 -6
- package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
- package/dist/runtime/backend/node/node-raw-binding-port.d.ts +1 -1
- package/dist/runtime/backend/node/node-raw-binding-port.js +51 -19
- package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +21 -19
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +171 -111
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
- package/dist/runtime/backend/raw-binding-port.d.ts +13 -1
- package/dist/runtime/backend/runtime-values.d.ts +4 -1
- package/dist/runtime/backend/runtime-values.js +2 -0
- package/dist/runtime/channels/channel-clients.d.ts +20 -9
- package/dist/runtime/channels/channel-clients.js +68 -60
- package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
- package/dist/runtime/channels/channel-envelope.js +47 -29
- package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
- package/dist/runtime/channels/channel-outbound-operations.js +9 -18
- package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
- package/dist/runtime/channels/channel-receive-loops.js +27 -6
- package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
- package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
- package/dist/runtime/channels/channel-runtime-manager.d.ts +2 -5
- package/dist/runtime/channels/channel-runtime-manager.js +4 -12
- package/dist/runtime/channels/channel-socket-options.js +3 -2
- package/dist/runtime/channels/channel-socket-registry.d.ts +30 -32
- package/dist/runtime/channels/channel-socket-registry.js +296 -235
- package/dist/runtime/channels/channel-transports.d.ts +11 -20
- package/dist/runtime/channels/channel-transports.js +68 -47
- package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
- package/dist/runtime/channels/client-server-location-runtime.js +10 -11
- package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
- package/dist/runtime/channels/client-server-service-wire.js +32 -11
- package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
- package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
- package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
- package/dist/runtime/channels/fanout-location-runtime.js +133 -81
- package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
- package/dist/runtime/channels/spot-direct-envelope.js +4 -3
- package/dist/runtime/channels/spot-node-route-transport.js +3 -2
- package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
- package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
- package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
- package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
- package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
- package/dist/runtime/diagnostics/flow-context.js +16 -2
- package/dist/runtime/diagnostics/index.d.ts +4 -2
- package/dist/runtime/diagnostics/index.js +14 -4
- package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
- package/dist/runtime/diagnostics/message-flow.js +10 -19
- package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
- package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
- package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
- package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
- package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
- package/dist/runtime/disposal.d.ts +5 -0
- package/dist/runtime/disposal.js +22 -0
- package/dist/runtime/execution/index.d.ts +22 -9
- package/dist/runtime/execution/index.js +107 -37
- package/dist/runtime/execution/serial-execution-queue.d.ts +12 -7
- package/dist/runtime/execution/serial-execution-queue.js +99 -26
- package/dist/runtime/execution/state-lane.d.ts +8 -1
- package/dist/runtime/execution/state-lane.js +118 -3
- package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
- package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
- package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
- package/dist/runtime/foundation/event-loop-resources.js +6 -119
- package/dist/runtime/foundation/listener-records.d.ts +11 -0
- package/dist/runtime/foundation/listener-records.js +20 -0
- package/dist/runtime/foundation/operation-identity.d.ts +2 -0
- package/dist/runtime/foundation/operation-identity.js +9 -5
- package/dist/runtime/foundation/operation-registry.d.ts +5 -7
- package/dist/runtime/foundation/operation-registry.js +34 -44
- package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +18 -26
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +122 -469
- package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
- package/dist/runtime/foundation/runtime-state-projections.js +8 -0
- package/dist/runtime/foundation/service-authority-payload-codec.d.ts +1 -0
- package/dist/runtime/foundation/service-authority-payload-codec.js +30 -12
- package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
- package/dist/runtime/foundation/service-discovery-registry.js +22 -3
- package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
- package/dist/runtime/foundation/service-liveness-registry.js +2 -1
- package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
- package/dist/runtime/foundation/service-maintenance-runtime.js +23 -8
- package/dist/runtime/foundation/service-metadata-codec.js +3 -3
- package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
- package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
- package/dist/runtime/foundation/service-relocation-coordinator.d.ts +9 -0
- package/dist/runtime/foundation/service-relocation-coordinator.js +14 -1
- package/dist/runtime/foundation/service-relocation-object-owner.d.ts +8 -0
- package/dist/runtime/foundation/service-relocation-object-owner.js +19 -6
- package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
- package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
- package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
- package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -19
- package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
- package/dist/runtime/foundation/service-stateful-registry.js +10 -2
- package/dist/runtime/foundation/service-stateful-runtime.d.ts +28 -24
- package/dist/runtime/foundation/service-stateful-runtime.js +297 -244
- package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +12 -7
- package/dist/runtime/foundation/service-stateful-wire-codec.js +240 -143
- package/dist/runtime/foundation/service-topology-registry.d.ts +1 -3
- package/dist/runtime/foundation/service-topology-registry.js +22 -61
- package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
- package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
- package/dist/runtime/foundation/service-wire-codec.js +10 -8
- package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
- package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
- package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
- package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
- package/dist/runtime/framework-errors-internal.d.ts +2 -1
- package/dist/runtime/framework-errors-internal.js +343 -122
- package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
- package/dist/runtime/handlers/handler-instance-scope.js +61 -74
- package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
- package/dist/runtime/host/actor-packet-relay.js +48 -91
- package/dist/runtime/host/actor-placement-coordinator.js +7 -5
- package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
- package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
- package/dist/runtime/host/actor-transfer-runtime.d.ts +28 -28
- package/dist/runtime/host/actor-transfer-runtime.js +210 -256
- package/dist/runtime/host/application-job-queue.js +16 -33
- package/dist/runtime/host/bound-session-relay.js +1 -1
- package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
- package/dist/runtime/host/index.d.ts +19 -14
- package/dist/runtime/host/index.js +234 -175
- package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
- package/dist/runtime/host/instance-activation-authority.js +17 -45
- package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
- package/dist/runtime/host/location-runtime-owner.js +2 -2
- package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
- package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
- package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
- package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
- package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
- package/dist/runtime/host/remote-bound-session-relay.js +11 -23
- package/dist/runtime/host/route-mesh-runtime.d.ts +14 -10
- package/dist/runtime/host/route-mesh-runtime.js +178 -257
- package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
- package/dist/runtime/host/runtime-shutdown.js +18 -21
- package/dist/runtime/host/service-relocation-control.js +6 -1
- package/dist/runtime/host/service-relocation-host-runtime.d.ts +71 -38
- package/dist/runtime/host/service-relocation-host-runtime.js +816 -651
- package/dist/runtime/host/spot-address-transport.d.ts +2 -3
- package/dist/runtime/host/spot-address-transport.js +34 -136
- package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
- package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
- package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -7
- package/dist/runtime/host/spot-runtime-options-factory.js +53 -21
- package/dist/runtime/host/stateful-authority-route-runtime.js +6 -2
- package/dist/runtime/host/user-spot-creation-coordinator.d.ts +14 -6
- package/dist/runtime/host/user-spot-creation-coordinator.js +96 -95
- package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
- package/dist/runtime/locations/authority-key-codec.js +4 -3
- package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
- package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
- package/dist/runtime/locations/creation-operation-id.js +6 -4
- package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
- package/dist/runtime/locations/in-memory-authority-store.js +31 -15
- package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
- package/dist/runtime/locations/in-memory-location-store.js +17 -14
- package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
- package/dist/runtime/locations/in-memory-provider-location-store.js +79 -27
- package/dist/runtime/locations/key-codec.js +3 -2
- package/dist/runtime/locations/lease-tracker.d.ts +3 -5
- package/dist/runtime/locations/lease-tracker.js +7 -11
- package/dist/runtime/locations/lifecycle.d.ts +5 -10
- package/dist/runtime/locations/lifecycle.js +4 -33
- package/dist/runtime/locations/location-store-failure.d.ts +2 -0
- package/dist/runtime/locations/location-store-failure.js +7 -0
- package/dist/runtime/locations/location-store-pages.d.ts +3 -0
- package/dist/runtime/locations/location-store-pages.js +13 -0
- package/dist/runtime/locations/location-store-repository.d.ts +5 -7
- package/dist/runtime/locations/location-store-repository.js +303 -332
- package/dist/runtime/locations/relocation-blob.js +18 -5
- package/dist/runtime/locations/resolvers.d.ts +5 -5
- package/dist/runtime/locations/resolvers.js +44 -30
- package/dist/runtime/locations/runtime.d.ts +5 -4
- package/dist/runtime/locations/runtime.js +123 -92
- package/dist/runtime/locations/spot-location-claims.d.ts +8 -2
- package/dist/runtime/locations/spot-location-claims.js +40 -23
- package/dist/runtime/messaging/payload-codec.js +26 -20
- package/dist/runtime/messaging/submission-result.d.ts +3 -0
- package/dist/runtime/messaging/submission-result.js +48 -0
- package/dist/runtime/protocol/service_wire_codec.generated.d.ts +2 -0
- package/dist/runtime/protocol/service_wire_codec.generated.js +17 -8
- package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +1 -0
- package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +3 -2
- package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +3 -3
- package/dist/runtime/spots/formal-remote-actor-admission-registry.js +4 -4
- package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +6 -3
- package/dist/runtime/spots/index.d.ts +29 -29
- package/dist/runtime/spots/index.js +441 -313
- package/dist/runtime/spots/spot-activation-registry.d.ts +4 -4
- package/dist/runtime/spots/spot-activation-registry.js +27 -60
- package/dist/runtime/spots/spot-activation-state.d.ts +2 -11
- package/dist/runtime/spots/spot-activation-state.js +4 -17
- package/dist/runtime/spots/spot-activation.d.ts +10 -9
- package/dist/runtime/spots/spot-activation.js +103 -81
- package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
- package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
- package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
- package/dist/runtime/spots/spot-actor-join-dispatch.js +5 -55
- package/dist/runtime/spots/spot-actor-lifecycle-drain.js +2 -2
- package/dist/runtime/spots/spot-actor-membership.d.ts +7 -5
- package/dist/runtime/spots/spot-actor-membership.js +44 -53
- package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
- package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
- package/dist/runtime/spots/spot-context.d.ts +2 -2
- package/dist/runtime/spots/spot-entry-activation.d.ts +3 -4
- package/dist/runtime/spots/spot-entry-activation.js +9 -21
- package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
- package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
- package/dist/runtime/spots/spot-manager-public.js +6 -5
- package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
- package/dist/runtime/spots/spot-node-runtime-manager.d.ts +22 -21
- package/dist/runtime/spots/spot-node-runtime-manager.js +73 -82
- package/dist/runtime/spots/spot-outbound.d.ts +4 -3
- package/dist/runtime/spots/spot-outbound.js +10 -37
- package/dist/runtime/spots/spot-remote-codec.js +5 -3
- package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
- package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
- package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
- package/dist/runtime/spots/spot-route-replies.js +3 -1
- package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -2
- package/dist/runtime/spots/spot-routed-actor-admission.js +3 -2
- package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +2 -7
- package/dist/runtime/spots/spot-routed-frame-dispatch.js +1 -70
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
- package/dist/runtime/spots/spot-runtime-ports.d.ts +4 -20
- package/dist/runtime/spots/spot-serial-executor.d.ts +5 -0
- package/dist/runtime/spots/spot-serial-executor.js +9 -2
- package/dist/runtime/spots/spot-serial-turn-executor.d.ts +29 -6
- package/dist/runtime/spots/spot-serial-turn-executor.js +89 -13
- package/dist/runtime/spots/spot-timer.d.ts +3 -2
- package/dist/runtime/streams/actor-session-binding-registry.d.ts +17 -32
- package/dist/runtime/streams/actor-session-binding-registry.js +145 -367
- package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +2 -6
- package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
- package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
- package/dist/runtime/streams/bound-session-service.d.ts +7 -0
- package/dist/runtime/streams/bound-session-service.js +12 -19
- package/dist/runtime/streams/index.d.ts +15 -14
- package/dist/runtime/streams/index.js +38 -39
- package/dist/runtime/streams/managed-stream.d.ts +3 -0
- package/dist/runtime/streams/managed-stream.js +17 -8
- package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
- package/dist/runtime/streams/protocol.d.ts +6 -33
- package/dist/runtime/streams/protocol.js +38 -110
- package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
- package/dist/runtime/streams/session-actor-coordinator.js +12 -4
- package/dist/runtime/streams/session-calls.d.ts +1 -1
- package/dist/runtime/streams/session-calls.js +5 -4
- package/dist/runtime/streams/session-context.d.ts +6 -6
- package/dist/runtime/streams/session-context.js +22 -4
- package/dist/runtime/streams/session-requests.js +2 -1
- package/dist/runtime/streams/session-serial-executor.js +2 -2
- package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
- package/dist/runtime/streams/stream-frame-factory.js +2 -2
- package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
- package/dist/runtime/streams/stream-session-runtime.js +25 -33
- package/dist/runtime/workers/index.d.ts +2 -2
- package/dist/runtime/workers/index.js +5 -4
- package/package.json +3 -3
- package/src/contracts/Channels/IZLinkFanoutClient.ts +0 -7
- package/src/contracts/Common/CoreTypes.ts +7 -0
- package/src/contracts/Common/index.ts +1 -1
- package/src/contracts/Configuration/InternalDefaults.ts +12 -0
- package/src/contracts/Configuration/Registration.ts +92 -48
- package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
- package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
- package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
- package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
- package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
- package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
- package/src/contracts/Handlers/JsonContract.ts +14 -4
- package/src/contracts/Locations/Authority.ts +7 -3
- package/src/contracts/Locations/Options.ts +1 -1
- package/src/contracts/Locations/Stores.ts +14 -0
- package/src/contracts/RouteMesh/RuntimeTopology.ts +10 -0
- package/src/contracts/Spots/Contracts.ts +1 -1
- package/src/internal.ts +15 -0
- package/src/nest-integration.ts +28 -10
- package/src/runtime/abort.ts +6 -5
- package/src/runtime/activation-admission.ts +72 -0
- package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
- package/src/runtime/actors/actor-client.ts +77 -204
- package/src/runtime/actors/actor-context.ts +45 -39
- package/src/runtime/actors/actor-handoff.ts +55 -45
- package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
- package/src/runtime/actors/actor-local-native-join.ts +174 -215
- package/src/runtime/actors/actor-native-lookup.ts +2 -9
- package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
- package/src/runtime/actors/actor-remote-joiner.ts +15 -36
- package/src/runtime/actors/actor-remote-wire.ts +5 -3
- package/src/runtime/actors/actor-request-deadline.ts +49 -0
- package/src/runtime/actors/actor-retry-delay.ts +2 -1
- package/src/runtime/actors/actor-runtime-contracts.ts +4 -10
- package/src/runtime/actors/actor-runtime-state.ts +85 -247
- package/src/runtime/actors/actor-source-transfer.ts +5 -18
- package/src/runtime/actors/bound-session-wire.ts +2 -8
- package/src/runtime/actors/deferred-join-completion.ts +44 -0
- package/src/runtime/actors/index.ts +122 -88
- package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
- package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
- package/src/runtime/admission.ts +13 -2
- package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
- package/src/runtime/backend/contracts/index.ts +15 -42
- package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -28
- package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
- package/src/runtime/backend/node/node-backend-adapter-factory.ts +5 -25
- package/src/runtime/backend/node/node-backend-adapter-support.ts +32 -35
- package/src/runtime/backend/node/node-event-loop-poller.ts +16 -8
- package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
- package/src/runtime/backend/node/node-raw-binding-port.ts +58 -23
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +252 -162
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +5 -4
- package/src/runtime/backend/raw-binding-port.ts +14 -1
- package/src/runtime/backend/runtime-values.ts +4 -1
- package/src/runtime/channels/channel-clients.ts +132 -96
- package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
- package/src/runtime/channels/channel-envelope.ts +58 -29
- package/src/runtime/channels/channel-outbound-operations.ts +10 -31
- package/src/runtime/channels/channel-receive-loops.ts +39 -7
- package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
- package/src/runtime/channels/channel-runtime-manager.ts +8 -15
- package/src/runtime/channels/channel-socket-options.ts +8 -2
- package/src/runtime/channels/channel-socket-registry.ts +369 -262
- package/src/runtime/channels/channel-transports.ts +161 -115
- package/src/runtime/channels/client-server-location-runtime.ts +17 -17
- package/src/runtime/channels/client-server-service-wire.ts +40 -12
- package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
- package/src/runtime/channels/fanout-location-runtime.ts +175 -106
- package/src/runtime/channels/spot-direct-envelope.ts +1 -1
- package/src/runtime/channels/spot-node-route-transport.ts +5 -2
- package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
- package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
- package/src/runtime/diagnostics/flow-context.ts +16 -2
- package/src/runtime/diagnostics/index.ts +27 -17
- package/src/runtime/diagnostics/message-flow.ts +15 -25
- package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
- package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
- package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
- package/src/runtime/disposal.ts +19 -0
- package/src/runtime/execution/index.ts +116 -38
- package/src/runtime/execution/serial-execution-queue.ts +179 -34
- package/src/runtime/execution/state-lane.ts +142 -4
- package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
- package/src/runtime/foundation/event-loop-resources.ts +5 -122
- package/src/runtime/foundation/listener-records.ts +21 -0
- package/src/runtime/foundation/operation-identity.ts +11 -5
- package/src/runtime/foundation/operation-registry.ts +33 -50
- package/src/runtime/foundation/raw-service-mesh-runtime.ts +170 -571
- package/src/runtime/foundation/runtime-state-projections.ts +9 -1
- package/src/runtime/foundation/service-authority-payload-codec.ts +41 -13
- package/src/runtime/foundation/service-discovery-registry.ts +32 -3
- package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
- package/src/runtime/foundation/service-liveness-registry.ts +2 -1
- package/src/runtime/foundation/service-maintenance-runtime.ts +30 -19
- package/src/runtime/foundation/service-metadata-codec.ts +2 -2
- package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
- package/src/runtime/foundation/service-relocation-coordinator.ts +13 -0
- package/src/runtime/foundation/service-relocation-object-owner.ts +23 -7
- package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
- package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
- package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -25
- package/src/runtime/foundation/service-stateful-registry.ts +14 -2
- package/src/runtime/foundation/service-stateful-runtime.ts +435 -327
- package/src/runtime/foundation/service-stateful-wire-codec.ts +329 -199
- package/src/runtime/foundation/service-topology-registry.ts +30 -79
- package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
- package/src/runtime/foundation/service-wire-codec.ts +15 -8
- package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
- package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
- package/src/runtime/framework-errors-internal.ts +380 -134
- package/src/runtime/handlers/handler-instance-scope.ts +68 -95
- package/src/runtime/host/actor-packet-relay.ts +57 -147
- package/src/runtime/host/actor-placement-coordinator.ts +8 -5
- package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
- package/src/runtime/host/actor-transfer-runtime.ts +266 -418
- package/src/runtime/host/application-job-queue.ts +28 -34
- package/src/runtime/host/bound-session-relay.ts +1 -2
- package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
- package/src/runtime/host/index.ts +408 -312
- package/src/runtime/host/instance-activation-authority.ts +89 -109
- package/src/runtime/host/location-runtime-owner.ts +4 -2
- package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
- package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
- package/src/runtime/host/remote-bound-session-relay.ts +12 -44
- package/src/runtime/host/route-mesh-runtime.ts +236 -275
- package/src/runtime/host/runtime-shutdown.ts +17 -21
- package/src/runtime/host/service-relocation-control.ts +14 -1
- package/src/runtime/host/service-relocation-host-runtime.ts +1161 -904
- package/src/runtime/host/spot-address-transport.ts +73 -195
- package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
- package/src/runtime/host/spot-runtime-options-factory.ts +92 -30
- package/src/runtime/host/stateful-authority-route-runtime.ts +8 -4
- package/src/runtime/host/user-spot-creation-coordinator.ts +182 -163
- package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
- package/src/runtime/locations/authority-key-codec.ts +7 -3
- package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
- package/src/runtime/locations/creation-operation-id.ts +6 -3
- package/src/runtime/locations/domain-store-contract.ts +12 -3
- package/src/runtime/locations/in-memory-authority-store.ts +44 -15
- package/src/runtime/locations/in-memory-location-store.ts +50 -39
- package/src/runtime/locations/in-memory-provider-location-store.ts +110 -31
- package/src/runtime/locations/key-codec.ts +3 -2
- package/src/runtime/locations/lease-tracker.ts +8 -14
- package/src/runtime/locations/lifecycle.ts +16 -45
- package/src/runtime/locations/location-store-failure.ts +4 -0
- package/src/runtime/locations/location-store-pages.ts +18 -0
- package/src/runtime/locations/location-store-repository.ts +450 -478
- package/src/runtime/locations/relocation-blob.ts +17 -6
- package/src/runtime/locations/resolvers.ts +90 -58
- package/src/runtime/locations/runtime.ts +220 -110
- package/src/runtime/locations/spot-location-claims.ts +54 -26
- package/src/runtime/messaging/payload-codec.ts +35 -24
- package/src/runtime/messaging/submission-result.ts +57 -1
- package/src/runtime/protocol/service_wire_codec.generated.ts +27 -10
- package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +4 -4
- package/src/runtime/spots/formal-remote-actor-admission-registry.ts +6 -6
- package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +6 -3
- package/src/runtime/spots/index.ts +687 -437
- package/src/runtime/spots/spot-activation-registry.ts +42 -71
- package/src/runtime/spots/spot-activation-state.ts +4 -16
- package/src/runtime/spots/spot-activation.ts +167 -115
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
- package/src/runtime/spots/spot-actor-join-dispatch.ts +25 -79
- package/src/runtime/spots/spot-actor-lifecycle-drain.ts +20 -18
- package/src/runtime/spots/spot-actor-membership.ts +107 -75
- package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
- package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
- package/src/runtime/spots/spot-context.ts +3 -3
- package/src/runtime/spots/spot-entry-activation.ts +13 -33
- package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
- package/src/runtime/spots/spot-manager-public.ts +29 -21
- package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
- package/src/runtime/spots/spot-node-runtime-manager.ts +145 -140
- package/src/runtime/spots/spot-outbound.ts +47 -68
- package/src/runtime/spots/spot-remote-codec.ts +7 -3
- package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
- package/src/runtime/spots/spot-route-replies.ts +6 -4
- package/src/runtime/spots/spot-routed-actor-admission.ts +13 -6
- package/src/runtime/spots/spot-routed-frame-dispatch.ts +6 -77
- package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
- package/src/runtime/spots/spot-runtime-ports.ts +10 -43
- package/src/runtime/spots/spot-serial-executor.ts +10 -2
- package/src/runtime/spots/spot-serial-turn-executor.ts +120 -13
- package/src/runtime/spots/spot-timer.ts +3 -2
- package/src/runtime/streams/actor-session-binding-registry.ts +182 -560
- package/src/runtime/streams/actor-session-binding-runtime-owner.ts +1 -19
- package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
- package/src/runtime/streams/bound-session-service.ts +23 -37
- package/src/runtime/streams/index.ts +102 -88
- package/src/runtime/streams/managed-stream.ts +29 -10
- package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
- package/src/runtime/streams/protocol.ts +34 -88
- package/src/runtime/streams/session-actor-coordinator.ts +17 -5
- package/src/runtime/streams/session-calls.ts +6 -5
- package/src/runtime/streams/session-context.ts +54 -10
- package/src/runtime/streams/session-requests.ts +2 -1
- package/src/runtime/streams/session-serial-executor.ts +2 -2
- package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
- package/src/runtime/streams/stream-frame-factory.ts +2 -3
- package/src/runtime/streams/stream-session-runtime.ts +57 -59
- package/src/runtime/workers/index.ts +13 -12
- package/dist/runtime/actors/deferred-join-accepted-journal.d.ts +0 -47
- package/dist/runtime/actors/deferred-join-accepted-journal.js +0 -992
- package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
- package/dist/runtime/actors/post-commit-actor-location.js +0 -72
- package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
- package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
- package/src/runtime/actors/deferred-join-accepted-journal.ts +0 -1346
- package/src/runtime/actors/post-commit-actor-location.ts +0 -121
- package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
|
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ServiceTopologyRegistry = void 0;
|
|
4
4
|
exports.validateDescriptor = validateDescriptor;
|
|
5
5
|
exports.sameServiceNodeDescriptor = sameServiceNodeDescriptor;
|
|
6
|
+
const CoreTypes_1 = require("../../contracts/Common/CoreTypes");
|
|
7
|
+
const RegistrationBuilderPolicy_1 = require("../../contracts/Configuration/RegistrationBuilderPolicy");
|
|
6
8
|
const route_mesh_connection_policy_1 = require("./route-mesh-connection-policy");
|
|
7
9
|
const service_weighted_selection_1 = require("./service-weighted-selection");
|
|
8
10
|
const service_wire_constants_generated_1 = require("./service-wire-constants.generated");
|
|
9
11
|
const REQUIRED_CAPABILITY = service_wire_constants_generated_1.SERVICE_WIRE_REQUIRED_CAPABILITY;
|
|
10
|
-
const MAX_CAPACITY = 0x7fff_ffff;
|
|
11
|
-
const MAX_PUBLIC_WEIGHT = 10_000;
|
|
12
12
|
/** Owns immutable peer snapshots and fences late physical-connection events. */
|
|
13
13
|
class ServiceTopologyRegistry {
|
|
14
14
|
local;
|
|
@@ -41,11 +41,10 @@ class ServiceTopologyRegistry {
|
|
|
41
41
|
}
|
|
42
42
|
this.rebuildSelections();
|
|
43
43
|
}
|
|
44
|
-
admit(descriptor, connectionId, expected
|
|
44
|
+
admit(descriptor, connectionId, expected) {
|
|
45
45
|
try {
|
|
46
46
|
validateDescriptor(descriptor);
|
|
47
47
|
requireText(connectionId, 'connectionId');
|
|
48
|
-
requireText(connectionDiscriminator, 'connectionDiscriminator');
|
|
49
48
|
}
|
|
50
49
|
catch (error) {
|
|
51
50
|
return 'invalidDescriptor';
|
|
@@ -83,25 +82,11 @@ class ServiceTopologyRegistry {
|
|
|
83
82
|
!sameServiceNodeDescriptor(current.descriptor, descriptor)))) {
|
|
84
83
|
return 'staleDescriptor';
|
|
85
84
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
current.descriptor.descriptorRevision === descriptor.descriptorRevision &&
|
|
89
|
-
sameServiceNodeDescriptor(current.descriptor, descriptor) &&
|
|
90
|
-
current.connectionId !== connectionId &&
|
|
91
|
-
// A fallback candidate is only a logical placeholder. Once the
|
|
92
|
-
// monitor reports the physical connection, its evidence supersedes
|
|
93
|
-
// candidate ordering so the request path uses the native route.
|
|
94
|
-
!(isUnmonitoredConnectionId(current.connectionId) && !isUnmonitoredConnectionId(connectionId)) &&
|
|
95
|
-
compareConnectionCandidate(current.connectionDiscriminator, current.connectionId, connectionDiscriminator, connectionId) <= 0) {
|
|
96
|
-
// Both manual directions can reach admission. The same comparison on
|
|
97
|
-
// every retry keeps one physical candidate instead of replacing it in
|
|
98
|
-
// arrival order.
|
|
99
|
-
return 'staleDescriptor';
|
|
100
|
-
}
|
|
85
|
+
// Core selects the one route per RID (Core ROUTER §10.1); an admission on
|
|
86
|
+
// that route replaces the admission of a route it replaced.
|
|
101
87
|
this.peersByRid.set(descriptor.nodeRoutingId, {
|
|
102
88
|
descriptor: cloneDescriptor(descriptor),
|
|
103
|
-
connectionId
|
|
104
|
-
connectionDiscriminator
|
|
89
|
+
connectionId
|
|
105
90
|
});
|
|
106
91
|
this.remember(descriptor);
|
|
107
92
|
this.rebuildSelections();
|
|
@@ -149,18 +134,6 @@ class ServiceTopologyRegistry {
|
|
|
149
134
|
}
|
|
150
135
|
this.rebuildSelections();
|
|
151
136
|
}
|
|
152
|
-
markNotRequired(descriptor) {
|
|
153
|
-
validateDescriptor(descriptor);
|
|
154
|
-
if (descriptor.meshName !== this.local.meshName ||
|
|
155
|
-
descriptor.nodeRoutingId === this.local.nodeRoutingId ||
|
|
156
|
-
!(0, route_mesh_connection_policy_1.descriptorConnectionNotRequired)(this.local, descriptor)) {
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
this.peersByRid.delete(descriptor.nodeRoutingId);
|
|
160
|
-
this.remember(descriptor);
|
|
161
|
-
this.notRequiredByRid.set(descriptor.nodeRoutingId, cloneDescriptor(descriptor));
|
|
162
|
-
this.rebuildSelections();
|
|
163
|
-
}
|
|
164
137
|
forgetNotRequired(nodeRoutingId) {
|
|
165
138
|
if (this.notRequiredByRid.delete(nodeRoutingId))
|
|
166
139
|
this.rebuildSelections();
|
|
@@ -172,7 +145,10 @@ class ServiceTopologyRegistry {
|
|
|
172
145
|
}
|
|
173
146
|
hasKnownChannelTarget(channelName) {
|
|
174
147
|
requireText(channelName, 'channelName');
|
|
175
|
-
return [
|
|
148
|
+
return [...this.knownByRid.values()].some((descriptor) => (descriptor.state === 'serving' ||
|
|
149
|
+
descriptor.state === 'retiring' ||
|
|
150
|
+
descriptor.state === 'draining') &&
|
|
151
|
+
findChannel(descriptor, channelName) !== undefined);
|
|
176
152
|
}
|
|
177
153
|
remember(descriptor) {
|
|
178
154
|
const current = this.knownByRid.get(descriptor.nodeRoutingId);
|
|
@@ -185,19 +161,12 @@ class ServiceTopologyRegistry {
|
|
|
185
161
|
}
|
|
186
162
|
selectChannel(channelName, isReady = () => true) {
|
|
187
163
|
requireText(channelName, 'channelName');
|
|
188
|
-
return this.selectWeightedCycle(`channel:${channelName}`, () =>
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
return [local, ...this.peersByRid.values()]
|
|
195
|
-
.map((peer) => ({
|
|
196
|
-
peer: clonePeer(peer),
|
|
197
|
-
channel: selectableChannel(peer.descriptor, channelName)
|
|
198
|
-
}))
|
|
199
|
-
.filter((value) => value.channel !== undefined);
|
|
200
|
-
}, (value) => value.channel.weight, (value) => value.peer.descriptor.nodeRoutingId, (left, right) => compareOrdinal(left.peer.descriptor.nodeRoutingId, right.peer.descriptor.nodeRoutingId), (value) => isReady(value.peer))?.peer;
|
|
164
|
+
return this.selectWeightedCycle(`channel:${channelName}`, () => [...this.peersByRid.values()]
|
|
165
|
+
.map((peer) => ({
|
|
166
|
+
peer: clonePeer(peer),
|
|
167
|
+
channel: selectableChannel(peer.descriptor, channelName)
|
|
168
|
+
}))
|
|
169
|
+
.filter((value) => value.channel !== undefined), (value) => value.channel.weight, (value) => value.peer.descriptor.nodeRoutingId, (left, right) => compareOrdinal(left.peer.descriptor.nodeRoutingId, right.peer.descriptor.nodeRoutingId), (value) => isReady(value.peer))?.peer;
|
|
201
170
|
}
|
|
202
171
|
selectPlacement(isReady = () => true) {
|
|
203
172
|
return this.selectWeightedCycle('placement', () => [...this.peersByRid.values()]
|
|
@@ -291,8 +260,8 @@ function validateDescriptor(descriptor) {
|
|
|
291
260
|
}
|
|
292
261
|
if (descriptor.maintenanceWave !== undefined) {
|
|
293
262
|
requireText(descriptor.maintenanceWave, 'maintenanceWave');
|
|
294
|
-
if (Buffer.byteLength(descriptor.maintenanceWave, 'utf8') >
|
|
295
|
-
throw new RangeError(
|
|
263
|
+
if (Buffer.byteLength(descriptor.maintenanceWave, 'utf8') > CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES) {
|
|
264
|
+
throw new RangeError(`maintenanceWave must not exceed ${CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES} UTF-8 bytes.`);
|
|
296
265
|
}
|
|
297
266
|
}
|
|
298
267
|
validatePublicWeight(descriptor.placementWeight, 'placementWeight');
|
|
@@ -318,13 +287,13 @@ function validateDescriptor(descriptor) {
|
|
|
318
287
|
}
|
|
319
288
|
}
|
|
320
289
|
function validateCapacity(value, allowZero, field) {
|
|
321
|
-
if (!
|
|
290
|
+
if (!(allowZero ? (0, RegistrationBuilderPolicy_1.isValidCapacity)(value) : (0, RegistrationBuilderPolicy_1.isValidPositiveCapacity)(value))) {
|
|
322
291
|
throw new RangeError(`${field} is outside its supported range.`);
|
|
323
292
|
}
|
|
324
293
|
}
|
|
325
294
|
function validatePublicWeight(value, field) {
|
|
326
|
-
if (!
|
|
327
|
-
throw new RangeError(`${field} must be an integer in 0
|
|
295
|
+
if (!(0, RegistrationBuilderPolicy_1.isValidPublicWeight)(value)) {
|
|
296
|
+
throw new RangeError(`${field} must be an integer in 0..${RegistrationBuilderPolicy_1.ZLINK_MAX_PUBLIC_WEIGHT}.`);
|
|
328
297
|
}
|
|
329
298
|
}
|
|
330
299
|
function validateSortedUnique(values, key, field) {
|
|
@@ -361,8 +330,7 @@ function cloneDescriptor(descriptor) {
|
|
|
361
330
|
function clonePeer(peer) {
|
|
362
331
|
return {
|
|
363
332
|
descriptor: cloneDescriptor(peer.descriptor),
|
|
364
|
-
connectionId: peer.connectionId
|
|
365
|
-
connectionDiscriminator: peer.connectionDiscriminator
|
|
333
|
+
connectionId: peer.connectionId
|
|
366
334
|
};
|
|
367
335
|
}
|
|
368
336
|
function sameServiceNodeDescriptor(left, right) {
|
|
@@ -382,13 +350,6 @@ function sameImmutableDescriptor(left, right) {
|
|
|
382
350
|
function arraysEqual(left, right) {
|
|
383
351
|
return left.length === right.length && left.every((value, index) => value === right[index]);
|
|
384
352
|
}
|
|
385
|
-
function isUnmonitoredConnectionId(connectionId) {
|
|
386
|
-
return connectionId.startsWith('unmonitored:');
|
|
387
|
-
}
|
|
388
|
-
function compareConnectionCandidate(leftDiscriminator, leftId, rightDiscriminator, rightId) {
|
|
389
|
-
const discriminator = compareOrdinal(leftDiscriminator, rightDiscriminator);
|
|
390
|
-
return discriminator === 0 ? compareOrdinal(leftId, rightId) : discriminator;
|
|
391
|
-
}
|
|
392
353
|
function compareOrdinal(left, right) {
|
|
393
354
|
return left < right ? -1 : left > right ? 1 : 0;
|
|
394
355
|
}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import type { RoutingId } from '../../contracts';
|
|
2
|
+
export declare const SERVICE_WIRE_MAJOR_OFFSET = 2;
|
|
3
|
+
export declare const SERVICE_WIRE_COMMAND_OFFSET: number;
|
|
4
|
+
export declare const SERVICE_WIRE_FLAGS_OFFSET: number;
|
|
5
|
+
export declare const SERVICE_WIRE_PREFIX_SIZE: number;
|
|
6
|
+
export declare const SERVICE_WIRE_TEXT8_MAX_BYTES = 255;
|
|
2
7
|
export type ServiceWireInvalid = (message: string) => never;
|
|
3
8
|
/** Encodes text without silently replacing an unpaired UTF-16 surrogate. */
|
|
4
9
|
export declare function encodeCanonicalServiceWireText(value: string, field: string, maximumBytes: number, invalid: ServiceWireInvalid): Buffer;
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SERVICE_WIRE_TEXT8_MAX_BYTES = exports.SERVICE_WIRE_PREFIX_SIZE = exports.SERVICE_WIRE_FLAGS_OFFSET = exports.SERVICE_WIRE_COMMAND_OFFSET = exports.SERVICE_WIRE_MAJOR_OFFSET = void 0;
|
|
3
4
|
exports.encodeCanonicalServiceWireText = encodeCanonicalServiceWireText;
|
|
4
5
|
exports.decodeCanonicalServiceWireText = decodeCanonicalServiceWireText;
|
|
5
6
|
exports.encodeServiceWireRoutingId = encodeServiceWireRoutingId;
|
|
6
7
|
exports.decodeServiceWireRoutingId = decodeServiceWireRoutingId;
|
|
7
8
|
const routing_id_1 = require("../routing-id");
|
|
9
|
+
exports.SERVICE_WIRE_MAJOR_OFFSET = 2;
|
|
10
|
+
exports.SERVICE_WIRE_COMMAND_OFFSET = exports.SERVICE_WIRE_MAJOR_OFFSET + 1;
|
|
11
|
+
exports.SERVICE_WIRE_FLAGS_OFFSET = exports.SERVICE_WIRE_COMMAND_OFFSET + 1;
|
|
12
|
+
exports.SERVICE_WIRE_PREFIX_SIZE = exports.SERVICE_WIRE_FLAGS_OFFSET + 1;
|
|
13
|
+
exports.SERVICE_WIRE_TEXT8_MAX_BYTES = 255;
|
|
8
14
|
/** Encodes text without silently replacing an unpaired UTF-16 surrogate. */
|
|
9
15
|
function encodeCanonicalServiceWireText(value, field, maximumBytes, invalid) {
|
|
10
16
|
const bytes = Buffer.from(value, 'utf8');
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ServiceWireDecodeError = void 0;
|
|
4
4
|
exports.createServiceWireCodec = createServiceWireCodec;
|
|
5
|
-
const
|
|
5
|
+
const stream_wire_1 = require("@zlink-systems/stream-wire");
|
|
6
|
+
const service_wire_binary_primitives_1 = require("./service-wire-binary-primitives");
|
|
7
|
+
const PREFIX_SIZE = service_wire_binary_primitives_1.SERVICE_WIRE_PREFIX_SIZE;
|
|
6
8
|
const LIVENESS_FRAME_SIZE = PREFIX_SIZE + 8;
|
|
7
9
|
class ServiceWireDecodeError extends Error {
|
|
8
10
|
code;
|
|
@@ -21,15 +23,15 @@ function createServiceWireCodec(definition) {
|
|
|
21
23
|
record.command !== definition.commands.livenessAck) {
|
|
22
24
|
throw new RangeError('command must be a liveness command.');
|
|
23
25
|
}
|
|
24
|
-
if (record.probeId <= 0n || record.probeId >
|
|
26
|
+
if (record.probeId <= 0n || record.probeId > stream_wire_1.UINT64_MAX) {
|
|
25
27
|
throw new RangeError('probeId must be a non-zero unsigned 64-bit integer.');
|
|
26
28
|
}
|
|
27
29
|
const frame = Buffer.allocUnsafe(LIVENESS_FRAME_SIZE);
|
|
28
30
|
frame[0] = definition.magic[0];
|
|
29
31
|
frame[1] = definition.magic[1];
|
|
30
|
-
frame[
|
|
31
|
-
frame[
|
|
32
|
-
frame[
|
|
32
|
+
frame[service_wire_binary_primitives_1.SERVICE_WIRE_MAJOR_OFFSET] = definition.major;
|
|
33
|
+
frame[service_wire_binary_primitives_1.SERVICE_WIRE_COMMAND_OFFSET] = record.command;
|
|
34
|
+
frame[service_wire_binary_primitives_1.SERVICE_WIRE_FLAGS_OFFSET] = 0;
|
|
33
35
|
frame.writeBigUInt64BE(record.probeId, PREFIX_SIZE);
|
|
34
36
|
return frame;
|
|
35
37
|
},
|
|
@@ -39,16 +41,16 @@ function createServiceWireCodec(definition) {
|
|
|
39
41
|
if (frame[0] !== definition.magic[0] || frame[1] !== definition.magic[1]) {
|
|
40
42
|
fail('invalid-magic');
|
|
41
43
|
}
|
|
42
|
-
if (frame[
|
|
44
|
+
if (frame[service_wire_binary_primitives_1.SERVICE_WIRE_MAJOR_OFFSET] !== definition.major)
|
|
43
45
|
fail('unsupported-major');
|
|
44
|
-
const command = frame[
|
|
46
|
+
const command = frame[service_wire_binary_primitives_1.SERVICE_WIRE_COMMAND_OFFSET];
|
|
45
47
|
if (!knownCommands.has(command))
|
|
46
48
|
fail('unknown-command');
|
|
47
49
|
if (command !== definition.commands.livenessProbe &&
|
|
48
50
|
command !== definition.commands.livenessAck) {
|
|
49
51
|
fail('unknown-command');
|
|
50
52
|
}
|
|
51
|
-
if (frame[
|
|
53
|
+
if (frame[service_wire_binary_primitives_1.SERVICE_WIRE_FLAGS_OFFSET] !== 0)
|
|
52
54
|
fail('forbidden-flag');
|
|
53
55
|
if (frame.byteLength < LIVENESS_FRAME_SIZE)
|
|
54
56
|
fail('truncated-field');
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare const SERVICE_WIRE_MAGIC: readonly [90, 77];
|
|
2
2
|
export declare const SERVICE_WIRE_MAJOR: 1;
|
|
3
|
+
export declare const SERVICE_WIRE_METADATA_BYTES: 1024;
|
|
3
4
|
export declare const SERVICE_WIRE_REQUIRED_CAPABILITY: "framework-service-v13";
|
|
4
5
|
export declare const SERVICE_FRAMEWORK_MULTIPART_PACKET_NAME: "ZLinkFrameworkMultipart";
|
|
5
6
|
export declare const SERVICE_FRAMEWORK_MULTIPART_CONTENT_TYPE: "application/x-zlink-multipart";
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isValidServiceWireTerminalFailure = exports.ServiceWireExactTerminalByFailureCode = exports.ServiceWireBoundaryTerminalResults = exports.ServiceWireFrameworkErrorCode = exports.ServiceWireFlag = exports.ServiceWireCommand = exports.SERVICE_FRAMEWORK_MULTIPART_CONTENT_TYPE = exports.SERVICE_FRAMEWORK_MULTIPART_PACKET_NAME = exports.SERVICE_WIRE_REQUIRED_CAPABILITY = exports.SERVICE_WIRE_MAJOR = exports.SERVICE_WIRE_MAGIC = void 0;
|
|
3
|
+
exports.isValidServiceWireTerminalFailure = exports.ServiceWireExactTerminalByFailureCode = exports.ServiceWireBoundaryTerminalResults = exports.ServiceWireFrameworkErrorCode = exports.ServiceWireFlag = exports.ServiceWireCommand = exports.SERVICE_FRAMEWORK_MULTIPART_CONTENT_TYPE = exports.SERVICE_FRAMEWORK_MULTIPART_PACKET_NAME = exports.SERVICE_WIRE_REQUIRED_CAPABILITY = exports.SERVICE_WIRE_METADATA_BYTES = exports.SERVICE_WIRE_MAJOR = exports.SERVICE_WIRE_MAGIC = void 0;
|
|
4
4
|
// Generated from service-wire-v1.schema.json. Do not edit.
|
|
5
5
|
exports.SERVICE_WIRE_MAGIC = [90, 77];
|
|
6
6
|
exports.SERVICE_WIRE_MAJOR = 1;
|
|
7
|
+
exports.SERVICE_WIRE_METADATA_BYTES = 1024;
|
|
7
8
|
exports.SERVICE_WIRE_REQUIRED_CAPABILITY = "framework-service-v13";
|
|
8
9
|
exports.SERVICE_FRAMEWORK_MULTIPART_PACKET_NAME = "ZLinkFrameworkMultipart";
|
|
9
10
|
exports.SERVICE_FRAMEWORK_MULTIPART_CONTENT_TYPE = "application/x-zlink-multipart";
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { type ServiceNodeDescriptor } from './service-topology-registry';
|
|
2
|
+
export declare const APPLICATION_PAYLOAD_VERSION = 1;
|
|
3
|
+
export declare const APPLICATION_PAYLOAD_MINIMUM_FIELD_BYTES: number;
|
|
2
4
|
export declare const M6A_SERVICE_WIRE_MAGIC: readonly [90, 77];
|
|
3
5
|
export declare const M6A_SERVICE_WIRE_MAJOR: 1;
|
|
4
6
|
export declare const M6A_SERVICE_WIRE_REQUIRED_CAPABILITY: "framework-service-v13";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ServiceWireProtocolError = exports.M6aServiceWireCommand = exports.M6A_SERVICE_WIRE_REQUIRED_CAPABILITY = exports.M6A_SERVICE_WIRE_MAJOR = exports.M6A_SERVICE_WIRE_MAGIC = void 0;
|
|
3
|
+
exports.ServiceWireProtocolError = exports.M6aServiceWireCommand = exports.M6A_SERVICE_WIRE_REQUIRED_CAPABILITY = exports.M6A_SERVICE_WIRE_MAJOR = exports.M6A_SERVICE_WIRE_MAGIC = exports.APPLICATION_PAYLOAD_MINIMUM_FIELD_BYTES = exports.APPLICATION_PAYLOAD_VERSION = void 0;
|
|
4
4
|
exports.encodeNodeSendHeader = encodeNodeSendHeader;
|
|
5
5
|
exports.encodeNodeRequestHeader = encodeNodeRequestHeader;
|
|
6
6
|
exports.decodeNodeRequestHeader = decodeNodeRequestHeader;
|
|
@@ -20,13 +20,23 @@ exports.decodeRouteMeshAdmission = decodeRouteMeshAdmission;
|
|
|
20
20
|
exports.encodeReject = encodeReject;
|
|
21
21
|
exports.decodeReject = decodeReject;
|
|
22
22
|
exports.decodeHeader = decodeHeader;
|
|
23
|
-
const
|
|
23
|
+
const stream_wire_1 = require("@zlink-systems/stream-wire");
|
|
24
24
|
const EndpointNotation_1 = require("../../contracts/Configuration/EndpointNotation");
|
|
25
|
-
const
|
|
25
|
+
const service_topology_registry_1 = require("./service-topology-registry");
|
|
26
26
|
const service_wire_binary_primitives_1 = require("./service-wire-binary-primitives");
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
const
|
|
27
|
+
const service_wire_constants_generated_1 = require("./service-wire-constants.generated");
|
|
28
|
+
const PREFIX_SIZE = service_wire_binary_primitives_1.SERVICE_WIRE_PREFIX_SIZE;
|
|
29
|
+
const REPLY_HEADER_MIN_BYTES = PREFIX_SIZE + 16;
|
|
30
|
+
const SERVICE_ROUTE_TEXT_MAX_BYTES = 4096;
|
|
31
|
+
exports.APPLICATION_PAYLOAD_VERSION = 1;
|
|
32
|
+
const APPLICATION_PAYLOAD_LENGTH_FIELD_BYTES = 4;
|
|
33
|
+
const APPLICATION_PAYLOAD_TEXT_LENGTH_FIELD_BYTES = 1;
|
|
34
|
+
exports.APPLICATION_PAYLOAD_MINIMUM_FIELD_BYTES = 1 +
|
|
35
|
+
APPLICATION_PAYLOAD_LENGTH_FIELD_BYTES +
|
|
36
|
+
2 * APPLICATION_PAYLOAD_TEXT_LENGTH_FIELD_BYTES +
|
|
37
|
+
APPLICATION_PAYLOAD_LENGTH_FIELD_BYTES;
|
|
38
|
+
const MAX_U32 = stream_wire_1.UINT32_MAX;
|
|
39
|
+
const MAX_U64 = stream_wire_1.UINT64_MAX;
|
|
30
40
|
exports.M6A_SERVICE_WIRE_MAGIC = service_wire_constants_generated_1.SERVICE_WIRE_MAGIC;
|
|
31
41
|
exports.M6A_SERVICE_WIRE_MAJOR = service_wire_constants_generated_1.SERVICE_WIRE_MAJOR;
|
|
32
42
|
exports.M6A_SERVICE_WIRE_REQUIRED_CAPABILITY = service_wire_constants_generated_1.SERVICE_WIRE_REQUIRED_CAPABILITY;
|
|
@@ -100,7 +110,7 @@ function decodeReplyHeader(frame) {
|
|
|
100
110
|
const header = decodeHeader(frame);
|
|
101
111
|
if (header.command !== exports.M6aServiceWireCommand.reply ||
|
|
102
112
|
header.flags !== 0 ||
|
|
103
|
-
frame.byteLength <
|
|
113
|
+
frame.byteLength < REPLY_HEADER_MIN_BYTES) {
|
|
104
114
|
fail('Invalid reply header.');
|
|
105
115
|
}
|
|
106
116
|
const bytes = asBuffer(frame);
|
|
@@ -125,7 +135,7 @@ function encodeApplicationPayload(payload) {
|
|
|
125
135
|
if (bodyLength > MAX_U32)
|
|
126
136
|
fail('Application payload body exceeds u32.');
|
|
127
137
|
const result = Buffer.alloc(5 + bodyLength);
|
|
128
|
-
result[0] =
|
|
138
|
+
result[0] = exports.APPLICATION_PAYLOAD_VERSION;
|
|
129
139
|
result.writeUInt32BE(bodyLength, 1);
|
|
130
140
|
let offset = 5;
|
|
131
141
|
offset += packetName.copy(result, offset);
|
|
@@ -159,7 +169,7 @@ function encodeMultipartApplicationPayload(parts, packetName, contentType) {
|
|
|
159
169
|
if (bodyLength > MAX_U32)
|
|
160
170
|
fail('Application payload body exceeds u32.');
|
|
161
171
|
const result = Buffer.alloc(5 + bodyLength);
|
|
162
|
-
result[0] =
|
|
172
|
+
result[0] = exports.APPLICATION_PAYLOAD_VERSION;
|
|
163
173
|
result.writeUInt32BE(bodyLength, 1);
|
|
164
174
|
let offset = 5;
|
|
165
175
|
offset += packetNameBytes.copy(result, offset);
|
|
@@ -190,7 +200,7 @@ function decodeApplicationPayload(frame) {
|
|
|
190
200
|
*/
|
|
191
201
|
function decodeApplicationPayloadView(frame) {
|
|
192
202
|
const reader = new Reader(frame);
|
|
193
|
-
if (reader.u8('version') !==
|
|
203
|
+
if (reader.u8('version') !== exports.APPLICATION_PAYLOAD_VERSION)
|
|
194
204
|
fail('Invalid application payload version.');
|
|
195
205
|
const bodyLength = reader.u32('bodyLength');
|
|
196
206
|
if (bodyLength !== reader.remaining)
|
|
@@ -212,7 +222,7 @@ function decodeApplicationPayloadView(frame) {
|
|
|
212
222
|
*/
|
|
213
223
|
function validateApplicationPayloadFrame(frame) {
|
|
214
224
|
const reader = new Reader(frame);
|
|
215
|
-
if (reader.u8('version') !==
|
|
225
|
+
if (reader.u8('version') !== exports.APPLICATION_PAYLOAD_VERSION)
|
|
216
226
|
fail('Invalid application payload version.');
|
|
217
227
|
const bodyLength = reader.u32('bodyLength');
|
|
218
228
|
if (bodyLength !== reader.remaining)
|
|
@@ -413,7 +423,7 @@ function encodeText8(value, field) {
|
|
|
413
423
|
return concat(Buffer.of(bytes.byteLength), bytes);
|
|
414
424
|
}
|
|
415
425
|
function encodeText16(value, field) {
|
|
416
|
-
const bytes = (0, service_wire_binary_primitives_1.encodeCanonicalServiceWireText)(value, field,
|
|
426
|
+
const bytes = (0, service_wire_binary_primitives_1.encodeCanonicalServiceWireText)(value, field, SERVICE_ROUTE_TEXT_MAX_BYTES, fail);
|
|
417
427
|
return concat(encodeU16(bytes.byteLength), bytes);
|
|
418
428
|
}
|
|
419
429
|
function tlv(id, value) {
|
|
@@ -539,7 +549,7 @@ class Reader {
|
|
|
539
549
|
}
|
|
540
550
|
text16(field) {
|
|
541
551
|
const length = this.u16(`${field}.length`);
|
|
542
|
-
if (length === 0 || length >
|
|
552
|
+
if (length === 0 || length > SERVICE_ROUTE_TEXT_MAX_BYTES)
|
|
543
553
|
fail(`${field} has invalid length.`);
|
|
544
554
|
return decodeText(this.bytes(length, field), field);
|
|
545
555
|
}
|
|
@@ -45,6 +45,7 @@ export declare enum ZLinkFrameworkInternalErrorKind {
|
|
|
45
45
|
ActorRouteUnavailable = "actorRouteUnavailable"
|
|
46
46
|
}
|
|
47
47
|
export declare const ZLINK_FRAMEWORK_INTERNAL_ERROR_KIND_VALUES: Readonly<Record<ZLinkFrameworkInternalErrorKind, number>>;
|
|
48
|
+
export declare function frameworkRelocationFailureCode(error: ZLinkFrameworkErrorKind | ZLinkFrameworkException): number;
|
|
48
49
|
export declare function createInternalFrameworkException(kind: ZLinkFrameworkInternalErrorKind, message: string, causeOrRetry?: unknown, cause?: unknown): ZLinkFrameworkException;
|
|
49
50
|
export declare function internalFrameworkErrorKind(error: ZLinkFrameworkException): ZLinkFrameworkInternalErrorKind | undefined;
|
|
50
51
|
/**
|
|
@@ -83,7 +84,7 @@ export declare function wireReplyFailureException(terminalResult: number, failur
|
|
|
83
84
|
export declare function translateWireReplyDecodeError(error: unknown): unknown;
|
|
84
85
|
export declare function internalFrameworkErrorCode(error: ZLinkFrameworkException): number;
|
|
85
86
|
/** Produces the canonical stateful wire terminal without leaking internal kinds. */
|
|
86
|
-
export declare function internalFrameworkWireReply(error: ZLinkFrameworkException): {
|
|
87
|
+
export declare function internalFrameworkWireReply(error: ZLinkFrameworkException | ZLinkFrameworkInternalErrorKind | ZLinkFrameworkErrorKind): {
|
|
87
88
|
readonly terminalResult: number;
|
|
88
89
|
readonly failureCode: number;
|
|
89
90
|
};
|