@numen-crypto/contract 0.4.0 → 0.6.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 +41 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +216 -25
- package/dist/index.d.ts +216 -25
- package/dist/index.js +41 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -23,6 +23,11 @@ var ERROR_CODE = {
|
|
|
23
23
|
TOKEN_INVALID: "TOKEN_INVALID",
|
|
24
24
|
INSUFFICIENT_BALANCE: "INSUFFICIENT_BALANCE",
|
|
25
25
|
PURCHASE_LIMIT_EXCEEDED: "PURCHASE_LIMIT_EXCEEDED",
|
|
26
|
+
PURCHASE_CAP_EXCEEDED: "PURCHASE_CAP_EXCEEDED",
|
|
27
|
+
DAILY_PURCHASE_LIMIT: "DAILY_PURCHASE_LIMIT",
|
|
28
|
+
TOKENS_FROZEN: "TOKENS_FROZEN",
|
|
29
|
+
SELL_WINDOW_EXCEEDED: "SELL_WINDOW_EXCEEDED",
|
|
30
|
+
UPGRADE_NOT_AVAILABLE: "UPGRADE_NOT_AVAILABLE",
|
|
26
31
|
SALE_PHASE_INACTIVE: "SALE_PHASE_INACTIVE",
|
|
27
32
|
WITHDRAWAL_COOLOFF: "WITHDRAWAL_COOLOFF",
|
|
28
33
|
BONUS_ALREADY_CLAIMED: "BONUS_ALREADY_CLAIMED",
|
|
@@ -164,12 +169,23 @@ var PackageSchema = zod.z.object({
|
|
|
164
169
|
status: PackageStatusSchema,
|
|
165
170
|
badge: zod.z.string().nullable()
|
|
166
171
|
});
|
|
172
|
+
var TradeLimitsSchema = zod.z.object({
|
|
173
|
+
purchasedUsd: MoneyStringSchema,
|
|
174
|
+
purchaseCapUsd: MoneyStringSchema.nullable(),
|
|
175
|
+
capRemainingUsd: MoneyStringSchema.nullable(),
|
|
176
|
+
purchasesToday: zod.z.number().int().nonnegative(),
|
|
177
|
+
dailyPurchaseLimit: zod.z.number().int().nonnegative().nullable(),
|
|
178
|
+
freezeDays: zod.z.number().int().nonnegative().nullable(),
|
|
179
|
+
frozenNmn: MoneyStringSchema,
|
|
180
|
+
sellableNmn: MoneyStringSchema,
|
|
181
|
+
windowDays: zod.z.number().int().nonnegative().nullable(),
|
|
182
|
+
windowUsd: MoneyStringSchema.nullable(),
|
|
183
|
+
windowRemainingUsd: MoneyStringSchema.nullable(),
|
|
184
|
+
windowOpensAt: zod.z.string().datetime().nullable()
|
|
185
|
+
});
|
|
167
186
|
var PackagesOverviewSchema = zod.z.object({
|
|
168
187
|
packages: zod.z.array(PackageSchema),
|
|
169
|
-
|
|
170
|
-
dailyUsed: zod.z.number().int().nonnegative(),
|
|
171
|
-
weeklyLimitUsd: MoneyStringSchema.nullable(),
|
|
172
|
-
weeklySpentUsd: MoneyStringSchema,
|
|
188
|
+
limits: TradeLimitsSchema,
|
|
173
189
|
minPriceUsd: MoneyStringSchema,
|
|
174
190
|
maxPriceUsd: MoneyStringSchema,
|
|
175
191
|
sellIntervalDays: zod.z.number().int().positive().nullable(),
|
|
@@ -606,6 +622,24 @@ exports.BuyPackageCommand = void 0;
|
|
|
606
622
|
tokenPrice: MoneyStringSchema
|
|
607
623
|
});
|
|
608
624
|
})(exports.BuyPackageCommand || (exports.BuyPackageCommand = {}));
|
|
625
|
+
exports.UpgradePackageCommand = void 0;
|
|
626
|
+
((UpgradePackageCommand2) => {
|
|
627
|
+
UpgradePackageCommand2.endpointDetails = endpoint(
|
|
628
|
+
"POST",
|
|
629
|
+
"/packages/:id/upgrade",
|
|
630
|
+
"Upgrade to a higher tier by topping up the difference between it and what was already invested"
|
|
631
|
+
);
|
|
632
|
+
UpgradePackageCommand2.RequestSchema = zod.z.object({
|
|
633
|
+
idempotencyKey: zod.z.string().min(8).max(255)
|
|
634
|
+
});
|
|
635
|
+
UpgradePackageCommand2.ResponseSchema = zod.z.object({
|
|
636
|
+
purchaseId: zod.z.string().uuid(),
|
|
637
|
+
topUpUsd: MoneyStringSchema,
|
|
638
|
+
tierPriceUsd: MoneyStringSchema,
|
|
639
|
+
nmnAmount: MoneyStringSchema,
|
|
640
|
+
tokenPrice: MoneyStringSchema
|
|
641
|
+
});
|
|
642
|
+
})(exports.UpgradePackageCommand || (exports.UpgradePackageCommand = {}));
|
|
609
643
|
|
|
610
644
|
// src/commands/content/get-slides.command.ts
|
|
611
645
|
exports.GetSlidesCommand = void 0;
|
|
@@ -944,7 +978,8 @@ var REST_API = {
|
|
|
944
978
|
},
|
|
945
979
|
PACKAGES: {
|
|
946
980
|
OVERVIEW: "/packages",
|
|
947
|
-
BUY: "/packages/:id/buy"
|
|
981
|
+
BUY: "/packages/:id/buy",
|
|
982
|
+
UPGRADE: "/packages/:id/upgrade"
|
|
948
983
|
},
|
|
949
984
|
CONTENT: {
|
|
950
985
|
SLIDES: "/content/slides"
|
|
@@ -1069,6 +1104,7 @@ exports.TicketMessageSchema = TicketMessageSchema;
|
|
|
1069
1104
|
exports.TicketStatusSchema = TicketStatusSchema;
|
|
1070
1105
|
exports.TicketSummarySchema = TicketSummarySchema;
|
|
1071
1106
|
exports.TokenPriceSchema = TokenPriceSchema;
|
|
1107
|
+
exports.TradeLimitsSchema = TradeLimitsSchema;
|
|
1072
1108
|
exports.TradeResultSchema = TradeResultSchema;
|
|
1073
1109
|
exports.TransactionSchema = TransactionSchema;
|
|
1074
1110
|
exports.TransactionStatusSchema = TransactionStatusSchema;
|
package/dist/index.cjs.map
CHANGED
|
@@ -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/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/auth/verification.command.ts","../src/commands/auth/password-reset.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","VerifyEmailCommand","ResendVerificationCommand","ForgotPasswordCommand","ResetPasswordCommand","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":";;;;;AAAO,IAAM,UAAA,GAAa;AAAA,EACzB,UAAA,EAAY,YAAA;AAAA,EACZ,SAAA,EAAW,WAAA;AAAA,EACX,QAAA,EAAU,UAAA;AAAA,EACV,YAAA,EAAc,cAAA;AAAA,EACd,SAAA,EAAW,WAAA;AAAA,EACX,YAAA,EAAc,cAAA;AAAA,EACd,QAAA,EAAU,UAAA;AAAA,EAEV,WAAA,EAAa,aAAA;AAAA,EACb,kBAAA,EAAoB,oBAAA;AAAA,EACpB,mBAAA,EAAqB,qBAAA;AAAA,EACrB,eAAA,EAAiB,iBAAA;AAAA,EACjB,eAAA,EAAiB,iBAAA;AAAA,EACjB,aAAA,EAAe,eAAA;AAAA,EACf,oBAAA,EAAsB,sBAAA;AAAA,EACtB,kBAAA,EAAoB,oBAAA;AAAA,EACpB,sBAAA,EAAwB,wBAAA;AAAA,EACxB,aAAA,EAAe,eAAA;AAAA,EAEf,oBAAA,EAAsB,sBAAA;AAAA,EACtB,uBAAA,EAAyB,yBAAA;AAAA,EACzB,mBAAA,EAAqB,qBAAA;AAAA,EACrB,kBAAA,EAAoB,oBAAA;AAAA,EAEpB,qBAAA,EAAuB,uBAAA;AAAA,EAEvB,sBAAA,EAAwB,wBAAA;AAAA,EACxB,wBAAA,EAA0B,0BAAA;AAAA,EAC1B,iBAAA,EAAmB;AACpB;AC5BO,IAAM,WAAA,GAAc;AAEpB,IAAM,oBAAoBA,KAAA,CAAE,MAAA,EAAO,CAAE,KAAA,CAAM,aAAa,iDAAiD;AAEzG,IAAM,4BAA4B,iBAAA,CAAkB,MAAA;AAAA,EAC1D,CAAC,CAAA,KAAM,CAAC,CAAA,CAAE,UAAA,CAAW,GAAG,CAAA,IAAK,MAAA,CAAO,UAAA,CAAW,CAAC,CAAA,GAAI,CAAA;AAAA,EACpD;AACD;AAEO,IAAM,UAAA,GAAaA,KAAA,CAAE,MAAA,EAAO,CAAE,IAAA;AAE9B,IAAM,YAAA,GAAeA,MAAE,IAAA,CAAK,CAAC,QAAQ,OAAA,EAAS,MAAA,EAAQ,KAAK,CAAC;AAG5D,IAAM,mBAAA,GAAsBA,MAAE,MAAA,CAAO;AAAA,EAC3C,KAAA,EAAOA,MAAE,MAAA,CAAO;AAAA,IACf,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,IACf,OAAA,EAASA,MAAE,MAAA;AAAO,GAClB,CAAA;AAAA,EACD,SAAA,EAAWA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC;AAGM,IAAM,qBAAA,GAAwBA,MAAE,MAAA,CAAO;AAAA,EAC7C,IAAA,EAAMA,KAAA,CAAE,MAAA,CAAO,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA;AAAA,EAC9C,QAAA,EAAUA,KAAA,CAAE,MAAA,CAAO,MAAA,GAAS,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAQ,EAAE;AAC7D,CAAC;AAGM,SAAS,gBAAwC,IAAA,EAAS;AAChE,EAAA,OAAOA,MAAE,MAAA,CAAO;AAAA,IACf,KAAA,EAAOA,KAAA,CAAE,KAAA,CAAM,IAAI,CAAA;AAAA,IACnB,OAAOA,KAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,IACpC,MAAMA,KAAA,CAAE,MAAA,GAAS,GAAA,EAAI,CAAE,IAAI,CAAC,CAAA;AAAA,IAC5B,UAAUA,KAAA,CAAE,MAAA,GAAS,GAAA,EAAI,CAAE,IAAI,CAAC;AAAA,GAChC,CAAA;AACF;ACpCO,IAAM,gBAAA,GAAmBA,MAAE,IAAA,CAAK,CAAC,WAAW,QAAA,EAAU,WAAA,EAAa,SAAS,CAAC;AAG7E,IAAM,iBAAA,GAAoBA,MAAE,MAAA,CAAO;AAAA,EACzC,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACpB,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,EAAM;AAAA,EACxB,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,WAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACrC,YAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,GAAO,QAAA,EAAS;AAAA,EACvC,QAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,GAAO,QAAA,EAAS;AAAA,EACnC,MAAA,EAAQ,gBAAA;AAAA,EACR,WAAA,EAAaA,MAAE,OAAA,EAAQ;AAAA,EACvB,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC;AAGM,IAAM,iBAAA,GAAoBA,MAAE,MAAA,CAAO;AAAA,EACzC,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,EACb,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,UAAA,EAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,OAAA,EAASA,MAAE,OAAA;AACZ,CAAC;ACtBM,IAAM,aAAA,GAAgB,CAAC,KAAA,EAAO,MAAA,EAAQ,OAAO,KAAA,EAAO,KAAA,EAAO,OAAO,KAAK;AAEvE,IAAM,iBAAA,GAAoBA,KAAAA,CAAE,IAAA,CAAK,aAAa;AAG9C,IAAM,qBAAqB,CAAC,MAAA,EAAQ,OAAO,KAAA,EAAO,KAAA,EAAO,OAAO,KAAK;AAErE,IAAM,sBAAA,GAAyBA,KAAAA,CAAE,IAAA,CAAK,kBAAkB;AAGxD,IAAM,WAAA,GAAc;AACpB,IAAM,aAAA,GAAgB;AAEtB,IAAM,cAAA,GAAiB;AAAA,EAC7B,GAAA,EAAK,CAAA;AAAA,EACL,IAAA,EAAM,CAAA;AAAA,EACN,GAAA,EAAK,CAAA;AAAA,EACL,GAAA,EAAK,CAAA;AAAA,EACL,GAAA,EAAK,CAAA;AAAA,EACL,GAAA,EAAK,CAAA;AAAA,EACL,GAAA,EAAK;AACN;AAEO,IAAM,kBAAA,GAAqB;AAE3B,SAAS,cAAc,KAAA,EAA4B;AACzD,EAAA,OAAO,eAAe,KAAK,CAAA;AAC5B;AAEO,IAAM,kBAAA,GAAqBA,MAAE,MAAA,CAAO;AAAA,EAC1C,KAAA,EAAO,iBAAA;AAAA,EACP,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,QAAA,EAAUA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,QAAQ,CAAA;AAAA,EAC5B,WAAA,EAAaA,MAAE,OAAA,EAAQ;AAAA,EACvB,SAAA,EAAW,iBAAA;AAAA,EACX,MAAA,EAAQ,iBAAA;AAAA,EACR,QAAA,EAAU,iBAAA;AAAA,EACV,MAAA,EAAQA,MAAE,OAAA;AACX,CAAC;AAGM,IAAM,oBAAA,GAAuBA,MAAE,MAAA,CAAO;AAAA,EAC5C,QAAA,EAAU,iBAAA;AAAA,EACV,MAAA,EAAQA,KAAAA,CAAE,KAAA,CAAM,kBAAkB;AACnC,CAAC;AC3CM,IAAM,qBAAA,GAAwBA,MAAE,IAAA,CAAK;AAAA,EAC3C,SAAA;AAAA,EACA,YAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA;AACD,CAAC;AAGM,IAAM,uBAAA,GAA0BA,MAAE,IAAA,CAAK,CAAC,WAAW,YAAA,EAAc,WAAA,EAAa,QAAA,EAAU,WAAW,CAAC;AAGpG,IAAM,iBAAA,GAAoBA,MAAE,MAAA,CAAO;AAAA,EACzC,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACpB,IAAA,EAAM,qBAAA;AAAA,EACN,KAAA,EAAO,iBAAA;AAAA,EACP,MAAA,EAAQ,iBAAA;AAAA,EACR,KAAA,EAAO,kBAAkB,QAAA,EAAS;AAAA,EAClC,WAAA,EAAa,kBAAkB,QAAA,EAAS;AAAA,EACxC,MAAA,EAAQ,uBAAA;AAAA,EACR,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC;ACxBM,IAAM,oBAAA,GAAuBA,MAAE,MAAA,CAAO;AAAA,EAC5C,KAAA,EAAO,sBAAA;AAAA,EACP,OAAA,EAASA,MAAE,MAAA,EAAO;AAAA,EAClB,OAAA,EAASA,MAAE,MAAA,EAAO;AAAA,EAClB,SAAA,EAAW,iBAAA;AAAA,EACX,eAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA;AACjC,CAAC;ACPM,IAAM,kBAAA,GAAqBA,MAAE,MAAA,CAAO;AAAA,EAC1C,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA;AAAA,EACrC,UAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EACvC,QAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EACrC,QAAA,EAAU,iBAAA;AAAA,EACV,MAAA,EAAQ;AACT,CAAC;AAGM,IAAM,sBAAA,GAAyBA,MAAE,MAAA,CAAO;AAAA,EAC9C,MAAA,EAAQ,YAAA;AAAA,EACR,YAAA,EAAcA,MAAE,MAAA,EAAO;AAAA,EACvB,eAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EAC5C,gBAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EAC7C,eAAA,EAAiB,iBAAA;AAAA,EACjB,wBAAA,EAA0BA,MAAE,MAAA,EAAO;AAAA,EACnC,eAAA,EAAiB,iBAAA;AAAA,EACjB,MAAA,EAAQA,KAAAA,CAAE,KAAA,CAAM,kBAAkB;AACnC,CAAC;AClBM,IAAM,sBAAsBA,KAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,QAAQ,CAAC;AAGvD,IAAM,aAAA,GAAgBA,MAAE,MAAA,CAAO;AAAA,EACrC,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACpB,MAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EAChC,QAAA,EAAU,iBAAA;AAAA,EACV,kBAAkBA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EAC5C,MAAA,EAAQ,mBAAA;AAAA,EACR,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACnB,CAAC;AAGM,IAAM,sBAAA,GAAyBA,MAAE,MAAA,CAAO;AAAA,EAC9C,QAAA,EAAUA,KAAAA,CAAE,KAAA,CAAM,aAAa,CAAA;AAAA,EAC/B,YAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EACzC,WAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EACxC,cAAA,EAAgB,kBAAkB,QAAA,EAAS;AAAA,EAC3C,cAAA,EAAgB,iBAAA;AAAA,EAChB,WAAA,EAAa,iBAAA;AAAA,EACb,WAAA,EAAa,iBAAA;AAAA,EACb,gBAAA,EAAkBA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EACvD,YAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EAC3C,WAAA,EAAa;AACd,CAAC;ACzBM,IAAM,kBAAkBA,KAAAA,CAAE,IAAA,CAAK,CAAC,OAAA,EAAS,MAAM,CAAC;AAGhD,IAAM,sBAAA,GAAyBA,MAAE,IAAA,CAAK,CAAC,WAAW,WAAA,EAAa,SAAA,EAAW,OAAO,CAAC;AAGlF,IAAM,wBAAwBA,KAAAA,CAAE,IAAA,CAAK,CAAC,OAAA,EAAS,QAAQ,CAAC;AAGxD,IAAM,WAAA,GAAcA,MAAE,MAAA,CAAO;AAAA,EACnC,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACpB,IAAA,EAAM,eAAA;AAAA,EACN,UAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACpC,GAAA,EAAKA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,SAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACnC,UAAA,EAAY,qBAAA;AAAA,EACZ,cAAA,EAAgBA,MAAE,OAAA,EAAQ;AAAA,EAC1B,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,WAAA,EAAa,uBAAuB,QAAA;AACrC,CAAC;AAGM,IAAM,oBAAA,GAAuBA,KAAAA,CAAE,KAAA,CAAM,WAAW;ACvBhD,IAAM,aAAA,GAAgBA,MAAE,MAAA,CAAO;AAAA,EACrC,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,OAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EACpC,WAAA,EAAa;AACd,CAAC;AAGM,IAAM,cAAA,GAAiBA,MAAE,MAAA,CAAO;AAAA,EACtC,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,OAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EACpC,WAAA,EAAa,iBAAA;AAAA,EACb,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,eAAA,EAAiB,kBAAkB,QAAA,EAAS;AAAA,EAC5C,WAAA,EAAaA,MAAE,MAAA;AAChB,CAAC;ACbM,IAAM,sBAAA,GAAyBA,MAAE,MAAA,CAAO;AAAA,EAC9C,YAAA,EAAc,iBAAA;AAAA,EACd,UAAA,EAAY,iBAAA;AAAA,EACZ,aAAA,EAAe,iBAAA;AAAA,EACf,eAAA,EAAiB,iBAAA;AAAA,EACjB,eAAA,EAAiB,iBAAA;AAAA,EACjB,IAAA,EAAM;AACP,CAAC;ACTM,IAAM,kBAAA,GAAqBA,MAAE,MAAA,CAAO;AAAA,EAC1C,YAAA,EAAcA,MAAE,OAAA,EAAQ;AAAA,EACxB,aAAA,EAAeA,MAAE,OAAA,EAAQ;AAAA,EACzB,sBAAA,EAAwBA,MAAE,OAAA;AAC3B,CAAC;ACHM,IAAM,mBAAA,GAAsBA,MAAE,MAAA,CAAO;AAAA,EAC3C,UAAUA,KAAAA,CAAE,MAAA,GAAS,GAAA,EAAI,CAAE,IAAI,CAAC,CAAA;AAAA,EAChC,SAAA,EAAW,iBAAA;AAAA,EACX,QAAA,EAAUA,MAAE,OAAA;AACb,CAAC;AAGM,IAAM,sBAAA,GAAyBA,MAAE,MAAA,CAAO;AAAA,EAC9C,eAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EAC5C,aAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACvC,cAAA,EAAgBA,MAAE,OAAA,EAAQ;AAAA,EAC1B,eAAeA,KAAAA,CAAE,MAAA,GAAS,GAAA,EAAI,CAAE,IAAI,CAAC,CAAA;AAAA,EACrC,aAAA,EAAe,iBAAA;AAAA,EACf,IAAA,EAAMA,KAAAA,CAAE,KAAA,CAAM,mBAAmB;AAClC,CAAC;AAGM,IAAM,2BAAA,GAA8BA,MAAE,MAAA,CAAO;AAAA,EACnD,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA,EACnB,UAAUA,KAAAA,CAAE,MAAA,GAAS,GAAA,EAAI,CAAE,IAAI,CAAC,CAAA;AAAA,EAChC,SAAA,EAAW,iBAAA;AAAA,EACX,eAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA;AACjC,CAAC;ACvBM,IAAM,sBAAA,GAAyBA,MAAE,IAAA,CAAK;AAAA,EAC5C,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,oBAAA;AAAA,EACA,iBAAA;AAAA,EACA,eAAA;AAAA,EACA;AACD,CAAC;AAGM,IAAM,kBAAA,GAAqBA,MAAE,MAAA,CAAO;AAAA,EAC1C,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACpB,IAAA,EAAM,sBAAA;AAAA,EACN,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,EAChB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,IAAA,EAAMA,MAAE,OAAA,EAAQ;AAAA,EAChB,MAAMA,KAAAA,CAAE,MAAA,CAAOA,MAAE,OAAA,EAAS,EAAE,QAAA,EAAS;AAAA,EACrC,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC;ACjBM,IAAM,uBAAA,GAA0BA,MAAE,IAAA,CAAK,CAAC,QAAQ,OAAA,EAAS,MAAA,EAAQ,KAAK,CAAC;AAGvE,IAAM,sBAAA,GAAyBA,MAAE,MAAA,CAAO;AAAA,EAC9C,MAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EAChC,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACxB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,EACtB,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,QAAA,EAAS;AAAA,EAC/C,UAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EACvC,WAAA,EAAa,iBAAA;AAAA,EACb,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,MAAA,EAAQA,MAAE,OAAA;AACX,CAAC;AAGM,IAAM,iBAAA,GAAoBA,MAAE,MAAA,CAAO;AAAA,EACzC,MAAA,EAAQ,uBAAA;AAAA,EACR,KAAA,EAAOA,KAAAA,CAAE,KAAA,CAAM,sBAAsB,CAAA;AAAA,EACrC,IAAA,EAAM,uBAAuB,QAAA;AAC9B,CAAC;ACpBM,IAAM,qBAAqBA,KAAAA,CAAE,IAAA,CAAK,CAAC,UAAA,EAAY,QAAQ,CAAC;AAGxD,IAAM,mBAAA,GAAsBA,MAAE,MAAA,CAAO;AAAA,EAC3C,QAAA,EAAU,kBAAA;AAAA,EACV,cAAA,EAAgBA,MAAE,MAAA,EAAO;AAAA,EACzB,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACtB,CAAC;ACPM,IAAM,kBAAA,GAAqBA,MAAE,IAAA,CAAK,CAAC,QAAQ,OAAA,EAAS,MAAA,EAAQ,KAAK,CAAC;AAGlE,IAAM,oBAAA,GAAuBA,MAAE,MAAA,CAAO;AAAA,EAC5C,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACpB,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA;AAAA,EACrC,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EAC9B,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,EACrB,SAAA,EAAW,iBAAA;AAAA,EACX,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC;AAGM,IAAM,uBAAA,GAA0BA,MAAE,MAAA,CAAO;AAAA,EAC/C,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,EAChB,SAAA,EAAW,iBAAA;AAAA,EACX,OAAA,EAAS,iBAAA;AAAA,EACT,gBAAA,EAAkB;AACnB,CAAC;AAGM,IAAM,oBAAA,GAAuBA,MAAE,MAAA,CAAO;AAAA,EAC5C,MAAA,EAAQ,kBAAA;AAAA,EACR,oBAAA,EAAsB,iBAAA;AAAA,EACtB,cAAA,EAAgBA,MAAE,MAAA,EAAO;AAAA,EACzB,kBAAA,EAAoB,iBAAA;AAAA,EACpB,kBAAA,EAAoB,iBAAA;AAAA,EACpB,cAAA,EAAgB,iBAAA;AAAA,EAChB,eAAA,EAAiBA,KAAAA,CAAE,KAAA,CAAM,oBAAoB,CAAA;AAAA,EAC7C,YAAA,EAAcA,KAAAA,CAAE,KAAA,CAAM,uBAAuB;AAC9C,CAAC;AC7BM,IAAM,sBAAA,GAAyBA,MAAE,IAAA,CAAK;AAAA,EAC5C,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA;AACD,CAAC;AAGM,IAAM,gBAAA,GAAmBA,MAAE,MAAA,CAAO;AAAA,EACxC,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACpB,KAAA,EAAO,iBAAA;AAAA,EACP,MAAA,EAAQ,iBAAA;AAAA,EACR,OAAA,EAASA,MAAE,MAAA,EAAO;AAAA,EAClB,MAAA,EAAQ,sBAAA;AAAA,EACR,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC;ACnBM,IAAM,gBAAA,GAAmBA,MAAE,MAAA,CAAO;AAAA,EACxC,KAAA,EAAO,iBAAA;AAAA,EACP,YAAA,EAAcA,MAAE,MAAA,EAAO;AAAA,EACvB,YAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EACzC,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC;AAGM,IAAM,iBAAA,GAAoBA,MAAE,IAAA,CAAK,CAAC,OAAO,MAAA,EAAQ,OAAA,EAAS,MAAM,CAAC;AAGjE,IAAM,gBAAA,GAAmBA,MAAE,MAAA,CAAO;AAAA,EACxC,CAAA,EAAGA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACvB,KAAA,EAAO;AACR,CAAC;AAGM,IAAM,iBAAiBA,KAAAA,CAAE,IAAA,CAAK,CAAC,KAAA,EAAO,MAAM,CAAC;AAG7C,IAAM,iBAAA,GAAoBA,MAAE,MAAA,CAAO;AAAA,EACzC,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACzB,IAAA,EAAM,cAAA;AAAA,EACN,UAAA,EAAY,iBAAA;AAAA,EACZ,SAAA,EAAW,iBAAA;AAAA,EACX,KAAA,EAAO,iBAAA;AAAA,EACP,OAAA,EAAS;AACV,CAAC;;;ACtBM,SAAS,QAAA,CAAS,MAAA,EAAoB,IAAA,EAAc,OAAA,EAAkC;AAC5F,EAAA,OAAO,EAAE,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAQ;AAChC;ACPiBC;AAAA,CAAV,CAAUA,gBAAAA,KAAV;AACC,EAAMA,gBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,kBAAkB,qBAAqB,CAAA;AAEhF,EAAMA,gBAAAA,CAAA,aAAA,GAAgBD,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,OAAOA,KAAAA,CAAE,MAAA,GAAS,KAAA,EAAM,CAAE,IAAI,GAAG,CAAA;AAAA,IACjC,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,IACnC,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,QAAA;AAAS,GACjD,CAAA;AAGM,EAAMC,gBAAAA,CAAA,cAAA,GAAiBD,KAAAA,CAAE,MAAA,CAAO;AAAA,IACtC,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA;AAAK,GACxB,CAAA;AAAA,CAAA,EAZeC,uBAAA,KAAAA,uBAAA,GAAA,EAAA,CAAA,CAAA;ACCAC;AAAA,CAAV,CAAUA,aAAAA,KAAV;AACC,EAAMA,aAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,eAAe,+BAA+B,CAAA;AAEvF,EAAMA,aAAAA,CAAA,aAAA,GAAgBF,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,OAAOA,KAAAA,CAAE,MAAA,GAAS,KAAA,EAAM,CAAE,IAAI,GAAG,CAAA;AAAA,IACjC,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,IACnC,MAAMA,KAAAA,CACJ,MAAA,GACA,KAAA,CAAM,SAAS,EACf,QAAA;AAAS,GACX,CAAA;AAGM,EAAME,aAAAA,CAAA,cAAA,GAAiBF,KAAAA,CAAE,MAAA,CAAO;AAAA,IACtC,IAAA,EAAM;AAAA,GACN,CAAA;AAAA,CAAA,EAfeE,oBAAA,KAAAA,oBAAA,GAAA,EAAA,CAAA,CAAA;ACDAC;AAAA,CAAV,CAAUA,cAAAA,KAAV;AACC,EAAMA,cAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,gBAAgB,+BAA+B,CAAA;AAExF,EAAMA,cAAAA,CAAA,aAAA,GAAgBH,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,YAAYA,KAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,QAAQ,KAAK;AAAA,GAChD,CAAA;AAGM,EAAMG,cAAAA,CAAA,cAAA,GAAiBH,KAAAA,CAAE,IAAA,EAAK;AAAA,CAAA,EARrBG,qBAAA,KAAAA,qBAAA,GAAA,EAAA,CAAA,CAAA;ACCAC;AAAA,CAAV,CAAUA,UAAAA,KAAV;AACC,EAAMA,UAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,YAAY,oCAAoC,CAAA;AAExF,EAAMA,UAAAA,CAAA,cAAA,GAAiBJ,KAAAA,CAAE,MAAA,CAAO;AAAA,IACtC,IAAA,EAAM;AAAA,GACN,CAAA;AAAA,CAAA,EALeI,iBAAA,KAAAA,iBAAA,GAAA,EAAA,CAAA,CAAA;ACDAC;AAAA,CAAV,CAAUA,iBAAAA,KAAV;AACC,EAAMA,iBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,oBAAoB,uBAAuB,CAAA;AAEpF,EAAMA,iBAAAA,CAAA,cAAA,GAAiBL,KAAAA,CAAE,MAAA,CAAO;AAAA,IACtC,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,IACjB,UAAA,EAAYA,MAAE,MAAA;AAAO,GACrB,CAAA;AAAA,CAAA,EANeK,wBAAA,KAAAA,wBAAA,GAAA,EAAA,CAAA,CAAA;AAUAC;AAAA,CAAV,CAAUA,mBAAAA,KAAV;AACC,EAAMA,mBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,sBAAsB,yBAAyB,CAAA;AAExF,EAAMA,mBAAAA,CAAA,aAAA,GAAgBN,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,MAAA,EAAQA,MAAE,MAAA,EAAO,CAAE,IAAI,EAAE,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,IAClC,GAAA,EAAKA,KAAAA,CAAE,MAAA,EAAO,CAAE,MAAM,SAAS;AAAA,GAC/B,CAAA;AAGM,EAAMM,mBAAAA,CAAA,cAAA,GAAiBN,KAAAA,CAAE,IAAA,EAAK;AAAA,CAAA,EATrBM,0BAAA,KAAAA,0BAAA,GAAA,EAAA,CAAA,CAAA;ACVAC;AAAA,CAAV,CAAUA,mBAAAA,KAAV;AACC,EAAMA,oBAAA,eAAA,GAAkB,QAAA;AAAA,IAC9B,MAAA;AAAA,IACA,oBAAA;AAAA,IACA;AAAA,GACD;AAEO,EAAMA,mBAAAA,CAAA,aAAA,GAAgBP,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,EAAE,CAAA,CAAE,IAAI,GAAG;AAAA,GACjC,CAAA;AAGM,EAAMO,mBAAAA,CAAA,iBAAiBP,KAAAA,CAAE,MAAA,CAAO,EAAE,QAAA,EAAUA,KAAAA,CAAE,OAAA,EAAQ,EAAG,CAAA;AAAA,CAAA,EAZhDO,0BAAA,KAAAA,0BAAA,GAAA,EAAA,CAAA,CAAA;AAgBAC;AAAA,CAAV,CAAUA,0BAAAA,KAAV;AACC,EAAMA,0BAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,6BAA6B,oCAAoC,CAAA;AAE1G,EAAMA,0BAAAA,CAAA,aAAA,GAAgBR,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,OAAOA,KAAAA,CAAE,MAAA,GAAS,KAAA,EAAM,CAAE,IAAI,GAAG;AAAA,GACjC,CAAA;AAGM,EAAMQ,0BAAAA,CAAA,iBAAiBR,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAMA,KAAAA,CAAE,OAAA,EAAQ,EAAG,CAAA;AAAA,CAAA,EAR5CQ,iCAAA,KAAAA,iCAAA,GAAA,EAAA,CAAA,CAAA;AChBAC;AAAA,CAAV,CAAUA,sBAAAA,KAAV;AACC,EAAMA,sBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,yBAAyB,4BAA4B,CAAA;AAE9F,EAAMA,sBAAAA,CAAA,aAAA,GAAgBT,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,OAAOA,KAAAA,CAAE,MAAA,GAAS,KAAA,EAAM,CAAE,IAAI,GAAG;AAAA,GACjC,CAAA;AAGM,EAAMS,sBAAAA,CAAA,iBAAiBT,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAMA,KAAAA,CAAE,OAAA,EAAQ,EAAG,CAAA;AAAA,CAAA,EAR5CS,6BAAA,KAAAA,6BAAA,GAAA,EAAA,CAAA,CAAA;AAYAC;AAAA,CAAV,CAAUA,qBAAAA,KAAV;AACC,EAAMA,qBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,wBAAwB,0CAA0C,CAAA;AAE3G,EAAMA,qBAAAA,CAAA,aAAA,GAAgBV,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,EAAE,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,IACjC,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG;AAAA,GACnC,CAAA;AAGM,EAAMU,qBAAAA,CAAA,iBAAiBV,KAAAA,CAAE,MAAA,CAAO,EAAE,KAAA,EAAOA,KAAAA,CAAE,OAAA,EAAQ,EAAG,CAAA;AAAA,CAAA,EAT7CU,4BAAA,KAAAA,4BAAA,GAAA,EAAA,CAAA,CAAA;;;ACZAC;AAAA,CAAV,CAAUA,iBAAAA,KAAV;AACC,EAAMA,iBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,WAAW,6CAA6C,CAAA;AAEhG,EAAMA,kBAAA,cAAA,GAAiB,oBAAA;AAAA,CAAA,EAHdA,wBAAA,KAAAA,wBAAA,GAAA,EAAA,CAAA,CAAA;;;ACEAC;AAAA,CAAV,CAAUA,uBAAAA,KAAV;AACC,EAAMA,uBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,wBAAwB,mCAAmC,CAAA;AAEnG,EAAMA,uBAAAA,CAAA,WAAA,GAAc,qBAAA,CAAsB,MAAA,CAAO;AAAA,IACvD,IAAA,EAAM,sBAAsB,QAAA;AAAS,GACrC,CAAA;AAGM,EAAMA,uBAAAA,CAAA,cAAA,GAAiB,eAAA,CAAgB,iBAAiB,CAAA;AAAA,CAAA,EAR/CA,8BAAA,KAAAA,8BAAA,GAAA,EAAA,CAAA,CAAA;ACAAC;AAAA,CAAV,CAAUA,sBAAAA,KAAV;AACC,EAAMA,uBAAA,eAAA,GAAkB,QAAA;AAAA,IAC9B,MAAA;AAAA,IACA,yBAAA;AAAA,IACA;AAAA,GACD;AAEO,EAAMA,sBAAAA,CAAA,aAAA,GAAgBb,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,KAAA,EAAO,sBAAA;AAAA,IACP,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,EAAE;AAAA,GACjC,CAAA;AAGM,EAAMa,uBAAA,cAAA,GAAiB,oBAAA;AAAA,CAAA,EAbdA,6BAAA,KAAAA,6BAAA,GAAA,EAAA,CAAA,CAAA;;;ACFAC;AAAA,CAAV,CAAUA,qBAAAA,KAAV;AACC,EAAMA,qBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,gBAAgB,kCAAkC,CAAA;AAE1F,EAAMA,sBAAA,cAAA,GAAiB,gBAAA;AAAA,CAAA,EAHdA,4BAAA,KAAAA,4BAAA,GAAA,EAAA,CAAA,CAAA;ACCAC;AAAA,CAAV,CAAUA,qBAAAA,KAAV;AACC,EAAMA,qBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,gBAAgB,qCAAqC,CAAA;AAE7F,EAAMA,qBAAAA,CAAA,WAAA,GAAcf,KAAAA,CAAE,MAAA,CAAO;AAAA,IACnC,MAAA,EAAQ,iBAAA,CAAkB,OAAA,CAAQ,KAAK;AAAA,GACvC,CAAA;AAGM,EAAMe,qBAAAA,CAAA,cAAA,GAAiBf,KAAAA,CAAE,MAAA,CAAO;AAAA,IACtC,MAAA,EAAQ,iBAAA;AAAA,IACR,MAAA,EAAQA,KAAAA,CAAE,KAAA,CAAM,gBAAgB;AAAA,GAChC,CAAA;AAAA,CAAA,EAXee,4BAAA,KAAAA,4BAAA,GAAA,EAAA,CAAA,CAAA;ACCAC;AAAA,CAAV,CAAUA,YAAAA,KAAV;AACC,EAAMA,YAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,SAAS,gDAAgD,CAAA;AAElG,EAAMA,YAAAA,CAAA,aAAA,GAAgBhB,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,IAAA,EAAM,cAAA;AAAA,IACN,MAAA,EAAQ,yBAAA;AAAA,IACR,QAAA,EAAU,0BAA0B,QAAA,EAAS;AAAA,IAC7C,cAAA,EAAgBA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG;AAAA,GACzC,CAAA;AAGM,EAAMgB,aAAA,cAAA,GAAiB,iBAAA;AAAA,CAAA,EAXdA,mBAAA,KAAAA,mBAAA,GAAA,EAAA,CAAA,CAAA;ACFV,IAAM,kBAAkBhB,KAAAA,CAAE,IAAA,CAAK,CAAC,KAAA,EAAO,MAAM,CAAC;AAG9C,IAAM,kBAAkBA,KAAAA,CAAE,IAAA,CAAK,CAAC,OAAA,EAAS,QAAQ,CAAC;AAGlD,IAAM,iBAAA,GAAoBA,MAAE,IAAA,CAAK,CAAC,QAAQ,SAAA,EAAW,QAAA,EAAU,WAAW,CAAC;AAG3E,IAAM,WAAA,GAAcA,MAAE,MAAA,CAAO;AAAA,EACnC,EAAA,EAAI,UAAA;AAAA,EACJ,IAAA,EAAM,eAAA;AAAA,EACN,IAAA,EAAM,eAAA;AAAA,EACN,KAAA,EAAO,iBAAA;AAAA,EACP,QAAA,EAAU,iBAAA;AAAA,EACV,MAAA,EAAQ,iBAAA;AAAA,EACR,SAAA,EAAW,iBAAA;AAAA,EACX,QAAA,EAAU,iBAAA;AAAA,EACV,MAAA,EAAQ,iBAAA;AAAA,EACR,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC;AAGM,IAAM,oBAAA,GAAuBA,MAAE,MAAA,CAAO;AAAA,EAC5C,KAAA,EAAO,iBAAA;AAAA,EACP,QAAA,EAAU,iBAAA;AAAA,EACV,QAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EACrC,KAAA,EAAO;AACR,CAAC;AAGM,IAAM,eAAA,GAAkBA,MAAE,MAAA,CAAO;AAAA,EACvC,KAAA,EAAO,iBAAA;AAAA,EACP,IAAA,EAAMA,KAAAA,CAAE,KAAA,CAAM,oBAAoB,CAAA;AAAA,EAClC,IAAA,EAAMA,KAAAA,CAAE,KAAA,CAAM,oBAAoB,CAAA;AAAA,EAClC,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC;AAGM,IAAM,iBAAA,GAAoBA,MAAE,MAAA,CAAO;AAAA,EACzC,EAAA,EAAI,UAAA;AAAA,EACJ,IAAA,EAAM,eAAA;AAAA,EACN,KAAA,EAAO,iBAAA;AAAA,EACP,SAAA,EAAW,iBAAA;AAAA,EACX,UAAA,EAAY,iBAAA;AAAA,EACZ,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC;ACtCgBiB;AAAA,CAAV,CAAUA,kBAAAA,KAAV;AACC,EAAMA,kBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,oBAAoB,+BAA+B,CAAA;AAE5F,EAAMA,kBAAAA,CAAA,aAAA,GAAgBjB,KAAAA,CAC3B,MAAA,CAAO;AAAA,IACP,IAAA,EAAM,eAAA;AAAA,IACN,IAAA,EAAM,eAAA,CAAgB,OAAA,CAAQ,OAAO,CAAA;AAAA,IACrC,KAAA,EAAO,0BAA0B,QAAA,EAAS;AAAA,IAC1C,QAAA,EAAU,yBAAA;AAAA,IACV,cAAA,EAAgBA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG;AAAA,GACzC,CAAA,CACA,MAAA,CAAO,CAAC,CAAA,KAAM,EAAE,IAAA,KAAS,QAAA,IAAY,CAAA,CAAE,KAAA,KAAU,MAAA,EAAW;AAAA,IAC5D,OAAA,EAAS,qCAAA;AAAA,IACT,IAAA,EAAM,CAAC,OAAO;AAAA,GACd,CAAA;AAGK,EAAMiB,kBAAAA,CAAA,cAAA,GAAiBjB,KAAAA,CAAE,MAAA,CAAO;AAAA,IACtC,KAAA,EAAO,WAAA;AAAA,IACP,MAAA,EAAQA,KAAAA,CAAE,KAAA,CAAM,iBAAiB;AAAA,GACjC,CAAA;AAAA,CAAA,EApBeiB,yBAAA,KAAAA,yBAAA,GAAA,EAAA,CAAA,CAAA;AAwBAC;AAAA,CAAV,CAAUA,mBAAAA,KAAV;AACC,EAAMA,mBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,QAAA,EAAU,wBAAwB,sBAAsB,CAAA;AAEzF,EAAMA,mBAAAA,CAAA,iBAAiBlB,KAAAA,CAAE,MAAA,CAAO,EAAE,SAAA,EAAWA,KAAAA,CAAE,OAAA,EAAQ,EAAG,CAAA;AAAA,CAAA,EAHjDkB,0BAAA,KAAAA,0BAAA,GAAA,EAAA,CAAA,CAAA;AAOAC;AAAA,CAAV,CAAUA,oBAAAA,KAAV;AACC,EAAMA,oBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,oBAAoB,gCAAgC,CAAA;AAE5F,EAAMA,oBAAAA,CAAA,cAAA,GAAiBnB,KAAAA,CAAE,KAAA,CAAM,WAAW,CAAA;AAAA,CAAA,EAHjCmB,2BAAA,KAAAA,2BAAA,GAAA,EAAA,CAAA,CAAA;AAOAC;AAAA,CAAV,CAAUA,oBAAAA,KAAV;AACC,EAAMA,oBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,uBAAuB,wCAAwC,CAAA;AAEvG,EAAMA,qBAAA,cAAA,GAAiB,eAAA;AAAA,CAAA,EAHdA,2BAAA,KAAAA,2BAAA,GAAA,EAAA,CAAA,CAAA;AAOAC;AAAA,CAAV,CAAUA,kBAAAA,KAAV;AACC,EAAMA,kBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,oBAAoB,0BAA0B,CAAA;AAEtF,EAAMA,kBAAAA,CAAA,cAAA,GAAiBrB,KAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA;AAAA,CAAA,EAHvCqB,yBAAA,KAAAA,yBAAA,GAAA,EAAA,CAAA,CAAA;ACnDAC;AAAA,CAAV,CAAUA,mBAAAA,KAAV;AACC,EAAMA,mBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,aAAa,2CAA2C,CAAA;AAEhG,EAAMA,mBAAAA,CAAA,WAAA,GAActB,KAAAA,CAAE,MAAA,CAAO;AAAA,IACnC,MAAA,EAAQ,YAAA,CAAa,OAAA,CAAQ,KAAK;AAAA,GAClC,CAAA;AAGM,EAAMsB,oBAAA,cAAA,GAAiB,sBAAA;AAAA,CAAA,EARdA,0BAAA,KAAAA,0BAAA,GAAA,EAAA,CAAA,CAAA;;;ACFAC;AAAA,CAAV,CAAUA,mBAAAA,KAAV;AACC,EAAMA,oBAAA,eAAA,GAAkB,QAAA;AAAA,IAC9B,KAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACD;AAEO,EAAMA,oBAAA,cAAA,GAAiB,sBAAA;AAAA,CAAA,EAPdA,0BAAA,KAAAA,0BAAA,GAAA,EAAA,CAAA,CAAA;ACCAC;AAAA,CAAV,CAAUA,kBAAAA,KAAV;AACC,EAAMA,mBAAA,eAAA,GAAkB,QAAA;AAAA,IAC9B,MAAA;AAAA,IACA,mBAAA;AAAA,IACA;AAAA,GACD;AAEO,EAAMA,kBAAAA,CAAA,aAAA,GAAgBxB,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,cAAA,EAAgBA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG;AAAA,GACzC,CAAA;AAGM,EAAMwB,kBAAAA,CAAA,cAAA,GAAiBxB,KAAAA,CAAE,MAAA,CAAO;AAAA,IACtC,UAAA,EAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,IAC5B,QAAA,EAAU,iBAAA;AAAA,IACV,SAAA,EAAW,iBAAA;AAAA,IACX,UAAA,EAAY;AAAA,GACZ,CAAA;AAAA,CAAA,EAjBewB,yBAAA,KAAAA,yBAAA,GAAA,EAAA,CAAA,CAAA;;;ACDAC;AAAA,CAAV,CAAUA,iBAAAA,KAAV;AACC,EAAMA,kBAAA,eAAA,GAAkB,QAAA;AAAA,IAC9B,KAAA;AAAA,IACA,iBAAA;AAAA,IACA;AAAA,GACD;AAEO,EAAMA,kBAAA,cAAA,GAAiB,oBAAA;AAAA,CAAA,EAPdA,wBAAA,KAAAA,wBAAA,GAAA,EAAA,CAAA,CAAA;ACCAC;AAAA,CAAV,CAAUA,gBAAAA,KAAV;AACC,EAAMA,gBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,UAAU,qBAAqB,CAAA;AAEvE,EAAMA,gBAAAA,CAAA,cAAA,GAAiB1B,KAAAA,CAAE,MAAA,CAAO;AAAA,IACtC,KAAA,EAAOA,KAAAA,CAAE,KAAA,CAAM,aAAa;AAAA,GAC5B,CAAA;AAAA,CAAA,EALe0B,uBAAA,KAAAA,uBAAA,GAAA,EAAA,CAAA,CAAA;;;ACDAC;AAAA,CAAV,CAAUA,mBAAAA,KAAV;AACC,EAAMA,mBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,aAAa,oDAAoD,CAAA;AAEzG,EAAMA,oBAAA,cAAA,GAAiB,sBAAA;AAAA,CAAA,EAHdA,0BAAA,KAAAA,0BAAA,GAAA,EAAA,CAAA,CAAA;ACGAC;AAAA,CAAV,CAAUA,yBAAAA,KAAV;AACC,EAAMA,yBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,gBAAgB,6CAA6C,CAAA;AAEtG,EAAMA,yBAAAA,CAAA,aAAA,GAAgB5B,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,KAAA,EAAO,sBAAA;AAAA,IACP,MAAA,EAAQ,yBAAA;AAAA,IACR,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,IAClC,MAAMA,KAAAA,CACJ,MAAA,GACA,KAAA,CAAM,SAAS,EACf,QAAA,EAAS;AAAA,IACX,cAAA,EAAgBA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG;AAAA,GACzC,CAAA;AAGM,EAAM4B,yBAAAA,CAAA,cAAA,GAAiB5B,KAAAA,CAAE,MAAA,CAAO;AAAA,IACtC,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,IAC9B,MAAA,EAAQ;AAAA,GACR,CAAA;AAAA,CAAA,EAlBe4B,gCAAA,KAAAA,gCAAA,GAAA,EAAA,CAAA,CAAA;AAsBAC;AAAA,CAAV,CAAUA,uBAAAA,KAAV;AACC,EAAMA,uBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,gBAAgB,2BAA2B,CAAA;AAEnF,EAAMA,uBAAAA,CAAA,cAAA,GAAiB7B,KAAAA,CAAE,MAAA,CAAO;AAAA,IACtC,KAAA,EAAOA,KAAAA,CAAE,KAAA,CAAM,gBAAgB;AAAA,GAC/B,CAAA;AAAA,CAAA,EALe6B,8BAAA,KAAAA,8BAAA,GAAA,EAAA,CAAA,CAAA;AASAC;AAAA,CAAV,CAAUA,wBAAAA,KAAV;AACC,EAAMA,wBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,2BAA2B,6BAA6B,CAAA;AAEjG,EAAMA,wBAAAA,CAAA,cAAA,GAAiB9B,KAAAA,CAAE,MAAA,CAAO;AAAA,IACtC,MAAA,EAAQ;AAAA,GACR,CAAA;AAAA,CAAA,EALe8B,+BAAA,KAAAA,+BAAA,GAAA,EAAA,CAAA,CAAA;AASAC;AAAA,CAAV,CAAUA,yBAAAA,KAAV;AACC,EAAMA,0BAAA,eAAA,GAAkB,QAAA;AAAA,IAC9B,MAAA;AAAA,IACA,0BAAA;AAAA,IACA;AAAA,GACD;AAEO,EAAMA,yBAAAA,CAAA,aAAA,GAAgB/B,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG;AAAA,GAChC,CAAA;AAGM,EAAM+B,yBAAAA,CAAA,cAAA,GAAiB/B,KAAAA,CAAE,MAAA,CAAO;AAAA,IACtC,MAAA,EAAQ;AAAA,GACR,CAAA;AAAA,CAAA,EAde+B,gCAAA,KAAAA,gCAAA,GAAA,EAAA,CAAA,CAAA;ACzCV,IAAM,oBAAA,GAAuB,CAAC,WAAA,EAAa,YAAA,EAAc,cAAc,WAAW;AAClF,IAAM,uBAAA,GAA0B/B,KAAAA,CAAE,IAAA,CAAK,oBAAoB;AAEjDgC;AAAA,CAAV,CAAUA,0BAAAA,KAAV;AACC,EAAMA,0BAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,2BAA2B,sCAAsC,CAAA;AAE1G,EAAMA,0BAAAA,CAAA,aAAA,GAAgBhC,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,UAAUA,KAAAA,CAAE,MAAA,GAAS,KAAA,EAAM,CAAE,IAAI,GAAG;AAAA,GACpC,CAAA;AAGM,EAAMgC,0BAAAA,CAAA,iBAAiBhC,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAMA,KAAAA,CAAE,OAAA,EAAQ,EAAG,CAAA;AAAA,CAAA,EAR5CgC,iCAAA,KAAAA,iCAAA,GAAA,EAAA,CAAA,CAAA;AAYAC;AAAA,CAAV,CAAUA,0BAAAA,KAAV;AACC,EAAMA,0BAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,2BAA2B,uCAAuC,CAAA;AAE3G,EAAMA,0BAAAA,CAAA,aAAA,GAAgBjC,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,MAAM,SAAS,CAAA;AAAA,IAChC,MAAMA,KAAAA,CACJ,MAAA,GACA,KAAA,CAAM,SAAS,EACf,QAAA;AAAS,GACX,CAAA;AAGM,EAAMiC,0BAAAA,CAAA,cAAA,GAAiBjC,KAAAA,CAAE,MAAA,CAAO,EAAE,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,EAAM,EAAG,CAAA;AAAA,CAAA,EAZpDiC,iCAAA,KAAAA,iCAAA,GAAA,EAAA,CAAA,CAAA;AAgBAC;AAAA,CAAV,CAAUA,mBAAAA,KAAV;AACC,EAAMA,mBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,sBAAsB,8BAA8B,CAAA;AAE7F,EAAMA,mBAAAA,CAAA,aAAA,GAAgBlC,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,MAAM,SAAS;AAAA,GAChC,CAAA;AAGM,EAAMkC,mBAAAA,CAAA,cAAA,GAAiBlC,KAAAA,CAAE,IAAA,EAAK;AAAA,CAAA,EARrBkC,0BAAA,KAAAA,0BAAA,GAAA,EAAA,CAAA,CAAA;AAYAC;AAAA,CAAV,CAAUA,qBAAAA,KAAV;AACC,EAAMA,qBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,OAAA,EAAS,qBAAqB,gCAAgC,CAAA;AAE/F,EAAMA,qBAAAA,CAAA,aAAA,GAAgBnC,KAAAA,CAC3B,MAAA,CAAO;AAAA,IACP,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,EAAS;AAAA,IAC3D,SAAA,EAAWA,MAAE,MAAA,EAAO,CAAE,IAAI,GAAG,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA;AAAS,GACnD,CAAA,CACA,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,WAAA,KAAgB,MAAA,IAAa,CAAA,CAAE,SAAA,KAAc,MAAA,EAAW,qBAAqB,CAAA;AAGxF,EAAMmC,sBAAA,cAAA,GAAiB,iBAAA;AAAA,CAAA,EAXdA,4BAAA,KAAAA,4BAAA,GAAA,EAAA,CAAA,CAAA;AAeAC;AAAA,CAAV,CAAUA,uBAAAA,KAAV;AACC,EAAMA,uBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,+BAA+B,mCAAmC,CAAA;AAE3G,EAAMA,uBAAAA,CAAA,aAAA,GAAgBpC,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,WAAA,EAAa;AAAA,GACb,CAAA;AAGM,EAAMoC,uBAAAA,CAAA,cAAA,GAAiBpC,KAAAA,CAAE,MAAA,CAAO;AAAA,IACtC,GAAA,EAAKA,MAAE,MAAA,EAAO;AAAA,IACd,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI;AAAA,IAC1B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI;AAAA,IAC1B,cAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,IACxC,UAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA;AAAS,GACpC,CAAA;AAAA,CAAA,EAdeoC,8BAAA,KAAAA,8BAAA,GAAA,EAAA,CAAA,CAAA;AAkBAC;AAAA,CAAV,CAAUA,mBAAAA,KAAV;AACC,EAAMA,mBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,aAAa,sBAAsB,CAAA;AAE3E,EAAMA,oBAAA,cAAA,GAAiB,kBAAA;AAAA,CAAA,EAHdA,0BAAA,KAAAA,0BAAA,GAAA,EAAA,CAAA,CAAA;AAOAC;AAAA,CAAV,CAAUA,sBAAAA,KAAV;AACC,EAAMA,sBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,OAAA,EAAS,aAAa,yBAAyB,CAAA;AAEhF,EAAMA,sBAAAA,CAAA,aAAA,GAAgBtC,KAAAA,CAC3B,MAAA,CAAO;AAAA,IACP,YAAA,EAAcA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,IACnC,aAAA,EAAeA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,IACpC,sBAAA,EAAwBA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,GAC7C,CAAA,CACA,MAAA,CAAO,CAAC,CAAA,KAAM,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,CAAE,MAAA,GAAS,CAAA,EAAG,qBAAqB,CAAA;AAGzD,EAAMsC,uBAAA,cAAA,GAAiB,kBAAA;AAAA,CAAA,EAZdA,6BAAA,KAAAA,6BAAA,GAAA,EAAA,CAAA,CAAA;;;ACpFAC;AAAA,CAAV,CAAUA,qBAAAA,KAAV;AACC,EAAMA,qBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,gBAAgB,uCAAuC,CAAA;AAE/F,EAAMA,sBAAA,cAAA,GAAiB,sBAAA;AAAA,CAAA,EAHdA,4BAAA,KAAAA,4BAAA,GAAA,EAAA,CAAA,CAAA;AAOAC;AAAA,CAAV,CAAUA,uBAAAA,KAAV;AACC,EAAMA,uBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,sBAAsB,2BAA2B,CAAA;AAE1F,EAAMA,wBAAA,cAAA,GAAiB,2BAAA;AAAA,CAAA,EAHdA,8BAAA,KAAAA,8BAAA,GAAA,EAAA,CAAA,CAAA;ACPAC;AAAA,CAAV,CAAUA,sBAAAA,KAAV;AACC,EAAMA,sBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,gBAAgB,yCAAyC,CAAA;AAEjG,EAAMA,sBAAAA,CAAA,WAAA,GAAczC,KAAAA,CAAE,MAAA,CAAO;AAAA,IACnC,MAAA,EAAQ,uBAAA,CAAwB,OAAA,CAAQ,OAAO,CAAA;AAAA,IAC/C,KAAA,EAAOA,KAAAA,CAAE,MAAA,CAAO,MAAA,GAAS,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAQ,EAAE;AAAA,GACzD,CAAA;AAGM,EAAMyC,uBAAA,cAAA,GAAiB,iBAAA;AAAA,CAAA,EATdA,6BAAA,KAAAA,6BAAA,GAAA,EAAA,CAAA,CAAA;ACAAC;AAAA,CAAV,CAAUA,iBAAAA,KAAV;AACC,EAAMA,iBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,WAAW,oDAAoD,CAAA;AAEvG,EAAMA,iBAAAA,CAAA,WAAA,GAAc1C,KAAAA,CAAE,MAAA,CAAO;AAAA,IACnC,MAAA,EAAQ,kBAAA,CAAmB,OAAA,CAAQ,OAAO;AAAA,GAC1C,CAAA;AAGM,EAAM0C,kBAAA,cAAA,GAAiB,oBAAA;AAAA,CAAA,EARdA,wBAAA,KAAAA,wBAAA,GAAA,EAAA,CAAA,CAAA;ACCAC;AAAA,CAAV,CAAUA,yBAAAA,KAAV;AACC,EAAMA,yBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,kBAAkB,2BAA2B,CAAA;AAErF,EAAMA,yBAAAA,CAAA,WAAA,GAAc,qBAAA,CAAsB,MAAA,CAAO;AAAA,IACvD,UAAA,EAAY3C,MACV,KAAA,CAAM,CAACA,MAAE,OAAA,EAAQ,EAAGA,KAAAA,CAAE,MAAA,EAAQ,CAAC,EAC/B,QAAA,EAAS,CACT,UAAU,CAAC,CAAA,KAAM,MAAM,IAAA,IAAQ,CAAA,KAAM,MAAA,IAAU,CAAA,KAAM,GAAG;AAAA,GAC1D,CAAA;AAGM,EAAM2C,yBAAAA,CAAA,cAAA,GAAiB,eAAA,CAAgB,kBAAkB,EAAE,MAAA,CAAO;AAAA,IACxE,QAAQ3C,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA;AAAY,GACrC,CAAA;AAAA,CAAA,EAbe2C,gCAAA,KAAAA,gCAAA,GAAA,EAAA,CAAA,CAAA;AAiBAC;AAAA,CAAV,CAAUA,6BAAAA,KAAV;AACC,EAAMA,6BAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,uBAAuB,4BAA4B,CAAA;AAE5F,EAAMA,6BAAAA,CAAA,aAAA,GAAgB5C,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,GAAA,EAAKA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAM,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,IAClD,GAAA,EAAKA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,GAC1B,CAAA;AAGM,EAAM4C,6BAAAA,CAAA,cAAA,GAAiB5C,KAAAA,CAAE,MAAA,CAAO,EAAE,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,WAAA,IAAe,CAAA;AAAA,CAAA,EATlE4C,oCAAA,KAAAA,oCAAA,GAAA,EAAA,CAAA,CAAA;AClBAC;AAAA,CAAV,CAAUA,0BAAAA,KAAV;AACC,EAAMA,0BAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,mBAAmB,+BAA+B,CAAA;AAE1F,EAAMA,0BAAAA,CAAA,cAAA,GAAiB7C,KAAAA,CAAE,MAAA,CAAO,EAAE,OAAOA,KAAAA,CAAE,KAAA,CAAM,mBAAmB,CAAA,EAAG,CAAA;AAAA,CAAA,EAH9D6C,iCAAA,KAAAA,iCAAA,GAAA,EAAA,CAAA,CAAA;AAOAC;AAAA,CAAV,CAAUA,oBAAAA,KAAV;AACC,EAAMA,qBAAA,eAAA,GAAkB,QAAA;AAAA,IAC9B,MAAA;AAAA,IACA,yBAAA;AAAA,IACA;AAAA,GACD;AAEO,EAAMA,oBAAAA,CAAA,aAAA,GAAgB9C,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,EAAA,EAAIA,KAAAA,CAAE,KAAA,CAAM,CAACA,KAAAA,CAAE,QAAO,EAAGA,KAAAA,CAAE,MAAA,EAAQ,CAAC,CAAA;AAAA,IACpC,SAAA,EAAWA,KAAAA,CAAE,KAAA,CAAM,CAACA,KAAAA,CAAE,QAAO,EAAGA,KAAAA,CAAE,MAAA,EAAQ,CAAC,CAAA;AAAA,IAC3C,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,IACf,UAAA,EAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAChC,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC9B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC/B,CAAA;AAGM,EAAM8C,qBAAA,cAAA,GAAiB,mBAAA;AAAA,CAAA,EAlBdA,2BAAA,KAAAA,2BAAA,GAAA,EAAA,CAAA,CAAA;AAsBAC;AAAA,CAAV,CAAUA,kBAAAA,KAAV;AACC,EAAMA,kBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,yBAAyB,kCAAkC,CAAA;AAEpG,EAAMA,kBAAAA,CAAA,aAAA,GAAgB/C,KAAAA,CAAE,MAAA,CAAO,EAAE,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,EAAE,CAAA,EAAG,CAAA;AAG9D,EAAM+C,mBAAA,cAAA,GAAiB,mBAAA;AAAA,CAAA,EANdA,yBAAA,KAAAA,yBAAA,GAAA,EAAA,CAAA,CAAA;AAUAC;AAAA,CAAV,CAAUA,qBAAAA,KAAV;AACC,EAAMA,qBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,QAAA,EAAU,4BAA4B,4BAA4B,CAAA;AAEnG,EAAMA,sBAAA,YAAA,GAAehD,KAAAA,CAAE,OAAO,EAAE,QAAA,EAAU,oBAAoB,CAAA;AAG9D,EAAMgD,qBAAAA,CAAA,cAAA,GAAiBhD,KAAAA,CAAE,IAAA,EAAK;AAAA,CAAA,EANrBgD,4BAAA,KAAAA,4BAAA,GAAA,EAAA,CAAA,CAAA;ACzCV,IAAM,oBAAoB,CAAC,SAAA,EAAW,WAAW,YAAA,EAAc,SAAA,EAAW,YAAY,OAAO;AAC7F,IAAM,oBAAA,GAAuBhD,KAAAA,CAAE,IAAA,CAAK,iBAAiB;AAGrD,IAAM,kBAAA,GAAqBA,MAAE,IAAA,CAAK,CAAC,QAAQ,SAAA,EAAW,UAAA,EAAY,UAAU,CAAC;AAG7E,IAAM,yBAAyBA,KAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,SAAS,CAAC;AAGzD,IAAM,gBAAA,GAAmBA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAK;AAEpD,IAAM,sBAAA,GAAyBA,MAAE,MAAA,CAAO;AAAA,EAC9C,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACpB,QAAA,EAAUA,MAAE,MAAA,EAAO;AAAA,EACnB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,EACtB,WAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EACxC,GAAA,EAAKA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA;AACjB,CAAC;AAGM,IAAM,mBAAA,GAAsBA,MAAE,MAAA,CAAO;AAAA,EAC3C,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACpB,UAAA,EAAY,sBAAA;AAAA,EACZ,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,WAAA,EAAaA,KAAAA,CAAE,KAAA,CAAM,sBAAsB,CAAA;AAAA,EAC3C,SAAA,EAAWA,MAAE,MAAA;AACd,CAAC;AAGM,IAAM,mBAAA,GAAsBA,MAAE,MAAA,CAAO;AAAA,EAC3C,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACpB,QAAA,EAAU,oBAAA;AAAA,EACV,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,EAChB,MAAA,EAAQ,kBAAA;AAAA,EACR,aAAA,EAAeA,MAAE,MAAA,EAAO;AAAA,EACxB,SAAA,EAAWA,MAAE,MAAA;AACd,CAAC;AAGM,IAAM,kBAAA,GAAqB,oBAAoB,MAAA,CAAO;AAAA,EAC5D,QAAA,EAAUA,KAAAA,CAAE,KAAA,CAAM,mBAAmB;AACtC,CAAC;AAGM,IAAM,2BAAA,GAA8BA,MAAE,MAAA,CAAO;AAAA,EACnD,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAClC,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACnC,WAAA,EAAaA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACtC,SAAA,EAAWA,KAAAA,CACT,MAAA,EAAO,CACP,GAAA,EAAI,CACJ,QAAA,EAAS,CACT,GAAA,CAAI,EAAA,GAAK,IAAA,GAAO,IAAI;AACvB,CAAC;AC9CD,IAAM,iBAAA,GAAoBA,MAAE,KAAA,CAAM,2BAA2B,EAAE,GAAA,CAAI,EAAE,EAAE,QAAA,EAAS;AAE/DiD;AAAA,CAAV,CAAUA,mBAAAA,KAAV;AACC,EAAMA,mBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,YAAY,+BAA+B,CAAA;AACnF,EAAMA,mBAAAA,CAAA,cAAA,GAAiBjD,KAAAA,CAAE,MAAA,CAAO,EAAE,OAAOA,KAAAA,CAAE,KAAA,CAAM,mBAAmB,CAAA,EAAG,CAAA;AAAA,CAAA,EAF9DiD,0BAAA,KAAAA,0BAAA,GAAA,EAAA,CAAA,CAAA;AAMAC;AAAA,CAAV,CAAUA,iBAAAA,KAAV;AACC,EAAMA,iBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,KAAA,EAAO,gBAAgB,sCAAsC,CAAA;AAC9F,EAAMA,kBAAA,cAAA,GAAiB,kBAAA;AAAA,CAAA,EAFdA,wBAAA,KAAAA,wBAAA,GAAA,EAAA,CAAA,CAAA;AAMAC;AAAA,CAAV,CAAUA,oBAAAA,KAAV;AACC,EAAMA,oBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,YAAY,2BAA2B,CAAA;AAChF,EAAMA,oBAAAA,CAAA,aAAA,GAAgBnD,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,QAAA,EAAU,oBAAA;AAAA,IACV,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,IAChC,IAAA,EAAM,gBAAA;AAAA,IACN,WAAA,EAAa;AAAA,GACb,CAAA;AAEM,EAAMmD,qBAAA,cAAA,GAAiB,kBAAA;AAAA,CAAA,EATdA,2BAAA,KAAAA,2BAAA,GAAA,EAAA,CAAA,CAAA;AAaAC;AAAA,CAAV,CAAUA,mBAAAA,KAAV;AACC,EAAMA,mBAAAA,CAAA,eAAA,GAAkB,QAAA,CAAS,MAAA,EAAQ,yBAAyB,mBAAmB,CAAA;AACrF,EAAMA,mBAAAA,CAAA,aAAA,GAAgBpD,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,IAAA,EAAM,gBAAA;AAAA,IACN,WAAA,EAAa;AAAA,GACb,CAAA;AAEM,EAAMoD,oBAAA,cAAA,GAAiB,kBAAA;AAAA,CAAA,EAPdA,0BAAA,KAAAA,0BAAA,GAAA,EAAA,CAAA,CAAA;AAWAC;AAAA,CAAV,CAAUA,8BAAAA,KAAV;AACC,EAAMA,+BAAA,eAAA,GAAkB,QAAA;AAAA,IAC9B,MAAA;AAAA,IACA,iCAAA;AAAA,IACA;AAAA,GACD;AACO,EAAMA,8BAAAA,CAAA,aAAA,GAAgBrD,KAAAA,CAAE,MAAA,CAAO;AAAA,IACrC,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,IACnC,WAAA,EAAaA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,IACtC,SAAA,EAAWA,KAAAA,CACT,MAAA,EAAO,CACP,GAAA,EAAI,CACJ,QAAA,EAAS,CACT,GAAA,CAAI,EAAA,GAAK,IAAA,GAAO,IAAI;AAAA,GACtB,CAAA;AAEM,EAAMqD,8BAAAA,CAAA,cAAA,GAAiBrD,KAAAA,CAAE,MAAA,CAAO;AAAA,IACtC,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI;AAAA,IAC1B,OAAA,EAASA,MAAE,MAAA;AAAO,GAClB,CAAA;AAAA,CAAA,EAnBeqD,qCAAA,KAAAA,qCAAA,GAAA,EAAA,CAAA,CAAA;;;AChDV,IAAM,QAAA,GAAW;AAAA,EACvB,IAAA,EAAM;AAAA,IACL,QAAA,EAAU,gBAAA;AAAA,IACV,KAAA,EAAO,aAAA;AAAA,IACP,MAAA,EAAQ,cAAA;AAAA,IACR,EAAA,EAAI,UAAA;AAAA,IACJ,UAAA,EAAY,kBAAA;AAAA,IACZ,YAAA,EAAc,oBAAA;AAAA,IACd,YAAA,EAAc,oBAAA;AAAA,IACd,mBAAA,EAAqB,2BAAA;AAAA,IACrB,eAAA,EAAiB,uBAAA;AAAA,IACjB,cAAA,EAAgB;AAAA,GACjB;AAAA,EACA,MAAA,EAAQ;AAAA,IACP,QAAA,EAAU,SAAA;AAAA,IACV,YAAA,EAAc,sBAAA;AAAA,IACd,eAAA,EAAiB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACN,KAAA,EAAO,cAAA;AAAA,IACP,KAAA,EAAO;AAAA,GACR;AAAA,EACA,IAAA,EAAM;AAAA,IACL,OAAA,EAAS;AAAA,GACV;AAAA,EACA,QAAA,EAAU;AAAA,IACT,SAAA,EAAW,qBAAA;AAAA,IACX,MAAA,EAAQ,kBAAA;AAAA,IACR,MAAA,EAAQ,kBAAA;AAAA,IACR,KAAA,EAAO;AAAA,GACR;AAAA,EACA,QAAA,EAAU;AAAA,IACT,QAAA,EAAU;AAAA,GACX;AAAA,EACA,QAAA,EAAU;AAAA,IACT,QAAA,EAAU,WAAA;AAAA,IACV,GAAA,EAAK;AAAA,GACN;AAAA,EACA,OAAA,EAAS;AAAA,IACR,MAAA,EAAQ;AAAA,GACT;AAAA,EACA,KAAA,EAAO;AAAA,IACN,IAAA,EAAM;AAAA,GACP;AAAA,EACA,QAAA,EAAU;AAAA,IACT,QAAA,EAAU;AAAA,GACX;AAAA,EACA,WAAA,EAAa;AAAA,IACZ,OAAA,EAAS,cAAA;AAAA,IACT,IAAA,EAAM,cAAA;AAAA,IACN,MAAA,EAAQ,yBAAA;AAAA,IACR,OAAA,EAAS;AAAA,GACV;AAAA,EACA,QAAA,EAAU;AAAA,IACT,aAAA,EAAe,yBAAA;AAAA,IACf,aAAA,EAAe,yBAAA;AAAA,IACf,YAAA,EAAc,oBAAA;AAAA,IACd,OAAA,EAAS,mBAAA;AAAA,IACT,iBAAA,EAAmB,6BAAA;AAAA,IACnB,WAAA,EAAa,WAAA;AAAA,IACb,KAAA,EAAO,iBAAA;AAAA,IACP,aAAA,EAAe,yBAAA;AAAA,IACf,WAAA,EAAa,uBAAA;AAAA,IACb,MAAA,EAAQ;AAAA,GACT;AAAA,EACA,KAAA,EAAO;AAAA,IACN,KAAA,EAAO,cAAA;AAAA,IACP,WAAA,EAAa;AAAA,GACd;AAAA,EACA,WAAA,EAAa;AAAA,IACZ,QAAA,EAAU;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACP,QAAA,EAAU;AAAA,GACX;AAAA,EACA,aAAA,EAAe;AAAA,IACd,IAAA,EAAM,gBAAA;AAAA,IACN,IAAA,EAAM;AAAA,GACP;AAAA,EACA,OAAA,EAAS;AAAA,IACR,IAAA,EAAM,UAAA;AAAA,IACN,MAAA,EAAQ,UAAA;AAAA,IACR,GAAA,EAAK,cAAA;AAAA,IACL,KAAA,EAAO,uBAAA;AAAA,IACP,qBAAA,EAAuB;AAAA;AAEzB;AAEO,IAAM,UAAA,GAAa;AACnB,IAAM,WAAA,GAAc","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\tEMAIL_NOT_VERIFIED: 'EMAIL_NOT_VERIFIED',\n\tEMAIL_ALREADY_VERIFIED: 'EMAIL_ALREADY_VERIFIED',\n\tTOKEN_INVALID: 'TOKEN_INVALID',\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 { z } from 'zod';\nimport { endpoint } from '../command.types';\n\nexport namespace VerifyEmailCommand {\n\texport const endpointDetails = endpoint(\n\t\t'POST',\n\t\t'/auth/verify-email',\n\t\t'Confirm an email address with the token from the letter',\n\t);\n\n\texport const RequestSchema = z.object({\n\t\ttoken: z.string().min(16).max(256),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({ verified: z.boolean() });\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ResendVerificationCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/verify-email/resend', 'Send the verification letter again');\n\n\texport const RequestSchema = z.object({\n\t\temail: 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","import { z } from 'zod';\nimport { endpoint } from '../command.types';\n\nexport namespace ForgotPasswordCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/password/forgot', 'Send a password reset link');\n\n\texport const RequestSchema = z.object({\n\t\temail: 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 ResetPasswordCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/password/reset', 'Set a new password using the reset token');\n\n\texport const RequestSchema = z.object({\n\t\ttoken: z.string().min(16).max(256),\n\t\tpassword: z.string().min(8).max(128),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({ reset: z.boolean() });\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(\n\t\t'GET',\n\t\t'/content/slides',\n\t\t'Active dashboard carousel slides in display order',\n\t);\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\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({ 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\tVERIFY_EMAIL: '/auth/verify-email',\n\t\tRESEND_VERIFICATION: '/auth/verify-email/resend',\n\t\tFORGOT_PASSWORD: '/auth/password/forgot',\n\t\tRESET_PASSWORD: '/auth/password/reset',\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"]}
|
|
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/auth/verification.command.ts","../src/commands/auth/password-reset.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/packages/upgrade-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","VerifyEmailCommand","ResendVerificationCommand","ForgotPasswordCommand","ResetPasswordCommand","GetWalletCommand","GetTransactionsCommand","DepositAddressCommand","GetTokenPriceCommand","GetTokenChartCommand","SwapCommand","PlaceOrderCommand","CancelOrderCommand","ListMyOrdersCommand","GetOrderBookCommand","ListTradesCommand","GetPartnersCommand","GetPackagesCommand","BuyPackageCommand","UpgradePackageCommand","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\tEMAIL_NOT_VERIFIED: 'EMAIL_NOT_VERIFIED',\n\tEMAIL_ALREADY_VERIFIED: 'EMAIL_ALREADY_VERIFIED',\n\tTOKEN_INVALID: 'TOKEN_INVALID',\n\n\tINSUFFICIENT_BALANCE: 'INSUFFICIENT_BALANCE',\n\tPURCHASE_LIMIT_EXCEEDED: 'PURCHASE_LIMIT_EXCEEDED',\n\tPURCHASE_CAP_EXCEEDED: 'PURCHASE_CAP_EXCEEDED',\n\tDAILY_PURCHASE_LIMIT: 'DAILY_PURCHASE_LIMIT',\n\tTOKENS_FROZEN: 'TOKENS_FROZEN',\n\tSELL_WINDOW_EXCEEDED: 'SELL_WINDOW_EXCEEDED',\n\tUPGRADE_NOT_AVAILABLE: 'UPGRADE_NOT_AVAILABLE',\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 TradeLimitsSchema = z.object({\n\tpurchasedUsd: MoneyStringSchema,\n\tpurchaseCapUsd: MoneyStringSchema.nullable(),\n\tcapRemainingUsd: MoneyStringSchema.nullable(),\n\tpurchasesToday: z.number().int().nonnegative(),\n\tdailyPurchaseLimit: z.number().int().nonnegative().nullable(),\n\tfreezeDays: z.number().int().nonnegative().nullable(),\n\tfrozenNmn: MoneyStringSchema,\n\tsellableNmn: MoneyStringSchema,\n\twindowDays: z.number().int().nonnegative().nullable(),\n\twindowUsd: MoneyStringSchema.nullable(),\n\twindowRemainingUsd: MoneyStringSchema.nullable(),\n\twindowOpensAt: z.string().datetime().nullable(),\n});\nexport type TradeLimits = z.infer<typeof TradeLimitsSchema>;\n\nexport const PackagesOverviewSchema = z.object({\n\tpackages: z.array(PackageSchema),\n\tlimits: TradeLimitsSchema,\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 { z } from 'zod';\nimport { endpoint } from '../command.types';\n\nexport namespace VerifyEmailCommand {\n\texport const endpointDetails = endpoint(\n\t\t'POST',\n\t\t'/auth/verify-email',\n\t\t'Confirm an email address with the token from the letter',\n\t);\n\n\texport const RequestSchema = z.object({\n\t\ttoken: z.string().min(16).max(256),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({ verified: z.boolean() });\n\texport type Response = z.infer<typeof ResponseSchema>;\n}\n\nexport namespace ResendVerificationCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/verify-email/resend', 'Send the verification letter again');\n\n\texport const RequestSchema = z.object({\n\t\temail: 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","import { z } from 'zod';\nimport { endpoint } from '../command.types';\n\nexport namespace ForgotPasswordCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/password/forgot', 'Send a password reset link');\n\n\texport const RequestSchema = z.object({\n\t\temail: 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 ResetPasswordCommand {\n\texport const endpointDetails = endpoint('POST', '/auth/password/reset', 'Set a new password using the reset token');\n\n\texport const RequestSchema = z.object({\n\t\ttoken: z.string().min(16).max(256),\n\t\tpassword: z.string().min(8).max(128),\n\t});\n\texport type Request = z.infer<typeof RequestSchema>;\n\n\texport const ResponseSchema = z.object({ reset: z.boolean() });\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 { MoneyStringSchema } from '../../models/shared.model';\nimport { endpoint } from '../command.types';\n\nexport namespace UpgradePackageCommand {\n\texport const endpointDetails = endpoint(\n\t\t'POST',\n\t\t'/packages/:id/upgrade',\n\t\t'Upgrade to a higher tier by topping up the difference between it and what was already invested',\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\ttopUpUsd: MoneyStringSchema,\n\t\ttierPriceUsd: 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(\n\t\t'GET',\n\t\t'/content/slides',\n\t\t'Active dashboard carousel slides in display order',\n\t);\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\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({ 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\tVERIFY_EMAIL: '/auth/verify-email',\n\t\tRESEND_VERIFICATION: '/auth/verify-email/resend',\n\t\tFORGOT_PASSWORD: '/auth/password/forgot',\n\t\tRESET_PASSWORD: '/auth/password/reset',\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\tUPGRADE: '/packages/:id/upgrade',\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"]}
|