borsajs 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/LICENSE +201 -0
  2. package/README.en.md +209 -0
  3. package/README.md +57 -0
  4. package/dist/cache.d.ts +24 -0
  5. package/dist/cache.d.ts.map +1 -0
  6. package/dist/cache.js +40 -0
  7. package/dist/cache.js.map +1 -0
  8. package/dist/crypto.d.ts +17 -0
  9. package/dist/crypto.d.ts.map +1 -0
  10. package/dist/crypto.js +25 -0
  11. package/dist/crypto.js.map +1 -0
  12. package/dist/exceptions.d.ts +34 -0
  13. package/dist/exceptions.d.ts.map +1 -0
  14. package/dist/exceptions.js +70 -0
  15. package/dist/exceptions.js.map +1 -0
  16. package/dist/fund.d.ts +28 -0
  17. package/dist/fund.d.ts.map +1 -0
  18. package/dist/fund.js +29 -0
  19. package/dist/fund.js.map +1 -0
  20. package/dist/fx.d.ts +16 -0
  21. package/dist/fx.d.ts.map +1 -0
  22. package/dist/fx.js +22 -0
  23. package/dist/fx.js.map +1 -0
  24. package/dist/index-class.d.ts +21 -0
  25. package/dist/index-class.d.ts.map +1 -0
  26. package/dist/index-class.js +31 -0
  27. package/dist/index-class.js.map +1 -0
  28. package/dist/index.d.ts +26 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +16 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/inflation.d.ts +12 -0
  33. package/dist/inflation.d.ts.map +1 -0
  34. package/dist/inflation.js +28 -0
  35. package/dist/inflation.js.map +1 -0
  36. package/dist/market.d.ts +7 -0
  37. package/dist/market.d.ts.map +1 -0
  38. package/dist/market.js +7 -0
  39. package/dist/market.js.map +1 -0
  40. package/dist/multi.d.ts +26 -0
  41. package/dist/multi.d.ts.map +1 -0
  42. package/dist/multi.js +46 -0
  43. package/dist/multi.js.map +1 -0
  44. package/dist/providers/base.d.ts +24 -0
  45. package/dist/providers/base.d.ts.map +1 -0
  46. package/dist/providers/base.js +28 -0
  47. package/dist/providers/base.js.map +1 -0
  48. package/dist/providers/btcturk.d.ts +43 -0
  49. package/dist/providers/btcturk.d.ts.map +1 -0
  50. package/dist/providers/btcturk.js +94 -0
  51. package/dist/providers/btcturk.js.map +1 -0
  52. package/dist/providers/dovizcom.d.ts +42 -0
  53. package/dist/providers/dovizcom.d.ts.map +1 -0
  54. package/dist/providers/dovizcom.js +105 -0
  55. package/dist/providers/dovizcom.js.map +1 -0
  56. package/dist/providers/index.d.ts +20 -0
  57. package/dist/providers/index.d.ts.map +1 -0
  58. package/dist/providers/index.js +12 -0
  59. package/dist/providers/index.js.map +1 -0
  60. package/dist/providers/kap.d.ts +37 -0
  61. package/dist/providers/kap.d.ts.map +1 -0
  62. package/dist/providers/kap.js +110 -0
  63. package/dist/providers/kap.js.map +1 -0
  64. package/dist/providers/paratic.d.ts +41 -0
  65. package/dist/providers/paratic.d.ts.map +1 -0
  66. package/dist/providers/paratic.js +85 -0
  67. package/dist/providers/paratic.js.map +1 -0
  68. package/dist/providers/tcmb.d.ts +49 -0
  69. package/dist/providers/tcmb.d.ts.map +1 -0
  70. package/dist/providers/tcmb.js +99 -0
  71. package/dist/providers/tcmb.js.map +1 -0
  72. package/dist/providers/tefas.d.ts +51 -0
  73. package/dist/providers/tefas.d.ts.map +1 -0
  74. package/dist/providers/tefas.js +89 -0
  75. package/dist/providers/tefas.js.map +1 -0
  76. package/dist/providers/viop.d.ts +35 -0
  77. package/dist/providers/viop.d.ts.map +1 -0
  78. package/dist/providers/viop.js +140 -0
  79. package/dist/providers/viop.js.map +1 -0
  80. package/dist/ticker.d.ts +18 -0
  81. package/dist/ticker.d.ts.map +1 -0
  82. package/dist/ticker.js +23 -0
  83. package/dist/ticker.js.map +1 -0
  84. package/dist/viop.d.ts +19 -0
  85. package/dist/viop.d.ts.map +1 -0
  86. package/dist/viop.js +31 -0
  87. package/dist/viop.js.map +1 -0
  88. package/package.json +52 -0
  89. package/src/cache.ts +42 -0
  90. package/src/crypto.ts +30 -0
  91. package/src/exceptions.ts +77 -0
  92. package/src/fund.ts +37 -0
  93. package/src/fx.ts +26 -0
  94. package/src/index-class.ts +39 -0
  95. package/src/index.ts +38 -0
  96. package/src/inflation.ts +31 -0
  97. package/src/market.ts +7 -0
  98. package/src/multi.ts +46 -0
  99. package/src/providers/base.ts +35 -0
  100. package/src/providers/btcturk.ts +100 -0
  101. package/src/providers/dovizcom.ts +98 -0
  102. package/src/providers/kap.ts +98 -0
  103. package/src/providers/paratic.ts +95 -0
  104. package/src/providers/tcmb.ts +96 -0
  105. package/src/providers/tefas.ts +85 -0
  106. package/src/ticker.ts +30 -0
  107. package/src/viop.ts +35 -0
  108. package/test/demo.ts +99 -0
  109. package/tsconfig.json +34 -0
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Custom exceptions for borsajs.
3
+ */
4
+ export class BorsajsError extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ this.name = 'BorsajsError';
8
+ Object.setPrototypeOf(this, BorsajsError.prototype);
9
+ }
10
+ }
11
+ export class TickerNotFoundError extends BorsajsError {
12
+ symbol;
13
+ constructor(symbol) {
14
+ super(`Ticker not found: ${symbol}`);
15
+ this.name = 'TickerNotFoundError';
16
+ this.symbol = symbol;
17
+ Object.setPrototypeOf(this, TickerNotFoundError.prototype);
18
+ }
19
+ }
20
+ export class DataNotAvailableError extends BorsajsError {
21
+ constructor(message = 'Data not available') {
22
+ super(message);
23
+ this.name = 'DataNotAvailableError';
24
+ Object.setPrototypeOf(this, DataNotAvailableError.prototype);
25
+ }
26
+ }
27
+ export class APIError extends BorsajsError {
28
+ statusCode;
29
+ constructor(message, statusCode) {
30
+ super(statusCode ? `API Error: ${message} (status: ${statusCode})` : `API Error: ${message}`);
31
+ this.name = 'APIError';
32
+ this.statusCode = statusCode;
33
+ Object.setPrototypeOf(this, APIError.prototype);
34
+ }
35
+ }
36
+ export class AuthenticationError extends BorsajsError {
37
+ constructor(message = 'Authentication failed') {
38
+ super(message);
39
+ this.name = 'AuthenticationError';
40
+ Object.setPrototypeOf(this, AuthenticationError.prototype);
41
+ }
42
+ }
43
+ export class RateLimitError extends BorsajsError {
44
+ constructor(message = 'Rate limit exceeded') {
45
+ super(message);
46
+ this.name = 'RateLimitError';
47
+ Object.setPrototypeOf(this, RateLimitError.prototype);
48
+ }
49
+ }
50
+ export class InvalidPeriodError extends BorsajsError {
51
+ period;
52
+ static VALID_PERIODS = ['1d', '5d', '1mo', '3mo', '6mo', '1y', '2y', '5y', '10y', 'ytd', 'max'];
53
+ constructor(period) {
54
+ super(`Invalid period: ${period}. Valid: ${InvalidPeriodError.VALID_PERIODS.join(', ')}`);
55
+ this.name = 'InvalidPeriodError';
56
+ this.period = period;
57
+ Object.setPrototypeOf(this, InvalidPeriodError.prototype);
58
+ }
59
+ }
60
+ export class InvalidIntervalError extends BorsajsError {
61
+ interval;
62
+ static VALID_INTERVALS = ['1m', '5m', '15m', '30m', '1h', '1d', '1wk', '1mo'];
63
+ constructor(interval) {
64
+ super(`Invalid interval: ${interval}. Valid: ${InvalidIntervalError.VALID_INTERVALS.join(', ')}`);
65
+ this.name = 'InvalidIntervalError';
66
+ this.interval = interval;
67
+ Object.setPrototypeOf(this, InvalidIntervalError.prototype);
68
+ }
69
+ }
70
+ //# sourceMappingURL=exceptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../src/exceptions.ts"],"names":[],"mappings":"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"}
package/dist/fund.d.ts ADDED
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Fund class for mutual fund data.
3
+ */
4
+ import { FundInfo, FundHistoryData, HistoryOptions, SearchResult } from './providers/tefas.js';
5
+ export interface FundPerformance {
6
+ dailyReturn?: number;
7
+ return1m?: number;
8
+ return3m?: number;
9
+ return6m?: number;
10
+ returnYtd?: number;
11
+ return1y?: number;
12
+ return3y?: number;
13
+ return5y?: number;
14
+ }
15
+ export declare class Fund {
16
+ private readonly _fundCode;
17
+ private _infoCache;
18
+ constructor(fundCode: string);
19
+ get fundCode(): string;
20
+ get symbol(): string;
21
+ getInfo(): Promise<FundInfo>;
22
+ getDetail(): Promise<FundInfo>;
23
+ getPerformance(): Promise<FundPerformance>;
24
+ getHistory(options?: HistoryOptions): Promise<FundHistoryData[]>;
25
+ toString(): string;
26
+ }
27
+ export declare function searchFunds(query: string, limit?: number): Promise<SearchResult[]>;
28
+ //# sourceMappingURL=fund.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fund.d.ts","sourceRoot":"","sources":["../src/fund.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAoB,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEjH,MAAM,WAAW,eAAe;IAAG,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAAE;AAEhM,qBAAa,IAAI;IACb,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,UAAU,CAAyB;gBAE/B,QAAQ,EAAE,MAAM;IAC5B,IAAI,QAAQ,IAAI,MAAM,CAA2B;IACjD,IAAI,MAAM,IAAI,MAAM,CAA2B;IAEzC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IAK5B,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC;IAE9B,cAAc,IAAI,OAAO,CAAC,eAAe,CAAC;IAK1C,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAI1E,QAAQ,IAAI,MAAM;CACrB;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAE5F"}
package/dist/fund.js ADDED
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Fund class for mutual fund data.
3
+ */
4
+ import { getTefasProvider } from './providers/tefas.js';
5
+ export class Fund {
6
+ _fundCode;
7
+ _infoCache = null;
8
+ constructor(fundCode) { this._fundCode = fundCode.toUpperCase(); }
9
+ get fundCode() { return this._fundCode; }
10
+ get symbol() { return this._fundCode; }
11
+ async getInfo() {
12
+ if (!this._infoCache)
13
+ this._infoCache = await getTefasProvider().getFundDetail(this._fundCode);
14
+ return this._infoCache;
15
+ }
16
+ async getDetail() { return this.getInfo(); }
17
+ async getPerformance() {
18
+ const info = await this.getInfo();
19
+ return { dailyReturn: info.dailyReturn, return1m: info.return1m, return3m: info.return3m, return6m: info.return6m, returnYtd: info.returnYtd, return1y: info.return1y, return3y: info.return3y, return5y: info.return5y };
20
+ }
21
+ async getHistory(options = {}) {
22
+ return getTefasProvider().getHistory(this._fundCode, options);
23
+ }
24
+ toString() { return `Fund('${this._fundCode}')`; }
25
+ }
26
+ export async function searchFunds(query, limit = 20) {
27
+ return getTefasProvider().search(query, limit);
28
+ }
29
+ //# sourceMappingURL=fund.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fund.js","sourceRoot":"","sources":["../src/fund.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAA2D,MAAM,sBAAsB,CAAC;AAIjH,MAAM,OAAO,IAAI;IACI,SAAS,CAAS;IAC3B,UAAU,GAAoB,IAAI,CAAC;IAE3C,YAAY,QAAgB,IAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC1E,IAAI,QAAQ,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACjD,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAE/C,KAAK,CAAC,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,GAAG,MAAM,gBAAgB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,SAAS,KAAwB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAE/D,KAAK,CAAC,cAAc;QAChB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9N,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAA0B,EAAE;QACzC,OAAO,gBAAgB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,QAAQ,KAAa,OAAO,SAAS,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;CAC7D;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAa,EAAE,QAAgB,EAAE;IAC/D,OAAO,gBAAgB,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC"}
package/dist/fx.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ /**
2
+ * FX class for forex and commodity data.
3
+ */
4
+ import { FXCurrentData, FXHistoryData, HistoryOptions } from './providers/dovizcom.js';
5
+ export declare class FX {
6
+ private readonly _asset;
7
+ private _currentCache;
8
+ constructor(asset: string);
9
+ get asset(): string;
10
+ get symbol(): string;
11
+ getCurrent(): Promise<FXCurrentData>;
12
+ getInfo(): Promise<FXCurrentData>;
13
+ getHistory(options?: HistoryOptions): Promise<FXHistoryData[]>;
14
+ toString(): string;
15
+ }
16
+ //# sourceMappingURL=fx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fx.d.ts","sourceRoot":"","sources":["../src/fx.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAuB,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE5G,qBAAa,EAAE;IACX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,aAAa,CAA8B;gBAEvC,KAAK,EAAE,MAAM;IACzB,IAAI,KAAK,IAAI,MAAM,CAAwB;IAC3C,IAAI,MAAM,IAAI,MAAM,CAAwB;IAEtC,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IAKpC,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;IAEjC,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIxE,QAAQ,IAAI,MAAM;CACrB"}
package/dist/fx.js ADDED
@@ -0,0 +1,22 @@
1
+ /**
2
+ * FX class for forex and commodity data.
3
+ */
4
+ import { getDovizcomProvider } from './providers/dovizcom.js';
5
+ export class FX {
6
+ _asset;
7
+ _currentCache = null;
8
+ constructor(asset) { this._asset = asset; }
9
+ get asset() { return this._asset; }
10
+ get symbol() { return this._asset; }
11
+ async getCurrent() {
12
+ if (!this._currentCache)
13
+ this._currentCache = await getDovizcomProvider().getCurrent(this._asset);
14
+ return this._currentCache;
15
+ }
16
+ async getInfo() { return this.getCurrent(); }
17
+ async getHistory(options = {}) {
18
+ return getDovizcomProvider().getHistory(this._asset, options);
19
+ }
20
+ toString() { return `FX('${this._asset}')`; }
21
+ }
22
+ //# sourceMappingURL=fx.js.map
package/dist/fx.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fx.js","sourceRoot":"","sources":["../src/fx.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAgD,MAAM,yBAAyB,CAAC;AAE5G,MAAM,OAAO,EAAE;IACM,MAAM,CAAS;IACxB,aAAa,GAAyB,IAAI,CAAC;IAEnD,YAAY,KAAa,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;IACnD,IAAI,KAAK,KAAa,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5C,KAAK,CAAC,UAAU;QACZ,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,IAAI,CAAC,aAAa,GAAG,MAAM,mBAAmB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClG,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,KAA6B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAErE,KAAK,CAAC,UAAU,CAAC,UAA0B,EAAE;QACzC,OAAO,mBAAmB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,QAAQ,KAAa,OAAO,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;CACxD"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Index class for market index data.
3
+ */
4
+ import { QuoteData, OHLCVData, HistoryOptions } from './providers/paratic.js';
5
+ export declare const INDICES: Record<string, string>;
6
+ export interface IndexInfo extends QuoteData {
7
+ name: string;
8
+ type: 'index';
9
+ }
10
+ export declare class Index {
11
+ private readonly _symbol;
12
+ private _infoCache;
13
+ constructor(symbol: string);
14
+ get symbol(): string;
15
+ getInfo(): Promise<IndexInfo>;
16
+ getHistory(options?: HistoryOptions): Promise<OHLCVData[]>;
17
+ toString(): string;
18
+ }
19
+ export declare function indices(): string[];
20
+ export declare function index(symbol: string): Index;
21
+ //# sourceMappingURL=index-class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-class.d.ts","sourceRoot":"","sources":["../src/index-class.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAsB,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAElG,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM1C,CAAC;AAEF,MAAM,WAAW,SAAU,SAAQ,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;CAAE;AAE7E,qBAAa,KAAK;IACd,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,UAAU,CAA0B;gBAEhC,MAAM,EAAE,MAAM;IAC1B,IAAI,MAAM,IAAI,MAAM,CAAyB;IAEvC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;IAQ7B,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAIpE,QAAQ,IAAI,MAAM;CACrB;AAED,wBAAgB,OAAO,IAAI,MAAM,EAAE,CAAiC;AACpE,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAA8B"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Index class for market index data.
3
+ */
4
+ import { getParaticProvider } from './providers/paratic.js';
5
+ export const INDICES = {
6
+ 'XU100': 'BIST 100', 'XU050': 'BIST 50', 'XU030': 'BIST 30', 'XBANK': 'BIST Banka',
7
+ 'XUSIN': 'BIST Sınai', 'XHOLD': 'BIST Holding', 'XUTEK': 'BIST Teknoloji', 'XGIDA': 'BIST Gıda',
8
+ 'XTRZM': 'BIST Turizm', 'XULAS': 'BIST Ulaştırma', 'XSGRT': 'BIST Sigorta', 'XMANA': 'BIST Metal Ana',
9
+ 'XKMYA': 'BIST Kimya', 'XMADN': 'BIST Maden', 'XELKT': 'BIST Elektrik', 'XTEKS': 'BIST Tekstil',
10
+ 'XILTM': 'BIST İletişim', 'XUMAL': 'BIST Mali', 'XUTUM': 'BIST Tüm',
11
+ };
12
+ export class Index {
13
+ _symbol;
14
+ _infoCache = null;
15
+ constructor(symbol) { this._symbol = symbol.toUpperCase(); }
16
+ get symbol() { return this._symbol; }
17
+ async getInfo() {
18
+ if (!this._infoCache) {
19
+ const quote = await getParaticProvider().getQuote(this._symbol);
20
+ this._infoCache = { ...quote, name: INDICES[this._symbol] ?? this._symbol, type: 'index' };
21
+ }
22
+ return this._infoCache;
23
+ }
24
+ async getHistory(options = {}) {
25
+ return getParaticProvider().getHistory(this._symbol, options);
26
+ }
27
+ toString() { return `Index('${this._symbol}')`; }
28
+ }
29
+ export function indices() { return Object.keys(INDICES); }
30
+ export function index(symbol) { return new Index(symbol); }
31
+ //# sourceMappingURL=index-class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-class.js","sourceRoot":"","sources":["../src/index-class.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAwC,MAAM,wBAAwB,CAAC;AAElG,MAAM,CAAC,MAAM,OAAO,GAA2B;IAC3C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY;IAClF,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW;IAC/F,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB;IACrG,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc;IAC/F,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU;CACtE,CAAC;AAIF,MAAM,OAAO,KAAK;IACG,OAAO,CAAS;IACzB,UAAU,GAAqB,IAAI,CAAC;IAE5C,YAAY,MAAc,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACpE,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE7C,KAAK,CAAC,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,MAAM,kBAAkB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC/F,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAA0B,EAAE;QACzC,OAAO,kBAAkB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,QAAQ,KAAa,OAAO,UAAU,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;CAC5D;AAED,MAAM,UAAU,OAAO,KAAe,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACpE,MAAM,UAAU,KAAK,CAAC,MAAc,IAAW,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * borsajs - Turkish Financial Markets Data Library
3
+ */
4
+ export { Ticker } from './ticker.js';
5
+ export type { TickerInfo } from './ticker.js';
6
+ export { Tickers, download } from './multi.js';
7
+ export type { DownloadOptions, MultiTickerData } from './multi.js';
8
+ export { FX } from './fx.js';
9
+ export { Crypto, cryptoPairs } from './crypto.js';
10
+ export { Fund, searchFunds } from './fund.js';
11
+ export type { FundPerformance } from './fund.js';
12
+ export { Index, indices, index, INDICES } from './index-class.js';
13
+ export type { IndexInfo } from './index-class.js';
14
+ export { Inflation } from './inflation.js';
15
+ export { VIOP } from './viop.js';
16
+ export { companies, searchCompanies } from './market.js';
17
+ export { BorsajsError, TickerNotFoundError, DataNotAvailableError, APIError, AuthenticationError, RateLimitError, InvalidPeriodError, InvalidIntervalError } from './exceptions.js';
18
+ export { Cache, TTL, getCache } from './cache.js';
19
+ export type { OHLCVData, HistoryOptions } from './providers/paratic.js';
20
+ export type { TickerData } from './providers/btcturk.js';
21
+ export type { FXCurrentData, FXHistoryData } from './providers/dovizcom.js';
22
+ export type { FundInfo, FundHistoryData, SearchResult } from './providers/tefas.js';
23
+ export type { InflationLatest, InflationData, InflationCalculation } from './providers/tcmb.js';
24
+ export type { ContractData, Company, Disclosure } from './providers/kap.js';
25
+ export declare const VERSION = "0.1.0";
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
package/dist/index.js ADDED
@@ -0,0 +1,16 @@
1
+ /**
2
+ * borsajs - Turkish Financial Markets Data Library
3
+ */
4
+ export { Ticker } from './ticker.js';
5
+ export { Tickers, download } from './multi.js';
6
+ export { FX } from './fx.js';
7
+ export { Crypto, cryptoPairs } from './crypto.js';
8
+ export { Fund, searchFunds } from './fund.js';
9
+ export { Index, indices, index, INDICES } from './index-class.js';
10
+ export { Inflation } from './inflation.js';
11
+ export { VIOP } from './viop.js';
12
+ export { companies, searchCompanies } from './market.js';
13
+ export { BorsajsError, TickerNotFoundError, DataNotAvailableError, APIError, AuthenticationError, RateLimitError, InvalidPeriodError, InvalidIntervalError } from './exceptions.js';
14
+ export { Cache, TTL, getCache } from './cache.js';
15
+ export const VERSION = '0.1.0';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Inflation class for TCMB inflation data.
3
+ */
4
+ import { InflationLatest, InflationData, InflationCalculation, InflationDataOptions } from './providers/tcmb.js';
5
+ export declare class Inflation {
6
+ getLatest(inflationType?: string): Promise<InflationLatest>;
7
+ getTufe(options?: InflationDataOptions): Promise<InflationData[]>;
8
+ getUfe(options?: InflationDataOptions): Promise<InflationData[]>;
9
+ calculate(amount: number, start: string, end: string): Promise<InflationCalculation>;
10
+ toString(): string;
11
+ }
12
+ //# sourceMappingURL=inflation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inflation.d.ts","sourceRoot":"","sources":["../src/inflation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAmB,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAElI,qBAAa,SAAS;IACZ,SAAS,CAAC,aAAa,GAAE,MAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAInE,OAAO,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIrE,MAAM,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIpE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAW1F,QAAQ,IAAI,MAAM;CACrB"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Inflation class for TCMB inflation data.
3
+ */
4
+ import { getTcmbProvider } from './providers/tcmb.js';
5
+ export class Inflation {
6
+ async getLatest(inflationType = 'tufe') {
7
+ return getTcmbProvider().getLatest(inflationType);
8
+ }
9
+ async getTufe(options = {}) {
10
+ return getTcmbProvider().getData('tufe', options);
11
+ }
12
+ async getUfe(options = {}) {
13
+ return getTcmbProvider().getData('ufe', options);
14
+ }
15
+ async calculate(amount, start, end) {
16
+ const parseYM = (s) => {
17
+ const [y, m] = s.split('-').map(Number);
18
+ if (!y || !m || m < 1 || m > 12)
19
+ throw new Error(`Invalid date format: ${s}. Use YYYY-MM`);
20
+ return [y, m];
21
+ };
22
+ const [sy, sm] = parseYM(start);
23
+ const [ey, em] = parseYM(end);
24
+ return getTcmbProvider().calculateInflation({ startYear: sy, startMonth: sm, endYear: ey, endMonth: em, basketValue: amount });
25
+ }
26
+ toString() { return 'Inflation()'; }
27
+ }
28
+ //# sourceMappingURL=inflation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inflation.js","sourceRoot":"","sources":["../src/inflation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,eAAe,EAA8E,MAAM,qBAAqB,CAAC;AAElI,MAAM,OAAO,SAAS;IAClB,KAAK,CAAC,SAAS,CAAC,gBAAwB,MAAM;QAC1C,OAAO,eAAe,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAgC,EAAE;QAC5C,OAAO,eAAe,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAAgC,EAAE;QAC3C,OAAO,eAAe,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,KAAa,EAAE,GAAW;QACtD,MAAM,OAAO,GAAG,CAAC,CAAS,EAAoB,EAAE;YAC5C,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC;YAC3F,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,eAAe,EAAE,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;IACnI,CAAC;IAED,QAAQ,KAAa,OAAO,aAAa,CAAC,CAAC,CAAC;CAC/C"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Market-level functions for BIST data.
3
+ */
4
+ import { Company } from './providers/kap.js';
5
+ export declare function companies(): Promise<Company[]>;
6
+ export declare function searchCompanies(query: string): Promise<Company[]>;
7
+ //# sourceMappingURL=market.d.ts.map
@@ -0,0 +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"}
package/dist/market.js ADDED
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Market-level functions for BIST data.
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); }
7
+ //# sourceMappingURL=market.js.map
@@ -0,0 +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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Multi-ticker functions and classes.
3
+ */
4
+ import { Ticker } from './ticker.js';
5
+ import { OHLCVData, HistoryOptions } from './providers/paratic.js';
6
+ export interface DownloadOptions extends HistoryOptions {
7
+ groupBy?: 'column' | 'ticker';
8
+ progress?: boolean;
9
+ }
10
+ export interface MultiTickerData {
11
+ [ticker: string]: OHLCVData[];
12
+ }
13
+ export declare class Tickers {
14
+ private readonly _symbols;
15
+ private readonly _tickers;
16
+ constructor(symbols: string | string[]);
17
+ get symbols(): string[];
18
+ get tickers(): Map<string, Ticker>;
19
+ get length(): number;
20
+ getTicker(symbol: string): Ticker;
21
+ getHistory(options?: DownloadOptions): Promise<MultiTickerData>;
22
+ [Symbol.iterator](): Iterator<[string, Ticker]>;
23
+ toString(): string;
24
+ }
25
+ export declare function download(tickers: string | string[], options?: DownloadOptions): Promise<MultiTickerData>;
26
+ //# sourceMappingURL=multi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../src/multi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAsB,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEvF,MAAM,WAAW,eAAgB,SAAQ,cAAc;IAAG,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAAE;AAC9G,MAAM,WAAW,eAAe;IAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC;CAAE;AAEnE,qBAAa,OAAO;IAChB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;gBAEnC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAMtC,IAAI,OAAO,IAAI,MAAM,EAAE,CAA+B;IACtD,IAAI,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAA0B;IAC5D,IAAI,MAAM,IAAI,MAAM,CAA+B;IAEnD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAM3B,UAAU,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAExE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,QAAQ,IAAI,MAAM;CACrB;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAUlH"}
package/dist/multi.js ADDED
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Multi-ticker functions and classes.
3
+ */
4
+ import { Ticker } from './ticker.js';
5
+ import { getParaticProvider } from './providers/paratic.js';
6
+ export class Tickers {
7
+ _symbols;
8
+ _tickers;
9
+ constructor(symbols) {
10
+ this._symbols = (typeof symbols === 'string' ? symbols.split(/\s+/) : symbols).filter(s => s.trim()).map(s => s.trim().toUpperCase());
11
+ this._tickers = new Map();
12
+ for (const symbol of this._symbols)
13
+ this._tickers.set(symbol, new Ticker(symbol));
14
+ }
15
+ get symbols() { return [...this._symbols]; }
16
+ get tickers() { return this._tickers; }
17
+ get length() { return this._tickers.size; }
18
+ getTicker(symbol) {
19
+ const ticker = this._tickers.get(symbol.toUpperCase());
20
+ if (!ticker)
21
+ throw new Error(`Symbol not found: ${symbol}`);
22
+ return ticker;
23
+ }
24
+ async getHistory(options = {}) { return download(this._symbols, options); }
25
+ *[Symbol.iterator]() { for (const entry of this._tickers)
26
+ yield entry; }
27
+ toString() { return `Tickers(${JSON.stringify(this._symbols)})`; }
28
+ }
29
+ export async function download(tickers, options = {}) {
30
+ const symbols = (typeof tickers === 'string' ? tickers.split(/\s+/) : tickers).filter(s => s.trim()).map(s => s.trim().toUpperCase());
31
+ if (symbols.length === 0)
32
+ throw new Error('No symbols provided');
33
+ const { period, interval, start, end } = options;
34
+ const provider = getParaticProvider();
35
+ const result = {};
36
+ for (const symbol of symbols) {
37
+ try {
38
+ const data = await provider.getHistory(symbol, { period, interval, start, end });
39
+ if (data.length > 0)
40
+ result[symbol] = data;
41
+ }
42
+ catch { /* skip */ }
43
+ }
44
+ return result;
45
+ }
46
+ //# sourceMappingURL=multi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi.js","sourceRoot":"","sources":["../src/multi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Base provider class for all data providers.
3
+ */
4
+ import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
5
+ import { Cache } from '../cache.js';
6
+ export interface ProviderOptions {
7
+ timeout?: number;
8
+ cache?: Cache;
9
+ }
10
+ export declare abstract class BaseProvider {
11
+ protected readonly client: AxiosInstance;
12
+ protected readonly cache: Cache;
13
+ protected static readonly DEFAULT_HEADERS: {
14
+ 'User-Agent': string;
15
+ Accept: string;
16
+ 'Accept-Language': string;
17
+ };
18
+ constructor(options?: ProviderOptions);
19
+ protected get<T = unknown>(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse<T>>;
20
+ protected post<T = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<AxiosResponse<T>>;
21
+ protected cacheGet<T>(key: string): T | null;
22
+ protected cacheSet<T>(key: string, value: T, ttl: number): void;
23
+ }
24
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,KAAK,EAAY,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,eAAe;IAAG,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CAAE;AAErE,8BAAsB,YAAY;IAC9B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IACzC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAEhC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe;;;;MAIvC;gBAEU,OAAO,GAAE,eAAoB;cAMzB,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;cAIrF,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAItH,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAC5C,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;CAClE"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Base provider class for all data providers.
3
+ */
4
+ import axios from 'axios';
5
+ import { getCache } from '../cache.js';
6
+ export class BaseProvider {
7
+ client;
8
+ cache;
9
+ static DEFAULT_HEADERS = {
10
+ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
11
+ 'Accept': 'application/json, text/plain, */*',
12
+ 'Accept-Language': 'tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7',
13
+ };
14
+ constructor(options = {}) {
15
+ const { timeout = 30000, cache } = options;
16
+ this.client = axios.create({ timeout, headers: BaseProvider.DEFAULT_HEADERS });
17
+ this.cache = cache ?? getCache();
18
+ }
19
+ async get(url, config) {
20
+ return this.client.get(url, config);
21
+ }
22
+ async post(url, data, config) {
23
+ return this.client.post(url, data, config);
24
+ }
25
+ cacheGet(key) { return this.cache.get(key); }
26
+ cacheSet(key, value, ttl) { this.cache.set(key, value, ttl); }
27
+ }
28
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAA2D,MAAM,OAAO,CAAC;AAChF,OAAO,EAAS,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI9C,MAAM,OAAgB,YAAY;IACX,MAAM,CAAgB;IACtB,KAAK,CAAQ;IAEtB,MAAM,CAAU,eAAe,GAAG;QACxC,YAAY,EAAE,uHAAuH;QACrI,QAAQ,EAAE,mCAAmC;QAC7C,iBAAiB,EAAE,qCAAqC;KAC3D,CAAC;IAEF,YAAY,UAA2B,EAAE;QACrC,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,QAAQ,EAAE,CAAC;IACrC,CAAC;IAES,KAAK,CAAC,GAAG,CAAc,GAAW,EAAE,MAA2B;QACrE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAES,KAAK,CAAC,IAAI,CAAc,GAAW,EAAE,IAAc,EAAE,MAA2B;QACtF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAI,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAES,QAAQ,CAAI,GAAW,IAAc,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IACrE,QAAQ,CAAI,GAAW,EAAE,KAAQ,EAAE,GAAW,IAAU,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * BtcTurk provider for cryptocurrency data.
3
+ */
4
+ import { BaseProvider, ProviderOptions } from './base.js';
5
+ export interface TickerData {
6
+ symbol: string;
7
+ last: number;
8
+ open: number;
9
+ high: number;
10
+ low: number;
11
+ bid: number;
12
+ ask: number;
13
+ volume: number;
14
+ change: number;
15
+ changePercent: number;
16
+ timestamp?: number;
17
+ }
18
+ export interface OHLCVData {
19
+ date: Date;
20
+ open: number;
21
+ high: number;
22
+ low: number;
23
+ close: number;
24
+ volume: number;
25
+ }
26
+ export interface HistoryOptions {
27
+ period?: string;
28
+ interval?: string;
29
+ start?: Date;
30
+ end?: Date;
31
+ }
32
+ export declare class BtcTurkProvider extends BaseProvider {
33
+ private static readonly BASE_URL;
34
+ private static readonly GRAPH_API_URL;
35
+ private static readonly RESOLUTION_MAP;
36
+ private static readonly PERIOD_DAYS;
37
+ constructor(options?: ProviderOptions);
38
+ getTicker(pair: string): Promise<TickerData>;
39
+ getHistory(pair: string, options?: HistoryOptions): Promise<OHLCVData[]>;
40
+ getPairs(quote?: string): Promise<string[]>;
41
+ }
42
+ export declare function getBtcTurkProvider(): BtcTurkProvider;
43
+ //# sourceMappingURL=btcturk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"btcturk.d.ts","sourceRoot":"","sources":["../../src/providers/btcturk.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAI1D,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IACtE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CACvG;AAED,MAAM,WAAW,SAAS;IAAG,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;CAAE;AAClH,MAAM,WAAW,cAAc;IAAG,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAC;CAAE;AAKjG,qBAAa,eAAgB,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IACpE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAmC;IACxE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAqH;IAC3J,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAA6F;gBAEpH,OAAO,CAAC,EAAE,eAAe;IAE/B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA2B5C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA+B5E,QAAQ,CAAC,KAAK,GAAE,MAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAY3D;AAGD,wBAAgB,kBAAkB,IAAI,eAAe,CAAsE"}