@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
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import type { ZLinkFanoutPublishCall } from './Calls';
|
|
2
|
-
export interface ZLinkFanoutListenerStatus {
|
|
3
|
-
readonly channelName: string;
|
|
4
|
-
readonly endpoint: string;
|
|
5
|
-
readonly observedAt: Date;
|
|
6
|
-
}
|
|
7
2
|
export interface ZLinkFanoutClient {
|
|
8
3
|
publish(channelName: string, event: unknown): ZLinkFanoutPublishCall;
|
|
9
4
|
publish(channelName: string, topic: string, event: unknown): ZLinkFanoutPublishCall;
|
|
10
|
-
getListenerStatus(channelName: string): ZLinkFanoutListenerStatus;
|
|
11
5
|
}
|
|
@@ -4,3 +4,9 @@ export type RoutingId = string;
|
|
|
4
4
|
export type ActorId = string;
|
|
5
5
|
/** Global logical Spot identity. It is not a transport RoutingId. */
|
|
6
6
|
export type SpotId = string;
|
|
7
|
+
export declare const ZLINK_MAX_ACTOR_ID_BYTES = 255;
|
|
8
|
+
export declare const ZLINK_MAX_SPOT_ID_BYTES = 255;
|
|
9
|
+
export declare const ZLINK_MAX_ROUTING_ID_BYTES = 255;
|
|
10
|
+
export declare const ZLINK_MAX_STABLE_TYPE_BYTES = 255;
|
|
11
|
+
export declare const ZLINK_MAX_MESH_NAME_BYTES = 255;
|
|
12
|
+
export declare const ZLINK_MAX_IDENTITY_TEXT_BYTES = 255;
|
|
@@ -1,2 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZLINK_MAX_IDENTITY_TEXT_BYTES = exports.ZLINK_MAX_MESH_NAME_BYTES = exports.ZLINK_MAX_STABLE_TYPE_BYTES = exports.ZLINK_MAX_ROUTING_ID_BYTES = exports.ZLINK_MAX_SPOT_ID_BYTES = exports.ZLINK_MAX_ACTOR_ID_BYTES = void 0;
|
|
4
|
+
exports.ZLINK_MAX_ACTOR_ID_BYTES = 255;
|
|
5
|
+
exports.ZLINK_MAX_SPOT_ID_BYTES = 255;
|
|
6
|
+
exports.ZLINK_MAX_ROUTING_ID_BYTES = 255;
|
|
7
|
+
exports.ZLINK_MAX_STABLE_TYPE_BYTES = 255;
|
|
8
|
+
exports.ZLINK_MAX_MESH_NAME_BYTES = 255;
|
|
9
|
+
exports.ZLINK_MAX_IDENTITY_TEXT_BYTES = 255;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from './ActorRef';
|
|
2
|
-
export
|
|
2
|
+
export type { Type, RoutingId, ActorId, SpotId } from './CoreTypes';
|
|
3
3
|
export * from './ZLinkEncodedPayload';
|
|
4
4
|
export * from './ZLinkMessageMetadata';
|
|
5
5
|
export { ZLinkMessage, isZLinkMessage } from './ZLinkMessage';
|
|
@@ -16,7 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.isZLinkMessage = exports.ZLinkMessage = void 0;
|
|
18
18
|
__exportStar(require("./ActorRef"), exports);
|
|
19
|
-
__exportStar(require("./CoreTypes"), exports);
|
|
20
19
|
__exportStar(require("./ZLinkEncodedPayload"), exports);
|
|
21
20
|
__exportStar(require("./ZLinkMessageMetadata"), exports);
|
|
22
21
|
var ZLinkMessage_1 = require("./ZLinkMessage");
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
/** Default complete header plus payload size accepted by a StreamNode. */
|
|
2
2
|
export declare const DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE: number;
|
|
3
|
+
/** service-wire 스키마가 정한 relocation chunk payload의 바이트 상한입니다. */
|
|
4
|
+
export declare const RELOCATION_STATE_CHUNK_DATA_MAX_BYTES = 67108864;
|
|
5
|
+
/** Default MeshNode pending activation limit (spec 03-mesh-node §5.1). */
|
|
6
|
+
export declare const DEFAULT_ACTIVATION_CONCURRENCY_LIMIT = 128;
|
|
3
7
|
/** Defaults shared by registration normalization and the runtime worker pool. */
|
|
4
8
|
export declare const DEFAULT_WORKER_MIN_THREADS = 0;
|
|
5
9
|
export declare const DEFAULT_WORKER_IDLE_TIMEOUT_MS = 30000;
|
|
6
10
|
export declare function defaultWorkerMaxThreads(): number;
|
|
11
|
+
export declare const ZLINK_RELOCATION_MAX_BLOB_REFERENCE_BYTES = 4096;
|
|
12
|
+
export declare const AUTHORITY_ENVELOPE_MAX_BYTES: number;
|
|
13
|
+
export declare const CREATION_INTENT_MAX_BYTES: number;
|
|
14
|
+
export declare const CREATION_TERMINAL_ENVELOPE_MAX_BYTES: number;
|
|
@@ -33,14 +33,22 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.DEFAULT_WORKER_IDLE_TIMEOUT_MS = exports.DEFAULT_WORKER_MIN_THREADS = exports.DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE = void 0;
|
|
36
|
+
exports.CREATION_TERMINAL_ENVELOPE_MAX_BYTES = exports.CREATION_INTENT_MAX_BYTES = exports.AUTHORITY_ENVELOPE_MAX_BYTES = exports.ZLINK_RELOCATION_MAX_BLOB_REFERENCE_BYTES = exports.DEFAULT_WORKER_IDLE_TIMEOUT_MS = exports.DEFAULT_WORKER_MIN_THREADS = exports.DEFAULT_ACTIVATION_CONCURRENCY_LIMIT = exports.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES = exports.DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE = void 0;
|
|
37
37
|
exports.defaultWorkerMaxThreads = defaultWorkerMaxThreads;
|
|
38
38
|
const os = __importStar(require("node:os"));
|
|
39
39
|
/** Default complete header plus payload size accepted by a StreamNode. */
|
|
40
40
|
exports.DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE = 64 * 1024;
|
|
41
|
+
/** service-wire 스키마가 정한 relocation chunk payload의 바이트 상한입니다. */
|
|
42
|
+
exports.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES = 67_108_864;
|
|
43
|
+
/** Default MeshNode pending activation limit (spec 03-mesh-node §5.1). */
|
|
44
|
+
exports.DEFAULT_ACTIVATION_CONCURRENCY_LIMIT = 128;
|
|
41
45
|
/** Defaults shared by registration normalization and the runtime worker pool. */
|
|
42
46
|
exports.DEFAULT_WORKER_MIN_THREADS = 0;
|
|
43
47
|
exports.DEFAULT_WORKER_IDLE_TIMEOUT_MS = 30_000;
|
|
44
48
|
function defaultWorkerMaxThreads() {
|
|
45
49
|
return Math.max(2, os.availableParallelism());
|
|
46
50
|
}
|
|
51
|
+
exports.ZLINK_RELOCATION_MAX_BLOB_REFERENCE_BYTES = 4096;
|
|
52
|
+
exports.AUTHORITY_ENVELOPE_MAX_BYTES = 1024 * 1024;
|
|
53
|
+
exports.CREATION_INTENT_MAX_BYTES = 1024 * 1024;
|
|
54
|
+
exports.CREATION_TERMINAL_ENVELOPE_MAX_BYTES = 1024 * 1024;
|
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
import type { ZLinkFrameworkOptions } from '../../contracts';
|
|
2
|
+
import { ZLinkApplicationJobQueueProfile } from '../Dispatch';
|
|
3
|
+
import type { ZLinkFrameworkRegistration, ZLinkFrameworkRegistrationOptions } from './RegistrationTypes';
|
|
4
|
+
import { validateFrameworkRegistration } from './RegistrationValidators';
|
|
5
|
+
export declare const DEFAULT_REQUEST_TIMEOUT_MS = 30000;
|
|
2
6
|
export { ZLinkConfigurationException } from './ConfigurationException';
|
|
3
7
|
export { createFrameworkOptions } from './RegistrationBuilders';
|
|
4
8
|
export { hasActorManager, hasSpotNode, hasSpotPublisherClient, requirePositiveInteger } from './RegistrationNormalizers';
|
|
5
|
-
import type { ZLinkFrameworkRegistration, ZLinkFrameworkRegistrationOptions } from './RegistrationTypes';
|
|
6
9
|
export * from './RegistrationTypes';
|
|
7
|
-
import { validateFrameworkRegistration } from './RegistrationValidators';
|
|
8
10
|
export { validateFrameworkRegistration };
|
|
9
11
|
export { normalizeEndpoint, buildAdvertisedEndpoint, parseEndpointHostPort } from './EndpointNotation';
|
|
12
|
+
export declare const DEFAULT_SESSION_REPLACEMENT_CALLBACK_TIMEOUT_MS = 30000;
|
|
10
13
|
export declare function createFrameworkRegistration(options?: ZLinkFrameworkRegistrationOptions): ZLinkFrameworkRegistration;
|
|
14
|
+
export declare function normalizeFrameworkRegistration(options: ZLinkFrameworkRegistrationOptions): ZLinkFrameworkRegistration;
|
|
15
|
+
export declare const MAX_QUEUED_APPLICATION_JOBS = 2147483647n;
|
|
16
|
+
export declare const DEFAULT_PAUSE_THRESHOLD_PERCENT = 80;
|
|
17
|
+
export declare const DEFAULT_RESUME_THRESHOLD_PERCENT = 60;
|
|
18
|
+
export declare const APPLICATION_JOB_QUEUE_PERCENT_SCALE = 100;
|
|
19
|
+
export declare function isKnownApplicationJobQueueProfile(value: unknown): value is ZLinkApplicationJobQueueProfile;
|
|
20
|
+
export declare function validateApplicationJobQueueMaximum(value: bigint | undefined, createError: (message: string) => Error): void;
|
|
21
|
+
export declare function validateApplicationJobQueuePressureThresholds(pause: number, resume: number, createError: (message: string) => Error): void;
|
|
11
22
|
export declare function createFrameworkRegistrationWithBuilder(configure: (options: ZLinkFrameworkOptions) => void): ZLinkFrameworkRegistration;
|
|
@@ -14,32 +14,44 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.parseEndpointHostPort = exports.buildAdvertisedEndpoint = exports.normalizeEndpoint = exports.validateFrameworkRegistration = exports.requirePositiveInteger = exports.hasSpotPublisherClient = exports.hasSpotNode = exports.hasActorManager = exports.createFrameworkOptions = exports.ZLinkConfigurationException = void 0;
|
|
17
|
+
exports.APPLICATION_JOB_QUEUE_PERCENT_SCALE = exports.DEFAULT_RESUME_THRESHOLD_PERCENT = exports.DEFAULT_PAUSE_THRESHOLD_PERCENT = exports.MAX_QUEUED_APPLICATION_JOBS = exports.DEFAULT_SESSION_REPLACEMENT_CALLBACK_TIMEOUT_MS = exports.parseEndpointHostPort = exports.buildAdvertisedEndpoint = exports.normalizeEndpoint = exports.validateFrameworkRegistration = exports.requirePositiveInteger = exports.hasSpotPublisherClient = exports.hasSpotNode = exports.hasActorManager = exports.createFrameworkOptions = exports.ZLinkConfigurationException = exports.DEFAULT_REQUEST_TIMEOUT_MS = void 0;
|
|
18
18
|
exports.createFrameworkRegistration = createFrameworkRegistration;
|
|
19
|
+
exports.normalizeFrameworkRegistration = normalizeFrameworkRegistration;
|
|
20
|
+
exports.isKnownApplicationJobQueueProfile = isKnownApplicationJobQueueProfile;
|
|
21
|
+
exports.validateApplicationJobQueueMaximum = validateApplicationJobQueueMaximum;
|
|
22
|
+
exports.validateApplicationJobQueuePressureThresholds = validateApplicationJobQueuePressureThresholds;
|
|
19
23
|
exports.createFrameworkRegistrationWithBuilder = createFrameworkRegistrationWithBuilder;
|
|
24
|
+
const zlink_1 = require("@zlink-systems/zlink");
|
|
25
|
+
const CoreTypes_1 = require("../Common/CoreTypes");
|
|
20
26
|
const Dispatch_1 = require("../Dispatch");
|
|
27
|
+
const Options_1 = require("../Locations/Options");
|
|
28
|
+
const RegistrationBuilders_1 = require("./RegistrationBuilders");
|
|
29
|
+
const RegistrationCodecRegistry_1 = require("./RegistrationCodecRegistry");
|
|
30
|
+
const RegistrationNormalizers_1 = require("./RegistrationNormalizers");
|
|
31
|
+
const RegistrationValidators_1 = require("./RegistrationValidators");
|
|
32
|
+
Object.defineProperty(exports, "validateFrameworkRegistration", { enumerable: true, get: function () { return RegistrationValidators_1.validateFrameworkRegistration; } });
|
|
33
|
+
exports.DEFAULT_REQUEST_TIMEOUT_MS = 30_000;
|
|
21
34
|
var ConfigurationException_1 = require("./ConfigurationException");
|
|
22
35
|
Object.defineProperty(exports, "ZLinkConfigurationException", { enumerable: true, get: function () { return ConfigurationException_1.ZLinkConfigurationException; } });
|
|
23
|
-
const RegistrationBuilders_1 = require("./RegistrationBuilders");
|
|
24
36
|
var RegistrationBuilders_2 = require("./RegistrationBuilders");
|
|
25
37
|
Object.defineProperty(exports, "createFrameworkOptions", { enumerable: true, get: function () { return RegistrationBuilders_2.createFrameworkOptions; } });
|
|
26
|
-
const RegistrationCodecRegistry_1 = require("./RegistrationCodecRegistry");
|
|
27
|
-
const RegistrationNormalizers_1 = require("./RegistrationNormalizers");
|
|
28
38
|
var RegistrationNormalizers_2 = require("./RegistrationNormalizers");
|
|
29
39
|
Object.defineProperty(exports, "hasActorManager", { enumerable: true, get: function () { return RegistrationNormalizers_2.hasActorManager; } });
|
|
30
40
|
Object.defineProperty(exports, "hasSpotNode", { enumerable: true, get: function () { return RegistrationNormalizers_2.hasSpotNode; } });
|
|
31
41
|
Object.defineProperty(exports, "hasSpotPublisherClient", { enumerable: true, get: function () { return RegistrationNormalizers_2.hasSpotPublisherClient; } });
|
|
32
42
|
Object.defineProperty(exports, "requirePositiveInteger", { enumerable: true, get: function () { return RegistrationNormalizers_2.requirePositiveInteger; } });
|
|
33
43
|
__exportStar(require("./RegistrationTypes"), exports);
|
|
34
|
-
const RegistrationValidators_1 = require("./RegistrationValidators");
|
|
35
|
-
Object.defineProperty(exports, "validateFrameworkRegistration", { enumerable: true, get: function () { return RegistrationValidators_1.validateFrameworkRegistration; } });
|
|
36
44
|
var EndpointNotation_1 = require("./EndpointNotation");
|
|
37
45
|
Object.defineProperty(exports, "normalizeEndpoint", { enumerable: true, get: function () { return EndpointNotation_1.normalizeEndpoint; } });
|
|
38
46
|
Object.defineProperty(exports, "buildAdvertisedEndpoint", { enumerable: true, get: function () { return EndpointNotation_1.buildAdvertisedEndpoint; } });
|
|
39
47
|
Object.defineProperty(exports, "parseEndpointHostPort", { enumerable: true, get: function () { return EndpointNotation_1.parseEndpointHostPort; } });
|
|
40
|
-
|
|
41
|
-
const DEFAULT_SESSION_REPLACEMENT_CALLBACK_TIMEOUT_MS = 30_000;
|
|
48
|
+
exports.DEFAULT_SESSION_REPLACEMENT_CALLBACK_TIMEOUT_MS = 30_000;
|
|
42
49
|
function createFrameworkRegistration(options = {}) {
|
|
50
|
+
const registration = normalizeFrameworkRegistration(options);
|
|
51
|
+
(0, RegistrationValidators_1.validateFrameworkRegistration)(registration, options);
|
|
52
|
+
return registration;
|
|
53
|
+
}
|
|
54
|
+
function normalizeFrameworkRegistration(options) {
|
|
43
55
|
const codecRegistry = (0, RegistrationCodecRegistry_1.createCodecRegistry)(options.codecs);
|
|
44
56
|
const network = (0, RegistrationNormalizers_1.normalizeNetworkOptions)(options.network);
|
|
45
57
|
const routeChannelOptions = (0, RegistrationNormalizers_1.toRouteChannelOptions)(options);
|
|
@@ -53,8 +65,8 @@ function createFrameworkRegistration(options = {}) {
|
|
|
53
65
|
requestTimeoutMs: (0, RegistrationNormalizers_1.normalizeOptionalPositiveInteger)(options.requestTimeoutMs, 'requestTimeoutMs'),
|
|
54
66
|
actorFactories: (0, RegistrationNormalizers_1.actorFactoriesFromSpotNodes)(spotNodes),
|
|
55
67
|
actorTransferTimeoutMs: (0, RegistrationNormalizers_1.normalizeOptionalPositiveInteger)(options.actorTransferTimeoutMs, 'actorTransferTimeoutMs'),
|
|
56
|
-
messageFollowDurationMs: normalizeNonNegativeInteger(options.messageFollowDurationMs, 'messageFollowDurationMs',
|
|
57
|
-
sessionReplacementCallbackTimeoutMs: normalizePositiveInteger(options.sessionReplacementCallbackTimeoutMs, 'sessionReplacementCallbackTimeoutMs', DEFAULT_SESSION_REPLACEMENT_CALLBACK_TIMEOUT_MS),
|
|
68
|
+
messageFollowDurationMs: normalizeNonNegativeInteger(options.messageFollowDurationMs, 'messageFollowDurationMs', Options_1.zlinkDefaultLocationOptions.messageFollowDurationMs),
|
|
69
|
+
sessionReplacementCallbackTimeoutMs: normalizePositiveInteger(options.sessionReplacementCallbackTimeoutMs, 'sessionReplacementCallbackTimeoutMs', exports.DEFAULT_SESSION_REPLACEMENT_CALLBACK_TIMEOUT_MS),
|
|
58
70
|
spotFactories: (0, RegistrationNormalizers_1.toSpotFactorySet)(options.spotFactories, spotNodes),
|
|
59
71
|
channels: (0, RegistrationNormalizers_1.toChannelMap)(options.channels, network),
|
|
60
72
|
channelClients: (0, RegistrationNormalizers_1.channelNamesWith)(options.channels, (channel) => channel.client !== undefined),
|
|
@@ -73,36 +85,42 @@ function createFrameworkRegistration(options = {}) {
|
|
|
73
85
|
applicationJobQueue: normalizeApplicationJobQueue(options.applicationJobQueue),
|
|
74
86
|
locations: (0, RegistrationNormalizers_1.normalizeLocationRegistration)(options.locations)
|
|
75
87
|
};
|
|
76
|
-
(0, RegistrationValidators_1.validateFrameworkRegistration)(registration, options);
|
|
77
88
|
return registration;
|
|
78
89
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
90
|
+
exports.MAX_QUEUED_APPLICATION_JOBS = 2147483647n;
|
|
91
|
+
exports.DEFAULT_PAUSE_THRESHOLD_PERCENT = 80;
|
|
92
|
+
exports.DEFAULT_RESUME_THRESHOLD_PERCENT = 60;
|
|
93
|
+
exports.APPLICATION_JOB_QUEUE_PERCENT_SCALE = 100;
|
|
94
|
+
function isKnownApplicationJobQueueProfile(value) {
|
|
95
|
+
return Object.values(Dispatch_1.ZLinkApplicationJobQueueProfile).includes(value);
|
|
96
|
+
}
|
|
97
|
+
function validateApplicationJobQueueMaximum(value, createError) {
|
|
98
|
+
if (value !== undefined &&
|
|
99
|
+
(typeof value !== 'bigint' || value < 1n || value > exports.MAX_QUEUED_APPLICATION_JOBS)) {
|
|
100
|
+
throw createError(`maxQueuedApplicationJobs must be a bigint in the range 1..${exports.MAX_QUEUED_APPLICATION_JOBS}.`);
|
|
83
101
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
maxQueuedApplicationJobs > 2147483647n)) {
|
|
89
|
-
throw new TypeError('applicationJobQueue.maxQueuedApplicationJobs must be a bigint in the range 1..2147483647.');
|
|
102
|
+
}
|
|
103
|
+
function validateApplicationJobQueuePressureThresholds(pause, resume, createError) {
|
|
104
|
+
if (!Number.isInteger(pause) || pause < 1 || pause > exports.APPLICATION_JOB_QUEUE_PERCENT_SCALE) {
|
|
105
|
+
throw createError(`pauseThresholdPercent must be an integer in the range 1..${exports.APPLICATION_JOB_QUEUE_PERCENT_SCALE}.`);
|
|
90
106
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if (!Number.isInteger(pauseThresholdPercent) ||
|
|
94
|
-
pauseThresholdPercent < 1 ||
|
|
95
|
-
pauseThresholdPercent > 100) {
|
|
96
|
-
throw new TypeError('applicationJobQueue.pauseThresholdPercent must be an integer in the range 1..100.');
|
|
107
|
+
if (!Number.isInteger(resume) || resume < 0 || resume >= exports.APPLICATION_JOB_QUEUE_PERCENT_SCALE) {
|
|
108
|
+
throw createError(`resumeThresholdPercent must be an integer in the range 0..${exports.APPLICATION_JOB_QUEUE_PERCENT_SCALE - 1}.`);
|
|
97
109
|
}
|
|
98
|
-
if (
|
|
99
|
-
resumeThresholdPercent
|
|
100
|
-
resumeThresholdPercent > 99) {
|
|
101
|
-
throw new TypeError('applicationJobQueue.resumeThresholdPercent must be an integer in the range 0..99.');
|
|
110
|
+
if (resume >= pause) {
|
|
111
|
+
throw createError('resumeThresholdPercent must be less than pauseThresholdPercent.');
|
|
102
112
|
}
|
|
103
|
-
|
|
104
|
-
|
|
113
|
+
}
|
|
114
|
+
function normalizeApplicationJobQueue(value) {
|
|
115
|
+
const profile = value?.profile ?? Dispatch_1.ZLinkApplicationJobQueueProfile.Balanced;
|
|
116
|
+
if (!isKnownApplicationJobQueueProfile(profile)) {
|
|
117
|
+
throw new TypeError('applicationJobQueue.profile must be a supported profile.');
|
|
105
118
|
}
|
|
119
|
+
const maxQueuedApplicationJobs = value?.maxQueuedApplicationJobs;
|
|
120
|
+
validateApplicationJobQueueMaximum(maxQueuedApplicationJobs, (message) => new TypeError(`applicationJobQueue.${message}`));
|
|
121
|
+
const pauseThresholdPercent = value?.pauseThresholdPercent ?? exports.DEFAULT_PAUSE_THRESHOLD_PERCENT;
|
|
122
|
+
const resumeThresholdPercent = value?.resumeThresholdPercent ?? exports.DEFAULT_RESUME_THRESHOLD_PERCENT;
|
|
123
|
+
validateApplicationJobQueuePressureThresholds(pauseThresholdPercent, resumeThresholdPercent, (message) => new TypeError(`applicationJobQueue.${message}`));
|
|
106
124
|
return Object.freeze({
|
|
107
125
|
profile,
|
|
108
126
|
maxQueuedApplicationJobs,
|
|
@@ -114,7 +132,8 @@ function normalizeCoreHwm(value) {
|
|
|
114
132
|
if (value === undefined)
|
|
115
133
|
return undefined;
|
|
116
134
|
const { profile, memoryLimitBytes, budgetBytes } = value;
|
|
117
|
-
if (profile !== undefined &&
|
|
135
|
+
if (profile !== undefined &&
|
|
136
|
+
(!Number.isInteger(profile) || profile < 0 || profile > zlink_1.AutoHwmProfile.Throughput)) {
|
|
118
137
|
throw new TypeError('coreHwm.profile must be a Core Auto HWM profile value.');
|
|
119
138
|
}
|
|
120
139
|
for (const [name, bytes] of [
|
|
@@ -139,8 +158,11 @@ function normalizeMaintenanceWave(value) {
|
|
|
139
158
|
if (value === undefined)
|
|
140
159
|
return undefined;
|
|
141
160
|
const byteLength = typeof value === 'string' ? new TextEncoder().encode(value).byteLength : 0;
|
|
142
|
-
if (typeof value !== 'string' ||
|
|
143
|
-
|
|
161
|
+
if (typeof value !== 'string' ||
|
|
162
|
+
byteLength === 0 ||
|
|
163
|
+
byteLength > CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES ||
|
|
164
|
+
value.includes('\0')) {
|
|
165
|
+
throw new TypeError(`maintenanceWave must be a 1..${CoreTypes_1.ZLINK_MAX_IDENTITY_TEXT_BYTES} byte UTF-8 string without NUL.`);
|
|
144
166
|
}
|
|
145
167
|
return value;
|
|
146
168
|
}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
import type { Type, ZLinkEntrySpot, ZLinkSpot } from '../../contracts';
|
|
1
|
+
import type { Type, ZLinkEntrySpot, ZLinkSpot, ZLinkRelocationStore } from '../../contracts';
|
|
2
|
+
export declare const MAX_LISTENER_PORT = 65535;
|
|
3
|
+
export declare function registerRelocationStore(options: {
|
|
4
|
+
relocationStoreInstance?: ZLinkRelocationStore;
|
|
5
|
+
}, store: ZLinkRelocationStore): void;
|
|
6
|
+
export declare function isValidListenerPort(value: number): boolean;
|
|
7
|
+
export declare const ZLINK_MAX_CAPACITY = 2147483647;
|
|
8
|
+
export declare function isValidPositiveCapacity(value: number): boolean;
|
|
9
|
+
export declare function isValidCapacity(value: number): boolean;
|
|
10
|
+
export declare const ZLINK_DEFAULT_PUBLIC_WEIGHT = 100;
|
|
11
|
+
export declare const ZLINK_MAX_PUBLIC_WEIGHT = 10000;
|
|
12
|
+
export declare function isValidPublicWeight(value: number): boolean;
|
|
13
|
+
export declare function requirePublicWeight(value: number, label: string): number;
|
|
2
14
|
export declare function validateMessageFollowDuration(timeoutMs: number): number;
|
|
3
15
|
export declare function validateActorTransferTimeout(timeoutMs: number): number;
|
|
4
16
|
export declare function validateSessionReplacementCallbackTimeout(timeoutMs: number): number;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZLINK_MAX_PUBLIC_WEIGHT = exports.ZLINK_DEFAULT_PUBLIC_WEIGHT = exports.ZLINK_MAX_CAPACITY = exports.MAX_LISTENER_PORT = void 0;
|
|
4
|
+
exports.registerRelocationStore = registerRelocationStore;
|
|
5
|
+
exports.isValidListenerPort = isValidListenerPort;
|
|
6
|
+
exports.isValidPositiveCapacity = isValidPositiveCapacity;
|
|
7
|
+
exports.isValidCapacity = isValidCapacity;
|
|
8
|
+
exports.isValidPublicWeight = isValidPublicWeight;
|
|
9
|
+
exports.requirePublicWeight = requirePublicWeight;
|
|
3
10
|
exports.validateMessageFollowDuration = validateMessageFollowDuration;
|
|
4
11
|
exports.validateActorTransferTimeout = validateActorTransferTimeout;
|
|
5
12
|
exports.validateSessionReplacementCallbackTimeout = validateSessionReplacementCallbackTimeout;
|
|
@@ -7,7 +14,36 @@ exports.registerEntrySpot = registerEntrySpot;
|
|
|
7
14
|
exports.registerSpotFactory = registerSpotFactory;
|
|
8
15
|
exports.registerActorFactory = registerActorFactory;
|
|
9
16
|
exports.validateRoutingIdPrefix = validateRoutingIdPrefix;
|
|
17
|
+
const CoreTypes_1 = require("../Common/CoreTypes");
|
|
10
18
|
const ConfigurationException_1 = require("./ConfigurationException");
|
|
19
|
+
exports.MAX_LISTENER_PORT = 65_535;
|
|
20
|
+
function registerRelocationStore(options, store) {
|
|
21
|
+
if (options.relocationStoreInstance !== undefined) {
|
|
22
|
+
throw new ConfigurationException_1.ZLinkConfigurationException('Relocation Store is already registered.');
|
|
23
|
+
}
|
|
24
|
+
options.relocationStoreInstance = store;
|
|
25
|
+
}
|
|
26
|
+
function isValidListenerPort(value) {
|
|
27
|
+
return Number.isInteger(value) && value >= 0 && value <= exports.MAX_LISTENER_PORT;
|
|
28
|
+
}
|
|
29
|
+
exports.ZLINK_MAX_CAPACITY = 0x7fff_ffff;
|
|
30
|
+
function isValidPositiveCapacity(value) {
|
|
31
|
+
return Number.isSafeInteger(value) && value > 0 && value <= exports.ZLINK_MAX_CAPACITY;
|
|
32
|
+
}
|
|
33
|
+
function isValidCapacity(value) {
|
|
34
|
+
return Number.isSafeInteger(value) && value >= 0 && value <= exports.ZLINK_MAX_CAPACITY;
|
|
35
|
+
}
|
|
36
|
+
exports.ZLINK_DEFAULT_PUBLIC_WEIGHT = 100;
|
|
37
|
+
exports.ZLINK_MAX_PUBLIC_WEIGHT = 10_000;
|
|
38
|
+
function isValidPublicWeight(value) {
|
|
39
|
+
return Number.isInteger(value) && value >= 0 && value <= exports.ZLINK_MAX_PUBLIC_WEIGHT;
|
|
40
|
+
}
|
|
41
|
+
function requirePublicWeight(value, label) {
|
|
42
|
+
if (!isValidPublicWeight(value)) {
|
|
43
|
+
throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be an integer in 0..${exports.ZLINK_MAX_PUBLIC_WEIGHT}.`);
|
|
44
|
+
}
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
11
47
|
function validateMessageFollowDuration(timeoutMs) {
|
|
12
48
|
if (!Number.isSafeInteger(timeoutMs) || timeoutMs < 0) {
|
|
13
49
|
throw new ConfigurationException_1.ZLinkConfigurationException('Message Follow duration must be a non-negative safe integer.');
|
|
@@ -54,7 +90,8 @@ function validateRoutingIdPrefix(prefix) {
|
|
|
54
90
|
if (prefix.trim().length === 0 || prefix !== prefix.trim()) {
|
|
55
91
|
throw new ConfigurationException_1.ZLinkConfigurationException('Routing-id prefix must not be empty or padded.');
|
|
56
92
|
}
|
|
57
|
-
if (Buffer.byteLength(`${prefix}-00000000-0000-0000-0000-000000000000`, 'utf8') >
|
|
93
|
+
if (Buffer.byteLength(`${prefix}-00000000-0000-0000-0000-000000000000`, 'utf8') >
|
|
94
|
+
CoreTypes_1.ZLINK_MAX_ROUTING_ID_BYTES) {
|
|
58
95
|
throw new ConfigurationException_1.ZLinkConfigurationException('Routing-id prefix is too long for a generated routing id.');
|
|
59
96
|
}
|
|
60
97
|
return prefix;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { ZLinkFrameworkOptions, ZLinkLocationOptionValues, ZLinkStreamCompressionBuilder, ZLinkStreamCompressionCodec } from '../../contracts';
|
|
2
|
-
import type
|
|
3
|
-
import { ZLinkApplicationJobQueueProfile, ZLinkCoreHwmProfile } from '../Dispatch';
|
|
2
|
+
import { type ZLinkDispatchOptions, type ZLinkDispatchOptionsBuilder, type ZLinkInboundDispatchOptions, type ZLinkMessageFlowLogMode, ZLinkApplicationJobQueueProfile, ZLinkCoreHwmProfile } from '../Dispatch';
|
|
4
3
|
import type { ZLinkLocationOptions } from '../Locations';
|
|
5
|
-
import type { ZLinkApplicationJobQueueOptions,
|
|
4
|
+
import type { ZLinkApplicationJobQueueOptions, ZLinkCoreHwmOptions, ZLinkFrameworkRegistrationOptions } from './RegistrationTypes';
|
|
6
5
|
export declare function createFrameworkOptions(configure: (options: ZLinkFrameworkOptions) => void): ZLinkFrameworkRegistrationOptions;
|
|
7
6
|
export declare class DefaultDispatchOptionsBuilder implements ZLinkDispatchOptionsBuilder {
|
|
8
7
|
private readonly dispatch;
|
|
@@ -2,19 +2,20 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DefaultStreamCompressionBuilder = exports.DefaultLocationOptionsBuilder = exports.DefaultInboundDispatchOptionsBuilder = exports.DefaultDispatchOptionsBuilder = void 0;
|
|
4
4
|
exports.createFrameworkOptions = createFrameworkOptions;
|
|
5
|
-
const ObjectRoles_1 = require("./ObjectRoles");
|
|
6
|
-
const Attributes_1 = require("../Handlers/Attributes");
|
|
7
|
-
const Dispatch_1 = require("../Dispatch");
|
|
8
5
|
const zlink_1 = require("@zlink-systems/zlink");
|
|
9
|
-
const
|
|
6
|
+
const CoreTypes_1 = require("../Common/CoreTypes");
|
|
7
|
+
const Dispatch_1 = require("../Dispatch");
|
|
8
|
+
const Attributes_1 = require("../Handlers/Attributes");
|
|
10
9
|
const ConfigurationException_1 = require("./ConfigurationException");
|
|
11
|
-
const
|
|
12
|
-
const RegistrationNormalizers_1 = require("./RegistrationNormalizers");
|
|
10
|
+
const DiagnosticsValidation_1 = require("./DiagnosticsValidation");
|
|
13
11
|
const EndpointNotation_1 = require("./EndpointNotation");
|
|
12
|
+
const FanoutTopic_1 = require("./FanoutTopic");
|
|
14
13
|
const InternalDefaults_1 = require("./InternalDefaults");
|
|
14
|
+
const ObjectRoles_1 = require("./ObjectRoles");
|
|
15
15
|
const RegistrationBuilderPolicy_1 = require("./RegistrationBuilderPolicy");
|
|
16
|
-
const
|
|
17
|
-
const
|
|
16
|
+
const RegistrationCodecRegistry_1 = require("./RegistrationCodecRegistry");
|
|
17
|
+
const RegistrationNormalizers_1 = require("./RegistrationNormalizers");
|
|
18
|
+
const RuntimeEndpointConnections_1 = require("./RuntimeEndpointConnections");
|
|
18
19
|
function createFrameworkOptions(configure) {
|
|
19
20
|
const builder = new ZLinkFrameworkOptionsBuilder();
|
|
20
21
|
configure(builder);
|
|
@@ -54,7 +55,7 @@ class ZLinkFrameworkOptionsBuilder {
|
|
|
54
55
|
}
|
|
55
56
|
addRelocationStore(store) {
|
|
56
57
|
this.options.locations ??= { options: {} };
|
|
57
|
-
this.options.locations
|
|
58
|
+
(0, RegistrationBuilderPolicy_1.registerRelocationStore)(this.options.locations, store);
|
|
58
59
|
return this;
|
|
59
60
|
}
|
|
60
61
|
setApplicationVersion(version) {
|
|
@@ -470,8 +471,8 @@ class DefaultClientServerChannelServerBuilder {
|
|
|
470
471
|
this.channel = channel;
|
|
471
472
|
}
|
|
472
473
|
listen(port = 0) {
|
|
473
|
-
if (!
|
|
474
|
-
throw new ConfigurationException_1.ZLinkConfigurationException(`ClientServer channel '${this.name}' port must be between 0 and
|
|
474
|
+
if (!(0, RegistrationBuilderPolicy_1.isValidListenerPort)(port)) {
|
|
475
|
+
throw new ConfigurationException_1.ZLinkConfigurationException(`ClientServer channel '${this.name}' port must be between 0 and ${RegistrationBuilderPolicy_1.MAX_LISTENER_PORT}.`);
|
|
475
476
|
}
|
|
476
477
|
this.server.port = port;
|
|
477
478
|
this.updateBind();
|
|
@@ -490,7 +491,7 @@ class DefaultClientServerChannelServerBuilder {
|
|
|
490
491
|
return this;
|
|
491
492
|
}
|
|
492
493
|
setWeight(weight) {
|
|
493
|
-
this.server.weight = requirePublicWeight(weight, `ClientServer channel '${this.name}' weight`);
|
|
494
|
+
this.server.weight = (0, RegistrationBuilderPolicy_1.requirePublicWeight)(weight, `ClientServer channel '${this.name}' weight`);
|
|
494
495
|
return this;
|
|
495
496
|
}
|
|
496
497
|
addHandlerGroup(groupName) {
|
|
@@ -695,8 +696,8 @@ class DefaultMeshNodeBuilder {
|
|
|
695
696
|
this.node.router.port = undefined;
|
|
696
697
|
return this;
|
|
697
698
|
}
|
|
698
|
-
if (!
|
|
699
|
-
throw new ConfigurationException_1.ZLinkConfigurationException(`RouteMesh '${this.name}' port must be between 0 and
|
|
699
|
+
if (!(0, RegistrationBuilderPolicy_1.isValidListenerPort)(endpointOrPort)) {
|
|
700
|
+
throw new ConfigurationException_1.ZLinkConfigurationException(`RouteMesh '${this.name}' port must be between 0 and ${RegistrationBuilderPolicy_1.MAX_LISTENER_PORT}.`);
|
|
700
701
|
}
|
|
701
702
|
this.node.router.port = endpointOrPort;
|
|
702
703
|
this.updateBind();
|
|
@@ -725,7 +726,7 @@ class DefaultMeshNodeBuilder {
|
|
|
725
726
|
return this;
|
|
726
727
|
}
|
|
727
728
|
setPlacementWeight(weight) {
|
|
728
|
-
this.node.placementWeight = requirePublicWeight(weight, 'Placement weight');
|
|
729
|
+
this.node.placementWeight = (0, RegistrationBuilderPolicy_1.requirePublicWeight)(weight, 'Placement weight');
|
|
729
730
|
return this;
|
|
730
731
|
}
|
|
731
732
|
setActorLimit(limit) {
|
|
@@ -1040,7 +1041,7 @@ class DefaultMeshChannelServerBuilder {
|
|
|
1040
1041
|
this.channel = channel;
|
|
1041
1042
|
}
|
|
1042
1043
|
setWeight(weight) {
|
|
1043
|
-
this.channel.weight = requirePublicWeight(weight, 'Mesh channel weight');
|
|
1044
|
+
this.channel.weight = (0, RegistrationBuilderPolicy_1.requirePublicWeight)(weight, 'Mesh channel weight');
|
|
1044
1045
|
return this;
|
|
1045
1046
|
}
|
|
1046
1047
|
addHandlerGroup(groupName) {
|
|
@@ -1110,20 +1111,20 @@ function endpointList(endpoint) {
|
|
|
1110
1111
|
}
|
|
1111
1112
|
function requireStableObjectType(value, label) {
|
|
1112
1113
|
const byteLength = Buffer.byteLength(value, 'utf8');
|
|
1113
|
-
if (byteLength < 1 || byteLength >
|
|
1114
|
-
throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must contain 1
|
|
1114
|
+
if (byteLength < 1 || byteLength > CoreTypes_1.ZLINK_MAX_STABLE_TYPE_BYTES || value.includes('\0')) {
|
|
1115
|
+
throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must contain 1..${CoreTypes_1.ZLINK_MAX_STABLE_TYPE_BYTES} UTF-8 bytes and no NUL.`);
|
|
1115
1116
|
}
|
|
1116
1117
|
return value;
|
|
1117
1118
|
}
|
|
1118
1119
|
function requirePositiveCapacity(value, label) {
|
|
1119
|
-
if (!
|
|
1120
|
-
throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be an integer in 1
|
|
1120
|
+
if (!(0, RegistrationBuilderPolicy_1.isValidPositiveCapacity)(value)) {
|
|
1121
|
+
throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be an integer in 1..${RegistrationBuilderPolicy_1.ZLINK_MAX_CAPACITY}.`);
|
|
1121
1122
|
}
|
|
1122
1123
|
return value;
|
|
1123
1124
|
}
|
|
1124
1125
|
function requireCapacity(value, label) {
|
|
1125
|
-
if (!
|
|
1126
|
-
throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be an integer in 0
|
|
1126
|
+
if (!(0, RegistrationBuilderPolicy_1.isValidCapacity)(value)) {
|
|
1127
|
+
throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be an integer in 0..${RegistrationBuilderPolicy_1.ZLINK_MAX_CAPACITY}.`);
|
|
1127
1128
|
}
|
|
1128
1129
|
return value;
|
|
1129
1130
|
}
|
|
@@ -1133,12 +1134,6 @@ function requireNonNegativeSafeInteger(value, label) {
|
|
|
1133
1134
|
}
|
|
1134
1135
|
return value;
|
|
1135
1136
|
}
|
|
1136
|
-
function requirePublicWeight(value, label) {
|
|
1137
|
-
if (!Number.isInteger(value) || value < 0 || value > 10_000) {
|
|
1138
|
-
throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be an integer in 0..10000.`);
|
|
1139
|
-
}
|
|
1140
|
-
return value;
|
|
1141
|
-
}
|
|
1142
1137
|
function requireFactoryConfigure(configure) {
|
|
1143
1138
|
if (typeof configure !== 'function') {
|
|
1144
1139
|
throw new ConfigurationException_1.ZLinkConfigurationException('Object factory requires a configure callback.');
|
|
@@ -1162,8 +1157,8 @@ function validateUserSpotFactoryOptions(options) {
|
|
|
1162
1157
|
}
|
|
1163
1158
|
}
|
|
1164
1159
|
function validateStableTypeLimit(value) {
|
|
1165
|
-
if (value !== undefined &&
|
|
1166
|
-
throw new ConfigurationException_1.ZLinkConfigurationException(
|
|
1160
|
+
if (value !== undefined && !(0, RegistrationBuilderPolicy_1.isValidCapacity)(value)) {
|
|
1161
|
+
throw new ConfigurationException_1.ZLinkConfigurationException(`stableTypeLimit must be an integer from 0 through ${RegistrationBuilderPolicy_1.ZLINK_MAX_CAPACITY}.`);
|
|
1167
1162
|
}
|
|
1168
1163
|
}
|
|
1169
1164
|
function rejectDuplicateObjectType(registrations, stableType, meshName) {
|
|
@@ -1180,8 +1175,8 @@ function requireRegistrationName(value, label) {
|
|
|
1180
1175
|
}
|
|
1181
1176
|
}
|
|
1182
1177
|
function requireListenerPort(value, label) {
|
|
1183
|
-
if (!
|
|
1184
|
-
throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be between 0 and
|
|
1178
|
+
if (!(0, RegistrationBuilderPolicy_1.isValidListenerPort)(value)) {
|
|
1179
|
+
throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be between 0 and ${RegistrationBuilderPolicy_1.MAX_LISTENER_PORT}.`);
|
|
1185
1180
|
}
|
|
1186
1181
|
return value;
|
|
1187
1182
|
}
|
|
@@ -169,6 +169,7 @@ export interface ZLinkClientCapabilityOptions {
|
|
|
169
169
|
readonly maxMessageSize?: number;
|
|
170
170
|
}
|
|
171
171
|
export interface ZLinkPublisherCapabilityOptions {
|
|
172
|
+
readonly sendTimeoutMs?: number;
|
|
172
173
|
readonly bind?: string;
|
|
173
174
|
readonly bindHost?: string;
|
|
174
175
|
readonly advertiseHost?: string;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validateFrameworkRegistration = validateFrameworkRegistration;
|
|
4
|
+
const Locations_1 = require("../Locations");
|
|
4
5
|
const ConfigurationException_1 = require("./ConfigurationException");
|
|
6
|
+
const FanoutTopic_1 = require("./FanoutTopic");
|
|
7
|
+
const InternalDefaults_1 = require("./InternalDefaults");
|
|
8
|
+
const RegistrationBuilderPolicy_1 = require("./RegistrationBuilderPolicy");
|
|
5
9
|
const RegistrationNormalizers_1 = require("./RegistrationNormalizers");
|
|
6
10
|
const RouteChannelInternalState_1 = require("./RouteChannelInternalState");
|
|
7
|
-
const TimerRegistrationValidator_1 = require("./TimerRegistrationValidator");
|
|
8
|
-
const Locations_1 = require("../Locations");
|
|
9
11
|
const SendTimeoutValidation_1 = require("./SendTimeoutValidation");
|
|
10
|
-
const
|
|
12
|
+
const TimerRegistrationValidator_1 = require("./TimerRegistrationValidator");
|
|
13
|
+
const ROUTE_CACHE_FOLLOW_MARGIN_MS = 5000;
|
|
11
14
|
function validateFrameworkRegistration(registration, _options = {}) {
|
|
12
15
|
validateListenerNetworkIdentity('process network', registration.network.bindHost, registration.network.advertiseHost);
|
|
13
16
|
const actorCapableSpotNodes = [...registration.spotNodes.values()].filter((spotNode) => toActorFactoryCount(spotNode.actorFactories) > 0);
|
|
@@ -88,9 +91,10 @@ function validateLocationRegistration(registration) {
|
|
|
88
91
|
throw new ConfigurationException_1.ZLinkConfigurationException(`${name} must be a finite positive number.`);
|
|
89
92
|
}
|
|
90
93
|
}
|
|
91
|
-
if (options.ownerLeaseRenewIntervalMs
|
|
94
|
+
if (Math.max(options.ownerLeaseRenewIntervalMs, options.ownerLeaseRenewTimeoutMs) +
|
|
95
|
+
options.ownerLeaseRenewTimeoutMs >=
|
|
92
96
|
options.ownerLeaseTtlMs - options.ownerLeaseFencingMarginMs) {
|
|
93
|
-
throw new ConfigurationException_1.ZLinkConfigurationException('ownerLeaseRenewIntervalMs + ownerLeaseRenewTimeoutMs must be less than ownerLeaseTtlMs - ownerLeaseFencingMarginMs.');
|
|
97
|
+
throw new ConfigurationException_1.ZLinkConfigurationException('max(ownerLeaseRenewIntervalMs, ownerLeaseRenewTimeoutMs) + ownerLeaseRenewTimeoutMs must be less than ownerLeaseTtlMs - ownerLeaseFencingMarginMs.');
|
|
94
98
|
}
|
|
95
99
|
for (const [name, value] of Object.entries({
|
|
96
100
|
relocationCutoverWaitTimeoutMs: options.relocationCutoverWaitTimeoutMs,
|
|
@@ -100,8 +104,8 @@ function validateLocationRegistration(registration) {
|
|
|
100
104
|
throw new ConfigurationException_1.ZLinkConfigurationException(`${name} must be a positive integer.`);
|
|
101
105
|
}
|
|
102
106
|
}
|
|
103
|
-
if (options.relocationPayloadChunkLimitBytes >
|
|
104
|
-
throw new ConfigurationException_1.ZLinkConfigurationException(
|
|
107
|
+
if (options.relocationPayloadChunkLimitBytes > InternalDefaults_1.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES) {
|
|
108
|
+
throw new ConfigurationException_1.ZLinkConfigurationException(`relocationPayloadChunkLimitBytes must not exceed the ${InternalDefaults_1.RELOCATION_STATE_CHUNK_DATA_MAX_BYTES / (1024 * 1024)} MiB wire chunk bound.`);
|
|
105
109
|
}
|
|
106
110
|
for (const [name, value] of Object.entries({
|
|
107
111
|
relocationInFlightPayloadBudgetBytes: options.relocationInFlightPayloadBudgetBytes,
|
|
@@ -121,8 +125,8 @@ function validateLocationRegistration(registration) {
|
|
|
121
125
|
}
|
|
122
126
|
if (options.routeCacheMaxAgeMs > 0 &&
|
|
123
127
|
options.messageFollowDurationMs > 0 &&
|
|
124
|
-
options.routeCacheMaxAgeMs > options.messageFollowDurationMs -
|
|
125
|
-
throw new ConfigurationException_1.ZLinkConfigurationException(
|
|
128
|
+
options.routeCacheMaxAgeMs > options.messageFollowDurationMs - ROUTE_CACHE_FOLLOW_MARGIN_MS) {
|
|
129
|
+
throw new ConfigurationException_1.ZLinkConfigurationException(`routeCacheMaxAgeMs must be at least ${ROUTE_CACHE_FOLLOW_MARGIN_MS} ms shorter than messageFollowDurationMs.`);
|
|
126
130
|
}
|
|
127
131
|
}
|
|
128
132
|
function requireNonNegativeInteger(label, value) {
|
|
@@ -164,6 +168,7 @@ function validateChannelCapabilities(channels, peerLocationConfigured) {
|
|
|
164
168
|
requireSocketOptions(`channel '${channelName}' server`, channel.server);
|
|
165
169
|
}
|
|
166
170
|
if (channel.publisher !== undefined) {
|
|
171
|
+
(0, SendTimeoutValidation_1.requireValidSendTimeoutMs)(`channel '${channelName}' publisher sendTimeoutMs`, channel.publisher.sendTimeoutMs);
|
|
167
172
|
requireEndpoint(`channel '${channelName}' publisher`, channel.publisher.bind);
|
|
168
173
|
validateListenerNetworkIdentity(`channel '${channelName}' publisher`, channel.publisher.bindHost, channel.publisher.advertiseHost);
|
|
169
174
|
validateFanoutPublisherIdentity(channelName, channel.routingId, channel.routingIdPrefix, peerLocationConfigured);
|
|
@@ -446,9 +451,7 @@ function requirePeerWeight(label, value) {
|
|
|
446
451
|
if (value === undefined) {
|
|
447
452
|
return;
|
|
448
453
|
}
|
|
449
|
-
|
|
450
|
-
throw new ConfigurationException_1.ZLinkConfigurationException(`${label} must be an integer in 0..10000.`);
|
|
451
|
-
}
|
|
454
|
+
(0, RegistrationBuilderPolicy_1.requirePublicWeight)(value, label);
|
|
452
455
|
}
|
|
453
456
|
function requireSocketOptions(label, options) {
|
|
454
457
|
requireNonNegativeInteger(`${label} sendHighWaterMark`, options.sendHighWaterMark);
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.validateTimerRegistration = validateTimerRegistration;
|
|
4
4
|
const Timers_1 = require("../Timers");
|
|
5
5
|
const ConfigurationException_1 = require("./ConfigurationException");
|
|
6
|
+
const MAX_TIMER_CATCH_UP_TICKS = 2_147_483_647;
|
|
6
7
|
function validateTimerRegistration(name, periodMs, options) {
|
|
7
8
|
if (name.trim().length === 0) {
|
|
8
9
|
throw new ConfigurationException_1.ZLinkConfigurationException('SPOT timer name must not be empty.');
|
|
@@ -18,7 +19,7 @@ function validateTimerRegistration(name, periodMs, options) {
|
|
|
18
19
|
(options.maxCatchUpTicks === undefined ||
|
|
19
20
|
!Number.isInteger(options.maxCatchUpTicks) ||
|
|
20
21
|
options.maxCatchUpTicks < 1 ||
|
|
21
|
-
options.maxCatchUpTicks >
|
|
22
|
-
throw new ConfigurationException_1.ZLinkConfigurationException(
|
|
22
|
+
options.maxCatchUpTicks > MAX_TIMER_CATCH_UP_TICKS)) {
|
|
23
|
+
throw new ConfigurationException_1.ZLinkConfigurationException(`SPOT timer MaxCatchUpTicks must be an integer from 1 through ${MAX_TIMER_CATCH_UP_TICKS.toLocaleString('en-US')}.`);
|
|
23
24
|
}
|
|
24
25
|
}
|
|
@@ -162,7 +162,7 @@ export declare enum ZLinkDispatchMessageKind {
|
|
|
162
162
|
ActorRequest = "actorRequest",
|
|
163
163
|
ActorSend = "actorSend"
|
|
164
164
|
}
|
|
165
|
-
export type ZLinkDispatchErrorReason = 'no_handler' | 'decode_error' | 'handler_exception' | 'invalid_frame' | 'reply_path_missing' | 'unexpected_reply' | 'backpressure' | 'stale_target' | 'shutdown';
|
|
165
|
+
export type ZLinkDispatchErrorReason = 'no_handler' | 'decode_error' | 'handler_exception' | 'invalid_frame' | 'reply_path_missing' | 'unexpected_reply' | 'backpressure' | 'target_closed' | 'stale_target' | 'shutdown';
|
|
166
166
|
export type ZLinkDispatchErrorAction = 'reply_error' | 'fail_caller' | 'drop';
|
|
167
167
|
export declare enum ZLinkRuntimeDispatchErrorReason {
|
|
168
168
|
HandlerMissing = "no_handler",
|