iq-option-client 1.3.4 → 1.3.6
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
CHANGED
package/README.md
CHANGED
|
@@ -213,7 +213,7 @@ alertsStream.on('data', (alert) => {
|
|
|
213
213
|
```typescript
|
|
214
214
|
import { IQOptionApi } from 'iq-option-client';
|
|
215
215
|
|
|
216
|
-
// Get historical candles
|
|
216
|
+
// Get historical candles with default timeout (15 seconds)
|
|
217
217
|
const candles = await api.getCandles(
|
|
218
218
|
activeId, // Market/Active ID (e.g., 1 for EURUSD, 76, 1874, etc.)
|
|
219
219
|
size, // Candle size in seconds (60 = 1 min, 120 = 2 min)
|
|
@@ -223,6 +223,17 @@ const candles = await api.getCandles(
|
|
|
223
223
|
true // only_closed (optional, default: true)
|
|
224
224
|
);
|
|
225
225
|
|
|
226
|
+
// Get historical candles with custom timeout (30 seconds)
|
|
227
|
+
const candlesWithTimeout = await api.getCandles(
|
|
228
|
+
activeId,
|
|
229
|
+
size,
|
|
230
|
+
fromId,
|
|
231
|
+
toId,
|
|
232
|
+
true,
|
|
233
|
+
true,
|
|
234
|
+
30000 // timeoutMs (optional, default: 15000)
|
|
235
|
+
);
|
|
236
|
+
|
|
226
237
|
console.log(`Received ${candles.length} historical candles`);
|
|
227
238
|
candles.forEach(candle => {
|
|
228
239
|
console.log('Candle:', {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (C) 2020 Wellington Rocha
|
|
5
|
+
* All Rights Reserved.
|
|
6
|
+
*
|
|
7
|
+
* Unauthorized copying of this file, via any medium is strictly prohibited.
|
|
8
|
+
*
|
|
9
|
+
* Proprietary and confidential.
|
|
10
|
+
*/
|
|
11
|
+
// Load environment variables from .env file if it exists
|
|
12
|
+
try {
|
|
13
|
+
require("dotenv").config();
|
|
14
|
+
}
|
|
15
|
+
catch (e) {
|
|
16
|
+
// dotenv is optional, continue without it
|
|
17
|
+
}
|
|
18
|
+
const Core = require("../lib");
|
|
19
|
+
const Logger_1 = require("../lib/Helper/Logger");
|
|
20
|
+
// Get credentials from environment variables
|
|
21
|
+
const email = process.env.IQ_OPTION_EMAIL;
|
|
22
|
+
const password = process.env.IQ_OPTION_PASSWORD;
|
|
23
|
+
if (!email || !password) {
|
|
24
|
+
// eslint-disable-next-line no-console
|
|
25
|
+
console.error("Error: IQ_OPTION_EMAIL and IQ_OPTION_PASSWORD environment variables are required");
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
const logger = Logger_1.LoggerFactory.getDefault();
|
|
29
|
+
const api = new Core.IQOptionApi(email, password);
|
|
30
|
+
logger.info("=== Teste: Buscar 200 Últimos Candles ===");
|
|
31
|
+
api.connectAsync()
|
|
32
|
+
.then(async (profile) => {
|
|
33
|
+
logger.info("✅ Conectado com sucesso!", {
|
|
34
|
+
metadata: {
|
|
35
|
+
userId: profile.user_id,
|
|
36
|
+
email: profile.email,
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
// Configuração do teste
|
|
40
|
+
const market = Core.IQOptionMarket.EURUSD;
|
|
41
|
+
const time = Core.IQOptionTime.ONE_MINUTE;
|
|
42
|
+
const numberOfCandles = 200;
|
|
43
|
+
logger.info("📊 Configuração do teste:", {
|
|
44
|
+
metadata: {
|
|
45
|
+
market: market,
|
|
46
|
+
time: time,
|
|
47
|
+
numberOfCandles: numberOfCandles,
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
// Iniciar stream para obter um candle atual e pegar o ID
|
|
51
|
+
logger.info("🔄 Iniciando stream para obter ID do candle atual...");
|
|
52
|
+
const candleStream = new Core.IQOptionStreamCandleGenerated(api.getIQOptionWs(), market, time);
|
|
53
|
+
await candleStream.startStream();
|
|
54
|
+
logger.info("✅ Stream iniciado, aguardando candle atual...");
|
|
55
|
+
// Aguardar um candle para obter o ID atual
|
|
56
|
+
const currentCandle = await new Promise((resolve, reject) => {
|
|
57
|
+
const timeout = setTimeout(() => {
|
|
58
|
+
candleStream.destroy();
|
|
59
|
+
reject(new Error("Timeout aguardando candle atual"));
|
|
60
|
+
}, 30000);
|
|
61
|
+
candleStream.on("data", (candle) => {
|
|
62
|
+
clearTimeout(timeout);
|
|
63
|
+
candleStream.destroy();
|
|
64
|
+
resolve(candle);
|
|
65
|
+
});
|
|
66
|
+
candleStream.on("error", (error) => {
|
|
67
|
+
clearTimeout(timeout);
|
|
68
|
+
candleStream.destroy();
|
|
69
|
+
reject(error);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
logger.info("🕯️ Candle atual recebido:", {
|
|
73
|
+
metadata: {
|
|
74
|
+
id: currentCandle.id,
|
|
75
|
+
active_id: currentCandle.active_id,
|
|
76
|
+
size: currentCandle.size,
|
|
77
|
+
from: currentCandle.from,
|
|
78
|
+
to: currentCandle.to,
|
|
79
|
+
timestamp: new Date(currentCandle.from * 1000).toISOString(),
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
// Calcular range para buscar 200 candles anteriores
|
|
83
|
+
const toId = currentCandle.id;
|
|
84
|
+
const fromId = toId - numberOfCandles + 1; // +1 para incluir o candle atual
|
|
85
|
+
logger.info("📊 Buscando histórico de candles:", {
|
|
86
|
+
metadata: {
|
|
87
|
+
fromId: fromId,
|
|
88
|
+
toId: toId,
|
|
89
|
+
activeId: currentCandle.active_id,
|
|
90
|
+
size: currentCandle.size,
|
|
91
|
+
expectedCount: numberOfCandles,
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
try {
|
|
95
|
+
const startTime = Date.now();
|
|
96
|
+
const historicalCandles = await api.getCandles(currentCandle.active_id, currentCandle.size, fromId, toId, true, // split_normalization
|
|
97
|
+
true // only_closed
|
|
98
|
+
);
|
|
99
|
+
const endTime = Date.now();
|
|
100
|
+
const duration = endTime - startTime;
|
|
101
|
+
logger.info(`✅ Histórico recebido!`, {
|
|
102
|
+
metadata: {
|
|
103
|
+
count: historicalCandles.length,
|
|
104
|
+
expected: numberOfCandles,
|
|
105
|
+
duration: `${duration}ms`,
|
|
106
|
+
fromId: fromId,
|
|
107
|
+
toId: toId,
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
if (historicalCandles.length === 0) {
|
|
111
|
+
logger.warn("⚠️ Nenhum candle retornado. Verifique os IDs.");
|
|
112
|
+
process.exit(1);
|
|
113
|
+
}
|
|
114
|
+
// Validar se recebemos a quantidade esperada
|
|
115
|
+
if (historicalCandles.length < numberOfCandles) {
|
|
116
|
+
logger.warn(`⚠️ Recebidos ${historicalCandles.length} candles, esperados ${numberOfCandles}`, {
|
|
117
|
+
metadata: {
|
|
118
|
+
received: historicalCandles.length,
|
|
119
|
+
expected: numberOfCandles,
|
|
120
|
+
difference: numberOfCandles - historicalCandles.length,
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
logger.info(`✅ Recebidos ${historicalCandles.length} candles (esperados ${numberOfCandles})`);
|
|
126
|
+
}
|
|
127
|
+
// Mostrar estatísticas dos candles
|
|
128
|
+
const firstCandle = historicalCandles[0];
|
|
129
|
+
const lastCandle = historicalCandles[historicalCandles.length - 1];
|
|
130
|
+
logger.info("📈 Primeiro candle (mais antigo):", {
|
|
131
|
+
metadata: {
|
|
132
|
+
id: firstCandle.id,
|
|
133
|
+
timestamp: new Date(firstCandle.from * 1000).toISOString(),
|
|
134
|
+
open: firstCandle.open,
|
|
135
|
+
close: firstCandle.close,
|
|
136
|
+
high: firstCandle.max,
|
|
137
|
+
low: firstCandle.min,
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
logger.info("📈 Último candle (mais recente):", {
|
|
141
|
+
metadata: {
|
|
142
|
+
id: lastCandle.id,
|
|
143
|
+
timestamp: new Date(lastCandle.from * 1000).toISOString(),
|
|
144
|
+
open: lastCandle.open,
|
|
145
|
+
close: lastCandle.close,
|
|
146
|
+
high: lastCandle.max,
|
|
147
|
+
low: lastCandle.min,
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
// Calcular estatísticas
|
|
151
|
+
const prices = historicalCandles.map(c => c.close);
|
|
152
|
+
const minPrice = Math.min(...prices);
|
|
153
|
+
const maxPrice = Math.max(...prices);
|
|
154
|
+
const avgPrice = prices.reduce((a, b) => a + b, 0) / prices.length;
|
|
155
|
+
logger.info("📊 Estatísticas dos candles:", {
|
|
156
|
+
metadata: {
|
|
157
|
+
totalCandles: historicalCandles.length,
|
|
158
|
+
minPrice: minPrice,
|
|
159
|
+
maxPrice: maxPrice,
|
|
160
|
+
avgPrice: avgPrice.toFixed(5),
|
|
161
|
+
priceRange: (maxPrice - minPrice).toFixed(5),
|
|
162
|
+
},
|
|
163
|
+
});
|
|
164
|
+
// Validar estrutura dos candles
|
|
165
|
+
const invalidCandles = historicalCandles.filter(candle => {
|
|
166
|
+
return !(typeof candle.id === "number" &&
|
|
167
|
+
typeof candle.open === "number" &&
|
|
168
|
+
typeof candle.close === "number" &&
|
|
169
|
+
typeof candle.max === "number" &&
|
|
170
|
+
typeof candle.min === "number" &&
|
|
171
|
+
typeof candle.from === "number" &&
|
|
172
|
+
typeof candle.to === "number");
|
|
173
|
+
});
|
|
174
|
+
if (invalidCandles.length > 0) {
|
|
175
|
+
logger.warn(`⚠️ ${invalidCandles.length} candles com estrutura inválida`);
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
logger.info("✅ Todos os candles têm estrutura válida");
|
|
179
|
+
}
|
|
180
|
+
// Mostrar alguns candles de exemplo (primeiro, meio, último)
|
|
181
|
+
const middleIndex = Math.floor(historicalCandles.length / 2);
|
|
182
|
+
const examples = [
|
|
183
|
+
{ label: "Primeiro", candle: firstCandle },
|
|
184
|
+
{ label: "Meio", candle: historicalCandles[middleIndex] },
|
|
185
|
+
{ label: "Último", candle: lastCandle },
|
|
186
|
+
];
|
|
187
|
+
logger.info("📋 Exemplos de candles:", {
|
|
188
|
+
metadata: {
|
|
189
|
+
examples: examples.map(ex => ({
|
|
190
|
+
label: ex.label,
|
|
191
|
+
id: ex.candle.id,
|
|
192
|
+
timestamp: new Date(ex.candle.from * 1000).toISOString(),
|
|
193
|
+
open: ex.candle.open,
|
|
194
|
+
close: ex.candle.close,
|
|
195
|
+
})),
|
|
196
|
+
},
|
|
197
|
+
});
|
|
198
|
+
logger.info("✅ Teste concluído com sucesso!");
|
|
199
|
+
process.exit(0);
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
203
|
+
logger.error("❌ Erro ao buscar histórico", {}, err);
|
|
204
|
+
process.exit(1);
|
|
205
|
+
}
|
|
206
|
+
})
|
|
207
|
+
.catch((e) => {
|
|
208
|
+
const error = e instanceof Error ? e : new Error(String(e));
|
|
209
|
+
logger.error("❌ Erro na aplicação", { operation: "main" }, error);
|
|
210
|
+
process.exit(1);
|
|
211
|
+
});
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVzdDIwMENhbmRsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluL1Rlc3QyMDBDYW5kbGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7Ozs7R0FPRztBQUNILHlEQUF5RDtBQUN6RCxJQUFJLENBQUM7SUFDRCxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDL0IsQ0FBQztBQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDVCwwQ0FBMEM7QUFDOUMsQ0FBQztBQUVELCtCQUErQjtBQUMvQixpREFBcUQ7QUFFckQsNkNBQTZDO0FBQzdDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO0FBQzFDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUM7QUFFaEQsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RCLHNDQUFzQztJQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLGtGQUFrRixDQUFDLENBQUM7SUFDbEcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxNQUFNLEdBQUcsc0JBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUMxQyxNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBRWxELE1BQU0sQ0FBQyxJQUFJLENBQUMsMkNBQTJDLENBQUMsQ0FBQztBQUV6RCxHQUFHLENBQUMsWUFBWSxFQUFFO0tBQ2IsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFO1FBQ3BDLFFBQVEsRUFBRTtZQUNOLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN2QixLQUFLLEVBQUUsT0FB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
|
|
@@ -97,9 +97,10 @@ export declare class IQOptionApi {
|
|
|
97
97
|
* @param toId Ending candle ID
|
|
98
98
|
* @param splitNormalization Normalize split (default: true)
|
|
99
99
|
* @param onlyClosed Only get closed candles (default: true)
|
|
100
|
+
* @param timeoutMs Optional timeout in milliseconds (default: 15000)
|
|
100
101
|
* @returns Array of historical candles
|
|
101
102
|
*/
|
|
102
|
-
getCandles(activeId: number, size: number, fromId: number, toId: number, splitNormalization?: boolean, onlyClosed?: boolean): Promise<Core.IQOptionCandle[]>;
|
|
103
|
+
getCandles(activeId: number, size: number, fromId: number, toId: number, splitNormalization?: boolean, onlyClosed?: boolean, timeoutMs?: number): Promise<Core.IQOptionCandle[]>;
|
|
103
104
|
/**
|
|
104
105
|
* Get next request id.
|
|
105
106
|
* @deprecated Use RequestIdGenerator.getNext() instead
|
|
@@ -42,7 +42,7 @@ class IQOptionApi {
|
|
|
42
42
|
/**
|
|
43
43
|
* Max wait profile response.
|
|
44
44
|
*/
|
|
45
|
-
this.maxWaitToGetDigitalInstrumentData =
|
|
45
|
+
this.maxWaitToGetDigitalInstrumentData = 15000;
|
|
46
46
|
/**
|
|
47
47
|
* Queue order send.
|
|
48
48
|
*/
|
|
@@ -338,9 +338,10 @@ class IQOptionApi {
|
|
|
338
338
|
* @param toId Ending candle ID
|
|
339
339
|
* @param splitNormalization Normalize split (default: true)
|
|
340
340
|
* @param onlyClosed Only get closed candles (default: true)
|
|
341
|
+
* @param timeoutMs Optional timeout in milliseconds (default: 15000)
|
|
341
342
|
* @returns Array of historical candles
|
|
342
343
|
*/
|
|
343
|
-
getCandles(activeId, size, fromId, toId, splitNormalization = true, onlyClosed = true) {
|
|
344
|
+
getCandles(activeId, size, fromId, toId, splitNormalization = true, onlyClosed = true, timeoutMs) {
|
|
344
345
|
// Validate inputs
|
|
345
346
|
if (activeId <= 0) {
|
|
346
347
|
throw new Error("activeId must be greater than 0");
|
|
@@ -354,12 +355,15 @@ class IQOptionApi {
|
|
|
354
355
|
if (fromId > toId) {
|
|
355
356
|
throw new Error("fromId must be less than or equal to toId");
|
|
356
357
|
}
|
|
358
|
+
// Usar timeout customizado ou padrão
|
|
359
|
+
const timeout = timeoutMs || this.maxWaitToGetDigitalInstrumentData;
|
|
357
360
|
return this.orderPlacementQueue.schedule(async () => {
|
|
358
361
|
Core.logger().silly(`IQOptionApi::getCandles`, {
|
|
359
362
|
activeId,
|
|
360
363
|
size,
|
|
361
364
|
fromId,
|
|
362
365
|
toId,
|
|
366
|
+
timeout,
|
|
363
367
|
});
|
|
364
368
|
const requestID = RequestIdGenerator_1.RequestIdGenerator.getNext();
|
|
365
369
|
return this.iqOptionWs
|
|
@@ -378,36 +382,96 @@ class IQOptionApi {
|
|
|
378
382
|
.then(() => {
|
|
379
383
|
return new Promise((resolve, reject) => {
|
|
380
384
|
const listener = (message) => {
|
|
381
|
-
var _a, _b;
|
|
385
|
+
var _a, _b, _c;
|
|
382
386
|
try {
|
|
383
387
|
const messageJSON = JSON.parse(message.toString());
|
|
384
|
-
|
|
385
|
-
|
|
388
|
+
// Log all messages with matching request_id for debugging
|
|
389
|
+
if (messageJSON.request_id === String(requestID)) {
|
|
390
|
+
Core.logger().silly("IQOptionApi::getCandles - Received response", {
|
|
391
|
+
operation: "getCandles",
|
|
392
|
+
metadata: {
|
|
393
|
+
name: messageJSON.name,
|
|
394
|
+
request_id: messageJSON.request_id,
|
|
395
|
+
hasMsg: !!messageJSON.msg,
|
|
396
|
+
msgType: typeof messageJSON.msg,
|
|
397
|
+
isArray: Array.isArray(messageJSON.msg),
|
|
398
|
+
},
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
// Check if this is the candles response
|
|
402
|
+
if (messageJSON.request_id === String(requestID) &&
|
|
403
|
+
(messageJSON.name === Core.IQOptionAction.CANDLES ||
|
|
404
|
+
messageJSON.name === "candles" ||
|
|
405
|
+
messageJSON.name === "get-candles-result")) {
|
|
386
406
|
this.iqOptionWs.socket().off("message", listener);
|
|
407
|
+
Core.logger().debug("IQOptionApi::getCandles - Processing response", {
|
|
408
|
+
operation: "getCandles",
|
|
409
|
+
metadata: {
|
|
410
|
+
name: messageJSON.name,
|
|
411
|
+
msgType: typeof messageJSON.msg,
|
|
412
|
+
isArray: Array.isArray(messageJSON.msg),
|
|
413
|
+
},
|
|
414
|
+
});
|
|
387
415
|
// Response can be an array of candles or an object with candles array
|
|
388
416
|
let candles = [];
|
|
417
|
+
// Try different response formats
|
|
389
418
|
if (Array.isArray(messageJSON.msg)) {
|
|
390
419
|
candles = messageJSON.msg;
|
|
391
420
|
}
|
|
421
|
+
else if (messageJSON.msg && Array.isArray(messageJSON.msg)) {
|
|
422
|
+
candles = messageJSON.msg;
|
|
423
|
+
}
|
|
392
424
|
else if (((_a = messageJSON.msg) === null || _a === void 0 ? void 0 : _a.candles) && Array.isArray(messageJSON.msg.candles)) {
|
|
393
425
|
candles = messageJSON.msg.candles;
|
|
394
426
|
}
|
|
395
427
|
else if (((_b = messageJSON.msg) === null || _b === void 0 ? void 0 : _b.data) && Array.isArray(messageJSON.msg.data)) {
|
|
396
428
|
candles = messageJSON.msg.data;
|
|
397
429
|
}
|
|
430
|
+
else if (((_c = messageJSON.msg) === null || _c === void 0 ? void 0 : _c.result) && Array.isArray(messageJSON.msg.result)) {
|
|
431
|
+
candles = messageJSON.msg.result;
|
|
432
|
+
}
|
|
433
|
+
else if (Array.isArray(messageJSON)) {
|
|
434
|
+
// Response might be directly an array
|
|
435
|
+
candles = messageJSON;
|
|
436
|
+
}
|
|
437
|
+
else {
|
|
438
|
+
Core.logger().warn("IQOptionApi::getCandles - Unknown response format", {
|
|
439
|
+
operation: "getCandles",
|
|
440
|
+
metadata: {
|
|
441
|
+
response: JSON.stringify(messageJSON).substring(0, 500),
|
|
442
|
+
},
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
Core.logger().info(`IQOptionApi::getCandles - Resolved with ${candles.length} candles`, {
|
|
446
|
+
operation: "getCandles",
|
|
447
|
+
metadata: {
|
|
448
|
+
count: candles.length,
|
|
449
|
+
},
|
|
450
|
+
});
|
|
398
451
|
resolve(candles);
|
|
399
452
|
}
|
|
400
453
|
}
|
|
401
454
|
catch (error) {
|
|
455
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
456
|
+
Core.logger().error("IQOptionApi::getCandles - Error parsing response", {
|
|
457
|
+
operation: "getCandles",
|
|
458
|
+
}, err);
|
|
402
459
|
this.iqOptionWs.socket().off("message", listener);
|
|
403
|
-
reject(
|
|
460
|
+
reject(err);
|
|
404
461
|
}
|
|
405
462
|
};
|
|
406
463
|
this.iqOptionWs.socket().on("message", listener);
|
|
407
464
|
setTimeout(() => {
|
|
408
465
|
this.iqOptionWs.socket().off("message", listener);
|
|
466
|
+
Core.logger().error("IQOptionApi::getCandles - Timeout waiting for response", {
|
|
467
|
+
operation: "getCandles",
|
|
468
|
+
metadata: {
|
|
469
|
+
requestID,
|
|
470
|
+
timeout: timeout,
|
|
471
|
+
},
|
|
472
|
+
});
|
|
409
473
|
reject(new Error("Timeout waiting for candles response."));
|
|
410
|
-
},
|
|
474
|
+
}, timeout);
|
|
411
475
|
});
|
|
412
476
|
});
|
|
413
477
|
});
|
|
@@ -423,4 +487,4 @@ class IQOptionApi {
|
|
|
423
487
|
}
|
|
424
488
|
}
|
|
425
489
|
exports.IQOptionApi = IQOptionApi;
|
|
426
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVFPcHRpb25BcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL1NlcnZpY2UvSVFPcHRpb25TZXJ2aWNlL0lRT3B0aW9uQXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7O0dBT0c7QUFDSCwyQ0FBb0M7QUFDcEMsMENBQTBDO0FBQzFDLDhCQUE4QjtBQUM5Qix1REFBb0Q7QUFDcEQsNkNBQTBDO0FBQzFDLDREQUF5RDtBQUN6RCxvRUFBaUU7QUFFakU7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUErQ3BCOzs7OztPQUtHO0lBQ0gsWUFBWSxLQUFhLEVBQUUsUUFBZ0I7UUFwRDNDOztXQUVHO1FBQ2MsbUJBQWMsR0FBVyxJQUFJLENBQUM7UUFFL0M7O1dBRUc7UUFDYyx1QkFBa0IsR0FBVyxJQUFJLENBQUM7UUFFbkQ7O1dBRUc7UUFDYyxnQ0FBMkIsR0FBVyxJQUFJLENBQUM7UUFFNUQ7O1dBRUc7UUFDYyxzQ0FBaUMsR0FBVyxJQUFJLENBQUM7UUFhbEU7O1dBRUc7UUFDYyx3QkFBbUIsR0FBRyxJQUFJLG9CQUFVLENBQUM7WUFDbEQsYUFBYSxFQUFFLENBQUM7WUFDaEIsT0FBTyxFQUFFLENBQUM7U0FDYixDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNjLHVCQUFrQixHQUFHLElBQUksb0JBQVUsQ0FBQztZQUNqRCxhQUFhLEVBQUUsQ0FBQztTQUNuQixDQUFDLENBQUM7UUFTQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDaEQsa0JBQWtCO1FBQ2xCLCtCQUFjLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLCtCQUFjLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGlDQUFlLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVELElBQUks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
|
|
490
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVFPcHRpb25BcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL1NlcnZpY2UvSVFPcHRpb25TZXJ2aWNlL0lRT3B0aW9uQXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7O0dBT0c7QUFDSCwyQ0FBb0M7QUFDcEMsMENBQTBDO0FBQzFDLDhCQUE4QjtBQUM5Qix1REFBb0Q7QUFDcEQsNkNBQTBDO0FBQzFDLDREQUF5RDtBQUN6RCxvRUFBaUU7QUFFakU7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUErQ3BCOzs7OztPQUtHO0lBQ0gsWUFBWSxLQUFhLEVBQUUsUUFBZ0I7UUFwRDNDOztXQUVHO1FBQ2MsbUJBQWMsR0FBVyxJQUFJLENBQUM7UUFFL0M7O1dBRUc7UUFDYyx1QkFBa0IsR0FBVyxJQUFJLENBQUM7UUFFbkQ7O1dBRUc7UUFDYyxnQ0FBMkIsR0FBVyxJQUFJLENBQUM7UUFFNUQ7O1dBRUc7UUFDYyxzQ0FBaUMsR0FBVyxLQUFLLENBQUM7UUFhbkU7O1dBRUc7UUFDYyx3QkFBbUIsR0FBRyxJQUFJLG9CQUFVLENBQUM7WUFDbEQsYUFBYSxFQUFFLENBQUM7WUFDaEIsT0FBTyxFQUFFLENBQUM7U0FDYixDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNjLHVCQUFrQixHQUFHLElBQUksb0JBQVUsQ0FBQztZQUNqRCxhQUFhLEVBQUUsQ0FBQztTQUNuQixDQUFDLENBQUM7UUFTQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDaEQsa0JBQWtCO1FBQ2xCLCtCQUFjLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLCtCQUFjLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGlDQUFlLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVELElBQUks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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.6",
|
|
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",
|
|
@@ -41,7 +41,8 @@
|
|
|
41
41
|
"build": "npm run clean && tsc -p tsconfig.json --pretty",
|
|
42
42
|
"sample:iqoption": "npm run build && LOG_LEVEL=silly ENVIRONMENT=LOCAL node dist/bin/IQOption.js",
|
|
43
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"
|
|
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"
|
|
45
46
|
},
|
|
46
47
|
"author": "Wellington Rocha",
|
|
47
48
|
"license": "ISC",
|