@mobula_labs/types 0.1.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.
Files changed (105) hide show
  1. package/README.md +380 -0
  2. package/dist/cjs/index.cjs +6405 -0
  3. package/dist/cjs/index.cjs.map +105 -0
  4. package/dist/esm/index.js +5262 -0
  5. package/dist/esm/index.js.map +105 -0
  6. package/dist/index.d.ts +89 -0
  7. package/dist/utils/constants/constants.d.ts +18 -0
  8. package/dist/utils/functions/bigintAbs.d.ts +1 -0
  9. package/dist/utils/functions/period.d.ts +3 -0
  10. package/dist/utils/functions/queryFilters.d.ts +21 -0
  11. package/dist/utils/functions/zodUtils.d.ts +15 -0
  12. package/dist/utils/schemas/BaseMessage.d.ts +27 -0
  13. package/dist/utils/schemas/BigIntLax.d.ts +4 -0
  14. package/dist/utils/schemas/DateQuery.d.ts +4 -0
  15. package/dist/utils/schemas/EnrichedHoldersData.d.ts +294 -0
  16. package/dist/utils/schemas/EnrichedMarketData.d.ts +7638 -0
  17. package/dist/utils/schemas/Filter.d.ts +35 -0
  18. package/dist/utils/schemas/MarketDetailsOutput.d.ts +2168 -0
  19. package/dist/utils/schemas/SecuritySchemas.d.ts +151 -0
  20. package/dist/utils/schemas/StringOrArray.d.ts +2 -0
  21. package/dist/utils/schemas/TokenDetailsOutput.d.ts +923 -0
  22. package/dist/utils/schemas/WalletDeployerSchema.d.ts +3735 -0
  23. package/dist/v1/all/AllAssetSchema.d.ts +117 -0
  24. package/dist/v1/all/BlockchainSchema.d.ts +333 -0
  25. package/dist/v1/market/CreateFeedSchema.d.ts +11 -0
  26. package/dist/v1/market/FundingRateSchema.d.ts +218 -0
  27. package/dist/v1/market/HoldersSchema.d.ts +96 -0
  28. package/dist/v1/market/MarketBlockchainPairsSchema.d.ts +1598 -0
  29. package/dist/v1/market/MarketBlockchainStatsSchema.d.ts +70 -0
  30. package/dist/v1/market/MarketDataSchema.d.ts +315 -0
  31. package/dist/v1/market/MarketHistoryPairSchema.d.ts +83 -0
  32. package/dist/v1/market/MarketHistorySchema.d.ts +80 -0
  33. package/dist/v1/market/MarketMultiDataSchema.d.ts +387 -0
  34. package/dist/v1/market/MarketMultiHistorySchema.d.ts +86 -0
  35. package/dist/v1/market/MarketMultiPricesSchema.d.ts +60 -0
  36. package/dist/v1/market/MarketNftSchema.d.ts +35 -0
  37. package/dist/v1/market/MarketPairSchema.d.ts +2119 -0
  38. package/dist/v1/market/MarketPairsSchema.d.ts +2803 -0
  39. package/dist/v1/market/MarketQuerySchema.d.ts +138 -0
  40. package/dist/v1/market/MarketSparklineSchema.d.ts +32 -0
  41. package/dist/v1/market/MarketTokenVsMarketSchema.d.ts +121 -0
  42. package/dist/v1/market/MarketTotalSchema.d.ts +15 -0
  43. package/dist/v1/market/MarketTradesPairSchema.d.ts +127 -0
  44. package/dist/v1/metadata/MetadataCategoriesSchema.d.ts +18 -0
  45. package/dist/v1/metadata/MetadataNewsSchema.d.ts +106 -0
  46. package/dist/v1/metadata/MetadataSchema.d.ts +941 -0
  47. package/dist/v1/metadata/MetadataTrendingsSchema.d.ts +84 -0
  48. package/dist/v1/metadata/SystemMetadataSchema.d.ts +161 -0
  49. package/dist/v1/misc/ListingStatusSchema.d.ts +8 -0
  50. package/dist/v1/misc/SubmitTokenSchema.d.ts +149 -0
  51. package/dist/v1/misc/UploadLogoSchema.d.ts +11 -0
  52. package/dist/v1/pulse/PulseSchema.d.ts +27561 -0
  53. package/dist/v1/search/SearchSchema.d.ts +3686 -0
  54. package/dist/v1/token/FirstBuyerSchema.d.ts +63 -0
  55. package/dist/v1/wallet/BalanceUSDSchema.d.ts +17 -0
  56. package/dist/v1/wallet/DeployerSchema.d.ts +2196 -0
  57. package/dist/v1/wallet/HistorySchema.d.ts +102 -0
  58. package/dist/v1/wallet/WalletLabelSchema.d.ts +35 -0
  59. package/dist/v1/wallet/WalletNFTSchema.d.ts +159 -0
  60. package/dist/v1/wallet/WalletPortfolioSchema.d.ts +2644 -0
  61. package/dist/v1/wallet/WalletSmartMoneySchema.d.ts +115 -0
  62. package/dist/v1/wallet/WalletTradesSchema.d.ts +2241 -0
  63. package/dist/v1/wallet/WalletTransactionSchema.d.ts +1093 -0
  64. package/dist/v2/asset/AssetDetailsSchema.d.ts +7393 -0
  65. package/dist/v2/asset/AssetPriceHistorySchema.d.ts +268 -0
  66. package/dist/v2/market/MarketDetailsSchema.d.ts +6393 -0
  67. package/dist/v2/market/MarketOHLCVHistorySchema.d.ts +241 -0
  68. package/dist/v2/perp/PerpModels.d.ts +523 -0
  69. package/dist/v2/perp/PerpOrderQuotingSchema.d.ts +56 -0
  70. package/dist/v2/swap/SwapQuotingBatchOutput.d.ts +3623 -0
  71. package/dist/v2/swap/SwapQuotingBatchSchema.d.ts +156 -0
  72. package/dist/v2/swap/SwapQuotingOutput.d.ts +2850 -0
  73. package/dist/v2/swap/SwapQuotingSchema.d.ts +89 -0
  74. package/dist/v2/swap/SwapSendOutput.d.ts +32 -0
  75. package/dist/v2/swap/SwapSendSchema.d.ts +12 -0
  76. package/dist/v2/token/TokenDetailsSchema.d.ts +3063 -0
  77. package/dist/v2/token/TokenKlineBsPointSchema.d.ts +137 -0
  78. package/dist/v2/token/TokenMarketsSchema.d.ts +5307 -0
  79. package/dist/v2/token/TokenOHLCVHistorySchema.d.ts +241 -0
  80. package/dist/v2/token/TokenPositionsSchema.d.ts +299 -0
  81. package/dist/v2/token/TokenSecurityOutput.d.ts +182 -0
  82. package/dist/v2/token/TokenSecurityQuery.d.ts +15 -0
  83. package/dist/v2/token/TokenSecuritySchema.d.ts +4 -0
  84. package/dist/v2/token/TokenTradesSchema.d.ts +18991 -0
  85. package/dist/v2/wallet/WalleAnalysisQuerySchema.d.ts +1135 -0
  86. package/dist/v2/wallet/WalleFundingQuerySchema.d.ts +57 -0
  87. package/dist/v2/wallet/WalletActivityV2Schema.d.ts +3303 -0
  88. package/dist/v2/wallet/WalletDeployerSchema.d.ts +2198 -0
  89. package/dist/v2/wallet/WalletPerpsPositionsSchema.d.ts +622 -0
  90. package/dist/v2/wallet/WalletPositionsSchema.d.ts +4332 -0
  91. package/dist/v2/wallet/WalletTokenBalancesSchema.d.ts +517 -0
  92. package/dist/wss/BalancePayloadSchema.d.ts +65 -0
  93. package/dist/wss/FastTradePayloadSchema.d.ts +67 -0
  94. package/dist/wss/FundingPayloadSchema.d.ts +24 -0
  95. package/dist/wss/HoldersPayloadSchema.d.ts +35 -0
  96. package/dist/wss/MarketDetailsPayloadSchema.d.ts +36 -0
  97. package/dist/wss/MarketPayloadSchema.d.ts +53 -0
  98. package/dist/wss/OhlcvPayloadSchema.d.ts +44 -0
  99. package/dist/wss/PairsPayloadSchema.d.ts +30 -0
  100. package/dist/wss/PositionPayloadSchema.d.ts +76 -0
  101. package/dist/wss/TokenDetailsPayloadSchema.d.ts +36 -0
  102. package/dist/wss/aggregated-feed/FeedSchema.d.ts +113 -0
  103. package/dist/wss/pulse/PausePulsePayloadSchema.d.ts +12 -0
  104. package/dist/wss/stream/StreamPayloadSchema.d.ts +83 -0
  105. package/package.json +59 -0
@@ -0,0 +1,105 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/constants/constants.ts", "../../src/utils/functions/bigintAbs.ts", "../../src/utils/functions/period.ts", "../../src/utils/functions/zodUtils.ts", "../../src/utils/schemas/BigIntLax.ts", "../../src/utils/schemas/EnrichedHoldersData.ts", "../../src/utils/schemas/EnrichedMarketData.ts", "../../src/utils/schemas/SecuritySchemas.ts", "../../src/v1/all/AllAssetSchema.ts", "../../src/v1/all/BlockchainSchema.ts", "../../src/v1/market/CreateFeedSchema.ts", "../../src/v1/market/FundingRateSchema.ts", "../../src/v1/market/HoldersSchema.ts", "../../src/v1/market/MarketBlockchainPairsSchema.ts", "../../src/v1/market/MarketBlockchainStatsSchema.ts", "../../src/v1/market/MarketDataSchema.ts", "../../src/v1/market/MarketHistoryPairSchema.ts", "../../src/utils/schemas/DateQuery.ts", "../../src/v1/market/MarketHistorySchema.ts", "../../src/v1/market/MarketMultiDataSchema.ts", "../../src/utils/schemas/StringOrArray.ts", "../../src/v1/market/MarketMultiHistorySchema.ts", "../../src/v1/market/MarketMultiPricesSchema.ts", "../../src/v1/market/MarketNftSchema.ts", "../../src/v1/market/MarketPairSchema.ts", "../../src/v1/market/MarketPairsSchema.ts", "../../src/v1/market/MarketQuerySchema.ts", "../../src/v1/market/MarketSparklineSchema.ts", "../../src/v1/market/MarketTokenVsMarketSchema.ts", "../../src/v1/market/MarketTotalSchema.ts", "../../src/v1/market/MarketTradesPairSchema.ts", "../../src/v1/metadata/MetadataCategoriesSchema.ts", "../../src/v1/metadata/MetadataNewsSchema.ts", "../../../../node_modules/@asteasolutions/zod-to-openapi/dist/index.cjs", "../../src/v1/metadata/MetadataSchema.ts", "../../src/v1/metadata/MetadataTrendingsSchema.ts", "../../src/v1/metadata/SystemMetadataSchema.ts", "../../src/v1/misc/ListingStatusSchema.ts", "../../src/v1/misc/SubmitTokenSchema.ts", "../../src/v1/misc/UploadLogoSchema.ts", "../../src/v1/pulse/PulseSchema.ts", "../../src/v1/search/SearchSchema.ts", "../../src/utils/schemas/TokenDetailsOutput.ts", "../../src/v1/token/FirstBuyerSchema.ts", "../../src/v1/wallet/BalanceUSDSchema.ts", "../../src/utils/schemas/WalletDeployerSchema.ts", "../../src/v1/wallet/DeployerSchema.ts", "../../src/v1/wallet/HistorySchema.ts", "../../src/v1/wallet/WalletLabelSchema.ts", "../../src/v1/wallet/WalletNFTSchema.ts", "../../src/v1/wallet/WalletPortfolioSchema.ts", "../../src/v1/wallet/WalletSmartMoneySchema.ts", "../../src/v1/wallet/WalletTradesSchema.ts", "../../src/v1/wallet/WalletTransactionSchema.ts", "../../src/v2/asset/AssetDetailsSchema.ts", "../../src/v2/asset/AssetPriceHistorySchema.ts", "../../src/v2/market/MarketDetailsSchema.ts", "../../src/utils/schemas/MarketDetailsOutput.ts", "../../src/v2/perp/PerpModels.ts", "../../src/v2/market/MarketOHLCVHistorySchema.ts", "../../src/v2/perp/PerpOrderQuotingSchema.ts", "../../src/v2/swap/SwapQuotingBatchOutput.ts", "../../src/v2/swap/SwapQuotingOutput.ts", "../../src/v2/swap/SwapQuotingBatchSchema.ts", "../../src/v2/swap/SwapQuotingSchema.ts", "../../src/v2/swap/SwapSendOutput.ts", "../../src/v2/swap/SwapSendSchema.ts", "../../src/v2/token/TokenDetailsSchema.ts", "../../src/v2/token/TokenKlineBsPointSchema.ts", "../../src/v2/token/TokenMarketsSchema.ts", "../../src/v2/token/TokenOHLCVHistorySchema.ts", "../../src/v2/token/TokenPositionsSchema.ts", "../../src/v2/token/TokenSecurityOutput.ts", "../../src/v2/token/TokenSecurityQuery.ts", "../../src/v2/token/TokenTradesSchema.ts", "../../src/v2/wallet/WalleAnalysisQuerySchema.ts", "../../src/v2/wallet/WalleFundingQuerySchema.ts", "../../src/v2/wallet/WalletActivityV2Schema.ts", "../../src/v2/wallet/WalletDeployerSchema.ts", "../../src/v2/wallet/WalletPerpsPositionsSchema.ts", "../../src/v2/wallet/WalletPositionsSchema.ts", "../../src/v2/wallet/WalletTokenBalancesSchema.ts", "../../src/wss/aggregated-feed/FeedSchema.ts", "../../src/wss/BalancePayloadSchema.ts", "../../src/wss/FastTradePayloadSchema.ts", "../../src/wss/FundingPayloadSchema.ts", "../../src/wss/HoldersPayloadSchema.ts", "../../src/wss/MarketDetailsPayloadSchema.ts", "../../src/wss/MarketPayloadSchema.ts", "../../src/wss/OhlcvPayloadSchema.ts", "../../src/wss/PairsPayloadSchema.ts", "../../src/wss/PositionPayloadSchema.ts", "../../src/wss/pulse/PausePulsePayloadSchema.ts", "../../src/wss/stream/StreamPayloadSchema.ts", "../../src/utils/schemas/Filter.ts", "../../src/wss/TokenDetailsPayloadSchema.ts"],
4
+ "sourcesContent": [
5
+ "export enum Tags {\n SNIPER = 'sniper',\n INSIDER = 'insider',\n BUNDLER = 'bundler',\n PRO_TRADER = 'proTrader',\n SMART_TRADER = 'smartTrader',\n FRESH_TRADER = 'freshTrader',\n DEV = 'dev',\n LIQUIDITY_POOL = 'liquidityPool',\n}\n\nexport enum SwapType {\n REGULAR = 'REGULAR',\n MEV = 'MEV',\n MEV_SANDWICHED = 'MEV_SANDWICHED',\n WITHDRAWAL = 'WITHDRAWAL',\n DEPOSIT = 'DEPOSIT',\n BOND = 'BOND',\n}\n",
6
+ "export function bigintAbs(value: bigint): bigint {\n return value < 0n ? -value : value;\n}\n",
7
+ "export default function normalizePeriod(period: string, defaultPeriod = '1h') {\n switch (period.toLowerCase()) {\n case '1s':\n return '1s';\n case '5s':\n return '5s';\n case '15s':\n return '15s';\n case '30s':\n return '30s';\n case '1':\n case '1m':\n case '1min':\n return '1m';\n case '5':\n case '5m':\n case '5min':\n return '5m';\n case '15':\n case '15m':\n case '15min':\n return '15m';\n case '60':\n case '1h':\n return '1h';\n case '1d':\n return '1d';\n case '1w':\n return '1w';\n case '1month':\n return '1M';\n default:\n return defaultPeriod;\n }\n}\n\nexport function getPeriodSeconds(period: string): number {\n switch (period) {\n case '1s':\n return 1;\n case '5s':\n return 5;\n case '15s':\n return 15;\n case '30s':\n return 30;\n case '1m':\n return 60;\n case '5m':\n return 5 * 60;\n case '15m':\n return 15 * 60;\n case '1h':\n return 60 * 60;\n case '1d':\n return 24 * 60 * 60;\n case '1w':\n return 7 * 24 * 60 * 60;\n case '1M':\n return 30 * 24 * 60 * 60;\n default:\n throw new Error('Invalid bar value');\n }\n}\n\nexport function getBucketExpression(period: string): string {\n // Postgres expression to truncate \"date\" column to the start of the bucket\n // using DATE_TRUNC + interval arithmetic instead of manual epoch math.\n switch (period) {\n case '1s':\n return `date_trunc('second', date)`;\n case '5s':\n return `\n date_trunc('minute', date)\n + floor(extract(second from date)::int / 5) * interval '5 second'\n `;\n case '15s':\n return `\n date_trunc('minute', date)\n + floor(extract(second from date)::int / 15) * interval '15 second'\n `;\n case '30s':\n return `\n date_trunc('minute', date)\n + floor(extract(second from date)::int / 30) * interval '30 second'\n `;\n case '1m':\n return `date_trunc('minute', date)`;\n case '5m':\n return `\n date_trunc('hour', date)\n + floor(extract(minute from date)::int / 5) * interval '5 minute'\n `;\n case '15m':\n return `\n date_trunc('hour', date)\n + floor(extract(minute from date)::int / 15) * interval '15 minute'\n `;\n case '1h':\n return `date_trunc('hour', date)`;\n case '1d':\n return `date_trunc('day', date)`;\n case '1w':\n return `date_trunc('week', date)`;\n case '1M':\n return `date_trunc('month', date)`;\n default:\n throw new Error('Invalid period value');\n }\n}\n",
8
+ "import { z } from 'zod';\n\n// Type utilities for extracting Zod schema keys with perfect type safety\ntype ExtractShape<T> = T extends z.ZodObject<infer S> ? S : never;\ntype ZodRawShape = Record<string, z.ZodTypeAny>;\n\n// Advanced type-safe function to extract keys from Zod schema\nexport function extractZodSchemaKeys<TSchema extends z.ZodObject<ZodRawShape>, TShape = ExtractShape<TSchema>>(\n schema: TSchema,\n): readonly (keyof TShape)[] {\n // Type assertion with runtime validation\n const schemaDef = schema._def;\n\n if (\n !schemaDef ||\n typeof schemaDef !== 'object' ||\n !('typeName' in schemaDef) ||\n schemaDef.typeName !== 'ZodObject' ||\n !('shape' in schemaDef)\n ) {\n throw new Error('Provided schema is not a valid ZodObject schema');\n }\n\n const shapeFn = schemaDef.shape;\n if (typeof shapeFn !== 'function') {\n throw new Error('Schema shape is not a function');\n }\n\n const shape = shapeFn();\n if (!shape || typeof shape !== 'object') {\n throw new Error('Schema shape function did not return a valid object');\n }\n\n // Extract keys with type safety\n const keys = Object.keys(shape) as unknown as readonly (keyof TShape)[];\n\n return keys;\n}\n\n// Alternative implementation using conditional types for more complex schemas\nexport function getZodKeysAdvanced<TSchema extends z.ZodTypeAny>(schema: TSchema): readonly string[] {\n const schemaDef = schema._def;\n\n if (\n !schemaDef ||\n typeof schemaDef !== 'object' ||\n !('typeName' in schemaDef) ||\n schemaDef.typeName !== 'ZodObject' ||\n !('shape' in schemaDef)\n ) {\n return [] as const;\n }\n\n const shapeFn = schemaDef.shape;\n if (typeof shapeFn !== 'function') {\n return [] as const;\n }\n\n const shape = shapeFn();\n if (!shape || typeof shape !== 'object') {\n return [] as const;\n }\n\n return Object.keys(shape) as readonly string[];\n}\n\nexport type NestedObjectKeys<T> = T extends Record<string, unknown>\n ? {\n [K in keyof T]: T[K] extends Record<string, unknown>\n ? `${string & K}.${string & NestedObjectKeys<T[K]>}`\n : string & K;\n }[keyof T]\n : never;\n\nexport function extractAllZodKeys<TSchema extends z.ZodObject<ZodRawShape>>(\n schema: TSchema,\n includeNested: boolean = false,\n): readonly string[] {\n const schemaDef = schema._def;\n\n if (\n !schemaDef ||\n typeof schemaDef !== 'object' ||\n !('typeName' in schemaDef) ||\n schemaDef.typeName !== 'ZodObject' ||\n !('shape' in schemaDef)\n ) {\n return [] as const;\n }\n\n const shapeFn = schemaDef.shape;\n if (typeof shapeFn !== 'function') {\n return [] as const;\n }\n\n const shape = shapeFn();\n if (!shape || typeof shape !== 'object') {\n return [] as const;\n }\n\n const keys: string[] = [];\n\n function extractKeys(obj: Record<string, z.ZodTypeAny>, prefix: string = ''): void {\n for (const [key, zodType] of Object.entries(obj)) {\n const fullKey = prefix ? `${prefix}.${key}` : key;\n\n keys.push(fullKey);\n\n if (includeNested && zodType && typeof zodType === 'object' && '_def' in zodType) {\n const def = zodType._def;\n if (\n def &&\n typeof def === 'object' &&\n 'typeName' in def &&\n def.typeName === 'ZodObject' &&\n 'shape' in def &&\n typeof def.shape === 'function'\n ) {\n const nestedShape = def.shape();\n if (nestedShape && typeof nestedShape === 'object') {\n extractKeys(nestedShape, fullKey);\n }\n }\n }\n }\n }\n\n extractKeys(shape);\n return keys as readonly string[];\n}\n\nexport const getZodDefaultValue = (zodType: unknown): unknown => {\n if (!zodType || typeof zodType !== 'object' || !('_def' in zodType) || !zodType._def) {\n return 0;\n }\n\n const def = zodType._def as Record<string, unknown>;\n\n if (def['typeName'] === 'ZodDefault') {\n const defaultValue = def['defaultValue'];\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n }\n\n if (def['typeName'] === 'ZodNullable') {\n return null;\n }\n\n if (def['typeName'] === 'ZodOptional') {\n return getZodDefaultValue(def['innerType']);\n }\n\n if (def['typeName'] === 'ZodEffects') {\n return getZodDefaultValue(def['schema']);\n }\n\n switch (def['typeName']) {\n case 'ZodString':\n return '';\n case 'ZodNumber':\n return 0;\n case 'ZodBoolean':\n return false;\n case 'ZodDate':\n return null;\n case 'ZodArray':\n return [];\n case 'ZodObject':\n return {};\n default:\n return 0;\n }\n};\n\nexport const generateDefaultFromSchema = <T>(schema: unknown): T => {\n const result: Record<string, unknown> = {};\n\n if (\n schema &&\n typeof schema === 'object' &&\n '_def' in schema &&\n schema._def &&\n typeof schema._def === 'object' &&\n 'typeName' in schema._def &&\n schema._def.typeName === 'ZodObject' &&\n 'shape' in schema._def\n ) {\n const shapeFn = schema._def.shape as () => Record<string, unknown>;\n const shape = shapeFn();\n\n for (const [key, zodType] of Object.entries(shape)) {\n result[key] = getZodDefaultValue(zodType);\n }\n }\n\n return result as T;\n};\n\nexport const getZodSchemaKeys = (schema: unknown): string[] => {\n if (\n schema &&\n typeof schema === 'object' &&\n '_def' in schema &&\n schema._def &&\n typeof schema._def === 'object' &&\n 'typeName' in schema._def &&\n schema._def.typeName === 'ZodObject' &&\n 'shape' in schema._def\n ) {\n const shapeFn = schema._def.shape as () => Record<string, unknown>;\n const shape = shapeFn();\n return Object.keys(shape);\n }\n\n return [];\n};\n\nexport const generateMinimalistMapping = <T>(schema: unknown, data: unknown[]): T => {\n const keys = getZodSchemaKeys(schema);\n const result: Record<string, unknown> = {};\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key) {\n const value = data[i] ?? null;\n result[key] = value;\n }\n }\n\n return result as T;\n};\n\nexport const generateAutomaticMinimalistParser = <T extends z.ZodTypeAny>(schema: T, data: unknown[]): z.infer<T> => {\n const keys = getZodSchemaKeys(schema);\n const result: Record<string, unknown> = {};\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key) {\n const value = data[i];\n\n if (value === null || value === undefined) {\n result[key] = null;\n } else if (typeof value === 'string') {\n if (key.includes('date') || key.includes('created') || key.includes('bonded_at')) {\n result[key] = new Date(value);\n } else {\n result[key] = value;\n }\n } else if (typeof value === 'number') {\n result[key] = value;\n } else if (typeof value === 'boolean') {\n result[key] = value;\n } else if (Array.isArray(value)) {\n result[key] = value;\n } else {\n result[key] = value;\n }\n }\n }\n\n return result as z.infer<T>;\n};\n",
9
+ "import { z } from 'zod';\n\n/**\n * Convert scientific notation string to integer string\n * e.g., \"1.17e+25\" -> \"11700000000000000000000000\"\n */\nfunction scientificToInteger(value: string): string {\n // Check if it's in scientific notation\n const match = value.match(/^(-?)(\\d+)\\.?(\\d*)e([+-]?)(\\d+)$/i);\n if (!match) {\n return value;\n }\n\n try {\n const [, sign, integerPart, decimalPart, expSign, exponentStr] = match;\n const exponent = Number.parseInt(exponentStr!, 10);\n\n // If exponent is negative, result will be < 1, so we return 0\n if (expSign === '-') {\n return sign === '-' ? '-0' : '0';\n }\n\n // Combine integer and decimal parts\n const digits = integerPart! + (decimalPart || '');\n const decimalPosition = integerPart!.length;\n\n // Calculate new position after applying exponent\n const newLength = decimalPosition + exponent;\n\n if (newLength <= 0) {\n // Result is less than 1\n return sign === '-' ? '-0' : '0';\n }\n\n if (newLength >= digits.length) {\n // We need to add zeros at the end\n const zerosToAdd = newLength - digits.length;\n return sign + digits + '0'.repeat(zerosToAdd);\n }\n\n // We need to truncate decimal part (round down)\n return sign + digits.slice(0, newLength);\n } catch {\n return value;\n }\n}\n\nconst BigIntLax = z.union([\n z.string().transform((v, ctx) => {\n let value: bigint;\n\n try {\n // Convert scientific notation to integer string if needed\n const normalizedValue = scientificToInteger(v);\n value = BigInt(normalizedValue);\n } catch (_) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Cannot parse to BigInt',\n });\n return z.NEVER;\n }\n\n return value;\n }),\n z.number().transform((v, ctx) => {\n if (!Number.isSafeInteger(v)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Number is not a safe integer',\n });\n return z.NEVER;\n }\n\n return BigInt(v);\n }),\n z.bigint(),\n z.null().transform(() => 0n),\n]);\n\nexport type BigIntLax = z.infer<typeof BigIntLax>;\n\nexport default BigIntLax;\n",
10
+ "import { z } from 'zod';\nimport BigIntLax from './BigIntLax.ts';\n\nexport const HolderSchema = z.object({\n address: z.string(),\n\n balanceRaw: BigIntLax,\n nativeBalanceRaw: BigIntLax,\n balance: z.coerce.number(),\n nativeBalance: z.coerce.number(),\n balanceUSD: z.coerce.number(),\n\n boughtAmountRaw: BigIntLax,\n boughtAmount: z.coerce.number(),\n boughtAmountUSD: z.coerce.number(),\n\n soldAmount: z.coerce.number(),\n soldAmountRaw: BigIntLax,\n soldAmountUSD: z.coerce.number(),\n\n realizedPnlUSD: z.coerce.number(),\n unrealizedPnlUSD: z.coerce.number(),\n\n tags: z.string().array(),\n\n createdAt: z.coerce.date().nullable(),\n updatedAt: z.coerce.date().nullable(),\n});\n\nexport type HolderSchema = z.infer<typeof HolderSchema>;\n\nexport const HoldersStatsSchema = z.object({\n holdersCount: z.coerce.number().nullable().optional(),\n top10HoldingsPercentage: z.coerce.number().nullable().optional(),\n top50HoldingsPercentage: z.coerce.number().nullable().optional(),\n top100HoldingsPercentage: z.coerce.number().nullable().optional(),\n top200HoldingsPercentage: z.coerce.number().nullable().optional(),\n\n devHoldingsPercentage: z.coerce.number().nullable().optional(),\n insidersHoldingsPercentage: z.coerce.number().nullable().optional(),\n bundlersHoldingsPercentage: z.coerce.number().nullable().optional(),\n snipersHoldingsPercentage: z.coerce.number().nullable().optional(),\n proTradersHoldingsPercentage: z.coerce.number().nullable().optional(),\n freshTradersHoldingsPercentage: z.coerce.number().nullable().optional(),\n smartTradersHoldingsPercentage: z.coerce.number().nullable().optional(),\n\n insidersCount: z.coerce.number().nullable().optional(),\n bundlersCount: z.coerce.number().nullable().optional(),\n snipersCount: z.coerce.number().nullable().optional(),\n freshTradersCount: z.coerce.number().nullable().optional(),\n proTradersCount: z.coerce.number().nullable().optional(),\n smartTradersCount: z.coerce.number().nullable().optional(),\n\n freshTradersBuys: z.coerce.number().nullable().optional(),\n proTradersBuys: z.coerce.number().nullable().optional(),\n smartTradersBuys: z.coerce.number().nullable().optional(),\n});\n\nexport type HoldersStatsSchema = z.infer<typeof HoldersStatsSchema>;\n\nexport const HoldersStreamNewTokenPayload = HoldersStatsSchema.extend({\n holders: z.array(HolderSchema),\n});\n\nexport type HoldersStreamNewTokenPayload = z.infer<typeof HoldersStreamNewTokenPayload>;\n\nexport type HoldersStreamStats = HoldersStatsSchema & {\n holders: HolderSchema[];\n};\n\nexport type HoldersStreamUpdatePayload = HoldersStatsSchema & {\n tokenPrice: number | null;\n holders: Record<string, HoldersStreamStats['holders'][number]>;\n};\n",
11
+ "import { z } from 'zod';\nimport { extractAllZodKeys } from '../functions/zodUtils.ts';\nimport { HolderSchema, HoldersStatsSchema } from './EnrichedHoldersData.ts';\nimport { SecurityFlagsSchema } from './SecuritySchemas.ts';\n\n/**\n * Token type schema representing the ERC token standard version\n * - \"2020\": ERC-20 standard token\n * - \"2022\": ERC-2022 (Token Extensions) standard token\n */\nexport const TokenTypeValues = ['2020', '2022'] as const;\nexport type TokenType = (typeof TokenTypeValues)[number];\nexport const TokenTypeSchema = z.enum(TokenTypeValues).nullable().optional();\n\nexport const keysToRemovePoolToPulse: Partial<Record<keyof PoolData, true>> = {\n token0: true as const,\n token1: true as const,\n volume24h: true as const,\n blockchain: true as const,\n address: true as const,\n createdAt: true as const,\n type: true as const,\n baseToken: true as const,\n exchange: true as const,\n factory: true as const,\n quoteToken: true as const,\n // 'price', // Keep price at root level for service compatibility\n priceToken: true as const,\n priceTokenString: true as const,\n athToken0: true as const,\n athToken1: true as const,\n atlToken0: true as const,\n atlToken1: true as const,\n athDateToken0: true as const,\n athDateToken1: true as const,\n atlDateToken0: true as const,\n atlDateToken1: true as const,\n};\n\n/**\n * Metadata keys that can be used as fallback from Token table when TokensStatsRealTime is empty\n * These are the social and security fields that are shared between Token and TokensStatsRealTime tables\n */\nexport const TOKEN_METADATA_KEYS = [\n 'twitter',\n 'telegram',\n 'website',\n 'others',\n 'security',\n 'logo',\n 'twitterRenameCount',\n 'twitterRenameHistory',\n 'dexscreenerListed',\n 'dexscreenerHeader',\n 'dexscreenerAdPaid',\n 'liveStatus',\n 'liveThumbnail',\n 'livestreamTitle',\n 'liveReplyCount',\n 'deployer',\n 'bonded_at',\n 'description',\n] as const;\n\nexport type TokenMetadataKey = (typeof TOKEN_METADATA_KEYS)[number];\n\nexport const TokenData = z\n .object({\n address: z.string(),\n chainId: z.string(),\n symbol: z.string().nullable(),\n name: z.string().nullable(),\n decimals: z.coerce.number().default(0),\n id: z.number().nullable().optional().default(null),\n\n price: z.coerce.number().default(0),\n priceToken: z.coerce.number().default(0),\n priceTokenString: z.string(),\n approximateReserveUSD: z.coerce.number().default(0),\n approximateReserveTokenRaw: z.string(),\n approximateReserveToken: z.coerce.number().default(0),\n totalSupply: z.coerce.number().default(0),\n circulatingSupply: z.coerce.number().default(0),\n marketCap: z.coerce.number().optional().default(0),\n marketCapDiluted: z.coerce.number().optional().default(0),\n logo: z.string().nullable(),\n\n exchange: z\n .object({\n name: z.string(),\n logo: z.string(),\n })\n .optional(),\n\n factory: z.string().nullable().optional(),\n source: z.string().nullable().optional(),\n sourceFactory: z.string().nullable().optional(),\n\n liquidity: z.coerce.number().optional(),\n liquidityMax: z.coerce.number().optional(),\n bonded: z.boolean().optional(),\n bondingPercentage: z.coerce.number().optional(),\n bondingCurveAddress: z.string().nullable().optional(),\n preBondingFactory: z.string().optional(),\n poolAddress: z.string().optional(),\n\n blockchain: z.string().optional(),\n type: z.string().optional(),\n tokenType: TokenTypeSchema,\n\n deployer: z.string().nullable().optional(),\n createdAt: z.string().optional(),\n bonded_at: z.coerce.date().nullable(),\n ath: z.coerce.number().optional(),\n atl: z.coerce.number().optional(),\n athDate: z.coerce.date().optional(),\n atlDate: z.coerce.date().optional(),\n })\n .merge(HoldersStatsSchema);\n\nexport type TokenData = z.infer<typeof TokenData>;\n\n// Keys to keep at root level in PulseEnrichedTokenData (these won't be removed)\nconst keysToKeepInPulseToken = new Set<string>([\n // Add keys here that should remain at root level in PulseEnrichedTokenData\n // All other TokenData keys will be automatically removed\n 'bonded_at',\n]);\n\nconst allTokenDataKeys = extractAllZodKeys(TokenData);\nexport const keysToRemoveTokenToPulse: Partial<Record<keyof TokenData, true>> = allTokenDataKeys\n .filter((key) => !keysToKeepInPulseToken.has(key as string))\n .reduce(\n (acc, key) => {\n acc[key as keyof TokenData] = true as const;\n return acc;\n },\n {} as Partial<Record<keyof TokenData, true>>,\n );\n\nexport const PoolData = z.object({\n token0: TokenData,\n token1: TokenData,\n volume24h: z.coerce.number().default(0),\n liquidity: z.coerce.number().default(0),\n blockchain: z.string(),\n address: z.string(),\n createdAt: z.coerce.date().nullable(),\n type: z.string(),\n baseToken: z.string(),\n exchange: z.object({\n name: z.string(),\n logo: z.string(),\n }),\n factory: z.string().nullable(),\n quoteToken: z.string(),\n price: z.coerce.number().optional(),\n priceToken: z.coerce.number().optional(),\n priceTokenString: z.string().optional(),\n\n athToken0: z.coerce.number().default(0),\n athToken1: z.coerce.number().default(0),\n atlToken0: z.coerce.number().default(0),\n atlToken1: z.coerce.number().default(0),\n athDateToken0: z.coerce.date().optional(),\n athDateToken1: z.coerce.date().optional(),\n atlDateToken0: z.coerce.date().optional(),\n atlDateToken1: z.coerce.date().optional(),\n\n bonded: z.coerce.boolean(),\n bondingPercentage: z.coerce.number().nullable(),\n bondingCurveAddress: z.string().nullable(),\n sourceFactory: z.string().nullable().optional(),\n totalFeesPaidUSD: z.coerce.number().optional(),\n totalFeesPaidNativeRaw: z.coerce.bigint().default(0n),\n\n extraData: z.record(z.any()).optional(),\n});\nexport type PoolData = z.infer<typeof PoolData>;\n\nexport const poolDataKeys = extractAllZodKeys(PoolData);\nexport const tokenDataKeys = extractAllZodKeys(TokenData);\n\nexport const PoolStatsSchema = z.object({\n price_change_1min: z.coerce.number().default(0),\n price_change_5min: z.coerce.number().default(0),\n price_change_1h: z.coerce.number().default(0),\n price_change_4h: z.coerce.number().default(0),\n price_change_6h: z.coerce.number().default(0),\n price_change_12h: z.coerce.number().default(0),\n price_change_24h: z.coerce.number().default(0),\n\n price_1min_ago: z.coerce.number().default(0),\n price_5min_ago: z.coerce.number().default(0),\n price_1h_ago: z.coerce.number().default(0),\n price_4h_ago: z.coerce.number().default(0),\n price_6h_ago: z.coerce.number().default(0),\n price_12h_ago: z.coerce.number().default(0),\n price_24h_ago: z.coerce.number().default(0),\n\n volume_1min: z.coerce.number().default(0),\n volume_5min: z.coerce.number().default(0),\n volume_15min: z.coerce.number().default(0),\n volume_1h: z.coerce.number().default(0),\n volume_4h: z.coerce.number().default(0),\n volume_6h: z.coerce.number().default(0),\n volume_12h: z.coerce.number().default(0),\n volume_24h: z.coerce.number().default(0),\n\n volume_buy_1min: z.coerce.number().default(0),\n volume_buy_5min: z.coerce.number().default(0),\n volume_buy_15min: z.coerce.number().default(0),\n volume_buy_1h: z.coerce.number().default(0),\n volume_buy_4h: z.coerce.number().default(0),\n volume_buy_6h: z.coerce.number().default(0),\n volume_buy_12h: z.coerce.number().default(0),\n volume_buy_24h: z.coerce.number().default(0),\n\n volume_sell_1min: z.coerce.number().default(0),\n volume_sell_5min: z.coerce.number().default(0),\n volume_sell_15min: z.coerce.number().default(0),\n volume_sell_1h: z.coerce.number().default(0),\n volume_sell_4h: z.coerce.number().default(0),\n volume_sell_6h: z.coerce.number().default(0),\n volume_sell_12h: z.coerce.number().default(0),\n volume_sell_24h: z.coerce.number().default(0),\n\n trades_1min: z.coerce.number().default(0),\n trades_5min: z.coerce.number().default(0),\n trades_15min: z.coerce.number().default(0),\n trades_1h: z.coerce.number().default(0),\n trades_4h: z.coerce.number().default(0),\n trades_6h: z.coerce.number().default(0),\n trades_12h: z.coerce.number().default(0),\n trades_24h: z.coerce.number().default(0),\n\n buys_1min: z.coerce.number().default(0),\n buys_5min: z.coerce.number().default(0),\n buys_15min: z.coerce.number().default(0),\n buys_1h: z.coerce.number().default(0),\n buys_4h: z.coerce.number().default(0),\n buys_6h: z.coerce.number().default(0),\n buys_12h: z.coerce.number().default(0),\n buys_24h: z.coerce.number().default(0),\n\n sells_1min: z.coerce.number().default(0),\n sells_5min: z.coerce.number().default(0),\n sells_15min: z.coerce.number().default(0),\n sells_1h: z.coerce.number().default(0),\n sells_4h: z.coerce.number().default(0),\n sells_6h: z.coerce.number().default(0),\n sells_12h: z.coerce.number().default(0),\n sells_24h: z.coerce.number().default(0),\n\n buyers_1min: z.coerce.number().default(0),\n buyers_5min: z.coerce.number().default(0),\n buyers_15min: z.coerce.number().default(0),\n buyers_1h: z.coerce.number().default(0),\n buyers_4h: z.coerce.number().default(0),\n buyers_6h: z.coerce.number().default(0),\n buyers_12h: z.coerce.number().default(0),\n buyers_24h: z.coerce.number().default(0),\n\n sellers_1min: z.coerce.number().default(0),\n sellers_5min: z.coerce.number().default(0),\n sellers_15min: z.coerce.number().default(0),\n sellers_1h: z.coerce.number().default(0),\n sellers_4h: z.coerce.number().default(0),\n sellers_6h: z.coerce.number().default(0),\n sellers_12h: z.coerce.number().default(0),\n sellers_24h: z.coerce.number().default(0),\n\n traders_1min: z.coerce.number().default(0),\n traders_5min: z.coerce.number().default(0),\n traders_15min: z.coerce.number().default(0),\n traders_1h: z.coerce.number().default(0),\n traders_4h: z.coerce.number().default(0),\n traders_6h: z.coerce.number().default(0),\n traders_12h: z.coerce.number().default(0),\n traders_24h: z.coerce.number().default(0),\n\n fees_paid_1min: z.coerce.number().default(0),\n fees_paid_5min: z.coerce.number().default(0),\n fees_paid_15min: z.coerce.number().default(0),\n fees_paid_1h: z.coerce.number().default(0),\n fees_paid_4h: z.coerce.number().default(0),\n fees_paid_6h: z.coerce.number().default(0),\n fees_paid_12h: z.coerce.number().default(0),\n fees_paid_24h: z.coerce.number().default(0),\n});\n\nexport type PoolStats = z.infer<typeof PoolStatsSchema>;\n\nexport const EnrichedPoolDataSchema = PoolData.merge(\n PoolStatsSchema.merge(\n z.object({\n price: z.coerce.number().default(0),\n\n market_cap: z.coerce.number().default(0),\n created_at: z.coerce.date().nullable(),\n holders_count: z.coerce.number().default(0),\n latest_trade_date: z.coerce.date().nullable().default(null),\n latest_price: z.coerce.number().default(0),\n\n source: z.string().nullable(),\n deployer: z.string().nullable(),\n tokenSymbol: z.string().nullable(),\n tokenName: z.string().nullable(),\n dexscreenerListed: z.coerce.boolean().nullable(),\n deployerMigrations: z.coerce.number().default(0),\n socials: z.object({\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n telegram: z.string().nullable(),\n others: z.record(z.unknown()).nullable(),\n uri: z.string().optional(),\n }),\n description: z.string().nullable(),\n security: SecurityFlagsSchema.nullable(),\n twitterReusesCount: z.coerce.number().default(0),\n twitterRenameCount: z.coerce.number().default(0),\n twitterRenameHistory: z\n .array(\n z.object({\n username: z.string(),\n last_checked: z.string(),\n }),\n )\n .optional(),\n holders_list: z.array(HolderSchema),\n totalFeesPaidUSD: z.coerce.number().default(0),\n totalFeesPaidNativeRaw: z.coerce.bigint().default(0n),\n }),\n ).merge(HoldersStatsSchema),\n);\n\nexport type EnrichedPoolData = z.infer<typeof EnrichedPoolDataSchema>;\n\n// New schema with renamed volume fields and PoolData in 'pair' object\nexport const PulseEnrichedPoolDataSchema = EnrichedPoolDataSchema.omit(keysToRemovePoolToPulse).extend({\n // Add PoolData in 'pair' object\n pair: PoolData,\n});\n\nexport type PulseEnrichedPoolData = z.infer<typeof PulseEnrichedPoolDataSchema>;\n\nexport const TokenStatsSchema = z.object({\n latest_trade_date: z.coerce.date().nullable(),\n\n price_change_1min: z.coerce.number().default(0),\n price_change_5min: z.coerce.number().default(0),\n price_change_1h: z.coerce.number().default(0),\n price_change_4h: z.coerce.number().default(0),\n price_change_6h: z.coerce.number().default(0),\n price_change_12h: z.coerce.number().default(0),\n price_change_24h: z.coerce.number().default(0),\n\n price_1min_ago: z.coerce.number().default(0),\n price_5min_ago: z.coerce.number().default(0),\n price_1h_ago: z.coerce.number().default(0),\n price_4h_ago: z.coerce.number().default(0),\n price_6h_ago: z.coerce.number().default(0),\n price_12h_ago: z.coerce.number().default(0),\n price_24h_ago: z.coerce.number().default(0),\n\n volume_1min: z.coerce.number().default(0),\n volume_5min: z.coerce.number().default(0),\n volume_15min: z.coerce.number().default(0),\n volume_1h: z.coerce.number().default(0),\n volume_4h: z.coerce.number().default(0),\n volume_6h: z.coerce.number().default(0),\n volume_12h: z.coerce.number().default(0),\n volume_24h: z.coerce.number().default(0),\n\n volume_buy_1min: z.coerce.number().default(0),\n volume_buy_5min: z.coerce.number().default(0),\n volume_buy_15min: z.coerce.number().default(0),\n volume_buy_1h: z.coerce.number().default(0),\n volume_buy_4h: z.coerce.number().default(0),\n volume_buy_6h: z.coerce.number().default(0),\n volume_buy_12h: z.coerce.number().default(0),\n volume_buy_24h: z.coerce.number().default(0),\n\n volume_sell_1min: z.coerce.number().default(0),\n volume_sell_5min: z.coerce.number().default(0),\n volume_sell_15min: z.coerce.number().default(0),\n volume_sell_1h: z.coerce.number().default(0),\n volume_sell_4h: z.coerce.number().default(0),\n volume_sell_6h: z.coerce.number().default(0),\n volume_sell_12h: z.coerce.number().default(0),\n volume_sell_24h: z.coerce.number().default(0),\n\n trades_1min: z.coerce.number().default(0),\n trades_5min: z.coerce.number().default(0),\n trades_15min: z.coerce.number().default(0),\n trades_1h: z.coerce.number().default(0),\n trades_4h: z.coerce.number().default(0),\n trades_6h: z.coerce.number().default(0),\n trades_12h: z.coerce.number().default(0),\n trades_24h: z.coerce.number().default(0),\n\n buys_1min: z.coerce.number().default(0),\n buys_5min: z.coerce.number().default(0),\n buys_15min: z.coerce.number().default(0),\n buys_1h: z.coerce.number().default(0),\n buys_4h: z.coerce.number().default(0),\n buys_6h: z.coerce.number().default(0),\n buys_12h: z.coerce.number().default(0),\n buys_24h: z.coerce.number().default(0),\n\n sells_1min: z.coerce.number().default(0),\n sells_5min: z.coerce.number().default(0),\n sells_15min: z.coerce.number().default(0),\n sells_1h: z.coerce.number().default(0),\n sells_4h: z.coerce.number().default(0),\n sells_6h: z.coerce.number().default(0),\n sells_12h: z.coerce.number().default(0),\n sells_24h: z.coerce.number().default(0),\n\n buyers_1min: z.coerce.number().default(0),\n buyers_5min: z.coerce.number().default(0),\n buyers_15min: z.coerce.number().default(0),\n buyers_1h: z.coerce.number().default(0),\n buyers_4h: z.coerce.number().default(0),\n buyers_6h: z.coerce.number().default(0),\n buyers_12h: z.coerce.number().default(0),\n buyers_24h: z.coerce.number().default(0),\n\n sellers_1min: z.coerce.number().default(0),\n sellers_5min: z.coerce.number().default(0),\n sellers_15min: z.coerce.number().default(0),\n sellers_1h: z.coerce.number().default(0),\n sellers_4h: z.coerce.number().default(0),\n sellers_6h: z.coerce.number().default(0),\n sellers_12h: z.coerce.number().default(0),\n sellers_24h: z.coerce.number().default(0),\n\n traders_1min: z.coerce.number().default(0),\n traders_5min: z.coerce.number().default(0),\n traders_15min: z.coerce.number().default(0),\n traders_1h: z.coerce.number().default(0),\n traders_4h: z.coerce.number().default(0),\n traders_6h: z.coerce.number().default(0),\n traders_12h: z.coerce.number().default(0),\n traders_24h: z.coerce.number().default(0),\n\n fees_paid_1min: z.coerce.number().default(0),\n fees_paid_5min: z.coerce.number().default(0),\n fees_paid_15min: z.coerce.number().default(0),\n fees_paid_1h: z.coerce.number().default(0),\n fees_paid_4h: z.coerce.number().default(0),\n fees_paid_6h: z.coerce.number().default(0),\n fees_paid_12h: z.coerce.number().default(0),\n fees_paid_24h: z.coerce.number().default(0),\n totalFeesPaidUSD: z.coerce.number().default(0),\n totalFeesPaidNativeRaw: z.coerce.bigint().default(0n),\n\n organic_trades_1min: z.coerce.number().default(0),\n organic_trades_5min: z.coerce.number().default(0),\n organic_trades_15min: z.coerce.number().default(0),\n organic_trades_1h: z.coerce.number().default(0),\n organic_trades_4h: z.coerce.number().default(0),\n organic_trades_6h: z.coerce.number().default(0),\n organic_trades_12h: z.coerce.number().default(0),\n organic_trades_24h: z.coerce.number().default(0),\n\n organic_traders_1min: z.coerce.number().default(0),\n organic_traders_5min: z.coerce.number().default(0),\n organic_traders_15min: z.coerce.number().default(0),\n organic_traders_1h: z.coerce.number().default(0),\n organic_traders_4h: z.coerce.number().default(0),\n organic_traders_6h: z.coerce.number().default(0),\n organic_traders_12h: z.coerce.number().default(0),\n organic_traders_24h: z.coerce.number().default(0),\n\n organic_volume_1min: z.coerce.number().default(0),\n organic_volume_5min: z.coerce.number().default(0),\n organic_volume_15min: z.coerce.number().default(0),\n organic_volume_1h: z.coerce.number().default(0),\n organic_volume_4h: z.coerce.number().default(0),\n organic_volume_6h: z.coerce.number().default(0),\n organic_volume_12h: z.coerce.number().default(0),\n organic_volume_24h: z.coerce.number().default(0),\n\n organic_volume_buy_1min: z.coerce.number().default(0),\n organic_volume_buy_5min: z.coerce.number().default(0),\n organic_volume_buy_15min: z.coerce.number().default(0),\n organic_volume_buy_1h: z.coerce.number().default(0),\n organic_volume_buy_4h: z.coerce.number().default(0),\n organic_volume_buy_6h: z.coerce.number().default(0),\n organic_volume_buy_12h: z.coerce.number().default(0),\n organic_volume_buy_24h: z.coerce.number().default(0),\n\n organic_volume_sell_1min: z.coerce.number().default(0),\n organic_volume_sell_5min: z.coerce.number().default(0),\n organic_volume_sell_15min: z.coerce.number().default(0),\n organic_volume_sell_1h: z.coerce.number().default(0),\n organic_volume_sell_4h: z.coerce.number().default(0),\n organic_volume_sell_6h: z.coerce.number().default(0),\n organic_volume_sell_12h: z.coerce.number().default(0),\n organic_volume_sell_24h: z.coerce.number().default(0),\n\n organic_buys_1min: z.coerce.number().default(0),\n organic_buys_5min: z.coerce.number().default(0),\n organic_buys_15min: z.coerce.number().default(0),\n organic_buys_1h: z.coerce.number().default(0),\n organic_buys_4h: z.coerce.number().default(0),\n organic_buys_6h: z.coerce.number().default(0),\n organic_buys_12h: z.coerce.number().default(0),\n organic_buys_24h: z.coerce.number().default(0),\n\n organic_sells_1min: z.coerce.number().default(0),\n organic_sells_5min: z.coerce.number().default(0),\n organic_sells_15min: z.coerce.number().default(0),\n organic_sells_1h: z.coerce.number().default(0),\n organic_sells_4h: z.coerce.number().default(0),\n organic_sells_6h: z.coerce.number().default(0),\n organic_sells_12h: z.coerce.number().default(0),\n organic_sells_24h: z.coerce.number().default(0),\n\n organic_buyers_1min: z.coerce.number().default(0),\n organic_buyers_5min: z.coerce.number().default(0),\n organic_buyers_15min: z.coerce.number().default(0),\n organic_buyers_1h: z.coerce.number().default(0),\n organic_buyers_4h: z.coerce.number().default(0),\n organic_buyers_6h: z.coerce.number().default(0),\n organic_buyers_12h: z.coerce.number().default(0),\n organic_buyers_24h: z.coerce.number().default(0),\n\n organic_sellers_1min: z.coerce.number().default(0),\n organic_sellers_5min: z.coerce.number().default(0),\n organic_sellers_15min: z.coerce.number().default(0),\n organic_sellers_1h: z.coerce.number().default(0),\n organic_sellers_4h: z.coerce.number().default(0),\n organic_sellers_6h: z.coerce.number().default(0),\n organic_sellers_12h: z.coerce.number().default(0),\n organic_sellers_24h: z.coerce.number().default(0),\n});\nexport type TokenStats = z.infer<typeof TokenStatsSchema>;\n\nexport const EnrichedTokenDataSchema = TokenData.merge(\n TokenStatsSchema.merge(\n z.object({\n created_at: z.coerce.date().nullable(),\n latest_price: z.coerce.number().default(0),\n\n holders_count: z.coerce.number().default(0),\n market_cap: z.coerce.number().default(0),\n latest_market_cap: z.coerce.number().default(0),\n\n description: z.string().nullable(),\n socials: z.object({\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n telegram: z.string().nullable(),\n others: z.record(z.unknown()).nullable(),\n uri: z.string().optional(),\n }),\n\n security: SecurityFlagsSchema.nullable(),\n\n twitterReusesCount: z.coerce.number().nullable().default(0),\n twitterRenameCount: z.coerce.number().default(0),\n twitterRenameHistory: z\n .array(\n z.object({\n username: z.string(),\n last_checked: z.string(),\n }),\n )\n .optional(),\n\n deployerMigrationsCount: z.coerce.number().default(0),\n dexscreenerListed: z.boolean().nullable().default(false),\n dexscreenerHeader: z.string().nullable().default(null),\n dexscreenerAdPaid: z.boolean().nullable().default(false),\n\n liveStatus: z.string().nullable(),\n liveThumbnail: z.string().nullable(),\n livestreamTitle: z.string().nullable(),\n liveReplyCount: z.number().nullable(),\n\n holders_list: z.array(HolderSchema),\n }),\n ),\n).merge(HoldersStatsSchema);\n\nexport type EnrichedTokenData = z.infer<typeof EnrichedTokenDataSchema>;\n\nexport const PulseEnrichedTokenDataSchema = EnrichedTokenDataSchema.omit(\n keysToRemoveTokenToPulse as Record<keyof typeof keysToRemoveTokenToPulse, true>,\n)\n .extend({\n // Add TokenData in 'token' object\n token: TokenData,\n })\n .merge(HoldersStatsSchema);\n\nexport type PulseEnrichedTokenData = z.infer<typeof PulseEnrichedTokenDataSchema>;\n\ntype MakeNullableExcept<T, K extends keyof T> = {\n [P in keyof T]: P extends K ? T[P] : T[P] | null;\n};\n\nexport type NullableEnrichedPoolData = MakeNullableExcept<Omit<EnrichedPoolData, 'token0' | 'token1'>, 'address'> & {\n address_id: string;\n chain_id: string;\n};\nexport type NullableEnrichedTokenData = MakeNullableExcept<EnrichedTokenData, 'address'> & {\n address_id: string;\n chain_id: string;\n};\n",
12
+ "import { z } from 'zod';\n\nexport const EVMSecurityFlagsSchema = z.object({\n buyTax: z.string().optional(),\n sellTax: z.string().optional(),\n transferPausable: z.boolean().optional(),\n top10Holders: z.string().optional(),\n isBlacklisted: z.boolean().optional(),\n isHoneypot: z.boolean().optional(),\n isNotOpenSource: z.boolean().optional(),\n renounced: z.boolean().optional(),\n locked: z.string().optional(),\n isWhitelisted: z.boolean().optional(),\n balanceMutable: z.boolean().optional(),\n lowLiquidity: z.string().optional(),\n burnRate: z.string().optional(),\n isMintable: z.boolean().optional(),\n modifyableTax: z.boolean().optional(),\n selfDestruct: z.boolean().optional(),\n});\n\nexport type EVMSecurityFlags = z.infer<typeof EVMSecurityFlagsSchema>;\n\nexport const SolanaSecurityFlagsSchema = z.object({\n buyTax: z.string().optional(),\n sellTax: z.string().optional(),\n transferPausable: z.boolean().optional(),\n top10Holders: z.string().optional(),\n isBlacklisted: z.boolean().optional(),\n noMintAuthority: z.boolean().optional(),\n balanceMutable: z.boolean().optional(),\n lowLiquidity: z.string().optional(),\n burnRate: z.string().optional(),\n});\n\nexport type SolanaSecurityFlags = z.infer<typeof SolanaSecurityFlagsSchema>;\n\nexport const SecurityFlagsSchema = SolanaSecurityFlagsSchema.merge(EVMSecurityFlagsSchema);\nexport type SecurityFlags = z.infer<typeof SecurityFlagsSchema>;\n",
13
+ "import { z } from 'zod';\n\nexport const AllAssetsParamsSchema = z.object({\n fields: z.string().optional().default(''),\n});\n\nexport type AllAssetsParams = z.input<typeof AllAssetsParamsSchema>;\n\nexport const AllAssetsResponseSchema = z.object({\n data: z.array(\n z.object({\n id: z.number(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable().optional(),\n price: z.number().nullable().optional(),\n price_change_1h: z.number().optional(),\n price_change_24h: z.number().optional(),\n price_change_7d: z.number().optional(),\n price_change_1m: z.number().optional(),\n price_change_1y: z.number().optional(),\n market_cap: z.number().optional(),\n liquidity: z.number().optional(),\n volume: z.number().optional(),\n blockchains: z.array(z.string()).optional(),\n contracts: z.array(z.string()).optional(),\n decimals: z.array(z.number()).optional(),\n website: z.string().nullish().optional(),\n twitter: z.string().nullish().optional(),\n chat: z.string().nullish().optional(),\n }),\n ),\n});\n\n//Response Type\nexport type AllAssetsResponse = z.infer<typeof AllAssetsResponseSchema>;\n",
14
+ "import { z } from 'zod';\n\nconst TokenSchema = z.object({\n name: z.string(),\n symbol: z.string(),\n address: z.string(),\n type: z.enum(['eth', 'stable', 'other']),\n decimals: z.number(),\n denom: z.string().optional(),\n});\n\nconst ExtendedTokenSchema = TokenSchema.extend({\n logo: z.string(),\n blockchain: z.string(),\n blockchains: z.array(z.string()),\n contracts: z.array(z.string()),\n});\n\nexport const BlockchainsResponseSchema = z.object({\n data: z.array(\n z.object({\n name: z.string(),\n shortName: z.string().optional(),\n explorer: z.string(),\n color: z.string(),\n chainId: z.string(),\n evmChainId: z.number().optional(),\n cosmosChainId: z.string().optional(),\n\n testnet: z.boolean().optional(),\n\n multicall_contract: z.string().optional(),\n\n uniswapV3Factory: z.array(z.string()).optional(),\n\n eth: TokenSchema.extend({\n logo: z.string(),\n id: z.number().optional(),\n }).optional(),\n stable: ExtendedTokenSchema.optional(),\n\n routers: z.array(\n z.object({\n address: z.string(),\n name: z.string(),\n factory: z.string().optional(),\n fee: z.number().optional(),\n }),\n ),\n tokens: z.array(\n z.object({\n address: z.string(),\n name: z.string(),\n symbol: z.string().optional(),\n decimals: z.number().optional(),\n type: z.string().optional(),\n }),\n ),\n\n supportedProtocols: z.array(z.string()),\n logo: z.string(),\n\n coingeckoChain: z.string().optional(),\n dexscreenerChain: z.string().optional(),\n isLayer2: z.boolean().optional(),\n coverage: z.array(z.string().optional()).optional(),\n }),\n ),\n});\n\nexport type BlockchainsResponse = z.infer<typeof BlockchainsResponseSchema>;\n",
15
+ "import { z } from 'zod';\n\nexport const createFeedQuery = z.object({\n quoteId: z.coerce.number().optional(),\n assetId: z.coerce.number(),\n});\n",
16
+ "import { z } from 'zod';\n\nexport const FundingRateParamsSchema = z.object({\n symbol: z.string(),\n quote: z.string().optional(),\n exchange: z\n .string()\n .optional()\n .refine(\n (val) => !val || /^[a-zA-Z0-9,-]+$/.test(val),\n 'Exchange must be a comma-separated string (e.g., \"binance,bybit\")',\n ),\n});\n\nexport type FundingRateParams = z.input<typeof FundingRateParamsSchema>;\n\nexport const FundingRateResponseSchema = z.object({\n binanceFundingRate: z\n .object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n marketPrice: z.string(),\n epochDurationMs: z.number(),\n })\n .optional(),\n deribitFundingRate: z\n .object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n marketPrice: z.number(),\n epochDurationMs: z.number(),\n })\n .optional(),\n bybitFundingRate: z\n .object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n epochDurationMs: z.number(),\n })\n .optional(),\n okxFundingRate: z\n .object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n epochDurationMs: z.number(),\n })\n .optional(),\n hyperliquidFundingRate: z\n .union([\n // Single funding rate object\n z.object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n epochDurationMs: z.number(),\n }),\n\n // Or an array of them\n z.array(\n z.object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n marketPrice: z.number().nullable().optional(),\n epochDurationMs: z.number(),\n }),\n ),\n ])\n .optional(),\n\n queryDetails: z.object({\n base: z.string(),\n quote: z.string().nullable(),\n }),\n});\n\nexport type FundingRateResponse = z.infer<typeof FundingRateResponseSchema>;\n",
17
+ "import { z } from 'zod';\n\nexport const MarketTokenHoldersParamsSchema = z\n .object({\n blockchain: z.string().optional(),\n asset: z.string().optional(),\n symbol: z.string().optional(),\n limit: z.coerce.number().max(100).optional().default(20),\n offset: z.coerce.number().optional().default(0),\n backfill: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n includeZeroBalance: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n })\n .transform(({ blockchain, asset, symbol, limit, offset, backfill, includeZeroBalance }) => ({\n blockchain: blockchain,\n asset: asset || symbol ? { name: asset, symbol: symbol } : undefined,\n limit,\n offset,\n backfill,\n includeZeroBalance,\n }));\n\nexport type MarketTokenHoldersParams = z.input<typeof MarketTokenHoldersParamsSchema>;\n\nexport const MarketTokenHoldersResponseSchema = z.object({\n data: z.array(\n z.object({\n address: z.string(),\n tag: z.string(),\n amountRaw: z.string(),\n amount: z.number(),\n chainId: z.string(),\n totalSupplyShare: z.number(),\n amountUSD: z.number(),\n }),\n ),\n total_count: z.number(),\n});\n\nexport type MarketTokenHoldersResponse = z.infer<typeof MarketTokenHoldersResponseSchema>;\n",
18
+ "import { z } from 'zod';\nimport type { PoolsStatsFilter } from '../../utils/functions/queryFilters.ts';\nimport { PoolData } from '../../utils/schemas/EnrichedMarketData.ts';\n\nexport const dateFields = ['latest_trade_date', 'created_at'] as const;\nexport const nonNumericPoolValues = ['type', 'explicit'] as const;\nexport const nonNumericValues = ['source', 'deployer'] as const;\n\nexport const MarketBlockchainPairsParamsSchema = z.object({\n blockchain: z.string().optional(),\n blockchains: z.string().optional(),\n sortBy: z.string().optional().default('latest_trade_date'),\n sortOrder: z.enum(['asc', 'desc']).optional().default('desc'),\n factory: z.string().optional(),\n limit: z.coerce.number().max(100).optional().default(100),\n offset: z.coerce.number().optional().default(0),\n advancedFilters: z\n .string()\n .optional()\n .transform((val) => {\n return JSON.parse(val ?? '{}');\n }),\n filters: z\n .string()\n .optional()\n .transform((val) => {\n return val ? val.split(',') : [];\n })\n .transform((filters) => {\n const whereClause: PoolsStatsFilter = {};\n for (const filter of filters) {\n if (filter.includes(':')) {\n const [field, filterMinValue, filterMaxValue] = filter.split(':');\n\n if (field && nonNumericPoolValues.includes(field as (typeof nonNumericPoolValues)[number])) {\n if (!whereClause.pools) {\n whereClause.pools = {};\n }\n (whereClause.pools as any)[field] = {\n equals: filterMinValue === 'false' ? false : filterMinValue === 'true' ? true : filterMinValue,\n };\n } else if (field && nonNumericValues.includes(field as (typeof nonNumericValues)[number])) {\n (whereClause as any)[field] = {\n equals: filterMinValue,\n };\n } else if (field && dateFields.includes(field as (typeof dateFields)[number])) {\n (whereClause as any)[field] = {\n gte: filterMinValue\n ? new Date(Number.isNaN(Number(filterMinValue)) ? filterMinValue : Number(filterMinValue))\n : undefined,\n lte: filterMaxValue\n ? new Date(Number.isNaN(Number(filterMaxValue)) ? filterMaxValue : Number(filterMaxValue))\n : undefined,\n };\n } else if (field) {\n (whereClause as any)[field] = {\n gte: filterMinValue ? Number(filterMinValue) : undefined,\n lte: filterMaxValue ? Number(filterMaxValue) : undefined,\n };\n }\n }\n }\n return whereClause;\n }),\n excludeBonded: z.coerce.boolean().optional().default(false),\n});\n\nexport type MarketBlockchainPairsParams = z.input<typeof MarketBlockchainPairsParamsSchema>;\n\nexport const MarketBlockchainPairsResponseSchema = z.object({\n data: z.array(\n z.object({\n price: z.number(),\n price_change_5min: z.number(),\n price_change_1h: z.number(),\n price_change_4h: z.number(),\n price_change_6h: z.number(),\n price_change_12h: z.number(),\n price_change_24h: z.number(),\n last_trade: z.date().nullable(),\n created_at: z.date().nullable(),\n holders_count: z.number(),\n volume_1min: z.number(),\n volume_5min: z.number(),\n volume_15min: z.number(),\n volume_1h: z.number(),\n volume_4h: z.number(),\n volume_6h: z.number(),\n volume_12h: z.number(),\n volume_24h: z.number(),\n trades_1min: z.number(),\n trades_5min: z.number(),\n trades_15min: z.number(),\n trades_1h: z.number(),\n trades_4h: z.number(),\n trades_6h: z.number(),\n trades_12h: z.number(),\n trades_24h: z.number(),\n liquidity: z.number(),\n pair: PoolData,\n source: z.string().nullable(),\n deployer: z.string().nullable(),\n }),\n ),\n factories: z.record(z.string(), z.any()),\n});\n\nexport type MarketBlockchainPairsResponse = z.infer<typeof MarketBlockchainPairsResponseSchema>;\n",
19
+ "import { z } from 'zod';\n\nexport const MarketBlockchainStatsParamsSchema = z.object({\n blockchain: z.string(),\n factory: z.string().optional(),\n});\n\nexport type MarketBlockchainStatsParams = z.input<typeof MarketBlockchainStatsParamsSchema>;\n\nexport const MarketBlockchainStatsResponseSchema = z.object({\n data: z.object({\n volume_history: z.array(z.array(z.number())),\n volume_change_24h: z.number(),\n volume_change_total: z.number().nullable(),\n liquidity_history: z.array(z.array(z.number())),\n liquidity_change_24h: z.number(),\n liquidity_change_total: z.number().nullable(),\n tokens_history: z.array(z.array(z.number())),\n tokens_change_24h: z.number(),\n tokens_change_total: z.number().nullable(),\n }),\n});\n\nexport type MarketBlockchainStatsResponse = z.infer<typeof MarketBlockchainStatsResponseSchema>;\n",
20
+ "import { z } from 'zod';\n\n// Main AssetQuery schema\nexport const AssetQuery = z\n .object({\n blockchain: z.string().optional(), // Optional blockchain/chainId\n asset: z.string().optional(), // Could be address or name\n symbol: z.string().optional(), // Symbol if provided\n id: z.coerce.number().optional(), // ID if provided\n shouldFetchPriceChange: z\n .union([z.literal('24h'), z.coerce.boolean()])\n .optional()\n .default('24h'),\n })\n .refine(\n (data) => {\n // Ensure at least one of id, asset, or symbol is provided\n return !!(data.id || data.asset || data.symbol);\n },\n {\n message: 'At least one of id, asset, or symbol must be provided.',\n },\n );\n\nexport type AssetQuery = z.infer<typeof AssetQuery>;\nexport type AssetQueryParams = z.input<typeof AssetQuery>;\n\nconst Asset = z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n decimals: z.number().nullable(),\n logo: z.string().nullable(),\n rank: z.number().nullable(),\n price: z.number().nullable(),\n market_cap: z.number(),\n market_cap_diluted: z.number(),\n volume: z.number().nullable(),\n volume_change_24h: z.number().nullable(),\n volume_7d: z.number().nullable(),\n liquidity: z.number(),\n liquidityMax: z.number(),\n ath: z.number().nullable(),\n atl: z.number().nullable(),\n off_chain_volume: z.number().nullable(),\n is_listed: z.boolean(),\n price_change_1h: z.number(),\n price_change_24h: z.number(),\n price_change_7d: z.number(),\n price_change_1m: z.number(),\n price_change_1y: z.number(),\n total_supply: z.number(),\n circulating_supply: z.number(),\n contracts: z.array(\n z.object({\n address: z.string(),\n blockchainId: z.string(),\n blockchain: z.string(),\n decimals: z.number(),\n }),\n ),\n native: z\n .object({\n name: z.string(),\n symbol: z.string(),\n address: z.string(),\n type: z.string(),\n decimals: z.number(),\n logo: z.string(),\n })\n .optional(),\n priceNative: z.number().optional(),\n});\n\nexport const MarketDataResponseSchema = z.object({\n data: Asset,\n});\n\nexport type MarketDataResponse = z.infer<typeof MarketDataResponseSchema>;\n\nexport interface AssetMarketDataOutput {\n id: number | null;\n name: string;\n symbol: string;\n decimals: number | null;\n logo: string | null;\n rank: number | null;\n price: number | null;\n market_cap: number;\n market_cap_diluted: number;\n volume: number;\n volume_change_24h: number | null;\n volume_7d: number | null;\n liquidity: number;\n liquidity_change_24h?: number;\n ath: number | null;\n atl: number | null;\n off_chain_volume: number | null;\n is_listed?: boolean;\n price_change_1h: number;\n price_change_24h: number;\n price_change_7d: number;\n price_change_1m: number;\n price_change_1y: number;\n total_supply: number;\n circulating_supply: number;\n priceNative?: number;\n native?: {\n name: string;\n symbol: string;\n address: string;\n type: 'eth' | 'stable' | 'other' | 'native';\n decimals: number;\n denom?: string;\n logo: string | null;\n id?: number;\n };\n contracts: {\n address: string;\n blockchainId: string;\n blockchain: string;\n decimals: number;\n }[];\n}\n",
21
+ "import { z } from 'zod';\nimport normalizePeriod from '../../utils/functions/period.ts';\nimport DateQuery from '../../utils/schemas/DateQuery.ts';\n\nexport const MarketHistoryPairParamsSchema = z.object({\n blockchain: z.string().optional(),\n asset: z.string().optional(),\n symbol: z.string().optional(),\n address: z.string().optional(),\n baseToken: z.union([z.string(), z.array(z.string())]).optional(),\n from: DateQuery.transform((val) => val ?? 0),\n to: DateQuery.transform((val) => val ?? new Date()),\n period: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return normalizePeriod(val);\n }\n return '5m';\n }),\n amount: z.coerce.number().optional(),\n usd: z\n .union([z.boolean(), z.string()])\n .optional()\n .default(true)\n .transform((val) => {\n if (typeof val === 'boolean') return val;\n if (val === 'false' || val === '0') return false;\n return true;\n }),\n mode: z.enum(['asset', 'pool']).optional().default('pool'),\n});\n\nexport type MarketHistoryPairParams = z.input<typeof MarketHistoryPairParamsSchema>;\n\nexport type MarketHistoryPairInferType = z.infer<typeof MarketHistoryPairParamsSchema>;\n\nexport const MarketHistoryPairResponseSchema = z.object({\n data: z.array(\n z.object({\n volume: z.number(),\n open: z.number(),\n high: z.number(),\n low: z.number(),\n close: z.number(),\n time: z.number(),\n }),\n ),\n});\n\nexport type MarketHistoryPairResponse = z.infer<typeof MarketHistoryPairResponseSchema>;\n",
22
+ "import { z } from 'zod';\n\nconst DateQuery = z.union([z.coerce.number().int().optional(), z.coerce.date().optional()]).transform((val) => {\n if (typeof val === 'undefined') {\n return val;\n }\n\n if (typeof val === 'number') {\n return new Date(val);\n }\n\n if (val instanceof Date) {\n return val;\n }\n\n throw new Error('Invalid date');\n});\nexport type DateQuery = z.infer<typeof DateQuery>;\nexport default DateQuery;\n",
23
+ "import { z } from 'zod';\nimport normalizePeriod from '../../utils/functions/period.ts';\n\nexport const MarketHistoryParamsSchema = z.object({\n blockchain: z.string().optional(),\n asset: z.string().optional(),\n symbol: z.string().optional(),\n period: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return normalizePeriod(val);\n }\n return undefined;\n }),\n id: z.coerce.number().optional(),\n from: z.coerce.number().default(0),\n to: z.coerce.number().default(Date.now),\n});\n\nexport type MarketHistoryParams = z.input<typeof MarketHistoryParamsSchema>;\n\nexport const MarketHistoryResponseSchema = z.object({\n data: z.object({\n price_history: z.array(z.array(z.number().nullable())),\n volume_history: z.array(z.array(z.number().nullable())).optional(),\n market_cap_history: z.array(z.array(z.number().nullable())).optional(),\n market_cap_diluted_history: z.array(z.array(z.number().nullable())).optional(),\n name: z.string().optional(),\n symbol: z.string().optional(),\n blockchain: z.string().optional(),\n address: z.string().optional(),\n }),\n});\n\nexport type MarketHistoryResponse = z.infer<typeof MarketHistoryResponseSchema>;\n",
24
+ "import { z } from 'zod';\nimport { stringOrArray } from '../../utils/schemas/StringOrArray.ts';\n\n// Schema for assets (addresses or names)\nconst assetEntry = z.object({\n type: z.enum(['address', 'name']),\n value: z.string(),\n});\n\nexport const MarketMultiDataAssetParamsSchema = z.object({\n // IDs of assets (string or array, transformed into an array of strings)\n ids: stringOrArray.optional(),\n\n // Symbols of assets (string or array, transformed into an array of strings)\n symbols: stringOrArray.optional(),\n\n // Blockchains (string or array, transformed into an array of chain IDs)\n blockchains: stringOrArray.optional(),\n\n // Assets (addresses or names, string or array of objects)\n assets: z\n .union([\n z.string(), // Ex. \"0x123,bitcoin\"\n z.array(assetEntry), // Or an array of objects { type, value }\n ])\n .optional(),\n\n // Option to fetch price changes (string \"24h\" or boolean)\n shouldFetchPriceChange: z\n .union([z.literal('24h'), z.coerce.boolean()])\n .optional()\n .default(false),\n});\n\nexport type MarketMultiDataAssetParams = z.input<typeof MarketMultiDataAssetParamsSchema>;\n\nconst Asset = z.object({\n key: z.string(),\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n decimals: z.number().nullable(),\n logo: z.string().nullable(),\n rank: z.number().nullable(),\n price: z.number().nullable(),\n market_cap: z.number(),\n market_cap_diluted: z.number(),\n volume: z.number(),\n volume_change_24h: z.number(),\n volume_7d: z.number(),\n liquidity: z.number(),\n ath: z.number().nullable(),\n atl: z.number().nullable(),\n off_chain_volume: z.number(),\n is_listed: z.boolean(),\n price_change_1h: z.number(),\n price_change_24h: z.number(),\n price_change_7d: z.number(),\n price_change_1m: z.number(),\n price_change_1y: z.number(),\n total_supply: z.number(),\n circulating_supply: z.number(),\n contracts: z.array(\n z.object({\n address: z.string(),\n blockchainId: z.string(),\n blockchain: z.string(),\n decimals: z.number(),\n }),\n ),\n});\n\nexport const MarketMultiDataResponseSchema = z.object({\n data: z.record(z.string(), Asset),\n dataArray: z.array(Asset.nullable()),\n});\n\nexport type MarketMultiDataResponse = z.infer<typeof MarketMultiDataResponseSchema>;\n",
25
+ "import { z } from 'zod';\n\nexport const stringOrArray = z.union([z.string(), z.array(z.string())]).transform((value) => {\n if (typeof value === 'string') {\n return value.split(',').map((item) => item.trim()); // Transform a string into an array, removing spaces\n }\n return value; // Return the array as is\n});\n",
26
+ "import { z } from 'zod';\nimport normalizePeriod from '../../utils/functions/period.ts';\n\nexport const MarketMultiHistoryParamsSchema = z.object({\n assets: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',');\n }\n return [];\n }),\n period: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return normalizePeriod(val);\n }\n return undefined;\n }),\n symbols: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',');\n }\n return [];\n }),\n blockchains: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val\n .split(',')\n .map((b) => b.trim())\n .filter((b) => b.length > 0);\n }\n return [];\n }),\n ids: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',').map((i) => Number(i));\n }\n return [];\n }),\n from: z.string().optional(),\n froms: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',').map((v) => Number(v));\n }\n return undefined;\n }),\n to: z.string().optional(),\n tos: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',').map((v) => Number(v));\n }\n return undefined;\n }),\n});\n\nexport type MarketMultiHistoryParams = z.input<typeof MarketMultiHistoryParamsSchema>;\n\nexport const MarketMultiHistoryResponseSchema = z.object({\n data: z.array(\n z.object({\n price_history: z.array(z.array(z.number().nullable())).optional(),\n volume_history: z.array(z.array(z.number().nullable())).optional(),\n market_cap_history: z.array(z.array(z.number().nullable())).optional(),\n market_cap_diluted_history: z.array(z.array(z.number().nullable())).optional(),\n name: z.string(),\n symbol: z.string(),\n address: z.string(),\n id: z.number().nullable().optional(),\n }),\n ),\n});\n\nexport type MarketMultiHistoryResponse = z.infer<typeof MarketMultiHistoryResponseSchema>;\n",
27
+ "import { z } from 'zod';\nimport { stringOrArray } from '../../utils/schemas/StringOrArray.ts';\n\n// Schema for assets (addresses or names)\nconst assetEntry = z.object({\n type: z.enum(['address', 'name']),\n value: z.string(),\n});\n\nexport const MarketMultiPricesParamsSchema = z.object({\n // Blockchains (string or array, transformed into an array of chain IDs)\n blockchains: stringOrArray.optional(),\n\n // Assets (addresses or names, string or array of objects)\n assets: z\n .union([\n z.string(), // Ex. \"0x123,bitcoin\"\n z.array(assetEntry), // Or an array of objects { type, value }\n ])\n .optional(),\n});\n\nexport type MarketMultiPricesParams = z.input<typeof MarketMultiPricesParamsSchema>;\n\nexport const MarketMultiPricesResponseSchema = z.object({\n data: z.record(\n z.string(),\n z.object({\n price: z.number().nullable(),\n name: z.string().nullable(),\n symbol: z.string().nullable(),\n logo: z.string().nullable(),\n }),\n ),\n});\n\nexport type MarketMultiPricesResponse = z.infer<typeof MarketMultiPricesResponseSchema>;\n",
28
+ "import { z } from 'zod';\n\nexport const MarketNftParamsSchema = z.object({\n asset: z.string(),\n chain: z.string(),\n});\n\nexport type MarketNftParams = z.input<typeof MarketNftParamsSchema>;\n\nexport const MarketNftResponseSchema = z.object({\n data: z.object({\n price: z.number(),\n priceETH: z.number(),\n }),\n});\n\nexport type MarketNftResponse = z.infer<typeof MarketNftResponseSchema>;\n",
29
+ "import { z } from 'zod';\nimport { EnrichedPoolDataSchema } from '../../utils/schemas/EnrichedMarketData.ts';\n\nexport const MarketPairParamsSchema = z.object({\n blockchain: z.string().optional(),\n asset: z.string().optional(),\n symbol: z.string().optional(),\n address: z.string().optional(),\n baseToken: z.string().optional(),\n stats: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n force: z.coerce.boolean().optional().default(false),\n});\n\nexport type MarketPairParams = z.input<typeof MarketPairParamsSchema>;\n\nexport const MarketPairResponseSchema = z.object({\n data: EnrichedPoolDataSchema.omit({\n volume_buy_1min: true,\n volume_sell_1min: true,\n volume_buy_5min: true,\n volume_sell_5min: true,\n volume_buy_15min: true,\n volume_sell_15min: true,\n volume_buy_1h: true,\n volume_sell_1h: true,\n volume_buy_4h: true,\n volume_sell_4h: true,\n volume_buy_6h: true,\n volume_sell_6h: true,\n volume_buy_12h: true,\n volume_sell_12h: true,\n volume_buy_24h: true,\n volume_sell_24h: true,\n }).extend({\n buy_volume_1min: z.number().optional(),\n sell_volume_1min: z.number().optional(),\n buy_volume_5min: z.number().optional(),\n sell_volume_5min: z.number().optional(),\n buy_volume_15min: z.number().optional(),\n sell_volume_15min: z.number().optional(),\n buy_volume_1h: z.number().optional(),\n sell_volume_1h: z.number().optional(),\n buy_volume_4h: z.number().optional(),\n sell_volume_4h: z.number().optional(),\n buy_volume_6h: z.number().optional(),\n sell_volume_6h: z.number().optional(),\n buy_volume_12h: z.number().optional(),\n sell_volume_12h: z.number().optional(),\n buy_volume_24h: z.number().optional(),\n sell_volume_24h: z.number().optional(),\n }),\n});\n\nexport type MarketPairResponse = z.infer<typeof MarketPairResponseSchema>;\n",
30
+ "import { z } from 'zod';\nimport { EnrichedPoolDataSchema } from '../../utils/schemas/EnrichedMarketData.ts';\n\nexport const MarketPairsParamsSchema = z.object({\n // Common pagination parameters\n limit: z.coerce.number().max(25).default(25),\n offset: z.string().default('0'),\n // Asset identification fields (mutually exclusive in behavior)\n id: z.coerce.number().optional(),\n asset: z.string().optional(),\n symbol: z.string().optional(),\n blockchain: z.string().optional(),\n tokens: z.string().optional(),\n blockchains: z.string().optional(),\n excludeBonded: z.coerce.boolean().optional().default(false),\n poolType: z.string().optional(),\n});\n\nexport type MarketPairsParams = z.input<typeof MarketPairsParamsSchema>;\nexport type MarketPairInferParams = z.infer<typeof MarketPairsParamsSchema>;\n\nexport const MarketPairsResponseSchema = z.object({\n data: z.object({\n pairs: z.array(EnrichedPoolDataSchema),\n total_count: z.number(),\n }),\n});\n\nexport type MarketPairsResponse = z.infer<typeof MarketPairsResponseSchema>;\n",
31
+ "import { z } from 'zod';\nimport type { GenericWhere } from '../../utils/functions/queryFilters.ts';\n\nconst allowedFields = [\n 'price',\n 'price_change_1h',\n 'price_change_7d',\n 'liquidity',\n 'market_cap',\n 'volume',\n 'price_change_24h',\n 'off_chain_volume',\n] as const;\n\nconst allowedFieldsToNewFormat: Record<(typeof allowedFields)[number], (typeof allowedFieldsNewFormat)[number]> = {\n price: 'priceUSD',\n price_change_1h: 'priceChange1hPercent',\n price_change_7d: 'priceChange7dPercent',\n liquidity: 'liquidityUSD',\n market_cap: 'marketCapUSD',\n volume: 'volume24hUSD',\n price_change_24h: 'priceChange24hPercent',\n off_chain_volume: 'offChainVolumeUSD',\n};\n\nconst allowedFieldsNewFormat = [\n 'priceUSD',\n 'priceChange1hPercent',\n 'priceChange7dPercent',\n 'liquidityUSD',\n 'marketCapUSD',\n 'volume24hUSD',\n 'priceChange24hPercent',\n 'offChainVolumeUSD',\n] as const;\n\nconst allowedFieldsEnum = z.enum(allowedFields);\nconst allowedFieldsNewFormatEnum = z.enum(allowedFieldsNewFormat);\ntype AllowedFieldsType = z.infer<typeof allowedFieldsEnum>;\ntype NewFormatAllowFieldsType = z.infer<typeof allowedFieldsNewFormatEnum>;\n\nconst getNewFormatField = (input: AllowedFieldsType): NewFormatAllowFieldsType => {\n return allowedFieldsToNewFormat[input];\n};\n\nexport const MarketQueryParamsSchema = z\n .object({\n sortBy: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return getNewFormatField(allowedFieldsEnum.parse(val));\n }\n return null;\n }),\n sortOrder: z.string().default('desc'),\n filters: z\n .string()\n .optional()\n .transform((values) => {\n const filters = values ? values.split(',') : [];\n\n if (filters.length > 0) {\n const tmpSubQuery: GenericWhere = {};\n\n for (const filter of filters) {\n if (filter.includes(':')) {\n const orStatements = filter.split('||');\n\n for (const statement of orStatements) {\n const filterPart = statement.split(':');\n\n if (filterPart.length === 2) {\n filterPart.push('');\n }\n\n const [field, min, max] = z\n .tuple([\n allowedFieldsEnum,\n z.coerce.string().default('0'),\n z.coerce.string().default('100000000000000000'),\n ])\n .parse(filterPart);\n\n if (allowedFields.includes(field)) {\n tmpSubQuery[getNewFormatField(field)] = {\n gte: min ? z.coerce.number().parse(min) : undefined,\n lte: max ? z.coerce.number().parse(max) : undefined,\n };\n }\n }\n }\n }\n\n return { AND: [tmpSubQuery] };\n }\n\n return {};\n }),\n blockchain: z.string().optional(),\n blockchains: z\n .string()\n .optional()\n .transform((blockchainsString) => {\n if (!blockchainsString) {\n return [];\n }\n return blockchainsString\n .split(',')\n .map((blockchain) => blockchain.trim())\n .filter((b) => b.length > 0);\n }),\n categories: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',');\n }\n return [];\n }),\n limit: z.coerce.number().default(20),\n offset: z.coerce.number().default(0),\n })\n .transform(({ filters, sortOrder, sortBy, ...data }) => ({\n where: filters,\n orderBy: sortBy ? { [sortBy]: sortOrder } : undefined,\n ...data,\n }));\n\nexport type MarketQueryParams = z.input<typeof MarketQueryParamsSchema>;\n\nexport type MarketQueryInferType = z.infer<typeof MarketQueryParamsSchema>;\n\nexport const MarketQueryResponseSchema = z.array(\n z.object({\n name: z.string(),\n logo: z.string().nullable(),\n symbol: z.string(),\n liquidity: z.number(),\n market_cap: z.number(),\n volume: z.number(),\n off_chain_volume: z.number(),\n price: z.number(),\n price_change_1h: z.number(),\n price_change_24h: z.number(),\n price_change_7d: z.number(),\n categories: z.array(z.string().optional()),\n contracts: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n blockchainId: z.string(),\n decimals: z.number(),\n }),\n ),\n id: z.number(),\n rank: z.number().nullable(),\n }),\n);\n\nexport type MarketQueryResponse = z.infer<typeof MarketQueryResponseSchema>;\n",
32
+ "import { z } from 'zod';\n\nexport const MarketSparklineResponseSchema = z.object({\n url: z.string(),\n});\n\nexport type MarketSparklineResponse = z.infer<typeof MarketSparklineResponseSchema>;\n\nexport const MarketSparklineParamsSchema = z.object({\n asset: z.string().optional(),\n blockchain: z.string().optional(),\n symbol: z.string().optional(),\n id: z.string().optional(),\n timeFrame: z.string().optional().default('24h'),\n png: z.string().optional().default('false'),\n});\n\nexport type MarketSparklineParams = z.input<typeof MarketSparklineParamsSchema>;\n",
33
+ "import { z } from 'zod';\n\nexport const MarketTokenVsMarketParamsSchema = z.object({\n tag: z.string(),\n});\n\nexport type MarketTokenVsMarketParams = z.input<typeof MarketTokenVsMarketParamsSchema>;\n\nexport const selectAssetTokenVsCategory = {\n marketCapUSD: true,\n priceUSD: true,\n priceChange1hPercent: true,\n priceChange24hPercent: true,\n priceChange7dPercent: true,\n priceChange1mPercent: true,\n name: true,\n symbol: true,\n} as const;\n\nexport const selectCategoryTokenVsCategory = {\n id: true,\n marketCapUSD: true,\n marketCapChange24hPercent: true,\n marketCapChange7dPercent: true,\n marketCapChange1mPercent: true,\n name: true,\n volumeUSD: true,\n} as const;\n\nexport const MarketTokenVsMarketResponseSchema = z.object({\n data: z.array(\n z.union([\n z\n .object({\n marketCapUSD: z.number(),\n priceUSD: z.number().nullable(),\n priceChange1hPercent: z.number(),\n priceChange24hPercent: z.number(),\n priceChange7dPercent: z.number(),\n priceChange1mPercent: z.number(),\n name: z.string(),\n symbol: z.string(),\n })\n .nullable(),\n z\n .object({\n id: z.number(),\n marketCapUSD: z.number(),\n marketCapChange24hPercent: z.number(),\n marketCapChange7dPercent: z.number(),\n marketCapChange1mPercent: z.number(),\n name: z.string(),\n volumeUSD: z.number(),\n })\n .nullable(),\n ]),\n ),\n});\n\nexport type MarketTokenVsMarketResponse = z.infer<typeof MarketTokenVsMarketResponseSchema>;\n",
34
+ "import { z } from 'zod';\n\nexport const MarketTotalResponseSchema = z.object({\n market_cap_history: z.array(z.tuple([z.number(), z.number()])),\n market_cap_change_24h: z.string(),\n btc_dominance_history: z.array(z.tuple([z.number(), z.number()])),\n});\n\nexport type MarketTotalResponse = z.infer<typeof MarketTotalResponseSchema>;\n",
35
+ "import { z } from 'zod';\n\nconst allowedFields = ['date', 'amount_usd', 'token_in_amount', 'token_out_amount'] as const;\n\nconst allowedFieldsToNewFormat: Record<(typeof allowedFields)[number], (typeof allowedFieldsNewFormat)[number]> = {\n date: 'date',\n amount_usd: 'volumeUSD',\n token_in_amount: 'amount0',\n token_out_amount: 'amount1',\n};\n\nconst allowedFieldsNewFormat = ['date', 'volumeUSD', 'amount0', 'amount1'] as const;\n\nconst allowedFieldsEnum = z.enum(allowedFields);\nconst allowedFieldsNewFormatEnum = z.enum(allowedFieldsNewFormat);\ntype AllowedFieldsType = z.infer<typeof allowedFieldsEnum>;\ntype NewFormatAllowFieldsType = z.infer<typeof allowedFieldsNewFormatEnum>;\n\nconst getNewFormatField = (input: AllowedFieldsType): NewFormatAllowFieldsType => {\n return allowedFieldsToNewFormat[input];\n};\n\nexport const MarketTradesPairParamsSchema = z.object({\n blockchain: z.string().optional(),\n asset: z\n .string()\n .transform((val) => val.trim())\n .optional(),\n address: z.string().optional(),\n symbol: z.string().optional(),\n limit: z.coerce.number().optional(),\n amount: z.coerce.number().optional(),\n sortBy: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return getNewFormatField(allowedFieldsEnum.parse(val));\n }\n return 'date';\n }),\n sortOrder: z.enum(['asc', 'desc']).default('desc'),\n offset: z.coerce.number().default(0),\n mode: z.enum(['pair', 'asset']).default('pair'),\n transactionSenderAddress: z.string().optional(),\n});\n\nexport type MarketTradesPairParams = z.input<typeof MarketTradesPairParamsSchema>;\n\nexport const MarketTradesPairResponseSchema = z.object({\n data: z.array(\n z.object({\n blockchain: z.string(),\n hash: z.string(),\n pair: z.string(),\n date: z.number(),\n token_price_vs: z.number(),\n token_price: z.number(),\n token_amount: z.number(),\n token_amount_vs: z.number(),\n token_amount_usd: z.number(),\n type: z.string(),\n sender: z.string().nullable(),\n transaction_sender_address: z.string().nullable(),\n token_amount_raw: z.string(),\n token_amount_raw_vs: z.string(),\n operation: z.string(),\n }),\n ),\n});\n\nexport type MarketTradesPairResponse = z.infer<typeof MarketTradesPairResponseSchema>;\n",
36
+ "import { z } from 'zod';\n\nexport const MetadataCategoriesResponseSchema = z.array(\n z.object({\n name: z.string(),\n market_cap: z.number(),\n market_cap_change_24h: z.number(),\n market_cap_change_7d: z.number(),\n }),\n);\nexport type MetadataCategoriesResponse = z.infer<typeof MetadataCategoriesResponseSchema>;\n",
37
+ "import { z } from 'zod';\n\nexport const MetadataNewsParamsSchema = z.object({\n symbols: z.string().transform((val, ctx) => {\n const values = val.split(',');\n if (values.length > 5) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Too many symbols',\n });\n }\n return values;\n }),\n});\n\nexport type MetadataNewsParams = z.input<typeof MetadataNewsParamsSchema>;\n\nexport const CryptoNewsDataSchema = z.array(\n z.object({\n news_url: z.string(),\n image_url: z.string(),\n title: z.string(),\n text: z.string(),\n source_name: z.string(),\n date: z.string(),\n topics: z.array(z.string()),\n sentiment: z.string(),\n type: z.string(),\n tickers: z.array(z.string()),\n }),\n);\n\nexport const MetadataNewsResponseSchema = z.object({\n data: z.array(\n z.object({\n news_url: z.string(),\n image_url: z.string(),\n title: z.string(),\n text: z.string(),\n source_name: z.string(),\n date: z.string(),\n topics: z.array(z.string()),\n sentiment: z.string(),\n type: z.string(),\n tickers: z.array(z.string()),\n }),\n ),\n});\n\nexport type MetadataNewsResponse = z.infer<typeof MetadataNewsResponseSchema>;\n",
38
+ "'use strict';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction isZodType(schema, typeName) {\n var _a;\n return ((_a = schema === null || schema === void 0 ? void 0 : schema._def) === null || _a === void 0 ? void 0 : _a.typeName) === typeName;\n}\nfunction isAnyZodType(schema) {\n return '_def' in schema;\n}\n\nfunction preserveMetadataFromModifier(zod, modifier) {\n const zodModifier = zod.ZodType.prototype[modifier];\n zod.ZodType.prototype[modifier] = function (...args) {\n const result = zodModifier.apply(this, args);\n result._def.openapi = this._def.openapi;\n return result;\n };\n}\nfunction extendZodWithOpenApi(zod) {\n if (typeof zod.ZodType.prototype.openapi !== 'undefined') {\n // This zod instance is already extended with the required methods,\n // doing it again will just result in multiple wrapper methods for\n // `optional` and `nullable`\n return;\n }\n zod.ZodType.prototype.openapi = function (refOrOpenapi, metadata) {\n var _a, _b, _c, _d, _e, _f;\n const openapi = typeof refOrOpenapi === 'string' ? metadata : refOrOpenapi;\n const _g = openapi !== null && openapi !== void 0 ? openapi : {}, { param } = _g, restOfOpenApi = __rest(_g, [\"param\"]);\n const _internal = Object.assign(Object.assign({}, (_a = this._def.openapi) === null || _a === void 0 ? void 0 : _a._internal), (typeof refOrOpenapi === 'string'\n ? { refId: refOrOpenapi }\n : undefined));\n const resultMetadata = Object.assign(Object.assign(Object.assign({}, (_b = this._def.openapi) === null || _b === void 0 ? void 0 : _b.metadata), restOfOpenApi), (((_d = (_c = this._def.openapi) === null || _c === void 0 ? void 0 : _c.metadata) === null || _d === void 0 ? void 0 : _d.param) || param\n ? {\n param: Object.assign(Object.assign({}, (_f = (_e = this._def.openapi) === null || _e === void 0 ? void 0 : _e.metadata) === null || _f === void 0 ? void 0 : _f.param), param),\n }\n : undefined));\n const result = new this.constructor(Object.assign(Object.assign({}, this._def), { openapi: Object.assign(Object.assign({}, (Object.keys(_internal).length > 0 ? { _internal } : undefined)), (Object.keys(resultMetadata).length > 0\n ? { metadata: resultMetadata }\n : undefined)) }));\n if (isZodType(this, 'ZodObject')) {\n const originalExtend = this.extend;\n result.extend = function (...args) {\n var _a, _b, _c, _d, _e, _f, _g;\n const extendedResult = originalExtend.apply(this, args);\n extendedResult._def.openapi = {\n _internal: {\n extendedFrom: ((_b = (_a = this._def.openapi) === null || _a === void 0 ? void 0 : _a._internal) === null || _b === void 0 ? void 0 : _b.refId)\n ? { refId: (_d = (_c = this._def.openapi) === null || _c === void 0 ? void 0 : _c._internal) === null || _d === void 0 ? void 0 : _d.refId, schema: this }\n : (_f = (_e = this._def.openapi) === null || _e === void 0 ? void 0 : _e._internal) === null || _f === void 0 ? void 0 : _f.extendedFrom,\n },\n metadata: (_g = extendedResult._def.openapi) === null || _g === void 0 ? void 0 : _g.metadata,\n };\n return extendedResult;\n };\n }\n return result;\n };\n preserveMetadataFromModifier(zod, 'optional');\n preserveMetadataFromModifier(zod, 'nullable');\n preserveMetadataFromModifier(zod, 'default');\n preserveMetadataFromModifier(zod, 'transform');\n preserveMetadataFromModifier(zod, 'refine');\n const zodDeepPartial = zod.ZodObject.prototype.deepPartial;\n zod.ZodObject.prototype.deepPartial = function () {\n const initialShape = this._def.shape();\n const result = zodDeepPartial.apply(this);\n const resultShape = result._def.shape();\n Object.entries(resultShape).forEach(([key, value]) => {\n var _a, _b;\n value._def.openapi = (_b = (_a = initialShape[key]) === null || _a === void 0 ? void 0 : _a._def) === null || _b === void 0 ? void 0 : _b.openapi;\n });\n result._def.openapi = undefined;\n return result;\n };\n const zodPick = zod.ZodObject.prototype.pick;\n zod.ZodObject.prototype.pick = function (...args) {\n const result = zodPick.apply(this, args);\n result._def.openapi = undefined;\n return result;\n };\n const zodOmit = zod.ZodObject.prototype.omit;\n zod.ZodObject.prototype.omit = function (...args) {\n const result = zodOmit.apply(this, args);\n result._def.openapi = undefined;\n return result;\n };\n}\n\nfunction isEqual(x, y) {\n if (x === null || x === undefined || y === null || y === undefined) {\n return x === y;\n }\n if (x === y || x.valueOf() === y.valueOf()) {\n return true;\n }\n if (Array.isArray(x)) {\n if (!Array.isArray(y)) {\n return false;\n }\n if (x.length !== y.length) {\n return false;\n }\n }\n // if they are strictly equal, they both need to be object at least\n if (!(x instanceof Object) || !(y instanceof Object)) {\n return false;\n }\n // recursive object equality check\n const keysX = Object.keys(x);\n return (Object.keys(y).every(keyY => keysX.indexOf(keyY) !== -1) &&\n keysX.every(key => isEqual(x[key], y[key])));\n}\nclass ObjectSet {\n constructor() {\n this.buckets = new Map();\n }\n put(value) {\n const hashCode = this.hashCodeOf(value);\n const itemsByCode = this.buckets.get(hashCode);\n if (!itemsByCode) {\n this.buckets.set(hashCode, [value]);\n return;\n }\n const alreadyHasItem = itemsByCode.some(_ => isEqual(_, value));\n if (!alreadyHasItem) {\n itemsByCode.push(value);\n }\n }\n contains(value) {\n const hashCode = this.hashCodeOf(value);\n const itemsByCode = this.buckets.get(hashCode);\n if (!itemsByCode) {\n return false;\n }\n return itemsByCode.some(_ => isEqual(_, value));\n }\n values() {\n return [...this.buckets.values()].flat();\n }\n stats() {\n let totalBuckets = 0;\n let totalValues = 0;\n let collisions = 0;\n for (const bucket of this.buckets.values()) {\n totalBuckets += 1;\n totalValues += bucket.length;\n if (bucket.length > 1) {\n collisions += 1;\n }\n }\n const hashEffectiveness = totalBuckets / totalValues;\n return { totalBuckets, collisions, totalValues, hashEffectiveness };\n }\n hashCodeOf(object) {\n let hashCode = 0;\n if (Array.isArray(object)) {\n for (let i = 0; i < object.length; i++) {\n hashCode ^= this.hashCodeOf(object[i]) * i;\n }\n return hashCode;\n }\n if (typeof object === 'string') {\n for (let i = 0; i < object.length; i++) {\n hashCode ^= object.charCodeAt(i) * i;\n }\n return hashCode;\n }\n if (typeof object === 'number') {\n return object;\n }\n if (typeof object === 'object') {\n for (const [key, value] of Object.entries(object)) {\n hashCode ^= this.hashCodeOf(key) + this.hashCodeOf(value !== null && value !== void 0 ? value : '');\n }\n }\n return hashCode;\n }\n}\n\nfunction isUndefined(value) {\n return value === undefined;\n}\nfunction mapValues(object, mapper) {\n const result = {};\n Object.entries(object).forEach(([key, value]) => {\n result[key] = mapper(value);\n });\n return result;\n}\nfunction omit(object, keys) {\n const result = {};\n Object.entries(object).forEach(([key, value]) => {\n if (!keys.some(keyToOmit => keyToOmit === key)) {\n result[key] = value;\n }\n });\n return result;\n}\nfunction omitBy(object, predicate) {\n const result = {};\n Object.entries(object).forEach(([key, value]) => {\n if (!predicate(value, key)) {\n result[key] = value;\n }\n });\n return result;\n}\nfunction compact(arr) {\n return arr.filter((elem) => !isUndefined(elem));\n}\nconst objectEquals = isEqual;\nfunction uniq(values) {\n const set = new ObjectSet();\n values.forEach(value => set.put(value));\n return [...set.values()];\n}\nfunction isString(val) {\n return typeof val === 'string';\n}\n\nfunction getOpenApiMetadata(zodSchema) {\n var _a, _b;\n return omitBy((_b = (_a = zodSchema._def.openapi) === null || _a === void 0 ? void 0 : _a.metadata) !== null && _b !== void 0 ? _b : {}, isUndefined);\n}\n\nclass OpenAPIRegistry {\n constructor(parents) {\n this.parents = parents;\n this._definitions = [];\n }\n get definitions() {\n var _a, _b;\n const parentDefinitions = (_b = (_a = this.parents) === null || _a === void 0 ? void 0 : _a.flatMap(par => par.definitions)) !== null && _b !== void 0 ? _b : [];\n return [...parentDefinitions, ...this._definitions];\n }\n /**\n * Registers a new component schema under /components/schemas/${name}\n */\n register(refId, zodSchema) {\n const schemaWithRefId = this.schemaWithRefId(refId, zodSchema);\n this._definitions.push({ type: 'schema', schema: schemaWithRefId });\n return schemaWithRefId;\n }\n /**\n * Registers a new parameter schema under /components/parameters/${name}\n */\n registerParameter(refId, zodSchema) {\n var _a, _b, _c;\n const schemaWithRefId = this.schemaWithRefId(refId, zodSchema);\n const currentMetadata = (_a = schemaWithRefId._def.openapi) === null || _a === void 0 ? void 0 : _a.metadata;\n const schemaWithMetadata = schemaWithRefId.openapi(Object.assign(Object.assign({}, currentMetadata), { param: Object.assign(Object.assign({}, currentMetadata === null || currentMetadata === void 0 ? void 0 : currentMetadata.param), { name: (_c = (_b = currentMetadata === null || currentMetadata === void 0 ? void 0 : currentMetadata.param) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : refId }) }));\n this._definitions.push({\n type: 'parameter',\n schema: schemaWithMetadata,\n });\n return schemaWithMetadata;\n }\n /**\n * Registers a new path that would be generated under paths:\n */\n registerPath(route) {\n this._definitions.push({\n type: 'route',\n route,\n });\n }\n /**\n * Registers a new webhook that would be generated under webhooks:\n */\n registerWebhook(webhook) {\n this._definitions.push({\n type: 'webhook',\n webhook,\n });\n }\n /**\n * Registers a raw OpenAPI component. Use this if you have a simple object instead of a Zod schema.\n *\n * @param type The component type, e.g. `schemas`, `responses`, `securitySchemes`, etc.\n * @param name The name of the object, it is the key under the component\n * type in the resulting OpenAPI document\n * @param component The actual object to put there\n */\n registerComponent(type, name, component) {\n this._definitions.push({\n type: 'component',\n componentType: type,\n name,\n component,\n });\n return {\n name,\n ref: { $ref: `#/components/${type}/${name}` },\n };\n }\n schemaWithRefId(refId, zodSchema) {\n return zodSchema.openapi(refId);\n }\n}\n\nclass ZodToOpenAPIError {\n constructor(message) {\n this.message = message;\n }\n}\nclass ConflictError extends ZodToOpenAPIError {\n constructor(message, data) {\n super(message);\n this.data = data;\n }\n}\nclass MissingParameterDataError extends ZodToOpenAPIError {\n constructor(data) {\n super(`Missing parameter data, please specify \\`${data.missingField}\\` and other OpenAPI parameter props using the \\`param\\` field of \\`ZodSchema.openapi\\``);\n this.data = data;\n }\n}\nfunction enhanceMissingParametersError(action, paramsToAdd) {\n try {\n return action();\n }\n catch (error) {\n if (error instanceof MissingParameterDataError) {\n throw new MissingParameterDataError(Object.assign(Object.assign({}, error.data), paramsToAdd));\n }\n throw error;\n }\n}\nclass UnknownZodTypeError extends ZodToOpenAPIError {\n constructor(data) {\n super(`Unknown zod object type, please specify \\`type\\` and other OpenAPI props using \\`ZodSchema.openapi\\`.`);\n this.data = data;\n }\n}\n\nclass Metadata {\n static getMetadata(zodSchema) {\n var _a;\n const innerSchema = this.unwrapChained(zodSchema);\n const metadata = zodSchema._def.openapi\n ? zodSchema._def.openapi\n : innerSchema._def.openapi;\n /**\n * Every zod schema can receive a `description` by using the .describe method.\n * That description should be used when generating an OpenApi schema.\n * The `??` bellow makes sure we can handle both:\n * - schema.describe('Test').optional()\n * - schema.optional().describe('Test')\n */\n const zodDescription = (_a = zodSchema.description) !== null && _a !== void 0 ? _a : innerSchema.description;\n // A description provided from .openapi() should be taken with higher precedence\n return {\n _internal: metadata === null || metadata === void 0 ? void 0 : metadata._internal,\n metadata: Object.assign({ description: zodDescription }, metadata === null || metadata === void 0 ? void 0 : metadata.metadata),\n };\n }\n static getInternalMetadata(zodSchema) {\n const innerSchema = this.unwrapChained(zodSchema);\n const openapi = zodSchema._def.openapi\n ? zodSchema._def.openapi\n : innerSchema._def.openapi;\n return openapi === null || openapi === void 0 ? void 0 : openapi._internal;\n }\n static getParamMetadata(zodSchema) {\n var _a, _b;\n const innerSchema = this.unwrapChained(zodSchema);\n const metadata = zodSchema._def.openapi\n ? zodSchema._def.openapi\n : innerSchema._def.openapi;\n /**\n * Every zod schema can receive a `description` by using the .describe method.\n * That description should be used when generating an OpenApi schema.\n * The `??` bellow makes sure we can handle both:\n * - schema.describe('Test').optional()\n * - schema.optional().describe('Test')\n */\n const zodDescription = (_a = zodSchema.description) !== null && _a !== void 0 ? _a : innerSchema.description;\n return {\n _internal: metadata === null || metadata === void 0 ? void 0 : metadata._internal,\n metadata: Object.assign(Object.assign({}, metadata === null || metadata === void 0 ? void 0 : metadata.metadata), { \n // A description provided from .openapi() should be taken with higher precedence\n param: Object.assign({ description: zodDescription }, (_b = metadata === null || metadata === void 0 ? void 0 : metadata.metadata) === null || _b === void 0 ? void 0 : _b.param) }),\n };\n }\n /**\n * A method that omits all custom keys added to the regular OpenAPI\n * metadata properties\n */\n static buildSchemaMetadata(metadata) {\n return omitBy(omit(metadata, ['param']), isUndefined);\n }\n static buildParameterMetadata(metadata) {\n return omitBy(metadata, isUndefined);\n }\n static applySchemaMetadata(initialData, metadata) {\n return omitBy(Object.assign(Object.assign({}, initialData), this.buildSchemaMetadata(metadata)), isUndefined);\n }\n static getRefId(zodSchema) {\n var _a;\n return (_a = this.getInternalMetadata(zodSchema)) === null || _a === void 0 ? void 0 : _a.refId;\n }\n static unwrapChained(schema) {\n return this.unwrapUntil(schema);\n }\n static getDefaultValue(zodSchema) {\n const unwrapped = this.unwrapUntil(zodSchema, 'ZodDefault');\n return unwrapped === null || unwrapped === void 0 ? void 0 : unwrapped._def.defaultValue();\n }\n static unwrapUntil(schema, typeName) {\n if (typeName && isZodType(schema, typeName)) {\n return schema;\n }\n if (isZodType(schema, 'ZodOptional') ||\n isZodType(schema, 'ZodNullable') ||\n isZodType(schema, 'ZodBranded')) {\n return this.unwrapUntil(schema.unwrap(), typeName);\n }\n if (isZodType(schema, 'ZodDefault') || isZodType(schema, 'ZodReadonly')) {\n return this.unwrapUntil(schema._def.innerType, typeName);\n }\n if (isZodType(schema, 'ZodEffects')) {\n return this.unwrapUntil(schema._def.schema, typeName);\n }\n if (isZodType(schema, 'ZodPipeline')) {\n return this.unwrapUntil(schema._def.in, typeName);\n }\n return typeName ? undefined : schema;\n }\n static isOptionalSchema(zodSchema) {\n return zodSchema.isOptional();\n }\n}\n\nclass ArrayTransformer {\n transform(zodSchema, mapNullableType, mapItems) {\n var _a, _b;\n const itemType = zodSchema._def.type;\n return Object.assign(Object.assign({}, mapNullableType('array')), { items: mapItems(itemType), minItems: (_a = zodSchema._def.minLength) === null || _a === void 0 ? void 0 : _a.value, maxItems: (_b = zodSchema._def.maxLength) === null || _b === void 0 ? void 0 : _b.value });\n }\n}\n\nclass BigIntTransformer {\n transform(mapNullableType) {\n return Object.assign(Object.assign({}, mapNullableType('string')), { pattern: `^\\d+$` });\n }\n}\n\nclass DiscriminatedUnionTransformer {\n transform(zodSchema, isNullable, mapNullableOfArray, mapItem, generateSchemaRef) {\n const options = [...zodSchema.options.values()];\n const optionSchema = options.map(mapItem);\n if (isNullable) {\n return {\n oneOf: mapNullableOfArray(optionSchema, isNullable),\n };\n }\n return {\n oneOf: optionSchema,\n discriminator: this.mapDiscriminator(options, zodSchema.discriminator, generateSchemaRef),\n };\n }\n mapDiscriminator(zodObjects, discriminator, generateSchemaRef) {\n // All schemas must be registered to use a discriminator\n if (zodObjects.some(obj => Metadata.getRefId(obj) === undefined)) {\n return undefined;\n }\n const mapping = {};\n zodObjects.forEach(obj => {\n var _a;\n const refId = Metadata.getRefId(obj); // type-checked earlier\n const value = (_a = obj.shape) === null || _a === void 0 ? void 0 : _a[discriminator];\n if (isZodType(value, 'ZodEnum') || isZodType(value, 'ZodNativeEnum')) {\n // Native enums have their keys as both number and strings however the number is an\n // internal representation and the string is the access point for a documentation\n const keys = Object.values(value.enum).filter(isString);\n keys.forEach((enumValue) => {\n mapping[enumValue] = generateSchemaRef(refId);\n });\n return;\n }\n const literalValue = value === null || value === void 0 ? void 0 : value._def.value;\n // This should never happen because Zod checks the disciminator type but to keep the types happy\n if (typeof literalValue !== 'string') {\n throw new Error(`Discriminator ${discriminator} could not be found in one of the values of a discriminated union`);\n }\n mapping[literalValue] = generateSchemaRef(refId);\n });\n return {\n propertyName: discriminator,\n mapping,\n };\n }\n}\n\nclass EnumTransformer {\n transform(zodSchema, mapNullableType) {\n // ZodEnum only accepts strings\n return Object.assign(Object.assign({}, mapNullableType('string')), { enum: zodSchema._def.values });\n }\n}\n\nclass IntersectionTransformer {\n transform(zodSchema, isNullable, mapNullableOfArray, mapItem) {\n const subtypes = this.flattenIntersectionTypes(zodSchema);\n const allOfSchema = {\n allOf: subtypes.map(mapItem),\n };\n if (isNullable) {\n return {\n anyOf: mapNullableOfArray([allOfSchema], isNullable),\n };\n }\n return allOfSchema;\n }\n flattenIntersectionTypes(schema) {\n if (!isZodType(schema, 'ZodIntersection')) {\n return [schema];\n }\n const leftSubTypes = this.flattenIntersectionTypes(schema._def.left);\n const rightSubTypes = this.flattenIntersectionTypes(schema._def.right);\n return [...leftSubTypes, ...rightSubTypes];\n }\n}\n\nclass LiteralTransformer {\n transform(zodSchema, mapNullableType) {\n return Object.assign(Object.assign({}, mapNullableType(typeof zodSchema._def.value)), { enum: [zodSchema._def.value] });\n }\n}\n\n/**\n * Numeric enums have a reverse mapping https://www.typescriptlang.org/docs/handbook/enums.html#reverse-mappings\n * whereas string ones don't.\n *\n * This function checks if an enum is fully numeric - i.e all values are numbers or not.\n * And filters out only the actual enum values when a reverse mapping is apparent.\n */\nfunction enumInfo(enumObject) {\n const keysExceptReverseMappings = Object.keys(enumObject).filter(key => typeof enumObject[enumObject[key]] !== 'number');\n const values = keysExceptReverseMappings.map(key => enumObject[key]);\n const numericCount = values.filter(_ => typeof _ === 'number').length;\n const type = numericCount === 0\n ? 'string'\n : numericCount === values.length\n ? 'numeric'\n : 'mixed';\n return { values, type };\n}\n\nclass NativeEnumTransformer {\n transform(zodSchema, mapNullableType) {\n const { type, values } = enumInfo(zodSchema._def.values);\n if (type === 'mixed') {\n // enum Test {\n // A = 42,\n // B = 'test',\n // }\n //\n // const result = z.nativeEnum(Test).parse('42');\n //\n // This is an error, so we can't just say it's a 'string'\n throw new ZodToOpenAPIError('Enum has mixed string and number values, please specify the OpenAPI type manually');\n }\n return Object.assign(Object.assign({}, mapNullableType(type === 'numeric' ? 'integer' : 'string')), { enum: values });\n }\n}\n\nclass NumberTransformer {\n transform(zodSchema, mapNullableType, getNumberChecks) {\n return Object.assign(Object.assign({}, mapNullableType(zodSchema.isInt ? 'integer' : 'number')), getNumberChecks(zodSchema._def.checks));\n }\n}\n\nclass ObjectTransformer {\n transform(zodSchema, defaultValue, mapNullableType, mapItem) {\n var _a;\n const extendedFrom = (_a = Metadata.getInternalMetadata(zodSchema)) === null || _a === void 0 ? void 0 : _a.extendedFrom;\n const required = this.requiredKeysOf(zodSchema);\n const properties = mapValues(zodSchema._def.shape(), mapItem);\n if (!extendedFrom) {\n return Object.assign(Object.assign(Object.assign(Object.assign({}, mapNullableType('object')), { properties, default: defaultValue }), (required.length > 0 ? { required } : {})), this.generateAdditionalProperties(zodSchema, mapItem));\n }\n const parent = extendedFrom.schema;\n // We want to generate the parent schema so that it can be referenced down the line\n mapItem(parent);\n const keysRequiredByParent = this.requiredKeysOf(parent);\n const propsOfParent = mapValues(parent === null || parent === void 0 ? void 0 : parent._def.shape(), mapItem);\n const propertiesToAdd = Object.fromEntries(Object.entries(properties).filter(([key, type]) => {\n return !objectEquals(propsOfParent[key], type);\n }));\n const additionallyRequired = required.filter(prop => !keysRequiredByParent.includes(prop));\n const objectData = Object.assign(Object.assign(Object.assign(Object.assign({}, mapNullableType('object')), { default: defaultValue, properties: propertiesToAdd }), (additionallyRequired.length > 0\n ? { required: additionallyRequired }\n : {})), this.generateAdditionalProperties(zodSchema, mapItem));\n return {\n allOf: [\n { $ref: `#/components/schemas/${extendedFrom.refId}` },\n objectData,\n ],\n };\n }\n generateAdditionalProperties(zodSchema, mapItem) {\n const unknownKeysOption = zodSchema._def.unknownKeys;\n const catchallSchema = zodSchema._def.catchall;\n if (isZodType(catchallSchema, 'ZodNever')) {\n if (unknownKeysOption === 'strict') {\n return { additionalProperties: false };\n }\n return {};\n }\n return { additionalProperties: mapItem(catchallSchema) };\n }\n requiredKeysOf(objectSchema) {\n return Object.entries(objectSchema._def.shape())\n .filter(([_key, type]) => !Metadata.isOptionalSchema(type))\n .map(([key, _type]) => key);\n }\n}\n\nclass RecordTransformer {\n transform(zodSchema, mapNullableType, mapItem) {\n const propertiesType = zodSchema._def.valueType;\n const keyType = zodSchema._def.keyType;\n const propertiesSchema = mapItem(propertiesType);\n if (isZodType(keyType, 'ZodEnum') || isZodType(keyType, 'ZodNativeEnum')) {\n // Native enums have their keys as both number and strings however the number is an\n // internal representation and the string is the access point for a documentation\n const keys = Object.values(keyType.enum).filter(isString);\n const properties = keys.reduce((acc, curr) => (Object.assign(Object.assign({}, acc), { [curr]: propertiesSchema })), {});\n return Object.assign(Object.assign({}, mapNullableType('object')), { properties });\n }\n return Object.assign(Object.assign({}, mapNullableType('object')), { additionalProperties: propertiesSchema });\n }\n}\n\nclass StringTransformer {\n transform(zodSchema, mapNullableType) {\n var _a, _b, _c;\n const regexCheck = this.getZodStringCheck(zodSchema, 'regex');\n const length = (_a = this.getZodStringCheck(zodSchema, 'length')) === null || _a === void 0 ? void 0 : _a.value;\n const maxLength = Number.isFinite(zodSchema.minLength)\n ? (_b = zodSchema.minLength) !== null && _b !== void 0 ? _b : undefined\n : undefined;\n const minLength = Number.isFinite(zodSchema.maxLength)\n ? (_c = zodSchema.maxLength) !== null && _c !== void 0 ? _c : undefined\n : undefined;\n return Object.assign(Object.assign({}, mapNullableType('string')), { \n // FIXME: https://github.com/colinhacks/zod/commit/d78047e9f44596a96d637abb0ce209cd2732d88c\n minLength: length !== null && length !== void 0 ? length : maxLength, maxLength: length !== null && length !== void 0 ? length : minLength, format: this.mapStringFormat(zodSchema), pattern: regexCheck === null || regexCheck === void 0 ? void 0 : regexCheck.regex.source });\n }\n /**\n * Attempts to map Zod strings to known formats\n * https://json-schema.org/understanding-json-schema/reference/string.html#built-in-formats\n */\n mapStringFormat(zodString) {\n if (zodString.isUUID)\n return 'uuid';\n if (zodString.isEmail)\n return 'email';\n if (zodString.isURL)\n return 'uri';\n if (zodString.isDate)\n return 'date';\n if (zodString.isDatetime)\n return 'date-time';\n if (zodString.isCUID)\n return 'cuid';\n if (zodString.isCUID2)\n return 'cuid2';\n if (zodString.isULID)\n return 'ulid';\n if (zodString.isIP)\n return 'ip';\n if (zodString.isEmoji)\n return 'emoji';\n return undefined;\n }\n getZodStringCheck(zodString, kind) {\n return zodString._def.checks.find((check) => {\n return check.kind === kind;\n });\n }\n}\n\nclass TupleTransformer {\n constructor(versionSpecifics) {\n this.versionSpecifics = versionSpecifics;\n }\n transform(zodSchema, mapNullableType, mapItem) {\n const { items } = zodSchema._def;\n const schemas = items.map(mapItem);\n return Object.assign(Object.assign({}, mapNullableType('array')), this.versionSpecifics.mapTupleItems(schemas));\n }\n}\n\nclass UnionTransformer {\n transform(zodSchema, mapNullableOfArray, mapItem) {\n const options = this.flattenUnionTypes(zodSchema);\n const schemas = options.map(schema => {\n // If any of the underlying schemas of a union is .nullable then the whole union\n // would be nullable. `mapNullableOfArray` would place it where it belongs.\n // Therefor we are stripping the additional nullables from the inner schemas\n // See https://github.com/asteasolutions/zod-to-openapi/issues/149\n const optionToGenerate = this.unwrapNullable(schema);\n return mapItem(optionToGenerate);\n });\n return {\n anyOf: mapNullableOfArray(schemas),\n };\n }\n flattenUnionTypes(schema) {\n if (!isZodType(schema, 'ZodUnion')) {\n return [schema];\n }\n const options = schema._def.options;\n return options.flatMap(option => this.flattenUnionTypes(option));\n }\n unwrapNullable(schema) {\n if (isZodType(schema, 'ZodNullable')) {\n return this.unwrapNullable(schema.unwrap());\n }\n return schema;\n }\n}\n\nclass OpenApiTransformer {\n constructor(versionSpecifics) {\n this.versionSpecifics = versionSpecifics;\n this.objectTransformer = new ObjectTransformer();\n this.stringTransformer = new StringTransformer();\n this.numberTransformer = new NumberTransformer();\n this.bigIntTransformer = new BigIntTransformer();\n this.literalTransformer = new LiteralTransformer();\n this.enumTransformer = new EnumTransformer();\n this.nativeEnumTransformer = new NativeEnumTransformer();\n this.arrayTransformer = new ArrayTransformer();\n this.unionTransformer = new UnionTransformer();\n this.discriminatedUnionTransformer = new DiscriminatedUnionTransformer();\n this.intersectionTransformer = new IntersectionTransformer();\n this.recordTransformer = new RecordTransformer();\n this.tupleTransformer = new TupleTransformer(versionSpecifics);\n }\n transform(zodSchema, isNullable, mapItem, generateSchemaRef, defaultValue) {\n if (isZodType(zodSchema, 'ZodNull')) {\n return this.versionSpecifics.nullType;\n }\n if (isZodType(zodSchema, 'ZodUnknown') || isZodType(zodSchema, 'ZodAny')) {\n return this.versionSpecifics.mapNullableType(undefined, isNullable);\n }\n if (isZodType(zodSchema, 'ZodObject')) {\n return this.objectTransformer.transform(zodSchema, defaultValue, // verified on TS level from input\n // verified on TS level from input\n _ => this.versionSpecifics.mapNullableType(_, isNullable), mapItem);\n }\n const schema = this.transformSchemaWithoutDefault(zodSchema, isNullable, mapItem, generateSchemaRef);\n return Object.assign(Object.assign({}, schema), { default: defaultValue });\n }\n transformSchemaWithoutDefault(zodSchema, isNullable, mapItem, generateSchemaRef) {\n if (isZodType(zodSchema, 'ZodUnknown') || isZodType(zodSchema, 'ZodAny')) {\n return this.versionSpecifics.mapNullableType(undefined, isNullable);\n }\n if (isZodType(zodSchema, 'ZodString')) {\n return this.stringTransformer.transform(zodSchema, schema => this.versionSpecifics.mapNullableType(schema, isNullable));\n }\n if (isZodType(zodSchema, 'ZodNumber')) {\n return this.numberTransformer.transform(zodSchema, schema => this.versionSpecifics.mapNullableType(schema, isNullable), _ => this.versionSpecifics.getNumberChecks(_));\n }\n if (isZodType(zodSchema, 'ZodBigInt')) {\n return this.bigIntTransformer.transform(schema => this.versionSpecifics.mapNullableType(schema, isNullable));\n }\n if (isZodType(zodSchema, 'ZodBoolean')) {\n return this.versionSpecifics.mapNullableType('boolean', isNullable);\n }\n if (isZodType(zodSchema, 'ZodLiteral')) {\n return this.literalTransformer.transform(zodSchema, schema => this.versionSpecifics.mapNullableType(schema, isNullable));\n }\n if (isZodType(zodSchema, 'ZodEnum')) {\n return this.enumTransformer.transform(zodSchema, schema => this.versionSpecifics.mapNullableType(schema, isNullable));\n }\n if (isZodType(zodSchema, 'ZodNativeEnum')) {\n return this.nativeEnumTransformer.transform(zodSchema, schema => this.versionSpecifics.mapNullableType(schema, isNullable));\n }\n if (isZodType(zodSchema, 'ZodArray')) {\n return this.arrayTransformer.transform(zodSchema, _ => this.versionSpecifics.mapNullableType(_, isNullable), mapItem);\n }\n if (isZodType(zodSchema, 'ZodTuple')) {\n return this.tupleTransformer.transform(zodSchema, _ => this.versionSpecifics.mapNullableType(_, isNullable), mapItem);\n }\n if (isZodType(zodSchema, 'ZodUnion')) {\n return this.unionTransformer.transform(zodSchema, _ => this.versionSpecifics.mapNullableOfArray(_, isNullable), mapItem);\n }\n if (isZodType(zodSchema, 'ZodDiscriminatedUnion')) {\n return this.discriminatedUnionTransformer.transform(zodSchema, isNullable, _ => this.versionSpecifics.mapNullableOfArray(_, isNullable), mapItem, generateSchemaRef);\n }\n if (isZodType(zodSchema, 'ZodIntersection')) {\n return this.intersectionTransformer.transform(zodSchema, isNullable, _ => this.versionSpecifics.mapNullableOfArray(_, isNullable), mapItem);\n }\n if (isZodType(zodSchema, 'ZodRecord')) {\n return this.recordTransformer.transform(zodSchema, _ => this.versionSpecifics.mapNullableType(_, isNullable), mapItem);\n }\n if (isZodType(zodSchema, 'ZodDate')) {\n return this.versionSpecifics.mapNullableType('string', isNullable);\n }\n const refId = Metadata.getRefId(zodSchema);\n throw new UnknownZodTypeError({\n currentSchema: zodSchema._def,\n schemaName: refId,\n });\n }\n}\n\nclass OpenAPIGenerator {\n constructor(definitions, versionSpecifics) {\n this.definitions = definitions;\n this.versionSpecifics = versionSpecifics;\n this.schemaRefs = {};\n this.paramRefs = {};\n this.pathRefs = {};\n this.rawComponents = [];\n this.openApiTransformer = new OpenApiTransformer(versionSpecifics);\n this.sortDefinitions();\n }\n generateDocumentData() {\n this.definitions.forEach(definition => this.generateSingle(definition));\n return {\n components: this.buildComponents(),\n paths: this.pathRefs,\n };\n }\n generateComponents() {\n this.definitions.forEach(definition => this.generateSingle(definition));\n return {\n components: this.buildComponents(),\n };\n }\n buildComponents() {\n var _a, _b;\n const rawComponents = {};\n this.rawComponents.forEach(({ componentType, name, component }) => {\n var _a;\n (_a = rawComponents[componentType]) !== null && _a !== void 0 ? _a : (rawComponents[componentType] = {});\n rawComponents[componentType][name] = component;\n });\n return Object.assign(Object.assign({}, rawComponents), { schemas: Object.assign(Object.assign({}, ((_a = rawComponents.schemas) !== null && _a !== void 0 ? _a : {})), this.schemaRefs), parameters: Object.assign(Object.assign({}, ((_b = rawComponents.parameters) !== null && _b !== void 0 ? _b : {})), this.paramRefs) });\n }\n sortDefinitions() {\n const generationOrder = [\n 'schema',\n 'parameter',\n 'component',\n 'route',\n ];\n this.definitions.sort((left, right) => {\n // No type means \"plain zod schema\" => it comes as highest priority based on the array above\n if (!('type' in left)) {\n if (!('type' in right)) {\n return 0;\n }\n return -1;\n }\n if (!('type' in right)) {\n return 1;\n }\n const leftIndex = generationOrder.findIndex(type => type === left.type);\n const rightIndex = generationOrder.findIndex(type => type === right.type);\n return leftIndex - rightIndex;\n });\n }\n generateSingle(definition) {\n if (!('type' in definition)) {\n this.generateSchemaWithRef(definition);\n return;\n }\n switch (definition.type) {\n case 'parameter':\n this.generateParameterDefinition(definition.schema);\n return;\n case 'schema':\n this.generateSchemaWithRef(definition.schema);\n return;\n case 'route':\n this.generateSingleRoute(definition.route);\n return;\n case 'component':\n this.rawComponents.push(definition);\n return;\n }\n }\n generateParameterDefinition(zodSchema) {\n const refId = Metadata.getRefId(zodSchema);\n const result = this.generateParameter(zodSchema);\n if (refId) {\n this.paramRefs[refId] = result;\n }\n return result;\n }\n getParameterRef(schemaMetadata, external) {\n var _a, _b, _c, _d, _e;\n const parameterMetadata = (_a = schemaMetadata === null || schemaMetadata === void 0 ? void 0 : schemaMetadata.metadata) === null || _a === void 0 ? void 0 : _a.param;\n const existingRef = ((_b = schemaMetadata === null || schemaMetadata === void 0 ? void 0 : schemaMetadata._internal) === null || _b === void 0 ? void 0 : _b.refId)\n ? this.paramRefs[(_c = schemaMetadata._internal) === null || _c === void 0 ? void 0 : _c.refId]\n : undefined;\n if (!((_d = schemaMetadata === null || schemaMetadata === void 0 ? void 0 : schemaMetadata._internal) === null || _d === void 0 ? void 0 : _d.refId) || !existingRef) {\n return undefined;\n }\n if ((parameterMetadata && existingRef.in !== parameterMetadata.in) ||\n ((external === null || external === void 0 ? void 0 : external.in) && existingRef.in !== external.in)) {\n throw new ConflictError(`Conflicting location for parameter ${existingRef.name}`, {\n key: 'in',\n values: compact([\n existingRef.in,\n external === null || external === void 0 ? void 0 : external.in,\n parameterMetadata === null || parameterMetadata === void 0 ? void 0 : parameterMetadata.in,\n ]),\n });\n }\n if ((parameterMetadata && existingRef.name !== parameterMetadata.name) ||\n ((external === null || external === void 0 ? void 0 : external.name) && existingRef.name !== (external === null || external === void 0 ? void 0 : external.name))) {\n throw new ConflictError(`Conflicting names for parameter`, {\n key: 'name',\n values: compact([\n existingRef.name,\n external === null || external === void 0 ? void 0 : external.name,\n parameterMetadata === null || parameterMetadata === void 0 ? void 0 : parameterMetadata.name,\n ]),\n });\n }\n return {\n $ref: `#/components/parameters/${(_e = schemaMetadata._internal) === null || _e === void 0 ? void 0 : _e.refId}`,\n };\n }\n generateInlineParameters(zodSchema, location) {\n var _a;\n const metadata = Metadata.getMetadata(zodSchema);\n const parameterMetadata = (_a = metadata === null || metadata === void 0 ? void 0 : metadata.metadata) === null || _a === void 0 ? void 0 : _a.param;\n const referencedSchema = this.getParameterRef(metadata, { in: location });\n if (referencedSchema) {\n return [referencedSchema];\n }\n if (isZodType(zodSchema, 'ZodObject')) {\n const propTypes = zodSchema._def.shape();\n const parameters = Object.entries(propTypes).map(([key, schema]) => {\n var _a, _b;\n const innerMetadata = Metadata.getMetadata(schema);\n const referencedSchema = this.getParameterRef(innerMetadata, {\n in: location,\n name: key,\n });\n if (referencedSchema) {\n return referencedSchema;\n }\n const innerParameterMetadata = (_a = innerMetadata === null || innerMetadata === void 0 ? void 0 : innerMetadata.metadata) === null || _a === void 0 ? void 0 : _a.param;\n if ((innerParameterMetadata === null || innerParameterMetadata === void 0 ? void 0 : innerParameterMetadata.name) &&\n innerParameterMetadata.name !== key) {\n throw new ConflictError(`Conflicting names for parameter`, {\n key: 'name',\n values: [key, innerParameterMetadata.name],\n });\n }\n if ((innerParameterMetadata === null || innerParameterMetadata === void 0 ? void 0 : innerParameterMetadata.in) &&\n innerParameterMetadata.in !== location) {\n throw new ConflictError(`Conflicting location for parameter ${(_b = innerParameterMetadata.name) !== null && _b !== void 0 ? _b : key}`, {\n key: 'in',\n values: [location, innerParameterMetadata.in],\n });\n }\n return this.generateParameter(schema.openapi({ param: { name: key, in: location } }));\n });\n return parameters;\n }\n if ((parameterMetadata === null || parameterMetadata === void 0 ? void 0 : parameterMetadata.in) && parameterMetadata.in !== location) {\n throw new ConflictError(`Conflicting location for parameter ${parameterMetadata.name}`, {\n key: 'in',\n values: [location, parameterMetadata.in],\n });\n }\n return [\n this.generateParameter(zodSchema.openapi({ param: { in: location } })),\n ];\n }\n generateSimpleParameter(zodSchema) {\n var _a;\n const metadata = Metadata.getParamMetadata(zodSchema);\n const paramMetadata = (_a = metadata === null || metadata === void 0 ? void 0 : metadata.metadata) === null || _a === void 0 ? void 0 : _a.param;\n // TODO: Why are we not unwrapping here for isNullable as well?\n const required = !Metadata.isOptionalSchema(zodSchema) && !zodSchema.isNullable();\n const schema = this.generateSchemaWithRef(zodSchema);\n return Object.assign({ schema,\n required }, (paramMetadata ? Metadata.buildParameterMetadata(paramMetadata) : {}));\n }\n generateParameter(zodSchema) {\n var _a;\n const metadata = Metadata.getMetadata(zodSchema);\n const paramMetadata = (_a = metadata === null || metadata === void 0 ? void 0 : metadata.metadata) === null || _a === void 0 ? void 0 : _a.param;\n const paramName = paramMetadata === null || paramMetadata === void 0 ? void 0 : paramMetadata.name;\n const paramLocation = paramMetadata === null || paramMetadata === void 0 ? void 0 : paramMetadata.in;\n if (!paramName) {\n throw new MissingParameterDataError({ missingField: 'name' });\n }\n if (!paramLocation) {\n throw new MissingParameterDataError({\n missingField: 'in',\n paramName,\n });\n }\n const baseParameter = this.generateSimpleParameter(zodSchema);\n return Object.assign(Object.assign({}, baseParameter), { in: paramLocation, name: paramName });\n }\n generateSchemaWithMetadata(zodSchema) {\n var _a;\n const innerSchema = Metadata.unwrapChained(zodSchema);\n const metadata = Metadata.getMetadata(zodSchema);\n const defaultValue = Metadata.getDefaultValue(zodSchema);\n const result = ((_a = metadata === null || metadata === void 0 ? void 0 : metadata.metadata) === null || _a === void 0 ? void 0 : _a.type)\n ? { type: metadata === null || metadata === void 0 ? void 0 : metadata.metadata.type }\n : this.toOpenAPISchema(innerSchema, zodSchema.isNullable(), defaultValue);\n return (metadata === null || metadata === void 0 ? void 0 : metadata.metadata)\n ? Metadata.applySchemaMetadata(result, metadata.metadata)\n : omitBy(result, isUndefined);\n }\n /**\n * Same as above but applies nullable\n */\n constructReferencedOpenAPISchema(zodSchema) {\n var _a;\n const metadata = Metadata.getMetadata(zodSchema);\n const innerSchema = Metadata.unwrapChained(zodSchema);\n const defaultValue = Metadata.getDefaultValue(zodSchema);\n const isNullableSchema = zodSchema.isNullable();\n if ((_a = metadata === null || metadata === void 0 ? void 0 : metadata.metadata) === null || _a === void 0 ? void 0 : _a.type) {\n return this.versionSpecifics.mapNullableType(metadata.metadata.type, isNullableSchema);\n }\n return this.toOpenAPISchema(innerSchema, isNullableSchema, defaultValue);\n }\n /**\n * Generates an OpenAPI SchemaObject or a ReferenceObject with all the provided metadata applied\n */\n generateSimpleSchema(zodSchema) {\n var _a;\n const metadata = Metadata.getMetadata(zodSchema);\n const refId = Metadata.getRefId(zodSchema);\n if (!refId || !this.schemaRefs[refId]) {\n return this.generateSchemaWithMetadata(zodSchema);\n }\n const schemaRef = this.schemaRefs[refId];\n const referenceObject = {\n $ref: this.generateSchemaRef(refId),\n };\n // Metadata provided from .openapi() that is new to what we had already registered\n const newMetadata = omitBy(Metadata.buildSchemaMetadata((_a = metadata === null || metadata === void 0 ? void 0 : metadata.metadata) !== null && _a !== void 0 ? _a : {}), (value, key) => value === undefined || objectEquals(value, schemaRef[key]));\n // Do not calculate schema metadata overrides if type is provided in .openapi\n // https://github.com/asteasolutions/zod-to-openapi/pull/52/files/8ff707fe06e222bc573ed46cf654af8ee0b0786d#r996430801\n if (newMetadata.type) {\n return {\n allOf: [referenceObject, newMetadata],\n };\n }\n // New metadata from ZodSchema properties.\n const newSchemaMetadata = omitBy(this.constructReferencedOpenAPISchema(zodSchema), (value, key) => value === undefined || objectEquals(value, schemaRef[key]));\n const appliedMetadata = Metadata.applySchemaMetadata(newSchemaMetadata, newMetadata);\n if (Object.keys(appliedMetadata).length > 0) {\n return {\n allOf: [referenceObject, appliedMetadata],\n };\n }\n return referenceObject;\n }\n /**\n * Same as `generateSchema` but if the new schema is added into the\n * referenced schemas, it would return a ReferenceObject and not the\n * whole result.\n *\n * Should be used for nested objects, arrays, etc.\n */\n generateSchemaWithRef(zodSchema) {\n const refId = Metadata.getRefId(zodSchema);\n const result = this.generateSimpleSchema(zodSchema);\n if (refId && this.schemaRefs[refId] === undefined) {\n this.schemaRefs[refId] = result;\n return { $ref: this.generateSchemaRef(refId) };\n }\n return result;\n }\n generateSchemaRef(refId) {\n return `#/components/schemas/${refId}`;\n }\n getRequestBody(requestBody) {\n if (!requestBody) {\n return;\n }\n const { content } = requestBody, rest = __rest(requestBody, [\"content\"]);\n const requestBodyContent = this.getBodyContent(content);\n return Object.assign(Object.assign({}, rest), { content: requestBodyContent });\n }\n getParameters(request) {\n if (!request) {\n return [];\n }\n const { headers } = request;\n const query = this.cleanParameter(request.query);\n const params = this.cleanParameter(request.params);\n const cookies = this.cleanParameter(request.cookies);\n const queryParameters = enhanceMissingParametersError(() => (query ? this.generateInlineParameters(query, 'query') : []), { location: 'query' });\n const pathParameters = enhanceMissingParametersError(() => (params ? this.generateInlineParameters(params, 'path') : []), { location: 'path' });\n const cookieParameters = enhanceMissingParametersError(() => (cookies ? this.generateInlineParameters(cookies, 'cookie') : []), { location: 'cookie' });\n const headerParameters = enhanceMissingParametersError(() => {\n if (Array.isArray(headers)) {\n return headers.flatMap(header => this.generateInlineParameters(header, 'header'));\n }\n const cleanHeaders = this.cleanParameter(headers);\n return cleanHeaders\n ? this.generateInlineParameters(cleanHeaders, 'header')\n : [];\n }, { location: 'header' });\n return [\n ...pathParameters,\n ...queryParameters,\n ...headerParameters,\n ...cookieParameters,\n ];\n }\n cleanParameter(schema) {\n if (!schema) {\n return undefined;\n }\n return isZodType(schema, 'ZodEffects')\n ? this.cleanParameter(schema._def.schema)\n : schema;\n }\n generatePath(route) {\n const { method, path, request, responses } = route, pathItemConfig = __rest(route, [\"method\", \"path\", \"request\", \"responses\"]);\n const generatedResponses = mapValues(responses, response => {\n return this.getResponse(response);\n });\n const parameters = enhanceMissingParametersError(() => this.getParameters(request), { route: `${method} ${path}` });\n const requestBody = this.getRequestBody(request === null || request === void 0 ? void 0 : request.body);\n const routeDoc = {\n [method]: Object.assign(Object.assign(Object.assign(Object.assign({}, pathItemConfig), (parameters.length > 0\n ? {\n parameters: [...(pathItemConfig.parameters || []), ...parameters],\n }\n : {})), (requestBody ? { requestBody } : {})), { responses: generatedResponses }),\n };\n return routeDoc;\n }\n generateSingleRoute(route) {\n const routeDoc = this.generatePath(route);\n this.pathRefs[route.path] = Object.assign(Object.assign({}, this.pathRefs[route.path]), routeDoc);\n return routeDoc;\n }\n getResponse(response) {\n if (this.isReferenceObject(response)) {\n return response;\n }\n const { content, headers } = response, rest = __rest(response, [\"content\", \"headers\"]);\n const responseContent = content\n ? { content: this.getBodyContent(content) }\n : {};\n if (!headers) {\n return Object.assign(Object.assign({}, rest), responseContent);\n }\n const responseHeaders = isZodType(headers, 'ZodObject')\n ? this.getResponseHeaders(headers)\n : // This is input data so it is okay to cast in the common generator\n // since this is the user's responsibility to keep it correct\n headers;\n return Object.assign(Object.assign(Object.assign({}, rest), { headers: responseHeaders }), responseContent);\n }\n isReferenceObject(schema) {\n return '$ref' in schema;\n }\n getResponseHeaders(headers) {\n const schemaShape = headers._def.shape();\n const responseHeaders = mapValues(schemaShape, _ => this.generateSimpleParameter(_));\n return responseHeaders;\n }\n getBodyContent(content) {\n return mapValues(content, config => {\n if (!config || !isAnyZodType(config.schema)) {\n return config;\n }\n const { schema: configSchema } = config, rest = __rest(config, [\"schema\"]);\n const schema = this.generateSchemaWithRef(configSchema);\n return Object.assign({ schema }, rest);\n });\n }\n toOpenAPISchema(zodSchema, isNullable, defaultValue) {\n return this.openApiTransformer.transform(zodSchema, isNullable, _ => this.generateSchemaWithRef(_), _ => this.generateSchemaRef(_), defaultValue);\n }\n}\n\nclass OpenApiGeneratorV30Specifics {\n get nullType() {\n return { nullable: true };\n }\n mapNullableOfArray(objects, isNullable) {\n if (isNullable) {\n return [...objects, this.nullType];\n }\n return objects;\n }\n mapNullableType(type, isNullable) {\n return Object.assign(Object.assign({}, (type ? { type } : undefined)), (isNullable ? this.nullType : undefined));\n }\n mapTupleItems(schemas) {\n const uniqueSchemas = uniq(schemas);\n return {\n items: uniqueSchemas.length === 1\n ? uniqueSchemas[0]\n : { anyOf: uniqueSchemas },\n minItems: schemas.length,\n maxItems: schemas.length,\n };\n }\n getNumberChecks(checks) {\n return Object.assign({}, ...checks.map(check => {\n switch (check.kind) {\n case 'min':\n return check.inclusive\n ? { minimum: Number(check.value) }\n : { minimum: Number(check.value), exclusiveMinimum: true };\n case 'max':\n return check.inclusive\n ? { maximum: Number(check.value) }\n : { maximum: Number(check.value), exclusiveMaximum: true };\n default:\n return {};\n }\n }));\n }\n}\n\nclass OpenApiGeneratorV3 {\n constructor(definitions) {\n const specifics = new OpenApiGeneratorV30Specifics();\n this.generator = new OpenAPIGenerator(definitions, specifics);\n }\n generateDocument(config) {\n const baseData = this.generator.generateDocumentData();\n return Object.assign(Object.assign({}, config), baseData);\n }\n generateComponents() {\n return this.generator.generateComponents();\n }\n}\n\nclass OpenApiGeneratorV31Specifics {\n get nullType() {\n return { type: 'null' };\n }\n mapNullableOfArray(objects, isNullable) {\n if (isNullable) {\n return [...objects, this.nullType];\n }\n return objects;\n }\n mapNullableType(type, isNullable) {\n if (!type) {\n // 'null' is considered a type in Open API 3.1.0 => not providing a type includes null\n return {};\n }\n // Open API 3.1.0 made the `nullable` key invalid and instead you use type arrays\n if (isNullable) {\n return {\n type: Array.isArray(type) ? [...type, 'null'] : [type, 'null'],\n };\n }\n return {\n type,\n };\n }\n mapTupleItems(schemas) {\n return {\n prefixItems: schemas,\n };\n }\n getNumberChecks(checks) {\n return Object.assign({}, ...checks.map(check => {\n switch (check.kind) {\n case 'min':\n return check.inclusive\n ? { minimum: Number(check.value) }\n : { exclusiveMinimum: Number(check.value) };\n case 'max':\n return check.inclusive\n ? { maximum: Number(check.value) }\n : { exclusiveMaximum: Number(check.value) };\n default:\n return {};\n }\n }));\n }\n}\n\nfunction isWebhookDefinition(definition) {\n return 'type' in definition && definition.type === 'webhook';\n}\nclass OpenApiGeneratorV31 {\n constructor(definitions) {\n this.definitions = definitions;\n this.webhookRefs = {};\n const specifics = new OpenApiGeneratorV31Specifics();\n this.generator = new OpenAPIGenerator(this.definitions, specifics);\n }\n generateDocument(config) {\n const baseDocument = this.generator.generateDocumentData();\n this.definitions\n .filter(isWebhookDefinition)\n .forEach(definition => this.generateSingleWebhook(definition.webhook));\n return Object.assign(Object.assign(Object.assign({}, config), baseDocument), { webhooks: this.webhookRefs });\n }\n generateComponents() {\n return this.generator.generateComponents();\n }\n generateSingleWebhook(route) {\n const routeDoc = this.generator.generatePath(route);\n this.webhookRefs[route.path] = Object.assign(Object.assign({}, this.webhookRefs[route.path]), routeDoc);\n return routeDoc;\n }\n}\n\nexports.OpenAPIRegistry = OpenAPIRegistry;\nexports.OpenApiGeneratorV3 = OpenApiGeneratorV3;\nexports.OpenApiGeneratorV31 = OpenApiGeneratorV31;\nexports.extendZodWithOpenApi = extendZodWithOpenApi;\nexports.getOpenApiMetadata = getOpenApiMetadata;\n",
39
+ "import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi';\nimport { z } from 'zod';\n\nextendZodWithOpenApi(z);\n\nexport const MetadataParamsSchema = z\n .object({\n symbol: z.string().optional(),\n id: z.string().optional(),\n asset: z.string().optional(),\n blockchain: z.string().optional(),\n force: z.coerce.boolean().optional().default(false),\n full: z.coerce.boolean().optional().default(true),\n })\n .strict();\n\nexport type MetadataParams = z.input<typeof MetadataParamsSchema>;\n\nexport const MultiMetadataParamsSchema = z\n .object({\n ids: z.string().optional(),\n assets: z.string().optional(),\n blockchains: z.string().optional(),\n symbols: z.string().optional(),\n })\n .strict()\n .transform((data) => {\n return {\n ids: data.ids ? data.ids.split(',') : undefined,\n assets: data.assets ? data.assets.split(',') : undefined,\n blockchains: data.blockchains ? data.blockchains.split(',') : undefined,\n symbols: data.symbols ? data.symbols.split(',') : undefined,\n };\n });\n\nexport type MultiMetadataParams = z.input<typeof MultiMetadataParamsSchema>;\n\nexport const MetadataResponseSchema = z.object({\n data: z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n rank: z.number().nullable().optional(),\n contracts: z.array(z.string()),\n blockchains: z.array(z.string()),\n decimals: z.array(z.number()),\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n logo: z.string().nullable(),\n price: z.number().nullable(),\n market_cap: z.number(),\n liquidity: z.number(),\n volume: z.number(),\n description: z.string().nullable(),\n kyc: z.string().nullable(),\n audit: z.string().nullable(),\n total_supply_contracts: z.array(z.string()),\n circulating_supply_addresses: z.array(z.string()),\n total_supply: z.number(),\n circulating_supply: z.number(),\n discord: z.string().nullable(),\n max_supply: z.number().nullable(),\n chat: z.string().nullable(),\n tags: z.array(z.string()),\n investors: z.array(\n z.object({\n lead: z.boolean(),\n name: z.string(),\n type: z.string(),\n image: z.string(),\n country_name: z.string(),\n description: z.string(),\n }),\n ),\n distribution: z.array(\n z.object({\n percentage: z.number(),\n name: z.string(),\n }),\n ),\n release_schedule: z.array(\n z.object({\n allocation_details: z.record(z.string(), z.number()),\n tokens_to_unlock: z.number(),\n unlock_date: z.number(),\n }),\n ),\n cexs: z.array(\n z.object({\n logo: z.string().nullable(),\n name: z.string().nullable(),\n id: z.string(),\n }),\n ),\n listed_at: z.date().nullable(),\n deployer: z.string().nullable(),\n source: z.string().nullable(),\n others: z.record(z.string(), z.unknown()).nullable().optional(),\n dexscreener_listed: z.boolean().nullable().optional(),\n dexscreener_header: z.string().nullable().optional(),\n dexscreener_ad_paid: z.boolean().nullable().optional(),\n live_status: z.string().nullable().optional(),\n live_thumbnail: z.string().nullable().optional(),\n livestream_title: z.string().nullable().optional(),\n live_reply_count: z.number().nullable().optional(),\n telegram: z.string().nullable().optional(),\n twitterRenameCount: z.number().nullable().optional(),\n twitterRenameHistory: z\n .array(\n z.object({\n username: z.string(),\n last_checked: z.string(),\n }),\n )\n .nullable()\n .optional(),\n }),\n});\n\nexport type MetadataResponse = z.infer<typeof MetadataResponseSchema>;\n\nexport const MultiMetadataResponseSchema = z.object({\n data: z.array(MetadataResponseSchema.optional()),\n});\n\nexport type MultiMetadataResponse = z.infer<typeof MultiMetadataResponseSchema>;\n",
40
+ "import { z } from 'zod';\n\nexport const MetadataTrendingsParamsSchema = z\n .object({\n platform: z.string().transform((x) => (x !== undefined && x !== null ? x.toLocaleLowerCase() : x)),\n blockchain: z.string().transform((x) => (x !== undefined && x !== null ? x.toLocaleLowerCase() : x)),\n })\n .partial();\n\nexport type MetadataTrendingsParams = z.input<typeof MetadataTrendingsParamsSchema>;\n\nexport const MetadataTrendingsResponseSchema = z.array(\n z.object({\n name: z.string().nullable(),\n symbol: z.string().nullable(),\n contracts: z.array(\n z\n .object({\n address: z.string(),\n blockchain: z.string(),\n decimals: z.number(),\n })\n .optional(),\n ),\n price_change_24h: z.number(),\n price: z.number(),\n logo: z.string().nullable(),\n trending_score: z.number(),\n pair: z.string().nullable(),\n platforms: z.array(\n z.object({\n name: z.string(),\n rank: z.number(),\n weigth: z.number(),\n }),\n ),\n }),\n);\n\nexport type MetadataTrendingsResponse = z.infer<typeof MetadataTrendingsResponseSchema>;\n",
41
+ "import { z } from 'zod';\n\nexport const SystemMetadataResponseSchema = z.object({\n data: z.object({\n poolTypes: z.array(z.string()),\n chains: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n blockExplorers: z\n .object({\n default: z.object({\n name: z.string(),\n url: z.string(),\n apiUrl: z.string().optional(),\n }),\n })\n .optional(),\n }),\n ),\n factories: z.array(\n z.object({\n chainId: z.string(),\n address: z.string(),\n name: z.string().optional(),\n ui_name: z.string().optional(),\n logo: z.string().optional(),\n }),\n ),\n }),\n});\n\nexport type SystemMetadataResponse = z.infer<typeof SystemMetadataResponseSchema>;\n",
42
+ "import { z } from 'zod';\nexport const walletSchema = z.object({\n wallet: z.string(),\n});\n",
43
+ "import { z } from 'zod';\n\nexport const formattedJSONSchema = z.object({\n name: z.string(),\n symbol: z.string(),\n type: z.string(),\n description: z.string(),\n categories: z.array(z.string()),\n completed: z.boolean(),\n links: z.object({\n website: z.string(),\n twitter: z.string(),\n telegram: z.string(),\n discord: z.string(),\n github: z.string(),\n audits: z.array(z.string()),\n kycs: z.array(z.string()),\n }),\n contracts: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n blockchain_id: z.number(),\n }),\n ),\n totalSupplyContracts: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n blockchain_id: z.number(),\n }),\n ),\n excludedFromCirculationAddresses: z.array(z.string()),\n tokenomics: z.object({\n distribution: z.array(z.string()),\n sales: z.array(z.string()),\n vestingSchedule: z.array(z.string()),\n fees: z.array(z.string()),\n }),\n init: z.boolean(),\n logo: z.string(),\n});\n",
44
+ "import { z } from 'zod';\n\nexport const logoUrlSchema = z.object({\n assetName: z.string(),\n logoUrl: z.string(),\n});\n",
45
+ "import { z } from 'zod';\nimport {\n EnrichedPoolDataSchema,\n EnrichedTokenDataSchema,\n type PulseEnrichedPoolData,\n type PulseEnrichedTokenData,\n} from '../../utils/schemas/EnrichedMarketData.ts';\n\n// Pulse V2 model - current version\nexport const PulsePayloadParamsSchema = z.object({\n model: z.enum(['default']).optional(),\n subscriptionId: z.string().optional(),\n compressed: z.coerce.boolean().optional().default(false),\n assetMode: z.coerce.boolean().optional().default(false),\n chainId: z.union([z.string(), z.array(z.string())]).optional(),\n poolTypes: z.union([z.string(), z.array(z.string())]).optional(),\n excludeDuplicates: z.coerce.boolean().optional().default(true),\n instanceTracking: z.coerce.boolean().optional().default(false),\n pagination: z.coerce.boolean().optional(),\n views: z\n .array(\n z.object({\n name: z.string(),\n model: z.enum(['new', 'bonding', 'bonded']).optional(),\n chainId: z.union([z.string(), z.array(z.string())]).optional(),\n poolTypes: z.union([z.string(), z.array(z.string())]).optional(),\n token: z\n .union([z.string(), z.record(z.unknown())])\n .optional()\n .transform((val) => {\n if (typeof val === 'object' && val !== null) {\n return val;\n }\n\n if (typeof val === 'string') {\n try {\n const parsed = JSON.parse(val);\n if (typeof parsed === 'object' && parsed !== null) {\n return parsed;\n }\n } catch {\n // If parsing fails, treat as address filter\n return { address: val };\n }\n }\n\n return undefined;\n }),\n assets: z.union([z.string(), z.array(z.string())]).optional(),\n sortBy: z.string().optional(),\n sortOrder: z.enum(['asc', 'desc']).optional(),\n limit: z.coerce.number().max(100).optional().default(30),\n offset: z.coerce.number().optional().default(0),\n addressToExclude: z.union([z.string(), z.array(z.string())]).optional(),\n baseTokenToExclude: z.union([z.string(), z.array(z.string())]).optional(),\n filters: z\n .union([z.string(), z.record(z.unknown())])\n .optional()\n .transform((val) => {\n if (typeof val === 'object' && val !== null) {\n return val;\n }\n\n if (typeof val === 'string') {\n try {\n const parsed = JSON.parse(val);\n if (typeof parsed === 'object' && parsed !== null) {\n return parsed;\n }\n } catch {\n const filters = val.split(',');\n const whereClause: Record<string, unknown> = {};\n\n for (const filter of filters) {\n if (filter.includes(':')) {\n const [field, filterMinValue, filterMaxValue] = filter.split(':');\n\n if (field && ['source', 'deployer'].includes(field)) {\n whereClause[field] = {\n equals: filterMinValue,\n };\n } else if (field && ['latest_trade_date', 'created_at'].includes(field)) {\n const getDateValue = (value: string | undefined) => {\n if (!value || value === 'null' || value === 'undefined') return undefined;\n const numValue = Number(value);\n const date = Number.isNaN(numValue) ? new Date(value) : new Date(numValue);\n return Number.isNaN(date.getTime()) ? undefined : date;\n };\n\n const gteDate = getDateValue(filterMinValue);\n const lteDate = getDateValue(filterMaxValue);\n\n if (gteDate || lteDate) {\n whereClause[field] = {\n ...(gteDate && { gte: gteDate }),\n ...(lteDate && { lte: lteDate }),\n };\n }\n } else if (field === 'market_cap') {\n whereClause[field] = {\n not: filterMinValue === 'null' ? null : undefined,\n gte: filterMinValue && filterMinValue !== 'null' ? Number(filterMinValue) : undefined,\n lte: filterMaxValue ? Number(filterMaxValue) : undefined,\n };\n } else if (field) {\n whereClause[field] = {\n gte: filterMinValue ? Number(filterMinValue) : undefined,\n lte: filterMaxValue ? Number(filterMaxValue) : undefined,\n };\n }\n }\n }\n return whereClause;\n }\n }\n\n return {};\n }),\n\n min_socials: z\n .union([\n z.number().int().min(1).max(3),\n z\n .string()\n .transform((val) => {\n const num = Number(val);\n if (Number.isNaN(num)) throw new Error('Invalid number');\n return num;\n })\n .pipe(z.number().int().min(1).max(3)),\n ])\n .optional(),\n pagination: z.coerce.boolean().optional(),\n }),\n )\n .max(10)\n .optional()\n .default([]),\n});\n\nexport type PulsePayloadParams = z.input<typeof PulsePayloadParamsSchema>;\n\nexport const PausePulsePayloadParamsSchema = z.object({\n action: z.enum(['pause', 'unpause']),\n views: z.array(z.string()).min(1),\n});\n\nexport type PausePayloadParams = z.input<typeof PausePulsePayloadParamsSchema>;\nexport type PausePayloadInferType = z.infer<typeof PausePulsePayloadParamsSchema>;\n\nexport type PulseViewData = {\n data: PulseEnrichedPoolData[] | PulseEnrichedTokenData[];\n pagination?: number;\n};\n\nexport interface PulseResponseData {\n [key: string]: PulseViewData | string;\n}\n\nexport type PulseResponse = PulseResponseData | Buffer;\n\nconst ViewPaginationSchema = z.object({\n pagination: z.number(),\n});\n\n// The entire response is a record with string keys and pagination objects\nexport const PulsePaginationResponseSchema = z.record(ViewPaginationSchema);\nexport type PulsePaginationResponse = z.infer<typeof PulsePaginationResponseSchema>;\n\nexport const DebugPulseViewsResponseSchema = z.object({\n success: z.boolean(),\n hostname: z.string(),\n viewKeys: z.record(z.array(z.string())).optional(),\n error: z.string().optional(),\n});\n\nexport type DebugPulseViewsResponse = z.infer<typeof DebugPulseViewsResponseSchema>;\n\nexport const PulseQuerySchema = z.object({\n blockchains: z.string().optional(),\n //factory: z.string().optional(),\n factories: z.string().optional(),\n});\n\nexport type PulseQuery = z.infer<typeof PulseQuerySchema>;\nexport const poolDataSchema = EnrichedPoolDataSchema;\nexport type PoolDataSchema = z.infer<typeof poolDataSchema>;\nexport const tokenDataSchema = EnrichedTokenDataSchema;\nexport type TokenDataSchema = z.infer<typeof tokenDataSchema>;\n\nexport const syncMessageSchema = z.object({\n type: z.literal('sync'),\n payload: z.record(\n z.string(),\n z.object({\n data: z.array(poolDataSchema),\n }),\n ),\n});\n\nexport const newPoolMessageSchema = z.object({\n type: z.literal('new-pool'),\n payload: z.object({\n viewName: z.string(),\n pool: poolDataSchema,\n }),\n});\n\nexport const updatePoolMessageSchema = z.object({\n type: z.literal('update-pool'),\n payload: z.object({\n viewName: z.string(),\n pool: poolDataSchema,\n }),\n});\n\nexport const removePoolMessageSchema = z.object({\n type: z.literal('remove-pool'),\n payload: z.object({\n viewName: z.string(),\n poolAddress: z.string(),\n }),\n});\n\nexport const WebSocketMessageSchema = z.discriminatedUnion('type', [\n syncMessageSchema,\n newPoolMessageSchema,\n updatePoolMessageSchema,\n removePoolMessageSchema,\n]);\n\nexport const PulseOutputSchema = WebSocketMessageSchema;\n\nexport type PulseOutput = z.infer<typeof PulseOutputSchema>;\nexport type WebSocketMessage = z.infer<typeof WebSocketMessageSchema>;\nexport type SyncMessage = z.infer<typeof syncMessageSchema>;\nexport type NewPoolMessage = z.infer<typeof newPoolMessageSchema>;\nexport type UpdatePoolMessage = z.infer<typeof updatePoolMessageSchema>;\nexport type RemovePoolMessage = z.infer<typeof removePoolMessageSchema>;\n",
46
+ "import { z } from 'zod';\nimport { PoolData } from '../../utils/schemas/EnrichedMarketData.ts';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\n\nexport const SearchParamsSchema = z.object({\n input: z.string(),\n type: z.enum(['tokens', 'assets', 'pairs']).optional(),\n filters: z\n .string()\n .optional()\n .transform((filtersString) => {\n if (!filtersString) return {};\n try {\n // Replace unquoted keys with quoted keys, but only match keys (not values)\n // Match pattern: (start of string, comma, or opening brace) + optional whitespace + unquoted key + optional whitespace + colon\n const parsed = JSON.parse(filtersString.replace(/(^|[,{]\\s*)([a-zA-Z0-9_]+)(\\s*):/g, '$1\"$2\"$3:')) as Record<\n string,\n unknown\n >;\n return {\n blockchains: parsed['blockchains'] || undefined,\n factory: parsed['factory'] || undefined,\n poolTypes: parsed['poolTypes'] || undefined,\n factoriesAddresses: parsed['factoriesAddresses'] || undefined,\n excludeBonded: parsed['excludeBonded'] || undefined,\n bondedOnly: parsed['bondedOnly'] || undefined,\n };\n } catch {\n return {};\n }\n })\n .pipe(\n z.object({\n blockchains: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .transform((blockchainsInput) => {\n if (!blockchainsInput) {\n return [];\n }\n\n // Handle array input (from JSON parse)\n const blockchainsString = Array.isArray(blockchainsInput) ? blockchainsInput.join(',') : blockchainsInput;\n\n return blockchainsString\n .split(',')\n .map((chain) => chain.trim())\n .filter((chain) => chain.length > 0);\n }),\n type: z.enum(['tokens', 'assets', 'pairs']).optional(),\n factory: z.string().optional(),\n poolTypes: z\n .string()\n .optional()\n .transform((poolTypesString) => {\n if (poolTypesString) {\n return poolTypesString?.split(',').map((poolType) => poolType.trim());\n }\n return [];\n }),\n factoriesAddresses: z\n .string()\n .optional()\n .transform((factoriesAddressesString) => {\n return factoriesAddressesString?.split(',').map((factoryAddress) => factoryAddress.trim());\n }),\n excludeBonded: z.coerce.boolean().optional().default(false),\n bondedOnly: z.coerce.boolean().optional().default(false),\n }),\n ),\n mode: z.enum(['trendings', 'og']).optional().default('trendings'),\n sortBy: z\n .enum([\n 'volume_24h',\n 'market_cap',\n 'created_at',\n 'volume_1h',\n 'fees_paid_5min',\n 'fees_paid_1h',\n 'fees_paid_24h',\n 'volume_5min',\n 'holders_count',\n 'organic_volume_1h',\n 'total_fees_paid_usd',\n 'search_score',\n ])\n .optional()\n .default('search_score'),\n excludeBonded: z.coerce.boolean().optional(),\n limit: z.coerce.number().min(1).max(20).optional().default(5),\n});\n\nexport type SearchParams = z.input<typeof SearchParamsSchema>;\nexport type SearchInferType = z.infer<typeof SearchParamsSchema>;\n\nconst TokenSchema = z.object({\n address: z.string(),\n price: z.number().nullable(),\n priceToken: z.number(),\n priceTokenString: z.string(),\n approximateReserveUSD: z.number(),\n approximateReserveTokenRaw: z.string(),\n approximateReserveToken: z.number(),\n symbol: z.string(),\n name: z.string(),\n id: z.number().nullable().optional(),\n decimals: z.number(),\n totalSupply: z.number(),\n circulatingSupply: z.number(),\n chainId: z.string(),\n logo: z.string().nullable(),\n});\n\nconst PairSchema = z\n .object({\n token0: TokenSchema,\n token1: TokenSchema,\n volume24h: z.number(),\n liquidity: z.number(),\n blockchain: z.string(),\n address: z.string(),\n createdAt: z.date().nullable(),\n type: z.string(),\n baseToken: z.string(),\n exchange: z.object({\n name: z.string(),\n logo: z.string(),\n }),\n factory: z.string().nullable(),\n quoteToken: z.string(),\n price: z.number().nullable(),\n priceToken: z.number(),\n priceTokenString: z.string(),\n extraData: z.record(z.any()).nullable(),\n })\n .optional();\n\nconst TokenDataSchema = z.object({\n logo: z.string().nullable(),\n name: z.string(),\n symbol: z.string(),\n decimals: z.array(z.number().optional()),\n volume_24h: z.number().optional(),\n price_change_24h: z.number().optional(),\n price_change_1h: z.number().optional(),\n blockchains: z.array(z.string().optional()),\n contracts: z.array(z.string().optional()),\n price: z.number().nullable(),\n total_supply: z.number(),\n market_cap: z.number(),\n pairs: z.array(PairSchema),\n type: z.literal('token'),\n});\n\nconst AssetDataSchema = z.object({\n id: z.number(),\n name: z.string(),\n symbol: z.string(),\n contracts: z.array(z.string().optional()),\n blockchains: z.array(z.string().optional()),\n decimals: z.array(z.number().optional()),\n twitter: z.string().nullable().optional(),\n website: z.string().nullable().optional(),\n logo: z.string().nullable(),\n price: z.number().nullable(),\n market_cap: z.number(),\n total_supply: z.number(),\n liquidity: z.number(),\n volume: z.number(),\n pairs: z.array(PairSchema),\n type: z.literal('asset'),\n price_change_24h: z.number().nullable(),\n price_change_1h: z.number().nullable(),\n});\n\nexport const SearchResponseSchema = z.object({\n data: z.array(z.union([TokenDataSchema, AssetDataSchema, PoolData])),\n});\n\nexport type SearchResponse = z.infer<typeof SearchResponseSchema>;\n\nexport const SearchFastResponseSchema = z.object({\n data: z.array(TokenDetailsOutput),\n});\n\nexport type SearchFastResponse = z.infer<typeof SearchFastResponseSchema>;\n",
47
+ "import { z } from 'zod';\nimport { HoldersStatsSchema } from './EnrichedHoldersData.ts';\nimport { TokenTypeSchema } from './EnrichedMarketData.ts';\nimport { SecurityFlagsSchema } from './SecuritySchemas.ts';\n\nexport const TokenDetailsOutput = z\n .object({\n address: z.string(),\n chainId: z.string(),\n symbol: z.string().nullable(),\n name: z.string().nullable(),\n decimals: z.coerce.number().default(0),\n id: z.number().nullable().optional().default(null),\n\n priceUSD: z.coerce.number().default(0),\n priceToken: z.coerce.number().default(0),\n priceTokenString: z.string(),\n approximateReserveUSD: z.coerce.number().default(0),\n approximateReserveTokenRaw: z.string(),\n approximateReserveToken: z.coerce.number().default(0),\n totalSupply: z.coerce.number().default(0),\n circulatingSupply: z.coerce.number().default(0),\n marketCapUSD: z.coerce.number().default(0),\n marketCapDilutedUSD: z.coerce.number().optional().default(0),\n logo: z.string().nullable(),\n rank: z.coerce.number().nullable().default(null),\n cexs: z.array(z.string()).default([]),\n\n exchange: z\n .object({\n name: z.string(),\n logo: z.string(),\n })\n .optional(),\n\n factory: z.string().nullable().optional(),\n source: z.string().nullable().optional(),\n sourceFactory: z.string().nullable().optional(),\n\n liquidityUSD: z.coerce.number().optional(),\n liquidityMaxUSD: z.coerce.number().optional(),\n bonded: z.boolean().optional(),\n bondingPercentage: z.coerce.number().optional(),\n bondingCurveAddress: z.string().nullable().optional(),\n preBondingFactory: z.string().optional(),\n poolAddress: z.string().optional(),\n\n blockchain: z.string().optional(),\n type: z.string().optional(),\n tokenType: TokenTypeSchema,\n\n deployer: z.string().nullable().optional(),\n bondedAt: z.coerce.date().nullable(),\n athUSD: z.coerce.number().optional(),\n atlUSD: z.coerce.number().optional(),\n athDate: z.coerce.date().optional(),\n atlDate: z.coerce.date().optional(),\n\n priceChange1minPercentage: z.coerce.number().default(0),\n priceChange5minPercentage: z.coerce.number().default(0),\n priceChange1hPercentage: z.coerce.number().default(0),\n priceChange4hPercentage: z.coerce.number().default(0),\n priceChange6hPercentage: z.coerce.number().default(0),\n priceChange12hPercentage: z.coerce.number().default(0),\n priceChange24hPercentage: z.coerce.number().default(0),\n\n volume1minUSD: z.coerce.number().default(0),\n volume5minUSD: z.coerce.number().default(0),\n volume15minUSD: z.coerce.number().default(0),\n volume1hUSD: z.coerce.number().default(0),\n volume4hUSD: z.coerce.number().default(0),\n volume6hUSD: z.coerce.number().default(0),\n volume12hUSD: z.coerce.number().default(0),\n volume24hUSD: z.coerce.number().default(0),\n\n volumeBuy1minUSD: z.coerce.number().default(0),\n volumeBuy5minUSD: z.coerce.number().default(0),\n volumeBuy15minUSD: z.coerce.number().default(0),\n volumeBuy1hUSD: z.coerce.number().default(0),\n volumeBuy4hUSD: z.coerce.number().default(0),\n volumeBuy6hUSD: z.coerce.number().default(0),\n volumeBuy12hUSD: z.coerce.number().default(0),\n volumeBuy24hUSD: z.coerce.number().default(0),\n\n volumeSell1minUSD: z.coerce.number().default(0),\n volumeSell5minUSD: z.coerce.number().default(0),\n volumeSell15minUSD: z.coerce.number().default(0),\n volumeSell1hUSD: z.coerce.number().default(0),\n volumeSell4hUSD: z.coerce.number().default(0),\n volumeSell6hUSD: z.coerce.number().default(0),\n volumeSell12hUSD: z.coerce.number().default(0),\n volumeSell24hUSD: z.coerce.number().default(0),\n\n trades1min: z.coerce.number().default(0),\n trades5min: z.coerce.number().default(0),\n trades15min: z.coerce.number().default(0),\n trades1h: z.coerce.number().default(0),\n trades4h: z.coerce.number().default(0),\n trades6h: z.coerce.number().default(0),\n trades12h: z.coerce.number().default(0),\n trades24h: z.coerce.number().default(0),\n\n buys1min: z.coerce.number().default(0),\n buys5min: z.coerce.number().default(0),\n buys15min: z.coerce.number().default(0),\n buys1h: z.coerce.number().default(0),\n buys4h: z.coerce.number().default(0),\n buys6h: z.coerce.number().default(0),\n buys12h: z.coerce.number().default(0),\n buys24h: z.coerce.number().default(0),\n\n sells1min: z.coerce.number().default(0),\n sells5min: z.coerce.number().default(0),\n sells15min: z.coerce.number().default(0),\n sells1h: z.coerce.number().default(0),\n sells4h: z.coerce.number().default(0),\n sells6h: z.coerce.number().default(0),\n sells12h: z.coerce.number().default(0),\n sells24h: z.coerce.number().default(0),\n\n buyers1min: z.coerce.number().default(0),\n buyers5min: z.coerce.number().default(0),\n buyers15min: z.coerce.number().default(0),\n buyers1h: z.coerce.number().default(0),\n buyers4h: z.coerce.number().default(0),\n buyers6h: z.coerce.number().default(0),\n buyers12h: z.coerce.number().default(0),\n buyers24h: z.coerce.number().default(0),\n\n sellers1min: z.coerce.number().default(0),\n sellers5min: z.coerce.number().default(0),\n sellers15min: z.coerce.number().default(0),\n sellers1h: z.coerce.number().default(0),\n sellers4h: z.coerce.number().default(0),\n sellers6h: z.coerce.number().default(0),\n sellers12h: z.coerce.number().default(0),\n sellers24h: z.coerce.number().default(0),\n\n traders1min: z.coerce.number().default(0),\n traders5min: z.coerce.number().default(0),\n traders15min: z.coerce.number().default(0),\n traders1h: z.coerce.number().default(0),\n traders4h: z.coerce.number().default(0),\n traders6h: z.coerce.number().default(0),\n traders12h: z.coerce.number().default(0),\n traders24h: z.coerce.number().default(0),\n\n feesPaid1minUSD: z.coerce.number().default(0),\n feesPaid5minUSD: z.coerce.number().default(0),\n feesPaid15minUSD: z.coerce.number().default(0),\n feesPaid1hUSD: z.coerce.number().default(0),\n feesPaid4hUSD: z.coerce.number().default(0),\n feesPaid6hUSD: z.coerce.number().default(0),\n feesPaid12hUSD: z.coerce.number().default(0),\n feesPaid24hUSD: z.coerce.number().default(0),\n totalFeesPaidUSD: z.coerce.number().default(0),\n totalFeesPaidNativeRaw: z.coerce.string().default('0'),\n\n organicTrades1min: z.coerce.number().default(0),\n organicTrades5min: z.coerce.number().default(0),\n organicTrades15min: z.coerce.number().default(0),\n organicTrades1h: z.coerce.number().default(0),\n organicTrades4h: z.coerce.number().default(0),\n organicTrades6h: z.coerce.number().default(0),\n organicTrades12h: z.coerce.number().default(0),\n organicTrades24h: z.coerce.number().default(0),\n\n organicTraders1min: z.coerce.number().default(0),\n organicTraders5min: z.coerce.number().default(0),\n organicTraders15min: z.coerce.number().default(0),\n organicTraders1h: z.coerce.number().default(0),\n organicTraders4h: z.coerce.number().default(0),\n organicTraders6h: z.coerce.number().default(0),\n organicTraders12h: z.coerce.number().default(0),\n organicTraders24h: z.coerce.number().default(0),\n\n organicVolume1minUSD: z.coerce.number().default(0),\n organicVolume5minUSD: z.coerce.number().default(0),\n organicVolume15minUSD: z.coerce.number().default(0),\n organicVolume1hUSD: z.coerce.number().default(0),\n organicVolume4hUSD: z.coerce.number().default(0),\n organicVolume6hUSD: z.coerce.number().default(0),\n organicVolume12hUSD: z.coerce.number().default(0),\n organicVolume24hUSD: z.coerce.number().default(0),\n\n organicVolumeBuy1minUSD: z.coerce.number().default(0),\n organicVolumeBuy5minUSD: z.coerce.number().default(0),\n organicVolumeBuy15minUSD: z.coerce.number().default(0),\n organicVolumeBuy1hUSD: z.coerce.number().default(0),\n organicVolumeBuy4hUSD: z.coerce.number().default(0),\n organicVolumeBuy6hUSD: z.coerce.number().default(0),\n organicVolumeBuy12hUSD: z.coerce.number().default(0),\n organicVolumeBuy24hUSD: z.coerce.number().default(0),\n\n organicVolumeSell1minUSD: z.coerce.number().default(0),\n organicVolumeSell5minUSD: z.coerce.number().default(0),\n organicVolumeSell15minUSD: z.coerce.number().default(0),\n organicVolumeSell1hUSD: z.coerce.number().default(0),\n organicVolumeSell4hUSD: z.coerce.number().default(0),\n organicVolumeSell6hUSD: z.coerce.number().default(0),\n organicVolumeSell12hUSD: z.coerce.number().default(0),\n organicVolumeSell24hUSD: z.coerce.number().default(0),\n\n organicBuys1min: z.coerce.number().default(0),\n organicBuys5min: z.coerce.number().default(0),\n organicBuys15min: z.coerce.number().default(0),\n organicBuys1h: z.coerce.number().default(0),\n organicBuys4h: z.coerce.number().default(0),\n organicBuys6h: z.coerce.number().default(0),\n organicBuys12h: z.coerce.number().default(0),\n organicBuys24h: z.coerce.number().default(0),\n\n organicSells1min: z.coerce.number().default(0),\n organicSells5min: z.coerce.number().default(0),\n organicSells15min: z.coerce.number().default(0),\n organicSells1h: z.coerce.number().default(0),\n organicSells4h: z.coerce.number().default(0),\n organicSells6h: z.coerce.number().default(0),\n organicSells12h: z.coerce.number().default(0),\n organicSells24h: z.coerce.number().default(0),\n\n organicBuyers1min: z.coerce.number().default(0),\n organicBuyers5min: z.coerce.number().default(0),\n organicBuyers15min: z.coerce.number().default(0),\n organicBuyers1h: z.coerce.number().default(0),\n organicBuyers4h: z.coerce.number().default(0),\n organicBuyers6h: z.coerce.number().default(0),\n organicBuyers12h: z.coerce.number().default(0),\n organicBuyers24h: z.coerce.number().default(0),\n\n organicSellers1min: z.coerce.number().default(0),\n organicSellers5min: z.coerce.number().default(0),\n organicSellers15min: z.coerce.number().default(0),\n organicSellers1h: z.coerce.number().default(0),\n organicSellers4h: z.coerce.number().default(0),\n organicSellers6h: z.coerce.number().default(0),\n organicSellers12h: z.coerce.number().default(0),\n organicSellers24h: z.coerce.number().default(0),\n\n createdAt: z.coerce.date().nullable(),\n latestTradeDate: z.coerce.date().nullable(),\n\n holdersCount: z.coerce.number().default(0),\n\n description: z.string().nullable(),\n socials: z.object({\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n telegram: z.string().nullable(),\n others: z.record(z.unknown()).nullable(),\n uri: z.string().optional(),\n }),\n\n security: SecurityFlagsSchema.nullable(),\n\n twitterReusesCount: z.coerce.number().nullable().default(0),\n twitterRenameCount: z.coerce.number().default(0),\n twitterRenameHistory: z\n .array(\n z.object({\n username: z.string(),\n lastChecked: z.string(),\n }),\n )\n .default([]),\n\n deployerMigrationsCount: z.coerce.number().default(0),\n deployerTokensCount: z.coerce.number().default(0),\n dexscreenerListed: z.boolean().nullable().default(false),\n dexscreenerHeader: z.string().nullable().default(null),\n dexscreenerAdPaid: z.boolean().nullable().default(false),\n dexscreenerAdPaidDate: z.coerce.date().nullable().default(null),\n dexscreenerSocialPaid: z.boolean().nullable().default(false),\n dexscreenerSocialPaidDate: z.coerce.date().nullable().default(null),\n\n liveStatus: z.string().nullable(),\n liveThumbnail: z.string().nullable(),\n livestreamTitle: z.string().nullable(),\n liveReplyCount: z.number().nullable(),\n dexscreenerBoosted: z.boolean().nullable().default(false),\n dexscreenerBoostedDate: z.coerce.date().nullable().default(null),\n dexscreenerBoostedAmount: z.number().nullable().default(0),\n\n // Trending score fields\n trendingScore1min: z.coerce.number().default(0),\n trendingScore5min: z.coerce.number().default(0),\n trendingScore15min: z.coerce.number().default(0),\n trendingScore1h: z.coerce.number().default(0),\n trendingScore4h: z.coerce.number().default(0),\n trendingScore6h: z.coerce.number().default(0),\n trendingScore12h: z.coerce.number().default(0),\n trendingScore24h: z.coerce.number().default(0),\n })\n .merge(HoldersStatsSchema);\n\nexport type TokenDetailsOutputType = z.infer<typeof TokenDetailsOutput>;\n",
48
+ "import { z } from 'zod';\n\nexport const TokenFirstBuyersParamsSchema = z.object({\n blockchain: z.string().optional(),\n asset: z.string(),\n limit: z.coerce.number().max(100).min(1).optional().default(70),\n});\n\nexport type TokenFirstBuyersParams = z.input<typeof TokenFirstBuyersParamsSchema>;\n\nexport const TokenFirstBuyersResponseSchema = z.object({\n data: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n initialAmount: z.string(),\n currentBalance: z.string(),\n firstHoldingDate: z.date(),\n tags: z.array(z.string()),\n lastUpdate: z.date().nullable().optional(),\n }),\n ),\n});\n\nexport type TokenFirstBuyersResponse = z.infer<typeof TokenFirstBuyersResponseSchema>;\n",
49
+ "import { z } from 'zod';\n\nexport const WalletBalanceUSDParamsSchema = z.object({\n portfolioId: z.string().min(1, 'portfolioId is required').regex(/^\\d+$/, 'portfolioId must be a valid number'),\n});\n\nexport type WalletBalanceUSDParams = z.input<typeof WalletBalanceUSDParamsSchema>;\n\nexport const WalletBalanceUSDResponseSchema = z.object({\n success: z.number(),\n});\n\nexport type WalletBalanceUSDResponse = z.infer<typeof WalletBalanceUSDResponseSchema>;\n",
50
+ "import { z } from 'zod';\nimport { TokenDetailsOutput } from './TokenDetailsOutput.ts';\n\nexport const tokenPositionSchema = z.object({\n token: TokenDetailsOutput,\n balance: z.number(),\n rawBalance: z.string(),\n amountUSD: z.number(),\n buys: z.number(),\n sells: z.number(),\n volumeBuyToken: z.number(),\n volumeSellToken: z.number(),\n volumeBuy: z.number(),\n volumeSell: z.number(),\n avgBuyPriceUSD: z.number(),\n avgSellPriceUSD: z.number(),\n realizedPnlUSD: z.number(),\n unrealizedPnlUSD: z.number(),\n totalPnlUSD: z.number(),\n firstDate: z.date().nullable(),\n lastDate: z.date().nullable(),\n});\n\nexport const walletDeployerOutputSchema = z.object({\n data: z.array(tokenPositionSchema),\n pagination: z\n .object({\n total: z.number(),\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n })\n .nullable(),\n});\n\nexport const WalletDeployerQuery = z.object({\n wallet: z.string(),\n blockchain: z.string(),\n page: z\n .string()\n .default('1')\n .transform((val) => {\n const parsed = Number.parseInt(val, 10);\n return parsed > 0 ? parsed : 1;\n }),\n\n limit: z\n .string()\n .default('20')\n .transform((val) => {\n const parsed = Number.parseInt(val, 10);\n return parsed > 0 ? parsed : 20;\n }),\n});\n",
51
+ "import { z } from 'zod';\nimport { WalletDeployerQuery, walletDeployerOutputSchema } from '../../utils/schemas/WalletDeployerSchema.ts';\n\nexport const WalletV1DeployerParamsSchema = WalletDeployerQuery;\nexport type WalletV1DeployerParams = z.input<typeof WalletV1DeployerParamsSchema>;\n\nexport const WalletV1DeployerResponseSchema = walletDeployerOutputSchema;\nexport type WalletV1DeployerResponse = z.infer<typeof WalletV1DeployerResponseSchema>;\n",
52
+ "import { z } from 'zod';\n\nexport const WalletHistoryParamsSchema = z.object({\n wallet: z.string().optional(),\n wallets: z.string().optional(),\n portfolio: z.string().optional(),\n blockchains: z.string().optional(),\n asset: z.string().optional(),\n pnl: z.string().optional(),\n cache: z.string().optional(),\n stale: z.string().optional(),\n recheck_contract: z.string().optional(),\n from: z.string().optional(),\n to: z.string().optional(),\n portfolio_settings: z.string().optional(),\n unlistedAssets: z.string().optional(),\n period: z.string().optional(),\n accuracy: z.string().optional(),\n testnet: z.string().optional(),\n minliq: z.string().optional(),\n filterSpam: z.string().optional(),\n fetchUntrackedHistory: z.string().optional(),\n fetchAllChains: z.string().optional(),\n backfillTransfers: z.string().optional(),\n});\n\nexport type WalletHistoryParams = z.input<typeof WalletHistoryParamsSchema>;\n\nexport const WalletHistoryResponseSchema = z.object({\n data: z.object({\n wallets: z.array(z.string()),\n balance_usd: z.number(),\n balance_history: z.array(z.tuple([z.number(), z.number()])),\n backfill_status: z.enum(['processed', 'processing', 'pending']).optional(),\n }),\n});\n\nexport type WalletHistoryResponse = z.infer<typeof WalletHistoryResponseSchema>;\n",
53
+ "import { z } from 'zod';\n\nexport const WalletLabelsParamsSchema = z.object({\n walletAddresses: z.union([z.string(), z.array(z.string()).max(100)]).optional(),\n tokenAddress: z.string().optional(),\n});\n\nexport type WalletLabelsParams = z.input<typeof WalletLabelsParamsSchema>;\n\nexport const WalletLabelsResponseSchema = z.object({\n data: z.array(\n z.object({\n walletAddress: z.string(),\n labels: z.array(z.string()),\n }),\n ),\n});\n\nexport type WalletLabelsResponse = z.infer<typeof WalletLabelsResponseSchema>;\n",
54
+ "import { z } from 'zod';\n\nexport const WalletNFTParamsSchema = z.object({\n wallet: z.string().min(1),\n blockchains: z.string().optional(),\n page: z.string().optional().default('1'),\n offset: z.string().optional().default('0'),\n limit: z.string().optional().default('100'),\n pagination: z.string().optional().default('false'),\n});\n\nexport type WalletNFTParams = z.input<typeof WalletNFTParamsSchema>;\nexport const WalletNFTResponseSchema = z.object({\n data: z.array(\n z.object({\n token_address: z.string(),\n token_id: z.string(),\n token_uri: z.string(),\n amount: z.string(),\n owner_of: z.string(),\n name: z.string(),\n symbol: z.string(),\n blockchain: z.string(),\n chain_id: z.string(),\n }),\n ),\n pagination: z\n .object({\n total: z.number(),\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n })\n .nullable(),\n});\n\nexport type WalletNFTResponse = z.infer<typeof WalletNFTResponseSchema>;\n\nexport const NFTMetadataParamsSchema = z.object({\n address: z.string(),\n blockchain: z.string(),\n});\n\nexport type NFTMetadataParams = z.input<typeof NFTMetadataParamsSchema>;\n\nexport const NFTMetadataResponseSchema = z.object({\n name: z.string(),\n symbol: z.string(),\n address: z.string(),\n chain_id: z.string(),\n logo: z.string(),\n website: z.string(),\n telegram: z.string(),\n twitter: z.string(),\n discord: z.string(),\n totalSupply: z.bigint(),\n URI: z.string(),\n});\n\nexport type NFTMetadataResponse = z.infer<typeof NFTMetadataResponseSchema>;\n",
55
+ "import { z } from 'zod';\nimport { type SecurityFlags, SecurityFlagsSchema } from '../../utils/schemas/SecuritySchemas.js';\n\n// Token type values defined locally to avoid circular dependency with @mobula/protocol\n// Solana: 2020 (SPL Token), 2022 (SPL Token 2022)\n// EVM: erc20\n// Tron: trc10, trc20\nconst WalletTokenTypeValues = ['2020', '2022', 'erc20', 'trc10', 'trc20'] as const;\nexport type WalletTokenType = (typeof WalletTokenTypeValues)[number];\nconst WalletTokenTypeSchema = z.enum(WalletTokenTypeValues).nullable().optional();\n\nexport type CrossChainBalances = Record<\n string,\n {\n balance: number;\n balanceRaw: string;\n chainId?: string;\n address?: string;\n }\n>;\n\nexport type CrossChainBalanceValues = {\n balance: number;\n balanceRaw: string;\n chainId?: string;\n address?: string;\n};\n\n// Security flags for contract balances: extend SecurityFlags with frozen flag\nconst ContractBalanceSecuritySchema = SecurityFlagsSchema.extend({\n frozen: z.boolean().optional(),\n})\n .nullable()\n .optional();\n\nexport type ContractBalanceSecurity = (SecurityFlags & { frozen?: boolean }) | null | undefined;\n\nexport type ContractBalance = {\n balance: number;\n balanceRaw: string;\n decimals: number;\n address: string;\n chainId: string;\n tokenType?: WalletTokenType;\n security?: ContractBalanceSecurity;\n};\n\nexport interface FormattedHolding {\n asset: {\n id: number | null;\n name: string;\n symbol: string;\n logo?: string;\n decimals: bigint[];\n contracts: string[];\n blockchains: string[];\n };\n price: number;\n liquidity: number;\n market_cap: number;\n price_change_24h: number;\n // price_change_1h: number;\n token_balance: number;\n estimated_balance: number;\n cross_chain_balances: CrossChainBalances;\n contracts_balances: ContractBalance[];\n allocation: number;\n wallets: string[];\n}\n\nexport type FormattedHoldingWithPNL = FormattedHolding & {\n realized_pnl: number;\n unrealized_pnl: number;\n price_bought: number;\n total_invested: number;\n min_buy_price: number;\n max_buy_price: number;\n};\n\nexport type PortfolioOutput = {\n total_wallet_balance: number;\n wallets: string[];\n total_realized_pnl?: number;\n total_unrealized_pnl?: number;\n total_pnl_history?: {\n '24h': {\n realized: number;\n unrealized: number;\n };\n '7d': {\n realized: number;\n unrealized: number;\n };\n '30d': {\n realized: number;\n unrealized: number;\n };\n '1y': {\n realized: number;\n unrealized: number;\n };\n };\n assets: FormattedHoldingWithPNL[] | FormattedHolding[];\n};\n\nexport const PortfolioResponseSchema = z.object({\n data: z.object({\n total_wallet_balance: z.number(),\n wallets: z.array(z.string()),\n assets: z.array(\n z.object({\n contracts_balances: z.array(\n z.object({\n address: z.string(),\n balance: z.number(),\n balanceRaw: z.string(),\n chainId: z.string(),\n decimals: z.number(),\n tokenType: WalletTokenTypeSchema,\n security: ContractBalanceSecuritySchema,\n }),\n ),\n cross_chain_balances: z.record(\n z.string(),\n z.object({\n balance: z.number(),\n balanceRaw: z.string(),\n chainId: z.string(),\n address: z.string(),\n }),\n ),\n price_change_24h: z.number(),\n estimated_balance: z.number(),\n price: z.number(),\n token_balance: z.number(),\n allocation: z.number(),\n asset: z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable().optional(),\n decimals: z.array(z.bigint()),\n contracts: z.array(z.string()),\n blockchains: z.array(z.string()),\n }),\n wallets: z.array(z.string()),\n realized_pnl: z.number().optional(),\n unrealized_pnl: z.number().optional(),\n price_bought: z.number().optional(),\n total_invested: z.number().optional(),\n min_buy_price: z.number().optional(),\n max_buy_price: z.number().optional(),\n }),\n ),\n win_rate: z.number().optional(),\n tokens_distribution: z\n .object({\n '10x+': z.number(),\n '4x - 10x': z.number(),\n '2x - 4x': z.number(),\n '10% - 2x': z.number(),\n '-10% - 10%': z.number(),\n '-50% - -10%': z.number(),\n '-100% - -50%': z.number(),\n })\n .optional(),\n pnl_history: z\n .object({\n '1y': z.array(\n z.tuple([\n z.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '7d': z.array(\n z.tuple([\n z.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '24h': z.array(\n z.tuple([\n z.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '30d': z.array(\n z.tuple([\n z.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n })\n .optional(),\n total_realized_pnl: z.number().optional(),\n total_unrealized_pnl: z.number().optional(),\n total_pnl_history: z\n .object({\n '24h': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '7d': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '30d': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '1y': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n })\n .optional(),\n balances_length: z.number(),\n }),\n backfill_status: z.enum(['processed', 'processing', 'pending']).optional(),\n});\n\nexport type PortfolioResponse = z.infer<typeof PortfolioResponseSchema>;\n\nexport const MultiPortfolioResponseSchema = z.object({\n data: z.array(\n z.object({\n total_wallet_balance: z.number(),\n wallets: z.array(z.string()),\n assets: z.array(\n z.object({\n contracts_balances: z.array(\n z.object({\n address: z.string(),\n balance: z.number(),\n balanceRaw: z.string(),\n chainId: z.string(),\n decimals: z.number(),\n tokenType: WalletTokenTypeSchema,\n security: ContractBalanceSecuritySchema,\n }),\n ),\n cross_chain_balances: z.record(\n z.string(),\n z.object({\n balance: z.number(),\n balanceRaw: z.string(),\n chainId: z.string(),\n address: z.string(),\n }),\n ),\n price_change_24h: z.number(),\n estimated_balance: z.number(),\n price: z.number(),\n token_balance: z.number(),\n allocation: z.number(),\n asset: z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable().optional(),\n decimals: z.array(z.bigint()),\n contracts: z.array(z.string()),\n blockchains: z.array(z.string()),\n }),\n wallets: z.array(z.string()),\n realized_pnl: z.number().optional(),\n unrealized_pnl: z.number().optional(),\n price_bought: z.number().optional(),\n total_invested: z.number().optional(),\n min_buy_price: z.number().optional(),\n max_buy_price: z.number().optional(),\n }),\n ),\n win_rate: z.number().optional(),\n tokens_distribution: z\n .object({\n '10x+': z.number(),\n '4x - 10x': z.number(),\n '2x - 4x': z.number(),\n '10% - 2x': z.number(),\n '-10% - 10%': z.number(),\n '-50% - -10%': z.number(),\n '-100% - -50%': z.number(),\n })\n .optional(),\n pnl_history: z\n .object({\n '1y': z.array(\n z.tuple([\n z.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '7d': z.array(\n z.tuple([\n z.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '24h': z.array(\n z.tuple([\n z.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '30d': z.array(\n z.tuple([\n z.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n })\n .optional(),\n total_realized_pnl: z.number().optional(),\n total_unrealized_pnl: z.number().optional(),\n total_pnl_history: z\n .object({\n '24h': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '7d': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '30d': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '1y': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n })\n .optional(),\n balances_length: z.number(),\n }),\n ),\n backfill_status: z.enum(['processed', 'processing', 'pending']).optional(),\n});\n\nexport type MultiPortfolioResponse = z.infer<typeof MultiPortfolioResponseSchema>;\n\nexport const PositionSchema = z.array(\n z.object({\n type: z.string(),\n name: z.string(),\n chain_id: z.string(),\n contract: z.string(),\n created_at: z.string().nullable(),\n tokens: z.array(\n z.object({\n name: z.string(),\n symbol: z.string(),\n contract: z.string(),\n amount: z.string(),\n amountRaw: z.string(),\n decimals: z.string(),\n amount_usd: z.string(),\n logo: z.string().nullable(),\n price_usd: z.string().nullable(),\n }),\n ),\n rewards: z\n .array(\n z.object({\n name: z.string(),\n symbol: z.string(),\n contract: z.string(),\n amount: z.string(),\n amountRaw: z.string(),\n decimals: z.string(),\n amount_usd: z.string(),\n price_usd: z.string(),\n }),\n )\n .optional(),\n extra: z\n .object({\n lp_token_amount: z.string().optional(),\n position_staked_amount: z.string().optional(),\n factory: z.string().optional(),\n share_of_pool: z.string().optional(),\n type: z.enum(['supply', 'borrow']).optional(),\n health_factor: z.number().optional(),\n reserve0: z.string().optional(),\n reserve1: z.string().optional(),\n reserve_usd: z.number().optional(),\n })\n .optional(),\n }),\n);\n\nexport type PositionOutputType = z.infer<typeof PositionSchema>;\n\nexport const DefiPositionsResponseSchema = z.object({\n data: z.array(\n z.object({\n protocol: z.object({\n name: z.string(),\n id: z.string(),\n logo: z.string(),\n url: z.string(),\n }),\n positions: PositionSchema,\n }),\n ),\n wallets: z.array(z.string()),\n});\n// Export TypeScript type from the schema\nexport type DefiPositionsResponse = z.infer<typeof DefiPositionsResponseSchema>;\n\nexport interface DefiRewardFormat {\n name: string;\n symbol: string;\n decimals: string;\n contract: string;\n logo: string | null;\n amountRaw: string;\n amount: string;\n priceUSD: string | null;\n amountUSD: string;\n}\n\nexport interface LPToken {\n rawBalance: string;\n formattedBalance: number;\n assetId: number | null;\n chainId: string;\n address: string;\n decimals: number;\n name: string;\n symbol: string; // Add more symbols as needed\n}\n\nexport interface ProtocolMetadata {\n name: string;\n id: string;\n url: string;\n logo: string;\n}\n\nexport const PortfolioParamsSchema = z.object({\n wallet: z.string().optional(),\n wallets: z.string().optional(),\n portfolio: z.string().optional(),\n blockchains: z.string().optional(),\n asset: z.string().optional(),\n cache: z.string().optional(),\n stale: z.string().optional(),\n recheck_contract: z.string().optional(),\n from: z.string().optional(),\n to: z.string().optional(),\n portfolio_settings: z.string().optional(),\n unlistedAssets: z.string().optional(),\n period: z.string().optional(),\n accuracy: z.string().optional(),\n testnet: z.string().optional(),\n minliq: z.string().optional(),\n filterSpam: z.string().optional(),\n fetchUntrackedHistory: z.string().optional(),\n fetchAllChains: z.string().optional(),\n shouldFetchPriceChange: z.string().optional(),\n backfillTransfers: z.string().optional(),\n fetchEmptyBalances: z.string().optional(),\n pnl: z.string().optional(),\n});\n\nexport type PortfolioParams = z.input<typeof PortfolioParamsSchema>;\n\nexport const PortfolioDefiParamsSchema = z.object({\n wallet: z.string().optional(),\n wallets: z.string().optional(),\n blockchains: z.string().optional(),\n testnet: z.string().optional(),\n unlistedAssets: z.string().optional(),\n});\n\nexport type PortfolioDefiParams = z.input<typeof PortfolioDefiParamsSchema>;\n\nexport type WalletUnsafeParams = {\n wallet?: string;\n wallets?: string;\n portfolio?: string;\n blockchains?: string;\n asset?: string;\n pnl?: boolean | string;\n cache?: boolean | string;\n stale?: number | string;\n recheck_contract?: boolean | string;\n from?: string;\n to?: string;\n portfolio_settings?: string;\n unlistedAssets?: boolean | string;\n period?: string;\n accuracy?: string;\n testnet?: boolean | string;\n minliq?: number | string;\n filterSpam?: boolean | string;\n shouldFetchPriceChange?: boolean | string;\n fetchUntrackedHistory?: boolean | string;\n fetchAllChains?: boolean | string;\n backfillTransfers?: boolean | string;\n fetchEmptyBalances?: boolean | string;\n};\n",
56
+ "import { z } from 'zod';\n\nexport const WalletSmartMoneyResponseSchema = z.object({\n data: z.array(\n z.object({\n wallet_address: z.string(),\n realized_pnl: z.number(),\n unrealized_pnl: z.number(),\n txns_count: z.number(),\n volume: z.number(),\n blockchains: z.array(z.string()),\n win_rate: z.number(),\n tokens_distribution: z.object({\n '10x+': z.number(),\n '4x - 10x': z.number(),\n '2x - 4x': z.number(),\n '10% - 2x': z.number(),\n '-10% - 10%': z.number(),\n '-50% - -10%': z.number(),\n '-100% - -50%': z.number(),\n }),\n top_3_tokens: z.array(z.record(z.string(), z.number())),\n }),\n ),\n});\n\nexport type WalletSmartMoneyResponse = z.infer<typeof WalletSmartMoneyResponseSchema>;\n",
57
+ "import { z } from 'zod';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\n\nexport const WalletTradesParamsSchema = z.object({\n limit: z.string().optional().default('100'),\n offset: z.string().optional().default('0'),\n page: z.string().optional().default('1'),\n order: z.string().optional(),\n wallet: z.string().optional(),\n wallets: z.string().optional(),\n from: z.string().optional(),\n to: z.string().optional(),\n});\n\nexport type WalletTradesParams = z.input<typeof WalletTradesParamsSchema>;\nexport type WalletTradesInferType = z.infer<typeof WalletTradesParamsSchema>;\n\nexport const WalletTradesResponseSchema = z.object({\n data: z.array(\n z.object({\n chain_id: z.string(),\n swap_type: z.string(),\n raw_amount0: z.string(),\n raw_amount1: z.string(),\n raw_post_balance0: z.string().optional().nullable(),\n raw_post_balance1: z.string().optional().nullable(),\n raw_pre_balance0: z.string().optional().nullable(),\n raw_pre_balance1: z.string().optional().nullable(),\n amount0: z.coerce.number(),\n amount1: z.coerce.number(),\n ratio: z.number(),\n price_usd_token0: z.number(),\n price_usd_token1: z.number(),\n date: z.date(),\n amount_usd: z.number(),\n pool_address: z.string(),\n token0_address: z.string(),\n token1_address: z.string(),\n transaction_sender_address: z.string(),\n transaction_hash: z.string(),\n base: z.string(),\n quote: z.string(),\n side: z.string(),\n amount_quote: z.coerce.number(),\n amount_base: z.coerce.number(),\n amount_quote_raw: z.string(),\n amount_base_raw: z.string(),\n base_token: TokenDetailsOutput.optional().nullable(),\n labels: z.array(z.string()),\n }),\n ),\n});\n\nexport type WalletTradesResponse = z.infer<typeof WalletTradesResponseSchema>;\n",
58
+ "import { z } from 'zod';\n\nexport const WalletTransactionsParamsSchema = z.object({\n limit: z.string().optional(),\n offset: z.string().optional(),\n page: z.string().optional(),\n order: z.string().optional(),\n cache: z.string().optional(),\n stale: z.string().optional(),\n wallet: z.string().optional(),\n wallets: z.string().optional(),\n recheckContract: z.string().optional(),\n from: z.string().optional(),\n to: z.string().optional(),\n asset: z.string().optional(),\n trades: z.string().optional(),\n transactions: z.string().optional(),\n blockchains: z.string().optional(),\n unlistedAssets: z.string().optional(),\n onlyAssets: z.string().optional(),\n pagination: z.string().optional(),\n filterSpam: z.string().optional(),\n});\n\nexport type WalletTransactionsParams = z.input<typeof WalletTransactionsParamsSchema>;\n\nexport const WalletRawTransactionsParamsSchema = z\n .object({\n limit: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n offset: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n page: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n order: z.string().optional(), // Remains string\n cache: z\n .string()\n .optional()\n .transform((val) => val === 'true'), // Convert to boolean\n stale: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n wallet: z.string().optional(), // Remains string\n wallets: z.string().optional(), // Remains string\n from: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n to: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n blockchains: z.string().optional(), // Remains string\n pagination: z\n .string()\n .optional()\n .transform((val) => val === 'true'), // Convert to boolean\n })\n .strict();\n\nexport type WalletRawTransactionsParams = z.input<typeof WalletRawTransactionsParamsSchema>;\n\nexport const WalletTransactionsResponseSchema = z.object({\n data: z.object({\n transactions: z.array(\n z.object({\n id: z.string(),\n timestamp: z.number(),\n from: z.string().nullable(),\n to: z.string().nullable(),\n contract: z.string().nullable(),\n hash: z.string(),\n amount_usd: z.number(),\n amount: z.number(),\n block_number: z.number(),\n type: z.string(),\n blockchain: z.string(),\n tx_cost: z.number(),\n transaction: z.object({\n hash: z.string(),\n chainId: z.string(),\n fees: z.string(),\n feesUSD: z.number(),\n date: z.date(),\n }),\n asset: z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n decimals: z.number(),\n totalSupply: z.number(),\n circulatingSupply: z.number(),\n price: z.number(),\n liquidity: z.number(),\n priceChange24hPercent: z.number(),\n marketCapUSD: z.number(),\n logo: z.string().nullable(),\n nativeChainId: z.string().nullable(),\n contract: z.string().nullable(),\n }),\n }),\n ),\n wallets: z.array(z.string()),\n }),\n details: z.null(),\n pagination: z\n .object({\n total: z.number(),\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n })\n .nullable(),\n});\n\nexport type WalletTransactionsResponse = z.infer<typeof WalletTransactionsResponseSchema>;\n\nconst RawTransactionSchema = z.object({\n id: z.bigint(),\n timestamp: z.number(),\n from: z.string().nullable(),\n to: z.string().nullable(),\n contract: z.string().nullable(),\n hash: z.string(),\n amount_usd: z.number(),\n amount: z.number(),\n block_number: z.number(),\n type: z.string(),\n blockchain: z.string(),\n tx_cost: z.number(),\n transaction: z.object({\n hash: z.string(),\n chainId: z.string(),\n fees: z.string(),\n feesUSD: z.number(),\n date: z.date(),\n }),\n asset: z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n totalSupply: z.number(),\n circulatingSupply: z.number(),\n price: z.number(),\n liquidity: z.number(),\n priceChange24hPercent: z.number(),\n marketCapUSD: z.number(),\n logo: z.string().nullable(),\n nativeChainId: z.string().nullable(),\n contract: z.string().nullable(),\n }),\n});\n\nconst UnifiedTransactionSchema = z.object({\n chain_id: z.string(),\n hash: z.string().default(''),\n method: z.string().optional(),\n from: z.string().default(''),\n to: z.string().default(''),\n native_amount: z.string().default('0'),\n name: z.string().default('Unknown'),\n logo: z.string().optional(),\n amount: z.string().default('0'),\n token: z.string().default(''),\n symbol: z.string().optional(),\n timestamp: z.string().default(''),\n block_number: z.number().optional(),\n txn_fees: z.string().default('0'),\n status: z.boolean(),\n});\n\nexport const WalletRawTransactionsResponseSchema = z.object({\n raw: z.array(RawTransactionSchema),\n unified: z.array(UnifiedTransactionSchema),\n wallets: z.string().array(),\n pagination: z\n .object({\n total: z.number(),\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n })\n .nullable(),\n});\n\nexport type WalletRawTransactionsResponse = z.infer<typeof WalletRawTransactionsResponseSchema>;\nexport type RawTransactionOutputType = z.infer<typeof RawTransactionSchema>;\n\nconst RawNFTTransactionSchema = z.object({\n combined_id: z.string(),\n combined_date: z.date().transform((d) => d.toISOString()),\n contract_address: z.string().nullable(),\n from_address: z.string().nullable(),\n to_address: z.string().nullable(),\n chain_id: z.string(),\n token_id: z.string().nullable(),\n fees: z.string().nullable(),\n fees_usd: z.number().nullable(), // Add from raw data, number type\n block_height: z.number().nullable(),\n transaction_hash: z.string(),\n raw_type: z.enum(['sell', 'buy']),\n});\n\nconst UnifiedNFTTransactionSchema = z.object({\n chain_id: z.string(),\n hash: z.string(),\n method: z.string().optional(),\n from: z.string(),\n to: z.string(),\n amount: z.string().optional(),\n token: z.string(),\n symbol: z.string().optional(),\n tokenId: z.string().nullable(),\n timestamp: z.date().transform((d) => d.toISOString()),\n block_number: z.number().nullable(),\n txn_fees: z.string().nullable(),\n status: z.boolean(),\n});\n\nexport const WalletNFTTransactionsResponseSchema = z\n .object({\n raw: z.array(RawNFTTransactionSchema),\n unified: z.array(UnifiedNFTTransactionSchema),\n wallets: z.string().array(),\n pagination: z\n .object({\n total: z.number(),\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n })\n .nullable(),\n })\n .strict();\n\nexport type WalletNFTTransactionsResponse = z.infer<typeof WalletNFTTransactionsResponseSchema>;\n",
59
+ "import { z } from 'zod';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\n\n// Output schema for a single token in the asset\nexport const AssetTokenDetailsOutput = TokenDetailsOutput;\n\n// Asset-level data from the assets table\nexport const AssetDataOutput = z.object({\n id: z.number(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n description: z.string().nullable(),\n rank: z.number().nullable(),\n nativeChainId: z.string().nullable(),\n priceUSD: z.number().nullable(),\n totalSupply: z.number().default(0),\n circulatingSupply: z.number().default(0),\n marketCapUSD: z.number().default(0),\n marketCapDilutedUSD: z.number().default(0),\n athPriceDate: z.coerce.date().nullable(),\n athPriceUSD: z.number().nullable(),\n atlPriceDate: z.coerce.date().nullable(),\n atlPriceUSD: z.number().nullable(),\n isStablecoin: z.boolean().default(false),\n createdAt: z.coerce.date(),\n listedAt: z.coerce.date().nullable(),\n socials: z\n .object({\n audit: z.string().nullable(),\n github: z.string().nullable(),\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n kyc: z.string().nullable(),\n chat: z.string().nullable(),\n discord: z.string().nullable(),\n })\n .nullable(),\n});\n\nexport type AssetDataOutputType = z.infer<typeof AssetDataOutput>;\n\n// Full asset details response including tokens\nexport const AssetDetailsDataOutput = z.object({\n asset: AssetDataOutput,\n tokens: z.array(TokenDetailsOutput.or(z.object({ error: z.string().optional() })).nullable()),\n tokensCount: z.number(),\n});\n\nexport type AssetDetailsDataOutputType = z.infer<typeof AssetDetailsDataOutput>;\n\n// Query parameters schema\nconst AssetDetailsParamsSchema = z\n .object({\n // Option 1: asset ID directly\n id: z.coerce.number().optional(),\n // Option 2: address + chainId\n address: z.string().optional(),\n blockchain: z.string().optional(),\n // Limit for tokens (default 10)\n tokensLimit: z.coerce.number().min(1).max(50).default(10),\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n })\n .refine((data) => data.id !== undefined || (data.address !== undefined && data.blockchain !== undefined), {\n message: 'Either id OR (address AND blockchain) must be provided',\n });\n\nexport type AssetDetailsParams = z.input<typeof AssetDetailsParamsSchema>;\nexport type AssetDetailsParsedParams = z.infer<typeof AssetDetailsParamsSchema> & {\n chainId?: string;\n};\n\n// Response schemas\nexport const AssetDetailsResponseSchema = z.object({\n data: AssetDetailsDataOutput,\n hostname: z.string().optional(),\n});\n\nexport type AssetDetailsResponse = z.infer<typeof AssetDetailsResponseSchema>;\n\n// Batch item schema (for POST)\nconst AssetDetailsItemSchema = z.object({\n id: z.coerce.number().optional(),\n address: z.string().optional(),\n blockchain: z.string().optional(),\n tokensLimit: z.coerce.number().min(1).max(50).default(10),\n});\n\n// POST request schema - array of items directly\nexport const AssetDetailsBatchParamsSchema = z\n .array(AssetDetailsItemSchema)\n .min(1, 'At least one asset is required')\n .max(10, 'Maximum 10 assets per request');\n\nexport type AssetDetailsBatchParams = z.input<typeof AssetDetailsBatchParamsSchema>;\n\n// Batch response schema\nexport const AssetDetailsBatchResponseSchema = z.object({\n payload: z.array(AssetDetailsDataOutput.or(z.object({ error: z.string().optional() })).nullable()),\n hostname: z.string().optional(),\n});\n\nexport type AssetDetailsBatchResponse = z.infer<typeof AssetDetailsBatchResponseSchema>;\n\nexport { AssetDetailsParamsSchema };\n",
60
+ "import { z } from 'zod';\nimport normalizePeriod from '../../utils/functions/period.ts';\n\n// Single asset query schema\nconst AssetPriceHistoryItemSchema = z.object({\n address: z.string().optional(),\n chainId: z.string().optional(),\n id: z.coerce.number().optional(),\n period: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return normalizePeriod(val);\n }\n return undefined;\n }),\n from: z.coerce.number().default(0),\n to: z.coerce.number().default(Date.now),\n});\n\n// GET request schema (single asset)\nexport const AssetPriceHistoryParamsSchema = AssetPriceHistoryItemSchema.refine(\n (data) => {\n return data.id !== undefined || data.address !== undefined;\n },\n {\n message: 'Either id or address must be provided',\n },\n).refine(\n (data) => {\n if (data.address !== undefined && data.chainId === undefined) {\n return false;\n }\n return true;\n },\n {\n message: 'chainId is required when using address',\n },\n);\n\nexport type AssetPriceHistoryParams = z.input<typeof AssetPriceHistoryParamsSchema>;\n\n// Array schema for batch items\nconst AssetPriceHistoryArraySchema = z\n .array(AssetPriceHistoryItemSchema)\n .min(1, 'At least one asset is required')\n .max(10, 'Maximum 10 assets per request')\n .refine(\n (assets) => {\n return assets.every((asset) => asset.id !== undefined || asset.address !== undefined);\n },\n {\n message: 'Each asset must have either id or address',\n },\n )\n .refine(\n (assets) => {\n return assets.every((asset) => {\n if (asset.address !== undefined && asset.chainId === undefined) {\n return false;\n }\n return true;\n });\n },\n {\n message: 'chainId is required when using address',\n },\n );\n\n// POST request schema - supports both array and object with 'assets' key\nexport const AssetPriceHistoryBatchParamsSchema = z.union([\n AssetPriceHistoryArraySchema,\n z.object({ assets: AssetPriceHistoryArraySchema }),\n]);\n\nexport type AssetPriceHistoryBatchParams = z.input<typeof AssetPriceHistoryBatchParamsSchema>;\n\n// Single asset response data schema\nconst AssetPriceHistoryDataSchema = z.object({\n priceHistory: z.array(z.array(z.number().nullable())),\n id: z.number().optional(),\n name: z.string().optional(),\n symbol: z.string().optional(),\n chainId: z.string().optional(),\n address: z.string().optional(),\n error: z.string().optional(),\n});\n\n// GET response schema (single asset)\nexport const AssetPriceHistoryResponseSchema = z.object({\n data: AssetPriceHistoryDataSchema,\n});\n\nexport type AssetPriceHistoryResponse = z.infer<typeof AssetPriceHistoryResponseSchema>;\n\n// POST response schema (batch - array of assets)\nexport const AssetPriceHistoryBatchResponseSchema = z.object({\n data: z.array(AssetPriceHistoryDataSchema),\n});\n\nexport type AssetPriceHistoryBatchResponse = z.infer<typeof AssetPriceHistoryBatchResponseSchema>;\n",
61
+ "import { z } from 'zod';\nimport { MarketDetailsOutput } from '../../utils/schemas/MarketDetailsOutput.ts';\n\nconst MarketDetailsItemParams = z\n .object({\n blockchain: z.string().optional(),\n address: z.string().optional(),\n baseToken: z.string().optional(),\n stats: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n force: z.coerce.boolean().optional().default(false),\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n })\n .transform(({ blockchain, address, baseToken, stats, force, instanceTracking }) => ({\n blockchain,\n address,\n baseToken,\n stats,\n force,\n instanceTracking,\n asset: address ? address : undefined,\n }));\n\nconst MarketDetailsParamsSchema = MarketDetailsItemParams;\n\nconst MarketDetailsBatchParamsSchema = z.union([\n z.array(MarketDetailsItemParams),\n z.object({\n items: z.array(MarketDetailsItemParams),\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n }),\n]);\n\nexport type MarketDetailsParams = z.input<typeof MarketDetailsParamsSchema>;\nexport type MarketDetailsInferType = z.infer<typeof MarketDetailsParamsSchema>;\n\nexport type MarketDetailsBatchParams = z.input<typeof MarketDetailsBatchParamsSchema>;\n\nexport const MarketDetailsResponseSchema = z.object({\n data: MarketDetailsOutput,\n hostname: z.string().optional(),\n});\nexport type MarketDetailsResponse = z.infer<typeof MarketDetailsResponseSchema>;\n\nexport const MarketDetailsBatchResponseSchema = z.object({\n payload: z.array(MarketDetailsOutput.or(z.object({ error: z.string().optional() })).nullable()),\n hostname: z.string().optional(),\n});\nexport type MarketDetailsBatchResponse = z.infer<typeof MarketDetailsBatchResponseSchema>;\n\nexport { MarketDetailsParamsSchema, MarketDetailsBatchParamsSchema };\n",
62
+ "import { z } from 'zod';\nimport { PerpDataMarketDetailsOutputSchema } from '../../v2/perp/PerpModels.ts';\nimport { HoldersStatsSchema } from './EnrichedHoldersData.ts';\n\nimport { SecurityFlagsSchema } from './SecuritySchemas.ts';\n\nconst TokenDetailsSchema = z\n .object({\n address: z.string(),\n chainId: z.string(),\n symbol: z.string().nullable(),\n name: z.string().nullable(),\n decimals: z.coerce.number().default(0),\n id: z.number().nullable().optional().default(null),\n\n priceUSD: z.coerce.number().default(0),\n priceToken: z.coerce.number().default(0),\n priceTokenString: z.string(),\n approximateReserveUSD: z.coerce.number().default(0),\n approximateReserveTokenRaw: z.string(),\n approximateReserveToken: z.coerce.number().default(0),\n totalSupply: z.coerce.number().default(0),\n circulatingSupply: z.coerce.number().default(0),\n marketCapUSD: z.coerce.number().optional().default(0),\n marketCapDilutedUSD: z.coerce.number().optional().default(0),\n logo: z.string().nullable(),\n\n exchange: z\n .object({\n name: z.string(),\n logo: z.string(),\n })\n .optional(),\n\n factory: z.string().nullable().optional(),\n source: z.string().nullable().optional(),\n sourceFactory: z.string().nullable().optional(),\n\n liquidityUSD: z.coerce.number().optional(),\n liquidityMaxUSD: z.coerce.number().optional(),\n bonded: z.boolean().optional(),\n bondingPercentage: z.coerce.number().optional(),\n bondingCurveAddress: z.string().nullable().optional(),\n preBondingFactory: z.string().optional(),\n poolAddress: z.string().optional(),\n\n blockchain: z.string().optional(),\n type: z.string().optional(),\n\n deployer: z.string().nullable().optional(),\n createdAt: z.coerce.string().optional(),\n bondedAt: z.coerce.date().nullable(),\n athUSD: z.coerce.number().optional(),\n atlUSD: z.coerce.number().optional(),\n athDate: z.coerce.date().optional(),\n atlDate: z.coerce.date().optional(),\n })\n .merge(HoldersStatsSchema);\n\nexport const MarketDetailsOutput = z\n .object({\n token0: TokenDetailsSchema.optional(),\n token1: TokenDetailsSchema.optional(),\n\n base: TokenDetailsSchema,\n quote: TokenDetailsSchema,\n\n liquidityUSD: z.coerce.number().default(0),\n latestTradeDate: z.coerce.date().nullable(),\n blockchain: z.string(),\n address: z.string(),\n createdAt: z.coerce.date().nullable(),\n type: z.string(),\n exchange: z.object({\n name: z.string(),\n logo: z.string(),\n }),\n factory: z.string().nullable(),\n priceUSD: z.coerce.number().optional(),\n priceToken: z.coerce.number().optional(),\n priceTokenString: z.string().optional(),\n\n baseToken: z.string(),\n quoteToken: z.string(),\n\n bonded: z.coerce.boolean(),\n bondingPercentage: z.coerce.number().nullable(),\n preBondingPoolAddress: z.string().nullable(),\n sourceFactory: z.string().nullable().optional(),\n\n totalFeesPaidUSD: z.coerce.number().nullable(),\n totalFeesPaidNativeRaw: z.coerce.string().default('0'),\n\n priceChange1minPercentage: z.coerce.number().default(0),\n priceChange5minPercentage: z.coerce.number().default(0),\n priceChange1hPercentage: z.coerce.number().default(0),\n priceChange4hPercentage: z.coerce.number().default(0),\n priceChange6hPercentage: z.coerce.number().default(0),\n priceChange12hPercentage: z.coerce.number().default(0),\n priceChange24hPercentage: z.coerce.number().default(0),\n\n volume1minUSD: z.coerce.number().default(0),\n volume5minUSD: z.coerce.number().default(0),\n volume15minUSD: z.coerce.number().default(0),\n volume1hUSD: z.coerce.number().default(0),\n volume4hUSD: z.coerce.number().default(0),\n volume6hUSD: z.coerce.number().default(0),\n volume12hUSD: z.coerce.number().default(0),\n volume24hUSD: z.coerce.number().default(0),\n\n volumeBuy1minUSD: z.coerce.number().default(0),\n volumeBuy5minUSD: z.coerce.number().default(0),\n volumeBuy15minUSD: z.coerce.number().default(0),\n volumeBuy1hUSD: z.coerce.number().default(0),\n volumeBuy4hUSD: z.coerce.number().default(0),\n volumeBuy6hUSD: z.coerce.number().default(0),\n volumeBuy12hUSD: z.coerce.number().default(0),\n volumeBuy24hUSD: z.coerce.number().default(0),\n\n volumeSell1minUSD: z.coerce.number().default(0),\n volumeSell5minUSD: z.coerce.number().default(0),\n volumeSell15minUSD: z.coerce.number().default(0),\n volumeSell1hUSD: z.coerce.number().default(0),\n volumeSell4hUSD: z.coerce.number().default(0),\n volumeSell6hUSD: z.coerce.number().default(0),\n volumeSell12hUSD: z.coerce.number().default(0),\n volumeSell24hUSD: z.coerce.number().default(0),\n\n trades1min: z.coerce.number().default(0),\n trades5min: z.coerce.number().default(0),\n trades15min: z.coerce.number().default(0),\n trades1h: z.coerce.number().default(0),\n trades4h: z.coerce.number().default(0),\n trades6h: z.coerce.number().default(0),\n trades12h: z.coerce.number().default(0),\n trades24h: z.coerce.number().default(0),\n\n buys1min: z.coerce.number().default(0),\n buys5min: z.coerce.number().default(0),\n buys15min: z.coerce.number().default(0),\n buys1h: z.coerce.number().default(0),\n buys4h: z.coerce.number().default(0),\n buys6h: z.coerce.number().default(0),\n buys12h: z.coerce.number().default(0),\n buys24h: z.coerce.number().default(0),\n\n sells1min: z.coerce.number().default(0),\n sells5min: z.coerce.number().default(0),\n sells15min: z.coerce.number().default(0),\n sells1h: z.coerce.number().default(0),\n sells4h: z.coerce.number().default(0),\n sells6h: z.coerce.number().default(0),\n sells12h: z.coerce.number().default(0),\n sells24h: z.coerce.number().default(0),\n\n buyers1min: z.coerce.number().default(0),\n buyers5min: z.coerce.number().default(0),\n buyers15min: z.coerce.number().default(0),\n buyers1h: z.coerce.number().default(0),\n buyers4h: z.coerce.number().default(0),\n buyers6h: z.coerce.number().default(0),\n buyers12h: z.coerce.number().default(0),\n buyers24h: z.coerce.number().default(0),\n\n sellers1min: z.coerce.number().default(0),\n sellers5min: z.coerce.number().default(0),\n sellers15min: z.coerce.number().default(0),\n sellers1h: z.coerce.number().default(0),\n sellers4h: z.coerce.number().default(0),\n sellers6h: z.coerce.number().default(0),\n sellers12h: z.coerce.number().default(0),\n sellers24h: z.coerce.number().default(0),\n\n traders1min: z.coerce.number().default(0),\n traders5min: z.coerce.number().default(0),\n traders15min: z.coerce.number().default(0),\n traders1h: z.coerce.number().default(0),\n traders4h: z.coerce.number().default(0),\n traders6h: z.coerce.number().default(0),\n traders12h: z.coerce.number().default(0),\n traders24h: z.coerce.number().default(0),\n\n feesPaid1minUSD: z.coerce.number().default(0),\n feesPaid5minUSD: z.coerce.number().default(0),\n feesPaid15minUSD: z.coerce.number().default(0),\n feesPaid1hUSD: z.coerce.number().default(0),\n feesPaid4hUSD: z.coerce.number().default(0),\n feesPaid6hUSD: z.coerce.number().default(0),\n feesPaid12hUSD: z.coerce.number().default(0),\n feesPaid24hUSD: z.coerce.number().default(0),\n\n holdersCount: z.coerce.number().default(0),\n\n source: z.string().nullable(),\n deployer: z.string().nullable(),\n tokenSymbol: z.string().nullable(),\n tokenName: z.string().nullable(),\n dexscreenerListed: z.coerce.boolean().nullable(),\n deployerMigrations: z.coerce.number().default(0),\n socials: z.object({\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n telegram: z.string().nullable(),\n others: z.record(z.unknown()).nullable(),\n uri: z.string().optional(),\n }),\n description: z.string().nullable(),\n security: SecurityFlagsSchema.nullable(),\n twitterReusesCount: z.coerce.number().default(0),\n twitterRenameCount: z.coerce.number().default(0),\n twitterRenameHistory: z\n .array(\n z.object({\n username: z.string(),\n lastChecked: z.string(),\n }),\n )\n .default([]),\n perpetuals: PerpDataMarketDetailsOutputSchema.optional(),\n extraData: z.record(z.unknown()).optional(),\n })\n .merge(HoldersStatsSchema);\n\nexport type MarketDetailsOutputType = z.infer<typeof MarketDetailsOutput>;\n",
63
+ "import { z } from 'zod';\n\nexport type ExchangeId = 'gte' | 'gains' | 'hyperliquid' | 'lighter';\n\n/**\n * @DefaultMarketSymbol This is the default market symbol, it should be used nowhere except to define @MarketId\n */\ntype DefaultMarketSymbol<TExchangeId extends ExchangeId> = `${TExchangeId}-${Lowercase<string>}-${Lowercase<string>}`;\n\n/**\n * @MarketId the universal MarketId for perps, with exchange ids specificities\n */\nexport type MarketId<TExchangeId extends ExchangeId> = TExchangeId extends 'gains'\n ? `${DefaultMarketSymbol<TExchangeId>}-${Lowercase<string>}` //addition member for collateral\n : DefaultMarketSymbol<TExchangeId>;\n\nexport type HoldingFeesTimeframes = '1h' | '8h' | '24h' | '1y';\n\nexport type FlattenedHoldingFees = {\n //1h\n fundingFeeShort1hPercentage: number; //eg. 0.005%\n totalFeeShort1hPercentage: number; //eg. 0.006%\n fundingFeeLong1hPercentage: number; //eg. 0.005%\n totalFeeLong1hPercentage: number; //eg. 0.006%\n\n //4h\n fundingFeeShort8hPercentage: number; //eg. 0.005%\n totalFeeShort8hPercentage: number; //eg. 0.006%\n fundingFeeLong8hPercentage: number; //eg. 0.005%\n totalFeeLong8hPercentage: number; //eg. 0.006%\n\n //24h\n fundingFeeShort24hPercentage: number; //eg. 0.005%\n totalFeeShort24hPercentage: number; //eg. 0.006%\n fundingFeeLong24hPercentage: number; //eg. 0.005%\n totalFeeLong24hPercentage: number; //eg. 0.006%\n\n //1y\n fundingFeeShort1yPercentage: number; //eg. 0.005%\n totalFeeShort1yPercentage: number; //eg. 0.006%\n fundingFeeLong1yPercentage: number; //eg. 0.005%\n totalFeeLong1yPercentage: number; //eg. 0.006%\n};\n\nexport type AssetClasses = 'crypto' | 'forex' | 'stocks' | 'indices' | 'commodities';\n\nconst PerpDataRedisSchemaBase = z.object({\n markPriceUSD: z.coerce.number().default(0),\n markPriceQuote: z.coerce.number().default(0),\n oraclePriceUSD: z.coerce.number().default(0),\n isDisabled: z.coerce.boolean(),\n isOpen: z.coerce.boolean(),\n assetClass: z.string().transform((value) => (!value ? 'crypto' : (value as AssetClasses))) as z.ZodType<AssetClasses>,\n spreadPercentage: z.coerce.number().default(0),\n\n fundingFeeShort1hPercentage: z.coerce.number().default(0),\n totalFeeShort1hPercentage: z.coerce.number().default(0),\n fundingFeeLong1hPercentage: z.coerce.number().default(0),\n totalFeeLong1hPercentage: z.coerce.number().default(0),\n\n fundingFeeShort8hPercentage: z.coerce.number().default(0),\n totalFeeShort8hPercentage: z.coerce.number().default(0),\n fundingFeeLong8hPercentage: z.coerce.number().default(0),\n totalFeeLong8hPercentage: z.coerce.number().default(0),\n\n fundingFeeShort24hPercentage: z.coerce.number().default(0),\n totalFeeShort24hPercentage: z.coerce.number().default(0),\n fundingFeeLong24hPercentage: z.coerce.number().default(0),\n totalFeeLong24hPercentage: z.coerce.number().default(0),\n\n fundingFeeShort1yPercentage: z.coerce.number().default(0),\n totalFeeShort1yPercentage: z.coerce.number().default(0),\n fundingFeeLong1yPercentage: z.coerce.number().default(0),\n totalFeeLong1yPercentage: z.coerce.number().default(0),\n\n collateral: z.string().optional(),\n //pairIndex: z.coerce.number().optional(),\n\n marketId: z.string(),\n});\n\nexport const PerpDataRedisSchemaFlatten = PerpDataRedisSchemaBase.extend({\n oiCollateral_oiLong: z.coerce.number().default(0),\n oiCollateral_oiShort: z.coerce.number().default(0),\n oiCollateral_max: z.coerce.number().optional(),\n\n leverage_min: z.coerce.number().default(0),\n leverage_max: z.coerce.number().default(0),\n\n defaultTradingFees_makerFeeBps: z.coerce.number().default(0),\n defaultTradingFees_takerFeeBps: z.coerce.number().default(0),\n\n liquidationParams_maxLiqSpreadPercentage: z.coerce.number().default(0),\n liquidationParams_startLiqThresholdPercentage: z.coerce.number().default(0),\n liquidationParams_endLiqThresholdPercentage: z.coerce.number().default(0),\n liquidationParams_startLeverage: z.coerce.number().default(0),\n liquidationParams_endLeverage: z.coerce.number().default(0),\n});\n\nexport type PerpDataRedisFlatten = z.infer<typeof PerpDataRedisSchemaFlatten>;\n\nexport const PerpDataRedisSchemaNested = PerpDataRedisSchemaBase.extend({\n defaultTradingFees: z.object({\n makerFeeBps: z.number().default(0),\n takerFeeBps: z.number().default(0),\n }),\n\n oiCollateral: z.object({\n oiLong: z.number().default(0),\n oiShort: z.number().default(0),\n max: z.number().optional(),\n }),\n\n leverage: z.object({\n min: z.number().default(0),\n max: z.number().default(0),\n }),\n\n liquidationParams: z.object({\n maxLiqSpreadPercentage: z.number().default(0),\n startLiqThresholdPercentage: z.number().default(0),\n endLiqThresholdPercentage: z.number().default(0),\n startLeverage: z.number().default(0),\n endLeverage: z.number().default(0),\n }),\n});\n\nexport type PerpDataRedisNested = z.infer<typeof PerpDataRedisSchemaNested>;\n\nexport const PerpDataMarketDetailsOutputSchema = PerpDataRedisSchemaNested.omit({ oiCollateral: true }).extend({\n openInterest: z.object({\n longUSD: z.number().default(0),\n longQuoteToken: z.number().default(0),\n shortUSD: z.number().default(0),\n shortQuoteToken: z.number().default(0),\n maxUSD: z.number().optional(),\n maxQuoteToken: z.number().optional(),\n }),\n});\n\nexport type PerpDataMarketDetailsOutput = z.infer<typeof PerpDataMarketDetailsOutputSchema>;\n",
64
+ "import { z } from 'zod';\nimport normalizePeriod from '../../utils/functions/period.ts';\nimport DateQuery from '../../utils/schemas/DateQuery.ts';\n\n// Helper for boolean parsing from query string\nconst booleanFromString = z\n .union([z.boolean(), z.string()])\n .optional()\n .default(true)\n .transform((val) => {\n if (typeof val === 'boolean') return val;\n if (val === 'false' || val === '0') return false;\n return true;\n });\n\n// Single market/pool query schema (shared between GET params and POST body items)\nconst MarketOHLCVHistoryItemSchema = z.object({\n address: z.string(),\n chainId: z.string(),\n from: DateQuery.transform((val) => val ?? 0),\n to: DateQuery.transform((val) => val ?? new Date()),\n period: z\n .string()\n .optional()\n .transform((val) => (val ? normalizePeriod(val) : '5m')),\n amount: z.coerce.number().optional(),\n usd: booleanFromString,\n});\n\n// ==================== MARKET OHLCV (Pool-based) ====================\n// GET: address + chainId required\nexport const MarketOHLCVHistoryParamsSchema = MarketOHLCVHistoryItemSchema.refine(\n (data) => data.address && data.chainId,\n { message: 'address and chainId are required' },\n);\n\nexport type MarketOHLCVHistoryParams = z.input<typeof MarketOHLCVHistoryParamsSchema>;\nexport type MarketOHLCVHistoryInferType = z.infer<typeof MarketOHLCVHistoryParamsSchema>;\n\n// Array schema for batch items\nconst MarketOHLCVHistoryArraySchema = z\n .array(MarketOHLCVHistoryItemSchema)\n .min(1, 'At least one market is required')\n .max(10, 'Maximum 10 markets per request');\n\n// POST request schema - supports both array and object with 'markets' key\nexport const MarketOHLCVHistoryBatchParamsSchema = z.union([\n MarketOHLCVHistoryArraySchema,\n z.object({ markets: MarketOHLCVHistoryArraySchema }),\n]);\n\nexport type MarketOHLCVHistoryBatchParams = z.input<typeof MarketOHLCVHistoryBatchParamsSchema>;\n\n// ==================== RESPONSE SCHEMA ====================\nconst OHLCVCandleSchema = z.object({\n v: z.number(),\n o: z.number(),\n h: z.number(),\n l: z.number(),\n c: z.number(),\n t: z.number(),\n});\n\nexport const MarketOHLCVHistoryResponseSchema = z.object({\n data: z.array(OHLCVCandleSchema),\n});\n\nexport type MarketOHLCVHistoryResponse = z.infer<typeof MarketOHLCVHistoryResponseSchema>;\n\n// Single market batch response data schema\nconst MarketOHLCVHistoryDataSchema = z.object({\n ohlcv: z.array(OHLCVCandleSchema),\n address: z.string(),\n chainId: z.string(),\n error: z.string().optional(),\n});\n\n// POST response schema (batch - array of markets)\nexport const MarketOHLCVHistoryBatchResponseSchema = z.object({\n data: z.array(MarketOHLCVHistoryDataSchema),\n});\n\nexport type MarketOHLCVHistoryBatchResponse = z.infer<typeof MarketOHLCVHistoryBatchResponseSchema>;\n",
65
+ "import { z } from 'zod';\n\nconst SupportedDexSchema = z.enum(['gains']);\n\nconst TradeTypeSchema = z.enum(['market', 'limit', 'stop_limit']);\n\nconst PerpOrderQuotingParamsSchema = z.object({\n user: z.string(),\n baseToken: z.string(),\n quote: z.string(),\n leverage: z.coerce.number(),\n long: z.union([z.boolean(), z.string()]).transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n collateralAmount: z.coerce.number(),\n openPrice: z.coerce.number().optional(),\n tp: z.coerce.number().optional(),\n sl: z.coerce.number().optional(),\n tradeType: TradeTypeSchema.optional().default('market'),\n amountRaw: z.coerce.number().optional(),\n maxSlippageP: z.coerce.number().optional(),\n chainId: z.string().optional(),\n dex: SupportedDexSchema.optional(),\n referrer: z.string().optional(),\n});\n\ntype TradeType = z.infer<typeof TradeTypeSchema>;\ntype SupportedDex = z.infer<typeof SupportedDexSchema>;\ntype PerpOrderQuotingParams = z.infer<typeof PerpOrderQuotingParamsSchema>;\n\nexport { PerpOrderQuotingParamsSchema, type TradeType, type SupportedDex, type PerpOrderQuotingParams };\n",
66
+ "import { z } from 'zod';\nimport { SwapQuotingDataSchema } from './SwapQuotingOutput.ts';\n\nconst SwapQuotingBatchResultSchema = z.object({\n data: SwapQuotingDataSchema,\n error: z.string().optional(),\n index: z.number(),\n});\n\nexport const SwapQuotingBatchOutputSchema = z.object({\n results: z.array(SwapQuotingBatchResultSchema),\n totalRequests: z.number(),\n successCount: z.number(),\n errorCount: z.number(),\n});\n\nexport type SwapQuotingBatchResult = z.infer<typeof SwapQuotingBatchResultSchema>;\nexport type SwapQuotingBatchResponse = z.infer<typeof SwapQuotingBatchOutputSchema>;\n",
67
+ "import { z } from 'zod';\n\nconst SolanaTransactionSchema = z.object({\n serialized: z.string(),\n variant: z.enum(['legacy', 'versioned']),\n});\n\nconst EVMTransactionSchema = z.object({\n to: z.string(),\n from: z.string(),\n data: z.string(),\n value: z.string(),\n gasLimit: z.string().optional(),\n gasPrice: z.string().optional(),\n maxFeePerGas: z.string().optional(),\n maxPriorityFeePerGas: z.string().optional(),\n nonce: z.number().optional(),\n chainId: z.number(),\n});\n\nconst TokenInfoSchema = z.object({\n address: z.string(),\n name: z.string().optional(),\n symbol: z.string().optional(),\n decimals: z.number(),\n logo: z.string().nullable().optional(),\n});\n\nconst RouteHopSchema = z.object({\n poolAddress: z.string(),\n tokenIn: TokenInfoSchema,\n tokenOut: TokenInfoSchema,\n amountInTokens: z.string(),\n amountOutTokens: z.string(),\n exchange: z.string().optional(),\n poolType: z.string().optional(),\n feePercentage: z.number().optional(),\n feeBps: z.number().optional(),\n});\n\nconst RouteDetailsSchema = z.object({\n hops: z.array(RouteHopSchema),\n totalFeePercentage: z.number().optional(),\n aggregator: z.string().optional(),\n});\n\nconst BaseDataSchema = z.object({\n amountOutTokens: z.string().optional(),\n slippagePercentage: z.number().optional(),\n amountInUSD: z.number().optional(),\n amountOutUSD: z.number().optional(),\n marketImpactPercentage: z.number().optional(),\n poolFeesPercentage: z.number().optional(),\n tokenIn: TokenInfoSchema.optional(),\n tokenOut: TokenInfoSchema.optional(),\n requestId: z.string(),\n details: z\n .object({\n route: RouteDetailsSchema.optional(),\n aggregator: z.string().optional(),\n raw: z.record(z.unknown()).optional(),\n })\n .optional(),\n});\n\nconst DataWithSolanaSchema = BaseDataSchema.extend({\n solana: z.object({\n transaction: SolanaTransactionSchema,\n /** The last block height at which the blockhash used in this transaction is valid */\n lastValidBlockHeight: z.number(),\n }),\n evm: z.never().optional(),\n});\n\nconst DataWithEVMSchema = BaseDataSchema.extend({\n evm: z.object({\n transaction: EVMTransactionSchema,\n }),\n solana: z.never().optional(),\n});\n\nconst DataWithErrorSchema = BaseDataSchema.extend({\n solana: z.never().optional(),\n evm: z.never().optional(),\n});\n\nexport const SwapQuotingDataSchema = z.union([DataWithSolanaSchema, DataWithEVMSchema, DataWithErrorSchema]);\n\nexport const SwapQuotingOutputSchema = z.object({\n data: SwapQuotingDataSchema,\n error: z.string().optional(),\n});\n\nexport type SwapQuotingData = z.infer<typeof SwapQuotingDataSchema>;\nexport type SwapQuotingResponse = z.infer<typeof SwapQuotingOutputSchema>;\n",
68
+ "import { z } from 'zod';\n\nconst SwapQuotingBatchItemSchema = z\n .object({\n chainId: z.string(),\n tokenIn: z.string().min(1, 'tokenIn is required'),\n tokenOut: z.string().min(1, 'tokenOut is required'),\n amount: z.number().positive('Amount must be a positive number').optional(),\n amountRaw: z\n .string()\n .regex(/^\\d+$/, 'amountRaw must be a positive integer string')\n .refine((val) => BigInt(val) > 0n, 'amountRaw must be positive')\n .transform((val) => BigInt(val))\n .optional(),\n slippage: z.number().min(0).max(100, 'Slippage must be between 0 and 100').default(1),\n walletAddress: z.string().min(1, 'walletAddress is required'),\n excludedProtocols: z.array(z.string()).optional(),\n onlyProtocols: z.array(z.string()).optional(),\n poolAddress: z.string().optional(),\n onlyRouters: z\n .array(z.enum(['jupiter', 'kyberswap', 'lifi']))\n .optional()\n .transform((val) => (val?.length ? val : undefined)),\n })\n .refine((data) => (data.amount !== undefined) !== (data.amountRaw !== undefined), {\n message: 'Either amount or amountRaw must be provided (but not both)',\n path: ['amount'],\n });\n\nexport const SwapQuotingBatchBodySchema = z.object({\n requests: z\n .array(SwapQuotingBatchItemSchema)\n .min(1, 'At least one request is required')\n .max(30, 'Maximum 30 requests allowed per batch'),\n});\n\nexport type SwapQuotingBatchItem = z.infer<typeof SwapQuotingBatchItemSchema>;\nexport type SwapQuotingBatchBody = z.infer<typeof SwapQuotingBatchBodySchema>;\n",
69
+ "import { z } from 'zod';\n\n/**\n * Swap Quoting Query Schema\n *\n * Amount specification:\n * - Either `amount` OR `amountRaw` must be provided (but not both)\n * - `amount`: Human-readable amount (e.g., \"1.5\" for 1.5 tokens)\n * This will be converted to raw amount by multiplying by 10^decimals\n * Example: For USDC (6 decimals), amount=\"1.5\" becomes 1500000 raw units\n * - `amountRaw`: Raw amount as a string (e.g., \"1500000\" for 1.5 USDC with 6 decimals)\n * This is the exact amount that will be used in the swap without conversion\n * Useful when you already have the raw amount and want to avoid precision loss\n *\n * Decimals explanation:\n * Tokens have a decimals property (typically 18 for ETH, 6 for USDC, 8 for BTC)\n * Raw amount = human-readable amount × 10^decimals\n * Example: 1.5 USDC (6 decimals) = 1.5 × 10^6 = 1500000 raw units\n */\nexport const SwapQuotingQuerySchema = z\n .object({\n chainId: z.string(),\n tokenIn: z.string().min(1, 'tokenIn is required'),\n tokenOut: z.string().min(1, 'tokenOut is required'),\n /**\n * Human-readable amount (e.g., \"1.5\" for 1.5 tokens)\n * Will be converted to raw amount by multiplying by 10^decimals\n */\n amount: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n const parsed = Number.parseFloat(val);\n if (Number.isNaN(parsed) || parsed <= 0) {\n throw new Error('Amount must be a positive number');\n }\n return parsed;\n }),\n /**\n * Raw amount as a string (e.g., \"1500000\" for 1.5 USDC with 6 decimals)\n * This is the exact amount that will be used in the swap without conversion\n * Must be a positive integer string\n */\n amountRaw: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n // Validate it's a valid positive integer string\n if (!/^\\d+$/.test(val)) {\n throw new Error('amountRaw must be a positive integer string');\n }\n const parsed = BigInt(val);\n if (parsed <= 0n) {\n throw new Error('amountRaw must be a positive integer');\n }\n return parsed;\n }),\n slippage: z\n .string()\n .optional()\n .default('1')\n .transform((val) => {\n const parsed = Number.parseFloat(val);\n if (Number.isNaN(parsed) || parsed < 0 || parsed > 100) {\n throw new Error('Slippage must be between 0 and 100');\n }\n return parsed;\n }),\n walletAddress: z.string().min(1, 'walletAddress is required'),\n excludedProtocols: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n return val\n .split(',')\n .map((f) => f.trim())\n .filter((f) => f.length > 0);\n }),\n onlyProtocols: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n // Return raw string values - no mapping, pass directly to KyberSwap\n return val\n .split(',')\n .map((t) => t.trim())\n .filter((t) => t.length > 0);\n }),\n poolAddress: z.string().optional(),\n onlyRouters: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n const supportedRouters = ['jupiter', 'kyberswap', 'lifi'] as const;\n\n // Handle comma-separated values for array support\n const routers = val\n .split(',')\n .map((r) => r.trim().toLowerCase())\n .filter((r) => r.length > 0);\n\n // Validate all routers\n for (const router of routers) {\n if (!supportedRouters.includes(router as (typeof supportedRouters)[number])) {\n throw new Error(`Invalid router \"${router}\". Supported routers: ${supportedRouters.join(', ')}`);\n }\n }\n\n // Always return array (or undefined if empty)\n if (routers.length === 0) return undefined;\n return routers as Array<(typeof supportedRouters)[number]>;\n }),\n })\n .refine(\n (data) => {\n const hasAmount = data.amount !== undefined;\n const hasAmountRaw = data.amountRaw !== undefined;\n return hasAmount !== hasAmountRaw; // XOR: exactly one must be provided\n },\n {\n message: 'Either amount or amountRaw must be provided (but not both)',\n path: ['amount'],\n },\n );\n\nexport type SwapQuotingQueryParams = z.infer<typeof SwapQuotingQuerySchema>;\n",
70
+ "import { z } from 'zod';\n\nexport const SwapSendResponseSchema = z.object({\n data: z.object({\n success: z.boolean(),\n transactionHash: z.string().optional(),\n requestId: z.string(),\n }),\n error: z.string().optional(),\n});\n\nexport type SwapSendResponse = z.infer<typeof SwapSendResponseSchema>;\n",
71
+ "import { z } from 'zod';\n\nexport const SwapSendSchema = z.object({\n chainId: z.string(),\n signedTransaction: z\n .string()\n .min(1, 'signedTransaction is required')\n .transform((val) => {\n try {\n return Buffer.from(val, 'base64');\n } catch {\n throw new Error('signedTransaction must be a valid base64 string');\n }\n }),\n});\n\nexport type SwapSendParams = z.infer<typeof SwapSendSchema>;\n",
72
+ "import { z } from 'zod';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\n\nconst TokenDetailsItemParams = z.object({\n blockchain: z.string().optional(),\n address: z.string().optional(),\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n});\n\nconst TokenDetailsParamsSchema = TokenDetailsItemParams;\n\nconst TokenDetailsBatchParamsSchema = z.union([\n z.array(TokenDetailsItemParams),\n z.object({\n items: z.array(TokenDetailsItemParams),\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n }),\n]);\n\nexport type TokenDetailsParams = z.input<typeof TokenDetailsParamsSchema>;\n\nexport const TokenDetailsResponseSchema = z.object({\n data: TokenDetailsOutput,\n hostname: z.string().optional(),\n});\nexport type TokenDetailsResponse = z.infer<typeof TokenDetailsResponseSchema>;\n\nexport const TokenDetailsBatchResponseSchema = z.object({\n payload: z.array(TokenDetailsOutput.or(z.object({ error: z.string().optional() })).nullable()),\n hostname: z.string().optional(),\n});\nexport type TokenDetailsBatchResponse = z.infer<typeof TokenDetailsBatchResponseSchema>;\n\nexport type TokenDetailsBatchParams = z.input<typeof TokenDetailsBatchParamsSchema>;\n\nexport { TokenDetailsParamsSchema, TokenDetailsBatchParamsSchema };\n",
73
+ "import { z } from 'zod';\nimport normalizePeriod from '../../utils/functions/period.ts';\nimport DateQuery from '../../utils/schemas/DateQuery.ts';\nimport { stringOrArray } from '../../utils/schemas/StringOrArray.ts';\n\nconst allowedBars = ['1s', '1m', '5m', '15m', '1h', '1d', '1w'] as const;\ntype AllowedBar = (typeof allowedBars)[number];\n\nexport function normalizeBar(input: string): AllowedBar {\n const period = normalizePeriod(input, '5m');\n\n if (!allowedBars.includes(period as AllowedBar)) {\n throw new Error('Invalid bar value');\n }\n\n return period as AllowedBar;\n}\n\nexport const TokenKlineBsPointParamsSchema = z.object({\n blockchain: z.string(),\n address: z.string(),\n bar: z.string().transform((val) => normalizeBar(val)),\n fromDate: DateQuery.transform((val) => val ?? undefined),\n toDate: DateQuery.transform((val) => val ?? undefined),\n transactionSenderAddresses: stringOrArray.default([]),\n labels: stringOrArray\n .optional()\n .transform((val) => val?.map((label) => String(label).trim()).filter((label) => label.length > 0) ?? []),\n});\n\nexport type TokenKlineBsPointParams = z.input<typeof TokenKlineBsPointParamsSchema>;\nexport type TokenKlineBsPointInferType = z.infer<typeof TokenKlineBsPointParamsSchema>;\n\nexport const TokenKlineBsBubblePoint = z.object({\n volumeBuyToken: z.string(), // total base token bought in the bucket\n buys: z.string(), // number of buy trades\n avgBuyPriceUSD: z.string(), // average buy price (buyValue / buyAmount), \"0\" if no buys\n volumeBuy: z.string(), // total USD value of buys\n\n volumeSellToken: z.string(), // total base token sold in the bucket\n sells: z.string(), // number of sell trades\n avgSellPriceUSD: z.string(), // average sell price (sellValue / sellAmount), \"0\" if no sells\n volumeSell: z.string(), // total USD value of sells\n\n fromAddress: z.string(), // address-level bubble => wallet address; tag-only bubble => empty string\n fromAddressTag: z.string(), // main tag for this bubble, e.g. \"following\", \"dev\"\n\n time: z.string(), // bucket start time in ms (string)\n});\n\nexport const TokenKlineBsPointResponseSchema = z.object({\n data: z.array(TokenKlineBsBubblePoint),\n});\n\nexport type TokenKlineBsPointResponse = z.infer<typeof TokenKlineBsPointResponseSchema>;\n",
74
+ "import { z } from 'zod';\nimport { MarketDetailsOutput } from '../../utils/schemas/MarketDetailsOutput.ts';\n\nconst DEFAULT_MARKETS_RES_LIMIT = 10;\nconst MARKETS_MAX__RES_LIMIT = 25;\n\nexport const TokenMarketsParamsSchema = z.object({\n blockchain: z.string().optional(),\n address: z.string(),\n limit: z.coerce.number().min(1).max(MARKETS_MAX__RES_LIMIT).default(DEFAULT_MARKETS_RES_LIMIT),\n});\n\nexport type TokenMarketsParams = z.input<typeof TokenMarketsParamsSchema>;\n\n/**\n * The resolved data for TokenMarkets is an array of what MarketDetails resolve, so we\n * use the same schema as a base.\n */\nexport const TokenMarketsOutput = z.array(MarketDetailsOutput);\n\nexport const TokenMarketsResponseSchema = z.object({\n data: TokenMarketsOutput,\n totalCount: z.number(),\n});\n\nexport type TokenMarketsResponse = z.infer<typeof TokenMarketsResponseSchema>;\n",
75
+ "import { z } from 'zod';\nimport normalizePeriod from '../../utils/functions/period.ts';\nimport DateQuery from '../../utils/schemas/DateQuery.ts';\n\n// Helper for boolean parsing from query string\nconst booleanFromString = z\n .union([z.boolean(), z.string()])\n .optional()\n .default(true)\n .transform((val) => {\n if (typeof val === 'boolean') return val;\n if (val === 'false' || val === '0') return false;\n return true;\n });\n\n// Single token query schema (shared between GET params and POST body items)\nconst TokenOHLCVHistoryItemSchema = z.object({\n address: z.string(),\n chainId: z.string(),\n from: DateQuery.transform((val) => val ?? 0),\n to: DateQuery.transform((val) => val ?? new Date()),\n period: z\n .string()\n .optional()\n .transform((val) => (val ? normalizePeriod(val) : '5m')),\n amount: z.coerce.number().optional(),\n usd: booleanFromString,\n});\n\n// ==================== TOKEN OHLCV ====================\n// GET: address + chainId required\nexport const TokenOHLCVHistoryParamsSchema = TokenOHLCVHistoryItemSchema.refine(\n (data) => data.address && data.chainId,\n { message: 'address and chainId are required' },\n);\n\nexport type TokenOHLCVHistoryParams = z.input<typeof TokenOHLCVHistoryParamsSchema>;\nexport type TokenOHLCVHistoryInferType = z.infer<typeof TokenOHLCVHistoryParamsSchema>;\n\n// Array schema for batch items\nconst TokenOHLCVHistoryArraySchema = z\n .array(TokenOHLCVHistoryItemSchema)\n .min(1, 'At least one token is required')\n .max(10, 'Maximum 10 tokens per request');\n\n// POST request schema - supports both array and object with 'tokens' key\nexport const TokenOHLCVHistoryBatchParamsSchema = z.union([\n TokenOHLCVHistoryArraySchema,\n z.object({ tokens: TokenOHLCVHistoryArraySchema }),\n]);\n\nexport type TokenOHLCVHistoryBatchParams = z.input<typeof TokenOHLCVHistoryBatchParamsSchema>;\n\n// ==================== RESPONSE SCHEMA ====================\nconst OHLCVCandleSchema = z.object({\n v: z.number(),\n o: z.number(),\n h: z.number(),\n l: z.number(),\n c: z.number(),\n t: z.number(),\n});\n\nexport const TokenOHLCVHistoryResponseSchema = z.object({\n data: z.array(OHLCVCandleSchema),\n});\n\nexport type TokenOHLCVHistoryResponse = z.infer<typeof TokenOHLCVHistoryResponseSchema>;\n\n// Single token batch response data schema\nconst TokenOHLCVHistoryDataSchema = z.object({\n ohlcv: z.array(OHLCVCandleSchema),\n address: z.string(),\n chainId: z.string(),\n error: z.string().optional(),\n});\n\n// POST response schema (batch - array of tokens)\nexport const TokenOHLCVHistoryBatchResponseSchema = z.object({\n data: z.array(TokenOHLCVHistoryDataSchema),\n});\n\nexport type TokenOHLCVHistoryBatchResponse = z.infer<typeof TokenOHLCVHistoryBatchResponseSchema>;\n",
76
+ "import { z } from 'zod';\nimport { Tags } from '../../utils/constants/constants.ts';\nimport { stringOrArray } from '../../utils/schemas/StringOrArray.ts';\n\nexport const TokenPositionsParamsSchema = z.object({\n blockchain: z.string().optional(),\n address: z.string().optional(),\n force: z.coerce.boolean().optional().default(false),\n label: z.nativeEnum(Tags).optional(),\n limit: z.coerce.number().optional().default(100),\n walletAddresses: stringOrArray.optional(),\n});\n\nexport type TokenPositionsParams = z.input<typeof TokenPositionsParamsSchema>;\n\nexport const TokenPositionOutput = z.object({\n chainId: z.string(),\n walletAddress: z.string(),\n tokenAddress: z.string(),\n tokenAmount: z.string(),\n tokenAmountRaw: z.string(),\n pnlUSD: z.string(),\n buys: z.number(),\n sells: z.number(),\n volumeBuyToken: z.string(),\n volumeSellToken: z.string(),\n volumeBuyUSD: z.string(),\n volumeSellUSD: z.string(),\n avgBuyPriceUSD: z.string(),\n avgSellPriceUSD: z.string(),\n walletFundAt: z.date().nullable(),\n lastActivityAt: z.date().nullable(),\n firstTradeAt: z.date().nullable(),\n lastTradeAt: z.date().nullable(),\n labels: z.array(z.string()).nullable().optional().default([]),\n fundingInfo: z.object({\n from: z.string().nullable(),\n date: z.date().nullable(),\n chainId: z.string().nullable(),\n txHash: z.string().nullable(),\n amount: z.string().nullable(),\n fromWalletLogo: z.string().nullable(),\n fromWalletTag: z.string().nullable(),\n }),\n});\n\nexport const TokenPositionsResponseSchema = z.object({\n data: z.array(TokenPositionOutput),\n});\n\nexport type TokenPositionsResponse = z.infer<typeof TokenPositionsResponseSchema>;\n\nexport type TokenPositionsOutputResponse = z.infer<typeof TokenPositionOutput>;\n",
77
+ "import { z } from 'zod';\n\nexport const TokenSecurityOutput = z.object({\n address: z.string(),\n chainId: z.string(),\n contractHoldingsPercentage: z.number().nullable(),\n contractBalanceRaw: z.string().nullable(),\n burnedHoldingsPercentage: z.number().nullable(),\n totalBurnedBalanceRaw: z.string().nullable(),\n buyFeePercentage: z.number(),\n sellFeePercentage: z.number(),\n maxWalletAmountRaw: z.string().nullable(),\n maxSellAmountRaw: z.string().nullable(),\n maxBuyAmountRaw: z.string().nullable(),\n maxTransferAmountRaw: z.string().nullable(),\n // Additional security fields\n isLaunchpadToken: z.boolean().nullable(),\n top10HoldingsPercentage: z.number().nullable(),\n top50HoldingsPercentage: z.number().nullable(),\n top100HoldingsPercentage: z.number().nullable(),\n top200HoldingsPercentage: z.number().nullable(),\n isMintable: z.boolean().nullable(),\n isFreezable: z.boolean().nullable(),\n // Terminal volume percentage: (feesPaid24h / volume24h) * 100 * 50 - estimates % of 24h volume from terminal users\n proTraderVolume24hPercentage: z.number().nullable(),\n});\n\nexport type TokenSecurityOutputType = z.infer<typeof TokenSecurityOutput>;\n\nexport const TokenSecurityResponseSchema = z.object({\n data: TokenSecurityOutput,\n hostname: z.string().optional(),\n});\n\nexport type TokenSecurityResponse = z.infer<typeof TokenSecurityResponseSchema>;\n",
78
+ "import { z } from 'zod';\n\nexport const TokenSecurityQuery = z.object({\n blockchain: z.string().optional(),\n address: z.string(),\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n});\n\nexport type TokenSecurityQueryType = z.input<typeof TokenSecurityQuery>;\n",
79
+ "import { z } from 'zod';\nimport { SwapType, Tags } from '../../utils/constants/constants.ts';\nimport DateQuery from '../../utils/schemas/DateQuery.ts';\nimport { stringOrArray } from '../../utils/schemas/StringOrArray.ts';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\n\nexport const TokenTradesParamsSchema = z.object({\n blockchain: z.string().optional(),\n address: z.string().optional(),\n offset: z.coerce.number().default(0),\n limit: z.coerce.number().optional().default(10),\n sortOrder: z.enum(['asc', 'desc']).default('desc'),\n mode: z.enum(['pair', 'asset']).default('pair'),\n label: z.nativeEnum(Tags).optional(),\n swapTypes: stringOrArray\n .optional()\n .transform((val) => val?.filter((v) => Object.values(SwapType).includes(v as SwapType))),\n swapSenderAddresses: stringOrArray.optional(),\n transactionSenderAddresses: stringOrArray.optional(),\n maxAmountUSD: z.coerce.number().optional(),\n minAmountUSD: z.coerce.number().optional(),\n fromDate: DateQuery.transform((val) => val ?? undefined),\n toDate: DateQuery.transform((val) => val ?? undefined),\n});\n\nexport type TokenTradesParams = z.input<typeof TokenTradesParamsSchema>;\nexport type TokenTradesInferType = z.infer<typeof TokenTradesParamsSchema>;\n\nexport const TokenTradeOutput = z.object({\n id: z.string(),\n operation: z.string(),\n type: z.string(),\n baseTokenAmount: z.number(),\n baseTokenAmountRaw: z.string(),\n baseTokenAmountUSD: z.number(),\n quoteTokenAmount: z.number(),\n quoteTokenAmountRaw: z.string(),\n quoteTokenAmountUSD: z.number(),\n preBalanceBaseToken: z.string().nullable().optional(),\n preBalanceQuoteToken: z.string().nullable().optional(),\n postBalanceBaseToken: z.string().nullable().optional(),\n postBalanceQuoteToken: z.string().nullable().optional(),\n date: z.number(),\n swapSenderAddress: z.string(),\n transactionSenderAddress: z.string(),\n blockchain: z.string(),\n transactionHash: z.string(),\n marketAddress: z.string(),\n baseTokenPriceUSD: z.number(),\n quoteTokenPriceUSD: z.number(),\n labels: z.array(z.string()).nullable().optional().default([]),\n baseToken: TokenDetailsOutput.optional(),\n quoteToken: TokenDetailsOutput.optional(),\n});\n\nexport const TokenTradeResponseSchema = z.object({\n data: z.array(TokenTradeOutput),\n});\n\nexport type TokenTradesResponse = z.infer<typeof TokenTradeResponseSchema>;\n\nexport const SingleTokenTradeResponseSchema = z.object({\n data: TokenTradeOutput,\n});\n\nexport type SingleTokenTradeResponse = z.infer<typeof SingleTokenTradeResponseSchema>;\n\nexport const FormattedTokenTradeOutput = z.object({\n labels: z.array(z.string()).nullable().optional().default([]),\n pair: z.string(),\n date: z.number(),\n tokenPrice: z.number(),\n tokenPriceVs: z.number(),\n tokenAmount: z.number(),\n tokenAmountVs: z.number(),\n tokenAmountUsd: z.number(),\n tokenAmountVsUsd: z.number(),\n type: z.string(),\n operation: z.string(),\n blockchain: z.string(),\n hash: z.string(),\n sender: z.string(),\n tokenAmountRaw: z.string(),\n tokenAmountRawVs: z.string(),\n});\n\nexport const FormattedTokenTradeResponseSchema = z.object({\n data: z.array(FormattedTokenTradeOutput),\n});\n\nexport type FormattedTokenTradesResponse = z.infer<typeof FormattedTokenTradeResponseSchema>;\n\nexport const TokenTradeParamsSchema = z.object({\n blockchain: z.string().optional(),\n transactionHash: z.string().min(1, 'Transaction hash is required'),\n});\n\nexport type TokenTradeParams = z.input<typeof TokenTradeParamsSchema>;\nexport type TokenTradeInferType = z.infer<typeof TokenTradeParamsSchema>;\n\nexport const TokenTradeParamsSchemaOpenAPI = z.object({\n blockchain: z.string().describe('Blockchain name or chain ID'),\n transactionHash: z.string().min(1).describe('Transaction hash'),\n});\n\nexport const TokenTradeOutputOpenAPI = z.object({\n id: z.string(),\n operation: z.string(),\n type: z.string(),\n baseTokenAmount: z.number(),\n baseTokenAmountRaw: z.string(),\n baseTokenAmountUSD: z.number(),\n quoteTokenAmount: z.number(),\n quoteTokenAmountRaw: z.string(),\n quoteTokenAmountUSD: z.number(),\n date: z.number(),\n swapSenderAddress: z.string(),\n transactionSenderAddress: z.string(),\n blockchain: z.string(),\n transactionHash: z.string(),\n marketAddress: z.string(),\n baseTokenPriceUSD: z.number(),\n quoteTokenPriceUSD: z.number(),\n labels: z.array(z.string()).nullable().optional().default([]),\n baseToken: TokenDetailsOutput.optional(),\n quoteToken: TokenDetailsOutput.optional(),\n});\n\nexport const SingleTokenTradeResponseSchemaOpenAPI = z.object({\n data: TokenTradeOutputOpenAPI,\n});\n",
80
+ "import { z } from 'zod';\n\n// Zod schema for wallet analysis query parameters\nexport const WalletAnalysisParamsSchema = z.object({\n wallet: z.string().min(1, 'Wallet address is required'),\n blockchain: z.string().optional(),\n period: z\n .string()\n .optional()\n .default('7d')\n .transform((val) => val?.toLowerCase())\n .refine((val) => ['1d', '7d', '30d', '90d'].includes(val), {\n message: 'Period must be one of: 1d, 7d, 30d, 90d',\n }),\n});\n\nexport type WalletAnalysisParams = z.input<typeof WalletAnalysisParamsSchema>;\n\n// OpenAPI-compatible params schema (simplified without transformations)\nexport const WalletAnalysisParamsSchemaOpenAPI = z.object({\n wallet: z.string().min(1).describe('Wallet address to analyze'),\n blockchain: z.string().optional().describe('Blockchain ID (e.g., ethereum, base, solana:solana)'),\n period: z.string().optional().default('7d').describe('Analysis period: 1d, 7d, 30d, or 90d'),\n});\n\n// Zod schema for wallet analysis response\nexport const WalletAnalysisResponseSchema = z.object({\n data: z.object({\n winRateDistribution: z.object({\n '>500%': z.number(),\n '200%-500%': z.number(),\n '50%-200%': z.number(),\n '0%-50%': z.number(),\n '-50%-0%': z.number(),\n '<-50%': z.number(),\n }),\n marketCapDistribution: z.object({\n '>1000M': z.number(),\n '>100M': z.number(),\n '10M-100M': z.number(),\n '1M-10M': z.number(),\n '100k-1M': z.number(),\n '<100k': z.number(),\n }),\n periodTimeframes: z.array(\n z.object({\n date: z.date(),\n realized: z.number(),\n }),\n ),\n stat: z.object({\n totalValue: z.number(),\n periodTotalPnlUSD: z.number(),\n periodRealizedPnlUSD: z.number(),\n periodRealizedRate: z.number(),\n periodActiveTokensCount: z.number(),\n periodWinCount: z.number(),\n fundingInfo: z.object({\n from: z.string().nullable(),\n date: z.date().nullable(),\n chainId: z.string().nullable(),\n txHash: z.string().nullable(),\n amount: z.string().nullable(),\n fromWalletLogo: z.string().nullable(),\n fromWalletTag: z.string().nullable(),\n }),\n periodVolumeBuy: z.number(),\n periodVolumeSell: z.number(),\n periodBuys: z.number(),\n periodSells: z.number(),\n nativeBalance: z\n .object({\n rawBalance: z.string(),\n formattedBalance: z.number(),\n assetId: z.number().nullable(),\n chainId: z.string(),\n address: z.string(),\n decimals: z.number(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n price: z.number(),\n balanceUSD: z.number(),\n })\n .nullable(),\n periodBuyTokens: z.number(),\n periodSellTokens: z.number(),\n periodTradingTokens: z.number(),\n holdingTokensCount: z.number(),\n holdingDuration: z.number(),\n tradingTimeFrames: z.number(),\n winRealizedPnl: z.number(),\n winRealizedPnlRate: z.number(),\n winToken: z\n .object({\n address: z.string(),\n chainId: z.string(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n decimals: z.number(),\n })\n .nullable(),\n }),\n labels: z.array(z.string()),\n }),\n});\n\nexport type WalletAnalysisResponse = z.infer<typeof WalletAnalysisResponseSchema>;\n\n// OpenAPI-compatible schema (dates as strings for OpenAPI spec generation)\nexport const WalletAnalysisResponseSchemaOpenAPI = z.object({\n data: z.object({\n winRateDistribution: z.object({\n '>500%': z.number(),\n '200%-500%': z.number(),\n '50%-200%': z.number(),\n '0%-50%': z.number(),\n '-50%-0%': z.number(),\n '<-50%': z.number(),\n }),\n marketCapDistribution: z.object({\n '>1000M': z.number(),\n '>100M': z.number(),\n '10M-100M': z.number(),\n '1M-10M': z.number(),\n '100k-1M': z.number(),\n '<100k': z.number(),\n }),\n periodTimeframes: z.array(\n z.object({\n date: z.string(),\n realized: z.number(),\n }),\n ),\n stat: z.object({\n totalValue: z.number(),\n periodTotalPnlUSD: z.number(),\n periodRealizedPnlUSD: z.number(),\n periodRealizedRate: z.number(),\n periodActiveTokensCount: z.number(),\n periodWinCount: z.number(),\n fundingInfo: z.object({\n from: z.string().nullable(),\n date: z.string().nullable(),\n chainId: z.string().nullable(),\n txHash: z.string().nullable(),\n amount: z.string().nullable(),\n fromWalletLogo: z.string().nullable(),\n fromWalletTag: z.string().nullable(),\n }),\n periodVolumeBuy: z.number(),\n periodVolumeSell: z.number(),\n periodBuys: z.number(),\n periodSells: z.number(),\n nativeBalance: z\n .object({\n rawBalance: z.string(),\n formattedBalance: z.number(),\n assetId: z.number().nullable(),\n chainId: z.string(),\n address: z.string(),\n decimals: z.number(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n price: z.number(),\n balanceUSD: z.number(),\n })\n .nullable(),\n periodBuyTokens: z.number(),\n periodSellTokens: z.number(),\n periodTradingTokens: z.number(),\n holdingTokensCount: z.number(),\n holdingDuration: z.number(),\n tradingTimeFrames: z.number(),\n winRealizedPnl: z.number(),\n winRealizedPnlRate: z.number(),\n winToken: z\n .object({\n address: z.string(),\n chainId: z.string(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n decimals: z.number(),\n })\n .nullable(),\n }),\n labels: z.array(z.string()),\n }),\n});\n",
81
+ "import { z } from 'zod';\n\n// Zod schema for wallet funding query parameters\nexport const WalletFundingParamsSchema = z.object({\n wallet: z.string().min(1, 'Wallet address is required'),\n});\n\nexport type WalletFundingParams = z.input<typeof WalletFundingParamsSchema>;\n\n// Zod schema for wallet funding response\nexport const WalletFundingResponseSchema = z.object({\n data: z.object({\n from: z.string().nullable(),\n chainId: z.string().nullable(),\n date: z.date().nullable(),\n txHash: z.string().nullable(),\n amount: z.string().nullable(),\n fromWalletLogo: z.string().nullable(),\n fromWalletTag: z.string().nullable(),\n }),\n});\n\nexport type WalletFundingResponse = z.infer<typeof WalletFundingResponseSchema>;\n",
82
+ "import { z } from 'zod';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\n\nexport type WalletActivityV2ControllerUnsafeParams = {\n wallet: string;\n blockchains?: string;\n blacklist?: string;\n offset?: number | string;\n limit?: number | string;\n order?: string;\n pagination_details?: boolean | string;\n unlistedAssets?: boolean | string;\n filterSpam?: boolean | string;\n backfillTransfers?: boolean | string;\n backfillBalances?: boolean | string;\n cursor_hash?: string;\n cursor_direction?: 'before' | 'after';\n};\n\nexport const WalletActivityV2ParamsSchema = z.object({\n wallet: z.string(),\n blockchains: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val\n .split(',')\n .map((b) => b.trim())\n .filter((b) => b.length > 0);\n }\n return [];\n }),\n blacklist: z\n .string()\n .optional()\n .transform((val) => (val ? val.split(',').map((addr) => addr.trim().toLowerCase()) : [])),\n offset: z.coerce.number().optional().default(0),\n limit: z.coerce.number().optional().default(100),\n order: z.enum(['asc', 'desc']).optional().default('desc'),\n pagination: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(false),\n unlistedAssets: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(true),\n filterSpam: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(true),\n backfillTransfers: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(false),\n backfillBalances: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(false),\n cursor_hash: z.string().optional(),\n cursor_direction: z.enum(['before', 'after']).optional().default('before'),\n withTokens: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(false),\n});\n\nexport type WalletActivityV2Params = z.input<typeof WalletActivityV2ParamsSchema>;\n\n// Reusable asset schema used in nested activity items\nconst ActivityAssetSchema = z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n decimals: z.number(),\n totalSupply: z.number(),\n circulatingSupply: z.number(),\n price: z.number(),\n liquidity: z.number(),\n priceChange24hPercent: z.number(),\n marketCapUsd: z.number(),\n logo: z.string().nullable(),\n contract: z.string(),\n});\n\n// Activities that occurred within a single transaction\nexport const WalletActivityV2TransactionActivitySchema = z.object({\n model: z.enum(['swap', 'transfer']),\n\n // Swap-specific fields\n swapType: z.enum(['REGULAR', 'MEV', 'SANDWICHED_MEV', 'DEPOSIT', 'WITHDRAW']).optional(),\n swapRawAmountOut: z.number().optional(),\n swapRawAmountIn: z.number().optional(),\n swapAmountOut: z.number().optional(),\n swapAmountIn: z.number().optional(),\n swapPriceUsdTokenOut: z.number().optional(),\n swapPriceUsdTokenIn: z.number().optional(),\n swapAmountUsd: z.number().optional(),\n swapTransactionSenderAddress: z.string().optional(),\n swapBaseAddress: z.string().optional(),\n swapQuoteAddress: z.string().optional(),\n swapAmountQuote: z.number().optional(),\n swapAmountBase: z.number().optional(),\n swapAssetIn: ActivityAssetSchema.optional(),\n swapAssetOut: ActivityAssetSchema.optional(),\n\n // Transfer-specific fields\n transferRawAmount: z.string().optional(),\n transferAmount: z.number().optional(),\n transferAmountUsd: z.number().optional(),\n transferType: z\n .enum(['VAULT_DEPOSIT', 'VAULT_WITHDRAW', 'VAULT_UNSTAKE', 'TOKEN_IN', 'TOKEN_OUT', 'NATIVE_IN', 'NATIVE_OUT'])\n .optional(),\n transferFromAddress: z.string().optional().nullable(),\n transferToAddress: z.string().optional().nullable(),\n transferAsset: ActivityAssetSchema.optional(),\n});\n\n// Grouped by transaction hash\nexport const WalletActivityV2TransactionSchema = z.object({\n chainId: z.string(),\n txDateMs: z.number(),\n txDateIso: z.string(),\n txHash: z.string(),\n txRawFeesNative: z.string(),\n txFeesNativeUsd: z.number(),\n txBlockNumber: z.number(),\n txIndex: z.number(),\n txAction: z.string().optional().nullable(),\n\n actions: z.array(WalletActivityV2TransactionActivitySchema),\n});\n\nexport const WalletActivityV2OutputDataSchema = z.array(WalletActivityV2TransactionSchema);\n\nexport const WalletActivityV2OutputPaginationSchema = z.object({\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n pageEntries: z.number(),\n});\n\nexport const WalletActivityV2ResponseSchema = z.object({\n data: WalletActivityV2OutputDataSchema,\n pagination: WalletActivityV2OutputPaginationSchema,\n backfillStatus: z.enum(['processed', 'processing', 'pending']).optional(),\n tokens: z.array(TokenDetailsOutput).optional(),\n});\n\nexport type WalletActivityV2Response = z.input<typeof WalletActivityV2ResponseSchema>;\n",
83
+ "import { z } from 'zod';\nimport {\n tokenPositionSchema,\n WalletDeployerQuery,\n walletDeployerOutputSchema,\n} from '../../utils/schemas/WalletDeployerSchema.ts';\n\nexport type TokenPositionSchema = z.infer<typeof tokenPositionSchema>;\nexport const WalletV2DeployerParamsSchema = WalletDeployerQuery;\nexport type WalletV2DeployerParams = z.input<typeof WalletV2DeployerParamsSchema>;\n\nexport const WalletV2DeployerResponseSchema = walletDeployerOutputSchema;\nexport type WalletV2DeployerResponse = z.infer<typeof WalletV2DeployerResponseSchema>;\n",
84
+ "import { z } from 'zod';\n\nexport const ExchangesIds = z.enum(['gains', 'hyperliquid', 'gte', 'lighter']);\n\nconst tpSlSchema = z.object({ size: z.bigint(), price: z.number(), id: z.number() });\nexport const PerpsPositionSchema = z.object({\n id: z.string(),\n entryPriceQuote: z.number(),\n currentLeverage: z.number(),\n amountUSD: z.number(),\n amountRaw: z.bigint(),\n side: z.enum(['BUY', 'SELL']),\n liquidationPriceQuote: z.number(),\n currentPriceQuote: z.number(),\n realizedPnlUSD: z.number(),\n unrealizedPnlUSD: z.number(),\n realizedPnlPercent: z.number(),\n unrealizedPnlPercent: z.number(),\n tp: z.array(tpSlSchema),\n sl: z.array(tpSlSchema),\n marketId: z.string(),\n exchange: ExchangesIds,\n feesOpeningUSD: z.number(),\n feesClosingUSD: z.number(),\n feesFundingUSD: z.number(),\n openDate: z.date(),\n lastUpdate: z.date(),\n address: z.string(),\n chainId: z.string(),\n collateralAsset: z.string(),\n});\n\nexport type PerpsPosition = z.infer<typeof PerpsPositionSchema>;\nexport const PerpsPositionNonExecutedSchema = PerpsPositionSchema.extend({\n type: z.enum(['STOP', 'LIMIT']),\n});\n\nexport type PerpsPositionNonExecuted = z.infer<typeof PerpsPositionNonExecutedSchema>;\n\nexport const WalletPerpsPositionsResponseSchema = z.object({\n data: z.array(PerpsPositionSchema),\n});\n\nexport const WalletPerpsPositionsNonExecutedResponseSchema = z.object({\n data: z.array(PerpsPositionNonExecutedSchema),\n});\n",
85
+ "import { z } from 'zod';\nimport { tokenPositionSchema } from '../../utils/schemas/WalletDeployerSchema.ts';\n\nexport const WalletPositionsParamsSchema = z.object({\n wallet: z.string(),\n blockchain: z.string().optional(),\n backfillPositions: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n backfillSwapsAndPositions: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type WalletPositionsParams = z.input<typeof WalletPositionsParamsSchema>;\n\nexport const SinglePositionQuery = z.object({\n wallet: z.string(),\n asset: z.string(),\n blockchain: z.string(),\n});\n\nexport type TokenPositionType = z.infer<typeof tokenPositionSchema>;\n\nexport const WalletPositionsResponseSchema = z.object({\n data: z.array(tokenPositionSchema),\n});\n\nexport type WalletPositionsResponse = z.infer<typeof WalletPositionsResponseSchema>;\n\nexport const singlePositionOutputSchema = z.object({\n data: tokenPositionSchema,\n});\n",
86
+ "import { z } from 'zod';\nimport { SecurityFlagsSchema } from '../../utils/schemas/SecuritySchemas.ts';\n\nexport const tokenHoldingSchema = z.object({\n token: z.object({\n address: z.string(),\n chainId: z.string(),\n name: z.string().nullable(),\n symbol: z.string().nullable(),\n logo: z.string().nullable(),\n decimals: z.coerce.number().default(0),\n holdersCount: z.coerce.number().default(0),\n deployer: z.string().nullable(),\n website: z.string().nullable(),\n x: z.string().nullable(),\n telegram: z.string().nullable(),\n description: z.string().nullable(),\n security: SecurityFlagsSchema.nullable(),\n }),\n balance: z.number(),\n rawBalance: z.string(),\n});\n\nexport const WalletHoldingsResponseSchema = z.object({\n data: z.array(tokenHoldingSchema),\n});\n\nexport type TokenHolding = z.infer<typeof tokenHoldingSchema>;\nexport type WalletHoldingsResponse = z.infer<typeof WalletHoldingsResponseSchema>;\n",
87
+ "import { z } from 'zod';\n\nexport const FeedPayloadSchema = z.discriminatedUnion('kind', [\n z.object({\n kind: z.literal('asset_ids'),\n asset_ids: z.array(z.number()).optional(),\n quote_id: z.number().optional().nullable(),\n }),\n z.object({\n kind: z.literal('address'),\n tokens: z.array(\n z.object({\n blockchain: z.string(),\n address: z.string(),\n }),\n ),\n quote: z\n .object({\n address: z.string(),\n blockchain: z.string(),\n })\n .optional(),\n }),\n z.object({\n kind: z.literal('all'),\n }),\n]);\n\nexport type FeedPayloadType = z.input<typeof FeedPayloadSchema>;\n\nexport const FeedAssetIdSchema = z.object({\n asset_ids: z.array(z.number()).optional(),\n quote_id: z.number().optional().nullable(),\n});\n\nexport const FeedTokenSchema = z.object({\n tokens: z.array(\n z.object({\n blockchain: z.string(),\n address: z.string(),\n }),\n ),\n quote: z\n .object({\n address: z.string(),\n blockchain: z.string(),\n })\n .optional(),\n});\n",
88
+ "import { z } from 'zod';\n\nconst BalanceItemSchema = z.object({\n wallet: z.string(),\n token: z.string(),\n blockchain: z.string(),\n});\n\nexport const BalancePayloadSchema = z.object({\n items: z.array(BalanceItemSchema),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type BalancePayload = z.infer<typeof BalancePayloadSchema>;\nexport type BalanceItem = z.infer<typeof BalanceItemSchema>;\n\nexport interface WalletBalanceData {\n wallet: string;\n token: string; // Token address or \"native\"\n chainId: string;\n balance: number; // Decimal-adjusted balance\n rawBalance: string; // Raw balance (no decimal adjustment)\n decimals: number;\n symbol: string;\n name: string;\n logo: string | null;\n}\n\nexport interface WalletBalanceUpdate extends WalletBalanceData {\n previousBalance?: number; // Previous balance (for delta updates)\n previousRawBalance?: string; // Previous raw balance (for delta updates)\n}\n",
89
+ "import { z } from 'zod';\n\nexport const FastTradesPayloadSchema = z.object({\n assetMode: z.coerce.boolean().default(false),\n items: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n }),\n ),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type FastTradesPayloadType = z.input<typeof FastTradesPayloadSchema>;\n\nexport interface BaseFastTrade {\n date: number;\n tokenPrice: number;\n tokenPriceVs: number;\n tokenAmount: number;\n tokenAmountVs: number;\n tokenAmountUsd: number;\n tokenNativePrice: number;\n tokenMarketCapUSD: number;\n type: 'buy' | 'sell';\n operation: 'regular' | 'liquidity' | 'arbitrage' | string;\n blockchain: string;\n hash: string;\n sender: string;\n tokenAmountRaw: string;\n tokenAmountRawVs: string;\n preBalanceBaseToken: string | null;\n preBalanceQuoteToken: string | null;\n postBalanceBaseToken: string | null;\n postBalanceQuoteToken: string | null;\n subscriptionId: string;\n timestamp: number;\n labels?: string[];\n platform?: string | null;\n}\n\nexport interface PairFastTrade extends BaseFastTrade {\n pair: string;\n token?: never;\n}\n\nexport interface TokenFastTrade extends BaseFastTrade {\n token: string;\n pair?: never;\n}\n\nexport type WssFastTradesResponseType = PairFastTrade | TokenFastTrade;\n",
90
+ "import { z } from 'zod';\n\nexport const FundingPayloadSchema = z.object({\n symbol: z.string(),\n quote: z.string().optional(),\n exchange: z\n .string()\n .optional()\n .transform((val) => {\n const validExchanges = ['binance', 'bybit', 'hyperliquid', 'deribit', 'okx'];\n\n if (!val) return validExchanges;\n\n const requestedExchanges = val\n .split(',')\n .map((ex) => ex.trim().toLowerCase())\n .filter((ex) => validExchanges.includes(ex));\n\n return requestedExchanges.length > 0 ? requestedExchanges : validExchanges;\n }),\n interval: z.number().optional().default(5),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z.string().optional(),\n});\n\nexport type FundingPayloadType = z.input<typeof FundingPayloadSchema>;\n",
91
+ "import { z } from 'zod';\nimport type { HoldersStreamNewTokenPayload } from '../utils/schemas/EnrichedHoldersData.ts';\n\nexport const HoldersPayloadSchema = z.object({\n tokens: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n }),\n ),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type HoldersPayloadType = z.input<typeof HoldersPayloadSchema>;\n\nexport type WssHoldersResponse = { data: z.infer<typeof HoldersStreamNewTokenPayload>; subscriptionId: string };\n",
92
+ "import { z } from 'zod';\nimport type { BaseMessageType } from '../utils/schemas/BaseMessage.ts';\n\nexport const MarketDetailsPayloadSchema = z.object({\n pools: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n }),\n ),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type MarketDetailsPayloadType = z.input<typeof MarketDetailsPayloadSchema>;\n\nexport interface WssMarketDetailsResponseType extends Omit<BaseMessageType, 'tokenData'> {\n subscriptionId: string;\n updated: true;\n timestamp: number;\n}\n",
93
+ "import { z } from 'zod';\n\nexport const MarketPayloadSchema = z.object({\n interval: z.number().default(30),\n subscriptionId: z.string().optional(),\n assets: z\n .array(\n z.union([\n z.object({ name: z.string() }),\n z.object({ symbol: z.string() }),\n z.object({\n address: z.string(),\n blockchain: z.string(),\n }),\n ]),\n )\n .max(100),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type MarketPayloadType = z.input<typeof MarketPayloadSchema>;\n",
94
+ "import { z } from 'zod';\nimport normalizePeriod from '../utils/functions/period.ts';\n\nexport const OhlcvPayloadSchema = z.object({\n address: z.string().optional(),\n subscriptionId: z.string().optional(),\n blockchain: z.string().optional(),\n chainId: z.string().optional(),\n period: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return normalizePeriod(val);\n }\n return '5m';\n }),\n asset: z.string().optional(),\n currentPrice: z.string().optional(),\n mode: z.enum(['asset', 'pair']).optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type OhlcvPayloadType = z.input<typeof OhlcvPayloadSchema>;\n\nexport interface WssOhlcvDetailsResponseType {\n subscriptionId?: string;\n high: number | null;\n low: number | null;\n open: number | null;\n close: number | null;\n volume: number;\n time: number;\n period: string;\n tradeTime?: number;\n}\n",
95
+ "import { z } from 'zod';\n\nexport const PairsPayloadSchema = z.object({\n mode: z.enum(['asset', 'pair']).optional().default('pair'),\n subscriptionId: z.string().optional(),\n blockchain: z.string().optional(),\n factory: z.string().optional(),\n interval: z.number().default(30),\n address: z.string().optional(),\n asset: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type PairsPayloadType = z.input<typeof PairsPayloadSchema>;\n",
96
+ "import { z } from 'zod';\n\nexport const PositionPayloadSchema = z.object({\n wallet: z.string(),\n token: z.string(),\n blockchain: z.string(),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type PositionPayloadType = z.infer<typeof PositionPayloadSchema>;\n\nexport const PositionsPayloadSchema = z.object({\n wallet: z.string(),\n blockchain: z.string(),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type PositionsPayload = z.infer<typeof PositionsPayloadSchema>;\n\nexport interface WalletPositionData {\n wallet: string;\n token: string;\n chainId: string;\n balance: number;\n rawBalance: string;\n amountUSD: number;\n buys: number;\n sells: number;\n volumeBuyToken: number;\n volumeSellToken: number;\n volumeBuy: number;\n volumeSell: number;\n avgBuyPriceUSD: number;\n avgSellPriceUSD: number;\n realizedPnlUSD: number;\n unrealizedPnlUSD: number;\n totalPnlUSD: number;\n firstDate: Date | null;\n lastDate: Date | null;\n tokenDetails?: {\n address: string;\n chainId: string;\n name: string;\n symbol: string;\n decimals: number;\n logo: string | null;\n price: number;\n priceChange24h: number | null;\n liquidity: number | null;\n marketCap: number | null;\n };\n}\n\nexport interface WalletPositionsData {\n wallet: string;\n chainId: string;\n positions: WalletPositionData[];\n}\n",
97
+ "import { z } from 'zod';\n\nexport const PausePulsePayloadSchema = z.object({\n action: z.enum(['pause', 'unpause']),\n views: z.array(z.string()).min(1),\n});\n\nexport type PausePulsePayloadType = z.input<typeof PausePulsePayloadSchema>;\n",
98
+ "import { z } from 'zod';\nimport FilterWithLimit from '../../utils/schemas/Filter.ts';\n\nexport const StreamPayloadSchema = z.object({\n filters: FilterWithLimit.optional(),\n chainIds: z.array(z.string()).nonempty(),\n name: z.string().optional(),\n events: z.array(z.enum(['swap', 'transfer', 'swap-enriched', 'block', 'order'])).nonempty(),\n authorization: z.string(),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z.string().optional(),\n debugSubscriptionId: z.string().optional(),\n});\n\nexport type StreamPayloadType = z.infer<typeof StreamPayloadSchema>;\n\nexport const UnsubscribeStreamPayloadSchema = z\n .object({\n type: z.enum(['stream']).optional(),\n subscriptionId: z.string().optional(),\n personalizedId: z.string().optional(),\n viewName: z.string().optional(),\n })\n .transform((data) => {\n // Transform personalizedId to subscriptionId if provided\n if (data.personalizedId && !data.subscriptionId) {\n return {\n ...data,\n subscriptionId: data.personalizedId,\n };\n }\n return data;\n })\n .optional();\n\nexport type UnsubscribeStreamPayloadType = z.input<typeof UnsubscribeStreamPayloadSchema>;\n\nexport const UpdateStreamPayloadSchema = z.object({\n subscriptionId: z.string(),\n authorization: z.string(),\n mode: z.enum(['merge', 'replace']).default('replace'),\n filters: FilterWithLimit.optional(),\n chainIds: z.array(z.string()).optional(),\n events: z.array(z.string()).optional(),\n subscriptionTracking: z.string().optional(),\n});\n\nexport type UpdateStreamPayloadType = z.input<typeof UpdateStreamPayloadSchema>;\n",
99
+ "import { z } from 'zod';\n\nconst BaseFilter = z.object({\n eq: z.tuple([z.string(), z.union([z.string(), z.number(), z.boolean(), z.null()])]).optional(),\n neq: z.tuple([z.string(), z.union([z.string(), z.number(), z.boolean(), z.null()])]).optional(),\n lt: z.tuple([z.string(), z.coerce.number()]).optional(),\n lte: z.tuple([z.string(), z.coerce.number()]).optional(),\n gt: z.tuple([z.string(), z.coerce.number()]).optional(),\n gte: z.tuple([z.string(), z.coerce.number()]).optional(),\n in: z\n .tuple([\n z.string(),\n z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.null(),\n z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])),\n ]),\n ])\n .optional(),\n});\n\ntype BaseFilter = z.infer<typeof BaseFilter>;\nexport type Filter = BaseFilter & ({ and?: Filter[] } | { or?: Filter[] });\n\nconst Filter: z.ZodType<Filter> = BaseFilter.and(\n z.union([\n BaseFilter.extend({ and: z.undefined(), or: z.undefined() }),\n BaseFilter.extend({ and: z.array(z.lazy(() => Filter)), or: z.undefined() }),\n BaseFilter.extend({ and: z.undefined(), or: z.array(z.lazy(() => Filter)) }),\n ]),\n);\n\nexport function countOperations(filter: Filter | undefined): number {\n if (!filter) return 0;\n\n let count = 0;\n\n for (const key of ['eq', 'neq', 'lt', 'lte', 'gt', 'gte', 'in'] as const) {\n if (filter[key]) count += 1;\n }\n\n if ('and' in filter && Array.isArray(filter.and)) {\n for (const child of filter.and) {\n count += countOperations(child);\n }\n }\n\n if ('or' in filter && Array.isArray(filter.or)) {\n for (const child of filter.or) {\n count += countOperations(child);\n }\n }\n\n return count;\n}\n\nconst FilterWithLimit = Filter.superRefine((val, ctx) => {\n const total = countOperations(val);\n const max = 1000;\n if (total > max) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Your filter contains ${total} leaf operations, exceeding the maximum of ${max}. Only leaf conditions like \"eq\", \"neq\", \"lt\", \"lte\", \"gt\", \"gte\", \"in\" are counted; logical operators (\"and\", \"or\") are ignored.`,\n });\n }\n});\n\nexport default FilterWithLimit;\n",
100
+ "import { z } from 'zod';\nimport type { BaseMessageType } from '../utils/schemas/BaseMessage.ts';\n\nexport const TokenDetailsPayloadSchema = z.object({\n tokens: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n }),\n ),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type TokenDetailsPayloadType = z.input<typeof TokenDetailsPayloadSchema>;\n\nexport interface WssTokenDetailsResponseType extends Omit<BaseMessageType, 'pairData'> {\n subscriptionId: string;\n updated: true;\n timestamp: number;\n}\n"
101
+ ],
102
+ "mappings": "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",
103
+ "debugId": "724DBD6BE2F7C6A564756E2164756E21",
104
+ "names": []
105
+ }