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
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,885 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project follow [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
|
|
4
|
+
and adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
5
|
+
|
|
6
|
+
This is a pre-1.0 hobby project — every minor version is potentially
|
|
7
|
+
breaking. See `ROADMAP.md` for what's coming, and `README.md` →
|
|
8
|
+
"What's in here / What isn't" for current scope honesty.
|
|
9
|
+
|
|
10
|
+
## [Unreleased]
|
|
11
|
+
|
|
12
|
+
## [0.9.0] — 2026-05-14
|
|
13
|
+
|
|
14
|
+
The "public-launch readiness" release. Six workstreams accumulated
|
|
15
|
+
since v0.8.0 (142 commits total): the docs site goes live at
|
|
16
|
+
`actor-ts.dev` with 199+ pages and full German translation; a wave
|
|
17
|
+
of API shortcuts collapses the clustered-actor setup from 15–30
|
|
18
|
+
lines to a single `Cluster.bootstrap({ name })`; eight latent
|
|
19
|
+
security weaknesses get patched; a code-quality sprint closes 17
|
|
20
|
+
audit-catalog issues; the chat sample grows DMs / typing /
|
|
21
|
+
read-receipts / production-grade auth.
|
|
22
|
+
|
|
23
|
+
### Added — Quality-of-life API shortcuts
|
|
24
|
+
|
|
25
|
+
- `Cluster.bootstrap({ name })` — one-call setup that builds the
|
|
26
|
+
`ActorSystem`, joins the cluster, starts the Receptionist, and
|
|
27
|
+
wires `SIGTERM` / `SIGINT` shutdown. Discovery defaults to an
|
|
28
|
+
env-driven chain (`CLUSTER_SEEDS` → Kubernetes API → DNS) via
|
|
29
|
+
the new `autoDiscovery()` builder so the same code runs
|
|
30
|
+
single-node in dev and joins an existing cluster in production
|
|
31
|
+
without a config change.
|
|
32
|
+
- `cluster.sharding` getter on `Cluster` — replaces the
|
|
33
|
+
`ClusterSharding.get(system, cluster)` ceremony. The static
|
|
34
|
+
form still works for callers that need to reference the class
|
|
35
|
+
from outside a `Cluster` handle.
|
|
36
|
+
- `ClusterSharding.start('cart', CartActor, { extractEntityId })`
|
|
37
|
+
— class-shorthand overload that wraps the entity in
|
|
38
|
+
`Props.create(() => new CartActor())` internally. Factory form
|
|
39
|
+
also accepted (`() => new CartActor(deps)`); full-form
|
|
40
|
+
`start({ typeName, entityProps, ... })` stays valid.
|
|
41
|
+
- `ref.ask<TRes>(msg, timeoutMs?)` — method form of the ask
|
|
42
|
+
pattern. Auto-injects `replyTo: ref` on the message so
|
|
43
|
+
recipients can read either `this.sender` or `msg.replyTo`
|
|
44
|
+
without callers supplying it. `OmitReplyTo<TMsg>` distributes
|
|
45
|
+
across unions so the call site never has to satisfy the
|
|
46
|
+
`replyTo` field.
|
|
47
|
+
- `system.spawnTyped(behavior, name)` +
|
|
48
|
+
`system.spawnTypedAnonymous(behavior)` — method form symmetric
|
|
49
|
+
to `spawn` / `spawnAnonymous`. Same pair on `ActorContext` for
|
|
50
|
+
typed-child creation from untyped parents.
|
|
51
|
+
- `system.http(port, { host?, backend? })` — Fastify-default HTTP
|
|
52
|
+
shortcut. Returns the same `ServerBuilder` as the explicit
|
|
53
|
+
`system.extension(HttpExtensionId).newServerAt(...)` chain.
|
|
54
|
+
- `ActorSystem.create('app', { persistence: { journal,
|
|
55
|
+
snapshotStore } })` — wire real persistence backends at creation
|
|
56
|
+
time. Either slot is independent; the in-memory default stays
|
|
57
|
+
in place for the omitted slot.
|
|
58
|
+
|
|
59
|
+
### Removed — replaced by method forms
|
|
60
|
+
|
|
61
|
+
- Free function `ask(ref, msg, timeoutMs?)` — use
|
|
62
|
+
`ref.ask<TRes>(msg, timeoutMs?)`. Pre-1.0, no compat shim.
|
|
63
|
+
- Free functions `spawnTyped(system, behavior, name?)` and
|
|
64
|
+
`spawnTypedChild(ctx, behavior, name?)` — use
|
|
65
|
+
`system.spawnTyped(...)` / `ctx.spawnTyped(...)` (with
|
|
66
|
+
anonymous variants). Internal `Ask.ts` and
|
|
67
|
+
`internal/PromiseActorRef.ts` modules deleted; ask impl
|
|
68
|
+
inlined into `ActorRef.ts`.
|
|
69
|
+
|
|
70
|
+
### Security
|
|
71
|
+
|
|
72
|
+
Eight latent weaknesses patched. All defenses are at the
|
|
73
|
+
deserialisation / boundary layer with regression tests pinning
|
|
74
|
+
both the attack vector and the legitimate path.
|
|
75
|
+
|
|
76
|
+
- **Wire-frame size cap** — `cluster/protocol` rejects frames
|
|
77
|
+
claiming gigabyte+ lengths before allocation; defeats a
|
|
78
|
+
4-GiB-claim memory-exhaustion DoS. Configurable; `Infinity`
|
|
79
|
+
cap remains the escape hatch.
|
|
80
|
+
- **Path-traversal block in `FilesystemObjectStorageBackend`** —
|
|
81
|
+
keys containing `..` or absolute-path patterns rejected at the
|
|
82
|
+
boundary instead of being resolved through to disk.
|
|
83
|
+
- **Memcached protocol injection** — `MemcachedCache` keys
|
|
84
|
+
validated against the 250-byte / printable-ASCII rule before
|
|
85
|
+
being placed on the wire; defeats injection via attacker-
|
|
86
|
+
controlled keys.
|
|
87
|
+
- **Gossip-version cap against permanent-down exploit** —
|
|
88
|
+
versions more than 24 h above the local wall-clock are
|
|
89
|
+
rejected on the spot; previously a malicious peer could send
|
|
90
|
+
`version: MAX_SAFE_INTEGER` to pin a healed node as `down`
|
|
91
|
+
forever.
|
|
92
|
+
- **Snapshot-seq validation on recovery** — `PersistentActor`
|
|
93
|
+
rejects snapshots whose `seqNr` is non-monotonic with the
|
|
94
|
+
journal; defeats tampered-snapshot replay.
|
|
95
|
+
- **WebSocket inbound frame size cap** — `WebSocketActor`
|
|
96
|
+
rejects oversized inbound frames before assembly; defeats
|
|
97
|
+
memory-exhaustion DoS via fragmented frames.
|
|
98
|
+
- **Duplicate-identity hello rejection** — `cluster/transport`
|
|
99
|
+
refuses a second hello frame claiming an already-connected
|
|
100
|
+
identity; defeats peer-hijack where an attacker rebinds to a
|
|
101
|
+
victim's `from` address. Legitimate reconnect (after clean
|
|
102
|
+
close) unaffected.
|
|
103
|
+
- **Idempotency-key cache binding** — `http/cache/idempotency`
|
|
104
|
+
ties each cached response to the request fingerprint (method
|
|
105
|
+
+ path + body hash) so a poisoned key can't replay one
|
|
106
|
+
response across different requests.
|
|
107
|
+
|
|
108
|
+
### Documentation
|
|
109
|
+
|
|
110
|
+
- **Public website at [actor-ts.dev](https://actor-ts.dev)** —
|
|
111
|
+
Astro Starlight site under `docs/`, 199+ pages across the
|
|
112
|
+
12-Part IA, full Quickstart + fundamentals + per-subsystem
|
|
113
|
+
deep-dives + migration guides + API reference (TypeDoc).
|
|
114
|
+
- **Full German translation** — every page mirrored under
|
|
115
|
+
`/de/`. Seven additional UI locales (fr, es, ja, ko, pt-BR,
|
|
116
|
+
ru, zh-CN) staged with sidebar labels translated; full content
|
|
117
|
+
translations tracked as #300–#306.
|
|
118
|
+
- **Mermaid diagrams throughout** — replaces ASCII art across
|
|
119
|
+
all subsystem pages (cluster, sharding, distributed-data,
|
|
120
|
+
persistence, observability, operations, testing, IO, delivery).
|
|
121
|
+
- **Landing-page polish** — animated particle-network hero,
|
|
122
|
+
prose-driven "What is actor-ts" cards, See-it-in-action status
|
|
123
|
+
grid, custom-domain redirect, mobile-responsive splash.
|
|
124
|
+
- **Issue templates** — `.github/ISSUE_TEMPLATE/` gains
|
|
125
|
+
`security_report.yml`; bug template gets a security-flag
|
|
126
|
+
checkbox.
|
|
127
|
+
- `decodeCrdt` (`src/crdt/DistributedData.ts`) annotated as the
|
|
128
|
+
codebase's reference shape for discriminator-union dispatch,
|
|
129
|
+
with explicit notes on what makes the existing
|
|
130
|
+
`const _exhaustive: never = json` pattern safe and when to
|
|
131
|
+
prefer it vs `match().exhaustive()` (#231).
|
|
132
|
+
|
|
133
|
+
### Code-quality hygiene sprint
|
|
134
|
+
|
|
135
|
+
A focused refactor pass — no behavioural changes, no public-API
|
|
136
|
+
breaks, no new features. Goal: more compile-time safety, fewer
|
|
137
|
+
duplicated literals, easier-to-write tests. 17 issues closed
|
|
138
|
+
(15 implemented + 2 auto-corrections from the audit catalog).
|
|
139
|
+
|
|
140
|
+
**Pattern-match exhaustiveness pass** — 9 discriminator-union
|
|
141
|
+
dispatch sites converted from if/else-or-switch to
|
|
142
|
+
`match(...).exhaustive()` so the TypeScript compiler refuses to
|
|
143
|
+
compile when a new variant is added to one of the unions without
|
|
144
|
+
a matching arm at the dispatch site. Touches:
|
|
145
|
+
`BrokerActor.enqueueOutbound` state (#230),
|
|
146
|
+
`JetStreamActor` / `MqttActor` / `KafkaActor` cmd dispatch (#232,
|
|
147
|
+
#233, #234), `BackoffSupervisor` reset-policy + termination-trigger
|
|
148
|
+
(#240), `HoconParser` value-shape walk (#241), `Compression` codec
|
|
149
|
+
selection (#243), `BodyCodec` encode-compression (#244),
|
|
150
|
+
`PersistentActor` (#239 — see below).
|
|
151
|
+
|
|
152
|
+
**Foundational DRY helpers** (`src/util/`):
|
|
153
|
+
- `Constants.ts` — centralised duplicated defaults (gossip
|
|
154
|
+
interval, ask timeout, tombstone TTL, seed-retry, etc.). 6
|
|
155
|
+
named exports replace ~10 inline-literal sites across
|
|
156
|
+
`Cluster`, `Receptionist`, `DistributedPubSubMediator`,
|
|
157
|
+
`ClusterClient`, `ClusterClientReceptionist`, `DistributedData`
|
|
158
|
+
(#257).
|
|
159
|
+
- `LazyImport.ts` — uniform peer-dep import + helpful "missing
|
|
160
|
+
package" error. Replaces ~7 lines × 6 broker actors of
|
|
161
|
+
hand-rolled try/catch + bespoke install messages (#252).
|
|
162
|
+
- `WrapError.ts` — typed-error wrap helper with double-wrap
|
|
163
|
+
prevention. Migrated 8 sites across cache + object-storage
|
|
164
|
+
(#254).
|
|
165
|
+
|
|
166
|
+
**Foundational typed names**:
|
|
167
|
+
- `src/config/ConfigKeys.ts` — typed const-tree for every
|
|
168
|
+
`actor-ts.*` HOCON path. Migrated 16 call sites across all
|
|
169
|
+
brokers + ActorSystem + CacheExtension (#265).
|
|
170
|
+
- `src/persistence/storage/KeyValidator.ts` — declarative
|
|
171
|
+
rule-based factory replacing the hand-rolled `assertSafeKey`
|
|
172
|
+
(filesystem) and `assertSafeMemcachedKey`. Adding a new
|
|
173
|
+
storage backend with similar key rules becomes a 6-line
|
|
174
|
+
`as const` rule set (#251).
|
|
175
|
+
|
|
176
|
+
### Chat sample feature sweep
|
|
177
|
+
|
|
178
|
+
Five "Chat sample: …" follow-up issues resolved across five
|
|
179
|
+
commits. Four shipped as features, one closed-not-implement, one
|
|
180
|
+
sub-feature spun off as its own focused issue.
|
|
181
|
+
|
|
182
|
+
- **User-created rooms at runtime** (#98) — new
|
|
183
|
+
`ChatRoomDirectoryActor` wraps a cluster-wide `DistributedData`
|
|
184
|
+
ORSet of room names. `DEFAULT_ROOMS` becomes the idempotent seed
|
|
185
|
+
list; the actor fans out `RoomsChanged` / `RoomAdded` /
|
|
186
|
+
`RoomRemoved` events to per-session subscribers. Protocol gains
|
|
187
|
+
`create-room` (client → server) plus `room-added` / `room-removed`
|
|
188
|
+
(server → client). Six frontends grow a "+ new room" input.
|
|
189
|
+
- **Private direct messages** (#100) — DMs ride on existing
|
|
190
|
+
protocol frames as virtual `@<username>` "rooms". Server
|
|
191
|
+
distinguishes by the leading `@` and routes through a sharded
|
|
192
|
+
`DmChannelActor` keyed on the canonical pair-id
|
|
193
|
+
(`canonicalPairId('alice', 'bob') === 'alice|bob'` regardless of
|
|
194
|
+
ordering). Each user subscribes once at login to their inbox
|
|
195
|
+
topic `chat.dm.user.<self>` — single subscription covers every
|
|
196
|
+
DM conversation. Six frontends: click any user in the Online
|
|
197
|
+
panel to open a DM.
|
|
198
|
+
- **Typing indicators** (#103 slice 1) — `{ type: 'typing', room }`
|
|
199
|
+
fan-outs via the room's existing PubSub topic as an ephemeral
|
|
200
|
+
`TypingBroadcast`; server filters self-echoes; clients debounce
|
|
201
|
+
outbound at 1/2 s and auto-clear stale indicators after 3 s.
|
|
202
|
+
- **Read receipts** (#103 slice 2) — per-room
|
|
203
|
+
`read-up-to.<room>` `DistributedData` LWWMap mapping username →
|
|
204
|
+
highest acked message timestamp. New `ReadReceiptsActor` enforces
|
|
205
|
+
a monotonic guard at the boundary (LWW's wall-clock tiebreak
|
|
206
|
+
doesn't know read pointers can't go backwards). Frontends render
|
|
207
|
+
✓ / ✓✓ on own messages.
|
|
208
|
+
- **Emoji passthrough** (#103 slice 1, doc-only) — server is
|
|
209
|
+
text-agnostic; any frontend can wire an `emoji-mart` /
|
|
210
|
+
`<emoji-picker-element>` / native picker on top without server
|
|
211
|
+
changes. Documented in the chat README; no code shipped.
|
|
212
|
+
- **Production-realistic auth** (#99, Option A) — passwords stored
|
|
213
|
+
as `<salt>:<hash>` scrypt records (`crypto.scryptSync`,
|
|
214
|
+
N=16384/r=8/p=1, constant-time verify via
|
|
215
|
+
`crypto.timingSafeEqual`). Session tokens become HMAC-SHA256-
|
|
216
|
+
signed JWT-style strings; `lookupToken` self-validates without a
|
|
217
|
+
DD read. DD-LWWMap shrinks to a revocation-only set
|
|
218
|
+
(`chat.session-revocations`). Server secret comes from
|
|
219
|
+
`CHAT_TOKEN_SECRET` env (warned-and-fallback otherwise).
|
|
220
|
+
- **#104 (mobile frontends)** — closed-not-implement. Six web
|
|
221
|
+
frontends already cover the "protocol works anywhere" story;
|
|
222
|
+
adding React Native + Flutter is two more app-frameworks to
|
|
223
|
+
maintain for marginal sample-value gain. Rationale in the issue
|
|
224
|
+
closing comment.
|
|
225
|
+
- **#292 (file uploads)** — spun off as its own focused issue
|
|
226
|
+
because object-storage wiring is qualitatively different from
|
|
227
|
+
the other UI-polish items. Not blocking the rest of the sweep.
|
|
228
|
+
|
|
229
|
+
Chat-sample smoke-test grows from passes 1–2 to **passes 1–7**,
|
|
230
|
+
covering: login + send + history (1–2), user-created rooms (3),
|
|
231
|
+
direct messages (4), typing indicators (5), read receipts including
|
|
232
|
+
a monotonic-guard probe (6), and auth hardening — wrong password,
|
|
233
|
+
valid resume, revoked-token resume rejection, tampered-token resume
|
|
234
|
+
rejection (7).
|
|
235
|
+
|
|
236
|
+
### Added — Persistence
|
|
237
|
+
|
|
238
|
+
- `eventDispatcher<S, E>()` (#239) — typed builder for
|
|
239
|
+
`PersistentActor.onEvent` that the compiler refuses to finish
|
|
240
|
+
until every variant of the event union has a handler. Missing
|
|
241
|
+
variants surface as a clear "EventDispatcherIncomplete<missing>"
|
|
242
|
+
type error at the build site. Documented as the preferred shape
|
|
243
|
+
for new persistent actors; existing handwritten `onEvent`
|
|
244
|
+
impls continue to work unchanged.
|
|
245
|
+
|
|
246
|
+
### Added — Testing infrastructure
|
|
247
|
+
|
|
248
|
+
- `tests/util/AsyncAssertions.ts` — `assertCompletesWithin(promise,
|
|
249
|
+
ms, label)` + `assertDoesNotCompleteWithin` for diagnostic-quality
|
|
250
|
+
timeout failures (the label appears in the error message;
|
|
251
|
+
default Bun timeouts give no clue which step was slow) (#288).
|
|
252
|
+
- `tests/util/TestActorSystem.ts` — `createTestActorSystem(options?)`
|
|
253
|
+
consolidates the per-file `makeSystem` boilerplate. Demo
|
|
254
|
+
migration in `BrokerActor.test.ts`; other test files can opt-in
|
|
255
|
+
over time (#283, scope-adjusted).
|
|
256
|
+
- `tests/unit/cache/_Contract.ts` — `runCacheContractTests(spec)`,
|
|
257
|
+
a backend-agnostic suite covering set/get/delete/incr/setIfAbsent/
|
|
258
|
+
TTL semantics. InMemoryCache wired as first consumer; Redis +
|
|
259
|
+
Memcached can opt-in once their mock-client factories are
|
|
260
|
+
available (#287, scope-adjusted).
|
|
261
|
+
|
|
262
|
+
### Issue hygiene
|
|
263
|
+
|
|
264
|
+
- Closed as duplicate: #267 → #253, #266 → #255, #167 → #164.
|
|
265
|
+
- Closed as not-applicable: #245 — `BrokerEvents.ts` has no
|
|
266
|
+
in-file dispatch; events flow through `EventStream`'s
|
|
267
|
+
per-subscriber `instanceof` machinery, which by design isn't a
|
|
268
|
+
closed-union dispatch.
|
|
269
|
+
|
|
270
|
+
## [0.8.0] — 2026-05-11
|
|
271
|
+
|
|
272
|
+
The "production-vertical big" release — one priority:high cornerstone
|
|
273
|
+
plus four mid-sized operator-facing items. Wire-format additive: new
|
|
274
|
+
optional message types and HTTP routes; no existing callers break.
|
|
275
|
+
|
|
276
|
+
### Added — DistributedData quorum writes / reads (#81)
|
|
277
|
+
|
|
278
|
+
- `DistributedDataHandle.updateAsync(key, factory, fn, { consistency })`
|
|
279
|
+
and `.getAsync(key, { consistency })` — promise-returning variants
|
|
280
|
+
with a `WriteConsistency` / `ReadConsistency` target.
|
|
281
|
+
- Consistency levels: `'local'` (legacy fire-and-forget), `'majority'`
|
|
282
|
+
(⌊N/2⌋+1), `'all'` (every up-member), `{ from: K }` (clamped to
|
|
283
|
+
`[1, N]`). Self always counts as the first ack; single-node
|
|
284
|
+
clusters resolve instantly.
|
|
285
|
+
- Reads merge incoming responses into the local replica before
|
|
286
|
+
resolving, so a `ReadMajority` effectively pulls the freshest
|
|
287
|
+
state without waiting for gossip.
|
|
288
|
+
- Timeouts reject writes (the local apply still stands, gossip
|
|
289
|
+
continues) and resolve reads with the best-available merge —
|
|
290
|
+
reads stay best-effort even on partial failure.
|
|
291
|
+
- New wire messages `ddata-write-request|ack` /
|
|
292
|
+
`ddata-read-request|response`. Registered via the extension's
|
|
293
|
+
synchronous `start()` so the inbound side routes before the user
|
|
294
|
+
can issue the first quorum write.
|
|
295
|
+
|
|
296
|
+
### Added — operations tooling
|
|
297
|
+
|
|
298
|
+
- `reEncryptObjectStorage(backend, opts)` (#70) — re-encrypt every
|
|
299
|
+
body under a prefix to the active master key from a `MasterKeyRing`.
|
|
300
|
+
Idempotent fast-path on bodies already at the active version;
|
|
301
|
+
`If-Match` CAS internally so a concurrent writer isn't overwritten
|
|
302
|
+
silently. Closes the missing step in v0.7's
|
|
303
|
+
`docs/operations/rolling-migration.md` Phase-3 — the doc now shows
|
|
304
|
+
the real call instead of a TBD marker.
|
|
305
|
+
- `migrateBetweenJournals(source, target, opts?)` /
|
|
306
|
+
`migrateBetweenSnapshotStores(source, target, { pids })` (#87) —
|
|
307
|
+
copy-with-optional-transform helpers for backend swaps and
|
|
308
|
+
schema-piggyback migrations. Per-pid resume from `target.highest
|
|
309
|
+
Seq + 1`; optional `MigrationProgressStore` for cross-process
|
|
310
|
+
resumability. `skipExistingPids` for fan-out across worker pools.
|
|
311
|
+
|
|
312
|
+
### Added — outside-in cluster connectivity (#86)
|
|
313
|
+
|
|
314
|
+
- `ClusterClient({ contactPoints })` — lightweight handle for
|
|
315
|
+
processes that aren't cluster members (REST frontends, batch jobs,
|
|
316
|
+
operator scripts). Opens one persistent TCP connection to a
|
|
317
|
+
contact-point, performs the standard hello handshake with a
|
|
318
|
+
synthetic client address, and exchanges `cluster-client-envelope`
|
|
319
|
+
/ `cluster-client-reply` frames.
|
|
320
|
+
- `send(targetPath, message)` for fire-and-forget,
|
|
321
|
+
`ask(targetPath, message, timeoutMs?)` for request/reply,
|
|
322
|
+
`close()` for teardown.
|
|
323
|
+
- Contact-point failover: tries them in round-robin; the first
|
|
324
|
+
successful dial wins. Ask rejections come back as deterministic
|
|
325
|
+
Error rejections (path-not-found, timeout, cluster-side ask
|
|
326
|
+
failure).
|
|
327
|
+
- `ClusterClientReceptionist` extension — cluster-side endpoint.
|
|
328
|
+
Resolves the target path through the local ActorSystem and
|
|
329
|
+
forwards as tell (no askId) or `ask` (with askId) plus a reply
|
|
330
|
+
frame. Start once per cluster node that should accept client
|
|
331
|
+
traffic.
|
|
332
|
+
- Out of scope for v1: ActorRef payloads (no `encodeRefs` round-trip
|
|
333
|
+
on this path), push-style subscriptions, cluster-aware routing on
|
|
334
|
+
the receptionist side.
|
|
335
|
+
|
|
336
|
+
### Added — extended cluster-management HTTP endpoints (#56)
|
|
337
|
+
|
|
338
|
+
- `GET /cluster/shards?type=<typeName>` — shard-to-region map for one
|
|
339
|
+
sharded type, read from the coordinator state stored in
|
|
340
|
+
DistributedData. Returns 404 if DD isn't started or the type
|
|
341
|
+
hasn't recorded state yet.
|
|
342
|
+
- `POST /cluster/down` body `{ address }` — operator-initiated
|
|
343
|
+
force-down of a remote peer. Backed by a new public
|
|
344
|
+
`cluster.down(addr)` method that emits MemberDown + MemberRemoved
|
|
345
|
+
and tombstones the address. Opt-in via `enableDownEndpoint`;
|
|
346
|
+
production deployments should still gate this behind an auth
|
|
347
|
+
proxy.
|
|
348
|
+
- `GET /metrics` — Prometheus text format from the system's
|
|
349
|
+
MetricsRegistry. Opt-in via `enableMetricsEndpoint` because most
|
|
350
|
+
deployments scrape metrics from a separate port.
|
|
351
|
+
|
|
352
|
+
### Added — public Cluster API
|
|
353
|
+
|
|
354
|
+
- `Cluster.down(addr: NodeAddress | string): boolean` — operator
|
|
355
|
+
force-down of a remote peer. Symmetric to `Cluster.leave()` but
|
|
356
|
+
for someone else's address. Returns `true` if the member was
|
|
357
|
+
found and downed, `false` if the address was unknown or already
|
|
358
|
+
terminal. Refuses to down `selfAddress` — that's `leave()`'s
|
|
359
|
+
job (#56).
|
|
360
|
+
|
|
361
|
+
## [0.7.0] — 2026-05-11
|
|
362
|
+
|
|
363
|
+
### Added — operator-facing documentation under `docs/`
|
|
364
|
+
|
|
365
|
+
- `docs/operations/rolling-migration.md` (#91) — the canonical
|
|
366
|
+
four-phase rolling-deploy walkthrough on top of `writeVersion` +
|
|
367
|
+
`MasterKeyRing` + `wrapLegacy` + `SchemaRegistry`. Code-first →
|
|
368
|
+
observation → writer flip → optional cleanup, with the parallel
|
|
369
|
+
master-key-rotation story. ASCII diagram up top for the elevator
|
|
370
|
+
pitch; symbol-reference table at the bottom mapping every
|
|
371
|
+
mentioned API to its export path.
|
|
372
|
+
- `docs/persistence/migration-recipes.md` (#93) — decision-tree
|
|
373
|
+
guide for picking among the five overlapping migration tools
|
|
374
|
+
(`defaultsAdapter` / `migratingAdapter` / `SchemaRegistry` /
|
|
375
|
+
`validatedEventAdapter` / `wrapEventAsEnvelope` + bulk
|
|
376
|
+
migrators). ASCII flowchart routes "what's the change?" to
|
|
377
|
+
exactly one recipe; each recipe has a worked example and a
|
|
378
|
+
"when NOT to use this" note. Pitfalls section covers the four
|
|
379
|
+
common questions (mixing adapters, downgrades, snapshots,
|
|
380
|
+
manifest renames).
|
|
381
|
+
- `ClusterEvents.MemberRemoved` JSDoc + README clarification (#79)
|
|
382
|
+
spelling out the two paths a removal can take — definitive
|
|
383
|
+
(tombstoned with `removedAt`, pruneable after `tombstoneTtlMs`)
|
|
384
|
+
vs FD-driven (deleted outright so a healed partition recovers).
|
|
385
|
+
Public APIs already filter; only direct iteration of the raw
|
|
386
|
+
membership view needs the explicit status check.
|
|
387
|
+
`MemberStatus`'s `'removed'` enum entry gains a paragraph-length
|
|
388
|
+
docstring with cross-refs to #75 and the event JSDoc.
|
|
389
|
+
|
|
390
|
+
### Added — broker-actor extensions
|
|
391
|
+
|
|
392
|
+
- MQTT 5.0 user properties + reason codes (#13) — opt in via
|
|
393
|
+
`protocolVersion: 5` on `MqttActorSettings` (default 4 keeps
|
|
394
|
+
every existing config unchanged). Inbound `MqttMessage`
|
|
395
|
+
carries optional `userProperties: Record<string, string |
|
|
396
|
+
string[]>` (multi-valued per the MQTT 5.0 spec) and
|
|
397
|
+
`reasonCode?: number`; outbound `MqttPublish` accepts a
|
|
398
|
+
`userProperties` map that the actor attaches to the PUBLISH
|
|
399
|
+
packet's v5 properties block. On v3.1.1 those fields are
|
|
400
|
+
silently dropped — the wire format has no slot for them. New
|
|
401
|
+
pure helper `buildPublishProperties(p, protocolVersion)` is
|
|
402
|
+
exported for users testing the v5 path without a broker.
|
|
403
|
+
- JetStream pull-consumer mode (#62) — opt in via `consumer.mode:
|
|
404
|
+
'pull'`. Push remains the default. In pull mode the actor
|
|
405
|
+
doesn't run an auto-iterating subscription; instead the
|
|
406
|
+
application sends `{ kind: 'fetch'; batch; expiresMs? }` cmds
|
|
407
|
+
to drive batch deliveries. Per-message ack/nak/term handshake
|
|
408
|
+
is unchanged. Batch semantics fan out all messages to `target`
|
|
409
|
+
up front, then `Promise.all`-await the per-message acks —
|
|
410
|
+
matches the natural pull-consumer pattern (target processes
|
|
411
|
+
the batch as it likes, acks come back independently).
|
|
412
|
+
`JetStreamClientLike` gains `consumers.get(stream, durable):
|
|
413
|
+
Promise<PullConsumerLike>` for the structural-typing contract.
|
|
414
|
+
|
|
415
|
+
### Added — cache: bulk operations across all three backends
|
|
416
|
+
|
|
417
|
+
- `Cache.mget<V>(keys: ReadonlyArray<string>): Promise<Map<string,
|
|
418
|
+
V>>` and `Cache.mset<V>(entries: ReadonlyMap<string, V>,
|
|
419
|
+
ttlMs?: number): Promise<void>` (#14). Hits land in the result
|
|
420
|
+
Map keyed by request keys; misses (no entry / expired /
|
|
421
|
+
malformed payload / transient backend failure) are simply
|
|
422
|
+
absent — `Map.get(k)` returns `V | undefined` with the same
|
|
423
|
+
"missing key" semantics as the single-key `get`. Backend
|
|
424
|
+
specifics:
|
|
425
|
+
- **InMemoryCache** — iterates the underlying Map; lazy
|
|
426
|
+
expiry applies to `mget` just like `get`.
|
|
427
|
+
- **RedisCache** — `mget` emits a single `MGET`; `mset`
|
|
428
|
+
without TTL emits a single `MSET`, with TTL falls back to
|
|
429
|
+
pipelined `SET ... PX` (Redis MSET has no per-key TTL).
|
|
430
|
+
`RedisClientLike` gains `mget` and `mset` to satisfy the
|
|
431
|
+
structural-typing contract.
|
|
432
|
+
- **MemcachedCache** — no native bulk ops on the wire;
|
|
433
|
+
falls back to `Promise.all` of single-key calls.
|
|
434
|
+
|
|
435
|
+
### Added — replicated event sourcing: optional Lease
|
|
436
|
+
|
|
437
|
+
- `ReplicatedEventSourcedActor.lease()` protected hook (#89).
|
|
438
|
+
Default returns `null` (multi-master, unchanged). When it
|
|
439
|
+
returns a `Lease`, the actor enforces single-writer mode for
|
|
440
|
+
its `persistenceId`: only the lease holder may `persist`,
|
|
441
|
+
non-holders are observers that throw on `persist` (use the
|
|
442
|
+
`isLeaseHolder` getter to gate side-effect logic before
|
|
443
|
+
calling). Companion `onLeaseLost(reason)` hook fires when a
|
|
444
|
+
TTL expiry / fence / backend failure flips the actor to
|
|
445
|
+
observer mode. Same Lease-based pattern v0.6.0's
|
|
446
|
+
ClusterSingleton (#38) and ShardCoordinator (#60) ship —
|
|
447
|
+
different scope (per-pid among replicas instead of
|
|
448
|
+
cluster-wide), same machinery. Use cases: non-replayable
|
|
449
|
+
side effects (card charges, webhooks) and heartbeat actors
|
|
450
|
+
where N replicas would multiply the rate.
|
|
451
|
+
|
|
452
|
+
### Changed — `Cache` interface (additive)
|
|
453
|
+
|
|
454
|
+
- The `Cache` interface gains two REQUIRED methods (`mget` and
|
|
455
|
+
`mset`). Existing user-side implementations of `Cache` must
|
|
456
|
+
add them — the three shipped backends (`InMemoryCache`,
|
|
457
|
+
`RedisCache`, `MemcachedCache`) are updated. Pre-1.0
|
|
458
|
+
framework, so this counts as additive evolution rather than
|
|
459
|
+
a tracked breaking change — but worth flagging.
|
|
460
|
+
|
|
461
|
+
### Removed — `CONTRIBUTING.md`
|
|
462
|
+
|
|
463
|
+
- `CONTRIBUTING.md` (v0.6.0's #92) is removed. The doc was
|
|
464
|
+
written under the assumption external contributors would land
|
|
465
|
+
PRs; the actual project posture is single-maintainer and PRs
|
|
466
|
+
aren't accepted. Internal conventions stay in `CLAUDE.md` /
|
|
467
|
+
the plan-doc / commit-message style.
|
|
468
|
+
- Replaced with four issue templates under `.github/ISSUE_TEMPLATE/`:
|
|
469
|
+
`bug_report.yml` (pre-labelled `bug` + `priority: medium`,
|
|
470
|
+
prompts for repro / version / runtime / peer-deps / logs),
|
|
471
|
+
`feature_request.yml` (pre-labelled `enhancement` +
|
|
472
|
+
`priority: low`, use-case + API sketch + acceptance criteria),
|
|
473
|
+
`documentation.yml` (pre-labelled `documentation` +
|
|
474
|
+
`priority: low`, location + kind), and `config.yml`
|
|
475
|
+
(disables blank issues, links to README / ROADMAP / CHANGELOG).
|
|
476
|
+
Closes the original #77 (multi-issue close-syntax — the
|
|
477
|
+
convention itself stays in commit-message style, not docs).
|
|
478
|
+
|
|
479
|
+
## [0.6.0] — 2026-05-08
|
|
480
|
+
|
|
481
|
+
### Added — sample apps (chat, voice, six frontends each)
|
|
482
|
+
|
|
483
|
+
- `examples/chat/` — clustered chat app on a 3-node TCP cluster:
|
|
484
|
+
sharded persistent rooms (`ChatRoomActor` + SQLite journal),
|
|
485
|
+
`OnlineUsersActor` via DistributedData + DistributedPubSub,
|
|
486
|
+
cluster-singleton HTTP front door (auto-failover ~5–10 s), six
|
|
487
|
+
frontends (Plain, Lit, Svelte, React, Next.js, Angular) sharing
|
|
488
|
+
one `protocol.ts` over the wire (#94, #95, #96, #97).
|
|
489
|
+
- `examples/voice/` — distributed voice server: 1:1 PTT, group, and
|
|
490
|
+
Teams-style rooms; `MediaRecorder` + `MediaSource` per-sender
|
|
491
|
+
audio relay over WebSocket binary frames; same six-frontend
|
|
492
|
+
matrix. Plain HTML frontend gates `getUserMedia` on
|
|
493
|
+
`isSecureContext` so Safari quirks surface upfront.
|
|
494
|
+
- Chat sample now uses snapshots — `ChatRoomActor.snapshotPolicy`
|
|
495
|
+
via `everyNEvents(100)` + `SqliteSnapshotStore` (#102), and
|
|
496
|
+
optional TLS / WSS via `--tls-cert` / `--tls-key`
|
|
497
|
+
(Fastify `https` option threaded through `FastifyBackend`),
|
|
498
|
+
with frontends auto-switching to `wss:` based on
|
|
499
|
+
`location.protocol` (#101).
|
|
500
|
+
|
|
501
|
+
### Added — observability bridges to industry-standard SDKs
|
|
502
|
+
|
|
503
|
+
- `promClientRegistry({ client, registry, namePrefix? })` in
|
|
504
|
+
`src/metrics/PromClientAdapter.ts` — bridges the framework's
|
|
505
|
+
`MetricsRegistry` to a user-owned `prom-client` registry so app
|
|
506
|
+
+ framework metrics share one `/metrics` endpoint. Structural
|
|
507
|
+
typing on `PromClientLike` keeps `prom-client` an optional peer
|
|
508
|
+
dep with no hard `import` (#64).
|
|
509
|
+
- `otelTracer({ api, tracer?, tracerName?, tracerVersion? })` in
|
|
510
|
+
`src/tracing/OtelAdapter.ts` — bridges the framework's `Tracer`
|
|
511
|
+
to `@opentelemetry/api`. W3C `traceparent` cross-actor /
|
|
512
|
+
cross-cluster propagation; `SpanKind` / `SpanStatusCode` mapping
|
|
513
|
+
via lookup tables; same structural-typing approach so the OTel
|
|
514
|
+
SDK stays optional (#63).
|
|
515
|
+
- README documents both adapters with end-to-end snippets in a new
|
|
516
|
+
"Observability — Prometheus + OpenTelemetry" section. See also
|
|
517
|
+
`examples/management/prom-client-shared.ts` and
|
|
518
|
+
`otel-jaeger.ts`.
|
|
519
|
+
|
|
520
|
+
### Added — persistence query: multi-tag filter
|
|
521
|
+
|
|
522
|
+
- `eventsByTag` accepts a `TagFilter` object combining three
|
|
523
|
+
operators (#90):
|
|
524
|
+
- `all: [...]` — intersect (every listed tag must appear).
|
|
525
|
+
- `any: [...]` — union (at least one listed tag must appear).
|
|
526
|
+
- `not: [...]` — exclusion (no listed tag may appear).
|
|
527
|
+
A bare string stays a back-compat shorthand for `{ all: [tag] }`.
|
|
528
|
+
- `InMemoryQuery` does the whole match in JS. `SqliteQuery` pushes
|
|
529
|
+
the filter into SQL — `JOIN events_tags` for `all`, `IN (?,?,…)`
|
|
530
|
+
with `DISTINCT` for `any`, JS-refines `not`. Prepared statements
|
|
531
|
+
cached per arity.
|
|
532
|
+
- `CassandraQuery` follows the same three strategies once the new
|
|
533
|
+
optional `events_by_tag` side table is populated (`useTagIndex:
|
|
534
|
+
true` on `CassandraJournal`). DDL + dual-write per `(event, tag)`
|
|
535
|
+
pair, exposed via `tagIndexDdl` (#44).
|
|
536
|
+
|
|
537
|
+
### Added — cluster lifecycle: TTL tombstones + LRU sharding
|
|
538
|
+
|
|
539
|
+
- Cluster-member tombstone pruning (#75) — `Member.removedAt`
|
|
540
|
+
travels in gossip; new `tombstoneTtlMs` (24 h),
|
|
541
|
+
`tombstonePruneIntervalMs` (5 min), `tombstoneMinRetentionMs`
|
|
542
|
+
(`6 × downAfterMs`) settings; `mergeMember` rejects expired
|
|
543
|
+
tombstones from gossip so a slow peer can't resurrect addresses
|
|
544
|
+
already pruned cluster-wide.
|
|
545
|
+
- ClusterSharding `maxEntities` cap with LRU passivation (#82) —
|
|
546
|
+
when the local region is at capacity, the entity with the oldest
|
|
547
|
+
`lastActivity` is passivated to make room. Default `0` (no
|
|
548
|
+
cap, current behaviour); already-passivating entities don't
|
|
549
|
+
count toward the cap.
|
|
550
|
+
- Cassandra-backed `RememberEntitiesStore` (#84) — state-based
|
|
551
|
+
schema (`(type_name, shard_id, entity_id) → started_at`),
|
|
552
|
+
partition-by-type for atomic whole-partition `clear`. Both
|
|
553
|
+
`JournalRememberEntitiesStore` and `CassandraRememberEntitiesStore`
|
|
554
|
+
now exported from `cluster/index.ts`.
|
|
555
|
+
|
|
556
|
+
### Added — framework primitives: FSM, supervision, throttle
|
|
557
|
+
|
|
558
|
+
- `PersistentFSM.stateTimeout` (#65) — declare a per-state
|
|
559
|
+
`_timeout: { afterMs, event, next, guard? }` to auto-fire a
|
|
560
|
+
transition when no command moves the FSM out within the window.
|
|
561
|
+
Routes the timeout fire through the actor mailbox via a magic
|
|
562
|
+
self-tell so it serialises cleanly with concurrent commands;
|
|
563
|
+
recovery re-arms the timer relative to wall-clock at recovery
|
|
564
|
+
completion.
|
|
565
|
+
- `PersistentFSM` multi-event transitions (#66) — `event` in the
|
|
566
|
+
transitions table accepts `Event[]` (or a function returning one)
|
|
567
|
+
alongside the single-Event form. Multiple events persist
|
|
568
|
+
atomically via `persistAll`; final-state vs `next` check fires
|
|
569
|
+
against the post-replay state.
|
|
570
|
+
- `BackoffSupervisor.triggerOn: 'failure' | 'stop' | 'any'` (#68)
|
|
571
|
+
— split crash-only vs clean-stop respawn (mirrors Akka's
|
|
572
|
+
`Backoff.onFailure` / `Backoff.onStop`). Default `'any'` keeps
|
|
573
|
+
the v1 behaviour.
|
|
574
|
+
- `BackoffSupervisor.forwardDuringGrace: false` (#67) — opt-in
|
|
575
|
+
strict gate: messages arriving in the post-respawn grace window
|
|
576
|
+
stash until the child confirms it survived `drainGraceMs`. Fixes
|
|
577
|
+
the dead-letter cascade described in the issue at the cost of
|
|
578
|
+
`drainGraceMs` of latency on the first message after each
|
|
579
|
+
respawn.
|
|
580
|
+
- `context.throttle({ qps, burst, onExcess: 'pause' | 'drop' })`
|
|
581
|
+
per-actor token-bucket rate limiter (#83). New `TokenBucket`
|
|
582
|
+
utility class (`src/util/TokenBucket.ts`) — pure, clock-injected,
|
|
583
|
+
refill-on-read. System messages bypass the gate so lifecycle
|
|
584
|
+
stays responsive under tight throttles.
|
|
585
|
+
- `EventStream.subscribe(actor, channel, predicate)` overload
|
|
586
|
+
(#85) — predicate-filtered subscriptions, evaluated before
|
|
587
|
+
delivery; throwing predicates are treated as no-match and the
|
|
588
|
+
bus stays alive for other subscribers.
|
|
589
|
+
|
|
590
|
+
### Added — broker actors: long-running handler heartbeat
|
|
591
|
+
|
|
592
|
+
- `KafkaActor` `heartbeat` command + `withAutoHeartbeat` helper
|
|
593
|
+
(#78) — long manual-commit handlers can periodically tell
|
|
594
|
+
`{ kind: 'heartbeat', topic, partition, offset }` to bump
|
|
595
|
+
kafkajs's session-deadline mid-processing. The convenience
|
|
596
|
+
helper wraps a body in a `setInterval` that fires the cmd at
|
|
597
|
+
~1/3 of session-timeout.
|
|
598
|
+
|
|
599
|
+
### Added — DX: CONTRIBUTING.md
|
|
600
|
+
|
|
601
|
+
- New `CONTRIBUTING.md` covers the workflow this project actually
|
|
602
|
+
uses: setup, test layout (unit / multi-node / smoke /
|
|
603
|
+
cross-runtime), commit conventions, the multi-issue close-syntax
|
|
604
|
+
gotcha (`Closes #N. Closes #M.` — separate keywords required),
|
|
605
|
+
Co-Authored-By trailer convention, pre-1.0 release stance, code
|
|
606
|
+
style (#92, #77).
|
|
607
|
+
|
|
608
|
+
### Added — multi-node test harness + cluster sharding hardening
|
|
609
|
+
|
|
610
|
+
- `MultiNodeSpec` test harness — in-process N-role cluster with
|
|
611
|
+
failure-detector tightening, partition / heal helpers,
|
|
612
|
+
`awaitMembers` / `awaitMemberStatus` / `awaitLeader` synchronisation,
|
|
613
|
+
per-role downing-provider injection (#34).
|
|
614
|
+
- `ParallelMultiNodeSpec` — worker-thread variant for tests that need
|
|
615
|
+
true parallelism across OS threads (#46).
|
|
616
|
+
- Sharding rebalance hardening + sharded-daemon failover; `Passivate`
|
|
617
|
+
semantics across shard hand-off; coordinator state machine
|
|
618
|
+
reviewed against partition / leader-change scenarios (#35).
|
|
619
|
+
- Persistent `ShardCoordinator` allocation state via `DistributedData`
|
|
620
|
+
— survives leader hand-off without re-emitting allocations (#39).
|
|
621
|
+
- Persistent Remember-Entities — entity list rides through cluster
|
|
622
|
+
restart instead of being re-discovered lazily (#49).
|
|
623
|
+
- `KubernetesLease` real implementation against the K8s coordination
|
|
624
|
+
API (replaces the stub from 0.2) (#33).
|
|
625
|
+
- `ClusterSingleton` accepts an optional Lease for split-brain-safe
|
|
626
|
+
handover (#38, #61).
|
|
627
|
+
- `ShardCoordinator` accepts an optional Lease for split-brain-safe
|
|
628
|
+
coordinator handover (#60).
|
|
629
|
+
- `LeaseMajority` split-brain resolver — external Lease as tiebreaker
|
|
630
|
+
in the partition-resolution race (#51).
|
|
631
|
+
|
|
632
|
+
### Added — persistence performance + projections + replicated ES
|
|
633
|
+
|
|
634
|
+
- Persistence Query / projections read-side query layer:
|
|
635
|
+
`PersistenceQuery` with `eventsByPersistenceId` / `eventsByTag`, plus
|
|
636
|
+
`ProjectionActor` with at-least-once delivery + offset persistence
|
|
637
|
+
(`InMemoryOffsetStore`, `DurableStateOffsetStore`) (#36).
|
|
638
|
+
- Push-based `PersistenceQuery` — events delivered on append via
|
|
639
|
+
`JournalEventBus` instead of polling (#42).
|
|
640
|
+
- SQLite tags join table — indexed `events_by_tag` query path (#43).
|
|
641
|
+
- Snapshotting for `ReplicatedEventSourcedActor` — vector-clock-aware
|
|
642
|
+
snapshots survive multi-master replay (#41).
|
|
643
|
+
- Durable `DistributedData` — CRDT state survives full cluster
|
|
644
|
+
restart via per-replica `DurableStateStore` records (#40).
|
|
645
|
+
- CRDTs + Replicated Event Sourcing core: `GCounter`, `PNCounter`,
|
|
646
|
+
`GSet`, `ORSet`, `LWWRegister`, `DistributedData` extension with
|
|
647
|
+
gossip replication; `ReplicatedEventSourcedActor` for multi-master
|
|
648
|
+
event sourcing with conflict-resolver pluggability (#37).
|
|
649
|
+
|
|
650
|
+
### Added — additional CRDTs + persistent FSM + DX patterns
|
|
651
|
+
|
|
652
|
+
- `LWWMap`, `ORMap`, `MVRegister`, `GCounterMap` — round out the CRDT
|
|
653
|
+
family. All four implement the same `Crdt<Self>` interface,
|
|
654
|
+
expose `equals` / `toJSON` / `fromJSON`, and are wired into
|
|
655
|
+
`DistributedData`'s discriminator (#45).
|
|
656
|
+
- `PersistentFSM` — finite-state machine combined with event sourcing.
|
|
657
|
+
Declare a transitions table, an `applyEvent` function, and the
|
|
658
|
+
base class handles invalid-transition rejection, guard checks,
|
|
659
|
+
and replay-driven state rebuild (#52).
|
|
660
|
+
- `BackoffSupervisor` — restart-with-exponential-backoff supervisor
|
|
661
|
+
for transient failures, with optional message stash during the
|
|
662
|
+
backoff window and a configurable counter-reset rule (#48).
|
|
663
|
+
- `ClusterRouter` — cluster-aware router with role filter + four
|
|
664
|
+
routing strategies (round-robin, random, consistent-hashing,
|
|
665
|
+
broadcast). Routees auto-rebuild on `MemberUp` / `MemberRemoved`
|
|
666
|
+
(#50).
|
|
667
|
+
|
|
668
|
+
### Added — observability stack
|
|
669
|
+
|
|
670
|
+
- `LogContext` — Mapped Diagnostic Context (MDC) backed by
|
|
671
|
+
`AsyncLocalStorage`. Propagates through `tell` / `ask` calls and
|
|
672
|
+
across cluster nodes; `Logger.withFields` for static fields,
|
|
673
|
+
`LogContext.run` / `with` for dynamic scoping (#53).
|
|
674
|
+
- Prometheus / OpenMetrics export — `MetricsRegistry` with
|
|
675
|
+
Counter / Gauge / Histogram primitives, label support,
|
|
676
|
+
`exportPrometheus` text-format renderer, `prometheusHandler`
|
|
677
|
+
for `Bun.serve`. Stock instrumentation: actor lifecycle counters,
|
|
678
|
+
message-handler-duration histogram, cluster gossip + member-up
|
|
679
|
+
metrics. Opt-in via `MetricsExtensionId.enable()` so the no-
|
|
680
|
+
metrics path is zero-cost (#11).
|
|
681
|
+
- OpenTelemetry-style distributed tracing — `Tracer` interface +
|
|
682
|
+
`RecordingTracer` reference impl + W3C `traceparent` codec.
|
|
683
|
+
`actor.receive` and `cluster.envelope.received` spans wired
|
|
684
|
+
automatically; trace context rides cross-wire envelopes
|
|
685
|
+
alongside MDC. `@opentelemetry/api` is NOT a dependency — users
|
|
686
|
+
bring their own SDK and wrap it in the framework's `Tracer` (#10).
|
|
687
|
+
|
|
688
|
+
### Added — schema migration & encryption polish
|
|
689
|
+
|
|
690
|
+
- Master-key rotation for client-side AES-256-GCM snapshots — new
|
|
691
|
+
`MasterKeyRing` shape (`active` + `retired`), key-version byte
|
|
692
|
+
in the body manifest (`FLAG_KEY_VERSIONED`), legacy single-key
|
|
693
|
+
bodies remain readable (#8).
|
|
694
|
+
- Rolling-deployment-friendly schema migration — `MigrationChain`
|
|
695
|
+
gains downcasters; `migratingAdapter` / `defaultsAdapter` accept
|
|
696
|
+
a `writeVersion` so v2 nodes can keep emitting v1 events while
|
|
697
|
+
v1 readers still exist (#7).
|
|
698
|
+
- One-shot migration helpers — `wrapEventAsEnvelope` /
|
|
699
|
+
`wrapStateAsEnvelope` primitives plus `migrateInMemoryJournal` /
|
|
700
|
+
`migrateSnapshotStore` bulk-rewriters for repos adopting
|
|
701
|
+
schema-evolution after-the-fact (#9).
|
|
702
|
+
- Pluggable codec + in-process schema registry — `Codec<T>`
|
|
703
|
+
interface with `jsonCodec` / `zodCodec` / `composeCodecs`,
|
|
704
|
+
`validatedEventAdapter` / `validatedSnapshotAdapter` wrappers,
|
|
705
|
+
`InMemorySchemaRegistry` with on-register compatibility checks
|
|
706
|
+
(`'none'` / `'backward'` / `'sample'`) (#6).
|
|
707
|
+
|
|
708
|
+
### Added — production-grade brokers & WebSocket server-side
|
|
709
|
+
|
|
710
|
+
- Kafka exactly-once via manual offset-commit mode — opt-in
|
|
711
|
+
`commitMode: 'manual'` pumps each message into a pending-promise
|
|
712
|
+
map until the handler sends `commit` / `nack` / timeout fires;
|
|
713
|
+
`commitOffsets` uses BigInt arithmetic so 2^53+ offsets stay
|
|
714
|
+
exact (#2).
|
|
715
|
+
- NATS JetStream actor — durable streams + push consumer with
|
|
716
|
+
`ack` / `nak` / `term` / `inProgress` handshake; auto-create-or-
|
|
717
|
+
update streams + consumers; idempotent publish via `messageId`
|
|
718
|
+
(`Nats-Msg-Id`) (#3).
|
|
719
|
+
- Server-side WebSocket — `ServerWebSocketActor` wraps a pre-
|
|
720
|
+
upgraded socket; `serverWebSocketActorOf` for the `ws`-package
|
|
721
|
+
family (Fastify, Hono); `bunWebSocketHandlers` for `Bun.serve`'s
|
|
722
|
+
callback-style API (#1).
|
|
723
|
+
|
|
724
|
+
### Fixed
|
|
725
|
+
|
|
726
|
+
- `DistributedPubSubMediator` — gossip frame trimmed to topic
|
|
727
|
+
names only (#80). The `entries` field used to be `Record<string,
|
|
728
|
+
string[]>` carrying every local subscriber's actor path per
|
|
729
|
+
topic, but `handleGossip` discarded the path lists; bytes are
|
|
730
|
+
now proportional to topic count, not subscriber count. Audit
|
|
731
|
+
tests pin the boundedness contract: 100 sub/unsub cycles on
|
|
732
|
+
the same topic leave both `topics` and the gossip frame at
|
|
733
|
+
zero entries.
|
|
734
|
+
- `FilesystemObjectStorageBackend` is multi-process safe (#19) —
|
|
735
|
+
drops the in-memory etag map (disk is canonical via
|
|
736
|
+
deterministic FNV-1a content hash) and serialises CAS via
|
|
737
|
+
per-key `<key>.lock` files created with `fs.writeFile(...,
|
|
738
|
+
{ flag: 'wx' })`. Body writes are atomic via temp + rename;
|
|
739
|
+
Windows quirks (`EPERM` / `EBUSY` during NTFS deletion-pending
|
|
740
|
+
states) recognised as benign retry signals; stale locks
|
|
741
|
+
(>30 s default) reclaimed automatically. Includes a Bun-spawn-
|
|
742
|
+
based multi-process test as the integration check.
|
|
743
|
+
- `DistributedPubSubMediator` — eager broadcast on subscribe /
|
|
744
|
+
unsubscribe. The previous "one random peer per gossip tick"
|
|
745
|
+
scheme had a probabilistic gap (~3 % per 5-tick window) where
|
|
746
|
+
a publish-immediately-after-subscribe could miss the new
|
|
747
|
+
subscriber. Eager-broadcast on state mutation closes the gap
|
|
748
|
+
deterministically; periodic gossip stays as steady-state
|
|
749
|
+
anti-entropy. Eliminated CI flake on
|
|
750
|
+
`tests/multi-node/pubsub-cross-node.test.ts` and
|
|
751
|
+
`tests/multi-node/parallel-pubsub.test.ts`.
|
|
752
|
+
- `tests/multi-node/cluster-router.test.ts` — replaced the tight
|
|
753
|
+
5 s `waitFor(() => total === 21)` predicate with a "3 readings
|
|
754
|
+
stable" stability check + 15 s timeout, covering CI variance
|
|
755
|
+
when other multi-node test files run in parallel (#76).
|
|
756
|
+
- Five small correctness items batched together: `tests/unit/util/
|
|
757
|
+
Option.test.ts` typecheck:dev failure (#17), eager peer-dep
|
|
758
|
+
validation at object-storage plugin-init for every codec
|
|
759
|
+
(#18, #59), `ORSet` / `GSet` element-identity callbacks for
|
|
760
|
+
non-JSON-serialisable values (#57), single-actor-per-pid
|
|
761
|
+
enforcement for `ReplicatedEventSourcedActor` (#58).
|
|
762
|
+
|
|
763
|
+
## [0.5.0] — 2026-04-27
|
|
764
|
+
|
|
765
|
+
### Added — I/O & message-broker actors
|
|
766
|
+
|
|
767
|
+
- `BrokerActor` base with reconnect (exponential backoff + optional
|
|
768
|
+
CircuitBreaker), outbound buffer, subscriber fan-out, lifecycle
|
|
769
|
+
events on the EventStream, and a 3-layer settings resolver
|
|
770
|
+
(constructor → HOCON → defaults).
|
|
771
|
+
- Phase 1 actors: `TcpSocketActor`, `UdpSocketActor`, `MqttActor`,
|
|
772
|
+
`WebSocketActor`.
|
|
773
|
+
- Phase 2 actors: `KafkaActor`, `AmqpActor`, `GrpcClientActor`,
|
|
774
|
+
`GrpcServerActor`.
|
|
775
|
+
- Phase 3 actors: `NatsActor`, `RedisStreamsActor`, `SseActor`.
|
|
776
|
+
- Examples: `examples/io/{mqtt-temperature,websocket-feed,grpc-sensor}.ts`.
|
|
777
|
+
|
|
778
|
+
## [0.4.0] — 2026-04-27
|
|
779
|
+
|
|
780
|
+
### Added — object-storage + schema migration + caching
|
|
781
|
+
|
|
782
|
+
- Object-storage persistence: `ObjectStorageBackend` interface,
|
|
783
|
+
`FilesystemObjectStorageBackend` (built-in), `S3ObjectStorageBackend`
|
|
784
|
+
(lazy AWS SDK; works against AWS / MinIO / R2 / Backblaze B2 /
|
|
785
|
+
Wasabi). `BodyCodec` with manifest header — gzip / zstd
|
|
786
|
+
compression and AES-256-GCM client-side encryption (HKDF-SHA256
|
|
787
|
+
per-pid subkey derivation, compress-then-encrypt).
|
|
788
|
+
- `ObjectStorageSnapshotStore` + `ObjectStorageDurableStateStore` with
|
|
789
|
+
per-prefix compression / encryption resolvers and per-actor
|
|
790
|
+
overrides via `PersistenceOptions`.
|
|
791
|
+
- Schema migration: `EventAdapter` / `SnapshotAdapter` / `StateAdapter`
|
|
792
|
+
interfaces with a versioned `_v / _t / _e` envelope wire format,
|
|
793
|
+
plus `MigrationChain` for hand-written upcasters and
|
|
794
|
+
`defaultsAdapter` for additive evolution without code. Hooks
|
|
795
|
+
on `PersistentActor` + `DurableStateActor`.
|
|
796
|
+
- Cache abstraction: `Cache` interface (get / set / incr /
|
|
797
|
+
setIfAbsent / delete) + 3 backends (`InMemoryCache`, `RedisCache`
|
|
798
|
+
via lazy ioredis, `MemcachedCache` via lazy memjs).
|
|
799
|
+
`CacheExtension` for named-cache registration.
|
|
800
|
+
- HTTP middleware: `rateLimit`, `idempotent` (Stripe-style), `cached`
|
|
801
|
+
(response-cache with stampede protection).
|
|
802
|
+
- `CachedSnapshotStore` decorator wrapping any `SnapshotStore` for
|
|
803
|
+
cold-start storms after sharding rebalance.
|
|
804
|
+
- Examples: `examples/cache/redis-rest-service.ts`,
|
|
805
|
+
`examples/persistence/{event-migration,event-migration-chain,
|
|
806
|
+
s3-snapshot-bank-account}.ts`.
|
|
807
|
+
|
|
808
|
+
## [0.3.0] — 2026-04-27
|
|
809
|
+
|
|
810
|
+
### Added — persistence + HTTP
|
|
811
|
+
|
|
812
|
+
- Persistence: `Journal`, `SnapshotStore`, `DurableStateStore`
|
|
813
|
+
interfaces. `PersistentActor` (event sourcing with
|
|
814
|
+
snapshotPolicy + persist callback) and `DurableStateActor`
|
|
815
|
+
(snapshot-only with strict CAS via expectedRevision).
|
|
816
|
+
- Three persistence backends ship: `InMemoryJournal` /
|
|
817
|
+
`InMemorySnapshotStore` (default), `SqliteJournal` /
|
|
818
|
+
`SqliteSnapshotStore` (Bun via bun:sqlite, Node via
|
|
819
|
+
better-sqlite3 — abstracted by a `SqliteDriver`), `CassandraJournal`
|
|
820
|
+
/ `CassandraSnapshotStore` (lazy cassandra-driver).
|
|
821
|
+
- HTTP service stack: directives DSL (get / post / put / del / patch /
|
|
822
|
+
path / pathPrefix / concat) compiling to backend-agnostic
|
|
823
|
+
`CompiledRoute`; three backends — `FastifyBackend` (default),
|
|
824
|
+
`ExpressBackend`, `HonoBackend` (with auto-detection of the right
|
|
825
|
+
serve primitive per runtime). `HttpClient` for outbound calls.
|
|
826
|
+
|
|
827
|
+
## [0.2.0] — 2026-04-27
|
|
828
|
+
|
|
829
|
+
### Added — distributed primitives
|
|
830
|
+
|
|
831
|
+
- HOCON config (parser + ENV interpolation + Duration / Size types).
|
|
832
|
+
- JSON + CBOR serialization (`Serializer<T>` interface with manifest
|
|
833
|
+
tagging; SerializationExtension for plugin registration).
|
|
834
|
+
- `CoordinatedShutdown` (12-phase, dependency-ordered task runner) and
|
|
835
|
+
`Lease` abstraction (with InMemoryLease + KubernetesLease impls).
|
|
836
|
+
- Cluster fabric: TCP / in-memory / worker-thread transports;
|
|
837
|
+
membership state machine + gossip; failure detection (Phi-Accrual
|
|
838
|
+
default + simple time-threshold variant); `ClusterEvents` on
|
|
839
|
+
EventStream.
|
|
840
|
+
- Cluster sharding: `ShardCoordinator`, `ShardRegion`,
|
|
841
|
+
`ClusterSharding` extension; `HashAllocationStrategy` /
|
|
842
|
+
`LeastShardAllocationStrategy`; `Passivate` for entity lifecycle;
|
|
843
|
+
`ShardedDaemonProcess` for fixed N workers across the cluster.
|
|
844
|
+
- Distributed pub/sub (`DistributedPubSubMediator`); `Receptionist`
|
|
845
|
+
service-key registry; `ClusterSingleton` (manager + proxy + lease-
|
|
846
|
+
based variant); `ReliableDelivery` (at-least-once point-to-point
|
|
847
|
+
with explicit acks).
|
|
848
|
+
- Four split-brain resolvers (KeepMajority / KeepOldest /
|
|
849
|
+
StaticQuorum / KeepReferee).
|
|
850
|
+
- Four seed providers (Config / DNS / Kubernetes API / Aggregate),
|
|
851
|
+
with an in-process TTL cache on the DNS provider.
|
|
852
|
+
- Management endpoints: `/health`, `/ready`, `/cluster/state`, etc.
|
|
853
|
+
|
|
854
|
+
## [0.1.0] — 2026-04-27
|
|
855
|
+
|
|
856
|
+
### Added — minimum viable actor system
|
|
857
|
+
|
|
858
|
+
- `Actor` base class + lifecycle hooks (preStart / postStop /
|
|
859
|
+
preRestart / postRestart) + `ActorRef` / `ActorContext` /
|
|
860
|
+
`ActorPath` / `ActorSelection`.
|
|
861
|
+
- `ActorSystem`, `Props`, `Extension` registry, `SystemMessages` (the
|
|
862
|
+
internal control protocol — Watch / Unwatch / Terminated / Suspend
|
|
863
|
+
/ Resume / Stop / …).
|
|
864
|
+
- Supervision: `OneForOneStrategy` / `AllForOneStrategy` with Resume
|
|
865
|
+
/ Restart / Stop / Escalate directives.
|
|
866
|
+
- Mailbox variants: unbounded (default), bounded with three overflow
|
|
867
|
+
policies, priority (with caller-supplied comparator), per-actor
|
|
868
|
+
stash.
|
|
869
|
+
- `ActorCell` + `Guardian` + `DeadLetterRef` + `LocalActorRef` +
|
|
870
|
+
`PromiseActorRef`; deathwatch, `ReceiveTimeout`, become / unbecome,
|
|
871
|
+
per-actor `TimerScheduler`.
|
|
872
|
+
- `Scheduler` (real timers + `ManualScheduler` for tests),
|
|
873
|
+
`Dispatcher` variants, `Logger` (leveled + Noop), `EventStream`
|
|
874
|
+
(system-wide pub/sub on classes).
|
|
875
|
+
- `typed` Behaviors DSL — functional facade over the OO API
|
|
876
|
+
(`Behaviors.receive`, `Behaviors.same`, `Behaviors.stopped`,
|
|
877
|
+
`Behaviors.setup`, supervise + withSupervision).
|
|
878
|
+
- TestKit: `TestProbe` (synchronous mailbox with expect-* timeouts),
|
|
879
|
+
`ManualScheduler` (virtual clock).
|
|
880
|
+
- Patterns: `ask` (Promise-returning send) + `retry` (exponential
|
|
881
|
+
backoff) + `CircuitBreaker` + `Router` (round-robin / random /
|
|
882
|
+
broadcast) + `after` + `pipeTo`.
|
|
883
|
+
- `FSM` DSL — named-state finite-state-machine actor base.
|
|
884
|
+
- Utility primitives: `Option<T>`, `Lazy<T>`, `Try<T>`, `Either<L,R>` —
|
|
885
|
+
Scala-style ergonomics, used throughout.
|