@structbuild/sdk 0.5.10 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated/polymarket.d.ts +2338 -1177
- package/dist/generated/webhooks.d.ts +715 -75
- package/dist/generated/ws-alerts.d.ts +768 -99
- package/dist/generated/ws.d.ts +929 -156
- package/dist/index.cjs +30 -11
- package/dist/index.cjs.map +11 -11
- package/dist/index.js +30 -11
- package/dist/index.js.map +11 -11
- package/dist/namespaces/analytics.d.ts +17 -17
- package/dist/namespaces/assets.d.ts +1 -1
- package/dist/namespaces/builders.d.ts +2 -2
- package/dist/namespaces/events.d.ts +1 -2
- package/dist/namespaces/holders.d.ts +4 -3
- package/dist/namespaces/markets.d.ts +3 -3
- package/dist/namespaces/tags.d.ts +2 -1
- package/dist/namespaces/trader.d.ts +12 -8
- package/dist/types/index.d.ts +81 -50
- package/dist/types/ws.d.ts +55 -10
- package/package.json +2 -1
package/dist/index.js
CHANGED
|
@@ -319,6 +319,10 @@ class HoldersNamespace extends Namespace {
|
|
|
319
319
|
const { positionId, ...query } = params;
|
|
320
320
|
return this.get(venue, `/holders/positions/${encodeURIComponent(positionId)}/history`, { params: query });
|
|
321
321
|
}
|
|
322
|
+
async getEventHoldersHistory(params, venue) {
|
|
323
|
+
const { event_slug, ...query } = params;
|
|
324
|
+
return this.get(venue, `/holders/events/${encodeURIComponent(event_slug)}/history`, { params: query });
|
|
325
|
+
}
|
|
322
326
|
}
|
|
323
327
|
// src/namespaces/tags.ts
|
|
324
328
|
class TagsNamespace extends Namespace {
|
|
@@ -328,6 +332,9 @@ class TagsNamespace extends Namespace {
|
|
|
328
332
|
async getTag(params, venue) {
|
|
329
333
|
return this.get(venue, `/tags/${encodePathParam(params.identifier)}`);
|
|
330
334
|
}
|
|
335
|
+
async getCategoryTopTraders(params, venue) {
|
|
336
|
+
return this.get(venue, "/tags/top-traders", { params: { ...params } });
|
|
337
|
+
}
|
|
331
338
|
}
|
|
332
339
|
// src/namespaces/events.ts
|
|
333
340
|
class EventsNamespace extends Namespace {
|
|
@@ -351,9 +358,6 @@ class EventsNamespace extends Namespace {
|
|
|
351
358
|
async getEventOutcomes(params, venue) {
|
|
352
359
|
return this.get(venue, "/events/outcomes", { params: { ...params } });
|
|
353
360
|
}
|
|
354
|
-
async getEventTopTraders(params, venue) {
|
|
355
|
-
return this.get(venue, "/events/top-traders", { params: { ...params } });
|
|
356
|
-
}
|
|
357
361
|
}
|
|
358
362
|
// src/namespaces/markets.ts
|
|
359
363
|
class MarketsNamespace extends Namespace {
|
|
@@ -444,10 +448,6 @@ class TraderNamespace extends Namespace {
|
|
|
444
448
|
const { address, ...query } = params;
|
|
445
449
|
return this.get(venue, `/trader/pnl/${encodeURIComponent(address)}/markets`, { params: query });
|
|
446
450
|
}
|
|
447
|
-
async getTraderEventPnl(params, venue) {
|
|
448
|
-
const { address, ...query } = params;
|
|
449
|
-
return this.get(venue, `/trader/pnl/${encodeURIComponent(address)}/events`, { params: query });
|
|
450
|
-
}
|
|
451
451
|
async getTraderPnlCalendar(params, venue) {
|
|
452
452
|
const { address, ...query } = params;
|
|
453
453
|
return this.get(venue, `/trader/pnl/${encodeURIComponent(address)}/calendar`, { params: query });
|
|
@@ -463,8 +463,27 @@ class TraderNamespace extends Namespace {
|
|
|
463
463
|
async getGlobalPnl(params, venue) {
|
|
464
464
|
return this.get(venue, "/trader/global_pnl", { params: { ...params } });
|
|
465
465
|
}
|
|
466
|
-
async
|
|
467
|
-
return this.get(venue,
|
|
466
|
+
async getTraderPnlChanges(params, venue) {
|
|
467
|
+
return this.get(venue, `/trader/pnl/${encodeURIComponent(params.address)}/changes`);
|
|
468
|
+
}
|
|
469
|
+
async getTraderPnlPeriods(params, venue) {
|
|
470
|
+
const { address, ...query } = params;
|
|
471
|
+
return this.get(venue, `/trader/pnl/${encodeURIComponent(address)}/periods`, { params: query });
|
|
472
|
+
}
|
|
473
|
+
async getTraderPnlRisk(params, venue) {
|
|
474
|
+
const { address, ...query } = params;
|
|
475
|
+
return this.get(venue, `/trader/pnl/${encodeURIComponent(address)}/risk`, { params: query });
|
|
476
|
+
}
|
|
477
|
+
async getTraderCategoryPnl(params, venue) {
|
|
478
|
+
const { address, ...query } = params;
|
|
479
|
+
return this.get(venue, `/trader/pnl/${encodeURIComponent(address)}/categories`, { params: query });
|
|
480
|
+
}
|
|
481
|
+
async getTraderPnlExits(params, venue) {
|
|
482
|
+
const { address, ...query } = params;
|
|
483
|
+
return this.get(venue, `/trader/pnl/${encodeURIComponent(address)}/exits`, { params: query });
|
|
484
|
+
}
|
|
485
|
+
async getTopTradesMarkets(params, venue) {
|
|
486
|
+
return this.get(venue, "/trader/top_trades_markets", { params: { ...params } });
|
|
468
487
|
}
|
|
469
488
|
}
|
|
470
489
|
// src/namespaces/bonds.ts
|
|
@@ -662,7 +681,7 @@ class WebhooksNamespace extends PlatformNamespace {
|
|
|
662
681
|
}
|
|
663
682
|
async getLogs(params) {
|
|
664
683
|
const { webhookId, ...query } = params;
|
|
665
|
-
return this.http.get(`/webhooks/${encodeURIComponent(webhookId)}/logs`, { params: query });
|
|
684
|
+
return this.http.get(`/webhooks/${encodeURIComponent(webhookId)}/logs`, { params: { ...query } });
|
|
666
685
|
}
|
|
667
686
|
}
|
|
668
687
|
// src/client.ts
|
|
@@ -1500,5 +1519,5 @@ export {
|
|
|
1500
1519
|
HttpClient
|
|
1501
1520
|
};
|
|
1502
1521
|
|
|
1503
|
-
//# debugId=
|
|
1522
|
+
//# debugId=15221C3677A3A42D64756E2164756E21
|
|
1504
1523
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -5,26 +5,26 @@
|
|
|
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
6
|
"import { HttpError, NetworkError, StructError, TimeoutError } from \"./errors.js\";\nimport type { HttpClientConfig, HttpResponse, RequestOptions, RequestHookInfo, ResponseHookInfo, RetryConfig, ApiResponseInfo, PaginationInfo } 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\tconst text = await response.text();\n\t\t\t\tlet body: unknown = text;\n\t\t\t\tif (text.length > 0) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tbody = JSON.parse(text);\n\t\t\t\t\t} catch {}\n\t\t\t\t} else {\n\t\t\t\t\tbody = null;\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\tpagination: body.pagination as PaginationInfo | 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
7
|
"import type { HttpClient } from \"../http.js\";\nimport type { HttpResponse, RequestOptions } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\n\nexport function encodePathParam(value: string): string {\n\ttry {\n\t\treturn encodeURIComponent(decodeURIComponent(value));\n\t} catch {\n\t\treturn encodeURIComponent(value);\n\t}\n}\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
|
-
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\
|
|
9
|
-
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tMarketHoldersResponse,\n\tPositionHoldersResponse,\n\
|
|
10
|
-
"import { Namespace, encodePathParam } 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/${encodePathParam(params.identifier)}`);\n\t}\n}\n",
|
|
11
|
-
"import { Namespace, encodePathParam } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type { Event, EventMarketChartOutcome, EventMetricsResponse, GetEventsParams, GetEventParams, GetEventBySlugParams, GetEventChartParams, GetEventMetricsParams, GetEventOutcomesParams
|
|
12
|
-
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tMarketResponse,\n\tConditionMetricsResponse,\n\tPositionMetricsResponse,\n\tPositionVolumeDataPoint,\n\tPositionChartOutcome,\n\tMarketVolumeDataPoint,\n\tTrade,\n\tCandlestickResponse,\n\tGetMarketsParams,\n\tGetMarketMetricsParams,\n\tGetMarketChartParams,\n\tGetTradesParams,\n\tGetCandlestickParams,\n\tGetPositionCandlestickParams,\n\tGetPositionMetricsParams,\n\tGetPositionVolumeChartParams,\n\tGetMarketVolumeChartParams,\n\tGetMarketParams,\n\tGetMarketBySlugParams,\n\tGetPriceJumpsParams,\n\tPriceJump,\n\tGetOracleEventsParams,\n\tGetMarketTopTradersParams,\n\tGetPositionTopTradersParams,\n\
|
|
8
|
+
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tAssetPriceHistoryRow,\n\tAssetCandlestickBar,\n\tGetAssetHistoryParams,\n\tGetAssetCandlestickParams,\n} from \"../types/index.js\";\n\nexport class AssetsNamespace extends Namespace {\n\tasync getAssetHistory(params: GetAssetHistoryParams, venue?: Venue): Promise<HttpResponse<AssetPriceHistoryRow[]>> {\n\t\treturn this.get<AssetPriceHistoryRow[]>(venue, \"/asset-history\", { params: { ...params } });\n\t}\n\n\tasync getAssetCandlestick(params: GetAssetCandlestickParams, venue?: Venue): Promise<HttpResponse<AssetCandlestickBar[]>> {\n\t\treturn this.get<AssetCandlestickBar[]>(venue, \"/asset-history/candlestick\", { params: { ...params } });\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\tMarketHoldersResponse,\n\tPositionHoldersResponse,\n\tHolderCountHistoryCandle,\n\tPositionHolderHistoryCandle,\n\tGetMarketHoldersParams,\n\tGetPositionHoldersParams,\n\tGetMarketHoldersHistoryParams,\n\tGetPositionHoldersHistoryParams,\n\tGetEventHoldersHistoryParams,\n} from \"../types/index.js\";\n\nexport class HoldersNamespace extends Namespace {\n\tasync getMarketHolders(params: GetMarketHoldersParams, venue?: Venue): Promise<HttpResponse<MarketHoldersResponse>> {\n\t\treturn this.get<MarketHoldersResponse>(venue, \"/holders/markets\", { params: { ...params } });\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<HolderCountHistoryCandle[]>> {\n\t\treturn this.get<HolderCountHistoryCandle[]>(venue, \"/holders/markets/history\", { params: { ...params } });\n\t}\n\n\tasync getPositionHoldersHistory(params: GetPositionHoldersHistoryParams, venue?: Venue): Promise<HttpResponse<PositionHolderHistoryCandle[]>> {\n\t\tconst { positionId, ...query } = params;\n\t\treturn this.get<PositionHolderHistoryCandle[]>(venue, `/holders/positions/${encodeURIComponent(positionId)}/history`, { params: query });\n\t}\n\n\tasync getEventHoldersHistory(params: GetEventHoldersHistoryParams, venue?: Venue): Promise<HttpResponse<HolderCountHistoryCandle[]>> {\n\t\tconst { event_slug, ...query } = params;\n\t\treturn this.get<HolderCountHistoryCandle[]>(venue, `/holders/events/${encodeURIComponent(event_slug)}/history`, { params: query });\n\t}\n}\n",
|
|
10
|
+
"import { Namespace, encodePathParam } 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\tGetCategoryTopTradersParams,\n\tCategoryEntry,\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/${encodePathParam(params.identifier)}`);\n\t}\n\n\tasync getCategoryTopTraders(params?: GetCategoryTopTradersParams, venue?: Venue): Promise<HttpResponse<CategoryEntry[]>> {\n\t\treturn this.get<CategoryEntry[]>(venue, \"/tags/top-traders\", { params: { ...params } });\n\t}\n}\n",
|
|
11
|
+
"import { Namespace, encodePathParam } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type { Event, EventMarketChartOutcome, EventMetricsResponse, GetEventsParams, GetEventParams, GetEventBySlugParams, GetEventChartParams, GetEventMetricsParams, GetEventOutcomesParams } 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 getEvent(params: GetEventParams, venue?: Venue): Promise<HttpResponse<Event>> {\n\t\tconst { identifier, ...query } = params;\n\t\treturn this.get<Event>(venue, `/events/${encodePathParam(identifier)}`, { 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/${encodePathParam(slug)}`, { params: { ...query } });\n\t}\n\n\tasync getEventChart(params: GetEventChartParams, venue?: Venue): Promise<HttpResponse<EventMarketChartOutcome[]>> {\n\t\treturn this.get<EventMarketChartOutcome[]>(venue, \"/events/chart\", { 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\tasync getEventOutcomes(params: GetEventOutcomesParams, venue?: Venue): Promise<HttpResponse<Record<string, string>>> {\n\t\treturn this.get<Record<string, string>>(venue, \"/events/outcomes\", { params: { ...params } });\n\t}\n\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\tMarketResponse,\n\tConditionMetricsResponse,\n\tPositionMetricsResponse,\n\tPositionVolumeDataPoint,\n\tPositionChartOutcome,\n\tMarketVolumeDataPoint,\n\tTrade,\n\tCandlestickResponse,\n\tGetMarketsParams,\n\tGetMarketMetricsParams,\n\tGetMarketChartParams,\n\tGetTradesParams,\n\tGetCandlestickParams,\n\tGetPositionCandlestickParams,\n\tGetPositionMetricsParams,\n\tGetPositionVolumeChartParams,\n\tGetMarketVolumeChartParams,\n\tGetMarketParams,\n\tGetMarketBySlugParams,\n\tGetPriceJumpsParams,\n\tPriceJump,\n\tGetOracleEventsParams,\n\tGetMarketTopTradersParams,\n\tGetPositionTopTradersParams,\n\tMarketEntry,\n\tPositionEntry,\n\tTradeEvent,\n} from \"../types/index.js\";\n\nexport class MarketsNamespace extends Namespace {\n\tasync getMarkets(params?: GetMarketsParams, venue?: Venue): Promise<HttpResponse<MarketResponse[]>> {\n\t\treturn this.get<MarketResponse[]>(venue, \"/market\", { params: { ...params } });\n\t}\n\n\tasync getMarket(params: GetMarketParams, venue?: Venue): Promise<HttpResponse<MarketResponse>> {\n\t\tconst { conditionId, ...query } = params;\n\t\tconst res = await this.get<MarketResponse[]>(venue, `/market/${encodeURIComponent(conditionId)}`, { params: { ...query } });\n\t\treturn { ...res, data: res.data[0]! };\n\t}\n\n\tasync getMarketBySlug(params: GetMarketBySlugParams, venue?: Venue): Promise<HttpResponse<MarketResponse>> {\n\t\tconst { marketSlug, ...query } = params;\n\t\tconst res = await this.get<MarketResponse[]>(venue, `/market/slug/${encodeURIComponent(marketSlug)}`, { params: { ...query } });\n\t\treturn { ...res, data: res.data[0]! };\n\t}\n\n\tasync getMarketChart(params: GetMarketChartParams, venue?: Venue): Promise<HttpResponse<PositionChartOutcome[]>> {\n\t\treturn this.get<PositionChartOutcome[]>(venue, \"/market/chart\", { 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<PositionVolumeDataPoint[]>> {\n\t\treturn this.get<PositionVolumeDataPoint[]>(venue, \"/market/position/volume-chart\", { params: { ...params } });\n\t}\n\n\tasync getMarketVolumeChart(params: GetMarketVolumeChartParams, venue?: Venue): Promise<HttpResponse<MarketVolumeDataPoint[]>> {\n\t\treturn this.get<MarketVolumeDataPoint[]>(venue, \"/market/volume-chart\", { params: { ...params } });\n\t}\n\n\tasync getPriceJumps(params?: GetPriceJumpsParams, venue?: Venue): Promise<HttpResponse<PriceJump[]>> {\n\t\treturn this.get<PriceJump[]>(venue, \"/market/price-jumps\", { params: { ...params } });\n\t}\n\n\tasync getOracleEvents(params?: GetOracleEventsParams, venue?: Venue): Promise<HttpResponse<TradeEvent[]>> {\n\t\treturn this.get<TradeEvent[]>(venue, \"/market/oracle-events\", { params: { ...params } });\n\t}\n\n\tasync getMarketTopTraders(params?: GetMarketTopTradersParams, venue?: Venue): Promise<HttpResponse<MarketEntry[]>> {\n\t\treturn this.get<MarketEntry[]>(venue, \"/market/top-traders\", { params: { ...params } });\n\t}\n\n\tasync getPositionTopTraders(params: GetPositionTopTradersParams, venue?: Venue): Promise<HttpResponse<PositionEntry[]>> {\n\t\treturn this.get<PositionEntry[]>(venue, \"/market/position/top-traders\", { params: { ...params } });\n\t}\n}\n",
|
|
13
13
|
"import { Namespace, encodePathParam } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type { Event, Series, GetSeriesListParams, GetSeriesOutcomesParams, 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 getSeriesOutcomes(params: GetSeriesOutcomesParams, venue?: Venue): Promise<HttpResponse<Record<string, string>>> {\n\t\treturn this.get<Record<string, string>>(venue, \"/series/outcomes\", { params: { ...params } });\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/${encodePathParam(identifier)}/events`, { params: { ...query } });\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 {\n\tTrade,\n\tUserProfile,\n\tTraderVolumeDataPoint,\n\
|
|
14
|
+
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tTrade,\n\tUserProfile,\n\tTraderVolumeDataPoint,\n\tPnlCandleEntry,\n\tPnlCandlestickBar,\n\tGetTraderTradesParams,\n\tGetTraderProfileParams,\n\tGetTraderProfilesBatchParams,\n\tGetTraderVolumeChartParams,\n\tGetTraderPnlParams,\n\tGetTraderPnlBreakdownParams,\n\tGetTraderPnlCalendarParams,\n\tGetTraderPnlCandlesParams,\n\tGetGlobalPnlParams,\n\tGetTraderPositionPnlParams,\n\tGetTraderPnlChangesParams,\n\tGetTraderPnlPeriodsParams,\n\tGetTraderPnlRiskParams,\n\tGetTraderCategoryPnlParams,\n\tGetTopTradesMarketsParams,\n\tGetTraderPnlExitsParams,\n\tPnlExitMarker,\n\tPnlChangesResponse,\n\tPnlPeriodsResponse,\n\tPnlRiskResponse,\n\tGlobalEntry,\n\tMarketEntry,\n\tCategoryEntry,\n\tPositionEntry,\n} from \"../types/index.js\";\n\nexport class TraderNamespace extends Namespace {\n\tasync getTraderTrades(params: GetTraderTradesParams, venue?: Venue): Promise<HttpResponse<Trade[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<Trade[]>(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<UserProfile[]>> {\n\t\treturn this.get<UserProfile[]>(venue, \"/trader/profiles/batch\", { params: { ...params } });\n\t}\n\n\tasync getTraderVolumeChart(params: GetTraderVolumeChartParams, venue?: Venue): Promise<HttpResponse<TraderVolumeDataPoint[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<TraderVolumeDataPoint[]>(venue, `/trader/volume-chart/${encodeURIComponent(address)}`, { params: query });\n\t}\n\n\tasync getTraderPnl(params: GetTraderPnlParams, venue?: Venue): Promise<HttpResponse<GlobalEntry>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<GlobalEntry>(venue, `/trader/pnl/${encodeURIComponent(address)}`, { params: query });\n\t}\n\n\tasync getTraderMarketPnl(params: GetTraderPnlBreakdownParams, venue?: Venue): Promise<HttpResponse<MarketEntry[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<MarketEntry[]>(venue, `/trader/pnl/${encodeURIComponent(address)}/markets`, { params: query });\n\t}\n\n\tasync getTraderPnlCalendar(params: GetTraderPnlCalendarParams, venue?: Venue): Promise<HttpResponse<PnlCandleEntry[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlCandleEntry[]>(venue, `/trader/pnl/${encodeURIComponent(address)}/calendar`, { params: query });\n\t}\n\n\tasync getTraderPnlCandles(params: GetTraderPnlCandlesParams, venue?: Venue): Promise<HttpResponse<PnlCandlestickBar[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlCandlestickBar[]>(venue, `/trader/pnl/${encodeURIComponent(address)}/candles`, { params: query });\n\t}\n\n\tasync getTraderOutcomePnl(params: GetTraderPositionPnlParams, venue?: Venue): Promise<HttpResponse<PositionEntry[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PositionEntry[]>(venue, `/trader/pnl/${encodeURIComponent(address)}/positions`, { params: query });\n\t}\n\n\tasync getGlobalPnl(params?: GetGlobalPnlParams, venue?: Venue): Promise<HttpResponse<GlobalEntry[]>> {\n\t\treturn this.get<GlobalEntry[]>(venue, \"/trader/global_pnl\", { params: { ...params } });\n\t}\n\n\tasync getTraderPnlChanges(params: GetTraderPnlChangesParams, venue?: Venue): Promise<HttpResponse<PnlChangesResponse>> {\n\t\treturn this.get<PnlChangesResponse>(venue, `/trader/pnl/${encodeURIComponent(params.address)}/changes`);\n\t}\n\n\tasync getTraderPnlPeriods(params: GetTraderPnlPeriodsParams, venue?: Venue): Promise<HttpResponse<PnlPeriodsResponse>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlPeriodsResponse>(venue, `/trader/pnl/${encodeURIComponent(address)}/periods`, { params: query });\n\t}\n\n\tasync getTraderPnlRisk(params: GetTraderPnlRiskParams, venue?: Venue): Promise<HttpResponse<PnlRiskResponse>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlRiskResponse>(venue, `/trader/pnl/${encodeURIComponent(address)}/risk`, { params: query });\n\t}\n\n\tasync getTraderCategoryPnl(params: GetTraderCategoryPnlParams, venue?: Venue): Promise<HttpResponse<CategoryEntry[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<CategoryEntry[]>(venue, `/trader/pnl/${encodeURIComponent(address)}/categories`, { params: query });\n\t}\n\n\tasync getTraderPnlExits(params: GetTraderPnlExitsParams, venue?: Venue): Promise<HttpResponse<PnlExitMarker[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlExitMarker[]>(venue, `/trader/pnl/${encodeURIComponent(address)}/exits`, { params: query });\n\t}\n\n\tasync getTopTradesMarkets(params?: GetTopTradesMarketsParams, venue?: Venue): Promise<HttpResponse<MarketEntry[]>> {\n\t\treturn this.get<MarketEntry[]>(venue, \"/trader/top_trades_markets\", { params: { ...params } });\n\t}\n}\n",
|
|
15
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, \"/market/bonds\", { params: { ...params } });\n\t}\n}\n",
|
|
16
|
-
"import { Namespace, encodePathParam } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tBuilderLatestRow,\n\tBuilderGlobalLatestRow,\n\tBuilderPctChange,\n\tGlobalPctChange,\n\tBuilderTimeBucketRow,\n\tBuilderTagRow,\n\
|
|
16
|
+
"import { Namespace, encodePathParam } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tBuilderLatestRow,\n\tBuilderGlobalLatestRow,\n\tBuilderPctChange,\n\tGlobalPctChange,\n\tBuilderTimeBucketRow,\n\tBuilderTagRow,\n\tTagBuilderRowWithMetadata,\n\tBuilderFeeRate,\n\tBuilderFeeRateHistoryEntry,\n\tBuilderMetadata,\n\tCohortRetentionRow,\n\tCompositionResponse,\n\tConcentrationResponse,\n\tGlobalBuilderTagRow,\n\tTopTraderRow,\n\tGetBuildersParams,\n\tGetBuilderCompositionParams,\n\tGetBuilderMetadataParams,\n\tGetGlobalBuilderTagsParams,\n\tListBuilderMetadataParams,\n\tSearchBuildersParams,\n\tGetBuilderParams,\n\tGetBuilderAnalyticsChangesParams,\n\tGetBuilderAnalyticsDeltasParams,\n\tGetBuilderAnalyticsTimeseriesParams,\n\tGetBuilderConcentrationParams,\n\tGetBuilderFeesParams,\n\tGetBuilderFeesHistoryParams,\n\tGetBuilderRetentionParams,\n\tGetBuilderTagsParams,\n\tGetBuilderTopTradersParams,\n\tGetBuilderGlobalParams,\n\tGetBuilderGlobalChangesParams,\n\tGetBuilderGlobalDeltasParams,\n\tGetBuilderGlobalTimeseriesParams,\n\tGetTagBuildersParams,\n} from \"../types/index.js\";\n\nexport class BuildersNamespace extends Namespace {\n\tasync getBuilders(params?: GetBuildersParams, venue?: Venue): Promise<HttpResponse<BuilderLatestRow[]>> {\n\t\treturn this.get<BuilderLatestRow[]>(venue, \"/builders\", { params: { ...params } });\n\t}\n\n\tasync getComposition(params?: GetBuilderCompositionParams, venue?: Venue): Promise<HttpResponse<CompositionResponse>> {\n\t\treturn this.get<CompositionResponse>(venue, \"/builders/composition\", { params: { ...params } });\n\t}\n\n\tasync listBuilderMetadata(params?: ListBuilderMetadataParams, venue?: Venue): Promise<HttpResponse<BuilderMetadata[]>> {\n\t\treturn this.get<BuilderMetadata[]>(venue, \"/builders/metadata\", { params: { ...params } });\n\t}\n\n\tasync searchBuilders(params: SearchBuildersParams, venue?: Venue): Promise<HttpResponse<BuilderMetadata[]>> {\n\t\treturn this.get<BuilderMetadata[]>(venue, \"/builders/search\", { params: { ...params } });\n\t}\n\n\tasync getBuilderMetadata(params: GetBuilderMetadataParams, venue?: Venue): Promise<HttpResponse<BuilderMetadata | null>> {\n\t\treturn this.get<BuilderMetadata | null>(venue, `/builders/${encodePathParam(params.builder_code)}/metadata`);\n\t}\n\n\tasync getBuilder(params: GetBuilderParams, venue?: Venue): Promise<HttpResponse<BuilderLatestRow>> {\n\t\tconst { builder_code, ...query } = params;\n\t\treturn this.get<BuilderLatestRow>(venue, `/builders/${encodePathParam(builder_code)}`, { params: query });\n\t}\n\n\tasync getBuilderChanges(params: GetBuilderAnalyticsChangesParams, venue?: Venue): Promise<HttpResponse<BuilderPctChange>> {\n\t\tconst { builder_code, ...query } = params;\n\t\treturn this.get<BuilderPctChange>(venue, `/builders/${encodePathParam(builder_code)}/analytics/changes`, { params: query });\n\t}\n\n\tasync getBuilderDeltas(params: GetBuilderAnalyticsDeltasParams, venue?: Venue): Promise<HttpResponse<BuilderTimeBucketRow[]>> {\n\t\tconst { builder_code, ...query } = params;\n\t\treturn this.get<BuilderTimeBucketRow[]>(venue, `/builders/${encodePathParam(builder_code)}/analytics/deltas`, { params: query });\n\t}\n\n\tasync getBuilderTimeseries(params: GetBuilderAnalyticsTimeseriesParams, venue?: Venue): Promise<HttpResponse<BuilderTimeBucketRow[]>> {\n\t\tconst { builder_code, ...query } = params;\n\t\treturn this.get<BuilderTimeBucketRow[]>(venue, `/builders/${encodePathParam(builder_code)}/analytics/timeseries`, { params: query });\n\t}\n\n\tasync getBuilderConcentration(params: GetBuilderConcentrationParams, venue?: Venue): Promise<HttpResponse<ConcentrationResponse>> {\n\t\tconst { builder_code, ...query } = params;\n\t\treturn this.get<ConcentrationResponse>(venue, `/builders/${encodePathParam(builder_code)}/concentration`, { params: query });\n\t}\n\n\tasync getBuilderFees(params: GetBuilderFeesParams, venue?: Venue): Promise<HttpResponse<BuilderFeeRate>> {\n\t\treturn this.get<BuilderFeeRate>(venue, `/builders/${encodePathParam(params.builder_code)}/fees`);\n\t}\n\n\tasync getBuilderFeesHistory(params: GetBuilderFeesHistoryParams, venue?: Venue): Promise<HttpResponse<BuilderFeeRateHistoryEntry[]>> {\n\t\tconst { builder_code, ...query } = params;\n\t\treturn this.get<BuilderFeeRateHistoryEntry[]>(venue, `/builders/${encodePathParam(builder_code)}/fees/history`, { params: query });\n\t}\n\n\tasync getBuilderRetention(params: GetBuilderRetentionParams, venue?: Venue): Promise<HttpResponse<CohortRetentionRow[]>> {\n\t\tconst { builder_code, ...query } = params;\n\t\treturn this.get<CohortRetentionRow[]>(venue, `/builders/${encodePathParam(builder_code)}/retention`, { params: query });\n\t}\n\n\tasync getBuilderTags(params: GetBuilderTagsParams, venue?: Venue): Promise<HttpResponse<BuilderTagRow[]>> {\n\t\tconst { builder_code, ...query } = params;\n\t\treturn this.get<BuilderTagRow[]>(venue, `/builders/${encodePathParam(builder_code)}/tags`, { params: query });\n\t}\n\n\tasync getBuilderTopTraders(params: GetBuilderTopTradersParams, venue?: Venue): Promise<HttpResponse<TopTraderRow[]>> {\n\t\tconst { builder_code, ...query } = params;\n\t\treturn this.get<TopTraderRow[]>(venue, `/builders/${encodePathParam(builder_code)}/top-traders`, { params: query });\n\t}\n\n\tasync getGlobal(params?: GetBuilderGlobalParams, venue?: Venue): Promise<HttpResponse<BuilderGlobalLatestRow>> {\n\t\treturn this.get<BuilderGlobalLatestRow>(venue, \"/builders/global\", { params: { ...params } });\n\t}\n\n\tasync getGlobalChanges(params?: GetBuilderGlobalChangesParams, venue?: Venue): Promise<HttpResponse<GlobalPctChange>> {\n\t\treturn this.get<GlobalPctChange>(venue, \"/builders/global/analytics/changes\", { params: { ...params } });\n\t}\n\n\tasync getGlobalDeltas(params?: GetBuilderGlobalDeltasParams, venue?: Venue): Promise<HttpResponse<BuilderTimeBucketRow[]>> {\n\t\treturn this.get<BuilderTimeBucketRow[]>(venue, \"/builders/global/analytics/deltas\", { params: { ...params } });\n\t}\n\n\tasync getGlobalTimeseries(params?: GetBuilderGlobalTimeseriesParams, venue?: Venue): Promise<HttpResponse<BuilderTimeBucketRow[]>> {\n\t\treturn this.get<BuilderTimeBucketRow[]>(venue, \"/builders/global/analytics/timeseries\", { params: { ...params } });\n\t}\n\n\tasync getGlobalTags(params?: GetGlobalBuilderTagsParams, venue?: Venue): Promise<HttpResponse<GlobalBuilderTagRow[]>> {\n\t\treturn this.get<GlobalBuilderTagRow[]>(venue, \"/builders/global/tags\", { params: { ...params } });\n\t}\n\n\tasync getTagBuilders(params: GetTagBuildersParams, venue?: Venue): Promise<HttpResponse<TagBuilderRowWithMetadata[]>> {\n\t\tconst { tag, ...query } = params;\n\t\treturn this.get<TagBuilderRowWithMetadata[]>(venue, `/builders/tags/${encodePathParam(tag)}`, { params: query });\n\t}\n}\n",
|
|
17
17
|
"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",
|
|
18
18
|
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tGetOrderBookParams,\n\tGetOrderBookHistoryParams,\n\tGetMarketOrderBookParams,\n\tGetSpreadHistoryParams,\n\tOperationResponse,\n} from \"../types/index.js\";\n\ntype GetOrderBookResponse = OperationResponse<\"get_order_book\">;\ntype GetOrderBookHistoryResponse = OperationResponse<\"get_order_book_history\">;\ntype GetMarketOrderBookResponse = OperationResponse<\"get_market_order_book\">;\ntype GetSpreadHistoryResponse = OperationResponse<\"get_spread_history\">;\n\nexport class OrderBookNamespace extends Namespace {\n\tasync getOrderBook(params: GetOrderBookParams, venue?: Venue): Promise<HttpResponse<GetOrderBookResponse>> {\n\t\treturn this.get<GetOrderBookResponse>(venue, \"/order-book\", { params: { ...params } });\n\t}\n\n\tasync getOrderBookHistory(params?: GetOrderBookHistoryParams, venue?: Venue): Promise<HttpResponse<GetOrderBookHistoryResponse>> {\n\t\treturn this.get<GetOrderBookHistoryResponse>(venue, \"/order-book/history\", { params: { ...params } });\n\t}\n\n\tasync getMarketOrderBook(params?: GetMarketOrderBookParams, venue?: Venue): Promise<HttpResponse<GetMarketOrderBookResponse>> {\n\t\treturn this.get<GetMarketOrderBookResponse>(venue, \"/order-book/market\", { params: { ...params } });\n\t}\n\n\tasync getSpreadHistory(params?: GetSpreadHistoryParams, venue?: Venue): Promise<HttpResponse<GetSpreadHistoryResponse>> {\n\t\treturn this.get<GetSpreadHistoryResponse>(venue, \"/order-book/spread\", { params: { ...params } });\n\t}\n}\n",
|
|
19
|
-
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\
|
|
20
|
-
"import { PlatformNamespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type {\n\tWebhookResponse,\n\tWebhookListResponseBody,\n\tWebhookTestResponseBody,\n\tRotateSecretResponse,\n\tListEventsResponse,\n\tListWebhooksParams,\n\tGetWebhookParams,\n\tCreateWebhookParams,\n\tUpdateWebhookParams,\n\tDeleteWebhookParams,\n\tDeleteWebhookResponse,\n\tTestWebhookParams,\n\tRotateSecretParams,\n\tGetWebhookLogsParams,\n\tWebhookLogsResponseBody,\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<DeleteWebhookResponse>> {\n\t\treturn this.http.delete<DeleteWebhookResponse>(`/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\tasync rotateSecret(params: RotateSecretParams): Promise<HttpResponse<RotateSecretResponse>> {\n\t\treturn this.http.post<RotateSecretResponse>(`/webhooks/${encodeURIComponent(params.webhookId)}/rotate-secret`);\n\t}\n\n\tasync listEvents(): Promise<HttpResponse<ListEventsResponse>> {\n\t\treturn this.http.get<ListEventsResponse>(\"/webhooks/events\");\n\t}\n\n\tasync getLogs(params: GetWebhookLogsParams): Promise<HttpResponse<WebhookLogsResponseBody>> {\n\t\tconst { webhookId, ...query } = params;\n\t\treturn this.http.get<WebhookLogsResponseBody>(`/webhooks/${encodeURIComponent(webhookId)}/logs`, { params: query });\n\t}\n}\n",
|
|
19
|
+
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tAnalyticsGlobalCountsResponse,\n\tAnalyticsMetricPctChange,\n\tAnalyticsTimeBucketRow,\n\tTraderAnalyticsDeltaTimeBucketRow,\n\tTraderAnalyticsMetricPctChange,\n\tTraderAnalyticsTimeBucketRow,\n\tGetGlobalAnalyticsDeltasParams,\n\tGetGlobalAnalyticsChangesParams,\n\tGetGlobalAnalyticsTimeseriesParams,\n\tGetEventAnalyticsDeltasParams,\n\tGetEventAnalyticsChangesParams,\n\tGetEventAnalyticsTimeseriesParams,\n\tGetMarketAnalyticsDeltasParams,\n\tGetMarketAnalyticsChangesParams,\n\tGetMarketAnalyticsTimeseriesParams,\n\tGetTagAnalyticsDeltasParams,\n\tGetTagAnalyticsChangesParams,\n\tGetTagAnalyticsTimeseriesParams,\n\tGetTraderAnalyticsDeltasParams,\n\tGetTraderAnalyticsChangesParams,\n\tGetTraderAnalyticsTimeseriesParams,\n} from \"../types/index.js\";\n\nexport class AnalyticsNamespace extends Namespace {\n\tasync getCounts(venue?: Venue): Promise<HttpResponse<AnalyticsGlobalCountsResponse>> {\n\t\treturn this.get<AnalyticsGlobalCountsResponse>(venue, \"/analytics/counts\");\n\t}\n\n\tasync getDeltas(params?: GetGlobalAnalyticsDeltasParams, venue?: Venue): Promise<HttpResponse<AnalyticsTimeBucketRow[]>> {\n\t\treturn this.get<AnalyticsTimeBucketRow[]>(venue, \"/analytics/deltas\", { params: { ...params } });\n\t}\n\n\tasync getChanges(params: GetGlobalAnalyticsChangesParams, venue?: Venue): Promise<HttpResponse<AnalyticsMetricPctChange>> {\n\t\treturn this.get<AnalyticsMetricPctChange>(venue, \"/analytics/changes\", { params: { ...params } });\n\t}\n\n\tasync getTimeseries(params?: GetGlobalAnalyticsTimeseriesParams, venue?: Venue): Promise<HttpResponse<AnalyticsTimeBucketRow[]>> {\n\t\treturn this.get<AnalyticsTimeBucketRow[]>(venue, \"/analytics/timeseries\", { params: { ...params } });\n\t}\n\n\tasync getEventDeltas(params: GetEventAnalyticsDeltasParams, venue?: Venue): Promise<HttpResponse<AnalyticsTimeBucketRow[]>> {\n\t\tconst { event_slug, ...query } = params;\n\t\treturn this.get<AnalyticsTimeBucketRow[]>(venue, `/events/${encodeURIComponent(event_slug)}/analytics/deltas`, { params: query });\n\t}\n\n\tasync getEventChanges(params: GetEventAnalyticsChangesParams, venue?: Venue): Promise<HttpResponse<AnalyticsMetricPctChange>> {\n\t\tconst { event_slug, ...query } = params;\n\t\treturn this.get<AnalyticsMetricPctChange>(venue, `/events/${encodeURIComponent(event_slug)}/analytics/changes`, { params: query });\n\t}\n\n\tasync getEventTimeseries(params: GetEventAnalyticsTimeseriesParams, venue?: Venue): Promise<HttpResponse<AnalyticsTimeBucketRow[]>> {\n\t\tconst { event_slug, ...query } = params;\n\t\treturn this.get<AnalyticsTimeBucketRow[]>(venue, `/events/${encodeURIComponent(event_slug)}/analytics/timeseries`, { params: query });\n\t}\n\n\tasync getMarketDeltas(params: GetMarketAnalyticsDeltasParams, venue?: Venue): Promise<HttpResponse<AnalyticsTimeBucketRow[]>> {\n\t\tconst { condition_id, ...query } = params;\n\t\treturn this.get<AnalyticsTimeBucketRow[]>(venue, `/market/${encodeURIComponent(condition_id)}/analytics/deltas`, { params: query });\n\t}\n\n\tasync getMarketChanges(params: GetMarketAnalyticsChangesParams, venue?: Venue): Promise<HttpResponse<AnalyticsMetricPctChange>> {\n\t\tconst { condition_id, ...query } = params;\n\t\treturn this.get<AnalyticsMetricPctChange>(venue, `/market/${encodeURIComponent(condition_id)}/analytics/changes`, { params: query });\n\t}\n\n\tasync getMarketTimeseries(params: GetMarketAnalyticsTimeseriesParams, venue?: Venue): Promise<HttpResponse<AnalyticsTimeBucketRow[]>> {\n\t\tconst { condition_id, ...query } = params;\n\t\treturn this.get<AnalyticsTimeBucketRow[]>(venue, `/market/${encodeURIComponent(condition_id)}/analytics/timeseries`, { params: query });\n\t}\n\n\tasync getTagDeltas(params: GetTagAnalyticsDeltasParams, venue?: Venue): Promise<HttpResponse<AnalyticsTimeBucketRow[]>> {\n\t\tconst { tag, ...query } = params;\n\t\treturn this.get<AnalyticsTimeBucketRow[]>(venue, `/tags/${encodeURIComponent(tag)}/analytics/deltas`, { params: query });\n\t}\n\n\tasync getTagChanges(params: GetTagAnalyticsChangesParams, venue?: Venue): Promise<HttpResponse<AnalyticsMetricPctChange>> {\n\t\tconst { tag, ...query } = params;\n\t\treturn this.get<AnalyticsMetricPctChange>(venue, `/tags/${encodeURIComponent(tag)}/analytics/changes`, { params: query });\n\t}\n\n\tasync getTagTimeseries(params: GetTagAnalyticsTimeseriesParams, venue?: Venue): Promise<HttpResponse<AnalyticsTimeBucketRow[]>> {\n\t\tconst { tag, ...query } = params;\n\t\treturn this.get<AnalyticsTimeBucketRow[]>(venue, `/tags/${encodeURIComponent(tag)}/analytics/timeseries`, { params: query });\n\t}\n\n\tasync getTraderDeltas(params: GetTraderAnalyticsDeltasParams, venue?: Venue): Promise<HttpResponse<TraderAnalyticsDeltaTimeBucketRow[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<TraderAnalyticsDeltaTimeBucketRow[]>(venue, `/trader/${encodeURIComponent(address)}/analytics/deltas`, { params: query });\n\t}\n\n\tasync getTraderChanges(params: GetTraderAnalyticsChangesParams, venue?: Venue): Promise<HttpResponse<TraderAnalyticsMetricPctChange>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<TraderAnalyticsMetricPctChange>(venue, `/trader/${encodeURIComponent(address)}/analytics/changes`, { params: query });\n\t}\n\n\tasync getTraderTimeseries(params: GetTraderAnalyticsTimeseriesParams, venue?: Venue): Promise<HttpResponse<TraderAnalyticsTimeBucketRow[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<TraderAnalyticsTimeBucketRow[]>(venue, `/trader/${encodeURIComponent(address)}/analytics/timeseries`, { params: query });\n\t}\n}\n",
|
|
20
|
+
"import { PlatformNamespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type {\n\tWebhookResponse,\n\tWebhookListResponseBody,\n\tWebhookTestResponseBody,\n\tRotateSecretResponse,\n\tListEventsResponse,\n\tListWebhooksParams,\n\tGetWebhookParams,\n\tCreateWebhookParams,\n\tUpdateWebhookParams,\n\tDeleteWebhookParams,\n\tDeleteWebhookResponse,\n\tTestWebhookParams,\n\tRotateSecretParams,\n\tGetWebhookLogsParams,\n\tWebhookLogsResponseBody,\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<DeleteWebhookResponse>> {\n\t\treturn this.http.delete<DeleteWebhookResponse>(`/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\tasync rotateSecret(params: RotateSecretParams): Promise<HttpResponse<RotateSecretResponse>> {\n\t\treturn this.http.post<RotateSecretResponse>(`/webhooks/${encodeURIComponent(params.webhookId)}/rotate-secret`);\n\t}\n\n\tasync listEvents(): Promise<HttpResponse<ListEventsResponse>> {\n\t\treturn this.http.get<ListEventsResponse>(\"/webhooks/events\");\n\t}\n\n\tasync getLogs(params: GetWebhookLogsParams): Promise<HttpResponse<WebhookLogsResponseBody>> {\n\t\tconst { webhookId, ...query } = params;\n\t\treturn this.http.get<WebhookLogsResponseBody>(`/webhooks/${encodeURIComponent(webhookId)}/logs`, { params: { ...query } });\n\t}\n}\n",
|
|
21
21
|
"import { HttpClient } from \"./http.js\";\nimport type { Venue } from \"./types/common.js\";\nimport type { RetryConfig, RequestHookInfo, ResponseHookInfo } from \"./types/index.js\";\nimport {\n\tAssetsNamespace,\n\tHoldersNamespace,\n\tTagsNamespace,\n\tEventsNamespace,\n\tMarketsNamespace,\n\tSeriesNamespace,\n\tTraderNamespace,\n\tBondsNamespace,\n\tBuildersNamespace,\n\tSearchNamespace,\n\tAnalyticsNamespace,\n\tOrderBookNamespace,\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\tjwt?: 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 assets: AssetsNamespace;\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 builders: BuildersNamespace;\n\treadonly search: SearchNamespace;\n\treadonly analytics: AnalyticsNamespace;\n\treadonly orderBook: OrderBookNamespace;\n\treadonly webhooks: WebhooksNamespace;\n\n\tconstructor(config: StructClientConfig) {\n\t\tconst authHeaders: Record<string, string> = {\n\t\t\t\"X-API-Key\": config.apiKey,\n\t\t};\n\t\tif (config.jwt) {\n\t\t\tauthHeaders[\"Authorization\"] = `Bearer ${config.jwt}`;\n\t\t}\n\n\t\tconst http = new HttpClient({\n\t\t\tbaseUrl: config.baseUrl ?? DEFAULT_BASE_URL,\n\t\t\tdefaultHeaders: {\n\t\t\t\t...authHeaders,\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.assets = new AssetsNamespace(http, venue);\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.builders = new BuildersNamespace(http, venue);\n\t\tthis.search = new SearchNamespace(http, venue);\n\t\tthis.analytics = new AnalyticsNamespace(http, venue);\n\t\tthis.orderBook = new OrderBookNamespace(http, venue);\n\t\tthis.webhooks = new WebhooksNamespace(http);\n\t}\n}\n",
|
|
22
22
|
"import { WebSocketError, WebSocketClosedError } from \"./errors.js\";\nimport type { ConnectionState } 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;\nconst DEFAULT_MAX_PENDING_MESSAGES = 256;\nconst AUTH_FAILURE_CLOSE_CODES = new Set([1008, 4401]);\n\ninterface QueuedMessage {\n\tmessage: Record<string, unknown>;\n}\n\ninterface ReplayMessageGroup {\n\tmessages: QueuedMessage[];\n}\n\ninterface ConnectWaiter {\n\tresolve: () => void;\n\treject: (err: Error) => void;\n}\n\nexport function buildWebSocketUrl(\n\tpath: string,\n\tconfig: { apiKey: string; jwt?: string; baseUrl?: string },\n\tdefaultBaseUrl: string,\n): string {\n\tconst base = trimTrailingSlashes(config.baseUrl ?? defaultBaseUrl);\n\tconst wsBase = toWebSocketBaseUrl(base);\n\tconst params = new URLSearchParams({ \"api-key\": config.apiKey });\n\tif (config.jwt) params.set(\"token\", config.jwt);\n\treturn `${wsBase}${path}?${params.toString()}`;\n}\n\nfunction trimTrailingSlashes(value: string): string {\n\tlet end = value.length;\n\twhile (end > 0 && value.charCodeAt(end - 1) === 47) {\n\t\tend--;\n\t}\n\treturn end === value.length ? value : value.slice(0, end);\n}\n\nfunction toWebSocketBaseUrl(baseUrl: string): string {\n\tif (baseUrl.startsWith(\"https://\")) {\n\t\treturn `wss://${baseUrl.slice(\"https://\".length)}`;\n\t}\n\tif (baseUrl.startsWith(\"http://\")) {\n\t\treturn `ws://${baseUrl.slice(\"http://\".length)}`;\n\t}\n\treturn baseUrl;\n}\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\tonReconnectFailed: (error: Error) => void;\n\tonAuthFailed: (error: WebSocketClosedError) => void;\n\tonWarning: (warning: Error) => 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 connectWaiters = new Set<ConnectWaiter>();\n\tprivate readonly pendingMessages: QueuedMessage[] = [];\n\tprivate readonly replayMessages: ReplayMessageGroup[] = [];\n\tprivate readonly getUrl: () => string;\n\tprivate readonly retry: RetryConfig;\n\tprivate readonly callbacks: WebSocketTransportCallbacks;\n\n\tconstructor(url: string | (() => string), retry: RetryConfig, callbacks: WebSocketTransportCallbacks) {\n\t\tthis.getUrl = typeof url === \"function\" ? 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(): Promise<void> {\n\t\tif (this._state === \"connected\") return Promise.resolve();\n\t\tconst promise = this.createConnectPromise();\n\t\tif (this._state === \"connecting\" || this._state === \"reconnecting\") {\n\t\t\treturn promise;\n\t\t}\n\n\t\tthis.intentionalClose = false;\n\t\tthis.clearReconnectTimer();\n\t\tthis.setState(\"connecting\");\n\t\tthis.createSocket();\n\t\treturn promise;\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\tthis.rejectConnect(new WebSocketClosedError(1000, \"client disconnect\"));\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: Record<string, unknown>): boolean {\n\t\tconst queuedMessage: QueuedMessage = { message };\n\t\tif (this.sendMessage(queuedMessage)) return true;\n\t\tthis.enqueueMessage(this.pendingMessages, queuedMessage, \"pending\");\n\t\treturn false;\n\t}\n\n\tsendNow(message: Record<string, unknown>): boolean {\n\t\treturn this.sendMessage({ message });\n\t}\n\n\taddReplayMessage(message: Record<string, unknown>): void {\n\t\tthis.addReplayMessages([message]);\n\t}\n\n\taddReplayMessages(messages: Record<string, unknown>[]): void {\n\t\tthis.enqueueReplayMessages(messages.map((message) => ({ message })));\n\t}\n\n\tclearReplayMessages(): void {\n\t\tthis.replayMessages.length = 0;\n\t}\n\n\tclose(code: number, reason: string): void {\n\t\tthis.ws?.close(code, reason);\n\t}\n\n\tprivate createConnectPromise(): Promise<void> {\n\t\treturn new Promise<void>((resolve, reject) => {\n\t\t\tthis.connectWaiters.add({ resolve, reject });\n\t\t});\n\t}\n\n\tprivate resolveConnect(): void {\n\t\tfor (const waiter of this.connectWaiters) {\n\t\t\twaiter.resolve();\n\t\t}\n\t\tthis.connectWaiters.clear();\n\t}\n\n\tprivate rejectConnect(error: Error): void {\n\t\tfor (const waiter of this.connectWaiters) {\n\t\t\twaiter.reject(error);\n\t\t}\n\t\tthis.connectWaiters.clear();\n\t}\n\n\tprivate createSocket(): void {\n\t\ttry {\n\t\t\tthis.ws = new WebSocket(this.getUrl());\n\t\t} catch (err) {\n\t\t\tconst error = new WebSocketError(\"Failed to create WebSocket\", { cause: err });\n\t\t\tthis.callbacks.onError(error);\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.resolveConnect();\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\n\t\t\tconst error = new WebSocketClosedError(event.code, event.reason);\n\t\t\tthis.callbacks.onClose(event.code, event.reason);\n\t\t\tif (this.isAuthFailure(event.code)) {\n\t\t\t\tthis.setState(\"disconnected\");\n\t\t\t\tthis.rejectConnect(error);\n\t\t\t\tthis.callbacks.onAuthFailed(error);\n\t\t\t\treturn;\n\t\t\t}\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 replayGroup of this.replayMessages) {\n\t\t\tfor (const queuedMessage of replayGroup.messages) {\n\t\t\t\tthis.sendMessage(queuedMessage);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate flushPendingMessages(): void {\n\t\twhile (this.pendingMessages.length > 0) {\n\t\t\tthis.sendMessage(this.pendingMessages.shift()!);\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\tconst error = new WebSocketClosedError(1006, \"Max reconnection attempts reached\");\n\t\t\tthis.setState(\"disconnected\");\n\t\t\tthis.rejectConnect(error);\n\t\t\tthis.callbacks.onReconnectFailed(error);\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 sendMessage(queuedMessage: QueuedMessage): boolean {\n\t\tif (this.ws?.readyState !== WebSocket.OPEN) return false;\n\t\tthis.ws.send(JSON.stringify(queuedMessage.message));\n\t\treturn true;\n\t}\n\n\tprivate enqueueMessage(queue: QueuedMessage[], queuedMessage: QueuedMessage, queueName: \"pending\" | \"replay\"): void {\n\t\tqueue.push(queuedMessage);\n\t\tconst maxPendingMessages = this.retry.maxPendingMessages ?? DEFAULT_MAX_PENDING_MESSAGES;\n\t\tif (queue.length > maxPendingMessages) {\n\t\t\tqueue.shift();\n\t\t\tthis.callbacks.onWarning(\n\t\t\t\tnew WebSocketError(\n\t\t\t\t\t`WebSocket ${queueName} queue exceeded ${maxPendingMessages} messages; dropped oldest message`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate enqueueReplayMessages(messages: QueuedMessage[]): void {\n\t\tthis.replayMessages.push({ messages });\n\t\tconst maxPendingMessages = this.retry.maxPendingMessages ?? DEFAULT_MAX_PENDING_MESSAGES;\n\t\tif (this.replayMessages.length > maxPendingMessages) {\n\t\t\tthis.replayMessages.shift();\n\t\t\tthis.callbacks.onWarning(\n\t\t\t\tnew WebSocketError(\n\t\t\t\t\t`WebSocket replay queue exceeded ${maxPendingMessages} entries; dropped oldest replay entry`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate isAuthFailure(code: number): boolean {\n\t\treturn AUTH_FAILURE_CLOSE_CODES.has(code);\n\t}\n\n\tprivate setState(state: ConnectionState): void {\n\t\tthis._state = state;\n\t}\n}\n",
|
|
23
23
|
"import { WebSocketTransport, buildWebSocketUrl } from \"./ws-transport.js\";\nimport { WebSocketError } from \"./errors.js\";\nimport type {\n\tConnectionState,\n\tStructWebSocketConfig,\n\tWebSocketEventMap,\n\tWsRoomId,\n\tWsFiltersOptionalRoom,\n\tWsFiltersRequiredRoom,\n\tWsSubscriptionMap,\n\tWsSubscribeResponseMap,\n} from \"./types/ws.js\";\n\nconst DEFAULT_BASE_URL = \"wss://api.struct.to\";\nconst PING_INTERVAL_MS = 30_000;\nconst DEFAULT_SUBSCRIBE_TIMEOUT_MS = 10_000;\n\ntype Listener<T> = (payload: T) => void;\n\ninterface PendingSubscribe {\n\tresolve: (data: unknown) => void;\n\treject: (err: Error) => void;\n\ttimer: ReturnType<typeof setTimeout> | null;\n}\n\nexport class StructWebSocket {\n\tprivate readonly transport: WebSocketTransport;\n\tprivate readonly listeners = new Map<string, Set<Listener<any>>>();\n\tprivate readonly subscriptions = new Map<WsRoomId, Record<string, unknown>>();\n\tprivate readonly pendingSubscribes = new Map<WsRoomId, PendingSubscribe>();\n\tprivate readonly subscribeTimeout: number;\n\tprivate pingTimer: ReturnType<typeof setInterval> | null = null;\n\tprivate pongTimer: ReturnType<typeof setTimeout> | null = null;\n\tprivate isEmittingListenerError = false;\n\n\tconstructor(config: StructWebSocketConfig) {\n\t\tthis.subscribeTimeout = config.subscribeTimeout ?? DEFAULT_SUBSCRIBE_TIMEOUT_MS;\n\t\tconst getUrl = () => buildWebSocketUrl(\"/ws\", {\n\t\t\tapiKey: config.apiKey,\n\t\t\tjwt: config.getJwt?.() ?? config.jwt,\n\t\t\tbaseUrl: config.baseUrl,\n\t\t}, DEFAULT_BASE_URL);\n\n\t\tthis.transport = new WebSocketTransport(\n\t\t\tgetUrl,\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\tonReconnectFailed: (error) => this.emit(\"reconnect_failed\", error),\n\t\t\t\tonAuthFailed: (error) => this.emit(\"auth_failed\", error),\n\t\t\t\tonWarning: (warning) => this.emit(\"warning\", warning),\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(): Promise<void> {\n\t\treturn this.transport.connect();\n\t}\n\n\tdisconnect(): void {\n\t\tthis.stopPing();\n\t\tfor (const [, pending] of this.pendingSubscribes) {\n\t\t\tthis.clearSubscribeTimer(pending);\n\t\t\tpending.reject(new WebSocketError(\"Disconnected\"));\n\t\t}\n\t\tthis.pendingSubscribes.clear();\n\t\tthis.subscriptions.clear();\n\t\tthis.transport.disconnect();\n\t}\n\n\ton<K extends keyof WebSocketEventMap>(event: K, listener: Listener<WebSocketEventMap[K]>): () => void {\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 () => { set.delete(listener); };\n\t}\n\n\toff<K extends keyof WebSocketEventMap>(event: K, listener: Listener<WebSocketEventMap[K]>): void {\n\t\tthis.listeners.get(event as string)?.delete(listener);\n\t}\n\n\tonce<K extends keyof WebSocketEventMap>(event: K, listener: Listener<WebSocketEventMap[K]>): () => void {\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\tremoveAllListeners(event?: keyof WebSocketEventMap): void {\n\t\tif (event) {\n\t\t\tthis.listeners.delete(event as string);\n\t\t} else {\n\t\t\tthis.listeners.clear();\n\t\t}\n\t}\n\n\tsubscribe<R extends WsFiltersOptionalRoom>(room: R, filters?: WsSubscriptionMap[R]): Promise<WsSubscribeResponseMap[R]>;\n\tsubscribe<R extends WsFiltersRequiredRoom>(room: R, filters: WsSubscriptionMap[R]): Promise<WsSubscribeResponseMap[R]>;\n\tsubscribe<R extends WsRoomId>(room: R, filters?: WsSubscriptionMap[R]): Promise<WsSubscribeResponseMap[R]> {\n\t\tconst resolvedFilters = (filters ?? {}) as Record<string, unknown>;\n\t\tconst isNewRoom = !this.subscriptions.has(room);\n\n\t\tconst existing = this.pendingSubscribes.get(room);\n\t\tif (existing) {\n\t\t\tthis.clearSubscribeTimer(existing);\n\t\t\texisting.reject(new WebSocketError(\"Superseded by new subscription\"));\n\t\t}\n\n\t\tthis.subscriptions.set(room, resolvedFilters);\n\t\tthis.rebuildReplay();\n\n\t\treturn new Promise<WsSubscribeResponseMap[R]>((resolve, reject) => {\n\t\t\tconst pending: PendingSubscribe = {\n\t\t\t\tresolve: resolve as (data: unknown) => void,\n\t\t\t\treject,\n\t\t\t\ttimer: null,\n\t\t\t};\n\t\t\tthis.pendingSubscribes.set(room, pending);\n\t\t\tif (this.sendSubscription(room, resolvedFilters, isNewRoom)) {\n\t\t\t\tthis.armSubscribeTimer(room, pending);\n\t\t\t}\n\t\t});\n\t}\n\n\tunsubscribe(room: WsRoomId): void {\n\t\tif (!this.subscriptions.has(room)) return;\n\n\t\tconst pending = this.pendingSubscribes.get(room);\n\t\tif (pending) {\n\t\t\tthis.clearSubscribeTimer(pending);\n\t\t\tpending.reject(new WebSocketError(\"Unsubscribed\"));\n\t\t\tthis.pendingSubscribes.delete(room);\n\t\t}\n\n\t\tthis.subscriptions.delete(room);\n\t\tthis.rebuildReplay();\n\t\tif (this.state === \"connected\") {\n\t\t\tthis.transport.sendNow({\n\t\t\t\ttype: \"room_message\",\n\t\t\t\tpayload: { room_id: room, message: { action: \"unsubscribe_all\" } },\n\t\t\t});\n\t\t\tthis.transport.sendNow({ type: \"leave_room\", payload: { room_id: room } });\n\t\t}\n\t}\n\n\tprivate rebuildReplay(): void {\n\t\tthis.transport.clearReplayMessages();\n\t\tfor (const [roomId, filters] of this.subscriptions) {\n\t\t\tthis.transport.addReplayMessages([\n\t\t\t\t{ type: \"join_room\", payload: { room_id: roomId } },\n\t\t\t\t{\n\t\t\t\t\ttype: \"room_message\",\n\t\t\t\t\tpayload: { room_id: roomId, message: { action: \"subscribe\", ...filters } },\n\t\t\t\t},\n\t\t\t]);\n\t\t}\n\t}\n\n\tprivate handleOpen(): void {\n\t\tthis.startPing();\n\t\tthis.restartPendingSubscribes();\n\t\tthis.emit(\"connected\", undefined as never);\n\t}\n\n\tprivate handleClose(code: number, reason: string): void {\n\t\tthis.stopPing();\n\t\tthis.pausePendingSubscribes();\n\t\tthis.emit(\"disconnected\", { code, reason });\n\t}\n\n\tprivate handleMessage(raw: unknown): void {\n\t\tconst msg = raw as { type?: string; room_id?: string; data?: unknown };\n\t\tif (!msg || typeof msg !== \"object\" || !msg.type) return;\n\t\tif (msg.type === \"pong\") {\n\t\t\tthis.clearPongTimer();\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isSubscribeResponseMessage(msg)) {\n\t\t\tconst pending = this.pendingSubscribes.get(msg.room_id as WsRoomId);\n\t\t\tif (pending) {\n\t\t\t\tthis.clearSubscribeTimer(pending);\n\t\t\t\tthis.pendingSubscribes.delete(msg.room_id as WsRoomId);\n\t\t\t\tconst subscribeError = this.getSubscribeError(msg.data);\n\t\t\t\tif (subscribeError) {\n\t\t\t\t\tconst error = new WebSocketError(subscribeError);\n\t\t\t\t\tpending.reject(error);\n\t\t\t\t\tthis.emit(\"error\", error);\n\t\t\t\t} else {\n\t\t\t\t\tpending.resolve(msg.data);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tthis.emit(msg.type as keyof WebSocketEventMap, msg.data as never);\n\t}\n\n\tprivate isSubscribeResponseMessage(msg: { type?: string; room_id?: string; data?: unknown }): msg is { type: string; room_id: string; data?: unknown } {\n\t\tif (!msg.type || !msg.room_id) return false;\n\t\treturn msg.type === \"subscribed\" || msg.type.endsWith(\"_subscribe_response\");\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 (error) {\n\t\t\t\tthis.handleListenerError(error);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate startPing(): void {\n\t\tthis.stopPing();\n\t\tthis.pingTimer = setInterval(() => {\n\t\t\tif (this.transport.sendNow({ type: \"ping\" })) {\n\t\t\t\tthis.armPongTimer();\n\t\t\t}\n\t\t}, PING_INTERVAL_MS);\n\t}\n\n\tprivate stopPing(): void {\n\t\tif (this.pingTimer !== null) {\n\t\t\tclearInterval(this.pingTimer);\n\t\t\tthis.pingTimer = null;\n\t\t}\n\t\tthis.clearPongTimer();\n\t}\n\n\tprivate sendSubscription(room: WsRoomId, filters: Record<string, unknown>, joinRoom: boolean): boolean {\n\t\tif (this.state !== \"connected\") return false;\n\t\tlet sent = true;\n\t\tif (joinRoom) {\n\t\t\tsent = this.transport.sendNow({ type: \"join_room\", payload: { room_id: room } }) && sent;\n\t\t}\n\t\tsent = this.transport.sendNow({\n\t\t\ttype: \"room_message\",\n\t\t\tpayload: { room_id: room, message: { action: \"subscribe\", ...filters } },\n\t\t}) && sent;\n\t\treturn sent;\n\t}\n\n\tprivate restartPendingSubscribes(): void {\n\t\tfor (const [room, pending] of this.pendingSubscribes) {\n\t\t\tif (pending.timer === null) {\n\t\t\t\tthis.armSubscribeTimer(room, pending);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate pausePendingSubscribes(): void {\n\t\tfor (const [, pending] of this.pendingSubscribes) {\n\t\t\tthis.clearSubscribeTimer(pending);\n\t\t}\n\t}\n\n\tprivate armSubscribeTimer(room: WsRoomId, pending: PendingSubscribe): void {\n\t\tthis.clearSubscribeTimer(pending);\n\t\tpending.timer = setTimeout(() => {\n\t\t\tpending.timer = null;\n\t\t\tthis.pendingSubscribes.delete(room);\n\t\t\tpending.reject(new WebSocketError(`Subscribe to ${room} timed out`));\n\t\t}, this.subscribeTimeout);\n\t}\n\n\tprivate clearSubscribeTimer(pending: PendingSubscribe): void {\n\t\tif (pending.timer !== null) {\n\t\t\tclearTimeout(pending.timer);\n\t\t\tpending.timer = null;\n\t\t}\n\t}\n\n\tprivate armPongTimer(): void {\n\t\tif (this.pongTimer !== null) return;\n\t\tthis.pongTimer = setTimeout(() => {\n\t\t\tthis.pongTimer = null;\n\t\t\tthis.transport.close(4000, \"pong timeout\");\n\t\t}, PING_INTERVAL_MS * 2);\n\t}\n\n\tprivate clearPongTimer(): void {\n\t\tif (this.pongTimer !== null) {\n\t\t\tclearTimeout(this.pongTimer);\n\t\t\tthis.pongTimer = null;\n\t\t}\n\t}\n\n\tprivate getSubscribeError(data: unknown): string | null {\n\t\tif (!data || typeof data !== \"object\") return null;\n\t\tconst error = (data as { error?: unknown }).error;\n\t\treturn typeof error === \"string\" && error.length > 0 ? error : null;\n\t}\n\n\tprivate handleListenerError(error: unknown): void {\n\t\tconst normalizedError = error instanceof Error\n\t\t\t? error\n\t\t\t: new WebSocketError(\"WebSocket listener threw\", { cause: error });\n\t\tif (!this.isEmittingListenerError && (this.listeners.get(\"error\")?.size ?? 0) > 0) {\n\t\t\tthis.isEmittingListenerError = true;\n\t\t\ttry {\n\t\t\t\tthis.emit(\"error\", normalizedError);\n\t\t\t\treturn;\n\t\t\t} finally {\n\t\t\t\tthis.isEmittingListenerError = false;\n\t\t\t}\n\t\t}\n\t\tconsole.error(normalizedError);\n\t}\n}\n",
|
|
24
24
|
"import { WebSocketTransport, buildWebSocketUrl } from \"./ws-transport.js\";\nimport { WebSocketError } from \"./errors.js\";\nimport type {\n\tConnectionState,\n\tStructWebSocketConfig,\n\tAlertsWebSocketEventMap,\n\tWsAlertSubscribedResponse,\n} from \"./types/ws.js\";\nimport type { WsAlertSubscribeMap, WsAlertEventName } from \"./types/ws-helpers.js\";\n\nconst DEFAULT_BASE_URL = \"wss://api.struct.to\";\nconst PING_INTERVAL_MS = 30_000;\nconst DEFAULT_SUBSCRIBE_TIMEOUT_MS = 10_000;\n\ntype Listener<T> = (payload: T) => void;\n\ninterface PendingSubscribe {\n\tresolve: (data: unknown) => void;\n\treject: (err: Error) => void;\n\ttimer: ReturnType<typeof setTimeout> | null;\n}\n\nexport class StructAlertsWebSocket {\n\tprivate readonly transport: WebSocketTransport;\n\tprivate readonly listeners = new Map<string, Set<Listener<any>>>();\n\tprivate readonly subscriptions = new Map<WsAlertEventName, Record<string, unknown>>();\n\tprivate readonly pendingSubscribes = new Map<WsAlertEventName, PendingSubscribe>();\n\tprivate readonly subscribeTimeout: number;\n\tprivate pingTimer: ReturnType<typeof setInterval> | null = null;\n\tprivate pongTimer: ReturnType<typeof setTimeout> | null = null;\n\tprivate isEmittingListenerError = false;\n\n\tconstructor(config: StructWebSocketConfig) {\n\t\tthis.subscribeTimeout = config.subscribeTimeout ?? DEFAULT_SUBSCRIBE_TIMEOUT_MS;\n\t\tconst getUrl = () => buildWebSocketUrl(\"/ws/alerts\", {\n\t\t\tapiKey: config.apiKey,\n\t\t\tjwt: config.getJwt?.() ?? config.jwt,\n\t\t\tbaseUrl: config.baseUrl,\n\t\t}, DEFAULT_BASE_URL);\n\n\t\tthis.transport = new WebSocketTransport(\n\t\t\tgetUrl,\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\tonReconnectFailed: (error) => this.emit(\"reconnect_failed\", error),\n\t\t\t\tonAuthFailed: (error) => this.emit(\"auth_failed\", error),\n\t\t\t\tonWarning: (warning) => this.emit(\"warning\", warning),\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(): Promise<void> {\n\t\treturn this.transport.connect();\n\t}\n\n\tdisconnect(): void {\n\t\tthis.stopPing();\n\t\tfor (const [, pending] of this.pendingSubscribes) {\n\t\t\tthis.clearSubscribeTimer(pending);\n\t\t\tpending.reject(new WebSocketError(\"Disconnected\"));\n\t\t}\n\t\tthis.pendingSubscribes.clear();\n\t\tthis.subscriptions.clear();\n\t\tthis.transport.disconnect();\n\t}\n\n\ton<K extends keyof AlertsWebSocketEventMap>(event: K, listener: Listener<AlertsWebSocketEventMap[K]>): () => void {\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 () => { set.delete(listener); };\n\t}\n\n\toff<K extends keyof AlertsWebSocketEventMap>(event: K, listener: Listener<AlertsWebSocketEventMap[K]>): void {\n\t\tthis.listeners.get(event as string)?.delete(listener);\n\t}\n\n\tonce<K extends keyof AlertsWebSocketEventMap>(event: K, listener: Listener<AlertsWebSocketEventMap[K]>): () => void {\n\t\tconst wrapper = (payload: AlertsWebSocketEventMap[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\tremoveAllListeners(event?: keyof AlertsWebSocketEventMap): void {\n\t\tif (event) {\n\t\t\tthis.listeners.delete(event as string);\n\t\t} else {\n\t\t\tthis.listeners.clear();\n\t\t}\n\t}\n\n\tsubscribe<E extends WsAlertEventName>(\n\t\tevent: E,\n\t\tfilters: Omit<WsAlertSubscribeMap[E], \"op\" | \"event\">,\n\t): Promise<WsAlertSubscribedResponse> {\n\t\tconst message = { op: \"subscribe\", event, ...filters } as Record<string, unknown>;\n\n\t\tconst existing = this.pendingSubscribes.get(event);\n\t\tif (existing) {\n\t\t\tthis.clearSubscribeTimer(existing);\n\t\t\texisting.reject(new WebSocketError(\"Superseded by new subscription\"));\n\t\t}\n\n\t\tthis.subscriptions.set(event, message);\n\t\tthis.rebuildReplay();\n\n\t\treturn new Promise<WsAlertSubscribedResponse>((resolve, reject) => {\n\t\t\tconst pending: PendingSubscribe = {\n\t\t\t\tresolve: resolve as (data: unknown) => void,\n\t\t\t\treject,\n\t\t\t\ttimer: null,\n\t\t\t};\n\t\t\tthis.pendingSubscribes.set(event, pending);\n\t\t\tif (this.sendSubscription(message)) {\n\t\t\t\tthis.armSubscribeTimer(event, pending);\n\t\t\t}\n\t\t});\n\t}\n\n\tunsubscribe(event: WsAlertEventName): void {\n\t\tconst sub = this.subscriptions.get(event);\n\t\tif (!sub) return;\n\n\t\tconst pending = this.pendingSubscribes.get(event);\n\t\tif (pending) {\n\t\t\tthis.clearSubscribeTimer(pending);\n\t\t\tpending.reject(new WebSocketError(\"Unsubscribed\"));\n\t\t\tthis.pendingSubscribes.delete(event);\n\t\t}\n\n\t\tthis.subscriptions.delete(event);\n\t\tthis.rebuildReplay();\n\t\tif (this.state === \"connected\") {\n\t\t\tthis.transport.sendNow({ ...sub, op: \"unsubscribe\" });\n\t\t}\n\t}\n\n\tprivate rebuildReplay(): void {\n\t\tthis.transport.clearReplayMessages();\n\t\tfor (const [, message] of this.subscriptions) {\n\t\t\tthis.transport.addReplayMessage(message);\n\t\t}\n\t}\n\n\tprivate handleOpen(): void {\n\t\tthis.startPing();\n\t\tthis.restartPendingSubscribes();\n\t\tthis.emit(\"connected\", undefined as never);\n\t}\n\n\tprivate handleClose(code: number, reason: string): void {\n\t\tthis.stopPing();\n\t\tthis.pausePendingSubscribes();\n\t\tthis.emit(\"disconnected\", { code, reason });\n\t}\n\n\tprivate handleMessage(raw: unknown): void {\n\t\tconst msg = raw as { op?: string; type?: string; event?: string; error?: string; subscription_id?: string; timestamp?: number; data?: unknown };\n\t\tif (!msg || typeof msg !== \"object\") return;\n\t\tif (msg.op === \"pong\" || msg.type === \"pong\") {\n\t\t\tthis.clearPongTimer();\n\t\t\treturn;\n\t\t}\n\n\t\tif (msg.error) {\n\t\t\tconst error = new WebSocketError(msg.error);\n\t\t\tif (msg.event) {\n\t\t\t\tconst pending = this.pendingSubscribes.get(msg.event as WsAlertEventName);\n\t\t\t\tif (pending) {\n\t\t\t\t\tthis.clearSubscribeTimer(pending);\n\t\t\t\t\tthis.pendingSubscribes.delete(msg.event as WsAlertEventName);\n\t\t\t\t\tpending.reject(error);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.emit(\"error\", error);\n\t\t\treturn;\n\t\t}\n\n\t\tif (msg.op === \"subscribed\" && msg.event) {\n\t\t\tconst pending = this.pendingSubscribes.get(msg.event as WsAlertEventName);\n\t\t\tif (pending) {\n\t\t\t\tthis.clearSubscribeTimer(pending);\n\t\t\t\tthis.pendingSubscribes.delete(msg.event as WsAlertEventName);\n\t\t\t\tpending.resolve({ op: \"subscribed\", event: msg.event, subscription_id: msg.subscription_id });\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (msg.op === \"unsubscribed\") return;\n\n\t\tif (msg.event && msg.data !== undefined) {\n\t\t\tthis.emit(msg.event as keyof AlertsWebSocketEventMap, {\n\t\t\t\tevent: msg.event,\n\t\t\t\ttimestamp: msg.timestamp,\n\t\t\t\tdata: msg.data,\n\t\t\t} as never);\n\t\t}\n\t}\n\n\tprivate emit<K extends keyof AlertsWebSocketEventMap>(event: K, payload: AlertsWebSocketEventMap[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<AlertsWebSocketEventMap[K]>)(payload);\n\t\t\t} catch (error) {\n\t\t\t\tthis.handleListenerError(error);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate startPing(): void {\n\t\tthis.stopPing();\n\t\tthis.pingTimer = setInterval(() => {\n\t\t\tif (this.transport.sendNow({ type: \"ping\" })) {\n\t\t\t\tthis.armPongTimer();\n\t\t\t}\n\t\t}, PING_INTERVAL_MS);\n\t}\n\n\tprivate stopPing(): void {\n\t\tif (this.pingTimer !== null) {\n\t\t\tclearInterval(this.pingTimer);\n\t\t\tthis.pingTimer = null;\n\t\t}\n\t\tthis.clearPongTimer();\n\t}\n\n\tprivate sendSubscription(message: Record<string, unknown>): boolean {\n\t\tif (this.state !== \"connected\") return false;\n\t\treturn this.transport.sendNow(message);\n\t}\n\n\tprivate restartPendingSubscribes(): void {\n\t\tfor (const [event, pending] of this.pendingSubscribes) {\n\t\t\tif (pending.timer === null) {\n\t\t\t\tthis.armSubscribeTimer(event, pending);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate pausePendingSubscribes(): void {\n\t\tfor (const [, pending] of this.pendingSubscribes) {\n\t\t\tthis.clearSubscribeTimer(pending);\n\t\t}\n\t}\n\n\tprivate armSubscribeTimer(event: WsAlertEventName, pending: PendingSubscribe): void {\n\t\tthis.clearSubscribeTimer(pending);\n\t\tpending.timer = setTimeout(() => {\n\t\t\tpending.timer = null;\n\t\t\tthis.pendingSubscribes.delete(event);\n\t\t\tpending.reject(new WebSocketError(`Subscribe to alert ${event} timed out`));\n\t\t}, this.subscribeTimeout);\n\t}\n\n\tprivate clearSubscribeTimer(pending: PendingSubscribe): void {\n\t\tif (pending.timer !== null) {\n\t\t\tclearTimeout(pending.timer);\n\t\t\tpending.timer = null;\n\t\t}\n\t}\n\n\tprivate armPongTimer(): void {\n\t\tif (this.pongTimer !== null) return;\n\t\tthis.pongTimer = setTimeout(() => {\n\t\t\tthis.pongTimer = null;\n\t\t\tthis.transport.close(4000, \"pong timeout\");\n\t\t}, PING_INTERVAL_MS * 2);\n\t}\n\n\tprivate clearPongTimer(): void {\n\t\tif (this.pongTimer !== null) {\n\t\t\tclearTimeout(this.pongTimer);\n\t\t\tthis.pongTimer = null;\n\t\t}\n\t}\n\n\tprivate handleListenerError(error: unknown): void {\n\t\tconst normalizedError = error instanceof Error\n\t\t\t? error\n\t\t\t: new WebSocketError(\"WebSocket listener threw\", { cause: error });\n\t\tif (!this.isEmittingListenerError && (this.listeners.get(\"error\")?.size ?? 0) > 0) {\n\t\t\tthis.isEmittingListenerError = true;\n\t\t\ttry {\n\t\t\t\tthis.emit(\"error\", normalizedError);\n\t\t\t\treturn;\n\t\t\t} finally {\n\t\t\t\tthis.isEmittingListenerError = false;\n\t\t\t}\n\t\t}\n\t\tconsole.error(normalizedError);\n\t}\n}\n",
|
|
25
25
|
"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 paginationKey: string | number | undefined;\n\n\twhile (true) {\n\t\tconst response = await fetcher({ ...params, limit: pageSize, pagination_key: paginationKey } as P);\n\n\t\tfor (const item of response.data) {\n\t\t\tyield item;\n\t\t}\n\n\t\tif (!response.pagination?.has_more || response.pagination.pagination_key == null) {\n\t\t\tbreak;\n\t\t}\n\n\t\tpaginationKey = response.pagination.pagination_key;\n\t}\n}\n"
|
|
26
26
|
],
|
|
27
|
-
"mappings": "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",
|
|
28
|
-
"debugId": "
|
|
27
|
+
"mappings": "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",
|
|
28
|
+
"debugId": "15221C3677A3A42D64756E2164756E21",
|
|
29
29
|
"names": []
|
|
30
30
|
}
|