@numen-crypto/contract 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -0
- package/dist/index.cjs +740 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +2448 -0
- package/dist/index.d.ts +2448 -0
- package/dist/index.js +683 -0
- package/dist/index.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +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/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/commands/partners/get-partners.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/api/routes.ts"],"names":["z","RegisterCommand","LoginCommand","LogoutCommand","MeCommand","SetupTotpCommand","ConfirmTotpCommand","GetWalletCommand","GetTransactionsCommand","DepositAddressCommand","GetTokenPriceCommand","GetTokenChartCommand","SwapCommand","GetPartnersCommand","GetRanksCommand","GetEarningsCommand","RequestWithdrawalCommand","ListWithdrawalsCommand","CancelWithdrawalCommand","ConfirmWithdrawalCommand","RequestEmailChangeCommand","ConfirmEmailChangeCommand","DisableTotpCommand","UpdateProfileCommand","AvatarUploadUrlCommand","GetSettingsCommand","UpdateSettingsCommand","GetDailyBonusCommand","ClaimDailyBonusCommand","GetLeaderboardCommand","GetIncomeCommand","ListNotificationsCommand","MarkNotificationsReadCommand","ListLinkedAccountsCommand","LinkTelegramCommand","LinkGoogleCommand","UnlinkAccountCommand"],"mappings":"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","file":"index.js","sourcesContent":["export const ERROR_CODE = {\n\t// generic\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\t// auth\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\t// wallet / purchase / withdrawal (reserved for next slices)\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\t// bonus\n\tBONUS_ALREADY_CLAIMED: 'BONUS_ALREADY_CLAIMED',\n\n\t// account linking\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\n\t.string()\n\t.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 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\n/** All assets that can appear as a wallet balance. NMN is internal-only. */\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\n/**\n * Assets that can be deposited/withdrawn on-chain via SHKeeper.\n * NMN is excluded — it only exists inside the platform and is acquired via swap.\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\n/** The internal token and the funding stablecoin. */\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([\n\t'PENDING',\n\t'PROCESSING',\n\t'COMPLETED',\n\t'FAILED',\n\t'CANCELLED',\n]);\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\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 } 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});\nexport type PartnerLevel = z.infer<typeof PartnerLevelSchema>;\n\nexport const PartnersOverviewSchema = z.object({\n\treferralCode: z.string(),\n\ttotalPartners: z.number().int().nonnegative(),\n\tdirectPartners: z.number().int().nonnegative(),\n\tnetworkTurnover: MoneyStringSchema,\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 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 { MoneyStringSchema } from './shared.model';\nimport { UserRankSchema } from './rank.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(12).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 { 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\t/**\n\t * For BUY, `amount` is the USDT spent. For SELL, `amount` is the NMN sold.\n\t * `maxPrice` (optional) — slippage guard; reject if the live price exceeds it.\n\t */\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 { type PartnersOverview, PartnersOverviewSchema } from '../../models/partner.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 ResponseSchema = PartnersOverviewSchema;\n\texport type Response = PartnersOverview;\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('POST', '/withdrawals/:id/confirm', 'Confirm a withdrawal with the email token');\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 { 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 { LinkedAccountSchema, LinkProviderSchema } 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('POST', '/settings/link/telegram', 'Link a Telegram account (login widget)');\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","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\tPARTNERS: {\n\t\tOVERVIEW: '/partners',\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} as const;\n\nexport const API_PREFIX = '/api';\nexport const API_VERSION = 'v1';\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@numen-crypto/contract",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Numen API contracts: zod schemas, types, route registry and error codes shared between backend and frontend",
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.cjs",
|
|
8
|
+
"module": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"import": "./dist/index.js",
|
|
14
|
+
"require": "./dist/index.cjs"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"files": ["dist"],
|
|
18
|
+
"sideEffects": false,
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public"
|
|
21
|
+
},
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git+https://github.com/Numen-Token/contract.git"
|
|
25
|
+
},
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "tsup",
|
|
28
|
+
"dev": "tsup --watch",
|
|
29
|
+
"typecheck": "tsc --noEmit",
|
|
30
|
+
"lint": "biome check .",
|
|
31
|
+
"lint:fix": "biome check --write .",
|
|
32
|
+
"prepublishOnly": "npm run build"
|
|
33
|
+
},
|
|
34
|
+
"peerDependencies": {
|
|
35
|
+
"zod": "^3.24.0"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@biomejs/biome": "^1.9.4",
|
|
39
|
+
"tsup": "^8.3.5",
|
|
40
|
+
"typescript": "^5.7.3",
|
|
41
|
+
"zod": "^3.24.1"
|
|
42
|
+
}
|
|
43
|
+
}
|