@structbuild/sdk 0.1.6 → 0.1.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.
package/dist/http.d.ts CHANGED
@@ -8,6 +8,9 @@ export declare class HttpClient {
8
8
  private readonly onResponse;
9
9
  constructor(config: HttpClientConfig);
10
10
  get<T>(path: string, options?: RequestOptions): Promise<HttpResponse<T>>;
11
+ post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<HttpResponse<T>>;
12
+ put<T>(path: string, body?: unknown, options?: RequestOptions): Promise<HttpResponse<T>>;
13
+ delete<T>(path: string, options?: RequestOptions): Promise<HttpResponse<T>>;
11
14
  private request;
12
15
  private executeRequest;
13
16
  private shouldRetry;
package/dist/index.cjs CHANGED
@@ -122,7 +122,16 @@ class HttpClient {
122
122
  async get(path, options) {
123
123
  return this.request("GET", path, options);
124
124
  }
125
- async request(method, path, options) {
125
+ async post(path, body, options) {
126
+ return this.request("POST", path, options, body);
127
+ }
128
+ async put(path, body, options) {
129
+ return this.request("PUT", path, options, body);
130
+ }
131
+ async delete(path, options) {
132
+ return this.request("DELETE", path, options);
133
+ }
134
+ async request(method, path, options, body) {
126
135
  const maxRetries = this.retry ? this.retry.maxRetries ?? DEFAULT_MAX_RETRIES : 0;
127
136
  const initialDelay = this.retry?.initialDelayMs ?? DEFAULT_INITIAL_DELAY_MS;
128
137
  const maxDelay = this.retry?.maxDelayMs ?? DEFAULT_MAX_DELAY_MS;
@@ -135,7 +144,7 @@ class HttpClient {
135
144
  await this.sleep(delay, options?.signal);
136
145
  }
137
146
  try {
138
- return await this.executeRequest(method, path, options);
147
+ return await this.executeRequest(method, path, options, body);
139
148
  } catch (error) {
140
149
  if (attempt < maxRetries && this.shouldRetry(error)) {
141
150
  lastError = error;
@@ -149,9 +158,12 @@ class HttpClient {
149
158
  }
150
159
  throw new NetworkError("Request failed after retries");
151
160
  }
152
- async executeRequest(method, path, options) {
161
+ async executeRequest(method, path, options, body) {
153
162
  const url = this.buildUrl(path, options?.params);
154
163
  const headers = { ...this.defaultHeaders, ...options?.headers };
164
+ if (body !== undefined) {
165
+ headers["Content-Type"] = "application/json";
166
+ }
155
167
  const controller = new AbortController;
156
168
  const timeoutId = setTimeout(() => controller.abort(), this.timeout);
157
169
  const signal = options?.signal ? AbortSignal.any([options.signal, controller.signal]) : controller.signal;
@@ -162,7 +174,12 @@ class HttpClient {
162
174
  } catch {}
163
175
  }
164
176
  const startTime = performance.now();
165
- const response = await fetch(url, { method, headers, signal });
177
+ const response = await fetch(url, {
178
+ method,
179
+ headers,
180
+ signal,
181
+ body: body !== undefined ? JSON.stringify(body) : undefined
182
+ });
166
183
  if (this.onResponse) {
167
184
  try {
168
185
  await this.onResponse({
@@ -175,13 +192,13 @@ class HttpClient {
175
192
  } catch {}
176
193
  }
177
194
  if (!response.ok) {
178
- let body;
195
+ let body2;
179
196
  try {
180
- body = await response.json();
197
+ body2 = await response.json();
181
198
  } catch {
182
- body = await response.text();
199
+ body2 = await response.text();
183
200
  }
184
- throw new HttpError(response.status, response.statusText, body, response.headers);
201
+ throw new HttpError(response.status, response.statusText, body2, response.headers);
185
202
  }
186
203
  return await this.parseApiResponse(response, method);
187
204
  } catch (error) {
@@ -280,6 +297,34 @@ class Namespace {
280
297
  get(venue, path, options) {
281
298
  return this.http.get(`/${venue ?? this.defaultVenue}${path}`, options);
282
299
  }
300
+ post(venue, path, body, options) {
301
+ return this.http.post(`/${venue ?? this.defaultVenue}${path}`, body, options);
302
+ }
303
+ put(venue, path, body, options) {
304
+ return this.http.put(`/${venue ?? this.defaultVenue}${path}`, body, options);
305
+ }
306
+ delete(venue, path, options) {
307
+ return this.http.delete(`/${venue ?? this.defaultVenue}${path}`, options);
308
+ }
309
+ }
310
+
311
+ class PlatformNamespace {
312
+ http;
313
+ constructor(http) {
314
+ this.http = http;
315
+ }
316
+ get(path, options) {
317
+ return this.http.get(path, options);
318
+ }
319
+ post(path, body, options) {
320
+ return this.http.post(path, body, options);
321
+ }
322
+ put(path, body, options) {
323
+ return this.http.put(path, body, options);
324
+ }
325
+ delete(path, options) {
326
+ return this.http.delete(path, options);
327
+ }
283
328
  }
284
329
  // src/namespaces/holders.ts
285
330
  class HoldersNamespace extends Namespace {
@@ -308,21 +353,6 @@ class HoldersNamespace extends Namespace {
308
353
  return this.get(venue, `/holders/positions/${encodeURIComponent(positionId)}/history`, { params: query });
309
354
  }
310
355
  }
311
- // src/namespaces/scoring.ts
312
- class ScoringNamespace extends Namespace {
313
- async getTraderScore(params, venue) {
314
- return this.get(venue, `/scoring/trader/${encodeURIComponent(params.address)}`);
315
- }
316
- async getSmartMoneyLeaderboard(params, venue) {
317
- return this.get(venue, "/scoring/leaderboard/smart-money", { params: { ...params } });
318
- }
319
- async getInsiderLeaderboard(params, venue) {
320
- return this.get(venue, "/scoring/leaderboard/insiders", { params: { ...params } });
321
- }
322
- async getBots(params, venue) {
323
- return this.get(venue, "/scoring/bots", { params: { ...params } });
324
- }
325
- }
326
356
  // src/namespaces/tags.ts
327
357
  class TagsNamespace extends Namespace {
328
358
  async getTags(params, venue) {
@@ -334,14 +364,6 @@ class TagsNamespace extends Namespace {
334
364
  }
335
365
  // src/namespaces/events.ts
336
366
  class EventsNamespace extends Namespace {
337
- async getEvent(params, venue) {
338
- const { id, ...query } = params;
339
- return this.get(venue, `/events/${encodeURIComponent(id)}`, { params: query });
340
- }
341
- async getEventBySlug(params, venue) {
342
- const { slug, ...query } = params;
343
- return this.get(venue, `/events/slug/${encodeURIComponent(slug)}`, { params: query });
344
- }
345
367
  async getEvents(params, venue) {
346
368
  return this.get(venue, "/events", { params: { ...params } });
347
369
  }
@@ -354,12 +376,6 @@ class MarketsNamespace extends Namespace {
354
376
  async getMarkets(params, venue) {
355
377
  return this.get(venue, "/market", { params: { ...params } });
356
378
  }
357
- async getMarket(params, venue) {
358
- return this.get(venue, `/market/${encodeURIComponent(params.conditionId)}`);
359
- }
360
- async getMarketBySlug(params, venue) {
361
- return this.get(venue, `/market/slug/${encodeURIComponent(params.slug)}`);
362
- }
363
379
  async getMarketMetrics(params, venue) {
364
380
  return this.get(venue, "/market/metrics", { params: { ...params } });
365
381
  }
@@ -447,7 +463,7 @@ class TraderNamespace extends Namespace {
447
463
  // src/namespaces/bonds.ts
448
464
  class BondsNamespace extends Namespace {
449
465
  async getBonds(params, venue) {
450
- return this.get(venue, "/bonds", { params: { ...params } });
466
+ return this.get(venue, "/market/bonds", { params: { ...params } });
451
467
  }
452
468
  }
453
469
  // src/namespaces/search.ts
@@ -456,12 +472,33 @@ class SearchNamespace extends Namespace {
456
472
  return this.get(venue, "/search", { params: { ...params } });
457
473
  }
458
474
  }
475
+ // src/namespaces/webhooks.ts
476
+ class WebhooksNamespace extends PlatformNamespace {
477
+ async list(params) {
478
+ return this.http.get("/webhooks", { params: { ...params } });
479
+ }
480
+ async create(body) {
481
+ return this.http.post("/webhooks", body);
482
+ }
483
+ async getWebhook(params) {
484
+ return this.http.get(`/webhooks/${encodeURIComponent(params.webhookId)}`);
485
+ }
486
+ async update(params) {
487
+ const { webhookId, ...body } = params;
488
+ return this.http.put(`/webhooks/${encodeURIComponent(webhookId)}`, body);
489
+ }
490
+ async deleteWebhook(params) {
491
+ return this.http.delete(`/webhooks/${encodeURIComponent(params.webhookId)}`);
492
+ }
493
+ async test(params) {
494
+ return this.http.post(`/webhooks/${encodeURIComponent(params.webhookId)}/test`);
495
+ }
496
+ }
459
497
  // src/client.ts
460
498
  var DEFAULT_BASE_URL = "https://api.struct.to/v1";
461
499
 
462
500
  class StructClient {
463
501
  holders;
464
- scoring;
465
502
  tags;
466
503
  events;
467
504
  markets;
@@ -469,6 +506,7 @@ class StructClient {
469
506
  trader;
470
507
  bonds;
471
508
  search;
509
+ webhooks;
472
510
  constructor(config) {
473
511
  const http = new HttpClient({
474
512
  baseUrl: config.baseUrl ?? DEFAULT_BASE_URL,
@@ -483,7 +521,6 @@ class StructClient {
483
521
  });
484
522
  const venue = config.venue ?? "polymarket";
485
523
  this.holders = new HoldersNamespace(http, venue);
486
- this.scoring = new ScoringNamespace(http, venue);
487
524
  this.tags = new TagsNamespace(http, venue);
488
525
  this.events = new EventsNamespace(http, venue);
489
526
  this.markets = new MarketsNamespace(http, venue);
@@ -491,6 +528,7 @@ class StructClient {
491
528
  this.trader = new TraderNamespace(http, venue);
492
529
  this.bonds = new BondsNamespace(http, venue);
493
530
  this.search = new SearchNamespace(http, venue);
531
+ this.webhooks = new WebhooksNamespace(http);
494
532
  }
495
533
  }
496
534
  // src/ws-transport.ts
@@ -894,5 +932,5 @@ async function* paginate(fetcher, params, pageSize = DEFAULT_PAGE_SIZE) {
894
932
  }
895
933
  }
896
934
 
897
- //# debugId=7C974BF87CA6338564756E2164756E21
935
+ //# debugId=8CA02329162CB9E864756E2164756E21
898
936
  //# sourceMappingURL=index.js.map
@@ -1,25 +1,25 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/errors.ts", "../src/http.ts", "../src/namespaces/base.ts", "../src/namespaces/holders.ts", "../src/namespaces/scoring.ts", "../src/namespaces/tags.ts", "../src/namespaces/events.ts", "../src/namespaces/markets.ts", "../src/namespaces/series.ts", "../src/namespaces/trader.ts", "../src/namespaces/bonds.ts", "../src/namespaces/search.ts", "../src/client.ts", "../src/ws-transport.ts", "../src/ws.ts", "../src/paginate.ts"],
3
+ "sources": ["../src/errors.ts", "../src/http.ts", "../src/namespaces/base.ts", "../src/namespaces/holders.ts", "../src/namespaces/tags.ts", "../src/namespaces/events.ts", "../src/namespaces/markets.ts", "../src/namespaces/series.ts", "../src/namespaces/trader.ts", "../src/namespaces/bonds.ts", "../src/namespaces/search.ts", "../src/namespaces/webhooks.ts", "../src/client.ts", "../src/ws-transport.ts", "../src/ws.ts", "../src/paginate.ts"],
4
4
  "sourcesContent": [
5
5
  "export class StructError extends Error {\n\tconstructor(message: string, options?: ErrorOptions) {\n\t\tsuper(message, options);\n\t\tthis.name = \"StructError\";\n\t}\n}\n\nexport class HttpError extends StructError {\n\treadonly status: number;\n\treadonly statusText: string;\n\treadonly body: unknown;\n\treadonly responseHeaders: Headers | undefined;\n\n\tconstructor(status: number, statusText: string, body: unknown, responseHeaders?: Headers) {\n\t\tsuper(`HTTP ${status}: ${statusText}`);\n\t\tthis.name = \"HttpError\";\n\t\tthis.status = status;\n\t\tthis.statusText = statusText;\n\t\tthis.body = body;\n\t\tthis.responseHeaders = responseHeaders;\n\t}\n}\n\nexport class NetworkError extends StructError {\n\tconstructor(message: string, options?: ErrorOptions) {\n\t\tsuper(message, options);\n\t\tthis.name = \"NetworkError\";\n\t}\n}\n\nexport class TimeoutError extends StructError {\n\tconstructor(timeout: number) {\n\t\tsuper(`Request timed out after ${timeout}ms`);\n\t\tthis.name = \"TimeoutError\";\n\t}\n}\n\nexport class WebSocketError extends StructError {\n\tconstructor(message: string, options?: ErrorOptions) {\n\t\tsuper(message, options);\n\t\tthis.name = \"WebSocketError\";\n\t}\n}\n\nexport class WebSocketClosedError extends WebSocketError {\n\treadonly code: number;\n\treadonly reason: string;\n\n\tconstructor(code: number, reason: string) {\n\t\tsuper(`WebSocket closed: ${code} ${reason}`);\n\t\tthis.name = \"WebSocketClosedError\";\n\t\tthis.code = code;\n\t\tthis.reason = reason;\n\t}\n}\n",
6
- "import { HttpError, NetworkError, StructError, TimeoutError } from \"./errors.js\";\nimport type { HttpClientConfig, HttpResponse, RequestOptions, RequestHookInfo, ResponseHookInfo, RetryConfig, ApiResponseInfo } from \"./types/http.js\";\n\nconst DEFAULT_TIMEOUT = 30_000;\nconst DEFAULT_MAX_RETRIES = 3;\nconst DEFAULT_INITIAL_DELAY_MS = 1_000;\nconst DEFAULT_MAX_DELAY_MS = 30_000;\nconst RETRYABLE_STATUSES = new Set([429, 500, 502, 503, 504]);\n\nexport class HttpClient {\n\tprivate readonly baseUrl: string;\n\tprivate readonly defaultHeaders: Record<string, string>;\n\tprivate readonly timeout: number;\n\tprivate readonly retry: RetryConfig | undefined;\n\tprivate readonly onRequest: ((info: RequestHookInfo) => void | Promise<void>) | undefined;\n\tprivate readonly onResponse: ((info: ResponseHookInfo) => void | Promise<void>) | undefined;\n\n\tconstructor(config: HttpClientConfig) {\n\t\tthis.baseUrl = config.baseUrl.replace(/\\/+$/, \"\");\n\t\tthis.defaultHeaders = config.defaultHeaders ?? {};\n\t\tthis.timeout = config.timeout ?? DEFAULT_TIMEOUT;\n\t\tthis.retry = config.retry;\n\t\tthis.onRequest = config.onRequest;\n\t\tthis.onResponse = config.onResponse;\n\t}\n\n\tasync get<T>(path: string, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.request<T>(\"GET\", path, options);\n\t}\n\n\tprivate async request<T>(method: string, path: string, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\tconst maxRetries = this.retry\n\t\t\t? (this.retry.maxRetries ?? DEFAULT_MAX_RETRIES)\n\t\t\t: 0;\n\t\tconst initialDelay = this.retry?.initialDelayMs ?? DEFAULT_INITIAL_DELAY_MS;\n\t\tconst maxDelay = this.retry?.maxDelayMs ?? DEFAULT_MAX_DELAY_MS;\n\n\t\tlet lastError: unknown;\n\n\t\tfor (let attempt = 0; attempt <= maxRetries; attempt++) {\n\t\t\tif (attempt > 0 && lastError !== undefined) {\n\t\t\t\tconst retryAfter = lastError instanceof HttpError\n\t\t\t\t\t? this.parseRetryAfter(lastError)\n\t\t\t\t\t: undefined;\n\t\t\t\tconst exponentialDelay = Math.min(initialDelay * 2 ** (attempt - 1), maxDelay);\n\t\t\t\tconst delay = retryAfter ?? exponentialDelay;\n\t\t\t\tawait this.sleep(delay, options?.signal);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\treturn await this.executeRequest<T>(method, path, options);\n\t\t\t} catch (error) {\n\t\t\t\tif (attempt < maxRetries && this.shouldRetry(error)) {\n\t\t\t\t\tlastError = error;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tif (lastError instanceof Error) {\n\t\t\tthrow lastError;\n\t\t}\n\t\tthrow new NetworkError(\"Request failed after retries\");\n\t}\n\n\tprivate async executeRequest<T>(method: string, path: string, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\tconst url = this.buildUrl(path, options?.params);\n\t\tconst headers = { ...this.defaultHeaders, ...options?.headers };\n\n\t\tconst controller = new AbortController();\n\t\tconst timeoutId = setTimeout(() => controller.abort(), this.timeout);\n\n\t\tconst signal = options?.signal ? AbortSignal.any([options.signal, controller.signal]) : controller.signal;\n\n\t\ttry {\n\t\t\tif (this.onRequest) {\n\t\t\t\ttry { await this.onRequest({ method, url, headers }); } catch {}\n\t\t\t}\n\n\t\t\tconst startTime = performance.now();\n\t\t\tconst response = await fetch(url, { method, headers, signal });\n\n\t\t\tif (this.onResponse) {\n\t\t\t\ttry {\n\t\t\t\t\tawait this.onResponse({\n\t\t\t\t\t\tmethod,\n\t\t\t\t\t\turl,\n\t\t\t\t\t\tstatus: response.status,\n\t\t\t\t\t\theaders: response.headers,\n\t\t\t\t\t\tdurationMs: performance.now() - startTime,\n\t\t\t\t\t});\n\t\t\t\t} catch {}\n\t\t\t}\n\n\t\t\tif (!response.ok) {\n\t\t\t\tlet body: unknown;\n\t\t\t\ttry {\n\t\t\t\t\tbody = await response.json();\n\t\t\t\t} catch {\n\t\t\t\t\tbody = await response.text();\n\t\t\t\t}\n\t\t\t\tthrow new HttpError(response.status, response.statusText, body, response.headers);\n\t\t\t}\n\n\t\t\treturn await this.parseApiResponse<T>(response, method);\n\t\t} catch (error) {\n\t\t\tif (error instanceof HttpError) throw error;\n\t\t\tif (error instanceof SyntaxError || error instanceof TypeError) {\n\t\t\t\tthrow new StructError(\"Failed to parse HTTP response body\", { cause: error });\n\t\t\t}\n\n\t\t\tif (error instanceof DOMException && error.name === \"AbortError\") {\n\t\t\t\tif (options?.signal?.aborted) throw error;\n\t\t\t\tthrow new TimeoutError(this.timeout);\n\t\t\t}\n\n\t\t\tthrow new NetworkError(\"Network request failed\", { cause: error });\n\t\t} finally {\n\t\t\tclearTimeout(timeoutId);\n\t\t}\n\t}\n\n\tprivate shouldRetry(error: unknown): boolean {\n\t\tif (error instanceof HttpError) {\n\t\t\treturn RETRYABLE_STATUSES.has(error.status);\n\t\t}\n\t\treturn error instanceof NetworkError || error instanceof TimeoutError;\n\t}\n\n\tprivate async parseApiResponse<T>(response: Response, method: string): Promise<HttpResponse<T>> {\n\t\tif (method === \"HEAD\" || response.status === 204 || response.status === 205) {\n\t\t\treturn { data: undefined as T, message: null, success: true };\n\t\t}\n\n\t\tconst text = await response.text();\n\t\tif (text.length === 0) {\n\t\t\treturn { data: undefined as T, message: null, success: true };\n\t\t}\n\n\t\tconst contentType = response.headers.get(\"content-type\")?.toLowerCase() ?? \"\";\n\t\tif (!contentType.includes(\"json\")) {\n\t\t\treturn { data: text as T, message: null, success: true };\n\t\t}\n\n\t\tconst body = JSON.parse(text);\n\n\t\tif (body && typeof body === \"object\" && \"success\" in body && \"data\" in body) {\n\t\t\treturn {\n\t\t\t\tdata: body.data as T,\n\t\t\t\tmessage: body.message ?? null,\n\t\t\t\tsuccess: body.success,\n\t\t\t\tinfo: body.info as ApiResponseInfo | undefined,\n\t\t\t};\n\t\t}\n\n\t\treturn { data: body as T, message: null, success: true };\n\t}\n\n\tprivate parseRetryAfter(error: HttpError): number | undefined {\n\t\tconst header = error.responseHeaders?.get(\"retry-after\");\n\t\tif (!header) return undefined;\n\n\t\tconst seconds = Number(header);\n\t\tif (!Number.isNaN(seconds) && seconds > 0) return seconds * 1_000;\n\n\t\tconst date = Date.parse(header);\n\t\tif (!Number.isNaN(date)) {\n\t\t\tconst delay = date - Date.now();\n\t\t\treturn delay > 0 ? delay : undefined;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tprivate sleep(ms: number, signal?: AbortSignal): Promise<void> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (signal?.aborted) {\n\t\t\t\treject(signal.reason);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst timer = setTimeout(resolve, ms);\n\t\t\tsignal?.addEventListener(\"abort\", () => {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\treject(signal.reason);\n\t\t\t}, { once: true });\n\t\t});\n\t}\n\n\tprivate buildUrl(path: string, params?: Record<string, string | number | boolean | undefined>): string {\n\t\tconst url = new URL(this.baseUrl + path);\n\n\t\tif (params) {\n\t\t\tfor (const [key, value] of Object.entries(params)) {\n\t\t\t\tif (value !== undefined) {\n\t\t\t\t\turl.searchParams.set(key, String(value));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn url.toString();\n\t}\n}\n",
7
- "import type { HttpClient } from \"../http.js\";\nimport type { HttpResponse, RequestOptions } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\n\nexport class Namespace {\n\tprotected readonly http: HttpClient;\n\tprotected readonly defaultVenue: Venue;\n\n\tconstructor(http: HttpClient, defaultVenue: Venue) {\n\t\tthis.http = http;\n\t\tthis.defaultVenue = defaultVenue;\n\t}\n\n\tprotected get<T>(venue: Venue | undefined, path: string, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.get<T>(`/${venue ?? this.defaultVenue}${path}`, options);\n\t}\n}\n",
6
+ "import { HttpError, NetworkError, StructError, TimeoutError } from \"./errors.js\";\nimport type { HttpClientConfig, HttpResponse, RequestOptions, RequestHookInfo, ResponseHookInfo, RetryConfig, ApiResponseInfo } from \"./types/http.js\";\n\nconst DEFAULT_TIMEOUT = 30_000;\nconst DEFAULT_MAX_RETRIES = 3;\nconst DEFAULT_INITIAL_DELAY_MS = 1_000;\nconst DEFAULT_MAX_DELAY_MS = 30_000;\nconst RETRYABLE_STATUSES = new Set([429, 500, 502, 503, 504]);\n\nexport class HttpClient {\n\tprivate readonly baseUrl: string;\n\tprivate readonly defaultHeaders: Record<string, string>;\n\tprivate readonly timeout: number;\n\tprivate readonly retry: RetryConfig | undefined;\n\tprivate readonly onRequest: ((info: RequestHookInfo) => void | Promise<void>) | undefined;\n\tprivate readonly onResponse: ((info: ResponseHookInfo) => void | Promise<void>) | undefined;\n\n\tconstructor(config: HttpClientConfig) {\n\t\tthis.baseUrl = config.baseUrl.replace(/\\/+$/, \"\");\n\t\tthis.defaultHeaders = config.defaultHeaders ?? {};\n\t\tthis.timeout = config.timeout ?? DEFAULT_TIMEOUT;\n\t\tthis.retry = config.retry;\n\t\tthis.onRequest = config.onRequest;\n\t\tthis.onResponse = config.onResponse;\n\t}\n\n\tasync get<T>(path: string, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.request<T>(\"GET\", path, options);\n\t}\n\n\tasync post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.request<T>(\"POST\", path, options, body);\n\t}\n\n\tasync put<T>(path: string, body?: unknown, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.request<T>(\"PUT\", path, options, body);\n\t}\n\n\tasync delete<T>(path: string, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.request<T>(\"DELETE\", path, options);\n\t}\n\n\tprivate async request<T>(method: string, path: string, options?: RequestOptions, body?: unknown): Promise<HttpResponse<T>> {\n\t\tconst maxRetries = this.retry\n\t\t\t? (this.retry.maxRetries ?? DEFAULT_MAX_RETRIES)\n\t\t\t: 0;\n\t\tconst initialDelay = this.retry?.initialDelayMs ?? DEFAULT_INITIAL_DELAY_MS;\n\t\tconst maxDelay = this.retry?.maxDelayMs ?? DEFAULT_MAX_DELAY_MS;\n\n\t\tlet lastError: unknown;\n\n\t\tfor (let attempt = 0; attempt <= maxRetries; attempt++) {\n\t\t\tif (attempt > 0 && lastError !== undefined) {\n\t\t\t\tconst retryAfter = lastError instanceof HttpError\n\t\t\t\t\t? this.parseRetryAfter(lastError)\n\t\t\t\t\t: undefined;\n\t\t\t\tconst exponentialDelay = Math.min(initialDelay * 2 ** (attempt - 1), maxDelay);\n\t\t\t\tconst delay = retryAfter ?? exponentialDelay;\n\t\t\t\tawait this.sleep(delay, options?.signal);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\treturn await this.executeRequest<T>(method, path, options, body);\n\t\t\t} catch (error) {\n\t\t\t\tif (attempt < maxRetries && this.shouldRetry(error)) {\n\t\t\t\t\tlastError = error;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tif (lastError instanceof Error) {\n\t\t\tthrow lastError;\n\t\t}\n\t\tthrow new NetworkError(\"Request failed after retries\");\n\t}\n\n\tprivate async executeRequest<T>(method: string, path: string, options?: RequestOptions, body?: unknown): Promise<HttpResponse<T>> {\n\t\tconst url = this.buildUrl(path, options?.params);\n\t\tconst headers = { ...this.defaultHeaders, ...options?.headers };\n\n\t\tif (body !== undefined) {\n\t\t\theaders[\"Content-Type\"] = \"application/json\";\n\t\t}\n\n\t\tconst controller = new AbortController();\n\t\tconst timeoutId = setTimeout(() => controller.abort(), this.timeout);\n\n\t\tconst signal = options?.signal ? AbortSignal.any([options.signal, controller.signal]) : controller.signal;\n\n\t\ttry {\n\t\t\tif (this.onRequest) {\n\t\t\t\ttry { await this.onRequest({ method, url, headers }); } catch {}\n\t\t\t}\n\n\t\t\tconst startTime = performance.now();\n\t\t\tconst response = await fetch(url, {\n\t\t\t\tmethod,\n\t\t\t\theaders,\n\t\t\t\tsignal,\n\t\t\t\tbody: body !== undefined ? JSON.stringify(body) : undefined,\n\t\t\t});\n\n\t\t\tif (this.onResponse) {\n\t\t\t\ttry {\n\t\t\t\t\tawait this.onResponse({\n\t\t\t\t\t\tmethod,\n\t\t\t\t\t\turl,\n\t\t\t\t\t\tstatus: response.status,\n\t\t\t\t\t\theaders: response.headers,\n\t\t\t\t\t\tdurationMs: performance.now() - startTime,\n\t\t\t\t\t});\n\t\t\t\t} catch {}\n\t\t\t}\n\n\t\t\tif (!response.ok) {\n\t\t\t\tlet body: unknown;\n\t\t\t\ttry {\n\t\t\t\t\tbody = await response.json();\n\t\t\t\t} catch {\n\t\t\t\t\tbody = await response.text();\n\t\t\t\t}\n\t\t\t\tthrow new HttpError(response.status, response.statusText, body, response.headers);\n\t\t\t}\n\n\t\t\treturn await this.parseApiResponse<T>(response, method);\n\t\t} catch (error) {\n\t\t\tif (error instanceof HttpError) throw error;\n\t\t\tif (error instanceof SyntaxError || error instanceof TypeError) {\n\t\t\t\tthrow new StructError(\"Failed to parse HTTP response body\", { cause: error });\n\t\t\t}\n\n\t\t\tif (error instanceof DOMException && error.name === \"AbortError\") {\n\t\t\t\tif (options?.signal?.aborted) throw error;\n\t\t\t\tthrow new TimeoutError(this.timeout);\n\t\t\t}\n\n\t\t\tthrow new NetworkError(\"Network request failed\", { cause: error });\n\t\t} finally {\n\t\t\tclearTimeout(timeoutId);\n\t\t}\n\t}\n\n\tprivate shouldRetry(error: unknown): boolean {\n\t\tif (error instanceof HttpError) {\n\t\t\treturn RETRYABLE_STATUSES.has(error.status);\n\t\t}\n\t\treturn error instanceof NetworkError || error instanceof TimeoutError;\n\t}\n\n\tprivate async parseApiResponse<T>(response: Response, method: string): Promise<HttpResponse<T>> {\n\t\tif (method === \"HEAD\" || response.status === 204 || response.status === 205) {\n\t\t\treturn { data: undefined as T, message: null, success: true };\n\t\t}\n\n\t\tconst text = await response.text();\n\t\tif (text.length === 0) {\n\t\t\treturn { data: undefined as T, message: null, success: true };\n\t\t}\n\n\t\tconst contentType = response.headers.get(\"content-type\")?.toLowerCase() ?? \"\";\n\t\tif (!contentType.includes(\"json\")) {\n\t\t\treturn { data: text as T, message: null, success: true };\n\t\t}\n\n\t\tconst body = JSON.parse(text);\n\n\t\tif (body && typeof body === \"object\" && \"success\" in body && \"data\" in body) {\n\t\t\treturn {\n\t\t\t\tdata: body.data as T,\n\t\t\t\tmessage: body.message ?? null,\n\t\t\t\tsuccess: body.success,\n\t\t\t\tinfo: body.info as ApiResponseInfo | undefined,\n\t\t\t};\n\t\t}\n\n\t\treturn { data: body as T, message: null, success: true };\n\t}\n\n\tprivate parseRetryAfter(error: HttpError): number | undefined {\n\t\tconst header = error.responseHeaders?.get(\"retry-after\");\n\t\tif (!header) return undefined;\n\n\t\tconst seconds = Number(header);\n\t\tif (!Number.isNaN(seconds) && seconds > 0) return seconds * 1_000;\n\n\t\tconst date = Date.parse(header);\n\t\tif (!Number.isNaN(date)) {\n\t\t\tconst delay = date - Date.now();\n\t\t\treturn delay > 0 ? delay : undefined;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tprivate sleep(ms: number, signal?: AbortSignal): Promise<void> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (signal?.aborted) {\n\t\t\t\treject(signal.reason);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst timer = setTimeout(resolve, ms);\n\t\t\tsignal?.addEventListener(\"abort\", () => {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\treject(signal.reason);\n\t\t\t}, { once: true });\n\t\t});\n\t}\n\n\tprivate buildUrl(path: string, params?: Record<string, string | number | boolean | undefined>): string {\n\t\tconst url = new URL(this.baseUrl + path);\n\n\t\tif (params) {\n\t\t\tfor (const [key, value] of Object.entries(params)) {\n\t\t\t\tif (value !== undefined) {\n\t\t\t\t\turl.searchParams.set(key, String(value));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn url.toString();\n\t}\n}\n",
7
+ "import type { HttpClient } from \"../http.js\";\nimport type { HttpResponse, RequestOptions } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\n\nexport class Namespace {\n\tprotected readonly http: HttpClient;\n\tprotected readonly defaultVenue: Venue;\n\n\tconstructor(http: HttpClient, defaultVenue: Venue) {\n\t\tthis.http = http;\n\t\tthis.defaultVenue = defaultVenue;\n\t}\n\n\tprotected get<T>(venue: Venue | undefined, path: string, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.get<T>(`/${venue ?? this.defaultVenue}${path}`, options);\n\t}\n\n\tprotected post<T>(venue: Venue | undefined, path: string, body?: unknown, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.post<T>(`/${venue ?? this.defaultVenue}${path}`, body, options);\n\t}\n\n\tprotected put<T>(venue: Venue | undefined, path: string, body?: unknown, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.put<T>(`/${venue ?? this.defaultVenue}${path}`, body, options);\n\t}\n\n\tprotected delete<T>(venue: Venue | undefined, path: string, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.delete<T>(`/${venue ?? this.defaultVenue}${path}`, options);\n\t}\n}\n\nexport class PlatformNamespace {\n\tprotected readonly http: HttpClient;\n\n\tconstructor(http: HttpClient) {\n\t\tthis.http = http;\n\t}\n\n\tprotected get<T>(path: string, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.get<T>(path, options);\n\t}\n\n\tprotected post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.post<T>(path, body, options);\n\t}\n\n\tprotected put<T>(path: string, body?: unknown, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.put<T>(path, body, options);\n\t}\n\n\tprotected delete<T>(path: string, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.delete<T>(path, options);\n\t}\n}\n",
8
8
  "import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tMarketHoldersResponse,\n\tEventHoldersResponse,\n\tPositionHoldersResponse,\n\tHolderHistoryCandle,\n\tGetMarketHoldersParams,\n\tGetEventHoldersParams,\n\tGetPositionHoldersParams,\n\tGetMarketHoldersHistoryParams,\n\tGetEventHoldersHistoryParams,\n\tGetPositionHoldersHistoryParams,\n} from \"../types/index.js\";\n\nexport class HoldersNamespace extends Namespace {\n\tasync getMarketHolders(params: GetMarketHoldersParams, venue?: Venue): Promise<HttpResponse<MarketHoldersResponse>> {\n\t\tconst { conditionId, ...query } = params;\n\t\treturn this.get<MarketHoldersResponse>(venue, `/holders/markets/${encodeURIComponent(conditionId)}`, { params: query });\n\t}\n\n\tasync getEventHolders(params: GetEventHoldersParams, venue?: Venue): Promise<HttpResponse<EventHoldersResponse>> {\n\t\tconst { eventSlug, ...query } = params;\n\t\treturn this.get<EventHoldersResponse>(venue, `/holders/events/${encodeURIComponent(eventSlug)}`, { params: query });\n\t}\n\n\tasync getPositionHolders(params: GetPositionHoldersParams, venue?: Venue): Promise<HttpResponse<PositionHoldersResponse>> {\n\t\tconst { positionId, ...query } = params;\n\t\treturn this.get<PositionHoldersResponse>(venue, `/holders/positions/${encodeURIComponent(positionId)}`, { params: query });\n\t}\n\n\tasync getMarketHoldersHistory(params: GetMarketHoldersHistoryParams, venue?: Venue): Promise<HttpResponse<HolderHistoryCandle[]>> {\n\t\tconst { conditionId, ...query } = params;\n\t\treturn this.get<HolderHistoryCandle[]>(venue, `/holders/markets/${encodeURIComponent(conditionId)}/history`, { params: query });\n\t}\n\n\tasync getEventHoldersHistory(params: GetEventHoldersHistoryParams, venue?: Venue): Promise<HttpResponse<HolderHistoryCandle[]>> {\n\t\tconst { eventSlug, ...query } = params;\n\t\treturn this.get<HolderHistoryCandle[]>(venue, `/holders/events/${encodeURIComponent(eventSlug)}/history`, { params: query });\n\t}\n\n\tasync getPositionHoldersHistory(params: GetPositionHoldersHistoryParams, venue?: Venue): Promise<HttpResponse<HolderHistoryCandle[]>> {\n\t\tconst { positionId, ...query } = params;\n\t\treturn this.get<HolderHistoryCandle[]>(venue, `/holders/positions/${encodeURIComponent(positionId)}/history`, { params: query });\n\t}\n}\n",
9
- "import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tTraderScore,\n\tSmartMoneyEntry,\n\tInsiderEntry,\n\tBotEntry,\n\tGetTraderScoreParams,\n\tLeaderboardParams,\n} from \"../types/index.js\";\n\nexport class ScoringNamespace extends Namespace {\n\tasync getTraderScore(params: GetTraderScoreParams, venue?: Venue): Promise<HttpResponse<TraderScore>> {\n\t\treturn this.get<TraderScore>(venue, `/scoring/trader/${encodeURIComponent(params.address)}`);\n\t}\n\n\tasync getSmartMoneyLeaderboard(params?: LeaderboardParams, venue?: Venue): Promise<HttpResponse<SmartMoneyEntry[]>> {\n\t\treturn this.get<SmartMoneyEntry[]>(venue, \"/scoring/leaderboard/smart-money\", { params: { ...params } });\n\t}\n\n\tasync getInsiderLeaderboard(params?: LeaderboardParams, venue?: Venue): Promise<HttpResponse<InsiderEntry[]>> {\n\t\treturn this.get<InsiderEntry[]>(venue, \"/scoring/leaderboard/insiders\", { params: { ...params } });\n\t}\n\n\tasync getBots(params?: LeaderboardParams, venue?: Venue): Promise<HttpResponse<BotEntry[]>> {\n\t\treturn this.get<BotEntry[]>(venue, \"/scoring/bots\", { params: { ...params } });\n\t}\n}\n",
10
9
  "import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tTag,\n\tGetTagsParams,\n\tGetTagParams,\n} from \"../types/index.js\";\n\nexport class TagsNamespace extends Namespace {\n\tasync getTags(params?: GetTagsParams, venue?: Venue): Promise<HttpResponse<Tag[]>> {\n\t\treturn this.get<Tag[]>(venue, \"/tags\", { params: { ...params } });\n\t}\n\n\tasync getTag(params: GetTagParams, venue?: Venue): Promise<HttpResponse<Tag>> {\n\t\treturn this.get<Tag>(venue, `/tags/${encodeURIComponent(params.identifier)}`);\n\t}\n}\n",
11
- "import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tEvent,\n\tEventMetricsResponse,\n\tGetEventParams,\n\tGetEventBySlugParams,\n\tGetEventsParams,\n\tGetEventMetricsParams,\n} from \"../types/index.js\";\n\nexport class EventsNamespace extends Namespace {\n\tasync getEvent(params: GetEventParams, venue?: Venue): Promise<HttpResponse<Event>> {\n\t\tconst { id, ...query } = params;\n\t\treturn this.get<Event>(venue, `/events/${encodeURIComponent(id)}`, { params: query });\n\t}\n\n\tasync getEventBySlug(params: GetEventBySlugParams, venue?: Venue): Promise<HttpResponse<Event>> {\n\t\tconst { slug, ...query } = params;\n\t\treturn this.get<Event>(venue, `/events/slug/${encodeURIComponent(slug)}`, { params: query });\n\t}\n\n\tasync getEvents(params?: GetEventsParams, venue?: Venue): Promise<HttpResponse<Event[]>> {\n\t\treturn this.get<Event[]>(venue, \"/events\", { params: { ...params } });\n\t}\n\n\tasync getEventMetrics(params: GetEventMetricsParams, venue?: Venue): Promise<HttpResponse<EventMetricsResponse>> {\n\t\treturn this.get<EventMetricsResponse>(venue, \"/events/metrics\", { params: { ...params } });\n\t}\n}\n",
12
- "import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tMarketMetadata,\n\tConditionMetricsResponse,\n\tPositionMetricsResponse,\n\tPositionVolumeChartResponse,\n\tMarketVolumeChartResponse,\n\tTrade,\n\tCandlestickResponse,\n\tGetMarketsParams,\n\tGetMarketParams,\n\tGetMarketBySlugParams,\n\tGetMarketMetricsParams,\n\tGetTradesParams,\n\tGetCandlestickParams,\n\tGetPositionCandlestickParams,\n\tGetPositionMetricsParams,\n\tGetPositionVolumeChartParams,\n\tGetMarketVolumeChartParams,\n} from \"../types/index.js\";\n\nexport class MarketsNamespace extends Namespace {\n\tasync getMarkets(params?: GetMarketsParams, venue?: Venue): Promise<HttpResponse<MarketMetadata[]>> {\n\t\treturn this.get<MarketMetadata[]>(venue, \"/market\", { params: { ...params } });\n\t}\n\n\tasync getMarket(params: GetMarketParams, venue?: Venue): Promise<HttpResponse<MarketMetadata>> {\n\t\treturn this.get<MarketMetadata>(venue, `/market/${encodeURIComponent(params.conditionId)}`);\n\t}\n\n\tasync getMarketBySlug(params: GetMarketBySlugParams, venue?: Venue): Promise<HttpResponse<MarketMetadata>> {\n\t\treturn this.get<MarketMetadata>(venue, `/market/slug/${encodeURIComponent(params.slug)}`);\n\t}\n\n\tasync getMarketMetrics(params: GetMarketMetricsParams, venue?: Venue): Promise<HttpResponse<ConditionMetricsResponse>> {\n\t\treturn this.get<ConditionMetricsResponse>(venue, \"/market/metrics\", { params: { ...params } });\n\t}\n\n\tasync getTrades(params?: GetTradesParams, venue?: Venue): Promise<HttpResponse<Trade[]>> {\n\t\treturn this.get<Trade[]>(venue, \"/market/trades\", { params: { ...params } });\n\t}\n\n\tasync getCandlestick(params: GetCandlestickParams, venue?: Venue): Promise<HttpResponse<CandlestickResponse>> {\n\t\treturn this.get<CandlestickResponse>(venue, \"/market/candlestick\", { params: { ...params } });\n\t}\n\n\tasync getPositionCandlestick(params: GetPositionCandlestickParams, venue?: Venue): Promise<HttpResponse<CandlestickResponse>> {\n\t\treturn this.get<CandlestickResponse>(venue, \"/market/position/candlestick\", { params: { ...params } });\n\t}\n\n\tasync getPositionMetrics(params: GetPositionMetricsParams, venue?: Venue): Promise<HttpResponse<PositionMetricsResponse>> {\n\t\treturn this.get<PositionMetricsResponse>(venue, \"/market/position/metrics\", { params: { ...params } });\n\t}\n\n\tasync getPositionVolumeChart(params: GetPositionVolumeChartParams, venue?: Venue): Promise<HttpResponse<PositionVolumeChartResponse>> {\n\t\treturn this.get<PositionVolumeChartResponse>(venue, \"/market/position/volume-chart\", { params: { ...params } });\n\t}\n\n\tasync getMarketVolumeChart(params: GetMarketVolumeChartParams, venue?: Venue): Promise<HttpResponse<MarketVolumeChartResponse>> {\n\t\treturn this.get<MarketVolumeChartResponse>(venue, \"/market/volume-chart\", { params: { ...params } });\n\t}\n}\n",
13
- "import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tSeries,\n\tSeriesDetail,\n\tEvent,\n\tGetSeriesListParams,\n\tGetSeriesDetailParams,\n\tGetSeriesEventsParams,\n} from \"../types/index.js\";\n\nexport class SeriesNamespace extends Namespace {\n\tasync getSeriesList(params?: GetSeriesListParams, venue?: Venue): Promise<HttpResponse<Series[]>> {\n\t\treturn this.get<Series[]>(venue, \"/series\", { params: { ...params } });\n\t}\n\n\tasync getSeriesDetail(params: GetSeriesDetailParams, venue?: Venue): Promise<HttpResponse<SeriesDetail>> {\n\t\tconst { identifier, ...query } = params;\n\t\treturn this.get<SeriesDetail>(venue, `/series/${encodeURIComponent(identifier)}`, { params: query });\n\t}\n\n\tasync getSeriesEvents(params: GetSeriesEventsParams, venue?: Venue): Promise<HttpResponse<Event[]>> {\n\t\tconst { identifier, ...query } = params;\n\t\treturn this.get<Event[]>(venue, `/series/${encodeURIComponent(identifier)}/events`, { params: query });\n\t}\n}\n",
10
+ "import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type { Event, EventMetricsResponse, GetEventsParams, GetEventMetricsParams } from \"../types/index.js\";\n\nexport class EventsNamespace extends Namespace {\n\tasync getEvents(params?: GetEventsParams, venue?: Venue): Promise<HttpResponse<Event[]>> {\n\t\treturn this.get<Event[]>(venue, \"/events\", { params: { ...params } });\n\t}\n\n\tasync getEventMetrics(params: GetEventMetricsParams, venue?: Venue): Promise<HttpResponse<EventMetricsResponse>> {\n\t\treturn this.get<EventMetricsResponse>(venue, \"/events/metrics\", { params: { ...params } });\n\t}\n}\n",
11
+ "import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tMarketMetadata,\n\tConditionMetricsResponse,\n\tPositionMetricsResponse,\n\tPositionVolumeChartResponse,\n\tMarketVolumeChartResponse,\n\tTrade,\n\tCandlestickResponse,\n\tGetMarketsParams,\n\tGetMarketMetricsParams,\n\tGetTradesParams,\n\tGetCandlestickParams,\n\tGetPositionCandlestickParams,\n\tGetPositionMetricsParams,\n\tGetPositionVolumeChartParams,\n\tGetMarketVolumeChartParams,\n} from \"../types/index.js\";\n\nexport class MarketsNamespace extends Namespace {\n\tasync getMarkets(params?: GetMarketsParams, venue?: Venue): Promise<HttpResponse<MarketMetadata[]>> {\n\t\treturn this.get<MarketMetadata[]>(venue, \"/market\", { params: { ...params } });\n\t}\n\n\tasync getMarketMetrics(params: GetMarketMetricsParams, venue?: Venue): Promise<HttpResponse<ConditionMetricsResponse>> {\n\t\treturn this.get<ConditionMetricsResponse>(venue, \"/market/metrics\", { params: { ...params } });\n\t}\n\n\tasync getTrades(params?: GetTradesParams, venue?: Venue): Promise<HttpResponse<Trade[]>> {\n\t\treturn this.get<Trade[]>(venue, \"/market/trades\", { params: { ...params } });\n\t}\n\n\tasync getCandlestick(params: GetCandlestickParams, venue?: Venue): Promise<HttpResponse<CandlestickResponse>> {\n\t\treturn this.get<CandlestickResponse>(venue, \"/market/candlestick\", { params: { ...params } });\n\t}\n\n\tasync getPositionCandlestick(params: GetPositionCandlestickParams, venue?: Venue): Promise<HttpResponse<CandlestickResponse>> {\n\t\treturn this.get<CandlestickResponse>(venue, \"/market/position/candlestick\", { params: { ...params } });\n\t}\n\n\tasync getPositionMetrics(params: GetPositionMetricsParams, venue?: Venue): Promise<HttpResponse<PositionMetricsResponse>> {\n\t\treturn this.get<PositionMetricsResponse>(venue, \"/market/position/metrics\", { params: { ...params } });\n\t}\n\n\tasync getPositionVolumeChart(params: GetPositionVolumeChartParams, venue?: Venue): Promise<HttpResponse<PositionVolumeChartResponse>> {\n\t\treturn this.get<PositionVolumeChartResponse>(venue, \"/market/position/volume-chart\", { params: { ...params } });\n\t}\n\n\tasync getMarketVolumeChart(params: GetMarketVolumeChartParams, venue?: Venue): Promise<HttpResponse<MarketVolumeChartResponse>> {\n\t\treturn this.get<MarketVolumeChartResponse>(venue, \"/market/volume-chart\", { params: { ...params } });\n\t}\n}\n",
12
+ "import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type { Series, SeriesDetail, Event, GetSeriesListParams, GetSeriesDetailParams, GetSeriesEventsParams } from \"../types/index.js\";\n\nexport class SeriesNamespace extends Namespace {\n\tasync getSeriesList(params?: GetSeriesListParams, venue?: Venue): Promise<HttpResponse<Series[]>> {\n\t\treturn this.get<Series[]>(venue, \"/series\", { params: { ...params } });\n\t}\n\n\tasync getSeriesDetail(params: GetSeriesDetailParams, venue?: Venue): Promise<HttpResponse<SeriesDetail>> {\n\t\tconst { identifier, ...query } = params;\n\t\treturn this.get<SeriesDetail>(venue, `/series/${encodeURIComponent(identifier)}`, { params: query });\n\t}\n\n\tasync getSeriesEvents(params: GetSeriesEventsParams, venue?: Venue): Promise<HttpResponse<Event[]>> {\n\t\tconst { identifier, ...query } = params;\n\t\treturn this.get<Event[]>(venue, `/series/${encodeURIComponent(identifier)}/events`, { params: query });\n\t}\n}\n",
14
13
  "import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tPortfolio,\n\tPositionsResponse,\n\tTradesResponse,\n\tUserProfile,\n\tTraderVolumeChartResponse,\n\tTraderPnlSummary,\n\tTraderPositionPnlEntry,\n\tTraderMarketPnlEntry,\n\tTraderEventPnlEntry,\n\tPnlListResponse,\n\tPnlCandlesResponse,\n\tGlobalPnlResponse,\n\tGetPortfolioParams,\n\tGetPortfolioPositionsParams,\n\tGetTraderTradesParams,\n\tGetTraderProfileParams,\n\tGetTraderProfilesBatchParams,\n\tGetTraderVolumeChartParams,\n\tGetTraderPnlParams,\n\tGetTraderPnlBreakdownParams,\n\tGetTraderPnlCandlesParams,\n\tGetGlobalPnlParams,\n} from \"../types/index.js\";\n\nexport class TraderNamespace extends Namespace {\n\tasync getPortfolio(params: GetPortfolioParams, venue?: Venue): Promise<HttpResponse<Portfolio>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<Portfolio>(venue, `/trader/portfolio/${encodeURIComponent(address)}`, { params: query });\n\t}\n\n\tasync getPortfolioPositions(params: GetPortfolioPositionsParams, venue?: Venue): Promise<HttpResponse<PositionsResponse>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PositionsResponse>(venue, `/trader/positions/${encodeURIComponent(address)}`, { params: query });\n\t}\n\n\tasync getTraderTrades(params: GetTraderTradesParams, venue?: Venue): Promise<HttpResponse<TradesResponse>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<TradesResponse>(venue, `/trader/trades/${encodeURIComponent(address)}`, { params: query });\n\t}\n\n\tasync getTraderProfile(params: GetTraderProfileParams, venue?: Venue): Promise<HttpResponse<UserProfile>> {\n\t\treturn this.get<UserProfile>(venue, `/trader/profile/${encodeURIComponent(params.address)}`);\n\t}\n\n\tasync getTraderProfilesBatch(params: GetTraderProfilesBatchParams, venue?: Venue): Promise<HttpResponse<Record<string, UserProfile>>> {\n\t\treturn this.get<Record<string, UserProfile>>(venue, \"/trader/profiles/batch\", { params: { ...params } });\n\t}\n\n\tasync getTraderVolumeChart(params: GetTraderVolumeChartParams, venue?: Venue): Promise<HttpResponse<TraderVolumeChartResponse>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<TraderVolumeChartResponse>(venue, `/trader/volume-chart/${encodeURIComponent(address)}`, { params: query });\n\t}\n\n\tasync getTraderPnl(params: GetTraderPnlParams, venue?: Venue): Promise<HttpResponse<TraderPnlSummary>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<TraderPnlSummary>(venue, `/trader/pnl/${encodeURIComponent(address)}`, { params: query });\n\t}\n\n\tasync getTraderPositionPnl(params: GetTraderPnlBreakdownParams, venue?: Venue): Promise<HttpResponse<PnlListResponse<TraderPositionPnlEntry>>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlListResponse<TraderPositionPnlEntry>>(venue, `/trader/pnl/${encodeURIComponent(address)}/positions`, { params: query });\n\t}\n\n\tasync getTraderMarketPnl(params: GetTraderPnlBreakdownParams, venue?: Venue): Promise<HttpResponse<PnlListResponse<TraderMarketPnlEntry>>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlListResponse<TraderMarketPnlEntry>>(venue, `/trader/pnl/${encodeURIComponent(address)}/markets`, { params: query });\n\t}\n\n\tasync getTraderEventPnl(params: GetTraderPnlBreakdownParams, venue?: Venue): Promise<HttpResponse<PnlListResponse<TraderEventPnlEntry>>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlListResponse<TraderEventPnlEntry>>(venue, `/trader/pnl/${encodeURIComponent(address)}/events`, { params: query });\n\t}\n\n\tasync getTraderPnlCandles(params: GetTraderPnlCandlesParams, venue?: Venue): Promise<HttpResponse<PnlCandlesResponse>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlCandlesResponse>(venue, `/trader/pnl/${encodeURIComponent(address)}/candles`, { params: query });\n\t}\n\n\tasync getGlobalPnl(params?: GetGlobalPnlParams, venue?: Venue): Promise<HttpResponse<GlobalPnlResponse>> {\n\t\treturn this.get<GlobalPnlResponse>(venue, \"/trader/global_pnl\", { params: { ...params } });\n\t}\n}\n",
15
- "import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type { BondMarket, GetBondsParams } from \"../types/index.js\";\n\nexport class BondsNamespace extends Namespace {\n\tasync getBonds(params?: GetBondsParams, venue?: Venue): Promise<HttpResponse<BondMarket[]>> {\n\t\treturn this.get<BondMarket[]>(venue, \"/bonds\", { params: { ...params } });\n\t}\n}\n",
14
+ "import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type { BondMarket, GetBondsParams } from \"../types/index.js\";\n\nexport class BondsNamespace extends Namespace {\n\tasync getBonds(params?: GetBondsParams, venue?: Venue): Promise<HttpResponse<BondMarket[]>> {\n\t\treturn this.get<BondMarket[]>(venue, \"/market/bonds\", { params: { ...params } });\n\t}\n}\n",
16
15
  "import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type { SearchResponse, GetSearchParams } from \"../types/index.js\";\n\nexport class SearchNamespace extends Namespace {\n\tasync search(params: GetSearchParams, venue?: Venue): Promise<HttpResponse<SearchResponse>> {\n\t\treturn this.get<SearchResponse>(venue, \"/search\", { params: { ...params } });\n\t}\n}\n",
17
- "import { HttpClient } from \"./http.js\";\nimport type { Venue } from \"./types/common.js\";\nimport type { RetryConfig, RequestHookInfo, ResponseHookInfo } from \"./types/index.js\";\nimport {\n\tHoldersNamespace,\n\tScoringNamespace,\n\tTagsNamespace,\n\tEventsNamespace,\n\tMarketsNamespace,\n\tSeriesNamespace,\n\tTraderNamespace,\n\tBondsNamespace,\n\tSearchNamespace,\n} from \"./namespaces/index.js\";\n\nconst DEFAULT_BASE_URL = \"https://api.struct.to/v1\";\n\nexport interface StructClientConfig {\n\tapiKey: string;\n\tbaseUrl?: string;\n\tvenue?: Venue;\n\theaders?: Record<string, string>;\n\ttimeout?: number;\n\tretry?: RetryConfig;\n\tonRequest?: (info: RequestHookInfo) => void | Promise<void>;\n\tonResponse?: (info: ResponseHookInfo) => void | Promise<void>;\n}\n\nexport class StructClient {\n\treadonly holders: HoldersNamespace;\n\treadonly scoring: ScoringNamespace;\n\treadonly tags: TagsNamespace;\n\treadonly events: EventsNamespace;\n\treadonly markets: MarketsNamespace;\n\treadonly series: SeriesNamespace;\n\treadonly trader: TraderNamespace;\n\treadonly bonds: BondsNamespace;\n\treadonly search: SearchNamespace;\n\n\tconstructor(config: StructClientConfig) {\n\t\tconst http = new HttpClient({\n\t\t\tbaseUrl: config.baseUrl ?? DEFAULT_BASE_URL,\n\t\t\tdefaultHeaders: {\n\t\t\t\t\"X-API-Key\": config.apiKey,\n\t\t\t\t...config.headers,\n\t\t\t},\n\t\t\ttimeout: config.timeout,\n\t\t\tretry: config.retry,\n\t\t\tonRequest: config.onRequest,\n\t\t\tonResponse: config.onResponse,\n\t\t});\n\n\t\tconst venue = config.venue ?? \"polymarket\";\n\t\tthis.holders = new HoldersNamespace(http, venue);\n\t\tthis.scoring = new ScoringNamespace(http, venue);\n\t\tthis.tags = new TagsNamespace(http, venue);\n\t\tthis.events = new EventsNamespace(http, venue);\n\t\tthis.markets = new MarketsNamespace(http, venue);\n\t\tthis.series = new SeriesNamespace(http, venue);\n\t\tthis.trader = new TraderNamespace(http, venue);\n\t\tthis.bonds = new BondsNamespace(http, venue);\n\t\tthis.search = new SearchNamespace(http, venue);\n\t}\n}\n",
16
+ "import { PlatformNamespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type {\n\tWebhookResponse,\n\tWebhookListResponseBody,\n\tWebhookTestResponseBody,\n\tListWebhooksParams,\n\tGetWebhookParams,\n\tCreateWebhookParams,\n\tUpdateWebhookParams,\n\tDeleteWebhookParams,\n\tTestWebhookParams,\n} from \"../types/index.js\";\n\nexport class WebhooksNamespace extends PlatformNamespace {\n\tasync list(params?: ListWebhooksParams): Promise<HttpResponse<WebhookListResponseBody>> {\n\t\treturn this.http.get<WebhookListResponseBody>(\"/webhooks\", { params: { ...params } });\n\t}\n\n\tasync create(body: CreateWebhookParams): Promise<HttpResponse<WebhookResponse>> {\n\t\treturn this.http.post<WebhookResponse>(\"/webhooks\", body);\n\t}\n\n\tasync getWebhook(params: GetWebhookParams): Promise<HttpResponse<WebhookResponse>> {\n\t\treturn this.http.get<WebhookResponse>(`/webhooks/${encodeURIComponent(params.webhookId)}`);\n\t}\n\n\tasync update(params: UpdateWebhookParams): Promise<HttpResponse<WebhookResponse>> {\n\t\tconst { webhookId, ...body } = params;\n\t\treturn this.http.put<WebhookResponse>(`/webhooks/${encodeURIComponent(webhookId)}`, body);\n\t}\n\n\tasync deleteWebhook(params: DeleteWebhookParams): Promise<HttpResponse<void>> {\n\t\treturn this.http.delete<void>(`/webhooks/${encodeURIComponent(params.webhookId)}`);\n\t}\n\n\tasync test(params: TestWebhookParams): Promise<HttpResponse<WebhookTestResponseBody>> {\n\t\treturn this.http.post<WebhookTestResponseBody>(`/webhooks/${encodeURIComponent(params.webhookId)}/test`);\n\t}\n}\n",
17
+ "import { HttpClient } from \"./http.js\";\nimport type { Venue } from \"./types/common.js\";\nimport type { RetryConfig, RequestHookInfo, ResponseHookInfo } from \"./types/index.js\";\nimport {\n\tHoldersNamespace,\n\tTagsNamespace,\n\tEventsNamespace,\n\tMarketsNamespace,\n\tSeriesNamespace,\n\tTraderNamespace,\n\tBondsNamespace,\n\tSearchNamespace,\n\tWebhooksNamespace,\n} from \"./namespaces/index.js\";\n\nconst DEFAULT_BASE_URL = \"https://api.struct.to/v1\";\n\nexport interface StructClientConfig {\n\tapiKey: string;\n\tbaseUrl?: string;\n\tvenue?: Venue;\n\theaders?: Record<string, string>;\n\ttimeout?: number;\n\tretry?: RetryConfig;\n\tonRequest?: (info: RequestHookInfo) => void | Promise<void>;\n\tonResponse?: (info: ResponseHookInfo) => void | Promise<void>;\n}\n\nexport class StructClient {\n\treadonly holders: HoldersNamespace;\n\treadonly tags: TagsNamespace;\n\treadonly events: EventsNamespace;\n\treadonly markets: MarketsNamespace;\n\treadonly series: SeriesNamespace;\n\treadonly trader: TraderNamespace;\n\treadonly bonds: BondsNamespace;\n\treadonly search: SearchNamespace;\n\treadonly webhooks: WebhooksNamespace;\n\n\tconstructor(config: StructClientConfig) {\n\t\tconst http = new HttpClient({\n\t\t\tbaseUrl: config.baseUrl ?? DEFAULT_BASE_URL,\n\t\t\tdefaultHeaders: {\n\t\t\t\t\"X-API-Key\": config.apiKey,\n\t\t\t\t...config.headers,\n\t\t\t},\n\t\t\ttimeout: config.timeout,\n\t\t\tretry: config.retry,\n\t\t\tonRequest: config.onRequest,\n\t\t\tonResponse: config.onResponse,\n\t\t});\n\n\t\tconst venue = config.venue ?? \"polymarket\";\n\t\tthis.holders = new HoldersNamespace(http, venue);\n\t\tthis.tags = new TagsNamespace(http, venue);\n\t\tthis.events = new EventsNamespace(http, venue);\n\t\tthis.markets = new MarketsNamespace(http, venue);\n\t\tthis.series = new SeriesNamespace(http, venue);\n\t\tthis.trader = new TraderNamespace(http, venue);\n\t\tthis.bonds = new BondsNamespace(http, venue);\n\t\tthis.search = new SearchNamespace(http, venue);\n\t\tthis.webhooks = new WebhooksNamespace(http);\n\t}\n}\n",
18
18
  "import { WebSocketError, WebSocketClosedError } from \"./errors.js\";\nimport type { ConnectionState, WebSocketMessage } from \"./types/ws.js\";\nimport type { RetryConfig } from \"./types/http.js\";\n\nconst DEFAULT_INITIAL_DELAY_MS = 1_000;\nconst DEFAULT_MAX_DELAY_MS = 30_000;\n\nexport interface WebSocketTransportCallbacks {\n\tonOpen: () => void;\n\tonClose: (code: number, reason: string) => void;\n\tonError: (error: Error) => void;\n\tonMessage: (data: unknown) => void;\n\tonReconnecting: (attempt: number) => void;\n}\n\nexport class WebSocketTransport {\n\tprivate ws: WebSocket | null = null;\n\tprivate _state: ConnectionState = \"disconnected\";\n\tprivate reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n\tprivate reconnectAttempt = 0;\n\tprivate intentionalClose = false;\n\tprivate readonly pendingMessages: WebSocketMessage[] = [];\n\tprivate readonly replayMessages: WebSocketMessage[] = [];\n\tprivate readonly url: string;\n\tprivate readonly retry: RetryConfig;\n\tprivate readonly callbacks: WebSocketTransportCallbacks;\n\n\tconstructor(url: string, retry: RetryConfig, callbacks: WebSocketTransportCallbacks) {\n\t\tthis.url = url;\n\t\tthis.retry = retry;\n\t\tthis.callbacks = callbacks;\n\t}\n\n\tget state(): ConnectionState {\n\t\treturn this._state;\n\t}\n\n\tconnect(): void {\n\t\tif (this._state === \"connected\" || this._state === \"connecting\" || this._state === \"reconnecting\") {\n\t\t\treturn;\n\t\t}\n\t\tif (this.ws && (this.ws.readyState === WebSocket.OPEN || this.ws.readyState === WebSocket.CONNECTING)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.intentionalClose = false;\n\t\tthis.clearReconnectTimer();\n\t\tthis.setState(\"connecting\");\n\t\tthis.createSocket();\n\t}\n\n\tdisconnect(): void {\n\t\tthis.intentionalClose = true;\n\t\tthis.clearReconnectTimer();\n\t\tthis.pendingMessages.length = 0;\n\t\tthis.replayMessages.length = 0;\n\t\tif (this.ws) {\n\t\t\tthis.ws.close(1000, \"client disconnect\");\n\t\t\tthis.ws = null;\n\t\t}\n\t\tthis.setState(\"disconnected\");\n\t}\n\n\tsend(message: WebSocketMessage): void {\n\t\tif (this._state === \"connected\" && this.ws?.readyState === WebSocket.OPEN) {\n\t\t\tthis.ws.send(JSON.stringify(message));\n\t\t} else {\n\t\t\tthis.pendingMessages.push(message);\n\t\t}\n\t}\n\n\taddReplayMessage(message: WebSocketMessage): void {\n\t\tthis.replayMessages.push(message);\n\t}\n\n\tremoveReplayMessages(predicate: (msg: WebSocketMessage) => boolean): void {\n\t\tfor (let i = this.replayMessages.length - 1; i >= 0; i--) {\n\t\t\tif (predicate(this.replayMessages[i]!)) {\n\t\t\t\tthis.replayMessages.splice(i, 1);\n\t\t\t}\n\t\t}\n\t}\n\n\tclearReplayMessages(): void {\n\t\tthis.replayMessages.length = 0;\n\t}\n\n\tprivate createSocket(): void {\n\t\ttry {\n\t\t\tthis.ws = new WebSocket(this.url);\n\t\t} catch (err) {\n\t\t\tthis.callbacks.onError(\n\t\t\t\tnew WebSocketError(\"Failed to create WebSocket\", { cause: err }),\n\t\t\t);\n\t\t\tthis.scheduleReconnect();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.ws.onopen = () => {\n\t\t\tthis._state = \"connected\";\n\t\t\tthis.reconnectAttempt = 0;\n\t\t\tthis.replaySubscriptions();\n\t\t\tthis.flushPendingMessages();\n\t\t\tthis.callbacks.onOpen();\n\t\t};\n\n\t\tthis.ws.onclose = (event: CloseEvent) => {\n\t\t\tthis.ws = null;\n\t\t\tif (this.intentionalClose) {\n\t\t\t\tthis.setState(\"disconnected\");\n\t\t\t\tthis.callbacks.onClose(event.code, event.reason);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.callbacks.onClose(event.code, event.reason);\n\t\t\tthis.scheduleReconnect();\n\t\t};\n\n\t\tthis.ws.onerror = () => {\n\t\t\tthis.callbacks.onError(new WebSocketError(\"WebSocket connection error\"));\n\t\t};\n\n\t\tthis.ws.onmessage = (event: MessageEvent) => {\n\t\t\ttry {\n\t\t\t\tconst data: unknown = JSON.parse(String(event.data));\n\t\t\t\tthis.callbacks.onMessage(data);\n\t\t\t} catch {\n\t\t\t\tthis.callbacks.onError(new WebSocketError(\"Failed to parse WebSocket message\"));\n\t\t\t}\n\t\t};\n\t}\n\n\tprivate replaySubscriptions(): void {\n\t\tfor (const msg of this.replayMessages) {\n\t\t\tif (this.ws?.readyState === WebSocket.OPEN) {\n\t\t\t\tthis.ws.send(JSON.stringify(msg));\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate flushPendingMessages(): void {\n\t\twhile (this.pendingMessages.length > 0) {\n\t\t\tconst msg = this.pendingMessages.shift()!;\n\t\t\tif (this.ws?.readyState === WebSocket.OPEN) {\n\t\t\t\tthis.ws.send(JSON.stringify(msg));\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate scheduleReconnect(): void {\n\t\tconst maxRetries = this.retry.maxRetries ?? Infinity;\n\t\tif (this.reconnectAttempt >= maxRetries) {\n\t\t\tthis.setState(\"disconnected\");\n\t\t\tthis.callbacks.onError(\n\t\t\t\tnew WebSocketClosedError(1006, \"Max reconnection attempts reached\"),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState(\"reconnecting\");\n\t\tthis.reconnectAttempt++;\n\t\tthis.callbacks.onReconnecting(this.reconnectAttempt);\n\n\t\tconst initialDelay = this.retry.initialDelayMs ?? DEFAULT_INITIAL_DELAY_MS;\n\t\tconst maxDelay = this.retry.maxDelayMs ?? DEFAULT_MAX_DELAY_MS;\n\t\tconst exponentialDelay = Math.min(initialDelay * 2 ** (this.reconnectAttempt - 1), maxDelay);\n\t\tconst jitter = exponentialDelay * 0.2 * Math.random();\n\t\tconst delay = exponentialDelay + jitter;\n\n\t\tthis.reconnectTimer = setTimeout(() => {\n\t\t\tthis.reconnectTimer = null;\n\t\t\tthis.createSocket();\n\t\t}, delay);\n\t}\n\n\tprivate clearReconnectTimer(): void {\n\t\tif (this.reconnectTimer !== null) {\n\t\t\tclearTimeout(this.reconnectTimer);\n\t\t\tthis.reconnectTimer = null;\n\t\t}\n\t}\n\n\tprivate setState(state: ConnectionState): void {\n\t\tthis._state = state;\n\t}\n}\n",
19
19
  "import { WebSocketTransport } from \"./ws-transport.js\";\nimport type {\n\tConnectionState,\n\tStructWebSocketConfig,\n\tWebSocketEventMap,\n\tWebSocketMessage,\n\tWebSocketServerMessage,\n} from \"./types/ws.js\";\nimport type { Address } from \"./types/common.js\";\n\nconst DEFAULT_BASE_URL = \"https://api.struct.to/v1\";\n\ntype Listener<T> = (payload: T) => void;\n\nexport class StructWebSocket {\n\tprivate readonly transport: WebSocketTransport;\n\tprivate readonly listeners = new Map<string, Set<Function>>();\n\tprivate readonly activeMarkets = new Set<string>();\n\tprivate readonly activeMarketPositions = new Set<string>();\n\tprivate readonly activeWallets = new Set<string>();\n\tprivate readonly activeConditions = new Set<string>();\n\tprivate readonly activeSpecialRooms = new Set<string>();\n\n\tconstructor(config: StructWebSocketConfig) {\n\t\tconst httpBase = (config.baseUrl ?? DEFAULT_BASE_URL).replace(/\\/+$/, \"\");\n\t\tconst wsBase = httpBase.replace(/^https:\\/\\//, \"wss://\").replace(/^http:\\/\\//, \"ws://\");\n\t\tconst url = `${wsBase}?token=${encodeURIComponent(config.apiKey)}`;\n\n\t\tthis.transport = new WebSocketTransport(\n\t\t\turl,\n\t\t\tconfig.reconnect ?? {},\n\t\t\t{\n\t\t\t\tonOpen: () => this.handleOpen(),\n\t\t\t\tonClose: (code, reason) => this.handleClose(code, reason),\n\t\t\t\tonError: (error) => this.emit(\"error\", error),\n\t\t\t\tonMessage: (data) => this.handleMessage(data),\n\t\t\t\tonReconnecting: (attempt) => this.emit(\"reconnecting\", { attempt }),\n\t\t\t},\n\t\t);\n\t}\n\n\tget state(): ConnectionState {\n\t\treturn this.transport.state;\n\t}\n\n\tconnect(): void {\n\t\tthis.transport.connect();\n\t}\n\n\tdisconnect(): void {\n\t\tthis.activeMarkets.clear();\n\t\tthis.activeMarketPositions.clear();\n\t\tthis.activeWallets.clear();\n\t\tthis.activeConditions.clear();\n\t\tthis.activeSpecialRooms.clear();\n\t\tthis.transport.disconnect();\n\t}\n\n\ton<K extends keyof WebSocketEventMap>(event: K, listener: Listener<WebSocketEventMap[K]>): this {\n\t\tlet set = this.listeners.get(event as string);\n\t\tif (!set) {\n\t\t\tset = new Set();\n\t\t\tthis.listeners.set(event as string, set);\n\t\t}\n\t\tset.add(listener);\n\t\treturn this;\n\t}\n\n\toff<K extends keyof WebSocketEventMap>(event: K, listener: Listener<WebSocketEventMap[K]>): this {\n\t\tthis.listeners.get(event as string)?.delete(listener);\n\t\treturn this;\n\t}\n\n\tonce<K extends keyof WebSocketEventMap>(event: K, listener: Listener<WebSocketEventMap[K]>): this {\n\t\tconst wrapper = (payload: WebSocketEventMap[K]) => {\n\t\t\tthis.off(event, wrapper);\n\t\t\tlistener(payload);\n\t\t};\n\t\treturn this.on(event, wrapper);\n\t}\n\n\tsubscribeMarket(conditionId: string): void {\n\t\tif (this.activeMarkets.has(conditionId)) return;\n\t\tthis.activeMarkets.add(conditionId);\n\t\tconst msg = this.marketSubscribeMessage(conditionId);\n\t\tthis.transport.addReplayMessage(msg);\n\t\tthis.transport.send(msg);\n\t}\n\n\tunsubscribeMarket(conditionId: string): void {\n\t\tif (!this.activeMarkets.has(conditionId)) return;\n\t\tthis.activeMarkets.delete(conditionId);\n\t\tconst msg: WebSocketMessage = {\n\t\t\ttype: \"unsubscribe_market\",\n\t\t\troom_id: `market_${conditionId}`,\n\t\t\tmessage: {},\n\t\t};\n\t\tthis.transport.removeReplayMessages(\n\t\t\t(m) => m.type === \"subscribe_market\" && m.room_id === `market_${conditionId}`,\n\t\t);\n\t\tthis.transport.send(msg);\n\t}\n\n\tsubscribeMarketByPosition(positionId: string): void {\n\t\tif (this.activeMarketPositions.has(positionId)) return;\n\t\tthis.activeMarketPositions.add(positionId);\n\t\tconst msg = this.marketPositionSubscribeMessage(positionId);\n\t\tthis.transport.addReplayMessage(msg);\n\t\tthis.transport.send(msg);\n\t}\n\n\tunsubscribeMarketByPosition(positionId: string): void {\n\t\tif (!this.activeMarketPositions.has(positionId)) return;\n\t\tthis.activeMarketPositions.delete(positionId);\n\t\tconst msg: WebSocketMessage = {\n\t\t\ttype: \"unsubscribe_market\",\n\t\t\troom_id: `market_position_${positionId}`,\n\t\t\tmessage: {},\n\t\t};\n\t\tthis.transport.removeReplayMessages(\n\t\t\t(m) => m.type === \"subscribe_market\" && m.room_id === `market_position_${positionId}`,\n\t\t);\n\t\tthis.transport.send(msg);\n\t}\n\n\ttrackWallets(addresses: Address[]): void {\n\t\tconst uniqueAddresses = [...new Set(addresses)];\n\t\tconst added = uniqueAddresses.filter((addr) => !this.activeWallets.has(addr));\n\t\tif (added.length === 0) return;\n\t\tfor (const addr of added) this.activeWallets.add(addr);\n\t\tconst msg = this.walletTrackMessage(\"subscribe\", added);\n\t\tthis.rebuildWalletReplay();\n\t\tthis.transport.send(msg);\n\t}\n\n\tuntrackWallets(addresses: Address[]): void {\n\t\tconst uniqueAddresses = [...new Set(addresses)];\n\t\tconst removed = uniqueAddresses.filter((addr) => this.activeWallets.has(addr));\n\t\tif (removed.length === 0) return;\n\t\tfor (const addr of removed) this.activeWallets.delete(addr);\n\t\tconst msg = this.walletTrackMessage(\"unsubscribe\", removed);\n\t\tthis.rebuildWalletReplay();\n\t\tthis.transport.send(msg);\n\t}\n\n\tsubscribeWhaleTrades(): void {\n\t\tthis.subscribeSpecialRoom(\"whale_trades\");\n\t}\n\n\tunsubscribeWhaleTrades(): void {\n\t\tthis.unsubscribeSpecialRoom(\"whale_trades\");\n\t}\n\n\tsubscribeSmartMoneyTrades(): void {\n\t\tthis.subscribeSpecialRoom(\"smart_money_trades\");\n\t}\n\n\tunsubscribeSmartMoneyTrades(): void {\n\t\tthis.unsubscribeSpecialRoom(\"smart_money_trades\");\n\t}\n\n\tsubscribeInsiderTrades(): void {\n\t\tthis.subscribeSpecialRoom(\"insider_trades\");\n\t}\n\n\tunsubscribeInsiderTrades(): void {\n\t\tthis.unsubscribeSpecialRoom(\"insider_trades\");\n\t}\n\n\ttrackConditions(conditionIds: string[]): void {\n\t\tconst uniqueConditionIds = [...new Set(conditionIds)];\n\t\tconst added = uniqueConditionIds.filter((id) => !this.activeConditions.has(id));\n\t\tif (added.length === 0) return;\n\t\tfor (const id of added) this.activeConditions.add(id);\n\t\tconst msg = this.conditionsTrackMessage(\"subscribe\", added);\n\t\tthis.rebuildConditionsReplay();\n\t\tthis.transport.send(msg);\n\t}\n\n\tuntrackConditions(conditionIds: string[]): void {\n\t\tconst uniqueConditionIds = [...new Set(conditionIds)];\n\t\tconst removed = uniqueConditionIds.filter((id) => this.activeConditions.has(id));\n\t\tif (removed.length === 0) return;\n\t\tfor (const id of removed) this.activeConditions.delete(id);\n\t\tconst msg = this.conditionsTrackMessage(\"unsubscribe\", removed);\n\t\tthis.rebuildConditionsReplay();\n\t\tthis.transport.send(msg);\n\t}\n\n\tprivate handleOpen(): void {\n\t\tthis.emit(\"connected\", undefined as never);\n\t}\n\n\tprivate handleClose(code: number, reason: string): void {\n\t\tthis.emit(\"disconnected\", { code, reason });\n\t}\n\n\tprivate handleMessage(raw: unknown): void {\n\t\tconst msg = raw as WebSocketServerMessage;\n\t\tif (!msg || typeof msg !== \"object\") return;\n\n\t\tconst roomId = msg.room_id ?? \"\";\n\t\tconst type = msg.type;\n\n\t\tif (type === \"market_trade\" || roomId.startsWith(\"market_\")) {\n\t\t\tthis.emit(\"market_trade\", msg.data as never);\n\t\t} else if (type === \"whale_trade\" || roomId === \"whale_trades\") {\n\t\t\tthis.emit(\"whale_trade\", msg.data as never);\n\t\t} else if (type === \"smart_money_trade\" || roomId === \"smart_money_trades\") {\n\t\t\tthis.emit(\"smart_money_trade\", msg.data as never);\n\t\t} else if (type === \"insider_trade\" || roomId === \"insider_trades\") {\n\t\t\tthis.emit(\"insider_trade\", msg.data as never);\n\t\t} else if (type === \"wallet_tracking_alert\") {\n\t\t\tthis.emit(\"wallet_tracking_alert\", msg.data as never);\n\t\t} else if (type === \"conditions_tracking_alert\") {\n\t\t\tthis.emit(\"conditions_tracking_alert\", msg.data as never);\n\t\t}\n\t}\n\n\tprivate emit<K extends keyof WebSocketEventMap>(event: K, payload: WebSocketEventMap[K]): void {\n\t\tconst set = this.listeners.get(event as string);\n\t\tif (!set) return;\n\t\tfor (const fn of set) {\n\t\t\ttry {\n\t\t\t\t(fn as Listener<WebSocketEventMap[K]>)(payload);\n\t\t\t} catch {}\n\t\t}\n\t}\n\n\tprivate marketSubscribeMessage(conditionId: string): WebSocketMessage {\n\t\treturn { type: \"subscribe_market\", room_id: `market_${conditionId}`, message: {} };\n\t}\n\n\tprivate marketPositionSubscribeMessage(positionId: string): WebSocketMessage {\n\t\treturn { type: \"subscribe_market\", room_id: `market_position_${positionId}`, message: {} };\n\t}\n\n\tprivate walletTrackMessage(action: string, addresses: Address[]): WebSocketMessage {\n\t\treturn { type: \"wallet_tracking\", action, wallet_addresses: addresses };\n\t}\n\n\tprivate conditionsTrackMessage(action: string, conditionIds: string[]): WebSocketMessage {\n\t\treturn { type: \"conditions_tracking\", action, condition_ids: conditionIds };\n\t}\n\n\tprivate subscribeSpecialRoom(roomId: string): void {\n\t\tif (this.activeSpecialRooms.has(roomId)) return;\n\t\tthis.activeSpecialRooms.add(roomId);\n\t\tconst msg: WebSocketMessage = { type: \"subscribe_market\", room_id: roomId, message: {} };\n\t\tthis.transport.addReplayMessage(msg);\n\t\tthis.transport.send(msg);\n\t}\n\n\tprivate unsubscribeSpecialRoom(roomId: string): void {\n\t\tif (!this.activeSpecialRooms.has(roomId)) return;\n\t\tthis.activeSpecialRooms.delete(roomId);\n\t\tconst msg: WebSocketMessage = { type: \"unsubscribe_market\", room_id: roomId, message: {} };\n\t\tthis.transport.removeReplayMessages(\n\t\t\t(m) => m.type === \"subscribe_market\" && m.room_id === roomId,\n\t\t);\n\t\tthis.transport.send(msg);\n\t}\n\n\tprivate rebuildWalletReplay(): void {\n\t\tthis.transport.removeReplayMessages((m) => m.type === \"wallet_tracking\");\n\t\tif (this.activeWallets.size > 0) {\n\t\t\tthis.transport.addReplayMessage(\n\t\t\t\tthis.walletTrackMessage(\"subscribe\", [...this.activeWallets]),\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate rebuildConditionsReplay(): void {\n\t\tthis.transport.removeReplayMessages((m) => m.type === \"conditions_tracking\");\n\t\tif (this.activeConditions.size > 0) {\n\t\t\tthis.transport.addReplayMessage(\n\t\t\t\tthis.conditionsTrackMessage(\"subscribe\", [...this.activeConditions]),\n\t\t\t);\n\t\t}\n\t}\n}\n",
20
20
  "import type { PaginationParams } from \"./types/common.js\";\nimport type { HttpResponse } from \"./types/http.js\";\n\nconst DEFAULT_PAGE_SIZE = 100;\n\nexport async function* paginate<T, P extends PaginationParams>(\n\tfetcher: (params: P) => Promise<HttpResponse<T[]>>,\n\tparams: P,\n\tpageSize: number = DEFAULT_PAGE_SIZE,\n): AsyncGenerator<T> {\n\tlet offset = 0;\n\n\twhile (true) {\n\t\tconst response = await fetcher({ ...params, limit: pageSize, offset } as P);\n\n\t\tfor (const item of response.data) {\n\t\t\tyield item;\n\t\t}\n\n\t\tif (response.data.length < pageSize) {\n\t\t\tbreak;\n\t\t}\n\n\t\toffset += pageSize;\n\t}\n}\n"
21
21
  ],
22
- "mappings": "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",
23
- "debugId": "7C974BF87CA6338564756E2164756E21",
22
+ "mappings": "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",
23
+ "debugId": "8CA02329162CB9E864756E2164756E21",
24
24
  "names": []
25
25
  }