@tastytrade/api 3.1.0 → 5.0.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.
Files changed (112) hide show
  1. package/.vscode/launch.json +29 -0
  2. package/CHANGELOG.md +41 -0
  3. package/CODEOWNERS +1 -0
  4. package/README.md +64 -31
  5. package/dist/account-streamer.d.ts +10 -8
  6. package/dist/account-streamer.d.ts.map +1 -0
  7. package/dist/account-streamer.js +147 -229
  8. package/dist/account-streamer.js.map +1 -0
  9. package/dist/logger.d.ts +20 -0
  10. package/dist/logger.d.ts.map +1 -0
  11. package/dist/logger.js +36 -0
  12. package/dist/logger.js.map +1 -0
  13. package/dist/market-data-streamer.d.ts +7 -5
  14. package/dist/market-data-streamer.d.ts.map +1 -0
  15. package/dist/market-data-streamer.js +139 -172
  16. package/dist/market-data-streamer.js.map +1 -0
  17. package/dist/models/tastytrade-session.d.ts +1 -0
  18. package/dist/models/tastytrade-session.d.ts.map +1 -0
  19. package/dist/models/tastytrade-session.js +10 -20
  20. package/dist/models/tastytrade-session.js.map +1 -0
  21. package/dist/services/account-status-service.d.ts +2 -1
  22. package/dist/services/account-status-service.d.ts.map +1 -0
  23. package/dist/services/account-status-service.js +11 -60
  24. package/dist/services/account-status-service.js.map +1 -0
  25. package/dist/services/accounts-and-customers-service.d.ts +2 -1
  26. package/dist/services/accounts-and-customers-service.d.ts.map +1 -0
  27. package/dist/services/accounts-and-customers-service.js +29 -112
  28. package/dist/services/accounts-and-customers-service.js.map +1 -0
  29. package/dist/services/balances-and-positions-service.d.ts +2 -1
  30. package/dist/services/balances-and-positions-service.d.ts.map +1 -0
  31. package/dist/services/balances-and-positions-service.js +22 -88
  32. package/dist/services/balances-and-positions-service.js.map +1 -0
  33. package/dist/services/instruments-service.d.ts +2 -1
  34. package/dist/services/instruments-service.d.ts.map +1 -0
  35. package/dist/services/instruments-service.js +130 -365
  36. package/dist/services/instruments-service.js.map +1 -0
  37. package/dist/services/margin-requirements-service.d.ts +2 -1
  38. package/dist/services/margin-requirements-service.d.ts.map +1 -0
  39. package/dist/services/margin-requirements-service.js +16 -73
  40. package/dist/services/margin-requirements-service.js.map +1 -0
  41. package/dist/services/market-metrics-service.d.ts +2 -1
  42. package/dist/services/market-metrics-service.d.ts.map +1 -0
  43. package/dist/services/market-metrics-service.js +21 -88
  44. package/dist/services/market-metrics-service.js.map +1 -0
  45. package/dist/services/net-liquidating-value-history-service.d.ts +2 -1
  46. package/dist/services/net-liquidating-value-history-service.d.ts.map +1 -0
  47. package/dist/services/net-liquidating-value-history-service.js +16 -74
  48. package/dist/services/net-liquidating-value-history-service.js.map +1 -0
  49. package/dist/services/orders-service.d.ts +2 -1
  50. package/dist/services/orders-service.d.ts.map +1 -0
  51. package/dist/services/orders-service.js +76 -231
  52. package/dist/services/orders-service.js.map +1 -0
  53. package/dist/services/risk-parameters-service.d.ts +2 -1
  54. package/dist/services/risk-parameters-service.d.ts.map +1 -0
  55. package/dist/services/risk-parameters-service.js +16 -73
  56. package/dist/services/risk-parameters-service.js.map +1 -0
  57. package/dist/services/session-service.d.ts +2 -1
  58. package/dist/services/session-service.d.ts.map +1 -0
  59. package/dist/services/session-service.js +30 -110
  60. package/dist/services/session-service.js.map +1 -0
  61. package/dist/services/symbol-search-service.d.ts +2 -1
  62. package/dist/services/symbol-search-service.d.ts.map +1 -0
  63. package/dist/services/symbol-search-service.js +11 -60
  64. package/dist/services/symbol-search-service.js.map +1 -0
  65. package/dist/services/tastytrade-http-client.d.ts +5 -3
  66. package/dist/services/tastytrade-http-client.d.ts.map +1 -0
  67. package/dist/services/tastytrade-http-client.js +53 -134
  68. package/dist/services/tastytrade-http-client.js.map +1 -0
  69. package/dist/services/transactions-service.d.ts +2 -1
  70. package/dist/services/transactions-service.d.ts.map +1 -0
  71. package/dist/services/transactions-service.js +22 -87
  72. package/dist/services/transactions-service.js.map +1 -0
  73. package/dist/services/watchlists-service.d.ts +2 -1
  74. package/dist/services/watchlists-service.d.ts.map +1 -0
  75. package/dist/services/watchlists-service.js +51 -165
  76. package/dist/services/watchlists-service.js.map +1 -0
  77. package/dist/tastytrade-api.d.ts +32 -22
  78. package/dist/tastytrade-api.d.ts.map +1 -0
  79. package/dist/tastytrade-api.js +44 -79
  80. package/dist/tastytrade-api.js.map +1 -0
  81. package/dist/utils/constants.d.ts +1 -0
  82. package/dist/utils/constants.d.ts.map +1 -0
  83. package/dist/utils/constants.js +2 -4
  84. package/dist/utils/constants.js.map +1 -0
  85. package/dist/utils/json-util.d.ts +4 -3
  86. package/dist/utils/json-util.d.ts.map +1 -0
  87. package/dist/utils/json-util.js +14 -25
  88. package/dist/utils/json-util.js.map +1 -0
  89. package/dist/utils/response-util.d.ts +1 -0
  90. package/dist/utils/response-util.d.ts.map +1 -0
  91. package/dist/utils/response-util.js +7 -12
  92. package/dist/utils/response-util.js.map +1 -0
  93. package/lib/account-streamer.ts +19 -12
  94. package/lib/logger.ts +48 -0
  95. package/lib/market-data-streamer.ts +5 -1
  96. package/lib/services/account-status-service.ts +2 -2
  97. package/lib/services/accounts-and-customers-service.ts +2 -2
  98. package/lib/services/balances-and-positions-service.ts +2 -2
  99. package/lib/services/instruments-service.ts +2 -2
  100. package/lib/services/margin-requirements-service.ts +2 -2
  101. package/lib/services/market-metrics-service.ts +2 -2
  102. package/lib/services/net-liquidating-value-history-service.ts +2 -2
  103. package/lib/services/orders-service.ts +2 -2
  104. package/lib/services/risk-parameters-service.ts +2 -2
  105. package/lib/services/session-service.ts +2 -2
  106. package/lib/services/symbol-search-service.ts +2 -2
  107. package/lib/services/tastytrade-http-client.ts +21 -16
  108. package/lib/services/transactions-service.ts +2 -2
  109. package/lib/services/watchlists-service.ts +2 -2
  110. package/lib/tastytrade-api.ts +35 -22
  111. package/package.json +14 -9
  112. package/tsconfig.json +12 -11
@@ -1,14 +1,8 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.CandleType = exports.MarketDataSubscriptionType = void 0;
7
- var isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
8
- var lodash_1 = __importDefault(require("lodash"));
9
- var uuid_1 = require("uuid");
10
- var constants_1 = require("./utils/constants");
11
- var MarketDataSubscriptionType;
1
+ import WebSocket from 'isomorphic-ws';
2
+ import _ from 'lodash';
3
+ import { v4 as uuidv4 } from 'uuid';
4
+ import { MinTlsVersion } from './utils/constants.js';
5
+ export var MarketDataSubscriptionType;
12
6
  (function (MarketDataSubscriptionType) {
13
7
  MarketDataSubscriptionType["Candle"] = "Candle";
14
8
  MarketDataSubscriptionType["Quote"] = "Quote";
@@ -17,8 +11,8 @@ var MarketDataSubscriptionType;
17
11
  MarketDataSubscriptionType["Profile"] = "Profile";
18
12
  MarketDataSubscriptionType["Greeks"] = "Greeks";
19
13
  MarketDataSubscriptionType["Underlying"] = "Underlying";
20
- })(MarketDataSubscriptionType = exports.MarketDataSubscriptionType || (exports.MarketDataSubscriptionType = {}));
21
- var CandleType;
14
+ })(MarketDataSubscriptionType || (MarketDataSubscriptionType = {}));
15
+ export var CandleType;
22
16
  (function (CandleType) {
23
17
  CandleType["Tick"] = "t";
24
18
  CandleType["Second"] = "s";
@@ -31,13 +25,13 @@ var CandleType;
31
25
  CandleType["Year"] = "y";
32
26
  CandleType["Volume"] = "v";
33
27
  CandleType["Price"] = "p";
34
- })(CandleType = exports.CandleType || (exports.CandleType = {}));
28
+ })(CandleType || (CandleType = {}));
35
29
  // List of all subscription types except for Candle
36
- var AllSubscriptionTypes = Object.values(MarketDataSubscriptionType);
37
- var KeepaliveInterval = 30000; // 30 seconds
38
- var DefaultChannelId = 1;
39
- var MarketDataStreamer = /** @class */ (function () {
40
- function MarketDataStreamer() {
30
+ const AllSubscriptionTypes = Object.values(MarketDataSubscriptionType);
31
+ const KeepaliveInterval = 30000; // 30 seconds
32
+ const DefaultChannelId = 1;
33
+ export default class MarketDataStreamer {
34
+ constructor() {
41
35
  this.webSocket = null;
42
36
  this.token = '';
43
37
  this.keepaliveIntervalId = null;
@@ -47,50 +41,47 @@ var MarketDataStreamer = /** @class */ (function () {
47
41
  this.authState = '';
48
42
  this.errorListeners = new Map();
49
43
  this.authStateListeners = new Map();
44
+ console.warn('MarketDataStreamer is deprecated and will be removed in a future release of @tastytrade/api. Use @dxfeed/dxlink-api instead.');
50
45
  }
51
- MarketDataStreamer.prototype.addDataListener = function (dataListener, channelId) {
52
- var _this = this;
53
- if (channelId === void 0) { channelId = null; }
54
- if (lodash_1.default.isNil(dataListener)) {
55
- return lodash_1.default.noop;
46
+ addDataListener(dataListener, channelId = null) {
47
+ if (_.isNil(dataListener)) {
48
+ return _.noop;
56
49
  }
57
- var guid = (0, uuid_1.v4)();
58
- this.dataListeners.set(guid, { listener: dataListener, channelId: channelId });
59
- return function () { return _this.dataListeners.delete(guid); };
60
- };
61
- MarketDataStreamer.prototype.addErrorListener = function (errorListener) {
62
- var _this = this;
63
- if (lodash_1.default.isNil(errorListener)) {
64
- return lodash_1.default.noop;
50
+ const guid = uuidv4();
51
+ this.dataListeners.set(guid, { listener: dataListener, channelId });
52
+ return () => this.dataListeners.delete(guid);
53
+ }
54
+ addErrorListener(errorListener) {
55
+ if (_.isNil(errorListener)) {
56
+ return _.noop;
65
57
  }
66
- var guid = (0, uuid_1.v4)();
58
+ const guid = uuidv4();
67
59
  this.errorListeners.set(guid, errorListener);
68
- return function () { return _this.errorListeners.delete(guid); };
69
- };
70
- MarketDataStreamer.prototype.addAuthStateChangeListener = function (authStateListener) {
71
- var _this = this;
72
- if (lodash_1.default.isNil(authStateListener)) {
73
- return lodash_1.default.noop;
60
+ return () => this.errorListeners.delete(guid);
61
+ }
62
+ addAuthStateChangeListener(authStateListener) {
63
+ if (_.isNil(authStateListener)) {
64
+ return _.noop;
74
65
  }
75
- var guid = (0, uuid_1.v4)();
66
+ const guid = uuidv4();
76
67
  this.authStateListeners.set(guid, authStateListener);
77
- return function () { return _this.authStateListeners.delete(guid); };
78
- };
79
- MarketDataStreamer.prototype.connect = function (url, token) {
68
+ return () => this.authStateListeners.delete(guid);
69
+ }
70
+ connect(url, token) {
80
71
  if (this.isConnected) {
81
72
  throw new Error('MarketDataStreamer is attempting to connect when an existing websocket is already connected');
82
73
  }
83
74
  this.token = token;
84
- this.webSocket = new isomorphic_ws_1.default(url, [], {
85
- minVersion: constants_1.MinTlsVersion // TLS Config
75
+ this.webSocket = new WebSocket(url, [], {
76
+ minVersion: MinTlsVersion // TLS Config
86
77
  });
87
78
  this.webSocket.onopen = this.onOpen.bind(this);
88
79
  this.webSocket.onerror = this.onError.bind(this);
89
80
  this.webSocket.onmessage = this.handleMessageReceived.bind(this);
90
81
  this.webSocket.onclose = this.onClose.bind(this);
91
- };
92
- MarketDataStreamer.prototype.disconnect = function () {
93
- if (lodash_1.default.isNil(this.webSocket)) {
82
+ }
83
+ disconnect() {
84
+ if (_.isNil(this.webSocket)) {
94
85
  return;
95
86
  }
96
87
  this.clearKeepalive();
@@ -103,24 +94,22 @@ var MarketDataStreamer = /** @class */ (function () {
103
94
  this.openChannels.clear();
104
95
  this.subscriptionsQueue.clear();
105
96
  this.authState = '';
106
- };
107
- MarketDataStreamer.prototype.addSubscription = function (symbol, options) {
108
- var _this = this;
109
- if (options === void 0) { options = { subscriptionTypes: AllSubscriptionTypes, channelId: DefaultChannelId }; }
110
- var subscriptionTypes = options.subscriptionTypes;
97
+ }
98
+ addSubscription(symbol, options = { subscriptionTypes: AllSubscriptionTypes, channelId: DefaultChannelId }) {
99
+ let { subscriptionTypes } = options;
111
100
  // Don't allow candle subscriptions in this method. Use addCandleSubscription instead
112
- subscriptionTypes = lodash_1.default.without(subscriptionTypes, MarketDataSubscriptionType.Candle);
113
- var isOpen = this.isChannelOpened(options.channelId);
101
+ subscriptionTypes = _.without(subscriptionTypes, MarketDataSubscriptionType.Candle);
102
+ const isOpen = this.isChannelOpened(options.channelId);
114
103
  if (isOpen) {
115
104
  this.sendSubscriptionMessage(symbol, subscriptionTypes, options.channelId, 'add');
116
105
  }
117
106
  else {
118
- this.queueSubscription(symbol, { subscriptionTypes: subscriptionTypes, channelId: options.channelId });
107
+ this.queueSubscription(symbol, { subscriptionTypes, channelId: options.channelId });
119
108
  }
120
- return function () {
121
- _this.removeSubscription(symbol, options);
109
+ return () => {
110
+ this.removeSubscription(symbol, options);
122
111
  };
123
- };
112
+ }
124
113
  /**
125
114
  * Adds a candle subscription (historical data)
126
115
  * @param streamerSymbol Get this from an instrument's streamer-symbol json response field
@@ -130,49 +119,45 @@ var MarketDataStreamer = /** @class */ (function () {
130
119
  * From there, setting fromTime to 24 hours ago would give you 24 hours of data grouped in 5 minute intervals
131
120
  * @returns
132
121
  */
133
- MarketDataStreamer.prototype.addCandleSubscription = function (streamerSymbol, fromTime, options) {
134
- var _this = this;
135
- var _a;
136
- var subscriptionTypes = [MarketDataSubscriptionType.Candle];
137
- var channelId = (_a = options.channelId) !== null && _a !== void 0 ? _a : DefaultChannelId;
122
+ addCandleSubscription(streamerSymbol, fromTime, options) {
123
+ const subscriptionTypes = [MarketDataSubscriptionType.Candle];
124
+ const channelId = options.channelId ?? DefaultChannelId;
138
125
  // Example: AAPL{=5m} where each candle represents 5 minutes of data
139
- var candleSymbol = "".concat(streamerSymbol, "{=").concat(options.period).concat(options.type, "}");
140
- var isOpen = this.isChannelOpened(channelId);
141
- var subscriptionArgs = { fromTime: fromTime };
126
+ const candleSymbol = `${streamerSymbol}{=${options.period}${options.type}}`;
127
+ const isOpen = this.isChannelOpened(channelId);
128
+ const subscriptionArgs = { fromTime };
142
129
  if (isOpen) {
143
130
  this.sendSubscriptionMessage(candleSymbol, subscriptionTypes, channelId, 'add', subscriptionArgs);
144
131
  }
145
132
  else {
146
- this.queueSubscription(candleSymbol, { subscriptionTypes: subscriptionTypes, channelId: channelId, subscriptionArgs: subscriptionArgs });
133
+ this.queueSubscription(candleSymbol, { subscriptionTypes, channelId, subscriptionArgs });
147
134
  }
148
- return function () {
149
- _this.removeSubscription(candleSymbol, { subscriptionTypes: subscriptionTypes, channelId: channelId });
135
+ return () => {
136
+ this.removeSubscription(candleSymbol, { subscriptionTypes, channelId });
150
137
  };
151
- };
152
- MarketDataStreamer.prototype.removeSubscription = function (symbol, options) {
153
- if (options === void 0) { options = { subscriptionTypes: AllSubscriptionTypes, channelId: DefaultChannelId }; }
154
- var subscriptionTypes = options.subscriptionTypes, channelId = options.channelId;
155
- var isOpen = this.isChannelOpened(channelId);
138
+ }
139
+ removeSubscription(symbol, options = { subscriptionTypes: AllSubscriptionTypes, channelId: DefaultChannelId }) {
140
+ const { subscriptionTypes, channelId } = options;
141
+ const isOpen = this.isChannelOpened(channelId);
156
142
  if (isOpen) {
157
143
  this.sendSubscriptionMessage(symbol, subscriptionTypes, channelId, 'remove');
158
144
  }
159
145
  else {
160
146
  this.dequeueSubscription(symbol, options);
161
147
  }
162
- };
163
- MarketDataStreamer.prototype.removeAllSubscriptions = function (channelId) {
164
- if (channelId === void 0) { channelId = DefaultChannelId; }
165
- var isOpen = this.isChannelOpened(channelId);
148
+ }
149
+ removeAllSubscriptions(channelId = DefaultChannelId) {
150
+ const isOpen = this.isChannelOpened(channelId);
166
151
  if (isOpen) {
167
152
  this.sendMessage({ "type": "FEED_SUBSCRIPTION", "channel": channelId, reset: true });
168
153
  }
169
154
  else {
170
155
  this.subscriptionsQueue.set(channelId, []);
171
156
  }
172
- };
173
- MarketDataStreamer.prototype.openFeedChannel = function (channelId) {
157
+ }
158
+ openFeedChannel(channelId) {
174
159
  if (!this.isReadyToOpenChannels) {
175
- throw new Error("Unable to open channel ".concat(channelId, " due to DxLink authorization state: ").concat(this.authState));
160
+ throw new Error(`Unable to open channel ${channelId} due to DxLink authorization state: ${this.authState}`);
176
161
  }
177
162
  if (this.isChannelOpened(channelId)) {
178
163
  return;
@@ -185,64 +170,55 @@ var MarketDataStreamer = /** @class */ (function () {
185
170
  "contract": "AUTO"
186
171
  }
187
172
  });
188
- };
189
- MarketDataStreamer.prototype.isChannelOpened = function (channelId) {
173
+ }
174
+ isChannelOpened(channelId) {
190
175
  return this.isConnected && this.openChannels.has(channelId);
191
- };
192
- Object.defineProperty(MarketDataStreamer.prototype, "isReadyToOpenChannels", {
193
- get: function () {
194
- return this.isConnected && this.isDxLinkAuthorized;
195
- },
196
- enumerable: false,
197
- configurable: true
198
- });
199
- Object.defineProperty(MarketDataStreamer.prototype, "isConnected", {
200
- get: function () {
201
- return !lodash_1.default.isNil(this.webSocket);
202
- },
203
- enumerable: false,
204
- configurable: true
205
- });
206
- MarketDataStreamer.prototype.scheduleKeepalive = function () {
176
+ }
177
+ get isReadyToOpenChannels() {
178
+ return this.isConnected && this.isDxLinkAuthorized;
179
+ }
180
+ get isConnected() {
181
+ return !_.isNil(this.webSocket);
182
+ }
183
+ scheduleKeepalive() {
207
184
  this.keepaliveIntervalId = setInterval(this.sendKeepalive, KeepaliveInterval);
208
- };
209
- MarketDataStreamer.prototype.sendKeepalive = function () {
210
- if (lodash_1.default.isNil(this.keepaliveIntervalId)) {
185
+ }
186
+ sendKeepalive() {
187
+ if (_.isNil(this.keepaliveIntervalId)) {
211
188
  return;
212
189
  }
213
190
  this.sendMessage({
214
191
  "type": "KEEPALIVE",
215
192
  "channel": 0
216
193
  });
217
- };
218
- MarketDataStreamer.prototype.queueSubscription = function (symbol, options) {
219
- var subscriptionTypes = options.subscriptionTypes, channelId = options.channelId, subscriptionArgs = options.subscriptionArgs;
220
- var queue = this.subscriptionsQueue.get(options.channelId);
221
- if (lodash_1.default.isNil(queue)) {
194
+ }
195
+ queueSubscription(symbol, options) {
196
+ const { subscriptionTypes, channelId, subscriptionArgs } = options;
197
+ let queue = this.subscriptionsQueue.get(options.channelId);
198
+ if (_.isNil(queue)) {
222
199
  queue = [];
223
200
  this.subscriptionsQueue.set(channelId, queue);
224
201
  }
225
- queue.push({ symbol: symbol, subscriptionTypes: subscriptionTypes, subscriptionArgs: subscriptionArgs });
226
- };
227
- MarketDataStreamer.prototype.dequeueSubscription = function (symbol, options) {
228
- var queue = this.subscriptionsQueue.get(options.channelId);
229
- if (lodash_1.default.isNil(queue) || lodash_1.default.isEmpty(queue)) {
202
+ queue.push({ symbol, subscriptionTypes, subscriptionArgs });
203
+ }
204
+ dequeueSubscription(symbol, options) {
205
+ const queue = this.subscriptionsQueue.get(options.channelId);
206
+ if (_.isNil(queue) || _.isEmpty(queue)) {
230
207
  return;
231
208
  }
232
- lodash_1.default.remove(queue, function (queueItem) { return queueItem.symbol === symbol; });
233
- };
234
- MarketDataStreamer.prototype.sendQueuedSubscriptions = function (channelId) {
235
- var _this = this;
236
- var queuedSubscriptions = this.subscriptionsQueue.get(channelId);
237
- if (lodash_1.default.isNil(queuedSubscriptions)) {
209
+ _.remove(queue, (queueItem) => queueItem.symbol === symbol);
210
+ }
211
+ sendQueuedSubscriptions(channelId) {
212
+ const queuedSubscriptions = this.subscriptionsQueue.get(channelId);
213
+ if (_.isNil(queuedSubscriptions)) {
238
214
  return;
239
215
  }
240
216
  // Clear out queue immediately
241
217
  this.subscriptionsQueue.set(channelId, []);
242
- queuedSubscriptions.forEach(function (subscription) {
243
- _this.sendSubscriptionMessage(subscription.symbol, subscription.subscriptionTypes, channelId, 'add', subscription.subscriptionArgs);
218
+ queuedSubscriptions.forEach(subscription => {
219
+ this.sendSubscriptionMessage(subscription.symbol, subscription.subscriptionTypes, channelId, 'add', subscription.subscriptionArgs);
244
220
  });
245
- };
221
+ }
246
222
  /**
247
223
  *
248
224
  * @param {*} symbol
@@ -250,22 +226,19 @@ var MarketDataStreamer = /** @class */ (function () {
250
226
  * @param {*} channelId
251
227
  * @param {*} direction add or remove
252
228
  */
253
- MarketDataStreamer.prototype.sendSubscriptionMessage = function (symbol, subscriptionTypes, channelId, direction, subscriptionArgs) {
254
- var _a;
255
- if (subscriptionArgs === void 0) { subscriptionArgs = {}; }
256
- var subscriptions = subscriptionTypes.map(function (type) { return (Object.assign({}, { "symbol": symbol, "type": type }, subscriptionArgs !== null && subscriptionArgs !== void 0 ? subscriptionArgs : {})); });
257
- this.sendMessage((_a = {
258
- "type": "FEED_SUBSCRIPTION",
259
- "channel": channelId
260
- },
261
- _a[direction] = subscriptions,
262
- _a));
263
- };
264
- MarketDataStreamer.prototype.onError = function (error) {
229
+ sendSubscriptionMessage(symbol, subscriptionTypes, channelId, direction, subscriptionArgs = {}) {
230
+ const subscriptions = subscriptionTypes.map(type => (Object.assign({}, { "symbol": symbol, "type": type }, subscriptionArgs ?? {})));
231
+ this.sendMessage({
232
+ "type": "FEED_SUBSCRIPTION",
233
+ "channel": channelId,
234
+ [direction]: subscriptions
235
+ });
236
+ }
237
+ onError(error) {
265
238
  console.error('Error received: ', error);
266
239
  this.notifyErrorListeners(error);
267
- };
268
- MarketDataStreamer.prototype.onOpen = function () {
240
+ }
241
+ onOpen() {
269
242
  this.openChannels.clear();
270
243
  this.sendMessage({
271
244
  "type": "SETUP",
@@ -275,28 +248,23 @@ var MarketDataStreamer = /** @class */ (function () {
275
248
  "version": "0.1-js/1.0.0"
276
249
  });
277
250
  this.scheduleKeepalive();
278
- };
279
- MarketDataStreamer.prototype.onClose = function () {
251
+ }
252
+ onClose() {
280
253
  this.webSocket = null;
281
254
  this.clearKeepalive();
282
- };
283
- MarketDataStreamer.prototype.clearKeepalive = function () {
284
- if (!lodash_1.default.isNil(this.keepaliveIntervalId)) {
255
+ }
256
+ clearKeepalive() {
257
+ if (!_.isNil(this.keepaliveIntervalId)) {
285
258
  clearInterval(this.keepaliveIntervalId);
286
259
  }
287
260
  this.keepaliveIntervalId = null;
288
- };
289
- Object.defineProperty(MarketDataStreamer.prototype, "isDxLinkAuthorized", {
290
- get: function () {
291
- return this.authState === 'AUTHORIZED';
292
- },
293
- enumerable: false,
294
- configurable: true
295
- });
296
- MarketDataStreamer.prototype.handleAuthStateMessage = function (data) {
297
- var _this = this;
261
+ }
262
+ get isDxLinkAuthorized() {
263
+ return this.authState === 'AUTHORIZED';
264
+ }
265
+ handleAuthStateMessage(data) {
298
266
  this.authState = data.state;
299
- this.authStateListeners.forEach(function (listener) { return listener(_this.isDxLinkAuthorized); });
267
+ this.authStateListeners.forEach(listener => listener(this.isDxLinkAuthorized));
300
268
  if (this.isDxLinkAuthorized) {
301
269
  this.openFeedChannel(DefaultChannelId);
302
270
  }
@@ -307,24 +275,24 @@ var MarketDataStreamer = /** @class */ (function () {
307
275
  "token": this.token
308
276
  });
309
277
  }
310
- };
311
- MarketDataStreamer.prototype.handleChannelOpened = function (jsonData) {
278
+ }
279
+ handleChannelOpened(jsonData) {
312
280
  this.openChannels.add(jsonData.channel);
313
281
  this.sendQueuedSubscriptions(jsonData.channel);
314
- };
315
- MarketDataStreamer.prototype.notifyListeners = function (jsonData) {
316
- this.dataListeners.forEach(function (listenerData) {
317
- if (listenerData.channelId === jsonData.channel || lodash_1.default.isNil(listenerData.channelId)) {
282
+ }
283
+ notifyListeners(jsonData) {
284
+ this.dataListeners.forEach(listenerData => {
285
+ if (listenerData.channelId === jsonData.channel || _.isNil(listenerData.channelId)) {
318
286
  listenerData.listener(jsonData);
319
287
  }
320
288
  });
321
- };
322
- MarketDataStreamer.prototype.notifyErrorListeners = function (error) {
323
- this.errorListeners.forEach(function (listener) { return listener(error); });
324
- };
325
- MarketDataStreamer.prototype.handleMessageReceived = function (data) {
326
- var messageData = lodash_1.default.get(data, 'data', '{}');
327
- var jsonData = JSON.parse(messageData);
289
+ }
290
+ notifyErrorListeners(error) {
291
+ this.errorListeners.forEach(listener => listener(error));
292
+ }
293
+ handleMessageReceived(data) {
294
+ const messageData = _.get(data, 'data', '{}');
295
+ const jsonData = JSON.parse(messageData);
328
296
  switch (jsonData.type) {
329
297
  case 'AUTH_STATE':
330
298
  this.handleAuthStateMessage(jsonData);
@@ -336,13 +304,12 @@ var MarketDataStreamer = /** @class */ (function () {
336
304
  this.notifyListeners(jsonData);
337
305
  break;
338
306
  }
339
- };
340
- MarketDataStreamer.prototype.sendMessage = function (json) {
341
- if (lodash_1.default.isNil(this.webSocket)) {
307
+ }
308
+ sendMessage(json) {
309
+ if (_.isNil(this.webSocket)) {
342
310
  return;
343
311
  }
344
312
  this.webSocket.send(JSON.stringify(json));
345
- };
346
- return MarketDataStreamer;
347
- }());
348
- exports.default = MarketDataStreamer;
313
+ }
314
+ }
315
+ //# sourceMappingURL=market-data-streamer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market-data-streamer.js","sourceRoot":"","sources":["../lib/market-data-streamer.ts"],"names":[],"mappings":"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"}
@@ -3,3 +3,4 @@ export default class TastytradeSession {
3
3
  get isValid(): boolean;
4
4
  clear(): void;
5
5
  }
6
+ //# sourceMappingURL=tastytrade-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tastytrade-session.d.ts","sourceRoot":"","sources":["../../lib/models/tastytrade-session.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAClC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAO;IAE/B,IAAI,OAAO,YAEV;IAED,KAAK;CAGR"}
@@ -1,23 +1,13 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var lodash_1 = __importDefault(require("lodash"));
7
- var TastytradeSession = /** @class */ (function () {
8
- function TastytradeSession() {
1
+ import _ from 'lodash';
2
+ export default class TastytradeSession {
3
+ constructor() {
9
4
  this.authToken = null;
10
5
  }
11
- Object.defineProperty(TastytradeSession.prototype, "isValid", {
12
- get: function () {
13
- return !lodash_1.default.isNil(this.authToken);
14
- },
15
- enumerable: false,
16
- configurable: true
17
- });
18
- TastytradeSession.prototype.clear = function () {
6
+ get isValid() {
7
+ return !_.isNil(this.authToken);
8
+ }
9
+ clear() {
19
10
  this.authToken = null;
20
- };
21
- return TastytradeSession;
22
- }());
23
- exports.default = TastytradeSession;
11
+ }
12
+ }
13
+ //# sourceMappingURL=tastytrade-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tastytrade-session.js","sourceRoot":"","sources":["../../lib/models/tastytrade-session.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AAEtB,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAAtC;QACI,cAAS,GAAkB,IAAI,CAAA;IASnC,CAAC;IAPG,IAAI,OAAO;QACT,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACjC,CAAC;IAED,KAAK;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACzB,CAAC;CACJ"}
@@ -1,6 +1,7 @@
1
- import TastytradeHttpClient from "./tastytrade-http-client";
1
+ import TastytradeHttpClient from "./tastytrade-http-client.js";
2
2
  export default class AccountStatusService {
3
3
  private httpClient;
4
4
  constructor(httpClient: TastytradeHttpClient);
5
5
  getAccountStatus(accountNumber: string): Promise<any>;
6
6
  }
7
+ //# sourceMappingURL=account-status-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-status-service.d.ts","sourceRoot":"","sources":["../../lib/services/account-status-service.ts"],"names":[],"mappings":"AACA,OAAO,oBAAoB,MAAM,6BAA6B,CAAC;AAG/D,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACzB,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,oBAAoB;IAI9C,gBAAgB,CAAC,aAAa,EAAE,MAAM;CAK/C"}
@@ -1,64 +1,15 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __importDefault = (this && this.__importDefault) || function (mod) {
39
- return (mod && mod.__esModule) ? mod : { "default": mod };
40
- };
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- var response_util_1 = __importDefault(require("../utils/response-util"));
1
+ import extractResponseData from "../utils/response-util.js";
2
+ import TastytradeHttpClient from "./tastytrade-http-client.js";
43
3
  // create the central class that aggregates all services
44
- var AccountStatusService = /** @class */ (function () {
45
- function AccountStatusService(httpClient) {
4
+ export default class AccountStatusService {
5
+ constructor(httpClient) {
46
6
  this.httpClient = httpClient;
47
7
  }
48
8
  //Trading Status: Allows an API client to request information about the basic trade status of an account. This includes information about the strategies an account can trade.
49
- AccountStatusService.prototype.getAccountStatus = function (accountNumber) {
50
- return __awaiter(this, void 0, void 0, function () {
51
- var accountStatus;
52
- return __generator(this, function (_a) {
53
- switch (_a.label) {
54
- case 0: return [4 /*yield*/, this.httpClient.getData("/accounts/".concat(accountNumber, "/trading-status"), {}, {})];
55
- case 1:
56
- accountStatus = (_a.sent());
57
- return [2 /*return*/, (0, response_util_1.default)(accountStatus)];
58
- }
59
- });
60
- });
61
- };
62
- return AccountStatusService;
63
- }());
64
- exports.default = AccountStatusService;
9
+ async getAccountStatus(accountNumber) {
10
+ //Returns current trading status for an account.
11
+ const accountStatus = (await this.httpClient.getData(`/accounts/${accountNumber}/trading-status`, {}, {}));
12
+ return extractResponseData(accountStatus);
13
+ }
14
+ }
15
+ //# sourceMappingURL=account-status-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-status-service.js","sourceRoot":"","sources":["../../lib/services/account-status-service.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,2BAA2B,CAAC;AAC5D,OAAO,oBAAoB,MAAM,6BAA6B,CAAC;AAE/D,wDAAwD;AACxD,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACrC,YAAoB,UAAgC;QAAhC,eAAU,GAAV,UAAU,CAAsB;IACpD,CAAC;IAED,+KAA+K;IAC/K,KAAK,CAAC,gBAAgB,CAAC,aAAqB;QACxC,gDAAgD;QAChD,MAAM,aAAa,GAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,aAAa,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;QAC3G,OAAO,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAC7C,CAAC;CACJ"}
@@ -1,4 +1,4 @@
1
- import TastytradeHttpClient from "./tastytrade-http-client";
1
+ import TastytradeHttpClient from "./tastytrade-http-client.js";
2
2
  export default class AccountsAndCustomersService {
3
3
  private httpClient;
4
4
  constructor(httpClient: TastytradeHttpClient);
@@ -8,3 +8,4 @@ export default class AccountsAndCustomersService {
8
8
  getFullCustomerAccountResource(accountNumber: string): Promise<any>;
9
9
  getApiQuoteToken(): Promise<any>;
10
10
  }
11
+ //# sourceMappingURL=accounts-and-customers-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts-and-customers-service.d.ts","sourceRoot":"","sources":["../../lib/services/accounts-and-customers-service.ts"],"names":[],"mappings":"AACA,OAAO,oBAAoB,MAAM,6BAA6B,CAAC;AAE/D,MAAM,CAAC,OAAO,OAAO,2BAA2B;IAChC,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,oBAAoB;IAE9C,mBAAmB;IAMnB,mBAAmB;IAKnB,2BAA2B;IAK3B,8BAA8B,CAAC,aAAa,EAAE,MAAM;IAOpD,gBAAgB;CAIzB"}