@stoqey/ib 1.2.12 → 1.2.16

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.
@@ -0,0 +1,33 @@
1
+ import { ItemListUpdate } from "..";
2
+ /** A row on the order book. */
3
+ export interface OrderBookRow {
4
+ /** The order's price. */
5
+ price: number;
6
+ /** The order's size. */
7
+ size: number;
8
+ /**
9
+ * The market maker if there are multiple market makers (e.g on ISLAND / NASDAQ ECN),
10
+ * or undefined if its the exchange (no market makers, such as on ARCA).
11
+ */
12
+ marketMaker?: string;
13
+ /**
14
+ * A flag indicating if this is smart depth response
15
+ * (aggregate data from multiple exchanges, v974+).
16
+ */
17
+ isSmartDepth: boolean;
18
+ }
19
+ /** A row position index on the order book. */
20
+ export declare type OrderBookRowPosition = number;
21
+ /** Rows on the order-book (either ask or bid side) */
22
+ export declare type OrderBookRows = ReadonlyMap<OrderBookRowPosition, OrderBookRow>;
23
+ /**
24
+ * The order book.
25
+ */
26
+ export interface OrderBook {
27
+ /** Rows on the bid-side. */
28
+ bids: OrderBookRows;
29
+ /** Rows on the ask-side. */
30
+ asks: OrderBookRows;
31
+ }
32
+ /** An update on the order book. */
33
+ export declare type OrderBookUpdate = ItemListUpdate<OrderBook>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=order-book.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-book.js","sourceRoot":"","sources":["../../../src/api-next/market-depth/order-book.ts"],"names":[],"mappings":""}
@@ -12,15 +12,10 @@ describe("RxJS Wrapper: getContractDetails()", () => {
12
12
  const testValue = "We want this error";
13
13
  apiNext
14
14
  .getContractDetails({})
15
- // eslint-disable-next-line rxjs/no-ignored-subscription
16
- .subscribe({
17
- next: () => {
18
- fail();
19
- },
20
- error: (error) => {
21
- expect(error.error.message).toEqual(testValue);
22
- done();
23
- },
15
+ .then(fail)
16
+ .catch((error) => {
17
+ expect(error.error.message).toEqual(testValue);
18
+ done();
24
19
  });
25
20
  api.emit(__1.EventName.error, new Error(testValue), -1, 1);
26
21
  });
@@ -32,27 +27,20 @@ describe("RxJS Wrapper: getContractDetails()", () => {
32
27
  const testValue2 = "testValue2";
33
28
  apiNext
34
29
  .getContractDetails({})
35
- // eslint-disable-next-line rxjs/no-ignored-subscription
36
- .subscribe({
37
- next: (update) => {
38
- expect(update.changed).toBeUndefined();
39
- expect(update.removed).toBeUndefined();
40
- expect(update.added.length).toEqual(1);
41
- switch (update.all.length) {
42
- case 2:
43
- expect(update.all[1].marketName).toEqual(testValue2);
44
- // no break by intention
45
- case 1:
46
- expect(update.all[0].marketName).toEqual(testValue1);
47
- break;
48
- }
49
- },
50
- complete: () => {
51
- done();
52
- },
53
- error: () => {
54
- fail();
55
- },
30
+ .then((update) => {
31
+ expect(update.length).toEqual(2);
32
+ switch (update.length) {
33
+ case 2:
34
+ expect(update[1].marketName).toEqual(testValue2);
35
+ // no break by intention
36
+ case 1:
37
+ expect(update[0].marketName).toEqual(testValue1);
38
+ break;
39
+ }
40
+ done();
41
+ })
42
+ .catch((e) => {
43
+ fail(e);
56
44
  });
57
45
  api.emit(__1.EventName.contractDetails, 1, {
58
46
  marketName: testValue1,
@@ -1 +1 @@
1
- {"version":3,"file":"get-contract-details.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next/get-contract-details.test.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,gCAMkB;AAElB,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,IAAI,aAAS,EAAE,CAAC;QAChC,MAAM,GAAG,GAAK,OAA+C,CAAC,GAAY,CAAC;QAE3E,4CAA4C;QAE5C,MAAM,SAAS,GAAG,oBAAoB,CAAC;QAEvC,OAAO;aACJ,kBAAkB,CAAC,EAAE,CAAC;YACvB,wDAAwD;aACvD,SAAS,CAAC;YACT,IAAI,EAAE,GAAG,EAAE;gBACT,IAAI,EAAE,CAAC;YACT,CAAC;YACD,KAAK,EAAE,CAAC,KAAqB,EAAE,EAAE;gBAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC/C,IAAI,EAAE,CAAC;YACT,CAAC;SACF,CAAC,CAAC;QAEL,GAAG,CAAC,IAAI,CAAC,aAAS,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wBAAwB,EAAE,CAAC,IAAI,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,IAAI,aAAS,EAAE,CAAC;QAChC,MAAM,GAAG,GAAK,OAA+C,CAAC,GAAY,CAAC;QAE3E,0FAA0F;QAE1F,MAAM,UAAU,GAAG,YAAY,CAAC;QAChC,MAAM,UAAU,GAAG,YAAY,CAAC;QAEhC,OAAO;aACJ,kBAAkB,CAAC,EAAE,CAAC;YACvB,wDAAwD;aACvD,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;gBACf,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;gBACvC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;gBACvC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE;oBACzB,KAAK,CAAC;wBACJ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBACvD,wBAAwB;oBACxB,KAAK,CAAC;wBACJ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;wBACrD,MAAM;iBACT;YACH,CAAC;YACD,QAAQ,EAAE,GAAG,EAAE;gBACb,IAAI,EAAE,CAAC;YACT,CAAC;YACD,KAAK,EAAE,GAAG,EAAE;gBACV,IAAI,EAAE,CAAC;YACT,CAAC;SACF,CAAC,CAAC;QAEL,GAAG,CAAC,IAAI,CAAC,aAAS,CAAC,eAAe,EAAE,CAAC,EAAE;YACrC,UAAU,EAAE,UAAU;SACJ,CAAC,CAAC;QAEtB,GAAG,CAAC,IAAI,CAAC,aAAS,CAAC,eAAe,EAAE,CAAC,EAAE;YACrC,UAAU,EAAE,UAAU;SACJ,CAAC,CAAC;QAEtB,GAAG,CAAC,IAAI,CAAC,aAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"get-contract-details.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next/get-contract-details.test.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,gCAMkB;AAElB,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,IAAI,aAAS,EAAE,CAAC;QAChC,MAAM,GAAG,GAAI,OAA8C,CAAC,GAAY,CAAC;QAEzE,4CAA4C;QAE5C,MAAM,SAAS,GAAG,oBAAoB,CAAC;QAEvC,OAAO;aACJ,kBAAkB,CAAC,EAAE,CAAC;aACtB,IAAI,CAAC,IAAI,CAAC;aACV,KAAK,CAAC,CAAC,KAAqB,EAAE,EAAE;YAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QAEL,GAAG,CAAC,IAAI,CAAC,aAAS,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wBAAwB,EAAE,CAAC,IAAI,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,IAAI,aAAS,EAAE,CAAC;QAChC,MAAM,GAAG,GAAI,OAA8C,CAAC,GAAY,CAAC;QAEzE,0FAA0F;QAE1F,MAAM,UAAU,GAAG,YAAY,CAAC;QAChC,MAAM,UAAU,GAAG,YAAY,CAAC;QAEhC,OAAO;aACJ,kBAAkB,CAAC,EAAE,CAAC;aACtB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,QAAQ,MAAM,CAAC,MAAM,EAAE;gBACrB,KAAK,CAAC;oBACJ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACnD,wBAAwB;gBACxB,KAAK,CAAC;oBACJ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBACjD,MAAM;aACT;YACD,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEL,GAAG,CAAC,IAAI,CAAC,aAAS,CAAC,eAAe,EAAE,CAAC,EAAE;YACrC,UAAU,EAAE,UAAU;SACJ,CAAC,CAAC;QAEtB,GAAG,CAAC,IAAI,CAAC,aAAS,CAAC,eAAe,EAAE,CAAC,EAAE;YACrC,UAAU,EAAE,UAAU;SACJ,CAAC,CAAC;QAEtB,GAAG,CAAC,IAAI,CAAC,aAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * This file implements tests for the [[IBApiNext.getMarketDepthExchanges]] function.
5
+ */
6
+ const __1 = require("../../..");
7
+ describe("RxJS Wrapper: getMarketDepthL2()", () => {
8
+ test("Insert rows", (done) => {
9
+ // create IBApiNext
10
+ const apiNext = new __1.IBApiNext();
11
+ const api = apiNext.api;
12
+ let eventCount = 0;
13
+ apiNext
14
+ .getMarketDepth({}, 100, false)
15
+ // eslint-disable-next-line rxjs/no-ignored-subscription
16
+ .subscribe({
17
+ next: (update) => {
18
+ switch (eventCount) {
19
+ case 0:
20
+ expect(update.all.asks.size).toEqual(1);
21
+ expect(update.all.asks.get(0).price).toEqual(1);
22
+ expect(update.all.asks.get(0).size).toEqual(2);
23
+ break;
24
+ case 1:
25
+ expect(update.all.asks.size).toEqual(1);
26
+ expect(update.all.asks.get(0).price).toEqual(1);
27
+ expect(update.all.asks.get(0).size).toEqual(2);
28
+ expect(update.all.bids.size).toEqual(1);
29
+ expect(update.all.bids.get(0).price).toEqual(11);
30
+ expect(update.all.bids.get(0).size).toEqual(12);
31
+ break;
32
+ case 2:
33
+ expect(update.all.asks.size).toEqual(2);
34
+ expect(update.all.asks.get(0).price).toEqual(1);
35
+ expect(update.all.asks.get(0).size).toEqual(2);
36
+ expect(update.all.asks.get(1).price).toEqual(21);
37
+ expect(update.all.asks.get(1).size).toEqual(22);
38
+ expect(update.all.bids.size).toEqual(1);
39
+ expect(update.all.bids.get(0).price).toEqual(11);
40
+ expect(update.all.bids.get(0).size).toEqual(12);
41
+ break;
42
+ case 3:
43
+ expect(update.all.asks.size).toEqual(2);
44
+ expect(update.all.asks.get(0).price).toEqual(1);
45
+ expect(update.all.asks.get(0).size).toEqual(2);
46
+ expect(update.all.asks.get(1).price).toEqual(21);
47
+ expect(update.all.asks.get(1).size).toEqual(22);
48
+ expect(update.all.bids.size).toEqual(2);
49
+ expect(update.all.bids.get(0).price).toEqual(11);
50
+ expect(update.all.bids.get(0).size).toEqual(12);
51
+ expect(update.all.bids.get(1).price).toEqual(31);
52
+ expect(update.all.bids.get(1).size).toEqual(32);
53
+ done();
54
+ break;
55
+ default:
56
+ fail();
57
+ }
58
+ },
59
+ error: (error) => {
60
+ fail(error.error.message);
61
+ },
62
+ });
63
+ api.emit(__1.EventName.updateMktDepth, 1 /* ticker id */, 0 /* position */, 0 /* insert */, 0 /* ask */, 1 /* price */, 2 /* size */);
64
+ eventCount++;
65
+ api.emit(__1.EventName.updateMktDepth, 1 /* ticker id */, 0 /* position */, 0 /* insert */, 1 /* bid */, 11 /* price */, 12 /* size */);
66
+ eventCount++;
67
+ api.emit(__1.EventName.updateMktDepth, 1 /* ticker id */, 1 /* position */, 0 /* insert */, 0 /* ask */, 21 /* price */, 22 /* size */);
68
+ eventCount++;
69
+ api.emit(__1.EventName.updateMktDepth, 1 /* ticker id */, 1 /* position */, 0 /* insert */, 1 /* bid */, 31 /* price */, 32 /* size */);
70
+ eventCount++;
71
+ });
72
+ test("Update rows", (done) => {
73
+ // create IBApiNext
74
+ const apiNext = new __1.IBApiNext();
75
+ const api = apiNext.api;
76
+ let eventCount = 0;
77
+ apiNext
78
+ .getMarketDepth({}, 100, false)
79
+ // eslint-disable-next-line rxjs/no-ignored-subscription
80
+ .subscribe({
81
+ next: (update) => {
82
+ switch (eventCount) {
83
+ case 0:
84
+ expect(update.all.asks.size).toEqual(1);
85
+ expect(update.all.asks.get(0).price).toEqual(1);
86
+ expect(update.all.asks.get(0).size).toEqual(2);
87
+ break;
88
+ case 1:
89
+ expect(update.all.asks.size).toEqual(1);
90
+ expect(update.all.asks.get(0).price).toEqual(11);
91
+ expect(update.all.asks.get(0).size).toEqual(12);
92
+ break;
93
+ case 2:
94
+ expect(update.all.asks.size).toEqual(1);
95
+ expect(update.all.asks.get(0).price).toEqual(11);
96
+ expect(update.all.asks.get(0).size).toEqual(12);
97
+ expect(update.all.bids.size).toEqual(1);
98
+ expect(update.all.bids.get(0).price).toEqual(1);
99
+ expect(update.all.bids.get(0).size).toEqual(2);
100
+ break;
101
+ case 3:
102
+ expect(update.all.asks.size).toEqual(1);
103
+ expect(update.all.asks.get(0).price).toEqual(11);
104
+ expect(update.all.asks.get(0).size).toEqual(12);
105
+ expect(update.all.bids.size).toEqual(1);
106
+ expect(update.all.bids.get(0).price).toEqual(11);
107
+ expect(update.all.bids.get(0).size).toEqual(12);
108
+ done();
109
+ break;
110
+ default:
111
+ fail();
112
+ }
113
+ },
114
+ error: (error) => {
115
+ fail(error.error.message);
116
+ },
117
+ });
118
+ // TODO emit insert events
119
+ api.emit(__1.EventName.updateMktDepth, 1 /* ticker id */, 0 /* position */, 0 /* insert */, 0 /* ask */, 1 /* price */, 2 /* size */);
120
+ eventCount++;
121
+ api.emit(__1.EventName.updateMktDepth, 1 /* ticker id */, 0 /* position */, 1 /* update */, 0 /* ask */, 11 /* price */, 12 /* size */);
122
+ eventCount++;
123
+ api.emit(__1.EventName.updateMktDepth, 1 /* ticker id */, 0 /* position */, 0 /* insert */, 1 /* bid */, 1 /* price */, 2 /* size */);
124
+ eventCount++;
125
+ api.emit(__1.EventName.updateMktDepth, 1 /* ticker id */, 0 /* position */, 1 /* update */, 1 /* bid */, 11 /* price */, 12 /* size */);
126
+ eventCount++;
127
+ });
128
+ test("Delete rows", (done) => {
129
+ // create IBApiNext
130
+ const apiNext = new __1.IBApiNext();
131
+ const api = apiNext.api;
132
+ let eventCount = 0;
133
+ apiNext
134
+ .getMarketDepth({}, 100, false)
135
+ // eslint-disable-next-line rxjs/no-ignored-subscription
136
+ .subscribe({
137
+ next: (update) => {
138
+ switch (eventCount) {
139
+ case 0:
140
+ expect(update.all.asks.size).toEqual(1);
141
+ expect(update.all.asks.get(0).price).toEqual(1);
142
+ expect(update.all.asks.get(0).size).toEqual(2);
143
+ break;
144
+ case 1:
145
+ expect(update.all.asks.size).toEqual(0);
146
+ done();
147
+ break;
148
+ default:
149
+ fail();
150
+ }
151
+ },
152
+ error: (error) => {
153
+ fail(error.error.message);
154
+ },
155
+ });
156
+ api.emit(__1.EventName.updateMktDepth, 1 /* ticker id */, 0 /* position */, 0 /* insert */, 0 /* ask */, 1 /* price */, 2 /* size */);
157
+ eventCount++;
158
+ api.emit(__1.EventName.updateMktDepth, 1 /* ticker id */, 0 /* position */, 2 /* delete */, 0 /* ask */, 11 /* price */, 12 /* size */);
159
+ eventCount++;
160
+ });
161
+ });
162
+ //# sourceMappingURL=get-market-depth-l2.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-market-depth-l2.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next/get-market-depth-l2.test.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,gCAAuE;AAEvE,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3B,mBAAmB;QAEnB,MAAM,OAAO,GAAG,IAAI,aAAS,EAAE,CAAC;QAChC,MAAM,GAAG,GAAI,OAA8C,CAAC,GAAY,CAAC;QAEzE,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,OAAO;aACJ,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC;YAC/B,wDAAwD;aACvD,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;gBACf,QAAQ,UAAU,EAAE;oBAClB,KAAK,CAAC;wBACJ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAChD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC/C,MAAM;oBACR,KAAK,CAAC;wBACJ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAChD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC/C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBACjD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAChD,MAAM;oBACR,KAAK,CAAC;wBACJ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAChD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC/C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBACjD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAChD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBACjD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAChD,MAAM;oBACR,KAAK,CAAC;wBACJ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAChD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC/C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBACjD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAChD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBACjD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAChD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBACjD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAChD,IAAI,EAAE,CAAC;wBACP,MAAM;oBACR;wBACE,IAAI,EAAE,CAAC;iBACV;YACH,CAAC;YACD,KAAK,EAAE,CAAC,KAAqB,EAAE,EAAE;gBAC/B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;SACF,CAAC,CAAC;QAEL,GAAG,CAAC,IAAI,CACN,aAAS,CAAC,cAAc,EACxB,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,YAAY,EACd,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,WAAW,EACb,CAAC,CAAC,UAAU,CACb,CAAC;QACF,UAAU,EAAE,CAAC;QAEb,GAAG,CAAC,IAAI,CACN,aAAS,CAAC,cAAc,EACxB,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,YAAY,EACd,CAAC,CAAC,SAAS,EACX,EAAE,CAAC,WAAW,EACd,EAAE,CAAC,UAAU,CACd,CAAC;QACF,UAAU,EAAE,CAAC;QAEb,GAAG,CAAC,IAAI,CACN,aAAS,CAAC,cAAc,EACxB,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,YAAY,EACd,CAAC,CAAC,SAAS,EACX,EAAE,CAAC,WAAW,EACd,EAAE,CAAC,UAAU,CACd,CAAC;QACF,UAAU,EAAE,CAAC;QAEb,GAAG,CAAC,IAAI,CACN,aAAS,CAAC,cAAc,EACxB,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,YAAY,EACd,CAAC,CAAC,SAAS,EACX,EAAE,CAAC,WAAW,EACd,EAAE,CAAC,UAAU,CACd,CAAC;QACF,UAAU,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3B,mBAAmB;QAEnB,MAAM,OAAO,GAAG,IAAI,aAAS,EAAE,CAAC;QAChC,MAAM,GAAG,GAAI,OAA8C,CAAC,GAAY,CAAC;QAEzE,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,OAAO;aACJ,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC;YAC/B,wDAAwD;aACvD,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;gBACf,QAAQ,UAAU,EAAE;oBAClB,KAAK,CAAC;wBACJ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAChD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC/C,MAAM;oBACR,KAAK,CAAC;wBACJ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBACjD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAChD,MAAM;oBACR,KAAK,CAAC;wBACJ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBACjD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAChD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAChD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC/C,MAAM;oBACR,KAAK,CAAC;wBACJ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBACjD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAChD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBACjD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAChD,IAAI,EAAE,CAAC;wBACP,MAAM;oBACR;wBACE,IAAI,EAAE,CAAC;iBACV;YACH,CAAC;YACD,KAAK,EAAE,CAAC,KAAqB,EAAE,EAAE;gBAC/B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;SACF,CAAC,CAAC;QAEL,0BAA0B;QAE1B,GAAG,CAAC,IAAI,CACN,aAAS,CAAC,cAAc,EACxB,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,YAAY,EACd,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,WAAW,EACb,CAAC,CAAC,UAAU,CACb,CAAC;QACF,UAAU,EAAE,CAAC;QAEb,GAAG,CAAC,IAAI,CACN,aAAS,CAAC,cAAc,EACxB,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,YAAY,EACd,CAAC,CAAC,SAAS,EACX,EAAE,CAAC,WAAW,EACd,EAAE,CAAC,UAAU,CACd,CAAC;QACF,UAAU,EAAE,CAAC;QAEb,GAAG,CAAC,IAAI,CACN,aAAS,CAAC,cAAc,EACxB,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,YAAY,EACd,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,WAAW,EACb,CAAC,CAAC,UAAU,CACb,CAAC;QACF,UAAU,EAAE,CAAC;QAEb,GAAG,CAAC,IAAI,CACN,aAAS,CAAC,cAAc,EACxB,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,YAAY,EACd,CAAC,CAAC,SAAS,EACX,EAAE,CAAC,WAAW,EACd,EAAE,CAAC,UAAU,CACd,CAAC;QACF,UAAU,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3B,mBAAmB;QAEnB,MAAM,OAAO,GAAG,IAAI,aAAS,EAAE,CAAC;QAChC,MAAM,GAAG,GAAI,OAA8C,CAAC,GAAY,CAAC;QAEzE,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,OAAO;aACJ,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC;YAC/B,wDAAwD;aACvD,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;gBACf,QAAQ,UAAU,EAAE;oBAClB,KAAK,CAAC;wBACJ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAChD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC/C,MAAM;oBACR,KAAK,CAAC;wBACJ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACxC,IAAI,EAAE,CAAC;wBACP,MAAM;oBACR;wBACE,IAAI,EAAE,CAAC;iBACV;YACH,CAAC;YACD,KAAK,EAAE,CAAC,KAAqB,EAAE,EAAE;gBAC/B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;SACF,CAAC,CAAC;QAEL,GAAG,CAAC,IAAI,CACN,aAAS,CAAC,cAAc,EACxB,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,YAAY,EACd,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,WAAW,EACb,CAAC,CAAC,UAAU,CACb,CAAC;QACF,UAAU,EAAE,CAAC;QAEb,GAAG,CAAC,IAAI,CACN,aAAS,CAAC,cAAc,EACxB,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,YAAY,EACd,CAAC,CAAC,SAAS,EACX,EAAE,CAAC,WAAW,EACd,EAAE,CAAC,UAAU,CACd,CAAC;QACF,UAAU,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * This file implements tests for the [[IBApiNext.getContractDetails]] function.
3
+ */
4
+ export {};
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /**
3
+ * This file implements tests for the [[IBApiNext.getContractDetails]] function.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = require("assert");
7
+ const __1 = require("../../..");
8
+ describe("RxJS Wrapper: searchContracts()", () => {
9
+ test("Error Event", (done) => {
10
+ const apiNext = new __1.IBApiNext();
11
+ const api = apiNext.api;
12
+ // emit a error event and verify RxJS result
13
+ const testValue = "We want this error";
14
+ apiNext
15
+ .searchContracts("AAPL")
16
+ .then(() => {
17
+ (0, assert_1.fail)();
18
+ })
19
+ .catch((e) => {
20
+ expect(e.error.message).toEqual(testValue);
21
+ done();
22
+ });
23
+ api.emit(__1.EventName.error, new Error(testValue), -1, 1);
24
+ });
25
+ test("Result Event", (done) => {
26
+ const apiNext = new __1.IBApiNext();
27
+ const api = apiNext.api;
28
+ // emit a result event and verify RxJS result
29
+ const testValues = [
30
+ {
31
+ contract: {
32
+ conId: Math.random(),
33
+ },
34
+ },
35
+ {
36
+ contract: {
37
+ conId: Math.random(),
38
+ },
39
+ },
40
+ ];
41
+ apiNext
42
+ .searchContracts("AAPL")
43
+ .then((result) => {
44
+ expect(result).toEqual(testValues);
45
+ done();
46
+ })
47
+ .catch((e) => {
48
+ (0, assert_1.fail)(e.error.message);
49
+ });
50
+ api.emit(__1.EventName.symbolSamples, 1, testValues);
51
+ });
52
+ });
53
+ //# sourceMappingURL=search-contracts.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-contracts.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api-next/search-contracts.test.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,mCAA8B;AAC9B,gCAMkB;AAElB,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,IAAI,aAAS,EAAE,CAAC;QAChC,MAAM,GAAG,GAAI,OAA8C,CAAC,GAAY,CAAC;QAEzE,4CAA4C;QAE5C,MAAM,SAAS,GAAG,oBAAoB,CAAC;QAEvC,OAAO;aACJ,eAAe,CAAC,MAAM,CAAC;aACvB,IAAI,CAAC,GAAG,EAAE;YACT,IAAA,aAAI,GAAE,CAAC;QACT,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAiB,EAAE,EAAE;YAC3B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QAEL,GAAG,CAAC,IAAI,CAAC,aAAS,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE;QAC5B,MAAM,OAAO,GAAG,IAAI,aAAS,EAAE,CAAC;QAChC,MAAM,GAAG,GAAI,OAA8C,CAAC,GAAY,CAAC;QAEzE,6CAA6C;QAE7C,MAAM,UAAU,GAAsB;YACpC;gBACE,QAAQ,EAAE;oBACR,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;iBACrB;aACF;YACD;gBACE,QAAQ,EAAE;oBACR,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;iBACrB;aACF;SACF,CAAC;QAEF,OAAO;aACJ,eAAe,CAAC,MAAM,CAAC;aACvB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACnC,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAiB,EAAE,EAAE;YAC3B,IAAA,aAAI,EAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEL,GAAG,CAAC,IAAI,CAAC,aAAS,CAAC,aAAa,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -85,7 +85,13 @@ class IBApiNextApp {
85
85
  }
86
86
  });
87
87
  }
88
- this.api.connect(clientId);
88
+ try {
89
+ this.api.connect(clientId);
90
+ }
91
+ catch (error) {
92
+ logger_1.default.error("Connection error", error.message);
93
+ logger_1.default.debug(`IB host: ${host} - IB port: ${port}`);
94
+ }
89
95
  }
90
96
  /**
91
97
  * Print text to console.
@@ -1 +1 @@
1
- {"version":3,"file":"ib-api-next-app.js","sourceRoot":"","sources":["../../../src/tools/common/ib-api-next-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ib-api-next-app.js","sourceRoot":"","sources":["../../../src/tools/common/ib-api-next-app.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  const path_1 = __importDefault(require("path"));
10
- const rxjs_1 = require("rxjs");
11
10
  const logger_1 = __importDefault(require("../common/logger"));
12
11
  const ib_api_next_app_1 = require("./common/ib-api-next-app");
13
12
  /////////////////////////////////////////////////////////////////////////////////
@@ -47,12 +46,9 @@ class PrintContractDetailsApp extends ib_api_next_app_1.IBApiNextApp {
47
46
  var _a, _b;
48
47
  const scriptName = path_1.default.basename(__filename);
49
48
  logger_1.default.debug(`Starting ${scriptName} script`);
50
- this.connect(0);
51
- // We use lastValueFrom here as we are not interested in getting
52
- // incremental updates.
53
- // If you do so (e.g. to show results incrementally as received from TWS),
54
- // use .subscribe({next: update => ...}) instead.
55
- (0, rxjs_1.lastValueFrom)(this.api.getContractDetails({
49
+ this.connect();
50
+ this.api
51
+ .getContractDetails({
56
52
  symbol: this.cmdLineArgs.symbol,
57
53
  conId: (_a = this.cmdLineArgs.conid) !== null && _a !== void 0 ? _a : undefined,
58
54
  secType: this.cmdLineArgs.sectype,
@@ -61,7 +57,7 @@ class PrintContractDetailsApp extends ib_api_next_app_1.IBApiNextApp {
61
57
  lastTradeDateOrContractMonth: this.cmdLineArgs.expiry,
62
58
  strike: (_b = this.cmdLineArgs.strike) !== null && _b !== void 0 ? _b : undefined,
63
59
  right: this.cmdLineArgs.right,
64
- }))
60
+ })
65
61
  .then((details) => {
66
62
  this.printObject(details);
67
63
  this.stop();
@@ -1 +1 @@
1
- {"version":3,"file":"contract-details.js","sourceRoot":"","sources":["../../src/tools/contract-details.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAEH,gDAAwB;AACxB,+BAAqC;AAIrC,8DAAsC;AACtC,8DAAwD;AAExD,iFAAiF;AACjF,iFAAiF;AACjF,iFAAiF;AAEjF,MAAM,gBAAgB,GACpB,8DAA8D,CAAC;AACjE,MAAM,UAAU,GAAG,sCAAsC,CAAC;AAC1D,MAAM,gBAAgB,GAAuB;IAC3C,CAAC,gBAAgB,EAAE,sCAAsC,CAAC;IAC1D,CAAC,eAAe,EAAE,kBAAkB,CAAC;IACrC;QACE,gBAAgB;QAChB,sGAAsG;KACvG;IACD,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;IACrD,CAAC,qBAAqB,EAAE,wBAAwB,CAAC;IACjD;QACE,iBAAiB;QACjB,8EAA8E;YAC5E,gIAAgI;KACnI;IACD,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;IACjD,CAAC,aAAa,EAAE,qDAAqD,CAAC;CACvE,CAAC;AACF,MAAM,YAAY,GAChB,6DAA6D,CAAC;AAEhE,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAE9E,MAAM,uBAAwB,SAAQ,8BAAY;IAChD;QACE,KAAK,CAAC,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,KAAK;;QACH,MAAM,UAAU,GAAG,cAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC7C,gBAAM,CAAC,KAAK,CAAC,YAAY,UAAU,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAEhB,gEAAgE;QAChE,uBAAuB;QACvB,0EAA0E;QAC1E,iDAAiD;QAEjD,IAAA,oBAAa,EACX,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAC1B,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAgB;YACzC,KAAK,EAAE,MAAA,IAAI,CAAC,WAAW,CAAC,KAAe,mCAAI,SAAS;YACpD,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAkB;YAC5C,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAkB;YAC7C,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAkB;YAC7C,4BAA4B,EAAE,IAAI,CAAC,WAAW,CAAC,MAAgB;YAC/D,MAAM,EAAE,MAAA,IAAI,CAAC,WAAW,CAAC,MAAgB,mCAAI,SAAS;YACtD,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAmB;SAC5C,CAAC,CACH;aACE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAChB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAmB,EAAE,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,mCAAmC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;CACF;AAED,cAAc;AAEd,IAAI,uBAAuB,EAAE,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"contract-details.js","sourceRoot":"","sources":["../../src/tools/contract-details.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAEH,gDAAwB;AAIxB,8DAAsC;AACtC,8DAAwD;AAExD,iFAAiF;AACjF,iFAAiF;AACjF,iFAAiF;AAEjF,MAAM,gBAAgB,GACpB,8DAA8D,CAAC;AACjE,MAAM,UAAU,GAAG,sCAAsC,CAAC;AAC1D,MAAM,gBAAgB,GAAuB;IAC3C,CAAC,gBAAgB,EAAE,sCAAsC,CAAC;IAC1D,CAAC,eAAe,EAAE,kBAAkB,CAAC;IACrC;QACE,gBAAgB;QAChB,sGAAsG;KACvG;IACD,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;IACrD,CAAC,qBAAqB,EAAE,wBAAwB,CAAC;IACjD;QACE,iBAAiB;QACjB,8EAA8E;YAC5E,gIAAgI;KACnI;IACD,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;IACjD,CAAC,aAAa,EAAE,qDAAqD,CAAC;CACvE,CAAC;AACF,MAAM,YAAY,GAChB,6DAA6D,CAAC;AAEhE,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAE9E,MAAM,uBAAwB,SAAQ,8BAAY;IAChD;QACE,KAAK,CAAC,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,KAAK;;QACH,MAAM,UAAU,GAAG,cAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC7C,gBAAM,CAAC,KAAK,CAAC,YAAY,UAAU,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAI,CAAC,GAAG;aACL,kBAAkB,CAAC;YAClB,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAgB;YACzC,KAAK,EAAE,MAAC,IAAI,CAAC,WAAW,CAAC,KAAgB,mCAAI,SAAS;YACtD,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAkB;YAC5C,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAkB;YAC7C,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAkB;YAC7C,4BAA4B,EAAE,IAAI,CAAC,WAAW,CAAC,MAAgB;YAC/D,MAAM,EAAE,MAAC,IAAI,CAAC,WAAW,CAAC,MAAiB,mCAAI,SAAS;YACxD,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAmB;SAC5C,CAAC;aACD,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAChB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAmB,EAAE,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,mCAAmC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;CACF;AAED,cAAc;AAEd,IAAI,uBAAuB,EAAE,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * This App will print a contract's market depth (order book).
3
+ */
4
+ export {};
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ /**
3
+ * This App will print a contract's market depth (order book).
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const path_1 = __importDefault(require("path"));
10
+ const logger_1 = __importDefault(require("../common/logger"));
11
+ const ib_api_next_app_1 = require("./common/ib-api-next-app");
12
+ /////////////////////////////////////////////////////////////////////////////////
13
+ // Help text and command line parsing //
14
+ /////////////////////////////////////////////////////////////////////////////////
15
+ const DESCRIPTION_TEXT = "Prints a contract's market depth (order book).";
16
+ const USAGE_TEXT = "Usage: market-depth.js <options>";
17
+ const OPTION_ARGUMENTS = [
18
+ ["conid=<number>", "Contract ID (conId) of the contract."],
19
+ ["exchange=<name>", "The destination exchange name."],
20
+ ["rows=<number>", "The number of rows on each side of the order book."],
21
+ [
22
+ "smart=<0/1>",
23
+ "Enable/Disable smart depth request (aggregate from multiple exchanges). Default is 1 (smart)",
24
+ ],
25
+ ];
26
+ const EXAMPLE_TEXT = "market-depth.js -conid=385666824 -exchange=NYSELIFFE -rows=200 -smart=0 -port=4002";
27
+ //////////////////////////////////////////////////////////////////////////////
28
+ // The App code //
29
+ //////////////////////////////////////////////////////////////////////////////
30
+ class PrintMarketDepthExchangesApp extends ib_api_next_app_1.IBApiNextApp {
31
+ constructor() {
32
+ super(DESCRIPTION_TEXT, USAGE_TEXT, OPTION_ARGUMENTS, EXAMPLE_TEXT);
33
+ }
34
+ /**
35
+ * Start the the app.
36
+ */
37
+ start() {
38
+ const scriptName = path_1.default.basename(__filename);
39
+ logger_1.default.debug(`Starting ${scriptName} script`);
40
+ this.connect(0);
41
+ if (!this.cmdLineArgs.conid) {
42
+ this.error("-conid argument missing.");
43
+ }
44
+ if (!this.cmdLineArgs.exchange) {
45
+ this.error("-exchange argument missing.");
46
+ }
47
+ // print order book updates
48
+ this.subscription$ = this.api
49
+ .getMarketDepth({
50
+ conId: this.cmdLineArgs.conid,
51
+ exchange: this.cmdLineArgs.exchange,
52
+ }, this.cmdLineArgs.rows !== undefined
53
+ ? this.cmdLineArgs.rows
54
+ : 100, this.cmdLineArgs.smart !== undefined
55
+ ? this.cmdLineArgs.smart === "1"
56
+ : true)
57
+ .subscribe({
58
+ next: (orderBookUpdate) => {
59
+ this.printObject(orderBookUpdate);
60
+ },
61
+ error: (err) => {
62
+ var _a;
63
+ (_a = this.subscription$) === null || _a === void 0 ? void 0 : _a.unsubscribe();
64
+ this.error(`getMarketData failed with '${err.error.message}'`);
65
+ },
66
+ });
67
+ }
68
+ /**
69
+ * Stop the the app with success code.
70
+ */
71
+ stop() {
72
+ var _a;
73
+ (_a = this.subscription$) === null || _a === void 0 ? void 0 : _a.unsubscribe();
74
+ this.exit();
75
+ }
76
+ }
77
+ // run the app
78
+ new PrintMarketDepthExchangesApp().start();
79
+ //# sourceMappingURL=market-depth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market-depth.js","sourceRoot":"","sources":["../../src/tools/market-depth.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAEH,gDAAwB;AAIxB,8DAAsC;AACtC,8DAAwD;AAExD,iFAAiF;AACjF,iFAAiF;AACjF,iFAAiF;AAEjF,MAAM,gBAAgB,GAAG,gDAAgD,CAAC;AAC1E,MAAM,UAAU,GAAG,kCAAkC,CAAC;AACtD,MAAM,gBAAgB,GAAuB;IAC3C,CAAC,gBAAgB,EAAE,sCAAsC,CAAC;IAC1D,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;IACrD,CAAC,eAAe,EAAE,oDAAoD,CAAC;IACvE;QACE,aAAa;QACb,8FAA8F;KAC/F;CACF,CAAC;AACF,MAAM,YAAY,GAChB,oFAAoF,CAAC;AAEvF,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAE9E,MAAM,4BAA6B,SAAQ,8BAAY;IACrD;QACE,KAAK,CAAC,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;IACtE,CAAC;IAKD;;OAEG;IACH,KAAK;QACH,MAAM,UAAU,GAAG,cAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC7C,gBAAM,CAAC,KAAK,CAAC,YAAY,UAAU,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAEhB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;YAC3B,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;SACxC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAC3C;QAED,2BAA2B;QAE3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG;aAC1B,cAAc,CACb;YACE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAe;YACvC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAkB;SAC9C,EACD,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS;YACjC,CAAC,CAAE,IAAI,CAAC,WAAW,CAAC,IAAe;YACnC,CAAC,CAAC,GAAG,EACP,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,SAAS;YAClC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,GAAG;YAChC,CAAC,CAAC,IAAI,CACT;aACA,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE;gBACxB,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YACpC,CAAC;YACD,KAAK,EAAE,CAAC,GAAmB,EAAE,EAAE;;gBAC7B,MAAA,IAAI,CAAC,aAAa,0CAAE,WAAW,EAAE,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,8BAA8B,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;YACjE,CAAC;SACF,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,IAAI;;QACF,MAAA,IAAI,CAAC,aAAa,0CAAE,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;CACF;AAED,cAAc;AAEd,IAAI,4BAA4B,EAAE,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * This App will search contracts matching a given text pattern and print it
3
+ * to console.
4
+ */
5
+ export {};
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /**
3
+ * This App will search contracts matching a given text pattern and print it
4
+ * to console.
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const path_1 = __importDefault(require("path"));
11
+ const logger_1 = __importDefault(require("../common/logger"));
12
+ const ib_api_next_app_1 = require("./common/ib-api-next-app");
13
+ ///////////////////////////////////////////////////////////////////////////////
14
+ // The help text //
15
+ ///////////////////////////////////////////////////////////////////////////////
16
+ const DESCRIPTION_TEXT = "Search contracts matching a given text pattern.";
17
+ const USAGE_TEXT = "Usage: search-contract.js <options>";
18
+ const OPTION_ARGUMENTS = [
19
+ ["pattern=<text>", "The name or symbol to search."],
20
+ ];
21
+ const EXAMPLE_TEXT = "search-contract.ts -text=Apple";
22
+ //////////////////////////////////////////////////////////////////////////////
23
+ // The App code //
24
+ //////////////////////////////////////////////////////////////////////////////
25
+ class PrintContractSearchApp extends ib_api_next_app_1.IBApiNextApp {
26
+ constructor() {
27
+ super(DESCRIPTION_TEXT, USAGE_TEXT, OPTION_ARGUMENTS, EXAMPLE_TEXT);
28
+ }
29
+ /**
30
+ * Start the the app.
31
+ */
32
+ start() {
33
+ const scriptName = path_1.default.basename(__filename);
34
+ logger_1.default.debug(`Starting ${scriptName} script`);
35
+ if (!this.cmdLineArgs.pattern) {
36
+ this.error("-pattern argument missing.");
37
+ }
38
+ this.connect();
39
+ this.api
40
+ .searchContracts(this.cmdLineArgs.pattern)
41
+ .then((searchResult) => {
42
+ this.printObject(searchResult);
43
+ this.stop();
44
+ })
45
+ .catch((err) => {
46
+ this.error(`searchContracts failed with '${err.error.message}'`);
47
+ });
48
+ }
49
+ /**
50
+ * Stop the the app with success code.
51
+ */
52
+ stop() {
53
+ this.exit();
54
+ }
55
+ }
56
+ // run the app
57
+ new PrintContractSearchApp().start();
58
+ //# sourceMappingURL=search-contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-contracts.js","sourceRoot":"","sources":["../../src/tools/search-contracts.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAEH,gDAAwB;AAExB,8DAAsC;AACtC,8DAAwD;AAExD,+EAA+E;AAC/E,+EAA+E;AAC/E,+EAA+E;AAE/E,MAAM,gBAAgB,GAAG,iDAAiD,CAAC;AAC3E,MAAM,UAAU,GAAG,qCAAqC,CAAC;AACzD,MAAM,gBAAgB,GAAuB;IAC3C,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;CACpD,CAAC;AACF,MAAM,YAAY,GAAG,gCAAgC,CAAC;AAEtD,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAE9E,MAAM,sBAAuB,SAAQ,8BAAY;IAC/C;QACE,KAAK,CAAC,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,KAAK;QACH,MAAM,UAAU,GAAG,cAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC7C,gBAAM,CAAC,KAAK,CAAC,YAAY,UAAU,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;SAC1C;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAI,CAAC,GAAG;aACL,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,OAAiB,CAAC;aACnD,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAmB,EAAE,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,gCAAgC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;CACF;AAED,cAAc;AAEd,IAAI,sBAAsB,EAAE,CAAC,KAAK,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stoqey/ib",
3
3
  "private": false,
4
- "version": "1.2.12",
4
+ "version": "1.2.16",
5
5
  "description": "Interactive Brokers TWS/IB Gateway API client library for Node.js (TS)",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",