pmxtjs 2.42.7 → 2.43.1

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 (46) hide show
  1. package/dist/esm/generated/src/apis/DefaultApi.d.ts +120 -4
  2. package/dist/esm/generated/src/apis/DefaultApi.js +136 -5
  3. package/dist/esm/generated/src/models/FetchOrderBooks200Response.d.ts +48 -0
  4. package/dist/esm/generated/src/models/FetchOrderBooks200Response.js +48 -0
  5. package/dist/esm/generated/src/models/FetchOrderBooksRequest.d.ts +39 -0
  6. package/dist/esm/generated/src/models/FetchOrderBooksRequest.js +46 -0
  7. package/dist/esm/generated/src/models/OrderBook.d.ts +6 -0
  8. package/dist/esm/generated/src/models/OrderBook.js +2 -0
  9. package/dist/esm/generated/src/models/index.d.ts +2 -0
  10. package/dist/esm/generated/src/models/index.js +2 -0
  11. package/dist/esm/index.d.ts +5 -2
  12. package/dist/esm/index.js +5 -2
  13. package/dist/esm/pmxt/client.d.ts +45 -3
  14. package/dist/esm/pmxt/client.js +103 -5
  15. package/dist/esm/pmxt/models.d.ts +3 -1
  16. package/dist/generated/src/apis/DefaultApi.d.ts +120 -4
  17. package/dist/generated/src/apis/DefaultApi.js +137 -6
  18. package/dist/generated/src/models/FetchOrderBooks200Response.d.ts +48 -0
  19. package/dist/generated/src/models/FetchOrderBooks200Response.js +55 -0
  20. package/dist/generated/src/models/FetchOrderBooksRequest.d.ts +39 -0
  21. package/dist/generated/src/models/FetchOrderBooksRequest.js +53 -0
  22. package/dist/generated/src/models/OrderBook.d.ts +6 -0
  23. package/dist/generated/src/models/OrderBook.js +2 -0
  24. package/dist/generated/src/models/index.d.ts +2 -0
  25. package/dist/generated/src/models/index.js +2 -0
  26. package/dist/index.d.ts +5 -2
  27. package/dist/index.js +7 -1
  28. package/dist/pmxt/client.d.ts +45 -3
  29. package/dist/pmxt/client.js +107 -6
  30. package/dist/pmxt/models.d.ts +3 -1
  31. package/generated/.openapi-generator/FILES +4 -0
  32. package/generated/docs/DefaultApi.md +130 -59
  33. package/generated/docs/FetchOrderBooks200Response.md +38 -0
  34. package/generated/docs/FetchOrderBooksRequest.md +36 -0
  35. package/generated/docs/GetExecutionPriceRequestArgsInner.md +2 -0
  36. package/generated/docs/OrderBook.md +2 -0
  37. package/generated/package.json +1 -1
  38. package/generated/src/apis/DefaultApi.ts +160 -5
  39. package/generated/src/models/FetchOrderBooks200Response.ts +96 -0
  40. package/generated/src/models/FetchOrderBooksRequest.ts +82 -0
  41. package/generated/src/models/OrderBook.ts +8 -0
  42. package/generated/src/models/index.ts +2 -0
  43. package/index.ts +5 -2
  44. package/package.json +2 -2
  45. package/pmxt/client.ts +111 -11
  46. package/pmxt/models.ts +4 -1
@@ -156,7 +156,8 @@ export declare abstract class Exchange {
156
156
  fetchEvents(params?: EventFetchParams): Promise<UnifiedEvent[]>;
157
157
  fetchMarket(params?: MarketFetchParams): Promise<UnifiedMarket>;
158
158
  fetchEvent(params?: EventFetchParams): Promise<UnifiedEvent>;
159
- fetchOrderBook(outcomeId: string | MarketOutcome, side?: any): Promise<OrderBook>;
159
+ fetchOrderBook(outcomeId: string | MarketOutcome, limit?: number, params?: Record<string, any>): Promise<OrderBook | OrderBook[]>;
160
+ fetchOrderBooks(outcomeIds: (string | MarketOutcome)[]): Promise<Record<string, OrderBook>>;
160
161
  submitOrder(built: BuiltOrder): Promise<Order>;
161
162
  cancelOrder(orderId: string): Promise<Order>;
162
163
  fetchOrder(orderId: string): Promise<Order>;
@@ -215,6 +216,7 @@ export declare abstract class Exchange {
215
216
  *
216
217
  * @param outcomeId - Outcome ID to watch
217
218
  * @param limit - Optional depth limit for order book
219
+ * @param params - Optional exchange-specific parameters
218
220
  * @returns Next order book update
219
221
  *
220
222
  * @example
@@ -227,7 +229,7 @@ export declare abstract class Exchange {
227
229
  * }
228
230
  * ```
229
231
  */
230
- watchOrderBook(outcomeId: string | MarketOutcome, limit?: number): Promise<OrderBook>;
232
+ watchOrderBook(outcomeId: string | MarketOutcome, limit?: number, params?: Record<string, any>): Promise<OrderBook>;
231
233
  /**
232
234
  * Watch real-time order book updates for multiple outcomes at once.
233
235
  *
@@ -240,6 +242,7 @@ export declare abstract class Exchange {
240
242
  *
241
243
  * @param outcomeIds - Array of outcome IDs (or MarketOutcome objects)
242
244
  * @param limit - Optional depth limit for each order book
245
+ * @param params - Optional exchange-specific parameters
243
246
  * @returns Record mapping ticker to OrderBook
244
247
  *
245
248
  * @example
@@ -253,7 +256,7 @@ export declare abstract class Exchange {
253
256
  * }
254
257
  * ```
255
258
  */
256
- watchOrderBooks(outcomeIds: (string | MarketOutcome)[], limit?: number): Promise<Record<string, OrderBook>>;
259
+ watchOrderBooks(outcomeIds: (string | MarketOutcome)[], limit?: number, params?: Record<string, any>): Promise<Record<string, OrderBook>>;
257
260
  /**
258
261
  * Stream all orderbook updates across venues via the hosted WebSocket API.
259
262
  *
@@ -661,3 +664,42 @@ export declare class Smarkets extends Exchange {
661
664
  export declare class PolymarketUS extends Exchange {
662
665
  constructor(options?: ExchangeOptions);
663
666
  }
667
+ /**
668
+ * Gemini Titan exchange client.
669
+ *
670
+ * @example
671
+ * ```typescript
672
+ * const titan = new GeminiTitan();
673
+ * const markets = await titan.fetchMarkets();
674
+ * ```
675
+ */
676
+ export declare class GeminiTitan extends Exchange {
677
+ constructor(options?: ExchangeOptions);
678
+ }
679
+ /**
680
+ * Hyperliquid exchange client.
681
+ *
682
+ * @example
683
+ * ```typescript
684
+ * const hl = new Hyperliquid();
685
+ * const markets = await hl.fetchMarkets();
686
+ * ```
687
+ */
688
+ export declare class Hyperliquid extends Exchange {
689
+ constructor(options?: ExchangeOptions);
690
+ }
691
+ /**
692
+ * Mock exchange client.
693
+ *
694
+ * Offline deterministic exchange for testing and development.
695
+ * No credentials required.
696
+ *
697
+ * @example
698
+ * ```typescript
699
+ * const mock = new Mock();
700
+ * const markets = await mock.fetchMarkets();
701
+ * ```
702
+ */
703
+ export declare class Mock extends Exchange {
704
+ constructor(options?: ExchangeOptions);
705
+ }
@@ -6,7 +6,7 @@
6
6
  * OpenAPI client, matching the Python API exactly.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.PolymarketUS = exports.Smarkets = exports.Metaculus = exports.Opinion = exports.Baozi = exports.Probable = exports.Myriad = exports.KalshiDemo = exports.Limitless = exports.Kalshi = exports.Polymarket = exports.Exchange = void 0;
9
+ exports.Mock = exports.Hyperliquid = exports.GeminiTitan = exports.PolymarketUS = exports.Smarkets = exports.Metaculus = exports.Opinion = exports.Baozi = exports.Probable = exports.Myriad = exports.KalshiDemo = exports.Limitless = exports.Kalshi = exports.Polymarket = exports.Exchange = void 0;
10
10
  const index_js_1 = require("../generated/src/index.js");
11
11
  const models_js_1 = require("./models.js");
12
12
  const server_manager_js_1 = require("./server-manager.js");
@@ -633,13 +633,18 @@ class Exchange {
633
633
  throw new errors_js_1.PmxtError(`Failed to fetchEvent: ${error}`);
634
634
  }
635
635
  }
636
- async fetchOrderBook(outcomeId, side) {
636
+ async fetchOrderBook(outcomeId, limit, params) {
637
637
  await this.initPromise;
638
638
  try {
639
639
  const args = [];
640
640
  args.push(resolveOutcomeId(outcomeId));
641
- if (side !== undefined)
642
- args.push(side);
641
+ if (limit !== undefined)
642
+ args.push(limit);
643
+ if (params !== undefined) {
644
+ if (limit === undefined)
645
+ args.push(null);
646
+ args.push(params);
647
+ }
643
648
  const response = await this.fetchWithRetry(`${this.resolveBaseUrl()}/api/${this.exchangeName}/fetchOrderBook`, {
644
649
  method: 'POST',
645
650
  headers: { 'Content-Type': 'application/json', ...this.getAuthHeaders() },
@@ -654,6 +659,9 @@ class Exchange {
654
659
  }
655
660
  const json = await response.json();
656
661
  const data = this.handleResponse(json);
662
+ if (Array.isArray(data)) {
663
+ return data.map(convertOrderBook);
664
+ }
657
665
  return convertOrderBook(data);
658
666
  }
659
667
  catch (error) {
@@ -662,6 +670,37 @@ class Exchange {
662
670
  throw new errors_js_1.PmxtError(`Failed to fetchOrderBook: ${error}`);
663
671
  }
664
672
  }
673
+ async fetchOrderBooks(outcomeIds) {
674
+ await this.initPromise;
675
+ try {
676
+ const args = [];
677
+ args.push(outcomeIds.map(resolveOutcomeId));
678
+ const response = await this.fetchWithRetry(`${this.resolveBaseUrl()}/api/${this.exchangeName}/fetchOrderBooks`, {
679
+ method: 'POST',
680
+ headers: { 'Content-Type': 'application/json', ...this.getAuthHeaders() },
681
+ body: JSON.stringify({ args, credentials: this.getCredentials() }),
682
+ });
683
+ if (!response.ok) {
684
+ const body = await response.json().catch(() => ({}));
685
+ if (body.error && typeof body.error === "object") {
686
+ throw (0, errors_js_1.fromServerError)(body.error);
687
+ }
688
+ throw new errors_js_1.PmxtError(body.error?.message || response.statusText);
689
+ }
690
+ const json = await response.json();
691
+ const data = this.handleResponse(json);
692
+ const result = {};
693
+ for (const [key, value] of Object.entries(data)) {
694
+ result[key] = convertOrderBook(value);
695
+ }
696
+ return result;
697
+ }
698
+ catch (error) {
699
+ if (error instanceof errors_js_1.PmxtError)
700
+ throw error;
701
+ throw new errors_js_1.PmxtError(`Failed to fetchOrderBooks: ${error}`);
702
+ }
703
+ }
665
704
  async submitOrder(built) {
666
705
  await this.initPromise;
667
706
  try {
@@ -1345,6 +1384,7 @@ class Exchange {
1345
1384
  *
1346
1385
  * @param outcomeId - Outcome ID to watch
1347
1386
  * @param limit - Optional depth limit for order book
1387
+ * @param params - Optional exchange-specific parameters
1348
1388
  * @returns Next order book update
1349
1389
  *
1350
1390
  * @example
@@ -1357,13 +1397,19 @@ class Exchange {
1357
1397
  * }
1358
1398
  * ```
1359
1399
  */
1360
- async watchOrderBook(outcomeId, limit) {
1400
+ async watchOrderBook(outcomeId, limit, params = {}) {
1361
1401
  await this.initPromise;
1362
1402
  const resolvedOutcomeId = resolveOutcomeId(outcomeId);
1363
1403
  const args = [resolvedOutcomeId];
1364
1404
  if (limit !== undefined) {
1365
1405
  args.push(limit);
1366
1406
  }
1407
+ if (Object.keys(params).length > 0) {
1408
+ if (limit === undefined) {
1409
+ args.push(undefined);
1410
+ }
1411
+ args.push(params);
1412
+ }
1367
1413
  // Try WebSocket transport first
1368
1414
  const wsData = await this.watchViaWs("watchOrderBook", args);
1369
1415
  if (wsData !== null) {
@@ -1405,6 +1451,7 @@ class Exchange {
1405
1451
  *
1406
1452
  * @param outcomeIds - Array of outcome IDs (or MarketOutcome objects)
1407
1453
  * @param limit - Optional depth limit for each order book
1454
+ * @param params - Optional exchange-specific parameters
1408
1455
  * @returns Record mapping ticker to OrderBook
1409
1456
  *
1410
1457
  * @example
@@ -1418,13 +1465,19 @@ class Exchange {
1418
1465
  * }
1419
1466
  * ```
1420
1467
  */
1421
- async watchOrderBooks(outcomeIds, limit) {
1468
+ async watchOrderBooks(outcomeIds, limit, params = {}) {
1422
1469
  await this.initPromise;
1423
1470
  const resolvedIds = outcomeIds.map(resolveOutcomeId);
1424
1471
  const args = [resolvedIds];
1425
1472
  if (limit !== undefined) {
1426
1473
  args.push(limit);
1427
1474
  }
1475
+ if (Object.keys(params).length > 0) {
1476
+ if (limit === undefined) {
1477
+ args.push(undefined);
1478
+ }
1479
+ args.push(params);
1480
+ }
1428
1481
  // Try WebSocket transport first
1429
1482
  const ws = await this.getOrCreateWs();
1430
1483
  if (ws) {
@@ -2395,3 +2448,51 @@ class PolymarketUS extends Exchange {
2395
2448
  }
2396
2449
  }
2397
2450
  exports.PolymarketUS = PolymarketUS;
2451
+ /**
2452
+ * Gemini Titan exchange client.
2453
+ *
2454
+ * @example
2455
+ * ```typescript
2456
+ * const titan = new GeminiTitan();
2457
+ * const markets = await titan.fetchMarkets();
2458
+ * ```
2459
+ */
2460
+ class GeminiTitan extends Exchange {
2461
+ constructor(options = {}) {
2462
+ super("gemini-titan", options);
2463
+ }
2464
+ }
2465
+ exports.GeminiTitan = GeminiTitan;
2466
+ /**
2467
+ * Hyperliquid exchange client.
2468
+ *
2469
+ * @example
2470
+ * ```typescript
2471
+ * const hl = new Hyperliquid();
2472
+ * const markets = await hl.fetchMarkets();
2473
+ * ```
2474
+ */
2475
+ class Hyperliquid extends Exchange {
2476
+ constructor(options = {}) {
2477
+ super("hyperliquid", options);
2478
+ }
2479
+ }
2480
+ exports.Hyperliquid = Hyperliquid;
2481
+ /**
2482
+ * Mock exchange client.
2483
+ *
2484
+ * Offline deterministic exchange for testing and development.
2485
+ * No credentials required.
2486
+ *
2487
+ * @example
2488
+ * ```typescript
2489
+ * const mock = new Mock();
2490
+ * const markets = await mock.fetchMarkets();
2491
+ * ```
2492
+ */
2493
+ class Mock extends Exchange {
2494
+ constructor(options = {}) {
2495
+ super("mock", options);
2496
+ }
2497
+ }
2498
+ exports.Mock = Mock;
@@ -102,7 +102,7 @@ export interface OrderLevel {
102
102
  size: number;
103
103
  }
104
104
  /**
105
- * Current order book for an outcome.
105
+ * Order book for an outcome.
106
106
  */
107
107
  export interface OrderBook {
108
108
  /** Bid orders (sorted high to low) */
@@ -111,6 +111,8 @@ export interface OrderBook {
111
111
  asks: OrderLevel[];
112
112
  /** Unix timestamp (milliseconds) */
113
113
  timestamp?: number;
114
+ /** ISO 8601 datetime string of the snapshot (CCXT-compatible) */
115
+ datetime?: string;
114
116
  }
115
117
  /**
116
118
  * A single event from the firehose stream.
@@ -60,6 +60,8 @@ docs/FetchMyTrades200Response.md
60
60
  docs/FetchOHLCV200Response.md
61
61
  docs/FetchOpenOrders200Response.md
62
62
  docs/FetchOrderBook200Response.md
63
+ docs/FetchOrderBooks200Response.md
64
+ docs/FetchOrderBooksRequest.md
63
65
  docs/FetchPositions200Response.md
64
66
  docs/FetchTrades200Response.md
65
67
  docs/FilterEventsRequest.md
@@ -166,6 +168,8 @@ src/models/FetchMyTrades200Response.ts
166
168
  src/models/FetchOHLCV200Response.ts
167
169
  src/models/FetchOpenOrders200Response.ts
168
170
  src/models/FetchOrderBook200Response.ts
171
+ src/models/FetchOrderBooks200Response.ts
172
+ src/models/FetchOrderBooksRequest.ts
169
173
  src/models/FetchPositions200Response.ts
170
174
  src/models/FetchTrades200Response.ts
171
175
  src/models/FilterEventsRequest.ts