pmxtjs 1.0.4 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/esm/generated/src/apis/DefaultApi.d.ts +45 -1
  2. package/dist/esm/generated/src/apis/DefaultApi.js +75 -1
  3. package/dist/esm/generated/src/models/WatchOrderBookRequest.d.ts +40 -0
  4. package/dist/esm/generated/src/models/WatchOrderBookRequest.js +47 -0
  5. package/dist/esm/generated/src/models/WatchOrderBookRequestArgsInner.d.ts +21 -0
  6. package/dist/esm/generated/src/models/WatchOrderBookRequestArgsInner.js +43 -0
  7. package/dist/esm/generated/src/models/WatchTradesRequest.d.ts +40 -0
  8. package/dist/esm/generated/src/models/WatchTradesRequest.js +47 -0
  9. package/dist/esm/generated/src/models/index.d.ts +3 -0
  10. package/dist/esm/generated/src/models/index.js +3 -0
  11. package/dist/esm/pmxt/client.d.ts +44 -0
  12. package/dist/esm/pmxt/client.js +90 -0
  13. package/dist/generated/src/apis/DefaultApi.d.ts +45 -1
  14. package/dist/generated/src/apis/DefaultApi.js +75 -1
  15. package/dist/generated/src/models/WatchOrderBookRequest.d.ts +40 -0
  16. package/dist/generated/src/models/WatchOrderBookRequest.js +54 -0
  17. package/dist/generated/src/models/WatchOrderBookRequestArgsInner.d.ts +21 -0
  18. package/dist/generated/src/models/WatchOrderBookRequestArgsInner.js +49 -0
  19. package/dist/generated/src/models/WatchTradesRequest.d.ts +40 -0
  20. package/dist/generated/src/models/WatchTradesRequest.js +54 -0
  21. package/dist/generated/src/models/index.d.ts +3 -0
  22. package/dist/generated/src/models/index.js +3 -0
  23. package/dist/pmxt/client.d.ts +44 -0
  24. package/dist/pmxt/client.js +90 -0
  25. package/generated/.openapi-generator/FILES +6 -0
  26. package/generated/docs/DefaultApi.md +142 -0
  27. package/generated/docs/WatchOrderBookRequest.md +36 -0
  28. package/generated/docs/WatchOrderBookRequestArgsInner.md +32 -0
  29. package/generated/docs/WatchTradesRequest.md +36 -0
  30. package/generated/package.json +1 -1
  31. package/generated/src/apis/DefaultApi.ts +116 -0
  32. package/generated/src/models/WatchOrderBookRequest.ts +89 -0
  33. package/generated/src/models/WatchOrderBookRequestArgsInner.ts +55 -0
  34. package/generated/src/models/WatchTradesRequest.ts +89 -0
  35. package/generated/src/models/index.ts +3 -0
  36. package/package.json +2 -2
  37. package/pmxt/client.ts +101 -0
package/pmxt/client.ts CHANGED
@@ -481,6 +481,107 @@ export abstract class Exchange {
481
481
  }
482
482
  }
483
483
 
484
+ // WebSocket Streaming Methods
485
+
486
+ /**
487
+ * Watch real-time order book updates via WebSocket.
488
+ *
489
+ * Returns a promise that resolves with the next order book update.
490
+ * Call repeatedly in a loop to stream updates (CCXT Pro pattern).
491
+ *
492
+ * @param outcomeId - Outcome ID to watch
493
+ * @param limit - Optional depth limit for order book
494
+ * @returns Next order book update
495
+ *
496
+ * @example
497
+ * ```typescript
498
+ * // Stream order book updates
499
+ * while (true) {
500
+ * const orderBook = await exchange.watchOrderBook(outcomeId);
501
+ * console.log(`Best bid: ${orderBook.bids[0].price}`);
502
+ * console.log(`Best ask: ${orderBook.asks[0].price}`);
503
+ * }
504
+ * ```
505
+ */
506
+ async watchOrderBook(outcomeId: string, limit?: number): Promise<OrderBook> {
507
+ await this.initPromise;
508
+ try {
509
+ const args: any[] = [outcomeId];
510
+ if (limit !== undefined) {
511
+ args.push(limit);
512
+ }
513
+
514
+ const requestBody: any = {
515
+ args,
516
+ credentials: this.getCredentials()
517
+ };
518
+
519
+ const response = await this.api.watchOrderBook({
520
+ exchange: this.exchangeName as any,
521
+ watchOrderBookRequest: requestBody,
522
+ });
523
+
524
+ const data = this.handleResponse(response);
525
+ return convertOrderBook(data);
526
+ } catch (error) {
527
+ throw new Error(`Failed to watch order book: ${error}`);
528
+ }
529
+ }
530
+
531
+ /**
532
+ * Watch real-time trade updates via WebSocket.
533
+ *
534
+ * Returns a promise that resolves with the next trade(s).
535
+ * Call repeatedly in a loop to stream updates (CCXT Pro pattern).
536
+ *
537
+ * @param outcomeId - Outcome ID to watch
538
+ * @param since - Optional timestamp to filter trades from
539
+ * @param limit - Optional limit for number of trades
540
+ * @returns Next trade update(s)
541
+ *
542
+ * @example
543
+ * ```typescript
544
+ * // Stream trade updates
545
+ * while (true) {
546
+ * const trades = await exchange.watchTrades(outcomeId);
547
+ * for (const trade of trades) {
548
+ * console.log(`Trade: ${trade.price} @ ${trade.amount}`);
549
+ * }
550
+ * }
551
+ * ```
552
+ */
553
+ async watchTrades(
554
+ outcomeId: string,
555
+ since?: number,
556
+ limit?: number
557
+ ): Promise<Trade[]> {
558
+ await this.initPromise;
559
+ try {
560
+ const args: any[] = [outcomeId];
561
+ if (since !== undefined) {
562
+ args.push(since);
563
+ }
564
+ if (limit !== undefined) {
565
+ args.push(limit);
566
+ }
567
+
568
+ const requestBody: any = {
569
+ args,
570
+ credentials: this.getCredentials()
571
+ };
572
+
573
+ const response = await this.api.watchTrades({
574
+ exchange: this.exchangeName as any,
575
+ watchTradesRequest: requestBody,
576
+ });
577
+
578
+ const data = this.handleResponse(response);
579
+ return data.map(convertTrade);
580
+ } catch (error) {
581
+ throw new Error(`Failed to watch trades: ${error}`);
582
+ }
583
+ }
584
+
484
585
  // Trading Methods (require authentication)
485
586
 
486
587
  /**