@nadohq/nuanze-client 0.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +72 -0
  2. package/dist/NuanzeClient-BUjoXpWV.cjs +327 -0
  3. package/dist/NuanzeClient-BUjoXpWV.cjs.map +1 -0
  4. package/dist/NuanzeClient.cjs +4 -0
  5. package/dist/NuanzeClient.d.cts +229 -0
  6. package/dist/NuanzeClient.d.cts.map +1 -0
  7. package/dist/NuanzeClient.d.ts +229 -0
  8. package/dist/NuanzeClient.d.ts.map +1 -0
  9. package/dist/NuanzeClient.js +293 -0
  10. package/dist/NuanzeClient.js.map +1 -0
  11. package/dist/NuanzeServerFailureError-B9EhXPyW.d.cts +29 -0
  12. package/dist/NuanzeServerFailureError-B9EhXPyW.d.cts.map +1 -0
  13. package/dist/NuanzeServerFailureError-DqWaKEMA.d.ts +29 -0
  14. package/dist/NuanzeServerFailureError-DqWaKEMA.d.ts.map +1 -0
  15. package/dist/clientModelTypes-A-D7ER-p.d.ts +932 -0
  16. package/dist/clientModelTypes-A-D7ER-p.d.ts.map +1 -0
  17. package/dist/clientModelTypes-BLPA-e3V.d.cts +932 -0
  18. package/dist/clientModelTypes-BLPA-e3V.d.cts.map +1 -0
  19. package/dist/clientTypes-DdpinbkS.d.ts +642 -0
  20. package/dist/clientTypes-DdpinbkS.d.ts.map +1 -0
  21. package/dist/clientTypes-Du2RLy4W.d.cts +642 -0
  22. package/dist/clientTypes-Du2RLy4W.d.cts.map +1 -0
  23. package/dist/dataMappers.cjs +688 -0
  24. package/dist/dataMappers.cjs.map +1 -0
  25. package/dist/dataMappers.d.cts +159 -0
  26. package/dist/dataMappers.d.cts.map +1 -0
  27. package/dist/dataMappers.d.ts +159 -0
  28. package/dist/dataMappers.d.ts.map +1 -0
  29. package/dist/dataMappers.js +650 -0
  30. package/dist/dataMappers.js.map +1 -0
  31. package/dist/endpoints.cjs +18 -0
  32. package/dist/endpoints.cjs.map +1 -0
  33. package/dist/endpoints.d.cts +14 -0
  34. package/dist/endpoints.d.cts.map +1 -0
  35. package/dist/endpoints.d.ts +14 -0
  36. package/dist/endpoints.d.ts.map +1 -0
  37. package/dist/endpoints.js +17 -0
  38. package/dist/endpoints.js.map +1 -0
  39. package/dist/index.cjs +79 -0
  40. package/dist/index.d.cts +10 -0
  41. package/dist/index.d.ts +10 -0
  42. package/dist/index.js +9 -0
  43. package/dist/nuanzeErrorCodes-CWCTWh2k.d.cts +14 -0
  44. package/dist/nuanzeErrorCodes-CWCTWh2k.d.cts.map +1 -0
  45. package/dist/nuanzeErrorCodes-Dh6juim0.d.ts +14 -0
  46. package/dist/nuanzeErrorCodes-Dh6juim0.d.ts.map +1 -0
  47. package/dist/serverModelTypes-D-vS_7uc.d.ts +377 -0
  48. package/dist/serverModelTypes-D-vS_7uc.d.ts.map +1 -0
  49. package/dist/serverModelTypes-DZDxdIzz.d.cts +377 -0
  50. package/dist/serverModelTypes-DZDxdIzz.d.cts.map +1 -0
  51. package/dist/serverQueryTypes-BBIFZZ36.d.cts +240 -0
  52. package/dist/serverQueryTypes-BBIFZZ36.d.cts.map +1 -0
  53. package/dist/serverQueryTypes-e7HWmE8t.d.ts +240 -0
  54. package/dist/serverQueryTypes-e7HWmE8t.d.ts.map +1 -0
  55. package/dist/types/NuanzeServerFailureError.cjs +21 -0
  56. package/dist/types/NuanzeServerFailureError.cjs.map +1 -0
  57. package/dist/types/NuanzeServerFailureError.d.cts +2 -0
  58. package/dist/types/NuanzeServerFailureError.d.ts +2 -0
  59. package/dist/types/NuanzeServerFailureError.js +20 -0
  60. package/dist/types/NuanzeServerFailureError.js.map +1 -0
  61. package/dist/types/clientModelTypes.cjs +236 -0
  62. package/dist/types/clientModelTypes.cjs.map +1 -0
  63. package/dist/types/clientModelTypes.d.cts +2 -0
  64. package/dist/types/clientModelTypes.d.ts +2 -0
  65. package/dist/types/clientModelTypes.js +208 -0
  66. package/dist/types/clientModelTypes.js.map +1 -0
  67. package/dist/types/clientTypes.cjs +0 -0
  68. package/dist/types/clientTypes.d.cts +2 -0
  69. package/dist/types/clientTypes.d.ts +2 -0
  70. package/dist/types/clientTypes.js +1 -0
  71. package/dist/types/index.cjs +36 -0
  72. package/dist/types/index.d.cts +7 -0
  73. package/dist/types/index.d.ts +7 -0
  74. package/dist/types/index.js +5 -0
  75. package/dist/types/nuanzeErrorCodes.cjs +32 -0
  76. package/dist/types/nuanzeErrorCodes.cjs.map +1 -0
  77. package/dist/types/nuanzeErrorCodes.d.cts +2 -0
  78. package/dist/types/nuanzeErrorCodes.d.ts +2 -0
  79. package/dist/types/nuanzeErrorCodes.js +31 -0
  80. package/dist/types/nuanzeErrorCodes.js.map +1 -0
  81. package/dist/types/serverModelTypes.cjs +0 -0
  82. package/dist/types/serverModelTypes.d.cts +2 -0
  83. package/dist/types/serverModelTypes.d.ts +2 -0
  84. package/dist/types/serverModelTypes.js +1 -0
  85. package/dist/types/serverQueryTypes.cjs +15 -0
  86. package/dist/types/serverQueryTypes.cjs.map +1 -0
  87. package/dist/types/serverQueryTypes.d.cts +2 -0
  88. package/dist/types/serverQueryTypes.d.ts +2 -0
  89. package/dist/types/serverQueryTypes.js +14 -0
  90. package/dist/types/serverQueryTypes.js.map +1 -0
  91. package/package.json +54 -0
  92. package/src/NuanzeClient.ts +556 -0
  93. package/src/dataMappers.ts +889 -0
  94. package/src/endpoints.ts +14 -0
  95. package/src/index.ts +4 -0
  96. package/src/types/NuanzeServerFailureError.ts +36 -0
  97. package/src/types/clientModelTypes.ts +1085 -0
  98. package/src/types/clientTypes.ts +719 -0
  99. package/src/types/index.ts +6 -0
  100. package/src/types/nuanzeErrorCodes.ts +31 -0
  101. package/src/types/serverModelTypes.ts +422 -0
  102. package/src/types/serverQueryTypes.ts +298 -0
@@ -0,0 +1,298 @@
1
+ import type {
2
+ NuanzeCandleInterval,
3
+ NuanzeCoverage,
4
+ NuanzeFlowBucket,
5
+ NuanzeFlowTimeframe,
6
+ NuanzeLeaderboardTimeframe,
7
+ NuanzeMarketVenue,
8
+ NuanzePlatformWindow,
9
+ NuanzePnlWindow,
10
+ NuanzeSeriesMetric,
11
+ NuanzeSourceInterval,
12
+ } from './clientModelTypes';
13
+ import { NuanzeNewsStory } from './clientModelTypes';
14
+ import { NuanzeErrorCode } from './nuanzeErrorCodes';
15
+ import {
16
+ NuanzeServerCandle,
17
+ NuanzeServerCollateralFlow,
18
+ NuanzeServerCollateralFlowPoint,
19
+ NuanzeServerFollowedLeaderboardItem,
20
+ NuanzeServerFundingRate,
21
+ NuanzeServerLeaderboardItem,
22
+ NuanzeServerMarket,
23
+ NuanzeServerMarketDetail,
24
+ NuanzeServerMarketPosition,
25
+ NuanzeServerMarketTrade,
26
+ NuanzeServerOpenPosition,
27
+ NuanzeServerPlatformDeltas,
28
+ NuanzeServerSeriesPoint,
29
+ NuanzeServerWalletPosition,
30
+ NuanzeServerWalletTrade,
31
+ } from './serverModelTypes';
32
+
33
+ /**
34
+ * Failure envelope returned with every non-2xx response.
35
+ *
36
+ * Structurally unrelated to `BaseServerFailureResponse`: Nuanze nests a string `code` under `error`
37
+ * instead of carrying a top-level numeric `error_code` and `status: 'failure'`.
38
+ */
39
+ export interface NuanzeServerFailureResponse {
40
+ error: {
41
+ code: NuanzeErrorCode;
42
+ message: string;
43
+ requestId: string;
44
+ };
45
+ }
46
+
47
+ /**
48
+ * `GET /markets` response as returned on the wire.
49
+ */
50
+ export interface NuanzeServerMarketsResponse {
51
+ markets: NuanzeServerMarket[];
52
+ count: number;
53
+ asOf: string;
54
+ }
55
+
56
+ /**
57
+ * `GET /news` response as returned on the wire. Stories have no decimals.
58
+ */
59
+ export interface NuanzeServerNewsResponse {
60
+ stories: NuanzeNewsStory[];
61
+ nextCursor: string | null;
62
+ asOf: string;
63
+ }
64
+
65
+ /**
66
+ * `GET /markets/{ticker}` response as returned on the wire.
67
+ */
68
+ export type NuanzeServerMarketByTickerResponse = NuanzeServerMarketDetail;
69
+
70
+ /**
71
+ * `GET /funding/rates` response as returned on the wire.
72
+ */
73
+ export interface NuanzeServerFundingRatesResponse {
74
+ rates: NuanzeServerFundingRate[];
75
+ asOf: string;
76
+ }
77
+
78
+ /**
79
+ * `GET /leaderboard` response as returned on the wire.
80
+ */
81
+ export interface NuanzeServerLeaderboardResponse {
82
+ timeframe: NuanzeLeaderboardTimeframe;
83
+ items: NuanzeServerLeaderboardItem[];
84
+ limit: number;
85
+ offset: number;
86
+ total: number;
87
+ asOf: string;
88
+ }
89
+
90
+ /**
91
+ * `POST /wallets/leaderboard` response as returned on the wire.
92
+ */
93
+ export interface NuanzeServerFollowedLeaderboardResponse {
94
+ timeframe: NuanzeLeaderboardTimeframe;
95
+ items: NuanzeServerFollowedLeaderboardItem[];
96
+ count: number;
97
+ asOf: string;
98
+ }
99
+
100
+ /**
101
+ * `GET /platform/summary` response as returned on the wire.
102
+ */
103
+ export interface NuanzeServerPlatformSummaryResponse {
104
+ window: NuanzePlatformWindow;
105
+ volume24h: string;
106
+ trades24h: number;
107
+ traders24h: number;
108
+ windowVolume: string;
109
+ windowTrades: number;
110
+ windowTraders: number;
111
+ deltas: NuanzeServerPlatformDeltas;
112
+ asOf: string;
113
+ }
114
+
115
+ /**
116
+ * `GET /wallets/{address}` response as returned on the wire.
117
+ */
118
+ export interface NuanzeServerWalletSummaryResponse {
119
+ address: string;
120
+ subaccountName: string | null;
121
+ subaccountCount: number;
122
+ pnlWindow: NuanzePnlWindow;
123
+ accountPnl: string;
124
+ windowPnl: string;
125
+ equity: string | null;
126
+ cumulativeVolume: string;
127
+ windowVolume: string;
128
+ totalTrades: number;
129
+ wins: number;
130
+ losses: number;
131
+ winRate: string | null;
132
+ snapshotAt: string;
133
+ coverage: NuanzeCoverage;
134
+ asOf: string;
135
+ }
136
+
137
+ /**
138
+ * `GET /wallets/{address}/positions` response as returned on the wire.
139
+ */
140
+ export interface NuanzeServerWalletPositionsResponse {
141
+ address: string;
142
+ positions: NuanzeServerWalletPosition[];
143
+ count: number;
144
+ newestSnapshotAt: string | null;
145
+ oldestSnapshotAt: string | null;
146
+ asOf: string;
147
+ }
148
+
149
+ /**
150
+ * `GET /markets/{ticker}/trades` response as returned on the wire.
151
+ */
152
+ export interface NuanzeServerMarketTradesResponse {
153
+ productId: number;
154
+ symbol: string;
155
+ ticker: string;
156
+ venue: NuanzeMarketVenue;
157
+ trades: NuanzeServerMarketTrade[];
158
+ nextCursor: string | null;
159
+ asOf: string;
160
+ }
161
+
162
+ /**
163
+ * `GET /markets/{ticker}/candles` response as returned on the wire.
164
+ */
165
+ export interface NuanzeServerMarketCandlesResponse {
166
+ productId: number;
167
+ symbol: string;
168
+ ticker: string;
169
+ venue: NuanzeMarketVenue;
170
+ interval: NuanzeCandleInterval;
171
+ candles: NuanzeServerCandle[];
172
+ asOf: string;
173
+ }
174
+
175
+ /**
176
+ * `GET /wallets/{address}/trades` response as returned on the wire.
177
+ */
178
+ export interface NuanzeServerWalletTradesResponse {
179
+ address: string;
180
+ trades: NuanzeServerWalletTrade[];
181
+ nextCursor: string | null;
182
+ asOf: string;
183
+ }
184
+
185
+ /**
186
+ * `GET /wallets/{address}/pnl` response as returned on the wire.
187
+ */
188
+ export interface NuanzeServerWalletPnlResponse {
189
+ address: string;
190
+ subaccountName: string | null;
191
+ window: NuanzePnlWindow;
192
+ windowStart: string;
193
+ windowEnd: string;
194
+ openingAccountPnl: string;
195
+ latestAccountPnl: string;
196
+ windowPnl: string;
197
+ openingEquity: string | null;
198
+ latestEquity: string | null;
199
+ volumeDelta: string;
200
+ sourceInterval: NuanzeSourceInterval;
201
+ latestSnapshotAt: string;
202
+ coverage: NuanzeCoverage;
203
+ asOf: string;
204
+ }
205
+
206
+ /**
207
+ * `GET /wallets/{address}/pnl/series` response as returned on the wire.
208
+ */
209
+ export interface NuanzeServerWalletPnlSeriesResponse {
210
+ address: string;
211
+ subaccountName: string | null;
212
+ metric: NuanzeSeriesMetric;
213
+ window: NuanzePnlWindow;
214
+ points: NuanzeServerSeriesPoint[];
215
+ sourceInterval: NuanzeSourceInterval;
216
+ coverage: NuanzeCoverage;
217
+ asOf: string;
218
+ }
219
+
220
+ /**
221
+ * `GET /flows` response as returned on the wire.
222
+ */
223
+ export interface NuanzeServerCollateralFlowsResponse {
224
+ events: NuanzeServerCollateralFlow[];
225
+ nextCursor: string | null;
226
+ asOf: string;
227
+ }
228
+
229
+ /**
230
+ * `GET /flows/summary` response as returned on the wire.
231
+ */
232
+ export interface NuanzeServerCollateralFlowSummaryResponse {
233
+ timeframe: NuanzeFlowTimeframe;
234
+ deposited: string;
235
+ withdrawn: string;
236
+ net: string;
237
+ gross: string;
238
+ depositCount: number;
239
+ withdrawalCount: number;
240
+ valuedCount: number;
241
+ unvaluedCount: number;
242
+ priorNet: string | null;
243
+ asOf: string;
244
+ }
245
+
246
+ /**
247
+ * `GET /flows/series` response as returned on the wire.
248
+ */
249
+ export interface NuanzeServerCollateralFlowSeriesResponse {
250
+ timeframe: NuanzeFlowTimeframe;
251
+ bucket: NuanzeFlowBucket;
252
+ points: NuanzeServerCollateralFlowPoint[];
253
+ asOf: string;
254
+ }
255
+
256
+ /**
257
+ * `GET /markets/{ticker}/positions` response as returned on the wire.
258
+ */
259
+ export interface NuanzeServerMarketPositionsResponse {
260
+ productId: number;
261
+ symbol: string;
262
+ ticker: string;
263
+ venue: NuanzeMarketVenue;
264
+ positions: NuanzeServerMarketPosition[];
265
+ nextCursor: string | null;
266
+ dataUpdatedAt: string | null;
267
+ asOf: string;
268
+ }
269
+
270
+ /**
271
+ * `GET /positions` response as returned on the wire.
272
+ */
273
+ export interface NuanzeServerOpenPositionsResponse {
274
+ positions: NuanzeServerOpenPosition[];
275
+ nextCursor: string | null;
276
+ dataUpdatedAt: string | null;
277
+ asOf: string;
278
+ }
279
+
280
+ /**
281
+ * Checks whether a response body is a Nuanze failure envelope. The `code` is not compared against
282
+ * {@link NUANZE_ERROR_CODES}, so a code added by a newer API release still reaches the caller.
283
+ */
284
+ export function isNuanzeServerFailureResponse(
285
+ data: unknown,
286
+ ): data is NuanzeServerFailureResponse {
287
+ if (typeof data !== 'object' || data === null || !('error' in data)) {
288
+ return false;
289
+ }
290
+
291
+ const { error } = data;
292
+ return (
293
+ typeof error === 'object' &&
294
+ error !== null &&
295
+ typeof (error as { code?: unknown }).code === 'string' &&
296
+ typeof (error as { message?: unknown }).message === 'string'
297
+ );
298
+ }