drishti-sdk 0.2.13 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -8
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/websocket-types.d.ts +1 -0
- package/dist/websocket-types.d.ts.map +1 -1
- package/dist/websocket.d.ts +29 -10
- package/dist/websocket.d.ts.map +1 -1
- package/dist/websocket.js +146 -69
- package/dist/websocket.js.map +1 -1
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -159,7 +159,6 @@ import { DrishtiClient } from "drishti-sdk";
|
|
|
159
159
|
const client = new DrishtiClient({ apiKey: process.env.DRISHTI_API_KEY! });
|
|
160
160
|
const ws = client.websocket();
|
|
161
161
|
|
|
162
|
-
await ws.connect();
|
|
163
162
|
await ws.subscribe({ product: "announcements", symbols: ["RELIANCE"], detailed: false });
|
|
164
163
|
|
|
165
164
|
for await (const event of ws.events()) {
|
|
@@ -173,7 +172,7 @@ for await (const event of ws.events()) {
|
|
|
173
172
|
}
|
|
174
173
|
```
|
|
175
174
|
|
|
176
|
-
### Callback style
|
|
175
|
+
### Callback style
|
|
177
176
|
|
|
178
177
|
```ts
|
|
179
178
|
import { DrishtiClient } from "drishti-sdk";
|
|
@@ -181,7 +180,6 @@ import { DrishtiClient } from "drishti-sdk";
|
|
|
181
180
|
const client = new DrishtiClient({ apiKey: process.env.DRISHTI_API_KEY! });
|
|
182
181
|
|
|
183
182
|
const ws = client.websocket({
|
|
184
|
-
autoReconnect: true,
|
|
185
183
|
reconnectInitialDelayMs: 1000,
|
|
186
184
|
reconnectMaxDelayMs: 30000,
|
|
187
185
|
onReconnectAttempt: (attempt, delayMs, reason) => {
|
|
@@ -190,13 +188,32 @@ const ws = client.websocket({
|
|
|
190
188
|
onData: (event) => {
|
|
191
189
|
if (event.kind === "data") console.log(event.channel, event.data);
|
|
192
190
|
},
|
|
191
|
+
onAnnouncements: (announcement) => {
|
|
192
|
+
console.log("announcement", announcement);
|
|
193
|
+
},
|
|
194
|
+
onAlerts: (alert) => {
|
|
195
|
+
console.log("alert", alert);
|
|
196
|
+
},
|
|
193
197
|
});
|
|
194
198
|
|
|
195
|
-
await ws.connect();
|
|
196
199
|
await ws.subscribe({ product: "alerts", symbols: ["RELIANCE"] });
|
|
197
|
-
|
|
200
|
+
// callbacks fire as events arrive; the session reconnects automatically
|
|
198
201
|
```
|
|
199
202
|
|
|
203
|
+
Channel-specific listeners can be registered after connect:
|
|
204
|
+
|
|
205
|
+
```ts
|
|
206
|
+
const onAnnouncement = (announcement: Record<string, unknown>) => {
|
|
207
|
+
console.log("announcement", announcement);
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
ws.onAnnouncements(onAnnouncement);
|
|
211
|
+
ws.off("announcements", onAnnouncement);
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
The same channels are also available via `ws.on("announcements", handler)`.
|
|
215
|
+
`onData` still receives every data event across all channels.
|
|
216
|
+
|
|
200
217
|
Direct import is also supported:
|
|
201
218
|
|
|
202
219
|
```ts
|
|
@@ -221,23 +238,34 @@ Supported subscription products:
|
|
|
221
238
|
|
|
222
239
|
Useful session options:
|
|
223
240
|
|
|
224
|
-
- `autoReconnect`
|
|
225
241
|
- `reconnectInitialDelayMs`
|
|
226
242
|
- `reconnectMaxDelayMs`
|
|
227
243
|
- `reconnectBackoffMultiplier`
|
|
228
244
|
- `reconnectJitterRatio`
|
|
245
|
+
- `reconnectWarnAfterAttempts`
|
|
229
246
|
- `onSubscribed`
|
|
230
247
|
- `onData`
|
|
248
|
+
- `onNews`
|
|
249
|
+
- `onAnnouncements`
|
|
250
|
+
- `onEarnings`
|
|
251
|
+
- `onConcalls`
|
|
252
|
+
- `onAlerts`
|
|
231
253
|
- `onError`
|
|
232
254
|
- `onMessage`
|
|
233
255
|
- `onOpen`
|
|
234
256
|
- `onClose`
|
|
235
257
|
- `onReconnectAttempt`
|
|
258
|
+
- `onReconnectWarning`
|
|
259
|
+
|
|
260
|
+
The session connects automatically when created and keeps retrying in the
|
|
261
|
+
background after disconnects. Connection failures are retried with backoff; a
|
|
262
|
+
warning is logged (or `onReconnectWarning` is called) after repeated failures,
|
|
263
|
+
then retries continue indefinitely until `close()` is called.
|
|
236
264
|
|
|
237
265
|
Subscription messages accept an object shaped like
|
|
238
266
|
`{ product, symbols?, detailed? }`. Symbols are normalized to uppercase and
|
|
239
|
-
de-duplicated before the message is sent.
|
|
240
|
-
|
|
267
|
+
de-duplicated before the message is sent. Subscriptions are replayed after
|
|
268
|
+
every reconnect.
|
|
241
269
|
|
|
242
270
|
Event shapes:
|
|
243
271
|
|
package/dist/index.d.ts
CHANGED
|
@@ -6,5 +6,5 @@ export { serializeAnnouncementsQueryParams, serializeQueryParams } from "./param
|
|
|
6
6
|
export { DrishtiApiError, DrishtiWebSocketError } from "./errors.js";
|
|
7
7
|
export type { ApiErrorBody } from "./errors.js";
|
|
8
8
|
export { DRISHTI_WS_PRODUCTS, DrishtiWebSocketSession, buildWebSocketUrl, parseWebSocketMessage, streamProduct, } from "./websocket.js";
|
|
9
|
-
export type { DrishtiWebSocketProduct, DrishtiWebSocketSessionOptions, DataEvent, DataPayloadByChannel, ErrorEvent, KnownDataEvent, RawEvent, SubscribeOptions, SubscribedEvent, UnknownDataEvent, WebSocketEvent, WebSocketHandler, } from "./websocket.js";
|
|
9
|
+
export type { ChannelDataHandler, DrishtiWebSocketProduct, DrishtiWebSocketSessionOptions, DataEvent, DataPayloadByChannel, ErrorEvent, KnownDataEvent, RawEvent, SubscribeOptions, SubscribedEvent, UnknownDataEvent, WebSocketEvent, WebSocketHandler, } from "./websocket.js";
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,mBAAmB,YAAY,CAAC;AAChC,mBAAmB,aAAa,CAAC;AACjC,OAAO,EAAE,iCAAiC,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACrE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,uBAAuB,EACvB,8BAA8B,EAC9B,SAAS,EACT,oBAAoB,EACpB,UAAU,EACV,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,mBAAmB,YAAY,CAAC;AAChC,mBAAmB,aAAa,CAAC;AACjC,OAAO,EAAE,iCAAiC,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACrE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,8BAA8B,EAC9B,SAAS,EACT,oBAAoB,EACpB,UAAU,EACV,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
|
|
@@ -45,4 +45,5 @@ export type RawEvent = Readonly<{
|
|
|
45
45
|
}>;
|
|
46
46
|
export type WebSocketEvent = SubscribedEvent | DataEvent | ErrorEvent | RawEvent;
|
|
47
47
|
export type WebSocketHandler = (event: WebSocketEvent) => void | Promise<void>;
|
|
48
|
+
export type ChannelDataHandler<K extends DrishtiWebSocketProduct> = (data: DataPayloadByChannel[K]) => void | Promise<void>;
|
|
48
49
|
//# sourceMappingURL=websocket-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-types.d.ts","sourceRoot":"","sources":["../src/websocket-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,kBAAkB,EAClB,oBAAoB,EACpB,OAAO,EACP,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,mBAAmB,sEAMtB,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3E,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,uBAAuB,CAAC;IACjC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,aAAa,EAAE,kBAAkB,GAAG,oBAAoB,CAAC;IACzD,QAAQ,EAAE,cAAc,GAAG,gBAAgB,CAAC;IAC5C,QAAQ,EAAE,OAAO,GAAG,eAAe,CAAC;IACpC,MAAM,EAAE,KAAK,CAAC;CACf,CAAC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG;KAC1B,CAAC,IAAI,uBAAuB,GAAG,QAAQ,CAAC;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,CAAC,CAAC;QACX,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;KAC/B,CAAC;CACH,CAAC,uBAAuB,CAAC,CAAC;AAE3B,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEjF,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"websocket-types.d.ts","sourceRoot":"","sources":["../src/websocket-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,kBAAkB,EAClB,oBAAoB,EACpB,OAAO,EACP,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,mBAAmB,sEAMtB,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3E,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,uBAAuB,CAAC;IACjC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,aAAa,EAAE,kBAAkB,GAAG,oBAAoB,CAAC;IACzD,QAAQ,EAAE,cAAc,GAAG,gBAAgB,CAAC;IAC5C,QAAQ,EAAE,OAAO,GAAG,eAAe,CAAC;IACpC,MAAM,EAAE,KAAK,CAAC;CACf,CAAC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG;KAC1B,CAAC,IAAI,uBAAuB,GAAG,QAAQ,CAAC;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,CAAC,CAAC;QACX,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;KAC/B,CAAC;CACH,CAAC,uBAAuB,CAAC,CAAC;AAE3B,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEjF,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE/E,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,uBAAuB,IAAI,CAClE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAC1B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/dist/websocket.d.ts
CHANGED
|
@@ -1,22 +1,28 @@
|
|
|
1
|
-
import type { DrishtiWebSocketProduct, SubscribeOptions, WebSocketEvent, WebSocketHandler } from "./websocket-types.js";
|
|
2
|
-
export { DRISHTI_WS_PRODUCTS, type DrishtiWebSocketProduct, type DataEvent, type DataPayloadByChannel, type ErrorEvent, type KnownDataEvent, type RawEvent, type SubscribeOptions, type SubscribedEvent, type UnknownDataEvent, type WebSocketEvent, type WebSocketHandler, } from "./websocket-types.js";
|
|
1
|
+
import type { ChannelDataHandler, DrishtiWebSocketProduct, SubscribeOptions, WebSocketEvent, WebSocketHandler } from "./websocket-types.js";
|
|
2
|
+
export { DRISHTI_WS_PRODUCTS, type DrishtiWebSocketProduct, type DataEvent, type DataPayloadByChannel, type ErrorEvent, type KnownDataEvent, type RawEvent, type SubscribeOptions, type SubscribedEvent, type UnknownDataEvent, type ChannelDataHandler, type WebSocketEvent, type WebSocketHandler, } from "./websocket-types.js";
|
|
3
3
|
export type DrishtiWebSocketSessionOptions = Readonly<{
|
|
4
4
|
apiKey: string;
|
|
5
5
|
baseUrl?: string;
|
|
6
6
|
headers?: Record<string, string>;
|
|
7
7
|
webSocketImpl?: typeof WebSocket;
|
|
8
|
-
autoReconnect?: boolean;
|
|
9
8
|
reconnectInitialDelayMs?: number;
|
|
10
9
|
reconnectMaxDelayMs?: number;
|
|
11
10
|
reconnectBackoffMultiplier?: number;
|
|
12
11
|
reconnectJitterRatio?: number;
|
|
12
|
+
reconnectWarnAfterAttempts?: number;
|
|
13
13
|
onSubscribed?: WebSocketHandler;
|
|
14
14
|
onData?: WebSocketHandler;
|
|
15
|
+
onNews?: ChannelDataHandler<"news">;
|
|
16
|
+
onAnnouncements?: ChannelDataHandler<"announcements">;
|
|
17
|
+
onEarnings?: ChannelDataHandler<"earnings">;
|
|
18
|
+
onConcalls?: ChannelDataHandler<"concalls">;
|
|
19
|
+
onAlerts?: ChannelDataHandler<"alerts">;
|
|
15
20
|
onError?: WebSocketHandler;
|
|
16
21
|
onMessage?: WebSocketHandler;
|
|
17
22
|
onOpen?: () => void | Promise<void>;
|
|
18
23
|
onClose?: (reason: string) => void | Promise<void>;
|
|
19
24
|
onReconnectAttempt?: (attempt: number, delayMs: number, reason: string) => void | Promise<void>;
|
|
25
|
+
onReconnectWarning?: (attempt: number, reason: string) => void | Promise<void>;
|
|
20
26
|
}>;
|
|
21
27
|
export declare function buildWebSocketUrl(baseUrl: string, apiKey?: string): string;
|
|
22
28
|
export declare function parseWebSocketMessage(raw: string): WebSocketEvent;
|
|
@@ -25,26 +31,41 @@ export declare class DrishtiWebSocketSession {
|
|
|
25
31
|
private readonly baseUrl;
|
|
26
32
|
private readonly headers;
|
|
27
33
|
private readonly webSocketImpl;
|
|
28
|
-
private readonly autoReconnect;
|
|
29
34
|
private readonly reconnectInitialDelayMs;
|
|
30
35
|
private readonly reconnectMaxDelayMs;
|
|
31
36
|
private readonly reconnectBackoffMultiplier;
|
|
32
37
|
private readonly reconnectJitterRatio;
|
|
38
|
+
private readonly reconnectWarnAfterAttempts;
|
|
33
39
|
private readonly onOpen?;
|
|
34
40
|
private readonly onClose?;
|
|
35
41
|
private readonly onReconnectAttempt?;
|
|
42
|
+
private readonly onReconnectWarning?;
|
|
36
43
|
private readonly handlers;
|
|
44
|
+
private readonly channelHandlers;
|
|
37
45
|
private readonly subscriptions;
|
|
38
46
|
private socket;
|
|
39
47
|
private readonly queue;
|
|
40
48
|
private readonly waiters;
|
|
41
|
-
private closed;
|
|
42
49
|
private manuallyClosed;
|
|
43
|
-
private
|
|
50
|
+
private maintainingConnection;
|
|
44
51
|
constructor(options: DrishtiWebSocketSessionOptions);
|
|
45
52
|
get connected(): boolean;
|
|
46
|
-
on(eventName:
|
|
47
|
-
|
|
53
|
+
on(eventName: "data" | "subscribed" | "error" | "message" | "raw", handler: WebSocketHandler): void;
|
|
54
|
+
on<K extends DrishtiWebSocketProduct>(channel: K, handler: ChannelDataHandler<K>): void;
|
|
55
|
+
off(eventName: "data" | "subscribed" | "error" | "message" | "raw", handler: WebSocketHandler): void;
|
|
56
|
+
off<K extends DrishtiWebSocketProduct>(channel: K, handler: ChannelDataHandler<K>): void;
|
|
57
|
+
onNews(handler: ChannelDataHandler<"news">): void;
|
|
58
|
+
onAnnouncements(handler: ChannelDataHandler<"announcements">): void;
|
|
59
|
+
onEarnings(handler: ChannelDataHandler<"earnings">): void;
|
|
60
|
+
onConcalls(handler: ChannelDataHandler<"concalls">): void;
|
|
61
|
+
onAlerts(handler: ChannelDataHandler<"alerts">): void;
|
|
62
|
+
private addEventListener;
|
|
63
|
+
private removeEventListener;
|
|
64
|
+
private addChannelListener;
|
|
65
|
+
private removeChannelListener;
|
|
66
|
+
private startConnectionMaintenance;
|
|
67
|
+
private maintainConnection;
|
|
68
|
+
private emitReconnectWarning;
|
|
48
69
|
private openSocket;
|
|
49
70
|
private attachSocketHandlers;
|
|
50
71
|
private createSocket;
|
|
@@ -54,11 +75,9 @@ export declare class DrishtiWebSocketSession {
|
|
|
54
75
|
private handleIncoming;
|
|
55
76
|
private rejectWaiters;
|
|
56
77
|
private resubscribeAll;
|
|
57
|
-
private reconnectLoop;
|
|
58
78
|
private withJitter;
|
|
59
79
|
private nextEvent;
|
|
60
80
|
events(): AsyncGenerator<WebSocketEvent>;
|
|
61
|
-
run(): Promise<void>;
|
|
62
81
|
}
|
|
63
82
|
export declare function streamProduct(options: {
|
|
64
83
|
apiKey: string;
|
package/dist/websocket.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,uBAAuB,EAEvB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EACnB,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,SAAS,CAAC;IACjC,
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EAEvB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EACnB,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,SAAS,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACpC,eAAe,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACtD,UAAU,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC5C,UAAU,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChG,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChF,CAAC,CAAC;AAWH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ1E;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CA8DjE;AAeD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAS;IACpD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAS;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA2C;IACpE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAA6E;IACjH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAA4D;IAChG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyC;IAClE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqF;IACrH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwD;IACtF,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGhB;IACR,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,qBAAqB,CAAS;gBAE1B,OAAO,EAAE,8BAA8B;IA+CnD,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI;IACnG,EAAE,CAAC,CAAC,SAAS,uBAAuB,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI;IASvF,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI;IACpG,GAAG,CAAC,CAAC,SAAS,uBAAuB,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI;IASxF,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,IAAI;IAIjD,eAAe,CAAC,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,GAAG,IAAI;IAInE,UAAU,CAAC,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG,IAAI;IAIzD,UAAU,CAAC,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG,IAAI;IAIzD,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAIrD,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,0BAA0B;YAOpB,kBAAkB;YAmClB,oBAAoB;YAUpB,UAAU;IA6BxB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,YAAY;IAad,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAYtB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YAc3C,QAAQ;YAkBR,cAAc;IAW5B,OAAO,CAAC,aAAa;YAOP,cAAc;IAS5B,OAAO,CAAC,UAAU;YASJ,SAAS;IAahB,MAAM,IAAI,cAAc,CAAC,cAAc,CAAC;CAMhD;AAED,wBAAuB,aAAa,CAAC,OAAO,EAAE;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,uBAAuB,CAAC;IACjC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,SAAS,CAAC;CAClC,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAqB1C"}
|
package/dist/websocket.js
CHANGED
|
@@ -99,22 +99,23 @@ export class DrishtiWebSocketSession {
|
|
|
99
99
|
baseUrl;
|
|
100
100
|
headers;
|
|
101
101
|
webSocketImpl;
|
|
102
|
-
autoReconnect;
|
|
103
102
|
reconnectInitialDelayMs;
|
|
104
103
|
reconnectMaxDelayMs;
|
|
105
104
|
reconnectBackoffMultiplier;
|
|
106
105
|
reconnectJitterRatio;
|
|
106
|
+
reconnectWarnAfterAttempts;
|
|
107
107
|
onOpen;
|
|
108
108
|
onClose;
|
|
109
109
|
onReconnectAttempt;
|
|
110
|
+
onReconnectWarning;
|
|
110
111
|
handlers = new Map();
|
|
112
|
+
channelHandlers = new Map();
|
|
111
113
|
subscriptions = new Map();
|
|
112
114
|
socket = null;
|
|
113
115
|
queue = [];
|
|
114
116
|
waiters = [];
|
|
115
|
-
closed = false;
|
|
116
117
|
manuallyClosed = false;
|
|
117
|
-
|
|
118
|
+
maintainingConnection = false;
|
|
118
119
|
constructor(options) {
|
|
119
120
|
if (!options.apiKey || options.apiKey.trim().length === 0) {
|
|
120
121
|
throw new Error("DrishtiWebSocketSession requires a non-empty apiKey");
|
|
@@ -123,49 +124,151 @@ export class DrishtiWebSocketSession {
|
|
|
123
124
|
this.baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;
|
|
124
125
|
this.headers = { ...(options.headers ?? {}) };
|
|
125
126
|
this.webSocketImpl = options.webSocketImpl ?? WebSocket;
|
|
126
|
-
this.autoReconnect = options.autoReconnect ?? false;
|
|
127
127
|
this.reconnectInitialDelayMs = Math.max(100, options.reconnectInitialDelayMs ?? 1_000);
|
|
128
128
|
this.reconnectMaxDelayMs = Math.max(this.reconnectInitialDelayMs, options.reconnectMaxDelayMs ?? 30_000);
|
|
129
129
|
this.reconnectBackoffMultiplier = Math.max(1, options.reconnectBackoffMultiplier ?? 2);
|
|
130
130
|
this.reconnectJitterRatio = Math.min(1, Math.max(0, options.reconnectJitterRatio ?? 0.2));
|
|
131
|
+
this.reconnectWarnAfterAttempts = Math.max(1, options.reconnectWarnAfterAttempts ?? 10);
|
|
131
132
|
this.onOpen = options.onOpen;
|
|
132
133
|
this.onClose = options.onClose;
|
|
133
134
|
this.onReconnectAttempt = options.onReconnectAttempt;
|
|
135
|
+
this.onReconnectWarning = options.onReconnectWarning;
|
|
134
136
|
if (options.onSubscribed) {
|
|
135
137
|
this.on("subscribed", options.onSubscribed);
|
|
136
138
|
}
|
|
137
139
|
if (options.onData) {
|
|
138
140
|
this.on("data", options.onData);
|
|
139
141
|
}
|
|
142
|
+
if (options.onNews) {
|
|
143
|
+
this.on("news", options.onNews);
|
|
144
|
+
}
|
|
145
|
+
if (options.onAnnouncements) {
|
|
146
|
+
this.on("announcements", options.onAnnouncements);
|
|
147
|
+
}
|
|
148
|
+
if (options.onEarnings) {
|
|
149
|
+
this.on("earnings", options.onEarnings);
|
|
150
|
+
}
|
|
151
|
+
if (options.onConcalls) {
|
|
152
|
+
this.on("concalls", options.onConcalls);
|
|
153
|
+
}
|
|
154
|
+
if (options.onAlerts) {
|
|
155
|
+
this.on("alerts", options.onAlerts);
|
|
156
|
+
}
|
|
140
157
|
if (options.onError) {
|
|
141
158
|
this.on("error", options.onError);
|
|
142
159
|
}
|
|
143
160
|
if (options.onMessage) {
|
|
144
161
|
this.on("message", options.onMessage);
|
|
145
162
|
}
|
|
163
|
+
this.startConnectionMaintenance("initial");
|
|
146
164
|
}
|
|
147
165
|
get connected() {
|
|
148
166
|
return this.socket !== null && this.socket.readyState === this.webSocketImpl.OPEN;
|
|
149
167
|
}
|
|
150
168
|
on(eventName, handler) {
|
|
169
|
+
if (isDrishtiWebSocketProduct(eventName)) {
|
|
170
|
+
this.addChannelListener(eventName, handler);
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
this.addEventListener(eventName, handler);
|
|
174
|
+
}
|
|
175
|
+
off(eventName, handler) {
|
|
176
|
+
if (isDrishtiWebSocketProduct(eventName)) {
|
|
177
|
+
this.removeChannelListener(eventName, handler);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
this.removeEventListener(eventName, handler);
|
|
181
|
+
}
|
|
182
|
+
onNews(handler) {
|
|
183
|
+
this.addChannelListener("news", handler);
|
|
184
|
+
}
|
|
185
|
+
onAnnouncements(handler) {
|
|
186
|
+
this.addChannelListener("announcements", handler);
|
|
187
|
+
}
|
|
188
|
+
onEarnings(handler) {
|
|
189
|
+
this.addChannelListener("earnings", handler);
|
|
190
|
+
}
|
|
191
|
+
onConcalls(handler) {
|
|
192
|
+
this.addChannelListener("concalls", handler);
|
|
193
|
+
}
|
|
194
|
+
onAlerts(handler) {
|
|
195
|
+
this.addChannelListener("alerts", handler);
|
|
196
|
+
}
|
|
197
|
+
addEventListener(eventName, handler) {
|
|
151
198
|
const existing = this.handlers.get(eventName) ?? [];
|
|
152
199
|
existing.push(handler);
|
|
153
200
|
this.handlers.set(eventName, existing);
|
|
154
201
|
}
|
|
155
|
-
|
|
156
|
-
|
|
202
|
+
removeEventListener(eventName, handler) {
|
|
203
|
+
const existing = this.handlers.get(eventName) ?? [];
|
|
204
|
+
const next = existing.filter((item) => item !== handler);
|
|
205
|
+
if (next.length === 0) {
|
|
206
|
+
this.handlers.delete(eventName);
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
this.handlers.set(eventName, next);
|
|
210
|
+
}
|
|
211
|
+
addChannelListener(channel, handler) {
|
|
212
|
+
const existing = this.channelHandlers.get(channel) ?? [];
|
|
213
|
+
existing.push(handler);
|
|
214
|
+
this.channelHandlers.set(channel, existing);
|
|
215
|
+
}
|
|
216
|
+
removeChannelListener(channel, handler) {
|
|
217
|
+
const existing = this.channelHandlers.get(channel) ?? [];
|
|
218
|
+
const next = existing.filter((item) => item !== handler);
|
|
219
|
+
if (next.length === 0) {
|
|
220
|
+
this.channelHandlers.delete(channel);
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
this.channelHandlers.set(channel, next);
|
|
224
|
+
}
|
|
225
|
+
startConnectionMaintenance(reason) {
|
|
226
|
+
if (this.manuallyClosed || this.maintainingConnection || this.connected) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
void this.maintainConnection(reason);
|
|
230
|
+
}
|
|
231
|
+
async maintainConnection(reason) {
|
|
232
|
+
if (this.manuallyClosed || this.maintainingConnection || this.connected) {
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
this.maintainingConnection = true;
|
|
236
|
+
let attempt = 0;
|
|
237
|
+
let delay = this.reconnectInitialDelayMs;
|
|
238
|
+
while (!this.manuallyClosed && !this.connected) {
|
|
239
|
+
attempt += 1;
|
|
240
|
+
if (attempt > 1) {
|
|
241
|
+
await this.onReconnectAttempt?.(attempt - 1, delay, reason);
|
|
242
|
+
await new Promise((resolve) => setTimeout(resolve, this.withJitter(delay)));
|
|
243
|
+
}
|
|
244
|
+
try {
|
|
245
|
+
const socket = await this.openSocket();
|
|
246
|
+
this.socket = socket;
|
|
247
|
+
await this.resubscribeAll();
|
|
248
|
+
await this.onOpen?.();
|
|
249
|
+
attempt = 0;
|
|
250
|
+
delay = this.reconnectInitialDelayMs;
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
catch {
|
|
254
|
+
if (delay >= this.reconnectMaxDelayMs && attempt >= this.reconnectWarnAfterAttempts) {
|
|
255
|
+
await this.emitReconnectWarning(attempt, reason);
|
|
256
|
+
attempt = 0;
|
|
257
|
+
}
|
|
258
|
+
delay = Math.min(Math.floor(delay * this.reconnectBackoffMultiplier), this.reconnectMaxDelayMs);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
this.maintainingConnection = false;
|
|
262
|
+
}
|
|
263
|
+
async emitReconnectWarning(attempt, reason) {
|
|
264
|
+
if (this.onReconnectWarning) {
|
|
265
|
+
await this.onReconnectWarning(attempt, reason);
|
|
157
266
|
return;
|
|
158
267
|
}
|
|
159
|
-
|
|
160
|
-
this.closed = false;
|
|
161
|
-
const socket = await this.openSocket();
|
|
162
|
-
this.socket = socket;
|
|
163
|
-
await this.resubscribeAll();
|
|
164
|
-
await this.onOpen?.();
|
|
268
|
+
console.warn(`[drishti-sdk] WebSocket still unable to connect after ${attempt} attempts (${reason}); retrying`);
|
|
165
269
|
}
|
|
166
270
|
async openSocket() {
|
|
167
|
-
const
|
|
168
|
-
const socket = this.createSocket(url);
|
|
271
|
+
const socket = this.createSocket();
|
|
169
272
|
await new Promise((resolve, reject) => {
|
|
170
273
|
const onOpen = () => {
|
|
171
274
|
cleanup();
|
|
@@ -175,12 +278,19 @@ export class DrishtiWebSocketSession {
|
|
|
175
278
|
cleanup();
|
|
176
279
|
reject(new DrishtiWebSocketError("WebSocket connection failed"));
|
|
177
280
|
};
|
|
281
|
+
const onClose = (event) => {
|
|
282
|
+
cleanup();
|
|
283
|
+
const code = "code" in event ? event.code : 0;
|
|
284
|
+
reject(new DrishtiWebSocketError(`WebSocket closed before open (code ${code})`));
|
|
285
|
+
};
|
|
178
286
|
const cleanup = () => {
|
|
179
287
|
socket.removeEventListener("open", onOpen);
|
|
180
288
|
socket.removeEventListener("error", onError);
|
|
289
|
+
socket.removeEventListener("close", onClose);
|
|
181
290
|
};
|
|
182
291
|
socket.addEventListener("open", onOpen);
|
|
183
292
|
socket.addEventListener("error", onError);
|
|
293
|
+
socket.addEventListener("close", onClose);
|
|
184
294
|
});
|
|
185
295
|
this.attachSocketHandlers(socket);
|
|
186
296
|
return socket;
|
|
@@ -194,53 +304,46 @@ export class DrishtiWebSocketSession {
|
|
|
194
304
|
this.socket = null;
|
|
195
305
|
void this.onClose?.("WebSocket closed");
|
|
196
306
|
if (this.manuallyClosed) {
|
|
197
|
-
this.closed = true;
|
|
198
|
-
this.rejectWaiters("WebSocket closed");
|
|
199
|
-
return;
|
|
200
|
-
}
|
|
201
|
-
if (!this.autoReconnect) {
|
|
202
|
-
this.closed = true;
|
|
203
307
|
this.rejectWaiters("WebSocket closed");
|
|
204
308
|
return;
|
|
205
309
|
}
|
|
206
|
-
|
|
310
|
+
this.startConnectionMaintenance("WebSocket closed");
|
|
207
311
|
});
|
|
208
312
|
}
|
|
209
|
-
createSocket(
|
|
313
|
+
createSocket() {
|
|
314
|
+
const url = buildWebSocketUrl(this.baseUrl, this.apiKey);
|
|
210
315
|
const impl = this.webSocketImpl;
|
|
211
316
|
const headers = { ...this.headers, "X-API-Key": this.apiKey };
|
|
212
317
|
try {
|
|
213
318
|
return new impl(url, undefined, { headers });
|
|
214
319
|
}
|
|
215
320
|
catch {
|
|
216
|
-
|
|
217
|
-
// Fallback to query-param auth for compatibility.
|
|
218
|
-
return new this.webSocketImpl(buildWebSocketUrl(this.baseUrl, this.apiKey));
|
|
321
|
+
return new this.webSocketImpl(url);
|
|
219
322
|
}
|
|
220
323
|
}
|
|
221
324
|
async close() {
|
|
222
325
|
this.manuallyClosed = true;
|
|
223
|
-
this.
|
|
326
|
+
this.maintainingConnection = false;
|
|
224
327
|
if (this.socket === null) {
|
|
225
|
-
this.closed = true;
|
|
226
328
|
this.rejectWaiters("WebSocket closed");
|
|
227
329
|
return;
|
|
228
330
|
}
|
|
229
|
-
this.closed = true;
|
|
230
331
|
this.socket.close();
|
|
231
332
|
this.socket = null;
|
|
232
333
|
this.rejectWaiters("WebSocket closed");
|
|
233
334
|
}
|
|
234
335
|
async subscribe(options) {
|
|
235
|
-
|
|
336
|
+
const normalized = {
|
|
236
337
|
product: options.product,
|
|
237
338
|
symbols: normalizeSymbols(options.symbols),
|
|
238
339
|
detailed: options.detailed !== false,
|
|
239
|
-
}
|
|
340
|
+
};
|
|
341
|
+
this.subscriptions.set(options.product, normalized);
|
|
342
|
+
this.startConnectionMaintenance("subscribe");
|
|
240
343
|
if (!this.connected || this.socket === null) {
|
|
241
|
-
|
|
344
|
+
return;
|
|
242
345
|
}
|
|
243
|
-
this.socket.send(subscribeMessage(
|
|
346
|
+
this.socket.send(subscribeMessage(normalized));
|
|
244
347
|
}
|
|
245
348
|
async dispatch(event) {
|
|
246
349
|
const names = [event.kind, "message"];
|
|
@@ -250,6 +353,14 @@ export class DrishtiWebSocketSession {
|
|
|
250
353
|
await handler(event);
|
|
251
354
|
}
|
|
252
355
|
}
|
|
356
|
+
if (event.kind !== "data" || !isDrishtiWebSocketProduct(event.channel)) {
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
const channelHandlers = this.channelHandlers.get(event.channel) ?? [];
|
|
360
|
+
const payload = event.data;
|
|
361
|
+
for (const handler of channelHandlers) {
|
|
362
|
+
await handler(payload);
|
|
363
|
+
}
|
|
253
364
|
}
|
|
254
365
|
async handleIncoming(raw) {
|
|
255
366
|
const event = parseWebSocketMessage(raw);
|
|
@@ -275,32 +386,6 @@ export class DrishtiWebSocketSession {
|
|
|
275
386
|
this.socket.send(subscribeMessage(options));
|
|
276
387
|
}
|
|
277
388
|
}
|
|
278
|
-
async reconnectLoop(reason) {
|
|
279
|
-
if (this.reconnecting || this.manuallyClosed) {
|
|
280
|
-
return;
|
|
281
|
-
}
|
|
282
|
-
this.reconnecting = true;
|
|
283
|
-
let attempt = 0;
|
|
284
|
-
let delay = this.reconnectInitialDelayMs;
|
|
285
|
-
while (!this.manuallyClosed) {
|
|
286
|
-
attempt += 1;
|
|
287
|
-
await this.onReconnectAttempt?.(attempt, delay, reason);
|
|
288
|
-
await new Promise((resolve) => setTimeout(resolve, this.withJitter(delay)));
|
|
289
|
-
try {
|
|
290
|
-
const socket = await this.openSocket();
|
|
291
|
-
this.socket = socket;
|
|
292
|
-
this.closed = false;
|
|
293
|
-
await this.resubscribeAll();
|
|
294
|
-
await this.onOpen?.();
|
|
295
|
-
this.reconnecting = false;
|
|
296
|
-
return;
|
|
297
|
-
}
|
|
298
|
-
catch {
|
|
299
|
-
delay = Math.min(Math.floor(delay * this.reconnectBackoffMultiplier), this.reconnectMaxDelayMs);
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
this.reconnecting = false;
|
|
303
|
-
}
|
|
304
389
|
withJitter(delayMs) {
|
|
305
390
|
if (this.reconnectJitterRatio <= 0) {
|
|
306
391
|
return delayMs;
|
|
@@ -314,7 +399,7 @@ export class DrishtiWebSocketSession {
|
|
|
314
399
|
if (queued) {
|
|
315
400
|
return queued;
|
|
316
401
|
}
|
|
317
|
-
if (this.
|
|
402
|
+
if (this.manuallyClosed) {
|
|
318
403
|
throw new DrishtiWebSocketError("WebSocket closed");
|
|
319
404
|
}
|
|
320
405
|
return await new Promise((resolve, reject) => {
|
|
@@ -322,18 +407,11 @@ export class DrishtiWebSocketSession {
|
|
|
322
407
|
});
|
|
323
408
|
}
|
|
324
409
|
async *events() {
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
}
|
|
328
|
-
while (!this.closed) {
|
|
410
|
+
this.startConnectionMaintenance("events");
|
|
411
|
+
while (!this.manuallyClosed) {
|
|
329
412
|
yield await this.nextEvent();
|
|
330
413
|
}
|
|
331
414
|
}
|
|
332
|
-
async run() {
|
|
333
|
-
for await (const _event of this.events()) {
|
|
334
|
-
// Callbacks run during handleIncoming; keep the read loop alive.
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
415
|
}
|
|
338
416
|
export async function* streamProduct(options) {
|
|
339
417
|
const session = new DrishtiWebSocketSession({
|
|
@@ -342,7 +420,6 @@ export async function* streamProduct(options) {
|
|
|
342
420
|
headers: options.headers,
|
|
343
421
|
webSocketImpl: options.webSocketImpl,
|
|
344
422
|
});
|
|
345
|
-
await session.connect();
|
|
346
423
|
try {
|
|
347
424
|
await session.subscribe({
|
|
348
425
|
product: options.product,
|
package/dist/websocket.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drishti-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "TypeScript/JavaScript client for the Drishti API (/v1)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -27,13 +27,15 @@
|
|
|
27
27
|
],
|
|
28
28
|
"scripts": {
|
|
29
29
|
"build": "tsc",
|
|
30
|
-
"prepublishOnly": "npm run build"
|
|
30
|
+
"prepublishOnly": "npm run build",
|
|
31
|
+
"ws:listen-all": "node scripts/ws-listen-all.mjs"
|
|
31
32
|
},
|
|
32
33
|
"engines": {
|
|
33
34
|
"node": ">=18"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
|
-
"typescript": "~5.6.0"
|
|
37
|
+
"typescript": "~5.6.0",
|
|
38
|
+
"ws": "^8.21.0"
|
|
37
39
|
},
|
|
38
40
|
"license": "MIT",
|
|
39
41
|
"repository": {
|