@zlink-systems/framework 0.26.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/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/Spots/Contracts.d.ts +1 -1
- package/dist/internal.d.ts +4 -0
- package/dist/internal.js +15 -1
- package/dist/nest-integration.d.ts +4 -2
- package/dist/nest-integration.js +14 -4
- package/dist/runtime/abort.d.ts +1 -0
- package/dist/runtime/abort.js +8 -5
- package/dist/runtime/activation-admission.d.ts +1 -2
- package/dist/runtime/activation-admission.js +2 -6
- package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
- package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
- package/dist/runtime/actors/actor-client.d.ts +2 -2
- package/dist/runtime/actors/actor-client.js +42 -143
- package/dist/runtime/actors/actor-context.d.ts +3 -5
- package/dist/runtime/actors/actor-context.js +13 -11
- package/dist/runtime/actors/actor-handoff.d.ts +4 -4
- package/dist/runtime/actors/actor-handoff.js +8 -8
- package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
- package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
- package/dist/runtime/actors/actor-local-native-join.js +83 -105
- package/dist/runtime/actors/actor-native-lookup.js +2 -8
- package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
- package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
- package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
- package/dist/runtime/actors/actor-remote-joiner.js +5 -9
- package/dist/runtime/actors/actor-remote-wire.js +5 -3
- package/dist/runtime/actors/actor-request-deadline.d.ts +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-state.d.ts +9 -21
- package/dist/runtime/actors/actor-runtime-state.js +70 -187
- package/dist/runtime/actors/bound-session-wire.js +2 -7
- package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
- package/dist/runtime/actors/deferred-join-completion.js +1 -0
- package/dist/runtime/actors/index.d.ts +9 -7
- package/dist/runtime/actors/index.js +87 -69
- package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
- package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
- package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
- package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
- package/dist/runtime/admission.d.ts +2 -0
- package/dist/runtime/admission.js +7 -1
- package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
- package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
- package/dist/runtime/backend/contracts/index.d.ts +6 -23
- package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
- package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
- package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
- package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +1 -1
- package/dist/runtime/backend/node/node-backend-adapter-support.js +16 -6
- package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
- package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
- package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
- package/dist/runtime/backend/node/node-raw-binding-port.js +40 -16
- package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +3 -2
- package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
- package/dist/runtime/backend/runtime-values.d.ts +4 -1
- package/dist/runtime/backend/runtime-values.js +2 -0
- package/dist/runtime/channels/channel-clients.d.ts +20 -8
- package/dist/runtime/channels/channel-clients.js +68 -52
- 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 -10
- 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.js +5 -2
- package/dist/runtime/channels/channel-socket-options.js +3 -2
- package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
- package/dist/runtime/channels/channel-socket-registry.js +248 -174
- package/dist/runtime/channels/channel-transports.d.ts +11 -17
- 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 +130 -72
- 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 +12 -9
- package/dist/runtime/execution/index.js +58 -14
- package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
- package/dist/runtime/execution/serial-execution-queue.js +54 -15
- package/dist/runtime/execution/state-lane.d.ts +8 -1
- package/dist/runtime/execution/state-lane.js +118 -3
- package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
- package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
- package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
- package/dist/runtime/foundation/event-loop-resources.js +6 -119
- package/dist/runtime/foundation/operation-identity.d.ts +2 -0
- package/dist/runtime/foundation/operation-identity.js +9 -5
- package/dist/runtime/foundation/operation-registry.d.ts +5 -7
- package/dist/runtime/foundation/operation-registry.js +34 -44
- package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +62 -83
- package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
- package/dist/runtime/foundation/runtime-state-projections.js +8 -0
- package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
- package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
- package/dist/runtime/foundation/service-discovery-registry.js +22 -3
- package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
- package/dist/runtime/foundation/service-liveness-registry.js +2 -1
- package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
- package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
- package/dist/runtime/foundation/service-metadata-codec.js +3 -3
- package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
- package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
- package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
- package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
- package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
- package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
- package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
- package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
- package/dist/runtime/foundation/service-stateful-registry.js +10 -2
- package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
- package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
- package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
- package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
- package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
- package/dist/runtime/foundation/service-topology-registry.js +17 -32
- package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
- package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
- package/dist/runtime/foundation/service-wire-codec.js +10 -8
- package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
- package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
- package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
- package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
- package/dist/runtime/framework-errors-internal.d.ts +2 -1
- package/dist/runtime/framework-errors-internal.js +343 -122
- package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
- package/dist/runtime/handlers/handler-instance-scope.js +61 -74
- package/dist/runtime/host/actor-packet-relay.d.ts +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 +16 -18
- package/dist/runtime/host/actor-transfer-runtime.js +143 -176
- package/dist/runtime/host/application-job-queue.js +16 -33
- package/dist/runtime/host/bound-session-relay.js +1 -1
- package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
- package/dist/runtime/host/index.d.ts +14 -13
- package/dist/runtime/host/index.js +190 -157
- 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 +7 -20
- package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
- package/dist/runtime/host/route-mesh-runtime.js +171 -252
- package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
- package/dist/runtime/host/runtime-shutdown.js +18 -21
- package/dist/runtime/host/service-relocation-control.js +6 -1
- package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
- package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
- package/dist/runtime/host/spot-address-transport.d.ts +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 -10
- package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
- package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
- package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
- package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
- package/dist/runtime/locations/authority-key-codec.js +4 -3
- package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
- package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
- package/dist/runtime/locations/creation-operation-id.js +6 -4
- package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
- package/dist/runtime/locations/in-memory-authority-store.js +31 -15
- package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
- package/dist/runtime/locations/in-memory-location-store.js +17 -14
- package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
- package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
- package/dist/runtime/locations/key-codec.js +3 -2
- package/dist/runtime/locations/lease-tracker.d.ts +3 -5
- package/dist/runtime/locations/lease-tracker.js +7 -11
- package/dist/runtime/locations/lifecycle.d.ts +4 -9
- package/dist/runtime/locations/lifecycle.js +2 -31
- package/dist/runtime/locations/location-store-failure.d.ts +2 -0
- package/dist/runtime/locations/location-store-failure.js +7 -0
- package/dist/runtime/locations/location-store-pages.d.ts +3 -0
- package/dist/runtime/locations/location-store-pages.js +13 -0
- package/dist/runtime/locations/location-store-repository.d.ts +5 -7
- package/dist/runtime/locations/location-store-repository.js +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 +37 -28
- package/dist/runtime/locations/runtime.d.ts +5 -4
- package/dist/runtime/locations/runtime.js +123 -92
- package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
- package/dist/runtime/locations/spot-location-claims.js +42 -1
- package/dist/runtime/messaging/payload-codec.js +26 -20
- package/dist/runtime/messaging/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 +1 -0
- package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
- package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
- package/dist/runtime/spots/index.d.ts +14 -20
- package/dist/runtime/spots/index.js +302 -176
- package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
- package/dist/runtime/spots/spot-activation-registry.js +14 -50
- package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
- package/dist/runtime/spots/spot-activation-state.js +2 -2
- package/dist/runtime/spots/spot-activation.d.ts +3 -4
- package/dist/runtime/spots/spot-activation.js +49 -32
- package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
- package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
- package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
- package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
- package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
- package/dist/runtime/spots/spot-actor-membership.js +22 -45
- package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
- package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
- package/dist/runtime/spots/spot-context.d.ts +2 -2
- package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
- package/dist/runtime/spots/spot-entry-activation.js +9 -20
- package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
- package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
- package/dist/runtime/spots/spot-manager-public.js +5 -4
- package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
- package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
- package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
- package/dist/runtime/spots/spot-outbound.d.ts +4 -3
- package/dist/runtime/spots/spot-outbound.js +9 -8
- package/dist/runtime/spots/spot-remote-codec.js +5 -3
- package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
- package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
- package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
- package/dist/runtime/spots/spot-route-replies.js +3 -1
- package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
- package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
- package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
- package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
- package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
- package/dist/runtime/spots/spot-serial-executor.js +2 -2
- package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
- package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
- package/dist/runtime/spots/spot-timer.d.ts +3 -2
- package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
- package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
- package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
- package/dist/runtime/streams/bound-actor-relay-sender.d.ts +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 +11 -1
- package/dist/runtime/streams/index.d.ts +14 -15
- package/dist/runtime/streams/index.js +20 -21
- 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/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/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/Spots/Contracts.ts +1 -1
- package/src/internal.ts +14 -0
- package/src/nest-integration.ts +28 -10
- package/src/runtime/abort.ts +6 -5
- package/src/runtime/activation-admission.ts +2 -8
- package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
- package/src/runtime/actors/actor-client.ts +77 -204
- package/src/runtime/actors/actor-context.ts +39 -33
- package/src/runtime/actors/actor-handoff.ts +24 -22
- package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
- package/src/runtime/actors/actor-local-native-join.ts +172 -174
- package/src/runtime/actors/actor-native-lookup.ts +2 -9
- package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
- package/src/runtime/actors/actor-remote-joiner.ts +9 -11
- package/src/runtime/actors/actor-remote-wire.ts +5 -3
- package/src/runtime/actors/actor-request-deadline.ts +49 -0
- package/src/runtime/actors/actor-retry-delay.ts +2 -1
- package/src/runtime/actors/actor-runtime-state.ts +85 -247
- package/src/runtime/actors/bound-session-wire.ts +2 -8
- package/src/runtime/actors/deferred-join-completion.ts +10 -6
- package/src/runtime/actors/index.ts +100 -79
- package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
- package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
- package/src/runtime/admission.ts +8 -1
- package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
- package/src/runtime/backend/contracts/index.ts +13 -29
- package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
- package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
- package/src/runtime/backend/node/node-backend-adapter-support.ts +23 -6
- package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
- package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
- package/src/runtime/backend/node/node-raw-binding-port.ts +41 -20
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +3 -2
- package/src/runtime/backend/raw-binding-port.ts +1 -1
- package/src/runtime/backend/runtime-values.ts +4 -1
- package/src/runtime/channels/channel-clients.ts +132 -85
- 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 -23
- 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 +6 -2
- package/src/runtime/channels/channel-socket-options.ts +8 -2
- package/src/runtime/channels/channel-socket-registry.ts +301 -192
- package/src/runtime/channels/channel-transports.ts +161 -112
- package/src/runtime/channels/client-server-location-runtime.ts +17 -17
- package/src/runtime/channels/client-server-service-wire.ts +40 -12
- package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
- package/src/runtime/channels/fanout-location-runtime.ts +172 -91
- package/src/runtime/channels/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 +60 -20
- package/src/runtime/execution/serial-execution-queue.ts +131 -18
- package/src/runtime/execution/state-lane.ts +142 -4
- package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
- package/src/runtime/foundation/event-loop-resources.ts +5 -122
- package/src/runtime/foundation/operation-identity.ts +11 -5
- package/src/runtime/foundation/operation-registry.ts +33 -50
- package/src/runtime/foundation/raw-service-mesh-runtime.ts +110 -111
- package/src/runtime/foundation/runtime-state-projections.ts +9 -1
- package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
- package/src/runtime/foundation/service-discovery-registry.ts +32 -3
- package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
- package/src/runtime/foundation/service-liveness-registry.ts +2 -1
- package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
- package/src/runtime/foundation/service-metadata-codec.ts +2 -2
- package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
- package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
- package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
- package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
- package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
- package/src/runtime/foundation/service-stateful-registry.ts +14 -2
- package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
- package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
- package/src/runtime/foundation/service-topology-registry.ts +23 -32
- package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
- package/src/runtime/foundation/service-wire-codec.ts +15 -8
- package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
- package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
- package/src/runtime/framework-errors-internal.ts +380 -134
- package/src/runtime/handlers/handler-instance-scope.ts +68 -95
- package/src/runtime/host/actor-packet-relay.ts +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 +180 -260
- package/src/runtime/host/application-job-queue.ts +28 -34
- package/src/runtime/host/bound-session-relay.ts +1 -2
- package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
- package/src/runtime/host/index.ts +327 -296
- 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 +8 -41
- package/src/runtime/host/route-mesh-runtime.ts +228 -271
- package/src/runtime/host/runtime-shutdown.ts +17 -21
- package/src/runtime/host/service-relocation-control.ts +14 -1
- package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
- package/src/runtime/host/spot-address-transport.ts +73 -195
- package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
- package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
- package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
- package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
- package/src/runtime/locations/authority-key-codec.ts +7 -3
- package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
- package/src/runtime/locations/creation-operation-id.ts +6 -3
- package/src/runtime/locations/domain-store-contract.ts +12 -3
- package/src/runtime/locations/in-memory-authority-store.ts +44 -15
- package/src/runtime/locations/in-memory-location-store.ts +50 -39
- package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
- package/src/runtime/locations/key-codec.ts +3 -2
- package/src/runtime/locations/lease-tracker.ts +8 -14
- package/src/runtime/locations/lifecycle.ts +13 -43
- package/src/runtime/locations/location-store-failure.ts +4 -0
- package/src/runtime/locations/location-store-pages.ts +18 -0
- package/src/runtime/locations/location-store-repository.ts +450 -478
- package/src/runtime/locations/relocation-blob.ts +17 -6
- package/src/runtime/locations/resolvers.ts +75 -49
- package/src/runtime/locations/runtime.ts +220 -110
- package/src/runtime/locations/spot-location-claims.ts +58 -1
- package/src/runtime/messaging/payload-codec.ts +35 -24
- package/src/runtime/messaging/submission-result.ts +57 -1
- package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
- package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
- package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
- package/src/runtime/spots/index.ts +433 -229
- package/src/runtime/spots/spot-activation-registry.ts +30 -69
- package/src/runtime/spots/spot-activation-state.ts +2 -2
- package/src/runtime/spots/spot-activation.ts +67 -37
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
- package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
- package/src/runtime/spots/spot-actor-membership.ts +40 -72
- package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
- package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
- package/src/runtime/spots/spot-context.ts +3 -3
- package/src/runtime/spots/spot-entry-activation.ts +13 -30
- package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
- package/src/runtime/spots/spot-manager-public.ts +21 -17
- package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
- package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
- package/src/runtime/spots/spot-outbound.ts +45 -23
- package/src/runtime/spots/spot-remote-codec.ts +7 -3
- package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
- package/src/runtime/spots/spot-route-replies.ts +6 -4
- package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
- package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
- package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
- package/src/runtime/spots/spot-runtime-ports.ts +5 -27
- package/src/runtime/spots/spot-serial-executor.ts +2 -2
- package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
- package/src/runtime/spots/spot-timer.ts +3 -2
- package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
- package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
- package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
- package/src/runtime/streams/bound-session-service.ts +21 -1
- package/src/runtime/streams/index.ts +76 -64
- 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/stream-binding-runtime-ports.ts +22 -1
- package/src/runtime/streams/stream-frame-factory.ts +2 -3
- package/src/runtime/streams/stream-session-runtime.ts +57 -59
- package/src/runtime/workers/index.ts +13 -12
- package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
- package/dist/runtime/actors/post-commit-actor-location.js +0 -72
- package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
- package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
- package/src/runtime/actors/post-commit-actor-location.ts +0 -121
- package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
|
@@ -1,64 +1,85 @@
|
|
|
1
|
+
import { AutoHwmProfile } from '@zlink-systems/zlink';
|
|
1
2
|
import type {
|
|
2
3
|
RoutingId,
|
|
3
4
|
Type,
|
|
4
5
|
ZLinkActor,
|
|
5
6
|
ZLinkActorFactory,
|
|
7
|
+
ZLinkClientServerChannelClientBuilder,
|
|
8
|
+
ZLinkClientServerChannelRoleBuilder,
|
|
9
|
+
ZLinkClientServerChannelServerBuilder,
|
|
6
10
|
ZLinkEntrySpot,
|
|
7
11
|
ZLinkFanoutChannelBuilder,
|
|
8
12
|
ZLinkFrameworkOptions,
|
|
13
|
+
ZLinkHandlerFilter,
|
|
14
|
+
ZLinkInstanceSpot,
|
|
15
|
+
ZLinkLocationOptionValues,
|
|
9
16
|
ZLinkMeshChannelBuilder,
|
|
10
17
|
ZLinkMeshChannelClientBuilder,
|
|
11
18
|
ZLinkMeshChannelServerBuilder,
|
|
12
19
|
ZLinkMeshNodeBuilder,
|
|
20
|
+
ZLinkMeshNodeSocketConfig,
|
|
13
21
|
ZLinkMeshObjectClientBuilder,
|
|
14
22
|
ZLinkMeshObjectRoleBuilder,
|
|
15
23
|
ZLinkMeshObjectServerBuilder,
|
|
16
|
-
ZLinkMeshNodeSocketConfig,
|
|
17
|
-
ZLinkNetworkOptions,
|
|
18
24
|
ZLinkMeshPeerConnection,
|
|
19
25
|
ZLinkMeshPeerConnections,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
ZLinkInstanceSpot,
|
|
26
|
+
ZLinkNetworkOptions,
|
|
27
|
+
ZLinkSession,
|
|
28
|
+
ZLinkSessionFactory,
|
|
24
29
|
ZLinkSpot,
|
|
25
|
-
|
|
26
|
-
ZLinkClientServerChannelRoleBuilder,
|
|
27
|
-
ZLinkClientServerChannelServerBuilder,
|
|
30
|
+
ZLinkSpotPublisherConfig,
|
|
28
31
|
ZLinkStreamCompressionBuilder,
|
|
29
32
|
ZLinkStreamCompressionCodec,
|
|
30
|
-
ZLinkStreamSocketConfig,
|
|
31
33
|
ZLinkStreamNodeBuilder,
|
|
32
|
-
|
|
33
|
-
ZLinkSessionFactory
|
|
34
|
+
ZLinkStreamSocketConfig
|
|
34
35
|
} from '../../contracts';
|
|
35
|
-
import type {
|
|
36
|
-
ZLinkActorFactoryBuilder,
|
|
37
|
-
ZLinkActorRelocationAdapter,
|
|
38
|
-
ZLinkInstanceSpotFactoryBuilder,
|
|
39
|
-
ZLinkSpotRelocationAdapter,
|
|
40
|
-
ZLinkUserSpotFactoryBuilder
|
|
41
|
-
} from './ObjectRoles';
|
|
42
|
-
import { ZLinkSpotRelocationCoordinationMode, ZLinkUserSpotExecutionMode } from './ObjectRoles';
|
|
43
|
-
import type { ZLinkSpotNodeBuilder } from '../Spots/Builders';
|
|
44
|
-
import { readZLinkDecoratorMetadata } from '../Handlers/Attributes';
|
|
45
36
|
import type { ZLinkCodecRegistryBuilder } from '../Codecs';
|
|
46
|
-
import
|
|
47
|
-
ZLinkDispatchOptions,
|
|
48
|
-
ZLinkDispatchOptionsBuilder,
|
|
49
|
-
ZLinkInboundDispatchOptions,
|
|
50
|
-
ZLinkMessageFlowLogMode
|
|
51
|
-
} from '../Dispatch';
|
|
37
|
+
import { ZLINK_MAX_STABLE_TYPE_BYTES } from '../Common/CoreTypes';
|
|
52
38
|
import {
|
|
39
|
+
type ZLinkDispatchOptions,
|
|
40
|
+
type ZLinkDispatchOptionsBuilder,
|
|
41
|
+
type ZLinkInboundDispatchOptions,
|
|
42
|
+
type ZLinkMessageFlowLogMode,
|
|
53
43
|
ZLinkApplicationJobQueueProfile,
|
|
54
44
|
ZLinkCoreHwmProfile,
|
|
55
45
|
ZLinkUnhandledDispatchAction
|
|
56
46
|
} from '../Dispatch';
|
|
57
|
-
|
|
58
|
-
import {
|
|
59
|
-
import type { ZLinkEndpointConnections } from './Connections';
|
|
47
|
+
|
|
48
|
+
import { readZLinkDecoratorMetadata } from '../Handlers/Attributes';
|
|
60
49
|
import type { ZLinkLocationOptions, ZLinkLocationStore, ZLinkRelocationStore } from '../Locations';
|
|
50
|
+
import type { ZLinkSpotNodeBuilder } from '../Spots/Builders';
|
|
61
51
|
import { ZLinkConfigurationException } from './ConfigurationException';
|
|
52
|
+
import type { ZLinkEndpointConnections } from './Connections';
|
|
53
|
+
import { requireMessageFlowLogMode, requireTraceSampleRate } from './DiagnosticsValidation';
|
|
54
|
+
import { normalizeEndpoint } from './EndpointNotation';
|
|
55
|
+
import { requirePublicFanoutTopic } from './FanoutTopic';
|
|
56
|
+
import { DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE } from './InternalDefaults';
|
|
57
|
+
import {
|
|
58
|
+
type ZLinkActorFactoryBuilder,
|
|
59
|
+
type ZLinkActorRelocationAdapter,
|
|
60
|
+
type ZLinkInstanceSpotFactoryBuilder,
|
|
61
|
+
type ZLinkSpotRelocationAdapter,
|
|
62
|
+
type ZLinkUserSpotFactoryBuilder,
|
|
63
|
+
ZLinkSpotRelocationCoordinationMode,
|
|
64
|
+
ZLinkUserSpotExecutionMode
|
|
65
|
+
} from './ObjectRoles';
|
|
66
|
+
|
|
67
|
+
import {
|
|
68
|
+
MAX_LISTENER_PORT,
|
|
69
|
+
ZLINK_MAX_CAPACITY,
|
|
70
|
+
isValidCapacity,
|
|
71
|
+
isValidListenerPort,
|
|
72
|
+
isValidPositiveCapacity,
|
|
73
|
+
registerActorFactory,
|
|
74
|
+
registerEntrySpot,
|
|
75
|
+
registerRelocationStore,
|
|
76
|
+
registerSpotFactory,
|
|
77
|
+
requirePublicWeight,
|
|
78
|
+
validateActorTransferTimeout,
|
|
79
|
+
validateMessageFollowDuration,
|
|
80
|
+
validateRoutingIdPrefix,
|
|
81
|
+
validateSessionReplacementCallbackTimeout
|
|
82
|
+
} from './RegistrationBuilderPolicy';
|
|
62
83
|
import {
|
|
63
84
|
RegistrationCodecRegistryBuilder,
|
|
64
85
|
type MutableCodecRegistryOptions
|
|
@@ -68,14 +89,12 @@ import {
|
|
|
68
89
|
normalizeOptionalPositiveInteger,
|
|
69
90
|
typeMapToRecord
|
|
70
91
|
} from './RegistrationNormalizers';
|
|
71
|
-
import { normalizeEndpoint } from './EndpointNotation';
|
|
72
|
-
import { DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE } from './InternalDefaults';
|
|
73
92
|
import type {
|
|
74
|
-
ZLinkChannelPublishHandlerRegistration,
|
|
75
93
|
ZLinkActorFactoryConfiguration,
|
|
76
94
|
ZLinkApplicationJobQueueOptions,
|
|
77
|
-
|
|
95
|
+
ZLinkChannelPublishHandlerRegistration,
|
|
78
96
|
ZLinkCoreHwmOptions,
|
|
97
|
+
ZLinkFrameworkRegistrationOptions,
|
|
79
98
|
ZLinkInstanceSpotFactoryConfiguration,
|
|
80
99
|
ZLinkRelocationConfiguration,
|
|
81
100
|
ZLinkSpotRouterPeerConnectionOptions,
|
|
@@ -83,17 +102,7 @@ import type {
|
|
|
83
102
|
ZLinkUserSpotFactoryConfiguration,
|
|
84
103
|
ZLinkWorkerOptions
|
|
85
104
|
} from './RegistrationTypes';
|
|
86
|
-
import {
|
|
87
|
-
validateRoutingIdPrefix,
|
|
88
|
-
registerActorFactory,
|
|
89
|
-
registerEntrySpot,
|
|
90
|
-
registerSpotFactory,
|
|
91
|
-
validateActorTransferTimeout,
|
|
92
|
-
validateMessageFollowDuration,
|
|
93
|
-
validateSessionReplacementCallbackTimeout
|
|
94
|
-
} from './RegistrationBuilderPolicy';
|
|
95
|
-
import { requireMessageFlowLogMode, requireTraceSampleRate } from './DiagnosticsValidation';
|
|
96
|
-
import { requirePublicFanoutTopic } from './FanoutTopic';
|
|
105
|
+
import { endpointConnections } from './RuntimeEndpointConnections';
|
|
97
106
|
|
|
98
107
|
export function createFrameworkOptions(
|
|
99
108
|
configure: (options: ZLinkFrameworkOptions) => void
|
|
@@ -144,7 +153,7 @@ class ZLinkFrameworkOptionsBuilder implements ZLinkFrameworkOptions {
|
|
|
144
153
|
|
|
145
154
|
addRelocationStore(store: ZLinkRelocationStore): this {
|
|
146
155
|
this.options.locations ??= { options: {} };
|
|
147
|
-
this.options.locations
|
|
156
|
+
registerRelocationStore(this.options.locations, store);
|
|
148
157
|
return this;
|
|
149
158
|
}
|
|
150
159
|
|
|
@@ -617,9 +626,9 @@ class DefaultClientServerChannelServerBuilder implements ZLinkClientServerChanne
|
|
|
617
626
|
) {}
|
|
618
627
|
|
|
619
628
|
listen(port = 0): this {
|
|
620
|
-
if (!
|
|
629
|
+
if (!isValidListenerPort(port)) {
|
|
621
630
|
throw new ZLinkConfigurationException(
|
|
622
|
-
`ClientServer channel '${this.name}' port must be between 0 and
|
|
631
|
+
`ClientServer channel '${this.name}' port must be between 0 and ${MAX_LISTENER_PORT}.`
|
|
623
632
|
);
|
|
624
633
|
}
|
|
625
634
|
this.server.port = port;
|
|
@@ -894,9 +903,9 @@ class DefaultMeshNodeBuilder implements ZLinkMeshNodeBuilder {
|
|
|
894
903
|
this.node.router.port = undefined;
|
|
895
904
|
return this;
|
|
896
905
|
}
|
|
897
|
-
if (!
|
|
906
|
+
if (!isValidListenerPort(endpointOrPort)) {
|
|
898
907
|
throw new ZLinkConfigurationException(
|
|
899
|
-
`RouteMesh '${this.name}' port must be between 0 and
|
|
908
|
+
`RouteMesh '${this.name}' port must be between 0 and ${MAX_LISTENER_PORT}.`
|
|
900
909
|
);
|
|
901
910
|
}
|
|
902
911
|
this.node.router.port = endpointOrPort;
|
|
@@ -1431,22 +1440,28 @@ function endpointList(endpoint: string | readonly string[]): string[] {
|
|
|
1431
1440
|
|
|
1432
1441
|
function requireStableObjectType(value: string, label: string): string {
|
|
1433
1442
|
const byteLength = Buffer.byteLength(value, 'utf8');
|
|
1434
|
-
if (byteLength < 1 || byteLength >
|
|
1435
|
-
throw new ZLinkConfigurationException(
|
|
1443
|
+
if (byteLength < 1 || byteLength > ZLINK_MAX_STABLE_TYPE_BYTES || value.includes('\0')) {
|
|
1444
|
+
throw new ZLinkConfigurationException(
|
|
1445
|
+
`${label} must contain 1..${ZLINK_MAX_STABLE_TYPE_BYTES} UTF-8 bytes and no NUL.`
|
|
1446
|
+
);
|
|
1436
1447
|
}
|
|
1437
1448
|
return value;
|
|
1438
1449
|
}
|
|
1439
1450
|
|
|
1440
1451
|
function requirePositiveCapacity(value: number, label: string): number {
|
|
1441
|
-
if (!
|
|
1442
|
-
throw new ZLinkConfigurationException(
|
|
1452
|
+
if (!isValidPositiveCapacity(value)) {
|
|
1453
|
+
throw new ZLinkConfigurationException(
|
|
1454
|
+
`${label} must be an integer in 1..${ZLINK_MAX_CAPACITY}.`
|
|
1455
|
+
);
|
|
1443
1456
|
}
|
|
1444
1457
|
return value;
|
|
1445
1458
|
}
|
|
1446
1459
|
|
|
1447
1460
|
function requireCapacity(value: number, label: string): number {
|
|
1448
|
-
if (!
|
|
1449
|
-
throw new ZLinkConfigurationException(
|
|
1461
|
+
if (!isValidCapacity(value)) {
|
|
1462
|
+
throw new ZLinkConfigurationException(
|
|
1463
|
+
`${label} must be an integer in 0..${ZLINK_MAX_CAPACITY}.`
|
|
1464
|
+
);
|
|
1450
1465
|
}
|
|
1451
1466
|
return value;
|
|
1452
1467
|
}
|
|
@@ -1458,13 +1473,6 @@ function requireNonNegativeSafeInteger(value: number, label: string): number {
|
|
|
1458
1473
|
return value;
|
|
1459
1474
|
}
|
|
1460
1475
|
|
|
1461
|
-
function requirePublicWeight(value: number, label: string): number {
|
|
1462
|
-
if (!Number.isInteger(value) || value < 0 || value > 10_000) {
|
|
1463
|
-
throw new ZLinkConfigurationException(`${label} must be an integer in 0..10000.`);
|
|
1464
|
-
}
|
|
1465
|
-
return value;
|
|
1466
|
-
}
|
|
1467
|
-
|
|
1468
1476
|
function requireFactoryConfigure(
|
|
1469
1477
|
configure: unknown
|
|
1470
1478
|
): asserts configure is (builder: unknown) => void {
|
|
@@ -1502,9 +1510,9 @@ function validateUserSpotFactoryOptions(
|
|
|
1502
1510
|
}
|
|
1503
1511
|
|
|
1504
1512
|
function validateStableTypeLimit(value: number | undefined): void {
|
|
1505
|
-
if (value !== undefined &&
|
|
1513
|
+
if (value !== undefined && !isValidCapacity(value)) {
|
|
1506
1514
|
throw new ZLinkConfigurationException(
|
|
1507
|
-
|
|
1515
|
+
`stableTypeLimit must be an integer from 0 through ${ZLINK_MAX_CAPACITY}.`
|
|
1508
1516
|
);
|
|
1509
1517
|
}
|
|
1510
1518
|
}
|
|
@@ -1591,6 +1599,7 @@ interface MutableClientCapabilityOptions {
|
|
|
1591
1599
|
}
|
|
1592
1600
|
|
|
1593
1601
|
interface MutablePublisherCapabilityOptions {
|
|
1602
|
+
sendTimeoutMs?: number;
|
|
1594
1603
|
bind?: string;
|
|
1595
1604
|
bindHost?: string;
|
|
1596
1605
|
advertiseHost?: string;
|
|
@@ -1705,8 +1714,8 @@ function requireRegistrationName(value: string, label: string): void {
|
|
|
1705
1714
|
}
|
|
1706
1715
|
|
|
1707
1716
|
function requireListenerPort(value: number, label: string): number {
|
|
1708
|
-
if (!
|
|
1709
|
-
throw new ZLinkConfigurationException(`${label} must be between 0 and
|
|
1717
|
+
if (!isValidListenerPort(value)) {
|
|
1718
|
+
throw new ZLinkConfigurationException(`${label} must be between 0 and ${MAX_LISTENER_PORT}.`);
|
|
1710
1719
|
}
|
|
1711
1720
|
return value;
|
|
1712
1721
|
}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import type { Type, ZLinkSpot } from '../../contracts';
|
|
2
|
+
import { zlinkDefaultLocationOptions } from '../Locations';
|
|
2
3
|
import { ZLinkConfigurationException } from './ConfigurationException';
|
|
4
|
+
import { requirePublicFanoutTopic } from './FanoutTopic';
|
|
5
|
+
import { RELOCATION_STATE_CHUNK_DATA_MAX_BYTES } from './InternalDefaults';
|
|
6
|
+
import { requirePublicWeight } from './RegistrationBuilderPolicy';
|
|
3
7
|
import { requirePositiveInteger } from './RegistrationNormalizers';
|
|
4
8
|
import type {
|
|
5
9
|
ZLinkFrameworkRegistration,
|
|
6
10
|
ZLinkFrameworkRegistrationOptions,
|
|
11
|
+
ZLinkMeshChannelOptions,
|
|
7
12
|
ZLinkRouteChannelOptions,
|
|
8
13
|
ZLinkRouteMeshChannelOptions,
|
|
9
|
-
ZLinkMeshChannelOptions,
|
|
10
14
|
ZLinkSpotNodeOptions,
|
|
11
15
|
ZLinkSpotPubSubCapabilityOptions,
|
|
12
16
|
ZLinkSpotRouterCapabilityOptions,
|
|
@@ -14,10 +18,9 @@ import type {
|
|
|
14
18
|
ZLinkWorkerOptions
|
|
15
19
|
} from './RegistrationTypes';
|
|
16
20
|
import { isRouteClientEnabled, isRouteTransportDeclared } from './RouteChannelInternalState';
|
|
17
|
-
import { validateTimerRegistration } from './TimerRegistrationValidator';
|
|
18
|
-
import { zlinkDefaultLocationOptions } from '../Locations';
|
|
19
21
|
import { requireValidSendTimeoutMs } from './SendTimeoutValidation';
|
|
20
|
-
import {
|
|
22
|
+
import { validateTimerRegistration } from './TimerRegistrationValidator';
|
|
23
|
+
const ROUTE_CACHE_FOLLOW_MARGIN_MS = 5000;
|
|
21
24
|
|
|
22
25
|
export function validateFrameworkRegistration(
|
|
23
26
|
registration: ZLinkFrameworkRegistration,
|
|
@@ -132,11 +135,12 @@ function validateLocationRegistration(registration: ZLinkFrameworkRegistration):
|
|
|
132
135
|
}
|
|
133
136
|
}
|
|
134
137
|
if (
|
|
135
|
-
options.ownerLeaseRenewIntervalMs
|
|
138
|
+
Math.max(options.ownerLeaseRenewIntervalMs, options.ownerLeaseRenewTimeoutMs) +
|
|
139
|
+
options.ownerLeaseRenewTimeoutMs >=
|
|
136
140
|
options.ownerLeaseTtlMs - options.ownerLeaseFencingMarginMs
|
|
137
141
|
) {
|
|
138
142
|
throw new ZLinkConfigurationException(
|
|
139
|
-
'ownerLeaseRenewIntervalMs + ownerLeaseRenewTimeoutMs must be less than ownerLeaseTtlMs - ownerLeaseFencingMarginMs.'
|
|
143
|
+
'max(ownerLeaseRenewIntervalMs, ownerLeaseRenewTimeoutMs) + ownerLeaseRenewTimeoutMs must be less than ownerLeaseTtlMs - ownerLeaseFencingMarginMs.'
|
|
140
144
|
);
|
|
141
145
|
}
|
|
142
146
|
for (const [name, value] of Object.entries({
|
|
@@ -147,9 +151,9 @@ function validateLocationRegistration(registration: ZLinkFrameworkRegistration):
|
|
|
147
151
|
throw new ZLinkConfigurationException(`${name} must be a positive integer.`);
|
|
148
152
|
}
|
|
149
153
|
}
|
|
150
|
-
if (options.relocationPayloadChunkLimitBytes >
|
|
154
|
+
if (options.relocationPayloadChunkLimitBytes > RELOCATION_STATE_CHUNK_DATA_MAX_BYTES) {
|
|
151
155
|
throw new ZLinkConfigurationException(
|
|
152
|
-
|
|
156
|
+
`relocationPayloadChunkLimitBytes must not exceed the ${RELOCATION_STATE_CHUNK_DATA_MAX_BYTES / (1024 * 1024)} MiB wire chunk bound.`
|
|
153
157
|
);
|
|
154
158
|
}
|
|
155
159
|
for (const [name, value] of Object.entries({
|
|
@@ -173,10 +177,10 @@ function validateLocationRegistration(registration: ZLinkFrameworkRegistration):
|
|
|
173
177
|
if (
|
|
174
178
|
options.routeCacheMaxAgeMs > 0 &&
|
|
175
179
|
options.messageFollowDurationMs > 0 &&
|
|
176
|
-
options.routeCacheMaxAgeMs > options.messageFollowDurationMs -
|
|
180
|
+
options.routeCacheMaxAgeMs > options.messageFollowDurationMs - ROUTE_CACHE_FOLLOW_MARGIN_MS
|
|
177
181
|
) {
|
|
178
182
|
throw new ZLinkConfigurationException(
|
|
179
|
-
|
|
183
|
+
`routeCacheMaxAgeMs must be at least ${ROUTE_CACHE_FOLLOW_MARGIN_MS} ms shorter than messageFollowDurationMs.`
|
|
180
184
|
);
|
|
181
185
|
}
|
|
182
186
|
}
|
|
@@ -232,6 +236,10 @@ function validateChannelCapabilities(
|
|
|
232
236
|
requireSocketOptions(`channel '${channelName}' server`, channel.server);
|
|
233
237
|
}
|
|
234
238
|
if (channel.publisher !== undefined) {
|
|
239
|
+
requireValidSendTimeoutMs(
|
|
240
|
+
`channel '${channelName}' publisher sendTimeoutMs`,
|
|
241
|
+
channel.publisher.sendTimeoutMs
|
|
242
|
+
);
|
|
235
243
|
requireEndpoint(`channel '${channelName}' publisher`, channel.publisher.bind);
|
|
236
244
|
validateListenerNetworkIdentity(
|
|
237
245
|
`channel '${channelName}' publisher`,
|
|
@@ -714,9 +722,7 @@ function requirePeerWeight(label: string, value: number | undefined): void {
|
|
|
714
722
|
if (value === undefined) {
|
|
715
723
|
return;
|
|
716
724
|
}
|
|
717
|
-
|
|
718
|
-
throw new ZLinkConfigurationException(`${label} must be an integer in 0..10000.`);
|
|
719
|
-
}
|
|
725
|
+
requirePublicWeight(value, label);
|
|
720
726
|
}
|
|
721
727
|
|
|
722
728
|
function requireSocketOptions(
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { ZLinkTimerOverrunPolicy, type ZLinkTimerOptions } from '../Timers';
|
|
2
2
|
import { ZLinkConfigurationException } from './ConfigurationException';
|
|
3
3
|
|
|
4
|
+
const MAX_TIMER_CATCH_UP_TICKS = 2_147_483_647;
|
|
5
|
+
|
|
4
6
|
export function validateTimerRegistration(
|
|
5
7
|
name: string,
|
|
6
8
|
periodMs: number,
|
|
@@ -23,10 +25,10 @@ export function validateTimerRegistration(
|
|
|
23
25
|
(options.maxCatchUpTicks === undefined ||
|
|
24
26
|
!Number.isInteger(options.maxCatchUpTicks) ||
|
|
25
27
|
options.maxCatchUpTicks < 1 ||
|
|
26
|
-
options.maxCatchUpTicks >
|
|
28
|
+
options.maxCatchUpTicks > MAX_TIMER_CATCH_UP_TICKS)
|
|
27
29
|
) {
|
|
28
30
|
throw new ZLinkConfigurationException(
|
|
29
|
-
|
|
31
|
+
`SPOT timer MaxCatchUpTicks must be an integer from 1 through ${MAX_TIMER_CATCH_UP_TICKS.toLocaleString('en-US')}.`
|
|
30
32
|
);
|
|
31
33
|
}
|
|
32
34
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
const MAX_CONTRACT_SCHEMA_DEPTH = 64;
|
|
2
|
+
|
|
1
3
|
/** Describes the fields accepted by the default framework-json-v1 serializer. */
|
|
2
4
|
export type ZLinkJsonSchema =
|
|
3
5
|
| { readonly type: 'boolean' }
|
|
@@ -75,9 +77,13 @@ function normalizeJsonSchema(
|
|
|
75
77
|
// Keep the runtime boundary defensive for JavaScript callers even though
|
|
76
78
|
// the TypeScript signature describes the accepted shape.
|
|
77
79
|
const runtimeSchema: unknown = schema;
|
|
78
|
-
if (
|
|
80
|
+
if (
|
|
81
|
+
typeof runtimeSchema !== 'object' ||
|
|
82
|
+
runtimeSchema === null ||
|
|
83
|
+
depth > MAX_CONTRACT_SCHEMA_DEPTH
|
|
84
|
+
) {
|
|
79
85
|
throw new TypeError(
|
|
80
|
-
|
|
86
|
+
`ZLink packet JSON schema must be an acyclic object with at most ${MAX_CONTRACT_SCHEMA_DEPTH} levels.`
|
|
81
87
|
);
|
|
82
88
|
}
|
|
83
89
|
const normalizedSchema = runtimeSchema as ZLinkJsonSchema;
|
|
@@ -147,7 +153,7 @@ function normalizeJsonSchema(
|
|
|
147
153
|
for (const [name, property] of Object.entries(
|
|
148
154
|
runtimeProperties as Record<string, ZLinkJsonSchema>
|
|
149
155
|
)) {
|
|
150
|
-
if (name
|
|
156
|
+
if (isPrototypeKey(name)) {
|
|
151
157
|
throw new TypeError(`ZLink packet JSON property '${name}' is not allowed.`);
|
|
152
158
|
}
|
|
153
159
|
properties[name] = normalizeJsonSchema(property, nextParents, depth + 1);
|
|
@@ -156,7 +162,7 @@ function normalizeJsonSchema(
|
|
|
156
162
|
throw new TypeError('ZLink packet JSON required properties must be unique.');
|
|
157
163
|
}
|
|
158
164
|
for (const name of normalizedSchema.required) {
|
|
159
|
-
if (name
|
|
165
|
+
if (isPrototypeKey(name)) {
|
|
160
166
|
throw new TypeError(`ZLink packet JSON property '${name}' is not allowed.`);
|
|
161
167
|
}
|
|
162
168
|
if (!Object.prototype.hasOwnProperty.call(properties, name)) {
|
|
@@ -204,3 +210,7 @@ function canonicalContract(value: unknown): string {
|
|
|
204
210
|
.map(([key, item]) => `${JSON.stringify(key)}:${canonicalContract(item)}`)
|
|
205
211
|
.join(',')}}`;
|
|
206
212
|
}
|
|
213
|
+
|
|
214
|
+
function isPrototypeKey(name: string): boolean {
|
|
215
|
+
return name === '__proto__' || name === 'prototype' || name === 'constructor';
|
|
216
|
+
}
|
|
@@ -70,7 +70,7 @@ export type ZLinkAuthorityMutation =
|
|
|
70
70
|
| {
|
|
71
71
|
readonly kind: 'put';
|
|
72
72
|
readonly payload: Uint8Array;
|
|
73
|
-
readonly generationTransition: 'preserve';
|
|
73
|
+
readonly generationTransition: 'preserve' | 'reincarnate';
|
|
74
74
|
}
|
|
75
75
|
| {
|
|
76
76
|
/** Rebinds an authority retained by the same owner after lease recovery. */
|
|
@@ -101,13 +101,17 @@ export interface ZLinkAuthorityEntry {
|
|
|
101
101
|
readonly snapshot: ZLinkAuthoritySnapshot;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
+
const ZLINK_AUTHORITY_MAX_SCAN_CURSOR_BYTES = 4096;
|
|
105
|
+
|
|
104
106
|
export class ZLinkAuthorityScanCursor {
|
|
105
107
|
private constructor(readonly encoded: string) {}
|
|
106
108
|
|
|
107
109
|
static from(encoded: string): ZLinkAuthorityScanCursor {
|
|
108
110
|
const byteLength = Buffer.byteLength(encoded, 'utf8');
|
|
109
|
-
if (byteLength < 1 || byteLength >
|
|
110
|
-
throw new RangeError(
|
|
111
|
+
if (byteLength < 1 || byteLength > ZLINK_AUTHORITY_MAX_SCAN_CURSOR_BYTES) {
|
|
112
|
+
throw new RangeError(
|
|
113
|
+
`Authority scan cursor must contain 1..${ZLINK_AUTHORITY_MAX_SCAN_CURSOR_BYTES} UTF-8 bytes.`
|
|
114
|
+
);
|
|
111
115
|
}
|
|
112
116
|
return new ZLinkAuthorityScanCursor(encoded);
|
|
113
117
|
}
|
|
@@ -26,7 +26,7 @@ export const zlinkRuntimeDefaultLocationOptions: Readonly<
|
|
|
26
26
|
ownerLeaseRenewIntervalMs: 5000,
|
|
27
27
|
ownerLeaseTtlMs: 15000,
|
|
28
28
|
pollingIntervalMs: 1000,
|
|
29
|
-
listPageSize:
|
|
29
|
+
listPageSize: 100,
|
|
30
30
|
storeFailureGraceMs: 30000,
|
|
31
31
|
ownerLeaseFencingMarginMs: 5000,
|
|
32
32
|
ownerLeaseRenewTimeoutMs: 3000,
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
export const ZLINK_PROVIDER_MAX_PAGE_SIZE = 1000;
|
|
2
|
+
export const ZLINK_PROVIDER_MAX_KEY_BYTES = 1024;
|
|
3
|
+
export const ZLINK_PROVIDER_MAX_VALUE_BYTES = 1024 * 1024;
|
|
4
|
+
export const ZLINK_PROVIDER_MAX_VERSION_BYTES = 4096;
|
|
5
|
+
export const ZLINK_PROVIDER_MAX_WRITE_KEYS = 2048;
|
|
6
|
+
export const ZLINK_PROVIDER_MAX_WRITE_BYTES = 4 * 1024 * 1024;
|
|
7
|
+
export const ZLINK_PROVIDER_MAX_ENCODED_PAGE_BYTES = 4 * 1024 * 1024;
|
|
8
|
+
export const ZLINK_PROVIDER_MAX_SCAN_CURSOR_BYTES = 4096;
|
|
9
|
+
|
|
1
10
|
declare const zlinkStoreKeyBrand: unique symbol;
|
|
2
11
|
declare const zlinkStoreVersionBrand: unique symbol;
|
|
3
12
|
declare const zlinkStoreScanCursorBrand: unique symbol;
|
|
@@ -34,6 +43,11 @@ export type ZLinkStoreCondition =
|
|
|
34
43
|
readonly kind: 'version';
|
|
35
44
|
readonly key: ZLinkStoreKey;
|
|
36
45
|
readonly expected: ZLinkStoreVersion;
|
|
46
|
+
}
|
|
47
|
+
| {
|
|
48
|
+
readonly kind: 'value';
|
|
49
|
+
readonly key: ZLinkStoreKey;
|
|
50
|
+
readonly expected: Uint8Array;
|
|
37
51
|
};
|
|
38
52
|
|
|
39
53
|
export type ZLinkStoreMutation =
|
|
@@ -32,7 +32,7 @@ export interface ZLinkWorkerCall<T> {
|
|
|
32
32
|
export interface ZLinkSpotCommonContext<TSpot = ZLinkSpot> {
|
|
33
33
|
readonly meshName: string;
|
|
34
34
|
readonly spotId: SpotId;
|
|
35
|
-
readonly objectGeneration:
|
|
35
|
+
readonly objectGeneration: bigint;
|
|
36
36
|
readonly nodeRid: RoutingId;
|
|
37
37
|
readonly outbound: ZLinkSpotOutbound;
|
|
38
38
|
addTimer<THandler extends ZLinkSpotTimerHandler<TSpot>>(
|
package/src/internal.ts
CHANGED
|
@@ -29,3 +29,17 @@ export * from './runtime/foundation';
|
|
|
29
29
|
export * from './runtime/foundation/service-authority-payload-codec';
|
|
30
30
|
export * from './runtime/framework-errors-internal';
|
|
31
31
|
export * from './contracts/Configuration/Registration';
|
|
32
|
+
|
|
33
|
+
export * from './contracts/Locations/Stores';
|
|
34
|
+
export { ZLINK_RELOCATION_MAX_BLOB_REFERENCE_BYTES } from './contracts/Configuration/InternalDefaults';
|
|
35
|
+
export { ZLINK_MAX_STABLE_TYPE_BYTES } from './contracts/Common/CoreTypes';
|
|
36
|
+
export {
|
|
37
|
+
MAX_LISTENER_PORT,
|
|
38
|
+
ZLINK_MAX_PUBLIC_WEIGHT,
|
|
39
|
+
ZLINK_MAX_CAPACITY,
|
|
40
|
+
isValidPublicWeight,
|
|
41
|
+
isValidPositiveCapacity,
|
|
42
|
+
isValidListenerPort,
|
|
43
|
+
isValidCapacity,
|
|
44
|
+
requirePublicWeight
|
|
45
|
+
} from './contracts/Configuration/RegistrationBuilderPolicy';
|
package/src/nest-integration.ts
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
export {
|
|
2
2
|
ZLinkConfigurationException,
|
|
3
3
|
createFrameworkRegistration,
|
|
4
|
+
normalizeFrameworkRegistration,
|
|
4
5
|
hasActorManager,
|
|
5
6
|
hasSpotNode,
|
|
6
7
|
hasSpotPublisherClient
|
|
7
8
|
} from './contracts/Configuration/Registration';
|
|
8
9
|
export type * from './contracts/Configuration/RegistrationTypes';
|
|
9
10
|
export type * from './contracts';
|
|
11
|
+
export { ZLinkSpotActorSend, ZLinkSpotActorRequest } from './contracts/Handlers/Attributes';
|
|
10
12
|
export {
|
|
11
13
|
registerActorFactory,
|
|
14
|
+
registerRelocationStore,
|
|
12
15
|
validateRoutingIdPrefix,
|
|
13
16
|
registerEntrySpot,
|
|
14
17
|
registerSpotFactory,
|
|
@@ -73,6 +76,10 @@ export {
|
|
|
73
76
|
registerHandlerFilterScope as registerIntegrationHandlerFilterScope,
|
|
74
77
|
type ZLinkHandlerFilterScopeRunner
|
|
75
78
|
} from './runtime/channels/handler-filter-scope';
|
|
79
|
+
export {
|
|
80
|
+
disposeOwnedInstance as disposeIntegrationHandler,
|
|
81
|
+
disposeOwnedInstances as disposeIntegrationHandlers
|
|
82
|
+
} from './runtime/handlers/handler-instance-scope';
|
|
76
83
|
|
|
77
84
|
export interface ZLinkNestIntegrationRuntimeHost extends Pick<
|
|
78
85
|
import('./contracts').ZLinkFrameworkRuntime,
|
|
@@ -134,7 +141,13 @@ export function createIntegrationChannelClient(
|
|
|
134
141
|
registration: ZLinkFrameworkRegistration,
|
|
135
142
|
runtime: ZLinkNestIntegrationRuntimeHost
|
|
136
143
|
): ZLinkChannelClient {
|
|
137
|
-
|
|
144
|
+
const host = runtimeHost(runtime);
|
|
145
|
+
return new DefaultZLinkChannelClient(
|
|
146
|
+
registration,
|
|
147
|
+
host.channelTransport,
|
|
148
|
+
host.routeTransport,
|
|
149
|
+
host.spotRouterChannelIdForMesh
|
|
150
|
+
);
|
|
138
151
|
}
|
|
139
152
|
|
|
140
153
|
export function createIntegrationFanoutClient(
|
|
@@ -152,7 +165,8 @@ export function createIntegrationRouteClient(
|
|
|
152
165
|
return new DefaultZLinkRouteClient(
|
|
153
166
|
registration,
|
|
154
167
|
host.routeTransport,
|
|
155
|
-
host.spotRouterChannelIdForMesh
|
|
168
|
+
host.spotRouterChannelIdForMesh,
|
|
169
|
+
host.channelTransport
|
|
156
170
|
);
|
|
157
171
|
}
|
|
158
172
|
|
|
@@ -180,14 +194,17 @@ export function createIntegrationActorManager(
|
|
|
180
194
|
): ZLinkActorManager {
|
|
181
195
|
const host = runtimeHost(runtime);
|
|
182
196
|
const runtimeOptions = host.createActorManagerOptions();
|
|
183
|
-
const manager = new DefaultZLinkActorManager(
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
197
|
+
const manager = new DefaultZLinkActorManager(
|
|
198
|
+
{
|
|
199
|
+
actorFactories: registration.actorFactories,
|
|
200
|
+
...runtimeOptions,
|
|
201
|
+
boundSessionFactory:
|
|
202
|
+
runtimeOptions.boundSessionFactory ??
|
|
203
|
+
host.boundSessionFactory.create.bind(host.boundSessionFactory),
|
|
204
|
+
providerResolver
|
|
205
|
+
},
|
|
206
|
+
host.detachedTaskRunner()
|
|
207
|
+
);
|
|
191
208
|
host.setActorManager(manager);
|
|
192
209
|
return manager;
|
|
193
210
|
}
|
|
@@ -229,6 +246,7 @@ export function createIntegrationSpotManager(
|
|
|
229
246
|
...(spotNode.spotActorRequestHandlers ?? [])
|
|
230
247
|
]),
|
|
231
248
|
...runtimeOptions,
|
|
249
|
+
detachedTaskRunner: host.detachedTaskRunner(),
|
|
232
250
|
spotRouteResolver: runtimeOptions.spotRouteResolver,
|
|
233
251
|
routedTransport: host.routeTransport,
|
|
234
252
|
providerResolver,
|
package/src/runtime/abort.ts
CHANGED
|
@@ -38,15 +38,15 @@ export function throwIfAborted(signal: AbortSignal | undefined): void {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
export function macrotaskBoundary(): Promise<void> {
|
|
42
|
+
return new Promise((resolve) => setImmediate(resolve));
|
|
43
|
+
}
|
|
44
|
+
|
|
41
45
|
export function awaitWithAbort<T>(
|
|
42
46
|
operation: Promise<T>,
|
|
43
47
|
signal: AbortSignal | undefined,
|
|
44
48
|
abortOperation?: () => void
|
|
45
49
|
): Promise<T> {
|
|
46
|
-
if (signal?.aborted === true) {
|
|
47
|
-
abortOperation?.();
|
|
48
|
-
throw createAbortError();
|
|
49
|
-
}
|
|
50
50
|
if (signal === undefined) {
|
|
51
51
|
return operation;
|
|
52
52
|
}
|
|
@@ -63,7 +63,6 @@ export function awaitWithAbort<T>(
|
|
|
63
63
|
abortOperation?.();
|
|
64
64
|
reject(createAbortError());
|
|
65
65
|
};
|
|
66
|
-
signal.addEventListener('abort', abort, { once: true });
|
|
67
66
|
operation.then(
|
|
68
67
|
(value) => {
|
|
69
68
|
if (settle()) resolve(value);
|
|
@@ -72,5 +71,7 @@ export function awaitWithAbort<T>(
|
|
|
72
71
|
if (settle()) reject(error);
|
|
73
72
|
}
|
|
74
73
|
);
|
|
74
|
+
if (signal.aborted) abort();
|
|
75
|
+
else signal.addEventListener('abort', abort, { once: true });
|
|
75
76
|
});
|
|
76
77
|
}
|