ctrader-ts 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.
- package/LICENSE +21 -0
- package/README.md +301 -0
- package/assets/banner.png +0 -0
- package/dist/bin/auth.d.ts +3 -0
- package/dist/bin/auth.d.ts.map +1 -0
- package/dist/bin/auth.js +193 -0
- package/dist/bin/auth.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +359 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/src/client.d.ts +310 -0
- package/dist/src/client.d.ts.map +1 -0
- package/dist/src/client.js +507 -0
- package/dist/src/client.js.map +1 -0
- package/dist/src/config.d.ts +18 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +70 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/connect.d.ts +20 -0
- package/dist/src/connect.d.ts.map +1 -0
- package/dist/src/connect.js +36 -0
- package/dist/src/connect.js.map +1 -0
- package/dist/src/connection.d.ts +51 -0
- package/dist/src/connection.d.ts.map +1 -0
- package/dist/src/connection.js +292 -0
- package/dist/src/connection.js.map +1 -0
- package/dist/src/enums.d.ts +341 -0
- package/dist/src/enums.d.ts.map +1 -0
- package/dist/src/enums.js +369 -0
- package/dist/src/enums.js.map +1 -0
- package/dist/src/errors.d.ts +24 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +47 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/helpers.d.ts +28 -0
- package/dist/src/helpers.d.ts.map +1 -0
- package/dist/src/helpers.js +113 -0
- package/dist/src/helpers.js.map +1 -0
- package/dist/src/index.d.ts +12 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +11 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/modules/account.d.ts +67 -0
- package/dist/src/modules/account.d.ts.map +1 -0
- package/dist/src/modules/account.js +168 -0
- package/dist/src/modules/account.js.map +1 -0
- package/dist/src/modules/auth.d.ts +20 -0
- package/dist/src/modules/auth.d.ts.map +1 -0
- package/dist/src/modules/auth.js +43 -0
- package/dist/src/modules/auth.js.map +1 -0
- package/dist/src/modules/market.d.ts +53 -0
- package/dist/src/modules/market.d.ts.map +1 -0
- package/dist/src/modules/market.js +192 -0
- package/dist/src/modules/market.js.map +1 -0
- package/dist/src/modules/trading.d.ts +80 -0
- package/dist/src/modules/trading.d.ts.map +1 -0
- package/dist/src/modules/trading.js +150 -0
- package/dist/src/modules/trading.js.map +1 -0
- package/dist/src/symbol-cache.d.ts +14 -0
- package/dist/src/symbol-cache.d.ts.map +1 -0
- package/dist/src/symbol-cache.js +41 -0
- package/dist/src/symbol-cache.js.map +1 -0
- package/dist/src/types.d.ts +413 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
export var PayloadType;
|
|
2
|
+
(function (PayloadType) {
|
|
3
|
+
PayloadType[PayloadType["PROTO_MESSAGE"] = 5] = "PROTO_MESSAGE";
|
|
4
|
+
PayloadType[PayloadType["ERROR_RES"] = 50] = "ERROR_RES";
|
|
5
|
+
PayloadType[PayloadType["HEARTBEAT_EVENT"] = 51] = "HEARTBEAT_EVENT";
|
|
6
|
+
PayloadType[PayloadType["APP_AUTH_REQ"] = 2100] = "APP_AUTH_REQ";
|
|
7
|
+
PayloadType[PayloadType["APP_AUTH_RES"] = 2101] = "APP_AUTH_RES";
|
|
8
|
+
PayloadType[PayloadType["ACCOUNT_AUTH_REQ"] = 2102] = "ACCOUNT_AUTH_REQ";
|
|
9
|
+
PayloadType[PayloadType["ACCOUNT_AUTH_RES"] = 2103] = "ACCOUNT_AUTH_RES";
|
|
10
|
+
PayloadType[PayloadType["VERSION_REQ"] = 2104] = "VERSION_REQ";
|
|
11
|
+
PayloadType[PayloadType["VERSION_RES"] = 2105] = "VERSION_RES";
|
|
12
|
+
PayloadType[PayloadType["NEW_ORDER_REQ"] = 2106] = "NEW_ORDER_REQ";
|
|
13
|
+
PayloadType[PayloadType["TRAILING_SL_CHANGED_EVENT"] = 2107] = "TRAILING_SL_CHANGED_EVENT";
|
|
14
|
+
PayloadType[PayloadType["CANCEL_ORDER_REQ"] = 2108] = "CANCEL_ORDER_REQ";
|
|
15
|
+
PayloadType[PayloadType["AMEND_ORDER_REQ"] = 2109] = "AMEND_ORDER_REQ";
|
|
16
|
+
PayloadType[PayloadType["AMEND_POSITION_SLTP_REQ"] = 2110] = "AMEND_POSITION_SLTP_REQ";
|
|
17
|
+
PayloadType[PayloadType["CLOSE_POSITION_REQ"] = 2111] = "CLOSE_POSITION_REQ";
|
|
18
|
+
PayloadType[PayloadType["ASSET_LIST_REQ"] = 2112] = "ASSET_LIST_REQ";
|
|
19
|
+
PayloadType[PayloadType["ASSET_LIST_RES"] = 2113] = "ASSET_LIST_RES";
|
|
20
|
+
PayloadType[PayloadType["SYMBOLS_LIST_REQ"] = 2114] = "SYMBOLS_LIST_REQ";
|
|
21
|
+
PayloadType[PayloadType["SYMBOLS_LIST_RES"] = 2115] = "SYMBOLS_LIST_RES";
|
|
22
|
+
PayloadType[PayloadType["SYMBOL_BY_ID_REQ"] = 2116] = "SYMBOL_BY_ID_REQ";
|
|
23
|
+
PayloadType[PayloadType["SYMBOL_BY_ID_RES"] = 2117] = "SYMBOL_BY_ID_RES";
|
|
24
|
+
PayloadType[PayloadType["SYMBOLS_FOR_CONVERSION_REQ"] = 2118] = "SYMBOLS_FOR_CONVERSION_REQ";
|
|
25
|
+
PayloadType[PayloadType["SYMBOLS_FOR_CONVERSION_RES"] = 2119] = "SYMBOLS_FOR_CONVERSION_RES";
|
|
26
|
+
PayloadType[PayloadType["SYMBOL_CHANGED_EVENT"] = 2120] = "SYMBOL_CHANGED_EVENT";
|
|
27
|
+
PayloadType[PayloadType["TRADER_REQ"] = 2121] = "TRADER_REQ";
|
|
28
|
+
PayloadType[PayloadType["TRADER_RES"] = 2122] = "TRADER_RES";
|
|
29
|
+
PayloadType[PayloadType["TRADER_UPDATED_EVENT"] = 2123] = "TRADER_UPDATED_EVENT";
|
|
30
|
+
PayloadType[PayloadType["RECONCILE_REQ"] = 2124] = "RECONCILE_REQ";
|
|
31
|
+
PayloadType[PayloadType["RECONCILE_RES"] = 2125] = "RECONCILE_RES";
|
|
32
|
+
PayloadType[PayloadType["EXECUTION_EVENT"] = 2126] = "EXECUTION_EVENT";
|
|
33
|
+
PayloadType[PayloadType["SUBSCRIBE_SPOTS_REQ"] = 2127] = "SUBSCRIBE_SPOTS_REQ";
|
|
34
|
+
PayloadType[PayloadType["SUBSCRIBE_SPOTS_RES"] = 2128] = "SUBSCRIBE_SPOTS_RES";
|
|
35
|
+
PayloadType[PayloadType["UNSUBSCRIBE_SPOTS_REQ"] = 2129] = "UNSUBSCRIBE_SPOTS_REQ";
|
|
36
|
+
PayloadType[PayloadType["UNSUBSCRIBE_SPOTS_RES"] = 2130] = "UNSUBSCRIBE_SPOTS_RES";
|
|
37
|
+
PayloadType[PayloadType["SPOT_EVENT"] = 2131] = "SPOT_EVENT";
|
|
38
|
+
PayloadType[PayloadType["ORDER_ERROR_EVENT"] = 2132] = "ORDER_ERROR_EVENT";
|
|
39
|
+
PayloadType[PayloadType["DEAL_LIST_REQ"] = 2133] = "DEAL_LIST_REQ";
|
|
40
|
+
PayloadType[PayloadType["DEAL_LIST_RES"] = 2134] = "DEAL_LIST_RES";
|
|
41
|
+
PayloadType[PayloadType["SUBSCRIBE_LIVE_TRENDBAR_REQ"] = 2135] = "SUBSCRIBE_LIVE_TRENDBAR_REQ";
|
|
42
|
+
PayloadType[PayloadType["UNSUBSCRIBE_LIVE_TRENDBAR_REQ"] = 2136] = "UNSUBSCRIBE_LIVE_TRENDBAR_REQ";
|
|
43
|
+
PayloadType[PayloadType["GET_TRENDBARS_REQ"] = 2137] = "GET_TRENDBARS_REQ";
|
|
44
|
+
PayloadType[PayloadType["GET_TRENDBARS_RES"] = 2138] = "GET_TRENDBARS_RES";
|
|
45
|
+
PayloadType[PayloadType["EXPECTED_MARGIN_REQ"] = 2139] = "EXPECTED_MARGIN_REQ";
|
|
46
|
+
PayloadType[PayloadType["EXPECTED_MARGIN_RES"] = 2140] = "EXPECTED_MARGIN_RES";
|
|
47
|
+
PayloadType[PayloadType["MARGIN_CHANGED_EVENT"] = 2141] = "MARGIN_CHANGED_EVENT";
|
|
48
|
+
PayloadType[PayloadType["OA_ERROR_RES"] = 2142] = "OA_ERROR_RES";
|
|
49
|
+
PayloadType[PayloadType["CASH_FLOW_HISTORY_REQ"] = 2143] = "CASH_FLOW_HISTORY_REQ";
|
|
50
|
+
PayloadType[PayloadType["CASH_FLOW_HISTORY_RES"] = 2144] = "CASH_FLOW_HISTORY_RES";
|
|
51
|
+
PayloadType[PayloadType["GET_TICK_DATA_REQ"] = 2145] = "GET_TICK_DATA_REQ";
|
|
52
|
+
PayloadType[PayloadType["GET_TICK_DATA_RES"] = 2146] = "GET_TICK_DATA_RES";
|
|
53
|
+
PayloadType[PayloadType["ACCOUNTS_TOKEN_INVALIDATED_EVENT"] = 2147] = "ACCOUNTS_TOKEN_INVALIDATED_EVENT";
|
|
54
|
+
PayloadType[PayloadType["CLIENT_DISCONNECT_EVENT"] = 2148] = "CLIENT_DISCONNECT_EVENT";
|
|
55
|
+
PayloadType[PayloadType["GET_ACCOUNTS_BY_TOKEN_REQ"] = 2149] = "GET_ACCOUNTS_BY_TOKEN_REQ";
|
|
56
|
+
PayloadType[PayloadType["GET_ACCOUNTS_BY_TOKEN_RES"] = 2150] = "GET_ACCOUNTS_BY_TOKEN_RES";
|
|
57
|
+
PayloadType[PayloadType["GET_CTID_PROFILE_REQ"] = 2151] = "GET_CTID_PROFILE_REQ";
|
|
58
|
+
PayloadType[PayloadType["GET_CTID_PROFILE_RES"] = 2152] = "GET_CTID_PROFILE_RES";
|
|
59
|
+
PayloadType[PayloadType["ASSET_CLASS_LIST_REQ"] = 2153] = "ASSET_CLASS_LIST_REQ";
|
|
60
|
+
PayloadType[PayloadType["ASSET_CLASS_LIST_RES"] = 2154] = "ASSET_CLASS_LIST_RES";
|
|
61
|
+
PayloadType[PayloadType["DEPTH_EVENT"] = 2155] = "DEPTH_EVENT";
|
|
62
|
+
PayloadType[PayloadType["SUBSCRIBE_DEPTH_REQ"] = 2156] = "SUBSCRIBE_DEPTH_REQ";
|
|
63
|
+
PayloadType[PayloadType["SUBSCRIBE_DEPTH_RES"] = 2157] = "SUBSCRIBE_DEPTH_RES";
|
|
64
|
+
PayloadType[PayloadType["UNSUBSCRIBE_DEPTH_REQ"] = 2158] = "UNSUBSCRIBE_DEPTH_REQ";
|
|
65
|
+
PayloadType[PayloadType["UNSUBSCRIBE_DEPTH_RES"] = 2159] = "UNSUBSCRIBE_DEPTH_RES";
|
|
66
|
+
PayloadType[PayloadType["SYMBOL_CATEGORY_LIST_REQ"] = 2160] = "SYMBOL_CATEGORY_LIST_REQ";
|
|
67
|
+
PayloadType[PayloadType["SYMBOL_CATEGORY_LIST_RES"] = 2161] = "SYMBOL_CATEGORY_LIST_RES";
|
|
68
|
+
PayloadType[PayloadType["ACCOUNT_LOGOUT_REQ"] = 2162] = "ACCOUNT_LOGOUT_REQ";
|
|
69
|
+
PayloadType[PayloadType["ACCOUNT_LOGOUT_RES"] = 2163] = "ACCOUNT_LOGOUT_RES";
|
|
70
|
+
PayloadType[PayloadType["ACCOUNT_DISCONNECT_EVENT"] = 2164] = "ACCOUNT_DISCONNECT_EVENT";
|
|
71
|
+
PayloadType[PayloadType["SUBSCRIBE_LIVE_TRENDBAR_RES"] = 2165] = "SUBSCRIBE_LIVE_TRENDBAR_RES";
|
|
72
|
+
PayloadType[PayloadType["UNSUBSCRIBE_LIVE_TRENDBAR_RES"] = 2166] = "UNSUBSCRIBE_LIVE_TRENDBAR_RES";
|
|
73
|
+
PayloadType[PayloadType["MARGIN_CALL_LIST_REQ"] = 2167] = "MARGIN_CALL_LIST_REQ";
|
|
74
|
+
PayloadType[PayloadType["MARGIN_CALL_LIST_RES"] = 2168] = "MARGIN_CALL_LIST_RES";
|
|
75
|
+
PayloadType[PayloadType["MARGIN_CALL_UPDATE_REQ"] = 2169] = "MARGIN_CALL_UPDATE_REQ";
|
|
76
|
+
PayloadType[PayloadType["MARGIN_CALL_UPDATE_RES"] = 2170] = "MARGIN_CALL_UPDATE_RES";
|
|
77
|
+
PayloadType[PayloadType["MARGIN_CALL_UPDATE_EVENT"] = 2171] = "MARGIN_CALL_UPDATE_EVENT";
|
|
78
|
+
PayloadType[PayloadType["MARGIN_CALL_TRIGGER_EVENT"] = 2172] = "MARGIN_CALL_TRIGGER_EVENT";
|
|
79
|
+
PayloadType[PayloadType["REFRESH_TOKEN_REQ"] = 2173] = "REFRESH_TOKEN_REQ";
|
|
80
|
+
PayloadType[PayloadType["REFRESH_TOKEN_RES"] = 2174] = "REFRESH_TOKEN_RES";
|
|
81
|
+
PayloadType[PayloadType["ORDER_LIST_REQ"] = 2175] = "ORDER_LIST_REQ";
|
|
82
|
+
PayloadType[PayloadType["ORDER_LIST_RES"] = 2176] = "ORDER_LIST_RES";
|
|
83
|
+
PayloadType[PayloadType["GET_DYNAMIC_LEVERAGE_REQ"] = 2177] = "GET_DYNAMIC_LEVERAGE_REQ";
|
|
84
|
+
PayloadType[PayloadType["GET_DYNAMIC_LEVERAGE_RES"] = 2178] = "GET_DYNAMIC_LEVERAGE_RES";
|
|
85
|
+
PayloadType[PayloadType["DEAL_LIST_BY_POSITION_REQ"] = 2179] = "DEAL_LIST_BY_POSITION_REQ";
|
|
86
|
+
PayloadType[PayloadType["DEAL_LIST_BY_POSITION_RES"] = 2180] = "DEAL_LIST_BY_POSITION_RES";
|
|
87
|
+
PayloadType[PayloadType["ORDER_DETAILS_REQ"] = 2181] = "ORDER_DETAILS_REQ";
|
|
88
|
+
PayloadType[PayloadType["ORDER_DETAILS_RES"] = 2182] = "ORDER_DETAILS_RES";
|
|
89
|
+
PayloadType[PayloadType["ORDER_LIST_BY_POSITION_REQ"] = 2183] = "ORDER_LIST_BY_POSITION_REQ";
|
|
90
|
+
PayloadType[PayloadType["ORDER_LIST_BY_POSITION_RES"] = 2184] = "ORDER_LIST_BY_POSITION_RES";
|
|
91
|
+
PayloadType[PayloadType["DEAL_OFFSET_LIST_REQ"] = 2185] = "DEAL_OFFSET_LIST_REQ";
|
|
92
|
+
PayloadType[PayloadType["DEAL_OFFSET_LIST_RES"] = 2186] = "DEAL_OFFSET_LIST_RES";
|
|
93
|
+
PayloadType[PayloadType["GET_POSITION_UNREALIZED_PNL_REQ"] = 2187] = "GET_POSITION_UNREALIZED_PNL_REQ";
|
|
94
|
+
PayloadType[PayloadType["GET_POSITION_UNREALIZED_PNL_RES"] = 2188] = "GET_POSITION_UNREALIZED_PNL_RES";
|
|
95
|
+
})(PayloadType || (PayloadType = {}));
|
|
96
|
+
export var OrderType;
|
|
97
|
+
(function (OrderType) {
|
|
98
|
+
OrderType[OrderType["MARKET"] = 1] = "MARKET";
|
|
99
|
+
OrderType[OrderType["LIMIT"] = 2] = "LIMIT";
|
|
100
|
+
OrderType[OrderType["STOP"] = 3] = "STOP";
|
|
101
|
+
OrderType[OrderType["STOP_LOSS_TAKE_PROFIT"] = 4] = "STOP_LOSS_TAKE_PROFIT";
|
|
102
|
+
OrderType[OrderType["MARKET_RANGE"] = 5] = "MARKET_RANGE";
|
|
103
|
+
OrderType[OrderType["STOP_LIMIT"] = 6] = "STOP_LIMIT";
|
|
104
|
+
})(OrderType || (OrderType = {}));
|
|
105
|
+
export var TradeSide;
|
|
106
|
+
(function (TradeSide) {
|
|
107
|
+
TradeSide[TradeSide["BUY"] = 1] = "BUY";
|
|
108
|
+
TradeSide[TradeSide["SELL"] = 2] = "SELL";
|
|
109
|
+
})(TradeSide || (TradeSide = {}));
|
|
110
|
+
export var TimeInForce;
|
|
111
|
+
(function (TimeInForce) {
|
|
112
|
+
TimeInForce[TimeInForce["GOOD_TILL_DATE"] = 1] = "GOOD_TILL_DATE";
|
|
113
|
+
TimeInForce[TimeInForce["GOOD_TILL_CANCEL"] = 2] = "GOOD_TILL_CANCEL";
|
|
114
|
+
TimeInForce[TimeInForce["IMMEDIATE_OR_CANCEL"] = 3] = "IMMEDIATE_OR_CANCEL";
|
|
115
|
+
TimeInForce[TimeInForce["FILL_OR_KILL"] = 4] = "FILL_OR_KILL";
|
|
116
|
+
TimeInForce[TimeInForce["MARKET_ON_OPEN"] = 5] = "MARKET_ON_OPEN";
|
|
117
|
+
})(TimeInForce || (TimeInForce = {}));
|
|
118
|
+
export var ExecutionType;
|
|
119
|
+
(function (ExecutionType) {
|
|
120
|
+
ExecutionType[ExecutionType["ORDER_ACCEPTED"] = 2] = "ORDER_ACCEPTED";
|
|
121
|
+
ExecutionType[ExecutionType["ORDER_FILLED"] = 3] = "ORDER_FILLED";
|
|
122
|
+
ExecutionType[ExecutionType["ORDER_REPLACED"] = 4] = "ORDER_REPLACED";
|
|
123
|
+
ExecutionType[ExecutionType["ORDER_CANCELLED"] = 5] = "ORDER_CANCELLED";
|
|
124
|
+
ExecutionType[ExecutionType["ORDER_EXPIRED"] = 6] = "ORDER_EXPIRED";
|
|
125
|
+
ExecutionType[ExecutionType["ORDER_REJECTED"] = 7] = "ORDER_REJECTED";
|
|
126
|
+
ExecutionType[ExecutionType["ORDER_CANCEL_REJECTED"] = 8] = "ORDER_CANCEL_REJECTED";
|
|
127
|
+
ExecutionType[ExecutionType["SWAP"] = 9] = "SWAP";
|
|
128
|
+
ExecutionType[ExecutionType["DEPOSIT_WITHDRAW"] = 10] = "DEPOSIT_WITHDRAW";
|
|
129
|
+
ExecutionType[ExecutionType["ORDER_PARTIAL_FILL"] = 11] = "ORDER_PARTIAL_FILL";
|
|
130
|
+
ExecutionType[ExecutionType["BONUS_DEPOSIT_WITHDRAW"] = 12] = "BONUS_DEPOSIT_WITHDRAW";
|
|
131
|
+
})(ExecutionType || (ExecutionType = {}));
|
|
132
|
+
export var PositionStatus;
|
|
133
|
+
(function (PositionStatus) {
|
|
134
|
+
PositionStatus[PositionStatus["OPEN"] = 1] = "OPEN";
|
|
135
|
+
PositionStatus[PositionStatus["CLOSED"] = 2] = "CLOSED";
|
|
136
|
+
PositionStatus[PositionStatus["CREATED"] = 3] = "CREATED";
|
|
137
|
+
PositionStatus[PositionStatus["ERROR"] = 4] = "ERROR";
|
|
138
|
+
})(PositionStatus || (PositionStatus = {}));
|
|
139
|
+
export var OrderStatus;
|
|
140
|
+
(function (OrderStatus) {
|
|
141
|
+
OrderStatus[OrderStatus["ACCEPTED"] = 1] = "ACCEPTED";
|
|
142
|
+
OrderStatus[OrderStatus["FILLED"] = 2] = "FILLED";
|
|
143
|
+
OrderStatus[OrderStatus["REJECTED"] = 3] = "REJECTED";
|
|
144
|
+
OrderStatus[OrderStatus["EXPIRED"] = 4] = "EXPIRED";
|
|
145
|
+
OrderStatus[OrderStatus["CANCELLED"] = 5] = "CANCELLED";
|
|
146
|
+
})(OrderStatus || (OrderStatus = {}));
|
|
147
|
+
export var DealStatus;
|
|
148
|
+
(function (DealStatus) {
|
|
149
|
+
DealStatus[DealStatus["FILLED"] = 2] = "FILLED";
|
|
150
|
+
DealStatus[DealStatus["PARTIALLY_FILLED"] = 3] = "PARTIALLY_FILLED";
|
|
151
|
+
DealStatus[DealStatus["REJECTED"] = 4] = "REJECTED";
|
|
152
|
+
DealStatus[DealStatus["INTERNALLY_REJECTED"] = 5] = "INTERNALLY_REJECTED";
|
|
153
|
+
DealStatus[DealStatus["ERROR"] = 6] = "ERROR";
|
|
154
|
+
DealStatus[DealStatus["MISSED"] = 7] = "MISSED";
|
|
155
|
+
})(DealStatus || (DealStatus = {}));
|
|
156
|
+
export var TrendbarPeriod;
|
|
157
|
+
(function (TrendbarPeriod) {
|
|
158
|
+
TrendbarPeriod[TrendbarPeriod["M1"] = 1] = "M1";
|
|
159
|
+
TrendbarPeriod[TrendbarPeriod["M2"] = 2] = "M2";
|
|
160
|
+
TrendbarPeriod[TrendbarPeriod["M3"] = 3] = "M3";
|
|
161
|
+
TrendbarPeriod[TrendbarPeriod["M4"] = 4] = "M4";
|
|
162
|
+
TrendbarPeriod[TrendbarPeriod["M5"] = 5] = "M5";
|
|
163
|
+
TrendbarPeriod[TrendbarPeriod["M10"] = 6] = "M10";
|
|
164
|
+
TrendbarPeriod[TrendbarPeriod["M15"] = 7] = "M15";
|
|
165
|
+
TrendbarPeriod[TrendbarPeriod["M30"] = 8] = "M30";
|
|
166
|
+
TrendbarPeriod[TrendbarPeriod["H1"] = 9] = "H1";
|
|
167
|
+
TrendbarPeriod[TrendbarPeriod["H4"] = 10] = "H4";
|
|
168
|
+
TrendbarPeriod[TrendbarPeriod["H12"] = 11] = "H12";
|
|
169
|
+
TrendbarPeriod[TrendbarPeriod["D1"] = 12] = "D1";
|
|
170
|
+
TrendbarPeriod[TrendbarPeriod["W1"] = 13] = "W1";
|
|
171
|
+
TrendbarPeriod[TrendbarPeriod["MN1"] = 14] = "MN1";
|
|
172
|
+
})(TrendbarPeriod || (TrendbarPeriod = {}));
|
|
173
|
+
export var QuoteType;
|
|
174
|
+
(function (QuoteType) {
|
|
175
|
+
QuoteType[QuoteType["BID"] = 1] = "BID";
|
|
176
|
+
QuoteType[QuoteType["ASK"] = 2] = "ASK";
|
|
177
|
+
})(QuoteType || (QuoteType = {}));
|
|
178
|
+
export var OrderTriggerMethod;
|
|
179
|
+
(function (OrderTriggerMethod) {
|
|
180
|
+
OrderTriggerMethod[OrderTriggerMethod["TRADE"] = 1] = "TRADE";
|
|
181
|
+
OrderTriggerMethod[OrderTriggerMethod["OPPOSITE"] = 2] = "OPPOSITE";
|
|
182
|
+
OrderTriggerMethod[OrderTriggerMethod["DOUBLE_TRADE"] = 3] = "DOUBLE_TRADE";
|
|
183
|
+
OrderTriggerMethod[OrderTriggerMethod["DOUBLE_OPPOSITE"] = 4] = "DOUBLE_OPPOSITE";
|
|
184
|
+
})(OrderTriggerMethod || (OrderTriggerMethod = {}));
|
|
185
|
+
export var DayOfWeek;
|
|
186
|
+
(function (DayOfWeek) {
|
|
187
|
+
DayOfWeek[DayOfWeek["NONE"] = 0] = "NONE";
|
|
188
|
+
DayOfWeek[DayOfWeek["MONDAY"] = 1] = "MONDAY";
|
|
189
|
+
DayOfWeek[DayOfWeek["TUESDAY"] = 2] = "TUESDAY";
|
|
190
|
+
DayOfWeek[DayOfWeek["WEDNESDAY"] = 3] = "WEDNESDAY";
|
|
191
|
+
DayOfWeek[DayOfWeek["THURSDAY"] = 4] = "THURSDAY";
|
|
192
|
+
DayOfWeek[DayOfWeek["FRIDAY"] = 5] = "FRIDAY";
|
|
193
|
+
DayOfWeek[DayOfWeek["SATURDAY"] = 6] = "SATURDAY";
|
|
194
|
+
DayOfWeek[DayOfWeek["SUNDAY"] = 7] = "SUNDAY";
|
|
195
|
+
})(DayOfWeek || (DayOfWeek = {}));
|
|
196
|
+
export var CommissionType;
|
|
197
|
+
(function (CommissionType) {
|
|
198
|
+
CommissionType[CommissionType["USD_PER_MILLION_USD"] = 1] = "USD_PER_MILLION_USD";
|
|
199
|
+
CommissionType[CommissionType["USD_PER_LOT"] = 2] = "USD_PER_LOT";
|
|
200
|
+
CommissionType[CommissionType["PERCENTAGE_OF_VALUE"] = 3] = "PERCENTAGE_OF_VALUE";
|
|
201
|
+
CommissionType[CommissionType["QUOTE_CCY_PER_LOT"] = 4] = "QUOTE_CCY_PER_LOT";
|
|
202
|
+
})(CommissionType || (CommissionType = {}));
|
|
203
|
+
export var SymbolDistanceType;
|
|
204
|
+
(function (SymbolDistanceType) {
|
|
205
|
+
SymbolDistanceType[SymbolDistanceType["SYMBOL_DISTANCE_IN_POINTS"] = 1] = "SYMBOL_DISTANCE_IN_POINTS";
|
|
206
|
+
SymbolDistanceType[SymbolDistanceType["SYMBOL_DISTANCE_IN_PERCENTAGE"] = 2] = "SYMBOL_DISTANCE_IN_PERCENTAGE";
|
|
207
|
+
})(SymbolDistanceType || (SymbolDistanceType = {}));
|
|
208
|
+
export var MinCommissionType;
|
|
209
|
+
(function (MinCommissionType) {
|
|
210
|
+
MinCommissionType[MinCommissionType["CURRENCY"] = 1] = "CURRENCY";
|
|
211
|
+
MinCommissionType[MinCommissionType["QUOTE_CURRENCY"] = 2] = "QUOTE_CURRENCY";
|
|
212
|
+
})(MinCommissionType || (MinCommissionType = {}));
|
|
213
|
+
export var TradingMode;
|
|
214
|
+
(function (TradingMode) {
|
|
215
|
+
TradingMode[TradingMode["ENABLED"] = 0] = "ENABLED";
|
|
216
|
+
TradingMode[TradingMode["DISABLED_WITHOUT_PENDINGS_EXECUTION"] = 1] = "DISABLED_WITHOUT_PENDINGS_EXECUTION";
|
|
217
|
+
TradingMode[TradingMode["DISABLED_WITH_PENDINGS_EXECUTION"] = 2] = "DISABLED_WITH_PENDINGS_EXECUTION";
|
|
218
|
+
TradingMode[TradingMode["CLOSE_ONLY_MODE"] = 3] = "CLOSE_ONLY_MODE";
|
|
219
|
+
})(TradingMode || (TradingMode = {}));
|
|
220
|
+
export var SwapCalculationType;
|
|
221
|
+
(function (SwapCalculationType) {
|
|
222
|
+
SwapCalculationType[SwapCalculationType["PIPS"] = 0] = "PIPS";
|
|
223
|
+
SwapCalculationType[SwapCalculationType["PERCENTAGE"] = 1] = "PERCENTAGE";
|
|
224
|
+
SwapCalculationType[SwapCalculationType["POINTS"] = 2] = "POINTS";
|
|
225
|
+
})(SwapCalculationType || (SwapCalculationType = {}));
|
|
226
|
+
export var AccessRights;
|
|
227
|
+
(function (AccessRights) {
|
|
228
|
+
AccessRights[AccessRights["FULL_ACCESS"] = 0] = "FULL_ACCESS";
|
|
229
|
+
AccessRights[AccessRights["CLOSE_ONLY"] = 1] = "CLOSE_ONLY";
|
|
230
|
+
AccessRights[AccessRights["NO_TRADING"] = 2] = "NO_TRADING";
|
|
231
|
+
AccessRights[AccessRights["NO_LOGIN"] = 3] = "NO_LOGIN";
|
|
232
|
+
})(AccessRights || (AccessRights = {}));
|
|
233
|
+
export var TotalMarginCalculationType;
|
|
234
|
+
(function (TotalMarginCalculationType) {
|
|
235
|
+
TotalMarginCalculationType[TotalMarginCalculationType["MAX"] = 0] = "MAX";
|
|
236
|
+
TotalMarginCalculationType[TotalMarginCalculationType["SUM"] = 1] = "SUM";
|
|
237
|
+
TotalMarginCalculationType[TotalMarginCalculationType["NET"] = 2] = "NET";
|
|
238
|
+
})(TotalMarginCalculationType || (TotalMarginCalculationType = {}));
|
|
239
|
+
export var AccountType;
|
|
240
|
+
(function (AccountType) {
|
|
241
|
+
AccountType[AccountType["HEDGED"] = 0] = "HEDGED";
|
|
242
|
+
AccountType[AccountType["NETTED"] = 1] = "NETTED";
|
|
243
|
+
AccountType[AccountType["SPREAD_BETTING"] = 2] = "SPREAD_BETTING";
|
|
244
|
+
})(AccountType || (AccountType = {}));
|
|
245
|
+
export var LimitedRiskMarginCalculationStrategy;
|
|
246
|
+
(function (LimitedRiskMarginCalculationStrategy) {
|
|
247
|
+
LimitedRiskMarginCalculationStrategy[LimitedRiskMarginCalculationStrategy["ACCORDING_TO_LEVERAGE"] = 0] = "ACCORDING_TO_LEVERAGE";
|
|
248
|
+
LimitedRiskMarginCalculationStrategy[LimitedRiskMarginCalculationStrategy["ACCORDING_TO_GSL"] = 1] = "ACCORDING_TO_GSL";
|
|
249
|
+
LimitedRiskMarginCalculationStrategy[LimitedRiskMarginCalculationStrategy["ACCORDING_TO_GSL_AND_LEVERAGE"] = 2] = "ACCORDING_TO_GSL_AND_LEVERAGE";
|
|
250
|
+
})(LimitedRiskMarginCalculationStrategy || (LimitedRiskMarginCalculationStrategy = {}));
|
|
251
|
+
export var StopOutStrategy;
|
|
252
|
+
(function (StopOutStrategy) {
|
|
253
|
+
StopOutStrategy[StopOutStrategy["MOST_MARGIN_USED_FIRST"] = 0] = "MOST_MARGIN_USED_FIRST";
|
|
254
|
+
StopOutStrategy[StopOutStrategy["MOST_LOSING_FIRST"] = 1] = "MOST_LOSING_FIRST";
|
|
255
|
+
})(StopOutStrategy || (StopOutStrategy = {}));
|
|
256
|
+
export var ClientPermissionScope;
|
|
257
|
+
(function (ClientPermissionScope) {
|
|
258
|
+
ClientPermissionScope[ClientPermissionScope["SCOPE_VIEW"] = 0] = "SCOPE_VIEW";
|
|
259
|
+
ClientPermissionScope[ClientPermissionScope["SCOPE_TRADE"] = 1] = "SCOPE_TRADE";
|
|
260
|
+
})(ClientPermissionScope || (ClientPermissionScope = {}));
|
|
261
|
+
export var NotificationType;
|
|
262
|
+
(function (NotificationType) {
|
|
263
|
+
NotificationType[NotificationType["MARGIN_LEVEL_THRESHOLD_1"] = 61] = "MARGIN_LEVEL_THRESHOLD_1";
|
|
264
|
+
NotificationType[NotificationType["MARGIN_LEVEL_THRESHOLD_2"] = 62] = "MARGIN_LEVEL_THRESHOLD_2";
|
|
265
|
+
NotificationType[NotificationType["MARGIN_LEVEL_THRESHOLD_3"] = 63] = "MARGIN_LEVEL_THRESHOLD_3";
|
|
266
|
+
})(NotificationType || (NotificationType = {}));
|
|
267
|
+
export var ChangeBonusType;
|
|
268
|
+
(function (ChangeBonusType) {
|
|
269
|
+
ChangeBonusType[ChangeBonusType["BONUS_DEPOSIT"] = 0] = "BONUS_DEPOSIT";
|
|
270
|
+
ChangeBonusType[ChangeBonusType["BONUS_WITHDRAW"] = 1] = "BONUS_WITHDRAW";
|
|
271
|
+
})(ChangeBonusType || (ChangeBonusType = {}));
|
|
272
|
+
export var ChangeBalanceType;
|
|
273
|
+
(function (ChangeBalanceType) {
|
|
274
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT"] = 0] = "BALANCE_DEPOSIT";
|
|
275
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW"] = 1] = "BALANCE_WITHDRAW";
|
|
276
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_STRATEGY_COMMISSION_INNER"] = 3] = "BALANCE_DEPOSIT_STRATEGY_COMMISSION_INNER";
|
|
277
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_STRATEGY_COMMISSION_INNER"] = 4] = "BALANCE_WITHDRAW_STRATEGY_COMMISSION_INNER";
|
|
278
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_IB_COMMISSIONS"] = 5] = "BALANCE_DEPOSIT_IB_COMMISSIONS";
|
|
279
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_IB_SHARED_PERCENTAGE"] = 6] = "BALANCE_WITHDRAW_IB_SHARED_PERCENTAGE";
|
|
280
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_IB_SHARED_PERCENTAGE_FROM_SUB_IB"] = 7] = "BALANCE_DEPOSIT_IB_SHARED_PERCENTAGE_FROM_SUB_IB";
|
|
281
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_IB_SHARED_PERCENTAGE_FROM_BROKER"] = 8] = "BALANCE_DEPOSIT_IB_SHARED_PERCENTAGE_FROM_BROKER";
|
|
282
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_REBATE"] = 9] = "BALANCE_DEPOSIT_REBATE";
|
|
283
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_REBATE"] = 10] = "BALANCE_WITHDRAW_REBATE";
|
|
284
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_STRATEGY_COMMISSION_OUTER"] = 11] = "BALANCE_DEPOSIT_STRATEGY_COMMISSION_OUTER";
|
|
285
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_STRATEGY_COMMISSION_OUTER"] = 12] = "BALANCE_WITHDRAW_STRATEGY_COMMISSION_OUTER";
|
|
286
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_BONUS_COMPENSATION"] = 13] = "BALANCE_WITHDRAW_BONUS_COMPENSATION";
|
|
287
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_IB_SHARED_PERCENTAGE_TO_BROKER"] = 14] = "BALANCE_WITHDRAW_IB_SHARED_PERCENTAGE_TO_BROKER";
|
|
288
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_DIVIDENDS"] = 15] = "BALANCE_DEPOSIT_DIVIDENDS";
|
|
289
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_DIVIDENDS"] = 16] = "BALANCE_WITHDRAW_DIVIDENDS";
|
|
290
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_GSL_CHARGE"] = 17] = "BALANCE_WITHDRAW_GSL_CHARGE";
|
|
291
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_ROLLOVER"] = 18] = "BALANCE_WITHDRAW_ROLLOVER";
|
|
292
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_NONWITHDRAWABLE_BONUS"] = 19] = "BALANCE_DEPOSIT_NONWITHDRAWABLE_BONUS";
|
|
293
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_NONWITHDRAWABLE_BONUS"] = 20] = "BALANCE_WITHDRAW_NONWITHDRAWABLE_BONUS";
|
|
294
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_SWAP"] = 21] = "BALANCE_DEPOSIT_SWAP";
|
|
295
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_SWAP"] = 22] = "BALANCE_WITHDRAW_SWAP";
|
|
296
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_MANAGEMENT_FEE"] = 27] = "BALANCE_DEPOSIT_MANAGEMENT_FEE";
|
|
297
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_MANAGEMENT_FEE"] = 28] = "BALANCE_WITHDRAW_MANAGEMENT_FEE";
|
|
298
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_PERFORMANCE_FEE"] = 29] = "BALANCE_DEPOSIT_PERFORMANCE_FEE";
|
|
299
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_FOR_SUBACCOUNT"] = 30] = "BALANCE_WITHDRAW_FOR_SUBACCOUNT";
|
|
300
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_TO_SUBACCOUNT"] = 31] = "BALANCE_DEPOSIT_TO_SUBACCOUNT";
|
|
301
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_FROM_SUBACCOUNT"] = 32] = "BALANCE_WITHDRAW_FROM_SUBACCOUNT";
|
|
302
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_FROM_SUBACCOUNT"] = 33] = "BALANCE_DEPOSIT_FROM_SUBACCOUNT";
|
|
303
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_COPY_FEE"] = 34] = "BALANCE_WITHDRAW_COPY_FEE";
|
|
304
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_INACTIVITY_FEE"] = 35] = "BALANCE_WITHDRAW_INACTIVITY_FEE";
|
|
305
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_TRANSFER"] = 36] = "BALANCE_DEPOSIT_TRANSFER";
|
|
306
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_WITHDRAW_TRANSFER"] = 37] = "BALANCE_WITHDRAW_TRANSFER";
|
|
307
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_CONVERTED_BONUS"] = 38] = "BALANCE_DEPOSIT_CONVERTED_BONUS";
|
|
308
|
+
ChangeBalanceType[ChangeBalanceType["BALANCE_DEPOSIT_NEGATIVE_BALANCE_PROTECTION"] = 39] = "BALANCE_DEPOSIT_NEGATIVE_BALANCE_PROTECTION";
|
|
309
|
+
})(ChangeBalanceType || (ChangeBalanceType = {}));
|
|
310
|
+
export var ProtoErrorCode;
|
|
311
|
+
(function (ProtoErrorCode) {
|
|
312
|
+
ProtoErrorCode[ProtoErrorCode["UNKNOWN_ERROR"] = 1] = "UNKNOWN_ERROR";
|
|
313
|
+
ProtoErrorCode[ProtoErrorCode["UNSUPPORTED_MESSAGE"] = 2] = "UNSUPPORTED_MESSAGE";
|
|
314
|
+
ProtoErrorCode[ProtoErrorCode["INVALID_REQUEST"] = 3] = "INVALID_REQUEST";
|
|
315
|
+
ProtoErrorCode[ProtoErrorCode["TIMEOUT_ERROR"] = 5] = "TIMEOUT_ERROR";
|
|
316
|
+
ProtoErrorCode[ProtoErrorCode["ENTITY_NOT_FOUND"] = 6] = "ENTITY_NOT_FOUND";
|
|
317
|
+
ProtoErrorCode[ProtoErrorCode["CANT_ROUTE_REQUEST"] = 7] = "CANT_ROUTE_REQUEST";
|
|
318
|
+
ProtoErrorCode[ProtoErrorCode["FRAME_TOO_LONG"] = 8] = "FRAME_TOO_LONG";
|
|
319
|
+
ProtoErrorCode[ProtoErrorCode["MARKET_CLOSED"] = 9] = "MARKET_CLOSED";
|
|
320
|
+
ProtoErrorCode[ProtoErrorCode["CONCURRENT_MODIFICATION"] = 10] = "CONCURRENT_MODIFICATION";
|
|
321
|
+
ProtoErrorCode[ProtoErrorCode["BLOCKED_PAYLOAD_TYPE"] = 11] = "BLOCKED_PAYLOAD_TYPE";
|
|
322
|
+
})(ProtoErrorCode || (ProtoErrorCode = {}));
|
|
323
|
+
export var ProtoOAErrorCode;
|
|
324
|
+
(function (ProtoOAErrorCode) {
|
|
325
|
+
ProtoOAErrorCode[ProtoOAErrorCode["OA_AUTH_TOKEN_EXPIRED"] = 1] = "OA_AUTH_TOKEN_EXPIRED";
|
|
326
|
+
ProtoOAErrorCode[ProtoOAErrorCode["ACCOUNT_NOT_AUTHORIZED"] = 2] = "ACCOUNT_NOT_AUTHORIZED";
|
|
327
|
+
ProtoOAErrorCode[ProtoOAErrorCode["RET_NO_SUCH_LOGIN"] = 12] = "RET_NO_SUCH_LOGIN";
|
|
328
|
+
ProtoOAErrorCode[ProtoOAErrorCode["ALREADY_LOGGED_IN"] = 14] = "ALREADY_LOGGED_IN";
|
|
329
|
+
ProtoOAErrorCode[ProtoOAErrorCode["RET_ACCOUNT_DISABLED"] = 64] = "RET_ACCOUNT_DISABLED";
|
|
330
|
+
ProtoOAErrorCode[ProtoOAErrorCode["CONNECTIONS_LIMIT_EXCEEDED"] = 67] = "CONNECTIONS_LIMIT_EXCEEDED";
|
|
331
|
+
ProtoOAErrorCode[ProtoOAErrorCode["WORSE_GSL_NOT_ALLOWED"] = 68] = "WORSE_GSL_NOT_ALLOWED";
|
|
332
|
+
ProtoOAErrorCode[ProtoOAErrorCode["SYMBOL_HAS_HOLIDAY"] = 69] = "SYMBOL_HAS_HOLIDAY";
|
|
333
|
+
ProtoOAErrorCode[ProtoOAErrorCode["CH_CLIENT_AUTH_FAILURE"] = 101] = "CH_CLIENT_AUTH_FAILURE";
|
|
334
|
+
ProtoOAErrorCode[ProtoOAErrorCode["CH_CLIENT_NOT_AUTHENTICATED"] = 102] = "CH_CLIENT_NOT_AUTHENTICATED";
|
|
335
|
+
ProtoOAErrorCode[ProtoOAErrorCode["CH_CLIENT_ALREADY_AUTHENTICATED"] = 103] = "CH_CLIENT_ALREADY_AUTHENTICATED";
|
|
336
|
+
ProtoOAErrorCode[ProtoOAErrorCode["CH_ACCESS_TOKEN_INVALID"] = 104] = "CH_ACCESS_TOKEN_INVALID";
|
|
337
|
+
ProtoOAErrorCode[ProtoOAErrorCode["CH_SERVER_NOT_REACHABLE"] = 105] = "CH_SERVER_NOT_REACHABLE";
|
|
338
|
+
ProtoOAErrorCode[ProtoOAErrorCode["CH_CTID_TRADER_ACCOUNT_NOT_FOUND"] = 106] = "CH_CTID_TRADER_ACCOUNT_NOT_FOUND";
|
|
339
|
+
ProtoOAErrorCode[ProtoOAErrorCode["CH_OA_CLIENT_NOT_FOUND"] = 107] = "CH_OA_CLIENT_NOT_FOUND";
|
|
340
|
+
ProtoOAErrorCode[ProtoOAErrorCode["REQUEST_FREQUENCY_EXCEEDED"] = 108] = "REQUEST_FREQUENCY_EXCEEDED";
|
|
341
|
+
ProtoOAErrorCode[ProtoOAErrorCode["SERVER_IS_UNDER_MAINTENANCE"] = 109] = "SERVER_IS_UNDER_MAINTENANCE";
|
|
342
|
+
ProtoOAErrorCode[ProtoOAErrorCode["CHANNEL_IS_BLOCKED"] = 110] = "CHANNEL_IS_BLOCKED";
|
|
343
|
+
ProtoOAErrorCode[ProtoOAErrorCode["NOT_SUBSCRIBED_TO_SPOTS"] = 112] = "NOT_SUBSCRIBED_TO_SPOTS";
|
|
344
|
+
ProtoOAErrorCode[ProtoOAErrorCode["ALREADY_SUBSCRIBED"] = 113] = "ALREADY_SUBSCRIBED";
|
|
345
|
+
ProtoOAErrorCode[ProtoOAErrorCode["SYMBOL_NOT_FOUND"] = 114] = "SYMBOL_NOT_FOUND";
|
|
346
|
+
ProtoOAErrorCode[ProtoOAErrorCode["UNKNOWN_SYMBOL"] = 115] = "UNKNOWN_SYMBOL";
|
|
347
|
+
ProtoOAErrorCode[ProtoOAErrorCode["INCORRECT_BOUNDARIES"] = 35] = "INCORRECT_BOUNDARIES";
|
|
348
|
+
ProtoOAErrorCode[ProtoOAErrorCode["NO_QUOTES"] = 117] = "NO_QUOTES";
|
|
349
|
+
ProtoOAErrorCode[ProtoOAErrorCode["NOT_ENOUGH_MONEY"] = 118] = "NOT_ENOUGH_MONEY";
|
|
350
|
+
ProtoOAErrorCode[ProtoOAErrorCode["MAX_EXPOSURE_REACHED"] = 119] = "MAX_EXPOSURE_REACHED";
|
|
351
|
+
ProtoOAErrorCode[ProtoOAErrorCode["POSITION_NOT_FOUND"] = 120] = "POSITION_NOT_FOUND";
|
|
352
|
+
ProtoOAErrorCode[ProtoOAErrorCode["ORDER_NOT_FOUND"] = 121] = "ORDER_NOT_FOUND";
|
|
353
|
+
ProtoOAErrorCode[ProtoOAErrorCode["POSITION_NOT_OPEN"] = 122] = "POSITION_NOT_OPEN";
|
|
354
|
+
ProtoOAErrorCode[ProtoOAErrorCode["POSITION_LOCKED"] = 123] = "POSITION_LOCKED";
|
|
355
|
+
ProtoOAErrorCode[ProtoOAErrorCode["TOO_MANY_POSITIONS"] = 124] = "TOO_MANY_POSITIONS";
|
|
356
|
+
ProtoOAErrorCode[ProtoOAErrorCode["TRADING_BAD_VOLUME"] = 125] = "TRADING_BAD_VOLUME";
|
|
357
|
+
ProtoOAErrorCode[ProtoOAErrorCode["TRADING_BAD_STOPS"] = 126] = "TRADING_BAD_STOPS";
|
|
358
|
+
ProtoOAErrorCode[ProtoOAErrorCode["TRADING_BAD_PRICES"] = 127] = "TRADING_BAD_PRICES";
|
|
359
|
+
ProtoOAErrorCode[ProtoOAErrorCode["TRADING_BAD_STAKE"] = 128] = "TRADING_BAD_STAKE";
|
|
360
|
+
ProtoOAErrorCode[ProtoOAErrorCode["PROTECTION_IS_TOO_CLOSE_TO_MARKET"] = 129] = "PROTECTION_IS_TOO_CLOSE_TO_MARKET";
|
|
361
|
+
ProtoOAErrorCode[ProtoOAErrorCode["TRADING_BAD_EXPIRATION_DATE"] = 130] = "TRADING_BAD_EXPIRATION_DATE";
|
|
362
|
+
ProtoOAErrorCode[ProtoOAErrorCode["PENDING_EXECUTION"] = 131] = "PENDING_EXECUTION";
|
|
363
|
+
ProtoOAErrorCode[ProtoOAErrorCode["TRADING_DISABLED"] = 132] = "TRADING_DISABLED";
|
|
364
|
+
ProtoOAErrorCode[ProtoOAErrorCode["TRADING_NOT_ALLOWED"] = 133] = "TRADING_NOT_ALLOWED";
|
|
365
|
+
ProtoOAErrorCode[ProtoOAErrorCode["UNABLE_TO_CANCEL_ORDER"] = 134] = "UNABLE_TO_CANCEL_ORDER";
|
|
366
|
+
ProtoOAErrorCode[ProtoOAErrorCode["UNABLE_TO_AMEND_ORDER"] = 135] = "UNABLE_TO_AMEND_ORDER";
|
|
367
|
+
ProtoOAErrorCode[ProtoOAErrorCode["SHORT_SELLING_NOT_ALLOWED"] = 136] = "SHORT_SELLING_NOT_ALLOWED";
|
|
368
|
+
})(ProtoOAErrorCode || (ProtoOAErrorCode = {}));
|
|
369
|
+
//# sourceMappingURL=enums.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/enums.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare class CTraderError extends Error {
|
|
2
|
+
readonly code: string;
|
|
3
|
+
readonly description: string;
|
|
4
|
+
readonly retryAfter?: number;
|
|
5
|
+
readonly maintenanceEndTimestamp?: number;
|
|
6
|
+
constructor(opts: {
|
|
7
|
+
code: string;
|
|
8
|
+
description: string;
|
|
9
|
+
retryAfter?: number;
|
|
10
|
+
maintenanceEndTimestamp?: number;
|
|
11
|
+
});
|
|
12
|
+
get isAuthError(): boolean;
|
|
13
|
+
get isRateLimit(): boolean;
|
|
14
|
+
get isMaintenance(): boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare class RequestTimeoutError extends Error {
|
|
17
|
+
readonly payloadType: number;
|
|
18
|
+
readonly clientMsgId: string;
|
|
19
|
+
constructor(payloadType: number, clientMsgId: string, timeoutMs: number);
|
|
20
|
+
}
|
|
21
|
+
export declare class NotConnectedError extends Error {
|
|
22
|
+
constructor();
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;gBAE9B,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;KAAE;IAS9G,IAAI,WAAW,IAAI,OAAO,CASzB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;CACD;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAMvE;AAED,qBAAa,iBAAkB,SAAQ,KAAK;;CAK3C"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export class CTraderError extends Error {
|
|
2
|
+
code;
|
|
3
|
+
description;
|
|
4
|
+
retryAfter;
|
|
5
|
+
maintenanceEndTimestamp;
|
|
6
|
+
constructor(opts) {
|
|
7
|
+
super(`[${opts.code}] ${opts.description}`);
|
|
8
|
+
this.name = "CTraderError";
|
|
9
|
+
this.code = opts.code;
|
|
10
|
+
this.description = opts.description;
|
|
11
|
+
if (opts.retryAfter !== undefined)
|
|
12
|
+
this.retryAfter = opts.retryAfter;
|
|
13
|
+
if (opts.maintenanceEndTimestamp !== undefined)
|
|
14
|
+
this.maintenanceEndTimestamp = opts.maintenanceEndTimestamp;
|
|
15
|
+
}
|
|
16
|
+
get isAuthError() {
|
|
17
|
+
return (this.code === "OA_AUTH_TOKEN_EXPIRED" ||
|
|
18
|
+
this.code === "ACCOUNT_NOT_AUTHORIZED" ||
|
|
19
|
+
this.code === "CH_CLIENT_AUTH_FAILURE" ||
|
|
20
|
+
this.code === "CH_CLIENT_NOT_AUTHENTICATED" ||
|
|
21
|
+
this.code === "CH_ACCESS_TOKEN_INVALID" ||
|
|
22
|
+
this.code === "OAUTH_TOKEN_INVALIDATED");
|
|
23
|
+
}
|
|
24
|
+
get isRateLimit() {
|
|
25
|
+
return this.code === "REQUEST_FREQUENCY_EXCEEDED" || this.code === "BLOCKED_PAYLOAD_TYPE";
|
|
26
|
+
}
|
|
27
|
+
get isMaintenance() {
|
|
28
|
+
return this.code === "SERVER_IS_UNDER_MAINTENANCE";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export class RequestTimeoutError extends Error {
|
|
32
|
+
payloadType;
|
|
33
|
+
clientMsgId;
|
|
34
|
+
constructor(payloadType, clientMsgId, timeoutMs) {
|
|
35
|
+
super(`Request timed out after ${timeoutMs}ms (payloadType: ${payloadType}, id: ${clientMsgId})`);
|
|
36
|
+
this.name = "RequestTimeoutError";
|
|
37
|
+
this.payloadType = payloadType;
|
|
38
|
+
this.clientMsgId = clientMsgId;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export class NotConnectedError extends Error {
|
|
42
|
+
constructor() {
|
|
43
|
+
super("Not connected to cTrader API");
|
|
44
|
+
this.name = "NotConnectedError";
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC7B,IAAI,CAAS;IACb,WAAW,CAAS;IACpB,UAAU,CAAU;IACpB,uBAAuB,CAAU;IAE1C,YAAY,IAAkG;QAC7G,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACrE,IAAI,IAAI,CAAC,uBAAuB,KAAK,SAAS;YAAE,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC;IAC7G,CAAC;IAED,IAAI,WAAW;QACd,OAAO,CACN,IAAI,CAAC,IAAI,KAAK,uBAAuB;YACrC,IAAI,CAAC,IAAI,KAAK,wBAAwB;YACtC,IAAI,CAAC,IAAI,KAAK,wBAAwB;YACtC,IAAI,CAAC,IAAI,KAAK,6BAA6B;YAC3C,IAAI,CAAC,IAAI,KAAK,yBAAyB;YACvC,IAAI,CAAC,IAAI,KAAK,yBAAyB,CACvC,CAAC;IACH,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,IAAI,KAAK,4BAA4B,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAAC;IAC3F,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,IAAI,KAAK,6BAA6B,CAAC;IACpD,CAAC;CACD;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACpC,WAAW,CAAS;IACpB,WAAW,CAAS;IAE7B,YAAY,WAAmB,EAAE,WAAmB,EAAE,SAAiB;QACtE,KAAK,CAAC,2BAA2B,SAAS,oBAAoB,WAAW,SAAS,WAAW,GAAG,CAAC,CAAC;QAClG,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;CACD;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC3C;QACC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IACjC,CAAC;CACD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { CTraderAccount } from "./modules/account.js";
|
|
2
|
+
import type { CTraderMarket } from "./modules/market.js";
|
|
3
|
+
import type { SymbolCache } from "./symbol-cache.js";
|
|
4
|
+
import type { SlTpSpec } from "./types.js";
|
|
5
|
+
export type { SlTpSpec };
|
|
6
|
+
interface SlTpContext {
|
|
7
|
+
account: CTraderAccount;
|
|
8
|
+
market: CTraderMarket;
|
|
9
|
+
symbols: SymbolCache;
|
|
10
|
+
symbolId: number;
|
|
11
|
+
volumeInUnits: number;
|
|
12
|
+
}
|
|
13
|
+
interface ResolvedSlTp {
|
|
14
|
+
relativeStopLoss?: number;
|
|
15
|
+
relativeTakeProfit?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Convert pips to protocol relative SL/TP units.
|
|
19
|
+
* Formula: pips * 10^(5 - pipPosition)
|
|
20
|
+
*/
|
|
21
|
+
export declare function pipsToRelative(pips: number, pipPosition?: number): number;
|
|
22
|
+
/**
|
|
23
|
+
* Resolve human-friendly SlTpSpec (pips / dollars / equity) into protocol-level
|
|
24
|
+
* relative SL/TP values. Fetches symbol details, account equity, and spot price
|
|
25
|
+
* as needed, with per-call caching to avoid duplicate requests.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveSlTp(ctx: SlTpContext, sl: SlTpSpec | undefined, tp: SlTpSpec | undefined): Promise<ResolvedSlTp>;
|
|
28
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB,UAAU,WAAW;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,YAAY;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,SAAI,GAAG,MAAM,CAEpE;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAChC,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,QAAQ,GAAG,SAAS,EACxB,EAAE,EAAE,QAAQ,GAAG,SAAS,GACtB,OAAO,CAAC,YAAY,CAAC,CAmBvB"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert pips to protocol relative SL/TP units.
|
|
3
|
+
* Formula: pips * 10^(5 - pipPosition)
|
|
4
|
+
*/
|
|
5
|
+
export function pipsToRelative(pips, pipPosition = 4) {
|
|
6
|
+
return Math.round(pips * Math.pow(10, 5 - pipPosition));
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Resolve human-friendly SlTpSpec (pips / dollars / equity) into protocol-level
|
|
10
|
+
* relative SL/TP values. Fetches symbol details, account equity, and spot price
|
|
11
|
+
* as needed, with per-call caching to avoid duplicate requests.
|
|
12
|
+
*/
|
|
13
|
+
export async function resolveSlTp(ctx, sl, tp) {
|
|
14
|
+
const result = {};
|
|
15
|
+
if (sl === undefined && tp === undefined)
|
|
16
|
+
return result;
|
|
17
|
+
const cache = new RequestCache(ctx);
|
|
18
|
+
if (sl !== undefined) {
|
|
19
|
+
const pips = await specToPips(cache, sl, ctx.volumeInUnits);
|
|
20
|
+
const sym = await cache.getSymbolDetails();
|
|
21
|
+
result.relativeStopLoss = pipsToRelative(pips, sym.pipPosition);
|
|
22
|
+
}
|
|
23
|
+
if (tp !== undefined) {
|
|
24
|
+
const pips = await specToPips(cache, tp, ctx.volumeInUnits);
|
|
25
|
+
const sym = await cache.getSymbolDetails();
|
|
26
|
+
result.relativeTakeProfit = pipsToRelative(pips, sym.pipPosition);
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
async function specToPips(cache, spec, volumeInUnits) {
|
|
31
|
+
if ("pips" in spec)
|
|
32
|
+
return spec.pips;
|
|
33
|
+
const sym = await cache.getSymbolDetails();
|
|
34
|
+
const pipSize = Math.pow(10, -sym.pipPosition);
|
|
35
|
+
const lotSize = sym.lotSize ?? 100_000;
|
|
36
|
+
const lots = volumeInUnits / 100_000;
|
|
37
|
+
// pipValue = pipSize * lotSize * quoteToAccountRate (assumed 1:1 for USD accounts)
|
|
38
|
+
const pipValue = pipSize * lotSize * 1;
|
|
39
|
+
let dollars;
|
|
40
|
+
if ("dollars" in spec) {
|
|
41
|
+
dollars = spec.dollars;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
const trader = await cache.getTrader();
|
|
45
|
+
const equity = trader.balance;
|
|
46
|
+
dollars = equity * spec.equity;
|
|
47
|
+
}
|
|
48
|
+
// distancePips = dollars / (pipValue * lots)
|
|
49
|
+
const distancePips = dollars / (pipValue * lots);
|
|
50
|
+
return distancePips;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Per-call cache: ensures parallel resolutions within the same order don't
|
|
54
|
+
* double-fetch symbol details, trader info, or spot prices.
|
|
55
|
+
*/
|
|
56
|
+
class RequestCache {
|
|
57
|
+
ctx;
|
|
58
|
+
symbolPromise = null;
|
|
59
|
+
traderPromise = null;
|
|
60
|
+
spotPromise = null;
|
|
61
|
+
constructor(ctx) {
|
|
62
|
+
this.ctx = ctx;
|
|
63
|
+
}
|
|
64
|
+
getSymbolDetails() {
|
|
65
|
+
if (this.symbolPromise === null) {
|
|
66
|
+
this.symbolPromise = this.ctx.market
|
|
67
|
+
.getSymbolsById([this.ctx.symbolId])
|
|
68
|
+
.then((symbols) => {
|
|
69
|
+
const sym = symbols[0];
|
|
70
|
+
if (sym === undefined) {
|
|
71
|
+
throw new Error(`Symbol details not found for id ${this.ctx.symbolId}`);
|
|
72
|
+
}
|
|
73
|
+
return sym;
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return this.symbolPromise;
|
|
77
|
+
}
|
|
78
|
+
getTrader() {
|
|
79
|
+
if (this.traderPromise === null) {
|
|
80
|
+
this.traderPromise = this.ctx.account.getTrader();
|
|
81
|
+
}
|
|
82
|
+
return this.traderPromise;
|
|
83
|
+
}
|
|
84
|
+
getSpotPrice() {
|
|
85
|
+
if (this.spotPromise === null) {
|
|
86
|
+
this.spotPromise = this.fetchOneSpot();
|
|
87
|
+
}
|
|
88
|
+
return this.spotPromise;
|
|
89
|
+
}
|
|
90
|
+
fetchOneSpot() {
|
|
91
|
+
return new Promise((resolve, reject) => {
|
|
92
|
+
const timeout = setTimeout(() => {
|
|
93
|
+
unsub();
|
|
94
|
+
void this.ctx.market.unsubscribeSpots([this.ctx.symbolId]).catch(() => { });
|
|
95
|
+
reject(new Error(`Timed out waiting for spot price on symbol ${this.ctx.symbolId}`));
|
|
96
|
+
}, 10_000);
|
|
97
|
+
const unsub = this.ctx.market.onSpot((event) => {
|
|
98
|
+
if (event.symbolId === this.ctx.symbolId) {
|
|
99
|
+
clearTimeout(timeout);
|
|
100
|
+
unsub();
|
|
101
|
+
void this.ctx.market.unsubscribeSpots([this.ctx.symbolId]).catch(() => { });
|
|
102
|
+
resolve(event);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
this.ctx.market.subscribeSpots([this.ctx.symbolId]).catch((err) => {
|
|
106
|
+
clearTimeout(timeout);
|
|
107
|
+
unsub();
|
|
108
|
+
reject(err);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"}
|