iq-option-client 1.3.3
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 +16 -0
- package/README.md +531 -0
- package/dist/bin/IQOption.d.ts +2 -0
- package/dist/bin/IQOption.js +100 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +26 -0
- package/dist/lib/Helper/Logger/ILogger.d.ts +39 -0
- package/dist/lib/Helper/Logger/ILogger.js +3 -0
- package/dist/lib/Helper/Logger/LogLevel.d.ts +10 -0
- package/dist/lib/Helper/Logger/LogLevel.js +23 -0
- package/dist/lib/Helper/Logger/LoggerContext.d.ts +59 -0
- package/dist/lib/Helper/Logger/LoggerContext.js +49 -0
- package/dist/lib/Helper/Logger/LoggerFactory.d.ts +22 -0
- package/dist/lib/Helper/Logger/LoggerFactory.js +87 -0
- package/dist/lib/Helper/Logger/WinstonLogger.d.ts +21 -0
- package/dist/lib/Helper/Logger/WinstonLogger.js +56 -0
- package/dist/lib/Helper/Logger/index.d.ts +5 -0
- package/dist/lib/Helper/Logger/index.js +30 -0
- package/dist/lib/Helper/LoggerHelper.d.ts +11 -0
- package/dist/lib/Helper/LoggerHelper.js +48 -0
- package/dist/lib/Helper/SleepHelper.d.ts +6 -0
- package/dist/lib/Helper/SleepHelper.js +15 -0
- package/dist/lib/Helper/index.d.ts +3 -0
- package/dist/lib/Helper/index.js +20 -0
- package/dist/lib/Service/IQOptionService/Adapter/StreamAdapter.d.ts +16 -0
- package/dist/lib/Service/IQOptionService/Adapter/StreamAdapter.js +47 -0
- package/dist/lib/Service/IQOptionService/Adapter/index.d.ts +1 -0
- package/dist/lib/Service/IQOptionService/Adapter/index.js +26 -0
- package/dist/lib/Service/IQOptionService/Builder/OrderBuilder.d.ts +44 -0
- package/dist/lib/Service/IQOptionService/Builder/OrderBuilder.js +91 -0
- package/dist/lib/Service/IQOptionService/Builder/OrderRequest.d.ts +28 -0
- package/dist/lib/Service/IQOptionService/Builder/OrderRequest.js +20 -0
- package/dist/lib/Service/IQOptionService/Builder/index.d.ts +2 -0
- package/dist/lib/Service/IQOptionService/Builder/index.js +27 -0
- package/dist/lib/Service/IQOptionService/Command/CommandInvoker.d.ts +13 -0
- package/dist/lib/Service/IQOptionService/Command/CommandInvoker.js +35 -0
- package/dist/lib/Service/IQOptionService/Command/GetProfileCommand.d.ts +13 -0
- package/dist/lib/Service/IQOptionService/Command/GetProfileCommand.js +20 -0
- package/dist/lib/Service/IQOptionService/Command/ICommand.d.ts +13 -0
- package/dist/lib/Service/IQOptionService/Command/ICommand.js +11 -0
- package/dist/lib/Service/IQOptionService/Command/SendOrderCommand.d.ts +14 -0
- package/dist/lib/Service/IQOptionService/Command/SendOrderCommand.js +20 -0
- package/dist/lib/Service/IQOptionService/Command/index.d.ts +4 -0
- package/dist/lib/Service/IQOptionService/Command/index.js +29 -0
- package/dist/lib/Service/IQOptionService/Error/AuthenticationError.d.ts +7 -0
- package/dist/lib/Service/IQOptionService/Error/AuthenticationError.js +22 -0
- package/dist/lib/Service/IQOptionService/Error/ConnectionError.d.ts +7 -0
- package/dist/lib/Service/IQOptionService/Error/ConnectionError.js +22 -0
- package/dist/lib/Service/IQOptionService/Error/ErrorHandler.d.ts +17 -0
- package/dist/lib/Service/IQOptionService/Error/ErrorHandler.js +58 -0
- package/dist/lib/Service/IQOptionService/Error/IQOptionError.d.ts +15 -0
- package/dist/lib/Service/IQOptionService/Error/IQOptionError.js +46 -0
- package/dist/lib/Service/IQOptionService/Error/OrderError.d.ts +7 -0
- package/dist/lib/Service/IQOptionService/Error/OrderError.js +22 -0
- package/dist/lib/Service/IQOptionService/Error/RetryStrategy.d.ts +42 -0
- package/dist/lib/Service/IQOptionService/Error/RetryStrategy.js +67 -0
- package/dist/lib/Service/IQOptionService/Error/Retryable.d.ts +20 -0
- package/dist/lib/Service/IQOptionService/Error/Retryable.js +36 -0
- package/dist/lib/Service/IQOptionService/Error/TimeoutError.d.ts +7 -0
- package/dist/lib/Service/IQOptionService/Error/TimeoutError.js +23 -0
- package/dist/lib/Service/IQOptionService/Error/index.d.ts +8 -0
- package/dist/lib/Service/IQOptionService/Error/index.js +33 -0
- package/dist/lib/Service/IQOptionService/Factory/StreamFactory.d.ts +17 -0
- package/dist/lib/Service/IQOptionService/Factory/StreamFactory.js +43 -0
- package/dist/lib/Service/IQOptionService/Factory/StreamType.d.ts +9 -0
- package/dist/lib/Service/IQOptionService/Factory/StreamType.js +22 -0
- package/dist/lib/Service/IQOptionService/Factory/index.d.ts +2 -0
- package/dist/lib/Service/IQOptionService/Factory/index.js +27 -0
- package/dist/lib/Service/IQOptionService/Helper/InputValidator.d.ts +34 -0
- package/dist/lib/Service/IQOptionService/Helper/InputValidator.js +101 -0
- package/dist/lib/Service/IQOptionService/Helper/RequestIdGenerator.d.ts +18 -0
- package/dist/lib/Service/IQOptionService/Helper/RequestIdGenerator.js +37 -0
- package/dist/lib/Service/IQOptionService/Helper/index.d.ts +2 -0
- package/dist/lib/Service/IQOptionService/Helper/index.js +27 -0
- package/dist/lib/Service/IQOptionService/IQOptionApi.d.ts +96 -0
- package/dist/lib/Service/IQOptionService/IQOptionApi.js +343 -0
- package/dist/lib/Service/IQOptionService/IQOptionExpired.d.ts +7 -0
- package/dist/lib/Service/IQOptionService/IQOptionExpired.js +27 -0
- package/dist/lib/Service/IQOptionService/IQOptionStreamCandleGenerated.d.ts +55 -0
- package/dist/lib/Service/IQOptionService/IQOptionStreamCandleGenerated.js +88 -0
- package/dist/lib/Service/IQOptionService/IQOptionStreamOptionClose.d.ts +33 -0
- package/dist/lib/Service/IQOptionService/IQOptionStreamOptionClose.js +59 -0
- package/dist/lib/Service/IQOptionService/IQOptionStreamTradersSentiment.d.ts +46 -0
- package/dist/lib/Service/IQOptionService/IQOptionStreamTradersSentiment.js +84 -0
- package/dist/lib/Service/IQOptionService/IQOptionStreamUserAlerts.d.ts +40 -0
- package/dist/lib/Service/IQOptionService/IQOptionStreamUserAlerts.js +79 -0
- package/dist/lib/Service/IQOptionService/IQOptionWrapper.d.ts +51 -0
- package/dist/lib/Service/IQOptionService/IQOptionWrapper.js +111 -0
- package/dist/lib/Service/IQOptionService/IQOptionWs.d.ts +56 -0
- package/dist/lib/Service/IQOptionService/IQOptionWs.js +125 -0
- package/dist/lib/Service/IQOptionService/Interface/IAuthService.d.ts +12 -0
- package/dist/lib/Service/IQOptionService/Interface/IAuthService.js +11 -0
- package/dist/lib/Service/IQOptionService/Interface/IIQOptionStream.d.ts +9 -0
- package/dist/lib/Service/IQOptionService/Interface/IIQOptionStream.js +11 -0
- package/dist/lib/Service/IQOptionService/Interface/IWebSocketClient.d.ts +26 -0
- package/dist/lib/Service/IQOptionService/Interface/IWebSocketClient.js +3 -0
- package/dist/lib/Service/IQOptionService/Interface/index.d.ts +3 -0
- package/dist/lib/Service/IQOptionService/Interface/index.js +28 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionAction.d.ts +23 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionAction.js +36 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionCandle.d.ts +61 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionCandle.js +11 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionCurrency.d.ts +9 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionCurrency.js +22 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionCurrencyType.d.ts +8 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionCurrencyType.js +21 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionInitializationData.d.ts +117 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionInitializationData.js +14 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionInstrumentType.d.ts +4 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionInstrumentType.js +9 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionInstruments.d.ts +22 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionInstruments.js +3 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionMarket.d.ts +100 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionMarket.js +113 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionMarketInvert.d.ts +6 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionMarketInvert.js +108 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionMode.d.ts +7 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionMode.js +20 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionModel.d.ts +13 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionModel.js +26 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionName.d.ts +8 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionName.js +21 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionOptionClosed.d.ts +43 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionOptionClosed.js +11 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionOptionOpened.d.ts +39 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionOptionOpened.js +11 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionProfile.d.ts +152 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionProfile.js +11 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionResult.d.ts +17 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionResult.js +30 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionTime.d.ts +12 -0
- package/dist/lib/Service/IQOptionService/Model/IQOptionTime.js +25 -0
- package/dist/lib/Service/IQOptionService/Model/index.d.ts +17 -0
- package/dist/lib/Service/IQOptionService/Model/index.js +42 -0
- package/dist/lib/Service/IQOptionService/Repository/IQOptionRepository.d.ts +26 -0
- package/dist/lib/Service/IQOptionService/Repository/IQOptionRepository.js +3 -0
- package/dist/lib/Service/IQOptionService/Repository/WebSocketRepository.d.ts +19 -0
- package/dist/lib/Service/IQOptionService/Repository/WebSocketRepository.js +99 -0
- package/dist/lib/Service/IQOptionService/Repository/index.d.ts +2 -0
- package/dist/lib/Service/IQOptionService/Repository/index.js +27 -0
- package/dist/lib/Service/IQOptionService/Strategy/BinaryOrderStrategy.d.ts +15 -0
- package/dist/lib/Service/IQOptionService/Strategy/BinaryOrderStrategy.js +66 -0
- package/dist/lib/Service/IQOptionService/Strategy/DigitalOrderStrategy.d.ts +15 -0
- package/dist/lib/Service/IQOptionService/Strategy/DigitalOrderStrategy.js +83 -0
- package/dist/lib/Service/IQOptionService/Strategy/IOrderStrategy.d.ts +10 -0
- package/dist/lib/Service/IQOptionService/Strategy/IOrderStrategy.js +3 -0
- package/dist/lib/Service/IQOptionService/Strategy/index.d.ts +3 -0
- package/dist/lib/Service/IQOptionService/Strategy/index.js +28 -0
- package/dist/lib/Service/IQOptionService/index.d.ts +16 -0
- package/dist/lib/Service/IQOptionService/index.js +41 -0
- package/dist/lib/Service/index.d.ts +1 -0
- package/dist/lib/Service/index.js +26 -0
- package/dist/lib/index.d.ts +2 -0
- package/dist/lib/index.js +27 -0
- package/package.json +67 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as Core from "../../../index";
|
|
2
|
+
import { OrderRequest } from "./OrderRequest";
|
|
3
|
+
/**
|
|
4
|
+
* Order builder for fluent order construction.
|
|
5
|
+
*/
|
|
6
|
+
export declare class OrderBuilder {
|
|
7
|
+
private request;
|
|
8
|
+
/**
|
|
9
|
+
* Set market.
|
|
10
|
+
*/
|
|
11
|
+
withMarket(market: Core.IQOptionMarket): this;
|
|
12
|
+
/**
|
|
13
|
+
* Set side (BUY/SELL).
|
|
14
|
+
*/
|
|
15
|
+
withSide(side: Core.IQOptionModel): this;
|
|
16
|
+
/**
|
|
17
|
+
* Set expiration time.
|
|
18
|
+
*/
|
|
19
|
+
withTime(time: number): this;
|
|
20
|
+
/**
|
|
21
|
+
* Set user balance ID.
|
|
22
|
+
*/
|
|
23
|
+
withBalance(userBalanceId: number): this;
|
|
24
|
+
/**
|
|
25
|
+
* Set amount.
|
|
26
|
+
*/
|
|
27
|
+
withAmount(amount: number): this;
|
|
28
|
+
/**
|
|
29
|
+
* Set profit percent (for binary orders).
|
|
30
|
+
*/
|
|
31
|
+
withProfitPercent(profitPercent: number): this;
|
|
32
|
+
/**
|
|
33
|
+
* Set instrument index (for digital orders).
|
|
34
|
+
*/
|
|
35
|
+
withInstrumentIndex(instrumentIndex: number): this;
|
|
36
|
+
/**
|
|
37
|
+
* Set order ID.
|
|
38
|
+
*/
|
|
39
|
+
withOrderId(orderId: number): this;
|
|
40
|
+
/**
|
|
41
|
+
* Build order request.
|
|
42
|
+
*/
|
|
43
|
+
build(): OrderRequest;
|
|
44
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrderBuilder = void 0;
|
|
4
|
+
const OrderRequest_1 = require("./OrderRequest");
|
|
5
|
+
/**
|
|
6
|
+
* Order builder for fluent order construction.
|
|
7
|
+
*/
|
|
8
|
+
class OrderBuilder {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.request = {};
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Set market.
|
|
14
|
+
*/
|
|
15
|
+
withMarket(market) {
|
|
16
|
+
this.request.market = market;
|
|
17
|
+
return this;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Set side (BUY/SELL).
|
|
21
|
+
*/
|
|
22
|
+
withSide(side) {
|
|
23
|
+
this.request.side = side;
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Set expiration time.
|
|
28
|
+
*/
|
|
29
|
+
withTime(time) {
|
|
30
|
+
this.request.time = time;
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Set user balance ID.
|
|
35
|
+
*/
|
|
36
|
+
withBalance(userBalanceId) {
|
|
37
|
+
this.request.userBalanceId = userBalanceId;
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Set amount.
|
|
42
|
+
*/
|
|
43
|
+
withAmount(amount) {
|
|
44
|
+
this.request.amount = amount;
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Set profit percent (for binary orders).
|
|
49
|
+
*/
|
|
50
|
+
withProfitPercent(profitPercent) {
|
|
51
|
+
this.request.profitPercent = profitPercent;
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Set instrument index (for digital orders).
|
|
56
|
+
*/
|
|
57
|
+
withInstrumentIndex(instrumentIndex) {
|
|
58
|
+
this.request.instrumentIndex = instrumentIndex;
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Set order ID.
|
|
63
|
+
*/
|
|
64
|
+
withOrderId(orderId) {
|
|
65
|
+
this.request.orderId = orderId;
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Build order request.
|
|
70
|
+
*/
|
|
71
|
+
build() {
|
|
72
|
+
if (!this.request.market) {
|
|
73
|
+
throw new Error("Market is required");
|
|
74
|
+
}
|
|
75
|
+
if (!this.request.side) {
|
|
76
|
+
throw new Error("Side is required");
|
|
77
|
+
}
|
|
78
|
+
if (!this.request.time) {
|
|
79
|
+
throw new Error("Time is required");
|
|
80
|
+
}
|
|
81
|
+
if (!this.request.userBalanceId) {
|
|
82
|
+
throw new Error("User balance ID is required");
|
|
83
|
+
}
|
|
84
|
+
if (!this.request.amount) {
|
|
85
|
+
throw new Error("Amount is required");
|
|
86
|
+
}
|
|
87
|
+
return new OrderRequest_1.OrderRequest(this.request);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.OrderBuilder = OrderBuilder;
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9TZXJ2aWNlL0lRT3B0aW9uU2VydmljZS9CdWlsZGVyL09yZGVyQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFTQSxpREFBNkQ7QUFFN0Q7O0dBRUc7QUFDSCxNQUFhLFlBQVk7SUFBekI7UUFDWSxZQUFPLEdBQTJCLEVBQUUsQ0FBQztJQXVGakQsQ0FBQztJQXJGRzs7T0FFRztJQUNJLFVBQVUsQ0FBQyxNQUEyQjtRQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUSxDQUFDLElBQXdCO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUMsSUFBWTtRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUFDLGFBQXFCO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsTUFBYztRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksaUJBQWlCLENBQUMsYUFBcUI7UUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNJLG1CQUFtQixDQUFDLGVBQXVCO1FBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUMvQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXLENBQUMsT0FBZTtRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxPQUFPLElBQUksMkJBQVksQ0FBQyxJQUFJLENBQUMsT0FBd0IsQ0FBQyxDQUFDO0lBQzNELENBQUM7Q0FDSjtBQXhGRCxvQ0F3RkMifQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as Core from "../../../index";
|
|
2
|
+
/**
|
|
3
|
+
* Order request interface.
|
|
4
|
+
*/
|
|
5
|
+
export interface IOrderRequest {
|
|
6
|
+
market: Core.IQOptionMarket;
|
|
7
|
+
side: Core.IQOptionModel;
|
|
8
|
+
time: number;
|
|
9
|
+
userBalanceId: number;
|
|
10
|
+
amount: number;
|
|
11
|
+
profitPercent?: number;
|
|
12
|
+
instrumentIndex?: number;
|
|
13
|
+
orderId?: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Order request implementation.
|
|
17
|
+
*/
|
|
18
|
+
export declare class OrderRequest implements IOrderRequest {
|
|
19
|
+
market: Core.IQOptionMarket;
|
|
20
|
+
side: Core.IQOptionModel;
|
|
21
|
+
time: number;
|
|
22
|
+
userBalanceId: number;
|
|
23
|
+
amount: number;
|
|
24
|
+
profitPercent?: number;
|
|
25
|
+
instrumentIndex?: number;
|
|
26
|
+
orderId?: number;
|
|
27
|
+
constructor(data: IOrderRequest);
|
|
28
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrderRequest = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Order request implementation.
|
|
6
|
+
*/
|
|
7
|
+
class OrderRequest {
|
|
8
|
+
constructor(data) {
|
|
9
|
+
this.market = data.market;
|
|
10
|
+
this.side = data.side;
|
|
11
|
+
this.time = data.time;
|
|
12
|
+
this.userBalanceId = data.userBalanceId;
|
|
13
|
+
this.amount = data.amount;
|
|
14
|
+
this.profitPercent = data.profitPercent;
|
|
15
|
+
this.instrumentIndex = data.instrumentIndex;
|
|
16
|
+
this.orderId = data.orderId;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.OrderRequest = OrderRequest;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXJSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9TZXJ2aWNlL0lRT3B0aW9uU2VydmljZS9CdWlsZGVyL09yZGVyUmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF3QkE7O0dBRUc7QUFDSCxNQUFhLFlBQVk7SUFVckIsWUFBWSxJQUFtQjtRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ2hDLENBQUM7Q0FDSjtBQXBCRCxvQ0FvQkMifQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/*
|
|
18
|
+
* Copyright (C) 2020 Wellington Rocha
|
|
19
|
+
* All Rights Reserved.
|
|
20
|
+
*
|
|
21
|
+
* Unauthorized copying of this file, via any medium is strictly prohibited.
|
|
22
|
+
*
|
|
23
|
+
* Proprietary and confidential.
|
|
24
|
+
*/
|
|
25
|
+
__exportStar(require("./OrderBuilder"), exports);
|
|
26
|
+
__exportStar(require("./OrderRequest"), exports);
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL1NlcnZpY2UvSVFPcHRpb25TZXJ2aWNlL0J1aWxkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7O0dBT0c7QUFDSCxpREFBK0I7QUFDL0IsaURBQStCIn0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ICommand } from "./ICommand";
|
|
2
|
+
import { ILogger } from "../../../Helper/Logger";
|
|
3
|
+
/**
|
|
4
|
+
* Command invoker for executing commands.
|
|
5
|
+
*/
|
|
6
|
+
export declare class CommandInvoker {
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(logger?: ILogger);
|
|
9
|
+
/**
|
|
10
|
+
* Execute command.
|
|
11
|
+
*/
|
|
12
|
+
execute<T>(command: ICommand<T>): Promise<T>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommandInvoker = void 0;
|
|
4
|
+
const Logger_1 = require("../../../Helper/Logger");
|
|
5
|
+
/**
|
|
6
|
+
* Command invoker for executing commands.
|
|
7
|
+
*/
|
|
8
|
+
class CommandInvoker {
|
|
9
|
+
constructor(logger) {
|
|
10
|
+
this.logger = logger || Logger_1.LoggerFactory.create({ className: "CommandInvoker" });
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Execute command.
|
|
14
|
+
*/
|
|
15
|
+
async execute(command) {
|
|
16
|
+
const startTime = Date.now();
|
|
17
|
+
this.logger.debug(`Executing command: ${command.getName()}`, { operation: "execute" });
|
|
18
|
+
try {
|
|
19
|
+
const result = await command.execute();
|
|
20
|
+
const duration = Date.now() - startTime;
|
|
21
|
+
this.logger.performance(command.getName(), duration, { operation: "execute" });
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
const duration = Date.now() - startTime;
|
|
26
|
+
this.logger.error(`Command ${command.getName()} failed`, {
|
|
27
|
+
operation: "execute",
|
|
28
|
+
metadata: { duration },
|
|
29
|
+
}, error instanceof Error ? error : new Error(String(error)));
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.CommandInvoker = CommandInvoker;
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZEludm9rZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL1NlcnZpY2UvSVFPcHRpb25TZXJ2aWNlL0NvbW1hbmQvQ29tbWFuZEludm9rZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBVUEsbURBQXVEO0FBRXZEOztHQUVHO0FBQ0gsTUFBYSxjQUFjO0lBR3ZCLFlBQVksTUFBZ0I7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLElBQUksc0JBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUFPLENBQUksT0FBb0I7UUFDeEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNCQUFzQixPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXZGLElBQUksQ0FBQztZQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQy9FLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQztZQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLE9BQU8sQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFO2dCQUNyRCxTQUFTLEVBQUUsU0FBUztnQkFDcEIsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFO2FBQ3pCLEVBQUUsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlELE1BQU0sS0FBSyxDQUFDO1FBQ2hCLENBQUM7SUFDTCxDQUFDO0NBQ0o7QUE1QkQsd0NBNEJDIn0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ICommand } from "./ICommand";
|
|
2
|
+
import { IQOptionRepository } from "../Repository/IQOptionRepository";
|
|
3
|
+
import * as Core from "../../../index";
|
|
4
|
+
/**
|
|
5
|
+
* Get profile command.
|
|
6
|
+
*/
|
|
7
|
+
export declare class GetProfileCommand implements ICommand<Core.IQOptionProfile> {
|
|
8
|
+
private readonly repository;
|
|
9
|
+
private readonly timeoutMs;
|
|
10
|
+
constructor(repository: IQOptionRepository, timeoutMs?: number);
|
|
11
|
+
execute(): Promise<Core.IQOptionProfile>;
|
|
12
|
+
getName(): string;
|
|
13
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetProfileCommand = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Get profile command.
|
|
6
|
+
*/
|
|
7
|
+
class GetProfileCommand {
|
|
8
|
+
constructor(repository, timeoutMs = 5000) {
|
|
9
|
+
this.repository = repository;
|
|
10
|
+
this.timeoutMs = timeoutMs;
|
|
11
|
+
}
|
|
12
|
+
async execute() {
|
|
13
|
+
return this.repository.getProfile(this.timeoutMs);
|
|
14
|
+
}
|
|
15
|
+
getName() {
|
|
16
|
+
return "GetProfileCommand";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.GetProfileCommand = GetProfileCommand;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2V0UHJvZmlsZUNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL1NlcnZpY2UvSVFPcHRpb25TZXJ2aWNlL0NvbW1hbmQvR2V0UHJvZmlsZUNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBWUE7O0dBRUc7QUFDSCxNQUFhLGlCQUFpQjtJQUkxQixZQUFZLFVBQThCLEVBQUUsWUFBb0IsSUFBSTtRQUNoRSxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVNLE9BQU87UUFDVixPQUFPLG1CQUFtQixDQUFDO0lBQy9CLENBQUM7Q0FDSjtBQWhCRCw4Q0FnQkMifQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (C) 2020 Wellington Rocha
|
|
4
|
+
* All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Unauthorized copying of this file, via any medium is strictly prohibited.
|
|
7
|
+
*
|
|
8
|
+
* Proprietary and confidential.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL1NlcnZpY2UvSVFPcHRpb25TZXJ2aWNlL0NvbW1hbmQvSUNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7O0dBT0cifQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ICommand } from "./ICommand";
|
|
2
|
+
import { IOrderStrategy } from "../Strategy/IOrderStrategy";
|
|
3
|
+
import { OrderRequest } from "../Builder/OrderRequest";
|
|
4
|
+
import * as Core from "../../../index";
|
|
5
|
+
/**
|
|
6
|
+
* Send order command.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SendOrderCommand implements ICommand<Core.IQOptionOptionOpened> {
|
|
9
|
+
private readonly strategy;
|
|
10
|
+
private readonly request;
|
|
11
|
+
constructor(strategy: IOrderStrategy, request: OrderRequest);
|
|
12
|
+
execute(): Promise<Core.IQOptionOptionOpened>;
|
|
13
|
+
getName(): string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SendOrderCommand = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Send order command.
|
|
6
|
+
*/
|
|
7
|
+
class SendOrderCommand {
|
|
8
|
+
constructor(strategy, request) {
|
|
9
|
+
this.strategy = strategy;
|
|
10
|
+
this.request = request;
|
|
11
|
+
}
|
|
12
|
+
async execute() {
|
|
13
|
+
return this.strategy.execute(this.request.market, this.request.side, this.request.time, this.request.userBalanceId, this.request.amount, this.request.orderId);
|
|
14
|
+
}
|
|
15
|
+
getName() {
|
|
16
|
+
return "SendOrderCommand";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.SendOrderCommand = SendOrderCommand;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VuZE9yZGVyQ29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvU2VydmljZS9JUU9wdGlvblNlcnZpY2UvQ29tbWFuZC9TZW5kT3JkZXJDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWFBOztHQUVHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFJekIsWUFBWSxRQUF3QixFQUFFLE9BQXFCO1FBQ3ZELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUN2QixDQUFDO0lBQ04sQ0FBQztJQUVNLE9BQU87UUFDVixPQUFPLGtCQUFrQixDQUFDO0lBQzlCLENBQUM7Q0FDSjtBQXZCRCw0Q0F1QkMifQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/*
|
|
18
|
+
* Copyright (C) 2020 Wellington Rocha
|
|
19
|
+
* All Rights Reserved.
|
|
20
|
+
*
|
|
21
|
+
* Unauthorized copying of this file, via any medium is strictly prohibited.
|
|
22
|
+
*
|
|
23
|
+
* Proprietary and confidential.
|
|
24
|
+
*/
|
|
25
|
+
__exportStar(require("./ICommand"), exports);
|
|
26
|
+
__exportStar(require("./SendOrderCommand"), exports);
|
|
27
|
+
__exportStar(require("./GetProfileCommand"), exports);
|
|
28
|
+
__exportStar(require("./CommandInvoker"), exports);
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL1NlcnZpY2UvSVFPcHRpb25TZXJ2aWNlL0NvbW1hbmQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7O0dBT0c7QUFDSCw2Q0FBMkI7QUFDM0IscURBQW1DO0FBQ25DLHNEQUFvQztBQUNwQyxtREFBaUMifQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthenticationError = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* Copyright (C) 2020 Wellington Rocha
|
|
6
|
+
* All Rights Reserved.
|
|
7
|
+
*
|
|
8
|
+
* Unauthorized copying of this file, via any medium is strictly prohibited.
|
|
9
|
+
*
|
|
10
|
+
* Proprietary and confidential.
|
|
11
|
+
*/
|
|
12
|
+
const IQOptionError_1 = require("./IQOptionError");
|
|
13
|
+
/**
|
|
14
|
+
* Authentication error.
|
|
15
|
+
*/
|
|
16
|
+
class AuthenticationError extends IQOptionError_1.IQOptionError {
|
|
17
|
+
constructor(message = "Authentication failed", context, cause) {
|
|
18
|
+
super(message, "AUTH_ERROR", context, false, cause);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.AuthenticationError = AuthenticationError;
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aGVudGljYXRpb25FcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvU2VydmljZS9JUU9wdGlvblNlcnZpY2UvRXJyb3IvQXV0aGVudGljYXRpb25FcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7OztHQU9HO0FBQ0gsbURBQWdEO0FBRWhEOztHQUVHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSw2QkFBYTtJQUNsRCxZQUFZLFVBQWtCLHVCQUF1QixFQUFFLE9BQTZCLEVBQUUsS0FBYTtRQUMvRixLQUFLLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENBQUM7Q0FDSjtBQUpELGtEQUlDIn0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConnectionError = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* Copyright (C) 2020 Wellington Rocha
|
|
6
|
+
* All Rights Reserved.
|
|
7
|
+
*
|
|
8
|
+
* Unauthorized copying of this file, via any medium is strictly prohibited.
|
|
9
|
+
*
|
|
10
|
+
* Proprietary and confidential.
|
|
11
|
+
*/
|
|
12
|
+
const IQOptionError_1 = require("./IQOptionError");
|
|
13
|
+
/**
|
|
14
|
+
* Connection error.
|
|
15
|
+
*/
|
|
16
|
+
class ConnectionError extends IQOptionError_1.IQOptionError {
|
|
17
|
+
constructor(message = "Connection failed", context, cause) {
|
|
18
|
+
super(message, "CONNECTION_ERROR", context, true, cause);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.ConnectionError = ConnectionError;
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29ubmVjdGlvbkVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9TZXJ2aWNlL0lRT3B0aW9uU2VydmljZS9FcnJvci9Db25uZWN0aW9uRXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7R0FPRztBQUNILG1EQUFnRDtBQUVoRDs7R0FFRztBQUNILE1BQWEsZUFBZ0IsU0FBUSw2QkFBYTtJQUM5QyxZQUFZLFVBQWtCLG1CQUFtQixFQUFFLE9BQTZCLEVBQUUsS0FBYTtRQUMzRixLQUFLLENBQUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNKO0FBSkQsMENBSUMifQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ILogger } from "../../../Helper/Logger/ILogger";
|
|
2
|
+
import { IQOptionError } from "./IQOptionError";
|
|
3
|
+
/**
|
|
4
|
+
* Error handler for centralized error processing.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ErrorHandler {
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(logger: ILogger);
|
|
9
|
+
/**
|
|
10
|
+
* Handle error and log appropriately.
|
|
11
|
+
*/
|
|
12
|
+
handle(error: Error, context?: Record<string, any>): IQOptionError;
|
|
13
|
+
/**
|
|
14
|
+
* Wrap async function with error handling.
|
|
15
|
+
*/
|
|
16
|
+
wrap<T>(fn: () => Promise<T>, context?: Record<string, any>): Promise<T>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ErrorHandler = void 0;
|
|
4
|
+
const IQOptionError_1 = require("./IQOptionError");
|
|
5
|
+
const AuthenticationError_1 = require("./AuthenticationError");
|
|
6
|
+
const ConnectionError_1 = require("./ConnectionError");
|
|
7
|
+
const OrderError_1 = require("./OrderError");
|
|
8
|
+
const TimeoutError_1 = require("./TimeoutError");
|
|
9
|
+
/**
|
|
10
|
+
* Error handler for centralized error processing.
|
|
11
|
+
*/
|
|
12
|
+
class ErrorHandler {
|
|
13
|
+
constructor(logger) {
|
|
14
|
+
this.logger = logger;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Handle error and log appropriately.
|
|
18
|
+
*/
|
|
19
|
+
handle(error, context) {
|
|
20
|
+
let iqError;
|
|
21
|
+
if (error instanceof IQOptionError_1.IQOptionError) {
|
|
22
|
+
iqError = error;
|
|
23
|
+
}
|
|
24
|
+
else if (error.message.includes("timeout") || error.message.includes("timed out")) {
|
|
25
|
+
iqError = new TimeoutError_1.TimeoutError(error.message, undefined, context, error);
|
|
26
|
+
}
|
|
27
|
+
else if (error.message.includes("auth") || error.message.includes("login") || error.message.includes("401")) {
|
|
28
|
+
iqError = new AuthenticationError_1.AuthenticationError(error.message, context, error);
|
|
29
|
+
}
|
|
30
|
+
else if (error.message.includes("connection") || error.message.includes("connect") || error.message.includes("ECONNREFUSED")) {
|
|
31
|
+
iqError = new ConnectionError_1.ConnectionError(error.message, context, error);
|
|
32
|
+
}
|
|
33
|
+
else if (error.message.includes("order") || error.message.includes("rejected")) {
|
|
34
|
+
iqError = new OrderError_1.OrderError(error.message, context, false, error);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
iqError = new IQOptionError_1.IQOptionError(error.message, "UNKNOWN_ERROR", context, false, error);
|
|
38
|
+
}
|
|
39
|
+
// Log error
|
|
40
|
+
const errorContext = Object.assign(Object.assign({}, context), { metadata: Object.assign(Object.assign({}, ((context === null || context === void 0 ? void 0 : context.metadata) || {})), { errorDetails: iqError.toJSON() }) });
|
|
41
|
+
this.logger.error(iqError.message, errorContext, iqError);
|
|
42
|
+
return iqError;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Wrap async function with error handling.
|
|
46
|
+
*/
|
|
47
|
+
async wrap(fn, context) {
|
|
48
|
+
try {
|
|
49
|
+
return await fn();
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
const iqError = this.handle(error instanceof Error ? error : new Error(String(error)), context);
|
|
53
|
+
throw iqError;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.ErrorHandler = ErrorHandler;
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9TZXJ2aWNlL0lRT3B0aW9uU2VydmljZS9FcnJvci9FcnJvckhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBU0EsbURBQWdEO0FBQ2hELCtEQUE0RDtBQUM1RCx1REFBb0Q7QUFDcEQsNkNBQTBDO0FBQzFDLGlEQUE4QztBQUU5Qzs7R0FFRztBQUNILE1BQWEsWUFBWTtJQUdyQixZQUFZLE1BQWU7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEtBQVksRUFBRSxPQUE2QjtRQUNyRCxJQUFJLE9BQXNCLENBQUM7UUFFM0IsSUFBSSxLQUFLLFlBQVksNkJBQWEsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDcEIsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUNsRixPQUFPLEdBQUcsSUFBSSwyQkFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6RSxDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVHLE9BQU8sR0FBRyxJQUFJLHlDQUFtQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JFLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDN0gsT0FBTyxHQUFHLElBQUksaUNBQWUsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRSxDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQy9FLE9BQU8sR0FBRyxJQUFJLHVCQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25FLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxHQUFHLElBQUksNkJBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZGLENBQUM7UUFFRCxZQUFZO1FBQ1osTUFBTSxZQUFZLG1DQUNYLE9BQU8sS0FDVixRQUFRLGtDQUNELENBQUMsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxLQUFJLEVBQUUsQ0FBQyxLQUM1QixZQUFZLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUVyQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFMUQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FDYixFQUFvQixFQUNwQixPQUE2QjtRQUU3QixJQUFJLENBQUM7WUFDRCxPQUFPLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDaEcsTUFBTSxPQUFPLENBQUM7UUFDbEIsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQXRERCxvQ0FzREMifQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base error class for IQ Option operations.
|
|
3
|
+
*/
|
|
4
|
+
export declare class IQOptionError extends Error {
|
|
5
|
+
readonly code: string;
|
|
6
|
+
readonly context?: Record<string, any>;
|
|
7
|
+
readonly timestamp: Date;
|
|
8
|
+
readonly retryable: boolean;
|
|
9
|
+
readonly cause?: Error;
|
|
10
|
+
constructor(message: string, code: string, context?: Record<string, any>, retryable?: boolean, cause?: Error);
|
|
11
|
+
/**
|
|
12
|
+
* Convert error to JSON.
|
|
13
|
+
*/
|
|
14
|
+
toJSON(): Record<string, any>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (C) 2020 Wellington Rocha
|
|
4
|
+
* All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Unauthorized copying of this file, via any medium is strictly prohibited.
|
|
7
|
+
*
|
|
8
|
+
* Proprietary and confidential.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.IQOptionError = void 0;
|
|
12
|
+
/**
|
|
13
|
+
* Base error class for IQ Option operations.
|
|
14
|
+
*/
|
|
15
|
+
class IQOptionError extends Error {
|
|
16
|
+
constructor(message, code, context, retryable = false, cause) {
|
|
17
|
+
super(message);
|
|
18
|
+
this.name = this.constructor.name;
|
|
19
|
+
this.code = code;
|
|
20
|
+
this.context = context;
|
|
21
|
+
this.timestamp = new Date();
|
|
22
|
+
this.retryable = retryable;
|
|
23
|
+
this.cause = cause;
|
|
24
|
+
// Maintains proper stack trace for where our error was thrown (only available on V8)
|
|
25
|
+
if (Error.captureStackTrace) {
|
|
26
|
+
Error.captureStackTrace(this, this.constructor);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Convert error to JSON.
|
|
31
|
+
*/
|
|
32
|
+
toJSON() {
|
|
33
|
+
return {
|
|
34
|
+
name: this.name,
|
|
35
|
+
message: this.message,
|
|
36
|
+
code: this.code,
|
|
37
|
+
context: this.context,
|
|
38
|
+
retryable: this.retryable,
|
|
39
|
+
timestamp: this.timestamp.toISOString(),
|
|
40
|
+
stack: this.stack,
|
|
41
|
+
cause: this.cause ? (this.cause instanceof Error ? this.cause.message : String(this.cause)) : undefined,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.IQOptionError = IQOptionError;
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVFPcHRpb25FcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvU2VydmljZS9JUU9wdGlvblNlcnZpY2UvRXJyb3IvSVFPcHRpb25FcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7R0FPRzs7O0FBRUg7O0dBRUc7QUFDSCxNQUFhLGFBQWMsU0FBUSxLQUFLO0lBT3BDLFlBQ0ksT0FBZSxFQUNmLElBQVksRUFDWixPQUE2QixFQUM3QixZQUFxQixLQUFLLEVBQzFCLEtBQWE7UUFFYixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixxRkFBcUY7UUFDckYsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMxQixLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTTtRQUNULE9BQU87WUFDSCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUU7WUFDdkMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQzFHLENBQUM7SUFDTixDQUFDO0NBQ0o7QUEzQ0Qsc0NBMkNDIn0=
|