@quotemedia.com/streamer 2.20.0 → 2.24.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.
@@ -452,6 +452,10 @@ var Stream = function () {
452
452
  this.pendingUnsubscriptions = {};
453
453
  this.pendingExchangeSubscriptions = {};
454
454
  this.pendingExchangeUnsubscriptions = {};
455
+ this.pendingNewsSubscriptions = {};
456
+ this.pendingNewsUnsubscriptions = {};
457
+ this.pendingAlertSubscription = {};
458
+ this.pendingTradeSubscription = {};
455
459
 
456
460
  this.on("error", function (err) {
457
461
  _this.log.warn(err);
@@ -576,6 +580,110 @@ var Stream = function () {
576
580
  });
577
581
  };
578
582
 
583
+ Stream.prototype.subscribeNews = function subscribeNews(newsFilters, optsOrCallback, callbackOrNothing) {
584
+
585
+ var opts = optsOrCallback && typeof optsOrCallback !== "function" ? optsOrCallback : null;
586
+ var callback = callbackOrNothing ? callbackOrNothing : optsOrCallback && typeof optsOrCallback === "function" ? optsOrCallback : null;
587
+
588
+ if (this.isClosed()) {
589
+ var event = events.error("Stream is disconnected", {
590
+ code: -1,
591
+ reason: "Already disconnected"
592
+ });
593
+ this.events.fire("error", event);
594
+ if (callback) {
595
+ callback(event);
596
+ }
597
+ return;
598
+ }
599
+
600
+ var newsSub = {
601
+ callback: callback,
602
+ mimetype: this.format,
603
+ id: [],
604
+ result: {
605
+ newsFilters: [],
606
+ rejectedNewsFilters: [],
607
+ unentitledNewsFilters: []
608
+ }
609
+ };
610
+ //check for empty filters
611
+ if (newsFilters.length === 0) {
612
+ callback(null, newsSub.result);
613
+ }
614
+ var request = this.buildNewsSubscribeRequest(newsFilters, newsSub, _streamerApi.messages.control.Action.SUBSCRIBE, opts);
615
+
616
+ var id = this.requestid.next();
617
+ this.pendingNewsSubscriptions[id] = newsSub;
618
+
619
+ request.id = id;
620
+
621
+ this.send(request);
622
+ };
623
+
624
+ Stream.prototype.subUnsubAlerts = function subUnsubAlerts(operation, optsOrCallback, callbackOrNothing) {
625
+
626
+ var opts = optsOrCallback && typeof optsOrCallback !== "function" ? optsOrCallback : null;
627
+ var callback = callbackOrNothing ? callbackOrNothing : optsOrCallback && typeof optsOrCallback === "function" ? optsOrCallback : null;
628
+
629
+ if (this.isClosed()) {
630
+ var event = events.error("Stream is disconnected", {
631
+ code: -1,
632
+ reason: "Already disconnected"
633
+ });
634
+ this.events.fire("error", event);
635
+ return;
636
+ }
637
+
638
+ var subscription = {
639
+ id: [],
640
+ mimetype: this.format,
641
+ callback: callback,
642
+ result: {
643
+ operation: ""
644
+ }
645
+ };
646
+
647
+ var request = this.buildAlertsSubUnsubRequest(operation, subscription);
648
+ var id = this.requestid.next();
649
+ subscription.id.push(id);
650
+ this.pendingAlertSubscription[id] = subscription;
651
+ request.id = id;
652
+
653
+ this.send(request);
654
+ };
655
+
656
+ Stream.prototype.subscribeTrade = function subscribeTrade(operation, optsOrCallback, callbackOrNothing) {
657
+ var opts = optsOrCallback && typeof optsOrCallback !== "function" ? optsOrCallback : null;
658
+ var callback = callbackOrNothing ? callbackOrNothing : optsOrCallback && typeof optsOrCallback === "function" ? optsOrCallback : null;
659
+
660
+ if (this.isClosed()) {
661
+ var event = events.error("Stream is disconnected", {
662
+ code: -1,
663
+ reason: "Already disconnected"
664
+ });
665
+ this.events.fire("error", event);
666
+ return;
667
+ }
668
+
669
+ var tradeSub = {
670
+ id: [],
671
+ mimetype: this.format,
672
+ callback: callback,
673
+ result: {
674
+ operation: ""
675
+ }
676
+ };
677
+
678
+ var request = this.buildTradeSubscribeRequest(operation, tradeSub);
679
+ var id = this.requestid.next();
680
+ tradeSub.id.push(id);
681
+ this.pendingTradeSubscription[id] = tradeSub;
682
+ request.id = id;
683
+
684
+ this.send(request);
685
+ };
686
+
579
687
  Stream.prototype.getSessionStats = function getSessionStats() {
580
688
  if (this.isClosed()) {
581
689
  var event = events.error("Stream is disconnected", {
@@ -589,6 +697,54 @@ var Stream = function () {
589
697
  this.send(msg);
590
698
  };
591
699
 
700
+ Stream.prototype.cmdFilterRefreshNews = function cmdFilterRefreshNews(callbackOrNothing) {
701
+ var callback = callbackOrNothing ? callbackOrNothing : optsOrCallback && typeof optsOrCallback === "function" ? optsOrCallback : null;
702
+
703
+ if (this.isClosed()) {
704
+ var event = events.error("Stream is disconnected", {
705
+ code: -1,
706
+ reason: "Already disconnected"
707
+ });
708
+ this.events.fire("error", event);
709
+ if (callback) {
710
+ callback(event);
711
+ }
712
+ return;
713
+ }
714
+
715
+ var newsCmdFilterRefresh = {
716
+ callback: callback,
717
+ mimetype: this.format
718
+ };
719
+
720
+ var request = this.buildNewsCommandRequest(newsCmdFilterRefresh, 'NEWSCMDFILTERREFRESH');
721
+ this.send(request);
722
+ };
723
+
724
+ Stream.prototype.cmdFilterNews = function cmdFilterNews(callbackOrNothing) {
725
+ var callback = callbackOrNothing ? callbackOrNothing : optsOrCallback && typeof optsOrCallback === "function" ? optsOrCallback : null;
726
+
727
+ if (this.isClosed()) {
728
+ var event = events.error("Stream is disconnected", {
729
+ code: -1,
730
+ reason: "Already disconnected"
731
+ });
732
+ this.events.fire("error", event);
733
+ if (callback) {
734
+ callback(event);
735
+ }
736
+ return;
737
+ }
738
+
739
+ var newsCmdFilter = {
740
+ callback: callback,
741
+ mimetype: this.format
742
+ };
743
+
744
+ var request = this.buildNewsCommandRequest(newsCmdFilter, 'NEWSCMDFILTER');
745
+ this.send(request);
746
+ };
747
+
592
748
  Stream.prototype.unsubscribe = function unsubscribe(symbols, types, optsOrCallback, callbackOrNothing) {
593
749
  var _this4 = this;
594
750
 
@@ -690,6 +846,49 @@ var Stream = function () {
690
846
  });
691
847
  };
692
848
 
849
+ Stream.prototype.unsubscribeNews = function unsubscribeNews(newsFilters, optsOrCallback, callbackOrNothing) {
850
+ newsFilters = Array.isArray(newsFilters) ? newsFilters : [newsFilters];
851
+
852
+ var opts = optsOrCallback && typeof optsOrCallback !== "function" ? optsOrCallback : null;
853
+ var callback = callbackOrNothing ? callbackOrNothing : optsOrCallback && typeof optsOrCallback === "function" ? optsOrCallback : null;
854
+
855
+ if (this.isClosed()) {
856
+ var event = events.error("Stream is disconnected", {
857
+ code: -1,
858
+ reason: "Already disconnected"
859
+ });
860
+ this.events.fire("error", event);
861
+ if (callback) {
862
+ callback(event);
863
+ }
864
+ return;
865
+ }
866
+
867
+ var unsubscription = {
868
+ callback: callback,
869
+ mimetype: this.format,
870
+ id: [],
871
+ result: {
872
+ unsubscribed: []
873
+ }
874
+ };
875
+
876
+ if (newsFilters.length === 0) {
877
+ if (callback) {
878
+ callback(null, unsubscription.result);
879
+ }
880
+ }
881
+
882
+ var request = this.buildNewsSubscribeRequest(newsFilters, unsubscription, _streamerApi.messages.control.Action.UNSUBSCRIBE, opts);
883
+
884
+ var id = this.requestid.next();
885
+ unsubscription.id.push(id);
886
+ this.pendingNewsUnsubscriptions[id] = unsubscription;
887
+ request.id = id;
888
+
889
+ this.send(request);
890
+ };
891
+
693
892
  Stream.prototype._handlejsonmsg = function _handlejsonmsg(msg) {
694
893
  if ((0, _streamerUtils.iscontrolmessage)(msg)) {
695
894
  this.handlectrlmsg(msg);
@@ -752,6 +951,38 @@ var Stream = function () {
752
951
  return msg;
753
952
  };
754
953
 
954
+ Stream.prototype.buildNewsSubscribeRequest = function buildNewsSubscribeRequest(newsFilters, sub, action, opts) {
955
+ var msg = new _streamerApi.messages.control.NewsSubscribeMessage();
956
+ msg.action = action;
957
+ msg.newsFilters = newsFilters;
958
+ msg.mimetype = sub.mimetype;
959
+ if (opts && opts.skipHeavyInitialLoad) {
960
+ msg.skipHeavyInitialLoad = opts.skipHeavyInitialLoad === '0' ? false : true;
961
+ }
962
+ return msg;
963
+ };
964
+
965
+ Stream.prototype.buildAlertsSubUnsubRequest = function buildAlertsSubUnsubRequest(opr, subscription) {
966
+ var msg = new _streamerApi.messages.control.AlertsSubUnsubMessage();
967
+ msg.operation = opr;
968
+ msg.mimetype = subscription.mimetype;
969
+ return msg;
970
+ };
971
+
972
+ Stream.prototype.buildTradeSubscribeRequest = function buildTradeSubscribeRequest(operation, sub) {
973
+ var msg = new _streamerApi.messages.control.TradeSubscribeMessage();
974
+ msg.operation = operation;
975
+ msg.mimetype = sub.mimetype;
976
+ return msg;
977
+ };
978
+
979
+ Stream.prototype.buildNewsCommandRequest = function buildNewsCommandRequest(sub, newsAction) {
980
+ var msg = new _streamerApi.messages.control.NewsCommandMessage();
981
+ msg.newsAction = newsAction;
982
+ msg.mimetype = sub.mimetype;
983
+ return msg;
984
+ };
985
+
755
986
  Stream.prototype._getUpdatedNumberOfEntitlements = function _getUpdatedNumberOfEntitlements(numberOfSubscriptionTypes, currentApproximateNumberOfEntitlements, symbol, isSubscribeToOrderbook) {
756
987
  var result = currentApproximateNumberOfEntitlements;
757
988
  if (isSubscribeToOrderbook && symbol.endsWith(CONSOLIDATED_SYMBOL_SUFFIX)) {
@@ -775,12 +1006,30 @@ var Stream = function () {
775
1006
  case _streamerApi.messages.MessageTypeNames.ctrl.EXCHANGE_RESPONSE:
776
1007
  this.onExchangeSubscribeResponse(msg);
777
1008
  break;
1009
+ case _streamerApi.messages.MessageTypeNames.ctrl.NEWS_SUBSCRIBE_RESPONSE:
1010
+ this.onNewsSubscribeResponse(msg);
1011
+ break;
1012
+ case _streamerApi.messages.MessageTypeNames.ctrl.ALERTS_SUBUNSUB_RESPONSE:
1013
+ this.onAlertsSubUnsubResponse(msg);
1014
+ break;
1015
+ case _streamerApi.messages.MessageTypeNames.ctrl.TRADE_SUBSCRIBE_RESPONSE:
1016
+ this.onTradeSubscribeResponse(msg);
1017
+ break;
778
1018
  case _streamerApi.messages.MessageTypeNames.ctrl.UNSUBSCRIBE_RESPONSE:
779
1019
  this.onUnsubscribeResponse(msg);
780
1020
  break;
781
1021
  case _streamerApi.messages.MessageTypeNames.ctrl.EXCHANGE_UNSUBSCRIBE_RESPONSE:
782
1022
  this.onExchangeUnsubscribeResponse(msg);
783
1023
  break;
1024
+ case _streamerApi.messages.MessageTypeNames.ctrl.NEWS_UNSUBSCRIBE_RESPONSE:
1025
+ this.onNewsUnsubscribeResponse(msg);
1026
+ break;
1027
+ case _streamerApi.messages.MessageTypeNames.ctrl.NEWS_CMD_FILTER_REFRESH_RESPONSE:
1028
+ this.onNewsCmdFilterRefreshResponse(msg);
1029
+ break;
1030
+ case _streamerApi.messages.MessageTypeNames.ctrl.NEWS_CMD_FILTER_RESPONSE:
1031
+ this.onNewsCmdFilterResponse(msg);
1032
+ break;
784
1033
  case _streamerApi.messages.MessageTypeNames.ctrl.CONNECT_RESPONSE:
785
1034
  this.onConnectResponse(msg);
786
1035
  break;
@@ -930,6 +1179,236 @@ var Stream = function () {
930
1179
  }
931
1180
  };
932
1181
 
1182
+ Stream.prototype.onNewsSubscribeResponse = function onNewsSubscribeResponse(msg) {
1183
+ var newsSub = this.pendingNewsSubscriptions[msg.__id];
1184
+ var callback = newsSub.callback;
1185
+
1186
+ (0, _utils.removeFromArray)(newsSub.id, msg.__id);
1187
+ delete this.pendingNewsSubscriptions[msg.__id];
1188
+
1189
+ var result = newsSub.result;
1190
+
1191
+ console.log(msg);
1192
+ if (msg.code != 200) {
1193
+ var event = events.error("Error subscribing to news", {
1194
+ code: msg.code,
1195
+ reason: msg.reason
1196
+ });
1197
+ this.events.fire("error", event);
1198
+ if (callback) {
1199
+ newsSub.callback(event);
1200
+ }
1201
+ return;
1202
+ }
1203
+ if (msg.newsFilters) {
1204
+ for (var _iterator4 = msg.newsFilters, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
1205
+ var _ref4;
1206
+
1207
+ if (_isArray4) {
1208
+ if (_i4 >= _iterator4.length) break;
1209
+ _ref4 = _iterator4[_i4++];
1210
+ } else {
1211
+ _i4 = _iterator4.next();
1212
+ if (_i4.done) break;
1213
+ _ref4 = _i4.value;
1214
+ }
1215
+
1216
+ var newsFilter = _ref4;
1217
+
1218
+ result.newsFilters.push(newsFilter);
1219
+ }
1220
+ }
1221
+ if (msg.rejectedNewsFilters) {
1222
+ for (var _iterator5 = msg.rejectedNewsFilters, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
1223
+ var _ref5;
1224
+
1225
+ if (_isArray5) {
1226
+ if (_i5 >= _iterator5.length) break;
1227
+ _ref5 = _iterator5[_i5++];
1228
+ } else {
1229
+ _i5 = _iterator5.next();
1230
+ if (_i5.done) break;
1231
+ _ref5 = _i5.value;
1232
+ }
1233
+
1234
+ var rejectedFilter = _ref5;
1235
+
1236
+ result.rejectedNewsFilters.push(rejectedFilter);
1237
+ }
1238
+ }
1239
+ if (msg.unentitledNewsFilters) {
1240
+ for (var _iterator6 = msg.unentitledNewsFilters, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {
1241
+ var _ref6;
1242
+
1243
+ if (_isArray6) {
1244
+ if (_i6 >= _iterator6.length) break;
1245
+ _ref6 = _iterator6[_i6++];
1246
+ } else {
1247
+ _i6 = _iterator6.next();
1248
+ if (_i6.done) break;
1249
+ _ref6 = _i6.value;
1250
+ }
1251
+
1252
+ var unentitledFilter = _ref6;
1253
+
1254
+ result.unentitledNewsFilters.push(unentitledFilter);
1255
+ }
1256
+ }
1257
+
1258
+ if (newsSub.id.length === 0) {
1259
+ if (callback) {
1260
+ callback(null, newsSub.result);
1261
+ }
1262
+ }
1263
+ };
1264
+
1265
+ Stream.prototype.onAlertsSubUnsubResponse = function onAlertsSubUnsubResponse(msg) {
1266
+ var alertsSub = this.pendingAlertSubscription[msg.__id];
1267
+ var callback = alertsSub.callback;
1268
+
1269
+ (0, _utils.removeFromArray)(alertsSub.id, msg.__id);
1270
+ delete this.pendingAlertSubscription[msg.__id];
1271
+
1272
+ console.log(msg);
1273
+ if (msg.code != 200 && !alertsSub.failed) {
1274
+ alertsSub.failed = true;
1275
+ var event = events.error("Error subscribing", {
1276
+ code: msg.code,
1277
+ reason: msg.reason
1278
+ });
1279
+ this.events.fire("error", event);
1280
+ if (callback) {
1281
+ alertsSub.callback(event);
1282
+ }
1283
+ return;
1284
+ }
1285
+
1286
+ var result = alertsSub.result;
1287
+
1288
+ if (msg.operation) {
1289
+ this.log.debug('Alerts ' + msg.operation);
1290
+ result.operation = msg.operation;
1291
+ }
1292
+
1293
+ if (alertsSub.id.length === 0) {
1294
+ if (callback) {
1295
+ callback(null, alertsSub.result);
1296
+ }
1297
+ }
1298
+ };
1299
+
1300
+ Stream.prototype.onTradeSubscribeResponse = function onTradeSubscribeResponse(msg) {
1301
+ var tradeSub = this.pendingTradeSubscription[msg.__id];
1302
+ var callback = tradeSub.callback;
1303
+
1304
+ (0, _utils.removeFromArray)(tradeSub.id, msg.__id);
1305
+ delete this.pendingTradeSubscription[msg.__id];
1306
+
1307
+ console.log(msg);
1308
+ if (msg.code != 200 && !tradeSub.failed) {
1309
+ tradeSub.failed = true;
1310
+ var event = events.error("Error subscribing", {
1311
+ code: msg.code,
1312
+ reason: msg.reason
1313
+ });
1314
+ this.events.fire("error", event);
1315
+ if (callback) {
1316
+ tradeSub.callback(event);
1317
+ }
1318
+ return;
1319
+ }
1320
+
1321
+ var result = tradeSub.result;
1322
+
1323
+ if (msg.operation) {
1324
+ this.log.debug('Trade ' + msg.operation);
1325
+ result.operation = msg.operation;
1326
+ }
1327
+
1328
+ if (tradeSub.id.length === 0) {
1329
+ if (callback) {
1330
+ callback(null, tradeSub.result);
1331
+ }
1332
+ }
1333
+ };
1334
+
1335
+ Stream.prototype.onNewsUnsubscribeResponse = function onNewsUnsubscribeResponse(msg) {
1336
+ var newsUnsub = this.pendingNewsUnsubscriptions[msg.__id];
1337
+ var callback = newsUnsub.callback;
1338
+
1339
+ (0, _utils.removeFromArray)(newsUnsub.id, msg.__id);
1340
+ delete this.pendingNewsUnsubscriptions[msg.__id];
1341
+
1342
+ console.log("msg", msg);
1343
+ var result = newsUnsub.result;
1344
+
1345
+ if (msg.code != 200 && !newsUnsub.failed) {
1346
+ newsUnsub.failed = true;
1347
+ var event = events.error("Error unsubscribing to news", {
1348
+ code: msg.code,
1349
+ reason: msg.reason
1350
+ });
1351
+ this.events.fire("error", event);
1352
+ if (callback) {
1353
+ newsUnsub.callback(event);
1354
+ }
1355
+ return;
1356
+ }
1357
+
1358
+ if (msg.newsFilters) {
1359
+ for (var _iterator7 = msg.newsFilters, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) {
1360
+ var _ref7;
1361
+
1362
+ if (_isArray7) {
1363
+ if (_i7 >= _iterator7.length) break;
1364
+ _ref7 = _iterator7[_i7++];
1365
+ } else {
1366
+ _i7 = _iterator7.next();
1367
+ if (_i7.done) break;
1368
+ _ref7 = _i7.value;
1369
+ }
1370
+
1371
+ var newsFilter = _ref7;
1372
+
1373
+ result.unsubscribed.push(newsFilter);
1374
+ }
1375
+ }
1376
+
1377
+ if (newsUnsub.id.length === 0) {
1378
+ if (callback) {
1379
+ callback(null, newsUnsub.result);
1380
+ }
1381
+ }
1382
+ };
1383
+
1384
+ Stream.prototype.onNewsCmdFilterRefreshResponse = function onNewsCmdFilterRefreshResponse(msg) {
1385
+ console.log("msg", msg);
1386
+ if (msg.code != 200) {
1387
+ var event = events.error("Error Refreshing News Filters", {
1388
+ code: msg.code,
1389
+ reason: msg.reason
1390
+ });
1391
+ this.events.fire("error", event);
1392
+ return;
1393
+ }
1394
+
1395
+ this.events.fire("msg", msg);
1396
+ };
1397
+
1398
+ Stream.prototype.onNewsCmdFilterResponse = function onNewsCmdFilterResponse(msg) {
1399
+ console.log("msg", msg);
1400
+ if (msg.code != 200) {
1401
+ var event = events.error("Error Getting News Filters Status", {
1402
+ code: msg.code,
1403
+ reason: msg.reason
1404
+ });
1405
+ this.events.fire("error", event);
1406
+ return;
1407
+ }
1408
+
1409
+ this.events.fire("filter status", msg);
1410
+ };
1411
+
933
1412
  Stream.prototype.onUnsubscribeResponse = function onUnsubscribeResponse(msg) {
934
1413
  var unsubscription = this.pendingUnsubscriptions[msg.__id];
935
1414
  var callback = unsubscription.callback;
@@ -1574,7 +2053,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
1574
2053
  attachHeadersAsQueryString: true,
1575
2054
  executeCallbackBeforeReconnect: false,
1576
2055
  readyState: 0,
1577
- withCredentials: false,
2056
+ withCredentials: true,
1578
2057
  trackMessageLength: false,
1579
2058
  messageDelimiter: '|',
1580
2059
  connectTimeout: -1,
@@ -5156,6 +5635,15 @@ fmt.Formatter = function () {
5156
5635
  this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.EXCHANGE_SUBSCRIBE] = this._fmtexchangesubscribe;
5157
5636
  this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.EXCHANGE_RESPONSE] = this._fmtexchangesubscriberesponse;
5158
5637
  this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.EXCHANGE_UNSUBSCRIBE_RESPONSE] = this._fmtexchangeunsubscriberesponse;
5638
+ this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.ALERTS_SUBUNSUB] = this._fmtalertsubunsub;
5639
+ this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.ALERTS_SUBUNSUB_RESPONSE] = this._fmtalertsubunsubresponse;
5640
+ this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.NEWS_SUBSCRIBE] = this._fmtnewssubscribe;
5641
+ this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.NEWS_SUBSCRIBE_RESPONSE] = this._fmtnewssubscriberesponse;
5642
+ this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.TRADE_SUBSCRIBE] = this._fmttradesubscribe;
5643
+ this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.TRADE_SUBSCRIBE_RESPONSE] = this._fmttradesubscriberesponse;
5644
+ this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.NEWS_UNSUBSCRIBE_RESPONSE] = this._fmtnewsunsubscriberesponse;
5645
+ this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.NEWS_CMD_FILTER_REFRESH_RESPONSE] = this._fmtnewscmdfilterrefreshresponse;
5646
+ this.formatters[_streamerApi.messages.MessageTypeNames.ctrl.NEWS_CMD_FILTER_RESPONSE] = this._fmtnewscmdfilterresponse;
5159
5647
 
5160
5648
  //
5161
5649
  this.formatters[_streamerApi.messages.MessageTypeNames.data.QUOTE] = this._fmtquote;
@@ -5175,6 +5663,8 @@ fmt.Formatter = function () {
5175
5663
  this.formatters[_streamerApi.messages.MessageTypeNames.data.IVGREEKS] = this._fmtivgreeks;
5176
5664
  this.formatters[_streamerApi.messages.MessageTypeNames.data.IMBALANCESTATUS] = this._fmtimbalancestatus;
5177
5665
  this.formatters[_streamerApi.messages.MessageTypeNames.data.ALERT] = this._fmtalert;
5666
+ this.formatters[_streamerApi.messages.MessageTypeNames.data.NEWS] = this._fmtnews;
5667
+ this.formatters[_streamerApi.messages.MessageTypeNames.data.TRADENOTIFICATION] = this._fmttradeNotification;
5178
5668
  };
5179
5669
 
5180
5670
  fmt.Formatter._UNKOWNTYPE = '__UNKNOWN__';
@@ -5553,6 +6043,8 @@ fmt.Formatter.prototype._fmtbookorder = function (val) {
5553
6043
  s.sep();
5554
6044
  s.append(val.locateCode);
5555
6045
  s.sep();
6046
+ s.append(val.excode);
6047
+ s.sep();
5556
6048
  s.append(val.orderID);
5557
6049
  s.sep();
5558
6050
  s.append(val.orderReference);
@@ -5621,6 +6113,8 @@ fmt.Formatter.prototype._fmtsymbolinfo = function (val) {
5621
6113
  s.append(val.pqe);
5622
6114
  s.sep();
5623
6115
  s.append(val.caveatEmptor);
6116
+ s.sep();
6117
+ s.append(val.boardLotSize);
5624
6118
  return s.toString();
5625
6119
  };
5626
6120
 
@@ -5691,6 +6185,60 @@ fmt.Formatter.prototype._fmtalert = function (val) {
5691
6185
  return s.toString();
5692
6186
  };
5693
6187
 
6188
+ fmt.Formatter.prototype._fmtnews = function (val) {
6189
+ var s = new fmt.StringBuilder();
6190
+ s.append('N');
6191
+ s.sep();
6192
+ s.append(val.storyId);
6193
+ s.sep();
6194
+ s.datetime(val.timestamp);
6195
+ s.sep();
6196
+ s.append(val.storyUrl);
6197
+ s.sep();
6198
+ s.append(val.epochtime);
6199
+ s.sep();
6200
+ s.append(val.headline);
6201
+ s.sep();
6202
+ s.append(val.source);
6203
+ s.sep();
6204
+ s.append(val.sourceId);
6205
+ s.sep();
6206
+ s.append(val.lang);
6207
+ s.sep();
6208
+ s.append(val.symbol);
6209
+ s.sep();
6210
+ s.append(val.excode);
6211
+ s.sep();
6212
+ s.append(val.exgroup);
6213
+ s.sep();
6214
+ s.append(val.topic);
6215
+ s.sep();
6216
+ s.append(val.thumbnailUrl);
6217
+ s.sep();
6218
+ s.append(val.newsUrl);
6219
+ s.sep();
6220
+ s.append(val.videoUrl);
6221
+ s.sep();
6222
+ s.append(val.videoImageUrl);
6223
+
6224
+ return s.toString();
6225
+ };
6226
+
6227
+ fmt.Formatter.prototype._fmttradeNotification = function (val) {
6228
+ var s = new fmt.StringBuilder();
6229
+ s.append("TN");
6230
+ s.sep();
6231
+ s.append(val.accountId);
6232
+ s.sep();
6233
+ s.append(val.brokerId);
6234
+ s.sep();
6235
+ s.append(val.message);
6236
+ s.sep();
6237
+ s.append(val.eventType);
6238
+
6239
+ return s.toString();
6240
+ };
6241
+
5694
6242
  fmt.Formatter.prototype._fmtheartbeat = function (val) {
5695
6243
  var s = new fmt.StringBuilder();
5696
6244
  s.append("HEARBEAT");
@@ -5713,6 +6261,27 @@ fmt.Formatter.prototype._fmtexchangesubscribe = function (val) {
5713
6261
  return s.toString();
5714
6262
  };
5715
6263
 
6264
+ fmt.Formatter.prototype._fmtalertsubunsub = function (val) {
6265
+ var s = new fmt.StringBuilder();
6266
+ s.append('ALERT');
6267
+ // TODO
6268
+ return s.toString();
6269
+ };
6270
+
6271
+ fmt.Formatter.prototype._fmttradesubscribe = function (val) {
6272
+ var s = new fmt.StringBuilder();
6273
+ s.append('TRADE');
6274
+ // TODO
6275
+ return s.toString();
6276
+ };
6277
+
6278
+ fmt.Formatter.prototype._fmtnewssubscribe = function (val) {
6279
+ var s = new fmt.StringBuilder();
6280
+ s.append('NEWS SUBSCRIBE');
6281
+ // TODO
6282
+ return s.toString();
6283
+ };
6284
+
5716
6285
  fmt.Formatter.prototype._fmtstats = function (val) {
5717
6286
  var s = new fmt.StringBuilder();
5718
6287
  s.append('STATS');
@@ -5737,6 +6306,56 @@ fmt.Formatter.prototype._fmtexchangesubscriberesponse = function (val) {
5737
6306
  return s.toString();
5738
6307
  };
5739
6308
 
6309
+ fmt.Formatter.prototype._fmtalertsubunsubresponse = function (val) {
6310
+ var s = new fmt.StringBuilder();
6311
+ s.append('ALERT SUBSCRIBED');
6312
+ // TODO
6313
+ return s.toString();
6314
+ };
6315
+
6316
+ fmt.Formatter.prototype._fmttradesubscriberesponse = function (val) {
6317
+ var s = new fmt.StringBuilder();
6318
+ s.append('TRADE SUBSCRIBED');
6319
+ // TODO
6320
+ return s.toString();
6321
+ };
6322
+
6323
+ fmt.Formatter.prototype._fmtnewssubscriberesponse = function (val) {
6324
+ var s = new fmt.StringBuilder();
6325
+ s.append('NEWS SUBSCRIBED');
6326
+ s.sep();
6327
+ this.__baseresponse(val, s);
6328
+ // TODO
6329
+ return s.toString();
6330
+ };
6331
+
6332
+ fmt.Formatter.prototype._fmtnewsunsubscriberesponse = function (val) {
6333
+ var s = new fmt.StringBuilder();
6334
+ s.append('NEWS UNSUBSCRIBED');
6335
+ s.sep();
6336
+ this.__baseresponse(val, s);
6337
+ // TODO
6338
+ return s.toString();
6339
+ };
6340
+
6341
+ fmt.Formatter.prototype._fmtnewscmdfilterrefreshresponse = function (val) {
6342
+ var s = new fmt.StringBuilder();
6343
+ s.append('NEWS COMMAND FILTER REFRESH');
6344
+ s.sep();
6345
+ this.__baseresponse(val, s);
6346
+ // TODO
6347
+ return s.toString();
6348
+ };
6349
+
6350
+ fmt.Formatter.prototype._fmtnewscmdfilterresponse = function (val) {
6351
+ var s = new fmt.StringBuilder();
6352
+ s.append('NEWS COMMAND FILTER');
6353
+ s.sep();
6354
+ this.__baseresponse(val, s);
6355
+ // TODO
6356
+ return s.toString();
6357
+ };
6358
+
5740
6359
  fmt.Formatter.prototype._fmtunsubscriberesponse = function (val) {
5741
6360
  var s = new fmt.StringBuilder();
5742
6361
  s.append('UN-SUBSCRIBED');
@@ -9009,6 +9628,7 @@ var BookOrderDecoder = function () {
9009
9628
  out.display = def.BookOrderFlags.isDisplay(flags);
9010
9629
  out.orderChangeType = _Qitch2["default"].bookOrderChangeType(src, offset + def.CHANGE_TYPE_OFFSET);
9011
9630
  out.orderReference = _Qitch2["default"].orderreference(src, offset + def.ORDER_REFERENCE_OFFSET);
9631
+ out.excode = _Qitch2["default"].excode(src, offset + def.EXCODE_OFFSET);
9012
9632
  return out;
9013
9633
  };
9014
9634
 
@@ -9219,7 +9839,7 @@ var IntervalDecoder = function () {
9219
9839
  out.low = _Qitch2["default"].dec8double(src, offset + def.LOW_OFFSET);
9220
9840
  out.high = _Qitch2["default"].dec8double(src, offset + def.HIGH_OFFSET);
9221
9841
  out.last = _Qitch2["default"].dec8double(src, offset + def.LAST_OFFSET);
9222
- out.volume = _Qitch2["default"].int64(src, offset + def.VOLUME_OFFSET);
9842
+ out.volume = _Qitch2["default"].dec8double(src, offset + def.LONGDECIMALVOLUME_OFFSET);
9223
9843
  out.startTime = _Qitch2["default"].timestamp(src, offset + def.STARTTIME_OFFSET);
9224
9844
  out.openTime = _Qitch2["default"].timestamp(src, offset + def.OPENTIME_OFFSET);
9225
9845
  out.lastTime = _Qitch2["default"].timestamp(src, offset + def.LASTTIME_OFFSET);
@@ -9229,7 +9849,7 @@ var IntervalDecoder = function () {
9229
9849
  };
9230
9850
 
9231
9851
  IntervalDecoder.prototype._vwap = function _vwap(interval) {
9232
- if (interval.tradeValue != null && interval.volume != null && _jsbi2["default"].toNumber(interval.volume) !== 0) {
9852
+ if (interval.tradeValue != null && interval.volume != null && interval.volume.toNumber() !== 0) {
9233
9853
  return new _bignumber2["default"](interval.tradeValue.toString()).dividedBy(interval.volume);
9234
9854
  }
9235
9855
  return null;
@@ -9389,9 +10009,9 @@ var MMQuoteDecoder = function () {
9389
10009
  out.timestamp = _Qitch2["default"].timestamp(src, offset + def.TIMESTAMP_OFFSET);
9390
10010
  out.locateCode = _Qitch2["default"].locatecode(src, offset + def.SYMBOL_OFFSET);
9391
10011
  out.bidPrice = _Qitch2["default"].dec8double(src, offset + def.BIDPRICE_OFFSET);
9392
- out.bidSize = _Qitch2["default"].int32(src, offset + def.BIDSIZE_OFFSET);
10012
+ out.bidSize = _Qitch2["default"].dec8double(src, offset + def.DECIMALBIDSIZE_OFFSET);
9393
10013
  out.askPrice = _Qitch2["default"].dec8double(src, offset + def.ASKPRICE_OFFSET);
9394
- out.askSize = _Qitch2["default"].int32(src, offset + def.ASKSIZE_OFFSET);
10014
+ out.askSize = _Qitch2["default"].dec8double(src, offset + def.DECIMALASKSIZE_OFFSET);
9395
10015
  out.marketMakerID = _Qitch2["default"].mmid(src, offset + def.MMID_OFFSET);
9396
10016
  out.indicator = _Qitch2["default"].asciichar(src, offset + def.INDICATOR_OFFSET);
9397
10017
  out.bidChange = _Qitch2["default"].dec8double(src, offset + def.BIDCHANGE_OFFSET);
@@ -9501,10 +10121,10 @@ var PricedataDecoder = function () {
9501
10121
  out.open = _Qitch2["default"].dec8double(src, offset + def.OPEN_OFFSET);
9502
10122
  out.high = _Qitch2["default"].dec8double(src, offset + def.HIGH_OFFSET);
9503
10123
  out.low = _Qitch2["default"].dec8double(src, offset + def.LOW_OFFSET);
9504
- out.accumulatedVolume = _Qitch2["default"].int64(src, offset + def.ACCUMULATEDVOLUME_OFFSET);
10124
+ out.accumulatedVolume = _Qitch2["default"].dec8double(src, offset + def.DECIMALACCUMULATEDVOLUME_OFFSET);
9505
10125
  out.lastTradeTime = _Qitch2["default"].timestamp(src, offset + def.LASTTRADETIME_OFFSET);
9506
10126
  out.tick = _Qitch2["default"].tick(src, offset + def.TICK_OFFSET);
9507
- out.lastTradeSize = _Qitch2["default"].int32(src, offset + def.LASTTRADESIZE_OFFSET);
10127
+ out.lastTradeSize = _Qitch2["default"].dec8double(src, offset + def.DECIMALLASTTRADESIZE_OFFSET);
9508
10128
  out.close = _Qitch2["default"].dec8double(src, offset + def.CLOSE_OFFSET);
9509
10129
  out.tradeCount = _Qitch2["default"].int64(src, offset + def.TRADECOUNT_OFFSET);
9510
10130
  out.accumulatedPrice = null; // @Deprecatd
@@ -9519,12 +10139,12 @@ var PricedataDecoder = function () {
9519
10139
 
9520
10140
  out.preMarketTradeTime = _Qitch2["default"].timestamp(src, offset + def.PREMARKETTRADETIME_OFFSET);
9521
10141
  out.preMarketLast = _Qitch2["default"].dec8double(src, offset + def.PREMARKETLASTPRICE_OFFSET);
9522
- out.preMarketVolume = _Qitch2["default"].int64(src, offset + def.PREMARKETVOLUME_OFFSET);
10142
+ out.preMarketVolume = _Qitch2["default"].dec8double(src, offset + def.DECIMALPREMARKETVOLUME_OFFSET);
9523
10143
  out.preMarketChange = _Qitch2["default"].dec8double(src, offset + def.PREMARKETCHANGE_OFFSET);
9524
10144
  out.preMarketPercentChange = this._premarketPercentChange(out);
9525
10145
  out.postMarketTradeTime = _Qitch2["default"].timestamp(src, offset + def.POSTMARKETTRADETIME_OFFSET);
9526
10146
  out.postMarketLast = _Qitch2["default"].dec8double(src, offset + def.POSTMARKETLASTPRICE_OFFSET);
9527
- out.postMarketVolume = _Qitch2["default"].int64(src, offset + def.POSTMARKETVOLUME_OFFSET);
10147
+ out.postMarketVolume = _Qitch2["default"].dec8double(src, offset + def.DECIMALPOSTMARKETVOLUME_OFFSET);
9528
10148
  out.postMarketChange = _Qitch2["default"].dec8double(src, offset + def.POSTMARKETCHANGE_OFFSET);
9529
10149
  out.postMarketPercentChange = this._postmarketPercentChange(out);
9530
10150
  out.lastTradeExcode = _Qitch2["default"].excode(src, offset + def.LASTTRADEEXCODE_OFFSET);
@@ -9649,11 +10269,11 @@ var QuoteDecoder = function () {
9649
10269
  out.askCondition = _Qitch2["default"].asciichar(src, offset + def.ASKCONDITION_OFFSET);
9650
10270
  out.askExcode = _Qitch2["default"].excode(src, offset + def.ASKEXCODE_OFFSET);
9651
10271
  out.askPrice = _Qitch2["default"].dec8double(src, offset + def.ASKPRICE_OFFSET);
9652
- out.askSize = _Qitch2["default"].int32(src, offset + def.ASKSIZE_OFFSET);
10272
+ out.askSize = _Qitch2["default"].dec8double(src, offset + def.DECIMALASKSIZE_OFFSET);
9653
10273
  out.bidCondition = _Qitch2["default"].asciichar(src, offset + def.BIDCONDITION_OFFSET);
9654
10274
  out.bidExcode = _Qitch2["default"].excode(src, offset + def.BIDEXCODE_OFFSET);
9655
10275
  out.bidPrice = _Qitch2["default"].dec8double(src, offset + def.BIDPRICE_OFFSET);
9656
- out.bidSize = _Qitch2["default"].int32(src, offset + def.BIDSIZE_OFFSET);
10276
+ out.bidSize = _Qitch2["default"].dec8double(src, offset + def.DECIMALBIDSIZE_OFFSET);
9657
10277
  out.indicator = _Qitch2["default"].asciichar(src, offset + def.INDICATOR_OFFSET);
9658
10278
  out.sharesPerSizeUnit = _Qitch2["default"].int32(src, offset + def.SHARESPERSIZEUNIT_OFFSET);
9659
10279
  return out;
@@ -9707,6 +10327,7 @@ var SymbolInfoDecoder = function () {
9707
10327
  resultingMessage.regSHOStatus = _Qitch2["default"].asciichar(src, offset + def.REGSHOSTATUS_OFFSET);
9708
10328
  resultingMessage.pqe = _Qitch2["default"].sbyte(src, offset + def.PQE_OFFSET) > 0;
9709
10329
  resultingMessage.caveatEmptor = _Qitch2["default"].sbyte(src, offset + def.CAVEATEMPTOR_OFFSET) > 0;
10330
+ resultingMessage.boardLotSize = _Qitch2["default"].int32(src, offset + def.BOARDLOTSIZE_OFFSET);
9710
10331
 
9711
10332
  return resultingMessage;
9712
10333
  };
@@ -9801,7 +10422,7 @@ var TradeDecoder = function () {
9801
10422
  resultingMessage.timestamp = _Qitch2["default"].timestamp(src, offset + def.TIMESTAMP_OFFSET);
9802
10423
  resultingMessage.locateCode = _Qitch2["default"].locatecode(src, offset + def.SYMBOL_OFFSET);
9803
10424
  resultingMessage.price = _Qitch2["default"].dec8double(src, offset + def.PRICE_OFFSET);
9804
- resultingMessage.size = _Qitch2["default"].int32(src, offset + def.SIZE_OFFSET);
10425
+ resultingMessage.size = _Qitch2["default"].dec8double(src, offset + def.DECIMALSIZE_OFFSET);
9805
10426
  resultingMessage.indicator = _Qitch2["default"].asciichar(src, offset + def.INDICATOR_OFFSET);
9806
10427
  resultingMessage.tick = _Qitch2["default"].tick(src, offset + def.TICK_OFFSET);
9807
10428
  resultingMessage.accumulatedVolume = _Qitch2["default"].int64(src, offset + def.ACCUMULATEDVOLUME_OFFSET);
@@ -10109,7 +10730,7 @@ var LENGTH = exports.LENGTH = ORDER_REFERENCE_OFFSET + _QitchConstants.ORDER_REF
10109
10730
  "use strict";
10110
10731
 
10111
10732
  exports.__esModule = true;
10112
- exports.BookOrderFlags = exports.LENGTH = exports.ORDER_REFERENCE_OFFSET = exports.CHANGE_TYPE_OFFSET = exports.FLAGS_OFFSET = exports.LASTUPDATE_OFFSET = exports.SIZE_OFFSET = exports.PRICE_OFFSET = exports.SIDE_OFFSET = exports.ORDERID_OFFSET = exports.MMID_OFFSET = exports.SYMBOL_OFFSET = exports.TIMESTAMP_OFFSET = exports.TYPEID = undefined;
10733
+ exports.BookOrderFlags = exports.LENGTH = exports.EXCODE_OFFSET = exports.ORDER_REFERENCE_OFFSET = exports.CHANGE_TYPE_OFFSET = exports.FLAGS_OFFSET = exports.LASTUPDATE_OFFSET = exports.SIZE_OFFSET = exports.PRICE_OFFSET = exports.SIDE_OFFSET = exports.ORDERID_OFFSET = exports.MMID_OFFSET = exports.SYMBOL_OFFSET = exports.TIMESTAMP_OFFSET = exports.TYPEID = undefined;
10113
10734
 
10114
10735
  var _QitchConstants = require("../QitchConstants");
10115
10736
 
@@ -10128,7 +10749,8 @@ var LASTUPDATE_OFFSET = exports.LASTUPDATE_OFFSET = SIZE_OFFSET + _QitchConstant
10128
10749
  var FLAGS_OFFSET = exports.FLAGS_OFFSET = LASTUPDATE_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
10129
10750
  var CHANGE_TYPE_OFFSET = exports.CHANGE_TYPE_OFFSET = FLAGS_OFFSET + _QitchConstants.INT_LENGTH;
10130
10751
  var ORDER_REFERENCE_OFFSET = exports.ORDER_REFERENCE_OFFSET = CHANGE_TYPE_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10131
- var LENGTH = exports.LENGTH = ORDER_REFERENCE_OFFSET + _QitchConstants.ORDER_REFERENCE_LENGTH;
10752
+ var EXCODE_OFFSET = exports.EXCODE_OFFSET = ORDER_REFERENCE_OFFSET + _QitchConstants.ORDER_REFERENCE_LENGTH;
10753
+ var LENGTH = exports.LENGTH = EXCODE_OFFSET + _QitchConstants.EXCODE_LENGTH;
10132
10754
 
10133
10755
  var BookOrderFlags = exports.BookOrderFlags = function () {
10134
10756
  function BookOrderFlags() {
@@ -10301,7 +10923,7 @@ var LENGTH = exports.LENGTH = PRICEVARIATION_OFFSET + _QitchConstants.DOUBLE_LEN
10301
10923
  "use strict";
10302
10924
 
10303
10925
  exports.__esModule = true;
10304
- exports.LENGTH = exports.TRADEVALUE_OFFSET = exports.LASTTIME_OFFSET = exports.OPENTIME_OFFSET = exports.STARTTIME_OFFSET = exports.VOLUME_OFFSET = exports.LAST_OFFSET = exports.HIGH_OFFSET = exports.LOW_OFFSET = exports.OPEN_OFFSET = exports.SYMBOL_OFFSET = exports.TIMESTAMP_OFFSET = exports.TYPEID = undefined;
10926
+ exports.LENGTH = exports.LONGDECIMALVOLUME_OFFSET = exports.TRADEVALUE_OFFSET = exports.LASTTIME_OFFSET = exports.OPENTIME_OFFSET = exports.STARTTIME_OFFSET = exports.VOLUME_OFFSET = exports.LAST_OFFSET = exports.HIGH_OFFSET = exports.LOW_OFFSET = exports.OPEN_OFFSET = exports.SYMBOL_OFFSET = exports.TIMESTAMP_OFFSET = exports.TYPEID = undefined;
10305
10927
 
10306
10928
  var _QitchConstants = require("../QitchConstants");
10307
10929
 
@@ -10318,7 +10940,8 @@ var STARTTIME_OFFSET = exports.STARTTIME_OFFSET = VOLUME_OFFSET + _QitchConstant
10318
10940
  var OPENTIME_OFFSET = exports.OPENTIME_OFFSET = STARTTIME_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
10319
10941
  var LASTTIME_OFFSET = exports.LASTTIME_OFFSET = OPENTIME_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
10320
10942
  var TRADEVALUE_OFFSET = exports.TRADEVALUE_OFFSET = LASTTIME_OFFSET + _QitchConstants.TIMESTAMP_LENGTH;
10321
- var LENGTH = exports.LENGTH = TRADEVALUE_OFFSET + _QitchConstants.LONG_LENGTH;
10943
+ var LONGDECIMALVOLUME_OFFSET = exports.LONGDECIMALVOLUME_OFFSET = TRADEVALUE_OFFSET + _QitchConstants.LONG_LENGTH;
10944
+ var LENGTH = exports.LENGTH = LONGDECIMALVOLUME_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10322
10945
  }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],require("timers").setImmediate,require("timers").clearImmediate,"/lib/qitch/marketDataDefinition/IntervalDef.js","/lib/qitch/marketDataDefinition")
10323
10946
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],77:[function(require,module,exports){
10324
10947
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
@@ -10384,7 +11007,7 @@ LimitUpLimitDownFlags.prototype.ASK_NOT_EXECUTABLE = 0x2;
10384
11007
  "use strict";
10385
11008
 
10386
11009
  exports.__esModule = true;
10387
- exports.LENGTH = exports.SHARESPERSIZEUNIT_OFFSET = exports.ASKCHANGE_OFFSET = exports.BIDCHANGE_OFFSET = exports.INDICATOR_OFFSET = exports.MMID_OFFSET = exports.ASKSIZE_OFFSET = exports.ASKPRICE_OFFSET = exports.BIDSIZE_OFFSET = exports.BIDPRICE_OFFSET = exports.SYMBOL_OFFSET = exports.TIMESTAMP_OFFSET = exports.TYPEID = undefined;
11010
+ exports.LENGTH = exports.DECIMALASKSIZE_OFFSET = exports.DECIMALBIDSIZE_OFFSET = exports.SHARESPERSIZEUNIT_OFFSET = exports.ASKCHANGE_OFFSET = exports.BIDCHANGE_OFFSET = exports.INDICATOR_OFFSET = exports.MMID_OFFSET = exports.ASKSIZE_OFFSET = exports.ASKPRICE_OFFSET = exports.BIDSIZE_OFFSET = exports.BIDPRICE_OFFSET = exports.SYMBOL_OFFSET = exports.TIMESTAMP_OFFSET = exports.TYPEID = undefined;
10388
11011
 
10389
11012
  var _QitchConstants = require("../QitchConstants");
10390
11013
 
@@ -10401,7 +11024,9 @@ var INDICATOR_OFFSET = exports.INDICATOR_OFFSET = MMID_OFFSET + _QitchConstants.
10401
11024
  var BIDCHANGE_OFFSET = exports.BIDCHANGE_OFFSET = INDICATOR_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10402
11025
  var ASKCHANGE_OFFSET = exports.ASKCHANGE_OFFSET = BIDCHANGE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10403
11026
  var SHARESPERSIZEUNIT_OFFSET = exports.SHARESPERSIZEUNIT_OFFSET = ASKCHANGE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10404
- var LENGTH = exports.LENGTH = SHARESPERSIZEUNIT_OFFSET + _QitchConstants.INT_LENGTH;
11027
+ var DECIMALBIDSIZE_OFFSET = exports.DECIMALBIDSIZE_OFFSET = SHARESPERSIZEUNIT_OFFSET + _QitchConstants.INT_LENGTH;
11028
+ var DECIMALASKSIZE_OFFSET = exports.DECIMALASKSIZE_OFFSET = DECIMALBIDSIZE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
11029
+ var LENGTH = exports.LENGTH = DECIMALASKSIZE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10405
11030
  }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],require("timers").setImmediate,require("timers").clearImmediate,"/lib/qitch/marketDataDefinition/MMQuoteDef.js","/lib/qitch/marketDataDefinition")
10406
11031
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],80:[function(require,module,exports){
10407
11032
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
@@ -10436,7 +11061,7 @@ var LENGTH = exports.LENGTH = SELLBLOCKTRANSACTIONS_OFFSET + _QitchConstants.INT
10436
11061
  "use strict";
10437
11062
 
10438
11063
  exports.__esModule = true;
10439
- exports.PricedataFlags = exports.LENGTH = exports.LASTTRADEEXCODE_OFFSET = exports.POSTMARKETCHANGE_OFFSET = exports.POSTMARKETVOLUME_OFFSET = exports.POSTMARKETLASTPRICE_OFFSET = exports.POSTMARKETTRADETIME_OFFSET = exports.PREMARKETCHANGE_OFFSET = exports.PREMARKETVOLUME_OFFSET = exports.PREMARKETLASTPRICE_OFFSET = exports.PREMARKETTRADETIME_OFFSET = exports.TWAP_OFFSET = exports.VWAP_OFFSET = exports.FLAGS_OFFSET = exports.ACCUMULATEDTRADEVALUE_OFFSET = exports.TRADECOUNT_OFFSET = exports.CLOSE_OFFSET = exports.LASTTRADESIZE_OFFSET = exports.TICK_OFFSET = exports.LASTTRADETIME_OFFSET = exports.ACCUMULATEDVOLUME_OFFSET = exports.LOW_OFFSET = exports.HIGH_OFFSET = exports.OPEN_OFFSET = exports.PREVCLOSE_OFFSET = exports.LAST_OFFSET = exports.SYMBOL_OFFSET = exports.TIMESTAMP_OFFSET = exports.TYPEID = undefined;
11064
+ exports.PricedataFlags = exports.LENGTH = exports.DECIMALLASTTRADESIZE_OFFSET = exports.DECIMALPOSTMARKETVOLUME_OFFSET = exports.DECIMALPREMARKETVOLUME_OFFSET = exports.DECIMALACCUMULATEDVOLUME_OFFSET = exports.LASTTRADEEXCODE_OFFSET = exports.POSTMARKETCHANGE_OFFSET = exports.POSTMARKETVOLUME_OFFSET = exports.POSTMARKETLASTPRICE_OFFSET = exports.POSTMARKETTRADETIME_OFFSET = exports.PREMARKETCHANGE_OFFSET = exports.PREMARKETVOLUME_OFFSET = exports.PREMARKETLASTPRICE_OFFSET = exports.PREMARKETTRADETIME_OFFSET = exports.TWAP_OFFSET = exports.VWAP_OFFSET = exports.FLAGS_OFFSET = exports.ACCUMULATEDTRADEVALUE_OFFSET = exports.TRADECOUNT_OFFSET = exports.CLOSE_OFFSET = exports.LASTTRADESIZE_OFFSET = exports.TICK_OFFSET = exports.LASTTRADETIME_OFFSET = exports.ACCUMULATEDVOLUME_OFFSET = exports.LOW_OFFSET = exports.HIGH_OFFSET = exports.OPEN_OFFSET = exports.PREVCLOSE_OFFSET = exports.LAST_OFFSET = exports.SYMBOL_OFFSET = exports.TIMESTAMP_OFFSET = exports.TYPEID = undefined;
10440
11065
 
10441
11066
  var _QitchConstants = require("../QitchConstants");
10442
11067
 
@@ -10471,7 +11096,12 @@ var POSTMARKETVOLUME_OFFSET = exports.POSTMARKETVOLUME_OFFSET = POSTMARKETLASTPR
10471
11096
  var POSTMARKETCHANGE_OFFSET = exports.POSTMARKETCHANGE_OFFSET = POSTMARKETVOLUME_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10472
11097
  var LASTTRADEEXCODE_OFFSET = exports.LASTTRADEEXCODE_OFFSET = POSTMARKETCHANGE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10473
11098
 
10474
- var LENGTH = exports.LENGTH = LASTTRADEEXCODE_OFFSET + _QitchConstants.EXCODE_LENGTH;
11099
+ var DECIMALACCUMULATEDVOLUME_OFFSET = exports.DECIMALACCUMULATEDVOLUME_OFFSET = LASTTRADEEXCODE_OFFSET + _QitchConstants.EXCODE_LENGTH;
11100
+ var DECIMALPREMARKETVOLUME_OFFSET = exports.DECIMALPREMARKETVOLUME_OFFSET = DECIMALACCUMULATEDVOLUME_OFFSET + _QitchConstants.DOUBLE_LENGTH;
11101
+ var DECIMALPOSTMARKETVOLUME_OFFSET = exports.DECIMALPOSTMARKETVOLUME_OFFSET = DECIMALPREMARKETVOLUME_OFFSET + _QitchConstants.DOUBLE_LENGTH;
11102
+ var DECIMALLASTTRADESIZE_OFFSET = exports.DECIMALLASTTRADESIZE_OFFSET = DECIMALPOSTMARKETVOLUME_OFFSET + _QitchConstants.DOUBLE_LENGTH;
11103
+
11104
+ var LENGTH = exports.LENGTH = DECIMALLASTTRADESIZE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10475
11105
 
10476
11106
  var PricedataFlags = exports.PricedataFlags = function () {
10477
11107
  function PricedataFlags() {
@@ -10511,7 +11141,7 @@ var LENGTH = exports.LENGTH = SYMBOL_OFFSET + _QitchConstants.LOCATECODE_LENGTH;
10511
11141
  "use strict";
10512
11142
 
10513
11143
  exports.__esModule = true;
10514
- exports.LENGTH = exports.SHARESPERSIZEUNIT_OFFSET = exports.INDICATOR_OFFSET = exports.BIDSIZE_OFFSET = exports.BIDPRICE_OFFSET = exports.BIDEXCODE_OFFSET = exports.BIDCONDITION_OFFSET = exports.ASKSIZE_OFFSET = exports.ASKPRICE_OFFSET = exports.ASKEXCODE_OFFSET = exports.ASKCONDITION_OFFSET = exports.SYMBOL_OFFSET = exports.TIMESTAMP_OFFSET = exports.TYPEID = undefined;
11144
+ exports.LENGTH = exports.DECIMALBIDSIZE_OFFSET = exports.DECIMALASKSIZE_OFFSET = exports.SHARESPERSIZEUNIT_OFFSET = exports.INDICATOR_OFFSET = exports.BIDSIZE_OFFSET = exports.BIDPRICE_OFFSET = exports.BIDEXCODE_OFFSET = exports.BIDCONDITION_OFFSET = exports.ASKSIZE_OFFSET = exports.ASKPRICE_OFFSET = exports.ASKEXCODE_OFFSET = exports.ASKCONDITION_OFFSET = exports.SYMBOL_OFFSET = exports.TIMESTAMP_OFFSET = exports.TYPEID = undefined;
10515
11145
 
10516
11146
  var _QitchConstants = require("../QitchConstants");
10517
11147
 
@@ -10529,14 +11159,16 @@ var BIDPRICE_OFFSET = exports.BIDPRICE_OFFSET = BIDEXCODE_OFFSET + _QitchConstan
10529
11159
  var BIDSIZE_OFFSET = exports.BIDSIZE_OFFSET = BIDPRICE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10530
11160
  var INDICATOR_OFFSET = exports.INDICATOR_OFFSET = BIDSIZE_OFFSET + _QitchConstants.INT_LENGTH;
10531
11161
  var SHARESPERSIZEUNIT_OFFSET = exports.SHARESPERSIZEUNIT_OFFSET = INDICATOR_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10532
- var LENGTH = exports.LENGTH = SHARESPERSIZEUNIT_OFFSET + _QitchConstants.INT_LENGTH;
11162
+ var DECIMALASKSIZE_OFFSET = exports.DECIMALASKSIZE_OFFSET = SHARESPERSIZEUNIT_OFFSET + _QitchConstants.INT_LENGTH;
11163
+ var DECIMALBIDSIZE_OFFSET = exports.DECIMALBIDSIZE_OFFSET = DECIMALASKSIZE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
11164
+ var LENGTH = exports.LENGTH = DECIMALBIDSIZE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10533
11165
  }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],require("timers").setImmediate,require("timers").clearImmediate,"/lib/qitch/marketDataDefinition/QuoteDef.js","/lib/qitch/marketDataDefinition")
10534
11166
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],84:[function(require,module,exports){
10535
11167
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
10536
11168
  "use strict";
10537
11169
 
10538
11170
  exports.__esModule = true;
10539
- exports.LENGTH = exports.CAVEATEMPTOR_OFFSET = exports.PQE_OFFSET = exports.REGSHOSTATUS_OFFSET = exports.HALTINDICATOR_OFFSET = exports.HALTSTATUS_OFFSET = exports.CURRENCYID_OFFSET = exports.INSTRUMENTTYPE_OFFSET = exports.EXCODE_OFFSET = exports.LOCATECODE_OFFSET = exports.SYMBOL_OFFSET = exports.TYPEID = undefined;
11171
+ exports.LENGTH = exports.BOARDLOTSIZE_OFFSET = exports.CAVEATEMPTOR_OFFSET = exports.PQE_OFFSET = exports.REGSHOSTATUS_OFFSET = exports.HALTINDICATOR_OFFSET = exports.HALTSTATUS_OFFSET = exports.CURRENCYID_OFFSET = exports.INSTRUMENTTYPE_OFFSET = exports.EXCODE_OFFSET = exports.LOCATECODE_OFFSET = exports.SYMBOL_OFFSET = exports.TYPEID = undefined;
10540
11172
 
10541
11173
  var _QitchConstants = require("../QitchConstants");
10542
11174
 
@@ -10552,7 +11184,8 @@ var HALTINDICATOR_OFFSET = exports.HALTINDICATOR_OFFSET = HALTSTATUS_OFFSET + _Q
10552
11184
  var REGSHOSTATUS_OFFSET = exports.REGSHOSTATUS_OFFSET = HALTINDICATOR_OFFSET + _QitchConstants.BYTE_LENGTH;
10553
11185
  var PQE_OFFSET = exports.PQE_OFFSET = REGSHOSTATUS_OFFSET + _QitchConstants.ASCIICHAR_LENGTH;
10554
11186
  var CAVEATEMPTOR_OFFSET = exports.CAVEATEMPTOR_OFFSET = PQE_OFFSET + _QitchConstants.BYTE_LENGTH;
10555
- var LENGTH = exports.LENGTH = CAVEATEMPTOR_OFFSET + _QitchConstants.BYTE_LENGTH;
11187
+ var BOARDLOTSIZE_OFFSET = exports.BOARDLOTSIZE_OFFSET = CAVEATEMPTOR_OFFSET + _QitchConstants.BYTE_LENGTH;
11188
+ var LENGTH = exports.LENGTH = BOARDLOTSIZE_OFFSET + _QitchConstants.INT_LENGTH;
10556
11189
  }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],require("timers").setImmediate,require("timers").clearImmediate,"/lib/qitch/marketDataDefinition/SymbolInfoDef.js","/lib/qitch/marketDataDefinition")
10557
11190
  },{"../QitchConstants":26,"_process":114,"buffer":104,"timers":135}],85:[function(require,module,exports){
10558
11191
  (function (process,global,Buffer,__argument0,__argument1,__argument2,__argument3,setImmediate,clearImmediate,__filename,__dirname){
@@ -10581,7 +11214,7 @@ var LENGTH = exports.LENGTH = NOTE_OFFSET + _QitchConstants.NOTE_LENGTH;
10581
11214
  "use strict";
10582
11215
 
10583
11216
  exports.__esModule = true;
10584
- exports.TradeFlags = exports.LENGTH = exports.EXCODE_OFFSET = exports.VWAP_OFFSET = exports.MATCHID_OFFSET = exports.RANGEINDICATOR_OFFSET = exports.SELLERMMID_OFFSET = exports.BUYERMMID_OFFSET = exports.FLAGS_OFFSET = exports.SEQUENCENUMBER_OFFSET = exports.ACCUMULATEDVOLUME_OFFSET = exports.TICK_OFFSET = exports.INDICATOR_OFFSET = exports.SIZE_OFFSET = exports.PRICE_OFFSET = exports.SYMBOL_OFFSET = exports.TIMESTAMP_OFFSET = exports.TYPEID = undefined;
11217
+ exports.TradeFlags = exports.LENGTH = exports.DECIMALSIZE_OFFSET = exports.EXCODE_OFFSET = exports.VWAP_OFFSET = exports.MATCHID_OFFSET = exports.RANGEINDICATOR_OFFSET = exports.SELLERMMID_OFFSET = exports.BUYERMMID_OFFSET = exports.FLAGS_OFFSET = exports.SEQUENCENUMBER_OFFSET = exports.ACCUMULATEDVOLUME_OFFSET = exports.TICK_OFFSET = exports.INDICATOR_OFFSET = exports.SIZE_OFFSET = exports.PRICE_OFFSET = exports.SYMBOL_OFFSET = exports.TIMESTAMP_OFFSET = exports.TYPEID = undefined;
10585
11218
 
10586
11219
  var _QitchConstants = require("../QitchConstants");
10587
11220
 
@@ -10604,7 +11237,8 @@ var RANGEINDICATOR_OFFSET = exports.RANGEINDICATOR_OFFSET = SELLERMMID_OFFSET +
10604
11237
  var MATCHID_OFFSET = exports.MATCHID_OFFSET = RANGEINDICATOR_OFFSET + _QitchConstants.RANGEINDICATOR_LENGTH;
10605
11238
  var VWAP_OFFSET = exports.VWAP_OFFSET = MATCHID_OFFSET + _QitchConstants.LONG_LENGTH;
10606
11239
  var EXCODE_OFFSET = exports.EXCODE_OFFSET = VWAP_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10607
- var LENGTH = exports.LENGTH = EXCODE_OFFSET + _QitchConstants.EXCODE_LENGTH;
11240
+ var DECIMALSIZE_OFFSET = exports.DECIMALSIZE_OFFSET = EXCODE_OFFSET + _QitchConstants.EXCODE_LENGTH;
11241
+ var LENGTH = exports.LENGTH = DECIMALSIZE_OFFSET + _QitchConstants.DOUBLE_LENGTH;
10608
11242
 
10609
11243
  var TradeFlags = exports.TradeFlags = function () {
10610
11244
  function TradeFlags() {
@@ -10964,7 +11598,7 @@ exports.__esModule = true;
10964
11598
  */
10965
11599
 
10966
11600
  var LIBRARY_NAME = exports.LIBRARY_NAME = "JavaScript";
10967
- var VERSION = exports.VERSION = "2.20.0";
11601
+ var VERSION = exports.VERSION = "2.24.0";
10968
11602
 
10969
11603
  /**
10970
11604
  * Streamer message api namespace.
@@ -11016,7 +11650,17 @@ messages.MessageTypeNames = {
11016
11650
  STATS_RESPONSE: 'C13',
11017
11651
  EXCHANGE_SUBSCRIBE: 'C14',
11018
11652
  EXCHANGE_RESPONSE: 'C15',
11019
- EXCHANGE_UNSUBSCRIBE_RESPONSE: 'C16'
11653
+ EXCHANGE_UNSUBSCRIBE_RESPONSE: 'C16',
11654
+ NEWS_SUBSCRIBE: 'C17',
11655
+ NEWS_SUBSCRIBE_RESPONSE: 'C18',
11656
+ ALERTS_SUBUNSUB: 'C19',
11657
+ ALERTS_SUBUNSUB_RESPONSE: 'C20',
11658
+ TRADE_SUBSCRIBE: 'C21',
11659
+ TRADE_SUBSCRIBE_RESPONSE: 'C22',
11660
+ NEWS_UNSUBSCRIBE_RESPONSE: 'C23',
11661
+ NEWS_COMMAND: 'C24',
11662
+ NEWS_CMD_FILTER_REFRESH_RESPONSE: 'C25',
11663
+ NEWS_CMD_FILTER_RESPONSE: 'C26'
11020
11664
  },
11021
11665
  /**
11022
11666
  * Name space for data message type identifiers.<br>
@@ -11040,7 +11684,9 @@ messages.MessageTypeNames = {
11040
11684
  LIMITUPLIMITDOWN: 'D14',
11041
11685
  IVGREEKS: 'D15',
11042
11686
  IMBALANCESTATUS: 'D16',
11043
- ALERT: 'D17'
11687
+ ALERT: 'D17',
11688
+ NEWS: 'D18',
11689
+ TRADENOTIFICATION: 'D19'
11044
11690
  }
11045
11691
  };
11046
11692
 
@@ -11166,6 +11812,103 @@ messages.control.ExchangeSubscribeMessage = function () {
11166
11812
  };
11167
11813
  messages.control.ExchangeSubscribeMessage.prototype = new messages.control.CtrlMessage();
11168
11814
 
11815
+ /**
11816
+ * Creates an news subscribe message.
11817
+ * @constructor
11818
+ */
11819
+ messages.control.NewsSubscribeMessage = function () {
11820
+ this.init(messages.MessageTypeNames.ctrl.NEWS_SUBSCRIBE);
11821
+
11822
+ /**
11823
+ * The action the server will taken when receiving this message.
11824
+ * @type {string}
11825
+ * @see exports.messages.control.Action
11826
+ */
11827
+ this.action = null;
11828
+
11829
+ /**
11830
+ * The news filters to subscribe for.
11831
+ * @type {Array.<string>}
11832
+ */
11833
+ this.newsFilters = null;
11834
+
11835
+ /**
11836
+ * Requested message mime-type format.
11837
+ * @type {string}
11838
+ * @see exports.messages.MimeTypes
11839
+ */
11840
+ this.mimetype = null;
11841
+ };
11842
+ messages.control.NewsSubscribeMessage.prototype = new messages.control.CtrlMessage();
11843
+
11844
+ /**
11845
+ * Creates an news reset message.
11846
+ * @constructor
11847
+ */
11848
+ messages.control.NewsCommandMessage = function () {
11849
+ this.init(messages.MessageTypeNames.ctrl.NEWS_COMMAND);
11850
+
11851
+ /**
11852
+ * The action the server will taken when receiving this message.
11853
+ * @type {string}
11854
+ * @see exports.messages.control.Action
11855
+ */
11856
+ this.newsAction = null;
11857
+
11858
+ /**
11859
+ * Requested message mime-type format.
11860
+ * @type {string}
11861
+ * @see exports.messages.MimeTypes
11862
+ */
11863
+ this.mimetype = null;
11864
+ };
11865
+ messages.control.NewsCommandMessage.prototype = new messages.control.CtrlMessage();
11866
+
11867
+ /**
11868
+ * Creates an news subscribe message.
11869
+ * @constructor
11870
+ */
11871
+ messages.control.AlertsSubUnsubMessage = function () {
11872
+ this.init(messages.MessageTypeNames.ctrl.ALERTS_SUBUNSUB);
11873
+
11874
+ /**
11875
+ * sub/unsub for alerts.
11876
+ * @type {string}
11877
+ */
11878
+ this.operation = null;
11879
+
11880
+ /**
11881
+ * Requested message mime-type format.
11882
+ * @type {string}
11883
+ * @see exports.messages.MimeTypes
11884
+ */
11885
+ this.mimetype = null;
11886
+ };
11887
+ messages.control.AlertsSubUnsubMessage.prototype = new messages.control.CtrlMessage();
11888
+
11889
+ /**
11890
+ * Creates Trade notification subscribe message.
11891
+ * @constructor
11892
+ */
11893
+
11894
+ messages.control.TradeSubscribeMessage = function () {
11895
+ this.init(messages.MessageTypeNames.ctrl.TRADE_SUBSCRIBE);
11896
+
11897
+ /**
11898
+ * The subscribe/un-subscribe for trade notifications.
11899
+ * @type {Array.<string>}
11900
+ */
11901
+ this.operation = null;
11902
+
11903
+ /**
11904
+ * Requested message mime-type format.
11905
+ * @type {string}
11906
+ * @see exports.messages.MimeTypes
11907
+ */
11908
+ this.mimetype = null;
11909
+ };
11910
+ messages.control.TradeSubscribeMessage.prototype = new messages.control.CtrlMessage();
11911
+
11169
11912
  /**
11170
11913
  * Base class for response exports.
11171
11914
  * @abstract
@@ -11224,6 +11967,16 @@ messages.control.ExchangeSubscribeResponse = function () {
11224
11967
 
11225
11968
  messages.control.ExchangeSubscribeResponse.prototype = new messages.control.BaseResponse();
11226
11969
 
11970
+ /**
11971
+ * Creates Trade notification subscribe response message.
11972
+ * @constructor
11973
+ */
11974
+ messages.control.TradeSubscribeResponse = function () {
11975
+ this.init(messages.MessageTypeNames.ctrl.TRADE_SUBSCRIBE_RESPONSE);
11976
+ };
11977
+
11978
+ messages.control.TradeSubscribeResponse.prototype = new messages.control.BaseResponse();
11979
+
11227
11980
  /**
11228
11981
  * Creates an un-subscribe response message.
11229
11982
  * @constructor
@@ -11249,6 +12002,21 @@ messages.control.ExchangeUnsubscribeResponse = function () {
11249
12002
 
11250
12003
  messages.control.ExchangeUnsubscribeResponse.prototype = new messages.control.BaseResponse();
11251
12004
 
12005
+ /**
12006
+ * Creates an news un-subscribe response message.
12007
+ * @constructor
12008
+ */
12009
+ messages.control.NewsUnsubscribeResponse = function () {
12010
+ this.init(messages.MessageTypeNames.ctrl.NEWS_UNSUBSCRIBE_RESPONSE);
12011
+
12012
+ /**
12013
+ *
12014
+ * @type {Array.<messages.control.StreamEntitlement>}
12015
+ */
12016
+ this.unsubscribed = null;
12017
+ };
12018
+ messages.control.NewsUnsubscribeResponse.prototype = new messages.control.BaseResponse();
12019
+
11252
12020
  /**
11253
12021
  * Creates a stream entitlement info.
11254
12022
  * @constructor
@@ -11410,6 +12178,11 @@ messages.control.StatsResponse = function () {
11410
12178
  * @type {number}
11411
12179
  */
11412
12180
  this.numberOfSubscribedExchanges = null;
12181
+ /**
12182
+ *
12183
+ * @type {number}
12184
+ */
12185
+ this.numberOfSubscribedTrades = null;
11413
12186
  };
11414
12187
  messages.control.StatsResponse.prototype = new messages.control.BaseResponse();
11415
12188
 
@@ -11471,6 +12244,17 @@ messages.control.Action = {
11471
12244
  UNSUBSCRIBE: "UNSUBSCRIBE"
11472
12245
  };
11473
12246
 
12247
+ /**
12248
+ * Enumeration for associations.
12249
+ * @enum
12250
+ * @readonly
12251
+ */
12252
+ messages.control.Association = {
12253
+ AND: "AND",
12254
+ OR: "OR",
12255
+ NOT: "NOT"
12256
+ };
12257
+
11474
12258
  /**
11475
12259
  * Enumeration for streaming message types.
11476
12260
  * @enum