shoonya-sdk 0.4.4 → 0.4.5

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.
@@ -14,13 +14,15 @@ interface UserCred {
14
14
  imei?: string;
15
15
  vendorCode?: string;
16
16
  }
17
+ type Exchange = "NSE" | "NFO" | "CDS" | "MCX" | "BSE";
18
+ type ProductType = "C" | "M" | "I" | "B" | "H";
17
19
  interface OrderInput {
18
20
  uid?: string;
19
21
  /**
20
22
  * Same as userId
21
23
  */
22
24
  actid?: string;
23
- exch: "NSE" | "NFO" | "CDS" | "MCX" | "BSE";
25
+ exch: Exchange;
24
26
  /**
25
27
  * Unique id of contract on which order to be placed.
26
28
  *
@@ -56,7 +58,7 @@ interface OrderInput {
56
58
  * `H` : Cover Order
57
59
  * ```
58
60
  */
59
- prd: "C" | "M" | "I" | "B" | "H";
61
+ prd: ProductType;
60
62
  /**
61
63
  * Transaction Type
62
64
  * ```
@@ -85,7 +87,7 @@ interface BaseResponse<T> {
85
87
  emsg?: string;
86
88
  }
87
89
  interface SearchScripValues {
88
- exch: "NSE" | "BSE" | "NFO" | "MCX";
90
+ exch: Exchange;
89
91
  tsym: string;
90
92
  token: string;
91
93
  pp: string;
@@ -108,14 +110,17 @@ interface OptionChainValue extends SearchScripValues {
108
110
  interface OptionChainResponse extends BaseResponse<OptionChainValue> {
109
111
  }
110
112
  type PlaceOrder = {
111
- stat: "Ok" | "Not_Ok";
112
- request_time?: string;
113
- norenordno?: string;
114
- emsg?: string;
113
+ stat: "Ok";
114
+ request_time: string;
115
+ norenordno: string;
116
+ } | {
117
+ stat: "Not_Ok";
118
+ request_time: string;
119
+ emsg: string;
115
120
  };
116
121
  interface OrderBookSuccess {
117
122
  stat: "Ok";
118
- exch: "NSE" | "BSE" | "NFO" | "MCX";
123
+ exch: Exchange;
119
124
  /**
120
125
  * Trading Symbol
121
126
  */
@@ -176,9 +181,9 @@ interface GetLimitsParam {
176
181
  * `H` : Cover Order
177
182
  * ```
178
183
  */
179
- prd?: "C" | "M" | "I" | "B" | "H";
184
+ prd?: ProductType;
180
185
  seg?: "CM" | "FX" | "FO";
181
- exch?: "NSE" | "NFO" | "BSE" | "MCX" | "CDS";
186
+ exch?: Exchange;
182
187
  }
183
188
  interface GetLimitsResponseFail {
184
189
  stat: "Not_Ok";
@@ -206,7 +211,7 @@ interface GetLimitsResponseSuccess {
206
211
  interface GetSecurityInfoSuccess {
207
212
  request_time: string;
208
213
  stat: "Ok";
209
- exch: "NFO" | "NSE" | "BSE" | "MCX" | "CDS";
214
+ exch: Exchange;
210
215
  tsym: string;
211
216
  cname: string;
212
217
  symname: string;
@@ -265,6 +270,8 @@ declare const paths: {
265
270
  readonly orderBook: "OrderBook";
266
271
  readonly holding: "Holdings";
267
272
  readonly limits: "Limits";
273
+ readonly singleOrderStatus: "SingleOrdStatus";
274
+ readonly singleOrderHistory: "SingleOrdHist";
268
275
  };
269
276
  type Path = keyof typeof paths;
270
277
 
@@ -393,7 +400,7 @@ declare class Shoonya extends EventEmitter {
393
400
  midPrice: string;
394
401
  count: string;
395
402
  }): Promise<OptionChainResponse>;
396
- orderBook(prd: "C" | "M" | "I" | "B" | "H"): Promise<OrderBook>;
403
+ orderBook(prd: ProductType): Promise<OrderBook>;
397
404
  /**
398
405
  * Its a custom method which will return token number of option
399
406
  * it can be used to start websocket connection to that tokenƒ
@@ -435,7 +442,7 @@ declare class Shoonya extends EventEmitter {
435
442
  * `H` : Cover Order
436
443
  * ```
437
444
  */
438
- getAccountHolding(productName: "C" | "M" | "I" | "B" | "H"): Promise<any>;
445
+ getAccountHolding(productType: ProductType): Promise<any>;
439
446
  getAccountLimits(params?: GetLimitsParam): Promise<GetLimitsResponseSuccess | GetLimitsResponseFail>;
440
447
  getLastWSMessage(): Date;
441
448
  getWSState(): {
@@ -445,6 +452,11 @@ declare class Shoonya extends EventEmitter {
445
452
  CONNECTING: boolean;
446
453
  };
447
454
  getSubscribedTokens(): string[];
455
+ getSingleOrderStatus(params: {
456
+ orderId: number;
457
+ exchange: Exchange;
458
+ }): Promise<OrderBook>;
459
+ getSingleOrderHistory(orderId: number): Promise<OrderBook>;
448
460
  connectWS(): void;
449
461
  /**
450
462
  *
@@ -14,13 +14,15 @@ interface UserCred {
14
14
  imei?: string;
15
15
  vendorCode?: string;
16
16
  }
17
+ type Exchange = "NSE" | "NFO" | "CDS" | "MCX" | "BSE";
18
+ type ProductType = "C" | "M" | "I" | "B" | "H";
17
19
  interface OrderInput {
18
20
  uid?: string;
19
21
  /**
20
22
  * Same as userId
21
23
  */
22
24
  actid?: string;
23
- exch: "NSE" | "NFO" | "CDS" | "MCX" | "BSE";
25
+ exch: Exchange;
24
26
  /**
25
27
  * Unique id of contract on which order to be placed.
26
28
  *
@@ -56,7 +58,7 @@ interface OrderInput {
56
58
  * `H` : Cover Order
57
59
  * ```
58
60
  */
59
- prd: "C" | "M" | "I" | "B" | "H";
61
+ prd: ProductType;
60
62
  /**
61
63
  * Transaction Type
62
64
  * ```
@@ -85,7 +87,7 @@ interface BaseResponse<T> {
85
87
  emsg?: string;
86
88
  }
87
89
  interface SearchScripValues {
88
- exch: "NSE" | "BSE" | "NFO" | "MCX";
90
+ exch: Exchange;
89
91
  tsym: string;
90
92
  token: string;
91
93
  pp: string;
@@ -108,14 +110,17 @@ interface OptionChainValue extends SearchScripValues {
108
110
  interface OptionChainResponse extends BaseResponse<OptionChainValue> {
109
111
  }
110
112
  type PlaceOrder = {
111
- stat: "Ok" | "Not_Ok";
112
- request_time?: string;
113
- norenordno?: string;
114
- emsg?: string;
113
+ stat: "Ok";
114
+ request_time: string;
115
+ norenordno: string;
116
+ } | {
117
+ stat: "Not_Ok";
118
+ request_time: string;
119
+ emsg: string;
115
120
  };
116
121
  interface OrderBookSuccess {
117
122
  stat: "Ok";
118
- exch: "NSE" | "BSE" | "NFO" | "MCX";
123
+ exch: Exchange;
119
124
  /**
120
125
  * Trading Symbol
121
126
  */
@@ -176,9 +181,9 @@ interface GetLimitsParam {
176
181
  * `H` : Cover Order
177
182
  * ```
178
183
  */
179
- prd?: "C" | "M" | "I" | "B" | "H";
184
+ prd?: ProductType;
180
185
  seg?: "CM" | "FX" | "FO";
181
- exch?: "NSE" | "NFO" | "BSE" | "MCX" | "CDS";
186
+ exch?: Exchange;
182
187
  }
183
188
  interface GetLimitsResponseFail {
184
189
  stat: "Not_Ok";
@@ -206,7 +211,7 @@ interface GetLimitsResponseSuccess {
206
211
  interface GetSecurityInfoSuccess {
207
212
  request_time: string;
208
213
  stat: "Ok";
209
- exch: "NFO" | "NSE" | "BSE" | "MCX" | "CDS";
214
+ exch: Exchange;
210
215
  tsym: string;
211
216
  cname: string;
212
217
  symname: string;
@@ -265,6 +270,8 @@ declare const paths: {
265
270
  readonly orderBook: "OrderBook";
266
271
  readonly holding: "Holdings";
267
272
  readonly limits: "Limits";
273
+ readonly singleOrderStatus: "SingleOrdStatus";
274
+ readonly singleOrderHistory: "SingleOrdHist";
268
275
  };
269
276
  type Path = keyof typeof paths;
270
277
 
@@ -393,7 +400,7 @@ declare class Shoonya extends EventEmitter {
393
400
  midPrice: string;
394
401
  count: string;
395
402
  }): Promise<OptionChainResponse>;
396
- orderBook(prd: "C" | "M" | "I" | "B" | "H"): Promise<OrderBook>;
403
+ orderBook(prd: ProductType): Promise<OrderBook>;
397
404
  /**
398
405
  * Its a custom method which will return token number of option
399
406
  * it can be used to start websocket connection to that tokenƒ
@@ -435,7 +442,7 @@ declare class Shoonya extends EventEmitter {
435
442
  * `H` : Cover Order
436
443
  * ```
437
444
  */
438
- getAccountHolding(productName: "C" | "M" | "I" | "B" | "H"): Promise<any>;
445
+ getAccountHolding(productType: ProductType): Promise<any>;
439
446
  getAccountLimits(params?: GetLimitsParam): Promise<GetLimitsResponseSuccess | GetLimitsResponseFail>;
440
447
  getLastWSMessage(): Date;
441
448
  getWSState(): {
@@ -445,6 +452,11 @@ declare class Shoonya extends EventEmitter {
445
452
  CONNECTING: boolean;
446
453
  };
447
454
  getSubscribedTokens(): string[];
455
+ getSingleOrderStatus(params: {
456
+ orderId: number;
457
+ exchange: Exchange;
458
+ }): Promise<OrderBook>;
459
+ getSingleOrderHistory(orderId: number): Promise<OrderBook>;
448
460
  connectWS(): void;
449
461
  /**
450
462
  *
@@ -65,7 +65,9 @@ var paths = {
65
65
  optionChain: "GetOptionChain",
66
66
  orderBook: "OrderBook",
67
67
  holding: "Holdings",
68
- limits: "Limits"
68
+ limits: "Limits",
69
+ singleOrderStatus: "SingleOrdStatus",
70
+ singleOrderHistory: "SingleOrdHist"
69
71
  };
70
72
 
71
73
  // src/shoonya-sdk.ts
@@ -140,10 +142,6 @@ var Logger = class {
140
142
  var logger_default = Logger;
141
143
 
142
144
  // src/utils/parser.ts
143
- var exampleObject = {
144
- convertable: "57.3",
145
- unconvertable: "So"
146
- };
147
145
  function parseKeysToNumber(obj) {
148
146
  const newObj = {};
149
147
  for (const key in obj) {
@@ -156,7 +154,6 @@ function parseKeysToNumber(obj) {
156
154
  return newObj;
157
155
  }
158
156
  __name(parseKeysToNumber, "parseKeysToNumber");
159
- var parsedObj = parseKeysToNumber(exampleObject);
160
157
 
161
158
  // src/shoonya-sdk.ts
162
159
  var import_totp_generator = __toESM(require("totp-generator"));
@@ -536,11 +533,11 @@ var Shoonya = class extends import_events.EventEmitter {
536
533
  * `H` : Cover Order
537
534
  * ```
538
535
  */
539
- async getAccountHolding(productName) {
536
+ async getAccountHolding(productType) {
540
537
  const data = {
541
538
  uid: this.userId,
542
539
  actid: this.accountId,
543
- prd: productName
540
+ prd: productType
544
541
  };
545
542
  return await this.request("holding", { data, key: this.accessToken });
546
543
  }
@@ -574,6 +571,28 @@ var Shoonya = class extends import_events.EventEmitter {
574
571
  getSubscribedTokens() {
575
572
  return this.scripList;
576
573
  }
574
+ async getSingleOrderStatus(params) {
575
+ const data = {
576
+ uid: this.userId,
577
+ norenordno: params.orderId.toString(),
578
+ actid: this.accountId,
579
+ exch: params.exchange
580
+ };
581
+ return this.request("singleOrderStatus", {
582
+ data,
583
+ key: this.accessToken
584
+ });
585
+ }
586
+ async getSingleOrderHistory(orderId) {
587
+ const data = {
588
+ uid: this.userId,
589
+ norenordno: orderId.toString()
590
+ };
591
+ return this.request("singleOrderHistory", {
592
+ data,
593
+ key: this.accessToken
594
+ });
595
+ }
577
596
  // WebSocket API
578
597
  connectWS() {
579
598
  if (this.getWSState().OPEN || this.getWSState().CONNECTING) {
@@ -32,7 +32,9 @@ var paths = {
32
32
  optionChain: "GetOptionChain",
33
33
  orderBook: "OrderBook",
34
34
  holding: "Holdings",
35
- limits: "Limits"
35
+ limits: "Limits",
36
+ singleOrderStatus: "SingleOrdStatus",
37
+ singleOrderHistory: "SingleOrdHist"
36
38
  };
37
39
 
38
40
  // src/shoonya-sdk.ts
@@ -114,10 +116,6 @@ var Logger = class {
114
116
  var logger_default = Logger;
115
117
 
116
118
  // src/utils/parser.ts
117
- var exampleObject = {
118
- convertable: "57.3",
119
- unconvertable: "So"
120
- };
121
119
  function parseKeysToNumber(obj) {
122
120
  const newObj = {};
123
121
  for (const key in obj) {
@@ -130,7 +128,6 @@ function parseKeysToNumber(obj) {
130
128
  return newObj;
131
129
  }
132
130
  __name(parseKeysToNumber, "parseKeysToNumber");
133
- var parsedObj = parseKeysToNumber(exampleObject);
134
131
 
135
132
  // src/shoonya-sdk.ts
136
133
  import totp from "totp-generator";
@@ -510,11 +507,11 @@ var Shoonya = class extends EventEmitter {
510
507
  * `H` : Cover Order
511
508
  * ```
512
509
  */
513
- async getAccountHolding(productName) {
510
+ async getAccountHolding(productType) {
514
511
  const data = {
515
512
  uid: this.userId,
516
513
  actid: this.accountId,
517
- prd: productName
514
+ prd: productType
518
515
  };
519
516
  return await this.request("holding", { data, key: this.accessToken });
520
517
  }
@@ -548,6 +545,28 @@ var Shoonya = class extends EventEmitter {
548
545
  getSubscribedTokens() {
549
546
  return this.scripList;
550
547
  }
548
+ async getSingleOrderStatus(params) {
549
+ const data = {
550
+ uid: this.userId,
551
+ norenordno: params.orderId.toString(),
552
+ actid: this.accountId,
553
+ exch: params.exchange
554
+ };
555
+ return this.request("singleOrderStatus", {
556
+ data,
557
+ key: this.accessToken
558
+ });
559
+ }
560
+ async getSingleOrderHistory(orderId) {
561
+ const data = {
562
+ uid: this.userId,
563
+ norenordno: orderId.toString()
564
+ };
565
+ return this.request("singleOrderHistory", {
566
+ data,
567
+ key: this.accessToken
568
+ });
569
+ }
551
570
  // WebSocket API
552
571
  connectWS() {
553
572
  if (this.getWSState().OPEN || this.getWSState().CONNECTING) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shoonya-sdk",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "description": "Wrapper around Shoonya API",
5
5
  "main": "dist/shoonya-sdk.js",
6
6
  "module": "dist/shoonya-sdk.mjs",