@zlink-systems/framework 0.30.0 → 0.30.2
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/LICENSE +150 -68
- package/dist/.tsbuildinfo +1 -1
- package/dist/contracts/Actors/ZLinkActorClient.d.ts +2 -1
- package/dist/contracts/Channels/Calls.d.ts +2 -1
- package/dist/contracts/Common/ZLinkEncodedPayload.d.ts +6 -0
- package/dist/contracts/Common/ZLinkEncodedPayload.js +18 -3
- package/dist/contracts/Common/ZLinkMessageMetadata.js +11 -5
- package/dist/contracts/Common/encoded-payload-storage.d.ts +1 -1
- package/dist/contracts/Common/encoded-payload-storage.js +5 -2
- package/dist/contracts/Configuration/Builders.d.ts +1 -1
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +2 -1
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +5 -1
- package/dist/contracts/Configuration/RegistrationBuilders.js +2 -2
- package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
- package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +2 -2
- package/dist/contracts/Handlers/Attributes.d.ts +5 -13
- package/dist/contracts/Handlers/Attributes.js +7 -11
- package/dist/contracts/Handlers/JsonContract.d.ts +2 -46
- package/dist/contracts/Handlers/JsonContract.js +4 -153
- package/dist/contracts/Locations/Rows.d.ts +2 -0
- package/dist/contracts/Spots/Contracts.d.ts +6 -1
- package/dist/contracts/Spots/ZLinkSpot.d.ts +3 -3
- package/dist/nest-integration.d.ts +1 -1
- package/dist/nest-integration.js +2 -1
- package/dist/runtime/abort.d.ts +5 -0
- package/dist/runtime/abort.js +10 -0
- package/dist/runtime/actors/actor-authority-publication.js +3 -2
- package/dist/runtime/actors/actor-client.d.ts +1 -2
- package/dist/runtime/actors/actor-client.js +52 -57
- package/dist/runtime/actors/actor-context.d.ts +2 -0
- package/dist/runtime/actors/actor-context.js +46 -9
- package/dist/runtime/actors/actor-handoff.d.ts +8 -4
- package/dist/runtime/actors/actor-handoff.js +219 -92
- package/dist/runtime/actors/actor-join-relocation.d.ts +3 -0
- package/dist/runtime/actors/actor-local-native-join.js +13 -12
- package/dist/runtime/actors/actor-mailbox.js +27 -1
- package/dist/runtime/actors/actor-remote-joiner.js +3 -1
- package/dist/runtime/actors/actor-remote-wire.js +15 -0
- package/dist/runtime/actors/actor-reply.d.ts +4 -0
- package/dist/runtime/actors/actor-reply.js +29 -0
- package/dist/runtime/actors/actor-routed-join-transport.d.ts +6 -2
- package/dist/runtime/actors/actor-routed-json-request.d.ts +2 -0
- package/dist/runtime/actors/actor-runtime-contracts.d.ts +2 -0
- package/dist/runtime/actors/actor-runtime-state.js +2 -20
- package/dist/runtime/actors/actor-source-transfer.d.ts +1 -17
- package/dist/runtime/actors/index.d.ts +8 -3
- package/dist/runtime/actors/index.js +55 -27
- package/dist/runtime/actors/session-disconnected-wire.d.ts +8 -0
- package/dist/runtime/actors/session-disconnected-wire.js +48 -0
- package/dist/runtime/actors/spot-actor-dispatch.js +2 -2
- package/dist/runtime/admission.d.ts +9 -1
- package/dist/runtime/admission.js +56 -23
- package/dist/runtime/application-jobs/application-ingress-record-owner.d.ts +6 -8
- package/dist/runtime/application-jobs/application-ingress-record-owner.js +39 -22
- package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +15 -1
- package/dist/runtime/application-jobs/application-job-queue-scope.js +61 -20
- package/dist/runtime/application-jobs/contracts.d.ts +12 -1
- package/dist/runtime/backend/contracts/index.d.ts +37 -12
- package/dist/runtime/backend/mesh-actor-session-node-adapter.js +2 -2
- package/dist/runtime/backend/mesh-completion-table.d.ts +9 -1
- package/dist/runtime/backend/mesh-completion-table.js +154 -49
- package/dist/runtime/backend/mesh-dispatch-pump.d.ts +28 -1
- package/dist/runtime/backend/mesh-dispatch-pump.js +208 -101
- package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +2 -2
- package/dist/runtime/backend/node/node-backend-adapter-support.js +16 -9
- package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +1 -1
- package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +5 -2
- package/dist/runtime/backend/node/node-raw-binding-port.js +124 -72
- package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +46 -13
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +181 -164
- package/dist/runtime/backend/node/node-socket-backend-adapter.d.ts +1 -1
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +11 -11
- package/dist/runtime/backend/raw-binding-port.d.ts +2 -2
- package/dist/runtime/backend/runtime-message.d.ts +1 -0
- package/dist/runtime/backend/runtime-message.js +5 -0
- package/dist/runtime/backend/runtime-values.d.ts +1 -0
- package/dist/runtime/backend/runtime-values.js +2 -1
- package/dist/runtime/channels/channel-clients.d.ts +2 -0
- package/dist/runtime/channels/channel-clients.js +75 -23
- package/dist/runtime/channels/channel-dispatch-pipeline.d.ts +25 -5
- package/dist/runtime/channels/channel-dispatch-pipeline.js +111 -56
- package/dist/runtime/channels/channel-dispatch-services.d.ts +1 -0
- package/dist/runtime/channels/channel-dispatch-services.js +45 -0
- package/dist/runtime/channels/channel-dispatchers.d.ts +4 -3
- package/dist/runtime/channels/channel-dispatchers.js +62 -54
- package/dist/runtime/channels/channel-envelope-inspection.d.ts +1 -2
- package/dist/runtime/channels/channel-envelope-inspection.js +1 -16
- package/dist/runtime/channels/channel-envelope.d.ts +2 -0
- package/dist/runtime/channels/channel-envelope.js +146 -28
- package/dist/runtime/channels/channel-outbound-operations.d.ts +2 -2
- package/dist/runtime/channels/channel-outbound-operations.js +8 -8
- package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +4 -3
- package/dist/runtime/channels/channel-runtime-lifecycle.js +19 -24
- package/dist/runtime/channels/channel-runtime-manager.d.ts +9 -8
- package/dist/runtime/channels/channel-runtime-manager.js +16 -16
- package/dist/runtime/channels/channel-transports.d.ts +18 -16
- package/dist/runtime/channels/channel-transports.js +77 -58
- package/dist/runtime/channels/client-server-location-runtime.js +5 -4
- package/dist/runtime/channels/dispatch-error-reporter.d.ts +2 -1
- package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
- package/dist/runtime/channels/fanout-location-runtime.d.ts +1 -1
- package/dist/runtime/channels/fanout-location-runtime.js +3 -3
- package/dist/runtime/channels/local-spot-route-transport.d.ts +1 -1
- package/dist/runtime/channels/local-spot-route-transport.js +2 -1
- package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +2 -2
- package/dist/runtime/channels/router-socket-spot-route-transport.js +4 -4
- package/dist/runtime/channels/source-spot-router.d.ts +2 -2
- package/dist/runtime/channels/source-spot-router.js +4 -4
- package/dist/runtime/channels/spot-node-route-transport.d.ts +2 -2
- package/dist/runtime/channels/spot-node-route-transport.js +4 -4
- package/dist/runtime/channels/spot-route-bridge-transport.d.ts +2 -2
- package/dist/runtime/channels/spot-route-bridge-transport.js +4 -4
- package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +5 -4
- package/dist/runtime/channels/spot-route-dispatch-strategy.js +18 -18
- package/dist/runtime/diagnostics/flow-context.js +19 -7
- package/dist/runtime/diagnostics/index.js +4 -9
- package/dist/runtime/diagnostics/message-flow.d.ts +8 -0
- package/dist/runtime/diagnostics/message-flow.js +35 -5
- package/dist/runtime/diagnostics/runtime-metrics.d.ts +2 -2
- package/dist/runtime/diagnostics/runtime-metrics.js +10 -8
- package/dist/runtime/execution/index.d.ts +4 -2
- package/dist/runtime/execution/index.js +33 -10
- package/dist/runtime/execution/serial-execution-queue.d.ts +5 -0
- package/dist/runtime/execution/serial-execution-queue.js +22 -2
- package/dist/runtime/execution/state-lane.d.ts +2 -0
- package/dist/runtime/execution/state-lane.js +5 -0
- package/dist/runtime/foundation/actor-join-recovery-codec.js +2 -2
- package/dist/runtime/foundation/durable-service-request.d.ts +14 -0
- package/dist/runtime/foundation/durable-service-request.js +98 -0
- package/dist/runtime/foundation/operation-identity.d.ts +1 -0
- package/dist/runtime/foundation/operation-identity.js +5 -1
- package/dist/runtime/foundation/operation-registry.d.ts +25 -1
- package/dist/runtime/foundation/operation-registry.js +86 -18
- package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +61 -8
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +486 -266
- package/dist/runtime/foundation/service-liveness-registry.d.ts +12 -1
- package/dist/runtime/foundation/service-liveness-registry.js +38 -0
- package/dist/runtime/foundation/service-mailbox.d.ts +7 -0
- package/dist/runtime/foundation/service-maintenance-runtime.js +1 -6
- package/dist/runtime/foundation/service-relocation-object-owner.d.ts +3 -3
- package/dist/runtime/foundation/service-relocation-object-owner.js +48 -34
- package/dist/runtime/foundation/service-relocation-runtime.d.ts +2 -0
- package/dist/runtime/foundation/service-relocation-runtime.js +20 -4
- package/dist/runtime/foundation/service-runtime-contracts.d.ts +10 -1
- package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +2 -1
- package/dist/runtime/foundation/service-stateful-registry.d.ts +5 -4
- package/dist/runtime/foundation/service-stateful-registry.js +24 -26
- package/dist/runtime/foundation/service-stateful-runtime.d.ts +75 -9
- package/dist/runtime/foundation/service-stateful-runtime.js +486 -218
- package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +14 -6
- package/dist/runtime/foundation/service-stateful-wire-codec.js +48 -27
- package/dist/runtime/foundation/service-topology-registry.d.ts +12 -2
- package/dist/runtime/foundation/service-topology-registry.js +61 -27
- package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +6 -1
- package/dist/runtime/foundation/service-wire-binary-primitives.js +27 -11
- package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
- package/dist/runtime/foundation/service-wire-constants.generated.js +1 -0
- package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +13 -3
- package/dist/runtime/foundation/service-wire-m6a-codec.js +189 -78
- package/dist/runtime/handlers/handler-instance-scope.d.ts +8 -0
- package/dist/runtime/handlers/handler-instance-scope.js +54 -11
- package/dist/runtime/host/actor-packet-relay.d.ts +6 -4
- package/dist/runtime/host/actor-packet-relay.js +59 -72
- package/dist/runtime/host/actor-placement-coordinator.js +25 -8
- package/dist/runtime/host/actor-runtime-options-factory.js +2 -2
- package/dist/runtime/host/actor-transfer-runtime.d.ts +7 -31
- package/dist/runtime/host/actor-transfer-runtime.js +85 -331
- package/dist/runtime/host/application-job-queue.d.ts +40 -7
- package/dist/runtime/host/application-job-queue.js +137 -42
- package/dist/runtime/host/entry-actor-runtime.d.ts +1 -0
- package/dist/runtime/host/entry-actor-runtime.js +3 -0
- package/dist/runtime/host/index.d.ts +12 -2
- package/dist/runtime/host/index.js +300 -202
- package/dist/runtime/host/location-runtime-owner.js +2 -6
- package/dist/runtime/host/mesh-router-resolver.d.ts +4 -0
- package/dist/runtime/host/mesh-router-resolver.js +14 -6
- package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -4
- package/dist/runtime/host/remote-bound-session-relay.js +73 -208
- package/dist/runtime/host/route-mesh-runtime.d.ts +2 -2
- package/dist/runtime/host/route-mesh-runtime.js +6 -4
- package/dist/runtime/host/runtime-shutdown.d.ts +1 -0
- package/dist/runtime/host/runtime-shutdown.js +3 -2
- package/dist/runtime/host/service-relocation-control.d.ts +1 -0
- package/dist/runtime/host/service-relocation-control.js +10 -4
- package/dist/runtime/host/service-relocation-host-runtime.d.ts +22 -14
- package/dist/runtime/host/service-relocation-host-runtime.js +754 -599
- package/dist/runtime/host/spot-address-transport.js +3 -2
- package/dist/runtime/host/spot-runtime-options-factory.js +16 -7
- package/dist/runtime/host/user-spot-creation-coordinator.js +33 -84
- package/dist/runtime/locations/actor-location-claims.d.ts +2 -2
- package/dist/runtime/locations/actor-location-claims.js +34 -19
- package/dist/runtime/locations/auto-connect-loop.d.ts +2 -0
- package/dist/runtime/locations/auto-connect-loop.js +22 -14
- package/dist/runtime/locations/auto-connect-reconciler.js +0 -6
- package/dist/runtime/locations/auto-connect-types.d.ts +0 -1
- package/dist/runtime/locations/descriptor-publication.d.ts +4 -0
- package/dist/runtime/locations/descriptor-publication.js +11 -0
- package/dist/runtime/locations/domain-store-contract.d.ts +1 -0
- package/dist/runtime/locations/in-memory-authority-store.d.ts +7 -1
- package/dist/runtime/locations/in-memory-authority-store.js +56 -19
- package/dist/runtime/locations/in-memory-location-store.js +1 -10
- package/dist/runtime/locations/index.d.ts +1 -0
- package/dist/runtime/locations/index.js +1 -0
- package/dist/runtime/locations/lease-tracker.js +1 -6
- package/dist/runtime/locations/lifecycle.d.ts +1 -2
- package/dist/runtime/locations/lifecycle.js +2 -5
- package/dist/runtime/locations/location-store-repository.d.ts +51 -1
- package/dist/runtime/locations/location-store-repository.js +363 -139
- package/dist/runtime/locations/relocation-blob.d.ts +18 -1
- package/dist/runtime/locations/relocation-blob.js +52 -1
- package/dist/runtime/locations/request-source-resolver.d.ts +37 -0
- package/dist/runtime/locations/request-source-resolver.js +80 -0
- package/dist/runtime/locations/resolvers.js +1 -1
- package/dist/runtime/locations/runtime.d.ts +7 -3
- package/dist/runtime/locations/runtime.js +61 -53
- package/dist/runtime/messaging/framework-json-v1.d.ts +4 -6
- package/dist/runtime/messaging/framework-json-v1.js +38 -294
- package/dist/runtime/messaging/packet-name.d.ts +1 -1
- package/dist/runtime/messaging/packet-name.js +8 -24
- package/dist/runtime/messaging/payload-codec.d.ts +7 -1
- package/dist/runtime/messaging/payload-codec.js +7 -6
- package/dist/runtime/messaging/request-result.d.ts +2 -0
- package/dist/runtime/messaging/request-result.js +57 -0
- package/dist/runtime/messaging/submission-result.d.ts +1 -0
- package/dist/runtime/messaging/submission-result.js +5 -2
- package/dist/runtime/protocol/service_wire_codec.generated.d.ts +34 -1
- package/dist/runtime/protocol/service_wire_codec.generated.js +229 -0
- package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +16 -1
- package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +37 -8
- package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +7 -2
- package/dist/runtime/spots/formal-remote-actor-admission-registry.js +36 -21
- package/dist/runtime/spots/index.d.ts +21 -11
- package/dist/runtime/spots/index.js +243 -178
- package/dist/runtime/spots/spot-activation-registry.d.ts +4 -2
- package/dist/runtime/spots/spot-activation-registry.js +21 -11
- package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
- package/dist/runtime/spots/spot-activation-state.js +7 -7
- package/dist/runtime/spots/spot-activation.d.ts +7 -3
- package/dist/runtime/spots/spot-activation.js +140 -52
- package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -0
- package/dist/runtime/spots/spot-actor-admission-coordinator.js +13 -22
- package/dist/runtime/spots/spot-actor-membership.d.ts +0 -1
- package/dist/runtime/spots/spot-actor-membership.js +0 -8
- package/dist/runtime/spots/spot-actor-packet-dispatch.js +33 -8
- package/dist/runtime/spots/spot-actor-packet-drain.js +5 -33
- package/dist/runtime/spots/spot-entry-activation.d.ts +2 -0
- package/dist/runtime/spots/spot-entry-activation.js +20 -11
- package/dist/runtime/spots/spot-handler-registry.d.ts +7 -4
- package/dist/runtime/spots/spot-handler-registry.js +24 -10
- package/dist/runtime/spots/spot-manager-internal-contracts.d.ts +2 -2
- package/dist/runtime/spots/spot-manager-public.js +2 -2
- package/dist/runtime/spots/spot-node-autoconnect.d.ts +2 -1
- package/dist/runtime/spots/spot-node-autoconnect.js +22 -42
- package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -2
- package/dist/runtime/spots/spot-node-runtime-manager.js +115 -50
- package/dist/runtime/spots/spot-outbound.d.ts +3 -0
- package/dist/runtime/spots/spot-outbound.js +27 -18
- package/dist/runtime/spots/spot-remote-codec.js +5 -1
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +1 -0
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +1 -1
- package/dist/runtime/spots/spot-runtime-ports.d.ts +1 -1
- package/dist/runtime/spots/spot-serial-executor.d.ts +10 -0
- package/dist/runtime/spots/spot-serial-executor.js +61 -8
- package/dist/runtime/spots/spot-serial-turn-executor.js +19 -2
- package/dist/runtime/spots/spot-subscription-dispatch.js +1 -4
- package/dist/runtime/spots/spot-timer.d.ts +57 -5
- package/dist/runtime/spots/spot-timer.js +288 -103
- package/dist/runtime/streams/actor-session-binding-registry.d.ts +42 -11
- package/dist/runtime/streams/actor-session-binding-registry.js +165 -48
- package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +8 -4
- package/dist/runtime/streams/bound-actor-relay-sender.d.ts +2 -1
- package/dist/runtime/streams/bound-actor-relay-sender.js +15 -8
- package/dist/runtime/streams/bound-session-service.d.ts +1 -1
- package/dist/runtime/streams/bound-session-service.js +6 -11
- package/dist/runtime/streams/index.d.ts +3 -2
- package/dist/runtime/streams/index.js +6 -4
- package/dist/runtime/streams/managed-stream.js +3 -2
- package/dist/runtime/streams/native-fallback-bound-session.js +8 -73
- package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -8
- package/dist/runtime/streams/session-actor-coordinator.js +15 -32
- package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +3 -10
- package/dist/runtime/streams/stream-session-runtime.d.ts +1 -1
- package/dist/runtime/streams/stream-session-runtime.js +14 -31
- package/dist/runtime/workers/index.js +1 -1
- package/package.json +3 -3
- package/src/contracts/Actors/ZLinkActorClient.ts +2 -1
- package/src/contracts/Channels/Calls.ts +2 -1
- package/src/contracts/Common/ZLinkEncodedPayload.ts +24 -4
- package/src/contracts/Common/ZLinkMessageMetadata.ts +13 -8
- package/src/contracts/Common/encoded-payload-storage.ts +6 -3
- package/src/contracts/Configuration/Builders.ts +4 -1
- package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +7 -2
- package/src/contracts/Configuration/RegistrationBuilders.ts +6 -2
- package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
- package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +2 -1
- package/src/contracts/Handlers/Attributes.ts +14 -21
- package/src/contracts/Handlers/JsonContract.ts +8 -216
- package/src/contracts/Locations/Rows.ts +2 -0
- package/src/contracts/Spots/Contracts.ts +10 -1
- package/src/contracts/Spots/ZLinkSpot.ts +3 -3
- package/src/nest-integration.ts +1 -0
- package/src/runtime/abort.ts +12 -0
- package/src/runtime/actors/actor-authority-publication.ts +3 -2
- package/src/runtime/actors/actor-client.ts +100 -85
- package/src/runtime/actors/actor-context.ts +49 -9
- package/src/runtime/actors/actor-handoff.ts +291 -110
- package/src/runtime/actors/actor-join-relocation.ts +3 -0
- package/src/runtime/actors/actor-local-native-join.ts +21 -26
- package/src/runtime/actors/actor-mailbox.ts +40 -2
- package/src/runtime/actors/actor-remote-joiner.ts +6 -1
- package/src/runtime/actors/actor-remote-wire.ts +17 -0
- package/src/runtime/actors/actor-reply.ts +42 -0
- package/src/runtime/actors/actor-routed-join-transport.ts +14 -4
- package/src/runtime/actors/actor-routed-json-request.ts +10 -2
- package/src/runtime/actors/actor-runtime-contracts.ts +2 -0
- package/src/runtime/actors/actor-runtime-state.ts +2 -20
- package/src/runtime/actors/actor-source-transfer.ts +1 -34
- package/src/runtime/actors/index.ts +60 -32
- package/src/runtime/actors/session-disconnected-wire.ts +66 -0
- package/src/runtime/actors/spot-actor-dispatch.ts +4 -2
- package/src/runtime/admission.ts +69 -21
- package/src/runtime/application-jobs/application-ingress-record-owner.ts +41 -25
- package/src/runtime/application-jobs/application-job-queue-scope.ts +83 -22
- package/src/runtime/application-jobs/contracts.ts +16 -1
- package/src/runtime/backend/contracts/index.ts +92 -18
- package/src/runtime/backend/mesh-actor-session-node-adapter.ts +5 -3
- package/src/runtime/backend/mesh-completion-table.ts +160 -57
- package/src/runtime/backend/mesh-dispatch-pump.ts +237 -108
- package/src/runtime/backend/node/node-backend-adapter-support.ts +17 -8
- package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +12 -2
- package/src/runtime/backend/node/node-raw-binding-port.ts +148 -85
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +315 -201
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +26 -11
- package/src/runtime/backend/raw-binding-port.ts +7 -2
- package/src/runtime/backend/runtime-message.ts +6 -0
- package/src/runtime/backend/runtime-values.ts +1 -0
- package/src/runtime/channels/channel-clients.ts +132 -58
- package/src/runtime/channels/channel-dispatch-pipeline.ts +198 -114
- package/src/runtime/channels/channel-dispatch-services.ts +69 -1
- package/src/runtime/channels/channel-dispatchers.ts +136 -90
- package/src/runtime/channels/channel-envelope-inspection.ts +2 -16
- package/src/runtime/channels/channel-envelope.ts +225 -31
- package/src/runtime/channels/channel-outbound-operations.ts +22 -8
- package/src/runtime/channels/channel-runtime-lifecycle.ts +13 -13
- package/src/runtime/channels/channel-runtime-manager.ts +41 -17
- package/src/runtime/channels/channel-transports.ts +171 -112
- package/src/runtime/channels/client-server-location-runtime.ts +11 -10
- package/src/runtime/channels/dispatch-error-reporter.ts +4 -2
- package/src/runtime/channels/fanout-location-runtime.ts +17 -9
- package/src/runtime/channels/local-spot-route-transport.ts +3 -1
- package/src/runtime/channels/router-socket-spot-route-transport.ts +13 -4
- package/src/runtime/channels/source-spot-router.ts +8 -4
- package/src/runtime/channels/spot-node-route-transport.ts +8 -4
- package/src/runtime/channels/spot-route-bridge-transport.ts +6 -4
- package/src/runtime/channels/spot-route-dispatch-strategy.ts +47 -18
- package/src/runtime/diagnostics/flow-context.ts +20 -7
- package/src/runtime/diagnostics/index.ts +1 -7
- package/src/runtime/diagnostics/message-flow.ts +47 -9
- package/src/runtime/diagnostics/runtime-metrics.ts +12 -10
- package/src/runtime/execution/index.ts +40 -14
- package/src/runtime/execution/serial-execution-queue.ts +33 -4
- package/src/runtime/execution/state-lane.ts +7 -0
- package/src/runtime/foundation/actor-join-recovery-codec.ts +2 -2
- package/src/runtime/foundation/durable-service-request.ts +137 -0
- package/src/runtime/foundation/operation-identity.ts +5 -1
- package/src/runtime/foundation/operation-registry.ts +98 -20
- package/src/runtime/foundation/raw-service-mesh-runtime.ts +704 -336
- package/src/runtime/foundation/service-liveness-registry.ts +39 -0
- package/src/runtime/foundation/service-mailbox.ts +8 -0
- package/src/runtime/foundation/service-maintenance-runtime.ts +1 -8
- package/src/runtime/foundation/service-relocation-object-owner.ts +55 -36
- package/src/runtime/foundation/service-relocation-runtime.ts +25 -4
- package/src/runtime/foundation/service-runtime-contracts.ts +19 -2
- package/src/runtime/foundation/service-session-binding-ingress-port.ts +2 -1
- package/src/runtime/foundation/service-stateful-registry.ts +38 -35
- package/src/runtime/foundation/service-stateful-runtime.ts +732 -275
- package/src/runtime/foundation/service-stateful-wire-codec.ts +49 -16
- package/src/runtime/foundation/service-topology-registry.ts +91 -36
- package/src/runtime/foundation/service-wire-binary-primitives.ts +35 -12
- package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
- package/src/runtime/foundation/service-wire-m6a-codec.ts +231 -76
- package/src/runtime/handlers/handler-instance-scope.ts +67 -16
- package/src/runtime/host/actor-packet-relay.ts +113 -94
- package/src/runtime/host/actor-placement-coordinator.ts +31 -8
- package/src/runtime/host/actor-runtime-options-factory.ts +13 -2
- package/src/runtime/host/actor-transfer-runtime.ts +104 -430
- package/src/runtime/host/application-job-queue.ts +160 -41
- package/src/runtime/host/entry-actor-runtime.ts +4 -0
- package/src/runtime/host/index.ts +473 -271
- package/src/runtime/host/location-runtime-owner.ts +2 -6
- package/src/runtime/host/mesh-router-resolver.ts +13 -5
- package/src/runtime/host/remote-bound-session-relay.ts +88 -271
- package/src/runtime/host/route-mesh-runtime.ts +12 -6
- package/src/runtime/host/runtime-shutdown.ts +15 -4
- package/src/runtime/host/service-relocation-control.ts +11 -5
- package/src/runtime/host/service-relocation-host-runtime.ts +1092 -759
- package/src/runtime/host/spot-address-transport.ts +4 -2
- package/src/runtime/host/spot-runtime-options-factory.ts +20 -7
- package/src/runtime/host/user-spot-creation-coordinator.ts +41 -100
- package/src/runtime/locations/actor-location-claims.ts +52 -30
- package/src/runtime/locations/auto-connect-loop.ts +22 -14
- package/src/runtime/locations/auto-connect-reconciler.ts +0 -6
- package/src/runtime/locations/auto-connect-types.ts +0 -1
- package/src/runtime/locations/descriptor-publication.ts +7 -0
- package/src/runtime/locations/domain-store-contract.ts +5 -0
- package/src/runtime/locations/in-memory-authority-store.ts +85 -23
- package/src/runtime/locations/in-memory-location-store.ts +1 -12
- package/src/runtime/locations/index.ts +1 -0
- package/src/runtime/locations/lease-tracker.ts +2 -9
- package/src/runtime/locations/lifecycle.ts +8 -26
- package/src/runtime/locations/location-store-repository.ts +628 -152
- package/src/runtime/locations/relocation-blob.ts +75 -1
- package/src/runtime/locations/request-source-resolver.ts +138 -0
- package/src/runtime/locations/resolvers.ts +2 -2
- package/src/runtime/locations/runtime.ts +98 -64
- package/src/runtime/messaging/framework-json-v1.ts +5 -325
- package/src/runtime/messaging/packet-name.ts +5 -25
- package/src/runtime/messaging/payload-codec.ts +8 -11
- package/src/runtime/messaging/request-result.ts +62 -0
- package/src/runtime/messaging/submission-result.ts +5 -1
- package/src/runtime/protocol/service_wire_codec.generated.ts +218 -5
- package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +16 -13
- package/src/runtime/spots/formal-remote-actor-admission-registry.ts +46 -25
- package/src/runtime/spots/index.ts +389 -283
- package/src/runtime/spots/spot-activation-registry.ts +25 -13
- package/src/runtime/spots/spot-activation-state.ts +12 -19
- package/src/runtime/spots/spot-activation.ts +198 -96
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +25 -55
- package/src/runtime/spots/spot-actor-membership.ts +0 -15
- package/src/runtime/spots/spot-actor-packet-dispatch.ts +56 -11
- package/src/runtime/spots/spot-actor-packet-drain.ts +9 -52
- package/src/runtime/spots/spot-entry-activation.ts +33 -21
- package/src/runtime/spots/spot-handler-registry.ts +56 -12
- package/src/runtime/spots/spot-manager-internal-contracts.ts +2 -2
- package/src/runtime/spots/spot-manager-public.ts +2 -2
- package/src/runtime/spots/spot-node-autoconnect.ts +28 -47
- package/src/runtime/spots/spot-node-runtime-manager.ts +197 -67
- package/src/runtime/spots/spot-outbound.ts +39 -19
- package/src/runtime/spots/spot-remote-codec.ts +9 -2
- package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +2 -1
- package/src/runtime/spots/spot-runtime-ports.ts +1 -1
- package/src/runtime/spots/spot-serial-executor.ts +97 -25
- package/src/runtime/spots/spot-serial-turn-executor.ts +22 -3
- package/src/runtime/spots/spot-subscription-dispatch.ts +1 -4
- package/src/runtime/spots/spot-timer.ts +418 -158
- package/src/runtime/streams/actor-session-binding-registry.ts +236 -64
- package/src/runtime/streams/actor-session-binding-runtime-owner.ts +16 -8
- package/src/runtime/streams/bound-actor-relay-sender.ts +23 -9
- package/src/runtime/streams/bound-session-service.ts +7 -10
- package/src/runtime/streams/index.ts +12 -6
- package/src/runtime/streams/managed-stream.ts +4 -2
- package/src/runtime/streams/native-fallback-bound-session.ts +14 -103
- package/src/runtime/streams/session-actor-coordinator.ts +39 -88
- package/src/runtime/streams/stream-binding-runtime-ports.ts +3 -9
- package/src/runtime/streams/stream-session-runtime.ts +13 -34
- package/src/runtime/workers/index.ts +1 -1
|
@@ -21,6 +21,7 @@ class ZLinkSpotSerialExecutor {
|
|
|
21
21
|
executionBarrier;
|
|
22
22
|
closing = false;
|
|
23
23
|
closePromise;
|
|
24
|
+
preparation;
|
|
24
25
|
constructor(spotSerial, executionMode, sourceSpotId, actorOptions) {
|
|
25
26
|
this.spotSerial = spotSerial;
|
|
26
27
|
this.executionMode = executionMode;
|
|
@@ -38,6 +39,49 @@ class ZLinkSpotSerialExecutor {
|
|
|
38
39
|
for (const serial of this.timerSerials.values())
|
|
39
40
|
serial.setExecutionBarrier(barrier);
|
|
40
41
|
}
|
|
42
|
+
get isPreparing() {
|
|
43
|
+
return this.preparation !== undefined;
|
|
44
|
+
}
|
|
45
|
+
beginPreparation(kind = 'activation') {
|
|
46
|
+
if (this.preparation !== undefined || this.executionBarrier === undefined)
|
|
47
|
+
throw new Error('Activation preparation requires one unowned execution barrier.');
|
|
48
|
+
const barrier = this.executionBarrier;
|
|
49
|
+
const seal = barrier.seal(kind);
|
|
50
|
+
let complete;
|
|
51
|
+
const terminal = new Promise((resolve) => {
|
|
52
|
+
complete = resolve;
|
|
53
|
+
});
|
|
54
|
+
// The staging seal itself owns target preparation. No normal preparation
|
|
55
|
+
// item is admitted in addition to this lifecycle owner.
|
|
56
|
+
const execution = this.spotSerial.executeControlLifecycleOperation(async () => {
|
|
57
|
+
const finish = await terminal;
|
|
58
|
+
await finish?.();
|
|
59
|
+
}, {
|
|
60
|
+
canExecuteApplication: (record) => record.context === undefined || !barrier.isCurrent(seal)
|
|
61
|
+
});
|
|
62
|
+
this.preparation = { seal, complete, execution };
|
|
63
|
+
}
|
|
64
|
+
openPreparationAdmission() {
|
|
65
|
+
if (this.preparation !== undefined)
|
|
66
|
+
this.executionBarrier.abort(this.preparation.seal);
|
|
67
|
+
}
|
|
68
|
+
async finishPreparation(terminal) {
|
|
69
|
+
const preparation = this.preparation;
|
|
70
|
+
if (preparation === undefined) {
|
|
71
|
+
await terminal?.();
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
preparation.complete(terminal);
|
|
75
|
+
try {
|
|
76
|
+
await preparation.execution;
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
if (this.preparation === preparation) {
|
|
80
|
+
this.executionBarrier.abort(preparation.seal);
|
|
81
|
+
this.preparation = undefined;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
41
85
|
executeSpot(operation, workOptions) {
|
|
42
86
|
return this.spotSerial.execute(operation, workOptions);
|
|
43
87
|
}
|
|
@@ -45,17 +89,26 @@ class ZLinkSpotSerialExecutor {
|
|
|
45
89
|
const serial = this.actorSerial(actorId);
|
|
46
90
|
return this.actorExecutor(actorId).execute(() => operation(serial), workOptions);
|
|
47
91
|
}
|
|
48
|
-
|
|
49
|
-
|
|
92
|
+
executeTimer(timerName, operation, workOptions) {
|
|
93
|
+
return this.timerSerial(timerName).post(operation, workOptions);
|
|
94
|
+
}
|
|
95
|
+
/** Admits held packets through the same Actor FIFO as ordinary ingress. */
|
|
96
|
+
admitActorPacketPrefix(actorId, records, dispatch) {
|
|
50
97
|
const serial = this.actorSerial(actorId);
|
|
51
|
-
|
|
52
|
-
operation: (executeChild) => record.
|
|
98
|
+
const terminals = this.actorExecutor(actorId).admitDurablePrefix(records.map((record) => ({
|
|
99
|
+
operation: (executeChild) => record.drain((parts, returnResponse, remoteBoundSessionTarget, fallbackActorRef) => executeChild(() => dispatch(serial, parts, returnResponse, remoteBoundSessionTarget, fallbackActorRef))),
|
|
53
100
|
preparation: record.preparation,
|
|
54
|
-
workOptions: record.
|
|
101
|
+
workOptions: { payloadBytes: record.payloadBytes, onWithdrawable: record.onWithdrawable }
|
|
55
102
|
})));
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
103
|
+
const terminal = Promise.allSettled(terminals).then((outcomes) => {
|
|
104
|
+
const errors = outcomes.flatMap((outcome) => outcome.status === 'rejected' ? [outcome.reason] : []);
|
|
105
|
+
if (errors.length === 1)
|
|
106
|
+
throw errors[0];
|
|
107
|
+
if (errors.length > 1) {
|
|
108
|
+
throw new AggregateError(errors, `Actor '${actorId}' durable prefix replay failed.`);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
return { terminal };
|
|
59
112
|
}
|
|
60
113
|
isTimerExecuting(timerName) {
|
|
61
114
|
if (this.executionMode === contracts_1.ZLinkUserSpotExecutionMode.SpotWide) {
|
|
@@ -94,7 +94,7 @@ class ZLinkSpotSerialTurnExecutor {
|
|
|
94
94
|
* this so they never run inline inside another callback's turn.
|
|
95
95
|
*/
|
|
96
96
|
post(operation, workOptions) {
|
|
97
|
-
return this.enqueueApplicationTurn(operation, workOptions);
|
|
97
|
+
return this.enqueueApplicationTurn(operation, workOptions, undefined, true);
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
100
100
|
* Queues a one-way turn in serial order. Handler completion is reported
|
|
@@ -181,11 +181,22 @@ class ZLinkSpotSerialTurnExecutor {
|
|
|
181
181
|
visitPendingApplication(visitor) {
|
|
182
182
|
this.scheduler.visitPendingApplication(visitor);
|
|
183
183
|
}
|
|
184
|
-
async enqueueApplicationTurn(operation, workOptions = {}, replay) {
|
|
184
|
+
async enqueueApplicationTurn(operation, workOptions = {}, replay, retainWhilePreparing = false) {
|
|
185
185
|
this.lastActivityAtMs = performance.now();
|
|
186
186
|
let barrierClaim;
|
|
187
187
|
try {
|
|
188
188
|
const entry = this.executionBarrier?.enter();
|
|
189
|
+
if (entry instanceof Promise &&
|
|
190
|
+
retainWhilePreparing &&
|
|
191
|
+
this.scheduler.retainsApplicationForLifecycle) {
|
|
192
|
+
try {
|
|
193
|
+
return await this.submitQueuedTurn(operation, workOptions, entry);
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
(await entry).release();
|
|
197
|
+
throw error;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
189
200
|
barrierClaim = entry instanceof Promise ? await entry : entry;
|
|
190
201
|
const refusal = this.applicationAdmissionRefusal(replay !== undefined);
|
|
191
202
|
if (refusal !== undefined)
|
|
@@ -224,6 +235,12 @@ class ZLinkSpotSerialTurnExecutor {
|
|
|
224
235
|
: this.scheduler.submit(boundOperation, options, barrierClaim);
|
|
225
236
|
}
|
|
226
237
|
runQueuedRecord(record) {
|
|
238
|
+
if (record.context instanceof Promise) {
|
|
239
|
+
return record.context.then((claim) => {
|
|
240
|
+
Object.assign(record, { context: claim });
|
|
241
|
+
return this.runQueuedRecord(record);
|
|
242
|
+
});
|
|
243
|
+
}
|
|
227
244
|
const context = record.context;
|
|
228
245
|
if (context?.replay !== undefined && record.operation === context.replay) {
|
|
229
246
|
context.release();
|
|
@@ -31,9 +31,6 @@ class ZLinkSpotSubscriptionDispatch {
|
|
|
31
31
|
}
|
|
32
32
|
const key = subscriptionKey(registration.channelName, registration.topic);
|
|
33
33
|
const existing = this.handlers.get(key) ?? [];
|
|
34
|
-
if (existing.some((entry) => entry.handlerType === registration.handlerType)) {
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
34
|
existing.push(registration);
|
|
38
35
|
this.handlers.set(key, existing);
|
|
39
36
|
this.options.nativeSpot.setSubscription(registration.channelName, registration.topic);
|
|
@@ -133,7 +130,7 @@ class ZLinkSpotSubscriptionDispatch {
|
|
|
133
130
|
const subSource = message.routingId === null ? undefined : String(message.routingId);
|
|
134
131
|
const inboundFlow = (0, flow_context_1.createInboundFlow)(envelope.header.flowId, envelope.header.flowOrigin, this.options.dispatchErrors?.flow.flowCreationEnabled() ?? true, undefined);
|
|
135
132
|
try {
|
|
136
|
-
await this.options.serial.
|
|
133
|
+
await this.options.serial.post(() => (0, flow_context_1.runWithFlow)(inboundFlow, async () => {
|
|
137
134
|
// Payload deserialization belongs to the Spot serial turn. Queue
|
|
138
135
|
// admission and execution authority therefore precede this work.
|
|
139
136
|
const event = (0, channel_envelope_1.decodeChannelPayload)(envelope, this.channelCodecs());
|
|
@@ -27,6 +27,12 @@ export interface ZLinkTimerRelocationState {
|
|
|
27
27
|
readonly nextDueAtUnixMs: number;
|
|
28
28
|
readonly pendingTicks: readonly ZLinkTimerRelocationPendingTick[];
|
|
29
29
|
}
|
|
30
|
+
export interface ZLinkManagedTimerStart {
|
|
31
|
+
/** Created paused; the owner starts it with `resume()`. */
|
|
32
|
+
readonly paused?: boolean;
|
|
33
|
+
/** Relocated logical schedule the timer continues from. */
|
|
34
|
+
readonly cursor?: ZLinkTimerRelocationState;
|
|
35
|
+
}
|
|
30
36
|
export interface ZLinkTimerRelocationPendingTick {
|
|
31
37
|
readonly deliveryIndex: bigint;
|
|
32
38
|
readonly scheduledIndex: bigint;
|
|
@@ -44,23 +50,58 @@ export declare class ZLinkSpotTimerRegistry {
|
|
|
44
50
|
private readonly timers;
|
|
45
51
|
private readonly generations;
|
|
46
52
|
private executionBarrier;
|
|
53
|
+
/** Frozen from the source capture or the target restore until abort or Ready. */
|
|
54
|
+
private frozen;
|
|
55
|
+
/**
|
|
56
|
+
* The lifecycle owner opens this window around the target's Configure and
|
|
57
|
+
* pre-Ready OnInitialize only (Spot timer §1). A registration captures it at
|
|
58
|
+
* the call, so a registration started inside the window reattaches a
|
|
59
|
+
* restored key even when its asynchronous part finishes after the window.
|
|
60
|
+
*/
|
|
61
|
+
private initializing;
|
|
62
|
+
/**
|
|
63
|
+
* Handler constructors the target Spot announced with `addTimer(...)` during
|
|
64
|
+
* Configure. Together with `handlers.addTimerHandler(...)` they form the
|
|
65
|
+
* table that resolves a restored timer's handler by name.
|
|
66
|
+
*/
|
|
67
|
+
private readonly configureTimerHandlers;
|
|
68
|
+
private relocationHandlersResolved;
|
|
47
69
|
constructor(_metrics?: import('../diagnostics').ZLinkRuntimeMetrics, flowCreationEnabled?: () => boolean, executionSerialForTimer?: ((name: string, fallback: ZLinkSpotSerialTurnExecutor) => ZLinkSpotSerialTurnExecutor) | undefined, executionAllowed?: () => boolean, executeTimer?: (<T>(name: string, operation: () => Promise<T> | T) => Promise<T>) | undefined, isTimerExecuting?: ((name: string) => boolean) | undefined, clock?: ZLinkTimerClock | undefined);
|
|
48
70
|
setExecutionBarrier(barrier: ZLinkExecutionBarrier): void;
|
|
49
71
|
get hasActiveTimers(): boolean;
|
|
50
72
|
add<TSpot extends ZLinkTimerOwnerSpot, THandler extends ZLinkSpotTimerHandler<TSpot>>(name: string, periodMs: number, options: ZLinkTimerOptions | undefined, handlerType: Type<THandler>, serial: ZLinkSpotSerialTurnExecutor, spot: TSpot, providerResolver?: ZLinkProviderResolver, signal?: AbortSignal, reportFailure?: ZLinkTimerFailureReporter): Promise<ZLinkTimer>;
|
|
73
|
+
/**
|
|
74
|
+
* Stages the source payload on a fresh relocation target before Configure.
|
|
75
|
+
* The restored registrations keep their schedule and stay frozen until Ready.
|
|
76
|
+
*/
|
|
77
|
+
stageRelocation(states: readonly ZLinkTimerRelocationState[]): void;
|
|
78
|
+
/** Runs one relocation-target initialization callback inside the reattach window. */
|
|
79
|
+
runRelocationInitialization<T>(operation: () => Promise<T> | T): Promise<T>;
|
|
80
|
+
/**
|
|
81
|
+
* After Configure, resolves every restored timer's handler constructor by
|
|
82
|
+
* name among the constructors the Spot announced in Configure: `addTimer(...)`
|
|
83
|
+
* there or `handlers.addTimerHandler(...)`. A restored key that Configure did
|
|
84
|
+
* not reattach is registered with the resolved constructor so it survives
|
|
85
|
+
* Ready without re-registration. No match or more than one match fails the
|
|
86
|
+
* target restore.
|
|
87
|
+
*/
|
|
88
|
+
resolveRelocationHandlers(declared: readonly Type[], register: (name: string, periodMs: number, handlerType: Type) => Promise<unknown>): Promise<void>;
|
|
89
|
+
/** Ready: starts the restored and newly registered timers. */
|
|
90
|
+
publishRelocation(): Promise<void>;
|
|
51
91
|
dispose(): Promise<void>;
|
|
52
92
|
captureRelocation(): Promise<readonly ZLinkTimerRelocationState[]>;
|
|
53
|
-
|
|
54
|
-
abortRelocation(
|
|
93
|
+
/** Source abort: the captured timers continue from their own unchanged cursor. */
|
|
94
|
+
abortRelocation(): void;
|
|
55
95
|
commitRelocation(): Promise<void>;
|
|
56
96
|
cancel(name: string, generation: bigint, timer: ZLinkManagedTimer, signal?: AbortSignal): Promise<void>;
|
|
97
|
+
private createTimer;
|
|
57
98
|
private prepareAddCore;
|
|
58
99
|
private completeAddCore;
|
|
59
100
|
private cancelCore;
|
|
60
101
|
}
|
|
61
102
|
export declare class ZLinkManagedTimer implements ZLinkTimer {
|
|
62
103
|
private readonly name;
|
|
63
|
-
|
|
104
|
+
readonly periodMs: number;
|
|
64
105
|
private readonly options;
|
|
65
106
|
private readonly onTick;
|
|
66
107
|
private readonly onFailure?;
|
|
@@ -71,24 +112,35 @@ export declare class ZLinkManagedTimer implements ZLinkTimer {
|
|
|
71
112
|
private pausedForRelocation;
|
|
72
113
|
private startedAtMs;
|
|
73
114
|
private startedAtUnixMs;
|
|
115
|
+
/** DeliveryIndex and ScheduledIndex of the last completed tick. */
|
|
74
116
|
private deliveryIndex;
|
|
75
117
|
private lastScheduledIndex;
|
|
118
|
+
/**
|
|
119
|
+
* The selected tick whose callback has not completed (Spot timer §1). It is
|
|
120
|
+
* the only pending tick a relocation captures, and a restored timer delivers
|
|
121
|
+
* it before it selects another tick.
|
|
122
|
+
*/
|
|
123
|
+
private pendingScheduledIndex;
|
|
76
124
|
private timeout;
|
|
125
|
+
/** The dispatch in flight, from its timer callback until `completeFireCore`. */
|
|
77
126
|
private running;
|
|
78
127
|
private dispatchFailure;
|
|
79
128
|
private finalization;
|
|
80
|
-
constructor(name: string, periodMs: number, options: Required<ZLinkTimerOptions>, onTick: (tick: ZLinkTimerTick) => Promise<void>, onFailure?: ZLinkTimerFailureReporter | undefined, shouldWaitForRunningOnCancel?: () => boolean, clock?: ZLinkTimerClock);
|
|
129
|
+
constructor(name: string, periodMs: number, options: Required<ZLinkTimerOptions>, onTick: (tick: ZLinkTimerTick) => Promise<void>, onFailure?: ZLinkTimerFailureReporter | undefined, shouldWaitForRunningOnCancel?: () => boolean, clock?: ZLinkTimerClock, start?: ZLinkManagedTimerStart);
|
|
81
130
|
get isDisposed(): boolean;
|
|
82
131
|
cancel(_signal?: AbortSignal): Promise<void>;
|
|
83
132
|
dispose(): Promise<void>;
|
|
84
133
|
captureRelocation(handlerType?: string): Promise<ZLinkTimerRelocationState>;
|
|
85
|
-
|
|
134
|
+
/** Starts a timer created paused, or continues one paused by a relocation capture. */
|
|
135
|
+
resume(): void;
|
|
86
136
|
private scheduleNext;
|
|
87
137
|
private fire;
|
|
88
138
|
private cancelCore;
|
|
89
139
|
private completeFinalization;
|
|
90
140
|
private prepareCaptureCore;
|
|
91
141
|
private prepareFireCore;
|
|
142
|
+
/** The tick info of the pending tick at `scheduledIndex` after the completed cursor. */
|
|
143
|
+
private pendingTick;
|
|
92
144
|
private completeFireCore;
|
|
93
145
|
private selectScheduledIndex;
|
|
94
146
|
private elapsedMs;
|