@0xinsider/sdk 0.14.0-bootstrap.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,314 @@
1
+ /**
2
+ * Webhook signature verification and typed delivery payloads.
3
+ *
4
+ * The backend signs every webhook delivery exactly like this (source of truth:
5
+ * `backend/src/api_v1/handlers/webhooks/endpoint_security.rs::sign_webhook_payload`):
6
+ *
7
+ * signature = "v1=" + hex( HMAC_SHA256( signing_secret, `${timestamp}.${raw_body}` ) )
8
+ *
9
+ * It is sent on two headers:
10
+ * - `x-0xinsider-timestamp: <unix-seconds>`
11
+ * - `x-0xinsider-signature: v1=<hex>` (may be a comma-separated list)
12
+ *
13
+ * Verification, the receiver side. The backend only signs; the published
14
+ * recipe is the delivery-signing paragraph on POST /api/v1/webhooks in
15
+ * `web/public/api/v1/openapi.json`:
16
+ * 1. Reject if `|now - timestamp| > 300` seconds (replay tolerance).
17
+ * 2. Recompute the expected `v1=<hex>` over `${timestamp}.${rawBody}`.
18
+ * 3. Constant-time compare against each candidate in the header.
19
+ *
20
+ * `rawBody` MUST be the exact bytes received: verify before JSON parsing, since
21
+ * re-serializing changes whitespace/key order and breaks the HMAC.
22
+ *
23
+ * ENDPOINT ACTIVATION (`verifyWebhook`, `POST /api/v1/webhooks/{id}/verify`):
24
+ * the one-time `verification.token` is necessary but not sufficient. That call
25
+ * POSTs a challenge to your webhook url and activates the endpoint only if you
26
+ * answer 2xx within 10 seconds. The challenge body is
27
+ * `{ "type": "webhook.verification", "token": "<verification_token>",
28
+ * "webhook_id": <id> }`, it carries `x-0xinsider-event-type:
29
+ * webhook.verification`, and it is signed with the endpoint's `signing_secret`
30
+ * exactly like a delivery -- so `verifySignature` below validates it unchanged.
31
+ * The challenge follows no redirects and never reads your response body. A
32
+ * non-2xx answer, no answer inside 10 seconds, or a url that does not resolve to
33
+ * a publicly routable address returns 422 and leaves the endpoint
34
+ * `pending_verification`.
35
+ */
36
+ /** Default replay tolerance; the published contract is 300 seconds. */
37
+ export declare const SIGNATURE_TOLERANCE_SECONDS = 300;
38
+ /** Header carrying the `v1=<hex>` signature. */
39
+ export declare const SIGNATURE_HEADER = "x-0xinsider-signature";
40
+ /** Header carrying the unix-seconds signing timestamp. */
41
+ export declare const TIMESTAMP_HEADER = "x-0xinsider-timestamp";
42
+ export interface VerifySignatureInput {
43
+ /** The endpoint's signing secret (returned on create / rotate-secret/prepare / rotate-secret/activate). */
44
+ secret: string;
45
+ /** The `x-0xinsider-timestamp` value (unix seconds, number or string). */
46
+ timestamp: number | string;
47
+ /** The exact raw request body bytes/string, pre-JSON-parse. */
48
+ body: string | Uint8Array;
49
+ /** The `x-0xinsider-signature` header value (`v1=<hex>`, possibly a list). */
50
+ signature: string;
51
+ /**
52
+ * Replay tolerance in seconds; defaults to `SIGNATURE_TOLERANCE_SECONDS`
53
+ * (300, the published contract). A finite number of at least 0: a payload
54
+ * whose timestamp is more than this many seconds from `nowSeconds`, in
55
+ * either direction, is rejected, and exactly this many seconds away is
56
+ * accepted (the check is `|now - timestamp| > tolerance`). `0` accepts only
57
+ * the current second. `NaN`, `Infinity`, `-Infinity` or a negative value is
58
+ * a configuration error and throws, since each would silently turn the
59
+ * replay window off (#16183): `Math.abs(x) > NaN` is never true, and
60
+ * `> Infinity` never is either.
61
+ */
62
+ toleranceSeconds?: number;
63
+ /** Reference "now" in unix seconds; defaults to `Date.now()/1000`. */
64
+ nowSeconds?: number;
65
+ }
66
+ /**
67
+ * Recompute the canonical signature for a payload. Returns `v1=<hex>`.
68
+ * Exposed so callers can sign in tests; matches the backend byte-for-byte.
69
+ */
70
+ export declare function computeSignature(secret: string, timestamp: number | string, body: string | Uint8Array): string;
71
+ /**
72
+ * Verify a webhook signature. Returns `true` only when the timestamp is within
73
+ * tolerance AND a candidate signature constant-time-matches the recomputed one.
74
+ * Never throws on a bad signature or a malformed timestamp (those return
75
+ * `false`); throws only on receiver misconfiguration: a missing/empty secret,
76
+ * or a `toleranceSeconds` that is not a finite number of at least 0 (#16183).
77
+ * The two are told apart on purpose: a `false` is the sender's problem and is
78
+ * answered with a 4xx, a throw is the receiver's own bug and should reach a
79
+ * log, not be mistaken for a forged delivery.
80
+ */
81
+ export declare function verifySignature(input: VerifySignatureInput): boolean;
82
+ /**
83
+ * Webhook event types. Source of truth:
84
+ * `web/public/api/v1/openapi.json` -> components.schemas.WebhookEventType.enum.
85
+ * `large_trades_inserted`, `whale_trades_inserted`, `wallet_grade_changed`,
86
+ * `suspicious_trade_flagged`, `insider_radar_flag_raised`,
87
+ * `sharp_money_flow_detected`, and `smart_money_flow_detected` are Pro-only:
88
+ * they deliver only to API keys on an active Pro subscription.
89
+ *
90
+ * Some entries are two spellings of ONE event, not two events: either one
91
+ * subscribes, and an endpoint receives its deliveries under the spelling it
92
+ * registered. The canonical spelling is listed first of each pair --
93
+ * `large_trades_inserted` over `whale_trades_inserted` and `trader_synced`
94
+ * over `whale_trader_synced` (#16304), `suspicious_trade_flagged` over
95
+ * `insider_radar_flag_raised` (#16301), and `sharp_money_flow_detected` over
96
+ * `smart_money_flow_detected` (#16308). No deprecated spelling is ever
97
+ * removed.
98
+ */
99
+ export declare const WEBHOOK_EVENT_TYPES: readonly ["large_trades_inserted", "whale_trades_inserted", "live_sports_updated", "trader_synced", "whale_trader_synced", "large_positions_updated", "wallet_grade_changed", "suspicious_trade_flagged", "insider_radar_flag_raised", "sharp_money_flow_detected", "smart_money_flow_detected", "export_job_ready", "export_job_failed", "export_job_expired", "export_job_cancelled"];
100
+ export type WebhookEventType = (typeof WEBHOOK_EVENT_TYPES)[number];
101
+ /**
102
+ * Common delivery envelope every webhook POST body carries. Source of truth:
103
+ * the `enqueue_webhook_event` call sites in the backend
104
+ * (`{ id, type, created_at, data }`).
105
+ */
106
+ export interface WebhookEventEnvelope<TType extends WebhookEventType = WebhookEventType, TData = unknown> {
107
+ /** Stable event id; identical across retries of the same logical event. */
108
+ id: string;
109
+ type: TType;
110
+ /** ISO-8601 timestamp of when the event was enqueued. */
111
+ created_at: string;
112
+ data: TData;
113
+ }
114
+ /** `whale_trades_inserted` data (Pro-only): a batch of new whale trades was ingested. */
115
+ export interface WhaleTradesInsertedData {
116
+ count: number;
117
+ }
118
+ /** One side's score line inside a `live_sports_updated` pulse. */
119
+ export interface LiveSportsScoreEntry {
120
+ team: string;
121
+ score: string;
122
+ /** Esports series only: this side's current-map score. Absent on other sports. */
123
+ map_score?: string;
124
+ }
125
+ /**
126
+ * `live_sports_updated` data: one bounded pulse for one live game.
127
+ *
128
+ * A pulse fires when a material field moved since this game's previous
129
+ * delivered pulse (`scores`, `status`, `period`, `live`, `ended`), at most once
130
+ * per game per 20 seconds. A `live` or `ended` transition is exempt from that
131
+ * interval, so a game going live or final is never coalesced away; the game
132
+ * clock alone never fires a pulse. Suppressed frames are folded into the next
133
+ * pulse's `changed` and its body carries the current state, so you see every
134
+ * field that moved but not every intermediate value.
135
+ */
136
+ export interface LiveSportsUpdatedData {
137
+ /** The Polymarket event slug this game trades under. */
138
+ event_slug: string;
139
+ /** Provider game id, or `null` when the frame carried none. */
140
+ game_id: string | null;
141
+ /** League abbreviation, or `null`. */
142
+ league: string | null;
143
+ /**
144
+ * Durable per-game pulse ordinal, increasing by one per delivered pulse.
145
+ * Deliveries are not ordered, so drop a pulse whose version you already saw.
146
+ */
147
+ version: number;
148
+ /** Material fields that moved since this game's previous delivered pulse. */
149
+ changed: Array<"scores" | "status" | "period" | "live" | "ended">;
150
+ /** Provider frame time (ISO 8601), or `null` when the frame carried none. */
151
+ observed_at: string | null;
152
+ /** When the pulse was admitted (ISO 8601). */
153
+ published_at: string;
154
+ status: string | null;
155
+ period: string | null;
156
+ /** Game clock. Not a material field: it never fires a pulse on its own. */
157
+ clock: string | null;
158
+ live: boolean | null;
159
+ ended: boolean;
160
+ scores: LiveSportsScoreEntry[];
161
+ /** Esports `BoN` series token, or `null` on every other sport. */
162
+ series_format: string | null;
163
+ /** Public game page; re-read it after a gap instead of replaying pulses. */
164
+ snapshot_url: string;
165
+ }
166
+ /** `whale_trader_synced` data: a tracked trader finished a sync pass. */
167
+ export interface WhaleTraderSyncedData {
168
+ trader_id: number;
169
+ wallet: string;
170
+ }
171
+ /** `large_positions_updated` data. */
172
+ export interface LargePositionsUpdatedData {
173
+ count: number;
174
+ }
175
+ /**
176
+ * `wallet_grade_changed` data (Pro-only): a tracked wallet's grade moved.
177
+ * Source: `backend/crates/sync/src/periodic/heavy_pipeline.rs`.
178
+ */
179
+ export interface WalletGradeChangedData {
180
+ wallet: string;
181
+ trader_id: number;
182
+ old_grade: string;
183
+ new_grade: string;
184
+ /** Direction of the grade move, e.g. "up" / "down". */
185
+ direction: string;
186
+ skill_index: number;
187
+ final_score: number;
188
+ date: string;
189
+ }
190
+ /**
191
+ * `suspicious_trade_flagged` data (Pro-only): a suspicion threshold was
192
+ * crossed on a fresh fill. Source: `backend/src/polymarket_rtds_ingest/flushing.rs`.
193
+ *
194
+ * Delivered identically under the deprecated spelling
195
+ * `insider_radar_flag_raised` (#16301) to an endpoint that registered that
196
+ * spelling; the payload is the same.
197
+ */
198
+ export interface SuspiciousTradeFlaggedData {
199
+ trade_id: string;
200
+ wallet: string;
201
+ trader_id: number;
202
+ condition_id: string;
203
+ suspicion_score: number;
204
+ track: string;
205
+ /** Outcome side the flagged fill took. */
206
+ side: string;
207
+ size: number;
208
+ price: number;
209
+ }
210
+ /**
211
+ * @deprecated Use `SuspiciousTradeFlaggedData`; renamed in #16301. The two
212
+ * event spellings are one event with one payload, so this is an alias.
213
+ */
214
+ export type InsiderRadarFlagRaisedData = SuspiciousTradeFlaggedData;
215
+ /**
216
+ * `sharp_money_flow_detected` payload (Pro-only). Fires when a scheduled
217
+ * scanner detects ranked-trader net flow crossing a threshold on a market.
218
+ *
219
+ * One payload for both spellings of the event: the deprecated
220
+ * `smart_money_flow_detected` delivers the same object (#16308).
221
+ */
222
+ export interface SharpMoneyFlowDetectedData {
223
+ condition_id: string;
224
+ /** Signed net YES/NO exposure from ranked traders. */
225
+ net_flow_usd: number;
226
+ abs_net_flow_usd: number;
227
+ /** Side the net flow leans: "yes" or "no". */
228
+ dominant_side: string;
229
+ /** Minimum trader grade included: "S", "A", "B", "C", "D", or "F". */
230
+ grade_floor: string;
231
+ whale_trade_count: number;
232
+ /** Detection window, e.g. "24h". */
233
+ window: string;
234
+ }
235
+ /** `export_job_ready` data: the owner's async export can be downloaded. */
236
+ export interface ExportJobReadyData {
237
+ job_id: number;
238
+ status: "ready";
239
+ format: string;
240
+ next_action: "download";
241
+ total_trades: number | null;
242
+ processed_trades: number | null;
243
+ file_size: number | null;
244
+ data_as_of: string | null;
245
+ }
246
+ /** `export_job_failed` data: the owner's async export reached a terminal failure. */
247
+ export interface ExportJobFailedData {
248
+ job_id: number;
249
+ status: "failed";
250
+ format: string;
251
+ next_action: "resubmit";
252
+ failure_reason: string;
253
+ }
254
+ /** `export_job_expired` data: the owner's ready export passed retention. */
255
+ export interface ExportJobExpiredData {
256
+ job_id: number;
257
+ status: "expired";
258
+ format: string;
259
+ next_action: "resubmit";
260
+ }
261
+ /** `export_job_cancelled` data: the owner's export stopped because its owner cancelled it. */
262
+ export interface ExportJobCancelledData {
263
+ job_id: number;
264
+ status: "cancelled";
265
+ format: string;
266
+ next_action: "resubmit";
267
+ }
268
+ export type WhaleTradesInsertedEvent = WebhookEventEnvelope<"whale_trades_inserted", WhaleTradesInsertedData>;
269
+ export type LiveSportsUpdatedEvent = WebhookEventEnvelope<"live_sports_updated", LiveSportsUpdatedData>;
270
+ export type WhaleTraderSyncedEvent = WebhookEventEnvelope<"whale_trader_synced", WhaleTraderSyncedData>;
271
+ export type LargePositionsUpdatedEvent = WebhookEventEnvelope<"large_positions_updated", LargePositionsUpdatedData>;
272
+ export type WalletGradeChangedEvent = WebhookEventEnvelope<"wallet_grade_changed", WalletGradeChangedData>;
273
+ export type SuspiciousTradeFlaggedEvent = WebhookEventEnvelope<"suspicious_trade_flagged", SuspiciousTradeFlaggedData>;
274
+ /**
275
+ * @deprecated Use `SuspiciousTradeFlaggedEvent`; renamed in #16301. This stays
276
+ * a distinct envelope rather than an alias of it because the delivered `type`
277
+ * discriminant is the spelling the endpoint registered: an endpoint subscribed
278
+ * to `insider_radar_flag_raised` keeps receiving that literal, so narrowing on
279
+ * it keeps working.
280
+ */
281
+ export type InsiderRadarFlagRaisedEvent = WebhookEventEnvelope<"insider_radar_flag_raised", SuspiciousTradeFlaggedData>;
282
+ /**
283
+ * @deprecated Use `SharpMoneyFlowDetectedData`; renamed in #16308. The two
284
+ * event spellings are one event with one payload, so this is an alias.
285
+ */
286
+ export type SmartMoneyFlowDetectedData = SharpMoneyFlowDetectedData;
287
+ export type SharpMoneyFlowDetectedEvent = WebhookEventEnvelope<"sharp_money_flow_detected", SharpMoneyFlowDetectedData>;
288
+ /**
289
+ * @deprecated Use `SharpMoneyFlowDetectedEvent`; renamed in #16308. This stays
290
+ * a distinct envelope rather than an alias of it because the delivered `type`
291
+ * discriminant is the spelling the endpoint registered: an endpoint subscribed
292
+ * to `smart_money_flow_detected` keeps receiving that literal, so narrowing on
293
+ * it keeps working.
294
+ */
295
+ export type SmartMoneyFlowDetectedEvent = WebhookEventEnvelope<"smart_money_flow_detected", SharpMoneyFlowDetectedData>;
296
+ export type ExportJobReadyEvent = WebhookEventEnvelope<"export_job_ready", ExportJobReadyData>;
297
+ export type ExportJobFailedEvent = WebhookEventEnvelope<"export_job_failed", ExportJobFailedData>;
298
+ export type ExportJobExpiredEvent = WebhookEventEnvelope<"export_job_expired", ExportJobExpiredData>;
299
+ export type ExportJobCancelledEvent = WebhookEventEnvelope<"export_job_cancelled", ExportJobCancelledData>;
300
+ /**
301
+ * Discriminated union over every typed webhook delivery payload.
302
+ *
303
+ * `SuspiciousTradeFlaggedEvent` and `InsiderRadarFlagRaisedEvent` are both
304
+ * members because the same event is delivered under whichever spelling the
305
+ * endpoint registered (#16301); the `data` shape is identical. So are
306
+ * `SharpMoneyFlowDetectedEvent` and `SmartMoneyFlowDetectedEvent` (#16308).
307
+ */
308
+ export type WebhookEvent = WhaleTradesInsertedEvent | LiveSportsUpdatedEvent | WhaleTraderSyncedEvent | LargePositionsUpdatedEvent | WalletGradeChangedEvent | SuspiciousTradeFlaggedEvent | InsiderRadarFlagRaisedEvent | SharpMoneyFlowDetectedEvent | SmartMoneyFlowDetectedEvent | ExportJobReadyEvent | ExportJobFailedEvent | ExportJobExpiredEvent | ExportJobCancelledEvent;
309
+ /**
310
+ * Parse a verified raw body into the typed delivery envelope. Call only AFTER
311
+ * `verifySignature` passes (parsing first would let an unverified payload in).
312
+ */
313
+ export declare function parseWebhookEvent(body: string): WebhookEvent;
314
+ //# sourceMappingURL=webhooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Webhook signature verification and typed delivery payloads.
3
+ *
4
+ * The backend signs every webhook delivery exactly like this (source of truth:
5
+ * `backend/src/api_v1/handlers/webhooks/endpoint_security.rs::sign_webhook_payload`):
6
+ *
7
+ * signature = "v1=" + hex( HMAC_SHA256( signing_secret, `${timestamp}.${raw_body}` ) )
8
+ *
9
+ * It is sent on two headers:
10
+ * - `x-0xinsider-timestamp: <unix-seconds>`
11
+ * - `x-0xinsider-signature: v1=<hex>` (may be a comma-separated list)
12
+ *
13
+ * Verification, the receiver side. The backend only signs; the published
14
+ * recipe is the delivery-signing paragraph on POST /api/v1/webhooks in
15
+ * `web/public/api/v1/openapi.json`:
16
+ * 1. Reject if `|now - timestamp| > 300` seconds (replay tolerance).
17
+ * 2. Recompute the expected `v1=<hex>` over `${timestamp}.${rawBody}`.
18
+ * 3. Constant-time compare against each candidate in the header.
19
+ *
20
+ * `rawBody` MUST be the exact bytes received: verify before JSON parsing, since
21
+ * re-serializing changes whitespace/key order and breaks the HMAC.
22
+ *
23
+ * ENDPOINT ACTIVATION (`verifyWebhook`, `POST /api/v1/webhooks/{id}/verify`):
24
+ * the one-time `verification.token` is necessary but not sufficient. That call
25
+ * POSTs a challenge to your webhook url and activates the endpoint only if you
26
+ * answer 2xx within 10 seconds. The challenge body is
27
+ * `{ "type": "webhook.verification", "token": "<verification_token>",
28
+ * "webhook_id": <id> }`, it carries `x-0xinsider-event-type:
29
+ * webhook.verification`, and it is signed with the endpoint's `signing_secret`
30
+ * exactly like a delivery -- so `verifySignature` below validates it unchanged.
31
+ * The challenge follows no redirects and never reads your response body. A
32
+ * non-2xx answer, no answer inside 10 seconds, or a url that does not resolve to
33
+ * a publicly routable address returns 422 and leaves the endpoint
34
+ * `pending_verification`.
35
+ */
36
+ import { createHmac, timingSafeEqual } from "node:crypto";
37
+ /** Default replay tolerance; the published contract is 300 seconds. */
38
+ export const SIGNATURE_TOLERANCE_SECONDS = 300;
39
+ /** Header carrying the `v1=<hex>` signature. */
40
+ export const SIGNATURE_HEADER = "x-0xinsider-signature";
41
+ /** Header carrying the unix-seconds signing timestamp. */
42
+ export const TIMESTAMP_HEADER = "x-0xinsider-timestamp";
43
+ /**
44
+ * Recompute the canonical signature for a payload. Returns `v1=<hex>`.
45
+ * Exposed so callers can sign in tests; matches the backend byte-for-byte.
46
+ */
47
+ export function computeSignature(secret, timestamp, body) {
48
+ const hmac = createHmac("sha256", secret);
49
+ hmac.update(String(timestamp));
50
+ hmac.update(".");
51
+ hmac.update(typeof body === "string" ? Buffer.from(body, "utf-8") : body);
52
+ return `v1=${hmac.digest("hex")}`;
53
+ }
54
+ /**
55
+ * Verify a webhook signature. Returns `true` only when the timestamp is within
56
+ * tolerance AND a candidate signature constant-time-matches the recomputed one.
57
+ * Never throws on a bad signature or a malformed timestamp (those return
58
+ * `false`); throws only on receiver misconfiguration: a missing/empty secret,
59
+ * or a `toleranceSeconds` that is not a finite number of at least 0 (#16183).
60
+ * The two are told apart on purpose: a `false` is the sender's problem and is
61
+ * answered with a 4xx, a throw is the receiver's own bug and should reach a
62
+ * log, not be mistaken for a forged delivery.
63
+ */
64
+ export function verifySignature(input) {
65
+ if (!input.secret) {
66
+ throw new Error("verifySignature requires a non-empty signing secret");
67
+ }
68
+ const tolerance = input.toleranceSeconds ?? SIGNATURE_TOLERANCE_SECONDS;
69
+ // Fail closed on a tolerance that cannot bound anything. `Math.abs(now - ts)
70
+ // > NaN` is false for every age, and so is `> Infinity`, so either would
71
+ // admit a correctly signed payload of any age; a negative tolerance would
72
+ // reject everything, which is a misconfiguration too, not a policy.
73
+ if (typeof tolerance !== "number" || !Number.isFinite(tolerance) || tolerance < 0) {
74
+ throw new Error(`verifySignature toleranceSeconds must be a finite number of at least 0, got ${String(tolerance)}`);
75
+ }
76
+ const now = input.nowSeconds ?? Math.floor(Date.now() / 1000);
77
+ // Guard a caller-injected non-finite `now` (e.g. NaN): a non-finite reference
78
+ // time would make `Math.abs(now - ts) > tolerance` false and silently skip the
79
+ // replay-window check, so reject outright rather than verify on the HMAC alone.
80
+ if (!Number.isFinite(now)) {
81
+ return false;
82
+ }
83
+ const ts = Number(input.timestamp);
84
+ if (!Number.isFinite(ts)) {
85
+ return false;
86
+ }
87
+ if (Math.abs(now - ts) > tolerance) {
88
+ return false;
89
+ }
90
+ const expected = computeSignature(input.secret, ts, input.body);
91
+ const expectedBuf = Buffer.from(expected, "utf-8");
92
+ // The header may carry multiple comma-separated candidate signatures.
93
+ return input.signature
94
+ .split(",")
95
+ .map((part) => part.trim())
96
+ .some((candidate) => constantTimeEqual(candidate, expectedBuf));
97
+ }
98
+ function constantTimeEqual(candidate, expected) {
99
+ const candidateBuf = Buffer.from(candidate, "utf-8");
100
+ // timingSafeEqual throws on length mismatch; the length check itself is not
101
+ // secret (signature length is public), so guard first.
102
+ if (candidateBuf.length !== expected.length) {
103
+ return false;
104
+ }
105
+ return timingSafeEqual(candidateBuf, expected);
106
+ }
107
+ // --- Typed webhook payloads ---
108
+ /**
109
+ * Webhook event types. Source of truth:
110
+ * `web/public/api/v1/openapi.json` -> components.schemas.WebhookEventType.enum.
111
+ * `large_trades_inserted`, `whale_trades_inserted`, `wallet_grade_changed`,
112
+ * `suspicious_trade_flagged`, `insider_radar_flag_raised`,
113
+ * `sharp_money_flow_detected`, and `smart_money_flow_detected` are Pro-only:
114
+ * they deliver only to API keys on an active Pro subscription.
115
+ *
116
+ * Some entries are two spellings of ONE event, not two events: either one
117
+ * subscribes, and an endpoint receives its deliveries under the spelling it
118
+ * registered. The canonical spelling is listed first of each pair --
119
+ * `large_trades_inserted` over `whale_trades_inserted` and `trader_synced`
120
+ * over `whale_trader_synced` (#16304), `suspicious_trade_flagged` over
121
+ * `insider_radar_flag_raised` (#16301), and `sharp_money_flow_detected` over
122
+ * `smart_money_flow_detected` (#16308). No deprecated spelling is ever
123
+ * removed.
124
+ */
125
+ export const WEBHOOK_EVENT_TYPES = [
126
+ "large_trades_inserted",
127
+ "whale_trades_inserted",
128
+ "live_sports_updated",
129
+ "trader_synced",
130
+ "whale_trader_synced",
131
+ "large_positions_updated",
132
+ "wallet_grade_changed",
133
+ "suspicious_trade_flagged",
134
+ "insider_radar_flag_raised",
135
+ // Pro-only. `sharp_money_flow_detected` is the canonical spelling since
136
+ // #16308 ("sharp money" is the pinned product term);
137
+ // `smart_money_flow_detected` is its deprecated twin, kept live, and stays
138
+ // the `type` an endpoint that registered it receives.
139
+ "sharp_money_flow_detected",
140
+ "smart_money_flow_detected",
141
+ "export_job_ready",
142
+ "export_job_failed",
143
+ "export_job_expired",
144
+ "export_job_cancelled",
145
+ ];
146
+ /**
147
+ * Parse a verified raw body into the typed delivery envelope. Call only AFTER
148
+ * `verifySignature` passes (parsing first would let an unverified payload in).
149
+ */
150
+ export function parseWebhookEvent(body) {
151
+ return JSON.parse(body);
152
+ }
153
+ //# sourceMappingURL=webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@0xinsider/sdk",
3
+ "version": "0.14.0-bootstrap.0",
4
+ "description": "Official TypeScript SDK for the 0xinsider API - analytics for Polymarket sports and esports markets (REST, cursor pagination, SSE stream, webhook verification)",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "scripts": {
15
+ "build": "tsc",
16
+ "dev": "tsc --watch",
17
+ "clean": "rm -rf dist",
18
+ "generate": "node scripts/generate.mjs",
19
+ "check": "node scripts/check-drift.mjs --spec openapi.json",
20
+ "check:live": "node scripts/check-drift.mjs",
21
+ "check:examples": "tsc --ignoreConfig --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck --types node examples/sdk-list-s-grade-wallets.ts",
22
+ "pretest": "npm run build",
23
+ "test": "node --test test/*.test.mjs",
24
+ "test:sandbox": "OXINSIDER_SANDBOX_TESTS=1 node --test test/sandbox.test.mjs",
25
+ "prepublishOnly": "npm run build"
26
+ },
27
+ "keywords": [
28
+ "0xinsider",
29
+ "prediction-markets",
30
+ "polymarket",
31
+ "sdk",
32
+ "api-client",
33
+ "sports-analytics",
34
+ "esports",
35
+ "large-trades",
36
+ "webhooks",
37
+ "sse"
38
+ ],
39
+ "author": "0xinsider",
40
+ "license": "MIT",
41
+ "repository": {
42
+ "type": "git",
43
+ "url": "git+https://github.com/0xinsider/0xinsider-node.git"
44
+ },
45
+ "bugs": {
46
+ "url": "https://github.com/0xinsider/0xinsider-node/issues"
47
+ },
48
+ "homepage": "https://0xinsider.com/developers",
49
+ "engines": {
50
+ "node": ">=18"
51
+ },
52
+ "publishConfig": {
53
+ "access": "public"
54
+ },
55
+ "files": [
56
+ "dist",
57
+ "README.md",
58
+ "LICENSE"
59
+ ],
60
+ "devDependencies": {
61
+ "@types/node": "^26.6.2",
62
+ "typescript": "^7.0.2"
63
+ }
64
+ }