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.
Files changed (1277) hide show
  1. package/CHANGELOG.md +703 -1
  2. package/README.md +294 -269
  3. package/dist/Actor.d.ts +6 -6
  4. package/dist/Actor.d.ts.map +1 -1
  5. package/dist/Actor.js.map +1 -1
  6. package/dist/ActorContext.d.ts +7 -7
  7. package/dist/ActorContext.d.ts.map +1 -1
  8. package/dist/ActorPath.js +8 -8
  9. package/dist/ActorPath.js.map +1 -1
  10. package/dist/ActorRef.d.ts +6 -6
  11. package/dist/ActorRef.d.ts.map +1 -1
  12. package/dist/ActorRef.js.map +1 -1
  13. package/dist/ActorSystem.d.ts +3 -38
  14. package/dist/ActorSystem.d.ts.map +1 -1
  15. package/dist/ActorSystem.js +23 -23
  16. package/dist/ActorSystem.js.map +1 -1
  17. package/dist/ActorSystemOptions.d.ts +91 -0
  18. package/dist/ActorSystemOptions.d.ts.map +1 -0
  19. package/dist/ActorSystemOptions.js +45 -0
  20. package/dist/ActorSystemOptions.js.map +1 -0
  21. package/dist/CoordinatedShutdown.js +3 -3
  22. package/dist/CoordinatedShutdown.js.map +1 -1
  23. package/dist/Logger.d.ts +63 -0
  24. package/dist/Logger.d.ts.map +1 -1
  25. package/dist/Logger.js +146 -0
  26. package/dist/Logger.js.map +1 -1
  27. package/dist/Props.d.ts +13 -13
  28. package/dist/Props.d.ts.map +1 -1
  29. package/dist/Props.js.map +1 -1
  30. package/dist/Router.d.ts +4 -4
  31. package/dist/Router.d.ts.map +1 -1
  32. package/dist/Router.js +4 -4
  33. package/dist/Router.js.map +1 -1
  34. package/dist/Supervision.js +3 -3
  35. package/dist/Supervision.js.map +1 -1
  36. package/dist/cache/CacheExtension.d.ts +7 -0
  37. package/dist/cache/CacheExtension.d.ts.map +1 -1
  38. package/dist/cache/CacheExtension.js +17 -1
  39. package/dist/cache/CacheExtension.js.map +1 -1
  40. package/dist/cache/InMemoryCache.d.ts +39 -0
  41. package/dist/cache/InMemoryCache.d.ts.map +1 -1
  42. package/dist/cache/InMemoryCache.js +99 -20
  43. package/dist/cache/InMemoryCache.js.map +1 -1
  44. package/dist/cache/InMemoryCacheOptions.d.ts +50 -0
  45. package/dist/cache/InMemoryCacheOptions.d.ts.map +1 -0
  46. package/dist/cache/InMemoryCacheOptions.js +51 -0
  47. package/dist/cache/InMemoryCacheOptions.js.map +1 -0
  48. package/dist/cache/MemcachedCache.d.ts +2 -12
  49. package/dist/cache/MemcachedCache.d.ts.map +1 -1
  50. package/dist/cache/MemcachedCache.js +13 -10
  51. package/dist/cache/MemcachedCache.js.map +1 -1
  52. package/dist/cache/MemcachedCacheOptions.d.ts +46 -0
  53. package/dist/cache/MemcachedCacheOptions.d.ts.map +1 -0
  54. package/dist/cache/MemcachedCacheOptions.js +42 -0
  55. package/dist/cache/MemcachedCacheOptions.js.map +1 -0
  56. package/dist/cache/RedisCache.d.ts +2 -22
  57. package/dist/cache/RedisCache.d.ts.map +1 -1
  58. package/dist/cache/RedisCache.js +16 -13
  59. package/dist/cache/RedisCache.js.map +1 -1
  60. package/dist/cache/RedisCacheOptions.d.ts +66 -0
  61. package/dist/cache/RedisCacheOptions.d.ts.map +1 -0
  62. package/dist/cache/RedisCacheOptions.js +62 -0
  63. package/dist/cache/RedisCacheOptions.js.map +1 -0
  64. package/dist/cache/index.d.ts +8 -2
  65. package/dist/cache/index.d.ts.map +1 -1
  66. package/dist/cache/index.js +3 -0
  67. package/dist/cache/index.js.map +1 -1
  68. package/dist/cluster/Cluster.d.ts +7 -66
  69. package/dist/cluster/Cluster.d.ts.map +1 -1
  70. package/dist/cluster/Cluster.js +97 -90
  71. package/dist/cluster/Cluster.js.map +1 -1
  72. package/dist/cluster/ClusterBootstrap.d.ts +6 -84
  73. package/dist/cluster/ClusterBootstrap.d.ts.map +1 -1
  74. package/dist/cluster/ClusterBootstrap.js +37 -23
  75. package/dist/cluster/ClusterBootstrap.js.map +1 -1
  76. package/dist/cluster/ClusterBootstrapOptions.d.ts +158 -0
  77. package/dist/cluster/ClusterBootstrapOptions.d.ts.map +1 -0
  78. package/dist/cluster/ClusterBootstrapOptions.js +121 -0
  79. package/dist/cluster/ClusterBootstrapOptions.js.map +1 -0
  80. package/dist/cluster/ClusterClient.d.ts +21 -31
  81. package/dist/cluster/ClusterClient.d.ts.map +1 -1
  82. package/dist/cluster/ClusterClient.js +34 -20
  83. package/dist/cluster/ClusterClient.js.map +1 -1
  84. package/dist/cluster/ClusterClientOptions.d.ts +76 -0
  85. package/dist/cluster/ClusterClientOptions.d.ts.map +1 -0
  86. package/dist/cluster/ClusterClientOptions.js +61 -0
  87. package/dist/cluster/ClusterClientOptions.js.map +1 -0
  88. package/dist/cluster/ClusterClientReceptionist.d.ts +4 -10
  89. package/dist/cluster/ClusterClientReceptionist.d.ts.map +1 -1
  90. package/dist/cluster/ClusterClientReceptionist.js +17 -13
  91. package/dist/cluster/ClusterClientReceptionist.js.map +1 -1
  92. package/dist/cluster/ClusterClientReceptionistOptions.d.ts +38 -0
  93. package/dist/cluster/ClusterClientReceptionistOptions.d.ts.map +1 -0
  94. package/dist/cluster/ClusterClientReceptionistOptions.js +32 -0
  95. package/dist/cluster/ClusterClientReceptionistOptions.js.map +1 -0
  96. package/dist/cluster/ClusterOptions.d.ts +122 -0
  97. package/dist/cluster/ClusterOptions.d.ts.map +1 -0
  98. package/dist/cluster/ClusterOptions.js +98 -0
  99. package/dist/cluster/ClusterOptions.js.map +1 -0
  100. package/dist/cluster/FailureDetector.d.ts +4 -11
  101. package/dist/cluster/FailureDetector.d.ts.map +1 -1
  102. package/dist/cluster/FailureDetector.js +10 -7
  103. package/dist/cluster/FailureDetector.js.map +1 -1
  104. package/dist/cluster/FailureDetectorOptions.d.ts +49 -0
  105. package/dist/cluster/FailureDetectorOptions.d.ts.map +1 -0
  106. package/dist/cluster/FailureDetectorOptions.js +48 -0
  107. package/dist/cluster/FailureDetectorOptions.js.map +1 -0
  108. package/dist/cluster/Member.js +2 -2
  109. package/dist/cluster/Member.js.map +1 -1
  110. package/dist/cluster/PhiAccrualFailureDetector.d.ts +4 -20
  111. package/dist/cluster/PhiAccrualFailureDetector.d.ts.map +1 -1
  112. package/dist/cluster/PhiAccrualFailureDetector.js +40 -44
  113. package/dist/cluster/PhiAccrualFailureDetector.js.map +1 -1
  114. package/dist/cluster/PhiAccrualOptions.d.ts +64 -0
  115. package/dist/cluster/PhiAccrualOptions.d.ts.map +1 -0
  116. package/dist/cluster/PhiAccrualOptions.js +68 -0
  117. package/dist/cluster/PhiAccrualOptions.js.map +1 -0
  118. package/dist/cluster/Protocol.d.ts +10 -10
  119. package/dist/cluster/Protocol.d.ts.map +1 -1
  120. package/dist/cluster/Protocol.js +1 -1
  121. package/dist/cluster/RefCodec.js +11 -1
  122. package/dist/cluster/RefCodec.js.map +1 -1
  123. package/dist/cluster/RemoteActorRef.d.ts +2 -2
  124. package/dist/cluster/RemoteActorRef.d.ts.map +1 -1
  125. package/dist/cluster/RemoteActorRef.js.map +1 -1
  126. package/dist/cluster/Transport.d.ts +3 -3
  127. package/dist/cluster/Transport.d.ts.map +1 -1
  128. package/dist/cluster/Transport.js +2 -2
  129. package/dist/cluster/Transport.js.map +1 -1
  130. package/dist/cluster/downing/KeepMajority.d.ts +3 -6
  131. package/dist/cluster/downing/KeepMajority.d.ts.map +1 -1
  132. package/dist/cluster/downing/KeepMajority.js +6 -6
  133. package/dist/cluster/downing/KeepMajority.js.map +1 -1
  134. package/dist/cluster/downing/KeepMajorityOptions.d.ts +26 -0
  135. package/dist/cluster/downing/KeepMajorityOptions.d.ts.map +1 -0
  136. package/dist/cluster/downing/KeepMajorityOptions.js +19 -0
  137. package/dist/cluster/downing/KeepMajorityOptions.js.map +1 -0
  138. package/dist/cluster/downing/KeepOldest.d.ts +3 -12
  139. package/dist/cluster/downing/KeepOldest.d.ts.map +1 -1
  140. package/dist/cluster/downing/KeepOldest.js +5 -5
  141. package/dist/cluster/downing/KeepOldest.js.map +1 -1
  142. package/dist/cluster/downing/KeepOldestOptions.d.ts +34 -0
  143. package/dist/cluster/downing/KeepOldestOptions.d.ts.map +1 -0
  144. package/dist/cluster/downing/KeepOldestOptions.js +23 -0
  145. package/dist/cluster/downing/KeepOldestOptions.js.map +1 -0
  146. package/dist/cluster/downing/KeepReferee.d.ts +3 -11
  147. package/dist/cluster/downing/KeepReferee.d.ts.map +1 -1
  148. package/dist/cluster/downing/KeepReferee.js +7 -7
  149. package/dist/cluster/downing/KeepReferee.js.map +1 -1
  150. package/dist/cluster/downing/KeepRefereeOptions.d.ts +41 -0
  151. package/dist/cluster/downing/KeepRefereeOptions.d.ts.map +1 -0
  152. package/dist/cluster/downing/KeepRefereeOptions.js +38 -0
  153. package/dist/cluster/downing/KeepRefereeOptions.js.map +1 -0
  154. package/dist/cluster/downing/LeaseMajority.d.ts +63 -21
  155. package/dist/cluster/downing/LeaseMajority.d.ts.map +1 -1
  156. package/dist/cluster/downing/LeaseMajority.js +142 -17
  157. package/dist/cluster/downing/LeaseMajority.js.map +1 -1
  158. package/dist/cluster/downing/LeaseMajorityOptions.d.ts +55 -0
  159. package/dist/cluster/downing/LeaseMajorityOptions.d.ts.map +1 -0
  160. package/dist/cluster/downing/LeaseMajorityOptions.js +41 -0
  161. package/dist/cluster/downing/LeaseMajorityOptions.js.map +1 -0
  162. package/dist/cluster/downing/StaticQuorum.d.ts +3 -8
  163. package/dist/cluster/downing/StaticQuorum.d.ts.map +1 -1
  164. package/dist/cluster/downing/StaticQuorum.js +7 -8
  165. package/dist/cluster/downing/StaticQuorum.js.map +1 -1
  166. package/dist/cluster/downing/StaticQuorumOptions.d.ts +36 -0
  167. package/dist/cluster/downing/StaticQuorumOptions.d.ts.map +1 -0
  168. package/dist/cluster/downing/StaticQuorumOptions.js +33 -0
  169. package/dist/cluster/downing/StaticQuorumOptions.js.map +1 -0
  170. package/dist/cluster/downing/index.d.ts +10 -5
  171. package/dist/cluster/downing/index.d.ts.map +1 -1
  172. package/dist/cluster/downing/index.js +5 -0
  173. package/dist/cluster/downing/index.js.map +1 -1
  174. package/dist/cluster/index.d.ts +37 -22
  175. package/dist/cluster/index.d.ts.map +1 -1
  176. package/dist/cluster/index.js +17 -6
  177. package/dist/cluster/index.js.map +1 -1
  178. package/dist/cluster/pubsub/DistributedPubSubExtension.d.ts +2 -2
  179. package/dist/cluster/pubsub/DistributedPubSubExtension.d.ts.map +1 -1
  180. package/dist/cluster/pubsub/DistributedPubSubExtension.js +5 -2
  181. package/dist/cluster/pubsub/DistributedPubSubExtension.js.map +1 -1
  182. package/dist/cluster/pubsub/DistributedPubSubMediator.d.ts +6 -10
  183. package/dist/cluster/pubsub/DistributedPubSubMediator.d.ts.map +1 -1
  184. package/dist/cluster/pubsub/DistributedPubSubMediator.js +24 -22
  185. package/dist/cluster/pubsub/DistributedPubSubMediator.js.map +1 -1
  186. package/dist/cluster/pubsub/DistributedPubSubOptions.d.ts +35 -0
  187. package/dist/cluster/pubsub/DistributedPubSubOptions.d.ts.map +1 -0
  188. package/dist/cluster/pubsub/DistributedPubSubOptions.js +33 -0
  189. package/dist/cluster/pubsub/DistributedPubSubOptions.js.map +1 -0
  190. package/dist/cluster/pubsub/Messages.d.ts +5 -5
  191. package/dist/cluster/pubsub/Messages.d.ts.map +1 -1
  192. package/dist/cluster/pubsub/Messages.js +2 -2
  193. package/dist/cluster/pubsub/Messages.js.map +1 -1
  194. package/dist/cluster/pubsub/index.d.ts +3 -2
  195. package/dist/cluster/pubsub/index.d.ts.map +1 -1
  196. package/dist/cluster/pubsub/index.js +2 -1
  197. package/dist/cluster/pubsub/index.js.map +1 -1
  198. package/dist/cluster/router/ClusterRouter.d.ts +12 -32
  199. package/dist/cluster/router/ClusterRouter.d.ts.map +1 -1
  200. package/dist/cluster/router/ClusterRouter.js +10 -9
  201. package/dist/cluster/router/ClusterRouter.js.map +1 -1
  202. package/dist/cluster/router/ClusterRouterOptions.d.ts +70 -0
  203. package/dist/cluster/router/ClusterRouterOptions.d.ts.map +1 -0
  204. package/dist/cluster/router/ClusterRouterOptions.js +59 -0
  205. package/dist/cluster/router/ClusterRouterOptions.js.map +1 -0
  206. package/dist/cluster/router/ConsistentHashing.d.ts +1 -1
  207. package/dist/cluster/router/ConsistentHashing.d.ts.map +1 -1
  208. package/dist/cluster/router/ConsistentHashing.js +16 -16
  209. package/dist/cluster/router/ConsistentHashing.js.map +1 -1
  210. package/dist/cluster/router/index.d.ts +3 -1
  211. package/dist/cluster/router/index.d.ts.map +1 -1
  212. package/dist/cluster/router/index.js +1 -0
  213. package/dist/cluster/router/index.js.map +1 -1
  214. package/dist/cluster/sharding/AllocationStrategy.js +4 -4
  215. package/dist/cluster/sharding/AllocationStrategy.js.map +1 -1
  216. package/dist/cluster/sharding/CassandraRememberEntitiesStore.d.ts +1 -15
  217. package/dist/cluster/sharding/CassandraRememberEntitiesStore.d.ts.map +1 -1
  218. package/dist/cluster/sharding/CassandraRememberEntitiesStore.js +35 -2
  219. package/dist/cluster/sharding/CassandraRememberEntitiesStore.js.map +1 -1
  220. package/dist/cluster/sharding/CassandraRememberEntitiesStoreOptions.d.ts +63 -0
  221. package/dist/cluster/sharding/CassandraRememberEntitiesStoreOptions.d.ts.map +1 -0
  222. package/dist/cluster/sharding/CassandraRememberEntitiesStoreOptions.js +63 -0
  223. package/dist/cluster/sharding/CassandraRememberEntitiesStoreOptions.js.map +1 -0
  224. package/dist/cluster/sharding/ClusterSharding.d.ts +20 -66
  225. package/dist/cluster/sharding/ClusterSharding.d.ts.map +1 -1
  226. package/dist/cluster/sharding/ClusterSharding.js +65 -39
  227. package/dist/cluster/sharding/ClusterSharding.js.map +1 -1
  228. package/dist/cluster/sharding/CoordinatorState.d.ts +1 -1
  229. package/dist/cluster/sharding/CoordinatorState.js +1 -1
  230. package/dist/cluster/sharding/ShardAllocator.js +14 -14
  231. package/dist/cluster/sharding/ShardAllocator.js.map +1 -1
  232. package/dist/cluster/sharding/ShardCoordinator.d.ts +4 -64
  233. package/dist/cluster/sharding/ShardCoordinator.d.ts.map +1 -1
  234. package/dist/cluster/sharding/ShardCoordinator.js +73 -73
  235. package/dist/cluster/sharding/ShardCoordinator.js.map +1 -1
  236. package/dist/cluster/sharding/ShardCoordinatorOptions.d.ts +111 -0
  237. package/dist/cluster/sharding/ShardCoordinatorOptions.d.ts.map +1 -0
  238. package/dist/cluster/sharding/ShardCoordinatorOptions.js +69 -0
  239. package/dist/cluster/sharding/ShardCoordinatorOptions.js.map +1 -0
  240. package/dist/cluster/sharding/ShardRegion.d.ts +11 -42
  241. package/dist/cluster/sharding/ShardRegion.d.ts.map +1 -1
  242. package/dist/cluster/sharding/ShardRegion.js +20 -20
  243. package/dist/cluster/sharding/ShardRegion.js.map +1 -1
  244. package/dist/cluster/sharding/ShardedDaemonProcess.d.ts +2 -22
  245. package/dist/cluster/sharding/ShardedDaemonProcess.d.ts.map +1 -1
  246. package/dist/cluster/sharding/ShardedDaemonProcess.js +20 -15
  247. package/dist/cluster/sharding/ShardedDaemonProcess.js.map +1 -1
  248. package/dist/cluster/sharding/ShardedDaemonProcessOptions.d.ts +57 -0
  249. package/dist/cluster/sharding/ShardedDaemonProcessOptions.d.ts.map +1 -0
  250. package/dist/cluster/sharding/ShardedDaemonProcessOptions.js +47 -0
  251. package/dist/cluster/sharding/ShardedDaemonProcessOptions.js.map +1 -0
  252. package/dist/cluster/sharding/ShardingOptions.d.ts +95 -0
  253. package/dist/cluster/sharding/ShardingOptions.d.ts.map +1 -0
  254. package/dist/cluster/sharding/ShardingOptions.js +92 -0
  255. package/dist/cluster/sharding/ShardingOptions.js.map +1 -0
  256. package/dist/cluster/sharding/ShardingProtocol.d.ts +6 -6
  257. package/dist/cluster/sharding/ShardingProtocol.d.ts.map +1 -1
  258. package/dist/cluster/sharding/StartShardingOptions.d.ts +106 -0
  259. package/dist/cluster/sharding/StartShardingOptions.d.ts.map +1 -0
  260. package/dist/cluster/sharding/StartShardingOptions.js +67 -0
  261. package/dist/cluster/sharding/StartShardingOptions.js.map +1 -0
  262. package/dist/cluster/singleton/ClusterSingleton.d.ts +2 -30
  263. package/dist/cluster/singleton/ClusterSingleton.d.ts.map +1 -1
  264. package/dist/cluster/singleton/ClusterSingleton.js +22 -14
  265. package/dist/cluster/singleton/ClusterSingleton.js.map +1 -1
  266. package/dist/cluster/singleton/ClusterSingletonManager.d.ts +4 -19
  267. package/dist/cluster/singleton/ClusterSingletonManager.d.ts.map +1 -1
  268. package/dist/cluster/singleton/ClusterSingletonManager.js +26 -26
  269. package/dist/cluster/singleton/ClusterSingletonManager.js.map +1 -1
  270. package/dist/cluster/singleton/ClusterSingletonManagerOptions.d.ts +49 -0
  271. package/dist/cluster/singleton/ClusterSingletonManagerOptions.d.ts.map +1 -0
  272. package/dist/cluster/singleton/ClusterSingletonManagerOptions.js +40 -0
  273. package/dist/cluster/singleton/ClusterSingletonManagerOptions.js.map +1 -0
  274. package/dist/cluster/singleton/ClusterSingletonProxy.js +2 -2
  275. package/dist/cluster/singleton/ClusterSingletonProxy.js.map +1 -1
  276. package/dist/cluster/singleton/StartSingletonOptions.d.ts +70 -0
  277. package/dist/cluster/singleton/StartSingletonOptions.d.ts.map +1 -0
  278. package/dist/cluster/singleton/StartSingletonOptions.js +51 -0
  279. package/dist/cluster/singleton/StartSingletonOptions.js.map +1 -0
  280. package/dist/cluster/singleton/index.d.ts +6 -2
  281. package/dist/cluster/singleton/index.d.ts.map +1 -1
  282. package/dist/cluster/singleton/index.js +2 -0
  283. package/dist/cluster/singleton/index.js.map +1 -1
  284. package/dist/config/Config.js +61 -61
  285. package/dist/config/Config.js.map +1 -1
  286. package/dist/config/ConfigKeys.d.ts +5 -0
  287. package/dist/config/ConfigKeys.d.ts.map +1 -1
  288. package/dist/config/ConfigKeys.js +5 -0
  289. package/dist/config/ConfigKeys.js.map +1 -1
  290. package/dist/config/HoconParser.d.ts +2 -2
  291. package/dist/config/HoconParser.d.ts.map +1 -1
  292. package/dist/config/HoconParser.js +77 -77
  293. package/dist/config/HoconParser.js.map +1 -1
  294. package/dist/config/reference.d.ts.map +1 -1
  295. package/dist/config/reference.js +24 -0
  296. package/dist/config/reference.js.map +1 -1
  297. package/dist/coordination/Lease.d.ts +32 -14
  298. package/dist/coordination/Lease.d.ts.map +1 -1
  299. package/dist/coordination/LeaseOptions.d.ts +74 -0
  300. package/dist/coordination/LeaseOptions.d.ts.map +1 -0
  301. package/dist/coordination/LeaseOptions.js +89 -0
  302. package/dist/coordination/LeaseOptions.js.map +1 -0
  303. package/dist/coordination/index.d.ts +5 -2
  304. package/dist/coordination/index.d.ts.map +1 -1
  305. package/dist/coordination/index.js +2 -0
  306. package/dist/coordination/index.js.map +1 -1
  307. package/dist/coordination/leases/InMemoryLease.d.ts +18 -5
  308. package/dist/coordination/leases/InMemoryLease.d.ts.map +1 -1
  309. package/dist/coordination/leases/InMemoryLease.js +36 -22
  310. package/dist/coordination/leases/InMemoryLease.js.map +1 -1
  311. package/dist/coordination/leases/KubernetesLease.d.ts +20 -25
  312. package/dist/coordination/leases/KubernetesLease.d.ts.map +1 -1
  313. package/dist/coordination/leases/KubernetesLease.js +57 -36
  314. package/dist/coordination/leases/KubernetesLease.js.map +1 -1
  315. package/dist/coordination/leases/KubernetesLeaseOptions.d.ts +63 -0
  316. package/dist/coordination/leases/KubernetesLeaseOptions.d.ts.map +1 -0
  317. package/dist/coordination/leases/KubernetesLeaseOptions.js +53 -0
  318. package/dist/coordination/leases/KubernetesLeaseOptions.js.map +1 -0
  319. package/dist/coordination/leases/k8sApi.d.ts +1 -1
  320. package/dist/coordination/leases/k8sApi.js +1 -1
  321. package/dist/crdt/DistributedData.d.ts +14 -34
  322. package/dist/crdt/DistributedData.d.ts.map +1 -1
  323. package/dist/crdt/DistributedData.js +37 -34
  324. package/dist/crdt/DistributedData.js.map +1 -1
  325. package/dist/crdt/DistributedDataOptions.d.ts +56 -0
  326. package/dist/crdt/DistributedDataOptions.d.ts.map +1 -0
  327. package/dist/crdt/DistributedDataOptions.js +38 -0
  328. package/dist/crdt/DistributedDataOptions.js.map +1 -0
  329. package/dist/crdt/GCounter.js +4 -4
  330. package/dist/crdt/GCounter.js.map +1 -1
  331. package/dist/crdt/GCounterMap.js +7 -7
  332. package/dist/crdt/GCounterMap.js.map +1 -1
  333. package/dist/crdt/GSet.js +8 -8
  334. package/dist/crdt/GSet.js.map +1 -1
  335. package/dist/crdt/LWWMap.d.ts +1 -1
  336. package/dist/crdt/LWWMap.js +19 -19
  337. package/dist/crdt/LWWMap.js.map +1 -1
  338. package/dist/crdt/MVRegister.js +16 -16
  339. package/dist/crdt/MVRegister.js.map +1 -1
  340. package/dist/crdt/ORMap.d.ts +2 -2
  341. package/dist/crdt/ORMap.js +18 -18
  342. package/dist/crdt/ORMap.js.map +1 -1
  343. package/dist/crdt/ORSet.js +38 -38
  344. package/dist/crdt/ORSet.js.map +1 -1
  345. package/dist/crdt/index.d.ts +3 -1
  346. package/dist/crdt/index.d.ts.map +1 -1
  347. package/dist/crdt/index.js +1 -0
  348. package/dist/crdt/index.js.map +1 -1
  349. package/dist/delivery/ConsumerController.d.ts +4 -11
  350. package/dist/delivery/ConsumerController.d.ts.map +1 -1
  351. package/dist/delivery/ConsumerController.js +12 -12
  352. package/dist/delivery/ConsumerController.js.map +1 -1
  353. package/dist/delivery/ConsumerControllerOptions.d.ts +32 -0
  354. package/dist/delivery/ConsumerControllerOptions.d.ts.map +1 -0
  355. package/dist/delivery/ConsumerControllerOptions.js +21 -0
  356. package/dist/delivery/ConsumerControllerOptions.js.map +1 -0
  357. package/dist/delivery/Messages.d.ts +2 -2
  358. package/dist/delivery/Messages.d.ts.map +1 -1
  359. package/dist/delivery/ProducerController.d.ts +8 -23
  360. package/dist/delivery/ProducerController.d.ts.map +1 -1
  361. package/dist/delivery/ProducerController.js +30 -27
  362. package/dist/delivery/ProducerController.js.map +1 -1
  363. package/dist/delivery/ProducerControllerOptions.d.ts +56 -0
  364. package/dist/delivery/ProducerControllerOptions.d.ts.map +1 -0
  365. package/dist/delivery/ProducerControllerOptions.js +47 -0
  366. package/dist/delivery/ProducerControllerOptions.js.map +1 -0
  367. package/dist/delivery/ReliableDelivery.d.ts +6 -5
  368. package/dist/delivery/ReliableDelivery.d.ts.map +1 -1
  369. package/dist/delivery/ReliableDelivery.js +6 -6
  370. package/dist/delivery/ReliableDelivery.js.map +1 -1
  371. package/dist/delivery/index.d.ts +6 -3
  372. package/dist/delivery/index.d.ts.map +1 -1
  373. package/dist/delivery/index.js +2 -0
  374. package/dist/delivery/index.js.map +1 -1
  375. package/dist/discovery/AutoDiscoveryOptions.d.ts +78 -0
  376. package/dist/discovery/AutoDiscoveryOptions.d.ts.map +1 -0
  377. package/dist/discovery/AutoDiscoveryOptions.js +45 -0
  378. package/dist/discovery/AutoDiscoveryOptions.js.map +1 -0
  379. package/dist/discovery/ConfigSeedProvider.d.ts +3 -8
  380. package/dist/discovery/ConfigSeedProvider.d.ts.map +1 -1
  381. package/dist/discovery/ConfigSeedProvider.js +8 -6
  382. package/dist/discovery/ConfigSeedProvider.js.map +1 -1
  383. package/dist/discovery/ConfigSeedProviderOptions.d.ts +40 -0
  384. package/dist/discovery/ConfigSeedProviderOptions.d.ts.map +1 -0
  385. package/dist/discovery/ConfigSeedProviderOptions.js +38 -0
  386. package/dist/discovery/ConfigSeedProviderOptions.js.map +1 -0
  387. package/dist/discovery/DnsSeedProvider.d.ts +4 -28
  388. package/dist/discovery/DnsSeedProvider.d.ts.map +1 -1
  389. package/dist/discovery/DnsSeedProvider.js +14 -15
  390. package/dist/discovery/DnsSeedProvider.js.map +1 -1
  391. package/dist/discovery/DnsSeedProviderOptions.d.ts +77 -0
  392. package/dist/discovery/DnsSeedProviderOptions.d.ts.map +1 -0
  393. package/dist/discovery/DnsSeedProviderOptions.js +68 -0
  394. package/dist/discovery/DnsSeedProviderOptions.js.map +1 -0
  395. package/dist/discovery/KubernetesApiSeedProvider.d.ts +3 -14
  396. package/dist/discovery/KubernetesApiSeedProvider.d.ts.map +1 -1
  397. package/dist/discovery/KubernetesApiSeedProvider.js +9 -7
  398. package/dist/discovery/KubernetesApiSeedProvider.js.map +1 -1
  399. package/dist/discovery/KubernetesApiSeedProviderOptions.d.ts +52 -0
  400. package/dist/discovery/KubernetesApiSeedProviderOptions.d.ts.map +1 -0
  401. package/dist/discovery/KubernetesApiSeedProviderOptions.js +52 -0
  402. package/dist/discovery/KubernetesApiSeedProviderOptions.js.map +1 -0
  403. package/dist/discovery/Receptionist.d.ts +3 -6
  404. package/dist/discovery/Receptionist.d.ts.map +1 -1
  405. package/dist/discovery/Receptionist.js +19 -10
  406. package/dist/discovery/Receptionist.js.map +1 -1
  407. package/dist/discovery/ReceptionistMessages.d.ts +2 -2
  408. package/dist/discovery/ReceptionistMessages.d.ts.map +1 -1
  409. package/dist/discovery/ReceptionistMessages.js +1 -1
  410. package/dist/discovery/ReceptionistMessages.js.map +1 -1
  411. package/dist/discovery/ReceptionistOptions.d.ts +36 -0
  412. package/dist/discovery/ReceptionistOptions.d.ts.map +1 -0
  413. package/dist/discovery/ReceptionistOptions.js +34 -0
  414. package/dist/discovery/ReceptionistOptions.js.map +1 -0
  415. package/dist/discovery/ServiceKey.d.ts +2 -2
  416. package/dist/discovery/ServiceKey.d.ts.map +1 -1
  417. package/dist/discovery/ServiceKey.js.map +1 -1
  418. package/dist/discovery/autoDiscovery.d.ts +3 -44
  419. package/dist/discovery/autoDiscovery.d.ts.map +1 -1
  420. package/dist/discovery/autoDiscovery.js +37 -35
  421. package/dist/discovery/autoDiscovery.js.map +1 -1
  422. package/dist/discovery/index.d.ts +11 -6
  423. package/dist/discovery/index.d.ts.map +1 -1
  424. package/dist/discovery/index.js +5 -0
  425. package/dist/discovery/index.js.map +1 -1
  426. package/dist/fsm/FSM.d.ts +1 -1
  427. package/dist/fsm/FSM.js +1 -1
  428. package/dist/http/Html.d.ts +53 -0
  429. package/dist/http/Html.d.ts.map +1 -0
  430. package/dist/http/Html.js +92 -0
  431. package/dist/http/Html.js.map +1 -0
  432. package/dist/http/HttpExtension.d.ts +9 -0
  433. package/dist/http/HttpExtension.d.ts.map +1 -1
  434. package/dist/http/HttpExtension.js +106 -10
  435. package/dist/http/HttpExtension.js.map +1 -1
  436. package/dist/http/Marshalling.js +3 -3
  437. package/dist/http/Marshalling.js.map +1 -1
  438. package/dist/http/MimeTypes.d.ts +15 -0
  439. package/dist/http/MimeTypes.d.ts.map +1 -0
  440. package/dist/http/MimeTypes.js +87 -0
  441. package/dist/http/MimeTypes.js.map +1 -0
  442. package/dist/http/Route.d.ts +153 -4
  443. package/dist/http/Route.d.ts.map +1 -1
  444. package/dist/http/Route.js +170 -9
  445. package/dist/http/Route.js.map +1 -1
  446. package/dist/http/backend/ExpressBackend.d.ts +31 -20
  447. package/dist/http/backend/ExpressBackend.d.ts.map +1 -1
  448. package/dist/http/backend/ExpressBackend.js +199 -34
  449. package/dist/http/backend/ExpressBackend.js.map +1 -1
  450. package/dist/http/backend/ExpressBackendOptions.d.ts +53 -0
  451. package/dist/http/backend/ExpressBackendOptions.d.ts.map +1 -0
  452. package/dist/http/backend/ExpressBackendOptions.js +45 -0
  453. package/dist/http/backend/ExpressBackendOptions.js.map +1 -0
  454. package/dist/http/backend/FastifyBackend.d.ts +13 -1
  455. package/dist/http/backend/FastifyBackend.d.ts.map +1 -1
  456. package/dist/http/backend/FastifyBackend.js +124 -14
  457. package/dist/http/backend/FastifyBackend.js.map +1 -1
  458. package/dist/http/backend/HonoBackend.d.ts +39 -16
  459. package/dist/http/backend/HonoBackend.d.ts.map +1 -1
  460. package/dist/http/backend/HonoBackend.js +269 -35
  461. package/dist/http/backend/HonoBackend.js.map +1 -1
  462. package/dist/http/backend/HonoBackendOptions.d.ts +53 -0
  463. package/dist/http/backend/HonoBackendOptions.d.ts.map +1 -0
  464. package/dist/http/backend/HonoBackendOptions.js +45 -0
  465. package/dist/http/backend/HonoBackendOptions.js.map +1 -0
  466. package/dist/http/backend/HttpServerBackend.d.ts +36 -2
  467. package/dist/http/backend/HttpServerBackend.d.ts.map +1 -1
  468. package/dist/http/cache/IdempotencyKey.d.ts +2 -46
  469. package/dist/http/cache/IdempotencyKey.d.ts.map +1 -1
  470. package/dist/http/cache/IdempotencyKey.js +25 -20
  471. package/dist/http/cache/IdempotencyKey.js.map +1 -1
  472. package/dist/http/cache/IdempotencyOptions.d.ts +84 -0
  473. package/dist/http/cache/IdempotencyOptions.d.ts.map +1 -0
  474. package/dist/http/cache/IdempotencyOptions.js +61 -0
  475. package/dist/http/cache/IdempotencyOptions.js.map +1 -0
  476. package/dist/http/cache/RateLimit.d.ts +13 -32
  477. package/dist/http/cache/RateLimit.d.ts.map +1 -1
  478. package/dist/http/cache/RateLimit.js +42 -8
  479. package/dist/http/cache/RateLimit.js.map +1 -1
  480. package/dist/http/cache/RateLimitOptions.d.ts +80 -0
  481. package/dist/http/cache/RateLimitOptions.d.ts.map +1 -0
  482. package/dist/http/cache/RateLimitOptions.js +61 -0
  483. package/dist/http/cache/RateLimitOptions.js.map +1 -0
  484. package/dist/http/cache/ResponseCache.js +3 -3
  485. package/dist/http/cache/ResponseCache.js.map +1 -1
  486. package/dist/http/cache/index.d.ts +4 -2
  487. package/dist/http/cache/index.d.ts.map +1 -1
  488. package/dist/http/cache/index.js +2 -0
  489. package/dist/http/cache/index.js.map +1 -1
  490. package/dist/http/cookies.d.ts +38 -0
  491. package/dist/http/cookies.d.ts.map +1 -0
  492. package/dist/http/cookies.js +102 -0
  493. package/dist/http/cookies.js.map +1 -0
  494. package/dist/http/index.d.ts +19 -7
  495. package/dist/http/index.d.ts.map +1 -1
  496. package/dist/http/index.js +17 -2
  497. package/dist/http/index.js.map +1 -1
  498. package/dist/http/middleware/BasicAuth.d.ts +5 -0
  499. package/dist/http/middleware/BasicAuth.d.ts.map +1 -0
  500. package/dist/http/middleware/BasicAuth.js +58 -0
  501. package/dist/http/middleware/BasicAuth.js.map +1 -0
  502. package/dist/http/middleware/BasicAuthOptions.d.ts +22 -0
  503. package/dist/http/middleware/BasicAuthOptions.d.ts.map +1 -0
  504. package/dist/http/middleware/BasicAuthOptions.js +19 -0
  505. package/dist/http/middleware/BasicAuthOptions.js.map +1 -0
  506. package/dist/http/middleware/BearerToken.d.ts +44 -0
  507. package/dist/http/middleware/BearerToken.d.ts.map +1 -0
  508. package/dist/http/middleware/BearerToken.js +72 -0
  509. package/dist/http/middleware/BearerToken.js.map +1 -0
  510. package/dist/http/middleware/Cors.d.ts +39 -0
  511. package/dist/http/middleware/Cors.d.ts.map +1 -0
  512. package/dist/http/middleware/Cors.js +164 -0
  513. package/dist/http/middleware/Cors.js.map +1 -0
  514. package/dist/http/middleware/CorsOptions.d.ts +57 -0
  515. package/dist/http/middleware/CorsOptions.d.ts.map +1 -0
  516. package/dist/http/middleware/CorsOptions.js +62 -0
  517. package/dist/http/middleware/CorsOptions.js.map +1 -0
  518. package/dist/http/middleware/Csp.d.ts +13 -0
  519. package/dist/http/middleware/Csp.d.ts.map +1 -0
  520. package/dist/http/middleware/Csp.js +68 -0
  521. package/dist/http/middleware/Csp.js.map +1 -0
  522. package/dist/http/middleware/CspOptions.d.ts +53 -0
  523. package/dist/http/middleware/CspOptions.d.ts.map +1 -0
  524. package/dist/http/middleware/CspOptions.js +24 -0
  525. package/dist/http/middleware/CspOptions.js.map +1 -0
  526. package/dist/http/middleware/Csrf.d.ts +22 -0
  527. package/dist/http/middleware/Csrf.d.ts.map +1 -0
  528. package/dist/http/middleware/Csrf.js +165 -0
  529. package/dist/http/middleware/Csrf.js.map +1 -0
  530. package/dist/http/middleware/CsrfOptions.d.ts +75 -0
  531. package/dist/http/middleware/CsrfOptions.d.ts.map +1 -0
  532. package/dist/http/middleware/CsrfOptions.js +80 -0
  533. package/dist/http/middleware/CsrfOptions.js.map +1 -0
  534. package/dist/http/middleware/Hsts.d.ts +28 -0
  535. package/dist/http/middleware/Hsts.d.ts.map +1 -0
  536. package/dist/http/middleware/Hsts.js +34 -0
  537. package/dist/http/middleware/Hsts.js.map +1 -0
  538. package/dist/http/middleware/HstsOptions.d.ts +44 -0
  539. package/dist/http/middleware/HstsOptions.d.ts.map +1 -0
  540. package/dist/http/middleware/HstsOptions.js +49 -0
  541. package/dist/http/middleware/HstsOptions.js.map +1 -0
  542. package/dist/http/middleware/IpAllowlist.d.ts +45 -0
  543. package/dist/http/middleware/IpAllowlist.d.ts.map +1 -0
  544. package/dist/http/middleware/IpAllowlist.js +148 -0
  545. package/dist/http/middleware/IpAllowlist.js.map +1 -0
  546. package/dist/http/middleware/RequestId.d.ts +5 -0
  547. package/dist/http/middleware/RequestId.d.ts.map +1 -0
  548. package/dist/http/middleware/RequestId.js +24 -0
  549. package/dist/http/middleware/RequestId.js.map +1 -0
  550. package/dist/http/middleware/RequestIdOptions.d.ts +22 -0
  551. package/dist/http/middleware/RequestIdOptions.d.ts.map +1 -0
  552. package/dist/http/middleware/RequestIdOptions.js +19 -0
  553. package/dist/http/middleware/RequestIdOptions.js.map +1 -0
  554. package/dist/http/middleware/SecurityHeaders.d.ts +11 -0
  555. package/dist/http/middleware/SecurityHeaders.d.ts.map +1 -0
  556. package/dist/http/middleware/SecurityHeaders.js +50 -0
  557. package/dist/http/middleware/SecurityHeaders.js.map +1 -0
  558. package/dist/http/middleware/SecurityHeadersOptions.d.ts +44 -0
  559. package/dist/http/middleware/SecurityHeadersOptions.d.ts.map +1 -0
  560. package/dist/http/middleware/SecurityHeadersOptions.js +40 -0
  561. package/dist/http/middleware/SecurityHeadersOptions.js.map +1 -0
  562. package/dist/http/middleware/Timeout.d.ts +13 -0
  563. package/dist/http/middleware/Timeout.d.ts.map +1 -0
  564. package/dist/http/middleware/Timeout.js +29 -0
  565. package/dist/http/middleware/Timeout.js.map +1 -0
  566. package/dist/http/middleware/TimeoutOptions.d.ts +30 -0
  567. package/dist/http/middleware/TimeoutOptions.d.ts.map +1 -0
  568. package/dist/http/middleware/TimeoutOptions.js +30 -0
  569. package/dist/http/middleware/TimeoutOptions.js.map +1 -0
  570. package/dist/http/middleware/headers.d.ts +21 -0
  571. package/dist/http/middleware/headers.d.ts.map +1 -0
  572. package/dist/http/middleware/headers.js +43 -0
  573. package/dist/http/middleware/headers.js.map +1 -0
  574. package/dist/http/middleware/index.d.ts +30 -0
  575. package/dist/http/middleware/index.d.ts.map +1 -0
  576. package/dist/http/middleware/index.js +23 -0
  577. package/dist/http/middleware/index.js.map +1 -0
  578. package/dist/http/static/DirectoryListing.d.ts +16 -0
  579. package/dist/http/static/DirectoryListing.d.ts.map +1 -0
  580. package/dist/http/static/DirectoryListing.js +39 -0
  581. package/dist/http/static/DirectoryListing.js.map +1 -0
  582. package/dist/http/static/StaticFiles.d.ts +11 -0
  583. package/dist/http/static/StaticFiles.d.ts.map +1 -0
  584. package/dist/http/static/StaticFiles.js +202 -0
  585. package/dist/http/static/StaticFiles.js.map +1 -0
  586. package/dist/http/static/StaticFilesOptions.d.ts +76 -0
  587. package/dist/http/static/StaticFilesOptions.d.ts.map +1 -0
  588. package/dist/http/static/StaticFilesOptions.js +83 -0
  589. package/dist/http/static/StaticFilesOptions.js.map +1 -0
  590. package/dist/http/static/fsAccess.d.ts +25 -0
  591. package/dist/http/static/fsAccess.d.ts.map +1 -0
  592. package/dist/http/static/fsAccess.js +42 -0
  593. package/dist/http/static/fsAccess.js.map +1 -0
  594. package/dist/http/static/index.d.ts +7 -0
  595. package/dist/http/static/index.d.ts.map +1 -0
  596. package/dist/http/static/index.js +5 -0
  597. package/dist/http/static/index.js.map +1 -0
  598. package/dist/http/static/staticPath.d.ts +14 -0
  599. package/dist/http/static/staticPath.d.ts.map +1 -0
  600. package/dist/http/static/staticPath.js +67 -0
  601. package/dist/http/static/staticPath.js.map +1 -0
  602. package/dist/http/types.d.ts +33 -3
  603. package/dist/http/types.d.ts.map +1 -1
  604. package/dist/http/types.js +11 -1
  605. package/dist/http/types.js.map +1 -1
  606. package/dist/http/websocket/ConnectionWiring.d.ts +59 -0
  607. package/dist/http/websocket/ConnectionWiring.d.ts.map +1 -0
  608. package/dist/http/websocket/ConnectionWiring.js +165 -0
  609. package/dist/http/websocket/ConnectionWiring.js.map +1 -0
  610. package/dist/http/websocket/SocketAdapter.d.ts +72 -0
  611. package/dist/http/websocket/SocketAdapter.d.ts.map +1 -0
  612. package/dist/http/websocket/SocketAdapter.js +97 -0
  613. package/dist/http/websocket/SocketAdapter.js.map +1 -0
  614. package/dist/http/websocket/WebsocketClientActor.d.ts +68 -0
  615. package/dist/http/websocket/WebsocketClientActor.d.ts.map +1 -0
  616. package/dist/http/websocket/WebsocketClientActor.js +195 -0
  617. package/dist/http/websocket/WebsocketClientActor.js.map +1 -0
  618. package/dist/http/websocket/WebsocketClientOptions.d.ts +82 -0
  619. package/dist/http/websocket/WebsocketClientOptions.d.ts.map +1 -0
  620. package/dist/http/websocket/WebsocketClientOptions.js +82 -0
  621. package/dist/http/websocket/WebsocketClientOptions.js.map +1 -0
  622. package/dist/http/websocket/WebsocketCodec.d.ts +65 -0
  623. package/dist/http/websocket/WebsocketCodec.d.ts.map +1 -0
  624. package/dist/http/websocket/WebsocketCodec.js +82 -0
  625. package/dist/http/websocket/WebsocketCodec.js.map +1 -0
  626. package/dist/http/websocket/WebsocketConnection.d.ts +59 -0
  627. package/dist/http/websocket/WebsocketConnection.d.ts.map +1 -0
  628. package/dist/http/websocket/WebsocketConnection.js +45 -0
  629. package/dist/http/websocket/WebsocketConnection.js.map +1 -0
  630. package/dist/http/websocket/WebsocketConnectionActor.d.ts +51 -0
  631. package/dist/http/websocket/WebsocketConnectionActor.d.ts.map +1 -0
  632. package/dist/http/websocket/WebsocketConnectionActor.js +170 -0
  633. package/dist/http/websocket/WebsocketConnectionActor.js.map +1 -0
  634. package/dist/http/websocket/WebsocketMessages.d.ts +115 -0
  635. package/dist/http/websocket/WebsocketMessages.d.ts.map +1 -0
  636. package/dist/http/websocket/WebsocketMessages.js +41 -0
  637. package/dist/http/websocket/WebsocketMessages.js.map +1 -0
  638. package/dist/http/websocket/WebsocketPolicy.d.ts +51 -0
  639. package/dist/http/websocket/WebsocketPolicy.d.ts.map +1 -0
  640. package/dist/http/websocket/WebsocketPolicy.js +70 -0
  641. package/dist/http/websocket/WebsocketPolicy.js.map +1 -0
  642. package/dist/http/websocket/WebsocketRoute.d.ts +20 -0
  643. package/dist/http/websocket/WebsocketRoute.d.ts.map +1 -0
  644. package/dist/http/websocket/WebsocketRoute.js +72 -0
  645. package/dist/http/websocket/WebsocketRoute.js.map +1 -0
  646. package/dist/http/websocket/WebsocketRouteOptions.d.ts +91 -0
  647. package/dist/http/websocket/WebsocketRouteOptions.d.ts.map +1 -0
  648. package/dist/http/websocket/WebsocketRouteOptions.js +92 -0
  649. package/dist/http/websocket/WebsocketRouteOptions.js.map +1 -0
  650. package/dist/http/websocket/WebsocketServerActor.d.ts +65 -0
  651. package/dist/http/websocket/WebsocketServerActor.d.ts.map +1 -0
  652. package/dist/http/websocket/WebsocketServerActor.js +141 -0
  653. package/dist/http/websocket/WebsocketServerActor.js.map +1 -0
  654. package/dist/http/websocket/index.d.ts +22 -0
  655. package/dist/http/websocket/index.d.ts.map +1 -0
  656. package/dist/http/websocket/index.js +15 -0
  657. package/dist/http/websocket/index.js.map +1 -0
  658. package/dist/http/websocket/matchPattern.d.ts +12 -0
  659. package/dist/http/websocket/matchPattern.d.ts.map +1 -0
  660. package/dist/http/websocket/matchPattern.js +43 -0
  661. package/dist/http/websocket/matchPattern.js.map +1 -0
  662. package/dist/http/websocket/rawResponse.d.ts +15 -0
  663. package/dist/http/websocket/rawResponse.d.ts.map +1 -0
  664. package/dist/http/websocket/rawResponse.js +64 -0
  665. package/dist/http/websocket/rawResponse.js.map +1 -0
  666. package/dist/http/websocket/types.d.ts +70 -0
  667. package/dist/http/websocket/types.d.ts.map +1 -0
  668. package/dist/http/websocket/types.js +81 -0
  669. package/dist/http/websocket/types.js.map +1 -0
  670. package/dist/http/websocket/websocketConstructor.d.ts +34 -0
  671. package/dist/http/websocket/websocketConstructor.d.ts.map +1 -0
  672. package/dist/http/websocket/websocketConstructor.js +38 -0
  673. package/dist/http/websocket/websocketConstructor.js.map +1 -0
  674. package/dist/index.d.ts +31 -28
  675. package/dist/index.d.ts.map +1 -1
  676. package/dist/index.js +18 -13
  677. package/dist/index.js.map +1 -1
  678. package/dist/internal/ActorCell.d.ts +24 -9
  679. package/dist/internal/ActorCell.d.ts.map +1 -1
  680. package/dist/internal/ActorCell.js +66 -36
  681. package/dist/internal/ActorCell.js.map +1 -1
  682. package/dist/internal/LocalActorRef.d.ts +4 -4
  683. package/dist/internal/LocalActorRef.d.ts.map +1 -1
  684. package/dist/internal/LocalActorRef.js.map +1 -1
  685. package/dist/io/broker/AmqpActor.d.ts +26 -21
  686. package/dist/io/broker/AmqpActor.d.ts.map +1 -1
  687. package/dist/io/broker/AmqpActor.js +41 -31
  688. package/dist/io/broker/AmqpActor.js.map +1 -1
  689. package/dist/io/broker/AmqpOptions.d.ts +46 -0
  690. package/dist/io/broker/AmqpOptions.d.ts.map +1 -0
  691. package/dist/io/broker/AmqpOptions.js +45 -0
  692. package/dist/io/broker/AmqpOptions.js.map +1 -0
  693. package/dist/io/broker/BrokerActor.d.ts +34 -24
  694. package/dist/io/broker/BrokerActor.d.ts.map +1 -1
  695. package/dist/io/broker/BrokerActor.js +51 -36
  696. package/dist/io/broker/BrokerActor.js.map +1 -1
  697. package/dist/io/broker/BrokerOptions.d.ts +125 -0
  698. package/dist/io/broker/BrokerOptions.d.ts.map +1 -0
  699. package/dist/io/broker/BrokerOptions.js +151 -0
  700. package/dist/io/broker/BrokerOptions.js.map +1 -0
  701. package/dist/io/broker/GrpcClientActor.d.ts +13 -24
  702. package/dist/io/broker/GrpcClientActor.d.ts.map +1 -1
  703. package/dist/io/broker/GrpcClientActor.js +42 -40
  704. package/dist/io/broker/GrpcClientActor.js.map +1 -1
  705. package/dist/io/broker/GrpcClientOptions.d.ts +53 -0
  706. package/dist/io/broker/GrpcClientOptions.d.ts.map +1 -0
  707. package/dist/io/broker/GrpcClientOptions.js +52 -0
  708. package/dist/io/broker/GrpcClientOptions.js.map +1 -0
  709. package/dist/io/broker/GrpcServerActor.d.ts +6 -27
  710. package/dist/io/broker/GrpcServerActor.d.ts.map +1 -1
  711. package/dist/io/broker/GrpcServerActor.js +30 -30
  712. package/dist/io/broker/GrpcServerActor.js.map +1 -1
  713. package/dist/io/broker/GrpcServerOptions.d.ts +58 -0
  714. package/dist/io/broker/GrpcServerOptions.d.ts.map +1 -0
  715. package/dist/io/broker/GrpcServerOptions.js +44 -0
  716. package/dist/io/broker/GrpcServerOptions.js.map +1 -0
  717. package/dist/io/broker/JetStreamActor.d.ts +27 -47
  718. package/dist/io/broker/JetStreamActor.d.ts.map +1 -1
  719. package/dist/io/broker/JetStreamActor.js +93 -91
  720. package/dist/io/broker/JetStreamActor.js.map +1 -1
  721. package/dist/io/broker/JetStreamOptions.d.ts +69 -0
  722. package/dist/io/broker/JetStreamOptions.d.ts.map +1 -0
  723. package/dist/io/broker/JetStreamOptions.js +65 -0
  724. package/dist/io/broker/JetStreamOptions.js.map +1 -0
  725. package/dist/io/broker/KafkaActor.d.ts +24 -63
  726. package/dist/io/broker/KafkaActor.d.ts.map +1 -1
  727. package/dist/io/broker/KafkaActor.js +76 -62
  728. package/dist/io/broker/KafkaActor.js.map +1 -1
  729. package/dist/io/broker/KafkaOptions.d.ts +87 -0
  730. package/dist/io/broker/KafkaOptions.d.ts.map +1 -0
  731. package/dist/io/broker/KafkaOptions.js +61 -0
  732. package/dist/io/broker/KafkaOptions.js.map +1 -0
  733. package/dist/io/broker/MqttActor.d.ts +178 -116
  734. package/dist/io/broker/MqttActor.d.ts.map +1 -1
  735. package/dist/io/broker/MqttActor.js +373 -147
  736. package/dist/io/broker/MqttActor.js.map +1 -1
  737. package/dist/io/broker/MqttCodec.d.ts +70 -0
  738. package/dist/io/broker/MqttCodec.d.ts.map +1 -0
  739. package/dist/io/broker/MqttCodec.js +98 -0
  740. package/dist/io/broker/MqttCodec.js.map +1 -0
  741. package/dist/io/broker/MqttMessages.d.ts +149 -0
  742. package/dist/io/broker/MqttMessages.d.ts.map +1 -0
  743. package/dist/io/broker/MqttMessages.js +86 -0
  744. package/dist/io/broker/MqttMessages.js.map +1 -0
  745. package/dist/io/broker/MqttOptions.d.ts +109 -0
  746. package/dist/io/broker/MqttOptions.d.ts.map +1 -0
  747. package/dist/io/broker/MqttOptions.js +90 -0
  748. package/dist/io/broker/MqttOptions.js.map +1 -0
  749. package/dist/io/broker/NatsActor.d.ts +12 -25
  750. package/dist/io/broker/NatsActor.d.ts.map +1 -1
  751. package/dist/io/broker/NatsActor.js +36 -34
  752. package/dist/io/broker/NatsActor.js.map +1 -1
  753. package/dist/io/broker/NatsOptions.d.ts +56 -0
  754. package/dist/io/broker/NatsOptions.d.ts.map +1 -0
  755. package/dist/io/broker/NatsOptions.js +52 -0
  756. package/dist/io/broker/NatsOptions.js.map +1 -0
  757. package/dist/io/broker/RedisStreamsActor.d.ts +12 -28
  758. package/dist/io/broker/RedisStreamsActor.d.ts.map +1 -1
  759. package/dist/io/broker/RedisStreamsActor.js +40 -38
  760. package/dist/io/broker/RedisStreamsActor.js.map +1 -1
  761. package/dist/io/broker/RedisStreamsOptions.d.ts +56 -0
  762. package/dist/io/broker/RedisStreamsOptions.d.ts.map +1 -0
  763. package/dist/io/broker/RedisStreamsOptions.js +49 -0
  764. package/dist/io/broker/RedisStreamsOptions.js.map +1 -0
  765. package/dist/io/broker/SseActor.d.ts +12 -19
  766. package/dist/io/broker/SseActor.d.ts.map +1 -1
  767. package/dist/io/broker/SseActor.js +43 -22
  768. package/dist/io/broker/SseActor.js.map +1 -1
  769. package/dist/io/broker/SseOptions.d.ts +43 -0
  770. package/dist/io/broker/SseOptions.d.ts.map +1 -0
  771. package/dist/io/broker/SseOptions.js +40 -0
  772. package/dist/io/broker/SseOptions.js.map +1 -0
  773. package/dist/io/broker/TcpSocketActor.d.ts +12 -25
  774. package/dist/io/broker/TcpSocketActor.d.ts.map +1 -1
  775. package/dist/io/broker/TcpSocketActor.js +35 -24
  776. package/dist/io/broker/TcpSocketActor.js.map +1 -1
  777. package/dist/io/broker/TcpSocketOptions.d.ts +51 -0
  778. package/dist/io/broker/TcpSocketOptions.d.ts.map +1 -0
  779. package/dist/io/broker/TcpSocketOptions.js +45 -0
  780. package/dist/io/broker/TcpSocketOptions.js.map +1 -0
  781. package/dist/io/broker/UdpSocketActor.d.ts +12 -21
  782. package/dist/io/broker/UdpSocketActor.d.ts.map +1 -1
  783. package/dist/io/broker/UdpSocketActor.js +18 -16
  784. package/dist/io/broker/UdpSocketActor.js.map +1 -1
  785. package/dist/io/broker/UdpSocketOptions.d.ts +47 -0
  786. package/dist/io/broker/UdpSocketOptions.d.ts.map +1 -0
  787. package/dist/io/broker/UdpSocketOptions.js +49 -0
  788. package/dist/io/broker/UdpSocketOptions.js.map +1 -0
  789. package/dist/io/broker/index.d.ts +39 -19
  790. package/dist/io/broker/index.d.ts.map +1 -1
  791. package/dist/io/broker/index.js +22 -5
  792. package/dist/io/broker/index.js.map +1 -1
  793. package/dist/mailbox/BoundedMailbox.d.ts +3 -5
  794. package/dist/mailbox/BoundedMailbox.d.ts.map +1 -1
  795. package/dist/mailbox/BoundedMailbox.js +11 -4
  796. package/dist/mailbox/BoundedMailbox.js.map +1 -1
  797. package/dist/mailbox/BoundedMailboxOptions.d.ts +49 -0
  798. package/dist/mailbox/BoundedMailboxOptions.d.ts.map +1 -0
  799. package/dist/mailbox/BoundedMailboxOptions.js +46 -0
  800. package/dist/mailbox/BoundedMailboxOptions.js.map +1 -0
  801. package/dist/mailbox/PriorityMailbox.d.ts +2 -4
  802. package/dist/mailbox/PriorityMailbox.d.ts.map +1 -1
  803. package/dist/mailbox/PriorityMailbox.js +4 -4
  804. package/dist/mailbox/PriorityMailbox.js.map +1 -1
  805. package/dist/mailbox/PriorityMailboxOptions.d.ts +27 -0
  806. package/dist/mailbox/PriorityMailboxOptions.d.ts.map +1 -0
  807. package/dist/mailbox/PriorityMailboxOptions.js +20 -0
  808. package/dist/mailbox/PriorityMailboxOptions.js.map +1 -0
  809. package/dist/mailbox/index.d.ts +6 -2
  810. package/dist/mailbox/index.d.ts.map +1 -1
  811. package/dist/mailbox/index.js +2 -0
  812. package/dist/mailbox/index.js.map +1 -1
  813. package/dist/management/HttpManagement.d.ts +2 -18
  814. package/dist/management/HttpManagement.d.ts.map +1 -1
  815. package/dist/management/HttpManagement.js +38 -11
  816. package/dist/management/HttpManagement.js.map +1 -1
  817. package/dist/management/ManagementRoutesOptions.d.ts +43 -0
  818. package/dist/management/ManagementRoutesOptions.d.ts.map +1 -0
  819. package/dist/management/ManagementRoutesOptions.js +35 -0
  820. package/dist/management/ManagementRoutesOptions.js.map +1 -0
  821. package/dist/management/index.d.ts +2 -1
  822. package/dist/management/index.d.ts.map +1 -1
  823. package/dist/management/index.js +1 -0
  824. package/dist/management/index.js.map +1 -1
  825. package/dist/metrics/Metrics.js +11 -11
  826. package/dist/metrics/Metrics.js.map +1 -1
  827. package/dist/metrics/PromClientAdapter.d.ts +2 -12
  828. package/dist/metrics/PromClientAdapter.d.ts.map +1 -1
  829. package/dist/metrics/PromClientAdapter.js +2 -2
  830. package/dist/metrics/PromClientAdapter.js.map +1 -1
  831. package/dist/metrics/PromClientAdapterOptions.d.ts +46 -0
  832. package/dist/metrics/PromClientAdapterOptions.d.ts.map +1 -0
  833. package/dist/metrics/PromClientAdapterOptions.js +35 -0
  834. package/dist/metrics/PromClientAdapterOptions.js.map +1 -0
  835. package/dist/metrics/PrometheusExporter.js +23 -23
  836. package/dist/metrics/PrometheusExporter.js.map +1 -1
  837. package/dist/metrics/index.d.ts +3 -1
  838. package/dist/metrics/index.d.ts.map +1 -1
  839. package/dist/metrics/index.js +1 -0
  840. package/dist/metrics/index.js.map +1 -1
  841. package/dist/pattern/BackoffPolicy.js +5 -5
  842. package/dist/pattern/BackoffPolicy.js.map +1 -1
  843. package/dist/pattern/CircuitBreaker.d.ts +3 -12
  844. package/dist/pattern/CircuitBreaker.d.ts.map +1 -1
  845. package/dist/pattern/CircuitBreaker.js +13 -16
  846. package/dist/pattern/CircuitBreaker.js.map +1 -1
  847. package/dist/pattern/CircuitBreakerOptions.d.ts +50 -0
  848. package/dist/pattern/CircuitBreakerOptions.d.ts.map +1 -0
  849. package/dist/pattern/CircuitBreakerOptions.js +53 -0
  850. package/dist/pattern/CircuitBreakerOptions.js.map +1 -0
  851. package/dist/pattern/index.d.ts +3 -1
  852. package/dist/pattern/index.d.ts.map +1 -1
  853. package/dist/pattern/index.js +1 -0
  854. package/dist/pattern/index.js.map +1 -1
  855. package/dist/persistence/DurableStateActor.d.ts +4 -9
  856. package/dist/persistence/DurableStateActor.d.ts.map +1 -1
  857. package/dist/persistence/DurableStateActor.js +9 -9
  858. package/dist/persistence/DurableStateActor.js.map +1 -1
  859. package/dist/persistence/DurableStateOptions.d.ts +40 -0
  860. package/dist/persistence/DurableStateOptions.d.ts.map +1 -0
  861. package/dist/persistence/DurableStateOptions.js +36 -0
  862. package/dist/persistence/DurableStateOptions.js.map +1 -0
  863. package/dist/persistence/EventDispatcher.js +3 -3
  864. package/dist/persistence/EventDispatcher.js.map +1 -1
  865. package/dist/persistence/JournalEventBus.js +2 -2
  866. package/dist/persistence/JournalEventBus.js.map +1 -1
  867. package/dist/persistence/PersistenceOptions.d.ts +46 -1
  868. package/dist/persistence/PersistenceOptions.d.ts.map +1 -1
  869. package/dist/persistence/PersistenceOptions.js +1 -1
  870. package/dist/persistence/ReplicatedEventSourcedActor.d.ts +2 -2
  871. package/dist/persistence/ReplicatedEventSourcedActor.d.ts.map +1 -1
  872. package/dist/persistence/ReplicatedEventSourcedActor.js +4 -4
  873. package/dist/persistence/ReplicatedEventSourcedActor.js.map +1 -1
  874. package/dist/persistence/durable-state-stores/MariaDbDurableStateStore.d.ts +32 -0
  875. package/dist/persistence/durable-state-stores/MariaDbDurableStateStore.d.ts.map +1 -0
  876. package/dist/persistence/durable-state-stores/MariaDbDurableStateStore.js +120 -0
  877. package/dist/persistence/durable-state-stores/MariaDbDurableStateStore.js.map +1 -0
  878. package/dist/persistence/durable-state-stores/MariaDbDurableStateStoreOptions.d.ts +38 -0
  879. package/dist/persistence/durable-state-stores/MariaDbDurableStateStoreOptions.d.ts.map +1 -0
  880. package/dist/persistence/durable-state-stores/MariaDbDurableStateStoreOptions.js +38 -0
  881. package/dist/persistence/durable-state-stores/MariaDbDurableStateStoreOptions.js.map +1 -0
  882. package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.d.ts +5 -9
  883. package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.d.ts.map +1 -1
  884. package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.js +52 -8
  885. package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStore.js.map +1 -1
  886. package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStoreOptions.d.ts +83 -0
  887. package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStoreOptions.d.ts.map +1 -0
  888. package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStoreOptions.js +67 -0
  889. package/dist/persistence/durable-state-stores/ObjectStorageDurableStateStoreOptions.js.map +1 -0
  890. package/dist/persistence/durable-state-stores/PostgresDurableStateStore.d.ts +38 -0
  891. package/dist/persistence/durable-state-stores/PostgresDurableStateStore.d.ts.map +1 -0
  892. package/dist/persistence/durable-state-stores/PostgresDurableStateStore.js +121 -0
  893. package/dist/persistence/durable-state-stores/PostgresDurableStateStore.js.map +1 -0
  894. package/dist/persistence/durable-state-stores/PostgresDurableStateStoreOptions.d.ts +38 -0
  895. package/dist/persistence/durable-state-stores/PostgresDurableStateStoreOptions.d.ts.map +1 -0
  896. package/dist/persistence/durable-state-stores/PostgresDurableStateStoreOptions.js +38 -0
  897. package/dist/persistence/durable-state-stores/PostgresDurableStateStoreOptions.js.map +1 -0
  898. package/dist/persistence/index.d.ts +59 -16
  899. package/dist/persistence/index.d.ts.map +1 -1
  900. package/dist/persistence/index.js +33 -2
  901. package/dist/persistence/index.js.map +1 -1
  902. package/dist/persistence/journals/CassandraClient.d.ts +1 -1
  903. package/dist/persistence/journals/CassandraClient.d.ts.map +1 -1
  904. package/dist/persistence/journals/CassandraJournal.d.ts +1 -48
  905. package/dist/persistence/journals/CassandraJournal.d.ts.map +1 -1
  906. package/dist/persistence/journals/CassandraJournal.js +16 -7
  907. package/dist/persistence/journals/CassandraJournal.js.map +1 -1
  908. package/dist/persistence/journals/CassandraJournalOptions.d.ts +113 -0
  909. package/dist/persistence/journals/CassandraJournalOptions.d.ts.map +1 -0
  910. package/dist/persistence/journals/CassandraJournalOptions.js +101 -0
  911. package/dist/persistence/journals/CassandraJournalOptions.js.map +1 -0
  912. package/dist/persistence/journals/CassandraPlugin.d.ts +1 -16
  913. package/dist/persistence/journals/CassandraPlugin.d.ts.map +1 -1
  914. package/dist/persistence/journals/CassandraPlugin.js +9 -4
  915. package/dist/persistence/journals/CassandraPlugin.js.map +1 -1
  916. package/dist/persistence/journals/CassandraPluginOptions.d.ts +51 -0
  917. package/dist/persistence/journals/CassandraPluginOptions.d.ts.map +1 -0
  918. package/dist/persistence/journals/CassandraPluginOptions.js +37 -0
  919. package/dist/persistence/journals/CassandraPluginOptions.js.map +1 -0
  920. package/dist/persistence/journals/MariaDbClient.d.ts +54 -0
  921. package/dist/persistence/journals/MariaDbClient.d.ts.map +1 -0
  922. package/dist/persistence/journals/MariaDbClient.js +40 -0
  923. package/dist/persistence/journals/MariaDbClient.js.map +1 -0
  924. package/dist/persistence/journals/MariaDbJournal.d.ts +29 -0
  925. package/dist/persistence/journals/MariaDbJournal.d.ts.map +1 -0
  926. package/dist/persistence/journals/MariaDbJournal.js +161 -0
  927. package/dist/persistence/journals/MariaDbJournal.js.map +1 -0
  928. package/dist/persistence/journals/MariaDbJournalOptions.d.ts +43 -0
  929. package/dist/persistence/journals/MariaDbJournalOptions.d.ts.map +1 -0
  930. package/dist/persistence/journals/MariaDbJournalOptions.js +43 -0
  931. package/dist/persistence/journals/MariaDbJournalOptions.js.map +1 -0
  932. package/dist/persistence/journals/MariaDbPlugin.d.ts +27 -0
  933. package/dist/persistence/journals/MariaDbPlugin.d.ts.map +1 -0
  934. package/dist/persistence/journals/MariaDbPlugin.js +30 -0
  935. package/dist/persistence/journals/MariaDbPlugin.js.map +1 -0
  936. package/dist/persistence/journals/MariaDbPluginOptions.d.ts +52 -0
  937. package/dist/persistence/journals/MariaDbPluginOptions.d.ts.map +1 -0
  938. package/dist/persistence/journals/MariaDbPluginOptions.js +38 -0
  939. package/dist/persistence/journals/MariaDbPluginOptions.js.map +1 -0
  940. package/dist/persistence/journals/PostgresClient.d.ts +56 -0
  941. package/dist/persistence/journals/PostgresClient.d.ts.map +1 -0
  942. package/dist/persistence/journals/PostgresClient.js +35 -0
  943. package/dist/persistence/journals/PostgresClient.js.map +1 -0
  944. package/dist/persistence/journals/PostgresJournal.d.ts +41 -0
  945. package/dist/persistence/journals/PostgresJournal.d.ts.map +1 -0
  946. package/dist/persistence/journals/PostgresJournal.js +176 -0
  947. package/dist/persistence/journals/PostgresJournal.js.map +1 -0
  948. package/dist/persistence/journals/PostgresJournalOptions.d.ts +44 -0
  949. package/dist/persistence/journals/PostgresJournalOptions.d.ts.map +1 -0
  950. package/dist/persistence/journals/PostgresJournalOptions.js +44 -0
  951. package/dist/persistence/journals/PostgresJournalOptions.js.map +1 -0
  952. package/dist/persistence/journals/PostgresPlugin.d.ts +32 -0
  953. package/dist/persistence/journals/PostgresPlugin.d.ts.map +1 -0
  954. package/dist/persistence/journals/PostgresPlugin.js +35 -0
  955. package/dist/persistence/journals/PostgresPlugin.js.map +1 -0
  956. package/dist/persistence/journals/PostgresPluginOptions.d.ts +54 -0
  957. package/dist/persistence/journals/PostgresPluginOptions.d.ts.map +1 -0
  958. package/dist/persistence/journals/PostgresPluginOptions.js +39 -0
  959. package/dist/persistence/journals/PostgresPluginOptions.js.map +1 -0
  960. package/dist/persistence/journals/SqliteJournal.d.ts +4 -18
  961. package/dist/persistence/journals/SqliteJournal.d.ts.map +1 -1
  962. package/dist/persistence/journals/SqliteJournal.js +13 -8
  963. package/dist/persistence/journals/SqliteJournal.js.map +1 -1
  964. package/dist/persistence/journals/SqliteJournalOptions.d.ts +41 -0
  965. package/dist/persistence/journals/SqliteJournalOptions.d.ts.map +1 -0
  966. package/dist/persistence/journals/SqliteJournalOptions.js +31 -0
  967. package/dist/persistence/journals/SqliteJournalOptions.js.map +1 -0
  968. package/dist/persistence/migration/MigrationChain.js +3 -3
  969. package/dist/persistence/migration/MigrationChain.js.map +1 -1
  970. package/dist/persistence/migration/SchemaRegistry.js +9 -9
  971. package/dist/persistence/migration/SchemaRegistry.js.map +1 -1
  972. package/dist/persistence/migration/defaultsAdapter.js +10 -10
  973. package/dist/persistence/migration/defaultsAdapter.js.map +1 -1
  974. package/dist/persistence/migration/validatedAdapter.js +4 -4
  975. package/dist/persistence/migration/validatedAdapter.js.map +1 -1
  976. package/dist/persistence/migration/wrapLegacy.js +2 -2
  977. package/dist/persistence/migration/wrapLegacy.js.map +1 -1
  978. package/dist/persistence/object-storage/BodyCodec.d.ts +57 -0
  979. package/dist/persistence/object-storage/BodyCodec.d.ts.map +1 -1
  980. package/dist/persistence/object-storage/BodyCodec.js +88 -22
  981. package/dist/persistence/object-storage/BodyCodec.js.map +1 -1
  982. package/dist/persistence/object-storage/Compression.d.ts +28 -8
  983. package/dist/persistence/object-storage/Compression.d.ts.map +1 -1
  984. package/dist/persistence/object-storage/Compression.js +107 -32
  985. package/dist/persistence/object-storage/Compression.js.map +1 -1
  986. package/dist/persistence/object-storage/Encryption.js +3 -3
  987. package/dist/persistence/object-storage/Encryption.js.map +1 -1
  988. package/dist/persistence/object-storage/FilesystemObjectStorageBackend.d.ts +2 -61
  989. package/dist/persistence/object-storage/FilesystemObjectStorageBackend.d.ts.map +1 -1
  990. package/dist/persistence/object-storage/FilesystemObjectStorageBackend.js +61 -16
  991. package/dist/persistence/object-storage/FilesystemObjectStorageBackend.js.map +1 -1
  992. package/dist/persistence/object-storage/FilesystemObjectStorageOptions.d.ts +51 -0
  993. package/dist/persistence/object-storage/FilesystemObjectStorageOptions.d.ts.map +1 -0
  994. package/dist/persistence/object-storage/FilesystemObjectStorageOptions.js +44 -0
  995. package/dist/persistence/object-storage/FilesystemObjectStorageOptions.js.map +1 -0
  996. package/dist/persistence/object-storage/Integrity.d.ts +43 -0
  997. package/dist/persistence/object-storage/Integrity.d.ts.map +1 -0
  998. package/dist/persistence/object-storage/Integrity.js +66 -0
  999. package/dist/persistence/object-storage/Integrity.js.map +1 -0
  1000. package/dist/persistence/object-storage/ObjectStoragePlugin.d.ts +8 -24
  1001. package/dist/persistence/object-storage/ObjectStoragePlugin.d.ts.map +1 -1
  1002. package/dist/persistence/object-storage/ObjectStoragePlugin.js +39 -29
  1003. package/dist/persistence/object-storage/ObjectStoragePlugin.js.map +1 -1
  1004. package/dist/persistence/object-storage/ObjectStoragePluginOptions.d.ts +72 -0
  1005. package/dist/persistence/object-storage/ObjectStoragePluginOptions.d.ts.map +1 -0
  1006. package/dist/persistence/object-storage/ObjectStoragePluginOptions.js +59 -0
  1007. package/dist/persistence/object-storage/ObjectStoragePluginOptions.js.map +1 -0
  1008. package/dist/persistence/object-storage/PluginConfig.d.ts +5 -2
  1009. package/dist/persistence/object-storage/PluginConfig.d.ts.map +1 -1
  1010. package/dist/persistence/object-storage/PluginConfig.js +8 -0
  1011. package/dist/persistence/object-storage/PluginConfig.js.map +1 -1
  1012. package/dist/persistence/object-storage/S3ObjectStorageBackend.d.ts +1 -30
  1013. package/dist/persistence/object-storage/S3ObjectStorageBackend.d.ts.map +1 -1
  1014. package/dist/persistence/object-storage/S3ObjectStorageBackend.js +24 -21
  1015. package/dist/persistence/object-storage/S3ObjectStorageBackend.js.map +1 -1
  1016. package/dist/persistence/object-storage/S3ObjectStorageOptions.d.ts +70 -0
  1017. package/dist/persistence/object-storage/S3ObjectStorageOptions.d.ts.map +1 -0
  1018. package/dist/persistence/object-storage/S3ObjectStorageOptions.js +58 -0
  1019. package/dist/persistence/object-storage/S3ObjectStorageOptions.js.map +1 -0
  1020. package/dist/persistence/object-storage/reEncryptionSweep.d.ts +72 -0
  1021. package/dist/persistence/object-storage/reEncryptionSweep.d.ts.map +1 -1
  1022. package/dist/persistence/object-storage/reEncryptionSweep.js +82 -2
  1023. package/dist/persistence/object-storage/reEncryptionSweep.js.map +1 -1
  1024. package/dist/persistence/projection/ProjectionActor.d.ts +4 -24
  1025. package/dist/persistence/projection/ProjectionActor.d.ts.map +1 -1
  1026. package/dist/persistence/projection/ProjectionActor.js +45 -11
  1027. package/dist/persistence/projection/ProjectionActor.js.map +1 -1
  1028. package/dist/persistence/projection/ProjectionOptions.d.ts +109 -0
  1029. package/dist/persistence/projection/ProjectionOptions.d.ts.map +1 -0
  1030. package/dist/persistence/projection/ProjectionOptions.js +108 -0
  1031. package/dist/persistence/projection/ProjectionOptions.js.map +1 -0
  1032. package/dist/persistence/query/CassandraQuery.js +11 -11
  1033. package/dist/persistence/query/CassandraQuery.js.map +1 -1
  1034. package/dist/persistence/query/InMemoryQuery.js +12 -12
  1035. package/dist/persistence/query/InMemoryQuery.js.map +1 -1
  1036. package/dist/persistence/query/PersistenceQuery.js +6 -6
  1037. package/dist/persistence/query/PersistenceQuery.js.map +1 -1
  1038. package/dist/persistence/query/SqliteQuery.js +6 -6
  1039. package/dist/persistence/query/SqliteQuery.js.map +1 -1
  1040. package/dist/persistence/replicated/VectorClock.js +13 -13
  1041. package/dist/persistence/replicated/VectorClock.js.map +1 -1
  1042. package/dist/persistence/snapshot-stores/CachedSnapshotStore.d.ts +2 -10
  1043. package/dist/persistence/snapshot-stores/CachedSnapshotStore.d.ts.map +1 -1
  1044. package/dist/persistence/snapshot-stores/CachedSnapshotStore.js +12 -9
  1045. package/dist/persistence/snapshot-stores/CachedSnapshotStore.js.map +1 -1
  1046. package/dist/persistence/snapshot-stores/CachedSnapshotStoreOptions.d.ts +47 -0
  1047. package/dist/persistence/snapshot-stores/CachedSnapshotStoreOptions.d.ts.map +1 -0
  1048. package/dist/persistence/snapshot-stores/CachedSnapshotStoreOptions.js +47 -0
  1049. package/dist/persistence/snapshot-stores/CachedSnapshotStoreOptions.js.map +1 -0
  1050. package/dist/persistence/snapshot-stores/CassandraSnapshotStore.d.ts +1 -11
  1051. package/dist/persistence/snapshot-stores/CassandraSnapshotStore.d.ts.map +1 -1
  1052. package/dist/persistence/snapshot-stores/CassandraSnapshotStore.js +3 -3
  1053. package/dist/persistence/snapshot-stores/CassandraSnapshotStore.js.map +1 -1
  1054. package/dist/persistence/snapshot-stores/CassandraSnapshotStoreOptions.d.ts +61 -0
  1055. package/dist/persistence/snapshot-stores/CassandraSnapshotStoreOptions.d.ts.map +1 -0
  1056. package/dist/persistence/snapshot-stores/CassandraSnapshotStoreOptions.js +73 -0
  1057. package/dist/persistence/snapshot-stores/CassandraSnapshotStoreOptions.js.map +1 -0
  1058. package/dist/persistence/snapshot-stores/MariaDbSnapshotStore.d.ts +30 -0
  1059. package/dist/persistence/snapshot-stores/MariaDbSnapshotStore.d.ts.map +1 -0
  1060. package/dist/persistence/snapshot-stores/MariaDbSnapshotStore.js +102 -0
  1061. package/dist/persistence/snapshot-stores/MariaDbSnapshotStore.js.map +1 -0
  1062. package/dist/persistence/snapshot-stores/MariaDbSnapshotStoreOptions.d.ts +42 -0
  1063. package/dist/persistence/snapshot-stores/MariaDbSnapshotStoreOptions.d.ts.map +1 -0
  1064. package/dist/persistence/snapshot-stores/MariaDbSnapshotStoreOptions.js +42 -0
  1065. package/dist/persistence/snapshot-stores/MariaDbSnapshotStoreOptions.js.map +1 -0
  1066. package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.d.ts +3 -15
  1067. package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.d.ts.map +1 -1
  1068. package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.js +28 -17
  1069. package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStore.js.map +1 -1
  1070. package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStoreOptions.d.ts +67 -0
  1071. package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStoreOptions.d.ts.map +1 -0
  1072. package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStoreOptions.js +63 -0
  1073. package/dist/persistence/snapshot-stores/ObjectStorageSnapshotStoreOptions.js.map +1 -0
  1074. package/dist/persistence/snapshot-stores/PostgresSnapshotStore.d.ts +31 -0
  1075. package/dist/persistence/snapshot-stores/PostgresSnapshotStore.d.ts.map +1 -0
  1076. package/dist/persistence/snapshot-stores/PostgresSnapshotStore.js +101 -0
  1077. package/dist/persistence/snapshot-stores/PostgresSnapshotStore.js.map +1 -0
  1078. package/dist/persistence/snapshot-stores/PostgresSnapshotStoreOptions.d.ts +42 -0
  1079. package/dist/persistence/snapshot-stores/PostgresSnapshotStoreOptions.d.ts.map +1 -0
  1080. package/dist/persistence/snapshot-stores/PostgresSnapshotStoreOptions.js +42 -0
  1081. package/dist/persistence/snapshot-stores/PostgresSnapshotStoreOptions.js.map +1 -0
  1082. package/dist/persistence/snapshot-stores/SqliteSnapshotStore.d.ts +1 -14
  1083. package/dist/persistence/snapshot-stores/SqliteSnapshotStore.d.ts.map +1 -1
  1084. package/dist/persistence/snapshot-stores/SqliteSnapshotStore.js +6 -3
  1085. package/dist/persistence/snapshot-stores/SqliteSnapshotStore.js.map +1 -1
  1086. package/dist/persistence/snapshot-stores/SqliteSnapshotStoreOptions.d.ts +40 -0
  1087. package/dist/persistence/snapshot-stores/SqliteSnapshotStoreOptions.d.ts.map +1 -0
  1088. package/dist/persistence/snapshot-stores/SqliteSnapshotStoreOptions.js +31 -0
  1089. package/dist/persistence/snapshot-stores/SqliteSnapshotStoreOptions.js.map +1 -0
  1090. package/dist/persistence/storage/KeyValidator.js +3 -3
  1091. package/dist/persistence/storage/KeyValidator.js.map +1 -1
  1092. package/dist/persistence/storage/SqlIdentifier.d.ts +11 -0
  1093. package/dist/persistence/storage/SqlIdentifier.d.ts.map +1 -0
  1094. package/dist/persistence/storage/SqlIdentifier.js +16 -0
  1095. package/dist/persistence/storage/SqlIdentifier.js.map +1 -0
  1096. package/dist/runtime/detect.d.ts.map +1 -1
  1097. package/dist/runtime/detect.js +7 -7
  1098. package/dist/runtime/detect.js.map +1 -1
  1099. package/dist/runtime/http/BunHonoRunner.d.ts +7 -1
  1100. package/dist/runtime/http/BunHonoRunner.d.ts.map +1 -1
  1101. package/dist/runtime/http/BunHonoRunner.js +22 -0
  1102. package/dist/runtime/http/BunHonoRunner.js.map +1 -1
  1103. package/dist/runtime/http/DenoHonoRunner.d.ts +5 -2
  1104. package/dist/runtime/http/DenoHonoRunner.d.ts.map +1 -1
  1105. package/dist/runtime/http/DenoHonoRunner.js +19 -2
  1106. package/dist/runtime/http/DenoHonoRunner.js.map +1 -1
  1107. package/dist/runtime/http/HonoServerRunner.d.ts +39 -0
  1108. package/dist/runtime/http/HonoServerRunner.d.ts.map +1 -1
  1109. package/dist/runtime/http/NodeHonoRunner.d.ts +3 -1
  1110. package/dist/runtime/http/NodeHonoRunner.d.ts.map +1 -1
  1111. package/dist/runtime/http/NodeHonoRunner.js +24 -2
  1112. package/dist/runtime/http/NodeHonoRunner.js.map +1 -1
  1113. package/dist/runtime/http/index.d.ts +1 -1
  1114. package/dist/runtime/http/index.d.ts.map +1 -1
  1115. package/dist/runtime/http/index.js.map +1 -1
  1116. package/dist/runtime/sqlite/BetterSqliteDriver.js.map +1 -1
  1117. package/dist/runtime/sqlite/BunSqliteDriver.js.map +1 -1
  1118. package/dist/runtime/tcp/BunTcpBackend.d.ts +3 -3
  1119. package/dist/runtime/tcp/BunTcpBackend.d.ts.map +1 -1
  1120. package/dist/runtime/tcp/DenoTcpBackend.d.ts +3 -3
  1121. package/dist/runtime/tcp/DenoTcpBackend.d.ts.map +1 -1
  1122. package/dist/runtime/tcp/DenoTcpBackend.js +3 -3
  1123. package/dist/runtime/tcp/DenoTcpBackend.js.map +1 -1
  1124. package/dist/runtime/tcp/NodeTcpBackend.d.ts +3 -3
  1125. package/dist/runtime/tcp/NodeTcpBackend.d.ts.map +1 -1
  1126. package/dist/runtime/tcp/TcpBackend.d.ts +3 -3
  1127. package/dist/runtime/tcp/TcpBackend.d.ts.map +1 -1
  1128. package/dist/runtime/tcp/index.d.ts +1 -1
  1129. package/dist/runtime/tcp/index.d.ts.map +1 -1
  1130. package/dist/runtime/worker/NodeWorkerBackend.js.map +1 -1
  1131. package/dist/runtime/worker/WebWorkerBackend.js +3 -3
  1132. package/dist/runtime/worker/WebWorkerBackend.js.map +1 -1
  1133. package/dist/serialization/CborCodec.d.ts +2 -2
  1134. package/dist/serialization/CborCodec.d.ts.map +1 -1
  1135. package/dist/serialization/CborCodec.js +80 -80
  1136. package/dist/serialization/CborCodec.js.map +1 -1
  1137. package/dist/serialization/JsonSerializer.js +20 -7
  1138. package/dist/serialization/JsonSerializer.js.map +1 -1
  1139. package/dist/serialization/SerializationExtension.d.ts +2 -2
  1140. package/dist/serialization/SerializationExtension.d.ts.map +1 -1
  1141. package/dist/serialization/SerializationExtension.js +3 -3
  1142. package/dist/serialization/SerializationExtension.js.map +1 -1
  1143. package/dist/testkit/ManualScheduler.d.ts +2 -1
  1144. package/dist/testkit/ManualScheduler.d.ts.map +1 -1
  1145. package/dist/testkit/ManualScheduler.js +10 -9
  1146. package/dist/testkit/ManualScheduler.js.map +1 -1
  1147. package/dist/testkit/MockCluster.d.ts +67 -0
  1148. package/dist/testkit/MockCluster.d.ts.map +1 -0
  1149. package/dist/testkit/MockCluster.js +189 -0
  1150. package/dist/testkit/MockCluster.js.map +1 -0
  1151. package/dist/testkit/MockClusterOptions.d.ts +32 -0
  1152. package/dist/testkit/MockClusterOptions.d.ts.map +1 -0
  1153. package/dist/testkit/MockClusterOptions.js +23 -0
  1154. package/dist/testkit/MockClusterOptions.js.map +1 -0
  1155. package/dist/testkit/MultiNodeClusterFixture.d.ts +63 -0
  1156. package/dist/testkit/MultiNodeClusterFixture.d.ts.map +1 -0
  1157. package/dist/testkit/MultiNodeClusterFixture.js +43 -0
  1158. package/dist/testkit/MultiNodeClusterFixture.js.map +1 -0
  1159. package/dist/testkit/MultiNodeSpec.d.ts +45 -81
  1160. package/dist/testkit/MultiNodeSpec.d.ts.map +1 -1
  1161. package/dist/testkit/MultiNodeSpec.js +139 -44
  1162. package/dist/testkit/MultiNodeSpec.js.map +1 -1
  1163. package/dist/testkit/MultiNodeSpecOptions.d.ts +57 -0
  1164. package/dist/testkit/MultiNodeSpecOptions.d.ts.map +1 -0
  1165. package/dist/testkit/MultiNodeSpecOptions.js +43 -0
  1166. package/dist/testkit/MultiNodeSpecOptions.js.map +1 -0
  1167. package/dist/testkit/ParallelMultiNodeSpec.d.ts +13 -72
  1168. package/dist/testkit/ParallelMultiNodeSpec.d.ts.map +1 -1
  1169. package/dist/testkit/ParallelMultiNodeSpec.js +82 -36
  1170. package/dist/testkit/ParallelMultiNodeSpec.js.map +1 -1
  1171. package/dist/testkit/ParallelMultiNodeSpecOptions.d.ts +58 -0
  1172. package/dist/testkit/ParallelMultiNodeSpecOptions.d.ts.map +1 -0
  1173. package/dist/testkit/ParallelMultiNodeSpecOptions.js +51 -0
  1174. package/dist/testkit/ParallelMultiNodeSpecOptions.js.map +1 -0
  1175. package/dist/testkit/SnapshotMigrationTest.d.ts +86 -0
  1176. package/dist/testkit/SnapshotMigrationTest.d.ts.map +1 -0
  1177. package/dist/testkit/SnapshotMigrationTest.js +77 -0
  1178. package/dist/testkit/SnapshotMigrationTest.js.map +1 -0
  1179. package/dist/testkit/TestKit.d.ts +7 -9
  1180. package/dist/testkit/TestKit.d.ts.map +1 -1
  1181. package/dist/testkit/TestKit.js +11 -7
  1182. package/dist/testkit/TestKit.js.map +1 -1
  1183. package/dist/testkit/TestKitOptions.d.ts +26 -0
  1184. package/dist/testkit/TestKitOptions.d.ts.map +1 -0
  1185. package/dist/testkit/TestKitOptions.js +19 -0
  1186. package/dist/testkit/TestKitOptions.js.map +1 -0
  1187. package/dist/testkit/TestProbe.d.ts +5 -10
  1188. package/dist/testkit/TestProbe.d.ts.map +1 -1
  1189. package/dist/testkit/TestProbe.js +23 -20
  1190. package/dist/testkit/TestProbe.js.map +1 -1
  1191. package/dist/testkit/TestProbeOptions.d.ts +32 -0
  1192. package/dist/testkit/TestProbeOptions.d.ts.map +1 -0
  1193. package/dist/testkit/TestProbeOptions.js +29 -0
  1194. package/dist/testkit/TestProbeOptions.js.map +1 -0
  1195. package/dist/testkit/index.d.ts +15 -4
  1196. package/dist/testkit/index.d.ts.map +1 -1
  1197. package/dist/testkit/index.js +8 -0
  1198. package/dist/testkit/index.js.map +1 -1
  1199. package/dist/testkit/internal/MultiNodeBroker.js +3 -3
  1200. package/dist/testkit/internal/MultiNodeBroker.js.map +1 -1
  1201. package/dist/testkit/internal/MultiNodeTransport.js +2 -2
  1202. package/dist/testkit/internal/MultiNodeTransport.js.map +1 -1
  1203. package/dist/testkit/internal/parallel-multi-node-bootstrap.d.ts.map +1 -1
  1204. package/dist/testkit/internal/parallel-multi-node-bootstrap.js +21 -17
  1205. package/dist/testkit/internal/parallel-multi-node-bootstrap.js.map +1 -1
  1206. package/dist/tracing/OtelAdapter.d.ts +4 -12
  1207. package/dist/tracing/OtelAdapter.d.ts.map +1 -1
  1208. package/dist/tracing/OtelAdapter.js +4 -2
  1209. package/dist/tracing/OtelAdapter.js.map +1 -1
  1210. package/dist/tracing/OtelAdapterOptions.d.ts +42 -0
  1211. package/dist/tracing/OtelAdapterOptions.d.ts.map +1 -0
  1212. package/dist/tracing/OtelAdapterOptions.js +34 -0
  1213. package/dist/tracing/OtelAdapterOptions.js.map +1 -0
  1214. package/dist/tracing/OtelLogsAdapter.d.ts +100 -0
  1215. package/dist/tracing/OtelLogsAdapter.d.ts.map +1 -0
  1216. package/dist/tracing/OtelLogsAdapter.js +130 -0
  1217. package/dist/tracing/OtelLogsAdapter.js.map +1 -0
  1218. package/dist/tracing/Tracer.js +2 -2
  1219. package/dist/tracing/Tracer.js.map +1 -1
  1220. package/dist/tracing/index.d.ts +5 -1
  1221. package/dist/tracing/index.d.ts.map +1 -1
  1222. package/dist/tracing/index.js +2 -0
  1223. package/dist/tracing/index.js.map +1 -1
  1224. package/dist/typed/TypedActor.d.ts.map +1 -1
  1225. package/dist/typed/TypedActor.js +6 -6
  1226. package/dist/typed/TypedActor.js.map +1 -1
  1227. package/dist/util/Constants.d.ts +24 -1
  1228. package/dist/util/Constants.d.ts.map +1 -1
  1229. package/dist/util/Constants.js +24 -1
  1230. package/dist/util/Constants.js.map +1 -1
  1231. package/dist/util/Either.js +4 -4
  1232. package/dist/util/Either.js.map +1 -1
  1233. package/dist/util/Lazy.d.ts +31 -0
  1234. package/dist/util/Lazy.d.ts.map +1 -1
  1235. package/dist/util/Lazy.js +70 -0
  1236. package/dist/util/Lazy.js.map +1 -1
  1237. package/dist/util/OptionsBuilder.d.ts +48 -0
  1238. package/dist/util/OptionsBuilder.d.ts.map +1 -0
  1239. package/dist/util/OptionsBuilder.js +53 -0
  1240. package/dist/util/OptionsBuilder.js.map +1 -0
  1241. package/dist/util/OptionsValidator.d.ts +114 -0
  1242. package/dist/util/OptionsValidator.d.ts.map +1 -0
  1243. package/dist/util/OptionsValidator.js +204 -0
  1244. package/dist/util/OptionsValidator.js.map +1 -0
  1245. package/dist/util/Try.js +4 -4
  1246. package/dist/util/Try.js.map +1 -1
  1247. package/dist/worker/WorkerCluster.d.ts +3 -12
  1248. package/dist/worker/WorkerCluster.d.ts.map +1 -1
  1249. package/dist/worker/WorkerCluster.js +33 -30
  1250. package/dist/worker/WorkerCluster.js.map +1 -1
  1251. package/dist/worker/WorkerClusterOptions.d.ts +61 -0
  1252. package/dist/worker/WorkerClusterOptions.d.ts.map +1 -0
  1253. package/dist/worker/WorkerClusterOptions.js +70 -0
  1254. package/dist/worker/WorkerClusterOptions.js.map +1 -0
  1255. package/dist/worker/WorkerNode.js +5 -5
  1256. package/dist/worker/WorkerNode.js.map +1 -1
  1257. package/dist/worker/index.d.ts +3 -1
  1258. package/dist/worker/index.d.ts.map +1 -1
  1259. package/dist/worker/index.js +1 -0
  1260. package/dist/worker/index.js.map +1 -1
  1261. package/package.json +56 -13
  1262. package/dist/io/broker/BrokerSettings.d.ts +0 -72
  1263. package/dist/io/broker/BrokerSettings.d.ts.map +0 -1
  1264. package/dist/io/broker/BrokerSettings.js +0 -73
  1265. package/dist/io/broker/BrokerSettings.js.map +0 -1
  1266. package/dist/io/broker/ServerWebSocketActor.d.ts +0 -109
  1267. package/dist/io/broker/ServerWebSocketActor.d.ts.map +0 -1
  1268. package/dist/io/broker/ServerWebSocketActor.js +0 -128
  1269. package/dist/io/broker/ServerWebSocketActor.js.map +0 -1
  1270. package/dist/io/broker/WebSocketActor.d.ts +0 -77
  1271. package/dist/io/broker/WebSocketActor.d.ts.map +0 -1
  1272. package/dist/io/broker/WebSocketActor.js +0 -217
  1273. package/dist/io/broker/WebSocketActor.js.map +0 -1
  1274. package/dist/io/broker/WebSocketServerAdapters.d.ts +0 -140
  1275. package/dist/io/broker/WebSocketServerAdapters.d.ts.map +0 -1
  1276. package/dist/io/broker/WebSocketServerAdapters.js +0 -155
  1277. package/dist/io/broker/WebSocketServerAdapters.js.map +0 -1
@@ -0,0 +1,41 @@
1
+ import { OptionsBuilder } from '../../util/OptionsBuilder.js';
2
+ import { OptionsValidator } from '../../util/OptionsValidator.js';
3
+ /** Plain options-object shape accepted by {@link KeepReferee}. */
4
+ export interface KeepRefereeOptionsType {
5
+ /**
6
+ * Fixed "referee" address; whichever partition contains it survives.
7
+ * Must match the address format returned by `NodeAddress.toString()`.
8
+ */
9
+ readonly refereeAddress: string;
10
+ /** Additional quorum a.k.a. down-all-if-referee-reachable-but-too-few. */
11
+ readonly downAllIfBelowQuorum?: number;
12
+ }
13
+ /**
14
+ * Fluent builder for {@link KeepRefereeOptionsType}:
15
+ *
16
+ * new KeepReferee(
17
+ * KeepRefereeOptions.create().withRefereeAddress('sys@10.0.0.1:2551'),
18
+ * );
19
+ */
20
+ export declare class KeepRefereeOptionsBuilder extends OptionsBuilder<KeepRefereeOptionsType> {
21
+ /** Start a fresh builder. */
22
+ static create(): KeepRefereeOptionsBuilder;
23
+ /** Fixed referee address; the partition containing it survives. */
24
+ withRefereeAddress(refereeAddress: string): this;
25
+ /** Down everyone if the referee side has fewer than this many members. */
26
+ withDownAllIfBelowQuorum(count: number): this;
27
+ }
28
+ /** Validates resolved {@link KeepRefereeOptionsType} settings. */
29
+ export declare class KeepRefereeOptionsValidator extends OptionsValidator<KeepRefereeOptionsType> {
30
+ constructor();
31
+ protected rules(s: Partial<KeepRefereeOptionsType>): void;
32
+ }
33
+ /**
34
+ * Accepted input for the {@link KeepReferee} constructor: the fluent
35
+ * {@link KeepRefereeOptionsBuilder} OR a plain {@link KeepRefereeOptionsType}
36
+ * object.
37
+ */
38
+ export type KeepRefereeOptions = KeepRefereeOptionsBuilder | Partial<KeepRefereeOptionsType>;
39
+ /** Value alias so `KeepRefereeOptions.create()` / `new KeepRefereeOptions()` resolve to the builder. */
40
+ export declare const KeepRefereeOptions: typeof KeepRefereeOptionsBuilder;
41
+ //# sourceMappingURL=KeepRefereeOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeepRefereeOptions.d.ts","sourceRoot":"","sources":["../../../src/cluster/downing/KeepRefereeOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,kEAAkE;AAClE,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,0EAA0E;IAC1E,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACxC;AAED;;;;;;GAMG;AACH,qBAAa,yBAA0B,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IACnF,6BAA6B;IAC7B,MAAM,CAAC,MAAM,IAAI,yBAAyB;IAI1C,mEAAmE;IACnE,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAIhD,0EAA0E;IAC1E,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAG9C;AAED,kEAAkE;AAClE,qBAAa,2BAA4B,SAAQ,gBAAgB,CAAC,sBAAsB,CAAC;;IAIvF,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI;CAK1D;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,yBAAyB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAC7F,wGAAwG;AACxG,eAAO,MAAM,kBAAkB,kCAA4B,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { OptionsBuilder } from '../../util/OptionsBuilder.js';
2
+ import { OptionsValidator } from '../../util/OptionsValidator.js';
3
+ /**
4
+ * Fluent builder for {@link KeepRefereeOptionsType}:
5
+ *
6
+ * new KeepReferee(
7
+ * KeepRefereeOptions.create().withRefereeAddress('sys@10.0.0.1:2551'),
8
+ * );
9
+ */
10
+ export class KeepRefereeOptionsBuilder extends OptionsBuilder {
11
+ /** Start a fresh builder. */
12
+ static create() {
13
+ return new KeepRefereeOptionsBuilder();
14
+ }
15
+ /** Fixed referee address; the partition containing it survives. */
16
+ withRefereeAddress(refereeAddress) {
17
+ return this.set('refereeAddress', refereeAddress);
18
+ }
19
+ /** Down everyone if the referee side has fewer than this many members. */
20
+ withDownAllIfBelowQuorum(count) {
21
+ return this.set('downAllIfBelowQuorum', count);
22
+ }
23
+ }
24
+ /** Validates resolved {@link KeepRefereeOptionsType} settings. */
25
+ export class KeepRefereeOptionsValidator extends OptionsValidator {
26
+ constructor() {
27
+ super('KeepRefereeOptions');
28
+ }
29
+ rules(s) {
30
+ if (s.refereeAddress === undefined)
31
+ this.fail('refereeAddress', 'is required');
32
+ this.nonEmptyString('refereeAddress');
33
+ this.positiveInt('downAllIfBelowQuorum');
34
+ }
35
+ }
36
+ /** Value alias so `KeepRefereeOptions.create()` / `new KeepRefereeOptions()` resolve to the builder. */
37
+ export const KeepRefereeOptions = KeepRefereeOptionsBuilder;
38
+ //# sourceMappingURL=KeepRefereeOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeepRefereeOptions.js","sourceRoot":"","sources":["../../../src/cluster/downing/KeepRefereeOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAalE;;;;;;GAMG;AACH,MAAM,OAAO,yBAA0B,SAAQ,cAAsC;IACnF,6BAA6B;IAC7B,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,yBAAyB,EAAE,CAAC;IACzC,CAAC;IAED,mEAAmE;IACnE,kBAAkB,CAAC,cAAsB;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IACpD,CAAC;IAED,0EAA0E;IAC1E,wBAAwB,CAAC,KAAa;QACpC,OAAO,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;CACF;AAED,kEAAkE;AAClE,MAAM,OAAO,2BAA4B,SAAQ,gBAAwC;IACvF;QACE,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC9B,CAAC;IACS,KAAK,CAAC,CAAkC;QAChD,IAAI,CAAC,CAAC,cAAc,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAC/E,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAC3C,CAAC;CACF;AAQD,wGAAwG;AACxG,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC"}
@@ -1,23 +1,5 @@
1
- import type { Lease } from '../../coordination/Lease.js';
2
1
  import { type ClusterPartitionView, type DowningDecision, type DowningProvider } from './DowningProvider.js';
3
- export interface LeaseMajoritySettings {
4
- /**
5
- * External arbiter — typically a `KubernetesLease` so both sides
6
- * of a partition reach the same K8s API and only one acquires.
7
- * Each replica owns its own `Lease` instance with a distinct
8
- * `owner` (its node address); the underlying lease record is
9
- * shared (same `name`).
10
- */
11
- readonly lease: Lease;
12
- /**
13
- * Hard ceiling on a single `acquire()` attempt. After this we
14
- * return no decision and let the next failure-detection tick
15
- * trigger a fresh attempt. Default: 5 s.
16
- */
17
- readonly acquireTimeoutMs?: number;
18
- /** If set, only members carrying this role count toward the majority. */
19
- readonly role?: string;
20
- }
2
+ import type { LeaseMajorityOptions } from './LeaseMajorityOptions.js';
21
3
  /**
22
4
  * Split-brain resolver that uses an external `Lease` to break ties
23
5
  * when the cluster splits into equal-sized partitions — the case
@@ -46,9 +28,41 @@ export interface LeaseMajoritySettings {
46
28
  * `acquire()` rejects → strategy stays in pending state and returns
47
29
  * an empty decision. Better to wait than to risk both sides
48
30
  * surviving.
31
+ *
32
+ * **Slow / hung acquire (#142 split-brain hardening)**
33
+ *
34
+ * If `lease.acquire()` hasn't resolved by `acquireTimeoutMs`, the
35
+ * defence-in-depth logic kicks in:
36
+ *
37
+ * - **Epoch invalidation** — every kickoff captures a monotonic
38
+ * `acquireEpoch`. The timeout-recovery bumps the epoch, so a
39
+ * late-arriving result from the timed-out attempt is dropped
40
+ * (it can't write a stale `decision`).
41
+ * - **Release-on-abandon** — we fire-and-forget `lease.release()`
42
+ * to undo any acquire that may have succeeded on the wire
43
+ * after we gave up locally. Without this, an acquire that
44
+ * timed out on the client but succeeded on the server leaves
45
+ * the lease record claimed without anyone observing the win —
46
+ * a classic stale-token split-brain vector.
47
+ * - **Fail-safe on release failure** — if the abandoning release
48
+ * itself rejects, the lease state is now ambiguous (we may or
49
+ * may not hold it; we can't tell). The strategy enters
50
+ * fail-safe: every subsequent `decide()` for the same partition
51
+ * view returns an empty decision, refusing to claim majority
52
+ * until the partition heals (which resets the fail-safe flag).
53
+ *
54
+ * **Fencing tokens (optional)**
55
+ *
56
+ * If the underlying `Lease` implements `acquireWithToken()` (K8s
57
+ * Lease's `resourceVersion`, Redis SETNX with counter, etc.), the
58
+ * strategy uses it instead of plain `acquire()`. The token isn't
59
+ * inspected at decide-time — the local epoch is the source of
60
+ * truth for "is this result still valid?" — but having the token
61
+ * means tighter integration with the underlying lease's native
62
+ * fencing primitive (e.g. release-with-token semantics, when
63
+ * future work adds them).
49
64
  */
50
65
  export declare class LeaseMajority implements DowningProvider {
51
- private readonly settings;
52
66
  /** Cached decision once acquire has resolved. Cleared on a fresh
53
67
  * partition view so a new split triggers a new acquire. */
54
68
  private decision;
@@ -61,9 +75,37 @@ export declare class LeaseMajority implements DowningProvider {
61
75
  /** Wall-clock deadline of the in-flight acquire — used to recover
62
76
  * if `acquire()` hangs longer than the user's budget. */
63
77
  private acquireDeadline;
64
- constructor(settings: LeaseMajoritySettings);
78
+ /**
79
+ * Monotonic counter incremented on every acquire kickoff AND on
80
+ * every timeout / reset. `runAcquire` captures the epoch at start
81
+ * and drops its result if the epoch has moved on by the time it
82
+ * resolves — that's the core of #142's stale-acquire protection.
83
+ */
84
+ private acquireEpoch;
85
+ /**
86
+ * Set when an abandoning `release()` itself failed. The lease's
87
+ * holder identity is now ambiguous and we MUST NOT claim majority
88
+ * until the partition heals (which clears the flag). See #142.
89
+ */
90
+ private failSafe;
91
+ private readonly options;
92
+ constructor(options: LeaseMajorityOptions);
65
93
  decide(view: ClusterPartitionView): DowningDecision;
94
+ /**
95
+ * Run a single acquire attempt, scoped to a captured epoch. The
96
+ * write to `this.decision` only happens if the epoch is still
97
+ * current at resolve time — that's how we drop stale results
98
+ * from a previously-timed-out attempt.
99
+ */
66
100
  private runAcquire;
101
+ /**
102
+ * Best-effort release of any in-flight ownership after a timeout.
103
+ * If the release itself rejects, the lease state is ambiguous and
104
+ * the strategy enters fail-safe. Same epoch as the abandoned
105
+ * acquire — if a fresh acquire has already kicked off (incremented
106
+ * epoch beyond ours), the failure isn't ours to act on.
107
+ */
108
+ private runAbandonRelease;
67
109
  private reset;
68
110
  private fingerprintOf;
69
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LeaseMajority.d.ts","sourceRoot":"","sources":["../../../src/cluster/downing/LeaseMajority.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,aAAc,YAAW,eAAe;IAiBvC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAhBrC;gEAC4D;IAC5D,OAAO,CAAC,QAAQ,CAAgC;IAEhD,8CAA8C;IAC9C,OAAO,CAAC,SAAS,CAAS;IAE1B;;4BAEwB;IACxB,OAAO,CAAC,eAAe,CAAuB;IAE9C;8DAC0D;IAC1D,OAAO,CAAC,eAAe,CAAK;gBAEC,QAAQ,EAAE,qBAAqB;IAE5D,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,eAAe;YAmErC,UAAU;IAiBxB,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,aAAa;CAQtB"}
1
+ {"version":3,"file":"LeaseMajority.d.ts","sourceRoot":"","sources":["../../../src/cluster/downing/LeaseMajority.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,oBAAoB,EAA4B,MAAM,2BAA2B,CAAC;AAEhG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,qBAAa,aAAc,YAAW,eAAe;IACnD;gEAC4D;IAC5D,OAAO,CAAC,QAAQ,CAAgC;IAEhD,8CAA8C;IAC9C,OAAO,CAAC,SAAS,CAAS;IAE1B;;4BAEwB;IACxB,OAAO,CAAC,eAAe,CAAuB;IAE9C;8DAC0D;IAC1D,OAAO,CAAC,eAAe,CAAK;IAE5B;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAAK;IAEzB;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;gBAEvC,OAAO,EAAE,oBAAoB;IAKzC,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,eAAe;IAsFnD;;;;;OAKG;YACW,UAAU;IA4CxB;;;;;;OAMG;YACW,iBAAiB;IAe/B,OAAO,CAAC,KAAK;IAWb,OAAO,CAAC,aAAa;CAQtB"}
@@ -1,4 +1,5 @@
1
1
  import { addrKey, } from './DowningProvider.js';
2
+ import { LeaseMajorityOptionsValidator } from './LeaseMajorityOptions.js';
2
3
  /**
3
4
  * Split-brain resolver that uses an external `Lease` to break ties
4
5
  * when the cluster splits into equal-sized partitions — the case
@@ -27,9 +28,41 @@ import { addrKey, } from './DowningProvider.js';
27
28
  * `acquire()` rejects → strategy stays in pending state and returns
28
29
  * an empty decision. Better to wait than to risk both sides
29
30
  * surviving.
31
+ *
32
+ * **Slow / hung acquire (#142 split-brain hardening)**
33
+ *
34
+ * If `lease.acquire()` hasn't resolved by `acquireTimeoutMs`, the
35
+ * defence-in-depth logic kicks in:
36
+ *
37
+ * - **Epoch invalidation** — every kickoff captures a monotonic
38
+ * `acquireEpoch`. The timeout-recovery bumps the epoch, so a
39
+ * late-arriving result from the timed-out attempt is dropped
40
+ * (it can't write a stale `decision`).
41
+ * - **Release-on-abandon** — we fire-and-forget `lease.release()`
42
+ * to undo any acquire that may have succeeded on the wire
43
+ * after we gave up locally. Without this, an acquire that
44
+ * timed out on the client but succeeded on the server leaves
45
+ * the lease record claimed without anyone observing the win —
46
+ * a classic stale-token split-brain vector.
47
+ * - **Fail-safe on release failure** — if the abandoning release
48
+ * itself rejects, the lease state is now ambiguous (we may or
49
+ * may not hold it; we can't tell). The strategy enters
50
+ * fail-safe: every subsequent `decide()` for the same partition
51
+ * view returns an empty decision, refusing to claim majority
52
+ * until the partition heals (which resets the fail-safe flag).
53
+ *
54
+ * **Fencing tokens (optional)**
55
+ *
56
+ * If the underlying `Lease` implements `acquireWithToken()` (K8s
57
+ * Lease's `resourceVersion`, Redis SETNX with counter, etc.), the
58
+ * strategy uses it instead of plain `acquire()`. The token isn't
59
+ * inspected at decide-time — the local epoch is the source of
60
+ * truth for "is this result still valid?" — but having the token
61
+ * means tighter integration with the underlying lease's native
62
+ * fencing primitive (e.g. release-with-token semantics, when
63
+ * future work adds them).
30
64
  */
31
65
  export class LeaseMajority {
32
- settings;
33
66
  /** Cached decision once acquire has resolved. Cleared on a fresh
34
67
  * partition view so a new split triggers a new acquire. */
35
68
  decision = null;
@@ -42,18 +75,33 @@ export class LeaseMajority {
42
75
  /** Wall-clock deadline of the in-flight acquire — used to recover
43
76
  * if `acquire()` hangs longer than the user's budget. */
44
77
  acquireDeadline = 0;
45
- constructor(settings) {
46
- this.settings = settings;
78
+ /**
79
+ * Monotonic counter incremented on every acquire kickoff AND on
80
+ * every timeout / reset. `runAcquire` captures the epoch at start
81
+ * and drops its result if the epoch has moved on by the time it
82
+ * resolves — that's the core of #142's stale-acquire protection.
83
+ */
84
+ acquireEpoch = 0;
85
+ /**
86
+ * Set when an abandoning `release()` itself failed. The lease's
87
+ * holder identity is now ambiguous and we MUST NOT claim majority
88
+ * until the partition heals (which clears the flag). See #142.
89
+ */
90
+ failSafe = false;
91
+ options;
92
+ constructor(options) {
93
+ this.options = options;
94
+ new LeaseMajorityOptionsValidator().validate(this.options);
47
95
  }
48
96
  decide(view) {
49
97
  const candidates = view.allMembers.filter((m) => (m.status === 'up' || m.status === 'leaving' || m.status === 'unreachable') &&
50
- (!this.settings.role || m.hasRole(this.settings.role)));
98
+ (!this.options.role || m.hasRole(this.options.role)));
51
99
  if (candidates.length === 0)
52
100
  return new Set();
53
101
  const reachable = candidates.filter((m) => !view.unreachable.has(addrKey(m)));
54
102
  const unreachable = candidates.filter((m) => view.unreachable.has(addrKey(m)));
55
- const n = candidates.length;
56
- const needed = Math.floor(n / 2) + 1;
103
+ const count = candidates.length;
104
+ const needed = Math.floor(count / 2) + 1;
57
105
  const fingerprint = this.fingerprintOf(reachable, unreachable);
58
106
  // No partition (everyone reachable) → reset state, no decision.
59
107
  if (unreachable.length === 0) {
@@ -78,6 +126,15 @@ export class LeaseMajority {
78
126
  }
79
127
  // Equal-size partition (or stuck-quorum corner case) — Lease
80
128
  // arbitration kicks in.
129
+ // Fail-safe: a prior abandon-release failed and the lease state
130
+ // is ambiguous. Refuse to claim majority until the partition
131
+ // heals (which clears the flag via reset()). Refuses to even
132
+ // kick off a fresh acquire — we don't know whether we already
133
+ // hold the lease, so a fresh acquire might "succeed" trivially
134
+ // (same-owner renew) and give us a false win. #142.
135
+ if (this.failSafe) {
136
+ return new Set();
137
+ }
81
138
  if (this.decision !== null) {
82
139
  // Cached from a prior tick on this same view.
83
140
  return this.decision;
@@ -85,45 +142,113 @@ export class LeaseMajority {
85
142
  if (this.acquiring) {
86
143
  // Recover if the acquire stalled past its budget. The Lease
87
144
  // implementation is supposed to honour its own retry/timeout
88
- // settings, but defence-in-depth: if it hasn't resolved by
89
- // the deadline, treat it as a transient failure and let the
90
- // next tick try again.
145
+ // options, but defence-in-depth: if it hasn't resolved by
146
+ // the deadline, bump the epoch (so the late result is dropped)
147
+ // and proactively release any in-flight ownership — see #142.
91
148
  if (Date.now() > this.acquireDeadline) {
92
149
  this.acquiring = false;
150
+ // Bump the epoch FIRST so the late runAcquire bails out before
151
+ // it can touch `this.decision`.
152
+ this.acquireEpoch += 1;
153
+ // Fire-and-forget release. If it rejects, the lease state is
154
+ // ambiguous and we must enter fail-safe — see runAbandonRelease.
155
+ void this.runAbandonRelease();
93
156
  }
94
157
  return new Set();
95
158
  }
96
159
  const surviveSet = new Set(unreachable.map(addrKey));
97
160
  const downSelfSet = new Set(reachable.map(addrKey));
98
161
  this.acquiring = true;
99
- this.acquireDeadline = Date.now() + (this.settings.acquireTimeoutMs ?? 5_000);
100
- void this.runAcquire(surviveSet, downSelfSet);
162
+ this.acquireDeadline = Date.now() + (this.options.acquireTimeoutMs ?? 5_000);
163
+ this.acquireEpoch += 1;
164
+ const myEpoch = this.acquireEpoch;
165
+ void this.runAcquire(myEpoch, surviveSet, downSelfSet);
101
166
  return new Set();
102
167
  }
103
168
  /* ------------------------------ internals ------------------------------ */
104
- async runAcquire(surviveSet, downSelfSet) {
169
+ /**
170
+ * Run a single acquire attempt, scoped to a captured epoch. The
171
+ * write to `this.decision` only happens if the epoch is still
172
+ * current at resolve time — that's how we drop stale results
173
+ * from a previously-timed-out attempt.
174
+ */
175
+ async runAcquire(myEpoch, surviveSet, downSelfSet) {
105
176
  let won;
106
177
  try {
107
- won = await this.settings.lease.acquire();
178
+ // Prefer the fencing-token API when the backend implements it.
179
+ // The token isn't inspected here (local epoch is sufficient for
180
+ // stale detection at decide-time), but using the API where
181
+ // available means the underlying lease's native fencing
182
+ // primitive participates in the round-trip — useful for backend-
183
+ // specific consistency checks and a stepping-stone for future
184
+ // release-with-token semantics.
185
+ if (typeof this.options.lease.acquireWithToken === 'function') {
186
+ const result = await this.options.lease.acquireWithToken();
187
+ won = result !== null;
188
+ }
189
+ else {
190
+ won = await this.options.lease.acquire();
191
+ }
108
192
  }
109
193
  catch {
110
194
  // Lease backend unreachable — stay pending. The next decide()
111
195
  // call sees `acquiring=false` (we clear it below) and restarts.
112
- this.acquiring = false;
196
+ // But only if our epoch is still current; otherwise the timeout
197
+ // path has already moved on and we should not touch shared state.
198
+ if (myEpoch === this.acquireEpoch) {
199
+ this.acquiring = false;
200
+ }
201
+ return;
202
+ }
203
+ // Stale resolve: the defence-in-depth timeout (or a reset()) has
204
+ // already invalidated this attempt. Drop the result silently —
205
+ // a fresh acquire is either already in flight or will be kicked
206
+ // off on the next decide(). Critical for #142: without this
207
+ // guard a slow `acquire() → true` could write `decision=surviveSet`
208
+ // after the operator considered the attempt abandoned, producing
209
+ // a split-brain where both sides "win".
210
+ if (myEpoch !== this.acquireEpoch) {
113
211
  return;
114
212
  }
115
213
  this.acquiring = false;
116
214
  this.decision = won ? surviveSet : downSelfSet;
117
215
  }
216
+ /**
217
+ * Best-effort release of any in-flight ownership after a timeout.
218
+ * If the release itself rejects, the lease state is ambiguous and
219
+ * the strategy enters fail-safe. Same epoch as the abandoned
220
+ * acquire — if a fresh acquire has already kicked off (incremented
221
+ * epoch beyond ours), the failure isn't ours to act on.
222
+ */
223
+ async runAbandonRelease() {
224
+ const myEpoch = this.acquireEpoch;
225
+ try {
226
+ await this.options.lease.release();
227
+ }
228
+ catch {
229
+ // Release failed. We may or may not hold the lease — we can't
230
+ // tell. Mark fail-safe so we don't claim majority on this
231
+ // view. But only if our epoch is still current; if a partition
232
+ // heal has already reset() us, this older failure is moot.
233
+ if (myEpoch === this.acquireEpoch) {
234
+ this.failSafe = true;
235
+ }
236
+ }
237
+ }
118
238
  reset() {
119
239
  this.decision = null;
120
240
  this.acquiring = false;
121
241
  this.lastFingerprint = null;
242
+ this.failSafe = false;
243
+ // Bump the epoch so any in-flight runAcquire from before the
244
+ // reset drops its result instead of writing to the cleared
245
+ // decision.
246
+ this.acquireEpoch += 1;
122
247
  }
123
248
  fingerprintOf(reachable, unreachable) {
124
- const r = reachable.map((m) => m.address.toString()).sort().join(',');
125
- const u = unreachable.map((m) => m.address.toString()).sort().join(',');
126
- return `R[${r}]|U[${u}]`;
249
+ const reachableKey = reachable.map((m) => m.address.toString()).sort().join(',');
250
+ const unreachableKey = unreachable.map((m) => m.address.toString()).sort().join(',');
251
+ return `R[${reachableKey}]|U[${unreachableKey}]`;
127
252
  }
128
253
  }
129
254
  //# sourceMappingURL=LeaseMajority.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LeaseMajority.js","sourceRoot":"","sources":["../../../src/cluster/downing/LeaseMajority.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LeaseMajority.js","sourceRoot":"","sources":["../../../src/cluster/downing/LeaseMajority.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import type { Lease } from '../../coordination/Lease.js';
2
+ import { OptionsBuilder } from '../../util/OptionsBuilder.js';
3
+ import { OptionsValidator } from '../../util/OptionsValidator.js';
4
+ /** Plain options-object shape accepted by {@link LeaseMajority}. */
5
+ export interface LeaseMajorityOptionsType {
6
+ /**
7
+ * External arbiter — typically a `KubernetesLease` so both sides
8
+ * of a partition reach the same K8s API and only one acquires.
9
+ * Each replica owns its own `Lease` instance with a distinct
10
+ * `owner` (its node address); the underlying lease record is
11
+ * shared (same `name`).
12
+ */
13
+ readonly lease: Lease;
14
+ /**
15
+ * Hard ceiling on a single `acquire()` attempt. After this we
16
+ * return no decision and let the next failure-detection tick
17
+ * trigger a fresh attempt. Default: 5 s.
18
+ */
19
+ readonly acquireTimeoutMs?: number;
20
+ /** If set, only members carrying this role count toward the majority. */
21
+ readonly role?: string;
22
+ }
23
+ /**
24
+ * Fluent builder for {@link LeaseMajorityOptionsType}:
25
+ *
26
+ * new LeaseMajority(
27
+ * LeaseMajorityOptions.create()
28
+ * .withLease(kubernetesLease)
29
+ * .withAcquireTimeoutMs(5_000),
30
+ * );
31
+ */
32
+ export declare class LeaseMajorityOptionsBuilder extends OptionsBuilder<LeaseMajorityOptionsType> {
33
+ /** Start a fresh builder. */
34
+ static create(): LeaseMajorityOptionsBuilder;
35
+ /** External arbiter lease — both sides of a partition contend for it. */
36
+ withLease(lease: Lease): this;
37
+ /** Hard ceiling on a single `acquire()` attempt in ms. Default 5 s. */
38
+ withAcquireTimeoutMs(ms: number): this;
39
+ /** Only members carrying this role count toward the majority. */
40
+ withRole(role: string): this;
41
+ }
42
+ /** Validates resolved {@link LeaseMajorityOptionsType} settings. */
43
+ export declare class LeaseMajorityOptionsValidator extends OptionsValidator<LeaseMajorityOptionsType> {
44
+ constructor();
45
+ protected rules(_s: Partial<LeaseMajorityOptionsType>): void;
46
+ }
47
+ /**
48
+ * Accepted input for the {@link LeaseMajority} constructor: the fluent
49
+ * {@link LeaseMajorityOptionsBuilder} OR a plain {@link LeaseMajorityOptionsType}
50
+ * object.
51
+ */
52
+ export type LeaseMajorityOptions = LeaseMajorityOptionsBuilder | Partial<LeaseMajorityOptionsType>;
53
+ /** Value alias so `LeaseMajorityOptions.create()` / `new LeaseMajorityOptions()` resolve to the builder. */
54
+ export declare const LeaseMajorityOptions: typeof LeaseMajorityOptionsBuilder;
55
+ //# sourceMappingURL=LeaseMajorityOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LeaseMajorityOptions.d.ts","sourceRoot":"","sources":["../../../src/cluster/downing/LeaseMajorityOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,oEAAoE;AACpE,MAAM,WAAW,wBAAwB;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,2BAA4B,SAAQ,cAAc,CAAC,wBAAwB,CAAC;IACvF,6BAA6B;IAC7B,MAAM,CAAC,MAAM,IAAI,2BAA2B;IAI5C,yEAAyE;IACzE,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAI7B,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAItC,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAG7B;AAED,oEAAoE;AACpE,qBAAa,6BAA8B,SAAQ,gBAAgB,CAAC,wBAAwB,CAAC;;IAI3F,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,wBAAwB,CAAC,GAAG,IAAI;CAG7D;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,2BAA2B,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AACnG,4GAA4G;AAC5G,eAAO,MAAM,oBAAoB,oCAA8B,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { OptionsBuilder } from '../../util/OptionsBuilder.js';
2
+ import { OptionsValidator } from '../../util/OptionsValidator.js';
3
+ /**
4
+ * Fluent builder for {@link LeaseMajorityOptionsType}:
5
+ *
6
+ * new LeaseMajority(
7
+ * LeaseMajorityOptions.create()
8
+ * .withLease(kubernetesLease)
9
+ * .withAcquireTimeoutMs(5_000),
10
+ * );
11
+ */
12
+ export class LeaseMajorityOptionsBuilder extends OptionsBuilder {
13
+ /** Start a fresh builder. */
14
+ static create() {
15
+ return new LeaseMajorityOptionsBuilder();
16
+ }
17
+ /** External arbiter lease — both sides of a partition contend for it. */
18
+ withLease(lease) {
19
+ return this.set('lease', lease);
20
+ }
21
+ /** Hard ceiling on a single `acquire()` attempt in ms. Default 5 s. */
22
+ withAcquireTimeoutMs(ms) {
23
+ return this.set('acquireTimeoutMs', ms);
24
+ }
25
+ /** Only members carrying this role count toward the majority. */
26
+ withRole(role) {
27
+ return this.set('role', role);
28
+ }
29
+ }
30
+ /** Validates resolved {@link LeaseMajorityOptionsType} settings. */
31
+ export class LeaseMajorityOptionsValidator extends OptionsValidator {
32
+ constructor() {
33
+ super('LeaseMajorityOptions');
34
+ }
35
+ rules(_s) {
36
+ this.positiveNumber('acquireTimeoutMs');
37
+ }
38
+ }
39
+ /** Value alias so `LeaseMajorityOptions.create()` / `new LeaseMajorityOptions()` resolve to the builder. */
40
+ export const LeaseMajorityOptions = LeaseMajorityOptionsBuilder;
41
+ //# sourceMappingURL=LeaseMajorityOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LeaseMajorityOptions.js","sourceRoot":"","sources":["../../../src/cluster/downing/LeaseMajorityOptions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAsBlE;;;;;;;;GAQG;AACH,MAAM,OAAO,2BAA4B,SAAQ,cAAwC;IACvF,6BAA6B;IAC7B,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,2BAA2B,EAAE,CAAC;IAC3C,CAAC;IAED,yEAAyE;IACzE,SAAS,CAAC,KAAY;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,wEAAwE;IACxE,oBAAoB,CAAC,EAAU;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,iEAAiE;IACjE,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,OAAO,6BAA8B,SAAQ,gBAA0C;IAC3F;QACE,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAChC,CAAC;IACS,KAAK,CAAC,EAAqC;QACnD,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC;CACF;AAQD,4GAA4G;AAC5G,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC"}
@@ -1,10 +1,5 @@
1
1
  import { type ClusterPartitionView, type DowningDecision, type DowningProvider } from './DowningProvider.js';
2
- export interface StaticQuorumSettings {
3
- /** Exact size of the quorum needed on the reachable side. */
4
- readonly quorumSize: number;
5
- /** If set, only members carrying this role count toward quorum. */
6
- readonly role?: string;
7
- }
2
+ import type { StaticQuorumOptions } from './StaticQuorumOptions.js';
8
3
  /**
9
4
  * "Static quorum" — as long as at least `quorumSize` reachable members are
10
5
  * up on this side, keep them and down the rest. Otherwise, down ourselves.
@@ -14,8 +9,8 @@ export interface StaticQuorumSettings {
14
9
  * shrink below the threshold.
15
10
  */
16
11
  export declare class StaticQuorum implements DowningProvider {
17
- private readonly settings;
18
- constructor(settings: StaticQuorumSettings);
12
+ private readonly options;
13
+ constructor(options: StaticQuorumOptions);
19
14
  decide(view: ClusterPartitionView): DowningDecision;
20
15
  }
21
16
  //# sourceMappingURL=StaticQuorum.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StaticQuorum.d.ts","sourceRoot":"","sources":["../../../src/cluster/downing/StaticQuorum.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,oBAAoB;IACnC,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,qBAAa,YAAa,YAAW,eAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,oBAAoB;IAM3D,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,eAAe;CAepD"}
1
+ {"version":3,"file":"StaticQuorum.d.ts","sourceRoot":"","sources":["../../../src/cluster/downing/StaticQuorum.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,mBAAmB,EAA2B,MAAM,0BAA0B,CAAC;AAE7F;;;;;;;GAOG;AACH,qBAAa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,OAAO,EAAE,mBAAmB;IAKxC,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,eAAe;CAepD"}
@@ -1,4 +1,5 @@
1
1
  import { addrKey, } from './DowningProvider.js';
2
+ import { StaticQuorumOptionsValidator } from './StaticQuorumOptions.js';
2
3
  /**
3
4
  * "Static quorum" — as long as at least `quorumSize` reachable members are
4
5
  * up on this side, keep them and down the rest. Otherwise, down ourselves.
@@ -8,19 +9,17 @@ import { addrKey, } from './DowningProvider.js';
8
9
  * shrink below the threshold.
9
10
  */
10
11
  export class StaticQuorum {
11
- settings;
12
- constructor(settings) {
13
- this.settings = settings;
14
- if (settings.quorumSize < 1) {
15
- throw new Error('StaticQuorum: quorumSize must be >= 1');
16
- }
12
+ options;
13
+ constructor(options) {
14
+ this.options = options;
15
+ new StaticQuorumOptionsValidator().validate(this.options);
17
16
  }
18
17
  decide(view) {
19
18
  const candidates = view.allMembers.filter((m) => (m.status === 'up' || m.status === 'leaving' || m.status === 'unreachable') &&
20
- (!this.settings.role || m.hasRole(this.settings.role)));
19
+ (!this.options.role || m.hasRole(this.options.role)));
21
20
  const reachable = candidates.filter((m) => !view.unreachable.has(addrKey(m)));
22
21
  const unreachable = candidates.filter((m) => view.unreachable.has(addrKey(m)));
23
- if (reachable.length >= this.settings.quorumSize) {
22
+ if (reachable.length >= this.options.quorumSize) {
24
23
  return new Set(unreachable.map(addrKey));
25
24
  }
26
25
  // Not enough reachable — we're below quorum, down ourselves.
@@ -1 +1 @@
1
- {"version":3,"file":"StaticQuorum.js","sourceRoot":"","sources":["../../../src/cluster/downing/StaticQuorum.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,GAIR,MAAM,sBAAsB,CAAC;AAS9B;;;;;;;GAOG;AACH,MAAM,OAAO,YAAY;IACM;IAA7B,YAA6B,QAA8B;QAA9B,aAAQ,GAAR,QAAQ,CAAsB;QACzD,IAAI,QAAQ,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAA0B;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9C,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC;YAC3E,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CACvD,CAAC;QAEF,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/E,IAAI,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YACjD,OAAO,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,6DAA6D;QAC7D,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC,CAAC;CACF"}
1
+ {"version":3,"file":"StaticQuorum.js","sourceRoot":"","sources":["../../../src/cluster/downing/StaticQuorum.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,GAIR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAGxE;;;;;;;GAOG;AACH,MAAM,OAAO,YAAY;IACN,OAAO,CAA0B;IAElD,YAAY,OAA4B;QACtC,IAAI,CAAC,OAAO,GAAG,OAAkC,CAAC;QAClD,IAAI,4BAA4B,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,IAA0B;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9C,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC;YAC3E,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CACrD,CAAC;QAEF,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/E,IAAI,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAChD,OAAO,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,6DAA6D;QAC7D,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC,CAAC;CACF"}