actor-ts 0.9.0 → 0.10.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 +408 -0
- package/README.md +285 -269
- package/dist/ActorSystem.d.ts +3 -38
- package/dist/ActorSystem.d.ts.map +1 -1
- package/dist/ActorSystem.js +2 -2
- package/dist/ActorSystem.js.map +1 -1
- package/dist/ActorSystemOptions.d.ts +91 -0
- package/dist/ActorSystemOptions.d.ts.map +1 -0
- package/dist/ActorSystemOptions.js +45 -0
- package/dist/ActorSystemOptions.js.map +1 -0
- package/dist/Logger.d.ts +63 -0
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +146 -0
- package/dist/Logger.js.map +1 -1
- package/dist/cache/MemcachedCache.d.ts +2 -12
- package/dist/cache/MemcachedCache.d.ts.map +1 -1
- package/dist/cache/MemcachedCache.js +2 -1
- package/dist/cache/MemcachedCache.js.map +1 -1
- package/dist/cache/MemcachedCacheOptions.d.ts +40 -0
- package/dist/cache/MemcachedCacheOptions.d.ts.map +1 -0
- package/dist/cache/MemcachedCacheOptions.js +32 -0
- package/dist/cache/MemcachedCacheOptions.js.map +1 -0
- package/dist/cache/RedisCache.d.ts +2 -22
- package/dist/cache/RedisCache.d.ts.map +1 -1
- package/dist/cache/RedisCache.js +2 -1
- package/dist/cache/RedisCache.js.map +1 -1
- package/dist/cache/RedisCacheOptions.d.ts +56 -0
- package/dist/cache/RedisCacheOptions.d.ts.map +1 -0
- package/dist/cache/RedisCacheOptions.js +43 -0
- package/dist/cache/RedisCacheOptions.js.map +1 -0
- package/dist/cache/index.d.ts +6 -2
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +2 -0
- package/dist/cache/index.js.map +1 -1
- package/dist/cluster/Cluster.d.ts +4 -63
- package/dist/cluster/Cluster.d.ts.map +1 -1
- package/dist/cluster/Cluster.js +10 -5
- package/dist/cluster/Cluster.js.map +1 -1
- package/dist/cluster/ClusterBootstrap.d.ts +6 -84
- package/dist/cluster/ClusterBootstrap.d.ts.map +1 -1
- package/dist/cluster/ClusterBootstrap.js +33 -21
- package/dist/cluster/ClusterBootstrap.js.map +1 -1
- package/dist/cluster/ClusterBootstrapOptions.d.ts +152 -0
- package/dist/cluster/ClusterBootstrapOptions.d.ts.map +1 -0
- package/dist/cluster/ClusterBootstrapOptions.js +103 -0
- package/dist/cluster/ClusterBootstrapOptions.js.map +1 -0
- package/dist/cluster/ClusterClient.d.ts +21 -31
- package/dist/cluster/ClusterClient.d.ts.map +1 -1
- package/dist/cluster/ClusterClient.js +21 -6
- package/dist/cluster/ClusterClient.js.map +1 -1
- package/dist/cluster/ClusterClientOptions.d.ts +65 -0
- package/dist/cluster/ClusterClientOptions.d.ts.map +1 -0
- package/dist/cluster/ClusterClientOptions.js +43 -0
- package/dist/cluster/ClusterClientOptions.js.map +1 -0
- package/dist/cluster/ClusterClientReceptionist.d.ts +2 -8
- package/dist/cluster/ClusterClientReceptionist.d.ts.map +1 -1
- package/dist/cluster/ClusterClientReceptionist.js +3 -1
- package/dist/cluster/ClusterClientReceptionist.js.map +1 -1
- package/dist/cluster/ClusterClientReceptionistOptions.d.ts +32 -0
- package/dist/cluster/ClusterClientReceptionistOptions.d.ts.map +1 -0
- package/dist/cluster/ClusterClientReceptionistOptions.js +22 -0
- package/dist/cluster/ClusterClientReceptionistOptions.js.map +1 -0
- package/dist/cluster/ClusterOptions.d.ts +116 -0
- package/dist/cluster/ClusterOptions.d.ts.map +1 -0
- package/dist/cluster/ClusterOptions.js +77 -0
- package/dist/cluster/ClusterOptions.js.map +1 -0
- package/dist/cluster/FailureDetector.d.ts +4 -11
- package/dist/cluster/FailureDetector.d.ts.map +1 -1
- package/dist/cluster/FailureDetector.js +4 -3
- package/dist/cluster/FailureDetector.js.map +1 -1
- package/dist/cluster/FailureDetectorOptions.d.ts +38 -0
- package/dist/cluster/FailureDetectorOptions.d.ts.map +1 -0
- package/dist/cluster/FailureDetectorOptions.js +31 -0
- package/dist/cluster/FailureDetectorOptions.js.map +1 -0
- package/dist/cluster/PhiAccrualFailureDetector.d.ts +3 -19
- package/dist/cluster/PhiAccrualFailureDetector.d.ts.map +1 -1
- package/dist/cluster/PhiAccrualFailureDetector.js +2 -2
- package/dist/cluster/PhiAccrualFailureDetector.js.map +1 -1
- package/dist/cluster/PhiAccrualOptions.d.ts +53 -0
- package/dist/cluster/PhiAccrualOptions.d.ts.map +1 -0
- package/dist/cluster/PhiAccrualOptions.js +43 -0
- package/dist/cluster/PhiAccrualOptions.js.map +1 -0
- package/dist/cluster/downing/KeepOldest.d.ts +2 -11
- package/dist/cluster/downing/KeepOldest.d.ts.map +1 -1
- package/dist/cluster/downing/KeepOldest.js +2 -2
- package/dist/cluster/downing/KeepOldest.js.map +1 -1
- package/dist/cluster/downing/KeepOldestOptions.d.ts +34 -0
- package/dist/cluster/downing/KeepOldestOptions.d.ts.map +1 -0
- package/dist/cluster/downing/KeepOldestOptions.js +23 -0
- package/dist/cluster/downing/KeepOldestOptions.js.map +1 -0
- package/dist/cluster/downing/KeepReferee.d.ts +2 -10
- package/dist/cluster/downing/KeepReferee.d.ts.map +1 -1
- package/dist/cluster/downing/KeepReferee.js +3 -3
- package/dist/cluster/downing/KeepReferee.js.map +1 -1
- package/dist/cluster/downing/KeepRefereeOptions.d.ts +35 -0
- package/dist/cluster/downing/KeepRefereeOptions.d.ts.map +1 -0
- package/dist/cluster/downing/KeepRefereeOptions.js +25 -0
- package/dist/cluster/downing/KeepRefereeOptions.js.map +1 -0
- package/dist/cluster/downing/LeaseMajority.d.ts +63 -21
- package/dist/cluster/downing/LeaseMajority.d.ts.map +1 -1
- package/dist/cluster/downing/LeaseMajority.js +132 -9
- package/dist/cluster/downing/LeaseMajority.js.map +1 -1
- package/dist/cluster/downing/LeaseMajorityOptions.d.ts +49 -0
- package/dist/cluster/downing/LeaseMajorityOptions.d.ts.map +1 -0
- package/dist/cluster/downing/LeaseMajorityOptions.js +31 -0
- package/dist/cluster/downing/LeaseMajorityOptions.js.map +1 -0
- package/dist/cluster/downing/StaticQuorum.d.ts +2 -7
- package/dist/cluster/downing/StaticQuorum.d.ts.map +1 -1
- package/dist/cluster/downing/StaticQuorum.js +3 -3
- package/dist/cluster/downing/StaticQuorum.js.map +1 -1
- package/dist/cluster/downing/StaticQuorumOptions.d.ts +30 -0
- package/dist/cluster/downing/StaticQuorumOptions.d.ts.map +1 -0
- package/dist/cluster/downing/StaticQuorumOptions.js +23 -0
- package/dist/cluster/downing/StaticQuorumOptions.js.map +1 -0
- package/dist/cluster/downing/index.d.ts +8 -4
- package/dist/cluster/downing/index.d.ts.map +1 -1
- package/dist/cluster/downing/index.js +4 -0
- package/dist/cluster/downing/index.js.map +1 -1
- package/dist/cluster/index.d.ts +34 -19
- package/dist/cluster/index.d.ts.map +1 -1
- package/dist/cluster/index.js +15 -4
- package/dist/cluster/index.js.map +1 -1
- package/dist/cluster/pubsub/DistributedPubSubExtension.d.ts +2 -2
- package/dist/cluster/pubsub/DistributedPubSubExtension.d.ts.map +1 -1
- package/dist/cluster/pubsub/DistributedPubSubExtension.js +5 -2
- package/dist/cluster/pubsub/DistributedPubSubExtension.js.map +1 -1
- package/dist/cluster/pubsub/DistributedPubSubMediator.d.ts +3 -7
- package/dist/cluster/pubsub/DistributedPubSubMediator.d.ts.map +1 -1
- package/dist/cluster/pubsub/DistributedPubSubMediator.js +3 -3
- package/dist/cluster/pubsub/DistributedPubSubMediator.js.map +1 -1
- package/dist/cluster/pubsub/DistributedPubSubOptions.d.ts +29 -0
- package/dist/cluster/pubsub/DistributedPubSubOptions.d.ts.map +1 -0
- package/dist/cluster/pubsub/DistributedPubSubOptions.js +23 -0
- package/dist/cluster/pubsub/DistributedPubSubOptions.js.map +1 -0
- package/dist/cluster/pubsub/index.d.ts +2 -1
- package/dist/cluster/pubsub/index.d.ts.map +1 -1
- package/dist/cluster/pubsub/index.js +1 -0
- package/dist/cluster/pubsub/index.js.map +1 -1
- package/dist/cluster/router/ClusterRouter.d.ts +12 -32
- package/dist/cluster/router/ClusterRouter.d.ts.map +1 -1
- package/dist/cluster/router/ClusterRouter.js +4 -2
- package/dist/cluster/router/ClusterRouter.js.map +1 -1
- package/dist/cluster/router/ClusterRouterOptions.d.ts +60 -0
- package/dist/cluster/router/ClusterRouterOptions.d.ts.map +1 -0
- package/dist/cluster/router/ClusterRouterOptions.js +41 -0
- package/dist/cluster/router/ClusterRouterOptions.js.map +1 -0
- package/dist/cluster/router/index.d.ts +3 -1
- package/dist/cluster/router/index.d.ts.map +1 -1
- package/dist/cluster/router/index.js +1 -0
- package/dist/cluster/router/index.js.map +1 -1
- package/dist/cluster/sharding/CassandraRememberEntitiesStore.d.ts +1 -15
- package/dist/cluster/sharding/CassandraRememberEntitiesStore.d.ts.map +1 -1
- package/dist/cluster/sharding/CassandraRememberEntitiesStore.js +35 -2
- package/dist/cluster/sharding/CassandraRememberEntitiesStore.js.map +1 -1
- package/dist/cluster/sharding/CassandraRememberEntitiesStoreOptions.d.ts +63 -0
- package/dist/cluster/sharding/CassandraRememberEntitiesStoreOptions.d.ts.map +1 -0
- package/dist/cluster/sharding/CassandraRememberEntitiesStoreOptions.js +63 -0
- package/dist/cluster/sharding/CassandraRememberEntitiesStoreOptions.js.map +1 -0
- package/dist/cluster/sharding/ClusterSharding.d.ts +18 -64
- package/dist/cluster/sharding/ClusterSharding.d.ts.map +1 -1
- package/dist/cluster/sharding/ClusterSharding.js +44 -20
- package/dist/cluster/sharding/ClusterSharding.js.map +1 -1
- package/dist/cluster/sharding/CoordinatorState.d.ts +1 -1
- package/dist/cluster/sharding/CoordinatorState.js +1 -1
- package/dist/cluster/sharding/ShardCoordinator.d.ts +3 -63
- package/dist/cluster/sharding/ShardCoordinator.d.ts.map +1 -1
- package/dist/cluster/sharding/ShardCoordinator.js +3 -3
- package/dist/cluster/sharding/ShardCoordinator.js.map +1 -1
- package/dist/cluster/sharding/ShardCoordinatorOptions.d.ts +111 -0
- package/dist/cluster/sharding/ShardCoordinatorOptions.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardCoordinatorOptions.js +69 -0
- package/dist/cluster/sharding/ShardCoordinatorOptions.js.map +1 -0
- package/dist/cluster/sharding/ShardRegion.d.ts +2 -33
- package/dist/cluster/sharding/ShardRegion.d.ts.map +1 -1
- package/dist/cluster/sharding/ShardRegion.js.map +1 -1
- package/dist/cluster/sharding/ShardedDaemonProcess.d.ts +2 -22
- package/dist/cluster/sharding/ShardedDaemonProcess.d.ts.map +1 -1
- package/dist/cluster/sharding/ShardedDaemonProcess.js +14 -11
- package/dist/cluster/sharding/ShardedDaemonProcess.js.map +1 -1
- package/dist/cluster/sharding/ShardedDaemonProcessOptions.d.ts +51 -0
- package/dist/cluster/sharding/ShardedDaemonProcessOptions.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardedDaemonProcessOptions.js +35 -0
- package/dist/cluster/sharding/ShardedDaemonProcessOptions.js.map +1 -0
- package/dist/cluster/sharding/ShardingOptions.d.ts +84 -0
- package/dist/cluster/sharding/ShardingOptions.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardingOptions.js +62 -0
- package/dist/cluster/sharding/ShardingOptions.js.map +1 -0
- package/dist/cluster/sharding/StartShardingOptions.d.ts +98 -0
- package/dist/cluster/sharding/StartShardingOptions.d.ts.map +1 -0
- package/dist/cluster/sharding/StartShardingOptions.js +52 -0
- package/dist/cluster/sharding/StartShardingOptions.js.map +1 -0
- package/dist/cluster/singleton/ClusterSingleton.d.ts +2 -30
- package/dist/cluster/singleton/ClusterSingleton.d.ts.map +1 -1
- package/dist/cluster/singleton/ClusterSingleton.js +15 -9
- package/dist/cluster/singleton/ClusterSingleton.js.map +1 -1
- package/dist/cluster/singleton/ClusterSingletonManager.d.ts +3 -18
- package/dist/cluster/singleton/ClusterSingletonManager.d.ts.map +1 -1
- package/dist/cluster/singleton/ClusterSingletonManager.js +3 -3
- package/dist/cluster/singleton/ClusterSingletonManager.js.map +1 -1
- package/dist/cluster/singleton/ClusterSingletonManagerOptions.d.ts +49 -0
- package/dist/cluster/singleton/ClusterSingletonManagerOptions.d.ts.map +1 -0
- package/dist/cluster/singleton/ClusterSingletonManagerOptions.js +40 -0
- package/dist/cluster/singleton/ClusterSingletonManagerOptions.js.map +1 -0
- package/dist/cluster/singleton/StartSingletonOptions.d.ts +64 -0
- package/dist/cluster/singleton/StartSingletonOptions.d.ts.map +1 -0
- package/dist/cluster/singleton/StartSingletonOptions.js +40 -0
- package/dist/cluster/singleton/StartSingletonOptions.js.map +1 -0
- package/dist/cluster/singleton/index.d.ts +6 -2
- package/dist/cluster/singleton/index.d.ts.map +1 -1
- package/dist/cluster/singleton/index.js +2 -0
- package/dist/cluster/singleton/index.js.map +1 -1
- package/dist/config/ConfigKeys.d.ts +5 -0
- package/dist/config/ConfigKeys.d.ts.map +1 -1
- package/dist/config/ConfigKeys.js +5 -0
- package/dist/config/ConfigKeys.js.map +1 -1
- package/dist/coordination/Lease.d.ts +32 -14
- package/dist/coordination/Lease.d.ts.map +1 -1
- package/dist/coordination/LeaseOptions.d.ts +61 -0
- package/dist/coordination/LeaseOptions.d.ts.map +1 -0
- package/dist/coordination/LeaseOptions.js +50 -0
- package/dist/coordination/LeaseOptions.js.map +1 -0
- package/dist/coordination/index.d.ts +5 -2
- package/dist/coordination/index.d.ts.map +1 -1
- package/dist/coordination/index.js +2 -0
- package/dist/coordination/index.js.map +1 -1
- package/dist/coordination/leases/InMemoryLease.d.ts +18 -5
- package/dist/coordination/leases/InMemoryLease.d.ts.map +1 -1
- package/dist/coordination/leases/InMemoryLease.js +23 -11
- package/dist/coordination/leases/InMemoryLease.js.map +1 -1
- package/dist/coordination/leases/KubernetesLease.d.ts +19 -24
- package/dist/coordination/leases/KubernetesLease.d.ts.map +1 -1
- package/dist/coordination/leases/KubernetesLease.js +28 -9
- package/dist/coordination/leases/KubernetesLease.js.map +1 -1
- package/dist/coordination/leases/KubernetesLeaseOptions.d.ts +58 -0
- package/dist/coordination/leases/KubernetesLeaseOptions.d.ts.map +1 -0
- package/dist/coordination/leases/KubernetesLeaseOptions.js +42 -0
- package/dist/coordination/leases/KubernetesLeaseOptions.js.map +1 -0
- package/dist/crdt/DistributedData.d.ts +2 -22
- package/dist/crdt/DistributedData.d.ts.map +1 -1
- package/dist/crdt/DistributedData.js +3 -2
- package/dist/crdt/DistributedData.js.map +1 -1
- package/dist/crdt/DistributedDataOptions.d.ts +50 -0
- package/dist/crdt/DistributedDataOptions.d.ts.map +1 -0
- package/dist/crdt/DistributedDataOptions.js +28 -0
- package/dist/crdt/DistributedDataOptions.js.map +1 -0
- package/dist/crdt/index.d.ts +3 -1
- package/dist/crdt/index.d.ts.map +1 -1
- package/dist/crdt/index.js +1 -0
- package/dist/crdt/index.js.map +1 -1
- package/dist/delivery/ProducerController.d.ts +4 -19
- package/dist/delivery/ProducerController.d.ts.map +1 -1
- package/dist/delivery/ProducerController.js +4 -3
- package/dist/delivery/ProducerController.js.map +1 -1
- package/dist/delivery/ProducerControllerOptions.d.ts +50 -0
- package/dist/delivery/ProducerControllerOptions.d.ts.map +1 -0
- package/dist/delivery/ProducerControllerOptions.js +36 -0
- package/dist/delivery/ProducerControllerOptions.js.map +1 -0
- package/dist/delivery/ReliableDelivery.d.ts +3 -2
- package/dist/delivery/ReliableDelivery.d.ts.map +1 -1
- package/dist/delivery/ReliableDelivery.js +2 -2
- package/dist/delivery/ReliableDelivery.js.map +1 -1
- package/dist/delivery/index.d.ts +3 -1
- package/dist/delivery/index.d.ts.map +1 -1
- package/dist/delivery/index.js +1 -0
- package/dist/delivery/index.js.map +1 -1
- package/dist/discovery/AutoDiscoveryOptions.d.ts +72 -0
- package/dist/discovery/AutoDiscoveryOptions.d.ts.map +1 -0
- package/dist/discovery/AutoDiscoveryOptions.js +34 -0
- package/dist/discovery/AutoDiscoveryOptions.js.map +1 -0
- package/dist/discovery/ConfigSeedProvider.d.ts +2 -7
- package/dist/discovery/ConfigSeedProvider.d.ts.map +1 -1
- package/dist/discovery/ConfigSeedProvider.js +4 -3
- package/dist/discovery/ConfigSeedProvider.js.map +1 -1
- package/dist/discovery/ConfigSeedProviderOptions.d.ts +34 -0
- package/dist/discovery/ConfigSeedProviderOptions.d.ts.map +1 -0
- package/dist/discovery/ConfigSeedProviderOptions.js +27 -0
- package/dist/discovery/ConfigSeedProviderOptions.js.map +1 -0
- package/dist/discovery/DnsSeedProvider.d.ts +3 -27
- package/dist/discovery/DnsSeedProvider.d.ts.map +1 -1
- package/dist/discovery/DnsSeedProvider.js +4 -4
- package/dist/discovery/DnsSeedProvider.js.map +1 -1
- package/dist/discovery/DnsSeedProviderOptions.d.ts +67 -0
- package/dist/discovery/DnsSeedProviderOptions.d.ts.map +1 -0
- package/dist/discovery/DnsSeedProviderOptions.js +48 -0
- package/dist/discovery/DnsSeedProviderOptions.js.map +1 -0
- package/dist/discovery/KubernetesApiSeedProvider.d.ts +2 -13
- package/dist/discovery/KubernetesApiSeedProvider.d.ts.map +1 -1
- package/dist/discovery/KubernetesApiSeedProvider.js +2 -2
- package/dist/discovery/KubernetesApiSeedProvider.js.map +1 -1
- package/dist/discovery/KubernetesApiSeedProviderOptions.d.ts +46 -0
- package/dist/discovery/KubernetesApiSeedProviderOptions.d.ts.map +1 -0
- package/dist/discovery/KubernetesApiSeedProviderOptions.js +39 -0
- package/dist/discovery/KubernetesApiSeedProviderOptions.js.map +1 -0
- package/dist/discovery/Receptionist.d.ts +3 -6
- package/dist/discovery/Receptionist.d.ts.map +1 -1
- package/dist/discovery/Receptionist.js +10 -3
- package/dist/discovery/Receptionist.js.map +1 -1
- package/dist/discovery/ReceptionistOptions.d.ts +30 -0
- package/dist/discovery/ReceptionistOptions.d.ts.map +1 -0
- package/dist/discovery/ReceptionistOptions.js +24 -0
- package/dist/discovery/ReceptionistOptions.js.map +1 -0
- package/dist/discovery/autoDiscovery.d.ts +3 -44
- package/dist/discovery/autoDiscovery.d.ts.map +1 -1
- package/dist/discovery/autoDiscovery.js +31 -32
- package/dist/discovery/autoDiscovery.js.map +1 -1
- package/dist/discovery/index.d.ts +10 -5
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +5 -0
- package/dist/discovery/index.js.map +1 -1
- package/dist/http/HttpExtension.d.ts.map +1 -1
- package/dist/http/HttpExtension.js +69 -8
- package/dist/http/HttpExtension.js.map +1 -1
- package/dist/http/Route.d.ts +76 -4
- package/dist/http/Route.d.ts.map +1 -1
- package/dist/http/Route.js +74 -1
- package/dist/http/Route.js.map +1 -1
- package/dist/http/backend/ExpressBackend.d.ts +18 -12
- package/dist/http/backend/ExpressBackend.d.ts.map +1 -1
- package/dist/http/backend/ExpressBackend.js +134 -8
- package/dist/http/backend/ExpressBackend.js.map +1 -1
- package/dist/http/backend/ExpressBackendOptions.d.ts +47 -0
- package/dist/http/backend/ExpressBackendOptions.d.ts.map +1 -0
- package/dist/http/backend/ExpressBackendOptions.js +35 -0
- package/dist/http/backend/ExpressBackendOptions.js.map +1 -0
- package/dist/http/backend/FastifyBackend.d.ts +4 -1
- package/dist/http/backend/FastifyBackend.d.ts.map +1 -1
- package/dist/http/backend/FastifyBackend.js +71 -1
- package/dist/http/backend/FastifyBackend.js.map +1 -1
- package/dist/http/backend/HonoBackend.d.ts +19 -13
- package/dist/http/backend/HonoBackend.d.ts.map +1 -1
- package/dist/http/backend/HonoBackend.js +152 -5
- package/dist/http/backend/HonoBackend.js.map +1 -1
- package/dist/http/backend/HonoBackendOptions.d.ts +47 -0
- package/dist/http/backend/HonoBackendOptions.d.ts.map +1 -0
- package/dist/http/backend/HonoBackendOptions.js +35 -0
- package/dist/http/backend/HonoBackendOptions.js.map +1 -0
- package/dist/http/backend/HttpServerBackend.d.ts +24 -0
- package/dist/http/backend/HttpServerBackend.d.ts.map +1 -1
- package/dist/http/index.d.ts +11 -5
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +8 -1
- package/dist/http/index.js.map +1 -1
- package/dist/http/middleware/BearerToken.d.ts +44 -0
- package/dist/http/middleware/BearerToken.d.ts.map +1 -0
- package/dist/http/middleware/BearerToken.js +72 -0
- package/dist/http/middleware/BearerToken.js.map +1 -0
- package/dist/http/middleware/IpAllowlist.d.ts +45 -0
- package/dist/http/middleware/IpAllowlist.d.ts.map +1 -0
- package/dist/http/middleware/IpAllowlist.js +148 -0
- package/dist/http/middleware/IpAllowlist.js.map +1 -0
- package/dist/http/middleware/index.d.ts +5 -0
- package/dist/http/middleware/index.d.ts.map +1 -0
- package/dist/http/middleware/index.js +3 -0
- package/dist/http/middleware/index.js.map +1 -0
- package/dist/http/types.d.ts +9 -0
- package/dist/http/types.d.ts.map +1 -1
- package/dist/http/types.js.map +1 -1
- package/dist/http/ws/ConnectionWiring.d.ts +59 -0
- package/dist/http/ws/ConnectionWiring.d.ts.map +1 -0
- package/dist/http/ws/ConnectionWiring.js +112 -0
- package/dist/http/ws/ConnectionWiring.js.map +1 -0
- package/dist/http/ws/SocketAdapter.d.ts +72 -0
- package/dist/http/ws/SocketAdapter.d.ts.map +1 -0
- package/dist/http/ws/SocketAdapter.js +97 -0
- package/dist/http/ws/SocketAdapter.js.map +1 -0
- package/dist/http/ws/WebSocketClientActor.d.ts +66 -0
- package/dist/http/ws/WebSocketClientActor.d.ts.map +1 -0
- package/dist/http/ws/WebSocketClientActor.js +194 -0
- package/dist/http/ws/WebSocketClientActor.js.map +1 -0
- package/dist/http/ws/WebSocketClientOptions.d.ts +77 -0
- package/dist/http/ws/WebSocketClientOptions.d.ts.map +1 -0
- package/dist/http/ws/WebSocketClientOptions.js +69 -0
- package/dist/http/ws/WebSocketClientOptions.js.map +1 -0
- package/dist/http/ws/WebSocketConnectionActor.d.ts +51 -0
- package/dist/http/ws/WebSocketConnectionActor.d.ts.map +1 -0
- package/dist/http/ws/WebSocketConnectionActor.js +170 -0
- package/dist/http/ws/WebSocketConnectionActor.js.map +1 -0
- package/dist/http/ws/WebSocketRoute.d.ts +20 -0
- package/dist/http/ws/WebSocketRoute.d.ts.map +1 -0
- package/dist/http/ws/WebSocketRoute.js +44 -0
- package/dist/http/ws/WebSocketRoute.js.map +1 -0
- package/dist/http/ws/WebSocketRouteOptions.d.ts +54 -0
- package/dist/http/ws/WebSocketRouteOptions.d.ts.map +1 -0
- package/dist/http/ws/WebSocketRouteOptions.js +55 -0
- package/dist/http/ws/WebSocketRouteOptions.js.map +1 -0
- package/dist/http/ws/WebSocketServerActor.d.ts +65 -0
- package/dist/http/ws/WebSocketServerActor.d.ts.map +1 -0
- package/dist/http/ws/WebSocketServerActor.js +133 -0
- package/dist/http/ws/WebSocketServerActor.js.map +1 -0
- package/dist/http/ws/WsCodec.d.ts +65 -0
- package/dist/http/ws/WsCodec.d.ts.map +1 -0
- package/dist/http/ws/WsCodec.js +82 -0
- package/dist/http/ws/WsCodec.js.map +1 -0
- package/dist/http/ws/WsConnection.d.ts +59 -0
- package/dist/http/ws/WsConnection.d.ts.map +1 -0
- package/dist/http/ws/WsConnection.js +45 -0
- package/dist/http/ws/WsConnection.js.map +1 -0
- package/dist/http/ws/WsMessages.d.ts +91 -0
- package/dist/http/ws/WsMessages.d.ts.map +1 -0
- package/dist/http/ws/WsMessages.js +90 -0
- package/dist/http/ws/WsMessages.js.map +1 -0
- package/dist/http/ws/WsPolicy.d.ts +32 -0
- package/dist/http/ws/WsPolicy.d.ts.map +1 -0
- package/dist/http/ws/WsPolicy.js +43 -0
- package/dist/http/ws/WsPolicy.js.map +1 -0
- package/dist/http/ws/index.d.ts +22 -0
- package/dist/http/ws/index.d.ts.map +1 -0
- package/dist/http/ws/index.js +15 -0
- package/dist/http/ws/index.js.map +1 -0
- package/dist/http/ws/matchPattern.d.ts +12 -0
- package/dist/http/ws/matchPattern.d.ts.map +1 -0
- package/dist/http/ws/matchPattern.js +29 -0
- package/dist/http/ws/matchPattern.js.map +1 -0
- package/dist/http/ws/rawResponse.d.ts +15 -0
- package/dist/http/ws/rawResponse.d.ts.map +1 -0
- package/dist/http/ws/rawResponse.js +54 -0
- package/dist/http/ws/rawResponse.js.map +1 -0
- package/dist/http/ws/types.d.ts +70 -0
- package/dist/http/ws/types.d.ts.map +1 -0
- package/dist/http/ws/types.js +81 -0
- package/dist/http/ws/types.js.map +1 -0
- package/dist/http/ws/wsCtor.d.ts +34 -0
- package/dist/http/ws/wsCtor.d.ts.map +1 -0
- package/dist/http/ws/wsCtor.js +38 -0
- package/dist/http/ws/wsCtor.js.map +1 -0
- package/dist/index.d.ts +25 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -11
- package/dist/index.js.map +1 -1
- package/dist/internal/ActorCell.d.ts +16 -1
- package/dist/internal/ActorCell.d.ts.map +1 -1
- package/dist/internal/ActorCell.js +32 -2
- package/dist/internal/ActorCell.js.map +1 -1
- package/dist/io/broker/AmqpActor.d.ts +19 -16
- package/dist/io/broker/AmqpActor.d.ts.map +1 -1
- package/dist/io/broker/AmqpActor.js +13 -5
- package/dist/io/broker/AmqpActor.js.map +1 -1
- package/dist/io/broker/AmqpOptions.d.ts +41 -0
- package/dist/io/broker/AmqpOptions.d.ts.map +1 -0
- package/dist/io/broker/AmqpOptions.js +34 -0
- package/dist/io/broker/AmqpOptions.js.map +1 -0
- package/dist/io/broker/BrokerActor.d.ts +4 -3
- package/dist/io/broker/BrokerActor.d.ts.map +1 -1
- package/dist/io/broker/BrokerActor.js +4 -2
- package/dist/io/broker/BrokerActor.js.map +1 -1
- package/dist/io/broker/BrokerOptions.d.ts +24 -0
- package/dist/io/broker/BrokerOptions.d.ts.map +1 -0
- package/dist/io/broker/BrokerOptions.js +29 -0
- package/dist/io/broker/BrokerOptions.js.map +1 -0
- package/dist/io/broker/BrokerSettings.d.ts +2 -2
- package/dist/io/broker/BrokerSettings.d.ts.map +1 -1
- package/dist/io/broker/BrokerSettings.js.map +1 -1
- package/dist/io/broker/GrpcClientActor.d.ts +6 -19
- package/dist/io/broker/GrpcClientActor.d.ts.map +1 -1
- package/dist/io/broker/GrpcClientActor.js +1 -1
- package/dist/io/broker/GrpcClientActor.js.map +1 -1
- package/dist/io/broker/GrpcClientOptions.d.ts +48 -0
- package/dist/io/broker/GrpcClientOptions.d.ts.map +1 -0
- package/dist/io/broker/GrpcClientOptions.js +42 -0
- package/dist/io/broker/GrpcClientOptions.js.map +1 -0
- package/dist/io/broker/GrpcServerActor.d.ts +3 -24
- package/dist/io/broker/GrpcServerActor.d.ts.map +1 -1
- package/dist/io/broker/GrpcServerActor.js +3 -3
- package/dist/io/broker/GrpcServerActor.js.map +1 -1
- package/dist/io/broker/GrpcServerOptions.d.ts +58 -0
- package/dist/io/broker/GrpcServerOptions.d.ts.map +1 -0
- package/dist/io/broker/GrpcServerOptions.js +44 -0
- package/dist/io/broker/GrpcServerOptions.js.map +1 -0
- package/dist/io/broker/JetStreamActor.d.ts +13 -35
- package/dist/io/broker/JetStreamActor.d.ts.map +1 -1
- package/dist/io/broker/JetStreamActor.js +2 -2
- package/dist/io/broker/JetStreamActor.js.map +1 -1
- package/dist/io/broker/JetStreamOptions.d.ts +64 -0
- package/dist/io/broker/JetStreamOptions.d.ts.map +1 -0
- package/dist/io/broker/JetStreamOptions.js +54 -0
- package/dist/io/broker/JetStreamOptions.js.map +1 -0
- package/dist/io/broker/KafkaActor.d.ts +13 -54
- package/dist/io/broker/KafkaActor.d.ts.map +1 -1
- package/dist/io/broker/KafkaActor.js +20 -8
- package/dist/io/broker/KafkaActor.js.map +1 -1
- package/dist/io/broker/KafkaOptions.d.ts +82 -0
- package/dist/io/broker/KafkaOptions.d.ts.map +1 -0
- package/dist/io/broker/KafkaOptions.js +50 -0
- package/dist/io/broker/KafkaOptions.js.map +1 -0
- package/dist/io/broker/MqttActor.d.ts +174 -114
- package/dist/io/broker/MqttActor.d.ts.map +1 -1
- package/dist/io/broker/MqttActor.js +328 -103
- package/dist/io/broker/MqttActor.js.map +1 -1
- package/dist/io/broker/MqttCodec.d.ts +70 -0
- package/dist/io/broker/MqttCodec.d.ts.map +1 -0
- package/dist/io/broker/MqttCodec.js +98 -0
- package/dist/io/broker/MqttCodec.js.map +1 -0
- package/dist/io/broker/MqttMessages.d.ts +145 -0
- package/dist/io/broker/MqttMessages.d.ts.map +1 -0
- package/dist/io/broker/MqttMessages.js +102 -0
- package/dist/io/broker/MqttMessages.js.map +1 -0
- package/dist/io/broker/MqttOptions.d.ts +100 -0
- package/dist/io/broker/MqttOptions.d.ts.map +1 -0
- package/dist/io/broker/MqttOptions.js +73 -0
- package/dist/io/broker/MqttOptions.js.map +1 -0
- package/dist/io/broker/NatsActor.d.ts +6 -21
- package/dist/io/broker/NatsActor.d.ts.map +1 -1
- package/dist/io/broker/NatsActor.js +1 -1
- package/dist/io/broker/NatsActor.js.map +1 -1
- package/dist/io/broker/NatsOptions.d.ts +51 -0
- package/dist/io/broker/NatsOptions.d.ts.map +1 -0
- package/dist/io/broker/NatsOptions.js +42 -0
- package/dist/io/broker/NatsOptions.js.map +1 -0
- package/dist/io/broker/RedisStreamsActor.d.ts +6 -24
- package/dist/io/broker/RedisStreamsActor.d.ts.map +1 -1
- package/dist/io/broker/RedisStreamsActor.js +1 -1
- package/dist/io/broker/RedisStreamsActor.js.map +1 -1
- package/dist/io/broker/RedisStreamsOptions.d.ts +51 -0
- package/dist/io/broker/RedisStreamsOptions.d.ts.map +1 -0
- package/dist/io/broker/RedisStreamsOptions.js +38 -0
- package/dist/io/broker/RedisStreamsOptions.js.map +1 -0
- package/dist/io/broker/SseActor.d.ts +6 -15
- package/dist/io/broker/SseActor.d.ts.map +1 -1
- package/dist/io/broker/SseActor.js +1 -1
- package/dist/io/broker/SseActor.js.map +1 -1
- package/dist/io/broker/SseOptions.d.ts +38 -0
- package/dist/io/broker/SseOptions.d.ts.map +1 -0
- package/dist/io/broker/SseOptions.js +30 -0
- package/dist/io/broker/SseOptions.js.map +1 -0
- package/dist/io/broker/TcpSocketActor.d.ts +6 -21
- package/dist/io/broker/TcpSocketActor.d.ts.map +1 -1
- package/dist/io/broker/TcpSocketActor.js +1 -1
- package/dist/io/broker/TcpSocketActor.js.map +1 -1
- package/dist/io/broker/TcpSocketOptions.d.ts +46 -0
- package/dist/io/broker/TcpSocketOptions.d.ts.map +1 -0
- package/dist/io/broker/TcpSocketOptions.js +34 -0
- package/dist/io/broker/TcpSocketOptions.js.map +1 -0
- package/dist/io/broker/UdpSocketActor.d.ts +6 -17
- package/dist/io/broker/UdpSocketActor.d.ts.map +1 -1
- package/dist/io/broker/UdpSocketActor.js +1 -1
- package/dist/io/broker/UdpSocketActor.js.map +1 -1
- package/dist/io/broker/UdpSocketOptions.d.ts +42 -0
- package/dist/io/broker/UdpSocketOptions.d.ts.map +1 -0
- package/dist/io/broker/UdpSocketOptions.js +34 -0
- package/dist/io/broker/UdpSocketOptions.js.map +1 -0
- package/dist/io/broker/index.d.ts +39 -19
- package/dist/io/broker/index.d.ts.map +1 -1
- package/dist/io/broker/index.js +21 -4
- package/dist/io/broker/index.js.map +1 -1
- package/dist/mailbox/BoundedMailbox.d.ts +12 -0
- package/dist/mailbox/BoundedMailbox.d.ts.map +1 -1
- package/dist/mailbox/BoundedMailbox.js +7 -1
- package/dist/mailbox/BoundedMailbox.js.map +1 -1
- package/dist/management/HttpManagement.d.ts +34 -1
- package/dist/management/HttpManagement.d.ts.map +1 -1
- package/dist/management/HttpManagement.js +30 -4
- package/dist/management/HttpManagement.js.map +1 -1
- package/dist/metrics/PromClientAdapter.d.ts +2 -12
- package/dist/metrics/PromClientAdapter.d.ts.map +1 -1
- package/dist/metrics/PromClientAdapter.js +2 -2
- package/dist/metrics/PromClientAdapter.js.map +1 -1
- package/dist/metrics/PromClientAdapterOptions.d.ts +46 -0
- package/dist/metrics/PromClientAdapterOptions.d.ts.map +1 -0
- package/dist/metrics/PromClientAdapterOptions.js +35 -0
- package/dist/metrics/PromClientAdapterOptions.js.map +1 -0
- package/dist/metrics/index.d.ts +3 -1
- package/dist/metrics/index.d.ts.map +1 -1
- package/dist/metrics/index.js +1 -0
- package/dist/metrics/index.js.map +1 -1
- package/dist/persistence/DurableStateActor.d.ts +4 -9
- package/dist/persistence/DurableStateActor.d.ts.map +1 -1
- package/dist/persistence/DurableStateActor.js +3 -3
- package/dist/persistence/DurableStateActor.js.map +1 -1
- package/dist/persistence/DurableStateOptions.d.ts +40 -0
- package/dist/persistence/DurableStateOptions.d.ts.map +1 -0
- package/dist/persistence/DurableStateOptions.js +36 -0
- package/dist/persistence/DurableStateOptions.js.map +1 -0
- package/dist/persistence/PersistenceOptions.d.ts +45 -0
- package/dist/persistence/PersistenceOptions.d.ts.map +1 -1
- package/dist/persistence/ReplicatedEventSourcedActor.d.ts.map +1 -1
- package/dist/persistence/ReplicatedEventSourcedActor.js +2 -2
- package/dist/persistence/ReplicatedEventSourcedActor.js.map +1 -1
- package/dist/persistence/durable-state-stores/MariaDbDurableStateStore.d.ts +32 -0
- package/dist/persistence/durable-state-stores/MariaDbDurableStateStore.d.ts.map +1 -0
- package/dist/persistence/durable-state-stores/MariaDbDurableStateStore.js +120 -0
- package/dist/persistence/durable-state-stores/MariaDbDurableStateStore.js.map +1 -0
- package/dist/persistence/durable-state-stores/MariaDbDurableStateStoreOptions.d.ts +38 -0
- package/dist/persistence/durable-state-stores/MariaDbDurableStateStoreOptions.d.ts.map +1 -0
- package/dist/persistence/durable-state-stores/MariaDbDurableStateStoreOptions.js +38 -0
- package/dist/persistence/durable-state-stores/MariaDbDurableStateStoreOptions.js.map +1 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.d.ts +4 -9
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.d.ts.map +1 -1
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.js +49 -7
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.js.map +1 -1
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStoreOptions.d.ts +61 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStoreOptions.d.ts.map +1 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStoreOptions.js +42 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStoreOptions.js.map +1 -0
- package/dist/persistence/durable-state-stores/PostgresDurableStateStore.d.ts +38 -0
- package/dist/persistence/durable-state-stores/PostgresDurableStateStore.d.ts.map +1 -0
- package/dist/persistence/durable-state-stores/PostgresDurableStateStore.js +121 -0
- package/dist/persistence/durable-state-stores/PostgresDurableStateStore.js.map +1 -0
- package/dist/persistence/durable-state-stores/PostgresDurableStateStoreOptions.d.ts +38 -0
- package/dist/persistence/durable-state-stores/PostgresDurableStateStoreOptions.d.ts.map +1 -0
- package/dist/persistence/durable-state-stores/PostgresDurableStateStoreOptions.js +38 -0
- package/dist/persistence/durable-state-stores/PostgresDurableStateStoreOptions.js.map +1 -0
- package/dist/persistence/index.d.ts +59 -16
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +33 -2
- package/dist/persistence/index.js.map +1 -1
- package/dist/persistence/journals/CassandraJournal.d.ts +1 -48
- package/dist/persistence/journals/CassandraJournal.d.ts.map +1 -1
- package/dist/persistence/journals/CassandraJournal.js +2 -2
- package/dist/persistence/journals/CassandraJournal.js.map +1 -1
- package/dist/persistence/journals/CassandraJournalOptions.d.ts +107 -0
- package/dist/persistence/journals/CassandraJournalOptions.d.ts.map +1 -0
- package/dist/persistence/journals/CassandraJournalOptions.js +90 -0
- package/dist/persistence/journals/CassandraJournalOptions.js.map +1 -0
- package/dist/persistence/journals/CassandraPlugin.d.ts +1 -16
- package/dist/persistence/journals/CassandraPlugin.d.ts.map +1 -1
- package/dist/persistence/journals/CassandraPlugin.js +9 -4
- package/dist/persistence/journals/CassandraPlugin.js.map +1 -1
- package/dist/persistence/journals/CassandraPluginOptions.d.ts +51 -0
- package/dist/persistence/journals/CassandraPluginOptions.d.ts.map +1 -0
- package/dist/persistence/journals/CassandraPluginOptions.js +37 -0
- package/dist/persistence/journals/CassandraPluginOptions.js.map +1 -0
- package/dist/persistence/journals/MariaDbClient.d.ts +54 -0
- package/dist/persistence/journals/MariaDbClient.d.ts.map +1 -0
- package/dist/persistence/journals/MariaDbClient.js +40 -0
- package/dist/persistence/journals/MariaDbClient.js.map +1 -0
- package/dist/persistence/journals/MariaDbJournal.d.ts +29 -0
- package/dist/persistence/journals/MariaDbJournal.d.ts.map +1 -0
- package/dist/persistence/journals/MariaDbJournal.js +161 -0
- package/dist/persistence/journals/MariaDbJournal.js.map +1 -0
- package/dist/persistence/journals/MariaDbJournalOptions.d.ts +43 -0
- package/dist/persistence/journals/MariaDbJournalOptions.d.ts.map +1 -0
- package/dist/persistence/journals/MariaDbJournalOptions.js +43 -0
- package/dist/persistence/journals/MariaDbJournalOptions.js.map +1 -0
- package/dist/persistence/journals/MariaDbPlugin.d.ts +27 -0
- package/dist/persistence/journals/MariaDbPlugin.d.ts.map +1 -0
- package/dist/persistence/journals/MariaDbPlugin.js +30 -0
- package/dist/persistence/journals/MariaDbPlugin.js.map +1 -0
- package/dist/persistence/journals/MariaDbPluginOptions.d.ts +52 -0
- package/dist/persistence/journals/MariaDbPluginOptions.d.ts.map +1 -0
- package/dist/persistence/journals/MariaDbPluginOptions.js +38 -0
- package/dist/persistence/journals/MariaDbPluginOptions.js.map +1 -0
- package/dist/persistence/journals/PostgresClient.d.ts +56 -0
- package/dist/persistence/journals/PostgresClient.d.ts.map +1 -0
- package/dist/persistence/journals/PostgresClient.js +35 -0
- package/dist/persistence/journals/PostgresClient.js.map +1 -0
- package/dist/persistence/journals/PostgresJournal.d.ts +41 -0
- package/dist/persistence/journals/PostgresJournal.d.ts.map +1 -0
- package/dist/persistence/journals/PostgresJournal.js +176 -0
- package/dist/persistence/journals/PostgresJournal.js.map +1 -0
- package/dist/persistence/journals/PostgresJournalOptions.d.ts +44 -0
- package/dist/persistence/journals/PostgresJournalOptions.d.ts.map +1 -0
- package/dist/persistence/journals/PostgresJournalOptions.js +44 -0
- package/dist/persistence/journals/PostgresJournalOptions.js.map +1 -0
- package/dist/persistence/journals/PostgresPlugin.d.ts +32 -0
- package/dist/persistence/journals/PostgresPlugin.d.ts.map +1 -0
- package/dist/persistence/journals/PostgresPlugin.js +35 -0
- package/dist/persistence/journals/PostgresPlugin.js.map +1 -0
- package/dist/persistence/journals/PostgresPluginOptions.d.ts +54 -0
- package/dist/persistence/journals/PostgresPluginOptions.d.ts.map +1 -0
- package/dist/persistence/journals/PostgresPluginOptions.js +39 -0
- package/dist/persistence/journals/PostgresPluginOptions.js.map +1 -0
- package/dist/persistence/journals/SqliteJournal.d.ts +5 -19
- package/dist/persistence/journals/SqliteJournal.d.ts.map +1 -1
- package/dist/persistence/journals/SqliteJournal.js +10 -9
- package/dist/persistence/journals/SqliteJournal.js.map +1 -1
- package/dist/persistence/journals/SqliteJournalOptions.d.ts +41 -0
- package/dist/persistence/journals/SqliteJournalOptions.d.ts.map +1 -0
- package/dist/persistence/journals/SqliteJournalOptions.js +31 -0
- package/dist/persistence/journals/SqliteJournalOptions.js.map +1 -0
- package/dist/persistence/object-storage/BodyCodec.d.ts +43 -0
- package/dist/persistence/object-storage/BodyCodec.d.ts.map +1 -1
- package/dist/persistence/object-storage/BodyCodec.js +78 -20
- package/dist/persistence/object-storage/BodyCodec.js.map +1 -1
- package/dist/persistence/object-storage/Compression.d.ts +21 -7
- package/dist/persistence/object-storage/Compression.d.ts.map +1 -1
- package/dist/persistence/object-storage/Compression.js +79 -29
- package/dist/persistence/object-storage/Compression.js.map +1 -1
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.d.ts +2 -61
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.d.ts.map +1 -1
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.js +56 -11
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.js.map +1 -1
- package/dist/persistence/object-storage/FilesystemObjectStorageOptions.d.ts +45 -0
- package/dist/persistence/object-storage/FilesystemObjectStorageOptions.d.ts.map +1 -0
- package/dist/persistence/object-storage/FilesystemObjectStorageOptions.js +30 -0
- package/dist/persistence/object-storage/FilesystemObjectStorageOptions.js.map +1 -0
- package/dist/persistence/object-storage/Integrity.d.ts +43 -0
- package/dist/persistence/object-storage/Integrity.d.ts.map +1 -0
- package/dist/persistence/object-storage/Integrity.js +66 -0
- package/dist/persistence/object-storage/Integrity.js.map +1 -0
- package/dist/persistence/object-storage/ObjectStoragePlugin.d.ts +6 -22
- package/dist/persistence/object-storage/ObjectStoragePlugin.d.ts.map +1 -1
- package/dist/persistence/object-storage/ObjectStoragePlugin.js +36 -28
- package/dist/persistence/object-storage/ObjectStoragePlugin.js.map +1 -1
- package/dist/persistence/object-storage/ObjectStoragePluginOptions.d.ts +60 -0
- package/dist/persistence/object-storage/ObjectStoragePluginOptions.d.ts.map +1 -0
- package/dist/persistence/object-storage/ObjectStoragePluginOptions.js +52 -0
- package/dist/persistence/object-storage/ObjectStoragePluginOptions.js.map +1 -0
- package/dist/persistence/object-storage/PluginConfig.d.ts +5 -2
- package/dist/persistence/object-storage/PluginConfig.d.ts.map +1 -1
- package/dist/persistence/object-storage/PluginConfig.js +8 -0
- package/dist/persistence/object-storage/PluginConfig.js.map +1 -1
- package/dist/persistence/object-storage/S3ObjectStorageBackend.d.ts +1 -30
- package/dist/persistence/object-storage/S3ObjectStorageBackend.d.ts.map +1 -1
- package/dist/persistence/object-storage/S3ObjectStorageBackend.js +12 -7
- package/dist/persistence/object-storage/S3ObjectStorageBackend.js.map +1 -1
- package/dist/persistence/object-storage/S3ObjectStorageOptions.d.ts +64 -0
- package/dist/persistence/object-storage/S3ObjectStorageOptions.d.ts.map +1 -0
- package/dist/persistence/object-storage/S3ObjectStorageOptions.js +42 -0
- package/dist/persistence/object-storage/S3ObjectStorageOptions.js.map +1 -0
- package/dist/persistence/object-storage/reEncryptionSweep.d.ts +72 -0
- package/dist/persistence/object-storage/reEncryptionSweep.d.ts.map +1 -1
- package/dist/persistence/object-storage/reEncryptionSweep.js +82 -2
- package/dist/persistence/object-storage/reEncryptionSweep.js.map +1 -1
- package/dist/persistence/projection/ProjectionActor.d.ts +4 -24
- package/dist/persistence/projection/ProjectionActor.d.ts.map +1 -1
- package/dist/persistence/projection/ProjectionActor.js +36 -2
- package/dist/persistence/projection/ProjectionActor.js.map +1 -1
- package/dist/persistence/projection/ProjectionOptions.d.ts +109 -0
- package/dist/persistence/projection/ProjectionOptions.d.ts.map +1 -0
- package/dist/persistence/projection/ProjectionOptions.js +108 -0
- package/dist/persistence/projection/ProjectionOptions.js.map +1 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.d.ts +2 -10
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.d.ts.map +1 -1
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.js +12 -6
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.js.map +1 -1
- package/dist/persistence/snapshot-stores/CachedSnapshotStoreOptions.d.ts +37 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStoreOptions.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStoreOptions.js +31 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStoreOptions.js.map +1 -0
- package/dist/persistence/snapshot-stores/CassandraSnapshotStore.d.ts +1 -11
- package/dist/persistence/snapshot-stores/CassandraSnapshotStore.d.ts.map +1 -1
- package/dist/persistence/snapshot-stores/CassandraSnapshotStore.js +3 -3
- package/dist/persistence/snapshot-stores/CassandraSnapshotStore.js.map +1 -1
- package/dist/persistence/snapshot-stores/CassandraSnapshotStoreOptions.d.ts +61 -0
- package/dist/persistence/snapshot-stores/CassandraSnapshotStoreOptions.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/CassandraSnapshotStoreOptions.js +73 -0
- package/dist/persistence/snapshot-stores/CassandraSnapshotStoreOptions.js.map +1 -0
- package/dist/persistence/snapshot-stores/MariaDbSnapshotStore.d.ts +30 -0
- package/dist/persistence/snapshot-stores/MariaDbSnapshotStore.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/MariaDbSnapshotStore.js +102 -0
- package/dist/persistence/snapshot-stores/MariaDbSnapshotStore.js.map +1 -0
- package/dist/persistence/snapshot-stores/MariaDbSnapshotStoreOptions.d.ts +42 -0
- package/dist/persistence/snapshot-stores/MariaDbSnapshotStoreOptions.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/MariaDbSnapshotStoreOptions.js +42 -0
- package/dist/persistence/snapshot-stores/MariaDbSnapshotStoreOptions.js.map +1 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.d.ts +2 -15
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.d.ts.map +1 -1
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.js +10 -6
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.js.map +1 -1
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStoreOptions.d.ts +45 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStoreOptions.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStoreOptions.js +38 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStoreOptions.js.map +1 -0
- package/dist/persistence/snapshot-stores/PostgresSnapshotStore.d.ts +31 -0
- package/dist/persistence/snapshot-stores/PostgresSnapshotStore.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/PostgresSnapshotStore.js +101 -0
- package/dist/persistence/snapshot-stores/PostgresSnapshotStore.js.map +1 -0
- package/dist/persistence/snapshot-stores/PostgresSnapshotStoreOptions.d.ts +42 -0
- package/dist/persistence/snapshot-stores/PostgresSnapshotStoreOptions.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/PostgresSnapshotStoreOptions.js +42 -0
- package/dist/persistence/snapshot-stores/PostgresSnapshotStoreOptions.js.map +1 -0
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.d.ts +2 -15
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.d.ts.map +1 -1
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.js +7 -6
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.js.map +1 -1
- package/dist/persistence/snapshot-stores/SqliteSnapshotStoreOptions.d.ts +40 -0
- package/dist/persistence/snapshot-stores/SqliteSnapshotStoreOptions.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/SqliteSnapshotStoreOptions.js +31 -0
- package/dist/persistence/snapshot-stores/SqliteSnapshotStoreOptions.js.map +1 -0
- package/dist/runtime/http/BunHonoRunner.d.ts +7 -1
- package/dist/runtime/http/BunHonoRunner.d.ts.map +1 -1
- package/dist/runtime/http/BunHonoRunner.js +22 -0
- package/dist/runtime/http/BunHonoRunner.js.map +1 -1
- package/dist/runtime/http/DenoHonoRunner.d.ts +5 -2
- package/dist/runtime/http/DenoHonoRunner.d.ts.map +1 -1
- package/dist/runtime/http/DenoHonoRunner.js +19 -2
- package/dist/runtime/http/DenoHonoRunner.js.map +1 -1
- package/dist/runtime/http/HonoServerRunner.d.ts +39 -0
- package/dist/runtime/http/HonoServerRunner.d.ts.map +1 -1
- package/dist/runtime/http/NodeHonoRunner.d.ts +3 -1
- package/dist/runtime/http/NodeHonoRunner.d.ts.map +1 -1
- package/dist/runtime/http/NodeHonoRunner.js +22 -0
- package/dist/runtime/http/NodeHonoRunner.js.map +1 -1
- package/dist/runtime/http/index.d.ts +1 -1
- package/dist/runtime/http/index.d.ts.map +1 -1
- package/dist/runtime/http/index.js.map +1 -1
- package/dist/testkit/ManualScheduler.d.ts +2 -1
- package/dist/testkit/ManualScheduler.d.ts.map +1 -1
- package/dist/testkit/ManualScheduler.js +2 -1
- package/dist/testkit/ManualScheduler.js.map +1 -1
- package/dist/testkit/MockCluster.d.ts +74 -0
- package/dist/testkit/MockCluster.d.ts.map +1 -0
- package/dist/testkit/MockCluster.js +163 -0
- package/dist/testkit/MockCluster.js.map +1 -0
- package/dist/testkit/MultiNodeClusterFixture.d.ts +62 -0
- package/dist/testkit/MultiNodeClusterFixture.d.ts.map +1 -0
- package/dist/testkit/MultiNodeClusterFixture.js +43 -0
- package/dist/testkit/MultiNodeClusterFixture.js.map +1 -0
- package/dist/testkit/MultiNodeSpec.d.ts +45 -3
- package/dist/testkit/MultiNodeSpec.d.ts.map +1 -1
- package/dist/testkit/MultiNodeSpec.js +108 -14
- package/dist/testkit/MultiNodeSpec.js.map +1 -1
- package/dist/testkit/ParallelMultiNodeSpec.d.ts +12 -2
- package/dist/testkit/ParallelMultiNodeSpec.d.ts.map +1 -1
- package/dist/testkit/ParallelMultiNodeSpec.js +49 -4
- package/dist/testkit/ParallelMultiNodeSpec.js.map +1 -1
- package/dist/testkit/SnapshotMigrationTest.d.ts +86 -0
- package/dist/testkit/SnapshotMigrationTest.d.ts.map +1 -0
- package/dist/testkit/SnapshotMigrationTest.js +77 -0
- package/dist/testkit/SnapshotMigrationTest.js.map +1 -0
- package/dist/testkit/TestKit.d.ts +6 -8
- package/dist/testkit/TestKit.d.ts.map +1 -1
- package/dist/testkit/TestKit.js +10 -6
- package/dist/testkit/TestKit.js.map +1 -1
- package/dist/testkit/TestKitOptions.d.ts +26 -0
- package/dist/testkit/TestKitOptions.d.ts.map +1 -0
- package/dist/testkit/TestKitOptions.js +19 -0
- package/dist/testkit/TestKitOptions.js.map +1 -0
- package/dist/testkit/TestProbe.d.ts +2 -7
- package/dist/testkit/TestProbe.d.ts.map +1 -1
- package/dist/testkit/TestProbe.js +2 -1
- package/dist/testkit/TestProbe.js.map +1 -1
- package/dist/testkit/TestProbeOptions.d.ts +26 -0
- package/dist/testkit/TestProbeOptions.d.ts.map +1 -0
- package/dist/testkit/TestProbeOptions.js +19 -0
- package/dist/testkit/TestProbeOptions.js.map +1 -0
- package/dist/testkit/index.d.ts +10 -2
- package/dist/testkit/index.d.ts.map +1 -1
- package/dist/testkit/index.js +5 -0
- package/dist/testkit/index.js.map +1 -1
- package/dist/testkit/internal/parallel-multi-node-bootstrap.d.ts.map +1 -1
- package/dist/testkit/internal/parallel-multi-node-bootstrap.js +16 -12
- package/dist/testkit/internal/parallel-multi-node-bootstrap.js.map +1 -1
- package/dist/tracing/OtelAdapter.d.ts +4 -12
- package/dist/tracing/OtelAdapter.d.ts.map +1 -1
- package/dist/tracing/OtelAdapter.js +4 -2
- package/dist/tracing/OtelAdapter.js.map +1 -1
- package/dist/tracing/OtelAdapterOptions.d.ts +42 -0
- package/dist/tracing/OtelAdapterOptions.d.ts.map +1 -0
- package/dist/tracing/OtelAdapterOptions.js +34 -0
- package/dist/tracing/OtelAdapterOptions.js.map +1 -0
- package/dist/tracing/OtelLogsAdapter.d.ts +100 -0
- package/dist/tracing/OtelLogsAdapter.d.ts.map +1 -0
- package/dist/tracing/OtelLogsAdapter.js +130 -0
- package/dist/tracing/OtelLogsAdapter.js.map +1 -0
- package/dist/tracing/index.d.ts +5 -1
- package/dist/tracing/index.d.ts.map +1 -1
- package/dist/tracing/index.js +2 -0
- package/dist/tracing/index.js.map +1 -1
- package/dist/util/Constants.d.ts +23 -0
- package/dist/util/Constants.d.ts.map +1 -1
- package/dist/util/Constants.js +23 -0
- package/dist/util/Constants.js.map +1 -1
- package/dist/util/Lazy.d.ts +31 -0
- package/dist/util/Lazy.d.ts.map +1 -1
- package/dist/util/Lazy.js +70 -0
- package/dist/util/Lazy.js.map +1 -1
- package/dist/util/OptionsBuilder.d.ts +48 -0
- package/dist/util/OptionsBuilder.d.ts.map +1 -0
- package/dist/util/OptionsBuilder.js +53 -0
- package/dist/util/OptionsBuilder.js.map +1 -0
- package/dist/worker/WorkerCluster.d.ts +2 -11
- package/dist/worker/WorkerCluster.d.ts.map +1 -1
- package/dist/worker/WorkerCluster.js +2 -1
- package/dist/worker/WorkerCluster.js.map +1 -1
- package/dist/worker/WorkerClusterOptions.d.ts +55 -0
- package/dist/worker/WorkerClusterOptions.d.ts.map +1 -0
- package/dist/worker/WorkerClusterOptions.js +55 -0
- package/dist/worker/WorkerClusterOptions.js.map +1 -0
- package/dist/worker/index.d.ts +3 -1
- package/dist/worker/index.d.ts.map +1 -1
- package/dist/worker/index.js +1 -0
- package/dist/worker/index.js.map +1 -1
- package/package.json +56 -13
- package/dist/io/broker/ServerWebSocketActor.d.ts +0 -109
- package/dist/io/broker/ServerWebSocketActor.d.ts.map +0 -1
- package/dist/io/broker/ServerWebSocketActor.js +0 -128
- package/dist/io/broker/ServerWebSocketActor.js.map +0 -1
- package/dist/io/broker/WebSocketActor.d.ts +0 -77
- package/dist/io/broker/WebSocketActor.d.ts.map +0 -1
- package/dist/io/broker/WebSocketActor.js +0 -217
- package/dist/io/broker/WebSocketActor.js.map +0 -1
- package/dist/io/broker/WebSocketServerAdapters.d.ts +0 -140
- package/dist/io/broker/WebSocketServerAdapters.d.ts.map +0 -1
- package/dist/io/broker/WebSocketServerAdapters.js +0 -155
- package/dist/io/broker/WebSocketServerAdapters.js.map +0 -1
|
@@ -26,6 +26,17 @@
|
|
|
26
26
|
import { decodeBody, encodeBody, FLAG_ENCRYPTED, FLAG_KEY_VERSIONED, } from './BodyCodec.js';
|
|
27
27
|
import { deriveSubkey } from './Encryption.js';
|
|
28
28
|
const ATS1_MAGIC_PREFIX = new Uint8Array([0x41, 0x54, 0x53, 0x31]); // "ATS1"
|
|
29
|
+
/**
|
|
30
|
+
* In-process default. Useful for tests and short-lived runs. For
|
|
31
|
+
* long-running sweeps that must survive a process crash, plug a
|
|
32
|
+
* file-backed or backend-backed implementation in instead.
|
|
33
|
+
*/
|
|
34
|
+
export class InMemoryReEncryptProgressStore {
|
|
35
|
+
state = { lastKey: null, processedCount: 0 };
|
|
36
|
+
async load() { return { ...this.state }; }
|
|
37
|
+
async save(state) { this.state = { ...state }; }
|
|
38
|
+
async clear() { this.state = { lastKey: null, processedCount: 0 }; }
|
|
39
|
+
}
|
|
29
40
|
/**
|
|
30
41
|
* Re-encrypt every body under `keyPrefix` to the active key in `keyring`.
|
|
31
42
|
*
|
|
@@ -48,7 +59,11 @@ const ATS1_MAGIC_PREFIX = new Uint8Array([0x41, 0x54, 0x53, 0x31]); // "ATS1"
|
|
|
48
59
|
* console.log(`re-encrypted ${result.rewrote} of ${result.scanned}`);
|
|
49
60
|
*/
|
|
50
61
|
export async function reEncryptObjectStorage(backend, opts) {
|
|
51
|
-
const
|
|
62
|
+
const rawItems = await backend.list({ prefix: opts.keyPrefix });
|
|
63
|
+
// Sort lexicographically so that resume by `lastKey` is deterministic
|
|
64
|
+
// across backends (FS-backend lists in disk order, S3 lists alphabetic
|
|
65
|
+
// — sorting normalises).
|
|
66
|
+
const items = [...rawItems].sort((a, b) => (a.key < b.key ? -1 : a.key > b.key ? 1 : 0));
|
|
52
67
|
const pidFromKey = opts.pidFromKey ?? defaultPidFromKey;
|
|
53
68
|
const result = {
|
|
54
69
|
scanned: 0,
|
|
@@ -61,8 +76,60 @@ export async function reEncryptObjectStorage(backend, opts) {
|
|
|
61
76
|
if (!Number.isInteger(activeVersion) || activeVersion < 0 || activeVersion > 255) {
|
|
62
77
|
throw new Error(`reEncryptObjectStorage: keyring.active.version must be an integer in [0, 255], got ${activeVersion}`);
|
|
63
78
|
}
|
|
79
|
+
// Pre-sweep keyring-completeness check (#109). Sample some bodies,
|
|
80
|
+
// gather their key versions, fail fast if any version isn't in the
|
|
81
|
+
// keyring. Better to refuse before touching the corpus than to
|
|
82
|
+
// half-rewrite and then crash on a missing retired key.
|
|
83
|
+
if (opts.verifyKeyringCompleteness !== false) {
|
|
84
|
+
const sampleSize = opts.sampleSize ?? Math.min(100, items.length);
|
|
85
|
+
const haveVersions = new Set([
|
|
86
|
+
opts.keyring.active.version,
|
|
87
|
+
...(opts.keyring.retired?.map((r) => r.version) ?? []),
|
|
88
|
+
]);
|
|
89
|
+
const missing = new Set();
|
|
90
|
+
for (let i = 0; i < sampleSize; i++) {
|
|
91
|
+
const item = items[i];
|
|
92
|
+
if (opts.skip?.(item.key))
|
|
93
|
+
continue;
|
|
94
|
+
const fetched = await backend.get(item.key);
|
|
95
|
+
if (fetched.isNone())
|
|
96
|
+
continue;
|
|
97
|
+
const framed = fetched.value.body;
|
|
98
|
+
if (!startsWithAts1(framed))
|
|
99
|
+
continue;
|
|
100
|
+
const flags = framed[4];
|
|
101
|
+
const encrypted = (flags & FLAG_ENCRYPTED) !== 0;
|
|
102
|
+
if (!encrypted)
|
|
103
|
+
continue;
|
|
104
|
+
const versioned = (flags & FLAG_KEY_VERSIONED) !== 0;
|
|
105
|
+
const bodyVersion = versioned ? framed[5] : 0;
|
|
106
|
+
if (!haveVersions.has(bodyVersion))
|
|
107
|
+
missing.add(bodyVersion);
|
|
108
|
+
}
|
|
109
|
+
if (missing.size > 0) {
|
|
110
|
+
throw new Error(`reEncryptObjectStorage: keyring is incomplete — bodies in the prefix `
|
|
111
|
+
+ `reference master-key version(s) [${[...missing].sort((a, b) => a - b).join(', ')}] `
|
|
112
|
+
+ `which are absent from the keyring's 'active' and 'retired' lists. `
|
|
113
|
+
+ `Restore those keys before sweeping, or the sweep will fail mid-corpus.`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Resume from saved progress (#109).
|
|
117
|
+
let resumeStartIdx = 0;
|
|
118
|
+
let processedCountBase = 0;
|
|
119
|
+
if (opts.progress) {
|
|
120
|
+
const saved = await opts.progress.load();
|
|
121
|
+
if (saved.lastKey !== null) {
|
|
122
|
+
// First index where key > lastKey. Lower-bound scan since items
|
|
123
|
+
// are sorted.
|
|
124
|
+
while (resumeStartIdx < items.length && items[resumeStartIdx].key <= saved.lastKey) {
|
|
125
|
+
resumeStartIdx += 1;
|
|
126
|
+
}
|
|
127
|
+
processedCountBase = saved.processedCount;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
const saveEveryN = opts.saveProgressEveryN ?? 50;
|
|
64
131
|
const total = items.length;
|
|
65
|
-
for (let idx =
|
|
132
|
+
for (let idx = resumeStartIdx; idx < total; idx++) {
|
|
66
133
|
const item = items[idx];
|
|
67
134
|
if (opts.skip?.(item.key))
|
|
68
135
|
continue;
|
|
@@ -129,7 +196,20 @@ export async function reEncryptObjectStorage(backend, opts) {
|
|
|
129
196
|
});
|
|
130
197
|
result.rewrote += 1;
|
|
131
198
|
opts.onProgress?.({ key: item.key, idx, total, action: 'rewrote' });
|
|
199
|
+
// Persist progress every Nth REWRITE (skips don't count — they're
|
|
200
|
+
// cheap to redo).
|
|
201
|
+
if (opts.progress && result.rewrote % saveEveryN === 0) {
|
|
202
|
+
await opts.progress.save({
|
|
203
|
+
lastKey: item.key,
|
|
204
|
+
processedCount: processedCountBase + result.rewrote,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
132
207
|
}
|
|
208
|
+
// Successful end → clear progress so a fresh re-run starts from the
|
|
209
|
+
// beginning. If we crashed instead, the saved progress stays on
|
|
210
|
+
// disk and the next call resumes.
|
|
211
|
+
if (opts.progress)
|
|
212
|
+
await opts.progress.clear();
|
|
133
213
|
return result;
|
|
134
214
|
}
|
|
135
215
|
/* ----------------------------- internals --------------------------------- */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reEncryptionSweep.js","sourceRoot":"","sources":["../../../src/persistence/object-storage/reEncryptionSweep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,MAAM,iBAAiB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"reEncryptionSweep.js","sourceRoot":"","sources":["../../../src/persistence/object-storage/reEncryptionSweep.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { ActorRef } from '../../ActorRef.js';
|
|
2
|
-
import type {
|
|
3
|
-
import
|
|
4
|
-
import { type OffsetStore } from './OffsetStore.js';
|
|
2
|
+
import type { ByPidProjectionOptions, ByTagProjectionOptions } from './ProjectionOptions.js';
|
|
3
|
+
import type { ActorSystem } from '../../ActorSystem.js';
|
|
5
4
|
/**
|
|
6
5
|
* Actor wrapper around a projection. Owns the polling loop, the
|
|
7
6
|
* offset cursor, and the at-least-once delivery contract:
|
|
@@ -34,29 +33,10 @@ import { type OffsetStore } from './OffsetStore.js';
|
|
|
34
33
|
* which cancels the polling timer; the in-flight handler call (if
|
|
35
34
|
* any) is awaited before the actor exits.
|
|
36
35
|
*/
|
|
37
|
-
export interface ProjectionSettings<E> {
|
|
38
|
-
/** Logical name — used as the offset-store key prefix. */
|
|
39
|
-
readonly name: string;
|
|
40
|
-
/** The query layer (one of `InMemoryQuery`, `SqliteQuery`, …). */
|
|
41
|
-
readonly query: PersistenceQuery;
|
|
42
|
-
/** Where to persist the cursor. Default: in-memory (lost on restart). */
|
|
43
|
-
readonly offsetStore?: OffsetStore;
|
|
44
|
-
/** User handler — runs once per event. Must be idempotent. */
|
|
45
|
-
readonly handle: (event: PersistentEvent<E>) => void | Promise<void>;
|
|
46
|
-
/** Tunables passed to the underlying live query. */
|
|
47
|
-
readonly liveOptions?: LiveQueryOptions;
|
|
48
|
-
}
|
|
49
|
-
export interface ByPidSettings<E> extends ProjectionSettings<E> {
|
|
50
|
-
readonly persistenceId: string;
|
|
51
|
-
}
|
|
52
|
-
export interface ByTagSettings<E> extends ProjectionSettings<E> {
|
|
53
|
-
readonly tag: string;
|
|
54
|
-
}
|
|
55
|
-
import type { ActorSystem } from '../../ActorSystem.js';
|
|
56
36
|
export declare class ProjectionActor {
|
|
57
37
|
/** Spawn a per-persistenceId projection. Returns the actor ref. */
|
|
58
|
-
static byPersistenceId<E>(system: ActorSystem,
|
|
38
|
+
static byPersistenceId<E>(system: ActorSystem, options: ByPidProjectionOptions<E>): ActorRef<unknown>;
|
|
59
39
|
/** Spawn a per-tag projection. Returns the actor ref. */
|
|
60
|
-
static byTag<E>(system: ActorSystem,
|
|
40
|
+
static byTag<E>(system: ActorSystem, options: ByTagProjectionOptions<E>): ActorRef<unknown>;
|
|
61
41
|
}
|
|
62
42
|
//# sourceMappingURL=ProjectionActor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectionActor.d.ts","sourceRoot":"","sources":["../../../src/persistence/projection/ProjectionActor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ProjectionActor.d.ts","sourceRoot":"","sources":["../../../src/persistence/projection/ProjectionActor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AASlD,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EAIvB,MAAM,wBAAwB,CAAC;AAoHhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,eAAe;IAC1B,oEAAoE;IACpE,MAAM,CAAC,eAAe,CAAC,CAAC,EACtB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,GACjC,QAAQ,CAAC,OAAO,CAAC;IAQpB,0DAA0D;IAC1D,MAAM,CAAC,KAAK,CAAC,CAAC,EACZ,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,GACjC,QAAQ,CAAC,OAAO,CAAC;CAOrB"}
|
|
@@ -104,13 +104,47 @@ class ByTagProjectionActor extends BaseProjectionActor {
|
|
|
104
104
|
}
|
|
105
105
|
/* ============================ public API ============================== */
|
|
106
106
|
import { Props } from '../../Props.js';
|
|
107
|
+
/**
|
|
108
|
+
* Actor wrapper around a projection. Owns the polling loop, the
|
|
109
|
+
* offset cursor, and the at-least-once delivery contract:
|
|
110
|
+
*
|
|
111
|
+
* 1. **preStart** — load the cursor from {@link OffsetStore}.
|
|
112
|
+
* 2. **loop** — poll the {@link PersistenceQuery} for new events
|
|
113
|
+
* from the cursor onwards.
|
|
114
|
+
* 3. **handle** — call the user `handler` on each event. The
|
|
115
|
+
* handler MUST be idempotent — see at-least-once below.
|
|
116
|
+
* 4. **commit** — save the cursor to the offset store.
|
|
117
|
+
* 5. **repeat**.
|
|
118
|
+
*
|
|
119
|
+
* **At-least-once.** If the projection crashes between step 3 and
|
|
120
|
+
* step 4, the next start replays from the saved cursor and the
|
|
121
|
+
* just-handled event will be re-handled. Handlers must therefore
|
|
122
|
+
* either:
|
|
123
|
+
* - be idempotent (e.g. UPSERT into the read model);
|
|
124
|
+
* - or do their own dedup via some unique key on the event.
|
|
125
|
+
*
|
|
126
|
+
* **Two query shapes are supported via the static factories:**
|
|
127
|
+
*
|
|
128
|
+
* - `ProjectionActor.byPersistenceId(...)` — one cursor per pid.
|
|
129
|
+
* Use this for "give me everything an entity ever did". The
|
|
130
|
+
* cursor is the entity's `sequenceNr`.
|
|
131
|
+
* - `ProjectionActor.byTag(...)` — one cursor per tag. Use this
|
|
132
|
+
* for "give me every event labelled X across the whole journal".
|
|
133
|
+
* The cursor is an `Offset` (timestamp + tiebreakers).
|
|
134
|
+
*
|
|
135
|
+
* **Stopping**: the standard `actorRef.stop()` triggers `postStop`
|
|
136
|
+
* which cancels the polling timer; the in-flight handler call (if
|
|
137
|
+
* any) is awaited before the actor exits.
|
|
138
|
+
*/
|
|
107
139
|
export class ProjectionActor {
|
|
108
140
|
/** Spawn a per-persistenceId projection. Returns the actor ref. */
|
|
109
|
-
static byPersistenceId(system,
|
|
141
|
+
static byPersistenceId(system, options) {
|
|
142
|
+
const settings = options;
|
|
110
143
|
return system.spawn(Props.create(() => new ByPidProjectionActor(settings)), `projection-${settings.name}-${sanitize(settings.persistenceId)}`);
|
|
111
144
|
}
|
|
112
145
|
/** Spawn a per-tag projection. Returns the actor ref. */
|
|
113
|
-
static byTag(system,
|
|
146
|
+
static byTag(system, options) {
|
|
147
|
+
const settings = options;
|
|
114
148
|
return system.spawn(Props.create(() => new ByTagProjectionActor(settings)), `projection-${settings.name}-tag-${sanitize(settings.tag)}`);
|
|
115
149
|
}
|
|
116
150
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectionActor.js","sourceRoot":"","sources":["../../../src/persistence/projection/ProjectionActor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ProjectionActor.js","sourceRoot":"","sources":["../../../src/persistence/projection/ProjectionActor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { OptionsBuilder } from '../../util/OptionsBuilder.js';
|
|
2
|
+
import type { PersistentEvent } from '../JournalTypes.js';
|
|
3
|
+
import type { LiveQueryOptions, PersistenceQuery } from '../query/PersistenceQuery.js';
|
|
4
|
+
import type { OffsetStore } from './OffsetStore.js';
|
|
5
|
+
/** Plain settings-object shape shared by every projection. */
|
|
6
|
+
export interface ProjectionOptionsType<E> {
|
|
7
|
+
/** Logical name — used as the offset-store key prefix. */
|
|
8
|
+
readonly name: string;
|
|
9
|
+
/** The query layer (one of `InMemoryQuery`, `SqliteQuery`, …). */
|
|
10
|
+
readonly query: PersistenceQuery;
|
|
11
|
+
/** Where to persist the cursor. Default: in-memory (lost on restart). */
|
|
12
|
+
readonly offsetStore?: OffsetStore;
|
|
13
|
+
/** User handler — runs once per event. Must be idempotent. */
|
|
14
|
+
readonly handle: (event: PersistentEvent<E>) => void | Promise<void>;
|
|
15
|
+
/** Tunables passed to the underlying live query. */
|
|
16
|
+
readonly liveOptions?: LiveQueryOptions;
|
|
17
|
+
}
|
|
18
|
+
/** Settings for a per-persistenceId projection. One cursor per pid. */
|
|
19
|
+
export interface ByPidProjectionOptionsType<E> extends ProjectionOptionsType<E> {
|
|
20
|
+
readonly persistenceId: string;
|
|
21
|
+
}
|
|
22
|
+
/** Settings for a per-tag projection. One cursor per tag. */
|
|
23
|
+
export interface ByTagProjectionOptionsType<E> extends ProjectionOptionsType<E> {
|
|
24
|
+
readonly tag: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Fluent builder for the fields shared by every projection. The
|
|
28
|
+
* concrete {@link ByPidProjectionOptions} / {@link ByTagProjectionOptions}
|
|
29
|
+
* subclasses add the discriminating cursor field (`persistenceId` / `tag`)
|
|
30
|
+
* on top of these.
|
|
31
|
+
*/
|
|
32
|
+
export declare class ProjectionOptionsBuilder<E> extends OptionsBuilder<ProjectionOptionsType<E>> {
|
|
33
|
+
/** Start a fresh builder. Equivalent to `new ProjectionOptionsBuilder<E>()`. */
|
|
34
|
+
static create<E>(): ProjectionOptionsBuilder<E>;
|
|
35
|
+
/** Logical name — used as the offset-store key prefix. */
|
|
36
|
+
withName(name: string): this;
|
|
37
|
+
/** The query layer (one of `InMemoryQuery`, `SqliteQuery`, …). */
|
|
38
|
+
withQuery(query: PersistenceQuery): this;
|
|
39
|
+
/** Where to persist the cursor. Default: in-memory (lost on restart). */
|
|
40
|
+
withOffsetStore(offsetStore: OffsetStore): this;
|
|
41
|
+
/** User handler — runs once per event. Must be idempotent. */
|
|
42
|
+
withHandle(handle: (event: PersistentEvent<E>) => void | Promise<void>): this;
|
|
43
|
+
/** Tunables passed to the underlying live query. */
|
|
44
|
+
withLiveOptions(liveOptions: LiveQueryOptions): this;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Accepted input for a shared projection: the fluent
|
|
48
|
+
* {@link ProjectionOptionsBuilder} OR a plain {@link ProjectionOptionsType} object.
|
|
49
|
+
*/
|
|
50
|
+
export type ProjectionOptions<E> = ProjectionOptionsBuilder<E> | Partial<ProjectionOptionsType<E>>;
|
|
51
|
+
/** Value alias so `ProjectionOptions.create()` / `new ProjectionOptions()` resolve to the builder. */
|
|
52
|
+
export declare const ProjectionOptions: typeof ProjectionOptionsBuilder;
|
|
53
|
+
/**
|
|
54
|
+
* Fluent builder for {@link ByPidProjectionOptionsType} — a per-persistenceId
|
|
55
|
+
* projection. Adds `withPersistenceId` to the shared projection fields.
|
|
56
|
+
*/
|
|
57
|
+
export declare class ByPidProjectionOptionsBuilder<E> extends OptionsBuilder<ByPidProjectionOptionsType<E>> {
|
|
58
|
+
/** Start a fresh builder. Equivalent to `new ByPidProjectionOptionsBuilder<E>()`. */
|
|
59
|
+
static create<E>(): ByPidProjectionOptionsBuilder<E>;
|
|
60
|
+
/** Logical name — used as the offset-store key prefix. */
|
|
61
|
+
withName(name: string): this;
|
|
62
|
+
/** The query layer (one of `InMemoryQuery`, `SqliteQuery`, …). */
|
|
63
|
+
withQuery(query: PersistenceQuery): this;
|
|
64
|
+
/** Where to persist the cursor. Default: in-memory (lost on restart). */
|
|
65
|
+
withOffsetStore(offsetStore: OffsetStore): this;
|
|
66
|
+
/** User handler — runs once per event. Must be idempotent. */
|
|
67
|
+
withHandle(handle: (event: PersistentEvent<E>) => void | Promise<void>): this;
|
|
68
|
+
/** Tunables passed to the underlying live query. */
|
|
69
|
+
withLiveOptions(liveOptions: LiveQueryOptions): this;
|
|
70
|
+
/** The entity whose event log this projection follows. One cursor per pid. */
|
|
71
|
+
withPersistenceId(persistenceId: string): this;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Accepted input for a by-persistenceId projection: the fluent
|
|
75
|
+
* {@link ByPidProjectionOptionsBuilder} OR a plain
|
|
76
|
+
* {@link ByPidProjectionOptionsType} object.
|
|
77
|
+
*/
|
|
78
|
+
export type ByPidProjectionOptions<E> = ByPidProjectionOptionsBuilder<E> | Partial<ByPidProjectionOptionsType<E>>;
|
|
79
|
+
/** Value alias so `ByPidProjectionOptions.create()` / `new ByPidProjectionOptions()` resolve to the builder. */
|
|
80
|
+
export declare const ByPidProjectionOptions: typeof ByPidProjectionOptionsBuilder;
|
|
81
|
+
/**
|
|
82
|
+
* Fluent builder for {@link ByTagProjectionOptionsType} — a per-tag projection.
|
|
83
|
+
* Adds `withTag` to the shared projection fields.
|
|
84
|
+
*/
|
|
85
|
+
export declare class ByTagProjectionOptionsBuilder<E> extends OptionsBuilder<ByTagProjectionOptionsType<E>> {
|
|
86
|
+
/** Start a fresh builder. Equivalent to `new ByTagProjectionOptionsBuilder<E>()`. */
|
|
87
|
+
static create<E>(): ByTagProjectionOptionsBuilder<E>;
|
|
88
|
+
/** Logical name — used as the offset-store key prefix. */
|
|
89
|
+
withName(name: string): this;
|
|
90
|
+
/** The query layer (one of `InMemoryQuery`, `SqliteQuery`, …). */
|
|
91
|
+
withQuery(query: PersistenceQuery): this;
|
|
92
|
+
/** Where to persist the cursor. Default: in-memory (lost on restart). */
|
|
93
|
+
withOffsetStore(offsetStore: OffsetStore): this;
|
|
94
|
+
/** User handler — runs once per event. Must be idempotent. */
|
|
95
|
+
withHandle(handle: (event: PersistentEvent<E>) => void | Promise<void>): this;
|
|
96
|
+
/** Tunables passed to the underlying live query. */
|
|
97
|
+
withLiveOptions(liveOptions: LiveQueryOptions): this;
|
|
98
|
+
/** The tag this projection follows across the whole journal. One cursor per tag. */
|
|
99
|
+
withTag(tag: string): this;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Accepted input for a by-tag projection: the fluent
|
|
103
|
+
* {@link ByTagProjectionOptionsBuilder} OR a plain
|
|
104
|
+
* {@link ByTagProjectionOptionsType} object.
|
|
105
|
+
*/
|
|
106
|
+
export type ByTagProjectionOptions<E> = ByTagProjectionOptionsBuilder<E> | Partial<ByTagProjectionOptionsType<E>>;
|
|
107
|
+
/** Value alias so `ByTagProjectionOptions.create()` / `new ByTagProjectionOptions()` resolve to the builder. */
|
|
108
|
+
export declare const ByTagProjectionOptions: typeof ByTagProjectionOptionsBuilder;
|
|
109
|
+
//# sourceMappingURL=ProjectionOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectionOptions.d.ts","sourceRoot":"","sources":["../../../src/persistence/projection/ProjectionOptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { OptionsBuilder } from '../../util/OptionsBuilder.js';
|
|
2
|
+
/**
|
|
3
|
+
* Fluent builder for the fields shared by every projection. The
|
|
4
|
+
* concrete {@link ByPidProjectionOptions} / {@link ByTagProjectionOptions}
|
|
5
|
+
* subclasses add the discriminating cursor field (`persistenceId` / `tag`)
|
|
6
|
+
* on top of these.
|
|
7
|
+
*/
|
|
8
|
+
export class ProjectionOptionsBuilder extends OptionsBuilder {
|
|
9
|
+
/** Start a fresh builder. Equivalent to `new ProjectionOptionsBuilder<E>()`. */
|
|
10
|
+
static create() {
|
|
11
|
+
return new ProjectionOptionsBuilder();
|
|
12
|
+
}
|
|
13
|
+
/** Logical name — used as the offset-store key prefix. */
|
|
14
|
+
withName(name) {
|
|
15
|
+
return this.set('name', name);
|
|
16
|
+
}
|
|
17
|
+
/** The query layer (one of `InMemoryQuery`, `SqliteQuery`, …). */
|
|
18
|
+
withQuery(query) {
|
|
19
|
+
return this.set('query', query);
|
|
20
|
+
}
|
|
21
|
+
/** Where to persist the cursor. Default: in-memory (lost on restart). */
|
|
22
|
+
withOffsetStore(offsetStore) {
|
|
23
|
+
return this.set('offsetStore', offsetStore);
|
|
24
|
+
}
|
|
25
|
+
/** User handler — runs once per event. Must be idempotent. */
|
|
26
|
+
withHandle(handle) {
|
|
27
|
+
return this.set('handle', handle);
|
|
28
|
+
}
|
|
29
|
+
/** Tunables passed to the underlying live query. */
|
|
30
|
+
withLiveOptions(liveOptions) {
|
|
31
|
+
return this.set('liveOptions', liveOptions);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/** Value alias so `ProjectionOptions.create()` / `new ProjectionOptions()` resolve to the builder. */
|
|
35
|
+
export const ProjectionOptions = ProjectionOptionsBuilder;
|
|
36
|
+
/**
|
|
37
|
+
* Fluent builder for {@link ByPidProjectionOptionsType} — a per-persistenceId
|
|
38
|
+
* projection. Adds `withPersistenceId` to the shared projection fields.
|
|
39
|
+
*/
|
|
40
|
+
export class ByPidProjectionOptionsBuilder extends OptionsBuilder {
|
|
41
|
+
/** Start a fresh builder. Equivalent to `new ByPidProjectionOptionsBuilder<E>()`. */
|
|
42
|
+
static create() {
|
|
43
|
+
return new ByPidProjectionOptionsBuilder();
|
|
44
|
+
}
|
|
45
|
+
/** Logical name — used as the offset-store key prefix. */
|
|
46
|
+
withName(name) {
|
|
47
|
+
return this.set('name', name);
|
|
48
|
+
}
|
|
49
|
+
/** The query layer (one of `InMemoryQuery`, `SqliteQuery`, …). */
|
|
50
|
+
withQuery(query) {
|
|
51
|
+
return this.set('query', query);
|
|
52
|
+
}
|
|
53
|
+
/** Where to persist the cursor. Default: in-memory (lost on restart). */
|
|
54
|
+
withOffsetStore(offsetStore) {
|
|
55
|
+
return this.set('offsetStore', offsetStore);
|
|
56
|
+
}
|
|
57
|
+
/** User handler — runs once per event. Must be idempotent. */
|
|
58
|
+
withHandle(handle) {
|
|
59
|
+
return this.set('handle', handle);
|
|
60
|
+
}
|
|
61
|
+
/** Tunables passed to the underlying live query. */
|
|
62
|
+
withLiveOptions(liveOptions) {
|
|
63
|
+
return this.set('liveOptions', liveOptions);
|
|
64
|
+
}
|
|
65
|
+
/** The entity whose event log this projection follows. One cursor per pid. */
|
|
66
|
+
withPersistenceId(persistenceId) {
|
|
67
|
+
return this.set('persistenceId', persistenceId);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/** Value alias so `ByPidProjectionOptions.create()` / `new ByPidProjectionOptions()` resolve to the builder. */
|
|
71
|
+
export const ByPidProjectionOptions = ByPidProjectionOptionsBuilder;
|
|
72
|
+
/**
|
|
73
|
+
* Fluent builder for {@link ByTagProjectionOptionsType} — a per-tag projection.
|
|
74
|
+
* Adds `withTag` to the shared projection fields.
|
|
75
|
+
*/
|
|
76
|
+
export class ByTagProjectionOptionsBuilder extends OptionsBuilder {
|
|
77
|
+
/** Start a fresh builder. Equivalent to `new ByTagProjectionOptionsBuilder<E>()`. */
|
|
78
|
+
static create() {
|
|
79
|
+
return new ByTagProjectionOptionsBuilder();
|
|
80
|
+
}
|
|
81
|
+
/** Logical name — used as the offset-store key prefix. */
|
|
82
|
+
withName(name) {
|
|
83
|
+
return this.set('name', name);
|
|
84
|
+
}
|
|
85
|
+
/** The query layer (one of `InMemoryQuery`, `SqliteQuery`, …). */
|
|
86
|
+
withQuery(query) {
|
|
87
|
+
return this.set('query', query);
|
|
88
|
+
}
|
|
89
|
+
/** Where to persist the cursor. Default: in-memory (lost on restart). */
|
|
90
|
+
withOffsetStore(offsetStore) {
|
|
91
|
+
return this.set('offsetStore', offsetStore);
|
|
92
|
+
}
|
|
93
|
+
/** User handler — runs once per event. Must be idempotent. */
|
|
94
|
+
withHandle(handle) {
|
|
95
|
+
return this.set('handle', handle);
|
|
96
|
+
}
|
|
97
|
+
/** Tunables passed to the underlying live query. */
|
|
98
|
+
withLiveOptions(liveOptions) {
|
|
99
|
+
return this.set('liveOptions', liveOptions);
|
|
100
|
+
}
|
|
101
|
+
/** The tag this projection follows across the whole journal. One cursor per tag. */
|
|
102
|
+
withTag(tag) {
|
|
103
|
+
return this.set('tag', tag);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/** Value alias so `ByTagProjectionOptions.create()` / `new ByTagProjectionOptions()` resolve to the builder. */
|
|
107
|
+
export const ByTagProjectionOptions = ByTagProjectionOptionsBuilder;
|
|
108
|
+
//# sourceMappingURL=ProjectionOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectionOptions.js","sourceRoot":"","sources":["../../../src/persistence/projection/ProjectionOptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,14 @@
|
|
|
1
|
-
import type { Cache } from '../../cache/Cache.js';
|
|
2
1
|
import type { Snapshot } from '../JournalTypes.js';
|
|
3
2
|
import type { PersistenceOptions } from '../PersistenceOptions.js';
|
|
4
3
|
import type { SnapshotStore } from '../SnapshotStore.js';
|
|
5
4
|
import { type Option } from '../../util/Option.js';
|
|
6
|
-
|
|
7
|
-
/** Backing cache — typically Redis in production. */
|
|
8
|
-
readonly cache: Cache;
|
|
9
|
-
/** Cache TTL in milliseconds. Default: 5 minutes. */
|
|
10
|
-
readonly ttlMs?: number;
|
|
11
|
-
/** Key prefix (default: `'snap:'`) prevents collisions in shared caches. */
|
|
12
|
-
readonly keyPrefix?: string;
|
|
13
|
-
}
|
|
5
|
+
import type { CachedSnapshotStoreOptions } from './CachedSnapshotStoreOptions.js';
|
|
14
6
|
export declare class CachedSnapshotStore implements SnapshotStore {
|
|
15
7
|
private readonly underlying;
|
|
16
8
|
private readonly cache;
|
|
17
9
|
private readonly ttlMs;
|
|
18
10
|
private readonly keyPrefix;
|
|
19
|
-
constructor(underlying: SnapshotStore,
|
|
11
|
+
constructor(underlying: SnapshotStore, options: CachedSnapshotStoreOptions);
|
|
20
12
|
save<S>(pid: string, seq: number, state: S, options?: PersistenceOptions): Promise<Snapshot<S>>;
|
|
21
13
|
loadLatest<S>(pid: string, options?: PersistenceOptions): Promise<Option<Snapshot<S>>>;
|
|
22
14
|
loadBefore<S>(pid: string, seq: number, options?: PersistenceOptions): Promise<Option<Snapshot<S>>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CachedSnapshotStore.d.ts","sourceRoot":"","sources":["../../../src/persistence/snapshot-stores/CachedSnapshotStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CachedSnapshotStore.d.ts","sourceRoot":"","sources":["../../../src/persistence/snapshot-stores/CachedSnapshotStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,0BAA0B,EAAkC,MAAM,iCAAiC,CAAC;AA8ClH,qBAAa,mBAAoB,YAAW,aAAa;IAMrD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAGhB,UAAU,EAAE,aAAa,EAC1C,OAAO,EAAE,0BAA0B;IAY/B,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAO/F,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAUtF,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAKnG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,OAAO,CAAC,MAAM;CAGf"}
|
|
@@ -26,8 +26,11 @@ import { none, some } from '../../util/Option.js';
|
|
|
26
26
|
* min) — short enough that stale reads after a missed invalidation
|
|
27
27
|
* never matter, long enough to absorb cold-start storms.
|
|
28
28
|
*
|
|
29
|
-
* const cassandra = new CassandraSnapshotStore(
|
|
30
|
-
* const cached = new CachedSnapshotStore(
|
|
29
|
+
* const cassandra = new CassandraSnapshotStore(...);
|
|
30
|
+
* const cached = new CachedSnapshotStore(
|
|
31
|
+
* cassandra,
|
|
32
|
+
* CachedSnapshotStoreOptions.create().withCache(cache).withTtlMs(5 * 60_000),
|
|
33
|
+
* );
|
|
31
34
|
* ext.setSnapshotStore(cached);
|
|
32
35
|
*/
|
|
33
36
|
const DEFAULT_TTL_MS = 5 * 60_000;
|
|
@@ -36,14 +39,17 @@ export class CachedSnapshotStore {
|
|
|
36
39
|
cache;
|
|
37
40
|
ttlMs;
|
|
38
41
|
keyPrefix;
|
|
39
|
-
constructor(underlying,
|
|
42
|
+
constructor(underlying, options) {
|
|
40
43
|
this.underlying = underlying;
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
const s = options;
|
|
45
|
+
if (s.cache === undefined)
|
|
46
|
+
throw new Error('CachedSnapshotStore: cache is required (call withCache()).');
|
|
47
|
+
this.cache = s.cache;
|
|
48
|
+
this.ttlMs = s.ttlMs ?? DEFAULT_TTL_MS;
|
|
43
49
|
if (!Number.isFinite(this.ttlMs) || this.ttlMs <= 0) {
|
|
44
50
|
throw new Error(`CachedSnapshotStore: ttlMs must be a positive finite number, got ${this.ttlMs}`);
|
|
45
51
|
}
|
|
46
|
-
this.keyPrefix =
|
|
52
|
+
this.keyPrefix = s.keyPrefix ?? 'snap:';
|
|
47
53
|
}
|
|
48
54
|
async save(pid, seq, state, options) {
|
|
49
55
|
const written = await this.underlying.save(pid, seq, state, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CachedSnapshotStore.js","sourceRoot":"","sources":["../../../src/persistence/snapshot-stores/CachedSnapshotStore.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAe,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"CachedSnapshotStore.js","sourceRoot":"","sources":["../../../src/persistence/snapshot-stores/CachedSnapshotStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Cache } from '../../cache/Cache.js';
|
|
2
|
+
import { OptionsBuilder } from '../../util/OptionsBuilder.js';
|
|
3
|
+
export interface CachedSnapshotStoreOptionsType {
|
|
4
|
+
/** Backing cache — typically Redis in production. */
|
|
5
|
+
readonly cache: Cache;
|
|
6
|
+
/** Cache TTL in milliseconds. Default: 5 minutes. */
|
|
7
|
+
readonly ttlMs?: number;
|
|
8
|
+
/** Key prefix (default: `'snap:'`) prevents collisions in shared caches. */
|
|
9
|
+
readonly keyPrefix?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Fluent builder for {@link CachedSnapshotStoreOptionsType}. The `cache` is
|
|
13
|
+
* required:
|
|
14
|
+
*
|
|
15
|
+
* new CachedSnapshotStore(
|
|
16
|
+
* underlying,
|
|
17
|
+
* CachedSnapshotStoreOptions.create().withCache(cache).withTtlMs(5 * 60_000),
|
|
18
|
+
* )
|
|
19
|
+
*/
|
|
20
|
+
export declare class CachedSnapshotStoreOptionsBuilder extends OptionsBuilder<CachedSnapshotStoreOptionsType> {
|
|
21
|
+
/** Start a fresh builder. Equivalent to `new CachedSnapshotStoreOptionsBuilder()`. */
|
|
22
|
+
static create(): CachedSnapshotStoreOptionsBuilder;
|
|
23
|
+
/** Backing cache — typically Redis in production. */
|
|
24
|
+
withCache(cache: Cache): this;
|
|
25
|
+
/** Cache TTL in milliseconds. Default: 5 minutes. */
|
|
26
|
+
withTtlMs(ttlMs: number): this;
|
|
27
|
+
/** Key prefix (default: `'snap:'`) — prevents collisions in shared caches. */
|
|
28
|
+
withKeyPrefix(keyPrefix: string): this;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Accepted input for the cached snapshot-store constructor: the fluent
|
|
32
|
+
* {@link CachedSnapshotStoreOptionsBuilder} OR a plain {@link CachedSnapshotStoreOptionsType} object.
|
|
33
|
+
*/
|
|
34
|
+
export type CachedSnapshotStoreOptions = CachedSnapshotStoreOptionsBuilder | Partial<CachedSnapshotStoreOptionsType>;
|
|
35
|
+
/** Value alias so `CachedSnapshotStoreOptions.create()` / `new CachedSnapshotStoreOptions()` resolve to the builder. */
|
|
36
|
+
export declare const CachedSnapshotStoreOptions: typeof CachedSnapshotStoreOptionsBuilder;
|
|
37
|
+
//# sourceMappingURL=CachedSnapshotStoreOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CachedSnapshotStoreOptions.d.ts","sourceRoot":"","sources":["../../../src/persistence/snapshot-stores/CachedSnapshotStoreOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,WAAW,8BAA8B;IAC7C,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,sDAAsD;IACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,qBAAa,iCAAkC,SAAQ,cAAc,CAAC,8BAA8B,CAAC;IACnG,uFAAuF;IACvF,MAAM,CAAC,MAAM,IAAI,iCAAiC;IAIlD,qDAAqD;IACrD,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAI7B,sDAAsD;IACtD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI9B,8EAA8E;IAC9E,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAGvC;AAED;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG,iCAAiC,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;AACrH,wHAAwH;AACxH,eAAO,MAAM,0BAA0B,0CAAoC,CAAC"}
|