pmxt-core 2.43.16 → 2.43.17

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.
@@ -63,6 +63,8 @@ export interface EventFetchParams {
63
63
  query?: string;
64
64
  /** Maximum number of results to return */
65
65
  limit?: number;
66
+ /** Opaque venue pagination cursor, where supported. */
67
+ cursor?: string;
66
68
  /** Pagination offset — number of results to skip */
67
69
  offset?: number;
68
70
  /** Sort order for results */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/kalshi/Kalshi.yaml
3
- * Generated at: 2026-05-24T14:21:23.446Z
3
+ * Generated at: 2026-05-24T14:28:52.843Z
4
4
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
5
5
  */
6
6
  export declare const kalshiApiSpec: {
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.kalshiApiSpec = void 0;
4
4
  /**
5
5
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/kalshi/Kalshi.yaml
6
- * Generated at: 2026-05-24T14:21:23.446Z
6
+ * Generated at: 2026-05-24T14:28:52.843Z
7
7
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
8
8
  */
9
9
  exports.kalshiApiSpec = {
@@ -37,6 +37,10 @@ export interface KalshiRawEvent {
37
37
  markets?: KalshiRawMarket[];
38
38
  [key: string]: unknown;
39
39
  }
40
+ export interface KalshiRawEventPage {
41
+ events: KalshiRawEvent[];
42
+ cursor?: string | null;
43
+ }
40
44
  export interface KalshiRawCandlestick {
41
45
  end_period_ts: number;
42
46
  volume?: number;
@@ -129,6 +133,7 @@ export declare class KalshiFetcher implements IExchangeFetcher<KalshiRawEvent, K
129
133
  resetCache(): void;
130
134
  fetchRawMarkets(params?: MarketFilterParams): Promise<KalshiRawEvent[]>;
131
135
  fetchRawEvents(params: EventFetchParams): Promise<KalshiRawEvent[]>;
136
+ fetchRawEventPage(params?: EventFetchParams): Promise<KalshiRawEventPage>;
132
137
  fetchRawOHLCV(id: string, params: OHLCVParams): Promise<KalshiRawCandlestick[]>;
133
138
  fetchRawOrderBook(id: string): Promise<KalshiRawOrderBook>;
134
139
  fetchRawOrderBooks(ids: string[]): Promise<KalshiRawOrderBook[]>;
@@ -146,4 +151,5 @@ export declare class KalshiFetcher implements IExchangeFetcher<KalshiRawEvent, K
146
151
  private fetchRawEventsDefault;
147
152
  private fetchActiveEvents;
148
153
  private fetchAllWithStatus;
154
+ private fetchPageWithStatus;
149
155
  }
@@ -80,6 +80,24 @@ class KalshiFetcher {
80
80
  throw errors_1.kalshiErrorMapper.mapError(error);
81
81
  }
82
82
  }
83
+ async fetchRawEventPage(params = {}) {
84
+ try {
85
+ const status = params?.status || 'active';
86
+ if (status === 'all') {
87
+ throw new Error('Kalshi cursor pagination supports a single status at a time.');
88
+ }
89
+ let apiStatus = 'open';
90
+ if (status === 'closed' || status === 'inactive')
91
+ apiStatus = 'closed';
92
+ if (status === 'settled')
93
+ apiStatus = 'settled';
94
+ const limit = Math.max(1, Math.floor(params.limit || BATCH_SIZE));
95
+ return this.fetchPageWithStatus(apiStatus, limit, params.cursor);
96
+ }
97
+ catch (error) {
98
+ throw errors_1.kalshiErrorMapper.mapError(error);
99
+ }
100
+ }
83
101
  // -- OHLCV ----------------------------------------------------------------
84
102
  async fetchRawOHLCV(id, params) {
85
103
  (0, validation_1.validateIdFormat)(id, 'OHLCV');
@@ -331,5 +349,33 @@ class KalshiFetcher {
331
349
  } while (cursor && page < MAX_PAGES);
332
350
  return allEvents;
333
351
  }
352
+ async fetchPageWithStatus(apiStatus, maxEvents, initialCursor) {
353
+ let allEvents = [];
354
+ let cursor = initialCursor || null;
355
+ let page = 0;
356
+ do {
357
+ const remaining = maxEvents - allEvents.length;
358
+ if (remaining <= 0)
359
+ break;
360
+ const queryParams = {
361
+ limit: Math.min(BATCH_SIZE, remaining),
362
+ with_nested_markets: true,
363
+ status: apiStatus,
364
+ };
365
+ if (cursor)
366
+ queryParams.cursor = cursor;
367
+ const data = await this.ctx.callApi('GetEvents', queryParams);
368
+ const events = data.events || [];
369
+ cursor = data.cursor || null;
370
+ page++;
371
+ if (events.length === 0)
372
+ break;
373
+ allEvents = allEvents.concat(events);
374
+ } while (cursor && allEvents.length < maxEvents && page < MAX_PAGES);
375
+ return {
376
+ events: allEvents.slice(0, maxEvents),
377
+ cursor,
378
+ };
379
+ }
334
380
  }
335
381
  exports.KalshiFetcher = KalshiFetcher;
@@ -23,6 +23,11 @@ export declare class KalshiExchange extends PredictionMarketExchange {
23
23
  private ensureAuth;
24
24
  protected fetchMarketsImpl(params?: MarketFilterParams): Promise<UnifiedMarket[]>;
25
25
  protected fetchEventsImpl(params: EventFetchParams): Promise<UnifiedEvent[]>;
26
+ fetchEventsPage(params?: EventFetchParams): Promise<{
27
+ events: UnifiedEvent[];
28
+ cursor: string | null;
29
+ nextCursor: string | null;
30
+ }>;
26
31
  fetchOHLCV(outcomeId: string, params: OHLCVParams): Promise<PriceCandle[]>;
27
32
  fetchOrderBook(outcomeId: string, _limit?: number, _params?: Record<string, any>): Promise<OrderBook>;
28
33
  fetchOrderBooks(outcomeIds: string[]): Promise<Record<string, OrderBook>>;
@@ -118,6 +118,21 @@ class KalshiExchange extends BaseExchange_1.PredictionMarketExchange {
118
118
  .filter((e) => e !== null)
119
119
  .slice(0, limit);
120
120
  }
121
+ async fetchEventsPage(params = {}) {
122
+ const page = await this.fetcher.fetchRawEventPage(params);
123
+ const query = (params?.query || '').toLowerCase();
124
+ const filtered = query
125
+ ? page.events.filter((event) => (event.title || '').toLowerCase().includes(query))
126
+ : page.events;
127
+ const events = filtered
128
+ .map((raw) => this.normalizer.normalizeEvent(raw))
129
+ .filter((e) => e !== null);
130
+ return {
131
+ events,
132
+ cursor: page.cursor || null,
133
+ nextCursor: page.cursor || null,
134
+ };
135
+ }
121
136
  async fetchOHLCV(outcomeId, params) {
122
137
  const rawCandles = await this.fetcher.fetchRawOHLCV(outcomeId, params);
123
138
  return this.normalizer.normalizeOHLCV(rawCandles, params);
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/limitless/Limitless.yaml
3
- * Generated at: 2026-05-24T14:21:23.484Z
3
+ * Generated at: 2026-05-24T14:28:52.889Z
4
4
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
5
5
  */
6
6
  export declare const limitlessApiSpec: {
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.limitlessApiSpec = void 0;
4
4
  /**
5
5
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/limitless/Limitless.yaml
6
- * Generated at: 2026-05-24T14:21:23.484Z
6
+ * Generated at: 2026-05-24T14:28:52.889Z
7
7
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
8
8
  */
9
9
  exports.limitlessApiSpec = {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/myriad/myriad.yaml
3
- * Generated at: 2026-05-24T14:21:23.500Z
3
+ * Generated at: 2026-05-24T14:28:52.908Z
4
4
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
5
5
  */
6
6
  export declare const myriadApiSpec: {
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.myriadApiSpec = void 0;
4
4
  /**
5
5
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/myriad/myriad.yaml
6
- * Generated at: 2026-05-24T14:21:23.500Z
6
+ * Generated at: 2026-05-24T14:28:52.908Z
7
7
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
8
8
  */
9
9
  exports.myriadApiSpec = {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/opinion/opinion-openapi.yaml
3
- * Generated at: 2026-05-24T14:21:23.506Z
3
+ * Generated at: 2026-05-24T14:28:52.913Z
4
4
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
5
5
  */
6
6
  export declare const opinionApiSpec: {
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.opinionApiSpec = void 0;
4
4
  /**
5
5
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/opinion/opinion-openapi.yaml
6
- * Generated at: 2026-05-24T14:21:23.506Z
6
+ * Generated at: 2026-05-24T14:28:52.913Z
7
7
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
8
8
  */
9
9
  exports.opinionApiSpec = {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/polymarket/PolymarketClobAPI.yaml
3
- * Generated at: 2026-05-24T14:21:23.452Z
3
+ * Generated at: 2026-05-24T14:28:52.850Z
4
4
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
5
5
  */
6
6
  export declare const polymarketClobSpec: {
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.polymarketClobSpec = void 0;
4
4
  /**
5
5
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/polymarket/PolymarketClobAPI.yaml
6
- * Generated at: 2026-05-24T14:21:23.452Z
6
+ * Generated at: 2026-05-24T14:28:52.850Z
7
7
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
8
8
  */
9
9
  exports.polymarketClobSpec = {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/polymarket/Polymarket_Data_API.yaml
3
- * Generated at: 2026-05-24T14:21:23.466Z
3
+ * Generated at: 2026-05-24T14:28:52.869Z
4
4
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
5
5
  */
6
6
  export declare const polymarketDataSpec: {
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.polymarketDataSpec = void 0;
4
4
  /**
5
5
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/polymarket/Polymarket_Data_API.yaml
6
- * Generated at: 2026-05-24T14:21:23.466Z
6
+ * Generated at: 2026-05-24T14:28:52.869Z
7
7
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
8
8
  */
9
9
  exports.polymarketDataSpec = {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/polymarket/PolymarketGammaAPI.yaml
3
- * Generated at: 2026-05-24T14:21:23.463Z
3
+ * Generated at: 2026-05-24T14:28:52.864Z
4
4
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
5
5
  */
6
6
  export declare const polymarketGammaSpec: {
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.polymarketGammaSpec = void 0;
4
4
  /**
5
5
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/polymarket/PolymarketGammaAPI.yaml
6
- * Generated at: 2026-05-24T14:21:23.463Z
6
+ * Generated at: 2026-05-24T14:28:52.864Z
7
7
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
8
8
  */
9
9
  exports.polymarketGammaSpec = {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/probable/probable.yaml
3
- * Generated at: 2026-05-24T14:21:23.493Z
3
+ * Generated at: 2026-05-24T14:28:52.898Z
4
4
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
5
5
  */
6
6
  export declare const probableApiSpec: {
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.probableApiSpec = void 0;
4
4
  /**
5
5
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/probable/probable.yaml
6
- * Generated at: 2026-05-24T14:21:23.493Z
6
+ * Generated at: 2026-05-24T14:28:52.898Z
7
7
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
8
8
  */
9
9
  exports.probableApiSpec = {
@@ -271,6 +271,12 @@ paths:
271
271
  schema:
272
272
  type: number
273
273
  description: Maximum number of results to return
274
+ - in: query
275
+ name: cursor
276
+ required: false
277
+ schema:
278
+ type: string
279
+ description: 'Opaque venue pagination cursor, where supported.'
274
280
  - in: query
275
281
  name: offset
276
282
  required: false
@@ -487,6 +493,12 @@ paths:
487
493
  schema:
488
494
  type: number
489
495
  description: Maximum number of results to return
496
+ - in: query
497
+ name: cursor
498
+ required: false
499
+ schema:
500
+ type: string
501
+ description: 'Opaque venue pagination cursor, where supported.'
490
502
  - in: query
491
503
  name: offset
492
504
  required: false
@@ -3105,6 +3117,9 @@ components:
3105
3117
  limit:
3106
3118
  type: number
3107
3119
  description: Maximum number of results to return
3120
+ cursor:
3121
+ type: string
3122
+ description: 'Opaque venue pagination cursor, where supported.'
3108
3123
  offset:
3109
3124
  type: number
3110
3125
  description: Pagination offset — number of results to skip
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pmxt-core",
3
- "version": "2.43.16",
3
+ "version": "2.43.17",
4
4
  "description": "pmxt is a unified prediction market data API. The ccxt for prediction markets.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -29,8 +29,8 @@
29
29
  "test": "jest -c jest.config.js",
30
30
  "server": "tsx watch src/server/index.ts",
31
31
  "server:prod": "node dist/server/index.js",
32
- "generate:sdk:python": "npx @openapitools/openapi-generator-cli generate -i src/server/openapi.yaml -g python -o ../sdks/python/generated --package-name pmxt_internal --additional-properties=projectName=pmxt-internal,packageVersion=2.43.16,library=urllib3",
33
- "generate:sdk:typescript": "npx @openapitools/openapi-generator-cli generate -i src/server/openapi.yaml -g typescript-fetch -o ../sdks/typescript/generated --additional-properties=npmName=pmxtjs,npmVersion=2.43.16,supportsES6=true,typescriptThreePlus=true && node ../sdks/typescript/scripts/fix-generated.js",
32
+ "generate:sdk:python": "npx @openapitools/openapi-generator-cli generate -i src/server/openapi.yaml -g python -o ../sdks/python/generated --package-name pmxt_internal --additional-properties=projectName=pmxt-internal,packageVersion=2.43.17,library=urllib3",
33
+ "generate:sdk:typescript": "npx @openapitools/openapi-generator-cli generate -i src/server/openapi.yaml -g typescript-fetch -o ../sdks/typescript/generated --additional-properties=npmName=pmxtjs,npmVersion=2.43.17,supportsES6=true,typescriptThreePlus=true && node ../sdks/typescript/scripts/fix-generated.js",
34
34
  "fetch:openapi": "node scripts/fetch-openapi-specs.js",
35
35
  "extract:jsdoc": "node ../scripts/extract-jsdoc.js",
36
36
  "generate:docs": "npm run extract:jsdoc && node ../scripts/generate-api-docs.js",