@gala-chain/launchpad-sdk 5.0.3 → 5.0.4-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/EXAMPLES.md +141 -7
- package/README.md +68 -36
- package/dist/ai-docs.json +7357 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +70 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/src/LaunchpadSDK.d.ts +3288 -214
- package/dist/src/LaunchpadSDK.d.ts.map +1 -1
- package/dist/src/api/LaunchpadAPI.d.ts +21 -41
- package/dist/src/api/LaunchpadAPI.d.ts.map +1 -1
- package/dist/src/api/dto/BurnTokensDto.d.ts.map +1 -1
- package/dist/src/api/dto/LockTokenDto.d.ts.map +1 -1
- package/dist/src/api/dto/TransferTokenDto.d.ts.map +1 -1
- package/dist/src/api/dto/UnlockTokenDto.d.ts.map +1 -1
- package/dist/src/auth/JwtAuth.d.ts +145 -0
- package/dist/src/auth/JwtAuth.d.ts.map +1 -0
- package/dist/src/auth/SessionAuthService.d.ts +146 -0
- package/dist/src/auth/SessionAuthService.d.ts.map +1 -0
- package/dist/src/auth/SignatureAuth.d.ts.map +1 -1
- package/dist/src/bridge/BridgeService.d.ts.map +1 -1
- package/dist/src/bridge/GalaConnectClient.d.ts.map +1 -1
- package/dist/src/bridge/constants/tokens.d.ts +4 -3
- package/dist/src/bridge/constants/tokens.d.ts.map +1 -1
- package/dist/src/bridge/index.d.ts +1 -0
- package/dist/src/bridge/index.d.ts.map +1 -1
- package/dist/src/bridge/strategies/BridgeStrategy.d.ts.map +1 -1
- package/dist/src/bridge/strategies/EthereumBridgeStrategy.d.ts +1 -38
- package/dist/src/bridge/strategies/EthereumBridgeStrategy.d.ts.map +1 -1
- package/dist/src/bridge/strategies/SolanaBridgeStrategy.d.ts +1 -21
- package/dist/src/bridge/strategies/SolanaBridgeStrategy.d.ts.map +1 -1
- package/dist/src/bridge/types/bridge.dto.d.ts +15 -2
- package/dist/src/bridge/types/bridge.dto.d.ts.map +1 -1
- package/dist/src/bridge/utils/RateLimiter.d.ts +1 -1
- package/dist/src/bridge/utils/RateLimiter.d.ts.map +1 -1
- package/dist/src/bridge/utils/address-formatter.d.ts +25 -0
- package/dist/src/bridge/utils/address-formatter.d.ts.map +1 -0
- package/dist/src/bridge/utils/addressValidation.d.ts +200 -0
- package/dist/src/bridge/utils/addressValidation.d.ts.map +1 -0
- package/dist/src/bridge/utils/balanceHelpers.d.ts +215 -0
- package/dist/src/bridge/utils/balanceHelpers.d.ts.map +1 -0
- package/dist/src/bridge/utils/bridgeErrors.d.ts +98 -0
- package/dist/src/bridge/utils/bridgeErrors.d.ts.map +1 -0
- package/dist/src/bridge/utils/bridgeOutHelpers.d.ts +68 -0
- package/dist/src/bridge/utils/bridgeOutHelpers.d.ts.map +1 -0
- package/dist/src/bridge/utils/bridgePayload.d.ts +107 -0
- package/dist/src/bridge/utils/bridgePayload.d.ts.map +1 -0
- package/dist/src/bridge/utils/bridgeStatusParser.d.ts +75 -0
- package/dist/src/bridge/utils/bridgeStatusParser.d.ts.map +1 -0
- package/dist/src/bridge/utils/eip712Helpers.d.ts +66 -0
- package/dist/src/bridge/utils/eip712Helpers.d.ts.map +1 -0
- package/dist/src/bridge/utils/index.d.ts +9 -0
- package/dist/src/bridge/utils/index.d.ts.map +1 -1
- package/dist/src/bridge/utils/retry.d.ts +16 -0
- package/dist/src/bridge/utils/retry.d.ts.map +1 -1
- package/dist/src/bridge/utils/strategyDelegation.d.ts +69 -0
- package/dist/src/bridge/utils/strategyDelegation.d.ts.map +1 -0
- package/dist/src/bridge/utils/tokenIdUtils.d.ts +7 -0
- package/dist/src/bridge/utils/tokenIdUtils.d.ts.map +1 -1
- package/dist/src/bridge/utils/tokenMath.d.ts.map +1 -1
- package/dist/src/bridge/utils/tokenMetadataResolver.d.ts +97 -0
- package/dist/src/bridge/utils/tokenMetadataResolver.d.ts.map +1 -0
- package/dist/src/constants/endpoints.d.ts +453 -0
- package/dist/src/constants/endpoints.d.ts.map +1 -1
- package/dist/src/constants/error-messages.d.ts +1 -1
- package/dist/src/constants/error-messages.d.ts.map +1 -1
- package/dist/src/constants/jwt.d.ts +41 -0
- package/dist/src/constants/jwt.d.ts.map +1 -0
- package/dist/src/constants/sdk-defaults.d.ts +37 -0
- package/dist/src/constants/sdk-defaults.d.ts.map +1 -0
- package/dist/src/constants/version.generated.d.ts +1 -1
- package/dist/src/constants/version.generated.d.ts.map +1 -1
- package/dist/src/helpers/sdk.d.ts.map +1 -1
- package/dist/src/helpers/wallet.d.ts +4 -3
- package/dist/src/helpers/wallet.d.ts.map +1 -1
- package/dist/src/index.d.ts +70 -11
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/schemas/files.d.ts +2 -2
- package/dist/src/schemas/launchpad.d.ts +40 -8
- package/dist/src/schemas/launchpad.d.ts.map +1 -1
- package/dist/src/schemas/pagination.d.ts +7 -7
- package/dist/src/schemas/primitives.d.ts.map +1 -1
- package/dist/src/schemas/trade.d.ts +6 -6
- package/dist/src/schemas/user.d.ts +4 -4
- package/dist/src/schemas/validators.d.ts +15 -7
- package/dist/src/schemas/validators.d.ts.map +1 -1
- package/dist/src/services/AbstractCacheService.d.ts +227 -0
- package/dist/src/services/AbstractCacheService.d.ts.map +1 -0
- package/dist/src/services/AbstractTokenFetchService.d.ts +150 -0
- package/dist/src/services/AbstractTokenFetchService.d.ts.map +1 -0
- package/dist/src/services/ApiKeyService.d.ts +205 -0
- package/dist/src/services/ApiKeyService.d.ts.map +1 -0
- package/dist/src/services/BanService.d.ts +195 -0
- package/dist/src/services/BanService.d.ts.map +1 -0
- package/dist/src/services/BaseService.d.ts +50 -3
- package/dist/src/services/BaseService.d.ts.map +1 -1
- package/dist/src/services/BatchedCacheService.d.ts +132 -0
- package/dist/src/services/BatchedCacheService.d.ts.map +1 -0
- package/dist/src/services/BridgeableTokenCache.d.ts +32 -98
- package/dist/src/services/BridgeableTokenCache.d.ts.map +1 -1
- package/dist/src/services/BridgeableTokenService.d.ts +18 -13
- package/dist/src/services/BridgeableTokenService.d.ts.map +1 -1
- package/dist/src/services/BundleService.d.ts.map +1 -1
- package/dist/src/services/BundlerClientFactory.d.ts +32 -0
- package/dist/src/services/BundlerClientFactory.d.ts.map +1 -0
- package/dist/src/services/ChatMessagesService.d.ts +152 -0
- package/dist/src/services/ChatMessagesService.d.ts.map +1 -0
- package/dist/src/services/CommentService.d.ts +119 -0
- package/dist/src/services/CommentService.d.ts.map +1 -0
- package/dist/src/services/CommentsService.d.ts +155 -0
- package/dist/src/services/CommentsService.d.ts.map +1 -0
- package/dist/src/services/ContentFlagService.d.ts +212 -0
- package/dist/src/services/ContentFlagService.d.ts.map +1 -0
- package/dist/src/services/ContentReactionService.d.ts +175 -0
- package/dist/src/services/ContentReactionService.d.ts.map +1 -0
- package/dist/src/services/DexBackendClient.d.ts.map +1 -1
- package/dist/src/services/DexPoolService.d.ts +3 -3
- package/dist/src/services/DexPoolService.d.ts.map +1 -1
- package/dist/src/services/DexQuoteService.d.ts.map +1 -1
- package/dist/src/services/DexService.d.ts +2 -5
- package/dist/src/services/DexService.d.ts.map +1 -1
- package/dist/src/services/GSwapAssetService.d.ts +80 -0
- package/dist/src/services/GSwapAssetService.d.ts.map +1 -0
- package/dist/src/services/GSwapLiquidityMutationService.d.ts +140 -0
- package/dist/src/services/GSwapLiquidityMutationService.d.ts.map +1 -0
- package/dist/src/services/GSwapLiquidityQueryService.d.ts +87 -0
- package/dist/src/services/GSwapLiquidityQueryService.d.ts.map +1 -0
- package/dist/src/services/GSwapPoolCalculationService.d.ts +200 -0
- package/dist/src/services/GSwapPoolCalculationService.d.ts.map +1 -0
- package/dist/src/services/GSwapPoolQueryService.d.ts +116 -0
- package/dist/src/services/GSwapPoolQueryService.d.ts.map +1 -0
- package/dist/src/services/GSwapService.d.ts +14 -0
- package/dist/src/services/GSwapService.d.ts.map +1 -1
- package/dist/src/services/GSwapSwapService.d.ts +68 -0
- package/dist/src/services/GSwapSwapService.d.ts.map +1 -0
- package/dist/src/services/GalaChainBalanceService.d.ts +155 -0
- package/dist/src/services/GalaChainBalanceService.d.ts.map +1 -0
- package/dist/src/services/GalaChainGatewayClient.d.ts +32 -1
- package/dist/src/services/GalaChainGatewayClient.d.ts.map +1 -1
- package/dist/src/services/GalaChainLockService.d.ts +144 -0
- package/dist/src/services/GalaChainLockService.d.ts.map +1 -0
- package/dist/src/services/GalaChainService.d.ts +23 -106
- package/dist/src/services/GalaChainService.d.ts.map +1 -1
- package/dist/src/services/GalaChainTokenService.d.ts +108 -0
- package/dist/src/services/GalaChainTokenService.d.ts.map +1 -0
- package/dist/src/services/GalaChainTransferService.d.ts +205 -0
- package/dist/src/services/GalaChainTransferService.d.ts.map +1 -0
- package/dist/src/services/ImageService.d.ts +24 -8
- package/dist/src/services/ImageService.d.ts.map +1 -1
- package/dist/src/services/LaunchpadService.d.ts +77 -5
- package/dist/src/services/LaunchpadService.d.ts.map +1 -1
- package/dist/src/services/ModeratorService.d.ts +269 -0
- package/dist/src/services/ModeratorService.d.ts.map +1 -0
- package/dist/src/services/MultiPoolStateManager.d.ts +4 -6
- package/dist/src/services/MultiPoolStateManager.d.ts.map +1 -1
- package/dist/src/services/NetworkKeyedCacheService.d.ts +185 -0
- package/dist/src/services/NetworkKeyedCacheService.d.ts.map +1 -0
- package/dist/src/services/OverseerService.d.ts +322 -0
- package/dist/src/services/OverseerService.d.ts.map +1 -0
- package/dist/src/services/PoolCacheManager.d.ts +2 -2
- package/dist/src/services/PoolCacheManager.d.ts.map +1 -1
- package/dist/src/services/PoolService.d.ts +61 -7
- package/dist/src/services/PoolService.d.ts.map +1 -1
- package/dist/src/services/PoolStateManager.d.ts +2 -2
- package/dist/src/services/PoolStateManager.d.ts.map +1 -1
- package/dist/src/services/PriceHistoryService.d.ts.map +1 -1
- package/dist/src/services/SignatureService.d.ts.map +1 -1
- package/dist/src/services/StreamChatService.d.ts +378 -0
- package/dist/src/services/StreamChatService.d.ts.map +1 -0
- package/dist/src/services/StreamTokenServiceBase.d.ts +371 -0
- package/dist/src/services/StreamTokenServiceBase.d.ts.map +1 -0
- package/dist/src/services/StreamWebSocketService.d.ts +268 -0
- package/dist/src/services/StreamWebSocketService.d.ts.map +1 -0
- package/dist/src/services/StreamingEventService.d.ts +431 -0
- package/dist/src/services/StreamingEventService.d.ts.map +1 -0
- package/dist/src/services/StreamingService.d.ts +547 -0
- package/dist/src/services/StreamingService.d.ts.map +1 -0
- package/dist/src/services/SwapEventQueue.d.ts +2 -2
- package/dist/src/services/SwapEventQueue.d.ts.map +1 -1
- package/dist/src/services/TokenBanService.d.ts +214 -0
- package/dist/src/services/TokenBanService.d.ts.map +1 -0
- package/dist/src/services/TokenClassKeyService.d.ts.map +1 -1
- package/dist/src/services/TokenMetadataCache.d.ts +36 -27
- package/dist/src/services/TokenMetadataCache.d.ts.map +1 -1
- package/dist/src/services/TokenMetadataService.d.ts +24 -4
- package/dist/src/services/TokenMetadataService.d.ts.map +1 -1
- package/dist/src/services/TokenResolverService.d.ts.map +1 -1
- package/dist/src/services/TradeService.d.ts +73 -0
- package/dist/src/services/TradeService.d.ts.map +1 -1
- package/dist/src/services/UserService.d.ts +56 -3
- package/dist/src/services/UserService.d.ts.map +1 -1
- package/dist/src/services/WebSocketService.d.ts +3 -3
- package/dist/src/services/WebSocketService.d.ts.map +1 -1
- package/dist/src/services/WrapService.d.ts +18 -5
- package/dist/src/services/WrapService.d.ts.map +1 -1
- package/dist/src/services/WrappableTokenCache.d.ts +8 -36
- package/dist/src/services/WrappableTokenCache.d.ts.map +1 -1
- package/dist/src/services/WrappableTokenService.d.ts +18 -12
- package/dist/src/services/WrappableTokenService.d.ts.map +1 -1
- package/dist/src/services/shared/cache-helpers.d.ts +188 -0
- package/dist/src/services/shared/cache-helpers.d.ts.map +1 -0
- package/dist/src/services/shared/http-helpers.d.ts +146 -0
- package/dist/src/services/shared/http-helpers.d.ts.map +1 -0
- package/dist/src/services/shared/pagination-helpers.d.ts +157 -0
- package/dist/src/services/shared/pagination-helpers.d.ts.map +1 -0
- package/dist/src/services/shared/service-validators.d.ts +137 -0
- package/dist/src/services/shared/service-validators.d.ts.map +1 -0
- package/dist/src/services/shared/websocket-helpers.d.ts +158 -0
- package/dist/src/services/shared/websocket-helpers.d.ts.map +1 -0
- package/dist/src/test-constants.d.ts +29 -0
- package/dist/src/test-constants.d.ts.map +1 -0
- package/dist/src/types/api-key.dto.d.ts +300 -0
- package/dist/src/types/api-key.dto.d.ts.map +1 -0
- package/dist/src/types/backend-responses.d.ts +12 -0
- package/dist/src/types/backend-responses.d.ts.map +1 -1
- package/dist/src/types/ban.dto.d.ts +413 -0
- package/dist/src/types/ban.dto.d.ts.map +1 -0
- package/dist/src/types/burn.dto.d.ts +21 -0
- package/dist/src/types/burn.dto.d.ts.map +1 -1
- package/dist/src/types/chat-messages.dto.d.ts +193 -0
- package/dist/src/types/chat-messages.dto.d.ts.map +1 -0
- package/dist/src/types/comment.dto.d.ts +180 -0
- package/dist/src/types/comment.dto.d.ts.map +1 -0
- package/dist/src/types/comments.dto.d.ts +210 -0
- package/dist/src/types/comments.dto.d.ts.map +1 -0
- package/dist/src/types/common.d.ts +369 -0
- package/dist/src/types/common.d.ts.map +1 -1
- package/dist/src/types/constraints.d.ts +374 -0
- package/dist/src/types/constraints.d.ts.map +1 -0
- package/dist/src/types/content-flag.dto.d.ts +310 -0
- package/dist/src/types/content-flag.dto.d.ts.map +1 -0
- package/dist/src/types/content-reactions.dto.d.ts +132 -0
- package/dist/src/types/content-reactions.dto.d.ts.map +1 -0
- package/dist/src/types/dex-pool.dto.d.ts +13 -37
- package/dist/src/types/dex-pool.dto.d.ts.map +1 -1
- package/dist/src/types/dto.d.ts +8 -0
- package/dist/src/types/dto.d.ts.map +1 -1
- package/dist/src/types/galachain-api.types.d.ts +30 -0
- package/dist/src/types/galachain-api.types.d.ts.map +1 -1
- package/dist/src/types/gswap-responses.types.d.ts.map +1 -1
- package/dist/src/types/launchpad.dto.d.ts +234 -131
- package/dist/src/types/launchpad.dto.d.ts.map +1 -1
- package/dist/src/types/launchpad.validation.d.ts.map +1 -1
- package/dist/src/types/lock.dto.d.ts +20 -35
- package/dist/src/types/lock.dto.d.ts.map +1 -1
- package/dist/src/types/moderator.dto.d.ts +581 -0
- package/dist/src/types/moderator.dto.d.ts.map +1 -0
- package/dist/src/types/options.dto.d.ts +25 -115
- package/dist/src/types/options.dto.d.ts.map +1 -1
- package/dist/src/types/overseer.dto.d.ts +420 -0
- package/dist/src/types/overseer.dto.d.ts.map +1 -0
- package/dist/src/types/pool.dto.d.ts +106 -0
- package/dist/src/types/pool.dto.d.ts.map +1 -0
- package/dist/src/types/result.types.d.ts +3 -2
- package/dist/src/types/result.types.d.ts.map +1 -1
- package/dist/src/types/session-auth.dto.d.ts +91 -0
- package/dist/src/types/session-auth.dto.d.ts.map +1 -0
- package/dist/src/types/stream-chat.dto.d.ts +815 -0
- package/dist/src/types/stream-chat.dto.d.ts.map +1 -0
- package/dist/src/types/streaming-events.dto.d.ts +586 -0
- package/dist/src/types/streaming-events.dto.d.ts.map +1 -0
- package/dist/src/types/streaming.dto.d.ts +1141 -0
- package/dist/src/types/streaming.dto.d.ts.map +1 -0
- package/dist/src/types/token-ban.dto.d.ts +195 -0
- package/dist/src/types/token-ban.dto.d.ts.map +1 -0
- package/dist/src/types/trade.dto.d.ts +21 -61
- package/dist/src/types/trade.dto.d.ts.map +1 -1
- package/dist/src/types/trades-query.dto.d.ts +127 -0
- package/dist/src/types/trades-query.dto.d.ts.map +1 -0
- package/dist/src/types/transfer.dto.d.ts +20 -15
- package/dist/src/types/transfer.dto.d.ts.map +1 -1
- package/dist/src/types/user.dto.d.ts +185 -73
- package/dist/src/types/user.dto.d.ts.map +1 -1
- package/dist/src/types/wrappable-token.dto.d.ts +6 -2
- package/dist/src/types/wrappable-token.dto.d.ts.map +1 -1
- package/dist/src/utils/LiquidityEventExtractor.d.ts.map +1 -1
- package/dist/src/utils/Logger.d.ts.map +1 -1
- package/dist/src/utils/MonitoringMetrics.d.ts.map +1 -1
- package/dist/src/utils/PoolKeyNormalizer.d.ts.map +1 -1
- package/dist/src/utils/ReconnectionManager.d.ts +142 -0
- package/dist/src/utils/ReconnectionManager.d.ts.map +1 -0
- package/dist/src/utils/SignatureHelper.d.ts +9 -0
- package/dist/src/utils/SignatureHelper.d.ts.map +1 -1
- package/dist/src/utils/SwapEventExtractor.d.ts.map +1 -1
- package/dist/src/utils/adapters.d.ts.map +1 -1
- package/dist/src/utils/address-formatter.d.ts +317 -0
- package/dist/src/utils/address-formatter.d.ts.map +1 -0
- package/dist/src/utils/agent-config.d.ts.map +1 -1
- package/dist/src/utils/amount-validator.d.ts +268 -0
- package/dist/src/utils/amount-validator.d.ts.map +1 -0
- package/dist/src/utils/api-patterns.d.ts +347 -0
- package/dist/src/utils/api-patterns.d.ts.map +1 -0
- package/dist/src/utils/array-helpers.d.ts +115 -0
- package/dist/src/utils/array-helpers.d.ts.map +1 -0
- package/dist/src/utils/async-patterns.d.ts +272 -0
- package/dist/src/utils/async-patterns.d.ts.map +1 -0
- package/dist/src/utils/auto-pagination.d.ts +195 -2
- package/dist/src/utils/auto-pagination.d.ts.map +1 -1
- package/dist/src/utils/bignumber-helpers.d.ts +119 -13
- package/dist/src/utils/bignumber-helpers.d.ts.map +1 -1
- package/dist/src/utils/bignumber-pool-cache.d.ts.map +1 -1
- package/dist/src/utils/bondingCurveCalculations.d.ts.map +1 -1
- package/dist/src/utils/cacheWarmingHelpers.d.ts +2 -2
- package/dist/src/utils/cacheWarmingHelpers.d.ts.map +1 -1
- package/dist/src/utils/data-transform-patterns.d.ts +393 -0
- package/dist/src/utils/data-transform-patterns.d.ts.map +1 -0
- package/dist/src/utils/date-utils.d.ts +166 -0
- package/dist/src/utils/date-utils.d.ts.map +1 -1
- package/dist/src/utils/delimiter-parser.d.ts +139 -0
- package/dist/src/utils/delimiter-parser.d.ts.map +1 -0
- package/dist/src/utils/error-factories.d.ts +346 -1
- package/dist/src/utils/error-factories.d.ts.map +1 -1
- package/dist/src/utils/error-handling-patterns.d.ts +390 -0
- package/dist/src/utils/error-handling-patterns.d.ts.map +1 -0
- package/dist/src/utils/error-patterns.d.ts +360 -0
- package/dist/src/utils/error-patterns.d.ts.map +1 -0
- package/dist/src/utils/error-utils.d.ts +250 -0
- package/dist/src/utils/error-utils.d.ts.map +1 -1
- package/dist/src/utils/error-wrapper.d.ts +208 -0
- package/dist/src/utils/error-wrapper.d.ts.map +1 -0
- package/dist/src/utils/errors.d.ts +70 -0
- package/dist/src/utils/errors.d.ts.map +1 -1
- package/dist/src/utils/http-factory.d.ts +36 -0
- package/dist/src/utils/http-factory.d.ts.map +1 -0
- package/dist/src/utils/http.d.ts.map +1 -1
- package/dist/src/utils/load-env.d.ts.map +1 -1
- package/dist/src/utils/multipart.d.ts.map +1 -1
- package/dist/src/utils/numeric-patterns.d.ts +289 -0
- package/dist/src/utils/numeric-patterns.d.ts.map +1 -0
- package/dist/src/utils/numeric-wrappers.d.ts +146 -0
- package/dist/src/utils/numeric-wrappers.d.ts.map +1 -0
- package/dist/src/utils/object-extractors.d.ts +115 -0
- package/dist/src/utils/object-extractors.d.ts.map +1 -0
- package/dist/src/utils/object-patterns.d.ts +81 -0
- package/dist/src/utils/object-patterns.d.ts.map +1 -0
- package/dist/src/utils/pagination-helpers.d.ts +230 -0
- package/dist/src/utils/pagination-helpers.d.ts.map +1 -0
- package/dist/src/utils/pool-pair-parser.d.ts +3 -1
- package/dist/src/utils/pool-pair-parser.d.ts.map +1 -1
- package/dist/src/utils/pool-state-validator.d.ts.map +1 -1
- package/dist/src/utils/position-filters.d.ts +1 -2
- package/dist/src/utils/position-filters.d.ts.map +1 -1
- package/dist/src/utils/query-params.d.ts +0 -16
- package/dist/src/utils/query-params.d.ts.map +1 -1
- package/dist/src/utils/response-handlers.d.ts +149 -20
- package/dist/src/utils/response-handlers.d.ts.map +1 -1
- package/dist/src/utils/response-helpers.d.ts +28 -0
- package/dist/src/utils/response-helpers.d.ts.map +1 -0
- package/dist/src/utils/response-normalizers.d.ts +27 -49
- package/dist/src/utils/response-normalizers.d.ts.map +1 -1
- package/dist/src/utils/safe-parsers.d.ts +487 -0
- package/dist/src/utils/safe-parsers.d.ts.map +1 -0
- package/dist/src/utils/service-validators.d.ts +268 -0
- package/dist/src/utils/service-validators.d.ts.map +1 -0
- package/dist/src/utils/slippage-utils.d.ts.map +1 -1
- package/dist/src/utils/string-patterns.d.ts +404 -0
- package/dist/src/utils/string-patterns.d.ts.map +1 -0
- package/dist/src/utils/string-transforms.d.ts +89 -0
- package/dist/src/utils/string-transforms.d.ts.map +1 -0
- package/dist/src/utils/string-utils.d.ts +108 -0
- package/dist/src/utils/string-utils.d.ts.map +1 -0
- package/dist/src/utils/swap-delta-calculator.d.ts.map +1 -1
- package/dist/src/utils/tick-crossing-handler.d.ts.map +1 -1
- package/dist/src/utils/token-format-converter.d.ts +22 -8
- package/dist/src/utils/token-format-converter.d.ts.map +1 -1
- package/dist/src/utils/token-parser.d.ts +2 -2
- package/dist/src/utils/token-parser.d.ts.map +1 -1
- package/dist/src/utils/token-stringification.d.ts +168 -0
- package/dist/src/utils/token-stringification.d.ts.map +1 -0
- package/dist/src/utils/tokenNameNormalizer.d.ts +96 -0
- package/dist/src/utils/tokenNameNormalizer.d.ts.map +1 -0
- package/dist/src/utils/tokenNormalizer.d.ts +8 -45
- package/dist/src/utils/tokenNormalizer.d.ts.map +1 -1
- package/dist/src/utils/transfer-validation.d.ts +1 -1
- package/dist/src/utils/transfer-validation.d.ts.map +1 -1
- package/dist/src/utils/type-guard-factory.d.ts +260 -0
- package/dist/src/utils/type-guard-factory.d.ts.map +1 -0
- package/dist/src/utils/unique-key-generator.d.ts +148 -0
- package/dist/src/utils/unique-key-generator.d.ts.map +1 -0
- package/dist/src/utils/validation-helpers.d.ts +906 -183
- package/dist/src/utils/validation-helpers.d.ts.map +1 -1
- package/dist/src/utils/validation-patterns.d.ts +745 -0
- package/dist/src/utils/validation-patterns.d.ts.map +1 -0
- package/dist/src/utils/validation.d.ts +2 -30
- package/dist/src/utils/validation.d.ts.map +1 -1
- package/dist/src/utils/wallet.d.ts +12 -1
- package/dist/src/utils/wallet.d.ts.map +1 -1
- package/dist/src/utils/websocket-patterns.d.ts +681 -0
- package/dist/src/utils/websocket-patterns.d.ts.map +1 -0
- package/dist/src/utils/websocket-validators.d.ts.map +1 -1
- package/package.json +86 -19
- package/dist/src/bridge/strategies/index.d.ts +0 -9
- package/dist/src/bridge/strategies/index.d.ts.map +0 -1
- package/dist/src/constants/counts.d.ts +0 -66
- package/dist/src/constants/counts.d.ts.map +0 -1
- package/dist/src/services/WebSocketManager.d.ts +0 -99
- package/dist/src/services/WebSocketManager.d.ts.map +0 -1
- package/dist/src/types/eip712-types.d.ts +0 -140
- package/dist/src/types/eip712-types.d.ts.map +0 -1
- package/dist/src/types/pool-state-manager-config.dto.d.ts +0 -103
- package/dist/src/types/pool-state-manager-config.dto.d.ts.map +0 -1
- package/dist/src/utils/number-utils.d.ts +0 -94
- package/dist/src/utils/number-utils.d.ts.map +0 -1
- package/dist/src/utils/precision-math.d.ts +0 -37
- package/dist/src/utils/precision-math.d.ts.map +0 -1
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract Cache Service Base Class
|
|
3
|
+
*
|
|
4
|
+
* Provides generic cache management functionality for all cache implementations.
|
|
5
|
+
* Eliminates duplication across BridgeableTokenCache, WrappableTokenCache, and TokenMetadataCache
|
|
6
|
+
* by providing a common interface and lifecycle management.
|
|
7
|
+
*
|
|
8
|
+
* ## Architecture
|
|
9
|
+
* - **Generic K/V types**: Supports any key/value structure
|
|
10
|
+
* - **Key normalization**: Abstract method for consistent key generation
|
|
11
|
+
* - **Common operations**: Get, set, has, clear, stats, dump
|
|
12
|
+
* - **Logging support**: Integrated with LoggerBase for debug output
|
|
13
|
+
*
|
|
14
|
+
* ## Subclass Responsibilities
|
|
15
|
+
* - Implement `normalizeKey()` for domain-specific key normalization
|
|
16
|
+
* - Override specific methods if custom behavior needed (e.g., merge, multiple indices)
|
|
17
|
+
* - Implement typed statistics interface extending `BaseCacheStats`
|
|
18
|
+
*
|
|
19
|
+
* @category Services
|
|
20
|
+
* @since 3.34.0
|
|
21
|
+
* @template K - Key type (string, number, etc.)
|
|
22
|
+
* @template V - Value type (token, metadata, etc.)
|
|
23
|
+
*/
|
|
24
|
+
import { LoggerBase } from './BaseService.js';
|
|
25
|
+
/**
|
|
26
|
+
* Base cache statistics interface
|
|
27
|
+
*
|
|
28
|
+
* All cache implementations should extend this with domain-specific stats.
|
|
29
|
+
*/
|
|
30
|
+
export interface BaseCacheStats {
|
|
31
|
+
/** Total number of items in cache */
|
|
32
|
+
totalItems: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Abstract cache service with generic key/value support
|
|
36
|
+
*
|
|
37
|
+
* Provides reusable cache lifecycle management for all cache implementations.
|
|
38
|
+
* Subclasses implement domain-specific normalization and optional enhancements.
|
|
39
|
+
*
|
|
40
|
+
* @template K - Key type for cache lookups
|
|
41
|
+
* @template V - Value type stored in cache
|
|
42
|
+
* @template S - Statistics type (must extend BaseCacheStats)
|
|
43
|
+
*
|
|
44
|
+
* @example Implementing a simple cache
|
|
45
|
+
* ```typescript
|
|
46
|
+
* import { normalizeTokenKey } from '../utils/tokenNameNormalizer';
|
|
47
|
+
*
|
|
48
|
+
* interface UserData {
|
|
49
|
+
* id: string;
|
|
50
|
+
* name: string;
|
|
51
|
+
* }
|
|
52
|
+
*
|
|
53
|
+
* interface UserCacheStats extends BaseCacheStats {
|
|
54
|
+
* userCount: number;
|
|
55
|
+
* lastUpdated: number;
|
|
56
|
+
* }
|
|
57
|
+
*
|
|
58
|
+
* class UserCache extends AbstractCacheService<string, UserData, UserCacheStats> {
|
|
59
|
+
* private lastUpdated = 0;
|
|
60
|
+
*
|
|
61
|
+
* protected normalizeKey(key: string): string {
|
|
62
|
+
* // Use normalizeTokenKey() for case-insensitive cache lookups
|
|
63
|
+
* return normalizeTokenKey(key);
|
|
64
|
+
* }
|
|
65
|
+
*
|
|
66
|
+
* getStats(): UserCacheStats {
|
|
67
|
+
* return {
|
|
68
|
+
* totalItems: this.cache.size,
|
|
69
|
+
* userCount: this.cache.size,
|
|
70
|
+
* lastUpdated: this.lastUpdated,
|
|
71
|
+
* };
|
|
72
|
+
* }
|
|
73
|
+
* }
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare abstract class AbstractCacheService<K, V, S extends BaseCacheStats = BaseCacheStats> extends LoggerBase {
|
|
77
|
+
/** Primary cache storage */
|
|
78
|
+
protected cache: Map<string, V>;
|
|
79
|
+
constructor(debugMode?: boolean);
|
|
80
|
+
/**
|
|
81
|
+
* Normalize a key for consistent cache lookups
|
|
82
|
+
*
|
|
83
|
+
* Subclasses MUST implement this to handle domain-specific normalization.
|
|
84
|
+
* Use provided utilities from tokenNameNormalizer.ts for consistency:
|
|
85
|
+
* - `normalizeTokenKey()`: Trim + uppercase (for symbols, tokenIds, cache keys)
|
|
86
|
+
* - `normalizeTokenName()`: Trim + lowercase (for launchpad token names)
|
|
87
|
+
*
|
|
88
|
+
* @param key - Raw key to normalize
|
|
89
|
+
* @returns Normalized key string for Map lookups
|
|
90
|
+
*
|
|
91
|
+
* @example Token cache (symbols/tokenIds) - use normalizeTokenKey()
|
|
92
|
+
* ```typescript
|
|
93
|
+
* import { normalizeTokenKey } from '../utils/tokenNameNormalizer';
|
|
94
|
+
*
|
|
95
|
+
* protected normalizeKey(key: string): string {
|
|
96
|
+
* // For cache keys: uppercase for case-insensitive lookups
|
|
97
|
+
* return normalizeTokenKey(key);
|
|
98
|
+
* }
|
|
99
|
+
* ```
|
|
100
|
+
*
|
|
101
|
+
* @example Token name cache (backend format) - use normalizeTokenName()
|
|
102
|
+
* ```typescript
|
|
103
|
+
* import { normalizeTokenName } from '../utils/tokenNameNormalizer';
|
|
104
|
+
*
|
|
105
|
+
* protected normalizeKey(tokenName: string): string {
|
|
106
|
+
* // For launchpad token names: lowercase to match backend storage
|
|
107
|
+
* return normalizeTokenName(tokenName);
|
|
108
|
+
* }
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
protected abstract normalizeKey(key: K): string;
|
|
112
|
+
/**
|
|
113
|
+
* Get a value from cache
|
|
114
|
+
*
|
|
115
|
+
* @param key - Key to look up (normalized internally)
|
|
116
|
+
* @returns Value if found, undefined if not cached
|
|
117
|
+
*
|
|
118
|
+
* @example Basic retrieval
|
|
119
|
+
* ```typescript
|
|
120
|
+
* const token = cache.get('ethereum');
|
|
121
|
+
* if (token) {
|
|
122
|
+
* console.log('Found:', token);
|
|
123
|
+
* }
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
get(key: K): V | undefined;
|
|
127
|
+
/**
|
|
128
|
+
* Set a value in cache
|
|
129
|
+
*
|
|
130
|
+
* @param key - Key to store under (normalized internally)
|
|
131
|
+
* @param value - Value to cache
|
|
132
|
+
*
|
|
133
|
+
* @example Basic storage
|
|
134
|
+
* ```typescript
|
|
135
|
+
* cache.set('ethereum', ethereumTokens);
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
set(key: K, value: V): void;
|
|
139
|
+
/**
|
|
140
|
+
* Check if a key exists in cache
|
|
141
|
+
*
|
|
142
|
+
* @param key - Key to check (normalized internally)
|
|
143
|
+
* @returns True if key exists and has a value
|
|
144
|
+
*
|
|
145
|
+
* @example Existence check
|
|
146
|
+
* ```typescript
|
|
147
|
+
* if (cache.has('ethereum')) {
|
|
148
|
+
* const tokens = cache.get('ethereum');
|
|
149
|
+
* }
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
has(key: K): boolean;
|
|
153
|
+
/**
|
|
154
|
+
* Clear entire cache
|
|
155
|
+
*
|
|
156
|
+
* Resets all stored values. Override in subclasses for additional cleanup
|
|
157
|
+
* (e.g., clearing secondary indices, resetting timestamps).
|
|
158
|
+
*
|
|
159
|
+
* @example Clear cache
|
|
160
|
+
* ```typescript
|
|
161
|
+
* cache.clear();
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
clear(): void;
|
|
165
|
+
/**
|
|
166
|
+
* Get cache statistics
|
|
167
|
+
*
|
|
168
|
+
* Subclasses MUST implement this to return domain-specific statistics.
|
|
169
|
+
* Always include totalItems for monitoring purposes.
|
|
170
|
+
*
|
|
171
|
+
* @returns Statistics object with cache metrics
|
|
172
|
+
*
|
|
173
|
+
* @example Retrieving stats
|
|
174
|
+
* ```typescript
|
|
175
|
+
* const stats = cache.getStats();
|
|
176
|
+
* console.log(`Cached ${stats.totalItems} items`);
|
|
177
|
+
* ```
|
|
178
|
+
*/
|
|
179
|
+
abstract getStats(): S;
|
|
180
|
+
/**
|
|
181
|
+
* Export entire cache contents
|
|
182
|
+
*
|
|
183
|
+
* Returns a Map of all cached key/value pairs. Useful for debugging,
|
|
184
|
+
* monitoring, and testing. Does not include secondary indices.
|
|
185
|
+
*
|
|
186
|
+
* @returns Shallow copy of cache contents
|
|
187
|
+
*
|
|
188
|
+
* @example Export cache
|
|
189
|
+
* ```typescript
|
|
190
|
+
* const contents = cache.dump();
|
|
191
|
+
* console.log('Cache contents:', Array.from(contents.entries()));
|
|
192
|
+
* ```
|
|
193
|
+
*/
|
|
194
|
+
dump(): Map<string, V>;
|
|
195
|
+
/**
|
|
196
|
+
* Get number of items in cache
|
|
197
|
+
*
|
|
198
|
+
* @returns Count of cached items
|
|
199
|
+
*/
|
|
200
|
+
size(): number;
|
|
201
|
+
/**
|
|
202
|
+
* Check if cache is empty
|
|
203
|
+
*
|
|
204
|
+
* @returns True if no items are cached
|
|
205
|
+
*/
|
|
206
|
+
isEmpty(): boolean;
|
|
207
|
+
/**
|
|
208
|
+
* Build base statistics (helper for subclasses)
|
|
209
|
+
*
|
|
210
|
+
* Provides the common totalItems field that all caches need.
|
|
211
|
+
* Subclasses can extend this with domain-specific stats.
|
|
212
|
+
*
|
|
213
|
+
* @returns Base statistics with totalItems
|
|
214
|
+
*
|
|
215
|
+
* @example Extending in subclass
|
|
216
|
+
* ```typescript
|
|
217
|
+
* public getStats(): MyCacheStats {
|
|
218
|
+
* return {
|
|
219
|
+
* ...this.buildBaseStats(),
|
|
220
|
+
* customMetric: this.calculateCustomMetric(),
|
|
221
|
+
* };
|
|
222
|
+
* }
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
protected buildBaseStats(): BaseCacheStats;
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=AbstractCacheService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractCacheService.d.ts","sourceRoot":"","sources":["../../../src/services/AbstractCacheService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,8BAAsB,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,UAAU;IAC5G,4BAA4B;IAC5B,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAa;gBAEhC,SAAS,GAAE,OAAe;IAItC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM;IAE/C;;;;;;;;;;;;;OAaG;IACI,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAKjC;;;;;;;;;;OAUG;IACI,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAKlC;;;;;;;;;;;;OAYG;IACI,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAK3B;;;;;;;;;;OAUG;IACI,KAAK,IAAI,IAAI;IAKpB;;;;;;;;;;;;;OAaG;aACa,QAAQ,IAAI,CAAC;IAE7B;;;;;;;;;;;;;OAaG;IACI,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAI7B;;;;OAIG;IACI,IAAI,IAAI,MAAM;IAIrB;;;;OAIG;IACI,OAAO,IAAI,OAAO;IAIzB;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,cAAc,IAAI,cAAc;CAK3C"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract Token Fetch Service Base Class
|
|
3
|
+
*
|
|
4
|
+
* Provides common patterns for services that fetch and cache token data
|
|
5
|
+
* from the DEX API with pagination support.
|
|
6
|
+
*
|
|
7
|
+
* ## Features
|
|
8
|
+
* - Paginated fetch with offset/limit
|
|
9
|
+
* - Auto-pagination via autoPaginateOffset
|
|
10
|
+
* - Cache integration (via subclass-provided cache)
|
|
11
|
+
* - Response transformation abstraction
|
|
12
|
+
* - Common error handling
|
|
13
|
+
*
|
|
14
|
+
* ## Subclass Responsibilities
|
|
15
|
+
* - Implement `buildApiParams()` for API-specific parameters
|
|
16
|
+
* - Implement `transformApiResponse()` for response transformation
|
|
17
|
+
* - Implement cache-specific methods (network-keyed or simple)
|
|
18
|
+
* - Provide domain-specific public API methods
|
|
19
|
+
*
|
|
20
|
+
* ## Key Pattern
|
|
21
|
+
* This base class consolidates ~150 lines of duplicate code between
|
|
22
|
+
* BridgeableTokenService and WrappableTokenService by abstracting:
|
|
23
|
+
* - API request structure
|
|
24
|
+
* - Pagination handling
|
|
25
|
+
* - Cache warming patterns
|
|
26
|
+
* - Error handling
|
|
27
|
+
*
|
|
28
|
+
* @category Services
|
|
29
|
+
* @since 5.11.0
|
|
30
|
+
* @template TApiResponse - Raw API response item type
|
|
31
|
+
* @template TToken - Transformed token type for SDK use
|
|
32
|
+
*/
|
|
33
|
+
import { HttpClient } from '../utils/http.js';
|
|
34
|
+
import { Logger } from '../utils/Logger.js';
|
|
35
|
+
import type { OffsetPaginationFetchResult } from '../utils/auto-pagination.js';
|
|
36
|
+
/** Maximum tokens per API request (backend limit) */
|
|
37
|
+
export declare const DEFAULT_MAX_LIMIT = 1000;
|
|
38
|
+
/** Default limit for paginated requests */
|
|
39
|
+
export declare const DEFAULT_LIMIT = 1000;
|
|
40
|
+
/**
|
|
41
|
+
* Base options for paginated token fetches
|
|
42
|
+
*/
|
|
43
|
+
export interface BaseTokenFetchOptions {
|
|
44
|
+
/** Offset for pagination (default: 0) */
|
|
45
|
+
offset?: number;
|
|
46
|
+
/** Limit per page (default: 1000, max: 1000) */
|
|
47
|
+
limit?: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Base result for paginated token fetches
|
|
51
|
+
*/
|
|
52
|
+
export interface BaseTokenFetchResult<T> {
|
|
53
|
+
/** Array of transformed tokens */
|
|
54
|
+
tokens: T[];
|
|
55
|
+
/** Timestamp when data was fetched */
|
|
56
|
+
fetchedAt: number;
|
|
57
|
+
/** Number of tokens returned */
|
|
58
|
+
tokenCount: number;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* API response wrapper type (tokens array in response)
|
|
62
|
+
*/
|
|
63
|
+
export interface TokensApiResponse<TApiResponse> {
|
|
64
|
+
tokens: TApiResponse[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Abstract base class for token fetch services
|
|
68
|
+
*
|
|
69
|
+
* Consolidates common patterns for fetching and caching token data
|
|
70
|
+
* from the DEX API. Subclasses provide API-specific parameters and
|
|
71
|
+
* transformation logic.
|
|
72
|
+
*
|
|
73
|
+
* @template TApiResponse - Raw API response item type
|
|
74
|
+
* @template TToken - Transformed token type for SDK use
|
|
75
|
+
*/
|
|
76
|
+
export declare abstract class AbstractTokenFetchService<TApiResponse, TToken> {
|
|
77
|
+
protected readonly dexApiHttp: HttpClient;
|
|
78
|
+
protected readonly logger: Logger;
|
|
79
|
+
constructor(dexApiHttp: HttpClient, debugMode?: boolean, loggerContext?: string);
|
|
80
|
+
/**
|
|
81
|
+
* Build API request parameters
|
|
82
|
+
*
|
|
83
|
+
* Subclasses implement this to add API-specific query parameters.
|
|
84
|
+
* The context parameter allows passing request-specific data (e.g., network)
|
|
85
|
+
* to avoid race conditions with mutable instance state.
|
|
86
|
+
*
|
|
87
|
+
* @param context - Optional context for building parameters (e.g., { network: 'ETHEREUM' })
|
|
88
|
+
* @returns Record of query parameters for the API request
|
|
89
|
+
*/
|
|
90
|
+
protected abstract buildApiParams(context?: Record<string, unknown>): Record<string, string | number | boolean>;
|
|
91
|
+
/**
|
|
92
|
+
* Transform API response items to SDK format
|
|
93
|
+
*
|
|
94
|
+
* Subclasses implement this to convert raw API responses to typed SDK objects.
|
|
95
|
+
*
|
|
96
|
+
* @param apiTokens - Raw API response tokens
|
|
97
|
+
* @returns Array of transformed tokens
|
|
98
|
+
*/
|
|
99
|
+
protected abstract transformApiResponse(apiTokens: TApiResponse[]): TToken[];
|
|
100
|
+
/**
|
|
101
|
+
* Get the API endpoint URL
|
|
102
|
+
*
|
|
103
|
+
* @returns API endpoint path (default: /v1/tokens)
|
|
104
|
+
*/
|
|
105
|
+
protected getApiEndpoint(): string;
|
|
106
|
+
/**
|
|
107
|
+
* Get the maximum limit for API requests
|
|
108
|
+
*
|
|
109
|
+
* @returns Maximum items per request
|
|
110
|
+
*/
|
|
111
|
+
protected getMaxLimit(): number;
|
|
112
|
+
/**
|
|
113
|
+
* Get the default limit for API requests
|
|
114
|
+
*
|
|
115
|
+
* @returns Default items per request
|
|
116
|
+
*/
|
|
117
|
+
protected getDefaultLimit(): number;
|
|
118
|
+
/**
|
|
119
|
+
* Execute a paginated API request
|
|
120
|
+
*
|
|
121
|
+
* Core method that performs the HTTP request with pagination parameters.
|
|
122
|
+
* Used by both single-page and auto-paginated fetches.
|
|
123
|
+
*
|
|
124
|
+
* @param offset - Offset for pagination
|
|
125
|
+
* @param limit - Number of items to fetch
|
|
126
|
+
* @param context - Optional context for building parameters (e.g., { network: 'ETHEREUM' })
|
|
127
|
+
* @returns Promise resolving to transformed tokens
|
|
128
|
+
* @throws ValidationError if API response structure is invalid
|
|
129
|
+
*/
|
|
130
|
+
protected executePaginatedRequest(offset: number, limit: number, context?: Record<string, unknown>): Promise<OffsetPaginationFetchResult<TToken>>;
|
|
131
|
+
/**
|
|
132
|
+
* Auto-paginate through all API results
|
|
133
|
+
*
|
|
134
|
+
* Fetches all pages of results automatically.
|
|
135
|
+
* Subclasses call this from their fetchAll methods.
|
|
136
|
+
*
|
|
137
|
+
* @param context - Optional context for building parameters (e.g., { network: 'ETHEREUM' })
|
|
138
|
+
* @returns Promise resolving to all transformed tokens
|
|
139
|
+
*/
|
|
140
|
+
protected autoPaginateFetch(context?: Record<string, unknown>): Promise<TToken[]>;
|
|
141
|
+
/**
|
|
142
|
+
* Handle API errors consistently
|
|
143
|
+
*
|
|
144
|
+
* @param error - Error from API call
|
|
145
|
+
* @param message - Error message prefix
|
|
146
|
+
* @throws Transformed error with proper type
|
|
147
|
+
*/
|
|
148
|
+
protected handleError(error: unknown, message: string): never;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=AbstractTokenFetchService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractTokenFetchService.d.ts","sourceRoot":"","sources":["../../../src/services/AbstractTokenFetchService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAK5C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAE/E,qDAAqD;AACrD,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,2CAA2C;AAC3C,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,kCAAkC;IAClC,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,YAAY;IAC7C,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,8BAAsB,yBAAyB,CAAC,YAAY,EAAE,MAAM;IAIhE,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;IAH3C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAGb,UAAU,EAAE,UAAU,EACzC,SAAS,GAAE,OAAe,EAC1B,aAAa,CAAC,EAAE,MAAM;IAQxB;;;;;;;;;OASG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,CAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAE5C;;;;;;;OAOG;IACH,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE;IAE5E;;;;OAIG;IACH,SAAS,CAAC,cAAc,IAAI,MAAM;IAIlC;;;;OAIG;IACH,SAAS,CAAC,WAAW,IAAI,MAAM;IAI/B;;;;OAIG;IACH,SAAS,CAAC,eAAe,IAAI,MAAM;IAInC;;;;;;;;;;;OAWG;cACa,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;IA+B/C;;;;;;;;OAQG;cACa,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAOvF;;;;;;OAMG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK;CAG9D"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API Key Service
|
|
3
|
+
*
|
|
4
|
+
* Handles all API key management operations including creating, listing,
|
|
5
|
+
* updating, and revoking user-managed API keys with role-based permissions.
|
|
6
|
+
*
|
|
7
|
+
* API keys enable delegation of specific permissions to third-party services
|
|
8
|
+
* or automated systems without sharing full account access.
|
|
9
|
+
*
|
|
10
|
+
* @category Services
|
|
11
|
+
* @since 5.6.0
|
|
12
|
+
*/
|
|
13
|
+
import { HttpClient } from '../utils/http';
|
|
14
|
+
import { BaseService } from './BaseService';
|
|
15
|
+
import type { JwtAuth } from '../auth/JwtAuth';
|
|
16
|
+
import { CreateApiKeyOptions, UpdateApiKeyOptions, ListApiKeysOptions, CreateApiKeyResponse, ApiKeyData, ApiKeyListResponse } from '../types/api-key.dto';
|
|
17
|
+
/**
|
|
18
|
+
* API Key Service Class
|
|
19
|
+
*
|
|
20
|
+
* Provides methods for managing user API keys:
|
|
21
|
+
* - Create new API keys with role-based permissions
|
|
22
|
+
* - List all API keys (paginated)
|
|
23
|
+
* - Get single API key details
|
|
24
|
+
* - Update API key metadata and permissions
|
|
25
|
+
* - Revoke (soft delete) API keys
|
|
26
|
+
*
|
|
27
|
+
* **CRITICAL**: Raw API keys are ONLY returned on creation and cannot be
|
|
28
|
+
* retrieved again. Store them securely immediately after creation.
|
|
29
|
+
*
|
|
30
|
+
* All endpoints require JWT authentication - only the key owner can manage
|
|
31
|
+
* their API keys.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const apiKeyService = new ApiKeyService(httpClient, jwtAuth, true);
|
|
36
|
+
*
|
|
37
|
+
* // Create a moderator key for specific tokens
|
|
38
|
+
* const result = await apiKeyService.create({
|
|
39
|
+
* role: 'MODERATOR',
|
|
40
|
+
* description: 'Chat moderation bot',
|
|
41
|
+
* tokenNames: ['mytoken', 'othertoken']
|
|
42
|
+
* });
|
|
43
|
+
* console.log('SAVE THIS KEY:', result.rawKey); // Only shown once!
|
|
44
|
+
*
|
|
45
|
+
* // List all keys
|
|
46
|
+
* const keys = await apiKeyService.findAll({ page: 1, limit: 20 });
|
|
47
|
+
*
|
|
48
|
+
* // Revoke a key
|
|
49
|
+
* await apiKeyService.revoke(keyId);
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare class ApiKeyService extends BaseService {
|
|
53
|
+
constructor(http: HttpClient, jwtAuth?: JwtAuth, debugMode?: boolean);
|
|
54
|
+
/**
|
|
55
|
+
* Extract data from API response wrapper.
|
|
56
|
+
* @throws Error if response indicates failure or has no data
|
|
57
|
+
*/
|
|
58
|
+
private extractData;
|
|
59
|
+
/**
|
|
60
|
+
* Validate API key ID parameter.
|
|
61
|
+
* @throws ValidationError if ID is not a positive integer
|
|
62
|
+
*/
|
|
63
|
+
private validateApiKeyId;
|
|
64
|
+
/**
|
|
65
|
+
* Create a new API key
|
|
66
|
+
*
|
|
67
|
+
* **CRITICAL**: The `rawKey` in the response is ONLY shown once!
|
|
68
|
+
* Store it securely immediately - it cannot be retrieved again.
|
|
69
|
+
*
|
|
70
|
+
* @param options - API key creation options
|
|
71
|
+
* @returns Created API key with raw key (shown only once)
|
|
72
|
+
* @throws ValidationError if options are invalid
|
|
73
|
+
* @throws ConfigurationError if JWT auth is not configured
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* // Create a moderator key for specific tokens
|
|
78
|
+
* const result = await apiKeyService.create({
|
|
79
|
+
* role: 'MODERATOR',
|
|
80
|
+
* description: 'Twitch chat bot integration',
|
|
81
|
+
* delegateAllTokens: false,
|
|
82
|
+
* tokenNames: ['mytoken', 'othertoken'],
|
|
83
|
+
* expiresAt: '2025-12-31T23:59:59Z'
|
|
84
|
+
* });
|
|
85
|
+
*
|
|
86
|
+
* // CRITICAL: Save this immediately!
|
|
87
|
+
* console.log('API Key:', result.rawKey);
|
|
88
|
+
* // Format: glp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
create(options: CreateApiKeyOptions): Promise<CreateApiKeyResponse>;
|
|
92
|
+
/**
|
|
93
|
+
* List all API keys for the authenticated user
|
|
94
|
+
*
|
|
95
|
+
* Returns paginated list of API keys. Raw keys are never included in
|
|
96
|
+
* list responses.
|
|
97
|
+
*
|
|
98
|
+
* @param options - Optional pagination options
|
|
99
|
+
* @returns Paginated list of API keys
|
|
100
|
+
* @throws ConfigurationError if JWT auth is not configured
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* // Get first page
|
|
105
|
+
* const page1 = await apiKeyService.findAll();
|
|
106
|
+
*
|
|
107
|
+
* // Get specific page with custom limit
|
|
108
|
+
* const page2 = await apiKeyService.findAll({ page: 2, limit: 10 });
|
|
109
|
+
*
|
|
110
|
+
* // Iterate through all keys
|
|
111
|
+
* for (const key of page2.apiKeys) {
|
|
112
|
+
* console.log(`${key.keyPrefix} - ${key.role} - ${key.description}`);
|
|
113
|
+
* }
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
findAll(options?: ListApiKeysOptions): Promise<ApiKeyListResponse>;
|
|
117
|
+
/**
|
|
118
|
+
* Get a single API key by ID
|
|
119
|
+
*
|
|
120
|
+
* Returns the API key metadata. Raw key is never included.
|
|
121
|
+
*
|
|
122
|
+
* @param id - API key ID
|
|
123
|
+
* @returns API key data
|
|
124
|
+
* @throws ValidationError if ID is invalid
|
|
125
|
+
* @throws ConfigurationError if JWT auth is not configured
|
|
126
|
+
* @throws Error if API key not found (404)
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```typescript
|
|
130
|
+
* const key = await apiKeyService.findOne(123);
|
|
131
|
+
* console.log(`Key ${key.keyPrefix}: ${key.role}`);
|
|
132
|
+
* console.log(`Last used: ${key.lastUsedAt || 'Never'}`);
|
|
133
|
+
* console.log(`Expires: ${key.expiresAt || 'Never'}`);
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
findOne(id: number): Promise<ApiKeyData>;
|
|
137
|
+
/**
|
|
138
|
+
* Update an API key's metadata and permissions
|
|
139
|
+
*
|
|
140
|
+
* Cannot change the key itself, only metadata and permissions.
|
|
141
|
+
* At least one field must be provided.
|
|
142
|
+
*
|
|
143
|
+
* @param id - API key ID
|
|
144
|
+
* @param options - Fields to update
|
|
145
|
+
* @returns Updated API key data
|
|
146
|
+
* @throws ValidationError if ID or options are invalid
|
|
147
|
+
* @throws ConfigurationError if JWT auth is not configured
|
|
148
|
+
* @throws Error if API key not found (404)
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```typescript
|
|
152
|
+
* // Update description
|
|
153
|
+
* await apiKeyService.update(123, {
|
|
154
|
+
* description: 'Updated description'
|
|
155
|
+
* });
|
|
156
|
+
*
|
|
157
|
+
* // Upgrade role and extend expiration
|
|
158
|
+
* await apiKeyService.update(123, {
|
|
159
|
+
* role: 'MANAGER',
|
|
160
|
+
* expiresAt: '2026-12-31T23:59:59Z'
|
|
161
|
+
* });
|
|
162
|
+
*
|
|
163
|
+
* // Delegate all tokens
|
|
164
|
+
* await apiKeyService.update(123, {
|
|
165
|
+
* delegateAllTokens: true
|
|
166
|
+
* });
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
update(id: number, options: UpdateApiKeyOptions): Promise<ApiKeyData>;
|
|
170
|
+
/**
|
|
171
|
+
* Revoke an API key
|
|
172
|
+
*
|
|
173
|
+
* This performs a soft delete - the key becomes immediately unusable
|
|
174
|
+
* but is retained for audit purposes.
|
|
175
|
+
*
|
|
176
|
+
* @param id - API key ID to revoke
|
|
177
|
+
* @throws ValidationError if ID is invalid
|
|
178
|
+
* @throws ConfigurationError if JWT auth is not configured
|
|
179
|
+
* @throws Error if API key not found (404)
|
|
180
|
+
*
|
|
181
|
+
* @example
|
|
182
|
+
* ```typescript
|
|
183
|
+
* // Revoke a key
|
|
184
|
+
* await apiKeyService.revoke(123);
|
|
185
|
+
* console.log('API key revoked');
|
|
186
|
+
*
|
|
187
|
+
* // Key is now unusable
|
|
188
|
+
* // Attempts to use it will fail with 401 Unauthorized
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
revoke(id: number): Promise<void>;
|
|
192
|
+
/**
|
|
193
|
+
* Get all valid API key roles
|
|
194
|
+
*
|
|
195
|
+
* @returns Array of valid role strings
|
|
196
|
+
*
|
|
197
|
+
* @example
|
|
198
|
+
* ```typescript
|
|
199
|
+
* const roles = apiKeyService.getRoles();
|
|
200
|
+
* // ['MODERATOR', 'TECHNICAL_PRODUCER', 'MANAGER', 'OWNER']
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
getRoles(): string[];
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=ApiKeyService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiKeyService.d.ts","sourceRoot":"","sources":["../../../src/services/ApiKeyService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,UAAU,EACV,kBAAkB,EAKnB,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,aAAc,SAAQ,WAAW;gBAChC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,GAAE,OAAe;IAI3E;;;OAGG;IACH,OAAO,CAAC,WAAW;IAwBnB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsCzE;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,OAAO,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuC5E;;;;;;;;;;;;;;;;;;OAkBG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAc9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAqC3E;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAevC;;;;;;;;;;OAUG;IACH,QAAQ,IAAI,MAAM,EAAE;CAGrB"}
|