@catalyst-team/poly-sdk 0.4.6 → 0.4.7

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 (55) hide show
  1. package/README.md +18 -9
  2. package/README.zh-CN.md +18 -9
  3. package/dist/src/clients/data-api.d.ts +25 -0
  4. package/dist/src/clients/data-api.d.ts.map +1 -1
  5. package/dist/src/clients/data-api.js +57 -0
  6. package/dist/src/clients/data-api.js.map +1 -1
  7. package/dist/src/core/types.d.ts +55 -0
  8. package/dist/src/core/types.d.ts.map +1 -1
  9. package/dist/src/index.d.ts +6 -5
  10. package/dist/src/index.d.ts.map +1 -1
  11. package/dist/src/index.js +4 -2
  12. package/dist/src/index.js.map +1 -1
  13. package/dist/src/realtime/index.d.ts +18 -0
  14. package/dist/src/realtime/index.d.ts.map +1 -0
  15. package/dist/src/realtime/index.js +14 -0
  16. package/dist/src/realtime/index.js.map +1 -0
  17. package/dist/src/realtime/realtime-data-client.d.ts +274 -0
  18. package/dist/src/realtime/realtime-data-client.d.ts.map +1 -0
  19. package/dist/src/realtime/realtime-data-client.js +771 -0
  20. package/dist/src/realtime/realtime-data-client.js.map +1 -0
  21. package/dist/src/realtime/types.d.ts +485 -0
  22. package/dist/src/realtime/types.d.ts.map +1 -0
  23. package/dist/src/realtime/types.js +36 -0
  24. package/dist/src/realtime/types.js.map +1 -0
  25. package/dist/src/services/arbitrage-service.d.ts.map +1 -1
  26. package/dist/src/services/arbitrage-service.js +2 -1
  27. package/dist/src/services/arbitrage-service.js.map +1 -1
  28. package/dist/src/services/dip-arb-service.d.ts.map +1 -1
  29. package/dist/src/services/dip-arb-service.js +3 -19
  30. package/dist/src/services/dip-arb-service.js.map +1 -1
  31. package/dist/src/services/market-service.d.ts +93 -11
  32. package/dist/src/services/market-service.d.ts.map +1 -1
  33. package/dist/src/services/market-service.js +189 -22
  34. package/dist/src/services/market-service.js.map +1 -1
  35. package/dist/src/services/order-handle.test.d.ts +15 -0
  36. package/dist/src/services/order-handle.test.d.ts.map +1 -0
  37. package/dist/src/services/order-handle.test.js +333 -0
  38. package/dist/src/services/order-handle.test.js.map +1 -0
  39. package/dist/src/services/order-manager.d.ts +162 -6
  40. package/dist/src/services/order-manager.d.ts.map +1 -1
  41. package/dist/src/services/order-manager.js +419 -30
  42. package/dist/src/services/order-manager.js.map +1 -1
  43. package/dist/src/services/realtime-service-v2.d.ts +122 -6
  44. package/dist/src/services/realtime-service-v2.d.ts.map +1 -1
  45. package/dist/src/services/realtime-service-v2.js +475 -70
  46. package/dist/src/services/realtime-service-v2.js.map +1 -1
  47. package/dist/src/services/trading-service.d.ts +129 -1
  48. package/dist/src/services/trading-service.d.ts.map +1 -1
  49. package/dist/src/services/trading-service.js +198 -5
  50. package/dist/src/services/trading-service.js.map +1 -1
  51. package/package.json +1 -2
  52. package/dist/src/services/ctf-detector.d.ts +0 -215
  53. package/dist/src/services/ctf-detector.d.ts.map +0 -1
  54. package/dist/src/services/ctf-detector.js +0 -420
  55. package/dist/src/services/ctf-detector.js.map +0 -1
@@ -183,7 +183,7 @@ import { EventEmitter } from 'events';
183
183
  import { type LimitOrderParams, type MarketOrderParams, type Order, type OrderResult } from './trading-service.js';
184
184
  import { RateLimiter } from '../core/rate-limiter.js';
185
185
  import type { UnifiedCache } from '../core/unified-cache.js';
186
- import { OrderStatus } from '../core/types.js';
186
+ import { OrderStatus, type Side } from '../core/types.js';
187
187
  export interface OrderManagerConfig {
188
188
  /** Private key for signing transactions */
189
189
  privateKey: string;
@@ -294,6 +294,101 @@ export interface RejectEvent {
294
294
  reason: string;
295
295
  timestamp: number;
296
296
  }
297
+ /**
298
+ * Status of an order as seen through the OrderHandle.
299
+ * Maps to OrderStatus enum values but as a string union for ergonomic usage.
300
+ */
301
+ export type OrderHandleStatus = 'created' | 'open' | 'partially_filled' | 'filled' | 'cancelled' | 'rejected' | 'expired';
302
+ /**
303
+ * Terminal result returned when awaiting an OrderHandle.
304
+ */
305
+ export interface OrderFinalResult {
306
+ status: 'filled' | 'cancelled' | 'rejected' | 'expired';
307
+ order: Order | null;
308
+ fills: FillEvent[];
309
+ reason?: string;
310
+ }
311
+ /**
312
+ * Fluent, chainable handle for an order's lifecycle.
313
+ *
314
+ * Implements PromiseLike so callers can `await` for terminal state.
315
+ * Provides chainable lifecycle callbacks and cancel() for control.
316
+ *
317
+ * @example
318
+ * ```typescript
319
+ * const handle = orderManager.placeOrder({ tokenId, side: 'BUY', price: 0.52, size: 100 });
320
+ *
321
+ * handle
322
+ * .onAccepted((order) => console.log('Live:', order.id))
323
+ * .onPartialFill((fill) => console.log('Partial:', fill.fill.size))
324
+ * .onFilled((fill) => console.log('Done!'));
325
+ *
326
+ * const result = await handle;
327
+ * console.log(result.status, result.fills.length);
328
+ * ```
329
+ */
330
+ export interface OrderHandle extends PromiseLike<OrderFinalResult> {
331
+ /** Called when the order is accepted and open in the orderbook */
332
+ onAccepted(handler: (order: Order) => void): this;
333
+ /** Called on each partial fill */
334
+ onPartialFill(handler: (fill: FillEvent) => void): this;
335
+ /** Called when the order is fully filled */
336
+ onFilled(handler: (fill: FillEvent) => void): this;
337
+ /** Called if the order is rejected (validation/API failure) */
338
+ onRejected(handler: (reason: string) => void): this;
339
+ /** Called if the order is cancelled */
340
+ onCancelled(handler: (order: Order) => void): this;
341
+ /** Called if the order expires (GTD) */
342
+ onExpired(handler: (order: Order) => void): this;
343
+ /** Cancel the order. Returns true if cancellation succeeded. */
344
+ cancel(): Promise<boolean>;
345
+ /** The order ID (available after API acceptance, undefined before) */
346
+ readonly orderId: string | undefined;
347
+ /** Current status of the order */
348
+ readonly status: OrderHandleStatus;
349
+ }
350
+ /**
351
+ * Internal implementation of OrderHandle.
352
+ *
353
+ * Lifecycle:
354
+ * 1. Constructor receives orderManager ref and an executor function
355
+ * 2. Status starts at 'created'
356
+ * 3. Executor is invoked immediately (fire-and-forget)
357
+ * 4. On success: stores orderId, subscribes to OrderManager events
358
+ * 5. On rejection: transitions to 'rejected', resolves promise
359
+ * 6. On terminal events: resolves promise, removes listeners
360
+ */
361
+ export declare class OrderHandleImpl implements OrderHandle {
362
+ private orderManager;
363
+ private executor;
364
+ private _orderId;
365
+ private _status;
366
+ private _fills;
367
+ private _order;
368
+ private _reason;
369
+ private _resolve;
370
+ private _promise;
371
+ private _handlers;
372
+ private _eventCleanup;
373
+ constructor(orderManager: OrderManager, executor: () => Promise<OrderResult>);
374
+ then<TResult1 = OrderFinalResult, TResult2 = never>(onfulfilled?: ((value: OrderFinalResult) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null): PromiseLike<TResult1 | TResult2>;
375
+ onAccepted(handler: (order: Order) => void): this;
376
+ onPartialFill(handler: (fill: FillEvent) => void): this;
377
+ onFilled(handler: (fill: FillEvent) => void): this;
378
+ onRejected(handler: (reason: string) => void): this;
379
+ onCancelled(handler: (order: Order) => void): this;
380
+ onExpired(handler: (order: Order) => void): this;
381
+ cancel(): Promise<boolean>;
382
+ get orderId(): string | undefined;
383
+ get status(): OrderHandleStatus;
384
+ private execute;
385
+ private subscribeToEvents;
386
+ private resolveTerminal;
387
+ private cleanup;
388
+ private isTerminal;
389
+ private addHandler;
390
+ private invokeHandlers;
391
+ }
297
392
  export declare class OrderManager extends EventEmitter {
298
393
  private tradingService;
299
394
  private realtimeService;
@@ -360,6 +455,11 @@ export declare class OrderManager extends EventEmitter {
360
455
  * Auto-unwatches after cancellation
361
456
  */
362
457
  cancelOrder(orderId: string): Promise<OrderResult>;
458
+ /**
459
+ * Cancel all open orders for this wallet.
460
+ * Useful for cleanup on strategy shutdown.
461
+ */
462
+ cancelAllOrders(): Promise<OrderResult>;
363
463
  /**
364
464
  * Get order details
365
465
  * Fetches from TradingService (CLOB API)
@@ -371,13 +471,65 @@ export declare class OrderManager extends EventEmitter {
371
471
  */
372
472
  createBatchOrders(orders: LimitOrderParams[], metadata?: OrderMetadata): Promise<OrderResult>;
373
473
  /**
374
- * Manually watch an order
375
- * Used for monitoring externally-created orders
474
+ * Place a limit order and return a fluent OrderHandle.
475
+ *
476
+ * The handle is PromiseLike - await it for the terminal result.
477
+ * Chain lifecycle callbacks for real-time updates.
478
+ *
479
+ * @param params Limit order parameters
480
+ * @param metadata Optional metadata for tracking
481
+ * @returns OrderHandle - chainable, awaitable order lifecycle
482
+ *
483
+ * @example
484
+ * ```typescript
485
+ * const handle = orderManager.placeOrder({
486
+ * tokenId: '0x...',
487
+ * side: 'BUY',
488
+ * price: 0.52,
489
+ * size: 100,
490
+ * });
491
+ *
492
+ * handle
493
+ * .onAccepted((order) => console.log('Live:', order.id))
494
+ * .onFilled((fill) => console.log('Done!'));
495
+ *
496
+ * const result = await handle;
497
+ * ```
498
+ */
499
+ placeOrder(params: LimitOrderParams, metadata?: OrderMetadata): OrderHandle;
500
+ /**
501
+ * Place a market order (FOK/FAK) and return a fluent OrderHandle.
502
+ *
503
+ * @param params Market order parameters
504
+ * @param metadata Optional metadata for tracking
505
+ * @returns OrderHandle - chainable, awaitable order lifecycle
376
506
  *
377
- * @param orderId Order ID to watch
378
- * @param metadata Optional metadata
507
+ * @example
508
+ * ```typescript
509
+ * const result = await orderManager.placeMarketOrder({
510
+ * tokenId: '0x...',
511
+ * side: 'BUY',
512
+ * amount: 50,
513
+ * orderType: 'FOK',
514
+ * });
515
+ * console.log(result.status); // 'filled' or 'cancelled'
516
+ * ```
379
517
  */
380
- watchOrder(orderId: string, metadata?: OrderMetadata): void;
518
+ placeMarketOrder(params: MarketOrderParams, metadata?: OrderMetadata): OrderHandle;
519
+ /**
520
+ * Watch an order by ID
521
+ *
522
+ * @param orderId - Order ID to watch
523
+ * @param metadata - Optional metadata for strategy context
524
+ * @param initialOrderInfo - Optional initial order info (tokenId, side, price, size)
525
+ * to avoid relying on polling for accurate token type
526
+ */
527
+ watchOrder(orderId: string, metadata?: OrderMetadata, initialOrderInfo?: {
528
+ tokenId?: string;
529
+ side?: Side;
530
+ price?: number;
531
+ size?: number;
532
+ }): void;
381
533
  /**
382
534
  * Stop watching an order
383
535
  */
@@ -413,6 +565,10 @@ export declare class OrderManager extends EventEmitter {
413
565
  /**
414
566
  * Handle USER_TRADE WebSocket event (Polymarket-specific)
415
567
  * Triggered when: MATCHED, MINED, CONFIRMED
568
+ *
569
+ * Order lookup priority:
570
+ * 1. takerOrderId - if we placed a market order (FOK/FAK) or taker limit order
571
+ * 2. makerOrders[].orderId - if our limit order was matched as maker
416
572
  */
417
573
  private handleUserTrade;
418
574
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"order-manager.d.ts","sourceRoot":"","sources":["../../../src/services/order-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"order-manager.d.ts","sourceRoot":"","sources":["../../../src/services/order-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoLG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAkB,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnI,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAQ1D,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,gCAAgC;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC1C,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAuBD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAoBD;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,kBAAkB,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AAE1H;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;IACxD,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW,CAAC,gBAAgB,CAAC;IAChE,kEAAkE;IAClE,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAClD,kCAAkC;IAClC,aAAa,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI,CAAC;IACxD,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI,CAAC;IACnD,+DAA+D;IAC/D,UAAU,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IACpD,uCAAuC;IACvC,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IACnD,wCAAwC;IACxC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAEjD,gEAAgE;IAChE,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3B,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,kCAAkC;IAClC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;CACpC;AAQD;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,YAAW,WAAW;IAc/C,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,QAAQ;IAdlB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,OAAO,CAAqB;IAEpC,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,QAAQ,CAA4B;IAE5C,OAAO,CAAC,SAAS,CAAgE;IACjF,OAAO,CAAC,aAAa,CAA6B;gBAGxC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC;IAY9C,IAAI,CAAC,QAAQ,GAAG,gBAAgB,EAAE,QAAQ,GAAG,KAAK,EAChD,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,gBAAgB,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,EACpF,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GACtE,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAMnC,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAKjD,aAAa,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI;IAKvD,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI;IAKlD,UAAU,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAKnD,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAKlD,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAO1C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAUhC,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED,IAAI,MAAM,IAAI,iBAAiB,CAE9B;YAIa,OAAO;IAmCrB,OAAO,CAAC,iBAAiB;IAkEzB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,cAAc;CAWvB;AAMD,qBAAa,YAAa,SAAQ,YAAY;IAE5C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,eAAe,CAA0C;IAGjE,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,IAAI,CAAqC;IAGjD,OAAO,CAAC,WAAW,CAA0C;gBAEjD,MAAM,EAAE,kBAAkB;IAmCtC;;;;;OAKG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5B;;;;OAIG;IACH,IAAI,IAAI,IAAI;IAyBZ;;;;;;;;;;;;;;;OAeG;IACG,WAAW,CACf,MAAM,EAAE,gBAAgB,EACxB,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,WAAW,CAAC;IAkDvB;;;;;;;;;;;;;;;;;;OAkBG;IACG,iBAAiB,CACrB,MAAM,EAAE,iBAAiB,EACzB,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,WAAW,CAAC;IA0DvB;;;OAGG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAaxD;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC;IAe7C;;;OAGG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAKtD;;;OAGG;IACG,iBAAiB,CACrB,MAAM,EAAE,gBAAgB,EAAE,EAC1B,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,WAAW,CAAC;IAmBvB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,WAAW;IAO3E;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,WAAW;IAWlF;;;;;;;OAOG;IACH,UAAU,CACR,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,aAAa,EACxB,gBAAgB,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAClF,IAAI;IA4CP;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAanC;;OAEG;IACH,gBAAgB,IAAI,KAAK,EAAE;IAI3B;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAQnD;;;OAGG;YACW,aAAa;IAiC3B;;;OAGG;YACW,mBAAmB;IAyBjC;;;OAGG;YACW,wBAAwB;IAmCtC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAqCvB;;;;;;;OAOG;YACW,eAAe;IAuI7B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAsBpB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAkE1B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAoFxB;;;OAGG;YACW,eAAe;IAqC7B,OAAO,CAAC,iBAAiB;CAQ1B"}