actor-ts 0.9.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/CHANGELOG.md +885 -0
- package/LICENSE +201 -0
- package/README.md +269 -0
- package/dist/Actor.d.ts +49 -0
- package/dist/Actor.d.ts.map +1 -0
- package/dist/Actor.js +45 -0
- package/dist/Actor.js.map +1 -0
- package/dist/ActorContext.d.ts +171 -0
- package/dist/ActorContext.d.ts.map +1 -0
- package/dist/ActorContext.js +13 -0
- package/dist/ActorContext.js.map +1 -0
- package/dist/ActorPath.d.ts +23 -0
- package/dist/ActorPath.d.ts.map +1 -0
- package/dist/ActorPath.js +56 -0
- package/dist/ActorPath.js.map +1 -0
- package/dist/ActorRef.d.ts +54 -0
- package/dist/ActorRef.d.ts.map +1 -0
- package/dist/ActorRef.js +105 -0
- package/dist/ActorRef.js.map +1 -0
- package/dist/ActorSelection.d.ts +48 -0
- package/dist/ActorSelection.d.ts.map +1 -0
- package/dist/ActorSelection.js +84 -0
- package/dist/ActorSelection.js.map +1 -0
- package/dist/ActorSystem.d.ts +152 -0
- package/dist/ActorSystem.d.ts.map +1 -0
- package/dist/ActorSystem.js +248 -0
- package/dist/ActorSystem.js.map +1 -0
- package/dist/CoordinatedShutdown.d.ts +112 -0
- package/dist/CoordinatedShutdown.d.ts.map +1 -0
- package/dist/CoordinatedShutdown.js +252 -0
- package/dist/CoordinatedShutdown.js.map +1 -0
- package/dist/Dispatcher.d.ts +47 -0
- package/dist/Dispatcher.d.ts.map +1 -0
- package/dist/Dispatcher.js +90 -0
- package/dist/Dispatcher.js.map +1 -0
- package/dist/EventStream.d.ts +58 -0
- package/dist/EventStream.d.ts.map +1 -0
- package/dist/EventStream.js +74 -0
- package/dist/EventStream.js.map +1 -0
- package/dist/Extension.d.ts +45 -0
- package/dist/Extension.d.ts.map +1 -0
- package/dist/Extension.js +51 -0
- package/dist/Extension.js.map +1 -0
- package/dist/LogContext.d.ts +44 -0
- package/dist/LogContext.d.ts.map +1 -0
- package/dist/LogContext.js +87 -0
- package/dist/LogContext.js.map +1 -0
- package/dist/Logger.d.ts +57 -0
- package/dist/Logger.d.ts.map +1 -0
- package/dist/Logger.js +81 -0
- package/dist/Logger.js.map +1 -0
- package/dist/Props.d.ts +32 -0
- package/dist/Props.d.ts.map +1 -0
- package/dist/Props.js +27 -0
- package/dist/Props.js.map +1 -0
- package/dist/Router.d.ts +32 -0
- package/dist/Router.d.ts.map +1 -0
- package/dist/Router.js +78 -0
- package/dist/Router.js.map +1 -0
- package/dist/Scheduler.d.ts +25 -0
- package/dist/Scheduler.d.ts.map +1 -0
- package/dist/Scheduler.js +112 -0
- package/dist/Scheduler.js.map +1 -0
- package/dist/Supervision.d.ts +66 -0
- package/dist/Supervision.d.ts.map +1 -0
- package/dist/Supervision.js +75 -0
- package/dist/Supervision.js.map +1 -0
- package/dist/SystemMessages.d.ts +56 -0
- package/dist/SystemMessages.d.ts.map +1 -0
- package/dist/SystemMessages.js +71 -0
- package/dist/SystemMessages.js.map +1 -0
- package/dist/cache/Cache.d.ts +75 -0
- package/dist/cache/Cache.d.ts.map +1 -0
- package/dist/cache/Cache.js +10 -0
- package/dist/cache/Cache.js.map +1 -0
- package/dist/cache/CacheExtension.d.ts +44 -0
- package/dist/cache/CacheExtension.d.ts.map +1 -0
- package/dist/cache/CacheExtension.js +77 -0
- package/dist/cache/CacheExtension.js.map +1 -0
- package/dist/cache/InMemoryCache.d.ts +16 -0
- package/dist/cache/InMemoryCache.d.ts.map +1 -0
- package/dist/cache/InMemoryCache.js +86 -0
- package/dist/cache/InMemoryCache.js.map +1 -0
- package/dist/cache/MemcachedCache.d.ts +71 -0
- package/dist/cache/MemcachedCache.d.ts.map +1 -0
- package/dist/cache/MemcachedCache.js +243 -0
- package/dist/cache/MemcachedCache.js.map +1 -0
- package/dist/cache/RedisCache.d.ts +80 -0
- package/dist/cache/RedisCache.d.ts.map +1 -0
- package/dist/cache/RedisCache.js +194 -0
- package/dist/cache/RedisCache.js.map +1 -0
- package/dist/cache/index.d.ts +9 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +6 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cluster/Cluster.d.ts +251 -0
- package/dist/cluster/Cluster.d.ts.map +1 -0
- package/dist/cluster/Cluster.js +837 -0
- package/dist/cluster/Cluster.js.map +1 -0
- package/dist/cluster/ClusterBootstrap.d.ts +107 -0
- package/dist/cluster/ClusterBootstrap.d.ts.map +1 -0
- package/dist/cluster/ClusterBootstrap.js +184 -0
- package/dist/cluster/ClusterBootstrap.js.map +1 -0
- package/dist/cluster/ClusterClient.d.ts +112 -0
- package/dist/cluster/ClusterClient.d.ts.map +1 -0
- package/dist/cluster/ClusterClient.js +280 -0
- package/dist/cluster/ClusterClient.js.map +1 -0
- package/dist/cluster/ClusterClientReceptionist.d.ts +85 -0
- package/dist/cluster/ClusterClientReceptionist.d.ts.map +1 -0
- package/dist/cluster/ClusterClientReceptionist.js +159 -0
- package/dist/cluster/ClusterClientReceptionist.js.map +1 -0
- package/dist/cluster/ClusterEvents.d.ts +99 -0
- package/dist/cluster/ClusterEvents.d.ts.map +1 -0
- package/dist/cluster/ClusterEvents.js +124 -0
- package/dist/cluster/ClusterEvents.js.map +1 -0
- package/dist/cluster/FailureDetector.d.ts +32 -0
- package/dist/cluster/FailureDetector.d.ts.map +1 -0
- package/dist/cluster/FailureDetector.js +50 -0
- package/dist/cluster/FailureDetector.js.map +1 -0
- package/dist/cluster/Member.d.ts +38 -0
- package/dist/cluster/Member.d.ts.map +1 -0
- package/dist/cluster/Member.js +69 -0
- package/dist/cluster/Member.js.map +1 -0
- package/dist/cluster/NodeAddress.d.ts +24 -0
- package/dist/cluster/NodeAddress.d.ts.map +1 -0
- package/dist/cluster/NodeAddress.js +44 -0
- package/dist/cluster/NodeAddress.js.map +1 -0
- package/dist/cluster/PhiAccrualFailureDetector.d.ts +49 -0
- package/dist/cluster/PhiAccrualFailureDetector.d.ts.map +1 -0
- package/dist/cluster/PhiAccrualFailureDetector.js +139 -0
- package/dist/cluster/PhiAccrualFailureDetector.js.map +1 -0
- package/dist/cluster/Protocol.d.ts +151 -0
- package/dist/cluster/Protocol.d.ts.map +1 -0
- package/dist/cluster/Protocol.js +90 -0
- package/dist/cluster/Protocol.js.map +1 -0
- package/dist/cluster/RefCodec.d.ts +40 -0
- package/dist/cluster/RefCodec.d.ts.map +1 -0
- package/dist/cluster/RefCodec.js +134 -0
- package/dist/cluster/RefCodec.js.map +1 -0
- package/dist/cluster/RemoteActorRef.d.ts +22 -0
- package/dist/cluster/RemoteActorRef.d.ts.map +1 -0
- package/dist/cluster/RemoteActorRef.js +48 -0
- package/dist/cluster/RemoteActorRef.js.map +1 -0
- package/dist/cluster/Transport.d.ts +96 -0
- package/dist/cluster/Transport.d.ts.map +1 -0
- package/dist/cluster/Transport.js +299 -0
- package/dist/cluster/Transport.js.map +1 -0
- package/dist/cluster/downing/DowningProvider.d.ts +32 -0
- package/dist/cluster/downing/DowningProvider.d.ts.map +1 -0
- package/dist/cluster/downing/DowningProvider.js +5 -0
- package/dist/cluster/downing/DowningProvider.js.map +1 -0
- package/dist/cluster/downing/KeepMajority.d.ts +21 -0
- package/dist/cluster/downing/KeepMajority.d.ts.map +1 -0
- package/dist/cluster/downing/KeepMajority.js +39 -0
- package/dist/cluster/downing/KeepMajority.js.map +1 -0
- package/dist/cluster/downing/KeepOldest.d.ts +23 -0
- package/dist/cluster/downing/KeepOldest.d.ts.map +1 -0
- package/dist/cluster/downing/KeepOldest.js +37 -0
- package/dist/cluster/downing/KeepOldest.js.map +1 -0
- package/dist/cluster/downing/KeepReferee.d.ts +23 -0
- package/dist/cluster/downing/KeepReferee.d.ts.map +1 -0
- package/dist/cluster/downing/KeepReferee.js +35 -0
- package/dist/cluster/downing/KeepReferee.js.map +1 -0
- package/dist/cluster/downing/LeaseMajority.d.ts +70 -0
- package/dist/cluster/downing/LeaseMajority.d.ts.map +1 -0
- package/dist/cluster/downing/LeaseMajority.js +129 -0
- package/dist/cluster/downing/LeaseMajority.js.map +1 -0
- package/dist/cluster/downing/StaticQuorum.d.ts +21 -0
- package/dist/cluster/downing/StaticQuorum.d.ts.map +1 -0
- package/dist/cluster/downing/StaticQuorum.js +30 -0
- package/dist/cluster/downing/StaticQuorum.js.map +1 -0
- package/dist/cluster/downing/index.d.ts +13 -0
- package/dist/cluster/downing/index.d.ts.map +1 -0
- package/dist/cluster/downing/index.js +7 -0
- package/dist/cluster/downing/index.js.map +1 -0
- package/dist/cluster/index.d.ts +49 -0
- package/dist/cluster/index.d.ts.map +1 -0
- package/dist/cluster/index.js +33 -0
- package/dist/cluster/index.js.map +1 -0
- package/dist/cluster/pubsub/DistributedPubSubExtension.d.ts +30 -0
- package/dist/cluster/pubsub/DistributedPubSubExtension.d.ts.map +1 -0
- package/dist/cluster/pubsub/DistributedPubSubExtension.js +42 -0
- package/dist/cluster/pubsub/DistributedPubSubExtension.js.map +1 -0
- package/dist/cluster/pubsub/DistributedPubSubMediator.d.ts +56 -0
- package/dist/cluster/pubsub/DistributedPubSubMediator.d.ts.map +1 -0
- package/dist/cluster/pubsub/DistributedPubSubMediator.js +240 -0
- package/dist/cluster/pubsub/DistributedPubSubMediator.js.map +1 -0
- package/dist/cluster/pubsub/Messages.d.ts +75 -0
- package/dist/cluster/pubsub/Messages.d.ts.map +1 -0
- package/dist/cluster/pubsub/Messages.js +66 -0
- package/dist/cluster/pubsub/Messages.js.map +1 -0
- package/dist/cluster/pubsub/index.d.ts +5 -0
- package/dist/cluster/pubsub/index.d.ts.map +1 -0
- package/dist/cluster/pubsub/index.js +4 -0
- package/dist/cluster/pubsub/index.js.map +1 -0
- package/dist/cluster/router/ClusterRouter.d.ts +87 -0
- package/dist/cluster/router/ClusterRouter.d.ts.map +1 -0
- package/dist/cluster/router/ClusterRouter.js +116 -0
- package/dist/cluster/router/ClusterRouter.js.map +1 -0
- package/dist/cluster/router/ConsistentHashing.d.ts +27 -0
- package/dist/cluster/router/ConsistentHashing.d.ts.map +1 -0
- package/dist/cluster/router/ConsistentHashing.js +69 -0
- package/dist/cluster/router/ConsistentHashing.js.map +1 -0
- package/dist/cluster/router/index.d.ts +4 -0
- package/dist/cluster/router/index.d.ts.map +1 -0
- package/dist/cluster/router/index.js +3 -0
- package/dist/cluster/router/index.js.map +1 -0
- package/dist/cluster/sharding/AllocationStrategy.d.ts +45 -0
- package/dist/cluster/sharding/AllocationStrategy.d.ts.map +1 -0
- package/dist/cluster/sharding/AllocationStrategy.js +95 -0
- package/dist/cluster/sharding/AllocationStrategy.js.map +1 -0
- package/dist/cluster/sharding/CassandraRememberEntitiesStore.d.ts +77 -0
- package/dist/cluster/sharding/CassandraRememberEntitiesStore.d.ts.map +1 -0
- package/dist/cluster/sharding/CassandraRememberEntitiesStore.js +98 -0
- package/dist/cluster/sharding/CassandraRememberEntitiesStore.js.map +1 -0
- package/dist/cluster/sharding/ClusterSharding.d.ts +116 -0
- package/dist/cluster/sharding/ClusterSharding.d.ts.map +1 -0
- package/dist/cluster/sharding/ClusterSharding.js +133 -0
- package/dist/cluster/sharding/ClusterSharding.js.map +1 -0
- package/dist/cluster/sharding/CoordinatorState.d.ts +83 -0
- package/dist/cluster/sharding/CoordinatorState.d.ts.map +1 -0
- package/dist/cluster/sharding/CoordinatorState.js +46 -0
- package/dist/cluster/sharding/CoordinatorState.js.map +1 -0
- package/dist/cluster/sharding/Passivate.d.ts +23 -0
- package/dist/cluster/sharding/Passivate.d.ts.map +1 -0
- package/dist/cluster/sharding/Passivate.js +25 -0
- package/dist/cluster/sharding/Passivate.js.map +1 -0
- package/dist/cluster/sharding/RememberEntitiesStore.d.ts +60 -0
- package/dist/cluster/sharding/RememberEntitiesStore.d.ts.map +1 -0
- package/dist/cluster/sharding/RememberEntitiesStore.js +35 -0
- package/dist/cluster/sharding/RememberEntitiesStore.js.map +1 -0
- package/dist/cluster/sharding/ShardAllocator.d.ts +23 -0
- package/dist/cluster/sharding/ShardAllocator.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardAllocator.js +54 -0
- package/dist/cluster/sharding/ShardAllocator.js.map +1 -0
- package/dist/cluster/sharding/ShardCoordinator.d.ts +218 -0
- package/dist/cluster/sharding/ShardCoordinator.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardCoordinator.js +719 -0
- package/dist/cluster/sharding/ShardCoordinator.js.map +1 -0
- package/dist/cluster/sharding/ShardRegion.d.ts +156 -0
- package/dist/cluster/sharding/ShardRegion.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardRegion.js +526 -0
- package/dist/cluster/sharding/ShardRegion.js.map +1 -0
- package/dist/cluster/sharding/ShardedDaemonProcess.d.ts +64 -0
- package/dist/cluster/sharding/ShardedDaemonProcess.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardedDaemonProcess.js +107 -0
- package/dist/cluster/sharding/ShardedDaemonProcess.js.map +1 -0
- package/dist/cluster/sharding/ShardingProtocol.d.ts +92 -0
- package/dist/cluster/sharding/ShardingProtocol.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardingProtocol.js +7 -0
- package/dist/cluster/sharding/ShardingProtocol.js.map +1 -0
- package/dist/cluster/singleton/ClusterSingleton.d.ts +59 -0
- package/dist/cluster/singleton/ClusterSingleton.d.ts.map +1 -0
- package/dist/cluster/singleton/ClusterSingleton.js +63 -0
- package/dist/cluster/singleton/ClusterSingleton.js.map +1 -0
- package/dist/cluster/singleton/ClusterSingletonManager.d.ts +116 -0
- package/dist/cluster/singleton/ClusterSingletonManager.d.ts.map +1 -0
- package/dist/cluster/singleton/ClusterSingletonManager.js +300 -0
- package/dist/cluster/singleton/ClusterSingletonManager.js.map +1 -0
- package/dist/cluster/singleton/ClusterSingletonProxy.d.ts +32 -0
- package/dist/cluster/singleton/ClusterSingletonProxy.d.ts.map +1 -0
- package/dist/cluster/singleton/ClusterSingletonProxy.js +81 -0
- package/dist/cluster/singleton/ClusterSingletonProxy.js.map +1 -0
- package/dist/cluster/singleton/index.d.ts +6 -0
- package/dist/cluster/singleton/index.d.ts.map +1 -0
- package/dist/cluster/singleton/index.js +4 -0
- package/dist/cluster/singleton/index.js.map +1 -0
- package/dist/cluster/transports/MessageChannelTransport.d.ts +52 -0
- package/dist/cluster/transports/MessageChannelTransport.d.ts.map +1 -0
- package/dist/cluster/transports/MessageChannelTransport.js +59 -0
- package/dist/cluster/transports/MessageChannelTransport.js.map +1 -0
- package/dist/config/Config.d.ts +73 -0
- package/dist/config/Config.d.ts.map +1 -0
- package/dist/config/Config.js +240 -0
- package/dist/config/Config.js.map +1 -0
- package/dist/config/ConfigKeys.d.ts +94 -0
- package/dist/config/ConfigKeys.d.ts.map +1 -0
- package/dist/config/ConfigKeys.js +94 -0
- package/dist/config/ConfigKeys.js.map +1 -0
- package/dist/config/Duration.d.ts +2 -0
- package/dist/config/Duration.d.ts.map +1 -0
- package/dist/config/Duration.js +70 -0
- package/dist/config/Duration.js.map +1 -0
- package/dist/config/HoconParser.d.ts +19 -0
- package/dist/config/HoconParser.d.ts.map +1 -0
- package/dist/config/HoconParser.js +473 -0
- package/dist/config/HoconParser.js.map +1 -0
- package/dist/config/Size.d.ts +2 -0
- package/dist/config/Size.d.ts.map +1 -0
- package/dist/config/Size.js +53 -0
- package/dist/config/Size.js.map +1 -0
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +7 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/reference.d.ts +11 -0
- package/dist/config/reference.d.ts.map +1 -0
- package/dist/config/reference.js +86 -0
- package/dist/config/reference.js.map +1 -0
- package/dist/coordination/Lease.d.ts +40 -0
- package/dist/coordination/Lease.d.ts.map +1 -0
- package/dist/coordination/Lease.js +2 -0
- package/dist/coordination/Lease.js.map +1 -0
- package/dist/coordination/index.d.ts +5 -0
- package/dist/coordination/index.d.ts.map +1 -0
- package/dist/coordination/index.js +3 -0
- package/dist/coordination/index.js.map +1 -0
- package/dist/coordination/leases/InMemoryLease.d.ts +40 -0
- package/dist/coordination/leases/InMemoryLease.d.ts.map +1 -0
- package/dist/coordination/leases/InMemoryLease.js +109 -0
- package/dist/coordination/leases/InMemoryLease.js.map +1 -0
- package/dist/coordination/leases/KubernetesLease.d.ts +78 -0
- package/dist/coordination/leases/KubernetesLease.d.ts.map +1 -0
- package/dist/coordination/leases/KubernetesLease.js +244 -0
- package/dist/coordination/leases/KubernetesLease.js.map +1 -0
- package/dist/coordination/leases/k8sApi.d.ts +82 -0
- package/dist/coordination/leases/k8sApi.d.ts.map +1 -0
- package/dist/coordination/leases/k8sApi.js +191 -0
- package/dist/coordination/leases/k8sApi.js.map +1 -0
- package/dist/crdt/Crdt.d.ts +52 -0
- package/dist/crdt/Crdt.d.ts.map +1 -0
- package/dist/crdt/Crdt.js +2 -0
- package/dist/crdt/Crdt.js.map +1 -0
- package/dist/crdt/DistributedData.d.ts +314 -0
- package/dist/crdt/DistributedData.d.ts.map +1 -0
- package/dist/crdt/DistributedData.js +658 -0
- package/dist/crdt/DistributedData.js.map +1 -0
- package/dist/crdt/DurableDistributedDataStore.d.ts +50 -0
- package/dist/crdt/DurableDistributedDataStore.d.ts.map +1 -0
- package/dist/crdt/DurableDistributedDataStore.js +75 -0
- package/dist/crdt/DurableDistributedDataStore.js.map +1 -0
- package/dist/crdt/GCounter.d.ts +42 -0
- package/dist/crdt/GCounter.d.ts.map +1 -0
- package/dist/crdt/GCounter.js +75 -0
- package/dist/crdt/GCounter.js.map +1 -0
- package/dist/crdt/GCounterMap.d.ts +60 -0
- package/dist/crdt/GCounterMap.d.ts.map +1 -0
- package/dist/crdt/GCounterMap.js +102 -0
- package/dist/crdt/GCounterMap.js.map +1 -0
- package/dist/crdt/GSet.d.ts +63 -0
- package/dist/crdt/GSet.d.ts.map +1 -0
- package/dist/crdt/GSet.js +77 -0
- package/dist/crdt/GSet.js.map +1 -0
- package/dist/crdt/LWWMap.d.ts +75 -0
- package/dist/crdt/LWWMap.d.ts.map +1 -0
- package/dist/crdt/LWWMap.js +136 -0
- package/dist/crdt/LWWMap.js.map +1 -0
- package/dist/crdt/LWWRegister.d.ts +54 -0
- package/dist/crdt/LWWRegister.d.ts.map +1 -0
- package/dist/crdt/LWWRegister.js +83 -0
- package/dist/crdt/LWWRegister.js.map +1 -0
- package/dist/crdt/MVRegister.d.ts +36 -0
- package/dist/crdt/MVRegister.d.ts.map +1 -0
- package/dist/crdt/MVRegister.js +138 -0
- package/dist/crdt/MVRegister.js.map +1 -0
- package/dist/crdt/ORMap.d.ts +104 -0
- package/dist/crdt/ORMap.d.ts.map +1 -0
- package/dist/crdt/ORMap.js +178 -0
- package/dist/crdt/ORMap.js.map +1 -0
- package/dist/crdt/ORSet.d.ts +81 -0
- package/dist/crdt/ORSet.d.ts.map +1 -0
- package/dist/crdt/ORSet.js +206 -0
- package/dist/crdt/ORSet.js.map +1 -0
- package/dist/crdt/PNCounter.d.ts +34 -0
- package/dist/crdt/PNCounter.d.ts.map +1 -0
- package/dist/crdt/PNCounter.js +51 -0
- package/dist/crdt/PNCounter.js.map +1 -0
- package/dist/crdt/index.d.ts +23 -0
- package/dist/crdt/index.d.ts.map +1 -0
- package/dist/crdt/index.js +12 -0
- package/dist/crdt/index.js.map +1 -0
- package/dist/delivery/ConsumerController.d.ts +28 -0
- package/dist/delivery/ConsumerController.d.ts.map +1 -0
- package/dist/delivery/ConsumerController.js +64 -0
- package/dist/delivery/ConsumerController.js.map +1 -0
- package/dist/delivery/Messages.d.ts +23 -0
- package/dist/delivery/Messages.d.ts.map +1 -0
- package/dist/delivery/Messages.js +2 -0
- package/dist/delivery/Messages.js.map +1 -0
- package/dist/delivery/ProducerController.d.ts +46 -0
- package/dist/delivery/ProducerController.d.ts.map +1 -0
- package/dist/delivery/ProducerController.js +84 -0
- package/dist/delivery/ProducerController.js.map +1 -0
- package/dist/delivery/ReliableDelivery.d.ts +36 -0
- package/dist/delivery/ReliableDelivery.d.ts.map +1 -0
- package/dist/delivery/ReliableDelivery.js +32 -0
- package/dist/delivery/ReliableDelivery.js.map +1 -0
- package/dist/delivery/index.d.ts +8 -0
- package/dist/delivery/index.d.ts.map +1 -0
- package/dist/delivery/index.js +4 -0
- package/dist/delivery/index.js.map +1 -0
- package/dist/discovery/AggregateSeedProvider.d.ts +15 -0
- package/dist/discovery/AggregateSeedProvider.d.ts.map +1 -0
- package/dist/discovery/AggregateSeedProvider.js +28 -0
- package/dist/discovery/AggregateSeedProvider.js.map +1 -0
- package/dist/discovery/ConfigSeedProvider.d.ts +20 -0
- package/dist/discovery/ConfigSeedProvider.d.ts.map +1 -0
- package/dist/discovery/ConfigSeedProvider.js +24 -0
- package/dist/discovery/ConfigSeedProvider.js.map +1 -0
- package/dist/discovery/DnsSeedProvider.d.ts +49 -0
- package/dist/discovery/DnsSeedProvider.d.ts.map +1 -0
- package/dist/discovery/DnsSeedProvider.js +57 -0
- package/dist/discovery/DnsSeedProvider.js.map +1 -0
- package/dist/discovery/KubernetesApiSeedProvider.d.ts +30 -0
- package/dist/discovery/KubernetesApiSeedProvider.d.ts.map +1 -0
- package/dist/discovery/KubernetesApiSeedProvider.js +66 -0
- package/dist/discovery/KubernetesApiSeedProvider.js.map +1 -0
- package/dist/discovery/Receptionist.d.ts +55 -0
- package/dist/discovery/Receptionist.d.ts.map +1 -0
- package/dist/discovery/Receptionist.js +207 -0
- package/dist/discovery/Receptionist.js.map +1 -0
- package/dist/discovery/ReceptionistMessages.d.ts +65 -0
- package/dist/discovery/ReceptionistMessages.d.ts.map +1 -0
- package/dist/discovery/ReceptionistMessages.js +76 -0
- package/dist/discovery/ReceptionistMessages.js.map +1 -0
- package/dist/discovery/SeedProvider.d.ts +17 -0
- package/dist/discovery/SeedProvider.d.ts.map +1 -0
- package/dist/discovery/SeedProvider.js +2 -0
- package/dist/discovery/SeedProvider.js.map +1 -0
- package/dist/discovery/ServiceKey.d.ts +15 -0
- package/dist/discovery/ServiceKey.d.ts.map +1 -0
- package/dist/discovery/ServiceKey.js +17 -0
- package/dist/discovery/ServiceKey.js.map +1 -0
- package/dist/discovery/autoDiscovery.d.ts +63 -0
- package/dist/discovery/autoDiscovery.d.ts.map +1 -0
- package/dist/discovery/autoDiscovery.js +91 -0
- package/dist/discovery/autoDiscovery.js.map +1 -0
- package/dist/discovery/index.d.ts +16 -0
- package/dist/discovery/index.d.ts.map +1 -0
- package/dist/discovery/index.js +9 -0
- package/dist/discovery/index.js.map +1 -0
- package/dist/fsm/FSM.d.ts +60 -0
- package/dist/fsm/FSM.d.ts.map +1 -0
- package/dist/fsm/FSM.js +102 -0
- package/dist/fsm/FSM.js.map +1 -0
- package/dist/fsm/PersistentFSM.d.ts +230 -0
- package/dist/fsm/PersistentFSM.d.ts.map +1 -0
- package/dist/fsm/PersistentFSM.js +170 -0
- package/dist/fsm/PersistentFSM.js.map +1 -0
- package/dist/fsm/index.d.ts +5 -0
- package/dist/fsm/index.d.ts.map +1 -0
- package/dist/fsm/index.js +3 -0
- package/dist/fsm/index.js.map +1 -0
- package/dist/http/HttpClient.d.ts +34 -0
- package/dist/http/HttpClient.d.ts.map +1 -0
- package/dist/http/HttpClient.js +72 -0
- package/dist/http/HttpClient.js.map +1 -0
- package/dist/http/HttpExtension.d.ts +29 -0
- package/dist/http/HttpExtension.d.ts.map +1 -0
- package/dist/http/HttpExtension.js +64 -0
- package/dist/http/HttpExtension.js.map +1 -0
- package/dist/http/Marshalling.d.ts +20 -0
- package/dist/http/Marshalling.d.ts.map +1 -0
- package/dist/http/Marshalling.js +54 -0
- package/dist/http/Marshalling.js.map +1 -0
- package/dist/http/Route.d.ts +59 -0
- package/dist/http/Route.d.ts.map +1 -0
- package/dist/http/Route.js +93 -0
- package/dist/http/Route.js.map +1 -0
- package/dist/http/backend/ExpressBackend.d.ts +86 -0
- package/dist/http/backend/ExpressBackend.d.ts.map +1 -0
- package/dist/http/backend/ExpressBackend.js +260 -0
- package/dist/http/backend/ExpressBackend.js.map +1 -0
- package/dist/http/backend/FastifyBackend.d.ts +31 -0
- package/dist/http/backend/FastifyBackend.d.ts.map +1 -0
- package/dist/http/backend/FastifyBackend.js +193 -0
- package/dist/http/backend/FastifyBackend.js.map +1 -0
- package/dist/http/backend/HonoBackend.d.ts +72 -0
- package/dist/http/backend/HonoBackend.d.ts.map +1 -0
- package/dist/http/backend/HonoBackend.js +212 -0
- package/dist/http/backend/HonoBackend.js.map +1 -0
- package/dist/http/backend/HttpServerBackend.d.ts +31 -0
- package/dist/http/backend/HttpServerBackend.d.ts.map +1 -0
- package/dist/http/backend/HttpServerBackend.js +2 -0
- package/dist/http/backend/HttpServerBackend.js.map +1 -0
- package/dist/http/cache/IdempotencyKey.d.ts +48 -0
- package/dist/http/cache/IdempotencyKey.d.ts.map +1 -0
- package/dist/http/cache/IdempotencyKey.js +154 -0
- package/dist/http/cache/IdempotencyKey.js.map +1 -0
- package/dist/http/cache/RateLimit.d.ts +65 -0
- package/dist/http/cache/RateLimit.d.ts.map +1 -0
- package/dist/http/cache/RateLimit.js +60 -0
- package/dist/http/cache/RateLimit.js.map +1 -0
- package/dist/http/cache/ResponseCache.d.ts +49 -0
- package/dist/http/cache/ResponseCache.d.ts.map +1 -0
- package/dist/http/cache/ResponseCache.js +84 -0
- package/dist/http/cache/ResponseCache.js.map +1 -0
- package/dist/http/cache/index.d.ts +7 -0
- package/dist/http/cache/index.d.ts.map +1 -0
- package/dist/http/cache/index.js +4 -0
- package/dist/http/cache/index.js.map +1 -0
- package/dist/http/index.d.ts +18 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +11 -0
- package/dist/http/index.js.map +1 -0
- package/dist/http/types.d.ts +54 -0
- package/dist/http/types.d.ts.map +1 -0
- package/dist/http/types.js +40 -0
- package/dist/http/types.js.map +1 -0
- package/dist/index.d.ts +73 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +87 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/ActorCell.d.ts +116 -0
- package/dist/internal/ActorCell.d.ts.map +1 -0
- package/dist/internal/ActorCell.js +681 -0
- package/dist/internal/ActorCell.js.map +1 -0
- package/dist/internal/DeadLetterRef.d.ts +15 -0
- package/dist/internal/DeadLetterRef.d.ts.map +1 -0
- package/dist/internal/DeadLetterRef.js +24 -0
- package/dist/internal/DeadLetterRef.js.map +1 -0
- package/dist/internal/Guardian.d.ts +18 -0
- package/dist/internal/Guardian.d.ts.map +1 -0
- package/dist/internal/Guardian.js +23 -0
- package/dist/internal/Guardian.js.map +1 -0
- package/dist/internal/LocalActorRef.d.ts +17 -0
- package/dist/internal/LocalActorRef.d.ts.map +1 -0
- package/dist/internal/LocalActorRef.js +38 -0
- package/dist/internal/LocalActorRef.js.map +1 -0
- package/dist/internal/Mailbox.d.ts +49 -0
- package/dist/internal/Mailbox.d.ts.map +1 -0
- package/dist/internal/Mailbox.js +49 -0
- package/dist/internal/Mailbox.js.map +1 -0
- package/dist/internal/SystemCommand.d.ts +31 -0
- package/dist/internal/SystemCommand.d.ts.map +1 -0
- package/dist/internal/SystemCommand.js +2 -0
- package/dist/internal/SystemCommand.js.map +1 -0
- package/dist/io/broker/AmqpActor.d.ts +78 -0
- package/dist/io/broker/AmqpActor.d.ts.map +1 -0
- package/dist/io/broker/AmqpActor.js +137 -0
- package/dist/io/broker/AmqpActor.js.map +1 -0
- package/dist/io/broker/BrokerActor.d.ts +125 -0
- package/dist/io/broker/BrokerActor.d.ts.map +1 -0
- package/dist/io/broker/BrokerActor.js +289 -0
- package/dist/io/broker/BrokerActor.js.map +1 -0
- package/dist/io/broker/BrokerEvents.d.ts +59 -0
- package/dist/io/broker/BrokerEvents.d.ts.map +1 -0
- package/dist/io/broker/BrokerEvents.js +79 -0
- package/dist/io/broker/BrokerEvents.js.map +1 -0
- package/dist/io/broker/BrokerSettings.d.ts +72 -0
- package/dist/io/broker/BrokerSettings.d.ts.map +1 -0
- package/dist/io/broker/BrokerSettings.js +73 -0
- package/dist/io/broker/BrokerSettings.js.map +1 -0
- package/dist/io/broker/GrpcClientActor.d.ts +112 -0
- package/dist/io/broker/GrpcClientActor.d.ts.map +1 -0
- package/dist/io/broker/GrpcClientActor.js +212 -0
- package/dist/io/broker/GrpcClientActor.js.map +1 -0
- package/dist/io/broker/GrpcServerActor.d.ts +101 -0
- package/dist/io/broker/GrpcServerActor.d.ts.map +1 -0
- package/dist/io/broker/GrpcServerActor.js +230 -0
- package/dist/io/broker/GrpcServerActor.js.map +1 -0
- package/dist/io/broker/JetStreamActor.d.ts +352 -0
- package/dist/io/broker/JetStreamActor.d.ts.map +1 -0
- package/dist/io/broker/JetStreamActor.js +378 -0
- package/dist/io/broker/JetStreamActor.js.map +1 -0
- package/dist/io/broker/KafkaActor.d.ts +316 -0
- package/dist/io/broker/KafkaActor.d.ts.map +1 -0
- package/dist/io/broker/KafkaActor.js +355 -0
- package/dist/io/broker/KafkaActor.js.map +1 -0
- package/dist/io/broker/MqttActor.d.ts +149 -0
- package/dist/io/broker/MqttActor.d.ts.map +1 -0
- package/dist/io/broker/MqttActor.js +255 -0
- package/dist/io/broker/MqttActor.js.map +1 -0
- package/dist/io/broker/NatsActor.d.ts +65 -0
- package/dist/io/broker/NatsActor.d.ts.map +1 -0
- package/dist/io/broker/NatsActor.js +126 -0
- package/dist/io/broker/NatsActor.js.map +1 -0
- package/dist/io/broker/RedisStreamsActor.d.ts +69 -0
- package/dist/io/broker/RedisStreamsActor.d.ts.map +1 -0
- package/dist/io/broker/RedisStreamsActor.js +140 -0
- package/dist/io/broker/RedisStreamsActor.js.map +1 -0
- package/dist/io/broker/ServerWebSocketActor.d.ts +109 -0
- package/dist/io/broker/ServerWebSocketActor.d.ts.map +1 -0
- package/dist/io/broker/ServerWebSocketActor.js +128 -0
- package/dist/io/broker/ServerWebSocketActor.js.map +1 -0
- package/dist/io/broker/SseActor.d.ts +45 -0
- package/dist/io/broker/SseActor.d.ts.map +1 -0
- package/dist/io/broker/SseActor.js +129 -0
- package/dist/io/broker/SseActor.js.map +1 -0
- package/dist/io/broker/TcpSocketActor.d.ts +73 -0
- package/dist/io/broker/TcpSocketActor.d.ts.map +1 -0
- package/dist/io/broker/TcpSocketActor.js +168 -0
- package/dist/io/broker/TcpSocketActor.js.map +1 -0
- package/dist/io/broker/UdpSocketActor.d.ts +54 -0
- package/dist/io/broker/UdpSocketActor.d.ts.map +1 -0
- package/dist/io/broker/UdpSocketActor.js +100 -0
- package/dist/io/broker/UdpSocketActor.js.map +1 -0
- package/dist/io/broker/WebSocketActor.d.ts +77 -0
- package/dist/io/broker/WebSocketActor.d.ts.map +1 -0
- package/dist/io/broker/WebSocketActor.js +217 -0
- package/dist/io/broker/WebSocketActor.js.map +1 -0
- package/dist/io/broker/WebSocketServerAdapters.d.ts +140 -0
- package/dist/io/broker/WebSocketServerAdapters.d.ts.map +1 -0
- package/dist/io/broker/WebSocketServerAdapters.js +155 -0
- package/dist/io/broker/WebSocketServerAdapters.js.map +1 -0
- package/dist/io/broker/index.d.ts +32 -0
- package/dist/io/broker/index.d.ts.map +1 -0
- package/dist/io/broker/index.js +22 -0
- package/dist/io/broker/index.js.map +1 -0
- package/dist/io/index.d.ts +2 -0
- package/dist/io/index.d.ts.map +1 -0
- package/dist/io/index.js +2 -0
- package/dist/io/index.js.map +1 -0
- package/dist/mailbox/BoundedMailbox.d.ts +28 -0
- package/dist/mailbox/BoundedMailbox.d.ts.map +1 -0
- package/dist/mailbox/BoundedMailbox.js +41 -0
- package/dist/mailbox/BoundedMailbox.js.map +1 -0
- package/dist/mailbox/PriorityMailbox.d.ts +32 -0
- package/dist/mailbox/PriorityMailbox.d.ts.map +1 -0
- package/dist/mailbox/PriorityMailbox.js +58 -0
- package/dist/mailbox/PriorityMailbox.js.map +1 -0
- package/dist/mailbox/index.d.ts +5 -0
- package/dist/mailbox/index.d.ts.map +1 -0
- package/dist/mailbox/index.js +3 -0
- package/dist/mailbox/index.js.map +1 -0
- package/dist/management/HealthCheck.d.ts +21 -0
- package/dist/management/HealthCheck.d.ts.map +1 -0
- package/dist/management/HealthCheck.js +46 -0
- package/dist/management/HealthCheck.js.map +1 -0
- package/dist/management/HttpManagement.d.ts +43 -0
- package/dist/management/HttpManagement.d.ts.map +1 -0
- package/dist/management/HttpManagement.js +158 -0
- package/dist/management/HttpManagement.js.map +1 -0
- package/dist/management/index.d.ts +5 -0
- package/dist/management/index.d.ts.map +1 -0
- package/dist/management/index.js +3 -0
- package/dist/management/index.js.map +1 -0
- package/dist/metrics/Metrics.d.ts +142 -0
- package/dist/metrics/Metrics.d.ts.map +1 -0
- package/dist/metrics/Metrics.js +231 -0
- package/dist/metrics/Metrics.js.map +1 -0
- package/dist/metrics/MetricsExtension.d.ts +51 -0
- package/dist/metrics/MetricsExtension.d.ts.map +1 -0
- package/dist/metrics/MetricsExtension.js +63 -0
- package/dist/metrics/MetricsExtension.js.map +1 -0
- package/dist/metrics/PromClientAdapter.d.ts +102 -0
- package/dist/metrics/PromClientAdapter.d.ts.map +1 -0
- package/dist/metrics/PromClientAdapter.js +244 -0
- package/dist/metrics/PromClientAdapter.js.map +1 -0
- package/dist/metrics/PrometheusExporter.d.ts +31 -0
- package/dist/metrics/PrometheusExporter.d.ts.map +1 -0
- package/dist/metrics/PrometheusExporter.js +128 -0
- package/dist/metrics/PrometheusExporter.js.map +1 -0
- package/dist/metrics/index.d.ts +7 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +5 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/pattern/BackoffPolicy.d.ts +67 -0
- package/dist/pattern/BackoffPolicy.d.ts.map +1 -0
- package/dist/pattern/BackoffPolicy.js +87 -0
- package/dist/pattern/BackoffPolicy.js.map +1 -0
- package/dist/pattern/BackoffSupervisor.d.ts +234 -0
- package/dist/pattern/BackoffSupervisor.d.ts.map +1 -0
- package/dist/pattern/BackoffSupervisor.js +292 -0
- package/dist/pattern/BackoffSupervisor.js.map +1 -0
- package/dist/pattern/CircuitBreaker.d.ts +49 -0
- package/dist/pattern/CircuitBreaker.d.ts.map +1 -0
- package/dist/pattern/CircuitBreaker.js +110 -0
- package/dist/pattern/CircuitBreaker.js.map +1 -0
- package/dist/pattern/Status.d.ts +13 -0
- package/dist/pattern/Status.d.ts.map +1 -0
- package/dist/pattern/Status.js +13 -0
- package/dist/pattern/Status.js.map +1 -0
- package/dist/pattern/after.d.ts +13 -0
- package/dist/pattern/after.d.ts.map +1 -0
- package/dist/pattern/after.js +26 -0
- package/dist/pattern/after.js.map +1 -0
- package/dist/pattern/index.d.ts +14 -0
- package/dist/pattern/index.d.ts.map +1 -0
- package/dist/pattern/index.js +8 -0
- package/dist/pattern/index.js.map +1 -0
- package/dist/pattern/pipeTo.d.ts +20 -0
- package/dist/pattern/pipeTo.d.ts.map +1 -0
- package/dist/pattern/pipeTo.js +22 -0
- package/dist/pattern/pipeTo.js.map +1 -0
- package/dist/pattern/retry.d.ts +24 -0
- package/dist/pattern/retry.d.ts.map +1 -0
- package/dist/pattern/retry.js +35 -0
- package/dist/pattern/retry.js.map +1 -0
- package/dist/persistence/DurableStateActor.d.ts +62 -0
- package/dist/persistence/DurableStateActor.d.ts.map +1 -0
- package/dist/persistence/DurableStateActor.js +120 -0
- package/dist/persistence/DurableStateActor.js.map +1 -0
- package/dist/persistence/DurableStateStore.d.ts +43 -0
- package/dist/persistence/DurableStateStore.d.ts.map +1 -0
- package/dist/persistence/DurableStateStore.js +13 -0
- package/dist/persistence/DurableStateStore.js.map +1 -0
- package/dist/persistence/EventDispatcher.d.ts +88 -0
- package/dist/persistence/EventDispatcher.d.ts.map +1 -0
- package/dist/persistence/EventDispatcher.js +81 -0
- package/dist/persistence/EventDispatcher.js.map +1 -0
- package/dist/persistence/Journal.d.ts +40 -0
- package/dist/persistence/Journal.d.ts.map +1 -0
- package/dist/persistence/Journal.js +2 -0
- package/dist/persistence/Journal.js.map +1 -0
- package/dist/persistence/JournalEventBus.d.ts +47 -0
- package/dist/persistence/JournalEventBus.d.ts.map +1 -0
- package/dist/persistence/JournalEventBus.js +26 -0
- package/dist/persistence/JournalEventBus.js.map +1 -0
- package/dist/persistence/JournalTypes.d.ts +39 -0
- package/dist/persistence/JournalTypes.d.ts.map +1 -0
- package/dist/persistence/JournalTypes.js +28 -0
- package/dist/persistence/JournalTypes.js.map +1 -0
- package/dist/persistence/PersistenceExtension.d.ts +32 -0
- package/dist/persistence/PersistenceExtension.d.ts.map +1 -0
- package/dist/persistence/PersistenceExtension.js +69 -0
- package/dist/persistence/PersistenceExtension.js.map +1 -0
- package/dist/persistence/PersistenceOptions.d.ts +95 -0
- package/dist/persistence/PersistenceOptions.d.ts.map +1 -0
- package/dist/persistence/PersistenceOptions.js +20 -0
- package/dist/persistence/PersistenceOptions.js.map +1 -0
- package/dist/persistence/PersistentActor.d.ts +120 -0
- package/dist/persistence/PersistentActor.d.ts.map +1 -0
- package/dist/persistence/PersistentActor.js +246 -0
- package/dist/persistence/PersistentActor.js.map +1 -0
- package/dist/persistence/ReplicatedEventSourcedActor.d.ts +238 -0
- package/dist/persistence/ReplicatedEventSourcedActor.d.ts.map +1 -0
- package/dist/persistence/ReplicatedEventSourcedActor.js +430 -0
- package/dist/persistence/ReplicatedEventSourcedActor.js.map +1 -0
- package/dist/persistence/SnapshotStore.d.ts +31 -0
- package/dist/persistence/SnapshotStore.d.ts.map +1 -0
- package/dist/persistence/SnapshotStore.js +2 -0
- package/dist/persistence/SnapshotStore.js.map +1 -0
- package/dist/persistence/durable-state-stores/InMemoryDurableStateStore.d.ts +14 -0
- package/dist/persistence/durable-state-stores/InMemoryDurableStateStore.d.ts.map +1 -0
- package/dist/persistence/durable-state-stores/InMemoryDurableStateStore.js +31 -0
- package/dist/persistence/durable-state-stores/InMemoryDurableStateStore.js.map +1 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.d.ts +27 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.d.ts.map +1 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.js +157 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.js.map +1 -0
- package/dist/persistence/index.d.ts +65 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +44 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/journals/CassandraClient.d.ts +81 -0
- package/dist/persistence/journals/CassandraClient.d.ts.map +1 -0
- package/dist/persistence/journals/CassandraClient.js +65 -0
- package/dist/persistence/journals/CassandraClient.js.map +1 -0
- package/dist/persistence/journals/CassandraJournal.d.ts +96 -0
- package/dist/persistence/journals/CassandraJournal.d.ts.map +1 -0
- package/dist/persistence/journals/CassandraJournal.js +247 -0
- package/dist/persistence/journals/CassandraJournal.js.map +1 -0
- package/dist/persistence/journals/CassandraPlugin.d.ts +30 -0
- package/dist/persistence/journals/CassandraPlugin.d.ts.map +1 -0
- package/dist/persistence/journals/CassandraPlugin.js +18 -0
- package/dist/persistence/journals/CassandraPlugin.js.map +1 -0
- package/dist/persistence/journals/InMemoryJournal.d.ts +35 -0
- package/dist/persistence/journals/InMemoryJournal.d.ts.map +1 -0
- package/dist/persistence/journals/InMemoryJournal.js +97 -0
- package/dist/persistence/journals/InMemoryJournal.js.map +1 -0
- package/dist/persistence/journals/SqliteJournal.d.ts +68 -0
- package/dist/persistence/journals/SqliteJournal.d.ts.map +1 -0
- package/dist/persistence/journals/SqliteJournal.js +225 -0
- package/dist/persistence/journals/SqliteJournal.js.map +1 -0
- package/dist/persistence/migration/Adapter.d.ts +72 -0
- package/dist/persistence/migration/Adapter.d.ts.map +1 -0
- package/dist/persistence/migration/Adapter.js +24 -0
- package/dist/persistence/migration/Adapter.js.map +1 -0
- package/dist/persistence/migration/Codec.d.ts +103 -0
- package/dist/persistence/migration/Codec.d.ts.map +1 -0
- package/dist/persistence/migration/Codec.js +92 -0
- package/dist/persistence/migration/Codec.js.map +1 -0
- package/dist/persistence/migration/Envelope.d.ts +37 -0
- package/dist/persistence/migration/Envelope.d.ts.map +1 -0
- package/dist/persistence/migration/Envelope.js +79 -0
- package/dist/persistence/migration/Envelope.js.map +1 -0
- package/dist/persistence/migration/MigrationChain.d.ts +100 -0
- package/dist/persistence/migration/MigrationChain.d.ts.map +1 -0
- package/dist/persistence/migration/MigrationChain.js +159 -0
- package/dist/persistence/migration/MigrationChain.js.map +1 -0
- package/dist/persistence/migration/SchemaRegistry.d.ts +114 -0
- package/dist/persistence/migration/SchemaRegistry.d.ts.map +1 -0
- package/dist/persistence/migration/SchemaRegistry.js +112 -0
- package/dist/persistence/migration/SchemaRegistry.js.map +1 -0
- package/dist/persistence/migration/defaultsAdapter.d.ts +56 -0
- package/dist/persistence/migration/defaultsAdapter.d.ts.map +1 -0
- package/dist/persistence/migration/defaultsAdapter.js +119 -0
- package/dist/persistence/migration/defaultsAdapter.js.map +1 -0
- package/dist/persistence/migration/index.d.ts +18 -0
- package/dist/persistence/migration/index.d.ts.map +1 -0
- package/dist/persistence/migration/index.js +12 -0
- package/dist/persistence/migration/index.js.map +1 -0
- package/dist/persistence/migration/journalMigration.d.ts +155 -0
- package/dist/persistence/migration/journalMigration.d.ts.map +1 -0
- package/dist/persistence/migration/journalMigration.js +149 -0
- package/dist/persistence/migration/journalMigration.js.map +1 -0
- package/dist/persistence/migration/migratingAdapter.d.ts +43 -0
- package/dist/persistence/migration/migratingAdapter.d.ts.map +1 -0
- package/dist/persistence/migration/migratingAdapter.js +65 -0
- package/dist/persistence/migration/migratingAdapter.js.map +1 -0
- package/dist/persistence/migration/validatedAdapter.d.ts +48 -0
- package/dist/persistence/migration/validatedAdapter.d.ts.map +1 -0
- package/dist/persistence/migration/validatedAdapter.js +86 -0
- package/dist/persistence/migration/validatedAdapter.js.map +1 -0
- package/dist/persistence/migration/wrapLegacy.d.ts +83 -0
- package/dist/persistence/migration/wrapLegacy.d.ts.map +1 -0
- package/dist/persistence/migration/wrapLegacy.js +126 -0
- package/dist/persistence/migration/wrapLegacy.js.map +1 -0
- package/dist/persistence/object-storage/BodyCodec.d.ts +88 -0
- package/dist/persistence/object-storage/BodyCodec.d.ts.map +1 -0
- package/dist/persistence/object-storage/BodyCodec.js +171 -0
- package/dist/persistence/object-storage/BodyCodec.js.map +1 -0
- package/dist/persistence/object-storage/Compression.d.ts +31 -0
- package/dist/persistence/object-storage/Compression.d.ts.map +1 -0
- package/dist/persistence/object-storage/Compression.js +99 -0
- package/dist/persistence/object-storage/Compression.js.map +1 -0
- package/dist/persistence/object-storage/Encryption.d.ts +73 -0
- package/dist/persistence/object-storage/Encryption.d.ts.map +1 -0
- package/dist/persistence/object-storage/Encryption.js +167 -0
- package/dist/persistence/object-storage/Encryption.js.map +1 -0
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.d.ts +79 -0
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.d.ts.map +1 -0
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.js +325 -0
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.js.map +1 -0
- package/dist/persistence/object-storage/ObjectStorageBackend.d.ts +86 -0
- package/dist/persistence/object-storage/ObjectStorageBackend.d.ts.map +1 -0
- package/dist/persistence/object-storage/ObjectStorageBackend.js +24 -0
- package/dist/persistence/object-storage/ObjectStorageBackend.js.map +1 -0
- package/dist/persistence/object-storage/ObjectStoragePlugin.d.ts +93 -0
- package/dist/persistence/object-storage/ObjectStoragePlugin.d.ts.map +1 -0
- package/dist/persistence/object-storage/ObjectStoragePlugin.js +113 -0
- package/dist/persistence/object-storage/ObjectStoragePlugin.js.map +1 -0
- package/dist/persistence/object-storage/PluginConfig.d.ts +67 -0
- package/dist/persistence/object-storage/PluginConfig.d.ts.map +1 -0
- package/dist/persistence/object-storage/PluginConfig.js +93 -0
- package/dist/persistence/object-storage/PluginConfig.js.map +1 -0
- package/dist/persistence/object-storage/S3ObjectStorageBackend.d.ts +104 -0
- package/dist/persistence/object-storage/S3ObjectStorageBackend.d.ts.map +1 -0
- package/dist/persistence/object-storage/S3ObjectStorageBackend.js +202 -0
- package/dist/persistence/object-storage/S3ObjectStorageBackend.js.map +1 -0
- package/dist/persistence/object-storage/reEncryptionSweep.d.ts +110 -0
- package/dist/persistence/object-storage/reEncryptionSweep.d.ts.map +1 -0
- package/dist/persistence/object-storage/reEncryptionSweep.js +157 -0
- package/dist/persistence/object-storage/reEncryptionSweep.js.map +1 -0
- package/dist/persistence/projection/OffsetStore.d.ts +69 -0
- package/dist/persistence/projection/OffsetStore.d.ts.map +1 -0
- package/dist/persistence/projection/OffsetStore.js +103 -0
- package/dist/persistence/projection/OffsetStore.js.map +1 -0
- package/dist/persistence/projection/ProjectionActor.d.ts +62 -0
- package/dist/persistence/projection/ProjectionActor.d.ts.map +1 -0
- package/dist/persistence/projection/ProjectionActor.js +120 -0
- package/dist/persistence/projection/ProjectionActor.js.map +1 -0
- package/dist/persistence/query/CassandraQuery.d.ts +42 -0
- package/dist/persistence/query/CassandraQuery.d.ts.map +1 -0
- package/dist/persistence/query/CassandraQuery.js +118 -0
- package/dist/persistence/query/CassandraQuery.js.map +1 -0
- package/dist/persistence/query/InMemoryQuery.d.ts +31 -0
- package/dist/persistence/query/InMemoryQuery.d.ts.map +1 -0
- package/dist/persistence/query/InMemoryQuery.js +285 -0
- package/dist/persistence/query/InMemoryQuery.js.map +1 -0
- package/dist/persistence/query/PersistenceQuery.d.ts +162 -0
- package/dist/persistence/query/PersistenceQuery.d.ts.map +1 -0
- package/dist/persistence/query/PersistenceQuery.js +78 -0
- package/dist/persistence/query/PersistenceQuery.js.map +1 -0
- package/dist/persistence/query/SqliteQuery.d.ts +58 -0
- package/dist/persistence/query/SqliteQuery.d.ts.map +1 -0
- package/dist/persistence/query/SqliteQuery.js +173 -0
- package/dist/persistence/query/SqliteQuery.js.map +1 -0
- package/dist/persistence/replicated/ConflictResolver.d.ts +70 -0
- package/dist/persistence/replicated/ConflictResolver.d.ts.map +1 -0
- package/dist/persistence/replicated/ConflictResolver.js +47 -0
- package/dist/persistence/replicated/ConflictResolver.js.map +1 -0
- package/dist/persistence/replicated/ReplicatedSnapshot.d.ts +43 -0
- package/dist/persistence/replicated/ReplicatedSnapshot.d.ts.map +1 -0
- package/dist/persistence/replicated/ReplicatedSnapshot.js +2 -0
- package/dist/persistence/replicated/ReplicatedSnapshot.js.map +1 -0
- package/dist/persistence/replicated/VectorClock.d.ts +57 -0
- package/dist/persistence/replicated/VectorClock.d.ts.map +1 -0
- package/dist/persistence/replicated/VectorClock.js +79 -0
- package/dist/persistence/replicated/VectorClock.js.map +1 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.d.ts +27 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.js +82 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.js.map +1 -0
- package/dist/persistence/snapshot-stores/CassandraSnapshotStore.d.ts +42 -0
- package/dist/persistence/snapshot-stores/CassandraSnapshotStore.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/CassandraSnapshotStore.js +121 -0
- package/dist/persistence/snapshot-stores/CassandraSnapshotStore.js.map +1 -0
- package/dist/persistence/snapshot-stores/InMemorySnapshotStore.d.ts +19 -0
- package/dist/persistence/snapshot-stores/InMemorySnapshotStore.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/InMemorySnapshotStore.js +44 -0
- package/dist/persistence/snapshot-stores/InMemorySnapshotStore.js.map +1 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.d.ts +46 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.js +172 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.js.map +1 -0
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.d.ts +42 -0
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.js +108 -0
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.js.map +1 -0
- package/dist/persistence/storage/KeyValidator.d.ts +80 -0
- package/dist/persistence/storage/KeyValidator.d.ts.map +1 -0
- package/dist/persistence/storage/KeyValidator.js +88 -0
- package/dist/persistence/storage/KeyValidator.js.map +1 -0
- package/dist/runtime/detect.d.ts +35 -0
- package/dist/runtime/detect.d.ts.map +1 -0
- package/dist/runtime/detect.js +60 -0
- package/dist/runtime/detect.js.map +1 -0
- package/dist/runtime/http/BunHonoRunner.d.ts +16 -0
- package/dist/runtime/http/BunHonoRunner.d.ts.map +1 -0
- package/dist/runtime/http/BunHonoRunner.js +26 -0
- package/dist/runtime/http/BunHonoRunner.js.map +1 -0
- package/dist/runtime/http/DenoHonoRunner.d.ts +16 -0
- package/dist/runtime/http/DenoHonoRunner.d.ts.map +1 -0
- package/dist/runtime/http/DenoHonoRunner.js +33 -0
- package/dist/runtime/http/DenoHonoRunner.js.map +1 -0
- package/dist/runtime/http/HonoServerRunner.d.ts +28 -0
- package/dist/runtime/http/HonoServerRunner.d.ts.map +1 -0
- package/dist/runtime/http/HonoServerRunner.js +16 -0
- package/dist/runtime/http/HonoServerRunner.js.map +1 -0
- package/dist/runtime/http/NodeHonoRunner.d.ts +19 -0
- package/dist/runtime/http/NodeHonoRunner.d.ts.map +1 -0
- package/dist/runtime/http/NodeHonoRunner.js +70 -0
- package/dist/runtime/http/NodeHonoRunner.js.map +1 -0
- package/dist/runtime/http/index.d.ts +13 -0
- package/dist/runtime/http/index.d.ts.map +1 -0
- package/dist/runtime/http/index.js +40 -0
- package/dist/runtime/http/index.js.map +1 -0
- package/dist/runtime/sqlite/BetterSqliteDriver.d.ts +18 -0
- package/dist/runtime/sqlite/BetterSqliteDriver.d.ts.map +1 -0
- package/dist/runtime/sqlite/BetterSqliteDriver.js +64 -0
- package/dist/runtime/sqlite/BetterSqliteDriver.js.map +1 -0
- package/dist/runtime/sqlite/BunSqliteDriver.d.ts +17 -0
- package/dist/runtime/sqlite/BunSqliteDriver.d.ts.map +1 -0
- package/dist/runtime/sqlite/BunSqliteDriver.js +34 -0
- package/dist/runtime/sqlite/BunSqliteDriver.js.map +1 -0
- package/dist/runtime/sqlite/SqliteDriver.d.ts +35 -0
- package/dist/runtime/sqlite/SqliteDriver.d.ts.map +1 -0
- package/dist/runtime/sqlite/SqliteDriver.js +13 -0
- package/dist/runtime/sqlite/SqliteDriver.js.map +1 -0
- package/dist/runtime/sqlite/index.d.ts +14 -0
- package/dist/runtime/sqlite/index.d.ts.map +1 -0
- package/dist/runtime/sqlite/index.js +41 -0
- package/dist/runtime/sqlite/index.js.map +1 -0
- package/dist/runtime/tcp/BunTcpBackend.d.ts +24 -0
- package/dist/runtime/tcp/BunTcpBackend.d.ts.map +1 -0
- package/dist/runtime/tcp/BunTcpBackend.js +66 -0
- package/dist/runtime/tcp/BunTcpBackend.js.map +1 -0
- package/dist/runtime/tcp/DenoTcpBackend.d.ts +30 -0
- package/dist/runtime/tcp/DenoTcpBackend.d.ts.map +1 -0
- package/dist/runtime/tcp/DenoTcpBackend.js +145 -0
- package/dist/runtime/tcp/DenoTcpBackend.js.map +1 -0
- package/dist/runtime/tcp/NodeTcpBackend.d.ts +25 -0
- package/dist/runtime/tcp/NodeTcpBackend.d.ts.map +1 -0
- package/dist/runtime/tcp/NodeTcpBackend.js +102 -0
- package/dist/runtime/tcp/NodeTcpBackend.js.map +1 -0
- package/dist/runtime/tcp/TcpBackend.d.ts +65 -0
- package/dist/runtime/tcp/TcpBackend.d.ts.map +1 -0
- package/dist/runtime/tcp/TcpBackend.js +17 -0
- package/dist/runtime/tcp/TcpBackend.js.map +1 -0
- package/dist/runtime/tcp/index.d.ts +13 -0
- package/dist/runtime/tcp/index.d.ts.map +1 -0
- package/dist/runtime/tcp/index.js +40 -0
- package/dist/runtime/tcp/index.js.map +1 -0
- package/dist/runtime/worker/NodeWorkerBackend.d.ts +19 -0
- package/dist/runtime/worker/NodeWorkerBackend.d.ts.map +1 -0
- package/dist/runtime/worker/NodeWorkerBackend.js +84 -0
- package/dist/runtime/worker/NodeWorkerBackend.js.map +1 -0
- package/dist/runtime/worker/WebWorkerBackend.d.ts +12 -0
- package/dist/runtime/worker/WebWorkerBackend.d.ts.map +1 -0
- package/dist/runtime/worker/WebWorkerBackend.js +55 -0
- package/dist/runtime/worker/WebWorkerBackend.js.map +1 -0
- package/dist/runtime/worker/WorkerBackend.d.ts +45 -0
- package/dist/runtime/worker/WorkerBackend.d.ts.map +1 -0
- package/dist/runtime/worker/WorkerBackend.js +18 -0
- package/dist/runtime/worker/WorkerBackend.js.map +1 -0
- package/dist/runtime/worker/index.d.ts +14 -0
- package/dist/runtime/worker/index.d.ts.map +1 -0
- package/dist/runtime/worker/index.js +34 -0
- package/dist/runtime/worker/index.js.map +1 -0
- package/dist/serialization/CborCodec.d.ts +51 -0
- package/dist/serialization/CborCodec.d.ts.map +1 -0
- package/dist/serialization/CborCodec.js +321 -0
- package/dist/serialization/CborCodec.js.map +1 -0
- package/dist/serialization/CborSerializer.d.ts +23 -0
- package/dist/serialization/CborSerializer.d.ts.map +1 -0
- package/dist/serialization/CborSerializer.js +27 -0
- package/dist/serialization/CborSerializer.js.map +1 -0
- package/dist/serialization/JsonSerializer.d.ts +18 -0
- package/dist/serialization/JsonSerializer.d.ts.map +1 -0
- package/dist/serialization/JsonSerializer.js +114 -0
- package/dist/serialization/JsonSerializer.js.map +1 -0
- package/dist/serialization/SerializationExtension.d.ts +46 -0
- package/dist/serialization/SerializationExtension.d.ts.map +1 -0
- package/dist/serialization/SerializationExtension.js +105 -0
- package/dist/serialization/SerializationExtension.js.map +1 -0
- package/dist/serialization/Serializer.d.ts +44 -0
- package/dist/serialization/Serializer.d.ts.map +1 -0
- package/dist/serialization/Serializer.js +7 -0
- package/dist/serialization/Serializer.js.map +1 -0
- package/dist/serialization/index.d.ts +7 -0
- package/dist/serialization/index.d.ts.map +1 -0
- package/dist/serialization/index.js +6 -0
- package/dist/serialization/index.js.map +1 -0
- package/dist/testkit/ManualScheduler.d.ts +35 -0
- package/dist/testkit/ManualScheduler.d.ts.map +1 -0
- package/dist/testkit/ManualScheduler.js +126 -0
- package/dist/testkit/ManualScheduler.js.map +1 -0
- package/dist/testkit/MultiNodeSpec.d.ts +132 -0
- package/dist/testkit/MultiNodeSpec.d.ts.map +1 -0
- package/dist/testkit/MultiNodeSpec.js +237 -0
- package/dist/testkit/MultiNodeSpec.js.map +1 -0
- package/dist/testkit/ParallelMultiNodeSpec.d.ts +117 -0
- package/dist/testkit/ParallelMultiNodeSpec.d.ts.map +1 -0
- package/dist/testkit/ParallelMultiNodeSpec.js +310 -0
- package/dist/testkit/ParallelMultiNodeSpec.js.map +1 -0
- package/dist/testkit/TestKit.d.ts +40 -0
- package/dist/testkit/TestKit.d.ts.map +1 -0
- package/dist/testkit/TestKit.js +60 -0
- package/dist/testkit/TestKit.js.map +1 -0
- package/dist/testkit/TestProbe.d.ts +56 -0
- package/dist/testkit/TestProbe.d.ts.map +1 -0
- package/dist/testkit/TestProbe.js +184 -0
- package/dist/testkit/TestProbe.js.map +1 -0
- package/dist/testkit/index.d.ts +11 -0
- package/dist/testkit/index.d.ts.map +1 -0
- package/dist/testkit/index.js +6 -0
- package/dist/testkit/index.js.map +1 -0
- package/dist/testkit/internal/MultiNodeBroker.d.ts +39 -0
- package/dist/testkit/internal/MultiNodeBroker.d.ts.map +1 -0
- package/dist/testkit/internal/MultiNodeBroker.js +96 -0
- package/dist/testkit/internal/MultiNodeBroker.js.map +1 -0
- package/dist/testkit/internal/MultiNodeTransport.d.ts +58 -0
- package/dist/testkit/internal/MultiNodeTransport.d.ts.map +1 -0
- package/dist/testkit/internal/MultiNodeTransport.js +96 -0
- package/dist/testkit/internal/MultiNodeTransport.js.map +1 -0
- package/dist/testkit/internal/parallel-multi-node-bootstrap.d.ts +54 -0
- package/dist/testkit/internal/parallel-multi-node-bootstrap.d.ts.map +1 -0
- package/dist/testkit/internal/parallel-multi-node-bootstrap.js +157 -0
- package/dist/testkit/internal/parallel-multi-node-bootstrap.js.map +1 -0
- package/dist/tracing/NoopTracer.d.ts +11 -0
- package/dist/tracing/NoopTracer.d.ts.map +1 -0
- package/dist/tracing/NoopTracer.js +29 -0
- package/dist/tracing/NoopTracer.js.map +1 -0
- package/dist/tracing/OtelAdapter.d.ts +106 -0
- package/dist/tracing/OtelAdapter.d.ts.map +1 -0
- package/dist/tracing/OtelAdapter.js +164 -0
- package/dist/tracing/OtelAdapter.js.map +1 -0
- package/dist/tracing/RecordingTracer.d.ts +54 -0
- package/dist/tracing/RecordingTracer.d.ts.map +1 -0
- package/dist/tracing/RecordingTracer.js +129 -0
- package/dist/tracing/RecordingTracer.js.map +1 -0
- package/dist/tracing/Tracer.d.ts +100 -0
- package/dist/tracing/Tracer.d.ts.map +1 -0
- package/dist/tracing/Tracer.js +76 -0
- package/dist/tracing/Tracer.js.map +1 -0
- package/dist/tracing/TracingExtension.d.ts +32 -0
- package/dist/tracing/TracingExtension.d.ts.map +1 -0
- package/dist/tracing/TracingExtension.js +38 -0
- package/dist/tracing/TracingExtension.js.map +1 -0
- package/dist/tracing/index.d.ts +9 -0
- package/dist/tracing/index.d.ts.map +1 -0
- package/dist/tracing/index.js +6 -0
- package/dist/tracing/index.js.map +1 -0
- package/dist/typed/Behavior.d.ts +78 -0
- package/dist/typed/Behavior.d.ts.map +1 -0
- package/dist/typed/Behavior.js +2 -0
- package/dist/typed/Behavior.js.map +1 -0
- package/dist/typed/Behaviors.d.ts +60 -0
- package/dist/typed/Behaviors.d.ts.map +1 -0
- package/dist/typed/Behaviors.js +77 -0
- package/dist/typed/Behaviors.js.map +1 -0
- package/dist/typed/TypedActor.d.ts +28 -0
- package/dist/typed/TypedActor.d.ts.map +1 -0
- package/dist/typed/TypedActor.js +194 -0
- package/dist/typed/TypedActor.js.map +1 -0
- package/dist/typed/TypedActorContext.d.ts +29 -0
- package/dist/typed/TypedActorContext.d.ts.map +1 -0
- package/dist/typed/TypedActorContext.js +2 -0
- package/dist/typed/TypedActorContext.js.map +1 -0
- package/dist/typed/index.d.ts +7 -0
- package/dist/typed/index.d.ts.map +1 -0
- package/dist/typed/index.js +4 -0
- package/dist/typed/index.js.map +1 -0
- package/dist/typed/spawn.d.ts +14 -0
- package/dist/typed/spawn.d.ts.map +1 -0
- package/dist/typed/spawn.js +16 -0
- package/dist/typed/spawn.js.map +1 -0
- package/dist/util/Constants.d.ts +66 -0
- package/dist/util/Constants.d.ts.map +1 -0
- package/dist/util/Constants.js +66 -0
- package/dist/util/Constants.js.map +1 -0
- package/dist/util/Either.d.ts +100 -0
- package/dist/util/Either.d.ts.map +1 -0
- package/dist/util/Either.js +128 -0
- package/dist/util/Either.js.map +1 -0
- package/dist/util/Lazy.d.ts +82 -0
- package/dist/util/Lazy.d.ts.map +1 -0
- package/dist/util/Lazy.js +119 -0
- package/dist/util/Lazy.js.map +1 -0
- package/dist/util/LazyImport.d.ts +68 -0
- package/dist/util/LazyImport.d.ts.map +1 -0
- package/dist/util/LazyImport.js +64 -0
- package/dist/util/LazyImport.js.map +1 -0
- package/dist/util/Option.d.ts +105 -0
- package/dist/util/Option.d.ts.map +1 -0
- package/dist/util/Option.js +123 -0
- package/dist/util/Option.js.map +1 -0
- package/dist/util/TokenBucket.d.ts +59 -0
- package/dist/util/TokenBucket.d.ts.map +1 -0
- package/dist/util/TokenBucket.js +76 -0
- package/dist/util/TokenBucket.js.map +1 -0
- package/dist/util/Try.d.ts +103 -0
- package/dist/util/Try.d.ts.map +1 -0
- package/dist/util/Try.js +176 -0
- package/dist/util/Try.js.map +1 -0
- package/dist/util/WrapError.d.ts +42 -0
- package/dist/util/WrapError.d.ts.map +1 -0
- package/dist/util/WrapError.js +46 -0
- package/dist/util/WrapError.js.map +1 -0
- package/dist/worker/WorkerBroker.d.ts +29 -0
- package/dist/worker/WorkerBroker.d.ts.map +1 -0
- package/dist/worker/WorkerBroker.js +74 -0
- package/dist/worker/WorkerBroker.js.map +1 -0
- package/dist/worker/WorkerCluster.d.ts +68 -0
- package/dist/worker/WorkerCluster.d.ts.map +1 -0
- package/dist/worker/WorkerCluster.js +161 -0
- package/dist/worker/WorkerCluster.js.map +1 -0
- package/dist/worker/WorkerNode.d.ts +20 -0
- package/dist/worker/WorkerNode.d.ts.map +1 -0
- package/dist/worker/WorkerNode.js +84 -0
- package/dist/worker/WorkerNode.js.map +1 -0
- package/dist/worker/index.d.ts +6 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +4 -0
- package/dist/worker/index.js.map +1 -0
- package/package.json +148 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { Actor } from '../Actor.js';
|
|
2
|
+
import { Props } from '../Props.js';
|
|
3
|
+
import { type SupervisorStrategy } from '../Supervision.js';
|
|
4
|
+
import { type BackoffPolicy } from './BackoffPolicy.js';
|
|
5
|
+
/**
|
|
6
|
+
* BackoffSupervisor — wraps a single child actor and reschedules its
|
|
7
|
+
* restart with an exponential backoff (plus jitter). Use this when
|
|
8
|
+
* the child's failure is **transient** — flaky DB, broker reconnect
|
|
9
|
+
* window, third-party API hiccup — and immediate restart would just
|
|
10
|
+
* hammer the broken dependency.
|
|
11
|
+
*
|
|
12
|
+
* const supervisor = system.spawn(
|
|
13
|
+
* BackoffSupervisor.props({
|
|
14
|
+
* childProps: Props.create(() => new MyFlaky()),
|
|
15
|
+
* minBackoff: 200,
|
|
16
|
+
* maxBackoff: 10_000,
|
|
17
|
+
* randomFactor: 0.2,
|
|
18
|
+
* }),
|
|
19
|
+
* 'flaky-supervisor',
|
|
20
|
+
* );
|
|
21
|
+
* // Send messages to the supervisor — they're forwarded to the
|
|
22
|
+
* // current child, or stashed during a backoff window.
|
|
23
|
+
* supervisor.tell({ kind: 'do-work' }, replyTo);
|
|
24
|
+
*
|
|
25
|
+
* **Mechanism.** The supervisor:
|
|
26
|
+
*
|
|
27
|
+
* 1. Runs the child under `stoppingStrategy` so a child crash leads
|
|
28
|
+
* to a clean Stop (rather than an immediate Restart).
|
|
29
|
+
* 2. Death-watches the child (`context.watch`) and listens for
|
|
30
|
+
* `Terminated`. Either a crash-induced stop or an external
|
|
31
|
+
* `child.stop()` triggers the same backoff path — pragmatic for
|
|
32
|
+
* a v1; finer-grained "respawn only on crash" behaviour is
|
|
33
|
+
* available via the `respawnOn: 'failure'` option below.
|
|
34
|
+
* 3. On `Terminated` it schedules a single-shot timer to spawn a
|
|
35
|
+
* fresh child after `policy.delayFor(restartCount)` ms.
|
|
36
|
+
* 4. While the child is dead, user messages are buffered (`stash`
|
|
37
|
+
* mode, default) or dropped (`drop` mode). Stashed messages are
|
|
38
|
+
* flushed to the new child once it spawns, preserving sender refs
|
|
39
|
+
* so ask-replies still go to the original asker. An optional
|
|
40
|
+
* `drainGraceMs` window delays the drain so a child that crashes
|
|
41
|
+
* in `preStart` doesn't take the stash with it to dead-letter
|
|
42
|
+
* — the stash is held back until the new child has clearly
|
|
43
|
+
* survived its grace window. New messages arriving during the
|
|
44
|
+
* grace forward immediately so the happy-path latency is
|
|
45
|
+
* unaffected.
|
|
46
|
+
* 5. The restart counter resets when the child has been alive for
|
|
47
|
+
* `resetCounter` ms — default `'after-min-stable'` which uses
|
|
48
|
+
* `minBackoff` as the threshold. After a long-running successful
|
|
49
|
+
* child, the next failure starts the backoff at `minBackoff` again
|
|
50
|
+
* rather than where the last failure left off.
|
|
51
|
+
*
|
|
52
|
+
* **Out of scope (v1).**
|
|
53
|
+
* - Cluster-aware supervision. This pattern is local to the parent
|
|
54
|
+
* by design — distributed restart coordination belongs in a sharded
|
|
55
|
+
* entity or a cluster-singleton, not the supervisor.
|
|
56
|
+
* - `onFailure`-only mode (respawn only on crash, not on external
|
|
57
|
+
* stop). Workaround: configure the child to terminate itself only
|
|
58
|
+
* on errors and use an explicit `PoisonPill` for shutdown — the
|
|
59
|
+
* supervisor will respawn either way until **it** is stopped.
|
|
60
|
+
*/
|
|
61
|
+
/** Reset rule for the consecutive-restart counter. */
|
|
62
|
+
export type ResetCounter =
|
|
63
|
+
/** Never reset — the counter grows monotonically. */
|
|
64
|
+
'never'
|
|
65
|
+
/** Reset after the child has been alive for `>= minBackoff` ms. */
|
|
66
|
+
| 'after-min-stable'
|
|
67
|
+
/** Reset after the child has been alive for `>= ms` ms. */
|
|
68
|
+
| {
|
|
69
|
+
readonly kind: 'after-time';
|
|
70
|
+
readonly ms: number;
|
|
71
|
+
};
|
|
72
|
+
/** What to do with messages that arrive while the child is dead. */
|
|
73
|
+
export type ForwardStrategy =
|
|
74
|
+
/** Buffer them and re-deliver to the next child instance. */
|
|
75
|
+
'stash'
|
|
76
|
+
/** Drop them silently (the supervisor logs at debug level). */
|
|
77
|
+
| 'drop';
|
|
78
|
+
/**
|
|
79
|
+
* Which terminations should trigger a respawn (#68). Two modes,
|
|
80
|
+
* because the right answer depends on whether you treat a clean
|
|
81
|
+
* self-stop as recoverable or as a deliberate end of life:
|
|
82
|
+
*
|
|
83
|
+
* - `'any'` *(default)* — respawn on every termination, whether the
|
|
84
|
+
* child crashed (uncaught throw) or stopped itself cleanly
|
|
85
|
+
* (`context.stop(self)`, `PoisonPill`, parent-driven stop). This
|
|
86
|
+
* is the original v1 (#48) behaviour.
|
|
87
|
+
* - `'failure'` — respawn only when the child crashed. A clean
|
|
88
|
+
* self-stop is taken as "this child is done"; the supervisor
|
|
89
|
+
* itself stops afterwards instead of spawning a replacement.
|
|
90
|
+
* - `'stop'` — the inverse: respawn only on clean stops (e.g. a
|
|
91
|
+
* transient connection actor that periodically tears itself
|
|
92
|
+
* down). Crashes propagate "up" by stopping the supervisor.
|
|
93
|
+
*
|
|
94
|
+
* Matching is on the **last termination only** — the supervisor
|
|
95
|
+
* re-arms its tracking on every respawn, so a string of crashes
|
|
96
|
+
* followed by a clean stop in `'failure'` mode would respawn through
|
|
97
|
+
* each crash and then stop on the clean stop.
|
|
98
|
+
*/
|
|
99
|
+
export type TerminationTrigger = 'any' | 'failure' | 'stop';
|
|
100
|
+
export interface BackoffOptions<T> {
|
|
101
|
+
/** How to construct the child. */
|
|
102
|
+
readonly childProps: Props<T>;
|
|
103
|
+
/** Name suffix for the child. The actual child name is
|
|
104
|
+
* `${childName}-${incarnation}` so successive incarnations don't
|
|
105
|
+
* collide on names while the previous instance is still tearing down. */
|
|
106
|
+
readonly childName?: string;
|
|
107
|
+
/** Floor for the backoff delay, in ms. Must be > 0. */
|
|
108
|
+
readonly minBackoff: number;
|
|
109
|
+
/** Ceiling for the backoff delay, in ms. Must be >= `minBackoff`. */
|
|
110
|
+
readonly maxBackoff: number;
|
|
111
|
+
/** Jitter fraction in `[0, 1]`. Default `0.2`. */
|
|
112
|
+
readonly randomFactor?: number;
|
|
113
|
+
/** Custom policy — overrides the default exponential backoff. */
|
|
114
|
+
readonly policy?: BackoffPolicy;
|
|
115
|
+
/** Counter-reset rule. Default `'after-min-stable'`. */
|
|
116
|
+
readonly resetCounter?: ResetCounter;
|
|
117
|
+
/** What to do with messages while the child is dead. Default `'stash'`. */
|
|
118
|
+
readonly forward?: ForwardStrategy;
|
|
119
|
+
/**
|
|
120
|
+
* Which terminations should trigger a respawn. Default `'any'`
|
|
121
|
+
* (current v1 behaviour: respawn on crash AND on clean stop).
|
|
122
|
+
* See {@link TerminationTrigger} for the three modes.
|
|
123
|
+
*/
|
|
124
|
+
readonly triggerOn?: TerminationTrigger;
|
|
125
|
+
/** Stash buffer size (only when `forward === 'stash'`). Default 1000. */
|
|
126
|
+
readonly maxStashSize?: number;
|
|
127
|
+
/**
|
|
128
|
+
* Grace period after a respawn before stashed messages are forwarded
|
|
129
|
+
* to the new child. This protects buffered messages against children
|
|
130
|
+
* that crash in `preStart` — if the child dies during the grace
|
|
131
|
+
* window, the stash is preserved for the **next** incarnation.
|
|
132
|
+
*
|
|
133
|
+
* Default: `min(50ms, minBackoff)`. Set `0` to disable (drain
|
|
134
|
+
* immediately on spawn — the v0 behaviour).
|
|
135
|
+
*/
|
|
136
|
+
readonly drainGraceMs?: number;
|
|
137
|
+
/**
|
|
138
|
+
* What to do with messages that arrive during the grace window
|
|
139
|
+
* (after a respawn, before the child has proven it survives
|
|
140
|
+
* `drainGraceMs`). Two modes (#67):
|
|
141
|
+
*
|
|
142
|
+
* - `true` *(default)* — v1 behaviour. New messages forward
|
|
143
|
+
* immediately to the about-to-be-confirmed child; if that
|
|
144
|
+
* child dies in `preStart`, those forwarded messages
|
|
145
|
+
* dead-letter. Lowest latency on the happy path, accepts
|
|
146
|
+
* dead-letters during a preStart-crash cascade.
|
|
147
|
+
* - `false` — strict mode. New messages stash until the grace
|
|
148
|
+
* expires, then drain alongside the carry-over stash from the
|
|
149
|
+
* previous incarnation. Costs up to `drainGraceMs` of latency
|
|
150
|
+
* on the first messages after a respawn but guarantees nothing
|
|
151
|
+
* dead-letters when the child keeps crashing in `preStart`.
|
|
152
|
+
* Opt-in to fix the dead-letter cascade described in #67.
|
|
153
|
+
*
|
|
154
|
+
* Has no effect when `drainGraceMs === 0` — without a grace there
|
|
155
|
+
* is no "uncertain" window for the gate to apply to.
|
|
156
|
+
*/
|
|
157
|
+
readonly forwardDuringGrace?: boolean;
|
|
158
|
+
/** Override `Date.now`/`Math.random` for deterministic tests. */
|
|
159
|
+
readonly clock?: () => number;
|
|
160
|
+
}
|
|
161
|
+
export declare class BackoffSupervisor<T> extends Actor<unknown> {
|
|
162
|
+
/**
|
|
163
|
+
* Build a `Props` that spawns a `BackoffSupervisor` configured with
|
|
164
|
+
* the given options. Apply `withSupervisorStrategy` if you want to
|
|
165
|
+
* change how the supervisor itself is supervised (the **child** is
|
|
166
|
+
* always run under `stoppingStrategy` regardless of this).
|
|
167
|
+
*/
|
|
168
|
+
static props<T>(opts: BackoffOptions<T>): Props<unknown>;
|
|
169
|
+
private readonly opts;
|
|
170
|
+
private readonly policy;
|
|
171
|
+
private readonly childName;
|
|
172
|
+
private readonly forward;
|
|
173
|
+
private readonly stashLimit;
|
|
174
|
+
private readonly resetThresholdMs;
|
|
175
|
+
private readonly drainGraceMs;
|
|
176
|
+
private readonly clock;
|
|
177
|
+
private readonly triggerOn;
|
|
178
|
+
private readonly forwardDuringGrace;
|
|
179
|
+
/**
|
|
180
|
+
* Set by the supervisor's decider (#68) on the way to `Stop` so
|
|
181
|
+
* `handleTerminated` can distinguish a crash-driven termination from
|
|
182
|
+
* a clean self-stop. Reset after every Terminated handling so a
|
|
183
|
+
* stale "true" can't be carried over into the next incarnation's
|
|
184
|
+
* lifecycle.
|
|
185
|
+
*/
|
|
186
|
+
private lastTerminationWasFailure;
|
|
187
|
+
/**
|
|
188
|
+
* `true` once the current child has survived the `drainGraceMs`
|
|
189
|
+
* window (#67). Cleared on every spawn + Terminated. Gates
|
|
190
|
+
* direct-forwarding of new messages while the child is still in
|
|
191
|
+
* its uncertain grace period — without the gate, messages arriving
|
|
192
|
+
* between two failed respawn attempts forward straight into a
|
|
193
|
+
* crashing child and dead-letter.
|
|
194
|
+
*/
|
|
195
|
+
private childConfirmedAlive;
|
|
196
|
+
/** The currently-live child, or `null` while we're in a backoff window. */
|
|
197
|
+
private currentChild;
|
|
198
|
+
/** Counter for the **next** restart's delay (0 = first respawn). */
|
|
199
|
+
private restartCount;
|
|
200
|
+
/** Wall-clock ts of the last successful spawn, for the reset-window check. */
|
|
201
|
+
private spawnTs;
|
|
202
|
+
/** Monotonic incarnation counter — used to disambiguate child names. */
|
|
203
|
+
private incarnation;
|
|
204
|
+
/** Buffered messages waiting for the next child. */
|
|
205
|
+
private readonly stash;
|
|
206
|
+
constructor(opts: BackoffOptions<T>);
|
|
207
|
+
/**
|
|
208
|
+
* The supervisor's own strategy applied to **its child**. The
|
|
209
|
+
* decider always returns `Directive.Stop` (so the cell's restart
|
|
210
|
+
* loop doesn't fight ours), but BEFORE returning it sets
|
|
211
|
+
* {@link lastTerminationWasFailure} — that's the only place we can
|
|
212
|
+
* tell "the child crashed" apart from "the child stopped itself
|
|
213
|
+
* cleanly". `handleTerminated` reads the flag, applies the
|
|
214
|
+
* `triggerOn` policy (#68), then resets it.
|
|
215
|
+
*
|
|
216
|
+
* Users should not override this; configure the supervisor's parent
|
|
217
|
+
* instead if you want a different policy for the supervisor itself.
|
|
218
|
+
*/
|
|
219
|
+
supervisorStrategy(): SupervisorStrategy;
|
|
220
|
+
preStart(): void;
|
|
221
|
+
onReceive(message: unknown): Promise<void>;
|
|
222
|
+
postStop(): void;
|
|
223
|
+
private spawnChild;
|
|
224
|
+
private handleTerminated;
|
|
225
|
+
/**
|
|
226
|
+
* Translate the `(triggerOn, wasFailure)` pair into a respawn / stop
|
|
227
|
+
* decision (#68). Pure function — easy to unit-test in isolation
|
|
228
|
+
* if we ever want to.
|
|
229
|
+
*/
|
|
230
|
+
private shouldRespawn;
|
|
231
|
+
private respawn;
|
|
232
|
+
private drainStash;
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=BackoffSupervisor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackoffSupervisor.d.ts","sourceRoot":"","sources":["../../src/pattern/BackoffSupervisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import { match } from 'ts-pattern';
|
|
2
|
+
import { Actor } from '../Actor.js';
|
|
3
|
+
import { Props } from '../Props.js';
|
|
4
|
+
import { Directive, OneForOneStrategy, } from '../Supervision.js';
|
|
5
|
+
import { Terminated } from '../SystemMessages.js';
|
|
6
|
+
import { exponentialBackoff, } from './BackoffPolicy.js';
|
|
7
|
+
/** Default child name when the user doesn't supply one. */
|
|
8
|
+
const DEFAULT_CHILD_NAME = 'child';
|
|
9
|
+
/** Default cap so a stuck supervisor doesn't OOM the process. */
|
|
10
|
+
const DEFAULT_STASH_LIMIT = 1000;
|
|
11
|
+
export class BackoffSupervisor extends Actor {
|
|
12
|
+
/**
|
|
13
|
+
* Build a `Props` that spawns a `BackoffSupervisor` configured with
|
|
14
|
+
* the given options. Apply `withSupervisorStrategy` if you want to
|
|
15
|
+
* change how the supervisor itself is supervised (the **child** is
|
|
16
|
+
* always run under `stoppingStrategy` regardless of this).
|
|
17
|
+
*/
|
|
18
|
+
static props(opts) {
|
|
19
|
+
return Props.create(() => new BackoffSupervisor(opts));
|
|
20
|
+
}
|
|
21
|
+
opts;
|
|
22
|
+
policy;
|
|
23
|
+
childName;
|
|
24
|
+
forward;
|
|
25
|
+
stashLimit;
|
|
26
|
+
resetThresholdMs;
|
|
27
|
+
drainGraceMs;
|
|
28
|
+
clock;
|
|
29
|
+
triggerOn;
|
|
30
|
+
forwardDuringGrace;
|
|
31
|
+
/**
|
|
32
|
+
* Set by the supervisor's decider (#68) on the way to `Stop` so
|
|
33
|
+
* `handleTerminated` can distinguish a crash-driven termination from
|
|
34
|
+
* a clean self-stop. Reset after every Terminated handling so a
|
|
35
|
+
* stale "true" can't be carried over into the next incarnation's
|
|
36
|
+
* lifecycle.
|
|
37
|
+
*/
|
|
38
|
+
lastTerminationWasFailure = false;
|
|
39
|
+
/**
|
|
40
|
+
* `true` once the current child has survived the `drainGraceMs`
|
|
41
|
+
* window (#67). Cleared on every spawn + Terminated. Gates
|
|
42
|
+
* direct-forwarding of new messages while the child is still in
|
|
43
|
+
* its uncertain grace period — without the gate, messages arriving
|
|
44
|
+
* between two failed respawn attempts forward straight into a
|
|
45
|
+
* crashing child and dead-letter.
|
|
46
|
+
*/
|
|
47
|
+
childConfirmedAlive = false;
|
|
48
|
+
/** The currently-live child, or `null` while we're in a backoff window. */
|
|
49
|
+
currentChild = null;
|
|
50
|
+
/** Counter for the **next** restart's delay (0 = first respawn). */
|
|
51
|
+
restartCount = 0;
|
|
52
|
+
/** Wall-clock ts of the last successful spawn, for the reset-window check. */
|
|
53
|
+
spawnTs = 0;
|
|
54
|
+
/** Monotonic incarnation counter — used to disambiguate child names. */
|
|
55
|
+
incarnation = 0;
|
|
56
|
+
/** Buffered messages waiting for the next child. */
|
|
57
|
+
stash = [];
|
|
58
|
+
constructor(opts) {
|
|
59
|
+
super();
|
|
60
|
+
if (!Number.isFinite(opts.minBackoff) || opts.minBackoff <= 0) {
|
|
61
|
+
throw new Error(`BackoffSupervisor: minBackoff must be > 0, got ${opts.minBackoff}`);
|
|
62
|
+
}
|
|
63
|
+
if (!Number.isFinite(opts.maxBackoff) || opts.maxBackoff < opts.minBackoff) {
|
|
64
|
+
throw new Error(`BackoffSupervisor: maxBackoff (${opts.maxBackoff}) must be >= minBackoff (${opts.minBackoff})`);
|
|
65
|
+
}
|
|
66
|
+
this.opts = opts;
|
|
67
|
+
this.policy = opts.policy ?? exponentialBackoff({
|
|
68
|
+
minMs: opts.minBackoff,
|
|
69
|
+
maxMs: opts.maxBackoff,
|
|
70
|
+
randomFactor: opts.randomFactor ?? 0.2,
|
|
71
|
+
});
|
|
72
|
+
this.childName = opts.childName ?? DEFAULT_CHILD_NAME;
|
|
73
|
+
this.forward = opts.forward ?? 'stash';
|
|
74
|
+
this.stashLimit = opts.maxStashSize ?? DEFAULT_STASH_LIMIT;
|
|
75
|
+
this.resetThresholdMs = resolveResetThreshold(opts.resetCounter, opts.minBackoff);
|
|
76
|
+
if (opts.drainGraceMs !== undefined) {
|
|
77
|
+
if (!Number.isFinite(opts.drainGraceMs) || opts.drainGraceMs < 0) {
|
|
78
|
+
throw new Error(`BackoffSupervisor: drainGraceMs must be >= 0, got ${opts.drainGraceMs}`);
|
|
79
|
+
}
|
|
80
|
+
this.drainGraceMs = opts.drainGraceMs;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this.drainGraceMs = Math.min(50, opts.minBackoff);
|
|
84
|
+
}
|
|
85
|
+
this.clock = opts.clock ?? Date.now;
|
|
86
|
+
this.triggerOn = opts.triggerOn ?? 'any';
|
|
87
|
+
// Default `true` keeps the v1 fast-forward path; the dead-letter
|
|
88
|
+
// protection is opt-in (#67) because every respawn would
|
|
89
|
+
// otherwise pay `drainGraceMs` of latency on the happy path.
|
|
90
|
+
this.forwardDuringGrace = opts.forwardDuringGrace ?? true;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* The supervisor's own strategy applied to **its child**. The
|
|
94
|
+
* decider always returns `Directive.Stop` (so the cell's restart
|
|
95
|
+
* loop doesn't fight ours), but BEFORE returning it sets
|
|
96
|
+
* {@link lastTerminationWasFailure} — that's the only place we can
|
|
97
|
+
* tell "the child crashed" apart from "the child stopped itself
|
|
98
|
+
* cleanly". `handleTerminated` reads the flag, applies the
|
|
99
|
+
* `triggerOn` policy (#68), then resets it.
|
|
100
|
+
*
|
|
101
|
+
* Users should not override this; configure the supervisor's parent
|
|
102
|
+
* instead if you want a different policy for the supervisor itself.
|
|
103
|
+
*/
|
|
104
|
+
supervisorStrategy() {
|
|
105
|
+
return new OneForOneStrategy((_err) => {
|
|
106
|
+
this.lastTerminationWasFailure = true;
|
|
107
|
+
return Directive.Stop;
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
preStart() {
|
|
111
|
+
this.spawnChild();
|
|
112
|
+
}
|
|
113
|
+
async onReceive(message) {
|
|
114
|
+
if (message instanceof Terminated) {
|
|
115
|
+
this.handleTerminated(message);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
// Internal respawn tick — we only ever schedule it via timers, so
|
|
119
|
+
// any other appearance is a bug somewhere upstream.
|
|
120
|
+
if (message === RESPAWN_TICK) {
|
|
121
|
+
this.respawn();
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
// Internal drain tick — fired drainGraceMs after a respawn. If
|
|
125
|
+
// the child is still alive, mark it confirmed and drain the
|
|
126
|
+
// stash. If it died in the meantime, currentChild is null and
|
|
127
|
+
// we leave the stash for the next incarnation.
|
|
128
|
+
if (message === DRAIN_TICK) {
|
|
129
|
+
if (this.currentChild) {
|
|
130
|
+
this.childConfirmedAlive = true;
|
|
131
|
+
this.drainStash(this.currentChild);
|
|
132
|
+
}
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
// User message — forward (when confirmed alive) or stash. The
|
|
136
|
+
// `forwardDuringGrace` opt-out preserves the v1 behaviour for
|
|
137
|
+
// users who prefer zero-latency forwarding over the
|
|
138
|
+
// dead-letter-during-preStart-crash protection (#67).
|
|
139
|
+
if (this.currentChild && (this.childConfirmedAlive || this.forwardDuringGrace)) {
|
|
140
|
+
this.currentChild.tell(message, this.sender.toNullable());
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
if (this.forward === 'drop') {
|
|
144
|
+
this.log.debug('BackoffSupervisor: dropping message during backoff window', { message });
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
// 'stash' mode.
|
|
148
|
+
if (this.stash.length >= this.stashLimit) {
|
|
149
|
+
this.log.warn('BackoffSupervisor: stash full — dropping oldest message', {
|
|
150
|
+
stashLimit: this.stashLimit,
|
|
151
|
+
});
|
|
152
|
+
this.stash.shift();
|
|
153
|
+
}
|
|
154
|
+
this.stash.push({ msg: message, sender: this.sender.toNullable() });
|
|
155
|
+
}
|
|
156
|
+
postStop() {
|
|
157
|
+
// Cancel any pending respawn / drain — the cell already cancels
|
|
158
|
+
// its timers for us, but doing it explicitly keeps the intent
|
|
159
|
+
// obvious if someone refactors `timers.cancelAll`.
|
|
160
|
+
this.context.timers.cancel(RESPAWN_TIMER_KEY);
|
|
161
|
+
this.context.timers.cancel(DRAIN_TIMER_KEY);
|
|
162
|
+
this.stash.length = 0;
|
|
163
|
+
}
|
|
164
|
+
/* ------------------------- internals ---------------------------------- */
|
|
165
|
+
spawnChild() {
|
|
166
|
+
this.incarnation += 1;
|
|
167
|
+
const name = `${this.childName}-${this.incarnation}`;
|
|
168
|
+
const child = this.context.spawn(this.opts.childProps, name);
|
|
169
|
+
this.context.watch(child);
|
|
170
|
+
this.currentChild = child;
|
|
171
|
+
this.spawnTs = this.clock();
|
|
172
|
+
// Reset the alive-confirmation flag. In the default
|
|
173
|
+
// `forwardDuringGrace: true` mode this only matters for the
|
|
174
|
+
// explicit-stash carry-over (the gate doesn't apply); in the
|
|
175
|
+
// opt-in strict mode it gates new forwards until DRAIN_TICK
|
|
176
|
+
// flips it back to true. `drainGraceMs === 0` skips the grace
|
|
177
|
+
// entirely.
|
|
178
|
+
this.childConfirmedAlive = this.drainGraceMs === 0;
|
|
179
|
+
if (this.drainGraceMs === 0) {
|
|
180
|
+
this.drainStash(child);
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
// Wait one grace period before flipping confirmedAlive AND
|
|
184
|
+
// draining the stash — a child that crashes in `preStart`
|
|
185
|
+
// doesn't take the stash with it to dead-letter, and (with
|
|
186
|
+
// `forwardDuringGrace: false`, the default) new messages
|
|
187
|
+
// arriving in the post-respawn window are stashed too.
|
|
188
|
+
this.context.timers.startSingleTimer(DRAIN_TIMER_KEY, DRAIN_TICK, this.drainGraceMs);
|
|
189
|
+
}
|
|
190
|
+
handleTerminated(t) {
|
|
191
|
+
// Ignore stale Terminated messages from a previous incarnation —
|
|
192
|
+
// can happen if we already started a respawn before the old ref's
|
|
193
|
+
// Terminated finished its trip through the mailbox.
|
|
194
|
+
if (!this.currentChild || !t.actor.equals(this.currentChild)) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
// Snapshot + clear the failure flag set by the decider. Doing it
|
|
198
|
+
// here (not later) keeps the supervisor's state clean even if the
|
|
199
|
+
// triggerOn check causes us to stop ourselves and skip the rest.
|
|
200
|
+
const wasFailure = this.lastTerminationWasFailure;
|
|
201
|
+
this.lastTerminationWasFailure = false;
|
|
202
|
+
if (!this.shouldRespawn(wasFailure)) {
|
|
203
|
+
this.log.info('BackoffSupervisor: child terminated, triggerOn rejected — supervisor stops', {
|
|
204
|
+
child: t.actor.toString(),
|
|
205
|
+
cause: wasFailure ? 'failure' : 'stop',
|
|
206
|
+
triggerOn: this.triggerOn,
|
|
207
|
+
});
|
|
208
|
+
// Stop ourselves — the parent (or whoever spawned us) gets a
|
|
209
|
+
// Terminated for the supervisor and decides what to do next.
|
|
210
|
+
this.currentChild = null;
|
|
211
|
+
this.childConfirmedAlive = false;
|
|
212
|
+
this.context.timers.cancel(DRAIN_TIMER_KEY);
|
|
213
|
+
this.context.stop(this.self);
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
const aliveFor = this.clock() - this.spawnTs;
|
|
217
|
+
if (this.resetThresholdMs !== null && aliveFor >= this.resetThresholdMs) {
|
|
218
|
+
this.restartCount = 0;
|
|
219
|
+
}
|
|
220
|
+
const delay = this.policy.delayFor(this.restartCount);
|
|
221
|
+
this.restartCount += 1;
|
|
222
|
+
this.currentChild = null;
|
|
223
|
+
// Reset the alive-confirmation flag (#67) — the next spawn starts
|
|
224
|
+
// its grace window from scratch, and any messages arriving
|
|
225
|
+
// between now and that spawn must stash, not forward.
|
|
226
|
+
this.childConfirmedAlive = false;
|
|
227
|
+
// Cancel any pending drain — the child it was waiting on is gone.
|
|
228
|
+
// The stash itself is preserved for the next incarnation.
|
|
229
|
+
this.context.timers.cancel(DRAIN_TIMER_KEY);
|
|
230
|
+
this.context.timers.startSingleTimer(RESPAWN_TIMER_KEY, RESPAWN_TICK, Math.max(0, Math.round(delay)));
|
|
231
|
+
this.log.info('BackoffSupervisor: child terminated, respawn scheduled', {
|
|
232
|
+
child: t.actor.toString(),
|
|
233
|
+
cause: wasFailure ? 'failure' : 'stop',
|
|
234
|
+
delayMs: delay,
|
|
235
|
+
restartCount: this.restartCount,
|
|
236
|
+
aliveMs: aliveFor,
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Translate the `(triggerOn, wasFailure)` pair into a respawn / stop
|
|
241
|
+
* decision (#68). Pure function — easy to unit-test in isolation
|
|
242
|
+
* if we ever want to.
|
|
243
|
+
*/
|
|
244
|
+
shouldRespawn(wasFailure) {
|
|
245
|
+
// Exhaustive match — adding a new TerminationTrigger variant
|
|
246
|
+
// forces this site to be updated (TS error otherwise).
|
|
247
|
+
return match(this.triggerOn)
|
|
248
|
+
.with('any', () => true)
|
|
249
|
+
.with('failure', () => wasFailure)
|
|
250
|
+
.with('stop', () => !wasFailure)
|
|
251
|
+
.exhaustive();
|
|
252
|
+
}
|
|
253
|
+
respawn() {
|
|
254
|
+
if (this.currentChild !== null) {
|
|
255
|
+
// Defensive — should never happen, but a lingering tick is a
|
|
256
|
+
// correctness hazard worth a log line.
|
|
257
|
+
this.log.warn('BackoffSupervisor: respawn tick fired with a live child — ignoring');
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
this.spawnChild();
|
|
261
|
+
}
|
|
262
|
+
drainStash(child) {
|
|
263
|
+
if (this.stash.length === 0)
|
|
264
|
+
return;
|
|
265
|
+
const drained = this.stash.splice(0, this.stash.length);
|
|
266
|
+
for (const { msg, sender } of drained) {
|
|
267
|
+
child.tell(msg, sender);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
/** Sentinel for the respawn timer message. */
|
|
272
|
+
const RESPAWN_TICK = Symbol.for('actor-ts.pattern.BackoffSupervisor.respawn');
|
|
273
|
+
const RESPAWN_TIMER_KEY = 'actor-ts.pattern.BackoffSupervisor.respawn';
|
|
274
|
+
/** Sentinel for the stash-drain timer message. */
|
|
275
|
+
const DRAIN_TICK = Symbol.for('actor-ts.pattern.BackoffSupervisor.drain');
|
|
276
|
+
const DRAIN_TIMER_KEY = 'actor-ts.pattern.BackoffSupervisor.drain';
|
|
277
|
+
function resolveResetThreshold(rule, minBackoff) {
|
|
278
|
+
// Exhaustive over `ResetCounter | undefined`. `undefined` maps to
|
|
279
|
+
// the same default behaviour as 'after-min-stable'. Adding a new
|
|
280
|
+
// ResetCounter variant forces this site to be updated.
|
|
281
|
+
return match(rule)
|
|
282
|
+
.with(undefined, 'after-min-stable', () => minBackoff)
|
|
283
|
+
.with('never', () => null)
|
|
284
|
+
.with({ kind: 'after-time' }, (r) => {
|
|
285
|
+
if (!Number.isFinite(r.ms) || r.ms < 0) {
|
|
286
|
+
throw new Error(`BackoffSupervisor: resetCounter.ms must be a non-negative number, got ${r.ms}`);
|
|
287
|
+
}
|
|
288
|
+
return r.ms;
|
|
289
|
+
})
|
|
290
|
+
.exhaustive();
|
|
291
|
+
}
|
|
292
|
+
//# sourceMappingURL=BackoffSupervisor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackoffSupervisor.js","sourceRoot":"","sources":["../../src/pattern/BackoffSupervisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export type CircuitState = 'closed' | 'open' | 'half-open';
|
|
2
|
+
export interface CircuitBreakerSettings {
|
|
3
|
+
/** Consecutive failures before the breaker opens. Must be >= 1. */
|
|
4
|
+
readonly maxFailures: number;
|
|
5
|
+
/** How long the breaker stays open before letting a probe through. ms. */
|
|
6
|
+
readonly resetTimeoutMs: number;
|
|
7
|
+
/** Per-call timeout; exceeding this counts as a failure. */
|
|
8
|
+
readonly callTimeoutMs?: number;
|
|
9
|
+
/** Optional: classify errors as non-failures to bypass breaker counting. */
|
|
10
|
+
readonly isFailure?: (err: Error) => boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare class CircuitBreakerOpenError extends Error {
|
|
13
|
+
constructor(message?: string);
|
|
14
|
+
}
|
|
15
|
+
export declare class CircuitBreakerTimeoutError extends Error {
|
|
16
|
+
constructor(ms: number);
|
|
17
|
+
}
|
|
18
|
+
type StateListener = (state: CircuitState) => void;
|
|
19
|
+
/**
|
|
20
|
+
* Three-state circuit breaker. Wraps calls that might fail — when enough
|
|
21
|
+
* fail in a row the breaker "opens" and refuses further calls for a
|
|
22
|
+
* timeout window. The first call after the timeout probes the upstream
|
|
23
|
+
* ("half-open"); if it succeeds, the breaker closes and normal operation
|
|
24
|
+
* resumes.
|
|
25
|
+
*
|
|
26
|
+
* Not tied to actors — works with any `() => Promise<T>` factory. For
|
|
27
|
+
* actor-based usage, wrap `ask(target, msg, timeout)` in the factory.
|
|
28
|
+
*/
|
|
29
|
+
export declare class CircuitBreaker {
|
|
30
|
+
readonly settings: CircuitBreakerSettings;
|
|
31
|
+
private _state;
|
|
32
|
+
private failureCount;
|
|
33
|
+
private nextProbeAt;
|
|
34
|
+
private readonly listeners;
|
|
35
|
+
constructor(settings: CircuitBreakerSettings);
|
|
36
|
+
get state(): CircuitState;
|
|
37
|
+
/** Call `factory` under breaker supervision. Throws `CircuitBreakerOpenError` when open. */
|
|
38
|
+
call<T>(factory: () => Promise<T>): Promise<T>;
|
|
39
|
+
/** Observe state transitions — useful for logging/metrics. */
|
|
40
|
+
onStateChange(listener: StateListener): () => void;
|
|
41
|
+
/** Force the breaker into a specific state (mostly for tests / admin). */
|
|
42
|
+
setState(next: CircuitState): void;
|
|
43
|
+
private onSuccess;
|
|
44
|
+
private onFailure;
|
|
45
|
+
private maybeTransitionToHalfOpen;
|
|
46
|
+
private applyTimeout;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=CircuitBreaker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CircuitBreaker.d.ts","sourceRoot":"","sources":["../../src/pattern/CircuitBreaker.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACrC,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,OAAO,CAAC;CAC9C;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,SAA4B;CAIhD;AAED,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,EAAE,EAAE,MAAM;CAIvB;AAED,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAEnD;;;;;;;;;GASG;AACH,qBAAa,cAAc;aAMG,QAAQ,EAAE,sBAAsB;IAL5D,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;gBAE1B,QAAQ,EAAE,sBAAsB;IAS5D,IAAI,KAAK,IAAI,YAAY,CAAwB;IAEjD,6FAA6F;IACvF,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAoBpD,8DAA8D;IAC9D,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI;IAKlD,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAQlC,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,yBAAyB;IAKjC,OAAO,CAAC,YAAY;CASrB"}
|