actor-ts 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +885 -0
- package/LICENSE +201 -0
- package/README.md +269 -0
- package/dist/Actor.d.ts +49 -0
- package/dist/Actor.d.ts.map +1 -0
- package/dist/Actor.js +45 -0
- package/dist/Actor.js.map +1 -0
- package/dist/ActorContext.d.ts +171 -0
- package/dist/ActorContext.d.ts.map +1 -0
- package/dist/ActorContext.js +13 -0
- package/dist/ActorContext.js.map +1 -0
- package/dist/ActorPath.d.ts +23 -0
- package/dist/ActorPath.d.ts.map +1 -0
- package/dist/ActorPath.js +56 -0
- package/dist/ActorPath.js.map +1 -0
- package/dist/ActorRef.d.ts +54 -0
- package/dist/ActorRef.d.ts.map +1 -0
- package/dist/ActorRef.js +105 -0
- package/dist/ActorRef.js.map +1 -0
- package/dist/ActorSelection.d.ts +48 -0
- package/dist/ActorSelection.d.ts.map +1 -0
- package/dist/ActorSelection.js +84 -0
- package/dist/ActorSelection.js.map +1 -0
- package/dist/ActorSystem.d.ts +152 -0
- package/dist/ActorSystem.d.ts.map +1 -0
- package/dist/ActorSystem.js +248 -0
- package/dist/ActorSystem.js.map +1 -0
- package/dist/CoordinatedShutdown.d.ts +112 -0
- package/dist/CoordinatedShutdown.d.ts.map +1 -0
- package/dist/CoordinatedShutdown.js +252 -0
- package/dist/CoordinatedShutdown.js.map +1 -0
- package/dist/Dispatcher.d.ts +47 -0
- package/dist/Dispatcher.d.ts.map +1 -0
- package/dist/Dispatcher.js +90 -0
- package/dist/Dispatcher.js.map +1 -0
- package/dist/EventStream.d.ts +58 -0
- package/dist/EventStream.d.ts.map +1 -0
- package/dist/EventStream.js +74 -0
- package/dist/EventStream.js.map +1 -0
- package/dist/Extension.d.ts +45 -0
- package/dist/Extension.d.ts.map +1 -0
- package/dist/Extension.js +51 -0
- package/dist/Extension.js.map +1 -0
- package/dist/LogContext.d.ts +44 -0
- package/dist/LogContext.d.ts.map +1 -0
- package/dist/LogContext.js +87 -0
- package/dist/LogContext.js.map +1 -0
- package/dist/Logger.d.ts +57 -0
- package/dist/Logger.d.ts.map +1 -0
- package/dist/Logger.js +81 -0
- package/dist/Logger.js.map +1 -0
- package/dist/Props.d.ts +32 -0
- package/dist/Props.d.ts.map +1 -0
- package/dist/Props.js +27 -0
- package/dist/Props.js.map +1 -0
- package/dist/Router.d.ts +32 -0
- package/dist/Router.d.ts.map +1 -0
- package/dist/Router.js +78 -0
- package/dist/Router.js.map +1 -0
- package/dist/Scheduler.d.ts +25 -0
- package/dist/Scheduler.d.ts.map +1 -0
- package/dist/Scheduler.js +112 -0
- package/dist/Scheduler.js.map +1 -0
- package/dist/Supervision.d.ts +66 -0
- package/dist/Supervision.d.ts.map +1 -0
- package/dist/Supervision.js +75 -0
- package/dist/Supervision.js.map +1 -0
- package/dist/SystemMessages.d.ts +56 -0
- package/dist/SystemMessages.d.ts.map +1 -0
- package/dist/SystemMessages.js +71 -0
- package/dist/SystemMessages.js.map +1 -0
- package/dist/cache/Cache.d.ts +75 -0
- package/dist/cache/Cache.d.ts.map +1 -0
- package/dist/cache/Cache.js +10 -0
- package/dist/cache/Cache.js.map +1 -0
- package/dist/cache/CacheExtension.d.ts +44 -0
- package/dist/cache/CacheExtension.d.ts.map +1 -0
- package/dist/cache/CacheExtension.js +77 -0
- package/dist/cache/CacheExtension.js.map +1 -0
- package/dist/cache/InMemoryCache.d.ts +16 -0
- package/dist/cache/InMemoryCache.d.ts.map +1 -0
- package/dist/cache/InMemoryCache.js +86 -0
- package/dist/cache/InMemoryCache.js.map +1 -0
- package/dist/cache/MemcachedCache.d.ts +71 -0
- package/dist/cache/MemcachedCache.d.ts.map +1 -0
- package/dist/cache/MemcachedCache.js +243 -0
- package/dist/cache/MemcachedCache.js.map +1 -0
- package/dist/cache/RedisCache.d.ts +80 -0
- package/dist/cache/RedisCache.d.ts.map +1 -0
- package/dist/cache/RedisCache.js +194 -0
- package/dist/cache/RedisCache.js.map +1 -0
- package/dist/cache/index.d.ts +9 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +6 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cluster/Cluster.d.ts +251 -0
- package/dist/cluster/Cluster.d.ts.map +1 -0
- package/dist/cluster/Cluster.js +837 -0
- package/dist/cluster/Cluster.js.map +1 -0
- package/dist/cluster/ClusterBootstrap.d.ts +107 -0
- package/dist/cluster/ClusterBootstrap.d.ts.map +1 -0
- package/dist/cluster/ClusterBootstrap.js +184 -0
- package/dist/cluster/ClusterBootstrap.js.map +1 -0
- package/dist/cluster/ClusterClient.d.ts +112 -0
- package/dist/cluster/ClusterClient.d.ts.map +1 -0
- package/dist/cluster/ClusterClient.js +280 -0
- package/dist/cluster/ClusterClient.js.map +1 -0
- package/dist/cluster/ClusterClientReceptionist.d.ts +85 -0
- package/dist/cluster/ClusterClientReceptionist.d.ts.map +1 -0
- package/dist/cluster/ClusterClientReceptionist.js +159 -0
- package/dist/cluster/ClusterClientReceptionist.js.map +1 -0
- package/dist/cluster/ClusterEvents.d.ts +99 -0
- package/dist/cluster/ClusterEvents.d.ts.map +1 -0
- package/dist/cluster/ClusterEvents.js +124 -0
- package/dist/cluster/ClusterEvents.js.map +1 -0
- package/dist/cluster/FailureDetector.d.ts +32 -0
- package/dist/cluster/FailureDetector.d.ts.map +1 -0
- package/dist/cluster/FailureDetector.js +50 -0
- package/dist/cluster/FailureDetector.js.map +1 -0
- package/dist/cluster/Member.d.ts +38 -0
- package/dist/cluster/Member.d.ts.map +1 -0
- package/dist/cluster/Member.js +69 -0
- package/dist/cluster/Member.js.map +1 -0
- package/dist/cluster/NodeAddress.d.ts +24 -0
- package/dist/cluster/NodeAddress.d.ts.map +1 -0
- package/dist/cluster/NodeAddress.js +44 -0
- package/dist/cluster/NodeAddress.js.map +1 -0
- package/dist/cluster/PhiAccrualFailureDetector.d.ts +49 -0
- package/dist/cluster/PhiAccrualFailureDetector.d.ts.map +1 -0
- package/dist/cluster/PhiAccrualFailureDetector.js +139 -0
- package/dist/cluster/PhiAccrualFailureDetector.js.map +1 -0
- package/dist/cluster/Protocol.d.ts +151 -0
- package/dist/cluster/Protocol.d.ts.map +1 -0
- package/dist/cluster/Protocol.js +90 -0
- package/dist/cluster/Protocol.js.map +1 -0
- package/dist/cluster/RefCodec.d.ts +40 -0
- package/dist/cluster/RefCodec.d.ts.map +1 -0
- package/dist/cluster/RefCodec.js +134 -0
- package/dist/cluster/RefCodec.js.map +1 -0
- package/dist/cluster/RemoteActorRef.d.ts +22 -0
- package/dist/cluster/RemoteActorRef.d.ts.map +1 -0
- package/dist/cluster/RemoteActorRef.js +48 -0
- package/dist/cluster/RemoteActorRef.js.map +1 -0
- package/dist/cluster/Transport.d.ts +96 -0
- package/dist/cluster/Transport.d.ts.map +1 -0
- package/dist/cluster/Transport.js +299 -0
- package/dist/cluster/Transport.js.map +1 -0
- package/dist/cluster/downing/DowningProvider.d.ts +32 -0
- package/dist/cluster/downing/DowningProvider.d.ts.map +1 -0
- package/dist/cluster/downing/DowningProvider.js +5 -0
- package/dist/cluster/downing/DowningProvider.js.map +1 -0
- package/dist/cluster/downing/KeepMajority.d.ts +21 -0
- package/dist/cluster/downing/KeepMajority.d.ts.map +1 -0
- package/dist/cluster/downing/KeepMajority.js +39 -0
- package/dist/cluster/downing/KeepMajority.js.map +1 -0
- package/dist/cluster/downing/KeepOldest.d.ts +23 -0
- package/dist/cluster/downing/KeepOldest.d.ts.map +1 -0
- package/dist/cluster/downing/KeepOldest.js +37 -0
- package/dist/cluster/downing/KeepOldest.js.map +1 -0
- package/dist/cluster/downing/KeepReferee.d.ts +23 -0
- package/dist/cluster/downing/KeepReferee.d.ts.map +1 -0
- package/dist/cluster/downing/KeepReferee.js +35 -0
- package/dist/cluster/downing/KeepReferee.js.map +1 -0
- package/dist/cluster/downing/LeaseMajority.d.ts +70 -0
- package/dist/cluster/downing/LeaseMajority.d.ts.map +1 -0
- package/dist/cluster/downing/LeaseMajority.js +129 -0
- package/dist/cluster/downing/LeaseMajority.js.map +1 -0
- package/dist/cluster/downing/StaticQuorum.d.ts +21 -0
- package/dist/cluster/downing/StaticQuorum.d.ts.map +1 -0
- package/dist/cluster/downing/StaticQuorum.js +30 -0
- package/dist/cluster/downing/StaticQuorum.js.map +1 -0
- package/dist/cluster/downing/index.d.ts +13 -0
- package/dist/cluster/downing/index.d.ts.map +1 -0
- package/dist/cluster/downing/index.js +7 -0
- package/dist/cluster/downing/index.js.map +1 -0
- package/dist/cluster/index.d.ts +49 -0
- package/dist/cluster/index.d.ts.map +1 -0
- package/dist/cluster/index.js +33 -0
- package/dist/cluster/index.js.map +1 -0
- package/dist/cluster/pubsub/DistributedPubSubExtension.d.ts +30 -0
- package/dist/cluster/pubsub/DistributedPubSubExtension.d.ts.map +1 -0
- package/dist/cluster/pubsub/DistributedPubSubExtension.js +42 -0
- package/dist/cluster/pubsub/DistributedPubSubExtension.js.map +1 -0
- package/dist/cluster/pubsub/DistributedPubSubMediator.d.ts +56 -0
- package/dist/cluster/pubsub/DistributedPubSubMediator.d.ts.map +1 -0
- package/dist/cluster/pubsub/DistributedPubSubMediator.js +240 -0
- package/dist/cluster/pubsub/DistributedPubSubMediator.js.map +1 -0
- package/dist/cluster/pubsub/Messages.d.ts +75 -0
- package/dist/cluster/pubsub/Messages.d.ts.map +1 -0
- package/dist/cluster/pubsub/Messages.js +66 -0
- package/dist/cluster/pubsub/Messages.js.map +1 -0
- package/dist/cluster/pubsub/index.d.ts +5 -0
- package/dist/cluster/pubsub/index.d.ts.map +1 -0
- package/dist/cluster/pubsub/index.js +4 -0
- package/dist/cluster/pubsub/index.js.map +1 -0
- package/dist/cluster/router/ClusterRouter.d.ts +87 -0
- package/dist/cluster/router/ClusterRouter.d.ts.map +1 -0
- package/dist/cluster/router/ClusterRouter.js +116 -0
- package/dist/cluster/router/ClusterRouter.js.map +1 -0
- package/dist/cluster/router/ConsistentHashing.d.ts +27 -0
- package/dist/cluster/router/ConsistentHashing.d.ts.map +1 -0
- package/dist/cluster/router/ConsistentHashing.js +69 -0
- package/dist/cluster/router/ConsistentHashing.js.map +1 -0
- package/dist/cluster/router/index.d.ts +4 -0
- package/dist/cluster/router/index.d.ts.map +1 -0
- package/dist/cluster/router/index.js +3 -0
- package/dist/cluster/router/index.js.map +1 -0
- package/dist/cluster/sharding/AllocationStrategy.d.ts +45 -0
- package/dist/cluster/sharding/AllocationStrategy.d.ts.map +1 -0
- package/dist/cluster/sharding/AllocationStrategy.js +95 -0
- package/dist/cluster/sharding/AllocationStrategy.js.map +1 -0
- package/dist/cluster/sharding/CassandraRememberEntitiesStore.d.ts +77 -0
- package/dist/cluster/sharding/CassandraRememberEntitiesStore.d.ts.map +1 -0
- package/dist/cluster/sharding/CassandraRememberEntitiesStore.js +98 -0
- package/dist/cluster/sharding/CassandraRememberEntitiesStore.js.map +1 -0
- package/dist/cluster/sharding/ClusterSharding.d.ts +116 -0
- package/dist/cluster/sharding/ClusterSharding.d.ts.map +1 -0
- package/dist/cluster/sharding/ClusterSharding.js +133 -0
- package/dist/cluster/sharding/ClusterSharding.js.map +1 -0
- package/dist/cluster/sharding/CoordinatorState.d.ts +83 -0
- package/dist/cluster/sharding/CoordinatorState.d.ts.map +1 -0
- package/dist/cluster/sharding/CoordinatorState.js +46 -0
- package/dist/cluster/sharding/CoordinatorState.js.map +1 -0
- package/dist/cluster/sharding/Passivate.d.ts +23 -0
- package/dist/cluster/sharding/Passivate.d.ts.map +1 -0
- package/dist/cluster/sharding/Passivate.js +25 -0
- package/dist/cluster/sharding/Passivate.js.map +1 -0
- package/dist/cluster/sharding/RememberEntitiesStore.d.ts +60 -0
- package/dist/cluster/sharding/RememberEntitiesStore.d.ts.map +1 -0
- package/dist/cluster/sharding/RememberEntitiesStore.js +35 -0
- package/dist/cluster/sharding/RememberEntitiesStore.js.map +1 -0
- package/dist/cluster/sharding/ShardAllocator.d.ts +23 -0
- package/dist/cluster/sharding/ShardAllocator.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardAllocator.js +54 -0
- package/dist/cluster/sharding/ShardAllocator.js.map +1 -0
- package/dist/cluster/sharding/ShardCoordinator.d.ts +218 -0
- package/dist/cluster/sharding/ShardCoordinator.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardCoordinator.js +719 -0
- package/dist/cluster/sharding/ShardCoordinator.js.map +1 -0
- package/dist/cluster/sharding/ShardRegion.d.ts +156 -0
- package/dist/cluster/sharding/ShardRegion.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardRegion.js +526 -0
- package/dist/cluster/sharding/ShardRegion.js.map +1 -0
- package/dist/cluster/sharding/ShardedDaemonProcess.d.ts +64 -0
- package/dist/cluster/sharding/ShardedDaemonProcess.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardedDaemonProcess.js +107 -0
- package/dist/cluster/sharding/ShardedDaemonProcess.js.map +1 -0
- package/dist/cluster/sharding/ShardingProtocol.d.ts +92 -0
- package/dist/cluster/sharding/ShardingProtocol.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardingProtocol.js +7 -0
- package/dist/cluster/sharding/ShardingProtocol.js.map +1 -0
- package/dist/cluster/singleton/ClusterSingleton.d.ts +59 -0
- package/dist/cluster/singleton/ClusterSingleton.d.ts.map +1 -0
- package/dist/cluster/singleton/ClusterSingleton.js +63 -0
- package/dist/cluster/singleton/ClusterSingleton.js.map +1 -0
- package/dist/cluster/singleton/ClusterSingletonManager.d.ts +116 -0
- package/dist/cluster/singleton/ClusterSingletonManager.d.ts.map +1 -0
- package/dist/cluster/singleton/ClusterSingletonManager.js +300 -0
- package/dist/cluster/singleton/ClusterSingletonManager.js.map +1 -0
- package/dist/cluster/singleton/ClusterSingletonProxy.d.ts +32 -0
- package/dist/cluster/singleton/ClusterSingletonProxy.d.ts.map +1 -0
- package/dist/cluster/singleton/ClusterSingletonProxy.js +81 -0
- package/dist/cluster/singleton/ClusterSingletonProxy.js.map +1 -0
- package/dist/cluster/singleton/index.d.ts +6 -0
- package/dist/cluster/singleton/index.d.ts.map +1 -0
- package/dist/cluster/singleton/index.js +4 -0
- package/dist/cluster/singleton/index.js.map +1 -0
- package/dist/cluster/transports/MessageChannelTransport.d.ts +52 -0
- package/dist/cluster/transports/MessageChannelTransport.d.ts.map +1 -0
- package/dist/cluster/transports/MessageChannelTransport.js +59 -0
- package/dist/cluster/transports/MessageChannelTransport.js.map +1 -0
- package/dist/config/Config.d.ts +73 -0
- package/dist/config/Config.d.ts.map +1 -0
- package/dist/config/Config.js +240 -0
- package/dist/config/Config.js.map +1 -0
- package/dist/config/ConfigKeys.d.ts +94 -0
- package/dist/config/ConfigKeys.d.ts.map +1 -0
- package/dist/config/ConfigKeys.js +94 -0
- package/dist/config/ConfigKeys.js.map +1 -0
- package/dist/config/Duration.d.ts +2 -0
- package/dist/config/Duration.d.ts.map +1 -0
- package/dist/config/Duration.js +70 -0
- package/dist/config/Duration.js.map +1 -0
- package/dist/config/HoconParser.d.ts +19 -0
- package/dist/config/HoconParser.d.ts.map +1 -0
- package/dist/config/HoconParser.js +473 -0
- package/dist/config/HoconParser.js.map +1 -0
- package/dist/config/Size.d.ts +2 -0
- package/dist/config/Size.d.ts.map +1 -0
- package/dist/config/Size.js +53 -0
- package/dist/config/Size.js.map +1 -0
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +7 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/reference.d.ts +11 -0
- package/dist/config/reference.d.ts.map +1 -0
- package/dist/config/reference.js +86 -0
- package/dist/config/reference.js.map +1 -0
- package/dist/coordination/Lease.d.ts +40 -0
- package/dist/coordination/Lease.d.ts.map +1 -0
- package/dist/coordination/Lease.js +2 -0
- package/dist/coordination/Lease.js.map +1 -0
- package/dist/coordination/index.d.ts +5 -0
- package/dist/coordination/index.d.ts.map +1 -0
- package/dist/coordination/index.js +3 -0
- package/dist/coordination/index.js.map +1 -0
- package/dist/coordination/leases/InMemoryLease.d.ts +40 -0
- package/dist/coordination/leases/InMemoryLease.d.ts.map +1 -0
- package/dist/coordination/leases/InMemoryLease.js +109 -0
- package/dist/coordination/leases/InMemoryLease.js.map +1 -0
- package/dist/coordination/leases/KubernetesLease.d.ts +78 -0
- package/dist/coordination/leases/KubernetesLease.d.ts.map +1 -0
- package/dist/coordination/leases/KubernetesLease.js +244 -0
- package/dist/coordination/leases/KubernetesLease.js.map +1 -0
- package/dist/coordination/leases/k8sApi.d.ts +82 -0
- package/dist/coordination/leases/k8sApi.d.ts.map +1 -0
- package/dist/coordination/leases/k8sApi.js +191 -0
- package/dist/coordination/leases/k8sApi.js.map +1 -0
- package/dist/crdt/Crdt.d.ts +52 -0
- package/dist/crdt/Crdt.d.ts.map +1 -0
- package/dist/crdt/Crdt.js +2 -0
- package/dist/crdt/Crdt.js.map +1 -0
- package/dist/crdt/DistributedData.d.ts +314 -0
- package/dist/crdt/DistributedData.d.ts.map +1 -0
- package/dist/crdt/DistributedData.js +658 -0
- package/dist/crdt/DistributedData.js.map +1 -0
- package/dist/crdt/DurableDistributedDataStore.d.ts +50 -0
- package/dist/crdt/DurableDistributedDataStore.d.ts.map +1 -0
- package/dist/crdt/DurableDistributedDataStore.js +75 -0
- package/dist/crdt/DurableDistributedDataStore.js.map +1 -0
- package/dist/crdt/GCounter.d.ts +42 -0
- package/dist/crdt/GCounter.d.ts.map +1 -0
- package/dist/crdt/GCounter.js +75 -0
- package/dist/crdt/GCounter.js.map +1 -0
- package/dist/crdt/GCounterMap.d.ts +60 -0
- package/dist/crdt/GCounterMap.d.ts.map +1 -0
- package/dist/crdt/GCounterMap.js +102 -0
- package/dist/crdt/GCounterMap.js.map +1 -0
- package/dist/crdt/GSet.d.ts +63 -0
- package/dist/crdt/GSet.d.ts.map +1 -0
- package/dist/crdt/GSet.js +77 -0
- package/dist/crdt/GSet.js.map +1 -0
- package/dist/crdt/LWWMap.d.ts +75 -0
- package/dist/crdt/LWWMap.d.ts.map +1 -0
- package/dist/crdt/LWWMap.js +136 -0
- package/dist/crdt/LWWMap.js.map +1 -0
- package/dist/crdt/LWWRegister.d.ts +54 -0
- package/dist/crdt/LWWRegister.d.ts.map +1 -0
- package/dist/crdt/LWWRegister.js +83 -0
- package/dist/crdt/LWWRegister.js.map +1 -0
- package/dist/crdt/MVRegister.d.ts +36 -0
- package/dist/crdt/MVRegister.d.ts.map +1 -0
- package/dist/crdt/MVRegister.js +138 -0
- package/dist/crdt/MVRegister.js.map +1 -0
- package/dist/crdt/ORMap.d.ts +104 -0
- package/dist/crdt/ORMap.d.ts.map +1 -0
- package/dist/crdt/ORMap.js +178 -0
- package/dist/crdt/ORMap.js.map +1 -0
- package/dist/crdt/ORSet.d.ts +81 -0
- package/dist/crdt/ORSet.d.ts.map +1 -0
- package/dist/crdt/ORSet.js +206 -0
- package/dist/crdt/ORSet.js.map +1 -0
- package/dist/crdt/PNCounter.d.ts +34 -0
- package/dist/crdt/PNCounter.d.ts.map +1 -0
- package/dist/crdt/PNCounter.js +51 -0
- package/dist/crdt/PNCounter.js.map +1 -0
- package/dist/crdt/index.d.ts +23 -0
- package/dist/crdt/index.d.ts.map +1 -0
- package/dist/crdt/index.js +12 -0
- package/dist/crdt/index.js.map +1 -0
- package/dist/delivery/ConsumerController.d.ts +28 -0
- package/dist/delivery/ConsumerController.d.ts.map +1 -0
- package/dist/delivery/ConsumerController.js +64 -0
- package/dist/delivery/ConsumerController.js.map +1 -0
- package/dist/delivery/Messages.d.ts +23 -0
- package/dist/delivery/Messages.d.ts.map +1 -0
- package/dist/delivery/Messages.js +2 -0
- package/dist/delivery/Messages.js.map +1 -0
- package/dist/delivery/ProducerController.d.ts +46 -0
- package/dist/delivery/ProducerController.d.ts.map +1 -0
- package/dist/delivery/ProducerController.js +84 -0
- package/dist/delivery/ProducerController.js.map +1 -0
- package/dist/delivery/ReliableDelivery.d.ts +36 -0
- package/dist/delivery/ReliableDelivery.d.ts.map +1 -0
- package/dist/delivery/ReliableDelivery.js +32 -0
- package/dist/delivery/ReliableDelivery.js.map +1 -0
- package/dist/delivery/index.d.ts +8 -0
- package/dist/delivery/index.d.ts.map +1 -0
- package/dist/delivery/index.js +4 -0
- package/dist/delivery/index.js.map +1 -0
- package/dist/discovery/AggregateSeedProvider.d.ts +15 -0
- package/dist/discovery/AggregateSeedProvider.d.ts.map +1 -0
- package/dist/discovery/AggregateSeedProvider.js +28 -0
- package/dist/discovery/AggregateSeedProvider.js.map +1 -0
- package/dist/discovery/ConfigSeedProvider.d.ts +20 -0
- package/dist/discovery/ConfigSeedProvider.d.ts.map +1 -0
- package/dist/discovery/ConfigSeedProvider.js +24 -0
- package/dist/discovery/ConfigSeedProvider.js.map +1 -0
- package/dist/discovery/DnsSeedProvider.d.ts +49 -0
- package/dist/discovery/DnsSeedProvider.d.ts.map +1 -0
- package/dist/discovery/DnsSeedProvider.js +57 -0
- package/dist/discovery/DnsSeedProvider.js.map +1 -0
- package/dist/discovery/KubernetesApiSeedProvider.d.ts +30 -0
- package/dist/discovery/KubernetesApiSeedProvider.d.ts.map +1 -0
- package/dist/discovery/KubernetesApiSeedProvider.js +66 -0
- package/dist/discovery/KubernetesApiSeedProvider.js.map +1 -0
- package/dist/discovery/Receptionist.d.ts +55 -0
- package/dist/discovery/Receptionist.d.ts.map +1 -0
- package/dist/discovery/Receptionist.js +207 -0
- package/dist/discovery/Receptionist.js.map +1 -0
- package/dist/discovery/ReceptionistMessages.d.ts +65 -0
- package/dist/discovery/ReceptionistMessages.d.ts.map +1 -0
- package/dist/discovery/ReceptionistMessages.js +76 -0
- package/dist/discovery/ReceptionistMessages.js.map +1 -0
- package/dist/discovery/SeedProvider.d.ts +17 -0
- package/dist/discovery/SeedProvider.d.ts.map +1 -0
- package/dist/discovery/SeedProvider.js +2 -0
- package/dist/discovery/SeedProvider.js.map +1 -0
- package/dist/discovery/ServiceKey.d.ts +15 -0
- package/dist/discovery/ServiceKey.d.ts.map +1 -0
- package/dist/discovery/ServiceKey.js +17 -0
- package/dist/discovery/ServiceKey.js.map +1 -0
- package/dist/discovery/autoDiscovery.d.ts +63 -0
- package/dist/discovery/autoDiscovery.d.ts.map +1 -0
- package/dist/discovery/autoDiscovery.js +91 -0
- package/dist/discovery/autoDiscovery.js.map +1 -0
- package/dist/discovery/index.d.ts +16 -0
- package/dist/discovery/index.d.ts.map +1 -0
- package/dist/discovery/index.js +9 -0
- package/dist/discovery/index.js.map +1 -0
- package/dist/fsm/FSM.d.ts +60 -0
- package/dist/fsm/FSM.d.ts.map +1 -0
- package/dist/fsm/FSM.js +102 -0
- package/dist/fsm/FSM.js.map +1 -0
- package/dist/fsm/PersistentFSM.d.ts +230 -0
- package/dist/fsm/PersistentFSM.d.ts.map +1 -0
- package/dist/fsm/PersistentFSM.js +170 -0
- package/dist/fsm/PersistentFSM.js.map +1 -0
- package/dist/fsm/index.d.ts +5 -0
- package/dist/fsm/index.d.ts.map +1 -0
- package/dist/fsm/index.js +3 -0
- package/dist/fsm/index.js.map +1 -0
- package/dist/http/HttpClient.d.ts +34 -0
- package/dist/http/HttpClient.d.ts.map +1 -0
- package/dist/http/HttpClient.js +72 -0
- package/dist/http/HttpClient.js.map +1 -0
- package/dist/http/HttpExtension.d.ts +29 -0
- package/dist/http/HttpExtension.d.ts.map +1 -0
- package/dist/http/HttpExtension.js +64 -0
- package/dist/http/HttpExtension.js.map +1 -0
- package/dist/http/Marshalling.d.ts +20 -0
- package/dist/http/Marshalling.d.ts.map +1 -0
- package/dist/http/Marshalling.js +54 -0
- package/dist/http/Marshalling.js.map +1 -0
- package/dist/http/Route.d.ts +59 -0
- package/dist/http/Route.d.ts.map +1 -0
- package/dist/http/Route.js +93 -0
- package/dist/http/Route.js.map +1 -0
- package/dist/http/backend/ExpressBackend.d.ts +86 -0
- package/dist/http/backend/ExpressBackend.d.ts.map +1 -0
- package/dist/http/backend/ExpressBackend.js +260 -0
- package/dist/http/backend/ExpressBackend.js.map +1 -0
- package/dist/http/backend/FastifyBackend.d.ts +31 -0
- package/dist/http/backend/FastifyBackend.d.ts.map +1 -0
- package/dist/http/backend/FastifyBackend.js +193 -0
- package/dist/http/backend/FastifyBackend.js.map +1 -0
- package/dist/http/backend/HonoBackend.d.ts +72 -0
- package/dist/http/backend/HonoBackend.d.ts.map +1 -0
- package/dist/http/backend/HonoBackend.js +212 -0
- package/dist/http/backend/HonoBackend.js.map +1 -0
- package/dist/http/backend/HttpServerBackend.d.ts +31 -0
- package/dist/http/backend/HttpServerBackend.d.ts.map +1 -0
- package/dist/http/backend/HttpServerBackend.js +2 -0
- package/dist/http/backend/HttpServerBackend.js.map +1 -0
- package/dist/http/cache/IdempotencyKey.d.ts +48 -0
- package/dist/http/cache/IdempotencyKey.d.ts.map +1 -0
- package/dist/http/cache/IdempotencyKey.js +154 -0
- package/dist/http/cache/IdempotencyKey.js.map +1 -0
- package/dist/http/cache/RateLimit.d.ts +65 -0
- package/dist/http/cache/RateLimit.d.ts.map +1 -0
- package/dist/http/cache/RateLimit.js +60 -0
- package/dist/http/cache/RateLimit.js.map +1 -0
- package/dist/http/cache/ResponseCache.d.ts +49 -0
- package/dist/http/cache/ResponseCache.d.ts.map +1 -0
- package/dist/http/cache/ResponseCache.js +84 -0
- package/dist/http/cache/ResponseCache.js.map +1 -0
- package/dist/http/cache/index.d.ts +7 -0
- package/dist/http/cache/index.d.ts.map +1 -0
- package/dist/http/cache/index.js +4 -0
- package/dist/http/cache/index.js.map +1 -0
- package/dist/http/index.d.ts +18 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +11 -0
- package/dist/http/index.js.map +1 -0
- package/dist/http/types.d.ts +54 -0
- package/dist/http/types.d.ts.map +1 -0
- package/dist/http/types.js +40 -0
- package/dist/http/types.js.map +1 -0
- package/dist/index.d.ts +73 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +87 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/ActorCell.d.ts +116 -0
- package/dist/internal/ActorCell.d.ts.map +1 -0
- package/dist/internal/ActorCell.js +681 -0
- package/dist/internal/ActorCell.js.map +1 -0
- package/dist/internal/DeadLetterRef.d.ts +15 -0
- package/dist/internal/DeadLetterRef.d.ts.map +1 -0
- package/dist/internal/DeadLetterRef.js +24 -0
- package/dist/internal/DeadLetterRef.js.map +1 -0
- package/dist/internal/Guardian.d.ts +18 -0
- package/dist/internal/Guardian.d.ts.map +1 -0
- package/dist/internal/Guardian.js +23 -0
- package/dist/internal/Guardian.js.map +1 -0
- package/dist/internal/LocalActorRef.d.ts +17 -0
- package/dist/internal/LocalActorRef.d.ts.map +1 -0
- package/dist/internal/LocalActorRef.js +38 -0
- package/dist/internal/LocalActorRef.js.map +1 -0
- package/dist/internal/Mailbox.d.ts +49 -0
- package/dist/internal/Mailbox.d.ts.map +1 -0
- package/dist/internal/Mailbox.js +49 -0
- package/dist/internal/Mailbox.js.map +1 -0
- package/dist/internal/SystemCommand.d.ts +31 -0
- package/dist/internal/SystemCommand.d.ts.map +1 -0
- package/dist/internal/SystemCommand.js +2 -0
- package/dist/internal/SystemCommand.js.map +1 -0
- package/dist/io/broker/AmqpActor.d.ts +78 -0
- package/dist/io/broker/AmqpActor.d.ts.map +1 -0
- package/dist/io/broker/AmqpActor.js +137 -0
- package/dist/io/broker/AmqpActor.js.map +1 -0
- package/dist/io/broker/BrokerActor.d.ts +125 -0
- package/dist/io/broker/BrokerActor.d.ts.map +1 -0
- package/dist/io/broker/BrokerActor.js +289 -0
- package/dist/io/broker/BrokerActor.js.map +1 -0
- package/dist/io/broker/BrokerEvents.d.ts +59 -0
- package/dist/io/broker/BrokerEvents.d.ts.map +1 -0
- package/dist/io/broker/BrokerEvents.js +79 -0
- package/dist/io/broker/BrokerEvents.js.map +1 -0
- package/dist/io/broker/BrokerSettings.d.ts +72 -0
- package/dist/io/broker/BrokerSettings.d.ts.map +1 -0
- package/dist/io/broker/BrokerSettings.js +73 -0
- package/dist/io/broker/BrokerSettings.js.map +1 -0
- package/dist/io/broker/GrpcClientActor.d.ts +112 -0
- package/dist/io/broker/GrpcClientActor.d.ts.map +1 -0
- package/dist/io/broker/GrpcClientActor.js +212 -0
- package/dist/io/broker/GrpcClientActor.js.map +1 -0
- package/dist/io/broker/GrpcServerActor.d.ts +101 -0
- package/dist/io/broker/GrpcServerActor.d.ts.map +1 -0
- package/dist/io/broker/GrpcServerActor.js +230 -0
- package/dist/io/broker/GrpcServerActor.js.map +1 -0
- package/dist/io/broker/JetStreamActor.d.ts +352 -0
- package/dist/io/broker/JetStreamActor.d.ts.map +1 -0
- package/dist/io/broker/JetStreamActor.js +378 -0
- package/dist/io/broker/JetStreamActor.js.map +1 -0
- package/dist/io/broker/KafkaActor.d.ts +316 -0
- package/dist/io/broker/KafkaActor.d.ts.map +1 -0
- package/dist/io/broker/KafkaActor.js +355 -0
- package/dist/io/broker/KafkaActor.js.map +1 -0
- package/dist/io/broker/MqttActor.d.ts +149 -0
- package/dist/io/broker/MqttActor.d.ts.map +1 -0
- package/dist/io/broker/MqttActor.js +255 -0
- package/dist/io/broker/MqttActor.js.map +1 -0
- package/dist/io/broker/NatsActor.d.ts +65 -0
- package/dist/io/broker/NatsActor.d.ts.map +1 -0
- package/dist/io/broker/NatsActor.js +126 -0
- package/dist/io/broker/NatsActor.js.map +1 -0
- package/dist/io/broker/RedisStreamsActor.d.ts +69 -0
- package/dist/io/broker/RedisStreamsActor.d.ts.map +1 -0
- package/dist/io/broker/RedisStreamsActor.js +140 -0
- package/dist/io/broker/RedisStreamsActor.js.map +1 -0
- package/dist/io/broker/ServerWebSocketActor.d.ts +109 -0
- package/dist/io/broker/ServerWebSocketActor.d.ts.map +1 -0
- package/dist/io/broker/ServerWebSocketActor.js +128 -0
- package/dist/io/broker/ServerWebSocketActor.js.map +1 -0
- package/dist/io/broker/SseActor.d.ts +45 -0
- package/dist/io/broker/SseActor.d.ts.map +1 -0
- package/dist/io/broker/SseActor.js +129 -0
- package/dist/io/broker/SseActor.js.map +1 -0
- package/dist/io/broker/TcpSocketActor.d.ts +73 -0
- package/dist/io/broker/TcpSocketActor.d.ts.map +1 -0
- package/dist/io/broker/TcpSocketActor.js +168 -0
- package/dist/io/broker/TcpSocketActor.js.map +1 -0
- package/dist/io/broker/UdpSocketActor.d.ts +54 -0
- package/dist/io/broker/UdpSocketActor.d.ts.map +1 -0
- package/dist/io/broker/UdpSocketActor.js +100 -0
- package/dist/io/broker/UdpSocketActor.js.map +1 -0
- package/dist/io/broker/WebSocketActor.d.ts +77 -0
- package/dist/io/broker/WebSocketActor.d.ts.map +1 -0
- package/dist/io/broker/WebSocketActor.js +217 -0
- package/dist/io/broker/WebSocketActor.js.map +1 -0
- package/dist/io/broker/WebSocketServerAdapters.d.ts +140 -0
- package/dist/io/broker/WebSocketServerAdapters.d.ts.map +1 -0
- package/dist/io/broker/WebSocketServerAdapters.js +155 -0
- package/dist/io/broker/WebSocketServerAdapters.js.map +1 -0
- package/dist/io/broker/index.d.ts +32 -0
- package/dist/io/broker/index.d.ts.map +1 -0
- package/dist/io/broker/index.js +22 -0
- package/dist/io/broker/index.js.map +1 -0
- package/dist/io/index.d.ts +2 -0
- package/dist/io/index.d.ts.map +1 -0
- package/dist/io/index.js +2 -0
- package/dist/io/index.js.map +1 -0
- package/dist/mailbox/BoundedMailbox.d.ts +28 -0
- package/dist/mailbox/BoundedMailbox.d.ts.map +1 -0
- package/dist/mailbox/BoundedMailbox.js +41 -0
- package/dist/mailbox/BoundedMailbox.js.map +1 -0
- package/dist/mailbox/PriorityMailbox.d.ts +32 -0
- package/dist/mailbox/PriorityMailbox.d.ts.map +1 -0
- package/dist/mailbox/PriorityMailbox.js +58 -0
- package/dist/mailbox/PriorityMailbox.js.map +1 -0
- package/dist/mailbox/index.d.ts +5 -0
- package/dist/mailbox/index.d.ts.map +1 -0
- package/dist/mailbox/index.js +3 -0
- package/dist/mailbox/index.js.map +1 -0
- package/dist/management/HealthCheck.d.ts +21 -0
- package/dist/management/HealthCheck.d.ts.map +1 -0
- package/dist/management/HealthCheck.js +46 -0
- package/dist/management/HealthCheck.js.map +1 -0
- package/dist/management/HttpManagement.d.ts +43 -0
- package/dist/management/HttpManagement.d.ts.map +1 -0
- package/dist/management/HttpManagement.js +158 -0
- package/dist/management/HttpManagement.js.map +1 -0
- package/dist/management/index.d.ts +5 -0
- package/dist/management/index.d.ts.map +1 -0
- package/dist/management/index.js +3 -0
- package/dist/management/index.js.map +1 -0
- package/dist/metrics/Metrics.d.ts +142 -0
- package/dist/metrics/Metrics.d.ts.map +1 -0
- package/dist/metrics/Metrics.js +231 -0
- package/dist/metrics/Metrics.js.map +1 -0
- package/dist/metrics/MetricsExtension.d.ts +51 -0
- package/dist/metrics/MetricsExtension.d.ts.map +1 -0
- package/dist/metrics/MetricsExtension.js +63 -0
- package/dist/metrics/MetricsExtension.js.map +1 -0
- package/dist/metrics/PromClientAdapter.d.ts +102 -0
- package/dist/metrics/PromClientAdapter.d.ts.map +1 -0
- package/dist/metrics/PromClientAdapter.js +244 -0
- package/dist/metrics/PromClientAdapter.js.map +1 -0
- package/dist/metrics/PrometheusExporter.d.ts +31 -0
- package/dist/metrics/PrometheusExporter.d.ts.map +1 -0
- package/dist/metrics/PrometheusExporter.js +128 -0
- package/dist/metrics/PrometheusExporter.js.map +1 -0
- package/dist/metrics/index.d.ts +7 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +5 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/pattern/BackoffPolicy.d.ts +67 -0
- package/dist/pattern/BackoffPolicy.d.ts.map +1 -0
- package/dist/pattern/BackoffPolicy.js +87 -0
- package/dist/pattern/BackoffPolicy.js.map +1 -0
- package/dist/pattern/BackoffSupervisor.d.ts +234 -0
- package/dist/pattern/BackoffSupervisor.d.ts.map +1 -0
- package/dist/pattern/BackoffSupervisor.js +292 -0
- package/dist/pattern/BackoffSupervisor.js.map +1 -0
- package/dist/pattern/CircuitBreaker.d.ts +49 -0
- package/dist/pattern/CircuitBreaker.d.ts.map +1 -0
- package/dist/pattern/CircuitBreaker.js +110 -0
- package/dist/pattern/CircuitBreaker.js.map +1 -0
- package/dist/pattern/Status.d.ts +13 -0
- package/dist/pattern/Status.d.ts.map +1 -0
- package/dist/pattern/Status.js +13 -0
- package/dist/pattern/Status.js.map +1 -0
- package/dist/pattern/after.d.ts +13 -0
- package/dist/pattern/after.d.ts.map +1 -0
- package/dist/pattern/after.js +26 -0
- package/dist/pattern/after.js.map +1 -0
- package/dist/pattern/index.d.ts +14 -0
- package/dist/pattern/index.d.ts.map +1 -0
- package/dist/pattern/index.js +8 -0
- package/dist/pattern/index.js.map +1 -0
- package/dist/pattern/pipeTo.d.ts +20 -0
- package/dist/pattern/pipeTo.d.ts.map +1 -0
- package/dist/pattern/pipeTo.js +22 -0
- package/dist/pattern/pipeTo.js.map +1 -0
- package/dist/pattern/retry.d.ts +24 -0
- package/dist/pattern/retry.d.ts.map +1 -0
- package/dist/pattern/retry.js +35 -0
- package/dist/pattern/retry.js.map +1 -0
- package/dist/persistence/DurableStateActor.d.ts +62 -0
- package/dist/persistence/DurableStateActor.d.ts.map +1 -0
- package/dist/persistence/DurableStateActor.js +120 -0
- package/dist/persistence/DurableStateActor.js.map +1 -0
- package/dist/persistence/DurableStateStore.d.ts +43 -0
- package/dist/persistence/DurableStateStore.d.ts.map +1 -0
- package/dist/persistence/DurableStateStore.js +13 -0
- package/dist/persistence/DurableStateStore.js.map +1 -0
- package/dist/persistence/EventDispatcher.d.ts +88 -0
- package/dist/persistence/EventDispatcher.d.ts.map +1 -0
- package/dist/persistence/EventDispatcher.js +81 -0
- package/dist/persistence/EventDispatcher.js.map +1 -0
- package/dist/persistence/Journal.d.ts +40 -0
- package/dist/persistence/Journal.d.ts.map +1 -0
- package/dist/persistence/Journal.js +2 -0
- package/dist/persistence/Journal.js.map +1 -0
- package/dist/persistence/JournalEventBus.d.ts +47 -0
- package/dist/persistence/JournalEventBus.d.ts.map +1 -0
- package/dist/persistence/JournalEventBus.js +26 -0
- package/dist/persistence/JournalEventBus.js.map +1 -0
- package/dist/persistence/JournalTypes.d.ts +39 -0
- package/dist/persistence/JournalTypes.d.ts.map +1 -0
- package/dist/persistence/JournalTypes.js +28 -0
- package/dist/persistence/JournalTypes.js.map +1 -0
- package/dist/persistence/PersistenceExtension.d.ts +32 -0
- package/dist/persistence/PersistenceExtension.d.ts.map +1 -0
- package/dist/persistence/PersistenceExtension.js +69 -0
- package/dist/persistence/PersistenceExtension.js.map +1 -0
- package/dist/persistence/PersistenceOptions.d.ts +95 -0
- package/dist/persistence/PersistenceOptions.d.ts.map +1 -0
- package/dist/persistence/PersistenceOptions.js +20 -0
- package/dist/persistence/PersistenceOptions.js.map +1 -0
- package/dist/persistence/PersistentActor.d.ts +120 -0
- package/dist/persistence/PersistentActor.d.ts.map +1 -0
- package/dist/persistence/PersistentActor.js +246 -0
- package/dist/persistence/PersistentActor.js.map +1 -0
- package/dist/persistence/ReplicatedEventSourcedActor.d.ts +238 -0
- package/dist/persistence/ReplicatedEventSourcedActor.d.ts.map +1 -0
- package/dist/persistence/ReplicatedEventSourcedActor.js +430 -0
- package/dist/persistence/ReplicatedEventSourcedActor.js.map +1 -0
- package/dist/persistence/SnapshotStore.d.ts +31 -0
- package/dist/persistence/SnapshotStore.d.ts.map +1 -0
- package/dist/persistence/SnapshotStore.js +2 -0
- package/dist/persistence/SnapshotStore.js.map +1 -0
- package/dist/persistence/durable-state-stores/InMemoryDurableStateStore.d.ts +14 -0
- package/dist/persistence/durable-state-stores/InMemoryDurableStateStore.d.ts.map +1 -0
- package/dist/persistence/durable-state-stores/InMemoryDurableStateStore.js +31 -0
- package/dist/persistence/durable-state-stores/InMemoryDurableStateStore.js.map +1 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.d.ts +27 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.d.ts.map +1 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.js +157 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.js.map +1 -0
- package/dist/persistence/index.d.ts +65 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +44 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/journals/CassandraClient.d.ts +81 -0
- package/dist/persistence/journals/CassandraClient.d.ts.map +1 -0
- package/dist/persistence/journals/CassandraClient.js +65 -0
- package/dist/persistence/journals/CassandraClient.js.map +1 -0
- package/dist/persistence/journals/CassandraJournal.d.ts +96 -0
- package/dist/persistence/journals/CassandraJournal.d.ts.map +1 -0
- package/dist/persistence/journals/CassandraJournal.js +247 -0
- package/dist/persistence/journals/CassandraJournal.js.map +1 -0
- package/dist/persistence/journals/CassandraPlugin.d.ts +30 -0
- package/dist/persistence/journals/CassandraPlugin.d.ts.map +1 -0
- package/dist/persistence/journals/CassandraPlugin.js +18 -0
- package/dist/persistence/journals/CassandraPlugin.js.map +1 -0
- package/dist/persistence/journals/InMemoryJournal.d.ts +35 -0
- package/dist/persistence/journals/InMemoryJournal.d.ts.map +1 -0
- package/dist/persistence/journals/InMemoryJournal.js +97 -0
- package/dist/persistence/journals/InMemoryJournal.js.map +1 -0
- package/dist/persistence/journals/SqliteJournal.d.ts +68 -0
- package/dist/persistence/journals/SqliteJournal.d.ts.map +1 -0
- package/dist/persistence/journals/SqliteJournal.js +225 -0
- package/dist/persistence/journals/SqliteJournal.js.map +1 -0
- package/dist/persistence/migration/Adapter.d.ts +72 -0
- package/dist/persistence/migration/Adapter.d.ts.map +1 -0
- package/dist/persistence/migration/Adapter.js +24 -0
- package/dist/persistence/migration/Adapter.js.map +1 -0
- package/dist/persistence/migration/Codec.d.ts +103 -0
- package/dist/persistence/migration/Codec.d.ts.map +1 -0
- package/dist/persistence/migration/Codec.js +92 -0
- package/dist/persistence/migration/Codec.js.map +1 -0
- package/dist/persistence/migration/Envelope.d.ts +37 -0
- package/dist/persistence/migration/Envelope.d.ts.map +1 -0
- package/dist/persistence/migration/Envelope.js +79 -0
- package/dist/persistence/migration/Envelope.js.map +1 -0
- package/dist/persistence/migration/MigrationChain.d.ts +100 -0
- package/dist/persistence/migration/MigrationChain.d.ts.map +1 -0
- package/dist/persistence/migration/MigrationChain.js +159 -0
- package/dist/persistence/migration/MigrationChain.js.map +1 -0
- package/dist/persistence/migration/SchemaRegistry.d.ts +114 -0
- package/dist/persistence/migration/SchemaRegistry.d.ts.map +1 -0
- package/dist/persistence/migration/SchemaRegistry.js +112 -0
- package/dist/persistence/migration/SchemaRegistry.js.map +1 -0
- package/dist/persistence/migration/defaultsAdapter.d.ts +56 -0
- package/dist/persistence/migration/defaultsAdapter.d.ts.map +1 -0
- package/dist/persistence/migration/defaultsAdapter.js +119 -0
- package/dist/persistence/migration/defaultsAdapter.js.map +1 -0
- package/dist/persistence/migration/index.d.ts +18 -0
- package/dist/persistence/migration/index.d.ts.map +1 -0
- package/dist/persistence/migration/index.js +12 -0
- package/dist/persistence/migration/index.js.map +1 -0
- package/dist/persistence/migration/journalMigration.d.ts +155 -0
- package/dist/persistence/migration/journalMigration.d.ts.map +1 -0
- package/dist/persistence/migration/journalMigration.js +149 -0
- package/dist/persistence/migration/journalMigration.js.map +1 -0
- package/dist/persistence/migration/migratingAdapter.d.ts +43 -0
- package/dist/persistence/migration/migratingAdapter.d.ts.map +1 -0
- package/dist/persistence/migration/migratingAdapter.js +65 -0
- package/dist/persistence/migration/migratingAdapter.js.map +1 -0
- package/dist/persistence/migration/validatedAdapter.d.ts +48 -0
- package/dist/persistence/migration/validatedAdapter.d.ts.map +1 -0
- package/dist/persistence/migration/validatedAdapter.js +86 -0
- package/dist/persistence/migration/validatedAdapter.js.map +1 -0
- package/dist/persistence/migration/wrapLegacy.d.ts +83 -0
- package/dist/persistence/migration/wrapLegacy.d.ts.map +1 -0
- package/dist/persistence/migration/wrapLegacy.js +126 -0
- package/dist/persistence/migration/wrapLegacy.js.map +1 -0
- package/dist/persistence/object-storage/BodyCodec.d.ts +88 -0
- package/dist/persistence/object-storage/BodyCodec.d.ts.map +1 -0
- package/dist/persistence/object-storage/BodyCodec.js +171 -0
- package/dist/persistence/object-storage/BodyCodec.js.map +1 -0
- package/dist/persistence/object-storage/Compression.d.ts +31 -0
- package/dist/persistence/object-storage/Compression.d.ts.map +1 -0
- package/dist/persistence/object-storage/Compression.js +99 -0
- package/dist/persistence/object-storage/Compression.js.map +1 -0
- package/dist/persistence/object-storage/Encryption.d.ts +73 -0
- package/dist/persistence/object-storage/Encryption.d.ts.map +1 -0
- package/dist/persistence/object-storage/Encryption.js +167 -0
- package/dist/persistence/object-storage/Encryption.js.map +1 -0
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.d.ts +79 -0
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.d.ts.map +1 -0
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.js +325 -0
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.js.map +1 -0
- package/dist/persistence/object-storage/ObjectStorageBackend.d.ts +86 -0
- package/dist/persistence/object-storage/ObjectStorageBackend.d.ts.map +1 -0
- package/dist/persistence/object-storage/ObjectStorageBackend.js +24 -0
- package/dist/persistence/object-storage/ObjectStorageBackend.js.map +1 -0
- package/dist/persistence/object-storage/ObjectStoragePlugin.d.ts +93 -0
- package/dist/persistence/object-storage/ObjectStoragePlugin.d.ts.map +1 -0
- package/dist/persistence/object-storage/ObjectStoragePlugin.js +113 -0
- package/dist/persistence/object-storage/ObjectStoragePlugin.js.map +1 -0
- package/dist/persistence/object-storage/PluginConfig.d.ts +67 -0
- package/dist/persistence/object-storage/PluginConfig.d.ts.map +1 -0
- package/dist/persistence/object-storage/PluginConfig.js +93 -0
- package/dist/persistence/object-storage/PluginConfig.js.map +1 -0
- package/dist/persistence/object-storage/S3ObjectStorageBackend.d.ts +104 -0
- package/dist/persistence/object-storage/S3ObjectStorageBackend.d.ts.map +1 -0
- package/dist/persistence/object-storage/S3ObjectStorageBackend.js +202 -0
- package/dist/persistence/object-storage/S3ObjectStorageBackend.js.map +1 -0
- package/dist/persistence/object-storage/reEncryptionSweep.d.ts +110 -0
- package/dist/persistence/object-storage/reEncryptionSweep.d.ts.map +1 -0
- package/dist/persistence/object-storage/reEncryptionSweep.js +157 -0
- package/dist/persistence/object-storage/reEncryptionSweep.js.map +1 -0
- package/dist/persistence/projection/OffsetStore.d.ts +69 -0
- package/dist/persistence/projection/OffsetStore.d.ts.map +1 -0
- package/dist/persistence/projection/OffsetStore.js +103 -0
- package/dist/persistence/projection/OffsetStore.js.map +1 -0
- package/dist/persistence/projection/ProjectionActor.d.ts +62 -0
- package/dist/persistence/projection/ProjectionActor.d.ts.map +1 -0
- package/dist/persistence/projection/ProjectionActor.js +120 -0
- package/dist/persistence/projection/ProjectionActor.js.map +1 -0
- package/dist/persistence/query/CassandraQuery.d.ts +42 -0
- package/dist/persistence/query/CassandraQuery.d.ts.map +1 -0
- package/dist/persistence/query/CassandraQuery.js +118 -0
- package/dist/persistence/query/CassandraQuery.js.map +1 -0
- package/dist/persistence/query/InMemoryQuery.d.ts +31 -0
- package/dist/persistence/query/InMemoryQuery.d.ts.map +1 -0
- package/dist/persistence/query/InMemoryQuery.js +285 -0
- package/dist/persistence/query/InMemoryQuery.js.map +1 -0
- package/dist/persistence/query/PersistenceQuery.d.ts +162 -0
- package/dist/persistence/query/PersistenceQuery.d.ts.map +1 -0
- package/dist/persistence/query/PersistenceQuery.js +78 -0
- package/dist/persistence/query/PersistenceQuery.js.map +1 -0
- package/dist/persistence/query/SqliteQuery.d.ts +58 -0
- package/dist/persistence/query/SqliteQuery.d.ts.map +1 -0
- package/dist/persistence/query/SqliteQuery.js +173 -0
- package/dist/persistence/query/SqliteQuery.js.map +1 -0
- package/dist/persistence/replicated/ConflictResolver.d.ts +70 -0
- package/dist/persistence/replicated/ConflictResolver.d.ts.map +1 -0
- package/dist/persistence/replicated/ConflictResolver.js +47 -0
- package/dist/persistence/replicated/ConflictResolver.js.map +1 -0
- package/dist/persistence/replicated/ReplicatedSnapshot.d.ts +43 -0
- package/dist/persistence/replicated/ReplicatedSnapshot.d.ts.map +1 -0
- package/dist/persistence/replicated/ReplicatedSnapshot.js +2 -0
- package/dist/persistence/replicated/ReplicatedSnapshot.js.map +1 -0
- package/dist/persistence/replicated/VectorClock.d.ts +57 -0
- package/dist/persistence/replicated/VectorClock.d.ts.map +1 -0
- package/dist/persistence/replicated/VectorClock.js +79 -0
- package/dist/persistence/replicated/VectorClock.js.map +1 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.d.ts +27 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.js +82 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.js.map +1 -0
- package/dist/persistence/snapshot-stores/CassandraSnapshotStore.d.ts +42 -0
- package/dist/persistence/snapshot-stores/CassandraSnapshotStore.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/CassandraSnapshotStore.js +121 -0
- package/dist/persistence/snapshot-stores/CassandraSnapshotStore.js.map +1 -0
- package/dist/persistence/snapshot-stores/InMemorySnapshotStore.d.ts +19 -0
- package/dist/persistence/snapshot-stores/InMemorySnapshotStore.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/InMemorySnapshotStore.js +44 -0
- package/dist/persistence/snapshot-stores/InMemorySnapshotStore.js.map +1 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.d.ts +46 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.js +172 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.js.map +1 -0
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.d.ts +42 -0
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.js +108 -0
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.js.map +1 -0
- package/dist/persistence/storage/KeyValidator.d.ts +80 -0
- package/dist/persistence/storage/KeyValidator.d.ts.map +1 -0
- package/dist/persistence/storage/KeyValidator.js +88 -0
- package/dist/persistence/storage/KeyValidator.js.map +1 -0
- package/dist/runtime/detect.d.ts +35 -0
- package/dist/runtime/detect.d.ts.map +1 -0
- package/dist/runtime/detect.js +60 -0
- package/dist/runtime/detect.js.map +1 -0
- package/dist/runtime/http/BunHonoRunner.d.ts +16 -0
- package/dist/runtime/http/BunHonoRunner.d.ts.map +1 -0
- package/dist/runtime/http/BunHonoRunner.js +26 -0
- package/dist/runtime/http/BunHonoRunner.js.map +1 -0
- package/dist/runtime/http/DenoHonoRunner.d.ts +16 -0
- package/dist/runtime/http/DenoHonoRunner.d.ts.map +1 -0
- package/dist/runtime/http/DenoHonoRunner.js +33 -0
- package/dist/runtime/http/DenoHonoRunner.js.map +1 -0
- package/dist/runtime/http/HonoServerRunner.d.ts +28 -0
- package/dist/runtime/http/HonoServerRunner.d.ts.map +1 -0
- package/dist/runtime/http/HonoServerRunner.js +16 -0
- package/dist/runtime/http/HonoServerRunner.js.map +1 -0
- package/dist/runtime/http/NodeHonoRunner.d.ts +19 -0
- package/dist/runtime/http/NodeHonoRunner.d.ts.map +1 -0
- package/dist/runtime/http/NodeHonoRunner.js +70 -0
- package/dist/runtime/http/NodeHonoRunner.js.map +1 -0
- package/dist/runtime/http/index.d.ts +13 -0
- package/dist/runtime/http/index.d.ts.map +1 -0
- package/dist/runtime/http/index.js +40 -0
- package/dist/runtime/http/index.js.map +1 -0
- package/dist/runtime/sqlite/BetterSqliteDriver.d.ts +18 -0
- package/dist/runtime/sqlite/BetterSqliteDriver.d.ts.map +1 -0
- package/dist/runtime/sqlite/BetterSqliteDriver.js +64 -0
- package/dist/runtime/sqlite/BetterSqliteDriver.js.map +1 -0
- package/dist/runtime/sqlite/BunSqliteDriver.d.ts +17 -0
- package/dist/runtime/sqlite/BunSqliteDriver.d.ts.map +1 -0
- package/dist/runtime/sqlite/BunSqliteDriver.js +34 -0
- package/dist/runtime/sqlite/BunSqliteDriver.js.map +1 -0
- package/dist/runtime/sqlite/SqliteDriver.d.ts +35 -0
- package/dist/runtime/sqlite/SqliteDriver.d.ts.map +1 -0
- package/dist/runtime/sqlite/SqliteDriver.js +13 -0
- package/dist/runtime/sqlite/SqliteDriver.js.map +1 -0
- package/dist/runtime/sqlite/index.d.ts +14 -0
- package/dist/runtime/sqlite/index.d.ts.map +1 -0
- package/dist/runtime/sqlite/index.js +41 -0
- package/dist/runtime/sqlite/index.js.map +1 -0
- package/dist/runtime/tcp/BunTcpBackend.d.ts +24 -0
- package/dist/runtime/tcp/BunTcpBackend.d.ts.map +1 -0
- package/dist/runtime/tcp/BunTcpBackend.js +66 -0
- package/dist/runtime/tcp/BunTcpBackend.js.map +1 -0
- package/dist/runtime/tcp/DenoTcpBackend.d.ts +30 -0
- package/dist/runtime/tcp/DenoTcpBackend.d.ts.map +1 -0
- package/dist/runtime/tcp/DenoTcpBackend.js +145 -0
- package/dist/runtime/tcp/DenoTcpBackend.js.map +1 -0
- package/dist/runtime/tcp/NodeTcpBackend.d.ts +25 -0
- package/dist/runtime/tcp/NodeTcpBackend.d.ts.map +1 -0
- package/dist/runtime/tcp/NodeTcpBackend.js +102 -0
- package/dist/runtime/tcp/NodeTcpBackend.js.map +1 -0
- package/dist/runtime/tcp/TcpBackend.d.ts +65 -0
- package/dist/runtime/tcp/TcpBackend.d.ts.map +1 -0
- package/dist/runtime/tcp/TcpBackend.js +17 -0
- package/dist/runtime/tcp/TcpBackend.js.map +1 -0
- package/dist/runtime/tcp/index.d.ts +13 -0
- package/dist/runtime/tcp/index.d.ts.map +1 -0
- package/dist/runtime/tcp/index.js +40 -0
- package/dist/runtime/tcp/index.js.map +1 -0
- package/dist/runtime/worker/NodeWorkerBackend.d.ts +19 -0
- package/dist/runtime/worker/NodeWorkerBackend.d.ts.map +1 -0
- package/dist/runtime/worker/NodeWorkerBackend.js +84 -0
- package/dist/runtime/worker/NodeWorkerBackend.js.map +1 -0
- package/dist/runtime/worker/WebWorkerBackend.d.ts +12 -0
- package/dist/runtime/worker/WebWorkerBackend.d.ts.map +1 -0
- package/dist/runtime/worker/WebWorkerBackend.js +55 -0
- package/dist/runtime/worker/WebWorkerBackend.js.map +1 -0
- package/dist/runtime/worker/WorkerBackend.d.ts +45 -0
- package/dist/runtime/worker/WorkerBackend.d.ts.map +1 -0
- package/dist/runtime/worker/WorkerBackend.js +18 -0
- package/dist/runtime/worker/WorkerBackend.js.map +1 -0
- package/dist/runtime/worker/index.d.ts +14 -0
- package/dist/runtime/worker/index.d.ts.map +1 -0
- package/dist/runtime/worker/index.js +34 -0
- package/dist/runtime/worker/index.js.map +1 -0
- package/dist/serialization/CborCodec.d.ts +51 -0
- package/dist/serialization/CborCodec.d.ts.map +1 -0
- package/dist/serialization/CborCodec.js +321 -0
- package/dist/serialization/CborCodec.js.map +1 -0
- package/dist/serialization/CborSerializer.d.ts +23 -0
- package/dist/serialization/CborSerializer.d.ts.map +1 -0
- package/dist/serialization/CborSerializer.js +27 -0
- package/dist/serialization/CborSerializer.js.map +1 -0
- package/dist/serialization/JsonSerializer.d.ts +18 -0
- package/dist/serialization/JsonSerializer.d.ts.map +1 -0
- package/dist/serialization/JsonSerializer.js +114 -0
- package/dist/serialization/JsonSerializer.js.map +1 -0
- package/dist/serialization/SerializationExtension.d.ts +46 -0
- package/dist/serialization/SerializationExtension.d.ts.map +1 -0
- package/dist/serialization/SerializationExtension.js +105 -0
- package/dist/serialization/SerializationExtension.js.map +1 -0
- package/dist/serialization/Serializer.d.ts +44 -0
- package/dist/serialization/Serializer.d.ts.map +1 -0
- package/dist/serialization/Serializer.js +7 -0
- package/dist/serialization/Serializer.js.map +1 -0
- package/dist/serialization/index.d.ts +7 -0
- package/dist/serialization/index.d.ts.map +1 -0
- package/dist/serialization/index.js +6 -0
- package/dist/serialization/index.js.map +1 -0
- package/dist/testkit/ManualScheduler.d.ts +35 -0
- package/dist/testkit/ManualScheduler.d.ts.map +1 -0
- package/dist/testkit/ManualScheduler.js +126 -0
- package/dist/testkit/ManualScheduler.js.map +1 -0
- package/dist/testkit/MultiNodeSpec.d.ts +132 -0
- package/dist/testkit/MultiNodeSpec.d.ts.map +1 -0
- package/dist/testkit/MultiNodeSpec.js +237 -0
- package/dist/testkit/MultiNodeSpec.js.map +1 -0
- package/dist/testkit/ParallelMultiNodeSpec.d.ts +117 -0
- package/dist/testkit/ParallelMultiNodeSpec.d.ts.map +1 -0
- package/dist/testkit/ParallelMultiNodeSpec.js +310 -0
- package/dist/testkit/ParallelMultiNodeSpec.js.map +1 -0
- package/dist/testkit/TestKit.d.ts +40 -0
- package/dist/testkit/TestKit.d.ts.map +1 -0
- package/dist/testkit/TestKit.js +60 -0
- package/dist/testkit/TestKit.js.map +1 -0
- package/dist/testkit/TestProbe.d.ts +56 -0
- package/dist/testkit/TestProbe.d.ts.map +1 -0
- package/dist/testkit/TestProbe.js +184 -0
- package/dist/testkit/TestProbe.js.map +1 -0
- package/dist/testkit/index.d.ts +11 -0
- package/dist/testkit/index.d.ts.map +1 -0
- package/dist/testkit/index.js +6 -0
- package/dist/testkit/index.js.map +1 -0
- package/dist/testkit/internal/MultiNodeBroker.d.ts +39 -0
- package/dist/testkit/internal/MultiNodeBroker.d.ts.map +1 -0
- package/dist/testkit/internal/MultiNodeBroker.js +96 -0
- package/dist/testkit/internal/MultiNodeBroker.js.map +1 -0
- package/dist/testkit/internal/MultiNodeTransport.d.ts +58 -0
- package/dist/testkit/internal/MultiNodeTransport.d.ts.map +1 -0
- package/dist/testkit/internal/MultiNodeTransport.js +96 -0
- package/dist/testkit/internal/MultiNodeTransport.js.map +1 -0
- package/dist/testkit/internal/parallel-multi-node-bootstrap.d.ts +54 -0
- package/dist/testkit/internal/parallel-multi-node-bootstrap.d.ts.map +1 -0
- package/dist/testkit/internal/parallel-multi-node-bootstrap.js +157 -0
- package/dist/testkit/internal/parallel-multi-node-bootstrap.js.map +1 -0
- package/dist/tracing/NoopTracer.d.ts +11 -0
- package/dist/tracing/NoopTracer.d.ts.map +1 -0
- package/dist/tracing/NoopTracer.js +29 -0
- package/dist/tracing/NoopTracer.js.map +1 -0
- package/dist/tracing/OtelAdapter.d.ts +106 -0
- package/dist/tracing/OtelAdapter.d.ts.map +1 -0
- package/dist/tracing/OtelAdapter.js +164 -0
- package/dist/tracing/OtelAdapter.js.map +1 -0
- package/dist/tracing/RecordingTracer.d.ts +54 -0
- package/dist/tracing/RecordingTracer.d.ts.map +1 -0
- package/dist/tracing/RecordingTracer.js +129 -0
- package/dist/tracing/RecordingTracer.js.map +1 -0
- package/dist/tracing/Tracer.d.ts +100 -0
- package/dist/tracing/Tracer.d.ts.map +1 -0
- package/dist/tracing/Tracer.js +76 -0
- package/dist/tracing/Tracer.js.map +1 -0
- package/dist/tracing/TracingExtension.d.ts +32 -0
- package/dist/tracing/TracingExtension.d.ts.map +1 -0
- package/dist/tracing/TracingExtension.js +38 -0
- package/dist/tracing/TracingExtension.js.map +1 -0
- package/dist/tracing/index.d.ts +9 -0
- package/dist/tracing/index.d.ts.map +1 -0
- package/dist/tracing/index.js +6 -0
- package/dist/tracing/index.js.map +1 -0
- package/dist/typed/Behavior.d.ts +78 -0
- package/dist/typed/Behavior.d.ts.map +1 -0
- package/dist/typed/Behavior.js +2 -0
- package/dist/typed/Behavior.js.map +1 -0
- package/dist/typed/Behaviors.d.ts +60 -0
- package/dist/typed/Behaviors.d.ts.map +1 -0
- package/dist/typed/Behaviors.js +77 -0
- package/dist/typed/Behaviors.js.map +1 -0
- package/dist/typed/TypedActor.d.ts +28 -0
- package/dist/typed/TypedActor.d.ts.map +1 -0
- package/dist/typed/TypedActor.js +194 -0
- package/dist/typed/TypedActor.js.map +1 -0
- package/dist/typed/TypedActorContext.d.ts +29 -0
- package/dist/typed/TypedActorContext.d.ts.map +1 -0
- package/dist/typed/TypedActorContext.js +2 -0
- package/dist/typed/TypedActorContext.js.map +1 -0
- package/dist/typed/index.d.ts +7 -0
- package/dist/typed/index.d.ts.map +1 -0
- package/dist/typed/index.js +4 -0
- package/dist/typed/index.js.map +1 -0
- package/dist/typed/spawn.d.ts +14 -0
- package/dist/typed/spawn.d.ts.map +1 -0
- package/dist/typed/spawn.js +16 -0
- package/dist/typed/spawn.js.map +1 -0
- package/dist/util/Constants.d.ts +66 -0
- package/dist/util/Constants.d.ts.map +1 -0
- package/dist/util/Constants.js +66 -0
- package/dist/util/Constants.js.map +1 -0
- package/dist/util/Either.d.ts +100 -0
- package/dist/util/Either.d.ts.map +1 -0
- package/dist/util/Either.js +128 -0
- package/dist/util/Either.js.map +1 -0
- package/dist/util/Lazy.d.ts +82 -0
- package/dist/util/Lazy.d.ts.map +1 -0
- package/dist/util/Lazy.js +119 -0
- package/dist/util/Lazy.js.map +1 -0
- package/dist/util/LazyImport.d.ts +68 -0
- package/dist/util/LazyImport.d.ts.map +1 -0
- package/dist/util/LazyImport.js +64 -0
- package/dist/util/LazyImport.js.map +1 -0
- package/dist/util/Option.d.ts +105 -0
- package/dist/util/Option.d.ts.map +1 -0
- package/dist/util/Option.js +123 -0
- package/dist/util/Option.js.map +1 -0
- package/dist/util/TokenBucket.d.ts +59 -0
- package/dist/util/TokenBucket.d.ts.map +1 -0
- package/dist/util/TokenBucket.js +76 -0
- package/dist/util/TokenBucket.js.map +1 -0
- package/dist/util/Try.d.ts +103 -0
- package/dist/util/Try.d.ts.map +1 -0
- package/dist/util/Try.js +176 -0
- package/dist/util/Try.js.map +1 -0
- package/dist/util/WrapError.d.ts +42 -0
- package/dist/util/WrapError.d.ts.map +1 -0
- package/dist/util/WrapError.js +46 -0
- package/dist/util/WrapError.js.map +1 -0
- package/dist/worker/WorkerBroker.d.ts +29 -0
- package/dist/worker/WorkerBroker.d.ts.map +1 -0
- package/dist/worker/WorkerBroker.js +74 -0
- package/dist/worker/WorkerBroker.js.map +1 -0
- package/dist/worker/WorkerCluster.d.ts +68 -0
- package/dist/worker/WorkerCluster.d.ts.map +1 -0
- package/dist/worker/WorkerCluster.js +161 -0
- package/dist/worker/WorkerCluster.js.map +1 -0
- package/dist/worker/WorkerNode.d.ts +20 -0
- package/dist/worker/WorkerNode.d.ts.map +1 -0
- package/dist/worker/WorkerNode.js +84 -0
- package/dist/worker/WorkerNode.js.map +1 -0
- package/dist/worker/index.d.ts +6 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +4 -0
- package/dist/worker/index.js.map +1 -0
- package/package.json +148 -0
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import type { PersistentEvent } from '../JournalTypes.js';
|
|
2
|
+
/**
|
|
3
|
+
* Read-side query layer for the journal. Designed for projections —
|
|
4
|
+
* processes that materialise a read-model by sweeping events out of
|
|
5
|
+
* the write-side journal and feeding them into a user handler.
|
|
6
|
+
*
|
|
7
|
+
* Two flavours of query:
|
|
8
|
+
*
|
|
9
|
+
* - **`current*`** — one-shot snapshot of events currently in the
|
|
10
|
+
* journal at call time. Resolves to a Promise. Use this for a
|
|
11
|
+
* batch backfill or a self-contained report.
|
|
12
|
+
* - **`events*`** — continuous live stream. Polls the journal at
|
|
13
|
+
* `pollIntervalMs` for new events. Yields an `AsyncIterable` so
|
|
14
|
+
* consumers can `for await (const ev of stream) ...`. The stream
|
|
15
|
+
* stays open until the consumer breaks out of the loop or calls
|
|
16
|
+
* `return()` on the iterator.
|
|
17
|
+
*
|
|
18
|
+
* **Delivery guarantees:** at-least-once. A projection that fails
|
|
19
|
+
* mid-event must accept that the event will be redelivered after
|
|
20
|
+
* restart. Handlers therefore have to be idempotent.
|
|
21
|
+
*
|
|
22
|
+
* **Pull-only.** The first iteration polls. Push-based subscribe
|
|
23
|
+
* (via the system's `EventStream`) is intentionally deferred — see
|
|
24
|
+
* issue #36 / the roadmap plan.
|
|
25
|
+
*/
|
|
26
|
+
export interface PersistenceQuery {
|
|
27
|
+
/**
|
|
28
|
+
* Live stream of every event for `persistenceId` whose
|
|
29
|
+
* `sequenceNr >= fromSeq`. Past events are emitted first
|
|
30
|
+
* (chronological by `sequenceNr`), then new events as they are
|
|
31
|
+
* appended. The stream never completes on its own — break out of
|
|
32
|
+
* the loop or call `return()` on the iterator to stop polling.
|
|
33
|
+
*/
|
|
34
|
+
eventsByPersistenceId<E>(persistenceId: string, fromSeq: number, options?: LiveQueryOptions): AsyncIterable<PersistentEvent<E>>;
|
|
35
|
+
/**
|
|
36
|
+
* One-shot read of every event for `persistenceId` whose
|
|
37
|
+
* `sequenceNr >= fromSeq` (and `<= toSeq` if given). Resolves
|
|
38
|
+
* once with the events known at call time.
|
|
39
|
+
*/
|
|
40
|
+
currentEventsByPersistenceId<E>(persistenceId: string, fromSeq: number, toSeq?: number): Promise<PersistentEvent<E>[]>;
|
|
41
|
+
/**
|
|
42
|
+
* Live stream of every event matching `filter` whose offset is
|
|
43
|
+
* `>= fromOffset`. Yields events ordered by `(timestamp,
|
|
44
|
+
* persistenceId, sequenceNr)`. See {@link Offset} for offset
|
|
45
|
+
* semantics — the stream emits the offset alongside the event so
|
|
46
|
+
* the consumer can persist progress.
|
|
47
|
+
*
|
|
48
|
+
* `filter` accepts either a single tag string (back-compat shortcut
|
|
49
|
+
* for `{ all: [tag] }`) or a {@link TagFilter} object that combines
|
|
50
|
+
* `all` (intersect), `any` (union), and `not` (exclusion) operators.
|
|
51
|
+
*/
|
|
52
|
+
eventsByTag<E>(filter: TagFilter, fromOffset: Offset, options?: LiveQueryOptions): AsyncIterable<TaggedEvent<E>>;
|
|
53
|
+
/**
|
|
54
|
+
* One-shot read of every event matching `filter` whose offset is
|
|
55
|
+
* `>= fromOffset`. See {@link TagFilter} for the operator semantics.
|
|
56
|
+
*/
|
|
57
|
+
currentEventsByTag<E>(filter: TagFilter, fromOffset: Offset): Promise<TaggedEvent<E>[]>;
|
|
58
|
+
/**
|
|
59
|
+
* Snapshot of every persistence id known to the journal. Resolves
|
|
60
|
+
* once. Useful for fan-out projections that subscribe to one
|
|
61
|
+
* stream per id; pair with `eventsByPersistenceId` for the
|
|
62
|
+
* continuous read.
|
|
63
|
+
*/
|
|
64
|
+
currentPersistenceIds(): Promise<string[]>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Tunables for a live query. The defaults are deliberately
|
|
68
|
+
* conservative — projections are I/O-bound, not latency-critical.
|
|
69
|
+
*/
|
|
70
|
+
export interface LiveQueryOptions {
|
|
71
|
+
/** Poll interval in ms. Default: `1_000` (1 second). */
|
|
72
|
+
readonly pollIntervalMs?: number;
|
|
73
|
+
/** Max events to buffer per poll. Default: `100`. */
|
|
74
|
+
readonly batchSize?: number;
|
|
75
|
+
/**
|
|
76
|
+
* Optional clock — useful for tests that want to control
|
|
77
|
+
* time-based offset progression. Defaults to `Date.now`.
|
|
78
|
+
*/
|
|
79
|
+
readonly clock?: () => number;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Cursor used by tag queries. Composite by design so two events that
|
|
83
|
+
* share a `timestamp` (which happens whenever a batch of events is
|
|
84
|
+
* persisted in the same `Date.now()` tick) still have a deterministic
|
|
85
|
+
* order — `(timestamp, persistenceId, sequenceNr)` is unique per event.
|
|
86
|
+
*
|
|
87
|
+
* Compare via {@link offsetGreaterOrEqual} / {@link offsetCompare} —
|
|
88
|
+
* the tuple structure makes naive `>=` comparison wrong.
|
|
89
|
+
*/
|
|
90
|
+
export interface Offset {
|
|
91
|
+
/** Wall-clock time of the event's persist call. */
|
|
92
|
+
readonly timestamp: number;
|
|
93
|
+
/**
|
|
94
|
+
* Tiebreaker when two events share `timestamp`. Set to the empty
|
|
95
|
+
* string for the "from-the-beginning" sentinel; the comparator
|
|
96
|
+
* treats `''` as "before any real persistence id".
|
|
97
|
+
*/
|
|
98
|
+
readonly persistenceId: string;
|
|
99
|
+
/** Tiebreaker within a persistence id when timestamps collide. */
|
|
100
|
+
readonly sequenceNr: number;
|
|
101
|
+
}
|
|
102
|
+
/** Sentinel: read every event from the start of recorded history. */
|
|
103
|
+
export declare const offsetStart: Offset;
|
|
104
|
+
export declare function offsetCompare(a: Offset, b: Offset): number;
|
|
105
|
+
export declare function offsetGreaterOrEqual(a: Offset, b: Offset): boolean;
|
|
106
|
+
export declare function offsetGreater(a: Offset, b: Offset): boolean;
|
|
107
|
+
/** Build an offset from an event — the event's "natural" position. */
|
|
108
|
+
export declare function offsetOfEvent<E>(ev: PersistentEvent<E>): Offset;
|
|
109
|
+
/**
|
|
110
|
+
* Event paired with the {@link Offset} a consumer must persist to
|
|
111
|
+
* resume after a crash. See `eventsByTag`.
|
|
112
|
+
*/
|
|
113
|
+
export interface TaggedEvent<E = unknown> {
|
|
114
|
+
readonly event: PersistentEvent<E>;
|
|
115
|
+
readonly offset: Offset;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Tag-filter spec for `eventsByTag` / `currentEventsByTag`. A bare
|
|
119
|
+
* string is shorthand for `{ all: [tag] }`; the object form combines
|
|
120
|
+
* three operators that all apply to the same query:
|
|
121
|
+
*
|
|
122
|
+
* - `all` — intersection: every listed tag must appear on the event.
|
|
123
|
+
* - `any` — union: at least one listed tag must appear.
|
|
124
|
+
* - `not` — exclusion: no listed tag may appear on the event.
|
|
125
|
+
*
|
|
126
|
+
* **Empty-list semantics (∀ / ∃ / ∄ over the given list):**
|
|
127
|
+
*
|
|
128
|
+
* - `all: []` and `not: []` impose no constraint (vacuously true).
|
|
129
|
+
* - `any: []` matches **nothing** (no event has a tag in the empty
|
|
130
|
+
* set) — the only "footgun" worth calling out.
|
|
131
|
+
*
|
|
132
|
+
* Operators compose by AND: `{ all: ['type:Order'], not: ['archived'] }`
|
|
133
|
+
* matches order events that are not archived. Backends that ship a
|
|
134
|
+
* tag index (SQLite, Cassandra) push as much of the filter as they
|
|
135
|
+
* can into the storage layer and JS-refine the rest; the InMemory
|
|
136
|
+
* reference does the whole match in JS.
|
|
137
|
+
*/
|
|
138
|
+
export type TagFilter = string | TagFilterSpec;
|
|
139
|
+
/**
|
|
140
|
+
* Object form of {@link TagFilter}. Each operator is optional; an
|
|
141
|
+
* empty `{}` matches every event. See `TagFilter` for the empty-list
|
|
142
|
+
* semantics.
|
|
143
|
+
*/
|
|
144
|
+
export interface TagFilterSpec {
|
|
145
|
+
readonly all?: ReadonlyArray<string>;
|
|
146
|
+
readonly any?: ReadonlyArray<string>;
|
|
147
|
+
readonly not?: ReadonlyArray<string>;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Normalise a {@link TagFilter} into the canonical {@link TagFilterSpec}
|
|
151
|
+
* form. A bare string `t` becomes `{ all: [t] }`; an object is
|
|
152
|
+
* shallow-copied so callers can't mutate it after the fact.
|
|
153
|
+
*/
|
|
154
|
+
export declare function normalizeTagFilter(filter: TagFilter): TagFilterSpec;
|
|
155
|
+
/**
|
|
156
|
+
* Test whether `eventTags` satisfies `filter`. Used by every
|
|
157
|
+
* `PersistenceQuery` implementation as the in-memory refinement step
|
|
158
|
+
* after the storage layer's coarse pre-filter. Empty `all` / `not`
|
|
159
|
+
* are no-ops; empty `any` matches nothing (see {@link TagFilter}).
|
|
160
|
+
*/
|
|
161
|
+
export declare function eventMatchesTagFilter(eventTags: ReadonlyArray<string> | undefined, filter: TagFilterSpec): boolean;
|
|
162
|
+
//# sourceMappingURL=PersistenceQuery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PersistenceQuery.d.ts","sourceRoot":"","sources":["../../../src/persistence/query/PersistenceQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/** Sentinel: read every event from the start of recorded history. */
|
|
2
|
+
export const offsetStart = {
|
|
3
|
+
timestamp: 0,
|
|
4
|
+
persistenceId: '',
|
|
5
|
+
sequenceNr: 0,
|
|
6
|
+
};
|
|
7
|
+
export function offsetCompare(a, b) {
|
|
8
|
+
if (a.timestamp !== b.timestamp)
|
|
9
|
+
return a.timestamp - b.timestamp;
|
|
10
|
+
if (a.persistenceId !== b.persistenceId) {
|
|
11
|
+
return a.persistenceId < b.persistenceId ? -1 : 1;
|
|
12
|
+
}
|
|
13
|
+
return a.sequenceNr - b.sequenceNr;
|
|
14
|
+
}
|
|
15
|
+
export function offsetGreaterOrEqual(a, b) {
|
|
16
|
+
return offsetCompare(a, b) >= 0;
|
|
17
|
+
}
|
|
18
|
+
export function offsetGreater(a, b) {
|
|
19
|
+
return offsetCompare(a, b) > 0;
|
|
20
|
+
}
|
|
21
|
+
/** Build an offset from an event — the event's "natural" position. */
|
|
22
|
+
export function offsetOfEvent(ev) {
|
|
23
|
+
return {
|
|
24
|
+
timestamp: ev.timestamp,
|
|
25
|
+
persistenceId: ev.persistenceId,
|
|
26
|
+
sequenceNr: ev.sequenceNr,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Normalise a {@link TagFilter} into the canonical {@link TagFilterSpec}
|
|
31
|
+
* form. A bare string `t` becomes `{ all: [t] }`; an object is
|
|
32
|
+
* shallow-copied so callers can't mutate it after the fact.
|
|
33
|
+
*/
|
|
34
|
+
export function normalizeTagFilter(filter) {
|
|
35
|
+
if (typeof filter === 'string')
|
|
36
|
+
return { all: [filter] };
|
|
37
|
+
return {
|
|
38
|
+
all: filter.all,
|
|
39
|
+
any: filter.any,
|
|
40
|
+
not: filter.not,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Test whether `eventTags` satisfies `filter`. Used by every
|
|
45
|
+
* `PersistenceQuery` implementation as the in-memory refinement step
|
|
46
|
+
* after the storage layer's coarse pre-filter. Empty `all` / `not`
|
|
47
|
+
* are no-ops; empty `any` matches nothing (see {@link TagFilter}).
|
|
48
|
+
*/
|
|
49
|
+
export function eventMatchesTagFilter(eventTags, filter) {
|
|
50
|
+
const tags = eventTags ?? [];
|
|
51
|
+
if (filter.all && filter.all.length > 0) {
|
|
52
|
+
for (const t of filter.all) {
|
|
53
|
+
if (!tags.includes(t))
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (filter.any !== undefined) {
|
|
58
|
+
if (filter.any.length === 0)
|
|
59
|
+
return false; // ∃ over ∅ ≡ false
|
|
60
|
+
let anyMatch = false;
|
|
61
|
+
for (const t of filter.any) {
|
|
62
|
+
if (tags.includes(t)) {
|
|
63
|
+
anyMatch = true;
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (!anyMatch)
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
if (filter.not && filter.not.length > 0) {
|
|
71
|
+
for (const t of filter.not) {
|
|
72
|
+
if (tags.includes(t))
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=PersistenceQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PersistenceQuery.js","sourceRoot":"","sources":["../../../src/persistence/query/PersistenceQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { SqliteJournal } from '../journals/SqliteJournal.js';
|
|
2
|
+
import { InMemoryQuery } from './InMemoryQuery.js';
|
|
3
|
+
import { type Offset, type TagFilter, type TaggedEvent } from './PersistenceQuery.js';
|
|
4
|
+
/**
|
|
5
|
+
* SQLite-backed query. Inherits the per-pid read path from
|
|
6
|
+
* {@link InMemoryQuery} (which delegates straight to `Journal.read`)
|
|
7
|
+
* and overrides the tag path with an indexed JOIN against the
|
|
8
|
+
* `${eventsTable}_tags` join table that `SqliteJournal` maintains.
|
|
9
|
+
*
|
|
10
|
+
* **Index shape.** The journal's tags table has primary key
|
|
11
|
+
* `(tag, timestamp, persistence_id, sequence_nr)`, so a
|
|
12
|
+
* `WHERE tag = ? AND timestamp >= ?` filter walks a contiguous
|
|
13
|
+
* range of the index — bounded cost per query no matter how big
|
|
14
|
+
* the events table grows. We then JOIN to `events` to pull the
|
|
15
|
+
* payload + the original CSV tags column.
|
|
16
|
+
*
|
|
17
|
+
* **Backwards-compat.** `SqliteJournal` upgrades existing v0
|
|
18
|
+
* databases (CSV-only, no join table) by backfilling the join
|
|
19
|
+
* table on `init()` — see `SqliteJournal.backfillTagsTableIfNeeded`.
|
|
20
|
+
* From the query layer's POV the table is always present once the
|
|
21
|
+
* journal is open.
|
|
22
|
+
*
|
|
23
|
+
* **Multi-tag filters.** The `TagFilter` operators (`all` / `any` /
|
|
24
|
+
* `not`) are pushed into SQL with one of three strategies:
|
|
25
|
+
*
|
|
26
|
+
* - At least one `all` tag → walk the join-table for `all[0]`,
|
|
27
|
+
* JS-refine the rest of the filter against `events.tags`. The
|
|
28
|
+
* SQL is the same as the single-tag fast path; only the JS step
|
|
29
|
+
* is wider.
|
|
30
|
+
* - No `all`, but `any` is non-empty → walk the join-table with
|
|
31
|
+
* `t.tag IN (?, ?, …)` (DISTINCT to dedupe events tagged with
|
|
32
|
+
* more than one of the listed values), JS-refine for `not`.
|
|
33
|
+
* - Only `not` (or empty filter) → fall back to the inherited
|
|
34
|
+
* {@link InMemoryQuery} scan path, which iterates persistence ids
|
|
35
|
+
* and reads each one. Less efficient, but only-`not` queries
|
|
36
|
+
* don't have a selective index to use anyway.
|
|
37
|
+
*/
|
|
38
|
+
export declare class SqliteQuery extends InMemoryQuery {
|
|
39
|
+
private readonly sqlite;
|
|
40
|
+
/**
|
|
41
|
+
* Cache for the single-tag fetch statement (also used as the
|
|
42
|
+
* `all[0]` pre-filter). Subsequent polls reuse the same prepared
|
|
43
|
+
* statement via the SQLite driver's plan cache.
|
|
44
|
+
*/
|
|
45
|
+
private cachedSingleTag;
|
|
46
|
+
/**
|
|
47
|
+
* `IN (?, ?, …)` pre-filter statements keyed by the number of
|
|
48
|
+
* placeholders — re-prepared the first time a query of that shape
|
|
49
|
+
* runs, then reused.
|
|
50
|
+
*/
|
|
51
|
+
private readonly cachedAnyByArity;
|
|
52
|
+
constructor(sqlite: SqliteJournal);
|
|
53
|
+
currentEventsByTag<E>(filter: TagFilter, fromOffset: Offset): Promise<TaggedEvent<E>[]>;
|
|
54
|
+
private ensureSingleTagStmts;
|
|
55
|
+
private ensureAnyStmts;
|
|
56
|
+
private openInternals;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=SqliteQuery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SqliteQuery.d.ts","sourceRoot":"","sources":["../../../src/persistence/query/SqliteQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGlE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAKL,KAAK,MAAM,EACX,KAAK,SAAS,EAEd,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,WAAY,SAAQ,aAAa;IAehC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAdnC;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAyB;IAEhD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA+B;gBAEnC,MAAM,EAAE,aAAa;IAInC,kBAAkB,CAAC,CAAC,EACjC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GACpC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YAqCd,oBAAoB;YAmBpB,cAAc;YAsBd,aAAa;CAoB5B"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { JournalError } from '../JournalTypes.js';
|
|
2
|
+
import { InMemoryQuery } from './InMemoryQuery.js';
|
|
3
|
+
import { eventMatchesTagFilter, normalizeTagFilter, offsetCompare, offsetOfEvent, } from './PersistenceQuery.js';
|
|
4
|
+
/**
|
|
5
|
+
* SQLite-backed query. Inherits the per-pid read path from
|
|
6
|
+
* {@link InMemoryQuery} (which delegates straight to `Journal.read`)
|
|
7
|
+
* and overrides the tag path with an indexed JOIN against the
|
|
8
|
+
* `${eventsTable}_tags` join table that `SqliteJournal` maintains.
|
|
9
|
+
*
|
|
10
|
+
* **Index shape.** The journal's tags table has primary key
|
|
11
|
+
* `(tag, timestamp, persistence_id, sequence_nr)`, so a
|
|
12
|
+
* `WHERE tag = ? AND timestamp >= ?` filter walks a contiguous
|
|
13
|
+
* range of the index — bounded cost per query no matter how big
|
|
14
|
+
* the events table grows. We then JOIN to `events` to pull the
|
|
15
|
+
* payload + the original CSV tags column.
|
|
16
|
+
*
|
|
17
|
+
* **Backwards-compat.** `SqliteJournal` upgrades existing v0
|
|
18
|
+
* databases (CSV-only, no join table) by backfilling the join
|
|
19
|
+
* table on `init()` — see `SqliteJournal.backfillTagsTableIfNeeded`.
|
|
20
|
+
* From the query layer's POV the table is always present once the
|
|
21
|
+
* journal is open.
|
|
22
|
+
*
|
|
23
|
+
* **Multi-tag filters.** The `TagFilter` operators (`all` / `any` /
|
|
24
|
+
* `not`) are pushed into SQL with one of three strategies:
|
|
25
|
+
*
|
|
26
|
+
* - At least one `all` tag → walk the join-table for `all[0]`,
|
|
27
|
+
* JS-refine the rest of the filter against `events.tags`. The
|
|
28
|
+
* SQL is the same as the single-tag fast path; only the JS step
|
|
29
|
+
* is wider.
|
|
30
|
+
* - No `all`, but `any` is non-empty → walk the join-table with
|
|
31
|
+
* `t.tag IN (?, ?, …)` (DISTINCT to dedupe events tagged with
|
|
32
|
+
* more than one of the listed values), JS-refine for `not`.
|
|
33
|
+
* - Only `not` (or empty filter) → fall back to the inherited
|
|
34
|
+
* {@link InMemoryQuery} scan path, which iterates persistence ids
|
|
35
|
+
* and reads each one. Less efficient, but only-`not` queries
|
|
36
|
+
* don't have a selective index to use anyway.
|
|
37
|
+
*/
|
|
38
|
+
export class SqliteQuery extends InMemoryQuery {
|
|
39
|
+
sqlite;
|
|
40
|
+
/**
|
|
41
|
+
* Cache for the single-tag fetch statement (also used as the
|
|
42
|
+
* `all[0]` pre-filter). Subsequent polls reuse the same prepared
|
|
43
|
+
* statement via the SQLite driver's plan cache.
|
|
44
|
+
*/
|
|
45
|
+
cachedSingleTag = null;
|
|
46
|
+
/**
|
|
47
|
+
* `IN (?, ?, …)` pre-filter statements keyed by the number of
|
|
48
|
+
* placeholders — re-prepared the first time a query of that shape
|
|
49
|
+
* runs, then reused.
|
|
50
|
+
*/
|
|
51
|
+
cachedAnyByArity = new Map();
|
|
52
|
+
constructor(sqlite) {
|
|
53
|
+
super(sqlite);
|
|
54
|
+
this.sqlite = sqlite;
|
|
55
|
+
}
|
|
56
|
+
async currentEventsByTag(filter, fromOffset) {
|
|
57
|
+
const spec = normalizeTagFilter(filter);
|
|
58
|
+
const allTags = spec.all ?? [];
|
|
59
|
+
const anyTags = spec.any ?? [];
|
|
60
|
+
// Strategy 1: walk the join table on the first `all` tag, JS-
|
|
61
|
+
// refine for the remaining `all` / `any` / `not` constraints.
|
|
62
|
+
if (allTags.length > 0) {
|
|
63
|
+
const stmts = await this.ensureSingleTagStmts();
|
|
64
|
+
let rows;
|
|
65
|
+
try {
|
|
66
|
+
rows = stmts.fetchByTag.all(allTags[0], fromOffset.timestamp);
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
throw new JournalError(`SqliteQuery.currentEventsByTag failed: ${e.message}`, e);
|
|
70
|
+
}
|
|
71
|
+
return refineAndSort(rows, spec, fromOffset);
|
|
72
|
+
}
|
|
73
|
+
// Strategy 2: any-only — walk the join table on `t.tag IN (...)`,
|
|
74
|
+
// DISTINCT-dedupe events that match more than one tag in the set.
|
|
75
|
+
if (anyTags.length > 0) {
|
|
76
|
+
const stmts = await this.ensureAnyStmts(anyTags.length);
|
|
77
|
+
let rows;
|
|
78
|
+
try {
|
|
79
|
+
rows = stmts.fetchByAny.all(...anyTags, fromOffset.timestamp);
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
throw new JournalError(`SqliteQuery.currentEventsByTag failed: ${e.message}`, e);
|
|
83
|
+
}
|
|
84
|
+
return refineAndSort(rows, spec, fromOffset);
|
|
85
|
+
}
|
|
86
|
+
// Strategy 3: only `not` (or fully empty filter) — fall back to
|
|
87
|
+
// the journal-walking scan in the base class. We still pass the
|
|
88
|
+
// full filter so the not-clause is applied.
|
|
89
|
+
return super.currentEventsByTag(spec, fromOffset);
|
|
90
|
+
}
|
|
91
|
+
async ensureSingleTagStmts() {
|
|
92
|
+
if (this.cachedSingleTag)
|
|
93
|
+
return this.cachedSingleTag;
|
|
94
|
+
const { db, eventsTable, tagsTable } = await this.openInternals();
|
|
95
|
+
this.cachedSingleTag = {
|
|
96
|
+
fetchByTag: db.prepare(
|
|
97
|
+
// Walk the tags-table PK range for the given tag, JOIN to
|
|
98
|
+
// events to fetch payload + CSV tags column. ORDER matches
|
|
99
|
+
// the index PK so SQLite doesn't have to sort separately.
|
|
100
|
+
`SELECT e.persistence_id, e.sequence_nr, e.payload, e.tags, e.timestamp
|
|
101
|
+
FROM ${tagsTable} t
|
|
102
|
+
JOIN ${eventsTable} e
|
|
103
|
+
ON e.persistence_id = t.persistence_id AND e.sequence_nr = t.sequence_nr
|
|
104
|
+
WHERE t.tag = ? AND t.timestamp >= ?
|
|
105
|
+
ORDER BY t.timestamp ASC, t.persistence_id ASC, t.sequence_nr ASC`),
|
|
106
|
+
};
|
|
107
|
+
return this.cachedSingleTag;
|
|
108
|
+
}
|
|
109
|
+
async ensureAnyStmts(arity) {
|
|
110
|
+
const cached = this.cachedAnyByArity.get(arity);
|
|
111
|
+
if (cached)
|
|
112
|
+
return cached;
|
|
113
|
+
const { db, eventsTable, tagsTable } = await this.openInternals();
|
|
114
|
+
const placeholders = new Array(arity).fill('?').join(', ');
|
|
115
|
+
const stmts = {
|
|
116
|
+
fetchByAny: db.prepare(
|
|
117
|
+
// DISTINCT collapses an event that matches multiple `any`
|
|
118
|
+
// tags into a single row. ORDER follows the same composite
|
|
119
|
+
// key so the JS-side refinement keeps the global ordering.
|
|
120
|
+
`SELECT DISTINCT e.persistence_id, e.sequence_nr, e.payload, e.tags, e.timestamp
|
|
121
|
+
FROM ${tagsTable} t
|
|
122
|
+
JOIN ${eventsTable} e
|
|
123
|
+
ON e.persistence_id = t.persistence_id AND e.sequence_nr = t.sequence_nr
|
|
124
|
+
WHERE t.tag IN (${placeholders}) AND t.timestamp >= ?
|
|
125
|
+
ORDER BY e.timestamp ASC, e.persistence_id ASC, e.sequence_nr ASC`),
|
|
126
|
+
};
|
|
127
|
+
this.cachedAnyByArity.set(arity, stmts);
|
|
128
|
+
return stmts;
|
|
129
|
+
}
|
|
130
|
+
async openInternals() {
|
|
131
|
+
// Force the journal to open + create its tables so we can prepare.
|
|
132
|
+
await this.sqlite.persistenceIds();
|
|
133
|
+
const internal = this.sqlite;
|
|
134
|
+
if (!internal.db) {
|
|
135
|
+
throw new JournalError('SqliteQuery: underlying SqliteJournal is not open');
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
db: internal.db,
|
|
139
|
+
eventsTable: internal.table,
|
|
140
|
+
tagsTable: `${internal.table}_tags`,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Translate driver rows into `TaggedEvent`s, JS-refine against the
|
|
146
|
+
* full filter (the SQL only saw the pre-filter strategy), and sort.
|
|
147
|
+
* Shared by both the all-pre-filter and any-pre-filter paths.
|
|
148
|
+
*/
|
|
149
|
+
function refineAndSort(rows, spec, fromOffset) {
|
|
150
|
+
const out = [];
|
|
151
|
+
for (const r of rows) {
|
|
152
|
+
const tags = r.tags ? r.tags.split(',') : undefined;
|
|
153
|
+
if (!eventMatchesTagFilter(tags, spec))
|
|
154
|
+
continue;
|
|
155
|
+
const event = {
|
|
156
|
+
persistenceId: r.persistence_id,
|
|
157
|
+
sequenceNr: r.sequence_nr,
|
|
158
|
+
event: JSON.parse(r.payload),
|
|
159
|
+
timestamp: r.timestamp,
|
|
160
|
+
tags,
|
|
161
|
+
};
|
|
162
|
+
// The SQL `timestamp >= ?` filter is a coarse cut, but the
|
|
163
|
+
// (persistence_id, sequence_nr) tiebreakers in `Offset` mean
|
|
164
|
+
// we still need a precise compare per row.
|
|
165
|
+
const offset = offsetOfEvent(event);
|
|
166
|
+
if (offsetCompare(offset, fromOffset) < 0)
|
|
167
|
+
continue;
|
|
168
|
+
out.push({ event, offset });
|
|
169
|
+
}
|
|
170
|
+
out.sort((a, b) => offsetCompare(a.offset, b.offset));
|
|
171
|
+
return out;
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=SqliteQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SqliteQuery.js","sourceRoot":"","sources":["../../../src/persistence/query/SqliteQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { ReplicaId } from '../../crdt/Crdt.js';
|
|
2
|
+
import type { VectorClock } from './VectorClock.js';
|
|
3
|
+
/**
|
|
4
|
+
* Resolution strategy for two events that {@link VectorClock} flags
|
|
5
|
+
* as concurrent — neither happens-before the other. The replicated-
|
|
6
|
+
* event-sourced actor consults this when merging divergent histories
|
|
7
|
+
* so every replica converges to the same state.
|
|
8
|
+
*
|
|
9
|
+
* Two contracts:
|
|
10
|
+
* - The resolver is deterministic for a given `(a, b)` pair —
|
|
11
|
+
* given the same inputs, every replica must pick the same
|
|
12
|
+
* winner / merge result.
|
|
13
|
+
* - The resolver MUST be commutative: `resolve(a, b) === resolve(b, a)`.
|
|
14
|
+
* Otherwise different replicas would diverge based on which
|
|
15
|
+
* event arrived first.
|
|
16
|
+
*
|
|
17
|
+
* The simplest deterministic resolver is **last-writer-wins** (LWW)
|
|
18
|
+
* keyed on `(timestamp, replicaId)` — that's what we ship as the
|
|
19
|
+
* default. Domain-aware resolvers can do something smarter
|
|
20
|
+
* (e.g. additive merge for counters, set union for tag sets).
|
|
21
|
+
*/
|
|
22
|
+
export interface ConflictResolver<E> {
|
|
23
|
+
/**
|
|
24
|
+
* Pick a single event from a concurrent pair. Implementations
|
|
25
|
+
* MUST be commutative — `resolve(a, b)` must equal `resolve(b, a)`.
|
|
26
|
+
* Return one of the inputs, or a synthesised merge of both —
|
|
27
|
+
* either is fine as long as the result is deterministic across
|
|
28
|
+
* replicas.
|
|
29
|
+
*/
|
|
30
|
+
resolve(a: ConflictCandidate<E>, b: ConflictCandidate<E>): E;
|
|
31
|
+
}
|
|
32
|
+
/** Event paired with the metadata a resolver needs to break ties. */
|
|
33
|
+
export interface ConflictCandidate<E> {
|
|
34
|
+
/** The user-domain event payload. */
|
|
35
|
+
readonly event: E;
|
|
36
|
+
/** Wall-clock timestamp at the originating replica. */
|
|
37
|
+
readonly timestamp: number;
|
|
38
|
+
/** Originating replica id (typically `cluster.selfAddress.toString()`). */
|
|
39
|
+
readonly replica: ReplicaId;
|
|
40
|
+
/** Vector clock at persist time. */
|
|
41
|
+
readonly vc: VectorClock;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Last-writer-wins on `(timestamp, replicaId)`. Higher timestamp
|
|
45
|
+
* wins; on ties the higher (lexicographic) replicaId wins so every
|
|
46
|
+
* replica converges deterministically.
|
|
47
|
+
*
|
|
48
|
+
* Caveat: relies on wall-clock timestamps being roughly comparable
|
|
49
|
+
* across replicas. Same trade-off as `LWWRegister`.
|
|
50
|
+
*/
|
|
51
|
+
export declare class LastWriterWinsResolver<E> implements ConflictResolver<E> {
|
|
52
|
+
resolve(a: ConflictCandidate<E>, b: ConflictCandidate<E>): E;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Wraps a user-provided commutative merge function. Use this when
|
|
56
|
+
* you have domain knowledge that LWW doesn't capture — e.g. the
|
|
57
|
+
* conflicting events are both "deposit X" and you can simply add
|
|
58
|
+
* the amounts.
|
|
59
|
+
*
|
|
60
|
+
* new CustomMergeResolver<Event>((a, b) => ({
|
|
61
|
+
* kind: 'merged',
|
|
62
|
+
* amount: a.event.amount + b.event.amount,
|
|
63
|
+
* }));
|
|
64
|
+
*/
|
|
65
|
+
export declare class CustomMergeResolver<E> implements ConflictResolver<E> {
|
|
66
|
+
private readonly merge;
|
|
67
|
+
constructor(merge: (a: E, b: E) => E);
|
|
68
|
+
resolve(a: ConflictCandidate<E>, b: ConflictCandidate<E>): E;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=ConflictResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConflictResolver.d.ts","sourceRoot":"","sources":["../../../src/persistence/replicated/ConflictResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CAC9D;AAED,qEAAqE;AACrE,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,uDAAuD;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,oCAAoC;IACpC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;CAC1B;AAID;;;;;;;GAOG;AACH,qBAAa,sBAAsB,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC;CAM7D;AAID;;;;;;;;;;GAUG;AACH,qBAAa,mBAAmB,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACrD,OAAO,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC;CAS7D"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/* ============================== built-in: LWW ============================ */
|
|
2
|
+
/**
|
|
3
|
+
* Last-writer-wins on `(timestamp, replicaId)`. Higher timestamp
|
|
4
|
+
* wins; on ties the higher (lexicographic) replicaId wins so every
|
|
5
|
+
* replica converges deterministically.
|
|
6
|
+
*
|
|
7
|
+
* Caveat: relies on wall-clock timestamps being roughly comparable
|
|
8
|
+
* across replicas. Same trade-off as `LWWRegister`.
|
|
9
|
+
*/
|
|
10
|
+
export class LastWriterWinsResolver {
|
|
11
|
+
resolve(a, b) {
|
|
12
|
+
if (a.timestamp > b.timestamp)
|
|
13
|
+
return a.event;
|
|
14
|
+
if (b.timestamp > a.timestamp)
|
|
15
|
+
return b.event;
|
|
16
|
+
// Tie on timestamp — break by replica id.
|
|
17
|
+
return a.replica > b.replica ? a.event : b.event;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/* ============================== built-in: Custom ======================== */
|
|
21
|
+
/**
|
|
22
|
+
* Wraps a user-provided commutative merge function. Use this when
|
|
23
|
+
* you have domain knowledge that LWW doesn't capture — e.g. the
|
|
24
|
+
* conflicting events are both "deposit X" and you can simply add
|
|
25
|
+
* the amounts.
|
|
26
|
+
*
|
|
27
|
+
* new CustomMergeResolver<Event>((a, b) => ({
|
|
28
|
+
* kind: 'merged',
|
|
29
|
+
* amount: a.event.amount + b.event.amount,
|
|
30
|
+
* }));
|
|
31
|
+
*/
|
|
32
|
+
export class CustomMergeResolver {
|
|
33
|
+
merge;
|
|
34
|
+
constructor(merge) {
|
|
35
|
+
this.merge = merge;
|
|
36
|
+
}
|
|
37
|
+
resolve(a, b) {
|
|
38
|
+
// We sort the two candidates by replica id so the user's merge
|
|
39
|
+
// function gets a deterministic argument order even if it isn't
|
|
40
|
+
// strictly commutative. The contract still says "be
|
|
41
|
+
// commutative", but this guards the common case where the user
|
|
42
|
+
// accidentally wrote a `(left, right)`-asymmetric merge.
|
|
43
|
+
const [first, second] = a.replica <= b.replica ? [a, b] : [b, a];
|
|
44
|
+
return this.merge(first.event, second.event);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=ConflictResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConflictResolver.js","sourceRoot":"","sources":["../../../src/persistence/replicated/ConflictResolver.ts"],"names":[],"mappings":"AA6CA,+EAA+E;AAE/E;;;;;;;GAOG;AACH,MAAM,OAAO,sBAAsB;IACjC,OAAO,CAAC,CAAuB,EAAE,CAAuB;QACtD,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC,KAAK,CAAC;QAC9C,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC,KAAK,CAAC;QAC9C,0CAA0C;QAC1C,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACnD,CAAC;CACF;AAED,8EAA8E;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;IAAG,CAAC;IACzD,OAAO,CAAC,CAAuB,EAAE,CAAuB;QACtD,+DAA+D;QAC/D,gEAAgE;QAChE,qDAAqD;QACrD,+DAA+D;QAC/D,yDAAyD;QACzD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;CACF"}
|