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,82 @@
|
|
|
1
|
+
export interface K8sCredentials {
|
|
2
|
+
/** API server URL (defaults to https://kubernetes.default.svc when running in-cluster). */
|
|
3
|
+
readonly apiServerUrl: string;
|
|
4
|
+
/** Bearer token for the ServiceAccount. */
|
|
5
|
+
readonly authToken: string;
|
|
6
|
+
/** PEM-encoded CA cert pinned for the API server's TLS. */
|
|
7
|
+
readonly caCert: string;
|
|
8
|
+
/** Default namespace as read from the SA mount; user-supplied namespace wins where supplied. */
|
|
9
|
+
readonly defaultNamespace?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Load credentials from the standard ServiceAccount mount points. Returns
|
|
13
|
+
* `null` (rather than throwing) when none of the files are present so the
|
|
14
|
+
* caller can fall back to explicit settings.
|
|
15
|
+
*/
|
|
16
|
+
export declare function loadInClusterCredentials(): Promise<K8sCredentials | null>;
|
|
17
|
+
export interface K8sRequestOptions {
|
|
18
|
+
readonly method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
19
|
+
readonly path: string;
|
|
20
|
+
readonly body?: unknown;
|
|
21
|
+
/** Provide a request-injected client (test override). */
|
|
22
|
+
readonly client?: K8sFetchClient;
|
|
23
|
+
}
|
|
24
|
+
export interface K8sResponse {
|
|
25
|
+
readonly status: number;
|
|
26
|
+
readonly body: unknown;
|
|
27
|
+
}
|
|
28
|
+
/** Test seam — the real impl uses `node:https`; tests pass a mock. */
|
|
29
|
+
export interface K8sFetchClient {
|
|
30
|
+
request(creds: K8sCredentials, opts: K8sRequestOptions): Promise<K8sResponse>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Perform a request against the K8s API server. Uses `node:https` with
|
|
34
|
+
* the SA-supplied CA pinned, plus a `Bearer` token in the `Authorization`
|
|
35
|
+
* header. Returns `{ status, body }` — the caller is responsible for
|
|
36
|
+
* mapping HTTP status to lease semantics (200 ok, 404 missing,
|
|
37
|
+
* 409 conflict).
|
|
38
|
+
*/
|
|
39
|
+
export declare function k8sRequest(creds: K8sCredentials, opts: K8sRequestOptions): Promise<K8sResponse>;
|
|
40
|
+
/**
|
|
41
|
+
* Wire shape for `coordination.k8s.io/v1/Lease`. We only model the fields
|
|
42
|
+
* we touch — Kubernetes returns more (managedFields, generateName, etc.)
|
|
43
|
+
* but they round-trip through `unknown` if we send them back unchanged.
|
|
44
|
+
*/
|
|
45
|
+
export interface K8sLeaseObject {
|
|
46
|
+
readonly apiVersion: 'coordination.k8s.io/v1';
|
|
47
|
+
readonly kind: 'Lease';
|
|
48
|
+
readonly metadata: {
|
|
49
|
+
readonly name: string;
|
|
50
|
+
readonly namespace: string;
|
|
51
|
+
readonly resourceVersion?: string;
|
|
52
|
+
readonly [key: string]: unknown;
|
|
53
|
+
};
|
|
54
|
+
readonly spec: {
|
|
55
|
+
readonly holderIdentity?: string;
|
|
56
|
+
readonly leaseDurationSeconds?: number;
|
|
57
|
+
readonly acquireTime?: string;
|
|
58
|
+
readonly renewTime?: string;
|
|
59
|
+
readonly leaseTransitions?: number;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/** GET — returns null on 404 (lease doesn't exist yet). */
|
|
63
|
+
export declare function getLease(creds: K8sCredentials, namespace: string, name: string, client?: K8sFetchClient): Promise<K8sLeaseObject | null>;
|
|
64
|
+
/**
|
|
65
|
+
* CREATE — returns the created lease, or null on 409 (race: someone else
|
|
66
|
+
* created it first; the caller should re-GET and try acquire).
|
|
67
|
+
*/
|
|
68
|
+
export declare function createLease(creds: K8sCredentials, namespace: string, spec: Pick<K8sLeaseObject['spec'], 'holderIdentity' | 'leaseDurationSeconds' | 'acquireTime' | 'renewTime'>, name: string, client?: K8sFetchClient): Promise<K8sLeaseObject | null>;
|
|
69
|
+
/**
|
|
70
|
+
* PUT — optimistic-write update. Pass the lease object you got from
|
|
71
|
+
* `getLease`, with `metadata.resourceVersion` intact, and the spec
|
|
72
|
+
* fields modified. Returns null on 409 (someone else mutated the lease
|
|
73
|
+
* since we read it; caller should re-GET + retry or treat as lost).
|
|
74
|
+
*/
|
|
75
|
+
export declare function updateLease(creds: K8sCredentials, lease: K8sLeaseObject, client?: K8sFetchClient): Promise<K8sLeaseObject | null>;
|
|
76
|
+
/** DELETE — best-effort, returns void. 404 is treated as success (already gone). */
|
|
77
|
+
export declare function deleteLease(creds: K8sCredentials, namespace: string, name: string, client?: K8sFetchClient): Promise<void>;
|
|
78
|
+
export declare class K8sLeaseError extends Error {
|
|
79
|
+
readonly response: K8sResponse;
|
|
80
|
+
constructor(message: string, response: K8sResponse);
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=k8sApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k8sApi.d.ts","sourceRoot":"","sources":["../../../src/coordination/leases/k8sApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { Lazy } from '../../util/Lazy.js';
|
|
2
|
+
/**
|
|
3
|
+
* Low-level Kubernetes API helpers used by `KubernetesLease`. Three
|
|
4
|
+
* concerns live here: where we get our credentials (Pod-mounted
|
|
5
|
+
* ServiceAccount or explicit overrides), how we talk to the API server
|
|
6
|
+
* (TLS-pinned `node:https.request`), and the four CRUD operations on
|
|
7
|
+
* `coordination.k8s.io/v1/Lease` objects.
|
|
8
|
+
*
|
|
9
|
+
* We intentionally do NOT depend on `@kubernetes/client-node` — the
|
|
10
|
+
* surface we need is small (3 endpoints), and the official client adds
|
|
11
|
+
* ~3 MB of dependencies that small / edge deployments can do without.
|
|
12
|
+
*/
|
|
13
|
+
/* --------------------------- credentials ------------------------------ */
|
|
14
|
+
const SERVICE_ACCOUNT_DIR = '/var/run/secrets/kubernetes.io/serviceaccount';
|
|
15
|
+
/**
|
|
16
|
+
* Load credentials from the standard ServiceAccount mount points. Returns
|
|
17
|
+
* `null` (rather than throwing) when none of the files are present so the
|
|
18
|
+
* caller can fall back to explicit settings.
|
|
19
|
+
*/
|
|
20
|
+
export async function loadInClusterCredentials() {
|
|
21
|
+
const fs = await fsLazy.get();
|
|
22
|
+
try {
|
|
23
|
+
const [token, caCert, ns] = await Promise.all([
|
|
24
|
+
fs.readFile(`${SERVICE_ACCOUNT_DIR}/token`, 'utf8').catch(() => null),
|
|
25
|
+
fs.readFile(`${SERVICE_ACCOUNT_DIR}/ca.crt`, 'utf8').catch(() => null),
|
|
26
|
+
fs.readFile(`${SERVICE_ACCOUNT_DIR}/namespace`, 'utf8').catch(() => null),
|
|
27
|
+
]);
|
|
28
|
+
if (!token || !caCert)
|
|
29
|
+
return null;
|
|
30
|
+
// KUBERNETES_SERVICE_HOST is set by the kubelet in every Pod.
|
|
31
|
+
const host = globalThis
|
|
32
|
+
.process?.env?.KUBERNETES_SERVICE_HOST;
|
|
33
|
+
const port = globalThis
|
|
34
|
+
.process?.env?.KUBERNETES_SERVICE_PORT_HTTPS
|
|
35
|
+
?? globalThis
|
|
36
|
+
.process?.env?.KUBERNETES_SERVICE_PORT
|
|
37
|
+
?? '443';
|
|
38
|
+
const apiServerUrl = host
|
|
39
|
+
? `https://${host}:${port}`
|
|
40
|
+
: 'https://kubernetes.default.svc';
|
|
41
|
+
return {
|
|
42
|
+
apiServerUrl,
|
|
43
|
+
authToken: token.trim(),
|
|
44
|
+
caCert,
|
|
45
|
+
defaultNamespace: ns ? ns.trim() : undefined,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Perform a request against the K8s API server. Uses `node:https` with
|
|
54
|
+
* the SA-supplied CA pinned, plus a `Bearer` token in the `Authorization`
|
|
55
|
+
* header. Returns `{ status, body }` — the caller is responsible for
|
|
56
|
+
* mapping HTTP status to lease semantics (200 ok, 404 missing,
|
|
57
|
+
* 409 conflict).
|
|
58
|
+
*/
|
|
59
|
+
export async function k8sRequest(creds, opts) {
|
|
60
|
+
const client = opts.client ?? (await defaultClient.get());
|
|
61
|
+
return client.request(creds, opts);
|
|
62
|
+
}
|
|
63
|
+
/** Real `node:https` client — lazy-imported so test mocks can short-circuit. */
|
|
64
|
+
const defaultClient = Lazy.of(async () => {
|
|
65
|
+
const httpsModule = 'node:https';
|
|
66
|
+
const urlModule = 'node:url';
|
|
67
|
+
const https = await import(httpsModule);
|
|
68
|
+
const { URL } = await import(urlModule);
|
|
69
|
+
return {
|
|
70
|
+
async request(creds, opts) {
|
|
71
|
+
return new Promise((resolve, reject) => {
|
|
72
|
+
const url = new URL(opts.path, creds.apiServerUrl);
|
|
73
|
+
const bodyString = opts.body === undefined ? null : JSON.stringify(opts.body);
|
|
74
|
+
const headers = {
|
|
75
|
+
Authorization: `Bearer ${creds.authToken}`,
|
|
76
|
+
Accept: 'application/json',
|
|
77
|
+
};
|
|
78
|
+
if (bodyString !== null) {
|
|
79
|
+
headers['Content-Type'] = 'application/json';
|
|
80
|
+
headers['Content-Length'] = String(Buffer.byteLength(bodyString));
|
|
81
|
+
}
|
|
82
|
+
const req = https.request({
|
|
83
|
+
method: opts.method,
|
|
84
|
+
hostname: url.hostname,
|
|
85
|
+
port: url.port || 443,
|
|
86
|
+
path: url.pathname + url.search,
|
|
87
|
+
headers,
|
|
88
|
+
ca: creds.caCert,
|
|
89
|
+
// Conservative timeout — beyond this the K8s API server is
|
|
90
|
+
// probably unreachable; the lease ought to be considered lost.
|
|
91
|
+
timeout: 10_000,
|
|
92
|
+
}, (res) => {
|
|
93
|
+
const chunks = [];
|
|
94
|
+
res.on('data', (c) => chunks.push(c));
|
|
95
|
+
res.on('end', () => {
|
|
96
|
+
const raw = Buffer.concat(chunks).toString('utf8');
|
|
97
|
+
let parsed = raw;
|
|
98
|
+
if (raw.length > 0) {
|
|
99
|
+
try {
|
|
100
|
+
parsed = JSON.parse(raw);
|
|
101
|
+
}
|
|
102
|
+
catch { /* leave as string */ }
|
|
103
|
+
}
|
|
104
|
+
resolve({ status: res.statusCode ?? 0, body: parsed });
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
req.on('error', reject);
|
|
108
|
+
req.on('timeout', () => { req.destroy(new Error('k8s request timeout')); });
|
|
109
|
+
if (bodyString !== null)
|
|
110
|
+
req.write(bodyString);
|
|
111
|
+
req.end();
|
|
112
|
+
});
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
});
|
|
116
|
+
const fsLazy = Lazy.of(async () => {
|
|
117
|
+
const name = 'node:fs/promises';
|
|
118
|
+
return await import(name);
|
|
119
|
+
});
|
|
120
|
+
const leasePath = (ns, name) => `/apis/coordination.k8s.io/v1/namespaces/${encodeURIComponent(ns)}/leases${name ? `/${encodeURIComponent(name)}` : ''}`;
|
|
121
|
+
/** GET — returns null on 404 (lease doesn't exist yet). */
|
|
122
|
+
export async function getLease(creds, namespace, name, client) {
|
|
123
|
+
const res = await k8sRequest(creds, {
|
|
124
|
+
method: 'GET', path: leasePath(namespace, name), client,
|
|
125
|
+
});
|
|
126
|
+
if (res.status === 404)
|
|
127
|
+
return null;
|
|
128
|
+
if (res.status !== 200)
|
|
129
|
+
throw new K8sLeaseError(`GET lease ${namespace}/${name} → HTTP ${res.status}`, res);
|
|
130
|
+
return res.body;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* CREATE — returns the created lease, or null on 409 (race: someone else
|
|
134
|
+
* created it first; the caller should re-GET and try acquire).
|
|
135
|
+
*/
|
|
136
|
+
export async function createLease(creds, namespace, spec, name, client) {
|
|
137
|
+
const body = {
|
|
138
|
+
apiVersion: 'coordination.k8s.io/v1',
|
|
139
|
+
kind: 'Lease',
|
|
140
|
+
metadata: { name, namespace },
|
|
141
|
+
spec: { ...spec, leaseTransitions: 1 },
|
|
142
|
+
};
|
|
143
|
+
const res = await k8sRequest(creds, {
|
|
144
|
+
method: 'POST', path: leasePath(namespace), body, client,
|
|
145
|
+
});
|
|
146
|
+
if (res.status === 201)
|
|
147
|
+
return res.body;
|
|
148
|
+
if (res.status === 409)
|
|
149
|
+
return null;
|
|
150
|
+
throw new K8sLeaseError(`CREATE lease ${namespace}/${name} → HTTP ${res.status}`, res);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* PUT — optimistic-write update. Pass the lease object you got from
|
|
154
|
+
* `getLease`, with `metadata.resourceVersion` intact, and the spec
|
|
155
|
+
* fields modified. Returns null on 409 (someone else mutated the lease
|
|
156
|
+
* since we read it; caller should re-GET + retry or treat as lost).
|
|
157
|
+
*/
|
|
158
|
+
export async function updateLease(creds, lease, client) {
|
|
159
|
+
const res = await k8sRequest(creds, {
|
|
160
|
+
method: 'PUT',
|
|
161
|
+
path: leasePath(lease.metadata.namespace, lease.metadata.name),
|
|
162
|
+
body: lease,
|
|
163
|
+
client,
|
|
164
|
+
});
|
|
165
|
+
if (res.status === 200)
|
|
166
|
+
return res.body;
|
|
167
|
+
if (res.status === 409)
|
|
168
|
+
return null;
|
|
169
|
+
if (res.status === 404)
|
|
170
|
+
return null; // someone deleted it between get + put
|
|
171
|
+
throw new K8sLeaseError(`PUT lease ${lease.metadata.namespace}/${lease.metadata.name} → HTTP ${res.status}`, res);
|
|
172
|
+
}
|
|
173
|
+
/** DELETE — best-effort, returns void. 404 is treated as success (already gone). */
|
|
174
|
+
export async function deleteLease(creds, namespace, name, client) {
|
|
175
|
+
const res = await k8sRequest(creds, {
|
|
176
|
+
method: 'DELETE', path: leasePath(namespace, name), client,
|
|
177
|
+
});
|
|
178
|
+
if (res.status === 200 || res.status === 202 || res.status === 404)
|
|
179
|
+
return;
|
|
180
|
+
throw new K8sLeaseError(`DELETE lease ${namespace}/${name} → HTTP ${res.status}`, res);
|
|
181
|
+
}
|
|
182
|
+
/* ---------------------------- errors --------------------------------- */
|
|
183
|
+
export class K8sLeaseError extends Error {
|
|
184
|
+
response;
|
|
185
|
+
constructor(message, response) {
|
|
186
|
+
super(message);
|
|
187
|
+
this.response = response;
|
|
188
|
+
this.name = 'K8sLeaseError';
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=k8sApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k8sApi.js","sourceRoot":"","sources":["../../../src/coordination/leases/k8sApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conflict-free Replicated Data Type — a value that converges under
|
|
3
|
+
* replication without coordination. Every implementation is a
|
|
4
|
+
* **state-based CvRDT**: replicas exchange full state, and `merge`
|
|
5
|
+
* forms a join-semilattice.
|
|
6
|
+
*
|
|
7
|
+
* Three properties every implementation must satisfy — `tests/unit/crdt`
|
|
8
|
+
* verifies them by hand-rolled property tests against generated samples:
|
|
9
|
+
*
|
|
10
|
+
* - **Idempotent**: `merge(a, a) === a`
|
|
11
|
+
* - **Commutative**: `merge(a, b) === merge(b, a)`
|
|
12
|
+
* - **Associative**: `merge(merge(a, b), c) === merge(a, merge(b, c))`
|
|
13
|
+
*
|
|
14
|
+
* Together these mean: gossip can deliver state updates in any order,
|
|
15
|
+
* deduplicate, retransmit, and the world converges as long as every
|
|
16
|
+
* replica eventually sees every state.
|
|
17
|
+
*
|
|
18
|
+
* **Why state-based and not delta-state.** Delta-CRDTs ship only the
|
|
19
|
+
* incremental change rather than the full state — much cheaper on the
|
|
20
|
+
* wire, but the implementation has more moving parts and you need
|
|
21
|
+
* delta acknowledgement protocols. State-based is the simplest thing
|
|
22
|
+
* that converges; we ship it first and revisit if payload size hurts.
|
|
23
|
+
*
|
|
24
|
+
* @typeParam Self - The concrete CRDT type. F-bounded so subclass
|
|
25
|
+
* `merge` keeps the right return type without casting at every call
|
|
26
|
+
* site.
|
|
27
|
+
*/
|
|
28
|
+
export interface Crdt<Self extends Crdt<Self>> {
|
|
29
|
+
/**
|
|
30
|
+
* Join two replicas. Must be a join-semilattice operation: total,
|
|
31
|
+
* idempotent, commutative, associative.
|
|
32
|
+
*/
|
|
33
|
+
merge(other: Self): Self;
|
|
34
|
+
/**
|
|
35
|
+
* Wire-friendly representation — every CRDT must be JSON-encodable
|
|
36
|
+
* so it can travel through the cluster transport without bespoke
|
|
37
|
+
* codecs. `toJSON()` is the inverse of the static `fromJSON`
|
|
38
|
+
* factory each impl exposes.
|
|
39
|
+
*/
|
|
40
|
+
toJSON(): unknown;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Identifier of the replica producing an update. In a cluster, this is
|
|
44
|
+
* typically `cluster.selfAddress.toString()` — every NodeAddress is
|
|
45
|
+
* already unique within the cluster, so we can reuse it as the replica
|
|
46
|
+
* id rather than minting a separate one.
|
|
47
|
+
*
|
|
48
|
+
* The CRDT operations themselves treat the id as opaque — any string
|
|
49
|
+
* that's stable across a process's lifetime is fine.
|
|
50
|
+
*/
|
|
51
|
+
export type ReplicaId = string;
|
|
52
|
+
//# sourceMappingURL=Crdt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Crdt.d.ts","sourceRoot":"","sources":["../../src/crdt/Crdt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC;IAC3C;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAEzB;;;;;OAKG;IACH,MAAM,IAAI,OAAO,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Crdt.js","sourceRoot":"","sources":["../../src/crdt/Crdt.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
import type { ActorRef } from '../ActorRef.js';
|
|
2
|
+
import type { ActorSystem } from '../ActorSystem.js';
|
|
3
|
+
import type { DurableStateStore } from '../persistence/DurableStateStore.js';
|
|
4
|
+
import { type Extension, type ExtensionId } from '../Extension.js';
|
|
5
|
+
import type { Cluster } from '../cluster/Cluster.js';
|
|
6
|
+
import { NodeAddress } from '../cluster/NodeAddress.js';
|
|
7
|
+
import type { Crdt } from './Crdt.js';
|
|
8
|
+
import { type GCounterJson } from './GCounter.js';
|
|
9
|
+
import { type GCounterMapJson } from './GCounterMap.js';
|
|
10
|
+
import { type PNCounterJson } from './PNCounter.js';
|
|
11
|
+
import { type GSetJson } from './GSet.js';
|
|
12
|
+
import { type ORSetJson } from './ORSet.js';
|
|
13
|
+
import { type ORMapJson } from './ORMap.js';
|
|
14
|
+
import { type LWWRegisterJson } from './LWWRegister.js';
|
|
15
|
+
import { type LWWMapJson } from './LWWMap.js';
|
|
16
|
+
import { type MVRegisterJson } from './MVRegister.js';
|
|
17
|
+
/** Discriminated union of every CRDT's wire representation. */
|
|
18
|
+
export type CrdtJson = GCounterJson | PNCounterJson | GSetJson | ORSetJson | LWWRegisterJson<unknown> | GCounterMapJson | LWWMapJson<unknown> | MVRegisterJson<unknown> | ORMapJson;
|
|
19
|
+
/**
|
|
20
|
+
* Reconstruct a CRDT from its `toJSON()` payload. Dispatches on the
|
|
21
|
+
* `kind` discriminator each impl writes — adding a new CRDT type is
|
|
22
|
+
* one more case here. Returned as `Crdt<unknown>` because the
|
|
23
|
+
* concrete type is only known at the call site that asked for the
|
|
24
|
+
* key in the first place.
|
|
25
|
+
*
|
|
26
|
+
* Exported so containers like `ORMap` (whose values are themselves
|
|
27
|
+
* CRDTs of arbitrary kind) can wire it as their inner-value decoder.
|
|
28
|
+
*
|
|
29
|
+
* ## Reference example: discriminated-union dispatch
|
|
30
|
+
*
|
|
31
|
+
* This function is the **codebase's reference shape** for
|
|
32
|
+
* dispatching on a closed string-literal-discriminator union. Two
|
|
33
|
+
* properties matter:
|
|
34
|
+
*
|
|
35
|
+
* 1. **No `default` arm** — the switch lists every kind explicitly.
|
|
36
|
+
* The `default` branch's `const _exhaustive: never = json`
|
|
37
|
+
* assertion gives compile-time exhaustiveness: TypeScript
|
|
38
|
+
* narrows `json` to `never` after all real arms; adding a new
|
|
39
|
+
* variant to `CrdtJson` without a matching `case` makes
|
|
40
|
+
* `json` *not* assignable to `never` and the file fails to
|
|
41
|
+
* compile.
|
|
42
|
+
*
|
|
43
|
+
* 2. **`throw` inside the default** — defensive belt-and-braces
|
|
44
|
+
* for the type-erasure boundary (legacy wire data, force-casts).
|
|
45
|
+
* Unreachable from well-typed callers.
|
|
46
|
+
*
|
|
47
|
+
* Equivalent shape: `match(json).with({ kind: 'X' }, ...).exhaustive()`
|
|
48
|
+
* from `ts-pattern`. Used elsewhere in the codebase when the
|
|
49
|
+
* discriminator is more complex than a string literal (e.g. nominal
|
|
50
|
+
* type via `instanceof`). Both forms achieve compile-time
|
|
51
|
+
* exhaustiveness; pick the more readable one per site.
|
|
52
|
+
*
|
|
53
|
+
* **Do not** add a permissive `default` case that returns a stub —
|
|
54
|
+
* it defeats the exhaustiveness check and turns missing variants
|
|
55
|
+
* into silent runtime bugs.
|
|
56
|
+
*/
|
|
57
|
+
export declare function decodeCrdt(json: CrdtJson): Crdt<any>;
|
|
58
|
+
/**
|
|
59
|
+
* Empty-CRDT factory. Callers pass this to `update(key, factory, fn)`
|
|
60
|
+
* so the extension can materialize a brand-new CRDT for a key that
|
|
61
|
+
* doesn't exist yet — without DistributedData itself needing to know
|
|
62
|
+
* about every CRDT type.
|
|
63
|
+
*
|
|
64
|
+
* GCounter.empty satisfies CrdtFactory<GCounter>
|
|
65
|
+
* () => ORSet.empty() satisfies CrdtFactory<ORSet<X>>
|
|
66
|
+
*/
|
|
67
|
+
export type CrdtFactory<C extends Crdt<C>> = () => C;
|
|
68
|
+
/**
|
|
69
|
+
* One gossip round = a snapshot of every key this replica currently
|
|
70
|
+
* knows. Receivers merge each entry into their own state.
|
|
71
|
+
*
|
|
72
|
+
* Deliberately simple: no digest, no delta — just push the full set
|
|
73
|
+
* to one random peer per tick. Cheap to implement and good enough
|
|
74
|
+
* for the small-to-medium stores DistributedData is meant for.
|
|
75
|
+
*/
|
|
76
|
+
interface DDataGossipMsg {
|
|
77
|
+
readonly t: 'ddata-gossip';
|
|
78
|
+
readonly from: ReturnType<NodeAddress['toJSON']>;
|
|
79
|
+
/** Keyed by user-key; payload is the CRDT's own JSON discriminator. */
|
|
80
|
+
readonly entries: Record<string, CrdtJson>;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Quorum-write request — sent by the originator of a
|
|
84
|
+
* `updateAsync(..., { consistency: 'majority' | 'all' | { from } })`
|
|
85
|
+
* call to every other up-member. Each receiver merges `value` into
|
|
86
|
+
* its local replica (same merge as gossip) and replies with a
|
|
87
|
+
* `DDataWriteAckMsg` carrying the same `pendingId` so the originator
|
|
88
|
+
* can match it to the pending write.
|
|
89
|
+
*/
|
|
90
|
+
interface DDataWriteRequestMsg {
|
|
91
|
+
readonly t: 'ddata-write-request';
|
|
92
|
+
readonly from: ReturnType<NodeAddress['toJSON']>;
|
|
93
|
+
readonly pendingId: string;
|
|
94
|
+
readonly key: string;
|
|
95
|
+
readonly value: CrdtJson;
|
|
96
|
+
}
|
|
97
|
+
interface DDataWriteAckMsg {
|
|
98
|
+
readonly t: 'ddata-write-ack';
|
|
99
|
+
readonly from: ReturnType<NodeAddress['toJSON']>;
|
|
100
|
+
readonly pendingId: string;
|
|
101
|
+
readonly key: string;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Quorum-read request — sent by the originator of a
|
|
105
|
+
* `getAsync(..., { consistency: ... })` call to every other
|
|
106
|
+
* up-member. Each receiver replies with its current local value
|
|
107
|
+
* (or `null` if it has no entry) so the originator can merge the
|
|
108
|
+
* responses and return the result.
|
|
109
|
+
*/
|
|
110
|
+
interface DDataReadRequestMsg {
|
|
111
|
+
readonly t: 'ddata-read-request';
|
|
112
|
+
readonly from: ReturnType<NodeAddress['toJSON']>;
|
|
113
|
+
readonly pendingId: string;
|
|
114
|
+
readonly key: string;
|
|
115
|
+
}
|
|
116
|
+
interface DDataReadResponseMsg {
|
|
117
|
+
readonly t: 'ddata-read-response';
|
|
118
|
+
readonly from: ReturnType<NodeAddress['toJSON']>;
|
|
119
|
+
readonly pendingId: string;
|
|
120
|
+
readonly key: string;
|
|
121
|
+
readonly value: CrdtJson | null;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Quorum target for `updateAsync` / `getAsync`.
|
|
125
|
+
*
|
|
126
|
+
* - `'local'` — return immediately after applying locally. Equivalent
|
|
127
|
+
* to the sync `update` / `get` API, kept for API symmetry.
|
|
128
|
+
* - `'majority'` — wait for `floor(N/2)+1` replicas (incl. self).
|
|
129
|
+
* - `'all'` — wait for every up-member.
|
|
130
|
+
* - `{ from: K }` — wait for `K` replicas (clamped to `[1, N]`).
|
|
131
|
+
*
|
|
132
|
+
* `N` is `cluster.upMembers().length` at the moment the call starts.
|
|
133
|
+
* Self always counts as the first ack (the local apply is synchronous),
|
|
134
|
+
* so a single-node cluster resolves immediately regardless of the
|
|
135
|
+
* chosen consistency level.
|
|
136
|
+
*/
|
|
137
|
+
export type WriteConsistency = 'local' | 'majority' | 'all' | {
|
|
138
|
+
readonly from: number;
|
|
139
|
+
};
|
|
140
|
+
export type ReadConsistency = WriteConsistency;
|
|
141
|
+
export interface DistributedDataSettings {
|
|
142
|
+
/** Period between gossip pushes. Default: 1 s. */
|
|
143
|
+
readonly gossipIntervalMs?: number;
|
|
144
|
+
/**
|
|
145
|
+
* Optional durable backend. When provided, the local CRDT view
|
|
146
|
+
* is loaded from the store on `preStart` and re-saved after every
|
|
147
|
+
* mutation (local update, gossip merge, delete). Without this,
|
|
148
|
+
* `DistributedData` is purely in-memory — a full cluster restart
|
|
149
|
+
* (deploy / outage) starts every replica empty.
|
|
150
|
+
*
|
|
151
|
+
* The store is keyed by replica id, so each cluster member owns
|
|
152
|
+
* its own durable record. CRDT semantics handle convergence
|
|
153
|
+
* across replicas via gossip — durability is per-replica.
|
|
154
|
+
*
|
|
155
|
+
* Plug in any of the existing `DurableStateStore` implementations:
|
|
156
|
+
* `InMemoryDurableStateStore` for tests, the SQLite / Cassandra /
|
|
157
|
+
* S3 / filesystem backends for production.
|
|
158
|
+
*/
|
|
159
|
+
readonly durableStore?: DurableStateStore;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Cluster-wide replicated key-value store of CRDTs. Each node hosts
|
|
163
|
+
* one local replica. `update(key, ...)` mutates the local replica
|
|
164
|
+
* (idempotent, conflict-free), and gossip fans the state out so
|
|
165
|
+
* every replica eventually agrees on `merge(...)` of all updates.
|
|
166
|
+
*
|
|
167
|
+
* **Lifecycle:** call `extension(DistributedDataId).start(cluster)`
|
|
168
|
+
* once per process to spawn the internal gossip actor. Subsequent
|
|
169
|
+
* calls return the same handle.
|
|
170
|
+
*
|
|
171
|
+
* const dd = system.extension(DistributedDataId).start(cluster);
|
|
172
|
+
* dd.update('cart-42', () => ORSet.empty<string>(),
|
|
173
|
+
* (cart) => cart.add(cluster.selfAddress.toString(), 'apple'));
|
|
174
|
+
* const cart = dd.get<ORSet<string>>('cart-42');
|
|
175
|
+
*
|
|
176
|
+
* **Limits / non-goals (v1):**
|
|
177
|
+
* - Full-state push on every gossip tick — fine for small stores.
|
|
178
|
+
* - No durable persistence: the store lives in memory.
|
|
179
|
+
* - No tombstone delete; `delete(key)` is best-effort and can be
|
|
180
|
+
* undone by an in-flight gossip from a peer who still has the
|
|
181
|
+
* key. Plan a workload-specific tombstone pattern (typically
|
|
182
|
+
* embed deletion in the CRDT — e.g. `ORSet.remove`).
|
|
183
|
+
*/
|
|
184
|
+
export declare class DistributedData implements Extension {
|
|
185
|
+
private readonly system;
|
|
186
|
+
private _handle;
|
|
187
|
+
private _cluster;
|
|
188
|
+
constructor(system: ActorSystem);
|
|
189
|
+
start(cluster: Cluster, settings?: DistributedDataSettings): DistributedDataHandle;
|
|
190
|
+
/** Tear down the wire-handler subscriptions (test/shutdown only). */
|
|
191
|
+
stop(): void;
|
|
192
|
+
get(): DistributedDataHandle;
|
|
193
|
+
isStarted(): boolean;
|
|
194
|
+
}
|
|
195
|
+
export declare const DistributedDataId: ExtensionId<DistributedData>;
|
|
196
|
+
/** Shared between actor + handle so reads stay synchronous. */
|
|
197
|
+
interface SharedView {
|
|
198
|
+
state: Map<string, Crdt<any>>;
|
|
199
|
+
listeners: Map<string, Set<(value: Crdt<any>) => void>>;
|
|
200
|
+
}
|
|
201
|
+
interface UpdateMsg {
|
|
202
|
+
readonly t: 'ddata-update';
|
|
203
|
+
readonly key: string;
|
|
204
|
+
readonly factory: CrdtFactory<Crdt<any>>;
|
|
205
|
+
readonly fn: (c: Crdt<any>) => Crdt<any>;
|
|
206
|
+
/**
|
|
207
|
+
* Optional quorum settings. When present, the update runs as a
|
|
208
|
+
* quorum write — the actor broadcasts the merged value to peers,
|
|
209
|
+
* collects acks, and only then resolves the user's promise. When
|
|
210
|
+
* absent, behaves like the legacy sync path (apply locally + let
|
|
211
|
+
* gossip carry the value eventually).
|
|
212
|
+
*/
|
|
213
|
+
readonly quorum?: {
|
|
214
|
+
readonly pendingId: string;
|
|
215
|
+
readonly consistency: WriteConsistency;
|
|
216
|
+
readonly timeoutMs: number;
|
|
217
|
+
readonly resolve: () => void;
|
|
218
|
+
readonly reject: (err: Error) => void;
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
interface DeleteMsg {
|
|
222
|
+
readonly t: 'ddata-delete';
|
|
223
|
+
readonly key: string;
|
|
224
|
+
}
|
|
225
|
+
/** Out-of-mailbox: a quorum-read user call. See {@link DistributedDataHandle.getAsync}. */
|
|
226
|
+
interface ReadMsg {
|
|
227
|
+
readonly t: 'ddata-read';
|
|
228
|
+
readonly key: string;
|
|
229
|
+
readonly pendingId: string;
|
|
230
|
+
readonly consistency: ReadConsistency;
|
|
231
|
+
readonly timeoutMs: number;
|
|
232
|
+
readonly resolve: (value: Crdt<any> | undefined) => void;
|
|
233
|
+
readonly reject: (err: Error) => void;
|
|
234
|
+
}
|
|
235
|
+
type ActorMsg = UpdateMsg | DeleteMsg | ReadMsg | DDataGossipMsg | DDataWriteRequestMsg | DDataWriteAckMsg | DDataReadRequestMsg | DDataReadResponseMsg;
|
|
236
|
+
/**
|
|
237
|
+
* Public handle returned from `extension.start(cluster)`. Holds a
|
|
238
|
+
* ref to the internal actor + a synchronously-readable view of the
|
|
239
|
+
* replicated state.
|
|
240
|
+
*/
|
|
241
|
+
export declare class DistributedDataHandle {
|
|
242
|
+
private readonly ref;
|
|
243
|
+
private readonly view;
|
|
244
|
+
private readonly cluster;
|
|
245
|
+
private wireUnsubs;
|
|
246
|
+
constructor(ref: ActorRef<ActorMsg>, view: SharedView, cluster: Cluster, wireUnsubs?: ReadonlyArray<() => void>);
|
|
247
|
+
/** @internal — called by the extension's `stop()`. */
|
|
248
|
+
_stopWireHandlers(): void;
|
|
249
|
+
/** Synchronously read the local replica's view of `key`. */
|
|
250
|
+
get<C extends Crdt<C>>(key: string): C | undefined;
|
|
251
|
+
/**
|
|
252
|
+
* Mutate `key` via `fn`. If the key doesn't exist yet, `factory()`
|
|
253
|
+
* is called to seed a fresh CRDT. The mutation runs on the actor
|
|
254
|
+
* thread so concurrent local callers serialize cleanly.
|
|
255
|
+
*/
|
|
256
|
+
update<C extends Crdt<C>>(key: string, factory: CrdtFactory<C>, fn: (current: C) => C): void;
|
|
257
|
+
/**
|
|
258
|
+
* Quorum-write variant of {@link update}. Returns a promise that
|
|
259
|
+
* resolves only after the requested number of replicas have
|
|
260
|
+
* acknowledged the merge. Self always counts as the first ack, so
|
|
261
|
+
* single-node clusters and `consistency: 'local'` resolve as soon as
|
|
262
|
+
* the local apply is done.
|
|
263
|
+
*
|
|
264
|
+
* Rejects with a timeout error if not enough acks arrive within
|
|
265
|
+
* `timeoutMs` (default `gossipIntervalMs × 5`). A timeout does NOT
|
|
266
|
+
* roll the local write back — the value is already applied locally
|
|
267
|
+
* and will continue to gossip; the rejection only signals "I'm not
|
|
268
|
+
* sure enough replicas saw it".
|
|
269
|
+
*
|
|
270
|
+
* await dd.updateAsync<GCounter>('hits', GCounter.empty,
|
|
271
|
+
* (c) => c.increment(dd.selfReplicaId(), 1),
|
|
272
|
+
* { consistency: 'majority' });
|
|
273
|
+
*/
|
|
274
|
+
updateAsync<C extends Crdt<C>>(key: string, factory: CrdtFactory<C>, fn: (current: C) => C, opts?: {
|
|
275
|
+
readonly consistency: WriteConsistency;
|
|
276
|
+
readonly timeoutMs?: number;
|
|
277
|
+
}): Promise<void>;
|
|
278
|
+
/**
|
|
279
|
+
* Quorum-read variant of {@link get}. Sends a read request to peers
|
|
280
|
+
* matching the consistency target, merges all incoming responses
|
|
281
|
+
* (plus the local replica), and resolves with the merged value.
|
|
282
|
+
* `undefined` if no replica knows the key.
|
|
283
|
+
*
|
|
284
|
+
* Self always counts as the first response — `'local'` returns
|
|
285
|
+
* immediately with whatever's in the local view. Timeout default is
|
|
286
|
+
* the same as {@link updateAsync}.
|
|
287
|
+
*
|
|
288
|
+
* const cart = await dd.getAsync<ORSet<string>>('cart-42',
|
|
289
|
+
* { consistency: 'majority' });
|
|
290
|
+
*/
|
|
291
|
+
getAsync<C extends Crdt<C>>(key: string, opts?: {
|
|
292
|
+
readonly consistency: ReadConsistency;
|
|
293
|
+
readonly timeoutMs?: number;
|
|
294
|
+
}): Promise<C | undefined>;
|
|
295
|
+
/**
|
|
296
|
+
* Best-effort delete. Forgets `key` on this replica only — peers
|
|
297
|
+
* may re-introduce it via gossip. See class header for the
|
|
298
|
+
* tombstone story.
|
|
299
|
+
*/
|
|
300
|
+
delete(key: string): void;
|
|
301
|
+
/**
|
|
302
|
+
* Subscribe to changes for `key`. Listener fires synchronously
|
|
303
|
+
* after every successful update / merge that changes the local
|
|
304
|
+
* value (deep-equal check via the CRDT's own `toJSON`). Returns
|
|
305
|
+
* an unsubscribe function.
|
|
306
|
+
*/
|
|
307
|
+
subscribe<C extends Crdt<C>>(key: string, listener: (value: C) => void): () => void;
|
|
308
|
+
/** Snapshot of every key currently known on the local replica. */
|
|
309
|
+
keys(): string[];
|
|
310
|
+
/** ReplicaId used when seeding ops (delegated from `cluster.selfAddress`). */
|
|
311
|
+
selfReplicaId(): string;
|
|
312
|
+
}
|
|
313
|
+
export {};
|
|
314
|
+
//# sourceMappingURL=DistributedData.d.ts.map
|