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,109 @@
1
+ "use strict";
2
+ /**
3
+ * Main NSE API client that orchestrates all API modules
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NSEClient = void 0;
7
+ const http_client_js_1 = require("../http/http-client.js");
8
+ const equity_api_js_1 = require("../api/equity-api.js");
9
+ const options_api_js_1 = require("../api/options-api.js");
10
+ const historical_api_js_1 = require("../api/historical-api.js");
11
+ const corporate_api_js_1 = require("../api/corporate-api.js");
12
+ const ipo_api_js_1 = require("../api/ipo-api.js");
13
+ const market_api_js_1 = require("../api/market-api.js");
14
+ const download_api_js_1 = require("../api/download-api.js");
15
+ const file_operations_js_1 = require("../utils/file-operations.js");
16
+ const index_js_1 = require("../constants/index.js");
17
+ class NSEClient {
18
+ static __version__ = "0.1.0";
19
+ // Re-export constants for backward compatibility
20
+ static SEGMENT_EQUITY = "equities";
21
+ static SEGMENT_SME = "sme";
22
+ static SEGMENT_MF = "mf";
23
+ static SEGMENT_DEBT = "debt";
24
+ static HOLIDAY_CLEARING = "clearing";
25
+ static HOLIDAY_TRADING = "trading";
26
+ static FNO_BANK = "banknifty";
27
+ static FNO_NIFTY = "nifty";
28
+ static FNO_FINNIFTY = "finnifty";
29
+ static FNO_IT = "niftyit";
30
+ static UDIFF_SWITCH_DATE = new Date("2024-07-08");
31
+ httpClient;
32
+ downloadDir;
33
+ // API modules
34
+ equity;
35
+ options;
36
+ historical;
37
+ corporate;
38
+ ipo;
39
+ market;
40
+ download;
41
+ constructor(downloadFolder, opts = {}) {
42
+ const server = !!opts.server;
43
+ const timeout = opts.timeout ?? index_js_1.DEFAULT_TIMEOUT;
44
+ this.downloadDir = (0, file_operations_js_1.getPath)(downloadFolder, true);
45
+ this.httpClient = new http_client_js_1.HttpClient(this.downloadDir, server, timeout);
46
+ // Initialize API modules
47
+ this.equity = new equity_api_js_1.EquityApi(this.httpClient);
48
+ this.options = new options_api_js_1.OptionsApi(this.httpClient);
49
+ this.historical = new historical_api_js_1.HistoricalApi(this.httpClient);
50
+ this.corporate = new corporate_api_js_1.CorporateApi(this.httpClient);
51
+ this.ipo = new ipo_api_js_1.IpoApi(this.httpClient);
52
+ this.market = new market_api_js_1.MarketApi(this.httpClient);
53
+ this.download = new download_api_js_1.DownloadApi(this.httpClient, this.downloadDir);
54
+ }
55
+ /**
56
+ * Clean up resources and save cookies
57
+ */
58
+ exit() {
59
+ this.httpClient.saveCookies();
60
+ }
61
+ // Backward compatibility methods - delegate to appropriate modules
62
+ async status() { return this.market.getStatus(); }
63
+ async lookup(query) { return this.market.lookup(query); }
64
+ async equityBhavcopy(date, folder) { return this.download.downloadEquityBhavcopy(date, folder); }
65
+ async deliveryBhavcopy(date, folder) { return this.download.downloadDeliveryBhavcopy(date, folder); }
66
+ async indicesBhavcopy(date, folder) { return this.download.downloadIndicesBhavcopy(date, folder); }
67
+ async fnoBhavcopy(date, folder) { return this.download.downloadFnoBhavcopy(date, folder); }
68
+ async priceband_report(date, folder) { return this.download.downloadPricebandReport(date, folder); }
69
+ async pr_bhavcopy(date, folder) { return this.download.downloadPrBhavcopy(date, folder); }
70
+ async cm_mii_security_report(date, folder) { return this.download.downloadCmMiiSecurityReport(date, folder); }
71
+ async download_document(url, folder, extract_files) { return this.download.downloadDocument(url, folder, extract_files); }
72
+ async actions(params = {}) { return this.corporate.getActions(params); }
73
+ async announcements(params = {}) { return this.corporate.getAnnouncements(params); }
74
+ async boardMeetings(params = {}) { return this.corporate.getBoardMeetings(params); }
75
+ async annual_reports(symbol, segment = "equities") { return this.corporate.getAnnualReports(symbol, segment); }
76
+ async circulars(params = {}) { return this.corporate.getCirculars(params); }
77
+ async equityMetaInfo(symbol) { return this.equity.getEquityMetaInfo(symbol); }
78
+ async quote(params) { return this.equity.getQuote(params); }
79
+ async equityQuote(symbol) { return this.equity.getEquityQuote(symbol); }
80
+ gainers(data, count) { return this.equity.getGainers(data, count); }
81
+ losers(data, count) { return this.equity.getLosers(data, count); }
82
+ async listEquityStocksByIndex(index) { return this.equity.listEquityStocksByIndex(index); }
83
+ async listIndices() { return this.equity.listIndices(); }
84
+ async listEtf() { return this.equity.listEtf(); }
85
+ async listSme() { return this.equity.listSme(); }
86
+ async listSgb() { return this.equity.listSgb(); }
87
+ async listCurrentIPO() { return this.ipo.listCurrentIPO(); }
88
+ async listUpcomingIPO() { return this.ipo.listUpcomingIPO(); }
89
+ async getIpoDetails(params) { return this.ipo.getIpoDetails(params); }
90
+ async listPastIPO(from_date, to_date) { return this.ipo.listPastIPO(from_date, to_date); }
91
+ async blockDeals() { return this.market.getBlockDeals(); }
92
+ async bulkdeals(fromdate, todate) { return this.market.getBulkDeals(fromdate, todate); }
93
+ async holidays(type = "trading") { return this.market.getHolidays(type); }
94
+ async fnoLots() { return this.options.getFnoLots(); }
95
+ async optionChain(symbol) { return this.options.getOptionChain(symbol); }
96
+ async filteredOptionChain(symbol, strikeRange) { return this.options.getFilteredOptionChain(symbol, strikeRange); }
97
+ static maxpain(optionChain, expiryDate) { return options_api_js_1.OptionsApi.calculateMaxPain(optionChain, expiryDate); }
98
+ async getFuturesExpiry(index = "nifty") { return this.options.getFuturesExpiry(index); }
99
+ async compileOptionChain(symbol, expiryDate) { return this.options.compileOptionChain(symbol, expiryDate); }
100
+ async fetch_equity_historical_data(params) { return this.historical.fetchEquityHistoricalData(params); }
101
+ async fetch_historical_vix_data(params = {}) { return this.historical.fetchHistoricalVixData(params); }
102
+ async fetch_historical_fno_data(params) { return this.historical.fetchHistoricalFnoData(params); }
103
+ async fetch_historical_index_data(params) { return this.historical.fetchHistoricalIndexData(params); }
104
+ async fetch_fno_underlying() { return this.historical.fetchFnoUnderlying(); }
105
+ async fetch_index_names() { return this.historical.fetchIndexNames(); }
106
+ async fetch_daily_reports_file_metadata(segment = "CM") { return this.market.getDailyReportsFileMetadata(segment); }
107
+ }
108
+ exports.NSEClient = NSEClient;
109
+ //# sourceMappingURL=nse-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nse-client.js","sourceRoot":"","sources":["../../../src/nse/nse/nse-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Type definitions and interfaces for NSE API
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nse/types/index.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ /**
3
+ * Date formatting utilities for NSE API
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.formatDateDMY = formatDateDMY;
7
+ exports.formatDateDDMMYYYY = formatDateDDMMYYYY;
8
+ exports.formatDateDDMMYY = formatDateDDMMYY;
9
+ exports.formatDateYMD = formatDateYMD;
10
+ exports.formatDateArchive = formatDateArchive;
11
+ exports.formatDateExpiry = formatDateExpiry;
12
+ exports.validateDateRange = validateDateRange;
13
+ exports.splitDateRange = splitDateRange;
14
+ /**
15
+ * Format date as DD-MM-YYYY
16
+ */
17
+ function formatDateDMY(date) {
18
+ return `${String(date.getDate()).padStart(2, "0")}-${String(date.getMonth() + 1).padStart(2, "0")}-${date.getFullYear()}`;
19
+ }
20
+ /**
21
+ * Format date as DDMMYYYY
22
+ */
23
+ function formatDateDDMMYYYY(date) {
24
+ return `${String(date.getDate()).padStart(2, "0")}${String(date.getMonth() + 1).padStart(2, "0")}${date.getFullYear()}`;
25
+ }
26
+ /**
27
+ * Format date as DDMMYY
28
+ */
29
+ function formatDateDDMMYY(date) {
30
+ return `${String(date.getDate()).padStart(2, "0")}${String(date.getMonth() + 1).padStart(2, "0")}${String(date.getFullYear()).slice(-2)}`;
31
+ }
32
+ /**
33
+ * Format date as YYYYMMDD
34
+ */
35
+ function formatDateYMD(date) {
36
+ return `${date.getFullYear()}${String(date.getMonth() + 1).padStart(2, "0")}${String(date.getDate()).padStart(2, "0")}`;
37
+ }
38
+ /**
39
+ * Format date for NSE archive URLs (DDMMMYYYY format)
40
+ */
41
+ function formatDateArchive(date) {
42
+ return date
43
+ .toLocaleDateString("en-GB", {
44
+ day: "2-digit",
45
+ month: "short",
46
+ year: "numeric",
47
+ })
48
+ .toUpperCase()
49
+ .replace(/ /g, "");
50
+ }
51
+ /**
52
+ * Format date for option expiry (DD-MMM-YYYY format)
53
+ */
54
+ function formatDateExpiry(date) {
55
+ return `${String(date.getDate()).padStart(2, "0")}-${new Intl.DateTimeFormat("en-GB", { month: "short" }).format(date)}-${date.getFullYear()}`;
56
+ }
57
+ /**
58
+ * Validate date range
59
+ */
60
+ function validateDateRange(fromDate, toDate) {
61
+ if (fromDate > toDate) {
62
+ throw new Error("'from_date' cannot be greater than 'to_date'");
63
+ }
64
+ }
65
+ /**
66
+ * Split date range into chunks for API pagination
67
+ */
68
+ function splitDateRange(from, to, maxChunkSizeDays = 365) {
69
+ const chunks = [];
70
+ let currentStart = new Date(from.getFullYear(), from.getMonth(), from.getDate());
71
+ const end = new Date(to.getFullYear(), to.getMonth(), to.getDate());
72
+ while (currentStart.getTime() <= end.getTime()) {
73
+ const currentEnd = new Date(currentStart.getTime() + (maxChunkSizeDays - 1) * 86400000);
74
+ const boundedEnd = currentEnd.getTime() > end.getTime() ? end : currentEnd;
75
+ chunks.push([currentStart, boundedEnd]);
76
+ currentStart = new Date(boundedEnd.getTime() + 86400000);
77
+ }
78
+ return chunks;
79
+ }
80
+ //# sourceMappingURL=date-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-formatter.js","sourceRoot":"","sources":["../../../src/nse/utils/date-formatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ /**
3
+ * File operations utilities 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.getPath = getPath;
10
+ exports.unzipFile = unzipFile;
11
+ exports.saveStreamToFile = saveStreamToFile;
12
+ const fs_1 = __importDefault(require("fs"));
13
+ const path_1 = __importDefault(require("path"));
14
+ const util_1 = require("util");
15
+ const zlib_1 = __importDefault(require("zlib"));
16
+ const stream_1 = require("stream");
17
+ const adm_zip_1 = __importDefault(require("adm-zip"));
18
+ const pipeline = (0, util_1.promisify)(stream_1.pipeline);
19
+ /**
20
+ * Resolve and validate file/folder path
21
+ */
22
+ function getPath(p, isFolder = false) {
23
+ const resolved = path_1.default.resolve(p);
24
+ if (isFolder) {
25
+ try {
26
+ const stat = fs_1.default.existsSync(resolved) ? fs_1.default.statSync(resolved) : undefined;
27
+ if (stat && stat.isFile()) {
28
+ throw new Error(`${resolved}: must be a folder`);
29
+ }
30
+ if (!stat) {
31
+ fs_1.default.mkdirSync(resolved, { recursive: true });
32
+ }
33
+ }
34
+ catch (e) {
35
+ throw e;
36
+ }
37
+ }
38
+ return resolved;
39
+ }
40
+ /**
41
+ * Extract zip or gzip files
42
+ */
43
+ async function unzipFile(filePath, folder, extractFiles) {
44
+ const ext = path_1.default.extname(filePath).toLowerCase();
45
+ if (ext === ".zip") {
46
+ const zip = new adm_zip_1.default(filePath);
47
+ if (extractFiles && extractFiles.length > 0) {
48
+ zip.extractEntryTo(extractFiles[extractFiles.length - 1], folder, false, true);
49
+ const out = path_1.default.join(folder, extractFiles[extractFiles.length - 1]);
50
+ fs_1.default.rmSync(filePath, { force: true });
51
+ return out;
52
+ }
53
+ else {
54
+ const entries = zip.getEntries();
55
+ if (!entries.length) {
56
+ throw new Error("Zip is empty");
57
+ }
58
+ const first = entries[0].entryName;
59
+ zip.extractAllTo(folder, true);
60
+ const out = path_1.default.join(folder, first);
61
+ fs_1.default.rmSync(filePath, { force: true });
62
+ return out;
63
+ }
64
+ }
65
+ else if (ext === ".gz") {
66
+ const dest = path_1.default.join(path_1.default.dirname(filePath), path_1.default.basename(filePath, ".gz"));
67
+ const gzip = zlib_1.default.createGunzip();
68
+ await pipeline(fs_1.default.createReadStream(filePath), gzip, fs_1.default.createWriteStream(dest));
69
+ fs_1.default.rmSync(filePath, { force: true });
70
+ return dest;
71
+ }
72
+ else {
73
+ throw new Error("Unknown file format");
74
+ }
75
+ }
76
+ /**
77
+ * Save file from stream
78
+ */
79
+ async function saveStreamToFile(stream, filePath) {
80
+ await pipeline(stream, fs_1.default.createWriteStream(filePath));
81
+ }
82
+ //# sourceMappingURL=file-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-operations.js","sourceRoot":"","sources":["../../../src/nse/utils/file-operations.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAcH,0BAkBC;AAKD,8BA+BC;AAKD,4CAEC;AAzED,4CAAoB;AACpB,gDAAwB;AACxB,+BAAiC;AACjC,gDAAwB;AACxB,mCAAgD;AAChD,sDAA6B;AAE7B,MAAM,QAAQ,GAAG,IAAA,gBAAS,EAAC,iBAAU,CAAC,CAAC;AAEvC;;GAEG;AACH,SAAgB,OAAO,CAAC,CAAS,EAAE,QAAQ,GAAG,KAAK;IACjD,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEjC,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,oBAAoB,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,YAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,MAAc,EAAE,YAAuB;IACvF,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAEjD,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,iBAAM,CAAC,QAAQ,CAAC,CAAC;QAEjC,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/E,MAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACrE,YAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACrC,OAAO,GAAG,CAAC;QACb,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACrC,YAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACrC,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,cAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,cAAI,CAAC,YAAY,EAAE,CAAC;QACjC,MAAM,QAAQ,CAAC,YAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,YAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB,CAAC,MAA6B,EAAE,QAAgB;IACpF,MAAM,QAAQ,CAAC,MAAM,EAAE,YAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ /**
3
+ * Utility functions for NSE API
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./date-formatter.js"), exports);
21
+ __exportStar(require("./file-operations.js"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nse/utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,sDAAoC;AACpC,uDAAqC"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ /**
3
+ * Combined Types Module
4
+ *
5
+ * Re-exports types from both NSE and BSE modules with proper namespacing
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.BSETypes = exports.NSETypes = void 0;
42
+ // NSE Types (with namespace to avoid conflicts)
43
+ const NSETypes = __importStar(require("../nse/types/index.js"));
44
+ exports.NSETypes = NSETypes;
45
+ const BSETypes = __importStar(require("../bse/types/index.js"));
46
+ exports.BSETypes = BSETypes;
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,gDAAgD;AAChD,gEAAkD;AAIzC,4BAAQ;AAHjB,gEAAkD;AAG/B,4BAAQ"}
package/package.json ADDED
@@ -0,0 +1,99 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/package.json",
3
+ "name": "nse-bse-api",
4
+ "version": "0.1.0",
5
+ "description": "Unified TypeScript API for NSE and BSE India stock exchanges",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/bshada/nse-bse-api.git"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/bshada/nse-bse-api/issues"
13
+ },
14
+ "homepage": "https://github.com/bshada/nse-bse-api#readme",
15
+ "author": "bshada",
16
+ "type": "module",
17
+ "browser": false,
18
+ "main": "dist-cjs/index.js",
19
+ "module": "dist/index.js",
20
+ "types": "dist/index.d.ts",
21
+ "sideEffects": false,
22
+ "exports": {
23
+ ".": {
24
+ "import": "./dist/index.js",
25
+ "require": "./dist-cjs/index.js",
26
+ "types": "./dist/index.d.ts"
27
+ },
28
+ "./nse": {
29
+ "import": "./dist/nse/index.js",
30
+ "require": "./dist-cjs/nse/index.js",
31
+ "types": "./dist/nse/index.d.ts"
32
+ },
33
+ "./bse": {
34
+ "import": "./dist/bse/index.js",
35
+ "require": "./dist-cjs/bse/index.js",
36
+ "types": "./dist/bse/index.d.ts"
37
+ }
38
+ },
39
+ "scripts": {
40
+ "build": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json && node scripts/postbuild-cjs.js",
41
+ "clean": "rimraf dist dist-cjs",
42
+ "lint": "eslint 'src/**/*.ts'",
43
+ "test": "vitest run",
44
+ "test:watch": "vitest",
45
+ "test:network": "vitest run",
46
+ "test:nse": "vitest run tests/nse",
47
+ "test:bse": "vitest run tests/bse",
48
+ "prepare": "npm run build",
49
+ "prepublishOnly": "npm run build"
50
+ },
51
+ "engines": {
52
+ "node": ">=18"
53
+ },
54
+ "files": [
55
+ "dist",
56
+ "dist-cjs",
57
+ "README.md",
58
+ "LICENSE"
59
+ ],
60
+ "publishConfig": {
61
+ "access": "public"
62
+ },
63
+ "keywords": [
64
+ "nse",
65
+ "bse",
66
+ "nseindia",
67
+ "bseindia",
68
+ "stocks",
69
+ "api",
70
+ "typescript",
71
+ "india",
72
+ "stock-exchange",
73
+ "stock-market-api"
74
+ ],
75
+ "dependencies": {
76
+ "adm-zip": "^0.5.16",
77
+ "axios": "^1.7.7",
78
+ "axios-cookiejar-support": "^6.0.2",
79
+ "got": "^12.6.1",
80
+ "node-html-parser": "^6.1.10",
81
+ "tough-cookie": "^4.1.3"
82
+ },
83
+ "devDependencies": {
84
+ "@types/adm-zip": "^0.5.6",
85
+ "@types/node": "^22.7.4",
86
+ "@types/tough-cookie": "^4.0.5",
87
+ "@typescript-eslint/eslint-plugin": "^8.46.1",
88
+ "@typescript-eslint/parser": "^8.46.1",
89
+ "@vitest/coverage-v8": "^2.0.5",
90
+ "@vitest/ui": "^2.0.5",
91
+ "cross-env": "^7.0.3",
92
+ "eslint": "^9.11.0",
93
+ "prettier": "^3.1.0",
94
+ "rimraf": "^6.0.1",
95
+ "tsx": "^4.20.6",
96
+ "typescript": "^5.5.4",
97
+ "vitest": "^2.0.5"
98
+ }
99
+ }