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.
- package/LICENSE +2 -2
- package/README.en.md +123 -0
- package/README.md +122 -0
- package/dist/bond.d.ts +79 -0
- package/dist/bond.d.ts.map +1 -0
- package/dist/bond.js +110 -0
- package/dist/bond.js.map +1 -0
- package/dist/calendar.d.ts +77 -0
- package/dist/calendar.d.ts.map +1 -0
- package/dist/calendar.js +119 -0
- package/dist/calendar.js.map +1 -0
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/dovizcom-bond.d.ts +22 -0
- package/dist/providers/dovizcom-bond.d.ts.map +1 -0
- package/dist/providers/dovizcom-bond.js +132 -0
- package/dist/providers/dovizcom-bond.js.map +1 -0
- package/dist/providers/dovizcom-calendar.d.ts +27 -0
- package/dist/providers/dovizcom-calendar.d.ts.map +1 -0
- package/dist/providers/dovizcom-calendar.js +188 -0
- package/dist/providers/dovizcom-calendar.js.map +1 -0
- package/dist/providers/isyatirim.d.ts +42 -0
- package/dist/providers/isyatirim.d.ts.map +1 -0
- package/dist/providers/isyatirim.js +243 -0
- package/dist/providers/isyatirim.js.map +1 -0
- package/dist/screener.d.ts +134 -0
- package/dist/screener.d.ts.map +1 -0
- package/dist/screener.js +219 -0
- package/dist/screener.js.map +1 -0
- package/package.json +1 -1
- package/src/bond.ts +122 -0
- package/src/calendar.ts +155 -0
- package/src/index.ts +12 -2
- package/src/providers/dovizcom-bond.ts +158 -0
- package/src/providers/dovizcom-calendar.ts +220 -0
- package/src/providers/isyatirim.ts +309 -0
- package/src/screener.ts +284 -0
- 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
|
|
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
|
package/dist/bond.js.map
ADDED
|
@@ -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"}
|