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,230 @@
|
|
|
1
|
+
import { PersistentActor } from '../persistence/PersistentActor.js';
|
|
2
|
+
/**
|
|
3
|
+
* Persistent finite-state machine (#52) — the durable counterpart to
|
|
4
|
+
* {@link FSM}. Combines:
|
|
5
|
+
*
|
|
6
|
+
* - **State machine semantics** — a small named state set, a
|
|
7
|
+
* transition table, and pure event-application.
|
|
8
|
+
* - **Event sourcing** — every transition is a persisted event;
|
|
9
|
+
* recovery replays them through `applyEvent` to rebuild both
|
|
10
|
+
* the state name and the domain data.
|
|
11
|
+
*
|
|
12
|
+
* Natural fit for order workflows, reservation flows, payment
|
|
13
|
+
* adjudication, claim pipelines — anything that's "current state +
|
|
14
|
+
* transition events" instead of "current state + arbitrary mutation".
|
|
15
|
+
*
|
|
16
|
+
* type State = 'pending' | 'paid' | 'shipped' | 'cancelled';
|
|
17
|
+
* type Event = { kind: 'paid' } | { kind: 'shipped' } | { kind: 'cancelled' };
|
|
18
|
+
* type Cmd = { kind: 'pay' } | { kind: 'ship' } | { kind: 'cancel' };
|
|
19
|
+
* interface Data { items: string[]; total: number }
|
|
20
|
+
*
|
|
21
|
+
* class OrderFsm extends PersistentFSM<Cmd, Event, State, Data> {
|
|
22
|
+
* readonly persistenceId = 'order-1';
|
|
23
|
+
* initialFsmState() { return 'pending' as const; }
|
|
24
|
+
* initialData(): Data { return { items: [], total: 0 }; }
|
|
25
|
+
*
|
|
26
|
+
* transitions = {
|
|
27
|
+
* pending: {
|
|
28
|
+
* pay: { event: { kind: 'paid' } as const, next: 'paid' as const },
|
|
29
|
+
* cancel: { event: { kind: 'cancelled' } as const, next: 'cancelled' as const },
|
|
30
|
+
* },
|
|
31
|
+
* paid: {
|
|
32
|
+
* ship: { event: { kind: 'shipped' } as const, next: 'shipped' as const },
|
|
33
|
+
* },
|
|
34
|
+
* };
|
|
35
|
+
*
|
|
36
|
+
* applyEvent(state: State, data: Data, e: Event) {
|
|
37
|
+
* if (e.kind === 'paid') return { state: 'paid' as State, data };
|
|
38
|
+
* if (e.kind === 'shipped') return { state: 'shipped' as State, data };
|
|
39
|
+
* if (e.kind === 'cancelled') return { state: 'cancelled' as State, data };
|
|
40
|
+
* return { state, data };
|
|
41
|
+
* }
|
|
42
|
+
* }
|
|
43
|
+
*
|
|
44
|
+
* **What the base class does for you.**
|
|
45
|
+
*
|
|
46
|
+
* - On a command, looks up `transitions[currentFsmState][cmd.kind]`.
|
|
47
|
+
* If no entry: **invalid transition** — logged at warn, no event
|
|
48
|
+
* persisted, no state change.
|
|
49
|
+
* - If the entry has a `guard` and the guard returns false: same
|
|
50
|
+
* outcome — logged at debug, no event persisted.
|
|
51
|
+
* - Otherwise, evaluates the entry's `event` (literal or function),
|
|
52
|
+
* persists it, and applies it via `applyEvent`.
|
|
53
|
+
* - `applyEvent` is the source of truth for state + data updates;
|
|
54
|
+
* it runs both at command time and during recovery, so the FSM
|
|
55
|
+
* is rebuilt deterministically.
|
|
56
|
+
*
|
|
57
|
+
* **State timeouts (#65).** An entry may declare a special
|
|
58
|
+
* `_timeout: { afterMs, event, next, guard? }` field that arms a
|
|
59
|
+
* one-shot timer when the FSM enters the state. If `afterMs` elapses
|
|
60
|
+
* before any command transitions out, the FSM auto-fires the timeout
|
|
61
|
+
* event through the same persist-then-apply pipeline. See
|
|
62
|
+
* {@link FsmStateTimeout}. Fresh-armed on every state transition;
|
|
63
|
+
* cancelled when the FSM transitions away (or stops). Recovery
|
|
64
|
+
* re-arms the timer relative to the wall-clock at recovery
|
|
65
|
+
* completion — i.e., a long-stopped FSM gets a fresh `afterMs`
|
|
66
|
+
* window after restart, deliberately conservative to avoid spurious
|
|
67
|
+
* "already-expired" fires.
|
|
68
|
+
*
|
|
69
|
+
* **Snapshots / event adapter / encryption.** Inherited from
|
|
70
|
+
* `PersistentActor` — override `snapshotPolicy`, `eventAdapter`,
|
|
71
|
+
* `compression`, etc. exactly as you would on a plain
|
|
72
|
+
* `PersistentActor`. The combined `{ state, data }` is what gets
|
|
73
|
+
* snapshotted.
|
|
74
|
+
*
|
|
75
|
+
* **Out of scope (per issue).**
|
|
76
|
+
*
|
|
77
|
+
* - Multiple events per command — drop down to overriding
|
|
78
|
+
* `onCommand` directly and call `persistAll([...])`.
|
|
79
|
+
* - Per-transition timeouts (the timeout is a per-state property,
|
|
80
|
+
* not a per-transition one).
|
|
81
|
+
*/
|
|
82
|
+
/** Combined state held by the underlying `PersistentActor`. */
|
|
83
|
+
export interface FsmStateData<S extends string, D> {
|
|
84
|
+
readonly state: S;
|
|
85
|
+
readonly data: D;
|
|
86
|
+
}
|
|
87
|
+
/** One entry in the transition table. */
|
|
88
|
+
export interface FsmTransition<SName extends string, Cmd, Event, Data> {
|
|
89
|
+
/**
|
|
90
|
+
* Event(s) to persist when this transition fires. Three shapes:
|
|
91
|
+
*
|
|
92
|
+
* - **Literal** — `{ kind: 'paid' }`: a single event persisted
|
|
93
|
+
* atomically as one journal entry.
|
|
94
|
+
* - **Array** — `[evtA, evtB]`: multiple events persisted in
|
|
95
|
+
* one `persistAll` call (#66) so they share a logical
|
|
96
|
+
* transaction; `applyEvent` runs once per event and the
|
|
97
|
+
* post-apply final state is checked against `next`. An
|
|
98
|
+
* empty array is treated as a no-op transition (no events
|
|
99
|
+
* persisted, no state change) — use a `guard` instead if
|
|
100
|
+
* "skip on this condition" is the actual intent.
|
|
101
|
+
* - **Function** — `(cmd, data) => Event | Event[]`: lazily
|
|
102
|
+
* evaluated when the transition fires; otherwise behaves
|
|
103
|
+
* exactly like the literal / array forms above.
|
|
104
|
+
*/
|
|
105
|
+
readonly event: Event | Event[] | ((cmd: Cmd, data: Data) => Event | Event[]);
|
|
106
|
+
/**
|
|
107
|
+
* State name the FSM moves to after every event applies. When
|
|
108
|
+
* `event` is an array, only the **final** post-replay state is
|
|
109
|
+
* compared against `next` — intermediate transitions inside the
|
|
110
|
+
* array don't have to match. Mainly informational; `applyEvent`
|
|
111
|
+
* is what actually drives the transition.
|
|
112
|
+
*/
|
|
113
|
+
readonly next: SName;
|
|
114
|
+
/**
|
|
115
|
+
* Optional pre-check — if it returns `false`, the transition
|
|
116
|
+
* is skipped (no event persisted, no state change). Use for
|
|
117
|
+
* conditional dispatch like "pay only if amount > 0". Logged
|
|
118
|
+
* at debug.
|
|
119
|
+
*/
|
|
120
|
+
readonly guard?: (cmd: Cmd, data: Data) => boolean;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Time-based transition for a state (#65). Declared under the magic
|
|
124
|
+
* `_timeout` key in a state's transition map; cannot collide with a
|
|
125
|
+
* real command kind because `kind: '_timeout'` is reserved.
|
|
126
|
+
*
|
|
127
|
+
* On entering the state the FSM arms a one-shot timer for `afterMs`.
|
|
128
|
+
* If the timer fires while still in the state (no command transitioned
|
|
129
|
+
* the FSM out in the meantime, and the optional `guard` accepts), the
|
|
130
|
+
* declared `event` is persisted and `applyEvent` runs as if a real
|
|
131
|
+
* command had triggered it.
|
|
132
|
+
*/
|
|
133
|
+
export interface FsmStateTimeout<SName extends string, Event, Data> {
|
|
134
|
+
/** How long to wait before auto-firing the event. Required. */
|
|
135
|
+
readonly afterMs: number;
|
|
136
|
+
/**
|
|
137
|
+
* Event(s) to persist when the timer fires. Same shape as a
|
|
138
|
+
* regular transition (#66) — single literal, array, or function
|
|
139
|
+
* returning either. An empty array is a no-op fire (timer
|
|
140
|
+
* cancelled, no transition, no events persisted).
|
|
141
|
+
*/
|
|
142
|
+
readonly event: Event | Event[] | ((data: Data) => Event | Event[]);
|
|
143
|
+
/** Target state. Verified against `applyEvent`'s output, like {@link FsmTransition}. */
|
|
144
|
+
readonly next: SName;
|
|
145
|
+
/** Optional pre-fire guard — `false` cancels the timeout silently. */
|
|
146
|
+
readonly guard?: (data: Data) => boolean;
|
|
147
|
+
}
|
|
148
|
+
/** Reserved key under which {@link FsmStateTimeout} lives in a state's config. */
|
|
149
|
+
export declare const FSM_TIMEOUT_KEY: "_timeout";
|
|
150
|
+
/**
|
|
151
|
+
* Transition table — `state` × `cmd.kind` → transition entry. The
|
|
152
|
+
* mapped type narrows `Cmd` to the matching variant inside each
|
|
153
|
+
* entry so the entry's callbacks see the right command shape. An
|
|
154
|
+
* optional `_timeout` field declares the per-state timeout (#65).
|
|
155
|
+
*/
|
|
156
|
+
export type FsmTransitionMap<SName extends string, Cmd extends {
|
|
157
|
+
readonly kind: string;
|
|
158
|
+
}, Event, Data> = {
|
|
159
|
+
readonly [state in SName]?: {
|
|
160
|
+
readonly [K in Cmd['kind']]?: FsmTransition<SName, Extract<Cmd, {
|
|
161
|
+
kind: K;
|
|
162
|
+
}>, Event, Data>;
|
|
163
|
+
} & {
|
|
164
|
+
readonly _timeout?: FsmStateTimeout<SName, Event, Data>;
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
export declare abstract class PersistentFSM<Cmd extends {
|
|
168
|
+
readonly kind: string;
|
|
169
|
+
}, Event, SName extends string, Data> extends PersistentActor<Cmd, Event, FsmStateData<SName, Data>> {
|
|
170
|
+
/** Starting state name when no events have been replayed. */
|
|
171
|
+
abstract initialFsmState(): SName;
|
|
172
|
+
/** Starting data when no events have been replayed. */
|
|
173
|
+
abstract initialData(): Data;
|
|
174
|
+
/**
|
|
175
|
+
* Pure event-application — updates both state name and data.
|
|
176
|
+
* Runs at persist-time (forward) AND at recovery-time (replay),
|
|
177
|
+
* so it MUST be deterministic and free of side effects.
|
|
178
|
+
*/
|
|
179
|
+
abstract applyEvent(state: SName, data: Data, event: Event): FsmStateData<SName, Data>;
|
|
180
|
+
/**
|
|
181
|
+
* Transition table. Implementations typically declare it as a
|
|
182
|
+
* class field so the type-narrowing in `FsmTransitionMap` works
|
|
183
|
+
* at the call site (`transitions[state][cmdKind]`).
|
|
184
|
+
*/
|
|
185
|
+
abstract transitions: FsmTransitionMap<SName, Cmd, Event, Data>;
|
|
186
|
+
/**
|
|
187
|
+
* Hook invoked when a command has no matching transition for the
|
|
188
|
+
* current state. Default: warn + drop (no event persisted).
|
|
189
|
+
* Override to throw, send a reply, etc.
|
|
190
|
+
*/
|
|
191
|
+
protected onInvalidTransition(state: SName, cmd: Cmd): void | Promise<void>;
|
|
192
|
+
/**
|
|
193
|
+
* Hook invoked when a transition's `guard` returns false. Default
|
|
194
|
+
* is a debug log + drop.
|
|
195
|
+
*/
|
|
196
|
+
protected onGuardRejected(state: SName, cmd: Cmd): void | Promise<void>;
|
|
197
|
+
/** Current FSM state name. Reliable after recovery. */
|
|
198
|
+
protected get currentFsmState(): SName;
|
|
199
|
+
/** Current FSM data. Reliable after recovery. */
|
|
200
|
+
protected get currentData(): Data;
|
|
201
|
+
/** Currently-armed timer, if any. Cancelled on transition or stop. */
|
|
202
|
+
private _timeoutTimer;
|
|
203
|
+
initialState(): FsmStateData<SName, Data>;
|
|
204
|
+
onEvent(curr: FsmStateData<SName, Data>, event: Event): FsmStateData<SName, Data>;
|
|
205
|
+
onRecoveryComplete(_state: FsmStateData<SName, Data>): void | Promise<void>;
|
|
206
|
+
postStop(): Promise<void>;
|
|
207
|
+
/**
|
|
208
|
+
* Intercept the internal `__fsm_state_timeout__` self-tell that the
|
|
209
|
+
* armed timer routes through the mailbox. Real user commands
|
|
210
|
+
* delegate straight to `super.onReceive` (which handles recovery
|
|
211
|
+
* stash + persist gating + dispatch to {@link onCommand}).
|
|
212
|
+
*/
|
|
213
|
+
onReceive(message: Cmd): Promise<void>;
|
|
214
|
+
onCommand(curr: FsmStateData<SName, Data>, cmd: Cmd): Promise<void>;
|
|
215
|
+
/**
|
|
216
|
+
* Cancel any in-flight timer and, if the current state has a
|
|
217
|
+
* `_timeout` config, arm a fresh one. Called after every state
|
|
218
|
+
* transition (forward, recovery, and timeout-driven).
|
|
219
|
+
*/
|
|
220
|
+
private armTimerForCurrentState;
|
|
221
|
+
private cancelTimer;
|
|
222
|
+
/**
|
|
223
|
+
* Apply a `_timeout` transition: re-validate state (no-op if a
|
|
224
|
+
* command already transitioned the FSM out), evaluate the event,
|
|
225
|
+
* persist + re-arm. Same shape as {@link onCommand}'s persist
|
|
226
|
+
* dance — keeps the post-apply state-name verification.
|
|
227
|
+
*/
|
|
228
|
+
private fireTimeoutTransition;
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=PersistentFSM.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PersistentFSM.d.ts","sourceRoot":"","sources":["../../src/fsm/PersistentFSM.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { PersistentActor } from '../persistence/PersistentActor.js';
|
|
2
|
+
/** Reserved key under which {@link FsmStateTimeout} lives in a state's config. */
|
|
3
|
+
export const FSM_TIMEOUT_KEY = '_timeout';
|
|
4
|
+
/* ============================== base class ============================== */
|
|
5
|
+
export class PersistentFSM extends PersistentActor {
|
|
6
|
+
/**
|
|
7
|
+
* Hook invoked when a command has no matching transition for the
|
|
8
|
+
* current state. Default: warn + drop (no event persisted).
|
|
9
|
+
* Override to throw, send a reply, etc.
|
|
10
|
+
*/
|
|
11
|
+
onInvalidTransition(state, cmd) {
|
|
12
|
+
this.log.warn(`PersistentFSM: no transition for cmd '${cmd.kind}' in state '${state}' — dropped`);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Hook invoked when a transition's `guard` returns false. Default
|
|
16
|
+
* is a debug log + drop.
|
|
17
|
+
*/
|
|
18
|
+
onGuardRejected(state, cmd) {
|
|
19
|
+
this.log.debug(`PersistentFSM: guard rejected cmd '${cmd.kind}' in state '${state}' — dropped`);
|
|
20
|
+
}
|
|
21
|
+
/* --------------------------- read-only views -------------------------- */
|
|
22
|
+
/** Current FSM state name. Reliable after recovery. */
|
|
23
|
+
get currentFsmState() { return this.state.state; }
|
|
24
|
+
/** Current FSM data. Reliable after recovery. */
|
|
25
|
+
get currentData() { return this.state.data; }
|
|
26
|
+
/* ----------------------- internal: timeout state ---------------------- */
|
|
27
|
+
/** Currently-armed timer, if any. Cancelled on transition or stop. */
|
|
28
|
+
_timeoutTimer = null;
|
|
29
|
+
/* --------------- PersistentActor hooks (implemented for you) --------------- */
|
|
30
|
+
initialState() {
|
|
31
|
+
return { state: this.initialFsmState(), data: this.initialData() };
|
|
32
|
+
}
|
|
33
|
+
onEvent(curr, event) {
|
|
34
|
+
return this.applyEvent(curr.state, curr.data, event);
|
|
35
|
+
}
|
|
36
|
+
onRecoveryComplete(_state) {
|
|
37
|
+
// Arm the timer fresh after recovery — we deliberately don't try
|
|
38
|
+
// to recompute "remaining time" from the original state-entry
|
|
39
|
+
// moment. Restarted FSMs get a fresh `afterMs` window; spurious
|
|
40
|
+
// immediate-fires are worse than a slightly-extended timeout.
|
|
41
|
+
this.armTimerForCurrentState();
|
|
42
|
+
}
|
|
43
|
+
async postStop() {
|
|
44
|
+
this.cancelTimer();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Intercept the internal `__fsm_state_timeout__` self-tell that the
|
|
48
|
+
* armed timer routes through the mailbox. Real user commands
|
|
49
|
+
* delegate straight to `super.onReceive` (which handles recovery
|
|
50
|
+
* stash + persist gating + dispatch to {@link onCommand}).
|
|
51
|
+
*/
|
|
52
|
+
async onReceive(message) {
|
|
53
|
+
const tagged = message;
|
|
54
|
+
if (tagged.kind === '__fsm_state_timeout__') {
|
|
55
|
+
await this.fireTimeoutTransition(tagged.stateAtArm);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
await super.onReceive(message);
|
|
59
|
+
}
|
|
60
|
+
async onCommand(curr, cmd) {
|
|
61
|
+
const stateEntry = this.transitions[curr.state];
|
|
62
|
+
const transition = stateEntry?.[cmd.kind];
|
|
63
|
+
if (!transition) {
|
|
64
|
+
await this.onInvalidTransition(curr.state, cmd);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (transition.guard && !transition.guard(cmd, curr.data)) {
|
|
68
|
+
await this.onGuardRejected(curr.state, cmd);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const evaluated = typeof transition.event === 'function'
|
|
72
|
+
? transition.event(cmd, curr.data)
|
|
73
|
+
: transition.event;
|
|
74
|
+
const events = Array.isArray(evaluated) ? evaluated : [evaluated];
|
|
75
|
+
if (events.length === 0) {
|
|
76
|
+
// Empty array → no events to persist, no state change. Treat
|
|
77
|
+
// as a "guard returned false" outcome from the user's POV.
|
|
78
|
+
this.log.debug(`PersistentFSM: cmd '${cmd.kind}' in state '${curr.state}' produced an empty event array — dropped`);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
await this.persistAll(events, (next) => {
|
|
82
|
+
// Sanity check: the user's `applyEvent` and the table's `next`
|
|
83
|
+
// should agree on the target state after the FINAL event. A
|
|
84
|
+
// mismatch is almost always a bug — surface it loud rather
|
|
85
|
+
// than silently letting the FSM drift away from its declared
|
|
86
|
+
// graph. Intermediate states (events[0]..[N-2] applied) are
|
|
87
|
+
// not checked.
|
|
88
|
+
if (next.state !== transition.next) {
|
|
89
|
+
this.log.warn(`PersistentFSM: applyEvent for cmd '${cmd.kind}' in state '${curr.state}' `
|
|
90
|
+
+ `produced state '${next.state}' but transition declared 'next: ${transition.next}'`);
|
|
91
|
+
}
|
|
92
|
+
// Re-arm the timer for the new state — cancels any previously-
|
|
93
|
+
// armed timer first, schedules the new one if the new state
|
|
94
|
+
// has a `_timeout` entry.
|
|
95
|
+
this.armTimerForCurrentState();
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/* ---------------------- internal: timer plumbing ---------------------- */
|
|
99
|
+
/**
|
|
100
|
+
* Cancel any in-flight timer and, if the current state has a
|
|
101
|
+
* `_timeout` config, arm a fresh one. Called after every state
|
|
102
|
+
* transition (forward, recovery, and timeout-driven).
|
|
103
|
+
*/
|
|
104
|
+
armTimerForCurrentState() {
|
|
105
|
+
this.cancelTimer();
|
|
106
|
+
const state = this.currentFsmState;
|
|
107
|
+
const timeout = this.transitions[state]?.[FSM_TIMEOUT_KEY];
|
|
108
|
+
if (!timeout)
|
|
109
|
+
return;
|
|
110
|
+
const stateAtArm = state;
|
|
111
|
+
this._timeoutTimer = this.system.scheduler.scheduleOnceFn(timeout.afterMs, () => {
|
|
112
|
+
this._timeoutTimer = null;
|
|
113
|
+
// Route through the mailbox so the fire interleaves cleanly
|
|
114
|
+
// with regular commands — `onReceive` intercepts it.
|
|
115
|
+
const fire = {
|
|
116
|
+
kind: '__fsm_state_timeout__',
|
|
117
|
+
stateAtArm,
|
|
118
|
+
};
|
|
119
|
+
this.self.tell(fire);
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
cancelTimer() {
|
|
123
|
+
if (this._timeoutTimer) {
|
|
124
|
+
this._timeoutTimer.cancel();
|
|
125
|
+
this._timeoutTimer = null;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Apply a `_timeout` transition: re-validate state (no-op if a
|
|
130
|
+
* command already transitioned the FSM out), evaluate the event,
|
|
131
|
+
* persist + re-arm. Same shape as {@link onCommand}'s persist
|
|
132
|
+
* dance — keeps the post-apply state-name verification.
|
|
133
|
+
*/
|
|
134
|
+
async fireTimeoutTransition(stateAtArm) {
|
|
135
|
+
const curr = this.state;
|
|
136
|
+
if (curr.state !== stateAtArm) {
|
|
137
|
+
// A command transitioned us out before the timer message landed
|
|
138
|
+
// in the mailbox — the user's command takes precedence. Re-arm
|
|
139
|
+
// for the new state (in case the new state itself has a timeout
|
|
140
|
+
// and we're catching up after a flurry of late mailbox traffic).
|
|
141
|
+
this.armTimerForCurrentState();
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const timeout = this.transitions[curr.state]?.[FSM_TIMEOUT_KEY];
|
|
145
|
+
if (!timeout)
|
|
146
|
+
return;
|
|
147
|
+
if (timeout.guard && !timeout.guard(curr.data)) {
|
|
148
|
+
this.log.debug(`PersistentFSM: state-timeout guard rejected fire in state '${curr.state}' — dropped`);
|
|
149
|
+
this.armTimerForCurrentState();
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const evaluated = typeof timeout.event === 'function'
|
|
153
|
+
? timeout.event(curr.data)
|
|
154
|
+
: timeout.event;
|
|
155
|
+
const events = Array.isArray(evaluated) ? evaluated : [evaluated];
|
|
156
|
+
if (events.length === 0) {
|
|
157
|
+
this.log.debug(`PersistentFSM: state-timeout in state '${curr.state}' produced an empty event array — dropped`);
|
|
158
|
+
this.armTimerForCurrentState();
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
await this.persistAll(events, (next) => {
|
|
162
|
+
if (next.state !== timeout.next) {
|
|
163
|
+
this.log.warn(`PersistentFSM: applyEvent for state-timeout in state '${curr.state}' `
|
|
164
|
+
+ `produced state '${next.state}' but timeout declared 'next: ${timeout.next}'`);
|
|
165
|
+
}
|
|
166
|
+
this.armTimerForCurrentState();
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=PersistentFSM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PersistentFSM.js","sourceRoot":"","sources":["../../src/fsm/PersistentFSM.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { FSM } from './FSM.js';
|
|
2
|
+
export type { Transition, StayTransition, FsmResult, StateHandler, TransitionCallback, } from './FSM.js';
|
|
3
|
+
export { PersistentFSM } from './PersistentFSM.js';
|
|
4
|
+
export type { FsmStateData, FsmTransition, FsmTransitionMap, } from './PersistentFSM.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fsm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,YAAY,EACV,UAAU,EACV,cAAc,EACd,SAAS,EACT,YAAY,EACZ,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EACV,YAAY,EACZ,aAAa,EACb,gBAAgB,GACjB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fsm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAS/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { HttpMethod } from './types.js';
|
|
2
|
+
export interface HttpClientRequest {
|
|
3
|
+
readonly method: HttpMethod;
|
|
4
|
+
readonly url: string | URL;
|
|
5
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
6
|
+
readonly body?: string | Uint8Array | object | null;
|
|
7
|
+
/** Abort the request after this many milliseconds. */
|
|
8
|
+
readonly timeoutMs?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface HttpClientResponse {
|
|
11
|
+
readonly status: number;
|
|
12
|
+
readonly headers: Readonly<Record<string, string>>;
|
|
13
|
+
readonly body: Uint8Array;
|
|
14
|
+
/** Decode body as UTF-8 text. */
|
|
15
|
+
text(): string;
|
|
16
|
+
/** Decode body as JSON. */
|
|
17
|
+
json<T = unknown>(): T;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Thin HTTP client around the global `fetch`. Returns a uniform response
|
|
21
|
+
* shape with typed helpers (text, json) so callers don't have to deal
|
|
22
|
+
* with two Response APIs.
|
|
23
|
+
*/
|
|
24
|
+
export declare class HttpClient {
|
|
25
|
+
/** Single request — no connection pool. fetch handles keep-alive under the hood. */
|
|
26
|
+
singleRequest(req: HttpClientRequest): Promise<HttpClientResponse>;
|
|
27
|
+
get(url: string | URL, init?: Omit<HttpClientRequest, 'method' | 'url'>): Promise<HttpClientResponse>;
|
|
28
|
+
post(url: string | URL, init?: Omit<HttpClientRequest, 'method' | 'url'>): Promise<HttpClientResponse>;
|
|
29
|
+
put(url: string | URL, init?: Omit<HttpClientRequest, 'method' | 'url'>): Promise<HttpClientResponse>;
|
|
30
|
+
delete(url: string | URL, init?: Omit<HttpClientRequest, 'method' | 'url'>): Promise<HttpClientResponse>;
|
|
31
|
+
private serialiseBody;
|
|
32
|
+
private normaliseHeaders;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=HttpClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpClient.d.ts","sourceRoot":"","sources":["../../src/http/HttpClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;IACpD,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,iCAAiC;IACjC,IAAI,IAAI,MAAM,CAAC;IACf,2BAA2B;IAC3B,IAAI,CAAC,CAAC,GAAG,OAAO,KAAK,CAAC,CAAC;CACxB;AAED;;;;GAIG;AACH,qBAAa,UAAU;IACrB,qFAAqF;IAC/E,aAAa,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA+BxE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAGrG,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAGtG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAGrG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIxG,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,gBAAgB;CAWzB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thin HTTP client around the global `fetch`. Returns a uniform response
|
|
3
|
+
* shape with typed helpers (text, json) so callers don't have to deal
|
|
4
|
+
* with two Response APIs.
|
|
5
|
+
*/
|
|
6
|
+
export class HttpClient {
|
|
7
|
+
/** Single request — no connection pool. fetch handles keep-alive under the hood. */
|
|
8
|
+
async singleRequest(req) {
|
|
9
|
+
const controller = new AbortController();
|
|
10
|
+
let timer = null;
|
|
11
|
+
if (req.timeoutMs && req.timeoutMs > 0) {
|
|
12
|
+
timer = setTimeout(() => controller.abort(), req.timeoutMs);
|
|
13
|
+
timer.unref?.();
|
|
14
|
+
}
|
|
15
|
+
try {
|
|
16
|
+
const body = this.serialiseBody(req.body);
|
|
17
|
+
const headers = this.normaliseHeaders(req.headers, req.body);
|
|
18
|
+
const res = await fetch(req.url, {
|
|
19
|
+
method: req.method,
|
|
20
|
+
headers,
|
|
21
|
+
body: body,
|
|
22
|
+
signal: controller.signal,
|
|
23
|
+
});
|
|
24
|
+
const buffer = new Uint8Array(await res.arrayBuffer());
|
|
25
|
+
const outHeaders = {};
|
|
26
|
+
res.headers.forEach((v, k) => { outHeaders[k.toLowerCase()] = v; });
|
|
27
|
+
return {
|
|
28
|
+
status: res.status,
|
|
29
|
+
headers: outHeaders,
|
|
30
|
+
body: buffer,
|
|
31
|
+
text() { return new TextDecoder().decode(buffer); },
|
|
32
|
+
json() { return JSON.parse(new TextDecoder().decode(buffer)); },
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
finally {
|
|
36
|
+
if (timer)
|
|
37
|
+
clearTimeout(timer);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
get(url, init) {
|
|
41
|
+
return this.singleRequest({ method: 'GET', url, ...init });
|
|
42
|
+
}
|
|
43
|
+
post(url, init) {
|
|
44
|
+
return this.singleRequest({ method: 'POST', url, ...init });
|
|
45
|
+
}
|
|
46
|
+
put(url, init) {
|
|
47
|
+
return this.singleRequest({ method: 'PUT', url, ...init });
|
|
48
|
+
}
|
|
49
|
+
delete(url, init) {
|
|
50
|
+
return this.singleRequest({ method: 'DELETE', url, ...init });
|
|
51
|
+
}
|
|
52
|
+
serialiseBody(body) {
|
|
53
|
+
if (body === undefined || body === null)
|
|
54
|
+
return undefined;
|
|
55
|
+
if (typeof body === 'string')
|
|
56
|
+
return body;
|
|
57
|
+
if (body instanceof Uint8Array)
|
|
58
|
+
return body;
|
|
59
|
+
return JSON.stringify(body);
|
|
60
|
+
}
|
|
61
|
+
normaliseHeaders(headers, body) {
|
|
62
|
+
const out = {};
|
|
63
|
+
if (headers)
|
|
64
|
+
for (const [k, v] of Object.entries(headers))
|
|
65
|
+
out[k.toLowerCase()] = v;
|
|
66
|
+
if (body && typeof body !== 'string' && !(body instanceof Uint8Array) && !out['content-type']) {
|
|
67
|
+
out['content-type'] = 'application/json; charset=utf-8';
|
|
68
|
+
}
|
|
69
|
+
return out;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=HttpClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../src/http/HttpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ActorSystem } from '../ActorSystem.js';
|
|
2
|
+
import { type Extension, type ExtensionId } from '../Extension.js';
|
|
3
|
+
import type { HttpServerBackend, ServerBinding } from './backend/HttpServerBackend.js';
|
|
4
|
+
import { HttpClient } from './HttpClient.js';
|
|
5
|
+
import { type Route } from './Route.js';
|
|
6
|
+
export interface ServerBuilder {
|
|
7
|
+
/** Override the default Fastify backend (or use BunServe / Express). */
|
|
8
|
+
useBackend(backend: HttpServerBackend): ServerBuilder;
|
|
9
|
+
/** Register the full route tree and bind. Returns the ServerBinding. */
|
|
10
|
+
bind(routes: Route): Promise<ServerBinding>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* System-wide HTTP extension — entry point for the routing DSL and the
|
|
14
|
+
* shared HttpClient. Every ActorSystem gets one HttpClient and a factory
|
|
15
|
+
* for HTTP servers. The default server backend is Fastify; swap it per
|
|
16
|
+
* server via `builder.useBackend(new BunServeBackend())`.
|
|
17
|
+
*/
|
|
18
|
+
export declare class HttpExtension implements Extension {
|
|
19
|
+
private readonly system;
|
|
20
|
+
/** Shared HTTP client — uses the global fetch. */
|
|
21
|
+
readonly client: HttpClient;
|
|
22
|
+
constructor(system: ActorSystem);
|
|
23
|
+
/** Start building a new server scope. Call `bind(routes)` to start it. */
|
|
24
|
+
newServerAt(host: string, port: number): ServerBuilder;
|
|
25
|
+
/** Fire-and-forget request via the shared client. */
|
|
26
|
+
singleRequest: (req: import("./HttpClient.js").HttpClientRequest) => Promise<import("./HttpClient.js").HttpClientResponse>;
|
|
27
|
+
}
|
|
28
|
+
export declare const HttpExtensionId: ExtensionId<HttpExtension>;
|
|
29
|
+
//# sourceMappingURL=HttpExtension.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpExtension.d.ts","sourceRoot":"","sources":["../../src/http/HttpExtension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAe,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEvF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAW,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjD,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAAC;IACtD,yEAAyE;IACzE,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC7C;AAED;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,SAAS;IAIjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAoB;gBAElB,MAAM,EAAE,WAAW;IAEhD,2EAA2E;IAC3E,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa;IA6CtD,qDAAqD;IACrD,aAAa,8GAA+C;CAC7D;AAED,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,aAAa,CAGtD,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { extensionId } from '../Extension.js';
|
|
2
|
+
import { FastifyBackend } from './backend/FastifyBackend.js';
|
|
3
|
+
import { HttpClient } from './HttpClient.js';
|
|
4
|
+
import { compile } from './Route.js';
|
|
5
|
+
/**
|
|
6
|
+
* System-wide HTTP extension — entry point for the routing DSL and the
|
|
7
|
+
* shared HttpClient. Every ActorSystem gets one HttpClient and a factory
|
|
8
|
+
* for HTTP servers. The default server backend is Fastify; swap it per
|
|
9
|
+
* server via `builder.useBackend(new BunServeBackend())`.
|
|
10
|
+
*/
|
|
11
|
+
export class HttpExtension {
|
|
12
|
+
system;
|
|
13
|
+
/** Shared HTTP client — uses the global fetch. */
|
|
14
|
+
client = new HttpClient();
|
|
15
|
+
constructor(system) {
|
|
16
|
+
this.system = system;
|
|
17
|
+
}
|
|
18
|
+
/** Start building a new server scope. Call `bind(routes)` to start it. */
|
|
19
|
+
newServerAt(host, port) {
|
|
20
|
+
let backend = null;
|
|
21
|
+
const system = this.system;
|
|
22
|
+
return {
|
|
23
|
+
useBackend(b) {
|
|
24
|
+
backend = b;
|
|
25
|
+
return this;
|
|
26
|
+
},
|
|
27
|
+
async bind(routes) {
|
|
28
|
+
const active = backend ?? new FastifyBackend();
|
|
29
|
+
const compiled = compile(routes);
|
|
30
|
+
// Wrap each route's handler with a request log + timing.
|
|
31
|
+
// Done at the DSL level so backends don't need a Logger
|
|
32
|
+
// reference — every backend gets the same per-request debug
|
|
33
|
+
// line uniformly.
|
|
34
|
+
for (const r of compiled) {
|
|
35
|
+
const wrapped = {
|
|
36
|
+
...r,
|
|
37
|
+
handler: async (req) => {
|
|
38
|
+
const start = Date.now();
|
|
39
|
+
system.log.debug(`[http] ${req.method} ${req.path}`);
|
|
40
|
+
try {
|
|
41
|
+
const out = await r.handler(req);
|
|
42
|
+
system.log.debug(`[http] ${req.method} ${req.path} → ${out.status} (${Date.now() - start} ms)`);
|
|
43
|
+
return out;
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
system.log.debug(`[http] ${req.method} ${req.path} → error after ${Date.now() - start} ms: ${err.message}`);
|
|
47
|
+
throw err;
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
active.registerRoute(wrapped);
|
|
52
|
+
}
|
|
53
|
+
const binding = await active.listen(host, port);
|
|
54
|
+
system.log.info(`HTTP server bound on ${binding.host}:${binding.port} (${active.name})`);
|
|
55
|
+
system.log.debug(`[http] ${compiled.length} route(s) registered`);
|
|
56
|
+
return binding;
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/** Fire-and-forget request via the shared client. */
|
|
61
|
+
singleRequest = this.client.singleRequest.bind(this.client);
|
|
62
|
+
}
|
|
63
|
+
export const HttpExtensionId = extensionId('HttpExtension', (system) => new HttpExtension(system));
|
|
64
|
+
//# sourceMappingURL=HttpExtension.js.map
|