@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,347 @@
1
+ /**
2
+ * API/HTTP Pattern Utilities
3
+ *
4
+ * Consolidated HTTP and API-related patterns used across the SDK.
5
+ * Eliminates duplicate code for:
6
+ * - Concurrent batch requests with concurrency limiting
7
+ * - Pagination metadata extraction
8
+ * - Query parameter building with validation
9
+ * - Automatic HTTP request retries with exponential backoff
10
+ * - HTTP error response parsing
11
+ * - Multi-source API aggregation
12
+ *
13
+ * @category Utilities
14
+ * @since 6.5.0
15
+ */
16
+ import { Logger } from './Logger';
17
+ /**
18
+ * Pagination metadata extracted from API responses
19
+ * Provides consistent structure across different API response formats
20
+ */
21
+ export interface PaginationMetadata {
22
+ /** Current page number (default: 1) */
23
+ page: number;
24
+ /** Items per page (default: 20) */
25
+ pageSize: number;
26
+ /** Total count of all items across all pages (default: -1 when unknown) */
27
+ totalCount: number;
28
+ /** Whether more pages are available (default: false) */
29
+ hasMore: boolean;
30
+ }
31
+ /**
32
+ * HTTP error response with standardized structure
33
+ * Normalizes errors from different HTTP libraries and APIs
34
+ */
35
+ export interface ParsedHttpError {
36
+ /** HTTP status code (default: 0 for non-HTTP errors) */
37
+ statusCode: number;
38
+ /** Error message (extracted from response or error) */
39
+ errorMessage: string;
40
+ /** Additional error data from response body (if available) */
41
+ errorData?: unknown;
42
+ /** Raw error object for debugging */
43
+ raw: unknown;
44
+ }
45
+ /**
46
+ * Build and execute multiple API requests with concurrency limit
47
+ *
48
+ * Maintains request order while respecting concurrency constraints.
49
+ * Useful for batch operations like fetching multiple token prices, pool data,
50
+ * or other resources that benefit from parallel requests but need rate limiting.
51
+ *
52
+ * @typeParam T - Type of data returned by the fetcher function
53
+ * @param urls - Array of URLs or identifiers to fetch
54
+ * @param batchSize - Maximum number of concurrent requests
55
+ * @param fetcher - Function to fetch data for each URL/identifier
56
+ * @param options - Additional options (logger, timeout)
57
+ * @returns Promise<T[]> Array of results in original order
58
+ *
59
+ * @example Fetch multiple token prices with concurrency limit
60
+ * ```typescript
61
+ * const tokenNames = ['anime', 'dragon', 'mysterybox'];
62
+ * const prices = await buildConcurrentBatchRequests(
63
+ * tokenNames,
64
+ * 3, // 3 concurrent requests max
65
+ * async (tokenName) => sdk.fetchTokenPrice(tokenName),
66
+ * { logger }
67
+ * );
68
+ * // Maintains original order: prices[0] = anime, prices[1] = dragon, etc.
69
+ * ```
70
+ *
71
+ * @example Fetch pool data with concurrency control
72
+ * ```typescript
73
+ * const poolIds = ['pool-1', 'pool-2', 'pool-3', 'pool-4', 'pool-5'];
74
+ * const pools = await buildConcurrentBatchRequests(
75
+ * poolIds,
76
+ * 2, // 2 concurrent requests max
77
+ * (poolId) => dexApi.getPoolInfo(poolId)
78
+ * );
79
+ * ```
80
+ *
81
+ * @since 6.5.0
82
+ */
83
+ export declare function buildConcurrentBatchRequests<T>(urls: string[], batchSize: number, fetcher: (url: string) => Promise<T>, options?: {
84
+ logger?: Logger;
85
+ timeout?: number;
86
+ }): Promise<T[]>;
87
+ /**
88
+ * Extract pagination metadata from API response
89
+ *
90
+ * Safely extracts pagination info from various response formats.
91
+ * Provides sensible defaults when fields are missing.
92
+ * Handles both old and new pagination response structures.
93
+ *
94
+ * @param response - Raw API response (may be array, object, null, or undefined)
95
+ * @returns PaginationMetadata with page, pageSize, totalCount, and hasMore
96
+ *
97
+ * @example With standard response object
98
+ * ```typescript
99
+ * const metadata = extractPaginationMetadata({
100
+ * page: 2,
101
+ * pageSize: 20,
102
+ * totalCount: 100,
103
+ * hasMore: true
104
+ * });
105
+ * // Result: { page: 2, pageSize: 20, totalCount: 100, hasMore: true }
106
+ * ```
107
+ *
108
+ * @example With wrapped response
109
+ * ```typescript
110
+ * const metadata = extractPaginationMetadata({
111
+ * data: {
112
+ * items: [...],
113
+ * meta: { page: 3, limit: 20, totalItems: 250 }
114
+ * }
115
+ * });
116
+ * // Result: { page: 3, pageSize: 20, totalCount: 250, hasMore: true }
117
+ * ```
118
+ *
119
+ * @example With missing fields (uses defaults)
120
+ * ```typescript
121
+ * const metadata = extractPaginationMetadata({ items: [] });
122
+ * // Result: { page: 1, pageSize: 20, totalCount: -1, hasMore: false }
123
+ * ```
124
+ *
125
+ * @since 6.5.0
126
+ * @adoption_gap This pattern appears in 12+ locations with inline extraction (response.page ?? 1)
127
+ */
128
+ export declare function extractPaginationMetadata(response: unknown): PaginationMetadata;
129
+ /**
130
+ * Build query parameter string with automatic encoding and null removal
131
+ *
132
+ * Safely constructs query strings from parameter objects.
133
+ * Automatically:
134
+ * - Skips null/undefined values
135
+ * - URL-encodes special characters
136
+ * - Converts non-string values to strings
137
+ * - Handles arrays and nested objects
138
+ *
139
+ * @param params - Record of query parameters (values can be any type)
140
+ * @returns Formatted query string "?key1=value1&key2=value2" or "" if no params
141
+ *
142
+ * @example Simple parameters
143
+ * ```typescript
144
+ * const query = buildQueryParametersWithValidation({
145
+ * page: 1,
146
+ * limit: 20,
147
+ * search: 'anime'
148
+ * });
149
+ * // Result: "?page=1&limit=20&search=anime"
150
+ * ```
151
+ *
152
+ * @example With special characters
153
+ * ```typescript
154
+ * const query = buildQueryParametersWithValidation({
155
+ * search: 'hello world',
156
+ * token: 'abc/def'
157
+ * });
158
+ * // Result: "?search=hello%20world&token=abc%2Fdef"
159
+ * ```
160
+ *
161
+ * @example With nullish values (automatically skipped)
162
+ * ```typescript
163
+ * const query = buildQueryParametersWithValidation({
164
+ * page: 1,
165
+ * search: undefined,
166
+ * token: null,
167
+ * limit: 20
168
+ * });
169
+ * // Result: "?page=1&limit=20" (search and token omitted)
170
+ * ```
171
+ *
172
+ * @example With arrays
173
+ * ```typescript
174
+ * const query = buildQueryParametersWithValidation({
175
+ * tags: ['anime', 'popular'],
176
+ * status: 'active'
177
+ * });
178
+ * // Result: "?tags=anime%2Cpopular&status=active" (comma-separated)
179
+ * ```
180
+ *
181
+ * @since 6.5.0
182
+ * @adoption_gap Manual query string construction appears in 8+ locations
183
+ */
184
+ export declare function buildQueryParametersWithValidation(params: Record<string, any>): string;
185
+ /**
186
+ * HTTP request wrapper with automatic retry logic
187
+ *
188
+ * Wraps async functions with exponential backoff retry on specific HTTP status codes.
189
+ * Helps handle transient failures like rate limiting, timeouts, and temporary service issues.
190
+ *
191
+ * @typeParam T - Type of the promised value
192
+ * @param fn - Async function to execute with retries
193
+ * @param options - Retry configuration
194
+ * @param options.maxRetries - Maximum number of retry attempts (default: 3)
195
+ * @param options.backoffMs - Initial backoff delay in milliseconds (default: 100)
196
+ * @param options.retryableStatus - HTTP status codes to retry (default: [429, 503, 504])
197
+ * @returns Result of the function or final error after max retries
198
+ * @throws Error if all retries exhausted or error is not retryable
199
+ *
200
+ * @example Retry on rate limit (429)
201
+ * ```typescript
202
+ * const result = await retryableHttpRequest(
203
+ * () => sdk.fetchTokenPrice('anime'),
204
+ * { maxRetries: 3, backoffMs: 100, retryableStatus: [429, 503] }
205
+ * );
206
+ * ```
207
+ *
208
+ * @example With default retry options
209
+ * ```typescript
210
+ * const result = await retryableHttpRequest(
211
+ * () => http.get('/api/pool-data')
212
+ * );
213
+ * // Retries on 429, 503, 504 with default exponential backoff
214
+ * ```
215
+ *
216
+ * @example Fetch with custom retry behavior
217
+ * ```typescript
218
+ * try {
219
+ * const data = await retryableHttpRequest(
220
+ * () => fetch(url).then(r => r.json()),
221
+ * { maxRetries: 5, backoffMs: 200, retryableStatus: [429, 500, 502, 503, 504] }
222
+ * );
223
+ * } catch (error) {
224
+ * console.log('Failed after all retries:', error);
225
+ * }
226
+ * ```
227
+ *
228
+ * @since 6.5.0
229
+ * @adoption_gap Manual retry logic appears in 3+ locations
230
+ */
231
+ export declare function retryableHttpRequest<T>(fn: () => Promise<T>, options?: {
232
+ maxRetries?: number;
233
+ backoffMs?: number;
234
+ retryableStatus?: number[];
235
+ }): Promise<T>;
236
+ /**
237
+ * Parse HTTP error response into standardized structure
238
+ *
239
+ * Consistently extracts error details from various HTTP error formats:
240
+ * - Axios errors with response data
241
+ * - Fetch errors
242
+ * - Custom error objects with status codes
243
+ * - Plain text error responses
244
+ * - JSON error responses
245
+ *
246
+ * @param error - Unknown error object from HTTP request
247
+ * @returns ParsedHttpError with statusCode, errorMessage, errorData, and raw error
248
+ *
249
+ * @example Axios error
250
+ * ```typescript
251
+ * try {
252
+ * await axios.get('/api/data');
253
+ * } catch (error) {
254
+ * const parsed = parseHttpErrorResponse(error);
255
+ * console.log(`Status: ${parsed.statusCode}, Message: ${parsed.errorMessage}`);
256
+ * // Status: 404, Message: Not Found
257
+ * }
258
+ * ```
259
+ *
260
+ * @example Fetch error
261
+ * ```typescript
262
+ * try {
263
+ * const response = await fetch('/api/data');
264
+ * if (!response.ok) {
265
+ * throw new Error(`HTTP ${response.status}`);
266
+ * }
267
+ * } catch (error) {
268
+ * const parsed = parseHttpErrorResponse(error);
269
+ * // Extracts status code and error message
270
+ * }
271
+ * ```
272
+ *
273
+ * @example Error response with JSON body
274
+ * ```typescript
275
+ * try {
276
+ * await api.post('/endpoint', data);
277
+ * } catch (error) {
278
+ * const parsed = parseHttpErrorResponse(error);
279
+ * console.log(`Error: ${parsed.errorData?.errorCode || parsed.statusCode}`);
280
+ * }
281
+ * ```
282
+ *
283
+ * @since 6.5.0
284
+ * @adoption_gap Error response parsing appears in 7+ locations with inconsistent patterns
285
+ */
286
+ export declare function parseHttpErrorResponse(error: unknown): ParsedHttpError;
287
+ /**
288
+ * Fetch same data from multiple API endpoints and aggregate results
289
+ *
290
+ * Useful for:
291
+ * - Redundancy: Query multiple APIs and use the first successful response
292
+ * - Fallback: Try primary API, then secondary, then tertiary
293
+ * - Aggregation: Combine partial results from multiple sources
294
+ *
295
+ * @typeParam T - Type of data returned from each endpoint
296
+ * @param endpoints - Array of API endpoints to query
297
+ * @param aggregator - Function to combine results from all endpoints
298
+ * @param options - Additional options (fetcher, logger)
299
+ * @returns Aggregated result from combining all endpoint responses
300
+ *
301
+ * @example Fallback to secondary API
302
+ * ```typescript
303
+ * const price = await aggregateMultipleApiSources(
304
+ * ['https://api.primary.com/price', 'https://api.secondary.com/price'],
305
+ * (results) => {
306
+ * // Use first successful result
307
+ * return results.find(r => r !== undefined) || { price: 0 };
308
+ * },
309
+ * { fetcher: (url) => fetch(url).then(r => r.json()) }
310
+ * );
311
+ * ```
312
+ *
313
+ * @example Aggregate price from multiple exchanges
314
+ * ```typescript
315
+ * const avgPrice = await aggregateMultipleApiSources(
316
+ * ['exchange1.api/price', 'exchange2.api/price', 'exchange3.api/price'],
317
+ * (results) => {
318
+ * const prices = results.filter(r => typeof r === 'number') as number[];
319
+ * if (prices.length === 0) return 0;
320
+ * return prices.reduce((a, b) => a + b, 0) / prices.length;
321
+ * }
322
+ * );
323
+ * ```
324
+ *
325
+ * @example Combine partial results from multiple sources
326
+ * ```typescript
327
+ * const combined = await aggregateMultipleApiSources(
328
+ * [
329
+ * 'https://api1.com/liquidity',
330
+ * 'https://api2.com/liquidity',
331
+ * 'https://api3.com/liquidity'
332
+ * ],
333
+ * (results) => ({
334
+ * totalLiquidity: results.reduce((sum, r) => sum + (r?.tvl || 0), 0),
335
+ * sources: results.filter(r => r !== undefined).length
336
+ * })
337
+ * );
338
+ * ```
339
+ *
340
+ * @since 6.5.0
341
+ * @adoption_gap Multi-source aggregation appears in 5+ locations with duplicate logic
342
+ */
343
+ export declare function aggregateMultipleApiSources<T>(endpoints: string[], aggregator: (results: (T | undefined)[]) => T, options?: {
344
+ fetcher?: (endpoint: string) => Promise<T>;
345
+ logger?: Logger;
346
+ }): Promise<T>;
347
+ //# sourceMappingURL=api-patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-patterns.d.ts","sourceRoot":"","sources":["../../../src/utils/api-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAKlC;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qCAAqC;IACrC,GAAG,EAAE,OAAO,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAsB,4BAA4B,CAAC,CAAC,EAClD,IAAI,EAAE,MAAM,EAAE,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EACpC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C,OAAO,CAAC,CAAC,EAAE,CAAC,CAkDd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,OAAO,GAAG,kBAAkB,CAwD/E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAqCtF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,GACA,OAAO,CAAC,CAAC,CAAC,CA8BZ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAiEtE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,wBAAsB,2BAA2B,CAAC,CAAC,EACjD,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,KAAK,CAAC,EAC7C,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,CAAC,CAAC,CAuCZ"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Array transformation and grouping utilities
3
+ *
4
+ * These utilities provide generic, type-safe array operations
5
+ * for common transformation patterns.
6
+ */
7
+ /**
8
+ * Group array items by a computed key into a Map
9
+ *
10
+ * Provides a type-safe alternative to object-based grouping,
11
+ * supporting any key type (strings, numbers, objects, etc.)
12
+ *
13
+ * Replaces the common pattern:
14
+ * ```typescript
15
+ * const groups = new Map<K, T[]>();
16
+ * items.forEach((item) => {
17
+ * const key = computeKey(item);
18
+ * if (!groups.has(key)) groups.set(key, []);
19
+ * groups.get(key)!.push(item);
20
+ * });
21
+ * ```
22
+ *
23
+ * @template T - The type of items in the array
24
+ * @template K - The type of the grouping key
25
+ *
26
+ * @param items - Array of items to group
27
+ * @param keyFn - Function that computes the grouping key for each item
28
+ * @returns Map with keys mapping to arrays of grouped items
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * // Group positions by token pair
33
+ * interface LiquidityPosition {
34
+ * token0: string;
35
+ * token1: string;
36
+ * liquidity: string;
37
+ * }
38
+ *
39
+ * const positions: LiquidityPosition[] = [
40
+ * { token0: 'GALA', token1: 'GUSDC', liquidity: '1000' },
41
+ * { token0: 'GALA', token1: 'GWETH', liquidity: '500' },
42
+ * { token0: 'GALA', token1: 'GUSDC', liquidity: '2000' },
43
+ * ];
44
+ *
45
+ * const grouped = groupByKey(
46
+ * positions,
47
+ * (pos) => `${pos.token0}/${pos.token1}`
48
+ * );
49
+ * // Result: Map {
50
+ * // 'GALA/GUSDC' => [{ token0: 'GALA', token1: 'GUSDC', liquidity: '1000' }, ...],
51
+ * // 'GALA/GWETH' => [{ token0: 'GALA', token1: 'GWETH', liquidity: '500' }]
52
+ * // }
53
+ *
54
+ * grouped.get('GALA/GUSDC'); // Array of both GALA/GUSDC positions
55
+ * ```
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * // Group trades by status
60
+ * interface Trade {
61
+ * id: string;
62
+ * status: 'pending' | 'completed' | 'failed';
63
+ * amount: number;
64
+ * }
65
+ *
66
+ * const trades: Trade[] = [...];
67
+ * const byStatus = groupByKey(trades, (trade) => trade.status);
68
+ *
69
+ * const pending = byStatus.get('pending') || [];
70
+ * const completed = byStatus.get('completed') || [];
71
+ * const failed = byStatus.get('failed') || [];
72
+ * ```
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * // Group by numeric key
77
+ * interface DataPoint {
78
+ * timestamp: number;
79
+ * value: number;
80
+ * }
81
+ *
82
+ * const data: DataPoint[] = [...];
83
+ * // Group by hour (rounded timestamp)
84
+ * const byHour = groupByKey(
85
+ * data,
86
+ * (point) => Math.floor(point.timestamp / (60 * 60 * 1000))
87
+ * );
88
+ * ```
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * // Group with object key (requires key to be serializable)
93
+ * interface Event {
94
+ * chainId: number;
95
+ * contractAddress: string;
96
+ * data: unknown;
97
+ * }
98
+ *
99
+ * const events: Event[] = [...];
100
+ * // Group by contract on each chain
101
+ * const byChainContract = groupByKey(
102
+ * events,
103
+ * (event) => `${event.chainId}:${event.contractAddress}`
104
+ * );
105
+ * ```
106
+ *
107
+ * @remarks
108
+ * - Uses `Map` for better type safety and support for non-string keys
109
+ * - The key function is called once per item (O(n) complexity)
110
+ * - Maintains insertion order of keys
111
+ * - Suitable for large datasets due to Map's efficiency
112
+ * - Key equality determined by `===` comparison (or custom equals for objects)
113
+ */
114
+ export declare function groupByKey<T, K>(items: T[], keyFn: (item: T) => K): Map<K, T[]>;
115
+ //# sourceMappingURL=array-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-helpers.d.ts","sourceRoot":"","sources":["../../../src/utils/array-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0GG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAC7B,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GACpB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAcb"}