nse-bse-api 0.1.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 (154) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +194 -0
  3. package/dist/bse/BSE.d.ts +141 -0
  4. package/dist/bse/BSE.d.ts.map +1 -0
  5. package/dist/bse/BSE.js +453 -0
  6. package/dist/bse/BSE.js.map +1 -0
  7. package/dist/bse/constants/index.d.ts +341 -0
  8. package/dist/bse/constants/index.d.ts.map +1 -0
  9. package/dist/bse/constants/index.js +341 -0
  10. package/dist/bse/constants/index.js.map +1 -0
  11. package/dist/bse/index.d.ts +12 -0
  12. package/dist/bse/index.d.ts.map +1 -0
  13. package/dist/bse/index.js +16 -0
  14. package/dist/bse/index.js.map +1 -0
  15. package/dist/bse/types/index.d.ts +120 -0
  16. package/dist/bse/types/index.d.ts.map +1 -0
  17. package/dist/bse/types/index.js +20 -0
  18. package/dist/bse/types/index.js.map +1 -0
  19. package/dist/bse/utils/SymbolParser.d.ts +16 -0
  20. package/dist/bse/utils/SymbolParser.d.ts.map +1 -0
  21. package/dist/bse/utils/SymbolParser.js +58 -0
  22. package/dist/bse/utils/SymbolParser.js.map +1 -0
  23. package/dist/bse/utils/helpers.d.ts +21 -0
  24. package/dist/bse/utils/helpers.d.ts.map +1 -0
  25. package/dist/bse/utils/helpers.js +77 -0
  26. package/dist/bse/utils/helpers.js.map +1 -0
  27. package/dist/bse/utils/throttle.d.ts +4 -0
  28. package/dist/bse/utils/throttle.d.ts.map +1 -0
  29. package/dist/bse/utils/throttle.js +38 -0
  30. package/dist/bse/utils/throttle.js.map +1 -0
  31. package/dist/index.d.ts +12 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +15 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/nse/api/corporate-api.d.ts +30 -0
  36. package/dist/nse/api/corporate-api.d.ts.map +1 -0
  37. package/dist/nse/api/corporate-api.js +90 -0
  38. package/dist/nse/api/corporate-api.js.map +1 -0
  39. package/dist/nse/api/download-api.d.ts +42 -0
  40. package/dist/nse/api/download-api.d.ts.map +1 -0
  41. package/dist/nse/api/download-api.js +144 -0
  42. package/dist/nse/api/download-api.js.map +1 -0
  43. package/dist/nse/api/equity-api.d.ts +50 -0
  44. package/dist/nse/api/equity-api.d.ts.map +1 -0
  45. package/dist/nse/api/equity-api.js +103 -0
  46. package/dist/nse/api/equity-api.js.map +1 -0
  47. package/dist/nse/api/historical-api.d.ts +34 -0
  48. package/dist/nse/api/historical-api.d.ts.map +1 -0
  49. package/dist/nse/api/historical-api.js +126 -0
  50. package/dist/nse/api/historical-api.js.map +1 -0
  51. package/dist/nse/api/index.d.ts +11 -0
  52. package/dist/nse/api/index.d.ts.map +1 -0
  53. package/dist/nse/api/index.js +11 -0
  54. package/dist/nse/api/index.js.map +1 -0
  55. package/dist/nse/api/ipo-api.d.ts +26 -0
  56. package/dist/nse/api/ipo-api.d.ts.map +1 -0
  57. package/dist/nse/api/ipo-api.js +46 -0
  58. package/dist/nse/api/ipo-api.js.map +1 -0
  59. package/dist/nse/api/market-api.d.ts +34 -0
  60. package/dist/nse/api/market-api.d.ts.map +1 -0
  61. package/dist/nse/api/market-api.js +58 -0
  62. package/dist/nse/api/market-api.js.map +1 -0
  63. package/dist/nse/api/options-api.d.ts +35 -0
  64. package/dist/nse/api/options-api.d.ts.map +1 -0
  65. package/dist/nse/api/options-api.js +207 -0
  66. package/dist/nse/api/options-api.js.map +1 -0
  67. package/dist/nse/constants/index.d.ts +29 -0
  68. package/dist/nse/constants/index.d.ts.map +1 -0
  69. package/dist/nse/constants/index.js +43 -0
  70. package/dist/nse/constants/index.js.map +1 -0
  71. package/dist/nse/http/http-client.d.ts +38 -0
  72. package/dist/nse/http/http-client.d.ts.map +1 -0
  73. package/dist/nse/http/http-client.js +164 -0
  74. package/dist/nse/http/http-client.js.map +1 -0
  75. package/dist/nse/index.d.ts +19 -0
  76. package/dist/nse/index.d.ts.map +1 -0
  77. package/dist/nse/index.js +24 -0
  78. package/dist/nse/index.js.map +1 -0
  79. package/dist/nse/nse/nse-client.d.ts +85 -0
  80. package/dist/nse/nse/nse-client.d.ts.map +1 -0
  81. package/dist/nse/nse/nse-client.js +105 -0
  82. package/dist/nse/nse/nse-client.js.map +1 -0
  83. package/dist/nse/types/index.d.ts +123 -0
  84. package/dist/nse/types/index.d.ts.map +1 -0
  85. package/dist/nse/types/index.js +5 -0
  86. package/dist/nse/types/index.js.map +1 -0
  87. package/dist/nse/utils/date-formatter.d.ts +36 -0
  88. package/dist/nse/utils/date-formatter.d.ts.map +1 -0
  89. package/dist/nse/utils/date-formatter.js +70 -0
  90. package/dist/nse/utils/date-formatter.js.map +1 -0
  91. package/dist/nse/utils/file-operations.d.ts +16 -0
  92. package/dist/nse/utils/file-operations.d.ts.map +1 -0
  93. package/dist/nse/utils/file-operations.js +74 -0
  94. package/dist/nse/utils/file-operations.js.map +1 -0
  95. package/dist/nse/utils/index.d.ts +6 -0
  96. package/dist/nse/utils/index.d.ts.map +1 -0
  97. package/dist/nse/utils/index.js +6 -0
  98. package/dist/nse/utils/index.js.map +1 -0
  99. package/dist/types/index.d.ts +17 -0
  100. package/dist/types/index.d.ts.map +1 -0
  101. package/dist/types/index.js +11 -0
  102. package/dist/types/index.js.map +1 -0
  103. package/dist-cjs/bse/BSE.js +493 -0
  104. package/dist-cjs/bse/BSE.js.map +1 -0
  105. package/dist-cjs/bse/constants/index.js +352 -0
  106. package/dist-cjs/bse/constants/index.js.map +1 -0
  107. package/dist-cjs/bse/index.js +36 -0
  108. package/dist-cjs/bse/index.js.map +1 -0
  109. package/dist-cjs/bse/types/index.js +26 -0
  110. package/dist-cjs/bse/types/index.js.map +1 -0
  111. package/dist-cjs/bse/utils/SymbolParser.js +62 -0
  112. package/dist-cjs/bse/utils/SymbolParser.js.map +1 -0
  113. package/dist-cjs/bse/utils/helpers.js +117 -0
  114. package/dist-cjs/bse/utils/helpers.js.map +1 -0
  115. package/dist-cjs/bse/utils/throttle.js +42 -0
  116. package/dist-cjs/bse/utils/throttle.js.map +1 -0
  117. package/dist-cjs/index.js +54 -0
  118. package/dist-cjs/index.js.map +1 -0
  119. package/dist-cjs/nse/api/corporate-api.js +94 -0
  120. package/dist-cjs/nse/api/corporate-api.js.map +1 -0
  121. package/dist-cjs/nse/api/download-api.js +151 -0
  122. package/dist-cjs/nse/api/download-api.js.map +1 -0
  123. package/dist-cjs/nse/api/equity-api.js +107 -0
  124. package/dist-cjs/nse/api/equity-api.js.map +1 -0
  125. package/dist-cjs/nse/api/historical-api.js +130 -0
  126. package/dist-cjs/nse/api/historical-api.js.map +1 -0
  127. package/dist-cjs/nse/api/index.js +21 -0
  128. package/dist-cjs/nse/api/index.js.map +1 -0
  129. package/dist-cjs/nse/api/ipo-api.js +50 -0
  130. package/dist-cjs/nse/api/ipo-api.js.map +1 -0
  131. package/dist-cjs/nse/api/market-api.js +62 -0
  132. package/dist-cjs/nse/api/market-api.js.map +1 -0
  133. package/dist-cjs/nse/api/options-api.js +211 -0
  134. package/dist-cjs/nse/api/options-api.js.map +1 -0
  135. package/dist-cjs/nse/constants/index.js +46 -0
  136. package/dist-cjs/nse/constants/index.js.map +1 -0
  137. package/dist-cjs/nse/http/http-client.js +171 -0
  138. package/dist-cjs/nse/http/http-client.js.map +1 -0
  139. package/dist-cjs/nse/index.js +50 -0
  140. package/dist-cjs/nse/index.js.map +1 -0
  141. package/dist-cjs/nse/nse/nse-client.js +109 -0
  142. package/dist-cjs/nse/nse/nse-client.js.map +1 -0
  143. package/dist-cjs/nse/types/index.js +6 -0
  144. package/dist-cjs/nse/types/index.js.map +1 -0
  145. package/dist-cjs/nse/utils/date-formatter.js +80 -0
  146. package/dist-cjs/nse/utils/date-formatter.js.map +1 -0
  147. package/dist-cjs/nse/utils/file-operations.js +82 -0
  148. package/dist-cjs/nse/utils/file-operations.js.map +1 -0
  149. package/dist-cjs/nse/utils/index.js +22 -0
  150. package/dist-cjs/nse/utils/index.js.map +1 -0
  151. package/dist-cjs/package.json +3 -0
  152. package/dist-cjs/types/index.js +47 -0
  153. package/dist-cjs/types/index.js.map +1 -0
  154. package/package.json +99 -0
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /**
3
+ * IPO-related API methods for NSE
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.IpoApi = void 0;
7
+ const index_js_1 = require("../constants/index.js");
8
+ const date_formatter_js_1 = require("../utils/date-formatter.js");
9
+ class IpoApi {
10
+ httpClient;
11
+ constructor(httpClient) {
12
+ this.httpClient = httpClient;
13
+ }
14
+ /**
15
+ * List current IPOs
16
+ */
17
+ async listCurrentIPO() {
18
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/ipo-current-issue`);
19
+ }
20
+ /**
21
+ * List upcoming IPOs
22
+ */
23
+ async listUpcomingIPO() {
24
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/all-upcoming-issues?category=ipo`);
25
+ }
26
+ /**
27
+ * Get IPO details
28
+ */
29
+ async getIpoDetails(params) {
30
+ const symbol = params.symbol.toUpperCase();
31
+ const series = params.series ?? "EQ";
32
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/ipo-detail`, { symbol, series });
33
+ }
34
+ /**
35
+ * List past IPOs
36
+ */
37
+ async listPastIPO(from_date, to_date) {
38
+ const to = to_date ?? new Date();
39
+ const from = from_date ?? new Date(to.getTime() - 90 * 86400000);
40
+ if (to < from) {
41
+ throw new Error("Argument `to_date` cannot be less than `from_date`");
42
+ }
43
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/public-past-issues`, {
44
+ from_date: (0, date_formatter_js_1.formatDateDMY)(from),
45
+ to_date: (0, date_formatter_js_1.formatDateDMY)(to),
46
+ });
47
+ }
48
+ }
49
+ exports.IpoApi = IpoApi;
50
+ //# sourceMappingURL=ipo-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipo-api.js","sourceRoot":"","sources":["../../../src/nse/api/ipo-api.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,oDAAiD;AAEjD,kEAA8E;AAE9E,MAAa,MAAM;IACG;IAApB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,mBAAQ,oBAAoB,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,mBAAQ,mCAAmC,CAAC,CAAC;IACvF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,MAAwB;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;QAErC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,mBAAQ,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,SAAgB,EAAE,OAAc;QAChD,MAAM,EAAE,GAAG,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,SAAS,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC;QAEjE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,mBAAQ,qBAAqB,EAAE;YACrE,SAAS,EAAE,IAAA,iCAAa,EAAC,IAAI,CAAC;YAC9B,OAAO,EAAE,IAAA,iCAAa,EAAC,EAAE,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;CACF;AA3CD,wBA2CC"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ /**
3
+ * Market data and trading API methods for NSE
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MarketApi = void 0;
7
+ const index_js_1 = require("../constants/index.js");
8
+ const date_formatter_js_1 = require("../utils/date-formatter.js");
9
+ class MarketApi {
10
+ httpClient;
11
+ constructor(httpClient) {
12
+ this.httpClient = httpClient;
13
+ }
14
+ /**
15
+ * Get market status
16
+ */
17
+ async getStatus() {
18
+ const result = await this.httpClient.request(`${index_js_1.BASE_URL}/marketStatus`);
19
+ return result.marketState;
20
+ }
21
+ /**
22
+ * Search/lookup symbols
23
+ */
24
+ async lookup(query) {
25
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/search/autocomplete`, { q: query });
26
+ }
27
+ /**
28
+ * Get block deals
29
+ */
30
+ async getBlockDeals() {
31
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/block-deal`);
32
+ }
33
+ /**
34
+ * Get bulk deals for date range
35
+ */
36
+ async getBulkDeals(fromDate, toDate) {
37
+ const daysDiff = (toDate.getTime() - fromDate.getTime()) / 86400000;
38
+ if (daysDiff > 365) {
39
+ throw new Error("The date range cannot exceed one year.");
40
+ }
41
+ const url = `${index_js_1.BASE_URL}/historical/bulk-deals?from=${(0, date_formatter_js_1.formatDateDMY)(fromDate)}&to=${(0, date_formatter_js_1.formatDateDMY)(toDate)}`;
42
+ const data = await this.httpClient.request(url);
43
+ if (!data.data || data.data.length < 1) {
44
+ throw new Error("No bulk deals data available for the specified date range.");
45
+ }
46
+ return data.data;
47
+ }
48
+ /**
49
+ * Get holidays
50
+ */
51
+ async getHolidays(type = "trading") {
52
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/holiday-master`, { type });
53
+ }
54
+ /**
55
+ * Get daily reports file metadata
56
+ */
57
+ async getDailyReportsFileMetadata(segment = "CM") {
58
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/daily-reports`, { key: segment });
59
+ }
60
+ }
61
+ exports.MarketApi = MarketApi;
62
+ //# sourceMappingURL=market-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market-api.js","sourceRoot":"","sources":["../../../src/nse/api/market-api.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,oDAAiD;AAEjD,kEAA8E;AAE9E,MAAa,SAAS;IACA;IAApB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,mBAAQ,eAAe,CAAC,CAAC;QACzE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,mBAAQ,sBAAsB,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,mBAAQ,aAAa,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,QAAc,EAAE,MAAY;QAC7C,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC;QACpE,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,mBAAQ,+BAA+B,IAAA,iCAAa,EAAC,QAAQ,CAAC,OAAO,IAAA,iCAAa,EAAC,MAAM,CAAC,EAAE,CAAC;QAC5G,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEhD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,OAAoB,SAAS;QAC7C,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,mBAAQ,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,2BAA2B,CAAC,UAA8B,IAAI;QAClE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,mBAAQ,gBAAgB,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IACtF,CAAC;CACF;AAzDD,8BAyDC"}
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ /**
3
+ * Options and derivatives API methods for NSE
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.OptionsApi = void 0;
7
+ const index_js_1 = require("../constants/index.js");
8
+ const index_js_2 = require("../constants/index.js");
9
+ const date_formatter_js_1 = require("../utils/date-formatter.js");
10
+ class OptionsApi {
11
+ httpClient;
12
+ constructor(httpClient) {
13
+ this.httpClient = httpClient;
14
+ }
15
+ /**
16
+ * Get F&O lot sizes
17
+ */
18
+ async getFnoLots() {
19
+ const url = "https://nsearchives.nseindia.com/content/fo/fo_mktlots.csv";
20
+ // Try to get as JSON first, fallback to text
21
+ let csv;
22
+ try {
23
+ const res = await this.httpClient.request(url);
24
+ csv = typeof res === "string" ? res : "";
25
+ }
26
+ catch {
27
+ csv = "";
28
+ }
29
+ if (!csv) {
30
+ csv = await this.httpClient.getTextResponse(url);
31
+ }
32
+ const lines = csv.trim().split(/\r?\n/);
33
+ const lots = {};
34
+ for (const line of lines) {
35
+ const parts = line.split(",");
36
+ if (parts.length < 4)
37
+ continue;
38
+ const sym = parts[1]?.trim();
39
+ const lot = Number(parts[3]?.trim());
40
+ if (!sym || !Number.isFinite(lot))
41
+ continue;
42
+ lots[sym] = lot;
43
+ }
44
+ return lots;
45
+ }
46
+ /**
47
+ * Get option chain data
48
+ */
49
+ async getOptionChain(symbol) {
50
+ const isIndex = index_js_2.OPTION_INDICES.includes(symbol.toLowerCase());
51
+ const url = isIndex
52
+ ? `${index_js_1.BASE_URL}/option-chain-indices`
53
+ : `${index_js_1.BASE_URL}/option-chain-equities`;
54
+ return await this.httpClient.request(url, { symbol: symbol.toUpperCase() });
55
+ }
56
+ /**
57
+ * Get filtered option chain data with only essential information for LLM processing
58
+ * Reduces data volume by ~90% while retaining key metrics
59
+ */
60
+ async getFilteredOptionChain(symbol, strikeRange = 10) {
61
+ const fullData = await this.getOptionChain(symbol);
62
+ const underlying = fullData.records.underlyingValue;
63
+ // Calculate ATM strike
64
+ const strikes = fullData.records.data.map((item) => item.strikePrice);
65
+ const atmStrike = strikes.reduce((prev, curr) => Math.abs(curr - underlying) < Math.abs(prev - underlying) ? curr : prev);
66
+ // Filter strikes within range of ATM
67
+ const minStrike = atmStrike - (strikeRange * 50); // Assuming 50 point intervals
68
+ const maxStrike = atmStrike + (strikeRange * 50);
69
+ const filteredData = fullData.records.data.filter((item) => item.strikePrice >= minStrike && item.strikePrice <= maxStrike);
70
+ // Extract only essential fields
71
+ const essentialData = filteredData.map((item) => ({
72
+ strikePrice: item.strikePrice,
73
+ expiryDate: item.expiryDate,
74
+ CE: item.CE ? {
75
+ lastPrice: item.CE.lastPrice,
76
+ change: item.CE.change,
77
+ pChange: item.CE.pChange,
78
+ openInterest: item.CE.openInterest,
79
+ changeinOpenInterest: item.CE.changeinOpenInterest,
80
+ impliedVolatility: item.CE.impliedVolatility
81
+ } : null,
82
+ PE: item.PE ? {
83
+ lastPrice: item.PE.lastPrice,
84
+ change: item.PE.change,
85
+ pChange: item.PE.pChange,
86
+ openInterest: item.PE.openInterest,
87
+ changeinOpenInterest: item.PE.changeinOpenInterest,
88
+ impliedVolatility: item.PE.impliedVolatility
89
+ } : null
90
+ }));
91
+ return {
92
+ symbol: symbol.toUpperCase(),
93
+ underlyingValue: underlying,
94
+ atmStrike: atmStrike,
95
+ timestamp: fullData.records.timestamp,
96
+ strikeRange: `${minStrike}-${maxStrike}`,
97
+ totalStrikes: essentialData.length,
98
+ data: essentialData
99
+ };
100
+ }
101
+ /**
102
+ * Calculate max pain for option chain
103
+ */
104
+ static calculateMaxPain(optionChain, expiryDate) {
105
+ const painMap = {};
106
+ const expiryDateStr = (0, date_formatter_js_1.formatDateExpiry)(expiryDate);
107
+ for (const x of optionChain.records.data) {
108
+ if (x.expiryDate !== expiryDateStr)
109
+ continue;
110
+ const expiryStrike = x.strikePrice;
111
+ let pain = 0;
112
+ for (const y of optionChain.records.data) {
113
+ if (y.expiryDate !== expiryDateStr)
114
+ continue;
115
+ const diff = expiryStrike - y.strikePrice;
116
+ if (diff > 0 && y.CE)
117
+ pain += -diff * y.CE.openInterest;
118
+ if (diff < 0 && y.PE)
119
+ pain += diff * y.PE.openInterest;
120
+ }
121
+ painMap[expiryStrike] = pain;
122
+ }
123
+ const strikes = Object.keys(painMap).map(Number);
124
+ return strikes.sort((a, b) => painMap[b] - painMap[a])[0];
125
+ }
126
+ /**
127
+ * Get futures expiry dates
128
+ */
129
+ async getFuturesExpiry(index = "nifty") {
130
+ const indexMap = {
131
+ banknifty: "nifty_bank_fut",
132
+ finnifty: "finnifty_fut",
133
+ nifty: "nse50_fut",
134
+ niftyit: "niftyit_fut"
135
+ };
136
+ const idx = indexMap[index] || "nse50_fut";
137
+ const res = await this.httpClient.request(`${index_js_1.BASE_URL}/liveEquity-derivatives`, { index: idx });
138
+ const data = res.data.map((i) => i.expiryDate);
139
+ return data.sort((a, b) => new Date(a.replace(/-/g, "/")).getTime() - new Date(b.replace(/-/g, "/")).getTime());
140
+ }
141
+ /**
142
+ * Compile option chain with calculated metrics
143
+ */
144
+ async compileOptionChain(symbol, expiryDate) {
145
+ const data = await this.getOptionChain(symbol);
146
+ const chain = {};
147
+ const expiryDateStr = (0, date_formatter_js_1.formatDateExpiry)(expiryDate);
148
+ const oc = {
149
+ expiry: expiryDateStr,
150
+ timestamp: data.records.timestamp,
151
+ };
152
+ const strike1 = data.filtered.data[0].strikePrice;
153
+ const strike2 = data.filtered.data[1].strikePrice;
154
+ const multiple = strike1 - strike2;
155
+ const underlying = data.records.underlyingValue;
156
+ oc.underlying = underlying;
157
+ oc.atm = multiple * Math.round(underlying / multiple);
158
+ let maxCoi = 0;
159
+ let maxPoi = 0;
160
+ let totalCoi = 0;
161
+ let totalPoi = 0;
162
+ let maxCoiStrike = 0;
163
+ let maxPoiStrike = 0;
164
+ for (const idx of data.records.data) {
165
+ if (idx.expiryDate !== expiryDateStr)
166
+ continue;
167
+ const strike = String(idx.strikePrice);
168
+ if (!chain[strike])
169
+ chain[strike] = { pe: {}, ce: {} };
170
+ let poi = 0;
171
+ let coi = 0;
172
+ if (idx.PE) {
173
+ const { openInterest, lastPrice, chg, impliedVolatility } = idx.PE;
174
+ poi = openInterest;
175
+ chain[strike].pe = { last: lastPrice, oi: poi, chg, iv: impliedVolatility };
176
+ totalPoi += poi;
177
+ if (poi > maxPoi) {
178
+ maxPoi = poi;
179
+ maxPoiStrike = Number(strike);
180
+ }
181
+ }
182
+ else {
183
+ chain[strike].pe = { last: 0, oi: 0, chg: 0, iv: 0 };
184
+ }
185
+ if (idx.CE) {
186
+ const { openInterest, lastPrice, chg, impliedVolatility } = idx.CE;
187
+ coi = openInterest;
188
+ chain[strike].ce = { last: lastPrice, oi: coi, chg, iv: impliedVolatility };
189
+ totalCoi += coi;
190
+ if (coi > maxCoi) {
191
+ maxCoi = coi;
192
+ maxCoiStrike = Number(strike);
193
+ }
194
+ }
195
+ else {
196
+ chain[strike].ce = { last: 0, oi: 0, chg: 0, iv: 0 };
197
+ }
198
+ chain[strike].pcr = poi === 0 || coi === 0 ? null : Number((poi / coi).toFixed(2));
199
+ }
200
+ oc.maxpain = OptionsApi.calculateMaxPain(data, expiryDate);
201
+ oc.maxCoi = maxCoiStrike;
202
+ oc.maxPoi = maxPoiStrike;
203
+ oc.coiTotal = totalCoi;
204
+ oc.poiTotal = totalPoi;
205
+ oc.pcr = Number((totalPoi / totalCoi).toFixed(2));
206
+ oc.chain = chain;
207
+ return oc;
208
+ }
209
+ }
210
+ exports.OptionsApi = OptionsApi;
211
+ //# sourceMappingURL=options-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options-api.js","sourceRoot":"","sources":["../../../src/nse/api/options-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /**
3
+ * Constants and configuration values for NSE API
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PRIME_URL = exports.DEFAULT_TIMEOUT = exports.DEFAULT_HEADERS = exports.DEFAULT_USER_AGENT = exports.ARCHIVE_URL = exports.BASE_URL = exports.OPTION_INDICES = exports.UDIFF_SWITCH_DATE = exports.FNO_IT = exports.FNO_FINNIFTY = exports.FNO_NIFTY = exports.FNO_BANK = exports.HOLIDAY_TRADING = exports.HOLIDAY_CLEARING = exports.SEGMENT_DEBT = exports.SEGMENT_MF = exports.SEGMENT_SME = exports.SEGMENT_EQUITY = exports.NSE_VERSION = void 0;
7
+ exports.NSE_VERSION = "0.1.0";
8
+ // Market segments
9
+ exports.SEGMENT_EQUITY = "equities";
10
+ exports.SEGMENT_SME = "sme";
11
+ exports.SEGMENT_MF = "mf";
12
+ exports.SEGMENT_DEBT = "debt";
13
+ // Holiday types
14
+ exports.HOLIDAY_CLEARING = "clearing";
15
+ exports.HOLIDAY_TRADING = "trading";
16
+ // F&O indices
17
+ exports.FNO_BANK = "banknifty";
18
+ exports.FNO_NIFTY = "nifty";
19
+ exports.FNO_FINNIFTY = "finnifty";
20
+ exports.FNO_IT = "niftyit";
21
+ // Important dates
22
+ exports.UDIFF_SWITCH_DATE = new Date("2024-07-08");
23
+ // Option indices array
24
+ exports.OPTION_INDICES = [
25
+ exports.FNO_BANK,
26
+ exports.FNO_NIFTY,
27
+ exports.FNO_FINNIFTY,
28
+ exports.FNO_IT,
29
+ ];
30
+ // API URLs
31
+ exports.BASE_URL = "https://www.nseindia.com/api";
32
+ exports.ARCHIVE_URL = "https://nsearchives.nseindia.com";
33
+ // HTTP headers
34
+ exports.DEFAULT_USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/118.0";
35
+ exports.DEFAULT_HEADERS = {
36
+ "User-Agent": exports.DEFAULT_USER_AGENT,
37
+ Accept: "*/*",
38
+ "Accept-Language": "en-US,en;q=0.5",
39
+ "Accept-Encoding": "gzip, deflate",
40
+ Referer: "https://www.nseindia.com/get-quotes/equity?symbol=HDFCBANK",
41
+ };
42
+ // Default timeout
43
+ exports.DEFAULT_TIMEOUT = 15000;
44
+ // Cookie priming URL
45
+ exports.PRIME_URL = "https://www.nseindia.com/option-chain";
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nse/constants/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,WAAW,GAAG,OAAO,CAAC;AAEnC,kBAAkB;AACL,QAAA,cAAc,GAAG,UAAmB,CAAC;AACrC,QAAA,WAAW,GAAG,KAAc,CAAC;AAC7B,QAAA,UAAU,GAAG,IAAa,CAAC;AAC3B,QAAA,YAAY,GAAG,MAAe,CAAC;AAE5C,gBAAgB;AACH,QAAA,gBAAgB,GAAG,UAAmB,CAAC;AACvC,QAAA,eAAe,GAAG,SAAkB,CAAC;AAElD,cAAc;AACD,QAAA,QAAQ,GAAG,WAAoB,CAAC;AAChC,QAAA,SAAS,GAAG,OAAgB,CAAC;AAC7B,QAAA,YAAY,GAAG,UAAmB,CAAC;AACnC,QAAA,MAAM,GAAG,SAAkB,CAAC;AAEzC,kBAAkB;AACL,QAAA,iBAAiB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;AAExD,uBAAuB;AACV,QAAA,cAAc,GAAG;IAC5B,gBAAQ;IACR,iBAAS;IACT,oBAAY;IACZ,cAAM;CACE,CAAC;AAEX,WAAW;AACE,QAAA,QAAQ,GAAG,8BAA8B,CAAC;AAC1C,QAAA,WAAW,GAAG,kCAAkC,CAAC;AAE9D,eAAe;AACF,QAAA,kBAAkB,GAAG,sEAAsE,CAAC;AAE5F,QAAA,eAAe,GAAG;IAC7B,YAAY,EAAE,0BAAkB;IAChC,MAAM,EAAE,KAAK;IACb,iBAAiB,EAAE,gBAAgB;IACnC,iBAAiB,EAAE,eAAe;IAClC,OAAO,EAAE,4DAA4D;CAC7D,CAAC;AAEX,kBAAkB;AACL,QAAA,eAAe,GAAG,KAAK,CAAC;AAErC,qBAAqB;AACR,QAAA,SAAS,GAAG,uCAAuC,CAAC"}
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ /**
3
+ * HTTP client management for NSE API
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.HttpClient = void 0;
10
+ const fs_1 = __importDefault(require("fs"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const axios_1 = __importDefault(require("axios"));
13
+ const axios_cookiejar_support_1 = require("axios-cookiejar-support");
14
+ const got_1 = __importDefault(require("got"));
15
+ const tough_cookie_1 = require("tough-cookie");
16
+ const index_js_1 = require("../constants/index.js");
17
+ const file_operations_js_1 = require("../utils/file-operations.js");
18
+ class HttpClient {
19
+ axiosClient;
20
+ gotClient;
21
+ jar;
22
+ cookiePath;
23
+ cookiesPrimed = false;
24
+ server;
25
+ timeout;
26
+ constructor(downloadDir, server, timeout) {
27
+ this.server = server;
28
+ this.timeout = timeout;
29
+ // Set up cookie jar and load from disk
30
+ this.cookiePath = path_1.default.join(downloadDir, server ? "nse_cookies_http2.json" : "nse_cookies_http1.json");
31
+ this.jar = new tough_cookie_1.CookieJar();
32
+ this.loadCookies();
33
+ if (server) {
34
+ // got with HTTP/2
35
+ this.gotClient = got_1.default.extend({
36
+ http2: true,
37
+ headers: index_js_1.DEFAULT_HEADERS,
38
+ cookieJar: this.jar,
39
+ timeout: { request: this.timeout },
40
+ throwHttpErrors: false,
41
+ });
42
+ }
43
+ else {
44
+ // axios with cookie jar
45
+ const ax = axios_1.default.create({
46
+ headers: index_js_1.DEFAULT_HEADERS,
47
+ timeout: this.timeout,
48
+ decompress: true,
49
+ validateStatus: () => true,
50
+ });
51
+ (0, axios_cookiejar_support_1.wrapper)(ax);
52
+ ax.defaults.jar = this.jar;
53
+ this.axiosClient = ax;
54
+ }
55
+ }
56
+ /**
57
+ * Load cookies from disk
58
+ */
59
+ loadCookies() {
60
+ if (!fs_1.default.existsSync(this.cookiePath))
61
+ return;
62
+ try {
63
+ const data = JSON.parse(fs_1.default.readFileSync(this.cookiePath, "utf8"));
64
+ this.jar = tough_cookie_1.CookieJar.fromJSON(data);
65
+ }
66
+ catch {
67
+ // Ignore cookie loading errors
68
+ }
69
+ }
70
+ /**
71
+ * Save cookies to disk
72
+ */
73
+ saveCookies() {
74
+ try {
75
+ const json = this.jar.toJSON();
76
+ fs_1.default.writeFileSync(this.cookiePath, JSON.stringify(json), "utf8");
77
+ }
78
+ catch {
79
+ // Ignore cookie saving errors
80
+ }
81
+ }
82
+ /**
83
+ * Prime cookies by visiting NSE homepage
84
+ */
85
+ async primeCookies() {
86
+ if (this.cookiesPrimed)
87
+ return;
88
+ try {
89
+ if (this.server && this.gotClient) {
90
+ await this.gotClient.get(index_js_1.PRIME_URL);
91
+ }
92
+ else if (this.axiosClient) {
93
+ await this.axiosClient.get(index_js_1.PRIME_URL);
94
+ }
95
+ this.cookiesPrimed = true;
96
+ this.saveCookies();
97
+ }
98
+ catch {
99
+ // Ignore priming failures; subsequent requests may still succeed
100
+ }
101
+ }
102
+ /**
103
+ * Make HTTP request and return JSON response
104
+ */
105
+ async request(url, params) {
106
+ await this.primeCookies();
107
+ if (this.server && this.gotClient) {
108
+ const res = await this.gotClient.get(url, {
109
+ searchParams: params,
110
+ });
111
+ if (res.statusCode < 200 || res.statusCode >= 300) {
112
+ throw new Error(`${url} ${res.statusCode}: ${res.statusMessage}`);
113
+ }
114
+ return JSON.parse(res.body);
115
+ }
116
+ if (this.axiosClient) {
117
+ const res = await this.axiosClient.get(url, { params });
118
+ if (res.status < 200 || res.status >= 300) {
119
+ throw new Error(`${url} ${res.status}: ${res.statusText}`);
120
+ }
121
+ return res.data;
122
+ }
123
+ throw new Error("HTTP client not initialized");
124
+ }
125
+ /**
126
+ * Download file from URL
127
+ */
128
+ async downloadFile(url, folder) {
129
+ const fname = path_1.default.join(folder, path_1.default.basename(new URL(url).pathname));
130
+ await this.primeCookies();
131
+ if (this.server && this.gotClient) {
132
+ const res = await this.gotClient.get(url, { responseType: "buffer" });
133
+ const contentType = res.headers["content-type"];
134
+ if (contentType && String(contentType).includes("text/html")) {
135
+ throw new Error("NSE file is unavailable or not yet updated.");
136
+ }
137
+ fs_1.default.writeFileSync(fname, res.body);
138
+ }
139
+ else if (this.axiosClient) {
140
+ const res = await this.axiosClient.get(url, { responseType: "stream" });
141
+ const contentType = res.headers["content-type"];
142
+ if (contentType && contentType.includes("text/html")) {
143
+ throw new Error("NSE file is unavailable or not yet updated.");
144
+ }
145
+ await (0, file_operations_js_1.saveStreamToFile)(res.data, fname);
146
+ }
147
+ else {
148
+ throw new Error("HTTP client not initialized");
149
+ }
150
+ return fname;
151
+ }
152
+ /**
153
+ * Get text response from URL
154
+ */
155
+ async getTextResponse(url) {
156
+ await this.primeCookies();
157
+ if (this.server && this.gotClient) {
158
+ const res = await this.gotClient.get(url, { responseType: "text" });
159
+ return res.body;
160
+ }
161
+ else if (this.axiosClient) {
162
+ const res = await this.axiosClient.get(url, { responseType: "text" });
163
+ return res.data;
164
+ }
165
+ else {
166
+ throw new Error("HTTP client not initialized");
167
+ }
168
+ }
169
+ }
170
+ exports.HttpClient = HttpClient;
171
+ //# sourceMappingURL=http-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/nse/http/http-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /**
3
+ * NSE API Module
4
+ *
5
+ * Re-exports all NSE functionality from the original nseapi package
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.HttpClient = exports.DownloadApi = exports.MarketApi = exports.IpoApi = exports.CorporateApi = exports.HistoricalApi = exports.OptionsApi = exports.EquityApi = exports.NSEClient = void 0;
23
+ // Main NSE client
24
+ var nse_client_js_1 = require("./nse/nse-client.js");
25
+ Object.defineProperty(exports, "NSEClient", { enumerable: true, get: function () { return nse_client_js_1.NSEClient; } });
26
+ // Export types for TypeScript users
27
+ __exportStar(require("./types/index.js"), exports);
28
+ // Export constants
29
+ __exportStar(require("./constants/index.js"), exports);
30
+ // Export utilities
31
+ __exportStar(require("./utils/date-formatter.js"), exports);
32
+ __exportStar(require("./utils/file-operations.js"), exports);
33
+ // Export API modules for advanced usage
34
+ var equity_api_js_1 = require("./api/equity-api.js");
35
+ Object.defineProperty(exports, "EquityApi", { enumerable: true, get: function () { return equity_api_js_1.EquityApi; } });
36
+ var options_api_js_1 = require("./api/options-api.js");
37
+ Object.defineProperty(exports, "OptionsApi", { enumerable: true, get: function () { return options_api_js_1.OptionsApi; } });
38
+ var historical_api_js_1 = require("./api/historical-api.js");
39
+ Object.defineProperty(exports, "HistoricalApi", { enumerable: true, get: function () { return historical_api_js_1.HistoricalApi; } });
40
+ var corporate_api_js_1 = require("./api/corporate-api.js");
41
+ Object.defineProperty(exports, "CorporateApi", { enumerable: true, get: function () { return corporate_api_js_1.CorporateApi; } });
42
+ var ipo_api_js_1 = require("./api/ipo-api.js");
43
+ Object.defineProperty(exports, "IpoApi", { enumerable: true, get: function () { return ipo_api_js_1.IpoApi; } });
44
+ var market_api_js_1 = require("./api/market-api.js");
45
+ Object.defineProperty(exports, "MarketApi", { enumerable: true, get: function () { return market_api_js_1.MarketApi; } });
46
+ var download_api_js_1 = require("./api/download-api.js");
47
+ Object.defineProperty(exports, "DownloadApi", { enumerable: true, get: function () { return download_api_js_1.DownloadApi; } });
48
+ var http_client_js_1 = require("./http/http-client.js");
49
+ Object.defineProperty(exports, "HttpClient", { enumerable: true, get: function () { return http_client_js_1.HttpClient; } });
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nse/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,kBAAkB;AAClB,qDAAgD;AAAvC,0GAAA,SAAS,OAAA;AAElB,oCAAoC;AACpC,mDAAiC;AAEjC,mBAAmB;AACnB,uDAAqC;AAErC,mBAAmB;AACnB,4DAA0C;AAC1C,6DAA2C;AAE3C,wCAAwC;AACxC,qDAAgD;AAAvC,0GAAA,SAAS,OAAA;AAClB,uDAAkD;AAAzC,4GAAA,UAAU,OAAA;AACnB,6DAAwD;AAA/C,kHAAA,aAAa,OAAA;AACtB,2DAAsD;AAA7C,gHAAA,YAAY,OAAA;AACrB,+CAA0C;AAAjC,oGAAA,MAAM,OAAA;AACf,qDAAgD;AAAvC,0GAAA,SAAS,OAAA;AAClB,yDAAoD;AAA3C,8GAAA,WAAW,OAAA;AACpB,wDAAmD;AAA1C,4GAAA,UAAU,OAAA"}