iq-option-client 1.3.3 → 1.3.5
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 +4 -0
- package/README.md +73 -2
- package/dist/bin/MultiMarketExample.d.ts +1 -0
- package/dist/bin/MultiMarketExample.js +204 -0
- package/dist/bin/QuickExample.d.ts +1 -0
- package/dist/bin/QuickExample.js +139 -0
- package/dist/bin/Test200Candles.d.ts +1 -0
- package/dist/bin/Test200Candles.js +212 -0
- package/dist/bin/TestGetCandles.d.ts +1 -0
- package/dist/bin/TestGetCandles.js +211 -0
- package/dist/lib/Service/IQOptionService/Helper/CandleValidator.d.ts +21 -0
- package/dist/lib/Service/IQOptionService/Helper/CandleValidator.js +110 -0
- package/dist/lib/Service/IQOptionService/Helper/CurrencyValidator.d.ts +21 -0
- package/dist/lib/Service/IQOptionService/Helper/CurrencyValidator.js +127 -0
- package/dist/lib/Service/IQOptionService/Helper/index.d.ts +2 -0
- package/dist/lib/Service/IQOptionService/Helper/index.js +3 -1
- package/dist/lib/Service/IQOptionService/IQOptionApi.d.ts +12 -0
- package/dist/lib/Service/IQOptionService/IQOptionApi.js +144 -1
- package/dist/lib/Service/IQOptionService/IQOptionStreamCandleGenerated.js +13 -4
- package/dist/lib/Service/IQOptionService/IQOptionWs.js +2 -1
- package/dist/lib/Service/IQOptionService/Model/IQOptionAction.d.ts +4 -1
- package/dist/lib/Service/IQOptionService/Model/IQOptionAction.js +4 -1
- package/dist/lib/Service/IQOptionService/Model/IQOptionCurrencyUpdated.d.ts +77 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionCurrencyUpdated.js +11 -0
- package/dist/lib/Service/IQOptionService/Model/index.d.ts +1 -0
- package/dist/lib/Service/IQOptionService/Model/index.js +2 -1
- package/dist/lib/Service/IQOptionService/Repository/IQOptionRepository.d.ts +4 -0
- package/dist/lib/Service/IQOptionService/Repository/WebSocketRepository.d.ts +13 -0
- package/dist/lib/Service/IQOptionService/Repository/WebSocketRepository.js +40 -1
- package/package.json +5 -2
|
@@ -15,5 +15,18 @@ export declare class WebSocketRepository implements IQOptionRepository {
|
|
|
15
15
|
getProfile(timeoutMs?: number): Promise<Core.IQOptionProfile>;
|
|
16
16
|
getInitializationData(timeoutMs?: number): Promise<Core.IQOptionInitializationData>;
|
|
17
17
|
getDigitalOptionInstruments(market: Core.IQOptionMarket, timeoutMs?: number): Promise<Core.IQOptionInstruments>;
|
|
18
|
+
/**
|
|
19
|
+
* Get historical candles.
|
|
20
|
+
*
|
|
21
|
+
* @param activeId Market/Active ID
|
|
22
|
+
* @param size Candle size in seconds (e.g., 60 for 1 minute, 120 for 2 minutes)
|
|
23
|
+
* @param fromId Starting candle ID
|
|
24
|
+
* @param toId Ending candle ID
|
|
25
|
+
* @param splitNormalization Normalize split (default: true)
|
|
26
|
+
* @param onlyClosed Only get closed candles (default: true)
|
|
27
|
+
* @param timeoutMs Timeout in milliseconds
|
|
28
|
+
* @returns Array of historical candles
|
|
29
|
+
*/
|
|
30
|
+
getCandles(activeId: number, size: number, fromId: number, toId: number, splitNormalization?: boolean, onlyClosed?: boolean, timeoutMs?: number): Promise<Core.IQOptionCandle[]>;
|
|
18
31
|
private getNextRequestID;
|
|
19
32
|
}
|
|
@@ -91,9 +91,48 @@ class WebSocketRepository {
|
|
|
91
91
|
}, requestID);
|
|
92
92
|
return this.waitForMessage(Core.IQOptionAction.GET_DIGITAL_OPTION_INSTRUMENTS, requestID, timeoutMs);
|
|
93
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Get historical candles.
|
|
96
|
+
*
|
|
97
|
+
* @param activeId Market/Active ID
|
|
98
|
+
* @param size Candle size in seconds (e.g., 60 for 1 minute, 120 for 2 minutes)
|
|
99
|
+
* @param fromId Starting candle ID
|
|
100
|
+
* @param toId Ending candle ID
|
|
101
|
+
* @param splitNormalization Normalize split (default: true)
|
|
102
|
+
* @param onlyClosed Only get closed candles (default: true)
|
|
103
|
+
* @param timeoutMs Timeout in milliseconds
|
|
104
|
+
* @returns Array of historical candles
|
|
105
|
+
*/
|
|
106
|
+
async getCandles(activeId, size, fromId, toId, splitNormalization = true, onlyClosed = true, timeoutMs = 10000) {
|
|
107
|
+
const requestID = await this.getNextRequestID();
|
|
108
|
+
await this.sendMessage(Core.IQOptionName.SEND_MESSAGE, {
|
|
109
|
+
name: Core.IQOptionAction.GET_CANDLES,
|
|
110
|
+
version: "2.0",
|
|
111
|
+
body: {
|
|
112
|
+
active_id: activeId,
|
|
113
|
+
size: size,
|
|
114
|
+
from_id: fromId,
|
|
115
|
+
to_id: toId,
|
|
116
|
+
split_normalization: splitNormalization,
|
|
117
|
+
only_closed: onlyClosed,
|
|
118
|
+
},
|
|
119
|
+
}, requestID);
|
|
120
|
+
const response = await this.waitForMessage(Core.IQOptionAction.CANDLES, requestID, timeoutMs);
|
|
121
|
+
// Response can be an array of candles or an object with candles array
|
|
122
|
+
if (Array.isArray(response)) {
|
|
123
|
+
return response;
|
|
124
|
+
}
|
|
125
|
+
else if ((response === null || response === void 0 ? void 0 : response.candles) && Array.isArray(response.candles)) {
|
|
126
|
+
return response.candles;
|
|
127
|
+
}
|
|
128
|
+
else if ((response === null || response === void 0 ? void 0 : response.data) && Array.isArray(response.data)) {
|
|
129
|
+
return response.data;
|
|
130
|
+
}
|
|
131
|
+
return [];
|
|
132
|
+
}
|
|
94
133
|
async getNextRequestID() {
|
|
95
134
|
return RequestIdGenerator_1.RequestIdGenerator.getNext();
|
|
96
135
|
}
|
|
97
136
|
}
|
|
98
137
|
exports.WebSocketRepository = WebSocketRepository;
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViU29ja2V0UmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvU2VydmljZS9JUU9wdGlvblNlcnZpY2UvUmVwb3NpdG9yeS9XZWJTb2NrZXRSZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7O0dBT0c7QUFDSCxnQ0FBZ0M7QUFJaEMsdUNBQXVDO0FBQ3ZDLHdEQUFxRDtBQUNyRCx3REFBcUQ7QUFDckQscUVBQWtFO0FBRWxFOztHQUVHO0FBQ0gsTUFBYSxtQkFBbUI7SUFLNUIsWUFBWSxRQUEwQixFQUFFLE1BQWdCO1FBQ3BELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLDJCQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQVksRUFBRSxHQUFRLEVBQUUsU0FBa0I7UUFDL0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNyQyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sS0FBSyxDQUFDLGNBQWMsQ0FDdkIsTUFBMkIsRUFDM0IsU0FBMkIsRUFDM0IsWUFBb0IsSUFBSTtRQUV4QixPQUFPLElBQUksQ0FBQyxZ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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iq-option-client",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.5",
|
|
4
4
|
"description": "A robust TypeScript client library for interacting with the IQ Option WebSocket API. Features real-time trading, market data streaming, and order management with SOLID principles.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -39,7 +39,10 @@
|
|
|
39
39
|
"test:coverage": "jest --detectOpenHandles --coverage",
|
|
40
40
|
"format": "prettier --write \"{src,test}/**/*.ts\" && eslint --fix \"src/**/*.ts\"",
|
|
41
41
|
"build": "npm run clean && tsc -p tsconfig.json --pretty",
|
|
42
|
-
"sample:iqoption": "npm run build && LOG_LEVEL=silly ENVIRONMENT=LOCAL node dist/bin/IQOption.js"
|
|
42
|
+
"sample:iqoption": "npm run build && LOG_LEVEL=silly ENVIRONMENT=LOCAL node dist/bin/IQOption.js",
|
|
43
|
+
"sample:quick": "npm run build && LOG_LEVEL=info node dist/bin/QuickExample.js",
|
|
44
|
+
"test:candles": "npm run build && LOG_LEVEL=info node dist/bin/TestGetCandles.js",
|
|
45
|
+
"test:200candles": "npm run build && LOG_LEVEL=info node dist/bin/Test200Candles.js"
|
|
43
46
|
},
|
|
44
47
|
"author": "Wellington Rocha",
|
|
45
48
|
"license": "ISC",
|