@stoqey/ib 1.3.29 → 1.4.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/README.md +1 -1
- package/dist/api/api.d.ts +2 -2
- package/dist/api/api.js +22 -3
- package/dist/api/api.js.map +1 -1
- package/dist/api/contract/priceIncrement.d.ts +7 -0
- package/dist/api/contract/priceIncrement.js +3 -0
- package/dist/api/contract/priceIncrement.js.map +1 -0
- package/dist/api/order/orderCancel.d.ts +1 -1
- package/dist/api-next/api-next.d.ts +24 -4
- package/dist/api-next/api-next.js +69 -48
- package/dist/api-next/api-next.js.map +1 -1
- package/dist/common/configuration.js +17 -7
- package/dist/common/configuration.js.map +1 -1
- package/dist/common/errorCode.d.ts +9 -3
- package/dist/common/errorCode.js +26 -5
- package/dist/common/errorCode.js.map +1 -1
- package/dist/common/logger.js +17 -7
- package/dist/common/logger.js.map +1 -1
- package/dist/core/api-next/auto-connection.js +17 -7
- package/dist/core/api-next/auto-connection.js.map +1 -1
- package/dist/core/api-next/console-logger.js +17 -7
- package/dist/core/api-next/console-logger.js.map +1 -1
- package/dist/core/api-next/subscription-registry.d.ts +3 -4
- package/dist/core/api-next/subscription-registry.js +7 -8
- package/dist/core/api-next/subscription-registry.js.map +1 -1
- package/dist/core/api-next/subscription.js +5 -5
- package/dist/core/api-next/subscription.js.map +1 -1
- package/dist/core/io/controller.d.ts +1 -1
- package/dist/core/io/controller.js +3 -4
- package/dist/core/io/controller.js.map +1 -1
- package/dist/core/io/decoder.d.ts +1 -1
- package/dist/core/io/decoder.js +7 -7
- package/dist/core/io/decoder.js.map +1 -1
- package/dist/core/io/encoder.d.ts +16 -16
- package/dist/core/io/encoder.js +78 -82
- package/dist/core/io/encoder.js.map +1 -1
- package/dist/core/io/socket.js +15 -27
- package/dist/core/io/socket.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/tests/unit/api/historical-data.test.js +34 -42
- package/dist/tests/unit/api/historical-data.test.js.map +1 -1
- package/dist/tests/unit/api/market-data.test.js +1 -1
- package/dist/tests/unit/api/market-data.test.js.map +1 -1
- package/dist/tests/unit/api/market-scanner.test.js +19 -27
- package/dist/tests/unit/api/market-scanner.test.js.map +1 -1
- package/dist/tests/unit/api/order/cancelOrder.test.js +162 -28
- package/dist/tests/unit/api/order/cancelOrder.test.js.map +1 -1
- package/dist/tests/unit/api/order/placeConditionalOrder.test.js +117 -179
- package/dist/tests/unit/api/order/placeConditionalOrder.test.js.map +1 -1
- package/dist/tests/unit/api/order/placeOrder.test.js +68 -92
- package/dist/tests/unit/api/order/placeOrder.test.js.map +1 -1
- package/dist/tests/unit/api-next/get-account-summary.test.js +1 -1
- package/dist/tests/unit/api-next/get-account-updates.test.d.ts +4 -0
- package/dist/tests/unit/api-next/get-account-updates.test.js +86 -0
- package/dist/tests/unit/api-next/get-account-updates.test.js.map +1 -0
- package/dist/tests/unit/api-next/get-historical-data.test.js +1 -1
- package/dist/tests/unit/api-next/get-historical-data.test.js.map +1 -1
- package/dist/tests/unit/api-next/next-valid-order-id.test.js +1 -1
- package/dist/tests/unit/api-next/next-valid-order-id.test.js.map +1 -1
- package/dist/tests/unit/api-next-live/get-contract-details.test.js +31 -36
- package/dist/tests/unit/api-next-live/get-contract-details.test.js.map +1 -1
- package/dist/tests/unit/api-next-live/get-current-time.test.d.ts +4 -0
- package/dist/tests/unit/api-next-live/get-current-time.test.js +64 -0
- package/dist/tests/unit/api-next-live/get-current-time.test.js.map +1 -0
- package/dist/tests/unit/api-next-live/get-historical-ticks.test.js +7 -3
- package/dist/tests/unit/api-next-live/get-historical-ticks.test.js.map +1 -1
- package/dist/tests/unit/api-next-live/get-managed-accounts.test.d.ts +4 -0
- package/dist/tests/unit/api-next-live/get-managed-accounts.test.js +48 -0
- package/dist/tests/unit/api-next-live/get-managed-accounts.test.js.map +1 -0
- package/dist/tests/unit/api-next-live/get-market-rule.test.d.ts +4 -0
- package/dist/tests/unit/api-next-live/get-market-rule.test.js +64 -0
- package/dist/tests/unit/api-next-live/get-market-rule.test.js.map +1 -0
- package/dist/tests/unit/api-next-live/get-user-info.test.d.ts +4 -0
- package/dist/tests/unit/api-next-live/get-user-info.test.js +50 -0
- package/dist/tests/unit/api-next-live/get-user-info.test.js.map +1 -0
- package/dist/tests/unit/api-next-live/subscription-registry.test.js +12 -8
- package/dist/tests/unit/api-next-live/subscription-registry.test.js.map +1 -1
- package/dist/tests/unit/sample-data/contracts.js +2 -2
- package/dist/tests/unit/sample-data/orders.d.ts +2 -0
- package/dist/tests/unit/sample-data/orders.js +16 -0
- package/dist/tests/unit/sample-data/orders.js.map +1 -0
- package/package.json +4 -4
- package/dist/tests/unit/api/order/issue203.test.d.ts +0 -1
- package/dist/tests/unit/api/order/issue203.test.js +0 -137
- package/dist/tests/unit/api/order/issue203.test.js.map +0 -1
|
@@ -48,7 +48,7 @@ class IBApiNextSubscriptionRegistry {
|
|
|
48
48
|
this.api = api;
|
|
49
49
|
this.apiNext = apiNext;
|
|
50
50
|
/** A Map containing the subscription registry, with event name as key. */
|
|
51
|
-
this.
|
|
51
|
+
this.entries = new map_1.IBApiNextMap();
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
54
|
* Register a subscription.
|
|
@@ -60,8 +60,7 @@ class IBApiNextSubscriptionRegistry {
|
|
|
60
60
|
* the subscription instance. This can be used to avoid creation of multiple subscriptions,
|
|
61
61
|
* that will end up on same TWS request (i.e. request same market data multiple times), but an
|
|
62
62
|
* existing subscription instance will be re-used if same instanceId does already exist.
|
|
63
|
-
* As a general rule: don't use instanceId when there is
|
|
64
|
-
* a Promise (single emitted value). Use it everywhere else.
|
|
63
|
+
* As a general rule: don't use instanceId when there is a reqId. Use it everywhere else.
|
|
65
64
|
*/
|
|
66
65
|
register(requestFunction, cancelFunction, eventHandler, instanceId) {
|
|
67
66
|
// get the existing registry entries, or add if not existing yet
|
|
@@ -69,7 +68,7 @@ class IBApiNextSubscriptionRegistry {
|
|
|
69
68
|
eventHandler.forEach((handler) => {
|
|
70
69
|
const eventName = handler[0];
|
|
71
70
|
const callback = handler[1];
|
|
72
|
-
const entry = this.
|
|
71
|
+
const entry = this.entries.getOrAdd(eventName, () => {
|
|
73
72
|
const entry = new RegistryEntry(eventName, callback);
|
|
74
73
|
this.apiNext.logger.debug(LOG_TAG, `Add RegistryEntry for EventName.${eventName}`);
|
|
75
74
|
this.api.addListener(eventName, entry.listener);
|
|
@@ -107,7 +106,7 @@ class IBApiNextSubscriptionRegistry {
|
|
|
107
106
|
if (!entry.subscriptions.size) {
|
|
108
107
|
this.api.removeListener(entry.eventName, entry.listener);
|
|
109
108
|
this.apiNext.logger.debug(LOG_TAG, `Remove RegistryEntry for EventName.${entry.eventName}.`);
|
|
110
|
-
this.
|
|
109
|
+
this.entries.delete(entry.eventName);
|
|
111
110
|
}
|
|
112
111
|
});
|
|
113
112
|
this.apiNext.logger.debug(LOG_TAG, `Deleted IBApiNextSubscription for ${subscription.reqId}.`);
|
|
@@ -123,9 +122,9 @@ class IBApiNextSubscriptionRegistry {
|
|
|
123
122
|
/**
|
|
124
123
|
* Dispatch an error into the subscription that owns the given request id.
|
|
125
124
|
*/
|
|
126
|
-
dispatchError(
|
|
127
|
-
this.
|
|
128
|
-
entry.subscriptions.get(reqId)?.error(error);
|
|
125
|
+
dispatchError(error) {
|
|
126
|
+
this.entries.forEach((entry) => {
|
|
127
|
+
entry.subscriptions.get(error.reqId)?.error(error);
|
|
129
128
|
});
|
|
130
129
|
}
|
|
131
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription-registry.js","sourceRoot":"","sources":["../../../src/core/api-next/subscription-registry.ts"],"names":[],"mappings":";;;AAIA,+BAAqC;AACrC,iDAAuD;AAQvD,kBAAkB;AAClB,MAAM,OAAO,GAAG,+BAA+B,CAAC;AAEhD;;;;GAIG;AACH,MAAM,aAAa;IACjB;;;;;OAKG;IACH,YACkB,SAAoB,EACpB,QAGP;QAJO,cAAS,GAAT,SAAS,CAAW;QACpB,aAAQ,GAAR,QAAQ,CAGf;QAUX,0DAA0D;QAC1C,kBAAa,GAC3B,IAAI,GAAG,EAAE,CAAC;QAVV,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,SAAS,EAAE,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC;CAQF;AAED;;;;;;;;GAQG;AACH,MAAa,6BAA6B;IACxC;;;;;;OAMG;IACH,YACmB,GAAwB,EACxB,OAAkB;QADlB,QAAG,GAAH,GAAG,CAAqB;QACxB,YAAO,GAAP,OAAO,CAAW;QAGrC,0EAA0E;QACzD,YAAO,GAAG,IAAI,kBAAY,EAA4B,CAAC;IAHrE,CAAC;IAKJ
|
|
1
|
+
{"version":3,"file":"subscription-registry.js","sourceRoot":"","sources":["../../../src/core/api-next/subscription-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,7 +68,7 @@ class IBApiNextSubscription {
|
|
|
68
68
|
*/
|
|
69
69
|
error(error) {
|
|
70
70
|
delete this._lastAllValue;
|
|
71
|
-
this.endEventReceived = false;
|
|
71
|
+
// this.endEventReceived = false;
|
|
72
72
|
this.hasError = true;
|
|
73
73
|
this.subject.error(error);
|
|
74
74
|
this.cancelTwsSubscription();
|
|
@@ -97,15 +97,15 @@ class IBApiNextSubscription {
|
|
|
97
97
|
}))
|
|
98
98
|
.subscribe(subscriber);
|
|
99
99
|
// request from TWS if first subscriber
|
|
100
|
-
if (this.observersCount === 0) {
|
|
100
|
+
if (this.observersCount++ === 0) {
|
|
101
101
|
this.requestTwsSubscription();
|
|
102
102
|
}
|
|
103
|
-
this.observersCount++;
|
|
103
|
+
// this.observersCount++; moved into "if" condition above
|
|
104
104
|
// handle unsubscribe
|
|
105
105
|
return () => {
|
|
106
106
|
subscription$.unsubscribe();
|
|
107
|
-
this.observersCount--;
|
|
108
|
-
if (this.observersCount <= 0) {
|
|
107
|
+
// this.observersCount--; moved into "if" condition below
|
|
108
|
+
if (--this.observersCount <= 0) {
|
|
109
109
|
this.cancelTwsSubscription();
|
|
110
110
|
this.cleanupFunction();
|
|
111
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../src/core/api-next/subscription.ts"],"names":[],"mappings":";;;AAAA,+BAA+D;AAC/D,8CAAqC;AAErC,6EAAyE;AAGzE;;;;;;;;;GASG;AACH,MAAa,qBAAqB;IAChC;;;;;;;OAOG;IACH,YACU,GAAc,EACd,eAA2B,EAC3B,cAA0B,EAC1B,eAA2B,EACnB,UAAmB;QAJ3B,QAAG,GAAH,GAAG,CAAW;QACd,oBAAe,GAAf,eAAe,CAAY;QAC3B,mBAAc,GAAd,cAAc,CAAY;QAC1B,oBAAe,GAAf,eAAe,CAAY;QACnB,eAAU,GAAV,UAAU,CAAS;QAQrC,kCAAkC;QAC1B,mBAAc,GAAG,CAAC,CAAC;QAE3B,6DAA6D;QACrD,YAAO,GAAG,IAAI,oBAAa,CAA6B,CAAC,CAAC,CAAC;QAEnE,2DAA2D;QACnD,aAAQ,GAAG,KAAK,CAAC;QAQzB,sGAAsG;QAC/F,qBAAgB,GAAG,KAAK,CAAC;QAtB9B,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC;IAC7B,CAAC;IAuBD,uDAAuD;IACvD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,sGAAsG;IACtG,IAAI,YAAY,CAAC,KAAQ;QACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,KAAiC;QACpC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,yDAAyD;IACzD,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAqB;QACzB,OAAO,IAAI,CAAC,aAAa,CAAC;QAC1B,
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../src/core/api-next/subscription.ts"],"names":[],"mappings":"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"}
|
|
@@ -125,7 +125,7 @@ export declare class Controller implements EncoderCallbacks, DecoderCallbacks {
|
|
|
125
125
|
* @param reqId RequestId associated to this error.
|
|
126
126
|
* @param advancedOrderReject Additional error data (optional).
|
|
127
127
|
*/
|
|
128
|
-
emitError(errMsg: string, code: number, reqId
|
|
128
|
+
emitError(errMsg: string, code: number, reqId?: number, advancedOrderReject?: unknown): void;
|
|
129
129
|
/**
|
|
130
130
|
* Execute a command.
|
|
131
131
|
*
|
|
@@ -189,8 +189,7 @@ class Controller {
|
|
|
189
189
|
* @param advancedOrderReject Additional error data (optional).
|
|
190
190
|
*/
|
|
191
191
|
emitError(errMsg, code, reqId, advancedOrderReject) {
|
|
192
|
-
|
|
193
|
-
this.emitEvent(event_name_1.EventName.error, new Error(errMsg), code, reqId, advancedOrderReject);
|
|
192
|
+
this.emitEvent(event_name_1.EventName.error, new Error(errMsg), code, reqId ?? errorCode_1.ErrorCode.NO_VALID_ID, advancedOrderReject);
|
|
194
193
|
}
|
|
195
194
|
/**
|
|
196
195
|
* Execute a command.
|
|
@@ -211,7 +210,7 @@ class Controller {
|
|
|
211
210
|
this.socket.connect(clientId);
|
|
212
211
|
}
|
|
213
212
|
else {
|
|
214
|
-
this.
|
|
213
|
+
this.emitInfo("Cannot connect if already connected.", errorCode_1.ErrorCode.ALREADY_CONNECTED);
|
|
215
214
|
}
|
|
216
215
|
}
|
|
217
216
|
/**
|
|
@@ -239,7 +238,7 @@ class Controller {
|
|
|
239
238
|
this.socket.send(tokens);
|
|
240
239
|
}
|
|
241
240
|
else {
|
|
242
|
-
this.emitError("Cannot send data when disconnected.", errorCode_1.ErrorCode.NOT_CONNECTED,
|
|
241
|
+
this.emitError("Cannot send data when disconnected.", errorCode_1.ErrorCode.NOT_CONNECTED, errorCode_1.ErrorCode.NO_VALID_ID);
|
|
243
242
|
}
|
|
244
243
|
}
|
|
245
244
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/core/io/controller.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/core/io/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ export interface DecoderCallbacks {
|
|
|
34
34
|
* @param reqId The request identifier which generated the error.
|
|
35
35
|
* @param advancedOrderReject An object providing more information in case of an order rejection
|
|
36
36
|
*/
|
|
37
|
-
emitError(errMsg: string, code: number, reqId
|
|
37
|
+
emitError(errMsg: string, code: number, reqId?: number, advancedOrderReject?: unknown): void;
|
|
38
38
|
/**
|
|
39
39
|
* Emit an information message event to public API interface.
|
|
40
40
|
*
|
package/dist/core/io/decoder.js
CHANGED
|
@@ -267,7 +267,7 @@ class Decoder {
|
|
|
267
267
|
case in_msg_id_1.IN_MSG_ID.USER_INFO:
|
|
268
268
|
return this.decodeMsg_USER_INFO();
|
|
269
269
|
default:
|
|
270
|
-
this.callback.emitError(`No parser implementation found for token: ${in_msg_id_1.IN_MSG_ID[msgId]} (${msgId}).`, errorCode_1.ErrorCode.UNKNOWN_ID
|
|
270
|
+
this.callback.emitError(`No parser implementation found for token: ${in_msg_id_1.IN_MSG_ID[msgId]} (${msgId}).`, errorCode_1.ErrorCode.UNKNOWN_ID);
|
|
271
271
|
}
|
|
272
272
|
}
|
|
273
273
|
/**
|
|
@@ -295,7 +295,7 @@ class Decoder {
|
|
|
295
295
|
// check if all of the message data was processed and drain any remaining tokens
|
|
296
296
|
if (verifyMessageBoundary) {
|
|
297
297
|
if (this.dataQueue[0] !== undefined) {
|
|
298
|
-
this.callback.emitError(`Decoding error on ${in_msg_id_1.IN_MSG_ID[msgId]}: unprocessed data left on queue (${JSON.stringify(this.dataQueue)}). Please report to https://github.com/stoqey/ib`, errorCode_1.ErrorCode.UNKNOWN_ID
|
|
298
|
+
this.callback.emitError(`Decoding error on ${in_msg_id_1.IN_MSG_ID[msgId]}: unprocessed data left on queue (${JSON.stringify(this.dataQueue)}). Please report to https://github.com/stoqey/ib`, errorCode_1.ErrorCode.UNKNOWN_ID);
|
|
299
299
|
}
|
|
300
300
|
this.drainQueue();
|
|
301
301
|
}
|
|
@@ -305,7 +305,7 @@ class Decoder {
|
|
|
305
305
|
throw e;
|
|
306
306
|
}
|
|
307
307
|
if (verifyMessageBoundary) {
|
|
308
|
-
this.callback.emitError(`Underrun error on ${in_msg_id_1.IN_MSG_ID[msgId]}: ${e.message} Please report to https://github.com/stoqey/ib`, errorCode_1.ErrorCode.UNKNOWN_ID
|
|
308
|
+
this.callback.emitError(`Underrun error on ${in_msg_id_1.IN_MSG_ID[msgId]}: ${e.message} Please report to https://github.com/stoqey/ib`, errorCode_1.ErrorCode.UNKNOWN_ID);
|
|
309
309
|
}
|
|
310
310
|
this.drainQueue();
|
|
311
311
|
}
|
|
@@ -354,7 +354,7 @@ class Decoder {
|
|
|
354
354
|
* Read a token from queue and return it as boolean value.
|
|
355
355
|
*/
|
|
356
356
|
readBool() {
|
|
357
|
-
return parseInt(this.readStr()
|
|
357
|
+
return !!parseInt(this.readStr());
|
|
358
358
|
}
|
|
359
359
|
/**
|
|
360
360
|
* Read a token from queue and return it as floating point value.
|
|
@@ -542,7 +542,7 @@ class Decoder {
|
|
|
542
542
|
const version = this.readInt();
|
|
543
543
|
if (version < 2) {
|
|
544
544
|
const errorMsg = this.readStr();
|
|
545
|
-
this.callback.emitError(errorMsg,
|
|
545
|
+
this.callback.emitError(errorMsg, errorCode_1.ErrorCode.UNKNOWN_ID);
|
|
546
546
|
}
|
|
547
547
|
else {
|
|
548
548
|
const id = this.readInt();
|
|
@@ -558,7 +558,7 @@ class Decoder {
|
|
|
558
558
|
advancedOrderReject = JSON.parse(this.decodeUnicodeEscapedString(advancedOrderRejectJson));
|
|
559
559
|
}
|
|
560
560
|
}
|
|
561
|
-
if (id ===
|
|
561
|
+
if (id === errorCode_1.ErrorCode.NO_VALID_ID) {
|
|
562
562
|
this.callback.emitInfo(msg, code);
|
|
563
563
|
}
|
|
564
564
|
else {
|
|
@@ -1171,7 +1171,7 @@ class Decoder {
|
|
|
1171
1171
|
* Decode a SCANNER_PARAMETERS message from data queue and emit a scannerParameters event.
|
|
1172
1172
|
*/
|
|
1173
1173
|
decodeMsg_SCANNER_PARAMETERS() {
|
|
1174
|
-
this.readInt();
|
|
1174
|
+
const _version = this.readInt();
|
|
1175
1175
|
const xml = this.readStr();
|
|
1176
1176
|
this.emit(event_name_1.EventName.scannerParameters, xml);
|
|
1177
1177
|
}
|