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,48 @@
|
|
|
1
|
+
import type { EventAdapter, SnapshotAdapter } from './Adapter.js';
|
|
2
|
+
import type { Codec } from './Codec.js';
|
|
3
|
+
/**
|
|
4
|
+
* Wrap an existing `EventAdapter` / `SnapshotAdapter` with a
|
|
5
|
+
* {@link Codec} that validates the payload on every write and
|
|
6
|
+
* read (#6). The codec runs **after** the inner adapter on the
|
|
7
|
+
* write path (so versioned wire shapes — produced by `defaultsAdapter`,
|
|
8
|
+
* `migratingAdapter`, etc — are validated against the wire schema)
|
|
9
|
+
* and **before** the inner adapter on the read path (so corrupted /
|
|
10
|
+
* mistyped wire data fails before any upcaster runs).
|
|
11
|
+
*
|
|
12
|
+
* const adapter = validatedEventAdapter(
|
|
13
|
+
* defaultsAdapter<DepositedV2>({
|
|
14
|
+
* manifest: 'BankAccount.Deposited',
|
|
15
|
+
* currentVersion: 2,
|
|
16
|
+
* defaults: { 1: { currency: 'USD' } },
|
|
17
|
+
* }),
|
|
18
|
+
* zodCodec(DepositedV2WireSchema),
|
|
19
|
+
* );
|
|
20
|
+
*
|
|
21
|
+
* Errors thrown by the codec on encode become `PersistError`s in
|
|
22
|
+
* the actor's outbox; on decode they bubble up as `MigrationError`s
|
|
23
|
+
* with the manifest + version of the offending record so log
|
|
24
|
+
* output points at the exact failure.
|
|
25
|
+
*/
|
|
26
|
+
/** Shape of error reasons surfaced from this wrapper. */
|
|
27
|
+
export interface ValidatedAdapterOptions {
|
|
28
|
+
/**
|
|
29
|
+
* Override how the wire payload is shown in the validation
|
|
30
|
+
* error. Defaults to `JSON.stringify(payload).slice(0, 200)` —
|
|
31
|
+
* truncated so big payloads don't flood the error log.
|
|
32
|
+
*/
|
|
33
|
+
readonly previewWire?: (wire: unknown) => string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Wrap an `EventAdapter` to run the codec on every read/write.
|
|
37
|
+
* The inner adapter still owns version mapping (upcasters,
|
|
38
|
+
* defaults, downcast for rolling deploys); the codec adds payload-
|
|
39
|
+
* shape validation on top.
|
|
40
|
+
*/
|
|
41
|
+
export declare function validatedEventAdapter<E, J>(inner: EventAdapter<E, J>, codec: Codec<J>, opts?: ValidatedAdapterOptions): EventAdapter<E, J>;
|
|
42
|
+
/**
|
|
43
|
+
* Snapshot variant of {@link validatedEventAdapter}. Same shape;
|
|
44
|
+
* `SnapshotAdapter` differs from `EventAdapter` only in name (for
|
|
45
|
+
* call-site clarity).
|
|
46
|
+
*/
|
|
47
|
+
export declare function validatedSnapshotAdapter<S, J>(inner: SnapshotAdapter<S, J>, codec: Codec<J>, opts?: ValidatedAdapterOptions): SnapshotAdapter<S, J>;
|
|
48
|
+
//# sourceMappingURL=validatedAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validatedAdapter.d.ts","sourceRoot":"","sources":["../../../src/persistence/migration/validatedAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAiB,eAAe,EAAe,MAAM,cAAc,CAAC;AAC9F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,yDAAyD;AACzD,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC;CAClD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EACxC,KAAK,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,IAAI,GAAE,uBAA4B,GACjC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAiBpB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAC3C,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,IAAI,GAAE,uBAA4B,GACjC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAiBvB"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { MigrationError } from './Envelope.js';
|
|
2
|
+
/**
|
|
3
|
+
* Wrap an `EventAdapter` to run the codec on every read/write.
|
|
4
|
+
* The inner adapter still owns version mapping (upcasters,
|
|
5
|
+
* defaults, downcast for rolling deploys); the codec adds payload-
|
|
6
|
+
* shape validation on top.
|
|
7
|
+
*/
|
|
8
|
+
export function validatedEventAdapter(inner, codec, opts = {}) {
|
|
9
|
+
return {
|
|
10
|
+
manifest: (event) => inner.manifest(event),
|
|
11
|
+
toJournal: (event) => {
|
|
12
|
+
const out = inner.toJournal(event);
|
|
13
|
+
const validated = runEncode(codec, out.payload, out.manifest, out.version, opts);
|
|
14
|
+
return { manifest: out.manifest, version: out.version, payload: validated };
|
|
15
|
+
},
|
|
16
|
+
fromJournal: (stored) => {
|
|
17
|
+
const validated = runDecode(codec, stored, opts);
|
|
18
|
+
return inner.fromJournal({
|
|
19
|
+
manifest: stored.manifest,
|
|
20
|
+
version: stored.version,
|
|
21
|
+
payload: validated,
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Snapshot variant of {@link validatedEventAdapter}. Same shape;
|
|
28
|
+
* `SnapshotAdapter` differs from `EventAdapter` only in name (for
|
|
29
|
+
* call-site clarity).
|
|
30
|
+
*/
|
|
31
|
+
export function validatedSnapshotAdapter(inner, codec, opts = {}) {
|
|
32
|
+
return {
|
|
33
|
+
manifest: (state) => inner.manifest(state),
|
|
34
|
+
toJournal: (state) => {
|
|
35
|
+
const out = inner.toJournal(state);
|
|
36
|
+
const validated = runEncode(codec, out.payload, out.manifest, out.version, opts);
|
|
37
|
+
return { manifest: out.manifest, version: out.version, payload: validated };
|
|
38
|
+
},
|
|
39
|
+
fromJournal: (stored) => {
|
|
40
|
+
const validated = runDecode(codec, stored, opts);
|
|
41
|
+
return inner.fromJournal({
|
|
42
|
+
manifest: stored.manifest,
|
|
43
|
+
version: stored.version,
|
|
44
|
+
payload: validated,
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/* ----------------------------- internals ------------------------------ */
|
|
50
|
+
function runEncode(codec, payload, manifest, version, opts) {
|
|
51
|
+
try {
|
|
52
|
+
return codec.encode(payload);
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
throw new MigrationError(`validatedAdapter: codec '${codec.name ?? 'anonymous'}' rejected encode for `
|
|
56
|
+
+ `${manifest}@v${version}: ${err.message ?? String(err)} `
|
|
57
|
+
+ `[input=${preview(payload, opts)}]`, manifest, version);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function runDecode(codec, stored, opts) {
|
|
61
|
+
try {
|
|
62
|
+
return codec.decode(stored.payload);
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
throw new MigrationError(`validatedAdapter: codec '${codec.name ?? 'anonymous'}' rejected decode for `
|
|
66
|
+
+ `${stored.manifest}@v${stored.version}: ${err.message ?? String(err)} `
|
|
67
|
+
+ `[wire=${preview(stored.payload, opts)}]`, stored.manifest, stored.version);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function preview(wire, opts) {
|
|
71
|
+
if (opts.previewWire) {
|
|
72
|
+
try {
|
|
73
|
+
return opts.previewWire(wire);
|
|
74
|
+
}
|
|
75
|
+
catch { /* fall through */ }
|
|
76
|
+
}
|
|
77
|
+
let s;
|
|
78
|
+
try {
|
|
79
|
+
s = JSON.stringify(wire);
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
s = String(wire);
|
|
83
|
+
}
|
|
84
|
+
return s.length > 200 ? `${s.slice(0, 200)}…` : s;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=validatedAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validatedAdapter.js","sourceRoot":"","sources":["../../../src/persistence/migration/validatedAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { Journal } from '../Journal.js';
|
|
2
|
+
import type { PersistentEvent } from '../JournalTypes.js';
|
|
3
|
+
import type { SnapshotStore } from '../SnapshotStore.js';
|
|
4
|
+
import type { JournalEnvelope } from './Adapter.js';
|
|
5
|
+
/**
|
|
6
|
+
* One-shot migration helpers for repos adopting the schema-evolution
|
|
7
|
+
* envelope after-the-fact (#9). An actor that ships a fresh
|
|
8
|
+
* `EventAdapter` against an existing journal whose events are NOT
|
|
9
|
+
* envelope-wrapped throws `MigrationError` on the first replay,
|
|
10
|
+
* because the envelope layer expects `{_v, _t, _e}` markers and the
|
|
11
|
+
* legacy data has none.
|
|
12
|
+
*
|
|
13
|
+
* The fix is a one-time rewrite: walk the journal, wrap every raw
|
|
14
|
+
* event in `{ _v: 1, _t: <manifest>, _e: <event> }`, write back. This
|
|
15
|
+
* file ships the primitives:
|
|
16
|
+
*
|
|
17
|
+
* - `wrapEventAsEnvelope(event, manifestFor)` — pure, idempotent;
|
|
18
|
+
* events that already look like envelopes are passed through.
|
|
19
|
+
* - `wrapStateAsEnvelope(state, manifestFor)` — same shape for
|
|
20
|
+
* snapshots / durable-state values.
|
|
21
|
+
* - `migrateInMemoryJournal(journal, manifestFor)` — reference
|
|
22
|
+
* bulk-rewriter for the in-process journal. Preserves sequence
|
|
23
|
+
* numbers + timestamps + tags; the only thing that changes is the
|
|
24
|
+
* `event` payload.
|
|
25
|
+
* - `migrateSnapshotStore(store, pids, manifestFor)` — same idea
|
|
26
|
+
* for snapshots. Iterates `pids` (callers source them — usually
|
|
27
|
+
* `await journal.persistenceIds()`).
|
|
28
|
+
*
|
|
29
|
+
* Cassandra / SQLite / S3 journals all need a journal-specific
|
|
30
|
+
* SQL/CQL/object-list path; users write a few lines of glue using
|
|
31
|
+
* `wrapEventAsEnvelope` as the per-row primitive. Shipping a
|
|
32
|
+
* generic CLI for every backend would be a maintenance trap.
|
|
33
|
+
*/
|
|
34
|
+
/**
|
|
35
|
+
* Wrap a single domain event as a `JournalEnvelope` at version 1
|
|
36
|
+
* (idempotent — events that already look like envelopes are returned
|
|
37
|
+
* unchanged). `manifestFor` derives the stable `_t` discriminator
|
|
38
|
+
* from the event itself. Override `version` if your codebase
|
|
39
|
+
* already shipped some envelopes at a higher version and you want
|
|
40
|
+
* the migration to start from there.
|
|
41
|
+
*/
|
|
42
|
+
export declare function wrapEventAsEnvelope<E>(event: E, manifestFor: (e: E) => string, version?: number): JournalEnvelope<E>;
|
|
43
|
+
/** Same shape as {@link wrapEventAsEnvelope}, separate name for clarity. */
|
|
44
|
+
export declare function wrapStateAsEnvelope<S>(state: S, manifestFor: (s: S) => string, version?: number): JournalEnvelope<S>;
|
|
45
|
+
export interface MigrationResult {
|
|
46
|
+
/** Total entries inspected. */
|
|
47
|
+
readonly inspected: number;
|
|
48
|
+
/** Entries that were rewritten (raw → envelope). */
|
|
49
|
+
readonly wrapped: number;
|
|
50
|
+
/** Entries that were already enveloped and left untouched. */
|
|
51
|
+
readonly skipped: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Bulk-rewrite every event in a {@link Journal} that exposes the
|
|
55
|
+
* `_remapForMigration` hook (the in-memory journal does; for other
|
|
56
|
+
* backends you write a few lines of journal-specific glue). Returns
|
|
57
|
+
* a count of inspected / wrapped / skipped entries — re-running on a
|
|
58
|
+
* fully-migrated journal is a no-op (`wrapped === 0`).
|
|
59
|
+
*/
|
|
60
|
+
export declare function migrateInMemoryJournal<E>(journal: Journal, manifestFor: (e: E) => string, opts?: {
|
|
61
|
+
readonly version?: number;
|
|
62
|
+
}): Promise<MigrationResult>;
|
|
63
|
+
/**
|
|
64
|
+
* Walk a {@link SnapshotStore} for every `pid` in `pids`, load the
|
|
65
|
+
* latest snapshot, and re-save it as an enveloped value if it isn't
|
|
66
|
+
* one already. Older snapshots in `keepN` history get the same
|
|
67
|
+
* treatment via repeated `loadBefore` calls until exhausted.
|
|
68
|
+
*
|
|
69
|
+
* Note: this rewrites snapshots **at the same `seq`** by overwriting
|
|
70
|
+
* — most snapshot-store impls upsert by key (`<pid>/<seq>.json`) so
|
|
71
|
+
* a re-save lands on the existing record without changing the seq.
|
|
72
|
+
*/
|
|
73
|
+
export declare function migrateSnapshotStore<S>(store: SnapshotStore, pids: ReadonlyArray<string>, manifestFor: (s: S) => string, opts?: {
|
|
74
|
+
readonly version?: number;
|
|
75
|
+
}): Promise<MigrationResult>;
|
|
76
|
+
/**
|
|
77
|
+
* Convenience: pretty-print a migration summary suitable for the CLI
|
|
78
|
+
* one-liner most users will write — `console.log(formatMigrationResult(...))`
|
|
79
|
+
* after the bulk call.
|
|
80
|
+
*/
|
|
81
|
+
export declare function formatMigrationResult(prefix: string, result: MigrationResult): string;
|
|
82
|
+
export type { PersistentEvent };
|
|
83
|
+
//# sourceMappingURL=wrapLegacy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrapLegacy.d.ts","sourceRoot":"","sources":["../../../src/persistence/migration/wrapLegacy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,KAAK,EAAE,CAAC,EACR,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,EAC7B,OAAO,SAAI,GACV,eAAe,CAAC,CAAC,CAAC,CAGpB;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,KAAK,EAAE,CAAC,EACR,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,EAC7B,OAAO,SAAI,GACV,eAAe,CAAC,CAAC,CAAC,CAGpB;AAID,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAqBD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,EAC7B,IAAI,GAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACvC,OAAO,CAAC,eAAe,CAAC,CA4B1B;AAID;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,EAC3B,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,EAC7B,IAAI,GAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACvC,OAAO,CAAC,eAAe,CAAC,CAmB1B;AAID;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,CAErF;AAID,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { isEnvelope } from './Envelope.js';
|
|
2
|
+
/**
|
|
3
|
+
* One-shot migration helpers for repos adopting the schema-evolution
|
|
4
|
+
* envelope after-the-fact (#9). An actor that ships a fresh
|
|
5
|
+
* `EventAdapter` against an existing journal whose events are NOT
|
|
6
|
+
* envelope-wrapped throws `MigrationError` on the first replay,
|
|
7
|
+
* because the envelope layer expects `{_v, _t, _e}` markers and the
|
|
8
|
+
* legacy data has none.
|
|
9
|
+
*
|
|
10
|
+
* The fix is a one-time rewrite: walk the journal, wrap every raw
|
|
11
|
+
* event in `{ _v: 1, _t: <manifest>, _e: <event> }`, write back. This
|
|
12
|
+
* file ships the primitives:
|
|
13
|
+
*
|
|
14
|
+
* - `wrapEventAsEnvelope(event, manifestFor)` — pure, idempotent;
|
|
15
|
+
* events that already look like envelopes are passed through.
|
|
16
|
+
* - `wrapStateAsEnvelope(state, manifestFor)` — same shape for
|
|
17
|
+
* snapshots / durable-state values.
|
|
18
|
+
* - `migrateInMemoryJournal(journal, manifestFor)` — reference
|
|
19
|
+
* bulk-rewriter for the in-process journal. Preserves sequence
|
|
20
|
+
* numbers + timestamps + tags; the only thing that changes is the
|
|
21
|
+
* `event` payload.
|
|
22
|
+
* - `migrateSnapshotStore(store, pids, manifestFor)` — same idea
|
|
23
|
+
* for snapshots. Iterates `pids` (callers source them — usually
|
|
24
|
+
* `await journal.persistenceIds()`).
|
|
25
|
+
*
|
|
26
|
+
* Cassandra / SQLite / S3 journals all need a journal-specific
|
|
27
|
+
* SQL/CQL/object-list path; users write a few lines of glue using
|
|
28
|
+
* `wrapEventAsEnvelope` as the per-row primitive. Shipping a
|
|
29
|
+
* generic CLI for every backend would be a maintenance trap.
|
|
30
|
+
*/
|
|
31
|
+
/* ---------------------------- pure wrappers ---------------------------- */
|
|
32
|
+
/**
|
|
33
|
+
* Wrap a single domain event as a `JournalEnvelope` at version 1
|
|
34
|
+
* (idempotent — events that already look like envelopes are returned
|
|
35
|
+
* unchanged). `manifestFor` derives the stable `_t` discriminator
|
|
36
|
+
* from the event itself. Override `version` if your codebase
|
|
37
|
+
* already shipped some envelopes at a higher version and you want
|
|
38
|
+
* the migration to start from there.
|
|
39
|
+
*/
|
|
40
|
+
export function wrapEventAsEnvelope(event, manifestFor, version = 1) {
|
|
41
|
+
if (isEnvelope(event))
|
|
42
|
+
return event;
|
|
43
|
+
return { _v: version, _t: manifestFor(event), _e: event };
|
|
44
|
+
}
|
|
45
|
+
/** Same shape as {@link wrapEventAsEnvelope}, separate name for clarity. */
|
|
46
|
+
export function wrapStateAsEnvelope(state, manifestFor, version = 1) {
|
|
47
|
+
if (isEnvelope(state))
|
|
48
|
+
return state;
|
|
49
|
+
return { _v: version, _t: manifestFor(state), _e: state };
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Bulk-rewrite every event in a {@link Journal} that exposes the
|
|
53
|
+
* `_remapForMigration` hook (the in-memory journal does; for other
|
|
54
|
+
* backends you write a few lines of journal-specific glue). Returns
|
|
55
|
+
* a count of inspected / wrapped / skipped entries — re-running on a
|
|
56
|
+
* fully-migrated journal is a no-op (`wrapped === 0`).
|
|
57
|
+
*/
|
|
58
|
+
export async function migrateInMemoryJournal(journal, manifestFor, opts = {}) {
|
|
59
|
+
if (typeof journal._remapForMigration !== 'function') {
|
|
60
|
+
throw new Error('migrateInMemoryJournal: journal does not expose _remapForMigration. '
|
|
61
|
+
+ 'Use the per-row `wrapEventAsEnvelope` primitive with a backend-specific '
|
|
62
|
+
+ 'rewrite path (SQL UPDATE / S3 PUT / CQL UPDATE).');
|
|
63
|
+
}
|
|
64
|
+
const migratable = journal;
|
|
65
|
+
const version = opts.version ?? 1;
|
|
66
|
+
const pids = await journal.persistenceIds();
|
|
67
|
+
let inspected = 0;
|
|
68
|
+
let wrapped = 0;
|
|
69
|
+
let skipped = 0;
|
|
70
|
+
for (const pid of pids) {
|
|
71
|
+
// Read first to count + decide; the `_remapForMigration` call
|
|
72
|
+
// does the actual rewrite in place.
|
|
73
|
+
const events = await journal.read(pid, 0);
|
|
74
|
+
inspected += events.length;
|
|
75
|
+
for (const e of events) {
|
|
76
|
+
if (isEnvelope(e.event))
|
|
77
|
+
skipped += 1;
|
|
78
|
+
else
|
|
79
|
+
wrapped += 1;
|
|
80
|
+
}
|
|
81
|
+
await migratable._remapForMigration(pid, (e) => wrapEventAsEnvelope(e, manifestFor, version));
|
|
82
|
+
}
|
|
83
|
+
return { inspected, wrapped, skipped };
|
|
84
|
+
}
|
|
85
|
+
/* ------------------------ snapshot-store helpers ----------------------- */
|
|
86
|
+
/**
|
|
87
|
+
* Walk a {@link SnapshotStore} for every `pid` in `pids`, load the
|
|
88
|
+
* latest snapshot, and re-save it as an enveloped value if it isn't
|
|
89
|
+
* one already. Older snapshots in `keepN` history get the same
|
|
90
|
+
* treatment via repeated `loadBefore` calls until exhausted.
|
|
91
|
+
*
|
|
92
|
+
* Note: this rewrites snapshots **at the same `seq`** by overwriting
|
|
93
|
+
* — most snapshot-store impls upsert by key (`<pid>/<seq>.json`) so
|
|
94
|
+
* a re-save lands on the existing record without changing the seq.
|
|
95
|
+
*/
|
|
96
|
+
export async function migrateSnapshotStore(store, pids, manifestFor, opts = {}) {
|
|
97
|
+
const version = opts.version ?? 1;
|
|
98
|
+
let inspected = 0;
|
|
99
|
+
let wrapped = 0;
|
|
100
|
+
let skipped = 0;
|
|
101
|
+
for (const pid of pids) {
|
|
102
|
+
const latest = await store.loadLatest(pid);
|
|
103
|
+
if (latest.isNone())
|
|
104
|
+
continue;
|
|
105
|
+
inspected += 1;
|
|
106
|
+
const snapshot = latest.value;
|
|
107
|
+
if (isEnvelope(snapshot.state)) {
|
|
108
|
+
skipped += 1;
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
const wrappedState = wrapStateAsEnvelope(snapshot.state, manifestFor, version);
|
|
112
|
+
await store.save(pid, snapshot.sequenceNr, wrappedState);
|
|
113
|
+
wrapped += 1;
|
|
114
|
+
}
|
|
115
|
+
return { inspected, wrapped, skipped };
|
|
116
|
+
}
|
|
117
|
+
/* ------------------------------ shape glue ----------------------------- */
|
|
118
|
+
/**
|
|
119
|
+
* Convenience: pretty-print a migration summary suitable for the CLI
|
|
120
|
+
* one-liner most users will write — `console.log(formatMigrationResult(...))`
|
|
121
|
+
* after the bulk call.
|
|
122
|
+
*/
|
|
123
|
+
export function formatMigrationResult(prefix, result) {
|
|
124
|
+
return `${prefix}: ${result.wrapped} wrapped, ${result.skipped} already enveloped, ${result.inspected} inspected`;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=wrapLegacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrapLegacy.js","sourceRoot":"","sources":["../../../src/persistence/migration/wrapLegacy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { type CompressionAlgo } from './Compression.js';
|
|
2
|
+
/**
|
|
3
|
+
* Wire-format for snapshot / durable-state bodies stored in object storage.
|
|
4
|
+
*
|
|
5
|
+
* Bytes 0..3 : MAGIC "ATS1" (actor-ts persistence v1)
|
|
6
|
+
* Byte 4 : flags bit0..1 = compression: 0=none, 1=gzip, 2=zstd
|
|
7
|
+
* bit2 = encrypted
|
|
8
|
+
* bit3 = key-versioned (#8 — master-key rotation)
|
|
9
|
+
* Byte 5 : keyVersion (0..255) — only when bit3 set
|
|
10
|
+
* Bytes ... : AES-GCM IV (12 bytes — only when bit2 set, immediately
|
|
11
|
+
* after the keyVersion byte if present, else
|
|
12
|
+
* immediately after flags)
|
|
13
|
+
* Bytes ... : payload (compressed/encrypted JSON)
|
|
14
|
+
*
|
|
15
|
+
* A size-conservative header (5 bytes for unencrypted; 17 for encrypted
|
|
16
|
+
* legacy / 18 for encrypted with explicit version) keeps small snapshots
|
|
17
|
+
* cheap in S3 storage; compressing the JSON before encryption is
|
|
18
|
+
* intentional (encryption defeats compression, so the order matters and
|
|
19
|
+
* is fixed by the format).
|
|
20
|
+
*
|
|
21
|
+
* **Backwards compatibility.** Encrypted bodies written before rotation
|
|
22
|
+
* support shipped (#8) have bit3 unset and no keyVersion byte — the
|
|
23
|
+
* decoder treats them as version 0, which transparently maps to either
|
|
24
|
+
* the legacy single-key `masterKey` config or `masterKeys.active.version
|
|
25
|
+
* === 0`. Mixing old and new bodies in one bucket is therefore safe.
|
|
26
|
+
*/
|
|
27
|
+
export declare const ATS1_MAGIC: Uint8Array<ArrayBuffer>;
|
|
28
|
+
export declare const COMPRESSION_NONE = 0;
|
|
29
|
+
export declare const COMPRESSION_GZIP = 1;
|
|
30
|
+
export declare const COMPRESSION_ZSTD = 2;
|
|
31
|
+
export declare const FLAG_ENCRYPTED = 4;
|
|
32
|
+
/** When set with FLAG_ENCRYPTED, the byte after `flags` is a 0..255 key version. */
|
|
33
|
+
export declare const FLAG_KEY_VERSIONED = 8;
|
|
34
|
+
export interface EncodeOptions {
|
|
35
|
+
readonly compression?: CompressionAlgo;
|
|
36
|
+
/**
|
|
37
|
+
* When set, the body is encrypted with AES-256-GCM using the supplied
|
|
38
|
+
* 32-byte subkey (typically derived per-pid via HKDF — see
|
|
39
|
+
* `Encryption.deriveSubkey`). Compression runs first so encryption
|
|
40
|
+
* doesn't fight with compression's information theory; the IV is
|
|
41
|
+
* generated fresh per call and embedded in the manifest header.
|
|
42
|
+
*
|
|
43
|
+
* `keyVersion` (0..255) is embedded in the manifest so decrypt can
|
|
44
|
+
* pick the matching master key from a `MasterKeyRing` (#8). Omit
|
|
45
|
+
* it for the legacy single-key path — the decoder treats omitted
|
|
46
|
+
* keys as "version 0".
|
|
47
|
+
*/
|
|
48
|
+
readonly encryption?: {
|
|
49
|
+
readonly subKey: Uint8Array;
|
|
50
|
+
readonly keyVersion?: number;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Subkey resolver — given the version byte the manifest carries, return
|
|
55
|
+
* the subkey to decrypt with. For a single-key config the resolver
|
|
56
|
+
* ignores the version and always returns the same subkey; for a
|
|
57
|
+
* keyring it dispatches. Returning `null` means "I don't have a key
|
|
58
|
+
* for that version" — the codec then throws a clear error.
|
|
59
|
+
*/
|
|
60
|
+
export type SubKeyResolver = (keyVersion: number) => Promise<Uint8Array | null>;
|
|
61
|
+
export interface DecodeOptions {
|
|
62
|
+
/**
|
|
63
|
+
* Required when the body is encrypted — callers either supply a
|
|
64
|
+
* single subkey (legacy single-key shape) or a resolver that
|
|
65
|
+
* dispatches on the manifest's key version. If absent on an
|
|
66
|
+
* encrypted body, `decodeBody` rejects.
|
|
67
|
+
*/
|
|
68
|
+
readonly encryption?: {
|
|
69
|
+
readonly subKey: Uint8Array;
|
|
70
|
+
} | {
|
|
71
|
+
readonly subKeyFor: SubKeyResolver;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export interface DecodedBody {
|
|
75
|
+
readonly compression: CompressionAlgo;
|
|
76
|
+
readonly encrypted: boolean;
|
|
77
|
+
/** 0..255 when the body carried a key-version manifest, else `undefined`. */
|
|
78
|
+
readonly keyVersion?: number;
|
|
79
|
+
readonly payload: Uint8Array;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Encode a JSON-stringified payload with the framing above. Returns a
|
|
83
|
+
* fresh `Uint8Array` ready to ship to the backend.
|
|
84
|
+
*/
|
|
85
|
+
export declare function encodeBody(jsonBytes: Uint8Array, opts?: EncodeOptions): Promise<Uint8Array>;
|
|
86
|
+
/** Decode a body produced by `encodeBody` back into the plaintext payload. */
|
|
87
|
+
export declare function decodeBody(framed: Uint8Array, opts?: DecodeOptions): Promise<DecodedBody>;
|
|
88
|
+
//# sourceMappingURL=BodyCodec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BodyCodec.d.ts","sourceRoot":"","sources":["../../../src/persistence/object-storage/BodyCodec.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGvE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,eAAO,MAAM,UAAU,yBAA2C,CAAC;AAEnE,eAAO,MAAM,gBAAgB,IAAO,CAAC;AACrC,eAAO,MAAM,gBAAgB,IAAO,CAAC;AACrC,eAAO,MAAM,gBAAgB,IAAO,CAAC;AACrC,eAAO,MAAM,cAAc,IAAQ,CAAC;AACpC,oFAAoF;AACpF,eAAO,MAAM,kBAAkB,IAAS,CAAC;AAEzC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC;IACvC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrF;AAED;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;AAEhF,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAChB;QAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;KAAE,GAC/B;QAAE,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;KAAE,CAAC;CAC5C;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CA0CrG;AAED,8EAA8E;AAC9E,wBAAsB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CA8DnG"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { match } from 'ts-pattern';
|
|
2
|
+
import { compressorFor } from './Compression.js';
|
|
3
|
+
import { aesGcmDecrypt, aesGcmEncrypt, IV_LENGTH, randomIv } from './Encryption.js';
|
|
4
|
+
/**
|
|
5
|
+
* Wire-format for snapshot / durable-state bodies stored in object storage.
|
|
6
|
+
*
|
|
7
|
+
* Bytes 0..3 : MAGIC "ATS1" (actor-ts persistence v1)
|
|
8
|
+
* Byte 4 : flags bit0..1 = compression: 0=none, 1=gzip, 2=zstd
|
|
9
|
+
* bit2 = encrypted
|
|
10
|
+
* bit3 = key-versioned (#8 — master-key rotation)
|
|
11
|
+
* Byte 5 : keyVersion (0..255) — only when bit3 set
|
|
12
|
+
* Bytes ... : AES-GCM IV (12 bytes — only when bit2 set, immediately
|
|
13
|
+
* after the keyVersion byte if present, else
|
|
14
|
+
* immediately after flags)
|
|
15
|
+
* Bytes ... : payload (compressed/encrypted JSON)
|
|
16
|
+
*
|
|
17
|
+
* A size-conservative header (5 bytes for unencrypted; 17 for encrypted
|
|
18
|
+
* legacy / 18 for encrypted with explicit version) keeps small snapshots
|
|
19
|
+
* cheap in S3 storage; compressing the JSON before encryption is
|
|
20
|
+
* intentional (encryption defeats compression, so the order matters and
|
|
21
|
+
* is fixed by the format).
|
|
22
|
+
*
|
|
23
|
+
* **Backwards compatibility.** Encrypted bodies written before rotation
|
|
24
|
+
* support shipped (#8) have bit3 unset and no keyVersion byte — the
|
|
25
|
+
* decoder treats them as version 0, which transparently maps to either
|
|
26
|
+
* the legacy single-key `masterKey` config or `masterKeys.active.version
|
|
27
|
+
* === 0`. Mixing old and new bodies in one bucket is therefore safe.
|
|
28
|
+
*/
|
|
29
|
+
export const ATS1_MAGIC = new Uint8Array([0x41, 0x54, 0x53, 0x31]); // "ATS1"
|
|
30
|
+
export const COMPRESSION_NONE = 0b00;
|
|
31
|
+
export const COMPRESSION_GZIP = 0b01;
|
|
32
|
+
export const COMPRESSION_ZSTD = 0b10;
|
|
33
|
+
export const FLAG_ENCRYPTED = 0b100;
|
|
34
|
+
/** When set with FLAG_ENCRYPTED, the byte after `flags` is a 0..255 key version. */
|
|
35
|
+
export const FLAG_KEY_VERSIONED = 0b1000;
|
|
36
|
+
/**
|
|
37
|
+
* Encode a JSON-stringified payload with the framing above. Returns a
|
|
38
|
+
* fresh `Uint8Array` ready to ship to the backend.
|
|
39
|
+
*/
|
|
40
|
+
export async function encodeBody(jsonBytes, opts = {}) {
|
|
41
|
+
const algo = opts.compression ?? 'none';
|
|
42
|
+
const subKey = opts.encryption?.subKey;
|
|
43
|
+
const keyVersion = opts.encryption?.keyVersion;
|
|
44
|
+
// Step 1: compress (if requested). Encryption-after-compression
|
|
45
|
+
// because compression-after-encryption would defeat compression
|
|
46
|
+
// (ciphertext is high-entropy) AND it's the order that protects
|
|
47
|
+
// against CRIME-style side channels.
|
|
48
|
+
const compressed = await compressorFor(algo).compress(jsonBytes);
|
|
49
|
+
// Step 2: encrypt (if requested). IV goes into the manifest.
|
|
50
|
+
if (subKey) {
|
|
51
|
+
if (keyVersion !== undefined) {
|
|
52
|
+
if (!Number.isInteger(keyVersion) || keyVersion < 0 || keyVersion > 255) {
|
|
53
|
+
throw new Error(`BodyCodec: keyVersion must be an integer in [0, 255], got ${keyVersion}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const iv = randomIv();
|
|
57
|
+
const ciphertext = await aesGcmEncrypt(subKey, iv, compressed);
|
|
58
|
+
const versioned = keyVersion !== undefined;
|
|
59
|
+
let flags = encodeCompression(algo) | FLAG_ENCRYPTED;
|
|
60
|
+
if (versioned)
|
|
61
|
+
flags |= FLAG_KEY_VERSIONED;
|
|
62
|
+
const headerLen = ATS1_MAGIC.length + 1 + (versioned ? 1 : 0) + IV_LENGTH;
|
|
63
|
+
const out = new Uint8Array(headerLen + ciphertext.length);
|
|
64
|
+
out.set(ATS1_MAGIC, 0);
|
|
65
|
+
out[4] = flags;
|
|
66
|
+
let offset = 5;
|
|
67
|
+
if (versioned) {
|
|
68
|
+
out[offset] = keyVersion;
|
|
69
|
+
offset += 1;
|
|
70
|
+
}
|
|
71
|
+
out.set(iv, offset);
|
|
72
|
+
offset += IV_LENGTH;
|
|
73
|
+
out.set(ciphertext, offset);
|
|
74
|
+
return out;
|
|
75
|
+
}
|
|
76
|
+
// Step 3 (no encryption): build the plain framed body.
|
|
77
|
+
const flags = encodeCompression(algo);
|
|
78
|
+
const out = new Uint8Array(ATS1_MAGIC.length + 1 + compressed.length);
|
|
79
|
+
out.set(ATS1_MAGIC, 0);
|
|
80
|
+
out[4] = flags;
|
|
81
|
+
out.set(compressed, 5);
|
|
82
|
+
return out;
|
|
83
|
+
}
|
|
84
|
+
/** Decode a body produced by `encodeBody` back into the plaintext payload. */
|
|
85
|
+
export async function decodeBody(framed, opts = {}) {
|
|
86
|
+
if (framed.length < 5 || !magicMatches(framed)) {
|
|
87
|
+
throw new Error('BodyCodec: unrecognised body — expected ATS1 magic bytes.');
|
|
88
|
+
}
|
|
89
|
+
const flags = framed[4];
|
|
90
|
+
const compression = decodeCompression(flags);
|
|
91
|
+
const encrypted = (flags & FLAG_ENCRYPTED) !== 0;
|
|
92
|
+
const versioned = (flags & FLAG_KEY_VERSIONED) !== 0;
|
|
93
|
+
let payload;
|
|
94
|
+
let keyVersion;
|
|
95
|
+
if (encrypted) {
|
|
96
|
+
if (!opts.encryption) {
|
|
97
|
+
throw new Error('BodyCodec: body is encrypted but no subKey/resolver was supplied for decoding.');
|
|
98
|
+
}
|
|
99
|
+
let offset = 5;
|
|
100
|
+
if (versioned) {
|
|
101
|
+
if (framed.length < 6) {
|
|
102
|
+
throw new Error('BodyCodec: encrypted body claims key-versioned but is shorter than the version byte requires.');
|
|
103
|
+
}
|
|
104
|
+
keyVersion = framed[5];
|
|
105
|
+
offset = 6;
|
|
106
|
+
}
|
|
107
|
+
if (framed.length < offset + IV_LENGTH) {
|
|
108
|
+
throw new Error('BodyCodec: encrypted body is shorter than the manifest IV requires.');
|
|
109
|
+
}
|
|
110
|
+
const iv = framed.subarray(offset, offset + IV_LENGTH);
|
|
111
|
+
const ciphertext = framed.subarray(offset + IV_LENGTH);
|
|
112
|
+
// Resolve the subkey: prefer the resolver path (versioned), fall
|
|
113
|
+
// back to the legacy single-subkey field. An unversioned body
|
|
114
|
+
// dispatched against a resolver is treated as version 0 — that's
|
|
115
|
+
// the implicit version the legacy single-key shape always carried.
|
|
116
|
+
const enc = opts.encryption;
|
|
117
|
+
let subKey;
|
|
118
|
+
if ('subKeyFor' in enc) {
|
|
119
|
+
subKey = await enc.subKeyFor(keyVersion ?? 0);
|
|
120
|
+
if (!subKey) {
|
|
121
|
+
throw new Error(`BodyCodec: no master key registered for version ${keyVersion ?? 0} — `
|
|
122
|
+
+ `add it to the keyring's \`retired\` list to decrypt historical blobs.`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
subKey = enc.subKey;
|
|
127
|
+
}
|
|
128
|
+
const compressedPlaintext = await aesGcmDecrypt(subKey, iv, ciphertext);
|
|
129
|
+
payload = await compressorFor(compression).decompress(compressedPlaintext);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
const compressedSlice = framed.subarray(5);
|
|
133
|
+
payload = await compressorFor(compression).decompress(compressedSlice);
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
compression,
|
|
137
|
+
encrypted,
|
|
138
|
+
...(keyVersion !== undefined ? { keyVersion } : {}),
|
|
139
|
+
payload,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/* ----------------------------- internals -------------------------------- */
|
|
143
|
+
function magicMatches(buf) {
|
|
144
|
+
return buf[0] === ATS1_MAGIC[0]
|
|
145
|
+
&& buf[1] === ATS1_MAGIC[1]
|
|
146
|
+
&& buf[2] === ATS1_MAGIC[2]
|
|
147
|
+
&& buf[3] === ATS1_MAGIC[3];
|
|
148
|
+
}
|
|
149
|
+
function encodeCompression(algo) {
|
|
150
|
+
// Exhaustive — adding a new CompressionAlgo variant forces this site.
|
|
151
|
+
return match(algo)
|
|
152
|
+
.with('none', () => COMPRESSION_NONE)
|
|
153
|
+
.with('gzip', () => COMPRESSION_GZIP)
|
|
154
|
+
.with('zstd', () => COMPRESSION_ZSTD)
|
|
155
|
+
.exhaustive();
|
|
156
|
+
}
|
|
157
|
+
function decodeCompression(flags) {
|
|
158
|
+
// Decoding the bit-pattern back to the typed union — input is a
|
|
159
|
+
// number (constrained 0..3 by the caller's bitmask), so the default
|
|
160
|
+
// throw stays as runtime guard for bad/legacy bytes. Cannot use
|
|
161
|
+
// `match().exhaustive()` here because the input type is `number`,
|
|
162
|
+
// not a closed union.
|
|
163
|
+
switch (flags & 0b11) {
|
|
164
|
+
case COMPRESSION_NONE: return 'none';
|
|
165
|
+
case COMPRESSION_GZIP: return 'gzip';
|
|
166
|
+
case COMPRESSION_ZSTD: return 'zstd';
|
|
167
|
+
default:
|
|
168
|
+
throw new Error(`BodyCodec: unknown compression flags ${(flags & 0b11).toString(2)}`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=BodyCodec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BodyCodec.js","sourceRoot":"","sources":["../../../src/persistence/object-storage/BodyCodec.ts"],"names":[],"mappings":"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"}
|