borsajs 0.1.1 → 0.1.4

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.
package/README.md CHANGED
@@ -2,9 +2,7 @@
2
2
 
3
3
  **[Türkçe](README.md) | [English](README.en.md)**
4
4
 
5
- > **TypeScript/JavaScript port of [borsapy](https://github.com/saidsurucu/borsapy)** - Python versiyonundan ilham alınarak geliştirilmiştir.
6
-
7
- Türk finansal piyasaları için TypeScript/JavaScript veri kütüphanesi. BIST hisseleri, döviz, kripto, yatırım fonları ve ekonomik veriler için yfinance benzeri API.
5
+ Türkiye finansal piyasaları için TypeScript/JavaScript veri kütüphanesi. BIST hisseleri, döviz, kripto, yatırım fonları ve ekonomik veriler için finansal veri kaynaklarından veri çeken kütüphanedir.
8
6
 
9
7
  ## Kurulum
10
8
 
@@ -15,29 +13,268 @@ npm install borsajs
15
13
  ## Hızlı Başlangıç
16
14
 
17
15
  ```typescript
18
- import { Ticker, FX, Crypto, Fund, Inflation, download } from 'borsajs';
16
+ import { Ticker, FX, Crypto, Fund, Inflation, symbols, cryptoSymbols } from 'borsajs';
19
17
 
20
- // Hisse senedi verisi
18
+ // Hisse senedi
21
19
  const stock = new Ticker('THYAO');
22
20
  const info = await stock.getInfo();
23
- const history = await stock.getHistory({ period: '1mo' });
21
+ // { symbol: 'THYAO', last: 274.25, change: 5.75, changePercent: 2.14, ... }
24
22
 
25
23
  // Döviz
26
24
  const usd = new FX('USD');
27
25
  const rate = await usd.getCurrent();
26
+ // → { symbol: 'USD', last: 43.02, updateTime: '2026-01-02T20:59:58.000Z' }
28
27
 
29
28
  // Kripto
30
29
  const btc = new Crypto('BTCTRY');
31
30
  const price = await btc.getCurrent();
31
+ // → { symbol: 'BTCTRY', last: 3839080, bid: 3839136, ask: 3840481, ... }
32
+
33
+ // Sembol listeleri
34
+ const stockList = symbols(); // → ['AKBNK', 'ARCLK', 'ASELS', ...] (80 hisse)
35
+ const cryptoList = await cryptoSymbols(); // → ['BTCTRY', 'ETHTRY', ...] (173 çift)
36
+ ```
37
+
38
+ ## API Referansı
39
+
40
+ ### Ticker (Hisse Senedi)
41
+
42
+ ```typescript
43
+ import { Ticker } from 'borsajs';
44
+
45
+ const stock = new Ticker('THYAO');
46
+ const info = await stock.getInfo();
47
+ ```
48
+
49
+ **Response:**
50
+ ```json
51
+ {
52
+ "symbol": "THYAO",
53
+ "last": 274.25,
54
+ "open": 271,
55
+ "high": 274.25,
56
+ "low": 269.75,
57
+ "close": 268.5,
58
+ "volume": 7853192164.25,
59
+ "change": 5.75,
60
+ "changePercent": 2.14,
61
+ "updateTime": "2026-01-01T21:00:00.000Z",
62
+ "type": "stock"
63
+ }
64
+ ```
65
+
66
+ ### FX (Döviz & Emtia)
67
+
68
+ ```typescript
69
+ import { FX, fxSymbols } from 'borsajs';
70
+
71
+ console.log(fxSymbols);
72
+ // → ['USD', 'EUR', 'GBP', 'JPY', 'CHF', 'CAD', 'AUD', 'gram-altin', 'ceyrek-altin', ...]
73
+
74
+ const usd = new FX('USD');
75
+ const current = await usd.getCurrent();
76
+ ```
77
+
78
+ **Response:**
79
+ ```json
80
+ {
81
+ "symbol": "USD",
82
+ "last": 43.0237,
83
+ "open": 0,
84
+ "high": 0,
85
+ "low": 0,
86
+ "updateTime": "2026-01-02T20:59:58.000Z"
87
+ }
88
+ ```
89
+
90
+ ### Crypto (Kripto Para)
91
+
92
+ ```typescript
93
+ import { Crypto, cryptoSymbols } from 'borsajs';
94
+
95
+ const pairs = await cryptoSymbols('TRY');
96
+ // → ['BTCTRY', 'ETHTRY', 'XRPTRY', ...] (173 çift)
97
+
98
+ const btc = new Crypto('BTCTRY');
99
+ const current = await btc.getCurrent();
100
+ ```
101
+
102
+ **Response:**
103
+ ```json
104
+ {
105
+ "symbol": "BTCTRY",
106
+ "last": 3839080,
107
+ "open": 3822360,
108
+ "high": 3891234,
109
+ "low": 3793804,
110
+ "bid": 3839136,
111
+ "ask": 3840481,
112
+ "volume": 36.22,
113
+ "change": 18121,
114
+ "changePercent": 0.44,
115
+ "timestamp": 1767432414317
116
+ }
117
+ ```
118
+
119
+ ### Index (Endeksler)
120
+
121
+ ```typescript
122
+ import { Index, indexSymbols } from 'borsajs';
123
+
124
+ console.log(indexSymbols);
125
+ // → ['XU100', 'XU050', 'XU030', 'XBANK', 'XUSIN', ...]
126
+
127
+ const xu100 = new Index('XU100');
128
+ const info = await xu100.getInfo();
129
+ ```
130
+
131
+ **Response:**
132
+ ```json
133
+ {
134
+ "symbol": "XU100",
135
+ "last": 11498.38,
136
+ "open": 11296.52,
137
+ "high": 11498.38,
138
+ "low": 11296.52,
139
+ "change": 236.86,
140
+ "changePercent": 2.1,
141
+ "name": "BIST 100",
142
+ "type": "index"
143
+ }
144
+ ```
32
145
 
33
- // Yatırım fonu
34
- const fund = new Fund('AAK');
35
- const fundInfo = await fund.getInfo();
146
+ ### Inflation (Enflasyon)
147
+
148
+ ```typescript
149
+ import { Inflation } from 'borsajs';
36
150
 
37
- // Enflasyon
38
151
  const inflation = new Inflation();
39
152
  const latest = await inflation.getLatest();
40
- const calculation = await inflation.calculate(100000, '2020-01', '2024-01');
153
+ const calc = await inflation.calculate(100000, '2020-01', '2024-01');
154
+ ```
155
+
156
+ **Response (Latest):**
157
+ ```json
158
+ {
159
+ "date": "2025-10-31",
160
+ "yearMonth": "11-2025",
161
+ "yearlyInflation": 31.07,
162
+ "monthlyInflation": 0.87,
163
+ "type": "TUFE"
164
+ }
165
+ ```
166
+
167
+ **Response (Calculate):**
168
+ ```json
169
+ {
170
+ "startDate": "2020-01",
171
+ "endDate": "2024-01",
172
+ "initialValue": 100000,
173
+ "finalValue": 444399.15,
174
+ "totalYears": 4,
175
+ "totalChange": 344.4,
176
+ "avgYearlyInflation": 45.19
177
+ }
178
+ ```
179
+
180
+ ### KAP (Kamu Aydınlatma Platformu)
181
+
182
+ ```typescript
183
+ import { getKapProvider } from 'borsajs';
184
+
185
+ const kap = getKapProvider();
186
+ const companies = await kap.getCompanies();
187
+ const search = await kap.search('türk hava');
188
+ ```
189
+
190
+ **Response (Companies):**
191
+ ```json
192
+ [
193
+ {
194
+ "ticker": "THYAO",
195
+ "name": "TÜRK HAVA YOLLARI A.O.",
196
+ "city": "İSTANBUL"
197
+ }
198
+ ]
199
+ ```
200
+
201
+ **Response (Search):**
202
+ ```json
203
+ [
204
+ {
205
+ "ticker": "THYAO",
206
+ "name": "TÜRK HAVA YOLLARI A.O.",
207
+ "city": "İSTANBUL"
208
+ }
209
+ ]
210
+ ```
211
+
212
+ **KAP Bildirimleri:**
213
+ ```typescript
214
+ const disclosures = await kap.getDisclosures('THYAO', 5);
215
+ ```
216
+
217
+ **Response (Disclosures):**
218
+ ```json
219
+ [
220
+ {
221
+ "date": "29.12.2025 19:21:18",
222
+ "title": "Haber ve Söylentilere İlişkin Açıklama",
223
+ "disclosureIndex": 1530826,
224
+ "url": "https://www.kap.org.tr/tr/Bildirim/1530826"
225
+ }
226
+ ]
227
+ ```
228
+
229
+ **Beklenen Bildirim Takvimi:**
230
+ ```typescript
231
+ const calendar = await kap.getCalendar('THYAO');
232
+ ```
233
+
234
+ **Response (Calendar):**
235
+ ```json
236
+ [
237
+ {
238
+ "startDate": "01.01.2026",
239
+ "endDate": "11.03.2026",
240
+ "subject": "Finansal Rapor",
241
+ "period": "Yıllık",
242
+ "year": "2025"
243
+ }
244
+ ]
245
+ ```
246
+
247
+ **Şirket Detayları:**
248
+ ```typescript
249
+ const details = await kap.getCompanyDetails('THYAO');
250
+ ```
251
+
252
+ **Response (Company Details):**
253
+ ```json
254
+ {
255
+ "sector": "ULAŞTIRMA VE DEPOLAMA",
256
+ "market": "YILDIZ PAZAR",
257
+ "website": "www.turkishairlines.com / http://investor.turkishairlines.com"
258
+ }
259
+ ```
260
+
261
+ ### Symbols (Sembol Listeleri)
262
+
263
+ ```typescript
264
+ import { symbols, searchSymbols, cryptoSymbols, fxSymbols, indexSymbols } from 'borsajs';
265
+
266
+ // Hisse sembolleri
267
+ const stocks = symbols(); // → 80 hisse
268
+ const banks = searchSymbols('BNK'); // → ['AKBNK', 'YKBNK', 'SKBNK']
269
+
270
+ // Kripto sembolleri
271
+ const crypto = await cryptoSymbols('TRY'); // → 173 çift
272
+
273
+ // FX sembolleri
274
+ console.log(fxSymbols); // → 19 döviz/emtia
275
+
276
+ // Endeks sembolleri
277
+ console.log(indexSymbols); // → 19 endeks
41
278
  ```
42
279
 
43
280
  ## Veri Kaynakları
@@ -52,20 +289,15 @@ Bu kütüphane aşağıdaki kamuya açık veri kaynaklarından yararlanmaktadır
52
289
  | Crypto | BtcTurk | [btcturk.com](https://www.btcturk.com/) | Kripto para verileri |
53
290
  | Fund | TEFAS | [tefas.gov.tr](https://www.tefas.gov.tr/) | Yatırım fonu verileri |
54
291
  | Inflation | TCMB | [tcmb.gov.tr](https://www.tcmb.gov.tr/) | Enflasyon verileri |
292
+ | KAP | KAP | [kap.org.tr](https://www.kap.org.tr/) | Şirket bilgileri |
55
293
  | VIOP | İş Yatırım | [isyatirim.com.tr](https://www.isyatirim.com.tr/) | Vadeli işlem ve opsiyon |
56
- | Companies | KAP | [kap.org.tr](https://www.kap.org.tr/) | Şirket bilgileri ve bildirimleri |
57
294
 
58
295
  ## ⚠️ Önemli Uyarılar
59
296
 
60
- ### Veri Kaynakları Hakkında
61
- Bu kütüphane aracılığıyla erişilen veriler, yukarıda listelenen üçüncü taraf kaynaklara aittir. Veriler ilgili kaynakların kullanım koşullarına tabidir.
62
-
63
297
  ### Ticari Kullanım
64
298
  **Bu kütüphane yalnızca kişisel ve eğitim amaçlı kullanım için tasarlanmıştır.**
65
299
 
66
- Ticari kullanım için:
67
- - İlgili veri kaynağı sağlayıcılarından açık izin almanız gerekmektedir
68
- - Bu kütüphanenin yazarları, verilerin izinsiz ticari kullanımından sorumlu değildir
300
+ Ticari kullanım için ilgili veri kaynağı sağlayıcılarından açık izin almanız gerekmektedir.
69
301
 
70
302
  ### Referans Proje
71
303
  Bu proje, [borsapy](https://github.com/saidsurucu/borsapy) Python kütüphanesinden ilham alınarak TypeScript'e port edilmiştir.
package/dist/index.d.ts CHANGED
@@ -13,7 +13,8 @@ export { Index, indices, index, INDICES } from './index-class.js';
13
13
  export type { IndexInfo } from './index-class.js';
14
14
  export { Inflation } from './inflation.js';
15
15
  export { VIOP } from './viop.js';
16
- export { companies, searchCompanies } from './market.js';
16
+ export { symbols, searchSymbols, cryptoSymbols, fxSymbols, indexSymbols } from './market.js';
17
+ export type { FXSymbol, IndexSymbol, StockSymbol, Company } from './market.js';
17
18
  export { BorsajsError, TickerNotFoundError, DataNotAvailableError, APIError, AuthenticationError, RateLimitError, InvalidPeriodError, InvalidIntervalError } from './exceptions.js';
18
19
  export { Cache, TTL, getCache } from './cache.js';
19
20
  export type { OHLCVData, HistoryOptions } from './providers/paratic.js';
@@ -21,6 +22,6 @@ export type { TickerData } from './providers/btcturk.js';
21
22
  export type { FXCurrentData, FXHistoryData } from './providers/dovizcom.js';
22
23
  export type { FundInfo, FundHistoryData, SearchResult } from './providers/tefas.js';
23
24
  export type { InflationLatest, InflationData, InflationCalculation } from './providers/tcmb.js';
24
- export type { ContractData, Company, Disclosure } from './providers/kap.js';
25
+ export type { ContractData, Disclosure } from './providers/kap.js';
25
26
  export declare const VERSION = "0.1.0";
26
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEpL,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAElD,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC5E,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpF,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChG,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE5E,eAAO,MAAM,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7F,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEpL,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAElD,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC5E,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpF,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChG,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEnE,eAAO,MAAM,OAAO,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ export { Fund, searchFunds } from './fund.js';
9
9
  export { Index, indices, index, INDICES } from './index-class.js';
10
10
  export { Inflation } from './inflation.js';
11
11
  export { VIOP } from './viop.js';
12
- export { companies, searchCompanies } from './market.js';
12
+ export { symbols, searchSymbols, cryptoSymbols, fxSymbols, indexSymbols } from './market.js';
13
13
  export { BorsajsError, TickerNotFoundError, DataNotAvailableError, APIError, AuthenticationError, RateLimitError, InvalidPeriodError, InvalidIntervalError } from './exceptions.js';
14
14
  export { Cache, TTL, getCache } from './cache.js';
15
15
  export const VERSION = '0.1.0';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEpL,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AASlD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG7F,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEpL,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AASlD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
package/dist/market.d.ts CHANGED
@@ -1,7 +1,36 @@
1
+ declare const BIST_STOCKS: readonly ["THYAO", "GARAN", "AKBNK", "YKBNK", "ISCTR", "HALKB", "VAKBN", "SAHOL", "SISE", "TUPRS", "TCELL", "EREGL", "BIMAS", "KOZAL", "PETKM", "ASELS", "KCHOL", "TOASO", "FROTO", "ARCLK", "MGROS", "TTKOM", "ENKAI", "PGSUS", "TAVHL", "EKGYO", "SASA", "DOHOL", "VESTL", "GUBRF", "KOZAA", "KLMSC", "KRDMD", "ODAS", "TSKB", "AKSEN", "AEFES", "KONTR", "CEMTS", "LOGO", "OYAKC", "ULKER", "CIMSA", "ALARK", "TURSG", "ISGYO", "GESAN", "SOKM", "DOAS", "OTKAR", "BTCIM", "BRISA", "NETAS", "IHLGM", "TKFEN", "TRGYO", "AYGAZ", "CCOLA", "MAVI", "HEKTS", "ANSGR", "ZOREN", "AGHOL", "ISMEN", "ANHYT", "IPEKE", "KORDS", "KARTN", "KLRHO", "BINHO", "AKSA", "NUHCM", "ALBRK", "SKBNK", "TMSN", "VERUS", "SISEB", "POLHO", "GLYHO", "TUREX"];
2
+ export interface Company {
3
+ ticker: string;
4
+ name?: string;
5
+ sector?: string;
6
+ }
1
7
  /**
2
- * Market-level functions for BIST data.
8
+ * Get common BIST stock symbols.
9
+ * @returns Array of stock symbols
3
10
  */
4
- import { Company } from './providers/kap.js';
5
- export declare function companies(): Promise<Company[]>;
6
- export declare function searchCompanies(query: string): Promise<Company[]>;
11
+ export declare function symbols(): string[];
12
+ /**
13
+ * Search stocks by ticker pattern.
14
+ * @param query - Search query (matches start of ticker)
15
+ * @returns Matching symbols
16
+ */
17
+ export declare function searchSymbols(query: string): string[];
18
+ /**
19
+ * Get available cryptocurrency pairs.
20
+ * @param quote - Quote currency (default: 'TRY')
21
+ * @returns Array of trading pairs (e.g., ['BTCTRY', 'ETHTRY', ...])
22
+ */
23
+ export declare function cryptoSymbols(quote?: string): Promise<string[]>;
24
+ /**
25
+ * Available FX symbols.
26
+ */
27
+ export declare const fxSymbols: readonly ["USD", "EUR", "GBP", "JPY", "CHF", "CAD", "AUD", "gram-altin", "ceyrek-altin", "yarim-altin", "tam-altin", "cumhuriyet-altini", "gumus", "ons", "BRENT", "WTI", "diesel", "gasoline", "lpg"];
28
+ /**
29
+ * Available BIST indices.
30
+ */
31
+ export declare const indexSymbols: readonly ["XU100", "XU050", "XU030", "XBANK", "XUSIN", "XHOLD", "XUTEK", "XGIDA", "XTRZM", "XULAS", "XSGRT", "XMANA", "XKMYA", "XMADN", "XELKT", "XTEKS", "XILTM", "XUMAL", "XUTUM"];
32
+ export type FXSymbol = typeof fxSymbols[number];
33
+ export type IndexSymbol = typeof indexSymbols[number];
34
+ export type StockSymbol = typeof BIST_STOCKS[number];
35
+ export {};
7
36
  //# sourceMappingURL=market.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../src/market.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAkB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7D,wBAAsB,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAA4C;AACjG,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAA2C"}
1
+ {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../src/market.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,WAAW,itBASP,CAAC;AAEX,MAAM,WAAW,OAAO;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,OAAO,IAAI,MAAM,EAAE,CAElC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAGrD;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,KAAK,GAAE,MAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE5E;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,wMAUZ,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY,sLAIf,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC"}
package/dist/market.js CHANGED
@@ -1,7 +1,62 @@
1
1
  /**
2
2
  * Market-level functions for BIST data.
3
3
  */
4
- import { getKapProvider } from './providers/kap.js';
5
- export async function companies() { return getKapProvider().getCompanies(); }
6
- export async function searchCompanies(query) { return getKapProvider().search(query); }
4
+ import { getBtcTurkProvider } from './providers/btcturk.js';
5
+ // Static list of major BIST stocks (commonly traded)
6
+ const BIST_STOCKS = [
7
+ 'THYAO', 'GARAN', 'AKBNK', 'YKBNK', 'ISCTR', 'HALKB', 'VAKBN', 'SAHOL', 'SISE', 'TUPRS',
8
+ 'TCELL', 'EREGL', 'BIMAS', 'KOZAL', 'PETKM', 'ASELS', 'KCHOL', 'TOASO', 'FROTO', 'ARCLK',
9
+ 'MGROS', 'TTKOM', 'ENKAI', 'PGSUS', 'TAVHL', 'EKGYO', 'SASA', 'DOHOL', 'VESTL', 'GUBRF',
10
+ 'KOZAA', 'KLMSC', 'KRDMD', 'ODAS', 'TSKB', 'AKSEN', 'AEFES', 'KONTR', 'CEMTS', 'LOGO',
11
+ 'OYAKC', 'ULKER', 'CIMSA', 'ALARK', 'TURSG', 'ISGYO', 'GESAN', 'SOKM', 'DOAS', 'OTKAR',
12
+ 'BTCIM', 'BRISA', 'NETAS', 'IHLGM', 'TKFEN', 'TRGYO', 'AYGAZ', 'CCOLA', 'MAVI', 'HEKTS',
13
+ 'ANSGR', 'ZOREN', 'AGHOL', 'ISMEN', 'ANHYT', 'IPEKE', 'KORDS', 'KARTN', 'KLRHO', 'BINHO',
14
+ 'AKSA', 'NUHCM', 'ALBRK', 'SKBNK', 'TMSN', 'VERUS', 'SISEB', 'POLHO', 'GLYHO', 'TUREX',
15
+ ];
16
+ /**
17
+ * Get common BIST stock symbols.
18
+ * @returns Array of stock symbols
19
+ */
20
+ export function symbols() {
21
+ return [...BIST_STOCKS].sort();
22
+ }
23
+ /**
24
+ * Search stocks by ticker pattern.
25
+ * @param query - Search query (matches start of ticker)
26
+ * @returns Matching symbols
27
+ */
28
+ export function searchSymbols(query) {
29
+ const q = query.toUpperCase();
30
+ return BIST_STOCKS.filter(s => s.includes(q));
31
+ }
32
+ /**
33
+ * Get available cryptocurrency pairs.
34
+ * @param quote - Quote currency (default: 'TRY')
35
+ * @returns Array of trading pairs (e.g., ['BTCTRY', 'ETHTRY', ...])
36
+ */
37
+ export async function cryptoSymbols(quote = 'TRY') {
38
+ return getBtcTurkProvider().getPairs(quote);
39
+ }
40
+ /**
41
+ * Available FX symbols.
42
+ */
43
+ export const fxSymbols = [
44
+ // Currencies
45
+ 'USD', 'EUR', 'GBP', 'JPY', 'CHF', 'CAD', 'AUD',
46
+ // Precious Metals
47
+ 'gram-altin', 'ceyrek-altin', 'yarim-altin', 'tam-altin', 'cumhuriyet-altini',
48
+ 'gumus', 'ons',
49
+ // Energy
50
+ 'BRENT', 'WTI',
51
+ // Fuel
52
+ 'diesel', 'gasoline', 'lpg',
53
+ ];
54
+ /**
55
+ * Available BIST indices.
56
+ */
57
+ export const indexSymbols = [
58
+ 'XU100', 'XU050', 'XU030', 'XBANK', 'XUSIN', 'XHOLD', 'XUTEK', 'XGIDA',
59
+ 'XTRZM', 'XULAS', 'XSGRT', 'XMANA', 'XKMYA', 'XMADN', 'XELKT', 'XTEKS',
60
+ 'XILTM', 'XUMAL', 'XUTUM',
61
+ ];
7
62
  //# sourceMappingURL=market.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"market.js","sourceRoot":"","sources":["../src/market.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAW,MAAM,oBAAoB,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,SAAS,KAAyB,OAAO,cAAc,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACjG,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAa,IAAwB,OAAO,cAAc,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"market.js","sourceRoot":"","sources":["../src/market.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,qDAAqD;AACrD,MAAM,WAAW,GAAG;IAChB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IACvF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACxF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACvF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IACrF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IACtF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IACvF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACxF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;CAChF,CAAC;AAQX;;;GAGG;AACH,MAAM,UAAU,OAAO;IACnB,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACvC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB,KAAK;IACrD,OAAO,kBAAkB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB,aAAa;IACb,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IAC/C,kBAAkB;IAClB,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB;IAC7E,OAAO,EAAE,KAAK;IACd,SAAS;IACT,OAAO,EAAE,KAAK;IACd,OAAO;IACP,QAAQ,EAAE,UAAU,EAAE,KAAK;CACrB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACtE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACtE,OAAO,EAAE,OAAO,EAAE,OAAO;CACnB,CAAC"}
@@ -5,17 +5,38 @@ export interface Company {
5
5
  city: string;
6
6
  }
7
7
  export interface Disclosure {
8
- id: string;
9
- date: Date;
8
+ date: string;
10
9
  title: string;
11
- type: string;
10
+ disclosureIndex: number;
12
11
  url: string;
13
12
  }
13
+ export interface CalendarEvent {
14
+ startDate: string;
15
+ endDate: string;
16
+ subject: string;
17
+ period: string;
18
+ year: string;
19
+ }
20
+ export interface CompanyDetails {
21
+ sector?: string;
22
+ market?: string;
23
+ website?: string;
24
+ }
14
25
  export declare class KapProvider extends BaseProvider {
15
26
  private static readonly BASE_URL;
27
+ private static readonly DISCLOSURE_URL;
28
+ private static readonly CALENDAR_API_URL;
29
+ private static readonly COMPANY_INFO_URL;
30
+ private oidMap;
31
+ private oidCacheTime;
32
+ private readonly CACHE_DURATION;
16
33
  constructor(options?: ProviderOptions);
17
34
  getCompanies(): Promise<Company[]>;
18
35
  search(query: string): Promise<Company[]>;
36
+ getMemberOid(symbol: string): Promise<string | null>;
37
+ getDisclosures(symbol: string, limit?: number): Promise<Disclosure[]>;
38
+ getCalendar(symbol: string): Promise<CalendarEvent[]>;
39
+ getCompanyDetails(symbol: string): Promise<CompanyDetails>;
19
40
  }
20
41
  export interface ContractData {
21
42
  code: string;
@@ -1 +1 @@
1
- {"version":3,"file":"kap.d.ts","sourceRoot":"","sources":["../../src/providers/kap.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAI1D,MAAM,WAAW,OAAO;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;CAAE;AACxE,MAAM,WAAW,UAAU;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;CAAE;AAEjG,qBAAa,WAAY,SAAQ,YAAY;IACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAA4B;gBAChD,OAAO,CAAC,EAAE,eAAe;IAE/B,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAiBlC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAKlD;AAED,MAAM,WAAW,YAAY;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;CAAE;AAEvJ,qBAAa,YAAa,SAAQ,YAAY;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuE;gBAC3F,OAAO,CAAC,EAAE,eAAe;IAE/B,UAAU,CAAC,QAAQ,GAAE,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,WAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAyB3G,UAAU,CAAC,QAAQ,GAAE,KAAK,GAAG,OAAO,GAAG,OAAe,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAsBzF;AAGD,wBAAgB,cAAc,IAAI,WAAW,CAA2E;AAExH,wBAAgB,eAAe,IAAI,YAAY,CAA+E"}
1
+ {"version":3,"file":"kap.d.ts","sourceRoot":"","sources":["../../src/providers/kap.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAI1D,MAAM,WAAW,OAAO;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;CAAE;AACxE,MAAM,WAAW,UAAU;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;CAAE;AAClG,MAAM,WAAW,aAAa;IAAG,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;CAAE;AACrH,MAAM,WAAW,cAAc;IAAG,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAAE;AAEvF,qBAAa,WAAY,SAAQ,YAAY;IACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAoD;IAC1F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAmE;IAC3G,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAiD;IACzF,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAY;gBAE/B,OAAO,CAAC,EAAE,eAAe;IAE/B,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAoClC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAMzC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAuCpD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAyCzE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA2DrD,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CAyCnE;AAED,MAAM,WAAW,YAAY;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;CAAE;AAEvJ,qBAAa,YAAa,SAAQ,YAAY;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuE;gBAC3F,OAAO,CAAC,EAAE,eAAe;IAE/B,UAAU,CAAC,QAAQ,GAAE,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,WAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAyB3G,UAAU,CAAC,QAAQ,GAAE,KAAK,GAAG,OAAO,GAAG,OAAe,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAsBzF;AAGD,wBAAgB,cAAc,IAAI,WAAW,CAA2E;AAExH,wBAAgB,eAAe,IAAI,YAAY,CAA+E"}