@structbuild/sdk 0.5.5 → 0.5.6-staging.1
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/client.d.ts +2 -1
- package/dist/generated/polymarket.d.ts +6412 -3816
- package/dist/generated/webhooks.d.ts +743 -1086
- package/dist/generated/ws-alerts.d.ts +741 -1090
- package/dist/generated/ws.d.ts +114 -821
- package/dist/index.cjs +45 -1
- package/dist/index.cjs.map +6 -5
- package/dist/index.js +45 -1
- package/dist/index.js.map +6 -5
- package/dist/namespaces/index.d.ts +1 -0
- package/dist/namespaces/smartMoney.d.ts +13 -0
- package/dist/namespaces/trader.d.ts +5 -1
- package/dist/types/index.d.ts +83 -2
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -498,6 +498,21 @@ class TraderNamespace extends Namespace {
|
|
|
498
498
|
const { address, ...query } = params;
|
|
499
499
|
return this.get(venue, `/trader/pnl/${encodeURIComponent(address)}/candles`, { params: query });
|
|
500
500
|
}
|
|
501
|
+
async getTraderPnlV3Candles(params, venue) {
|
|
502
|
+
const { address, ...query } = params;
|
|
503
|
+
return this.get(venue, `/trader/pnl_v3/${encodeURIComponent(address)}/candles`, { params: query });
|
|
504
|
+
}
|
|
505
|
+
async getTraderPnlV3Changes(params, venue) {
|
|
506
|
+
return this.get(venue, `/trader/pnl_v3/${encodeURIComponent(params.address)}/changes`);
|
|
507
|
+
}
|
|
508
|
+
async getTraderPnlV3Periods(params, venue) {
|
|
509
|
+
const { address, ...query } = params;
|
|
510
|
+
return this.get(venue, `/trader/pnl_v3/${encodeURIComponent(address)}/periods`, { params: query });
|
|
511
|
+
}
|
|
512
|
+
async getTraderPnlV3Risk(params, venue) {
|
|
513
|
+
const { address, ...query } = params;
|
|
514
|
+
return this.get(venue, `/trader/pnl_v3/${encodeURIComponent(address)}/risk`, { params: query });
|
|
515
|
+
}
|
|
501
516
|
async getTraderOutcomePnl(params, venue) {
|
|
502
517
|
const { address, ...query } = params;
|
|
503
518
|
return this.get(venue, `/trader/pnl/${encodeURIComponent(address)}/positions`, { params: query });
|
|
@@ -675,6 +690,33 @@ class AnalyticsNamespace extends Namespace {
|
|
|
675
690
|
return this.get(venue, `/trader/${encodeURIComponent(address)}/analytics/timeseries`, { params: query });
|
|
676
691
|
}
|
|
677
692
|
}
|
|
693
|
+
// src/namespaces/smartMoney.ts
|
|
694
|
+
class SmartMoneyNamespace extends Namespace {
|
|
695
|
+
async getLeaderboard(params, venue) {
|
|
696
|
+
return this.get(venue, "/smart-money", { params: { ...params } });
|
|
697
|
+
}
|
|
698
|
+
async getMarketSummary(params, venue) {
|
|
699
|
+
return this.get(venue, `/smart-money/markets/${encodeURIComponent(params.conditionId)}`);
|
|
700
|
+
}
|
|
701
|
+
async getReasonCodes(venue) {
|
|
702
|
+
return this.get(venue, "/smart-money/reason-codes");
|
|
703
|
+
}
|
|
704
|
+
async getTraderSummary(params, venue) {
|
|
705
|
+
return this.get(venue, `/smart-money/traders/${encodeURIComponent(params.address)}`);
|
|
706
|
+
}
|
|
707
|
+
async getTraderDaily(params, venue) {
|
|
708
|
+
const { address, ...query } = params;
|
|
709
|
+
return this.get(venue, `/smart-money/traders/${encodeURIComponent(address)}/daily`, { params: query });
|
|
710
|
+
}
|
|
711
|
+
async getTraderFumbled(params, venue) {
|
|
712
|
+
const { address, ...query } = params;
|
|
713
|
+
return this.get(venue, `/smart-money/traders/${encodeURIComponent(address)}/fumbled`, { params: query });
|
|
714
|
+
}
|
|
715
|
+
async getTraderReentries(params, venue) {
|
|
716
|
+
const { address, ...query } = params;
|
|
717
|
+
return this.get(venue, `/smart-money/traders/${encodeURIComponent(address)}/reentries`, { params: query });
|
|
718
|
+
}
|
|
719
|
+
}
|
|
678
720
|
// src/namespaces/webhooks.ts
|
|
679
721
|
class WebhooksNamespace extends PlatformNamespace {
|
|
680
722
|
async list(params) {
|
|
@@ -719,6 +761,7 @@ class StructClient {
|
|
|
719
761
|
search;
|
|
720
762
|
analytics;
|
|
721
763
|
orderBook;
|
|
764
|
+
smartMoney;
|
|
722
765
|
webhooks;
|
|
723
766
|
constructor(config) {
|
|
724
767
|
const authHeaders = {
|
|
@@ -751,6 +794,7 @@ class StructClient {
|
|
|
751
794
|
this.search = new SearchNamespace(http, venue);
|
|
752
795
|
this.analytics = new AnalyticsNamespace(http, venue);
|
|
753
796
|
this.orderBook = new OrderBookNamespace(http, venue);
|
|
797
|
+
this.smartMoney = new SmartMoneyNamespace(http, venue);
|
|
754
798
|
this.webhooks = new WebhooksNamespace(http);
|
|
755
799
|
}
|
|
756
800
|
}
|
|
@@ -1525,5 +1569,5 @@ async function* paginate(fetcher, params, pageSize = DEFAULT_PAGE_SIZE) {
|
|
|
1525
1569
|
}
|
|
1526
1570
|
}
|
|
1527
1571
|
|
|
1528
|
-
//# debugId=
|
|
1572
|
+
//# debugId=CD18387AF39CC2AE64756E2164756E21
|
|
1529
1573
|
//# sourceMappingURL=index.js.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/errors.ts", "../src/http.ts", "../src/namespaces/base.ts", "../src/namespaces/assets.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/builders.ts", "../src/namespaces/search.ts", "../src/namespaces/orderBook.ts", "../src/namespaces/analytics.ts", "../src/namespaces/webhooks.ts", "../src/client.ts", "../src/ws-transport.ts", "../src/ws.ts", "../src/ws-alerts.ts", "../src/paginate.ts"],
|
|
3
|
+
"sources": ["../src/errors.ts", "../src/http.ts", "../src/namespaces/base.ts", "../src/namespaces/assets.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/builders.ts", "../src/namespaces/search.ts", "../src/namespaces/orderBook.ts", "../src/namespaces/analytics.ts", "../src/namespaces/smartMoney.ts", "../src/namespaces/webhooks.ts", "../src/client.ts", "../src/ws-transport.ts", "../src/ws.ts", "../src/ws-alerts.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
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",
|
|
@@ -11,20 +11,21 @@
|
|
|
11
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, GetEventTopTradersParams, TopTraderEventEntry } 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\tasync getEventTopTraders(params: GetEventTopTradersParams, venue?: Venue): Promise<HttpResponse<TopTraderEventEntry[]>> {\n\t\treturn this.get<TopTraderEventEntry[]>(venue, \"/events/top-traders\", { params: { ...params } });\n\t}\n}\n",
|
|
12
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\tTopTraderMarketEntry,\n\tTopTraderPositionEntry,\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<TopTraderMarketEntry[]>> {\n\t\treturn this.get<TopTraderMarketEntry[]>(venue, \"/market/top-traders\", { params: { ...params } });\n\t}\n\n\tasync getPositionTopTraders(params: GetPositionTopTradersParams, venue?: Venue): Promise<HttpResponse<TopTraderPositionEntry[]>> {\n\t\treturn this.get<TopTraderPositionEntry[]>(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\tGlobalPnlTrader,\n\tTraderPnlSummary,\n\tTraderMarketPnlEntry,\n\tTraderEventPnlEntry,\n\tPnlCandleEntry,\n\tGetTraderTradesParams,\n\tGetTraderProfileParams,\n\tGetTraderProfilesBatchParams,\n\tGetTraderVolumeChartParams,\n\tGetTraderPnlParams,\n\tGetTraderPnlBreakdownParams,\n\tGetTraderPnlCalendarParams,\n\tGetTraderPnlCandlesParams,\n\tGetGlobalPnlParams,\n\tGetTraderPositionPnlParams,\n\tTraderOutcomePnlEntry,\n\tGetLeaderboardParams,\n\tLeaderboardEntry,\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<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 getTraderMarketPnl(params: GetTraderPnlBreakdownParams, venue?: Venue): Promise<HttpResponse<TraderMarketPnlEntry[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<TraderMarketPnlEntry[]>(venue, `/trader/pnl/${encodeURIComponent(address)}/markets`, { params: query });\n\t}\n\n\tasync getTraderEventPnl(params: GetTraderPnlBreakdownParams, venue?: Venue): Promise<HttpResponse<TraderEventPnlEntry[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<TraderEventPnlEntry[]>(venue, `/trader/pnl/${encodeURIComponent(address)}/events`, { 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<PnlCandleEntry[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlCandleEntry[]>(venue, `/trader/pnl/${encodeURIComponent(address)}/candles`, { params: query });\n\t}\n\n\tasync getTraderOutcomePnl(params: GetTraderPositionPnlParams, venue?: Venue): Promise<HttpResponse<TraderOutcomePnlEntry[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<TraderOutcomePnlEntry[]>(venue, `/trader/pnl/${encodeURIComponent(address)}/positions`, { params: query });\n\t}\n\n\tasync getGlobalPnl(params?: GetGlobalPnlParams, venue?: Venue): Promise<HttpResponse<GlobalPnlTrader[]>> {\n\t\treturn this.get<GlobalPnlTrader[]>(venue, \"/trader/global_pnl\", { params: { ...params } });\n\t}\n\n\tasync getLeaderboard(params?: GetLeaderboardParams, venue?: Venue): Promise<HttpResponse<LeaderboardEntry[]>> {\n\t\treturn this.get<LeaderboardEntry[]>(venue, \"/trader/leaderboard\", { 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 {\n\tTrade,\n\tUserProfile,\n\tTraderVolumeDataPoint,\n\tGlobalPnlTrader,\n\tTraderPnlSummary,\n\tTraderMarketPnlEntry,\n\tTraderEventPnlEntry,\n\tPnlCandleEntry,\n\tGetTraderTradesParams,\n\tGetTraderProfileParams,\n\tGetTraderProfilesBatchParams,\n\tGetTraderVolumeChartParams,\n\tGetTraderPnlParams,\n\tGetTraderPnlBreakdownParams,\n\tGetTraderPnlCalendarParams,\n\tGetTraderPnlCandlesParams,\n\tGetTraderPnlV3CandlesParams,\n\tGetTraderPnlV3ChangesParams,\n\tGetTraderPnlV3PeriodsParams,\n\tGetTraderPnlV3RiskParams,\n\tPnlV3CandleEntry,\n\tPnlV3ChangesResponse,\n\tPnlV3PeriodsResponse,\n\tPnlV3RiskResponse,\n\tGetGlobalPnlParams,\n\tGetTraderPositionPnlParams,\n\tTraderOutcomePnlEntry,\n\tGetLeaderboardParams,\n\tLeaderboardEntry,\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<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 getTraderMarketPnl(params: GetTraderPnlBreakdownParams, venue?: Venue): Promise<HttpResponse<TraderMarketPnlEntry[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<TraderMarketPnlEntry[]>(venue, `/trader/pnl/${encodeURIComponent(address)}/markets`, { params: query });\n\t}\n\n\tasync getTraderEventPnl(params: GetTraderPnlBreakdownParams, venue?: Venue): Promise<HttpResponse<TraderEventPnlEntry[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<TraderEventPnlEntry[]>(venue, `/trader/pnl/${encodeURIComponent(address)}/events`, { 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<PnlCandleEntry[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlCandleEntry[]>(venue, `/trader/pnl/${encodeURIComponent(address)}/candles`, { params: query });\n\t}\n\n\tasync getTraderPnlV3Candles(params: GetTraderPnlV3CandlesParams, venue?: Venue): Promise<HttpResponse<PnlV3CandleEntry[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlV3CandleEntry[]>(venue, `/trader/pnl_v3/${encodeURIComponent(address)}/candles`, { params: query });\n\t}\n\n\tasync getTraderPnlV3Changes(params: GetTraderPnlV3ChangesParams, venue?: Venue): Promise<HttpResponse<PnlV3ChangesResponse>> {\n\t\treturn this.get<PnlV3ChangesResponse>(venue, `/trader/pnl_v3/${encodeURIComponent(params.address)}/changes`);\n\t}\n\n\tasync getTraderPnlV3Periods(params: GetTraderPnlV3PeriodsParams, venue?: Venue): Promise<HttpResponse<PnlV3PeriodsResponse>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlV3PeriodsResponse>(venue, `/trader/pnl_v3/${encodeURIComponent(address)}/periods`, { params: query });\n\t}\n\n\tasync getTraderPnlV3Risk(params: GetTraderPnlV3RiskParams, venue?: Venue): Promise<HttpResponse<PnlV3RiskResponse>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlV3RiskResponse>(venue, `/trader/pnl_v3/${encodeURIComponent(address)}/risk`, { params: query });\n\t}\n\n\tasync getTraderOutcomePnl(params: GetTraderPositionPnlParams, venue?: Venue): Promise<HttpResponse<TraderOutcomePnlEntry[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<TraderOutcomePnlEntry[]>(venue, `/trader/pnl/${encodeURIComponent(address)}/positions`, { params: query });\n\t}\n\n\tasync getGlobalPnl(params?: GetGlobalPnlParams, venue?: Venue): Promise<HttpResponse<GlobalPnlTrader[]>> {\n\t\treturn this.get<GlobalPnlTrader[]>(venue, \"/trader/global_pnl\", { params: { ...params } });\n\t}\n\n\tasync getLeaderboard(params?: GetLeaderboardParams, venue?: Venue): Promise<HttpResponse<LeaderboardEntry[]>> {\n\t\treturn this.get<LeaderboardEntry[]>(venue, \"/trader/leaderboard\", { 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
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\tTagBuilderRow,\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<TagBuilderRow[]>> {\n\t\tconst { tag, ...query } = params;\n\t\treturn this.get<TagBuilderRow[]>(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
19
|
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tGlobalCountsResponse,\n\tMetricPctChange,\n\tTimeBucketRow,\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<GlobalCountsResponse>> {\n\t\treturn this.get<GlobalCountsResponse>(venue, \"/analytics/counts\");\n\t}\n\n\tasync getDeltas(params?: GetGlobalAnalyticsDeltasParams, venue?: Venue): Promise<HttpResponse<TimeBucketRow[]>> {\n\t\treturn this.get<TimeBucketRow[]>(venue, \"/analytics/deltas\", { params: { ...params } });\n\t}\n\n\tasync getChanges(params: GetGlobalAnalyticsChangesParams, venue?: Venue): Promise<HttpResponse<MetricPctChange>> {\n\t\treturn this.get<MetricPctChange>(venue, \"/analytics/changes\", { params: { ...params } });\n\t}\n\n\tasync getTimeseries(params?: GetGlobalAnalyticsTimeseriesParams, venue?: Venue): Promise<HttpResponse<TimeBucketRow[]>> {\n\t\treturn this.get<TimeBucketRow[]>(venue, \"/analytics/timeseries\", { params: { ...params } });\n\t}\n\n\tasync getEventDeltas(params: GetEventAnalyticsDeltasParams, venue?: Venue): Promise<HttpResponse<TimeBucketRow[]>> {\n\t\tconst { event_slug, ...query } = params;\n\t\treturn this.get<TimeBucketRow[]>(venue, `/events/${encodeURIComponent(event_slug)}/analytics/deltas`, { params: query });\n\t}\n\n\tasync getEventChanges(params: GetEventAnalyticsChangesParams, venue?: Venue): Promise<HttpResponse<MetricPctChange>> {\n\t\tconst { event_slug, ...query } = params;\n\t\treturn this.get<MetricPctChange>(venue, `/events/${encodeURIComponent(event_slug)}/analytics/changes`, { params: query });\n\t}\n\n\tasync getEventTimeseries(params: GetEventAnalyticsTimeseriesParams, venue?: Venue): Promise<HttpResponse<TimeBucketRow[]>> {\n\t\tconst { event_slug, ...query } = params;\n\t\treturn this.get<TimeBucketRow[]>(venue, `/events/${encodeURIComponent(event_slug)}/analytics/timeseries`, { params: query });\n\t}\n\n\tasync getMarketDeltas(params: GetMarketAnalyticsDeltasParams, venue?: Venue): Promise<HttpResponse<TimeBucketRow[]>> {\n\t\tconst { condition_id, ...query } = params;\n\t\treturn this.get<TimeBucketRow[]>(venue, `/market/${encodeURIComponent(condition_id)}/analytics/deltas`, { params: query });\n\t}\n\n\tasync getMarketChanges(params: GetMarketAnalyticsChangesParams, venue?: Venue): Promise<HttpResponse<MetricPctChange>> {\n\t\tconst { condition_id, ...query } = params;\n\t\treturn this.get<MetricPctChange>(venue, `/market/${encodeURIComponent(condition_id)}/analytics/changes`, { params: query });\n\t}\n\n\tasync getMarketTimeseries(params: GetMarketAnalyticsTimeseriesParams, venue?: Venue): Promise<HttpResponse<TimeBucketRow[]>> {\n\t\tconst { condition_id, ...query } = params;\n\t\treturn this.get<TimeBucketRow[]>(venue, `/market/${encodeURIComponent(condition_id)}/analytics/timeseries`, { params: query });\n\t}\n\n\tasync getTagDeltas(params: GetTagAnalyticsDeltasParams, venue?: Venue): Promise<HttpResponse<TimeBucketRow[]>> {\n\t\tconst { tag, ...query } = params;\n\t\treturn this.get<TimeBucketRow[]>(venue, `/tags/${encodeURIComponent(tag)}/analytics/deltas`, { params: query });\n\t}\n\n\tasync getTagChanges(params: GetTagAnalyticsChangesParams, venue?: Venue): Promise<HttpResponse<MetricPctChange>> {\n\t\tconst { tag, ...query } = params;\n\t\treturn this.get<MetricPctChange>(venue, `/tags/${encodeURIComponent(tag)}/analytics/changes`, { params: query });\n\t}\n\n\tasync getTagTimeseries(params: GetTagAnalyticsTimeseriesParams, venue?: Venue): Promise<HttpResponse<TimeBucketRow[]>> {\n\t\tconst { tag, ...query } = params;\n\t\treturn this.get<TimeBucketRow[]>(venue, `/tags/${encodeURIComponent(tag)}/analytics/timeseries`, { params: query });\n\t}\n\n\tasync getTraderDeltas(params: GetTraderAnalyticsDeltasParams, venue?: Venue): Promise<HttpResponse<TimeBucketRow[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<TimeBucketRow[]>(venue, `/trader/${encodeURIComponent(address)}/analytics/deltas`, { params: query });\n\t}\n\n\tasync getTraderChanges(params: GetTraderAnalyticsChangesParams, venue?: Venue): Promise<HttpResponse<MetricPctChange>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<MetricPctChange>(venue, `/trader/${encodeURIComponent(address)}/analytics/changes`, { params: query });\n\t}\n\n\tasync getTraderTimeseries(params: GetTraderAnalyticsTimeseriesParams, venue?: Venue): Promise<HttpResponse<TimeBucketRow[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<TimeBucketRow[]>(venue, `/trader/${encodeURIComponent(address)}/analytics/timeseries`, { params: query });\n\t}\n}\n",
|
|
20
|
+
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tSmartMoneyTraderLifetimeRow,\n\tSmartMoneyMarketLifetimeRow,\n\tSmartMoneyReasonCodesResponse,\n\tSmartMoneyDailyRow,\n\tSmartMoneyFumbledEventRow,\n\tSmartMoneyReentryEventRow,\n\tGetSmartMoneyLeaderboardParams,\n\tGetSmartMoneyMarketSummaryParams,\n\tGetSmartMoneyTraderSummaryParams,\n\tGetSmartMoneyTraderDailyParams,\n\tGetSmartMoneyTraderFumbledParams,\n\tGetSmartMoneyTraderReentriesParams,\n} from \"../types/index.js\";\n\nexport class SmartMoneyNamespace extends Namespace {\n\tasync getLeaderboard(params?: GetSmartMoneyLeaderboardParams, venue?: Venue): Promise<HttpResponse<SmartMoneyTraderLifetimeRow[]>> {\n\t\treturn this.get<SmartMoneyTraderLifetimeRow[]>(venue, \"/smart-money\", { params: { ...params } });\n\t}\n\n\tasync getMarketSummary(params: GetSmartMoneyMarketSummaryParams, venue?: Venue): Promise<HttpResponse<SmartMoneyMarketLifetimeRow | null>> {\n\t\treturn this.get<SmartMoneyMarketLifetimeRow | null>(venue, `/smart-money/markets/${encodeURIComponent(params.conditionId)}`);\n\t}\n\n\tasync getReasonCodes(venue?: Venue): Promise<HttpResponse<SmartMoneyReasonCodesResponse>> {\n\t\treturn this.get<SmartMoneyReasonCodesResponse>(venue, \"/smart-money/reason-codes\");\n\t}\n\n\tasync getTraderSummary(params: GetSmartMoneyTraderSummaryParams, venue?: Venue): Promise<HttpResponse<SmartMoneyTraderLifetimeRow | null>> {\n\t\treturn this.get<SmartMoneyTraderLifetimeRow | null>(venue, `/smart-money/traders/${encodeURIComponent(params.address)}`);\n\t}\n\n\tasync getTraderDaily(params: GetSmartMoneyTraderDailyParams, venue?: Venue): Promise<HttpResponse<SmartMoneyDailyRow[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<SmartMoneyDailyRow[]>(venue, `/smart-money/traders/${encodeURIComponent(address)}/daily`, { params: query });\n\t}\n\n\tasync getTraderFumbled(params: GetSmartMoneyTraderFumbledParams, venue?: Venue): Promise<HttpResponse<SmartMoneyFumbledEventRow[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<SmartMoneyFumbledEventRow[]>(venue, `/smart-money/traders/${encodeURIComponent(address)}/fumbled`, { params: query });\n\t}\n\n\tasync getTraderReentries(params: GetSmartMoneyTraderReentriesParams, venue?: Venue): Promise<HttpResponse<SmartMoneyReentryEventRow[]>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<SmartMoneyReentryEventRow[]>(venue, `/smart-money/traders/${encodeURIComponent(address)}/reentries`, { params: query });\n\t}\n}\n",
|
|
20
21
|
"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} 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",
|
|
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
|
+
"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\tSmartMoneyNamespace,\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 smartMoney: SmartMoneyNamespace;\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.smartMoney = new SmartMoneyNamespace(http, venue);\n\t\tthis.webhooks = new WebhooksNamespace(http);\n\t}\n}\n",
|
|
22
23
|
"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
24
|
"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
25
|
"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
26
|
"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
27
|
],
|
|
27
|
-
"mappings": "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",
|
|
28
|
-
"debugId": "
|
|
28
|
+
"mappings": "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",
|
|
29
|
+
"debugId": "CD18387AF39CC2AE64756E2164756E21",
|
|
29
30
|
"names": []
|
|
30
31
|
}
|
package/dist/index.js
CHANGED
|
@@ -453,6 +453,21 @@ class TraderNamespace extends Namespace {
|
|
|
453
453
|
const { address, ...query } = params;
|
|
454
454
|
return this.get(venue, `/trader/pnl/${encodeURIComponent(address)}/candles`, { params: query });
|
|
455
455
|
}
|
|
456
|
+
async getTraderPnlV3Candles(params, venue) {
|
|
457
|
+
const { address, ...query } = params;
|
|
458
|
+
return this.get(venue, `/trader/pnl_v3/${encodeURIComponent(address)}/candles`, { params: query });
|
|
459
|
+
}
|
|
460
|
+
async getTraderPnlV3Changes(params, venue) {
|
|
461
|
+
return this.get(venue, `/trader/pnl_v3/${encodeURIComponent(params.address)}/changes`);
|
|
462
|
+
}
|
|
463
|
+
async getTraderPnlV3Periods(params, venue) {
|
|
464
|
+
const { address, ...query } = params;
|
|
465
|
+
return this.get(venue, `/trader/pnl_v3/${encodeURIComponent(address)}/periods`, { params: query });
|
|
466
|
+
}
|
|
467
|
+
async getTraderPnlV3Risk(params, venue) {
|
|
468
|
+
const { address, ...query } = params;
|
|
469
|
+
return this.get(venue, `/trader/pnl_v3/${encodeURIComponent(address)}/risk`, { params: query });
|
|
470
|
+
}
|
|
456
471
|
async getTraderOutcomePnl(params, venue) {
|
|
457
472
|
const { address, ...query } = params;
|
|
458
473
|
return this.get(venue, `/trader/pnl/${encodeURIComponent(address)}/positions`, { params: query });
|
|
@@ -630,6 +645,33 @@ class AnalyticsNamespace extends Namespace {
|
|
|
630
645
|
return this.get(venue, `/trader/${encodeURIComponent(address)}/analytics/timeseries`, { params: query });
|
|
631
646
|
}
|
|
632
647
|
}
|
|
648
|
+
// src/namespaces/smartMoney.ts
|
|
649
|
+
class SmartMoneyNamespace extends Namespace {
|
|
650
|
+
async getLeaderboard(params, venue) {
|
|
651
|
+
return this.get(venue, "/smart-money", { params: { ...params } });
|
|
652
|
+
}
|
|
653
|
+
async getMarketSummary(params, venue) {
|
|
654
|
+
return this.get(venue, `/smart-money/markets/${encodeURIComponent(params.conditionId)}`);
|
|
655
|
+
}
|
|
656
|
+
async getReasonCodes(venue) {
|
|
657
|
+
return this.get(venue, "/smart-money/reason-codes");
|
|
658
|
+
}
|
|
659
|
+
async getTraderSummary(params, venue) {
|
|
660
|
+
return this.get(venue, `/smart-money/traders/${encodeURIComponent(params.address)}`);
|
|
661
|
+
}
|
|
662
|
+
async getTraderDaily(params, venue) {
|
|
663
|
+
const { address, ...query } = params;
|
|
664
|
+
return this.get(venue, `/smart-money/traders/${encodeURIComponent(address)}/daily`, { params: query });
|
|
665
|
+
}
|
|
666
|
+
async getTraderFumbled(params, venue) {
|
|
667
|
+
const { address, ...query } = params;
|
|
668
|
+
return this.get(venue, `/smart-money/traders/${encodeURIComponent(address)}/fumbled`, { params: query });
|
|
669
|
+
}
|
|
670
|
+
async getTraderReentries(params, venue) {
|
|
671
|
+
const { address, ...query } = params;
|
|
672
|
+
return this.get(venue, `/smart-money/traders/${encodeURIComponent(address)}/reentries`, { params: query });
|
|
673
|
+
}
|
|
674
|
+
}
|
|
633
675
|
// src/namespaces/webhooks.ts
|
|
634
676
|
class WebhooksNamespace extends PlatformNamespace {
|
|
635
677
|
async list(params) {
|
|
@@ -674,6 +716,7 @@ class StructClient {
|
|
|
674
716
|
search;
|
|
675
717
|
analytics;
|
|
676
718
|
orderBook;
|
|
719
|
+
smartMoney;
|
|
677
720
|
webhooks;
|
|
678
721
|
constructor(config) {
|
|
679
722
|
const authHeaders = {
|
|
@@ -706,6 +749,7 @@ class StructClient {
|
|
|
706
749
|
this.search = new SearchNamespace(http, venue);
|
|
707
750
|
this.analytics = new AnalyticsNamespace(http, venue);
|
|
708
751
|
this.orderBook = new OrderBookNamespace(http, venue);
|
|
752
|
+
this.smartMoney = new SmartMoneyNamespace(http, venue);
|
|
709
753
|
this.webhooks = new WebhooksNamespace(http);
|
|
710
754
|
}
|
|
711
755
|
}
|
|
@@ -1493,5 +1537,5 @@ export {
|
|
|
1493
1537
|
HttpClient
|
|
1494
1538
|
};
|
|
1495
1539
|
|
|
1496
|
-
//# debugId=
|
|
1540
|
+
//# debugId=AE7DEF283AAF153164756E2164756E21
|
|
1497
1541
|
//# sourceMappingURL=index.js.map
|