{"version":3,"sources":["../src/helpers/CustomGeckoterminalError.ts","../src/helpers/request.ts","../src/helpers/validators.ts","../src/routes/networks.ts","../src/routes/dexes.ts","../src/routes/simple.ts","../src/constants/ohlcv.ts","../src/constants/common.ts","../src/constants/tokens.ts","../src/constants/pools.ts","../src/routes/ohlcv.ts","../src/routes/trades.ts","../src/routes/tokens.ts","../src/routes/pools.ts","../src/index.ts"],"names":["CustomGeckoterminalError","_CustomGeckoterminalError","message","CustomGeckoterminalError_default","DEFAULT_CONFIG","createAxiosInstance","config","axios","validateRequired","params","fieldNames","field","validateInclude","include","allowed","item","validatePage","page","validateAddresses","addresses","max","addressArray","validateEnum","value","fieldName","validateRange","min","BASE_PATH","Networks","axiosInstance","networks_default","Dexes","network","dexes_default","Simple","options","tokenAddresses","includeMarketCap","mcapFdvFallback","include24hrVol","include24hrPriceChange","includeTotalReserveInUsd","simple_default","VALID_AGGREGATES","TIME_FRAMES","CURRENCY_OPTIONS","LIMIT_RANGE","TOKEN_OPTIONS","ALLOWED_TOP_POOLS_INCLUDE","ALLOWED_POOLS_INCLUDE","MAX_ADDRESSES","ALLOWED_SORT_OPTIONS","ALLOWED_POOLS_INCLUDE_OPTIONS","ALLOWED_POOLS_DURATIONS","Ohlcv","poolAddress","timeFrame","aggregate","beforeTimestamp","limit","currency","includeEmptyIntervals","token","validAggregates","ohlcv_default","Trades","tradeVolumeInUsdGreaterThan","trades_default","Tokens","address","includeComposition","addressesParam","tokenAddress","sort","tokens_default","SORT_VALUES","Pools","includeVolumeBreakdown","dex","duration","query","pools_default","GeckoTerminal","instanceConfig","index_default"],"mappings":"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","file":"index.cjs","sourcesContent":["class CustomGeckoterminalError extends Error {\n  constructor(message: string) {\n    super(message);\n    this.name = 'GeckoterminalError';\n    Object.setPrototypeOf(this, CustomGeckoterminalError.prototype);\n  }\n}\n\nexport default CustomGeckoterminalError;\n","import axios, { type AxiosInstance, type CreateAxiosDefaults } from 'axios';\n\nconst DEFAULT_CONFIG: CreateAxiosDefaults = {\n  baseURL: 'https://api.geckoterminal.com/api/v2',\n  timeout: 10000,\n  headers: {\n    Accept: 'application/json',\n    'Content-Type': 'application/json',\n  },\n};\n\nfunction createAxiosInstance(config?: CreateAxiosDefaults): AxiosInstance {\n  return axios.create({\n    ...DEFAULT_CONFIG,\n    ...config,\n    headers: {\n      ...DEFAULT_CONFIG.headers,\n      ...config?.headers,\n    },\n  });\n}\n\nexport { createAxiosInstance, DEFAULT_CONFIG };\n","import CustomGeckoterminalError from './CustomGeckoterminalError';\n\n/**\n * Validates that required parameters are present and not empty\n */\nexport const validateRequired = (params: Record<string, any>, fieldNames: string[]): void => {\n  for (const field of fieldNames) {\n    if (!params[field]) {\n      throw new CustomGeckoterminalError(`${field} parameter is required`);\n    }\n  }\n};\n\n/**\n * Validates that include parameter only contains allowed values\n */\nexport const validateInclude = (include: string[] | undefined, allowed: readonly string[]): void => {\n  if (include && !include.every((item) => allowed.includes(item))) {\n    throw new CustomGeckoterminalError(`Include parameter can only contain: ${allowed.join(', ')}`);\n  }\n};\n\n/**\n * Validates that page number is valid (greater than 0)\n */\nexport const validatePage = (page: number): void => {\n  if (page < 1) {\n    throw new CustomGeckoterminalError('Page parameter must be greater than 0');\n  }\n};\n\n/**\n * Validates array of addresses\n */\nexport const validateAddresses = (addresses: string[] | string, max: number): void => {\n  const addressArray = Array.isArray(addresses) ? addresses : [addresses];\n\n  if (!addressArray || !addressArray.length) {\n    throw new CustomGeckoterminalError('Addresses parameter is required');\n  }\n\n  if (addressArray.length > max) {\n    throw new CustomGeckoterminalError(`Maximum ${max} addresses allowed`);\n  }\n};\n\n/**\n * Validates that a value is within allowed options\n */\nexport const validateEnum = <T extends readonly string[]>(value: string, allowed: T, fieldName: string): void => {\n  if (!allowed.includes(value as T[number])) {\n    throw new CustomGeckoterminalError(`Invalid ${fieldName}. Valid options are: ${allowed.join(', ')}`);\n  }\n};\n\n/**\n * Validates that a number is within a specific range\n */\nexport const validateRange = (value: number, min: number, max: number, fieldName: string): void => {\n  if (value < min || value > max) {\n    throw new CustomGeckoterminalError(`Invalid ${fieldName}. Must be between ${min} and ${max}.`);\n  }\n};\n","import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport type { NetworksResponse } from '../types';\nimport { validatePage } from '../helpers';\n\nconst BASE_PATH = '/networks';\n\nclass Networks {\n  constructor(private axiosInstance: AxiosInstance) {}\n\n  getNetworks(page: number = 1, config?: AxiosRequestConfig): Promise<AxiosResponse<NetworksResponse>> {\n    validatePage(page);\n\n    return this.axiosInstance.get<NetworksResponse>(BASE_PATH, {\n      params: { page, ...config?.params },\n      ...config,\n    });\n  }\n}\n\nexport default Networks;\n","import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport type { DexesResponse } from '../types';\nimport { validateRequired, validatePage } from '../helpers';\n\nconst BASE_PATH = '/networks';\n\nclass Dexes {\n  constructor(private axiosInstance: AxiosInstance) {}\n\n  getSupportedDeXes(\n    network: string,\n    page: number = 1,\n    config?: AxiosRequestConfig,\n  ): Promise<AxiosResponse<DexesResponse>> {\n    validateRequired({ network }, ['network']);\n    validatePage(page);\n\n    return this.axiosInstance.get<DexesResponse>(`${BASE_PATH}/${network}/dexes`, {\n      params: {\n        page,\n        ...config?.params,\n      },\n      ...config,\n    });\n  }\n}\n\nexport default Dexes;\n","import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport type { SimpleResponse, SimpleOptions } from '../types';\nimport { validateRequired } from '../helpers';\n\nconst BASE_PATH = '/simple';\n\nclass Simple {\n  constructor(private axiosInstance: AxiosInstance) {}\n\n  getTokenPriceByTokenAddress(\n    options: SimpleOptions,\n    config?: AxiosRequestConfig,\n  ): Promise<AxiosResponse<SimpleResponse>> {\n    const {\n      network,\n      tokenAddresses,\n      includeMarketCap = false,\n      mcapFdvFallback = false,\n      include24hrVol = false,\n      include24hrPriceChange = false,\n      includeTotalReserveInUsd = false,\n    } = options;\n\n    validateRequired(options, ['network', 'tokenAddresses']);\n\n    return this.axiosInstance.get<SimpleResponse>(`${BASE_PATH}/networks/${network}/token_price/${tokenAddresses}`, {\n      params: {\n        include_market_cap: includeMarketCap,\n        mcap_fdv_fallback: mcapFdvFallback,\n        include_24hr_vol: include24hrVol,\n        include_24hr_price_change: include24hrPriceChange,\n        include_total_reserve_in_usd: includeTotalReserveInUsd,\n        ...config?.params,\n      },\n      ...config,\n    });\n  }\n}\n\nexport default Simple;\n","import type { TimeFrame } from '../types';\n\nconst VALID_AGGREGATES = {\n  day: ['1'],\n  hour: ['1', '4', '12'],\n  minute: ['1', '5', '15'],\n} as const satisfies Record<TimeFrame, string[]>;\n\nconst TIME_FRAMES = ['day', 'hour', 'minute'] as const;\nconst CURRENCY_OPTIONS = ['usd', 'token'] as const;\n\nconst LIMIT_RANGE = { min: 1, max: 1000 } as const;\n\nexport { VALID_AGGREGATES, TIME_FRAMES, CURRENCY_OPTIONS, LIMIT_RANGE };\n","const TOKEN_OPTIONS = ['base', 'quote'] as const;\n\nexport { TOKEN_OPTIONS };\n","const ALLOWED_TOP_POOLS_INCLUDE = ['top_pools'] as const;\nconst ALLOWED_POOLS_INCLUDE = ['base_token', 'quote_token', 'dex'] as const;\nconst MAX_ADDRESSES = 30;\nconst ALLOWED_SORT_OPTIONS = [\n  'h24_volume_usd_desc',\n  'h24_tx_count_desc',\n  'h24_volume_usd_liquidity_desc',\n  'liquidity_asc',\n] as const;\n\nexport { ALLOWED_TOP_POOLS_INCLUDE, ALLOWED_POOLS_INCLUDE, MAX_ADDRESSES, ALLOWED_SORT_OPTIONS };\n","const ALLOWED_POOLS_INCLUDE_OPTIONS = ['base_token', 'quote_token', 'dex', 'network'] as const;\nconst ALLOWED_POOLS_DURATIONS = ['5m', '1h', '6h', '24h'] as const;\n\nexport { ALLOWED_POOLS_INCLUDE_OPTIONS, ALLOWED_POOLS_DURATIONS };\n","import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { validateEnum, validateRange } from '../helpers';\nimport type { OhlcvOptions, OhlcvResponse } from '../types';\nimport { LIMIT_RANGE, TIME_FRAMES, VALID_AGGREGATES } from '../constants';\n\nconst BASE_PATH = '/networks';\n\nclass Ohlcv {\n  constructor(private axiosInstance: AxiosInstance) {}\n\n  async getOhlcv(options: OhlcvOptions, config?: AxiosRequestConfig): Promise<AxiosResponse<OhlcvResponse>> {\n    const {\n      network = 'eth',\n      poolAddress,\n      timeFrame = 'day',\n      aggregate = '1',\n      beforeTimestamp,\n      limit = 100,\n      currency = 'usd',\n      includeEmptyIntervals = false,\n      token = 'base',\n    } = options;\n\n    validateEnum(timeFrame, TIME_FRAMES, 'timeFrame');\n\n    const validAggregates: string[] = VALID_AGGREGATES[timeFrame];\n    validateEnum(aggregate, validAggregates as readonly string[], `aggregate for timeFrame '${timeFrame}'`);\n\n    validateRange(limit, LIMIT_RANGE.min, LIMIT_RANGE.max, 'limit');\n\n    return this.axiosInstance.get<OhlcvResponse>(`${BASE_PATH}/${network}/pools/${poolAddress}/ohlcv/${timeFrame}`, {\n      params: {\n        aggregate,\n        before_timestamp: beforeTimestamp,\n        limit,\n        currency,\n        include_empty_intervals: includeEmptyIntervals,\n        token,\n        ...config?.params,\n      },\n      ...config,\n    });\n  }\n}\n\nexport default Ohlcv;\n","import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport type { TradesOptions, TradesResponse } from '../types';\nimport { validateRequired } from '../helpers';\n\nconst BASE_PATH = '/networks';\n\nclass Trades {\n  constructor(private axiosInstance: AxiosInstance) {}\n\n  getPast24HrTradesByPoolAddress(\n    options: TradesOptions,\n    config?: AxiosRequestConfig,\n  ): Promise<AxiosResponse<TradesResponse>> {\n    const { network, poolAddress, tradeVolumeInUsdGreaterThan = 0, token = 'base' } = options;\n\n    validateRequired(options, ['network', 'poolAddress']);\n\n    return this.axiosInstance.get<TradesResponse>(`${BASE_PATH}/${network}/pools/${poolAddress}/trades`, {\n      params: {\n        trade_volume_in_usd_greater_than: tradeVolumeInUsdGreaterThan,\n        token,\n        ...config?.params,\n      },\n      ...config,\n    });\n  }\n}\n\nexport default Trades;\n","import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport type {\n  TokenResponse,\n  TokensMultiResponse,\n  TokenPoolsResponse,\n  TokenInfoResponse,\n  TokensInfoRecentlyUpdatedResponse,\n  TokensOptions,\n  TokensMultiOptions,\n  TokenPoolsOptions,\n  TokenInfoOptions,\n} from '../types';\nimport { validateRequired, validateInclude, validateAddresses, validateEnum } from '../helpers';\nimport { ALLOWED_POOLS_INCLUDE, ALLOWED_SORT_OPTIONS, ALLOWED_TOP_POOLS_INCLUDE, MAX_ADDRESSES } from '../constants';\n\nconst BASE_PATH = '/networks';\n\nclass Tokens {\n  constructor(private axiosInstance: AxiosInstance) {}\n\n  getToken(options: TokensOptions, config?: AxiosRequestConfig): Promise<AxiosResponse<TokenResponse>> {\n    const { network, address, include = ['top_pools'], includeComposition = false } = options;\n\n    validateRequired(options, ['network', 'address']);\n    validateInclude(include, ALLOWED_TOP_POOLS_INCLUDE);\n\n    return this.axiosInstance.get<TokenResponse>(`${BASE_PATH}/${network}/tokens/${address}`, {\n      params: {\n        include: include?.join(','),\n        include_composition: includeComposition,\n        ...config?.params,\n      },\n      ...config,\n    });\n  }\n\n  getMultipleTokens(\n    options: TokensMultiOptions,\n    config?: AxiosRequestConfig,\n  ): Promise<AxiosResponse<TokensMultiResponse>> {\n    const { network, addresses, include = [], includeComposition = false } = options;\n\n    validateRequired(options, ['network']);\n    validateAddresses(addresses, MAX_ADDRESSES);\n\n    if (include.length) {\n      validateInclude(include, ALLOWED_TOP_POOLS_INCLUDE);\n    }\n\n    const addressesParam = Array.isArray(addresses) ? addresses.join(',') : addresses;\n\n    return this.axiosInstance.get<TokensMultiResponse>(`${BASE_PATH}/${network}/tokens/multi/${addressesParam}`, {\n      params: {\n        include: include.length ? include.join(',') : undefined,\n        include_composition: includeComposition,\n        ...config?.params,\n      },\n      ...config,\n    });\n  }\n\n  getTokenPools(options: TokenPoolsOptions, config?: AxiosRequestConfig): Promise<AxiosResponse<TokenPoolsResponse>> {\n    const { network, tokenAddress, include, page = 1, sort = 'h24_volume_usd_liquidity_desc' } = options;\n\n    validateRequired(options, ['network', 'tokenAddress']);\n    validateInclude(include, ALLOWED_POOLS_INCLUDE);\n    validateEnum(sort, ALLOWED_SORT_OPTIONS, 'sort');\n\n    return this.axiosInstance.get<TokenPoolsResponse>(`${BASE_PATH}/${network}/tokens/${tokenAddress}/pools`, {\n      params: {\n        include: include?.join(','),\n        page,\n        sort,\n        ...config?.params,\n      },\n      ...config,\n    });\n  }\n\n  getTokenInfo(options: TokenInfoOptions, config?: AxiosRequestConfig): Promise<AxiosResponse<TokenInfoResponse>> {\n    const { network, tokenAddress } = options;\n\n    validateRequired(options, ['network', 'tokenAddress']);\n\n    return this.axiosInstance.get<TokenInfoResponse>(`${BASE_PATH}/${network}/tokens/${tokenAddress}/info`, config);\n  }\n\n  getRecentlyUpdatedTokensInfo(\n    options?: { network?: string; include?: readonly string[] },\n    config?: AxiosRequestConfig,\n  ): Promise<AxiosResponse<TokensInfoRecentlyUpdatedResponse>> {\n    const { network, include = ['network'] } = options || {};\n\n    return this.axiosInstance.get<TokensInfoRecentlyUpdatedResponse>('/tokens/info_recently_updated', {\n      params: {\n        include: include?.join(','),\n        network,\n        ...config?.params,\n      },\n      ...config,\n    });\n  }\n}\n\nexport default Tokens;\n","import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport type {\n  PoolResponse,\n  PoolsResponse,\n  PoolsMultiResponse,\n  PoolTokensInfoResponse,\n  PoolOptions,\n  PoolsMultiOptions,\n  TopPoolsOptions,\n  NewPoolsOptions,\n  TrendingPoolsOptions,\n  SearchPoolsOptions,\n  DexPoolsOptions,\n  PoolTokensInfoOptions,\n} from '../types';\nimport { validateRequired, validateInclude, validateAddresses, validateEnum } from '../helpers';\nimport {\n  ALLOWED_POOLS_INCLUDE_OPTIONS,\n  ALLOWED_POOLS_DURATIONS,\n  ALLOWED_POOLS_INCLUDE,\n  MAX_ADDRESSES,\n} from '../constants';\n\nconst BASE_PATH = '/networks';\nconst SORT_VALUES = ['h24_volume_usd_desc', 'h24_tx_count_desc'] as const;\n\nclass Pools {\n  constructor(private axiosInstance: AxiosInstance) {}\n\n  getPool(options: PoolOptions, config?: AxiosRequestConfig): Promise<AxiosResponse<PoolResponse>> {\n    const { network, address, include, includeVolumeBreakdown = false, includeComposition = false } = options;\n\n    validateRequired(options, ['network', 'address']);\n    validateInclude(include, ALLOWED_POOLS_INCLUDE);\n\n    return this.axiosInstance.get<PoolResponse>(`${BASE_PATH}/${network}/pools/${address}`, {\n      params: {\n        include: include?.join(','),\n        include_volume_breakdown: includeVolumeBreakdown,\n        include_composition: includeComposition,\n        ...config?.params,\n      },\n      ...config,\n    });\n  }\n\n  getMultiplePools(\n    options: PoolsMultiOptions,\n    config?: AxiosRequestConfig,\n  ): Promise<AxiosResponse<PoolsMultiResponse>> {\n    const { network, addresses, include, includeVolumeBreakdown = false, includeComposition = false } = options;\n\n    validateRequired(options, ['network']);\n    validateAddresses(addresses, MAX_ADDRESSES);\n    validateInclude(include, ALLOWED_POOLS_INCLUDE);\n\n    const addressesParam = Array.isArray(addresses) ? addresses.join(',') : addresses;\n\n    return this.axiosInstance.get<PoolsMultiResponse>(`${BASE_PATH}/${network}/pools/multi/${addressesParam}`, {\n      params: {\n        include: include?.join(','),\n        include_volume_breakdown: includeVolumeBreakdown,\n        include_composition: includeComposition,\n        ...config?.params,\n      },\n      ...config,\n    });\n  }\n\n  getTopPools(options: TopPoolsOptions, config?: AxiosRequestConfig): Promise<AxiosResponse<PoolsResponse>> {\n    const { network, include, page = 1, sort = 'h24_tx_count_desc' } = options;\n\n    validateRequired(options, ['network']);\n    validateInclude(include, ALLOWED_POOLS_INCLUDE);\n    validateEnum(sort, SORT_VALUES, 'sort');\n\n    return this.axiosInstance.get<PoolsResponse>(`${BASE_PATH}/${network}/pools`, {\n      params: {\n        include: include?.join(','),\n        page,\n        sort,\n        ...config?.params,\n      },\n      ...config,\n    });\n  }\n\n  getDexPools(options: DexPoolsOptions, config?: AxiosRequestConfig): Promise<AxiosResponse<PoolsResponse>> {\n    const { network, dex, include, page = 1, sort = 'h24_tx_count_desc' } = options;\n\n    validateRequired(options, ['network', 'dex']);\n    validateInclude(include, ALLOWED_POOLS_INCLUDE);\n    validateEnum(sort, SORT_VALUES, 'sort');\n\n    return this.axiosInstance.get<PoolsResponse>(`${BASE_PATH}/${network}/dexes/${dex}/pools`, {\n      params: {\n        include: include?.join(','),\n        page,\n        sort,\n        ...config?.params,\n      },\n      ...config,\n    });\n  }\n\n  getTrendingPools(options: TrendingPoolsOptions, config?: AxiosRequestConfig): Promise<AxiosResponse<PoolsResponse>> {\n    const { network, include, page = 1, duration = '24h' } = options;\n\n    validateRequired(options, ['network']);\n    validateInclude(include, ALLOWED_POOLS_INCLUDE);\n    validateEnum(duration, ALLOWED_POOLS_DURATIONS, 'duration');\n\n    return this.axiosInstance.get<PoolsResponse>(`${BASE_PATH}/${network}/trending_pools`, {\n      params: {\n        include: include?.join(','),\n        page,\n        duration,\n        ...config?.params,\n      },\n      ...config,\n    });\n  }\n\n  getNewPools(options?: NewPoolsOptions, config?: AxiosRequestConfig): Promise<AxiosResponse<PoolsResponse>> {\n    const { network, include, page = 1 } = options || {};\n\n    if (network) {\n      validateInclude(include, ALLOWED_POOLS_INCLUDE);\n\n      return this.axiosInstance.get<PoolsResponse>(`${BASE_PATH}/${network}/new_pools`, {\n        params: {\n          include: include?.join(','),\n          page,\n          ...config?.params,\n        },\n        ...config,\n      });\n    }\n\n    validateInclude(include, ALLOWED_POOLS_INCLUDE_OPTIONS);\n\n    return this.axiosInstance.get<PoolsResponse>('/networks/new_pools', {\n      params: {\n        include: include?.join(','),\n        page,\n        ...config?.params,\n      },\n      ...config,\n    });\n  }\n\n  searchPools(options: SearchPoolsOptions, config?: AxiosRequestConfig): Promise<AxiosResponse<PoolsResponse>> {\n    const { query, network, include, page = 1 } = options;\n\n    validateRequired(options, ['query']);\n    validateInclude(include, ALLOWED_POOLS_INCLUDE);\n\n    return this.axiosInstance.get<PoolsResponse>('/search/pools', {\n      params: {\n        query,\n        network,\n        include: include?.join(','),\n        page,\n        ...config?.params,\n      },\n      ...config,\n    });\n  }\n\n  getPoolTokensInfo(\n    options: PoolTokensInfoOptions,\n    config?: AxiosRequestConfig,\n  ): Promise<AxiosResponse<PoolTokensInfoResponse>> {\n    const { network, poolAddress } = options;\n\n    validateRequired(options, ['network', 'poolAddress']);\n\n    return this.axiosInstance.get<PoolTokensInfoResponse>(`${BASE_PATH}/${network}/pools/${poolAddress}/info`, config);\n  }\n}\n\nexport default Pools;\n","import type { AxiosInstance, CreateAxiosDefaults } from 'axios';\nimport { NetworksRoute, DexesRoute, SimpleRoute, OhlcvRoute, TradesRoute, TokensRoute, PoolsRoute } from './routes';\nimport { createAxiosInstance } from './helpers';\n\nclass GeckoTerminal {\n  private readonly axiosInstance: AxiosInstance;\n\n  public networks: NetworksRoute;\n  public dexes: DexesRoute;\n  public simple: SimpleRoute;\n  public ohlcv: OhlcvRoute;\n  public trades: TradesRoute;\n  public tokens: TokensRoute;\n  public pools: PoolsRoute;\n\n  constructor(instanceConfig?: CreateAxiosDefaults) {\n    this.axiosInstance = createAxiosInstance(instanceConfig);\n\n    this.networks = new NetworksRoute(this.axiosInstance);\n    this.dexes = new DexesRoute(this.axiosInstance);\n    this.simple = new SimpleRoute(this.axiosInstance);\n    this.ohlcv = new OhlcvRoute(this.axiosInstance);\n    this.trades = new TradesRoute(this.axiosInstance);\n    this.tokens = new TokensRoute(this.axiosInstance);\n    this.pools = new PoolsRoute(this.axiosInstance);\n  }\n\n  get interceptors() {\n    return this.axiosInstance.interceptors;\n  }\n}\n\nexport type * from './types';\nexport * from './constants';\nexport default GeckoTerminal;\n"]}