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,172 @@
|
|
|
1
|
+
import { JournalError } from '../JournalTypes.js';
|
|
2
|
+
import { encodeBody, decodeBody } from '../object-storage/BodyCodec.js';
|
|
3
|
+
import { activeEncryptKey, isVersionedKeyShape, resolveDecryptSubkey, } from '../object-storage/Encryption.js';
|
|
4
|
+
import { resolveCompression, resolveEncryption } from '../object-storage/PluginConfig.js';
|
|
5
|
+
import { none, some } from '../../util/Option.js';
|
|
6
|
+
/** Sequence-number padding — matches `Number.MAX_SAFE_INTEGER`'s 16 digits with headroom. */
|
|
7
|
+
const SEQ_PADDING = 20;
|
|
8
|
+
const utf8 = new TextEncoder();
|
|
9
|
+
const utf8Decoder = new TextDecoder();
|
|
10
|
+
/**
|
|
11
|
+
* SnapshotStore backed by any `ObjectStorageBackend`. Each snapshot
|
|
12
|
+
* lands at `<prefix><pid>/<seq.padStart(20,'0')>.json` — the padding
|
|
13
|
+
* scheme is what makes `loadLatest` cheap (single LIST with `limit:1`
|
|
14
|
+
* and reverse iteration over the sorted result).
|
|
15
|
+
*
|
|
16
|
+
* `keepN`-based pruning runs after every successful save; older
|
|
17
|
+
* snapshots are deleted in a best-effort post-pass. A failed prune
|
|
18
|
+
* does not fail the save — the next save retries.
|
|
19
|
+
*/
|
|
20
|
+
export class ObjectStorageSnapshotStore {
|
|
21
|
+
backend;
|
|
22
|
+
prefix;
|
|
23
|
+
keepN;
|
|
24
|
+
compression;
|
|
25
|
+
encryption;
|
|
26
|
+
constructor(opts) {
|
|
27
|
+
this.backend = opts.backend;
|
|
28
|
+
this.prefix = opts.prefix ?? '';
|
|
29
|
+
this.keepN = opts.keepN ?? 3;
|
|
30
|
+
this.compression = opts.compression;
|
|
31
|
+
this.encryption = opts.encryption;
|
|
32
|
+
}
|
|
33
|
+
async save(pid, seq, state, options) {
|
|
34
|
+
if (!Number.isFinite(seq) || seq < 0) {
|
|
35
|
+
throw new JournalError(`SnapshotStore.save: invalid sequence ${seq}`);
|
|
36
|
+
}
|
|
37
|
+
// Per-call options (from the actor) take precedence over the
|
|
38
|
+
// plugin-level resolver / default. An actor that sets nothing falls
|
|
39
|
+
// through to the plugin config; an actor that sets compression but
|
|
40
|
+
// not encryption only overrides compression.
|
|
41
|
+
const compression = options?.compression
|
|
42
|
+
?? resolveCompression(this.compression, pid, { algorithm: 'gzip' });
|
|
43
|
+
const encryption = options?.encryption
|
|
44
|
+
?? resolveEncryption(this.encryption, pid, { mode: 'none' });
|
|
45
|
+
const now = Date.now();
|
|
46
|
+
const json = JSON.stringify({ persistenceId: pid, sequenceNr: seq, state, timestamp: now });
|
|
47
|
+
let body;
|
|
48
|
+
try {
|
|
49
|
+
const active = await activeEncryptKey(encryption, pid);
|
|
50
|
+
// Only stamp a key version on the wire when the user opted into
|
|
51
|
+
// the keyring shape; the legacy single-key path stays backwards-
|
|
52
|
+
// compatible with bodies written before #8 landed.
|
|
53
|
+
const stampVersion = active && isVersionedKeyShape(encryption);
|
|
54
|
+
body = await encodeBody(utf8.encode(json), {
|
|
55
|
+
compression: compression.algorithm,
|
|
56
|
+
encryption: active
|
|
57
|
+
? {
|
|
58
|
+
subKey: active.subKey,
|
|
59
|
+
...(stampVersion ? { keyVersion: active.keyVersion } : {}),
|
|
60
|
+
}
|
|
61
|
+
: undefined,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
throw new JournalError(`ObjectStorageSnapshotStore.save: encode failed for ${pid}@${seq}: ${e.message}`, e);
|
|
66
|
+
}
|
|
67
|
+
const key = this.snapshotKey(pid, seq);
|
|
68
|
+
try {
|
|
69
|
+
await this.backend.put(key, body, {
|
|
70
|
+
contentType: 'application/json',
|
|
71
|
+
contentEncoding: compression.algorithm === 'none' ? undefined : compression.algorithm,
|
|
72
|
+
sse: encryption.mode === 'sse-s3' ? 'AES256'
|
|
73
|
+
: encryption.mode === 'sse-kms' ? { kmsKeyId: encryption.kmsKeyId }
|
|
74
|
+
: undefined,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
throw new JournalError(`ObjectStorageSnapshotStore.save: backend put failed for ${pid}@${seq}: ${e.message}`, e);
|
|
79
|
+
}
|
|
80
|
+
// Best-effort prune. Failures here MUST NOT fail the save.
|
|
81
|
+
if (this.keepN > 0) {
|
|
82
|
+
try {
|
|
83
|
+
await this.pruneToKeepN(pid);
|
|
84
|
+
}
|
|
85
|
+
catch { /* swallow */ }
|
|
86
|
+
}
|
|
87
|
+
return { persistenceId: pid, sequenceNr: seq, state, timestamp: now };
|
|
88
|
+
}
|
|
89
|
+
async loadLatest(pid, options) {
|
|
90
|
+
const items = await this.backend.list({ prefix: this.pidPrefix(pid) });
|
|
91
|
+
if (items.length === 0)
|
|
92
|
+
return none;
|
|
93
|
+
// Keys are sorted ascending; we want the highest seq.
|
|
94
|
+
const latest = items[items.length - 1];
|
|
95
|
+
return this.fetchSnapshot(pid, latest.key, options);
|
|
96
|
+
}
|
|
97
|
+
async loadBefore(pid, seq, options) {
|
|
98
|
+
const items = await this.backend.list({ prefix: this.pidPrefix(pid) });
|
|
99
|
+
// Find the highest seq strictly less than the requested one.
|
|
100
|
+
let chosen = null;
|
|
101
|
+
for (const it of items) {
|
|
102
|
+
const s = parseSeqFromKey(it.key);
|
|
103
|
+
if (s !== null && s < seq)
|
|
104
|
+
chosen = it.key;
|
|
105
|
+
else if (s !== null && s >= seq)
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
if (!chosen)
|
|
109
|
+
return none;
|
|
110
|
+
return this.fetchSnapshot(pid, chosen, options);
|
|
111
|
+
}
|
|
112
|
+
async delete(pid, toSeq) {
|
|
113
|
+
const items = await this.backend.list({ prefix: this.pidPrefix(pid) });
|
|
114
|
+
for (const it of items) {
|
|
115
|
+
const s = parseSeqFromKey(it.key);
|
|
116
|
+
if (s !== null && s <= toSeq)
|
|
117
|
+
await this.backend.delete(it.key);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
async close() {
|
|
121
|
+
await this.backend.close?.();
|
|
122
|
+
}
|
|
123
|
+
/* ----------------------------- internals ------------------------------ */
|
|
124
|
+
snapshotKey(pid, seq) {
|
|
125
|
+
return `${this.pidPrefix(pid)}${String(seq).padStart(SEQ_PADDING, '0')}.json`;
|
|
126
|
+
}
|
|
127
|
+
pidPrefix(pid) {
|
|
128
|
+
return `${this.prefix}${pid}/`;
|
|
129
|
+
}
|
|
130
|
+
async fetchSnapshot(pid, key, options) {
|
|
131
|
+
const fetched = await this.backend.get(key);
|
|
132
|
+
if (fetched.isNone())
|
|
133
|
+
return none;
|
|
134
|
+
// Per-call encryption (from the actor) wins over plugin defaults — same
|
|
135
|
+
// precedence order as the write path.
|
|
136
|
+
const encryption = options?.encryption
|
|
137
|
+
?? resolveEncryption(this.encryption, pid, { mode: 'none' });
|
|
138
|
+
const subKeyFor = resolveDecryptSubkey(encryption, pid);
|
|
139
|
+
const decoded = await decodeBody(fetched.value.body, subKeyFor ? { encryption: { subKeyFor } } : undefined);
|
|
140
|
+
const json = utf8Decoder.decode(decoded.payload);
|
|
141
|
+
let parsed;
|
|
142
|
+
try {
|
|
143
|
+
parsed = JSON.parse(json);
|
|
144
|
+
}
|
|
145
|
+
catch (e) {
|
|
146
|
+
throw new JournalError(`ObjectStorageSnapshotStore: malformed JSON at key ${key}`, e);
|
|
147
|
+
}
|
|
148
|
+
return some({
|
|
149
|
+
persistenceId: parsed.persistenceId,
|
|
150
|
+
sequenceNr: parsed.sequenceNr,
|
|
151
|
+
state: parsed.state,
|
|
152
|
+
timestamp: parsed.timestamp,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
async pruneToKeepN(pid) {
|
|
156
|
+
const items = await this.backend.list({ prefix: this.pidPrefix(pid) });
|
|
157
|
+
if (items.length <= this.keepN)
|
|
158
|
+
return;
|
|
159
|
+
const toDelete = items.slice(0, items.length - this.keepN);
|
|
160
|
+
for (const it of toDelete)
|
|
161
|
+
await this.backend.delete(it.key);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
function parseSeqFromKey(key) {
|
|
165
|
+
// Expected suffix: '<seq.padStart(20,'0')>.json'
|
|
166
|
+
const m = /(\d{1,20})\.json$/.exec(key);
|
|
167
|
+
if (!m)
|
|
168
|
+
return null;
|
|
169
|
+
const n = Number(m[1]);
|
|
170
|
+
return Number.isFinite(n) ? n : null;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=ObjectStorageSnapshotStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectStorageSnapshotStore.js","sourceRoot":"","sources":["../../../src/persistence/snapshot-stores/ObjectStorageSnapshotStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiB,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AAOzC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAI1F,OAAO,EAAE,IAAI,EAAE,IAAI,EAAe,MAAM,sBAAsB,CAAC;AAE/D,6FAA6F;AAC7F,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;AAC/B,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAetC;;;;;;;;;GASG;AACH,MAAM,OAAO,0BAA0B;IACpB,OAAO,CAAuB;IAC9B,MAAM,CAAS;IACf,KAAK,CAAS;IACd,WAAW,CAAsD;IACjE,UAAU,CAAoD;IAE/E,YAAY,IAAuC;QACjD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,IAAI,CACR,GAAW,EACX,GAAW,EACX,KAAQ,EACR,OAA4B;QAE5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,YAAY,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,6DAA6D;QAC7D,qEAAqE;QACrE,mEAAmE;QACnE,6CAA6C;QAC7C,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW;eACnC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU;eACjC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAE/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5F,IAAI,IAAgB,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YACvD,gEAAgE;YAChE,iEAAiE;YACjE,mDAAmD;YACnD,MAAM,YAAY,GAAG,MAAM,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAC/D,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBACzC,WAAW,EAAE,WAAW,CAAC,SAAS;gBAClC,UAAU,EAAE,MAAM;oBAChB,CAAC,CAAC;wBACE,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC3D;oBACH,CAAC,CAAC,SAAS;aACd,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,YAAY,CAAC,sDAAsD,GAAG,IAAI,GAAG,KAAM,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACzH,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE;gBAChC,WAAW,EAAE,kBAAkB;gBAC/B,eAAe,EAAE,WAAW,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS;gBACrF,GAAG,EAAE,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ;oBACzC,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE;wBACnE,CAAC,CAAC,SAAS;aACf,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,YAAY,CAAC,2DAA2D,GAAG,IAAI,GAAG,KAAM,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9H,CAAC;QAED,4DAA4D;QAC5D,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,UAAU,CAAI,GAAW,EAAE,OAA4B;QAC3D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,sDAAsD;QACtD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QACxC,OAAO,IAAI,CAAC,aAAa,CAAI,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,UAAU,CAAI,GAAW,EAAE,GAAW,EAAE,OAA4B;QACxE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvE,6DAA6D;QAC7D,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,GAAG;gBAAE,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC;iBACtC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,GAAG;gBAAE,MAAM;QACzC,CAAC;QACD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC,aAAa,CAAI,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,KAAa;QACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvE,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK;gBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IAC/B,CAAC;IAED,4EAA4E;IAEpE,WAAW,CAAC,GAAW,EAAE,GAAW;QAC1C,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC;IAChF,CAAC;IAEO,SAAS,CAAC,GAAW;QAC3B,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,GAAW,EACX,GAAW,EACX,OAA4B;QAE5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,MAAM,EAAE;YAAE,OAAO,IAAI,CAAC;QAClC,wEAAwE;QACxE,sCAAsC;QACtC,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU;eACjC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,oBAAoB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,UAAU,CAC9B,OAAO,CAAC,KAAK,CAAC,IAAI,EAClB,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CACtD,CAAC;QACF,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,MAAkF,CAAC;QACvF,IAAI,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAClC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,YAAY,CAAC,qDAAqD,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,IAAI,CAAC;YACV,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,GAAW;QACpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvE,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,KAAK,MAAM,EAAE,IAAI,QAAQ;YAAE,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC;CACF;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,iDAAiD;IACjD,MAAM,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type SqliteDriver } from '../../runtime/sqlite/index.js';
|
|
2
|
+
import { type Snapshot } from '../JournalTypes.js';
|
|
3
|
+
import type { PersistenceOptions } from '../PersistenceOptions.js';
|
|
4
|
+
import type { SnapshotStore } from '../SnapshotStore.js';
|
|
5
|
+
import { type Option } from '../../util/Option.js';
|
|
6
|
+
export interface SqliteSnapshotStoreOptions {
|
|
7
|
+
/** Path or ":memory:". Defaults to ":memory:". */
|
|
8
|
+
readonly path?: string;
|
|
9
|
+
/** Table name; default `snapshots`. */
|
|
10
|
+
readonly snapshotsTable?: string;
|
|
11
|
+
/** Maximum snapshots retained per persistenceId. Older ones are pruned on save. */
|
|
12
|
+
readonly keepN?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Explicit driver — useful for tests or when you want to pin a
|
|
15
|
+
* specific SQLite backend. Default: auto-detect via `getSqliteDriver()`.
|
|
16
|
+
*/
|
|
17
|
+
readonly driver?: SqliteDriver;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* SQLite-backed SnapshotStore — JSON payloads, single table, prune-on-save.
|
|
21
|
+
* Works on Bun (`bun:sqlite`) and Node.js (`better-sqlite3`) via the
|
|
22
|
+
* `SqliteDriver` abstraction. Construction is lazy (same pattern as
|
|
23
|
+
* `SqliteJournal`): the DB is opened on the first save / load call.
|
|
24
|
+
*/
|
|
25
|
+
export declare class SqliteSnapshotStore implements SnapshotStore {
|
|
26
|
+
private readonly options;
|
|
27
|
+
private readonly table;
|
|
28
|
+
private readonly keepN;
|
|
29
|
+
private closed;
|
|
30
|
+
private db;
|
|
31
|
+
private stmts;
|
|
32
|
+
private initPromise;
|
|
33
|
+
constructor(options?: SqliteSnapshotStoreOptions);
|
|
34
|
+
save<S>(pid: string, seq: number, state: S, _options?: PersistenceOptions): Promise<Snapshot<S>>;
|
|
35
|
+
loadLatest<S>(pid: string, _options?: PersistenceOptions): Promise<Option<Snapshot<S>>>;
|
|
36
|
+
loadBefore<S>(pid: string, seq: number, _options?: PersistenceOptions): Promise<Option<Snapshot<S>>>;
|
|
37
|
+
delete(pid: string, toSeq: number): Promise<void>;
|
|
38
|
+
close(): Promise<void>;
|
|
39
|
+
private ensureOpen;
|
|
40
|
+
private init;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=SqliteSnapshotStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SqliteSnapshotStore.d.ts","sourceRoot":"","sources":["../../../src/persistence/snapshot-stores/SqliteSnapshotStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,YAAY,EAAwB,MAAM,+BAA+B,CAAC;AACxH,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,WAAW,0BAA0B;IACzC,kDAAkD;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,oFAAoF;IACpF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAUD;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,WAAW,CAA8B;gBAErC,OAAO,GAAE,0BAA+B;IAM9C,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAgBhG,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAiBvF,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAiBpG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAQd,UAAU;YAOV,IAAI;CA+BnB"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { getSqliteDriver } from '../../runtime/sqlite/index.js';
|
|
2
|
+
import { JournalError } from '../JournalTypes.js';
|
|
3
|
+
import { none, some } from '../../util/Option.js';
|
|
4
|
+
/**
|
|
5
|
+
* SQLite-backed SnapshotStore — JSON payloads, single table, prune-on-save.
|
|
6
|
+
* Works on Bun (`bun:sqlite`) and Node.js (`better-sqlite3`) via the
|
|
7
|
+
* `SqliteDriver` abstraction. Construction is lazy (same pattern as
|
|
8
|
+
* `SqliteJournal`): the DB is opened on the first save / load call.
|
|
9
|
+
*/
|
|
10
|
+
export class SqliteSnapshotStore {
|
|
11
|
+
options;
|
|
12
|
+
table;
|
|
13
|
+
keepN;
|
|
14
|
+
closed = false;
|
|
15
|
+
db = null;
|
|
16
|
+
stmts = null;
|
|
17
|
+
initPromise = null;
|
|
18
|
+
constructor(options = {}) {
|
|
19
|
+
this.options = options;
|
|
20
|
+
this.table = options.snapshotsTable ?? 'snapshots';
|
|
21
|
+
this.keepN = options.keepN ?? 3;
|
|
22
|
+
}
|
|
23
|
+
async save(pid, seq, state, _options) {
|
|
24
|
+
// SQLite store has no compression / encryption — options ignored.
|
|
25
|
+
await this.ensureOpen();
|
|
26
|
+
const stmts = this.stmts;
|
|
27
|
+
const now = Date.now();
|
|
28
|
+
try {
|
|
29
|
+
stmts.insert.run(pid, seq, JSON.stringify(state), now);
|
|
30
|
+
if (this.keepN > 0) {
|
|
31
|
+
stmts.deleteOlderThan.run(pid, pid, this.keepN);
|
|
32
|
+
}
|
|
33
|
+
return { persistenceId: pid, sequenceNr: seq, state, timestamp: now };
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
throw new JournalError(`SqliteSnapshotStore.save failed: ${e.message}`, e);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async loadLatest(pid, _options) {
|
|
40
|
+
await this.ensureOpen();
|
|
41
|
+
const row = this.stmts.latest.get(pid);
|
|
42
|
+
if (!row)
|
|
43
|
+
return none;
|
|
44
|
+
return some({
|
|
45
|
+
persistenceId: row.persistence_id,
|
|
46
|
+
sequenceNr: row.sequence_nr,
|
|
47
|
+
state: JSON.parse(row.payload),
|
|
48
|
+
timestamp: row.timestamp,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
async loadBefore(pid, seq, _options) {
|
|
52
|
+
await this.ensureOpen();
|
|
53
|
+
const row = this.stmts.before.get(pid, seq);
|
|
54
|
+
if (!row)
|
|
55
|
+
return none;
|
|
56
|
+
return some({
|
|
57
|
+
persistenceId: row.persistence_id,
|
|
58
|
+
sequenceNr: row.sequence_nr,
|
|
59
|
+
state: JSON.parse(row.payload),
|
|
60
|
+
timestamp: row.timestamp,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
async delete(pid, toSeq) {
|
|
64
|
+
await this.ensureOpen();
|
|
65
|
+
this.stmts.deleteUpTo.run(pid, toSeq);
|
|
66
|
+
}
|
|
67
|
+
async close() {
|
|
68
|
+
if (this.closed)
|
|
69
|
+
return;
|
|
70
|
+
this.closed = true;
|
|
71
|
+
try {
|
|
72
|
+
this.db?.close();
|
|
73
|
+
}
|
|
74
|
+
catch { /* ignore */ }
|
|
75
|
+
}
|
|
76
|
+
/* --------------------------- internals -------------------------------- */
|
|
77
|
+
async ensureOpen() {
|
|
78
|
+
if (this.closed)
|
|
79
|
+
throw new JournalError('SqliteSnapshotStore is closed');
|
|
80
|
+
if (this.db && this.stmts)
|
|
81
|
+
return;
|
|
82
|
+
if (!this.initPromise)
|
|
83
|
+
this.initPromise = this.init();
|
|
84
|
+
await this.initPromise;
|
|
85
|
+
}
|
|
86
|
+
async init() {
|
|
87
|
+
const driver = this.options.driver ?? await getSqliteDriver();
|
|
88
|
+
const db = driver.open(this.options.path ?? ':memory:');
|
|
89
|
+
db.exec(`
|
|
90
|
+
CREATE TABLE IF NOT EXISTS ${this.table} (
|
|
91
|
+
persistence_id TEXT NOT NULL,
|
|
92
|
+
sequence_nr INTEGER NOT NULL,
|
|
93
|
+
payload TEXT NOT NULL,
|
|
94
|
+
timestamp INTEGER NOT NULL,
|
|
95
|
+
PRIMARY KEY (persistence_id, sequence_nr)
|
|
96
|
+
);
|
|
97
|
+
`);
|
|
98
|
+
this.stmts = {
|
|
99
|
+
insert: db.prepare(`INSERT OR REPLACE INTO ${this.table}(persistence_id, sequence_nr, payload, timestamp) VALUES (?, ?, ?, ?)`),
|
|
100
|
+
latest: db.prepare(`SELECT persistence_id, sequence_nr, payload, timestamp FROM ${this.table} WHERE persistence_id = ? ORDER BY sequence_nr DESC LIMIT 1`),
|
|
101
|
+
before: db.prepare(`SELECT persistence_id, sequence_nr, payload, timestamp FROM ${this.table} WHERE persistence_id = ? AND sequence_nr < ? ORDER BY sequence_nr DESC LIMIT 1`),
|
|
102
|
+
deleteUpTo: db.prepare(`DELETE FROM ${this.table} WHERE persistence_id = ? AND sequence_nr <= ?`),
|
|
103
|
+
deleteOlderThan: db.prepare(`DELETE FROM ${this.table} WHERE persistence_id = ? AND sequence_nr NOT IN (SELECT sequence_nr FROM ${this.table} WHERE persistence_id = ? ORDER BY sequence_nr DESC LIMIT ?)`),
|
|
104
|
+
};
|
|
105
|
+
this.db = db;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=SqliteSnapshotStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SqliteSnapshotStore.js","sourceRoot":"","sources":["../../../src/persistence/snapshot-stores/SqliteSnapshotStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared factory for backend-specific key-validation functions.
|
|
3
|
+
*
|
|
4
|
+
* Storage and cache backends each have slightly different rules for
|
|
5
|
+
* what makes a "safe" key — Memcached forbids whitespace because of
|
|
6
|
+
* its text protocol, the filesystem forbids `..` segments because of
|
|
7
|
+
* path traversal, S3 has its own constraints, and so on. Before
|
|
8
|
+
* this module existed, each backend had a hand-rolled
|
|
9
|
+
* `assertSafeXxxKey` function with subtle drift between sites.
|
|
10
|
+
*
|
|
11
|
+
* `makeKeyValidator(rules)` materialises a `(key: string) => void`
|
|
12
|
+
* validator from a declarative `KeyValidationRules` object. The
|
|
13
|
+
* rules cover the union of all checks any current backend cares
|
|
14
|
+
* about; individual backends select the rules that apply to them
|
|
15
|
+
* via the pre-defined `*KeyRules` constants below.
|
|
16
|
+
*
|
|
17
|
+
* Adding a new backend (S3, GCS, …): create a new `XxxKeyRules`
|
|
18
|
+
* constant, instantiate the validator via `makeKeyValidator`, call
|
|
19
|
+
* it on every key the backend touches. No bespoke validator code
|
|
20
|
+
* needed.
|
|
21
|
+
*
|
|
22
|
+
* **Security-critical**: this module is the front-line for path-
|
|
23
|
+
* traversal and protocol-injection defences. Changes to the rules
|
|
24
|
+
* must preserve every rejected-input the pre-refactor validators
|
|
25
|
+
* caught. Adversarial test cases live alongside each backend.
|
|
26
|
+
*/
|
|
27
|
+
export interface KeyValidationRules {
|
|
28
|
+
/** Error constructor used for every thrown rejection. */
|
|
29
|
+
readonly errorClass: new (msg: string) => Error;
|
|
30
|
+
/**
|
|
31
|
+
* Phrase prepended to every rejection message — typically the
|
|
32
|
+
* backend name ('memcached key', 'invalid key' for FS, etc.).
|
|
33
|
+
*/
|
|
34
|
+
readonly errorPrefix: string;
|
|
35
|
+
/** Minimum key length. Default: 1 (non-empty). */
|
|
36
|
+
readonly minLength?: number;
|
|
37
|
+
/** Maximum key length. Default: unbounded. */
|
|
38
|
+
readonly maxLength?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Reject NUL bytes (`\0`). C-level APIs treat NUL as terminator;
|
|
41
|
+
* letting it pass would let an attacker truncate keys. Default: true.
|
|
42
|
+
*/
|
|
43
|
+
readonly rejectNul?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Reject all ASCII control characters (0x00–0x1F, 0x7F).
|
|
46
|
+
* Memcached's text protocol uses these as command separators —
|
|
47
|
+
* passing one through is a protocol-injection vector. Default: false.
|
|
48
|
+
* (Implies `rejectNul` if set.)
|
|
49
|
+
*/
|
|
50
|
+
readonly rejectControlChars?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Reject the ASCII space character (0x20). Memcached treats space
|
|
53
|
+
* as a command delimiter. Default: false.
|
|
54
|
+
*/
|
|
55
|
+
readonly rejectSpace?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Reject keys that look like absolute paths. POSIX leading `/`,
|
|
58
|
+
* Windows leading `\\` or drive-letter (`C:\` / `C:/`). Required
|
|
59
|
+
* for filesystem keys — `path.join('/safe', '/etc/passwd')` returns
|
|
60
|
+
* `'/etc/passwd'`, defeating any root check. Default: false.
|
|
61
|
+
*/
|
|
62
|
+
readonly rejectAbsolutePaths?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Reject keys containing a `..` segment when split on path
|
|
65
|
+
* separators. Required for filesystem keys — `..` collapses up
|
|
66
|
+
* the tree on `path.resolve()`. Default: false.
|
|
67
|
+
*/
|
|
68
|
+
readonly rejectRelativeTraversal?: boolean;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Build a key-validator function from a rule set. Returns
|
|
72
|
+
* `(key: string) => void` that throws on rejected input.
|
|
73
|
+
*
|
|
74
|
+
* Validator semantics: short-circuits on the first failed rule.
|
|
75
|
+
* Order of checks: type/length → NUL → control chars → space →
|
|
76
|
+
* absolute path → traversal segments. Per-rule comments below
|
|
77
|
+
* document the precedence rationale.
|
|
78
|
+
*/
|
|
79
|
+
export declare function makeKeyValidator(rules: KeyValidationRules): (key: string) => void;
|
|
80
|
+
//# sourceMappingURL=KeyValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyValidator.d.ts","sourceRoot":"","sources":["../../../src/persistence/storage/KeyValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,QAAQ,CAAC,UAAU,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,KAAK,CAAC;IAChD;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAC5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAoEjF"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared factory for backend-specific key-validation functions.
|
|
3
|
+
*
|
|
4
|
+
* Storage and cache backends each have slightly different rules for
|
|
5
|
+
* what makes a "safe" key — Memcached forbids whitespace because of
|
|
6
|
+
* its text protocol, the filesystem forbids `..` segments because of
|
|
7
|
+
* path traversal, S3 has its own constraints, and so on. Before
|
|
8
|
+
* this module existed, each backend had a hand-rolled
|
|
9
|
+
* `assertSafeXxxKey` function with subtle drift between sites.
|
|
10
|
+
*
|
|
11
|
+
* `makeKeyValidator(rules)` materialises a `(key: string) => void`
|
|
12
|
+
* validator from a declarative `KeyValidationRules` object. The
|
|
13
|
+
* rules cover the union of all checks any current backend cares
|
|
14
|
+
* about; individual backends select the rules that apply to them
|
|
15
|
+
* via the pre-defined `*KeyRules` constants below.
|
|
16
|
+
*
|
|
17
|
+
* Adding a new backend (S3, GCS, …): create a new `XxxKeyRules`
|
|
18
|
+
* constant, instantiate the validator via `makeKeyValidator`, call
|
|
19
|
+
* it on every key the backend touches. No bespoke validator code
|
|
20
|
+
* needed.
|
|
21
|
+
*
|
|
22
|
+
* **Security-critical**: this module is the front-line for path-
|
|
23
|
+
* traversal and protocol-injection defences. Changes to the rules
|
|
24
|
+
* must preserve every rejected-input the pre-refactor validators
|
|
25
|
+
* caught. Adversarial test cases live alongside each backend.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Build a key-validator function from a rule set. Returns
|
|
29
|
+
* `(key: string) => void` that throws on rejected input.
|
|
30
|
+
*
|
|
31
|
+
* Validator semantics: short-circuits on the first failed rule.
|
|
32
|
+
* Order of checks: type/length → NUL → control chars → space →
|
|
33
|
+
* absolute path → traversal segments. Per-rule comments below
|
|
34
|
+
* document the precedence rationale.
|
|
35
|
+
*/
|
|
36
|
+
export function makeKeyValidator(rules) {
|
|
37
|
+
const { errorClass, errorPrefix, minLength = 1, maxLength, rejectNul = true, rejectControlChars = false, rejectSpace = false, rejectAbsolutePaths = false, rejectRelativeTraversal = false, } = rules;
|
|
38
|
+
return (key) => {
|
|
39
|
+
// Type + length first — every subsequent check assumes a non-empty
|
|
40
|
+
// string of the right type.
|
|
41
|
+
if (typeof key !== 'string' || key.length < minLength) {
|
|
42
|
+
throw new errorClass(`${errorPrefix}: must be a non-empty string`);
|
|
43
|
+
}
|
|
44
|
+
if (maxLength !== undefined && key.length > maxLength) {
|
|
45
|
+
throw new errorClass(`${errorPrefix}: exceeds ${maxLength}-byte limit (got ${key.length})`);
|
|
46
|
+
}
|
|
47
|
+
// Control chars cover NUL and more — Memcached protocol injection
|
|
48
|
+
// vector. Checked BEFORE the NUL-only check so the sharper
|
|
49
|
+
// "control character (charCode=N)" message wins when both rules
|
|
50
|
+
// are on (matches the pre-refactor MemcachedCache behaviour).
|
|
51
|
+
if (rejectControlChars) {
|
|
52
|
+
for (let i = 0; i < key.length; i++) {
|
|
53
|
+
const c = key.charCodeAt(i);
|
|
54
|
+
if (c <= 0x1F || c === 0x7F) {
|
|
55
|
+
throw new errorClass(`${errorPrefix}: contains control character at index ${i} ` +
|
|
56
|
+
`(charCode=${c}) — would allow protocol injection`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// NUL byte — handled when `rejectControlChars` is OFF (e.g. for
|
|
61
|
+
// filesystem keys, where we want to reject \0 but allow other
|
|
62
|
+
// control chars in legitimate filenames if any user code ever
|
|
63
|
+
// does that). Sharper error message than the generic
|
|
64
|
+
// control-char rule.
|
|
65
|
+
if (rejectNul && !rejectControlChars && key.includes('\0')) {
|
|
66
|
+
throw new errorClass(`${errorPrefix}: NUL byte not allowed`);
|
|
67
|
+
}
|
|
68
|
+
if (rejectSpace) {
|
|
69
|
+
const spaceIdx = key.indexOf(' ');
|
|
70
|
+
if (spaceIdx >= 0) {
|
|
71
|
+
throw new errorClass(`${errorPrefix}: contains space at index ${spaceIdx} — would allow protocol injection`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Absolute-path rejection — POSIX `/foo`, Windows `\foo`, drive-letter.
|
|
75
|
+
if (rejectAbsolutePaths && (key.startsWith('/') || key.startsWith('\\') || /^[a-zA-Z]:[\\/]/.test(key))) {
|
|
76
|
+
throw new errorClass(`${errorPrefix}: absolute paths not allowed (got ${key})`);
|
|
77
|
+
}
|
|
78
|
+
// Relative-traversal: split on either separator since FS code uses
|
|
79
|
+
// path.join which is platform-aware.
|
|
80
|
+
if (rejectRelativeTraversal) {
|
|
81
|
+
const segs = key.split(/[/\\]/);
|
|
82
|
+
if (segs.some((s) => s === '..')) {
|
|
83
|
+
throw new errorClass(`${errorPrefix}: path-traversal segments ("..") not allowed (got ${key})`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=KeyValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyValidator.js","sourceRoot":"","sources":["../../../src/persistence/storage/KeyValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AA8CH;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAyB;IACxD,MAAM,EACJ,UAAU,EACV,WAAW,EACX,SAAS,GAAG,CAAC,EACb,SAAS,EACT,SAAS,GAAG,IAAI,EAChB,kBAAkB,GAAG,KAAK,EAC1B,WAAW,GAAG,KAAK,EACnB,mBAAmB,GAAG,KAAK,EAC3B,uBAAuB,GAAG,KAAK,GAChC,GAAG,KAAK,CAAC;IAEV,OAAO,CAAC,GAAW,EAAQ,EAAE;QAC3B,mEAAmE;QACnE,4BAA4B;QAC5B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YACtD,MAAM,IAAI,UAAU,CAAC,GAAG,WAAW,8BAA8B,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YACtD,MAAM,IAAI,UAAU,CAAC,GAAG,WAAW,aAAa,SAAS,oBAAoB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9F,CAAC;QACD,kEAAkE;QAClE,4DAA4D;QAC5D,gEAAgE;QAChE,8DAA8D;QAC9D,IAAI,kBAAkB,EAAE,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC5B,MAAM,IAAI,UAAU,CAClB,GAAG,WAAW,yCAAyC,CAAC,GAAG;wBAC3D,aAAa,CAAC,oCAAoC,CACnD,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,gEAAgE;QAChE,8DAA8D;QAC9D,8DAA8D;QAC9D,sDAAsD;QACtD,qBAAqB;QACrB,IAAI,SAAS,IAAI,CAAC,kBAAkB,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,UAAU,CAAC,GAAG,WAAW,wBAAwB,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,UAAU,CAClB,GAAG,WAAW,6BAA6B,QAAQ,mCAAmC,CACvF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,wEAAwE;QACxE,IAAI,mBAAmB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACxG,MAAM,IAAI,UAAU,CAAC,GAAG,WAAW,qCAAqC,GAAG,GAAG,CAAC,CAAC;QAClF,CAAC;QACD,mEAAmE;QACnE,qCAAqC;QACrC,IAAI,uBAAuB,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,UAAU,CAClB,GAAG,WAAW,qDAAqD,GAAG,GAAG,CAC1E,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime detection for actor-ts.
|
|
3
|
+
*
|
|
4
|
+
* The framework runs on three JS runtimes — Bun, Node.js, and Deno. Most of
|
|
5
|
+
* the codebase is runtime-neutral TypeScript that uses `node:*` modules or
|
|
6
|
+
* standard Web APIs, but a few capabilities (TCP sockets, HTTP-server-from-
|
|
7
|
+
* fetch-handler, Web Workers, SQLite) need a per-runtime backend. This
|
|
8
|
+
* module is the shared place where those backends ask "what am I running
|
|
9
|
+
* under?" so the answer is cached, consistent, and overridable in tests.
|
|
10
|
+
*
|
|
11
|
+
* The module has no dependencies and no side effects beyond the memoised
|
|
12
|
+
* cache — it is safe to import from any layer.
|
|
13
|
+
*/
|
|
14
|
+
export type RuntimeKind = 'bun' | 'node' | 'deno';
|
|
15
|
+
/** Returns the current runtime. Cached after first call. */
|
|
16
|
+
export declare function detectRuntime(): RuntimeKind;
|
|
17
|
+
/** True iff `globalThis.Bun` is present. */
|
|
18
|
+
export declare function hasBun(): boolean;
|
|
19
|
+
/** True iff `globalThis.Deno` is present. */
|
|
20
|
+
export declare function hasDeno(): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* High-resolution timestamp in nanoseconds. Uses `Bun.nanoseconds()` when
|
|
23
|
+
* available (it is truly ns-resolution); otherwise falls back to
|
|
24
|
+
* `performance.now() * 1e6` which is ms-resolution × 1_000_000 — ~µs
|
|
25
|
+
* precision on Node 20+ and Deno, still good enough for benchmark harness
|
|
26
|
+
* purposes (individual iteration jitter swamps any sub-µs accuracy).
|
|
27
|
+
*/
|
|
28
|
+
export declare function highResNow(): number;
|
|
29
|
+
/**
|
|
30
|
+
* Test-only hook: force `detectRuntime()` to return a specific value. Pass
|
|
31
|
+
* `null` to restore real detection. Intentionally NOT re-exported from
|
|
32
|
+
* `src/index.ts` — it is an internal seam.
|
|
33
|
+
*/
|
|
34
|
+
export declare function setRuntimeOverride(r: RuntimeKind | null): void;
|
|
35
|
+
//# sourceMappingURL=detect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/runtime/detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAwBlD,6DAA6D;AAC7D,wBAAgB,aAAa,IAAI,WAAW,CAA8B;AAE1E,4CAA4C;AAC5C,wBAAgB,MAAM,IAAI,OAAO,CAAyC;AAE1E,6CAA6C;AAC7C,wBAAgB,OAAO,IAAI,OAAO,CAA0C;AAE5E;;;;;;GAMG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAQnC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAE9D"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime detection for actor-ts.
|
|
3
|
+
*
|
|
4
|
+
* The framework runs on three JS runtimes — Bun, Node.js, and Deno. Most of
|
|
5
|
+
* the codebase is runtime-neutral TypeScript that uses `node:*` modules or
|
|
6
|
+
* standard Web APIs, but a few capabilities (TCP sockets, HTTP-server-from-
|
|
7
|
+
* fetch-handler, Web Workers, SQLite) need a per-runtime backend. This
|
|
8
|
+
* module is the shared place where those backends ask "what am I running
|
|
9
|
+
* under?" so the answer is cached, consistent, and overridable in tests.
|
|
10
|
+
*
|
|
11
|
+
* The module has no dependencies and no side effects beyond the memoised
|
|
12
|
+
* cache — it is safe to import from any layer.
|
|
13
|
+
*/
|
|
14
|
+
const g = globalThis;
|
|
15
|
+
import { Lazy } from '../util/Lazy.js';
|
|
16
|
+
/**
|
|
17
|
+
* The detected runtime. `Lazy.of(...)` runs the detection once and then
|
|
18
|
+
* memoises. Test overrides go through `setOverride` (below) which uses
|
|
19
|
+
* `Lazy.setOverride` under the hood — no explicit cache bookkeeping.
|
|
20
|
+
*/
|
|
21
|
+
const runtimeLazy = Lazy.of(() => {
|
|
22
|
+
if (typeof g.Bun !== 'undefined')
|
|
23
|
+
return 'bun';
|
|
24
|
+
if (typeof g.Deno !== 'undefined')
|
|
25
|
+
return 'deno';
|
|
26
|
+
return 'node';
|
|
27
|
+
});
|
|
28
|
+
/** Returns the current runtime. Cached after first call. */
|
|
29
|
+
export function detectRuntime() { return runtimeLazy.get(); }
|
|
30
|
+
/** True iff `globalThis.Bun` is present. */
|
|
31
|
+
export function hasBun() { return typeof g.Bun !== 'undefined'; }
|
|
32
|
+
/** True iff `globalThis.Deno` is present. */
|
|
33
|
+
export function hasDeno() { return typeof g.Deno !== 'undefined'; }
|
|
34
|
+
/**
|
|
35
|
+
* High-resolution timestamp in nanoseconds. Uses `Bun.nanoseconds()` when
|
|
36
|
+
* available (it is truly ns-resolution); otherwise falls back to
|
|
37
|
+
* `performance.now() * 1e6` which is ms-resolution × 1_000_000 — ~µs
|
|
38
|
+
* precision on Node 20+ and Deno, still good enough for benchmark harness
|
|
39
|
+
* purposes (individual iteration jitter swamps any sub-µs accuracy).
|
|
40
|
+
*/
|
|
41
|
+
export function highResNow() {
|
|
42
|
+
const bunNs = g.Bun?.nanoseconds;
|
|
43
|
+
if (typeof bunNs === 'function')
|
|
44
|
+
return bunNs();
|
|
45
|
+
const perf = g.performance;
|
|
46
|
+
if (perf && typeof perf.now === 'function')
|
|
47
|
+
return perf.now() * 1_000_000;
|
|
48
|
+
// Last-resort: Date.now() has ms resolution. Any benchmark running in
|
|
49
|
+
// such a degraded environment deserves what it gets.
|
|
50
|
+
return Date.now() * 1_000_000;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Test-only hook: force `detectRuntime()` to return a specific value. Pass
|
|
54
|
+
* `null` to restore real detection. Intentionally NOT re-exported from
|
|
55
|
+
* `src/index.ts` — it is an internal seam.
|
|
56
|
+
*/
|
|
57
|
+
export function setRuntimeOverride(r) {
|
|
58
|
+
runtimeLazy.setOverride(r);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/runtime/detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAWH,MAAM,CAAC,GAAgB,UAAoC,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC;;;;GAIG;AACH,MAAM,WAAW,GAAsB,IAAI,CAAC,EAAE,CAAc,GAAG,EAAE;IAC/D,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC;IACjD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC,CAAC;AAEH,6DAA6D;AAC7D,MAAM,UAAU,aAAa,KAAkB,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAE1E,4CAA4C;AAC5C,MAAM,UAAU,MAAM,KAAc,OAAO,OAAO,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC;AAE1E,6CAA6C;AAC7C,MAAM,UAAU,OAAO,KAAc,OAAO,OAAO,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC;AAE5E;;;;;;GAMG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC;IACjC,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,KAAK,EAAE,CAAC;IAChD,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC;IAC3B,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAC1E,uEAAuE;IACvE,qDAAqD;IACrD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAqB;IACtD,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { FetchHandler, HonoServerHandle, HonoServerRunner } from './HonoServerRunner.js';
|
|
2
|
+
/**
|
|
3
|
+
* Bun implementation — `Bun.serve({ hostname, port, fetch })`.
|
|
4
|
+
*
|
|
5
|
+
* Graceful stop calls `server.stop(false)` which lets in-flight requests
|
|
6
|
+
* finish. Non-graceful calls `server.stop(true)` which kicks active
|
|
7
|
+
* connections immediately.
|
|
8
|
+
*/
|
|
9
|
+
export declare class BunHonoRunner implements HonoServerRunner {
|
|
10
|
+
serve(opts: {
|
|
11
|
+
host: string;
|
|
12
|
+
port: number;
|
|
13
|
+
fetch: FetchHandler;
|
|
14
|
+
}): Promise<HonoServerHandle>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=BunHonoRunner.d.ts.map
|