actor-ts 0.9.1 → 0.11.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 +703 -1
- package/README.md +294 -269
- package/dist/Actor.d.ts +6 -6
- package/dist/Actor.d.ts.map +1 -1
- package/dist/Actor.js.map +1 -1
- package/dist/ActorContext.d.ts +7 -7
- package/dist/ActorContext.d.ts.map +1 -1
- package/dist/ActorPath.js +8 -8
- package/dist/ActorPath.js.map +1 -1
- package/dist/ActorRef.d.ts +6 -6
- package/dist/ActorRef.d.ts.map +1 -1
- package/dist/ActorRef.js.map +1 -1
- package/dist/ActorSystem.d.ts +3 -38
- package/dist/ActorSystem.d.ts.map +1 -1
- package/dist/ActorSystem.js +23 -23
- 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/CoordinatedShutdown.js +3 -3
- package/dist/CoordinatedShutdown.js.map +1 -1
- 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/Props.d.ts +13 -13
- package/dist/Props.d.ts.map +1 -1
- package/dist/Props.js.map +1 -1
- package/dist/Router.d.ts +4 -4
- package/dist/Router.d.ts.map +1 -1
- package/dist/Router.js +4 -4
- package/dist/Router.js.map +1 -1
- package/dist/Supervision.js +3 -3
- package/dist/Supervision.js.map +1 -1
- package/dist/cache/CacheExtension.d.ts +7 -0
- package/dist/cache/CacheExtension.d.ts.map +1 -1
- package/dist/cache/CacheExtension.js +17 -1
- package/dist/cache/CacheExtension.js.map +1 -1
- package/dist/cache/InMemoryCache.d.ts +39 -0
- package/dist/cache/InMemoryCache.d.ts.map +1 -1
- package/dist/cache/InMemoryCache.js +99 -20
- package/dist/cache/InMemoryCache.js.map +1 -1
- package/dist/cache/InMemoryCacheOptions.d.ts +50 -0
- package/dist/cache/InMemoryCacheOptions.d.ts.map +1 -0
- package/dist/cache/InMemoryCacheOptions.js +51 -0
- package/dist/cache/InMemoryCacheOptions.js.map +1 -0
- package/dist/cache/MemcachedCache.d.ts +2 -12
- package/dist/cache/MemcachedCache.d.ts.map +1 -1
- package/dist/cache/MemcachedCache.js +13 -10
- package/dist/cache/MemcachedCache.js.map +1 -1
- package/dist/cache/MemcachedCacheOptions.d.ts +46 -0
- package/dist/cache/MemcachedCacheOptions.d.ts.map +1 -0
- package/dist/cache/MemcachedCacheOptions.js +42 -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 +16 -13
- package/dist/cache/RedisCache.js.map +1 -1
- package/dist/cache/RedisCacheOptions.d.ts +66 -0
- package/dist/cache/RedisCacheOptions.d.ts.map +1 -0
- package/dist/cache/RedisCacheOptions.js +62 -0
- package/dist/cache/RedisCacheOptions.js.map +1 -0
- package/dist/cache/index.d.ts +8 -2
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +3 -0
- package/dist/cache/index.js.map +1 -1
- package/dist/cluster/Cluster.d.ts +7 -66
- package/dist/cluster/Cluster.d.ts.map +1 -1
- package/dist/cluster/Cluster.js +97 -90
- 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 +37 -23
- package/dist/cluster/ClusterBootstrap.js.map +1 -1
- package/dist/cluster/ClusterBootstrapOptions.d.ts +158 -0
- package/dist/cluster/ClusterBootstrapOptions.d.ts.map +1 -0
- package/dist/cluster/ClusterBootstrapOptions.js +121 -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 +34 -20
- package/dist/cluster/ClusterClient.js.map +1 -1
- package/dist/cluster/ClusterClientOptions.d.ts +76 -0
- package/dist/cluster/ClusterClientOptions.d.ts.map +1 -0
- package/dist/cluster/ClusterClientOptions.js +61 -0
- package/dist/cluster/ClusterClientOptions.js.map +1 -0
- package/dist/cluster/ClusterClientReceptionist.d.ts +4 -10
- package/dist/cluster/ClusterClientReceptionist.d.ts.map +1 -1
- package/dist/cluster/ClusterClientReceptionist.js +17 -13
- package/dist/cluster/ClusterClientReceptionist.js.map +1 -1
- package/dist/cluster/ClusterClientReceptionistOptions.d.ts +38 -0
- package/dist/cluster/ClusterClientReceptionistOptions.d.ts.map +1 -0
- package/dist/cluster/ClusterClientReceptionistOptions.js +32 -0
- package/dist/cluster/ClusterClientReceptionistOptions.js.map +1 -0
- package/dist/cluster/ClusterOptions.d.ts +122 -0
- package/dist/cluster/ClusterOptions.d.ts.map +1 -0
- package/dist/cluster/ClusterOptions.js +98 -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 +10 -7
- package/dist/cluster/FailureDetector.js.map +1 -1
- package/dist/cluster/FailureDetectorOptions.d.ts +49 -0
- package/dist/cluster/FailureDetectorOptions.d.ts.map +1 -0
- package/dist/cluster/FailureDetectorOptions.js +48 -0
- package/dist/cluster/FailureDetectorOptions.js.map +1 -0
- package/dist/cluster/Member.js +2 -2
- package/dist/cluster/Member.js.map +1 -1
- package/dist/cluster/PhiAccrualFailureDetector.d.ts +4 -20
- package/dist/cluster/PhiAccrualFailureDetector.d.ts.map +1 -1
- package/dist/cluster/PhiAccrualFailureDetector.js +40 -44
- package/dist/cluster/PhiAccrualFailureDetector.js.map +1 -1
- package/dist/cluster/PhiAccrualOptions.d.ts +64 -0
- package/dist/cluster/PhiAccrualOptions.d.ts.map +1 -0
- package/dist/cluster/PhiAccrualOptions.js +68 -0
- package/dist/cluster/PhiAccrualOptions.js.map +1 -0
- package/dist/cluster/Protocol.d.ts +10 -10
- package/dist/cluster/Protocol.d.ts.map +1 -1
- package/dist/cluster/Protocol.js +1 -1
- package/dist/cluster/RefCodec.js +11 -1
- package/dist/cluster/RefCodec.js.map +1 -1
- package/dist/cluster/RemoteActorRef.d.ts +2 -2
- package/dist/cluster/RemoteActorRef.d.ts.map +1 -1
- package/dist/cluster/RemoteActorRef.js.map +1 -1
- package/dist/cluster/Transport.d.ts +3 -3
- package/dist/cluster/Transport.d.ts.map +1 -1
- package/dist/cluster/Transport.js +2 -2
- package/dist/cluster/Transport.js.map +1 -1
- package/dist/cluster/downing/KeepMajority.d.ts +3 -6
- package/dist/cluster/downing/KeepMajority.d.ts.map +1 -1
- package/dist/cluster/downing/KeepMajority.js +6 -6
- package/dist/cluster/downing/KeepMajority.js.map +1 -1
- package/dist/cluster/downing/KeepMajorityOptions.d.ts +26 -0
- package/dist/cluster/downing/KeepMajorityOptions.d.ts.map +1 -0
- package/dist/cluster/downing/KeepMajorityOptions.js +19 -0
- package/dist/cluster/downing/KeepMajorityOptions.js.map +1 -0
- package/dist/cluster/downing/KeepOldest.d.ts +3 -12
- package/dist/cluster/downing/KeepOldest.d.ts.map +1 -1
- package/dist/cluster/downing/KeepOldest.js +5 -5
- 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 +3 -11
- package/dist/cluster/downing/KeepReferee.d.ts.map +1 -1
- package/dist/cluster/downing/KeepReferee.js +7 -7
- package/dist/cluster/downing/KeepReferee.js.map +1 -1
- package/dist/cluster/downing/KeepRefereeOptions.d.ts +41 -0
- package/dist/cluster/downing/KeepRefereeOptions.d.ts.map +1 -0
- package/dist/cluster/downing/KeepRefereeOptions.js +38 -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 +142 -17
- package/dist/cluster/downing/LeaseMajority.js.map +1 -1
- package/dist/cluster/downing/LeaseMajorityOptions.d.ts +55 -0
- package/dist/cluster/downing/LeaseMajorityOptions.d.ts.map +1 -0
- package/dist/cluster/downing/LeaseMajorityOptions.js +41 -0
- package/dist/cluster/downing/LeaseMajorityOptions.js.map +1 -0
- package/dist/cluster/downing/StaticQuorum.d.ts +3 -8
- package/dist/cluster/downing/StaticQuorum.d.ts.map +1 -1
- package/dist/cluster/downing/StaticQuorum.js +7 -8
- package/dist/cluster/downing/StaticQuorum.js.map +1 -1
- package/dist/cluster/downing/StaticQuorumOptions.d.ts +36 -0
- package/dist/cluster/downing/StaticQuorumOptions.d.ts.map +1 -0
- package/dist/cluster/downing/StaticQuorumOptions.js +33 -0
- package/dist/cluster/downing/StaticQuorumOptions.js.map +1 -0
- package/dist/cluster/downing/index.d.ts +10 -5
- package/dist/cluster/downing/index.d.ts.map +1 -1
- package/dist/cluster/downing/index.js +5 -0
- package/dist/cluster/downing/index.js.map +1 -1
- package/dist/cluster/index.d.ts +37 -22
- package/dist/cluster/index.d.ts.map +1 -1
- package/dist/cluster/index.js +17 -6
- 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 +6 -10
- package/dist/cluster/pubsub/DistributedPubSubMediator.d.ts.map +1 -1
- package/dist/cluster/pubsub/DistributedPubSubMediator.js +24 -22
- package/dist/cluster/pubsub/DistributedPubSubMediator.js.map +1 -1
- package/dist/cluster/pubsub/DistributedPubSubOptions.d.ts +35 -0
- package/dist/cluster/pubsub/DistributedPubSubOptions.d.ts.map +1 -0
- package/dist/cluster/pubsub/DistributedPubSubOptions.js +33 -0
- package/dist/cluster/pubsub/DistributedPubSubOptions.js.map +1 -0
- package/dist/cluster/pubsub/Messages.d.ts +5 -5
- package/dist/cluster/pubsub/Messages.d.ts.map +1 -1
- package/dist/cluster/pubsub/Messages.js +2 -2
- package/dist/cluster/pubsub/Messages.js.map +1 -1
- package/dist/cluster/pubsub/index.d.ts +3 -2
- package/dist/cluster/pubsub/index.d.ts.map +1 -1
- package/dist/cluster/pubsub/index.js +2 -1
- 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 +10 -9
- package/dist/cluster/router/ClusterRouter.js.map +1 -1
- package/dist/cluster/router/ClusterRouterOptions.d.ts +70 -0
- package/dist/cluster/router/ClusterRouterOptions.d.ts.map +1 -0
- package/dist/cluster/router/ClusterRouterOptions.js +59 -0
- package/dist/cluster/router/ClusterRouterOptions.js.map +1 -0
- package/dist/cluster/router/ConsistentHashing.d.ts +1 -1
- package/dist/cluster/router/ConsistentHashing.d.ts.map +1 -1
- package/dist/cluster/router/ConsistentHashing.js +16 -16
- package/dist/cluster/router/ConsistentHashing.js.map +1 -1
- 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/AllocationStrategy.js +4 -4
- package/dist/cluster/sharding/AllocationStrategy.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 +20 -66
- package/dist/cluster/sharding/ClusterSharding.d.ts.map +1 -1
- package/dist/cluster/sharding/ClusterSharding.js +65 -39
- 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/ShardAllocator.js +14 -14
- package/dist/cluster/sharding/ShardAllocator.js.map +1 -1
- package/dist/cluster/sharding/ShardCoordinator.d.ts +4 -64
- package/dist/cluster/sharding/ShardCoordinator.d.ts.map +1 -1
- package/dist/cluster/sharding/ShardCoordinator.js +73 -73
- 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 +11 -42
- package/dist/cluster/sharding/ShardRegion.d.ts.map +1 -1
- package/dist/cluster/sharding/ShardRegion.js +20 -20
- 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 +20 -15
- package/dist/cluster/sharding/ShardedDaemonProcess.js.map +1 -1
- package/dist/cluster/sharding/ShardedDaemonProcessOptions.d.ts +57 -0
- package/dist/cluster/sharding/ShardedDaemonProcessOptions.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardedDaemonProcessOptions.js +47 -0
- package/dist/cluster/sharding/ShardedDaemonProcessOptions.js.map +1 -0
- package/dist/cluster/sharding/ShardingOptions.d.ts +95 -0
- package/dist/cluster/sharding/ShardingOptions.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardingOptions.js +92 -0
- package/dist/cluster/sharding/ShardingOptions.js.map +1 -0
- package/dist/cluster/sharding/ShardingProtocol.d.ts +6 -6
- package/dist/cluster/sharding/ShardingProtocol.d.ts.map +1 -1
- package/dist/cluster/sharding/StartShardingOptions.d.ts +106 -0
- package/dist/cluster/sharding/StartShardingOptions.d.ts.map +1 -0
- package/dist/cluster/sharding/StartShardingOptions.js +67 -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 +22 -14
- package/dist/cluster/singleton/ClusterSingleton.js.map +1 -1
- package/dist/cluster/singleton/ClusterSingletonManager.d.ts +4 -19
- package/dist/cluster/singleton/ClusterSingletonManager.d.ts.map +1 -1
- package/dist/cluster/singleton/ClusterSingletonManager.js +26 -26
- 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/ClusterSingletonProxy.js +2 -2
- package/dist/cluster/singleton/ClusterSingletonProxy.js.map +1 -1
- package/dist/cluster/singleton/StartSingletonOptions.d.ts +70 -0
- package/dist/cluster/singleton/StartSingletonOptions.d.ts.map +1 -0
- package/dist/cluster/singleton/StartSingletonOptions.js +51 -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/Config.js +61 -61
- package/dist/config/Config.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/config/HoconParser.d.ts +2 -2
- package/dist/config/HoconParser.d.ts.map +1 -1
- package/dist/config/HoconParser.js +77 -77
- package/dist/config/HoconParser.js.map +1 -1
- package/dist/config/reference.d.ts.map +1 -1
- package/dist/config/reference.js +24 -0
- package/dist/config/reference.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 +74 -0
- package/dist/coordination/LeaseOptions.d.ts.map +1 -0
- package/dist/coordination/LeaseOptions.js +89 -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 +36 -22
- package/dist/coordination/leases/InMemoryLease.js.map +1 -1
- package/dist/coordination/leases/KubernetesLease.d.ts +20 -25
- package/dist/coordination/leases/KubernetesLease.d.ts.map +1 -1
- package/dist/coordination/leases/KubernetesLease.js +57 -36
- package/dist/coordination/leases/KubernetesLease.js.map +1 -1
- package/dist/coordination/leases/KubernetesLeaseOptions.d.ts +63 -0
- package/dist/coordination/leases/KubernetesLeaseOptions.d.ts.map +1 -0
- package/dist/coordination/leases/KubernetesLeaseOptions.js +53 -0
- package/dist/coordination/leases/KubernetesLeaseOptions.js.map +1 -0
- package/dist/coordination/leases/k8sApi.d.ts +1 -1
- package/dist/coordination/leases/k8sApi.js +1 -1
- package/dist/crdt/DistributedData.d.ts +14 -34
- package/dist/crdt/DistributedData.d.ts.map +1 -1
- package/dist/crdt/DistributedData.js +37 -34
- package/dist/crdt/DistributedData.js.map +1 -1
- package/dist/crdt/DistributedDataOptions.d.ts +56 -0
- package/dist/crdt/DistributedDataOptions.d.ts.map +1 -0
- package/dist/crdt/DistributedDataOptions.js +38 -0
- package/dist/crdt/DistributedDataOptions.js.map +1 -0
- package/dist/crdt/GCounter.js +4 -4
- package/dist/crdt/GCounter.js.map +1 -1
- package/dist/crdt/GCounterMap.js +7 -7
- package/dist/crdt/GCounterMap.js.map +1 -1
- package/dist/crdt/GSet.js +8 -8
- package/dist/crdt/GSet.js.map +1 -1
- package/dist/crdt/LWWMap.d.ts +1 -1
- package/dist/crdt/LWWMap.js +19 -19
- package/dist/crdt/LWWMap.js.map +1 -1
- package/dist/crdt/MVRegister.js +16 -16
- package/dist/crdt/MVRegister.js.map +1 -1
- package/dist/crdt/ORMap.d.ts +2 -2
- package/dist/crdt/ORMap.js +18 -18
- package/dist/crdt/ORMap.js.map +1 -1
- package/dist/crdt/ORSet.js +38 -38
- package/dist/crdt/ORSet.js.map +1 -1
- 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/ConsumerController.d.ts +4 -11
- package/dist/delivery/ConsumerController.d.ts.map +1 -1
- package/dist/delivery/ConsumerController.js +12 -12
- package/dist/delivery/ConsumerController.js.map +1 -1
- package/dist/delivery/ConsumerControllerOptions.d.ts +32 -0
- package/dist/delivery/ConsumerControllerOptions.d.ts.map +1 -0
- package/dist/delivery/ConsumerControllerOptions.js +21 -0
- package/dist/delivery/ConsumerControllerOptions.js.map +1 -0
- package/dist/delivery/Messages.d.ts +2 -2
- package/dist/delivery/Messages.d.ts.map +1 -1
- package/dist/delivery/ProducerController.d.ts +8 -23
- package/dist/delivery/ProducerController.d.ts.map +1 -1
- package/dist/delivery/ProducerController.js +30 -27
- package/dist/delivery/ProducerController.js.map +1 -1
- package/dist/delivery/ProducerControllerOptions.d.ts +56 -0
- package/dist/delivery/ProducerControllerOptions.d.ts.map +1 -0
- package/dist/delivery/ProducerControllerOptions.js +47 -0
- package/dist/delivery/ProducerControllerOptions.js.map +1 -0
- package/dist/delivery/ReliableDelivery.d.ts +6 -5
- package/dist/delivery/ReliableDelivery.d.ts.map +1 -1
- package/dist/delivery/ReliableDelivery.js +6 -6
- package/dist/delivery/ReliableDelivery.js.map +1 -1
- package/dist/delivery/index.d.ts +6 -3
- package/dist/delivery/index.d.ts.map +1 -1
- package/dist/delivery/index.js +2 -0
- package/dist/delivery/index.js.map +1 -1
- package/dist/discovery/AutoDiscoveryOptions.d.ts +78 -0
- package/dist/discovery/AutoDiscoveryOptions.d.ts.map +1 -0
- package/dist/discovery/AutoDiscoveryOptions.js +45 -0
- package/dist/discovery/AutoDiscoveryOptions.js.map +1 -0
- package/dist/discovery/ConfigSeedProvider.d.ts +3 -8
- package/dist/discovery/ConfigSeedProvider.d.ts.map +1 -1
- package/dist/discovery/ConfigSeedProvider.js +8 -6
- package/dist/discovery/ConfigSeedProvider.js.map +1 -1
- package/dist/discovery/ConfigSeedProviderOptions.d.ts +40 -0
- package/dist/discovery/ConfigSeedProviderOptions.d.ts.map +1 -0
- package/dist/discovery/ConfigSeedProviderOptions.js +38 -0
- package/dist/discovery/ConfigSeedProviderOptions.js.map +1 -0
- package/dist/discovery/DnsSeedProvider.d.ts +4 -28
- package/dist/discovery/DnsSeedProvider.d.ts.map +1 -1
- package/dist/discovery/DnsSeedProvider.js +14 -15
- package/dist/discovery/DnsSeedProvider.js.map +1 -1
- package/dist/discovery/DnsSeedProviderOptions.d.ts +77 -0
- package/dist/discovery/DnsSeedProviderOptions.d.ts.map +1 -0
- package/dist/discovery/DnsSeedProviderOptions.js +68 -0
- package/dist/discovery/DnsSeedProviderOptions.js.map +1 -0
- package/dist/discovery/KubernetesApiSeedProvider.d.ts +3 -14
- package/dist/discovery/KubernetesApiSeedProvider.d.ts.map +1 -1
- package/dist/discovery/KubernetesApiSeedProvider.js +9 -7
- package/dist/discovery/KubernetesApiSeedProvider.js.map +1 -1
- package/dist/discovery/KubernetesApiSeedProviderOptions.d.ts +52 -0
- package/dist/discovery/KubernetesApiSeedProviderOptions.d.ts.map +1 -0
- package/dist/discovery/KubernetesApiSeedProviderOptions.js +52 -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 +19 -10
- package/dist/discovery/Receptionist.js.map +1 -1
- package/dist/discovery/ReceptionistMessages.d.ts +2 -2
- package/dist/discovery/ReceptionistMessages.d.ts.map +1 -1
- package/dist/discovery/ReceptionistMessages.js +1 -1
- package/dist/discovery/ReceptionistMessages.js.map +1 -1
- package/dist/discovery/ReceptionistOptions.d.ts +36 -0
- package/dist/discovery/ReceptionistOptions.d.ts.map +1 -0
- package/dist/discovery/ReceptionistOptions.js +34 -0
- package/dist/discovery/ReceptionistOptions.js.map +1 -0
- package/dist/discovery/ServiceKey.d.ts +2 -2
- package/dist/discovery/ServiceKey.d.ts.map +1 -1
- package/dist/discovery/ServiceKey.js.map +1 -1
- package/dist/discovery/autoDiscovery.d.ts +3 -44
- package/dist/discovery/autoDiscovery.d.ts.map +1 -1
- package/dist/discovery/autoDiscovery.js +37 -35
- package/dist/discovery/autoDiscovery.js.map +1 -1
- package/dist/discovery/index.d.ts +11 -6
- 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/fsm/FSM.d.ts +1 -1
- package/dist/fsm/FSM.js +1 -1
- package/dist/http/Html.d.ts +53 -0
- package/dist/http/Html.d.ts.map +1 -0
- package/dist/http/Html.js +92 -0
- package/dist/http/Html.js.map +1 -0
- package/dist/http/HttpExtension.d.ts +9 -0
- package/dist/http/HttpExtension.d.ts.map +1 -1
- package/dist/http/HttpExtension.js +106 -10
- package/dist/http/HttpExtension.js.map +1 -1
- package/dist/http/Marshalling.js +3 -3
- package/dist/http/Marshalling.js.map +1 -1
- package/dist/http/MimeTypes.d.ts +15 -0
- package/dist/http/MimeTypes.d.ts.map +1 -0
- package/dist/http/MimeTypes.js +87 -0
- package/dist/http/MimeTypes.js.map +1 -0
- package/dist/http/Route.d.ts +153 -4
- package/dist/http/Route.d.ts.map +1 -1
- package/dist/http/Route.js +170 -9
- package/dist/http/Route.js.map +1 -1
- package/dist/http/backend/ExpressBackend.d.ts +31 -20
- package/dist/http/backend/ExpressBackend.d.ts.map +1 -1
- package/dist/http/backend/ExpressBackend.js +199 -34
- package/dist/http/backend/ExpressBackend.js.map +1 -1
- package/dist/http/backend/ExpressBackendOptions.d.ts +53 -0
- package/dist/http/backend/ExpressBackendOptions.d.ts.map +1 -0
- package/dist/http/backend/ExpressBackendOptions.js +45 -0
- package/dist/http/backend/ExpressBackendOptions.js.map +1 -0
- package/dist/http/backend/FastifyBackend.d.ts +13 -1
- package/dist/http/backend/FastifyBackend.d.ts.map +1 -1
- package/dist/http/backend/FastifyBackend.js +124 -14
- package/dist/http/backend/FastifyBackend.js.map +1 -1
- package/dist/http/backend/HonoBackend.d.ts +39 -16
- package/dist/http/backend/HonoBackend.d.ts.map +1 -1
- package/dist/http/backend/HonoBackend.js +269 -35
- package/dist/http/backend/HonoBackend.js.map +1 -1
- package/dist/http/backend/HonoBackendOptions.d.ts +53 -0
- package/dist/http/backend/HonoBackendOptions.d.ts.map +1 -0
- package/dist/http/backend/HonoBackendOptions.js +45 -0
- package/dist/http/backend/HonoBackendOptions.js.map +1 -0
- package/dist/http/backend/HttpServerBackend.d.ts +36 -2
- package/dist/http/backend/HttpServerBackend.d.ts.map +1 -1
- package/dist/http/cache/IdempotencyKey.d.ts +2 -46
- package/dist/http/cache/IdempotencyKey.d.ts.map +1 -1
- package/dist/http/cache/IdempotencyKey.js +25 -20
- package/dist/http/cache/IdempotencyKey.js.map +1 -1
- package/dist/http/cache/IdempotencyOptions.d.ts +84 -0
- package/dist/http/cache/IdempotencyOptions.d.ts.map +1 -0
- package/dist/http/cache/IdempotencyOptions.js +61 -0
- package/dist/http/cache/IdempotencyOptions.js.map +1 -0
- package/dist/http/cache/RateLimit.d.ts +13 -32
- package/dist/http/cache/RateLimit.d.ts.map +1 -1
- package/dist/http/cache/RateLimit.js +42 -8
- package/dist/http/cache/RateLimit.js.map +1 -1
- package/dist/http/cache/RateLimitOptions.d.ts +80 -0
- package/dist/http/cache/RateLimitOptions.d.ts.map +1 -0
- package/dist/http/cache/RateLimitOptions.js +61 -0
- package/dist/http/cache/RateLimitOptions.js.map +1 -0
- package/dist/http/cache/ResponseCache.js +3 -3
- package/dist/http/cache/ResponseCache.js.map +1 -1
- package/dist/http/cache/index.d.ts +4 -2
- package/dist/http/cache/index.d.ts.map +1 -1
- package/dist/http/cache/index.js +2 -0
- package/dist/http/cache/index.js.map +1 -1
- package/dist/http/cookies.d.ts +38 -0
- package/dist/http/cookies.d.ts.map +1 -0
- package/dist/http/cookies.js +102 -0
- package/dist/http/cookies.js.map +1 -0
- package/dist/http/index.d.ts +19 -7
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +17 -2
- package/dist/http/index.js.map +1 -1
- package/dist/http/middleware/BasicAuth.d.ts +5 -0
- package/dist/http/middleware/BasicAuth.d.ts.map +1 -0
- package/dist/http/middleware/BasicAuth.js +58 -0
- package/dist/http/middleware/BasicAuth.js.map +1 -0
- package/dist/http/middleware/BasicAuthOptions.d.ts +22 -0
- package/dist/http/middleware/BasicAuthOptions.d.ts.map +1 -0
- package/dist/http/middleware/BasicAuthOptions.js +19 -0
- package/dist/http/middleware/BasicAuthOptions.js.map +1 -0
- 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/Cors.d.ts +39 -0
- package/dist/http/middleware/Cors.d.ts.map +1 -0
- package/dist/http/middleware/Cors.js +164 -0
- package/dist/http/middleware/Cors.js.map +1 -0
- package/dist/http/middleware/CorsOptions.d.ts +57 -0
- package/dist/http/middleware/CorsOptions.d.ts.map +1 -0
- package/dist/http/middleware/CorsOptions.js +62 -0
- package/dist/http/middleware/CorsOptions.js.map +1 -0
- package/dist/http/middleware/Csp.d.ts +13 -0
- package/dist/http/middleware/Csp.d.ts.map +1 -0
- package/dist/http/middleware/Csp.js +68 -0
- package/dist/http/middleware/Csp.js.map +1 -0
- package/dist/http/middleware/CspOptions.d.ts +53 -0
- package/dist/http/middleware/CspOptions.d.ts.map +1 -0
- package/dist/http/middleware/CspOptions.js +24 -0
- package/dist/http/middleware/CspOptions.js.map +1 -0
- package/dist/http/middleware/Csrf.d.ts +22 -0
- package/dist/http/middleware/Csrf.d.ts.map +1 -0
- package/dist/http/middleware/Csrf.js +165 -0
- package/dist/http/middleware/Csrf.js.map +1 -0
- package/dist/http/middleware/CsrfOptions.d.ts +75 -0
- package/dist/http/middleware/CsrfOptions.d.ts.map +1 -0
- package/dist/http/middleware/CsrfOptions.js +80 -0
- package/dist/http/middleware/CsrfOptions.js.map +1 -0
- package/dist/http/middleware/Hsts.d.ts +28 -0
- package/dist/http/middleware/Hsts.d.ts.map +1 -0
- package/dist/http/middleware/Hsts.js +34 -0
- package/dist/http/middleware/Hsts.js.map +1 -0
- package/dist/http/middleware/HstsOptions.d.ts +44 -0
- package/dist/http/middleware/HstsOptions.d.ts.map +1 -0
- package/dist/http/middleware/HstsOptions.js +49 -0
- package/dist/http/middleware/HstsOptions.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/RequestId.d.ts +5 -0
- package/dist/http/middleware/RequestId.d.ts.map +1 -0
- package/dist/http/middleware/RequestId.js +24 -0
- package/dist/http/middleware/RequestId.js.map +1 -0
- package/dist/http/middleware/RequestIdOptions.d.ts +22 -0
- package/dist/http/middleware/RequestIdOptions.d.ts.map +1 -0
- package/dist/http/middleware/RequestIdOptions.js +19 -0
- package/dist/http/middleware/RequestIdOptions.js.map +1 -0
- package/dist/http/middleware/SecurityHeaders.d.ts +11 -0
- package/dist/http/middleware/SecurityHeaders.d.ts.map +1 -0
- package/dist/http/middleware/SecurityHeaders.js +50 -0
- package/dist/http/middleware/SecurityHeaders.js.map +1 -0
- package/dist/http/middleware/SecurityHeadersOptions.d.ts +44 -0
- package/dist/http/middleware/SecurityHeadersOptions.d.ts.map +1 -0
- package/dist/http/middleware/SecurityHeadersOptions.js +40 -0
- package/dist/http/middleware/SecurityHeadersOptions.js.map +1 -0
- package/dist/http/middleware/Timeout.d.ts +13 -0
- package/dist/http/middleware/Timeout.d.ts.map +1 -0
- package/dist/http/middleware/Timeout.js +29 -0
- package/dist/http/middleware/Timeout.js.map +1 -0
- package/dist/http/middleware/TimeoutOptions.d.ts +30 -0
- package/dist/http/middleware/TimeoutOptions.d.ts.map +1 -0
- package/dist/http/middleware/TimeoutOptions.js +30 -0
- package/dist/http/middleware/TimeoutOptions.js.map +1 -0
- package/dist/http/middleware/headers.d.ts +21 -0
- package/dist/http/middleware/headers.d.ts.map +1 -0
- package/dist/http/middleware/headers.js +43 -0
- package/dist/http/middleware/headers.js.map +1 -0
- package/dist/http/middleware/index.d.ts +30 -0
- package/dist/http/middleware/index.d.ts.map +1 -0
- package/dist/http/middleware/index.js +23 -0
- package/dist/http/middleware/index.js.map +1 -0
- package/dist/http/static/DirectoryListing.d.ts +16 -0
- package/dist/http/static/DirectoryListing.d.ts.map +1 -0
- package/dist/http/static/DirectoryListing.js +39 -0
- package/dist/http/static/DirectoryListing.js.map +1 -0
- package/dist/http/static/StaticFiles.d.ts +11 -0
- package/dist/http/static/StaticFiles.d.ts.map +1 -0
- package/dist/http/static/StaticFiles.js +202 -0
- package/dist/http/static/StaticFiles.js.map +1 -0
- package/dist/http/static/StaticFilesOptions.d.ts +76 -0
- package/dist/http/static/StaticFilesOptions.d.ts.map +1 -0
- package/dist/http/static/StaticFilesOptions.js +83 -0
- package/dist/http/static/StaticFilesOptions.js.map +1 -0
- package/dist/http/static/fsAccess.d.ts +25 -0
- package/dist/http/static/fsAccess.d.ts.map +1 -0
- package/dist/http/static/fsAccess.js +42 -0
- package/dist/http/static/fsAccess.js.map +1 -0
- package/dist/http/static/index.d.ts +7 -0
- package/dist/http/static/index.d.ts.map +1 -0
- package/dist/http/static/index.js +5 -0
- package/dist/http/static/index.js.map +1 -0
- package/dist/http/static/staticPath.d.ts +14 -0
- package/dist/http/static/staticPath.d.ts.map +1 -0
- package/dist/http/static/staticPath.js +67 -0
- package/dist/http/static/staticPath.js.map +1 -0
- package/dist/http/types.d.ts +33 -3
- package/dist/http/types.d.ts.map +1 -1
- package/dist/http/types.js +11 -1
- package/dist/http/types.js.map +1 -1
- package/dist/http/websocket/ConnectionWiring.d.ts +59 -0
- package/dist/http/websocket/ConnectionWiring.d.ts.map +1 -0
- package/dist/http/websocket/ConnectionWiring.js +165 -0
- package/dist/http/websocket/ConnectionWiring.js.map +1 -0
- package/dist/http/websocket/SocketAdapter.d.ts +72 -0
- package/dist/http/websocket/SocketAdapter.d.ts.map +1 -0
- package/dist/http/websocket/SocketAdapter.js +97 -0
- package/dist/http/websocket/SocketAdapter.js.map +1 -0
- package/dist/http/websocket/WebsocketClientActor.d.ts +68 -0
- package/dist/http/websocket/WebsocketClientActor.d.ts.map +1 -0
- package/dist/http/websocket/WebsocketClientActor.js +195 -0
- package/dist/http/websocket/WebsocketClientActor.js.map +1 -0
- package/dist/http/websocket/WebsocketClientOptions.d.ts +82 -0
- package/dist/http/websocket/WebsocketClientOptions.d.ts.map +1 -0
- package/dist/http/websocket/WebsocketClientOptions.js +82 -0
- package/dist/http/websocket/WebsocketClientOptions.js.map +1 -0
- package/dist/http/websocket/WebsocketCodec.d.ts +65 -0
- package/dist/http/websocket/WebsocketCodec.d.ts.map +1 -0
- package/dist/http/websocket/WebsocketCodec.js +82 -0
- package/dist/http/websocket/WebsocketCodec.js.map +1 -0
- package/dist/http/websocket/WebsocketConnection.d.ts +59 -0
- package/dist/http/websocket/WebsocketConnection.d.ts.map +1 -0
- package/dist/http/websocket/WebsocketConnection.js +45 -0
- package/dist/http/websocket/WebsocketConnection.js.map +1 -0
- package/dist/http/websocket/WebsocketConnectionActor.d.ts +51 -0
- package/dist/http/websocket/WebsocketConnectionActor.d.ts.map +1 -0
- package/dist/http/websocket/WebsocketConnectionActor.js +170 -0
- package/dist/http/websocket/WebsocketConnectionActor.js.map +1 -0
- package/dist/http/websocket/WebsocketMessages.d.ts +115 -0
- package/dist/http/websocket/WebsocketMessages.d.ts.map +1 -0
- package/dist/http/websocket/WebsocketMessages.js +41 -0
- package/dist/http/websocket/WebsocketMessages.js.map +1 -0
- package/dist/http/websocket/WebsocketPolicy.d.ts +51 -0
- package/dist/http/websocket/WebsocketPolicy.d.ts.map +1 -0
- package/dist/http/websocket/WebsocketPolicy.js +70 -0
- package/dist/http/websocket/WebsocketPolicy.js.map +1 -0
- package/dist/http/websocket/WebsocketRoute.d.ts +20 -0
- package/dist/http/websocket/WebsocketRoute.d.ts.map +1 -0
- package/dist/http/websocket/WebsocketRoute.js +72 -0
- package/dist/http/websocket/WebsocketRoute.js.map +1 -0
- package/dist/http/websocket/WebsocketRouteOptions.d.ts +91 -0
- package/dist/http/websocket/WebsocketRouteOptions.d.ts.map +1 -0
- package/dist/http/websocket/WebsocketRouteOptions.js +92 -0
- package/dist/http/websocket/WebsocketRouteOptions.js.map +1 -0
- package/dist/http/websocket/WebsocketServerActor.d.ts +65 -0
- package/dist/http/websocket/WebsocketServerActor.d.ts.map +1 -0
- package/dist/http/websocket/WebsocketServerActor.js +141 -0
- package/dist/http/websocket/WebsocketServerActor.js.map +1 -0
- package/dist/http/websocket/index.d.ts +22 -0
- package/dist/http/websocket/index.d.ts.map +1 -0
- package/dist/http/websocket/index.js +15 -0
- package/dist/http/websocket/index.js.map +1 -0
- package/dist/http/websocket/matchPattern.d.ts +12 -0
- package/dist/http/websocket/matchPattern.d.ts.map +1 -0
- package/dist/http/websocket/matchPattern.js +43 -0
- package/dist/http/websocket/matchPattern.js.map +1 -0
- package/dist/http/websocket/rawResponse.d.ts +15 -0
- package/dist/http/websocket/rawResponse.d.ts.map +1 -0
- package/dist/http/websocket/rawResponse.js +64 -0
- package/dist/http/websocket/rawResponse.js.map +1 -0
- package/dist/http/websocket/types.d.ts +70 -0
- package/dist/http/websocket/types.d.ts.map +1 -0
- package/dist/http/websocket/types.js +81 -0
- package/dist/http/websocket/types.js.map +1 -0
- package/dist/http/websocket/websocketConstructor.d.ts +34 -0
- package/dist/http/websocket/websocketConstructor.d.ts.map +1 -0
- package/dist/http/websocket/websocketConstructor.js +38 -0
- package/dist/http/websocket/websocketConstructor.js.map +1 -0
- package/dist/index.d.ts +31 -28
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -13
- package/dist/index.js.map +1 -1
- package/dist/internal/ActorCell.d.ts +24 -9
- package/dist/internal/ActorCell.d.ts.map +1 -1
- package/dist/internal/ActorCell.js +66 -36
- package/dist/internal/ActorCell.js.map +1 -1
- package/dist/internal/LocalActorRef.d.ts +4 -4
- package/dist/internal/LocalActorRef.d.ts.map +1 -1
- package/dist/internal/LocalActorRef.js.map +1 -1
- package/dist/io/broker/AmqpActor.d.ts +26 -21
- package/dist/io/broker/AmqpActor.d.ts.map +1 -1
- package/dist/io/broker/AmqpActor.js +41 -31
- package/dist/io/broker/AmqpActor.js.map +1 -1
- package/dist/io/broker/AmqpOptions.d.ts +46 -0
- package/dist/io/broker/AmqpOptions.d.ts.map +1 -0
- package/dist/io/broker/AmqpOptions.js +45 -0
- package/dist/io/broker/AmqpOptions.js.map +1 -0
- package/dist/io/broker/BrokerActor.d.ts +34 -24
- package/dist/io/broker/BrokerActor.d.ts.map +1 -1
- package/dist/io/broker/BrokerActor.js +51 -36
- package/dist/io/broker/BrokerActor.js.map +1 -1
- package/dist/io/broker/BrokerOptions.d.ts +125 -0
- package/dist/io/broker/BrokerOptions.d.ts.map +1 -0
- package/dist/io/broker/BrokerOptions.js +151 -0
- package/dist/io/broker/BrokerOptions.js.map +1 -0
- package/dist/io/broker/GrpcClientActor.d.ts +13 -24
- package/dist/io/broker/GrpcClientActor.d.ts.map +1 -1
- package/dist/io/broker/GrpcClientActor.js +42 -40
- package/dist/io/broker/GrpcClientActor.js.map +1 -1
- package/dist/io/broker/GrpcClientOptions.d.ts +53 -0
- package/dist/io/broker/GrpcClientOptions.d.ts.map +1 -0
- package/dist/io/broker/GrpcClientOptions.js +52 -0
- package/dist/io/broker/GrpcClientOptions.js.map +1 -0
- package/dist/io/broker/GrpcServerActor.d.ts +6 -27
- package/dist/io/broker/GrpcServerActor.d.ts.map +1 -1
- package/dist/io/broker/GrpcServerActor.js +30 -30
- 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 +27 -47
- package/dist/io/broker/JetStreamActor.d.ts.map +1 -1
- package/dist/io/broker/JetStreamActor.js +93 -91
- package/dist/io/broker/JetStreamActor.js.map +1 -1
- package/dist/io/broker/JetStreamOptions.d.ts +69 -0
- package/dist/io/broker/JetStreamOptions.d.ts.map +1 -0
- package/dist/io/broker/JetStreamOptions.js +65 -0
- package/dist/io/broker/JetStreamOptions.js.map +1 -0
- package/dist/io/broker/KafkaActor.d.ts +24 -63
- package/dist/io/broker/KafkaActor.d.ts.map +1 -1
- package/dist/io/broker/KafkaActor.js +76 -62
- package/dist/io/broker/KafkaActor.js.map +1 -1
- package/dist/io/broker/KafkaOptions.d.ts +87 -0
- package/dist/io/broker/KafkaOptions.d.ts.map +1 -0
- package/dist/io/broker/KafkaOptions.js +61 -0
- package/dist/io/broker/KafkaOptions.js.map +1 -0
- package/dist/io/broker/MqttActor.d.ts +178 -116
- package/dist/io/broker/MqttActor.d.ts.map +1 -1
- package/dist/io/broker/MqttActor.js +373 -147
- 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 +149 -0
- package/dist/io/broker/MqttMessages.d.ts.map +1 -0
- package/dist/io/broker/MqttMessages.js +86 -0
- package/dist/io/broker/MqttMessages.js.map +1 -0
- package/dist/io/broker/MqttOptions.d.ts +109 -0
- package/dist/io/broker/MqttOptions.d.ts.map +1 -0
- package/dist/io/broker/MqttOptions.js +90 -0
- package/dist/io/broker/MqttOptions.js.map +1 -0
- package/dist/io/broker/NatsActor.d.ts +12 -25
- package/dist/io/broker/NatsActor.d.ts.map +1 -1
- package/dist/io/broker/NatsActor.js +36 -34
- package/dist/io/broker/NatsActor.js.map +1 -1
- package/dist/io/broker/NatsOptions.d.ts +56 -0
- package/dist/io/broker/NatsOptions.d.ts.map +1 -0
- package/dist/io/broker/NatsOptions.js +52 -0
- package/dist/io/broker/NatsOptions.js.map +1 -0
- package/dist/io/broker/RedisStreamsActor.d.ts +12 -28
- package/dist/io/broker/RedisStreamsActor.d.ts.map +1 -1
- package/dist/io/broker/RedisStreamsActor.js +40 -38
- package/dist/io/broker/RedisStreamsActor.js.map +1 -1
- package/dist/io/broker/RedisStreamsOptions.d.ts +56 -0
- package/dist/io/broker/RedisStreamsOptions.d.ts.map +1 -0
- package/dist/io/broker/RedisStreamsOptions.js +49 -0
- package/dist/io/broker/RedisStreamsOptions.js.map +1 -0
- package/dist/io/broker/SseActor.d.ts +12 -19
- package/dist/io/broker/SseActor.d.ts.map +1 -1
- package/dist/io/broker/SseActor.js +43 -22
- package/dist/io/broker/SseActor.js.map +1 -1
- package/dist/io/broker/SseOptions.d.ts +43 -0
- package/dist/io/broker/SseOptions.d.ts.map +1 -0
- package/dist/io/broker/SseOptions.js +40 -0
- package/dist/io/broker/SseOptions.js.map +1 -0
- package/dist/io/broker/TcpSocketActor.d.ts +12 -25
- package/dist/io/broker/TcpSocketActor.d.ts.map +1 -1
- package/dist/io/broker/TcpSocketActor.js +35 -24
- package/dist/io/broker/TcpSocketActor.js.map +1 -1
- package/dist/io/broker/TcpSocketOptions.d.ts +51 -0
- package/dist/io/broker/TcpSocketOptions.d.ts.map +1 -0
- package/dist/io/broker/TcpSocketOptions.js +45 -0
- package/dist/io/broker/TcpSocketOptions.js.map +1 -0
- package/dist/io/broker/UdpSocketActor.d.ts +12 -21
- package/dist/io/broker/UdpSocketActor.d.ts.map +1 -1
- package/dist/io/broker/UdpSocketActor.js +18 -16
- package/dist/io/broker/UdpSocketActor.js.map +1 -1
- package/dist/io/broker/UdpSocketOptions.d.ts +47 -0
- package/dist/io/broker/UdpSocketOptions.d.ts.map +1 -0
- package/dist/io/broker/UdpSocketOptions.js +49 -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 +22 -5
- package/dist/io/broker/index.js.map +1 -1
- package/dist/mailbox/BoundedMailbox.d.ts +3 -5
- package/dist/mailbox/BoundedMailbox.d.ts.map +1 -1
- package/dist/mailbox/BoundedMailbox.js +11 -4
- package/dist/mailbox/BoundedMailbox.js.map +1 -1
- package/dist/mailbox/BoundedMailboxOptions.d.ts +49 -0
- package/dist/mailbox/BoundedMailboxOptions.d.ts.map +1 -0
- package/dist/mailbox/BoundedMailboxOptions.js +46 -0
- package/dist/mailbox/BoundedMailboxOptions.js.map +1 -0
- package/dist/mailbox/PriorityMailbox.d.ts +2 -4
- package/dist/mailbox/PriorityMailbox.d.ts.map +1 -1
- package/dist/mailbox/PriorityMailbox.js +4 -4
- package/dist/mailbox/PriorityMailbox.js.map +1 -1
- package/dist/mailbox/PriorityMailboxOptions.d.ts +27 -0
- package/dist/mailbox/PriorityMailboxOptions.d.ts.map +1 -0
- package/dist/mailbox/PriorityMailboxOptions.js +20 -0
- package/dist/mailbox/PriorityMailboxOptions.js.map +1 -0
- package/dist/mailbox/index.d.ts +6 -2
- package/dist/mailbox/index.d.ts.map +1 -1
- package/dist/mailbox/index.js +2 -0
- package/dist/mailbox/index.js.map +1 -1
- package/dist/management/HttpManagement.d.ts +2 -18
- package/dist/management/HttpManagement.d.ts.map +1 -1
- package/dist/management/HttpManagement.js +38 -11
- package/dist/management/HttpManagement.js.map +1 -1
- package/dist/management/ManagementRoutesOptions.d.ts +43 -0
- package/dist/management/ManagementRoutesOptions.d.ts.map +1 -0
- package/dist/management/ManagementRoutesOptions.js +35 -0
- package/dist/management/ManagementRoutesOptions.js.map +1 -0
- package/dist/management/index.d.ts +2 -1
- package/dist/management/index.d.ts.map +1 -1
- package/dist/management/index.js +1 -0
- package/dist/management/index.js.map +1 -1
- package/dist/metrics/Metrics.js +11 -11
- package/dist/metrics/Metrics.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/PrometheusExporter.js +23 -23
- package/dist/metrics/PrometheusExporter.js.map +1 -1
- 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/pattern/BackoffPolicy.js +5 -5
- package/dist/pattern/BackoffPolicy.js.map +1 -1
- package/dist/pattern/CircuitBreaker.d.ts +3 -12
- package/dist/pattern/CircuitBreaker.d.ts.map +1 -1
- package/dist/pattern/CircuitBreaker.js +13 -16
- package/dist/pattern/CircuitBreaker.js.map +1 -1
- package/dist/pattern/CircuitBreakerOptions.d.ts +50 -0
- package/dist/pattern/CircuitBreakerOptions.d.ts.map +1 -0
- package/dist/pattern/CircuitBreakerOptions.js +53 -0
- package/dist/pattern/CircuitBreakerOptions.js.map +1 -0
- package/dist/pattern/index.d.ts +3 -1
- package/dist/pattern/index.d.ts.map +1 -1
- package/dist/pattern/index.js +1 -0
- package/dist/pattern/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 +9 -9
- 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/EventDispatcher.js +3 -3
- package/dist/persistence/EventDispatcher.js.map +1 -1
- package/dist/persistence/JournalEventBus.js +2 -2
- package/dist/persistence/JournalEventBus.js.map +1 -1
- package/dist/persistence/PersistenceOptions.d.ts +46 -1
- package/dist/persistence/PersistenceOptions.d.ts.map +1 -1
- package/dist/persistence/PersistenceOptions.js +1 -1
- package/dist/persistence/ReplicatedEventSourcedActor.d.ts +2 -2
- package/dist/persistence/ReplicatedEventSourcedActor.d.ts.map +1 -1
- package/dist/persistence/ReplicatedEventSourcedActor.js +4 -4
- 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 +5 -9
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.d.ts.map +1 -1
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.js +52 -8
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.js.map +1 -1
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStoreOptions.d.ts +83 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStoreOptions.d.ts.map +1 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStoreOptions.js +67 -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/CassandraClient.d.ts +1 -1
- package/dist/persistence/journals/CassandraClient.d.ts.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 +16 -7
- package/dist/persistence/journals/CassandraJournal.js.map +1 -1
- package/dist/persistence/journals/CassandraJournalOptions.d.ts +113 -0
- package/dist/persistence/journals/CassandraJournalOptions.d.ts.map +1 -0
- package/dist/persistence/journals/CassandraJournalOptions.js +101 -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 +4 -18
- package/dist/persistence/journals/SqliteJournal.d.ts.map +1 -1
- package/dist/persistence/journals/SqliteJournal.js +13 -8
- 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/migration/MigrationChain.js +3 -3
- package/dist/persistence/migration/MigrationChain.js.map +1 -1
- package/dist/persistence/migration/SchemaRegistry.js +9 -9
- package/dist/persistence/migration/SchemaRegistry.js.map +1 -1
- package/dist/persistence/migration/defaultsAdapter.js +10 -10
- package/dist/persistence/migration/defaultsAdapter.js.map +1 -1
- package/dist/persistence/migration/validatedAdapter.js +4 -4
- package/dist/persistence/migration/validatedAdapter.js.map +1 -1
- package/dist/persistence/migration/wrapLegacy.js +2 -2
- package/dist/persistence/migration/wrapLegacy.js.map +1 -1
- package/dist/persistence/object-storage/BodyCodec.d.ts +57 -0
- package/dist/persistence/object-storage/BodyCodec.d.ts.map +1 -1
- package/dist/persistence/object-storage/BodyCodec.js +88 -22
- package/dist/persistence/object-storage/BodyCodec.js.map +1 -1
- package/dist/persistence/object-storage/Compression.d.ts +28 -8
- package/dist/persistence/object-storage/Compression.d.ts.map +1 -1
- package/dist/persistence/object-storage/Compression.js +107 -32
- package/dist/persistence/object-storage/Compression.js.map +1 -1
- package/dist/persistence/object-storage/Encryption.js +3 -3
- package/dist/persistence/object-storage/Encryption.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 +61 -16
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.js.map +1 -1
- package/dist/persistence/object-storage/FilesystemObjectStorageOptions.d.ts +51 -0
- package/dist/persistence/object-storage/FilesystemObjectStorageOptions.d.ts.map +1 -0
- package/dist/persistence/object-storage/FilesystemObjectStorageOptions.js +44 -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 +8 -24
- package/dist/persistence/object-storage/ObjectStoragePlugin.d.ts.map +1 -1
- package/dist/persistence/object-storage/ObjectStoragePlugin.js +39 -29
- package/dist/persistence/object-storage/ObjectStoragePlugin.js.map +1 -1
- package/dist/persistence/object-storage/ObjectStoragePluginOptions.d.ts +72 -0
- package/dist/persistence/object-storage/ObjectStoragePluginOptions.d.ts.map +1 -0
- package/dist/persistence/object-storage/ObjectStoragePluginOptions.js +59 -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 +24 -21
- package/dist/persistence/object-storage/S3ObjectStorageBackend.js.map +1 -1
- package/dist/persistence/object-storage/S3ObjectStorageOptions.d.ts +70 -0
- package/dist/persistence/object-storage/S3ObjectStorageOptions.d.ts.map +1 -0
- package/dist/persistence/object-storage/S3ObjectStorageOptions.js +58 -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 +45 -11
- 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/query/CassandraQuery.js +11 -11
- package/dist/persistence/query/CassandraQuery.js.map +1 -1
- package/dist/persistence/query/InMemoryQuery.js +12 -12
- package/dist/persistence/query/InMemoryQuery.js.map +1 -1
- package/dist/persistence/query/PersistenceQuery.js +6 -6
- package/dist/persistence/query/PersistenceQuery.js.map +1 -1
- package/dist/persistence/query/SqliteQuery.js +6 -6
- package/dist/persistence/query/SqliteQuery.js.map +1 -1
- package/dist/persistence/replicated/VectorClock.js +13 -13
- package/dist/persistence/replicated/VectorClock.js.map +1 -1
- 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 -9
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.js.map +1 -1
- package/dist/persistence/snapshot-stores/CachedSnapshotStoreOptions.d.ts +47 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStoreOptions.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStoreOptions.js +47 -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 +3 -15
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.d.ts.map +1 -1
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.js +28 -17
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.js.map +1 -1
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStoreOptions.d.ts +67 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStoreOptions.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStoreOptions.js +63 -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 +1 -14
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.d.ts.map +1 -1
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.js +6 -3
- 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/persistence/storage/KeyValidator.js +3 -3
- package/dist/persistence/storage/KeyValidator.js.map +1 -1
- package/dist/persistence/storage/SqlIdentifier.d.ts +11 -0
- package/dist/persistence/storage/SqlIdentifier.d.ts.map +1 -0
- package/dist/persistence/storage/SqlIdentifier.js +16 -0
- package/dist/persistence/storage/SqlIdentifier.js.map +1 -0
- package/dist/runtime/detect.d.ts.map +1 -1
- package/dist/runtime/detect.js +7 -7
- package/dist/runtime/detect.js.map +1 -1
- 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 +24 -2
- 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/runtime/sqlite/BetterSqliteDriver.js.map +1 -1
- package/dist/runtime/sqlite/BunSqliteDriver.js.map +1 -1
- package/dist/runtime/tcp/BunTcpBackend.d.ts +3 -3
- package/dist/runtime/tcp/BunTcpBackend.d.ts.map +1 -1
- package/dist/runtime/tcp/DenoTcpBackend.d.ts +3 -3
- package/dist/runtime/tcp/DenoTcpBackend.d.ts.map +1 -1
- package/dist/runtime/tcp/DenoTcpBackend.js +3 -3
- package/dist/runtime/tcp/DenoTcpBackend.js.map +1 -1
- package/dist/runtime/tcp/NodeTcpBackend.d.ts +3 -3
- package/dist/runtime/tcp/NodeTcpBackend.d.ts.map +1 -1
- package/dist/runtime/tcp/TcpBackend.d.ts +3 -3
- package/dist/runtime/tcp/TcpBackend.d.ts.map +1 -1
- package/dist/runtime/tcp/index.d.ts +1 -1
- package/dist/runtime/tcp/index.d.ts.map +1 -1
- package/dist/runtime/worker/NodeWorkerBackend.js.map +1 -1
- package/dist/runtime/worker/WebWorkerBackend.js +3 -3
- package/dist/runtime/worker/WebWorkerBackend.js.map +1 -1
- package/dist/serialization/CborCodec.d.ts +2 -2
- package/dist/serialization/CborCodec.d.ts.map +1 -1
- package/dist/serialization/CborCodec.js +80 -80
- package/dist/serialization/CborCodec.js.map +1 -1
- package/dist/serialization/JsonSerializer.js +20 -7
- package/dist/serialization/JsonSerializer.js.map +1 -1
- package/dist/serialization/SerializationExtension.d.ts +2 -2
- package/dist/serialization/SerializationExtension.d.ts.map +1 -1
- package/dist/serialization/SerializationExtension.js +3 -3
- package/dist/serialization/SerializationExtension.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 +10 -9
- package/dist/testkit/ManualScheduler.js.map +1 -1
- package/dist/testkit/MockCluster.d.ts +67 -0
- package/dist/testkit/MockCluster.d.ts.map +1 -0
- package/dist/testkit/MockCluster.js +189 -0
- package/dist/testkit/MockCluster.js.map +1 -0
- package/dist/testkit/MockClusterOptions.d.ts +32 -0
- package/dist/testkit/MockClusterOptions.d.ts.map +1 -0
- package/dist/testkit/MockClusterOptions.js +23 -0
- package/dist/testkit/MockClusterOptions.js.map +1 -0
- package/dist/testkit/MultiNodeClusterFixture.d.ts +63 -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 -81
- package/dist/testkit/MultiNodeSpec.d.ts.map +1 -1
- package/dist/testkit/MultiNodeSpec.js +139 -44
- package/dist/testkit/MultiNodeSpec.js.map +1 -1
- package/dist/testkit/MultiNodeSpecOptions.d.ts +57 -0
- package/dist/testkit/MultiNodeSpecOptions.d.ts.map +1 -0
- package/dist/testkit/MultiNodeSpecOptions.js +43 -0
- package/dist/testkit/MultiNodeSpecOptions.js.map +1 -0
- package/dist/testkit/ParallelMultiNodeSpec.d.ts +13 -72
- package/dist/testkit/ParallelMultiNodeSpec.d.ts.map +1 -1
- package/dist/testkit/ParallelMultiNodeSpec.js +82 -36
- package/dist/testkit/ParallelMultiNodeSpec.js.map +1 -1
- package/dist/testkit/ParallelMultiNodeSpecOptions.d.ts +58 -0
- package/dist/testkit/ParallelMultiNodeSpecOptions.d.ts.map +1 -0
- package/dist/testkit/ParallelMultiNodeSpecOptions.js +51 -0
- package/dist/testkit/ParallelMultiNodeSpecOptions.js.map +1 -0
- 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 +7 -9
- package/dist/testkit/TestKit.d.ts.map +1 -1
- package/dist/testkit/TestKit.js +11 -7
- 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 +5 -10
- package/dist/testkit/TestProbe.d.ts.map +1 -1
- package/dist/testkit/TestProbe.js +23 -20
- package/dist/testkit/TestProbe.js.map +1 -1
- package/dist/testkit/TestProbeOptions.d.ts +32 -0
- package/dist/testkit/TestProbeOptions.d.ts.map +1 -0
- package/dist/testkit/TestProbeOptions.js +29 -0
- package/dist/testkit/TestProbeOptions.js.map +1 -0
- package/dist/testkit/index.d.ts +15 -4
- package/dist/testkit/index.d.ts.map +1 -1
- package/dist/testkit/index.js +8 -0
- package/dist/testkit/index.js.map +1 -1
- package/dist/testkit/internal/MultiNodeBroker.js +3 -3
- package/dist/testkit/internal/MultiNodeBroker.js.map +1 -1
- package/dist/testkit/internal/MultiNodeTransport.js +2 -2
- package/dist/testkit/internal/MultiNodeTransport.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 +21 -17
- 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/Tracer.js +2 -2
- package/dist/tracing/Tracer.js.map +1 -1
- 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/typed/TypedActor.d.ts.map +1 -1
- package/dist/typed/TypedActor.js +6 -6
- package/dist/typed/TypedActor.js.map +1 -1
- package/dist/util/Constants.d.ts +24 -1
- package/dist/util/Constants.d.ts.map +1 -1
- package/dist/util/Constants.js +24 -1
- package/dist/util/Constants.js.map +1 -1
- package/dist/util/Either.js +4 -4
- package/dist/util/Either.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/util/OptionsValidator.d.ts +114 -0
- package/dist/util/OptionsValidator.d.ts.map +1 -0
- package/dist/util/OptionsValidator.js +204 -0
- package/dist/util/OptionsValidator.js.map +1 -0
- package/dist/util/Try.js +4 -4
- package/dist/util/Try.js.map +1 -1
- package/dist/worker/WorkerCluster.d.ts +3 -12
- package/dist/worker/WorkerCluster.d.ts.map +1 -1
- package/dist/worker/WorkerCluster.js +33 -30
- package/dist/worker/WorkerCluster.js.map +1 -1
- package/dist/worker/WorkerClusterOptions.d.ts +61 -0
- package/dist/worker/WorkerClusterOptions.d.ts.map +1 -0
- package/dist/worker/WorkerClusterOptions.js +70 -0
- package/dist/worker/WorkerClusterOptions.js.map +1 -0
- package/dist/worker/WorkerNode.js +5 -5
- package/dist/worker/WorkerNode.js.map +1 -1
- 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/BrokerSettings.d.ts +0 -72
- package/dist/io/broker/BrokerSettings.d.ts.map +0 -1
- package/dist/io/broker/BrokerSettings.js +0 -73
- package/dist/io/broker/BrokerSettings.js.map +0 -1
- 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
package/CHANGELOG.md
CHANGED
|
@@ -7,7 +7,709 @@ This is a pre-1.0 hobby project — every minor version is potentially
|
|
|
7
7
|
breaking. See `ROADMAP.md` for what's coming, and `README.md` →
|
|
8
8
|
"What's in here / What isn't" for current scope honesty.
|
|
9
9
|
|
|
10
|
-
## [
|
|
10
|
+
## [0.11.0] — 2026-07-15
|
|
11
|
+
|
|
12
|
+
### Changed — Naming conventions: no abbreviations, unified vocabulary
|
|
13
|
+
|
|
14
|
+
Repo-wide naming sweep for consistency. Pre-1.0, so these are hard
|
|
15
|
+
renames with no deprecation shims. All are mechanical — same behavior,
|
|
16
|
+
new names.
|
|
17
|
+
|
|
18
|
+
- **BREAKING — WebSocket → `Websocket` (single-cap), no `Ws` abbreviation.**
|
|
19
|
+
Every identifier and file/dir uses the `Websocket` spelling:
|
|
20
|
+
`WebSocketServerActor`/`WebSocketClientActor` → `WebsocketServerActor`/
|
|
21
|
+
`WebsocketClientActor`; the `Ws*` supporting types (`WsConnection`,
|
|
22
|
+
`WsCodec`, `WsFrame`, `WsServerMessage`, …) → `Websocket*`; `wsSend()` →
|
|
23
|
+
`websocketSend()`; `DEFAULT_WS_MAX_FRAME_BYTES` →
|
|
24
|
+
`DEFAULT_WEBSOCKET_MAX_FRAME_BYTES`; the module moved
|
|
25
|
+
`src/http/ws/` → `src/http/websocket/`. The `websocket()` routing
|
|
26
|
+
directive, the global `WebSocket`, the `ws` package's `WebSocketServer`,
|
|
27
|
+
and the `Sec-WebSocket-Protocol` header are unchanged.
|
|
28
|
+
*Migration:* replace `Ws`/`WebSocket` identifier prefixes with
|
|
29
|
+
`Websocket`; `wsSend` → `websocketSend`.
|
|
30
|
+
- **BREAKING — abbreviations spelled out** in type/member names: `*Cmd` →
|
|
31
|
+
`*Command`, `*Msg` → `*Message`, `*Ack` → `*Acknowledgment`, `ByPid*` →
|
|
32
|
+
`ByPersistenceId*`, `*Impl` → `*Implementation`, `*Ctor` → `*Constructor`.
|
|
33
|
+
Wire/discriminator string literals are unchanged.
|
|
34
|
+
*Migration:* e.g. `MqttCmd` → `MqttCommand`, `EnvelopeMsg` →
|
|
35
|
+
`EnvelopeMessage`, `SubscribeAck` → `SubscribeAcknowledgment`.
|
|
36
|
+
- **BREAKING — testkit assertions spelled out too:** `TestProbe.expectMsg()`
|
|
37
|
+
→ `expectMessage()`, `TestProbe.expectMsgType()` → `expectMessageType()` —
|
|
38
|
+
the last `Msg` holdouts, now consistent with `expectNoMessage()`.
|
|
39
|
+
*Migration:* rename the calls; signatures and behavior are unchanged.
|
|
40
|
+
- **BREAKING — one config vocabulary: `Options`, never `Settings`.**
|
|
41
|
+
Remaining `*Settings` types → `*OptionsType` (`CircuitBreakerSettings`,
|
|
42
|
+
`TlsTransportSettings`, `Bounded/PriorityMailboxSettings`,
|
|
43
|
+
`ManagementRoutesSettings`, `ConsumerControllerSettings`,
|
|
44
|
+
`KeepMajoritySettings`, the testkit specs); `BrokerSettings.ts` folded
|
|
45
|
+
into `BrokerOptions.ts` (`BrokerSettingsError` → `BrokerOptionsError`);
|
|
46
|
+
the `BrokerActor` glue `readSettingsFromConfig`/`requiredSettings`/
|
|
47
|
+
`builtInDefaults`/`settings` → `readOptionsFromConfig`/`requiredOptions`/
|
|
48
|
+
`builtInDefaultOptions`/`options`; `default{FailureDetector,PhiAccrual}Settings`
|
|
49
|
+
→ `default*Options`. New dedicated `ConsumerControllerOptions` +
|
|
50
|
+
`KeepMajorityOptions` files with builders.
|
|
51
|
+
- **BREAKING — Command vs Signal unified on `kind`.** MQTT and WebSocket
|
|
52
|
+
internal mailbox signals are now `kind`-tagged plain objects (dispatched
|
|
53
|
+
by `kind`, like the typed-actor `Signal`), not `instanceof`-dispatched
|
|
54
|
+
classes; the bad-payload hook is `onInvalidMessage` everywhere (MQTT's
|
|
55
|
+
`onDecodeError` is gone); `WebSocketAcceptSignal` → `WebsocketAcceptCommand`
|
|
56
|
+
and `WebsocketClientSend` is a command, both lifted out of the `*Signal`
|
|
57
|
+
unions.
|
|
58
|
+
*Migration:* override `onInvalidMessage` instead of `onDecodeError`;
|
|
59
|
+
construct outbound sends via `websocketSend(msg)` (unchanged).
|
|
60
|
+
### Added — Options validation
|
|
61
|
+
|
|
62
|
+
- **`OptionsValidator` + `OptionsError`** (#274) — a declarative-but-code
|
|
63
|
+
validator layer for the `XOptions` pattern. Each options file with
|
|
64
|
+
constrained fields exports an `XOptionsValidator` (`extends
|
|
65
|
+
OptionsValidator<XOptionsType>`, brokers via `BrokerOptionsValidator`) whose
|
|
66
|
+
`rules(s)` uses typo-checked, no-op-on-`undefined` helpers (`port`,
|
|
67
|
+
`positiveNumber`, `positiveInt`, `nonNegativeInt`, `oneOf`, `nonEmptyString`,
|
|
68
|
+
`url`, …) plus `fail(field, reason, value)` for cross-field rules. Validation
|
|
69
|
+
runs **once at consume time on the merged settings**, so builder, plain-object,
|
|
70
|
+
and HOCON inputs are all checked and cross-field rules see the final values —
|
|
71
|
+
broker actors via the `optionsValidator()` hook (in `preStart`, after the
|
|
72
|
+
required-field check), non-broker consumers via one
|
|
73
|
+
`new XOptionsValidator().validate(settings)` call in their constructor.
|
|
74
|
+
- **Validators shipped for**: every broker (MQTT, Kafka, AMQP, Redis Streams,
|
|
75
|
+
NATS, JetStream, SSE, TCP, UDP, gRPC client) and the WebSocket client; the
|
|
76
|
+
cluster core (`Cluster`, `ClusterBootstrap`, `FailureDetector`, `PhiAccrual`,
|
|
77
|
+
`ClusterClient`, `ClusterClientReceptionist`, `StaticQuorum`, `KeepReferee`,
|
|
78
|
+
`LeaseMajority`, `ClusterRouter`), sharding (`Sharding`, `StartSharding`,
|
|
79
|
+
`ShardedDaemonProcess`) and singleton (`StartSingleton`); discovery
|
|
80
|
+
(`AutoDiscovery`, `ConfigSeedProvider`, `DnsSeedProvider`,
|
|
81
|
+
`KubernetesApiSeedProvider`, `Receptionist`) and gossip intervals
|
|
82
|
+
(`DistributedPubSub`, `DistributedData`); leases (`Lease`, `KubernetesLease`);
|
|
83
|
+
caches (`RedisCache`, `MemcachedCache`, `CachedSnapshotStore`); the
|
|
84
|
+
`CassandraJournal` and S3 / filesystem object-storage backends; the
|
|
85
|
+
Express/Hono HTTP backends; `WorkerCluster`; delivery `ProducerController`;
|
|
86
|
+
and `TestProbe`. Options whose fields carry no real constraint
|
|
87
|
+
(all-boolean/string/callback, or degrade-gracefully knobs like snapshot
|
|
88
|
+
`keepN` where `<= 0` means "keep all") intentionally get no validator.
|
|
89
|
+
|
|
90
|
+
### Changed — Options validation
|
|
91
|
+
|
|
92
|
+
- **BREAKING** (#274) — invalid **option values** now throw `OptionsError` at
|
|
93
|
+
construction / actor start instead of a bare `Error` (or, previously, going
|
|
94
|
+
unchecked on the builder/plain-object path). Notably MQTT `protocolVersion`
|
|
95
|
+
outside `{4, 5}` now throws `OptionsError` on **all** input paths (previously
|
|
96
|
+
only the HOCON path threw, as a bare `Error`). *Migration:* catch
|
|
97
|
+
`OptionsError` (exported from the package root) where you previously matched
|
|
98
|
+
the ad-hoc `Error` message. Missing **required** broker settings still throw
|
|
99
|
+
`BrokerOptionsError`; malformed HOCON still throws `ConfigError`.
|
|
100
|
+
- **BREAKING — `InMemoryCache` joins the `XOptions` family.** It now takes an
|
|
101
|
+
`InMemoryCacheOptions` builder (or plain object) with `withMaxEntries` /
|
|
102
|
+
`withCleanupMs`, validates via `InMemoryCacheOptionsValidator` (out-of-range
|
|
103
|
+
values throw `OptionsError` instead of a bare `Error`, and `cleanupMs` — a
|
|
104
|
+
negative / `NaN` sweep interval — is now checked too), and reads its defaults
|
|
105
|
+
from HOCON `actor-ts.cache.in-memory.{maxEntries, cleanupMs}` via the
|
|
106
|
+
`CacheExtension` (previously the bounds were unreachable through the
|
|
107
|
+
extension). The internal `InMemoryCacheSettings` interface is **removed** —
|
|
108
|
+
use `InMemoryCacheOptionsType` (both `InMemoryCacheOptions` and the type are
|
|
109
|
+
now exported from the package root). *Migration:* a plain
|
|
110
|
+
`{ maxEntries, cleanupMs }` object still works unchanged; only the type name
|
|
111
|
+
changed.
|
|
112
|
+
- **WebSocket route / policy options are now validated.** The resolved
|
|
113
|
+
per-connection policy (`maxFrameBytes`, `maxBufferedBytes`, `maxConnections`,
|
|
114
|
+
and the `onOversizeFrame` / `onInvalidMessage` / `onBackpressure` enums) is
|
|
115
|
+
checked on every path — route options, HOCON `actor-ts.http.websocket`, and
|
|
116
|
+
defaults — via `WebsocketPolicyOptionsValidator`, and `allowedOrigins` via
|
|
117
|
+
`WebsocketRouteOptionsValidator`. Bad values throw `OptionsError` (the enum
|
|
118
|
+
guard previously threw a bare `Error`, and only on the HOCON path; the
|
|
119
|
+
numeric knobs — e.g. `maxConnections: 0`, which silently admitted nobody —
|
|
120
|
+
were unchecked). The reference config now ships an `actor-ts.http.websocket`
|
|
121
|
+
section documenting the defaults.
|
|
122
|
+
- **The object-storage decompression cap is now a store option.** The 512 MiB
|
|
123
|
+
decompression-bomb guard (#3) was pinned to its default because the stores
|
|
124
|
+
called `decodeBody` without a cap. `withMaxDecompressedBytes` is now on
|
|
125
|
+
`ObjectStorageSnapshotStoreOptions`, `ObjectStorageDurableStateStoreOptions`,
|
|
126
|
+
and `ObjectStoragePluginOptions` (validated at construction — a non-positive
|
|
127
|
+
/ non-integer cap throws `OptionsError`, `Infinity` opts out), and both
|
|
128
|
+
stores forward it into `decodeBody`. Raise it to restore a legitimately
|
|
129
|
+
large snapshot / state blob, or lower it for a tighter bound.
|
|
130
|
+
- **HTTP middleware + directives now validate their options.** Added
|
|
131
|
+
`OptionsValidator`s for `TimeoutOptions` (`ms`), `HstsOptions` (`maxAge` plus
|
|
132
|
+
the preload cross-field), `CorsOptions` (`maxAge` plus credentials-vs-`*`),
|
|
133
|
+
`CsrfOptions` (present-secret length, cookie `sameSite` / `maxAgeSeconds`),
|
|
134
|
+
and `StaticFilesOptions` (`maxFileSize`, `dotfiles` / `symlinks` enums); the
|
|
135
|
+
ad-hoc bare-`Error` validity checks in the consumers now throw `OptionsError`
|
|
136
|
+
(required-field guards stay as-is). `rateLimit` and `idempotent` also gained
|
|
137
|
+
the real `RateLimitOptions` / `IdempotencyOptions` fluent builders they were
|
|
138
|
+
already documented to have, each with a validator (`windowMs`/`max`,
|
|
139
|
+
`ttlMs`/`missingHeader`); the plain-object call form is unchanged.
|
|
140
|
+
- **`CircuitBreaker` and `BoundedMailbox` now validate their options too** —
|
|
141
|
+
the last exported options types with real numeric constraints join the
|
|
142
|
+
validator family. `CircuitBreakerOptionsValidator` checks `maxFailures`
|
|
143
|
+
(integer >= 1), `resetTimeoutMs` (finite >= 0), and the previously-unchecked
|
|
144
|
+
`callTimeoutMs` (> 0 — omit it to disable the per-call timeout; `0`, which
|
|
145
|
+
previously meant "no timeout" silently, now throws), and requires
|
|
146
|
+
`maxFailures`/`resetTimeoutMs` at runtime (a builder without them previously
|
|
147
|
+
produced a breaker that silently never opened).
|
|
148
|
+
`BoundedMailboxOptionsValidator` checks `capacity` (integer >= 1, and now
|
|
149
|
+
required — previously a missing `capacity` made the "bounded" mailbox
|
|
150
|
+
silently unbounded) and the previously-unchecked `overflow` enum. The old
|
|
151
|
+
ad-hoc bare-`Error` guards now throw `OptionsError`.
|
|
152
|
+
|
|
153
|
+
### Added — HTTP hardening
|
|
154
|
+
|
|
155
|
+
- **Scoped error handling + fallback routes** (#352) — `handleErrors(handler,
|
|
156
|
+
child)` catches exceptions from a subtree (akka-http `ExceptionHandler`
|
|
157
|
+
style; sees the original error, returns a response or `null` to decline);
|
|
158
|
+
`fallback(handler)` answers any unmatched request via each backend's
|
|
159
|
+
not-found hook; `ServerBuilder.withErrorHandler(...)` is the server-wide
|
|
160
|
+
last resort. Precedence, uniform across Fastify/Express/Hono: innermost
|
|
161
|
+
`handleErrors` → `withErrorHandler` → framework default.
|
|
162
|
+
- **HTML response utilities** (#352) — `escapeHtml`, an auto-escaping `html`
|
|
163
|
+
tagged template with a `SafeHtml` brand, `rawHtml` escape hatch, and
|
|
164
|
+
`completeHtml` (`text/html` + `nosniff`).
|
|
165
|
+
- **Security-middleware suite** (#353) — `cors` (a route directive that the
|
|
166
|
+
compiler expands into per-pattern preflight `OPTIONS` routes),
|
|
167
|
+
`strictTransportSecurity` / `hsts`, `contentSecurityPolicy`,
|
|
168
|
+
`csrfProtection` + `requireSameOrigin`, `securityHeaders`, `requestId`,
|
|
169
|
+
`BasicAuth`, and `requestTimeout` — each with an `XOptions` builder. Plus
|
|
170
|
+
public `parseCookies` / `serializeCookie` helpers.
|
|
171
|
+
- **Static file serving** (#354) — `getFromFile`, `getFromDirectory`, and
|
|
172
|
+
`getFromBrowseableDirectory`: MIME detection, index resolution, conditional
|
|
173
|
+
requests (weak ETag + `Last-Modified` → 304), single `Range` (206/416),
|
|
174
|
+
HEAD, trailing-slash redirects, and XSS-safe directory listings.
|
|
175
|
+
- **MIME-type registry** (#354) — `contentTypeFor(pathOrExt, overrides?)` and
|
|
176
|
+
`DEFAULT_MIME_TYPES`.
|
|
177
|
+
- **Streaming response bodies** (#354) — `HttpResponse.body` now accepts a web
|
|
178
|
+
`ReadableStream<Uint8Array>`, written natively by all three backends.
|
|
179
|
+
|
|
180
|
+
### Changed — HTTP hardening
|
|
181
|
+
|
|
182
|
+
- **`Middleware` `next()` accepts an optional request override** (#353) —
|
|
183
|
+
`next(req?)` lets a middleware enrich what the handler sees (request-id,
|
|
184
|
+
CSRF token). Backward compatible.
|
|
185
|
+
- **HonoBackend now answers `HEAD` on `GET` routes** (#354), matching
|
|
186
|
+
Fastify/Express; a route pattern ending in `/*` exposes the remainder as
|
|
187
|
+
`req.params['*']` on every backend.
|
|
188
|
+
- **BREAKING:** the `Route` / `CompiledEndpoint` unions gain `fallback` and
|
|
189
|
+
`cors` variants — an exhaustive `match` over `Route` must handle them
|
|
190
|
+
(#352, #353).
|
|
191
|
+
- **BREAKING:** `ServerBuilder` gains a required `withErrorHandler` method —
|
|
192
|
+
structural third-party implementers must add it (#352).
|
|
193
|
+
- **BREAKING:** `HttpError`'s constructor gains an optional 4th `headers`
|
|
194
|
+
parameter (after `extra`); `BearerTokenAuth` 401s now expose the challenge
|
|
195
|
+
on `err.headers['www-authenticate']`, no longer `err.extra.wwwAuthenticate`
|
|
196
|
+
(#352).
|
|
197
|
+
|
|
198
|
+
### Security
|
|
199
|
+
|
|
200
|
+
- **CORS, CSRF, and security-header middleware** (#353) — origin allowlisting
|
|
201
|
+
with correct preflight handling, an HMAC-signed double-submit CSRF token
|
|
202
|
+
(plus an Origin/Referer check), and HSTS / CSP / COOP / CORP / nosniff /
|
|
203
|
+
frame-options; secret comparisons are constant-time.
|
|
204
|
+
- **`WWW-Authenticate` reaches the wire** (#353) — `BearerTokenAuth` (and the
|
|
205
|
+
new `BasicAuth`) 401s emit a real challenge header instead of burying it in
|
|
206
|
+
the body.
|
|
207
|
+
- **Hardened path-traversal defence for static files** (#354) — the URL
|
|
208
|
+
remainder is fully decoded before validation, every segment is rejected if
|
|
209
|
+
it is `..`, empty, NUL, a backslash, or a `:` (drive/ADS) segment, absolute
|
|
210
|
+
forms are refused, the joined path is confined to the root, symlink escapes
|
|
211
|
+
are refused, and dotfiles are denied — every rejection a uniform 404.
|
|
212
|
+
|
|
213
|
+
- **WS-1 (HIGH) — WebSocket upgrade crash hardened**.
|
|
214
|
+
A malformed percent-escape in the upgrade path (e.g. `GET /room/%ZZ` against a
|
|
215
|
+
`websocket('/room/:id', …)` route) made `decodeURIComponent` throw inside the
|
|
216
|
+
Express backend's fire-and-forget upgrade handler, surfacing as an *unhandled
|
|
217
|
+
rejection* — process-fatal under Node's default and reachable **pre-auth** by
|
|
218
|
+
an unauthenticated client. `matchWebsocketPattern` now treats a malformed escape as
|
|
219
|
+
a non-match (→ 404), and the Express upgrade handler attaches its socket
|
|
220
|
+
error-guard before any async work and wraps the handler in a last-resort
|
|
221
|
+
`.catch` that closes the socket. Fastify/Hono were not affected.
|
|
222
|
+
- **WS-2 (HIGH) — Cross-Site WebSocket Hijacking (CSWSH) defence**. No upgrade handler validated the `Origin` header, so a
|
|
223
|
+
malicious web page could open an authenticated WebSocket riding a victim
|
|
224
|
+
browser's ambient cookie/IP auth. New **`allowedOrigins`** option on
|
|
225
|
+
`websocket()` routes (`.withAllowedOrigins([...])` on the builder): an upgrade
|
|
226
|
+
whose `Origin` is present but not listed is rejected with 403 before the
|
|
227
|
+
handshake on all three backends; a missing `Origin` (non-browser client) is
|
|
228
|
+
allowed. Bearer-token auth was already resistant (browsers can't set
|
|
229
|
+
`Authorization` on a WS handshake).
|
|
230
|
+
- **HTTP-1 (MEDIUM-HIGH) — Hono body-size cap enforced before buffering**. The Hono backend read the whole request body via
|
|
231
|
+
`arrayBuffer()` and only then compared it against `maxBodyBytes`, so the cap
|
|
232
|
+
was cosmetic — the real ceiling was the runtime's native default (128 MiB on
|
|
233
|
+
Bun, effectively unbounded on Node via `@hono/node-server`). It now rejects
|
|
234
|
+
an oversized `Content-Length` with 413 *before* buffering; the post-buffer
|
|
235
|
+
check remains a backstop for chunked bodies that omit Content-Length.
|
|
236
|
+
Express (streaming cap) and Fastify (framework default) were unaffected.
|
|
237
|
+
- **HTTP-2 (MEDIUM-HIGH) — `InMemoryCache` is now bounded (LRU)**. The default in-process cache was an unbounded `Map`
|
|
238
|
+
with lazy expiry only, so a flood of distinct attacker-chosen keys
|
|
239
|
+
(`Idempotency-Key`; rate-limit keys — idempotency additionally stores the
|
|
240
|
+
full response body for 24 h) grew it without limit → RAM exhaustion. It now
|
|
241
|
+
accepts `{ maxEntries?, cleanupMs? }` (defaults `10_000` / `60_000`): a new
|
|
242
|
+
key beyond the cap evicts the least-recently-used entry, and a background
|
|
243
|
+
sweep reclaims expired entries. *Behaviour change:* the default
|
|
244
|
+
is now bounded — pass `maxEntries: Infinity` for the previous unbounded
|
|
245
|
+
behaviour (documented OOM risk). Options / validation / HOCON plumbing for
|
|
246
|
+
these fields landed as the `InMemoryCacheOptions` follow-up (see *Changed —
|
|
247
|
+
Options validation*).
|
|
248
|
+
- **WS-6 (LOW) — CRLF stripped from raw upgrade-reject headers**. `writeRawHttpResponse` (the Express pre-handshake
|
|
249
|
+
reject path) wrote app-supplied header names/values verbatim onto the raw
|
|
250
|
+
socket, so an `authorize` guard echoing attacker-influenced data into a
|
|
251
|
+
header could split the response. CR/LF are now stripped from header names
|
|
252
|
+
and values.
|
|
253
|
+
- **#9 (hardening) — JSON deserialization ignores the `__proto__` setter**
|
|
254
|
+
. `JsonSerializer` and the cluster ref decoder
|
|
255
|
+
now define a decoded `"__proto__"` key as an own data property instead of
|
|
256
|
+
assigning through the prototype setter, so a hostile payload can't change
|
|
257
|
+
the decoded object's prototype.
|
|
258
|
+
- **BRK-1 / BRK-2 (MEDIUM) — inbound buffer caps for TCP `lines` + SSE**. A hostile / MITM'd upstream could stream bytes with no
|
|
259
|
+
frame delimiter, growing the inbound buffer without bound. The TCP `lines`
|
|
260
|
+
framer now rejects an un-terminated remainder that already exceeds
|
|
261
|
+
`maxLineLen` (matching the existing terminated-line check), and the SSE
|
|
262
|
+
client caps its pending event buffer at 1 MiB — both drop the connection
|
|
263
|
+
instead of buffering forever. (`length-prefixed` TCP framing was already
|
|
264
|
+
bounded.)
|
|
265
|
+
- **#6 (LOW) — consistent SQL/CQL identifier validation**. Postgres/MariaDB already validated table identifiers,
|
|
266
|
+
but SQLite (journal + snapshot store) and Cassandra (keyspace + table names,
|
|
267
|
+
interpolated into CQL) did not. A shared `assertSafeIdentifier`
|
|
268
|
+
(`/^[A-Za-z_][A-Za-z0-9_]*$/`) is now applied across all four, so a
|
|
269
|
+
config-sourced identifier can't inject SQL/CQL. Data values were, and
|
|
270
|
+
remain, bound parameters.
|
|
271
|
+
- **HTTP-3 (docs) — rate-limit examples key on the socket peer, not
|
|
272
|
+
`x-forwarded-for`**. The shipped `rateLimit`
|
|
273
|
+
examples taught keying on the client-settable `x-forwarded-for` header, which
|
|
274
|
+
an attacker rotates per request to bypass the limit (and which collapses all
|
|
275
|
+
header-less clients into one shared bucket). The JSDoc and the bilingual
|
|
276
|
+
docs now use `req.remoteAddress` and state the trusted-proxy caveat. No
|
|
277
|
+
behaviour change — `key` was always caller-supplied.
|
|
278
|
+
- **#3 (MEDIUM) — decompression-bomb cap on stored bodies**. Reading a snapshot / durable-state / object body
|
|
279
|
+
decompressed it with no output bound, so a tampered or hostile compressed
|
|
280
|
+
blob (a few KB expanding to many GB) could OOM the process on recovery.
|
|
281
|
+
`decodeBody` now caps the decompressed size at **512 MiB** by default
|
|
282
|
+
(`DecodeOptions.maxOutputBytes`; `Infinity` opts out): gzip enforces it at
|
|
283
|
+
allocation time via zlib's `maxOutputLength`, and every path asserts the
|
|
284
|
+
decoded size as a portable backstop.
|
|
285
|
+
- **HTTP-4 (MEDIUM) — idempotency responses can be scoped per caller**. The idempotency cache keyed only on the
|
|
286
|
+
`Idempotency-Key` header plus a method/path/body fingerprint, so two callers
|
|
287
|
+
reusing the same key for the same request shape shared one cached response —
|
|
288
|
+
a cross-user disclosure when the response is identity-specific (e.g. carries
|
|
289
|
+
`Set-Cookie` or the first caller's data). New opt-in `identity: (req) =>
|
|
290
|
+
string` folds the authenticated principal into the cache key so responses are
|
|
291
|
+
partitioned per caller. (Same-key-different-body poisoning was already
|
|
292
|
+
rejected with 422.)
|
|
293
|
+
- **WS-4 (MEDIUM) — WebSocket backpressure works on the Hono backend**. The Hono socket adapter didn't implement
|
|
294
|
+
`bufferedAmount`, so the connection actor's `maxBufferedBytes` /
|
|
295
|
+
`onBackpressure` guard was a no-op on Hono — a slow / idle-reading client
|
|
296
|
+
could grow the outbound send buffer without bound (OOM). The adapter now
|
|
297
|
+
surfaces the send-buffer depth from the native socket (Bun
|
|
298
|
+
`getBufferedAmount()`, Node/Deno numeric `.bufferedAmount`).
|
|
299
|
+
- **WS-3 (MEDIUM) — cap the WebSocket transport frame size (Express + Fastify)**
|
|
300
|
+
. The `ws`-backed backends left the transport at the
|
|
301
|
+
`ws` default `maxPayload` (100 MiB), so an oversized frame was buffered in
|
|
302
|
+
full before the app-level `maxFrameBytes` (1 MiB default) rejected it —
|
|
303
|
+
allocation-amplification DoS. Both now pass `maxPayload:
|
|
304
|
+
DEFAULT_WEBSOCKET_MAX_FRAME_BYTES` (1 MiB), so an oversized frame is rejected at the
|
|
305
|
+
protocol level. *Caveat:* on these backends a route that raises
|
|
306
|
+
`maxFrameBytes` above the default is currently still capped at the default by
|
|
307
|
+
the transport; a per-route / configurable transport cap and the Hono
|
|
308
|
+
runner-level cap are tracked follow-ups.
|
|
309
|
+
- **WS-5 (MEDIUM, partial) — per-route WebSocket connection admission cap**
|
|
310
|
+
. New opt-in `maxConnections` on `websocket()`
|
|
311
|
+
routes (`.withMaxConnections(n)`, or `actor-ts.http.websocket.maxConnections`
|
|
312
|
+
in HOCON): a new upgrade beyond the cap is closed with 1013 in the shared
|
|
313
|
+
wiring layer before an actor is wired for it, and the live count decrements
|
|
314
|
+
when a connection closes. Default: unlimited (behaviour unchanged). The
|
|
315
|
+
other WS-5 sub-parts — a handshake/idle timeout and hub-mailbox bounding —
|
|
316
|
+
remain tracked follow-ups.
|
|
317
|
+
|
|
318
|
+
### Documentation
|
|
319
|
+
|
|
320
|
+
- Moved the Server-WebSocket page from the IO section into the HTTP section
|
|
321
|
+
(#351).
|
|
322
|
+
- Reconciled stale API-reference pages with the shipped code (#360): rewrote the
|
|
323
|
+
persistence adapter & migration pages and the OTel **tracing** adapter page to
|
|
324
|
+
the function-based APIs, rewrote the management & health-check and cache &
|
|
325
|
+
durable-data pages to their real APIs, and removed the page for the
|
|
326
|
+
never-shipped OTel *metrics* adapter.
|
|
327
|
+
- Repointed stale `*Settings` type names in prose to the `*OptionsType`
|
|
328
|
+
vocabulary (#349).
|
|
329
|
+
- Fixed broken code samples that declared a `const` inside a call's object
|
|
330
|
+
literal (#359).
|
|
331
|
+
|
|
332
|
+
## [0.10.0] — 2026-07-08
|
|
333
|
+
|
|
334
|
+
### Added — Typed WebSocket & MQTT
|
|
335
|
+
|
|
336
|
+
- **Typed WebSocket routing** (#1) — a `websocket(path, actorRef)` directive
|
|
337
|
+
in the HTTP routing DSL binds a `WebSocketServerActor<TOut, TIn>`. The
|
|
338
|
+
hub receives codec-decoded messages (JSON by default; `rawCodec()` for
|
|
339
|
+
binary), replies to the sending connection with `this.reply(...)` or
|
|
340
|
+
fans out with `this.broadcast(...)`, and gets `onClientConnected` /
|
|
341
|
+
`onClientDisconnected` / `onInvalidMessage` hooks. The framework spawns
|
|
342
|
+
an internal session actor per connection and solves the first-frame
|
|
343
|
+
race by construction (listeners attach synchronously at upgrade; the
|
|
344
|
+
mailbox is the buffer). Works on all three HTTP backends — Fastify
|
|
345
|
+
(`@fastify/websocket`), Express (`ws` upgrade handling), and Hono
|
|
346
|
+
(per-runtime: Bun/Node/Deno). `withMiddleware(...)` runs at upgrade
|
|
347
|
+
time, so `BearerTokenAuth` / `IpAllowlist` gate the handshake.
|
|
348
|
+
- **`WebSocketClientActor<TOut, TIn>`** (#1) — the typed client half, built
|
|
349
|
+
on `BrokerActor`: reconnect-with-backoff, outbound buffering across
|
|
350
|
+
reconnects, circuit breaker, and HOCON settings. Other actors push a
|
|
351
|
+
typed send with `ref.tell(wsSend(msg))`.
|
|
352
|
+
- **`actor-ts.http.websocket` HOCON block** — server-side WebSocket
|
|
353
|
+
defaults (`maxFrameBytes`, `onOversizeFrame`, `onInvalidMessage`,
|
|
354
|
+
`maxBufferedBytes`, `onBackpressure`); route options override HOCON,
|
|
355
|
+
which overrides built-in defaults.
|
|
356
|
+
- **Subclass-first, typed `MqttActor<T, TSelf>`** (#345) — the MQTT
|
|
357
|
+
counterpart to `WebSocketClientActor`. Extend it, declare
|
|
358
|
+
subscriptions in the constructor with `this.subscribe(topic, { qos })`,
|
|
359
|
+
handle inbound traffic in `onMessage(msg)`, and publish with
|
|
360
|
+
`this.publish(topic, payload)`. Lifecycle events (inbound / connected /
|
|
361
|
+
disconnected) run on the actor thread via the mailbox. Hooks:
|
|
362
|
+
`onMessage`, `onConnected`, `onDisconnected`, `onDecodeError`,
|
|
363
|
+
`onSelfMessage`. Still externally controllable via
|
|
364
|
+
`ref.tell({ kind: 'publish' | 'subscribe' | 'unsubscribe', … })`.
|
|
365
|
+
- **`MqttOptions` fluent builder** (#345) — `MqttOptions.create()
|
|
366
|
+
.withBrokerUrl(…).withClientId(…).withQos(…)…`; feeds the same
|
|
367
|
+
three-layer settings merge (constructor > HOCON
|
|
368
|
+
`actor-ts.io.broker.mqtt` > built-in defaults). (As of #346/#348 this is
|
|
369
|
+
the primary way to construct; a plain `MqttOptionsType` object works too —
|
|
370
|
+
see the options note under *Changed*.)
|
|
371
|
+
- **Typed MQTT payloads** (#345) — inbound `MqttMessage<T>` carries a
|
|
372
|
+
lazily-decoding `MqttPayload<T>` (`.bytes` / `.text()` / `.entity<U=T>()`,
|
|
373
|
+
successes cached). A pluggable `MqttCodec<T>` seam (default
|
|
374
|
+
`mqttJsonCodec()`) decodes `entity()` and encodes non-string publishes;
|
|
375
|
+
`publish(topic, { … })` encodes an entity, `publish(topic, string |
|
|
376
|
+
Uint8Array)` sends raw bytes. Decode failures surface via
|
|
377
|
+
`onDecodeError`. `MqttClientLike` / `MqttModuleLike` are exported as
|
|
378
|
+
test seams for the `mqttModule()` override.
|
|
379
|
+
|
|
380
|
+
### Changed — Options overhaul & MQTT
|
|
381
|
+
|
|
382
|
+
- **Fluent options, framework-wide** (#346, #348) — every configurable
|
|
383
|
+
constructor and factory takes a fluent options builder **or** a plain
|
|
384
|
+
settings object, interchangeably: `new MqttActor(MqttOptions.create()
|
|
385
|
+
.withClientId('x'))` behaves identically to `new MqttActor({ clientId:
|
|
386
|
+
'x' })`. A builder *is* its settings — `OptionsBuilder` stores each field
|
|
387
|
+
as an own property, so a builder instance reads and spreads exactly like a
|
|
388
|
+
plain settings object (no separate resolve step; consumers just read the
|
|
389
|
+
argument). Each configurable type exposes **three names from one
|
|
390
|
+
`XOptions.ts` file**: `XOptionsType` (the plain object), `XOptionsBuilder`
|
|
391
|
+
(the fluent builder, `XOptions.create().withField(…)`), and `XOptions` — the
|
|
392
|
+
**union** of the two that every consumer signature accepts (`options:
|
|
393
|
+
XOptions`), plus a value alias so `XOptions.create()` keeps working. There
|
|
394
|
+
is no separate "Settings" concept (the former `XSettings` interface is now
|
|
395
|
+
`XOptionsType`, co-located in `XOptions.ts`). HOCON resolution is
|
|
396
|
+
unchanged — the builder / plain object only supplies the
|
|
397
|
+
highest-precedence explicit layer, and unset fields still fall through
|
|
398
|
+
to config then defaults. Naming lockstep with no divergence: builder
|
|
399
|
+
method `withX` ⇔ settings field `x` ⇔ HOCON leaf `x`. Affected
|
|
400
|
+
(non-exhaustive): `ActorSystem.create(name, ActorSystemOptions
|
|
401
|
+
.create()…)`; `TestKit.create` / `new TestProbe` (`TestKitOptions` /
|
|
402
|
+
`TestProbeOptions`); every broker actor (`MqttOptions`, `KafkaOptions`,
|
|
403
|
+
`AmqpOptions`, `NatsOptions`, `JetStreamOptions`, `RedisStreamsOptions`,
|
|
404
|
+
`SseOptions`, `TcpSocketOptions`, `UdpSocketOptions`, `GrpcClientOptions`,
|
|
405
|
+
`GrpcServerOptions`); HTTP/WS (`WebSocketClientOptions`,
|
|
406
|
+
`WebSocketRouteOptions`, `ExpressBackendOptions`, `HonoBackendOptions`);
|
|
407
|
+
cache (`RedisCacheOptions`, `MemcachedCacheOptions`); persistence
|
|
408
|
+
journals / snapshot stores / durable-state stores / object-storage
|
|
409
|
+
backends / projections / plugin registrations; cluster / sharding /
|
|
410
|
+
singleton / client / pub-sub / router / downing / failure detectors;
|
|
411
|
+
leases, seed providers + discovery, observability adapters
|
|
412
|
+
(`OtelAdapterOptions`, `PromClientAdapterOptions`), `WorkerClusterOptions`,
|
|
413
|
+
`DistributedDataOptions`, and `ProducerControllerOptions`. Migration:
|
|
414
|
+
`new X({ a, b })` still works, or use `new X(XOptions.create()
|
|
415
|
+
.withA(a).withB(b))`; the positional "context" args that were never
|
|
416
|
+
settings (a system name, a `Cluster`, a sharding entity + type name)
|
|
417
|
+
stay positional. **BREAKING** (pre-1.0 hard cut): the builder class
|
|
418
|
+
`XOptions` is renamed `XOptionsBuilder` and the settings interface
|
|
419
|
+
`XSettings` is renamed `XOptionsType`; `XOptions` is now the accepted-input
|
|
420
|
+
union. Everyday call sites — `XOptions.create()…` and plain objects — are
|
|
421
|
+
unaffected; only code that referenced the old `XSettings` type name or the
|
|
422
|
+
builder *class* by name needs updating.
|
|
423
|
+
- **BREAKING: renamed settings fields + HOCON keys** (#348) — to keep the
|
|
424
|
+
builder-method ⇔ settings-field ⇔ HOCON-leaf names in lockstep, six
|
|
425
|
+
fields were renamed: MQTT `defaultQos` → `qos` (`withQos`) and
|
|
426
|
+
`keepAliveSec` → `keepAlive` (`withKeepAlive`); JetStream `ackTimeoutMs`
|
|
427
|
+
→ `ackTimeout`; ClusterClient `log` → `logger`; DistributedData
|
|
428
|
+
`gossipIntervalMs` → `gossipInterval`; ProducerController
|
|
429
|
+
`resendTimeoutMs` → `resendTimeout`. Update any plain settings objects
|
|
430
|
+
and HOCON keys using the old names.
|
|
431
|
+
- **BREAKING: `MqttActor` is now abstract** (#345) — you subclass it and
|
|
432
|
+
override `onMessage` instead of spawning it directly and driving it only
|
|
433
|
+
with `tell`. Migration: `class MyClient extends MqttActor<T> { … }` and
|
|
434
|
+
spawn the subclass. A pure external-router setup needs a trivial
|
|
435
|
+
subclass with an empty `onMessage`.
|
|
436
|
+
- **BREAKING: `MqttMessage.payload` is a `MqttPayload<T>` wrapper**, no
|
|
437
|
+
longer a raw `Uint8Array` (#345). Migration: `msg.payload` →
|
|
438
|
+
`msg.payload.bytes`; `new TextDecoder().decode(msg.payload)` →
|
|
439
|
+
`msg.payload.text()`; JSON reads → `msg.payload.entity()`.
|
|
440
|
+
- **BREAKING: `MqttOptionsType.subscriptions` and the `MqttSubscription`
|
|
441
|
+
type are removed** (#345) — they were never HOCON-expressible (targets
|
|
442
|
+
are actor refs). Migration: move `subscriptions: [{ topic, target }]`
|
|
443
|
+
into the subclass constructor as `this.subscribe(topic, { target })`, or
|
|
444
|
+
send `ref.tell({ kind: 'subscribe', topic, target })`.
|
|
445
|
+
- **BREAKING: `subscribe`/`unsubscribe` command `target` semantics**
|
|
446
|
+
(#345) — a `subscribe` command with no `target` now delivers to the
|
|
447
|
+
actor's own `onMessage` (previously `target` was required). An
|
|
448
|
+
`unsubscribe` command with no `target` now removes only the *foreign*
|
|
449
|
+
targets and leaves the actor's own subscription intact (previously it
|
|
450
|
+
dropped the whole topic).
|
|
451
|
+
|
|
452
|
+
### Fixed — MQTT
|
|
453
|
+
|
|
454
|
+
- **MQTT runtime subscriptions are re-applied after a reconnect** (#345) —
|
|
455
|
+
previously only the (now-removed) `settings.subscriptions` were
|
|
456
|
+
re-subscribed on reconnect, so subscriptions added at runtime silently
|
|
457
|
+
stopped receiving after a drop. The unified registry is now re-applied
|
|
458
|
+
on every (re)connect.
|
|
459
|
+
- **MQTT `subscribe` while disconnected reaches the broker on connect**
|
|
460
|
+
(#345) — previously it updated only the local routing map and never
|
|
461
|
+
issued the broker SUBSCRIBE.
|
|
462
|
+
- **MQTT terminated fan-out targets are cleaned up** (#345) — subscriber
|
|
463
|
+
refs are deathwatched; when one stops it is pruned from the registry and
|
|
464
|
+
a broker UNSUBSCRIBE fires once the pattern has no consumers left.
|
|
465
|
+
|
|
466
|
+
### Removed — legacy frame-level WebSocket API
|
|
467
|
+
|
|
468
|
+
- **BREAKING: the legacy frame-level WebSocket API** — `WebSocketActor`
|
|
469
|
+
(client), `ServerWebSocketActor` (server bridge), and the
|
|
470
|
+
`serverWebSocketActorOf` / `bunWebSocketHandlers` adapters are gone.
|
|
471
|
+
They worked at the raw text/binary frame level and needed ~150 lines of
|
|
472
|
+
backend-specific boilerplate to stand up a server. Replace a
|
|
473
|
+
`WebSocketActor` with `WebSocketClientActor`, and a hand-rolled server
|
|
474
|
+
plugin with a `websocket(path, ref)` route + `WebSocketServerActor`.
|
|
475
|
+
The client HOCON key `actor-ts.io.broker.websocket` is unchanged.
|
|
476
|
+
|
|
477
|
+
### Security
|
|
478
|
+
|
|
479
|
+
- **WebSocket DoS hardening carried into the new stack** (#1) — inbound
|
|
480
|
+
frames are size-capped (`maxFrameBytes`, default 1 MiB) *before* the
|
|
481
|
+
codec decodes them; oversize frames close 1009 (or drop) and
|
|
482
|
+
undecodable frames close 1003 (or drop / hook) per policy. Slow-consumer
|
|
483
|
+
backpressure closes/drops past `maxBufferedBytes`.
|
|
484
|
+
|
|
485
|
+
- **DurableState revision tampering** (#116) — `ObjectStorageDurableStateStore.load()`
|
|
486
|
+
previously trusted the `revision` value inside the body JSON, so an
|
|
487
|
+
attacker with write access to the underlying bucket could roll back
|
|
488
|
+
state past CAS checks. Two-track integrity fix: encrypted bodies use
|
|
489
|
+
AES-GCM with `revision` as AAD (already wired); unencrypted bodies
|
|
490
|
+
gain an opt-in HMAC-SHA256 over `{ revision, etag }` with per-pid
|
|
491
|
+
HKDF-derived subkeys. Set `integrity: { mode: 'hmac-sha256', integrityKey }`
|
|
492
|
+
on the store + `requireIntegrity: true` to refuse legacy un-tagged
|
|
493
|
+
bodies on the read path.
|
|
494
|
+
- **ClusterClient ask-ID predictability** (#120) — `nextAskId()` used
|
|
495
|
+
`Date.now() + counter`, predictable enough that a MitM on the
|
|
496
|
+
TCP socket could pre-compute likely IDs and inject forged
|
|
497
|
+
`cluster-client-reply` frames. Switched to `crypto.randomUUID()`
|
|
498
|
+
(122 bits of entropy per call).
|
|
499
|
+
- **Master-key rotation sweep race** (#109) — `reEncryptObjectStorage()`
|
|
500
|
+
had no durable progress token, so a crash forced the resumed run
|
|
501
|
+
to re-list and re-GET every object from scratch (a 24-hour sweep =
|
|
502
|
+
a 24-hour wasted re-walk). Worse: if the operator dropped a
|
|
503
|
+
retired key from the keyring too soon, the sweep would only
|
|
504
|
+
notice mid-corpus, leaving the bucket half-rewritten. Added two
|
|
505
|
+
opt-in options: `progress: ReEncryptProgressStore` for durable
|
|
506
|
+
resume tokens (file/Redis/object-storage-backed) and
|
|
507
|
+
`verifyKeyringCompleteness: boolean` (default `true`) for a
|
|
508
|
+
pre-sweep sample that refuses to start when a body's key version
|
|
509
|
+
is absent from `active`/`retired`.
|
|
510
|
+
- **LeaseMajority split-brain** (#142) — a slow `lease.acquire()`
|
|
511
|
+
that the local defence-in-depth timeout had given up on could
|
|
512
|
+
later resolve `true` and write `decision=surviveSet`, letting
|
|
513
|
+
both sides of an equal partition claim victory. Three layered
|
|
514
|
+
fixes: (1) monotonic `acquireEpoch` so a late result with a
|
|
515
|
+
stale epoch is dropped; (2) fire-and-forget `lease.release()`
|
|
516
|
+
on abandon to undo any wire-side success after the local
|
|
517
|
+
give-up, with fail-safe-on-rejection (refuse to claim majority
|
|
518
|
+
on the same view); (3) optional fencing tokens — `Lease.acquireWithToken?():
|
|
519
|
+
Promise<{ token: string } | null>` with `KubernetesLease`
|
|
520
|
+
returning `<resourceVersion>/<leaseTransitions>` and
|
|
521
|
+
`InMemoryLease` a monotonic per-name version stamp.
|
|
522
|
+
|
|
523
|
+
### Added — Persistence, HTTP & observability
|
|
524
|
+
|
|
525
|
+
- **PostgreSQL persistence backend** (#323) — `PostgresJournal`,
|
|
526
|
+
`PostgresSnapshotStore`, and `PostgresDurableStateStore` (the first
|
|
527
|
+
SQL-backed durable-state store) on top of the `pg` driver, registered
|
|
528
|
+
via `registerPostgresPlugins(ext, …)` which selects the journal +
|
|
529
|
+
snapshot store by config plugin ID and returns the durable-state-store
|
|
530
|
+
handle (the object-storage-plugin pattern — `PersistenceExtension` has
|
|
531
|
+
no durable-state registry). Optimistic concurrency (per-pid
|
|
532
|
+
`SELECT MAX(seq)` inside a transaction plus a primary-key
|
|
533
|
+
unique-violation `23505` backstop; revision CAS via
|
|
534
|
+
`ON CONFLICT`/`UPDATE … WHERE revision`), an indexed tags join table,
|
|
535
|
+
and auto-created schema (`autoCreateTables`, default on). `pg` is an
|
|
536
|
+
optional peer-dependency, lazy-imported; the backend defines its own
|
|
537
|
+
minimal client shapes so the framework stays dependency-free. Ships
|
|
538
|
+
with an in-process fake-pool unit suite and a live `postgres:latest`
|
|
539
|
+
Docker suite wired into the integration-brokers CI matrix.
|
|
540
|
+
- **MariaDB persistence backend** (#324) — sibling of #323 for
|
|
541
|
+
MariaDB / MySQL via the official `mariadb` connector: `MariaDbJournal`,
|
|
542
|
+
`MariaDbSnapshotStore`, `MariaDbDurableStateStore`, and
|
|
543
|
+
`registerMariaDbPlugins`. A separate implementation with the MariaDB
|
|
544
|
+
dialect (`?` placeholders, `INSERT IGNORE` for the tag dedup,
|
|
545
|
+
`ON DUPLICATE KEY UPDATE` snapshot upsert, a derived-table-wrapped
|
|
546
|
+
`keepN` prune, `ER_DUP_ENTRY`/1062 concurrency backstop, and
|
|
547
|
+
`LONGTEXT`/`VARCHAR(255)`/`BIGINT` columns). Optional `mariadb`
|
|
548
|
+
peer-dep; in-process fake-pool suite + live `mariadb:latest` Docker
|
|
549
|
+
suite in CI.
|
|
550
|
+
- **Configurable compression level** (#322) — `CompressionConfig` gains
|
|
551
|
+
an optional `level` (gzip 0–9, zstd 1–22) threaded through the codec to
|
|
552
|
+
the object-storage snapshot + durable-state stores. Out-of-range values
|
|
553
|
+
are clamped; the level is encoder-only and is NOT written to the wire
|
|
554
|
+
(the ATS1 manifest records only the algorithm), so changing it needs no
|
|
555
|
+
migration — old bodies keep decoding, new bodies use the new level, and
|
|
556
|
+
the two mix freely in one bucket.
|
|
557
|
+
- **Real-network multi-node integration tests** (#313) — new
|
|
558
|
+
`tests/integration/` subtree with a Docker-compose setup that
|
|
559
|
+
brings up 5 cluster-node containers + 1 controller container
|
|
560
|
+
on a shared bridge network and runs partition / heal /
|
|
561
|
+
membership-convergence scenarios over a real TCP stack. All
|
|
562
|
+
fault injection happens inside each container's network
|
|
563
|
+
namespace via `iptables` + `tc netem`, so no host privileged
|
|
564
|
+
mode is required — just `NET_ADMIN` on each cluster-node
|
|
565
|
+
container. Two npm scripts ship: `bun run test:integration`
|
|
566
|
+
(build + up + auto-exit on the controller's status) and
|
|
567
|
+
`bun run test:integration:teardown`. The same command works
|
|
568
|
+
locally on Docker Desktop and in
|
|
569
|
+
`.github/workflows/integration.yml`; the workflow is
|
|
570
|
+
triggered by pushes to `main`, manual dispatch, and a nightly
|
|
571
|
+
schedule. Fifteen scenarios covering the cluster's load-bearing
|
|
572
|
+
primitives:
|
|
573
|
+
- **01** — membership convergence (smoke test)
|
|
574
|
+
- **02** — 2:3 split-brain with partition + heal verification
|
|
575
|
+
- **03** — Receptionist gossip-convergence over a shared
|
|
576
|
+
`ServiceKey` across all 5 nodes, with partition + heal
|
|
577
|
+
- **04** — DistributedData `LWWRegister` quorum reads/writes
|
|
578
|
+
during a 50ms `tc-netem` egress latency storm — proves
|
|
579
|
+
`majority`-consistency operations survive a real network
|
|
580
|
+
slowdown
|
|
581
|
+
- **05** — Cluster Singleton failover after the host node
|
|
582
|
+
`cluster.leave()`s; new leader's manager spawns the
|
|
583
|
+
singleton, proxies from every remaining node converge
|
|
584
|
+
- **06** — Cluster Sharding rebalance: 30 entities warmed up,
|
|
585
|
+
victim node leaves, 8 ex-victim entities relocate to
|
|
586
|
+
surviving regions via the coordinator's HandOff path
|
|
587
|
+
- **07** — Concurrent `GCounter` increments from all 5 nodes
|
|
588
|
+
converge to the exact expected total (proves CRDT merge +
|
|
589
|
+
`ddata-gossip` wire path under write pressure)
|
|
590
|
+
- **08** — Receptionist `Subscribe` continuous-listing
|
|
591
|
+
notifications fire on register / deregister, observable
|
|
592
|
+
from every cluster node within gossip-propagation latency
|
|
593
|
+
- **09** — External `ClusterClient` (NOT a cluster member)
|
|
594
|
+
makes 100 sequential asks against `/user/echo`; exercises
|
|
595
|
+
the #120 `randomUUID` ask-id path end-to-end
|
|
596
|
+
- **10** — Management HTTP auth end-to-end: 401 without
|
|
597
|
+
token, 200 with valid token, 404 with valid token + fake
|
|
598
|
+
address, /health stays anonymous (probe contract)
|
|
599
|
+
- **11** — `PersistentActor` event-sourcing + snapshot +
|
|
600
|
+
replay: 5 increments → snapshot at seq=3 → kill → respawn
|
|
601
|
+
triggers `recover()` → snapshot-load + replay restores
|
|
602
|
+
state. Two-kill cycle verifies determinism.
|
|
603
|
+
- **12** — `DistributedPubSub` topic fan-out: 15 events
|
|
604
|
+
published from two different nodes, all 5 subscribers
|
|
605
|
+
receive both bursts in order
|
|
606
|
+
- **13** — `CoordinatedShutdown` pipeline progresses through
|
|
607
|
+
early (`BeforeServiceUnbind`) + late
|
|
608
|
+
(`BeforeActorSystemTerminate`) phases on a victim node;
|
|
609
|
+
markers POST'd to a peer observer verify both fired in
|
|
610
|
+
chronological order
|
|
611
|
+
- **14** — Bounded mailbox + `actor_mailbox_dropped_total`
|
|
612
|
+
metric: bombard a slow actor with 15 000 messages, verify
|
|
613
|
+
~5 000 drops are counted in the Prometheus output with
|
|
614
|
+
correct `{class, path, reason}` labels
|
|
615
|
+
- **15** — `DnsSeedProvider` against docker's embedded DNS:
|
|
616
|
+
resolves every peer hostname, validates IPv4 shape and
|
|
617
|
+
`<systemName>@<host>:<port>` stamping
|
|
618
|
+
- **Backend `remoteAddress` wiring** (#312 follow-up) — the
|
|
619
|
+
Fastify, Express, and Hono backends now populate
|
|
620
|
+
`HttpRequest.remoteAddress` from the socket peer
|
|
621
|
+
(`req.ip` / `req.socket.remoteAddress` on Fastify+Express;
|
|
622
|
+
best-effort across `c.req.raw` / `c.env.requestIP` on Hono).
|
|
623
|
+
`IpAllowlist` works end-to-end on real socket peers — the
|
|
624
|
+
pre-existing `getClientIp` override is no longer required for
|
|
625
|
+
default deployments behind direct connections.
|
|
626
|
+
- **HTTP route middleware framework** (#312) — new
|
|
627
|
+
`withMiddleware(mw, route)` builder + `Middleware` type
|
|
628
|
+
`(req, next) => Promise<HttpResponse> | HttpResponse`. Middlewares
|
|
629
|
+
compose outside-in; nested wraps run in declaration order. The
|
|
630
|
+
HTTP cache primitives (`rateLimit`, `idempotent`, `cached`) are
|
|
631
|
+
unchanged, but new orthogonal concerns (auth, allowlists, custom
|
|
632
|
+
logging, request tracing) can hang off the same hook.
|
|
633
|
+
- **`BearerTokenAuth({ tokens })`** (#312) — built-in middleware
|
|
634
|
+
that 401s every request lacking a `Authorization: Bearer <token>`
|
|
635
|
+
header from the configured (rotatable) shared-secret list.
|
|
636
|
+
Constant-time comparison so an attacker probing tokens can't
|
|
637
|
+
distinguish "first character wrong" from "last character wrong"
|
|
638
|
+
by timing. Rejection includes `WWW-Authenticate: Bearer realm=...`.
|
|
639
|
+
- **`IpAllowlist({ allow })`** (#312) — built-in middleware for
|
|
640
|
+
CIDR-based network-level isolation. Parses IPv4 + IPv6 CIDRs
|
|
641
|
+
(including IPv4-mapped IPv6 like `::ffff:10.0.0.1` so a dual-
|
|
642
|
+
stack socket peer matches an IPv4 CIDR). Fail-secure: no
|
|
643
|
+
resolvable client IP means 403. Trust-source is explicit:
|
|
644
|
+
default reads `req.remoteAddress` (the socket peer); operators
|
|
645
|
+
behind a trusted proxy must opt-in to header trust via the
|
|
646
|
+
`getClientIp` extractor.
|
|
647
|
+
- **`HttpRequest.remoteAddress?: string`** (#312) — optional new
|
|
648
|
+
field on the request shape. Backends should populate from the
|
|
649
|
+
underlying socket where available. Consumers that need to
|
|
650
|
+
trust `x-forwarded-for` must do so explicitly (see
|
|
651
|
+
`IpAllowlist`'s `getClientIp`).
|
|
652
|
+
- **`managementRoutes`** gains `auth`, `ipAllowlist`, and
|
|
653
|
+
`authProtectHealth` settings (#312). By default the auth
|
|
654
|
+
middleware wraps the privileged subtree (`/cluster/*`,
|
|
655
|
+
`/metrics`) but leaves `/health` and `/ready` anonymous —
|
|
656
|
+
standard Kubernetes liveness/readiness probes can't easily
|
|
657
|
+
attach an Authorization header. Set `authProtectHealth: true`
|
|
658
|
+
when the deployment can present credentials on probes. The
|
|
659
|
+
IP-allowlist wraps EVERYTHING (network-level isolation
|
|
660
|
+
precedes any application policy).
|
|
661
|
+
- **`JsonLogger`** (#311) — structured-logging logger that emits one
|
|
662
|
+
`\n`-delimited JSON object per record to `process.stdout` (or an
|
|
663
|
+
injected `JsonLogSink`). Every record carries `ts` (ISO-8601),
|
|
664
|
+
`level`, optional `source`, `msg`, the merged static + dynamic
|
|
665
|
+
MDC, and positional `...args` under an `args` array. Errors
|
|
666
|
+
serialise as `{ name, message, stack }`; circular refs,
|
|
667
|
+
`BigInt`, and functions are sanitised so a log call never throws.
|
|
668
|
+
Drop-in for log-aggregation pipelines (Loki, ELK, Datadog,
|
|
669
|
+
CloudWatch, etc.) via the standard stdout-pipe path.
|
|
670
|
+
- **`otelLogger({ api })`** (#311) — bridge to
|
|
671
|
+
`@opentelemetry/api-logs` for OTLP-Logs pipelines. Optional peer
|
|
672
|
+
dep (structural-typed on the OTel surface, like `otelTracer`).
|
|
673
|
+
Maps severity to OTel's standard severity-number range, attaches
|
|
674
|
+
the actor's path on `source`, merges static + dynamic MDC into
|
|
675
|
+
`attributes`, and the SDK auto-links the active span's
|
|
676
|
+
`traceId`/`spanId` when tracing is enabled in the same process.
|
|
677
|
+
|
|
678
|
+
### Changed — Bounded mailbox default
|
|
679
|
+
|
|
680
|
+
- **Bounded mailbox is now the default** (#310) — every actor spawned
|
|
681
|
+
without an explicit `Props.withMailbox(...)` gets a
|
|
682
|
+
`BoundedMailbox` with `capacity = 10_000` and `overflow = 'drop-head'`.
|
|
683
|
+
The pre-#310 unbounded shape was a classic Akka-anti-pattern in
|
|
684
|
+
disguise: a runaway producer could absorb the JVM, ahem, the V8
|
|
685
|
+
heap, until OOM. 10 000 is high enough that a well-tuned actor
|
|
686
|
+
never hits it on a normal traffic spike; if it does, the actor's
|
|
687
|
+
throughput is mismatched and the bound makes that operationally
|
|
688
|
+
visible. Drops are emitted as the `actor_mailbox_dropped_total`
|
|
689
|
+
Counter (labels `class`, `path`, `reason`). Opt back into unbounded
|
|
690
|
+
per-actor via `Props.withMailbox(() => new Mailbox())`; keep the
|
|
691
|
+
bounded shape but change the capacity via `Props.withMailboxCapacity(n)`.
|
|
692
|
+
|
|
693
|
+
### Fixed — Compression
|
|
694
|
+
|
|
695
|
+
- **zstd compression on runtimes without native zstd** (#321) — the
|
|
696
|
+
compression codec wired the `fzstd` peer-dependency as a compressor, but
|
|
697
|
+
`fzstd` is decompression-only (it has no `compress`), so
|
|
698
|
+
`compression: { algorithm: 'zstd' }` threw `fzstd.compress is not a
|
|
699
|
+
function` on any runtime without native zstd (i.e. not Bun and not
|
|
700
|
+
Node ≥22.15) — and the eager peer-dep probe passed anyway. zstd
|
|
701
|
+
resolution is now split by direction: compress is native-only with a
|
|
702
|
+
clear "needs Bun / Node ≥22.15" error, decompress keeps the `fzstd`
|
|
703
|
+
fallback so a non-native runtime can still READ zstd bodies written
|
|
704
|
+
elsewhere, and `probeCompressionAvailability('zstd')` now checks the
|
|
705
|
+
compress path so the misconfig surfaces at plugin-init, not on first
|
|
706
|
+
persist.
|
|
707
|
+
- **Object-storage compression docs were inaccurate** — the docs
|
|
708
|
+
described `gzip` / `brotli` / `deflate` with a `level` field and
|
|
709
|
+
`Content-Encoding`-header-driven decode, none of which matched the
|
|
710
|
+
implementation. Corrected across EN + DE to the real `none` / `gzip` /
|
|
711
|
+
`zstd` set, the ATS1-manifest-driven decode, the now-real `level`
|
|
712
|
+
option, and the per-direction zstd runtime support.
|
|
11
713
|
|
|
12
714
|
## [0.9.1] — 2026-05-15
|
|
13
715
|
|