@gala-chain/launchpad-sdk 5.0.3 → 5.0.4-beta.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 (406) hide show
  1. package/EXAMPLES.md +141 -7
  2. package/README.md +68 -36
  3. package/dist/ai-docs.json +7357 -0
  4. package/dist/index.cjs.js +1 -1
  5. package/dist/index.d.ts +70 -11
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.esm.js +1 -1
  8. package/dist/index.js +1 -1
  9. package/dist/src/LaunchpadSDK.d.ts +3288 -214
  10. package/dist/src/LaunchpadSDK.d.ts.map +1 -1
  11. package/dist/src/api/LaunchpadAPI.d.ts +21 -41
  12. package/dist/src/api/LaunchpadAPI.d.ts.map +1 -1
  13. package/dist/src/api/dto/BurnTokensDto.d.ts.map +1 -1
  14. package/dist/src/api/dto/LockTokenDto.d.ts.map +1 -1
  15. package/dist/src/api/dto/TransferTokenDto.d.ts.map +1 -1
  16. package/dist/src/api/dto/UnlockTokenDto.d.ts.map +1 -1
  17. package/dist/src/auth/JwtAuth.d.ts +145 -0
  18. package/dist/src/auth/JwtAuth.d.ts.map +1 -0
  19. package/dist/src/auth/SessionAuthService.d.ts +146 -0
  20. package/dist/src/auth/SessionAuthService.d.ts.map +1 -0
  21. package/dist/src/auth/SignatureAuth.d.ts.map +1 -1
  22. package/dist/src/bridge/BridgeService.d.ts.map +1 -1
  23. package/dist/src/bridge/GalaConnectClient.d.ts.map +1 -1
  24. package/dist/src/bridge/constants/tokens.d.ts +4 -3
  25. package/dist/src/bridge/constants/tokens.d.ts.map +1 -1
  26. package/dist/src/bridge/index.d.ts +1 -0
  27. package/dist/src/bridge/index.d.ts.map +1 -1
  28. package/dist/src/bridge/strategies/BridgeStrategy.d.ts.map +1 -1
  29. package/dist/src/bridge/strategies/EthereumBridgeStrategy.d.ts +1 -38
  30. package/dist/src/bridge/strategies/EthereumBridgeStrategy.d.ts.map +1 -1
  31. package/dist/src/bridge/strategies/SolanaBridgeStrategy.d.ts +1 -21
  32. package/dist/src/bridge/strategies/SolanaBridgeStrategy.d.ts.map +1 -1
  33. package/dist/src/bridge/types/bridge.dto.d.ts +15 -2
  34. package/dist/src/bridge/types/bridge.dto.d.ts.map +1 -1
  35. package/dist/src/bridge/utils/RateLimiter.d.ts +1 -1
  36. package/dist/src/bridge/utils/RateLimiter.d.ts.map +1 -1
  37. package/dist/src/bridge/utils/address-formatter.d.ts +25 -0
  38. package/dist/src/bridge/utils/address-formatter.d.ts.map +1 -0
  39. package/dist/src/bridge/utils/addressValidation.d.ts +200 -0
  40. package/dist/src/bridge/utils/addressValidation.d.ts.map +1 -0
  41. package/dist/src/bridge/utils/balanceHelpers.d.ts +215 -0
  42. package/dist/src/bridge/utils/balanceHelpers.d.ts.map +1 -0
  43. package/dist/src/bridge/utils/bridgeErrors.d.ts +98 -0
  44. package/dist/src/bridge/utils/bridgeErrors.d.ts.map +1 -0
  45. package/dist/src/bridge/utils/bridgeOutHelpers.d.ts +68 -0
  46. package/dist/src/bridge/utils/bridgeOutHelpers.d.ts.map +1 -0
  47. package/dist/src/bridge/utils/bridgePayload.d.ts +107 -0
  48. package/dist/src/bridge/utils/bridgePayload.d.ts.map +1 -0
  49. package/dist/src/bridge/utils/bridgeStatusParser.d.ts +75 -0
  50. package/dist/src/bridge/utils/bridgeStatusParser.d.ts.map +1 -0
  51. package/dist/src/bridge/utils/eip712Helpers.d.ts +66 -0
  52. package/dist/src/bridge/utils/eip712Helpers.d.ts.map +1 -0
  53. package/dist/src/bridge/utils/index.d.ts +9 -0
  54. package/dist/src/bridge/utils/index.d.ts.map +1 -1
  55. package/dist/src/bridge/utils/retry.d.ts +16 -0
  56. package/dist/src/bridge/utils/retry.d.ts.map +1 -1
  57. package/dist/src/bridge/utils/strategyDelegation.d.ts +69 -0
  58. package/dist/src/bridge/utils/strategyDelegation.d.ts.map +1 -0
  59. package/dist/src/bridge/utils/tokenIdUtils.d.ts +7 -0
  60. package/dist/src/bridge/utils/tokenIdUtils.d.ts.map +1 -1
  61. package/dist/src/bridge/utils/tokenMath.d.ts.map +1 -1
  62. package/dist/src/bridge/utils/tokenMetadataResolver.d.ts +97 -0
  63. package/dist/src/bridge/utils/tokenMetadataResolver.d.ts.map +1 -0
  64. package/dist/src/constants/endpoints.d.ts +453 -0
  65. package/dist/src/constants/endpoints.d.ts.map +1 -1
  66. package/dist/src/constants/error-messages.d.ts +1 -1
  67. package/dist/src/constants/error-messages.d.ts.map +1 -1
  68. package/dist/src/constants/jwt.d.ts +41 -0
  69. package/dist/src/constants/jwt.d.ts.map +1 -0
  70. package/dist/src/constants/sdk-defaults.d.ts +37 -0
  71. package/dist/src/constants/sdk-defaults.d.ts.map +1 -0
  72. package/dist/src/constants/version.generated.d.ts +1 -1
  73. package/dist/src/constants/version.generated.d.ts.map +1 -1
  74. package/dist/src/helpers/sdk.d.ts.map +1 -1
  75. package/dist/src/helpers/wallet.d.ts +4 -3
  76. package/dist/src/helpers/wallet.d.ts.map +1 -1
  77. package/dist/src/index.d.ts +70 -11
  78. package/dist/src/index.d.ts.map +1 -1
  79. package/dist/src/schemas/files.d.ts +2 -2
  80. package/dist/src/schemas/launchpad.d.ts +40 -8
  81. package/dist/src/schemas/launchpad.d.ts.map +1 -1
  82. package/dist/src/schemas/pagination.d.ts +7 -7
  83. package/dist/src/schemas/primitives.d.ts.map +1 -1
  84. package/dist/src/schemas/trade.d.ts +6 -6
  85. package/dist/src/schemas/user.d.ts +4 -4
  86. package/dist/src/schemas/validators.d.ts +15 -7
  87. package/dist/src/schemas/validators.d.ts.map +1 -1
  88. package/dist/src/services/AbstractCacheService.d.ts +227 -0
  89. package/dist/src/services/AbstractCacheService.d.ts.map +1 -0
  90. package/dist/src/services/AbstractTokenFetchService.d.ts +150 -0
  91. package/dist/src/services/AbstractTokenFetchService.d.ts.map +1 -0
  92. package/dist/src/services/ApiKeyService.d.ts +205 -0
  93. package/dist/src/services/ApiKeyService.d.ts.map +1 -0
  94. package/dist/src/services/BanService.d.ts +195 -0
  95. package/dist/src/services/BanService.d.ts.map +1 -0
  96. package/dist/src/services/BaseService.d.ts +50 -3
  97. package/dist/src/services/BaseService.d.ts.map +1 -1
  98. package/dist/src/services/BatchedCacheService.d.ts +132 -0
  99. package/dist/src/services/BatchedCacheService.d.ts.map +1 -0
  100. package/dist/src/services/BridgeableTokenCache.d.ts +32 -98
  101. package/dist/src/services/BridgeableTokenCache.d.ts.map +1 -1
  102. package/dist/src/services/BridgeableTokenService.d.ts +18 -13
  103. package/dist/src/services/BridgeableTokenService.d.ts.map +1 -1
  104. package/dist/src/services/BundleService.d.ts.map +1 -1
  105. package/dist/src/services/BundlerClientFactory.d.ts +32 -0
  106. package/dist/src/services/BundlerClientFactory.d.ts.map +1 -0
  107. package/dist/src/services/ChatMessagesService.d.ts +152 -0
  108. package/dist/src/services/ChatMessagesService.d.ts.map +1 -0
  109. package/dist/src/services/CommentService.d.ts +119 -0
  110. package/dist/src/services/CommentService.d.ts.map +1 -0
  111. package/dist/src/services/CommentsService.d.ts +155 -0
  112. package/dist/src/services/CommentsService.d.ts.map +1 -0
  113. package/dist/src/services/ContentFlagService.d.ts +212 -0
  114. package/dist/src/services/ContentFlagService.d.ts.map +1 -0
  115. package/dist/src/services/ContentReactionService.d.ts +175 -0
  116. package/dist/src/services/ContentReactionService.d.ts.map +1 -0
  117. package/dist/src/services/DexBackendClient.d.ts.map +1 -1
  118. package/dist/src/services/DexPoolService.d.ts +3 -3
  119. package/dist/src/services/DexPoolService.d.ts.map +1 -1
  120. package/dist/src/services/DexQuoteService.d.ts.map +1 -1
  121. package/dist/src/services/DexService.d.ts +2 -5
  122. package/dist/src/services/DexService.d.ts.map +1 -1
  123. package/dist/src/services/GSwapAssetService.d.ts +80 -0
  124. package/dist/src/services/GSwapAssetService.d.ts.map +1 -0
  125. package/dist/src/services/GSwapLiquidityMutationService.d.ts +140 -0
  126. package/dist/src/services/GSwapLiquidityMutationService.d.ts.map +1 -0
  127. package/dist/src/services/GSwapLiquidityQueryService.d.ts +87 -0
  128. package/dist/src/services/GSwapLiquidityQueryService.d.ts.map +1 -0
  129. package/dist/src/services/GSwapPoolCalculationService.d.ts +200 -0
  130. package/dist/src/services/GSwapPoolCalculationService.d.ts.map +1 -0
  131. package/dist/src/services/GSwapPoolQueryService.d.ts +116 -0
  132. package/dist/src/services/GSwapPoolQueryService.d.ts.map +1 -0
  133. package/dist/src/services/GSwapService.d.ts +14 -0
  134. package/dist/src/services/GSwapService.d.ts.map +1 -1
  135. package/dist/src/services/GSwapSwapService.d.ts +68 -0
  136. package/dist/src/services/GSwapSwapService.d.ts.map +1 -0
  137. package/dist/src/services/GalaChainBalanceService.d.ts +155 -0
  138. package/dist/src/services/GalaChainBalanceService.d.ts.map +1 -0
  139. package/dist/src/services/GalaChainGatewayClient.d.ts +32 -1
  140. package/dist/src/services/GalaChainGatewayClient.d.ts.map +1 -1
  141. package/dist/src/services/GalaChainLockService.d.ts +144 -0
  142. package/dist/src/services/GalaChainLockService.d.ts.map +1 -0
  143. package/dist/src/services/GalaChainService.d.ts +23 -106
  144. package/dist/src/services/GalaChainService.d.ts.map +1 -1
  145. package/dist/src/services/GalaChainTokenService.d.ts +108 -0
  146. package/dist/src/services/GalaChainTokenService.d.ts.map +1 -0
  147. package/dist/src/services/GalaChainTransferService.d.ts +205 -0
  148. package/dist/src/services/GalaChainTransferService.d.ts.map +1 -0
  149. package/dist/src/services/ImageService.d.ts +24 -8
  150. package/dist/src/services/ImageService.d.ts.map +1 -1
  151. package/dist/src/services/LaunchpadService.d.ts +77 -5
  152. package/dist/src/services/LaunchpadService.d.ts.map +1 -1
  153. package/dist/src/services/ModeratorService.d.ts +269 -0
  154. package/dist/src/services/ModeratorService.d.ts.map +1 -0
  155. package/dist/src/services/MultiPoolStateManager.d.ts +4 -6
  156. package/dist/src/services/MultiPoolStateManager.d.ts.map +1 -1
  157. package/dist/src/services/NetworkKeyedCacheService.d.ts +185 -0
  158. package/dist/src/services/NetworkKeyedCacheService.d.ts.map +1 -0
  159. package/dist/src/services/OverseerService.d.ts +322 -0
  160. package/dist/src/services/OverseerService.d.ts.map +1 -0
  161. package/dist/src/services/PoolCacheManager.d.ts +2 -2
  162. package/dist/src/services/PoolCacheManager.d.ts.map +1 -1
  163. package/dist/src/services/PoolService.d.ts +61 -7
  164. package/dist/src/services/PoolService.d.ts.map +1 -1
  165. package/dist/src/services/PoolStateManager.d.ts +2 -2
  166. package/dist/src/services/PoolStateManager.d.ts.map +1 -1
  167. package/dist/src/services/PriceHistoryService.d.ts.map +1 -1
  168. package/dist/src/services/SignatureService.d.ts.map +1 -1
  169. package/dist/src/services/StreamChatService.d.ts +378 -0
  170. package/dist/src/services/StreamChatService.d.ts.map +1 -0
  171. package/dist/src/services/StreamTokenServiceBase.d.ts +371 -0
  172. package/dist/src/services/StreamTokenServiceBase.d.ts.map +1 -0
  173. package/dist/src/services/StreamWebSocketService.d.ts +268 -0
  174. package/dist/src/services/StreamWebSocketService.d.ts.map +1 -0
  175. package/dist/src/services/StreamingEventService.d.ts +431 -0
  176. package/dist/src/services/StreamingEventService.d.ts.map +1 -0
  177. package/dist/src/services/StreamingService.d.ts +547 -0
  178. package/dist/src/services/StreamingService.d.ts.map +1 -0
  179. package/dist/src/services/SwapEventQueue.d.ts +2 -2
  180. package/dist/src/services/SwapEventQueue.d.ts.map +1 -1
  181. package/dist/src/services/TokenBanService.d.ts +214 -0
  182. package/dist/src/services/TokenBanService.d.ts.map +1 -0
  183. package/dist/src/services/TokenClassKeyService.d.ts.map +1 -1
  184. package/dist/src/services/TokenMetadataCache.d.ts +36 -27
  185. package/dist/src/services/TokenMetadataCache.d.ts.map +1 -1
  186. package/dist/src/services/TokenMetadataService.d.ts +24 -4
  187. package/dist/src/services/TokenMetadataService.d.ts.map +1 -1
  188. package/dist/src/services/TokenResolverService.d.ts.map +1 -1
  189. package/dist/src/services/TradeService.d.ts +73 -0
  190. package/dist/src/services/TradeService.d.ts.map +1 -1
  191. package/dist/src/services/UserService.d.ts +56 -3
  192. package/dist/src/services/UserService.d.ts.map +1 -1
  193. package/dist/src/services/WebSocketService.d.ts +3 -3
  194. package/dist/src/services/WebSocketService.d.ts.map +1 -1
  195. package/dist/src/services/WrapService.d.ts +18 -5
  196. package/dist/src/services/WrapService.d.ts.map +1 -1
  197. package/dist/src/services/WrappableTokenCache.d.ts +8 -36
  198. package/dist/src/services/WrappableTokenCache.d.ts.map +1 -1
  199. package/dist/src/services/WrappableTokenService.d.ts +18 -12
  200. package/dist/src/services/WrappableTokenService.d.ts.map +1 -1
  201. package/dist/src/services/shared/cache-helpers.d.ts +188 -0
  202. package/dist/src/services/shared/cache-helpers.d.ts.map +1 -0
  203. package/dist/src/services/shared/http-helpers.d.ts +146 -0
  204. package/dist/src/services/shared/http-helpers.d.ts.map +1 -0
  205. package/dist/src/services/shared/pagination-helpers.d.ts +157 -0
  206. package/dist/src/services/shared/pagination-helpers.d.ts.map +1 -0
  207. package/dist/src/services/shared/service-validators.d.ts +137 -0
  208. package/dist/src/services/shared/service-validators.d.ts.map +1 -0
  209. package/dist/src/services/shared/websocket-helpers.d.ts +158 -0
  210. package/dist/src/services/shared/websocket-helpers.d.ts.map +1 -0
  211. package/dist/src/test-constants.d.ts +29 -0
  212. package/dist/src/test-constants.d.ts.map +1 -0
  213. package/dist/src/types/api-key.dto.d.ts +300 -0
  214. package/dist/src/types/api-key.dto.d.ts.map +1 -0
  215. package/dist/src/types/backend-responses.d.ts +12 -0
  216. package/dist/src/types/backend-responses.d.ts.map +1 -1
  217. package/dist/src/types/ban.dto.d.ts +413 -0
  218. package/dist/src/types/ban.dto.d.ts.map +1 -0
  219. package/dist/src/types/burn.dto.d.ts +21 -0
  220. package/dist/src/types/burn.dto.d.ts.map +1 -1
  221. package/dist/src/types/chat-messages.dto.d.ts +193 -0
  222. package/dist/src/types/chat-messages.dto.d.ts.map +1 -0
  223. package/dist/src/types/comment.dto.d.ts +180 -0
  224. package/dist/src/types/comment.dto.d.ts.map +1 -0
  225. package/dist/src/types/comments.dto.d.ts +210 -0
  226. package/dist/src/types/comments.dto.d.ts.map +1 -0
  227. package/dist/src/types/common.d.ts +369 -0
  228. package/dist/src/types/common.d.ts.map +1 -1
  229. package/dist/src/types/constraints.d.ts +374 -0
  230. package/dist/src/types/constraints.d.ts.map +1 -0
  231. package/dist/src/types/content-flag.dto.d.ts +310 -0
  232. package/dist/src/types/content-flag.dto.d.ts.map +1 -0
  233. package/dist/src/types/content-reactions.dto.d.ts +132 -0
  234. package/dist/src/types/content-reactions.dto.d.ts.map +1 -0
  235. package/dist/src/types/dex-pool.dto.d.ts +13 -37
  236. package/dist/src/types/dex-pool.dto.d.ts.map +1 -1
  237. package/dist/src/types/dto.d.ts +8 -0
  238. package/dist/src/types/dto.d.ts.map +1 -1
  239. package/dist/src/types/galachain-api.types.d.ts +30 -0
  240. package/dist/src/types/galachain-api.types.d.ts.map +1 -1
  241. package/dist/src/types/gswap-responses.types.d.ts.map +1 -1
  242. package/dist/src/types/launchpad.dto.d.ts +234 -131
  243. package/dist/src/types/launchpad.dto.d.ts.map +1 -1
  244. package/dist/src/types/launchpad.validation.d.ts.map +1 -1
  245. package/dist/src/types/lock.dto.d.ts +20 -35
  246. package/dist/src/types/lock.dto.d.ts.map +1 -1
  247. package/dist/src/types/moderator.dto.d.ts +581 -0
  248. package/dist/src/types/moderator.dto.d.ts.map +1 -0
  249. package/dist/src/types/options.dto.d.ts +25 -115
  250. package/dist/src/types/options.dto.d.ts.map +1 -1
  251. package/dist/src/types/overseer.dto.d.ts +420 -0
  252. package/dist/src/types/overseer.dto.d.ts.map +1 -0
  253. package/dist/src/types/pool.dto.d.ts +106 -0
  254. package/dist/src/types/pool.dto.d.ts.map +1 -0
  255. package/dist/src/types/result.types.d.ts +3 -2
  256. package/dist/src/types/result.types.d.ts.map +1 -1
  257. package/dist/src/types/session-auth.dto.d.ts +91 -0
  258. package/dist/src/types/session-auth.dto.d.ts.map +1 -0
  259. package/dist/src/types/stream-chat.dto.d.ts +815 -0
  260. package/dist/src/types/stream-chat.dto.d.ts.map +1 -0
  261. package/dist/src/types/streaming-events.dto.d.ts +586 -0
  262. package/dist/src/types/streaming-events.dto.d.ts.map +1 -0
  263. package/dist/src/types/streaming.dto.d.ts +1141 -0
  264. package/dist/src/types/streaming.dto.d.ts.map +1 -0
  265. package/dist/src/types/token-ban.dto.d.ts +195 -0
  266. package/dist/src/types/token-ban.dto.d.ts.map +1 -0
  267. package/dist/src/types/trade.dto.d.ts +21 -61
  268. package/dist/src/types/trade.dto.d.ts.map +1 -1
  269. package/dist/src/types/trades-query.dto.d.ts +127 -0
  270. package/dist/src/types/trades-query.dto.d.ts.map +1 -0
  271. package/dist/src/types/transfer.dto.d.ts +20 -15
  272. package/dist/src/types/transfer.dto.d.ts.map +1 -1
  273. package/dist/src/types/user.dto.d.ts +185 -73
  274. package/dist/src/types/user.dto.d.ts.map +1 -1
  275. package/dist/src/types/wrappable-token.dto.d.ts +6 -2
  276. package/dist/src/types/wrappable-token.dto.d.ts.map +1 -1
  277. package/dist/src/utils/LiquidityEventExtractor.d.ts.map +1 -1
  278. package/dist/src/utils/Logger.d.ts.map +1 -1
  279. package/dist/src/utils/MonitoringMetrics.d.ts.map +1 -1
  280. package/dist/src/utils/PoolKeyNormalizer.d.ts.map +1 -1
  281. package/dist/src/utils/ReconnectionManager.d.ts +142 -0
  282. package/dist/src/utils/ReconnectionManager.d.ts.map +1 -0
  283. package/dist/src/utils/SignatureHelper.d.ts +9 -0
  284. package/dist/src/utils/SignatureHelper.d.ts.map +1 -1
  285. package/dist/src/utils/SwapEventExtractor.d.ts.map +1 -1
  286. package/dist/src/utils/adapters.d.ts.map +1 -1
  287. package/dist/src/utils/address-formatter.d.ts +317 -0
  288. package/dist/src/utils/address-formatter.d.ts.map +1 -0
  289. package/dist/src/utils/agent-config.d.ts.map +1 -1
  290. package/dist/src/utils/amount-validator.d.ts +268 -0
  291. package/dist/src/utils/amount-validator.d.ts.map +1 -0
  292. package/dist/src/utils/api-patterns.d.ts +347 -0
  293. package/dist/src/utils/api-patterns.d.ts.map +1 -0
  294. package/dist/src/utils/array-helpers.d.ts +115 -0
  295. package/dist/src/utils/array-helpers.d.ts.map +1 -0
  296. package/dist/src/utils/async-patterns.d.ts +272 -0
  297. package/dist/src/utils/async-patterns.d.ts.map +1 -0
  298. package/dist/src/utils/auto-pagination.d.ts +195 -2
  299. package/dist/src/utils/auto-pagination.d.ts.map +1 -1
  300. package/dist/src/utils/bignumber-helpers.d.ts +119 -13
  301. package/dist/src/utils/bignumber-helpers.d.ts.map +1 -1
  302. package/dist/src/utils/bignumber-pool-cache.d.ts.map +1 -1
  303. package/dist/src/utils/bondingCurveCalculations.d.ts.map +1 -1
  304. package/dist/src/utils/cacheWarmingHelpers.d.ts +2 -2
  305. package/dist/src/utils/cacheWarmingHelpers.d.ts.map +1 -1
  306. package/dist/src/utils/data-transform-patterns.d.ts +393 -0
  307. package/dist/src/utils/data-transform-patterns.d.ts.map +1 -0
  308. package/dist/src/utils/date-utils.d.ts +166 -0
  309. package/dist/src/utils/date-utils.d.ts.map +1 -1
  310. package/dist/src/utils/delimiter-parser.d.ts +139 -0
  311. package/dist/src/utils/delimiter-parser.d.ts.map +1 -0
  312. package/dist/src/utils/error-factories.d.ts +346 -1
  313. package/dist/src/utils/error-factories.d.ts.map +1 -1
  314. package/dist/src/utils/error-handling-patterns.d.ts +390 -0
  315. package/dist/src/utils/error-handling-patterns.d.ts.map +1 -0
  316. package/dist/src/utils/error-patterns.d.ts +360 -0
  317. package/dist/src/utils/error-patterns.d.ts.map +1 -0
  318. package/dist/src/utils/error-utils.d.ts +250 -0
  319. package/dist/src/utils/error-utils.d.ts.map +1 -1
  320. package/dist/src/utils/error-wrapper.d.ts +208 -0
  321. package/dist/src/utils/error-wrapper.d.ts.map +1 -0
  322. package/dist/src/utils/errors.d.ts +70 -0
  323. package/dist/src/utils/errors.d.ts.map +1 -1
  324. package/dist/src/utils/http-factory.d.ts +36 -0
  325. package/dist/src/utils/http-factory.d.ts.map +1 -0
  326. package/dist/src/utils/http.d.ts.map +1 -1
  327. package/dist/src/utils/load-env.d.ts.map +1 -1
  328. package/dist/src/utils/multipart.d.ts.map +1 -1
  329. package/dist/src/utils/numeric-patterns.d.ts +289 -0
  330. package/dist/src/utils/numeric-patterns.d.ts.map +1 -0
  331. package/dist/src/utils/numeric-wrappers.d.ts +146 -0
  332. package/dist/src/utils/numeric-wrappers.d.ts.map +1 -0
  333. package/dist/src/utils/object-extractors.d.ts +115 -0
  334. package/dist/src/utils/object-extractors.d.ts.map +1 -0
  335. package/dist/src/utils/object-patterns.d.ts +81 -0
  336. package/dist/src/utils/object-patterns.d.ts.map +1 -0
  337. package/dist/src/utils/pagination-helpers.d.ts +230 -0
  338. package/dist/src/utils/pagination-helpers.d.ts.map +1 -0
  339. package/dist/src/utils/pool-pair-parser.d.ts +3 -1
  340. package/dist/src/utils/pool-pair-parser.d.ts.map +1 -1
  341. package/dist/src/utils/pool-state-validator.d.ts.map +1 -1
  342. package/dist/src/utils/position-filters.d.ts +1 -2
  343. package/dist/src/utils/position-filters.d.ts.map +1 -1
  344. package/dist/src/utils/query-params.d.ts +0 -16
  345. package/dist/src/utils/query-params.d.ts.map +1 -1
  346. package/dist/src/utils/response-handlers.d.ts +149 -20
  347. package/dist/src/utils/response-handlers.d.ts.map +1 -1
  348. package/dist/src/utils/response-helpers.d.ts +28 -0
  349. package/dist/src/utils/response-helpers.d.ts.map +1 -0
  350. package/dist/src/utils/response-normalizers.d.ts +27 -49
  351. package/dist/src/utils/response-normalizers.d.ts.map +1 -1
  352. package/dist/src/utils/safe-parsers.d.ts +487 -0
  353. package/dist/src/utils/safe-parsers.d.ts.map +1 -0
  354. package/dist/src/utils/service-validators.d.ts +268 -0
  355. package/dist/src/utils/service-validators.d.ts.map +1 -0
  356. package/dist/src/utils/slippage-utils.d.ts.map +1 -1
  357. package/dist/src/utils/string-patterns.d.ts +404 -0
  358. package/dist/src/utils/string-patterns.d.ts.map +1 -0
  359. package/dist/src/utils/string-transforms.d.ts +89 -0
  360. package/dist/src/utils/string-transforms.d.ts.map +1 -0
  361. package/dist/src/utils/string-utils.d.ts +108 -0
  362. package/dist/src/utils/string-utils.d.ts.map +1 -0
  363. package/dist/src/utils/swap-delta-calculator.d.ts.map +1 -1
  364. package/dist/src/utils/tick-crossing-handler.d.ts.map +1 -1
  365. package/dist/src/utils/token-format-converter.d.ts +22 -8
  366. package/dist/src/utils/token-format-converter.d.ts.map +1 -1
  367. package/dist/src/utils/token-parser.d.ts +2 -2
  368. package/dist/src/utils/token-parser.d.ts.map +1 -1
  369. package/dist/src/utils/token-stringification.d.ts +168 -0
  370. package/dist/src/utils/token-stringification.d.ts.map +1 -0
  371. package/dist/src/utils/tokenNameNormalizer.d.ts +96 -0
  372. package/dist/src/utils/tokenNameNormalizer.d.ts.map +1 -0
  373. package/dist/src/utils/tokenNormalizer.d.ts +8 -45
  374. package/dist/src/utils/tokenNormalizer.d.ts.map +1 -1
  375. package/dist/src/utils/transfer-validation.d.ts +1 -1
  376. package/dist/src/utils/transfer-validation.d.ts.map +1 -1
  377. package/dist/src/utils/type-guard-factory.d.ts +260 -0
  378. package/dist/src/utils/type-guard-factory.d.ts.map +1 -0
  379. package/dist/src/utils/unique-key-generator.d.ts +148 -0
  380. package/dist/src/utils/unique-key-generator.d.ts.map +1 -0
  381. package/dist/src/utils/validation-helpers.d.ts +906 -183
  382. package/dist/src/utils/validation-helpers.d.ts.map +1 -1
  383. package/dist/src/utils/validation-patterns.d.ts +745 -0
  384. package/dist/src/utils/validation-patterns.d.ts.map +1 -0
  385. package/dist/src/utils/validation.d.ts +2 -30
  386. package/dist/src/utils/validation.d.ts.map +1 -1
  387. package/dist/src/utils/wallet.d.ts +12 -1
  388. package/dist/src/utils/wallet.d.ts.map +1 -1
  389. package/dist/src/utils/websocket-patterns.d.ts +681 -0
  390. package/dist/src/utils/websocket-patterns.d.ts.map +1 -0
  391. package/dist/src/utils/websocket-validators.d.ts.map +1 -1
  392. package/package.json +86 -19
  393. package/dist/src/bridge/strategies/index.d.ts +0 -9
  394. package/dist/src/bridge/strategies/index.d.ts.map +0 -1
  395. package/dist/src/constants/counts.d.ts +0 -66
  396. package/dist/src/constants/counts.d.ts.map +0 -1
  397. package/dist/src/services/WebSocketManager.d.ts +0 -99
  398. package/dist/src/services/WebSocketManager.d.ts.map +0 -1
  399. package/dist/src/types/eip712-types.d.ts +0 -140
  400. package/dist/src/types/eip712-types.d.ts.map +0 -1
  401. package/dist/src/types/pool-state-manager-config.dto.d.ts +0 -103
  402. package/dist/src/types/pool-state-manager-config.dto.d.ts.map +0 -1
  403. package/dist/src/utils/number-utils.d.ts +0 -94
  404. package/dist/src/utils/number-utils.d.ts.map +0 -1
  405. package/dist/src/utils/precision-math.d.ts +0 -37
  406. package/dist/src/utils/precision-math.d.ts.map +0 -1
@@ -0,0 +1,681 @@
1
+ /**
2
+ * WebSocket Patterns & Utilities
3
+ *
4
+ * Consolidates recurring WebSocket subscription, event handling, and lifecycle patterns
5
+ * used across multiple streaming services. Eliminates code duplication and provides
6
+ * reusable patterns for real-time features.
7
+ *
8
+ * Patterns consolidated:
9
+ * 1. RoomSubscriptionManager - Room-based subscription tracking with auto-cleanup
10
+ * 2. PayloadWalkerWithDeduplication - Recursive payload traversal with deduplication
11
+ * 3. PendingSubscriptionTracker - Pending subscriptions with timeout guards
12
+ * 4. GlobalAndRoomCallbackDispatcher - Dual-level callback dispatching
13
+ * 5. SelectiveEventForwarding - Event filtering before forwarding
14
+ * 6. ListenerCleanupManager - Multi-stage listener cleanup with error isolation
15
+ * 7. EventBufferWithAutoCleanup - Event buffering with TTL and max size
16
+ * 8. TypingIndicatorDebouncer - Typing indicator debouncing
17
+ *
18
+ * @category Utilities
19
+ * @since 6.6.0
20
+ */
21
+ import type { Logger } from './Logger';
22
+ /**
23
+ * Room Subscription Manager
24
+ *
25
+ * Unified room-based subscription tracking with automatic cleanup and duplicate prevention.
26
+ * Used by StreamWebSocketService, PoolStateManager, and MultiPoolStateManager to track
27
+ * which rooms (token subscriptions, pools, etc.) are currently active.
28
+ *
29
+ * Features:
30
+ * - Duplicate prevention (can't add same room twice)
31
+ * - O(1) subscription checks
32
+ * - Bulk retrieval of subscribed rooms
33
+ * - Automatic cleanup on unsubscribe
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * // Test case: Room tracking with subscription metadata
38
+ * const manager = new RoomSubscriptionManager();
39
+ *
40
+ * // Add room
41
+ * manager.addRoom('token:anime');
42
+ * console.assert(manager.isSubscribedTo('token:anime') === true);
43
+ *
44
+ * // Prevent duplicates (no-op if already added)
45
+ * manager.addRoom('token:anime'); // Silent duplicate prevention
46
+ *
47
+ * // Get all subscribed rooms
48
+ * const rooms = manager.getRooms();
49
+ * console.assert(rooms.includes('token:anime'));
50
+ *
51
+ * // Remove room
52
+ * manager.removeRoom('token:anime');
53
+ * console.assert(manager.isSubscribedTo('token:anime') === false);
54
+ *
55
+ * // Clear all
56
+ * manager.addRoom('room1');
57
+ * manager.addRoom('room2');
58
+ * manager.clear();
59
+ * console.assert(manager.getRooms().length === 0);
60
+ * ```
61
+ *
62
+ * @since 6.6.0
63
+ */
64
+ export declare class RoomSubscriptionManager {
65
+ private rooms;
66
+ /**
67
+ * Add a room to subscriptions
68
+ *
69
+ * No-op if room already exists (duplicate prevention).
70
+ *
71
+ * @param roomId - Room identifier (e.g., 'token:anime', 'pool:GALA-USDC')
72
+ */
73
+ addRoom(roomId: string): void;
74
+ /**
75
+ * Remove a room from subscriptions
76
+ *
77
+ * No-op if room doesn't exist.
78
+ *
79
+ * @param roomId - Room identifier to remove
80
+ */
81
+ removeRoom(roomId: string): void;
82
+ /**
83
+ * Get all subscribed rooms
84
+ *
85
+ * @returns Array of room identifiers currently subscribed to
86
+ */
87
+ getRooms(): string[];
88
+ /**
89
+ * Check if subscribed to a room
90
+ *
91
+ * @param roomId - Room identifier to check
92
+ * @returns True if currently subscribed to this room
93
+ */
94
+ isSubscribedTo(roomId: string): boolean;
95
+ /**
96
+ * Clear all room subscriptions
97
+ *
98
+ * Typically called during disconnect or cleanup.
99
+ */
100
+ clear(): void;
101
+ /**
102
+ * Get count of subscribed rooms
103
+ *
104
+ * @returns Number of currently subscribed rooms
105
+ */
106
+ get size(): number;
107
+ }
108
+ /**
109
+ * Payload Walker with Deduplication
110
+ *
111
+ * Recursively walks through object payloads to extract events while deduplicating
112
+ * by a key (e.g., transactionId, eventId). Prevents duplicate processing of the
113
+ * same event across multiple payload traversals.
114
+ *
115
+ * Used in LiquidityEventExtractor, SwapEventExtractor, and MultiPoolStateManager
116
+ * to find events nested at various depths in WebSocket payloads.
117
+ *
118
+ * Features:
119
+ * - Recursive depth limiting (prevents DoS from circular structures)
120
+ * - WeakSet tracking to prevent infinite loops on circular references
121
+ * - Configurable deduplication key
122
+ * - Callback-based event processing
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * // Test case: Recursive payload walking with deduplication
127
+ * const walker = new PayloadWalkerWithDeduplication<{ id: string; value: number }>(
128
+ * (obj) => {
129
+ * // Extraction predicate: return event if found
130
+ * return obj.id && obj.value ? { id: obj.id, value: obj.value } : null;
131
+ * },
132
+ * (event) => event.id // Deduplication key
133
+ * );
134
+ *
135
+ * // First walk - extracts new events
136
+ * const events1 = walker.walk({
137
+ * Data: { id: 'e1', value: 100 },
138
+ * nested: { id: 'e2', value: 200 }
139
+ * });
140
+ * console.assert(events1.length === 2);
141
+ *
142
+ * // Second walk - skips already seen events
143
+ * const events2 = walker.walk({
144
+ * Data: { id: 'e1', value: 999 }, // Already seen, skipped
145
+ * other: { id: 'e3', value: 300 } // New, included
146
+ * });
147
+ * console.assert(events2.length === 1);
148
+ * console.assert(events2[0].id === 'e3');
149
+ *
150
+ * // Reset deduplication to reprocess all events
151
+ * walker.reset();
152
+ * const events3 = walker.walk({ Data: { id: 'e1', value: 100 } });
153
+ * console.assert(events3.length === 1); // e1 is processed again
154
+ * ```
155
+ *
156
+ * @typeParam T - Event type being extracted
157
+ * @since 6.6.0
158
+ */
159
+ export declare class PayloadWalkerWithDeduplication<T> {
160
+ private seen;
161
+ private readonly maxDepth;
162
+ private readonly extractor;
163
+ private readonly dedupeKeyFn;
164
+ constructor(extractor: (obj: unknown) => T | null, dedupeKeyFn: (event: T) => string, maxDepth?: number);
165
+ /**
166
+ * Walk through a payload and extract events
167
+ *
168
+ * @param payload - Root object to traverse
169
+ * @returns Array of extracted events not previously seen
170
+ */
171
+ walk(payload: unknown): T[];
172
+ /**
173
+ * Reset deduplication state to reprocess all events
174
+ */
175
+ reset(): void;
176
+ /**
177
+ * Get count of deduplicated events
178
+ *
179
+ * @returns Number of unique events seen so far
180
+ */
181
+ getSeenCount(): number;
182
+ }
183
+ /**
184
+ * Pending Subscription Tracker
185
+ *
186
+ * Tracks pending subscriptions with timeout guards. Prevents memory leaks from
187
+ * subscriptions that never complete. Used when subscribing to streams where
188
+ * confirmation is required from the server.
189
+ *
190
+ * Features:
191
+ * - Automatic timeout handling
192
+ * - Memory leak prevention (clears expired pending)
193
+ * - Tracks pending duration
194
+ * - Fast O(1) checks
195
+ *
196
+ * @example
197
+ * ```typescript
198
+ * // Test case: Pending subscription tracking with timeouts
199
+ * const tracker = new PendingSubscriptionTracker();
200
+ *
201
+ * // Add pending subscription with 1 second timeout
202
+ * tracker.addPending('sub-123', 1000);
203
+ * console.assert(tracker.isPending('sub-123') === true);
204
+ * console.assert(tracker.getPendingCount() === 1);
205
+ *
206
+ * // Mark as completed (timeout won't fire)
207
+ * tracker.removePending('sub-123');
208
+ * console.assert(tracker.isPending('sub-123') === false);
209
+ *
210
+ * // Check if subscription timed out
211
+ * tracker.addPending('sub-456', 100);
212
+ * await new Promise(r => setTimeout(r, 200)); // Wait for timeout
213
+ * tracker.clearExpired(); // Manual cleanup
214
+ * console.assert(tracker.isPending('sub-456') === false);
215
+ *
216
+ * // Multiple pending subscriptions
217
+ * tracker.addPending('sub-a', 1000);
218
+ * tracker.addPending('sub-b', 1000);
219
+ * tracker.addPending('sub-c', 1000);
220
+ * console.assert(tracker.getPendingCount() === 3);
221
+ * ```
222
+ *
223
+ * @since 6.6.0
224
+ */
225
+ export declare class PendingSubscriptionTracker {
226
+ private pending;
227
+ /**
228
+ * Add a pending subscription with timeout
229
+ *
230
+ * @param id - Subscription identifier (e.g., token name)
231
+ * @param timeoutMs - Timeout duration in milliseconds
232
+ */
233
+ addPending(id: string, timeoutMs: number): void;
234
+ /**
235
+ * Remove a pending subscription (e.g., when it completes or is cancelled)
236
+ *
237
+ * @param id - Subscription identifier to remove
238
+ */
239
+ removePending(id: string): void;
240
+ /**
241
+ * Check if a subscription is pending
242
+ *
243
+ * @param id - Subscription identifier to check
244
+ * @returns True if subscription is still pending
245
+ */
246
+ isPending(id: string): boolean;
247
+ /**
248
+ * Get count of pending subscriptions
249
+ *
250
+ * @returns Number of subscriptions currently pending
251
+ */
252
+ getPendingCount(): number;
253
+ /**
254
+ * Manually clear expired pending subscriptions
255
+ *
256
+ * Normally called automatically by the timeout, but can be called
257
+ * explicitly for cleanup.
258
+ */
259
+ clearExpired(): void;
260
+ /**
261
+ * Clear all pending subscriptions
262
+ */
263
+ clear(): void;
264
+ }
265
+ /**
266
+ * Global and Room Callback Dispatcher
267
+ *
268
+ * Dispatches callbacks to both global and room-specific listeners in the correct order.
269
+ * Global callbacks execute first, then room-specific callbacks.
270
+ *
271
+ * Used in StreamWebSocketService to ensure consistent callback ordering across
272
+ * different event types.
273
+ *
274
+ * Features:
275
+ * - Global-first execution order
276
+ * - Isolated error handling per listener
277
+ * - Type-safe callback dispatch
278
+ * - Logging for debugging
279
+ *
280
+ * @example
281
+ * ```typescript
282
+ * // Test case: Global and room-specific callbacks
283
+ * interface MyEvent { tokenName: string; value: number }
284
+ * type MyCallback = (event: MyEvent) => void;
285
+ *
286
+ * const dispatcher = new GlobalAndRoomCallbackDispatcher<MyEvent, MyCallback>();
287
+ *
288
+ * const calls: string[] = [];
289
+ *
290
+ * // Register global callback
291
+ * dispatcher.registerGlobalCallback((event) => {
292
+ * calls.push(`global:${event.tokenName}`);
293
+ * });
294
+ *
295
+ * // Register room-specific callbacks
296
+ * dispatcher.registerRoomCallback('token:anime', (event) => {
297
+ * calls.push(`room:anime:${event.value}`);
298
+ * });
299
+ * dispatcher.registerRoomCallback('token:gala', (event) => {
300
+ * calls.push(`room:gala:${event.value}`);
301
+ * });
302
+ *
303
+ * // Dispatch event
304
+ * const event: MyEvent = { tokenName: 'anime', value: 42 };
305
+ * dispatcher.dispatch('token:anime', event);
306
+ *
307
+ * // Global callback should execute first
308
+ * console.assert(calls[0] === 'global:anime');
309
+ * console.assert(calls[1] === 'room:anime:42');
310
+ *
311
+ * // Unrelated room callback not called
312
+ * console.assert(!calls.some(c => c.startsWith('room:gala')));
313
+ * ```
314
+ *
315
+ * @typeParam TEvent - Event type being dispatched
316
+ * @typeParam TCallback - Callback function type
317
+ * @since 6.6.0
318
+ */
319
+ export declare class GlobalAndRoomCallbackDispatcher<TEvent, TCallback extends (event: TEvent) => void> {
320
+ private globalCallbacks;
321
+ private roomCallbacks;
322
+ private logger;
323
+ constructor(logger?: Logger);
324
+ /**
325
+ * Register a global callback
326
+ *
327
+ * @param callback - Function to call for all events
328
+ */
329
+ registerGlobalCallback(callback: TCallback): void;
330
+ /**
331
+ * Register a room-specific callback
332
+ *
333
+ * @param roomId - Room identifier (e.g., 'token:anime')
334
+ * @param callback - Function to call for events in this room
335
+ */
336
+ registerRoomCallback(roomId: string, callback: TCallback): void;
337
+ /**
338
+ * Dispatch an event to global and room-specific callbacks
339
+ *
340
+ * Calls global callbacks first, then room-specific callbacks.
341
+ * Errors in one callback don't prevent others from executing.
342
+ *
343
+ * @param roomId - Room identifier for this event
344
+ * @param event - Event data to dispatch
345
+ */
346
+ dispatch(roomId: string, event: TEvent): void;
347
+ /**
348
+ * Clear all callbacks
349
+ */
350
+ clear(): void;
351
+ /**
352
+ * Remove all callbacks for a specific room
353
+ *
354
+ * @param roomId - Room identifier
355
+ */
356
+ clearRoom(roomId: string): void;
357
+ }
358
+ /**
359
+ * Selective Event Forwarding
360
+ *
361
+ * Filters events based on multiple predicates before forwarding. Reduces message
362
+ * volume by eliminating noisy or unwanted events.
363
+ *
364
+ * Features:
365
+ * - Multiple filter predicates (AND logic)
366
+ * - Short-circuit evaluation (stops at first failing filter)
367
+ * - Chainable filter registration
368
+ *
369
+ * @example
370
+ * ```typescript
371
+ * // Test case: Event filtering pipeline
372
+ * interface SwapEvent { token0: string; token1: string; amount: string; user: string }
373
+ *
374
+ * const forwarder = new SelectiveEventForwarding<SwapEvent>();
375
+ *
376
+ * // Add filters
377
+ * forwarder.addFilter((event) => event.amount !== '0'); // Skip zero amounts
378
+ * forwarder.addFilter((event) => event.token0 === 'GALA'); // Only GALA swaps
379
+ * forwarder.addFilter((event) => !event.user.includes('bot')); // Skip bot swaps
380
+ *
381
+ * // Test filtering
382
+ * const allowed = { token0: 'GALA', token1: 'USDC', amount: '100', user: 'alice' };
383
+ * console.assert(forwarder.forward(allowed) === true);
384
+ *
385
+ * const zeroAmount = { token0: 'GALA', token1: 'USDC', amount: '0', user: 'alice' };
386
+ * console.assert(forwarder.forward(zeroAmount) === false);
387
+ *
388
+ * const nonGala = { token0: 'USDC', token1: 'USDT', amount: '100', user: 'alice' };
389
+ * console.assert(forwarder.forward(nonGala) === false);
390
+ *
391
+ * const botSwap = { token0: 'GALA', token1: 'USDC', amount: '100', user: 'bot123' };
392
+ * console.assert(forwarder.forward(botSwap) === false);
393
+ * ```
394
+ *
395
+ * @typeParam TEvent - Event type being filtered
396
+ * @since 6.6.0
397
+ */
398
+ export declare class SelectiveEventForwarding<TEvent> {
399
+ private filters;
400
+ /**
401
+ * Add a filter predicate
402
+ *
403
+ * Event must pass ALL filters to be forwarded. Filters are evaluated
404
+ * in the order they were added (short-circuit evaluation).
405
+ *
406
+ * @param predicate - Function returning true to allow event, false to block
407
+ * @returns This instance for chaining
408
+ */
409
+ addFilter(predicate: (event: TEvent) => boolean): this;
410
+ /**
411
+ * Forward an event if it passes all filters
412
+ *
413
+ * @param event - Event to evaluate
414
+ * @returns True if event passed all filters, false otherwise
415
+ */
416
+ forward(event: TEvent): boolean;
417
+ /**
418
+ * Clear all filters
419
+ */
420
+ clearFilters(): void;
421
+ /**
422
+ * Get count of active filters
423
+ *
424
+ * @returns Number of filter predicates
425
+ */
426
+ get filterCount(): number;
427
+ }
428
+ /**
429
+ * Listener Cleanup Manager
430
+ *
431
+ * Multi-stage cleanup with error isolation per listener. Ensures cleanup
432
+ * of one listener doesn't block cleanup of others.
433
+ *
434
+ * Features:
435
+ * - Error isolation (one failure doesn't block others)
436
+ * - Async cleanup support (waitPromises)
437
+ * - Ordering (LIFO - last registered, first cleaned up)
438
+ * - Detailed error logging
439
+ *
440
+ * @example
441
+ * ```typescript
442
+ * // Test case: Multi-stage listener cleanup
443
+ * const manager = new ListenerCleanupManager();
444
+ * const cleaned: string[] = [];
445
+ *
446
+ * // Register listeners with cleanup functions
447
+ * manager.register('listener1', () => {
448
+ * cleaned.push('1');
449
+ * });
450
+ * manager.register('listener2', () => {
451
+ * cleaned.push('2');
452
+ * });
453
+ * manager.register('listener3', () => {
454
+ * throw new Error('Cleanup failed for 3');
455
+ * });
456
+ * manager.register('listener4', () => {
457
+ * cleaned.push('4');
458
+ * });
459
+ *
460
+ * // Cleanup all (error in listener3 doesn't block listener4)
461
+ * await manager.cleanup();
462
+ *
463
+ * // All listeners cleaned up despite error in listener3
464
+ * console.assert(cleaned.includes('1'));
465
+ * console.assert(cleaned.includes('2'));
466
+ * console.assert(cleaned.includes('4'));
467
+ * // Order is LIFO: 4, 3 (error), 2, 1
468
+ * ```
469
+ *
470
+ * @since 6.6.0
471
+ */
472
+ export declare class ListenerCleanupManager {
473
+ private listeners;
474
+ private logger;
475
+ constructor(logger?: Logger);
476
+ /**
477
+ * Register a listener with cleanup function
478
+ *
479
+ * Cleanup functions are called in LIFO order (last registered, first cleaned up).
480
+ *
481
+ * @param id - Unique identifier for this listener
482
+ * @param cleanup - Sync or async cleanup function
483
+ */
484
+ register(id: string, cleanup: () => void | Promise<void>): void;
485
+ /**
486
+ * Cleanup all listeners
487
+ *
488
+ * Errors in one listener don't prevent cleanup of others.
489
+ * Returns array of errors encountered during cleanup.
490
+ *
491
+ * @returns Promise that resolves when all cleanup complete
492
+ */
493
+ cleanup(): Promise<Error[]>;
494
+ /**
495
+ * Clear all registered listeners without calling cleanup
496
+ */
497
+ clear(): void;
498
+ /**
499
+ * Get count of registered listeners
500
+ *
501
+ * @returns Number of listeners awaiting cleanup
502
+ */
503
+ get size(): number;
504
+ }
505
+ /**
506
+ * Event Buffer with Auto-Cleanup
507
+ *
508
+ * Buffers events with TTL (time-to-live) and max size limits. Old events are
509
+ * automatically expired and removed.
510
+ *
511
+ * Features:
512
+ * - Configurable TTL per event
513
+ * - Max size enforcement (FIFO eviction when full)
514
+ * - Automatic expiration cleanup
515
+ * - Memory-efficient
516
+ *
517
+ * @example
518
+ * ```typescript
519
+ * // Test case: Event buffering with TTL and size limits
520
+ * interface LogEvent { id: string; message: string }
521
+ *
522
+ * const buffer = new EventBufferWithAutoCleanup<LogEvent>({
523
+ * maxSize: 5,
524
+ * defaultTtlMs: 2000
525
+ * });
526
+ *
527
+ * // Add events
528
+ * buffer.push({ id: 'e1', message: 'Event 1' });
529
+ * buffer.push({ id: 'e2', message: 'Event 2' });
530
+ * console.assert(buffer.getAll().length === 2);
531
+ *
532
+ * // Wait for TTL expiration
533
+ * await new Promise(r => setTimeout(r, 2100));
534
+ * // Manual cleanup (normally automatic)
535
+ * buffer.clear(); // Or events auto-expire
536
+ *
537
+ * // Max size enforcement
538
+ * const buffer2 = new EventBufferWithAutoCleanup<LogEvent>({
539
+ * maxSize: 3,
540
+ * defaultTtlMs: 10000
541
+ * });
542
+ * buffer2.push({ id: 'a', message: 'A' });
543
+ * buffer2.push({ id: 'b', message: 'B' });
544
+ * buffer2.push({ id: 'c', message: 'C' });
545
+ * buffer2.push({ id: 'd', message: 'D' }); // Oldest (a) is evicted
546
+ * console.assert(buffer2.getAll().length === 3);
547
+ * console.assert(!buffer2.getAll().some(e => e.id === 'a'));
548
+ * ```
549
+ *
550
+ * @typeParam TEvent - Event type being buffered
551
+ * @since 6.6.0
552
+ */
553
+ export interface EventBufferConfig {
554
+ maxSize?: number;
555
+ defaultTtlMs?: number;
556
+ }
557
+ export declare class EventBufferWithAutoCleanup<TEvent> {
558
+ private events;
559
+ private timeouts;
560
+ private readonly maxSize;
561
+ private readonly defaultTtlMs;
562
+ private readonly logger;
563
+ constructor(config?: EventBufferConfig, logger?: Logger);
564
+ /**
565
+ * Add an event to the buffer
566
+ *
567
+ * If buffer is full, removes oldest event (FIFO).
568
+ * Event will auto-expire after TTL.
569
+ *
570
+ * @param event - Event to buffer
571
+ */
572
+ push(event: TEvent): void;
573
+ /**
574
+ * Get all currently buffered events
575
+ *
576
+ * @returns Array of buffered events
577
+ */
578
+ getAll(): TEvent[];
579
+ /**
580
+ * Clear all buffered events
581
+ */
582
+ clear(): void;
583
+ /**
584
+ * Get count of buffered events
585
+ *
586
+ * @returns Number of events currently buffered
587
+ */
588
+ get size(): number;
589
+ }
590
+ /**
591
+ * Typing Indicator Debouncer
592
+ *
593
+ * Debounces typing indicator events to reduce message volume. Multiple
594
+ * typing events from the same user within the debounce window are collapsed
595
+ * into a single indicator.
596
+ *
597
+ * Features:
598
+ * - Per-user debouncing (independent timers for each user)
599
+ * - Automatic cleanup of pending indicators
600
+ * - Configurable debounce delay
601
+ * - Prevents spam of typing events
602
+ *
603
+ * @example
604
+ * ```typescript
605
+ * // Test case: Typing indicator debouncing
606
+ * const debouncer = new TypingIndicatorDebouncer({
607
+ * delayMs: 100,
608
+ * onTyping: (userId, roomId) => {
609
+ * console.log(`User ${userId} is typing in ${roomId}`);
610
+ * },
611
+ * onStopTyping: (userId, roomId) => {
612
+ * console.log(`User ${userId} stopped typing in ${roomId}`);
613
+ * }
614
+ * });
615
+ *
616
+ * const events: string[] = [];
617
+ * debouncer.onTyping = (userId, roomId) => {
618
+ * events.push(`typing:${userId}:${roomId}`);
619
+ * };
620
+ * debouncer.onStopTyping = (userId, roomId) => {
621
+ * events.push(`stop:${userId}:${roomId}`);
622
+ * };
623
+ *
624
+ * // Rapid typing events from same user
625
+ * debouncer.indicate('user123', 'room1');
626
+ * debouncer.indicate('user123', 'room1');
627
+ * debouncer.indicate('user123', 'room1');
628
+ *
629
+ * // Only one typing event sent (debounced)
630
+ * console.assert(events.filter(e => e.startsWith('typing')).length === 1);
631
+ *
632
+ * // Different users send independent indicators
633
+ * debouncer.indicate('user456', 'room1');
634
+ * debouncer.indicate('user789', 'room1');
635
+ * console.assert(events.filter(e => e.startsWith('typing')).length === 3);
636
+ * ```
637
+ *
638
+ * @since 6.6.0
639
+ */
640
+ export interface TypingIndicatorConfig {
641
+ delayMs?: number;
642
+ onTyping?: (userId: string, roomId: string) => void | Promise<void>;
643
+ onStopTyping?: (userId: string, roomId: string) => void | Promise<void>;
644
+ }
645
+ export declare class TypingIndicatorDebouncer {
646
+ private pendingIndicators;
647
+ private activeIndicators;
648
+ private readonly delayMs;
649
+ private readonly onTyping;
650
+ private readonly onStopTyping;
651
+ private readonly logger;
652
+ constructor(config?: TypingIndicatorConfig, logger?: Logger);
653
+ /**
654
+ * Indicate that a user is typing
655
+ *
656
+ * If user is already typing, the debounce window is reset.
657
+ * Stop indicator is sent after delayMs of inactivity.
658
+ *
659
+ * @param userId - User identifier
660
+ * @param roomId - Room identifier (e.g., 'token:anime')
661
+ */
662
+ indicate(userId: string, roomId: string): void;
663
+ /**
664
+ * Explicitly stop typing indicator for a user
665
+ *
666
+ * @param userId - User identifier
667
+ * @param roomId - Room identifier
668
+ */
669
+ stopTyping(userId: string, roomId: string): void;
670
+ /**
671
+ * Clear all pending typing indicators
672
+ */
673
+ clear(): void;
674
+ /**
675
+ * Get count of active typing indicators
676
+ *
677
+ * @returns Number of users currently typing
678
+ */
679
+ get activeCount(): number;
680
+ }
681
+ //# sourceMappingURL=websocket-patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-patterns.d.ts","sourceRoot":"","sources":["../../../src/utils/websocket-patterns.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-validators.d.ts","sourceRoot":"","sources":["../../../src/utils/websocket-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,EACf,MAAM,+BAA+B,CAAC;AAGvC;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,WAAW,CAchE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,YAAY,CAalE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,cAAc,CActE;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAa1F"}
1
+ {"version":3,"file":"websocket-validators.d.ts","sourceRoot":"","sources":["../../../src/utils/websocket-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,EACf,MAAM,+BAA+B,CAAC;AAIvC;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,WAAW,CAchE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,YAAY,CAalE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,cAAc,CActE;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAa1F"}