borsajs 0.1.5 → 0.2.1

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 (40) hide show
  1. package/LICENSE +2 -2
  2. package/README.en.md +123 -0
  3. package/README.md +122 -0
  4. package/dist/bond.d.ts +79 -0
  5. package/dist/bond.d.ts.map +1 -0
  6. package/dist/bond.js +110 -0
  7. package/dist/bond.js.map +1 -0
  8. package/dist/calendar.d.ts +77 -0
  9. package/dist/calendar.d.ts.map +1 -0
  10. package/dist/calendar.js +119 -0
  11. package/dist/calendar.js.map +1 -0
  12. package/dist/index.d.ts +9 -2
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +5 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/providers/dovizcom-bond.d.ts +22 -0
  17. package/dist/providers/dovizcom-bond.d.ts.map +1 -0
  18. package/dist/providers/dovizcom-bond.js +132 -0
  19. package/dist/providers/dovizcom-bond.js.map +1 -0
  20. package/dist/providers/dovizcom-calendar.d.ts +27 -0
  21. package/dist/providers/dovizcom-calendar.d.ts.map +1 -0
  22. package/dist/providers/dovizcom-calendar.js +188 -0
  23. package/dist/providers/dovizcom-calendar.js.map +1 -0
  24. package/dist/providers/isyatirim.d.ts +42 -0
  25. package/dist/providers/isyatirim.d.ts.map +1 -0
  26. package/dist/providers/isyatirim.js +243 -0
  27. package/dist/providers/isyatirim.js.map +1 -0
  28. package/dist/screener.d.ts +134 -0
  29. package/dist/screener.d.ts.map +1 -0
  30. package/dist/screener.js +219 -0
  31. package/dist/screener.js.map +1 -0
  32. package/package.json +1 -1
  33. package/src/bond.ts +122 -0
  34. package/src/calendar.ts +155 -0
  35. package/src/index.ts +12 -2
  36. package/src/providers/dovizcom-bond.ts +158 -0
  37. package/src/providers/dovizcom-calendar.ts +220 -0
  38. package/src/providers/isyatirim.ts +309 -0
  39. package/src/screener.ts +284 -0
  40. package/test/demo.ts +88 -1
package/LICENSE CHANGED
@@ -210,12 +210,12 @@ https://github.com/saidsurucu/borsapy
210
210
  This library accesses publicly available data from the following sources:
211
211
 
212
212
  - Paratic (https://www.paratic.com/) - Stock and index data
213
- - doviz.com (https://www.doviz.com/) - Forex, gold, and commodity data
213
+ - doviz.com (https://www.doviz.com/) - Forex, gold, commodity, economic calendar, and bond data
214
214
  - BtcTurk (https://www.btcturk.com/) - Cryptocurrency data
215
215
  - TEFAS (https://www.tefas.gov.tr/) - Investment fund data
216
216
  - TCMB (https://www.tcmb.gov.tr/) - Inflation data
217
217
  - KAP (https://www.kap.org.tr/) - Company information
218
- - İş Yatırım (https://www.isyatirim.com.tr/) - Derivatives (VIOP) data
218
+ - İş Yatırım (https://www.isyatirim.com.tr/) - Derivatives (VIOP) and stock screening data
219
219
 
220
220
  ================================================================================
221
221
  IMPORTANT NOTICE FOR COMMERCIAL USE
package/README.en.md CHANGED
@@ -10,6 +10,27 @@ A TypeScript/JavaScript data library for Turkey financial markets. yfinance-like
10
10
  npm install borsajs
11
11
  ```
12
12
 
13
+ ## Table of Contents
14
+
15
+ - [Quick Start](#quick-start)
16
+ - [API Reference](#api-reference)
17
+ - [Ticker (Stocks)](#ticker-stocks)
18
+ - [FX (Forex & Commodities)](#fx-forex--commodities)
19
+ - [Crypto](#crypto)
20
+ - [Index](#index)
21
+ - [Fund (Investment Funds)](#fund-investment-funds)
22
+ - [Inflation](#inflation)
23
+ - [KAP (Public Disclosure Platform)](#kap-public-disclosure-platform)
24
+ - [EconomicCalendar](#economiccalendar)
25
+ - [Bond](#bond)
26
+ - [Screener](#screener)
27
+ - [VIOP (Derivatives)](#viop-derivatives)
28
+ - [Symbols](#symbols)
29
+ - [Download (Multiple Tickers)](#download-multiple-tickers)
30
+ - [Data Sources](#data-sources)
31
+ - [Important Notices](#️-important-notices)
32
+ - [License](#license)
33
+
13
34
  ## Quick Start
14
35
 
15
36
  ```typescript
@@ -319,6 +340,105 @@ const details = await kap.getCompanyDetails('THYAO');
319
340
  }
320
341
  ```
321
342
 
343
+ ### EconomicCalendar
344
+
345
+ **Track global economic indicators and events in real-time.** Access economic data, reports, and announcements from TR, US, EU, and other countries. Make investment decisions based on macroeconomic indicators.
346
+
347
+ ```typescript
348
+ import { EconomicCalendar, economicCalendar } from 'borsajs';
349
+
350
+ const cal = new EconomicCalendar();
351
+ const events = await cal.thisWeek();
352
+ const highEvents = await cal.highImportance({ period: '1w' });
353
+
354
+ // Convenience function
355
+ const trEvents = await economicCalendar({ country: 'TR', importance: 'high' });
356
+ ```
357
+
358
+ **Response:**
359
+ ```json
360
+ [
361
+ {
362
+ "date": "2026-01-15T00:00:00.000Z",
363
+ "time": "10:00",
364
+ "country": "Türkiye",
365
+ "countryCode": "TR",
366
+ "event": "Inflation (YoY)",
367
+ "importance": "high",
368
+ "period": "December",
369
+ "actual": "64.77%",
370
+ "forecast": "65.00%",
371
+ "previous": "61.98%"
372
+ }
373
+ ]
374
+ ```
375
+
376
+ **Supported Countries:** TR, US, EU, DE, GB, JP, CN, FR, IT, CA, AU, CH
377
+
378
+ ### Bond
379
+
380
+ **Track Turkish government bond yields in real-time.** Access yields and changes for 2, 5, and 10-year bonds. Get risk-free rate for DCF calculations.
381
+
382
+ ```typescript
383
+ import { Bond, bonds, riskFreeRate } from 'borsajs';
384
+
385
+ // Get all bonds
386
+ const allBonds = await bonds();
387
+ // → [{ maturity: '2Y', yield: 36.71, ... }, ...]
388
+
389
+ // Specific bond
390
+ const bond10y = new Bond('10Y');
391
+ const yieldRate = await bond10y.getYieldRate();
392
+ const yieldDecimal = await bond10y.getYieldDecimal();
393
+
394
+ // Risk-free rate for DCF
395
+ const rfr = await riskFreeRate();
396
+ // → 0.2905 (for 29.05%)
397
+ ```
398
+
399
+ **Response (bonds):**
400
+ ```json
401
+ [
402
+ {
403
+ "name": "TR 2 Year Bond Rate",
404
+ "maturity": "2Y",
405
+ "yield": 36.71,
406
+ "yieldDecimal": 0.3671,
407
+ "change": 0.17,
408
+ "changePct": 0.47
409
+ }
410
+ ]
411
+ ```
412
+
413
+ ### Screener
414
+
415
+ **Screen BIST stocks with 40+ criteria.** Find stocks by market cap, P/E ratio, dividend yield, ROE, and more. Use 15 ready-made templates or custom filters.
416
+
417
+ ```typescript
418
+ import { Screener, screenStocks, sectors } from 'borsajs';
419
+
420
+ // Use template
421
+ const highDivStocks = await screenStocks({ template: 'high_dividend' });
422
+
423
+ // Custom filters
424
+ const customStocks = await screenStocks({
425
+ marketCapMin: 1000, // Min 1000M TL
426
+ peMax: 15, // Max 15 P/E
427
+ dividendYieldMin: 3, // Min 3% dividend
428
+ });
429
+
430
+ // Fluent API
431
+ const screener = new Screener();
432
+ const results = await screener
433
+ .addFilter('market_cap', { min: 215000 })
434
+ .addFilter('roe', { min: 15 })
435
+ .run();
436
+ ```
437
+
438
+ **Templates:** `small_cap`, `mid_cap`, `large_cap`, `high_dividend`, `high_upside`, `buy_recommendation`, `high_net_margin`, `low_pe`, `high_roe`, `high_foreign_ownership`
439
+
440
+ **Filter Criteria:** price, market_cap, pe, pb, ev_ebitda, dividend_yield, roe, roa, net_margin, return_1w, return_1m, foreign_ratio, upside_potential, and 30+ more criteria.
441
+
322
442
  ### Symbols
323
443
 
324
444
  **Access all market symbols in a single call.** Get comprehensive lists of stocks, cryptocurrencies, currencies, and indices. Perfect starting point for automated data collection or screening algorithms.
@@ -408,6 +528,9 @@ This library accesses publicly available data from the following sources:
408
528
  | Fund | TEFAS | [tefas.gov.tr](https://www.tefas.gov.tr/) | Investment fund data |
409
529
  | Inflation | TCMB | [tcmb.gov.tr](https://www.tcmb.gov.tr/) | Inflation data |
410
530
  | KAP | KAP | [kap.org.tr](https://www.kap.org.tr/) | Company information |
531
+ | EconomicCalendar | doviz.com | [doviz.com](https://www.doviz.com/) | Economic calendar |
532
+ | Bond | doviz.com | [doviz.com](https://www.doviz.com/) | Bond yields |
533
+ | Screener | İş Yatırım | [isyatirim.com.tr](https://www.isyatirim.com.tr/) | Stock screening |
411
534
  | VIOP | İş Yatırım | [isyatirim.com.tr](https://www.isyatirim.com.tr/) | Futures and options |
412
535
 
413
536
  ## ⚠️ Important Notices
package/README.md CHANGED
@@ -10,6 +10,26 @@ Türkiye finansal piyasaları için TypeScript/JavaScript veri kütüphanesi. BI
10
10
  npm install borsajs
11
11
  ```
12
12
 
13
+ ## İçindekiler
14
+
15
+ - [Hızlı Başlangıç](#hızlı-başlangıç)
16
+ - [API Referansı](#api-referansı)
17
+ - [Ticker (Hisse Senedi)](#ticker-hisse-senedi)
18
+ - [FX (Döviz & Emtia)](#fx-döviz--emtia)
19
+ - [Crypto (Kripto Para)](#crypto-kripto-para)
20
+ - [Index (Endeksler)](#index-endeksler)
21
+ - [Fund (Yatırım Fonları)](#fund-yatırım-fonları)
22
+ - [Inflation (Enflasyon)](#inflation-enflasyon)
23
+ - [KAP (Kamu Aydınlatma Platformu)](#kap-kamu-aydınlatma-platformu)
24
+ - [EconomicCalendar (Ekonomik Takvim)](#economiccalendar-ekonomik-takvim)
25
+ - [Bond (Tahvil Getirileri)](#bond-tahvil-getirileri)
26
+ - [Screener (Hisse Tarayıcı)](#screener-hisse-tarayıcı)
27
+ - [VIOP (Vadeli İşlem ve Opsiyon Piyasası)](#viop-vadeli-i̇şlem-ve-opsiyon-piyasası)
28
+ - [Symbols (Sembol Listeleri)](#symbols-sembol-listeleri)
29
+ - [Veri Kaynakları](#veri-kaynakları)
30
+ - [Önemli Uyarılar](#️-önemli-uyarılar)
31
+ - [Lisans](#lisans)
32
+
13
33
  ## Hızlı Başlangıç
14
34
 
15
35
  ```typescript
@@ -276,6 +296,105 @@ const details = await kap.getCompanyDetails('THYAO');
276
296
  }
277
297
  ```
278
298
 
299
+ ### EconomicCalendar (Ekonomik Takvim)
300
+
301
+ **Küresel ekonomik göstergeleri ve etkinlikleri gerçek zamanlı takip edin.** EconomicCalendar API ile TR, US, EU ve diğer ülkelerin önemli ekonomik verilerini, raporlarını ve açıklamalarını önceden öğrenin. Yatırım kararlarınızı makro ekonomik göstergeler ışığında alın.
302
+
303
+ ```typescript
304
+ import { EconomicCalendar, economicCalendar } from 'borsajs';
305
+
306
+ const cal = new EconomicCalendar();
307
+ const events = await cal.thisWeek();
308
+ const highEvents = await cal.highImportance({ period: '1w' });
309
+
310
+ // Convenience fonksiyonu
311
+ const trEvents = await economicCalendar({ country: 'TR', importance: 'high' });
312
+ ```
313
+
314
+ **Response:**
315
+ ```json
316
+ [
317
+ {
318
+ "date": "2026-01-15T00:00:00.000Z",
319
+ "time": "10:00",
320
+ "country": "Türkiye",
321
+ "countryCode": "TR",
322
+ "event": "Enflasyon (YoY)",
323
+ "importance": "high",
324
+ "period": "Aralık",
325
+ "actual": "64.77%",
326
+ "forecast": "65.00%",
327
+ "previous": "61.98%"
328
+ }
329
+ ]
330
+ ```
331
+
332
+ **Desteklenen Ülkeler:** TR, US, EU, DE, GB, JP, CN, FR, IT, CA, AU, CH
333
+
334
+ ### Bond (Tahvil Getirileri)
335
+
336
+ **Türk devlet tahvillerinin getirilerini anlık izleyin.** Bond API ile 2, 5 ve 10 yıllık tahvil faizlerini ve değişimlerini takip edin. DCF hesaplamaları için risksiz getiri oranına kolayca erişin.
337
+
338
+ ```typescript
339
+ import { Bond, bonds, riskFreeRate } from 'borsajs';
340
+
341
+ // Tüm tahvilleri al
342
+ const allBonds = await bonds();
343
+ // → [{ maturity: '2Y', yield: 36.71, ... }, ...]
344
+
345
+ // Belirli bir tahvil
346
+ const bond10y = new Bond('10Y');
347
+ const yieldRate = await bond10y.getYieldRate();
348
+ const yieldDecimal = await bond10y.getYieldDecimal();
349
+
350
+ // DCF hesaplamaları için risksiz getiri
351
+ const rfr = await riskFreeRate();
352
+ // → 0.2905 (29.05% için)
353
+ ```
354
+
355
+ **Response (bonds):**
356
+ ```json
357
+ [
358
+ {
359
+ "name": "TR 2 Yıllık Tahvil Faizi",
360
+ "maturity": "2Y",
361
+ "yield": 36.71,
362
+ "yieldDecimal": 0.3671,
363
+ "change": 0.17,
364
+ "changePct": 0.47
365
+ }
366
+ ]
367
+ ```
368
+
369
+ ### Screener (Hisse Tarayıcı)
370
+
371
+ **BIST hisselerini 40+ farklı kritere göre tarayın.** Screener API ile piyasa değeri, F/K oranı, temettü verimi, ROE ve daha fazla kritere göre hisse senedi bulun. 15 hazır şablon veya özel filtreler ile yatırım stratejinize uygun hisseleri keşfedin.
372
+
373
+ ```typescript
374
+ import { Screener, screenStocks, sectors } from 'borsajs';
375
+
376
+ // Hazır şablon kullan
377
+ const highDivStocks = await screenStocks({ template: 'high_dividend' });
378
+
379
+ // Özel filtreler
380
+ const customStocks = await screenStocks({
381
+ marketCapMin: 1000, // Min 1000M TL
382
+ peMax: 15, // Maks 15 F/K
383
+ dividendYieldMin: 3, // Min %3 temettü
384
+ });
385
+
386
+ // Fluent API
387
+ const screener = new Screener();
388
+ const results = await screener
389
+ .addFilter('market_cap', { min: 215000 })
390
+ .addFilter('roe', { min: 15 })
391
+ .run();
392
+ ```
393
+
394
+ **Hazır Şablonlar:** `small_cap`, `mid_cap`, `large_cap`, `high_dividend`, `high_upside`, `buy_recommendation`, `high_net_margin`, `low_pe`, `high_roe`, `high_foreign_ownership`
395
+
396
+ **Filtre Kriterleri:** price, market_cap, pe, pb, ev_ebitda, dividend_yield, roe, roa, net_margin, return_1w, return_1m, foreign_ratio, upside_potential ve 30+ kriter daha.
397
+
279
398
  ### VIOP (Vadeli İşlem ve Opsiyon Piyasası)
280
399
 
281
400
  **Türk türev piyasasını gerçek zamanlı takip edin.** Hisse senedi vadeli işlemleri, endeks vadeli işlemleri, döviz ve emtia kontratlarına anında erişin. Riskten korunma (hedging) stratejileri ve türev ürün ticareti için vazgeçilmez.
@@ -354,6 +473,9 @@ Bu kütüphane aşağıdaki kamuya açık veri kaynaklarından yararlanmaktadır
354
473
  | Fund | TEFAS | [tefas.gov.tr](https://www.tefas.gov.tr/) | Yatırım fonu verileri |
355
474
  | Inflation | TCMB | [tcmb.gov.tr](https://www.tcmb.gov.tr/) | Enflasyon verileri |
356
475
  | KAP | KAP | [kap.org.tr](https://www.kap.org.tr/) | Şirket bilgileri |
476
+ | EconomicCalendar | doviz.com | [doviz.com](https://www.doviz.com/) | Ekonomik takvim |
477
+ | Bond | doviz.com | [doviz.com](https://www.doviz.com/) | Tahvil getirileri |
478
+ | Screener | İş Yatırım | [isyatirim.com.tr](https://www.isyatirim.com.tr/) | Hisse tarama |
357
479
  | VIOP | İş Yatırım | [isyatirim.com.tr](https://www.isyatirim.com.tr/) | Vadeli işlem ve opsiyon |
358
480
 
359
481
  ## ⚠️ Önemli Uyarılar
package/dist/bond.d.ts ADDED
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Bond class for Turkish government bond yields - yfinance-like API.
3
+ */
4
+ import { type BondData } from './providers/dovizcom-bond.js';
5
+ export type { BondData };
6
+ export declare class Bond {
7
+ private maturity;
8
+ private provider;
9
+ private dataCache;
10
+ /**
11
+ * Create a Bond instance for a specific maturity.
12
+ *
13
+ * @param maturity - Bond maturity (2Y, 5Y, or 10Y)
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const bond = new Bond('10Y');
18
+ * const yieldRate = await bond.getYieldRate();
19
+ * ```
20
+ */
21
+ constructor(maturity: '2Y' | '5Y' | '10Y');
22
+ private getData;
23
+ /**
24
+ * Get the bond maturity.
25
+ */
26
+ getMaturity(): string;
27
+ /**
28
+ * Get the bond name.
29
+ */
30
+ getName(): Promise<string>;
31
+ /**
32
+ * Get the current yield as percentage.
33
+ * @returns Yield rate as percentage (e.g., 28.03 for 28.03%)
34
+ */
35
+ getYieldRate(): Promise<number>;
36
+ /**
37
+ * Get the current yield as decimal.
38
+ * @returns Yield rate as decimal (e.g., 0.2803 for 28.03%)
39
+ */
40
+ getYieldDecimal(): Promise<number>;
41
+ /**
42
+ * Get the absolute change in yield.
43
+ */
44
+ getChange(): Promise<number | null>;
45
+ /**
46
+ * Get the percentage change in yield.
47
+ */
48
+ getChangePct(): Promise<number | null>;
49
+ /**
50
+ * Get all bond information.
51
+ */
52
+ getInfo(): Promise<BondData>;
53
+ }
54
+ /**
55
+ * Get all Turkish government bond yields.
56
+ *
57
+ * @returns Array of bond data
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * import { bonds } from 'borsajs';
62
+ * const allBonds = await bonds();
63
+ * ```
64
+ */
65
+ export declare function bonds(): Promise<BondData[]>;
66
+ /**
67
+ * Get the risk-free rate for Turkish market (10Y bond yield).
68
+ *
69
+ * @returns 10-year government bond yield as decimal
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * import { riskFreeRate } from 'borsajs';
74
+ * const rfr = await riskFreeRate();
75
+ * console.log(`Risk-free rate: ${(rfr * 100).toFixed(2)}%`);
76
+ * ```
77
+ */
78
+ export declare function riskFreeRate(): Promise<number | null>;
79
+ //# sourceMappingURL=bond.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bond.d.ts","sourceRoot":"","sources":["../src/bond.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC9E,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB,qBAAa,IAAI;IACb,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,SAAS,CAAyB;IAE1C;;;;;;;;;;OAUG;gBACS,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK;YAI3B,OAAO;IAOrB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAKhC;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAKrC;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAKxC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKzC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK5C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;CAGrC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAGjD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAG3D"}
package/dist/bond.js ADDED
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Bond class for Turkish government bond yields - yfinance-like API.
3
+ */
4
+ import { getBondProvider } from './providers/dovizcom-bond.js';
5
+ export class Bond {
6
+ maturity;
7
+ provider = getBondProvider();
8
+ dataCache = null;
9
+ /**
10
+ * Create a Bond instance for a specific maturity.
11
+ *
12
+ * @param maturity - Bond maturity (2Y, 5Y, or 10Y)
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const bond = new Bond('10Y');
17
+ * const yieldRate = await bond.getYieldRate();
18
+ * ```
19
+ */
20
+ constructor(maturity) {
21
+ this.maturity = maturity.toUpperCase();
22
+ }
23
+ async getData() {
24
+ if (!this.dataCache) {
25
+ this.dataCache = await this.provider.getBond(this.maturity);
26
+ }
27
+ return this.dataCache;
28
+ }
29
+ /**
30
+ * Get the bond maturity.
31
+ */
32
+ getMaturity() {
33
+ return this.maturity;
34
+ }
35
+ /**
36
+ * Get the bond name.
37
+ */
38
+ async getName() {
39
+ const data = await this.getData();
40
+ return data.name;
41
+ }
42
+ /**
43
+ * Get the current yield as percentage.
44
+ * @returns Yield rate as percentage (e.g., 28.03 for 28.03%)
45
+ */
46
+ async getYieldRate() {
47
+ const data = await this.getData();
48
+ return data.yield;
49
+ }
50
+ /**
51
+ * Get the current yield as decimal.
52
+ * @returns Yield rate as decimal (e.g., 0.2803 for 28.03%)
53
+ */
54
+ async getYieldDecimal() {
55
+ const data = await this.getData();
56
+ return data.yieldDecimal;
57
+ }
58
+ /**
59
+ * Get the absolute change in yield.
60
+ */
61
+ async getChange() {
62
+ const data = await this.getData();
63
+ return data.change;
64
+ }
65
+ /**
66
+ * Get the percentage change in yield.
67
+ */
68
+ async getChangePct() {
69
+ const data = await this.getData();
70
+ return data.changePct;
71
+ }
72
+ /**
73
+ * Get all bond information.
74
+ */
75
+ async getInfo() {
76
+ return this.getData();
77
+ }
78
+ }
79
+ /**
80
+ * Get all Turkish government bond yields.
81
+ *
82
+ * @returns Array of bond data
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * import { bonds } from 'borsajs';
87
+ * const allBonds = await bonds();
88
+ * ```
89
+ */
90
+ export async function bonds() {
91
+ const provider = getBondProvider();
92
+ return provider.getBondYields();
93
+ }
94
+ /**
95
+ * Get the risk-free rate for Turkish market (10Y bond yield).
96
+ *
97
+ * @returns 10-year government bond yield as decimal
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * import { riskFreeRate } from 'borsajs';
102
+ * const rfr = await riskFreeRate();
103
+ * console.log(`Risk-free rate: ${(rfr * 100).toFixed(2)}%`);
104
+ * ```
105
+ */
106
+ export async function riskFreeRate() {
107
+ const provider = getBondProvider();
108
+ return provider.get10YYield();
109
+ }
110
+ //# sourceMappingURL=bond.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bond.js","sourceRoot":"","sources":["../src/bond.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,eAAe,EAAiB,MAAM,8BAA8B,CAAC;AAG9E,MAAM,OAAO,IAAI;IACL,QAAQ,CAAsB;IAC9B,QAAQ,GAAG,eAAe,EAAE,CAAC;IAC7B,SAAS,GAAoB,IAAI,CAAC;IAE1C;;;;;;;;;;OAUG;IACH,YAAY,QAA6B;QACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAyB,CAAC;IAClE,CAAC;IAEO,KAAK,CAAC,OAAO;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,WAAW;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACT,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY;QACd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe;QACjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACX,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QACd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;CACJ;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK;IACvB,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,OAAO,QAAQ,CAAC,aAAa,EAAE,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAC9B,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * EconomicCalendar class for economic events - yfinance-like API.
3
+ */
4
+ import { type EconomicEvent } from './providers/dovizcom-calendar.js';
5
+ export type { EconomicEvent };
6
+ export declare class EconomicCalendar {
7
+ private static readonly COUNTRIES;
8
+ private provider;
9
+ /**
10
+ * Get economic calendar events.
11
+ *
12
+ * @param options - Options for filtering events
13
+ * @returns Array of economic events
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const cal = new EconomicCalendar();
18
+ * const events = await cal.events({ period: '1w' });
19
+ * ```
20
+ */
21
+ events(options?: {
22
+ period?: '1d' | '1w' | '2w' | '1mo';
23
+ start?: Date | string;
24
+ end?: Date | string;
25
+ country?: string | string[];
26
+ importance?: 'low' | 'mid' | 'high';
27
+ }): Promise<EconomicEvent[]>;
28
+ /**
29
+ * Get today's economic events.
30
+ */
31
+ today(options?: {
32
+ country?: string | string[];
33
+ importance?: 'low' | 'mid' | 'high';
34
+ }): Promise<EconomicEvent[]>;
35
+ /**
36
+ * Get this week's economic events.
37
+ */
38
+ thisWeek(options?: {
39
+ country?: string | string[];
40
+ importance?: 'low' | 'mid' | 'high';
41
+ }): Promise<EconomicEvent[]>;
42
+ /**
43
+ * Get this month's economic events.
44
+ */
45
+ thisMonth(options?: {
46
+ country?: string | string[];
47
+ importance?: 'low' | 'mid' | 'high';
48
+ }): Promise<EconomicEvent[]>;
49
+ /**
50
+ * Get high importance events only.
51
+ */
52
+ highImportance(options?: {
53
+ period?: '1d' | '1w' | '2w' | '1mo';
54
+ country?: string | string[];
55
+ }): Promise<EconomicEvent[]>;
56
+ /**
57
+ * Get list of supported country codes.
58
+ */
59
+ static countries(): string[];
60
+ private parseDate;
61
+ private parseCountries;
62
+ }
63
+ /**
64
+ * Get economic calendar events (convenience function).
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * import { economicCalendar } from 'borsajs';
69
+ * const events = await economicCalendar({ period: '1w' });
70
+ * ```
71
+ */
72
+ export declare function economicCalendar(options?: {
73
+ period?: '1d' | '1w' | '2w' | '1mo';
74
+ country?: string | string[];
75
+ importance?: 'low' | 'mid' | 'high';
76
+ }): Promise<EconomicEvent[]>;
77
+ //# sourceMappingURL=calendar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../src/calendar.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAC3F,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,qBAAa,gBAAgB;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAA4E;IAE7G,OAAO,CAAC,QAAQ,CAAyB;IAEzC;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,OAAO,GAAE;QAClB,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;QACpC,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;QACtB,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC5B,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;KAClC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA6BjC;;OAEG;IACG,KAAK,CAAC,OAAO,GAAE;QACjB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC5B,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;KAClC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIjC;;OAEG;IACG,QAAQ,CAAC,OAAO,GAAE;QACpB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC5B,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;KAClC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIjC;;OAEG;IACG,SAAS,CAAC,OAAO,GAAE;QACrB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC5B,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;KAClC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIjC;;OAEG;IACG,cAAc,CAAC,OAAO,GAAE;QAC1B,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KAC1B,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIjC;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,MAAM,EAAE;IAI5B,OAAO,CAAC,SAAS;IA0BjB,OAAO,CAAC,cAAc;CAKzB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,GAAE;IAC5C,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;CAClC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAGhC"}