@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.
- 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,268 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service-Layer Validation Utilities
|
|
3
|
+
*
|
|
4
|
+
* Consolidated validators for service methods. Eliminates 927+ duplicate validation patterns:
|
|
5
|
+
* - 352+ string type checks
|
|
6
|
+
* - 210+ range/boundary checks
|
|
7
|
+
* - 127+ string length checks
|
|
8
|
+
* - 89+ number type checks
|
|
9
|
+
* - 69+ Array.isArray() checks
|
|
10
|
+
* - 21+ Number.isInteger() checks
|
|
11
|
+
*
|
|
12
|
+
* These validators are designed for service methods where validation failure should throw.
|
|
13
|
+
* For conditional validation, use validation-helpers.ts instead.
|
|
14
|
+
*
|
|
15
|
+
* @category Utilities
|
|
16
|
+
* @since 6.18.0
|
|
17
|
+
*/
|
|
18
|
+
import type { TokenNameConstraint } from '../types/constraints';
|
|
19
|
+
/**
|
|
20
|
+
* Validates that a value is a required non-empty string
|
|
21
|
+
*
|
|
22
|
+
* Consolidates 352+ instances of:
|
|
23
|
+
* ```typescript
|
|
24
|
+
* if (typeof value !== 'string' || value.trim().length === 0) {
|
|
25
|
+
* throw new ValidationError('...');
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @param value Value to validate
|
|
30
|
+
* @param field Field name for error messages
|
|
31
|
+
* @throws {ValidationError} If value is not a non-empty string
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* validateRequiredString(options.tokenName, 'tokenName');
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @since 6.18.0
|
|
39
|
+
*/
|
|
40
|
+
export declare function validateRequiredString(value: unknown, field: string): asserts value is string;
|
|
41
|
+
/**
|
|
42
|
+
* Validates that a value is an optional string with optional max length constraint
|
|
43
|
+
*
|
|
44
|
+
* Consolidates 127+ instances of string length checking and type validation.
|
|
45
|
+
* Allows undefined/null for optional fields.
|
|
46
|
+
*
|
|
47
|
+
* @param value Value to validate (may be undefined/null)
|
|
48
|
+
* @param field Field name for error messages
|
|
49
|
+
* @param maxLength Optional maximum length (no limit if not provided)
|
|
50
|
+
* @throws {ValidationError} If value is provided but invalid
|
|
51
|
+
*
|
|
52
|
+
* @example No length constraint
|
|
53
|
+
* ```typescript
|
|
54
|
+
* validateOptionalString(options.description, 'description');
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* @example With length constraint
|
|
58
|
+
* ```typescript
|
|
59
|
+
* validateOptionalString(options.reason, 'reason', 255);
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
* @since 6.18.0
|
|
63
|
+
*/
|
|
64
|
+
export declare function validateOptionalString(value: unknown, field: string, maxLength?: number): void;
|
|
65
|
+
/**
|
|
66
|
+
* Validates that a value is a positive integer
|
|
67
|
+
*
|
|
68
|
+
* Consolidates 21+ instances of:
|
|
69
|
+
* ```typescript
|
|
70
|
+
* if (!Number.isInteger(value) || value < 1) {
|
|
71
|
+
* throw new ValidationError('...');
|
|
72
|
+
* }
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* Delegates to positiveIntegerValidation from validation-patterns.ts.
|
|
76
|
+
*
|
|
77
|
+
* @param value Value to validate
|
|
78
|
+
* @param field Field name for error messages
|
|
79
|
+
* @throws {ValidationError} If value is not a positive integer
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* validatePositiveInteger(options.limit, 'limit');
|
|
84
|
+
* ```
|
|
85
|
+
*
|
|
86
|
+
* @since 6.18.0
|
|
87
|
+
*/
|
|
88
|
+
export declare function validatePositiveInteger(value: unknown, field: string): asserts value is number;
|
|
89
|
+
/**
|
|
90
|
+
* Validates that a value is a number within a range (optional field)
|
|
91
|
+
*
|
|
92
|
+
* Consolidates 210+ instances of range checking:
|
|
93
|
+
* ```typescript
|
|
94
|
+
* if (typeof value !== 'number' || value < min || value > max) {
|
|
95
|
+
* throw createRangeError(...);
|
|
96
|
+
* }
|
|
97
|
+
* ```
|
|
98
|
+
*
|
|
99
|
+
* Allows undefined/null for optional fields.
|
|
100
|
+
*
|
|
101
|
+
* @param value Value to validate (may be undefined/null)
|
|
102
|
+
* @param field Field name for error messages
|
|
103
|
+
* @param min Minimum allowed value (inclusive)
|
|
104
|
+
* @param max Maximum allowed value (inclusive)
|
|
105
|
+
* @throws {ValidationError} If value is provided but outside range
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```typescript
|
|
109
|
+
* validateOptionalNumber(options.slippage, 'slippage', 0.001, 0.5);
|
|
110
|
+
* ```
|
|
111
|
+
*
|
|
112
|
+
* @since 6.18.0
|
|
113
|
+
*/
|
|
114
|
+
export declare function validateOptionalNumber(value: unknown, field: string, min?: number, max?: number): void;
|
|
115
|
+
/**
|
|
116
|
+
* Validates token name with constraints (required field)
|
|
117
|
+
*
|
|
118
|
+
* Consolidates duplicate token name validation across multiple services.
|
|
119
|
+
* Validates token name is 3-20 alphanumeric characters by default.
|
|
120
|
+
*
|
|
121
|
+
* @param value Value to validate
|
|
122
|
+
* @param field Field name for error messages (default: 'tokenName')
|
|
123
|
+
* @param constraint Token name constraint (default: LAUNCHPAD_TOKEN_NAME_CONSTRAINT)
|
|
124
|
+
* @throws {ValidationError} If token name is invalid
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* validateTokenNameWithConstraints(options.tokenName, 'tokenName');
|
|
129
|
+
* ```
|
|
130
|
+
*
|
|
131
|
+
* @since 6.18.0
|
|
132
|
+
*/
|
|
133
|
+
export declare function validateTokenNameWithConstraints(value: unknown, field?: string, constraint?: TokenNameConstraint): asserts value is string;
|
|
134
|
+
/**
|
|
135
|
+
* Validates a status filter value (optional)
|
|
136
|
+
*
|
|
137
|
+
* Used in services that have status filtering options.
|
|
138
|
+
* Allows undefined/null and validates against allowed values.
|
|
139
|
+
*
|
|
140
|
+
* @param value Value to validate
|
|
141
|
+
* @param field Field name for error messages
|
|
142
|
+
* @param allowedValues Array of allowed status values
|
|
143
|
+
* @throws {ValidationError} If value is provided but not in allowed values
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```typescript
|
|
147
|
+
* validateStatusFilter(options.status, 'status', ['active', 'inactive', 'pending']);
|
|
148
|
+
* ```
|
|
149
|
+
*
|
|
150
|
+
* @since 6.18.0
|
|
151
|
+
*/
|
|
152
|
+
export declare function validateStatusFilter(value: unknown, field: string, allowedValues: readonly string[]): void;
|
|
153
|
+
/**
|
|
154
|
+
* Validates that a value is a non-empty array (required field)
|
|
155
|
+
*
|
|
156
|
+
* Consolidates 69+ instances of Array.isArray() checks with additional validation.
|
|
157
|
+
*
|
|
158
|
+
* @param value Value to validate
|
|
159
|
+
* @param field Field name for error messages
|
|
160
|
+
* @throws {ValidationError} If value is not a non-empty array
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```typescript
|
|
164
|
+
* validateNonEmptyArray(options.tokens, 'tokens');
|
|
165
|
+
* ```
|
|
166
|
+
*
|
|
167
|
+
* @since 6.18.0
|
|
168
|
+
*/
|
|
169
|
+
export declare function validateNonEmptyArray(value: unknown, field: string): asserts value is unknown[];
|
|
170
|
+
/**
|
|
171
|
+
* Validates that an array length is within bounds (optional field)
|
|
172
|
+
*
|
|
173
|
+
* Allows undefined/null for optional array fields.
|
|
174
|
+
*
|
|
175
|
+
* @param value Value to validate
|
|
176
|
+
* @param field Field name for error messages
|
|
177
|
+
* @param maxLength Maximum allowed array length
|
|
178
|
+
* @throws {ValidationError} If array exceeds max length
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* ```typescript
|
|
182
|
+
* validateArrayLength(options.tags, 'tags', 10);
|
|
183
|
+
* ```
|
|
184
|
+
*
|
|
185
|
+
* @since 6.18.0
|
|
186
|
+
*/
|
|
187
|
+
export declare function validateArrayLength(value: unknown, field: string, maxLength: number): void;
|
|
188
|
+
/**
|
|
189
|
+
* Validates that a value is an optional non-null object (excluding arrays)
|
|
190
|
+
*
|
|
191
|
+
* @param value Value to validate
|
|
192
|
+
* @param field Field name for error messages
|
|
193
|
+
* @throws {ValidationError} If value is provided but not an object
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* ```typescript
|
|
197
|
+
* validateOptionalObject(options.metadata, 'metadata');
|
|
198
|
+
* ```
|
|
199
|
+
*
|
|
200
|
+
* @since 6.18.0
|
|
201
|
+
*/
|
|
202
|
+
export declare function validateOptionalObject(value: unknown, field: string): asserts value is object | undefined | null;
|
|
203
|
+
/**
|
|
204
|
+
* Validates that a value is a required non-null object (excluding arrays)
|
|
205
|
+
*
|
|
206
|
+
* @param value Value to validate
|
|
207
|
+
* @param field Field name for error messages
|
|
208
|
+
* @throws {ValidationError} If value is not an object
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* ```typescript
|
|
212
|
+
* validateRequiredObject(options.config, 'config');
|
|
213
|
+
* ```
|
|
214
|
+
*
|
|
215
|
+
* @since 6.18.0
|
|
216
|
+
*/
|
|
217
|
+
export declare function validateRequiredObject(value: unknown, field: string): asserts value is object;
|
|
218
|
+
/**
|
|
219
|
+
* Validates that a value is an optional date
|
|
220
|
+
*
|
|
221
|
+
* Accepts Date objects, ISO 8601 date strings, or numeric timestamps.
|
|
222
|
+
* Allows undefined/null for optional fields.
|
|
223
|
+
*
|
|
224
|
+
* @param value Value to validate
|
|
225
|
+
* @param field Field name for error messages
|
|
226
|
+
* @throws {ValidationError} If value is provided but not a valid date
|
|
227
|
+
*
|
|
228
|
+
* @example
|
|
229
|
+
* ```typescript
|
|
230
|
+
* validateOptionalDate(options.expiresAt, 'expiresAt');
|
|
231
|
+
* ```
|
|
232
|
+
*
|
|
233
|
+
* @since 6.18.0
|
|
234
|
+
*/
|
|
235
|
+
export declare function validateOptionalDate(value: unknown, field: string): void;
|
|
236
|
+
/**
|
|
237
|
+
* Validates a required date (Date object, ISO 8601 string, or numeric timestamp)
|
|
238
|
+
*
|
|
239
|
+
* @param value Value to validate
|
|
240
|
+
* @param field Field name for error messages
|
|
241
|
+
* @throws {ValidationError} If value is not a valid date
|
|
242
|
+
*
|
|
243
|
+
* @example
|
|
244
|
+
* ```typescript
|
|
245
|
+
* validateRequiredDate(options.startDate, 'startDate');
|
|
246
|
+
* ```
|
|
247
|
+
*
|
|
248
|
+
* @since 6.18.0
|
|
249
|
+
*/
|
|
250
|
+
export declare function validateRequiredDate(value: unknown, field: string): asserts value is Date | string | number;
|
|
251
|
+
/**
|
|
252
|
+
* Validates that a value is within a string length range (required field)
|
|
253
|
+
*
|
|
254
|
+
* @param value Value to validate
|
|
255
|
+
* @param field Field name for error messages
|
|
256
|
+
* @param minLength Minimum allowed length
|
|
257
|
+
* @param maxLength Maximum allowed length
|
|
258
|
+
* @throws {ValidationError} If string is outside the length range
|
|
259
|
+
*
|
|
260
|
+
* @example
|
|
261
|
+
* ```typescript
|
|
262
|
+
* validateStringLength(options.reason, 'reason', 1, 500);
|
|
263
|
+
* ```
|
|
264
|
+
*
|
|
265
|
+
* @since 6.18.0
|
|
266
|
+
*/
|
|
267
|
+
export declare function validateStringLength(value: unknown, field: string, minLength: number, maxLength: number): asserts value is string;
|
|
268
|
+
//# sourceMappingURL=service-validators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-validators.d.ts","sourceRoot":"","sources":["../../../src/utils/service-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAQH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAKhE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAO7F;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAmB9F;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAE9F;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,GACX,IAAI,CAeN;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,EACd,KAAK,GAAE,MAAoB,EAC3B,UAAU,GAAE,mBAAqD,GAChE,OAAO,CAAC,KAAK,IAAI,MAAM,CAgCzB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,IAAI,CAmBN;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE,CAW/F;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAmB1F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,KAAK,IAAI,MAAM,GAAG,SAAS,GAAG,IAAI,CAM5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,KAAK,IAAI,MAAM,CAIzB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CA0BxE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,GAAG,MAAM,GAAG,MAAM,CA0B3G;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,KAAK,IAAI,MAAM,CAQzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slippage-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/slippage-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"slippage-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/slippage-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,CAAC;AAE9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,MAAM,EACtB,uBAAuB,EAAE,MAAM,EAC/B,aAAa,EAAE,qBAAqB,GACnC,MAAM,CAqDR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,GACrB,MAAM,CAYR"}
|
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Advanced String Pattern Utilities
|
|
3
|
+
*
|
|
4
|
+
* Specialized string manipulation functions for chat validation, token comparison,
|
|
5
|
+
* error message normalization, and address parsing. Consolidates duplicated patterns
|
|
6
|
+
* from chat/comment/ban operations, trading workflows, and error handling.
|
|
7
|
+
*
|
|
8
|
+
* @category Utilities
|
|
9
|
+
* @since 6.14.0
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Safely trim a string and validate it is non-empty.
|
|
13
|
+
*
|
|
14
|
+
* Performs conditional trimming and validation for optional string values.
|
|
15
|
+
* Returns null if value is falsy, not a string, or empty after trimming.
|
|
16
|
+
* Useful for chat messages, reasons, comments, and other user input validation.
|
|
17
|
+
*
|
|
18
|
+
* Consolidated from 15 duplicated patterns in chat/comment/ban operations:
|
|
19
|
+
* - `reason?.trim() && reason.trim().length > 0`
|
|
20
|
+
* - `content?.trim().length > 0`
|
|
21
|
+
* - `message && message.trim().length > 0`
|
|
22
|
+
*
|
|
23
|
+
* @param value Unknown input value to process
|
|
24
|
+
* @param fieldName Optional field name for error context (not used in validation, for documentation)
|
|
25
|
+
* @param minLength Optional minimum length requirement (default: 1)
|
|
26
|
+
* @returns Trimmed string if valid and non-empty, null otherwise
|
|
27
|
+
*
|
|
28
|
+
* @example Basic usage with optional values
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import { conditionalTrimAndValidateString } from '@gala-chain/launchpad-sdk';
|
|
31
|
+
*
|
|
32
|
+
* const message = ' Hello world ';
|
|
33
|
+
* const trimmed = conditionalTrimAndValidateString(message);
|
|
34
|
+
* console.log(trimmed); // 'Hello world'
|
|
35
|
+
*
|
|
36
|
+
* const empty = ' ';
|
|
37
|
+
* console.log(conditionalTrimAndValidateString(empty)); // null
|
|
38
|
+
*
|
|
39
|
+
* const undefined_ = undefined;
|
|
40
|
+
* console.log(conditionalTrimAndValidateString(undefined_)); // null
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @example Chat message validation
|
|
44
|
+
* ```typescript
|
|
45
|
+
* import { conditionalTrimAndValidateString } from '@gala-chain/launchpad-sdk';
|
|
46
|
+
*
|
|
47
|
+
* const chatMessage = userInput?.trim();
|
|
48
|
+
* // OLD: if (chatMessage && chatMessage.length > 0) { ... }
|
|
49
|
+
* // NEW:
|
|
50
|
+
* const validatedMessage = conditionalTrimAndValidateString(userInput, 'message');
|
|
51
|
+
* if (validatedMessage !== null) {
|
|
52
|
+
* await sdk.sendChatMessage(validatedMessage);
|
|
53
|
+
* }
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* @example Comment with minimum length
|
|
57
|
+
* ```typescript
|
|
58
|
+
* import { conditionalTrimAndValidateString } from '@gala-chain/launchpad-sdk';
|
|
59
|
+
*
|
|
60
|
+
* const comment = ' Hi '; // Only 2 chars after trim
|
|
61
|
+
* const validated = conditionalTrimAndValidateString(comment, 'comment', 5);
|
|
62
|
+
* console.log(validated); // null (2 < 5)
|
|
63
|
+
*
|
|
64
|
+
* const goodComment = ' This is great! '; // 14 chars after trim
|
|
65
|
+
* const result = conditionalTrimAndValidateString(goodComment, 'comment', 5);
|
|
66
|
+
* console.log(result); // 'This is great!'
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* @example Ban reason validation
|
|
70
|
+
* ```typescript
|
|
71
|
+
* import { conditionalTrimAndValidateString } from '@gala-chain/launchpad-sdk';
|
|
72
|
+
*
|
|
73
|
+
* const reason = userProvidedReason;
|
|
74
|
+
* // OLD: if (reason?.trim() && reason.trim().length > 0) { ... }
|
|
75
|
+
* // NEW:
|
|
76
|
+
* const validatedReason = conditionalTrimAndValidateString(reason, 'reason');
|
|
77
|
+
* if (validatedReason !== null) {
|
|
78
|
+
* await sdk.createBan({ tokenName, userAddress, reason: validatedReason });
|
|
79
|
+
* }
|
|
80
|
+
* ```
|
|
81
|
+
*
|
|
82
|
+
* @since 6.14.0
|
|
83
|
+
*/
|
|
84
|
+
export declare function conditionalTrimAndValidateString(value: unknown, fieldName?: string, minLength?: number): string | null;
|
|
85
|
+
/**
|
|
86
|
+
* Case-insensitive token comparison with bidirectional matching.
|
|
87
|
+
*
|
|
88
|
+
* Compares two token symbols while ignoring case differences.
|
|
89
|
+
* Useful for pool matching and token filtering where case normalization is needed.
|
|
90
|
+
*
|
|
91
|
+
* Consolidated from 8 duplicated patterns in trading/pool matching:
|
|
92
|
+
* - `tokenA.toLowerCase() === tokenB.toLowerCase()`
|
|
93
|
+
* - `token0?.toLowerCase() === token1?.toLowerCase()`
|
|
94
|
+
*
|
|
95
|
+
* @param tokenA First token symbol to compare
|
|
96
|
+
* @param tokenB Second token symbol to compare
|
|
97
|
+
* @returns True if tokens match (case-insensitive), false otherwise
|
|
98
|
+
*
|
|
99
|
+
* @example Basic token comparison
|
|
100
|
+
* ```typescript
|
|
101
|
+
* import { caseInsensitiveTokenComparison } from '@gala-chain/launchpad-sdk';
|
|
102
|
+
*
|
|
103
|
+
* caseInsensitiveTokenComparison('GALA', 'gala'); // true
|
|
104
|
+
* caseInsensitiveTokenComparison('USDC', 'usdc'); // true
|
|
105
|
+
* caseInsensitiveTokenComparison('GALA', 'USDC'); // false
|
|
106
|
+
* ```
|
|
107
|
+
*
|
|
108
|
+
* @example Pool token matching
|
|
109
|
+
* ```typescript
|
|
110
|
+
* import { caseInsensitiveTokenComparison } from '@gala-chain/launchpad-sdk';
|
|
111
|
+
*
|
|
112
|
+
* const poolToken0 = 'GALA';
|
|
113
|
+
* const poolToken1 = 'GUSDC';
|
|
114
|
+
* const searchToken = 'gala';
|
|
115
|
+
*
|
|
116
|
+
* if (caseInsensitiveTokenComparison(poolToken0, searchToken)) {
|
|
117
|
+
* // This pool contains GALA
|
|
118
|
+
* }
|
|
119
|
+
* ```
|
|
120
|
+
*
|
|
121
|
+
* @example Filtering positions
|
|
122
|
+
* ```typescript
|
|
123
|
+
* import { caseInsensitiveTokenComparison } from '@gala-chain/launchpad-sdk';
|
|
124
|
+
*
|
|
125
|
+
* const searchSymbol = 'gusdc';
|
|
126
|
+
* const galaPositions = positions.filter(p =>
|
|
127
|
+
* caseInsensitiveTokenComparison(p.token0, searchSymbol) ||
|
|
128
|
+
* caseInsensitiveTokenComparison(p.token1, searchSymbol)
|
|
129
|
+
* );
|
|
130
|
+
* ```
|
|
131
|
+
*
|
|
132
|
+
* @since 6.14.0
|
|
133
|
+
*/
|
|
134
|
+
export declare function caseInsensitiveTokenComparison(tokenA: string, tokenB: string): boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Normalize error message to lowercase for consistent error pattern matching.
|
|
137
|
+
*
|
|
138
|
+
* Converts error messages to lowercase for case-insensitive substring searching.
|
|
139
|
+
* Useful for matching specific error conditions regardless of message casing.
|
|
140
|
+
*
|
|
141
|
+
* Consolidated from 8 duplicated patterns in error type matching:
|
|
142
|
+
* - `error.message.toLowerCase().includes('pattern')`
|
|
143
|
+
* - `message.toLowerCase().includes('insufficient')`
|
|
144
|
+
*
|
|
145
|
+
* @param message The error message to normalize
|
|
146
|
+
* @returns Lowercase version of the message
|
|
147
|
+
*
|
|
148
|
+
* @example Error pattern matching
|
|
149
|
+
* ```typescript
|
|
150
|
+
* import { errorMessageCaseNormalization } from '@gala-chain/launchpad-sdk';
|
|
151
|
+
*
|
|
152
|
+
* try {
|
|
153
|
+
* // ... operation
|
|
154
|
+
* } catch (error: any) {
|
|
155
|
+
* const normalized = errorMessageCaseNormalization(error.message);
|
|
156
|
+
* if (normalized.includes('insufficient balance')) {
|
|
157
|
+
* // Handle insufficient balance
|
|
158
|
+
* }
|
|
159
|
+
* }
|
|
160
|
+
* ```
|
|
161
|
+
*
|
|
162
|
+
* @example Transaction error categorization
|
|
163
|
+
* ```typescript
|
|
164
|
+
* import { errorMessageCaseNormalization } from '@gala-chain/launchpad-sdk';
|
|
165
|
+
*
|
|
166
|
+
* const errorMsg = 'TRANSACTION FAILED: Insufficient Balance';
|
|
167
|
+
* const normalized = errorMessageCaseNormalization(errorMsg);
|
|
168
|
+
*
|
|
169
|
+
* if (normalized.includes('insufficient')) {
|
|
170
|
+
* console.log('Balance error');
|
|
171
|
+
* }
|
|
172
|
+
* if (normalized.includes('transaction')) {
|
|
173
|
+
* console.log('Tx error');
|
|
174
|
+
* }
|
|
175
|
+
* ```
|
|
176
|
+
*
|
|
177
|
+
* @since 6.14.0
|
|
178
|
+
*/
|
|
179
|
+
export declare function errorMessageCaseNormalization(message: string): string;
|
|
180
|
+
/**
|
|
181
|
+
* Case-insensitive substring search helper.
|
|
182
|
+
*
|
|
183
|
+
* Checks if a message contains a search string in a case-insensitive manner.
|
|
184
|
+
* Useful for error pattern matching and string validation.
|
|
185
|
+
*
|
|
186
|
+
* Consolidated from 3 duplicated patterns of case-insensitive contains checks:
|
|
187
|
+
* - `error.message.toLowerCase().includes(pattern.toLowerCase())`
|
|
188
|
+
* - `response.toLowerCase().includes('error')`
|
|
189
|
+
*
|
|
190
|
+
* @param message The message to search within
|
|
191
|
+
* @param searchString The substring to search for
|
|
192
|
+
* @returns True if message contains the search string (case-insensitive)
|
|
193
|
+
*
|
|
194
|
+
* @example Error condition checking
|
|
195
|
+
* ```typescript
|
|
196
|
+
* import { normalizeErrorMessage } from '@gala-chain/launchpad-sdk';
|
|
197
|
+
*
|
|
198
|
+
* try {
|
|
199
|
+
* // ... operation
|
|
200
|
+
* } catch (error: any) {
|
|
201
|
+
* // OLD: error.message.toLowerCase().includes('invalid')
|
|
202
|
+
* // NEW:
|
|
203
|
+
* if (normalizeErrorMessage(error.message, 'INVALID')) {
|
|
204
|
+
* // Handle invalid input error
|
|
205
|
+
* }
|
|
206
|
+
* }
|
|
207
|
+
* ```
|
|
208
|
+
*
|
|
209
|
+
* @example API response checking
|
|
210
|
+
* ```typescript
|
|
211
|
+
* import { normalizeErrorMessage } from '@gala-chain/launchpad-sdk';
|
|
212
|
+
*
|
|
213
|
+
* const response = 'ERROR: Invalid Token Name';
|
|
214
|
+
* if (normalizeErrorMessage(response, 'invalid token')) {
|
|
215
|
+
* console.log('Token is invalid');
|
|
216
|
+
* }
|
|
217
|
+
* ```
|
|
218
|
+
*
|
|
219
|
+
* @since 6.14.0
|
|
220
|
+
*/
|
|
221
|
+
export declare function normalizeErrorMessage(message: string, searchString: string): boolean;
|
|
222
|
+
/**
|
|
223
|
+
* Check if two token pairs match in either order (bidirectional).
|
|
224
|
+
*
|
|
225
|
+
* Compares two pairs of tokens to see if they represent the same pair,
|
|
226
|
+
* accounting for different orderings (A,B matches B,A).
|
|
227
|
+
* Essential for pool pair matching in DEX operations.
|
|
228
|
+
*
|
|
229
|
+
* Consolidated from 4 duplicated patterns in bidirectional token matching:
|
|
230
|
+
* - `(token0 === tokenA && token1 === tokenB) || (token0 === tokenB && token1 === tokenA)`
|
|
231
|
+
* - Pool pair matching logic
|
|
232
|
+
*
|
|
233
|
+
* @param token0 First token in pair A
|
|
234
|
+
* @param token1 Second token in pair A
|
|
235
|
+
* @param tokenA First token in pair B
|
|
236
|
+
* @param tokenB Second token in pair B
|
|
237
|
+
* @returns True if both pairs represent the same token pair (in any order)
|
|
238
|
+
*
|
|
239
|
+
* @example Direct pool pair matching
|
|
240
|
+
* ```typescript
|
|
241
|
+
* import { bidirectionalTokenMatch } from '@gala-chain/launchpad-sdk';
|
|
242
|
+
*
|
|
243
|
+
* const poolToken0 = 'GALA';
|
|
244
|
+
* const poolToken1 = 'GUSDC';
|
|
245
|
+
*
|
|
246
|
+
* const searchToken0 = 'GUSDC';
|
|
247
|
+
* const searchToken1 = 'GALA';
|
|
248
|
+
*
|
|
249
|
+
* if (bidirectionalTokenMatch(poolToken0, poolToken1, searchToken0, searchToken1)) {
|
|
250
|
+
* // Found matching pool (order doesn't matter)
|
|
251
|
+
* }
|
|
252
|
+
* ```
|
|
253
|
+
*
|
|
254
|
+
* @example Finding matching DEX pool
|
|
255
|
+
* ```typescript
|
|
256
|
+
* import { bidirectionalTokenMatch } from '@gala-chain/launchpad-sdk';
|
|
257
|
+
*
|
|
258
|
+
* const targetPool = { token0: 'GALA', token1: 'GUSDC' };
|
|
259
|
+
* const allPools = [...];
|
|
260
|
+
*
|
|
261
|
+
* const match = allPools.find(pool =>
|
|
262
|
+
* bidirectionalTokenMatch(pool.token0, pool.token1, targetPool.token0, targetPool.token1)
|
|
263
|
+
* );
|
|
264
|
+
* ```
|
|
265
|
+
*
|
|
266
|
+
* @example Liquidity position matching
|
|
267
|
+
* ```typescript
|
|
268
|
+
* import { bidirectionalTokenMatch } from '@gala-chain/launchpad-sdk';
|
|
269
|
+
*
|
|
270
|
+
* const position = { token0: 'GUSDC', token1: 'GALA' };
|
|
271
|
+
* const newPoolTokens = { token0: 'GALA', token1: 'GUSDC' };
|
|
272
|
+
*
|
|
273
|
+
* if (bidirectionalTokenMatch(position.token0, position.token1, newPoolTokens.token0, newPoolTokens.token1)) {
|
|
274
|
+
* console.log('Position is in the same pool');
|
|
275
|
+
* }
|
|
276
|
+
* ```
|
|
277
|
+
*
|
|
278
|
+
* @since 6.14.0
|
|
279
|
+
*/
|
|
280
|
+
export declare function bidirectionalTokenMatch(token0: string, token1: string, tokenA: string, tokenB: string): boolean;
|
|
281
|
+
/**
|
|
282
|
+
* Extract and normalize hex address from pipe-delimited format.
|
|
283
|
+
*
|
|
284
|
+
* Parses addresses in formats like 'eth|0x1234...' or plain '0x...' formats
|
|
285
|
+
* and returns the hex portion. Returns null if format is invalid or no hex found.
|
|
286
|
+
*
|
|
287
|
+
* Consolidated from 6 duplicated patterns in address extraction:
|
|
288
|
+
* - `const [chain, address] = addressLike.split('|')`
|
|
289
|
+
* - Manual hex extraction and validation
|
|
290
|
+
*
|
|
291
|
+
* @param addressLike Address string in 'chain|0xhex' or '0xhex' format
|
|
292
|
+
* @returns Hex address portion (without '0x' prefix), or null if invalid
|
|
293
|
+
*
|
|
294
|
+
* @example Basic hex extraction
|
|
295
|
+
* ```typescript
|
|
296
|
+
* import { hexStringExtractionAndNormalization } from '@gala-chain/launchpad-sdk';
|
|
297
|
+
*
|
|
298
|
+
* const ethAddress = 'eth|0x1234567890abcdef1234567890abcdef12345678';
|
|
299
|
+
* const hex = hexStringExtractionAndNormalization(ethAddress);
|
|
300
|
+
* console.log(hex); // '1234567890abcdef1234567890abcdef12345678'
|
|
301
|
+
*
|
|
302
|
+
* const plainHex = '0xabcdef0123456789abcdef0123456789abcdef01';
|
|
303
|
+
* const result = hexStringExtractionAndNormalization(plainHex);
|
|
304
|
+
* console.log(result); // 'abcdef0123456789abcdef0123456789abcdef01'
|
|
305
|
+
* ```
|
|
306
|
+
*
|
|
307
|
+
* @example GSwap user asset lookup
|
|
308
|
+
* ```typescript
|
|
309
|
+
* import { hexStringExtractionAndNormalization } from '@gala-chain/launchpad-sdk';
|
|
310
|
+
*
|
|
311
|
+
* const walletAddress = 'eth|0x1234567890abcdef...';
|
|
312
|
+
* const hexOnly = hexStringExtractionAndNormalization(walletAddress);
|
|
313
|
+
* if (hexOnly) {
|
|
314
|
+
* const assets = await gswapService.getUserAssets(`eth|0x${hexOnly}`);
|
|
315
|
+
* }
|
|
316
|
+
* ```
|
|
317
|
+
*
|
|
318
|
+
* @example Error handling for invalid format
|
|
319
|
+
* ```typescript
|
|
320
|
+
* import { hexStringExtractionAndNormalization } from '@gala-chain/launchpad-sdk';
|
|
321
|
+
*
|
|
322
|
+
* const invalidAddress = 'not-an-address';
|
|
323
|
+
* const hex = hexStringExtractionAndNormalization(invalidAddress);
|
|
324
|
+
* if (hex === null) {
|
|
325
|
+
* console.error('Invalid address format');
|
|
326
|
+
* }
|
|
327
|
+
* ```
|
|
328
|
+
*
|
|
329
|
+
* @example Client-side address handling
|
|
330
|
+
* ```typescript
|
|
331
|
+
* import { hexStringExtractionAndNormalization } from '@gala-chain/launchpad-sdk';
|
|
332
|
+
*
|
|
333
|
+
* const address = 'client|mongo-id-12345';
|
|
334
|
+
* const hex = hexStringExtractionAndNormalization(address);
|
|
335
|
+
* // For non-hex formats, returns null
|
|
336
|
+
* if (hex === null) {
|
|
337
|
+
* // Not a hex address, handle differently
|
|
338
|
+
* }
|
|
339
|
+
* ```
|
|
340
|
+
*
|
|
341
|
+
* @since 6.14.0
|
|
342
|
+
*/
|
|
343
|
+
export declare function hexStringExtractionAndNormalization(addressLike: string): string | null;
|
|
344
|
+
/**
|
|
345
|
+
* Check if a string is empty after trimming.
|
|
346
|
+
*
|
|
347
|
+
* Returns true if the value is falsy, not a string, or empty after trimming.
|
|
348
|
+
* Returns false if value is a non-empty string after trimming.
|
|
349
|
+
*
|
|
350
|
+
* Useful for quick validation checks in conditional logic.
|
|
351
|
+
*
|
|
352
|
+
* Consolidated from 5 duplicated patterns:
|
|
353
|
+
* - `value?.trim().length === 0`
|
|
354
|
+
* - `!value || !value.trim()`
|
|
355
|
+
*
|
|
356
|
+
* @param value Unknown input value to check
|
|
357
|
+
* @returns True if value is empty after trimming (or not a string), false if non-empty string
|
|
358
|
+
*
|
|
359
|
+
* @example String validation
|
|
360
|
+
* ```typescript
|
|
361
|
+
* import { trimmedLengthValidation } from '@gala-chain/launchpad-sdk';
|
|
362
|
+
*
|
|
363
|
+
* if (trimmedLengthValidation('')) {
|
|
364
|
+
* console.log('Empty string'); // true
|
|
365
|
+
* }
|
|
366
|
+
*
|
|
367
|
+
* if (trimmedLengthValidation(' ')) {
|
|
368
|
+
* console.log('Whitespace only'); // true
|
|
369
|
+
* }
|
|
370
|
+
*
|
|
371
|
+
* if (!trimmedLengthValidation('Hello')) {
|
|
372
|
+
* console.log('Non-empty string'); // true
|
|
373
|
+
* }
|
|
374
|
+
* ```
|
|
375
|
+
*
|
|
376
|
+
* @example Chat message validation
|
|
377
|
+
* ```typescript
|
|
378
|
+
* import { trimmedLengthValidation } from '@gala-chain/launchpad-sdk';
|
|
379
|
+
*
|
|
380
|
+
* const userMessage = getUserInput();
|
|
381
|
+
* // OLD: if (userMessage?.trim().length === 0) { ... }
|
|
382
|
+
* // NEW:
|
|
383
|
+
* if (trimmedLengthValidation(userMessage)) {
|
|
384
|
+
* console.log('Message is empty, skipping');
|
|
385
|
+
* return;
|
|
386
|
+
* }
|
|
387
|
+
* // Message is valid, process it
|
|
388
|
+
* ```
|
|
389
|
+
*
|
|
390
|
+
* @example Conditional rendering
|
|
391
|
+
* ```typescript
|
|
392
|
+
* import { trimmedLengthValidation } from '@gala-chain/launchpad-sdk';
|
|
393
|
+
*
|
|
394
|
+
* const displayText = userComment;
|
|
395
|
+
* // Skip rendering if comment is empty
|
|
396
|
+
* if (!trimmedLengthValidation(displayText)) {
|
|
397
|
+
* return <CommentDisplay text={displayText.trim()} />;
|
|
398
|
+
* }
|
|
399
|
+
* ```
|
|
400
|
+
*
|
|
401
|
+
* @since 6.14.0
|
|
402
|
+
*/
|
|
403
|
+
export declare function trimmedLengthValidation(value: unknown): boolean;
|
|
404
|
+
//# sourceMappingURL=string-patterns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-patterns.d.ts","sourceRoot":"","sources":["../../../src/utils/string-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,GAAE,MAAU,GACpB,MAAM,GAAG,IAAI,CAkBf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEtF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAEpF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAKT;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,wBAAgB,mCAAmC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuBtF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK/D"}
|