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.en.md +239 -94
- package/README.md +250 -18
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/market.d.ts +33 -4
- package/dist/market.d.ts.map +1 -1
- package/dist/market.js +58 -3
- package/dist/market.js.map +1 -1
- package/dist/providers/kap.d.ts +24 -3
- package/dist/providers/kap.d.ts.map +1 -1
- package/dist/providers/kap.js +180 -7
- package/dist/providers/kap.js.map +1 -1
- package/package.json +7 -4
- package/src/index.ts +3 -2
- package/src/market.ts +73 -3
- package/src/providers/kap.ts +216 -7
- package/test/demo.ts +108 -35
package/README.md
CHANGED
|
@@ -2,9 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**[Türkçe](README.md) | [English](README.en.md)**
|
|
4
4
|
|
|
5
|
-
|
|
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,
|
|
16
|
+
import { Ticker, FX, Crypto, Fund, Inflation, symbols, cryptoSymbols } from 'borsajs';
|
|
19
17
|
|
|
20
|
-
// Hisse senedi
|
|
18
|
+
// Hisse senedi
|
|
21
19
|
const stock = new Ticker('THYAO');
|
|
22
20
|
const info = await stock.getInfo();
|
|
23
|
-
|
|
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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
|
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 {
|
|
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,
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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 {
|
|
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,
|
|
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
|
-
*
|
|
8
|
+
* Get common BIST stock symbols.
|
|
9
|
+
* @returns Array of stock symbols
|
|
3
10
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
package/dist/market.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../src/market.ts"],"names":[],"mappings":"
|
|
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 {
|
|
5
|
-
|
|
6
|
-
|
|
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
|
package/dist/market.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"market.js","sourceRoot":"","sources":["../src/market.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,
|
|
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"}
|
package/dist/providers/kap.d.ts
CHANGED
|
@@ -5,17 +5,38 @@ export interface Company {
|
|
|
5
5
|
city: string;
|
|
6
6
|
}
|
|
7
7
|
export interface Disclosure {
|
|
8
|
-
|
|
9
|
-
date: Date;
|
|
8
|
+
date: string;
|
|
10
9
|
title: string;
|
|
11
|
-
|
|
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,
|
|
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"}
|