actor-ts 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +408 -0
- package/README.md +285 -269
- package/dist/ActorSystem.d.ts +3 -38
- package/dist/ActorSystem.d.ts.map +1 -1
- package/dist/ActorSystem.js +2 -2
- package/dist/ActorSystem.js.map +1 -1
- package/dist/ActorSystemOptions.d.ts +91 -0
- package/dist/ActorSystemOptions.d.ts.map +1 -0
- package/dist/ActorSystemOptions.js +45 -0
- package/dist/ActorSystemOptions.js.map +1 -0
- package/dist/Logger.d.ts +63 -0
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +146 -0
- package/dist/Logger.js.map +1 -1
- package/dist/cache/MemcachedCache.d.ts +2 -12
- package/dist/cache/MemcachedCache.d.ts.map +1 -1
- package/dist/cache/MemcachedCache.js +2 -1
- package/dist/cache/MemcachedCache.js.map +1 -1
- package/dist/cache/MemcachedCacheOptions.d.ts +40 -0
- package/dist/cache/MemcachedCacheOptions.d.ts.map +1 -0
- package/dist/cache/MemcachedCacheOptions.js +32 -0
- package/dist/cache/MemcachedCacheOptions.js.map +1 -0
- package/dist/cache/RedisCache.d.ts +2 -22
- package/dist/cache/RedisCache.d.ts.map +1 -1
- package/dist/cache/RedisCache.js +2 -1
- package/dist/cache/RedisCache.js.map +1 -1
- package/dist/cache/RedisCacheOptions.d.ts +56 -0
- package/dist/cache/RedisCacheOptions.d.ts.map +1 -0
- package/dist/cache/RedisCacheOptions.js +43 -0
- package/dist/cache/RedisCacheOptions.js.map +1 -0
- package/dist/cache/index.d.ts +6 -2
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +2 -0
- package/dist/cache/index.js.map +1 -1
- package/dist/cluster/Cluster.d.ts +4 -63
- package/dist/cluster/Cluster.d.ts.map +1 -1
- package/dist/cluster/Cluster.js +10 -5
- package/dist/cluster/Cluster.js.map +1 -1
- package/dist/cluster/ClusterBootstrap.d.ts +6 -84
- package/dist/cluster/ClusterBootstrap.d.ts.map +1 -1
- package/dist/cluster/ClusterBootstrap.js +33 -21
- package/dist/cluster/ClusterBootstrap.js.map +1 -1
- package/dist/cluster/ClusterBootstrapOptions.d.ts +152 -0
- package/dist/cluster/ClusterBootstrapOptions.d.ts.map +1 -0
- package/dist/cluster/ClusterBootstrapOptions.js +103 -0
- package/dist/cluster/ClusterBootstrapOptions.js.map +1 -0
- package/dist/cluster/ClusterClient.d.ts +21 -31
- package/dist/cluster/ClusterClient.d.ts.map +1 -1
- package/dist/cluster/ClusterClient.js +21 -6
- package/dist/cluster/ClusterClient.js.map +1 -1
- package/dist/cluster/ClusterClientOptions.d.ts +65 -0
- package/dist/cluster/ClusterClientOptions.d.ts.map +1 -0
- package/dist/cluster/ClusterClientOptions.js +43 -0
- package/dist/cluster/ClusterClientOptions.js.map +1 -0
- package/dist/cluster/ClusterClientReceptionist.d.ts +2 -8
- package/dist/cluster/ClusterClientReceptionist.d.ts.map +1 -1
- package/dist/cluster/ClusterClientReceptionist.js +3 -1
- package/dist/cluster/ClusterClientReceptionist.js.map +1 -1
- package/dist/cluster/ClusterClientReceptionistOptions.d.ts +32 -0
- package/dist/cluster/ClusterClientReceptionistOptions.d.ts.map +1 -0
- package/dist/cluster/ClusterClientReceptionistOptions.js +22 -0
- package/dist/cluster/ClusterClientReceptionistOptions.js.map +1 -0
- package/dist/cluster/ClusterOptions.d.ts +116 -0
- package/dist/cluster/ClusterOptions.d.ts.map +1 -0
- package/dist/cluster/ClusterOptions.js +77 -0
- package/dist/cluster/ClusterOptions.js.map +1 -0
- package/dist/cluster/FailureDetector.d.ts +4 -11
- package/dist/cluster/FailureDetector.d.ts.map +1 -1
- package/dist/cluster/FailureDetector.js +4 -3
- package/dist/cluster/FailureDetector.js.map +1 -1
- package/dist/cluster/FailureDetectorOptions.d.ts +38 -0
- package/dist/cluster/FailureDetectorOptions.d.ts.map +1 -0
- package/dist/cluster/FailureDetectorOptions.js +31 -0
- package/dist/cluster/FailureDetectorOptions.js.map +1 -0
- package/dist/cluster/PhiAccrualFailureDetector.d.ts +3 -19
- package/dist/cluster/PhiAccrualFailureDetector.d.ts.map +1 -1
- package/dist/cluster/PhiAccrualFailureDetector.js +2 -2
- package/dist/cluster/PhiAccrualFailureDetector.js.map +1 -1
- package/dist/cluster/PhiAccrualOptions.d.ts +53 -0
- package/dist/cluster/PhiAccrualOptions.d.ts.map +1 -0
- package/dist/cluster/PhiAccrualOptions.js +43 -0
- package/dist/cluster/PhiAccrualOptions.js.map +1 -0
- package/dist/cluster/downing/KeepOldest.d.ts +2 -11
- package/dist/cluster/downing/KeepOldest.d.ts.map +1 -1
- package/dist/cluster/downing/KeepOldest.js +2 -2
- package/dist/cluster/downing/KeepOldest.js.map +1 -1
- package/dist/cluster/downing/KeepOldestOptions.d.ts +34 -0
- package/dist/cluster/downing/KeepOldestOptions.d.ts.map +1 -0
- package/dist/cluster/downing/KeepOldestOptions.js +23 -0
- package/dist/cluster/downing/KeepOldestOptions.js.map +1 -0
- package/dist/cluster/downing/KeepReferee.d.ts +2 -10
- package/dist/cluster/downing/KeepReferee.d.ts.map +1 -1
- package/dist/cluster/downing/KeepReferee.js +3 -3
- package/dist/cluster/downing/KeepReferee.js.map +1 -1
- package/dist/cluster/downing/KeepRefereeOptions.d.ts +35 -0
- package/dist/cluster/downing/KeepRefereeOptions.d.ts.map +1 -0
- package/dist/cluster/downing/KeepRefereeOptions.js +25 -0
- package/dist/cluster/downing/KeepRefereeOptions.js.map +1 -0
- package/dist/cluster/downing/LeaseMajority.d.ts +63 -21
- package/dist/cluster/downing/LeaseMajority.d.ts.map +1 -1
- package/dist/cluster/downing/LeaseMajority.js +132 -9
- package/dist/cluster/downing/LeaseMajority.js.map +1 -1
- package/dist/cluster/downing/LeaseMajorityOptions.d.ts +49 -0
- package/dist/cluster/downing/LeaseMajorityOptions.d.ts.map +1 -0
- package/dist/cluster/downing/LeaseMajorityOptions.js +31 -0
- package/dist/cluster/downing/LeaseMajorityOptions.js.map +1 -0
- package/dist/cluster/downing/StaticQuorum.d.ts +2 -7
- package/dist/cluster/downing/StaticQuorum.d.ts.map +1 -1
- package/dist/cluster/downing/StaticQuorum.js +3 -3
- package/dist/cluster/downing/StaticQuorum.js.map +1 -1
- package/dist/cluster/downing/StaticQuorumOptions.d.ts +30 -0
- package/dist/cluster/downing/StaticQuorumOptions.d.ts.map +1 -0
- package/dist/cluster/downing/StaticQuorumOptions.js +23 -0
- package/dist/cluster/downing/StaticQuorumOptions.js.map +1 -0
- package/dist/cluster/downing/index.d.ts +8 -4
- package/dist/cluster/downing/index.d.ts.map +1 -1
- package/dist/cluster/downing/index.js +4 -0
- package/dist/cluster/downing/index.js.map +1 -1
- package/dist/cluster/index.d.ts +34 -19
- package/dist/cluster/index.d.ts.map +1 -1
- package/dist/cluster/index.js +15 -4
- package/dist/cluster/index.js.map +1 -1
- package/dist/cluster/pubsub/DistributedPubSubExtension.d.ts +2 -2
- package/dist/cluster/pubsub/DistributedPubSubExtension.d.ts.map +1 -1
- package/dist/cluster/pubsub/DistributedPubSubExtension.js +5 -2
- package/dist/cluster/pubsub/DistributedPubSubExtension.js.map +1 -1
- package/dist/cluster/pubsub/DistributedPubSubMediator.d.ts +3 -7
- package/dist/cluster/pubsub/DistributedPubSubMediator.d.ts.map +1 -1
- package/dist/cluster/pubsub/DistributedPubSubMediator.js +3 -3
- package/dist/cluster/pubsub/DistributedPubSubMediator.js.map +1 -1
- package/dist/cluster/pubsub/DistributedPubSubOptions.d.ts +29 -0
- package/dist/cluster/pubsub/DistributedPubSubOptions.d.ts.map +1 -0
- package/dist/cluster/pubsub/DistributedPubSubOptions.js +23 -0
- package/dist/cluster/pubsub/DistributedPubSubOptions.js.map +1 -0
- package/dist/cluster/pubsub/index.d.ts +2 -1
- package/dist/cluster/pubsub/index.d.ts.map +1 -1
- package/dist/cluster/pubsub/index.js +1 -0
- package/dist/cluster/pubsub/index.js.map +1 -1
- package/dist/cluster/router/ClusterRouter.d.ts +12 -32
- package/dist/cluster/router/ClusterRouter.d.ts.map +1 -1
- package/dist/cluster/router/ClusterRouter.js +4 -2
- package/dist/cluster/router/ClusterRouter.js.map +1 -1
- package/dist/cluster/router/ClusterRouterOptions.d.ts +60 -0
- package/dist/cluster/router/ClusterRouterOptions.d.ts.map +1 -0
- package/dist/cluster/router/ClusterRouterOptions.js +41 -0
- package/dist/cluster/router/ClusterRouterOptions.js.map +1 -0
- package/dist/cluster/router/index.d.ts +3 -1
- package/dist/cluster/router/index.d.ts.map +1 -1
- package/dist/cluster/router/index.js +1 -0
- package/dist/cluster/router/index.js.map +1 -1
- package/dist/cluster/sharding/CassandraRememberEntitiesStore.d.ts +1 -15
- package/dist/cluster/sharding/CassandraRememberEntitiesStore.d.ts.map +1 -1
- package/dist/cluster/sharding/CassandraRememberEntitiesStore.js +35 -2
- package/dist/cluster/sharding/CassandraRememberEntitiesStore.js.map +1 -1
- package/dist/cluster/sharding/CassandraRememberEntitiesStoreOptions.d.ts +63 -0
- package/dist/cluster/sharding/CassandraRememberEntitiesStoreOptions.d.ts.map +1 -0
- package/dist/cluster/sharding/CassandraRememberEntitiesStoreOptions.js +63 -0
- package/dist/cluster/sharding/CassandraRememberEntitiesStoreOptions.js.map +1 -0
- package/dist/cluster/sharding/ClusterSharding.d.ts +18 -64
- package/dist/cluster/sharding/ClusterSharding.d.ts.map +1 -1
- package/dist/cluster/sharding/ClusterSharding.js +44 -20
- package/dist/cluster/sharding/ClusterSharding.js.map +1 -1
- package/dist/cluster/sharding/CoordinatorState.d.ts +1 -1
- package/dist/cluster/sharding/CoordinatorState.js +1 -1
- package/dist/cluster/sharding/ShardCoordinator.d.ts +3 -63
- package/dist/cluster/sharding/ShardCoordinator.d.ts.map +1 -1
- package/dist/cluster/sharding/ShardCoordinator.js +3 -3
- package/dist/cluster/sharding/ShardCoordinator.js.map +1 -1
- package/dist/cluster/sharding/ShardCoordinatorOptions.d.ts +111 -0
- package/dist/cluster/sharding/ShardCoordinatorOptions.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardCoordinatorOptions.js +69 -0
- package/dist/cluster/sharding/ShardCoordinatorOptions.js.map +1 -0
- package/dist/cluster/sharding/ShardRegion.d.ts +2 -33
- package/dist/cluster/sharding/ShardRegion.d.ts.map +1 -1
- package/dist/cluster/sharding/ShardRegion.js.map +1 -1
- package/dist/cluster/sharding/ShardedDaemonProcess.d.ts +2 -22
- package/dist/cluster/sharding/ShardedDaemonProcess.d.ts.map +1 -1
- package/dist/cluster/sharding/ShardedDaemonProcess.js +14 -11
- package/dist/cluster/sharding/ShardedDaemonProcess.js.map +1 -1
- package/dist/cluster/sharding/ShardedDaemonProcessOptions.d.ts +51 -0
- package/dist/cluster/sharding/ShardedDaemonProcessOptions.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardedDaemonProcessOptions.js +35 -0
- package/dist/cluster/sharding/ShardedDaemonProcessOptions.js.map +1 -0
- package/dist/cluster/sharding/ShardingOptions.d.ts +84 -0
- package/dist/cluster/sharding/ShardingOptions.d.ts.map +1 -0
- package/dist/cluster/sharding/ShardingOptions.js +62 -0
- package/dist/cluster/sharding/ShardingOptions.js.map +1 -0
- package/dist/cluster/sharding/StartShardingOptions.d.ts +98 -0
- package/dist/cluster/sharding/StartShardingOptions.d.ts.map +1 -0
- package/dist/cluster/sharding/StartShardingOptions.js +52 -0
- package/dist/cluster/sharding/StartShardingOptions.js.map +1 -0
- package/dist/cluster/singleton/ClusterSingleton.d.ts +2 -30
- package/dist/cluster/singleton/ClusterSingleton.d.ts.map +1 -1
- package/dist/cluster/singleton/ClusterSingleton.js +15 -9
- package/dist/cluster/singleton/ClusterSingleton.js.map +1 -1
- package/dist/cluster/singleton/ClusterSingletonManager.d.ts +3 -18
- package/dist/cluster/singleton/ClusterSingletonManager.d.ts.map +1 -1
- package/dist/cluster/singleton/ClusterSingletonManager.js +3 -3
- package/dist/cluster/singleton/ClusterSingletonManager.js.map +1 -1
- package/dist/cluster/singleton/ClusterSingletonManagerOptions.d.ts +49 -0
- package/dist/cluster/singleton/ClusterSingletonManagerOptions.d.ts.map +1 -0
- package/dist/cluster/singleton/ClusterSingletonManagerOptions.js +40 -0
- package/dist/cluster/singleton/ClusterSingletonManagerOptions.js.map +1 -0
- package/dist/cluster/singleton/StartSingletonOptions.d.ts +64 -0
- package/dist/cluster/singleton/StartSingletonOptions.d.ts.map +1 -0
- package/dist/cluster/singleton/StartSingletonOptions.js +40 -0
- package/dist/cluster/singleton/StartSingletonOptions.js.map +1 -0
- package/dist/cluster/singleton/index.d.ts +6 -2
- package/dist/cluster/singleton/index.d.ts.map +1 -1
- package/dist/cluster/singleton/index.js +2 -0
- package/dist/cluster/singleton/index.js.map +1 -1
- package/dist/config/ConfigKeys.d.ts +5 -0
- package/dist/config/ConfigKeys.d.ts.map +1 -1
- package/dist/config/ConfigKeys.js +5 -0
- package/dist/config/ConfigKeys.js.map +1 -1
- package/dist/coordination/Lease.d.ts +32 -14
- package/dist/coordination/Lease.d.ts.map +1 -1
- package/dist/coordination/LeaseOptions.d.ts +61 -0
- package/dist/coordination/LeaseOptions.d.ts.map +1 -0
- package/dist/coordination/LeaseOptions.js +50 -0
- package/dist/coordination/LeaseOptions.js.map +1 -0
- package/dist/coordination/index.d.ts +5 -2
- package/dist/coordination/index.d.ts.map +1 -1
- package/dist/coordination/index.js +2 -0
- package/dist/coordination/index.js.map +1 -1
- package/dist/coordination/leases/InMemoryLease.d.ts +18 -5
- package/dist/coordination/leases/InMemoryLease.d.ts.map +1 -1
- package/dist/coordination/leases/InMemoryLease.js +23 -11
- package/dist/coordination/leases/InMemoryLease.js.map +1 -1
- package/dist/coordination/leases/KubernetesLease.d.ts +19 -24
- package/dist/coordination/leases/KubernetesLease.d.ts.map +1 -1
- package/dist/coordination/leases/KubernetesLease.js +28 -9
- package/dist/coordination/leases/KubernetesLease.js.map +1 -1
- package/dist/coordination/leases/KubernetesLeaseOptions.d.ts +58 -0
- package/dist/coordination/leases/KubernetesLeaseOptions.d.ts.map +1 -0
- package/dist/coordination/leases/KubernetesLeaseOptions.js +42 -0
- package/dist/coordination/leases/KubernetesLeaseOptions.js.map +1 -0
- package/dist/crdt/DistributedData.d.ts +2 -22
- package/dist/crdt/DistributedData.d.ts.map +1 -1
- package/dist/crdt/DistributedData.js +3 -2
- package/dist/crdt/DistributedData.js.map +1 -1
- package/dist/crdt/DistributedDataOptions.d.ts +50 -0
- package/dist/crdt/DistributedDataOptions.d.ts.map +1 -0
- package/dist/crdt/DistributedDataOptions.js +28 -0
- package/dist/crdt/DistributedDataOptions.js.map +1 -0
- package/dist/crdt/index.d.ts +3 -1
- package/dist/crdt/index.d.ts.map +1 -1
- package/dist/crdt/index.js +1 -0
- package/dist/crdt/index.js.map +1 -1
- package/dist/delivery/ProducerController.d.ts +4 -19
- package/dist/delivery/ProducerController.d.ts.map +1 -1
- package/dist/delivery/ProducerController.js +4 -3
- package/dist/delivery/ProducerController.js.map +1 -1
- package/dist/delivery/ProducerControllerOptions.d.ts +50 -0
- package/dist/delivery/ProducerControllerOptions.d.ts.map +1 -0
- package/dist/delivery/ProducerControllerOptions.js +36 -0
- package/dist/delivery/ProducerControllerOptions.js.map +1 -0
- package/dist/delivery/ReliableDelivery.d.ts +3 -2
- package/dist/delivery/ReliableDelivery.d.ts.map +1 -1
- package/dist/delivery/ReliableDelivery.js +2 -2
- package/dist/delivery/ReliableDelivery.js.map +1 -1
- package/dist/delivery/index.d.ts +3 -1
- package/dist/delivery/index.d.ts.map +1 -1
- package/dist/delivery/index.js +1 -0
- package/dist/delivery/index.js.map +1 -1
- package/dist/discovery/AutoDiscoveryOptions.d.ts +72 -0
- package/dist/discovery/AutoDiscoveryOptions.d.ts.map +1 -0
- package/dist/discovery/AutoDiscoveryOptions.js +34 -0
- package/dist/discovery/AutoDiscoveryOptions.js.map +1 -0
- package/dist/discovery/ConfigSeedProvider.d.ts +2 -7
- package/dist/discovery/ConfigSeedProvider.d.ts.map +1 -1
- package/dist/discovery/ConfigSeedProvider.js +4 -3
- package/dist/discovery/ConfigSeedProvider.js.map +1 -1
- package/dist/discovery/ConfigSeedProviderOptions.d.ts +34 -0
- package/dist/discovery/ConfigSeedProviderOptions.d.ts.map +1 -0
- package/dist/discovery/ConfigSeedProviderOptions.js +27 -0
- package/dist/discovery/ConfigSeedProviderOptions.js.map +1 -0
- package/dist/discovery/DnsSeedProvider.d.ts +3 -27
- package/dist/discovery/DnsSeedProvider.d.ts.map +1 -1
- package/dist/discovery/DnsSeedProvider.js +4 -4
- package/dist/discovery/DnsSeedProvider.js.map +1 -1
- package/dist/discovery/DnsSeedProviderOptions.d.ts +67 -0
- package/dist/discovery/DnsSeedProviderOptions.d.ts.map +1 -0
- package/dist/discovery/DnsSeedProviderOptions.js +48 -0
- package/dist/discovery/DnsSeedProviderOptions.js.map +1 -0
- package/dist/discovery/KubernetesApiSeedProvider.d.ts +2 -13
- package/dist/discovery/KubernetesApiSeedProvider.d.ts.map +1 -1
- package/dist/discovery/KubernetesApiSeedProvider.js +2 -2
- package/dist/discovery/KubernetesApiSeedProvider.js.map +1 -1
- package/dist/discovery/KubernetesApiSeedProviderOptions.d.ts +46 -0
- package/dist/discovery/KubernetesApiSeedProviderOptions.d.ts.map +1 -0
- package/dist/discovery/KubernetesApiSeedProviderOptions.js +39 -0
- package/dist/discovery/KubernetesApiSeedProviderOptions.js.map +1 -0
- package/dist/discovery/Receptionist.d.ts +3 -6
- package/dist/discovery/Receptionist.d.ts.map +1 -1
- package/dist/discovery/Receptionist.js +10 -3
- package/dist/discovery/Receptionist.js.map +1 -1
- package/dist/discovery/ReceptionistOptions.d.ts +30 -0
- package/dist/discovery/ReceptionistOptions.d.ts.map +1 -0
- package/dist/discovery/ReceptionistOptions.js +24 -0
- package/dist/discovery/ReceptionistOptions.js.map +1 -0
- package/dist/discovery/autoDiscovery.d.ts +3 -44
- package/dist/discovery/autoDiscovery.d.ts.map +1 -1
- package/dist/discovery/autoDiscovery.js +31 -32
- package/dist/discovery/autoDiscovery.js.map +1 -1
- package/dist/discovery/index.d.ts +10 -5
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +5 -0
- package/dist/discovery/index.js.map +1 -1
- package/dist/http/HttpExtension.d.ts.map +1 -1
- package/dist/http/HttpExtension.js +69 -8
- package/dist/http/HttpExtension.js.map +1 -1
- package/dist/http/Route.d.ts +76 -4
- package/dist/http/Route.d.ts.map +1 -1
- package/dist/http/Route.js +74 -1
- package/dist/http/Route.js.map +1 -1
- package/dist/http/backend/ExpressBackend.d.ts +18 -12
- package/dist/http/backend/ExpressBackend.d.ts.map +1 -1
- package/dist/http/backend/ExpressBackend.js +134 -8
- package/dist/http/backend/ExpressBackend.js.map +1 -1
- package/dist/http/backend/ExpressBackendOptions.d.ts +47 -0
- package/dist/http/backend/ExpressBackendOptions.d.ts.map +1 -0
- package/dist/http/backend/ExpressBackendOptions.js +35 -0
- package/dist/http/backend/ExpressBackendOptions.js.map +1 -0
- package/dist/http/backend/FastifyBackend.d.ts +4 -1
- package/dist/http/backend/FastifyBackend.d.ts.map +1 -1
- package/dist/http/backend/FastifyBackend.js +71 -1
- package/dist/http/backend/FastifyBackend.js.map +1 -1
- package/dist/http/backend/HonoBackend.d.ts +19 -13
- package/dist/http/backend/HonoBackend.d.ts.map +1 -1
- package/dist/http/backend/HonoBackend.js +152 -5
- package/dist/http/backend/HonoBackend.js.map +1 -1
- package/dist/http/backend/HonoBackendOptions.d.ts +47 -0
- package/dist/http/backend/HonoBackendOptions.d.ts.map +1 -0
- package/dist/http/backend/HonoBackendOptions.js +35 -0
- package/dist/http/backend/HonoBackendOptions.js.map +1 -0
- package/dist/http/backend/HttpServerBackend.d.ts +24 -0
- package/dist/http/backend/HttpServerBackend.d.ts.map +1 -1
- package/dist/http/index.d.ts +11 -5
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +8 -1
- package/dist/http/index.js.map +1 -1
- package/dist/http/middleware/BearerToken.d.ts +44 -0
- package/dist/http/middleware/BearerToken.d.ts.map +1 -0
- package/dist/http/middleware/BearerToken.js +72 -0
- package/dist/http/middleware/BearerToken.js.map +1 -0
- package/dist/http/middleware/IpAllowlist.d.ts +45 -0
- package/dist/http/middleware/IpAllowlist.d.ts.map +1 -0
- package/dist/http/middleware/IpAllowlist.js +148 -0
- package/dist/http/middleware/IpAllowlist.js.map +1 -0
- package/dist/http/middleware/index.d.ts +5 -0
- package/dist/http/middleware/index.d.ts.map +1 -0
- package/dist/http/middleware/index.js +3 -0
- package/dist/http/middleware/index.js.map +1 -0
- package/dist/http/types.d.ts +9 -0
- package/dist/http/types.d.ts.map +1 -1
- package/dist/http/types.js.map +1 -1
- package/dist/http/ws/ConnectionWiring.d.ts +59 -0
- package/dist/http/ws/ConnectionWiring.d.ts.map +1 -0
- package/dist/http/ws/ConnectionWiring.js +112 -0
- package/dist/http/ws/ConnectionWiring.js.map +1 -0
- package/dist/http/ws/SocketAdapter.d.ts +72 -0
- package/dist/http/ws/SocketAdapter.d.ts.map +1 -0
- package/dist/http/ws/SocketAdapter.js +97 -0
- package/dist/http/ws/SocketAdapter.js.map +1 -0
- package/dist/http/ws/WebSocketClientActor.d.ts +66 -0
- package/dist/http/ws/WebSocketClientActor.d.ts.map +1 -0
- package/dist/http/ws/WebSocketClientActor.js +194 -0
- package/dist/http/ws/WebSocketClientActor.js.map +1 -0
- package/dist/http/ws/WebSocketClientOptions.d.ts +77 -0
- package/dist/http/ws/WebSocketClientOptions.d.ts.map +1 -0
- package/dist/http/ws/WebSocketClientOptions.js +69 -0
- package/dist/http/ws/WebSocketClientOptions.js.map +1 -0
- package/dist/http/ws/WebSocketConnectionActor.d.ts +51 -0
- package/dist/http/ws/WebSocketConnectionActor.d.ts.map +1 -0
- package/dist/http/ws/WebSocketConnectionActor.js +170 -0
- package/dist/http/ws/WebSocketConnectionActor.js.map +1 -0
- package/dist/http/ws/WebSocketRoute.d.ts +20 -0
- package/dist/http/ws/WebSocketRoute.d.ts.map +1 -0
- package/dist/http/ws/WebSocketRoute.js +44 -0
- package/dist/http/ws/WebSocketRoute.js.map +1 -0
- package/dist/http/ws/WebSocketRouteOptions.d.ts +54 -0
- package/dist/http/ws/WebSocketRouteOptions.d.ts.map +1 -0
- package/dist/http/ws/WebSocketRouteOptions.js +55 -0
- package/dist/http/ws/WebSocketRouteOptions.js.map +1 -0
- package/dist/http/ws/WebSocketServerActor.d.ts +65 -0
- package/dist/http/ws/WebSocketServerActor.d.ts.map +1 -0
- package/dist/http/ws/WebSocketServerActor.js +133 -0
- package/dist/http/ws/WebSocketServerActor.js.map +1 -0
- package/dist/http/ws/WsCodec.d.ts +65 -0
- package/dist/http/ws/WsCodec.d.ts.map +1 -0
- package/dist/http/ws/WsCodec.js +82 -0
- package/dist/http/ws/WsCodec.js.map +1 -0
- package/dist/http/ws/WsConnection.d.ts +59 -0
- package/dist/http/ws/WsConnection.d.ts.map +1 -0
- package/dist/http/ws/WsConnection.js +45 -0
- package/dist/http/ws/WsConnection.js.map +1 -0
- package/dist/http/ws/WsMessages.d.ts +91 -0
- package/dist/http/ws/WsMessages.d.ts.map +1 -0
- package/dist/http/ws/WsMessages.js +90 -0
- package/dist/http/ws/WsMessages.js.map +1 -0
- package/dist/http/ws/WsPolicy.d.ts +32 -0
- package/dist/http/ws/WsPolicy.d.ts.map +1 -0
- package/dist/http/ws/WsPolicy.js +43 -0
- package/dist/http/ws/WsPolicy.js.map +1 -0
- package/dist/http/ws/index.d.ts +22 -0
- package/dist/http/ws/index.d.ts.map +1 -0
- package/dist/http/ws/index.js +15 -0
- package/dist/http/ws/index.js.map +1 -0
- package/dist/http/ws/matchPattern.d.ts +12 -0
- package/dist/http/ws/matchPattern.d.ts.map +1 -0
- package/dist/http/ws/matchPattern.js +29 -0
- package/dist/http/ws/matchPattern.js.map +1 -0
- package/dist/http/ws/rawResponse.d.ts +15 -0
- package/dist/http/ws/rawResponse.d.ts.map +1 -0
- package/dist/http/ws/rawResponse.js +54 -0
- package/dist/http/ws/rawResponse.js.map +1 -0
- package/dist/http/ws/types.d.ts +70 -0
- package/dist/http/ws/types.d.ts.map +1 -0
- package/dist/http/ws/types.js +81 -0
- package/dist/http/ws/types.js.map +1 -0
- package/dist/http/ws/wsCtor.d.ts +34 -0
- package/dist/http/ws/wsCtor.d.ts.map +1 -0
- package/dist/http/ws/wsCtor.js +38 -0
- package/dist/http/ws/wsCtor.js.map +1 -0
- package/dist/index.d.ts +25 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -11
- package/dist/index.js.map +1 -1
- package/dist/internal/ActorCell.d.ts +16 -1
- package/dist/internal/ActorCell.d.ts.map +1 -1
- package/dist/internal/ActorCell.js +32 -2
- package/dist/internal/ActorCell.js.map +1 -1
- package/dist/io/broker/AmqpActor.d.ts +19 -16
- package/dist/io/broker/AmqpActor.d.ts.map +1 -1
- package/dist/io/broker/AmqpActor.js +13 -5
- package/dist/io/broker/AmqpActor.js.map +1 -1
- package/dist/io/broker/AmqpOptions.d.ts +41 -0
- package/dist/io/broker/AmqpOptions.d.ts.map +1 -0
- package/dist/io/broker/AmqpOptions.js +34 -0
- package/dist/io/broker/AmqpOptions.js.map +1 -0
- package/dist/io/broker/BrokerActor.d.ts +4 -3
- package/dist/io/broker/BrokerActor.d.ts.map +1 -1
- package/dist/io/broker/BrokerActor.js +4 -2
- package/dist/io/broker/BrokerActor.js.map +1 -1
- package/dist/io/broker/BrokerOptions.d.ts +24 -0
- package/dist/io/broker/BrokerOptions.d.ts.map +1 -0
- package/dist/io/broker/BrokerOptions.js +29 -0
- package/dist/io/broker/BrokerOptions.js.map +1 -0
- package/dist/io/broker/BrokerSettings.d.ts +2 -2
- package/dist/io/broker/BrokerSettings.d.ts.map +1 -1
- package/dist/io/broker/BrokerSettings.js.map +1 -1
- package/dist/io/broker/GrpcClientActor.d.ts +6 -19
- package/dist/io/broker/GrpcClientActor.d.ts.map +1 -1
- package/dist/io/broker/GrpcClientActor.js +1 -1
- package/dist/io/broker/GrpcClientActor.js.map +1 -1
- package/dist/io/broker/GrpcClientOptions.d.ts +48 -0
- package/dist/io/broker/GrpcClientOptions.d.ts.map +1 -0
- package/dist/io/broker/GrpcClientOptions.js +42 -0
- package/dist/io/broker/GrpcClientOptions.js.map +1 -0
- package/dist/io/broker/GrpcServerActor.d.ts +3 -24
- package/dist/io/broker/GrpcServerActor.d.ts.map +1 -1
- package/dist/io/broker/GrpcServerActor.js +3 -3
- package/dist/io/broker/GrpcServerActor.js.map +1 -1
- package/dist/io/broker/GrpcServerOptions.d.ts +58 -0
- package/dist/io/broker/GrpcServerOptions.d.ts.map +1 -0
- package/dist/io/broker/GrpcServerOptions.js +44 -0
- package/dist/io/broker/GrpcServerOptions.js.map +1 -0
- package/dist/io/broker/JetStreamActor.d.ts +13 -35
- package/dist/io/broker/JetStreamActor.d.ts.map +1 -1
- package/dist/io/broker/JetStreamActor.js +2 -2
- package/dist/io/broker/JetStreamActor.js.map +1 -1
- package/dist/io/broker/JetStreamOptions.d.ts +64 -0
- package/dist/io/broker/JetStreamOptions.d.ts.map +1 -0
- package/dist/io/broker/JetStreamOptions.js +54 -0
- package/dist/io/broker/JetStreamOptions.js.map +1 -0
- package/dist/io/broker/KafkaActor.d.ts +13 -54
- package/dist/io/broker/KafkaActor.d.ts.map +1 -1
- package/dist/io/broker/KafkaActor.js +20 -8
- package/dist/io/broker/KafkaActor.js.map +1 -1
- package/dist/io/broker/KafkaOptions.d.ts +82 -0
- package/dist/io/broker/KafkaOptions.d.ts.map +1 -0
- package/dist/io/broker/KafkaOptions.js +50 -0
- package/dist/io/broker/KafkaOptions.js.map +1 -0
- package/dist/io/broker/MqttActor.d.ts +174 -114
- package/dist/io/broker/MqttActor.d.ts.map +1 -1
- package/dist/io/broker/MqttActor.js +328 -103
- package/dist/io/broker/MqttActor.js.map +1 -1
- package/dist/io/broker/MqttCodec.d.ts +70 -0
- package/dist/io/broker/MqttCodec.d.ts.map +1 -0
- package/dist/io/broker/MqttCodec.js +98 -0
- package/dist/io/broker/MqttCodec.js.map +1 -0
- package/dist/io/broker/MqttMessages.d.ts +145 -0
- package/dist/io/broker/MqttMessages.d.ts.map +1 -0
- package/dist/io/broker/MqttMessages.js +102 -0
- package/dist/io/broker/MqttMessages.js.map +1 -0
- package/dist/io/broker/MqttOptions.d.ts +100 -0
- package/dist/io/broker/MqttOptions.d.ts.map +1 -0
- package/dist/io/broker/MqttOptions.js +73 -0
- package/dist/io/broker/MqttOptions.js.map +1 -0
- package/dist/io/broker/NatsActor.d.ts +6 -21
- package/dist/io/broker/NatsActor.d.ts.map +1 -1
- package/dist/io/broker/NatsActor.js +1 -1
- package/dist/io/broker/NatsActor.js.map +1 -1
- package/dist/io/broker/NatsOptions.d.ts +51 -0
- package/dist/io/broker/NatsOptions.d.ts.map +1 -0
- package/dist/io/broker/NatsOptions.js +42 -0
- package/dist/io/broker/NatsOptions.js.map +1 -0
- package/dist/io/broker/RedisStreamsActor.d.ts +6 -24
- package/dist/io/broker/RedisStreamsActor.d.ts.map +1 -1
- package/dist/io/broker/RedisStreamsActor.js +1 -1
- package/dist/io/broker/RedisStreamsActor.js.map +1 -1
- package/dist/io/broker/RedisStreamsOptions.d.ts +51 -0
- package/dist/io/broker/RedisStreamsOptions.d.ts.map +1 -0
- package/dist/io/broker/RedisStreamsOptions.js +38 -0
- package/dist/io/broker/RedisStreamsOptions.js.map +1 -0
- package/dist/io/broker/SseActor.d.ts +6 -15
- package/dist/io/broker/SseActor.d.ts.map +1 -1
- package/dist/io/broker/SseActor.js +1 -1
- package/dist/io/broker/SseActor.js.map +1 -1
- package/dist/io/broker/SseOptions.d.ts +38 -0
- package/dist/io/broker/SseOptions.d.ts.map +1 -0
- package/dist/io/broker/SseOptions.js +30 -0
- package/dist/io/broker/SseOptions.js.map +1 -0
- package/dist/io/broker/TcpSocketActor.d.ts +6 -21
- package/dist/io/broker/TcpSocketActor.d.ts.map +1 -1
- package/dist/io/broker/TcpSocketActor.js +1 -1
- package/dist/io/broker/TcpSocketActor.js.map +1 -1
- package/dist/io/broker/TcpSocketOptions.d.ts +46 -0
- package/dist/io/broker/TcpSocketOptions.d.ts.map +1 -0
- package/dist/io/broker/TcpSocketOptions.js +34 -0
- package/dist/io/broker/TcpSocketOptions.js.map +1 -0
- package/dist/io/broker/UdpSocketActor.d.ts +6 -17
- package/dist/io/broker/UdpSocketActor.d.ts.map +1 -1
- package/dist/io/broker/UdpSocketActor.js +1 -1
- package/dist/io/broker/UdpSocketActor.js.map +1 -1
- package/dist/io/broker/UdpSocketOptions.d.ts +42 -0
- package/dist/io/broker/UdpSocketOptions.d.ts.map +1 -0
- package/dist/io/broker/UdpSocketOptions.js +34 -0
- package/dist/io/broker/UdpSocketOptions.js.map +1 -0
- package/dist/io/broker/index.d.ts +39 -19
- package/dist/io/broker/index.d.ts.map +1 -1
- package/dist/io/broker/index.js +21 -4
- package/dist/io/broker/index.js.map +1 -1
- package/dist/mailbox/BoundedMailbox.d.ts +12 -0
- package/dist/mailbox/BoundedMailbox.d.ts.map +1 -1
- package/dist/mailbox/BoundedMailbox.js +7 -1
- package/dist/mailbox/BoundedMailbox.js.map +1 -1
- package/dist/management/HttpManagement.d.ts +34 -1
- package/dist/management/HttpManagement.d.ts.map +1 -1
- package/dist/management/HttpManagement.js +30 -4
- package/dist/management/HttpManagement.js.map +1 -1
- package/dist/metrics/PromClientAdapter.d.ts +2 -12
- package/dist/metrics/PromClientAdapter.d.ts.map +1 -1
- package/dist/metrics/PromClientAdapter.js +2 -2
- package/dist/metrics/PromClientAdapter.js.map +1 -1
- package/dist/metrics/PromClientAdapterOptions.d.ts +46 -0
- package/dist/metrics/PromClientAdapterOptions.d.ts.map +1 -0
- package/dist/metrics/PromClientAdapterOptions.js +35 -0
- package/dist/metrics/PromClientAdapterOptions.js.map +1 -0
- package/dist/metrics/index.d.ts +3 -1
- package/dist/metrics/index.d.ts.map +1 -1
- package/dist/metrics/index.js +1 -0
- package/dist/metrics/index.js.map +1 -1
- package/dist/persistence/DurableStateActor.d.ts +4 -9
- package/dist/persistence/DurableStateActor.d.ts.map +1 -1
- package/dist/persistence/DurableStateActor.js +3 -3
- package/dist/persistence/DurableStateActor.js.map +1 -1
- package/dist/persistence/DurableStateOptions.d.ts +40 -0
- package/dist/persistence/DurableStateOptions.d.ts.map +1 -0
- package/dist/persistence/DurableStateOptions.js +36 -0
- package/dist/persistence/DurableStateOptions.js.map +1 -0
- package/dist/persistence/PersistenceOptions.d.ts +45 -0
- package/dist/persistence/PersistenceOptions.d.ts.map +1 -1
- package/dist/persistence/ReplicatedEventSourcedActor.d.ts.map +1 -1
- package/dist/persistence/ReplicatedEventSourcedActor.js +2 -2
- package/dist/persistence/ReplicatedEventSourcedActor.js.map +1 -1
- package/dist/persistence/durable-state-stores/MariaDbDurableStateStore.d.ts +32 -0
- package/dist/persistence/durable-state-stores/MariaDbDurableStateStore.d.ts.map +1 -0
- package/dist/persistence/durable-state-stores/MariaDbDurableStateStore.js +120 -0
- package/dist/persistence/durable-state-stores/MariaDbDurableStateStore.js.map +1 -0
- package/dist/persistence/durable-state-stores/MariaDbDurableStateStoreOptions.d.ts +38 -0
- package/dist/persistence/durable-state-stores/MariaDbDurableStateStoreOptions.d.ts.map +1 -0
- package/dist/persistence/durable-state-stores/MariaDbDurableStateStoreOptions.js +38 -0
- package/dist/persistence/durable-state-stores/MariaDbDurableStateStoreOptions.js.map +1 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.d.ts +4 -9
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.d.ts.map +1 -1
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.js +49 -7
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.js.map +1 -1
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStoreOptions.d.ts +61 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStoreOptions.d.ts.map +1 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStoreOptions.js +42 -0
- package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStoreOptions.js.map +1 -0
- package/dist/persistence/durable-state-stores/PostgresDurableStateStore.d.ts +38 -0
- package/dist/persistence/durable-state-stores/PostgresDurableStateStore.d.ts.map +1 -0
- package/dist/persistence/durable-state-stores/PostgresDurableStateStore.js +121 -0
- package/dist/persistence/durable-state-stores/PostgresDurableStateStore.js.map +1 -0
- package/dist/persistence/durable-state-stores/PostgresDurableStateStoreOptions.d.ts +38 -0
- package/dist/persistence/durable-state-stores/PostgresDurableStateStoreOptions.d.ts.map +1 -0
- package/dist/persistence/durable-state-stores/PostgresDurableStateStoreOptions.js +38 -0
- package/dist/persistence/durable-state-stores/PostgresDurableStateStoreOptions.js.map +1 -0
- package/dist/persistence/index.d.ts +59 -16
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +33 -2
- package/dist/persistence/index.js.map +1 -1
- package/dist/persistence/journals/CassandraJournal.d.ts +1 -48
- package/dist/persistence/journals/CassandraJournal.d.ts.map +1 -1
- package/dist/persistence/journals/CassandraJournal.js +2 -2
- package/dist/persistence/journals/CassandraJournal.js.map +1 -1
- package/dist/persistence/journals/CassandraJournalOptions.d.ts +107 -0
- package/dist/persistence/journals/CassandraJournalOptions.d.ts.map +1 -0
- package/dist/persistence/journals/CassandraJournalOptions.js +90 -0
- package/dist/persistence/journals/CassandraJournalOptions.js.map +1 -0
- package/dist/persistence/journals/CassandraPlugin.d.ts +1 -16
- package/dist/persistence/journals/CassandraPlugin.d.ts.map +1 -1
- package/dist/persistence/journals/CassandraPlugin.js +9 -4
- package/dist/persistence/journals/CassandraPlugin.js.map +1 -1
- package/dist/persistence/journals/CassandraPluginOptions.d.ts +51 -0
- package/dist/persistence/journals/CassandraPluginOptions.d.ts.map +1 -0
- package/dist/persistence/journals/CassandraPluginOptions.js +37 -0
- package/dist/persistence/journals/CassandraPluginOptions.js.map +1 -0
- package/dist/persistence/journals/MariaDbClient.d.ts +54 -0
- package/dist/persistence/journals/MariaDbClient.d.ts.map +1 -0
- package/dist/persistence/journals/MariaDbClient.js +40 -0
- package/dist/persistence/journals/MariaDbClient.js.map +1 -0
- package/dist/persistence/journals/MariaDbJournal.d.ts +29 -0
- package/dist/persistence/journals/MariaDbJournal.d.ts.map +1 -0
- package/dist/persistence/journals/MariaDbJournal.js +161 -0
- package/dist/persistence/journals/MariaDbJournal.js.map +1 -0
- package/dist/persistence/journals/MariaDbJournalOptions.d.ts +43 -0
- package/dist/persistence/journals/MariaDbJournalOptions.d.ts.map +1 -0
- package/dist/persistence/journals/MariaDbJournalOptions.js +43 -0
- package/dist/persistence/journals/MariaDbJournalOptions.js.map +1 -0
- package/dist/persistence/journals/MariaDbPlugin.d.ts +27 -0
- package/dist/persistence/journals/MariaDbPlugin.d.ts.map +1 -0
- package/dist/persistence/journals/MariaDbPlugin.js +30 -0
- package/dist/persistence/journals/MariaDbPlugin.js.map +1 -0
- package/dist/persistence/journals/MariaDbPluginOptions.d.ts +52 -0
- package/dist/persistence/journals/MariaDbPluginOptions.d.ts.map +1 -0
- package/dist/persistence/journals/MariaDbPluginOptions.js +38 -0
- package/dist/persistence/journals/MariaDbPluginOptions.js.map +1 -0
- package/dist/persistence/journals/PostgresClient.d.ts +56 -0
- package/dist/persistence/journals/PostgresClient.d.ts.map +1 -0
- package/dist/persistence/journals/PostgresClient.js +35 -0
- package/dist/persistence/journals/PostgresClient.js.map +1 -0
- package/dist/persistence/journals/PostgresJournal.d.ts +41 -0
- package/dist/persistence/journals/PostgresJournal.d.ts.map +1 -0
- package/dist/persistence/journals/PostgresJournal.js +176 -0
- package/dist/persistence/journals/PostgresJournal.js.map +1 -0
- package/dist/persistence/journals/PostgresJournalOptions.d.ts +44 -0
- package/dist/persistence/journals/PostgresJournalOptions.d.ts.map +1 -0
- package/dist/persistence/journals/PostgresJournalOptions.js +44 -0
- package/dist/persistence/journals/PostgresJournalOptions.js.map +1 -0
- package/dist/persistence/journals/PostgresPlugin.d.ts +32 -0
- package/dist/persistence/journals/PostgresPlugin.d.ts.map +1 -0
- package/dist/persistence/journals/PostgresPlugin.js +35 -0
- package/dist/persistence/journals/PostgresPlugin.js.map +1 -0
- package/dist/persistence/journals/PostgresPluginOptions.d.ts +54 -0
- package/dist/persistence/journals/PostgresPluginOptions.d.ts.map +1 -0
- package/dist/persistence/journals/PostgresPluginOptions.js +39 -0
- package/dist/persistence/journals/PostgresPluginOptions.js.map +1 -0
- package/dist/persistence/journals/SqliteJournal.d.ts +5 -19
- package/dist/persistence/journals/SqliteJournal.d.ts.map +1 -1
- package/dist/persistence/journals/SqliteJournal.js +10 -9
- package/dist/persistence/journals/SqliteJournal.js.map +1 -1
- package/dist/persistence/journals/SqliteJournalOptions.d.ts +41 -0
- package/dist/persistence/journals/SqliteJournalOptions.d.ts.map +1 -0
- package/dist/persistence/journals/SqliteJournalOptions.js +31 -0
- package/dist/persistence/journals/SqliteJournalOptions.js.map +1 -0
- package/dist/persistence/object-storage/BodyCodec.d.ts +43 -0
- package/dist/persistence/object-storage/BodyCodec.d.ts.map +1 -1
- package/dist/persistence/object-storage/BodyCodec.js +78 -20
- package/dist/persistence/object-storage/BodyCodec.js.map +1 -1
- package/dist/persistence/object-storage/Compression.d.ts +21 -7
- package/dist/persistence/object-storage/Compression.d.ts.map +1 -1
- package/dist/persistence/object-storage/Compression.js +79 -29
- package/dist/persistence/object-storage/Compression.js.map +1 -1
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.d.ts +2 -61
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.d.ts.map +1 -1
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.js +56 -11
- package/dist/persistence/object-storage/FilesystemObjectStorageBackend.js.map +1 -1
- package/dist/persistence/object-storage/FilesystemObjectStorageOptions.d.ts +45 -0
- package/dist/persistence/object-storage/FilesystemObjectStorageOptions.d.ts.map +1 -0
- package/dist/persistence/object-storage/FilesystemObjectStorageOptions.js +30 -0
- package/dist/persistence/object-storage/FilesystemObjectStorageOptions.js.map +1 -0
- package/dist/persistence/object-storage/Integrity.d.ts +43 -0
- package/dist/persistence/object-storage/Integrity.d.ts.map +1 -0
- package/dist/persistence/object-storage/Integrity.js +66 -0
- package/dist/persistence/object-storage/Integrity.js.map +1 -0
- package/dist/persistence/object-storage/ObjectStoragePlugin.d.ts +6 -22
- package/dist/persistence/object-storage/ObjectStoragePlugin.d.ts.map +1 -1
- package/dist/persistence/object-storage/ObjectStoragePlugin.js +36 -28
- package/dist/persistence/object-storage/ObjectStoragePlugin.js.map +1 -1
- package/dist/persistence/object-storage/ObjectStoragePluginOptions.d.ts +60 -0
- package/dist/persistence/object-storage/ObjectStoragePluginOptions.d.ts.map +1 -0
- package/dist/persistence/object-storage/ObjectStoragePluginOptions.js +52 -0
- package/dist/persistence/object-storage/ObjectStoragePluginOptions.js.map +1 -0
- package/dist/persistence/object-storage/PluginConfig.d.ts +5 -2
- package/dist/persistence/object-storage/PluginConfig.d.ts.map +1 -1
- package/dist/persistence/object-storage/PluginConfig.js +8 -0
- package/dist/persistence/object-storage/PluginConfig.js.map +1 -1
- package/dist/persistence/object-storage/S3ObjectStorageBackend.d.ts +1 -30
- package/dist/persistence/object-storage/S3ObjectStorageBackend.d.ts.map +1 -1
- package/dist/persistence/object-storage/S3ObjectStorageBackend.js +12 -7
- package/dist/persistence/object-storage/S3ObjectStorageBackend.js.map +1 -1
- package/dist/persistence/object-storage/S3ObjectStorageOptions.d.ts +64 -0
- package/dist/persistence/object-storage/S3ObjectStorageOptions.d.ts.map +1 -0
- package/dist/persistence/object-storage/S3ObjectStorageOptions.js +42 -0
- package/dist/persistence/object-storage/S3ObjectStorageOptions.js.map +1 -0
- package/dist/persistence/object-storage/reEncryptionSweep.d.ts +72 -0
- package/dist/persistence/object-storage/reEncryptionSweep.d.ts.map +1 -1
- package/dist/persistence/object-storage/reEncryptionSweep.js +82 -2
- package/dist/persistence/object-storage/reEncryptionSweep.js.map +1 -1
- package/dist/persistence/projection/ProjectionActor.d.ts +4 -24
- package/dist/persistence/projection/ProjectionActor.d.ts.map +1 -1
- package/dist/persistence/projection/ProjectionActor.js +36 -2
- package/dist/persistence/projection/ProjectionActor.js.map +1 -1
- package/dist/persistence/projection/ProjectionOptions.d.ts +109 -0
- package/dist/persistence/projection/ProjectionOptions.d.ts.map +1 -0
- package/dist/persistence/projection/ProjectionOptions.js +108 -0
- package/dist/persistence/projection/ProjectionOptions.js.map +1 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.d.ts +2 -10
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.d.ts.map +1 -1
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.js +12 -6
- package/dist/persistence/snapshot-stores/CachedSnapshotStore.js.map +1 -1
- package/dist/persistence/snapshot-stores/CachedSnapshotStoreOptions.d.ts +37 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStoreOptions.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStoreOptions.js +31 -0
- package/dist/persistence/snapshot-stores/CachedSnapshotStoreOptions.js.map +1 -0
- package/dist/persistence/snapshot-stores/CassandraSnapshotStore.d.ts +1 -11
- package/dist/persistence/snapshot-stores/CassandraSnapshotStore.d.ts.map +1 -1
- package/dist/persistence/snapshot-stores/CassandraSnapshotStore.js +3 -3
- package/dist/persistence/snapshot-stores/CassandraSnapshotStore.js.map +1 -1
- package/dist/persistence/snapshot-stores/CassandraSnapshotStoreOptions.d.ts +61 -0
- package/dist/persistence/snapshot-stores/CassandraSnapshotStoreOptions.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/CassandraSnapshotStoreOptions.js +73 -0
- package/dist/persistence/snapshot-stores/CassandraSnapshotStoreOptions.js.map +1 -0
- package/dist/persistence/snapshot-stores/MariaDbSnapshotStore.d.ts +30 -0
- package/dist/persistence/snapshot-stores/MariaDbSnapshotStore.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/MariaDbSnapshotStore.js +102 -0
- package/dist/persistence/snapshot-stores/MariaDbSnapshotStore.js.map +1 -0
- package/dist/persistence/snapshot-stores/MariaDbSnapshotStoreOptions.d.ts +42 -0
- package/dist/persistence/snapshot-stores/MariaDbSnapshotStoreOptions.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/MariaDbSnapshotStoreOptions.js +42 -0
- package/dist/persistence/snapshot-stores/MariaDbSnapshotStoreOptions.js.map +1 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.d.ts +2 -15
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.d.ts.map +1 -1
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.js +10 -6
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.js.map +1 -1
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStoreOptions.d.ts +45 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStoreOptions.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStoreOptions.js +38 -0
- package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStoreOptions.js.map +1 -0
- package/dist/persistence/snapshot-stores/PostgresSnapshotStore.d.ts +31 -0
- package/dist/persistence/snapshot-stores/PostgresSnapshotStore.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/PostgresSnapshotStore.js +101 -0
- package/dist/persistence/snapshot-stores/PostgresSnapshotStore.js.map +1 -0
- package/dist/persistence/snapshot-stores/PostgresSnapshotStoreOptions.d.ts +42 -0
- package/dist/persistence/snapshot-stores/PostgresSnapshotStoreOptions.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/PostgresSnapshotStoreOptions.js +42 -0
- package/dist/persistence/snapshot-stores/PostgresSnapshotStoreOptions.js.map +1 -0
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.d.ts +2 -15
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.d.ts.map +1 -1
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.js +7 -6
- package/dist/persistence/snapshot-stores/SqliteSnapshotStore.js.map +1 -1
- package/dist/persistence/snapshot-stores/SqliteSnapshotStoreOptions.d.ts +40 -0
- package/dist/persistence/snapshot-stores/SqliteSnapshotStoreOptions.d.ts.map +1 -0
- package/dist/persistence/snapshot-stores/SqliteSnapshotStoreOptions.js +31 -0
- package/dist/persistence/snapshot-stores/SqliteSnapshotStoreOptions.js.map +1 -0
- package/dist/runtime/http/BunHonoRunner.d.ts +7 -1
- package/dist/runtime/http/BunHonoRunner.d.ts.map +1 -1
- package/dist/runtime/http/BunHonoRunner.js +22 -0
- package/dist/runtime/http/BunHonoRunner.js.map +1 -1
- package/dist/runtime/http/DenoHonoRunner.d.ts +5 -2
- package/dist/runtime/http/DenoHonoRunner.d.ts.map +1 -1
- package/dist/runtime/http/DenoHonoRunner.js +19 -2
- package/dist/runtime/http/DenoHonoRunner.js.map +1 -1
- package/dist/runtime/http/HonoServerRunner.d.ts +39 -0
- package/dist/runtime/http/HonoServerRunner.d.ts.map +1 -1
- package/dist/runtime/http/NodeHonoRunner.d.ts +3 -1
- package/dist/runtime/http/NodeHonoRunner.d.ts.map +1 -1
- package/dist/runtime/http/NodeHonoRunner.js +22 -0
- package/dist/runtime/http/NodeHonoRunner.js.map +1 -1
- package/dist/runtime/http/index.d.ts +1 -1
- package/dist/runtime/http/index.d.ts.map +1 -1
- package/dist/runtime/http/index.js.map +1 -1
- package/dist/testkit/ManualScheduler.d.ts +2 -1
- package/dist/testkit/ManualScheduler.d.ts.map +1 -1
- package/dist/testkit/ManualScheduler.js +2 -1
- package/dist/testkit/ManualScheduler.js.map +1 -1
- package/dist/testkit/MockCluster.d.ts +74 -0
- package/dist/testkit/MockCluster.d.ts.map +1 -0
- package/dist/testkit/MockCluster.js +163 -0
- package/dist/testkit/MockCluster.js.map +1 -0
- package/dist/testkit/MultiNodeClusterFixture.d.ts +62 -0
- package/dist/testkit/MultiNodeClusterFixture.d.ts.map +1 -0
- package/dist/testkit/MultiNodeClusterFixture.js +43 -0
- package/dist/testkit/MultiNodeClusterFixture.js.map +1 -0
- package/dist/testkit/MultiNodeSpec.d.ts +45 -3
- package/dist/testkit/MultiNodeSpec.d.ts.map +1 -1
- package/dist/testkit/MultiNodeSpec.js +108 -14
- package/dist/testkit/MultiNodeSpec.js.map +1 -1
- package/dist/testkit/ParallelMultiNodeSpec.d.ts +12 -2
- package/dist/testkit/ParallelMultiNodeSpec.d.ts.map +1 -1
- package/dist/testkit/ParallelMultiNodeSpec.js +49 -4
- package/dist/testkit/ParallelMultiNodeSpec.js.map +1 -1
- package/dist/testkit/SnapshotMigrationTest.d.ts +86 -0
- package/dist/testkit/SnapshotMigrationTest.d.ts.map +1 -0
- package/dist/testkit/SnapshotMigrationTest.js +77 -0
- package/dist/testkit/SnapshotMigrationTest.js.map +1 -0
- package/dist/testkit/TestKit.d.ts +6 -8
- package/dist/testkit/TestKit.d.ts.map +1 -1
- package/dist/testkit/TestKit.js +10 -6
- package/dist/testkit/TestKit.js.map +1 -1
- package/dist/testkit/TestKitOptions.d.ts +26 -0
- package/dist/testkit/TestKitOptions.d.ts.map +1 -0
- package/dist/testkit/TestKitOptions.js +19 -0
- package/dist/testkit/TestKitOptions.js.map +1 -0
- package/dist/testkit/TestProbe.d.ts +2 -7
- package/dist/testkit/TestProbe.d.ts.map +1 -1
- package/dist/testkit/TestProbe.js +2 -1
- package/dist/testkit/TestProbe.js.map +1 -1
- package/dist/testkit/TestProbeOptions.d.ts +26 -0
- package/dist/testkit/TestProbeOptions.d.ts.map +1 -0
- package/dist/testkit/TestProbeOptions.js +19 -0
- package/dist/testkit/TestProbeOptions.js.map +1 -0
- package/dist/testkit/index.d.ts +10 -2
- package/dist/testkit/index.d.ts.map +1 -1
- package/dist/testkit/index.js +5 -0
- package/dist/testkit/index.js.map +1 -1
- package/dist/testkit/internal/parallel-multi-node-bootstrap.d.ts.map +1 -1
- package/dist/testkit/internal/parallel-multi-node-bootstrap.js +16 -12
- package/dist/testkit/internal/parallel-multi-node-bootstrap.js.map +1 -1
- package/dist/tracing/OtelAdapter.d.ts +4 -12
- package/dist/tracing/OtelAdapter.d.ts.map +1 -1
- package/dist/tracing/OtelAdapter.js +4 -2
- package/dist/tracing/OtelAdapter.js.map +1 -1
- package/dist/tracing/OtelAdapterOptions.d.ts +42 -0
- package/dist/tracing/OtelAdapterOptions.d.ts.map +1 -0
- package/dist/tracing/OtelAdapterOptions.js +34 -0
- package/dist/tracing/OtelAdapterOptions.js.map +1 -0
- package/dist/tracing/OtelLogsAdapter.d.ts +100 -0
- package/dist/tracing/OtelLogsAdapter.d.ts.map +1 -0
- package/dist/tracing/OtelLogsAdapter.js +130 -0
- package/dist/tracing/OtelLogsAdapter.js.map +1 -0
- package/dist/tracing/index.d.ts +5 -1
- package/dist/tracing/index.d.ts.map +1 -1
- package/dist/tracing/index.js +2 -0
- package/dist/tracing/index.js.map +1 -1
- package/dist/util/Constants.d.ts +23 -0
- package/dist/util/Constants.d.ts.map +1 -1
- package/dist/util/Constants.js +23 -0
- package/dist/util/Constants.js.map +1 -1
- package/dist/util/Lazy.d.ts +31 -0
- package/dist/util/Lazy.d.ts.map +1 -1
- package/dist/util/Lazy.js +70 -0
- package/dist/util/Lazy.js.map +1 -1
- package/dist/util/OptionsBuilder.d.ts +48 -0
- package/dist/util/OptionsBuilder.d.ts.map +1 -0
- package/dist/util/OptionsBuilder.js +53 -0
- package/dist/util/OptionsBuilder.js.map +1 -0
- package/dist/worker/WorkerCluster.d.ts +2 -11
- package/dist/worker/WorkerCluster.d.ts.map +1 -1
- package/dist/worker/WorkerCluster.js +2 -1
- package/dist/worker/WorkerCluster.js.map +1 -1
- package/dist/worker/WorkerClusterOptions.d.ts +55 -0
- package/dist/worker/WorkerClusterOptions.d.ts.map +1 -0
- package/dist/worker/WorkerClusterOptions.js +55 -0
- package/dist/worker/WorkerClusterOptions.js.map +1 -0
- package/dist/worker/index.d.ts +3 -1
- package/dist/worker/index.d.ts.map +1 -1
- package/dist/worker/index.js +1 -0
- package/dist/worker/index.js.map +1 -1
- package/package.json +56 -13
- package/dist/io/broker/ServerWebSocketActor.d.ts +0 -109
- package/dist/io/broker/ServerWebSocketActor.d.ts.map +0 -1
- package/dist/io/broker/ServerWebSocketActor.js +0 -128
- package/dist/io/broker/ServerWebSocketActor.js.map +0 -1
- package/dist/io/broker/WebSocketActor.d.ts +0 -77
- package/dist/io/broker/WebSocketActor.d.ts.map +0 -1
- package/dist/io/broker/WebSocketActor.js +0 -217
- package/dist/io/broker/WebSocketActor.js.map +0 -1
- package/dist/io/broker/WebSocketServerAdapters.d.ts +0 -140
- package/dist/io/broker/WebSocketServerAdapters.d.ts.map +0 -1
- package/dist/io/broker/WebSocketServerAdapters.js +0 -155
- package/dist/io/broker/WebSocketServerAdapters.js.map +0 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { SqliteDriver } from '../../runtime/sqlite/index.js';
|
|
2
|
+
import { OptionsBuilder } from '../../util/OptionsBuilder.js';
|
|
3
|
+
export interface SqliteJournalOptionsType {
|
|
4
|
+
/** File path (absolute or relative) or ":memory:" for an ephemeral DB. */
|
|
5
|
+
readonly path?: string;
|
|
6
|
+
/** Table name for events. Default: `events`. */
|
|
7
|
+
readonly eventsTable?: string;
|
|
8
|
+
/** If true, opens the DB with WAL mode enabled. */
|
|
9
|
+
readonly wal?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Explicit driver — useful for tests or when you want to pin a
|
|
12
|
+
* specific SQLite backend. Default: auto-detect via `getSqliteDriver()`
|
|
13
|
+
* (Bun → `bun:sqlite`, Node → `better-sqlite3`).
|
|
14
|
+
*/
|
|
15
|
+
readonly driver?: SqliteDriver;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Fluent builder for {@link SqliteJournalOptionsType}:
|
|
19
|
+
*
|
|
20
|
+
* new SqliteJournal(SqliteJournalOptions.create().withPath(':memory:').withWal(true))
|
|
21
|
+
*/
|
|
22
|
+
export declare class SqliteJournalOptionsBuilder extends OptionsBuilder<SqliteJournalOptionsType> {
|
|
23
|
+
/** Start a fresh builder. Equivalent to `new SqliteJournalOptionsBuilder()`. */
|
|
24
|
+
static create(): SqliteJournalOptionsBuilder;
|
|
25
|
+
/** File path (absolute or relative) or ":memory:" for an ephemeral DB. */
|
|
26
|
+
withPath(path: string): this;
|
|
27
|
+
/** Table name for events. Default: `events`. */
|
|
28
|
+
withEventsTable(eventsTable: string): this;
|
|
29
|
+
/** If true, opens the DB with WAL mode enabled. */
|
|
30
|
+
withWal(wal?: boolean): this;
|
|
31
|
+
/** Explicit driver — pin a specific SQLite backend (defaults to auto-detect). */
|
|
32
|
+
withDriver(driver: SqliteDriver): this;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Accepted input for any SQLite-journal constructor: the fluent
|
|
36
|
+
* {@link SqliteJournalOptionsBuilder} OR a plain {@link SqliteJournalOptionsType} object.
|
|
37
|
+
*/
|
|
38
|
+
export type SqliteJournalOptions = SqliteJournalOptionsBuilder | Partial<SqliteJournalOptionsType>;
|
|
39
|
+
/** Value alias so `SqliteJournalOptions.create()` / `new SqliteJournalOptions()` resolve to the builder. */
|
|
40
|
+
export declare const SqliteJournalOptions: typeof SqliteJournalOptionsBuilder;
|
|
41
|
+
//# sourceMappingURL=SqliteJournalOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SqliteJournalOptions.d.ts","sourceRoot":"","sources":["../../../src/persistence/journals/SqliteJournalOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED;;;;GAIG;AACH,qBAAa,2BAA4B,SAAQ,cAAc,CAAC,wBAAwB,CAAC;IACvF,iFAAiF;IACjF,MAAM,CAAC,MAAM,IAAI,2BAA2B;IAI5C,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5B,iDAAiD;IACjD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI1C,mDAAmD;IACnD,OAAO,CAAC,GAAG,UAAO,GAAG,IAAI;IAIzB,iFAAiF;IACjF,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;CAGvC;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,2BAA2B,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AACnG,4GAA4G;AAC5G,eAAO,MAAM,oBAAoB,oCAA8B,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { OptionsBuilder } from '../../util/OptionsBuilder.js';
|
|
2
|
+
/**
|
|
3
|
+
* Fluent builder for {@link SqliteJournalOptionsType}:
|
|
4
|
+
*
|
|
5
|
+
* new SqliteJournal(SqliteJournalOptions.create().withPath(':memory:').withWal(true))
|
|
6
|
+
*/
|
|
7
|
+
export class SqliteJournalOptionsBuilder extends OptionsBuilder {
|
|
8
|
+
/** Start a fresh builder. Equivalent to `new SqliteJournalOptionsBuilder()`. */
|
|
9
|
+
static create() {
|
|
10
|
+
return new SqliteJournalOptionsBuilder();
|
|
11
|
+
}
|
|
12
|
+
/** File path (absolute or relative) or ":memory:" for an ephemeral DB. */
|
|
13
|
+
withPath(path) {
|
|
14
|
+
return this.set('path', path);
|
|
15
|
+
}
|
|
16
|
+
/** Table name for events. Default: `events`. */
|
|
17
|
+
withEventsTable(eventsTable) {
|
|
18
|
+
return this.set('eventsTable', eventsTable);
|
|
19
|
+
}
|
|
20
|
+
/** If true, opens the DB with WAL mode enabled. */
|
|
21
|
+
withWal(wal = true) {
|
|
22
|
+
return this.set('wal', wal);
|
|
23
|
+
}
|
|
24
|
+
/** Explicit driver — pin a specific SQLite backend (defaults to auto-detect). */
|
|
25
|
+
withDriver(driver) {
|
|
26
|
+
return this.set('driver', driver);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/** Value alias so `SqliteJournalOptions.create()` / `new SqliteJournalOptions()` resolve to the builder. */
|
|
30
|
+
export const SqliteJournalOptions = SqliteJournalOptionsBuilder;
|
|
31
|
+
//# sourceMappingURL=SqliteJournalOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SqliteJournalOptions.js","sourceRoot":"","sources":["../../../src/persistence/journals/SqliteJournalOptions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAiB9D;;;;GAIG;AACH,MAAM,OAAO,2BAA4B,SAAQ,cAAwC;IACvF,iFAAiF;IACjF,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,2BAA2B,EAAE,CAAC;IAC3C,CAAC;IAED,0EAA0E;IAC1E,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,iDAAiD;IACjD,eAAe,CAAC,WAAmB;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,mDAAmD;IACnD,OAAO,CAAC,GAAG,GAAG,IAAI;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,iFAAiF;IACjF,UAAU,CAAC,MAAoB;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;CACF;AAOD,4GAA4G;AAC5G,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC"}
|
|
@@ -6,11 +6,16 @@ import { type CompressionAlgo } from './Compression.js';
|
|
|
6
6
|
* Byte 4 : flags bit0..1 = compression: 0=none, 1=gzip, 2=zstd
|
|
7
7
|
* bit2 = encrypted
|
|
8
8
|
* bit3 = key-versioned (#8 — master-key rotation)
|
|
9
|
+
* bit4 = integrity HMAC tag appended (#116)
|
|
9
10
|
* Byte 5 : keyVersion (0..255) — only when bit3 set
|
|
10
11
|
* Bytes ... : AES-GCM IV (12 bytes — only when bit2 set, immediately
|
|
11
12
|
* after the keyVersion byte if present, else
|
|
12
13
|
* immediately after flags)
|
|
13
14
|
* Bytes ... : payload (compressed/encrypted JSON)
|
|
15
|
+
* Bytes ... : HMAC tag (16 bytes — only when bit4 set, suffixed
|
|
16
|
+
* after the payload; HMAC covers every
|
|
17
|
+
* byte BEFORE the tag, including the
|
|
18
|
+
* manifest header)
|
|
14
19
|
*
|
|
15
20
|
* A size-conservative header (5 bytes for unencrypted; 17 for encrypted
|
|
16
21
|
* legacy / 18 for encrypted with explicit version) keeps small snapshots
|
|
@@ -23,6 +28,11 @@ import { type CompressionAlgo } from './Compression.js';
|
|
|
23
28
|
* decoder treats them as version 0, which transparently maps to either
|
|
24
29
|
* the legacy single-key `masterKey` config or `masterKeys.active.version
|
|
25
30
|
* === 0`. Mixing old and new bodies in one bucket is therefore safe.
|
|
31
|
+
*
|
|
32
|
+
* Same back-compat story for integrity (#116): bodies written before
|
|
33
|
+
* bit4 landed have it unset and decode without an HMAC check. Callers
|
|
34
|
+
* who want to refuse legacy bodies after a migration can pass
|
|
35
|
+
* `requireIntegrity: true` on decode to enforce.
|
|
26
36
|
*/
|
|
27
37
|
export declare const ATS1_MAGIC: Uint8Array<ArrayBuffer>;
|
|
28
38
|
export declare const COMPRESSION_NONE = 0;
|
|
@@ -31,8 +41,17 @@ export declare const COMPRESSION_ZSTD = 2;
|
|
|
31
41
|
export declare const FLAG_ENCRYPTED = 4;
|
|
32
42
|
/** When set with FLAG_ENCRYPTED, the byte after `flags` is a 0..255 key version. */
|
|
33
43
|
export declare const FLAG_KEY_VERSIONED = 8;
|
|
44
|
+
/** When set, the last {@link HMAC_TAG_LENGTH} bytes are an HMAC-SHA256 over the rest. */
|
|
45
|
+
export declare const FLAG_INTEGRITY_HMAC = 16;
|
|
34
46
|
export interface EncodeOptions {
|
|
35
47
|
readonly compression?: CompressionAlgo;
|
|
48
|
+
/**
|
|
49
|
+
* Algorithm-specific compression level (gzip 0–9, zstd 1–22) passed
|
|
50
|
+
* through to the compressor. Out-of-range values are clamped;
|
|
51
|
+
* `undefined` uses the impl default. Not recorded on the wire — the
|
|
52
|
+
* manifest stores only the algorithm, and decode never needs the level.
|
|
53
|
+
*/
|
|
54
|
+
readonly compressionLevel?: number;
|
|
36
55
|
/**
|
|
37
56
|
* When set, the body is encrypted with AES-256-GCM using the supplied
|
|
38
57
|
* 32-byte subkey (typically derived per-pid via HKDF — see
|
|
@@ -49,6 +68,18 @@ export interface EncodeOptions {
|
|
|
49
68
|
readonly subKey: Uint8Array;
|
|
50
69
|
readonly keyVersion?: number;
|
|
51
70
|
};
|
|
71
|
+
/**
|
|
72
|
+
* Opt-in HMAC-SHA256 integrity (#116). When set, the codec computes
|
|
73
|
+
* an HMAC over the framed body (everything up to the tag) and appends
|
|
74
|
+
* the truncated 16-byte tag. `FLAG_INTEGRITY_HMAC` is set in the
|
|
75
|
+
* manifest. Encrypted bodies don't need this for confidentiality
|
|
76
|
+
* (AES-GCM's auth tag already covers ciphertext), but it ties the
|
|
77
|
+
* manifest bytes to the body — useful as defense-in-depth against
|
|
78
|
+
* a manifest-flip attack.
|
|
79
|
+
*/
|
|
80
|
+
readonly integrity?: {
|
|
81
|
+
readonly integrityKey: Uint8Array;
|
|
82
|
+
};
|
|
52
83
|
}
|
|
53
84
|
/**
|
|
54
85
|
* Subkey resolver — given the version byte the manifest carries, return
|
|
@@ -70,6 +101,18 @@ export interface DecodeOptions {
|
|
|
70
101
|
} | {
|
|
71
102
|
readonly subKeyFor: SubKeyResolver;
|
|
72
103
|
};
|
|
104
|
+
/**
|
|
105
|
+
* When the manifest carries `FLAG_INTEGRITY_HMAC`, the codec verifies
|
|
106
|
+
* the appended HMAC tag against this key. Mismatch throws — body
|
|
107
|
+
* has been tampered. Setting `requireIntegrity: true` AND providing
|
|
108
|
+
* a key forces the codec to also REJECT bodies that DON'T carry the
|
|
109
|
+
* flag (use after a migration to ensure no legacy/unprotected
|
|
110
|
+
* bodies slip through).
|
|
111
|
+
*/
|
|
112
|
+
readonly integrity?: {
|
|
113
|
+
readonly integrityKey: Uint8Array;
|
|
114
|
+
readonly requireIntegrity?: boolean;
|
|
115
|
+
};
|
|
73
116
|
}
|
|
74
117
|
export interface DecodedBody {
|
|
75
118
|
readonly compression: CompressionAlgo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BodyCodec.d.ts","sourceRoot":"","sources":["../../../src/persistence/object-storage/BodyCodec.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"BodyCodec.d.ts","sourceRoot":"","sources":["../../../src/persistence/object-storage/BodyCodec.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,eAAO,MAAM,UAAU,yBAA2C,CAAC;AAEnE,eAAO,MAAM,gBAAgB,IAAO,CAAC;AACrC,eAAO,MAAM,gBAAgB,IAAO,CAAC;AACrC,eAAO,MAAM,gBAAgB,IAAO,CAAC;AACrC,eAAO,MAAM,cAAc,IAAQ,CAAC;AACpC,oFAAoF;AACpF,eAAO,MAAM,kBAAkB,IAAS,CAAC;AACzC,yFAAyF;AACzF,eAAO,MAAM,mBAAmB,KAAU,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpF;;;;;;;;OAQG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAA;KAAE,CAAC;CAC5D;AAED;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;AAEhF,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAChB;QAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;KAAE,GAC/B;QAAE,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;KAAE,CAAC;IAC3C;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;QAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;KACrC,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAwDrG;AAED,8EAA8E;AAC9E,wBAAsB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CA8FnG"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { match } from 'ts-pattern';
|
|
2
2
|
import { compressorFor } from './Compression.js';
|
|
3
3
|
import { aesGcmDecrypt, aesGcmEncrypt, IV_LENGTH, randomIv } from './Encryption.js';
|
|
4
|
+
import { constantTimeEqual, HMAC_TAG_LENGTH, hmacSha256 } from './Integrity.js';
|
|
4
5
|
/**
|
|
5
6
|
* Wire-format for snapshot / durable-state bodies stored in object storage.
|
|
6
7
|
*
|
|
@@ -8,11 +9,16 @@ import { aesGcmDecrypt, aesGcmEncrypt, IV_LENGTH, randomIv } from './Encryption.
|
|
|
8
9
|
* Byte 4 : flags bit0..1 = compression: 0=none, 1=gzip, 2=zstd
|
|
9
10
|
* bit2 = encrypted
|
|
10
11
|
* bit3 = key-versioned (#8 — master-key rotation)
|
|
12
|
+
* bit4 = integrity HMAC tag appended (#116)
|
|
11
13
|
* Byte 5 : keyVersion (0..255) — only when bit3 set
|
|
12
14
|
* Bytes ... : AES-GCM IV (12 bytes — only when bit2 set, immediately
|
|
13
15
|
* after the keyVersion byte if present, else
|
|
14
16
|
* immediately after flags)
|
|
15
17
|
* Bytes ... : payload (compressed/encrypted JSON)
|
|
18
|
+
* Bytes ... : HMAC tag (16 bytes — only when bit4 set, suffixed
|
|
19
|
+
* after the payload; HMAC covers every
|
|
20
|
+
* byte BEFORE the tag, including the
|
|
21
|
+
* manifest header)
|
|
16
22
|
*
|
|
17
23
|
* A size-conservative header (5 bytes for unencrypted; 17 for encrypted
|
|
18
24
|
* legacy / 18 for encrypted with explicit version) keeps small snapshots
|
|
@@ -25,6 +31,11 @@ import { aesGcmDecrypt, aesGcmEncrypt, IV_LENGTH, randomIv } from './Encryption.
|
|
|
25
31
|
* decoder treats them as version 0, which transparently maps to either
|
|
26
32
|
* the legacy single-key `masterKey` config or `masterKeys.active.version
|
|
27
33
|
* === 0`. Mixing old and new bodies in one bucket is therefore safe.
|
|
34
|
+
*
|
|
35
|
+
* Same back-compat story for integrity (#116): bodies written before
|
|
36
|
+
* bit4 landed have it unset and decode without an HMAC check. Callers
|
|
37
|
+
* who want to refuse legacy bodies after a migration can pass
|
|
38
|
+
* `requireIntegrity: true` on decode to enforce.
|
|
28
39
|
*/
|
|
29
40
|
export const ATS1_MAGIC = new Uint8Array([0x41, 0x54, 0x53, 0x31]); // "ATS1"
|
|
30
41
|
export const COMPRESSION_NONE = 0b00;
|
|
@@ -33,6 +44,8 @@ export const COMPRESSION_ZSTD = 0b10;
|
|
|
33
44
|
export const FLAG_ENCRYPTED = 0b100;
|
|
34
45
|
/** When set with FLAG_ENCRYPTED, the byte after `flags` is a 0..255 key version. */
|
|
35
46
|
export const FLAG_KEY_VERSIONED = 0b1000;
|
|
47
|
+
/** When set, the last {@link HMAC_TAG_LENGTH} bytes are an HMAC-SHA256 over the rest. */
|
|
48
|
+
export const FLAG_INTEGRITY_HMAC = 0b10000;
|
|
36
49
|
/**
|
|
37
50
|
* Encode a JSON-stringified payload with the framing above. Returns a
|
|
38
51
|
* fresh `Uint8Array` ready to ship to the backend.
|
|
@@ -41,12 +54,14 @@ export async function encodeBody(jsonBytes, opts = {}) {
|
|
|
41
54
|
const algo = opts.compression ?? 'none';
|
|
42
55
|
const subKey = opts.encryption?.subKey;
|
|
43
56
|
const keyVersion = opts.encryption?.keyVersion;
|
|
57
|
+
const integrityKey = opts.integrity?.integrityKey;
|
|
44
58
|
// Step 1: compress (if requested). Encryption-after-compression
|
|
45
59
|
// because compression-after-encryption would defeat compression
|
|
46
60
|
// (ciphertext is high-entropy) AND it's the order that protects
|
|
47
61
|
// against CRIME-style side channels.
|
|
48
|
-
const compressed = await compressorFor(algo).compress(jsonBytes);
|
|
62
|
+
const compressed = await compressorFor(algo).compress(jsonBytes, opts.compressionLevel);
|
|
49
63
|
// Step 2: encrypt (if requested). IV goes into the manifest.
|
|
64
|
+
let bodyBeforeIntegrity;
|
|
50
65
|
if (subKey) {
|
|
51
66
|
if (keyVersion !== undefined) {
|
|
52
67
|
if (!Number.isInteger(keyVersion) || keyVersion < 0 || keyVersion > 255) {
|
|
@@ -59,27 +74,42 @@ export async function encodeBody(jsonBytes, opts = {}) {
|
|
|
59
74
|
let flags = encodeCompression(algo) | FLAG_ENCRYPTED;
|
|
60
75
|
if (versioned)
|
|
61
76
|
flags |= FLAG_KEY_VERSIONED;
|
|
77
|
+
if (integrityKey)
|
|
78
|
+
flags |= FLAG_INTEGRITY_HMAC;
|
|
62
79
|
const headerLen = ATS1_MAGIC.length + 1 + (versioned ? 1 : 0) + IV_LENGTH;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
80
|
+
bodyBeforeIntegrity = new Uint8Array(headerLen + ciphertext.length);
|
|
81
|
+
bodyBeforeIntegrity.set(ATS1_MAGIC, 0);
|
|
82
|
+
bodyBeforeIntegrity[4] = flags;
|
|
66
83
|
let offset = 5;
|
|
67
84
|
if (versioned) {
|
|
68
|
-
|
|
85
|
+
bodyBeforeIntegrity[offset] = keyVersion;
|
|
69
86
|
offset += 1;
|
|
70
87
|
}
|
|
71
|
-
|
|
88
|
+
bodyBeforeIntegrity.set(iv, offset);
|
|
72
89
|
offset += IV_LENGTH;
|
|
73
|
-
|
|
90
|
+
bodyBeforeIntegrity.set(ciphertext, offset);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
// Step 3 (no encryption): build the plain framed body.
|
|
94
|
+
let flags = encodeCompression(algo);
|
|
95
|
+
if (integrityKey)
|
|
96
|
+
flags |= FLAG_INTEGRITY_HMAC;
|
|
97
|
+
bodyBeforeIntegrity = new Uint8Array(ATS1_MAGIC.length + 1 + compressed.length);
|
|
98
|
+
bodyBeforeIntegrity.set(ATS1_MAGIC, 0);
|
|
99
|
+
bodyBeforeIntegrity[4] = flags;
|
|
100
|
+
bodyBeforeIntegrity.set(compressed, 5);
|
|
101
|
+
}
|
|
102
|
+
// Step 4 (optional): append the HMAC-SHA256 integrity tag (#116).
|
|
103
|
+
// Covers the manifest header + payload — any tampering of either
|
|
104
|
+
// invalidates the tag.
|
|
105
|
+
if (integrityKey) {
|
|
106
|
+
const tag = await hmacSha256(integrityKey, bodyBeforeIntegrity);
|
|
107
|
+
const out = new Uint8Array(bodyBeforeIntegrity.length + tag.length);
|
|
108
|
+
out.set(bodyBeforeIntegrity, 0);
|
|
109
|
+
out.set(tag, bodyBeforeIntegrity.length);
|
|
74
110
|
return out;
|
|
75
111
|
}
|
|
76
|
-
|
|
77
|
-
const flags = encodeCompression(algo);
|
|
78
|
-
const out = new Uint8Array(ATS1_MAGIC.length + 1 + compressed.length);
|
|
79
|
-
out.set(ATS1_MAGIC, 0);
|
|
80
|
-
out[4] = flags;
|
|
81
|
-
out.set(compressed, 5);
|
|
82
|
-
return out;
|
|
112
|
+
return bodyBeforeIntegrity;
|
|
83
113
|
}
|
|
84
114
|
/** Decode a body produced by `encodeBody` back into the plaintext payload. */
|
|
85
115
|
export async function decodeBody(framed, opts = {}) {
|
|
@@ -90,6 +120,34 @@ export async function decodeBody(framed, opts = {}) {
|
|
|
90
120
|
const compression = decodeCompression(flags);
|
|
91
121
|
const encrypted = (flags & FLAG_ENCRYPTED) !== 0;
|
|
92
122
|
const versioned = (flags & FLAG_KEY_VERSIONED) !== 0;
|
|
123
|
+
const hasIntegrity = (flags & FLAG_INTEGRITY_HMAC) !== 0;
|
|
124
|
+
// Integrity check FIRST — before we trust any other manifest byte
|
|
125
|
+
// beyond `flags` (which we already used to know the tag is there).
|
|
126
|
+
// The HMAC tag is the last 16 bytes; verifying it proves the rest of
|
|
127
|
+
// the body wasn't tampered with, including bytes the decode path
|
|
128
|
+
// hasn't even read yet (#116).
|
|
129
|
+
let bodyForRest = framed;
|
|
130
|
+
if (hasIntegrity) {
|
|
131
|
+
if (framed.length < 5 + HMAC_TAG_LENGTH) {
|
|
132
|
+
throw new Error('BodyCodec: integrity-tagged body is shorter than the HMAC tag requires.');
|
|
133
|
+
}
|
|
134
|
+
if (!opts.integrity?.integrityKey) {
|
|
135
|
+
throw new Error('BodyCodec: body carries FLAG_INTEGRITY_HMAC but no integrityKey was supplied for decoding.');
|
|
136
|
+
}
|
|
137
|
+
const sigOffset = framed.length - HMAC_TAG_LENGTH;
|
|
138
|
+
const expected = framed.subarray(sigOffset);
|
|
139
|
+
const signed = framed.subarray(0, sigOffset);
|
|
140
|
+
const actual = await hmacSha256(opts.integrity.integrityKey, signed);
|
|
141
|
+
if (!constantTimeEqual(actual, expected)) {
|
|
142
|
+
throw new Error('BodyCodec: integrity check failed — body tampered or wrong integrity key.');
|
|
143
|
+
}
|
|
144
|
+
bodyForRest = signed;
|
|
145
|
+
}
|
|
146
|
+
else if (opts.integrity?.requireIntegrity) {
|
|
147
|
+
throw new Error('BodyCodec: body has no integrity tag but requireIntegrity=true was set. '
|
|
148
|
+
+ 'Body was either written before integrity was enabled, or is being injected '
|
|
149
|
+
+ 'as part of a downgrade attack.');
|
|
150
|
+
}
|
|
93
151
|
let payload;
|
|
94
152
|
let keyVersion;
|
|
95
153
|
if (encrypted) {
|
|
@@ -98,17 +156,17 @@ export async function decodeBody(framed, opts = {}) {
|
|
|
98
156
|
}
|
|
99
157
|
let offset = 5;
|
|
100
158
|
if (versioned) {
|
|
101
|
-
if (
|
|
159
|
+
if (bodyForRest.length < 6) {
|
|
102
160
|
throw new Error('BodyCodec: encrypted body claims key-versioned but is shorter than the version byte requires.');
|
|
103
161
|
}
|
|
104
|
-
keyVersion =
|
|
162
|
+
keyVersion = bodyForRest[5];
|
|
105
163
|
offset = 6;
|
|
106
164
|
}
|
|
107
|
-
if (
|
|
165
|
+
if (bodyForRest.length < offset + IV_LENGTH) {
|
|
108
166
|
throw new Error('BodyCodec: encrypted body is shorter than the manifest IV requires.');
|
|
109
167
|
}
|
|
110
|
-
const iv =
|
|
111
|
-
const ciphertext =
|
|
168
|
+
const iv = bodyForRest.subarray(offset, offset + IV_LENGTH);
|
|
169
|
+
const ciphertext = bodyForRest.subarray(offset + IV_LENGTH);
|
|
112
170
|
// Resolve the subkey: prefer the resolver path (versioned), fall
|
|
113
171
|
// back to the legacy single-subkey field. An unversioned body
|
|
114
172
|
// dispatched against a resolver is treated as version 0 — that's
|
|
@@ -129,7 +187,7 @@ export async function decodeBody(framed, opts = {}) {
|
|
|
129
187
|
payload = await compressorFor(compression).decompress(compressedPlaintext);
|
|
130
188
|
}
|
|
131
189
|
else {
|
|
132
|
-
const compressedSlice =
|
|
190
|
+
const compressedSlice = bodyForRest.subarray(5);
|
|
133
191
|
payload = await compressorFor(compression).decompress(compressedSlice);
|
|
134
192
|
}
|
|
135
193
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BodyCodec.js","sourceRoot":"","sources":["../../../src/persistence/object-storage/BodyCodec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAwB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"BodyCodec.js","sourceRoot":"","sources":["../../../src/persistence/object-storage/BodyCodec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Per-
|
|
2
|
+
* Per-body compression. Three modes:
|
|
3
3
|
* - `none` — store raw bytes. Right choice for already-compressed payloads
|
|
4
4
|
* or very small ones where overhead beats savings.
|
|
5
5
|
* - `gzip` — `node:zlib` everywhere (Bun, Node, Deno). No extra deps.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* Optional level 0–9 (default 6).
|
|
7
|
+
* - `zstd` — preferred for large state blobs. Optional level 1–22
|
|
8
|
+
* (default 3).
|
|
9
|
+
*
|
|
10
|
+
* Runtime support differs by DIRECTION:
|
|
11
|
+
* - COMPRESS (write): native only — Bun (`Bun.zstdCompressSync`) or
|
|
12
|
+
* Node ≥22.15 (`zlib.zstdCompressSync`). There is NO pure-JS
|
|
13
|
+
* fallback for writing: `fzstd` is decompress-only (it exposes no
|
|
14
|
+
* `compress`). Selecting `zstd` on a runtime without native support
|
|
15
|
+
* throws a clear error — eagerly at plugin-init via
|
|
16
|
+
* `probeCompressionAvailability`, not cryptically on first write.
|
|
17
|
+
* - DECOMPRESS (read): native first, then the optional `fzstd` peer-dep
|
|
18
|
+
* so a non-native runtime can still READ zstd bodies written
|
|
19
|
+
* elsewhere. `fzstd` caps the back-reference window at 2^25 (32 MB)
|
|
20
|
+
* and may reject ultra-level (≥20) frames.
|
|
21
|
+
*
|
|
22
|
+
* The level is an encoder-only setting — it never travels on the wire and
|
|
23
|
+
* decompression doesn't need it, so changing it requires no migration.
|
|
11
24
|
*/
|
|
12
25
|
export type CompressionAlgo = 'none' | 'gzip' | 'zstd';
|
|
13
26
|
export interface Compressor {
|
|
14
|
-
|
|
27
|
+
/** `level` is algorithm-specific and clamped; `undefined` → impl default. Ignored by `none`. */
|
|
28
|
+
compress(input: Uint8Array, level?: number): Promise<Uint8Array>;
|
|
15
29
|
decompress(input: Uint8Array): Promise<Uint8Array>;
|
|
16
30
|
}
|
|
17
31
|
/** Get a `Compressor` for the requested algorithm. Cached per-algorithm. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Compression.d.ts","sourceRoot":"","sources":["../../../src/persistence/object-storage/Compression.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"Compression.d.ts","sourceRoot":"","sources":["../../../src/persistence/object-storage/Compression.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,UAAU;IACzB,iGAAiG;IACjG,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACjE,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACpD;AAoID,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,UAAU,CAO/D;AAED;;;;;;;;GAQG;AACH,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAWvF;AAED,qDAAqD;AACrD,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C"}
|
|
@@ -5,61 +5,87 @@ const gzipLazy = Lazy.of(async () => {
|
|
|
5
5
|
const name = 'node:zlib';
|
|
6
6
|
const zlib = (await import(name));
|
|
7
7
|
return {
|
|
8
|
-
gzip: async (input) => zlib.gzipSync(input),
|
|
8
|
+
gzip: async (input, level) => zlib.gzipSync(input, level !== undefined ? { level: clampGzipLevel(level) } : undefined),
|
|
9
9
|
gunzip: async (input) => zlib.gunzipSync(input),
|
|
10
10
|
};
|
|
11
11
|
});
|
|
12
12
|
const gzipCompressor = {
|
|
13
|
-
async compress(input) { return (await gzipLazy.get()).gzip(input); },
|
|
13
|
+
async compress(input, level) { return (await gzipLazy.get()).gzip(input, level); },
|
|
14
14
|
async decompress(input) { return (await gzipLazy.get()).gunzip(input); },
|
|
15
15
|
};
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
/**
|
|
17
|
+
* zstd COMPRESS resolution — native only. Bun (`Bun.zstdCompressSync`)
|
|
18
|
+
* then Node ≥22.15 (`zlib.zstdCompressSync`). Deliberately NO `fzstd`
|
|
19
|
+
* fallback: fzstd is decompress-only (exposes no `compress`), so a
|
|
20
|
+
* runtime without native zstd cannot WRITE zstd — we throw a clear error
|
|
21
|
+
* here instead of the cryptic `fzstd.compress is not a function` the
|
|
22
|
+
* combined resolver used to produce on first write.
|
|
23
|
+
*
|
|
24
|
+
* Level spelling differs by runtime — Bun takes `{ level }`, Node takes
|
|
25
|
+
* `{ params: { [ZSTD_c_compressionLevel]: N } }` — but the 1..22 scale
|
|
26
|
+
* (default 3) is the same.
|
|
27
|
+
*/
|
|
28
|
+
const zstdCompressLazy = Lazy.of(async () => {
|
|
18
29
|
const bun = globalThis.Bun;
|
|
19
|
-
if (bun?.zstdCompressSync
|
|
30
|
+
if (bun?.zstdCompressSync) {
|
|
20
31
|
const compressFn = bun.zstdCompressSync;
|
|
21
|
-
|
|
22
|
-
return {
|
|
23
|
-
compress: async (i) => compressFn(i),
|
|
24
|
-
decompress: async (i) => decompressFn(i),
|
|
25
|
-
source: 'bun-native',
|
|
26
|
-
};
|
|
32
|
+
return async (i, level) => compressFn(i, level !== undefined ? { level: clampZstdLevel(level) } : undefined);
|
|
27
33
|
}
|
|
28
|
-
// 2. Node 22.15+: `zlib.zstdCompressSync` / `zstdDecompressSync`.
|
|
29
34
|
try {
|
|
30
35
|
const zlibName = 'node:zlib';
|
|
31
36
|
const zlib = (await import(zlibName));
|
|
32
|
-
if (zlib.zstdCompressSync
|
|
37
|
+
if (zlib.zstdCompressSync) {
|
|
33
38
|
const compressFn = zlib.zstdCompressSync;
|
|
39
|
+
const levelParam = zlib.constants?.ZSTD_c_compressionLevel;
|
|
40
|
+
return async (i, level) => level !== undefined && levelParam !== undefined
|
|
41
|
+
? compressFn(i, { params: { [levelParam]: clampZstdLevel(level) } })
|
|
42
|
+
: compressFn(i);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch { /* node:zlib unavailable — fall through to the error */ }
|
|
46
|
+
throw new Error('zstd compression requires native runtime support — Bun (zstdCompressSync) '
|
|
47
|
+
+ 'or Node ≥22.15 (zlib.zstdCompressSync). The optional `fzstd` peer '
|
|
48
|
+
+ 'dependency can only DECOMPRESS, so it cannot write zstd bodies. '
|
|
49
|
+
+ "Either run on a native-zstd runtime, or use compression: { algorithm: "
|
|
50
|
+
+ "'gzip' } which works everywhere.");
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* zstd DECOMPRESS resolution — native first (Bun, Node ≥22.15), then the
|
|
54
|
+
* pure-JS `fzstd` peer-dep so a runtime without native zstd can still
|
|
55
|
+
* READ zstd bodies written elsewhere. Note fzstd caps the back-reference
|
|
56
|
+
* window at 2^25 (32 MB) and may fail on ultra-level (≥20) frames — see
|
|
57
|
+
* `CompressionConfig.level`.
|
|
58
|
+
*/
|
|
59
|
+
const zstdDecompressLazy = Lazy.of(async () => {
|
|
60
|
+
const bun = globalThis.Bun;
|
|
61
|
+
if (bun?.zstdDecompressSync) {
|
|
62
|
+
const decompressFn = bun.zstdDecompressSync;
|
|
63
|
+
return async (i) => decompressFn(i);
|
|
64
|
+
}
|
|
65
|
+
try {
|
|
66
|
+
const zlibName = 'node:zlib';
|
|
67
|
+
const zlib = (await import(zlibName));
|
|
68
|
+
if (zlib.zstdDecompressSync) {
|
|
34
69
|
const decompressFn = zlib.zstdDecompressSync;
|
|
35
|
-
return
|
|
36
|
-
compress: async (i) => compressFn(i),
|
|
37
|
-
decompress: async (i) => decompressFn(i),
|
|
38
|
-
source: 'node-zlib',
|
|
39
|
-
};
|
|
70
|
+
return async (i) => decompressFn(i);
|
|
40
71
|
}
|
|
41
72
|
}
|
|
42
73
|
catch { /* node:zlib unavailable — fall through to fzstd */ }
|
|
43
|
-
// 3. fzstd peer-dep — pure JS, cross-runtime, ~14 KB.
|
|
44
74
|
try {
|
|
45
75
|
const fzstdName = 'fzstd';
|
|
46
76
|
const fzstd = (await import(fzstdName));
|
|
47
|
-
return
|
|
48
|
-
compress: async (i) => fzstd.compress(i),
|
|
49
|
-
decompress: async (i) => fzstd.decompress(i),
|
|
50
|
-
source: 'fzstd',
|
|
51
|
-
};
|
|
77
|
+
return async (i) => fzstd.decompress(i);
|
|
52
78
|
}
|
|
53
79
|
catch (e) {
|
|
54
|
-
throw new Error('No zstd
|
|
80
|
+
throw new Error('No zstd decompressor available. Either upgrade to Bun 1.1+ / '
|
|
55
81
|
+ 'Node 22.15+, or install the `fzstd` peer dependency: '
|
|
56
82
|
+ '`npm install fzstd`.\nOriginal error: '
|
|
57
83
|
+ (e instanceof Error ? e.message : String(e)));
|
|
58
84
|
}
|
|
59
85
|
});
|
|
60
86
|
const zstdCompressor = {
|
|
61
|
-
async compress(input) { return (await
|
|
62
|
-
async decompress(input) { return (await
|
|
87
|
+
async compress(input, level) { return (await zstdCompressLazy.get())(input, level); },
|
|
88
|
+
async decompress(input) { return (await zstdDecompressLazy.get())(input); },
|
|
63
89
|
};
|
|
64
90
|
/* ------------------------------- public --------------------------------- */
|
|
65
91
|
const noneCompressor = {
|
|
@@ -88,12 +114,36 @@ export async function probeCompressionAvailability(algo) {
|
|
|
88
114
|
await match(algo)
|
|
89
115
|
.with('none', async () => undefined)
|
|
90
116
|
.with('gzip', async () => { await gzipLazy.get(); })
|
|
91
|
-
|
|
117
|
+
// Probe the COMPRESS path: configuring `zstd` expresses write intent,
|
|
118
|
+
// and compress is the strictly stronger capability (a runtime that can
|
|
119
|
+
// compress can always decompress; an fzstd-only runtime can decompress
|
|
120
|
+
// but NOT write). Probing compress surfaces "selected zstd but can't
|
|
121
|
+
// write it here" eagerly at plugin-init rather than on first persist.
|
|
122
|
+
.with('zstd', async () => { await zstdCompressLazy.get(); })
|
|
92
123
|
.exhaustive();
|
|
93
124
|
}
|
|
94
125
|
/** Test hook — clear cached lazy implementations. */
|
|
95
126
|
export function resetCompressionCache() {
|
|
96
127
|
gzipLazy.reset();
|
|
97
|
-
|
|
128
|
+
zstdCompressLazy.reset();
|
|
129
|
+
zstdDecompressLazy.reset();
|
|
130
|
+
}
|
|
131
|
+
/* ------------------------------- levels --------------------------------- */
|
|
132
|
+
/** Clamp a gzip level into zlib's valid 0–9 range; non-finite → default 6. */
|
|
133
|
+
function clampGzipLevel(level) {
|
|
134
|
+
if (!Number.isFinite(level))
|
|
135
|
+
return 6;
|
|
136
|
+
return Math.max(0, Math.min(9, Math.trunc(level)));
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Clamp a zstd level into the portable 1–22 range; non-finite → default 3.
|
|
140
|
+
* (Node also accepts negative "fast" levels, but Bun's floor is 1 — we
|
|
141
|
+
* pin the public range to the intersection so a config is portable across
|
|
142
|
+
* runtimes.)
|
|
143
|
+
*/
|
|
144
|
+
function clampZstdLevel(level) {
|
|
145
|
+
if (!Number.isFinite(level))
|
|
146
|
+
return 3;
|
|
147
|
+
return Math.max(1, Math.min(22, Math.trunc(level)));
|
|
98
148
|
}
|
|
99
149
|
//# sourceMappingURL=Compression.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Compression.js","sourceRoot":"","sources":["../../../src/persistence/object-storage/Compression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Compression.js","sourceRoot":"","sources":["../../../src/persistence/object-storage/Compression.ts"],"names":[],"mappings":"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"}
|