@tradecanvas/commons 1.68.1 → 1.70.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.
- package/dist/index.cjs.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/feed.d.ts +101 -0
- package/dist/types/feed.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/realtime.d.ts +5 -1
- package/dist/types/realtime.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { OHLCBar, TimeFrame } from './ohlc.js';
|
|
2
|
+
import { SymbolInfo, SymbolSearchOptions } from './symbol.js';
|
|
3
|
+
import { Quote } from './quote.js';
|
|
4
|
+
import { NewsItem } from './news.js';
|
|
5
|
+
import { ConnectionState, RawTick, Trade } from './realtime.js';
|
|
6
|
+
/** Which bars the chart asks a feed for. */
|
|
7
|
+
export interface BarsRequest {
|
|
8
|
+
symbol: string;
|
|
9
|
+
timeframe: TimeFrame;
|
|
10
|
+
/** How many bars, counted back from the newest asked for. */
|
|
11
|
+
countBack: number;
|
|
12
|
+
/**
|
|
13
|
+
* Only bars older than this: the time of the oldest bar the chart has, in
|
|
14
|
+
* the bars' own unit. Absent for the first load, which ends at the newest bar.
|
|
15
|
+
*/
|
|
16
|
+
before?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Aborted when the chart no longer needs the answer: its stream of this
|
|
19
|
+
* symbol and timeframe disconnected (a switch, a reconnect). Other
|
|
20
|
+
* requests, another symbol's for a compare, run to the end.
|
|
21
|
+
*/
|
|
22
|
+
signal: AbortSignal;
|
|
23
|
+
}
|
|
24
|
+
/** Which live bars the chart subscribes to. */
|
|
25
|
+
export interface BarsSubscription {
|
|
26
|
+
symbol: string;
|
|
27
|
+
timeframe: TimeFrame;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* What a feed tells the chart while it is subscribed. Every method is there;
|
|
31
|
+
* a feed calls the ones it has news for.
|
|
32
|
+
*/
|
|
33
|
+
export interface FeedSubscriber {
|
|
34
|
+
/**
|
|
35
|
+
* A bar from the feed: the forming bar again with its latest values, a new
|
|
36
|
+
* one, or (with `closed`) its final values. An older closed bar corrects
|
|
37
|
+
* the bar loaded at its time.
|
|
38
|
+
*/
|
|
39
|
+
bar(bar: OHLCBar, closed: boolean): void;
|
|
40
|
+
/** A trade or quote tick. The chart builds bars from ticks only with `aggregateTicks`. */
|
|
41
|
+
tick(tick: RawTick): void;
|
|
42
|
+
/**
|
|
43
|
+
* The connection's state. A feed that never calls it is taken as connected
|
|
44
|
+
* once `subscribeBars` returns. `'disconnected'` or `'error'` makes the
|
|
45
|
+
* chart load and subscribe again, with its reconnect backoff. The chart
|
|
46
|
+
* doesn't take a quiet feed for a dead one (a daily chart, a closed
|
|
47
|
+
* market): a feed whose socket can die silently says so here.
|
|
48
|
+
*/
|
|
49
|
+
connection(state: ConnectionState): void;
|
|
50
|
+
/** What the feed learned about the symbol after the chart asked (`resolveSymbol`). */
|
|
51
|
+
symbolInfo(info: SymbolInfo): void;
|
|
52
|
+
/** Something went wrong that the chart should report; the subscription goes on. */
|
|
53
|
+
error(message: string): void;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* A data source the chart pulls from: it asks for bars (`getBars`) and
|
|
57
|
+
* subscribes to live ones (`subscribeBars`). The chart pages back, reconnects,
|
|
58
|
+
* builds the timeframes the feed lacks and resubscribes on a switch; the feed
|
|
59
|
+
* only answers. One feed serves any number of charts: each subscription is
|
|
60
|
+
* its own.
|
|
61
|
+
*
|
|
62
|
+
* Give it to `chart.connect({ feed, symbol, timeframe })` or a widget's `feed`
|
|
63
|
+
* option. A `DataAdapter` works anywhere a feed does (`feedFromAdapter`).
|
|
64
|
+
*/
|
|
65
|
+
export interface DataFeed {
|
|
66
|
+
readonly name: string;
|
|
67
|
+
/**
|
|
68
|
+
* Optional: the timeframes the feed serves. Charts build any other (7m,
|
|
69
|
+
* 90m, 2d…) from the coarsest of these that divides it. Leave it out when
|
|
70
|
+
* the feed serves every timeframe.
|
|
71
|
+
*/
|
|
72
|
+
readonly supportedTimeframes?: readonly TimeFrame[];
|
|
73
|
+
/**
|
|
74
|
+
* Optional: `false` when the feed has only the newest bars, so the chart
|
|
75
|
+
* never asks for older ones (no paging back, a replay asks for its bars in
|
|
76
|
+
* one request). Default `true`.
|
|
77
|
+
*/
|
|
78
|
+
readonly pagesBack?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Up to `countBack` bars, sorted by time ascending: the newest for the first
|
|
81
|
+
* load, or the ones before `request.before` when the chart pages back.
|
|
82
|
+
* Return an empty array when there are no more; a feed without older data
|
|
83
|
+
* returns one for any request with `before`.
|
|
84
|
+
*/
|
|
85
|
+
getBars(request: BarsRequest): Promise<OHLCBar[]>;
|
|
86
|
+
/** Live bars of `request`'s symbol and timeframe until the function it returns is called. */
|
|
87
|
+
subscribeBars(request: BarsSubscription, subscriber: FeedSubscriber): () => void;
|
|
88
|
+
/** Optional: what the feed knows about `symbol` (price step, `timeZone`, hours), or null. */
|
|
89
|
+
resolveSymbol?(symbol: string): Promise<SymbolInfo | null>;
|
|
90
|
+
/** Optional: symbols matching `query`, best first, for a symbol search box. */
|
|
91
|
+
searchSymbols?(query: string, options?: SymbolSearchOptions): Promise<SymbolInfo[]>;
|
|
92
|
+
/** Optional: live quotes for many symbols until the function it returns is called (a watchlist). */
|
|
93
|
+
subscribeQuotes?(symbols: readonly string[], onQuotes: (quotes: Quote[]) => void): () => void;
|
|
94
|
+
/** Optional: recent headlines about `symbol`, newest first. */
|
|
95
|
+
fetchNews?(symbol: string, limit?: number): Promise<NewsItem[]>;
|
|
96
|
+
/** Optional, with `subscribeTrades`: up to `limit` recent trades, oldest first, for tick timeframes (`'100T'`). */
|
|
97
|
+
fetchTrades?(symbol: string, limit?: number): Promise<Trade[]>;
|
|
98
|
+
/** Optional, with `fetchTrades`: live trades of `symbol` until the function it returns is called. */
|
|
99
|
+
subscribeTrades?(symbol: string, onTrades: (trades: Trade[]) => void): () => void;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=feed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../src/types/feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAErE,4CAA4C;AAC5C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACzC,0FAA0F;IAC1F,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B;;;;;;OAMG;IACH,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,sFAAsF;IACtF,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,mFAAmF;IACnF,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IAEpD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAElD,6FAA6F;IAC7F,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,GAAG,MAAM,IAAI,CAAC;IAEjF,6FAA6F;IAC7F,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAE3D,+EAA+E;IAC/E,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAEpF,oGAAoG;IACpG,eAAe,CAAC,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAE9F,+DAA+D;IAC/D,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEhE,mHAAmH;IACnH,WAAW,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAE/D,qGAAqG;IACrG,eAAe,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACnF"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC"}
|
package/dist/types/realtime.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { OHLCBar, TimeFrame } from './ohlc.js';
|
|
|
2
2
|
import { SymbolInfo, SymbolSearchOptions } from './symbol.js';
|
|
3
3
|
import { Quote } from './quote.js';
|
|
4
4
|
import { NewsItem } from './news.js';
|
|
5
|
+
import { DataFeed } from './feed.js';
|
|
5
6
|
/** One trade: when (ms), at what price, how much. */
|
|
6
7
|
export interface Trade {
|
|
7
8
|
time: number;
|
|
@@ -136,7 +137,10 @@ export interface DataAdapter {
|
|
|
136
137
|
dispose(): void;
|
|
137
138
|
}
|
|
138
139
|
export interface StreamConfig {
|
|
139
|
-
adapter
|
|
140
|
+
/** Where the bars come from, as an adapter. Give this or `feed`, not both. */
|
|
141
|
+
adapter?: DataAdapter;
|
|
142
|
+
/** Where the bars come from, as a feed the chart pulls from (`DataFeed`). Give this or `adapter`, not both. */
|
|
143
|
+
feed?: DataFeed;
|
|
140
144
|
symbol: string;
|
|
141
145
|
timeframe: TimeFrame;
|
|
142
146
|
/** Bars to load at the start. Default 500. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../../src/types/realtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../../src/types/realtime.ts"],"names":[],"mappings":"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"}
|