@numen-crypto/contract 0.2.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -80,6 +80,19 @@ var DEPOSITABLE_ASSETS = ["USDT", "BTC", "ETH", "BNB", "TRX", "SOL"];
80
80
  var DepositableAssetSchema = zod.z.enum(DEPOSITABLE_ASSETS);
81
81
  var TOKEN_ASSET = "NMN";
82
82
  var FUNDING_ASSET = "USDT";
83
+ var ASSET_DECIMALS = {
84
+ NMN: 4,
85
+ USDT: 2,
86
+ BTC: 8,
87
+ ETH: 8,
88
+ BNB: 8,
89
+ TRX: 6,
90
+ SOL: 6
91
+ };
92
+ var NMN_PRICE_DECIMALS = 8;
93
+ function assetDecimals(asset) {
94
+ return ASSET_DECIMALS[asset];
95
+ }
83
96
  var AssetBalanceSchema = zod.z.object({
84
97
  asset: AssetSymbolSchema,
85
98
  name: zod.z.string(),
@@ -160,6 +173,23 @@ var PackagesOverviewSchema = zod.z.object({
160
173
  nextSellAt: zod.z.string().datetime().nullable(),
161
174
  balanceUsdt: MoneyStringSchema
162
175
  });
176
+ var SlideKindSchema = zod.z.enum(["image", "text"]);
177
+ var SlideButtonStyleSchema = zod.z.enum(["primary", "secondary", "outline", "ghost"]);
178
+ var SlideLinkTargetSchema = zod.z.enum(["_self", "_blank"]);
179
+ var SlideSchema = zod.z.object({
180
+ id: zod.z.string().uuid(),
181
+ kind: SlideKindSchema,
182
+ imageUrl: zod.z.string().url().nullable(),
183
+ tag: zod.z.string().nullable(),
184
+ title: zod.z.string().nullable(),
185
+ body: zod.z.string().nullable(),
186
+ linkUrl: zod.z.string().url().nullable(),
187
+ linkTarget: SlideLinkTargetSchema,
188
+ wholeSlideLink: zod.z.boolean(),
189
+ buttonLabel: zod.z.string().nullable(),
190
+ buttonStyle: SlideButtonStyleSchema.nullable()
191
+ });
192
+ var SlidesResponseSchema = zod.z.array(SlideSchema);
163
193
  var RankDefSchema = zod.z.object({
164
194
  name: zod.z.string(),
165
195
  order: zod.z.number().int().nonnegative(),
@@ -536,6 +566,13 @@ exports.BuyPackageCommand = void 0;
536
566
  tokenPrice: MoneyStringSchema
537
567
  });
538
568
  })(exports.BuyPackageCommand || (exports.BuyPackageCommand = {}));
569
+
570
+ // src/commands/content/get-slides.command.ts
571
+ exports.GetSlidesCommand = void 0;
572
+ ((GetSlidesCommand2) => {
573
+ GetSlidesCommand2.endpointDetails = endpoint("GET", "/content/slides", "Active dashboard carousel slides in display order");
574
+ GetSlidesCommand2.ResponseSchema = SlidesResponseSchema;
575
+ })(exports.GetSlidesCommand || (exports.GetSlidesCommand = {}));
539
576
  exports.GetRanksCommand = void 0;
540
577
  ((GetRanksCommand2) => {
541
578
  GetRanksCommand2.endpointDetails = endpoint("GET", "/ranks", "List all rank tiers");
@@ -860,6 +897,9 @@ var REST_API = {
860
897
  OVERVIEW: "/packages",
861
898
  BUY: "/packages/:id/buy"
862
899
  },
900
+ CONTENT: {
901
+ SLIDES: "/content/slides"
902
+ },
863
903
  RANKS: {
864
904
  LIST: "/ranks"
865
905
  },
@@ -911,6 +951,7 @@ var API_VERSION = "v1";
911
951
 
912
952
  exports.API_PREFIX = API_PREFIX;
913
953
  exports.API_VERSION = API_VERSION;
954
+ exports.ASSET_DECIMALS = ASSET_DECIMALS;
914
955
  exports.ASSET_SYMBOLS = ASSET_SYMBOLS;
915
956
  exports.AVATAR_CONTENT_TYPES = AVATAR_CONTENT_TYPES;
916
957
  exports.AssetBalanceSchema = AssetBalanceSchema;
@@ -938,6 +979,7 @@ exports.LinkedAccountSchema = LinkedAccountSchema;
938
979
  exports.MONEY_REGEX = MONEY_REGEX;
939
980
  exports.MoneyStringSchema = MoneyStringSchema;
940
981
  exports.MonthlyPricePointSchema = MonthlyPricePointSchema;
982
+ exports.NMN_PRICE_DECIMALS = NMN_PRICE_DECIMALS;
941
983
  exports.NotificationSchema = NotificationSchema;
942
984
  exports.NotificationTypeSchema = NotificationTypeSchema;
943
985
  exports.OrderBookLevelSchema = OrderBookLevelSchema;
@@ -960,6 +1002,11 @@ exports.PublicTradeSchema = PublicTradeSchema;
960
1002
  exports.REST_API = REST_API;
961
1003
  exports.RankDefSchema = RankDefSchema;
962
1004
  exports.SessionInfoSchema = SessionInfoSchema;
1005
+ exports.SlideButtonStyleSchema = SlideButtonStyleSchema;
1006
+ exports.SlideKindSchema = SlideKindSchema;
1007
+ exports.SlideLinkTargetSchema = SlideLinkTargetSchema;
1008
+ exports.SlideSchema = SlideSchema;
1009
+ exports.SlidesResponseSchema = SlidesResponseSchema;
963
1010
  exports.SwapSideSchema = SwapSideSchema;
964
1011
  exports.TICKET_CATEGORIES = TICKET_CATEGORIES;
965
1012
  exports.TOKEN_ASSET = TOKEN_ASSET;
@@ -985,6 +1032,7 @@ exports.UuidSchema = UuidSchema;
985
1032
  exports.WalletOverviewSchema = WalletOverviewSchema;
986
1033
  exports.WithdrawalSchema = WithdrawalSchema;
987
1034
  exports.WithdrawalStatusSchema = WithdrawalStatusSchema;
1035
+ exports.assetDecimals = assetDecimals;
988
1036
  exports.endpoint = endpoint;
989
1037
  //# sourceMappingURL=index.cjs.map
990
1038
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants/error-codes.ts","../src/models/shared.model.ts","../src/models/user.model.ts","../src/models/asset.model.ts","../src/models/transaction.model.ts","../src/models/deposit.model.ts","../src/models/partner.model.ts","../src/models/package.model.ts","../src/models/rank.model.ts","../src/models/earnings.model.ts","../src/models/settings.model.ts","../src/models/bonus.model.ts","../src/models/notification.model.ts","../src/models/leaderboard.model.ts","../src/models/linked-account.model.ts","../src/models/income.model.ts","../src/models/withdrawal.model.ts","../src/models/token.model.ts","../src/commands/command.types.ts","../src/commands/auth/register.command.ts","../src/commands/auth/login.command.ts","../src/commands/auth/logout.command.ts","../src/commands/auth/me.command.ts","../src/commands/auth/totp.command.ts","../src/commands/wallet/get-wallet.command.ts","../src/commands/wallet/get-transactions.command.ts","../src/commands/wallet/deposit-address.command.ts","../src/commands/token/get-price.command.ts","../src/commands/token/get-chart.command.ts","../src/commands/swap/swap.command.ts","../src/models/exchange.model.ts","../src/commands/exchange/exchange.command.ts","../src/commands/partners/get-partners.command.ts","../src/commands/packages/get-packages.command.ts","../src/commands/packages/buy-package.command.ts","../src/commands/ranks/get-ranks.command.ts","../src/commands/earnings/get-earnings.command.ts","../src/commands/withdrawals/withdrawals.command.ts","../src/commands/settings/settings.command.ts","../src/commands/bonus/bonus.command.ts","../src/commands/leaderboard/get-leaderboard.command.ts","../src/commands/income/get-income.command.ts","../src/commands/notifications/notifications.command.ts","../src/commands/accounts/linked-accounts.command.ts","../src/models/ticket.model.ts","../src/commands/tickets/tickets.command.ts","../src/api/routes.ts"],"names":["z","RegisterCommand","LoginCommand","LogoutCommand","MeCommand","SetupTotpCommand","ConfirmTotpCommand","GetWalletCommand","GetTransactionsCommand","DepositAddressCommand","GetTokenPriceCommand","GetTokenChartCommand","SwapCommand","PlaceOrderCommand","CancelOrderCommand","ListMyOrdersCommand","GetOrderBookCommand","ListTradesCommand","GetPartnersCommand","GetPackagesCommand","BuyPackageCommand","GetRanksCommand","GetEarningsCommand","RequestWithdrawalCommand","ListWithdrawalsCommand","CancelWithdrawalCommand","ConfirmWithdrawalCommand","RequestEmailChangeCommand","ConfirmEmailChangeCommand","DisableTotpCommand","UpdateProfileCommand","AvatarUploadUrlCommand","GetSettingsCommand","UpdateSettingsCommand","GetDailyBonusCommand","ClaimDailyBonusCommand","GetLeaderboardCommand","GetIncomeCommand","ListNotificationsCommand","MarkNotificationsReadCommand","ListLinkedAccountsCommand","LinkTelegramCommand","LinkGoogleCommand","UnlinkAccountCommand","ListTicketsCommand","GetTicketCommand","CreateTicketCommand","ReplyTicketCommand","TicketAttachmentUploadCommand"],"mappings":"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","file":"index.cjs","sourcesContent":["export const ERROR_CODE = {\n\tVALIDATION: 'VALIDATION',\n\tNOT_FOUND: 'NOT_FOUND',\n\tCONFLICT: 'CONFLICT',\n\tUNAUTHORIZED: 'UNAUTHORIZED',\n\tFORBIDDEN: 'FORBIDDEN',\n\tRATE_LIMITED: 'RATE_LIMITED',\n\tINTERNAL: 'INTERNAL',\n\n\tEMAIL_TAKEN: 'EMAIL_TAKEN',\n\tREFERRER_NOT_FOUND: 'REFERRER_NOT_FOUND',\n\tINVALID_CREDENTIALS: 'INVALID_CREDENTIALS',\n\tSESSION_INVALID: 'SESSION_INVALID',\n\tSESSION_EXPIRED: 'SESSION_EXPIRED',\n\tTOTP_REQUIRED: 'TOTP_REQUIRED',\n\tTOTP_ALREADY_ENABLED: 'TOTP_ALREADY_ENABLED',\n\n\tINSUFFICIENT_BALANCE: 'INSUFFICIENT_BALANCE',\n\tPURCHASE_LIMIT_EXCEEDED: 'PURCHASE_LIMIT_EXCEEDED',\n\tSALE_PHASE_INACTIVE: 'SALE_PHASE_INACTIVE',\n\tWITHDRAWAL_COOLOFF: 'WITHDRAWAL_COOLOFF',\n\n\tBONUS_ALREADY_CLAIMED: 'BONUS_ALREADY_CLAIMED',\n\n\tLINK_PROVIDER_DISABLED: 'LINK_PROVIDER_DISABLED',\n\tLINK_VERIFICATION_FAILED: 'LINK_VERIFICATION_FAILED',\n\tLINK_ALREADY_USED: 'LINK_ALREADY_USED',\n} as const;\n\nexport type ErrorCode = (typeof ERROR_CODE)[keyof typeof ERROR_CODE];\n","import { z } from 'zod';\n\nexport const MONEY_REGEX = /^-?\\d+(\\.\\d{1,18})?$/;\n\nexport const MoneyStringSchema = z.string().regex(MONEY_REGEX, 'invalid money string (max 18 fractional digits)');\n\nexport const PositiveMoneyStringSchema = MoneyStringSchema.refine(\n\t(v) => !v.startsWith('-') && Number.parseFloat(v) > 0,\n\t'must be positive',\n);\n\nexport const UuidSchema = z.string().uuid();\n\nexport const PeriodSchema = z.enum(['week', 'month', 'year', 'all']);\nexport type Period = z.infer<typeof PeriodSchema>;\n\nexport const ErrorResponseSchema = z.object({\n\terror: z.object({\n\t\tcode: z.string(),\n\t\tmessage: z.string(),\n\t}),\n\trequestId: z.string().optional(),\n});\nexport type ErrorResponse = z.infer<typeof ErrorResponseSchema>;\n\nexport const PaginationQuerySchema = z.object({\n\tpage: z.coerce.number().int().min(1).default(1),\n\tpageSize: z.coerce.number().int().min(1).max(100).default(20),\n});\nexport type PaginationQuery = z.infer<typeof PaginationQuerySchema>;\n\nexport function PaginatedSchema<T extends z.ZodTypeAny>(item: T) {\n\treturn z.object({\n\t\titems: z.array(item),\n\t\ttotal: z.number().int().nonnegative(),\n\t\tpage: z.number().int().min(1),\n\t\tpageSize: z.number().int().min(1),\n\t});\n}\n","import { z } from 'zod';\n\nexport const UserStatusSchema = z.enum(['pending', 'active', 'suspended', 'deleted']);\nexport type UserStatus = z.infer<typeof UserStatusSchema>;\n\nexport const UserProfileSchema = z.object({\n\tid: z.string().uuid(),\n\temail: z.string().email(),\n\tdisplayName: z.string().nullable(),\n\tavatarUrl: z.string().url().nullable(),\n\treferrerId: z.string().uuid().nullable(),\n\trankId: z.string().uuid().nullable(),\n\tstatus: UserStatusSchema,\n\ttotpEnabled: z.boolean(),\n\tcreatedAt: z.string().datetime(),\n});\nexport type UserProfile = z.infer<typeof UserProfileSchema>;\n\nexport const SessionInfoSchema = z.object({\n\tid: z.string(),\n\tip: z.string().nullable(),\n\tuserAgent: z.string().nullable(),\n\tcreatedAt: z.string().datetime(),\n\tlastSeenAt: z.string().datetime(),\n\tcurrent: z.boolean(),\n});\nexport type SessionInfo = z.infer<typeof SessionInfoSchema>;\n","import { z } from 'zod';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const ASSET_SYMBOLS = ['NMN', 'USDT', 'BTC', 'ETH', 'BNB', 'TRX', 'SOL'] as const;\n\nexport const AssetSymbolSchema = z.enum(ASSET_SYMBOLS);\nexport type AssetSymbol = z.infer<typeof AssetSymbolSchema>;\n\nexport const DEPOSITABLE_ASSETS = ['USDT', 'BTC', 'ETH', 'BNB', 'TRX', 'SOL'] as const;\n\nexport const DepositableAssetSchema = z.enum(DEPOSITABLE_ASSETS);\nexport type DepositableAsset = z.infer<typeof DepositableAssetSchema>;\n\nexport const TOKEN_ASSET = 'NMN' as const;\nexport const FUNDING_ASSET = 'USDT' as const;\n\nexport const AssetBalanceSchema = z.object({\n\tasset: AssetSymbolSchema,\n\tname: z.string(),\n\tnetworks: z.array(z.string()),\n\tdepositable: z.boolean(),\n\tavailable: MoneyStringSchema,\n\tlocked: MoneyStringSchema,\n\tusdValue: MoneyStringSchema,\n\tisZero: z.boolean(),\n});\nexport type AssetBalance = z.infer<typeof AssetBalanceSchema>;\n\nexport const WalletOverviewSchema = z.object({\n\ttotalUsd: MoneyStringSchema,\n\tassets: z.array(AssetBalanceSchema),\n});\nexport type WalletOverview = z.infer<typeof WalletOverviewSchema>;\n","import { z } from 'zod';\nimport { AssetSymbolSchema } from './asset.model';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const TransactionTypeSchema = z.enum([\n\t'DEPOSIT',\n\t'WITHDRAWAL',\n\t'BUY',\n\t'SELL',\n\t'COMMISSION',\n\t'BONUS',\n\t'ADJUSTMENT',\n]);\nexport type TransactionType = z.infer<typeof TransactionTypeSchema>;\n\nexport const TransactionStatusSchema = z.enum(['PENDING', 'PROCESSING', 'COMPLETED', 'FAILED', 'CANCELLED']);\nexport type TransactionStatus = z.infer<typeof TransactionStatusSchema>;\n\nexport const TransactionSchema = z.object({\n\tid: z.string().uuid(),\n\ttype: TransactionTypeSchema,\n\tasset: AssetSymbolSchema,\n\tamount: MoneyStringSchema,\n\tprice: MoneyStringSchema.nullable(),\n\tquoteAmount: MoneyStringSchema.nullable(),\n\tstatus: TransactionStatusSchema,\n\treference: z.string().nullable(),\n\tcreatedAt: z.string().datetime(),\n});\nexport type Transaction = z.infer<typeof TransactionSchema>;\n","import { z } from 'zod';\nimport { DepositableAssetSchema } from './asset.model';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const DepositAddressSchema = z.object({\n\tasset: DepositableAssetSchema,\n\tnetwork: z.string(),\n\taddress: z.string(),\n\tminAmount: MoneyStringSchema,\n\tconfirmations: z.number().int().nonnegative(),\n});\nexport type DepositAddress = z.infer<typeof DepositAddressSchema>;\n","import { z } from 'zod';\nimport { MoneyStringSchema, PeriodSchema } from './shared.model';\n\nexport const PartnerLevelSchema = z.object({\n\tlevel: z.number().int().min(1).max(10),\n\tpartners: z.number().int().nonnegative(),\n\tactive: z.number().int().nonnegative(),\n\tturnover: MoneyStringSchema,\n\treward: MoneyStringSchema,\n});\nexport type PartnerLevel = z.infer<typeof PartnerLevelSchema>;\n\nexport const PartnersOverviewSchema = z.object({\n\tperiod: PeriodSchema,\n\treferralCode: z.string(),\n\ttotalPartners: z.number().int().nonnegative(),\n\tdirectPartners: z.number().int().nonnegative(),\n\tnetworkTurnover: MoneyStringSchema,\n\tnetworkTurnoverChangePct: z.number(),\n\taffiliateIncome: MoneyStringSchema,\n\tlevels: z.array(PartnerLevelSchema),\n});\nexport type PartnersOverview = z.infer<typeof PartnersOverviewSchema>;\n","import { z } from 'zod';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const PackageStatusSchema = z.enum(['active', 'locked']);\nexport type PackageStatus = z.infer<typeof PackageStatusSchema>;\n\nexport const PackageSchema = z.object({\n\tid: z.string().uuid(),\n\ttier: z.number().int().positive(),\n\tpriceUsd: MoneyStringSchema,\n\tsellIntervalDays: z.number().int().positive(),\n\tstatus: PackageStatusSchema,\n\tbadge: z.string().nullable(),\n});\nexport type Package = z.infer<typeof PackageSchema>;\n\nexport const PackagesOverviewSchema = z.object({\n\tpackages: z.array(PackageSchema),\n\tdailyLimit: z.number().int().nonnegative(),\n\tdailyUsed: z.number().int().nonnegative(),\n\tweeklyLimitUsd: MoneyStringSchema.nullable(),\n\tweeklySpentUsd: MoneyStringSchema,\n\tminPriceUsd: MoneyStringSchema,\n\tmaxPriceUsd: MoneyStringSchema,\n\tsellIntervalDays: z.number().int().positive().nullable(),\n\tnextSellAt: z.string().datetime().nullable(),\n\tbalanceUsdt: MoneyStringSchema,\n});\nexport type PackagesOverview = z.infer<typeof PackagesOverviewSchema>;\n","import { z } from 'zod';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const RankDefSchema = z.object({\n\tname: z.string(),\n\torder: z.number().int().nonnegative(),\n\tminTurnover: MoneyStringSchema,\n});\nexport type RankDef = z.infer<typeof RankDefSchema>;\n\nexport const UserRankSchema = z.object({\n\tname: z.string(),\n\torder: z.number().int().nonnegative(),\n\tminTurnover: MoneyStringSchema,\n\tnextName: z.string().nullable(),\n\tnextMinTurnover: MoneyStringSchema.nullable(),\n\tprogressPct: z.string(),\n});\nexport type UserRank = z.infer<typeof UserRankSchema>;\n","import { z } from 'zod';\nimport { UserRankSchema } from './rank.model';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const EarningsOverviewSchema = z.object({\n\ttokenBalance: MoneyStringSchema,\n\ttokenPrice: MoneyStringSchema,\n\ttokenValueUsd: MoneyStringSchema,\n\taffiliateIncome: MoneyStringSchema,\n\tnetworkTurnover: MoneyStringSchema,\n\trank: UserRankSchema,\n});\nexport type EarningsOverview = z.infer<typeof EarningsOverviewSchema>;\n","import { z } from 'zod';\n\nexport const UserSettingsSchema = z.object({\n\tnotifyTrades: z.boolean(),\n\tnotifyByEmail: z.boolean(),\n\twithdrawalEmailConfirm: z.boolean(),\n});\nexport type UserSettings = z.infer<typeof UserSettingsSchema>;\n","import { z } from 'zod';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const DailyBonusDaySchema = z.object({\n\tdayIndex: z.number().int().min(1),\n\trewardNmn: MoneyStringSchema,\n\tsurprise: z.boolean(),\n});\nexport type DailyBonusDay = z.infer<typeof DailyBonusDaySchema>;\n\nexport const DailyBonusStatusSchema = z.object({\n\tcurrentStreak: z.number().int().nonnegative(),\n\tcycleLength: z.number().int().positive(),\n\tclaimableToday: z.boolean(),\n\ttodayDayIndex: z.number().int().min(1),\n\tnextRewardNmn: MoneyStringSchema,\n\tdays: z.array(DailyBonusDaySchema),\n});\nexport type DailyBonusStatus = z.infer<typeof DailyBonusStatusSchema>;\n\nexport const DailyBonusClaimResultSchema = z.object({\n\tclaimed: z.boolean(),\n\tdayIndex: z.number().int().min(1),\n\trewardNmn: MoneyStringSchema,\n\tcurrentStreak: z.number().int().positive(),\n});\nexport type DailyBonusClaimResult = z.infer<typeof DailyBonusClaimResultSchema>;\n","import { z } from 'zod';\n\nexport const NotificationTypeSchema = z.enum([\n\t'TRADE_EXECUTED',\n\t'DEPOSIT_CREDITED',\n\t'COMMISSION_ACCRUED',\n\t'WITHDRAWAL_SENT',\n\t'BONUS_CLAIMED',\n\t'SYSTEM',\n]);\nexport type NotificationType = z.infer<typeof NotificationTypeSchema>;\n\nexport const NotificationSchema = z.object({\n\tid: z.string().uuid(),\n\ttype: NotificationTypeSchema,\n\ttitle: z.string(),\n\tbody: z.string(),\n\tread: z.boolean(),\n\tmeta: z.record(z.unknown()).nullable(),\n\tcreatedAt: z.string().datetime(),\n});\nexport type Notification = z.infer<typeof NotificationSchema>;\n","import { z } from 'zod';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const LeaderboardPeriodSchema = z.enum(['week', 'month', 'year', 'all']);\nexport type LeaderboardPeriod = z.infer<typeof LeaderboardPeriodSchema>;\n\nexport const LeaderboardEntrySchema = z.object({\n\trank: z.number().int().positive(),\n\tuserId: z.string().uuid(),\n\tdisplayName: z.string(),\n\tline: z.number().int().min(1).max(10).nullable(),\n\tpartners: z.number().int().nonnegative(),\n\tturnoverUsd: MoneyStringSchema,\n\tchangePct: z.number(),\n\tisSelf: z.boolean(),\n});\nexport type LeaderboardEntry = z.infer<typeof LeaderboardEntrySchema>;\n\nexport const LeaderboardSchema = z.object({\n\tperiod: LeaderboardPeriodSchema,\n\titems: z.array(LeaderboardEntrySchema),\n\tself: LeaderboardEntrySchema.nullable(),\n});\nexport type Leaderboard = z.infer<typeof LeaderboardSchema>;\n","import { z } from 'zod';\n\nexport const LinkProviderSchema = z.enum(['telegram', 'google']);\nexport type LinkProvider = z.infer<typeof LinkProviderSchema>;\n\nexport const LinkedAccountSchema = z.object({\n\tprovider: LinkProviderSchema,\n\tproviderUserId: z.string(),\n\tdisplayName: z.string().nullable(),\n\tlinkedAt: z.string().datetime(),\n});\nexport type LinkedAccount = z.infer<typeof LinkedAccountSchema>;\n","import { z } from 'zod';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const IncomePeriodSchema = z.enum(['week', 'month', 'year', 'all']);\nexport type IncomePeriod = z.infer<typeof IncomePeriodSchema>;\n\nexport const PartnerAccrualSchema = z.object({\n\tid: z.string().uuid(),\n\tlevel: z.number().int().min(1).max(10),\n\tsourceUserId: z.string().uuid(),\n\tsourceName: z.string(),\n\tamountUsd: MoneyStringSchema,\n\tcreatedAt: z.string().datetime(),\n});\nexport type PartnerAccrual = z.infer<typeof PartnerAccrualSchema>;\n\nexport const MonthlyPricePointSchema = z.object({\n\tmonth: z.string(),\n\tfromPrice: MoneyStringSchema,\n\ttoPrice: MoneyStringSchema,\n\tholdingGrowthUsd: MoneyStringSchema,\n});\nexport type MonthlyPricePoint = z.infer<typeof MonthlyPricePointSchema>;\n\nexport const IncomeOverviewSchema = z.object({\n\tperiod: IncomePeriodSchema,\n\ttokenGrowthIncomeUsd: MoneyStringSchema,\n\ttokenGrowthPct: z.number(),\n\taffiliateIncomeNmn: MoneyStringSchema,\n\taffiliateIncomeUsd: MoneyStringSchema,\n\ttotalEarnedUsd: MoneyStringSchema,\n\tpartnerAccruals: z.array(PartnerAccrualSchema),\n\tmonthlyPrice: z.array(MonthlyPricePointSchema),\n});\nexport type IncomeOverview = z.infer<typeof IncomeOverviewSchema>;\n","import { z } from 'zod';\nimport { AssetSymbolSchema } from './asset.model';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const WithdrawalStatusSchema = z.enum([\n\t'AWAITING_CONFIRM',\n\t'AWAITING_COOLOFF',\n\t'QUEUED',\n\t'SENT',\n\t'CONFIRMED',\n\t'FAILED',\n\t'CANCELLED',\n]);\nexport type WithdrawalStatus = z.infer<typeof WithdrawalStatusSchema>;\n\nexport const WithdrawalSchema = z.object({\n\tid: z.string().uuid(),\n\tasset: AssetSymbolSchema,\n\tamount: MoneyStringSchema,\n\taddress: z.string(),\n\tstatus: WithdrawalStatusSchema,\n\tcreatedAt: z.string().datetime(),\n});\nexport type Withdrawal = z.infer<typeof WithdrawalSchema>;\n","import { z } from 'zod';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const TokenPriceSchema = z.object({\n\tprice: MoneyStringSchema,\n\tchange24hPct: z.string(),\n\ttradeIndex: z.number().int().nonnegative(),\n\tupdatedAt: z.string().datetime(),\n});\nexport type TokenPrice = z.infer<typeof TokenPriceSchema>;\n\nexport const ChartPeriodSchema = z.enum(['day', 'week', 'month', 'year']);\nexport type ChartPeriod = z.infer<typeof ChartPeriodSchema>;\n\nexport const ChartPointSchema = z.object({\n\tt: z.string().datetime(),\n\tprice: MoneyStringSchema,\n});\nexport type ChartPoint = z.infer<typeof ChartPointSchema>;\n\nexport const SwapSideSchema = z.enum(['BUY', 'SELL']);\nexport type SwapSide = z.infer<typeof SwapSideSchema>;\n\nexport const TradeResultSchema = z.object({\n\ttradeId: z.string().uuid(),\n\tside: SwapSideSchema,\n\tusdtAmount: MoneyStringSchema,\n\tnmnAmount: MoneyStringSchema,\n\tprice: MoneyStringSchema,\n\tfeeUsdt: MoneyStringSchema,\n});\nexport type TradeResult = z.infer<typeof TradeResultSchema>;\n","export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\n\nexport interface EndpointDetails {\n\treadonly method: HttpMethod;\n\treadonly path: string;\n\treadonly summary: string;\n}\n\nexport function endpoint(method: HttpMethod, path: string, summary: string): EndpointDetails {\n\treturn { method, path, summary };\n}\n","import { z } from 'zod';\nimport { endpoint } from '../command.types';\n\nexport namespace RegisterCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/register', 'Register a new user');\n\n\texport const RequestSchema = z.object({\n\t\temail: z.string().email().max(254),\n\t\tpassword: z.string().min(8).max(128),\n\t\treferralCode: z.string().min(4).max(64).optional(),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({\n\t\tuserId: z.string().uuid(),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { UserProfileSchema } from '../../models/user.model';\nimport { endpoint } from '../command.types';\n\nexport namespace LoginCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/login', 'Login with email and password');\n\n\texport const RequestSchema = z.object({\n\t\temail: z.string().email().max(254),\n\t\tpassword: z.string().min(1).max(128),\n\t\ttotp: z\n\t\t\t.string()\n\t\t\t.regex(/^\\d{6}$/)\n\t\t\t.optional(),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({\n\t\tuser: UserProfileSchema,\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { endpoint } from '../command.types';\n\nexport namespace LogoutCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/logout', 'Terminate the current session');\n\n\texport const RequestSchema = z.object({\n\t\tallDevices: z.boolean().optional().default(false),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.void();\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { UserProfileSchema } from '../../models/user.model';\nimport { endpoint } from '../command.types';\n\nexport namespace MeCommand {\n\texport const endpointDetails = endpoint('GET', '/auth/me', 'Get the current authenticated user');\n\n\texport const ResponseSchema = z.object({\n\t\tuser: UserProfileSchema,\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { endpoint } from '../command.types';\n\nexport namespace SetupTotpCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/totp/setup', 'Begin TOTP enrollment');\n\n\texport const ResponseSchema = z.object({\n\t\tsecret: z.string(),\n\t\totpauthUrl: z.string(),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ConfirmTotpCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/totp/confirm', 'Confirm and enable TOTP');\n\n\texport const RequestSchema = z.object({\n\t\tsecret: z.string().min(16).max(128),\n\t\totp: z.string().regex(/^\\d{6}$/),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.void();\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { type WalletOverview, WalletOverviewSchema } from '../../models/asset.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetWalletCommand {\n\texport const endpointDetails = endpoint('GET', '/wallet', 'Get wallet overview with all asset balances');\n\n\texport const ResponseSchema = WalletOverviewSchema;\n\texport type Response = WalletOverview;\n}\n","import type { z } from 'zod';\nimport { PaginatedSchema, PaginationQuerySchema } from '../../models/shared.model';\nimport { TransactionSchema, TransactionTypeSchema } from '../../models/transaction.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetTransactionsCommand {\n\texport const endpointDetails = endpoint('GET', '/wallet/transactions', 'List the user transaction history');\n\n\texport const QuerySchema = PaginationQuerySchema.extend({\n\t\ttype: TransactionTypeSchema.optional(),\n\t});\n\texport type Query = z.infer<typeof QuerySchema>;\n\n\texport const ResponseSchema = PaginatedSchema(TransactionSchema);\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { DepositableAssetSchema } from '../../models/asset.model';\nimport { DepositAddressSchema } from '../../models/deposit.model';\nimport { endpoint } from '../command.types';\n\nexport namespace DepositAddressCommand {\n\texport const endpointDetails = endpoint(\n\t\t'POST',\n\t\t'/wallet/deposit-address',\n\t\t'Get a deposit address for the given asset',\n\t);\n\n\texport const RequestSchema = z.object({\n\t\tasset: DepositableAssetSchema,\n\t\tnetwork: z.string().min(2).max(32),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = DepositAddressSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { type TokenPrice, TokenPriceSchema } from '../../models/token.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetTokenPriceCommand {\n\texport const endpointDetails = endpoint('GET', '/token/price', 'Current NMN price and 24h change');\n\n\texport const ResponseSchema = TokenPriceSchema;\n\texport type Response = TokenPrice;\n}\n","import { z } from 'zod';\nimport { ChartPeriodSchema, ChartPointSchema } from '../../models/token.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetTokenChartCommand {\n\texport const endpointDetails = endpoint('GET', '/token/chart', 'NMN price chart points for a period');\n\n\texport const QuerySchema = z.object({\n\t\tperiod: ChartPeriodSchema.default('day'),\n\t});\n\texport type Query = z.infer<typeof QuerySchema>;\n\n\texport const ResponseSchema = z.object({\n\t\tperiod: ChartPeriodSchema,\n\t\tpoints: z.array(ChartPointSchema),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { PositiveMoneyStringSchema } from '../../models/shared.model';\nimport { SwapSideSchema, TradeResultSchema } from '../../models/token.model';\nimport { endpoint } from '../command.types';\n\nexport namespace SwapCommand {\n\texport const endpointDetails = endpoint('POST', '/swap', 'Buy or sell NMN against USDT at the live price');\n\n\texport const RequestSchema = z.object({\n\t\tside: SwapSideSchema,\n\t\tamount: PositiveMoneyStringSchema,\n\t\tmaxPrice: PositiveMoneyStringSchema.optional(),\n\t\tidempotencyKey: z.string().min(8).max(128),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = TradeResultSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { MoneyStringSchema, UuidSchema } from './shared.model';\n\nexport const OrderSideSchema = z.enum(['BUY', 'SELL']);\nexport type OrderSide = z.infer<typeof OrderSideSchema>;\n\nexport const OrderTypeSchema = z.enum(['LIMIT', 'MARKET']);\nexport type OrderType = z.infer<typeof OrderTypeSchema>;\n\nexport const OrderStatusSchema = z.enum(['OPEN', 'PARTIAL', 'FILLED', 'CANCELLED']);\nexport type OrderStatus = z.infer<typeof OrderStatusSchema>;\n\nexport const OrderSchema = z.object({\n\tid: UuidSchema,\n\tside: OrderSideSchema,\n\ttype: OrderTypeSchema,\n\tprice: MoneyStringSchema,\n\tquantity: MoneyStringSchema,\n\tfilled: MoneyStringSchema,\n\tremaining: MoneyStringSchema,\n\tavgPrice: MoneyStringSchema,\n\tstatus: OrderStatusSchema,\n\tcreatedAt: z.string().datetime(),\n});\nexport type Order = z.infer<typeof OrderSchema>;\n\nexport const OrderBookLevelSchema = z.object({\n\tprice: MoneyStringSchema,\n\tquantity: MoneyStringSchema,\n\torders: z.number().int().nonnegative(),\n\ttotal: MoneyStringSchema,\n});\nexport type OrderBookLevel = z.infer<typeof OrderBookLevelSchema>;\n\nexport const OrderBookSchema = z.object({\n\tprice: MoneyStringSchema,\n\tasks: z.array(OrderBookLevelSchema),\n\tbids: z.array(OrderBookLevelSchema),\n\tupdatedAt: z.string().datetime(),\n});\nexport type OrderBook = z.infer<typeof OrderBookSchema>;\n\nexport const PublicTradeSchema = z.object({\n\tid: UuidSchema,\n\tside: OrderSideSchema,\n\tprice: MoneyStringSchema,\n\tnmnAmount: MoneyStringSchema,\n\tusdtAmount: MoneyStringSchema,\n\tcreatedAt: z.string().datetime(),\n});\nexport type PublicTrade = z.infer<typeof PublicTradeSchema>;\n","import { z } from 'zod';\nimport {\n\tOrderBookSchema,\n\tOrderSchema,\n\tOrderSideSchema,\n\tOrderTypeSchema,\n\tPublicTradeSchema,\n} from '../../models/exchange.model';\nimport { PositiveMoneyStringSchema } from '../../models/shared.model';\nimport { endpoint } from '../command.types';\n\nexport namespace PlaceOrderCommand {\n\texport const endpointDetails = endpoint('POST', '/exchange/orders', 'Place a limit or market order');\n\n\texport const RequestSchema = z\n\t\t.object({\n\t\t\tside: OrderSideSchema,\n\t\t\ttype: OrderTypeSchema.default('LIMIT'),\n\t\t\tprice: PositiveMoneyStringSchema.optional(),\n\t\t\tquantity: PositiveMoneyStringSchema,\n\t\t\tidempotencyKey: z.string().min(8).max(128),\n\t\t})\n\t\t.refine((v) => v.type === 'MARKET' || v.price !== undefined, {\n\t\t\tmessage: 'price is required for a limit order',\n\t\t\tpath: ['price'],\n\t\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({\n\t\torder: OrderSchema,\n\t\ttrades: z.array(PublicTradeSchema),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace CancelOrderCommand {\n\texport const endpointDetails = endpoint('DELETE', '/exchange/orders/:id', 'Cancel an open order');\n\n\texport const ResponseSchema = z.object({ cancelled: z.boolean() });\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ListMyOrdersCommand {\n\texport const endpointDetails = endpoint('GET', '/exchange/orders', 'List my open and recent orders');\n\n\texport const ResponseSchema = z.array(OrderSchema);\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace GetOrderBookCommand {\n\texport const endpointDetails = endpoint('GET', '/exchange/orderbook', 'Aggregated order book with floor price');\n\n\texport const ResponseSchema = OrderBookSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ListTradesCommand {\n\texport const endpointDetails = endpoint('GET', '/exchange/trades', 'Recent public trade tape');\n\n\texport const ResponseSchema = z.array(PublicTradeSchema);\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { type PartnersOverview, PartnersOverviewSchema } from '../../models/partner.model';\nimport { PeriodSchema } from '../../models/shared.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetPartnersCommand {\n\texport const endpointDetails = endpoint('GET', '/partners', 'Affiliate network overview with 10 levels');\n\n\texport const QuerySchema = z.object({\n\t\tperiod: PeriodSchema.default('all'),\n\t});\n\texport type Query = z.infer<typeof QuerySchema>;\n\n\texport const ResponseSchema = PartnersOverviewSchema;\n\texport type Response = PartnersOverview;\n}\n","import { type PackagesOverview, PackagesOverviewSchema } from '../../models/package.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetPackagesCommand {\n\texport const endpointDetails = endpoint(\n\t\t'GET',\n\t\t'/packages',\n\t\t'Participation packages with the user limits and sell cadence',\n\t);\n\n\texport const ResponseSchema = PackagesOverviewSchema;\n\texport type Response = PackagesOverview;\n}\n","import { z } from 'zod';\nimport { MoneyStringSchema } from '../../models/shared.model';\nimport { endpoint } from '../command.types';\n\nexport namespace BuyPackageCommand {\n\texport const endpointDetails = endpoint(\n\t\t'POST',\n\t\t'/packages/:id/buy',\n\t\t'Buy a participation package: spends its USD price in USDT for NMN',\n\t);\n\n\texport const RequestSchema = z.object({\n\t\tidempotencyKey: z.string().min(8).max(255),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({\n\t\tpurchaseId: z.string().uuid(),\n\t\tpriceUsd: MoneyStringSchema,\n\t\tnmnAmount: MoneyStringSchema,\n\t\ttokenPrice: MoneyStringSchema,\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { RankDefSchema } from '../../models/rank.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetRanksCommand {\n\texport const endpointDetails = endpoint('GET', '/ranks', 'List all rank tiers');\n\n\texport const ResponseSchema = z.object({\n\t\tranks: z.array(RankDefSchema),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { type EarningsOverview, EarningsOverviewSchema } from '../../models/earnings.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetEarningsCommand {\n\texport const endpointDetails = endpoint('GET', '/earnings', 'Earnings overview: token growth + affiliate + rank');\n\n\texport const ResponseSchema = EarningsOverviewSchema;\n\texport type Response = EarningsOverview;\n}\n","import { z } from 'zod';\nimport { DepositableAssetSchema } from '../../models/asset.model';\nimport { PositiveMoneyStringSchema } from '../../models/shared.model';\nimport { WithdrawalSchema, WithdrawalStatusSchema } from '../../models/withdrawal.model';\nimport { endpoint } from '../command.types';\n\nexport namespace RequestWithdrawalCommand {\n\texport const endpointDetails = endpoint('POST', '/withdrawals', 'Request a withdrawal to an external address');\n\n\texport const RequestSchema = z.object({\n\t\tasset: DepositableAssetSchema,\n\t\tamount: PositiveMoneyStringSchema,\n\t\taddress: z.string().min(8).max(256),\n\t\ttotp: z\n\t\t\t.string()\n\t\t\t.regex(/^\\d{6}$/)\n\t\t\t.optional(),\n\t\tidempotencyKey: z.string().min(8).max(128),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({\n\t\twithdrawalId: z.string().uuid(),\n\t\tstatus: WithdrawalStatusSchema,\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ListWithdrawalsCommand {\n\texport const endpointDetails = endpoint('GET', '/withdrawals', 'List the user withdrawals');\n\n\texport const ResponseSchema = z.object({\n\t\titems: z.array(WithdrawalSchema),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace CancelWithdrawalCommand {\n\texport const endpointDetails = endpoint('POST', '/withdrawals/:id/cancel', 'Cancel a pending withdrawal');\n\n\texport const ResponseSchema = z.object({\n\t\tstatus: WithdrawalStatusSchema,\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ConfirmWithdrawalCommand {\n\texport const endpointDetails = endpoint(\n\t\t'POST',\n\t\t'/withdrawals/:id/confirm',\n\t\t'Confirm a withdrawal with the email token',\n\t);\n\n\texport const RequestSchema = z.object({\n\t\ttoken: z.string().min(6).max(128),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({\n\t\tstatus: WithdrawalStatusSchema,\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { UserSettingsSchema } from '../../models/settings.model';\nimport { UserProfileSchema } from '../../models/user.model';\nimport { endpoint } from '../command.types';\n\nexport const AVATAR_CONTENT_TYPES = ['image/png', 'image/jpeg', 'image/webp', 'image/gif'] as const;\nexport const AvatarContentTypeSchema = z.enum(AVATAR_CONTENT_TYPES);\n\nexport namespace RequestEmailChangeCommand {\n\texport const endpointDetails = endpoint('POST', '/settings/email/request', 'Start an email change (sends a code)');\n\n\texport const RequestSchema = z.object({\n\t\tnewEmail: z.string().email().max(254),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({ sent: z.boolean() });\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ConfirmEmailChangeCommand {\n\texport const endpointDetails = endpoint('POST', '/settings/email/confirm', 'Confirm an email change with the code');\n\n\texport const RequestSchema = z.object({\n\t\tcode: z.string().regex(/^\\d{6}$/),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({ email: z.string().email() });\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace DisableTotpCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/totp/disable', 'Disable TOTP two-factor auth');\n\n\texport const RequestSchema = z.object({\n\t\ttotp: z.string().regex(/^\\d{6}$/),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.void();\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace UpdateProfileCommand {\n\texport const endpointDetails = endpoint('PATCH', '/settings/profile', 'Update display name and avatar');\n\n\texport const RequestSchema = z\n\t\t.object({\n\t\t\tdisplayName: z.string().min(2).max(48).nullable().optional(),\n\t\t\tavatarKey: z.string().max(256).nullable().optional(),\n\t\t})\n\t\t.refine((v) => v.displayName !== undefined || v.avatarKey !== undefined, 'no fields to update');\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = UserProfileSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace AvatarUploadUrlCommand {\n\texport const endpointDetails = endpoint('POST', '/settings/avatar/upload-url', 'Get a presigned avatar upload URL');\n\n\texport const RequestSchema = z.object({\n\t\tcontentType: AvatarContentTypeSchema,\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({\n\t\tkey: z.string(),\n\t\tuploadUrl: z.string().url(),\n\t\tpublicUrl: z.string().url(),\n\t\texpiresInSec: z.number().int().positive(),\n\t\tmaxBytes: z.number().int().positive(),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace GetSettingsCommand {\n\texport const endpointDetails = endpoint('GET', '/settings', 'Get user preferences');\n\n\texport const ResponseSchema = UserSettingsSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace UpdateSettingsCommand {\n\texport const endpointDetails = endpoint('PATCH', '/settings', 'Update user preferences');\n\n\texport const RequestSchema = z\n\t\t.object({\n\t\t\tnotifyTrades: z.boolean().optional(),\n\t\t\tnotifyByEmail: z.boolean().optional(),\n\t\t\twithdrawalEmailConfirm: z.boolean().optional(),\n\t\t})\n\t\t.refine((v) => Object.keys(v).length > 0, 'no fields to update');\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = UserSettingsSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import type { z } from 'zod';\nimport { DailyBonusClaimResultSchema, DailyBonusStatusSchema } from '../../models/bonus.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetDailyBonusCommand {\n\texport const endpointDetails = endpoint('GET', '/bonus/daily', 'Daily bonus status and current streak');\n\n\texport const ResponseSchema = DailyBonusStatusSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ClaimDailyBonusCommand {\n\texport const endpointDetails = endpoint('POST', '/bonus/daily/claim', \"Claim today's daily bonus\");\n\n\texport const ResponseSchema = DailyBonusClaimResultSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { LeaderboardPeriodSchema, LeaderboardSchema } from '../../models/leaderboard.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetLeaderboardCommand {\n\texport const endpointDetails = endpoint('GET', '/leaderboard', 'Top partners ranked by network turnover');\n\n\texport const QuerySchema = z.object({\n\t\tperiod: LeaderboardPeriodSchema.default('month'),\n\t\tlimit: z.coerce.number().int().min(1).max(100).default(20),\n\t});\n\texport type Query = z.infer<typeof QuerySchema>;\n\n\texport const ResponseSchema = LeaderboardSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { IncomeOverviewSchema, IncomePeriodSchema } from '../../models/income.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetIncomeCommand {\n\texport const endpointDetails = endpoint('GET', '/income', 'Income overview: token growth + affiliate earnings');\n\n\texport const QuerySchema = z.object({\n\t\tperiod: IncomePeriodSchema.default('month'),\n\t});\n\texport type Query = z.infer<typeof QuerySchema>;\n\n\texport const ResponseSchema = IncomeOverviewSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { NotificationSchema } from '../../models/notification.model';\nimport { PaginatedSchema, PaginationQuerySchema } from '../../models/shared.model';\nimport { endpoint } from '../command.types';\n\nexport namespace ListNotificationsCommand {\n\texport const endpointDetails = endpoint('GET', '/notifications', 'List in-app notifications');\n\n\texport const QuerySchema = PaginationQuerySchema.extend({\n\t\tunreadOnly: z\n\t\t\t.union([z.boolean(), z.string()])\n\t\t\t.optional()\n\t\t\t.transform((v) => v === true || v === 'true' || v === '1'),\n\t});\n\texport type Query = z.infer<typeof QuerySchema>;\n\n\texport const ResponseSchema = PaginatedSchema(NotificationSchema).extend({\n\t\tunread: z.number().int().nonnegative(),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace MarkNotificationsReadCommand {\n\texport const endpointDetails = endpoint('POST', '/notifications/read', 'Mark notifications as read');\n\n\texport const RequestSchema = z.object({\n\t\tids: z.array(z.string().uuid()).max(500).optional(),\n\t\tall: z.boolean().optional(),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({ updated: z.number().int().nonnegative() });\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { LinkProviderSchema, LinkedAccountSchema } from '../../models/linked-account.model';\nimport { endpoint } from '../command.types';\n\nexport namespace ListLinkedAccountsCommand {\n\texport const endpointDetails = endpoint('GET', '/settings/links', 'List linked external accounts');\n\n\texport const ResponseSchema = z.object({ items: z.array(LinkedAccountSchema) });\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace LinkTelegramCommand {\n\texport const endpointDetails = endpoint(\n\t\t'POST',\n\t\t'/settings/link/telegram',\n\t\t'Link a Telegram account (login widget)',\n\t);\n\n\texport const RequestSchema = z.object({\n\t\tid: z.union([z.number(), z.string()]),\n\t\tauth_date: z.union([z.number(), z.string()]),\n\t\thash: z.string(),\n\t\tfirst_name: z.string().optional(),\n\t\tlast_name: z.string().optional(),\n\t\tusername: z.string().optional(),\n\t\tphoto_url: z.string().optional(),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = LinkedAccountSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace LinkGoogleCommand {\n\texport const endpointDetails = endpoint('POST', '/settings/link/google', 'Link a Google account (ID token)');\n\n\texport const RequestSchema = z.object({ idToken: z.string().min(10) });\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = LinkedAccountSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace UnlinkAccountCommand {\n\texport const endpointDetails = endpoint('DELETE', '/settings/link/:provider', 'Unlink an external account');\n\n\texport const ParamsSchema = z.object({ provider: LinkProviderSchema });\n\texport type Params = z.infer<typeof ParamsSchema>;\n\n\texport const ResponseSchema = z.void();\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\n\nexport const TICKET_CATEGORIES = ['account', 'deposit', 'withdrawal', 'trading', 'partners', 'other'] as const;\nexport const TicketCategorySchema = z.enum(TICKET_CATEGORIES);\nexport type TicketCategory = z.infer<typeof TicketCategorySchema>;\n\nexport const TicketStatusSchema = z.enum(['open', 'pending', 'answered', 'resolved']);\nexport type TicketStatus = z.infer<typeof TicketStatusSchema>;\n\nexport const TicketAuthorTypeSchema = z.enum(['user', 'support']);\nexport type TicketAuthorType = z.infer<typeof TicketAuthorTypeSchema>;\n\nexport const TicketBodySchema = z.string().min(1).max(20000);\n\nexport const TicketAttachmentSchema = z.object({\n\tid: z.string().uuid(),\n\tfileName: z.string(),\n\tcontentType: z.string(),\n\tsizeBytes: z.number().int().nonnegative(),\n\turl: z.string().url(),\n});\nexport type TicketAttachment = z.infer<typeof TicketAttachmentSchema>;\n\nexport const TicketMessageSchema = z.object({\n\tid: z.string().uuid(),\n\tauthorType: TicketAuthorTypeSchema,\n\tbody: z.string(),\n\tattachments: z.array(TicketAttachmentSchema),\n\tcreatedAt: z.string(),\n});\nexport type TicketMessage = z.infer<typeof TicketMessageSchema>;\n\nexport const TicketSummarySchema = z.object({\n\tid: z.string().uuid(),\n\tcategory: TicketCategorySchema,\n\ttitle: z.string(),\n\tstatus: TicketStatusSchema,\n\tlastMessageAt: z.string(),\n\tcreatedAt: z.string(),\n});\nexport type TicketSummary = z.infer<typeof TicketSummarySchema>;\n\nexport const TicketDetailSchema = TicketSummarySchema.extend({\n\tmessages: z.array(TicketMessageSchema),\n});\nexport type TicketDetail = z.infer<typeof TicketDetailSchema>;\n\nexport const TicketAttachmentInputSchema = z.object({\n\tfileKey: z.string().min(1).max(512),\n\tfileName: z.string().min(1).max(256),\n\tcontentType: z.string().min(1).max(128),\n\tsizeBytes: z\n\t\t.number()\n\t\t.int()\n\t\t.positive()\n\t\t.max(50 * 1024 * 1024),\n});\nexport type TicketAttachmentInput = z.infer<typeof TicketAttachmentInputSchema>;\n","import { z } from 'zod';\nimport {\n\tTicketAttachmentInputSchema,\n\tTicketBodySchema,\n\tTicketCategorySchema,\n\tTicketDetailSchema,\n\tTicketSummarySchema,\n} from '../../models/ticket.model';\nimport { endpoint } from '../command.types';\n\nconst AttachmentsSchema = z.array(TicketAttachmentInputSchema).max(10).optional();\n\nexport namespace ListTicketsCommand {\n\texport const endpointDetails = endpoint('GET', '/tickets', 'List the current user tickets');\n\texport const ResponseSchema = z.object({ items: z.array(TicketSummarySchema) });\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace GetTicketCommand {\n\texport const endpointDetails = endpoint('GET', '/tickets/:id', 'Get a ticket with its message thread');\n\texport const ResponseSchema = TicketDetailSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace CreateTicketCommand {\n\texport const endpointDetails = endpoint('POST', '/tickets', 'Open a new support ticket');\n\texport const RequestSchema = z.object({\n\t\tcategory: TicketCategorySchema,\n\t\ttitle: z.string().min(3).max(160),\n\t\tbody: TicketBodySchema,\n\t\tattachments: AttachmentsSchema,\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\texport const ResponseSchema = TicketDetailSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ReplyTicketCommand {\n\texport const endpointDetails = endpoint('POST', '/tickets/:id/messages', 'Reply to a ticket');\n\texport const RequestSchema = z.object({\n\t\tbody: TicketBodySchema,\n\t\tattachments: AttachmentsSchema,\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\texport const ResponseSchema = TicketDetailSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace TicketAttachmentUploadCommand {\n\texport const endpointDetails = endpoint(\n\t\t'POST',\n\t\t'/tickets/attachments/upload-url',\n\t\t'Get a presigned URL to upload a ticket attachment to S3',\n\t);\n\texport const RequestSchema = z.object({\n\t\tfileName: z.string().min(1).max(256),\n\t\tcontentType: z.string().min(1).max(128),\n\t\tsizeBytes: z\n\t\t\t.number()\n\t\t\t.int()\n\t\t\t.positive()\n\t\t\t.max(50 * 1024 * 1024),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\texport const ResponseSchema = z.object({\n\t\tuploadUrl: z.string().url(),\n\t\tfileKey: z.string(),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","export const REST_API = {\n\tAUTH: {\n\t\tREGISTER: '/auth/register',\n\t\tLOGIN: '/auth/login',\n\t\tLOGOUT: '/auth/logout',\n\t\tME: '/auth/me',\n\t\tTOTP_SETUP: '/auth/totp/setup',\n\t\tTOTP_CONFIRM: '/auth/totp/confirm',\n\t},\n\tWALLET: {\n\t\tOVERVIEW: '/wallet',\n\t\tTRANSACTIONS: '/wallet/transactions',\n\t\tDEPOSIT_ADDRESS: '/wallet/deposit-address',\n\t},\n\tTOKEN: {\n\t\tPRICE: '/token/price',\n\t\tCHART: '/token/chart',\n\t},\n\tSWAP: {\n\t\tEXECUTE: '/swap',\n\t},\n\tEXCHANGE: {\n\t\tORDERBOOK: '/exchange/orderbook',\n\t\tTRADES: '/exchange/trades',\n\t\tORDERS: '/exchange/orders',\n\t\tORDER: '/exchange/orders/:id',\n\t},\n\tPARTNERS: {\n\t\tOVERVIEW: '/partners',\n\t},\n\tPACKAGES: {\n\t\tOVERVIEW: '/packages',\n\t\tBUY: '/packages/:id/buy',\n\t},\n\tRANKS: {\n\t\tLIST: '/ranks',\n\t},\n\tEARNINGS: {\n\t\tOVERVIEW: '/earnings',\n\t},\n\tWITHDRAWALS: {\n\t\tREQUEST: '/withdrawals',\n\t\tLIST: '/withdrawals',\n\t\tCANCEL: '/withdrawals/:id/cancel',\n\t\tCONFIRM: '/withdrawals/:id/confirm',\n\t},\n\tSETTINGS: {\n\t\tEMAIL_REQUEST: '/settings/email/request',\n\t\tEMAIL_CONFIRM: '/settings/email/confirm',\n\t\tTOTP_DISABLE: '/auth/totp/disable',\n\t\tPROFILE: '/settings/profile',\n\t\tAVATAR_UPLOAD_URL: '/settings/avatar/upload-url',\n\t\tPREFERENCES: '/settings',\n\t\tLINKS: '/settings/links',\n\t\tLINK_TELEGRAM: '/settings/link/telegram',\n\t\tLINK_GOOGLE: '/settings/link/google',\n\t\tUNLINK: '/settings/link/:provider',\n\t},\n\tBONUS: {\n\t\tDAILY: '/bonus/daily',\n\t\tDAILY_CLAIM: '/bonus/daily/claim',\n\t},\n\tLEADERBOARD: {\n\t\tOVERVIEW: '/leaderboard',\n\t},\n\tINCOME: {\n\t\tOVERVIEW: '/income',\n\t},\n\tNOTIFICATIONS: {\n\t\tLIST: '/notifications',\n\t\tREAD: '/notifications/read',\n\t},\n\tTICKETS: {\n\t\tLIST: '/tickets',\n\t\tCREATE: '/tickets',\n\t\tGET: '/tickets/:id',\n\t\tREPLY: '/tickets/:id/messages',\n\t\tATTACHMENT_UPLOAD_URL: '/tickets/attachments/upload-url',\n\t},\n} as const;\n\nexport const API_PREFIX = '/api';\nexport const API_VERSION = 'v1';\n"]}
1
+ {"version":3,"sources":["../src/constants/error-codes.ts","../src/models/shared.model.ts","../src/models/user.model.ts","../src/models/asset.model.ts","../src/models/transaction.model.ts","../src/models/deposit.model.ts","../src/models/partner.model.ts","../src/models/package.model.ts","../src/models/slide.model.ts","../src/models/rank.model.ts","../src/models/earnings.model.ts","../src/models/settings.model.ts","../src/models/bonus.model.ts","../src/models/notification.model.ts","../src/models/leaderboard.model.ts","../src/models/linked-account.model.ts","../src/models/income.model.ts","../src/models/withdrawal.model.ts","../src/models/token.model.ts","../src/commands/command.types.ts","../src/commands/auth/register.command.ts","../src/commands/auth/login.command.ts","../src/commands/auth/logout.command.ts","../src/commands/auth/me.command.ts","../src/commands/auth/totp.command.ts","../src/commands/wallet/get-wallet.command.ts","../src/commands/wallet/get-transactions.command.ts","../src/commands/wallet/deposit-address.command.ts","../src/commands/token/get-price.command.ts","../src/commands/token/get-chart.command.ts","../src/commands/swap/swap.command.ts","../src/models/exchange.model.ts","../src/commands/exchange/exchange.command.ts","../src/commands/partners/get-partners.command.ts","../src/commands/packages/get-packages.command.ts","../src/commands/packages/buy-package.command.ts","../src/commands/content/get-slides.command.ts","../src/commands/ranks/get-ranks.command.ts","../src/commands/earnings/get-earnings.command.ts","../src/commands/withdrawals/withdrawals.command.ts","../src/commands/settings/settings.command.ts","../src/commands/bonus/bonus.command.ts","../src/commands/leaderboard/get-leaderboard.command.ts","../src/commands/income/get-income.command.ts","../src/commands/notifications/notifications.command.ts","../src/commands/accounts/linked-accounts.command.ts","../src/models/ticket.model.ts","../src/commands/tickets/tickets.command.ts","../src/api/routes.ts"],"names":["z","RegisterCommand","LoginCommand","LogoutCommand","MeCommand","SetupTotpCommand","ConfirmTotpCommand","GetWalletCommand","GetTransactionsCommand","DepositAddressCommand","GetTokenPriceCommand","GetTokenChartCommand","SwapCommand","PlaceOrderCommand","CancelOrderCommand","ListMyOrdersCommand","GetOrderBookCommand","ListTradesCommand","GetPartnersCommand","GetPackagesCommand","BuyPackageCommand","GetSlidesCommand","GetRanksCommand","GetEarningsCommand","RequestWithdrawalCommand","ListWithdrawalsCommand","CancelWithdrawalCommand","ConfirmWithdrawalCommand","RequestEmailChangeCommand","ConfirmEmailChangeCommand","DisableTotpCommand","UpdateProfileCommand","AvatarUploadUrlCommand","GetSettingsCommand","UpdateSettingsCommand","GetDailyBonusCommand","ClaimDailyBonusCommand","GetLeaderboardCommand","GetIncomeCommand","ListNotificationsCommand","MarkNotificationsReadCommand","ListLinkedAccountsCommand","LinkTelegramCommand","LinkGoogleCommand","UnlinkAccountCommand","ListTicketsCommand","GetTicketCommand","CreateTicketCommand","ReplyTicketCommand","TicketAttachmentUploadCommand"],"mappings":"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","file":"index.cjs","sourcesContent":["export const ERROR_CODE = {\n\tVALIDATION: 'VALIDATION',\n\tNOT_FOUND: 'NOT_FOUND',\n\tCONFLICT: 'CONFLICT',\n\tUNAUTHORIZED: 'UNAUTHORIZED',\n\tFORBIDDEN: 'FORBIDDEN',\n\tRATE_LIMITED: 'RATE_LIMITED',\n\tINTERNAL: 'INTERNAL',\n\n\tEMAIL_TAKEN: 'EMAIL_TAKEN',\n\tREFERRER_NOT_FOUND: 'REFERRER_NOT_FOUND',\n\tINVALID_CREDENTIALS: 'INVALID_CREDENTIALS',\n\tSESSION_INVALID: 'SESSION_INVALID',\n\tSESSION_EXPIRED: 'SESSION_EXPIRED',\n\tTOTP_REQUIRED: 'TOTP_REQUIRED',\n\tTOTP_ALREADY_ENABLED: 'TOTP_ALREADY_ENABLED',\n\n\tINSUFFICIENT_BALANCE: 'INSUFFICIENT_BALANCE',\n\tPURCHASE_LIMIT_EXCEEDED: 'PURCHASE_LIMIT_EXCEEDED',\n\tSALE_PHASE_INACTIVE: 'SALE_PHASE_INACTIVE',\n\tWITHDRAWAL_COOLOFF: 'WITHDRAWAL_COOLOFF',\n\n\tBONUS_ALREADY_CLAIMED: 'BONUS_ALREADY_CLAIMED',\n\n\tLINK_PROVIDER_DISABLED: 'LINK_PROVIDER_DISABLED',\n\tLINK_VERIFICATION_FAILED: 'LINK_VERIFICATION_FAILED',\n\tLINK_ALREADY_USED: 'LINK_ALREADY_USED',\n} as const;\n\nexport type ErrorCode = (typeof ERROR_CODE)[keyof typeof ERROR_CODE];\n","import { z } from 'zod';\n\nexport const MONEY_REGEX = /^-?\\d+(\\.\\d{1,18})?$/;\n\nexport const MoneyStringSchema = z.string().regex(MONEY_REGEX, 'invalid money string (max 18 fractional digits)');\n\nexport const PositiveMoneyStringSchema = MoneyStringSchema.refine(\n\t(v) => !v.startsWith('-') && Number.parseFloat(v) > 0,\n\t'must be positive',\n);\n\nexport const UuidSchema = z.string().uuid();\n\nexport const PeriodSchema = z.enum(['week', 'month', 'year', 'all']);\nexport type Period = z.infer<typeof PeriodSchema>;\n\nexport const ErrorResponseSchema = z.object({\n\terror: z.object({\n\t\tcode: z.string(),\n\t\tmessage: z.string(),\n\t}),\n\trequestId: z.string().optional(),\n});\nexport type ErrorResponse = z.infer<typeof ErrorResponseSchema>;\n\nexport const PaginationQuerySchema = z.object({\n\tpage: z.coerce.number().int().min(1).default(1),\n\tpageSize: z.coerce.number().int().min(1).max(100).default(20),\n});\nexport type PaginationQuery = z.infer<typeof PaginationQuerySchema>;\n\nexport function PaginatedSchema<T extends z.ZodTypeAny>(item: T) {\n\treturn z.object({\n\t\titems: z.array(item),\n\t\ttotal: z.number().int().nonnegative(),\n\t\tpage: z.number().int().min(1),\n\t\tpageSize: z.number().int().min(1),\n\t});\n}\n","import { z } from 'zod';\n\nexport const UserStatusSchema = z.enum(['pending', 'active', 'suspended', 'deleted']);\nexport type UserStatus = z.infer<typeof UserStatusSchema>;\n\nexport const UserProfileSchema = z.object({\n\tid: z.string().uuid(),\n\temail: z.string().email(),\n\tdisplayName: z.string().nullable(),\n\tavatarUrl: z.string().url().nullable(),\n\treferrerId: z.string().uuid().nullable(),\n\trankId: z.string().uuid().nullable(),\n\tstatus: UserStatusSchema,\n\ttotpEnabled: z.boolean(),\n\tcreatedAt: z.string().datetime(),\n});\nexport type UserProfile = z.infer<typeof UserProfileSchema>;\n\nexport const SessionInfoSchema = z.object({\n\tid: z.string(),\n\tip: z.string().nullable(),\n\tuserAgent: z.string().nullable(),\n\tcreatedAt: z.string().datetime(),\n\tlastSeenAt: z.string().datetime(),\n\tcurrent: z.boolean(),\n});\nexport type SessionInfo = z.infer<typeof SessionInfoSchema>;\n","import { z } from 'zod';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const ASSET_SYMBOLS = ['NMN', 'USDT', 'BTC', 'ETH', 'BNB', 'TRX', 'SOL'] as const;\n\nexport const AssetSymbolSchema = z.enum(ASSET_SYMBOLS);\nexport type AssetSymbol = z.infer<typeof AssetSymbolSchema>;\n\nexport const DEPOSITABLE_ASSETS = ['USDT', 'BTC', 'ETH', 'BNB', 'TRX', 'SOL'] as const;\n\nexport const DepositableAssetSchema = z.enum(DEPOSITABLE_ASSETS);\nexport type DepositableAsset = z.infer<typeof DepositableAssetSchema>;\n\nexport const TOKEN_ASSET = 'NMN' as const;\nexport const FUNDING_ASSET = 'USDT' as const;\n\nexport const ASSET_DECIMALS = {\n\tNMN: 4,\n\tUSDT: 2,\n\tBTC: 8,\n\tETH: 8,\n\tBNB: 8,\n\tTRX: 6,\n\tSOL: 6,\n} as const satisfies Record<AssetSymbol, number>;\n\nexport const NMN_PRICE_DECIMALS = 8;\n\nexport function assetDecimals(asset: AssetSymbol): number {\n\treturn ASSET_DECIMALS[asset];\n}\n\nexport const AssetBalanceSchema = z.object({\n\tasset: AssetSymbolSchema,\n\tname: z.string(),\n\tnetworks: z.array(z.string()),\n\tdepositable: z.boolean(),\n\tavailable: MoneyStringSchema,\n\tlocked: MoneyStringSchema,\n\tusdValue: MoneyStringSchema,\n\tisZero: z.boolean(),\n});\nexport type AssetBalance = z.infer<typeof AssetBalanceSchema>;\n\nexport const WalletOverviewSchema = z.object({\n\ttotalUsd: MoneyStringSchema,\n\tassets: z.array(AssetBalanceSchema),\n});\nexport type WalletOverview = z.infer<typeof WalletOverviewSchema>;\n","import { z } from 'zod';\nimport { AssetSymbolSchema } from './asset.model';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const TransactionTypeSchema = z.enum([\n\t'DEPOSIT',\n\t'WITHDRAWAL',\n\t'BUY',\n\t'SELL',\n\t'COMMISSION',\n\t'BONUS',\n\t'ADJUSTMENT',\n]);\nexport type TransactionType = z.infer<typeof TransactionTypeSchema>;\n\nexport const TransactionStatusSchema = z.enum(['PENDING', 'PROCESSING', 'COMPLETED', 'FAILED', 'CANCELLED']);\nexport type TransactionStatus = z.infer<typeof TransactionStatusSchema>;\n\nexport const TransactionSchema = z.object({\n\tid: z.string().uuid(),\n\ttype: TransactionTypeSchema,\n\tasset: AssetSymbolSchema,\n\tamount: MoneyStringSchema,\n\tprice: MoneyStringSchema.nullable(),\n\tquoteAmount: MoneyStringSchema.nullable(),\n\tstatus: TransactionStatusSchema,\n\treference: z.string().nullable(),\n\tcreatedAt: z.string().datetime(),\n});\nexport type Transaction = z.infer<typeof TransactionSchema>;\n","import { z } from 'zod';\nimport { DepositableAssetSchema } from './asset.model';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const DepositAddressSchema = z.object({\n\tasset: DepositableAssetSchema,\n\tnetwork: z.string(),\n\taddress: z.string(),\n\tminAmount: MoneyStringSchema,\n\tconfirmations: z.number().int().nonnegative(),\n});\nexport type DepositAddress = z.infer<typeof DepositAddressSchema>;\n","import { z } from 'zod';\nimport { MoneyStringSchema, PeriodSchema } from './shared.model';\n\nexport const PartnerLevelSchema = z.object({\n\tlevel: z.number().int().min(1).max(10),\n\tpartners: z.number().int().nonnegative(),\n\tactive: z.number().int().nonnegative(),\n\tturnover: MoneyStringSchema,\n\treward: MoneyStringSchema,\n});\nexport type PartnerLevel = z.infer<typeof PartnerLevelSchema>;\n\nexport const PartnersOverviewSchema = z.object({\n\tperiod: PeriodSchema,\n\treferralCode: z.string(),\n\ttotalPartners: z.number().int().nonnegative(),\n\tdirectPartners: z.number().int().nonnegative(),\n\tnetworkTurnover: MoneyStringSchema,\n\tnetworkTurnoverChangePct: z.number(),\n\taffiliateIncome: MoneyStringSchema,\n\tlevels: z.array(PartnerLevelSchema),\n});\nexport type PartnersOverview = z.infer<typeof PartnersOverviewSchema>;\n","import { z } from 'zod';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const PackageStatusSchema = z.enum(['active', 'locked']);\nexport type PackageStatus = z.infer<typeof PackageStatusSchema>;\n\nexport const PackageSchema = z.object({\n\tid: z.string().uuid(),\n\ttier: z.number().int().positive(),\n\tpriceUsd: MoneyStringSchema,\n\tsellIntervalDays: z.number().int().positive(),\n\tstatus: PackageStatusSchema,\n\tbadge: z.string().nullable(),\n});\nexport type Package = z.infer<typeof PackageSchema>;\n\nexport const PackagesOverviewSchema = z.object({\n\tpackages: z.array(PackageSchema),\n\tdailyLimit: z.number().int().nonnegative(),\n\tdailyUsed: z.number().int().nonnegative(),\n\tweeklyLimitUsd: MoneyStringSchema.nullable(),\n\tweeklySpentUsd: MoneyStringSchema,\n\tminPriceUsd: MoneyStringSchema,\n\tmaxPriceUsd: MoneyStringSchema,\n\tsellIntervalDays: z.number().int().positive().nullable(),\n\tnextSellAt: z.string().datetime().nullable(),\n\tbalanceUsdt: MoneyStringSchema,\n});\nexport type PackagesOverview = z.infer<typeof PackagesOverviewSchema>;\n","import { z } from 'zod';\n\nexport const SlideKindSchema = z.enum(['image', 'text']);\nexport type SlideKind = z.infer<typeof SlideKindSchema>;\n\nexport const SlideButtonStyleSchema = z.enum(['primary', 'secondary', 'outline', 'ghost']);\nexport type SlideButtonStyle = z.infer<typeof SlideButtonStyleSchema>;\n\nexport const SlideLinkTargetSchema = z.enum(['_self', '_blank']);\nexport type SlideLinkTarget = z.infer<typeof SlideLinkTargetSchema>;\n\nexport const SlideSchema = z.object({\n\tid: z.string().uuid(),\n\tkind: SlideKindSchema,\n\timageUrl: z.string().url().nullable(),\n\ttag: z.string().nullable(),\n\ttitle: z.string().nullable(),\n\tbody: z.string().nullable(),\n\tlinkUrl: z.string().url().nullable(),\n\tlinkTarget: SlideLinkTargetSchema,\n\twholeSlideLink: z.boolean(),\n\tbuttonLabel: z.string().nullable(),\n\tbuttonStyle: SlideButtonStyleSchema.nullable(),\n});\nexport type Slide = z.infer<typeof SlideSchema>;\n\nexport const SlidesResponseSchema = z.array(SlideSchema);\nexport type SlidesResponse = z.infer<typeof SlidesResponseSchema>;\n","import { z } from 'zod';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const RankDefSchema = z.object({\n\tname: z.string(),\n\torder: z.number().int().nonnegative(),\n\tminTurnover: MoneyStringSchema,\n});\nexport type RankDef = z.infer<typeof RankDefSchema>;\n\nexport const UserRankSchema = z.object({\n\tname: z.string(),\n\torder: z.number().int().nonnegative(),\n\tminTurnover: MoneyStringSchema,\n\tnextName: z.string().nullable(),\n\tnextMinTurnover: MoneyStringSchema.nullable(),\n\tprogressPct: z.string(),\n});\nexport type UserRank = z.infer<typeof UserRankSchema>;\n","import { z } from 'zod';\nimport { UserRankSchema } from './rank.model';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const EarningsOverviewSchema = z.object({\n\ttokenBalance: MoneyStringSchema,\n\ttokenPrice: MoneyStringSchema,\n\ttokenValueUsd: MoneyStringSchema,\n\taffiliateIncome: MoneyStringSchema,\n\tnetworkTurnover: MoneyStringSchema,\n\trank: UserRankSchema,\n});\nexport type EarningsOverview = z.infer<typeof EarningsOverviewSchema>;\n","import { z } from 'zod';\n\nexport const UserSettingsSchema = z.object({\n\tnotifyTrades: z.boolean(),\n\tnotifyByEmail: z.boolean(),\n\twithdrawalEmailConfirm: z.boolean(),\n});\nexport type UserSettings = z.infer<typeof UserSettingsSchema>;\n","import { z } from 'zod';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const DailyBonusDaySchema = z.object({\n\tdayIndex: z.number().int().min(1),\n\trewardNmn: MoneyStringSchema,\n\tsurprise: z.boolean(),\n});\nexport type DailyBonusDay = z.infer<typeof DailyBonusDaySchema>;\n\nexport const DailyBonusStatusSchema = z.object({\n\tcurrentStreak: z.number().int().nonnegative(),\n\tcycleLength: z.number().int().positive(),\n\tclaimableToday: z.boolean(),\n\ttodayDayIndex: z.number().int().min(1),\n\tnextRewardNmn: MoneyStringSchema,\n\tdays: z.array(DailyBonusDaySchema),\n});\nexport type DailyBonusStatus = z.infer<typeof DailyBonusStatusSchema>;\n\nexport const DailyBonusClaimResultSchema = z.object({\n\tclaimed: z.boolean(),\n\tdayIndex: z.number().int().min(1),\n\trewardNmn: MoneyStringSchema,\n\tcurrentStreak: z.number().int().positive(),\n});\nexport type DailyBonusClaimResult = z.infer<typeof DailyBonusClaimResultSchema>;\n","import { z } from 'zod';\n\nexport const NotificationTypeSchema = z.enum([\n\t'TRADE_EXECUTED',\n\t'DEPOSIT_CREDITED',\n\t'COMMISSION_ACCRUED',\n\t'WITHDRAWAL_SENT',\n\t'BONUS_CLAIMED',\n\t'SYSTEM',\n]);\nexport type NotificationType = z.infer<typeof NotificationTypeSchema>;\n\nexport const NotificationSchema = z.object({\n\tid: z.string().uuid(),\n\ttype: NotificationTypeSchema,\n\ttitle: z.string(),\n\tbody: z.string(),\n\tread: z.boolean(),\n\tmeta: z.record(z.unknown()).nullable(),\n\tcreatedAt: z.string().datetime(),\n});\nexport type Notification = z.infer<typeof NotificationSchema>;\n","import { z } from 'zod';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const LeaderboardPeriodSchema = z.enum(['week', 'month', 'year', 'all']);\nexport type LeaderboardPeriod = z.infer<typeof LeaderboardPeriodSchema>;\n\nexport const LeaderboardEntrySchema = z.object({\n\trank: z.number().int().positive(),\n\tuserId: z.string().uuid(),\n\tdisplayName: z.string(),\n\tline: z.number().int().min(1).max(10).nullable(),\n\tpartners: z.number().int().nonnegative(),\n\tturnoverUsd: MoneyStringSchema,\n\tchangePct: z.number(),\n\tisSelf: z.boolean(),\n});\nexport type LeaderboardEntry = z.infer<typeof LeaderboardEntrySchema>;\n\nexport const LeaderboardSchema = z.object({\n\tperiod: LeaderboardPeriodSchema,\n\titems: z.array(LeaderboardEntrySchema),\n\tself: LeaderboardEntrySchema.nullable(),\n});\nexport type Leaderboard = z.infer<typeof LeaderboardSchema>;\n","import { z } from 'zod';\n\nexport const LinkProviderSchema = z.enum(['telegram', 'google']);\nexport type LinkProvider = z.infer<typeof LinkProviderSchema>;\n\nexport const LinkedAccountSchema = z.object({\n\tprovider: LinkProviderSchema,\n\tproviderUserId: z.string(),\n\tdisplayName: z.string().nullable(),\n\tlinkedAt: z.string().datetime(),\n});\nexport type LinkedAccount = z.infer<typeof LinkedAccountSchema>;\n","import { z } from 'zod';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const IncomePeriodSchema = z.enum(['week', 'month', 'year', 'all']);\nexport type IncomePeriod = z.infer<typeof IncomePeriodSchema>;\n\nexport const PartnerAccrualSchema = z.object({\n\tid: z.string().uuid(),\n\tlevel: z.number().int().min(1).max(10),\n\tsourceUserId: z.string().uuid(),\n\tsourceName: z.string(),\n\tamountUsd: MoneyStringSchema,\n\tcreatedAt: z.string().datetime(),\n});\nexport type PartnerAccrual = z.infer<typeof PartnerAccrualSchema>;\n\nexport const MonthlyPricePointSchema = z.object({\n\tmonth: z.string(),\n\tfromPrice: MoneyStringSchema,\n\ttoPrice: MoneyStringSchema,\n\tholdingGrowthUsd: MoneyStringSchema,\n});\nexport type MonthlyPricePoint = z.infer<typeof MonthlyPricePointSchema>;\n\nexport const IncomeOverviewSchema = z.object({\n\tperiod: IncomePeriodSchema,\n\ttokenGrowthIncomeUsd: MoneyStringSchema,\n\ttokenGrowthPct: z.number(),\n\taffiliateIncomeNmn: MoneyStringSchema,\n\taffiliateIncomeUsd: MoneyStringSchema,\n\ttotalEarnedUsd: MoneyStringSchema,\n\tpartnerAccruals: z.array(PartnerAccrualSchema),\n\tmonthlyPrice: z.array(MonthlyPricePointSchema),\n});\nexport type IncomeOverview = z.infer<typeof IncomeOverviewSchema>;\n","import { z } from 'zod';\nimport { AssetSymbolSchema } from './asset.model';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const WithdrawalStatusSchema = z.enum([\n\t'AWAITING_CONFIRM',\n\t'AWAITING_COOLOFF',\n\t'QUEUED',\n\t'SENT',\n\t'CONFIRMED',\n\t'FAILED',\n\t'CANCELLED',\n]);\nexport type WithdrawalStatus = z.infer<typeof WithdrawalStatusSchema>;\n\nexport const WithdrawalSchema = z.object({\n\tid: z.string().uuid(),\n\tasset: AssetSymbolSchema,\n\tamount: MoneyStringSchema,\n\taddress: z.string(),\n\tstatus: WithdrawalStatusSchema,\n\tcreatedAt: z.string().datetime(),\n});\nexport type Withdrawal = z.infer<typeof WithdrawalSchema>;\n","import { z } from 'zod';\nimport { MoneyStringSchema } from './shared.model';\n\nexport const TokenPriceSchema = z.object({\n\tprice: MoneyStringSchema,\n\tchange24hPct: z.string(),\n\ttradeIndex: z.number().int().nonnegative(),\n\tupdatedAt: z.string().datetime(),\n});\nexport type TokenPrice = z.infer<typeof TokenPriceSchema>;\n\nexport const ChartPeriodSchema = z.enum(['day', 'week', 'month', 'year']);\nexport type ChartPeriod = z.infer<typeof ChartPeriodSchema>;\n\nexport const ChartPointSchema = z.object({\n\tt: z.string().datetime(),\n\tprice: MoneyStringSchema,\n});\nexport type ChartPoint = z.infer<typeof ChartPointSchema>;\n\nexport const SwapSideSchema = z.enum(['BUY', 'SELL']);\nexport type SwapSide = z.infer<typeof SwapSideSchema>;\n\nexport const TradeResultSchema = z.object({\n\ttradeId: z.string().uuid(),\n\tside: SwapSideSchema,\n\tusdtAmount: MoneyStringSchema,\n\tnmnAmount: MoneyStringSchema,\n\tprice: MoneyStringSchema,\n\tfeeUsdt: MoneyStringSchema,\n});\nexport type TradeResult = z.infer<typeof TradeResultSchema>;\n","export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\n\nexport interface EndpointDetails {\n\treadonly method: HttpMethod;\n\treadonly path: string;\n\treadonly summary: string;\n}\n\nexport function endpoint(method: HttpMethod, path: string, summary: string): EndpointDetails {\n\treturn { method, path, summary };\n}\n","import { z } from 'zod';\nimport { endpoint } from '../command.types';\n\nexport namespace RegisterCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/register', 'Register a new user');\n\n\texport const RequestSchema = z.object({\n\t\temail: z.string().email().max(254),\n\t\tpassword: z.string().min(8).max(128),\n\t\treferralCode: z.string().min(4).max(64).optional(),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({\n\t\tuserId: z.string().uuid(),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { UserProfileSchema } from '../../models/user.model';\nimport { endpoint } from '../command.types';\n\nexport namespace LoginCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/login', 'Login with email and password');\n\n\texport const RequestSchema = z.object({\n\t\temail: z.string().email().max(254),\n\t\tpassword: z.string().min(1).max(128),\n\t\ttotp: z\n\t\t\t.string()\n\t\t\t.regex(/^\\d{6}$/)\n\t\t\t.optional(),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({\n\t\tuser: UserProfileSchema,\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { endpoint } from '../command.types';\n\nexport namespace LogoutCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/logout', 'Terminate the current session');\n\n\texport const RequestSchema = z.object({\n\t\tallDevices: z.boolean().optional().default(false),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.void();\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { UserProfileSchema } from '../../models/user.model';\nimport { endpoint } from '../command.types';\n\nexport namespace MeCommand {\n\texport const endpointDetails = endpoint('GET', '/auth/me', 'Get the current authenticated user');\n\n\texport const ResponseSchema = z.object({\n\t\tuser: UserProfileSchema,\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { endpoint } from '../command.types';\n\nexport namespace SetupTotpCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/totp/setup', 'Begin TOTP enrollment');\n\n\texport const ResponseSchema = z.object({\n\t\tsecret: z.string(),\n\t\totpauthUrl: z.string(),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ConfirmTotpCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/totp/confirm', 'Confirm and enable TOTP');\n\n\texport const RequestSchema = z.object({\n\t\tsecret: z.string().min(16).max(128),\n\t\totp: z.string().regex(/^\\d{6}$/),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.void();\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { type WalletOverview, WalletOverviewSchema } from '../../models/asset.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetWalletCommand {\n\texport const endpointDetails = endpoint('GET', '/wallet', 'Get wallet overview with all asset balances');\n\n\texport const ResponseSchema = WalletOverviewSchema;\n\texport type Response = WalletOverview;\n}\n","import type { z } from 'zod';\nimport { PaginatedSchema, PaginationQuerySchema } from '../../models/shared.model';\nimport { TransactionSchema, TransactionTypeSchema } from '../../models/transaction.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetTransactionsCommand {\n\texport const endpointDetails = endpoint('GET', '/wallet/transactions', 'List the user transaction history');\n\n\texport const QuerySchema = PaginationQuerySchema.extend({\n\t\ttype: TransactionTypeSchema.optional(),\n\t});\n\texport type Query = z.infer<typeof QuerySchema>;\n\n\texport const ResponseSchema = PaginatedSchema(TransactionSchema);\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { DepositableAssetSchema } from '../../models/asset.model';\nimport { DepositAddressSchema } from '../../models/deposit.model';\nimport { endpoint } from '../command.types';\n\nexport namespace DepositAddressCommand {\n\texport const endpointDetails = endpoint(\n\t\t'POST',\n\t\t'/wallet/deposit-address',\n\t\t'Get a deposit address for the given asset',\n\t);\n\n\texport const RequestSchema = z.object({\n\t\tasset: DepositableAssetSchema,\n\t\tnetwork: z.string().min(2).max(32),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = DepositAddressSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { type TokenPrice, TokenPriceSchema } from '../../models/token.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetTokenPriceCommand {\n\texport const endpointDetails = endpoint('GET', '/token/price', 'Current NMN price and 24h change');\n\n\texport const ResponseSchema = TokenPriceSchema;\n\texport type Response = TokenPrice;\n}\n","import { z } from 'zod';\nimport { ChartPeriodSchema, ChartPointSchema } from '../../models/token.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetTokenChartCommand {\n\texport const endpointDetails = endpoint('GET', '/token/chart', 'NMN price chart points for a period');\n\n\texport const QuerySchema = z.object({\n\t\tperiod: ChartPeriodSchema.default('day'),\n\t});\n\texport type Query = z.infer<typeof QuerySchema>;\n\n\texport const ResponseSchema = z.object({\n\t\tperiod: ChartPeriodSchema,\n\t\tpoints: z.array(ChartPointSchema),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { PositiveMoneyStringSchema } from '../../models/shared.model';\nimport { SwapSideSchema, TradeResultSchema } from '../../models/token.model';\nimport { endpoint } from '../command.types';\n\nexport namespace SwapCommand {\n\texport const endpointDetails = endpoint('POST', '/swap', 'Buy or sell NMN against USDT at the live price');\n\n\texport const RequestSchema = z.object({\n\t\tside: SwapSideSchema,\n\t\tamount: PositiveMoneyStringSchema,\n\t\tmaxPrice: PositiveMoneyStringSchema.optional(),\n\t\tidempotencyKey: z.string().min(8).max(128),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = TradeResultSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { MoneyStringSchema, UuidSchema } from './shared.model';\n\nexport const OrderSideSchema = z.enum(['BUY', 'SELL']);\nexport type OrderSide = z.infer<typeof OrderSideSchema>;\n\nexport const OrderTypeSchema = z.enum(['LIMIT', 'MARKET']);\nexport type OrderType = z.infer<typeof OrderTypeSchema>;\n\nexport const OrderStatusSchema = z.enum(['OPEN', 'PARTIAL', 'FILLED', 'CANCELLED']);\nexport type OrderStatus = z.infer<typeof OrderStatusSchema>;\n\nexport const OrderSchema = z.object({\n\tid: UuidSchema,\n\tside: OrderSideSchema,\n\ttype: OrderTypeSchema,\n\tprice: MoneyStringSchema,\n\tquantity: MoneyStringSchema,\n\tfilled: MoneyStringSchema,\n\tremaining: MoneyStringSchema,\n\tavgPrice: MoneyStringSchema,\n\tstatus: OrderStatusSchema,\n\tcreatedAt: z.string().datetime(),\n});\nexport type Order = z.infer<typeof OrderSchema>;\n\nexport const OrderBookLevelSchema = z.object({\n\tprice: MoneyStringSchema,\n\tquantity: MoneyStringSchema,\n\torders: z.number().int().nonnegative(),\n\ttotal: MoneyStringSchema,\n});\nexport type OrderBookLevel = z.infer<typeof OrderBookLevelSchema>;\n\nexport const OrderBookSchema = z.object({\n\tprice: MoneyStringSchema,\n\tasks: z.array(OrderBookLevelSchema),\n\tbids: z.array(OrderBookLevelSchema),\n\tupdatedAt: z.string().datetime(),\n});\nexport type OrderBook = z.infer<typeof OrderBookSchema>;\n\nexport const PublicTradeSchema = z.object({\n\tid: UuidSchema,\n\tside: OrderSideSchema,\n\tprice: MoneyStringSchema,\n\tnmnAmount: MoneyStringSchema,\n\tusdtAmount: MoneyStringSchema,\n\tcreatedAt: z.string().datetime(),\n});\nexport type PublicTrade = z.infer<typeof PublicTradeSchema>;\n","import { z } from 'zod';\nimport {\n\tOrderBookSchema,\n\tOrderSchema,\n\tOrderSideSchema,\n\tOrderTypeSchema,\n\tPublicTradeSchema,\n} from '../../models/exchange.model';\nimport { PositiveMoneyStringSchema } from '../../models/shared.model';\nimport { endpoint } from '../command.types';\n\nexport namespace PlaceOrderCommand {\n\texport const endpointDetails = endpoint('POST', '/exchange/orders', 'Place a limit or market order');\n\n\texport const RequestSchema = z\n\t\t.object({\n\t\t\tside: OrderSideSchema,\n\t\t\ttype: OrderTypeSchema.default('LIMIT'),\n\t\t\tprice: PositiveMoneyStringSchema.optional(),\n\t\t\tquantity: PositiveMoneyStringSchema,\n\t\t\tidempotencyKey: z.string().min(8).max(128),\n\t\t})\n\t\t.refine((v) => v.type === 'MARKET' || v.price !== undefined, {\n\t\t\tmessage: 'price is required for a limit order',\n\t\t\tpath: ['price'],\n\t\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({\n\t\torder: OrderSchema,\n\t\ttrades: z.array(PublicTradeSchema),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace CancelOrderCommand {\n\texport const endpointDetails = endpoint('DELETE', '/exchange/orders/:id', 'Cancel an open order');\n\n\texport const ResponseSchema = z.object({ cancelled: z.boolean() });\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ListMyOrdersCommand {\n\texport const endpointDetails = endpoint('GET', '/exchange/orders', 'List my open and recent orders');\n\n\texport const ResponseSchema = z.array(OrderSchema);\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace GetOrderBookCommand {\n\texport const endpointDetails = endpoint('GET', '/exchange/orderbook', 'Aggregated order book with floor price');\n\n\texport const ResponseSchema = OrderBookSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ListTradesCommand {\n\texport const endpointDetails = endpoint('GET', '/exchange/trades', 'Recent public trade tape');\n\n\texport const ResponseSchema = z.array(PublicTradeSchema);\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { type PartnersOverview, PartnersOverviewSchema } from '../../models/partner.model';\nimport { PeriodSchema } from '../../models/shared.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetPartnersCommand {\n\texport const endpointDetails = endpoint('GET', '/partners', 'Affiliate network overview with 10 levels');\n\n\texport const QuerySchema = z.object({\n\t\tperiod: PeriodSchema.default('all'),\n\t});\n\texport type Query = z.infer<typeof QuerySchema>;\n\n\texport const ResponseSchema = PartnersOverviewSchema;\n\texport type Response = PartnersOverview;\n}\n","import { type PackagesOverview, PackagesOverviewSchema } from '../../models/package.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetPackagesCommand {\n\texport const endpointDetails = endpoint(\n\t\t'GET',\n\t\t'/packages',\n\t\t'Participation packages with the user limits and sell cadence',\n\t);\n\n\texport const ResponseSchema = PackagesOverviewSchema;\n\texport type Response = PackagesOverview;\n}\n","import { z } from 'zod';\nimport { MoneyStringSchema } from '../../models/shared.model';\nimport { endpoint } from '../command.types';\n\nexport namespace BuyPackageCommand {\n\texport const endpointDetails = endpoint(\n\t\t'POST',\n\t\t'/packages/:id/buy',\n\t\t'Buy a participation package: spends its USD price in USDT for NMN',\n\t);\n\n\texport const RequestSchema = z.object({\n\t\tidempotencyKey: z.string().min(8).max(255),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({\n\t\tpurchaseId: z.string().uuid(),\n\t\tpriceUsd: MoneyStringSchema,\n\t\tnmnAmount: MoneyStringSchema,\n\t\ttokenPrice: MoneyStringSchema,\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { type SlidesResponse, SlidesResponseSchema } from '../../models/slide.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetSlidesCommand {\n\texport const endpointDetails = endpoint('GET', '/content/slides', 'Active dashboard carousel slides in display order');\n\n\texport const ResponseSchema = SlidesResponseSchema;\n\texport type Response = SlidesResponse;\n}\n","import { z } from 'zod';\nimport { RankDefSchema } from '../../models/rank.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetRanksCommand {\n\texport const endpointDetails = endpoint('GET', '/ranks', 'List all rank tiers');\n\n\texport const ResponseSchema = z.object({\n\t\tranks: z.array(RankDefSchema),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { type EarningsOverview, EarningsOverviewSchema } from '../../models/earnings.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetEarningsCommand {\n\texport const endpointDetails = endpoint('GET', '/earnings', 'Earnings overview: token growth + affiliate + rank');\n\n\texport const ResponseSchema = EarningsOverviewSchema;\n\texport type Response = EarningsOverview;\n}\n","import { z } from 'zod';\nimport { DepositableAssetSchema } from '../../models/asset.model';\nimport { PositiveMoneyStringSchema } from '../../models/shared.model';\nimport { WithdrawalSchema, WithdrawalStatusSchema } from '../../models/withdrawal.model';\nimport { endpoint } from '../command.types';\n\nexport namespace RequestWithdrawalCommand {\n\texport const endpointDetails = endpoint('POST', '/withdrawals', 'Request a withdrawal to an external address');\n\n\texport const RequestSchema = z.object({\n\t\tasset: DepositableAssetSchema,\n\t\tamount: PositiveMoneyStringSchema,\n\t\taddress: z.string().min(8).max(256),\n\t\ttotp: z\n\t\t\t.string()\n\t\t\t.regex(/^\\d{6}$/)\n\t\t\t.optional(),\n\t\tidempotencyKey: z.string().min(8).max(128),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({\n\t\twithdrawalId: z.string().uuid(),\n\t\tstatus: WithdrawalStatusSchema,\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ListWithdrawalsCommand {\n\texport const endpointDetails = endpoint('GET', '/withdrawals', 'List the user withdrawals');\n\n\texport const ResponseSchema = z.object({\n\t\titems: z.array(WithdrawalSchema),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace CancelWithdrawalCommand {\n\texport const endpointDetails = endpoint('POST', '/withdrawals/:id/cancel', 'Cancel a pending withdrawal');\n\n\texport const ResponseSchema = z.object({\n\t\tstatus: WithdrawalStatusSchema,\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ConfirmWithdrawalCommand {\n\texport const endpointDetails = endpoint(\n\t\t'POST',\n\t\t'/withdrawals/:id/confirm',\n\t\t'Confirm a withdrawal with the email token',\n\t);\n\n\texport const RequestSchema = z.object({\n\t\ttoken: z.string().min(6).max(128),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({\n\t\tstatus: WithdrawalStatusSchema,\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { UserSettingsSchema } from '../../models/settings.model';\nimport { UserProfileSchema } from '../../models/user.model';\nimport { endpoint } from '../command.types';\n\nexport const AVATAR_CONTENT_TYPES = ['image/png', 'image/jpeg', 'image/webp', 'image/gif'] as const;\nexport const AvatarContentTypeSchema = z.enum(AVATAR_CONTENT_TYPES);\n\nexport namespace RequestEmailChangeCommand {\n\texport const endpointDetails = endpoint('POST', '/settings/email/request', 'Start an email change (sends a code)');\n\n\texport const RequestSchema = z.object({\n\t\tnewEmail: z.string().email().max(254),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({ sent: z.boolean() });\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ConfirmEmailChangeCommand {\n\texport const endpointDetails = endpoint('POST', '/settings/email/confirm', 'Confirm an email change with the code');\n\n\texport const RequestSchema = z.object({\n\t\tcode: z.string().regex(/^\\d{6}$/),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({ email: z.string().email() });\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace DisableTotpCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/totp/disable', 'Disable TOTP two-factor auth');\n\n\texport const RequestSchema = z.object({\n\t\ttotp: z.string().regex(/^\\d{6}$/),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.void();\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace UpdateProfileCommand {\n\texport const endpointDetails = endpoint('PATCH', '/settings/profile', 'Update display name and avatar');\n\n\texport const RequestSchema = z\n\t\t.object({\n\t\t\tdisplayName: z.string().min(2).max(48).nullable().optional(),\n\t\t\tavatarKey: z.string().max(256).nullable().optional(),\n\t\t})\n\t\t.refine((v) => v.displayName !== undefined || v.avatarKey !== undefined, 'no fields to update');\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = UserProfileSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace AvatarUploadUrlCommand {\n\texport const endpointDetails = endpoint('POST', '/settings/avatar/upload-url', 'Get a presigned avatar upload URL');\n\n\texport const RequestSchema = z.object({\n\t\tcontentType: AvatarContentTypeSchema,\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({\n\t\tkey: z.string(),\n\t\tuploadUrl: z.string().url(),\n\t\tpublicUrl: z.string().url(),\n\t\texpiresInSec: z.number().int().positive(),\n\t\tmaxBytes: z.number().int().positive(),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace GetSettingsCommand {\n\texport const endpointDetails = endpoint('GET', '/settings', 'Get user preferences');\n\n\texport const ResponseSchema = UserSettingsSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace UpdateSettingsCommand {\n\texport const endpointDetails = endpoint('PATCH', '/settings', 'Update user preferences');\n\n\texport const RequestSchema = z\n\t\t.object({\n\t\t\tnotifyTrades: z.boolean().optional(),\n\t\t\tnotifyByEmail: z.boolean().optional(),\n\t\t\twithdrawalEmailConfirm: z.boolean().optional(),\n\t\t})\n\t\t.refine((v) => Object.keys(v).length > 0, 'no fields to update');\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = UserSettingsSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import type { z } from 'zod';\nimport { DailyBonusClaimResultSchema, DailyBonusStatusSchema } from '../../models/bonus.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetDailyBonusCommand {\n\texport const endpointDetails = endpoint('GET', '/bonus/daily', 'Daily bonus status and current streak');\n\n\texport const ResponseSchema = DailyBonusStatusSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ClaimDailyBonusCommand {\n\texport const endpointDetails = endpoint('POST', '/bonus/daily/claim', \"Claim today's daily bonus\");\n\n\texport const ResponseSchema = DailyBonusClaimResultSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { LeaderboardPeriodSchema, LeaderboardSchema } from '../../models/leaderboard.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetLeaderboardCommand {\n\texport const endpointDetails = endpoint('GET', '/leaderboard', 'Top partners ranked by network turnover');\n\n\texport const QuerySchema = z.object({\n\t\tperiod: LeaderboardPeriodSchema.default('month'),\n\t\tlimit: z.coerce.number().int().min(1).max(100).default(20),\n\t});\n\texport type Query = z.infer<typeof QuerySchema>;\n\n\texport const ResponseSchema = LeaderboardSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { IncomeOverviewSchema, IncomePeriodSchema } from '../../models/income.model';\nimport { endpoint } from '../command.types';\n\nexport namespace GetIncomeCommand {\n\texport const endpointDetails = endpoint('GET', '/income', 'Income overview: token growth + affiliate earnings');\n\n\texport const QuerySchema = z.object({\n\t\tperiod: IncomePeriodSchema.default('month'),\n\t});\n\texport type Query = z.infer<typeof QuerySchema>;\n\n\texport const ResponseSchema = IncomeOverviewSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { NotificationSchema } from '../../models/notification.model';\nimport { PaginatedSchema, PaginationQuerySchema } from '../../models/shared.model';\nimport { endpoint } from '../command.types';\n\nexport namespace ListNotificationsCommand {\n\texport const endpointDetails = endpoint('GET', '/notifications', 'List in-app notifications');\n\n\texport const QuerySchema = PaginationQuerySchema.extend({\n\t\tunreadOnly: z\n\t\t\t.union([z.boolean(), z.string()])\n\t\t\t.optional()\n\t\t\t.transform((v) => v === true || v === 'true' || v === '1'),\n\t});\n\texport type Query = z.infer<typeof QuerySchema>;\n\n\texport const ResponseSchema = PaginatedSchema(NotificationSchema).extend({\n\t\tunread: z.number().int().nonnegative(),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace MarkNotificationsReadCommand {\n\texport const endpointDetails = endpoint('POST', '/notifications/read', 'Mark notifications as read');\n\n\texport const RequestSchema = z.object({\n\t\tids: z.array(z.string().uuid()).max(500).optional(),\n\t\tall: z.boolean().optional(),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({ updated: z.number().int().nonnegative() });\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\nimport { LinkProviderSchema, LinkedAccountSchema } from '../../models/linked-account.model';\nimport { endpoint } from '../command.types';\n\nexport namespace ListLinkedAccountsCommand {\n\texport const endpointDetails = endpoint('GET', '/settings/links', 'List linked external accounts');\n\n\texport const ResponseSchema = z.object({ items: z.array(LinkedAccountSchema) });\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace LinkTelegramCommand {\n\texport const endpointDetails = endpoint(\n\t\t'POST',\n\t\t'/settings/link/telegram',\n\t\t'Link a Telegram account (login widget)',\n\t);\n\n\texport const RequestSchema = z.object({\n\t\tid: z.union([z.number(), z.string()]),\n\t\tauth_date: z.union([z.number(), z.string()]),\n\t\thash: z.string(),\n\t\tfirst_name: z.string().optional(),\n\t\tlast_name: z.string().optional(),\n\t\tusername: z.string().optional(),\n\t\tphoto_url: z.string().optional(),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = LinkedAccountSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace LinkGoogleCommand {\n\texport const endpointDetails = endpoint('POST', '/settings/link/google', 'Link a Google account (ID token)');\n\n\texport const RequestSchema = z.object({ idToken: z.string().min(10) });\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = LinkedAccountSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace UnlinkAccountCommand {\n\texport const endpointDetails = endpoint('DELETE', '/settings/link/:provider', 'Unlink an external account');\n\n\texport const ParamsSchema = z.object({ provider: LinkProviderSchema });\n\texport type Params = z.infer<typeof ParamsSchema>;\n\n\texport const ResponseSchema = z.void();\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","import { z } from 'zod';\n\nexport const TICKET_CATEGORIES = ['account', 'deposit', 'withdrawal', 'trading', 'partners', 'other'] as const;\nexport const TicketCategorySchema = z.enum(TICKET_CATEGORIES);\nexport type TicketCategory = z.infer<typeof TicketCategorySchema>;\n\nexport const TicketStatusSchema = z.enum(['open', 'pending', 'answered', 'resolved']);\nexport type TicketStatus = z.infer<typeof TicketStatusSchema>;\n\nexport const TicketAuthorTypeSchema = z.enum(['user', 'support']);\nexport type TicketAuthorType = z.infer<typeof TicketAuthorTypeSchema>;\n\nexport const TicketBodySchema = z.string().min(1).max(20000);\n\nexport const TicketAttachmentSchema = z.object({\n\tid: z.string().uuid(),\n\tfileName: z.string(),\n\tcontentType: z.string(),\n\tsizeBytes: z.number().int().nonnegative(),\n\turl: z.string().url(),\n});\nexport type TicketAttachment = z.infer<typeof TicketAttachmentSchema>;\n\nexport const TicketMessageSchema = z.object({\n\tid: z.string().uuid(),\n\tauthorType: TicketAuthorTypeSchema,\n\tbody: z.string(),\n\tattachments: z.array(TicketAttachmentSchema),\n\tcreatedAt: z.string(),\n});\nexport type TicketMessage = z.infer<typeof TicketMessageSchema>;\n\nexport const TicketSummarySchema = z.object({\n\tid: z.string().uuid(),\n\tcategory: TicketCategorySchema,\n\ttitle: z.string(),\n\tstatus: TicketStatusSchema,\n\tlastMessageAt: z.string(),\n\tcreatedAt: z.string(),\n});\nexport type TicketSummary = z.infer<typeof TicketSummarySchema>;\n\nexport const TicketDetailSchema = TicketSummarySchema.extend({\n\tmessages: z.array(TicketMessageSchema),\n});\nexport type TicketDetail = z.infer<typeof TicketDetailSchema>;\n\nexport const TicketAttachmentInputSchema = z.object({\n\tfileKey: z.string().min(1).max(512),\n\tfileName: z.string().min(1).max(256),\n\tcontentType: z.string().min(1).max(128),\n\tsizeBytes: z\n\t\t.number()\n\t\t.int()\n\t\t.positive()\n\t\t.max(50 * 1024 * 1024),\n});\nexport type TicketAttachmentInput = z.infer<typeof TicketAttachmentInputSchema>;\n","import { z } from 'zod';\nimport {\n\tTicketAttachmentInputSchema,\n\tTicketBodySchema,\n\tTicketCategorySchema,\n\tTicketDetailSchema,\n\tTicketSummarySchema,\n} from '../../models/ticket.model';\nimport { endpoint } from '../command.types';\n\nconst AttachmentsSchema = z.array(TicketAttachmentInputSchema).max(10).optional();\n\nexport namespace ListTicketsCommand {\n\texport const endpointDetails = endpoint('GET', '/tickets', 'List the current user tickets');\n\texport const ResponseSchema = z.object({ items: z.array(TicketSummarySchema) });\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace GetTicketCommand {\n\texport const endpointDetails = endpoint('GET', '/tickets/:id', 'Get a ticket with its message thread');\n\texport const ResponseSchema = TicketDetailSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace CreateTicketCommand {\n\texport const endpointDetails = endpoint('POST', '/tickets', 'Open a new support ticket');\n\texport const RequestSchema = z.object({\n\t\tcategory: TicketCategorySchema,\n\t\ttitle: z.string().min(3).max(160),\n\t\tbody: TicketBodySchema,\n\t\tattachments: AttachmentsSchema,\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\texport const ResponseSchema = TicketDetailSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ReplyTicketCommand {\n\texport const endpointDetails = endpoint('POST', '/tickets/:id/messages', 'Reply to a ticket');\n\texport const RequestSchema = z.object({\n\t\tbody: TicketBodySchema,\n\t\tattachments: AttachmentsSchema,\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\texport const ResponseSchema = TicketDetailSchema;\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace TicketAttachmentUploadCommand {\n\texport const endpointDetails = endpoint(\n\t\t'POST',\n\t\t'/tickets/attachments/upload-url',\n\t\t'Get a presigned URL to upload a ticket attachment to S3',\n\t);\n\texport const RequestSchema = z.object({\n\t\tfileName: z.string().min(1).max(256),\n\t\tcontentType: z.string().min(1).max(128),\n\t\tsizeBytes: z\n\t\t\t.number()\n\t\t\t.int()\n\t\t\t.positive()\n\t\t\t.max(50 * 1024 * 1024),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\texport const ResponseSchema = z.object({\n\t\tuploadUrl: z.string().url(),\n\t\tfileKey: z.string(),\n\t});\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n","export const REST_API = {\n\tAUTH: {\n\t\tREGISTER: '/auth/register',\n\t\tLOGIN: '/auth/login',\n\t\tLOGOUT: '/auth/logout',\n\t\tME: '/auth/me',\n\t\tTOTP_SETUP: '/auth/totp/setup',\n\t\tTOTP_CONFIRM: '/auth/totp/confirm',\n\t},\n\tWALLET: {\n\t\tOVERVIEW: '/wallet',\n\t\tTRANSACTIONS: '/wallet/transactions',\n\t\tDEPOSIT_ADDRESS: '/wallet/deposit-address',\n\t},\n\tTOKEN: {\n\t\tPRICE: '/token/price',\n\t\tCHART: '/token/chart',\n\t},\n\tSWAP: {\n\t\tEXECUTE: '/swap',\n\t},\n\tEXCHANGE: {\n\t\tORDERBOOK: '/exchange/orderbook',\n\t\tTRADES: '/exchange/trades',\n\t\tORDERS: '/exchange/orders',\n\t\tORDER: '/exchange/orders/:id',\n\t},\n\tPARTNERS: {\n\t\tOVERVIEW: '/partners',\n\t},\n\tPACKAGES: {\n\t\tOVERVIEW: '/packages',\n\t\tBUY: '/packages/:id/buy',\n\t},\n\tCONTENT: {\n\t\tSLIDES: '/content/slides',\n\t},\n\tRANKS: {\n\t\tLIST: '/ranks',\n\t},\n\tEARNINGS: {\n\t\tOVERVIEW: '/earnings',\n\t},\n\tWITHDRAWALS: {\n\t\tREQUEST: '/withdrawals',\n\t\tLIST: '/withdrawals',\n\t\tCANCEL: '/withdrawals/:id/cancel',\n\t\tCONFIRM: '/withdrawals/:id/confirm',\n\t},\n\tSETTINGS: {\n\t\tEMAIL_REQUEST: '/settings/email/request',\n\t\tEMAIL_CONFIRM: '/settings/email/confirm',\n\t\tTOTP_DISABLE: '/auth/totp/disable',\n\t\tPROFILE: '/settings/profile',\n\t\tAVATAR_UPLOAD_URL: '/settings/avatar/upload-url',\n\t\tPREFERENCES: '/settings',\n\t\tLINKS: '/settings/links',\n\t\tLINK_TELEGRAM: '/settings/link/telegram',\n\t\tLINK_GOOGLE: '/settings/link/google',\n\t\tUNLINK: '/settings/link/:provider',\n\t},\n\tBONUS: {\n\t\tDAILY: '/bonus/daily',\n\t\tDAILY_CLAIM: '/bonus/daily/claim',\n\t},\n\tLEADERBOARD: {\n\t\tOVERVIEW: '/leaderboard',\n\t},\n\tINCOME: {\n\t\tOVERVIEW: '/income',\n\t},\n\tNOTIFICATIONS: {\n\t\tLIST: '/notifications',\n\t\tREAD: '/notifications/read',\n\t},\n\tTICKETS: {\n\t\tLIST: '/tickets',\n\t\tCREATE: '/tickets',\n\t\tGET: '/tickets/:id',\n\t\tREPLY: '/tickets/:id/messages',\n\t\tATTACHMENT_UPLOAD_URL: '/tickets/attachments/upload-url',\n\t},\n} as const;\n\nexport const API_PREFIX = '/api';\nexport const API_VERSION = 'v1';\n"]}