@structbuild/sdk 0.1.15 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +2 -1
- package/dist/generated/polymarket.d.ts +88 -16
- package/dist/generated/webhooks.d.ts +811 -64
- package/dist/index.cjs +18 -1
- package/dist/index.cjs.map +7 -6
- package/dist/index.js +18 -1
- package/dist/index.js.map +7 -6
- package/dist/namespaces/assets.d.ts +7 -0
- package/dist/namespaces/index.d.ts +1 -0
- package/dist/namespaces/markets.d.ts +2 -1
- package/dist/namespaces/webhooks.d.ts +3 -1
- package/dist/types/index.d.ts +14 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -327,6 +327,12 @@ class PlatformNamespace {
|
|
|
327
327
|
return this.http.delete(path, options);
|
|
328
328
|
}
|
|
329
329
|
}
|
|
330
|
+
// src/namespaces/assets.ts
|
|
331
|
+
class AssetsNamespace extends Namespace {
|
|
332
|
+
async getAssetHistory(params, venue) {
|
|
333
|
+
return this.get(venue, "/asset-history", { params: { ...params } });
|
|
334
|
+
}
|
|
335
|
+
}
|
|
330
336
|
// src/namespaces/holders.ts
|
|
331
337
|
class HoldersNamespace extends Namespace {
|
|
332
338
|
async getMarketHolders(params, venue) {
|
|
@@ -397,6 +403,9 @@ class MarketsNamespace extends Namespace {
|
|
|
397
403
|
async getMarketVolumeChart(params, venue) {
|
|
398
404
|
return this.get(venue, "/market/volume-chart", { params: { ...params } });
|
|
399
405
|
}
|
|
406
|
+
async getPriceJumps(params, venue) {
|
|
407
|
+
return this.get(venue, "/market/price-jumps", { params: { ...params } });
|
|
408
|
+
}
|
|
400
409
|
}
|
|
401
410
|
// src/namespaces/series.ts
|
|
402
411
|
class SeriesNamespace extends Namespace {
|
|
@@ -488,11 +497,18 @@ class WebhooksNamespace extends PlatformNamespace {
|
|
|
488
497
|
async test(params) {
|
|
489
498
|
return this.http.post(`/webhooks/${encodeURIComponent(params.webhookId)}/test`);
|
|
490
499
|
}
|
|
500
|
+
async rotateSecret(params) {
|
|
501
|
+
return this.http.post(`/webhooks/${encodeURIComponent(params.webhookId)}/rotate-secret`);
|
|
502
|
+
}
|
|
503
|
+
async listEvents() {
|
|
504
|
+
return this.http.get("/webhooks/events");
|
|
505
|
+
}
|
|
491
506
|
}
|
|
492
507
|
// src/client.ts
|
|
493
508
|
var DEFAULT_BASE_URL = "https://api.struct.to/v1";
|
|
494
509
|
|
|
495
510
|
class StructClient {
|
|
511
|
+
assets;
|
|
496
512
|
holders;
|
|
497
513
|
tags;
|
|
498
514
|
events;
|
|
@@ -515,6 +531,7 @@ class StructClient {
|
|
|
515
531
|
onResponse: config.onResponse
|
|
516
532
|
});
|
|
517
533
|
const venue = config.venue ?? "polymarket";
|
|
534
|
+
this.assets = new AssetsNamespace(http, venue);
|
|
518
535
|
this.holders = new HoldersNamespace(http, venue);
|
|
519
536
|
this.tags = new TagsNamespace(http, venue);
|
|
520
537
|
this.events = new EventsNamespace(http, venue);
|
|
@@ -927,5 +944,5 @@ async function* paginate(fetcher, params, pageSize = DEFAULT_PAGE_SIZE) {
|
|
|
927
944
|
}
|
|
928
945
|
}
|
|
929
946
|
|
|
930
|
-
//# debugId=
|
|
947
|
+
//# debugId=E26AFA56AFACF1B964756E2164756E21
|
|
931
948
|
//# sourceMappingURL=index.js.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/errors.ts", "../src/http.ts", "../src/namespaces/base.ts", "../src/namespaces/holders.ts", "../src/namespaces/tags.ts", "../src/namespaces/events.ts", "../src/namespaces/markets.ts", "../src/namespaces/series.ts", "../src/namespaces/trader.ts", "../src/namespaces/bonds.ts", "../src/namespaces/search.ts", "../src/namespaces/webhooks.ts", "../src/client.ts", "../src/ws-transport.ts", "../src/ws.ts", "../src/paginate.ts"],
|
|
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/search.ts", "../src/namespaces/webhooks.ts", "../src/client.ts", "../src/ws-transport.ts", "../src/ws.ts", "../src/paginate.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"export class StructError extends Error {\n\tconstructor(message: string, options?: ErrorOptions) {\n\t\tsuper(message, options);\n\t\tthis.name = \"StructError\";\n\t}\n}\n\nexport class HttpError extends StructError {\n\treadonly status: number;\n\treadonly statusText: string;\n\treadonly body: unknown;\n\treadonly responseHeaders: Headers | undefined;\n\n\tconstructor(status: number, statusText: string, body: unknown, responseHeaders?: Headers) {\n\t\tsuper(`HTTP ${status}: ${statusText}`);\n\t\tthis.name = \"HttpError\";\n\t\tthis.status = status;\n\t\tthis.statusText = statusText;\n\t\tthis.body = body;\n\t\tthis.responseHeaders = responseHeaders;\n\t}\n}\n\nexport class NetworkError extends StructError {\n\tconstructor(message: string, options?: ErrorOptions) {\n\t\tsuper(message, options);\n\t\tthis.name = \"NetworkError\";\n\t}\n}\n\nexport class TimeoutError extends StructError {\n\tconstructor(timeout: number) {\n\t\tsuper(`Request timed out after ${timeout}ms`);\n\t\tthis.name = \"TimeoutError\";\n\t}\n}\n\nexport class WebSocketError extends StructError {\n\tconstructor(message: string, options?: ErrorOptions) {\n\t\tsuper(message, options);\n\t\tthis.name = \"WebSocketError\";\n\t}\n}\n\nexport class WebSocketClosedError extends WebSocketError {\n\treadonly code: number;\n\treadonly reason: string;\n\n\tconstructor(code: number, reason: string) {\n\t\tsuper(`WebSocket closed: ${code} ${reason}`);\n\t\tthis.name = \"WebSocketClosedError\";\n\t\tthis.code = code;\n\t\tthis.reason = reason;\n\t}\n}\n",
|
|
6
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\tlet body: unknown;\n\t\t\t\ttry {\n\t\t\t\t\tbody = await response.json();\n\t\t\t\t} catch {\n\t\t\t\t\tbody = await response.text();\n\t\t\t\t}\n\t\t\t\tthrow new HttpError(response.status, response.statusText, body, response.headers);\n\t\t\t}\n\n\t\t\treturn await this.parseApiResponse<T>(response, method);\n\t\t} catch (error) {\n\t\t\tif (error instanceof HttpError) throw error;\n\t\t\tif (error instanceof SyntaxError || error instanceof TypeError) {\n\t\t\t\tthrow new StructError(\"Failed to parse HTTP response body\", { cause: error });\n\t\t\t}\n\n\t\t\tif (error instanceof DOMException && error.name === \"AbortError\") {\n\t\t\t\tif (options?.signal?.aborted) throw error;\n\t\t\t\tthrow new TimeoutError(this.timeout);\n\t\t\t}\n\n\t\t\tthrow new NetworkError(\"Network request failed\", { cause: error });\n\t\t} finally {\n\t\t\tclearTimeout(timeoutId);\n\t\t}\n\t}\n\n\tprivate shouldRetry(error: unknown): boolean {\n\t\tif (error instanceof HttpError) {\n\t\t\treturn RETRYABLE_STATUSES.has(error.status);\n\t\t}\n\t\treturn error instanceof NetworkError || error instanceof TimeoutError;\n\t}\n\n\tprivate async parseApiResponse<T>(response: Response, method: string): Promise<HttpResponse<T>> {\n\t\tif (method === \"HEAD\" || response.status === 204 || response.status === 205) {\n\t\t\treturn { data: undefined as T, message: null, success: true };\n\t\t}\n\n\t\tconst text = await response.text();\n\t\tif (text.length === 0) {\n\t\t\treturn { data: undefined as T, message: null, success: true };\n\t\t}\n\n\t\tconst contentType = response.headers.get(\"content-type\")?.toLowerCase() ?? \"\";\n\t\tif (!contentType.includes(\"json\")) {\n\t\t\treturn { data: text as T, message: null, success: true };\n\t\t}\n\n\t\tconst body = JSON.parse(text);\n\n\t\tif (body && typeof body === \"object\" && \"success\" in body && \"data\" in body) {\n\t\t\treturn {\n\t\t\t\tdata: body.data as T,\n\t\t\t\tmessage: body.message ?? null,\n\t\t\t\tsuccess: body.success,\n\t\t\t\tinfo: body.info as ApiResponseInfo | undefined,\n\t\t\t\tpagination: body.pagination as PaginationInfo | undefined,\n\t\t\t};\n\t\t}\n\n\t\treturn { data: body as T, message: null, success: true };\n\t}\n\n\tprivate parseRetryAfter(error: HttpError): number | undefined {\n\t\tconst header = error.responseHeaders?.get(\"retry-after\");\n\t\tif (!header) return undefined;\n\n\t\tconst seconds = Number(header);\n\t\tif (!Number.isNaN(seconds) && seconds > 0) return seconds * 1_000;\n\n\t\tconst date = Date.parse(header);\n\t\tif (!Number.isNaN(date)) {\n\t\t\tconst delay = date - Date.now();\n\t\t\treturn delay > 0 ? delay : undefined;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tprivate sleep(ms: number, signal?: AbortSignal): Promise<void> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (signal?.aborted) {\n\t\t\t\treject(signal.reason);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst timer = setTimeout(resolve, ms);\n\t\t\tsignal?.addEventListener(\"abort\", () => {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\treject(signal.reason);\n\t\t\t}, { once: true });\n\t\t});\n\t}\n\n\tprivate buildUrl(path: string, params?: Record<string, string | number | boolean | undefined>): string {\n\t\tconst url = new URL(this.baseUrl + path);\n\n\t\tif (params) {\n\t\t\tfor (const [key, value] of Object.entries(params)) {\n\t\t\t\tif (value !== undefined) {\n\t\t\t\t\turl.searchParams.set(key, String(value));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn url.toString();\n\t}\n}\n",
|
|
7
7
|
"import type { HttpClient } from \"../http.js\";\nimport type { HttpResponse, RequestOptions } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\n\nexport class Namespace {\n\tprotected readonly http: HttpClient;\n\tprotected readonly defaultVenue: Venue;\n\n\tconstructor(http: HttpClient, defaultVenue: Venue) {\n\t\tthis.http = http;\n\t\tthis.defaultVenue = defaultVenue;\n\t}\n\n\tprotected get<T>(venue: Venue | undefined, path: string, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.get<T>(`/${venue ?? this.defaultVenue}${path}`, options);\n\t}\n\n\tprotected post<T>(venue: Venue | undefined, path: string, body?: unknown, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.post<T>(`/${venue ?? this.defaultVenue}${path}`, body, options);\n\t}\n\n\tprotected put<T>(venue: Venue | undefined, path: string, body?: unknown, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.put<T>(`/${venue ?? this.defaultVenue}${path}`, body, options);\n\t}\n\n\tprotected delete<T>(venue: Venue | undefined, path: string, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.delete<T>(`/${venue ?? this.defaultVenue}${path}`, options);\n\t}\n}\n\nexport class PlatformNamespace {\n\tprotected readonly http: HttpClient;\n\n\tconstructor(http: HttpClient) {\n\t\tthis.http = http;\n\t}\n\n\tprotected get<T>(path: string, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.get<T>(path, options);\n\t}\n\n\tprotected post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.post<T>(path, body, options);\n\t}\n\n\tprotected put<T>(path: string, body?: unknown, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.put<T>(path, body, options);\n\t}\n\n\tprotected delete<T>(path: string, options?: RequestOptions): Promise<HttpResponse<T>> {\n\t\treturn this.http.delete<T>(path, options);\n\t}\n}\n",
|
|
8
|
+
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tAssetPriceHistoryRow,\n\tGetAssetHistoryParams,\n} from \"../types/index.js\";\n\nexport class AssetsNamespace extends Namespace {\n\tasync getAssetHistory(params: GetAssetHistoryParams, venue?: Venue): Promise<HttpResponse<AssetPriceHistoryRow[]>> {\n\t\treturn this.get<AssetPriceHistoryRow[]>(venue, \"/asset-history\", { params: { ...params } });\n\t}\n}\n",
|
|
8
9
|
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tMarketHoldersResponse,\n\tPositionHoldersResponse,\n\tHolderHistoryCandle,\n\tGetMarketHoldersParams,\n\tGetPositionHoldersParams,\n\tGetMarketHoldersHistoryParams,\n\tGetPositionHoldersHistoryParams,\n} from \"../types/index.js\";\n\nexport class HoldersNamespace extends Namespace {\n\tasync getMarketHolders(params: GetMarketHoldersParams, venue?: Venue): Promise<HttpResponse<MarketHoldersResponse>> {\n\t\treturn this.get<MarketHoldersResponse>(venue, \"/holders/markets\", { params: { ...params } });\n\t}\n\nasync getPositionHolders(params: GetPositionHoldersParams, venue?: Venue): Promise<HttpResponse<PositionHoldersResponse>> {\n\t\tconst { positionId, ...query } = params;\n\t\treturn this.get<PositionHoldersResponse>(venue, `/holders/positions/${encodeURIComponent(positionId)}`, { params: query });\n\t}\n\n\tasync getMarketHoldersHistory(params: GetMarketHoldersHistoryParams, venue?: Venue): Promise<HttpResponse<HolderHistoryCandle[]>> {\n\t\treturn this.get<HolderHistoryCandle[]>(venue, \"/holders/markets/history\", { params: { ...params } });\n\t}\n\nasync getPositionHoldersHistory(params: GetPositionHoldersHistoryParams, venue?: Venue): Promise<HttpResponse<HolderHistoryCandle[]>> {\n\t\tconst { positionId, ...query } = params;\n\t\treturn this.get<HolderHistoryCandle[]>(venue, `/holders/positions/${encodeURIComponent(positionId)}/history`, { params: query });\n\t}\n}\n",
|
|
9
10
|
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tTag,\n\tGetTagsParams,\n\tGetTagParams,\n} from \"../types/index.js\";\n\nexport class TagsNamespace extends Namespace {\n\tasync getTags(params?: GetTagsParams, venue?: Venue): Promise<HttpResponse<Tag[]>> {\n\t\treturn this.get<Tag[]>(venue, \"/tags\", { params: { ...params } });\n\t}\n\n\tasync getTag(params: GetTagParams, venue?: Venue): Promise<HttpResponse<Tag>> {\n\t\treturn this.get<Tag>(venue, `/tags/${encodeURIComponent(params.identifier)}`);\n\t}\n}\n",
|
|
10
11
|
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type { Event, EventMarketChartOutcome, EventMetricsResponse, GetEventsParams, GetEventChartParams, GetEventMetricsParams, GetEventOutcomesParams } from \"../types/index.js\";\n\nexport class EventsNamespace extends Namespace {\n\tasync getEvents(params?: GetEventsParams, venue?: Venue): Promise<HttpResponse<Event[]>> {\n\t\treturn this.get<Event[]>(venue, \"/events\", { params: { ...params } });\n\t}\n\n\tasync 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",
|
|
11
|
-
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tMarketMetadata,\n\tConditionMetricsResponse,\n\tPositionMetricsResponse,\n\tPositionVolumeChartResponse,\n\tPositionChartOutcome,\n\tMarketVolumeChartResponse,\n\tTrade,\n\tCandlestickResponse,\n\tGetMarketsParams,\n\tGetMarketMetricsParams,\n\tGetMarketChartParams,\n\tGetTradesParams,\n\tGetCandlestickParams,\n\tGetPositionCandlestickParams,\n\tGetPositionMetricsParams,\n\tGetPositionVolumeChartParams,\n\tGetMarketVolumeChartParams,\n} from \"../types/index.js\";\n\nexport class MarketsNamespace extends Namespace {\n\tasync getMarkets(params?: GetMarketsParams, venue?: Venue): Promise<HttpResponse<MarketMetadata[]>> {\n\t\treturn this.get<MarketMetadata[]>(venue, \"/market\", { params: { ...params } });\n\t}\n\n\tasync 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<PositionVolumeChartResponse>> {\n\t\treturn this.get<PositionVolumeChartResponse>(venue, \"/market/position/volume-chart\", { params: { ...params } });\n\t}\n\n\tasync getMarketVolumeChart(params: GetMarketVolumeChartParams, venue?: Venue): Promise<HttpResponse<MarketVolumeChartResponse>> {\n\t\treturn this.get<MarketVolumeChartResponse>(venue, \"/market/volume-chart\", { params: { ...params } });\n\t}\n}\n",
|
|
12
|
+
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type {\n\tMarketMetadata,\n\tConditionMetricsResponse,\n\tPositionMetricsResponse,\n\tPositionVolumeChartResponse,\n\tPositionChartOutcome,\n\tMarketVolumeChartResponse,\n\tTrade,\n\tCandlestickResponse,\n\tGetMarketsParams,\n\tGetMarketMetricsParams,\n\tGetMarketChartParams,\n\tGetTradesParams,\n\tGetCandlestickParams,\n\tGetPositionCandlestickParams,\n\tGetPositionMetricsParams,\n\tGetPositionVolumeChartParams,\n\tGetMarketVolumeChartParams,\n\tGetPriceJumpsParams,\n\tPriceJump,\n} from \"../types/index.js\";\n\nexport class MarketsNamespace extends Namespace {\n\tasync getMarkets(params?: GetMarketsParams, venue?: Venue): Promise<HttpResponse<MarketMetadata[]>> {\n\t\treturn this.get<MarketMetadata[]>(venue, \"/market\", { params: { ...params } });\n\t}\n\n\tasync 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<PositionVolumeChartResponse>> {\n\t\treturn this.get<PositionVolumeChartResponse>(venue, \"/market/position/volume-chart\", { params: { ...params } });\n\t}\n\n\tasync getMarketVolumeChart(params: GetMarketVolumeChartParams, venue?: Venue): Promise<HttpResponse<MarketVolumeChartResponse>> {\n\t\treturn this.get<MarketVolumeChartResponse>(venue, \"/market/volume-chart\", { params: { ...params } });\n\t}\n\n\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",
|
|
12
13
|
"import { Namespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type { Venue } from \"../types/common.js\";\nimport type { Series, SeriesDetail, Event, GetSeriesListParams, GetSeriesDetailParams, GetSeriesEventsParams, GetSeriesOutcomesParams } from \"../types/index.js\";\n\nexport class SeriesNamespace extends Namespace {\n\tasync getSeriesList(params?: GetSeriesListParams, venue?: Venue): Promise<HttpResponse<Series[]>> {\n\t\treturn this.get<Series[]>(venue, \"/series\", { params: { ...params } });\n\t}\n\n\tasync getSeriesDetail(params: GetSeriesDetailParams, venue?: Venue): Promise<HttpResponse<SeriesDetail>> {\n\t\tconst { identifier, ...query } = params;\n\t\treturn this.get<SeriesDetail>(venue, `/series/${encodeURIComponent(identifier)}`, { params: query });\n\t}\n\n\tasync getSeriesEvents(params: GetSeriesEventsParams, venue?: Venue): Promise<HttpResponse<Event[]>> {\n\t\tconst { identifier, ...query } = params;\n\t\treturn this.get<Event[]>(venue, `/series/${encodeURIComponent(identifier)}/events`, { params: query });\n\t}\n\n\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",
|
|
13
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\tTraderVolumeChartResponse,\n\tGlobalPnlTrader,\n\tTraderMarketPnlEntry,\n\tTraderEventPnlEntry,\n\tPnlListResponse,\n\tPnlCandlesResponse,\n\tGetTraderTradesParams,\n\tGetTraderProfileParams,\n\tGetTraderProfilesBatchParams,\n\tGetTraderVolumeChartParams,\n\tGetTraderPnlParams,\n\tGetTraderPnlBreakdownParams,\n\tGetTraderPnlCandlesParams,\n\tGetGlobalPnlParams,\n\tGetTraderPositionPnlParams,\n\tTraderOutcomePnlEntry,\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<TraderVolumeChartResponse>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<TraderVolumeChartResponse>(venue, `/trader/volume-chart/${encodeURIComponent(address)}`, { params: query });\n\t}\n\n\tasync getTraderPnl(params: GetTraderPnlParams, venue?: Venue): Promise<HttpResponse<GlobalPnlTrader>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<GlobalPnlTrader>(venue, `/trader/pnl/${encodeURIComponent(address)}`, { params: query });\n\t}\n\n\tasync getTraderMarketPnl(params: GetTraderPnlBreakdownParams, venue?: Venue): Promise<HttpResponse<PnlListResponse<TraderMarketPnlEntry>>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlListResponse<TraderMarketPnlEntry>>(venue, `/trader/pnl/${encodeURIComponent(address)}/markets`, { params: query });\n\t}\n\n\tasync getTraderEventPnl(params: GetTraderPnlBreakdownParams, venue?: Venue): Promise<HttpResponse<PnlListResponse<TraderEventPnlEntry>>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlListResponse<TraderEventPnlEntry>>(venue, `/trader/pnl/${encodeURIComponent(address)}/events`, { params: query });\n\t}\n\n\tasync getTraderPnlCandles(params: GetTraderPnlCandlesParams, venue?: Venue): Promise<HttpResponse<PnlCandlesResponse>> {\n\t\tconst { address, ...query } = params;\n\t\treturn this.get<PnlCandlesResponse>(venue, `/trader/pnl/${encodeURIComponent(address)}/candles`, { params: query });\n\t}\n\n\tasync 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",
|
|
14
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",
|
|
15
16
|
"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",
|
|
16
|
-
"import { PlatformNamespace } from \"./base.js\";\nimport type { HttpResponse } from \"../types/http.js\";\nimport type {\n\tWebhookResponse,\n\tWebhookListResponseBody,\n\tWebhookTestResponseBody,\n\tListWebhooksParams,\n\tGetWebhookParams,\n\tCreateWebhookParams,\n\tUpdateWebhookParams,\n\tDeleteWebhookParams,\n\tTestWebhookParams,\n} from \"../types/index.js\";\n\nexport class WebhooksNamespace extends PlatformNamespace {\n\tasync list(params?: ListWebhooksParams): Promise<HttpResponse<WebhookListResponseBody>> {\n\t\treturn this.http.get<WebhookListResponseBody>(\"/webhooks\", { params: { ...params } });\n\t}\n\n\tasync create(body: CreateWebhookParams): Promise<HttpResponse<WebhookResponse>> {\n\t\treturn this.http.post<WebhookResponse>(\"/webhooks\", body);\n\t}\n\n\tasync getWebhook(params: GetWebhookParams): Promise<HttpResponse<WebhookResponse>> {\n\t\treturn this.http.get<WebhookResponse>(`/webhooks/${encodeURIComponent(params.webhookId)}`);\n\t}\n\n\tasync update(params: UpdateWebhookParams): Promise<HttpResponse<WebhookResponse>> {\n\t\tconst { webhookId, ...body } = params;\n\t\treturn this.http.put<WebhookResponse>(`/webhooks/${encodeURIComponent(webhookId)}`, body);\n\t}\n\n\tasync deleteWebhook(params: DeleteWebhookParams): Promise<HttpResponse<void>> {\n\t\treturn this.http.delete<void>(`/webhooks/${encodeURIComponent(params.webhookId)}`);\n\t}\n\n\tasync test(params: TestWebhookParams): Promise<HttpResponse<WebhookTestResponseBody>> {\n\t\treturn this.http.post<WebhookTestResponseBody>(`/webhooks/${encodeURIComponent(params.webhookId)}/test`);\n\t}\n}\n",
|
|
17
|
-
"import { HttpClient } from \"./http.js\";\nimport type { Venue } from \"./types/common.js\";\nimport type { RetryConfig, RequestHookInfo, ResponseHookInfo } from \"./types/index.js\";\nimport {\n\tHoldersNamespace,\n\tTagsNamespace,\n\tEventsNamespace,\n\tMarketsNamespace,\n\tSeriesNamespace,\n\tTraderNamespace,\n\tBondsNamespace,\n\tSearchNamespace,\n\tWebhooksNamespace,\n} from \"./namespaces/index.js\";\n\nconst DEFAULT_BASE_URL = \"https://api.struct.to/v1\";\n\nexport interface StructClientConfig {\n\tapiKey: string;\n\tbaseUrl?: string;\n\tvenue?: Venue;\n\theaders?: Record<string, string>;\n\ttimeout?: number;\n\tretry?: RetryConfig;\n\tonRequest?: (info: RequestHookInfo) => void | Promise<void>;\n\tonResponse?: (info: ResponseHookInfo) => void | Promise<void>;\n}\n\nexport class StructClient {\n\treadonly holders: HoldersNamespace;\n\treadonly tags: TagsNamespace;\n\treadonly events: EventsNamespace;\n\treadonly markets: MarketsNamespace;\n\treadonly series: SeriesNamespace;\n\treadonly trader: TraderNamespace;\n\treadonly bonds: BondsNamespace;\n\treadonly search: SearchNamespace;\n\treadonly webhooks: WebhooksNamespace;\n\n\tconstructor(config: StructClientConfig) {\n\t\tconst http = new HttpClient({\n\t\t\tbaseUrl: config.baseUrl ?? DEFAULT_BASE_URL,\n\t\t\tdefaultHeaders: {\n\t\t\t\t\"X-API-Key\": config.apiKey,\n\t\t\t\t...config.headers,\n\t\t\t},\n\t\t\ttimeout: config.timeout,\n\t\t\tretry: config.retry,\n\t\t\tonRequest: config.onRequest,\n\t\t\tonResponse: config.onResponse,\n\t\t});\n\n\t\tconst venue = config.venue ?? \"polymarket\";\n\t\tthis.holders = new HoldersNamespace(http, venue);\n\t\tthis.tags = new TagsNamespace(http, venue);\n\t\tthis.events = new EventsNamespace(http, venue);\n\t\tthis.markets = new MarketsNamespace(http, venue);\n\t\tthis.series = new SeriesNamespace(http, venue);\n\t\tthis.trader = new TraderNamespace(http, venue);\n\t\tthis.bonds = new BondsNamespace(http, venue);\n\t\tthis.search = new SearchNamespace(http, venue);\n\t\tthis.webhooks = new WebhooksNamespace(http);\n\t}\n}\n",
|
|
17
|
+
"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\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<void>> {\n\t\treturn this.http.delete<void>(`/webhooks/${encodeURIComponent(params.webhookId)}`);\n\t}\n\n\tasync test(params: TestWebhookParams): Promise<HttpResponse<WebhookTestResponseBody>> {\n\t\treturn this.http.post<WebhookTestResponseBody>(`/webhooks/${encodeURIComponent(params.webhookId)}/test`);\n\t}\n\n\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",
|
|
18
|
+
"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\tSearchNamespace,\n\tWebhooksNamespace,\n} from \"./namespaces/index.js\";\n\nconst DEFAULT_BASE_URL = \"https://api.struct.to/v1\";\n\nexport interface StructClientConfig {\n\tapiKey: string;\n\tbaseUrl?: string;\n\tvenue?: Venue;\n\theaders?: Record<string, string>;\n\ttimeout?: number;\n\tretry?: RetryConfig;\n\tonRequest?: (info: RequestHookInfo) => void | Promise<void>;\n\tonResponse?: (info: ResponseHookInfo) => void | Promise<void>;\n}\n\nexport class StructClient {\n\treadonly 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 search: SearchNamespace;\n\treadonly webhooks: WebhooksNamespace;\n\n\tconstructor(config: StructClientConfig) {\n\t\tconst http = new HttpClient({\n\t\t\tbaseUrl: config.baseUrl ?? DEFAULT_BASE_URL,\n\t\t\tdefaultHeaders: {\n\t\t\t\t\"X-API-Key\": config.apiKey,\n\t\t\t\t...config.headers,\n\t\t\t},\n\t\t\ttimeout: config.timeout,\n\t\t\tretry: config.retry,\n\t\t\tonRequest: config.onRequest,\n\t\t\tonResponse: config.onResponse,\n\t\t});\n\n\t\tconst venue = config.venue ?? \"polymarket\";\n\t\tthis.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.search = new SearchNamespace(http, venue);\n\t\tthis.webhooks = new WebhooksNamespace(http);\n\t}\n}\n",
|
|
18
19
|
"import { WebSocketError, WebSocketClosedError } from \"./errors.js\";\nimport type { ConnectionState, WebSocketMessage } from \"./types/ws.js\";\nimport type { RetryConfig } from \"./types/http.js\";\n\nconst DEFAULT_INITIAL_DELAY_MS = 1_000;\nconst DEFAULT_MAX_DELAY_MS = 30_000;\n\nexport interface WebSocketTransportCallbacks {\n\tonOpen: () => void;\n\tonClose: (code: number, reason: string) => void;\n\tonError: (error: Error) => void;\n\tonMessage: (data: unknown) => void;\n\tonReconnecting: (attempt: number) => void;\n}\n\nexport class WebSocketTransport {\n\tprivate ws: WebSocket | null = null;\n\tprivate _state: ConnectionState = \"disconnected\";\n\tprivate reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n\tprivate reconnectAttempt = 0;\n\tprivate intentionalClose = false;\n\tprivate readonly pendingMessages: WebSocketMessage[] = [];\n\tprivate readonly replayMessages: WebSocketMessage[] = [];\n\tprivate readonly url: string;\n\tprivate readonly retry: RetryConfig;\n\tprivate readonly callbacks: WebSocketTransportCallbacks;\n\n\tconstructor(url: string, retry: RetryConfig, callbacks: WebSocketTransportCallbacks) {\n\t\tthis.url = url;\n\t\tthis.retry = retry;\n\t\tthis.callbacks = callbacks;\n\t}\n\n\tget state(): ConnectionState {\n\t\treturn this._state;\n\t}\n\n\tconnect(): void {\n\t\tif (this._state === \"connected\" || this._state === \"connecting\" || this._state === \"reconnecting\") {\n\t\t\treturn;\n\t\t}\n\t\tif (this.ws && (this.ws.readyState === WebSocket.OPEN || this.ws.readyState === WebSocket.CONNECTING)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.intentionalClose = false;\n\t\tthis.clearReconnectTimer();\n\t\tthis.setState(\"connecting\");\n\t\tthis.createSocket();\n\t}\n\n\tdisconnect(): void {\n\t\tthis.intentionalClose = true;\n\t\tthis.clearReconnectTimer();\n\t\tthis.pendingMessages.length = 0;\n\t\tthis.replayMessages.length = 0;\n\t\tif (this.ws) {\n\t\t\tthis.ws.close(1000, \"client disconnect\");\n\t\t\tthis.ws = null;\n\t\t}\n\t\tthis.setState(\"disconnected\");\n\t}\n\n\tsend(message: WebSocketMessage): void {\n\t\tif (this._state === \"connected\" && this.ws?.readyState === WebSocket.OPEN) {\n\t\t\tthis.ws.send(JSON.stringify(message));\n\t\t} else {\n\t\t\tthis.pendingMessages.push(message);\n\t\t}\n\t}\n\n\taddReplayMessage(message: WebSocketMessage): void {\n\t\tthis.replayMessages.push(message);\n\t}\n\n\tremoveReplayMessages(predicate: (msg: WebSocketMessage) => boolean): void {\n\t\tfor (let i = this.replayMessages.length - 1; i >= 0; i--) {\n\t\t\tif (predicate(this.replayMessages[i]!)) {\n\t\t\t\tthis.replayMessages.splice(i, 1);\n\t\t\t}\n\t\t}\n\t}\n\n\tclearReplayMessages(): void {\n\t\tthis.replayMessages.length = 0;\n\t}\n\n\tprivate createSocket(): void {\n\t\ttry {\n\t\t\tthis.ws = new WebSocket(this.url);\n\t\t} catch (err) {\n\t\t\tthis.callbacks.onError(\n\t\t\t\tnew WebSocketError(\"Failed to create WebSocket\", { cause: err }),\n\t\t\t);\n\t\t\tthis.scheduleReconnect();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.ws.onopen = () => {\n\t\t\tthis._state = \"connected\";\n\t\t\tthis.reconnectAttempt = 0;\n\t\t\tthis.replaySubscriptions();\n\t\t\tthis.flushPendingMessages();\n\t\t\tthis.callbacks.onOpen();\n\t\t};\n\n\t\tthis.ws.onclose = (event: CloseEvent) => {\n\t\t\tthis.ws = null;\n\t\t\tif (this.intentionalClose) {\n\t\t\t\tthis.setState(\"disconnected\");\n\t\t\t\tthis.callbacks.onClose(event.code, event.reason);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.callbacks.onClose(event.code, event.reason);\n\t\t\tthis.scheduleReconnect();\n\t\t};\n\n\t\tthis.ws.onerror = () => {\n\t\t\tthis.callbacks.onError(new WebSocketError(\"WebSocket connection error\"));\n\t\t};\n\n\t\tthis.ws.onmessage = (event: MessageEvent) => {\n\t\t\ttry {\n\t\t\t\tconst data: unknown = JSON.parse(String(event.data));\n\t\t\t\tthis.callbacks.onMessage(data);\n\t\t\t} catch {\n\t\t\t\tthis.callbacks.onError(new WebSocketError(\"Failed to parse WebSocket message\"));\n\t\t\t}\n\t\t};\n\t}\n\n\tprivate replaySubscriptions(): void {\n\t\tfor (const msg of this.replayMessages) {\n\t\t\tif (this.ws?.readyState === WebSocket.OPEN) {\n\t\t\t\tthis.ws.send(JSON.stringify(msg));\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate flushPendingMessages(): void {\n\t\twhile (this.pendingMessages.length > 0) {\n\t\t\tconst msg = this.pendingMessages.shift()!;\n\t\t\tif (this.ws?.readyState === WebSocket.OPEN) {\n\t\t\t\tthis.ws.send(JSON.stringify(msg));\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate scheduleReconnect(): void {\n\t\tconst maxRetries = this.retry.maxRetries ?? Infinity;\n\t\tif (this.reconnectAttempt >= maxRetries) {\n\t\t\tthis.setState(\"disconnected\");\n\t\t\tthis.callbacks.onError(\n\t\t\t\tnew WebSocketClosedError(1006, \"Max reconnection attempts reached\"),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState(\"reconnecting\");\n\t\tthis.reconnectAttempt++;\n\t\tthis.callbacks.onReconnecting(this.reconnectAttempt);\n\n\t\tconst initialDelay = this.retry.initialDelayMs ?? DEFAULT_INITIAL_DELAY_MS;\n\t\tconst maxDelay = this.retry.maxDelayMs ?? DEFAULT_MAX_DELAY_MS;\n\t\tconst exponentialDelay = Math.min(initialDelay * 2 ** (this.reconnectAttempt - 1), maxDelay);\n\t\tconst jitter = exponentialDelay * 0.2 * Math.random();\n\t\tconst delay = exponentialDelay + jitter;\n\n\t\tthis.reconnectTimer = setTimeout(() => {\n\t\t\tthis.reconnectTimer = null;\n\t\t\tthis.createSocket();\n\t\t}, delay);\n\t}\n\n\tprivate clearReconnectTimer(): void {\n\t\tif (this.reconnectTimer !== null) {\n\t\t\tclearTimeout(this.reconnectTimer);\n\t\t\tthis.reconnectTimer = null;\n\t\t}\n\t}\n\n\tprivate setState(state: ConnectionState): void {\n\t\tthis._state = state;\n\t}\n}\n",
|
|
19
20
|
"import { WebSocketTransport } from \"./ws-transport.js\";\nimport type {\n\tConnectionState,\n\tStructWebSocketConfig,\n\tWebSocketEventMap,\n\tWebSocketMessage,\n\tWebSocketServerMessage,\n} from \"./types/ws.js\";\nimport type { Address } from \"./types/common.js\";\n\nconst DEFAULT_BASE_URL = \"https://api.struct.to/v1\";\n\ntype Listener<T> = (payload: T) => void;\n\nexport class StructWebSocket {\n\tprivate readonly transport: WebSocketTransport;\n\tprivate readonly listeners = new Map<string, Set<Function>>();\n\tprivate readonly activeMarkets = new Set<string>();\n\tprivate readonly activeMarketPositions = new Set<string>();\n\tprivate readonly activeWallets = new Set<string>();\n\tprivate readonly activeConditions = new Set<string>();\n\tprivate readonly activeSpecialRooms = new Set<string>();\n\n\tconstructor(config: StructWebSocketConfig) {\n\t\tconst httpBase = (config.baseUrl ?? DEFAULT_BASE_URL).replace(/\\/+$/, \"\");\n\t\tconst wsBase = httpBase.replace(/^https:\\/\\//, \"wss://\").replace(/^http:\\/\\//, \"ws://\");\n\t\tconst url = `${wsBase}?token=${encodeURIComponent(config.apiKey)}`;\n\n\t\tthis.transport = new WebSocketTransport(\n\t\t\turl,\n\t\t\tconfig.reconnect ?? {},\n\t\t\t{\n\t\t\t\tonOpen: () => this.handleOpen(),\n\t\t\t\tonClose: (code, reason) => this.handleClose(code, reason),\n\t\t\t\tonError: (error) => this.emit(\"error\", error),\n\t\t\t\tonMessage: (data) => this.handleMessage(data),\n\t\t\t\tonReconnecting: (attempt) => this.emit(\"reconnecting\", { attempt }),\n\t\t\t},\n\t\t);\n\t}\n\n\tget state(): ConnectionState {\n\t\treturn this.transport.state;\n\t}\n\n\tconnect(): void {\n\t\tthis.transport.connect();\n\t}\n\n\tdisconnect(): void {\n\t\tthis.activeMarkets.clear();\n\t\tthis.activeMarketPositions.clear();\n\t\tthis.activeWallets.clear();\n\t\tthis.activeConditions.clear();\n\t\tthis.activeSpecialRooms.clear();\n\t\tthis.transport.disconnect();\n\t}\n\n\ton<K extends keyof WebSocketEventMap>(event: K, listener: Listener<WebSocketEventMap[K]>): this {\n\t\tlet set = this.listeners.get(event as string);\n\t\tif (!set) {\n\t\t\tset = new Set();\n\t\t\tthis.listeners.set(event as string, set);\n\t\t}\n\t\tset.add(listener);\n\t\treturn this;\n\t}\n\n\toff<K extends keyof WebSocketEventMap>(event: K, listener: Listener<WebSocketEventMap[K]>): this {\n\t\tthis.listeners.get(event as string)?.delete(listener);\n\t\treturn this;\n\t}\n\n\tonce<K extends keyof WebSocketEventMap>(event: K, listener: Listener<WebSocketEventMap[K]>): this {\n\t\tconst wrapper = (payload: WebSocketEventMap[K]) => {\n\t\t\tthis.off(event, wrapper);\n\t\t\tlistener(payload);\n\t\t};\n\t\treturn this.on(event, wrapper);\n\t}\n\n\tsubscribeMarket(conditionId: string): void {\n\t\tif (this.activeMarkets.has(conditionId)) return;\n\t\tthis.activeMarkets.add(conditionId);\n\t\tconst msg = this.marketSubscribeMessage(conditionId);\n\t\tthis.transport.addReplayMessage(msg);\n\t\tthis.transport.send(msg);\n\t}\n\n\tunsubscribeMarket(conditionId: string): void {\n\t\tif (!this.activeMarkets.has(conditionId)) return;\n\t\tthis.activeMarkets.delete(conditionId);\n\t\tconst msg: WebSocketMessage = {\n\t\t\ttype: \"unsubscribe_market\",\n\t\t\troom_id: `market_${conditionId}`,\n\t\t\tmessage: {},\n\t\t};\n\t\tthis.transport.removeReplayMessages(\n\t\t\t(m) => m.type === \"subscribe_market\" && m.room_id === `market_${conditionId}`,\n\t\t);\n\t\tthis.transport.send(msg);\n\t}\n\n\tsubscribeMarketByPosition(positionId: string): void {\n\t\tif (this.activeMarketPositions.has(positionId)) return;\n\t\tthis.activeMarketPositions.add(positionId);\n\t\tconst msg = this.marketPositionSubscribeMessage(positionId);\n\t\tthis.transport.addReplayMessage(msg);\n\t\tthis.transport.send(msg);\n\t}\n\n\tunsubscribeMarketByPosition(positionId: string): void {\n\t\tif (!this.activeMarketPositions.has(positionId)) return;\n\t\tthis.activeMarketPositions.delete(positionId);\n\t\tconst msg: WebSocketMessage = {\n\t\t\ttype: \"unsubscribe_market\",\n\t\t\troom_id: `market_position_${positionId}`,\n\t\t\tmessage: {},\n\t\t};\n\t\tthis.transport.removeReplayMessages(\n\t\t\t(m) => m.type === \"subscribe_market\" && m.room_id === `market_position_${positionId}`,\n\t\t);\n\t\tthis.transport.send(msg);\n\t}\n\n\ttrackWallets(addresses: Address[]): void {\n\t\tconst uniqueAddresses = [...new Set(addresses)];\n\t\tconst added = uniqueAddresses.filter((addr) => !this.activeWallets.has(addr));\n\t\tif (added.length === 0) return;\n\t\tfor (const addr of added) this.activeWallets.add(addr);\n\t\tconst msg = this.walletTrackMessage(\"subscribe\", added);\n\t\tthis.rebuildWalletReplay();\n\t\tthis.transport.send(msg);\n\t}\n\n\tuntrackWallets(addresses: Address[]): void {\n\t\tconst uniqueAddresses = [...new Set(addresses)];\n\t\tconst removed = uniqueAddresses.filter((addr) => this.activeWallets.has(addr));\n\t\tif (removed.length === 0) return;\n\t\tfor (const addr of removed) this.activeWallets.delete(addr);\n\t\tconst msg = this.walletTrackMessage(\"unsubscribe\", removed);\n\t\tthis.rebuildWalletReplay();\n\t\tthis.transport.send(msg);\n\t}\n\n\tsubscribeWhaleTrades(): void {\n\t\tthis.subscribeSpecialRoom(\"whale_trades\");\n\t}\n\n\tunsubscribeWhaleTrades(): void {\n\t\tthis.unsubscribeSpecialRoom(\"whale_trades\");\n\t}\n\n\tsubscribeSmartMoneyTrades(): void {\n\t\tthis.subscribeSpecialRoom(\"smart_money_trades\");\n\t}\n\n\tunsubscribeSmartMoneyTrades(): void {\n\t\tthis.unsubscribeSpecialRoom(\"smart_money_trades\");\n\t}\n\n\tsubscribeInsiderTrades(): void {\n\t\tthis.subscribeSpecialRoom(\"insider_trades\");\n\t}\n\n\tunsubscribeInsiderTrades(): void {\n\t\tthis.unsubscribeSpecialRoom(\"insider_trades\");\n\t}\n\n\ttrackConditions(conditionIds: string[]): void {\n\t\tconst uniqueConditionIds = [...new Set(conditionIds)];\n\t\tconst added = uniqueConditionIds.filter((id) => !this.activeConditions.has(id));\n\t\tif (added.length === 0) return;\n\t\tfor (const id of added) this.activeConditions.add(id);\n\t\tconst msg = this.conditionsTrackMessage(\"subscribe\", added);\n\t\tthis.rebuildConditionsReplay();\n\t\tthis.transport.send(msg);\n\t}\n\n\tuntrackConditions(conditionIds: string[]): void {\n\t\tconst uniqueConditionIds = [...new Set(conditionIds)];\n\t\tconst removed = uniqueConditionIds.filter((id) => this.activeConditions.has(id));\n\t\tif (removed.length === 0) return;\n\t\tfor (const id of removed) this.activeConditions.delete(id);\n\t\tconst msg = this.conditionsTrackMessage(\"unsubscribe\", removed);\n\t\tthis.rebuildConditionsReplay();\n\t\tthis.transport.send(msg);\n\t}\n\n\tprivate handleOpen(): void {\n\t\tthis.emit(\"connected\", undefined as never);\n\t}\n\n\tprivate handleClose(code: number, reason: string): void {\n\t\tthis.emit(\"disconnected\", { code, reason });\n\t}\n\n\tprivate handleMessage(raw: unknown): void {\n\t\tconst msg = raw as WebSocketServerMessage;\n\t\tif (!msg || typeof msg !== \"object\") return;\n\n\t\tconst roomId = msg.room_id ?? \"\";\n\t\tconst type = msg.type;\n\n\t\tif (type === \"market_trade\" || roomId.startsWith(\"market_\")) {\n\t\t\tthis.emit(\"market_trade\", msg.data as never);\n\t\t} else if (type === \"whale_trade\" || roomId === \"whale_trades\") {\n\t\t\tthis.emit(\"whale_trade\", msg.data as never);\n\t\t} else if (type === \"smart_money_trade\" || roomId === \"smart_money_trades\") {\n\t\t\tthis.emit(\"smart_money_trade\", msg.data as never);\n\t\t} else if (type === \"insider_trade\" || roomId === \"insider_trades\") {\n\t\t\tthis.emit(\"insider_trade\", msg.data as never);\n\t\t} else if (type === \"wallet_tracking_alert\") {\n\t\t\tthis.emit(\"wallet_tracking_alert\", msg.data as never);\n\t\t} else if (type === \"conditions_tracking_alert\") {\n\t\t\tthis.emit(\"conditions_tracking_alert\", msg.data as never);\n\t\t}\n\t}\n\n\tprivate emit<K extends keyof WebSocketEventMap>(event: K, payload: WebSocketEventMap[K]): void {\n\t\tconst set = this.listeners.get(event as string);\n\t\tif (!set) return;\n\t\tfor (const fn of set) {\n\t\t\ttry {\n\t\t\t\t(fn as Listener<WebSocketEventMap[K]>)(payload);\n\t\t\t} catch {}\n\t\t}\n\t}\n\n\tprivate marketSubscribeMessage(conditionId: string): WebSocketMessage {\n\t\treturn { type: \"subscribe_market\", room_id: `market_${conditionId}`, message: {} };\n\t}\n\n\tprivate marketPositionSubscribeMessage(positionId: string): WebSocketMessage {\n\t\treturn { type: \"subscribe_market\", room_id: `market_position_${positionId}`, message: {} };\n\t}\n\n\tprivate walletTrackMessage(action: string, addresses: Address[]): WebSocketMessage {\n\t\treturn { type: \"wallet_tracking\", action, wallet_addresses: addresses };\n\t}\n\n\tprivate conditionsTrackMessage(action: string, conditionIds: string[]): WebSocketMessage {\n\t\treturn { type: \"conditions_tracking\", action, condition_ids: conditionIds };\n\t}\n\n\tprivate subscribeSpecialRoom(roomId: string): void {\n\t\tif (this.activeSpecialRooms.has(roomId)) return;\n\t\tthis.activeSpecialRooms.add(roomId);\n\t\tconst msg: WebSocketMessage = { type: \"subscribe_market\", room_id: roomId, message: {} };\n\t\tthis.transport.addReplayMessage(msg);\n\t\tthis.transport.send(msg);\n\t}\n\n\tprivate unsubscribeSpecialRoom(roomId: string): void {\n\t\tif (!this.activeSpecialRooms.has(roomId)) return;\n\t\tthis.activeSpecialRooms.delete(roomId);\n\t\tconst msg: WebSocketMessage = { type: \"unsubscribe_market\", room_id: roomId, message: {} };\n\t\tthis.transport.removeReplayMessages(\n\t\t\t(m) => m.type === \"subscribe_market\" && m.room_id === roomId,\n\t\t);\n\t\tthis.transport.send(msg);\n\t}\n\n\tprivate rebuildWalletReplay(): void {\n\t\tthis.transport.removeReplayMessages((m) => m.type === \"wallet_tracking\");\n\t\tif (this.activeWallets.size > 0) {\n\t\t\tthis.transport.addReplayMessage(\n\t\t\t\tthis.walletTrackMessage(\"subscribe\", [...this.activeWallets]),\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate rebuildConditionsReplay(): void {\n\t\tthis.transport.removeReplayMessages((m) => m.type === \"conditions_tracking\");\n\t\tif (this.activeConditions.size > 0) {\n\t\t\tthis.transport.addReplayMessage(\n\t\t\t\tthis.conditionsTrackMessage(\"subscribe\", [...this.activeConditions]),\n\t\t\t);\n\t\t}\n\t}\n}\n",
|
|
20
21
|
"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"
|
|
21
22
|
],
|
|
22
|
-
"mappings": "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",
|
|
23
|
-
"debugId": "
|
|
23
|
+
"mappings": "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",
|
|
24
|
+
"debugId": "E26AFA56AFACF1B964756E2164756E21",
|
|
24
25
|
"names": []
|
|
25
26
|
}
|
package/dist/index.js
CHANGED
|
@@ -283,6 +283,12 @@ class PlatformNamespace {
|
|
|
283
283
|
return this.http.delete(path, options);
|
|
284
284
|
}
|
|
285
285
|
}
|
|
286
|
+
// src/namespaces/assets.ts
|
|
287
|
+
class AssetsNamespace extends Namespace {
|
|
288
|
+
async getAssetHistory(params, venue) {
|
|
289
|
+
return this.get(venue, "/asset-history", { params: { ...params } });
|
|
290
|
+
}
|
|
291
|
+
}
|
|
286
292
|
// src/namespaces/holders.ts
|
|
287
293
|
class HoldersNamespace extends Namespace {
|
|
288
294
|
async getMarketHolders(params, venue) {
|
|
@@ -353,6 +359,9 @@ class MarketsNamespace extends Namespace {
|
|
|
353
359
|
async getMarketVolumeChart(params, venue) {
|
|
354
360
|
return this.get(venue, "/market/volume-chart", { params: { ...params } });
|
|
355
361
|
}
|
|
362
|
+
async getPriceJumps(params, venue) {
|
|
363
|
+
return this.get(venue, "/market/price-jumps", { params: { ...params } });
|
|
364
|
+
}
|
|
356
365
|
}
|
|
357
366
|
// src/namespaces/series.ts
|
|
358
367
|
class SeriesNamespace extends Namespace {
|
|
@@ -444,11 +453,18 @@ class WebhooksNamespace extends PlatformNamespace {
|
|
|
444
453
|
async test(params) {
|
|
445
454
|
return this.http.post(`/webhooks/${encodeURIComponent(params.webhookId)}/test`);
|
|
446
455
|
}
|
|
456
|
+
async rotateSecret(params) {
|
|
457
|
+
return this.http.post(`/webhooks/${encodeURIComponent(params.webhookId)}/rotate-secret`);
|
|
458
|
+
}
|
|
459
|
+
async listEvents() {
|
|
460
|
+
return this.http.get("/webhooks/events");
|
|
461
|
+
}
|
|
447
462
|
}
|
|
448
463
|
// src/client.ts
|
|
449
464
|
var DEFAULT_BASE_URL = "https://api.struct.to/v1";
|
|
450
465
|
|
|
451
466
|
class StructClient {
|
|
467
|
+
assets;
|
|
452
468
|
holders;
|
|
453
469
|
tags;
|
|
454
470
|
events;
|
|
@@ -471,6 +487,7 @@ class StructClient {
|
|
|
471
487
|
onResponse: config.onResponse
|
|
472
488
|
});
|
|
473
489
|
const venue = config.venue ?? "polymarket";
|
|
490
|
+
this.assets = new AssetsNamespace(http, venue);
|
|
474
491
|
this.holders = new HoldersNamespace(http, venue);
|
|
475
492
|
this.tags = new TagsNamespace(http, venue);
|
|
476
493
|
this.events = new EventsNamespace(http, venue);
|
|
@@ -895,5 +912,5 @@ export {
|
|
|
895
912
|
HttpClient
|
|
896
913
|
};
|
|
897
914
|
|
|
898
|
-
//# debugId=
|
|
915
|
+
//# debugId=5EF6694B3207B38E64756E2164756E21
|
|
899
916
|
//# sourceMappingURL=index.js.map
|