@celerispay/hazelcast-client 3.12.5-1

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 (746) hide show
  1. package/.nvmrc +1 -0
  2. package/CHANGELOG.md +140 -0
  3. package/CONFIG.md +503 -0
  4. package/FAILOVER_FIXES.md +202 -0
  5. package/LICENSE +202 -0
  6. package/QUICK_START.md +232 -0
  7. package/README.md +178 -0
  8. package/RELEASE_SUMMARY.md +260 -0
  9. package/config-schema.json +343 -0
  10. package/hazelcast-client-default.json +56 -0
  11. package/hazelcast-client-full.json +137 -0
  12. package/lib/Address.d.ts +17 -0
  13. package/lib/Address.js +65 -0
  14. package/lib/BitsUtil.d.ts +69 -0
  15. package/lib/BitsUtil.js +202 -0
  16. package/lib/BuildInfo.d.ts +9 -0
  17. package/lib/BuildInfo.js +53 -0
  18. package/lib/ClientInfo.d.ts +15 -0
  19. package/lib/ClientInfo.js +27 -0
  20. package/lib/ClientMessage.d.ts +52 -0
  21. package/lib/ClientMessage.js +217 -0
  22. package/lib/ClusterDataFactory.d.ts +4 -0
  23. package/lib/ClusterDataFactory.js +31 -0
  24. package/lib/ClusterDataFactoryHelper.d.ts +5 -0
  25. package/lib/ClusterDataFactoryHelper.js +26 -0
  26. package/lib/DataStoreHashMap.d.ts +20 -0
  27. package/lib/DataStoreHashMap.js +112 -0
  28. package/lib/DistributedObject.d.ts +22 -0
  29. package/lib/DistributedObject.js +17 -0
  30. package/lib/HazelcastClient.d.ts +201 -0
  31. package/lib/HazelcastClient.js +370 -0
  32. package/lib/HazelcastError.d.ts +114 -0
  33. package/lib/HazelcastError.js +389 -0
  34. package/lib/HeartbeatService.d.ts +30 -0
  35. package/lib/HeartbeatService.js +108 -0
  36. package/lib/LifecycleService.d.ts +32 -0
  37. package/lib/LifecycleService.js +105 -0
  38. package/lib/ListenerMessageCodec.d.ts +6 -0
  39. package/lib/ListenerMessageCodec.js +17 -0
  40. package/lib/ListenerService.d.ts +35 -0
  41. package/lib/ListenerService.js +233 -0
  42. package/lib/LockReferenceIdGenerator.d.ts +6 -0
  43. package/lib/LockReferenceIdGenerator.js +29 -0
  44. package/lib/PartitionService.d.ts +55 -0
  45. package/lib/PartitionService.js +160 -0
  46. package/lib/Util.d.ts +47 -0
  47. package/lib/Util.js +351 -0
  48. package/lib/aggregation/Aggregator.d.ts +74 -0
  49. package/lib/aggregation/Aggregator.js +277 -0
  50. package/lib/aggregation/AggregatorFactory.d.ts +26 -0
  51. package/lib/aggregation/AggregatorFactory.js +66 -0
  52. package/lib/aggregation/Aggregators.d.ts +96 -0
  53. package/lib/aggregation/Aggregators.js +149 -0
  54. package/lib/codec/AddressCodec.d.ts +6 -0
  55. package/lib/codec/AddressCodec.js +33 -0
  56. package/lib/codec/AtomicLongAddAndGetCodec.d.ts +7 -0
  57. package/lib/codec/AtomicLongAddAndGetCodec.js +56 -0
  58. package/lib/codec/AtomicLongCompareAndSetCodec.d.ts +7 -0
  59. package/lib/codec/AtomicLongCompareAndSetCodec.js +58 -0
  60. package/lib/codec/AtomicLongDecrementAndGetCodec.d.ts +7 -0
  61. package/lib/codec/AtomicLongDecrementAndGetCodec.js +54 -0
  62. package/lib/codec/AtomicLongGetAndAddCodec.d.ts +7 -0
  63. package/lib/codec/AtomicLongGetAndAddCodec.js +56 -0
  64. package/lib/codec/AtomicLongGetAndIncrementCodec.d.ts +7 -0
  65. package/lib/codec/AtomicLongGetAndIncrementCodec.js +54 -0
  66. package/lib/codec/AtomicLongGetAndSetCodec.d.ts +7 -0
  67. package/lib/codec/AtomicLongGetAndSetCodec.js +56 -0
  68. package/lib/codec/AtomicLongGetCodec.d.ts +7 -0
  69. package/lib/codec/AtomicLongGetCodec.js +54 -0
  70. package/lib/codec/AtomicLongIncrementAndGetCodec.d.ts +7 -0
  71. package/lib/codec/AtomicLongIncrementAndGetCodec.js +54 -0
  72. package/lib/codec/AtomicLongMessageType.d.ts +15 -0
  73. package/lib/codec/AtomicLongMessageType.js +37 -0
  74. package/lib/codec/AtomicLongSetCodec.d.ts +5 -0
  75. package/lib/codec/AtomicLongSetCodec.js +47 -0
  76. package/lib/codec/ClientAddDistributedObjectListenerCodec.d.ts +8 -0
  77. package/lib/codec/ClientAddDistributedObjectListenerCodec.js +74 -0
  78. package/lib/codec/ClientAddMembershipListenerCodec.d.ts +8 -0
  79. package/lib/codec/ClientAddMembershipListenerCodec.js +107 -0
  80. package/lib/codec/ClientAuthenticationCodec.d.ts +7 -0
  81. package/lib/codec/ClientAuthenticationCodec.js +114 -0
  82. package/lib/codec/ClientAuthenticationCustomCodec.d.ts +7 -0
  83. package/lib/codec/ClientAuthenticationCustomCodec.js +112 -0
  84. package/lib/codec/ClientCreateProxyCodec.d.ts +6 -0
  85. package/lib/codec/ClientCreateProxyCodec.js +50 -0
  86. package/lib/codec/ClientDestroyProxyCodec.d.ts +5 -0
  87. package/lib/codec/ClientDestroyProxyCodec.js +47 -0
  88. package/lib/codec/ClientGetDistributedObjectsCodec.d.ts +7 -0
  89. package/lib/codec/ClientGetDistributedObjectsCodec.js +59 -0
  90. package/lib/codec/ClientMessageType.d.ts +18 -0
  91. package/lib/codec/ClientMessageType.js +40 -0
  92. package/lib/codec/ClientPingCodec.d.ts +5 -0
  93. package/lib/codec/ClientPingCodec.js +42 -0
  94. package/lib/codec/ClientRemoveDistributedObjectListenerCodec.d.ts +7 -0
  95. package/lib/codec/ClientRemoveDistributedObjectListenerCodec.js +54 -0
  96. package/lib/codec/ClientStatisticsCodec.d.ts +5 -0
  97. package/lib/codec/ClientStatisticsCodec.js +42 -0
  98. package/lib/codec/DistributedObjectInfoCodec.d.ts +5 -0
  99. package/lib/codec/DistributedObjectInfoCodec.js +27 -0
  100. package/lib/codec/EntryViewCodec.d.ts +7 -0
  101. package/lib/codec/EntryViewCodec.js +56 -0
  102. package/lib/codec/FlakeIdGeneratorMessageType.d.ts +3 -0
  103. package/lib/codec/FlakeIdGeneratorMessageType.js +25 -0
  104. package/lib/codec/FlakeIdGeneratorNewIdBatchCodec.d.ts +7 -0
  105. package/lib/codec/FlakeIdGeneratorNewIdBatchCodec.js +60 -0
  106. package/lib/codec/GetPartitionsCodec.d.ts +9 -0
  107. package/lib/codec/GetPartitionsCodec.js +45 -0
  108. package/lib/codec/ListAddAllCodec.d.ts +7 -0
  109. package/lib/codec/ListAddAllCodec.js +62 -0
  110. package/lib/codec/ListAddAllWithIndexCodec.d.ts +7 -0
  111. package/lib/codec/ListAddAllWithIndexCodec.js +64 -0
  112. package/lib/codec/ListAddCodec.d.ts +7 -0
  113. package/lib/codec/ListAddCodec.js +56 -0
  114. package/lib/codec/ListAddListenerCodec.d.ts +8 -0
  115. package/lib/codec/ListAddListenerCodec.js +80 -0
  116. package/lib/codec/ListAddWithIndexCodec.d.ts +6 -0
  117. package/lib/codec/ListAddWithIndexCodec.js +49 -0
  118. package/lib/codec/ListClearCodec.d.ts +5 -0
  119. package/lib/codec/ListClearCodec.js +45 -0
  120. package/lib/codec/ListCompareAndRemoveAllCodec.d.ts +7 -0
  121. package/lib/codec/ListCompareAndRemoveAllCodec.js +62 -0
  122. package/lib/codec/ListCompareAndRetainAllCodec.d.ts +7 -0
  123. package/lib/codec/ListCompareAndRetainAllCodec.js +62 -0
  124. package/lib/codec/ListContainsAllCodec.d.ts +7 -0
  125. package/lib/codec/ListContainsAllCodec.js +62 -0
  126. package/lib/codec/ListContainsCodec.d.ts +7 -0
  127. package/lib/codec/ListContainsCodec.js +56 -0
  128. package/lib/codec/ListGetAllCodec.d.ts +7 -0
  129. package/lib/codec/ListGetAllCodec.js +61 -0
  130. package/lib/codec/ListGetCodec.d.ts +7 -0
  131. package/lib/codec/ListGetCodec.js +58 -0
  132. package/lib/codec/ListIndexOfCodec.d.ts +7 -0
  133. package/lib/codec/ListIndexOfCodec.js +56 -0
  134. package/lib/codec/ListIsEmptyCodec.d.ts +7 -0
  135. package/lib/codec/ListIsEmptyCodec.js +54 -0
  136. package/lib/codec/ListLastIndexOfCodec.d.ts +7 -0
  137. package/lib/codec/ListLastIndexOfCodec.js +56 -0
  138. package/lib/codec/ListMessageType.d.ts +25 -0
  139. package/lib/codec/ListMessageType.js +47 -0
  140. package/lib/codec/ListRemoveCodec.d.ts +7 -0
  141. package/lib/codec/ListRemoveCodec.js +56 -0
  142. package/lib/codec/ListRemoveListenerCodec.d.ts +7 -0
  143. package/lib/codec/ListRemoveListenerCodec.js +56 -0
  144. package/lib/codec/ListRemoveWithIndexCodec.d.ts +7 -0
  145. package/lib/codec/ListRemoveWithIndexCodec.js +58 -0
  146. package/lib/codec/ListSetCodec.d.ts +7 -0
  147. package/lib/codec/ListSetCodec.js +60 -0
  148. package/lib/codec/ListSizeCodec.d.ts +7 -0
  149. package/lib/codec/ListSizeCodec.js +54 -0
  150. package/lib/codec/ListSubCodec.d.ts +7 -0
  151. package/lib/codec/ListSubCodec.js +65 -0
  152. package/lib/codec/LockForceUnlockCodec.d.ts +5 -0
  153. package/lib/codec/LockForceUnlockCodec.js +47 -0
  154. package/lib/codec/LockGetLockCountCodec.d.ts +7 -0
  155. package/lib/codec/LockGetLockCountCodec.js +54 -0
  156. package/lib/codec/LockGetRemainingLeaseTimeCodec.d.ts +7 -0
  157. package/lib/codec/LockGetRemainingLeaseTimeCodec.js +54 -0
  158. package/lib/codec/LockIsLockedByCurrentThreadCodec.d.ts +7 -0
  159. package/lib/codec/LockIsLockedByCurrentThreadCodec.js +56 -0
  160. package/lib/codec/LockIsLockedCodec.d.ts +7 -0
  161. package/lib/codec/LockIsLockedCodec.js +54 -0
  162. package/lib/codec/LockLockCodec.d.ts +5 -0
  163. package/lib/codec/LockLockCodec.js +51 -0
  164. package/lib/codec/LockMessageType.d.ts +10 -0
  165. package/lib/codec/LockMessageType.js +32 -0
  166. package/lib/codec/LockTryLockCodec.d.ts +7 -0
  167. package/lib/codec/LockTryLockCodec.js +62 -0
  168. package/lib/codec/LockUnlockCodec.d.ts +5 -0
  169. package/lib/codec/LockUnlockCodec.js +49 -0
  170. package/lib/codec/MapAddEntryListenerCodec.d.ts +8 -0
  171. package/lib/codec/MapAddEntryListenerCodec.js +104 -0
  172. package/lib/codec/MapAddEntryListenerToKeyCodec.d.ts +8 -0
  173. package/lib/codec/MapAddEntryListenerToKeyCodec.js +106 -0
  174. package/lib/codec/MapAddEntryListenerToKeyWithPredicateCodec.d.ts +8 -0
  175. package/lib/codec/MapAddEntryListenerToKeyWithPredicateCodec.js +108 -0
  176. package/lib/codec/MapAddEntryListenerWithPredicateCodec.d.ts +8 -0
  177. package/lib/codec/MapAddEntryListenerWithPredicateCodec.js +106 -0
  178. package/lib/codec/MapAddIndexCodec.d.ts +5 -0
  179. package/lib/codec/MapAddIndexCodec.js +49 -0
  180. package/lib/codec/MapAddNearCacheEntryListenerCodec.d.ts +8 -0
  181. package/lib/codec/MapAddNearCacheEntryListenerCodec.js +135 -0
  182. package/lib/codec/MapAddNearCacheInvalidationListenerCodec.d.ts +8 -0
  183. package/lib/codec/MapAddNearCacheInvalidationListenerCodec.js +138 -0
  184. package/lib/codec/MapAggregateCodec.d.ts +7 -0
  185. package/lib/codec/MapAggregateCodec.js +61 -0
  186. package/lib/codec/MapAggregateWithPredicateCodec.d.ts +7 -0
  187. package/lib/codec/MapAggregateWithPredicateCodec.js +63 -0
  188. package/lib/codec/MapClearCodec.d.ts +5 -0
  189. package/lib/codec/MapClearCodec.js +45 -0
  190. package/lib/codec/MapContainsKeyCodec.d.ts +7 -0
  191. package/lib/codec/MapContainsKeyCodec.js +58 -0
  192. package/lib/codec/MapContainsValueCodec.d.ts +7 -0
  193. package/lib/codec/MapContainsValueCodec.js +56 -0
  194. package/lib/codec/MapDeleteCodec.d.ts +6 -0
  195. package/lib/codec/MapDeleteCodec.js +49 -0
  196. package/lib/codec/MapEntriesWithPredicateCodec.d.ts +7 -0
  197. package/lib/codec/MapEntriesWithPredicateCodec.js +67 -0
  198. package/lib/codec/MapEntrySetCodec.d.ts +7 -0
  199. package/lib/codec/MapEntrySetCodec.js +65 -0
  200. package/lib/codec/MapEvictAllCodec.d.ts +5 -0
  201. package/lib/codec/MapEvictAllCodec.js +45 -0
  202. package/lib/codec/MapEvictCodec.d.ts +7 -0
  203. package/lib/codec/MapEvictCodec.js +58 -0
  204. package/lib/codec/MapExecuteOnAllKeysCodec.d.ts +7 -0
  205. package/lib/codec/MapExecuteOnAllKeysCodec.js +67 -0
  206. package/lib/codec/MapExecuteOnKeyCodec.d.ts +7 -0
  207. package/lib/codec/MapExecuteOnKeyCodec.js +62 -0
  208. package/lib/codec/MapExecuteOnKeysCodec.d.ts +7 -0
  209. package/lib/codec/MapExecuteOnKeysCodec.js +75 -0
  210. package/lib/codec/MapExecuteWithPredicateCodec.d.ts +7 -0
  211. package/lib/codec/MapExecuteWithPredicateCodec.js +69 -0
  212. package/lib/codec/MapFetchNearCacheInvalidationMetadataCodec.d.ts +8 -0
  213. package/lib/codec/MapFetchNearCacheInvalidationMetadataCodec.js +101 -0
  214. package/lib/codec/MapFlushCodec.d.ts +5 -0
  215. package/lib/codec/MapFlushCodec.js +45 -0
  216. package/lib/codec/MapForceUnlockCodec.d.ts +6 -0
  217. package/lib/codec/MapForceUnlockCodec.js +49 -0
  218. package/lib/codec/MapGetAllCodec.d.ts +7 -0
  219. package/lib/codec/MapGetAllCodec.js +73 -0
  220. package/lib/codec/MapGetCodec.d.ts +7 -0
  221. package/lib/codec/MapGetCodec.js +60 -0
  222. package/lib/codec/MapGetEntryViewCodec.d.ts +7 -0
  223. package/lib/codec/MapGetEntryViewCodec.js +61 -0
  224. package/lib/codec/MapIsEmptyCodec.d.ts +7 -0
  225. package/lib/codec/MapIsEmptyCodec.js +54 -0
  226. package/lib/codec/MapIsLockedCodec.d.ts +7 -0
  227. package/lib/codec/MapIsLockedCodec.js +56 -0
  228. package/lib/codec/MapKeySetCodec.d.ts +7 -0
  229. package/lib/codec/MapKeySetCodec.js +61 -0
  230. package/lib/codec/MapKeySetWithPagingPredicateCodec.d.ts +7 -0
  231. package/lib/codec/MapKeySetWithPagingPredicateCodec.js +63 -0
  232. package/lib/codec/MapKeySetWithPredicateCodec.d.ts +7 -0
  233. package/lib/codec/MapKeySetWithPredicateCodec.js +63 -0
  234. package/lib/codec/MapLoadAllCodec.d.ts +5 -0
  235. package/lib/codec/MapLoadAllCodec.js +47 -0
  236. package/lib/codec/MapLoadGivenKeysCodec.d.ts +5 -0
  237. package/lib/codec/MapLoadGivenKeysCodec.js +55 -0
  238. package/lib/codec/MapLockCodec.d.ts +6 -0
  239. package/lib/codec/MapLockCodec.js +53 -0
  240. package/lib/codec/MapMessageType.d.ts +71 -0
  241. package/lib/codec/MapMessageType.js +93 -0
  242. package/lib/codec/MapPutAllCodec.d.ts +5 -0
  243. package/lib/codec/MapPutAllCodec.js +59 -0
  244. package/lib/codec/MapPutCodec.d.ts +7 -0
  245. package/lib/codec/MapPutCodec.js +64 -0
  246. package/lib/codec/MapPutIfAbsentCodec.d.ts +7 -0
  247. package/lib/codec/MapPutIfAbsentCodec.js +64 -0
  248. package/lib/codec/MapPutTransientCodec.d.ts +6 -0
  249. package/lib/codec/MapPutTransientCodec.js +53 -0
  250. package/lib/codec/MapRemoveCodec.d.ts +7 -0
  251. package/lib/codec/MapRemoveCodec.js +60 -0
  252. package/lib/codec/MapRemoveEntryListenerCodec.d.ts +7 -0
  253. package/lib/codec/MapRemoveEntryListenerCodec.js +56 -0
  254. package/lib/codec/MapRemoveIfSameCodec.d.ts +7 -0
  255. package/lib/codec/MapRemoveIfSameCodec.js +60 -0
  256. package/lib/codec/MapReplaceCodec.d.ts +7 -0
  257. package/lib/codec/MapReplaceCodec.js +62 -0
  258. package/lib/codec/MapReplaceIfSameCodec.d.ts +7 -0
  259. package/lib/codec/MapReplaceIfSameCodec.js +62 -0
  260. package/lib/codec/MapSetCodec.d.ts +6 -0
  261. package/lib/codec/MapSetCodec.js +53 -0
  262. package/lib/codec/MapSizeCodec.d.ts +7 -0
  263. package/lib/codec/MapSizeCodec.js +54 -0
  264. package/lib/codec/MapTryLockCodec.d.ts +7 -0
  265. package/lib/codec/MapTryLockCodec.js +64 -0
  266. package/lib/codec/MapTryPutCodec.d.ts +7 -0
  267. package/lib/codec/MapTryPutCodec.js +62 -0
  268. package/lib/codec/MapTryRemoveCodec.d.ts +7 -0
  269. package/lib/codec/MapTryRemoveCodec.js +60 -0
  270. package/lib/codec/MapUnlockCodec.d.ts +6 -0
  271. package/lib/codec/MapUnlockCodec.js +51 -0
  272. package/lib/codec/MapValuesCodec.d.ts +7 -0
  273. package/lib/codec/MapValuesCodec.js +61 -0
  274. package/lib/codec/MapValuesWithPagingPredicateCodec.d.ts +7 -0
  275. package/lib/codec/MapValuesWithPagingPredicateCodec.js +67 -0
  276. package/lib/codec/MapValuesWithPredicateCodec.d.ts +7 -0
  277. package/lib/codec/MapValuesWithPredicateCodec.js +63 -0
  278. package/lib/codec/MemberCodec.d.ts +6 -0
  279. package/lib/codec/MemberCodec.js +49 -0
  280. package/lib/codec/MultiMapAddEntryListenerCodec.d.ts +8 -0
  281. package/lib/codec/MultiMapAddEntryListenerCodec.js +102 -0
  282. package/lib/codec/MultiMapAddEntryListenerToKeyCodec.d.ts +8 -0
  283. package/lib/codec/MultiMapAddEntryListenerToKeyCodec.js +104 -0
  284. package/lib/codec/MultiMapClearCodec.d.ts +5 -0
  285. package/lib/codec/MultiMapClearCodec.js +45 -0
  286. package/lib/codec/MultiMapContainsEntryCodec.d.ts +7 -0
  287. package/lib/codec/MultiMapContainsEntryCodec.js +60 -0
  288. package/lib/codec/MultiMapContainsKeyCodec.d.ts +7 -0
  289. package/lib/codec/MultiMapContainsKeyCodec.js +58 -0
  290. package/lib/codec/MultiMapContainsValueCodec.d.ts +7 -0
  291. package/lib/codec/MultiMapContainsValueCodec.js +56 -0
  292. package/lib/codec/MultiMapEntrySetCodec.d.ts +7 -0
  293. package/lib/codec/MultiMapEntrySetCodec.js +65 -0
  294. package/lib/codec/MultiMapForceUnlockCodec.d.ts +6 -0
  295. package/lib/codec/MultiMapForceUnlockCodec.js +49 -0
  296. package/lib/codec/MultiMapGetCodec.d.ts +7 -0
  297. package/lib/codec/MultiMapGetCodec.js +65 -0
  298. package/lib/codec/MultiMapIsLockedCodec.d.ts +7 -0
  299. package/lib/codec/MultiMapIsLockedCodec.js +56 -0
  300. package/lib/codec/MultiMapKeySetCodec.d.ts +7 -0
  301. package/lib/codec/MultiMapKeySetCodec.js +61 -0
  302. package/lib/codec/MultiMapLockCodec.d.ts +6 -0
  303. package/lib/codec/MultiMapLockCodec.js +53 -0
  304. package/lib/codec/MultiMapMessageType.d.ts +23 -0
  305. package/lib/codec/MultiMapMessageType.js +45 -0
  306. package/lib/codec/MultiMapPutCodec.d.ts +7 -0
  307. package/lib/codec/MultiMapPutCodec.js +60 -0
  308. package/lib/codec/MultiMapRemoveCodec.d.ts +7 -0
  309. package/lib/codec/MultiMapRemoveCodec.js +65 -0
  310. package/lib/codec/MultiMapRemoveEntryCodec.d.ts +7 -0
  311. package/lib/codec/MultiMapRemoveEntryCodec.js +60 -0
  312. package/lib/codec/MultiMapRemoveEntryListenerCodec.d.ts +7 -0
  313. package/lib/codec/MultiMapRemoveEntryListenerCodec.js +56 -0
  314. package/lib/codec/MultiMapSizeCodec.d.ts +7 -0
  315. package/lib/codec/MultiMapSizeCodec.js +54 -0
  316. package/lib/codec/MultiMapTryLockCodec.d.ts +7 -0
  317. package/lib/codec/MultiMapTryLockCodec.js +64 -0
  318. package/lib/codec/MultiMapUnlockCodec.d.ts +6 -0
  319. package/lib/codec/MultiMapUnlockCodec.js +51 -0
  320. package/lib/codec/MultiMapValueCountCodec.d.ts +7 -0
  321. package/lib/codec/MultiMapValueCountCodec.js +58 -0
  322. package/lib/codec/MultiMapValuesCodec.d.ts +7 -0
  323. package/lib/codec/MultiMapValuesCodec.js +61 -0
  324. package/lib/codec/PNCounterAddCodec.d.ts +8 -0
  325. package/lib/codec/PNCounterAddCodec.js +90 -0
  326. package/lib/codec/PNCounterGetCodec.d.ts +8 -0
  327. package/lib/codec/PNCounterGetCodec.js +86 -0
  328. package/lib/codec/PNCounterGetConfiguredReplicaCountCodec.d.ts +7 -0
  329. package/lib/codec/PNCounterGetConfiguredReplicaCountCodec.js +54 -0
  330. package/lib/codec/PNCounterMessageType.d.ts +5 -0
  331. package/lib/codec/PNCounterMessageType.js +27 -0
  332. package/lib/codec/QueueAddAllCodec.d.ts +7 -0
  333. package/lib/codec/QueueAddAllCodec.js +62 -0
  334. package/lib/codec/QueueAddListenerCodec.d.ts +8 -0
  335. package/lib/codec/QueueAddListenerCodec.js +80 -0
  336. package/lib/codec/QueueClearCodec.d.ts +5 -0
  337. package/lib/codec/QueueClearCodec.js +45 -0
  338. package/lib/codec/QueueCompareAndRemoveAllCodec.d.ts +7 -0
  339. package/lib/codec/QueueCompareAndRemoveAllCodec.js +62 -0
  340. package/lib/codec/QueueCompareAndRetainAllCodec.d.ts +7 -0
  341. package/lib/codec/QueueCompareAndRetainAllCodec.js +62 -0
  342. package/lib/codec/QueueContainsAllCodec.d.ts +7 -0
  343. package/lib/codec/QueueContainsAllCodec.js +62 -0
  344. package/lib/codec/QueueContainsCodec.d.ts +7 -0
  345. package/lib/codec/QueueContainsCodec.js +56 -0
  346. package/lib/codec/QueueDrainToCodec.d.ts +7 -0
  347. package/lib/codec/QueueDrainToCodec.js +61 -0
  348. package/lib/codec/QueueDrainToMaxSizeCodec.d.ts +7 -0
  349. package/lib/codec/QueueDrainToMaxSizeCodec.js +63 -0
  350. package/lib/codec/QueueIsEmptyCodec.d.ts +7 -0
  351. package/lib/codec/QueueIsEmptyCodec.js +54 -0
  352. package/lib/codec/QueueIteratorCodec.d.ts +7 -0
  353. package/lib/codec/QueueIteratorCodec.js +61 -0
  354. package/lib/codec/QueueMessageType.d.ts +22 -0
  355. package/lib/codec/QueueMessageType.js +44 -0
  356. package/lib/codec/QueueOfferCodec.d.ts +7 -0
  357. package/lib/codec/QueueOfferCodec.js +58 -0
  358. package/lib/codec/QueuePeekCodec.d.ts +7 -0
  359. package/lib/codec/QueuePeekCodec.js +56 -0
  360. package/lib/codec/QueuePollCodec.d.ts +7 -0
  361. package/lib/codec/QueuePollCodec.js +58 -0
  362. package/lib/codec/QueuePutCodec.d.ts +6 -0
  363. package/lib/codec/QueuePutCodec.js +47 -0
  364. package/lib/codec/QueueRemainingCapacityCodec.d.ts +7 -0
  365. package/lib/codec/QueueRemainingCapacityCodec.js +54 -0
  366. package/lib/codec/QueueRemoveCodec.d.ts +7 -0
  367. package/lib/codec/QueueRemoveCodec.js +56 -0
  368. package/lib/codec/QueueRemoveListenerCodec.d.ts +7 -0
  369. package/lib/codec/QueueRemoveListenerCodec.js +56 -0
  370. package/lib/codec/QueueSizeCodec.d.ts +7 -0
  371. package/lib/codec/QueueSizeCodec.js +54 -0
  372. package/lib/codec/QueueTakeCodec.d.ts +7 -0
  373. package/lib/codec/QueueTakeCodec.js +56 -0
  374. package/lib/codec/ReplicatedMapAddEntryListenerCodec.d.ts +8 -0
  375. package/lib/codec/ReplicatedMapAddEntryListenerCodec.js +100 -0
  376. package/lib/codec/ReplicatedMapAddEntryListenerToKeyCodec.d.ts +8 -0
  377. package/lib/codec/ReplicatedMapAddEntryListenerToKeyCodec.js +102 -0
  378. package/lib/codec/ReplicatedMapAddEntryListenerToKeyWithPredicateCodec.d.ts +8 -0
  379. package/lib/codec/ReplicatedMapAddEntryListenerToKeyWithPredicateCodec.js +104 -0
  380. package/lib/codec/ReplicatedMapAddEntryListenerWithPredicateCodec.d.ts +8 -0
  381. package/lib/codec/ReplicatedMapAddEntryListenerWithPredicateCodec.js +102 -0
  382. package/lib/codec/ReplicatedMapClearCodec.d.ts +5 -0
  383. package/lib/codec/ReplicatedMapClearCodec.js +45 -0
  384. package/lib/codec/ReplicatedMapContainsKeyCodec.d.ts +7 -0
  385. package/lib/codec/ReplicatedMapContainsKeyCodec.js +56 -0
  386. package/lib/codec/ReplicatedMapContainsValueCodec.d.ts +7 -0
  387. package/lib/codec/ReplicatedMapContainsValueCodec.js +56 -0
  388. package/lib/codec/ReplicatedMapEntrySetCodec.d.ts +7 -0
  389. package/lib/codec/ReplicatedMapEntrySetCodec.js +65 -0
  390. package/lib/codec/ReplicatedMapGetCodec.d.ts +7 -0
  391. package/lib/codec/ReplicatedMapGetCodec.js +58 -0
  392. package/lib/codec/ReplicatedMapIsEmptyCodec.d.ts +7 -0
  393. package/lib/codec/ReplicatedMapIsEmptyCodec.js +54 -0
  394. package/lib/codec/ReplicatedMapKeySetCodec.d.ts +7 -0
  395. package/lib/codec/ReplicatedMapKeySetCodec.js +61 -0
  396. package/lib/codec/ReplicatedMapMessageType.d.ts +20 -0
  397. package/lib/codec/ReplicatedMapMessageType.js +42 -0
  398. package/lib/codec/ReplicatedMapPutAllCodec.d.ts +5 -0
  399. package/lib/codec/ReplicatedMapPutAllCodec.js +59 -0
  400. package/lib/codec/ReplicatedMapPutCodec.d.ts +7 -0
  401. package/lib/codec/ReplicatedMapPutCodec.js +62 -0
  402. package/lib/codec/ReplicatedMapRemoveCodec.d.ts +7 -0
  403. package/lib/codec/ReplicatedMapRemoveCodec.js +58 -0
  404. package/lib/codec/ReplicatedMapRemoveEntryListenerCodec.d.ts +7 -0
  405. package/lib/codec/ReplicatedMapRemoveEntryListenerCodec.js +56 -0
  406. package/lib/codec/ReplicatedMapSizeCodec.d.ts +7 -0
  407. package/lib/codec/ReplicatedMapSizeCodec.js +54 -0
  408. package/lib/codec/ReplicatedMapValuesCodec.d.ts +7 -0
  409. package/lib/codec/ReplicatedMapValuesCodec.js +61 -0
  410. package/lib/codec/RingbufferAddAllCodec.d.ts +7 -0
  411. package/lib/codec/RingbufferAddAllCodec.js +64 -0
  412. package/lib/codec/RingbufferAddCodec.d.ts +7 -0
  413. package/lib/codec/RingbufferAddCodec.js +58 -0
  414. package/lib/codec/RingbufferCapacityCodec.d.ts +7 -0
  415. package/lib/codec/RingbufferCapacityCodec.js +54 -0
  416. package/lib/codec/RingbufferHeadSequenceCodec.d.ts +7 -0
  417. package/lib/codec/RingbufferHeadSequenceCodec.js +54 -0
  418. package/lib/codec/RingbufferMessageType.d.ts +11 -0
  419. package/lib/codec/RingbufferMessageType.js +33 -0
  420. package/lib/codec/RingbufferReadManyCodec.d.ts +7 -0
  421. package/lib/codec/RingbufferReadManyCodec.js +92 -0
  422. package/lib/codec/RingbufferReadOneCodec.d.ts +7 -0
  423. package/lib/codec/RingbufferReadOneCodec.js +58 -0
  424. package/lib/codec/RingbufferRemainingCapacityCodec.d.ts +7 -0
  425. package/lib/codec/RingbufferRemainingCapacityCodec.js +54 -0
  426. package/lib/codec/RingbufferSizeCodec.d.ts +7 -0
  427. package/lib/codec/RingbufferSizeCodec.js +54 -0
  428. package/lib/codec/RingbufferTailSequenceCodec.d.ts +7 -0
  429. package/lib/codec/RingbufferTailSequenceCodec.js +54 -0
  430. package/lib/codec/SemaphoreAcquireCodec.d.ts +5 -0
  431. package/lib/codec/SemaphoreAcquireCodec.js +47 -0
  432. package/lib/codec/SemaphoreAvailablePermitsCodec.d.ts +7 -0
  433. package/lib/codec/SemaphoreAvailablePermitsCodec.js +54 -0
  434. package/lib/codec/SemaphoreDrainPermitsCodec.d.ts +7 -0
  435. package/lib/codec/SemaphoreDrainPermitsCodec.js +54 -0
  436. package/lib/codec/SemaphoreInitCodec.d.ts +7 -0
  437. package/lib/codec/SemaphoreInitCodec.js +56 -0
  438. package/lib/codec/SemaphoreMessageType.d.ts +9 -0
  439. package/lib/codec/SemaphoreMessageType.js +31 -0
  440. package/lib/codec/SemaphoreReducePermitsCodec.d.ts +5 -0
  441. package/lib/codec/SemaphoreReducePermitsCodec.js +47 -0
  442. package/lib/codec/SemaphoreReleaseCodec.d.ts +5 -0
  443. package/lib/codec/SemaphoreReleaseCodec.js +47 -0
  444. package/lib/codec/SemaphoreTryAcquireCodec.d.ts +7 -0
  445. package/lib/codec/SemaphoreTryAcquireCodec.js +58 -0
  446. package/lib/codec/SetAddAllCodec.d.ts +7 -0
  447. package/lib/codec/SetAddAllCodec.js +62 -0
  448. package/lib/codec/SetAddCodec.d.ts +7 -0
  449. package/lib/codec/SetAddCodec.js +56 -0
  450. package/lib/codec/SetAddListenerCodec.d.ts +8 -0
  451. package/lib/codec/SetAddListenerCodec.js +80 -0
  452. package/lib/codec/SetClearCodec.d.ts +5 -0
  453. package/lib/codec/SetClearCodec.js +45 -0
  454. package/lib/codec/SetCompareAndRemoveAllCodec.d.ts +7 -0
  455. package/lib/codec/SetCompareAndRemoveAllCodec.js +62 -0
  456. package/lib/codec/SetCompareAndRetainAllCodec.d.ts +7 -0
  457. package/lib/codec/SetCompareAndRetainAllCodec.js +62 -0
  458. package/lib/codec/SetContainsAllCodec.d.ts +7 -0
  459. package/lib/codec/SetContainsAllCodec.js +62 -0
  460. package/lib/codec/SetContainsCodec.d.ts +7 -0
  461. package/lib/codec/SetContainsCodec.js +56 -0
  462. package/lib/codec/SetGetAllCodec.d.ts +7 -0
  463. package/lib/codec/SetGetAllCodec.js +61 -0
  464. package/lib/codec/SetIsEmptyCodec.d.ts +7 -0
  465. package/lib/codec/SetIsEmptyCodec.js +54 -0
  466. package/lib/codec/SetMessageType.d.ts +15 -0
  467. package/lib/codec/SetMessageType.js +37 -0
  468. package/lib/codec/SetRemoveCodec.d.ts +7 -0
  469. package/lib/codec/SetRemoveCodec.js +56 -0
  470. package/lib/codec/SetRemoveListenerCodec.d.ts +7 -0
  471. package/lib/codec/SetRemoveListenerCodec.js +56 -0
  472. package/lib/codec/SetSizeCodec.d.ts +7 -0
  473. package/lib/codec/SetSizeCodec.js +54 -0
  474. package/lib/codec/UUIDCodec.d.ts +5 -0
  475. package/lib/codec/UUIDCodec.js +29 -0
  476. package/lib/config/ClientCloudConfig.d.ts +13 -0
  477. package/lib/config/ClientCloudConfig.js +34 -0
  478. package/lib/config/ClientNetworkConfig.d.ts +43 -0
  479. package/lib/config/ClientNetworkConfig.js +64 -0
  480. package/lib/config/Config.d.ts +61 -0
  481. package/lib/config/Config.js +138 -0
  482. package/lib/config/ConfigBuilder.d.ts +26 -0
  483. package/lib/config/ConfigBuilder.js +322 -0
  484. package/lib/config/ConfigPatternMatcher.d.ts +12 -0
  485. package/lib/config/ConfigPatternMatcher.js +70 -0
  486. package/lib/config/EvictionPolicy.d.ts +9 -0
  487. package/lib/config/EvictionPolicy.js +27 -0
  488. package/lib/config/FlakeIdGeneratorConfig.d.ts +26 -0
  489. package/lib/config/FlakeIdGeneratorConfig.js +56 -0
  490. package/lib/config/GroupConfig.d.ts +14 -0
  491. package/lib/config/GroupConfig.js +35 -0
  492. package/lib/config/ImportConfig.d.ts +4 -0
  493. package/lib/config/ImportConfig.js +17 -0
  494. package/lib/config/InMemoryFormat.d.ts +10 -0
  495. package/lib/config/InMemoryFormat.js +28 -0
  496. package/lib/config/JsonConfigLocator.d.ts +16 -0
  497. package/lib/config/JsonConfigLocator.js +103 -0
  498. package/lib/config/JsonStringDeserializationPolicy.d.ts +17 -0
  499. package/lib/config/JsonStringDeserializationPolicy.js +35 -0
  500. package/lib/config/ListenerConfig.d.ts +8 -0
  501. package/lib/config/ListenerConfig.js +33 -0
  502. package/lib/config/NearCacheConfig.d.ts +25 -0
  503. package/lib/config/NearCacheConfig.js +59 -0
  504. package/lib/config/Properties.d.ts +5 -0
  505. package/lib/config/Properties.js +17 -0
  506. package/lib/config/ReliableTopicConfig.d.ts +8 -0
  507. package/lib/config/ReliableTopicConfig.js +38 -0
  508. package/lib/config/SSLConfig.d.ts +34 -0
  509. package/lib/config/SSLConfig.js +51 -0
  510. package/lib/config/SerializationConfig.d.ts +29 -0
  511. package/lib/config/SerializationConfig.js +38 -0
  512. package/lib/config/StringSerializationPolicy.d.ts +22 -0
  513. package/lib/config/StringSerializationPolicy.js +40 -0
  514. package/lib/connection/AddressProvider.d.ts +11 -0
  515. package/lib/connection/AddressProvider.js +17 -0
  516. package/lib/connection/AddressTranslator.d.ts +21 -0
  517. package/lib/connection/AddressTranslator.js +17 -0
  518. package/lib/connection/BasicSSLOptionsFactory.d.ts +14 -0
  519. package/lib/connection/BasicSSLOptionsFactory.js +67 -0
  520. package/lib/connection/DefaultAddressProvider.d.ts +15 -0
  521. package/lib/connection/DefaultAddressProvider.js +38 -0
  522. package/lib/connection/DefaultAddressTranslator.d.ts +11 -0
  523. package/lib/connection/DefaultAddressTranslator.js +33 -0
  524. package/lib/connection/SSLOptionsFactory.d.ts +7 -0
  525. package/lib/connection/SSLOptionsFactory.js +17 -0
  526. package/lib/core/Comparator.d.ts +21 -0
  527. package/lib/core/Comparator.js +17 -0
  528. package/lib/core/ConnectionHeartbeatListener.d.ts +16 -0
  529. package/lib/core/ConnectionHeartbeatListener.js +17 -0
  530. package/lib/core/DistributedObjectListener.d.ts +24 -0
  531. package/lib/core/DistributedObjectListener.js +30 -0
  532. package/lib/core/EntryListener.d.ts +51 -0
  533. package/lib/core/EntryListener.js +32 -0
  534. package/lib/core/EntryView.d.ts +16 -0
  535. package/lib/core/EntryView.js +23 -0
  536. package/lib/core/EventType.d.ts +12 -0
  537. package/lib/core/EventType.js +31 -0
  538. package/lib/core/HazelcastJsonValue.d.ts +32 -0
  539. package/lib/core/HazelcastJsonValue.js +56 -0
  540. package/lib/core/ItemListener.d.ts +38 -0
  541. package/lib/core/ItemListener.js +35 -0
  542. package/lib/core/MapListener.d.ts +29 -0
  543. package/lib/core/MapListener.js +29 -0
  544. package/lib/core/Member.d.ts +23 -0
  545. package/lib/core/Member.js +44 -0
  546. package/lib/core/MemberAttributeEvent.d.ts +37 -0
  547. package/lib/core/MemberAttributeEvent.js +45 -0
  548. package/lib/core/MemberSelector.d.ts +4 -0
  549. package/lib/core/MemberSelector.js +17 -0
  550. package/lib/core/MemberSelectors.d.ts +8 -0
  551. package/lib/core/MemberSelectors.js +33 -0
  552. package/lib/core/MembershipEvent.d.ts +20 -0
  553. package/lib/core/MembershipEvent.js +30 -0
  554. package/lib/core/MembershipListener.d.ts +22 -0
  555. package/lib/core/MembershipListener.js +17 -0
  556. package/lib/core/OverflowPolicy.d.ts +4 -0
  557. package/lib/core/OverflowPolicy.js +22 -0
  558. package/lib/core/Predicate.d.ts +28 -0
  559. package/lib/core/Predicate.js +113 -0
  560. package/lib/core/ReadOnlyLazyList.d.ts +12 -0
  561. package/lib/core/ReadOnlyLazyList.js +74 -0
  562. package/lib/core/RestValue.d.ts +15 -0
  563. package/lib/core/RestValue.js +51 -0
  564. package/lib/core/UUID.d.ts +9 -0
  565. package/lib/core/UUID.js +44 -0
  566. package/lib/core/VectorClock.d.ts +7 -0
  567. package/lib/core/VectorClock.js +48 -0
  568. package/lib/discovery/HazelcastCloudAddressProvider.d.ts +10 -0
  569. package/lib/discovery/HazelcastCloudAddressProvider.js +35 -0
  570. package/lib/discovery/HazelcastCloudAddressTranslator.d.ts +13 -0
  571. package/lib/discovery/HazelcastCloudAddressTranslator.js +54 -0
  572. package/lib/discovery/HazelcastCloudDiscovery.d.ts +25 -0
  573. package/lib/discovery/HazelcastCloudDiscovery.js +85 -0
  574. package/lib/index.d.ts +26 -0
  575. package/lib/index.js +64 -0
  576. package/lib/invocation/ClientConnection.d.ts +82 -0
  577. package/lib/invocation/ClientConnection.js +307 -0
  578. package/lib/invocation/ClientConnectionManager.d.ts +65 -0
  579. package/lib/invocation/ClientConnectionManager.js +360 -0
  580. package/lib/invocation/ClientEventRegistration.d.ts +10 -0
  581. package/lib/invocation/ClientEventRegistration.js +30 -0
  582. package/lib/invocation/ClusterService.d.ts +127 -0
  583. package/lib/invocation/ClusterService.js +581 -0
  584. package/lib/invocation/ConnectionAuthenticator.d.ts +14 -0
  585. package/lib/invocation/ConnectionAuthenticator.js +88 -0
  586. package/lib/invocation/InvocationService.d.ts +138 -0
  587. package/lib/invocation/InvocationService.js +387 -0
  588. package/lib/invocation/Murmur.d.ts +2 -0
  589. package/lib/invocation/Murmur.js +65 -0
  590. package/lib/invocation/RegistrationKey.d.ts +16 -0
  591. package/lib/invocation/RegistrationKey.js +48 -0
  592. package/lib/logging/DefaultLogger.d.ts +12 -0
  593. package/lib/logging/DefaultLogger.js +48 -0
  594. package/lib/logging/ILogger.d.ts +49 -0
  595. package/lib/logging/ILogger.js +17 -0
  596. package/lib/logging/LoggingService.d.ts +16 -0
  597. package/lib/logging/LoggingService.js +50 -0
  598. package/lib/nearcache/AlwaysFreshStaleReadDetectorImpl.d.ts +10 -0
  599. package/lib/nearcache/AlwaysFreshStaleReadDetectorImpl.js +34 -0
  600. package/lib/nearcache/DataRecord.d.ts +33 -0
  601. package/lib/nearcache/DataRecord.js +109 -0
  602. package/lib/nearcache/MetadataContainer.d.ts +18 -0
  603. package/lib/nearcache/MetadataContainer.js +56 -0
  604. package/lib/nearcache/MetadataFetcher.d.ts +20 -0
  605. package/lib/nearcache/MetadataFetcher.js +92 -0
  606. package/lib/nearcache/NearCache.d.ts +89 -0
  607. package/lib/nearcache/NearCache.js +250 -0
  608. package/lib/nearcache/NearCacheManager.d.ts +13 -0
  609. package/lib/nearcache/NearCacheManager.js +50 -0
  610. package/lib/nearcache/RepairingHandler.d.ts +26 -0
  611. package/lib/nearcache/RepairingHandler.js +114 -0
  612. package/lib/nearcache/RepairingTask.d.ts +26 -0
  613. package/lib/nearcache/RepairingTask.js +117 -0
  614. package/lib/nearcache/StaleReadDetector.d.ts +7 -0
  615. package/lib/nearcache/StaleReadDetector.js +2 -0
  616. package/lib/nearcache/StaleReadDetectorImpl.d.ts +13 -0
  617. package/lib/nearcache/StaleReadDetectorImpl.js +62 -0
  618. package/lib/protocol/ClientProtocolErrorCodes.d.ts +91 -0
  619. package/lib/protocol/ClientProtocolErrorCodes.js +112 -0
  620. package/lib/protocol/ErrorCodec.d.ts +11 -0
  621. package/lib/protocol/ErrorCodec.js +50 -0
  622. package/lib/protocol/ErrorFactory.d.ts +8 -0
  623. package/lib/protocol/ErrorFactory.js +92 -0
  624. package/lib/protocol/StackTraceElementCodec.d.ts +8 -0
  625. package/lib/protocol/StackTraceElementCodec.js +38 -0
  626. package/lib/proxy/AtomicLongProxy.d.ts +17 -0
  627. package/lib/proxy/AtomicLongProxy.js +72 -0
  628. package/lib/proxy/BaseProxy.d.ts +89 -0
  629. package/lib/proxy/BaseProxy.js +191 -0
  630. package/lib/proxy/FlakeIdGenerator.d.ts +47 -0
  631. package/lib/proxy/FlakeIdGenerator.js +17 -0
  632. package/lib/proxy/FlakeIdGeneratorProxy.d.ts +13 -0
  633. package/lib/proxy/FlakeIdGeneratorProxy.js +48 -0
  634. package/lib/proxy/IAtomicLong.d.ts +16 -0
  635. package/lib/proxy/IAtomicLong.js +17 -0
  636. package/lib/proxy/IList.d.ts +132 -0
  637. package/lib/proxy/IList.js +17 -0
  638. package/lib/proxy/ILock.d.ts +54 -0
  639. package/lib/proxy/ILock.js +17 -0
  640. package/lib/proxy/IMap.d.ts +328 -0
  641. package/lib/proxy/IMap.js +17 -0
  642. package/lib/proxy/IQueue.d.ts +128 -0
  643. package/lib/proxy/IQueue.js +17 -0
  644. package/lib/proxy/ISemaphore.d.ts +53 -0
  645. package/lib/proxy/ISemaphore.js +17 -0
  646. package/lib/proxy/ISet.d.ts +89 -0
  647. package/lib/proxy/ISet.js +17 -0
  648. package/lib/proxy/ListProxy.d.ts +31 -0
  649. package/lib/proxy/ListProxy.js +165 -0
  650. package/lib/proxy/LockProxy.d.ts +16 -0
  651. package/lib/proxy/LockProxy.js +78 -0
  652. package/lib/proxy/MapProxy.d.ts +82 -0
  653. package/lib/proxy/MapProxy.js +651 -0
  654. package/lib/proxy/MultiMap.d.ts +153 -0
  655. package/lib/proxy/MultiMap.js +17 -0
  656. package/lib/proxy/MultiMapProxy.d.ts +33 -0
  657. package/lib/proxy/MultiMapProxy.js +238 -0
  658. package/lib/proxy/NearCachedMapProxy.d.ts +41 -0
  659. package/lib/proxy/NearCachedMapProxy.js +284 -0
  660. package/lib/proxy/PNCounter.d.ts +162 -0
  661. package/lib/proxy/PNCounter.js +17 -0
  662. package/lib/proxy/PNCounterProxy.d.ts +30 -0
  663. package/lib/proxy/PNCounterProxy.js +181 -0
  664. package/lib/proxy/PartitionSpecificProxy.d.ts +10 -0
  665. package/lib/proxy/PartitionSpecificProxy.js +52 -0
  666. package/lib/proxy/ProxyManager.d.ts +40 -0
  667. package/lib/proxy/ProxyManager.js +202 -0
  668. package/lib/proxy/QueueProxy.d.ts +28 -0
  669. package/lib/proxy/QueueProxy.js +198 -0
  670. package/lib/proxy/ReplicatedMap.d.ts +149 -0
  671. package/lib/proxy/ReplicatedMap.js +17 -0
  672. package/lib/proxy/ReplicatedMapProxy.d.ts +34 -0
  673. package/lib/proxy/ReplicatedMapProxy.js +256 -0
  674. package/lib/proxy/Ringbuffer.d.ts +115 -0
  675. package/lib/proxy/Ringbuffer.js +17 -0
  676. package/lib/proxy/SemaphoreProxy.d.ts +15 -0
  677. package/lib/proxy/SemaphoreProxy.js +73 -0
  678. package/lib/proxy/SetProxy.d.ts +22 -0
  679. package/lib/proxy/SetProxy.js +130 -0
  680. package/lib/proxy/flakeid/AutoBatcher.d.ts +30 -0
  681. package/lib/proxy/flakeid/AutoBatcher.js +104 -0
  682. package/lib/proxy/ringbuffer/LazyReadResultSet.d.ts +16 -0
  683. package/lib/proxy/ringbuffer/LazyReadResultSet.js +54 -0
  684. package/lib/proxy/ringbuffer/ReadResultSet.d.ts +41 -0
  685. package/lib/proxy/ringbuffer/ReadResultSet.js +17 -0
  686. package/lib/proxy/ringbuffer/RingbufferProxy.d.ts +19 -0
  687. package/lib/proxy/ringbuffer/RingbufferProxy.js +98 -0
  688. package/lib/proxy/topic/ITopic.d.ts +9 -0
  689. package/lib/proxy/topic/ITopic.js +17 -0
  690. package/lib/proxy/topic/Message.d.ts +8 -0
  691. package/lib/proxy/topic/Message.js +23 -0
  692. package/lib/proxy/topic/MessageListener.d.ts +2 -0
  693. package/lib/proxy/topic/MessageListener.js +2 -0
  694. package/lib/proxy/topic/ReliableTopicListenerRunner.d.ts +20 -0
  695. package/lib/proxy/topic/ReliableTopicListenerRunner.js +73 -0
  696. package/lib/proxy/topic/ReliableTopicMessage.d.ts +19 -0
  697. package/lib/proxy/topic/ReliableTopicMessage.js +53 -0
  698. package/lib/proxy/topic/ReliableTopicProxy.d.ts +31 -0
  699. package/lib/proxy/topic/ReliableTopicProxy.js +151 -0
  700. package/lib/proxy/topic/TopicOverloadPolicy.d.ts +23 -0
  701. package/lib/proxy/topic/TopicOverloadPolicy.js +41 -0
  702. package/lib/serialization/Data.d.ts +114 -0
  703. package/lib/serialization/Data.js +17 -0
  704. package/lib/serialization/DefaultPredicates.d.ts +131 -0
  705. package/lib/serialization/DefaultPredicates.js +465 -0
  706. package/lib/serialization/DefaultSerializer.d.ts +134 -0
  707. package/lib/serialization/DefaultSerializer.js +442 -0
  708. package/lib/serialization/HeapData.d.ts +44 -0
  709. package/lib/serialization/HeapData.js +104 -0
  710. package/lib/serialization/ObjectData.d.ts +102 -0
  711. package/lib/serialization/ObjectData.js +566 -0
  712. package/lib/serialization/PredicateFactory.d.ts +15 -0
  713. package/lib/serialization/PredicateFactory.js +46 -0
  714. package/lib/serialization/Serializable.d.ts +23 -0
  715. package/lib/serialization/Serializable.js +17 -0
  716. package/lib/serialization/SerializationService.d.ts +60 -0
  717. package/lib/serialization/SerializationService.js +312 -0
  718. package/lib/serialization/SerializationUtil.d.ts +3 -0
  719. package/lib/serialization/SerializationUtil.js +31 -0
  720. package/lib/serialization/portable/ClassDefinition.d.ts +54 -0
  721. package/lib/serialization/portable/ClassDefinition.js +140 -0
  722. package/lib/serialization/portable/ClassDefinitionBuilder.d.ts +35 -0
  723. package/lib/serialization/portable/ClassDefinitionBuilder.js +126 -0
  724. package/lib/serialization/portable/ClassDefinitionContext.d.ts +9 -0
  725. package/lib/serialization/portable/ClassDefinitionContext.js +51 -0
  726. package/lib/serialization/portable/ClassDefinitionWriter.d.ts +35 -0
  727. package/lib/serialization/portable/ClassDefinitionWriter.js +123 -0
  728. package/lib/serialization/portable/DefaultPortableReader.d.ts +43 -0
  729. package/lib/serialization/portable/DefaultPortableReader.js +188 -0
  730. package/lib/serialization/portable/DefaultPortableWriter.d.ts +37 -0
  731. package/lib/serialization/portable/DefaultPortableWriter.js +156 -0
  732. package/lib/serialization/portable/MorphingPortableReader.d.ts +31 -0
  733. package/lib/serialization/portable/MorphingPortableReader.js +189 -0
  734. package/lib/serialization/portable/PortableContext.d.ts +16 -0
  735. package/lib/serialization/portable/PortableContext.js +126 -0
  736. package/lib/serialization/portable/PortableSerializer.d.ts +68 -0
  737. package/lib/serialization/portable/PortableSerializer.js +94 -0
  738. package/lib/statistics/Statistics.d.ts +50 -0
  739. package/lib/statistics/Statistics.js +232 -0
  740. package/lib/util/ArrayComparator.d.ts +1 -0
  741. package/lib/util/ArrayComparator.js +17 -0
  742. package/lib/util/UuidUtil.d.ts +4 -0
  743. package/lib/util/UuidUtil.js +35 -0
  744. package/lib.es6.d.ts +18650 -0
  745. package/package.json +55 -0
  746. package/tsconfig.json +20 -0
@@ -0,0 +1,581 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2008-2021, Hazelcast, Inc. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ var Promise = require("bluebird");
19
+ var ClientAddMembershipListenerCodec_1 = require("../codec/ClientAddMembershipListenerCodec");
20
+ var ClientInfo_1 = require("../ClientInfo");
21
+ var HazelcastError_1 = require("../HazelcastError");
22
+ var assert = require("assert");
23
+ var Util_1 = require("../Util");
24
+ var MemberAttributeEvent_1 = require("../core/MemberAttributeEvent");
25
+ var MembershipEvent_1 = require("../core/MembershipEvent");
26
+ var UuidUtil_1 = require("../util/UuidUtil");
27
+ var Address = require("../Address");
28
+ var MemberEvent;
29
+ (function (MemberEvent) {
30
+ MemberEvent[MemberEvent["ADDED"] = 1] = "ADDED";
31
+ MemberEvent[MemberEvent["REMOVED"] = 2] = "REMOVED";
32
+ })(MemberEvent = exports.MemberEvent || (exports.MemberEvent = {}));
33
+ /**
34
+ * Manages the relationship of this client with the cluster.
35
+ */
36
+ var ClusterService = /** @class */ (function () {
37
+ function ClusterService(client) {
38
+ /**
39
+ * The unique identifier of the owner server node. This node is responsible for resource cleanup
40
+ */
41
+ this.ownerUuid = null;
42
+ /**
43
+ * The unique identifier of this client instance. Assigned by owner node on authentication
44
+ */
45
+ this.uuid = null;
46
+ this.knownAddresses = [];
47
+ this.members = [];
48
+ this.membershipListeners = new Map();
49
+ this.failoverInProgress = false;
50
+ this.lastFailoverAttempt = 0;
51
+ this.failoverCooldown = 5000; // 5 seconds cooldown between failover attempts
52
+ this.downAddresses = new Map(); // address -> timestamp when marked down
53
+ this.addressBlockDuration = 30000; // 30 seconds block duration for down addresses
54
+ this.reconnectionTask = null;
55
+ this.reconnectionInterval = 10000; // 10 seconds between reconnection attempts
56
+ this.client = client;
57
+ this.logger = this.client.getLoggingService().getLogger();
58
+ this.members = [];
59
+ this.startReconnectionTask();
60
+ }
61
+ /**
62
+ * Starts cluster service.
63
+ * @returns
64
+ */
65
+ ClusterService.prototype.start = function () {
66
+ this.initHeartbeatListener();
67
+ this.initConnectionListener();
68
+ return this.connectToCluster();
69
+ };
70
+ /**
71
+ * Connects to cluster. It uses the addresses provided in the configuration.
72
+ * @returns
73
+ */
74
+ ClusterService.prototype.connectToCluster = function () {
75
+ var _this = this;
76
+ return this.getPossibleMemberAddresses().then(function (res) {
77
+ _this.knownAddresses = [];
78
+ res.forEach(function (value) {
79
+ _this.knownAddresses = _this.knownAddresses.concat(Util_1.AddressHelper.getSocketAddresses(value));
80
+ });
81
+ var attemptLimit = _this.client.getConfig().networkConfig.connectionAttemptLimit;
82
+ var attemptPeriod = _this.client.getConfig().networkConfig.connectionAttemptPeriod;
83
+ return _this.tryConnectingToAddresses(0, attemptLimit, attemptPeriod);
84
+ });
85
+ };
86
+ ClusterService.prototype.getPossibleMemberAddresses = function () {
87
+ var _this = this;
88
+ var addresses = new Set();
89
+ this.getMembers().forEach(function (member) {
90
+ addresses.add(member.address.toString());
91
+ });
92
+ var providerAddresses = new Set();
93
+ var promises = [];
94
+ this.client.getConnectionManager().addressProviders.forEach(function (addressProvider) {
95
+ promises.push(addressProvider.loadAddresses().then(function (res) {
96
+ providerAddresses = new Set(Array.from(providerAddresses).concat(res));
97
+ }).catch(function (err) {
98
+ _this.logger.warn('Error from AddressProvider: ' + addressProvider, err);
99
+ }));
100
+ });
101
+ return Promise.all(promises).then(function () {
102
+ return Array.from(new Set(Array.from(addresses).concat(Array.from(providerAddresses))));
103
+ });
104
+ };
105
+ /**
106
+ * Returns the list of members in the cluster.
107
+ * @returns
108
+ */
109
+ ClusterService.prototype.getMembers = function (selector) {
110
+ if (selector === undefined) {
111
+ return this.members;
112
+ }
113
+ else {
114
+ var members_1 = [];
115
+ this.members.forEach(function (member) {
116
+ if (selector.select(member)) {
117
+ members_1.push(member);
118
+ }
119
+ });
120
+ return members_1;
121
+ }
122
+ };
123
+ ClusterService.prototype.getMember = function (uuid) {
124
+ for (var _i = 0, _a = this.members; _i < _a.length; _i++) {
125
+ var member = _a[_i];
126
+ if (member.uuid === uuid) {
127
+ return member;
128
+ }
129
+ }
130
+ return null;
131
+ };
132
+ /**
133
+ * Returns the number of nodes in cluster.
134
+ * @returns {number}
135
+ */
136
+ ClusterService.prototype.getSize = function () {
137
+ return this.members.length;
138
+ };
139
+ /**
140
+ * Returns information about this client.
141
+ * @returns {ClientInfo}
142
+ */
143
+ ClusterService.prototype.getClientInfo = function () {
144
+ var info = new ClientInfo_1.ClientInfo();
145
+ info.uuid = this.uuid;
146
+ info.localAddress = this.getOwnerConnection().getLocalAddress();
147
+ return info;
148
+ };
149
+ /**
150
+ * Returns the connection associated with owner node of this client.
151
+ * @returns {ClientConnection}
152
+ */
153
+ ClusterService.prototype.getOwnerConnection = function () {
154
+ return this.ownerConnection;
155
+ };
156
+ /**
157
+ * Adds MembershipListener to listen for membership updates. There is no check for duplicate registrations,
158
+ * so if you register the listener twice, it will get events twice.
159
+ * @param {MembershipListener} The listener to be registered
160
+ * @return The registration ID
161
+ */
162
+ ClusterService.prototype.addMembershipListener = function (membershipListener) {
163
+ var registrationId = UuidUtil_1.UuidUtil.generate().toString();
164
+ this.membershipListeners.set(registrationId, membershipListener);
165
+ return registrationId;
166
+ };
167
+ /**
168
+ * Removes registered MembershipListener.
169
+ * @param {string} The registration ID
170
+ * @return {boolean} true if successfully removed, false otherwise
171
+ */
172
+ ClusterService.prototype.removeMembershipListener = function (registrationId) {
173
+ if (registrationId === null) {
174
+ throw new RangeError('registrationId cannot be null');
175
+ }
176
+ return this.membershipListeners.delete(registrationId);
177
+ };
178
+ ClusterService.prototype.initMembershipListener = function () {
179
+ var _this = this;
180
+ var request = ClientAddMembershipListenerCodec_1.ClientAddMembershipListenerCodec.encodeRequest(false);
181
+ var handler = function (m) {
182
+ var handleMember = _this.handleMember.bind(_this);
183
+ var handleMemberList = _this.handleMemberList.bind(_this);
184
+ var handleAttributeChange = _this.handleMemberAttributeChange.bind(_this);
185
+ ClientAddMembershipListenerCodec_1.ClientAddMembershipListenerCodec.handle(m, handleMember, handleMemberList, handleAttributeChange, null);
186
+ };
187
+ return this.client.getInvocationService().invokeOnConnection(this.getOwnerConnection(), request, handler)
188
+ .then(function (resp) {
189
+ _this.logger.trace('ClusterService', 'Registered listener with id '
190
+ + ClientAddMembershipListenerCodec_1.ClientAddMembershipListenerCodec.decodeResponse(resp).response);
191
+ });
192
+ };
193
+ ClusterService.prototype.initHeartbeatListener = function () {
194
+ this.client.getHeartbeat().addListener({
195
+ onHeartbeatStopped: this.onHeartbeatStopped.bind(this),
196
+ });
197
+ };
198
+ ClusterService.prototype.initConnectionListener = function () {
199
+ this.client.getConnectionManager().on('connectionClosed', this.onConnectionClosed.bind(this));
200
+ };
201
+ ClusterService.prototype.onConnectionClosed = function (connection) {
202
+ this.logger.warn('ClusterService', 'Connection closed to ' + connection.toString());
203
+ // Mark the address as down when connection is closed
204
+ this.markAddressAsDown(connection.getAddress());
205
+ if (connection.isAuthenticatedAsOwner()) {
206
+ this.ownerConnection = null;
207
+ this.triggerFailover();
208
+ }
209
+ };
210
+ ClusterService.prototype.onHeartbeatStopped = function (connection) {
211
+ this.logger.warn('ClusterService', connection.toString() + ' stopped heartbeating.');
212
+ // Mark the address as down when heartbeat stops
213
+ this.markAddressAsDown(connection.getAddress());
214
+ if (connection.isAuthenticatedAsOwner()) {
215
+ this.client.getConnectionManager().destroyConnection(connection.getAddress());
216
+ this.ownerConnection = null;
217
+ this.triggerFailover();
218
+ }
219
+ };
220
+ ClusterService.prototype.triggerFailover = function () {
221
+ var _this = this;
222
+ var now = Date.now();
223
+ if (this.failoverInProgress || (now - this.lastFailoverAttempt) < this.failoverCooldown) {
224
+ this.logger.debug('ClusterService', 'Failover already in progress or too soon since last attempt');
225
+ return;
226
+ }
227
+ this.failoverInProgress = true;
228
+ this.lastFailoverAttempt = now;
229
+ this.logger.info('ClusterService', 'Starting failover process...');
230
+ // Clear any stale partition information
231
+ this.client.getPartitionService().clearPartitionTable();
232
+ // Attempt to reconnect to cluster
233
+ this.connectToCluster()
234
+ .then(function () {
235
+ _this.logger.info('ClusterService', 'Failover completed successfully');
236
+ })
237
+ .catch(function (error) {
238
+ _this.logger.error('ClusterService', 'Failover failed', error);
239
+ // If failover fails, shutdown the client to prevent further issues
240
+ _this.client.shutdown();
241
+ })
242
+ .finally(function () {
243
+ _this.failoverInProgress = false;
244
+ });
245
+ };
246
+ ClusterService.prototype.isAddressKnownDown = function (address) {
247
+ var addressStr = address.toString();
248
+ var downTime = this.downAddresses.get(addressStr);
249
+ if (!downTime) {
250
+ return false;
251
+ }
252
+ var now = Date.now();
253
+ var timeSinceDown = now - downTime;
254
+ // If address has been down for longer than block duration, unblock it
255
+ if (timeSinceDown > this.addressBlockDuration) {
256
+ this.logger.debug('ClusterService', "Unblocking address " + addressStr + " after " + this.addressBlockDuration + "ms");
257
+ this.downAddresses.delete(addressStr);
258
+ return false;
259
+ }
260
+ // Address is still blocked
261
+ var remainingBlockTime = this.addressBlockDuration - timeSinceDown;
262
+ this.logger.debug('ClusterService', "Address " + addressStr + " is blocked for " + remainingBlockTime + "ms more");
263
+ return true;
264
+ };
265
+ ClusterService.prototype.markAddressAsDown = function (address) {
266
+ var _this = this;
267
+ var addressStr = address.toString();
268
+ var now = Date.now();
269
+ this.downAddresses.set(addressStr, now);
270
+ this.logger.warn('ClusterService', "Marked address " + addressStr + " as down, will be blocked for " + this.addressBlockDuration + "ms");
271
+ // Schedule cleanup of this address after block duration
272
+ setTimeout(function () {
273
+ if (_this.downAddresses.has(addressStr)) {
274
+ _this.logger.info('ClusterService', "Unblocking address " + addressStr + " after block duration");
275
+ _this.downAddresses.delete(addressStr);
276
+ }
277
+ }, this.addressBlockDuration);
278
+ };
279
+ ClusterService.prototype.getDownAddressesInfo = function () {
280
+ var _this = this;
281
+ var now = Date.now();
282
+ var downInfo = [];
283
+ this.downAddresses.forEach(function (downTime, address) {
284
+ var timeSinceDown = now - downTime;
285
+ var remainingTime = Math.max(0, _this.addressBlockDuration - timeSinceDown);
286
+ downInfo.push(address + " (" + Math.ceil(remainingTime / 1000) + "s remaining)");
287
+ });
288
+ return downInfo.length > 0 ? downInfo.join(', ') : 'none';
289
+ };
290
+ ClusterService.prototype.tryConnectingToAddresses = function (index, remainingAttemptLimit, attemptPeriod, cause) {
291
+ var _this = this;
292
+ this.logger.debug('ClusterService', 'Trying to connect to addresses, remaining attempt limit: ' + remainingAttemptLimit
293
+ + ', attempt period: ' + attemptPeriod + ', down addresses: ' + this.getDownAddressesInfo());
294
+ if (this.knownAddresses.length <= index) {
295
+ remainingAttemptLimit = remainingAttemptLimit - 1;
296
+ if (remainingAttemptLimit === 0) {
297
+ var errorMessage = 'Unable to connect to any of the following addresses: ' +
298
+ this.knownAddresses.map(function (element) {
299
+ return element.toString();
300
+ }).join(', ');
301
+ this.logger.debug('ClusterService', errorMessage);
302
+ var error = new HazelcastError_1.IllegalStateError(errorMessage, cause);
303
+ return Promise.reject(error);
304
+ }
305
+ else {
306
+ var deferred_1 = Util_1.DeferredPromise();
307
+ setTimeout(function () {
308
+ _this.tryConnectingToAddresses(0, remainingAttemptLimit, attemptPeriod).then(function () {
309
+ deferred_1.resolve();
310
+ }).catch(function (e) {
311
+ deferred_1.reject(e);
312
+ });
313
+ }, attemptPeriod);
314
+ return deferred_1.promise;
315
+ }
316
+ }
317
+ else {
318
+ var currentAddress_1 = this.knownAddresses[index];
319
+ // Skip addresses that are known to be down
320
+ if (this.isAddressKnownDown(currentAddress_1)) {
321
+ this.logger.debug('ClusterService', "Skipping known down address: " + currentAddress_1.toString());
322
+ return this.tryConnectingToAddresses(index + 1, remainingAttemptLimit, attemptPeriod, cause);
323
+ }
324
+ return this.client.getConnectionManager().getOrConnect(currentAddress_1, true).then(function (connection) {
325
+ connection.setAuthenticatedAsOwner(true);
326
+ _this.ownerConnection = connection;
327
+ _this.logger.info('ClusterService', "Successfully connected to owner node: " + currentAddress_1.toString());
328
+ return _this.initMembershipListener();
329
+ }).catch(function (e) {
330
+ _this.logger.warn('ClusterService', "Failed to connect to " + currentAddress_1.toString() + ":", e);
331
+ _this.markAddressAsDown(currentAddress_1);
332
+ return _this.tryConnectingToAddresses(index + 1, remainingAttemptLimit, attemptPeriod, e);
333
+ });
334
+ }
335
+ };
336
+ ClusterService.prototype.handleMember = function (member, eventType) {
337
+ if (eventType === MemberEvent.ADDED) {
338
+ this.logger.info('ClusterService', member.toString() + ' added to cluster');
339
+ this.memberAdded(member);
340
+ }
341
+ else if (eventType === MemberEvent.REMOVED) {
342
+ this.logger.info('ClusterService', member.toString() + ' removed from cluster');
343
+ this.memberRemoved(member);
344
+ }
345
+ this.client.getPartitionService().refresh();
346
+ };
347
+ ClusterService.prototype.handleMemberList = function (members) {
348
+ var prevMembers = this.members;
349
+ this.members = members;
350
+ this.client.getPartitionService().refresh();
351
+ this.logger.info('ClusterService', 'Members received.', this.members);
352
+ var events = this.detectMembershipEvents(prevMembers);
353
+ for (var _i = 0, events_1 = events; _i < events_1.length; _i++) {
354
+ var event = events_1[_i];
355
+ this.fireMembershipEvent(event);
356
+ }
357
+ };
358
+ ClusterService.prototype.detectMembershipEvents = function (prevMembers) {
359
+ var events = [];
360
+ var eventMembers = Array.from(this.members);
361
+ var addedMembers = [];
362
+ var deletedMembers = Array.from(prevMembers);
363
+ for (var _i = 0, _a = this.members; _i < _a.length; _i++) {
364
+ var member = _a[_i];
365
+ var idx = deletedMembers.findIndex(member.equals, member);
366
+ if (idx === -1) {
367
+ addedMembers.push(member);
368
+ }
369
+ else {
370
+ deletedMembers.splice(idx, 1);
371
+ }
372
+ }
373
+ // removal events should be added before added events
374
+ for (var _b = 0, deletedMembers_1 = deletedMembers; _b < deletedMembers_1.length; _b++) {
375
+ var member = deletedMembers_1[_b];
376
+ events.push(new MembershipEvent_1.MembershipEvent(member, MemberEvent.REMOVED, eventMembers));
377
+ }
378
+ for (var _c = 0, addedMembers_1 = addedMembers; _c < addedMembers_1.length; _c++) {
379
+ var member = addedMembers_1[_c];
380
+ events.push(new MembershipEvent_1.MembershipEvent(member, MemberEvent.ADDED, eventMembers));
381
+ }
382
+ return events;
383
+ };
384
+ ClusterService.prototype.fireMembershipEvent = function (membershipEvent) {
385
+ this.membershipListeners.forEach(function (membershipListener, registrationId) {
386
+ if (membershipEvent.eventType === MemberEvent.ADDED) {
387
+ if (membershipListener && membershipListener.memberAdded) {
388
+ membershipListener.memberAdded(membershipEvent);
389
+ }
390
+ }
391
+ else if (membershipEvent.eventType === MemberEvent.REMOVED) {
392
+ if (membershipListener && membershipListener.memberRemoved) {
393
+ membershipListener.memberRemoved(membershipEvent);
394
+ }
395
+ }
396
+ });
397
+ };
398
+ ClusterService.prototype.handleMemberAttributeChange = function (uuid, key, operationType, value) {
399
+ var _this = this;
400
+ this.membershipListeners.forEach(function (membershipListener, registrationId) {
401
+ if (membershipListener && membershipListener.memberAttributeChanged) {
402
+ var member = _this.getMember(uuid);
403
+ var memberAttributeEvent = new MemberAttributeEvent_1.MemberAttributeEvent(member, key, operationType, value);
404
+ membershipListener.memberAttributeChanged(memberAttributeEvent);
405
+ }
406
+ });
407
+ };
408
+ ClusterService.prototype.memberAdded = function (member) {
409
+ this.members.push(member);
410
+ var membershipEvent = new MembershipEvent_1.MembershipEvent(member, MemberEvent.ADDED, this.members);
411
+ this.fireMembershipEvent(membershipEvent);
412
+ };
413
+ ClusterService.prototype.memberRemoved = function (member) {
414
+ var memberIndex = this.members.findIndex(member.equals, member);
415
+ if (memberIndex !== -1) {
416
+ var removedMemberList = this.members.splice(memberIndex, 1);
417
+ assert(removedMemberList.length === 1);
418
+ }
419
+ this.client.getConnectionManager().destroyConnection(member.address);
420
+ var membershipEvent = new MembershipEvent_1.MembershipEvent(member, MemberEvent.REMOVED, this.members);
421
+ this.fireMembershipEvent(membershipEvent);
422
+ };
423
+ ClusterService.prototype.startReconnectionTask = function () {
424
+ var _this = this;
425
+ // Periodically attempt to reconnect to previously failed addresses
426
+ this.reconnectionTask = setInterval(function () {
427
+ _this.attemptReconnectionToFailedNodes();
428
+ }, this.reconnectionInterval);
429
+ };
430
+ ClusterService.prototype.attemptReconnectionToFailedNodes = function () {
431
+ var _this = this;
432
+ if (this.failoverInProgress || !this.ownerConnection) {
433
+ return;
434
+ }
435
+ var now = Date.now();
436
+ var addressesToReconnect = [];
437
+ var totalDownAddresses = this.downAddresses.size;
438
+ // If we have no down addresses, we can increase the reconnection interval
439
+ if (totalDownAddresses === 0) {
440
+ return;
441
+ }
442
+ // Find addresses that are no longer blocked
443
+ this.downAddresses.forEach(function (downTime, addressStr) {
444
+ var timeSinceDown = now - downTime;
445
+ if (timeSinceDown > _this.addressBlockDuration) {
446
+ // Parse the address string back to Address object
447
+ try {
448
+ var _a = addressStr.split(':'), host = _a[0], portStr = _a[1];
449
+ var port = parseInt(portStr, 10);
450
+ if (host && !isNaN(port)) {
451
+ var address = new Address(host, port);
452
+ addressesToReconnect.push(address);
453
+ }
454
+ }
455
+ catch (error) {
456
+ _this.logger.warn('ClusterService', "Failed to parse address " + addressStr + " for reconnection:", error);
457
+ }
458
+ }
459
+ });
460
+ if (addressesToReconnect.length > 0) {
461
+ this.logger.info('ClusterService', "Attempting to reconnect to " + addressesToReconnect.length + " previously failed nodes: " + addressesToReconnect.map(function (addr) { return addr.toString(); }).join(', '));
462
+ // Attempt to establish connections to each unblocked address
463
+ addressesToReconnect.forEach(function (address) {
464
+ _this.attemptReconnectionToAddress(address);
465
+ });
466
+ }
467
+ else if (totalDownAddresses > 0) {
468
+ // Log remaining blocked addresses for debugging
469
+ var remainingBlocked = Array.from(this.downAddresses.keys()).map(function (addr) {
470
+ var downTime = _this.downAddresses.get(addr);
471
+ var timeSinceDown = now - downTime;
472
+ var remainingTime = Math.max(0, _this.addressBlockDuration - timeSinceDown);
473
+ return addr + " (" + Math.ceil(remainingTime / 1000) + "s remaining)";
474
+ });
475
+ this.logger.debug('ClusterService', "Still waiting for " + totalDownAddresses + " addresses to unblock: " + remainingBlocked.join(', '));
476
+ }
477
+ };
478
+ /**
479
+ * Attempts to establish a connection to a specific address
480
+ * @param address The address to reconnect to
481
+ */
482
+ ClusterService.prototype.attemptReconnectionToAddress = function (address) {
483
+ var _this = this;
484
+ var addressStr = address.toString();
485
+ // Remove from down addresses to allow connection attempt
486
+ this.downAddresses.delete(addressStr);
487
+ this.logger.debug('ClusterService', "Attempting reconnection to " + addressStr);
488
+ // Attempt to establish connection (not as owner, just as regular member connection)
489
+ this.client.getConnectionManager().getOrConnect(address, false)
490
+ .then(function (connection) {
491
+ _this.logger.info('ClusterService', "Successfully reconnected to " + addressStr);
492
+ // Check if this reconnected node should become the new owner
493
+ _this.evaluateOwnershipChange(address, connection);
494
+ // Trigger partition service refresh to update routing information
495
+ _this.client.getPartitionService().refresh();
496
+ }).catch(function (error) {
497
+ _this.logger.warn('ClusterService', "Reconnection attempt to " + addressStr + " failed:", error);
498
+ // Mark the address as down again, but with a shorter block duration for reconnection attempts
499
+ var shorterBlockDuration = Math.min(_this.addressBlockDuration / 2, 15000); // Max 15 seconds
500
+ _this.markAddressAsDownWithDuration(address, shorterBlockDuration);
501
+ });
502
+ };
503
+ /**
504
+ * Evaluates whether we should switch ownership to a reconnected node
505
+ * @param address The address of the reconnected node
506
+ * @param connection The connection to the reconnected node
507
+ */
508
+ ClusterService.prototype.evaluateOwnershipChange = function (address, connection) {
509
+ // If we don't have an owner connection, this reconnected node becomes the owner
510
+ if (!this.ownerConnection) {
511
+ this.logger.info('ClusterService', "Promoting reconnected node " + address.toString() + " to owner status");
512
+ this.promoteToOwner(connection, address);
513
+ return;
514
+ }
515
+ // If our current owner connection is having issues, consider switching
516
+ if (this.ownerConnection && !this.ownerConnection.isAlive()) {
517
+ this.logger.info('ClusterService', "Current owner is unhealthy, switching to reconnected node " + address.toString());
518
+ this.promoteToOwner(connection, address);
519
+ return;
520
+ }
521
+ // Check if this reconnected node was previously our owner (by checking if it's in our known addresses)
522
+ var wasPreviousOwner = this.knownAddresses.some(function (knownAddr) { return knownAddr.equals(address); });
523
+ if (wasPreviousOwner) {
524
+ this.logger.debug('ClusterService', "Reconnected node " + address.toString() + " was previously known, monitoring for ownership opportunity");
525
+ // Don't switch ownership immediately, but keep the connection for potential future use
526
+ }
527
+ };
528
+ /**
529
+ * Promotes a connection to owner status
530
+ * @param connection The connection to promote
531
+ * @param address The address of the promoted connection
532
+ */
533
+ ClusterService.prototype.promoteToOwner = function (connection, address) {
534
+ try {
535
+ // Close the old owner connection if it exists
536
+ if (this.ownerConnection && this.ownerConnection !== connection) {
537
+ this.logger.info('ClusterService', "Closing previous owner connection to " + this.ownerConnection.getAddress().toString());
538
+ this.client.getConnectionManager().destroyConnection(this.ownerConnection.getAddress());
539
+ }
540
+ // Set the new owner connection
541
+ connection.setAuthenticatedAsOwner(true);
542
+ this.ownerConnection = connection;
543
+ this.logger.info('ClusterService', "Successfully promoted " + address.toString() + " to owner status");
544
+ // Refresh partition information with the new owner
545
+ this.client.getPartitionService().refresh();
546
+ }
547
+ catch (error) {
548
+ this.logger.error('ClusterService', "Failed to promote " + address.toString() + " to owner:", error);
549
+ // If promotion fails, mark the address as down again
550
+ this.markAddressAsDown(address);
551
+ }
552
+ };
553
+ /**
554
+ * Marks an address as down with a custom block duration
555
+ * @param address The address to mark as down
556
+ * @param blockDuration The duration to block the address (in milliseconds)
557
+ */
558
+ ClusterService.prototype.markAddressAsDownWithDuration = function (address, blockDuration) {
559
+ var _this = this;
560
+ var addressStr = address.toString();
561
+ var now = Date.now();
562
+ this.downAddresses.set(addressStr, now);
563
+ this.logger.warn('ClusterService', "Marked address " + addressStr + " as down, will be blocked for " + blockDuration + "ms");
564
+ // Schedule cleanup of this address after block duration
565
+ setTimeout(function () {
566
+ if (_this.downAddresses.has(addressStr)) {
567
+ _this.logger.info('ClusterService', "Unblocking address " + addressStr + " after block duration");
568
+ _this.downAddresses.delete(addressStr);
569
+ }
570
+ }, blockDuration);
571
+ };
572
+ ClusterService.prototype.shutdown = function () {
573
+ if (this.reconnectionTask) {
574
+ clearInterval(this.reconnectionTask);
575
+ this.reconnectionTask = null;
576
+ }
577
+ this.downAddresses.clear();
578
+ };
579
+ return ClusterService;
580
+ }());
581
+ exports.ClusterService = ClusterService;
@@ -0,0 +1,14 @@
1
+ /// <reference types="bluebird" />
2
+ import * as Promise from 'bluebird';
3
+ import HazelcastClient from '../HazelcastClient';
4
+ import { ClientConnection } from './ClientConnection';
5
+ import ClientMessage = require('../ClientMessage');
6
+ export declare class ConnectionAuthenticator {
7
+ private connection;
8
+ private client;
9
+ private clusterService;
10
+ private logger;
11
+ constructor(connection: ClientConnection, client: HazelcastClient);
12
+ authenticate(asOwner: boolean): Promise<void>;
13
+ createCredentials(asOwner: boolean): ClientMessage;
14
+ }