mconnectb 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.
Files changed (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +351 -0
  3. package/dist/constants/index.d.ts +158 -0
  4. package/dist/constants/index.d.ts.map +1 -0
  5. package/dist/constants/index.js +161 -0
  6. package/dist/constants/index.js.map +1 -0
  7. package/dist/constants/routes.d.ts +109 -0
  8. package/dist/constants/routes.d.ts.map +1 -0
  9. package/dist/constants/routes.js +120 -0
  10. package/dist/constants/routes.js.map +1 -0
  11. package/dist/example/example.d.ts +44 -0
  12. package/dist/example/example.d.ts.map +1 -0
  13. package/dist/example/example.js +727 -0
  14. package/dist/example/example.js.map +1 -0
  15. package/dist/example/websocket-stream.d.ts +2 -0
  16. package/dist/example/websocket-stream.d.ts.map +1 -0
  17. package/dist/example/websocket-stream.js +116 -0
  18. package/dist/example/websocket-stream.js.map +1 -0
  19. package/dist/lib/connect.d.ts +306 -0
  20. package/dist/lib/connect.d.ts.map +1 -0
  21. package/dist/lib/connect.js +514 -0
  22. package/dist/lib/connect.js.map +1 -0
  23. package/dist/lib/index.d.ts +5 -0
  24. package/dist/lib/index.d.ts.map +1 -0
  25. package/dist/lib/index.js +27 -0
  26. package/dist/lib/index.js.map +1 -0
  27. package/dist/lib/response-logger.d.ts +15 -0
  28. package/dist/lib/response-logger.d.ts.map +1 -0
  29. package/dist/lib/response-logger.js +73 -0
  30. package/dist/lib/response-logger.js.map +1 -0
  31. package/dist/lib/ticker.d.ts +43 -0
  32. package/dist/lib/ticker.d.ts.map +1 -0
  33. package/dist/lib/ticker.js +362 -0
  34. package/dist/lib/ticker.js.map +1 -0
  35. package/dist/lib/utils.d.ts +36 -0
  36. package/dist/lib/utils.d.ts.map +1 -0
  37. package/dist/lib/utils.js +75 -0
  38. package/dist/lib/utils.js.map +1 -0
  39. package/dist/test/test-websocket.d.ts +2 -0
  40. package/dist/test/test-websocket.d.ts.map +1 -0
  41. package/dist/test/test-websocket.js +116 -0
  42. package/dist/test/test-websocket.js.map +1 -0
  43. package/dist/test/test.d.ts +2 -0
  44. package/dist/test/test.d.ts.map +1 -0
  45. package/dist/test/test.js +892 -0
  46. package/dist/test/test.js.map +1 -0
  47. package/dist/types/config.d.ts +138 -0
  48. package/dist/types/config.d.ts.map +1 -0
  49. package/dist/types/config.js +12 -0
  50. package/dist/types/config.js.map +1 -0
  51. package/dist/types/index.d.ts +631 -0
  52. package/dist/types/index.d.ts.map +1 -0
  53. package/dist/types/index.js +12 -0
  54. package/dist/types/index.js.map +1 -0
  55. package/package.json +91 -0
@@ -0,0 +1,43 @@
1
+ import { EventEmitter } from 'events';
2
+ export declare class MTicker extends EventEmitter {
3
+ private apiKey;
4
+ private accessToken;
5
+ private root;
6
+ private debug;
7
+ private reconnect;
8
+ private static readonly EXCHANGE_TYPE;
9
+ static readonly MODE_LTP = 1;
10
+ static readonly MODE_QUOTE = 2;
11
+ static readonly MODE_SNAP = 3;
12
+ private static readonly MESSAGE_SUBSCRIBE;
13
+ private static readonly MESSAGE_UNSUBSCRIBE;
14
+ private ws;
15
+ private socketUrl;
16
+ private subscribedTokens;
17
+ private reconnectAttempts;
18
+ private maxReconnectAttempts;
19
+ private reconnectDelay;
20
+ private pingInterval;
21
+ private isFirstConnect;
22
+ private defaultMode;
23
+ constructor(apiKey: string, accessToken: string, root: string, debug?: boolean, reconnect?: boolean, maxReconnectTries?: number, reconnectMaxDelay?: number, defaultMode?: number);
24
+ connect(): void;
25
+ private onOpen;
26
+ private onMessage;
27
+ private onClose;
28
+ private onError;
29
+ private startPing;
30
+ private stopPing;
31
+ sendLoginAfterConnect(): void;
32
+ subscribe(exchangeType: string, instrumentTokens: string[], mode?: number): void;
33
+ unsubscribe(exchangeType: string, instrumentTokens: string[]): void;
34
+ private resubscribe;
35
+ private parseTextMessage;
36
+ private convertFromUnixTimestamp;
37
+ private convertPrices;
38
+ private parseBinary;
39
+ private readUInt64LE;
40
+ close(code?: number, reason?: string): void;
41
+ isConnected(): boolean;
42
+ }
43
+ //# sourceMappingURL=ticker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticker.d.ts","sourceRoot":"","sources":["../../lib/ticker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAqDtC,qBAAa,OAAQ,SAAQ,YAAY;IA2BrC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;IA9BnB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAMnC;IAEF,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK;IAC7B,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK;IAC/B,MAAM,CAAC,QAAQ,CAAC,SAAS,KAAK;IAE9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAK;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAK;IAEhD,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,WAAW,CAAS;gBAGlB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,KAAK,UAAQ,EACb,SAAS,UAAO,EACxB,iBAAiB,SAAK,EACtB,iBAAiB,SAAQ,EACzB,WAAW,SAAmB;IAShC,OAAO,IAAI,IAAI;IASf,OAAO,CAAC,MAAM;IAad,OAAO,CAAC,SAAS;IAuBjB,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,QAAQ;IAOhB,qBAAqB,IAAI,IAAI;IAM7B,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAsBhF,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,IAAI;IAqBnE,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,aAAa;IA+DrB,OAAO,CAAC,WAAW;IA+FnB,OAAO,CAAC,YAAY;IAQpB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ3C,WAAW,IAAI,OAAO;CAGvB"}
@@ -0,0 +1,362 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MTicker = void 0;
7
+ const ws_1 = __importDefault(require("ws"));
8
+ const events_1 = require("events");
9
+ class MTicker extends events_1.EventEmitter {
10
+ constructor(apiKey, accessToken, root, debug = false, reconnect = true, maxReconnectTries = 50, reconnectMaxDelay = 60000, defaultMode = MTicker.MODE_LTP) {
11
+ super();
12
+ this.apiKey = apiKey;
13
+ this.accessToken = accessToken;
14
+ this.root = root;
15
+ this.debug = debug;
16
+ this.reconnect = reconnect;
17
+ this.ws = null;
18
+ this.subscribedTokens = {};
19
+ this.reconnectAttempts = 0;
20
+ this.pingInterval = null;
21
+ this.isFirstConnect = true;
22
+ this.socketUrl = `${this.root}?ACCESS_TOKEN=${this.accessToken}&API_KEY=${this.apiKey}`;
23
+ this.maxReconnectAttempts = maxReconnectTries;
24
+ this.reconnectDelay = reconnectMaxDelay;
25
+ this.defaultMode = defaultMode;
26
+ }
27
+ connect() {
28
+ this.ws = new ws_1.default(this.socketUrl);
29
+ this.ws.on('open', () => this.onOpen());
30
+ this.ws.on('message', (data) => this.onMessage(data));
31
+ this.ws.on('close', (code, reason) => this.onClose(code, reason.toString()));
32
+ this.ws.on('error', (error) => this.onError(error));
33
+ }
34
+ onOpen() {
35
+ this.reconnectAttempts = 0;
36
+ this.startPing();
37
+ if (!this.isFirstConnect) {
38
+ this.resubscribe();
39
+ }
40
+ this.isFirstConnect = false;
41
+ this.emit('connect');
42
+ if (this.debug)
43
+ console.log('WebSocket connected');
44
+ }
45
+ onMessage(data) {
46
+ if (data.length < 2)
47
+ return;
48
+ try {
49
+ // Try to parse as text first
50
+ const textData = data.toString('utf8');
51
+ if (textData.startsWith('{')) {
52
+ const jsonData = JSON.parse(textData);
53
+ this.parseTextMessage(jsonData);
54
+ return;
55
+ }
56
+ }
57
+ catch {
58
+ // If not JSON, treat as binary
59
+ }
60
+ // Parse binary data
61
+ if (data.length > 4) {
62
+ const parsedData = this.parseBinary(data);
63
+ const convertedData = this.convertPrices(parsedData);
64
+ this.emit('ticks', convertedData);
65
+ }
66
+ }
67
+ onClose(code, reason) {
68
+ this.stopPing();
69
+ this.emit('close', code, reason);
70
+ if (this.reconnect && this.reconnectAttempts < this.maxReconnectAttempts) {
71
+ this.reconnectAttempts++;
72
+ setTimeout(() => {
73
+ if (this.debug)
74
+ console.log(`Reconnecting... Attempt ${this.reconnectAttempts}`);
75
+ this.connect();
76
+ }, this.reconnectDelay);
77
+ }
78
+ }
79
+ onError(error) {
80
+ this.emit('error', error);
81
+ if (this.debug)
82
+ console.error('WebSocket error:', error);
83
+ }
84
+ startPing() {
85
+ this.pingInterval = setInterval(() => {
86
+ if (this.ws?.readyState === ws_1.default.OPEN) {
87
+ this.ws.ping();
88
+ }
89
+ }, 2500);
90
+ }
91
+ stopPing() {
92
+ if (this.pingInterval) {
93
+ clearInterval(this.pingInterval);
94
+ this.pingInterval = null;
95
+ }
96
+ }
97
+ sendLoginAfterConnect() {
98
+ if (this.ws?.readyState === ws_1.default.OPEN) {
99
+ this.ws.send(`LOGIN:${this.accessToken}`);
100
+ }
101
+ }
102
+ subscribe(exchangeType, instrumentTokens, mode) {
103
+ const subscriptionMode = mode ?? this.defaultMode;
104
+ const packet = {
105
+ correlationID: '',
106
+ action: MTicker.MESSAGE_SUBSCRIBE,
107
+ params: {
108
+ mode: subscriptionMode,
109
+ tokenList: [{
110
+ exchangeType: MTicker.EXCHANGE_TYPE[exchangeType.toLowerCase()] || 1,
111
+ tokens: instrumentTokens
112
+ }]
113
+ }
114
+ };
115
+ if (this.ws?.readyState === ws_1.default.OPEN) {
116
+ this.ws.send(JSON.stringify(packet));
117
+ instrumentTokens.forEach(token => {
118
+ this.subscribedTokens[token] = subscriptionMode;
119
+ });
120
+ }
121
+ }
122
+ unsubscribe(exchangeType, instrumentTokens) {
123
+ const packet = {
124
+ correlationID: '',
125
+ action: MTicker.MESSAGE_UNSUBSCRIBE,
126
+ params: {
127
+ mode: this.defaultMode,
128
+ tokenList: [{
129
+ exchangeType: MTicker.EXCHANGE_TYPE[exchangeType.toLowerCase()] || 1,
130
+ tokens: instrumentTokens
131
+ }]
132
+ }
133
+ };
134
+ if (this.ws?.readyState === ws_1.default.OPEN) {
135
+ this.ws.send(JSON.stringify(packet));
136
+ instrumentTokens.forEach(token => {
137
+ delete this.subscribedTokens[token];
138
+ });
139
+ }
140
+ }
141
+ resubscribe() {
142
+ const modes = {};
143
+ Object.keys(this.subscribedTokens).forEach(token => {
144
+ const mode = this.subscribedTokens[token];
145
+ if (!modes[mode])
146
+ modes[mode] = [];
147
+ modes[mode].push(token);
148
+ });
149
+ Object.keys(modes).forEach(mode => {
150
+ if (this.debug)
151
+ console.log(`Resubscribe mode: ${mode} - ${modes[+mode]}`);
152
+ // Note: This would need the exchange type to be stored with tokens for proper resubscription
153
+ });
154
+ }
155
+ parseTextMessage(data) {
156
+ if (data.order_status === 'order' && data.orderData) {
157
+ this.emit('order_update', data.orderData);
158
+ }
159
+ if (data.order_status === 'trade' && data.orderData) {
160
+ this.emit('trade_update', data.orderData);
161
+ }
162
+ if (data.type === 'error') {
163
+ this.emit('error', new Error(data.data));
164
+ }
165
+ }
166
+ convertFromUnixTimestamp(timestamp, year = 1980) {
167
+ // Convert from custom epoch (1980) as per Python implementation
168
+ const origin = new Date(Date.UTC(year, 0, 1, 0, 0, 0, 0));
169
+ if (timestamp !== 0) {
170
+ return new Date(origin.getTime() + timestamp * 1000);
171
+ }
172
+ return origin;
173
+ }
174
+ convertPrices(tickData) {
175
+ return tickData.map(tick => {
176
+ // Convert prices
177
+ const ltp = tick.ltp / 100;
178
+ const atp = tick.avg_traded_price ? tick.avg_traded_price / 100 : undefined;
179
+ const open = tick.ohlc?.open ? tick.ohlc.open / 100 : undefined;
180
+ const high = tick.ohlc?.high ? tick.ohlc.high / 100 : undefined;
181
+ const low = tick.ohlc?.low ? tick.ohlc.low / 100 : undefined;
182
+ const close = tick.ohlc?.close ? tick.ohlc.close / 100 : undefined;
183
+ // Convert depth to flat array format (bid first, then ask)
184
+ const depthArray = [];
185
+ if (tick.depth) {
186
+ tick.depth.bid.forEach(item => {
187
+ depthArray.push({
188
+ BuySellFlag: item.buy_or_sell,
189
+ Quantity: item.quantity,
190
+ Price: item.price > 0 ? item.price / 100 : item.price,
191
+ NumberOfOrders: item.orders
192
+ });
193
+ });
194
+ tick.depth.ask.forEach(item => {
195
+ depthArray.push({
196
+ BuySellFlag: item.buy_or_sell,
197
+ Quantity: item.quantity,
198
+ Price: item.price > 0 ? item.price / 100 : item.price,
199
+ NumberOfOrders: item.orders
200
+ });
201
+ });
202
+ }
203
+ // Build output in exact sequence as expected
204
+ const output = {};
205
+ output.SubscriptionMode = tick.subscription_mode;
206
+ output.ExchangeType = tick.exchange_type;
207
+ output.Token = parseInt(tick.instrument_token);
208
+ output.SeqNumber = tick.sequence_no;
209
+ output.ExchangeTimestamp = tick.sequence_no;
210
+ output.LTP = ltp;
211
+ if (tick.last_traded_qty !== undefined)
212
+ output.LTQ = tick.last_traded_qty;
213
+ if (atp !== undefined)
214
+ output.ATP = atp;
215
+ if (tick.vol_traded_today !== undefined)
216
+ output.VTT = tick.vol_traded_today;
217
+ if (tick.tot_buy_qty !== undefined)
218
+ output.TotalBuyQty = tick.tot_buy_qty;
219
+ if (tick.tot_sell_qty !== undefined)
220
+ output.TotalSellQty = tick.tot_sell_qty;
221
+ if (open !== undefined)
222
+ output.Open = open;
223
+ if (high !== undefined)
224
+ output.High = high;
225
+ if (low !== undefined)
226
+ output.Low = low;
227
+ if (close !== undefined)
228
+ output.Close = close;
229
+ if (tick.last_traded_timestamp)
230
+ output.LTT = Math.floor(new Date(tick.last_traded_timestamp).getTime() / 1000);
231
+ if (tick.open_interest !== undefined)
232
+ output.OI = tick.open_interest;
233
+ if (tick.open_interest_percent !== undefined)
234
+ output.OIChange = tick.open_interest_percent;
235
+ if (depthArray.length > 0)
236
+ output.Depth = depthArray;
237
+ if (tick.upper_circuit_lmt !== undefined)
238
+ output.UpperCircuitLimit = tick.upper_circuit_lmt > 0 ? tick.upper_circuit_lmt / 100 : tick.upper_circuit_lmt;
239
+ if (tick.lower_circuit_lmt !== undefined)
240
+ output.LowerCircuitLimit = tick.lower_circuit_lmt > 0 ? tick.lower_circuit_lmt / 100 : tick.lower_circuit_lmt;
241
+ if (tick['52_wk_high'] !== undefined)
242
+ output.FiftyTwoWeekHigh = tick['52_wk_high'] > 0 ? tick['52_wk_high'] / 100 : tick['52_wk_high'];
243
+ if (tick['52_wk_low'] !== undefined)
244
+ output.FiftyTwoWeekLow = tick['52_wk_low'] > 0 ? tick['52_wk_low'] / 100 : tick['52_wk_low'];
245
+ return output;
246
+ });
247
+ }
248
+ parseBinary(buffer) {
249
+ try {
250
+ const data = [];
251
+ const subscriptionMode = buffer.readUInt8(0);
252
+ const exchangeType = buffer.readUInt8(1);
253
+ const instrumentToken = buffer.subarray(2, 27).toString('utf8').replace(/\0/g, ' ').trim();
254
+ const sequenceNo = this.readUInt64LE(buffer, 27);
255
+ const exTimestamp = this.convertFromUnixTimestamp(this.readUInt64LE(buffer, 35));
256
+ const ltp = this.readUInt64LE(buffer, 43);
257
+ const tickData = {
258
+ mode: this.defaultMode,
259
+ subscription_mode: subscriptionMode,
260
+ exchange_type: exchangeType,
261
+ instrument_token: instrumentToken,
262
+ sequence_no: sequenceNo,
263
+ ex_timestamp: exTimestamp.toISOString(),
264
+ ltp: ltp
265
+ };
266
+ // LTP Mode (51 bytes)
267
+ if (buffer.length === 51) {
268
+ data.push(tickData);
269
+ }
270
+ // Quote Mode (123 bytes) or Snap Mode (379 bytes)
271
+ else if (buffer.length === 123 || buffer.length === 379) {
272
+ tickData.mode = buffer.length === 123 ? MTicker.MODE_QUOTE : MTicker.MODE_SNAP;
273
+ tickData.last_traded_qty = this.readUInt64LE(buffer, 51);
274
+ tickData.avg_traded_price = this.readUInt64LE(buffer, 59);
275
+ tickData.vol_traded_today = this.readUInt64LE(buffer, 67);
276
+ tickData.tot_buy_qty = buffer.readDoubleLE(75);
277
+ tickData.tot_sell_qty = buffer.readDoubleLE(83);
278
+ // Read OHLC data - these should be dynamic values from server
279
+ const openPrice = this.readUInt64LE(buffer, 91);
280
+ const highPrice = this.readUInt64LE(buffer, 99);
281
+ const lowPrice = this.readUInt64LE(buffer, 107);
282
+ const closePrice = this.readUInt64LE(buffer, 115);
283
+ tickData.ohlc = {
284
+ open: openPrice,
285
+ high: highPrice,
286
+ low: lowPrice,
287
+ close: closePrice
288
+ };
289
+ if (buffer.length === 379) {
290
+ const timestamp = this.convertFromUnixTimestamp(this.readUInt64LE(buffer, 123));
291
+ tickData.last_traded_timestamp = timestamp.toISOString();
292
+ tickData.open_interest = this.readUInt64LE(buffer, 131);
293
+ tickData.open_interest_percent = buffer.readDoubleLE(139);
294
+ // Parse market depth data (200 bytes from 147 to 347)
295
+ const depth = { bid: [], ask: [] };
296
+ for (let i = 0, p = 147; i < 10 && p < 347; i++, p += 20) {
297
+ const buySellFlag = buffer.readInt16LE(p);
298
+ const quantity = this.readUInt64LE(buffer, p + 2);
299
+ const price = this.readUInt64LE(buffer, p + 10);
300
+ const orders = buffer.readInt16LE(p + 18);
301
+ const depthItem = {
302
+ buy_or_sell: buySellFlag,
303
+ quantity: quantity,
304
+ price: price,
305
+ orders: orders
306
+ };
307
+ if (i < 5) {
308
+ depth.bid.push(depthItem);
309
+ }
310
+ else {
311
+ depth.ask.push(depthItem);
312
+ }
313
+ }
314
+ tickData.depth = depth;
315
+ // Read circuit limits and 52-week data
316
+ tickData.upper_circuit_lmt = this.readUInt64LE(buffer, 347);
317
+ tickData.lower_circuit_lmt = this.readUInt64LE(buffer, 355);
318
+ tickData['52_wk_high'] = this.readUInt64LE(buffer, 363);
319
+ tickData['52_wk_low'] = this.readUInt64LE(buffer, 371);
320
+ }
321
+ data.push(tickData);
322
+ }
323
+ return data;
324
+ }
325
+ catch (error) {
326
+ if (this.debug)
327
+ console.error('Error parsing binary data:', error);
328
+ throw error;
329
+ }
330
+ }
331
+ readUInt64LE(buffer, offset) {
332
+ // Read 8 bytes as little-endian and convert to number
333
+ // Using system byte order as per Python implementation
334
+ const low = buffer.readUInt32LE(offset);
335
+ const high = buffer.readUInt32LE(offset + 4);
336
+ return high * 0x100000000 + low;
337
+ }
338
+ close(code, reason) {
339
+ this.reconnect = false;
340
+ this.stopPing();
341
+ if (this.ws) {
342
+ this.ws.close(code, reason);
343
+ }
344
+ }
345
+ isConnected() {
346
+ return this.ws?.readyState === ws_1.default.OPEN;
347
+ }
348
+ }
349
+ exports.MTicker = MTicker;
350
+ MTicker.EXCHANGE_TYPE = {
351
+ nsecm: 1,
352
+ nsefo: 2,
353
+ bsecm: 3,
354
+ bsefo: 4,
355
+ nsecd: 13
356
+ };
357
+ MTicker.MODE_LTP = 1;
358
+ MTicker.MODE_QUOTE = 2;
359
+ MTicker.MODE_SNAP = 3;
360
+ MTicker.MESSAGE_SUBSCRIBE = 1;
361
+ MTicker.MESSAGE_UNSUBSCRIBE = 0;
362
+ //# sourceMappingURL=ticker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticker.js","sourceRoot":"","sources":["../../lib/ticker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Utility functions for TypeB SDK
3
+ */
4
+ import { AxiosInstance } from 'axios';
5
+ import { HttpClientConfig } from '../types/config';
6
+ /**
7
+ * Replace route parameters in URL templates
8
+ * @param route - Route template with placeholders
9
+ * @param params - Object with parameter values
10
+ * @returns Formatted URL
11
+ */
12
+ export declare function replaceRouteParams(route: string, params: Record<string, string | number>): string;
13
+ /**
14
+ * Create a configured HTTP client instance
15
+ * @param config - HTTP client configuration
16
+ * @returns Configured Axios instance
17
+ */
18
+ export declare function createHttpClient(config: HttpClientConfig): AxiosInstance;
19
+ /**
20
+ * Utility class for WebSocket data processing
21
+ */
22
+ export declare class Utils {
23
+ /**
24
+ * Get decimal divisor based on instrument token
25
+ * @param instrumentToken - The instrument token
26
+ * @returns Decimal divisor
27
+ */
28
+ static getDecimalDivisor(instrumentToken: number): number;
29
+ /**
30
+ * Convert Unix timestamp to DateTime
31
+ * @param unixTimestamp - Unix timestamp
32
+ * @returns Date object
33
+ */
34
+ static unixToDateTime(unixTimestamp: number): Date;
35
+ }
36
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAc,EAAE,aAAa,EAAsB,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAMjG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,CA6BxE;AAED;;GAEG;AACH,qBAAa,KAAK;IACd;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM;IAKzD;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;CAGrD"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /**
3
+ * Utility functions for TypeB SDK
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.Utils = void 0;
10
+ exports.replaceRouteParams = replaceRouteParams;
11
+ exports.createHttpClient = createHttpClient;
12
+ const axios_1 = __importDefault(require("axios"));
13
+ /**
14
+ * Replace route parameters in URL templates
15
+ * @param route - Route template with placeholders
16
+ * @param params - Object with parameter values
17
+ * @returns Formatted URL
18
+ */
19
+ function replaceRouteParams(route, params) {
20
+ let formattedRoute = route;
21
+ for (const [key, value] of Object.entries(params)) {
22
+ formattedRoute = formattedRoute.replace(`{${key}}`, String(value));
23
+ }
24
+ return formattedRoute;
25
+ }
26
+ /**
27
+ * Create a configured HTTP client instance
28
+ * @param config - HTTP client configuration
29
+ * @returns Configured Axios instance
30
+ */
31
+ function createHttpClient(config) {
32
+ const client = axios_1.default.create({
33
+ baseURL: config.baseURL,
34
+ timeout: config.timeout,
35
+ headers: {
36
+ 'Content-Type': 'application/json',
37
+ 'Accept': 'application/json',
38
+ ...config.headers,
39
+ },
40
+ });
41
+ // Add request interceptor for error handling
42
+ client.interceptors.request.use((request) => request, (error) => {
43
+ console.error('Request error:', error);
44
+ return Promise.reject(error);
45
+ });
46
+ client.interceptors.response.use((response) => response, (error) => {
47
+ console.error('Response error:', error);
48
+ return Promise.reject(error);
49
+ });
50
+ return client;
51
+ }
52
+ /**
53
+ * Utility class for WebSocket data processing
54
+ */
55
+ class Utils {
56
+ /**
57
+ * Get decimal divisor based on instrument token
58
+ * @param instrumentToken - The instrument token
59
+ * @returns Decimal divisor
60
+ */
61
+ static getDecimalDivisor(instrumentToken) {
62
+ // Default divisor logic - can be customized based on TypeB protocol
63
+ return 100;
64
+ }
65
+ /**
66
+ * Convert Unix timestamp to DateTime
67
+ * @param unixTimestamp - Unix timestamp
68
+ * @returns Date object
69
+ */
70
+ static unixToDateTime(unixTimestamp) {
71
+ return new Date(unixTimestamp * 1000);
72
+ }
73
+ }
74
+ exports.Utils = Utils;
75
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AAWH,gDAMC;AAOD,4CA6BC;AAnDD,kDAAiE;AAGjE;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,KAAa,EAAE,MAAuC;IACrF,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,cAAc,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,MAAwB;IACrD,MAAM,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE;YACL,cAAc,EAAE,kBAAkB;YAClC,QAAQ,EAAE,kBAAkB;YAC5B,GAAG,MAAM,CAAC,OAAO;SACpB;KACJ,CAAC,CAAC;IAEH,6CAA6C;IAC7C,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAC3B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EACpB,CAAC,KAAK,EAAE,EAAE;QACN,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAC5B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACtB,CAAC,KAAK,EAAE,EAAE;QACN,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CACJ,CAAC;IAEF,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAa,KAAK;IACd;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,eAAuB;QAC5C,oEAAoE;QACpE,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,aAAqB;QACvC,OAAO,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAC1C,CAAC;CACJ;AAnBD,sBAmBC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=test-websocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-websocket.d.ts","sourceRoot":"","sources":["../../test/test-websocket.ts"],"names":[],"mappings":""}