@0xmonaco/types 0.0.0-develop-20260120180031

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/README.md +391 -0
  2. package/dist/api/index.d.ts +19 -0
  3. package/dist/api/index.d.ts.map +1 -0
  4. package/dist/api/index.js +8 -0
  5. package/dist/api/index.js.map +1 -0
  6. package/dist/applications/index.d.ts +24 -0
  7. package/dist/applications/index.d.ts.map +1 -0
  8. package/dist/applications/index.js +7 -0
  9. package/dist/applications/index.js.map +1 -0
  10. package/dist/applications/responses.d.ts +21 -0
  11. package/dist/applications/responses.d.ts.map +1 -0
  12. package/dist/applications/responses.js +7 -0
  13. package/dist/applications/responses.js.map +1 -0
  14. package/dist/auth/index.d.ts +76 -0
  15. package/dist/auth/index.d.ts.map +1 -0
  16. package/dist/auth/index.js +8 -0
  17. package/dist/auth/index.js.map +1 -0
  18. package/dist/auth/responses.d.ts +68 -0
  19. package/dist/auth/responses.d.ts.map +1 -0
  20. package/dist/auth/responses.js +7 -0
  21. package/dist/auth/responses.js.map +1 -0
  22. package/dist/contracts/balances.d.ts +44 -0
  23. package/dist/contracts/balances.d.ts.map +1 -0
  24. package/dist/contracts/balances.js +7 -0
  25. package/dist/contracts/balances.js.map +1 -0
  26. package/dist/contracts/index.d.ts +28 -0
  27. package/dist/contracts/index.d.ts.map +1 -0
  28. package/dist/contracts/index.js +7 -0
  29. package/dist/contracts/index.js.map +1 -0
  30. package/dist/fees/index.d.ts +40 -0
  31. package/dist/fees/index.d.ts.map +1 -0
  32. package/dist/fees/index.js +7 -0
  33. package/dist/fees/index.js.map +1 -0
  34. package/dist/fees/responses.d.ts +47 -0
  35. package/dist/fees/responses.d.ts.map +1 -0
  36. package/dist/fees/responses.js +62 -0
  37. package/dist/fees/responses.js.map +1 -0
  38. package/dist/index.d.ts +19 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +20 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/market/index.d.ts +224 -0
  43. package/dist/market/index.d.ts.map +1 -0
  44. package/dist/market/index.js +7 -0
  45. package/dist/market/index.js.map +1 -0
  46. package/dist/profile/index.d.ts +228 -0
  47. package/dist/profile/index.d.ts.map +1 -0
  48. package/dist/profile/index.js +7 -0
  49. package/dist/profile/index.js.map +1 -0
  50. package/dist/sdk/index.d.ts +122 -0
  51. package/dist/sdk/index.d.ts.map +1 -0
  52. package/dist/sdk/index.js +2 -0
  53. package/dist/sdk/index.js.map +1 -0
  54. package/dist/sdk/network.d.ts +31 -0
  55. package/dist/sdk/network.d.ts.map +1 -0
  56. package/dist/sdk/network.js +7 -0
  57. package/dist/sdk/network.js.map +1 -0
  58. package/dist/trading/index.d.ts +88 -0
  59. package/dist/trading/index.d.ts.map +1 -0
  60. package/dist/trading/index.js +7 -0
  61. package/dist/trading/index.js.map +1 -0
  62. package/dist/trading/orders.d.ts +108 -0
  63. package/dist/trading/orders.d.ts.map +1 -0
  64. package/dist/trading/orders.js +7 -0
  65. package/dist/trading/orders.js.map +1 -0
  66. package/dist/trading/responses.d.ts +130 -0
  67. package/dist/trading/responses.d.ts.map +1 -0
  68. package/dist/trading/responses.js +7 -0
  69. package/dist/trading/responses.js.map +1 -0
  70. package/dist/validation/common.d.ts +181 -0
  71. package/dist/validation/common.d.ts.map +1 -0
  72. package/dist/validation/common.js +196 -0
  73. package/dist/validation/common.js.map +1 -0
  74. package/dist/validation/index.d.ts +20 -0
  75. package/dist/validation/index.d.ts.map +1 -0
  76. package/dist/validation/index.js +22 -0
  77. package/dist/validation/index.js.map +1 -0
  78. package/dist/validation/market.d.ts +215 -0
  79. package/dist/validation/market.d.ts.map +1 -0
  80. package/dist/validation/market.js +226 -0
  81. package/dist/validation/market.js.map +1 -0
  82. package/dist/validation/trading.d.ts +148 -0
  83. package/dist/validation/trading.d.ts.map +1 -0
  84. package/dist/validation/trading.js +139 -0
  85. package/dist/validation/trading.js.map +1 -0
  86. package/dist/validation/vault.d.ts +62 -0
  87. package/dist/validation/vault.d.ts.map +1 -0
  88. package/dist/validation/vault.js +75 -0
  89. package/dist/validation/vault.js.map +1 -0
  90. package/dist/vault/index.d.ts +64 -0
  91. package/dist/vault/index.d.ts.map +1 -0
  92. package/dist/vault/index.js +7 -0
  93. package/dist/vault/index.js.map +1 -0
  94. package/dist/vault/responses.d.ts +34 -0
  95. package/dist/vault/responses.d.ts.map +1 -0
  96. package/dist/vault/responses.js +7 -0
  97. package/dist/vault/responses.js.map +1 -0
  98. package/dist/websocket/base.d.ts +32 -0
  99. package/dist/websocket/base.d.ts.map +1 -0
  100. package/dist/websocket/base.js +7 -0
  101. package/dist/websocket/base.js.map +1 -0
  102. package/dist/websocket/clients/orderbook-client.d.ts +15 -0
  103. package/dist/websocket/clients/orderbook-client.d.ts.map +1 -0
  104. package/dist/websocket/clients/orderbook-client.js +5 -0
  105. package/dist/websocket/clients/orderbook-client.js.map +1 -0
  106. package/dist/websocket/events/index.d.ts +6 -0
  107. package/dist/websocket/events/index.d.ts.map +1 -0
  108. package/dist/websocket/events/index.js +6 -0
  109. package/dist/websocket/events/index.js.map +1 -0
  110. package/dist/websocket/events/movement-events.d.ts +53 -0
  111. package/dist/websocket/events/movement-events.d.ts.map +1 -0
  112. package/dist/websocket/events/movement-events.js +8 -0
  113. package/dist/websocket/events/movement-events.js.map +1 -0
  114. package/dist/websocket/events/ohlcv-events.d.ts +32 -0
  115. package/dist/websocket/events/ohlcv-events.d.ts.map +1 -0
  116. package/dist/websocket/events/ohlcv-events.js +7 -0
  117. package/dist/websocket/events/ohlcv-events.js.map +1 -0
  118. package/dist/websocket/events/orderbook-events.d.ts +73 -0
  119. package/dist/websocket/events/orderbook-events.d.ts.map +1 -0
  120. package/dist/websocket/events/orderbook-events.js +7 -0
  121. package/dist/websocket/events/orderbook-events.js.map +1 -0
  122. package/dist/websocket/events/orders-events.d.ts +285 -0
  123. package/dist/websocket/events/orders-events.d.ts.map +1 -0
  124. package/dist/websocket/events/orders-events.js +2 -0
  125. package/dist/websocket/events/orders-events.js.map +1 -0
  126. package/dist/websocket/events/trade-events.d.ts +35 -0
  127. package/dist/websocket/events/trade-events.d.ts.map +1 -0
  128. package/dist/websocket/events/trade-events.js +7 -0
  129. package/dist/websocket/events/trade-events.js.map +1 -0
  130. package/dist/websocket/index.d.ts +9 -0
  131. package/dist/websocket/index.d.ts.map +1 -0
  132. package/dist/websocket/index.js +9 -0
  133. package/dist/websocket/index.js.map +1 -0
  134. package/package.json +31 -0
@@ -0,0 +1,215 @@
1
+ /**
2
+ * Market API Validation Schemas
3
+ */
4
+ import { z } from "zod";
5
+ /**
6
+ * Candlestick interval validation
7
+ */
8
+ export declare const IntervalSchema: z.ZodEnum<{
9
+ "1m": "1m";
10
+ "5m": "5m";
11
+ "15m": "15m";
12
+ "30m": "30m";
13
+ "1h": "1h";
14
+ "4h": "4h";
15
+ "1d": "1d";
16
+ "1w": "1w";
17
+ "1M": "1M";
18
+ }>;
19
+ /**
20
+ * Timestamp validation (milliseconds since epoch)
21
+ *
22
+ * Validates that the timestamp is:
23
+ * - A positive integer
24
+ * - At least Jan 1, 2000 (catches seconds vs milliseconds errors)
25
+ * - Within JavaScript's safe integer range
26
+ * - Not unreasonably far in the future (max 1 year ahead)
27
+ *
28
+ * **Why these bounds matter:**
29
+ * - Prevents typos (e.g., using seconds instead of milliseconds: 1609459200 vs 1609459200000)
30
+ * - Catches date calculation errors (e.g., Date.now() * 1000 instead of Date.now())
31
+ * - Ensures timestamps won't cause precision issues in JavaScript
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * // Valid timestamps (milliseconds)
36
+ * validate(TimestampSchema, 1609459200000); // Jan 1, 2021 ✅
37
+ * validate(TimestampSchema, Date.now()); // Current time ✅
38
+ * validate(TimestampSchema, Date.now() + 86400000); // Tomorrow ✅
39
+ *
40
+ * // Invalid timestamps
41
+ * validate(TimestampSchema, 1609459200); // Seconds instead of ms (Jan 19, 1970) ❌
42
+ * validate(TimestampSchema, Date.now() * 1000); // Way too large ❌
43
+ * validate(TimestampSchema, 9999999999999999); // Far future (year 2286) ❌
44
+ * validate(TimestampSchema, 100000); // Too old (Jan 1, 1970) ❌
45
+ * ```
46
+ */
47
+ export declare const TimestampSchema: z.ZodNumber;
48
+ /**
49
+ * Get Candlesticks validation schema (by trading pair ID)
50
+ *
51
+ * Validates parameters for fetching candlestick (OHLCV) data using a trading pair UUID.
52
+ * Ensures that the time range is valid by checking that startTime < endTime.
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * // Valid request
57
+ * validate(GetCandlesticksSchema, {
58
+ * tradingPairId: "123e4567-e89b-12d3-a456-426614174000",
59
+ * interval: "1h",
60
+ * startTime: 1609459200000, // Jan 1, 2021
61
+ * endTime: 1640995200000 // Jan 1, 2022
62
+ * });
63
+ *
64
+ * // Invalid: backwards time range
65
+ * validate(GetCandlesticksSchema, {
66
+ * tradingPairId: "123e4567-e89b-12d3-a456-426614174000",
67
+ * interval: "1h",
68
+ * startTime: 1640995200000, // Jan 1, 2022
69
+ * endTime: 1609459200000 // Jan 1, 2021
70
+ * });
71
+ * // ValidationError: startTime must be less than endTime
72
+ * ```
73
+ */
74
+ export declare const GetCandlesticksSchema: z.ZodObject<{
75
+ tradingPairId: z.ZodString;
76
+ interval: z.ZodEnum<{
77
+ "1m": "1m";
78
+ "5m": "5m";
79
+ "15m": "15m";
80
+ "30m": "30m";
81
+ "1h": "1h";
82
+ "4h": "4h";
83
+ "1d": "1d";
84
+ "1w": "1w";
85
+ "1M": "1M";
86
+ }>;
87
+ startTime: z.ZodNumber;
88
+ endTime: z.ZodNumber;
89
+ }, z.core.$strip>;
90
+ /**
91
+ * Trading pair symbol validation
92
+ *
93
+ * Validates trading pair symbols like "BTC/USDT", "ETH/USD", etc.
94
+ * Symbol format: BASE/QUOTE where:
95
+ * - BASE and QUOTE are 1-10 alphanumeric characters
96
+ * - Separated by a forward slash
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * // Valid symbols
101
+ * validate(TradingPairSymbolSchema, "BTC/USDT"); ✅
102
+ * validate(TradingPairSymbolSchema, "ETH/USD"); ✅
103
+ * validate(TradingPairSymbolSchema, "MTK/USDCo"); ✅
104
+ *
105
+ * // Invalid symbols
106
+ * validate(TradingPairSymbolSchema, "BTC"); ❌ Missing quote token
107
+ * validate(TradingPairSymbolSchema, "BTC-USDT"); ❌ Wrong separator
108
+ * validate(TradingPairSymbolSchema, "/USDT"); ❌ Missing base token
109
+ * ```
110
+ */
111
+ export declare const TradingPairSymbolSchema: z.ZodString;
112
+ /**
113
+ * Candlestick limit validation
114
+ *
115
+ * Validates the limit parameter for candlestick queries:
116
+ * - Must be a positive integer
117
+ * - Maximum of 500 bars per request
118
+ * - Server defaults to 350 if not specified
119
+ */
120
+ export declare const CandlestickLimitSchema: z.ZodOptional<z.ZodNumber>;
121
+ /**
122
+ * Get Candlesticks By Trading Pair ID validation schema
123
+ *
124
+ * Validates parameters for fetching candlestick (OHLCV) data using a trading pair UUID.
125
+ * All time parameters are optional and can be used independently:
126
+ * - Use `endTime` + `limit` for backward pagination (TradingView primary pattern)
127
+ * - Use `startTime` + `limit` for forward pagination
128
+ * - Use just `limit` for most recent bars
129
+ * - Use `startTime` + `endTime` + `limit` for a specific range (capped at limit)
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * // Get 350 most recent bars
134
+ * validate(GetCandlesticksByPairIdSchema, {
135
+ * tradingPairId: "123e4567-e89b-12d3-a456-426614174000",
136
+ * interval: "1h",
137
+ * limit: 350
138
+ * });
139
+ *
140
+ * // Backward pagination (TradingView pattern)
141
+ * validate(GetCandlesticksByPairIdSchema, {
142
+ * tradingPairId: "123e4567-e89b-12d3-a456-426614174000",
143
+ * interval: "1h",
144
+ * endTime: 1640995200000,
145
+ * limit: 350
146
+ * });
147
+ *
148
+ * // Specific range
149
+ * validate(GetCandlesticksByPairIdSchema, {
150
+ * tradingPairId: "123e4567-e89b-12d3-a456-426614174000",
151
+ * interval: "1h",
152
+ * startTime: 1609459200000,
153
+ * endTime: 1640995200000,
154
+ * limit: 350
155
+ * });
156
+ * ```
157
+ */
158
+ export declare const GetCandlesticksByPairIdSchema: z.ZodObject<{
159
+ tradingPairId: z.ZodString;
160
+ interval: z.ZodEnum<{
161
+ "1m": "1m";
162
+ "5m": "5m";
163
+ "15m": "15m";
164
+ "30m": "30m";
165
+ "1h": "1h";
166
+ "4h": "4h";
167
+ "1d": "1d";
168
+ "1w": "1w";
169
+ "1M": "1M";
170
+ }>;
171
+ startTime: z.ZodOptional<z.ZodNumber>;
172
+ endTime: z.ZodOptional<z.ZodNumber>;
173
+ limit: z.ZodOptional<z.ZodNumber>;
174
+ }, z.core.$strip>;
175
+ /**
176
+ * @deprecated Use GetCandlesticksByPairIdSchema instead. Symbol-based lookups are no longer supported.
177
+ */
178
+ export declare const GetCandlesticksBySymbolSchema: z.ZodObject<{
179
+ tradingPairId: z.ZodString;
180
+ interval: z.ZodEnum<{
181
+ "1m": "1m";
182
+ "5m": "5m";
183
+ "15m": "15m";
184
+ "30m": "30m";
185
+ "1h": "1h";
186
+ "4h": "4h";
187
+ "1d": "1d";
188
+ "1w": "1w";
189
+ "1M": "1M";
190
+ }>;
191
+ startTime: z.ZodOptional<z.ZodNumber>;
192
+ endTime: z.ZodOptional<z.ZodNumber>;
193
+ limit: z.ZodOptional<z.ZodNumber>;
194
+ }, z.core.$strip>;
195
+ /**
196
+ * Get Trading Pair validation schema
197
+ */
198
+ export declare const GetTradingPairSchema: z.ZodObject<{
199
+ tradingPairId: z.ZodString;
200
+ }, z.core.$strip>;
201
+ /**
202
+ * Search Trading Pairs validation schema
203
+ */
204
+ export declare const SearchTradingPairsSchema: z.ZodObject<{
205
+ query: z.ZodOptional<z.ZodString>;
206
+ limit: z.ZodOptional<z.ZodNumber>;
207
+ offset: z.ZodOptional<z.ZodNumber>;
208
+ }, z.core.$strip>;
209
+ /**
210
+ * Get Market Metadata validation schema
211
+ */
212
+ export declare const GetMarketMetadataSchema: z.ZodObject<{
213
+ tradingPairId: z.ZodString;
214
+ }, z.core.$strip>;
215
+ //# sourceMappingURL=market.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../src/validation/market.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;EAEzB,CAAC;AAkBH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,eAAe,aAcxB,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;iBAU9B,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,uBAAuB,aAKhC,CAAC;AAEL;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,4BAKtB,CAAC;AAEd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;iBAoBvC,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;iBAAgC,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;iBAInC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;iBAElC,CAAC"}
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Market API Validation Schemas
3
+ */
4
+ import { z } from "zod";
5
+ import { UUIDSchema } from "./trading";
6
+ /**
7
+ * Candlestick interval validation
8
+ */
9
+ export const IntervalSchema = z.enum(["1m", "5m", "15m", "30m", "1h", "4h", "1d", "1w", "1M"], {
10
+ message: 'Interval must be one of: "1m", "5m", "15m", "30m", "1h", "4h", "1d", "1w", "1M"',
11
+ });
12
+ /**
13
+ * Maximum allowed future offset for timestamps (1 year in milliseconds)
14
+ *
15
+ * Allows queries for future dates (e.g., for scheduling or filtering) but
16
+ * prevents unreasonably far future dates that are likely input errors.
17
+ */
18
+ const MAX_TIMESTAMP_FUTURE_OFFSET_MS = 365 * 24 * 60 * 60 * 1000; // 1 year
19
+ /**
20
+ * Minimum allowed timestamp (Jan 1, 2000 in milliseconds)
21
+ *
22
+ * This catches the common error of passing timestamps in seconds instead of milliseconds.
23
+ * Any timestamp before year 2000 is likely an error (either seconds or invalid date).
24
+ */
25
+ const MIN_TIMESTAMP_MS = 946684800000; // Jan 1, 2000 00:00:00 UTC
26
+ /**
27
+ * Timestamp validation (milliseconds since epoch)
28
+ *
29
+ * Validates that the timestamp is:
30
+ * - A positive integer
31
+ * - At least Jan 1, 2000 (catches seconds vs milliseconds errors)
32
+ * - Within JavaScript's safe integer range
33
+ * - Not unreasonably far in the future (max 1 year ahead)
34
+ *
35
+ * **Why these bounds matter:**
36
+ * - Prevents typos (e.g., using seconds instead of milliseconds: 1609459200 vs 1609459200000)
37
+ * - Catches date calculation errors (e.g., Date.now() * 1000 instead of Date.now())
38
+ * - Ensures timestamps won't cause precision issues in JavaScript
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * // Valid timestamps (milliseconds)
43
+ * validate(TimestampSchema, 1609459200000); // Jan 1, 2021 ✅
44
+ * validate(TimestampSchema, Date.now()); // Current time ✅
45
+ * validate(TimestampSchema, Date.now() + 86400000); // Tomorrow ✅
46
+ *
47
+ * // Invalid timestamps
48
+ * validate(TimestampSchema, 1609459200); // Seconds instead of ms (Jan 19, 1970) ❌
49
+ * validate(TimestampSchema, Date.now() * 1000); // Way too large ❌
50
+ * validate(TimestampSchema, 9999999999999999); // Far future (year 2286) ❌
51
+ * validate(TimestampSchema, 100000); // Too old (Jan 1, 1970) ❌
52
+ * ```
53
+ */
54
+ export const TimestampSchema = z
55
+ .number()
56
+ .int()
57
+ .positive({
58
+ message: "Timestamp must be a positive integer (milliseconds since epoch)",
59
+ })
60
+ .min(MIN_TIMESTAMP_MS, {
61
+ message: "Timestamp must be at least Jan 1, 2000 (946684800000 ms). Did you pass seconds instead of milliseconds?",
62
+ })
63
+ .max(Number.MAX_SAFE_INTEGER, {
64
+ message: "Timestamp must not exceed JavaScript's maximum safe integer",
65
+ })
66
+ .refine((value) => value <= Date.now() + MAX_TIMESTAMP_FUTURE_OFFSET_MS, {
67
+ message: "Timestamp must not be unreasonably far in the future (max 1 year ahead)",
68
+ });
69
+ /**
70
+ * Get Candlesticks validation schema (by trading pair ID)
71
+ *
72
+ * Validates parameters for fetching candlestick (OHLCV) data using a trading pair UUID.
73
+ * Ensures that the time range is valid by checking that startTime < endTime.
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * // Valid request
78
+ * validate(GetCandlesticksSchema, {
79
+ * tradingPairId: "123e4567-e89b-12d3-a456-426614174000",
80
+ * interval: "1h",
81
+ * startTime: 1609459200000, // Jan 1, 2021
82
+ * endTime: 1640995200000 // Jan 1, 2022
83
+ * });
84
+ *
85
+ * // Invalid: backwards time range
86
+ * validate(GetCandlesticksSchema, {
87
+ * tradingPairId: "123e4567-e89b-12d3-a456-426614174000",
88
+ * interval: "1h",
89
+ * startTime: 1640995200000, // Jan 1, 2022
90
+ * endTime: 1609459200000 // Jan 1, 2021
91
+ * });
92
+ * // ValidationError: startTime must be less than endTime
93
+ * ```
94
+ */
95
+ export const GetCandlesticksSchema = z
96
+ .object({
97
+ tradingPairId: UUIDSchema,
98
+ interval: IntervalSchema,
99
+ startTime: TimestampSchema,
100
+ endTime: TimestampSchema,
101
+ })
102
+ .refine((data) => data.startTime < data.endTime, {
103
+ message: "startTime must be less than endTime",
104
+ path: ["endTime"],
105
+ });
106
+ /**
107
+ * Trading pair symbol validation
108
+ *
109
+ * Validates trading pair symbols like "BTC/USDT", "ETH/USD", etc.
110
+ * Symbol format: BASE/QUOTE where:
111
+ * - BASE and QUOTE are 1-10 alphanumeric characters
112
+ * - Separated by a forward slash
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * // Valid symbols
117
+ * validate(TradingPairSymbolSchema, "BTC/USDT"); ✅
118
+ * validate(TradingPairSymbolSchema, "ETH/USD"); ✅
119
+ * validate(TradingPairSymbolSchema, "MTK/USDCo"); ✅
120
+ *
121
+ * // Invalid symbols
122
+ * validate(TradingPairSymbolSchema, "BTC"); ❌ Missing quote token
123
+ * validate(TradingPairSymbolSchema, "BTC-USDT"); ❌ Wrong separator
124
+ * validate(TradingPairSymbolSchema, "/USDT"); ❌ Missing base token
125
+ * ```
126
+ */
127
+ export const TradingPairSymbolSchema = z
128
+ .string()
129
+ .min(1, "Trading pair symbol cannot be empty")
130
+ .regex(/^[A-Za-z0-9]{1,10}\/[A-Za-z0-9]{1,10}$/, {
131
+ message: 'Trading pair symbol must be in format "BASE/QUOTE" (e.g., "BTC/USDT", "ETH/USD")',
132
+ });
133
+ /**
134
+ * Candlestick limit validation
135
+ *
136
+ * Validates the limit parameter for candlestick queries:
137
+ * - Must be a positive integer
138
+ * - Maximum of 500 bars per request
139
+ * - Server defaults to 350 if not specified
140
+ */
141
+ export const CandlestickLimitSchema = z
142
+ .number()
143
+ .int()
144
+ .positive({ message: "Limit must be a positive integer" })
145
+ .max(500, { message: "Limit cannot exceed 500 bars per request" })
146
+ .optional();
147
+ /**
148
+ * Get Candlesticks By Trading Pair ID validation schema
149
+ *
150
+ * Validates parameters for fetching candlestick (OHLCV) data using a trading pair UUID.
151
+ * All time parameters are optional and can be used independently:
152
+ * - Use `endTime` + `limit` for backward pagination (TradingView primary pattern)
153
+ * - Use `startTime` + `limit` for forward pagination
154
+ * - Use just `limit` for most recent bars
155
+ * - Use `startTime` + `endTime` + `limit` for a specific range (capped at limit)
156
+ *
157
+ * @example
158
+ * ```typescript
159
+ * // Get 350 most recent bars
160
+ * validate(GetCandlesticksByPairIdSchema, {
161
+ * tradingPairId: "123e4567-e89b-12d3-a456-426614174000",
162
+ * interval: "1h",
163
+ * limit: 350
164
+ * });
165
+ *
166
+ * // Backward pagination (TradingView pattern)
167
+ * validate(GetCandlesticksByPairIdSchema, {
168
+ * tradingPairId: "123e4567-e89b-12d3-a456-426614174000",
169
+ * interval: "1h",
170
+ * endTime: 1640995200000,
171
+ * limit: 350
172
+ * });
173
+ *
174
+ * // Specific range
175
+ * validate(GetCandlesticksByPairIdSchema, {
176
+ * tradingPairId: "123e4567-e89b-12d3-a456-426614174000",
177
+ * interval: "1h",
178
+ * startTime: 1609459200000,
179
+ * endTime: 1640995200000,
180
+ * limit: 350
181
+ * });
182
+ * ```
183
+ */
184
+ export const GetCandlesticksByPairIdSchema = z
185
+ .object({
186
+ tradingPairId: UUIDSchema,
187
+ interval: IntervalSchema,
188
+ startTime: TimestampSchema.optional(),
189
+ endTime: TimestampSchema.optional(),
190
+ limit: CandlestickLimitSchema,
191
+ })
192
+ .refine((data) => {
193
+ // Only validate startTime < endTime if both are provided
194
+ if (data.startTime !== undefined && data.endTime !== undefined) {
195
+ return data.startTime < data.endTime;
196
+ }
197
+ return true;
198
+ }, {
199
+ message: "startTime must be less than endTime",
200
+ path: ["endTime"],
201
+ });
202
+ /**
203
+ * @deprecated Use GetCandlesticksByPairIdSchema instead. Symbol-based lookups are no longer supported.
204
+ */
205
+ export const GetCandlesticksBySymbolSchema = GetCandlesticksByPairIdSchema;
206
+ /**
207
+ * Get Trading Pair validation schema
208
+ */
209
+ export const GetTradingPairSchema = z.object({
210
+ tradingPairId: UUIDSchema,
211
+ });
212
+ /**
213
+ * Search Trading Pairs validation schema
214
+ */
215
+ export const SearchTradingPairsSchema = z.object({
216
+ query: z.string().min(1, "Search query cannot be empty").optional(),
217
+ limit: z.number().int().min(1).max(100).optional(),
218
+ offset: z.number().int().min(0).optional(),
219
+ });
220
+ /**
221
+ * Get Market Metadata validation schema
222
+ */
223
+ export const GetMarketMetadataSchema = z.object({
224
+ tradingPairId: UUIDSchema,
225
+ });
226
+ //# sourceMappingURL=market.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market.js","sourceRoot":"","sources":["../../src/validation/market.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Trading API Validation Schemas
3
+ *
4
+ * Zod schemas for validating trading API inputs before making requests.
5
+ * Provides clear, actionable error messages for invalid parameters.
6
+ */
7
+ import { z } from "zod";
8
+ /**
9
+ * Order side validation
10
+ */
11
+ export declare const OrderSideSchema: z.ZodEnum<{
12
+ BUY: "BUY";
13
+ SELL: "SELL";
14
+ }>;
15
+ /**
16
+ * Trading mode validation
17
+ */
18
+ export declare const TradingModeSchema: z.ZodEnum<{
19
+ SPOT: "SPOT";
20
+ MARGIN: "MARGIN";
21
+ }>;
22
+ /**
23
+ * Time in force validation
24
+ */
25
+ export declare const TimeInForceSchema: z.ZodEnum<{
26
+ GTC: "GTC";
27
+ IOC: "IOC";
28
+ FOK: "FOK";
29
+ }>;
30
+ /**
31
+ * Positive decimal string validation (for quantities and prices)
32
+ */
33
+ export declare const PositiveDecimalStringSchema: z.ZodString;
34
+ /**
35
+ * Non-negative decimal string validation (allows 0)
36
+ */
37
+ export declare const NonNegativeDecimalStringSchema: z.ZodString;
38
+ /**
39
+ * UUID validation
40
+ */
41
+ export declare const UUIDSchema: z.ZodString;
42
+ /**
43
+ * ISO 8601 date string validation
44
+ */
45
+ export declare const ISO8601DateSchema: z.ZodString;
46
+ /**
47
+ * Slippage tolerance validation (0 to 1, where 0.01 = 1%)
48
+ */
49
+ export declare const SlippageToleranceSchema: z.ZodOptional<z.ZodNumber>;
50
+ /**
51
+ * Place Limit Order validation schema
52
+ */
53
+ export declare const PlaceLimitOrderSchema: z.ZodObject<{
54
+ tradingPairId: z.ZodString;
55
+ side: z.ZodEnum<{
56
+ BUY: "BUY";
57
+ SELL: "SELL";
58
+ }>;
59
+ quantity: z.ZodString;
60
+ price: z.ZodString;
61
+ options: z.ZodOptional<z.ZodObject<{
62
+ tradingMode: z.ZodOptional<z.ZodEnum<{
63
+ SPOT: "SPOT";
64
+ MARGIN: "MARGIN";
65
+ }>>;
66
+ useMasterBalance: z.ZodOptional<z.ZodBoolean>;
67
+ expirationDate: z.ZodOptional<z.ZodString>;
68
+ timeInForce: z.ZodOptional<z.ZodEnum<{
69
+ GTC: "GTC";
70
+ IOC: "IOC";
71
+ FOK: "FOK";
72
+ }>>;
73
+ }, z.core.$strip>>;
74
+ }, z.core.$strip>;
75
+ /**
76
+ * Place Market Order validation schema
77
+ */
78
+ export declare const PlaceMarketOrderSchema: z.ZodObject<{
79
+ tradingPairId: z.ZodString;
80
+ side: z.ZodEnum<{
81
+ BUY: "BUY";
82
+ SELL: "SELL";
83
+ }>;
84
+ quantity: z.ZodString;
85
+ options: z.ZodOptional<z.ZodObject<{
86
+ tradingMode: z.ZodOptional<z.ZodEnum<{
87
+ SPOT: "SPOT";
88
+ MARGIN: "MARGIN";
89
+ }>>;
90
+ slippageTolerance: z.ZodOptional<z.ZodNumber>;
91
+ timeInForce: z.ZodOptional<z.ZodEnum<{
92
+ GTC: "GTC";
93
+ IOC: "IOC";
94
+ FOK: "FOK";
95
+ }>>;
96
+ }, z.core.$strip>>;
97
+ }, z.core.$strip>;
98
+ /**
99
+ * Cancel Order validation schema
100
+ */
101
+ export declare const CancelOrderSchema: z.ZodObject<{
102
+ orderId: z.ZodString;
103
+ }, z.core.$strip>;
104
+ /**
105
+ * Replace Order validation schema
106
+ *
107
+ * Validates parameters for replacing an existing order.
108
+ * Matches the replaceOrder method signature which accepts:
109
+ * - orderId: string (UUID)
110
+ * - newOrder: { price?: string, quantity?: string, useMasterBalance?: boolean }
111
+ */
112
+ export declare const ReplaceOrderSchema: z.ZodObject<{
113
+ orderId: z.ZodString;
114
+ newOrder: z.ZodObject<{
115
+ price: z.ZodOptional<z.ZodString>;
116
+ quantity: z.ZodOptional<z.ZodString>;
117
+ useMasterBalance: z.ZodOptional<z.ZodBoolean>;
118
+ }, z.core.$strip>;
119
+ }, z.core.$strip>;
120
+ /**
121
+ * Get Paginated Orders validation schema
122
+ *
123
+ * Validates parameters for fetching paginated orders.
124
+ * Status field accepts all valid OrderStatus values for comprehensive filtering.
125
+ */
126
+ export declare const GetOrdersSchema: z.ZodObject<{
127
+ tradingPairId: z.ZodOptional<z.ZodString>;
128
+ options: z.ZodOptional<z.ZodObject<{
129
+ status: z.ZodOptional<z.ZodEnum<{
130
+ PENDING: "PENDING";
131
+ SUBMITTED: "SUBMITTED";
132
+ ACKNOWLEDGED: "ACKNOWLEDGED";
133
+ PARTIALLY_FILLED: "PARTIALLY_FILLED";
134
+ FILLED: "FILLED";
135
+ SETTLED: "SETTLED";
136
+ CANCELLED: "CANCELLED";
137
+ REJECTED: "REJECTED";
138
+ EXPIRED: "EXPIRED";
139
+ }>>;
140
+ side: z.ZodOptional<z.ZodEnum<{
141
+ BUY: "BUY";
142
+ SELL: "SELL";
143
+ }>>;
144
+ limit: z.ZodOptional<z.ZodNumber>;
145
+ offset: z.ZodOptional<z.ZodNumber>;
146
+ }, z.core.$strip>>;
147
+ }, z.core.$strip>;
148
+ //# sourceMappingURL=trading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trading.d.ts","sourceRoot":"","sources":["../../src/validation/trading.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,eAAe;;;EAE1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;EAE5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;EAE5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,2BAA2B,aAOpC,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,8BAA8B,aAOvC,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,UAAU,aAErB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,aAE5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB,4BAIvB,CAAC;AAEd;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;iBAahC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;iBAWjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB;;;;;;;iBAO7B,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;iBAU1B,CAAC"}