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,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Throttle = void 0;
4
+ const throttleConfig = {
5
+ lookup: {
6
+ rps: 15,
7
+ delay: Math.ceil(1000 / 15), // ~67ms between requests
8
+ },
9
+ default: {
10
+ rps: 8,
11
+ delay: Math.ceil(1000 / 8), // 125ms between requests
12
+ },
13
+ };
14
+ // Simple delay function
15
+ const delay = (ms) => new Promise(resolve => setTimeout(resolve, Math.max(0, ms)));
16
+ // Track last request times
17
+ let lastDefaultRequest = 0;
18
+ let lastLookupRequest = 0;
19
+ class Throttle {
20
+ static async check(type = 'default') {
21
+ const now = Date.now();
22
+ const config = throttleConfig[type];
23
+ if (type === 'lookup') {
24
+ const timeSinceLastRequest = now - lastLookupRequest;
25
+ const waitTime = config.delay - timeSinceLastRequest;
26
+ if (waitTime > 0) {
27
+ await delay(waitTime);
28
+ }
29
+ lastLookupRequest = Date.now();
30
+ }
31
+ else {
32
+ const timeSinceLastRequest = now - lastDefaultRequest;
33
+ const waitTime = config.delay - timeSinceLastRequest;
34
+ if (waitTime > 0) {
35
+ await delay(waitTime);
36
+ }
37
+ lastDefaultRequest = Date.now();
38
+ }
39
+ }
40
+ }
41
+ exports.Throttle = Throttle;
42
+ //# sourceMappingURL=throttle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../../src/bse/utils/throttle.ts"],"names":[],"mappings":";;;AAWA,MAAM,cAAc,GAAmB;IACrC,MAAM,EAAE;QACN,GAAG,EAAE,EAAE;QACP,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,yBAAyB;KACvD;IACD,OAAO,EAAE;QACP,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,yBAAyB;KACtD;CACF,CAAC;AAEF,wBAAwB;AACxB,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAC1C,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/D,2BAA2B;AAC3B,IAAI,kBAAkB,GAAG,CAAC,CAAC;AAC3B,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAE1B,MAAa,QAAQ;IACnB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAA6B,SAAS;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,oBAAoB,GAAG,GAAG,GAAG,iBAAiB,CAAC;YACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC;YAErD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjB,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;YAED,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,oBAAoB,GAAG,GAAG,GAAG,kBAAkB,CAAC;YACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC;YAErD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjB,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;YAED,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;CACF;AAzBD,4BAyBC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /**
3
+ * NSE-BSE API - Unified TypeScript API for NSE and BSE India stock exchanges
4
+ *
5
+ * This package provides separate APIs for NSE and BSE while maintaining
6
+ * their individual functionality and keeping them isolated.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.BSEApi = exports.NSEApi = exports.NSEClient = exports.BSE = exports.NSE = void 0;
43
+ // Main exports for convenience
44
+ var index_js_1 = require("./nse/index.js");
45
+ Object.defineProperty(exports, "NSE", { enumerable: true, get: function () { return index_js_1.NSEClient; } });
46
+ var index_js_2 = require("./bse/index.js");
47
+ Object.defineProperty(exports, "BSE", { enumerable: true, get: function () { return index_js_2.BSE; } });
48
+ // Named exports for specific usage
49
+ var index_js_3 = require("./nse/index.js");
50
+ Object.defineProperty(exports, "NSEClient", { enumerable: true, get: function () { return index_js_3.NSEClient; } });
51
+ // Export namespaced APIs to avoid conflicts
52
+ exports.NSEApi = __importStar(require("./nse/index.js"));
53
+ exports.BSEApi = __importStar(require("./bse/index.js"));
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+BAA+B;AAC/B,2CAAkD;AAAzC,+FAAA,SAAS,OAAO;AACzB,2CAAqC;AAA5B,+FAAA,GAAG,OAAA;AAEZ,mCAAmC;AACnC,2CAA2C;AAAlC,qGAAA,SAAS,OAAA;AAElB,4CAA4C;AAC5C,yDAAyC;AACzC,yDAAyC"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ /**
3
+ * Corporate actions and announcements API methods for NSE
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CorporateApi = void 0;
7
+ const index_js_1 = require("../constants/index.js");
8
+ const date_formatter_js_1 = require("../utils/date-formatter.js");
9
+ class CorporateApi {
10
+ httpClient;
11
+ constructor(httpClient) {
12
+ this.httpClient = httpClient;
13
+ }
14
+ /**
15
+ * Get corporate actions
16
+ */
17
+ async getActions(params = {}) {
18
+ const query = {
19
+ index: params.segment ?? "equities",
20
+ };
21
+ if (params.symbol)
22
+ query.symbol = params.symbol;
23
+ if (params.from_date && params.to_date) {
24
+ (0, date_formatter_js_1.validateDateRange)(params.from_date, params.to_date);
25
+ query.from_date = (0, date_formatter_js_1.formatDateDMY)(params.from_date);
26
+ query.to_date = (0, date_formatter_js_1.formatDateDMY)(params.to_date);
27
+ }
28
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/corporates-corporateActions`, query);
29
+ }
30
+ /**
31
+ * Get corporate announcements
32
+ */
33
+ async getAnnouncements(params = {}) {
34
+ const query = {
35
+ index: params.index ?? "equities",
36
+ };
37
+ if (params.symbol)
38
+ query.symbol = params.symbol;
39
+ if (params.fno)
40
+ query.fo_sec = true;
41
+ if (params.from_date && params.to_date) {
42
+ (0, date_formatter_js_1.validateDateRange)(params.from_date, params.to_date);
43
+ query.from_date = (0, date_formatter_js_1.formatDateDMY)(params.from_date);
44
+ query.to_date = (0, date_formatter_js_1.formatDateDMY)(params.to_date);
45
+ }
46
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/corporate-announcements`, query);
47
+ }
48
+ /**
49
+ * Get board meetings
50
+ */
51
+ async getBoardMeetings(params = {}) {
52
+ const query = {
53
+ index: params.index ?? "equities",
54
+ };
55
+ if (params.symbol)
56
+ query.symbol = params.symbol;
57
+ if (params.fno)
58
+ query.fo_sec = true;
59
+ if (params.from_date && params.to_date) {
60
+ (0, date_formatter_js_1.validateDateRange)(params.from_date, params.to_date);
61
+ query.from_date = (0, date_formatter_js_1.formatDateDMY)(params.from_date);
62
+ query.to_date = (0, date_formatter_js_1.formatDateDMY)(params.to_date);
63
+ }
64
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/corporate-board-meetings`, query);
65
+ }
66
+ /**
67
+ * Get annual reports
68
+ */
69
+ async getAnnualReports(symbol, segment = "equities") {
70
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/annual-reports`, {
71
+ index: segment,
72
+ symbol,
73
+ });
74
+ }
75
+ /**
76
+ * Get circulars
77
+ */
78
+ async getCirculars(params = {}) {
79
+ const to = params.to_date ?? new Date();
80
+ const from = params.from_date ?? new Date(to.getTime() - 7 * 86400000);
81
+ (0, date_formatter_js_1.validateDateRange)(from, to);
82
+ const query = {
83
+ from_date: (0, date_formatter_js_1.formatDateDMY)(from),
84
+ to_date: (0, date_formatter_js_1.formatDateDMY)(to),
85
+ };
86
+ if (params.subject)
87
+ query.sub = params.subject;
88
+ if (params.dept_code)
89
+ query.dept = params.dept_code.toUpperCase();
90
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/circulars`, query);
91
+ }
92
+ }
93
+ exports.CorporateApi = CorporateApi;
94
+ //# sourceMappingURL=corporate-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corporate-api.js","sourceRoot":"","sources":["../../../src/nse/api/corporate-api.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,oDAAiD;AAOjD,kEAA8E;AAE9E,MAAa,YAAY;IACH;IAApB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,SAAuB,EAAE;QACxC,MAAM,KAAK,GAAwB;YACjC,KAAK,EAAE,MAAM,CAAC,OAAO,IAAI,UAAU;SACpC,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAEhD,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACvC,IAAA,qCAAiB,EAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACpD,KAAK,CAAC,SAAS,GAAG,IAAA,iCAAa,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAClD,KAAK,CAAC,OAAO,GAAG,IAAA,iCAAa,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,mBAAQ,8BAA8B,EAAE,KAAK,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,SAA6B,EAAE;QACpD,MAAM,KAAK,GAAwB;YACjC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,UAAU;SAClC,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAChD,IAAI,MAAM,CAAC,GAAG;YAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QAEpC,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACvC,IAAA,qCAAiB,EAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACpD,KAAK,CAAC,SAAS,GAAG,IAAA,iCAAa,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAClD,KAAK,CAAC,OAAO,GAAG,IAAA,iCAAa,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,mBAAQ,0BAA0B,EAAE,KAAK,CAAC,CAAC;IACrF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,SAA6B,EAAE;QACpD,MAAM,KAAK,GAAwB;YACjC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,UAAU;SAClC,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAChD,IAAI,MAAM,CAAC,GAAG;YAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QAEpC,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACvC,IAAA,qCAAiB,EAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACpD,KAAK,CAAC,SAAS,GAAG,IAAA,iCAAa,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAClD,KAAK,CAAC,OAAO,GAAG,IAAA,iCAAa,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,mBAAQ,2BAA2B,EAAE,KAAK,CAAC,CAAC;IACtF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,UAA8B,UAAU;QAC7E,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,mBAAQ,iBAAiB,EAAE;YACjE,KAAK,EAAE,OAAO;YACd,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,SAAyB,EAAE;QAC5C,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;QACvE,IAAA,qCAAiB,EAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE5B,MAAM,KAAK,GAAwB;YACjC,SAAS,EAAE,IAAA,iCAAa,EAAC,IAAI,CAAC;YAC9B,OAAO,EAAE,IAAA,iCAAa,EAAC,EAAE,CAAC;SAC3B,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO;YAAE,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/C,IAAI,MAAM,CAAC,SAAS;YAAE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAElE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,mBAAQ,YAAY,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;CACF;AA1FD,oCA0FC"}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ /**
3
+ * File download and bhavcopy API methods for NSE
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.DownloadApi = void 0;
10
+ const fs_1 = __importDefault(require("fs"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const index_js_1 = require("../constants/index.js");
13
+ const file_operations_js_1 = require("../utils/file-operations.js");
14
+ const date_formatter_js_1 = require("../utils/date-formatter.js");
15
+ class DownloadApi {
16
+ httpClient;
17
+ downloadDir;
18
+ constructor(httpClient, downloadDir) {
19
+ this.httpClient = httpClient;
20
+ this.downloadDir = downloadDir;
21
+ }
22
+ /**
23
+ * Download and extract equity bhavcopy
24
+ */
25
+ async downloadEquityBhavcopy(date, folder) {
26
+ const outDir = folder ? (0, file_operations_js_1.getPath)(folder, true) : this.downloadDir;
27
+ let url;
28
+ if (date < index_js_1.UDIFF_SWITCH_DATE) {
29
+ const dateStr = (0, date_formatter_js_1.formatDateArchive)(date);
30
+ const month = dateStr.substring(2, 5);
31
+ url = `${index_js_1.ARCHIVE_URL}/content/historical/EQUITIES/${date.getFullYear()}/${month}/cm${dateStr}bhav.csv.zip`;
32
+ }
33
+ else {
34
+ const ymd = (0, date_formatter_js_1.formatDateYMD)(date);
35
+ url = `${index_js_1.ARCHIVE_URL}/content/cm/BhavCopy_NSE_CM_0_0_0_${ymd}_F_0000.csv.zip`;
36
+ }
37
+ const file = await this.httpClient.downloadFile(url, outDir);
38
+ if (!fs_1.default.existsSync(file)) {
39
+ fs_1.default.rmSync(file, { force: true });
40
+ throw new Error(`Failed to download file: ${path_1.default.basename(file)}`);
41
+ }
42
+ return await (0, file_operations_js_1.unzipFile)(file, path_1.default.dirname(file));
43
+ }
44
+ /**
45
+ * Download delivery bhavcopy
46
+ */
47
+ async downloadDeliveryBhavcopy(date, folder) {
48
+ const outDir = folder ? (0, file_operations_js_1.getPath)(folder, true) : this.downloadDir;
49
+ const ddmmyyyy = (0, date_formatter_js_1.formatDateDDMMYYYY)(date);
50
+ const url = `${index_js_1.ARCHIVE_URL}/products/content/sec_bhavdata_full_${ddmmyyyy}.csv`;
51
+ const file = await this.httpClient.downloadFile(url, outDir);
52
+ if (!fs_1.default.existsSync(file)) {
53
+ fs_1.default.rmSync(file, { force: true });
54
+ throw new Error(`Failed to download file: ${path_1.default.basename(file)}`);
55
+ }
56
+ return file;
57
+ }
58
+ /**
59
+ * Download indices bhavcopy
60
+ */
61
+ async downloadIndicesBhavcopy(date, folder) {
62
+ const outDir = folder ? (0, file_operations_js_1.getPath)(folder, true) : this.downloadDir;
63
+ const ddmmyyyy = (0, date_formatter_js_1.formatDateDDMMYYYY)(date);
64
+ const url = `${index_js_1.ARCHIVE_URL}/content/indices/ind_close_all_${ddmmyyyy}.csv`;
65
+ const file = await this.httpClient.downloadFile(url, outDir);
66
+ if (!fs_1.default.existsSync(file)) {
67
+ fs_1.default.rmSync(file, { force: true });
68
+ throw new Error(`Failed to download file: ${path_1.default.basename(file)}`);
69
+ }
70
+ return file;
71
+ }
72
+ /**
73
+ * Download F&O bhavcopy
74
+ */
75
+ async downloadFnoBhavcopy(date, folder) {
76
+ const outDir = folder ? (0, file_operations_js_1.getPath)(folder, true) : this.downloadDir;
77
+ const ymd = (0, date_formatter_js_1.formatDateYMD)(date);
78
+ const url = `${index_js_1.ARCHIVE_URL}/content/fo/BhavCopy_NSE_FO_0_0_0_${ymd}_F_0000.csv.zip`;
79
+ const file = await this.httpClient.downloadFile(url, outDir);
80
+ if (!fs_1.default.existsSync(file)) {
81
+ fs_1.default.rmSync(file, { force: true });
82
+ throw new Error(`Failed to download file: ${path_1.default.basename(file)}`);
83
+ }
84
+ return await (0, file_operations_js_1.unzipFile)(file, path_1.default.dirname(file));
85
+ }
86
+ /**
87
+ * Download priceband report
88
+ */
89
+ async downloadPricebandReport(date, folder) {
90
+ const outDir = folder ? (0, file_operations_js_1.getPath)(folder, true) : this.downloadDir;
91
+ const ddmmyyyy = (0, date_formatter_js_1.formatDateDDMMYYYY)(date);
92
+ const url = `${index_js_1.ARCHIVE_URL}/content/equities/sec_list_${ddmmyyyy}.csv`;
93
+ const file = await this.httpClient.downloadFile(url, outDir);
94
+ if (!fs_1.default.existsSync(file)) {
95
+ fs_1.default.rmSync(file, { force: true });
96
+ throw new Error(`Failed to download file: ${path_1.default.basename(file)}`);
97
+ }
98
+ return file;
99
+ }
100
+ /**
101
+ * Download PR bhavcopy
102
+ */
103
+ async downloadPrBhavcopy(date, folder) {
104
+ const outDir = folder ? (0, file_operations_js_1.getPath)(folder, true) : this.downloadDir;
105
+ const ddmmyy = (0, date_formatter_js_1.formatDateDDMMYY)(date);
106
+ const url = `${index_js_1.ARCHIVE_URL}/archives/equities/bhavcopy/pr/PR${ddmmyy}.zip`;
107
+ const file = await this.httpClient.downloadFile(url, outDir);
108
+ if (!fs_1.default.existsSync(file)) {
109
+ fs_1.default.rmSync(file, { force: true });
110
+ throw new Error(`Failed to download file: ${path_1.default.basename(file)}`);
111
+ }
112
+ return file;
113
+ }
114
+ /**
115
+ * Download CM MII security report
116
+ */
117
+ async downloadCmMiiSecurityReport(date, folder) {
118
+ const outDir = folder ? (0, file_operations_js_1.getPath)(folder, true) : this.downloadDir;
119
+ const ddmmyyyy = (0, date_formatter_js_1.formatDateDDMMYYYY)(date);
120
+ const url = `${index_js_1.ARCHIVE_URL}/content/cm/NSE_CM_security_${ddmmyyyy}.csv.gz`;
121
+ const file = await this.httpClient.downloadFile(url, outDir);
122
+ if (!fs_1.default.existsSync(file)) {
123
+ fs_1.default.rmSync(file, { force: true });
124
+ throw new Error(`Failed to download file: ${path_1.default.basename(file)}`);
125
+ }
126
+ return await (0, file_operations_js_1.unzipFile)(file, path_1.default.dirname(file));
127
+ }
128
+ /**
129
+ * Download any document from URL
130
+ */
131
+ async downloadDocument(url, folder, extractFiles) {
132
+ const outDir = folder ? (0, file_operations_js_1.getPath)(folder, true) : this.downloadDir;
133
+ const file = await this.httpClient.downloadFile(url, outDir);
134
+ if (!fs_1.default.existsSync(file)) {
135
+ fs_1.default.rmSync(file, { force: true });
136
+ throw new Error(`Failed to download file: ${path_1.default.basename(file)}`);
137
+ }
138
+ if (path_1.default.extname(file).toLowerCase() === ".zip") {
139
+ try {
140
+ return await (0, file_operations_js_1.unzipFile)(file, path_1.default.dirname(file), extractFiles);
141
+ }
142
+ catch (e) {
143
+ fs_1.default.rmSync(file, { force: true });
144
+ throw new Error(`Failed to extract zip file: ${String(e?.message ?? e)}`);
145
+ }
146
+ }
147
+ return file;
148
+ }
149
+ }
150
+ exports.DownloadApi = DownloadApi;
151
+ //# sourceMappingURL=download-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download-api.js","sourceRoot":"","sources":["../../../src/nse/api/download-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ /**
3
+ * Equity-related API methods for NSE
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EquityApi = void 0;
7
+ const index_js_1 = require("../constants/index.js");
8
+ class EquityApi {
9
+ httpClient;
10
+ constructor(httpClient) {
11
+ this.httpClient = httpClient;
12
+ }
13
+ /**
14
+ * Get equity metadata information
15
+ */
16
+ async getEquityMetaInfo(symbol) {
17
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/equity-meta-info`, {
18
+ symbol: symbol.toUpperCase()
19
+ });
20
+ }
21
+ /**
22
+ * Get quote for equity or derivative
23
+ */
24
+ async getQuote(params) {
25
+ const type = params.type ?? "equity";
26
+ const url = type === "equity"
27
+ ? `${index_js_1.BASE_URL}/quote-equity`
28
+ : `${index_js_1.BASE_URL}/quote-derivative`;
29
+ const query = { symbol: params.symbol.toUpperCase() };
30
+ if (params.section) {
31
+ if (params.section !== "trade_info") {
32
+ throw new Error("'Section' if specified must be 'trade_info'");
33
+ }
34
+ query.section = params.section;
35
+ }
36
+ return await this.httpClient.request(url, query);
37
+ }
38
+ /**
39
+ * Get simplified equity quote with OHLC data
40
+ */
41
+ async getEquityQuote(symbol) {
42
+ const q = await this.getQuote({ symbol, type: "equity" });
43
+ const v = await this.getQuote({ symbol, type: "equity", section: "trade_info" });
44
+ const open = q.priceInfo?.open;
45
+ const minmax = q.priceInfo?.intraDayHighLow;
46
+ const close = q.priceInfo?.close;
47
+ const ltp = q.priceInfo?.lastPrice;
48
+ return {
49
+ date: q.metadata?.lastUpdateTime,
50
+ open,
51
+ high: minmax?.max,
52
+ low: minmax?.min,
53
+ close: close ?? ltp,
54
+ volume: v.securityWiseDP?.quantityTraded,
55
+ };
56
+ }
57
+ /**
58
+ * Filter gainers from market data
59
+ */
60
+ getGainers(data, count) {
61
+ const filtered = data.data
62
+ .filter((d) => d.pChange > 0)
63
+ .sort((a, b) => b.pChange - a.pChange);
64
+ return typeof count === "number" ? filtered.slice(0, count) : filtered;
65
+ }
66
+ /**
67
+ * Filter losers from market data
68
+ */
69
+ getLosers(data, count) {
70
+ const filtered = data.data
71
+ .filter((d) => d.pChange < 0)
72
+ .sort((a, b) => a.pChange - b.pChange);
73
+ return typeof count === "number" ? filtered.slice(0, count) : filtered;
74
+ }
75
+ /**
76
+ * List equity stocks by index
77
+ */
78
+ async listEquityStocksByIndex(index = "NIFTY 50") {
79
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/equity-stockIndices`, { index });
80
+ }
81
+ /**
82
+ * List all indices
83
+ */
84
+ async listIndices() {
85
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/allIndices`);
86
+ }
87
+ /**
88
+ * List ETFs
89
+ */
90
+ async listEtf() {
91
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/etf`);
92
+ }
93
+ /**
94
+ * List SME stocks
95
+ */
96
+ async listSme() {
97
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/live-analysis-emerge`);
98
+ }
99
+ /**
100
+ * List Sovereign Gold Bonds
101
+ */
102
+ async listSgb() {
103
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/sovereign-gold-bonds`);
104
+ }
105
+ }
106
+ exports.EquityApi = EquityApi;
107
+ //# sourceMappingURL=equity-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equity-api.js","sourceRoot":"","sources":["../../../src/nse/api/equity-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ /**
3
+ * Historical data API methods for NSE
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.HistoricalApi = void 0;
7
+ const index_js_1 = require("../constants/index.js");
8
+ const date_formatter_js_1 = require("../utils/date-formatter.js");
9
+ class HistoricalApi {
10
+ httpClient;
11
+ constructor(httpClient) {
12
+ this.httpClient = httpClient;
13
+ }
14
+ /**
15
+ * Fetch equity historical data
16
+ */
17
+ async fetchEquityHistoricalData(params) {
18
+ const { symbol, from_date, to_date, series = ["EQ"] } = params;
19
+ // Simple case - no date range and EQ series only
20
+ if (!from_date && !to_date && JSON.stringify(series) === JSON.stringify(["EQ"])) {
21
+ const data = await this.httpClient.request(`${index_js_1.BASE_URL}/historical/cm/equity`, { symbol });
22
+ return data.data.slice().reverse();
23
+ }
24
+ const to = to_date ?? new Date();
25
+ const from = from_date ?? new Date(to.getTime() - 30 * 86400000);
26
+ (0, date_formatter_js_1.validateDateRange)(from, to);
27
+ const chunks = (0, date_formatter_js_1.splitDateRange)(from, to, 100);
28
+ const results = [];
29
+ for (const [cFrom, cTo] of chunks) {
30
+ const data = await this.httpClient.request(`${index_js_1.BASE_URL}/historical/cm/equity`, {
31
+ symbol,
32
+ series: JSON.stringify(series),
33
+ from: (0, date_formatter_js_1.formatDateDMY)(cFrom),
34
+ to: (0, date_formatter_js_1.formatDateDMY)(cTo),
35
+ });
36
+ const arr = data.data.slice().reverse();
37
+ results.push(...arr);
38
+ }
39
+ return results;
40
+ }
41
+ /**
42
+ * Fetch VIX historical data
43
+ */
44
+ async fetchHistoricalVixData(params = {}) {
45
+ const to = params.to_date ?? new Date();
46
+ const from = params.from_date ?? new Date(to.getTime() - 30 * 86400000);
47
+ (0, date_formatter_js_1.validateDateRange)(from, to);
48
+ const chunks = (0, date_formatter_js_1.splitDateRange)(from, to, 365);
49
+ const data = [];
50
+ for (const [cFrom, cTo] of chunks) {
51
+ const result = await this.httpClient.request(`${index_js_1.BASE_URL}/historical/vixhistory`, {
52
+ from: (0, date_formatter_js_1.formatDateDMY)(cFrom),
53
+ to: (0, date_formatter_js_1.formatDateDMY)(cTo),
54
+ });
55
+ data.push(...result.data);
56
+ }
57
+ return data;
58
+ }
59
+ /**
60
+ * Fetch F&O historical data
61
+ */
62
+ async fetchHistoricalFnoData(params) {
63
+ const { symbol, instrument = "FUTIDX", from_date, to_date, expiry, option_type, strike_price } = params;
64
+ const instrumentType = instrument.toUpperCase();
65
+ const to = to_date ?? new Date();
66
+ const from = from_date ?? new Date(to.getTime() - 30 * 86400000);
67
+ (0, date_formatter_js_1.validateDateRange)(from, to);
68
+ const query = {
69
+ instrumentType,
70
+ symbol: symbol.toUpperCase(),
71
+ };
72
+ if (expiry) {
73
+ query.expiryDate = (0, date_formatter_js_1.formatDateExpiry)(expiry);
74
+ query.year = expiry.getFullYear();
75
+ }
76
+ if (instrumentType === "OPTIDX" || instrumentType === "OPTSTK") {
77
+ if (!option_type) {
78
+ throw new Error("`option_type` param is required for Stock or Index options.");
79
+ }
80
+ query.optionType = option_type;
81
+ if (strike_price != null)
82
+ query.strikePrice = strike_price;
83
+ }
84
+ const chunks = (0, date_formatter_js_1.splitDateRange)(from, to, 365);
85
+ const data = [];
86
+ for (const [cFrom, cTo] of chunks) {
87
+ query.from = (0, date_formatter_js_1.formatDateDMY)(cFrom);
88
+ query.to = (0, date_formatter_js_1.formatDateDMY)(cTo);
89
+ const result = await this.httpClient.request(`${index_js_1.BASE_URL}/historical/foCPV`, query);
90
+ data.push(...result.data);
91
+ }
92
+ return data;
93
+ }
94
+ /**
95
+ * Fetch index historical data
96
+ */
97
+ async fetchHistoricalIndexData(params) {
98
+ const { index, from_date, to_date } = params;
99
+ const to = to_date ?? new Date();
100
+ const from = from_date ?? new Date(to.getTime() - 30 * 86400000);
101
+ (0, date_formatter_js_1.validateDateRange)(from, to);
102
+ const chunks = (0, date_formatter_js_1.splitDateRange)(from, to, 365);
103
+ const result = { price: [], turnover: [] };
104
+ for (const [cFrom, cTo] of chunks) {
105
+ const data = await this.httpClient.request(`${index_js_1.BASE_URL}/historical/indicesHistory`, {
106
+ indexType: index.toUpperCase(),
107
+ from: (0, date_formatter_js_1.formatDateDMY)(cFrom),
108
+ to: (0, date_formatter_js_1.formatDateDMY)(cTo),
109
+ });
110
+ result.price.push(...data.data.indexCloseOnlineRecords);
111
+ result.turnover.push(...data.data.indexTurnoverRecords);
112
+ }
113
+ return result;
114
+ }
115
+ /**
116
+ * Fetch F&O underlying information
117
+ */
118
+ async fetchFnoUnderlying() {
119
+ const data = await this.httpClient.request(`${index_js_1.BASE_URL}/underlying-information`);
120
+ return data.data;
121
+ }
122
+ /**
123
+ * Fetch index names
124
+ */
125
+ async fetchIndexNames() {
126
+ return await this.httpClient.request(`${index_js_1.BASE_URL}/index-names`);
127
+ }
128
+ }
129
+ exports.HistoricalApi = HistoricalApi;
130
+ //# sourceMappingURL=historical-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"historical-api.js","sourceRoot":"","sources":["../../../src/nse/api/historical-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * API modules for NSE client
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DownloadApi = exports.MarketApi = exports.IpoApi = exports.CorporateApi = exports.HistoricalApi = exports.OptionsApi = exports.EquityApi = void 0;
7
+ var equity_api_js_1 = require("./equity-api.js");
8
+ Object.defineProperty(exports, "EquityApi", { enumerable: true, get: function () { return equity_api_js_1.EquityApi; } });
9
+ var options_api_js_1 = require("./options-api.js");
10
+ Object.defineProperty(exports, "OptionsApi", { enumerable: true, get: function () { return options_api_js_1.OptionsApi; } });
11
+ var historical_api_js_1 = require("./historical-api.js");
12
+ Object.defineProperty(exports, "HistoricalApi", { enumerable: true, get: function () { return historical_api_js_1.HistoricalApi; } });
13
+ var corporate_api_js_1 = require("./corporate-api.js");
14
+ Object.defineProperty(exports, "CorporateApi", { enumerable: true, get: function () { return corporate_api_js_1.CorporateApi; } });
15
+ var ipo_api_js_1 = require("./ipo-api.js");
16
+ Object.defineProperty(exports, "IpoApi", { enumerable: true, get: function () { return ipo_api_js_1.IpoApi; } });
17
+ var market_api_js_1 = require("./market-api.js");
18
+ Object.defineProperty(exports, "MarketApi", { enumerable: true, get: function () { return market_api_js_1.MarketApi; } });
19
+ var download_api_js_1 = require("./download-api.js");
20
+ Object.defineProperty(exports, "DownloadApi", { enumerable: true, get: function () { return download_api_js_1.DownloadApi; } });
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nse/api/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,iDAA4C;AAAnC,0GAAA,SAAS,OAAA;AAClB,mDAA8C;AAArC,4GAAA,UAAU,OAAA;AACnB,yDAAoD;AAA3C,kHAAA,aAAa,OAAA;AACtB,uDAAkD;AAAzC,gHAAA,YAAY,OAAA;AACrB,2CAAsC;AAA7B,oGAAA,MAAM,OAAA;AACf,iDAA4C;AAAnC,0GAAA,SAAS,OAAA;AAClB,qDAAgD;AAAvC,8GAAA,WAAW,OAAA"}