@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
|
@@ -13,7 +13,7 @@ export declare const ZLINK_DEFAULT_SERIAL_SCHEDULER_OPTIONS: Required<ZLinkSeria
|
|
|
13
13
|
export interface ZLinkSerialWorkRecord<T> {
|
|
14
14
|
readonly acceptedSequence: bigint;
|
|
15
15
|
readonly lane: ZLinkSerialWorkLane;
|
|
16
|
-
|
|
16
|
+
operation: () => Promise<T> | T;
|
|
17
17
|
readonly context?: unknown;
|
|
18
18
|
resolve(value: T): void;
|
|
19
19
|
reject(reason: unknown): void;
|
|
@@ -21,6 +21,10 @@ export interface ZLinkSerialWorkRecord<T> {
|
|
|
21
21
|
release(): void;
|
|
22
22
|
fail(reason: unknown): void;
|
|
23
23
|
}
|
|
24
|
+
/** The active lifecycle owner decides which existing application records can run. */
|
|
25
|
+
export interface ZLinkSerialLifecycleContext {
|
|
26
|
+
canExecuteApplication(record: ZLinkSerialWorkRecord<unknown>): boolean;
|
|
27
|
+
}
|
|
24
28
|
/** Readiness work that must complete without claiming the serial owner. */
|
|
25
29
|
export interface ZLinkSerialWorkPreparation {
|
|
26
30
|
prepare(signal: AbortSignal): Promise<void>;
|
|
@@ -34,6 +38,7 @@ export declare class ZLinkSerialExecutionQueue {
|
|
|
34
38
|
private readonly executeRecord;
|
|
35
39
|
private readonly application;
|
|
36
40
|
private readonly lifecycle;
|
|
41
|
+
private activeLifecycle?;
|
|
37
42
|
private readonly ownerTimeBudget;
|
|
38
43
|
private readonly lifecycleBurstLimit;
|
|
39
44
|
private nextAcceptedSequence;
|
|
@@ -56,16 +61,16 @@ export declare class ZLinkSerialExecutionQueue {
|
|
|
56
61
|
* It remains held through handler terminal completion.
|
|
57
62
|
*/
|
|
58
63
|
submitPreAdmitted<T>(operation: () => Promise<T> | T, options?: ZLinkSerialWorkOptions, context?: unknown): Promise<T>;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
readonly lifecycleMessages: number;
|
|
63
|
-
readonly lifecycleBytes: number;
|
|
64
|
-
};
|
|
64
|
+
/** Holds lifecycle FIFO through an operation result while its application turns can run. */
|
|
65
|
+
submitLifecycleOperation<T>(operation: () => Promise<T> | T, context?: ZLinkSerialLifecycleContext): Promise<T>;
|
|
66
|
+
visitPendingApplication(visitor: (record: ZLinkSerialWorkRecord<unknown>) => void): void;
|
|
65
67
|
get hasPendingWork(): boolean;
|
|
66
68
|
whenIdle(): Promise<void>;
|
|
67
69
|
/** Stops new submissions while allowing the accepted FIFO to finish. */
|
|
68
70
|
close(): Promise<void>;
|
|
71
|
+
/** Stops admission within the lifecycle operation that owns this queue's close. */
|
|
72
|
+
closeAdmission(): void;
|
|
73
|
+
get admissionClosed(): boolean;
|
|
69
74
|
private admit;
|
|
70
75
|
private scheduleDrain;
|
|
71
76
|
private drain;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZLinkSerialExecutionQueue = exports.ZLINK_DEFAULT_SERIAL_SCHEDULER_OPTIONS = void 0;
|
|
4
|
+
const abort_1 = require("../abort");
|
|
5
|
+
const state_lane_1 = require("./state-lane");
|
|
4
6
|
exports.ZLINK_DEFAULT_SERIAL_SCHEDULER_OPTIONS = Object.freeze({
|
|
5
7
|
ownerTimeBudget: 10,
|
|
6
8
|
lifecycleBurstLimit: 8
|
|
@@ -13,6 +15,7 @@ class ZLinkSerialExecutionQueue {
|
|
|
13
15
|
executeRecord;
|
|
14
16
|
application;
|
|
15
17
|
lifecycle;
|
|
18
|
+
activeLifecycle;
|
|
16
19
|
ownerTimeBudget;
|
|
17
20
|
lifecycleBurstLimit;
|
|
18
21
|
nextAcceptedSequence = 1n;
|
|
@@ -71,16 +74,19 @@ class ZLinkSerialExecutionQueue {
|
|
|
71
74
|
submitPreAdmitted(operation, options = {}, context) {
|
|
72
75
|
return this.admit(operation, options, context);
|
|
73
76
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
/** Holds lifecycle FIFO through an operation result while its application turns can run. */
|
|
78
|
+
submitLifecycleOperation(operation, context) {
|
|
79
|
+
return this.admit(operation, { lane: 'lifecycle' }, context, undefined, true);
|
|
80
|
+
}
|
|
81
|
+
visitPendingApplication(visitor) {
|
|
82
|
+
for (const record of this.application.records)
|
|
83
|
+
visitor(record);
|
|
81
84
|
}
|
|
82
85
|
get hasPendingWork() {
|
|
83
|
-
return (this.draining ||
|
|
86
|
+
return (this.draining ||
|
|
87
|
+
this.activeLifecycle !== undefined ||
|
|
88
|
+
this.application.records.length > 0 ||
|
|
89
|
+
this.lifecycle.records.length > 0);
|
|
84
90
|
}
|
|
85
91
|
whenIdle() {
|
|
86
92
|
if (!this.hasPendingWork)
|
|
@@ -89,10 +95,17 @@ class ZLinkSerialExecutionQueue {
|
|
|
89
95
|
}
|
|
90
96
|
/** Stops new submissions while allowing the accepted FIFO to finish. */
|
|
91
97
|
close() {
|
|
92
|
-
this.
|
|
98
|
+
this.closeAdmission();
|
|
93
99
|
return this.whenIdle();
|
|
94
100
|
}
|
|
95
|
-
|
|
101
|
+
/** Stops admission within the lifecycle operation that owns this queue's close. */
|
|
102
|
+
closeAdmission() {
|
|
103
|
+
this.closed = true;
|
|
104
|
+
}
|
|
105
|
+
get admissionClosed() {
|
|
106
|
+
return this.closed;
|
|
107
|
+
}
|
|
108
|
+
admit(operation, options, context, preparation, operationEnvelope = false) {
|
|
96
109
|
if (this.closed)
|
|
97
110
|
throw new Error('The serial execution queue is closed.');
|
|
98
111
|
const lane = options.lane ?? 'application';
|
|
@@ -109,6 +122,15 @@ class ZLinkSerialExecutionQueue {
|
|
|
109
122
|
if (released)
|
|
110
123
|
return;
|
|
111
124
|
released = true;
|
|
125
|
+
if (this.activeLifecycle === record) {
|
|
126
|
+
this.activeLifecycle = undefined;
|
|
127
|
+
if (this.application.records.length > 0 || this.lifecycle.records.length > 0) {
|
|
128
|
+
this.scheduleDrain();
|
|
129
|
+
}
|
|
130
|
+
else if (!this.draining) {
|
|
131
|
+
this.resolveIdleWaiters();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
112
134
|
};
|
|
113
135
|
const resolve = (value) => {
|
|
114
136
|
if (settled)
|
|
@@ -126,6 +148,7 @@ class ZLinkSerialExecutionQueue {
|
|
|
126
148
|
acceptedSequence: 0n,
|
|
127
149
|
lane,
|
|
128
150
|
operation,
|
|
151
|
+
operationEnvelope,
|
|
129
152
|
context,
|
|
130
153
|
preparation,
|
|
131
154
|
preparationState: preparation === undefined ? 'ready' : 'idle',
|
|
@@ -197,7 +220,24 @@ class ZLinkSerialExecutionQueue {
|
|
|
197
220
|
}
|
|
198
221
|
this.claimStartedAt ??= performance.now();
|
|
199
222
|
try {
|
|
200
|
-
|
|
223
|
+
if (record.operationEnvelope) {
|
|
224
|
+
try {
|
|
225
|
+
const outcome = record.operation();
|
|
226
|
+
void Promise.resolve(outcome).then((value) => {
|
|
227
|
+
record.resolve(value);
|
|
228
|
+
record.release();
|
|
229
|
+
}, (error) => {
|
|
230
|
+
record.reject(error);
|
|
231
|
+
record.release();
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
catch (error) {
|
|
235
|
+
record.fail(error);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
await this.executeRecord(record);
|
|
240
|
+
}
|
|
201
241
|
}
|
|
202
242
|
catch (error) {
|
|
203
243
|
record.fail(error);
|
|
@@ -207,42 +247,47 @@ class ZLinkSerialExecutionQueue {
|
|
|
207
247
|
}
|
|
208
248
|
if (this.shouldYield()) {
|
|
209
249
|
this.claimStartedAt = undefined;
|
|
210
|
-
await macrotaskBoundary();
|
|
250
|
+
await (0, abort_1.macrotaskBoundary)();
|
|
211
251
|
}
|
|
212
252
|
}
|
|
213
253
|
}
|
|
214
254
|
finally {
|
|
215
255
|
this.draining = false;
|
|
216
256
|
this.claimStartedAt = undefined;
|
|
217
|
-
if (!waitingForPreparation &&
|
|
218
|
-
(this.application.records.length > 0 || this.lifecycle.records.length > 0)) {
|
|
257
|
+
if (!waitingForPreparation && this.selectNext() !== undefined) {
|
|
219
258
|
this.scheduleDrain();
|
|
220
259
|
}
|
|
221
260
|
else {
|
|
222
|
-
if (this.
|
|
261
|
+
if (!this.hasPendingWork) {
|
|
223
262
|
this.resolveIdleWaiters();
|
|
224
263
|
}
|
|
225
264
|
}
|
|
226
265
|
}
|
|
227
266
|
}
|
|
228
267
|
selectNext() {
|
|
229
|
-
const
|
|
230
|
-
const
|
|
268
|
+
const lifecycleOwner = this.activeLifecycle?.context;
|
|
269
|
+
const applicationRecord = lifecycleOwner === undefined
|
|
270
|
+
? this.application.records[0]
|
|
271
|
+
: this.application.records.find((record) => lifecycleOwner.canExecuteApplication(record));
|
|
272
|
+
const applicationReady = applicationRecord !== undefined;
|
|
273
|
+
const lifecycleReady = this.activeLifecycle === undefined && this.lifecycle.records.length > 0;
|
|
231
274
|
if (!applicationReady && !lifecycleReady)
|
|
232
275
|
return undefined;
|
|
233
276
|
if (!applicationReady) {
|
|
234
277
|
return { lane: 'lifecycle', record: this.lifecycle.records[0] };
|
|
235
278
|
}
|
|
236
279
|
if (!lifecycleReady) {
|
|
237
|
-
return { lane: 'application', record:
|
|
280
|
+
return { lane: 'application', record: applicationRecord };
|
|
238
281
|
}
|
|
239
282
|
if (!this.lifecycleDebt && this.lifecycleStreak < this.lifecycleBurstLimit) {
|
|
240
283
|
return { lane: 'lifecycle', record: this.lifecycle.records[0] };
|
|
241
284
|
}
|
|
242
|
-
return { lane: 'application', record:
|
|
285
|
+
return { lane: 'application', record: applicationRecord };
|
|
243
286
|
}
|
|
244
287
|
takeSelected(selection) {
|
|
245
|
-
const record = selection.lane === 'lifecycle'
|
|
288
|
+
const record = selection.lane === 'lifecycle'
|
|
289
|
+
? this.takeLifecycle()
|
|
290
|
+
: this.takeApplication(selection.record);
|
|
246
291
|
if (record !== selection.record) {
|
|
247
292
|
throw new Error('The selected serial work record changed before owner claim.');
|
|
248
293
|
}
|
|
@@ -253,12 +298,17 @@ class ZLinkSerialExecutionQueue {
|
|
|
253
298
|
if (this.application.records.length > 0 && this.lifecycleStreak >= this.lifecycleBurstLimit) {
|
|
254
299
|
this.lifecycleDebt = true;
|
|
255
300
|
}
|
|
256
|
-
|
|
301
|
+
const record = this.lifecycle.records.shift();
|
|
302
|
+
this.activeLifecycle = record;
|
|
303
|
+
return record;
|
|
257
304
|
}
|
|
258
|
-
takeApplication() {
|
|
305
|
+
takeApplication(selected) {
|
|
259
306
|
this.lifecycleStreak = 0;
|
|
260
307
|
this.lifecycleDebt = false;
|
|
261
|
-
|
|
308
|
+
if (this.application.records[0] === selected)
|
|
309
|
+
return this.application.records.shift();
|
|
310
|
+
const index = this.application.records.indexOf(selected);
|
|
311
|
+
return this.application.records.splice(index, 1)[0];
|
|
262
312
|
}
|
|
263
313
|
startPreparation(record) {
|
|
264
314
|
const preparation = record.preparation;
|
|
@@ -321,6 +371,32 @@ class ZLinkSerialExecutionQueue {
|
|
|
321
371
|
}
|
|
322
372
|
}
|
|
323
373
|
exports.ZLinkSerialExecutionQueue = ZLinkSerialExecutionQueue;
|
|
374
|
+
if ((0, state_lane_1.isStructuralGuardEnabled)()) {
|
|
375
|
+
const submit = ZLinkSerialExecutionQueue.prototype.submit;
|
|
376
|
+
ZLinkSerialExecutionQueue.prototype.submit = function (operation, options = {}, context) {
|
|
377
|
+
return (0, state_lane_1.guardStateLaneCompletion)((0, state_lane_1.trackDiagnosticCompletion)(submit.call(this, operation, options, context), `serial ${options.lane ?? 'application'} ${(0, state_lane_1.diagnosticWorkName)(operation)}`), 'serial completion');
|
|
378
|
+
};
|
|
379
|
+
const submitPreAdmitted = ZLinkSerialExecutionQueue.prototype.submitPreAdmitted;
|
|
380
|
+
ZLinkSerialExecutionQueue.prototype.submitPreAdmitted = function (operation, options = {}, context) {
|
|
381
|
+
return (0, state_lane_1.guardStateLaneCompletion)((0, state_lane_1.trackDiagnosticCompletion)(submitPreAdmitted.call(this, operation, options, context), `serial ${options.lane ?? 'application'} ${(0, state_lane_1.diagnosticWorkName)(operation)}`), 'serial completion');
|
|
382
|
+
};
|
|
383
|
+
const submitContinuation = ZLinkSerialExecutionQueue.prototype.submitContinuation;
|
|
384
|
+
ZLinkSerialExecutionQueue.prototype.submitContinuation = function (operation, context) {
|
|
385
|
+
return (0, state_lane_1.guardStateLaneCompletion)((0, state_lane_1.trackDiagnosticCompletion)(submitContinuation.call(this, operation, context), `serial continuation ${(0, state_lane_1.diagnosticWorkName)(operation)}`), 'serial completion');
|
|
386
|
+
};
|
|
387
|
+
const admitDurablePrefix = ZLinkSerialExecutionQueue.prototype.admitDurablePrefix;
|
|
388
|
+
ZLinkSerialExecutionQueue.prototype.admitDurablePrefix = function (operation, options = {}, context, preparation) {
|
|
389
|
+
return (0, state_lane_1.guardStateLaneCompletion)((0, state_lane_1.trackDiagnosticCompletion)(admitDurablePrefix.call(this, operation, options, context, preparation), `serial durable ${(0, state_lane_1.diagnosticWorkName)(operation)}`), 'serial completion');
|
|
390
|
+
};
|
|
391
|
+
const submitLifecycleOperation = ZLinkSerialExecutionQueue.prototype.submitLifecycleOperation;
|
|
392
|
+
ZLinkSerialExecutionQueue.prototype.submitLifecycleOperation = function (operation) {
|
|
393
|
+
return (0, state_lane_1.guardStateLaneCompletion)((0, state_lane_1.trackDiagnosticCompletion)(submitLifecycleOperation.call(this, operation), `serial lifecycle ${(0, state_lane_1.diagnosticWorkName)(operation)}`), 'serial completion');
|
|
394
|
+
};
|
|
395
|
+
const whenIdle = ZLinkSerialExecutionQueue.prototype.whenIdle;
|
|
396
|
+
ZLinkSerialExecutionQueue.prototype.whenIdle = function () {
|
|
397
|
+
return (0, state_lane_1.guardStateLaneCompletion)(whenIdle.call(this), 'serial completion');
|
|
398
|
+
};
|
|
399
|
+
}
|
|
324
400
|
function createLane() {
|
|
325
401
|
return {
|
|
326
402
|
records: []
|
|
@@ -336,6 +412,3 @@ function validateNonNegative(value, field) {
|
|
|
336
412
|
throw new RangeError(`${field} must be a non-negative safe integer.`);
|
|
337
413
|
}
|
|
338
414
|
}
|
|
339
|
-
function macrotaskBoundary() {
|
|
340
|
-
return new Promise((resolve) => setImmediate(resolve));
|
|
341
|
-
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
type ZLinkStateLaneWork<T> = () => Promise<T> | T;
|
|
2
|
+
export declare function isStructuralGuardEnabled(): boolean;
|
|
2
3
|
/**
|
|
3
4
|
* Single-owner execution lane for a component's mutable state.
|
|
4
5
|
*
|
|
@@ -7,7 +8,6 @@ type ZLinkStateLaneWork<T> = () => Promise<T> | T;
|
|
|
7
8
|
* Actor serial executors, which also own lifecycle and relocation concerns.
|
|
8
9
|
*/
|
|
9
10
|
export declare class ZLinkStateLane {
|
|
10
|
-
private static readonly currentLaneStorage;
|
|
11
11
|
private readonly mailbox;
|
|
12
12
|
private draining;
|
|
13
13
|
private drainPromise;
|
|
@@ -25,4 +25,11 @@ export declare class ZLinkStateLane {
|
|
|
25
25
|
private scheduleDrain;
|
|
26
26
|
private drain;
|
|
27
27
|
}
|
|
28
|
+
/** Applied only by debug-installed wrappers; release completions keep their original identity. */
|
|
29
|
+
export declare function guardStateLaneCompletion<T>(completion: Promise<T>, label: string, owner?: ZLinkStateLane): Promise<T>;
|
|
30
|
+
export declare function trackDiagnosticCompletion<T>(completion: Promise<T>, name: string): Promise<T>;
|
|
31
|
+
export declare function debugPendingWorkNames(): string[];
|
|
32
|
+
export declare function diagnosticWorkName(work: {
|
|
33
|
+
readonly name: string;
|
|
34
|
+
}): string;
|
|
28
35
|
export {};
|
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZLinkStateLane = void 0;
|
|
4
|
+
exports.isStructuralGuardEnabled = isStructuralGuardEnabled;
|
|
5
|
+
exports.guardStateLaneCompletion = guardStateLaneCompletion;
|
|
6
|
+
exports.trackDiagnosticCompletion = trackDiagnosticCompletion;
|
|
7
|
+
exports.debugPendingWorkNames = debugPendingWorkNames;
|
|
8
|
+
exports.diagnosticWorkName = diagnosticWorkName;
|
|
4
9
|
const node_async_hooks_1 = require("node:async_hooks");
|
|
10
|
+
const UNKNOWN_DIAGNOSTIC_CALLER = '<unknown caller>';
|
|
11
|
+
function isStructuralGuardEnabled() {
|
|
12
|
+
return process.env.ZLINK_NODE_STRUCTURAL_GUARD === '1' || process.env.NODE_ENV === 'test';
|
|
13
|
+
}
|
|
14
|
+
const currentLaneStorage = new node_async_hooks_1.AsyncLocalStorage();
|
|
15
|
+
const diagnosticPending = isStructuralGuardEnabled() ? new Map() : undefined;
|
|
16
|
+
let nextDiagnosticWork = 0;
|
|
17
|
+
const diagnosticTurnStorage = diagnosticPending === undefined ? undefined : new node_async_hooks_1.AsyncLocalStorage();
|
|
5
18
|
/**
|
|
6
19
|
* Single-owner execution lane for a component's mutable state.
|
|
7
20
|
*
|
|
@@ -10,13 +23,12 @@ const node_async_hooks_1 = require("node:async_hooks");
|
|
|
10
23
|
* Actor serial executors, which also own lifecycle and relocation concerns.
|
|
11
24
|
*/
|
|
12
25
|
class ZLinkStateLane {
|
|
13
|
-
static currentLaneStorage = new node_async_hooks_1.AsyncLocalStorage();
|
|
14
26
|
mailbox = [];
|
|
15
27
|
draining = false;
|
|
16
28
|
drainPromise;
|
|
17
29
|
closed = false;
|
|
18
30
|
static get current() {
|
|
19
|
-
return
|
|
31
|
+
return currentLaneStorage.getStore();
|
|
20
32
|
}
|
|
21
33
|
get isOnLane() {
|
|
22
34
|
return ZLinkStateLane.current === this;
|
|
@@ -86,7 +98,7 @@ class ZLinkStateLane {
|
|
|
86
98
|
return;
|
|
87
99
|
}
|
|
88
100
|
try {
|
|
89
|
-
await
|
|
101
|
+
await currentLaneStorage.run(this, work);
|
|
90
102
|
}
|
|
91
103
|
catch {
|
|
92
104
|
// Posted callbacks own their errors. One failure must not strand later work.
|
|
@@ -103,3 +115,106 @@ class ZLinkStateLane {
|
|
|
103
115
|
}
|
|
104
116
|
}
|
|
105
117
|
exports.ZLinkStateLane = ZLinkStateLane;
|
|
118
|
+
// Install the structural check only in diagnostic processes. The release run()
|
|
119
|
+
// method and its returned Promise are left untouched.
|
|
120
|
+
if (isStructuralGuardEnabled()) {
|
|
121
|
+
Object.defineProperty(ZLinkStateLane, 'current', {
|
|
122
|
+
configurable: true,
|
|
123
|
+
get: () => {
|
|
124
|
+
const turn = diagnosticTurnStorage?.getStore();
|
|
125
|
+
return turn?.active === true ? turn.lane : undefined;
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
const run = ZLinkStateLane.prototype.run;
|
|
129
|
+
ZLinkStateLane.prototype.run = function (work) {
|
|
130
|
+
const completion = run.call(this, () => runDiagnosticTurn(this, work));
|
|
131
|
+
return guardStateLaneCompletion(trackDiagnosticCompletion(completion, `state lane ${diagnosticWorkName(work)}`), 'another state lane completion', this);
|
|
132
|
+
};
|
|
133
|
+
const tryPost = ZLinkStateLane.prototype.tryPost;
|
|
134
|
+
ZLinkStateLane.prototype.tryPost = function (work) {
|
|
135
|
+
const release = registerDiagnosticWork(`state lane post ${diagnosticWorkName(work)}`);
|
|
136
|
+
const accepted = tryPost.call(this, () => {
|
|
137
|
+
try {
|
|
138
|
+
const result = runDiagnosticTurn(this, work);
|
|
139
|
+
if (result instanceof Promise)
|
|
140
|
+
return result.finally(release);
|
|
141
|
+
release();
|
|
142
|
+
return result;
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
release();
|
|
146
|
+
throw error;
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
if (!accepted)
|
|
150
|
+
release();
|
|
151
|
+
return accepted;
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
function runDiagnosticTurn(lane, work) {
|
|
155
|
+
const turn = { lane, active: true };
|
|
156
|
+
return diagnosticTurnStorage.run(turn, () => {
|
|
157
|
+
try {
|
|
158
|
+
const result = work();
|
|
159
|
+
if (result instanceof Promise) {
|
|
160
|
+
return result.finally(() => {
|
|
161
|
+
turn.active = false;
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
turn.active = false;
|
|
165
|
+
return result;
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
turn.active = false;
|
|
169
|
+
throw error;
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
/** Applied only by debug-installed wrappers; release completions keep their original identity. */
|
|
174
|
+
function guardStateLaneCompletion(completion, label, owner) {
|
|
175
|
+
return new Proxy(completion, {
|
|
176
|
+
get(target, property) {
|
|
177
|
+
if (property === 'then') {
|
|
178
|
+
return (onFulfilled, onRejected) => {
|
|
179
|
+
const current = ZLinkStateLane.current;
|
|
180
|
+
if (current !== undefined && current !== owner) {
|
|
181
|
+
throw new Error(`A state lane turn cannot wait for ${label}.`);
|
|
182
|
+
}
|
|
183
|
+
return target.then(onFulfilled, onRejected);
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
if (property === 'catch') {
|
|
187
|
+
return (onRejected) => guardStateLaneCompletion(target.catch(onRejected), label, owner);
|
|
188
|
+
}
|
|
189
|
+
if (property === 'finally') {
|
|
190
|
+
return (onFinally) => guardStateLaneCompletion(target.finally(onFinally), label, owner);
|
|
191
|
+
}
|
|
192
|
+
const value = Reflect.get(target, property, target);
|
|
193
|
+
return typeof value === 'function' ? value.bind(target) : value;
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
function trackDiagnosticCompletion(completion, name) {
|
|
198
|
+
const release = registerDiagnosticWork(name);
|
|
199
|
+
void completion.then(release, release);
|
|
200
|
+
return completion;
|
|
201
|
+
}
|
|
202
|
+
function debugPendingWorkNames() {
|
|
203
|
+
return [...(diagnosticPending?.values() ?? [])];
|
|
204
|
+
}
|
|
205
|
+
function diagnosticWorkName(work) {
|
|
206
|
+
return work.name.length > 0 ? work.name : '<anonymous>';
|
|
207
|
+
}
|
|
208
|
+
function registerDiagnosticWork(name) {
|
|
209
|
+
if (diagnosticPending === undefined)
|
|
210
|
+
return () => undefined;
|
|
211
|
+
const id = ++nextDiagnosticWork;
|
|
212
|
+
const frames = new Error().stack?.split('\n').slice(2) ?? [];
|
|
213
|
+
const caller = frames
|
|
214
|
+
.find((frame) => !frame.includes('state-lane.') && !frame.includes('serial-execution-queue.'))
|
|
215
|
+
?.trim() ?? UNKNOWN_DIAGNOSTIC_CALLER;
|
|
216
|
+
diagnosticPending.set(id, `${name} ${caller}`);
|
|
217
|
+
return () => {
|
|
218
|
+
diagnosticPending.delete(id);
|
|
219
|
+
};
|
|
220
|
+
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { RoutingId, ZLinkActorJoinOperationId } from '../../contracts';
|
|
2
|
+
export declare const SHA256_DIGEST_BYTES = 32;
|
|
3
|
+
export declare const RECREATE_RELOCATION_CONTENT_TYPE = "application/vnd.zlink.actor-relocation.recreate";
|
|
4
|
+
export declare const SNAPSHOT_RELOCATION_CONTENT_TYPE = "application/vnd.zlink.actor-relocation.snapshot";
|
|
2
5
|
export interface CanonicalActorJoinRecoveryRequest {
|
|
3
6
|
readonly actorId: string;
|
|
4
7
|
readonly actorType: string;
|
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SNAPSHOT_RELOCATION_CONTENT_TYPE = exports.RECREATE_RELOCATION_CONTENT_TYPE = exports.SHA256_DIGEST_BYTES = void 0;
|
|
3
4
|
exports.canonicalActorJoinHandoffId = canonicalActorJoinHandoffId;
|
|
4
5
|
exports.encodeCanonicalActorJoinRecoverySavedWork = encodeCanonicalActorJoinRecoverySavedWork;
|
|
5
6
|
exports.decodeCanonicalActorJoinRecoverySavedWork = decodeCanonicalActorJoinRecoverySavedWork;
|
|
6
7
|
exports.routingIdBytes = routingIdBytes;
|
|
8
|
+
const stream_wire_1 = require("@zlink-systems/stream-wire");
|
|
7
9
|
const node_crypto_1 = require("node:crypto");
|
|
8
|
-
const routing_id_1 = require("../routing-id");
|
|
9
10
|
const service_wire_pilot_codec_generated_1 = require("../protocol/service_wire_pilot_codec.generated");
|
|
11
|
+
const routing_id_1 = require("../routing-id");
|
|
10
12
|
const service_stateful_wire_codec_1 = require("./service-stateful-wire-codec");
|
|
13
|
+
const ACTOR_ID_DIGEST_MAX_BYTES = 0xffff;
|
|
14
|
+
exports.SHA256_DIGEST_BYTES = 32;
|
|
11
15
|
const RECOVERY_PACKET_NAME = '__zlink.actor.routed_join.recovery';
|
|
12
16
|
const RECOVERY_CONTENT_TYPE = 'application/x-zlink-actor-routed-join-recovery-v1';
|
|
13
17
|
const MAXIMUM_METADATA_BYTES = 256 * 1024;
|
|
14
18
|
const FRAMEWORK_METADATA_UPPER_BOUND_BYTES = 64 * 1024;
|
|
15
19
|
const ACCEPTED_JOURNAL_UPPER_BOUND_BYTES = 16 * 1024 * 1024;
|
|
16
20
|
const SNAPSHOT_APPLICATION_STATE_RESERVATION_BYTES = 64 * 1024 * 1024;
|
|
17
|
-
|
|
18
|
-
|
|
21
|
+
exports.RECREATE_RELOCATION_CONTENT_TYPE = 'application/vnd.zlink.actor-relocation.recreate';
|
|
22
|
+
exports.SNAPSHOT_RELOCATION_CONTENT_TYPE = 'application/vnd.zlink.actor-relocation.snapshot';
|
|
19
23
|
function canonicalActorJoinHandoffId(input) {
|
|
20
24
|
const actor = textBytes(input.actorId, 'actorId');
|
|
21
|
-
if (actor.byteLength >
|
|
25
|
+
if (actor.byteLength > ACTOR_ID_DIGEST_MAX_BYTES)
|
|
22
26
|
throw new RangeError('Actor id exceeds u16 bytes.');
|
|
23
27
|
const digest = (0, node_crypto_1.createHash)('sha256')
|
|
24
28
|
.update(Buffer.concat([
|
|
@@ -65,7 +69,7 @@ function encodeCanonicalActorJoinRecoverySavedWork(input) {
|
|
|
65
69
|
RelocationChecksumCrc32c: 0,
|
|
66
70
|
RelocationAggregateId: canonicalUuid(input.relocationId),
|
|
67
71
|
RelocationAggregateGeneration: 1n,
|
|
68
|
-
RelocationInventoryDigest: Buffer.alloc(
|
|
72
|
+
RelocationInventoryDigest: Buffer.alloc(exports.SHA256_DIGEST_BYTES).toString('base64'),
|
|
69
73
|
RequestContentType: requireText(input.requestContentType, 'Actor Join request content type'),
|
|
70
74
|
Request: '',
|
|
71
75
|
HandoffFrames: [],
|
|
@@ -258,14 +262,14 @@ function predictedRelocationPayloadBytes(requestBytes, relocationContentType) {
|
|
|
258
262
|
if (!Number.isSafeInteger(requestBytes) || requestBytes < 0) {
|
|
259
263
|
throw new RangeError('Actor Join request size is invalid.');
|
|
260
264
|
}
|
|
261
|
-
if (relocationContentType !== RECREATE_RELOCATION_CONTENT_TYPE &&
|
|
262
|
-
relocationContentType !== SNAPSHOT_RELOCATION_CONTENT_TYPE) {
|
|
265
|
+
if (relocationContentType !== exports.RECREATE_RELOCATION_CONTENT_TYPE &&
|
|
266
|
+
relocationContentType !== exports.SNAPSHOT_RELOCATION_CONTENT_TYPE) {
|
|
263
267
|
throw new TypeError('Actor Join relocation content type is invalid.');
|
|
264
268
|
}
|
|
265
269
|
return (FRAMEWORK_METADATA_UPPER_BOUND_BYTES +
|
|
266
270
|
ACCEPTED_JOURNAL_UPPER_BOUND_BYTES +
|
|
267
271
|
requestBytes +
|
|
268
|
-
(relocationContentType === SNAPSHOT_RELOCATION_CONTENT_TYPE
|
|
272
|
+
(relocationContentType === exports.SNAPSHOT_RELOCATION_CONTENT_TYPE
|
|
269
273
|
? SNAPSHOT_APPLICATION_STATE_RESERVATION_BYTES
|
|
270
274
|
: 0));
|
|
271
275
|
}
|
|
@@ -281,7 +285,7 @@ function requireText(value, name) {
|
|
|
281
285
|
return value;
|
|
282
286
|
}
|
|
283
287
|
function nonZeroU64(value, name) {
|
|
284
|
-
if (value < 1n || value >
|
|
288
|
+
if (value < 1n || value > stream_wire_1.UINT64_MAX)
|
|
285
289
|
throw new RangeError(`${name} is invalid.`);
|
|
286
290
|
return value;
|
|
287
291
|
}
|
|
@@ -293,7 +297,7 @@ function u16(value) {
|
|
|
293
297
|
return result;
|
|
294
298
|
}
|
|
295
299
|
function u64(value) {
|
|
296
|
-
if (value < 0n || value >
|
|
300
|
+
if (value < 0n || value > stream_wire_1.UINT64_MAX)
|
|
297
301
|
throw new RangeError('u64');
|
|
298
302
|
const result = Buffer.alloc(8);
|
|
299
303
|
result.writeBigUInt64BE(value);
|
|
@@ -317,7 +321,7 @@ function integer(value, name) {
|
|
|
317
321
|
if (typeof value !== 'string' || !/^\d+$/u.test(value))
|
|
318
322
|
throw new TypeError(`${name} is invalid.`);
|
|
319
323
|
const parsed = BigInt(value);
|
|
320
|
-
if (parsed >
|
|
324
|
+
if (parsed > stream_wire_1.UINT64_MAX)
|
|
321
325
|
throw new TypeError(`${name} exceeds u64.`);
|
|
322
326
|
return parsed;
|
|
323
327
|
}
|
|
@@ -8,27 +8,5 @@ export declare class EventLoopResourceStack {
|
|
|
8
8
|
own<T extends CloseableResource>(resource: T): T;
|
|
9
9
|
close(): Promise<void>;
|
|
10
10
|
}
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
export declare class EventLoopWorkQueues {
|
|
14
|
-
private readonly infrastructure;
|
|
15
|
-
private infrastructureHead;
|
|
16
|
-
private infrastructureCount;
|
|
17
|
-
private readonly application;
|
|
18
|
-
private applicationHead;
|
|
19
|
-
private applicationCount;
|
|
20
|
-
private infrastructureScheduled;
|
|
21
|
-
private applicationScheduled;
|
|
22
|
-
private accepting;
|
|
23
|
-
submitInfrastructure(task: EventLoopTask): boolean;
|
|
24
|
-
submitApplication(task: EventLoopTask): boolean;
|
|
25
|
-
stopAdmission(): void;
|
|
26
|
-
private scheduleInfrastructure;
|
|
27
|
-
private drainInfrastructure;
|
|
28
|
-
private scheduleApplication;
|
|
29
|
-
private drainApplication;
|
|
30
|
-
private takeInfrastructure;
|
|
31
|
-
private takeApplication;
|
|
32
|
-
private compactInfrastructure;
|
|
33
|
-
private compactApplication;
|
|
34
|
-
}
|
|
11
|
+
export declare function closeResources(resources: readonly CloseableResource[]): Promise<void>;
|
|
12
|
+
export declare function finishResourceCleanup(failures: readonly unknown[]): void;
|